Seata

🔥 Seata is an easy-to-use, high-performance, open source distributed transaction solution.

Stars
24.6K
Forks
8.67K
Open issues
707
Closed issues
2.78K
Last release
5 months ago
Last commit
5 months ago
Watchers
24.6K
Total releases
39
Total commits
1.79K
Open PRs
34
Closed PRs
1.94K
Repo URL
Project Website
https://seata.io/en-us
Platform
License
apache-2.0
Category
Offers premium version?
NO
Proprietary?
NO
About

Seata: Simple Extensible Autonomous Transaction Architecture

What is Seata?

A distributed transaction solution with high performance and ease of use for microservices architecture.

Distributed Transaction Problem in Microservices

Let's imagine a traditional monolithic application. Its business is built up with 3 modules. They use a single local data source.

Naturally, data consistency will be guaranteed by the local transaction.

Things have changed in a microservices architecture. The 3 modules mentioned above are designed to be 3 services on top of 3 different data sources (Pattern: Database per service). Data consistency within every single service is naturally guaranteed by the local transaction.

But how about the whole business logic scope?

How Seata do?

Seata is just a solution to the problem mentioned above.

Firstly, how to define a Distributed Transaction?

We say, a Distributed Transaction is a Global Transaction which is made up with a batch of Branch Transaction, and normally Branch Transaction is just Local Transaction.

There are three roles in Seata Framework:

  • Transaction Coordinator(TC): Maintain status of global and branch transactions, drive the global commit or rollback.
  • Transaction Manager(TM): Define the scope of global transaction: begin a global transaction, commit or rollback a global transaction.
  • Resource Manager(RM): Manage resources that branch transactions working on, talk to TC for registering branch transactions and reporting status of branch transactions, and drive the branch transaction commit or rollback.

A typical lifecycle of Seata managed distributed transaction:

  1. TM asks TC to begin a new global transaction. TC generates an XID representing the global transaction.
  2. XID is propagated through microservices' invoke chain.
  3. RM registers local transaction as a branch of the corresponding global transaction of XID to TC.
  4. TM asks TC for committing or rollbacking the corresponding global transaction of XID.
  5. TC drives all branch transactions under the corresponding global transaction of XID to finish branch committing or rollbacking.

For more details about principle and design, please go to Seata wiki page.

History Alibaba

  • TXC: Taobao Transaction Constructor. Alibaba middleware team started this project since 2014 to meet the distributed transaction problems caused by application architecture change from monolithic to microservices.
  • GTS: Global Transaction Service. TXC as an Aliyun middleware product with new name GTS was published since 2016.
  • Fescar: we started the open source project Fescar based on TXC/GTS since 2019 to work closely with the community in the future.

Ant Financial

  • XTS: Extended Transaction Service. Ant Financial middleware team developed the distributed transaction middleware since 2007, which is widely used in Ant Financial and solves the problems of data consistency across databases and services.

  • DTX: Distributed Transaction Extended. Since 2013, XTS has been published on the Ant Financial Cloud, with the name of DTX .

Seata Community

  • Seata :Simple Extensible Autonomous Transaction Architecture. Ant Financial joins Fescar, which make it to be a more neutral and open community for distributed transaction, and Fescar be renamed to Seata.

Maven dependency

Depending on the scenario, choose one of the two dependencies: io.seata:seata-all or io.seata:seata-spring-boot-starter.

<properties>
  <seata.version>2.0.0</seata.version>
</properties>

<dependencies> <!--dependencies for non-SpringBoot application framework--> <dependency> <groupId>io.seata</groupId> <artifactId>seata-all</artifactId> <version>${seata.version}</version> </dependency>

<!--If your project base on Spring Boot, you can directly use the following dependencies--> <!--Notice: seata-spring-boot-starter has already included seata-all dependency--> <dependency> <groupId>io.seata</groupId> <artifactId>seata-spring-boot-starter</artifactId> <version>${seata.version}</version> </dependency> </dependencies>

Quick Start

Quick Start

Documentation

You can view the full documentation from Seata Official Website: Seata Website page.

Reporting bugs

Please follow the template for reporting any issues.

Security

Please do not use our public issue tracker but refer to our security policy

Contributing

Contributors are welcomed to join the Seata project. Please check CONTRIBUTING andCONTRIBUTING-CNabout how to contribute to this project.

Contact

Seata ecosystem

Contributors

This project exists thanks to all the people who contribute. [Contributors].

License

Seata is under the Apache 2.0 license. See the LICENSE file for details.

Who is using

These are only part of the companies using Seata, for reference only. If you are using Seata, please add your company here to tell us your scenario to make Seata better.

