{"js":"PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCI+CiAgICAKICAgIDwhLS0gU0VPIE1ldGEgVGFncyAtLT4KICAgIDx0aXRsZT5Db250YWN0IFRoZSBTb3ZlcmVpZ24gQXJjaGl0ZWN0cyAtIExldCdzIEJ1aWxkIFlvdXIgTW9tZW50dW08L3RpdGxlPgogICAgPG1ldGEgbmFtZT0iZGVzY3JpcHRpb24iIGNvbnRlbnQ9IlJlYWR5IHRvIGFyY2hpdGVjdCB5b3VyIGVtcGlyZT8gQ29ubmVjdCB3aXRoIFRoZSBTb3ZlcmVpZ24gQXJjaGl0ZWN0cyB0ZWFtIGZvciBzdHJhdGVnaWMgZ3VpZGFuY2UsIHBhcnRuZXJzaGlwIG9wcG9ydHVuaXRpZXMsIG9yIG1lZGlhIGlucXVpcmllcy4iPgogICAgPG1ldGEgbmFtZT0ia2V5d29yZHMiIGNvbnRlbnQ9ImNvbnRhY3Qgc292ZXJlaWduIGFyY2hpdGVjdHMsIGJ1c2luZXNzIGlucXVpcnksIHBhcnRuZXJzaGlwIG9wcG9ydHVuaXRpZXMsIEFmcmljYW4gZW50cmVwcmVuZXVyc2hpcCBjb25zdWx0aW5nLCBzdHJhdGVnaWMgZ3VpZGFuY2UsIG1lZGlhIGlucXVpcmllcyI+CiAgICAKICAgIDwhLS0gT3BlbiBHcmFwaCAvIFNvY2lhbCBNZWRpYSBNZXRhIFRhZ3MgLS0+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6dGl0bGUiIGNvbnRlbnQ9IkNvbnRhY3QgVGhlIFNvdmVyZWlnbiBBcmNoaXRlY3RzIj4KICAgIDxtZXRhIHByb3BlcnR5PSJvZzpkZXNjcmlwdGlvbiIgY29udGVudD0iQ29ubmVjdCB3aXRoIHVzIGZvciBzdHJhdGVnaWMgZ3VpZGFuY2UsIHBhcnRuZXJzaGlwcywgb3IgbWVkaWEgaW5xdWlyaWVzLiBMZXQncyBidWlsZCB5b3VyIHNvdmVyZWlnbiBlbXBpcmUgdG9nZXRoZXIuIj4KICAgIDxtZXRhIHByb3BlcnR5PSJvZzppbWFnZSIgY29udGVudD0iaHR0cHM6Ly9zb3ZlcmVpZ25tb21lbnR1bS5jb20vaW1hZ2VzL29nLWNvbnRhY3QuanBnIj4KICAgIDxtZXRhIHByb3BlcnR5PSJvZzp1cmwiIGNvbnRlbnQ9Imh0dHBzOi8vc292ZXJlaWdubW9tZW50dW0uY29tL3R3by1oZWFydHMtY29udGFjdCI+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6dHlwZSIgY29udGVudD0id2Vic2l0ZSI+CiAgICAKICAgIDwhLS0gVHdpdHRlciBDYXJkIC0tPgogICAgPG1ldGEgbmFtZT0idHdpdHRlcjpjYXJkIiBjb250ZW50PSJzdW1tYXJ5X2xhcmdlX2ltYWdlIj4KICAgIDxtZXRhIG5hbWU9InR3aXR0ZXI6dGl0bGUiIGNvbnRlbnQ9IkNvbnRhY3QgVGhlIFNvdmVyZWlnbiBBcmNoaXRlY3RzIj4KICAgIDxtZXRhIG5hbWU9InR3aXR0ZXI6ZGVzY3JpcHRpb24iIGNvbnRlbnQ9IkNvbm5lY3Qgd2l0aCB1cyBmb3Igc3RyYXRlZ2ljIGd1aWRhbmNlIGFuZCBwYXJ0bmVyc2hpcCBvcHBvcnR1bml0aWVzIj4KICAgIDxtZXRhIG5hbWU9InR3aXR0ZXI6aW1hZ2UiIGNvbnRlbnQ9Imh0dHBzOi8vc292ZXJlaWdubW9tZW50dW0uY29tL2ltYWdlcy90d2l0dGVyLWNvbnRhY3QuanBnIj4KICAgIAogICAgPCEtLSBDYW5vbmljYWwgVVJMIC0tPgogICAgPGxpbmsgcmVsPSJjYW5vbmljYWwiIGhyZWY9Imh0dHBzOi8vc292ZXJlaWdubW9tZW50dW0uY29tL3R3by1oZWFydHMtY29udGFjdCI+CiAgICAKICAgIDwhLS0gRm9udHMgLS0+CiAgICA8bGluayBocmVmPSJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5PUNpbnplbDp3Z2h0QDQwMDs2MDA7NzAwJmZhbWlseT1MYXRvOndnaHRAMzAwOzQwMDs3MDAmZGlzcGxheT1zd2FwIiByZWw9InN0eWxlc2hlZXQiPgogICAgCiAgICA8IS0tIEZhdmljb24gLS0+CiAgICA8bGluayByZWw9Imljb24iIHR5cGU9ImltYWdlL3BuZyIgaHJlZj0iL2Zhdmljb24ucG5nIj4KICAgIAogICAgPCEtLSByZUNBUFRDSEEgdjMgLS0+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9yZWNhcHRjaGEvYXBpLmpzIiBhc3luYyBkZWZlcj48L3NjcmlwdD4KICAgIAogICAgPHN0eWxlPgogICAgICAgIC8qIPCfjqggQlJBTkQgQ09MT1JTICovCiAgICAgICAgOnJvb3QgewogICAgICAgICAgICAtLW5hdnk6ICMwMDAwODA7CiAgICAgICAgICAgIC0tZGFyay1uYXZ5OiAjMDAwMDY2OwogICAgICAgICAgICAtLWdvbGQ6ICNGRkQ3MDA7CiAgICAgICAgICAgIC0tbGlnaHQtZ29sZDogI0ZGRjhEQzsKICAgICAgICAgICAgLS13aGl0ZTogI0ZGRkZGRjsKICAgICAgICAgICAgLS1ncmF5OiAjMzMzMzMzOwogICAgICAgICAgICAtLWxpZ2h0LWdyYXk6ICNGNUY1RjU7CiAgICAgICAgICAgIC0tc3VjY2VzczogIzAwYTg2YjsKICAgICAgICAgICAgLS1lcnJvcjogI2RjMjYyNjsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogUkVTRVQgJiBCQVNFICovCiAgICAgICAgKiB7CiAgICAgICAgICAgIG1hcmdpbjogMDsKICAgICAgICAgICAgcGFkZGluZzogMDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgYm9keSB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnTGF0bycsIHNhbnMtc2VyaWY7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1ncmF5KTsKICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0td2hpdGUpOwogICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qIEFOVEktQ09QWSBTRUNVUklUWSAqLwogICAgICAgIGJvZHkgewogICAgICAgICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOwogICAgICAgICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lOwogICAgICAgICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBBbGxvdyBzZWxlY3Rpb24gaW4gZm9ybSBmaWVsZHMgKi8KICAgICAgICBpbnB1dCwgdGV4dGFyZWEsIHNlbGVjdCB7CiAgICAgICAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IHRleHQ7CiAgICAgICAgICAgIC1tb3otdXNlci1zZWxlY3Q6IHRleHQ7CiAgICAgICAgICAgIC1tcy11c2VyLXNlbGVjdDogdGV4dDsKICAgICAgICAgICAgdXNlci1zZWxlY3Q6IHRleHQ7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qIEJBQ0sgVE8gVE9QIEJVVFRPTiAqLwogICAgICAgICNiYWNrLXRvLXRvcCB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICAgICAgYm90dG9tOiA0MHB4OwogICAgICAgICAgICByaWdodDogNDBweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tZ29sZCkgMCUsICNGRkE1MDAgMTAwJSk7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1uYXZ5KTsKICAgICAgICAgICAgd2lkdGg6IDUwcHg7CiAgICAgICAgICAgIGhlaWdodDogNTBweDsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjVyZW07CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgNXB4IDE1cHggcmdiYSgyNTUsIDIxNSwgMCwgMC40KTsKICAgICAgICAgICAgei1pbmRleDogMTAwMDsKICAgICAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgI2JhY2stdG8tdG9wOmhvdmVyIHsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01cHgpOwogICAgICAgICAgICBib3gtc2hhZG93OiAwIDhweCAyMHB4IHJnYmEoMjU1LCAyMTUsIDAsIDAuNik7CiAgICAgICAgfQogICAgICAgIAogICAgICAgICNiYWNrLXRvLXRvcC5zaG93IHsKICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qIE5BVklHQVRJT04gKi8KICAgICAgICBuYXYgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1uYXZ5KSAwJSwgdmFyKC0tZGFyay1uYXZ5KSAxMDAlKTsKICAgICAgICAgICAgcGFkZGluZzogMXJlbSA1JTsKICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTsKICAgICAgICAgICAgdG9wOiAwOwogICAgICAgICAgICB6LWluZGV4OiA5OTk7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDEwcHggcmdiYSgwLDAsMCwwLjEpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAubmF2LWNvbnRhaW5lciB7CiAgICAgICAgICAgIG1heC13aWR0aDogMTQwMHB4OwogICAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAubG9nbyB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnQ2luemVsJywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS41cmVtOwogICAgICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tZ29sZCk7CiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLm5hdi1saW5rcyB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGdhcDogMnJlbTsKICAgICAgICAgICAgbGlzdC1zdHlsZTogbm9uZTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLm5hdi1saW5rcyBhIHsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXdoaXRlKTsKICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjNzIGVhc2U7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5uYXYtbGlua3MgYTpob3ZlciB7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1nb2xkKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogSEVSTyBTRUNUSU9OICovCiAgICAgICAgLmhlcm8gewogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1uYXZ5KSAwJSwgdmFyKC0tZGFyay1uYXZ5KSAxMDAlKTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXdoaXRlKTsKICAgICAgICAgICAgcGFkZGluZzogODBweCA1JSA2MHB4OwogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5oZXJvIGgxIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdDaW56ZWwnLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiBjbGFtcCgyLjVyZW0sIDR2dywgMy41cmVtKTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMS41cmVtOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tZ29sZCk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5oZXJvIHAgewogICAgICAgICAgICBmb250LXNpemU6IGNsYW1wKDEuMXJlbSwgMnZ3LCAxLjNyZW0pOwogICAgICAgICAgICBtYXgtd2lkdGg6IDcwMHB4OwogICAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuODsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogQ09OVEFDVCBTRUNUSU9OICovCiAgICAgICAgLmNvbnRhY3Qtc2VjdGlvbiB7CiAgICAgICAgICAgIHBhZGRpbmc6IDgwcHggNSU7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXdoaXRlKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNvbnRhY3QtY29udGFpbmVyIHsKICAgICAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7CiAgICAgICAgICAgIGdhcDogNHJlbTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogQ09OVEFDVCBJTkZPICovCiAgICAgICAgLmNvbnRhY3QtaW5mbyB7CiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNvbnRhY3QtaW5mbyBoMiB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnQ2luemVsJywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMnJlbTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLW5hdnkpOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAycmVtOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY29udGFjdC1tZXRob2QgewogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyLjVyZW07CiAgICAgICAgICAgIHBhZGRpbmc6IDEuNXJlbTsKICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tbGlnaHQtZ3JheSk7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7CiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiA1cHggc29saWQgdmFyKC0tZ29sZCk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jb250YWN0LW1ldGhvZCBoMyB7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1uYXZ5KTsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjNyZW07CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNvbnRhY3QtbWV0aG9kIHAgewogICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTsKICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuODsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY29udGFjdC1tZXRob2QgYSB7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1uYXZ5KTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjNzIGVhc2U7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jb250YWN0LW1ldGhvZCBhOmhvdmVyIHsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWdvbGQpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBDT05UQUNUIEZPUk0gKi8KICAgICAgICAuY29udGFjdC1mb3JtIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tbGlnaHQtZ29sZCk7CiAgICAgICAgICAgIHBhZGRpbmc6IDNyZW07CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMTBweCAzMHB4IHJnYmEoMCwwLDAsMC4xKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNvbnRhY3QtZm9ybSBoMiB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnQ2luemVsJywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMnJlbTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLW5hdnkpOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAycmVtOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZm9ybS1ncm91cCB7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmZvcm0tZ3JvdXAgbGFiZWwgewogICAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgICAgY29sb3I6IHZhcigtLW5hdnkpOwogICAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5mb3JtLWdyb3VwIGlucHV0LAogICAgICAgIC5mb3JtLWdyb3VwIHRleHRhcmVhLAogICAgICAgIC5mb3JtLWdyb3VwIHNlbGVjdCB7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBwYWRkaW5nOiAxcmVtOwogICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1nb2xkKTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDsKICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtOwogICAgICAgICAgICBmb250LWZhbWlseTogJ0xhdG8nLCBzYW5zLXNlcmlmOwogICAgICAgICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4zcyBlYXNlOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZm9ybS1ncm91cCBpbnB1dDpmb2N1cywKICAgICAgICAuZm9ybS1ncm91cCB0ZXh0YXJlYTpmb2N1cywKICAgICAgICAuZm9ybS1ncm91cCBzZWxlY3Q6Zm9jdXMgewogICAgICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLW5hdnkpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZm9ybS1ncm91cCB0ZXh0YXJlYSB7CiAgICAgICAgICAgIHJlc2l6ZTogdmVydGljYWw7CiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDE1MHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuc3VibWl0LWJ1dHRvbiB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWdvbGQpIDAlLCAjRkZBNTAwIDEwMCUpOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tbmF2eSk7CiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gM3JlbTsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTBweDsKICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOwogICAgICAgICAgICBib3gtc2hhZG93OiAwIDVweCAxNXB4IHJnYmEoMjU1LCAyMTUsIDAsIDAuMyk7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuc3VibWl0LWJ1dHRvbjpob3ZlciB7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtM3B4KTsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCA4cHggMjBweCByZ2JhKDI1NSwgMjE1LCAwLCAwLjUpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuc3VibWl0LWJ1dHRvbjpkaXNhYmxlZCB7CiAgICAgICAgICAgIG9wYWNpdHk6IDAuNjsKICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogRm9ybSBNZXNzYWdlcyAqLwogICAgICAgIC5mb3JtLW1lc3NhZ2UgewogICAgICAgICAgICBwYWRkaW5nOiAxcmVtOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4OwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07CiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5mb3JtLW1lc3NhZ2Uuc3VjY2VzcyB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNkNGVkZGE7CiAgICAgICAgICAgIGNvbG9yOiAjMTU1NzI0OwogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjYzNlNmNiOwogICAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmZvcm0tbWVzc2FnZS5lcnJvciB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmOGQ3ZGE7CiAgICAgICAgICAgIGNvbG9yOiAjNzIxYzI0OwogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZjVjNmNiOwogICAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogSG9uZXlwb3QgKGhpZGRlbiBmaWVsZCBmb3IgYm90IHByb3RlY3Rpb24pICovCiAgICAgICAgLmhvbmV5cG90IHsKICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICBsZWZ0OiAtOTk5OXB4OwogICAgICAgICAgICB3aWR0aDogMXB4OwogICAgICAgICAgICBoZWlnaHQ6IDFweDsKICAgICAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogRk9PVEVSICovCiAgICAgICAgZm9vdGVyIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGFyay1uYXZ5KTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXdoaXRlKTsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBwYWRkaW5nOiAzcmVtIDUlOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZm9vdGVyLXByb3ZlcmIgewogICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1nb2xkKTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jb3B5cmlnaHQgewogICAgICAgICAgICBjb2xvcjogdmFyKC0tbGlnaHQtZ29sZCk7CiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qIE1PQklMRSBSRVNQT05TSVZFICovCiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDk2OHB4KSB7CiAgICAgICAgICAgIC5jb250YWN0LWNvbnRhaW5lciB7CiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICAgICAgICAgIGdhcDogM3JlbTsKICAgICAgICAgICAgfQogICAgICAgICAgICAKICAgICAgICAgICAgLm5hdi1saW5rcyB7CiAgICAgICAgICAgICAgICBnYXA6IDFyZW07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgICNiYWNrLXRvLXRvcCB7CiAgICAgICAgICAgICAgICBib3R0b206IDIwcHg7CiAgICAgICAgICAgICAgICByaWdodDogMjBweDsKICAgICAgICAgICAgICAgIHdpZHRoOiA0NXB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiA0NXB4OwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgPC9zdHlsZT4KPC9oZWFkPgo8Ym9keT4KCiAgICA8IS0tIEJBQ0sgVE8gVE9QIEJVVFRPTiAtLT4KICAgIDxidXR0b24gaWQ9ImJhY2stdG8tdG9wIiBhcmlhLWxhYmVsPSJCYWNrIHRvIHRvcCI+4oaRPC9idXR0b24+CgogICAgPCEtLSBOQVZJR0FUSU9OIC0tPgogICAgPG5hdj4KICAgICAgICA8ZGl2IGNsYXNzPSJuYXYtY29udGFpbmVyIj4KICAgICAgICAgICAgPGEgaHJlZj0iL3R3by1oZWFydHMtaG9tZSIgY2xhc3M9ImxvZ28iPlNvdmVyZWlnbiBNb21lbnR1bTwvYT4KICAgICAgICAgICAgPHVsIGNsYXNzPSJuYXYtbGlua3MiPgogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii90d28taGVhcnRzLWhvbWUiPkhvbWU8L2E+PC9saT4KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvdHdvLWhlYXJ0cy1jb250YWN0Ij5Db250YWN0PC9hPjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iL21vbWVudHVtLW1hbmlmZXN0byI+TmV3c2xldHRlcjwvYT48L2xpPgogICAgICAgICAgICA8L3VsPgogICAgICAgIDwvZGl2PgogICAgPC9uYXY+CgogICAgPCEtLSBIRVJPIFNFQ1RJT04gLS0+CiAgICA8c2VjdGlvbiBjbGFzcz0iaGVybyI+CiAgICAgICAgPGgxPkxldCdzIEJ1aWxkIFlvdXIgU292ZXJlaWduIEVtcGlyZTwvaDE+CiAgICAgICAgPHA+CiAgICAgICAgICAgIFdoZXRoZXIgeW91J3JlIHJlYWR5IGZvciBzdHJhdGVnaWMgZ3VpZGFuY2UsIGV4cGxvcmluZyBwYXJ0bmVyc2hpcCBvcHBvcnR1bml0aWVzLCBvciBoYXZlIGEgbWVkaWEgaW5xdWlyeSwgd2UncmUgaGVyZSB0byBjb25uZWN0LiBUaGUgYXJjaGl0ZWN0dXJlIGJlZ2lucyB3aXRoIGEgY29udmVyc2F0aW9uLgogICAgICAgIDwvcD4KICAgIDwvc2VjdGlvbj4KCiAgICA8IS0tIENPTlRBQ1QgU0VDVElPTiAtLT4KICAgIDxzZWN0aW9uIGNsYXNzPSJjb250YWN0LXNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhY3QtY29udGFpbmVyIj4KICAgICAgICAgICAgCiAgICAgICAgICAgIDwhLS0gQ09OVEFDVCBJTkZPIC0tPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWN0LWluZm8iPgogICAgICAgICAgICAgICAgPGgyPkNvbm5lY3QgV2l0aCBVczwvaDI+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhY3QtbWV0aG9kIj4KICAgICAgICAgICAgICAgICAgICA8aDM+8J+TpyBHZW5lcmFsIElucXVpcmllczwvaDM+CiAgICAgICAgICAgICAgICAgICAgPHA+Rm9yIGdlbmVyYWwgcXVlc3Rpb25zLCB3ZWJpbmFyIHN1cHBvcnQsIG9yIHBhcnRuZXJzaGlwIG9wcG9ydHVuaXRpZXM6PC9wPgogICAgICAgICAgICAgICAgICAgIDxwPjxhIGhyZWY9Im1haWx0bzpoZWxsb0Bzb3ZlcmVpZ25tb21lbnR1bS5jb20iPmhlbGxvQHNvdmVyZWlnbm1vbWVudHVtLmNvbTwvYT48L3A+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGFjdC1tZXRob2QiPgogICAgICAgICAgICAgICAgICAgIDxoMz7wn46vIFN0cmF0ZWdpYyBCcmllZmluZzwvaDM+CiAgICAgICAgICAgICAgICAgICAgPHA+UmVhZHkgZm9yIDE6MSBzdHJhdGVnaWMgZ3VpZGFuY2U/IEJvb2sgeW91ciBTb3ZlcmVpZ24gQXJjaGl0ZWN0cyBTdHJhdGVnaWMgQnJpZWZpbmc6PC9wPgogICAgICAgICAgICAgICAgICAgIDxwPjxhIGhyZWY9Ii9tYXN0ZXJjbGFzcy1yZWdpc3RyYXRpb24iPlNjaGVkdWxlIFlvdXIgQnJpZWZpbmcg4oaSPC9hPjwvcD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWN0LW1ldGhvZCI+CiAgICAgICAgICAgICAgICAgICAgPGgzPvCfk7AgTWVkaWEgJiBQcmVzczwvaDM+CiAgICAgICAgICAgICAgICAgICAgPHA+TWVkaWEgaW5xdWlyaWVzLCBzcGVha2luZyBlbmdhZ2VtZW50cywgYW5kIHBvZGNhc3QgaW50ZXJ2aWV3czo8L3A+CiAgICAgICAgICAgICAgICAgICAgPHA+PGEgaHJlZj0ibWFpbHRvOm1lZGlhQHNvdmVyZWlnbm1vbWVudHVtLmNvbSI+bWVkaWFAc292ZXJlaWdubW9tZW50dW0uY29tPC9hPjwvcD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWN0LW1ldGhvZCI+CiAgICAgICAgICAgICAgICAgICAgPGgzPvCfk40gTG9jYXRpb248L2gzPgogICAgICAgICAgICAgICAgICAgIDxwPlNlcnZpbmcgZGlhc3BvcmEgZW50cmVwcmVuZXVycyBhbmQgQWZyaWNhbiBpbm5vdmF0b3JzIGdsb2JhbGx5IGZyb206PC9wPgogICAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+S2FsYW1hem9vLCBNaWNoaWdhbiwgVVNBPC9zdHJvbmc+PC9wPgogICAgICAgICAgICAgICAgICAgIDxwPk9wZXJhdGluZyBhY3Jvc3MgdGhyZWUgY29udGluZW50czwvcD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgCiAgICAgICAgICAgIDwhLS0gQ09OVEFDVCBGT1JNIC0tPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWN0LWZvcm0iPgogICAgICAgICAgICAgICAgPGgyPlNlbmQgVXMgYSBNZXNzYWdlPC9oMj4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgPGRpdiBpZD0iZm9ybS1tZXNzYWdlIiBjbGFzcz0iZm9ybS1tZXNzYWdlIj48L2Rpdj4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgPGZvcm0gaWQ9ImNvbnRhY3RGb3JtIiBhY3Rpb249IiMiIG1ldGhvZD0iUE9TVCI+CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPCEtLSBIb25leXBvdCBmaWVsZCAoaGlkZGVuIC0gZm9yIGJvdCBwcm90ZWN0aW9uKSAtLT4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0id2Vic2l0ZSIgY2xhc3M9ImhvbmV5cG90IiB0YWJpbmRleD0iLTEiIGF1dG9jb21wbGV0ZT0ib2ZmIj4KICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0ibmFtZSI+WW91ciBOYW1lICo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9Im5hbWUiIG5hbWU9Im5hbWUiIHJlcXVpcmVkIHBsYWNlaG9sZGVyPSJGdWxsIE5hbWUiPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJlbWFpbCI+WW91ciBFbWFpbCAqPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImVtYWlsIiBpZD0iZW1haWwiIG5hbWU9ImVtYWlsIiByZXF1aXJlZCBwbGFjZWhvbGRlcj0iZW1haWxAZXhhbXBsZS5jb20iPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJpbnF1aXJ5LXR5cGUiPklucXVpcnkgVHlwZSAqPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBpZD0iaW5xdWlyeS10eXBlIiBuYW1lPSJpbnF1aXJ5X3R5cGUiIHJlcXVpcmVkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iIj5TZWxlY3QgaW5xdWlyeSB0eXBlLi4uPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJ3ZWJpbmFyIj5XZWJpbmFyIFF1ZXN0aW9uPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJzdHJhdGVnaWMiPlN0cmF0ZWdpYyBCcmllZmluZzwvb3B0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0icGFydG5lcnNoaXAiPlBhcnRuZXJzaGlwIE9wcG9ydHVuaXR5PC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJtZWRpYSI+TWVkaWEgJiBQcmVzczwvb3B0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0idGVjaG5pY2FsIj5UZWNobmljYWwgU3VwcG9ydDwvb3B0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0ib3RoZXIiPk90aGVyPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJtZXNzYWdlIj5Zb3VyIE1lc3NhZ2UgKjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSBpZD0ibWVzc2FnZSIgbmFtZT0ibWVzc2FnZSIgcmVxdWlyZWQgcGxhY2Vob2xkZXI9IlRlbGwgdXMgaG93IHdlIGNhbiBoZWxwIHlvdSBhcmNoaXRlY3QgeW91ciBzb3ZlcmVpZ24gZW1waXJlLi4uIj48L3RleHRhcmVhPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDwhLS0gcmVDQVBUQ0hBIHYzIGJhZGdlIHdpbGwgYXBwZWFyIGhlcmUgLS0+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZy1yZWNhcHRjaGEiIGRhdGEtc2l0ZWtleT0iWU9VUl9SRUNBUFRDSEFfU0lURV9LRVlfSEVSRSI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJzdWJtaXQiIGNsYXNzPSJzdWJtaXQtYnV0dG9uIiBpZD0ic3VibWl0LWJ0biI+CiAgICAgICAgICAgICAgICAgICAgICAgIFNlbmQgTWVzc2FnZSDihpIKICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8cCBzdHlsZT0iZm9udC1zaXplOiAwLjlyZW07IGNvbG9yOiB2YXIoLS1ncmF5KTsgbWFyZ2luLXRvcDogMXJlbTsiPgogICAgICAgICAgICAgICAgICAgICAgICAqIFJlcXVpcmVkIGZpZWxkcy4gV2UgdHlwaWNhbGx5IHJlc3BvbmQgd2l0aGluIDI0LTQ4IGhvdXJzLgogICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIAogICAgICAgIDwvZGl2PgogICAgPC9zZWN0aW9uPgoKICAgIDwhLS0gRk9PVEVSIC0tPgogICAgPGZvb3Rlcj4KICAgICAgICA8cCBjbGFzcz0iZm9vdGVyLXByb3ZlcmIiPiJJZiB5b3Ugd2FudCB0byBnbyBmYXN0LCBnbyBhbG9uZS4gSWYgeW91IHdhbnQgdG8gZ28gZmFyLCBnbyB0b2dldGhlci4iIOKAlCBBZnJpY2FuIFByb3ZlcmI8L3A+CiAgICAgICAgPHA+TGV0J3MgYnVpbGQgdG9nZXRoZXIuPC9wPgogICAgICAgIDxwIGNsYXNzPSJjb3B5cmlnaHQiPgogICAgICAgICAgICDCqSAyMDI1IFNvdmVyZWlnbiBNb21lbnR1bSB8IEFsbCBSaWdodHMgUmVzZXJ2ZWQgfCA8YSBocmVmPSIvdGVybXMiIHN0eWxlPSJjb2xvcjogdmFyKC0tZ29sZCk7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsiPlRlcm1zICYgUHJpdmFjeTwvYT4KICAgICAgICA8L3A+CiAgICA8L2Zvb3Rlcj4KCiAgICA8IS0tIEpBVkFTQ1JJUFQgLS0+CiAgICA8c2NyaXB0PgogICAgICAgIC8vIFNFQ1VSSVRZOiBEaXNhYmxlIHJpZ2h0LWNsaWNrCiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY29udGV4dG1lbnUnLCBldmVudCA9PiBldmVudC5wcmV2ZW50RGVmYXVsdCgpKTsKICAgICAgICAKICAgICAgICAvLyBTRUNVUklUWTogRGlzYWJsZSBjb21tb24gY29weSBzaG9ydGN1dHMKICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgZnVuY3Rpb24oZSkgewogICAgICAgICAgICBpZiAoZS5jdHJsS2V5ICYmIChlLmtleSA9PT0gJ2MnIHx8IGUua2V5ID09PSAneCcgfHwgZS5rZXkgPT09ICd1JyB8fCBlLmtleSA9PT0gJ3MnKSkgewogICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgICAgCiAgICAgICAgLy8gQkFDSyBUTyBUT1AgQlVUVE9OCiAgICAgICAgY29uc3QgYmFja1RvVG9wQnV0dG9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhY2stdG8tdG9wJyk7CiAgICAgICAgCiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsICgpID0+IHsKICAgICAgICAgICAgaWYgKHdpbmRvdy5wYWdlWU9mZnNldCA+IDMwMCkgewogICAgICAgICAgICAgICAgYmFja1RvVG9wQnV0dG9uLmNsYXNzTGlzdC5hZGQoJ3Nob3cnKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGJhY2tUb1RvcEJ1dHRvbi5jbGFzc0xpc3QucmVtb3ZlKCdzaG93Jyk7CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgICAKICAgICAgICBiYWNrVG9Ub3BCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7CiAgICAgICAgICAgIHdpbmRvdy5zY3JvbGxUbyh7CiAgICAgICAgICAgICAgICB0b3A6IDAsCiAgICAgICAgICAgICAgICBiZWhhdmlvcjogJ3Ntb290aCcKICAgICAgICAgICAgfSk7CiAgICAgICAgfSk7CiAgICAgICAgCiAgICAgICAgLy8gQ09OVEFDVCBGT1JNIFNVQk1JU1NJT04KICAgICAgICBjb25zdCBjb250YWN0Rm9ybSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250YWN0Rm9ybScpOwogICAgICAgIGNvbnN0IHN1Ym1pdEJ0biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdWJtaXQtYnRuJyk7CiAgICAgICAgY29uc3QgZm9ybU1lc3NhZ2UgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZm9ybS1tZXNzYWdlJyk7CiAgICAgICAgCiAgICAgICAgY29udGFjdEZvcm0uYWRkRXZlbnRMaXN0ZW5lcignc3VibWl0JywgYXN5bmMgZnVuY3Rpb24oZSkgewogICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgICAgIAogICAgICAgICAgICAvLyBDaGVjayBob25leXBvdCAoaWYgZmlsbGVkLCBpdCdzIGEgYm90KQogICAgICAgICAgICBjb25zdCBob25leXBvdCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W25hbWU9IndlYnNpdGUiXScpLnZhbHVlOwogICAgICAgICAgICBpZiAoaG9uZXlwb3QpIHsKICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdCb3QgZGV0ZWN0ZWQnKTsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICAKICAgICAgICAgICAgLy8gRGlzYWJsZSBzdWJtaXQgYnV0dG9uCiAgICAgICAgICAgIHN1Ym1pdEJ0bi5kaXNhYmxlZCA9IHRydWU7CiAgICAgICAgICAgIHN1Ym1pdEJ0bi50ZXh0Q29udGVudCA9ICdTZW5kaW5nLi4uJzsKICAgICAgICAgICAgCiAgICAgICAgICAgIC8vIEdldCBmb3JtIGRhdGEKICAgICAgICAgICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoY29udGFjdEZvcm0pOwogICAgICAgICAgICAKICAgICAgICAgICAgLy8gVE9ETzogUmVwbGFjZSB0aGlzIHdpdGggeW91ciBhY3R1YWwgZm9ybSBzdWJtaXNzaW9uIGVuZHBvaW50CiAgICAgICAgICAgIC8vIFRoaXMgaXMgYSBwbGFjZWhvbGRlciAtIHlvdSdsbCBuZWVkIHRvIGNvbm5lY3QgdGhpcyB0byB5b3VyIGJhY2tlbmQKICAgICAgICAgICAgCiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAvLyBTaW11bGF0ZSBBUEkgY2FsbCAocmVwbGFjZSB3aXRoIHlvdXIgYWN0dWFsIGVuZHBvaW50KQogICAgICAgICAgICAgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIDE1MDApKTsKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgLy8gU1VDQ0VTUyAtIFNob3cgc3VjY2VzcyBtZXNzYWdlCiAgICAgICAgICAgICAgICBmb3JtTWVzc2FnZS5jbGFzc05hbWUgPSAnZm9ybS1tZXNzYWdlIHN1Y2Nlc3MnOwogICAgICAgICAgICAgICAgZm9ybU1lc3NhZ2UudGV4dENvbnRlbnQgPSAn4pyTIE1lc3NhZ2Ugc2VudCBzdWNjZXNzZnVsbHkhIFdlXCdsbCByZXNwb25kIHdpdGhpbiAyNC00OCBob3Vycy4nOwogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAvLyBSZXNldCBmb3JtCiAgICAgICAgICAgICAgICBjb250YWN0Rm9ybS5yZXNldCgpOwogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAvLyBSZS1lbmFibGUgYnV0dG9uCiAgICAgICAgICAgICAgICBzdWJtaXRCdG4uZGlzYWJsZWQgPSBmYWxzZTsKICAgICAgICAgICAgICAgIHN1Ym1pdEJ0bi50ZXh0Q29udGVudCA9ICdTZW5kIE1lc3NhZ2Ug4oaSJzsKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgLy8gSGlkZSBtZXNzYWdlIGFmdGVyIDUgc2Vjb25kcwogICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgZm9ybU1lc3NhZ2Uuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICAgICAgICAgICAgICAgIH0sIDUwMDApOwogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgICAgICAgICAgICAvLyBFUlJPUiAtIFNob3cgZXJyb3IgbWVzc2FnZQogICAgICAgICAgICAgICAgZm9ybU1lc3NhZ2UuY2xhc3NOYW1lID0gJ2Zvcm0tbWVzc2FnZSBlcnJvcic7CiAgICAgICAgICAgICAgICBmb3JtTWVzc2FnZS50ZXh0Q29udGVudCA9ICfinJcgU29tZXRoaW5nIHdlbnQgd3JvbmcuIFBsZWFzZSB0cnkgYWdhaW4gb3IgZW1haWwgdXMgZGlyZWN0bHkuJzsKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgLy8gUmUtZW5hYmxlIGJ1dHRvbgogICAgICAgICAgICAgICAgc3VibWl0QnRuLmRpc2FibGVkID0gZmFsc2U7CiAgICAgICAgICAgICAgICBzdWJtaXRCdG4udGV4dENvbnRlbnQgPSAnU2VuZCBNZXNzYWdlIOKGkic7CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgICAKICAgICAgICAvLyBTTU9PVEggU0NST0xMIEZPUiBBTEwgSU5URVJOQUwgTElOS1MKICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdhW2hyZWZePSIjIl0nKS5mb3JFYWNoKGFuY2hvciA9PiB7CiAgICAgICAgICAgIGFuY2hvci5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHRoaXMuZ2V0QXR0cmlidXRlKCdocmVmJykpOwogICAgICAgICAgICAgICAgaWYgKHRhcmdldCkgewogICAgICAgICAgICAgICAgICAgIHRhcmdldC5zY3JvbGxJbnRvVmlldyh7CiAgICAgICAgICAgICAgICAgICAgICAgIGJlaGF2aW9yOiAnc21vb3RoJwogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICB9KTsKICAgIDwvc2NyaXB0PgoKPC9ib2R5Pgo8L2h0bWw+","embed":""}
Let's Build Your Sovereign Empire
Whether you're ready for strategic guidance, exploring partnership opportunities, or have a media inquiry, we're here to connect. The architecture begins with a conversation.
Connect With Us
📧 General Inquiries
For general questions, webinar support, or partnership opportunities:
🎯 Strategic Briefing
Ready for 1:1 strategic guidance? Book your Sovereign Architects Strategic Briefing:
📰 Media & Press
Media inquiries, speaking engagements, and podcast interviews:
📍 Location
Serving diaspora entrepreneurs and African innovators globally from:
Kalamazoo, Michigan, USA
Operating across three continents