Cgo8bGluayBocmVmPSIvL2Nkbi5zaG9waWZ5LmNvbS9zL2ZpbGVzLzEvMDg0Ni84ODg2LzM1NjUvdC8zL2Fzc2V0cy9jb21wb25lbnQtcmF0aW5nLmNzcz92PTE1Nzc3MTg1NDU5MjEzNzEzNzg0MTczMDEwNzE1OSIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KPGxpbmsgaHJlZj0iLy9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzA4NDYvODg4Ni8zNTY1L3QvMy9hc3NldHMvY29tcG9uZW50LXZvbHVtZS1wcmljaW5nLmNzcz92PTU3NjUxNDYwOTU0MzA2Mzk1MzMxNzMwMTA3MTU1IiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgoKCgoKPHNjcmlwdD4KICAvLyBDcmVhdGUgUHJvZHVjdCBMaXN0IGFycmF5CiAgaWYgKCFheFByb2R1Y3RMaXN0KSB7CiAgICB2YXIgYXhQcm9kdWN0TGlzdCA9IFtdOwogIH0KCiAgLy8gQ3JlYXRlIFByb2R1Y3QgY2xpY2sgYXJyYXkKICBpZiAoIWF4SXRlbSkgewogICAgdmFyIGF4SXRlbSA9IFtdOwogIH0KCiAgaWYgKCFsaXN0TmFtZSkgewogICAgdmFyIGxpc3ROYW1lID0gJyc7CiAgfSBlbHNlIHsKICAgIGxpc3ROYW1lID0gJyc7CiAgfQoKICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewogICAgLy8gT25jbGljayBldmVudAogICAgdmFyIHByb2R1Y3RDYXJkcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5ndG0tY2FyZC1wcm9kdWN0LTEtMS1kb2ctZHJ5LXNoYW1wb28tdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2InKTsKICAgIHByb2R1Y3RDYXJkcy5mb3JFYWNoKGZ1bmN0aW9uIChjYXJkKSB7CiAgICAgIGlmIChjYXJkLmNsb3Nlc3QoJy5ndG0tdHJhY2tpbmctY3Jvc3NzZWxsJykgIT09IG51bGwpIHsKICAgICAgICBsaXN0TmFtZSA9IGNhcmQuY2xvc2VzdCgnLmd0bS10cmFja2luZy1jcm9zc3NlbGwnKS5nZXRBdHRyaWJ1dGUoJ2d0bS10cmFja2luZy1jcm9zc3NlbGwnKTsKICAgICAgfQogICAgICBjYXJkLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24gKGV2ZW50KSB7CiAgICAgICAgdmFyIHByb2R1Y3REYXRhID0gSlNPTi5wYXJzZShjYXJkLmdldEF0dHJpYnV0ZSgnZ3RtLWNhcmQtZGF0YScpKTsKICAgICAgICAvLyBOZWVkIHRvIHB1c2ggbGlzdE5hbWUKICAgICAgICBwcm9kdWN0RGF0YVsnaXRlbV9saXN0X25hbWUnXSA9IGxpc3ROYW1lOwogICAgICAgIC8vIFB1c2ggY2xpY2tlZCBwcm9kdWN0CiAgICAgICAgYXhJdGVtLnB1c2gocHJvZHVjdERhdGEpOwogICAgICAgIC8vIFNlbmQgImNsaWNrIiBldmVudAogICAgICAgIGRhdGFMYXllci5wdXNoKHsKICAgICAgICAgIGV2ZW50OiAnYXhfcHJvZHVjdF9jbGljaycsCiAgICAgICAgICBheEl0ZW06IGF4SXRlbQogICAgICAgIH0pOwogICAgICB9KTsKICAgIH0pOwoKICAgIC8vIFB1c2ggYWxsIHByb2R1Y3QgaW4gZGF0YUxheWVyCiAgICBheFByb2R1Y3RMaXN0LnB1c2goewogICAgICBpdGVtX25hbWU6ICcxKzEgRE9HIERSWSBTSEFNUE9PJywKICAgICAgaXRlbV9pZDogJ0lUQV9QUkRFMDAwMzc5MTNXJywKICAgICAgcHJpY2U6ICfigqwxMiwwMCcsCiAgICAgIGl0ZW1fYnJhbmQ6ICdTdGFuaG9tZScsCiAgICAgIGl0ZW1fY2F0ZWdvcnkxOiAnU3RhbmhvbWUnLAogICAgICBpdGVtX2NhdGVnb3J5MjogJ0kgcHJvZG90dGkgU3RhbmhvbWUnLAogICAgICBpdGVtX2NhdGVnb3J5MzogJycsCiAgICAgIGl0ZW1fdmFyaWFudDogJ0RlZmF1bHQgVGl0bGUnLAogICAgICBpdGVtX2xpc3RfbmFtZTogbGlzdE5hbWUKICAgIH0pOwoKICAgIC8vIFNlbmQgImZpbmlzaGVkIiBldmVudAogICAgaWYgKGF4UHJvZHVjdExpc3QubGVuZ3RoID09PSB3aW5kb3cudGhlbWUuaXRlbXNfY291bnQpIHsKICAgICAgZGF0YUxheWVyLnB1c2goewogICAgICAgIGV2ZW50OiAnYXhfcHJvZHVjdF9saXN0X2NvbXBsZXRlJywKICAgICAgICBheFByb2R1Y3RMaXN0OiBheFByb2R1Y3RMaXN0LAogICAgICB9KTsKICAgIH0KICB9KTsKCiAgZnVuY3Rpb24gY2xpY2tQcm9kdWN0KHByb2R1Y3REYXRhKSB7fQo8L3NjcmlwdD4KCgo8c2NyaXB0IGRlZmVyPgogIGZ1bmN0aW9uIHN3eW1DYWxsYmFja0ZuKHN3YXQpIHsKICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3N3eW06Y29sbGVjdGlvbnMtbG9hZGVkJywgZnVuY3Rpb24gKCkgewogICAgICBzd2F0LmluaXRpYWxpemVBY3Rpb25CdXR0b25zKCc8PENvbGxlY3Rpb25zIEdyaWQgUEFSRU5UIFNlbGVjdG9yID4+Jyk7CiAgICB9KTsKICB9CiAgaWYgKCF3aW5kb3cuU3d5bUNhbGxiYWNrcykgewogICAgd2luZG93LlN3eW1DYWxsYmFja3MgPSBbXTsKICB9CiAgd2luZG93LlN3eW1DYWxsYmFja3MucHVzaChzd3ltQ2FsbGJhY2tGbik7Cjwvc2NyaXB0PgoKCiAgICAKCiAgICA8ZGl2IGNsYXNzPSJjYXJkLXdyYXBwZXIgcHJvZHVjdC1taW5pYXR1cmUgcHJvZHVjdC1jYXJkLXdyYXBwZXIgdW5kZXJsaW5lLWxpbmtzLWhvdmVyIGd0bS1jYXJkLXByb2R1Y3QgZ3RtLWNhcmQtcHJvZHVjdC0xLTEtZG9nLWRyeS1zaGFtcG9vLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiIGNhcmQtcHJvZHVjdCIgZ3RtLWNhcmQtZGF0YT0nCiAgICAgICAgewogICAgICAgICAgICAiaXRlbV9uYW1lIjogIjErMSBET0cgRFJZIFNIQU1QT08iLAogICAgICAgICAgICAiaXRlbV9pZCI6ICJJVEFfUFJERTAwMDM3OTEzVyIsCiAgICAgICAgICAgICJwcmljZSI6ICLigqwxMiwwMCIsCiAgICAgICAgICAgICJpdGVtX2JyYW5kIjogIlN0YW5ob21lIiwKICAgICAgICAgICAgIml0ZW1fY2F0ZWdvcnkxIjogIiIsCiAgICAgICAgICAgICJpdGVtX2NhdGVnb3J5MiI6ICJvdXItc3RhbmhvbWUtcHJvZHVjdHMiLAogICAgICAgICAgICAiaXRlbV9jYXRlZ29yeTMiOiBudWxsLAogICAgICAgICAgICAiaXRlbV92YXJpYW50IjogIkRlZmF1bHQgVGl0bGUiCiAgICAgICAgfQogICAgJyBkYXRhLXByb2R1Y3QtaWQ9IjEwNTQyNzc1OTkyNjUzIiBkYXRhLXByb2R1Y3QtbmFtZT0iMSsxIERPRyBEUlkgU0hBTVBPTyIKICBkYXRhLXByb2R1Y3QtcHJpY2U9IjEyLjAiCiAgZGF0YS1wcm9kdWN0LWJyYW5kPSJTdGFuaG9tZSIKICBkYXRhLXByb2R1Y3QtY2F0ZWdvcnk9IiIKICBkYXRhLXByb2R1Y3QtcG9zaXRpb249IiI+CiAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgY2xhc3M9IgogICAgICAgIGNhcmQgY2FyZC0tc3RhbmRhcmQKICAgICAgICAgY2FyZC0tbWVkaWEKICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgIgogICAgICAgICAgICAgICAgc3R5bGU9Ii0tcmF0aW8tcGVyY2VudDogMTAwJTsiCiAgICAgICAgPgogICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImNhcmRfX2lubmVyIGNvbG9yLWJhY2tncm91bmQtMSBncmFkaWVudCByYXRpbyIKICAgICAgICAgICAgICAgICAgICBzdHlsZT0iLS1yYXRpby1wZXJjZW50OiAxMDAlOyIKICAgICAgICAgICAgPjxkaXYgY2xhc3M9ImNhcmRfX21lZGlhIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWVkaWEgbWVkaWEtLXRyYW5zcGFyZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyY3NldD0iLy9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzA4NDYvODg4Ni8zNTY1L2ZpbGVzL2RvZ19kcnlfc2hhbXBvby5qcGc/dj0xNzcxMzIwMDQ5JndpZHRoPTE2NSAxNjV3LC8vY2RuLnNob3BpZnkuY29tL3MvZmlsZXMvMS8wODQ2Lzg4ODYvMzU2NS9maWxlcy9kb2dfZHJ5X3NoYW1wb28uanBnP3Y9MTc3MTMyMDA0OSZ3aWR0aD0zNjAgMzYwdywvL2Nkbi5zaG9waWZ5LmNvbS9zL2ZpbGVzLzEvMDg0Ni84ODg2LzM1NjUvZmlsZXMvZG9nX2RyeV9zaGFtcG9vLmpwZz92PTE3NzEzMjAwNDkmd2lkdGg9NTMzIDUzM3csLy9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzA4NDYvODg4Ni8zNTY1L2ZpbGVzL2RvZ19kcnlfc2hhbXBvby5qcGc/dj0xNzcxMzIwMDQ5JndpZHRoPTcyMCA3MjB3LC8vY2RuLnNob3BpZnkuY29tL3MvZmlsZXMvMS8wODQ2Lzg4ODYvMzU2NS9maWxlcy9kb2dfZHJ5X3NoYW1wb28uanBnP3Y9MTc3MTMyMDA0OSZ3aWR0aD05NDAgOTQwdywvL2Nkbi5zaG9waWZ5LmNvbS9zL2ZpbGVzLzEvMDg0Ni84ODg2LzM1NjUvZmlsZXMvZG9nX2RyeV9zaGFtcG9vLmpwZz92PTE3NzEzMjAwNDkmd2lkdGg9MTA2NiAxMDY2dywvL2Nkbi5zaG9waWZ5LmNvbS9zL2ZpbGVzLzEvMDg0Ni84ODg2LzM1NjUvZmlsZXMvZG9nX2RyeV9zaGFtcG9vLmpwZz92PTE3NzEzMjAwNDkgMTIwMHcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz0iLy9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzA4NDYvODg4Ni8zNTY1L2ZpbGVzL2RvZ19kcnlfc2hhbXBvby5qcGc/dj0xNzcxMzIwMDQ5JndpZHRoPTUzMyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZXM9IihtaW4td2lkdGg6IDE2MDBweCkgMzY3cHgsIChtaW4td2lkdGg6IDk5MHB4KSBjYWxjKCgxMDB2dyAtIDEzMHB4KSAvIDQpLCAobWluLXdpZHRoOiA3NTBweCkgY2FsYygoMTAwdncgLSAxMjBweCkgLyAzKSwgY2FsYygoMTAwdncgLSAzNXB4KSAvIDIpIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9IjErMSBET0cgRFJZIFNIQU1QT08iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJtb3Rpb24tcmVkdWNlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkaW5nPSJsYXp5IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRpbmc9ImxhenkiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD0iMTIwMCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PSIxMjAwIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PjxkaXYgY2xhc3M9ImNhcmRfX2NvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgIDwhLS0gU3d5bSBXaXNobGlzdCBQbHVzIEVQSSBCdXR0b24gd2l0aCBkZWZhdWx0IGZpcnN0IHZhcmlhbnQgLS0+CiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBhcmlhLWxhYmVsPSJBZGQgdG8gV2lzaGxpc3QiIGRhdGEtd2l0aC1lcGk9InRydWUiIGNsYXNzPSJzd3ltLWJ1dHRvbiBzd3ltLWFkZC10by13aXNobGlzdC12aWV3LXByb2R1Y3QgcHJvZHVjdF8xMDU0Mjc3NTk5MjY1MyIgZGF0YS1zd2FjdGlvbj0iYWRkVG9XaXNobGlzdCIgZGF0YS1wcm9kdWN0LWlkPSIxMDU0Mjc3NTk5MjY1MyIgZGF0YS12YXJpYW50LWlkPSI1MzM4MjM5NjU3NjA3NyIgZGF0YS1wcm9kdWN0LXVybD0iaHR0cHM6Ly93d3cuc3RhbmhvbWUuaXQvcHJvZHVjdHMvMS0xLWRvZy1kcnktc2hhbXBvbyI+CiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgPCEtLSBTd3ltIFdpc2hsaXN0IFBsdXMgRVBJIEJ1dHRvbi0tPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2JhZGdlIHRvcCBsZWZ0Ij48L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fY29udGVudCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19pbmZvcm1hdGlvbiI+PGRpdiBjbGFzcz0iY2FyZF9fdHlwZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdGFuaG9tZQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48cCBjbGFzcz0iY2FyZF9faGVhZGluZyBoNSIgIGlkPSJ0aXRsZS10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi0xMDU0Mjc3NTk5MjY1MyIgPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvcHJvZHVjdHMvMS0xLWRvZy1kcnktc2hhbXBvbyIgaWQ9IkNhcmRMaW5rLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTEwNTQyNzc1OTkyNjUzIiBjbGFzcz0iZnVsbC11bnN0eWxlZC1saW5rIGZ1bGwtdW5zdHlsZWQtbGluay1wcm9kdWN0IiBhcmlhLWxhYmVsbGVkYnk9IkNhcmRMaW5rLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTEwNTQyNzc1OTkyNjUzIEJhZGdlLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTEwNTQyNzc1OTkyNjUzIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNFVCAxKzEgRE9HIERSWSBTSEFNUE9PIAogICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPC9wPgoKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX192YXJpYW50LXRpdGxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgMSsxIERPRyBEUlkgU0hBTVBPTwogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaW5mb3JtYXRpb24iPjxzcGFuIGNsYXNzPSJjYXB0aW9uLWxhcmdlIGxpZ2h0Ij48L3NwYW4+CgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19pbmZvcm1hdGlvbi1mb3JtLXJhdGluZy1wcmljZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyYXRpbmctcHJpY2UiPgo8ZGl2CiAgY2xhc3M9IgogICAgcHJpY2UgIgo+CiAgPGRpdiBjbGFzcz0icHJpY2VfX2NvbnRhaW5lciI+PGRpdiBjbGFzcz0icHJpY2VfX3JlZ3VsYXIiPjxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4gdmlzdWFsbHktaGlkZGVuLS1pbmxpbmUiPlByZXp6byBkaSBsaXN0aW5vPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tLXJlZ3VsYXIiPgogICAgICAgICAg4oKsMTIsMDAKICAgICAgICA8L3NwYW4+PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJwcmljZV9fc2FsZSI+CiAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIHZpc3VhbGx5LWhpZGRlbi0taW5saW5lIj5QcmV6em8gc2NvbnRhdG88L3NwYW4+CiAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tLXNhbGUgcHJpY2UtaXRlbS0tbGFzdCI+CiAgICAgICAg4oKsMTIsMDAKICAgICAgPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4gdmlzdWFsbHktaGlkZGVuLS1pbmxpbmUiPlByZXp6byBkaSBsaXN0aW5vPC9zcGFuPgogICAgICAgIDxzcGFuPgogICAgICAgICAgPHMgY2xhc3M9InByaWNlLWl0ZW0gcHJpY2UtaXRlbS0tcmVndWxhciI+CiAgICAgICAgICAgIAogICAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgIDwvcz4KICAgICAgICA8L3NwYW4+PC9kaXY+CiAgICA8c21hbGwgY2xhc3M9InVuaXQtcHJpY2UgY2FwdGlvbiBoaWRkZW4iPgogICAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIj5QcmV6em8gdW5pdGFyaW88L3NwYW4+CiAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tdW5pdCBwcmljZS1pdGVtLS1sYXN0Ij4KICAgICAgICA8c3Bhbj48L3NwYW4+CiAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49InRydWUiPi88L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiI+Jm5ic3A7cGVyJm5ic3A7PC9zcGFuPgogICAgICAgIDxzcGFuPgogICAgICAgIDwvc3Bhbj4KICAgICAgPC9zcGFuPgogICAgPC9zbWFsbD4KICA8L2Rpdj48L2Rpdj4KCjwvZGl2PjxhIGhyZWY9Ii9wcm9kdWN0cy8xLTEtZG9nLWRyeS1zaGFtcG9vIiBjbGFzcz0icXVpY2stYWRkIHF1aWNrLWFkZC1leWUgcXVpY2stYWRkLW1vYmlsZSBleHRyYS1sYXJnZS11cC1oaWRlIj48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgYXJpYS1oaWRkZW49InRydWUiIGZvY3VzYWJsZT0iZmFsc2UiIGNsYXNzPSJpY29uIGljb24tZXllIiB3aWR0aD0iMjQuNzY0IiBoZWlnaHQ9IjEzLjMxOCI+CiAgPGcgZmlsbD0iY3VycmVudENvbG9yIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIuNyIgY2xpcC1wYXRoPSJ1cmwoI3ByZWZpeF9fYSkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIgMSkiPgogIDxwYXRoIGQ9Ik0xMC40OC40NGguMDM3YTExLjk4MyAxMS45ODMgMCAwIDEgNS42NDEgMS40MjRBMTIuMjUzIDEyLjI1MyAwIDAgMSAxOC41IDMuNDk3YTEyLjQ1NyAxMi40NTcgMCAwIDEgMS43MzQgMS44OTQgMTIuNDIyIDEyLjQyMiAwIDAgMS0xLjcyOCAyLjEwNiAxMi4wNzcgMTIuMDc3IDAgMCAxLTIuMzc5IDEuODEgMTEuNjc2IDExLjY3NiAwIDAgMS0yLjc3MSAxLjE2MSAxMS42IDExLjYgMCAwIDEtMy4wNjMuNDFoLS4wMzlhMTEuNjEzIDExLjYxMyAwIDAgMS0yLjk3Ni0uNCAxMS42NjMgMTEuNjYzIDAgMCAxLTIuNy0xLjEwNiAxMi4wNDcgMTIuMDQ3IDAgMCAxLTIuMzM1LTEuNzE3IDEyLjQgMTIuNCAwIDAgMS0xLjcxMi0yIDEyLjQ2NCAxMi40NjQgMCAwIDEgMS43NTMtMiAxMi4yNzEgMTIuMjcxIDAgMCAxIDIuMzg4LTEuNzIzIDExLjk4MiAxMS45ODIgMCAwIDEgNS44LTEuNDkzWm0wLS40NEExMi41ODcgMTIuNTg3IDAgMCAwIDAgNS42NTVhMTIuMyAxMi4zIDAgMCAwIDEwLjI1MyA1LjY2M2guMDRhMTIuMzI0IDEyLjMyNCAwIDAgMCAxMC40NzEtNS45NDJBMTIuNTc1IDEyLjU3NSAwIDAgMCAxMC41MTgtLjAwM2gtLjA0MSIvPgogIDxwYXRoIGQ9Ik0xMC4zODIuNzM0YTQuNzQxIDQuNzQxIDAgMCAxIDIuNy44MzkgNC44ODkgNC44ODkgMCAwIDEgLjcxNS42IDQuOTUgNC45NSAwIDAgMSAxLjMxOSAyLjQ5MyA1LjA4IDUuMDggMCAwIDEgMCAxLjk5MSA0Ljk0OCA0Ljk0OCAwIDAgMS0xLjMxOSAyLjQ5MyA0Ljg4OSA0Ljg4OSAwIDAgMS0uNzE1LjYgNC44IDQuOCAwIDAgMS0uODIuNDUzIDQuNzQ5IDQuNzQ5IDAgMCAxLTMuNzUzIDAgNC44IDQuOCAwIDAgMS0uODItLjQ1MyA0LjkxNSA0LjkxNSAwIDAgMS0xLjMwNi0xLjMzMSA0Ljk0OSA0Ljk0OSAwIDAgMS0uNzI4LTEuNzYzIDUuMDggNS4wOCAwIDAgMSAwLTEuOTkxIDQuOTQ0IDQuOTQ0IDAgMCAxIDEuMzE5LTIuNDkzIDQuODg5IDQuODg5IDAgMCAxIC43MTUtLjYgNC44IDQuOCAwIDAgMSAuODItLjQ1MyA0LjczIDQuNzMgMCAwIDEgMS44NzctLjM4Nm0wLS41YTUuNDI5IDUuNDI5IDAgMSAwIDUuMzMgNS40MjkgNS4zOCA1LjM4IDAgMCAwLTUuMzMtNS40MjkiLz4KICA8cGF0aCBkPSJNMTMuMDgzIDUuNzU5YTIuNjgzIDIuNjgzIDAgMSAxLTIuNjgyLTIuNzMyIDIuNzA3IDIuNzA3IDAgMCAxIDIuNjgyIDIuNzMyIi8+CiAgPC9nPgo8L3N2Zz4KICA8L2E+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2NvbnRlbnQtaG92ZXIiPgogICAgICAgICAgICAgICAgPCEtLSBTd3ltIFdpc2hsaXN0IFBsdXMgRVBJIEJ1dHRvbiB3aXRoIGRlZmF1bHQgZmlyc3QgdmFyaWFudCAtLT4KICAgICAgICAgICAgICAgIDxidXR0b24gYXJpYS1sYWJlbD0iQWRkIHRvIFdpc2hsaXN0IiBkYXRhLXdpdGgtZXBpPSJ0cnVlIiBjbGFzcz0ic3d5bS1idXR0b24gc3d5bS1hZGQtdG8td2lzaGxpc3Qtdmlldy1wcm9kdWN0IHByb2R1Y3RfMTA1NDI3NzU5OTI2NTMiIGRhdGEtc3dhY3Rpb249ImFkZFRvV2lzaGxpc3QiIGRhdGEtcHJvZHVjdC1pZD0iMTA1NDI3NzU5OTI2NTMiIGRhdGEtdmFyaWFudC1pZD0iNTMzODIzOTY1NzYwNzciIGRhdGEtcHJvZHVjdC11cmw9Imh0dHBzOi8vd3d3LnN0YW5ob21lLml0L3Byb2R1Y3RzLzEtMS1kb2ctZHJ5LXNoYW1wb28iPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICA8IS0tIFN3eW0gV2lzaGxpc3QgUGx1cyBFUEkgQnV0dG9uLS0+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19pbmZvcm1hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9faGVhZGluZyI+CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgU0VUIDErMSBET0cgRFJZIFNIQU1QT08KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fdmFyaWFudC10aXRsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDErMSBET0cgRFJZIFNIQU1QT08KICAgICAgICAgICAgICAgICAgICA8L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJxdWljay1hZGQgbm8tanMtaGlkZGVuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii9wcm9kdWN0cy8xLTEtZG9nLWRyeS1zaGFtcG9vIiBjbGFzcz0icXVpY2stYWRkX19saW5rIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJxdWljay1hZGRfX3N1Ym1pdCBidXR0b24gYnV0dG9uLS1mdWxsLXdpZHRoIGJ1dHRvbi0tcHJpbWFyeSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNDT1BSSSBESSBQScOZCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4=
Cgo8bGluayBocmVmPSIvL2Nkbi5zaG9waWZ5LmNvbS9zL2ZpbGVzLzEvMDg0Ni84ODg2LzM1NjUvdC8zL2Fzc2V0cy9jb21wb25lbnQtcmF0aW5nLmNzcz92PTE1Nzc3MTg1NDU5MjEzNzEzNzg0MTczMDEwNzE1OSIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KPGxpbmsgaHJlZj0iLy9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzA4NDYvODg4Ni8zNTY1L3QvMy9hc3NldHMvY29tcG9uZW50LXZvbHVtZS1wcmljaW5nLmNzcz92PTU3NjUxNDYwOTU0MzA2Mzk1MzMxNzMwMTA3MTU1IiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgoKCgoKPHNjcmlwdD4KICAvLyBDcmVhdGUgUHJvZHVjdCBMaXN0IGFycmF5CiAgaWYgKCFheFByb2R1Y3RMaXN0KSB7CiAgICB2YXIgYXhQcm9kdWN0TGlzdCA9IFtdOwogIH0KCiAgLy8gQ3JlYXRlIFByb2R1Y3QgY2xpY2sgYXJyYXkKICBpZiAoIWF4SXRlbSkgewogICAgdmFyIGF4SXRlbSA9IFtdOwogIH0KCiAgaWYgKCFsaXN0TmFtZSkgewogICAgdmFyIGxpc3ROYW1lID0gJyc7CiAgfSBlbHNlIHsKICAgIGxpc3ROYW1lID0gJyc7CiAgfQoKICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewogICAgLy8gT25jbGljayBldmVudAogICAgdmFyIHByb2R1Y3RDYXJkcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5ndG0tY2FyZC1wcm9kdWN0LTEtMS1zb2Z0LXNob3dlci10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYicpOwogICAgcHJvZHVjdENhcmRzLmZvckVhY2goZnVuY3Rpb24gKGNhcmQpIHsKICAgICAgaWYgKGNhcmQuY2xvc2VzdCgnLmd0bS10cmFja2luZy1jcm9zc3NlbGwnKSAhPT0gbnVsbCkgewogICAgICAgIGxpc3ROYW1lID0gY2FyZC5jbG9zZXN0KCcuZ3RtLXRyYWNraW5nLWNyb3Nzc2VsbCcpLmdldEF0dHJpYnV0ZSgnZ3RtLXRyYWNraW5nLWNyb3Nzc2VsbCcpOwogICAgICB9CiAgICAgIGNhcmQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbiAoZXZlbnQpIHsKICAgICAgICB2YXIgcHJvZHVjdERhdGEgPSBKU09OLnBhcnNlKGNhcmQuZ2V0QXR0cmlidXRlKCdndG0tY2FyZC1kYXRhJykpOwogICAgICAgIC8vIE5lZWQgdG8gcHVzaCBsaXN0TmFtZQogICAgICAgIHByb2R1Y3REYXRhWydpdGVtX2xpc3RfbmFtZSddID0gbGlzdE5hbWU7CiAgICAgICAgLy8gUHVzaCBjbGlja2VkIHByb2R1Y3QKICAgICAgICBheEl0ZW0ucHVzaChwcm9kdWN0RGF0YSk7CiAgICAgICAgLy8gU2VuZCAiY2xpY2siIGV2ZW50CiAgICAgICAgZGF0YUxheWVyLnB1c2goewogICAgICAgICAgZXZlbnQ6ICdheF9wcm9kdWN0X2NsaWNrJywKICAgICAgICAgIGF4SXRlbTogYXhJdGVtCiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgfSk7CgogICAgLy8gUHVzaCBhbGwgcHJvZHVjdCBpbiBkYXRhTGF5ZXIKICAgIGF4UHJvZHVjdExpc3QucHVzaCh7CiAgICAgIGl0ZW1fbmFtZTogJzErMSBTT0ZUIFNIT1dFUicsCiAgICAgIGl0ZW1faWQ6ICdJVEFfUFJERTAwMDM3OTEwVycsCiAgICAgIHByaWNlOiAn4oKsMTgsMDAnLAogICAgICBpdGVtX2JyYW5kOiAnU3RhbmhvbWUnLAogICAgICBpdGVtX2NhdGVnb3J5MTogJ1N0YW5ob21lJywKICAgICAgaXRlbV9jYXRlZ29yeTI6ICdJIHByb2RvdHRpIFN0YW5ob21lJywKICAgICAgaXRlbV9jYXRlZ29yeTM6ICcnLAogICAgICBpdGVtX3ZhcmlhbnQ6ICdEZWZhdWx0IFRpdGxlJywKICAgICAgaXRlbV9saXN0X25hbWU6IGxpc3ROYW1lCiAgICB9KTsKCiAgICAvLyBTZW5kICJmaW5pc2hlZCIgZXZlbnQKICAgIGlmIChheFByb2R1Y3RMaXN0Lmxlbmd0aCA9PT0gd2luZG93LnRoZW1lLml0ZW1zX2NvdW50KSB7CiAgICAgIGRhdGFMYXllci5wdXNoKHsKICAgICAgICBldmVudDogJ2F4X3Byb2R1Y3RfbGlzdF9jb21wbGV0ZScsCiAgICAgICAgYXhQcm9kdWN0TGlzdDogYXhQcm9kdWN0TGlzdCwKICAgICAgfSk7CiAgICB9CiAgfSk7CgogIGZ1bmN0aW9uIGNsaWNrUHJvZHVjdChwcm9kdWN0RGF0YSkge30KPC9zY3JpcHQ+CgoKPHNjcmlwdCBkZWZlcj4KICBmdW5jdGlvbiBzd3ltQ2FsbGJhY2tGbihzd2F0KSB7CiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdzd3ltOmNvbGxlY3Rpb25zLWxvYWRlZCcsIGZ1bmN0aW9uICgpIHsKICAgICAgc3dhdC5pbml0aWFsaXplQWN0aW9uQnV0dG9ucygnPDxDb2xsZWN0aW9ucyBHcmlkIFBBUkVOVCBTZWxlY3RvciA+PicpOwogICAgfSk7CiAgfQogIGlmICghd2luZG93LlN3eW1DYWxsYmFja3MpIHsKICAgIHdpbmRvdy5Td3ltQ2FsbGJhY2tzID0gW107CiAgfQogIHdpbmRvdy5Td3ltQ2FsbGJhY2tzLnB1c2goc3d5bUNhbGxiYWNrRm4pOwo8L3NjcmlwdD4KCgogICAgCgogICAgPGRpdiBjbGFzcz0iY2FyZC13cmFwcGVyIHByb2R1Y3QtbWluaWF0dXJlIHByb2R1Y3QtY2FyZC13cmFwcGVyIHVuZGVybGluZS1saW5rcy1ob3ZlciBndG0tY2FyZC1wcm9kdWN0IGd0bS1jYXJkLXByb2R1Y3QtMS0xLXNvZnQtc2hvd2VyLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiIGNhcmQtcHJvZHVjdCIgZ3RtLWNhcmQtZGF0YT0nCiAgICAgICAgewogICAgICAgICAgICAiaXRlbV9uYW1lIjogIjErMSBTT0ZUIFNIT1dFUiIsCiAgICAgICAgICAgICJpdGVtX2lkIjogIklUQV9QUkRFMDAwMzc5MTBXIiwKICAgICAgICAgICAgInByaWNlIjogIuKCrDE4LDAwIiwKICAgICAgICAgICAgIml0ZW1fYnJhbmQiOiAiU3RhbmhvbWUiLAogICAgICAgICAgICAiaXRlbV9jYXRlZ29yeTEiOiAiIiwKICAgICAgICAgICAgIml0ZW1fY2F0ZWdvcnkyIjogIm91ci1zdGFuaG9tZS1wcm9kdWN0cyIsCiAgICAgICAgICAgICJpdGVtX2NhdGVnb3J5MyI6IG51bGwsCiAgICAgICAgICAgICJpdGVtX3ZhcmlhbnQiOiAiRGVmYXVsdCBUaXRsZSIKICAgICAgICB9CiAgICAnIGRhdGEtcHJvZHVjdC1pZD0iMTA1NDI3NzU3MzA1MDkiIGRhdGEtcHJvZHVjdC1uYW1lPSIxKzEgU09GVCBTSE9XRVIiCiAgZGF0YS1wcm9kdWN0LXByaWNlPSIxOC4wIgogIGRhdGEtcHJvZHVjdC1icmFuZD0iU3RhbmhvbWUiCiAgZGF0YS1wcm9kdWN0LWNhdGVnb3J5PSIiCiAgZGF0YS1wcm9kdWN0LXBvc2l0aW9uPSIiPgogICAgICAgIDxkaXYKICAgICAgICAgICAgICAgIGNsYXNzPSIKICAgICAgICBjYXJkIGNhcmQtLXN0YW5kYXJkCiAgICAgICAgIGNhcmQtLW1lZGlhCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICIKICAgICAgICAgICAgICAgIHN0eWxlPSItLXJhdGlvLXBlcmNlbnQ6IDEwMCU7IgogICAgICAgID4KICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJjYXJkX19pbm5lciBjb2xvci1iYWNrZ3JvdW5kLTEgZ3JhZGllbnQgcmF0aW8iCiAgICAgICAgICAgICAgICAgICAgc3R5bGU9Ii0tcmF0aW8tcGVyY2VudDogMTAwJTsiCiAgICAgICAgICAgID48ZGl2IGNsYXNzPSJjYXJkX19tZWRpYSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1lZGlhIG1lZGlhLS10cmFuc3BhcmVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmNzZXQ9Ii8vY2RuLnNob3BpZnkuY29tL3MvZmlsZXMvMS8wODQ2Lzg4ODYvMzU2NS9maWxlcy9zb2Z0X3Nob3dlci5qcGc/dj0xNzcxMzIwMDUwJndpZHRoPTE2NSAxNjV3LC8vY2RuLnNob3BpZnkuY29tL3MvZmlsZXMvMS8wODQ2Lzg4ODYvMzU2NS9maWxlcy9zb2Z0X3Nob3dlci5qcGc/dj0xNzcxMzIwMDUwJndpZHRoPTM2MCAzNjB3LC8vY2RuLnNob3BpZnkuY29tL3MvZmlsZXMvMS8wODQ2Lzg4ODYvMzU2NS9maWxlcy9zb2Z0X3Nob3dlci5qcGc/dj0xNzcxMzIwMDUwJndpZHRoPTUzMyA1MzN3LC8vY2RuLnNob3BpZnkuY29tL3MvZmlsZXMvMS8wODQ2Lzg4ODYvMzU2NS9maWxlcy9zb2Z0X3Nob3dlci5qcGc/dj0xNzcxMzIwMDUwJndpZHRoPTcyMCA3MjB3LC8vY2RuLnNob3BpZnkuY29tL3MvZmlsZXMvMS8wODQ2Lzg4ODYvMzU2NS9maWxlcy9zb2Z0X3Nob3dlci5qcGc/dj0xNzcxMzIwMDUwJndpZHRoPTk0MCA5NDB3LC8vY2RuLnNob3BpZnkuY29tL3MvZmlsZXMvMS8wODQ2Lzg4ODYvMzU2NS9maWxlcy9zb2Z0X3Nob3dlci5qcGc/dj0xNzcxMzIwMDUwJndpZHRoPTEwNjYgMTA2NncsLy9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzA4NDYvODg4Ni8zNTY1L2ZpbGVzL3NvZnRfc2hvd2VyLmpwZz92PTE3NzEzMjAwNTAgMTIwMHcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz0iLy9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzA4NDYvODg4Ni8zNTY1L2ZpbGVzL3NvZnRfc2hvd2VyLmpwZz92PTE3NzEzMjAwNTAmd2lkdGg9NTMzIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplcz0iKG1pbi13aWR0aDogMTYwMHB4KSAzNjdweCwgKG1pbi13aWR0aDogOTkwcHgpIGNhbGMoKDEwMHZ3IC0gMTMwcHgpIC8gNCksIChtaW4td2lkdGg6IDc1MHB4KSBjYWxjKCgxMDB2dyAtIDEyMHB4KSAvIDMpLCBjYWxjKCgxMDB2dyAtIDM1cHgpIC8gMikiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD0iMSsxIFNPRlQgU0hPV0VSIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0ibW90aW9uLXJlZHVjZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZz0ibGF6eSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkaW5nPSJsYXp5IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9IjEyMDAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD0iMTIwMCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj48ZGl2IGNsYXNzPSJjYXJkX19jb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICA8IS0tIFN3eW0gV2lzaGxpc3QgUGx1cyBFUEkgQnV0dG9uIHdpdGggZGVmYXVsdCBmaXJzdCB2YXJpYW50IC0tPgogICAgICAgICAgICAgICAgICAgIDxidXR0b24gYXJpYS1sYWJlbD0iQWRkIHRvIFdpc2hsaXN0IiBkYXRhLXdpdGgtZXBpPSJ0cnVlIiBjbGFzcz0ic3d5bS1idXR0b24gc3d5bS1hZGQtdG8td2lzaGxpc3Qtdmlldy1wcm9kdWN0IHByb2R1Y3RfMTA1NDI3NzU3MzA1MDkiIGRhdGEtc3dhY3Rpb249ImFkZFRvV2lzaGxpc3QiIGRhdGEtcHJvZHVjdC1pZD0iMTA1NDI3NzU3MzA1MDkiIGRhdGEtdmFyaWFudC1pZD0iNTMzODIzOTYyNDgzOTciIGRhdGEtcHJvZHVjdC11cmw9Imh0dHBzOi8vd3d3LnN0YW5ob21lLml0L3Byb2R1Y3RzLzEtMS1zb2Z0LXNob3dlciI+CiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgPCEtLSBTd3ltIFdpc2hsaXN0IFBsdXMgRVBJIEJ1dHRvbi0tPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2JhZGdlIHRvcCBsZWZ0Ij48L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fY29udGVudCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19pbmZvcm1hdGlvbiI+PGRpdiBjbGFzcz0iY2FyZF9fdHlwZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdGFuaG9tZQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48cCBjbGFzcz0iY2FyZF9faGVhZGluZyBoNSIgIGlkPSJ0aXRsZS10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi0xMDU0Mjc3NTczMDUwOSIgPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvcHJvZHVjdHMvMS0xLXNvZnQtc2hvd2VyIiBpZD0iQ2FyZExpbmstdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItMTA1NDI3NzU3MzA1MDkiIGNsYXNzPSJmdWxsLXVuc3R5bGVkLWxpbmsgZnVsbC11bnN0eWxlZC1saW5rLXByb2R1Y3QiIGFyaWEtbGFiZWxsZWRieT0iQ2FyZExpbmstdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItMTA1NDI3NzU3MzA1MDkgQmFkZ2UtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItMTA1NDI3NzU3MzA1MDkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgU0VUIDErMSBTT0ZUIFNIT1dFUiAKICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDwvcD4KCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fdmFyaWFudC10aXRsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDErMSBTT0ZUIFNIT1dFUgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaW5mb3JtYXRpb24iPjxzcGFuIGNsYXNzPSJjYXB0aW9uLWxhcmdlIGxpZ2h0Ij48L3NwYW4+CgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19pbmZvcm1hdGlvbi1mb3JtLXJhdGluZy1wcmljZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyYXRpbmctcHJpY2UiPgo8ZGl2CiAgY2xhc3M9IgogICAgcHJpY2UgIgo+CiAgPGRpdiBjbGFzcz0icHJpY2VfX2NvbnRhaW5lciI+PGRpdiBjbGFzcz0icHJpY2VfX3JlZ3VsYXIiPjxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4gdmlzdWFsbHktaGlkZGVuLS1pbmxpbmUiPlByZXp6byBkaSBsaXN0aW5vPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tLXJlZ3VsYXIiPgogICAgICAgICAg4oKsMTgsMDAKICAgICAgICA8L3NwYW4+PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJwcmljZV9fc2FsZSI+CiAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIHZpc3VhbGx5LWhpZGRlbi0taW5saW5lIj5QcmV6em8gc2NvbnRhdG88L3NwYW4+CiAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tLXNhbGUgcHJpY2UtaXRlbS0tbGFzdCI+CiAgICAgICAg4oKsMTgsMDAKICAgICAgPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4gdmlzdWFsbHktaGlkZGVuLS1pbmxpbmUiPlByZXp6byBkaSBsaXN0aW5vPC9zcGFuPgogICAgICAgIDxzcGFuPgogICAgICAgICAgPHMgY2xhc3M9InByaWNlLWl0ZW0gcHJpY2UtaXRlbS0tcmVndWxhciI+CiAgICAgICAgICAgIAogICAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgIDwvcz4KICAgICAgICA8L3NwYW4+PC9kaXY+CiAgICA8c21hbGwgY2xhc3M9InVuaXQtcHJpY2UgY2FwdGlvbiBoaWRkZW4iPgogICAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIj5QcmV6em8gdW5pdGFyaW88L3NwYW4+CiAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tdW5pdCBwcmljZS1pdGVtLS1sYXN0Ij4KICAgICAgICA8c3Bhbj48L3NwYW4+CiAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49InRydWUiPi88L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiI+Jm5ic3A7cGVyJm5ic3A7PC9zcGFuPgogICAgICAgIDxzcGFuPgogICAgICAgIDwvc3Bhbj4KICAgICAgPC9zcGFuPgogICAgPC9zbWFsbD4KICA8L2Rpdj48L2Rpdj4KCjwvZGl2PjxhIGhyZWY9Ii9wcm9kdWN0cy8xLTEtc29mdC1zaG93ZXIiIGNsYXNzPSJxdWljay1hZGQgcXVpY2stYWRkLWV5ZSBxdWljay1hZGQtbW9iaWxlIGV4dHJhLWxhcmdlLXVwLWhpZGUiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSIgY2xhc3M9Imljb24gaWNvbi1leWUiIHdpZHRoPSIyNC43NjQiIGhlaWdodD0iMTMuMzE4Ij4KICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9Ii43IiBjbGlwLXBhdGg9InVybCgjcHJlZml4X19hKSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMiAxKSI+CiAgPHBhdGggZD0iTTEwLjQ4LjQ0aC4wMzdhMTEuOTgzIDExLjk4MyAwIDAgMSA1LjY0MSAxLjQyNEExMi4yNTMgMTIuMjUzIDAgMCAxIDE4LjUgMy40OTdhMTIuNDU3IDEyLjQ1NyAwIDAgMSAxLjczNCAxLjg5NCAxMi40MjIgMTIuNDIyIDAgMCAxLTEuNzI4IDIuMTA2IDEyLjA3NyAxMi4wNzcgMCAwIDEtMi4zNzkgMS44MSAxMS42NzYgMTEuNjc2IDAgMCAxLTIuNzcxIDEuMTYxIDExLjYgMTEuNiAwIDAgMS0zLjA2My40MWgtLjAzOWExMS42MTMgMTEuNjEzIDAgMCAxLTIuOTc2LS40IDExLjY2MyAxMS42NjMgMCAwIDEtMi43LTEuMTA2IDEyLjA0NyAxMi4wNDcgMCAwIDEtMi4zMzUtMS43MTcgMTIuNCAxMi40IDAgMCAxLTEuNzEyLTIgMTIuNDY0IDEyLjQ2NCAwIDAgMSAxLjc1My0yIDEyLjI3MSAxMi4yNzEgMCAwIDEgMi4zODgtMS43MjMgMTEuOTgyIDExLjk4MiAwIDAgMSA1LjgtMS40OTNabTAtLjQ0QTEyLjU4NyAxMi41ODcgMCAwIDAgMCA1LjY1NWExMi4zIDEyLjMgMCAwIDAgMTAuMjUzIDUuNjYzaC4wNGExMi4zMjQgMTIuMzI0IDAgMCAwIDEwLjQ3MS01Ljk0MkExMi41NzUgMTIuNTc1IDAgMCAwIDEwLjUxOC0uMDAzaC0uMDQxIi8+CiAgPHBhdGggZD0iTTEwLjM4Mi43MzRhNC43NDEgNC43NDEgMCAwIDEgMi43LjgzOSA0Ljg4OSA0Ljg4OSAwIDAgMSAuNzE1LjYgNC45NSA0Ljk1IDAgMCAxIDEuMzE5IDIuNDkzIDUuMDggNS4wOCAwIDAgMSAwIDEuOTkxIDQuOTQ4IDQuOTQ4IDAgMCAxLTEuMzE5IDIuNDkzIDQuODg5IDQuODg5IDAgMCAxLS43MTUuNiA0LjggNC44IDAgMCAxLS44Mi40NTMgNC43NDkgNC43NDkgMCAwIDEtMy43NTMgMCA0LjggNC44IDAgMCAxLS44Mi0uNDUzIDQuOTE1IDQuOTE1IDAgMCAxLTEuMzA2LTEuMzMxIDQuOTQ5IDQuOTQ5IDAgMCAxLS43MjgtMS43NjMgNS4wOCA1LjA4IDAgMCAxIDAtMS45OTEgNC45NDQgNC45NDQgMCAwIDEgMS4zMTktMi40OTMgNC44ODkgNC44ODkgMCAwIDEgLjcxNS0uNiA0LjggNC44IDAgMCAxIC44Mi0uNDUzIDQuNzMgNC43MyAwIDAgMSAxLjg3Ny0uMzg2bTAtLjVhNS40MjkgNS40MjkgMCAxIDAgNS4zMyA1LjQyOSA1LjM4IDUuMzggMCAwIDAtNS4zMy01LjQyOSIvPgogIDxwYXRoIGQ9Ik0xMy4wODMgNS43NTlhMi42ODMgMi42ODMgMCAxIDEtMi42ODItMi43MzIgMi43MDcgMi43MDcgMCAwIDEgMi42ODIgMi43MzIiLz4KICA8L2c+Cjwvc3ZnPgogIDwvYT48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fY29udGVudC1ob3ZlciI+CiAgICAgICAgICAgICAgICA8IS0tIFN3eW0gV2lzaGxpc3QgUGx1cyBFUEkgQnV0dG9uIHdpdGggZGVmYXVsdCBmaXJzdCB2YXJpYW50IC0tPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBhcmlhLWxhYmVsPSJBZGQgdG8gV2lzaGxpc3QiIGRhdGEtd2l0aC1lcGk9InRydWUiIGNsYXNzPSJzd3ltLWJ1dHRvbiBzd3ltLWFkZC10by13aXNobGlzdC12aWV3LXByb2R1Y3QgcHJvZHVjdF8xMDU0Mjc3NTczMDUwOSIgZGF0YS1zd2FjdGlvbj0iYWRkVG9XaXNobGlzdCIgZGF0YS1wcm9kdWN0LWlkPSIxMDU0Mjc3NTczMDUwOSIgZGF0YS12YXJpYW50LWlkPSI1MzM4MjM5NjI0ODM5NyIgZGF0YS1wcm9kdWN0LXVybD0iaHR0cHM6Ly93d3cuc3RhbmhvbWUuaXQvcHJvZHVjdHMvMS0xLXNvZnQtc2hvd2VyIj4KICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgPCEtLSBTd3ltIFdpc2hsaXN0IFBsdXMgRVBJIEJ1dHRvbi0tPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9faW5mb3JtYXRpb24iPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2hlYWRpbmciPgogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNFVCAxKzEgU09GVCBTSE9XRVIKICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fdmFyaWFudC10aXRsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDErMSBTT0ZUIFNIT1dFUgogICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InF1aWNrLWFkZCBuby1qcy1oaWRkZW4iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iL3Byb2R1Y3RzLzEtMS1zb2Z0LXNob3dlciIgY2xhc3M9InF1aWNrLWFkZF9fbGluayI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0icXVpY2stYWRkX19zdWJtaXQgYnV0dG9uIGJ1dHRvbi0tZnVsbC13aWR0aCBidXR0b24tLXByaW1hcnkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTQ09QUkkgREkgUEnDmQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+
Cgo8bGluayBocmVmPSIvL2Nkbi5zaG9waWZ5LmNvbS9zL2ZpbGVzLzEvMDg0Ni84ODg2LzM1NjUvdC8zL2Fzc2V0cy9jb21wb25lbnQtcmF0aW5nLmNzcz92PTE1Nzc3MTg1NDU5MjEzNzEzNzg0MTczMDEwNzE1OSIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KPGxpbmsgaHJlZj0iLy9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzA4NDYvODg4Ni8zNTY1L3QvMy9hc3NldHMvY29tcG9uZW50LXZvbHVtZS1wcmljaW5nLmNzcz92PTU3NjUxNDYwOTU0MzA2Mzk1MzMxNzMwMTA3MTU1IiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgoKCgoKPHNjcmlwdD4KICAvLyBDcmVhdGUgUHJvZHVjdCBMaXN0IGFycmF5CiAgaWYgKCFheFByb2R1Y3RMaXN0KSB7CiAgICB2YXIgYXhQcm9kdWN0TGlzdCA9IFtdOwogIH0KCiAgLy8gQ3JlYXRlIFByb2R1Y3QgY2xpY2sgYXJyYXkKICBpZiAoIWF4SXRlbSkgewogICAgdmFyIGF4SXRlbSA9IFtdOwogIH0KCiAgaWYgKCFsaXN0TmFtZSkgewogICAgdmFyIGxpc3ROYW1lID0gJyc7CiAgfSBlbHNlIHsKICAgIGxpc3ROYW1lID0gJyc7CiAgfQoKICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewogICAgLy8gT25jbGljayBldmVudAogICAgdmFyIHByb2R1Y3RDYXJkcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5ndG0tY2FyZC1wcm9kdWN0LTEtMS10cnktaXQtMTAwMC1tbC10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYicpOwogICAgcHJvZHVjdENhcmRzLmZvckVhY2goZnVuY3Rpb24gKGNhcmQpIHsKICAgICAgaWYgKGNhcmQuY2xvc2VzdCgnLmd0bS10cmFja2luZy1jcm9zc3NlbGwnKSAhPT0gbnVsbCkgewogICAgICAgIGxpc3ROYW1lID0gY2FyZC5jbG9zZXN0KCcuZ3RtLXRyYWNraW5nLWNyb3Nzc2VsbCcpLmdldEF0dHJpYnV0ZSgnZ3RtLXRyYWNraW5nLWNyb3Nzc2VsbCcpOwogICAgICB9CiAgICAgIGNhcmQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbiAoZXZlbnQpIHsKICAgICAgICB2YXIgcHJvZHVjdERhdGEgPSBKU09OLnBhcnNlKGNhcmQuZ2V0QXR0cmlidXRlKCdndG0tY2FyZC1kYXRhJykpOwogICAgICAgIC8vIE5lZWQgdG8gcHVzaCBsaXN0TmFtZQogICAgICAgIHByb2R1Y3REYXRhWydpdGVtX2xpc3RfbmFtZSddID0gbGlzdE5hbWU7CiAgICAgICAgLy8gUHVzaCBjbGlja2VkIHByb2R1Y3QKICAgICAgICBheEl0ZW0ucHVzaChwcm9kdWN0RGF0YSk7CiAgICAgICAgLy8gU2VuZCAiY2xpY2siIGV2ZW50CiAgICAgICAgZGF0YUxheWVyLnB1c2goewogICAgICAgICAgZXZlbnQ6ICdheF9wcm9kdWN0X2NsaWNrJywKICAgICAgICAgIGF4SXRlbTogYXhJdGVtCiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgfSk7CgogICAgLy8gUHVzaCBhbGwgcHJvZHVjdCBpbiBkYXRhTGF5ZXIKICAgIGF4UHJvZHVjdExpc3QucHVzaCh7CiAgICAgIGl0ZW1fbmFtZTogJzErMSBUUlktSVQgMTAwMCBNTCcsCiAgICAgIGl0ZW1faWQ6ICdJVEFfUFJERTAwMDM3OTA2VycsCiAgICAgIHByaWNlOiAn4oKsMTUsMDAnLAogICAgICBpdGVtX2JyYW5kOiAnU3RhbmhvbWUnLAogICAgICBpdGVtX2NhdGVnb3J5MTogJ1N0YW5ob21lJywKICAgICAgaXRlbV9jYXRlZ29yeTI6ICdJIHByb2RvdHRpIFN0YW5ob21lJywKICAgICAgaXRlbV9jYXRlZ29yeTM6ICcnLAogICAgICBpdGVtX3ZhcmlhbnQ6ICdEZWZhdWx0IFRpdGxlJywKICAgICAgaXRlbV9saXN0X25hbWU6IGxpc3ROYW1lCiAgICB9KTsKCiAgICAvLyBTZW5kICJmaW5pc2hlZCIgZXZlbnQKICAgIGlmIChheFByb2R1Y3RMaXN0Lmxlbmd0aCA9PT0gd2luZG93LnRoZW1lLml0ZW1zX2NvdW50KSB7CiAgICAgIGRhdGFMYXllci5wdXNoKHsKICAgICAgICBldmVudDogJ2F4X3Byb2R1Y3RfbGlzdF9jb21wbGV0ZScsCiAgICAgICAgYXhQcm9kdWN0TGlzdDogYXhQcm9kdWN0TGlzdCwKICAgICAgfSk7CiAgICB9CiAgfSk7CgogIGZ1bmN0aW9uIGNsaWNrUHJvZHVjdChwcm9kdWN0RGF0YSkge30KPC9zY3JpcHQ+CgoKPHNjcmlwdCBkZWZlcj4KICBmdW5jdGlvbiBzd3ltQ2FsbGJhY2tGbihzd2F0KSB7CiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdzd3ltOmNvbGxlY3Rpb25zLWxvYWRlZCcsIGZ1bmN0aW9uICgpIHsKICAgICAgc3dhdC5pbml0aWFsaXplQWN0aW9uQnV0dG9ucygnPDxDb2xsZWN0aW9ucyBHcmlkIFBBUkVOVCBTZWxlY3RvciA+PicpOwogICAgfSk7CiAgfQogIGlmICghd2luZG93LlN3eW1DYWxsYmFja3MpIHsKICAgIHdpbmRvdy5Td3ltQ2FsbGJhY2tzID0gW107CiAgfQogIHdpbmRvdy5Td3ltQ2FsbGJhY2tzLnB1c2goc3d5bUNhbGxiYWNrRm4pOwo8L3NjcmlwdD4KCgogICAgCgogICAgPGRpdiBjbGFzcz0iY2FyZC13cmFwcGVyIHByb2R1Y3QtbWluaWF0dXJlIHByb2R1Y3QtY2FyZC13cmFwcGVyIHVuZGVybGluZS1saW5rcy1ob3ZlciBndG0tY2FyZC1wcm9kdWN0IGd0bS1jYXJkLXByb2R1Y3QtMS0xLXRyeS1pdC0xMDAwLW1sLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiIGNhcmQtcHJvZHVjdCIgZ3RtLWNhcmQtZGF0YT0nCiAgICAgICAgewogICAgICAgICAgICAiaXRlbV9uYW1lIjogIjErMSBUUlktSVQgMTAwMCBNTCIsCiAgICAgICAgICAgICJpdGVtX2lkIjogIklUQV9QUkRFMDAwMzc5MDZXIiwKICAgICAgICAgICAgInByaWNlIjogIuKCrDE1LDAwIiwKICAgICAgICAgICAgIml0ZW1fYnJhbmQiOiAiU3RhbmhvbWUiLAogICAgICAgICAgICAiaXRlbV9jYXRlZ29yeTEiOiAiIiwKICAgICAgICAgICAgIml0ZW1fY2F0ZWdvcnkyIjogIm91ci1zdGFuaG9tZS1wcm9kdWN0cyIsCiAgICAgICAgICAgICJpdGVtX2NhdGVnb3J5MyI6IG51bGwsCiAgICAgICAgICAgICJpdGVtX3ZhcmlhbnQiOiAiRGVmYXVsdCBUaXRsZSIKICAgICAgICB9CiAgICAnIGRhdGEtcHJvZHVjdC1pZD0iMTA1NDI3NzUxNDA2ODUiIGRhdGEtcHJvZHVjdC1uYW1lPSIxKzEgVFJZLUlUIDEwMDAgTUwiCiAgZGF0YS1wcm9kdWN0LXByaWNlPSIxNS4wIgogIGRhdGEtcHJvZHVjdC1icmFuZD0iU3RhbmhvbWUiCiAgZGF0YS1wcm9kdWN0LWNhdGVnb3J5PSIiCiAgZGF0YS1wcm9kdWN0LXBvc2l0aW9uPSIiPgogICAgICAgIDxkaXYKICAgICAgICAgICAgICAgIGNsYXNzPSIKICAgICAgICBjYXJkIGNhcmQtLXN0YW5kYXJkCiAgICAgICAgIGNhcmQtLW1lZGlhCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICIKICAgICAgICAgICAgICAgIHN0eWxlPSItLXJhdGlvLXBlcmNlbnQ6IDEwMCU7IgogICAgICAgID4KICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJjYXJkX19pbm5lciBjb2xvci1iYWNrZ3JvdW5kLTEgZ3JhZGllbnQgcmF0aW8iCiAgICAgICAgICAgICAgICAgICAgc3R5bGU9Ii0tcmF0aW8tcGVyY2VudDogMTAwJTsiCiAgICAgICAgICAgID48ZGl2IGNsYXNzPSJjYXJkX19tZWRpYSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1lZGlhIG1lZGlhLS10cmFuc3BhcmVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmNzZXQ9Ii8vY2RuLnNob3BpZnkuY29tL3MvZmlsZXMvMS8wODQ2Lzg4ODYvMzU2NS9maWxlcy9UcnktSXQuanBnP3Y9MTc3MTMyMDA1MCZ3aWR0aD0xNjUgMTY1dywvL2Nkbi5zaG9waWZ5LmNvbS9zL2ZpbGVzLzEvMDg0Ni84ODg2LzM1NjUvZmlsZXMvVHJ5LUl0LmpwZz92PTE3NzEzMjAwNTAmd2lkdGg9MzYwIDM2MHcsLy9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzA4NDYvODg4Ni8zNTY1L2ZpbGVzL1RyeS1JdC5qcGc/dj0xNzcxMzIwMDUwJndpZHRoPTUzMyA1MzN3LC8vY2RuLnNob3BpZnkuY29tL3MvZmlsZXMvMS8wODQ2Lzg4ODYvMzU2NS9maWxlcy9UcnktSXQuanBnP3Y9MTc3MTMyMDA1MCZ3aWR0aD03MjAgNzIwdywvL2Nkbi5zaG9waWZ5LmNvbS9zL2ZpbGVzLzEvMDg0Ni84ODg2LzM1NjUvZmlsZXMvVHJ5LUl0LmpwZz92PTE3NzEzMjAwNTAmd2lkdGg9OTQwIDk0MHcsLy9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzA4NDYvODg4Ni8zNTY1L2ZpbGVzL1RyeS1JdC5qcGc/dj0xNzcxMzIwMDUwJndpZHRoPTEwNjYgMTA2NncsLy9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzA4NDYvODg4Ni8zNTY1L2ZpbGVzL1RyeS1JdC5qcGc/dj0xNzcxMzIwMDUwIDEyMDB3CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9Ii8vY2RuLnNob3BpZnkuY29tL3MvZmlsZXMvMS8wODQ2Lzg4ODYvMzU2NS9maWxlcy9UcnktSXQuanBnP3Y9MTc3MTMyMDA1MCZ3aWR0aD01MzMiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVzPSIobWluLXdpZHRoOiAxNjAwcHgpIDM2N3B4LCAobWluLXdpZHRoOiA5OTBweCkgY2FsYygoMTAwdncgLSAxMzBweCkgLyA0KSwgKG1pbi13aWR0aDogNzUwcHgpIGNhbGMoKDEwMHZ3IC0gMTIwcHgpIC8gMyksIGNhbGMoKDEwMHZ3IC0gMzVweCkgLyAyKSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PSIxKzEgVFJZLUlUIDEwMDAgTUwiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJtb3Rpb24tcmVkdWNlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkaW5nPSJsYXp5IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRpbmc9ImxhenkiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD0iMTIwMCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PSIxMjAwIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PjxkaXYgY2xhc3M9ImNhcmRfX2NvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgIDwhLS0gU3d5bSBXaXNobGlzdCBQbHVzIEVQSSBCdXR0b24gd2l0aCBkZWZhdWx0IGZpcnN0IHZhcmlhbnQgLS0+CiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBhcmlhLWxhYmVsPSJBZGQgdG8gV2lzaGxpc3QiIGRhdGEtd2l0aC1lcGk9InRydWUiIGNsYXNzPSJzd3ltLWJ1dHRvbiBzd3ltLWFkZC10by13aXNobGlzdC12aWV3LXByb2R1Y3QgcHJvZHVjdF8xMDU0Mjc3NTE0MDY4NSIgZGF0YS1zd2FjdGlvbj0iYWRkVG9XaXNobGlzdCIgZGF0YS1wcm9kdWN0LWlkPSIxMDU0Mjc3NTE0MDY4NSIgZGF0YS12YXJpYW50LWlkPSI1MzM4MjM5NTQyOTE5NyIgZGF0YS1wcm9kdWN0LXVybD0iaHR0cHM6Ly93d3cuc3RhbmhvbWUuaXQvcHJvZHVjdHMvMS0xLXRyeS1pdC0xMDAwLW1sIj4KICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICA8IS0tIFN3eW0gV2lzaGxpc3QgUGx1cyBFUEkgQnV0dG9uLS0+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fYmFkZ2UgdG9wIGxlZnQiPjwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19jb250ZW50Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2luZm9ybWF0aW9uIj48ZGl2IGNsYXNzPSJjYXJkX190eXBlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0YW5ob21lCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjxwIGNsYXNzPSJjYXJkX19oZWFkaW5nIGg1IiAgaWQ9InRpdGxlLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTEwNTQyNzc1MTQwNjg1IiA+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii9wcm9kdWN0cy8xLTEtdHJ5LWl0LTEwMDAtbWwiIGlkPSJDYXJkTGluay10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi0xMDU0Mjc3NTE0MDY4NSIgY2xhc3M9ImZ1bGwtdW5zdHlsZWQtbGluayBmdWxsLXVuc3R5bGVkLWxpbmstcHJvZHVjdCIgYXJpYS1sYWJlbGxlZGJ5PSJDYXJkTGluay10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi0xMDU0Mjc3NTE0MDY4NSBCYWRnZS10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi0xMDU0Mjc3NTE0MDY4NSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTRVQgMSsxIFRSWSBJVCAKICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDwvcD4KCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fdmFyaWFudC10aXRsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDErMSBUUlktSVQgMTAwMCBNTAogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaW5mb3JtYXRpb24iPjxzcGFuIGNsYXNzPSJjYXB0aW9uLWxhcmdlIGxpZ2h0Ij48L3NwYW4+CgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19pbmZvcm1hdGlvbi1mb3JtLXJhdGluZy1wcmljZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyYXRpbmctcHJpY2UiPgo8ZGl2CiAgY2xhc3M9IgogICAgcHJpY2UgIgo+CiAgPGRpdiBjbGFzcz0icHJpY2VfX2NvbnRhaW5lciI+PGRpdiBjbGFzcz0icHJpY2VfX3JlZ3VsYXIiPjxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4gdmlzdWFsbHktaGlkZGVuLS1pbmxpbmUiPlByZXp6byBkaSBsaXN0aW5vPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tLXJlZ3VsYXIiPgogICAgICAgICAg4oKsMTUsMDAKICAgICAgICA8L3NwYW4+PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJwcmljZV9fc2FsZSI+CiAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIHZpc3VhbGx5LWhpZGRlbi0taW5saW5lIj5QcmV6em8gc2NvbnRhdG88L3NwYW4+CiAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tLXNhbGUgcHJpY2UtaXRlbS0tbGFzdCI+CiAgICAgICAg4oKsMTUsMDAKICAgICAgPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4gdmlzdWFsbHktaGlkZGVuLS1pbmxpbmUiPlByZXp6byBkaSBsaXN0aW5vPC9zcGFuPgogICAgICAgIDxzcGFuPgogICAgICAgICAgPHMgY2xhc3M9InByaWNlLWl0ZW0gcHJpY2UtaXRlbS0tcmVndWxhciI+CiAgICAgICAgICAgIAogICAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgIDwvcz4KICAgICAgICA8L3NwYW4+PC9kaXY+CiAgICA8c21hbGwgY2xhc3M9InVuaXQtcHJpY2UgY2FwdGlvbiBoaWRkZW4iPgogICAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIj5QcmV6em8gdW5pdGFyaW88L3NwYW4+CiAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tdW5pdCBwcmljZS1pdGVtLS1sYXN0Ij4KICAgICAgICA8c3Bhbj48L3NwYW4+CiAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49InRydWUiPi88L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiI+Jm5ic3A7cGVyJm5ic3A7PC9zcGFuPgogICAgICAgIDxzcGFuPgogICAgICAgIDwvc3Bhbj4KICAgICAgPC9zcGFuPgogICAgPC9zbWFsbD4KICA8L2Rpdj48L2Rpdj4KCjwvZGl2PjxhIGhyZWY9Ii9wcm9kdWN0cy8xLTEtdHJ5LWl0LTEwMDAtbWwiIGNsYXNzPSJxdWljay1hZGQgcXVpY2stYWRkLWV5ZSBxdWljay1hZGQtbW9iaWxlIGV4dHJhLWxhcmdlLXVwLWhpZGUiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSIgY2xhc3M9Imljb24gaWNvbi1leWUiIHdpZHRoPSIyNC43NjQiIGhlaWdodD0iMTMuMzE4Ij4KICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9Ii43IiBjbGlwLXBhdGg9InVybCgjcHJlZml4X19hKSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMiAxKSI+CiAgPHBhdGggZD0iTTEwLjQ4LjQ0aC4wMzdhMTEuOTgzIDExLjk4MyAwIDAgMSA1LjY0MSAxLjQyNEExMi4yNTMgMTIuMjUzIDAgMCAxIDE4LjUgMy40OTdhMTIuNDU3IDEyLjQ1NyAwIDAgMSAxLjczNCAxLjg5NCAxMi40MjIgMTIuNDIyIDAgMCAxLTEuNzI4IDIuMTA2IDEyLjA3NyAxMi4wNzcgMCAwIDEtMi4zNzkgMS44MSAxMS42NzYgMTEuNjc2IDAgMCAxLTIuNzcxIDEuMTYxIDExLjYgMTEuNiAwIDAgMS0zLjA2My40MWgtLjAzOWExMS42MTMgMTEuNjEzIDAgMCAxLTIuOTc2LS40IDExLjY2MyAxMS42NjMgMCAwIDEtMi43LTEuMTA2IDEyLjA0NyAxMi4wNDcgMCAwIDEtMi4zMzUtMS43MTcgMTIuNCAxMi40IDAgMCAxLTEuNzEyLTIgMTIuNDY0IDEyLjQ2NCAwIDAgMSAxLjc1My0yIDEyLjI3MSAxMi4yNzEgMCAwIDEgMi4zODgtMS43MjMgMTEuOTgyIDExLjk4MiAwIDAgMSA1LjgtMS40OTNabTAtLjQ0QTEyLjU4NyAxMi41ODcgMCAwIDAgMCA1LjY1NWExMi4zIDEyLjMgMCAwIDAgMTAuMjUzIDUuNjYzaC4wNGExMi4zMjQgMTIuMzI0IDAgMCAwIDEwLjQ3MS01Ljk0MkExMi41NzUgMTIuNTc1IDAgMCAwIDEwLjUxOC0uMDAzaC0uMDQxIi8+CiAgPHBhdGggZD0iTTEwLjM4Mi43MzRhNC43NDEgNC43NDEgMCAwIDEgMi43LjgzOSA0Ljg4OSA0Ljg4OSAwIDAgMSAuNzE1LjYgNC45NSA0Ljk1IDAgMCAxIDEuMzE5IDIuNDkzIDUuMDggNS4wOCAwIDAgMSAwIDEuOTkxIDQuOTQ4IDQuOTQ4IDAgMCAxLTEuMzE5IDIuNDkzIDQuODg5IDQuODg5IDAgMCAxLS43MTUuNiA0LjggNC44IDAgMCAxLS44Mi40NTMgNC43NDkgNC43NDkgMCAwIDEtMy43NTMgMCA0LjggNC44IDAgMCAxLS44Mi0uNDUzIDQuOTE1IDQuOTE1IDAgMCAxLTEuMzA2LTEuMzMxIDQuOTQ5IDQuOTQ5IDAgMCAxLS43MjgtMS43NjMgNS4wOCA1LjA4IDAgMCAxIDAtMS45OTEgNC45NDQgNC45NDQgMCAwIDEgMS4zMTktMi40OTMgNC44ODkgNC44ODkgMCAwIDEgLjcxNS0uNiA0LjggNC44IDAgMCAxIC44Mi0uNDUzIDQuNzMgNC43MyAwIDAgMSAxLjg3Ny0uMzg2bTAtLjVhNS40MjkgNS40MjkgMCAxIDAgNS4zMyA1LjQyOSA1LjM4IDUuMzggMCAwIDAtNS4zMy01LjQyOSIvPgogIDxwYXRoIGQ9Ik0xMy4wODMgNS43NTlhMi42ODMgMi42ODMgMCAxIDEtMi42ODItMi43MzIgMi43MDcgMi43MDcgMCAwIDEgMi42ODIgMi43MzIiLz4KICA8L2c+Cjwvc3ZnPgogIDwvYT48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fY29udGVudC1ob3ZlciI+CiAgICAgICAgICAgICAgICA8IS0tIFN3eW0gV2lzaGxpc3QgUGx1cyBFUEkgQnV0dG9uIHdpdGggZGVmYXVsdCBmaXJzdCB2YXJpYW50IC0tPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBhcmlhLWxhYmVsPSJBZGQgdG8gV2lzaGxpc3QiIGRhdGEtd2l0aC1lcGk9InRydWUiIGNsYXNzPSJzd3ltLWJ1dHRvbiBzd3ltLWFkZC10by13aXNobGlzdC12aWV3LXByb2R1Y3QgcHJvZHVjdF8xMDU0Mjc3NTE0MDY4NSIgZGF0YS1zd2FjdGlvbj0iYWRkVG9XaXNobGlzdCIgZGF0YS1wcm9kdWN0LWlkPSIxMDU0Mjc3NTE0MDY4NSIgZGF0YS12YXJpYW50LWlkPSI1MzM4MjM5NTQyOTE5NyIgZGF0YS1wcm9kdWN0LXVybD0iaHR0cHM6Ly93d3cuc3RhbmhvbWUuaXQvcHJvZHVjdHMvMS0xLXRyeS1pdC0xMDAwLW1sIj4KICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgPCEtLSBTd3ltIFdpc2hsaXN0IFBsdXMgRVBJIEJ1dHRvbi0tPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9faW5mb3JtYXRpb24iPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2hlYWRpbmciPgogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNFVCAxKzEgVFJZIElUCiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX3ZhcmlhbnQtdGl0bGUiPgogICAgICAgICAgICAgICAgICAgICAgICAxKzEgVFJZLUlUIDEwMDAgTUwKICAgICAgICAgICAgICAgICAgICA8L2Rpdj48dWwgY2xhc3M9Imxpc3QtdW5zdHlsZWQgY2FyZF9fdmFyaWFudC1rZXlfcG9pbnRzIj48bGk+PHNwYW4+RWZmaWNpZW50ZSBjb250cm8gbG8gc3BvcmNvIG9zdGluYXRvLjwvc3Bhbj48L2xpPjxsaT48c3Bhbj5TaSBhZGF0dGEgYSBkaXZlcnNpIHRpcGkgZGkgdGVzc3V0aS48L3NwYW4+PC9saT48bGk+PHNwYW4+Q29udGllbmUgb2x0cmUgaWwgNzclIGRpIGluZ3JlZGllbnRpIGRpIG9yaWdpbmUgbmF0dXJhbGUuPC9zcGFuPjwvbGk+PC91bD48L2Rpdj48ZGl2IGNsYXNzPSJxdWljay1hZGQgbm8tanMtaGlkZGVuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii9wcm9kdWN0cy8xLTEtdHJ5LWl0LTEwMDAtbWwiIGNsYXNzPSJxdWljay1hZGRfX2xpbmsiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InF1aWNrLWFkZF9fc3VibWl0IGJ1dHRvbiBidXR0b24tLWZ1bGwtd2lkdGggYnV0dG9uLS1wcmltYXJ5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0NPUFJJIERJIFBJw5kKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj48L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pg==
Cgo8bGluayBocmVmPSIvL2Nkbi5zaG9waWZ5LmNvbS9zL2ZpbGVzLzEvMDg0Ni84ODg2LzM1NjUvdC8zL2Fzc2V0cy9jb21wb25lbnQtcmF0aW5nLmNzcz92PTE1Nzc3MTg1NDU5MjEzNzEzNzg0MTczMDEwNzE1OSIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KPGxpbmsgaHJlZj0iLy9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzA4NDYvODg4Ni8zNTY1L3QvMy9hc3NldHMvY29tcG9uZW50LXZvbHVtZS1wcmljaW5nLmNzcz92PTU3NjUxNDYwOTU0MzA2Mzk1MzMxNzMwMTA3MTU1IiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgoKCgoKPHNjcmlwdD4KICAvLyBDcmVhdGUgUHJvZHVjdCBMaXN0IGFycmF5CiAgaWYgKCFheFByb2R1Y3RMaXN0KSB7CiAgICB2YXIgYXhQcm9kdWN0TGlzdCA9IFtdOwogIH0KCiAgLy8gQ3JlYXRlIFByb2R1Y3QgY2xpY2sgYXJyYXkKICBpZiAoIWF4SXRlbSkgewogICAgdmFyIGF4SXRlbSA9IFtdOwogIH0KCiAgaWYgKCFsaXN0TmFtZSkgewogICAgdmFyIGxpc3ROYW1lID0gJyc7CiAgfSBlbHNlIHsKICAgIGxpc3ROYW1lID0gJyc7CiAgfQoKICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewogICAgLy8gT25jbGljayBldmVudAogICAgdmFyIHByb2R1Y3RDYXJkcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5ndG0tY2FyZC1wcm9kdWN0LTJ4LWFudGktb2Rvci1zcHJheS10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYicpOwogICAgcHJvZHVjdENhcmRzLmZvckVhY2goZnVuY3Rpb24gKGNhcmQpIHsKICAgICAgaWYgKGNhcmQuY2xvc2VzdCgnLmd0bS10cmFja2luZy1jcm9zc3NlbGwnKSAhPT0gbnVsbCkgewogICAgICAgIGxpc3ROYW1lID0gY2FyZC5jbG9zZXN0KCcuZ3RtLXRyYWNraW5nLWNyb3Nzc2VsbCcpLmdldEF0dHJpYnV0ZSgnZ3RtLXRyYWNraW5nLWNyb3Nzc2VsbCcpOwogICAgICB9CiAgICAgIGNhcmQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbiAoZXZlbnQpIHsKICAgICAgICB2YXIgcHJvZHVjdERhdGEgPSBKU09OLnBhcnNlKGNhcmQuZ2V0QXR0cmlidXRlKCdndG0tY2FyZC1kYXRhJykpOwogICAgICAgIC8vIE5lZWQgdG8gcHVzaCBsaXN0TmFtZQogICAgICAgIHByb2R1Y3REYXRhWydpdGVtX2xpc3RfbmFtZSddID0gbGlzdE5hbWU7CiAgICAgICAgLy8gUHVzaCBjbGlja2VkIHByb2R1Y3QKICAgICAgICBheEl0ZW0ucHVzaChwcm9kdWN0RGF0YSk7CiAgICAgICAgLy8gU2VuZCAiY2xpY2siIGV2ZW50CiAgICAgICAgZGF0YUxheWVyLnB1c2goewogICAgICAgICAgZXZlbnQ6ICdheF9wcm9kdWN0X2NsaWNrJywKICAgICAgICAgIGF4SXRlbTogYXhJdGVtCiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgfSk7CgogICAgLy8gUHVzaCBhbGwgcHJvZHVjdCBpbiBkYXRhTGF5ZXIKICAgIGF4UHJvZHVjdExpc3QucHVzaCh7CiAgICAgIGl0ZW1fbmFtZTogJzJYIEFOVEkgT0RPUiBTUFJBWScsCiAgICAgIGl0ZW1faWQ6ICdJVEFfUFJERTAwMDM3ODYyVycsCiAgICAgIHByaWNlOiAn4oKsMTgsOTAnLAogICAgICBpdGVtX2JyYW5kOiAnU3RhbmhvbWUnLAogICAgICBpdGVtX2NhdGVnb3J5MTogJ1N0YW5ob21lJywKICAgICAgaXRlbV9jYXRlZ29yeTI6ICdJIHByb2RvdHRpIFN0YW5ob21lJywKICAgICAgaXRlbV9jYXRlZ29yeTM6ICcnLAogICAgICBpdGVtX3ZhcmlhbnQ6ICdEZWZhdWx0IFRpdGxlJywKICAgICAgaXRlbV9saXN0X25hbWU6IGxpc3ROYW1lCiAgICB9KTsKCiAgICAvLyBTZW5kICJmaW5pc2hlZCIgZXZlbnQKICAgIGlmIChheFByb2R1Y3RMaXN0Lmxlbmd0aCA9PT0gd2luZG93LnRoZW1lLml0ZW1zX2NvdW50KSB7CiAgICAgIGRhdGFMYXllci5wdXNoKHsKICAgICAgICBldmVudDogJ2F4X3Byb2R1Y3RfbGlzdF9jb21wbGV0ZScsCiAgICAgICAgYXhQcm9kdWN0TGlzdDogYXhQcm9kdWN0TGlzdCwKICAgICAgfSk7CiAgICB9CiAgfSk7CgogIGZ1bmN0aW9uIGNsaWNrUHJvZHVjdChwcm9kdWN0RGF0YSkge30KPC9zY3JpcHQ+CgoKPHNjcmlwdCBkZWZlcj4KICBmdW5jdGlvbiBzd3ltQ2FsbGJhY2tGbihzd2F0KSB7CiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdzd3ltOmNvbGxlY3Rpb25zLWxvYWRlZCcsIGZ1bmN0aW9uICgpIHsKICAgICAgc3dhdC5pbml0aWFsaXplQWN0aW9uQnV0dG9ucygnPDxDb2xsZWN0aW9ucyBHcmlkIFBBUkVOVCBTZWxlY3RvciA+PicpOwogICAgfSk7CiAgfQogIGlmICghd2luZG93LlN3eW1DYWxsYmFja3MpIHsKICAgIHdpbmRvdy5Td3ltQ2FsbGJhY2tzID0gW107CiAgfQogIHdpbmRvdy5Td3ltQ2FsbGJhY2tzLnB1c2goc3d5bUNhbGxiYWNrRm4pOwo8L3NjcmlwdD4KCgogICAgCgogICAgPGRpdiBjbGFzcz0iY2FyZC13cmFwcGVyIHByb2R1Y3QtbWluaWF0dXJlIHByb2R1Y3QtY2FyZC13cmFwcGVyIHVuZGVybGluZS1saW5rcy1ob3ZlciBndG0tY2FyZC1wcm9kdWN0IGd0bS1jYXJkLXByb2R1Y3QtMngtYW50aS1vZG9yLXNwcmF5LXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiIGNhcmQtcHJvZHVjdCIgZ3RtLWNhcmQtZGF0YT0nCiAgICAgICAgewogICAgICAgICAgICAiaXRlbV9uYW1lIjogIjJYIEFOVEkgT0RPUiBTUFJBWSIsCiAgICAgICAgICAgICJpdGVtX2lkIjogIklUQV9QUkRFMDAwMzc4NjJXIiwKICAgICAgICAgICAgInByaWNlIjogIuKCrDE4LDkwIiwKICAgICAgICAgICAgIml0ZW1fYnJhbmQiOiAiU3RhbmhvbWUiLAogICAgICAgICAgICAiaXRlbV9jYXRlZ29yeTEiOiAiIiwKICAgICAgICAgICAgIml0ZW1fY2F0ZWdvcnkyIjogIm91ci1zdGFuaG9tZS1wcm9kdWN0cyIsCiAgICAgICAgICAgICJpdGVtX2NhdGVnb3J5MyI6IG51bGwsCiAgICAgICAgICAgICJpdGVtX3ZhcmlhbnQiOiAiRGVmYXVsdCBUaXRsZSIKICAgICAgICB9CiAgICAnIGRhdGEtcHJvZHVjdC1pZD0iMTA1MDg5MjIwMjgzNjUiIGRhdGEtcHJvZHVjdC1uYW1lPSIyWCBBTlRJIE9ET1IgU1BSQVkiCiAgZGF0YS1wcm9kdWN0LXByaWNlPSIxOC45IgogIGRhdGEtcHJvZHVjdC1icmFuZD0iU3RhbmhvbWUiCiAgZGF0YS1wcm9kdWN0LWNhdGVnb3J5PSIiCiAgZGF0YS1wcm9kdWN0LXBvc2l0aW9uPSIiPgogICAgICAgIDxkaXYKICAgICAgICAgICAgICAgIGNsYXNzPSIKICAgICAgICBjYXJkIGNhcmQtLXN0YW5kYXJkCiAgICAgICAgIGNhcmQtLW1lZGlhCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICIKICAgICAgICAgICAgICAgIHN0eWxlPSItLXJhdGlvLXBlcmNlbnQ6IDEwMCU7IgogICAgICAgID4KICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJjYXJkX19pbm5lciBjb2xvci1iYWNrZ3JvdW5kLTEgZ3JhZGllbnQgcmF0aW8iCiAgICAgICAgICAgICAgICAgICAgc3R5bGU9Ii0tcmF0aW8tcGVyY2VudDogMTAwJTsiCiAgICAgICAgICAgID48ZGl2IGNsYXNzPSJjYXJkX19tZWRpYSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1lZGlhIG1lZGlhLS10cmFuc3BhcmVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmNzZXQ9Ii8vY2RuLnNob3BpZnkuY29tL3MvZmlsZXMvMS8wODQ2Lzg4ODYvMzU2NS9maWxlcy9JVEFfcHJvZHVjdF9DU18yODI3OS5qcGc/dj0xNzY5NDM3NDcwJndpZHRoPTE2NSAxNjV3LC8vY2RuLnNob3BpZnkuY29tL3MvZmlsZXMvMS8wODQ2Lzg4ODYvMzU2NS9maWxlcy9JVEFfcHJvZHVjdF9DU18yODI3OS5qcGc/dj0xNzY5NDM3NDcwJndpZHRoPTM2MCAzNjB3LC8vY2RuLnNob3BpZnkuY29tL3MvZmlsZXMvMS8wODQ2Lzg4ODYvMzU2NS9maWxlcy9JVEFfcHJvZHVjdF9DU18yODI3OS5qcGc/dj0xNzY5NDM3NDcwJndpZHRoPTUzMyA1MzN3LC8vY2RuLnNob3BpZnkuY29tL3MvZmlsZXMvMS8wODQ2Lzg4ODYvMzU2NS9maWxlcy9JVEFfcHJvZHVjdF9DU18yODI3OS5qcGc/dj0xNzY5NDM3NDcwJndpZHRoPTcyMCA3MjB3LC8vY2RuLnNob3BpZnkuY29tL3MvZmlsZXMvMS8wODQ2Lzg4ODYvMzU2NS9maWxlcy9JVEFfcHJvZHVjdF9DU18yODI3OS5qcGc/dj0xNzY5NDM3NDcwJndpZHRoPTk0MCA5NDB3LC8vY2RuLnNob3BpZnkuY29tL3MvZmlsZXMvMS8wODQ2Lzg4ODYvMzU2NS9maWxlcy9JVEFfcHJvZHVjdF9DU18yODI3OS5qcGc/dj0xNzY5NDM3NDcwJndpZHRoPTEwNjYgMTA2NncsLy9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzA4NDYvODg4Ni8zNTY1L2ZpbGVzL0lUQV9wcm9kdWN0X0NTXzI4Mjc5LmpwZz92PTE3Njk0Mzc0NzAgMTIwMHcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz0iLy9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzA4NDYvODg4Ni8zNTY1L2ZpbGVzL0lUQV9wcm9kdWN0X0NTXzI4Mjc5LmpwZz92PTE3Njk0Mzc0NzAmd2lkdGg9NTMzIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplcz0iKG1pbi13aWR0aDogMTYwMHB4KSAzNjdweCwgKG1pbi13aWR0aDogOTkwcHgpIGNhbGMoKDEwMHZ3IC0gMTMwcHgpIC8gNCksIChtaW4td2lkdGg6IDc1MHB4KSBjYWxjKCgxMDB2dyAtIDEyMHB4KSAvIDMpLCBjYWxjKCgxMDB2dyAtIDM1cHgpIC8gMikiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD0iMlggQU5USSBPRE9SIFNQUkFZIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0ibW90aW9uLXJlZHVjZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZz0ibGF6eSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkaW5nPSJsYXp5IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9IjEyMDAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD0iMTIwMCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj48ZGl2IGNsYXNzPSJjYXJkX19jb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICA8IS0tIFN3eW0gV2lzaGxpc3QgUGx1cyBFUEkgQnV0dG9uIHdpdGggZGVmYXVsdCBmaXJzdCB2YXJpYW50IC0tPgogICAgICAgICAgICAgICAgICAgIDxidXR0b24gYXJpYS1sYWJlbD0iQWRkIHRvIFdpc2hsaXN0IiBkYXRhLXdpdGgtZXBpPSJ0cnVlIiBjbGFzcz0ic3d5bS1idXR0b24gc3d5bS1hZGQtdG8td2lzaGxpc3Qtdmlldy1wcm9kdWN0IHByb2R1Y3RfMTA1MDg5MjIwMjgzNjUiIGRhdGEtc3dhY3Rpb249ImFkZFRvV2lzaGxpc3QiIGRhdGEtcHJvZHVjdC1pZD0iMTA1MDg5MjIwMjgzNjUiIGRhdGEtdmFyaWFudC1pZD0iNTMyNTMxODE2Njk3MDkiIGRhdGEtcHJvZHVjdC11cmw9Imh0dHBzOi8vd3d3LnN0YW5ob21lLml0L3Byb2R1Y3RzLzJ4LWFudGktb2Rvci1zcHJheSI+CiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgPCEtLSBTd3ltIFdpc2hsaXN0IFBsdXMgRVBJIEJ1dHRvbi0tPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2JhZGdlIHRvcCBsZWZ0Ij48L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fY29udGVudCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19pbmZvcm1hdGlvbiI+PGRpdiBjbGFzcz0iY2FyZF9fdHlwZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdGFuaG9tZQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48cCBjbGFzcz0iY2FyZF9faGVhZGluZyBoNSIgIGlkPSJ0aXRsZS10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi0xMDUwODkyMjAyODM2NSIgPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvcHJvZHVjdHMvMngtYW50aS1vZG9yLXNwcmF5IiBpZD0iQ2FyZExpbmstdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItMTA1MDg5MjIwMjgzNjUiIGNsYXNzPSJmdWxsLXVuc3R5bGVkLWxpbmsgZnVsbC11bnN0eWxlZC1saW5rLXByb2R1Y3QiIGFyaWEtbGFiZWxsZWRieT0iQ2FyZExpbmstdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItMTA1MDg5MjIwMjgzNjUgQmFkZ2UtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItMTA1MDg5MjIwMjgzNjUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgMiBBTlRJIE9ET1IgU1BSQVkgIAogICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPC9wPgoKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX192YXJpYW50LXRpdGxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgMlggQU5USSBPRE9SIFNQUkFZCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1pbmZvcm1hdGlvbiI+PHNwYW4gY2xhc3M9ImNhcHRpb24tbGFyZ2UgbGlnaHQiPjwvc3Bhbj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2luZm9ybWF0aW9uLWZvcm0tcmF0aW5nLXByaWNlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJhdGluZy1wcmljZSI+CjxkaXYKICBjbGFzcz0iCiAgICBwcmljZSAiCj4KICA8ZGl2IGNsYXNzPSJwcmljZV9fY29udGFpbmVyIj48ZGl2IGNsYXNzPSJwcmljZV9fcmVndWxhciI+PHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiB2aXN1YWxseS1oaWRkZW4tLWlubGluZSI+UHJlenpvIGRpIGxpc3Rpbm88L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9InByaWNlLWl0ZW0gcHJpY2UtaXRlbS0tcmVndWxhciI+CiAgICAgICAgICDigqwxOCw5MAogICAgICAgIDwvc3Bhbj48L2Rpdj4KICAgIDxkaXYgY2xhc3M9InByaWNlX19zYWxlIj4KICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4gdmlzdWFsbHktaGlkZGVuLS1pbmxpbmUiPlByZXp6byBzY29udGF0bzwvc3Bhbj4KICAgICAgPHNwYW4gY2xhc3M9InByaWNlLWl0ZW0gcHJpY2UtaXRlbS0tc2FsZSBwcmljZS1pdGVtLS1sYXN0Ij4KICAgICAgICDigqwxOCw5MAogICAgICA8L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiB2aXN1YWxseS1oaWRkZW4tLWlubGluZSI+UHJlenpvIGRpIGxpc3Rpbm88L3NwYW4+CiAgICAgICAgPHNwYW4+CiAgICAgICAgICA8cyBjbGFzcz0icHJpY2UtaXRlbSBwcmljZS1pdGVtLS1yZWd1bGFyIj4KICAgICAgICAgICAgCiAgICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgPC9zPgogICAgICAgIDwvc3Bhbj48L2Rpdj4KICAgIDxzbWFsbCBjbGFzcz0idW5pdC1wcmljZSBjYXB0aW9uIGhpZGRlbiI+CiAgICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4iPlByZXp6byB1bml0YXJpbzwvc3Bhbj4KICAgICAgPHNwYW4gY2xhc3M9InByaWNlLWl0ZW0gcHJpY2UtaXRlbS11bml0IHByaWNlLWl0ZW0tLWxhc3QiPgogICAgICAgIDxzcGFuPjwvc3Bhbj4KICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj0idHJ1ZSI+Lzwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIj4mbmJzcDtwZXImbmJzcDs8L3NwYW4+CiAgICAgICAgPHNwYW4+CiAgICAgICAgPC9zcGFuPgogICAgICA8L3NwYW4+CiAgICA8L3NtYWxsPgogIDwvZGl2PjwvZGl2PgoKPC9kaXY+PGEgaHJlZj0iL3Byb2R1Y3RzLzJ4LWFudGktb2Rvci1zcHJheSIgY2xhc3M9InF1aWNrLWFkZCBxdWljay1hZGQtZXllIHF1aWNrLWFkZC1tb2JpbGUgZXh0cmEtbGFyZ2UtdXAtaGlkZSI+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGFyaWEtaGlkZGVuPSJ0cnVlIiBmb2N1c2FibGU9ImZhbHNlIiBjbGFzcz0iaWNvbiBpY29uLWV5ZSIgd2lkdGg9IjI0Ljc2NCIgaGVpZ2h0PSIxMy4zMTgiPgogIDxnIGZpbGw9ImN1cnJlbnRDb2xvciIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iLjciIGNsaXAtcGF0aD0idXJsKCNwcmVmaXhfX2EpIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyIDEpIj4KICA8cGF0aCBkPSJNMTAuNDguNDRoLjAzN2ExMS45ODMgMTEuOTgzIDAgMCAxIDUuNjQxIDEuNDI0QTEyLjI1MyAxMi4yNTMgMCAwIDEgMTguNSAzLjQ5N2ExMi40NTcgMTIuNDU3IDAgMCAxIDEuNzM0IDEuODk0IDEyLjQyMiAxMi40MjIgMCAwIDEtMS43MjggMi4xMDYgMTIuMDc3IDEyLjA3NyAwIDAgMS0yLjM3OSAxLjgxIDExLjY3NiAxMS42NzYgMCAwIDEtMi43NzEgMS4xNjEgMTEuNiAxMS42IDAgMCAxLTMuMDYzLjQxaC0uMDM5YTExLjYxMyAxMS42MTMgMCAwIDEtMi45NzYtLjQgMTEuNjYzIDExLjY2MyAwIDAgMS0yLjctMS4xMDYgMTIuMDQ3IDEyLjA0NyAwIDAgMS0yLjMzNS0xLjcxNyAxMi40IDEyLjQgMCAwIDEtMS43MTItMiAxMi40NjQgMTIuNDY0IDAgMCAxIDEuNzUzLTIgMTIuMjcxIDEyLjI3MSAwIDAgMSAyLjM4OC0xLjcyMyAxMS45ODIgMTEuOTgyIDAgMCAxIDUuOC0xLjQ5M1ptMC0uNDRBMTIuNTg3IDEyLjU4NyAwIDAgMCAwIDUuNjU1YTEyLjMgMTIuMyAwIDAgMCAxMC4yNTMgNS42NjNoLjA0YTEyLjMyNCAxMi4zMjQgMCAwIDAgMTAuNDcxLTUuOTQyQTEyLjU3NSAxMi41NzUgMCAwIDAgMTAuNTE4LS4wMDNoLS4wNDEiLz4KICA8cGF0aCBkPSJNMTAuMzgyLjczNGE0Ljc0MSA0Ljc0MSAwIDAgMSAyLjcuODM5IDQuODg5IDQuODg5IDAgMCAxIC43MTUuNiA0Ljk1IDQuOTUgMCAwIDEgMS4zMTkgMi40OTMgNS4wOCA1LjA4IDAgMCAxIDAgMS45OTEgNC45NDggNC45NDggMCAwIDEtMS4zMTkgMi40OTMgNC44ODkgNC44ODkgMCAwIDEtLjcxNS42IDQuOCA0LjggMCAwIDEtLjgyLjQ1MyA0Ljc0OSA0Ljc0OSAwIDAgMS0zLjc1MyAwIDQuOCA0LjggMCAwIDEtLjgyLS40NTMgNC45MTUgNC45MTUgMCAwIDEtMS4zMDYtMS4zMzEgNC45NDkgNC45NDkgMCAwIDEtLjcyOC0xLjc2MyA1LjA4IDUuMDggMCAwIDEgMC0xLjk5MSA0Ljk0NCA0Ljk0NCAwIDAgMSAxLjMxOS0yLjQ5MyA0Ljg4OSA0Ljg4OSAwIDAgMSAuNzE1LS42IDQuOCA0LjggMCAwIDEgLjgyLS40NTMgNC43MyA0LjczIDAgMCAxIDEuODc3LS4zODZtMC0uNWE1LjQyOSA1LjQyOSAwIDEgMCA1LjMzIDUuNDI5IDUuMzggNS4zOCAwIDAgMC01LjMzLTUuNDI5Ii8+CiAgPHBhdGggZD0iTTEzLjA4MyA1Ljc1OWEyLjY4MyAyLjY4MyAwIDEgMS0yLjY4Mi0yLjczMiAyLjcwNyAyLjcwNyAwIDAgMSAyLjY4MiAyLjczMiIvPgogIDwvZz4KPC9zdmc+CiAgPC9hPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19jb250ZW50LWhvdmVyIj4KICAgICAgICAgICAgICAgIDwhLS0gU3d5bSBXaXNobGlzdCBQbHVzIEVQSSBCdXR0b24gd2l0aCBkZWZhdWx0IGZpcnN0IHZhcmlhbnQgLS0+CiAgICAgICAgICAgICAgICA8YnV0dG9uIGFyaWEtbGFiZWw9IkFkZCB0byBXaXNobGlzdCIgZGF0YS13aXRoLWVwaT0idHJ1ZSIgY2xhc3M9InN3eW0tYnV0dG9uIHN3eW0tYWRkLXRvLXdpc2hsaXN0LXZpZXctcHJvZHVjdCBwcm9kdWN0XzEwNTA4OTIyMDI4MzY1IiBkYXRhLXN3YWN0aW9uPSJhZGRUb1dpc2hsaXN0IiBkYXRhLXByb2R1Y3QtaWQ9IjEwNTA4OTIyMDI4MzY1IiBkYXRhLXZhcmlhbnQtaWQ9IjUzMjUzMTgxNjY5NzA5IiBkYXRhLXByb2R1Y3QtdXJsPSJodHRwczovL3d3dy5zdGFuaG9tZS5pdC9wcm9kdWN0cy8yeC1hbnRpLW9kb3Itc3ByYXkiPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICA8IS0tIFN3eW0gV2lzaGxpc3QgUGx1cyBFUEkgQnV0dG9uLS0+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19pbmZvcm1hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9faGVhZGluZyI+CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMiBBTlRJIE9ET1IgU1BSQVkgCiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX3ZhcmlhbnQtdGl0bGUiPgogICAgICAgICAgICAgICAgICAgICAgICAyWCBBTlRJIE9ET1IgU1BSQVkKICAgICAgICAgICAgICAgICAgICA8L2Rpdj48dWwgY2xhc3M9Imxpc3QtdW5zdHlsZWQgY2FyZF9fdmFyaWFudC1rZXlfcG9pbnRzIj48bGk+PHNwYW4+TmV1dHJhbGl6emEgZ2xpIG9kb3JpIGRlZ2xpIGFuaW1hbGkgZGEgY29tcGFnbmlhPC9zcGFuPjwvbGk+PGxpPjxzcGFuPjIgZGVzdGluYXppb25pIGTigJl1c286IG5lbGzigJlhbWJpZW50ZSBlIHN1aSB0ZXNzdXRpIGTigJlhcnJlZGFtZW50bzwvc3Bhbj48L2xpPjxsaT48c3Bhbj4gKyA5NCUgZOKAmWluZ3JlZGllbnRpIGRpIG9yaWdpbmUgbmF0dXJhbGUgKGFjcXVhIGNvbXByZXNhKTwvc3Bhbj48L2xpPjwvdWw+PC9kaXY+PGRpdiBjbGFzcz0icXVpY2stYWRkIG5vLWpzLWhpZGRlbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvcHJvZHVjdHMvMngtYW50aS1vZG9yLXNwcmF5IiBjbGFzcz0icXVpY2stYWRkX19saW5rIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJxdWljay1hZGRfX3N1Ym1pdCBidXR0b24gYnV0dG9uLS1mdWxsLXdpZHRoIGJ1dHRvbi0tcHJpbWFyeSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNDT1BSSSBESSBQScOZCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4=
Cgo8bGluayBocmVmPSIvL2Nkbi5zaG9waWZ5LmNvbS9zL2ZpbGVzLzEvMDg0Ni84ODg2LzM1NjUvdC8zL2Fzc2V0cy9jb21wb25lbnQtcmF0aW5nLmNzcz92PTE1Nzc3MTg1NDU5MjEzNzEzNzg0MTczMDEwNzE1OSIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KPGxpbmsgaHJlZj0iLy9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzA4NDYvODg4Ni8zNTY1L3QvMy9hc3NldHMvY29tcG9uZW50LXZvbHVtZS1wcmljaW5nLmNzcz92PTU3NjUxNDYwOTU0MzA2Mzk1MzMxNzMwMTA3MTU1IiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgoKCgoKPHNjcmlwdD4KICAvLyBDcmVhdGUgUHJvZHVjdCBMaXN0IGFycmF5CiAgaWYgKCFheFByb2R1Y3RMaXN0KSB7CiAgICB2YXIgYXhQcm9kdWN0TGlzdCA9IFtdOwogIH0KCiAgLy8gQ3JlYXRlIFByb2R1Y3QgY2xpY2sgYXJyYXkKICBpZiAoIWF4SXRlbSkgewogICAgdmFyIGF4SXRlbSA9IFtdOwogIH0KCiAgaWYgKCFsaXN0TmFtZSkgewogICAgdmFyIGxpc3ROYW1lID0gJyc7CiAgfSBlbHNlIHsKICAgIGxpc3ROYW1lID0gJyc7CiAgfQoKICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewogICAgLy8gT25jbGljayBldmVudAogICAgdmFyIHByb2R1Y3RDYXJkcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5ndG0tY2FyZC1wcm9kdWN0LTJ4LWFxdWFzc2ltYS1lLW1hZ25ldGljLWF1cmEtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2InKTsKICAgIHByb2R1Y3RDYXJkcy5mb3JFYWNoKGZ1bmN0aW9uIChjYXJkKSB7CiAgICAgIGlmIChjYXJkLmNsb3Nlc3QoJy5ndG0tdHJhY2tpbmctY3Jvc3NzZWxsJykgIT09IG51bGwpIHsKICAgICAgICBsaXN0TmFtZSA9IGNhcmQuY2xvc2VzdCgnLmd0bS10cmFja2luZy1jcm9zc3NlbGwnKS5nZXRBdHRyaWJ1dGUoJ2d0bS10cmFja2luZy1jcm9zc3NlbGwnKTsKICAgICAgfQogICAgICBjYXJkLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24gKGV2ZW50KSB7CiAgICAgICAgdmFyIHByb2R1Y3REYXRhID0gSlNPTi5wYXJzZShjYXJkLmdldEF0dHJpYnV0ZSgnZ3RtLWNhcmQtZGF0YScpKTsKICAgICAgICAvLyBOZWVkIHRvIHB1c2ggbGlzdE5hbWUKICAgICAgICBwcm9kdWN0RGF0YVsnaXRlbV9saXN0X25hbWUnXSA9IGxpc3ROYW1lOwogICAgICAgIC8vIFB1c2ggY2xpY2tlZCBwcm9kdWN0CiAgICAgICAgYXhJdGVtLnB1c2gocHJvZHVjdERhdGEpOwogICAgICAgIC8vIFNlbmQgImNsaWNrIiBldmVudAogICAgICAgIGRhdGFMYXllci5wdXNoKHsKICAgICAgICAgIGV2ZW50OiAnYXhfcHJvZHVjdF9jbGljaycsCiAgICAgICAgICBheEl0ZW06IGF4SXRlbQogICAgICAgIH0pOwogICAgICB9KTsKICAgIH0pOwoKICAgIC8vIFB1c2ggYWxsIHByb2R1Y3QgaW4gZGF0YUxheWVyCiAgICBheFByb2R1Y3RMaXN0LnB1c2goewogICAgICBpdGVtX25hbWU6ICcyWCBBUVVBU1NJTUEgRSBNQUdORVRJQyBBVVJBJywKICAgICAgaXRlbV9pZDogJ0lUQV9QUkRFMDAwNTEwMTVPQU4zMzA3Q1cnLAogICAgICBwcmljZTogJ+KCrDQ3LDkwJywKICAgICAgaXRlbV9icmFuZDogJ0tpb3RpcycsCiAgICAgIGl0ZW1fY2F0ZWdvcnkxOiAnS2lvdGlzJywKICAgICAgaXRlbV9jYXRlZ29yeTI6ICdJIHByb2RvdHRpIEtpb3RpcycsCiAgICAgIGl0ZW1fY2F0ZWdvcnkzOiAnJywKICAgICAgaXRlbV92YXJpYW50OiAnRGVmYXVsdCBUaXRsZScsCiAgICAgIGl0ZW1fbGlzdF9uYW1lOiBsaXN0TmFtZQogICAgfSk7CgogICAgLy8gU2VuZCAiZmluaXNoZWQiIGV2ZW50CiAgICBpZiAoYXhQcm9kdWN0TGlzdC5sZW5ndGggPT09IHdpbmRvdy50aGVtZS5pdGVtc19jb3VudCkgewogICAgICBkYXRhTGF5ZXIucHVzaCh7CiAgICAgICAgZXZlbnQ6ICdheF9wcm9kdWN0X2xpc3RfY29tcGxldGUnLAogICAgICAgIGF4UHJvZHVjdExpc3Q6IGF4UHJvZHVjdExpc3QsCiAgICAgIH0pOwogICAgfQogIH0pOwoKICBmdW5jdGlvbiBjbGlja1Byb2R1Y3QocHJvZHVjdERhdGEpIHt9Cjwvc2NyaXB0PgoKCjxzY3JpcHQgZGVmZXI+CiAgZnVuY3Rpb24gc3d5bUNhbGxiYWNrRm4oc3dhdCkgewogICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignc3d5bTpjb2xsZWN0aW9ucy1sb2FkZWQnLCBmdW5jdGlvbiAoKSB7CiAgICAgIHN3YXQuaW5pdGlhbGl6ZUFjdGlvbkJ1dHRvbnMoJzw8Q29sbGVjdGlvbnMgR3JpZCBQQVJFTlQgU2VsZWN0b3IgPj4nKTsKICAgIH0pOwogIH0KICBpZiAoIXdpbmRvdy5Td3ltQ2FsbGJhY2tzKSB7CiAgICB3aW5kb3cuU3d5bUNhbGxiYWNrcyA9IFtdOwogIH0KICB3aW5kb3cuU3d5bUNhbGxiYWNrcy5wdXNoKHN3eW1DYWxsYmFja0ZuKTsKPC9zY3JpcHQ+CgoKICAgIAoKICAgIDxkaXYgY2xhc3M9ImNhcmQtd3JhcHBlciBwcm9kdWN0LW1pbmlhdHVyZSBwcm9kdWN0LWNhcmQtd3JhcHBlciB1bmRlcmxpbmUtbGlua3MtaG92ZXIgZ3RtLWNhcmQtcHJvZHVjdCBndG0tY2FyZC1wcm9kdWN0LTJ4LWFxdWFzc2ltYS1lLW1hZ25ldGljLWF1cmEtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IgY2FyZC1wcm9kdWN0IiBndG0tY2FyZC1kYXRhPScKICAgICAgICB7CiAgICAgICAgICAgICJpdGVtX25hbWUiOiAiMlggQVFVQVNTSU1BIEUgTUFHTkVUSUMgQVVSQSIsCiAgICAgICAgICAgICJpdGVtX2lkIjogIklUQV9QUkRFMDAwNTEwMTVPQU4zMzA3Q1ciLAogICAgICAgICAgICAicHJpY2UiOiAi4oKsNDcsOTAiLAogICAgICAgICAgICAiaXRlbV9icmFuZCI6ICJLaW90aXMiLAogICAgICAgICAgICAiaXRlbV9jYXRlZ29yeTEiOiAiIiwKICAgICAgICAgICAgIml0ZW1fY2F0ZWdvcnkyIjogIm91ci1raW90aXMtcHJvZHVjdHMiLAogICAgICAgICAgICAiaXRlbV9jYXRlZ29yeTMiOiBudWxsLAogICAgICAgICAgICAiaXRlbV92YXJpYW50IjogIkRlZmF1bHQgVGl0bGUiCiAgICAgICAgfQogICAgJyBkYXRhLXByb2R1Y3QtaWQ9IjEwNTQyNzc2NjQ4MDEzIiBkYXRhLXByb2R1Y3QtbmFtZT0iMlggQVFVQVNTSU1BIEUgTUFHTkVUSUMgQVVSQSIKICBkYXRhLXByb2R1Y3QtcHJpY2U9IjQ3LjkiCiAgZGF0YS1wcm9kdWN0LWJyYW5kPSJLaW90aXMiCiAgZGF0YS1wcm9kdWN0LWNhdGVnb3J5PSIiCiAgZGF0YS1wcm9kdWN0LXBvc2l0aW9uPSIiPgogICAgICAgIDxkaXYKICAgICAgICAgICAgICAgIGNsYXNzPSIKICAgICAgICBjYXJkIGNhcmQtLXN0YW5kYXJkCiAgICAgICAgIGNhcmQtLW1lZGlhCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICIKICAgICAgICAgICAgICAgIHN0eWxlPSItLXJhdGlvLXBlcmNlbnQ6IDEwMCU7IgogICAgICAgID4KICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJjYXJkX19pbm5lciBjb2xvci1iYWNrZ3JvdW5kLTEgZ3JhZGllbnQgcmF0aW8iCiAgICAgICAgICAgICAgICAgICAgc3R5bGU9Ii0tcmF0aW8tcGVyY2VudDogMTAwJTsiCiAgICAgICAgICAgID48ZGl2IGNsYXNzPSJjYXJkX19tZWRpYSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1lZGlhIG1lZGlhLS10cmFuc3BhcmVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmNzZXQ9Ii8vY2RuLnNob3BpZnkuY29tL3MvZmlsZXMvMS8wODQ2Lzg4ODYvMzU2NS9maWxlcy9hcXVhc3NpbWFfZV9tYWduZXRpY19hdXJhLmpwZz92PTE3NzEzMjAwMzkmd2lkdGg9MTY1IDE2NXcsLy9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzA4NDYvODg4Ni8zNTY1L2ZpbGVzL2FxdWFzc2ltYV9lX21hZ25ldGljX2F1cmEuanBnP3Y9MTc3MTMyMDAzOSZ3aWR0aD0zNjAgMzYwdywvL2Nkbi5zaG9waWZ5LmNvbS9zL2ZpbGVzLzEvMDg0Ni84ODg2LzM1NjUvZmlsZXMvYXF1YXNzaW1hX2VfbWFnbmV0aWNfYXVyYS5qcGc/dj0xNzcxMzIwMDM5JndpZHRoPTUzMyA1MzN3LC8vY2RuLnNob3BpZnkuY29tL3MvZmlsZXMvMS8wODQ2Lzg4ODYvMzU2NS9maWxlcy9hcXVhc3NpbWFfZV9tYWduZXRpY19hdXJhLmpwZz92PTE3NzEzMjAwMzkmd2lkdGg9NzIwIDcyMHcsLy9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzA4NDYvODg4Ni8zNTY1L2ZpbGVzL2FxdWFzc2ltYV9lX21hZ25ldGljX2F1cmEuanBnP3Y9MTc3MTMyMDAzOSZ3aWR0aD05NDAgOTQwdywvL2Nkbi5zaG9waWZ5LmNvbS9zL2ZpbGVzLzEvMDg0Ni84ODg2LzM1NjUvZmlsZXMvYXF1YXNzaW1hX2VfbWFnbmV0aWNfYXVyYS5qcGc/dj0xNzcxMzIwMDM5JndpZHRoPTEwNjYgMTA2NncsLy9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzA4NDYvODg4Ni8zNTY1L2ZpbGVzL2FxdWFzc2ltYV9lX21hZ25ldGljX2F1cmEuanBnP3Y9MTc3MTMyMDAzOSAxMjAwdwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjPSIvL2Nkbi5zaG9waWZ5LmNvbS9zL2ZpbGVzLzEvMDg0Ni84ODg2LzM1NjUvZmlsZXMvYXF1YXNzaW1hX2VfbWFnbmV0aWNfYXVyYS5qcGc/dj0xNzcxMzIwMDM5JndpZHRoPTUzMyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZXM9IihtaW4td2lkdGg6IDE2MDBweCkgMzY3cHgsIChtaW4td2lkdGg6IDk5MHB4KSBjYWxjKCgxMDB2dyAtIDEzMHB4KSAvIDQpLCAobWluLXdpZHRoOiA3NTBweCkgY2FsYygoMTAwdncgLSAxMjBweCkgLyAzKSwgY2FsYygoMTAwdncgLSAzNXB4KSAvIDIpIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9IjJYIEFRVUFTU0lNQSBFIE1BR05FVElDIEFVUkEiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJtb3Rpb24tcmVkdWNlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkaW5nPSJsYXp5IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRpbmc9ImxhenkiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD0iMTIwMCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PSIxMjAwIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PjxkaXYgY2xhc3M9ImNhcmRfX2NvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgIDwhLS0gU3d5bSBXaXNobGlzdCBQbHVzIEVQSSBCdXR0b24gd2l0aCBkZWZhdWx0IGZpcnN0IHZhcmlhbnQgLS0+CiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBhcmlhLWxhYmVsPSJBZGQgdG8gV2lzaGxpc3QiIGRhdGEtd2l0aC1lcGk9InRydWUiIGNsYXNzPSJzd3ltLWJ1dHRvbiBzd3ltLWFkZC10by13aXNobGlzdC12aWV3LXByb2R1Y3QgcHJvZHVjdF8xMDU0Mjc3NjY0ODAxMyIgZGF0YS1zd2FjdGlvbj0iYWRkVG9XaXNobGlzdCIgZGF0YS1wcm9kdWN0LWlkPSIxMDU0Mjc3NjY0ODAxMyIgZGF0YS12YXJpYW50LWlkPSI1MzM4MjM5NzM5NTI3NyIgZGF0YS1wcm9kdWN0LXVybD0iaHR0cHM6Ly93d3cuc3RhbmhvbWUuaXQvcHJvZHVjdHMvMngtYXF1YXNzaW1hLWUtbWFnbmV0aWMtYXVyYSI+CiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgPCEtLSBTd3ltIFdpc2hsaXN0IFBsdXMgRVBJIEJ1dHRvbi0tPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2JhZGdlIHRvcCBsZWZ0Ij48L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fY29udGVudCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19pbmZvcm1hdGlvbiI+PGRpdiBjbGFzcz0iY2FyZF9fdHlwZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBLaW90aXMKICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PHAgY2xhc3M9ImNhcmRfX2hlYWRpbmcgaDUiICBpZD0idGl0bGUtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItMTA1NDI3NzY2NDgwMTMiID4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iL3Byb2R1Y3RzLzJ4LWFxdWFzc2ltYS1lLW1hZ25ldGljLWF1cmEiIGlkPSJDYXJkTGluay10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi0xMDU0Mjc3NjY0ODAxMyIgY2xhc3M9ImZ1bGwtdW5zdHlsZWQtbGluayBmdWxsLXVuc3R5bGVkLWxpbmstcHJvZHVjdCIgYXJpYS1sYWJlbGxlZGJ5PSJDYXJkTGluay10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi0xMDU0Mjc3NjY0ODAxMyBCYWRnZS10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi0xMDU0Mjc3NjY0ODAxMyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTRVQgMiBBUVVBU1NJTUEgRSBNQUdORVRJQyBBVVJBIEEgU0NFTFRBIAogICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPC9wPgoKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX192YXJpYW50LXRpdGxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgMlggQVFVQVNTSU1BIEUgTUFHTkVUSUMgQVVSQQogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaW5mb3JtYXRpb24iPjxzcGFuIGNsYXNzPSJjYXB0aW9uLWxhcmdlIGxpZ2h0Ij48L3NwYW4+CgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19pbmZvcm1hdGlvbi1mb3JtLXJhdGluZy1wcmljZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyYXRpbmctcHJpY2UiPgo8ZGl2CiAgY2xhc3M9IgogICAgcHJpY2UgIgo+CiAgPGRpdiBjbGFzcz0icHJpY2VfX2NvbnRhaW5lciI+PGRpdiBjbGFzcz0icHJpY2VfX3JlZ3VsYXIiPjxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4gdmlzdWFsbHktaGlkZGVuLS1pbmxpbmUiPlByZXp6byBkaSBsaXN0aW5vPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tLXJlZ3VsYXIiPgogICAgICAgICAg4oKsNDcsOTAKICAgICAgICA8L3NwYW4+PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJwcmljZV9fc2FsZSI+CiAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIHZpc3VhbGx5LWhpZGRlbi0taW5saW5lIj5QcmV6em8gc2NvbnRhdG88L3NwYW4+CiAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tLXNhbGUgcHJpY2UtaXRlbS0tbGFzdCI+CiAgICAgICAg4oKsNDcsOTAKICAgICAgPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4gdmlzdWFsbHktaGlkZGVuLS1pbmxpbmUiPlByZXp6byBkaSBsaXN0aW5vPC9zcGFuPgogICAgICAgIDxzcGFuPgogICAgICAgICAgPHMgY2xhc3M9InByaWNlLWl0ZW0gcHJpY2UtaXRlbS0tcmVndWxhciI+CiAgICAgICAgICAgIAogICAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgIDwvcz4KICAgICAgICA8L3NwYW4+PC9kaXY+CiAgICA8c21hbGwgY2xhc3M9InVuaXQtcHJpY2UgY2FwdGlvbiBoaWRkZW4iPgogICAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIj5QcmV6em8gdW5pdGFyaW88L3NwYW4+CiAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tdW5pdCBwcmljZS1pdGVtLS1sYXN0Ij4KICAgICAgICA8c3Bhbj48L3NwYW4+CiAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49InRydWUiPi88L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiI+Jm5ic3A7cGVyJm5ic3A7PC9zcGFuPgogICAgICAgIDxzcGFuPgogICAgICAgIDwvc3Bhbj4KICAgICAgPC9zcGFuPgogICAgPC9zbWFsbD4KICA8L2Rpdj48L2Rpdj4KCjwvZGl2PjxhIGhyZWY9Ii9wcm9kdWN0cy8yeC1hcXVhc3NpbWEtZS1tYWduZXRpYy1hdXJhIiBjbGFzcz0icXVpY2stYWRkIHF1aWNrLWFkZC1leWUgcXVpY2stYWRkLW1vYmlsZSBleHRyYS1sYXJnZS11cC1oaWRlIj48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgYXJpYS1oaWRkZW49InRydWUiIGZvY3VzYWJsZT0iZmFsc2UiIGNsYXNzPSJpY29uIGljb24tZXllIiB3aWR0aD0iMjQuNzY0IiBoZWlnaHQ9IjEzLjMxOCI+CiAgPGcgZmlsbD0iY3VycmVudENvbG9yIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIuNyIgY2xpcC1wYXRoPSJ1cmwoI3ByZWZpeF9fYSkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIgMSkiPgogIDxwYXRoIGQ9Ik0xMC40OC40NGguMDM3YTExLjk4MyAxMS45ODMgMCAwIDEgNS42NDEgMS40MjRBMTIuMjUzIDEyLjI1MyAwIDAgMSAxOC41IDMuNDk3YTEyLjQ1NyAxMi40NTcgMCAwIDEgMS43MzQgMS44OTQgMTIuNDIyIDEyLjQyMiAwIDAgMS0xLjcyOCAyLjEwNiAxMi4wNzcgMTIuMDc3IDAgMCAxLTIuMzc5IDEuODEgMTEuNjc2IDExLjY3NiAwIDAgMS0yLjc3MSAxLjE2MSAxMS42IDExLjYgMCAwIDEtMy4wNjMuNDFoLS4wMzlhMTEuNjEzIDExLjYxMyAwIDAgMS0yLjk3Ni0uNCAxMS42NjMgMTEuNjYzIDAgMCAxLTIuNy0xLjEwNiAxMi4wNDcgMTIuMDQ3IDAgMCAxLTIuMzM1LTEuNzE3IDEyLjQgMTIuNCAwIDAgMS0xLjcxMi0yIDEyLjQ2NCAxMi40NjQgMCAwIDEgMS43NTMtMiAxMi4yNzEgMTIuMjcxIDAgMCAxIDIuMzg4LTEuNzIzIDExLjk4MiAxMS45ODIgMCAwIDEgNS44LTEuNDkzWm0wLS40NEExMi41ODcgMTIuNTg3IDAgMCAwIDAgNS42NTVhMTIuMyAxMi4zIDAgMCAwIDEwLjI1MyA1LjY2M2guMDRhMTIuMzI0IDEyLjMyNCAwIDAgMCAxMC40NzEtNS45NDJBMTIuNTc1IDEyLjU3NSAwIDAgMCAxMC41MTgtLjAwM2gtLjA0MSIvPgogIDxwYXRoIGQ9Ik0xMC4zODIuNzM0YTQuNzQxIDQuNzQxIDAgMCAxIDIuNy44MzkgNC44ODkgNC44ODkgMCAwIDEgLjcxNS42IDQuOTUgNC45NSAwIDAgMSAxLjMxOSAyLjQ5MyA1LjA4IDUuMDggMCAwIDEgMCAxLjk5MSA0Ljk0OCA0Ljk0OCAwIDAgMS0xLjMxOSAyLjQ5MyA0Ljg4OSA0Ljg4OSAwIDAgMS0uNzE1LjYgNC44IDQuOCAwIDAgMS0uODIuNDUzIDQuNzQ5IDQuNzQ5IDAgMCAxLTMuNzUzIDAgNC44IDQuOCAwIDAgMS0uODItLjQ1MyA0LjkxNSA0LjkxNSAwIDAgMS0xLjMwNi0xLjMzMSA0Ljk0OSA0Ljk0OSAwIDAgMS0uNzI4LTEuNzYzIDUuMDggNS4wOCAwIDAgMSAwLTEuOTkxIDQuOTQ0IDQuOTQ0IDAgMCAxIDEuMzE5LTIuNDkzIDQuODg5IDQuODg5IDAgMCAxIC43MTUtLjYgNC44IDQuOCAwIDAgMSAuODItLjQ1MyA0LjczIDQuNzMgMCAwIDEgMS44NzctLjM4Nm0wLS41YTUuNDI5IDUuNDI5IDAgMSAwIDUuMzMgNS40MjkgNS4zOCA1LjM4IDAgMCAwLTUuMzMtNS40MjkiLz4KICA8cGF0aCBkPSJNMTMuMDgzIDUuNzU5YTIuNjgzIDIuNjgzIDAgMSAxLTIuNjgyLTIuNzMyIDIuNzA3IDIuNzA3IDAgMCAxIDIuNjgyIDIuNzMyIi8+CiAgPC9nPgo8L3N2Zz4KICA8L2E+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2NvbnRlbnQtaG92ZXIiPgogICAgICAgICAgICAgICAgPCEtLSBTd3ltIFdpc2hsaXN0IFBsdXMgRVBJIEJ1dHRvbiB3aXRoIGRlZmF1bHQgZmlyc3QgdmFyaWFudCAtLT4KICAgICAgICAgICAgICAgIDxidXR0b24gYXJpYS1sYWJlbD0iQWRkIHRvIFdpc2hsaXN0IiBkYXRhLXdpdGgtZXBpPSJ0cnVlIiBjbGFzcz0ic3d5bS1idXR0b24gc3d5bS1hZGQtdG8td2lzaGxpc3Qtdmlldy1wcm9kdWN0IHByb2R1Y3RfMTA1NDI3NzY2NDgwMTMiIGRhdGEtc3dhY3Rpb249ImFkZFRvV2lzaGxpc3QiIGRhdGEtcHJvZHVjdC1pZD0iMTA1NDI3NzY2NDgwMTMiIGRhdGEtdmFyaWFudC1pZD0iNTMzODIzOTczOTUyNzciIGRhdGEtcHJvZHVjdC11cmw9Imh0dHBzOi8vd3d3LnN0YW5ob21lLml0L3Byb2R1Y3RzLzJ4LWFxdWFzc2ltYS1lLW1hZ25ldGljLWF1cmEiPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICA8IS0tIFN3eW0gV2lzaGxpc3QgUGx1cyBFUEkgQnV0dG9uLS0+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19pbmZvcm1hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9faGVhZGluZyI+CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgU0VUIDIgQVFVQVNTSU1BIEUgTUFHTkVUSUMgQVVSQSBBIFNDRUxUQQogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX192YXJpYW50LXRpdGxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgMlggQVFVQVNTSU1BIEUgTUFHTkVUSUMgQVVSQQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pjx1bCBjbGFzcz0ibGlzdC11bnN0eWxlZCBjYXJkX192YXJpYW50LWtleV9wb2ludHMiPjxsaT48c3Bhbj5BcXVhc3NpbWEgw6ggdW4gcHJvZnVtbyBkYWxsZSBub3RlIGZyaXp6YW50aSBkaSBhZ3J1bWkgZSBkaSBzcGV6aWUgdml2YWNpLiA8L3NwYW4+PC9saT48bGk+PHNwYW4+VmV0cm8gZSBhc3R1Y2NpbyAxMDAlIHJpY2ljbGFiaWxpLjwvc3Bhbj48L2xpPjxsaT48c3Bhbj5NYWduZXRpYyBBdXJhIMOoIHVuIHByb2Z1bW8gYW1icmF0byBsZWdub3NvPC9zcGFuPjwvbGk+PC91bD48L2Rpdj48ZGl2IGNsYXNzPSJxdWljay1hZGQgbm8tanMtaGlkZGVuIj48YSBocmVmPSIvcHJvZHVjdHMvMngtYXF1YXNzaW1hLWUtbWFnbmV0aWMtYXVyYSIgY2xhc3M9InF1aWNrLWFkZF9fbGluayI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0icXVpY2stYWRkX19zdWJtaXQgYnV0dG9uIGJ1dHRvbi0tZnVsbC13aWR0aCBidXR0b24tLXByaW1hcnkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDUkVBIElMIFRVTyBTRVQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4=
Cgo8bGluayBocmVmPSIvL2Nkbi5zaG9waWZ5LmNvbS9zL2ZpbGVzLzEvMDg0Ni84ODg2LzM1NjUvdC8zL2Fzc2V0cy9jb21wb25lbnQtcmF0aW5nLmNzcz92PTE1Nzc3MTg1NDU5MjEzNzEzNzg0MTczMDEwNzE1OSIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KPGxpbmsgaHJlZj0iLy9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzA4NDYvODg4Ni8zNTY1L3QvMy9hc3NldHMvY29tcG9uZW50LXZvbHVtZS1wcmljaW5nLmNzcz92PTU3NjUxNDYwOTU0MzA2Mzk1MzMxNzMwMTA3MTU1IiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgoKCgoKPHNjcmlwdD4KICAvLyBDcmVhdGUgUHJvZHVjdCBMaXN0IGFycmF5CiAgaWYgKCFheFByb2R1Y3RMaXN0KSB7CiAgICB2YXIgYXhQcm9kdWN0TGlzdCA9IFtdOwogIH0KCiAgLy8gQ3JlYXRlIFByb2R1Y3QgY2xpY2sgYXJyYXkKICBpZiAoIWF4SXRlbSkgewogICAgdmFyIGF4SXRlbSA9IFtdOwogIH0KCiAgaWYgKCFsaXN0TmFtZSkgewogICAgdmFyIGxpc3ROYW1lID0gJyc7CiAgfSBlbHNlIHsKICAgIGxpc3ROYW1lID0gJyc7CiAgfQoKICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewogICAgLy8gT25jbGljayBldmVudAogICAgdmFyIHByb2R1Y3RDYXJkcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5ndG0tY2FyZC1wcm9kdWN0LTJ4LWJsYWNrLXdhc2gtd2hpdGUtd2FzaC10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYicpOwogICAgcHJvZHVjdENhcmRzLmZvckVhY2goZnVuY3Rpb24gKGNhcmQpIHsKICAgICAgaWYgKGNhcmQuY2xvc2VzdCgnLmd0bS10cmFja2luZy1jcm9zc3NlbGwnKSAhPT0gbnVsbCkgewogICAgICAgIGxpc3ROYW1lID0gY2FyZC5jbG9zZXN0KCcuZ3RtLXRyYWNraW5nLWNyb3Nzc2VsbCcpLmdldEF0dHJpYnV0ZSgnZ3RtLXRyYWNraW5nLWNyb3Nzc2VsbCcpOwogICAgICB9CiAgICAgIGNhcmQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbiAoZXZlbnQpIHsKICAgICAgICB2YXIgcHJvZHVjdERhdGEgPSBKU09OLnBhcnNlKGNhcmQuZ2V0QXR0cmlidXRlKCdndG0tY2FyZC1kYXRhJykpOwogICAgICAgIC8vIE5lZWQgdG8gcHVzaCBsaXN0TmFtZQogICAgICAgIHByb2R1Y3REYXRhWydpdGVtX2xpc3RfbmFtZSddID0gbGlzdE5hbWU7CiAgICAgICAgLy8gUHVzaCBjbGlja2VkIHByb2R1Y3QKICAgICAgICBheEl0ZW0ucHVzaChwcm9kdWN0RGF0YSk7CiAgICAgICAgLy8gU2VuZCAiY2xpY2siIGV2ZW50CiAgICAgICAgZGF0YUxheWVyLnB1c2goewogICAgICAgICAgZXZlbnQ6ICdheF9wcm9kdWN0X2NsaWNrJywKICAgICAgICAgIGF4SXRlbTogYXhJdGVtCiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgfSk7CgogICAgLy8gUHVzaCBhbGwgcHJvZHVjdCBpbiBkYXRhTGF5ZXIKICAgIGF4UHJvZHVjdExpc3QucHVzaCh7CiAgICAgIGl0ZW1fbmFtZTogJzJYIEJMQUNLIFdBU0gsIFdISVRFIFdBU0gnLAogICAgICBpdGVtX2lkOiAnSVRBX1BSREUwMDA1MTAxM09BTjMzMDVDVycsCiAgICAgIHByaWNlOiAn4oKsMTcsOTAnLAogICAgICBpdGVtX2JyYW5kOiAnU1RBTkhPTUUnLAogICAgICBpdGVtX2NhdGVnb3J5MTogJ1NUQU5IT01FJywKICAgICAgaXRlbV9jYXRlZ29yeTI6ICdDdXJhIGRlbGxhIGNhc2EnLAogICAgICBpdGVtX2NhdGVnb3J5MzogJycsCiAgICAgIGl0ZW1fdmFyaWFudDogJ0RlZmF1bHQgVGl0bGUnLAogICAgICBpdGVtX2xpc3RfbmFtZTogbGlzdE5hbWUKICAgIH0pOwoKICAgIC8vIFNlbmQgImZpbmlzaGVkIiBldmVudAogICAgaWYgKGF4UHJvZHVjdExpc3QubGVuZ3RoID09PSB3aW5kb3cudGhlbWUuaXRlbXNfY291bnQpIHsKICAgICAgZGF0YUxheWVyLnB1c2goewogICAgICAgIGV2ZW50OiAnYXhfcHJvZHVjdF9saXN0X2NvbXBsZXRlJywKICAgICAgICBheFByb2R1Y3RMaXN0OiBheFByb2R1Y3RMaXN0LAogICAgICB9KTsKICAgIH0KICB9KTsKCiAgZnVuY3Rpb24gY2xpY2tQcm9kdWN0KHByb2R1Y3REYXRhKSB7fQo8L3NjcmlwdD4KCgo8c2NyaXB0IGRlZmVyPgogIGZ1bmN0aW9uIHN3eW1DYWxsYmFja0ZuKHN3YXQpIHsKICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3N3eW06Y29sbGVjdGlvbnMtbG9hZGVkJywgZnVuY3Rpb24gKCkgewogICAgICBzd2F0LmluaXRpYWxpemVBY3Rpb25CdXR0b25zKCc8PENvbGxlY3Rpb25zIEdyaWQgUEFSRU5UIFNlbGVjdG9yID4+Jyk7CiAgICB9KTsKICB9CiAgaWYgKCF3aW5kb3cuU3d5bUNhbGxiYWNrcykgewogICAgd2luZG93LlN3eW1DYWxsYmFja3MgPSBbXTsKICB9CiAgd2luZG93LlN3eW1DYWxsYmFja3MucHVzaChzd3ltQ2FsbGJhY2tGbik7Cjwvc2NyaXB0PgoKCiAgICAKCiAgICA8ZGl2IGNsYXNzPSJjYXJkLXdyYXBwZXIgcHJvZHVjdC1taW5pYXR1cmUgcHJvZHVjdC1jYXJkLXdyYXBwZXIgdW5kZXJsaW5lLWxpbmtzLWhvdmVyIGd0bS1jYXJkLXByb2R1Y3QgZ3RtLWNhcmQtcHJvZHVjdC0yeC1ibGFjay13YXNoLXdoaXRlLXdhc2gtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IgY2FyZC1wcm9kdWN0IiBndG0tY2FyZC1kYXRhPScKICAgICAgICB7CiAgICAgICAgICAgICJpdGVtX25hbWUiOiAiMlggQkxBQ0sgV0FTSCwgV0hJVEUgV0FTSCIsCiAgICAgICAgICAgICJpdGVtX2lkIjogIklUQV9QUkRFMDAwNTEwMTNPQU4zMzA1Q1ciLAogICAgICAgICAgICAicHJpY2UiOiAi4oKsMTcsOTAiLAogICAgICAgICAgICAiaXRlbV9icmFuZCI6ICJTVEFOSE9NRSIsCiAgICAgICAgICAgICJpdGVtX2NhdGVnb3J5MSI6ICIiLAogICAgICAgICAgICAiaXRlbV9jYXRlZ29yeTIiOiAiaG91c2Vob2xkLWNsZWFuZXJzIiwKICAgICAgICAgICAgIml0ZW1fY2F0ZWdvcnkzIjogbnVsbCwKICAgICAgICAgICAgIml0ZW1fdmFyaWFudCI6ICJEZWZhdWx0IFRpdGxlIgogICAgICAgIH0KICAgICcgZGF0YS1wcm9kdWN0LWlkPSIxMDU0Mjc3NjM1MzEwMSIgZGF0YS1wcm9kdWN0LW5hbWU9IjJYIEJMQUNLIFdBU0gsIFdISVRFIFdBU0giCiAgZGF0YS1wcm9kdWN0LXByaWNlPSIxNy45IgogIGRhdGEtcHJvZHVjdC1icmFuZD0iU1RBTkhPTUUiCiAgZGF0YS1wcm9kdWN0LWNhdGVnb3J5PSIiCiAgZGF0YS1wcm9kdWN0LXBvc2l0aW9uPSIiPgogICAgICAgIDxkaXYKICAgICAgICAgICAgICAgIGNsYXNzPSIKICAgICAgICBjYXJkIGNhcmQtLXN0YW5kYXJkCiAgICAgICAgIGNhcmQtLW1lZGlhCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICIKICAgICAgICAgICAgICAgIHN0eWxlPSItLXJhdGlvLXBlcmNlbnQ6IDEwMCU7IgogICAgICAgID4KICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJjYXJkX19pbm5lciBjb2xvci1iYWNrZ3JvdW5kLTEgZ3JhZGllbnQgcmF0aW8iCiAgICAgICAgICAgICAgICAgICAgc3R5bGU9Ii0tcmF0aW8tcGVyY2VudDogMTAwJTsiCiAgICAgICAgICAgID48ZGl2IGNsYXNzPSJjYXJkX19tZWRpYSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1lZGlhIG1lZGlhLS10cmFuc3BhcmVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmNzZXQ9Ii8vY2RuLnNob3BpZnkuY29tL3MvZmlsZXMvMS8wODQ2Lzg4ODYvMzU2NS9maWxlcy9CbGFja19hbmRfV2hpdGVfd2FzaC5qcGc/dj0xNzcxMzIwMDQ4JndpZHRoPTE2NSAxNjV3LC8vY2RuLnNob3BpZnkuY29tL3MvZmlsZXMvMS8wODQ2Lzg4ODYvMzU2NS9maWxlcy9CbGFja19hbmRfV2hpdGVfd2FzaC5qcGc/dj0xNzcxMzIwMDQ4JndpZHRoPTM2MCAzNjB3LC8vY2RuLnNob3BpZnkuY29tL3MvZmlsZXMvMS8wODQ2Lzg4ODYvMzU2NS9maWxlcy9CbGFja19hbmRfV2hpdGVfd2FzaC5qcGc/dj0xNzcxMzIwMDQ4JndpZHRoPTUzMyA1MzN3LC8vY2RuLnNob3BpZnkuY29tL3MvZmlsZXMvMS8wODQ2Lzg4ODYvMzU2NS9maWxlcy9CbGFja19hbmRfV2hpdGVfd2FzaC5qcGc/dj0xNzcxMzIwMDQ4JndpZHRoPTcyMCA3MjB3LC8vY2RuLnNob3BpZnkuY29tL3MvZmlsZXMvMS8wODQ2Lzg4ODYvMzU2NS9maWxlcy9CbGFja19hbmRfV2hpdGVfd2FzaC5qcGc/dj0xNzcxMzIwMDQ4JndpZHRoPTk0MCA5NDB3LC8vY2RuLnNob3BpZnkuY29tL3MvZmlsZXMvMS8wODQ2Lzg4ODYvMzU2NS9maWxlcy9CbGFja19hbmRfV2hpdGVfd2FzaC5qcGc/dj0xNzcxMzIwMDQ4JndpZHRoPTEwNjYgMTA2NncsLy9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzA4NDYvODg4Ni8zNTY1L2ZpbGVzL0JsYWNrX2FuZF9XaGl0ZV93YXNoLmpwZz92PTE3NzEzMjAwNDggMTIwMHcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz0iLy9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzA4NDYvODg4Ni8zNTY1L2ZpbGVzL0JsYWNrX2FuZF9XaGl0ZV93YXNoLmpwZz92PTE3NzEzMjAwNDgmd2lkdGg9NTMzIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplcz0iKG1pbi13aWR0aDogMTYwMHB4KSAzNjdweCwgKG1pbi13aWR0aDogOTkwcHgpIGNhbGMoKDEwMHZ3IC0gMTMwcHgpIC8gNCksIChtaW4td2lkdGg6IDc1MHB4KSBjYWxjKCgxMDB2dyAtIDEyMHB4KSAvIDMpLCBjYWxjKCgxMDB2dyAtIDM1cHgpIC8gMikiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD0iMlggQkxBQ0sgV0FTSCwgV0hJVEUgV0FTSCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9Im1vdGlvbi1yZWR1Y2UiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRpbmc9ImxhenkiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZz0ibGF6eSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPSIxMjAwIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9IjEyMDAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+PGRpdiBjbGFzcz0iY2FyZF9fY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgPCEtLSBTd3ltIFdpc2hsaXN0IFBsdXMgRVBJIEJ1dHRvbiB3aXRoIGRlZmF1bHQgZmlyc3QgdmFyaWFudCAtLT4KICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGFyaWEtbGFiZWw9IkFkZCB0byBXaXNobGlzdCIgZGF0YS13aXRoLWVwaT0idHJ1ZSIgY2xhc3M9InN3eW0tYnV0dG9uIHN3eW0tYWRkLXRvLXdpc2hsaXN0LXZpZXctcHJvZHVjdCBwcm9kdWN0XzEwNTQyNzc2MzUzMTAxIiBkYXRhLXN3YWN0aW9uPSJhZGRUb1dpc2hsaXN0IiBkYXRhLXByb2R1Y3QtaWQ9IjEwNTQyNzc2MzUzMTAxIiBkYXRhLXZhcmlhbnQtaWQ9IjUzMzgyMzk3MDM0ODI5IiBkYXRhLXByb2R1Y3QtdXJsPSJodHRwczovL3d3dy5zdGFuaG9tZS5pdC9wcm9kdWN0cy8yeC1ibGFjay13YXNoLXdoaXRlLXdhc2giPgogICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgIDwhLS0gU3d5bSBXaXNobGlzdCBQbHVzIEVQSSBCdXR0b24tLT4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19iYWRnZSB0b3AgbGVmdCI+PC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2NvbnRlbnQiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9faW5mb3JtYXRpb24iPjxkaXYgY2xhc3M9ImNhcmRfX3R5cGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgU1RBTkhPTUUKICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PHAgY2xhc3M9ImNhcmRfX2hlYWRpbmcgaDUiICBpZD0idGl0bGUtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItMTA1NDI3NzYzNTMxMDEiID4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iL3Byb2R1Y3RzLzJ4LWJsYWNrLXdhc2gtd2hpdGUtd2FzaCIgaWQ9IkNhcmRMaW5rLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTEwNTQyNzc2MzUzMTAxIiBjbGFzcz0iZnVsbC11bnN0eWxlZC1saW5rIGZ1bGwtdW5zdHlsZWQtbGluay1wcm9kdWN0IiBhcmlhLWxhYmVsbGVkYnk9IkNhcmRMaW5rLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTEwNTQyNzc2MzUzMTAxIEJhZGdlLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTEwNTQyNzc2MzUzMTAxIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNFVCAyIFdISVRFIEUgQkxBQ0sgV0FTSCBBIFNDRUxUQSAKICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDwvcD4KCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fdmFyaWFudC10aXRsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDJYIEJMQUNLIFdBU0gsIFdISVRFIFdBU0gKICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWluZm9ybWF0aW9uIj48c3BhbiBjbGFzcz0iY2FwdGlvbi1sYXJnZSBsaWdodCI+PC9zcGFuPgoKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9faW5mb3JtYXRpb24tZm9ybS1yYXRpbmctcHJpY2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icmF0aW5nLXByaWNlIj4KPGRpdgogIGNsYXNzPSIKICAgIHByaWNlICIKPgogIDxkaXYgY2xhc3M9InByaWNlX19jb250YWluZXIiPjxkaXYgY2xhc3M9InByaWNlX19yZWd1bGFyIj48c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIHZpc3VhbGx5LWhpZGRlbi0taW5saW5lIj5QcmV6em8gZGkgbGlzdGlubzwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0icHJpY2UtaXRlbSBwcmljZS1pdGVtLS1yZWd1bGFyIj4KICAgICAgICAgIOKCrDE3LDkwCiAgICAgICAgPC9zcGFuPjwvZGl2PgogICAgPGRpdiBjbGFzcz0icHJpY2VfX3NhbGUiPgogICAgPHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiB2aXN1YWxseS1oaWRkZW4tLWlubGluZSI+UHJlenpvIHNjb250YXRvPC9zcGFuPgogICAgICA8c3BhbiBjbGFzcz0icHJpY2UtaXRlbSBwcmljZS1pdGVtLS1zYWxlIHByaWNlLWl0ZW0tLWxhc3QiPgogICAgICAgIOKCrDE3LDkwCiAgICAgIDwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIHZpc3VhbGx5LWhpZGRlbi0taW5saW5lIj5QcmV6em8gZGkgbGlzdGlubzwvc3Bhbj4KICAgICAgICA8c3Bhbj4KICAgICAgICAgIDxzIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tLXJlZ3VsYXIiPgogICAgICAgICAgICAKICAgICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICA8L3M+CiAgICAgICAgPC9zcGFuPjwvZGl2PgogICAgPHNtYWxsIGNsYXNzPSJ1bml0LXByaWNlIGNhcHRpb24gaGlkZGVuIj4KICAgICAgPHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiI+UHJlenpvIHVuaXRhcmlvPC9zcGFuPgogICAgICA8c3BhbiBjbGFzcz0icHJpY2UtaXRlbSBwcmljZS1pdGVtLXVuaXQgcHJpY2UtaXRlbS0tbGFzdCI+CiAgICAgICAgPHNwYW4+PC9zcGFuPgogICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPSJ0cnVlIj4vPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4iPiZuYnNwO3BlciZuYnNwOzwvc3Bhbj4KICAgICAgICA8c3Bhbj4KICAgICAgICA8L3NwYW4+CiAgICAgIDwvc3Bhbj4KICAgIDwvc21hbGw+CiAgPC9kaXY+PC9kaXY+Cgo8L2Rpdj48YSBocmVmPSIvcHJvZHVjdHMvMngtYmxhY2std2FzaC13aGl0ZS13YXNoIiBjbGFzcz0icXVpY2stYWRkIHF1aWNrLWFkZC1leWUgcXVpY2stYWRkLW1vYmlsZSBleHRyYS1sYXJnZS11cC1oaWRlIj48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgYXJpYS1oaWRkZW49InRydWUiIGZvY3VzYWJsZT0iZmFsc2UiIGNsYXNzPSJpY29uIGljb24tZXllIiB3aWR0aD0iMjQuNzY0IiBoZWlnaHQ9IjEzLjMxOCI+CiAgPGcgZmlsbD0iY3VycmVudENvbG9yIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIuNyIgY2xpcC1wYXRoPSJ1cmwoI3ByZWZpeF9fYSkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIgMSkiPgogIDxwYXRoIGQ9Ik0xMC40OC40NGguMDM3YTExLjk4MyAxMS45ODMgMCAwIDEgNS42NDEgMS40MjRBMTIuMjUzIDEyLjI1MyAwIDAgMSAxOC41IDMuNDk3YTEyLjQ1NyAxMi40NTcgMCAwIDEgMS43MzQgMS44OTQgMTIuNDIyIDEyLjQyMiAwIDAgMS0xLjcyOCAyLjEwNiAxMi4wNzcgMTIuMDc3IDAgMCAxLTIuMzc5IDEuODEgMTEuNjc2IDExLjY3NiAwIDAgMS0yLjc3MSAxLjE2MSAxMS42IDExLjYgMCAwIDEtMy4wNjMuNDFoLS4wMzlhMTEuNjEzIDExLjYxMyAwIDAgMS0yLjk3Ni0uNCAxMS42NjMgMTEuNjYzIDAgMCAxLTIuNy0xLjEwNiAxMi4wNDcgMTIuMDQ3IDAgMCAxLTIuMzM1LTEuNzE3IDEyLjQgMTIuNCAwIDAgMS0xLjcxMi0yIDEyLjQ2NCAxMi40NjQgMCAwIDEgMS43NTMtMiAxMi4yNzEgMTIuMjcxIDAgMCAxIDIuMzg4LTEuNzIzIDExLjk4MiAxMS45ODIgMCAwIDEgNS44LTEuNDkzWm0wLS40NEExMi41ODcgMTIuNTg3IDAgMCAwIDAgNS42NTVhMTIuMyAxMi4zIDAgMCAwIDEwLjI1MyA1LjY2M2guMDRhMTIuMzI0IDEyLjMyNCAwIDAgMCAxMC40NzEtNS45NDJBMTIuNTc1IDEyLjU3NSAwIDAgMCAxMC41MTgtLjAwM2gtLjA0MSIvPgogIDxwYXRoIGQ9Ik0xMC4zODIuNzM0YTQuNzQxIDQuNzQxIDAgMCAxIDIuNy44MzkgNC44ODkgNC44ODkgMCAwIDEgLjcxNS42IDQuOTUgNC45NSAwIDAgMSAxLjMxOSAyLjQ5MyA1LjA4IDUuMDggMCAwIDEgMCAxLjk5MSA0Ljk0OCA0Ljk0OCAwIDAgMS0xLjMxOSAyLjQ5MyA0Ljg4OSA0Ljg4OSAwIDAgMS0uNzE1LjYgNC44IDQuOCAwIDAgMS0uODIuNDUzIDQuNzQ5IDQuNzQ5IDAgMCAxLTMuNzUzIDAgNC44IDQuOCAwIDAgMS0uODItLjQ1MyA0LjkxNSA0LjkxNSAwIDAgMS0xLjMwNi0xLjMzMSA0Ljk0OSA0Ljk0OSAwIDAgMS0uNzI4LTEuNzYzIDUuMDggNS4wOCAwIDAgMSAwLTEuOTkxIDQuOTQ0IDQuOTQ0IDAgMCAxIDEuMzE5LTIuNDkzIDQuODg5IDQuODg5IDAgMCAxIC43MTUtLjYgNC44IDQuOCAwIDAgMSAuODItLjQ1MyA0LjczIDQuNzMgMCAwIDEgMS44NzctLjM4Nm0wLS41YTUuNDI5IDUuNDI5IDAgMSAwIDUuMzMgNS40MjkgNS4zOCA1LjM4IDAgMCAwLTUuMzMtNS40MjkiLz4KICA8cGF0aCBkPSJNMTMuMDgzIDUuNzU5YTIuNjgzIDIuNjgzIDAgMSAxLTIuNjgyLTIuNzMyIDIuNzA3IDIuNzA3IDAgMCAxIDIuNjgyIDIuNzMyIi8+CiAgPC9nPgo8L3N2Zz4KICA8L2E+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2NvbnRlbnQtaG92ZXIiPgogICAgICAgICAgICAgICAgPCEtLSBTd3ltIFdpc2hsaXN0IFBsdXMgRVBJIEJ1dHRvbiB3aXRoIGRlZmF1bHQgZmlyc3QgdmFyaWFudCAtLT4KICAgICAgICAgICAgICAgIDxidXR0b24gYXJpYS1sYWJlbD0iQWRkIHRvIFdpc2hsaXN0IiBkYXRhLXdpdGgtZXBpPSJ0cnVlIiBjbGFzcz0ic3d5bS1idXR0b24gc3d5bS1hZGQtdG8td2lzaGxpc3Qtdmlldy1wcm9kdWN0IHByb2R1Y3RfMTA1NDI3NzYzNTMxMDEiIGRhdGEtc3dhY3Rpb249ImFkZFRvV2lzaGxpc3QiIGRhdGEtcHJvZHVjdC1pZD0iMTA1NDI3NzYzNTMxMDEiIGRhdGEtdmFyaWFudC1pZD0iNTMzODIzOTcwMzQ4MjkiIGRhdGEtcHJvZHVjdC11cmw9Imh0dHBzOi8vd3d3LnN0YW5ob21lLml0L3Byb2R1Y3RzLzJ4LWJsYWNrLXdhc2gtd2hpdGUtd2FzaCI+CiAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgIDwhLS0gU3d5bSBXaXNobGlzdCBQbHVzIEVQSSBCdXR0b24tLT4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2luZm9ybWF0aW9uIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19oZWFkaW5nIj4KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTRVQgMiBXSElURSBFIEJMQUNLIFdBU0ggQSBTQ0VMVEEKICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fdmFyaWFudC10aXRsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDJYIEJMQUNLIFdBU0gsIFdISVRFIFdBU0gKICAgICAgICAgICAgICAgICAgICA8L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJxdWljay1hZGQgbm8tanMtaGlkZGVuIj48YSBocmVmPSIvcHJvZHVjdHMvMngtYmxhY2std2FzaC13aGl0ZS13YXNoIiBjbGFzcz0icXVpY2stYWRkX19saW5rIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJxdWljay1hZGRfX3N1Ym1pdCBidXR0b24gYnV0dG9uLS1mdWxsLXdpZHRoIGJ1dHRvbi0tcHJpbWFyeSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENSRUEgSUwgVFVPIFNFVAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8L2Rpdj48L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pg==
Cgo8bGluayBocmVmPSIvL2Nkbi5zaG9waWZ5LmNvbS9zL2ZpbGVzLzEvMDg0Ni84ODg2LzM1NjUvdC8zL2Fzc2V0cy9jb21wb25lbnQtcmF0aW5nLmNzcz92PTE1Nzc3MTg1NDU5MjEzNzEzNzg0MTczMDEwNzE1OSIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KPGxpbmsgaHJlZj0iLy9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzA4NDYvODg4Ni8zNTY1L3QvMy9hc3NldHMvY29tcG9uZW50LXZvbHVtZS1wcmljaW5nLmNzcz92PTU3NjUxNDYwOTU0MzA2Mzk1MzMxNzMwMTA3MTU1IiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgoKCgoKPHNjcmlwdD4KICAvLyBDcmVhdGUgUHJvZHVjdCBMaXN0IGFycmF5CiAgaWYgKCFheFByb2R1Y3RMaXN0KSB7CiAgICB2YXIgYXhQcm9kdWN0TGlzdCA9IFtdOwogIH0KCiAgLy8gQ3JlYXRlIFByb2R1Y3QgY2xpY2sgYXJyYXkKICBpZiAoIWF4SXRlbSkgewogICAgdmFyIGF4SXRlbSA9IFtdOwogIH0KCiAgaWYgKCFsaXN0TmFtZSkgewogICAgdmFyIGxpc3ROYW1lID0gJyc7CiAgfSBlbHNlIHsKICAgIGxpc3ROYW1lID0gJyc7CiAgfQoKICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewogICAgLy8gT25jbGljayBldmVudAogICAgdmFyIHByb2R1Y3RDYXJkcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5ndG0tY2FyZC1wcm9kdWN0LTJ4LWNvbG9yLXNoYWRvdy1zdGljay10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYicpOwogICAgcHJvZHVjdENhcmRzLmZvckVhY2goZnVuY3Rpb24gKGNhcmQpIHsKICAgICAgaWYgKGNhcmQuY2xvc2VzdCgnLmd0bS10cmFja2luZy1jcm9zc3NlbGwnKSAhPT0gbnVsbCkgewogICAgICAgIGxpc3ROYW1lID0gY2FyZC5jbG9zZXN0KCcuZ3RtLXRyYWNraW5nLWNyb3Nzc2VsbCcpLmdldEF0dHJpYnV0ZSgnZ3RtLXRyYWNraW5nLWNyb3Nzc2VsbCcpOwogICAgICB9CiAgICAgIGNhcmQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbiAoZXZlbnQpIHsKICAgICAgICB2YXIgcHJvZHVjdERhdGEgPSBKU09OLnBhcnNlKGNhcmQuZ2V0QXR0cmlidXRlKCdndG0tY2FyZC1kYXRhJykpOwogICAgICAgIC8vIE5lZWQgdG8gcHVzaCBsaXN0TmFtZQogICAgICAgIHByb2R1Y3REYXRhWydpdGVtX2xpc3RfbmFtZSddID0gbGlzdE5hbWU7CiAgICAgICAgLy8gUHVzaCBjbGlja2VkIHByb2R1Y3QKICAgICAgICBheEl0ZW0ucHVzaChwcm9kdWN0RGF0YSk7CiAgICAgICAgLy8gU2VuZCAiY2xpY2siIGV2ZW50CiAgICAgICAgZGF0YUxheWVyLnB1c2goewogICAgICAgICAgZXZlbnQ6ICdheF9wcm9kdWN0X2NsaWNrJywKICAgICAgICAgIGF4SXRlbTogYXhJdGVtCiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgfSk7CgogICAgLy8gUHVzaCBhbGwgcHJvZHVjdCBpbiBkYXRhTGF5ZXIKICAgIGF4UHJvZHVjdExpc3QucHVzaCh7CiAgICAgIGl0ZW1fbmFtZTogJzJYIENPTE9SIFNIQURPVyBTVElDSycsCiAgICAgIGl0ZW1faWQ6ICdJVEFfUFJERTAwMDUxMDE3T0FOMzMxMENXJywKICAgICAgcHJpY2U6ICfigqwyMiw5MCcsCiAgICAgIGl0ZW1fYnJhbmQ6ICdGbG9ybWFyJywKICAgICAgaXRlbV9jYXRlZ29yeTE6ICdGbG9ybWFyJywKICAgICAgaXRlbV9jYXRlZ29yeTI6ICdJIHByb2RvdHRpIEZsb3JtYXInLAogICAgICBpdGVtX2NhdGVnb3J5MzogJycsCiAgICAgIGl0ZW1fdmFyaWFudDogJ0RlZmF1bHQgVGl0bGUnLAogICAgICBpdGVtX2xpc3RfbmFtZTogbGlzdE5hbWUKICAgIH0pOwoKICAgIC8vIFNlbmQgImZpbmlzaGVkIiBldmVudAogICAgaWYgKGF4UHJvZHVjdExpc3QubGVuZ3RoID09PSB3aW5kb3cudGhlbWUuaXRlbXNfY291bnQpIHsKICAgICAgZGF0YUxheWVyLnB1c2goewogICAgICAgIGV2ZW50OiAnYXhfcHJvZHVjdF9saXN0X2NvbXBsZXRlJywKICAgICAgICBheFByb2R1Y3RMaXN0OiBheFByb2R1Y3RMaXN0LAogICAgICB9KTsKICAgIH0KICB9KTsKCiAgZnVuY3Rpb24gY2xpY2tQcm9kdWN0KHByb2R1Y3REYXRhKSB7fQo8L3NjcmlwdD4KCgo8c2NyaXB0IGRlZmVyPgogIGZ1bmN0aW9uIHN3eW1DYWxsYmFja0ZuKHN3YXQpIHsKICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3N3eW06Y29sbGVjdGlvbnMtbG9hZGVkJywgZnVuY3Rpb24gKCkgewogICAgICBzd2F0LmluaXRpYWxpemVBY3Rpb25CdXR0b25zKCc8PENvbGxlY3Rpb25zIEdyaWQgUEFSRU5UIFNlbGVjdG9yID4+Jyk7CiAgICB9KTsKICB9CiAgaWYgKCF3aW5kb3cuU3d5bUNhbGxiYWNrcykgewogICAgd2luZG93LlN3eW1DYWxsYmFja3MgPSBbXTsKICB9CiAgd2luZG93LlN3eW1DYWxsYmFja3MucHVzaChzd3ltQ2FsbGJhY2tGbik7Cjwvc2NyaXB0PgoKCiAgICAKCiAgICA8ZGl2IGNsYXNzPSJjYXJkLXdyYXBwZXIgcHJvZHVjdC1taW5pYXR1cmUgcHJvZHVjdC1jYXJkLXdyYXBwZXIgdW5kZXJsaW5lLWxpbmtzLWhvdmVyIGd0bS1jYXJkLXByb2R1Y3QgZ3RtLWNhcmQtcHJvZHVjdC0yeC1jb2xvci1zaGFkb3ctc3RpY2stdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IgY2FyZC1wcm9kdWN0IiBndG0tY2FyZC1kYXRhPScKICAgICAgICB7CiAgICAgICAgICAgICJpdGVtX25hbWUiOiAiMlggQ09MT1IgU0hBRE9XIFNUSUNLIiwKICAgICAgICAgICAgIml0ZW1faWQiOiAiSVRBX1BSREUwMDA1MTAxN09BTjMzMTBDVyIsCiAgICAgICAgICAgICJwcmljZSI6ICLigqwyMiw5MCIsCiAgICAgICAgICAgICJpdGVtX2JyYW5kIjogIkZsb3JtYXIiLAogICAgICAgICAgICAiaXRlbV9jYXRlZ29yeTEiOiAiIiwKICAgICAgICAgICAgIml0ZW1fY2F0ZWdvcnkyIjogIm91ci1mbG9ybWFyLXByb2R1Y3RzIiwKICAgICAgICAgICAgIml0ZW1fY2F0ZWdvcnkzIjogbnVsbCwKICAgICAgICAgICAgIml0ZW1fdmFyaWFudCI6ICJEZWZhdWx0IFRpdGxlIgogICAgICAgIH0KICAgICcgZGF0YS1wcm9kdWN0LWlkPSIxMDU0Mjc3NzA3Mzk5NyIgZGF0YS1wcm9kdWN0LW5hbWU9IjJYIENPTE9SIFNIQURPVyBTVElDSyIKICBkYXRhLXByb2R1Y3QtcHJpY2U9IjIyLjkiCiAgZGF0YS1wcm9kdWN0LWJyYW5kPSJGbG9ybWFyIgogIGRhdGEtcHJvZHVjdC1jYXRlZ29yeT0iIgogIGRhdGEtcHJvZHVjdC1wb3NpdGlvbj0iIj4KICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICBjbGFzcz0iCiAgICAgICAgY2FyZCBjYXJkLS1zdGFuZGFyZAogICAgICAgICBjYXJkLS1tZWRpYQogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAiCiAgICAgICAgICAgICAgICBzdHlsZT0iLS1yYXRpby1wZXJjZW50OiAxMDAlOyIKICAgICAgICA+CiAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICBjbGFzcz0iY2FyZF9faW5uZXIgY29sb3ItYmFja2dyb3VuZC0xIGdyYWRpZW50IHJhdGlvIgogICAgICAgICAgICAgICAgICAgIHN0eWxlPSItLXJhdGlvLXBlcmNlbnQ6IDEwMCU7IgogICAgICAgICAgICA+PGRpdiBjbGFzcz0iY2FyZF9fbWVkaWEiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZWRpYSBtZWRpYS0tdHJhbnNwYXJlbnQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3Jjc2V0PSIvL2Nkbi5zaG9waWZ5LmNvbS9zL2ZpbGVzLzEvMDg0Ni84ODg2LzM1NjUvZmlsZXMvY29sb3Jfc2hhZG93X3N0aWNrLmpwZz92PTE3NzEzMjAwNDkmd2lkdGg9MTY1IDE2NXcsLy9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzA4NDYvODg4Ni8zNTY1L2ZpbGVzL2NvbG9yX3NoYWRvd19zdGljay5qcGc/dj0xNzcxMzIwMDQ5JndpZHRoPTM2MCAzNjB3LC8vY2RuLnNob3BpZnkuY29tL3MvZmlsZXMvMS8wODQ2Lzg4ODYvMzU2NS9maWxlcy9jb2xvcl9zaGFkb3dfc3RpY2suanBnP3Y9MTc3MTMyMDA0OSZ3aWR0aD01MzMgNTMzdywvL2Nkbi5zaG9waWZ5LmNvbS9zL2ZpbGVzLzEvMDg0Ni84ODg2LzM1NjUvZmlsZXMvY29sb3Jfc2hhZG93X3N0aWNrLmpwZz92PTE3NzEzMjAwNDkmd2lkdGg9NzIwIDcyMHcsLy9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzA4NDYvODg4Ni8zNTY1L2ZpbGVzL2NvbG9yX3NoYWRvd19zdGljay5qcGc/dj0xNzcxMzIwMDQ5JndpZHRoPTk0MCA5NDB3LC8vY2RuLnNob3BpZnkuY29tL3MvZmlsZXMvMS8wODQ2Lzg4ODYvMzU2NS9maWxlcy9jb2xvcl9zaGFkb3dfc3RpY2suanBnP3Y9MTc3MTMyMDA0OSZ3aWR0aD0xMDY2IDEwNjZ3LC8vY2RuLnNob3BpZnkuY29tL3MvZmlsZXMvMS8wODQ2Lzg4ODYvMzU2NS9maWxlcy9jb2xvcl9zaGFkb3dfc3RpY2suanBnP3Y9MTc3MTMyMDA0OSAxMjAwdwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjPSIvL2Nkbi5zaG9waWZ5LmNvbS9zL2ZpbGVzLzEvMDg0Ni84ODg2LzM1NjUvZmlsZXMvY29sb3Jfc2hhZG93X3N0aWNrLmpwZz92PTE3NzEzMjAwNDkmd2lkdGg9NTMzIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplcz0iKG1pbi13aWR0aDogMTYwMHB4KSAzNjdweCwgKG1pbi13aWR0aDogOTkwcHgpIGNhbGMoKDEwMHZ3IC0gMTMwcHgpIC8gNCksIChtaW4td2lkdGg6IDc1MHB4KSBjYWxjKCgxMDB2dyAtIDEyMHB4KSAvIDMpLCBjYWxjKCgxMDB2dyAtIDM1cHgpIC8gMikiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD0iMlggQ09MT1IgU0hBRE9XIFNUSUNLIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0ibW90aW9uLXJlZHVjZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZz0ibGF6eSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkaW5nPSJsYXp5IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9IjEyMDAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD0iMTIwMCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj48ZGl2IGNsYXNzPSJjYXJkX19jb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICA8IS0tIFN3eW0gV2lzaGxpc3QgUGx1cyBFUEkgQnV0dG9uIHdpdGggZGVmYXVsdCBmaXJzdCB2YXJpYW50IC0tPgogICAgICAgICAgICAgICAgICAgIDxidXR0b24gYXJpYS1sYWJlbD0iQWRkIHRvIFdpc2hsaXN0IiBkYXRhLXdpdGgtZXBpPSJ0cnVlIiBjbGFzcz0ic3d5bS1idXR0b24gc3d5bS1hZGQtdG8td2lzaGxpc3Qtdmlldy1wcm9kdWN0IHByb2R1Y3RfMTA1NDI3NzcwNzM5OTciIGRhdGEtc3dhY3Rpb249ImFkZFRvV2lzaGxpc3QiIGRhdGEtcHJvZHVjdC1pZD0iMTA1NDI3NzcwNzM5OTciIGRhdGEtdmFyaWFudC1pZD0iNTMzODIzOTc5MTk1NjUiIGRhdGEtcHJvZHVjdC11cmw9Imh0dHBzOi8vd3d3LnN0YW5ob21lLml0L3Byb2R1Y3RzLzJ4LWNvbG9yLXNoYWRvdy1zdGljayI+CiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgPCEtLSBTd3ltIFdpc2hsaXN0IFBsdXMgRVBJIEJ1dHRvbi0tPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2JhZGdlIHRvcCBsZWZ0Ij48L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fY29udGVudCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19pbmZvcm1hdGlvbiI+PGRpdiBjbGFzcz0iY2FyZF9fdHlwZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBGbG9ybWFyCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjxwIGNsYXNzPSJjYXJkX19oZWFkaW5nIGg1IiAgaWQ9InRpdGxlLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTEwNTQyNzc3MDczOTk3IiA+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii9wcm9kdWN0cy8yeC1jb2xvci1zaGFkb3ctc3RpY2siIGlkPSJDYXJkTGluay10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi0xMDU0Mjc3NzA3Mzk5NyIgY2xhc3M9ImZ1bGwtdW5zdHlsZWQtbGluayBmdWxsLXVuc3R5bGVkLWxpbmstcHJvZHVjdCIgYXJpYS1sYWJlbGxlZGJ5PSJDYXJkTGluay10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi0xMDU0Mjc3NzA3Mzk5NyBCYWRnZS10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi0xMDU0Mjc3NzA3Mzk5NyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDJYIENPTE9SIFNIQURPVyBTVElDSyAKICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDwvcD4KCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fdmFyaWFudC10aXRsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDJYIENPTE9SIFNIQURPVyBTVElDSwogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaW5mb3JtYXRpb24iPjxzcGFuIGNsYXNzPSJjYXB0aW9uLWxhcmdlIGxpZ2h0Ij48L3NwYW4+CgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19pbmZvcm1hdGlvbi1mb3JtLXJhdGluZy1wcmljZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyYXRpbmctcHJpY2UiPgo8ZGl2CiAgY2xhc3M9IgogICAgcHJpY2UgIgo+CiAgPGRpdiBjbGFzcz0icHJpY2VfX2NvbnRhaW5lciI+PGRpdiBjbGFzcz0icHJpY2VfX3JlZ3VsYXIiPjxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4gdmlzdWFsbHktaGlkZGVuLS1pbmxpbmUiPlByZXp6byBkaSBsaXN0aW5vPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tLXJlZ3VsYXIiPgogICAgICAgICAg4oKsMjIsOTAKICAgICAgICA8L3NwYW4+PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJwcmljZV9fc2FsZSI+CiAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIHZpc3VhbGx5LWhpZGRlbi0taW5saW5lIj5QcmV6em8gc2NvbnRhdG88L3NwYW4+CiAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tLXNhbGUgcHJpY2UtaXRlbS0tbGFzdCI+CiAgICAgICAg4oKsMjIsOTAKICAgICAgPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4gdmlzdWFsbHktaGlkZGVuLS1pbmxpbmUiPlByZXp6byBkaSBsaXN0aW5vPC9zcGFuPgogICAgICAgIDxzcGFuPgogICAgICAgICAgPHMgY2xhc3M9InByaWNlLWl0ZW0gcHJpY2UtaXRlbS0tcmVndWxhciI+CiAgICAgICAgICAgIAogICAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgIDwvcz4KICAgICAgICA8L3NwYW4+PC9kaXY+CiAgICA8c21hbGwgY2xhc3M9InVuaXQtcHJpY2UgY2FwdGlvbiBoaWRkZW4iPgogICAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIj5QcmV6em8gdW5pdGFyaW88L3NwYW4+CiAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tdW5pdCBwcmljZS1pdGVtLS1sYXN0Ij4KICAgICAgICA8c3Bhbj48L3NwYW4+CiAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49InRydWUiPi88L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiI+Jm5ic3A7cGVyJm5ic3A7PC9zcGFuPgogICAgICAgIDxzcGFuPgogICAgICAgIDwvc3Bhbj4KICAgICAgPC9zcGFuPgogICAgPC9zbWFsbD4KICA8L2Rpdj48L2Rpdj4KCjwvZGl2PjxhIGhyZWY9Ii9wcm9kdWN0cy8yeC1jb2xvci1zaGFkb3ctc3RpY2siIGNsYXNzPSJxdWljay1hZGQgcXVpY2stYWRkLWV5ZSBxdWljay1hZGQtbW9iaWxlIGV4dHJhLWxhcmdlLXVwLWhpZGUiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSIgY2xhc3M9Imljb24gaWNvbi1leWUiIHdpZHRoPSIyNC43NjQiIGhlaWdodD0iMTMuMzE4Ij4KICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9Ii43IiBjbGlwLXBhdGg9InVybCgjcHJlZml4X19hKSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMiAxKSI+CiAgPHBhdGggZD0iTTEwLjQ4LjQ0aC4wMzdhMTEuOTgzIDExLjk4MyAwIDAgMSA1LjY0MSAxLjQyNEExMi4yNTMgMTIuMjUzIDAgMCAxIDE4LjUgMy40OTdhMTIuNDU3IDEyLjQ1NyAwIDAgMSAxLjczNCAxLjg5NCAxMi40MjIgMTIuNDIyIDAgMCAxLTEuNzI4IDIuMTA2IDEyLjA3NyAxMi4wNzcgMCAwIDEtMi4zNzkgMS44MSAxMS42NzYgMTEuNjc2IDAgMCAxLTIuNzcxIDEuMTYxIDExLjYgMTEuNiAwIDAgMS0zLjA2My40MWgtLjAzOWExMS42MTMgMTEuNjEzIDAgMCAxLTIuOTc2LS40IDExLjY2MyAxMS42NjMgMCAwIDEtMi43LTEuMTA2IDEyLjA0NyAxMi4wNDcgMCAwIDEtMi4zMzUtMS43MTcgMTIuNCAxMi40IDAgMCAxLTEuNzEyLTIgMTIuNDY0IDEyLjQ2NCAwIDAgMSAxLjc1My0yIDEyLjI3MSAxMi4yNzEgMCAwIDEgMi4zODgtMS43MjMgMTEuOTgyIDExLjk4MiAwIDAgMSA1LjgtMS40OTNabTAtLjQ0QTEyLjU4NyAxMi41ODcgMCAwIDAgMCA1LjY1NWExMi4zIDEyLjMgMCAwIDAgMTAuMjUzIDUuNjYzaC4wNGExMi4zMjQgMTIuMzI0IDAgMCAwIDEwLjQ3MS01Ljk0MkExMi41NzUgMTIuNTc1IDAgMCAwIDEwLjUxOC0uMDAzaC0uMDQxIi8+CiAgPHBhdGggZD0iTTEwLjM4Mi43MzRhNC43NDEgNC43NDEgMCAwIDEgMi43LjgzOSA0Ljg4OSA0Ljg4OSAwIDAgMSAuNzE1LjYgNC45NSA0Ljk1IDAgMCAxIDEuMzE5IDIuNDkzIDUuMDggNS4wOCAwIDAgMSAwIDEuOTkxIDQuOTQ4IDQuOTQ4IDAgMCAxLTEuMzE5IDIuNDkzIDQuODg5IDQuODg5IDAgMCAxLS43MTUuNiA0LjggNC44IDAgMCAxLS44Mi40NTMgNC43NDkgNC43NDkgMCAwIDEtMy43NTMgMCA0LjggNC44IDAgMCAxLS44Mi0uNDUzIDQuOTE1IDQuOTE1IDAgMCAxLTEuMzA2LTEuMzMxIDQuOTQ5IDQuOTQ5IDAgMCAxLS43MjgtMS43NjMgNS4wOCA1LjA4IDAgMCAxIDAtMS45OTEgNC45NDQgNC45NDQgMCAwIDEgMS4zMTktMi40OTMgNC44ODkgNC44ODkgMCAwIDEgLjcxNS0uNiA0LjggNC44IDAgMCAxIC44Mi0uNDUzIDQuNzMgNC43MyAwIDAgMSAxLjg3Ny0uMzg2bTAtLjVhNS40MjkgNS40MjkgMCAxIDAgNS4zMyA1LjQyOSA1LjM4IDUuMzggMCAwIDAtNS4zMy01LjQyOSIvPgogIDxwYXRoIGQ9Ik0xMy4wODMgNS43NTlhMi42ODMgMi42ODMgMCAxIDEtMi42ODItMi43MzIgMi43MDcgMi43MDcgMCAwIDEgMi42ODIgMi43MzIiLz4KICA8L2c+Cjwvc3ZnPgogIDwvYT48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fY29udGVudC1ob3ZlciI+CiAgICAgICAgICAgICAgICA8IS0tIFN3eW0gV2lzaGxpc3QgUGx1cyBFUEkgQnV0dG9uIHdpdGggZGVmYXVsdCBmaXJzdCB2YXJpYW50IC0tPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBhcmlhLWxhYmVsPSJBZGQgdG8gV2lzaGxpc3QiIGRhdGEtd2l0aC1lcGk9InRydWUiIGNsYXNzPSJzd3ltLWJ1dHRvbiBzd3ltLWFkZC10by13aXNobGlzdC12aWV3LXByb2R1Y3QgcHJvZHVjdF8xMDU0Mjc3NzA3Mzk5NyIgZGF0YS1zd2FjdGlvbj0iYWRkVG9XaXNobGlzdCIgZGF0YS1wcm9kdWN0LWlkPSIxMDU0Mjc3NzA3Mzk5NyIgZGF0YS12YXJpYW50LWlkPSI1MzM4MjM5NzkxOTU2NSIgZGF0YS1wcm9kdWN0LXVybD0iaHR0cHM6Ly93d3cuc3RhbmhvbWUuaXQvcHJvZHVjdHMvMngtY29sb3Itc2hhZG93LXN0aWNrIj4KICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgPCEtLSBTd3ltIFdpc2hsaXN0IFBsdXMgRVBJIEJ1dHRvbi0tPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9faW5mb3JtYXRpb24iPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2hlYWRpbmciPgogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDJYIENPTE9SIFNIQURPVyBTVElDSwogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX192YXJpYW50LXRpdGxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgMlggQ09MT1IgU0hBRE9XIFNUSUNLCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0icXVpY2stYWRkIG5vLWpzLWhpZGRlbiI+PGEgaHJlZj0iL3Byb2R1Y3RzLzJ4LWNvbG9yLXNoYWRvdy1zdGljayIgY2xhc3M9InF1aWNrLWFkZF9fbGluayI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0icXVpY2stYWRkX19zdWJtaXQgYnV0dG9uIGJ1dHRvbi0tZnVsbC13aWR0aCBidXR0b24tLXByaW1hcnkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDUkVBIElMIFRVTyBTRVQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4=
Cgo8bGluayBocmVmPSIvL2Nkbi5zaG9waWZ5LmNvbS9zL2ZpbGVzLzEvMDg0Ni84ODg2LzM1NjUvdC8zL2Fzc2V0cy9jb21wb25lbnQtcmF0aW5nLmNzcz92PTE1Nzc3MTg1NDU5MjEzNzEzNzg0MTczMDEwNzE1OSIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KPGxpbmsgaHJlZj0iLy9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzA4NDYvODg4Ni8zNTY1L3QvMy9hc3NldHMvY29tcG9uZW50LXZvbHVtZS1wcmljaW5nLmNzcz92PTU3NjUxNDYwOTU0MzA2Mzk1MzMxNzMwMTA3MTU1IiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgoKCgoKPHNjcmlwdD4KICAvLyBDcmVhdGUgUHJvZHVjdCBMaXN0IGFycmF5CiAgaWYgKCFheFByb2R1Y3RMaXN0KSB7CiAgICB2YXIgYXhQcm9kdWN0TGlzdCA9IFtdOwogIH0KCiAgLy8gQ3JlYXRlIFByb2R1Y3QgY2xpY2sgYXJyYXkKICBpZiAoIWF4SXRlbSkgewogICAgdmFyIGF4SXRlbSA9IFtdOwogIH0KCiAgaWYgKCFsaXN0TmFtZSkgewogICAgdmFyIGxpc3ROYW1lID0gJyc7CiAgfSBlbHNlIHsKICAgIGxpc3ROYW1lID0gJyc7CiAgfQoKICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewogICAgLy8gT25jbGljayBldmVudAogICAgdmFyIHByb2R1Y3RDYXJkcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5ndG0tY2FyZC1wcm9kdWN0LTJ4LWh5ZHJhLWhhbmQtY2xhc3NpY2EtZS1jbGVtZW50aW5hLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiJyk7CiAgICBwcm9kdWN0Q2FyZHMuZm9yRWFjaChmdW5jdGlvbiAoY2FyZCkgewogICAgICBpZiAoY2FyZC5jbG9zZXN0KCcuZ3RtLXRyYWNraW5nLWNyb3Nzc2VsbCcpICE9PSBudWxsKSB7CiAgICAgICAgbGlzdE5hbWUgPSBjYXJkLmNsb3Nlc3QoJy5ndG0tdHJhY2tpbmctY3Jvc3NzZWxsJykuZ2V0QXR0cmlidXRlKCdndG0tdHJhY2tpbmctY3Jvc3NzZWxsJyk7CiAgICAgIH0KICAgICAgY2FyZC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uIChldmVudCkgewogICAgICAgIHZhciBwcm9kdWN0RGF0YSA9IEpTT04ucGFyc2UoY2FyZC5nZXRBdHRyaWJ1dGUoJ2d0bS1jYXJkLWRhdGEnKSk7CiAgICAgICAgLy8gTmVlZCB0byBwdXNoIGxpc3ROYW1lCiAgICAgICAgcHJvZHVjdERhdGFbJ2l0ZW1fbGlzdF9uYW1lJ10gPSBsaXN0TmFtZTsKICAgICAgICAvLyBQdXNoIGNsaWNrZWQgcHJvZHVjdAogICAgICAgIGF4SXRlbS5wdXNoKHByb2R1Y3REYXRhKTsKICAgICAgICAvLyBTZW5kICJjbGljayIgZXZlbnQKICAgICAgICBkYXRhTGF5ZXIucHVzaCh7CiAgICAgICAgICBldmVudDogJ2F4X3Byb2R1Y3RfY2xpY2snLAogICAgICAgICAgYXhJdGVtOiBheEl0ZW0KICAgICAgICB9KTsKICAgICAgfSk7CiAgICB9KTsKCiAgICAvLyBQdXNoIGFsbCBwcm9kdWN0IGluIGRhdGFMYXllcgogICAgYXhQcm9kdWN0TGlzdC5wdXNoKHsKICAgICAgaXRlbV9uYW1lOiAnMlggSFlEUkEgSEFORCBDTEFTU0lDQSBFIENMRU1FTlRJTkEnLAogICAgICBpdGVtX2lkOiAnSVRBX1BSREUwMDA1MTAxOU9BTjMzMTJDVycsCiAgICAgIHByaWNlOiAn4oKsMTAsOTAnLAogICAgICBpdGVtX2JyYW5kOiAnU1RBTkhPTUUnLAogICAgICBpdGVtX2NhdGVnb3J5MTogJ1NUQU5IT01FJywKICAgICAgaXRlbV9jYXRlZ29yeTI6ICdDdXJhIGRlbGxlIG1hbmknLAogICAgICBpdGVtX2NhdGVnb3J5MzogJycsCiAgICAgIGl0ZW1fdmFyaWFudDogJ0RlZmF1bHQgVGl0bGUnLAogICAgICBpdGVtX2xpc3RfbmFtZTogbGlzdE5hbWUKICAgIH0pOwoKICAgIC8vIFNlbmQgImZpbmlzaGVkIiBldmVudAogICAgaWYgKGF4UHJvZHVjdExpc3QubGVuZ3RoID09PSB3aW5kb3cudGhlbWUuaXRlbXNfY291bnQpIHsKICAgICAgZGF0YUxheWVyLnB1c2goewogICAgICAgIGV2ZW50OiAnYXhfcHJvZHVjdF9saXN0X2NvbXBsZXRlJywKICAgICAgICBheFByb2R1Y3RMaXN0OiBheFByb2R1Y3RMaXN0LAogICAgICB9KTsKICAgIH0KICB9KTsKCiAgZnVuY3Rpb24gY2xpY2tQcm9kdWN0KHByb2R1Y3REYXRhKSB7fQo8L3NjcmlwdD4KCgo8c2NyaXB0IGRlZmVyPgogIGZ1bmN0aW9uIHN3eW1DYWxsYmFja0ZuKHN3YXQpIHsKICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3N3eW06Y29sbGVjdGlvbnMtbG9hZGVkJywgZnVuY3Rpb24gKCkgewogICAgICBzd2F0LmluaXRpYWxpemVBY3Rpb25CdXR0b25zKCc8PENvbGxlY3Rpb25zIEdyaWQgUEFSRU5UIFNlbGVjdG9yID4+Jyk7CiAgICB9KTsKICB9CiAgaWYgKCF3aW5kb3cuU3d5bUNhbGxiYWNrcykgewogICAgd2luZG93LlN3eW1DYWxsYmFja3MgPSBbXTsKICB9CiAgd2luZG93LlN3eW1DYWxsYmFja3MucHVzaChzd3ltQ2FsbGJhY2tGbik7Cjwvc2NyaXB0PgoKCiAgICAKCiAgICA8ZGl2IGNsYXNzPSJjYXJkLXdyYXBwZXIgcHJvZHVjdC1taW5pYXR1cmUgcHJvZHVjdC1jYXJkLXdyYXBwZXIgdW5kZXJsaW5lLWxpbmtzLWhvdmVyIGd0bS1jYXJkLXByb2R1Y3QgZ3RtLWNhcmQtcHJvZHVjdC0yeC1oeWRyYS1oYW5kLWNsYXNzaWNhLWUtY2xlbWVudGluYS10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYiBjYXJkLXByb2R1Y3QiIGd0bS1jYXJkLWRhdGE9JwogICAgICAgIHsKICAgICAgICAgICAgIml0ZW1fbmFtZSI6ICIyWCBIWURSQSBIQU5EIENMQVNTSUNBIEUgQ0xFTUVOVElOQSIsCiAgICAgICAgICAgICJpdGVtX2lkIjogIklUQV9QUkRFMDAwNTEwMTlPQU4zMzEyQ1ciLAogICAgICAgICAgICAicHJpY2UiOiAi4oKsMTAsOTAiLAogICAgICAgICAgICAiaXRlbV9icmFuZCI6ICJTVEFOSE9NRSIsCiAgICAgICAgICAgICJpdGVtX2NhdGVnb3J5MSI6ICIiLAogICAgICAgICAgICAiaXRlbV9jYXRlZ29yeTIiOiAiaGFuZHMtY2FyZSIsCiAgICAgICAgICAgICJpdGVtX2NhdGVnb3J5MyI6IG51bGwsCiAgICAgICAgICAgICJpdGVtX3ZhcmlhbnQiOiAiRGVmYXVsdCBUaXRsZSIKICAgICAgICB9CiAgICAnIGRhdGEtcHJvZHVjdC1pZD0iMTA1NDI3NzczNjg5MDkiIGRhdGEtcHJvZHVjdC1uYW1lPSIyWCBIWURSQSBIQU5EIENMQVNTSUNBIEUgQ0xFTUVOVElOQSIKICBkYXRhLXByb2R1Y3QtcHJpY2U9IjEwLjkiCiAgZGF0YS1wcm9kdWN0LWJyYW5kPSJTVEFOSE9NRSIKICBkYXRhLXByb2R1Y3QtY2F0ZWdvcnk9IiIKICBkYXRhLXByb2R1Y3QtcG9zaXRpb249IiI+CiAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgY2xhc3M9IgogICAgICAgIGNhcmQgY2FyZC0tc3RhbmRhcmQKICAgICAgICAgY2FyZC0tbWVkaWEKICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgIgogICAgICAgICAgICAgICAgc3R5bGU9Ii0tcmF0aW8tcGVyY2VudDogMTAwJTsiCiAgICAgICAgPgogICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImNhcmRfX2lubmVyIGNvbG9yLWJhY2tncm91bmQtMSBncmFkaWVudCByYXRpbyIKICAgICAgICAgICAgICAgICAgICBzdHlsZT0iLS1yYXRpby1wZXJjZW50OiAxMDAlOyIKICAgICAgICAgICAgPjxkaXYgY2xhc3M9ImNhcmRfX21lZGlhIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWVkaWEgbWVkaWEtLXRyYW5zcGFyZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyY3NldD0iLy9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzA4NDYvODg4Ni8zNTY1L2ZpbGVzL2h5ZHJhX2hhbmRfZV9oeWRyYV9oYW5kX2NsZW1lbnRpbmUuanBnP3Y9MTc3MTMyMDA1MCZ3aWR0aD0xNjUgMTY1dywvL2Nkbi5zaG9waWZ5LmNvbS9zL2ZpbGVzLzEvMDg0Ni84ODg2LzM1NjUvZmlsZXMvaHlkcmFfaGFuZF9lX2h5ZHJhX2hhbmRfY2xlbWVudGluZS5qcGc/dj0xNzcxMzIwMDUwJndpZHRoPTM2MCAzNjB3LC8vY2RuLnNob3BpZnkuY29tL3MvZmlsZXMvMS8wODQ2Lzg4ODYvMzU2NS9maWxlcy9oeWRyYV9oYW5kX2VfaHlkcmFfaGFuZF9jbGVtZW50aW5lLmpwZz92PTE3NzEzMjAwNTAmd2lkdGg9NTMzIDUzM3csLy9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzA4NDYvODg4Ni8zNTY1L2ZpbGVzL2h5ZHJhX2hhbmRfZV9oeWRyYV9oYW5kX2NsZW1lbnRpbmUuanBnP3Y9MTc3MTMyMDA1MCZ3aWR0aD03MjAgNzIwdywvL2Nkbi5zaG9waWZ5LmNvbS9zL2ZpbGVzLzEvMDg0Ni84ODg2LzM1NjUvZmlsZXMvaHlkcmFfaGFuZF9lX2h5ZHJhX2hhbmRfY2xlbWVudGluZS5qcGc/dj0xNzcxMzIwMDUwJndpZHRoPTk0MCA5NDB3LC8vY2RuLnNob3BpZnkuY29tL3MvZmlsZXMvMS8wODQ2Lzg4ODYvMzU2NS9maWxlcy9oeWRyYV9oYW5kX2VfaHlkcmFfaGFuZF9jbGVtZW50aW5lLmpwZz92PTE3NzEzMjAwNTAmd2lkdGg9MTA2NiAxMDY2dywvL2Nkbi5zaG9waWZ5LmNvbS9zL2ZpbGVzLzEvMDg0Ni84ODg2LzM1NjUvZmlsZXMvaHlkcmFfaGFuZF9lX2h5ZHJhX2hhbmRfY2xlbWVudGluZS5qcGc/dj0xNzcxMzIwMDUwIDEyMDB3CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9Ii8vY2RuLnNob3BpZnkuY29tL3MvZmlsZXMvMS8wODQ2Lzg4ODYvMzU2NS9maWxlcy9oeWRyYV9oYW5kX2VfaHlkcmFfaGFuZF9jbGVtZW50aW5lLmpwZz92PTE3NzEzMjAwNTAmd2lkdGg9NTMzIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplcz0iKG1pbi13aWR0aDogMTYwMHB4KSAzNjdweCwgKG1pbi13aWR0aDogOTkwcHgpIGNhbGMoKDEwMHZ3IC0gMTMwcHgpIC8gNCksIChtaW4td2lkdGg6IDc1MHB4KSBjYWxjKCgxMDB2dyAtIDEyMHB4KSAvIDMpLCBjYWxjKCgxMDB2dyAtIDM1cHgpIC8gMikiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD0iMlggSFlEUkEgSEFORCBDTEFTU0lDQSBFIENMRU1FTlRJTkEiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJtb3Rpb24tcmVkdWNlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkaW5nPSJsYXp5IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRpbmc9ImxhenkiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD0iMTIwMCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PSIxMjAwIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PjxkaXYgY2xhc3M9ImNhcmRfX2NvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgIDwhLS0gU3d5bSBXaXNobGlzdCBQbHVzIEVQSSBCdXR0b24gd2l0aCBkZWZhdWx0IGZpcnN0IHZhcmlhbnQgLS0+CiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBhcmlhLWxhYmVsPSJBZGQgdG8gV2lzaGxpc3QiIGRhdGEtd2l0aC1lcGk9InRydWUiIGNsYXNzPSJzd3ltLWJ1dHRvbiBzd3ltLWFkZC10by13aXNobGlzdC12aWV3LXByb2R1Y3QgcHJvZHVjdF8xMDU0Mjc3NzM2ODkwOSIgZGF0YS1zd2FjdGlvbj0iYWRkVG9XaXNobGlzdCIgZGF0YS1wcm9kdWN0LWlkPSIxMDU0Mjc3NzM2ODkwOSIgZGF0YS12YXJpYW50LWlkPSI1MzM4MjM5ODI4MDAxMyIgZGF0YS1wcm9kdWN0LXVybD0iaHR0cHM6Ly93d3cuc3RhbmhvbWUuaXQvcHJvZHVjdHMvMngtaHlkcmEtaGFuZC1jbGFzc2ljYS1lLWNsZW1lbnRpbmEiPgogICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgIDwhLS0gU3d5bSBXaXNobGlzdCBQbHVzIEVQSSBCdXR0b24tLT4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19iYWRnZSB0b3AgbGVmdCI+PC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2NvbnRlbnQiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9faW5mb3JtYXRpb24iPjxkaXYgY2xhc3M9ImNhcmRfX3R5cGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgU1RBTkhPTUUKICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PHAgY2xhc3M9ImNhcmRfX2hlYWRpbmcgaDUiICBpZD0idGl0bGUtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItMTA1NDI3NzczNjg5MDkiID4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iL3Byb2R1Y3RzLzJ4LWh5ZHJhLWhhbmQtY2xhc3NpY2EtZS1jbGVtZW50aW5hIiBpZD0iQ2FyZExpbmstdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItMTA1NDI3NzczNjg5MDkiIGNsYXNzPSJmdWxsLXVuc3R5bGVkLWxpbmsgZnVsbC11bnN0eWxlZC1saW5rLXByb2R1Y3QiIGFyaWEtbGFiZWxsZWRieT0iQ2FyZExpbmstdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItMTA1NDI3NzczNjg5MDkgQmFkZ2UtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItMTA1NDI3NzczNjg5MDkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAyWCBIWURSQSBIQU5EIENMQVNTSUNBIEUgQ0xFTUVOVElOQSAKICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDwvcD4KCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fdmFyaWFudC10aXRsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDJYIEhZRFJBIEhBTkQgQ0xBU1NJQ0EgRSBDTEVNRU5USU5BCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1pbmZvcm1hdGlvbiI+PHNwYW4gY2xhc3M9ImNhcHRpb24tbGFyZ2UgbGlnaHQiPjwvc3Bhbj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2luZm9ybWF0aW9uLWZvcm0tcmF0aW5nLXByaWNlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJhdGluZy1wcmljZSI+CjxkaXYKICBjbGFzcz0iCiAgICBwcmljZSAiCj4KICA8ZGl2IGNsYXNzPSJwcmljZV9fY29udGFpbmVyIj48ZGl2IGNsYXNzPSJwcmljZV9fcmVndWxhciI+PHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiB2aXN1YWxseS1oaWRkZW4tLWlubGluZSI+UHJlenpvIGRpIGxpc3Rpbm88L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9InByaWNlLWl0ZW0gcHJpY2UtaXRlbS0tcmVndWxhciI+CiAgICAgICAgICDigqwxMCw5MAogICAgICAgIDwvc3Bhbj48L2Rpdj4KICAgIDxkaXYgY2xhc3M9InByaWNlX19zYWxlIj4KICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4gdmlzdWFsbHktaGlkZGVuLS1pbmxpbmUiPlByZXp6byBzY29udGF0bzwvc3Bhbj4KICAgICAgPHNwYW4gY2xhc3M9InByaWNlLWl0ZW0gcHJpY2UtaXRlbS0tc2FsZSBwcmljZS1pdGVtLS1sYXN0Ij4KICAgICAgICDigqwxMCw5MAogICAgICA8L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiB2aXN1YWxseS1oaWRkZW4tLWlubGluZSI+UHJlenpvIGRpIGxpc3Rpbm88L3NwYW4+CiAgICAgICAgPHNwYW4+CiAgICAgICAgICA8cyBjbGFzcz0icHJpY2UtaXRlbSBwcmljZS1pdGVtLS1yZWd1bGFyIj4KICAgICAgICAgICAgCiAgICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgPC9zPgogICAgICAgIDwvc3Bhbj48L2Rpdj4KICAgIDxzbWFsbCBjbGFzcz0idW5pdC1wcmljZSBjYXB0aW9uIGhpZGRlbiI+CiAgICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4iPlByZXp6byB1bml0YXJpbzwvc3Bhbj4KICAgICAgPHNwYW4gY2xhc3M9InByaWNlLWl0ZW0gcHJpY2UtaXRlbS11bml0IHByaWNlLWl0ZW0tLWxhc3QiPgogICAgICAgIDxzcGFuPjwvc3Bhbj4KICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj0idHJ1ZSI+Lzwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIj4mbmJzcDtwZXImbmJzcDs8L3NwYW4+CiAgICAgICAgPHNwYW4+CiAgICAgICAgPC9zcGFuPgogICAgICA8L3NwYW4+CiAgICA8L3NtYWxsPgogIDwvZGl2PjwvZGl2PgoKPC9kaXY+PGEgaHJlZj0iL3Byb2R1Y3RzLzJ4LWh5ZHJhLWhhbmQtY2xhc3NpY2EtZS1jbGVtZW50aW5hIiBjbGFzcz0icXVpY2stYWRkIHF1aWNrLWFkZC1leWUgcXVpY2stYWRkLW1vYmlsZSBleHRyYS1sYXJnZS11cC1oaWRlIj48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgYXJpYS1oaWRkZW49InRydWUiIGZvY3VzYWJsZT0iZmFsc2UiIGNsYXNzPSJpY29uIGljb24tZXllIiB3aWR0aD0iMjQuNzY0IiBoZWlnaHQ9IjEzLjMxOCI+CiAgPGcgZmlsbD0iY3VycmVudENvbG9yIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIuNyIgY2xpcC1wYXRoPSJ1cmwoI3ByZWZpeF9fYSkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIgMSkiPgogIDxwYXRoIGQ9Ik0xMC40OC40NGguMDM3YTExLjk4MyAxMS45ODMgMCAwIDEgNS42NDEgMS40MjRBMTIuMjUzIDEyLjI1MyAwIDAgMSAxOC41IDMuNDk3YTEyLjQ1NyAxMi40NTcgMCAwIDEgMS43MzQgMS44OTQgMTIuNDIyIDEyLjQyMiAwIDAgMS0xLjcyOCAyLjEwNiAxMi4wNzcgMTIuMDc3IDAgMCAxLTIuMzc5IDEuODEgMTEuNjc2IDExLjY3NiAwIDAgMS0yLjc3MSAxLjE2MSAxMS42IDExLjYgMCAwIDEtMy4wNjMuNDFoLS4wMzlhMTEuNjEzIDExLjYxMyAwIDAgMS0yLjk3Ni0uNCAxMS42NjMgMTEuNjYzIDAgMCAxLTIuNy0xLjEwNiAxMi4wNDcgMTIuMDQ3IDAgMCAxLTIuMzM1LTEuNzE3IDEyLjQgMTIuNCAwIDAgMS0xLjcxMi0yIDEyLjQ2NCAxMi40NjQgMCAwIDEgMS43NTMtMiAxMi4yNzEgMTIuMjcxIDAgMCAxIDIuMzg4LTEuNzIzIDExLjk4MiAxMS45ODIgMCAwIDEgNS44LTEuNDkzWm0wLS40NEExMi41ODcgMTIuNTg3IDAgMCAwIDAgNS42NTVhMTIuMyAxMi4zIDAgMCAwIDEwLjI1MyA1LjY2M2guMDRhMTIuMzI0IDEyLjMyNCAwIDAgMCAxMC40NzEtNS45NDJBMTIuNTc1IDEyLjU3NSAwIDAgMCAxMC41MTgtLjAwM2gtLjA0MSIvPgogIDxwYXRoIGQ9Ik0xMC4zODIuNzM0YTQuNzQxIDQuNzQxIDAgMCAxIDIuNy44MzkgNC44ODkgNC44ODkgMCAwIDEgLjcxNS42IDQuOTUgNC45NSAwIDAgMSAxLjMxOSAyLjQ5MyA1LjA4IDUuMDggMCAwIDEgMCAxLjk5MSA0Ljk0OCA0Ljk0OCAwIDAgMS0xLjMxOSAyLjQ5MyA0Ljg4OSA0Ljg4OSAwIDAgMS0uNzE1LjYgNC44IDQuOCAwIDAgMS0uODIuNDUzIDQuNzQ5IDQuNzQ5IDAgMCAxLTMuNzUzIDAgNC44IDQuOCAwIDAgMS0uODItLjQ1MyA0LjkxNSA0LjkxNSAwIDAgMS0xLjMwNi0xLjMzMSA0Ljk0OSA0Ljk0OSAwIDAgMS0uNzI4LTEuNzYzIDUuMDggNS4wOCAwIDAgMSAwLTEuOTkxIDQuOTQ0IDQuOTQ0IDAgMCAxIDEuMzE5LTIuNDkzIDQuODg5IDQuODg5IDAgMCAxIC43MTUtLjYgNC44IDQuOCAwIDAgMSAuODItLjQ1MyA0LjczIDQuNzMgMCAwIDEgMS44NzctLjM4Nm0wLS41YTUuNDI5IDUuNDI5IDAgMSAwIDUuMzMgNS40MjkgNS4zOCA1LjM4IDAgMCAwLTUuMzMtNS40MjkiLz4KICA8cGF0aCBkPSJNMTMuMDgzIDUuNzU5YTIuNjgzIDIuNjgzIDAgMSAxLTIuNjgyLTIuNzMyIDIuNzA3IDIuNzA3IDAgMCAxIDIuNjgyIDIuNzMyIi8+CiAgPC9nPgo8L3N2Zz4KICA8L2E+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2NvbnRlbnQtaG92ZXIiPgogICAgICAgICAgICAgICAgPCEtLSBTd3ltIFdpc2hsaXN0IFBsdXMgRVBJIEJ1dHRvbiB3aXRoIGRlZmF1bHQgZmlyc3QgdmFyaWFudCAtLT4KICAgICAgICAgICAgICAgIDxidXR0b24gYXJpYS1sYWJlbD0iQWRkIHRvIFdpc2hsaXN0IiBkYXRhLXdpdGgtZXBpPSJ0cnVlIiBjbGFzcz0ic3d5bS1idXR0b24gc3d5bS1hZGQtdG8td2lzaGxpc3Qtdmlldy1wcm9kdWN0IHByb2R1Y3RfMTA1NDI3NzczNjg5MDkiIGRhdGEtc3dhY3Rpb249ImFkZFRvV2lzaGxpc3QiIGRhdGEtcHJvZHVjdC1pZD0iMTA1NDI3NzczNjg5MDkiIGRhdGEtdmFyaWFudC1pZD0iNTMzODIzOTgyODAwMTMiIGRhdGEtcHJvZHVjdC11cmw9Imh0dHBzOi8vd3d3LnN0YW5ob21lLml0L3Byb2R1Y3RzLzJ4LWh5ZHJhLWhhbmQtY2xhc3NpY2EtZS1jbGVtZW50aW5hIj4KICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgPCEtLSBTd3ltIFdpc2hsaXN0IFBsdXMgRVBJIEJ1dHRvbi0tPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9faW5mb3JtYXRpb24iPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2hlYWRpbmciPgogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDJYIEhZRFJBIEhBTkQgQ0xBU1NJQ0EgRSBDTEVNRU5USU5BCiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX3ZhcmlhbnQtdGl0bGUiPgogICAgICAgICAgICAgICAgICAgICAgICAyWCBIWURSQSBIQU5EIENMQVNTSUNBIEUgQ0xFTUVOVElOQQogICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InF1aWNrLWFkZCBuby1qcy1oaWRkZW4iPjxhIGhyZWY9Ii9wcm9kdWN0cy8yeC1oeWRyYS1oYW5kLWNsYXNzaWNhLWUtY2xlbWVudGluYSIgY2xhc3M9InF1aWNrLWFkZF9fbGluayI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0icXVpY2stYWRkX19zdWJtaXQgYnV0dG9uIGJ1dHRvbi0tZnVsbC13aWR0aCBidXR0b24tLXByaW1hcnkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDUkVBIElMIFRVTyBTRVQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4=
Cgo8bGluayBocmVmPSIvL2Nkbi5zaG9waWZ5LmNvbS9zL2ZpbGVzLzEvMDg0Ni84ODg2LzM1NjUvdC8zL2Fzc2V0cy9jb21wb25lbnQtcmF0aW5nLmNzcz92PTE1Nzc3MTg1NDU5MjEzNzEzNzg0MTczMDEwNzE1OSIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KPGxpbmsgaHJlZj0iLy9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzA4NDYvODg4Ni8zNTY1L3QvMy9hc3NldHMvY29tcG9uZW50LXZvbHVtZS1wcmljaW5nLmNzcz92PTU3NjUxNDYwOTU0MzA2Mzk1MzMxNzMwMTA3MTU1IiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgoKCgoKPHNjcmlwdD4KICAvLyBDcmVhdGUgUHJvZHVjdCBMaXN0IGFycmF5CiAgaWYgKCFheFByb2R1Y3RMaXN0KSB7CiAgICB2YXIgYXhQcm9kdWN0TGlzdCA9IFtdOwogIH0KCiAgLy8gQ3JlYXRlIFByb2R1Y3QgY2xpY2sgYXJyYXkKICBpZiAoIWF4SXRlbSkgewogICAgdmFyIGF4SXRlbSA9IFtdOwogIH0KCiAgaWYgKCFsaXN0TmFtZSkgewogICAgdmFyIGxpc3ROYW1lID0gJyc7CiAgfSBlbHNlIHsKICAgIGxpc3ROYW1lID0gJyc7CiAgfQoKICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewogICAgLy8gT25jbGljayBldmVudAogICAgdmFyIHByb2R1Y3RDYXJkcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5ndG0tY2FyZC1wcm9kdWN0LTJ4LXF1aWNrLWRyeS00aW4xLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiJyk7CiAgICBwcm9kdWN0Q2FyZHMuZm9yRWFjaChmdW5jdGlvbiAoY2FyZCkgewogICAgICBpZiAoY2FyZC5jbG9zZXN0KCcuZ3RtLXRyYWNraW5nLWNyb3Nzc2VsbCcpICE9PSBudWxsKSB7CiAgICAgICAgbGlzdE5hbWUgPSBjYXJkLmNsb3Nlc3QoJy5ndG0tdHJhY2tpbmctY3Jvc3NzZWxsJykuZ2V0QXR0cmlidXRlKCdndG0tdHJhY2tpbmctY3Jvc3NzZWxsJyk7CiAgICAgIH0KICAgICAgY2FyZC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uIChldmVudCkgewogICAgICAgIHZhciBwcm9kdWN0RGF0YSA9IEpTT04ucGFyc2UoY2FyZC5nZXRBdHRyaWJ1dGUoJ2d0bS1jYXJkLWRhdGEnKSk7CiAgICAgICAgLy8gTmVlZCB0byBwdXNoIGxpc3ROYW1lCiAgICAgICAgcHJvZHVjdERhdGFbJ2l0ZW1fbGlzdF9uYW1lJ10gPSBsaXN0TmFtZTsKICAgICAgICAvLyBQdXNoIGNsaWNrZWQgcHJvZHVjdAogICAgICAgIGF4SXRlbS5wdXNoKHByb2R1Y3REYXRhKTsKICAgICAgICAvLyBTZW5kICJjbGljayIgZXZlbnQKICAgICAgICBkYXRhTGF5ZXIucHVzaCh7CiAgICAgICAgICBldmVudDogJ2F4X3Byb2R1Y3RfY2xpY2snLAogICAgICAgICAgYXhJdGVtOiBheEl0ZW0KICAgICAgICB9KTsKICAgICAgfSk7CiAgICB9KTsKCiAgICAvLyBQdXNoIGFsbCBwcm9kdWN0IGluIGRhdGFMYXllcgogICAgYXhQcm9kdWN0TGlzdC5wdXNoKHsKICAgICAgaXRlbV9uYW1lOiAnMlggUVVJQ0sgRFJZLCA0SU4xJywKICAgICAgaXRlbV9pZDogJ0lUQV9QUkRFMDAwNTEwMThPQU4zMzExQ1cnLAogICAgICBwcmljZTogJ+KCrDgsOTAnLAogICAgICBpdGVtX2JyYW5kOiAnRmxvcm1hcicsCiAgICAgIGl0ZW1fY2F0ZWdvcnkxOiAnRmxvcm1hcicsCiAgICAgIGl0ZW1fY2F0ZWdvcnkyOiAnSSBwcm9kb3R0aSBGbG9ybWFyJywKICAgICAgaXRlbV9jYXRlZ29yeTM6ICcnLAogICAgICBpdGVtX3ZhcmlhbnQ6ICdEZWZhdWx0IFRpdGxlJywKICAgICAgaXRlbV9saXN0X25hbWU6IGxpc3ROYW1lCiAgICB9KTsKCiAgICAvLyBTZW5kICJmaW5pc2hlZCIgZXZlbnQKICAgIGlmIChheFByb2R1Y3RMaXN0Lmxlbmd0aCA9PT0gd2luZG93LnRoZW1lLml0ZW1zX2NvdW50KSB7CiAgICAgIGRhdGFMYXllci5wdXNoKHsKICAgICAgICBldmVudDogJ2F4X3Byb2R1Y3RfbGlzdF9jb21wbGV0ZScsCiAgICAgICAgYXhQcm9kdWN0TGlzdDogYXhQcm9kdWN0TGlzdCwKICAgICAgfSk7CiAgICB9CiAgfSk7CgogIGZ1bmN0aW9uIGNsaWNrUHJvZHVjdChwcm9kdWN0RGF0YSkge30KPC9zY3JpcHQ+CgoKPHNjcmlwdCBkZWZlcj4KICBmdW5jdGlvbiBzd3ltQ2FsbGJhY2tGbihzd2F0KSB7CiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdzd3ltOmNvbGxlY3Rpb25zLWxvYWRlZCcsIGZ1bmN0aW9uICgpIHsKICAgICAgc3dhdC5pbml0aWFsaXplQWN0aW9uQnV0dG9ucygnPDxDb2xsZWN0aW9ucyBHcmlkIFBBUkVOVCBTZWxlY3RvciA+PicpOwogICAgfSk7CiAgfQogIGlmICghd2luZG93LlN3eW1DYWxsYmFja3MpIHsKICAgIHdpbmRvdy5Td3ltQ2FsbGJhY2tzID0gW107CiAgfQogIHdpbmRvdy5Td3ltQ2FsbGJhY2tzLnB1c2goc3d5bUNhbGxiYWNrRm4pOwo8L3NjcmlwdD4KCgogICAgCgogICAgPGRpdiBjbGFzcz0iY2FyZC13cmFwcGVyIHByb2R1Y3QtbWluaWF0dXJlIHByb2R1Y3QtY2FyZC13cmFwcGVyIHVuZGVybGluZS1saW5rcy1ob3ZlciBndG0tY2FyZC1wcm9kdWN0IGd0bS1jYXJkLXByb2R1Y3QtMngtcXVpY2stZHJ5LTRpbjEtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IgY2FyZC1wcm9kdWN0IiBndG0tY2FyZC1kYXRhPScKICAgICAgICB7CiAgICAgICAgICAgICJpdGVtX25hbWUiOiAiMlggUVVJQ0sgRFJZLCA0SU4xIiwKICAgICAgICAgICAgIml0ZW1faWQiOiAiSVRBX1BSREUwMDA1MTAxOE9BTjMzMTFDVyIsCiAgICAgICAgICAgICJwcmljZSI6ICLigqw4LDkwIiwKICAgICAgICAgICAgIml0ZW1fYnJhbmQiOiAiRmxvcm1hciIsCiAgICAgICAgICAgICJpdGVtX2NhdGVnb3J5MSI6ICIiLAogICAgICAgICAgICAiaXRlbV9jYXRlZ29yeTIiOiAib3VyLWZsb3JtYXItcHJvZHVjdHMiLAogICAgICAgICAgICAiaXRlbV9jYXRlZ29yeTMiOiBudWxsLAogICAgICAgICAgICAiaXRlbV92YXJpYW50IjogIkRlZmF1bHQgVGl0bGUiCiAgICAgICAgfQogICAgJyBkYXRhLXByb2R1Y3QtaWQ9IjEwNTQyNzc3MjA1MDY5IiBkYXRhLXByb2R1Y3QtbmFtZT0iMlggUVVJQ0sgRFJZLCA0SU4xIgogIGRhdGEtcHJvZHVjdC1wcmljZT0iOC45IgogIGRhdGEtcHJvZHVjdC1icmFuZD0iRmxvcm1hciIKICBkYXRhLXByb2R1Y3QtY2F0ZWdvcnk9IiIKICBkYXRhLXByb2R1Y3QtcG9zaXRpb249IiI+CiAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgY2xhc3M9IgogICAgICAgIGNhcmQgY2FyZC0tc3RhbmRhcmQKICAgICAgICAgY2FyZC0tbWVkaWEKICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgIgogICAgICAgICAgICAgICAgc3R5bGU9Ii0tcmF0aW8tcGVyY2VudDogMTAwJTsiCiAgICAgICAgPgogICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImNhcmRfX2lubmVyIGNvbG9yLWJhY2tncm91bmQtMSBncmFkaWVudCByYXRpbyIKICAgICAgICAgICAgICAgICAgICBzdHlsZT0iLS1yYXRpby1wZXJjZW50OiAxMDAlOyIKICAgICAgICAgICAgPjxkaXYgY2xhc3M9ImNhcmRfX21lZGlhIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWVkaWEgbWVkaWEtLXRyYW5zcGFyZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyY3NldD0iLy9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzA4NDYvODg4Ni8zNTY1L2ZpbGVzL3F1aWNrX2RyeV9leHRyYV9zaGluZV9lX25haWxfY2FyZV80aW4xLmpwZz92PTE3NzEzMjAwNDkmd2lkdGg9MTY1IDE2NXcsLy9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzA4NDYvODg4Ni8zNTY1L2ZpbGVzL3F1aWNrX2RyeV9leHRyYV9zaGluZV9lX25haWxfY2FyZV80aW4xLmpwZz92PTE3NzEzMjAwNDkmd2lkdGg9MzYwIDM2MHcsLy9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzA4NDYvODg4Ni8zNTY1L2ZpbGVzL3F1aWNrX2RyeV9leHRyYV9zaGluZV9lX25haWxfY2FyZV80aW4xLmpwZz92PTE3NzEzMjAwNDkmd2lkdGg9NTMzIDUzM3csLy9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzA4NDYvODg4Ni8zNTY1L2ZpbGVzL3F1aWNrX2RyeV9leHRyYV9zaGluZV9lX25haWxfY2FyZV80aW4xLmpwZz92PTE3NzEzMjAwNDkmd2lkdGg9NzIwIDcyMHcsLy9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzA4NDYvODg4Ni8zNTY1L2ZpbGVzL3F1aWNrX2RyeV9leHRyYV9zaGluZV9lX25haWxfY2FyZV80aW4xLmpwZz92PTE3NzEzMjAwNDkmd2lkdGg9OTQwIDk0MHcsLy9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzA4NDYvODg4Ni8zNTY1L2ZpbGVzL3F1aWNrX2RyeV9leHRyYV9zaGluZV9lX25haWxfY2FyZV80aW4xLmpwZz92PTE3NzEzMjAwNDkmd2lkdGg9MTA2NiAxMDY2dywvL2Nkbi5zaG9waWZ5LmNvbS9zL2ZpbGVzLzEvMDg0Ni84ODg2LzM1NjUvZmlsZXMvcXVpY2tfZHJ5X2V4dHJhX3NoaW5lX2VfbmFpbF9jYXJlXzRpbjEuanBnP3Y9MTc3MTMyMDA0OSAxMjAwdwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjPSIvL2Nkbi5zaG9waWZ5LmNvbS9zL2ZpbGVzLzEvMDg0Ni84ODg2LzM1NjUvZmlsZXMvcXVpY2tfZHJ5X2V4dHJhX3NoaW5lX2VfbmFpbF9jYXJlXzRpbjEuanBnP3Y9MTc3MTMyMDA0OSZ3aWR0aD01MzMiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVzPSIobWluLXdpZHRoOiAxNjAwcHgpIDM2N3B4LCAobWluLXdpZHRoOiA5OTBweCkgY2FsYygoMTAwdncgLSAxMzBweCkgLyA0KSwgKG1pbi13aWR0aDogNzUwcHgpIGNhbGMoKDEwMHZ3IC0gMTIwcHgpIC8gMyksIGNhbGMoKDEwMHZ3IC0gMzVweCkgLyAyKSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PSIyWCBRVUlDSyBEUlksIDRJTjEiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJtb3Rpb24tcmVkdWNlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkaW5nPSJsYXp5IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRpbmc9ImxhenkiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD0iMTIwMCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PSIxMjAwIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PjxkaXYgY2xhc3M9ImNhcmRfX2NvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgIDwhLS0gU3d5bSBXaXNobGlzdCBQbHVzIEVQSSBCdXR0b24gd2l0aCBkZWZhdWx0IGZpcnN0IHZhcmlhbnQgLS0+CiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBhcmlhLWxhYmVsPSJBZGQgdG8gV2lzaGxpc3QiIGRhdGEtd2l0aC1lcGk9InRydWUiIGNsYXNzPSJzd3ltLWJ1dHRvbiBzd3ltLWFkZC10by13aXNobGlzdC12aWV3LXByb2R1Y3QgcHJvZHVjdF8xMDU0Mjc3NzIwNTA2OSIgZGF0YS1zd2FjdGlvbj0iYWRkVG9XaXNobGlzdCIgZGF0YS1wcm9kdWN0LWlkPSIxMDU0Mjc3NzIwNTA2OSIgZGF0YS12YXJpYW50LWlkPSI1MzM4MjM5ODA4MzQwNSIgZGF0YS1wcm9kdWN0LXVybD0iaHR0cHM6Ly93d3cuc3RhbmhvbWUuaXQvcHJvZHVjdHMvMngtcXVpY2stZHJ5LTRpbjEiPgogICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgIDwhLS0gU3d5bSBXaXNobGlzdCBQbHVzIEVQSSBCdXR0b24tLT4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19iYWRnZSB0b3AgbGVmdCI+PC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2NvbnRlbnQiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9faW5mb3JtYXRpb24iPjxkaXYgY2xhc3M9ImNhcmRfX3R5cGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgRmxvcm1hcgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48cCBjbGFzcz0iY2FyZF9faGVhZGluZyBoNSIgIGlkPSJ0aXRsZS10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi0xMDU0Mjc3NzIwNTA2OSIgPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvcHJvZHVjdHMvMngtcXVpY2stZHJ5LTRpbjEiIGlkPSJDYXJkTGluay10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi0xMDU0Mjc3NzIwNTA2OSIgY2xhc3M9ImZ1bGwtdW5zdHlsZWQtbGluayBmdWxsLXVuc3R5bGVkLWxpbmstcHJvZHVjdCIgYXJpYS1sYWJlbGxlZGJ5PSJDYXJkTGluay10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi0xMDU0Mjc3NzIwNTA2OSBCYWRnZS10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi0xMDU0Mjc3NzIwNTA2OSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDJYIFFVSUNLIERSWSwgNElOMSAKICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDwvcD4KCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fdmFyaWFudC10aXRsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDJYIFFVSUNLIERSWSwgNElOMQogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaW5mb3JtYXRpb24iPjxzcGFuIGNsYXNzPSJjYXB0aW9uLWxhcmdlIGxpZ2h0Ij48L3NwYW4+CgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19pbmZvcm1hdGlvbi1mb3JtLXJhdGluZy1wcmljZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyYXRpbmctcHJpY2UiPgo8ZGl2CiAgY2xhc3M9IgogICAgcHJpY2UgIgo+CiAgPGRpdiBjbGFzcz0icHJpY2VfX2NvbnRhaW5lciI+PGRpdiBjbGFzcz0icHJpY2VfX3JlZ3VsYXIiPjxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4gdmlzdWFsbHktaGlkZGVuLS1pbmxpbmUiPlByZXp6byBkaSBsaXN0aW5vPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tLXJlZ3VsYXIiPgogICAgICAgICAg4oKsOCw5MAogICAgICAgIDwvc3Bhbj48L2Rpdj4KICAgIDxkaXYgY2xhc3M9InByaWNlX19zYWxlIj4KICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4gdmlzdWFsbHktaGlkZGVuLS1pbmxpbmUiPlByZXp6byBzY29udGF0bzwvc3Bhbj4KICAgICAgPHNwYW4gY2xhc3M9InByaWNlLWl0ZW0gcHJpY2UtaXRlbS0tc2FsZSBwcmljZS1pdGVtLS1sYXN0Ij4KICAgICAgICDigqw4LDkwCiAgICAgIDwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIHZpc3VhbGx5LWhpZGRlbi0taW5saW5lIj5QcmV6em8gZGkgbGlzdGlubzwvc3Bhbj4KICAgICAgICA8c3Bhbj4KICAgICAgICAgIDxzIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tLXJlZ3VsYXIiPgogICAgICAgICAgICAKICAgICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICA8L3M+CiAgICAgICAgPC9zcGFuPjwvZGl2PgogICAgPHNtYWxsIGNsYXNzPSJ1bml0LXByaWNlIGNhcHRpb24gaGlkZGVuIj4KICAgICAgPHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiI+UHJlenpvIHVuaXRhcmlvPC9zcGFuPgogICAgICA8c3BhbiBjbGFzcz0icHJpY2UtaXRlbSBwcmljZS1pdGVtLXVuaXQgcHJpY2UtaXRlbS0tbGFzdCI+CiAgICAgICAgPHNwYW4+PC9zcGFuPgogICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPSJ0cnVlIj4vPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4iPiZuYnNwO3BlciZuYnNwOzwvc3Bhbj4KICAgICAgICA8c3Bhbj4KICAgICAgICA8L3NwYW4+CiAgICAgIDwvc3Bhbj4KICAgIDwvc21hbGw+CiAgPC9kaXY+PC9kaXY+Cgo8L2Rpdj48YSBocmVmPSIvcHJvZHVjdHMvMngtcXVpY2stZHJ5LTRpbjEiIGNsYXNzPSJxdWljay1hZGQgcXVpY2stYWRkLWV5ZSBxdWljay1hZGQtbW9iaWxlIGV4dHJhLWxhcmdlLXVwLWhpZGUiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSIgY2xhc3M9Imljb24gaWNvbi1leWUiIHdpZHRoPSIyNC43NjQiIGhlaWdodD0iMTMuMzE4Ij4KICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9Ii43IiBjbGlwLXBhdGg9InVybCgjcHJlZml4X19hKSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMiAxKSI+CiAgPHBhdGggZD0iTTEwLjQ4LjQ0aC4wMzdhMTEuOTgzIDExLjk4MyAwIDAgMSA1LjY0MSAxLjQyNEExMi4yNTMgMTIuMjUzIDAgMCAxIDE4LjUgMy40OTdhMTIuNDU3IDEyLjQ1NyAwIDAgMSAxLjczNCAxLjg5NCAxMi40MjIgMTIuNDIyIDAgMCAxLTEuNzI4IDIuMTA2IDEyLjA3NyAxMi4wNzcgMCAwIDEtMi4zNzkgMS44MSAxMS42NzYgMTEuNjc2IDAgMCAxLTIuNzcxIDEuMTYxIDExLjYgMTEuNiAwIDAgMS0zLjA2My40MWgtLjAzOWExMS42MTMgMTEuNjEzIDAgMCAxLTIuOTc2LS40IDExLjY2MyAxMS42NjMgMCAwIDEtMi43LTEuMTA2IDEyLjA0NyAxMi4wNDcgMCAwIDEtMi4zMzUtMS43MTcgMTIuNCAxMi40IDAgMCAxLTEuNzEyLTIgMTIuNDY0IDEyLjQ2NCAwIDAgMSAxLjc1My0yIDEyLjI3MSAxMi4yNzEgMCAwIDEgMi4zODgtMS43MjMgMTEuOTgyIDExLjk4MiAwIDAgMSA1LjgtMS40OTNabTAtLjQ0QTEyLjU4NyAxMi41ODcgMCAwIDAgMCA1LjY1NWExMi4zIDEyLjMgMCAwIDAgMTAuMjUzIDUuNjYzaC4wNGExMi4zMjQgMTIuMzI0IDAgMCAwIDEwLjQ3MS01Ljk0MkExMi41NzUgMTIuNTc1IDAgMCAwIDEwLjUxOC0uMDAzaC0uMDQxIi8+CiAgPHBhdGggZD0iTTEwLjM4Mi43MzRhNC43NDEgNC43NDEgMCAwIDEgMi43LjgzOSA0Ljg4OSA0Ljg4OSAwIDAgMSAuNzE1LjYgNC45NSA0Ljk1IDAgMCAxIDEuMzE5IDIuNDkzIDUuMDggNS4wOCAwIDAgMSAwIDEuOTkxIDQuOTQ4IDQuOTQ4IDAgMCAxLTEuMzE5IDIuNDkzIDQuODg5IDQuODg5IDAgMCAxLS43MTUuNiA0LjggNC44IDAgMCAxLS44Mi40NTMgNC43NDkgNC43NDkgMCAwIDEtMy43NTMgMCA0LjggNC44IDAgMCAxLS44Mi0uNDUzIDQuOTE1IDQuOTE1IDAgMCAxLTEuMzA2LTEuMzMxIDQuOTQ5IDQuOTQ5IDAgMCAxLS43MjgtMS43NjMgNS4wOCA1LjA4IDAgMCAxIDAtMS45OTEgNC45NDQgNC45NDQgMCAwIDEgMS4zMTktMi40OTMgNC44ODkgNC44ODkgMCAwIDEgLjcxNS0uNiA0LjggNC44IDAgMCAxIC44Mi0uNDUzIDQuNzMgNC43MyAwIDAgMSAxLjg3Ny0uMzg2bTAtLjVhNS40MjkgNS40MjkgMCAxIDAgNS4zMyA1LjQyOSA1LjM4IDUuMzggMCAwIDAtNS4zMy01LjQyOSIvPgogIDxwYXRoIGQ9Ik0xMy4wODMgNS43NTlhMi42ODMgMi42ODMgMCAxIDEtMi42ODItMi43MzIgMi43MDcgMi43MDcgMCAwIDEgMi42ODIgMi43MzIiLz4KICA8L2c+Cjwvc3ZnPgogIDwvYT48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fY29udGVudC1ob3ZlciI+CiAgICAgICAgICAgICAgICA8IS0tIFN3eW0gV2lzaGxpc3QgUGx1cyBFUEkgQnV0dG9uIHdpdGggZGVmYXVsdCBmaXJzdCB2YXJpYW50IC0tPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBhcmlhLWxhYmVsPSJBZGQgdG8gV2lzaGxpc3QiIGRhdGEtd2l0aC1lcGk9InRydWUiIGNsYXNzPSJzd3ltLWJ1dHRvbiBzd3ltLWFkZC10by13aXNobGlzdC12aWV3LXByb2R1Y3QgcHJvZHVjdF8xMDU0Mjc3NzIwNTA2OSIgZGF0YS1zd2FjdGlvbj0iYWRkVG9XaXNobGlzdCIgZGF0YS1wcm9kdWN0LWlkPSIxMDU0Mjc3NzIwNTA2OSIgZGF0YS12YXJpYW50LWlkPSI1MzM4MjM5ODA4MzQwNSIgZGF0YS1wcm9kdWN0LXVybD0iaHR0cHM6Ly93d3cuc3RhbmhvbWUuaXQvcHJvZHVjdHMvMngtcXVpY2stZHJ5LTRpbjEiPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICA8IS0tIFN3eW0gV2lzaGxpc3QgUGx1cyBFUEkgQnV0dG9uLS0+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19pbmZvcm1hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9faGVhZGluZyI+CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMlggUVVJQ0sgRFJZLCA0SU4xCiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX3ZhcmlhbnQtdGl0bGUiPgogICAgICAgICAgICAgICAgICAgICAgICAyWCBRVUlDSyBEUlksIDRJTjEKICAgICAgICAgICAgICAgICAgICA8L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJxdWljay1hZGQgbm8tanMtaGlkZGVuIj48YSBocmVmPSIvcHJvZHVjdHMvMngtcXVpY2stZHJ5LTRpbjEiIGNsYXNzPSJxdWljay1hZGRfX2xpbmsiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InF1aWNrLWFkZF9fc3VibWl0IGJ1dHRvbiBidXR0b24tLWZ1bGwtd2lkdGggYnV0dG9uLS1wcmltYXJ5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1JFQSBJTCBUVU8gU0VUCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+
Cgo8bGluayBocmVmPSIvL2Nkbi5zaG9waWZ5LmNvbS9zL2ZpbGVzLzEvMDg0Ni84ODg2LzM1NjUvdC8zL2Fzc2V0cy9jb21wb25lbnQtcmF0aW5nLmNzcz92PTE1Nzc3MTg1NDU5MjEzNzEzNzg0MTczMDEwNzE1OSIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KPGxpbmsgaHJlZj0iLy9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzA4NDYvODg4Ni8zNTY1L3QvMy9hc3NldHMvY29tcG9uZW50LXZvbHVtZS1wcmljaW5nLmNzcz92PTU3NjUxNDYwOTU0MzA2Mzk1MzMxNzMwMTA3MTU1IiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgoKCgoKPHNjcmlwdD4KICAvLyBDcmVhdGUgUHJvZHVjdCBMaXN0IGFycmF5CiAgaWYgKCFheFByb2R1Y3RMaXN0KSB7CiAgICB2YXIgYXhQcm9kdWN0TGlzdCA9IFtdOwogIH0KCiAgLy8gQ3JlYXRlIFByb2R1Y3QgY2xpY2sgYXJyYXkKICBpZiAoIWF4SXRlbSkgewogICAgdmFyIGF4SXRlbSA9IFtdOwogIH0KCiAgaWYgKCFsaXN0TmFtZSkgewogICAgdmFyIGxpc3ROYW1lID0gJyc7CiAgfSBlbHNlIHsKICAgIGxpc3ROYW1lID0gJyc7CiAgfQoKICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewogICAgLy8gT25jbGljayBldmVudAogICAgdmFyIHByb2R1Y3RDYXJkcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5ndG0tY2FyZC1wcm9kdWN0LTJ4LXJpdHVhbGUtY2Vkcm8tdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2InKTsKICAgIHByb2R1Y3RDYXJkcy5mb3JFYWNoKGZ1bmN0aW9uIChjYXJkKSB7CiAgICAgIGlmIChjYXJkLmNsb3Nlc3QoJy5ndG0tdHJhY2tpbmctY3Jvc3NzZWxsJykgIT09IG51bGwpIHsKICAgICAgICBsaXN0TmFtZSA9IGNhcmQuY2xvc2VzdCgnLmd0bS10cmFja2luZy1jcm9zc3NlbGwnKS5nZXRBdHRyaWJ1dGUoJ2d0bS10cmFja2luZy1jcm9zc3NlbGwnKTsKICAgICAgfQogICAgICBjYXJkLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24gKGV2ZW50KSB7CiAgICAgICAgdmFyIHByb2R1Y3REYXRhID0gSlNPTi5wYXJzZShjYXJkLmdldEF0dHJpYnV0ZSgnZ3RtLWNhcmQtZGF0YScpKTsKICAgICAgICAvLyBOZWVkIHRvIHB1c2ggbGlzdE5hbWUKICAgICAgICBwcm9kdWN0RGF0YVsnaXRlbV9saXN0X25hbWUnXSA9IGxpc3ROYW1lOwogICAgICAgIC8vIFB1c2ggY2xpY2tlZCBwcm9kdWN0CiAgICAgICAgYXhJdGVtLnB1c2gocHJvZHVjdERhdGEpOwogICAgICAgIC8vIFNlbmQgImNsaWNrIiBldmVudAogICAgICAgIGRhdGFMYXllci5wdXNoKHsKICAgICAgICAgIGV2ZW50OiAnYXhfcHJvZHVjdF9jbGljaycsCiAgICAgICAgICBheEl0ZW06IGF4SXRlbQogICAgICAgIH0pOwogICAgICB9KTsKICAgIH0pOwoKICAgIC8vIFB1c2ggYWxsIHByb2R1Y3QgaW4gZGF0YUxheWVyCiAgICBheFByb2R1Y3RMaXN0LnB1c2goewogICAgICBpdGVtX25hbWU6ICcyWCBSSVRVQUxFIENFRFJPJywKICAgICAgaXRlbV9pZDogJ0lUQV9QUkRFMDAwNTEwMTZPQU4zMzA5Q1cnLAogICAgICBwcmljZTogJ+KCrDE1LDkwJywKICAgICAgaXRlbV9icmFuZDogJ0tpb3RpcycsCiAgICAgIGl0ZW1fY2F0ZWdvcnkxOiAnS2lvdGlzJywKICAgICAgaXRlbV9jYXRlZ29yeTI6ICdJIHByb2RvdHRpIEtpb3RpcycsCiAgICAgIGl0ZW1fY2F0ZWdvcnkzOiAnJywKICAgICAgaXRlbV92YXJpYW50OiAnRGVmYXVsdCBUaXRsZScsCiAgICAgIGl0ZW1fbGlzdF9uYW1lOiBsaXN0TmFtZQogICAgfSk7CgogICAgLy8gU2VuZCAiZmluaXNoZWQiIGV2ZW50CiAgICBpZiAoYXhQcm9kdWN0TGlzdC5sZW5ndGggPT09IHdpbmRvdy50aGVtZS5pdGVtc19jb3VudCkgewogICAgICBkYXRhTGF5ZXIucHVzaCh7CiAgICAgICAgZXZlbnQ6ICdheF9wcm9kdWN0X2xpc3RfY29tcGxldGUnLAogICAgICAgIGF4UHJvZHVjdExpc3Q6IGF4UHJvZHVjdExpc3QsCiAgICAgIH0pOwogICAgfQogIH0pOwoKICBmdW5jdGlvbiBjbGlja1Byb2R1Y3QocHJvZHVjdERhdGEpIHt9Cjwvc2NyaXB0PgoKCjxzY3JpcHQgZGVmZXI+CiAgZnVuY3Rpb24gc3d5bUNhbGxiYWNrRm4oc3dhdCkgewogICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignc3d5bTpjb2xsZWN0aW9ucy1sb2FkZWQnLCBmdW5jdGlvbiAoKSB7CiAgICAgIHN3YXQuaW5pdGlhbGl6ZUFjdGlvbkJ1dHRvbnMoJzw8Q29sbGVjdGlvbnMgR3JpZCBQQVJFTlQgU2VsZWN0b3IgPj4nKTsKICAgIH0pOwogIH0KICBpZiAoIXdpbmRvdy5Td3ltQ2FsbGJhY2tzKSB7CiAgICB3aW5kb3cuU3d5bUNhbGxiYWNrcyA9IFtdOwogIH0KICB3aW5kb3cuU3d5bUNhbGxiYWNrcy5wdXNoKHN3eW1DYWxsYmFja0ZuKTsKPC9zY3JpcHQ+CgoKICAgIAoKICAgIDxkaXYgY2xhc3M9ImNhcmQtd3JhcHBlciBwcm9kdWN0LW1pbmlhdHVyZSBwcm9kdWN0LWNhcmQtd3JhcHBlciB1bmRlcmxpbmUtbGlua3MtaG92ZXIgZ3RtLWNhcmQtcHJvZHVjdCBndG0tY2FyZC1wcm9kdWN0LTJ4LXJpdHVhbGUtY2Vkcm8tdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IgY2FyZC1wcm9kdWN0IiBndG0tY2FyZC1kYXRhPScKICAgICAgICB7CiAgICAgICAgICAgICJpdGVtX25hbWUiOiAiMlggUklUVUFMRSBDRURSTyIsCiAgICAgICAgICAgICJpdGVtX2lkIjogIklUQV9QUkRFMDAwNTEwMTZPQU4zMzA5Q1ciLAogICAgICAgICAgICAicHJpY2UiOiAi4oKsMTUsOTAiLAogICAgICAgICAgICAiaXRlbV9icmFuZCI6ICJLaW90aXMiLAogICAgICAgICAgICAiaXRlbV9jYXRlZ29yeTEiOiAiIiwKICAgICAgICAgICAgIml0ZW1fY2F0ZWdvcnkyIjogIm91ci1raW90aXMtcHJvZHVjdHMiLAogICAgICAgICAgICAiaXRlbV9jYXRlZ29yeTMiOiBudWxsLAogICAgICAgICAgICAiaXRlbV92YXJpYW50IjogIkRlZmF1bHQgVGl0bGUiCiAgICAgICAgfQogICAgJyBkYXRhLXByb2R1Y3QtaWQ9IjEwNTQyNzc2ODExODUzIiBkYXRhLXByb2R1Y3QtbmFtZT0iMlggUklUVUFMRSBDRURSTyIKICBkYXRhLXByb2R1Y3QtcHJpY2U9IjE1LjkiCiAgZGF0YS1wcm9kdWN0LWJyYW5kPSJLaW90aXMiCiAgZGF0YS1wcm9kdWN0LWNhdGVnb3J5PSIiCiAgZGF0YS1wcm9kdWN0LXBvc2l0aW9uPSIiPgogICAgICAgIDxkaXYKICAgICAgICAgICAgICAgIGNsYXNzPSIKICAgICAgICBjYXJkIGNhcmQtLXN0YW5kYXJkCiAgICAgICAgIGNhcmQtLW1lZGlhCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICIKICAgICAgICAgICAgICAgIHN0eWxlPSItLXJhdGlvLXBlcmNlbnQ6IDEwMCU7IgogICAgICAgID4KICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJjYXJkX19pbm5lciBjb2xvci1iYWNrZ3JvdW5kLTEgZ3JhZGllbnQgcmF0aW8iCiAgICAgICAgICAgICAgICAgICAgc3R5bGU9Ii0tcmF0aW8tcGVyY2VudDogMTAwJTsiCiAgICAgICAgICAgID48ZGl2IGNsYXNzPSJjYXJkX19tZWRpYSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1lZGlhIG1lZGlhLS10cmFuc3BhcmVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmNzZXQ9Ii8vY2RuLnNob3BpZnkuY29tL3MvZmlsZXMvMS8wODQ2Lzg4ODYvMzU2NS9maWxlcy9jZWRhcl9mYWNlX2NyZWFtX2Vfc2hhdmluZ19jcmVhbS5qcGc/dj0xNzcxMzIwMDUwJndpZHRoPTE2NSAxNjV3LC8vY2RuLnNob3BpZnkuY29tL3MvZmlsZXMvMS8wODQ2Lzg4ODYvMzU2NS9maWxlcy9jZWRhcl9mYWNlX2NyZWFtX2Vfc2hhdmluZ19jcmVhbS5qcGc/dj0xNzcxMzIwMDUwJndpZHRoPTM2MCAzNjB3LC8vY2RuLnNob3BpZnkuY29tL3MvZmlsZXMvMS8wODQ2Lzg4ODYvMzU2NS9maWxlcy9jZWRhcl9mYWNlX2NyZWFtX2Vfc2hhdmluZ19jcmVhbS5qcGc/dj0xNzcxMzIwMDUwJndpZHRoPTUzMyA1MzN3LC8vY2RuLnNob3BpZnkuY29tL3MvZmlsZXMvMS8wODQ2Lzg4ODYvMzU2NS9maWxlcy9jZWRhcl9mYWNlX2NyZWFtX2Vfc2hhdmluZ19jcmVhbS5qcGc/dj0xNzcxMzIwMDUwJndpZHRoPTcyMCA3MjB3LC8vY2RuLnNob3BpZnkuY29tL3MvZmlsZXMvMS8wODQ2Lzg4ODYvMzU2NS9maWxlcy9jZWRhcl9mYWNlX2NyZWFtX2Vfc2hhdmluZ19jcmVhbS5qcGc/dj0xNzcxMzIwMDUwJndpZHRoPTk0MCA5NDB3LC8vY2RuLnNob3BpZnkuY29tL3MvZmlsZXMvMS8wODQ2Lzg4ODYvMzU2NS9maWxlcy9jZWRhcl9mYWNlX2NyZWFtX2Vfc2hhdmluZ19jcmVhbS5qcGc/dj0xNzcxMzIwMDUwJndpZHRoPTEwNjYgMTA2NncsLy9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzA4NDYvODg4Ni8zNTY1L2ZpbGVzL2NlZGFyX2ZhY2VfY3JlYW1fZV9zaGF2aW5nX2NyZWFtLmpwZz92PTE3NzEzMjAwNTAgMTIwMHcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz0iLy9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzA4NDYvODg4Ni8zNTY1L2ZpbGVzL2NlZGFyX2ZhY2VfY3JlYW1fZV9zaGF2aW5nX2NyZWFtLmpwZz92PTE3NzEzMjAwNTAmd2lkdGg9NTMzIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplcz0iKG1pbi13aWR0aDogMTYwMHB4KSAzNjdweCwgKG1pbi13aWR0aDogOTkwcHgpIGNhbGMoKDEwMHZ3IC0gMTMwcHgpIC8gNCksIChtaW4td2lkdGg6IDc1MHB4KSBjYWxjKCgxMDB2dyAtIDEyMHB4KSAvIDMpLCBjYWxjKCgxMDB2dyAtIDM1cHgpIC8gMikiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD0iMlggUklUVUFMRSBDRURSTyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9Im1vdGlvbi1yZWR1Y2UiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRpbmc9ImxhenkiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZz0ibGF6eSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPSIxMjAwIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9IjEyMDAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+PGRpdiBjbGFzcz0iY2FyZF9fY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgPCEtLSBTd3ltIFdpc2hsaXN0IFBsdXMgRVBJIEJ1dHRvbiB3aXRoIGRlZmF1bHQgZmlyc3QgdmFyaWFudCAtLT4KICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGFyaWEtbGFiZWw9IkFkZCB0byBXaXNobGlzdCIgZGF0YS13aXRoLWVwaT0idHJ1ZSIgY2xhc3M9InN3eW0tYnV0dG9uIHN3eW0tYWRkLXRvLXdpc2hsaXN0LXZpZXctcHJvZHVjdCBwcm9kdWN0XzEwNTQyNzc2ODExODUzIiBkYXRhLXN3YWN0aW9uPSJhZGRUb1dpc2hsaXN0IiBkYXRhLXByb2R1Y3QtaWQ9IjEwNTQyNzc2ODExODUzIiBkYXRhLXZhcmlhbnQtaWQ9IjUzMzgyMzk3NTkxODg1IiBkYXRhLXByb2R1Y3QtdXJsPSJodHRwczovL3d3dy5zdGFuaG9tZS5pdC9wcm9kdWN0cy8yeC1yaXR1YWxlLWNlZHJvIj4KICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICA8IS0tIFN3eW0gV2lzaGxpc3QgUGx1cyBFUEkgQnV0dG9uLS0+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fYmFkZ2UgdG9wIGxlZnQiPjwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19jb250ZW50Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2luZm9ybWF0aW9uIj48ZGl2IGNsYXNzPSJjYXJkX190eXBlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEtpb3RpcwogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48cCBjbGFzcz0iY2FyZF9faGVhZGluZyBoNSIgIGlkPSJ0aXRsZS10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi0xMDU0Mjc3NjgxMTg1MyIgPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvcHJvZHVjdHMvMngtcml0dWFsZS1jZWRybyIgaWQ9IkNhcmRMaW5rLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTEwNTQyNzc2ODExODUzIiBjbGFzcz0iZnVsbC11bnN0eWxlZC1saW5rIGZ1bGwtdW5zdHlsZWQtbGluay1wcm9kdWN0IiBhcmlhLWxhYmVsbGVkYnk9IkNhcmRMaW5rLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTEwNTQyNzc2ODExODUzIEJhZGdlLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTEwNTQyNzc2ODExODUzIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgMlggUklUVUFMRSBDRURSTyAKICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDwvcD4KCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fdmFyaWFudC10aXRsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDJYIFJJVFVBTEUgQ0VEUk8KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWluZm9ybWF0aW9uIj48c3BhbiBjbGFzcz0iY2FwdGlvbi1sYXJnZSBsaWdodCI+PC9zcGFuPgoKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9faW5mb3JtYXRpb24tZm9ybS1yYXRpbmctcHJpY2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icmF0aW5nLXByaWNlIj4KPGRpdgogIGNsYXNzPSIKICAgIHByaWNlICIKPgogIDxkaXYgY2xhc3M9InByaWNlX19jb250YWluZXIiPjxkaXYgY2xhc3M9InByaWNlX19yZWd1bGFyIj48c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIHZpc3VhbGx5LWhpZGRlbi0taW5saW5lIj5QcmV6em8gZGkgbGlzdGlubzwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0icHJpY2UtaXRlbSBwcmljZS1pdGVtLS1yZWd1bGFyIj4KICAgICAgICAgIOKCrDE1LDkwCiAgICAgICAgPC9zcGFuPjwvZGl2PgogICAgPGRpdiBjbGFzcz0icHJpY2VfX3NhbGUiPgogICAgPHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiB2aXN1YWxseS1oaWRkZW4tLWlubGluZSI+UHJlenpvIHNjb250YXRvPC9zcGFuPgogICAgICA8c3BhbiBjbGFzcz0icHJpY2UtaXRlbSBwcmljZS1pdGVtLS1zYWxlIHByaWNlLWl0ZW0tLWxhc3QiPgogICAgICAgIOKCrDE1LDkwCiAgICAgIDwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIHZpc3VhbGx5LWhpZGRlbi0taW5saW5lIj5QcmV6em8gZGkgbGlzdGlubzwvc3Bhbj4KICAgICAgICA8c3Bhbj4KICAgICAgICAgIDxzIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tLXJlZ3VsYXIiPgogICAgICAgICAgICAKICAgICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICA8L3M+CiAgICAgICAgPC9zcGFuPjwvZGl2PgogICAgPHNtYWxsIGNsYXNzPSJ1bml0LXByaWNlIGNhcHRpb24gaGlkZGVuIj4KICAgICAgPHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiI+UHJlenpvIHVuaXRhcmlvPC9zcGFuPgogICAgICA8c3BhbiBjbGFzcz0icHJpY2UtaXRlbSBwcmljZS1pdGVtLXVuaXQgcHJpY2UtaXRlbS0tbGFzdCI+CiAgICAgICAgPHNwYW4+PC9zcGFuPgogICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPSJ0cnVlIj4vPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4iPiZuYnNwO3BlciZuYnNwOzwvc3Bhbj4KICAgICAgICA8c3Bhbj4KICAgICAgICA8L3NwYW4+CiAgICAgIDwvc3Bhbj4KICAgIDwvc21hbGw+CiAgPC9kaXY+PC9kaXY+Cgo8L2Rpdj48YSBocmVmPSIvcHJvZHVjdHMvMngtcml0dWFsZS1jZWRybyIgY2xhc3M9InF1aWNrLWFkZCBxdWljay1hZGQtZXllIHF1aWNrLWFkZC1tb2JpbGUgZXh0cmEtbGFyZ2UtdXAtaGlkZSI+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGFyaWEtaGlkZGVuPSJ0cnVlIiBmb2N1c2FibGU9ImZhbHNlIiBjbGFzcz0iaWNvbiBpY29uLWV5ZSIgd2lkdGg9IjI0Ljc2NCIgaGVpZ2h0PSIxMy4zMTgiPgogIDxnIGZpbGw9ImN1cnJlbnRDb2xvciIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iLjciIGNsaXAtcGF0aD0idXJsKCNwcmVmaXhfX2EpIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyIDEpIj4KICA8cGF0aCBkPSJNMTAuNDguNDRoLjAzN2ExMS45ODMgMTEuOTgzIDAgMCAxIDUuNjQxIDEuNDI0QTEyLjI1MyAxMi4yNTMgMCAwIDEgMTguNSAzLjQ5N2ExMi40NTcgMTIuNDU3IDAgMCAxIDEuNzM0IDEuODk0IDEyLjQyMiAxMi40MjIgMCAwIDEtMS43MjggMi4xMDYgMTIuMDc3IDEyLjA3NyAwIDAgMS0yLjM3OSAxLjgxIDExLjY3NiAxMS42NzYgMCAwIDEtMi43NzEgMS4xNjEgMTEuNiAxMS42IDAgMCAxLTMuMDYzLjQxaC0uMDM5YTExLjYxMyAxMS42MTMgMCAwIDEtMi45NzYtLjQgMTEuNjYzIDExLjY2MyAwIDAgMS0yLjctMS4xMDYgMTIuMDQ3IDEyLjA0NyAwIDAgMS0yLjMzNS0xLjcxNyAxMi40IDEyLjQgMCAwIDEtMS43MTItMiAxMi40NjQgMTIuNDY0IDAgMCAxIDEuNzUzLTIgMTIuMjcxIDEyLjI3MSAwIDAgMSAyLjM4OC0xLjcyMyAxMS45ODIgMTEuOTgyIDAgMCAxIDUuOC0xLjQ5M1ptMC0uNDRBMTIuNTg3IDEyLjU4NyAwIDAgMCAwIDUuNjU1YTEyLjMgMTIuMyAwIDAgMCAxMC4yNTMgNS42NjNoLjA0YTEyLjMyNCAxMi4zMjQgMCAwIDAgMTAuNDcxLTUuOTQyQTEyLjU3NSAxMi41NzUgMCAwIDAgMTAuNTE4LS4wMDNoLS4wNDEiLz4KICA8cGF0aCBkPSJNMTAuMzgyLjczNGE0Ljc0MSA0Ljc0MSAwIDAgMSAyLjcuODM5IDQuODg5IDQuODg5IDAgMCAxIC43MTUuNiA0Ljk1IDQuOTUgMCAwIDEgMS4zMTkgMi40OTMgNS4wOCA1LjA4IDAgMCAxIDAgMS45OTEgNC45NDggNC45NDggMCAwIDEtMS4zMTkgMi40OTMgNC44ODkgNC44ODkgMCAwIDEtLjcxNS42IDQuOCA0LjggMCAwIDEtLjgyLjQ1MyA0Ljc0OSA0Ljc0OSAwIDAgMS0zLjc1MyAwIDQuOCA0LjggMCAwIDEtLjgyLS40NTMgNC45MTUgNC45MTUgMCAwIDEtMS4zMDYtMS4zMzEgNC45NDkgNC45NDkgMCAwIDEtLjcyOC0xLjc2MyA1LjA4IDUuMDggMCAwIDEgMC0xLjk5MSA0Ljk0NCA0Ljk0NCAwIDAgMSAxLjMxOS0yLjQ5MyA0Ljg4OSA0Ljg4OSAwIDAgMSAuNzE1LS42IDQuOCA0LjggMCAwIDEgLjgyLS40NTMgNC43MyA0LjczIDAgMCAxIDEuODc3LS4zODZtMC0uNWE1LjQyOSA1LjQyOSAwIDEgMCA1LjMzIDUuNDI5IDUuMzggNS4zOCAwIDAgMC01LjMzLTUuNDI5Ii8+CiAgPHBhdGggZD0iTTEzLjA4MyA1Ljc1OWEyLjY4MyAyLjY4MyAwIDEgMS0yLjY4Mi0yLjczMiAyLjcwNyAyLjcwNyAwIDAgMSAyLjY4MiAyLjczMiIvPgogIDwvZz4KPC9zdmc+CiAgPC9hPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19jb250ZW50LWhvdmVyIj4KICAgICAgICAgICAgICAgIDwhLS0gU3d5bSBXaXNobGlzdCBQbHVzIEVQSSBCdXR0b24gd2l0aCBkZWZhdWx0IGZpcnN0IHZhcmlhbnQgLS0+CiAgICAgICAgICAgICAgICA8YnV0dG9uIGFyaWEtbGFiZWw9IkFkZCB0byBXaXNobGlzdCIgZGF0YS13aXRoLWVwaT0idHJ1ZSIgY2xhc3M9InN3eW0tYnV0dG9uIHN3eW0tYWRkLXRvLXdpc2hsaXN0LXZpZXctcHJvZHVjdCBwcm9kdWN0XzEwNTQyNzc2ODExODUzIiBkYXRhLXN3YWN0aW9uPSJhZGRUb1dpc2hsaXN0IiBkYXRhLXByb2R1Y3QtaWQ9IjEwNTQyNzc2ODExODUzIiBkYXRhLXZhcmlhbnQtaWQ9IjUzMzgyMzk3NTkxODg1IiBkYXRhLXByb2R1Y3QtdXJsPSJodHRwczovL3d3dy5zdGFuaG9tZS5pdC9wcm9kdWN0cy8yeC1yaXR1YWxlLWNlZHJvIj4KICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgPCEtLSBTd3ltIFdpc2hsaXN0IFBsdXMgRVBJIEJ1dHRvbi0tPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9faW5mb3JtYXRpb24iPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2hlYWRpbmciPgogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDJYIFJJVFVBTEUgQ0VEUk8KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fdmFyaWFudC10aXRsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDJYIFJJVFVBTEUgQ0VEUk8KICAgICAgICAgICAgICAgICAgICA8L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJxdWljay1hZGQgbm8tanMtaGlkZGVuIj48YSBocmVmPSIvcHJvZHVjdHMvMngtcml0dWFsZS1jZWRybyIgY2xhc3M9InF1aWNrLWFkZF9fbGluayI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0icXVpY2stYWRkX19zdWJtaXQgYnV0dG9uIGJ1dHRvbi0tZnVsbC13aWR0aCBidXR0b24tLXByaW1hcnkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDUkVBIElMIFRVTyBTRVQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4=
Cgo8bGluayBocmVmPSIvL2Nkbi5zaG9waWZ5LmNvbS9zL2ZpbGVzLzEvMDg0Ni84ODg2LzM1NjUvdC8zL2Fzc2V0cy9jb21wb25lbnQtcmF0aW5nLmNzcz92PTE1Nzc3MTg1NDU5MjEzNzEzNzg0MTczMDEwNzE1OSIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KPGxpbmsgaHJlZj0iLy9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzA4NDYvODg4Ni8zNTY1L3QvMy9hc3NldHMvY29tcG9uZW50LXZvbHVtZS1wcmljaW5nLmNzcz92PTU3NjUxNDYwOTU0MzA2Mzk1MzMxNzMwMTA3MTU1IiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgoKCgoKPHNjcmlwdD4KICAvLyBDcmVhdGUgUHJvZHVjdCBMaXN0IGFycmF5CiAgaWYgKCFheFByb2R1Y3RMaXN0KSB7CiAgICB2YXIgYXhQcm9kdWN0TGlzdCA9IFtdOwogIH0KCiAgLy8gQ3JlYXRlIFByb2R1Y3QgY2xpY2sgYXJyYXkKICBpZiAoIWF4SXRlbSkgewogICAgdmFyIGF4SXRlbSA9IFtdOwogIH0KCiAgaWYgKCFsaXN0TmFtZSkgewogICAgdmFyIGxpc3ROYW1lID0gJyc7CiAgfSBlbHNlIHsKICAgIGxpc3ROYW1lID0gJyc7CiAgfQoKICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewogICAgLy8gT25jbGljayBldmVudAogICAgdmFyIHByb2R1Y3RDYXJkcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5ndG0tY2FyZC1wcm9kdWN0LTJ4LXNwcmF5LWN1c2Npbm8tcGFsbS1jYW1vbS10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYicpOwogICAgcHJvZHVjdENhcmRzLmZvckVhY2goZnVuY3Rpb24gKGNhcmQpIHsKICAgICAgaWYgKGNhcmQuY2xvc2VzdCgnLmd0bS10cmFja2luZy1jcm9zc3NlbGwnKSAhPT0gbnVsbCkgewogICAgICAgIGxpc3ROYW1lID0gY2FyZC5jbG9zZXN0KCcuZ3RtLXRyYWNraW5nLWNyb3Nzc2VsbCcpLmdldEF0dHJpYnV0ZSgnZ3RtLXRyYWNraW5nLWNyb3Nzc2VsbCcpOwogICAgICB9CiAgICAgIGNhcmQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbiAoZXZlbnQpIHsKICAgICAgICB2YXIgcHJvZHVjdERhdGEgPSBKU09OLnBhcnNlKGNhcmQuZ2V0QXR0cmlidXRlKCdndG0tY2FyZC1kYXRhJykpOwogICAgICAgIC8vIE5lZWQgdG8gcHVzaCBsaXN0TmFtZQogICAgICAgIHByb2R1Y3REYXRhWydpdGVtX2xpc3RfbmFtZSddID0gbGlzdE5hbWU7CiAgICAgICAgLy8gUHVzaCBjbGlja2VkIHByb2R1Y3QKICAgICAgICBheEl0ZW0ucHVzaChwcm9kdWN0RGF0YSk7CiAgICAgICAgLy8gU2VuZCAiY2xpY2siIGV2ZW50CiAgICAgICAgZGF0YUxheWVyLnB1c2goewogICAgICAgICAgZXZlbnQ6ICdheF9wcm9kdWN0X2NsaWNrJywKICAgICAgICAgIGF4SXRlbTogYXhJdGVtCiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgfSk7CgogICAgLy8gUHVzaCBhbGwgcHJvZHVjdCBpbiBkYXRhTGF5ZXIKICAgIGF4UHJvZHVjdExpc3QucHVzaCh7CiAgICAgIGl0ZW1fbmFtZTogJzJYIFNQUkFZIENVU0NJTk8gUEFMTS5DQU1PTS4nLAogICAgICBpdGVtX2lkOiAnSVRBX1BSREUwMDA1MTAxNE9BTjMzMDZDVycsCiAgICAgIHByaWNlOiAn4oKsMjcsOTAnLAogICAgICBpdGVtX2JyYW5kOiAnS2lvdGlzJywKICAgICAgaXRlbV9jYXRlZ29yeTE6ICdLaW90aXMnLAogICAgICBpdGVtX2NhdGVnb3J5MjogJ0kgcHJvZG90dGkgS2lvdGlzJywKICAgICAgaXRlbV9jYXRlZ29yeTM6ICcnLAogICAgICBpdGVtX3ZhcmlhbnQ6ICdEZWZhdWx0IFRpdGxlJywKICAgICAgaXRlbV9saXN0X25hbWU6IGxpc3ROYW1lCiAgICB9KTsKCiAgICAvLyBTZW5kICJmaW5pc2hlZCIgZXZlbnQKICAgIGlmIChheFByb2R1Y3RMaXN0Lmxlbmd0aCA9PT0gd2luZG93LnRoZW1lLml0ZW1zX2NvdW50KSB7CiAgICAgIGRhdGFMYXllci5wdXNoKHsKICAgICAgICBldmVudDogJ2F4X3Byb2R1Y3RfbGlzdF9jb21wbGV0ZScsCiAgICAgICAgYXhQcm9kdWN0TGlzdDogYXhQcm9kdWN0TGlzdCwKICAgICAgfSk7CiAgICB9CiAgfSk7CgogIGZ1bmN0aW9uIGNsaWNrUHJvZHVjdChwcm9kdWN0RGF0YSkge30KPC9zY3JpcHQ+CgoKPHNjcmlwdCBkZWZlcj4KICBmdW5jdGlvbiBzd3ltQ2FsbGJhY2tGbihzd2F0KSB7CiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdzd3ltOmNvbGxlY3Rpb25zLWxvYWRlZCcsIGZ1bmN0aW9uICgpIHsKICAgICAgc3dhdC5pbml0aWFsaXplQWN0aW9uQnV0dG9ucygnPDxDb2xsZWN0aW9ucyBHcmlkIFBBUkVOVCBTZWxlY3RvciA+PicpOwogICAgfSk7CiAgfQogIGlmICghd2luZG93LlN3eW1DYWxsYmFja3MpIHsKICAgIHdpbmRvdy5Td3ltQ2FsbGJhY2tzID0gW107CiAgfQogIHdpbmRvdy5Td3ltQ2FsbGJhY2tzLnB1c2goc3d5bUNhbGxiYWNrRm4pOwo8L3NjcmlwdD4KCgogICAgCgogICAgPGRpdiBjbGFzcz0iY2FyZC13cmFwcGVyIHByb2R1Y3QtbWluaWF0dXJlIHByb2R1Y3QtY2FyZC13cmFwcGVyIHVuZGVybGluZS1saW5rcy1ob3ZlciBndG0tY2FyZC1wcm9kdWN0IGd0bS1jYXJkLXByb2R1Y3QtMngtc3ByYXktY3VzY2luby1wYWxtLWNhbW9tLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiIGNhcmQtcHJvZHVjdCIgZ3RtLWNhcmQtZGF0YT0nCiAgICAgICAgewogICAgICAgICAgICAiaXRlbV9uYW1lIjogIjJYIFNQUkFZIENVU0NJTk8gUEFMTS5DQU1PTS4iLAogICAgICAgICAgICAiaXRlbV9pZCI6ICJJVEFfUFJERTAwMDUxMDE0T0FOMzMwNkNXIiwKICAgICAgICAgICAgInByaWNlIjogIuKCrDI3LDkwIiwKICAgICAgICAgICAgIml0ZW1fYnJhbmQiOiAiS2lvdGlzIiwKICAgICAgICAgICAgIml0ZW1fY2F0ZWdvcnkxIjogIiIsCiAgICAgICAgICAgICJpdGVtX2NhdGVnb3J5MiI6ICJvdXIta2lvdGlzLXByb2R1Y3RzIiwKICAgICAgICAgICAgIml0ZW1fY2F0ZWdvcnkzIjogbnVsbCwKICAgICAgICAgICAgIml0ZW1fdmFyaWFudCI6ICJEZWZhdWx0IFRpdGxlIgogICAgICAgIH0KICAgICcgZGF0YS1wcm9kdWN0LWlkPSIxMDU0Mjc3NjUxNjk0MSIgZGF0YS1wcm9kdWN0LW5hbWU9IjJYIFNQUkFZIENVU0NJTk8gUEFMTS5DQU1PTS4iCiAgZGF0YS1wcm9kdWN0LXByaWNlPSIyNy45IgogIGRhdGEtcHJvZHVjdC1icmFuZD0iS2lvdGlzIgogIGRhdGEtcHJvZHVjdC1jYXRlZ29yeT0iIgogIGRhdGEtcHJvZHVjdC1wb3NpdGlvbj0iIj4KICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICBjbGFzcz0iCiAgICAgICAgY2FyZCBjYXJkLS1zdGFuZGFyZAogICAgICAgICBjYXJkLS1tZWRpYQogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAiCiAgICAgICAgICAgICAgICBzdHlsZT0iLS1yYXRpby1wZXJjZW50OiAxMDAlOyIKICAgICAgICA+CiAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICBjbGFzcz0iY2FyZF9faW5uZXIgY29sb3ItYmFja2dyb3VuZC0xIGdyYWRpZW50IHJhdGlvIgogICAgICAgICAgICAgICAgICAgIHN0eWxlPSItLXJhdGlvLXBlcmNlbnQ6IDEwMCU7IgogICAgICAgICAgICA+PGRpdiBjbGFzcz0iY2FyZF9fbWVkaWEiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZWRpYSBtZWRpYS0tdHJhbnNwYXJlbnQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3Jjc2V0PSIvL2Nkbi5zaG9waWZ5LmNvbS9zL2ZpbGVzLzEvMDg0Ni84ODg2LzM1NjUvZmlsZXMvQ2Ftb21pbGxlX1BhbG1hcm9zYV9waWxsb3dfbWlzdC5qcGc/dj0xNzcxMzIwMDQ4JndpZHRoPTE2NSAxNjV3LC8vY2RuLnNob3BpZnkuY29tL3MvZmlsZXMvMS8wODQ2Lzg4ODYvMzU2NS9maWxlcy9DYW1vbWlsbGVfUGFsbWFyb3NhX3BpbGxvd19taXN0LmpwZz92PTE3NzEzMjAwNDgmd2lkdGg9MzYwIDM2MHcsLy9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzA4NDYvODg4Ni8zNTY1L2ZpbGVzL0NhbW9taWxsZV9QYWxtYXJvc2FfcGlsbG93X21pc3QuanBnP3Y9MTc3MTMyMDA0OCZ3aWR0aD01MzMgNTMzdywvL2Nkbi5zaG9waWZ5LmNvbS9zL2ZpbGVzLzEvMDg0Ni84ODg2LzM1NjUvZmlsZXMvQ2Ftb21pbGxlX1BhbG1hcm9zYV9waWxsb3dfbWlzdC5qcGc/dj0xNzcxMzIwMDQ4JndpZHRoPTcyMCA3MjB3LC8vY2RuLnNob3BpZnkuY29tL3MvZmlsZXMvMS8wODQ2Lzg4ODYvMzU2NS9maWxlcy9DYW1vbWlsbGVfUGFsbWFyb3NhX3BpbGxvd19taXN0LmpwZz92PTE3NzEzMjAwNDgmd2lkdGg9OTQwIDk0MHcsLy9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzA4NDYvODg4Ni8zNTY1L2ZpbGVzL0NhbW9taWxsZV9QYWxtYXJvc2FfcGlsbG93X21pc3QuanBnP3Y9MTc3MTMyMDA0OCZ3aWR0aD0xMDY2IDEwNjZ3LC8vY2RuLnNob3BpZnkuY29tL3MvZmlsZXMvMS8wODQ2Lzg4ODYvMzU2NS9maWxlcy9DYW1vbWlsbGVfUGFsbWFyb3NhX3BpbGxvd19taXN0LmpwZz92PTE3NzEzMjAwNDggMTIwMHcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz0iLy9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzA4NDYvODg4Ni8zNTY1L2ZpbGVzL0NhbW9taWxsZV9QYWxtYXJvc2FfcGlsbG93X21pc3QuanBnP3Y9MTc3MTMyMDA0OCZ3aWR0aD01MzMiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVzPSIobWluLXdpZHRoOiAxNjAwcHgpIDM2N3B4LCAobWluLXdpZHRoOiA5OTBweCkgY2FsYygoMTAwdncgLSAxMzBweCkgLyA0KSwgKG1pbi13aWR0aDogNzUwcHgpIGNhbGMoKDEwMHZ3IC0gMTIwcHgpIC8gMyksIGNhbGMoKDEwMHZ3IC0gMzVweCkgLyAyKSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PSIyWCBTUFJBWSBDVVNDSU5PIFBBTE0uQ0FNT00uIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0ibW90aW9uLXJlZHVjZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZz0ibGF6eSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkaW5nPSJsYXp5IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9IjEyMDAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD0iMTIwMCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj48ZGl2IGNsYXNzPSJjYXJkX19jb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICA8IS0tIFN3eW0gV2lzaGxpc3QgUGx1cyBFUEkgQnV0dG9uIHdpdGggZGVmYXVsdCBmaXJzdCB2YXJpYW50IC0tPgogICAgICAgICAgICAgICAgICAgIDxidXR0b24gYXJpYS1sYWJlbD0iQWRkIHRvIFdpc2hsaXN0IiBkYXRhLXdpdGgtZXBpPSJ0cnVlIiBjbGFzcz0ic3d5bS1idXR0b24gc3d5bS1hZGQtdG8td2lzaGxpc3Qtdmlldy1wcm9kdWN0IHByb2R1Y3RfMTA1NDI3NzY1MTY5NDEiIGRhdGEtc3dhY3Rpb249ImFkZFRvV2lzaGxpc3QiIGRhdGEtcHJvZHVjdC1pZD0iMTA1NDI3NzY1MTY5NDEiIGRhdGEtdmFyaWFudC1pZD0iNTMzODIzOTcyNjQyMDUiIGRhdGEtcHJvZHVjdC11cmw9Imh0dHBzOi8vd3d3LnN0YW5ob21lLml0L3Byb2R1Y3RzLzJ4LXNwcmF5LWN1c2Npbm8tcGFsbS1jYW1vbSI+CiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgPCEtLSBTd3ltIFdpc2hsaXN0IFBsdXMgRVBJIEJ1dHRvbi0tPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2JhZGdlIHRvcCBsZWZ0Ij48L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fY29udGVudCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19pbmZvcm1hdGlvbiI+PGRpdiBjbGFzcz0iY2FyZF9fdHlwZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBLaW90aXMKICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PHAgY2xhc3M9ImNhcmRfX2hlYWRpbmcgaDUiICBpZD0idGl0bGUtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItMTA1NDI3NzY1MTY5NDEiID4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iL3Byb2R1Y3RzLzJ4LXNwcmF5LWN1c2Npbm8tcGFsbS1jYW1vbSIgaWQ9IkNhcmRMaW5rLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTEwNTQyNzc2NTE2OTQxIiBjbGFzcz0iZnVsbC11bnN0eWxlZC1saW5rIGZ1bGwtdW5zdHlsZWQtbGluay1wcm9kdWN0IiBhcmlhLWxhYmVsbGVkYnk9IkNhcmRMaW5rLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTEwNTQyNzc2NTE2OTQxIEJhZGdlLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTEwNTQyNzc2NTE2OTQxIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNFVCAyIFNQUkFZIFBFUiBDVVNDSU5PIFBBTE1BUk9TQSBFIENBTU9NSUxMQSBBIFNDRUxUQSAKICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDwvcD4KCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fdmFyaWFudC10aXRsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDJYIFNQUkFZIENVU0NJTk8gUEFMTS5DQU1PTS4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWluZm9ybWF0aW9uIj48c3BhbiBjbGFzcz0iY2FwdGlvbi1sYXJnZSBsaWdodCI+PC9zcGFuPgoKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9faW5mb3JtYXRpb24tZm9ybS1yYXRpbmctcHJpY2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icmF0aW5nLXByaWNlIj4KPGRpdgogIGNsYXNzPSIKICAgIHByaWNlICIKPgogIDxkaXYgY2xhc3M9InByaWNlX19jb250YWluZXIiPjxkaXYgY2xhc3M9InByaWNlX19yZWd1bGFyIj48c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIHZpc3VhbGx5LWhpZGRlbi0taW5saW5lIj5QcmV6em8gZGkgbGlzdGlubzwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0icHJpY2UtaXRlbSBwcmljZS1pdGVtLS1yZWd1bGFyIj4KICAgICAgICAgIOKCrDI3LDkwCiAgICAgICAgPC9zcGFuPjwvZGl2PgogICAgPGRpdiBjbGFzcz0icHJpY2VfX3NhbGUiPgogICAgPHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiB2aXN1YWxseS1oaWRkZW4tLWlubGluZSI+UHJlenpvIHNjb250YXRvPC9zcGFuPgogICAgICA8c3BhbiBjbGFzcz0icHJpY2UtaXRlbSBwcmljZS1pdGVtLS1zYWxlIHByaWNlLWl0ZW0tLWxhc3QiPgogICAgICAgIOKCrDI3LDkwCiAgICAgIDwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIHZpc3VhbGx5LWhpZGRlbi0taW5saW5lIj5QcmV6em8gZGkgbGlzdGlubzwvc3Bhbj4KICAgICAgICA8c3Bhbj4KICAgICAgICAgIDxzIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tLXJlZ3VsYXIiPgogICAgICAgICAgICAKICAgICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICA8L3M+CiAgICAgICAgPC9zcGFuPjwvZGl2PgogICAgPHNtYWxsIGNsYXNzPSJ1bml0LXByaWNlIGNhcHRpb24gaGlkZGVuIj4KICAgICAgPHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiI+UHJlenpvIHVuaXRhcmlvPC9zcGFuPgogICAgICA8c3BhbiBjbGFzcz0icHJpY2UtaXRlbSBwcmljZS1pdGVtLXVuaXQgcHJpY2UtaXRlbS0tbGFzdCI+CiAgICAgICAgPHNwYW4+PC9zcGFuPgogICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPSJ0cnVlIj4vPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4iPiZuYnNwO3BlciZuYnNwOzwvc3Bhbj4KICAgICAgICA8c3Bhbj4KICAgICAgICA8L3NwYW4+CiAgICAgIDwvc3Bhbj4KICAgIDwvc21hbGw+CiAgPC9kaXY+PC9kaXY+Cgo8L2Rpdj48YSBocmVmPSIvcHJvZHVjdHMvMngtc3ByYXktY3VzY2luby1wYWxtLWNhbW9tIiBjbGFzcz0icXVpY2stYWRkIHF1aWNrLWFkZC1leWUgcXVpY2stYWRkLW1vYmlsZSBleHRyYS1sYXJnZS11cC1oaWRlIj48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgYXJpYS1oaWRkZW49InRydWUiIGZvY3VzYWJsZT0iZmFsc2UiIGNsYXNzPSJpY29uIGljb24tZXllIiB3aWR0aD0iMjQuNzY0IiBoZWlnaHQ9IjEzLjMxOCI+CiAgPGcgZmlsbD0iY3VycmVudENvbG9yIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIuNyIgY2xpcC1wYXRoPSJ1cmwoI3ByZWZpeF9fYSkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIgMSkiPgogIDxwYXRoIGQ9Ik0xMC40OC40NGguMDM3YTExLjk4MyAxMS45ODMgMCAwIDEgNS42NDEgMS40MjRBMTIuMjUzIDEyLjI1MyAwIDAgMSAxOC41IDMuNDk3YTEyLjQ1NyAxMi40NTcgMCAwIDEgMS43MzQgMS44OTQgMTIuNDIyIDEyLjQyMiAwIDAgMS0xLjcyOCAyLjEwNiAxMi4wNzcgMTIuMDc3IDAgMCAxLTIuMzc5IDEuODEgMTEuNjc2IDExLjY3NiAwIDAgMS0yLjc3MSAxLjE2MSAxMS42IDExLjYgMCAwIDEtMy4wNjMuNDFoLS4wMzlhMTEuNjEzIDExLjYxMyAwIDAgMS0yLjk3Ni0uNCAxMS42NjMgMTEuNjYzIDAgMCAxLTIuNy0xLjEwNiAxMi4wNDcgMTIuMDQ3IDAgMCAxLTIuMzM1LTEuNzE3IDEyLjQgMTIuNCAwIDAgMS0xLjcxMi0yIDEyLjQ2NCAxMi40NjQgMCAwIDEgMS43NTMtMiAxMi4yNzEgMTIuMjcxIDAgMCAxIDIuMzg4LTEuNzIzIDExLjk4MiAxMS45ODIgMCAwIDEgNS44LTEuNDkzWm0wLS40NEExMi41ODcgMTIuNTg3IDAgMCAwIDAgNS42NTVhMTIuMyAxMi4zIDAgMCAwIDEwLjI1MyA1LjY2M2guMDRhMTIuMzI0IDEyLjMyNCAwIDAgMCAxMC40NzEtNS45NDJBMTIuNTc1IDEyLjU3NSAwIDAgMCAxMC41MTgtLjAwM2gtLjA0MSIvPgogIDxwYXRoIGQ9Ik0xMC4zODIuNzM0YTQuNzQxIDQuNzQxIDAgMCAxIDIuNy44MzkgNC44ODkgNC44ODkgMCAwIDEgLjcxNS42IDQuOTUgNC45NSAwIDAgMSAxLjMxOSAyLjQ5MyA1LjA4IDUuMDggMCAwIDEgMCAxLjk5MSA0Ljk0OCA0Ljk0OCAwIDAgMS0xLjMxOSAyLjQ5MyA0Ljg4OSA0Ljg4OSAwIDAgMS0uNzE1LjYgNC44IDQuOCAwIDAgMS0uODIuNDUzIDQuNzQ5IDQuNzQ5IDAgMCAxLTMuNzUzIDAgNC44IDQuOCAwIDAgMS0uODItLjQ1MyA0LjkxNSA0LjkxNSAwIDAgMS0xLjMwNi0xLjMzMSA0Ljk0OSA0Ljk0OSAwIDAgMS0uNzI4LTEuNzYzIDUuMDggNS4wOCAwIDAgMSAwLTEuOTkxIDQuOTQ0IDQuOTQ0IDAgMCAxIDEuMzE5LTIuNDkzIDQuODg5IDQuODg5IDAgMCAxIC43MTUtLjYgNC44IDQuOCAwIDAgMSAuODItLjQ1MyA0LjczIDQuNzMgMCAwIDEgMS44NzctLjM4Nm0wLS41YTUuNDI5IDUuNDI5IDAgMSAwIDUuMzMgNS40MjkgNS4zOCA1LjM4IDAgMCAwLTUuMzMtNS40MjkiLz4KICA8cGF0aCBkPSJNMTMuMDgzIDUuNzU5YTIuNjgzIDIuNjgzIDAgMSAxLTIuNjgyLTIuNzMyIDIuNzA3IDIuNzA3IDAgMCAxIDIuNjgyIDIuNzMyIi8+CiAgPC9nPgo8L3N2Zz4KICA8L2E+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2NvbnRlbnQtaG92ZXIiPgogICAgICAgICAgICAgICAgPCEtLSBTd3ltIFdpc2hsaXN0IFBsdXMgRVBJIEJ1dHRvbiB3aXRoIGRlZmF1bHQgZmlyc3QgdmFyaWFudCAtLT4KICAgICAgICAgICAgICAgIDxidXR0b24gYXJpYS1sYWJlbD0iQWRkIHRvIFdpc2hsaXN0IiBkYXRhLXdpdGgtZXBpPSJ0cnVlIiBjbGFzcz0ic3d5bS1idXR0b24gc3d5bS1hZGQtdG8td2lzaGxpc3Qtdmlldy1wcm9kdWN0IHByb2R1Y3RfMTA1NDI3NzY1MTY5NDEiIGRhdGEtc3dhY3Rpb249ImFkZFRvV2lzaGxpc3QiIGRhdGEtcHJvZHVjdC1pZD0iMTA1NDI3NzY1MTY5NDEiIGRhdGEtdmFyaWFudC1pZD0iNTMzODIzOTcyNjQyMDUiIGRhdGEtcHJvZHVjdC11cmw9Imh0dHBzOi8vd3d3LnN0YW5ob21lLml0L3Byb2R1Y3RzLzJ4LXNwcmF5LWN1c2Npbm8tcGFsbS1jYW1vbSI+CiAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgIDwhLS0gU3d5bSBXaXNobGlzdCBQbHVzIEVQSSBCdXR0b24tLT4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2luZm9ybWF0aW9uIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19oZWFkaW5nIj4KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTRVQgMiBTUFJBWSBQRVIgQ1VTQ0lOTyBQQUxNQVJPU0EgRSBDQU1PTUlMTEEgQSBTQ0VMVEEKICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fdmFyaWFudC10aXRsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDJYIFNQUkFZIENVU0NJTk8gUEFMTS5DQU1PTS4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj48dWwgY2xhc3M9Imxpc3QtdW5zdHlsZWQgY2FyZF9fdmFyaWFudC1rZXlfcG9pbnRzIj48bGk+PHNwYW4+UHJvZnVtYSBjdXNjaW5pIGUgbGVuenVvbGEgY29uIHVuYSBmcmFncmFuemEgcmlsYXNzYW50ZSBlIGZyZXNjYS48L3NwYW4+PC9saT48bGk+PHNwYW4+Rm9ybXVsYSBhIGJhc2UgZGkgb2xpbyBlc3NlbnppYWxlIGRpIFBhbG1hcm9zYSBlIENhbW9taWxsYTwvc3Bhbj48L2xpPjxsaT48c3Bhbj5Db250aWVuZSBvbHRyZSBpbCA5OSUgZGkgaW5ncmVkaWVudGkgZGkgb3JpZ2luZSBuYXR1cmFsZTwvc3Bhbj48L2xpPjwvdWw+PC9kaXY+PGRpdiBjbGFzcz0icXVpY2stYWRkIG5vLWpzLWhpZGRlbiI+PGEgaHJlZj0iL3Byb2R1Y3RzLzJ4LXNwcmF5LWN1c2Npbm8tcGFsbS1jYW1vbSIgY2xhc3M9InF1aWNrLWFkZF9fbGluayI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0icXVpY2stYWRkX19zdWJtaXQgYnV0dG9uIGJ1dHRvbi0tZnVsbC13aWR0aCBidXR0b24tLXByaW1hcnkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDUkVBIElMIFRVTyBTRVQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4=
Cgo8bGluayBocmVmPSIvL2Nkbi5zaG9waWZ5LmNvbS9zL2ZpbGVzLzEvMDg0Ni84ODg2LzM1NjUvdC8zL2Fzc2V0cy9jb21wb25lbnQtcmF0aW5nLmNzcz92PTE1Nzc3MTg1NDU5MjEzNzEzNzg0MTczMDEwNzE1OSIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KPGxpbmsgaHJlZj0iLy9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzA4NDYvODg4Ni8zNTY1L3QvMy9hc3NldHMvY29tcG9uZW50LXZvbHVtZS1wcmljaW5nLmNzcz92PTU3NjUxNDYwOTU0MzA2Mzk1MzMxNzMwMTA3MTU1IiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgoKCgoKPHNjcmlwdD4KICAvLyBDcmVhdGUgUHJvZHVjdCBMaXN0IGFycmF5CiAgaWYgKCFheFByb2R1Y3RMaXN0KSB7CiAgICB2YXIgYXhQcm9kdWN0TGlzdCA9IFtdOwogIH0KCiAgLy8gQ3JlYXRlIFByb2R1Y3QgY2xpY2sgYXJyYXkKICBpZiAoIWF4SXRlbSkgewogICAgdmFyIGF4SXRlbSA9IFtdOwogIH0KCiAgaWYgKCFsaXN0TmFtZSkgewogICAgdmFyIGxpc3ROYW1lID0gJyc7CiAgfSBlbHNlIHsKICAgIGxpc3ROYW1lID0gJyc7CiAgfQoKICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewogICAgLy8gT25jbGljayBldmVudAogICAgdmFyIHByb2R1Y3RDYXJkcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5ndG0tY2FyZC1wcm9kdWN0LTJ4LXN3ZWV0LWxpcHMtNC04LWdyLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiJyk7CiAgICBwcm9kdWN0Q2FyZHMuZm9yRWFjaChmdW5jdGlvbiAoY2FyZCkgewogICAgICBpZiAoY2FyZC5jbG9zZXN0KCcuZ3RtLXRyYWNraW5nLWNyb3Nzc2VsbCcpICE9PSBudWxsKSB7CiAgICAgICAgbGlzdE5hbWUgPSBjYXJkLmNsb3Nlc3QoJy5ndG0tdHJhY2tpbmctY3Jvc3NzZWxsJykuZ2V0QXR0cmlidXRlKCdndG0tdHJhY2tpbmctY3Jvc3NzZWxsJyk7CiAgICAgIH0KICAgICAgY2FyZC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uIChldmVudCkgewogICAgICAgIHZhciBwcm9kdWN0RGF0YSA9IEpTT04ucGFyc2UoY2FyZC5nZXRBdHRyaWJ1dGUoJ2d0bS1jYXJkLWRhdGEnKSk7CiAgICAgICAgLy8gTmVlZCB0byBwdXNoIGxpc3ROYW1lCiAgICAgICAgcHJvZHVjdERhdGFbJ2l0ZW1fbGlzdF9uYW1lJ10gPSBsaXN0TmFtZTsKICAgICAgICAvLyBQdXNoIGNsaWNrZWQgcHJvZHVjdAogICAgICAgIGF4SXRlbS5wdXNoKHByb2R1Y3REYXRhKTsKICAgICAgICAvLyBTZW5kICJjbGljayIgZXZlbnQKICAgICAgICBkYXRhTGF5ZXIucHVzaCh7CiAgICAgICAgICBldmVudDogJ2F4X3Byb2R1Y3RfY2xpY2snLAogICAgICAgICAgYXhJdGVtOiBheEl0ZW0KICAgICAgICB9KTsKICAgICAgfSk7CiAgICB9KTsKCiAgICAvLyBQdXNoIGFsbCBwcm9kdWN0IGluIGRhdGFMYXllcgogICAgYXhQcm9kdWN0TGlzdC5wdXNoKHsKICAgICAgaXRlbV9uYW1lOiAnMlggU1dFRVQgTElQUyA0LDggR1InLAogICAgICBpdGVtX2lkOiAnSVRBX1BSREUwMDAzNzkxMVcnLAogICAgICBwcmljZTogJ+KCrDExLDAwJywKICAgICAgaXRlbV9icmFuZDogJ1N0YW5ob21lJywKICAgICAgaXRlbV9jYXRlZ29yeTE6ICdTdGFuaG9tZScsCiAgICAgIGl0ZW1fY2F0ZWdvcnkyOiAnSSBwcm9kb3R0aSBTdGFuaG9tZScsCiAgICAgIGl0ZW1fY2F0ZWdvcnkzOiAnJywKICAgICAgaXRlbV92YXJpYW50OiAnRGVmYXVsdCBUaXRsZScsCiAgICAgIGl0ZW1fbGlzdF9uYW1lOiBsaXN0TmFtZQogICAgfSk7CgogICAgLy8gU2VuZCAiZmluaXNoZWQiIGV2ZW50CiAgICBpZiAoYXhQcm9kdWN0TGlzdC5sZW5ndGggPT09IHdpbmRvdy50aGVtZS5pdGVtc19jb3VudCkgewogICAgICBkYXRhTGF5ZXIucHVzaCh7CiAgICAgICAgZXZlbnQ6ICdheF9wcm9kdWN0X2xpc3RfY29tcGxldGUnLAogICAgICAgIGF4UHJvZHVjdExpc3Q6IGF4UHJvZHVjdExpc3QsCiAgICAgIH0pOwogICAgfQogIH0pOwoKICBmdW5jdGlvbiBjbGlja1Byb2R1Y3QocHJvZHVjdERhdGEpIHt9Cjwvc2NyaXB0PgoKCjxzY3JpcHQgZGVmZXI+CiAgZnVuY3Rpb24gc3d5bUNhbGxiYWNrRm4oc3dhdCkgewogICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignc3d5bTpjb2xsZWN0aW9ucy1sb2FkZWQnLCBmdW5jdGlvbiAoKSB7CiAgICAgIHN3YXQuaW5pdGlhbGl6ZUFjdGlvbkJ1dHRvbnMoJzw8Q29sbGVjdGlvbnMgR3JpZCBQQVJFTlQgU2VsZWN0b3IgPj4nKTsKICAgIH0pOwogIH0KICBpZiAoIXdpbmRvdy5Td3ltQ2FsbGJhY2tzKSB7CiAgICB3aW5kb3cuU3d5bUNhbGxiYWNrcyA9IFtdOwogIH0KICB3aW5kb3cuU3d5bUNhbGxiYWNrcy5wdXNoKHN3eW1DYWxsYmFja0ZuKTsKPC9zY3JpcHQ+CgoKICAgIAoKICAgIDxkaXYgY2xhc3M9ImNhcmQtd3JhcHBlciBwcm9kdWN0LW1pbmlhdHVyZSBwcm9kdWN0LWNhcmQtd3JhcHBlciB1bmRlcmxpbmUtbGlua3MtaG92ZXIgZ3RtLWNhcmQtcHJvZHVjdCBndG0tY2FyZC1wcm9kdWN0LTJ4LXN3ZWV0LWxpcHMtNC04LWdyLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiIGNhcmQtcHJvZHVjdCIgZ3RtLWNhcmQtZGF0YT0nCiAgICAgICAgewogICAgICAgICAgICAiaXRlbV9uYW1lIjogIjJYIFNXRUVUIExJUFMgNCw4IEdSIiwKICAgICAgICAgICAgIml0ZW1faWQiOiAiSVRBX1BSREUwMDAzNzkxMVciLAogICAgICAgICAgICAicHJpY2UiOiAi4oKsMTEsMDAiLAogICAgICAgICAgICAiaXRlbV9icmFuZCI6ICJTdGFuaG9tZSIsCiAgICAgICAgICAgICJpdGVtX2NhdGVnb3J5MSI6ICIiLAogICAgICAgICAgICAiaXRlbV9jYXRlZ29yeTIiOiAib3VyLXN0YW5ob21lLXByb2R1Y3RzIiwKICAgICAgICAgICAgIml0ZW1fY2F0ZWdvcnkzIjogbnVsbCwKICAgICAgICAgICAgIml0ZW1fdmFyaWFudCI6ICJEZWZhdWx0IFRpdGxlIgogICAgICAgIH0KICAgICcgZGF0YS1wcm9kdWN0LWlkPSIxMDU0Mjc3NTc5NjA0NSIgZGF0YS1wcm9kdWN0LW5hbWU9IjJYIFNXRUVUIExJUFMgNCw4IEdSIgogIGRhdGEtcHJvZHVjdC1wcmljZT0iMTEuMCIKICBkYXRhLXByb2R1Y3QtYnJhbmQ9IlN0YW5ob21lIgogIGRhdGEtcHJvZHVjdC1jYXRlZ29yeT0iIgogIGRhdGEtcHJvZHVjdC1wb3NpdGlvbj0iIj4KICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICBjbGFzcz0iCiAgICAgICAgY2FyZCBjYXJkLS1zdGFuZGFyZAogICAgICAgICBjYXJkLS1tZWRpYQogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAiCiAgICAgICAgICAgICAgICBzdHlsZT0iLS1yYXRpby1wZXJjZW50OiAxMDAlOyIKICAgICAgICA+CiAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICBjbGFzcz0iY2FyZF9faW5uZXIgY29sb3ItYmFja2dyb3VuZC0xIGdyYWRpZW50IHJhdGlvIgogICAgICAgICAgICAgICAgICAgIHN0eWxlPSItLXJhdGlvLXBlcmNlbnQ6IDEwMCU7IgogICAgICAgICAgICA+PGRpdiBjbGFzcz0iY2FyZF9fbWVkaWEiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZWRpYSBtZWRpYS0tdHJhbnNwYXJlbnQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3Jjc2V0PSIvL2Nkbi5zaG9waWZ5LmNvbS9zL2ZpbGVzLzEvMDg0Ni84ODg2LzM1NjUvZmlsZXMvMnhfc3dlZXRfbGlwcy5qcGc/dj0xNzcxMzIwMDM5JndpZHRoPTE2NSAxNjV3LC8vY2RuLnNob3BpZnkuY29tL3MvZmlsZXMvMS8wODQ2Lzg4ODYvMzU2NS9maWxlcy8yeF9zd2VldF9saXBzLmpwZz92PTE3NzEzMjAwMzkmd2lkdGg9MzYwIDM2MHcsLy9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzA4NDYvODg4Ni8zNTY1L2ZpbGVzLzJ4X3N3ZWV0X2xpcHMuanBnP3Y9MTc3MTMyMDAzOSZ3aWR0aD01MzMgNTMzdywvL2Nkbi5zaG9waWZ5LmNvbS9zL2ZpbGVzLzEvMDg0Ni84ODg2LzM1NjUvZmlsZXMvMnhfc3dlZXRfbGlwcy5qcGc/dj0xNzcxMzIwMDM5JndpZHRoPTcyMCA3MjB3LC8vY2RuLnNob3BpZnkuY29tL3MvZmlsZXMvMS8wODQ2Lzg4ODYvMzU2NS9maWxlcy8yeF9zd2VldF9saXBzLmpwZz92PTE3NzEzMjAwMzkmd2lkdGg9OTQwIDk0MHcsLy9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzA4NDYvODg4Ni8zNTY1L2ZpbGVzLzJ4X3N3ZWV0X2xpcHMuanBnP3Y9MTc3MTMyMDAzOSZ3aWR0aD0xMDY2IDEwNjZ3LC8vY2RuLnNob3BpZnkuY29tL3MvZmlsZXMvMS8wODQ2Lzg4ODYvMzU2NS9maWxlcy8yeF9zd2VldF9saXBzLmpwZz92PTE3NzEzMjAwMzkgMTIwMHcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz0iLy9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzA4NDYvODg4Ni8zNTY1L2ZpbGVzLzJ4X3N3ZWV0X2xpcHMuanBnP3Y9MTc3MTMyMDAzOSZ3aWR0aD01MzMiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVzPSIobWluLXdpZHRoOiAxNjAwcHgpIDM2N3B4LCAobWluLXdpZHRoOiA5OTBweCkgY2FsYygoMTAwdncgLSAxMzBweCkgLyA0KSwgKG1pbi13aWR0aDogNzUwcHgpIGNhbGMoKDEwMHZ3IC0gMTIwcHgpIC8gMyksIGNhbGMoKDEwMHZ3IC0gMzVweCkgLyAyKSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PSIyWCBTV0VFVCBMSVBTIDQsOCBHUiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9Im1vdGlvbi1yZWR1Y2UiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRpbmc9ImxhenkiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZz0ibGF6eSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPSIxMjAwIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9IjEyMDAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+PGRpdiBjbGFzcz0iY2FyZF9fY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgPCEtLSBTd3ltIFdpc2hsaXN0IFBsdXMgRVBJIEJ1dHRvbiB3aXRoIGRlZmF1bHQgZmlyc3QgdmFyaWFudCAtLT4KICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGFyaWEtbGFiZWw9IkFkZCB0byBXaXNobGlzdCIgZGF0YS13aXRoLWVwaT0idHJ1ZSIgY2xhc3M9InN3eW0tYnV0dG9uIHN3eW0tYWRkLXRvLXdpc2hsaXN0LXZpZXctcHJvZHVjdCBwcm9kdWN0XzEwNTQyNzc1Nzk2MDQ1IiBkYXRhLXN3YWN0aW9uPSJhZGRUb1dpc2hsaXN0IiBkYXRhLXByb2R1Y3QtaWQ9IjEwNTQyNzc1Nzk2MDQ1IiBkYXRhLXZhcmlhbnQtaWQ9IjUzMzgyMzk2MzQ2NzAxIiBkYXRhLXByb2R1Y3QtdXJsPSJodHRwczovL3d3dy5zdGFuaG9tZS5pdC9wcm9kdWN0cy8yeC1zd2VldC1saXBzLTQtOC1nciI+CiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgPCEtLSBTd3ltIFdpc2hsaXN0IFBsdXMgRVBJIEJ1dHRvbi0tPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2JhZGdlIHRvcCBsZWZ0Ij48L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fY29udGVudCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19pbmZvcm1hdGlvbiI+PGRpdiBjbGFzcz0iY2FyZF9fdHlwZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdGFuaG9tZQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48cCBjbGFzcz0iY2FyZF9faGVhZGluZyBoNSIgIGlkPSJ0aXRsZS10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi0xMDU0Mjc3NTc5NjA0NSIgPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvcHJvZHVjdHMvMngtc3dlZXQtbGlwcy00LTgtZ3IiIGlkPSJDYXJkTGluay10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi0xMDU0Mjc3NTc5NjA0NSIgY2xhc3M9ImZ1bGwtdW5zdHlsZWQtbGluayBmdWxsLXVuc3R5bGVkLWxpbmstcHJvZHVjdCIgYXJpYS1sYWJlbGxlZGJ5PSJDYXJkTGluay10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi0xMDU0Mjc3NTc5NjA0NSBCYWRnZS10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi0xMDU0Mjc3NTc5NjA0NSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTRVQgMiBTV0VFVCBMSVBTIAogICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPC9wPgoKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX192YXJpYW50LXRpdGxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgMlggU1dFRVQgTElQUyA0LDggR1IKICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWluZm9ybWF0aW9uIj48c3BhbiBjbGFzcz0iY2FwdGlvbi1sYXJnZSBsaWdodCI+PC9zcGFuPgoKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9faW5mb3JtYXRpb24tZm9ybS1yYXRpbmctcHJpY2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icmF0aW5nLXByaWNlIj4KPGRpdgogIGNsYXNzPSIKICAgIHByaWNlICIKPgogIDxkaXYgY2xhc3M9InByaWNlX19jb250YWluZXIiPjxkaXYgY2xhc3M9InByaWNlX19yZWd1bGFyIj48c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIHZpc3VhbGx5LWhpZGRlbi0taW5saW5lIj5QcmV6em8gZGkgbGlzdGlubzwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0icHJpY2UtaXRlbSBwcmljZS1pdGVtLS1yZWd1bGFyIj4KICAgICAgICAgIOKCrDExLDAwCiAgICAgICAgPC9zcGFuPjwvZGl2PgogICAgPGRpdiBjbGFzcz0icHJpY2VfX3NhbGUiPgogICAgPHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiB2aXN1YWxseS1oaWRkZW4tLWlubGluZSI+UHJlenpvIHNjb250YXRvPC9zcGFuPgogICAgICA8c3BhbiBjbGFzcz0icHJpY2UtaXRlbSBwcmljZS1pdGVtLS1zYWxlIHByaWNlLWl0ZW0tLWxhc3QiPgogICAgICAgIOKCrDExLDAwCiAgICAgIDwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIHZpc3VhbGx5LWhpZGRlbi0taW5saW5lIj5QcmV6em8gZGkgbGlzdGlubzwvc3Bhbj4KICAgICAgICA8c3Bhbj4KICAgICAgICAgIDxzIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tLXJlZ3VsYXIiPgogICAgICAgICAgICAKICAgICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICA8L3M+CiAgICAgICAgPC9zcGFuPjwvZGl2PgogICAgPHNtYWxsIGNsYXNzPSJ1bml0LXByaWNlIGNhcHRpb24gaGlkZGVuIj4KICAgICAgPHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiI+UHJlenpvIHVuaXRhcmlvPC9zcGFuPgogICAgICA8c3BhbiBjbGFzcz0icHJpY2UtaXRlbSBwcmljZS1pdGVtLXVuaXQgcHJpY2UtaXRlbS0tbGFzdCI+CiAgICAgICAgPHNwYW4+PC9zcGFuPgogICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPSJ0cnVlIj4vPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4iPiZuYnNwO3BlciZuYnNwOzwvc3Bhbj4KICAgICAgICA8c3Bhbj4KICAgICAgICA8L3NwYW4+CiAgICAgIDwvc3Bhbj4KICAgIDwvc21hbGw+CiAgPC9kaXY+PC9kaXY+Cgo8L2Rpdj48YSBocmVmPSIvcHJvZHVjdHMvMngtc3dlZXQtbGlwcy00LTgtZ3IiIGNsYXNzPSJxdWljay1hZGQgcXVpY2stYWRkLWV5ZSBxdWljay1hZGQtbW9iaWxlIGV4dHJhLWxhcmdlLXVwLWhpZGUiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSIgY2xhc3M9Imljb24gaWNvbi1leWUiIHdpZHRoPSIyNC43NjQiIGhlaWdodD0iMTMuMzE4Ij4KICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9Ii43IiBjbGlwLXBhdGg9InVybCgjcHJlZml4X19hKSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMiAxKSI+CiAgPHBhdGggZD0iTTEwLjQ4LjQ0aC4wMzdhMTEuOTgzIDExLjk4MyAwIDAgMSA1LjY0MSAxLjQyNEExMi4yNTMgMTIuMjUzIDAgMCAxIDE4LjUgMy40OTdhMTIuNDU3IDEyLjQ1NyAwIDAgMSAxLjczNCAxLjg5NCAxMi40MjIgMTIuNDIyIDAgMCAxLTEuNzI4IDIuMTA2IDEyLjA3NyAxMi4wNzcgMCAwIDEtMi4zNzkgMS44MSAxMS42NzYgMTEuNjc2IDAgMCAxLTIuNzcxIDEuMTYxIDExLjYgMTEuNiAwIDAgMS0zLjA2My40MWgtLjAzOWExMS42MTMgMTEuNjEzIDAgMCAxLTIuOTc2LS40IDExLjY2MyAxMS42NjMgMCAwIDEtMi43LTEuMTA2IDEyLjA0NyAxMi4wNDcgMCAwIDEtMi4zMzUtMS43MTcgMTIuNCAxMi40IDAgMCAxLTEuNzEyLTIgMTIuNDY0IDEyLjQ2NCAwIDAgMSAxLjc1My0yIDEyLjI3MSAxMi4yNzEgMCAwIDEgMi4zODgtMS43MjMgMTEuOTgyIDExLjk4MiAwIDAgMSA1LjgtMS40OTNabTAtLjQ0QTEyLjU4NyAxMi41ODcgMCAwIDAgMCA1LjY1NWExMi4zIDEyLjMgMCAwIDAgMTAuMjUzIDUuNjYzaC4wNGExMi4zMjQgMTIuMzI0IDAgMCAwIDEwLjQ3MS01Ljk0MkExMi41NzUgMTIuNTc1IDAgMCAwIDEwLjUxOC0uMDAzaC0uMDQxIi8+CiAgPHBhdGggZD0iTTEwLjM4Mi43MzRhNC43NDEgNC43NDEgMCAwIDEgMi43LjgzOSA0Ljg4OSA0Ljg4OSAwIDAgMSAuNzE1LjYgNC45NSA0Ljk1IDAgMCAxIDEuMzE5IDIuNDkzIDUuMDggNS4wOCAwIDAgMSAwIDEuOTkxIDQuOTQ4IDQuOTQ4IDAgMCAxLTEuMzE5IDIuNDkzIDQuODg5IDQuODg5IDAgMCAxLS43MTUuNiA0LjggNC44IDAgMCAxLS44Mi40NTMgNC43NDkgNC43NDkgMCAwIDEtMy43NTMgMCA0LjggNC44IDAgMCAxLS44Mi0uNDUzIDQuOTE1IDQuOTE1IDAgMCAxLTEuMzA2LTEuMzMxIDQuOTQ5IDQuOTQ5IDAgMCAxLS43MjgtMS43NjMgNS4wOCA1LjA4IDAgMCAxIDAtMS45OTEgNC45NDQgNC45NDQgMCAwIDEgMS4zMTktMi40OTMgNC44ODkgNC44ODkgMCAwIDEgLjcxNS0uNiA0LjggNC44IDAgMCAxIC44Mi0uNDUzIDQuNzMgNC43MyAwIDAgMSAxLjg3Ny0uMzg2bTAtLjVhNS40MjkgNS40MjkgMCAxIDAgNS4zMyA1LjQyOSA1LjM4IDUuMzggMCAwIDAtNS4zMy01LjQyOSIvPgogIDxwYXRoIGQ9Ik0xMy4wODMgNS43NTlhMi42ODMgMi42ODMgMCAxIDEtMi42ODItMi43MzIgMi43MDcgMi43MDcgMCAwIDEgMi42ODIgMi43MzIiLz4KICA8L2c+Cjwvc3ZnPgogIDwvYT48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fY29udGVudC1ob3ZlciI+CiAgICAgICAgICAgICAgICA8IS0tIFN3eW0gV2lzaGxpc3QgUGx1cyBFUEkgQnV0dG9uIHdpdGggZGVmYXVsdCBmaXJzdCB2YXJpYW50IC0tPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBhcmlhLWxhYmVsPSJBZGQgdG8gV2lzaGxpc3QiIGRhdGEtd2l0aC1lcGk9InRydWUiIGNsYXNzPSJzd3ltLWJ1dHRvbiBzd3ltLWFkZC10by13aXNobGlzdC12aWV3LXByb2R1Y3QgcHJvZHVjdF8xMDU0Mjc3NTc5NjA0NSIgZGF0YS1zd2FjdGlvbj0iYWRkVG9XaXNobGlzdCIgZGF0YS1wcm9kdWN0LWlkPSIxMDU0Mjc3NTc5NjA0NSIgZGF0YS12YXJpYW50LWlkPSI1MzM4MjM5NjM0NjcwMSIgZGF0YS1wcm9kdWN0LXVybD0iaHR0cHM6Ly93d3cuc3RhbmhvbWUuaXQvcHJvZHVjdHMvMngtc3dlZXQtbGlwcy00LTgtZ3IiPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICA8IS0tIFN3eW0gV2lzaGxpc3QgUGx1cyBFUEkgQnV0dG9uLS0+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19pbmZvcm1hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9faGVhZGluZyI+CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgU0VUIDIgU1dFRVQgTElQUwogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX192YXJpYW50LXRpdGxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgMlggU1dFRVQgTElQUyA0LDggR1IKICAgICAgICAgICAgICAgICAgICA8L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJxdWljay1hZGQgbm8tanMtaGlkZGVuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii9wcm9kdWN0cy8yeC1zd2VldC1saXBzLTQtOC1nciIgY2xhc3M9InF1aWNrLWFkZF9fbGluayI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0icXVpY2stYWRkX19zdWJtaXQgYnV0dG9uIGJ1dHRvbi0tZnVsbC13aWR0aCBidXR0b24tLXByaW1hcnkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTQ09QUkkgREkgUEnDmQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+