{"js":"PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCI+CiAgICA8dGl0bGU+Q29ubmVjdCBXaXRoIFVzIHwgTXVrYXNhIFZlbnR1cmUgUGFydG5lcnM8L3RpdGxlPgogICAgPG1ldGEgbmFtZT0iZGVzY3JpcHRpb24iIGNvbnRlbnQ9IkNvbm5lY3Qgd2l0aCBUaGUgU292ZXJlaWduIEVtcGlyZS4gU3Vic2NyaWJlIHRvIG91ciBuZXdzbGV0dGVyLCBkb3dubG9hZCBmcmVlIHJlc291cmNlcywgb3IgcmVhY2ggb3V0IGRpcmVjdGx5LiBXZSdyZSBoZXJlIHRvIGhlbHAgeW91IG9uIHlvdXIgam91cm5leSB0byBzb3ZlcmVpZ250eS4iPgogICAgPG1ldGEgbmFtZT0icm9ib3RzIiBjb250ZW50PSJpbmRleCwgZm9sbG93Ij4KICAgIDxsaW5rIHJlbD0iY2Fub25pY2FsIiBocmVmPSJodHRwczovL211a2FzYXZlbnR1cmVwYXJ0bmVycy5jb20vY29ubmVjdCI+CiAgICA8bGluayBocmVmPSJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5PVBsYXlmYWlyK0Rpc3BsYXk6d2dodEA0MDA7NTAwOzYwMDs3MDAmZmFtaWx5PUNvcm1vcmFudCtHYXJhbW9uZDppdGFsLHdnaHRAMCw0MDA7MCw1MDA7MCw2MDA7MSw0MDAmZmFtaWx5PUNpbnplbDp3Z2h0QDQwMDs1MDA7NjAwOzcwMCZmYW1pbHk9TnVuaXRvOndnaHRAMzAwOzQwMDs1MDA7NjAwOzcwMCZkaXNwbGF5PXN3YXAiIHJlbD0ic3R5bGVzaGVldCI+CiAgICA8c3R5bGU+CiAgICAgICAgOnJvb3QgewogICAgICAgICAgICAtLW5hdnk6ICMwRDFCMkE7CiAgICAgICAgICAgIC0taW5kaWdvOiAjMUMxRjRBOwogICAgICAgICAgICAtLWdvbGQ6ICNENEFGMzc7CiAgICAgICAgICAgIC0tcm9zZWdvbGQ6ICNDMjlBOEI7CiAgICAgICAgICAgIC0taXZvcnk6ICNGOEY0RUM7CiAgICAgICAgICAgIC0tZGVlcGdvbGQ6ICNCODk3MkU7CiAgICAgICAgICAgIC0tbGlnaHRnb2xkOiAjRThENUEzOwogICAgICAgICAgICAtLWJyaWdodGdvbGQ6ICNGRkQ3MDA7CiAgICAgICAgICAgIC0tdGVhbDogIzAwODk3YjsKICAgICAgICAgICAgLS1jaGFyY29hbDogIzBhMGExMjsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgKiB7IG1hcmdpbjogMDsgcGFkZGluZzogMDsgYm94LXNpemluZzogYm9yZGVyLWJveDsgfQogICAgICAgIGh0bWwgeyBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDsgfQogICAgICAgIAogICAgICAgIGJvZHkgewogICAgICAgICAgICBmb250LWZhbWlseTogJ051bml0bycsIHNhbnMtc2VyaWY7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNoYXJjb2FsKTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWl2b3J5KTsKICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuODsKICAgICAgICAgICAgZm9udC1zaXplOiAxN3B4OwogICAgICAgICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOwogICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogV2F0ZXJtYXJrICovCiAgICAgICAgLndhdGVybWFyayB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsgdG9wOiAwOyBsZWZ0OiAwOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgei1pbmRleDogOTk5OTsgb3BhY2l0eTogMC4wMTsKICAgICAgICB9CiAgICAgICAgLndhdGVybWFyazo6YmVmb3JlIHsKICAgICAgICAgICAgY29udGVudDogJ8KpIE11a2FzYSBWZW50dXJlIFBhcnRuZXJzIExMQyDigKIgVGhlIFNvdmVyZWlnbiBFbXBpcmUnOwogICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogNTAlOyBsZWZ0OiA1MCU7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIHJvdGF0ZSgtMjVkZWcpOwogICAgICAgICAgICBmb250LXNpemU6IDEuNXJlbTsgY29sb3I6IHJnYmEoMjEyLCAxNzUsIDU1LCAwLjAzKTsKICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQG1lZGlhIHByaW50IHsgYm9keSAqIHsgdmlzaWJpbGl0eTogaGlkZGVuICFpbXBvcnRhbnQ7IH0gfQogICAgICAgIAogICAgICAgIC8qIEJhY2tncm91bmQgKi8KICAgICAgICAuYmctbHV4dXJ5IHsKICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkOyB0b3A6IDA7IGxlZnQ6IDA7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyB6LWluZGV4OiAwOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiAKICAgICAgICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGF0IDUwJSAwJSwgcmdiYSgyMTIsIDE3NSwgNTUsIDAuMSkgMCUsIHRyYW5zcGFyZW50IDUwJSksCiAgICAgICAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSBhdCAwJSAxMDAlLCByZ2JhKDE5NCwgMTU0LCAxMzksIDAuMDgpIDAlLCB0cmFuc3BhcmVudCA0MCUpLAogICAgICAgICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgYXQgMTAwJSA1MCUsIHJnYmEoMCwgMTM3LCAxMjMsIDAuMDYpIDAlLCB0cmFuc3BhcmVudCA0MCUpLAogICAgICAgICAgICAgICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgdmFyKC0tY2hhcmNvYWwpIDAlLCB2YXIoLS1uYXZ5KSA1MCUsIHZhcigtLWNoYXJjb2FsKSAxMDAlKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogRmxvYXRpbmcgRWxlbWVudHMgKi8KICAgICAgICAuZmxvYXRpZSB7IHBvc2l0aW9uOiBmaXhlZDsgcG9pbnRlci1ldmVudHM6IG5vbmU7IHotaW5kZXg6IDE7IG9wYWNpdHk6IDAuMDQ7IGZvbnQtc2l6ZTogM3JlbTsgfQogICAgICAgIC5mbG9hdGllMSB7IHRvcDogMTUlOyBsZWZ0OiA4JTsgYW5pbWF0aW9uOiBnZW50bGVGbG9hdCAyMHMgZWFzZS1pbi1vdXQgaW5maW5pdGU7IH0KICAgICAgICAuZmxvYXRpZTIgeyB0b3A6IDYwJTsgcmlnaHQ6IDEwJTsgYW5pbWF0aW9uOiBnZW50bGVGbG9hdCAyNXMgZWFzZS1pbi1vdXQgaW5maW5pdGUgMnM7IH0KICAgICAgICAuZmxvYXRpZTMgeyBib3R0b206IDIwJTsgbGVmdDogMTUlOyBhbmltYXRpb246IGdlbnRsZUZsb2F0IDIycyBlYXNlLWluLW91dCBpbmZpbml0ZSAxczsgfQogICAgICAgIAogICAgICAgIEBrZXlmcmFtZXMgZ2VudGxlRmxvYXQgewogICAgICAgICAgICAwJSwgMTAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKSByb3RhdGUoMGRlZyk7IH0KICAgICAgICAgICAgNTAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yMHB4KSByb3RhdGUoNWRlZyk7IH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogTmF2aWdhdGlvbiAqLwogICAgICAgIC50b3BuYXYgewogICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7IHRvcDogMDsgbGVmdDogMDsgcmlnaHQ6IDA7IHotaW5kZXg6IDEwMDA7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMTAsIDEwLCAxOCwgMC45NSk7IGJhY2tkcm9wLWZpbHRlcjogYmx1cigyMHB4KTsKICAgICAgICAgICAgcGFkZGluZzogMTVweCA0MHB4OwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDIxMiwgMTc1LCA1NSwgMC4xKTsKICAgICAgICB9CiAgICAgICAgLm5hdi1icmFuZCB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnUGxheWZhaXIgRGlzcGxheScsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDFyZW07CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1nb2xkKTsKICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMnB4OwogICAgICAgIH0KICAgICAgICAubmF2LWJhY2sgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDhweDsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXJvc2Vnb2xkKTsKICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICAgICAgICBmb250LXNpemU6IDAuOHJlbTsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDFweDsKICAgICAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4zcyBlYXNlOwogICAgICAgIH0KICAgICAgICAubmF2LWJhY2s6aG92ZXIgeyBjb2xvcjogdmFyKC0tZ29sZCk7IH0KICAgICAgICAKICAgICAgICAvKiBNYWluIFNlY3Rpb24gKi8KICAgICAgICAuY29ubmVjdC1zZWN0aW9uIHsKICAgICAgICAgICAgbWluLWhlaWdodDogMTAwdmg7CiAgICAgICAgICAgIHBhZGRpbmc6IDEyMHB4IDQwcHggODBweDsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICB6LWluZGV4OiAxMDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNvbnRhaW5lciB7CiAgICAgICAgICAgIG1heC13aWR0aDogMTEwMHB4OwogICAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogSGVhZGVyICovCiAgICAgICAgLnBhZ2UtaGVhZGVyIHsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA2MHB4OwogICAgICAgIH0KICAgICAgICAucGFnZS1pY29uIHsKICAgICAgICAgICAgZm9udC1zaXplOiA0cmVtOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICAgICAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMTBweCAzMHB4IHJnYmEoMjEyLCAxNzUsIDU1LCAwLjMpKTsKICAgICAgICB9CiAgICAgICAgLnBhZ2UtbGFiZWwgewogICAgICAgICAgICBmb250LWZhbWlseTogJ0NpbnplbCcsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDAuNzVyZW07CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiA1cHg7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1nb2xkKTsKICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTVweDsKICAgICAgICB9CiAgICAgICAgLnBhZ2UtdGl0bGUgewogICAgICAgICAgICBmb250LWZhbWlseTogJ1BsYXlmYWlyIERpc3BsYXknLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiBjbGFtcCgycmVtLCA1dncsIDNyZW0pOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4OwogICAgICAgIH0KICAgICAgICAucGFnZS1zdWJ0aXRsZSB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnQ29ybW9yYW50IEdhcmFtb25kJywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtOwogICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1yb3NlZ29sZCk7CiAgICAgICAgICAgIG1heC13aWR0aDogNjAwcHg7CiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBPcHRpb25zIEdyaWQgKi8KICAgICAgICAub3B0aW9ucy1ncmlkIHsKICAgICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgzMjBweCwgMWZyKSk7CiAgICAgICAgICAgIGdhcDogMzBweDsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNjBweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLm9wdGlvbi1jYXJkIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE0NWRlZywgcmdiYSgxMywgMjcsIDQyLCAwLjk1KSwgcmdiYSgyOCwgMzEsIDc0LCAwLjYpKTsKICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyMTIsIDE3NSwgNTUsIDAuMik7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDI1cHg7CiAgICAgICAgICAgIHBhZGRpbmc6IDQwcHggMzVweDsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC40cyBlYXNlOwogICAgICAgIH0KICAgICAgICAub3B0aW9uLWNhcmQ6aG92ZXIgewogICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWdvbGQpOwogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLThweCk7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMjVweCA2MHB4IHJnYmEoMCwgMCwgMCwgMC40KTsKICAgICAgICB9CiAgICAgICAgLm9wdGlvbi1jYXJkLmZlYXR1cmVkIHsKICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1nb2xkKTsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE0NWRlZywgcmdiYSgyMTIsIDE3NSwgNTUsIDAuMDgpLCByZ2JhKDEzLCAyNywgNDIsIDAuOTUpKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLm9wdGlvbi1pY29uIHsKICAgICAgICAgICAgZm9udC1zaXplOiAzcmVtOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICAgIH0KICAgICAgICAub3B0aW9uLXRpdGxlIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdQbGF5ZmFpciBEaXNwbGF5Jywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS40cmVtOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tZ29sZCk7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CiAgICAgICAgfQogICAgICAgIC5vcHRpb24tZGVzY3JpcHRpb24gewogICAgICAgICAgICBmb250LXNpemU6IDAuOTVyZW07CiAgICAgICAgICAgIGNvbG9yOiByZ2JhKDI0OCwgMjQ0LCAyMzYsIDAuNzUpOwogICAgICAgICAgICBsaW5lLWhlaWdodDogMS43OwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNXB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBGb3JtcyBpbnNpZGUgY2FyZHMgKi8KICAgICAgICAuY2FyZC1mb3JtIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIH0KICAgICAgICAuZm9ybS1pbnB1dCB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMTMsIDI3LCA0MiwgMC44KTsKICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyMTIsIDE3NSwgNTUsIDAuMyk7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7CiAgICAgICAgICAgIHBhZGRpbmc6IDE0cHggMThweDsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjk1cmVtOwogICAgICAgICAgICBjb2xvcjogdmFyKC0taXZvcnkpOwogICAgICAgICAgICBmb250LWZhbWlseTogJ051bml0bycsIHNhbnMtc2VyaWY7CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7CiAgICAgICAgfQogICAgICAgIC5mb3JtLWlucHV0OmZvY3VzIHsKICAgICAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1nb2xkKTsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDE1cHggcmdiYSgyMTIsIDE3NSwgNTUsIDAuMik7CiAgICAgICAgfQogICAgICAgIC5mb3JtLWlucHV0OjpwbGFjZWhvbGRlciB7CiAgICAgICAgICAgIGNvbG9yOiByZ2JhKDI0OCwgMjQ0LCAyMzYsIDAuNCk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jYXJkLWJ0biB7CiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgICAgZ2FwOiAxMHB4OwogICAgICAgICAgICBwYWRkaW5nOiAxNXB4IDMwcHg7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC44NXJlbTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDJweDsKICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAzMHB4OwogICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC40cyBlYXNlOwogICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdOdW5pdG8nLCBzYW5zLXNlcmlmOwogICAgICAgIH0KICAgICAgICAuY2FyZC1idG4uZ29sZCB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWdvbGQpLCB2YXIoLS1kZWVwZ29sZCkpOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tbmF2eSk7CiAgICAgICAgfQogICAgICAgIC5jYXJkLWJ0bi5nb2xkOmhvdmVyIHsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zcHgpOwogICAgICAgICAgICBib3gtc2hhZG93OiAwIDE1cHggMzVweCByZ2JhKDIxMiwgMTc1LCA1NSwgMC40KTsKICAgICAgICB9CiAgICAgICAgLmNhcmQtYnRuLm91dGxpbmUgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZ29sZCk7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1nb2xkKTsKICAgICAgICB9CiAgICAgICAgLmNhcmQtYnRuLm91dGxpbmU6aG92ZXIgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDIxMiwgMTc1LCA1NSwgMC4xKTsKICAgICAgICB9CiAgICAgICAgLmNhcmQtYnRuLnRlYWwgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS10ZWFsKSwgIzAwNmQ1Yik7CiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgICB9CiAgICAgICAgLmNhcmQtYnRuLnRlYWw6aG92ZXIgewogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTNweCk7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMTVweCAzNXB4IHJnYmEoMCwgMTM3LCAxMjMsIDAuNCk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qIEZyZWUgUmVzb3VyY2UgQm94ICovCiAgICAgICAgLnJlc291cmNlLWhpZ2hsaWdodCB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoMCwgMTM3LCAxMjMsIDAuMTUpLCByZ2JhKDAsIDEzNywgMTIzLCAwLjA1KSk7CiAgICAgICAgICAgIGJvcmRlcjogMXB4IGRhc2hlZCB2YXIoLS10ZWFsKTsKICAgICAgICAgICAgcGFkZGluZzogMTVweDsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgICB9CiAgICAgICAgLnJlc291cmNlLWhpZ2hsaWdodCBwIHsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjg1cmVtOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tdGVhbCk7CiAgICAgICAgfQogICAgICAgIC5yZXNvdXJjZS1oaWdobGlnaHQgc3Ryb25nIHsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWl2b3J5KTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogRGlyZWN0IENvbnRhY3QgU2VjdGlvbiAqLwogICAgICAgIC5kaXJlY3QtY29udGFjdCB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxNDVkZWcsIHJnYmEoMTMsIDI3LCA0MiwgMC45KSwgcmdiYSgyOCwgMzEsIDc0LCAwLjUpKTsKICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyMTIsIDE3NSwgNTUsIDAuMTUpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAyNXB4OwogICAgICAgICAgICBwYWRkaW5nOiA1MHB4OwogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDYwcHg7CiAgICAgICAgfQogICAgICAgIC5jb250YWN0LXRpdGxlIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdQbGF5ZmFpciBEaXNwbGF5Jywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS41cmVtOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tZ29sZCk7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CiAgICAgICAgfQogICAgICAgIC5jb250YWN0LXN1YnRpdGxlIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdDb3Jtb3JhbnQgR2FyYW1vbmQnLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tcm9zZWdvbGQpOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzMHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY29udGFjdC1tZXRob2RzIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZ2FwOiAzMHB4OwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIH0KICAgICAgICAuY29udGFjdC1tZXRob2QgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgICAgIHBhZGRpbmc6IDE1cHggMjVweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyMTIsIDE3NSwgNTUsIDAuMDUpOwogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDIxMiwgMTc1LCA1NSwgMC4yKTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTVweDsKICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICAgICAgICBjb2xvcjogdmFyKC0taXZvcnkpOwogICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOwogICAgICAgIH0KICAgICAgICAuY29udGFjdC1tZXRob2Q6aG92ZXIgewogICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWdvbGQpOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDIxMiwgMTc1LCA1NSwgMC4xKTsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zcHgpOwogICAgICAgIH0KICAgICAgICAuY29udGFjdC1tZXRob2QgLmljb24gewogICAgICAgICAgICBmb250LXNpemU6IDEuNXJlbTsKICAgICAgICB9CiAgICAgICAgLmNvbnRhY3QtbWV0aG9kIC5pbmZvIHsKICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsKICAgICAgICB9CiAgICAgICAgLmNvbnRhY3QtbWV0aG9kIC5sYWJlbCB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC43cmVtOwogICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMXB4OwogICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgICAgICBjb2xvcjogcmdiYSgyNDgsIDI0NCwgMjM2LCAwLjUpOwogICAgICAgIH0KICAgICAgICAuY29udGFjdC1tZXRob2QgLnZhbHVlIHsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjk1cmVtOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tZ29sZCk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qIEJhY2sgdG8gRW1waXJlICovCiAgICAgICAgLmJhY2stc2VjdGlvbiB7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICB9CiAgICAgICAgLmJhY2stbGluayB7CiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1yb3NlZ29sZCk7CiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjlyZW07CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7CiAgICAgICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuM3MgZWFzZTsKICAgICAgICB9CiAgICAgICAgLmJhY2stbGluazpob3ZlciB7IGNvbG9yOiB2YXIoLS1nb2xkKTsgfQogICAgICAgIAogICAgICAgIC8qIEZvb3RlciAqLwogICAgICAgIC5mb290ZXIgewogICAgICAgICAgICBtYXJnaW4tdG9wOiA4MHB4OwogICAgICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDIxMiwgMTc1LCA1NSwgMC4xKTsKICAgICAgICB9CiAgICAgICAgLmZvb3Rlci1xdW90ZSB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnQ29ybW9yYW50IEdhcmFtb25kJywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtOwogICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgICAgICAgIGNvbG9yOiByZ2JhKDI0OCwgMjQ0LCAyMzYsIDAuNik7CiAgICAgICAgICAgIG1heC13aWR0aDogNTAwcHg7CiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvIDIwcHg7CiAgICAgICAgfQogICAgICAgIC5mb290ZXItdGV4dCB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC43cmVtOwogICAgICAgICAgICBjb2xvcjogcmdiYSgyNDgsIDI0NCwgMjM2LCAwLjQpOwogICAgICAgIH0KICAgICAgICAuZm9vdGVyLXRleHQgYSB7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1nb2xkKTsKICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBSZXNwb25zaXZlICovCiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7CiAgICAgICAgICAgIC50b3BuYXYgeyBwYWRkaW5nOiAxNXB4IDIwcHg7IH0KICAgICAgICAgICAgLmNvbm5lY3Qtc2VjdGlvbiB7IHBhZGRpbmc6IDEwMHB4IDIwcHggNjBweDsgfQogICAgICAgICAgICAub3B0aW9ucy1ncmlkIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7IH0KICAgICAgICAgICAgLm9wdGlvbi1jYXJkIHsgcGFkZGluZzogMzVweCAyNXB4OyB9CiAgICAgICAgICAgIC5kaXJlY3QtY29udGFjdCB7IHBhZGRpbmc6IDM1cHggMjVweDsgfQogICAgICAgICAgICAuY29udGFjdC1tZXRob2RzIHsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgYWxpZ24taXRlbXM6IGNlbnRlcjsgfQogICAgICAgICAgICAuY29udGFjdC1tZXRob2QgeyB3aWR0aDogMTAwJTsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH0KICAgICAgICB9CiAgICA8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgogICAgPGRpdiBjbGFzcz0id2F0ZXJtYXJrIj48L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImJnLWx1eHVyeSI+PC9kaXY+CiAgICAKICAgIDwhLS0gRmxvYXRpbmcgRWxlbWVudHMgLS0+CiAgICA8ZGl2IGNsYXNzPSJmbG9hdGllIGZsb2F0aWUxIj7wn5KsPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJmbG9hdGllIGZsb2F0aWUyIj7inInvuI88L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImZsb2F0aWUgZmxvYXRpZTMiPvCfpJ08L2Rpdj4KICAgIAogICAgPCEtLSBOYXZpZ2F0aW9uIC0tPgogICAgPG5hdiBjbGFzcz0idG9wbmF2Ij4KICAgICAgICA8YSBocmVmPSJET01BSU5HT0VTSEVSRS5jb20vIiBjbGFzcz0ibmF2LWJyYW5kIj5NVUtBU0EgVkVOVFVSRSBQQVJUTkVSUzwvYT4KICAgICAgICA8YSBocmVmPSJET01BSU5HT0VTSEVSRS5jb20vZW1waXJlIiBjbGFzcz0ibmF2LWJhY2siPgogICAgICAgICAgICA8c3Bhbj7ihpA8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuPkJhY2sgdG8gRW1waXJlPC9zcGFuPgogICAgICAgIDwvYT4KICAgIDwvbmF2PgogICAgCiAgICA8IS0tIE1haW4gU2VjdGlvbiAtLT4KICAgIDxzZWN0aW9uIGNsYXNzPSJjb25uZWN0LXNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CiAgICAgICAgICAgIDwhLS0gSGVhZGVyIC0tPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYWdlLWhlYWRlciI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYWdlLWljb24iPvCfpJ08L2Rpdj4KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJwYWdlLWxhYmVsIj5MZXQncyBDb25uZWN0PC9wPgogICAgICAgICAgICAgICAgPGgxIGNsYXNzPSJwYWdlLXRpdGxlIj5XZSdyZSBIZXJlIFdoZW4gWW91J3JlIFJlYWR5PC9oMT4KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJwYWdlLXN1YnRpdGxlIj4KICAgICAgICAgICAgICAgICAgICBXaGV0aGVyIHlvdSdyZSBleHBsb3JpbmcsIGxlYXJuaW5nLCBvciByZWFkeSB0byB0YWtlIGFjdGlvbiDigJQgdGhlcmUncyBhIHBhdGggZm9yIHlvdS4gQ2hvb3NlIHdoYXQgZmVlbHMgcmlnaHQuCiAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAKICAgICAgICAgICAgPCEtLSBPcHRpb25zIEdyaWQgLS0+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im9wdGlvbnMtZ3JpZCI+CiAgICAgICAgICAgICAgICA8IS0tIE5ld3NsZXR0ZXIgU2lnbnVwIC0tPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ib3B0aW9uLWNhcmQgZmVhdHVyZWQiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im9wdGlvbi1pY29uIj7wn5OsPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJvcHRpb24tdGl0bGUiPkpvaW4gVGhlIE5ld3NsZXR0ZXI8L2gzPgogICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJvcHRpb24tZGVzY3JpcHRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICBXZWVrbHkgaW5zaWdodHMgb24gQWZyaWNhbiBlbnRyZXByZW5ldXJzaGlwLCBkaWdpdGFsIHNvdmVyZWlnbnR5LCBhbmQgYnVpbGRpbmcgbGVnYWN5LiBObyBzcGFtLCBqdXN0IHZhbHVlLgogICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICA8Zm9ybSBjbGFzcz0iY2FyZC1mb3JtIiBhY3Rpb249Imh0dHBzOi8vZm9ybXN1Ym1pdC5jby9tdWthc2F2ZW50dXJlcGFydG5lcnNAZ21haWwuY29tIiBtZXRob2Q9IlBPU1QiPgogICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJfc3ViamVjdCIgdmFsdWU9IvCfk6wgTmV3IE5ld3NsZXR0ZXIgU3Vic2NyaWJlciI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Il9jYXB0Y2hhIiB2YWx1ZT0iZmFsc2UiPgogICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJfbmV4dCIgdmFsdWU9IkRPTUFJTkdPRVNIRVJFLmNvbS9zdWJzY3JpYmVkIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic291cmNlIiB2YWx1ZT0iQ29ubmVjdCBQYWdlIC0gTmV3c2xldHRlciI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJlbWFpbCIgbmFtZT0iZW1haWwiIGNsYXNzPSJmb3JtLWlucHV0IiBwbGFjZWhvbGRlcj0iWW91ciBlbWFpbCBhZGRyZXNzIiByZXF1aXJlZD4KICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImZpcnN0X25hbWUiIGNsYXNzPSJmb3JtLWlucHV0IiBwbGFjZWhvbGRlcj0iRmlyc3QgbmFtZSAob3B0aW9uYWwpIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJzdWJtaXQiIGNsYXNzPSJjYXJkLWJ0biBnb2xkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlN1YnNjcmliZTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPuKGkjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIDwhLS0gRnJlZSBSZXNvdXJjZSAtLT4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im9wdGlvbi1jYXJkIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJvcHRpb24taWNvbiI+8J+TljwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0ib3B0aW9uLXRpdGxlIj5GcmVlIE1pbmktR3VpZGU8L2gzPgogICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJvcHRpb24tZGVzY3JpcHRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICBTdGFydCB5b3VyIGpvdXJuZXkgdG8gZGlnaXRhbCBzb3ZlcmVpZ250eSB3aXRoIG91ciBmb3VuZGF0aW9uYWwgZ3VpZGUgZm9yIEFmcmljYW4gZW50cmVwcmVuZXVycy4KICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icmVzb3VyY2UtaGlnaGxpZ2h0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPHA+8J+TmiA8c3Ryb25nPiJGcm9tIFNoYXJlY3JvcHBlciB0byBTb3ZlcmVpZ24iPC9zdHJvbmc+PGJyPjcgU3RlcHMgdG8gT3duaW5nIFlvdXIgRGlnaXRhbCBEZXN0aW55PC9wPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxmb3JtIGNsYXNzPSJjYXJkLWZvcm0iIGFjdGlvbj0iaHR0cHM6Ly9mb3Jtc3VibWl0LmNvL211a2FzYXZlbnR1cmVwYXJ0bmVyc0BnbWFpbC5jb20iIG1ldGhvZD0iUE9TVCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Il9zdWJqZWN0IiB2YWx1ZT0i8J+TliBNaW5pLUd1aWRlIERvd25sb2FkIFJlcXVlc3QiPgogICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJfY2FwdGNoYSIgdmFsdWU9ImZhbHNlIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iX25leHQiIHZhbHVlPSJET01BSU5HT0VTSEVSRS5jb20vZ3VpZGUtc2VudCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNvdXJjZSIgdmFsdWU9IkNvbm5lY3QgUGFnZSAtIE1pbmkgR3VpZGUiPgogICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iZW1haWwiIG5hbWU9ImVtYWlsIiBjbGFzcz0iZm9ybS1pbnB1dCIgcGxhY2Vob2xkZXI9IlNlbmQgZ3VpZGUgdG8gdGhpcyBlbWFpbCIgcmVxdWlyZWQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0IiBjbGFzcz0iY2FyZC1idG4gdGVhbCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5TZW5kIE15IEZyZWUgR3VpZGU8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj7ihpI8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICA8IS0tIEp1c3QgQXNrIGEgUXVlc3Rpb24gLS0+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJvcHRpb24tY2FyZCI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ib3B0aW9uLWljb24iPuKdkzwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0ib3B0aW9uLXRpdGxlIj5IYXZlIGEgUXVlc3Rpb24/PC9oMz4KICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0ib3B0aW9uLWRlc2NyaXB0aW9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgTm90IHN1cmUgd2hlcmUgdG8gc3RhcnQ/IFNlbmQgdXMgeW91ciBxdWVzdGlvbiBhbmQgd2UnbGwgcG9pbnQgeW91IGluIHRoZSByaWdodCBkaXJlY3Rpb24uCiAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgIDxmb3JtIGNsYXNzPSJjYXJkLWZvcm0iIGFjdGlvbj0iaHR0cHM6Ly9mb3Jtc3VibWl0LmNvL211a2FzYXZlbnR1cmVwYXJ0bmVyc0BnbWFpbC5jb20iIG1ldGhvZD0iUE9TVCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Il9zdWJqZWN0IiB2YWx1ZT0i4p2TIEdlbmVyYWwgUXVlc3Rpb24gZnJvbSBDb25uZWN0IFBhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJfY2FwdGNoYSIgdmFsdWU9ImZhbHNlIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iX25leHQiIHZhbHVlPSJET01BSU5HT0VTSEVSRS5jb20vbWVzc2FnZS1zZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic291cmNlIiB2YWx1ZT0iQ29ubmVjdCBQYWdlIC0gUXVlc3Rpb24iPgogICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ibmFtZSIgY2xhc3M9ImZvcm0taW5wdXQiIHBsYWNlaG9sZGVyPSJZb3VyIG5hbWUiIHJlcXVpcmVkPgogICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iZW1haWwiIG5hbWU9ImVtYWlsIiBjbGFzcz0iZm9ybS1pbnB1dCIgcGxhY2Vob2xkZXI9IllvdXIgZW1haWwiIHJlcXVpcmVkPgogICAgICAgICAgICAgICAgICAgICAgICA8dGV4dGFyZWEgbmFtZT0icXVlc3Rpb24iIGNsYXNzPSJmb3JtLWlucHV0IiBwbGFjZWhvbGRlcj0iWW91ciBxdWVzdGlvbi4uLiIgcm93cz0iMyIgcmVxdWlyZWQgc3R5bGU9InJlc2l6ZTogbm9uZTsiPjwvdGV4dGFyZWE+CiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0IiBjbGFzcz0iY2FyZC1idG4gb3V0bGluZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5TZW5kIFF1ZXN0aW9uPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+4oaSPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIAogICAgICAgICAgICA8IS0tIERpcmVjdCBDb250YWN0IC0tPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJkaXJlY3QtY29udGFjdCI+CiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9ImNvbnRhY3QtdGl0bGUiPlByZWZlciBEaXJlY3QgQ29udGFjdD88L2gyPgogICAgICAgICAgICAgICAgPHAgY2xhc3M9ImNvbnRhY3Qtc3VidGl0bGUiPlJlYWNoIG91dCB0aHJvdWdoIGFueSBvZiB0aGVzZSBjaGFubmVsczwvcD4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGFjdC1tZXRob2RzIj4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJtYWlsdG86aGVsbG9AbXVrYXNhdmVudHVyZXBhcnRuZXJzLmNvbSIgY2xhc3M9ImNvbnRhY3QtbWV0aG9kIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Imljb24iPuKcie+4jzwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5mbyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0ibGFiZWwiPkVtYWlsPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InZhbHVlIj5oZWxsb0BtdWthc2F2ZW50dXJlcGFydG5lcnMuY29tPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly93YS5tZS8xMjM0NTY3ODkwMCIgY2xhc3M9ImNvbnRhY3QtbWV0aG9kIiB0YXJnZXQ9Il9ibGFuayI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpY29uIj7wn5KsPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJsYWJlbCI+V2hhdHNBcHA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idmFsdWUiPk1lc3NhZ2UgVXMgRGlyZWN0bHk8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL21hcmtldGluZ2JyaWxsaWFudGx5LmNvbS9BUi8yMDI2c292ZXJlaWdubWVldGdyZWV0IiBjbGFzcz0iY29udGFjdC1tZXRob2QiIHRhcmdldD0iX2JsYW5rIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Imljb24iPvCfk4U8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImluZm8iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9ImxhYmVsIj5TY2hlZHVsZTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ2YWx1ZSI+Qm9vayBhIFN0cmF0ZWd5IENhbGw8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgCiAgICAgICAgICAgIDwhLS0gQmFjayB0byBFbXBpcmUgLS0+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJhY2stc2VjdGlvbiI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSJET01BSU5HT0VTSEVSRS5jb20vZW1waXJlIiBjbGFzcz0iYmFjay1saW5rIj4KICAgICAgICAgICAgICAgICAgICA8c3Bhbj7ihpA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4+RXhwbG9yZSBUaGUgU292ZXJlaWduIEVtcGlyZTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L3NlY3Rpb24+CiAgICAKICAgIDwhLS0gRm9vdGVyIC0tPgogICAgPGZvb3RlciBjbGFzcz0iZm9vdGVyIj4KICAgICAgICA8cCBjbGFzcz0iZm9vdGVyLXF1b3RlIj4KICAgICAgICAgICAgIldlJ3JlIGhlcmUgd2hlbiB5b3UncmUgcmVhZHkuIE5vIHByZXNzdXJlLCBqdXN0IHBvc3NpYmlsaXR5LiIKICAgICAgICA8L3A+CiAgICAgICAgPHAgY2xhc3M9ImZvb3Rlci10ZXh0Ij4KICAgICAgICAgICAgwqkgMjAxNy0yMDI2IDxhIGhyZWY9IkRPTUFJTkdPRVNIRVJFLmNvbS8iPk11a2FzYSBWZW50dXJlIFBhcnRuZXJzIExMQzwvYT4g4oCiIFRoZSBTb3ZlcmVpZ24gRW1waXJlCiAgICAgICAgPC9wPgogICAgPC9mb290ZXI+CiAgICAKICAgIDxzY3JpcHQ+CiAgICAgICAgLy8gSVAgUHJvdGVjdGlvbgogICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NvbnRleHRtZW51JywgZSA9PiBlLnByZXZlbnREZWZhdWx0KCkpOwogICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBlID0+IHsKICAgICAgICAgICAgaWYgKChlLmN0cmxLZXkgJiYgWydjJywndicsJ3MnLCdwJywndSddLmluY2x1ZGVzKGUua2V5LnRvTG93ZXJDYXNlKCkpKSB8fCBlLmtleSA9PT0gJ0YxMicpIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgICB9KTsKICAgIDwvc2NyaXB0Pgo8L2JvZHk+CjwvaHRtbD4=","embed":""}
💬
✉️
🤝
🤝
Let's Connect
We're Here When You're Ready
Whether you're exploring, learning, or ready to take action — there's a path for you. Choose what feels right.
📬
Join The Newsletter
Weekly insights on African entrepreneurship, digital sovereignty, and building legacy. No spam, just value.
📖
Free Mini-Guide
Start your journey to digital sovereignty with our foundational guide for African entrepreneurs.
📚 "From Sharecropper to Sovereign"
7 Steps to Owning Your Digital Destiny
❓
Have a Question?
Not sure where to start? Send us your question and we'll point you in the right direction.
Prefer Direct Contact?
Reach out through any of these channels