<a href="https://camo.githubusercontent.com/06a9b12525bf0285cdec7caa922dee7d1978ff254a58b5512adf5c576ff8f58c/68747470733a2f2f696d672e616c6963646e2e636f6d2f696d6765787472612f69312f4f31434e3031546c65517131323846415038504f744c355f2121363030303030303030373930322d322d7470732d3234312d34322e706e67" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/c0e1aa757075b586cd25d87d407cae40ad4ea63e926c34e721e98e1de0916592/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f544231777575436f455431674b306a535a466858586141745658612d3439362d3230322e6a7067" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/d5f5668b37be29103ffd13de0272d9c9ee980dd4e4c8768b33f4820123dec78d/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f5442314c79356f533348714b31526a535a465058586377617058612d3233382d35342e706e67" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/24f8a451065b1260f06629601406be09ccf11009c7c7af4288126391283f4fb0/68747470733a2f2f696d672e616c6963646e2e636f6d2f696d6765787472612f69332f4f31434e3031486f6871686d314a7647504534635344345f2121363030303030303030313039302d312d7470732d3433362d38342e676966" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/1318efe9a296a417a84d63323397c52dc706edbb38ce752ff9b328485292f307/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f5442316876616277396632674b306a535a4650585858736f7058612d3137342d3130302e706e67" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/f145ec462e1ea65cd05351a1030a87e04b3cafb570e36429f1ce480c4bce8c7d/68747470733a2f2f696d672e616c6963646e2e636f6d2f696d6765787472612f69332f4f31434e3031716b6b454d5a314a723871446d586441615f2121363030303030303030313038312d322d7470732d3232302d36372e706e67" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/e57581ad81004fbd8266c1acf38fcc8a3691991f54050b693caecf15c873b050/68747470733a2f2f696d672e616c6963646e2e636f6d2f696d6765787472612f69332f4f31434e303152586261576e31534462426670437331425f2121363030303030303030323231332d302d7470732d3634302d3435382e6a7067" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/e4992665738596c7fbacf38e62d05052706c9c5193d1a6d545c8d284b4fd515c/68747470733a2f2f696d672e616c6963646e2e636f6d2f696d6765787472612f69312f4f31434e3031526b77347a30314f50476f6d4f697355315f2121363030303030303030313639372d322d7470732d3232302d36342e706e67" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/f42fd85166ac4953ff44580ed68c43e9220f841a87c8f0e63d7de3db1a0f4421/68747470733a2f2f696d672e616c6963646e2e636f6d2f696d6765787472612f69332f4f31434e30317930577763353177786e62773946444a695f2121363030303030303030363337352d322d7470732d3235322d38342e706e67" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/9ef5851ad0dccd0c7a088b023884c0018ad27b2a1901c15e3ed9468f43e0ea0b/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f544231474d51705a485931674b306a535a544558585844515658612d3230332d36332e706e67" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/f0a9310b568133a5540297886f8ff8b919c289466e8362e2b01b029b263ba24b/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f5442316f485468772e5931674b306a535a464358586377715858612d3231342d3230302e706e67" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/ea21d630ed48f4a613e7f518c69c352065da40b8ecf6312fdf21b2b4f5c9269a/68747470733a2f2f696d672e616c6963646e2e636f6d2f696d6765787472612f69332f4f31434e30314d634e6b763632345a35414b56485230685f2121363030303030303030373430342d322d7470732d3134302d35342e706e67" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/70d65c3fda4e7cc9f960948d7bfc87cf3f5e4d72132037cf21aaa7015fe3ff00/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f544231783070356a787662654b386a535a506658586172695858612d3237322d38332e706e67" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/f494fb70abcd6cfe8889f110c0a72a3f2426ddd8d8742add686427aae63339f9/68747470733a2f2f696d672e616c6963646e2e636f6d2f696d6765787472612f69322f4f31434e30314d3961537559316e515747786f565175395f2121363030303030303030353038342d322d7470732d3233392d37382e706e67" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/2b14ed9163f7adca74495299349ace35a12011898463c2c46aa3e29823f37262/68747470733a2f2f696d672e616c6963646e2e636f6d2f696d6765787472612f69312f4f31434e3031506d54466e4f31675a324b3747557067685f2121363030303030303030343135352d322d7470732d323430362d3734372e706e67" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/cf7a1e212318db2ab3af078982f49ecfb2c230c0667d61ba290a4ea48e69ce60/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f5442312e7a71456f414c30674b306a535a464158586341397058612d3234352d33382e706e67" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/30f0478cd60c609f70f9b7d1d0201ef6569f45de4c676a43b317b398a57ddebf/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f5442316367766a77596a31674b306a535a464f58586337477058612d313034302d3238322e706e67" rel="nofollow"></a>    
<a href="https://camo.githubusercontent.com/021ba369a5cf770cbc5bbdc0ed4686854b10f6235600927bea31e99731cfbf6b/68747470733a2f2f696d672e616c6963646e2e636f6d2f696d6765787472612f69332f4f31434e30314f696f715858316466785378673644596e5f2121363030303030303030333736342d322d7470732d3537342d3132322e706e67" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/1dc56b84d8feb949d8617c8309d28244e3e23a77c01d06d87b2d3bee6af07f80/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f544231444469436f725931674b306a535a544558585844515658612d3434302d3131342e6a7067" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/95c39f9111d57e883df535890b72a8cc2a2dc63f5732f66cf50e190fba7eee7d/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f5442315358477a6f786e31674b306a535a4b5058585876555858612d3432362d3138302e6a7067" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/00015c4febde2e0ef7b4b08cec75670a5c34fc4dc058935d66b0cceb6b6265f6/68747470733a2f2f696d672e616c6963646e2e636f6d2f696d6765787472612f69312f4f31434e3031716f36676664316c37414b314c494638745f2121363030303030303030343737312d322d7470732d3133322d34302e706e67" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/531a27fd01f438e4af60740391036583088596e48f50a3d95d8b2896a16f310c/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f54423172434e5346786e31674b306a535a4b5058585876555858612d3137322d33312e706e67" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/05b467dfb295741127991c4ff230e733d0203e8f15801bb25a2d24de973bc2bf/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f544231586133625a514c30674b306a535a467458585851435858612d3933362d39332e706e67" rel="nofollow"></a> 
<a href="https://camo.githubusercontent.com/49833c933efa306a33090dade7c953f05dc986ff5cc97605109b17e08ded1698/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f544231653757696f766232674b306a535a4b3958586145674658612d313032382d3136302e6a7067" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/308a32c6fbaac98fe488f1ece9b67fdcfce57068198c00d0287784338568217d/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f54423132636d436f754c32674b306a535a466d58586337695858612d3331302d3131302e6a7067" rel="nofollow"></a> 
<a href="https://camo.githubusercontent.com/68f1c3568d54ba744095764b85cc2b3e34beb78721a3a06cc29f1e1b05abb351/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f5442316a3064456f703637674b306a535a506658586168684658612d3430302d3230382e6a7067" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/21e9a335d13baa25a7ebeb3bd22e6a1dad4004cf55769abf6825226793c62206/68747470733a2f2f696d672e616c6963646e2e636f6d2f696d6765787472612f69312f4f31434e303165644f306f78314e7537737968776241795f2121363030303030303030313632392d322d7470732d3330302d3131322e706e67" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/2836c973ebd640f2aefccca32d193f2fc657493a3ebf1149d646029890a33c54/68747470733a2f2f696d672e616c6963646e2e636f6d2f696d6765787472612f69332f4f31434e3031687967473638323162514c47574e38746d5f2121363030303030303030373030332d322d7470732d39382d35322e706e67" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/966aa4216c76092639eaff7fc32accad65c330f110810771478155d5dae280b7/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f544231747553796f755432674b306a535a46765858586e465858612d3330342d39342e6a7067" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/52479d6c47b804a53ca80ad13d0231cc7900c20afe9b0b249de0963447478d7b/68747470733a2f2f696d672e616c6963646e2e636f6d2f696d6765787472612f69342f4f31434e303142574654323731725841564c55595757475f2121363030303030303030353634302d322d7470732d3138352d34302e706e67" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/1aa91233c1f9e12aacce3de1e423c9ccbbbdd98395725bd33eda8becccfe34cb/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f544231633869436f754c32674b306a535a466d58586337695858612d3432382d3130322e6a7067" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/1fa93f193ac8396d01e187e596b76f4ada4e4797f29e8eefdeca5c8a39fc6800/68747470733a2f2f696d672e616c6963646e2e636f6d2f696d6765787472612f69342f4f31434e30316e6a594a324a3179746e4e6843465763495f2121363030303030303030363633372d322d7470732d3334302d3130342e706e67" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/1bc9d5452e27300167d1033474a45a86c90d2917545b9873b15cd157cce66b6d/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f5442314f4347696f436632674b306a535a4650585858736f7058612d3530302d3137392e6a7067" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/1ad25ab23249463b27fc9d14afee4cbc4813f686b289826fea1d022d2ebdca57/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f544231417475396f767a4f3365346a535a4678585861505f4658612d3331302d36302e706e67" rel="nofollow"></a> 
<a href="https://camo.githubusercontent.com/8f1b9771442d5dc26ed6375b37a6047756f5d1f8f3fa87ea671d5dc5d5d8cee7/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f54423170665954705242683165346a535a466858586343395658612d3135312d37322e706e67" rel="nofollow"></a> 
<a href="https://camo.githubusercontent.com/53792d890e55d088727947f66b5dd8163f27deb14f04b544c506ee96396d3342/68747470733a2f2f696d672e616c6963646e2e636f6d2f696d6765787472612f69312f4f31434e30314635776e6133314e4a77617651307234775f2121363030303030303030313535302d322d7470732d3137312d34382e706e67" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/941d9fdf603903487e66bc21bf04d93f890237e99fa5cc51c63c03be8fee374b/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f5442315554776d5a465437674b306a535a4670585861546b7058612d3230312d38352e706e67" rel="nofollow"></a>  
<a href="https://camo.githubusercontent.com/201eb7690bbd5cd0da60621bb58e07ff4453b7fa747175cf319500966905ac6a/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f544231343352346f703637674b306a535a506658586168684658612d3134382d34322e706e67" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/e0cd974d7c6e512bc68594e6f4b3e1a05b4edc660c5b4835a589fb1c7f165f1e/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f544231694d53416f705037674b306a535a466a58586335615858612d3339382d3138322e6a7067" rel="nofollow"></a> 
<a href="https://camo.githubusercontent.com/3306a9b9ff81e9978d670a703e363493c2bd8a36e86fb7b41266e37552da0fb3/68747470733a2f2f696d672e616c6963646e2e636f6d2f696d6765787472612f69312f4f31434e3031623168756a3531615944777a34527153515f2121363030303030303030333334312d322d7470732d3335302d35312e706e67" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/acdc0f83a21a285a3226ae073a78b0bfd63fd88e80a10e02e2edb615e74b0b38/68747470733a2f2f696d672e616c6963646e2e636f6d2f696d6765787472612f69312f4f31434e303153656b54736e3235697a4c5a5737494b6f5f2121363030303030303030373536312d322d7470732d3237302d3132342e706e67" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/37daad8edef6121cd38bc7d30a915ed2e0e777453fb1cdadc17b468f6b0d5402/68747470733a2f2f696d672e616c6963646e2e636f6d2f696d6765787472612f69322f4f31434e30316379556b534f32304255495347556a79775f2121363030303030303030363831312d322d7470732d3134392d3131342e706e67" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/75d3bbf58dab350e61c49a04da146eb75a227c6c119abafb8081abf019a21613/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f5442314a764f6a6f755432674b306a535a46765858586e465858612d3338362d3134362e6a7067" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/3d6f01849931a92d36919418448120c219dd09fc0c76e639aecceeaea1ba3447/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f54423143684b466f427230674b306a535a466e58586252525858612d3430322d3136362e6a7067" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/ea2b6a760c73ed6fc6e526b2244298f482dde88a8b6b5df1c163e6861ccceb78/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f544231624e57466f427230674b306a535a466e58586252525858612d3339382d3333362e6a7067" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/9222593c28f02af4230363141f27b2852a994a5c31704bb919b056ce677489c7/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f5442315f4439426f786e31674b306a535a4b5058585876555858612d3538302d3231382e6a7067" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/76cf122fcfd53247452824984b028b62102dba48eb81f6a1292b7dfdaf5e2999/68747470733a2f2f696d672e616c6963646e2e636f6d2f696d6765787472612f69322f4f31434e303175337a45647a3150756863326a4f326b545f2121363030303030303030313930312d322d7470732d3131342d34332e706e67" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/e49bc7437200d1c7ce7caedfb1e7122c46bc7dc2c5affadda108bd90b69aebb9/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f5442315f6d69726f713631674b306a535a466c585858444b4658612d3238332d37302e706e67" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/763aa08d4d490f97f9d5543308afbab1b09482435b838929b6a0c194aaa09a92/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f54423148442e6f5a555931674b306a535a464d58586157635658612d3330302d3330302e706e67" rel="nofollow"></a> 
<a href="https://camo.githubusercontent.com/d1a82f238d4dd7387b8f17f606c42e12e80c741735c14580396f42872793fb37/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f544231436153726f415432674b306a535a50635858634b6b7058612d3439322d3137362e6a7067" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/55615ded38b07bdee4cc1eba728e9b0a6944d97e1542e2b7671f69b82d0b8666/68747470733a2f2f696d672e616c6963646e2e636f6d2f696d6765787472612f69332f4f31434e30316c70334b574e31754764327936434541785f2121363030303030303030363031302d322d7470732d313338332d313032332e706e67" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/91186c5ff99fb1672ff689c85686fb18b7c45d08a13d88819d3fa9c0eab67b5c/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f5442314a4e53716f754832674b306a535a4645585863714d7058612d3435302d3138322e6a7067" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/76fa99bff5f09c4664b3e40c2246ff246b66be34dba64b00599f22a7a0761e17/68747470733a2f2f696d672e616c6963646e2e636f6d2f696d6765787472612f69312f4f31434e30314d4d696c4837316b324955755a737034355f2121363030303030303030343632352d322d7470732d3132382d38302e706e67" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/1597d416be1b8377476abb9695f087aba7f5f0502280aae143dd9175240d2e74/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f5442314e5631756f754832674b306a535a4a6e58586154314658612d3436322d3137322e6a7067" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/e1e8b5e8fb338186b86d54d8ce39832f3040154f360a11edaf0c878b9debbe2c/68747470733a2f2f696d672e616c6963646e2e636f6d2f696d6765787472612f69322f4f31434e30315a54776b785231567562445648757869695f2121363030303030303030323731332d322d7470732d37322d35302e706e67" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/6f7151b406cb53ed7aed5e8c841d06f1c9e0bf226e65e05d483ca1e8c935f674/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f544231434361766f427230674b306a535a466e58586252525858612d3234302d3130302e706e67" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/494dec66667ecb46a24e71f1e3ffc0082d16d121798628d1b67925935b5f2b1e/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f544231494969766f784431674b306a535a4679585863694f5658612d3230302d3133302e706e67" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/2ac83ab1ce8e1c25943d51141c6c22fa45c27a3476c785891497f55049c08eb5/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f5442316b51546872465937674b306a535a4b7a585861696b7058612d3232302d3131302e6a7067" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/8c604f8cb731044e8d2a788fe39113baa2ed2adae1808afb4c9e3330ad58289a/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f544231357237645a485931674b306a535a544558585844515658612d3233342d3233332e706e67" rel="nofollow"></a> 
<a href="https://camo.githubusercontent.com/4034e24b234269d5797c1a38365fdb45b69ea16d81aecec7d63a38e89ee24e1a/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f5442314c4b366a72555431674b306a535a46725858634e435858612d3138302d35342e706e67" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/4a1f6c06fa3b153c4cc5ff014c6d0c9930a147b011f21678cf9a640a04045d95/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f54423153457a4d30654c32674b306a535a466d58586337695858612d3135342d34352e706e67" rel="nofollow"></a> 
<a href="https://camo.githubusercontent.com/8ca5ef086bac82b63eadbbc9072e9bc5e52976198ccb5dd0764fcb86a1708eb6/68747470733a2f2f696d672e616c6963646e2e636f6d2f696d6765787472612f69332f4f31434e303167394c6a4257315943613033555347614f5f2121363030303030303030333032332d322d7470732d3135382d32392e706e67" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/c1cba9f18dc62d57ae17d5c15781b39a2e011d5f05c661d48ada5eb580bfaffa/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f5442315647705446455431674b306a535a46725858634e435858612d3139332d35352e706e67" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/b8c7724e4a6b28d820ce3c6424e11dd45a181d8b4e7c300ad9cdd013882e4d16/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f5442313959385846455931674b306a535a464d58586157635658612d3136302d36302e706e67" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/47c726a5001ce99d036d4631de3debef2bc8f6d19c9baf3891779568d18f1648/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f5442315631596c72527630674b306a535a4b625858624b324658612d3531342d3136302e706e67" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/5c966567da5e90fd03f0d9ff209d47600febb9ef23b0dd79b0618cb4e773b71b/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f5442316f433270724e4431674b306a535a4679585863694f5658612d3234362d3132342e6a7067" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/3c4b2cba9d00e29043b49b72b9af2444c3ea579dfc40853af26e60d4f66f4175/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f5442316465666b724c6232674b306a535a4b3958586145674658612d3433342d3134362e6a7067" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/e6961aac3f260774ee437f9543bcf05edd8262c92003a7e35539cebf4cf8dd81/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f5442317549486d72487231674b306a535a523058586250385858612d313032342d3536382e706e67" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/b334bcd6a42d8b2d7925a0ea5ae83b1f22ef109d3629e233ffa35a2f81751af8/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f5442314552486c72555931674b306a535a464d58586157635658612d3132302d36302e706e67" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/f96013c72e7ddb676ef9798d21aeee2e86c833a32e294bca7355c6e6ecd987ee/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f5442314c54326c724e6e31674b306a535a4b5058585876555858612d3330302d3330302e6a7067" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/0a3ddcfc07a8b23c871fe8d5f7972f81f25bd16c84ff47ac67cae64706a6f5f6/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f54423173324c7072555931674b306a535a464358586377715858612d3631382d3134382e6a7067" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/135b803739dc05ad69241640590a79f4bcb6fe6b767325fa10310c3f2970e7e6/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f5442317174476577375432674b306a535a50635858634b6b7058612d3239342d3130342e706e67" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/4c6d8fd6dc7e48ab2907306a5cce37aef833a021bd4823f460283cd2531c6818/68747470733a2f2f696d672e616c6963646e2e636f6d2f696d6765787472612f69312f4f31434e3031393157777959316438575a61515a636a415f2121363030303030303030333639312d322d7470732d3230302d3230302e706e67" rel="nofollow"></a> 
<a href="https://camo.githubusercontent.com/e41e024bdd37447831f29520f29b692c98396c3878157f9b2c4cd65d7f0c07a2/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f5442314b564a3977574c37674b306a535a46425858585a5a7058612d3134352d35392e706e67" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/c7a3d91971d3aa4582180b4a8e3bdec8e115d5f226b2cb8a34bdf013369aab93/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f5442317657616677375432674b306a535a466b58586349514658612d3330312d3130302e706e67" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/e1b0bebf66f0a98c22ca664029b514f9622e627875724c451c2c415bba458d37/68747470733a2f2f696d672e616c6963646e2e636f6d2f696d6765787472612f69322f4f31434e30314e6f70326a6931676c7252386a307532315f2121363030303030303030343138332d322d7470732d3132302d35302e706e67" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/6b715dba217d99486071bfccebc58b259d316056d888589516acbaad23113c29/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f5442316843356377565937674b306a535a4b7a585861696b7058612d3331382d3133342e706e67" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/b4c4f250c27d1976b6f3557f4fb1e0d8e376cdd9ebbbd86260c95ecd8db2ab1e/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f5442315675506877344431674b306a535a4679585863694f5658612d3239342d3132342e706e67" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/77d8ed9b26cd949f368417f12ab2bc1db35174b79c99bfd94aa71e78aa1e6507/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f5442314646583646714c37674b306a535a46425858585a5a7058612d3238382d3130312e706e67" rel="nofollow"></a>  
<a href="https://camo.githubusercontent.com/e659c4d84a3adabd9efeff6288a446f6abe8b499f3d3d26023ba26ffee2e5d00/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f544231676b586146727231674b306a535a523058586250385858612d3138372d35372e706e67" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/6878e912ec3c269ec81516b23bcf7547a34d0f850a78d173f3c9eb5a141216ee/68747470733a2f2f696d672e616c6963646e2e636f6d2f696d6765787472612f69332f4f31434e303173766f6a786a314c75764b3368675135595f2121363030303030303030313336302d322d7470732d3133332d34382e706e67" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/ebd7f731ab9fda2f272bd9331a0c99a8797a2600dd42eb887ed06fd3f633da87/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f5442316f4a4b6977344431674b306a535a4679585863694f5658612d323035332d3337372e706e67" rel="nofollow"></a>  
<a href="https://camo.githubusercontent.com/32c8dbcbbf03e4152d06c94d8e46468d86645950787f06cd1be5eb3160d53239/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f544231654b465846457a31674b306a535a4c65585862396b5658612d3136332d35342e706e67" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/eb018a31fea8da147b18b617ff2de7ba09a829354b37f66e5b9c50c9f3c798d0/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f544231516364307037396c304b346a535a464b585858466a7058612d3337322d3132352e706e67" rel="nofollow"></a> 
<a href="https://camo.githubusercontent.com/e805d677cce6884bc3f59dfa0cc4c5207d7dfd35a1190cc911a13231dea486ec/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f544231554b6f636d504d5a3765346a535a464f58585837657058612d3233342d38322e706e67" rel="nofollow"></a> 
<a href="https://camo.githubusercontent.com/c8938ed6547056c9378cae5eeb0df1464639571e403839d8e7686a6da40a0439/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f544231657377415a465037674b306a535a466a58586335615858612d3830302d3830302e706e67" rel="nofollow"></a> 
<a href="https://camo.githubusercontent.com/23bd55cfaf52fa6450272712000d5d7b55c423324f58449d376f29b92cec8d61/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f5442314958716777596a31674b306a535a467558586372487058612d3139372d35382e706e67" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/cff2fa0830780af7a50e9aea91e3639b6a484fdaded7cb70c8e5e148ef68e816/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f5442314b6d6f735a4e7631674b306a535a464658586230735858612d3234372d36312e706e67" rel="nofollow"></a> 
<a href="https://camo.githubusercontent.com/764c5bba62e2bbca2f88a6bfe1eebd89cd5af67ee0e983ac9e5f7bbce8a18853/68747470733a2f2f696d672e616c6963646e2e636f6d2f696d6765787472612f69332f4f31434e30313861426f5269315a4f6d3875694f4a77415f2121363030303030303030333138352d302d7470732d313635392d3536392e6a7067" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/703e0ab8fdc0b0a32fa42e69b57b02764f9787d108b118372b0de7895930fc40/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f5442316248356677374c30674b306a535a464158586341397058612d3434322d33392e706e67" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/6c4b5b011ffd57c1efa444e0bce72c3be0c7c49ae4999238a7a621d54e379282/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f54423178414a5546795f31674b306a535a467158586370615858612d3332302d38302e6a7067" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/0126bff443c84918188b2c377f6c6583a8679875c464b8a73b6e5924d9c3cce1/68747470733a2f2f696d672e616c6963646e2e636f6d2f696d6765787472612f69312f4f31434e303162516c553646317238523747597a5178665f2121363030303030303030353538362d322d7470732d3331382d36302e706e67" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/570c79b7e92ae44a1b9cf91d6d72a7e01f2d9316904570f7223d6c426b0620e5/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f54423149434a6646754832674b306a535a4a6e58586154314658612d3635342d3233322e706e67" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/445ace32ac4eb413f1256d835685904986cc9d8d016aa09e7cead6519e2ce61b/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f54423172786e6477346e31674b306a535a4b5058585876555858612d3135302d36382e706e67" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/64e2025330d2ac4c3f48475739558d0081219abed9600743f8d498c1319dfb71/68747470733a2f2f696d672e616c6963646e2e636f6d2f696d6765787472612f69342f4f31434e30316a45554b454a3157533238456e6c4752625f2121363030303030303030323738362d322d7470732d3234302d36302e706e67" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/869b20ebc821dbde6bc3856f2f35d39ae11c89b24a495d38d7312efb2258f2a3/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f5442316d30466346754832674b306a535a4645585863714d7058612d3133392d34382e706e67" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/6fdbb01bedb2e67553767d45d922e3fe3ca62e254351ec28e4090ae09107b1a5/68747470733a2f2f696d672e616c6963646e2e636f6d2f696d6765787472612f69312f4f31434e3031584a466f4d5031714944787263434643385f2121363030303030303030353437322d322d7470732d3132302d34362e706e67" rel="nofollow"></a>
 <a href="https://camo.githubusercontent.com/d491a98fb9ae37496e4eaef3bd869762feaa754d4fa630783d595f14bff9966b/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f544231344c68486d4d6750374b346a535a46715858616d685658612d3330302d3133352e706e67" rel="nofollow"></a> 
