Do you need or want a WordPress plugin in your language?
Many users ask for translated versions of WPeMatico, WPeMatico Custom Hooks or other of our developed plugins.
We launch the plugins with the English and Spanish languages and we would like to continue to expand and maintain these languages. That’s why we invite you to be part of the translators. It’s very easy.
WordPress.org currently hosts a web based translation tool that allows anyone to contribute translations for WordPress plugins hosted on WordPress.org.
This method allows you to use the plugin in your language, and also helps other users to automatically use the plugin in their own language.
We think in gifts for translators who want to collaborate translating our plugins into other languages. You can create a support ticket if you are interested.
In this tutorial we will explain how to translate a plugin in just 5 steps.
To start contributing, you must select the language into which you want to translate.
In the list of subprojects you can see information about the translation status.
On the translation screen, you will see a simple user interface with source text and text area to provide translation for specific words or phrases.
The translation will remain in a Waiting state until some editor approves it.
Finally, the translation will be ready and can be exported as a .po file.
25307daf5b24cb7d35a44e496e76a76f83dcc0e6d492c00861313eacb8bac9bf.eyJibG9ja05hbWUiOm51bGwsImF0dHJzIjp7ImRpc2FibGVDYWNoZSI6ZmFsc2V9LCJpbm5lckJsb2NrcyI6W10sImlubmVySFRNTCI6IjxkaXY+PGgyPkRvIHlvdSBuZWVkIG9yIHdhbnQgYSBXb3JkUHJlc3MgcGx1Z2luIGluIHlvdXIgbGFuZ3VhZ2U/PFwvaDI+XG48cD5NYW55IHVzZXJzIGFzayBmb3IgdHJhbnNsYXRlZCB2ZXJzaW9ucyBvZiBXUGVNYXRpY28sIFdQZU1hdGljbyBDdXN0b20gSG9va3Mgb3Igb3RoZXIgb2Ygb3VyIGRldmVsb3BlZCBwbHVnaW5zLjxcL3A+XG48cD5XZSBsYXVuY2ggdGhlIHBsdWdpbnMgd2l0aCB0aGUgRW5nbGlzaCBhbmQgU3BhbmlzaCBsYW5ndWFnZXMgYW5kIHdlIHdvdWxkIGxpa2UgdG8gY29udGludWUgdG8gZXhwYW5kIGFuZCBtYWludGFpbiB0aGVzZSBsYW5ndWFnZXMuIFRoYXQmcnNxdW87cyB3aHkgd2UgaW52aXRlIHlvdSB0byBiZSBwYXJ0IG9mIHRoZSB0cmFuc2xhdG9ycy4gSXQmcnNxdW87cyB2ZXJ5IGVhc3kuPFwvcD5cbjxwPldvcmRQcmVzcy5vcmcgY3VycmVudGx5IGhvc3RzIGEgd2ViIGJhc2VkIHRyYW5zbGF0aW9uIHRvb2wgdGhhdCBhbGxvd3MgYW55b25lIHRvIGNvbnRyaWJ1dGUgdHJhbnNsYXRpb25zIGZvciBXb3JkUHJlc3MgcGx1Z2lucyBob3N0ZWQgb24gV29yZFByZXNzLm9yZy48XC9wPlxuPHA+VGhpcyBtZXRob2QgYWxsb3dzIHlvdSB0byB1c2UgdGhlIHBsdWdpbiBpbiB5b3VyIGxhbmd1YWdlLCBhbmQgYWxzbyBoZWxwcyBvdGhlciB1c2VycyB0byBhdXRvbWF0aWNhbGx5IHVzZSB0aGUgcGx1Z2luIGluIHRoZWlyIG93biBsYW5ndWFnZS48XC9wPlxuPHA+V2UgdGhpbmsgaW4gZ2lmdHMgZm9yIHRyYW5zbGF0b3JzIHdobyB3YW50IHRvIGNvbGxhYm9yYXRlIHRyYW5zbGF0aW5nIG91ciBwbHVnaW5zIGludG8gb3RoZXIgbGFuZ3VhZ2VzLiBZb3UgY2FuIGNyZWF0ZSBhIHN1cHBvcnQgdGlja2V0IGlmIHlvdSBhcmUgaW50ZXJlc3RlZC4gPFwvcD5cbjxwPkluIHRoaXMgdHV0b3JpYWwgd2Ugd2lsbCBleHBsYWluIGhvdyB0byB0cmFuc2xhdGUgYSBwbHVnaW4gaW4ganVzdCA1IHN0ZXBzLjxicj5cbjxcL3A+PGRpdiBjbGFzcz1cInN1LWhlYWRpbmcgc3UtaGVhZGluZy1zdHlsZS1kZWZhdWx0IHN1LWhlYWRpbmctYWxpZ24tbGVmdFwiIGlkPVwiXCIgc3R5bGU9XCJmb250LXNpemU6MThweDttYXJnaW4tYm90dG9tOjIwcHhcIj48ZGl2IGNsYXNzPVwic3UtaGVhZGluZy1pbm5lclwiPjxzdHJvbmc+MS4tIFN0YXJ0IGNvbnRyaWJ1dGluZzxcL3N0cm9uZz48XC9kaXY+PFwvZGl2Pjxicj5cblRvIHN0YXJ0IGNvbnRyaWJ1dGluZywgeW91IG11c3Qgc2VsZWN0IHRoZSBsYW5ndWFnZSBpbnRvIHdoaWNoIHlvdSB3YW50IHRvIHRyYW5zbGF0ZS5cbjxwPjxpbWcgY2xhc3M9XCJhbGlnbmNlbnRlciB3cC1pbWFnZS0xNDMzOTIgc2l6ZS1sYXJnZVwiIHNyYz1cImh0dHBzOlwvXC9wcnVlYmFzMi5uZXRtZHAuY29tLmFyXC93cC1jb250ZW50XC91cGxvYWRzXC8yMDIwXC8wNFwvc3RhcnQtMTAyNHg5MjItMS5wbmdcIiBhbHQ9XCJcIiB3aWR0aD1cIjcyMlwiIGhlaWdodD1cIjY1MFwiIHNyY3NldD1cImh0dHBzOlwvXC9wcnVlYmFzMi5uZXRtZHAuY29tLmFyXC93cC1jb250ZW50XC91cGxvYWRzXC8yMDIwXC8wNFwvc3RhcnQtMTAyNHg5MjItMS5wbmcgMTAyNHcsIGh0dHBzOlwvXC9ldHJ1ZWwuY29tXC93cC1jb250ZW50XC91cGxvYWRzXC8yMDE5XC8wOFwvc3RhcnQtMTY3eDE1MC5wbmcgMTY3dywgaHR0cHM6XC9cL2V0cnVlbC5jb21cL3dwLWNvbnRlbnRcL3VwbG9hZHNcLzIwMTlcLzA4XC9zdGFydC00NDB4Mzk2LnBuZyA0NDB3LCBodHRwczpcL1wvZXRydWVsLmNvbVwvd3AtY29udGVudFwvdXBsb2Fkc1wvMjAxOVwvMDhcL3N0YXJ0LTc2OHg2OTEucG5nIDc2OHcsIGh0dHBzOlwvXC9ldHJ1ZWwuY29tXC93cC1jb250ZW50XC91cGxvYWRzXC8yMDE5XC8wOFwvc3RhcnQucG5nIDEyODB3XCIgc2l6ZXM9XCIobWF4LXdpZHRoOiA3MjJweCkgMTAwdncsIDcyMnB4XCI+PFwvcD5cbjxwPjxpbWcgY2xhc3M9XCJhbGlnbmNlbnRlciB3cC1pbWFnZS0xNDMzOTQgc2l6ZS1sYXJnZVwiIHNyYz1cImh0dHBzOlwvXC9wcnVlYmFzMi5uZXRtZHAuY29tLmFyXC93cC1jb250ZW50XC91cGxvYWRzXC8yMDIwXC8wNFwvc2VsZWN0LWxhbmd1YWdlLTEwMjR4NzU4LTEucG5nXCIgYWx0PVwiXCIgd2lkdGg9XCI3MjJcIiBoZWlnaHQ9XCI1MzRcIiBzcmNzZXQ9XCJodHRwczpcL1wvcHJ1ZWJhczIubmV0bWRwLmNvbS5hclwvd3AtY29udGVudFwvdXBsb2Fkc1wvMjAyMFwvMDRcL3NlbGVjdC1sYW5ndWFnZS0xMDI0eDc1OC0xLnBuZyAxMDI0dywgaHR0cHM6XC9cL2V0cnVlbC5jb21cL3dwLWNvbnRlbnRcL3VwbG9hZHNcLzIwMTlcLzA4XC9zZWxlY3QtbGFuZ3VhZ2UtMjAweDE0OC5wbmcgMjAwdywgaHR0cHM6XC9cL2V0cnVlbC5jb21cL3dwLWNvbnRlbnRcL3VwbG9hZHNcLzIwMTlcLzA4XC9zZWxlY3QtbGFuZ3VhZ2UtNDQweDMyNi5wbmcgNDQwdywgaHR0cHM6XC9cL2V0cnVlbC5jb21cL3dwLWNvbnRlbnRcL3VwbG9hZHNcLzIwMTlcLzA4XC9zZWxlY3QtbGFuZ3VhZ2UtNzY4eDU2OS5wbmcgNzY4dywgaHR0cHM6XC9cL2V0cnVlbC5jb21cL3dwLWNvbnRlbnRcL3VwbG9hZHNcLzIwMTlcLzA4XC9zZWxlY3QtbGFuZ3VhZ2UucG5nIDEyODB3XCIgc2l6ZXM9XCIobWF4LXdpZHRoOiA3MjJweCkgMTAwdncsIDcyMnB4XCI+PFwvcD5cbjxwPjxcL3A+PGRpdiBjbGFzcz1cInN1LWhlYWRpbmcgc3UtaGVhZGluZy1zdHlsZS1kZWZhdWx0IHN1LWhlYWRpbmctYWxpZ24tbGVmdFwiIGlkPVwiXCIgc3R5bGU9XCJmb250LXNpemU6MThweDttYXJnaW4tYm90dG9tOjIwcHhcIj48ZGl2IGNsYXNzPVwic3UtaGVhZGluZy1pbm5lclwiPjxzdHJvbmc+Mi4tIFNlbGVjdCB0aGUgc3ViLXByb2plY3QgdG8gYmUgdHJhbnNsYXRlZC48XC9zdHJvbmc+PFwvZGl2PjxcL2Rpdj48YnI+XG5JbiB0aGUgbGlzdCBvZiBzdWJwcm9qZWN0cyB5b3UgY2FuIHNlZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgdHJhbnNsYXRpb24gc3RhdHVzLlxuPHA+PGltZyBjbGFzcz1cImFsaWduY2VudGVyIHdwLWltYWdlLTE0MzM5NSBzaXplLWxhcmdlXCIgc3JjPVwiaHR0cHM6XC9cL3BydWViYXMyLm5ldG1kcC5jb20uYXJcL3dwLWNvbnRlbnRcL3VwbG9hZHNcLzIwMjBcLzA0XC9zZWxlY3QtcHJvamVjdC0xMDI0eDY5My0xLnBuZ1wiIGFsdD1cIlwiIHdpZHRoPVwiNzIyXCIgaGVpZ2h0PVwiNDg5XCIgc3Jjc2V0PVwiaHR0cHM6XC9cL3BydWViYXMyLm5ldG1kcC5jb20uYXJcL3dwLWNvbnRlbnRcL3VwbG9hZHNcLzIwMjBcLzA0XC9zZWxlY3QtcHJvamVjdC0xMDI0eDY5My0xLnBuZyAxMDI0dywgaHR0cHM6XC9cL2V0cnVlbC5jb21cL3dwLWNvbnRlbnRcL3VwbG9hZHNcLzIwMTlcLzA4XC9zZWxlY3QtcHJvamVjdC0yMDB4MTM1LnBuZyAyMDB3LCBodHRwczpcL1wvZXRydWVsLmNvbVwvd3AtY29udGVudFwvdXBsb2Fkc1wvMjAxOVwvMDhcL3NlbGVjdC1wcm9qZWN0LTQ0MHgyOTgucG5nIDQ0MHcsIGh0dHBzOlwvXC9ldHJ1ZWwuY29tXC93cC1jb250ZW50XC91cGxvYWRzXC8yMDE5XC8wOFwvc2VsZWN0LXByb2plY3QtNzY4eDUyMC5wbmcgNzY4dywgaHR0cHM6XC9cL2V0cnVlbC5jb21cL3dwLWNvbnRlbnRcL3VwbG9hZHNcLzIwMTlcLzA4XC9zZWxlY3QtcHJvamVjdC5wbmcgMTI4MHdcIiBzaXplcz1cIihtYXgtd2lkdGg6IDcyMnB4KSAxMDB2dywgNzIycHhcIj48XC9wPlxuPHA+PFwvcD48ZGl2IGNsYXNzPVwic3UtaGVhZGluZyBzdS1oZWFkaW5nLXN0eWxlLWRlZmF1bHQgc3UtaGVhZGluZy1hbGlnbi1sZWZ0XCIgaWQ9XCJcIiBzdHlsZT1cImZvbnQtc2l6ZToxOHB4O21hcmdpbi1ib3R0b206MjBweFwiPjxkaXYgY2xhc3M9XCJzdS1oZWFkaW5nLWlubmVyXCI+PHN0cm9uZz4zLi0gU2VsZWN0IGFuZCB0cmFuc2xhdGUgcGhyYXNlcyBvciB3b3Jkcy48XC9zdHJvbmc+PFwvZGl2PjxcL2Rpdj48YnI+XG5PbiB0aGUgdHJhbnNsYXRpb24gc2NyZWVuLCB5b3Ugd2lsbCBzZWUgYSBzaW1wbGUgdXNlciBpbnRlcmZhY2Ugd2l0aCBzb3VyY2UgdGV4dCBhbmQgdGV4dCBhcmVhIHRvIHByb3ZpZGUgdHJhbnNsYXRpb24gZm9yIHNwZWNpZmljIHdvcmRzIG9yIHBocmFzZXMuXG48cD48aW1nIGNsYXNzPVwiYWxpZ25jZW50ZXIgd3AtaW1hZ2UtMTQzMzk2IHNpemUtbGFyZ2VcIiBzcmM9XCJodHRwczpcL1wvcHJ1ZWJhczIubmV0bWRwLmNvbS5hclwvd3AtY29udGVudFwvdXBsb2Fkc1wvMjAyMFwvMDRcL3NlbGVjdC10ZXh0LTEwMjR4ODkyLTEucG5nXCIgYWx0PVwiXCIgd2lkdGg9XCI3MjJcIiBoZWlnaHQ9XCI2MjlcIiBzcmNzZXQ9XCJodHRwczpcL1wvcHJ1ZWJhczIubmV0bWRwLmNvbS5hclwvd3AtY29udGVudFwvdXBsb2Fkc1wvMjAyMFwvMDRcL3NlbGVjdC10ZXh0LTEwMjR4ODkyLTEucG5nIDEwMjR3LCBodHRwczpcL1wvZXRydWVsLmNvbVwvd3AtY29udGVudFwvdXBsb2Fkc1wvMjAxOVwvMDhcL3NlbGVjdC10ZXh0LTE3MngxNTAucG5nIDE3MncsIGh0dHBzOlwvXC9ldHJ1ZWwuY29tXC93cC1jb250ZW50XC91cGxvYWRzXC8yMDE5XC8wOFwvc2VsZWN0LXRleHQtNDQweDM4My5wbmcgNDQwdywgaHR0cHM6XC9cL2V0cnVlbC5jb21cL3dwLWNvbnRlbnRcL3VwbG9hZHNcLzIwMTlcLzA4XC9zZWxlY3QtdGV4dC03Njh4NjY5LnBuZyA3Njh3LCBodHRwczpcL1wvZXRydWVsLmNvbVwvd3AtY29udGVudFwvdXBsb2Fkc1wvMjAxOVwvMDhcL3NlbGVjdC10ZXh0LnBuZyAxMjgwd1wiIHNpemVzPVwiKG1heC13aWR0aDogNzIycHgpIDEwMHZ3LCA3MjJweFwiPjxcL3A+XG48cD48aW1nIGNsYXNzPVwiYWxpZ25jZW50ZXIgd3AtaW1hZ2UtMTQzMzk3IHNpemUtbGFyZ2VcIiBzcmM9XCJodHRwczpcL1wvcHJ1ZWJhczIubmV0bWRwLmNvbS5hclwvd3AtY29udGVudFwvdXBsb2Fkc1wvMjAyMFwvMDRcL3RyYW5zbGF0ZWQtYXJlYS0xMDI0eDkyNS0xLnBuZ1wiIGFsdD1cIlwiIHdpZHRoPVwiNzIyXCIgaGVpZ2h0PVwiNjUyXCIgc3Jjc2V0PVwiaHR0cHM6XC9cL3BydWViYXMyLm5ldG1kcC5jb20uYXJcL3dwLWNvbnRlbnRcL3VwbG9hZHNcLzIwMjBcLzA0XC90cmFuc2xhdGVkLWFyZWEtMTAyNHg5MjUtMS5wbmcgMTAyNHcsIGh0dHBzOlwvXC9ldHJ1ZWwuY29tXC93cC1jb250ZW50XC91cGxvYWRzXC8yMDE5XC8wOFwvdHJhbnNsYXRlZC1hcmVhLTE2NngxNTAucG5nIDE2NncsIGh0dHBzOlwvXC9ldHJ1ZWwuY29tXC93cC1jb250ZW50XC91cGxvYWRzXC8yMDE5XC8wOFwvdHJhbnNsYXRlZC1hcmVhLTQ0MHgzOTcucG5nIDQ0MHcsIGh0dHBzOlwvXC9ldHJ1ZWwuY29tXC93cC1jb250ZW50XC91cGxvYWRzXC8yMDE5XC8wOFwvdHJhbnNsYXRlZC1hcmVhLTc2OHg2OTQucG5nIDc2OHcsIGh0dHBzOlwvXC9ldHJ1ZWwuY29tXC93cC1jb250ZW50XC91cGxvYWRzXC8yMDE5XC8wOFwvdHJhbnNsYXRlZC1hcmVhLnBuZyAxMjgwd1wiIHNpemVzPVwiKG1heC13aWR0aDogNzIycHgpIDEwMHZ3LCA3MjJweFwiPjxcL3A+XG48cD48XC9wPjxkaXYgY2xhc3M9XCJzdS1oZWFkaW5nIHN1LWhlYWRpbmctc3R5bGUtZGVmYXVsdCBzdS1oZWFkaW5nLWFsaWduLWxlZnRcIiBpZD1cIlwiIHN0eWxlPVwiZm9udC1zaXplOjE4cHg7bWFyZ2luLWJvdHRvbToyMHB4XCI+PGRpdiBjbGFzcz1cInN1LWhlYWRpbmctaW5uZXJcIj48c3Ryb25nPjQuLVRyYW5zbGF0aW9uIFN0YXR1cy48XC9zdHJvbmc+PFwvZGl2PjxcL2Rpdj48YnI+XG5UaGUgdHJhbnNsYXRpb24gd2lsbCByZW1haW4gaW4gYSBXYWl0aW5nIHN0YXRlIHVudGlsIHNvbWUgZWRpdG9yIGFwcHJvdmVzIGl0LlxuPHA+PGltZyBjbGFzcz1cImFsaWduY2VudGVyIHdwLWltYWdlLTE0MzM5OCBzaXplLWxhcmdlXCIgc3JjPVwiaHR0cHM6XC9cL3BydWViYXMyLm5ldG1kcC5jb20uYXJcL3dwLWNvbnRlbnRcL3VwbG9hZHNcLzIwMjBcLzA0XC93YWl0aW5nLTEwMjR4ODkwLTEucG5nXCIgYWx0PVwiXCIgd2lkdGg9XCI3MjJcIiBoZWlnaHQ9XCI2MjhcIiBzcmNzZXQ9XCJodHRwczpcL1wvcHJ1ZWJhczIubmV0bWRwLmNvbS5hclwvd3AtY29udGVudFwvdXBsb2Fkc1wvMjAyMFwvMDRcL3dhaXRpbmctMTAyNHg4OTAtMS5wbmcgMTAyNHcsIGh0dHBzOlwvXC9ldHJ1ZWwuY29tXC93cC1jb250ZW50XC91cGxvYWRzXC8yMDE5XC8wOFwvd2FpdGluZy0xNzN4MTUwLnBuZyAxNzN3LCBodHRwczpcL1wvZXRydWVsLmNvbVwvd3AtY29udGVudFwvdXBsb2Fkc1wvMjAxOVwvMDhcL3dhaXRpbmctNDQweDM4Mi5wbmcgNDQwdywgaHR0cHM6XC9cL2V0cnVlbC5jb21cL3dwLWNvbnRlbnRcL3VwbG9hZHNcLzIwMTlcLzA4XC93YWl0aW5nLTc2OHg2NjcucG5nIDc2OHcsIGh0dHBzOlwvXC9ldHJ1ZWwuY29tXC93cC1jb250ZW50XC91cGxvYWRzXC8yMDE5XC8wOFwvd2FpdGluZy5wbmcgMTI4MHdcIiBzaXplcz1cIihtYXgtd2lkdGg6IDcyMnB4KSAxMDB2dywgNzIycHhcIj48XC9wPlxuPHA+PFwvcD48ZGl2IGNsYXNzPVwic3UtaGVhZGluZyBzdS1oZWFkaW5nLXN0eWxlLWRlZmF1bHQgc3UtaGVhZGluZy1hbGlnbi1sZWZ0XCIgaWQ9XCJcIiBzdHlsZT1cImZvbnQtc2l6ZToxOHB4O21hcmdpbi1ib3R0b206MjBweFwiPjxkaXYgY2xhc3M9XCJzdS1oZWFkaW5nLWlubmVyXCI+PHN0cm9uZz41Li0gRW5qb3kgaXQ8XC9zdHJvbmc+PFwvZGl2PjxcL2Rpdj48YnI+XG5GaW5hbGx5LCB0aGUgdHJhbnNsYXRpb24gd2lsbCBiZSByZWFkeSBhbmQgY2FuIGJlIGV4cG9ydGVkIGFzIGEgLnBvIGZpbGUuXG48cD48aW1nIGNsYXNzPVwiYWxpZ25jZW50ZXIgd3AtaW1hZ2UtMTQzMzk5IHNpemUtbGFyZ2VcIiBzcmM9XCJodHRwczpcL1wvcHJ1ZWJhczIubmV0bWRwLmNvbS5hclwvd3AtY29udGVudFwvdXBsb2Fkc1wvMjAyMFwvMDRcL2FwcHJvdmVkLTEwMjR4ODkwLTEucG5nXCIgYWx0PVwiXCIgd2lkdGg9XCI3MjJcIiBoZWlnaHQ9XCI2MjhcIiBzcmNzZXQ9XCJodHRwczpcL1wvcHJ1ZWJhczIubmV0bWRwLmNvbS5hclwvd3AtY29udGVudFwvdXBsb2Fkc1wvMjAyMFwvMDRcL2FwcHJvdmVkLTEwMjR4ODkwLTEucG5nIDEwMjR3LCBodHRwczpcL1wvZXRydWVsLmNvbVwvd3AtY29udGVudFwvdXBsb2Fkc1wvMjAxOVwvMDhcL2FwcHJvdmVkLTE3M3gxNTAucG5nIDE3M3csIGh0dHBzOlwvXC9ldHJ1ZWwuY29tXC93cC1jb250ZW50XC91cGxvYWRzXC8yMDE5XC8wOFwvYXBwcm92ZWQtNDQweDM4My5wbmcgNDQwdywgaHR0cHM6XC9cL2V0cnVlbC5jb21cL3dwLWNvbnRlbnRcL3VwbG9hZHNcLzIwMTlcLzA4XC9hcHByb3ZlZC03Njh4NjY4LnBuZyA3Njh3LCBodHRwczpcL1wvZXRydWVsLmNvbVwvd3AtY29udGVudFwvdXBsb2Fkc1wvMjAxOVwvMDhcL2FwcHJvdmVkLnBuZyAxMjgwd1wiIHNpemVzPVwiKG1heC13aWR0aDogNzIycHgpIDEwMHZ3LCA3MjJweFwiPjxcL3A+PFwvZGl2PiIsImlubmVyQ29udGVudCI6WyI8ZGl2PjxoMj5EbyB5b3UgbmVlZCBvciB3YW50IGEgV29yZFByZXNzIHBsdWdpbiBpbiB5b3VyIGxhbmd1YWdlPzxcL2gyPlxuPHA+TWFueSB1c2VycyBhc2sgZm9yIHRyYW5zbGF0ZWQgdmVyc2lvbnMgb2YgV1BlTWF0aWNvLCBXUGVNYXRpY28gQ3VzdG9tIEhvb2tzIG9yIG90aGVyIG9mIG91ciBkZXZlbG9wZWQgcGx1Z2lucy48XC9wPlxuPHA+V2UgbGF1bmNoIHRoZSBwbHVnaW5zIHdpdGggdGhlIEVuZ2xpc2ggYW5kIFNwYW5pc2ggbGFuZ3VhZ2VzIGFuZCB3ZSB3b3VsZCBsaWtlIHRvIGNvbnRpbnVlIHRvIGV4cGFuZCBhbmQgbWFpbnRhaW4gdGhlc2UgbGFuZ3VhZ2VzLiBUaGF0JnJzcXVvO3Mgd2h5IHdlIGludml0ZSB5b3UgdG8gYmUgcGFydCBvZiB0aGUgdHJhbnNsYXRvcnMuIEl0JnJzcXVvO3MgdmVyeSBlYXN5LjxcL3A+XG48cD5Xb3JkUHJlc3Mub3JnIGN1cnJlbnRseSBob3N0cyBhIHdlYiBiYXNlZCB0cmFuc2xhdGlvbiB0b29sIHRoYXQgYWxsb3dzIGFueW9uZSB0byBjb250cmlidXRlIHRyYW5zbGF0aW9ucyBmb3IgV29yZFByZXNzIHBsdWdpbnMgaG9zdGVkIG9uIFdvcmRQcmVzcy5vcmcuPFwvcD5cbjxwPlRoaXMgbWV0aG9kIGFsbG93cyB5b3UgdG8gdXNlIHRoZSBwbHVnaW4gaW4geW91ciBsYW5ndWFnZSwgYW5kIGFsc28gaGVscHMgb3RoZXIgdXNlcnMgdG8gYXV0b21hdGljYWxseSB1c2UgdGhlIHBsdWdpbiBpbiB0aGVpciBvd24gbGFuZ3VhZ2UuPFwvcD5cbjxwPldlIHRoaW5rIGluIGdpZnRzIGZvciB0cmFuc2xhdG9ycyB3aG8gd2FudCB0byBjb2xsYWJvcmF0ZSB0cmFuc2xhdGluZyBvdXIgcGx1Z2lucyBpbnRvIG90aGVyIGxhbmd1YWdlcy4gWW91IGNhbiBjcmVhdGUgYSBzdXBwb3J0IHRpY2tldCBpZiB5b3UgYXJlIGludGVyZXN0ZWQuIDxcL3A+XG48cD5JbiB0aGlzIHR1dG9yaWFsIHdlIHdpbGwgZXhwbGFpbiBob3cgdG8gdHJhbnNsYXRlIGEgcGx1Z2luIGluIGp1c3QgNSBzdGVwcy48YnI+XG48XC9wPjxkaXYgY2xhc3M9XCJzdS1oZWFkaW5nIHN1LWhlYWRpbmctc3R5bGUtZGVmYXVsdCBzdS1oZWFkaW5nLWFsaWduLWxlZnRcIiBpZD1cIlwiIHN0eWxlPVwiZm9udC1zaXplOjE4cHg7bWFyZ2luLWJvdHRvbToyMHB4XCI+PGRpdiBjbGFzcz1cInN1LWhlYWRpbmctaW5uZXJcIj48c3Ryb25nPjEuLSBTdGFydCBjb250cmlidXRpbmc8XC9zdHJvbmc+PFwvZGl2PjxcL2Rpdj48YnI+XG5UbyBzdGFydCBjb250cmlidXRpbmcsIHlvdSBtdXN0IHNlbGVjdCB0aGUgbGFuZ3VhZ2UgaW50byB3aGljaCB5b3Ugd2FudCB0byB0cmFuc2xhdGUuXG48cD48aW1nIGNsYXNzPVwiYWxpZ25jZW50ZXIgd3AtaW1hZ2UtMTQzMzkyIHNpemUtbGFyZ2VcIiBzcmM9XCJodHRwczpcL1wvcHJ1ZWJhczIubmV0bWRwLmNvbS5hclwvd3AtY29udGVudFwvdXBsb2Fkc1wvMjAyMFwvMDRcL3N0YXJ0LTEwMjR4OTIyLTEucG5nXCIgYWx0PVwiXCIgd2lkdGg9XCI3MjJcIiBoZWlnaHQ9XCI2NTBcIiBzcmNzZXQ9XCJodHRwczpcL1wvcHJ1ZWJhczIubmV0bWRwLmNvbS5hclwvd3AtY29udGVudFwvdXBsb2Fkc1wvMjAyMFwvMDRcL3N0YXJ0LTEwMjR4OTIyLTEucG5nIDEwMjR3LCBodHRwczpcL1wvZXRydWVsLmNvbVwvd3AtY29udGVudFwvdXBsb2Fkc1wvMjAxOVwvMDhcL3N0YXJ0LTE2N3gxNTAucG5nIDE2N3csIGh0dHBzOlwvXC9ldHJ1ZWwuY29tXC93cC1jb250ZW50XC91cGxvYWRzXC8yMDE5XC8wOFwvc3RhcnQtNDQweDM5Ni5wbmcgNDQwdywgaHR0cHM6XC9cL2V0cnVlbC5jb21cL3dwLWNvbnRlbnRcL3VwbG9hZHNcLzIwMTlcLzA4XC9zdGFydC03Njh4NjkxLnBuZyA3Njh3LCBodHRwczpcL1wvZXRydWVsLmNvbVwvd3AtY29udGVudFwvdXBsb2Fkc1wvMjAxOVwvMDhcL3N0YXJ0LnBuZyAxMjgwd1wiIHNpemVzPVwiKG1heC13aWR0aDogNzIycHgpIDEwMHZ3LCA3MjJweFwiPjxcL3A+XG48cD48aW1nIGNsYXNzPVwiYWxpZ25jZW50ZXIgd3AtaW1hZ2UtMTQzMzk0IHNpemUtbGFyZ2VcIiBzcmM9XCJodHRwczpcL1wvcHJ1ZWJhczIubmV0bWRwLmNvbS5hclwvd3AtY29udGVudFwvdXBsb2Fkc1wvMjAyMFwvMDRcL3NlbGVjdC1sYW5ndWFnZS0xMDI0eDc1OC0xLnBuZ1wiIGFsdD1cIlwiIHdpZHRoPVwiNzIyXCIgaGVpZ2h0PVwiNTM0XCIgc3Jjc2V0PVwiaHR0cHM6XC9cL3BydWViYXMyLm5ldG1kcC5jb20uYXJcL3dwLWNvbnRlbnRcL3VwbG9hZHNcLzIwMjBcLzA0XC9zZWxlY3QtbGFuZ3VhZ2UtMTAyNHg3NTgtMS5wbmcgMTAyNHcsIGh0dHBzOlwvXC9ldHJ1ZWwuY29tXC93cC1jb250ZW50XC91cGxvYWRzXC8yMDE5XC8wOFwvc2VsZWN0LWxhbmd1YWdlLTIwMHgxNDgucG5nIDIwMHcsIGh0dHBzOlwvXC9ldHJ1ZWwuY29tXC93cC1jb250ZW50XC91cGxvYWRzXC8yMDE5XC8wOFwvc2VsZWN0LWxhbmd1YWdlLTQ0MHgzMjYucG5nIDQ0MHcsIGh0dHBzOlwvXC9ldHJ1ZWwuY29tXC93cC1jb250ZW50XC91cGxvYWRzXC8yMDE5XC8wOFwvc2VsZWN0LWxhbmd1YWdlLTc2OHg1NjkucG5nIDc2OHcsIGh0dHBzOlwvXC9ldHJ1ZWwuY29tXC93cC1jb250ZW50XC91cGxvYWRzXC8yMDE5XC8wOFwvc2VsZWN0LWxhbmd1YWdlLnBuZyAxMjgwd1wiIHNpemVzPVwiKG1heC13aWR0aDogNzIycHgpIDEwMHZ3LCA3MjJweFwiPjxcL3A+XG48cD48XC9wPjxkaXYgY2xhc3M9XCJzdS1oZWFkaW5nIHN1LWhlYWRpbmctc3R5bGUtZGVmYXVsdCBzdS1oZWFkaW5nLWFsaWduLWxlZnRcIiBpZD1cIlwiIHN0eWxlPVwiZm9udC1zaXplOjE4cHg7bWFyZ2luLWJvdHRvbToyMHB4XCI+PGRpdiBjbGFzcz1cInN1LWhlYWRpbmctaW5uZXJcIj48c3Ryb25nPjIuLSBTZWxlY3QgdGhlIHN1Yi1wcm9qZWN0IHRvIGJlIHRyYW5zbGF0ZWQuPFwvc3Ryb25nPjxcL2Rpdj48XC9kaXY+PGJyPlxuSW4gdGhlIGxpc3Qgb2Ygc3VicHJvamVjdHMgeW91IGNhbiBzZWUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHRyYW5zbGF0aW9uIHN0YXR1cy5cbjxwPjxpbWcgY2xhc3M9XCJhbGlnbmNlbnRlciB3cC1pbWFnZS0xNDMzOTUgc2l6ZS1sYXJnZVwiIHNyYz1cImh0dHBzOlwvXC9wcnVlYmFzMi5uZXRtZHAuY29tLmFyXC93cC1jb250ZW50XC91cGxvYWRzXC8yMDIwXC8wNFwvc2VsZWN0LXByb2plY3QtMTAyNHg2OTMtMS5wbmdcIiBhbHQ9XCJcIiB3aWR0aD1cIjcyMlwiIGhlaWdodD1cIjQ4OVwiIHNyY3NldD1cImh0dHBzOlwvXC9wcnVlYmFzMi5uZXRtZHAuY29tLmFyXC93cC1jb250ZW50XC91cGxvYWRzXC8yMDIwXC8wNFwvc2VsZWN0LXByb2plY3QtMTAyNHg2OTMtMS5wbmcgMTAyNHcsIGh0dHBzOlwvXC9ldHJ1ZWwuY29tXC93cC1jb250ZW50XC91cGxvYWRzXC8yMDE5XC8wOFwvc2VsZWN0LXByb2plY3QtMjAweDEzNS5wbmcgMjAwdywgaHR0cHM6XC9cL2V0cnVlbC5jb21cL3dwLWNvbnRlbnRcL3VwbG9hZHNcLzIwMTlcLzA4XC9zZWxlY3QtcHJvamVjdC00NDB4Mjk4LnBuZyA0NDB3LCBodHRwczpcL1wvZXRydWVsLmNvbVwvd3AtY29udGVudFwvdXBsb2Fkc1wvMjAxOVwvMDhcL3NlbGVjdC1wcm9qZWN0LTc2OHg1MjAucG5nIDc2OHcsIGh0dHBzOlwvXC9ldHJ1ZWwuY29tXC93cC1jb250ZW50XC91cGxvYWRzXC8yMDE5XC8wOFwvc2VsZWN0LXByb2plY3QucG5nIDEyODB3XCIgc2l6ZXM9XCIobWF4LXdpZHRoOiA3MjJweCkgMTAwdncsIDcyMnB4XCI+PFwvcD5cbjxwPjxcL3A+PGRpdiBjbGFzcz1cInN1LWhlYWRpbmcgc3UtaGVhZGluZy1zdHlsZS1kZWZhdWx0IHN1LWhlYWRpbmctYWxpZ24tbGVmdFwiIGlkPVwiXCIgc3R5bGU9XCJmb250LXNpemU6MThweDttYXJnaW4tYm90dG9tOjIwcHhcIj48ZGl2IGNsYXNzPVwic3UtaGVhZGluZy1pbm5lclwiPjxzdHJvbmc+My4tIFNlbGVjdCBhbmQgdHJhbnNsYXRlIHBocmFzZXMgb3Igd29yZHMuPFwvc3Ryb25nPjxcL2Rpdj48XC9kaXY+PGJyPlxuT24gdGhlIHRyYW5zbGF0aW9uIHNjcmVlbiwgeW91IHdpbGwgc2VlIGEgc2ltcGxlIHVzZXIgaW50ZXJmYWNlIHdpdGggc291cmNlIHRleHQgYW5kIHRleHQgYXJlYSB0byBwcm92aWRlIHRyYW5zbGF0aW9uIGZvciBzcGVjaWZpYyB3b3JkcyBvciBwaHJhc2VzLlxuPHA+PGltZyBjbGFzcz1cImFsaWduY2VudGVyIHdwLWltYWdlLTE0MzM5NiBzaXplLWxhcmdlXCIgc3JjPVwiaHR0cHM6XC9cL3BydWViYXMyLm5ldG1kcC5jb20uYXJcL3dwLWNvbnRlbnRcL3VwbG9hZHNcLzIwMjBcLzA0XC9zZWxlY3QtdGV4dC0xMDI0eDg5Mi0xLnBuZ1wiIGFsdD1cIlwiIHdpZHRoPVwiNzIyXCIgaGVpZ2h0PVwiNjI5XCIgc3Jjc2V0PVwiaHR0cHM6XC9cL3BydWViYXMyLm5ldG1kcC5jb20uYXJcL3dwLWNvbnRlbnRcL3VwbG9hZHNcLzIwMjBcLzA0XC9zZWxlY3QtdGV4dC0xMDI0eDg5Mi0xLnBuZyAxMDI0dywgaHR0cHM6XC9cL2V0cnVlbC5jb21cL3dwLWNvbnRlbnRcL3VwbG9hZHNcLzIwMTlcLzA4XC9zZWxlY3QtdGV4dC0xNzJ4MTUwLnBuZyAxNzJ3LCBodHRwczpcL1wvZXRydWVsLmNvbVwvd3AtY29udGVudFwvdXBsb2Fkc1wvMjAxOVwvMDhcL3NlbGVjdC10ZXh0LTQ0MHgzODMucG5nIDQ0MHcsIGh0dHBzOlwvXC9ldHJ1ZWwuY29tXC93cC1jb250ZW50XC91cGxvYWRzXC8yMDE5XC8wOFwvc2VsZWN0LXRleHQtNzY4eDY2OS5wbmcgNzY4dywgaHR0cHM6XC9cL2V0cnVlbC5jb21cL3dwLWNvbnRlbnRcL3VwbG9hZHNcLzIwMTlcLzA4XC9zZWxlY3QtdGV4dC5wbmcgMTI4MHdcIiBzaXplcz1cIihtYXgtd2lkdGg6IDcyMnB4KSAxMDB2dywgNzIycHhcIj48XC9wPlxuPHA+PGltZyBjbGFzcz1cImFsaWduY2VudGVyIHdwLWltYWdlLTE0MzM5NyBzaXplLWxhcmdlXCIgc3JjPVwiaHR0cHM6XC9cL3BydWViYXMyLm5ldG1kcC5jb20uYXJcL3dwLWNvbnRlbnRcL3VwbG9hZHNcLzIwMjBcLzA0XC90cmFuc2xhdGVkLWFyZWEtMTAyNHg5MjUtMS5wbmdcIiBhbHQ9XCJcIiB3aWR0aD1cIjcyMlwiIGhlaWdodD1cIjY1MlwiIHNyY3NldD1cImh0dHBzOlwvXC9wcnVlYmFzMi5uZXRtZHAuY29tLmFyXC93cC1jb250ZW50XC91cGxvYWRzXC8yMDIwXC8wNFwvdHJhbnNsYXRlZC1hcmVhLTEwMjR4OTI1LTEucG5nIDEwMjR3LCBodHRwczpcL1wvZXRydWVsLmNvbVwvd3AtY29udGVudFwvdXBsb2Fkc1wvMjAxOVwvMDhcL3RyYW5zbGF0ZWQtYXJlYS0xNjZ4MTUwLnBuZyAxNjZ3LCBodHRwczpcL1wvZXRydWVsLmNvbVwvd3AtY29udGVudFwvdXBsb2Fkc1wvMjAxOVwvMDhcL3RyYW5zbGF0ZWQtYXJlYS00NDB4Mzk3LnBuZyA0NDB3LCBodHRwczpcL1wvZXRydWVsLmNvbVwvd3AtY29udGVudFwvdXBsb2Fkc1wvMjAxOVwvMDhcL3RyYW5zbGF0ZWQtYXJlYS03Njh4Njk0LnBuZyA3Njh3LCBodHRwczpcL1wvZXRydWVsLmNvbVwvd3AtY29udGVudFwvdXBsb2Fkc1wvMjAxOVwvMDhcL3RyYW5zbGF0ZWQtYXJlYS5wbmcgMTI4MHdcIiBzaXplcz1cIihtYXgtd2lkdGg6IDcyMnB4KSAxMDB2dywgNzIycHhcIj48XC9wPlxuPHA+PFwvcD48ZGl2IGNsYXNzPVwic3UtaGVhZGluZyBzdS1oZWFkaW5nLXN0eWxlLWRlZmF1bHQgc3UtaGVhZGluZy1hbGlnbi1sZWZ0XCIgaWQ9XCJcIiBzdHlsZT1cImZvbnQtc2l6ZToxOHB4O21hcmdpbi1ib3R0b206MjBweFwiPjxkaXYgY2xhc3M9XCJzdS1oZWFkaW5nLWlubmVyXCI+PHN0cm9uZz40Li1UcmFuc2xhdGlvbiBTdGF0dXMuPFwvc3Ryb25nPjxcL2Rpdj48XC9kaXY+PGJyPlxuVGhlIHRyYW5zbGF0aW9uIHdpbGwgcmVtYWluIGluIGEgV2FpdGluZyBzdGF0ZSB1bnRpbCBzb21lIGVkaXRvciBhcHByb3ZlcyBpdC5cbjxwPjxpbWcgY2xhc3M9XCJhbGlnbmNlbnRlciB3cC1pbWFnZS0xNDMzOTggc2l6ZS1sYXJnZVwiIHNyYz1cImh0dHBzOlwvXC9wcnVlYmFzMi5uZXRtZHAuY29tLmFyXC93cC1jb250ZW50XC91cGxvYWRzXC8yMDIwXC8wNFwvd2FpdGluZy0xMDI0eDg5MC0xLnBuZ1wiIGFsdD1cIlwiIHdpZHRoPVwiNzIyXCIgaGVpZ2h0PVwiNjI4XCIgc3Jjc2V0PVwiaHR0cHM6XC9cL3BydWViYXMyLm5ldG1kcC5jb20uYXJcL3dwLWNvbnRlbnRcL3VwbG9hZHNcLzIwMjBcLzA0XC93YWl0aW5nLTEwMjR4ODkwLTEucG5nIDEwMjR3LCBodHRwczpcL1wvZXRydWVsLmNvbVwvd3AtY29udGVudFwvdXBsb2Fkc1wvMjAxOVwvMDhcL3dhaXRpbmctMTczeDE1MC5wbmcgMTczdywgaHR0cHM6XC9cL2V0cnVlbC5jb21cL3dwLWNvbnRlbnRcL3VwbG9hZHNcLzIwMTlcLzA4XC93YWl0aW5nLTQ0MHgzODIucG5nIDQ0MHcsIGh0dHBzOlwvXC9ldHJ1ZWwuY29tXC93cC1jb250ZW50XC91cGxvYWRzXC8yMDE5XC8wOFwvd2FpdGluZy03Njh4NjY3LnBuZyA3Njh3LCBodHRwczpcL1wvZXRydWVsLmNvbVwvd3AtY29udGVudFwvdXBsb2Fkc1wvMjAxOVwvMDhcL3dhaXRpbmcucG5nIDEyODB3XCIgc2l6ZXM9XCIobWF4LXdpZHRoOiA3MjJweCkgMTAwdncsIDcyMnB4XCI+PFwvcD5cbjxwPjxcL3A+PGRpdiBjbGFzcz1cInN1LWhlYWRpbmcgc3UtaGVhZGluZy1zdHlsZS1kZWZhdWx0IHN1LWhlYWRpbmctYWxpZ24tbGVmdFwiIGlkPVwiXCIgc3R5bGU9XCJmb250LXNpemU6MThweDttYXJnaW4tYm90dG9tOjIwcHhcIj48ZGl2IGNsYXNzPVwic3UtaGVhZGluZy1pbm5lclwiPjxzdHJvbmc+NS4tIEVuam95IGl0PFwvc3Ryb25nPjxcL2Rpdj48XC9kaXY+PGJyPlxuRmluYWxseSwgdGhlIHRyYW5zbGF0aW9uIHdpbGwgYmUgcmVhZHkgYW5kIGNhbiBiZSBleHBvcnRlZCBhcyBhIC5wbyBmaWxlLlxuPHA+PGltZyBjbGFzcz1cImFsaWduY2VudGVyIHdwLWltYWdlLTE0MzM5OSBzaXplLWxhcmdlXCIgc3JjPVwiaHR0cHM6XC9cL3BydWViYXMyLm5ldG1kcC5jb20uYXJcL3dwLWNvbnRlbnRcL3VwbG9hZHNcLzIwMjBcLzA0XC9hcHByb3ZlZC0xMDI0eDg5MC0xLnBuZ1wiIGFsdD1cIlwiIHdpZHRoPVwiNzIyXCIgaGVpZ2h0PVwiNjI4XCIgc3Jjc2V0PVwiaHR0cHM6XC9cL3BydWViYXMyLm5ldG1kcC5jb20uYXJcL3dwLWNvbnRlbnRcL3VwbG9hZHNcLzIwMjBcLzA0XC9hcHByb3ZlZC0xMDI0eDg5MC0xLnBuZyAxMDI0dywgaHR0cHM6XC9cL2V0cnVlbC5jb21cL3dwLWNvbnRlbnRcL3VwbG9hZHNcLzIwMTlcLzA4XC9hcHByb3ZlZC0xNzN4MTUwLnBuZyAxNzN3LCBodHRwczpcL1wvZXRydWVsLmNvbVwvd3AtY29udGVudFwvdXBsb2Fkc1wvMjAxOVwvMDhcL2FwcHJvdmVkLTQ0MHgzODMucG5nIDQ0MHcsIGh0dHBzOlwvXC9ldHJ1ZWwuY29tXC93cC1jb250ZW50XC91cGxvYWRzXC8yMDE5XC8wOFwvYXBwcm92ZWQtNzY4eDY2OC5wbmcgNzY4dywgaHR0cHM6XC9cL2V0cnVlbC5jb21cL3dwLWNvbnRlbnRcL3VwbG9hZHNcLzIwMTlcLzA4XC9hcHByb3ZlZC5wbmcgMTI4MHdcIiBzaXplcz1cIihtYXgtd2lkdGg6IDcyMnB4KSAxMDB2dywgNzIycHhcIj48XC9wPjxcL2Rpdj4iXSwiY29udGV4dF90eXBlIjoic2luZ2xlIn0=