{"js":"PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCI+CiAgICA8dGl0bGU+Sm95Y2UgS2l6YSB8IEZvdW5kZXIgb2YgVGhlIFJvb3RzIHwgUmVmdWdlZSBFbXBvd2VybWVudCBVZ2FuZGE8L3RpdGxlPgogICAgPG1ldGEgbmFtZT0iZGVzY3JpcHRpb24iIGNvbnRlbnQ9IkNvbm5lY3Qgd2l0aCBKb3ljZSBLaXphIC0gRm91bmRlciBvZiBUaGUgUm9vdHMsIGVtcG93ZXJpbmcgNTArIHJlZnVnZWUgd29tZW4gaW4gVWdhbmRhIHRocm91Z2ggZW50cmVwcmVuZXVyc2hpcCBhbmQgY3VsdHVyYWwgcHJlc2VydmF0aW9uLiI+CiAgICAKICAgIDwhLS0gT3BlbiBHcmFwaCAvIFNvY2lhbCAtLT4KICAgIDxtZXRhIHByb3BlcnR5PSJvZzp0aXRsZSIgY29udGVudD0iSm95Y2UgS2l6YSB8IEZvdW5kZXIgb2YgVGhlIFJvb3RzIj4KICAgIDxtZXRhIHByb3BlcnR5PSJvZzpkZXNjcmlwdGlvbiIgY29udGVudD0iRnJvbSBEaXNwbGFjZW1lbnQgdG8gRW1wb3dlcm1lbnQgLSBTdXBwb3J0aW5nIHJlZnVnZWUgd29tZW4gaW4gTmFraXZhbGUgQ2FtcCwgVWdhbmRhIj4KICAgIDxtZXRhIHByb3BlcnR5PSJvZzp0eXBlIiBjb250ZW50PSJ3ZWJzaXRlIj4KICAgIDxtZXRhIHByb3BlcnR5PSJvZzp1cmwiIGNvbnRlbnQ9Imh0dHBzOi8vZm91bmRlci5yZWZ1Z2Vlcm9vdHMuYWZyaWNhIj4KICAgIAogICAgPHN0eWxlPgogICAgICAgIEBpbXBvcnQgdXJsKCdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5PVBsYXlmYWlyK0Rpc3BsYXk6d2dodEA0MDA7NjAwOzcwMDs5MDAmZmFtaWx5PUludGVyOndnaHRAMzAwOzQwMDs1MDA7NjAwOzcwMDs4MDA7OTAwJmRpc3BsYXk9c3dhcCcpOwogICAgICAgIAogICAgICAgICogewogICAgICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgfQoKICAgICAgICBib2R5IHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdJbnRlcicsIEFyaWFsLCBzYW5zLXNlcmlmOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMEYyNDE1IDAlLCAjMUIzQTFGIDUwJSwgIzBGMjQxNSAxMDAlKTsKICAgICAgICAgICAgbWluLWhlaWdodDogMTAwdmg7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgICBwYWRkaW5nOiAxcmVtOwogICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47CiAgICAgICAgfQoKICAgICAgICAvKiBGbG9hdGluZyBCYWNrZ3JvdW5kIEVsZW1lbnRzICovCiAgICAgICAgLmZsb2F0aW5nLWVsZW1lbnRzIHsKICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgICAgICB0b3A6IDA7CiAgICAgICAgICAgIGxlZnQ6IDA7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgICAgICB6LWluZGV4OiAwOwogICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIH0KCiAgICAgICAgLmZsb2F0aW5nLWxlYWYgewogICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMnJlbTsKICAgICAgICAgICAgb3BhY2l0eTogMC4xNTsKICAgICAgICAgICAgYW5pbWF0aW9uOiBmbG9hdC1hcm91bmQgMjBzIGluZmluaXRlIGVhc2UtaW4tb3V0OwogICAgICAgIH0KCiAgICAgICAgLmZsb2F0aW5nLWxlYWY6bnRoLWNoaWxkKDEpIHsgdG9wOiAxMCU7IGxlZnQ6IDUlOyBhbmltYXRpb24tZGVsYXk6IDBzOyB9CiAgICAgICAgLmZsb2F0aW5nLWxlYWY6bnRoLWNoaWxkKDIpIHsgdG9wOiAyMCU7IHJpZ2h0OiAxMCU7IGFuaW1hdGlvbi1kZWxheTogM3M7IH0KICAgICAgICAuZmxvYXRpbmctbGVhZjpudGgtY2hpbGQoMykgeyB0b3A6IDYwJTsgbGVmdDogOCU7IGFuaW1hdGlvbi1kZWxheTogNnM7IH0KICAgICAgICAuZmxvYXRpbmctbGVhZjpudGgtY2hpbGQoNCkgeyB0b3A6IDgwJTsgcmlnaHQ6IDUlOyBhbmltYXRpb24tZGVsYXk6IDlzOyB9CiAgICAgICAgLmZsb2F0aW5nLWxlYWY6bnRoLWNoaWxkKDUpIHsgdG9wOiA0MCU7IGxlZnQ6IDMlOyBhbmltYXRpb24tZGVsYXk6IDEyczsgfQogICAgICAgIC5mbG9hdGluZy1sZWFmOm50aC1jaGlsZCg2KSB7IHRvcDogNzAlOyByaWdodDogMTUlOyBhbmltYXRpb24tZGVsYXk6IDE1czsgfQoKICAgICAgICBAa2V5ZnJhbWVzIGZsb2F0LWFyb3VuZCB7CiAgICAgICAgICAgIDAlLCAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCkgcm90YXRlKDBkZWcpOyBvcGFjaXR5OiAwLjE1OyB9CiAgICAgICAgICAgIDI1JSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlKDIwcHgsIC0zMHB4KSByb3RhdGUoMTBkZWcpOyBvcGFjaXR5OiAwLjI1OyB9CiAgICAgICAgICAgIDUwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xMHB4LCAtNTBweCkgcm90YXRlKC01ZGVnKTsgb3BhY2l0eTogMC4yOyB9CiAgICAgICAgICAgIDc1JSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlKDMwcHgsIC0yMHB4KSByb3RhdGUoMTVkZWcpOyBvcGFjaXR5OiAwLjM7IH0KICAgICAgICB9CgogICAgICAgIC8qIE1haW4gQ2FyZCBDb250YWluZXIgKi8KICAgICAgICAuY2FyZC1jb250YWluZXIgewogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgbWF4LXdpZHRoOiA0ODBweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgIzFCM0ExRiAwJSwgIzBGMjQxNSAxMDAlKTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNDBweDsKICAgICAgICAgICAgYm9yZGVyOiA0cHggc29saWQgI0ZGRDcwMDsKICAgICAgICAgICAgYm94LXNoYWRvdzogCiAgICAgICAgICAgICAgICAwIDAgNjBweCByZ2JhKDI1NSwgMjE1LCAwLCAwLjQpLAogICAgICAgICAgICAgICAgMCAwIDEyMHB4IHJnYmEoMjU1LCAyMTUsIDAsIDAuMiksCiAgICAgICAgICAgICAgICAwIDI1cHggODBweCByZ2JhKDAsIDAsIDAsIDAuNSksCiAgICAgICAgICAgICAgICBpbnNldCAwIDAgODBweCByZ2JhKDI1NSwgMjE1LCAwLCAwLjA1KTsKICAgICAgICAgICAgcGFkZGluZzogMi41cmVtIDJyZW07CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgICAgei1pbmRleDogMTA7CiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgfQoKICAgICAgICAvKiBBbmltYXRlZCBCYWNrZ3JvdW5kIFBhdHRlcm4gKi8KICAgICAgICAuY2FyZC1jb250YWluZXI6OmJlZm9yZSB7CiAgICAgICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICAgIHRvcDogLTUwJTsKICAgICAgICAgICAgbGVmdDogLTUwJTsKICAgICAgICAgICAgd2lkdGg6IDIwMCU7CiAgICAgICAgICAgIGhlaWdodDogMjAwJTsKICAgICAgICAgICAgYmFja2dyb3VuZDogCiAgICAgICAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCByZ2JhKDI1NSwgMjE1LCAwLCAwLjAyKSAycHgsIHRyYW5zcGFyZW50IDJweCksCiAgICAgICAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCByZ2JhKDIyNCwgMTIyLCA5NSwgMC4wMikgMnB4LCB0cmFuc3BhcmVudCAycHgpOwogICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDYwcHggNjBweCwgOTBweCA5MHB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDAsIDMwcHggMzBweDsKICAgICAgICAgICAgYW5pbWF0aW9uOiBkcmlmdCA5MHMgbGluZWFyIGluZmluaXRlOwogICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB9CgogICAgICAgIEBrZXlmcmFtZXMgZHJpZnQgewogICAgICAgICAgICAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApIHJvdGF0ZSgwZGVnKTsgfQogICAgICAgICAgICAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGUoNjBweCwgNjBweCkgcm90YXRlKDM2MGRlZyk7IH0KICAgICAgICB9CgogICAgICAgIC8qIExvZ28gU2VjdGlvbiAqLwogICAgICAgIC5sb2dvLXNlY3Rpb24gewogICAgICAgICAgICB3aWR0aDogMTgwcHg7CiAgICAgICAgICAgIGhlaWdodDogMTgwcHg7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICAgICAgYmFja2dyb3VuZDogI0ZGRkZGRjsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IAogICAgICAgICAgICAgICAgMCAwIDUwcHggcmdiYSgyNTUsIDIxNSwgMCwgMC42KSwKICAgICAgICAgICAgICAgIDAgMCAxMDBweCByZ2JhKDI1NSwgMjE1LCAwLCAwLjMpLAogICAgICAgICAgICAgICAgMCAxMHB4IDQwcHggcmdiYSgwLCAwLCAwLCAwLjQpOwogICAgICAgICAgICBib3JkZXI6IDVweCBzb2xpZCAjRkZENzAwOwogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIHotaW5kZXg6IDEwOwogICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWdsb3cgNHMgaW5maW5pdGUgZWFzZS1pbi1vdXQ7CiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgfQoKICAgICAgICAubG9nby1zZWN0aW9uIGltZyB7CiAgICAgICAgICAgIHdpZHRoOiA5MCU7CiAgICAgICAgICAgIGhlaWdodDogOTAlOwogICAgICAgICAgICBvYmplY3QtZml0OiBjb250YWluOwogICAgICAgIH0KCiAgICAgICAgQGtleWZyYW1lcyBwdWxzZS1nbG93IHsKICAgICAgICAgICAgMCUsIDEwMCUgeyAKICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IAogICAgICAgICAgICAgICAgICAgIDAgMCA1MHB4IHJnYmEoMjU1LCAyMTUsIDAsIDAuNiksCiAgICAgICAgICAgICAgICAgICAgMCAwIDEwMHB4IHJnYmEoMjU1LCAyMTUsIDAsIDAuMyk7CiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIDUwJSB7IAogICAgICAgICAgICAgICAgYm94LXNoYWRvdzogCiAgICAgICAgICAgICAgICAgICAgMCAwIDcwcHggcmdiYSgyNTUsIDIxNSwgMCwgMC44KSwKICAgICAgICAgICAgICAgICAgICAwIDAgMTQwcHggcmdiYSgyNTUsIDIxNSwgMCwgMC41KTsKICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wMik7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC8qIE5hbWUgU2VjdGlvbiAqLwogICAgICAgIC5uYW1lLXNlY3Rpb24gewogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIG1hcmdpbjogMS41cmVtIDAgMXJlbTsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICB6LWluZGV4OiAxMDsKICAgICAgICB9CgogICAgICAgIC5uYW1lIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdQbGF5ZmFpciBEaXNwbGF5Jywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMi44cmVtOwogICAgICAgICAgICBmb250LXdlaWdodDogOTAwOwogICAgICAgICAgICBjb2xvcjogI0ZGRDcwMDsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4zcmVtOwogICAgICAgICAgICB0ZXh0LXNoYWRvdzogCiAgICAgICAgICAgICAgICAzcHggM3B4IDZweCByZ2JhKDAsMCwwLDAuOCksCiAgICAgICAgICAgICAgICAwIDAgNDBweCByZ2JhKDI1NSwgMjE1LCAwLCAwLjUpOwogICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogM3B4OwogICAgICAgIH0KCiAgICAgICAgLnRpdGxlIHsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjJyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICAgIGNvbG9yOiAjRkZGRkZGOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjNyZW07CiAgICAgICAgICAgIHRleHQtc2hhZG93OiAycHggMnB4IDRweCByZ2JhKDAsMCwwLDAuNyk7CiAgICAgICAgfQoKICAgICAgICAub3JnYW5pemF0aW9uIHsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgICAgIGNvbG9yOiAjRTA3QTVGOwogICAgICAgICAgICB0ZXh0LXNoYWRvdzogMXB4IDFweCAzcHggcmdiYSgwLDAsMCwwLjcpOwogICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMXB4OwogICAgICAgIH0KCiAgICAgICAgLmxvY2F0aW9uIHsKICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtOwogICAgICAgICAgICBjb2xvcjogcmdiYSgyNTUsIDIxNSwgMCwgMC45KTsKICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtOwogICAgICAgICAgICB0ZXh0LXNoYWRvdzogMXB4IDFweCAzcHggcmdiYSgwLDAsMCwwLjYpOwogICAgICAgIH0KCiAgICAgICAgLyogUXVvdGUgU2VjdGlvbiAqLwogICAgICAgIC5xdW90ZS1zZWN0aW9uIHsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBwYWRkaW5nOiAxLjJyZW0gMS41cmVtOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDI1NSwgMjE1LCAwLCAwLjEyKSAwJSwgcmdiYSgyMjQsIDEyMiwgOTUsIDAuMTIpIDEwMCUpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAyNXB4OwogICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCByZ2JhKDI1NSwgMjE1LCAwLCAwLjUpOwogICAgICAgICAgICBtYXJnaW46IDFyZW0gMDsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICB6LWluZGV4OiAxMDsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgfQoKICAgICAgICAucXVvdGUgewogICAgICAgICAgICBmb250LWZhbWlseTogJ1BsYXlmYWlyIERpc3BsYXknLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgICAgICAgY29sb3I6ICNGRkQ3MDA7CiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgICAgICAgIHRleHQtc2hhZG93OiAycHggMnB4IDRweCByZ2JhKDAsMCwwLDAuNyk7CiAgICAgICAgfQoKICAgICAgICAucXVvdGU6OmJlZm9yZSwgLnF1b3RlOjphZnRlciB7CiAgICAgICAgICAgIGNvbnRlbnQ6ICciJzsKICAgICAgICAgICAgZm9udC1zaXplOiAycmVtOwogICAgICAgICAgICBjb2xvcjogcmdiYSgyNTUsIDIxNSwgMCwgMC42KTsKICAgICAgICB9CgogICAgICAgIC8qIE1pc3Npb24gU3RhdGVtZW50ICovCiAgICAgICAgLm1pc3Npb24tc2VjdGlvbiB7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgcGFkZGluZzogMXJlbTsKICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICB6LWluZGV4OiAxMDsKICAgICAgICB9CgogICAgICAgIC5taXNzaW9uLXRleHQgewogICAgICAgICAgICBmb250LXNpemU6IDAuOTVyZW07CiAgICAgICAgICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7CiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgICAgfQoKICAgICAgICAubWlzc2lvbi1oaWdobGlnaHQgewogICAgICAgICAgICBjb2xvcjogI0ZGRDcwMDsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICB9CgogICAgICAgIC8qIFBheW1lbnQgU2VjdGlvbiAqLwogICAgICAgIC5wYXltZW50LXNlY3Rpb24gewogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSg0NCwgOTUsIDQ1LCAwLjQpIDAlLCByZ2JhKDI1NSwgMjE1LCAwLCAwLjE1KSAxMDAlKTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjBweDsKICAgICAgICAgICAgYm9yZGVyOiAzcHggc29saWQgcmdiYSgyNTUsIDIxNSwgMCwgMC42KTsKICAgICAgICAgICAgcGFkZGluZzogMS4ycmVtOwogICAgICAgICAgICBtYXJnaW46IDFyZW0gMDsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICB6LWluZGV4OiAxMDsKICAgICAgICB9CgogICAgICAgIC5wYXltZW50LXRpdGxlIHsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7CiAgICAgICAgICAgIGNvbG9yOiAjRkZENzAwOwogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07CiAgICAgICAgICAgIHRleHQtc2hhZG93OiAycHggMnB4IDRweCByZ2JhKDAsMCwwLDAuNyk7CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7CiAgICAgICAgfQoKICAgICAgICAucGF5bWVudC1ncmlkIHsKICAgICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgICAgZ2FwOiAwLjhyZW07CiAgICAgICAgfQoKICAgICAgICAucGF5bWVudC1pdGVtIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgICAgICBwYWRkaW5nOiAwLjhyZW0gMXJlbTsKICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjMpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4OwogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjE1LCAwLCAwLjMpOwogICAgICAgIH0KCiAgICAgICAgLnBheW1lbnQtbGFiZWwgewogICAgICAgICAgICBmb250LXNpemU6IDAuOXJlbTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgICAgY29sb3I6ICNGRkZGRkY7CiAgICAgICAgfQoKICAgICAgICAucGF5bWVudC12YWx1ZSB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDgwMDsKICAgICAgICAgICAgY29sb3I6ICNGRkQ3MDA7CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnSW50ZXInLCBtb25vc3BhY2U7CiAgICAgICAgfQoKICAgICAgICAvKiBTb2NpYWwgU2VjdGlvbiAqLwogICAgICAgIC5zb2NpYWwtc2VjdGlvbiB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGdhcDogMS4ycmVtOwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgICAgbWFyZ2luOiAxLjJyZW0gMDsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICB6LWluZGV4OiAxMDsKICAgICAgICB9CgogICAgICAgIC5zb2NpYWwtaWNvbiB7CiAgICAgICAgICAgIHdpZHRoOiA1NXB4OwogICAgICAgICAgICBoZWlnaHQ6IDU1cHg7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI0ZGRDcwMCAwJSwgI0ZGQTUwMCAxMDAlKTsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS42cmVtOwogICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgICAgICAgIGJvcmRlcjogM3B4IHNvbGlkICNGRkZGRkY7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IAogICAgICAgICAgICAgICAgMCA1cHggMjVweCByZ2JhKDI1NSwgMjE1LCAwLCAwLjUpLAogICAgICAgICAgICAgICAgaW5zZXQgMCAwIDE1cHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpOwogICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOwogICAgICAgIH0KCiAgICAgICAgLnNvY2lhbC1pY29uOmhvdmVyIHsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC04cHgpIHNjYWxlKDEuMSk7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IAogICAgICAgICAgICAgICAgMCAxNXB4IDQwcHggcmdiYSgyNTUsIDIxNSwgMCwgMC44KSwKICAgICAgICAgICAgICAgIGluc2V0IDAgMCAyNXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTsKICAgICAgICB9CgogICAgICAgIC8qIENUQSBCdXR0b25zICovCiAgICAgICAgLmN0YS1zZWN0aW9uIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZ2FwOiAwLjhyZW07CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIHotaW5kZXg6IDEwOwogICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07CiAgICAgICAgfQoKICAgICAgICAuY3RhLWJ1dHRvbiB7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBwYWRkaW5nOiAxLjFyZW07CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDgwMDsKICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDJweDsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTBweDsKICAgICAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7CiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICAgIGdhcDogMC41cmVtOwogICAgICAgIH0KCiAgICAgICAgLmN0YS1wcmltYXJ5IHsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI0UwN0E1RiAwJSwgI0Q0NjA1RiAxMDAlKTsKICAgICAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICAgICAgICBib3JkZXI6IDNweCBzb2xpZCAjRkZENzAwOwogICAgICAgICAgICBib3gtc2hhZG93OiAKICAgICAgICAgICAgICAgIDAgOHB4IDMwcHggcmdiYSgyMjQsIDEyMiwgOTUsIDAuNSksCiAgICAgICAgICAgICAgICBpbnNldCAwIDAgMjBweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpOwogICAgICAgIH0KCiAgICAgICAgLmN0YS1wcmltYXJ5OmhvdmVyIHsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01cHgpOwogICAgICAgICAgICBib3gtc2hhZG93OiAKICAgICAgICAgICAgICAgIDAgMTVweCA1MHB4IHJnYmEoMjI0LCAxMjIsIDk1LCAwLjcpLAogICAgICAgICAgICAgICAgaW5zZXQgMCAwIDMwcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KTsKICAgICAgICB9CgogICAgICAgIC5jdGEtc2Vjb25kYXJ5IHsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzJDNUYyRCAwJSwgIzFCM0ExRiAxMDAlKTsKICAgICAgICAgICAgY29sb3I6ICNGRkQ3MDA7CiAgICAgICAgICAgIGJvcmRlcjogM3B4IHNvbGlkICNGRkQ3MDA7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgNXB4IDI1cHggcmdiYSgyNTUsIDIxNSwgMCwgMC4zKTsKICAgICAgICB9CgogICAgICAgIC5jdGEtc2Vjb25kYXJ5OmhvdmVyIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzNEN0EzRSAwJSwgIzJDNUYyRCAxMDAlKTsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01cHgpOwogICAgICAgICAgICBib3gtc2hhZG93OiAwIDE1cHggNDBweCByZ2JhKDI1NSwgMjE1LCAwLCAwLjUpOwogICAgICAgIH0KCiAgICAgICAgLmN0YS10ZXJ0aWFyeSB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgICAgICBjb2xvcjogI0ZGRDcwMDsKICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgcmdiYSgyNTUsIDIxNSwgMCwgMC42KTsKICAgICAgICAgICAgcGFkZGluZzogMC45cmVtOwogICAgICAgICAgICBmb250LXNpemU6IDAuOXJlbTsKICAgICAgICB9CgogICAgICAgIC5jdGEtdGVydGlhcnk6aG92ZXIgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjE1LCAwLCAwLjEpOwogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTNweCk7CiAgICAgICAgfQoKICAgICAgICAvKiBGb290ZXIgKi8KICAgICAgICAuY2FyZC1mb290ZXIgewogICAgICAgICAgICBtYXJnaW4tdG9wOiAxLjVyZW07CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICB6LWluZGV4OiAxMDsKICAgICAgICB9CgogICAgICAgIC5mb290ZXItdGV4dCB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC43NXJlbTsKICAgICAgICAgICAgY29sb3I6IHJnYmEoMjU1LCAyMTUsIDAsIDAuNik7CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7CiAgICAgICAgfQoKICAgICAgICAudWJ1bnR1LWJhZGdlIHsKICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07CiAgICAgICAgICAgIHBhZGRpbmc6IDAuNHJlbSAxcmVtOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjE1LCAwLCAwLjEpOwogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjE1LCAwLCAwLjMpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAyMHB4OwogICAgICAgICAgICBmb250LXNpemU6IDAuN3JlbTsKICAgICAgICAgICAgY29sb3I6ICNGRkQ3MDA7CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAycHg7CiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgfQoKICAgICAgICAvKiBSZXNwb25zaXZlICovCiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDUwMHB4KSB7CiAgICAgICAgICAgIC5jYXJkLWNvbnRhaW5lciB7CiAgICAgICAgICAgICAgICBwYWRkaW5nOiAycmVtIDEuNXJlbTsKICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDMwcHg7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgIC5sb2dvLXNlY3Rpb24gewogICAgICAgICAgICAgICAgd2lkdGg6IDE1MHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAxNTBweDsKICAgICAgICAgICAgfQogICAgICAgICAgICAKICAgICAgICAgICAgLm5hbWUgewogICAgICAgICAgICAgICAgZm9udC1zaXplOiAyLjJyZW07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgIC50aXRsZSB7CiAgICAgICAgICAgICAgICBmb250LXNpemU6IDFyZW07CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC5xdW90ZSB7CiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuMnJlbTsKICAgICAgICAgICAgfQogICAgICAgICAgICAKICAgICAgICAgICAgLnNvY2lhbC1pY29uIHsKICAgICAgICAgICAgICAgIHdpZHRoOiA0OHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiA0OHB4OwogICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC5jdGEtYnV0dG9uIHsKICAgICAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07CiAgICAgICAgICAgICAgICBmb250LXNpemU6IDAuOXJlbTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLyogUHJpbnQgU3R5bGVzICovCiAgICAgICAgQG1lZGlhIHByaW50IHsKICAgICAgICAgICAgYm9keSB7CiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTsKICAgICAgICAgICAgfQogICAgICAgICAgICAuY2FyZC1jb250YWluZXIgewogICAgICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTsKICAgICAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICMxQjNBMUY7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICA8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgogICAgPCEtLSBGbG9hdGluZyBCYWNrZ3JvdW5kIEVsZW1lbnRzIC0tPgogICAgPGRpdiBjbGFzcz0iZmxvYXRpbmctZWxlbWVudHMiPgogICAgICAgIDxzcGFuIGNsYXNzPSJmbG9hdGluZy1sZWFmIj7wn4y/PC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJmbG9hdGluZy1sZWFmIj7wn42DPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJmbG9hdGluZy1sZWFmIj7wn4yxPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJmbG9hdGluZy1sZWFmIj7wn5KaPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJmbG9hdGluZy1sZWFmIj7wn4y/PC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJmbG9hdGluZy1sZWFmIj7wn42DPC9zcGFuPgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iY2FyZC1jb250YWluZXIiPgogICAgICAgIDwhLS0gTG9nbyBTZWN0aW9uIC0gUmVwbGFjZSBzcmMgd2l0aCBhY3R1YWwgbG9nbyBVUkwgLS0+CiAgICAgICAgPGRpdiBjbGFzcz0ibG9nby1zZWN0aW9uIj4KICAgICAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vaS5pbWd1ci5jb20vUExBQ0VIT0xERVIucG5nIiBhbHQ9IlRoZSBSb290cyBMb2dvIC0gVHJlZSB3aXRoIEFmcmljYSBzaGFwZSBhbmQgaGVhcnQiIGlkPSJsb2dvLWltZyI+CiAgICAgICAgICAgIDwhLS0gRkFMTEJBQ0s6IElmIG5vIGltYWdlLCBzaG93IGluaXRpYWxzIC0tPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8IS0tIE5hbWUgU2VjdGlvbiAtLT4KICAgICAgICA8ZGl2IGNsYXNzPSJuYW1lLXNlY3Rpb24iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYW1lIj5KT1lDRSBLSVpBPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpdGxlIj5Gb3VuZGVyICYgU29jaWFsIEVudHJlcHJlbmV1cjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJvcmdhbml6YXRpb24iPlRIRSBST09UUyDigKIgUmVmdWdlZSBFbXBvd2VybWVudDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2NhdGlvbiI+8J+TjSBOYWtpdmFsZSBDYW1wLCBVZ2FuZGE8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPCEtLSBRdW90ZSAtLT4KICAgICAgICA8ZGl2IGNsYXNzPSJxdW90ZS1zZWN0aW9uIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icXVvdGUiPkZyb20gRGlzcGxhY2VtZW50IHRvIEVtcG93ZXJtZW50PC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDwhLS0gTWlzc2lvbiBTdGF0ZW1lbnQgLS0+CiAgICAgICAgPGRpdiBjbGFzcz0ibWlzc2lvbi1zZWN0aW9uIj4KICAgICAgICAgICAgPHAgY2xhc3M9Im1pc3Npb24tdGV4dCI+CiAgICAgICAgICAgICAgICBFbXBvd2VyaW5nIDxzcGFuIGNsYXNzPSJtaXNzaW9uLWhpZ2hsaWdodCI+NTArIHJlZnVnZWUgd29tZW48L3NwYW4+IHRocm91Z2ggZW50cmVwcmVuZXVyc2hpcCB0cmFpbmluZywgCiAgICAgICAgICAgICAgICBjdWx0dXJhbCBwcmVzZXJ2YXRpb24sIGFuZCBjb21tdW5pdHkgYnVpbGRpbmcuIAogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1pc3Npb24taGlnaGxpZ2h0Ij5SZWJ1aWxkaW5nIGFmdGVyIE5vdmVtYmVyIGZsb29kcy48L3NwYW4+CiAgICAgICAgICAgIDwvcD4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPCEtLSBQYXltZW50IFNlY3Rpb24gLS0+CiAgICAgICAgPGRpdiBjbGFzcz0icGF5bWVudC1zZWN0aW9uIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icGF5bWVudC10aXRsZSI+8J+SmiBTVVBQT1JUIFRIRSBNSVNTSU9OPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InBheW1lbnQtZ3JpZCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYXltZW50LWl0ZW0iPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwYXltZW50LWxhYmVsIj7wn5OxIE1vYmlsZSBNb25leSAoTVROL0FpcnRlbCk8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBheW1lbnQtdmFsdWUiPisyNTYgNzUzIDc2NCA4MTM8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBheW1lbnQtaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBheW1lbnQtbGFiZWwiPvCfj6YgQmFuayBBY2NvdW50PC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwYXltZW50LXZhbHVlIj4zMjA1MjI0ODQ1PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8IS0tIFNvY2lhbCBJY29ucyAtLT4KICAgICAgICA8ZGl2IGNsYXNzPSJzb2NpYWwtc2VjdGlvbiI+CiAgICAgICAgICAgIDxhIGhyZWY9Im1haWx0bzpqb3ljZWtpemFtdEBnbWFpbC5jb20iIGNsYXNzPSJzb2NpYWwtaWNvbiIgdGl0bGU9IkVtYWlsIEpveWNlIj7wn5OnPC9hPgogICAgICAgICAgICA8YSBocmVmPSJodHRwczovL3dhLm1lLzI1Njc1Mzc2NDgxMz90ZXh0PUhlbGxvJTIwSm95Y2UhJTIwSSUyMGZvdW5kJTIweW91ciUyMGRpZ2l0YWwlMjBjYXJkJTIwYW5kJTIwd2FudCUyMHRvJTIwY29ubmVjdC4iIGNsYXNzPSJzb2NpYWwtaWNvbiIgdGl0bGU9IldoYXRzQXBwIj7wn5KsPC9hPgogICAgICAgICAgICA8YSBocmVmPSJodHRwczovL3d3dy5saW5rZWRpbi5jb20vaW4vam95Y2Uta2l6YS1iYjEyMTMxYjYvIiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9InNvY2lhbC1pY29uIiB0aXRsZT0iTGlua2VkSW4iPvCfkrw8L2E+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDwhLS0gQ1RBIEJ1dHRvbnMgLS0+CiAgICAgICAgPGRpdiBjbGFzcz0iY3RhLXNlY3Rpb24iPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdGEtYnV0dG9uIGN0YS1wcmltYXJ5IiBvbmNsaWNrPSJzdXBwb3J0Tm93KCkiPgogICAgICAgICAgICAgICAg8J+MsSBTVVBQT1JUIE5PVwogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3RhLWJ1dHRvbiBjdGEtc2Vjb25kYXJ5IiBvbmNsaWNrPSJzYXZlQ29udGFjdCgpIj4KICAgICAgICAgICAgICAgIPCfkr4gU0FWRSBDT05UQUNUCiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdGEtYnV0dG9uIGN0YS10ZXJ0aWFyeSIgb25jbGljaz0ic2hhcmVDYXJkKCkiPgogICAgICAgICAgICAgICAg8J+TpCBTSEFSRSBUSElTIENBUkQKICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDwhLS0gRm9vdGVyIC0tPgogICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtZm9vdGVyIj4KICAgICAgICAgICAgPHAgY2xhc3M9ImZvb3Rlci10ZXh0Ij5QT1dFUkVEIEJZIFNPVkVSRUlHTiBBUkNISVRFQ1RTPC9wPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0idWJ1bnR1LWJhZGdlIj7inKggVUJVTlRVIElOIEFDVElPTiDinKg8L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8c2NyaXB0PgogICAgICAgIC8vIFN1cHBvcnQgTm93IC0gT3BlbnMgdGhhbmsgeW91L2dyZWV0aW5ncyBwYWdlCiAgICAgICAgZnVuY3Rpb24gc3VwcG9ydE5vdygpIHsKICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSAnaHR0cHM6Ly9mb3VuZGVyLnJlZnVnZWVyb290cy5hZnJpY2EvZ3JlZXRpbmdzJzsKICAgICAgICB9CgogICAgICAgIC8vIFNhdmUgQ29udGFjdCBhcyB2Q2FyZAogICAgICAgIGZ1bmN0aW9uIHNhdmVDb250YWN0KCkgewogICAgICAgICAgICBjb25zdCB2Q2FyZCA9IGBCRUdJTjpWQ0FSRApWRVJTSU9OOjMuMApGTjpKb3ljZSBLaXphCk9SRzpUaGUgUm9vdHMKVElUTEU6Rm91bmRlciAmIFNvY2lhbCBFbnRyZXByZW5ldXIKVEVMO1RZUEU9Q0VMTDorMjU2NzUzNzY0ODEzCkVNQUlMOmpveWNla2l6YW10QGdtYWlsLmNvbQpBRFI6OztOYWtpdmFsZSBSZWZ1Z2VlIENhbXA7SXNpbmdpcm8gRGlzdHJpY3Q7O1VnYW5kYQpVUkw6aHR0cHM6Ly9mb3VuZGVyLnJlZnVnZWVyb290cy5hZnJpY2EKTk9URTpGb3VuZGVyIG9mIFRoZSBSb290cyAtIEVtcG93ZXJpbmcgcmVmdWdlZSB3b21lbiBpbiBVZ2FuZGEgdGhyb3VnaCBlbnRyZXByZW5ldXJzaGlwIGFuZCBjdWx0dXJhbCBwcmVzZXJ2YXRpb24uIEZyb20gRGlzcGxhY2VtZW50IHRvIEVtcG93ZXJtZW50LgpFTkQ6VkNBUkRgOwoKICAgICAgICAgICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFt2Q2FyZF0sIHsgdHlwZTogJ3RleHQvdmNhcmQ7Y2hhcnNldD11dGYtOCcgfSk7CiAgICAgICAgICAgIGNvbnN0IHVybCA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpOwogICAgICAgICAgICBjb25zdCBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpOwogICAgICAgICAgICBsaW5rLmhyZWYgPSB1cmw7CiAgICAgICAgICAgIGxpbmsuZG93bmxvYWQgPSAnSm95Y2VfS2l6YV9UaGVfUm9vdHMudmNmJzsKICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsaW5rKTsKICAgICAgICAgICAgbGluay5jbGljaygpOwogICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGxpbmspOwogICAgICAgICAgICB3aW5kb3cuVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpOwogICAgICAgICAgICAKICAgICAgICAgICAgLy8gU2hvdyBzdWNjZXNzIG1lc3NhZ2UKICAgICAgICAgICAgc2hvd05vdGlmaWNhdGlvbign4pyFIENvbnRhY3Qgc2F2ZWQhIENoZWNrIHlvdXIgZG93bmxvYWRzLicpOwogICAgICAgIH0KCiAgICAgICAgLy8gU2hhcmUgQ2FyZAogICAgICAgIGZ1bmN0aW9uIHNoYXJlQ2FyZCgpIHsKICAgICAgICAgICAgY29uc3Qgc2hhcmVEYXRhID0gewogICAgICAgICAgICAgICAgdGl0bGU6ICdKb3ljZSBLaXphIC0gVGhlIFJvb3RzJywKICAgICAgICAgICAgICAgIHRleHQ6ICfwn4y/IE1lZXQgSm95Y2UgS2l6YSwgRm91bmRlciBvZiBUaGUgUm9vdHMgLSBFbXBvd2VyaW5nIDUwKyByZWZ1Z2VlIHdvbWVuIGluIFVnYW5kYS4gRnJvbSBEaXNwbGFjZW1lbnQgdG8gRW1wb3dlcm1lbnQhIFN1cHBvcnQgaGVyIG1pc3Npb246JywKICAgICAgICAgICAgICAgIHVybDogJ2h0dHBzOi8vZm91bmRlci5yZWZ1Z2Vlcm9vdHMuYWZyaWNhJwogICAgICAgICAgICB9OwoKICAgICAgICAgICAgaWYgKG5hdmlnYXRvci5zaGFyZSkgewogICAgICAgICAgICAgICAgbmF2aWdhdG9yLnNoYXJlKHNoYXJlRGF0YSkKICAgICAgICAgICAgICAgICAgICAudGhlbigoKSA9PiBzaG93Tm90aWZpY2F0aW9uKCfinIUgVGhhbmtzIGZvciBzaGFyaW5nIScpKQogICAgICAgICAgICAgICAgICAgIC5jYXRjaChlcnIgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXJyLm5hbWUgIT09ICdBYm9ydEVycm9yJykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29weVRvQ2xpcGJvYXJkKHNoYXJlRGF0YS51cmwpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBjb3B5VG9DbGlwYm9hcmQoc2hhcmVEYXRhLnVybCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC8vIENvcHkgdG8gY2xpcGJvYXJkIGZhbGxiYWNrCiAgICAgICAgZnVuY3Rpb24gY29weVRvQ2xpcGJvYXJkKHRleHQpIHsKICAgICAgICAgICAgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQodGV4dCkKICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHNob3dOb3RpZmljYXRpb24oJ/Cfk4sgTGluayBjb3BpZWQgdG8gY2xpcGJvYXJkIScpKQogICAgICAgICAgICAgICAgLmNhdGNoKCgpID0+IHNob3dOb3RpZmljYXRpb24oJ1Zpc2l0OiBmb3VuZGVyLnJlZnVnZWVyb290cy5hZnJpY2EnKSk7CiAgICAgICAgfQoKICAgICAgICAvLyBTaG93IG5vdGlmaWNhdGlvbgogICAgICAgIGZ1bmN0aW9uIHNob3dOb3RpZmljYXRpb24obWVzc2FnZSkgewogICAgICAgICAgICAvLyBSZW1vdmUgZXhpc3Rpbmcgbm90aWZpY2F0aW9uCiAgICAgICAgICAgIGNvbnN0IGV4aXN0aW5nID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLm5vdGlmaWNhdGlvbicpOwogICAgICAgICAgICBpZiAoZXhpc3RpbmcpIGV4aXN0aW5nLnJlbW92ZSgpOwoKICAgICAgICAgICAgY29uc3Qgbm90aWZpY2F0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgICAgIG5vdGlmaWNhdGlvbi5jbGFzc05hbWUgPSAnbm90aWZpY2F0aW9uJzsKICAgICAgICAgICAgbm90aWZpY2F0aW9uLmlubmVySFRNTCA9IG1lc3NhZ2U7CiAgICAgICAgICAgIG5vdGlmaWNhdGlvbi5zdHlsZS5jc3NUZXh0ID0gYAogICAgICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgICAgICAgICAgYm90dG9tOiAzMHB4OwogICAgICAgICAgICAgICAgbGVmdDogNTAlOwogICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOwogICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzJDNUYyRCAwJSwgIzFCM0ExRiAxMDAlKTsKICAgICAgICAgICAgICAgIGNvbG9yOiAjRkZENzAwOwogICAgICAgICAgICAgICAgcGFkZGluZzogMXJlbSAycmVtOwogICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTBweDsKICAgICAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICNGRkQ3MDA7CiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtOwogICAgICAgICAgICAgICAgYm94LXNoYWRvdzogMCAxMHB4IDQwcHggcmdiYSgwLDAsMCwwLjQpOwogICAgICAgICAgICAgICAgei1pbmRleDogMTAwMDsKICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogc2xpZGVVcCAwLjNzIGVhc2U7CiAgICAgICAgICAgIGA7CiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobm90aWZpY2F0aW9uKTsKCiAgICAgICAgICAgIC8vIEFkZCBhbmltYXRpb24KICAgICAgICAgICAgY29uc3Qgc3R5bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpOwogICAgICAgICAgICBzdHlsZS50ZXh0Q29udGVudCA9IGAKICAgICAgICAgICAgICAgIEBrZXlmcmFtZXMgc2xpZGVVcCB7CiAgICAgICAgICAgICAgICAgICAgZnJvbSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKDEwMHB4KTsgb3BhY2l0eTogMDsgfQogICAgICAgICAgICAgICAgICAgIHRvIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoMCk7IG9wYWNpdHk6IDE7IH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgYDsKICAgICAgICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzdHlsZSk7CgogICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsKICAgICAgICAgICAgICAgIG5vdGlmaWNhdGlvbi5zdHlsZS5hbmltYXRpb24gPSAnc2xpZGVVcCAwLjNzIGVhc2UgcmV2ZXJzZSc7CiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IG5vdGlmaWNhdGlvbi5yZW1vdmUoKSwgMzAwKTsKICAgICAgICAgICAgfSwgMzAwMCk7CiAgICAgICAgfQoKICAgICAgICAvLyBMb2dvIGZhbGxiYWNrIC0gc2hvdyBpbml0aWFscyBpZiBpbWFnZSBmYWlscwogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsb2dvLWltZycpLm9uZXJyb3IgPSBmdW5jdGlvbigpIHsKICAgICAgICAgICAgdGhpcy5wYXJlbnRFbGVtZW50LmlubmVySFRNTCA9ICc8ZGl2IHN0eWxlPSJmb250LXNpemU6IDRyZW07IGZvbnQtd2VpZ2h0OiA5MDA7IGNvbG9yOiAjMUIzQTFGOyI+Sks8L2Rpdj4nOwogICAgICAgIH07CiAgICA8L3NjcmlwdD4KPC9ib2R5Pgo8L2h0bWw+","embed":""}
🌿
🍃
🌱
💚
🌿
🍃
JOYCE KIZA
Founder & Social Entrepreneur
THE ROOTS • Refugee Empowerment
📍 Nakivale Camp, Uganda
From Displacement to Empowerment
Empowering 50+ refugee women through entrepreneurship training, cultural preservation, and community building. Rebuilding after November floods.
💚 SUPPORT THE MISSION
📱 Mobile Money (MTN/Airtel)
+256 753 764 813
🏦 Bank Account
3205224845
POWERED BY SOVEREIGN ARCHITECTS
✨ UBUNTU IN ACTION ✨