<a href="https://camo.githubusercontent.com/b206cf5b75d2f040017bc5cc14e9738f7df3da8bb0c0ef2ab4fa637533b6b5e7/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f5442317555746146755432674b306a535a46765858586e465858612d3337302d34352e6a7067" rel="nofollow"></a>    
<a href="https://camo.githubusercontent.com/7b6fc90fd6b39aa7732cb308566ba427ab2bb6f610f1037b51e4c517abc216f9/68747470733a2f2f696d672e616c6963646e2e636f6d2f696d6765787472612f69332f4f31434e303138416947624531505a644e3856753446645f2121363030303030303030313835352d322d7470732d3633302d3232302e706e67" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/10c9d871c8c2ece3cb6baf0d3824b6f7c9c3e9111e7ac42df81ba727688220b9/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f54423169716f5f46614c37674b306a535a46425858585a5a7058612d3336312d35342e6a7067" rel="nofollow"></a> 
<a href="https://camo.githubusercontent.com/1d26ef2e7b62b4da88cd1926002b9720121b118c7346cddbf84f58f21a591133/68747470733a2f2f696d672e616c6963646e2e636f6d2f696d6765787472612f69312f4f31434e3031666b77696b6531795a6478385a426550365f2121363030303030303030363539332d322d7470732d3436302d3133362e706e67" rel="nofollow"></a> 
<a href="https://camo.githubusercontent.com/2dd2ab802e9eceb219adf0396dc565ba987f616cf5f663ef673d8bc7ee3e3ba5/68747470733a2f2f696d672e616c6963646e2e636f6d2f696d6765787472612f69342f4f31434e30316f6e4768776d316a32765154526a6d78385f2121363030303030303030343439312d322d7470732d3130302d34382e706e67" rel="nofollow"></a>     
<a href="https://camo.githubusercontent.com/be5c811fbd995ab51ffb6904cc2d6da3c562b49585d5e15f5a04483e0edfb66b/68747470733a2f2f696d672e616c6963646e2e636f6d2f696d6765787472612f69332f4f31434e303134517a6a5a33316c37414b314c494e53755f2121363030303030303030343737312d322d7470732d313037332d3137352e706e67" rel="nofollow"></a>  
<a href="https://camo.githubusercontent.com/30c705b80aa19b9b1763195d82b0d735aa02408553c893a594813bbb858729b6/68747470733a2f2f696d672e616c6963646e2e636f6d2f696d6765787472612f69332f4f31434e3031544b694d4d4331565170534965336e37695f2121363030303030303030323634382d322d7470732d3933312d3836352e706e67" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/83c3a1a976ee561af65cc7f61d5c1da0d0bd00f9ca751e3c1b87c6329382bb0f/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f54423153784a5746455931674b306a535a464358586377715858612d3138352d36352e706e67" rel="nofollow"></a>  
<a href="https://camo.githubusercontent.com/c0bfbad00b95cb674307424fac7dd1a3aeb18d887217cdf0281df3aaadbe5805/68747470733a2f2f696d672e616c6963646e2e636f6d2f696d6765787472612f69312f4f31434e303174694c5a306431647657783244776c344e5f2121363030303030303030333739382d322d7470732d3138392d34352e706e67" rel="nofollow"></a>  
<a href="https://camo.githubusercontent.com/8cc08e5ee625f4e0f8cb26f9d7999b26b48b69690e51c5d4e14cd869da26705b/68747470733a2f2f696d672e616c6963646e2e636f6d2f696d6765787472612f69332f4f31434e3031326a71666f493232776d5152326a6969595f2121363030303030303030373138352d302d7470732d3230302d39332e6a7067" rel="nofollow"></a>     
<a href="https://camo.githubusercontent.com/c82bc19c9c4cfbaa572f85f4f3c60f5eb1a26cc6bcc8201240ab463859a63f51/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f54423172684e5246414c30674b306a535a467458585851435858612d3332312d39362e706e67" rel="nofollow"></a> 
<a href="https://camo.githubusercontent.com/36d831c2094392c6347ee107c01f8081fb6ef1cae7ca0b7dcf1f65b7b1d33add/68747470733a2f2f696d672e616c6963646e2e636f6d2f696d6765787472612f69342f4f31434e303132737762434231485537686778734638725f2121363030303030303030303736302d302d7470732d3132312d3132312e6a7067" rel="nofollow"></a> 
<a href="https://camo.githubusercontent.com/4d2f4fec62fd4d80449b9fcbdd83f349f2f464106cec7913c449c4b5e9d50ad4/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f5442317a75417a5a4b4c32674b306a535a466d58586337695858612d3639312d3236332e706e67" rel="nofollow"></a> 
<a href="https://camo.githubusercontent.com/b68cac5a5884680cc9916438ca20515fd8d108dd662c4baa6e731304feab8d15/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f54423138544e5246457a31674b306a535a4c65585862396b5658612d3234342d36302e6a7067" rel="nofollow"></a> 
<a href="https://camo.githubusercontent.com/eb9b3ecac2b6dbb4b2935087773bfee9679adff3a3732bc20ee79e05abf03abc/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f54423169314a5446436632674b306a535a4650585858736f7058612d3135312d36302e706e67" rel="nofollow"></a> 
<a href="https://camo.githubusercontent.com/859edc53947d64b2d11f907327ce9c3c8806d5b461b468fce3281067f1abe31b/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f5442317a74585846705937674b306a535a4b7a585861696b7058612d3137392d36302e706e67" rel="nofollow"></a> 
<a href="https://camo.githubusercontent.com/4bd472e5130c61d19d0e63e6d868fec16668cafa5dfb7c6ee6bfb20236185f98/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f544231536b4a3946755432674b306a535a46765858586e465858612d3236362d35362e706e67" rel="nofollow"></a>     
<a href="https://camo.githubusercontent.com/242b504b05e4b37c010e1c3a969afae39fd10c5eb39050f50c24025cfb2bb3f5/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f544231417a6257675a4b667875346a535a506658586233645858612d313131372d3338322e706e67" rel="nofollow"></a>  
<a href="https://camo.githubusercontent.com/4fd412d61fea3cdb5fd81156ece9a4eec3802ce98f226a4e8f1f7c8fe0f5a5f2/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f5442314874465a46713631674b306a535a466c585858444b4658612d313337352d3231342e706e67" rel="nofollow"></a>  
<a href="https://camo.githubusercontent.com/1b496f76c6be6431bbcc0242b22051c6c97e077d86e1591dd963d49992d4d119/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f5442316e61782e46754832674b306a535a4645585863714d7058612d3333362d3135342e706e67" rel="nofollow"></a>  
<a href="https://camo.githubusercontent.com/418b0a557001a3e21364cdad83d3cc42905c8e7caa341d1dc5d9cd61ce65f3f0/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f5442316e5337495a4e7631674b306a535a464658586230735858612d3731362d3139332e706e67" rel="nofollow"></a>  
<a href="https://camo.githubusercontent.com/55be61b3760ae793170b084d0bb1d15007a59775e517531dabd509108aa43e1c/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f5442313361614b7041396c304b346a535a464b585858466a7058612d3330302d3330302e706e67" rel="nofollow"></a> 
<a href="https://camo.githubusercontent.com/af11d03a05dfa464f3414ff084eb850fc298297c66be10307393b8f3798aec5c/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f544231546f33616d504d5a3765346a535a464f58585837657058612d313232382d3530302e706e67" rel="nofollow"></a> 
<a href="https://camo.githubusercontent.com/755aff8c9a4b00a19bfdd35aa9951719a50f6c8f4415134f93d5582bacea8498/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f544231435a754b7041396c304b346a535a464b585858466a7058612d3238332d39322e706e67" rel="nofollow"></a> 
<a href="https://camo.githubusercontent.com/f8979bbb199e7e5adeff70c7f71ef333e7fd6ad95ce81333e60959f5b3f9fb8d/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f5442314534736c5a465437674b306a535a4670585861546b7058612d3236382d3236382e706e67" rel="nofollow"></a> 
<a href="https://camo.githubusercontent.com/4e0e61ba790351fa5991b405a9ec430cb2adf735eb93e2e447b46f8e11235cb5/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f5442312e7349795a4b4c32674b306a535a466d58586337695858612d3132312d3132312e706e67" rel="nofollow"></a> 
<a href="https://camo.githubusercontent.com/3237cb5408850164634b898cc0a0e725fd952f076a5ff17f7c3fdcf8faf65dee/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f544231615555635a485931674b306a535a544558585844515658612d3234362d37322e706e67" rel="nofollow"></a> 
<a href="https://camo.githubusercontent.com/6c607aa0155d908f57f6aa82e4c6e7398b9eb12753c04d6208a8764a63b143e8/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f54423176332e675a4c6232674b306a535a4b3958586145674658612d3234302d3234302e706e67" rel="nofollow"></a> 
<a href="https://camo.githubusercontent.com/d0f657ac102f851f24a40ad6643827074329950f2c624a7f80f087f40bc63249/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f54423156486b725a487231674b306a535a464458586239795658612d3234382d38302e706e67" rel="nofollow"></a> 
<a href="https://camo.githubusercontent.com/cc170a6a0ef9107a1eca0e331f15ff1efec1e37ed279ff31d57709576852a461/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f5442316b47456c5a554831674b306a535a5379585858746c7058612d3132362d34382e706e67" rel="nofollow"></a> 
<a href="https://camo.githubusercontent.com/62dd669614c02524d40ff40a6de94ede0168847feab19eb9bd37161750ef5049/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f5442316b4949715a555931674b306a535a464d58586157635658612d39302d38302e706e67" rel="nofollow"></a> 
<a href="https://camo.githubusercontent.com/10882562e9e9197f894ae707a386acbec3ed0633c7955fedbd8b9e78eab5291a/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f5442314361776b5a4e4431674b306a535a46735858626c645658612d3131322d3131322e706e67" rel="nofollow"></a> 
<a href="https://camo.githubusercontent.com/b6a89fecb184ac28e2f0de7883f22982de9e6f31635fdf36220c2bcede37bf95/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f54423166785a715a514c30674b306a535a464158586341397058612d3330302d3330302e706e67" rel="nofollow"></a> 
<a href="https://camo.githubusercontent.com/2214a2878d8db8a10f7db23e805848862fa6b7deba270c550569ff8eaa1d0dba/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f544231713355695a4b4c32674b306a535a506858586168765858612d3830322d3237312e706e67" rel="nofollow"></a> 
<a href="https://camo.githubusercontent.com/069ded7cb77dbb78ea81bfe57d46995e53e1cd662ed9a6528d8bcca174fd07aa/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f544231756637625a514c30674b306a535a467458585851435858612d3330332d36352e706e67" rel="nofollow"></a> 
<a href="https://camo.githubusercontent.com/7cd2e7922a54a7e0adad5d461cc65ea2ff1c76ad1e5e94fe2b0bc9ba6f810212/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f544231574d676d5a555931674b306a535a464358586377715858612d3138392d35372e706e67" rel="nofollow"></a> 
<a href="https://camo.githubusercontent.com/e5c9dea10f36f5863e02d0644e144f11ec34e2a4dc08908fe68993854729996a/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f544231676e6c6c706e4d313175346a535a507858586168635858612d3135302d36302e706e67" rel="nofollow"></a> 
<a href="https://camo.githubusercontent.com/c93b9e496728e3ba14f5a89bf553874f287194c2f441265dffc0201f28ddd7b0/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f5442314e4a6d4c7041396c304b346a535a464b585858466a7058612d3139352d36302e706e67" rel="nofollow"></a> 
<a href="https://camo.githubusercontent.com/666414e3ffadb49b820aab0beb9635c5ea5246d096a9fae45b5e466947fc99c9/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f5442316a66434c7041396c304b346a535a464b585858466a7058612d3531342d3232302e706e67" rel="nofollow"></a> 
<a href="https://camo.githubusercontent.com/dcaca2616ab27eaf88b1ae267de662206d03b2697ff89b52880d0326df4e2c79/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f54423176784a2e5a565437674b306a535a4670585861546b7058612d3330392d35312e706e67" rel="nofollow"></a> 
<a href="https://camo.githubusercontent.com/0aa1606b037d2c64f987b2db29a11ed22886a200a335446ed025369a886b527e/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f544231763565695a2e5431674b306a535a46725858634e435858612d3530302d34312e706e67" rel="nofollow"></a> 
<a href="https://camo.githubusercontent.com/782d92ae7f40b44de354dcdf76616e22ed162f687592b24a5df4e47339cb8f7a/68747470733a2f2f696d672e616c6963646e2e636f6d2f696d6765787472612f69322f4f31434e3031515045506e78317a614f43396e345158455f2121363030303030303030363733302d302d7470732d3738312d3130302e6a7067" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/f77d3d5712a508d329e7533612feaf34e33591217acc8fd29c5e186cae352fbc/68747470733a2f2f696d672e616c6963646e2e636f6d2f696d6765787472612f69332f4f31434e303138584b71574b31565053487842784c48525f2121363030303030303030323634352d322d7470732d3239352d37392e706e67" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/46f3df74a387361cd8bb66c083939af7b289c4c94253e93c072ab77ced5f8a31/68747470733a2f2f696d672e616c6963646e2e636f6d2f696d6765787472612f69312f4f31434e3031556b626b65463150436a616a62736c52665f2121363030303030303030313830352d302d7470732d3230302d3230302e6a7067" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/a8502836d9f3c0f2267c4c838cf3989ef697c1c153641f4e4e8346a1e5a63aa0/68747470733a2f2f696d672e616c6963646e2e636f6d2f696d6765787472612f69322f4f31434e30315475504668543238386b724f58525851435f2121363030303030303030373838382d302d7470732d3230302d3230302e6a7067" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/212bded87156d06a8bcf2f9afa1728b2b2b33d0748c5eb14303b229a1420415d/68747470733a2f2f696d672e616c6963646e2e636f6d2f696d6765787472612f69322f4f31434e3031745567344e77316d554c7a5253517234425f2121363030303030303030343935372d322d7470732d3434372d3334362e706e67" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/dceefdf0c5715d4093aa7b39b42cfdc68c3c135cc6c91145bc952d15bfa7835c/68747470733a2f2f696d672e616c6963646e2e636f6d2f696d6765787472612f69322f4f31434e30317357776f713231565053486d7a437168375f2121363030303030303030323634352d322d7470732d3230302d3130302e706e67" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/28bb21d266730d9555cd2c101ae69782997cb32e6b78dbea2a0653f2858bb7d5/68747470733a2f2f696d672e616c6963646e2e636f6d2f696d6765787472612f69312f4f31434e30316f626742756e31506a46694b556f5747725f2121363030303030303030313837362d322d7470732d3139322d3139322e706e67" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/b82698339588f4426effe5b284fe25482e9e6a006755fbb64d2cc2395b1111cf/68747470733a2f2f696d672e616c6963646e2e636f6d2f696d6765787472612f69322f4f31434e303169386969436b3239517541697478694a715f2121363030303030303030383036332d302d7470732d3337382d3132332e6a7067" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/05f0cfd55dd765efd757188ea76909df9d49f3f42d81af6151f5bf2b19633984/68747470733a2f2f696d672e616c6963646e2e636f6d2f696d6765787472612f69322f4f31434e30314c42595869363238386b724a36417871385f2121363030303030303030373838382d322d7470732d313230362d3135382e706e67" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/75db368c9406f4922b6e595261062d9c111349833b72fb5b19c58ba7683ebdc2/68747470733a2f2f696d672e616c6963646e2e636f6d2f696d6765787472612f69322f4f31434e3031464e344b3349315371345351567344786f5f2121363030303030303030323239372d322d7470732d3431342d39352e706e67" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/305431256554560ac577a2a8a0a253cafd647ef11bc937b0b18272a2a342c708/68747470733a2f2f696d672e616c6963646e2e636f6d2f696d6765787472612f69322f4f31434e3031333042703848315354643635466e786e305f2121363030303030303030323234382d322d7470732d3637372d3137322e706e67" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/fa84ed217a085d522c46a1b657c70d63fa511633cb55f91e09d8e362d74717e8/68747470733a2f2f696d672e616c6963646e2e636f6d2f696d6765787472612f69312f4f31434e30313836455356573168685a4f374f747834585f2121363030303030303030343330392d322d7470732d3337362d3130382e706e67" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/dae7a52d685d414a07429b108d5470c45b8c65d927b8f8a720b4b5a367feb29a/68747470733a2f2f696d672e616c6963646e2e636f6d2f696d6765787472612f69322f4f31434e303131684c625248316654694169364c71355a5f2121363030303030303030343030382d302d7470732d3238332d3238332e6a7067" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/337bbbdef7862979357be84866f49436a9b68728b63a1338a9547f065ed62276/68747470733a2f2f696d672e616c6963646e2e636f6d2f696d6765787472612f69332f4f31434e3031634a5173563931467a394c654a45614c315f2121363030303030303030303535372d302d7470732d3333392d3138392e6a7067" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/d1d2a1850375ae7a0b252f14cea0f71ae09c951b2d1c479a30b3e70bb14ec051/68747470733a2f2f696d672e616c6963646e2e636f6d2f696d6765787472612f69342f4f31434e30314b7673454f503231613343557a446c6c755f2121363030303030303030373030302d322d7470732d313932302d3735302e706e67" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/5878f1b47a2bdd61d50433a8ae55452fefe6bc04562589aff64f49f6b0637ad6/68747470733a2f2f696d672e616c6963646e2e636f6d2f696d6765787472612f69312f4f31434e30314572646977643152726344743262714b6c5f2121363030303030303030323136352d302d7470732d313038302d313038302e6a7067" rel="nofollow"></a>
<a href="https://camo.githubusercontent.com/9dcbcb2f7c3e81287b6075370e8a12fb1bbee7cbe3d50a562aa6f47248acbfcc/68747470733a2f2f696d672e616c6963646e2e636f6d2f696d6765787472612f69342f4f31434e303152633076553631735351336a76523072775f2121363030303030303030353736352d322d7470732d313037362d3232382e706e67" rel="nofollow"></a>
Alternative Projects

Subscribe to Open Source Businees Newsletter

Twice a month we will interview people behind open source businesses. We will talk about how they are building a business on top of open source projects.

We'll never share your email with anyone else.