{"js":"PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCI+CiAgICA8bWV0YSBuYW1lPSJkZXNjcmlwdGlvbiIgY29udGVudD0iMjAyNiBTSEUgRS1Cb3NzIFNvbHV0aW9uaXN0IExvdHRlcnkgLSBXaW4gZXhjbHVzaXZlIGFjY2VzcyB0byB0cmFuc2Zvcm1hdGl2ZSBleHBlcmllbmNlcyI+CiAgICA8bWV0YSBuYW1lPSJyb2JvdHMiIGNvbnRlbnQ9Im5vaW5kZXgsIG5vZm9sbG93Ij4KICAgIDx0aXRsZT7wn46wIDIwMjYgU292ZXJlaWduIExvdHRlcnkgfCBTSEUgRS1CT1NTIFNPTFVUSU9OSVNU4oSiPC90aXRsZT4KICAgIAogICAgPGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tIj4KICAgIDxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbSIgY3Jvc3NvcmlnaW4+CiAgICA8bGluayBocmVmPSJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5PUNpbnplbDp3Z2h0QDQwMDs1MDA7NjAwOzcwMCZmYW1pbHk9Q29ybW9yYW50K0dhcmFtb25kOml0YWwsd2dodEAwLDQwMDswLDUwMDswLDYwMDsxLDQwMCZmYW1pbHk9TW9udHNlcnJhdDp3Z2h0QDMwMDs0MDA7NTAwOzYwMCZkaXNwbGF5PXN3YXAiIHJlbD0ic3R5bGVzaGVldCI+CiAgICAKICAgIDxzdHlsZT4KICAgICAgICA6cm9vdCB7CiAgICAgICAgICAgIC0tbWlkbmlnaHQ6ICMxYTBhMTQ7CiAgICAgICAgICAgIC0tZGVlcC1wbHVtOiAjMmQxMDI0OwogICAgICAgICAgICAtLXJpY2gtbWFnZW50YTogIzRhMTk0MjsKICAgICAgICAgICAgLS1mdWNoc2lhOiAjZDYzMzg0OwogICAgICAgICAgICAtLWhvdC1waW5rOiAjZmY2OWI0OwogICAgICAgICAgICAtLW1hZ2VudGE6ICNjNzE1ODU7CiAgICAgICAgICAgIC0tc292ZXJlaWduLWdvbGQ6ICNkNGEwM2M7CiAgICAgICAgICAgIC0tYnJpZ2h0LWdvbGQ6ICNmMWM0MGY7CiAgICAgICAgICAgIC0tcm9zZS1nb2xkOiAjZThiNGI4OwogICAgICAgICAgICAtLWJsdXNoLXBpbms6ICNmZmI2YzE7CiAgICAgICAgICAgIC0tbWF1dmU6ICNkZGEwZGQ7CiAgICAgICAgICAgIC0tb3JjaGlkOiAjZGE3MGQ2OwogICAgICAgICAgICAtLXNvZnQtaXZvcnk6ICNmZmY1Zjg7CiAgICAgICAgICAgIC0tY2hhbXBhZ25lOiAjZmZlNGVjOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAqIHsKICAgICAgICAgICAgbWFyZ2luOiAwOwogICAgICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIH0KICAgICAgICAKICAgICAgICBib2R5IHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdNb250c2VycmF0Jywgc2Fucy1zZXJpZjsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tbWlkbmlnaHQpIDAlLCB2YXIoLS1kZWVwLXBsdW0pIDUwJSwgdmFyKC0tcmljaC1tYWdlbnRhKSAxMDAlKTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXNvZnQtaXZvcnkpOwogICAgICAgICAgICBtaW4taGVpZ2h0OiAxMDB2aDsKICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiA9PT09PT09PT09PT09PT09PT09PSBFTkhBTkNFRCBTVEFSRklFTEQgPT09PT09PT09PT09PT09PT09PT0gKi8KICAgICAgICAuc3RhcmZpZWxkIHsKICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgICAgICB0b3A6IDA7CiAgICAgICAgICAgIGxlZnQ6IDA7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgICAgICB6LWluZGV4OiAwOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuc3RhciB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0taG90LXBpbmspOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgICAgIGFuaW1hdGlvbjogdHdpbmtsZSAzcyBlYXNlLWluLW91dCBpbmZpbml0ZTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnN0YXIuYmlnIHsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDEwcHggdmFyKC0tZnVjaHNpYSksIDAgMCAyMHB4IHZhcigtLWhvdC1waW5rKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQGtleWZyYW1lcyB0d2lua2xlIHsKICAgICAgICAgICAgMCUsIDEwMCUgeyBvcGFjaXR5OiAwLjM7IHRyYW5zZm9ybTogc2NhbGUoMSk7IH0KICAgICAgICAgICAgNTAlIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiBzY2FsZSgxLjMpOyB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qID09PT09PT09PT09PT09PT09PT09IEZMT0FUSU5HIEVMRU1FTlRTID09PT09PT09PT09PT09PT09PT09ICovCiAgICAgICAgLmZsb2F0aW5nLWVsZW1lbnRzIHsKICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgICAgICB0b3A6IDA7CiAgICAgICAgICAgIGxlZnQ6IDA7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgICAgICB6LWluZGV4OiAxOwogICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZmxvYXRpbmctY3Jvd24gewogICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMzBweDsKICAgICAgICAgICAgb3BhY2l0eTogMC4yOwogICAgICAgICAgICBhbmltYXRpb246IGZsb2F0LWRyaWZ0IDE1cyBlYXNlLWluLW91dCBpbmZpbml0ZTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmZsb2F0aW5nLXN0YXIgewogICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMjVweDsKICAgICAgICAgICAgb3BhY2l0eTogMC4yNTsKICAgICAgICAgICAgYW5pbWF0aW9uOiBmbG9hdC1zcGluIDIwcyBsaW5lYXIgaW5maW5pdGU7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5mbG9hdGluZy0yMDI2IHsKICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICBmb250LWZhbWlseTogJ0NpbnplbCcsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDYwcHg7CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1mdWNoc2lhKTsKICAgICAgICAgICAgb3BhY2l0eTogMC4xOwogICAgICAgICAgICBhbmltYXRpb246IGZsb2F0LXB1bHNlIDEwcyBlYXNlLWluLW91dCBpbmZpbml0ZTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmZsb2F0aW5nLXNwYXJrbGUgewogICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICAgIHdpZHRoOiA0cHg7CiAgICAgICAgICAgIGhlaWdodDogNHB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1ob3QtcGluayk7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICAgICAgYW5pbWF0aW9uOiBzcGFya2xlLWZsb2F0IDhzIGVhc2UtaW4tb3V0IGluZmluaXRlOwogICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMTBweCB2YXIoLS1mdWNoc2lhKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQGtleWZyYW1lcyBmbG9hdC1kcmlmdCB7CiAgICAgICAgICAgIDAlLCAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIHJvdGF0ZSgwZGVnKTsgfQogICAgICAgICAgICAyNSUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTMwcHgpIHJvdGF0ZSgxMGRlZyk7IH0KICAgICAgICAgICAgNTAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMHB4KSByb3RhdGUoLTVkZWcpOyB9CiAgICAgICAgICAgIDc1JSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNDBweCkgcm90YXRlKDVkZWcpOyB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIEBrZXlmcmFtZXMgZmxvYXQtc3BpbiB7CiAgICAgICAgICAgIDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIHJvdGF0ZSgwZGVnKTsgfQogICAgICAgICAgICAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yMHB4KSByb3RhdGUoMzYwZGVnKTsgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICBAa2V5ZnJhbWVzIGZsb2F0LXB1bHNlIHsKICAgICAgICAgICAgMCUsIDEwMCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEpIHRyYW5zbGF0ZVkoMCk7IG9wYWNpdHk6IDAuMDM7IH0KICAgICAgICAgICAgNTAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjEpIHRyYW5zbGF0ZVkoLTIwcHgpOyBvcGFjaXR5OiAwLjA4OyB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIEBrZXlmcmFtZXMgc3BhcmtsZS1mbG9hdCB7CiAgICAgICAgICAgIDAlLCAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIHNjYWxlKDEpOyBvcGFjaXR5OiAwLjM7IH0KICAgICAgICAgICAgNTAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MHB4KSBzY2FsZSgxLjUpOyBvcGFjaXR5OiAwLjg7IH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogR29sZGVuIFJpbmdzICovCiAgICAgICAgLmdvbGRlbi1yaW5nIHsKICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1mdWNoc2lhKTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgICAgICBvcGFjaXR5OiAwLjE1OwogICAgICAgICAgICBhbmltYXRpb246IGZsb2F0LXJvdGF0ZSAyMHMgbGluZWFyIGluZmluaXRlOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZ29sZGVuLXJpbmc6bnRoLWNoaWxkKDEpIHsKICAgICAgICAgICAgd2lkdGg6IDUwMHB4OwogICAgICAgICAgICBoZWlnaHQ6IDUwMHB4OwogICAgICAgICAgICB0b3A6IC0xNTBweDsKICAgICAgICAgICAgcmlnaHQ6IC0xNTBweDsKICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ob3QtcGluayk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5nb2xkZW4tcmluZzpudGgtY2hpbGQoMikgewogICAgICAgICAgICB3aWR0aDogNDAwcHg7CiAgICAgICAgICAgIGhlaWdodDogNDAwcHg7CiAgICAgICAgICAgIGJvdHRvbTogNSU7CiAgICAgICAgICAgIGxlZnQ6IC0xMjBweDsKICAgICAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiAtNXM7CiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZnVjaHNpYSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5nb2xkZW4tcmluZzpudGgtY2hpbGQoMykgewogICAgICAgICAgICB3aWR0aDogMzAwcHg7CiAgICAgICAgICAgIGhlaWdodDogMzAwcHg7CiAgICAgICAgICAgIHRvcDogMzAlOwogICAgICAgICAgICByaWdodDogNSU7CiAgICAgICAgICAgIGFuaW1hdGlvbi1kZWxheTogLTEwczsKICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1tYWdlbnRhKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmdvbGRlbi1yaW5nOm50aC1jaGlsZCg0KSB7CiAgICAgICAgICAgIHdpZHRoOiAyMDBweDsKICAgICAgICAgICAgaGVpZ2h0OiAyMDBweDsKICAgICAgICAgICAgdG9wOiA2MCU7CiAgICAgICAgICAgIGxlZnQ6IDEwJTsKICAgICAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiAtMTVzOwogICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLW9yY2hpZCk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIEBrZXlmcmFtZXMgZmxvYXQtcm90YXRlIHsKICAgICAgICAgICAgMCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKSB0cmFuc2xhdGVZKDApOyB9CiAgICAgICAgICAgIDUwJSB7IHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZykgdHJhbnNsYXRlWSgtMzBweCk7IH0KICAgICAgICAgICAgMTAwJSB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZykgdHJhbnNsYXRlWSgwKTsgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiA9PT09PT09PT09PT09PT09PT09PSBNQUlOIENPTlRBSU5FUiA9PT09PT09PT09PT09PT09PT09PSAqLwogICAgICAgIC5sb3R0ZXJ5LWNvbnRhaW5lciB7CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgICAgei1pbmRleDogMTA7CiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEwMHZoOwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBwYWRkaW5nOiA0MHB4IDIwcHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qIEhlYWRlciBTZWN0aW9uICovCiAgICAgICAgLmxvdHRlcnktaGVhZGVyIHsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA1MHB4OwogICAgICAgICAgICBhbmltYXRpb246IGZhZGVJbkRvd24gMXMgZWFzZS1vdXQ7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIEBrZXlmcmFtZXMgZmFkZUluRG93biB7CiAgICAgICAgICAgIGZyb20geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTMwcHgpOyB9CiAgICAgICAgICAgIHRvIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jcm93bi1pY29uIHsKICAgICAgICAgICAgZm9udC1zaXplOiA3MHB4OwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtZ2xvdyAycyBlYXNlLWluLW91dCBpbmZpbml0ZSwgY3Jvd24tZmxvYXQgM3MgZWFzZS1pbi1vdXQgaW5maW5pdGU7CiAgICAgICAgICAgIGZpbHRlcjogZHJvcC1zaGFkb3coMCAwIDMwcHggdmFyKC0tc292ZXJlaWduLWdvbGQpKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQGtleWZyYW1lcyBwdWxzZS1nbG93IHsKICAgICAgICAgICAgMCUsIDEwMCUgeyBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMCAyMHB4IHZhcigtLXNvdmVyZWlnbi1nb2xkKSk7IH0KICAgICAgICAgICAgNTAlIHsgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDAgNTBweCB2YXIoLS1icmlnaHQtZ29sZCkpOyB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIEBrZXlmcmFtZXMgY3Jvd24tZmxvYXQgewogICAgICAgICAgICAwJSwgMTAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfQogICAgICAgICAgICA1MCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwcHgpOyB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5sb3R0ZXJ5LXRpdGxlIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdDaW56ZWwnLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiBjbGFtcCgycmVtLCA1dncsIDMuNXJlbSk7CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWJyaWdodC1nb2xkKSwgdmFyKC0tc292ZXJlaWduLWdvbGQpLCB2YXIoLS1yb3NlLWdvbGQpLCB2YXIoLS1icmlnaHQtZ29sZCkpOwogICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDMwMCUgMzAwJTsKICAgICAgICAgICAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7CiAgICAgICAgICAgIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB0cmFuc3BhcmVudDsKICAgICAgICAgICAgYmFja2dyb3VuZC1jbGlwOiB0ZXh0OwogICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogM3B4OwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4OwogICAgICAgICAgICBhbmltYXRpb246IHNoaW1tZXIgM3MgZWFzZS1pbi1vdXQgaW5maW5pdGU7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIEBrZXlmcmFtZXMgc2hpbW1lciB7CiAgICAgICAgICAgIDAlLCAxMDAlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCUgNTAlOyB9CiAgICAgICAgICAgIDUwJSB7IGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgNTAlOyB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5sb3R0ZXJ5LXN1YnRpdGxlIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdDb3Jtb3JhbnQgR2FyYW1vbmQnLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiBjbGFtcCgxLjFyZW0sIDIuNXZ3LCAxLjRyZW0pOwogICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1yb3NlLWdvbGQpOwogICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMnB4OwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAubG90dGVyeS10YWdsaW5lIHsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjlyZW07CiAgICAgICAgICAgIGNvbG9yOiByZ2JhKDI1MCwgMjQ4LCAyNDUsIDAuNyk7CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qID09PT09PT09PT09PT09PT09PT09IENIT0lDRSBTRUNUSU9OID09PT09PT09PT09PT09PT09PT09ICovCiAgICAgICAgLmNob2ljZS1zZWN0aW9uIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgICAgZ2FwOiA0MHB4OwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA2MHB4OwogICAgICAgICAgICBhbmltYXRpb246IGZhZGVJblVwIDFzIGVhc2Utb3V0IDAuM3MgYm90aDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQGtleWZyYW1lcyBmYWRlSW5VcCB7CiAgICAgICAgICAgIGZyb20geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMzBweCk7IH0KICAgICAgICAgICAgdG8geyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNob2ljZS1jYXJkIHsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICB3aWR0aDogMzIwcHg7CiAgICAgICAgICAgIHBhZGRpbmc6IDQwcHggMzBweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE0NWRlZywgcmdiYSg3NCwgMjUsIDY2LCAwLjkpLCByZ2JhKDI2LCAxMCwgMjAsIDAuOTUpKTsKICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC40cyBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxLjI3NSk7CiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jaG9pY2UtY2FyZDo6YmVmb3JlIHsKICAgICAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgdG9wOiAwOwogICAgICAgICAgICBsZWZ0OiAwOwogICAgICAgICAgICByaWdodDogMDsKICAgICAgICAgICAgYm90dG9tOiAwOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAyMHB4OwogICAgICAgICAgICBwYWRkaW5nOiAycHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWZ1Y2hzaWEpLCB2YXIoLS1ob3QtcGluayksIHZhcigtLXNvdmVyZWlnbi1nb2xkKSk7CiAgICAgICAgICAgIC13ZWJraXQtbWFzazogbGluZWFyLWdyYWRpZW50KCNmZmYgMCAwKSBjb250ZW50LWJveCwgbGluZWFyLWdyYWRpZW50KCNmZmYgMCAwKTsKICAgICAgICAgICAgbWFzazogbGluZWFyLWdyYWRpZW50KCNmZmYgMCAwKSBjb250ZW50LWJveCwgbGluZWFyLWdyYWRpZW50KCNmZmYgMCAwKTsKICAgICAgICAgICAgLXdlYmtpdC1tYXNrLWNvbXBvc2l0ZTogeG9yOwogICAgICAgICAgICBtYXNrLWNvbXBvc2l0ZTogZXhjbHVkZTsKICAgICAgICAgICAgb3BhY2l0eTogMC42OwogICAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNob2ljZS1jYXJkOmhvdmVyOjpiZWZvcmUgewogICAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY2hvaWNlLWNhcmQ6aG92ZXIgewogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwcHgpIHNjYWxlKDEuMDIpOwogICAgICAgICAgICBib3gtc2hhZG93OiAwIDMwcHggNjBweCByZ2JhKDIxNCwgNTEsIDEzMiwgMC40KTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNob2ljZS1pY29uIHsKICAgICAgICAgICAgZm9udC1zaXplOiA3MHB4OwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNob2ljZS1jYXJkOmZpcnN0LWNoaWxkIC5jaG9pY2UtaWNvbiB7CiAgICAgICAgICAgIGFuaW1hdGlvbjogc3Bpbi1zbG93IDhzIGxpbmVhciBpbmZpbml0ZTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQGtleWZyYW1lcyBzcGluLXNsb3cgewogICAgICAgICAgICBmcm9tIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH0KICAgICAgICAgICAgdG8geyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jaG9pY2UtdGl0bGUgewogICAgICAgICAgICBmb250LWZhbWlseTogJ0NpbnplbCcsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDEuM3JlbTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWJyaWdodC1nb2xkKTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTVweDsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDFweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNob2ljZS1kZXNjcmlwdGlvbiB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnQ29ybW9yYW50IEdhcmFtb25kJywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtOwogICAgICAgICAgICBjb2xvcjogcmdiYSgyNTAsIDI0OCwgMjQ1LCAwLjgpOwogICAgICAgICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY2hvaWNlLWJhZGdlIHsKICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICB0b3A6IC0xMHB4OwogICAgICAgICAgICByaWdodDogMjBweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tZnVjaHNpYSksIHZhcigtLW1hZ2VudGEpKTsKICAgICAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICAgICAgICBwYWRkaW5nOiA4cHggMTVweDsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjBweDsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjdyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7CiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgICAgIGFuaW1hdGlvbjogYm91bmNlLWJhZGdlIDJzIGVhc2UtaW4tb3V0IGluZmluaXRlOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAa2V5ZnJhbWVzIGJvdW5jZS1iYWRnZSB7CiAgICAgICAgICAgIDAlLCAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9CiAgICAgICAgICAgIDUwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNXB4KTsgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiA9PT09PT09PT09PT09PT09PT09PSBXSEVFTCBTRUNUSU9OID09PT09PT09PT09PT09PT09PT09ICovCiAgICAgICAgLndoZWVsLXNlY3Rpb24gewogICAgICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBhbmltYXRpb246IGZhZGVJblNjYWxlIDAuNXMgZWFzZS1vdXQ7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC53aGVlbC1zZWN0aW9uLmFjdGl2ZSB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIEBrZXlmcmFtZXMgZmFkZUluU2NhbGUgewogICAgICAgICAgICBmcm9tIHsgb3BhY2l0eTogMDsgdHJhbnNmb3JtOiBzY2FsZSgwLjgpOyB9CiAgICAgICAgICAgIHRvIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAud2hlZWwtY29udGFpbmVyIHsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICB3aWR0aDogMzUwcHg7CiAgICAgICAgICAgIGhlaWdodDogMzUwcHg7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC53aGVlbCB7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gNXMgY3ViaWMtYmV6aWVyKDAuMTcsIDAuNjcsIDAuMTIsIDAuOTkpOwogICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxMnB4IHZhcigtLWZ1Y2hzaWEpLAogICAgICAgICAgICAgICAgICAgICAgICAwIDAgMCAxOHB4IHZhcigtLWRlZXAtcGx1bSksCiAgICAgICAgICAgICAgICAgICAgICAgIDAgMCAwIDI0cHggdmFyKC0taG90LXBpbmspLAogICAgICAgICAgICAgICAgICAgICAgICAwIDAgODBweCByZ2JhKDIxNCwgNTEsIDEzMiwgMC42KTsKICAgICAgICAgICAgYmFja2dyb3VuZDogY29uaWMtZ3JhZGllbnQoCiAgICAgICAgICAgICAgICB2YXIoLS1tYWdlbnRhKSAwZGVnIDkwZGVnLAogICAgICAgICAgICAgICAgdmFyKC0tc292ZXJlaWduLWdvbGQpIDkwZGVnIDE4MGRlZywKICAgICAgICAgICAgICAgIHZhcigtLWhvdC1waW5rKSAxODBkZWcgMjcwZGVnLAogICAgICAgICAgICAgICAgdmFyKC0tb3JjaGlkKSAyNzBkZWcgMzYwZGVnCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC53aGVlbC1sYWJlbCB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgZm9udC1zaXplOiA0NXB4OwogICAgICAgICAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMCAxMHB4IHJnYmEoMjU1LDI1NSwyNTUsMC41KSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC53aGVlbC1sYWJlbDpudGgtY2hpbGQoMSkgeyB0b3A6IDIyJTsgbGVmdDogMjIlOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsgfQogICAgICAgIC53aGVlbC1sYWJlbDpudGgtY2hpbGQoMikgeyB0b3A6IDIyJTsgcmlnaHQ6IDIyJTsgdHJhbnNmb3JtOiB0cmFuc2xhdGUoNTAlLCAtNTAlKTsgfQogICAgICAgIC53aGVlbC1sYWJlbDpudGgtY2hpbGQoMykgeyBib3R0b206IDIyJTsgcmlnaHQ6IDIyJTsgdHJhbnNmb3JtOiB0cmFuc2xhdGUoNTAlLCA1MCUpOyB9CiAgICAgICAgLndoZWVsLWxhYmVsOm50aC1jaGlsZCg0KSB7IGJvdHRvbTogMjIlOyBsZWZ0OiAyMiU7IHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIDUwJSk7IH0KICAgICAgICAKICAgICAgICAud2hlZWwtY2VudGVyIHsKICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICB0b3A6IDUwJTsKICAgICAgICAgICAgbGVmdDogNTAlOwogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsKICAgICAgICAgICAgd2lkdGg6IDkwcHg7CiAgICAgICAgICAgIGhlaWdodDogOTBweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tc292ZXJlaWduLWdvbGQpLCB2YXIoLS1yb3NlLWdvbGQpKTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgICAgZm9udC1zaXplOiAzNXB4OwogICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDQwcHggcmdiYSgyMTIsIDE2MCwgNjAsIDAuNik7CiAgICAgICAgICAgIHotaW5kZXg6IDEwOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAud2hlZWwtcG9pbnRlciB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgdG9wOiAtMjVweDsKICAgICAgICAgICAgbGVmdDogNTAlOwogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7CiAgICAgICAgICAgIHdpZHRoOiAwOwogICAgICAgICAgICBoZWlnaHQ6IDA7CiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAyNXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICAgICAgICBib3JkZXItcmlnaHQ6IDI1cHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgICAgICAgIGJvcmRlci10b3A6IDUwcHggc29saWQgdmFyKC0tc292ZXJlaWduLWdvbGQpOwogICAgICAgICAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgOHB4IDE1cHggcmdiYSgwLDAsMCwwLjYpKTsKICAgICAgICAgICAgei1pbmRleDogMjA7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5zcGluLWJ0biB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnQ2luemVsJywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtOwogICAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgICBwYWRkaW5nOiAyMHB4IDUwcHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLXNvdmVyZWlnbi1nb2xkKSwgdmFyKC0tcm9zZS1nb2xkKSk7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1taWRuaWdodCk7CiAgICAgICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTBweDsKICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMnB4OwogICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOwogICAgICAgICAgICBib3gtc2hhZG93OiAwIDEwcHggNDBweCByZ2JhKDIxMiwgMTYwLCA2MCwgMC41KTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnNwaW4tYnRuOmhvdmVyIHsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01cHgpOwogICAgICAgICAgICBib3gtc2hhZG93OiAwIDIwcHggNTBweCByZ2JhKDIxMiwgMTYwLCA2MCwgMC43KTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnNwaW4tYnRuOmRpc2FibGVkIHsKICAgICAgICAgICAgb3BhY2l0eTogMC42OwogICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgICAgICB0cmFuc2Zvcm06IG5vbmU7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qID09PT09PT09PT09PT09PT09PT09IEdBTExFUlkgU0VDVElPTiA9PT09PT09PT09PT09PT09PT09PSAqLwogICAgICAgIC5nYWxsZXJ5LXNlY3Rpb24gewogICAgICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgICAgIGFuaW1hdGlvbjogZmFkZUluU2NhbGUgMC41cyBlYXNlLW91dDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmdhbGxlcnktc2VjdGlvbi5hY3RpdmUgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZ2FsbGVyeS10aXRsZSB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnQ2luemVsJywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS44cmVtOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tYnJpZ2h0LWdvbGQpOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4OwogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5nYWxsZXJ5LXN1YnRpdGxlIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdDb3Jtb3JhbnQgR2FyYW1vbmQnLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07CiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgICAgICAgY29sb3I6IHJnYmEoMjUwLCAyNDgsIDI0NSwgMC42KTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNDBweDsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAubXlzdGVyeS1nYWxsZXJ5IHsKICAgICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgyNTBweCwgMWZyKSk7CiAgICAgICAgICAgIGdhcDogMzBweDsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgIHBhZGRpbmc6IDAgMjBweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLm15c3RlcnktZG9vciB7CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE0NWRlZywgcmdiYSg3NCwgMjUsIDY2LCAwLjk1KSwgcmdiYSgyNiwgMTAsIDIwLCAwLjk4KSk7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7CiAgICAgICAgICAgIHBhZGRpbmc6IDQwcHggMjVweDsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjRzIGVhc2U7CiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDI4MHB4OwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLm15c3RlcnktZG9vcjo6YmVmb3JlIHsKICAgICAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgdG9wOiAwOwogICAgICAgICAgICBsZWZ0OiAwOwogICAgICAgICAgICByaWdodDogMDsKICAgICAgICAgICAgYm90dG9tOiAwOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAyMHB4OwogICAgICAgICAgICBwYWRkaW5nOiAzcHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRvb3ItY29sb3IpOwogICAgICAgICAgICAtd2Via2l0LW1hc2s6IGxpbmVhci1ncmFkaWVudCgjZmZmIDAgMCkgY29udGVudC1ib3gsIGxpbmVhci1ncmFkaWVudCgjZmZmIDAgMCk7CiAgICAgICAgICAgIG1hc2s6IGxpbmVhci1ncmFkaWVudCgjZmZmIDAgMCkgY29udGVudC1ib3gsIGxpbmVhci1ncmFkaWVudCgjZmZmIDAgMCk7CiAgICAgICAgICAgIC13ZWJraXQtbWFzay1jb21wb3NpdGU6IHhvcjsKICAgICAgICAgICAgbWFzay1jb21wb3NpdGU6IGV4Y2x1ZGU7CiAgICAgICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2U7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5teXN0ZXJ5LWRvb3I6aG92ZXI6OmJlZm9yZSB7CiAgICAgICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5teXN0ZXJ5LWRvb3I6bnRoLWNoaWxkKDEpIHsgLS1kb29yLWNvbG9yOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1mdWNoc2lhKSwgdmFyKC0tbWFnZW50YSkpOyB9CiAgICAgICAgLm15c3RlcnktZG9vcjpudGgtY2hpbGQoMikgeyAtLWRvb3ItY29sb3I6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLXNvdmVyZWlnbi1nb2xkKSwgdmFyKC0tYnJpZ2h0LWdvbGQpKTsgfQogICAgICAgIC5teXN0ZXJ5LWRvb3I6bnRoLWNoaWxkKDMpIHsgLS1kb29yLWNvbG9yOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1ob3QtcGluayksIHZhcigtLWJsdXNoLXBpbmspKTsgfQogICAgICAgIC5teXN0ZXJ5LWRvb3I6bnRoLWNoaWxkKDQpIHsgLS1kb29yLWNvbG9yOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1vcmNoaWQpLCB2YXIoLS1tYXV2ZSkpOyB9CiAgICAgICAgCiAgICAgICAgLm15c3RlcnktZG9vcjpob3ZlciB7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTVweCkgc2NhbGUoMS4wMyk7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMzBweCA2MHB4IHJnYmEoMjE0LCA1MSwgMTMyLCAwLjQpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAubXlzdGVyeS1kb29yOmhvdmVyIC5kb29yLWljb24gewogICAgICAgICAgICBhbmltYXRpb246IGRvb3Itc2hha2UgMC41cyBlYXNlLWluLW91dDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQGtleWZyYW1lcyBkb29yLXNoYWtlIHsKICAgICAgICAgICAgMCUsIDEwMCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKSBzY2FsZSgxKTsgfQogICAgICAgICAgICAyNSUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgtMTVkZWcpIHNjYWxlKDEuMSk7IH0KICAgICAgICAgICAgNzUlIHsgdHJhbnNmb3JtOiByb3RhdGUoMTVkZWcpIHNjYWxlKDEuMSk7IH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmRvb3ItaWNvbiB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogNjBweDsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjVweDsKICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICAgIGZpbHRlcjogZHJvcC1zaGFkb3coMCAwIDIwcHggcmdiYSgyNTUsMjU1LDI1NSwwLjMpKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmRvb3ItbnVtYmVyIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdDaW56ZWwnLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1icmlnaHQtZ29sZCk7CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAzcHg7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5kb29yLW15c3RlcnkgewogICAgICAgICAgICBmb250LWZhbWlseTogJ0Nvcm1vcmFudCBHYXJhbW9uZCcsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDEuM3JlbTsKICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICAgICAgICBjb2xvcjogcmdiYSgyNTAsIDI0OCwgMjQ1LCAwLjgpOwogICAgICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZG9vci1oaW50IHsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjhyZW07CiAgICAgICAgICAgIGNvbG9yOiByZ2JhKDI1MCwgMjQ4LCAyNDUsIDAuNCk7CiAgICAgICAgICAgIG1hcmdpbi10b3A6IDE1cHg7CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qIEJhY2sgQnV0dG9uICovCiAgICAgICAgLmJhY2stYnRuIHsKICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGdhcDogMTBweDsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDsKICAgICAgICAgICAgcGFkZGluZzogMTBweCAyMHB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyMTQsIDUxLCAxMzIsIDAuNCk7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDMwcHg7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1ob3QtcGluayk7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC45cmVtOwogICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5iYWNrLWJ0bjpob3ZlciB7CiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZnVjaHNpYSk7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1mdWNoc2lhKTsKICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyMTQsIDUxLCAxMzIsIDAuMSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qID09PT09PT09PT09PT09PT09PT09IFJFU1VMVCBNT0RBTCA9PT09PT09PT09PT09PT09PT09PSAqLwogICAgICAgIC5yZXN1bHQtbW9kYWwgewogICAgICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgICAgIHRvcDogMDsKICAgICAgICAgICAgbGVmdDogMDsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNiwgMTAsIDIwLCAwLjk3KTsKICAgICAgICAgICAgei1pbmRleDogMTAwMDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICAgIGFuaW1hdGlvbjogZmFkZUluIDAuM3MgZWFzZTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnJlc3VsdC1tb2RhbC5hY3RpdmUgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAa2V5ZnJhbWVzIGZhZGVJbiB7CiAgICAgICAgICAgIGZyb20geyBvcGFjaXR5OiAwOyB9CiAgICAgICAgICAgIHRvIHsgb3BhY2l0eTogMTsgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAucmVzdWx0LWNvbnRlbnQgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTQ1ZGVnLCB2YXIoLS1kZWVwLXBsdW0pLCB2YXIoLS1taWRuaWdodCkpOwogICAgICAgICAgICBib3JkZXI6IDNweCBzb2xpZCB2YXIoLS1mdWNoc2lhKTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMzBweDsKICAgICAgICAgICAgcGFkZGluZzogNTBweDsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBtYXgtd2lkdGg6IDU1MHB4OwogICAgICAgICAgICBtYXJnaW46IDIwcHg7CiAgICAgICAgICAgIGFuaW1hdGlvbjogcG9wSW4gMC41cyBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxLjI3NSk7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAxMDBweCByZ2JhKDIxNCwgNTEsIDEzMiwgMC40KTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQGtleWZyYW1lcyBwb3BJbiB7CiAgICAgICAgICAgIGZyb20geyB0cmFuc2Zvcm06IHNjYWxlKDAuNSk7IG9wYWNpdHk6IDA7IH0KICAgICAgICAgICAgdG8geyB0cmFuc2Zvcm06IHNjYWxlKDEpOyBvcGFjaXR5OiAxOyB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5yZXN1bHQtaWNvbiB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogODBweDsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgICAgICAgYW5pbWF0aW9uOiBib3VuY2UgMXMgZWFzZSBpbmZpbml0ZTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQGtleWZyYW1lcyBib3VuY2UgewogICAgICAgICAgICAwJSwgMTAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfQogICAgICAgICAgICA1MCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTIwcHgpOyB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5yZXN1bHQtdGl0bGUgewogICAgICAgICAgICBmb250LWZhbWlseTogJ0NpbnplbCcsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDJyZW07CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWJyaWdodC1nb2xkKSwgdmFyKC0tcm9zZS1nb2xkKSk7CiAgICAgICAgICAgIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0OwogICAgICAgICAgICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICAgICAgICAgIGJhY2tncm91bmQtY2xpcDogdGV4dDsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTVweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnJlc3VsdC1yZXZlYWwgewogICAgICAgICAgICBmb250LWZhbWlseTogJ0Nvcm1vcmFudCBHYXJhbW9uZCcsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDFyZW07CiAgICAgICAgICAgIGNvbG9yOiByZ2JhKDI1MCwgMjQ4LCAyNDUsIDAuNik7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5yZXN1bHQtcHJpemUgewogICAgICAgICAgICBmb250LWZhbWlseTogJ0NpbnplbCcsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDEuM3JlbTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWJyaWdodC1nb2xkKTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsKICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnJlc3VsdC1kZXNjcmlwdGlvbiB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnQ29ybW9yYW50IEdhcmFtb25kJywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtOwogICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgICAgICAgIGNvbG9yOiByZ2JhKDI1MCwgMjQ4LCAyNDUsIDAuNyk7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5yZXN1bHQtYnRuIHsKICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgICAgICBwYWRkaW5nOiAxNXB4IDQwcHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLXNvdmVyZWlnbi1nb2xkKSwgdmFyKC0tcm9zZS1nb2xkKSk7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1taWRuaWdodCk7CiAgICAgICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMzBweDsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdDaW56ZWwnLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtOwogICAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMXB4OwogICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTsKICAgICAgICAgICAgbWFyZ2luOiAxMHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAucmVzdWx0LWJ0bjpob3ZlciB7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtM3B4KTsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCAxMHB4IDMwcHggcmdiYSgyMTIsIDE2MCwgNjAsIDAuNCk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5yZXN1bHQtYnRuLnNlY29uZGFyeSB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1ob3QtcGluayk7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1ob3QtcGluayk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5yZXN1bHQtYnRuLnNlY29uZGFyeTpob3ZlciB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjE0LCA1MSwgMTMyLCAwLjIpOwogICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWZ1Y2hzaWEpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiA9PT09PT09PT09PT09PT09PT09PSBMRUFEIENBUFRVUkUgTU9EQUwgPT09PT09PT09PT09PT09PT09PT0gKi8KICAgICAgICAuY2FwdHVyZS1tb2RhbCB7CiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICAgICAgdG9wOiAwOwogICAgICAgICAgICBsZWZ0OiAwOwogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI2LCAxMCwgMjAsIDAuOTgpOwogICAgICAgICAgICB6LWluZGV4OiAyMDAwOwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgICAgYW5pbWF0aW9uOiBmYWRlSW4gMC4zcyBlYXNlOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY2FwdHVyZS1tb2RhbC5hY3RpdmUgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY2FwdHVyZS1jb250ZW50IHsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE0NWRlZywgdmFyKC0tZGVlcC1wbHVtKSwgdmFyKC0tbWlkbmlnaHQpKTsKICAgICAgICAgICAgYm9yZGVyOiAzcHggc29saWQgdmFyKC0tZnVjaHNpYSk7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDMwcHg7CiAgICAgICAgICAgIHBhZGRpbmc6IDUwcHggNDBweDsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBtYXgtd2lkdGg6IDUwMHB4OwogICAgICAgICAgICB3aWR0aDogOTAlOwogICAgICAgICAgICBhbmltYXRpb246IHNsaWRlVXAgMC41cyBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxLjI3NSk7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAxMDBweCByZ2JhKDIxNCwgNTEsIDEzMiwgMC41KTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQGtleWZyYW1lcyBzbGlkZVVwIHsKICAgICAgICAgICAgZnJvbSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSg1MHB4KTsgb3BhY2l0eTogMDsgfQogICAgICAgICAgICB0byB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgb3BhY2l0eTogMTsgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY2FwdHVyZS1pY29uIHsKICAgICAgICAgICAgZm9udC1zaXplOiA2MHB4OwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWdsb3cgMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jYXB0dXJlLXRpdGxlIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdDaW56ZWwnLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjZyZW07CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1icmlnaHQtZ29sZCk7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jYXB0dXJlLXN1YnRpdGxlIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdDb3Jtb3JhbnQgR2FyYW1vbmQnLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07CiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgICAgICAgY29sb3I6IHJnYmEoMjUwLCAyNDgsIDI0NSwgMC43KTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNhcHR1cmUtZm9ybSB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICAgIGdhcDogMTVweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmZvcm0tZ3JvdXAgewogICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZm9ybS1ncm91cCBsYWJlbCB7CiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgICAgICBmb250LXNpemU6IDAuODVyZW07CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1yb3NlLWdvbGQpOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5mb3JtLWdyb3VwIGlucHV0IHsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgIHBhZGRpbmc6IDE1cHggMjBweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KTsKICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgcmdiYSgyMTQsIDUxLCAxMzIsIDAuMyk7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zb2Z0LWl2b3J5KTsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdNb250c2VycmF0Jywgc2Fucy1zZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtOwogICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZm9ybS1ncm91cCBpbnB1dDpmb2N1cyB7CiAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZnVjaHNpYSk7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAyMHB4IHJnYmEoMjE0LCA1MSwgMTMyLCAwLjMpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZm9ybS1ncm91cCBpbnB1dDo6cGxhY2Vob2xkZXIgewogICAgICAgICAgICBjb2xvcjogcmdiYSgyNTAsIDI0OCwgMjQ1LCAwLjQpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuc3VibWl0LWJ0biB7CiAgICAgICAgICAgIG1hcmdpbi10b3A6IDEwcHg7CiAgICAgICAgICAgIHBhZGRpbmc6IDE4cHggNDBweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tc292ZXJlaWduLWdvbGQpLCB2YXIoLS1yb3NlLWdvbGQpKTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLW1pZG5pZ2h0KTsKICAgICAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAzMHB4OwogICAgICAgICAgICBmb250LWZhbWlseTogJ0NpbnplbCcsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDJweDsKICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOwogICAgICAgICAgICBib3gtc2hhZG93OiAwIDEwcHggMzBweCByZ2JhKDIxMiwgMTYwLCA2MCwgMC40KTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnN1Ym1pdC1idG46aG92ZXIgewogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTNweCk7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMTVweCA0MHB4IHJnYmEoMjEyLCAxNjAsIDYwLCAwLjYpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZm9ybS1ub3RlIHsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjc1cmVtOwogICAgICAgICAgICBjb2xvcjogcmdiYSgyNTAsIDI0OCwgMjQ1LCAwLjQpOwogICAgICAgICAgICBtYXJnaW4tdG9wOiAxNXB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBQaG9uZSBJbnB1dCBHcm91cCAqLwogICAgICAgIC5waG9uZS1pbnB1dC1ncm91cCB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGdhcDogMTBweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNvdW50cnktc2VsZWN0IHsKICAgICAgICAgICAgd2lkdGg6IDExMHB4OwogICAgICAgICAgICBwYWRkaW5nOiAxNXB4IDEwcHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNSk7CiAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHJnYmEoMjE0LCA1MSwgMTMyLCAwLjMpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4OwogICAgICAgICAgICBjb2xvcjogdmFyKC0tc29mdC1pdm9yeSk7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnTW9udHNlcnJhdCcsIHNhbnMtc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC45cmVtOwogICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jb3VudHJ5LXNlbGVjdDpmb2N1cyB7CiAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZnVjaHNpYSk7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jb3VudHJ5LXNlbGVjdCBvcHRpb24gewogICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVwLXBsdW0pOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tc29mdC1pdm9yeSk7CiAgICAgICAgICAgIHBhZGRpbmc6IDEwcHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5waG9uZS1pbnB1dCB7CiAgICAgICAgICAgIGZsZXg6IDE7CiAgICAgICAgICAgIHBhZGRpbmc6IDE1cHggMjBweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KTsKICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgcmdiYSgyMTQsIDUxLCAxMzIsIDAuMyk7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zb2Z0LWl2b3J5KTsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdNb250c2VycmF0Jywgc2Fucy1zZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtOwogICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAucGhvbmUtaW5wdXQ6Zm9jdXMgewogICAgICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWZ1Y2hzaWEpOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpOwogICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMjBweCByZ2JhKDIxNCwgNTEsIDEzMiwgMC4zKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnBob25lLWlucHV0OjpwbGFjZWhvbGRlciB7CiAgICAgICAgICAgIGNvbG9yOiByZ2JhKDI1MCwgMjQ4LCAyNDUsIDAuNCk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qIExvYWRpbmcgT3ZlcmxheSAqLwogICAgICAgIC5sb2FkaW5nLW92ZXJsYXkgewogICAgICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgICAgIHRvcDogMDsKICAgICAgICAgICAgbGVmdDogMDsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNiwgMTAsIDIwLCAwLjk1KTsKICAgICAgICAgICAgei1pbmRleDogMzAwMDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5sb2FkaW5nLW92ZXJsYXkuYWN0aXZlIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmxvYWRpbmctY29udGVudCB7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmxvYWRpbmctc3Bpbm5lciB7CiAgICAgICAgICAgIHdpZHRoOiA2MHB4OwogICAgICAgICAgICBoZWlnaHQ6IDYwcHg7CiAgICAgICAgICAgIGJvcmRlcjogNHB4IHNvbGlkIHJnYmEoMjE0LCA1MSwgMTMyLCAwLjIpOwogICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1mdWNoc2lhKTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgICAgICBhbmltYXRpb246IHNwaW4gMXMgbGluZWFyIGluZmluaXRlOwogICAgICAgICAgICBtYXJnaW46IDAgYXV0byAyMHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAa2V5ZnJhbWVzIHNwaW4gewogICAgICAgICAgICB0byB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmxvYWRpbmctdGV4dCB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnQ29ybW9yYW50IEdhcmFtb25kJywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4zcmVtOwogICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1ob3QtcGluayk7CiAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UgMS41cyBlYXNlLWluLW91dCBpbmZpbml0ZTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQGtleWZyYW1lcyBwdWxzZSB7CiAgICAgICAgICAgIDAlLCAxMDAlIHsgb3BhY2l0eTogMC41OyB9CiAgICAgICAgICAgIDUwJSB7IG9wYWNpdHk6IDE7IH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnN1Ym1pdC1idG46ZGlzYWJsZWQgewogICAgICAgICAgICBvcGFjaXR5OiAwLjY7CiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgICAgIHRyYW5zZm9ybTogbm9uZTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogPT09PT09PT09PT09PT09PT09PT0gRk9PVEVSID09PT09PT09PT09PT09PT09PT09ICovCiAgICAgICAgLmxvdHRlcnktZm9vdGVyIHsKICAgICAgICAgICAgbWFyZ2luLXRvcDogYXV0bzsKICAgICAgICAgICAgcGFkZGluZy10b3A6IDYwcHg7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmZvb3Rlci1icmFuZCB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnQ2luemVsJywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC45cmVtOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tcm9zZS1nb2xkKTsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDJweDsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmZvb3Rlci10YWdsaW5lIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdDb3Jtb3JhbnQgR2FyYW1vbmQnLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICAgICAgICBmb250LXNpemU6IDAuODVyZW07CiAgICAgICAgICAgIGNvbG9yOiByZ2JhKDI1MCwgMjQ4LCAyNDUsIDAuNSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qID09PT09PT09PT09PT09PT09PT09IENPTkZFVFRJID09PT09PT09PT09PT09PT09PT09ICovCiAgICAgICAgLmNvbmZldHRpIHsKICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICAgICAgei1pbmRleDogMzAwMDsKICAgICAgICAgICAgYW5pbWF0aW9uOiBjb25mZXR0aS1mYWxsIDRzIGVhc2Utb3V0IGZvcndhcmRzOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAa2V5ZnJhbWVzIGNvbmZldHRpLWZhbGwgewogICAgICAgICAgICAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwdmgpIHJvdGF0ZSgwZGVnKTsgb3BhY2l0eTogMTsgfQogICAgICAgICAgICAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMHZoKSByb3RhdGUoMTA4MGRlZyk7IG9wYWNpdHk6IDA7IH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogPT09PT09PT09PT09PT09PT09PT0gUkVTUE9OU0lWRSA9PT09PT09PT09PT09PT09PT09PSAqLwogICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkgewogICAgICAgICAgICAuY2hvaWNlLXNlY3Rpb24gewogICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgIC5jaG9pY2UtY2FyZCB7CiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgICAgIG1heC13aWR0aDogMzUwcHg7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgIC53aGVlbC1jb250YWluZXIgewogICAgICAgICAgICAgICAgd2lkdGg6IDI4MHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAyODBweDsKICAgICAgICAgICAgfQogICAgICAgICAgICAKICAgICAgICAgICAgLm15c3RlcnktZ2FsbGVyeSB7CiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICAgICAgICAgIG1heC13aWR0aDogMzUwcHg7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgIC5yZXN1bHQtY29udGVudCwKICAgICAgICAgICAgLmNhcHR1cmUtY29udGVudCB7CiAgICAgICAgICAgICAgICBwYWRkaW5nOiAzMHB4IDI1cHg7CiAgICAgICAgICAgICAgICBtYXJnaW46IDE1cHg7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgIC5jYXB0dXJlLXRpdGxlIHsKICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS40cmVtOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgPC9zdHlsZT4KPC9oZWFkPgo8Ym9keT4KICAgIDwhLS0gU3RhcmZpZWxkIC0tPgogICAgPGRpdiBjbGFzcz0ic3RhcmZpZWxkIiBpZD0ic3RhcmZpZWxkIj48L2Rpdj4KICAgIAogICAgPCEtLSBGbG9hdGluZyBFbGVtZW50cyAtLT4KICAgIDxkaXYgY2xhc3M9ImZsb2F0aW5nLWVsZW1lbnRzIiBpZD0iZmxvYXRpbmdFbGVtZW50cyI+PC9kaXY+CiAgICAKICAgIDwhLS0gR29sZGVuIFJpbmdzIC0tPgogICAgPGRpdiBjbGFzcz0iZ29sZGVuLXJpbmciPjwvZGl2PgogICAgPGRpdiBjbGFzcz0iZ29sZGVuLXJpbmciPjwvZGl2PgogICAgPGRpdiBjbGFzcz0iZ29sZGVuLXJpbmciPjwvZGl2PgogICAgPGRpdiBjbGFzcz0iZ29sZGVuLXJpbmciPjwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJsb3R0ZXJ5LWNvbnRhaW5lciI+CiAgICAgICAgPCEtLSBIZWFkZXIgLS0+CiAgICAgICAgPGhlYWRlciBjbGFzcz0ibG90dGVyeS1oZWFkZXIiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iY3Jvd24taWNvbiI+8J+RkTwvc3Bhbj4KICAgICAgICAgICAgPGgxIGNsYXNzPSJsb3R0ZXJ5LXRpdGxlIj4yMDI2IFNPVkVSRUlHTiBMT1RURVJZPC9oMT4KICAgICAgICAgICAgPHAgY2xhc3M9ImxvdHRlcnktc3VidGl0bGUiPlNIRSBFLUJPU1MgU09MVVRJT05JU1TihKIgUHJlc2VudHM8L3A+CiAgICAgICAgICAgIDxwIGNsYXNzPSJsb3R0ZXJ5LXRhZ2xpbmUiPkZvdXIgbXlzdGVyaWVzIGF3YWl0IH4gRXZlcnkgZG9vciBsZWFkcyB0byB0cmFuc2Zvcm1hdGlvbjwvcD4KICAgICAgICA8L2hlYWRlcj4KICAgICAgICAKICAgICAgICA8IS0tIENob2ljZSBTZWN0aW9uIC0tPgogICAgICAgIDxzZWN0aW9uIGNsYXNzPSJjaG9pY2Utc2VjdGlvbiIgaWQ9ImNob2ljZVNlY3Rpb24iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjaG9pY2UtY2FyZCIgaWQ9ImNoYW5jZUNhcmQiIG9uY2xpY2s9InNlbGVjdFBhdGgoJ2NoYW5jZScpIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjaG9pY2UtYmFkZ2UiPvCflKUgRXhjaXRpbmc8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2hvaWNlLWljb24iPvCfjrA8L3NwYW4+CiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9ImNob2ljZS10aXRsZSI+VEFLRSBZT1VSIENIQU5DRVM8L2gyPgogICAgICAgICAgICAgICAgPHAgY2xhc3M9ImNob2ljZS1kZXNjcmlwdGlvbiI+U3VycmVuZGVyIHRvIGZhdGUuIFNwaW4gdGhlIFNvdmVyZWlnbiBXaGVlbCBhbmQgbGV0IHRoZSB1bml2ZXJzZSByZXZlYWwgd2hhdCB0cmFuc2Zvcm1hdGlvbiBhd2FpdHMgeW91LjwvcD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjaG9pY2UtY2FyZCIgaWQ9ImNoYXJnZUNhcmQiIG9uY2xpY2s9InNlbGVjdFBhdGgoJ2NoYXJnZScpIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjaG9pY2UtaWNvbiI+8J+RkTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxoMiBjbGFzcz0iY2hvaWNlLXRpdGxlIj5JJ00gSU4gQ0hBUkdFPC9oMj4KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJjaG9pY2UtZGVzY3JpcHRpb24iPlRydXN0IHlvdXIgaW50dWl0aW9uLiBDaG9vc2UgdGhlIG15c3RlcnkgZG9vciB0aGF0IGNhbGxzIHRvIHlvdXIgc292ZXJlaWduIHNwaXJpdCB+IGJ1dCBvbmx5IGRlc3Rpbnkga25vd3Mgd2hhdCBsaWVzIGJlaGluZC48L3A+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAKICAgICAgICA8IS0tIFdoZWVsIFNlY3Rpb24gLS0+CiAgICAgICAgPHNlY3Rpb24gY2xhc3M9IndoZWVsLXNlY3Rpb24iIGlkPSJ3aGVlbFNlY3Rpb24iPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJiYWNrLWJ0biIgb25jbGljaz0iZ29CYWNrKCkiPuKGkCBCYWNrIHRvIENob2ljZTwvYnV0dG9uPgogICAgICAgICAgICAKICAgICAgICAgICAgPGRpdiBjbGFzcz0id2hlZWwtY29udGFpbmVyIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IndoZWVsLXBvaW50ZXIiPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0id2hlZWwiIGlkPSJ3aGVlbCI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9IndoZWVsLWxhYmVsIj7wn5SuPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ3aGVlbC1sYWJlbCI+4pyoPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ3aGVlbC1sYWJlbCI+8J+Mnzwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0id2hlZWwtbGFiZWwiPvCfkqs8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IndoZWVsLWNlbnRlciI+PzwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgCiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InNwaW4tYnRuIiBpZD0ic3BpbkJ0biIgb25jbGljaz0ic3BpbldoZWVsKCkiPgogICAgICAgICAgICAgICAg8J+OsCBTUElOIEZPUiBZT1VSIERFU1RJTlkKICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgPC9zZWN0aW9uPgogICAgICAgIAogICAgICAgIDwhLS0gR2FsbGVyeSBTZWN0aW9uIC0gTXlzdGVyeSBEb29ycyAtLT4KICAgICAgICA8c2VjdGlvbiBjbGFzcz0iZ2FsbGVyeS1zZWN0aW9uIiBpZD0iZ2FsbGVyeVNlY3Rpb24iPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJiYWNrLWJ0biIgb25jbGljaz0iZ29CYWNrKCkiPuKGkCBCYWNrIHRvIENob2ljZTwvYnV0dG9uPgogICAgICAgICAgICAKICAgICAgICAgICAgPGgyIGNsYXNzPSJnYWxsZXJ5LXRpdGxlIj5DaG9vc2UgWW91ciBNeXN0ZXJ5IERvb3I8L2gyPgogICAgICAgICAgICA8cCBjbGFzcz0iZ2FsbGVyeS1zdWJ0aXRsZSI+RWFjaCBkb29yIGhvbGRzIGEgZGlmZmVyZW50IHBhdGggdG8gdHJhbnNmb3JtYXRpb24gfiB3aGljaCBjYWxscyB0byB5b3U/PC9wPgogICAgICAgICAgICAKICAgICAgICAgICAgPGRpdiBjbGFzcz0ibXlzdGVyeS1nYWxsZXJ5Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im15c3RlcnktZG9vciIgb25jbGljaz0ic2VsZWN0RG9vcigwKSI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRvb3ItaWNvbiI+8J+aqjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZG9vci1udW1iZXIiPkRPT1IgT05FPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJkb29yLW15c3RlcnkiPiJXaGVyZSBzZWVkcyBiZWNvbWUgZm9yZXN0cyI8L3A+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRvb3ItaGludCI+fiBncm93dGggYXdhaXRzIH48L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibXlzdGVyeS1kb29yIiBvbmNsaWNrPSJzZWxlY3REb29yKDEpIj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZG9vci1pY29uIj7wn5qqPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkb29yLW51bWJlciI+RE9PUiBUV088L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9ImRvb3ItbXlzdGVyeSI+IldoZXJlIGxpb25zIGZpbmQgdGhlaXIgcm9hciI8L3A+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRvb3ItaGludCI+fiBwb3dlciBhd2FpdHMgfjwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJteXN0ZXJ5LWRvb3IiIG9uY2xpY2s9InNlbGVjdERvb3IoMikiPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkb29yLWljb24iPvCfmqo8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRvb3ItbnVtYmVyIj5ET09SIFRIUkVFPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJkb29yLW15c3RlcnkiPiJXaGVyZSBlYWdsZXMgbGVhcm4gdG8gc29hciI8L3A+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRvb3ItaGludCI+fiBlbGV2YXRpb24gYXdhaXRzIH48L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibXlzdGVyeS1kb29yIiBvbmNsaWNrPSJzZWxlY3REb29yKDMpIj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZG9vci1pY29uIj7wn5qqPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkb29yLW51bWJlciI+RE9PUiBGT1VSPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJkb29yLW15c3RlcnkiPiJXaGVyZSB2b3lhZ2VzIGJlZ2luIjwvcD4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZG9vci1oaW50Ij5+IGRpc2NvdmVyeSBhd2FpdHMgfjwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgCiAgICAgICAgPCEtLSBGb290ZXIgLS0+CiAgICAgICAgPGZvb3RlciBjbGFzcz0ibG90dGVyeS1mb290ZXIiPgogICAgICAgICAgICA8cCBjbGFzcz0iZm9vdGVyLWJyYW5kIj5USEUgU0hFIEV+Qk9TUyBTT0xVVElPTklTVOKEoiB+IFNIRSBFVk9MVkVTPC9wPgogICAgICAgICAgICA8cCBjbGFzcz0iZm9vdGVyLXRhZ2xpbmUiPuKcqCAyMDI2IFNvdmVyZWlnbiBFZGl0aW9uIOKcqDwvcD4KICAgICAgICA8L2Zvb3Rlcj4KICAgIDwvZGl2PgogICAgCiAgICA8IS0tIFJlc3VsdCBNb2RhbCAtLT4KICAgIDxkaXYgY2xhc3M9InJlc3VsdC1tb2RhbCIgaWQ9InJlc3VsdE1vZGFsIj4KICAgICAgICA8ZGl2IGNsYXNzPSJyZXN1bHQtY29udGVudCI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJyZXN1bHQtaWNvbiIgaWQ9InJlc3VsdEljb24iPvCfjok8L3NwYW4+CiAgICAgICAgICAgIDxoMiBjbGFzcz0icmVzdWx0LXRpdGxlIiBpZD0icmVzdWx0VGl0bGUiPlRIRSBET09SIE9QRU5TITwvaDI+CiAgICAgICAgICAgIDxwIGNsYXNzPSJyZXN1bHQtcmV2ZWFsIj5Zb3VyIGRlc3RpbnkgaGFzIGJlZW4gcmV2ZWFsZWQuLi48L3A+CiAgICAgICAgICAgIDxwIGNsYXNzPSJyZXN1bHQtcHJpemUiIGlkPSJyZXN1bHRQcml6ZSI+UHJpemUgTmFtZTwvcD4KICAgICAgICAgICAgPHAgY2xhc3M9InJlc3VsdC1kZXNjcmlwdGlvbiIgaWQ9InJlc3VsdERlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjwvcD4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0icmVzdWx0LWJ0biIgaWQ9ImNsYWltQnRuIiBvbmNsaWNrPSJvcGVuQ2FwdHVyZUZvcm0oKSI+8J+RkSBDTEFJTSBZT1VSIFBSSVpFPC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InJlc3VsdC1idG4gc2Vjb25kYXJ5IiBvbmNsaWNrPSJjbG9zZVJlc3VsdE1vZGFsKCkiPlRSWSBBTk9USEVSIERPT1I8L2J1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgCiAgICA8IS0tIExlYWQgQ2FwdHVyZSBNb2RhbCAtLT4KICAgIDxkaXYgY2xhc3M9ImNhcHR1cmUtbW9kYWwiIGlkPSJjYXB0dXJlTW9kYWwiPgogICAgICAgIDxkaXYgY2xhc3M9ImNhcHR1cmUtY29udGVudCI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYXB0dXJlLWljb24iPvCfjoE8L3NwYW4+CiAgICAgICAgICAgIDxoMiBjbGFzcz0iY2FwdHVyZS10aXRsZSI+Q0xBSU0gWU9VUiBTT1ZFUkVJR04gUFJJWkU8L2gyPgogICAgICAgICAgICA8cCBjbGFzcz0iY2FwdHVyZS1zdWJ0aXRsZSI+RW50ZXIgeW91ciBkZXRhaWxzIHRvIHVubG9jayBpbnN0YW50IGFjY2VzcyB0byB5b3VyIHRyYW5zZm9ybWF0aW9uPC9wPgogICAgICAgICAgICAKICAgICAgICAgICAgPGZvcm0gY2xhc3M9ImNhcHR1cmUtZm9ybSIgaWQ9ImNhcHR1cmVGb3JtIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgICAgICAgICAgICAgICAgIDxsYWJlbD5GVUxMIE5BTUUgKjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJmdWxsTmFtZSIgcGxhY2Vob2xkZXI9IkVudGVyIHlvdXIgZnVsbCBuYW1lIiByZXF1aXJlZD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgICAgICAgICA8bGFiZWw+RU1BSUwgQUREUkVTUyAqPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iZW1haWwiIGlkPSJlbWFpbEFkZHJlc3MiIHBsYWNlaG9sZGVyPSJFbnRlciB5b3VyIGVtYWlsIGFkZHJlc3MiIHJlcXVpcmVkPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgICAgICAgICAgICAgICAgIDxsYWJlbD5QSE9ORSBOVU1CRVI8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBob25lLWlucHV0LWdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBpZD0iY291bnRyeUNvZGUiIGNsYXNzPSJjb3VudHJ5LXNlbGVjdCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIrMSI+8J+HuvCfh7ggKzE8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9Iis0NCI+8J+HrPCfh6cgKzQ0PC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIrMjU2IiBzZWxlY3RlZD7wn4e68J+HrCArMjU2PC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIrMjU0Ij7wn4ew8J+HqiArMjU0PC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIrMjU1Ij7wn4e58J+HvyArMjU1PC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIrMjUwIj7wn4e38J+HvCArMjUwPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIrMjQzIj7wn4eo8J+HqSArMjQzPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIrMjUxIj7wn4eq8J+HuSArMjUxPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIrMjM0Ij7wn4ez8J+HrCArMjM0PC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIrMjMzIj7wn4es8J+HrSArMjMzPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIrMjciPvCfh7/wn4emICsyNzwvb3B0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iKzkxIj7wn4eu8J+HsyArOTE8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9Iis5NzEiPvCfh6bwn4eqICs5NzE8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9Iis2MSI+8J+HpvCfh7ogKzYxPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIrNDkiPvCfh6nwn4eqICs0OTwvb3B0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iKzMzIj7wn4er8J+HtyArMzM8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IiszOSI+8J+HrvCfh7kgKzM5PC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIrODYiPvCfh6jwn4ezICs4Njwvb3B0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iKzgxIj7wn4ev8J+HtSArODE8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9Iis1NSI+8J+Hp/Cfh7cgKzU1PC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIrNTIiPvCfh7Lwn4e9ICs1Mjwvb3B0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD4KICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRlbCIgaWQ9InBob25lTnVtYmVyIiBwbGFjZWhvbGRlcj0iUGhvbmUgbnVtYmVyIChvcHRpb25hbCkiIGNsYXNzPSJwaG9uZS1pbnB1dCI+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJzdWJtaXQiIGNsYXNzPSJzdWJtaXQtYnRuIiBpZD0ic3VibWl0QnRuIj7wn5qAIFVOTE9DSyBNWSBQUklaRTwvYnV0dG9uPgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICA8cCBjbGFzcz0iZm9ybS1ub3RlIj7wn5SSIFlvdXIgaW5mb3JtYXRpb24gaXMgc2VjdXJlIGFuZCB3aWxsIG5ldmVyIGJlIHNoYXJlZC4gQnkgc3VibWl0dGluZywgeW91IGFncmVlIHRvIHJlY2VpdmUgdXBkYXRlcyBmcm9tIFNIRSBFLUJvc3MgU29sdXRpb25pc3QuPC9wPgogICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIAogICAgPCEtLSBMb2FkaW5nIE92ZXJsYXkgLS0+CiAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLW92ZXJsYXkiIGlkPSJsb2FkaW5nT3ZlcmxheSI+CiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1jb250ZW50Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1zcGlubmVyIj48L2Rpdj4KICAgICAgICAgICAgPHAgY2xhc3M9ImxvYWRpbmctdGV4dCI+VW5sb2NraW5nIHlvdXIgcHJpemUuLi48L3A+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIAogICAgPHNjcmlwdD4KICAgICAgICAvLyBNeXN0ZXJ5IFByaXplcyAtIDQgT1BUSU9OUwogICAgICAgIGNvbnN0IHByaXplcyA9IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgbmFtZTogIlNPVyBTRUVEUyBGT1IgU1VDQ0VTUyIsCiAgICAgICAgICAgICAgICBpY29uOiAi8J+MsSIsCiAgICAgICAgICAgICAgICB1cmw6ICJodHRwczovL3NoZWVib3Nzc29sdXRpb25pc3QuY29tL3Nvdy1zZWVkcy1mb3Itc3VjY2VzcyIsCiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogIkEgdHJhbnNmb3JtYXRpdmUgd2ViaW5hciBzZXJpZXMgb24gTUlTU0lPTiwgTUlORFNFVCwgTU9USVZBVElPTiwgTU9NRU5UVU0gJiBNSUxFU1RPTkVTLiIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgbmFtZTogIlNJTUJBIE1FVEhPRDogUGVyc29uYWwgQnJhbmQgTWFzdGVyeSIsCiAgICAgICAgICAgICAgICBpY29uOiAi8J+mgSIsCiAgICAgICAgICAgICAgICB1cmw6ICJodHRwczovL2R5bmFtaWNwYXJhZGlnbXNhY2FkZW15LmNvbS9zaW1iYS1tZXRob2QtcmVwbGF5IiwKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAiRGlzY292ZXIgdGhlIHBvd2VyIG9mIHlvdXIgcGVyc29uYWwgYnJhbmQgYXZhdGFyIGFuZCB1bmxlYXNoIHlvdXIgYXV0aGVudGljIHByZXNlbmNlLiIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgbmFtZTogIkNFTyBBSSBGTElHSFQgREVDSyIsCiAgICAgICAgICAgICAgICBpY29uOiAi4pyI77iPIiwKICAgICAgICAgICAgICAgIHVybDogImh0dHBzOi8vZHluYW1pY3BhcmFkaWdtc2FjYWRlbXkuY29tL25hdmlnYXRpbmctbWFya2V0aW5nLXR1cmJ1bGVuY2UiLAogICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICJOYXZpZ2F0ZSAyMXN0IENlbnR1cnkgTWFya2V0aW5nIHdpdGggQUkgYXMgeW91ciBjby1waWxvdCB0byBuZXcgaGVpZ2h0cy4iCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIG5hbWU6ICJPTkxJTkUgVkVOVFVSRVMgRS1DT1VSU0UiLAogICAgICAgICAgICAgICAgaWNvbjogIvCfmoAiLAogICAgICAgICAgICAgICAgdXJsOiAiaHR0cHM6Ly9lYWNhZGVteS5tZW50b3JzaGlwc3VjY2Vzcy5jb20vY291cnNlcy9zdXJ2ZXktb25saW5lLXZlbnR1cmVzIiwKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAiQSBGUkVFIGUtbGVhcm5pbmcgam91cm5leSB0byBldmFsdWF0ZSBhbmQgZW1iYXJrIG9uIHlvdXIgb25saW5lIGVhcm5pbmcgdm95YWdlLiIKICAgICAgICAgICAgfQogICAgICAgIF07CiAgICAgICAgCiAgICAgICAgbGV0IGN1cnJlbnRQcml6ZSA9IG51bGw7CiAgICAgICAgCiAgICAgICAgLy8gPT09PT09PT09PT09PT09PT09PT0gQ1JFQVRFIFNUQVJGSUVMRCA9PT09PT09PT09PT09PT09PT09PQogICAgICAgIGZ1bmN0aW9uIGNyZWF0ZVN0YXJmaWVsZCgpIHsKICAgICAgICAgICAgY29uc3Qgc3RhcmZpZWxkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N0YXJmaWVsZCcpOwogICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDE1MDsgaSsrKSB7CiAgICAgICAgICAgICAgICBjb25zdCBzdGFyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgICAgICAgICBzdGFyLmNsYXNzTmFtZSA9ICdzdGFyJyArIChNYXRoLnJhbmRvbSgpID4gMC45ID8gJyBiaWcnIDogJycpOwogICAgICAgICAgICAgICAgc3Rhci5zdHlsZS5sZWZ0ID0gTWF0aC5yYW5kb20oKSAqIDEwMCArICclJzsKICAgICAgICAgICAgICAgIHN0YXIuc3R5bGUudG9wID0gTWF0aC5yYW5kb20oKSAqIDEwMCArICclJzsKICAgICAgICAgICAgICAgIHN0YXIuc3R5bGUud2lkdGggPSBNYXRoLnJhbmRvbSgpICogNCArIDEgKyAncHgnOwogICAgICAgICAgICAgICAgc3Rhci5zdHlsZS5oZWlnaHQgPSBzdGFyLnN0eWxlLndpZHRoOwogICAgICAgICAgICAgICAgc3Rhci5zdHlsZS5hbmltYXRpb25EZWxheSA9IE1hdGgucmFuZG9tKCkgKiAzICsgJ3MnOwogICAgICAgICAgICAgICAgc3Rhci5zdHlsZS5hbmltYXRpb25EdXJhdGlvbiA9IChNYXRoLnJhbmRvbSgpICogMiArIDIpICsgJ3MnOwogICAgICAgICAgICAgICAgc3RhcmZpZWxkLmFwcGVuZENoaWxkKHN0YXIpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8vID09PT09PT09PT09PT09PT09PT09IENSRUFURSBGTE9BVElORyBFTEVNRU5UUyA9PT09PT09PT09PT09PT09PT09PQogICAgICAgIGZ1bmN0aW9uIGNyZWF0ZUZsb2F0aW5nRWxlbWVudHMoKSB7CiAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmbG9hdGluZ0VsZW1lbnRzJyk7CiAgICAgICAgICAgIAogICAgICAgICAgICAvLyBGbG9hdGluZyBDcm93bnMKICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCA4OyBpKyspIHsKICAgICAgICAgICAgICAgIGNvbnN0IGNyb3duID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgICAgICAgICBjcm93bi5jbGFzc05hbWUgPSAnZmxvYXRpbmctY3Jvd24nOwogICAgICAgICAgICAgICAgY3Jvd24udGV4dENvbnRlbnQgPSAn8J+RkSc7CiAgICAgICAgICAgICAgICBjcm93bi5zdHlsZS5sZWZ0ID0gTWF0aC5yYW5kb20oKSAqIDEwMCArICclJzsKICAgICAgICAgICAgICAgIGNyb3duLnN0eWxlLnRvcCA9IE1hdGgucmFuZG9tKCkgKiAxMDAgKyAnJSc7CiAgICAgICAgICAgICAgICBjcm93bi5zdHlsZS5hbmltYXRpb25EZWxheSA9IE1hdGgucmFuZG9tKCkgKiAxMCArICdzJzsKICAgICAgICAgICAgICAgIGNyb3duLnN0eWxlLmFuaW1hdGlvbkR1cmF0aW9uID0gKE1hdGgucmFuZG9tKCkgKiAxMCArIDE1KSArICdzJzsKICAgICAgICAgICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChjcm93bik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgIC8vIEZsb2F0aW5nIFN0YXJzIC0gbm93IHdpdGggaGVhcnRzIGFuZCBmbG93ZXJzCiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMTU7IGkrKykgewogICAgICAgICAgICAgICAgY29uc3Qgc3RhciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgICAgICAgICAgc3Rhci5jbGFzc05hbWUgPSAnZmxvYXRpbmctc3Rhcic7CiAgICAgICAgICAgICAgICBzdGFyLnRleHRDb250ZW50ID0gWyfirZAnLCAn4pyoJywgJ/CfjJ8nLCAn8J+SqycsICfwn5KWJywgJ/CfjLgnLCAn4py/JywgJ/CfkpUnXVtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiA4KV07CiAgICAgICAgICAgICAgICBzdGFyLnN0eWxlLmxlZnQgPSBNYXRoLnJhbmRvbSgpICogMTAwICsgJyUnOwogICAgICAgICAgICAgICAgc3Rhci5zdHlsZS50b3AgPSBNYXRoLnJhbmRvbSgpICogMTAwICsgJyUnOwogICAgICAgICAgICAgICAgc3Rhci5zdHlsZS5hbmltYXRpb25EZWxheSA9IE1hdGgucmFuZG9tKCkgKiAxNSArICdzJzsKICAgICAgICAgICAgICAgIHN0YXIuc3R5bGUuYW5pbWF0aW9uRHVyYXRpb24gPSAoTWF0aC5yYW5kb20oKSAqIDE1ICsgMjApICsgJ3MnOwogICAgICAgICAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKHN0YXIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIAogICAgICAgICAgICAvLyBGbG9hdGluZyAyMDI2CiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgNDsgaSsrKSB7CiAgICAgICAgICAgICAgICBjb25zdCB5ZWFyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgICAgICAgICB5ZWFyLmNsYXNzTmFtZSA9ICdmbG9hdGluZy0yMDI2JzsKICAgICAgICAgICAgICAgIHllYXIudGV4dENvbnRlbnQgPSAnMjAyNic7CiAgICAgICAgICAgICAgICB5ZWFyLnN0eWxlLmxlZnQgPSAoaSAqIDI1ICsgTWF0aC5yYW5kb20oKSAqIDIwKSArICclJzsKICAgICAgICAgICAgICAgIHllYXIuc3R5bGUudG9wID0gKE1hdGgucmFuZG9tKCkgKiA4MCArIDEwKSArICclJzsKICAgICAgICAgICAgICAgIHllYXIuc3R5bGUuYW5pbWF0aW9uRGVsYXkgPSBNYXRoLnJhbmRvbSgpICogNSArICdzJzsKICAgICAgICAgICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZCh5ZWFyKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAKICAgICAgICAgICAgLy8gRmxvYXRpbmcgU3BhcmtsZXMgLSBNT1JFIQogICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDM1OyBpKyspIHsKICAgICAgICAgICAgICAgIGNvbnN0IHNwYXJrbGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICAgICAgICAgIHNwYXJrbGUuY2xhc3NOYW1lID0gJ2Zsb2F0aW5nLXNwYXJrbGUnOwogICAgICAgICAgICAgICAgc3BhcmtsZS5zdHlsZS5sZWZ0ID0gTWF0aC5yYW5kb20oKSAqIDEwMCArICclJzsKICAgICAgICAgICAgICAgIHNwYXJrbGUuc3R5bGUudG9wID0gTWF0aC5yYW5kb20oKSAqIDEwMCArICclJzsKICAgICAgICAgICAgICAgIHNwYXJrbGUuc3R5bGUuYW5pbWF0aW9uRGVsYXkgPSBNYXRoLnJhbmRvbSgpICogOCArICdzJzsKICAgICAgICAgICAgICAgIHNwYXJrbGUuc3R5bGUuYW5pbWF0aW9uRHVyYXRpb24gPSAoTWF0aC5yYW5kb20oKSAqIDUgKyA1KSArICdzJzsKICAgICAgICAgICAgICAgIHNwYXJrbGUuc3R5bGUuYmFja2dyb3VuZCA9IFsnI2Q2MzM4NCcsICcjZmY2OWI0JywgJyNkYTcwZDYnLCAnI2RkYTBkZCcsICcjZjFjNDBmJ11bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogNSldOwogICAgICAgICAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKHNwYXJrbGUpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8vID09PT09PT09PT09PT09PT09PT09IFBBVEggU0VMRUNUSU9OID09PT09PT09PT09PT09PT09PT09CiAgICAgICAgZnVuY3Rpb24gc2VsZWN0UGF0aChwYXRoKSB7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjaG9pY2VTZWN0aW9uJykuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICAgICAgICAgICAgCiAgICAgICAgICAgIGlmIChwYXRoID09PSAnY2hhbmNlJykgewogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3doZWVsU2VjdGlvbicpLmNsYXNzTGlzdC5hZGQoJ2FjdGl2ZScpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2dhbGxlcnlTZWN0aW9uJykuY2xhc3NMaXN0LmFkZCgnYWN0aXZlJyk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLy8gR28gQmFjawogICAgICAgIGZ1bmN0aW9uIGdvQmFjaygpIHsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3doZWVsU2VjdGlvbicpLmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZScpOwogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZ2FsbGVyeVNlY3Rpb24nKS5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKTsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Nob2ljZVNlY3Rpb24nKS5zdHlsZS5kaXNwbGF5ID0gJ2ZsZXgnOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvLyA9PT09PT09PT09PT09PT09PT09PSBTUElOIFdIRUVMID09PT09PT09PT09PT09PT09PT09CiAgICAgICAgbGV0IGlzU3Bpbm5pbmcgPSBmYWxzZTsKICAgICAgICAKICAgICAgICBmdW5jdGlvbiBzcGluV2hlZWwoKSB7CiAgICAgICAgICAgIGlmIChpc1NwaW5uaW5nKSByZXR1cm47CiAgICAgICAgICAgIGlzU3Bpbm5pbmcgPSB0cnVlOwogICAgICAgICAgICAKICAgICAgICAgICAgY29uc3Qgd2hlZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnd2hlZWwnKTsKICAgICAgICAgICAgY29uc3Qgc3BpbkJ0biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzcGluQnRuJyk7CiAgICAgICAgICAgIAogICAgICAgICAgICBzcGluQnRuLmRpc2FibGVkID0gdHJ1ZTsKICAgICAgICAgICAgc3BpbkJ0bi50ZXh0Q29udGVudCA9ICfinKggREVTVElOWSBERUNJRElORy4uLic7CiAgICAgICAgICAgIAogICAgICAgICAgICAvLyBSYW5kb20gcmVzdWx0ICgwLCAxLCAyLCBvciAzKQogICAgICAgICAgICBjb25zdCByZXN1bHQgPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiA0KTsKICAgICAgICAgICAgCiAgICAgICAgICAgIC8vIENhbGN1bGF0ZSByb3RhdGlvbgogICAgICAgICAgICBjb25zdCBiYXNlUm90YXRpb24gPSAyNTIwOyAvLyA3IGZ1bGwgc3BpbnMKICAgICAgICAgICAgY29uc3Qgc2VnbWVudEFuZ2xlID0gOTA7CiAgICAgICAgICAgIGNvbnN0IHJlc3VsdEFuZ2xlID0gcmVzdWx0ICogc2VnbWVudEFuZ2xlICsgc2VnbWVudEFuZ2xlIC8gMjsKICAgICAgICAgICAgY29uc3QgdG90YWxSb3RhdGlvbiA9IGJhc2VSb3RhdGlvbiArICgzNjAgLSByZXN1bHRBbmdsZSk7CiAgICAgICAgICAgIAogICAgICAgICAgICB3aGVlbC5zdHlsZS50cmFuc2Zvcm0gPSBgcm90YXRlKCR7dG90YWxSb3RhdGlvbn1kZWcpYDsKICAgICAgICAgICAgCiAgICAgICAgICAgIC8vIFNob3cgcmVzdWx0IGFmdGVyIHNwaW4KICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7CiAgICAgICAgICAgICAgICBzaG93UmVzdWx0KHJlc3VsdCwgZmFsc2UpOwogICAgICAgICAgICAgICAgaXNTcGlubmluZyA9IGZhbHNlOwogICAgICAgICAgICAgICAgc3BpbkJ0bi5kaXNhYmxlZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgc3BpbkJ0bi50ZXh0Q29udGVudCA9ICfwn46wIFNQSU4gRk9SIFlPVVIgREVTVElOWSc7CiAgICAgICAgICAgIH0sIDU1MDApOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvLyA9PT09PT09PT09PT09PT09PT09PSBTRUxFQ1QgRE9PUiA9PT09PT09PT09PT09PT09PT09PQogICAgICAgIGZ1bmN0aW9uIHNlbGVjdERvb3IoaW5kZXgpIHsKICAgICAgICAgICAgc2hvd1Jlc3VsdChpbmRleCwgdHJ1ZSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8vID09PT09PT09PT09PT09PT09PT09IFNIT1cgUkVTVUxUID09PT09PT09PT09PT09PT09PT09CiAgICAgICAgZnVuY3Rpb24gc2hvd1Jlc3VsdChpbmRleCwgZnJvbURvb3IgPSBmYWxzZSkgewogICAgICAgICAgICBjdXJyZW50UHJpemUgPSBwcml6ZXNbaW5kZXhdOwogICAgICAgICAgICAKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdEljb24nKS50ZXh0Q29udGVudCA9IGN1cnJlbnRQcml6ZS5pY29uOwogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0VGl0bGUnKS50ZXh0Q29udGVudCA9IGZyb21Eb29yID8gJ1RIRSBET09SIE9QRU5TIScgOiAnREVTVElOWSBSRVZFQUxFRCEnOwogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0UHJpemUnKS50ZXh0Q29udGVudCA9IGN1cnJlbnRQcml6ZS5uYW1lOwogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0RGVzY3JpcHRpb24nKS50ZXh0Q29udGVudCA9IGN1cnJlbnRQcml6ZS5kZXNjcmlwdGlvbjsKICAgICAgICAgICAgCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHRNb2RhbCcpLmNsYXNzTGlzdC5hZGQoJ2FjdGl2ZScpOwogICAgICAgICAgICAKICAgICAgICAgICAgLy8gQ29uZmV0dGkhCiAgICAgICAgICAgIGNyZWF0ZUNvbmZldHRpKCk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8vID09PT09PT09PT09PT09PT09PT09IE9QRU4gQ0FQVFVSRSBGT1JNID09PT09PT09PT09PT09PT09PT09CiAgICAgICAgZnVuY3Rpb24gb3BlbkNhcHR1cmVGb3JtKCkgewogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0TW9kYWwnKS5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKTsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NhcHR1cmVNb2RhbCcpLmNsYXNzTGlzdC5hZGQoJ2FjdGl2ZScpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvLyA9PT09PT09PT09PT09PT09PT09PSBGT1JNIFNVQk1JU1NJT04gPT09PT09PT09PT09PT09PT09PT0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2FwdHVyZUZvcm0nKS5hZGRFdmVudExpc3RlbmVyKCdzdWJtaXQnLCBhc3luYyBmdW5jdGlvbihlKSB7CiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIGNvbnN0IHN1Ym1pdEJ0biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdWJtaXRCdG4nKTsKICAgICAgICAgICAgY29uc3QgZnVsbE5hbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZnVsbE5hbWUnKS52YWx1ZS50cmltKCk7CiAgICAgICAgICAgIGNvbnN0IGVtYWlsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VtYWlsQWRkcmVzcycpLnZhbHVlLnRyaW0oKTsKICAgICAgICAgICAgY29uc3QgY291bnRyeUNvZGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY291bnRyeUNvZGUnKS52YWx1ZTsKICAgICAgICAgICAgY29uc3QgcGhvbmVOdW1iZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGhvbmVOdW1iZXInKS52YWx1ZS50cmltKCk7CiAgICAgICAgICAgIAogICAgICAgICAgICAvLyBWYWxpZGF0aW9uCiAgICAgICAgICAgIGlmICghZnVsbE5hbWUgfHwgIWVtYWlsKSB7CiAgICAgICAgICAgICAgICBhbGVydCgnUGxlYXNlIGZpbGwgaW4geW91ciBuYW1lIGFuZCBlbWFpbCBhZGRyZXNzLicpOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIAogICAgICAgICAgICAvLyBGb3JtYXQgcGhvbmUgbnVtYmVyCiAgICAgICAgICAgIGNvbnN0IGZ1bGxQaG9uZSA9IHBob25lTnVtYmVyID8gYCR7Y291bnRyeUNvZGV9ICR7cGhvbmVOdW1iZXJ9YCA6ICdOb3QgcHJvdmlkZWQnOwogICAgICAgICAgICAKICAgICAgICAgICAgLy8gRGlzYWJsZSBidXR0b24gYW5kIHNob3cgbG9hZGluZwogICAgICAgICAgICBzdWJtaXRCdG4uZGlzYWJsZWQgPSB0cnVlOwogICAgICAgICAgICBzdWJtaXRCdG4udGV4dENvbnRlbnQgPSAn4pyoIFByb2Nlc3NpbmcuLi4nOwogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbG9hZGluZ092ZXJsYXknKS5jbGFzc0xpc3QuYWRkKCdhY3RpdmUnKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIC8vIFByZXBhcmUgZm9ybSBkYXRhIGZvciBGb3JtU3VibWl0CiAgICAgICAgICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7CiAgICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZCgnRnVsbF9OYW1lJywgZnVsbE5hbWUpOwogICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJ0VtYWlsJywgZW1haWwpOwogICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJ1Bob25lJywgZnVsbFBob25lKTsKICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKCdQcml6ZV9Xb24nLCBjdXJyZW50UHJpemUubmFtZSk7CiAgICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZCgnUHJpemVfVVJMJywgY3VycmVudFByaXplLnVybCk7CiAgICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZCgnU3VibWlzc2lvbl9EYXRlJywgbmV3IERhdGUoKS50b0xvY2FsZVN0cmluZygpKTsKICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKCdfc3ViamVjdCcsICfwn46wIE5FVyBMT1RURVJZIFdJTk5FUiAtIDIwMjYgU292ZXJlaWduIExvdHRlcnk6ICcgKyBjdXJyZW50UHJpemUubmFtZSk7CiAgICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZCgnX2NhcHRjaGEnLCAnZmFsc2UnKTsKICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKCdfdGVtcGxhdGUnLCAndGFibGUnKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAvLyBTdWJtaXQgdG8gRm9ybVN1Ym1pdAogICAgICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCgnaHR0cHM6Ly9mb3Jtc3VibWl0LmNvL2FqYXgvZHluYW1pY3BhcmFkaWdtc2VhY2FkZW15QGdtYWlsLmNvbScsIHsKICAgICAgICAgICAgICAgICAgICBtZXRob2Q6ICdQT1NUJywKICAgICAgICAgICAgICAgICAgICBib2R5OiBmb3JtRGF0YQogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5vaykgewogICAgICAgICAgICAgICAgICAgIC8vIFN1Y2Nlc3MhIFJlZGlyZWN0IHRvIHByaXplCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmxvYWRpbmctdGV4dCcpLnRleHRDb250ZW50ID0gJ/CfjokgU3VjY2VzcyEgUmVkaXJlY3RpbmcgdG8geW91ciBwcml6ZS4uLic7CiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gY3VycmVudFByaXplLnVybDsKICAgICAgICAgICAgICAgICAgICB9LCAxNTAwKTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdTdWJtaXNzaW9uIGZhaWxlZCcpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignRm9ybSBzdWJtaXNzaW9uIGVycm9yOicsIGVycm9yKTsKICAgICAgICAgICAgICAgIC8vIEV2ZW4gaWYgRm9ybVN1Ym1pdCBmYWlscywgc3RpbGwgcmVkaXJlY3QgKGRvbid0IGJsb2NrIHRoZSB1c2VyKQogICAgICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmxvYWRpbmctdGV4dCcpLnRleHRDb250ZW50ID0gJ/CfjokgUmVkaXJlY3RpbmcgdG8geW91ciBwcml6ZS4uLic7CiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsKICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGN1cnJlbnRQcml6ZS51cmw7CiAgICAgICAgICAgICAgICB9LCAxNTAwKTsKICAgICAgICAgICAgfQogICAgICAgIH0pOwogICAgICAgIAogICAgICAgIC8vID09PT09PT09PT09PT09PT09PT09IENMT1NFIE1PREFMUyA9PT09PT09PT09PT09PT09PT09PQogICAgICAgIGZ1bmN0aW9uIGNsb3NlUmVzdWx0TW9kYWwoKSB7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHRNb2RhbCcpLmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZScpOwogICAgICAgICAgICAKICAgICAgICAgICAgLy8gUmVzZXQgd2hlZWwKICAgICAgICAgICAgY29uc3Qgd2hlZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnd2hlZWwnKTsKICAgICAgICAgICAgd2hlZWwuc3R5bGUudHJhbnNpdGlvbiA9ICdub25lJzsKICAgICAgICAgICAgd2hlZWwuc3R5bGUudHJhbnNmb3JtID0gJ3JvdGF0ZSgwZGVnKSc7CiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gewogICAgICAgICAgICAgICAgd2hlZWwuc3R5bGUudHJhbnNpdGlvbiA9ICd0cmFuc2Zvcm0gNXMgY3ViaWMtYmV6aWVyKDAuMTcsIDAuNjcsIDAuMTIsIDAuOTkpJzsKICAgICAgICAgICAgfSwgMTAwKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLy8gPT09PT09PT09PT09PT09PT09PT0gQ1JFQVRFIENPTkZFVFRJID09PT09PT09PT09PT09PT09PT09CiAgICAgICAgZnVuY3Rpb24gY3JlYXRlQ29uZmV0dGkoKSB7CiAgICAgICAgICAgIGNvbnN0IGNvbG9ycyA9IFsnI2Q2MzM4NCcsICcjZmY2OWI0JywgJyNjNzE1ODUnLCAnI2RhNzBkNicsICcjZGRhMGRkJywgJyNkNGEwM2MnLCAnI2YxYzQwZicsICcjZmZiNmMxJ107CiAgICAgICAgICAgIGNvbnN0IHNoYXBlcyA9IFsn4q2QJywgJ+KcqCcsICfwn5GRJywgJ/CfjJ8nLCAn8J+SqycsICfwn46JJywgJ/CfkpYnLCAn8J+MuCcsICfwn5KVJywgJ/CfposnXTsKICAgICAgICAgICAgCiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgODA7IGkrKykgewogICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29uZmV0dGkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICAgICAgICAgICAgICBjb25mZXR0aS5jbGFzc05hbWUgPSAnY29uZmV0dGknOwogICAgICAgICAgICAgICAgICAgIGNvbmZldHRpLnN0eWxlLmxlZnQgPSBNYXRoLnJhbmRvbSgpICogMTAwICsgJ3Z3JzsKICAgICAgICAgICAgICAgICAgICBjb25mZXR0aS5zdHlsZS5mb250U2l6ZSA9IE1hdGgucmFuZG9tKCkgKiAyMCArIDE1ICsgJ3B4JzsKICAgICAgICAgICAgICAgICAgICBjb25mZXR0aS50ZXh0Q29udGVudCA9IHNoYXBlc1tNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBzaGFwZXMubGVuZ3RoKV07CiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjb25mZXR0aSk7CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiBjb25mZXR0aS5yZW1vdmUoKSwgNDAwMCk7CiAgICAgICAgICAgICAgICB9LCBpICogMzApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8vID09PT09PT09PT09PT09PT09PT09IElOSVRJQUxJWkUgPT09PT09PT09PT09PT09PT09PT0KICAgICAgICBjcmVhdGVTdGFyZmllbGQoKTsKICAgICAgICBjcmVhdGVGbG9hdGluZ0VsZW1lbnRzKCk7CiAgICA8L3NjcmlwdD4KPC9ib2R5Pgo8L2h0bWw+","embed":""}
2026 SOVEREIGN LOTTERY
SHE E-BOSS SOLUTIONIST™ Presents
Four mysteries await ~ Every door leads to transformation
🔥 Exciting
🎰
TAKE YOUR CHANCES
Surrender to fate. Spin the Sovereign Wheel and let the universe reveal what transformation awaits you.
👑
I'M IN CHARGE
Trust your intuition. Choose the mystery door that calls to your sovereign spirit ~ but only destiny knows what lies behind.
🔮
✨
🌟
💫
?
Choose Your Mystery Door
Each door holds a different path to transformation ~ which calls to you?
🚪
DOOR ONE
"Where seeds become forests"
~ growth awaits ~
🚪
DOOR TWO
"Where lions find their roar"
~ power awaits ~
🚪
DOOR THREE
"Where eagles learn to soar"
~ elevation awaits ~
🚪
DOOR FOUR
"Where voyages begin"
~ discovery awaits ~
🎉
THE DOOR OPENS!
Your destiny has been revealed...
Prize Name
Description
🎁
CLAIM YOUR SOVEREIGN PRIZE
Enter your details to unlock instant access to your transformation
Unlocking your prize...