@codecademy/brand 3.37.0-alpha.ebb9d29302.0 → 3.37.0-alpha.f03070da25.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/MarketingBanner.js +5 -3
- package/dist/AppHeader/AppHeaderElements/AppHeaderDropdown/index.js +5 -3
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/NavTabs.js +21 -64
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/PanelLayout.js +7 -13
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/elements.d.ts +0 -6
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/elements.js +19 -30
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/index.js +55 -57
- package/dist/AppHeader/Search/SearchPane.js +10 -10
- package/dist/AppHeaderMobile/AppHeaderMainMenuMobile/index.js +2 -1
- package/dist/ContentGroupBaseCard/index.js +5 -3
- package/dist/GlobalFooter/FooterNavLinks/ReferralRock/ReferAFriendLinkWithModal.js +5 -3
- package/dist/GlobalHeader/context.js +1 -1
- package/dist/GlobalHeader/types.d.ts +1 -0
- package/dist/LandingPage/PageFeaturesWithReferences.js +1 -0
- package/dist/LayoutMenu/AccordionMenu.js +2 -2
- package/dist/LayoutMenuVariant/AccordionMenu.js +6 -4
- package/dist/Logos/LogoFromSkillsoft/index.js +1 -0
- package/dist/PlanCard/index.js +9 -7
- package/dist/RatingsBar/index.js +5 -3
- package/dist/stories/Organisms/GlobalHeader/About.stories.js +1 -3
- package/dist/stories/Organisms/GlobalHeader/Anon.stories.js +1 -3
- package/dist/stories/Organisms/GlobalHeader/Bootcamp.stories.js +1 -3
- package/dist/stories/Organisms/GlobalHeader/Enterprise.stories.js +1 -3
- package/dist/stories/Organisms/GlobalHeader/Free.stories.js +1 -3
- package/dist/stories/Organisms/GlobalHeader/Pro.stories.js +1 -3
- package/dist/stories/Organisms/GlobalHeader/Simple.stories.js +1 -3
- package/dist/stories/Organisms/GlobalPage.stories.js +1 -3
- package/package.json +2 -2
|
@@ -37,7 +37,7 @@ const QueryContainer = /*#__PURE__*/_styled(ContentContainer, {
|
|
|
37
37
|
px: {
|
|
38
38
|
_: 24
|
|
39
39
|
}
|
|
40
|
-
}), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvU2VhcmNoL1NlYXJjaFBhbmUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXFDdUIiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL0FwcEhlYWRlci9TZWFyY2gvU2VhcmNoUGFuZS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYWRnZSxcbiAgQm94LFxuICBDb250ZW50Q29udGFpbmVyLFxuICBGbGV4Qm94LFxuICBGb2N1c1RyYXAsXG4gIEljb25CdXR0b24sXG4gIE1lbnUsXG4gIE1lbnVJdGVtLFxuICBTaGltbWVyLFxuICBTdHJva2VCdXR0b24sXG4gIFRleHQsXG59IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCB7IE1pbmlEZWxldGVJY29uLCBTZWFyY2hJY29uIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtaWNvbnMnO1xuaW1wb3J0IHsgY3NzLCB0aGVtZSwgdXNlQ3VycmVudE1vZGUgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IHVzZU9uRXNjSGFuZGxlciB9IGZyb20gJy4uL3NoYXJlZCc7XG5pbXBvcnQgeyBzZWFyY2hQbGFjZWhvbGRlciB9IGZyb20gJy4vY29uc3RzJztcbmltcG9ydCB7IFBvcHVsYXJDb250ZW50LCBQb3B1bGFyU2VhcmNoZXMgfSBmcm9tICcuL0RlZmF1bHRSZXN1bHRzJztcbmltcG9ydCB7IHVzZVVybENoYW5nZURldGVjdGlvbiB9IGZyb20gJy4vaG9va3MvdXNlVXJsQ2hhbmdlRGV0ZWN0aW9uJztcbmltcG9ydCB7IFF1aXpBbmRIZWxwQ2VudGVyTGlua3MgfSBmcm9tICcuL1F1aXpBbmRIZWxwQ2VudGVyTGlua3MnO1xuaW1wb3J0IHsgc2FmZWx5UmVkaXJlY3QgfSBmcm9tICcuL3NhZmVseVJlZGlyZWN0JztcbmltcG9ydCB7IHVzZVNlYXJjaFRyYWNraW5nQ29udGV4dCB9IGZyb20gJy4vU2VhcmNoVHJhY2tpbmdQcm92aWRlcic7XG5pbXBvcnQgeyBzZWFyY2hXb3JrZXIgfSBmcm9tICcuL1NlYXJjaFdvcmtlcic7XG5pbXBvcnQgdHlwZSB7XG4gIEF1dG9jb21wbGV0ZVN1Z2dlc3Rpb24sXG4gIFNlYXJjaEFzWW91VHlwZVJlc3VsdHMsXG59IGZyb20gJy4vU2VhcmNoV29ya2VyL3R5cGVzJztcbmltcG9ydCB7IFNlYXJjaFBhbmVQcm9wcyB9IGZyb20gJy4vdHlwZXMnO1xuXG5jb25zdCBGb3JtID0gQm94LndpdGhDb21wb25lbnQoJ2Zvcm0nKTtcbmNvbnN0IElucHV0ID0gQm94LndpdGhDb21wb25lbnQoJ2lucHV0Jyk7XG5cbmNvbnN0IFF1ZXJ5Q29udGFpbmVyID0gc3R5bGVkKENvbnRlbnRDb250YWluZXIpKFxuICBjc3Moe1xuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICB3aWR0aDogJzEwMCUnLFxuICAgIHB0OiAxNixcbiAgICBwYjogeyBfOiAwLCBtZDogMjQgfSxcbiAgICBweDogeyBfOiAyNCB9LFxuICB9KVxuKTtcblxuY29uc3QgU3VnZ2VzdGlvbkNvbnRhaW5lciA9IHN0eWxlZChDb250ZW50Q29udGFpbmVyKShcbiAgY3NzKHtcbiAgICBwdDogMTYsXG4gICAgcGI6IHsgXzogMCwgbWQ6IDI0IH0sXG4gICAgcHg6IHsgXzogMjQgfSxcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZElucHV0ID0gc3R5bGVkKElucHV0KShcbiAgY3NzKHtcbiAgICBvdXRsaW5lOiBgbm9uZWAsXG4gICAgJyY6OnBsYWNlaG9sZGVyJzoge1xuICAgICAgdGV4dENvbG9yOiB0aGVtZS5jb2xvcnNbJ3RleHQtc2Vjb25kYXJ5J10gYXMgbmV2ZXIsXG4gICAgfSxcbiAgfSlcbik7XG5cbmNvbnN0IElubGluZVJlc3VsdExpID0gc3R5bGVkKE1lbnVJdGVtKShcbiAgY3NzKHtcbiAgICBwbDogMCxcbiAgICBweTogOCxcbiAgICBmb250U2l6ZTogMTYsXG4gICAgJyY6Zm9jdXMtdmlzaWJsZTphZnRlcic6IHtcbiAgICAgIGxlZnQ6IC00LFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBJbmxpbmVMb2FkZXJMaSA9IHN0eWxlZC5saShcbiAgY3NzKHtcbiAgICBsaXN0U3R5bGVUeXBlOiAnbm9uZScsXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGdhcDogMTIsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gIH0pXG4pO1xuXG5leHBvcnQgY29uc3QgU2VtaWJvbGRTZWFyY2hJY29uID0gc3R5bGVkKFNlYXJjaEljb24pYFxuICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuICBjaXJjbGUsXG4gIHBhdGgge1xuICAgIHN0cm9rZS13aWR0aDogMnB4O1xuICB9XG4gIHJlY3Qge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0ycHgsIC0ycHgpO1xuICAgIGhlaWdodDogY2FsYygxMDAlICsgNHB4KTtcbiAgICB3aWR0aDogY2FsYygxMDAlICsgNHB4KTtcbiAgfVxuYDtcblxuY29uc3QgRWxsaXBzaXNCb3ggPSBzdHlsZWQoQm94KWBcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5gO1xuXG5jb25zdCBIaWdobGlnaHRlZFRleHQgPSAoe1xuICBzdWdnZXN0aW9uOiB7IHRpdGxlLCBzZWdtZW50cyB9LFxufToge1xuICBzdWdnZXN0aW9uOiBBdXRvY29tcGxldGVTdWdnZXN0aW9uO1xufSkgPT4ge1xuICBjb25zdCBtb2RlID0gdXNlQ3VycmVudE1vZGUoKTtcbiAgY29uc3QgaGlnaGxpZ2h0Q29sb3IgPSBtb2RlID09PSAnZGFyaycgPyAnaHlwZXInIDogJ3llbGxvdyc7XG5cbiAgcmV0dXJuIChcbiAgICA8RmxleEJveD5cbiAgICAgIDxFbGxpcHNpc0JveFxuICAgICAgICBtYXhXaWR0aD1cImNhbGMoMTAwdncgLSAxMjhweClcIlxuICAgICAgICB3aGl0ZVNwYWNlPVwicHJlXCJcbiAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgb3ZlcmZsb3c9XCJoaWRkZW5cIlxuICAgICAgPlxuICAgICAgICB7c2VnbWVudHMubWFwKChzZWdtZW50LCBpKSA9PiAoXG4gICAgICAgICAgPFRleHRcbiAgICAgICAgICAgIGtleT17YCR7dGl0bGV9OiR7aS50b1N0cmluZygpfWB9XG4gICAgICAgICAgICBsaW5lSGVpZ2h0PVwidGl0bGVcIlxuICAgICAgICAgICAgey4uLihzZWdtZW50LmhpZ2hsaWdodFxuICAgICAgICAgICAgICA/IHsgYmc6IGhpZ2hsaWdodENvbG9yLCBmb250V2VpZ2h0OiAnYm9sZCcgfVxuICAgICAgICAgICAgICA6IHt9KX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7c2VnbWVudC52YWx1ZX1cbiAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICkpfVxuICAgICAgPC9FbGxpcHNpc0JveD5cbiAgICAgIDxUZXh0IHNjcmVlbnJlYWRlcj57dGl0bGV9PC9UZXh0PlxuICAgIDwvRmxleEJveD5cbiAgKTtcbn07XG5cbnR5cGUgU2VhcmNoQXNZb3VUeXBlTG9hZGVyID0ge1xuICBzaGltbWVyUm93czoge1xuICAgIGtleTogc3RyaW5nO1xuICAgIHNoaW1tZXJzOiB7XG4gICAgICBrZXk6IHN0cmluZztcbiAgICAgIHdpZHRoOiBudW1iZXI7XG4gICAgfVtdO1xuICB9W107XG59O1xuXG5sZXQgbG9hZGVyS2V5ID0gMDtcbmZ1bmN0aW9uIHJuZExvYWRlcigpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBsdXNwbHVzXG4gIGNvbnN0IGtleSA9IGxvYWRlcktleSsrO1xuICBjb25zdCBsb2FkZXI6IFNlYXJjaEFzWW91VHlwZUxvYWRlciA9IHsgc2hpbW1lclJvd3M6IFtdIH07XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgNTsgaSsrKSB7XG4gICAgY29uc3Qgcm93ID0ge1xuICAgICAga2V5OiBgJHtrZXl9OiR7aX1gLFxuICAgICAgc2hpbW1lcnM6IFtdIGFzIHsga2V5OiBzdHJpbmc7IHdpZHRoOiBudW1iZXIgfVtdLFxuICAgIH07XG4gICAgY29uc3Qgd29yZHMgPSBNYXRoLmNlaWwoTWF0aC5yYW5kb20oKSAqIDMpO1xuICAgIGZvciAobGV0IGogPSAwOyBqIDwgd29yZHM7IGorKykge1xuICAgICAgY29uc3Qgd2lkdGggPSAxMiArIE1hdGgucm91bmQoTWF0aC5yYW5kb20oKSAqIDk2KTtcbiAgICAgIHJvdy5zaGltbWVycy5wdXNoKHtcbiAgICAgICAga2V5OiBgJHtrZXl9OiR7an1gLFxuICAgICAgICB3aWR0aCxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBsb2FkZXIuc2hpbW1lclJvd3MucHVzaChyb3cpO1xuICB9XG4gIHJldHVybiBsb2FkZXI7XG59XG5cbmV4cG9ydCBjb25zdCBTZWFyY2hQYW5lOiBSZWFjdC5GQzxTZWFyY2hQYW5lUHJvcHM+ID0gKHtcbiAgb25TZWFyY2gsXG4gIG9uVHJhY2tpbmdDbGljayxcbiAgc2VhcmNoQnV0dG9uUmVmLFxuICB0b2dnbGVTZWFyY2gsXG4gIG9uU2VhcmNoQXNZb3VUeXBlLFxufSkgPT4ge1xuICBjb25zdCB0aGVtZSA9IHVzZVRoZW1lKCk7XG4gIGNvbnN0IFt2YWx1ZSwgc2V0VmFsdWVdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCBpbnB1dFJlZiA9IHVzZVJlZjxIVE1MSW5wdXRFbGVtZW50PihudWxsKTtcbiAgY29uc3QgW2F1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zLCBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9uc10gPSB1c2VTdGF0ZTxcbiAgICBBdXRvY29tcGxldGVTdWdnZXN0aW9uW11cbiAgPihbXSk7XG4gIGNvbnN0IFtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLCBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzXSA9XG4gICAgdXNlU3RhdGU8U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyB8IG51bGw+KG51bGwpO1xuXG4gIGNvbnN0IFtzZWFyY2hSZXN1bHRDbGlja2VkLCBzZXRTZWFyY2hSZXN1bHRDbGlja2VkXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICBjb25zdCB7IHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zIH0gPSB1c2VTZWFyY2hUcmFja2luZ0NvbnRleHQoKTtcblxuICBjb25zdCBzZWFyY2hBc1lvdVR5cGVMb2FkZXIgPSBSZWFjdC51c2VNZW1vKFxuICAgICgpID0+IChzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsID8gcm5kTG9hZGVyKCkgOiBudWxsKSxcbiAgICBbc2VhcmNoQXNZb3VUeXBlUmVzdWx0c11cbiAgKTtcblxuICBjb25zdCB2YWx1ZVRyaW1tZWQgPSB2YWx1ZS50cmltKCk7XG5cbiAgY29uc3QgaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrID1cbiAgICBvblNlYXJjaEFzWW91VHlwZSAmJiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzICYmICFzZWFyY2hSZXN1bHRDbGlja2VkO1xuXG4gIGNvbnN0IGNsb3NlU2VhcmNoID0gYXN5bmMgKCkgPT4ge1xuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCB3aGVuIHVzZXIgbWFkZSBhIHNlYXJjaCBhbmQgdGhlbiBjbG9zZWQgc2VhcmNoIHBhbmVcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIGF3YWl0IHRvZ2dsZVNlYXJjaCgpO1xuICAgIC8vIGFkZHMgYSBsaXR0bGUgZGVsYXkgYmV0d2VlbiBjbG9zaW5nIHRoZSBzZWFyY2ggcGFuZSBhbmQgZm9jdXNpbmcgb24gdGhlIGJ1dHRvblxuICAgIC8vIHRvIHByZXZlbnQgdGhlIHNlYXJjaCBwYW5lIGZyb20gaW1tZWRpYXRlbHkgb3BlbmluZyBhZ2FpblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHNlYXJjaEJ1dHRvblJlZiAmJiBzZWFyY2hCdXR0b25SZWY/LmN1cnJlbnQpIHtcbiAgICAgICAgc2VhcmNoQnV0dG9uUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICB9XG4gICAgfSwgMTApO1xuICB9O1xuXG4gIGNvbnN0IG9uS2V5RG93biA9IHVzZU9uRXNjSGFuZGxlcihjbG9zZVNlYXJjaCk7XG5cbiAgY29uc3Qgb25Nb3VzZURvd25PdXRzaWRlID0gKHsgdGFyZ2V0IH06IE1vdXNlRXZlbnQpID0+IHtcbiAgICBjb25zdCBoYW5kbGVPdXRzaWRlQ2xpY2sgPSAoKSA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgICFkb2N1bWVudFxuICAgICAgICAgIC5xdWVyeVNlbGVjdG9yKCdbZGF0YS10ZXN0aWQ9XCJoZWFkZXItc2VhcmNoLWRyb3Bkb3duXCJdJylcbiAgICAgICAgICA/LmNvbnRhaW5zKHRhcmdldCBhcyBIVE1MRWxlbWVudCkgJiZcbiAgICAgICAgdGFyZ2V0ICE9PSBzZWFyY2hCdXR0b25SZWY/LmN1cnJlbnRcbiAgICAgICkge1xuICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgfVxuXG4gICAgICB0YXJnZXQ/LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBoYW5kbGVPdXRzaWRlQ2xpY2spO1xuICAgIH07XG5cbiAgICB0YXJnZXQ/LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBoYW5kbGVPdXRzaWRlQ2xpY2spO1xuICB9O1xuXG4gIGNvbnN0IG5hdmlnYXRlVG9TZWFyY2ggPSAoc2VhcmNoVGVybTogc3RyaW5nLCBmcm9tUHJldlNlYXJjaD86IHN0cmluZykgPT4ge1xuICAgIG9uU2VhcmNoKHNlYXJjaFRlcm0sIGZyb21QcmV2U2VhcmNoKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVDaGFuZ2U6IFJlYWN0LkNoYW5nZUV2ZW50SGFuZGxlcjxIVE1MSW5wdXRFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICBzZXRWYWx1ZShldnQudGFyZ2V0LnZhbHVlKTtcbiAgICAvLyByZXNldCB0byBmYWxzZSB3aGVuIHRoZSBzZWFyY2ggcXVlcnkgY2hhbmdlc1xuICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQoZmFsc2UpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVN1Ym1pdDogUmVhY3QuRm9ybUV2ZW50SGFuZGxlciA9IChldmVudCkgPT4ge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgd2hlbiB0aGUgdXNlciBzdWJtaXRzIHRoZSBmb3JtIHRvIGNhcHR1cmUgY29tcGxldGUgcXVlcnlcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIG5hdmlnYXRlVG9TZWFyY2godmFsdWUsIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkKTtcbiAgfTtcblxuICBjb25zdCBjbGVhcklucHV0ID0gKCkgPT4ge1xuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCBiZWZvcmUgdXNlciBjbGVhcnMgaW5wdXRcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIHNldFZhbHVlKCcnKTtcbiAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhbXSk7XG4gICAgLy8gcmVzZXQgdGhlIGNvbnRleHQgd2l0aCBlbXB0eSB2YWx1ZXNcbiAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICBxdWVyeTogJycsXG4gICAgICBzZWFyY2hJZDogJycsXG4gICAgICByZXN1bHRzQ291bnQ6IDAsXG4gICAgICBxdWVyeUxvYWRUaW1lOiAwLFxuICAgIH0pO1xuICB9O1xuXG4gIC8vIHdoZW4gdGhlIGN1cnJlbnQgVVJMIGNoYW5nZXMsIHdlIHdhbnQgdG8gY2xvc2UgdGhlIHNlYXJjaCBwYW5lIGlmIGl0J3Mgb3BlblxuICAvLyBhbmQgdHJhY2sgc2VhcmNoIGV2ZW50IGlmIHVzZXIgbWFkZSBhIHNlYXJjaFxuICB1c2VVcmxDaGFuZ2VEZXRlY3Rpb24oe1xuICAgIG9uVXJsQ2hhbmdlOiAoKSA9PiB7XG4gICAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgICAgfVxuXG4gICAgICB0b2dnbGVTZWFyY2goKTtcbiAgICB9LFxuICB9KTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIC8vIGRvbid0IHRyYWNrIGlmIGEgcmVzdWx0IHdhcyBjbGlja2VkIG9yIGlmIHdlIGRvbid0IGhhdmUgc2VhcmNoIHJlc3VsdHNcbiAgICBpZiAoXG4gICAgICBzZWFyY2hSZXN1bHRDbGlja2VkIHx8XG4gICAgICAhb25TZWFyY2hBc1lvdVR5cGUgfHxcbiAgICAgICFzZWFyY2hBc1lvdVR5cGVSZXN1bHRzIHx8XG4gICAgICAhdmFsdWVUcmltbWVkLmxlbmd0aFxuICAgIClcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11c2VsZXNzLXJldHVyblxuICAgICAgcmV0dXJuO1xuICB9LCBbXG4gICAgc2VhcmNoUmVzdWx0Q2xpY2tlZCxcbiAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLFxuICAgIHZhbHVlVHJpbW1lZCxcbiAgICBvblNlYXJjaEFzWW91VHlwZSxcbiAgXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpbnB1dFJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgIHNlYXJjaFdvcmtlci5pbml0KCk7XG4gIH0sIFtdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghdmFsdWVUcmltbWVkLmxlbmd0aCkge1xuICAgICAgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyhudWxsKTtcbiAgICAgIHNldEF1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zKFtdKTtcbiAgICAgIHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zKHtcbiAgICAgICAgcXVlcnk6ICcnLFxuICAgICAgICBzZWFyY2hJZDogJycsXG4gICAgICAgIHJlc3VsdHNDb3VudDogMCxcbiAgICAgICAgcXVlcnlMb2FkVGltZTogMCxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBjYW5jZWwgPSBmYWxzZTtcbiAgICBsZXQgY2xlYXJBdXRvY29tcGxldGUgPSB0cnVlO1xuICAgIGxldCBjbGVhclNlYXJjaEFzWW91VHlwZSA9IHRydWU7XG5cbiAgICBsZXQgc2VhcmNoRXZlbnROb1Jlc3VsdERlbGF5OiBOb2RlSlMuVGltZW91dDtcblxuICAgIGNvbnN0IGxvYWRlckRlbGF5ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAvKlxuICAgICAgICogV2FpdCAxMCBtaWxsaXNlY29uZHMgdG8gZ2V0IGEgcmVzcG9uc2UgZm9yIHdvcmtlciBiZWZvcmUgc2hvd2luZyBsb2FkZXJzLlxuICAgICAgICogVGhpcyBwcmV2ZW50cyBmbGlja2VyaW5nIGxvYWRlcnMgb24gcXVpY2sgb3IgY2FjaGVkIHJlc3VsdHMuXG4gICAgICAgKi9cbiAgICAgIGlmIChjYW5jZWwpIHJldHVybjtcbiAgICAgIGlmIChjbGVhckF1dG9jb21wbGV0ZSkgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgICAgaWYgKGNsZWFyU2VhcmNoQXNZb3VUeXBlKSBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKG51bGwpO1xuICAgIH0sIDEwKTtcblxuICAgIHNlYXJjaFdvcmtlci5hdXRvY29tcGxldGUodmFsdWVUcmltbWVkKS50aGVuKChzdWdnZXN0aW9ucykgPT4ge1xuICAgICAgY2xlYXJBdXRvY29tcGxldGUgPSBmYWxzZTtcblxuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuOyAvLyB0ZXh0IGhhcyBjaGFuZ2VkIHNpbmNlIHRoaXMgcmVxdWVzdCB3YXMgbWFkZVxuXG4gICAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhzdWdnZXN0aW9ucyk7XG4gICAgfSk7XG5cbiAgICBzZWFyY2hXb3JrZXIuc2VhcmNoQXNZb3VUeXBlKHZhbHVlVHJpbW1lZCkudGhlbigocmVzdWx0cykgPT4ge1xuICAgICAgY2xlYXJTZWFyY2hBc1lvdVR5cGUgPSBmYWxzZTtcblxuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuOyAvLyB0ZXh0IGhhcyBjaGFuZ2VkIHNpbmNlIHRoaXMgcmVxdWVzdCB3YXMgbWFkZVxuXG4gICAgICBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKHJlc3VsdHMpO1xuXG4gICAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICAgIHF1ZXJ5OiByZXN1bHRzLnF1ZXJ5LFxuICAgICAgICBzZWFyY2hJZDogcmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgcmVzdWx0c0NvdW50OiByZXN1bHRzLnRvcC5sZW5ndGgsXG4gICAgICAgIHF1ZXJ5TG9hZFRpbWU6IHJlc3VsdHMucXVlcnlMb2FkVGltZSxcbiAgICAgIH0pO1xuXG4gICAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgd2l0aCBhIHNtYWxsIGRlbGF5IHdoZW4gdGhlcmUgYXJlIG5vIHJlc3VsdHNcbiAgICAgIGlmIChcbiAgICAgICAgb25TZWFyY2hBc1lvdVR5cGUgJiZcbiAgICAgICAgcmVzdWx0cy50b3AubGVuZ3RoID09PSAwICYmXG4gICAgICAgICFzZWFyY2hSZXN1bHRDbGlja2VkXG4gICAgICApIHtcbiAgICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHF1ZXJ5TG9hZFRpbWUgfSA9IHJlc3VsdHM7XG4gICAgICAgIHNlYXJjaEV2ZW50Tm9SZXN1bHREZWxheSA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIGlmICghY2FuY2VsKSB7XG4gICAgICAgICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIDAsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSwgMzAwKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjYW5jZWwgPSB0cnVlO1xuICAgICAgY2xlYXJUaW1lb3V0KGxvYWRlckRlbGF5KTtcbiAgICAgIGNsZWFyVGltZW91dChzZWFyY2hFdmVudE5vUmVzdWx0RGVsYXkpO1xuICAgIH07XG4gIH0sIFtcbiAgICB2YWx1ZVRyaW1tZWQsXG4gICAgb25TZWFyY2hBc1lvdVR5cGUsXG4gICAgc2VhcmNoUmVzdWx0Q2xpY2tlZCxcbiAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyxcbiAgXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPEJveFxuICAgICAgICBhcmlhLWhpZGRlblxuICAgICAgICBiZz1cInNoYWRvdy1zZWNvbmRhcnlcIlxuICAgICAgICBoZWlnaHQ9XCIxMDB2aFwiXG4gICAgICAgIHBvc2l0aW9uPVwiZml4ZWRcIlxuICAgICAgICAvLyBXZSBhZGQgNnJlbSBoZXJlIGluIGNhc2UgdGhlcmUncyBzb21lIHNvcnQgb2YgYnJhbmRlZCBiYW5uZXIgYWJvdmUgc2VhcmNoXG4gICAgICAgIC8vIFRoZSBzZWFyY2ggYXJlYSBpcyBtdWNoIHRhbGxlciB0aGFuIDZyZW0gc28gdGhpcyBpcyBhIHNhZmUgYW1vdW50IG9mIHBhZGRpbmdcbiAgICAgICAgdG9wPXtgY2FsYygke3RoZW1lLmVsZW1lbnRzLmhlYWRlckhlaWdodH0gKyA2cmVtKWB9XG4gICAgICAgIHdpZHRoPXsxfVxuICAgICAgLz5cbiAgICAgIDxGb2N1c1RyYXBcbiAgICAgICAgb25Fc2NhcGVLZXk9e2Nsb3NlU2VhcmNofVxuICAgICAgICBvbkNsaWNrT3V0c2lkZT17b25Nb3VzZURvd25PdXRzaWRlfVxuICAgICAgICBhbGxvd1BhZ2VJbnRlcmFjdGlvblxuICAgICAgPlxuICAgICAgICA8Qm94XG4gICAgICAgICAgYmc9XCJiYWNrZ3JvdW5kXCJcbiAgICAgICAgICBib3JkZXJDb2xvckJvdHRvbT1cImJvcmRlci1wcmltYXJ5XCJcbiAgICAgICAgICBib3JkZXJDb2xvclRvcD1cImJvcmRlci10ZXJ0aWFyeVwiXG4gICAgICAgICAgYm9yZGVyU3R5bGU9XCJzb2xpZFwiXG4gICAgICAgICAgYm9yZGVyV2lkdGg9XCIycHggMCAxcHhcIlxuICAgICAgICAgIGRhdGEtdGVzdGlkPVwiaGVhZGVyLXNlYXJjaC1kcm9wZG93blwiXG4gICAgICAgICAgcG9zaXRpb249e3sgXzogJ2ZpeGVkJywgbWQ6ICdhYnNvbHV0ZScgfX1cbiAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgIG1heEhlaWdodD17eyBfOiAnY2FsYygxMDB2aCAtIDYzcHgpJywgbWQ6ICdjYWxjKDEwMHZoIC0gODBweCknIH19XG4gICAgICAgICAgb3ZlcmZsb3c9XCJhdXRvXCJcbiAgICAgICAgICB6SW5kZXg9ezEwfSAvLyBlbnN1cmUgZHJvcGRvd24gaXMgYWJvdmUgdGhlIHBhZ2UgY29udGVudFxuICAgICAgICA+XG4gICAgICAgICAgPEJveCBib3JkZXI9XCJub25lXCIgd2lkdGg9XCJhdXRvXCI+XG4gICAgICAgICAgICA8UXVlcnlDb250YWluZXI+XG4gICAgICAgICAgICAgIDxGbGV4Qm94XG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImJhc2VsaW5lXCJcbiAgICAgICAgICAgICAgICBib3JkZXJDb2xvcj1cImdyYXktNjAwXCJcbiAgICAgICAgICAgICAgICBib3JkZXJTdHlsZUJvdHRvbT1cInNvbGlkXCJcbiAgICAgICAgICAgICAgICBib3JkZXJXaWR0aEJvdHRvbT1cIjFweFwiXG4gICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTZWFyY2hJY29uXG4gICAgICAgICAgICAgICAgICBoZWlnaHQ9e3sgXzogMjAsIG1kOiAyNCB9fVxuICAgICAgICAgICAgICAgICAgd2lkdGg9e3sgXzogMjAsIG1kOiAyNCB9fVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPEZvcm1cbiAgICAgICAgICAgICAgICAgIGFjdGlvbj1cIi9zZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgaWQ9XCJzZWFyY2gtZm9ybVwiXG4gICAgICAgICAgICAgICAgICBtbD17OH1cbiAgICAgICAgICAgICAgICAgIG9uU3VibWl0PXtoYW5kbGVTdWJtaXR9XG4gICAgICAgICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxTdHlsZWRJbnB1dFxuICAgICAgICAgICAgICAgICAgICBhdXRvRm9jdXNcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZD1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICBib3JkZXI9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgZm9udFNpemU9e3sgXzogMjAsIG1kOiAyNiB9fVxuICAgICAgICAgICAgICAgICAgICBmb250V2VpZ2h0PVwiYm9sZFwiXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiaGVhZGVyLXNlYXJjaC1iYXJcIlxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwicXVlcnlcIlxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhlKSA9PiBvbktleURvd24oZSl9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtzZWFyY2hQbGFjZWhvbGRlcn1cbiAgICAgICAgICAgICAgICAgICAgcmVmPXtpbnB1dFJlZn1cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgICAgICAgYXV0b0NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9Gb3JtPlxuICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICBpY29uPXtNaW5pRGVsZXRlSWNvbn1cbiAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJDbGVhciBzZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgdGlwPVwiQ2xlYXIgc2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgIHRpcFByb3BzPXt7XG4gICAgICAgICAgICAgICAgICAgIGFsaWdubWVudDogJ2JvdHRvbS1jZW50ZXInLFxuICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ6ICdmbG9hdGluZycsXG4gICAgICAgICAgICAgICAgICAgIG5hcnJvdzogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgekluZGV4OiAyLFxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2NsZWFySW5wdXR9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvRmxleEJveD5cbiAgICAgICAgICAgIDwvUXVlcnlDb250YWluZXI+XG4gICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgPFN1Z2dlc3Rpb25Db250YWluZXI+XG4gICAgICAgICAgICB7dmFsdWVUcmltbWVkLmxlbmd0aCA+IDAgPyAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgPEZsZXhCb3ggZmxleERpcmVjdGlvbj1cImNvbHVtblwiIGFzPVwidWxcIiBsaXN0U3R5bGU9XCJub25lXCIgcD17MH0+XG4gICAgICAgICAgICAgICAgICB7YXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMubWFwKChzLCBpKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgIDxJbmxpbmVSZXN1bHRMaVxuICAgICAgICAgICAgICAgICAgICAgIGtleT17cy50aXRsZX1cbiAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhldnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnYXV0b2NvbXBsZXRlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzLnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdhdXRvY29tcGxldGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzLnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxTZW1pYm9sZFNlYXJjaEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgIG1iPXsyIGFzIDB9XG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPXsxNH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZVdpZHRoPXs4fVxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgICAgICAgICAgICAgICAgIG1yPXsxMn1cbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxIaWdobGlnaHRlZFRleHQgc3VnZ2VzdGlvbj17c30gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9JbmxpbmVSZXN1bHRMaT5cbiAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgIDwvRmxleEJveD5cbiAgICAgICAgICAgICAgICB7KHNlYXJjaEFzWW91VHlwZVJlc3VsdHMgPT09IG51bGwgfHxcbiAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMudG9wLmxlbmd0aCA+IDApICYmIChcbiAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgIDxUZXh0IGFzPVwiaDJcIiBmb250U2l6ZT17MjB9IG1iPXsxNn0gbXQ9ezI0fT5cbiAgICAgICAgICAgICAgICAgICAgICBUb3AgcmVzdWx0c1xuICAgICAgICAgICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgICAgICAgICAgIDxGbGV4Qm94XG4gICAgICAgICAgICAgICAgICAgICAgZmxleERpcmVjdGlvbj1cImNvbHVtblwiXG4gICAgICAgICAgICAgICAgICAgICAgYXM9XCJ1bFwiXG4gICAgICAgICAgICAgICAgICAgICAgbGlzdFN0eWxlPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgcD17MH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHNlYXJjaEFzWW91VHlwZUxvYWRlcj8uc2hpbW1lclJvd3MubWFwKChyKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPElubGluZUxvYWRlckxpIGtleT17ci5rZXl9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3Iuc2hpbW1lcnMubWFwKCh3b3JkKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTaGltbWVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PXszMH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBweT17OCBhcyAwfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17d29yZC5rZXl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9e3dvcmQud2lkdGh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCb3hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udEZhbWlseT1cImFjY2VudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRDb2xvcj1cInRleHQtc2Vjb25kYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udFNpemU9e3sgXzogMTAgYXMgMTYgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyQ29sb3I9XCJib3JkZXItc2Vjb25kYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyPXsxfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJSYWRpdXM9XCJ4bFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB4PXsxNn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eT17MC4xfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbmJzcDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSW5saW5lTG9hZGVyTGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICkpXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMudG9wLm1hcCgocywgaSkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbmxpbmVSZXN1bHRMaVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtgJHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy5xdWVyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfToke2kudG9TdHJpbmcoKX1gfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiSW5kZXg9ezB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwibGlua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhldnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV2dC5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnc2VhcmNoX2FzX3lvdV90eXBlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsdWc6IHMuc2x1ZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLihzLmNvbnRlbnRJZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHsgY29udGVudF9pZDogcy5jb250ZW50SWQgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhZmVseVJlZGlyZWN0KHMudXJsUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnc2VhcmNoX2FzX3lvdV90eXBlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2x1Zzogcy5zbHVnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLihzLmNvbnRlbnRJZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7IGNvbnRlbnRfaWQ6IHMuY29udGVudElkIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2FmZWx5UmVkaXJlY3Qocy51cmxQYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEhpZ2hsaWdodGVkVGV4dCBzdWdnZXN0aW9uPXtzfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJhZGdlIHNpemU9XCJzbVwiIHZhcmlhbnQ9XCJ0ZXJ0aWFyeVwiIG1sPXsxMn0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtzLnR5cGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0JhZGdlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSW5saW5lUmVzdWx0TGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIHtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy50b3AubGVuZ3RoID09PSAwICYmIChcbiAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgIDxCb3ggZm9udFNpemU9e3sgXzogMjAsIHNtOiAyNiB9fSBtdD17MH0gbWI9ezQ4fT5cbiAgICAgICAgICAgICAgICAgICAgICB7YFdlIGNvdWxkbid0IGZpbmQgYSBtYXRjaCBmb3IgYH1cbiAgICAgICAgICAgICAgICAgICAgICA8VGV4dCBmb250V2VpZ2h0PVwiYm9sZFwiPntgXCIke3ZhbHVlVHJpbW1lZH0uXCJgfTwvVGV4dD5cbiAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAnIFRyeSBhbm90aGVyIGtleXdvcmQsIG9yIHNlZSB3aGF0IG91ciBtZW1iZXJzIGFyZSBsZWFybmluZy4nXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICAgICAgPE1lbnUgYm9yZGVyPVwibm9uZVwiIHZhcmlhbnQ9XCJwb3BvdmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPFBvcHVsYXJDb250ZW50IG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfSAvPlxuICAgICAgICAgICAgICAgICAgICA8L01lbnU+XG4gICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxNZW51IGJvcmRlcj1cIm5vbmVcIiB2YXJpYW50PVwicG9wb3ZlclwiPlxuICAgICAgICAgICAgICAgIDxQb3B1bGFyU2VhcmNoZXNcbiAgICAgICAgICAgICAgICAgIG5hdmlnYXRlVG9TZWFyY2g9e25hdmlnYXRlVG9TZWFyY2h9XG4gICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxQb3B1bGFyQ29udGVudCBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja30gLz5cbiAgICAgICAgICAgICAgPC9NZW51PlxuICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgeyEhc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8udG9wLmxlbmd0aCAmJiAoXG4gICAgICAgICAgICAgIDxTdHJva2VCdXR0b25cbiAgICAgICAgICAgICAgICBteT17MTZ9XG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCd2aWV3X2FsbF9yZXN1bHRzJywge1xuICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgIG5hdmlnYXRlVG9TZWFyY2godmFsdWUsIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkKTtcbiAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIFZpZXcgYWxsIHJlc3VsdHNcbiAgICAgICAgICAgICAgPC9TdHJva2VCdXR0b24+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgPFF1aXpBbmRIZWxwQ2VudGVyTGlua3NcbiAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9XG4gICAgICAgICAgICAgIGhhbmRsZUNsb3NlRHJvcGRvd249e2Nsb3NlU2VhcmNofVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L1N1Z2dlc3Rpb25Db250YWluZXI+XG4gICAgICAgIDwvQm94PlxuICAgICAgPC9Gb2N1c1RyYXA+XG4gICAgPC8+XG4gICk7XG59O1xuIl19 */");
|
|
40
|
+
}), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvU2VhcmNoL1NlYXJjaFBhbmUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXFDdUIiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL0FwcEhlYWRlci9TZWFyY2gvU2VhcmNoUGFuZS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYWRnZSxcbiAgQm94LFxuICBDb250ZW50Q29udGFpbmVyLFxuICBGbGV4Qm94LFxuICBGb2N1c1RyYXAsXG4gIEljb25CdXR0b24sXG4gIE1lbnUsXG4gIE1lbnVJdGVtLFxuICBTaGltbWVyLFxuICBTdHJva2VCdXR0b24sXG4gIFRleHQsXG59IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCB7IE1pbmlEZWxldGVJY29uLCBTZWFyY2hJY29uIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtaWNvbnMnO1xuaW1wb3J0IHsgY3NzLCB0aGVtZSwgdXNlQ3VycmVudE1vZGUgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IHVzZU9uRXNjSGFuZGxlciB9IGZyb20gJy4uL3NoYXJlZCc7XG5pbXBvcnQgeyBzZWFyY2hQbGFjZWhvbGRlciB9IGZyb20gJy4vY29uc3RzJztcbmltcG9ydCB7IFBvcHVsYXJDb250ZW50LCBQb3B1bGFyU2VhcmNoZXMgfSBmcm9tICcuL0RlZmF1bHRSZXN1bHRzJztcbmltcG9ydCB7IHVzZVVybENoYW5nZURldGVjdGlvbiB9IGZyb20gJy4vaG9va3MvdXNlVXJsQ2hhbmdlRGV0ZWN0aW9uJztcbmltcG9ydCB7IFF1aXpBbmRIZWxwQ2VudGVyTGlua3MgfSBmcm9tICcuL1F1aXpBbmRIZWxwQ2VudGVyTGlua3MnO1xuaW1wb3J0IHsgc2FmZWx5UmVkaXJlY3QgfSBmcm9tICcuL3NhZmVseVJlZGlyZWN0JztcbmltcG9ydCB7IHVzZVNlYXJjaFRyYWNraW5nQ29udGV4dCB9IGZyb20gJy4vU2VhcmNoVHJhY2tpbmdQcm92aWRlcic7XG5pbXBvcnQgeyBzZWFyY2hXb3JrZXIgfSBmcm9tICcuL1NlYXJjaFdvcmtlcic7XG5pbXBvcnQgdHlwZSB7XG4gIEF1dG9jb21wbGV0ZVN1Z2dlc3Rpb24sXG4gIFNlYXJjaEFzWW91VHlwZVJlc3VsdHMsXG59IGZyb20gJy4vU2VhcmNoV29ya2VyL3R5cGVzJztcbmltcG9ydCB7IFNlYXJjaFBhbmVQcm9wcyB9IGZyb20gJy4vdHlwZXMnO1xuXG5jb25zdCBGb3JtID0gQm94LndpdGhDb21wb25lbnQoJ2Zvcm0nKTtcbmNvbnN0IElucHV0ID0gQm94LndpdGhDb21wb25lbnQoJ2lucHV0Jyk7XG5cbmNvbnN0IFF1ZXJ5Q29udGFpbmVyID0gc3R5bGVkKENvbnRlbnRDb250YWluZXIpKFxuICBjc3Moe1xuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICB3aWR0aDogJzEwMCUnLFxuICAgIHB0OiAxNixcbiAgICBwYjogeyBfOiAwLCBtZDogMjQgfSxcbiAgICBweDogeyBfOiAyNCB9LFxuICB9KVxuKTtcblxuY29uc3QgU3VnZ2VzdGlvbkNvbnRhaW5lciA9IHN0eWxlZChDb250ZW50Q29udGFpbmVyKShcbiAgY3NzKHtcbiAgICBwdDogMTYsXG4gICAgcGI6IHsgXzogMCwgbWQ6IDI0IH0sXG4gICAgcHg6IHsgXzogMjQgfSxcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZElucHV0ID0gc3R5bGVkKElucHV0KShcbiAgY3NzKHtcbiAgICBvdXRsaW5lOiBgbm9uZWAsXG4gICAgJyY6OnBsYWNlaG9sZGVyJzoge1xuICAgICAgdGV4dENvbG9yOiB0aGVtZS5jb2xvcnNbJ3RleHQtc2Vjb25kYXJ5J10gYXMgbmV2ZXIsXG4gICAgfSxcbiAgfSlcbik7XG5cbmNvbnN0IElubGluZVJlc3VsdExpID0gc3R5bGVkKE1lbnVJdGVtKShcbiAgY3NzKHtcbiAgICBwbDogMCxcbiAgICBweTogOCxcbiAgICBmb250U2l6ZTogMTYsXG4gICAgJyY6Zm9jdXMtdmlzaWJsZTphZnRlcic6IHtcbiAgICAgIGxlZnQ6IC00LFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBJbmxpbmVMb2FkZXJMaSA9IHN0eWxlZC5saShcbiAgY3NzKHtcbiAgICBsaXN0U3R5bGVUeXBlOiAnbm9uZScsXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGdhcDogMTIsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gIH0pXG4pO1xuXG5leHBvcnQgY29uc3QgU2VtaWJvbGRTZWFyY2hJY29uID0gc3R5bGVkKFNlYXJjaEljb24pYFxuICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuICBjaXJjbGUsXG4gIHBhdGgge1xuICAgIHN0cm9rZS13aWR0aDogMnB4O1xuICB9XG4gIHJlY3Qge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0ycHgsIC0ycHgpO1xuICAgIGhlaWdodDogY2FsYygxMDAlICsgNHB4KTtcbiAgICB3aWR0aDogY2FsYygxMDAlICsgNHB4KTtcbiAgfVxuYDtcblxuY29uc3QgRWxsaXBzaXNCb3ggPSBzdHlsZWQoQm94KWBcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5gO1xuXG5jb25zdCBIaWdobGlnaHRlZFRleHQgPSAoe1xuICBzdWdnZXN0aW9uOiB7IHRpdGxlLCBzZWdtZW50cyB9LFxufToge1xuICBzdWdnZXN0aW9uOiBBdXRvY29tcGxldGVTdWdnZXN0aW9uO1xufSkgPT4ge1xuICBjb25zdCBtb2RlID0gdXNlQ3VycmVudE1vZGUoKTtcbiAgY29uc3QgaGlnaGxpZ2h0Q29sb3IgPSBtb2RlID09PSAnZGFyaycgPyAnaHlwZXInIDogJ3llbGxvdyc7XG5cbiAgcmV0dXJuIChcbiAgICA8RmxleEJveD5cbiAgICAgIDxFbGxpcHNpc0JveFxuICAgICAgICBtYXhXaWR0aD1cImNhbGMoMTAwdncgLSAxMjhweClcIlxuICAgICAgICB3aGl0ZVNwYWNlPVwicHJlXCJcbiAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgb3ZlcmZsb3c9XCJoaWRkZW5cIlxuICAgICAgPlxuICAgICAgICB7c2VnbWVudHMubWFwKChzZWdtZW50LCBpKSA9PiAoXG4gICAgICAgICAgPFRleHRcbiAgICAgICAgICAgIGtleT17YCR7dGl0bGV9OiR7aS50b1N0cmluZygpfWB9XG4gICAgICAgICAgICBsaW5lSGVpZ2h0PVwidGl0bGVcIlxuICAgICAgICAgICAgey4uLihzZWdtZW50LmhpZ2hsaWdodFxuICAgICAgICAgICAgICA/IHsgYmc6IGhpZ2hsaWdodENvbG9yLCBmb250V2VpZ2h0OiAnYm9sZCcgfVxuICAgICAgICAgICAgICA6IHt9KX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7c2VnbWVudC52YWx1ZX1cbiAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICkpfVxuICAgICAgPC9FbGxpcHNpc0JveD5cbiAgICAgIDxUZXh0IHNjcmVlbnJlYWRlcj57dGl0bGV9PC9UZXh0PlxuICAgIDwvRmxleEJveD5cbiAgKTtcbn07XG5cbnR5cGUgU2VhcmNoQXNZb3VUeXBlTG9hZGVyID0ge1xuICBzaGltbWVyUm93czoge1xuICAgIGtleTogc3RyaW5nO1xuICAgIHNoaW1tZXJzOiB7XG4gICAgICBrZXk6IHN0cmluZztcbiAgICAgIHdpZHRoOiBudW1iZXI7XG4gICAgfVtdO1xuICB9W107XG59O1xuXG5sZXQgbG9hZGVyS2V5ID0gMDtcbmZ1bmN0aW9uIHJuZExvYWRlcigpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBsdXNwbHVzXG4gIGNvbnN0IGtleSA9IGxvYWRlcktleSsrO1xuICBjb25zdCBsb2FkZXI6IFNlYXJjaEFzWW91VHlwZUxvYWRlciA9IHsgc2hpbW1lclJvd3M6IFtdIH07XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgNTsgaSsrKSB7XG4gICAgY29uc3Qgcm93ID0ge1xuICAgICAga2V5OiBgJHtrZXl9OiR7aX1gLFxuICAgICAgc2hpbW1lcnM6IFtdIGFzIHsga2V5OiBzdHJpbmc7IHdpZHRoOiBudW1iZXIgfVtdLFxuICAgIH07XG4gICAgY29uc3Qgd29yZHMgPSBNYXRoLmNlaWwoTWF0aC5yYW5kb20oKSAqIDMpO1xuICAgIGZvciAobGV0IGogPSAwOyBqIDwgd29yZHM7IGorKykge1xuICAgICAgY29uc3Qgd2lkdGggPSAxMiArIE1hdGgucm91bmQoTWF0aC5yYW5kb20oKSAqIDk2KTtcbiAgICAgIHJvdy5zaGltbWVycy5wdXNoKHtcbiAgICAgICAga2V5OiBgJHtrZXl9OiR7an1gLFxuICAgICAgICB3aWR0aCxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBsb2FkZXIuc2hpbW1lclJvd3MucHVzaChyb3cpO1xuICB9XG4gIHJldHVybiBsb2FkZXI7XG59XG5cbmV4cG9ydCBjb25zdCBTZWFyY2hQYW5lOiBSZWFjdC5GQzxTZWFyY2hQYW5lUHJvcHM+ID0gKHtcbiAgb25TZWFyY2gsXG4gIG9uVHJhY2tpbmdDbGljayxcbiAgc2VhcmNoQnV0dG9uUmVmLFxuICB0b2dnbGVTZWFyY2gsXG4gIG9uU2VhcmNoQXNZb3VUeXBlLFxufSkgPT4ge1xuICBjb25zdCB0aGVtZSA9IHVzZVRoZW1lKCk7XG4gIGNvbnN0IFt2YWx1ZSwgc2V0VmFsdWVdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCBpbnB1dFJlZiA9IHVzZVJlZjxIVE1MSW5wdXRFbGVtZW50PihudWxsKTtcbiAgY29uc3QgW2F1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zLCBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9uc10gPSB1c2VTdGF0ZTxcbiAgICBBdXRvY29tcGxldGVTdWdnZXN0aW9uW11cbiAgPihbXSk7XG4gIGNvbnN0IFtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLCBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzXSA9XG4gICAgdXNlU3RhdGU8U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyB8IG51bGw+KG51bGwpO1xuXG4gIGNvbnN0IFtzZWFyY2hSZXN1bHRDbGlja2VkLCBzZXRTZWFyY2hSZXN1bHRDbGlja2VkXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICBjb25zdCB7IHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zIH0gPSB1c2VTZWFyY2hUcmFja2luZ0NvbnRleHQoKTtcblxuICBjb25zdCBzZWFyY2hBc1lvdVR5cGVMb2FkZXIgPSBSZWFjdC51c2VNZW1vKFxuICAgICgpID0+IChzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsID8gcm5kTG9hZGVyKCkgOiBudWxsKSxcbiAgICBbc2VhcmNoQXNZb3VUeXBlUmVzdWx0c11cbiAgKTtcblxuICBjb25zdCB2YWx1ZVRyaW1tZWQgPSB2YWx1ZS50cmltKCk7XG5cbiAgY29uc3QgaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrID1cbiAgICBvblNlYXJjaEFzWW91VHlwZSAmJiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzICYmICFzZWFyY2hSZXN1bHRDbGlja2VkO1xuXG4gIGNvbnN0IGNsb3NlU2VhcmNoID0gYXN5bmMgKCkgPT4ge1xuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCB3aGVuIHVzZXIgbWFkZSBhIHNlYXJjaCBhbmQgdGhlbiBjbG9zZWQgc2VhcmNoIHBhbmVcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIGF3YWl0IHRvZ2dsZVNlYXJjaCgpO1xuICAgIC8vIGFkZHMgYSBsaXR0bGUgZGVsYXkgYmV0d2VlbiBjbG9zaW5nIHRoZSBzZWFyY2ggcGFuZSBhbmQgZm9jdXNpbmcgb24gdGhlIGJ1dHRvblxuICAgIC8vIHRvIHByZXZlbnQgdGhlIHNlYXJjaCBwYW5lIGZyb20gaW1tZWRpYXRlbHkgb3BlbmluZyBhZ2FpblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHNlYXJjaEJ1dHRvblJlZiAmJiBzZWFyY2hCdXR0b25SZWY/LmN1cnJlbnQpIHtcbiAgICAgICAgc2VhcmNoQnV0dG9uUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICB9XG4gICAgfSwgMTApO1xuICB9O1xuXG4gIGNvbnN0IG9uS2V5RG93biA9IHVzZU9uRXNjSGFuZGxlcihjbG9zZVNlYXJjaCk7XG5cbiAgY29uc3Qgb25Nb3VzZURvd25PdXRzaWRlID0gKHsgdGFyZ2V0IH06IE1vdXNlRXZlbnQpID0+IHtcbiAgICBjb25zdCBoYW5kbGVPdXRzaWRlQ2xpY2sgPSAoKSA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgICFkb2N1bWVudFxuICAgICAgICAgIC5xdWVyeVNlbGVjdG9yKCdbZGF0YS10ZXN0aWQ9XCJoZWFkZXItc2VhcmNoLWRyb3Bkb3duXCJdJylcbiAgICAgICAgICA/LmNvbnRhaW5zKHRhcmdldCBhcyBIVE1MRWxlbWVudCkgJiZcbiAgICAgICAgdGFyZ2V0ICE9PSBzZWFyY2hCdXR0b25SZWY/LmN1cnJlbnRcbiAgICAgICkge1xuICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgfVxuXG4gICAgICB0YXJnZXQ/LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBoYW5kbGVPdXRzaWRlQ2xpY2spO1xuICAgIH07XG5cbiAgICB0YXJnZXQ/LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBoYW5kbGVPdXRzaWRlQ2xpY2spO1xuICB9O1xuXG4gIGNvbnN0IG5hdmlnYXRlVG9TZWFyY2ggPSAoc2VhcmNoVGVybTogc3RyaW5nLCBmcm9tUHJldlNlYXJjaD86IHN0cmluZykgPT4ge1xuICAgIG9uU2VhcmNoKHNlYXJjaFRlcm0sIGZyb21QcmV2U2VhcmNoKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVDaGFuZ2U6IFJlYWN0LkNoYW5nZUV2ZW50SGFuZGxlcjxIVE1MSW5wdXRFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICBzZXRWYWx1ZShldnQudGFyZ2V0LnZhbHVlKTtcbiAgICAvLyByZXNldCB0byBmYWxzZSB3aGVuIHRoZSBzZWFyY2ggcXVlcnkgY2hhbmdlc1xuICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQoZmFsc2UpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVN1Ym1pdDogUmVhY3QuRm9ybUV2ZW50SGFuZGxlciA9IChldmVudCkgPT4ge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgd2hlbiB0aGUgdXNlciBzdWJtaXRzIHRoZSBmb3JtIHRvIGNhcHR1cmUgY29tcGxldGUgcXVlcnlcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIG5hdmlnYXRlVG9TZWFyY2godmFsdWUsIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkKTtcbiAgfTtcblxuICBjb25zdCBjbGVhcklucHV0ID0gKCkgPT4ge1xuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCBiZWZvcmUgdXNlciBjbGVhcnMgaW5wdXRcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIHNldFZhbHVlKCcnKTtcbiAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhbXSk7XG4gICAgLy8gcmVzZXQgdGhlIGNvbnRleHQgd2l0aCBlbXB0eSB2YWx1ZXNcbiAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICBxdWVyeTogJycsXG4gICAgICBzZWFyY2hJZDogJycsXG4gICAgICByZXN1bHRzQ291bnQ6IDAsXG4gICAgICBxdWVyeUxvYWRUaW1lOiAwLFxuICAgIH0pO1xuICB9O1xuXG4gIC8vIHdoZW4gdGhlIGN1cnJlbnQgVVJMIGNoYW5nZXMsIHdlIHdhbnQgdG8gY2xvc2UgdGhlIHNlYXJjaCBwYW5lIGlmIGl0J3Mgb3BlblxuICAvLyBhbmQgdHJhY2sgc2VhcmNoIGV2ZW50IGlmIHVzZXIgbWFkZSBhIHNlYXJjaFxuICB1c2VVcmxDaGFuZ2VEZXRlY3Rpb24oe1xuICAgIG9uVXJsQ2hhbmdlOiAoKSA9PiB7XG4gICAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgICAgfVxuXG4gICAgICB0b2dnbGVTZWFyY2goKTtcbiAgICB9LFxuICB9KTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIC8vIGRvbid0IHRyYWNrIGlmIGEgcmVzdWx0IHdhcyBjbGlja2VkIG9yIGlmIHdlIGRvbid0IGhhdmUgc2VhcmNoIHJlc3VsdHNcbiAgICBpZiAoXG4gICAgICBzZWFyY2hSZXN1bHRDbGlja2VkIHx8XG4gICAgICAhb25TZWFyY2hBc1lvdVR5cGUgfHxcbiAgICAgICFzZWFyY2hBc1lvdVR5cGVSZXN1bHRzIHx8XG4gICAgICAhdmFsdWVUcmltbWVkLmxlbmd0aFxuICAgIClcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11c2VsZXNzLXJldHVyblxuICAgICAgcmV0dXJuO1xuICB9LCBbXG4gICAgc2VhcmNoUmVzdWx0Q2xpY2tlZCxcbiAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLFxuICAgIHZhbHVlVHJpbW1lZCxcbiAgICBvblNlYXJjaEFzWW91VHlwZSxcbiAgXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpbnB1dFJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgIHNlYXJjaFdvcmtlci5pbml0KCk7XG4gIH0sIFtdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghdmFsdWVUcmltbWVkLmxlbmd0aCkge1xuICAgICAgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyhudWxsKTtcbiAgICAgIHNldEF1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zKFtdKTtcbiAgICAgIHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zKHtcbiAgICAgICAgcXVlcnk6ICcnLFxuICAgICAgICBzZWFyY2hJZDogJycsXG4gICAgICAgIHJlc3VsdHNDb3VudDogMCxcbiAgICAgICAgcXVlcnlMb2FkVGltZTogMCxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBjYW5jZWwgPSBmYWxzZTtcbiAgICBsZXQgY2xlYXJBdXRvY29tcGxldGUgPSB0cnVlO1xuICAgIGxldCBjbGVhclNlYXJjaEFzWW91VHlwZSA9IHRydWU7XG5cbiAgICBsZXQgc2VhcmNoRXZlbnROb1Jlc3VsdERlbGF5OiBOb2RlSlMuVGltZW91dDtcblxuICAgIGNvbnN0IGxvYWRlckRlbGF5ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAvKlxuICAgICAgICogV2FpdCAxMCBtaWxsaXNlY29uZHMgdG8gZ2V0IGEgcmVzcG9uc2UgZm9yIHdvcmtlciBiZWZvcmUgc2hvd2luZyBsb2FkZXJzLlxuICAgICAgICogVGhpcyBwcmV2ZW50cyBmbGlja2VyaW5nIGxvYWRlcnMgb24gcXVpY2sgb3IgY2FjaGVkIHJlc3VsdHMuXG4gICAgICAgKi9cbiAgICAgIGlmIChjYW5jZWwpIHJldHVybjtcbiAgICAgIGlmIChjbGVhckF1dG9jb21wbGV0ZSkgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgICAgaWYgKGNsZWFyU2VhcmNoQXNZb3VUeXBlKSBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKG51bGwpO1xuICAgIH0sIDEwKTtcblxuICAgIHNlYXJjaFdvcmtlci5hdXRvY29tcGxldGUodmFsdWVUcmltbWVkKS50aGVuKChzdWdnZXN0aW9ucykgPT4ge1xuICAgICAgY2xlYXJBdXRvY29tcGxldGUgPSBmYWxzZTtcblxuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuOyAvLyB0ZXh0IGhhcyBjaGFuZ2VkIHNpbmNlIHRoaXMgcmVxdWVzdCB3YXMgbWFkZVxuXG4gICAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhzdWdnZXN0aW9ucyk7XG4gICAgfSk7XG5cbiAgICBzZWFyY2hXb3JrZXIuc2VhcmNoQXNZb3VUeXBlKHZhbHVlVHJpbW1lZCkudGhlbigocmVzdWx0cykgPT4ge1xuICAgICAgY2xlYXJTZWFyY2hBc1lvdVR5cGUgPSBmYWxzZTtcblxuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuOyAvLyB0ZXh0IGhhcyBjaGFuZ2VkIHNpbmNlIHRoaXMgcmVxdWVzdCB3YXMgbWFkZVxuXG4gICAgICBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKHJlc3VsdHMpO1xuXG4gICAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICAgIHF1ZXJ5OiByZXN1bHRzLnF1ZXJ5LFxuICAgICAgICBzZWFyY2hJZDogcmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgcmVzdWx0c0NvdW50OiByZXN1bHRzLnRvcC5sZW5ndGgsXG4gICAgICAgIHF1ZXJ5TG9hZFRpbWU6IHJlc3VsdHMucXVlcnlMb2FkVGltZSxcbiAgICAgIH0pO1xuXG4gICAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgd2l0aCBhIHNtYWxsIGRlbGF5IHdoZW4gdGhlcmUgYXJlIG5vIHJlc3VsdHNcbiAgICAgIGlmIChcbiAgICAgICAgb25TZWFyY2hBc1lvdVR5cGUgJiZcbiAgICAgICAgcmVzdWx0cy50b3AubGVuZ3RoID09PSAwICYmXG4gICAgICAgICFzZWFyY2hSZXN1bHRDbGlja2VkXG4gICAgICApIHtcbiAgICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHF1ZXJ5TG9hZFRpbWUgfSA9IHJlc3VsdHM7XG4gICAgICAgIHNlYXJjaEV2ZW50Tm9SZXN1bHREZWxheSA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIGlmICghY2FuY2VsKSB7XG4gICAgICAgICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIDAsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSwgMzAwKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjYW5jZWwgPSB0cnVlO1xuICAgICAgY2xlYXJUaW1lb3V0KGxvYWRlckRlbGF5KTtcbiAgICAgIGNsZWFyVGltZW91dChzZWFyY2hFdmVudE5vUmVzdWx0RGVsYXkpO1xuICAgIH07XG4gIH0sIFtcbiAgICB2YWx1ZVRyaW1tZWQsXG4gICAgb25TZWFyY2hBc1lvdVR5cGUsXG4gICAgc2VhcmNoUmVzdWx0Q2xpY2tlZCxcbiAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyxcbiAgXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPEJveFxuICAgICAgICBhcmlhLWhpZGRlblxuICAgICAgICBiZz1cInNoYWRvdy1zZWNvbmRhcnlcIlxuICAgICAgICBoZWlnaHQ9XCIxMDB2aFwiXG4gICAgICAgIHBvc2l0aW9uPVwiZml4ZWRcIlxuICAgICAgICAvLyBXZSBhZGQgNXJlbSBoZXJlIGluIGNhc2UgdGhlcmUncyBzb21lIHNvcnQgb2YgYnJhbmRlZCBiYW5uZXIgYWJvdmUgc2VhcmNoXG4gICAgICAgIC8vIFRoZSBzZWFyY2ggYXJlYSBpcyBtdWNoIHRhbGxlciB0aGFuIDVyZW0gc28gdGhpcyBpcyBhIHNhZmUgYW1vdW50IG9mIHBhZGRpbmdcbiAgICAgICAgdG9wPXtgY2FsYygke3RoZW1lLmVsZW1lbnRzLmhlYWRlckhlaWdodH0gKyA1cmVtKWB9XG4gICAgICAgIHdpZHRoPXsxfVxuICAgICAgLz5cbiAgICAgIDxGb2N1c1RyYXBcbiAgICAgICAgb25Fc2NhcGVLZXk9e2Nsb3NlU2VhcmNofVxuICAgICAgICBvbkNsaWNrT3V0c2lkZT17b25Nb3VzZURvd25PdXRzaWRlfVxuICAgICAgICBhbGxvd1BhZ2VJbnRlcmFjdGlvblxuICAgICAgPlxuICAgICAgICA8Qm94XG4gICAgICAgICAgYmc9XCJiYWNrZ3JvdW5kXCJcbiAgICAgICAgICBib3JkZXJDb2xvckJvdHRvbT1cImJvcmRlci1wcmltYXJ5XCJcbiAgICAgICAgICBib3JkZXJDb2xvclRvcD1cImJvcmRlci10ZXJ0aWFyeVwiXG4gICAgICAgICAgYm9yZGVyU3R5bGU9XCJzb2xpZFwiXG4gICAgICAgICAgYm9yZGVyV2lkdGg9XCIycHggMCAxcHhcIlxuICAgICAgICAgIGRhdGEtdGVzdGlkPVwiaGVhZGVyLXNlYXJjaC1kcm9wZG93blwiXG4gICAgICAgICAgcG9zaXRpb249e3sgXzogJ2ZpeGVkJywgbWQ6ICdhYnNvbHV0ZScgfX1cbiAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgIG1heEhlaWdodD17eyBfOiAnY2FsYygxMDB2aCAtIDYzcHgpJywgbWQ6ICdjYWxjKDEwMHZoIC0gODBweCknIH19XG4gICAgICAgICAgb3ZlcmZsb3c9XCJhdXRvXCJcbiAgICAgICAgICB6SW5kZXg9ezEwfSAvLyBlbnN1cmUgZHJvcGRvd24gaXMgYWJvdmUgdGhlIHBhZ2UgY29udGVudFxuICAgICAgICA+XG4gICAgICAgICAgPEJveCBib3JkZXI9XCJub25lXCIgd2lkdGg9XCJhdXRvXCI+XG4gICAgICAgICAgICA8UXVlcnlDb250YWluZXI+XG4gICAgICAgICAgICAgIDxGbGV4Qm94XG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImJhc2VsaW5lXCJcbiAgICAgICAgICAgICAgICBib3JkZXJDb2xvcj1cImdyYXktNjAwXCJcbiAgICAgICAgICAgICAgICBib3JkZXJTdHlsZUJvdHRvbT1cInNvbGlkXCJcbiAgICAgICAgICAgICAgICBib3JkZXJXaWR0aEJvdHRvbT1cIjFweFwiXG4gICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTZWFyY2hJY29uXG4gICAgICAgICAgICAgICAgICBoZWlnaHQ9e3sgXzogMjAsIG1kOiAyNCB9fVxuICAgICAgICAgICAgICAgICAgd2lkdGg9e3sgXzogMjAsIG1kOiAyNCB9fVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPEZvcm1cbiAgICAgICAgICAgICAgICAgIGFjdGlvbj1cIi9zZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgaWQ9XCJzZWFyY2gtZm9ybVwiXG4gICAgICAgICAgICAgICAgICBtbD17OH1cbiAgICAgICAgICAgICAgICAgIG9uU3VibWl0PXtoYW5kbGVTdWJtaXR9XG4gICAgICAgICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxTdHlsZWRJbnB1dFxuICAgICAgICAgICAgICAgICAgICBhdXRvRm9jdXNcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZD1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICBib3JkZXI9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgZm9udFNpemU9e3sgXzogMjAsIG1kOiAyNiB9fVxuICAgICAgICAgICAgICAgICAgICBmb250V2VpZ2h0PVwiYm9sZFwiXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiaGVhZGVyLXNlYXJjaC1iYXJcIlxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwicXVlcnlcIlxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhlKSA9PiBvbktleURvd24oZSl9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtzZWFyY2hQbGFjZWhvbGRlcn1cbiAgICAgICAgICAgICAgICAgICAgcmVmPXtpbnB1dFJlZn1cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgICAgICAgYXV0b0NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9Gb3JtPlxuICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICBpY29uPXtNaW5pRGVsZXRlSWNvbn1cbiAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJDbGVhciBzZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgdGlwPVwiQ2xlYXIgc2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgIHRpcFByb3BzPXt7XG4gICAgICAgICAgICAgICAgICAgIGFsaWdubWVudDogJ2JvdHRvbS1jZW50ZXInLFxuICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ6ICdmbG9hdGluZycsXG4gICAgICAgICAgICAgICAgICAgIG5hcnJvdzogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgekluZGV4OiAyLFxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2NsZWFySW5wdXR9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvRmxleEJveD5cbiAgICAgICAgICAgIDwvUXVlcnlDb250YWluZXI+XG4gICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgPFN1Z2dlc3Rpb25Db250YWluZXI+XG4gICAgICAgICAgICB7dmFsdWVUcmltbWVkLmxlbmd0aCA+IDAgPyAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgPEZsZXhCb3ggZmxleERpcmVjdGlvbj1cImNvbHVtblwiIGFzPVwidWxcIiBsaXN0U3R5bGU9XCJub25lXCIgcD17MH0+XG4gICAgICAgICAgICAgICAgICB7YXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMubWFwKChzLCBpKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgIDxJbmxpbmVSZXN1bHRMaVxuICAgICAgICAgICAgICAgICAgICAgIGtleT17cy50aXRsZX1cbiAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhldnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnYXV0b2NvbXBsZXRlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzLnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdhdXRvY29tcGxldGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzLnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxTZW1pYm9sZFNlYXJjaEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgIG1iPXsyIGFzIDB9XG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPXsxNH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZVdpZHRoPXs4fVxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgICAgICAgICAgICAgICAgIG1yPXsxMn1cbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxIaWdobGlnaHRlZFRleHQgc3VnZ2VzdGlvbj17c30gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9JbmxpbmVSZXN1bHRMaT5cbiAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgIDwvRmxleEJveD5cbiAgICAgICAgICAgICAgICB7KHNlYXJjaEFzWW91VHlwZVJlc3VsdHMgPT09IG51bGwgfHxcbiAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMudG9wLmxlbmd0aCA+IDApICYmIChcbiAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgIDxUZXh0IGFzPVwiaDJcIiBmb250U2l6ZT17MjB9IG1iPXsxNn0gbXQ9ezI0fT5cbiAgICAgICAgICAgICAgICAgICAgICBUb3AgcmVzdWx0c1xuICAgICAgICAgICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgICAgICAgICAgIDxGbGV4Qm94XG4gICAgICAgICAgICAgICAgICAgICAgZmxleERpcmVjdGlvbj1cImNvbHVtblwiXG4gICAgICAgICAgICAgICAgICAgICAgYXM9XCJ1bFwiXG4gICAgICAgICAgICAgICAgICAgICAgbGlzdFN0eWxlPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgcD17MH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHNlYXJjaEFzWW91VHlwZUxvYWRlcj8uc2hpbW1lclJvd3MubWFwKChyKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPElubGluZUxvYWRlckxpIGtleT17ci5rZXl9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3Iuc2hpbW1lcnMubWFwKCh3b3JkKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTaGltbWVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PXszMH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBweT17OCBhcyAwfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17d29yZC5rZXl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9e3dvcmQud2lkdGh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCb3hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udEZhbWlseT1cImFjY2VudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRDb2xvcj1cInRleHQtc2Vjb25kYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udFNpemU9e3sgXzogMTAgYXMgMTYgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyQ29sb3I9XCJib3JkZXItc2Vjb25kYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyPXsxfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJSYWRpdXM9XCJ4bFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB4PXsxNn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eT17MC4xfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbmJzcDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSW5saW5lTG9hZGVyTGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICkpXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMudG9wLm1hcCgocywgaSkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbmxpbmVSZXN1bHRMaVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtgJHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy5xdWVyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfToke2kudG9TdHJpbmcoKX1gfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiSW5kZXg9ezB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwibGlua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhldnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV2dC5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnc2VhcmNoX2FzX3lvdV90eXBlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsdWc6IHMuc2x1ZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLihzLmNvbnRlbnRJZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHsgY29udGVudF9pZDogcy5jb250ZW50SWQgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhZmVseVJlZGlyZWN0KHMudXJsUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnc2VhcmNoX2FzX3lvdV90eXBlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2x1Zzogcy5zbHVnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLihzLmNvbnRlbnRJZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7IGNvbnRlbnRfaWQ6IHMuY29udGVudElkIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2FmZWx5UmVkaXJlY3Qocy51cmxQYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEhpZ2hsaWdodGVkVGV4dCBzdWdnZXN0aW9uPXtzfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJhZGdlIHNpemU9XCJzbVwiIHZhcmlhbnQ9XCJ0ZXJ0aWFyeVwiIG1sPXsxMn0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtzLnR5cGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0JhZGdlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSW5saW5lUmVzdWx0TGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIHtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy50b3AubGVuZ3RoID09PSAwICYmIChcbiAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgIDxCb3ggZm9udFNpemU9e3sgXzogMjAsIHNtOiAyNiB9fSBtdD17MH0gbWI9ezQ4fT5cbiAgICAgICAgICAgICAgICAgICAgICB7YFdlIGNvdWxkbid0IGZpbmQgYSBtYXRjaCBmb3IgYH1cbiAgICAgICAgICAgICAgICAgICAgICA8VGV4dCBmb250V2VpZ2h0PVwiYm9sZFwiPntgXCIke3ZhbHVlVHJpbW1lZH0uXCJgfTwvVGV4dD5cbiAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAnIFRyeSBhbm90aGVyIGtleXdvcmQsIG9yIHNlZSB3aGF0IG91ciBtZW1iZXJzIGFyZSBsZWFybmluZy4nXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICAgICAgPE1lbnUgYm9yZGVyPVwibm9uZVwiIHZhcmlhbnQ9XCJwb3BvdmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPFBvcHVsYXJDb250ZW50IG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfSAvPlxuICAgICAgICAgICAgICAgICAgICA8L01lbnU+XG4gICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxNZW51IGJvcmRlcj1cIm5vbmVcIiB2YXJpYW50PVwicG9wb3ZlclwiPlxuICAgICAgICAgICAgICAgIDxQb3B1bGFyU2VhcmNoZXNcbiAgICAgICAgICAgICAgICAgIG5hdmlnYXRlVG9TZWFyY2g9e25hdmlnYXRlVG9TZWFyY2h9XG4gICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxQb3B1bGFyQ29udGVudCBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja30gLz5cbiAgICAgICAgICAgICAgPC9NZW51PlxuICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgeyEhc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8udG9wLmxlbmd0aCAmJiAoXG4gICAgICAgICAgICAgIDxTdHJva2VCdXR0b25cbiAgICAgICAgICAgICAgICBteT17MTZ9XG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCd2aWV3X2FsbF9yZXN1bHRzJywge1xuICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgIG5hdmlnYXRlVG9TZWFyY2godmFsdWUsIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkKTtcbiAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIFZpZXcgYWxsIHJlc3VsdHNcbiAgICAgICAgICAgICAgPC9TdHJva2VCdXR0b24+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgPFF1aXpBbmRIZWxwQ2VudGVyTGlua3NcbiAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9XG4gICAgICAgICAgICAgIGhhbmRsZUNsb3NlRHJvcGRvd249e2Nsb3NlU2VhcmNofVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L1N1Z2dlc3Rpb25Db250YWluZXI+XG4gICAgICAgIDwvQm94PlxuICAgICAgPC9Gb2N1c1RyYXA+XG4gICAgPC8+XG4gICk7XG59O1xuIl19 */");
|
|
41
41
|
const SuggestionContainer = /*#__PURE__*/_styled(ContentContainer, {
|
|
42
42
|
target: "e1e5b20r5",
|
|
43
43
|
label: "SuggestionContainer"
|
|
@@ -50,7 +50,7 @@ const SuggestionContainer = /*#__PURE__*/_styled(ContentContainer, {
|
|
|
50
50
|
px: {
|
|
51
51
|
_: 24
|
|
52
52
|
}
|
|
53
|
-
}), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvU2VhcmNoL1NlYXJjaFBhbmUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQStDNEIiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL0FwcEhlYWRlci9TZWFyY2gvU2VhcmNoUGFuZS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYWRnZSxcbiAgQm94LFxuICBDb250ZW50Q29udGFpbmVyLFxuICBGbGV4Qm94LFxuICBGb2N1c1RyYXAsXG4gIEljb25CdXR0b24sXG4gIE1lbnUsXG4gIE1lbnVJdGVtLFxuICBTaGltbWVyLFxuICBTdHJva2VCdXR0b24sXG4gIFRleHQsXG59IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCB7IE1pbmlEZWxldGVJY29uLCBTZWFyY2hJY29uIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtaWNvbnMnO1xuaW1wb3J0IHsgY3NzLCB0aGVtZSwgdXNlQ3VycmVudE1vZGUgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IHVzZU9uRXNjSGFuZGxlciB9IGZyb20gJy4uL3NoYXJlZCc7XG5pbXBvcnQgeyBzZWFyY2hQbGFjZWhvbGRlciB9IGZyb20gJy4vY29uc3RzJztcbmltcG9ydCB7IFBvcHVsYXJDb250ZW50LCBQb3B1bGFyU2VhcmNoZXMgfSBmcm9tICcuL0RlZmF1bHRSZXN1bHRzJztcbmltcG9ydCB7IHVzZVVybENoYW5nZURldGVjdGlvbiB9IGZyb20gJy4vaG9va3MvdXNlVXJsQ2hhbmdlRGV0ZWN0aW9uJztcbmltcG9ydCB7IFF1aXpBbmRIZWxwQ2VudGVyTGlua3MgfSBmcm9tICcuL1F1aXpBbmRIZWxwQ2VudGVyTGlua3MnO1xuaW1wb3J0IHsgc2FmZWx5UmVkaXJlY3QgfSBmcm9tICcuL3NhZmVseVJlZGlyZWN0JztcbmltcG9ydCB7IHVzZVNlYXJjaFRyYWNraW5nQ29udGV4dCB9IGZyb20gJy4vU2VhcmNoVHJhY2tpbmdQcm92aWRlcic7XG5pbXBvcnQgeyBzZWFyY2hXb3JrZXIgfSBmcm9tICcuL1NlYXJjaFdvcmtlcic7XG5pbXBvcnQgdHlwZSB7XG4gIEF1dG9jb21wbGV0ZVN1Z2dlc3Rpb24sXG4gIFNlYXJjaEFzWW91VHlwZVJlc3VsdHMsXG59IGZyb20gJy4vU2VhcmNoV29ya2VyL3R5cGVzJztcbmltcG9ydCB7IFNlYXJjaFBhbmVQcm9wcyB9IGZyb20gJy4vdHlwZXMnO1xuXG5jb25zdCBGb3JtID0gQm94LndpdGhDb21wb25lbnQoJ2Zvcm0nKTtcbmNvbnN0IElucHV0ID0gQm94LndpdGhDb21wb25lbnQoJ2lucHV0Jyk7XG5cbmNvbnN0IFF1ZXJ5Q29udGFpbmVyID0gc3R5bGVkKENvbnRlbnRDb250YWluZXIpKFxuICBjc3Moe1xuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICB3aWR0aDogJzEwMCUnLFxuICAgIHB0OiAxNixcbiAgICBwYjogeyBfOiAwLCBtZDogMjQgfSxcbiAgICBweDogeyBfOiAyNCB9LFxuICB9KVxuKTtcblxuY29uc3QgU3VnZ2VzdGlvbkNvbnRhaW5lciA9IHN0eWxlZChDb250ZW50Q29udGFpbmVyKShcbiAgY3NzKHtcbiAgICBwdDogMTYsXG4gICAgcGI6IHsgXzogMCwgbWQ6IDI0IH0sXG4gICAgcHg6IHsgXzogMjQgfSxcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZElucHV0ID0gc3R5bGVkKElucHV0KShcbiAgY3NzKHtcbiAgICBvdXRsaW5lOiBgbm9uZWAsXG4gICAgJyY6OnBsYWNlaG9sZGVyJzoge1xuICAgICAgdGV4dENvbG9yOiB0aGVtZS5jb2xvcnNbJ3RleHQtc2Vjb25kYXJ5J10gYXMgbmV2ZXIsXG4gICAgfSxcbiAgfSlcbik7XG5cbmNvbnN0IElubGluZVJlc3VsdExpID0gc3R5bGVkKE1lbnVJdGVtKShcbiAgY3NzKHtcbiAgICBwbDogMCxcbiAgICBweTogOCxcbiAgICBmb250U2l6ZTogMTYsXG4gICAgJyY6Zm9jdXMtdmlzaWJsZTphZnRlcic6IHtcbiAgICAgIGxlZnQ6IC00LFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBJbmxpbmVMb2FkZXJMaSA9IHN0eWxlZC5saShcbiAgY3NzKHtcbiAgICBsaXN0U3R5bGVUeXBlOiAnbm9uZScsXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGdhcDogMTIsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gIH0pXG4pO1xuXG5leHBvcnQgY29uc3QgU2VtaWJvbGRTZWFyY2hJY29uID0gc3R5bGVkKFNlYXJjaEljb24pYFxuICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuICBjaXJjbGUsXG4gIHBhdGgge1xuICAgIHN0cm9rZS13aWR0aDogMnB4O1xuICB9XG4gIHJlY3Qge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0ycHgsIC0ycHgpO1xuICAgIGhlaWdodDogY2FsYygxMDAlICsgNHB4KTtcbiAgICB3aWR0aDogY2FsYygxMDAlICsgNHB4KTtcbiAgfVxuYDtcblxuY29uc3QgRWxsaXBzaXNCb3ggPSBzdHlsZWQoQm94KWBcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5gO1xuXG5jb25zdCBIaWdobGlnaHRlZFRleHQgPSAoe1xuICBzdWdnZXN0aW9uOiB7IHRpdGxlLCBzZWdtZW50cyB9LFxufToge1xuICBzdWdnZXN0aW9uOiBBdXRvY29tcGxldGVTdWdnZXN0aW9uO1xufSkgPT4ge1xuICBjb25zdCBtb2RlID0gdXNlQ3VycmVudE1vZGUoKTtcbiAgY29uc3QgaGlnaGxpZ2h0Q29sb3IgPSBtb2RlID09PSAnZGFyaycgPyAnaHlwZXInIDogJ3llbGxvdyc7XG5cbiAgcmV0dXJuIChcbiAgICA8RmxleEJveD5cbiAgICAgIDxFbGxpcHNpc0JveFxuICAgICAgICBtYXhXaWR0aD1cImNhbGMoMTAwdncgLSAxMjhweClcIlxuICAgICAgICB3aGl0ZVNwYWNlPVwicHJlXCJcbiAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgb3ZlcmZsb3c9XCJoaWRkZW5cIlxuICAgICAgPlxuICAgICAgICB7c2VnbWVudHMubWFwKChzZWdtZW50LCBpKSA9PiAoXG4gICAgICAgICAgPFRleHRcbiAgICAgICAgICAgIGtleT17YCR7dGl0bGV9OiR7aS50b1N0cmluZygpfWB9XG4gICAgICAgICAgICBsaW5lSGVpZ2h0PVwidGl0bGVcIlxuICAgICAgICAgICAgey4uLihzZWdtZW50LmhpZ2hsaWdodFxuICAgICAgICAgICAgICA/IHsgYmc6IGhpZ2hsaWdodENvbG9yLCBmb250V2VpZ2h0OiAnYm9sZCcgfVxuICAgICAgICAgICAgICA6IHt9KX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7c2VnbWVudC52YWx1ZX1cbiAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICkpfVxuICAgICAgPC9FbGxpcHNpc0JveD5cbiAgICAgIDxUZXh0IHNjcmVlbnJlYWRlcj57dGl0bGV9PC9UZXh0PlxuICAgIDwvRmxleEJveD5cbiAgKTtcbn07XG5cbnR5cGUgU2VhcmNoQXNZb3VUeXBlTG9hZGVyID0ge1xuICBzaGltbWVyUm93czoge1xuICAgIGtleTogc3RyaW5nO1xuICAgIHNoaW1tZXJzOiB7XG4gICAgICBrZXk6IHN0cmluZztcbiAgICAgIHdpZHRoOiBudW1iZXI7XG4gICAgfVtdO1xuICB9W107XG59O1xuXG5sZXQgbG9hZGVyS2V5ID0gMDtcbmZ1bmN0aW9uIHJuZExvYWRlcigpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBsdXNwbHVzXG4gIGNvbnN0IGtleSA9IGxvYWRlcktleSsrO1xuICBjb25zdCBsb2FkZXI6IFNlYXJjaEFzWW91VHlwZUxvYWRlciA9IHsgc2hpbW1lclJvd3M6IFtdIH07XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgNTsgaSsrKSB7XG4gICAgY29uc3Qgcm93ID0ge1xuICAgICAga2V5OiBgJHtrZXl9OiR7aX1gLFxuICAgICAgc2hpbW1lcnM6IFtdIGFzIHsga2V5OiBzdHJpbmc7IHdpZHRoOiBudW1iZXIgfVtdLFxuICAgIH07XG4gICAgY29uc3Qgd29yZHMgPSBNYXRoLmNlaWwoTWF0aC5yYW5kb20oKSAqIDMpO1xuICAgIGZvciAobGV0IGogPSAwOyBqIDwgd29yZHM7IGorKykge1xuICAgICAgY29uc3Qgd2lkdGggPSAxMiArIE1hdGgucm91bmQoTWF0aC5yYW5kb20oKSAqIDk2KTtcbiAgICAgIHJvdy5zaGltbWVycy5wdXNoKHtcbiAgICAgICAga2V5OiBgJHtrZXl9OiR7an1gLFxuICAgICAgICB3aWR0aCxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBsb2FkZXIuc2hpbW1lclJvd3MucHVzaChyb3cpO1xuICB9XG4gIHJldHVybiBsb2FkZXI7XG59XG5cbmV4cG9ydCBjb25zdCBTZWFyY2hQYW5lOiBSZWFjdC5GQzxTZWFyY2hQYW5lUHJvcHM+ID0gKHtcbiAgb25TZWFyY2gsXG4gIG9uVHJhY2tpbmdDbGljayxcbiAgc2VhcmNoQnV0dG9uUmVmLFxuICB0b2dnbGVTZWFyY2gsXG4gIG9uU2VhcmNoQXNZb3VUeXBlLFxufSkgPT4ge1xuICBjb25zdCB0aGVtZSA9IHVzZVRoZW1lKCk7XG4gIGNvbnN0IFt2YWx1ZSwgc2V0VmFsdWVdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCBpbnB1dFJlZiA9IHVzZVJlZjxIVE1MSW5wdXRFbGVtZW50PihudWxsKTtcbiAgY29uc3QgW2F1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zLCBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9uc10gPSB1c2VTdGF0ZTxcbiAgICBBdXRvY29tcGxldGVTdWdnZXN0aW9uW11cbiAgPihbXSk7XG4gIGNvbnN0IFtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLCBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzXSA9XG4gICAgdXNlU3RhdGU8U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyB8IG51bGw+KG51bGwpO1xuXG4gIGNvbnN0IFtzZWFyY2hSZXN1bHRDbGlja2VkLCBzZXRTZWFyY2hSZXN1bHRDbGlja2VkXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICBjb25zdCB7IHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zIH0gPSB1c2VTZWFyY2hUcmFja2luZ0NvbnRleHQoKTtcblxuICBjb25zdCBzZWFyY2hBc1lvdVR5cGVMb2FkZXIgPSBSZWFjdC51c2VNZW1vKFxuICAgICgpID0+IChzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsID8gcm5kTG9hZGVyKCkgOiBudWxsKSxcbiAgICBbc2VhcmNoQXNZb3VUeXBlUmVzdWx0c11cbiAgKTtcblxuICBjb25zdCB2YWx1ZVRyaW1tZWQgPSB2YWx1ZS50cmltKCk7XG5cbiAgY29uc3QgaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrID1cbiAgICBvblNlYXJjaEFzWW91VHlwZSAmJiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzICYmICFzZWFyY2hSZXN1bHRDbGlja2VkO1xuXG4gIGNvbnN0IGNsb3NlU2VhcmNoID0gYXN5bmMgKCkgPT4ge1xuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCB3aGVuIHVzZXIgbWFkZSBhIHNlYXJjaCBhbmQgdGhlbiBjbG9zZWQgc2VhcmNoIHBhbmVcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIGF3YWl0IHRvZ2dsZVNlYXJjaCgpO1xuICAgIC8vIGFkZHMgYSBsaXR0bGUgZGVsYXkgYmV0d2VlbiBjbG9zaW5nIHRoZSBzZWFyY2ggcGFuZSBhbmQgZm9jdXNpbmcgb24gdGhlIGJ1dHRvblxuICAgIC8vIHRvIHByZXZlbnQgdGhlIHNlYXJjaCBwYW5lIGZyb20gaW1tZWRpYXRlbHkgb3BlbmluZyBhZ2FpblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHNlYXJjaEJ1dHRvblJlZiAmJiBzZWFyY2hCdXR0b25SZWY/LmN1cnJlbnQpIHtcbiAgICAgICAgc2VhcmNoQnV0dG9uUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICB9XG4gICAgfSwgMTApO1xuICB9O1xuXG4gIGNvbnN0IG9uS2V5RG93biA9IHVzZU9uRXNjSGFuZGxlcihjbG9zZVNlYXJjaCk7XG5cbiAgY29uc3Qgb25Nb3VzZURvd25PdXRzaWRlID0gKHsgdGFyZ2V0IH06IE1vdXNlRXZlbnQpID0+IHtcbiAgICBjb25zdCBoYW5kbGVPdXRzaWRlQ2xpY2sgPSAoKSA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgICFkb2N1bWVudFxuICAgICAgICAgIC5xdWVyeVNlbGVjdG9yKCdbZGF0YS10ZXN0aWQ9XCJoZWFkZXItc2VhcmNoLWRyb3Bkb3duXCJdJylcbiAgICAgICAgICA/LmNvbnRhaW5zKHRhcmdldCBhcyBIVE1MRWxlbWVudCkgJiZcbiAgICAgICAgdGFyZ2V0ICE9PSBzZWFyY2hCdXR0b25SZWY/LmN1cnJlbnRcbiAgICAgICkge1xuICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgfVxuXG4gICAgICB0YXJnZXQ/LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBoYW5kbGVPdXRzaWRlQ2xpY2spO1xuICAgIH07XG5cbiAgICB0YXJnZXQ/LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBoYW5kbGVPdXRzaWRlQ2xpY2spO1xuICB9O1xuXG4gIGNvbnN0IG5hdmlnYXRlVG9TZWFyY2ggPSAoc2VhcmNoVGVybTogc3RyaW5nLCBmcm9tUHJldlNlYXJjaD86IHN0cmluZykgPT4ge1xuICAgIG9uU2VhcmNoKHNlYXJjaFRlcm0sIGZyb21QcmV2U2VhcmNoKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVDaGFuZ2U6IFJlYWN0LkNoYW5nZUV2ZW50SGFuZGxlcjxIVE1MSW5wdXRFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICBzZXRWYWx1ZShldnQudGFyZ2V0LnZhbHVlKTtcbiAgICAvLyByZXNldCB0byBmYWxzZSB3aGVuIHRoZSBzZWFyY2ggcXVlcnkgY2hhbmdlc1xuICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQoZmFsc2UpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVN1Ym1pdDogUmVhY3QuRm9ybUV2ZW50SGFuZGxlciA9IChldmVudCkgPT4ge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgd2hlbiB0aGUgdXNlciBzdWJtaXRzIHRoZSBmb3JtIHRvIGNhcHR1cmUgY29tcGxldGUgcXVlcnlcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIG5hdmlnYXRlVG9TZWFyY2godmFsdWUsIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkKTtcbiAgfTtcblxuICBjb25zdCBjbGVhcklucHV0ID0gKCkgPT4ge1xuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCBiZWZvcmUgdXNlciBjbGVhcnMgaW5wdXRcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIHNldFZhbHVlKCcnKTtcbiAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhbXSk7XG4gICAgLy8gcmVzZXQgdGhlIGNvbnRleHQgd2l0aCBlbXB0eSB2YWx1ZXNcbiAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICBxdWVyeTogJycsXG4gICAgICBzZWFyY2hJZDogJycsXG4gICAgICByZXN1bHRzQ291bnQ6IDAsXG4gICAgICBxdWVyeUxvYWRUaW1lOiAwLFxuICAgIH0pO1xuICB9O1xuXG4gIC8vIHdoZW4gdGhlIGN1cnJlbnQgVVJMIGNoYW5nZXMsIHdlIHdhbnQgdG8gY2xvc2UgdGhlIHNlYXJjaCBwYW5lIGlmIGl0J3Mgb3BlblxuICAvLyBhbmQgdHJhY2sgc2VhcmNoIGV2ZW50IGlmIHVzZXIgbWFkZSBhIHNlYXJjaFxuICB1c2VVcmxDaGFuZ2VEZXRlY3Rpb24oe1xuICAgIG9uVXJsQ2hhbmdlOiAoKSA9PiB7XG4gICAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgICAgfVxuXG4gICAgICB0b2dnbGVTZWFyY2goKTtcbiAgICB9LFxuICB9KTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIC8vIGRvbid0IHRyYWNrIGlmIGEgcmVzdWx0IHdhcyBjbGlja2VkIG9yIGlmIHdlIGRvbid0IGhhdmUgc2VhcmNoIHJlc3VsdHNcbiAgICBpZiAoXG4gICAgICBzZWFyY2hSZXN1bHRDbGlja2VkIHx8XG4gICAgICAhb25TZWFyY2hBc1lvdVR5cGUgfHxcbiAgICAgICFzZWFyY2hBc1lvdVR5cGVSZXN1bHRzIHx8XG4gICAgICAhdmFsdWVUcmltbWVkLmxlbmd0aFxuICAgIClcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11c2VsZXNzLXJldHVyblxuICAgICAgcmV0dXJuO1xuICB9LCBbXG4gICAgc2VhcmNoUmVzdWx0Q2xpY2tlZCxcbiAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLFxuICAgIHZhbHVlVHJpbW1lZCxcbiAgICBvblNlYXJjaEFzWW91VHlwZSxcbiAgXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpbnB1dFJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgIHNlYXJjaFdvcmtlci5pbml0KCk7XG4gIH0sIFtdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghdmFsdWVUcmltbWVkLmxlbmd0aCkge1xuICAgICAgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyhudWxsKTtcbiAgICAgIHNldEF1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zKFtdKTtcbiAgICAgIHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zKHtcbiAgICAgICAgcXVlcnk6ICcnLFxuICAgICAgICBzZWFyY2hJZDogJycsXG4gICAgICAgIHJlc3VsdHNDb3VudDogMCxcbiAgICAgICAgcXVlcnlMb2FkVGltZTogMCxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBjYW5jZWwgPSBmYWxzZTtcbiAgICBsZXQgY2xlYXJBdXRvY29tcGxldGUgPSB0cnVlO1xuICAgIGxldCBjbGVhclNlYXJjaEFzWW91VHlwZSA9IHRydWU7XG5cbiAgICBsZXQgc2VhcmNoRXZlbnROb1Jlc3VsdERlbGF5OiBOb2RlSlMuVGltZW91dDtcblxuICAgIGNvbnN0IGxvYWRlckRlbGF5ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAvKlxuICAgICAgICogV2FpdCAxMCBtaWxsaXNlY29uZHMgdG8gZ2V0IGEgcmVzcG9uc2UgZm9yIHdvcmtlciBiZWZvcmUgc2hvd2luZyBsb2FkZXJzLlxuICAgICAgICogVGhpcyBwcmV2ZW50cyBmbGlja2VyaW5nIGxvYWRlcnMgb24gcXVpY2sgb3IgY2FjaGVkIHJlc3VsdHMuXG4gICAgICAgKi9cbiAgICAgIGlmIChjYW5jZWwpIHJldHVybjtcbiAgICAgIGlmIChjbGVhckF1dG9jb21wbGV0ZSkgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgICAgaWYgKGNsZWFyU2VhcmNoQXNZb3VUeXBlKSBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKG51bGwpO1xuICAgIH0sIDEwKTtcblxuICAgIHNlYXJjaFdvcmtlci5hdXRvY29tcGxldGUodmFsdWVUcmltbWVkKS50aGVuKChzdWdnZXN0aW9ucykgPT4ge1xuICAgICAgY2xlYXJBdXRvY29tcGxldGUgPSBmYWxzZTtcblxuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuOyAvLyB0ZXh0IGhhcyBjaGFuZ2VkIHNpbmNlIHRoaXMgcmVxdWVzdCB3YXMgbWFkZVxuXG4gICAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhzdWdnZXN0aW9ucyk7XG4gICAgfSk7XG5cbiAgICBzZWFyY2hXb3JrZXIuc2VhcmNoQXNZb3VUeXBlKHZhbHVlVHJpbW1lZCkudGhlbigocmVzdWx0cykgPT4ge1xuICAgICAgY2xlYXJTZWFyY2hBc1lvdVR5cGUgPSBmYWxzZTtcblxuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuOyAvLyB0ZXh0IGhhcyBjaGFuZ2VkIHNpbmNlIHRoaXMgcmVxdWVzdCB3YXMgbWFkZVxuXG4gICAgICBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKHJlc3VsdHMpO1xuXG4gICAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICAgIHF1ZXJ5OiByZXN1bHRzLnF1ZXJ5LFxuICAgICAgICBzZWFyY2hJZDogcmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgcmVzdWx0c0NvdW50OiByZXN1bHRzLnRvcC5sZW5ndGgsXG4gICAgICAgIHF1ZXJ5TG9hZFRpbWU6IHJlc3VsdHMucXVlcnlMb2FkVGltZSxcbiAgICAgIH0pO1xuXG4gICAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgd2l0aCBhIHNtYWxsIGRlbGF5IHdoZW4gdGhlcmUgYXJlIG5vIHJlc3VsdHNcbiAgICAgIGlmIChcbiAgICAgICAgb25TZWFyY2hBc1lvdVR5cGUgJiZcbiAgICAgICAgcmVzdWx0cy50b3AubGVuZ3RoID09PSAwICYmXG4gICAgICAgICFzZWFyY2hSZXN1bHRDbGlja2VkXG4gICAgICApIHtcbiAgICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHF1ZXJ5TG9hZFRpbWUgfSA9IHJlc3VsdHM7XG4gICAgICAgIHNlYXJjaEV2ZW50Tm9SZXN1bHREZWxheSA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIGlmICghY2FuY2VsKSB7XG4gICAgICAgICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIDAsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSwgMzAwKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjYW5jZWwgPSB0cnVlO1xuICAgICAgY2xlYXJUaW1lb3V0KGxvYWRlckRlbGF5KTtcbiAgICAgIGNsZWFyVGltZW91dChzZWFyY2hFdmVudE5vUmVzdWx0RGVsYXkpO1xuICAgIH07XG4gIH0sIFtcbiAgICB2YWx1ZVRyaW1tZWQsXG4gICAgb25TZWFyY2hBc1lvdVR5cGUsXG4gICAgc2VhcmNoUmVzdWx0Q2xpY2tlZCxcbiAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyxcbiAgXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPEJveFxuICAgICAgICBhcmlhLWhpZGRlblxuICAgICAgICBiZz1cInNoYWRvdy1zZWNvbmRhcnlcIlxuICAgICAgICBoZWlnaHQ9XCIxMDB2aFwiXG4gICAgICAgIHBvc2l0aW9uPVwiZml4ZWRcIlxuICAgICAgICAvLyBXZSBhZGQgNnJlbSBoZXJlIGluIGNhc2UgdGhlcmUncyBzb21lIHNvcnQgb2YgYnJhbmRlZCBiYW5uZXIgYWJvdmUgc2VhcmNoXG4gICAgICAgIC8vIFRoZSBzZWFyY2ggYXJlYSBpcyBtdWNoIHRhbGxlciB0aGFuIDZyZW0gc28gdGhpcyBpcyBhIHNhZmUgYW1vdW50IG9mIHBhZGRpbmdcbiAgICAgICAgdG9wPXtgY2FsYygke3RoZW1lLmVsZW1lbnRzLmhlYWRlckhlaWdodH0gKyA2cmVtKWB9XG4gICAgICAgIHdpZHRoPXsxfVxuICAgICAgLz5cbiAgICAgIDxGb2N1c1RyYXBcbiAgICAgICAgb25Fc2NhcGVLZXk9e2Nsb3NlU2VhcmNofVxuICAgICAgICBvbkNsaWNrT3V0c2lkZT17b25Nb3VzZURvd25PdXRzaWRlfVxuICAgICAgICBhbGxvd1BhZ2VJbnRlcmFjdGlvblxuICAgICAgPlxuICAgICAgICA8Qm94XG4gICAgICAgICAgYmc9XCJiYWNrZ3JvdW5kXCJcbiAgICAgICAgICBib3JkZXJDb2xvckJvdHRvbT1cImJvcmRlci1wcmltYXJ5XCJcbiAgICAgICAgICBib3JkZXJDb2xvclRvcD1cImJvcmRlci10ZXJ0aWFyeVwiXG4gICAgICAgICAgYm9yZGVyU3R5bGU9XCJzb2xpZFwiXG4gICAgICAgICAgYm9yZGVyV2lkdGg9XCIycHggMCAxcHhcIlxuICAgICAgICAgIGRhdGEtdGVzdGlkPVwiaGVhZGVyLXNlYXJjaC1kcm9wZG93blwiXG4gICAgICAgICAgcG9zaXRpb249e3sgXzogJ2ZpeGVkJywgbWQ6ICdhYnNvbHV0ZScgfX1cbiAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgIG1heEhlaWdodD17eyBfOiAnY2FsYygxMDB2aCAtIDYzcHgpJywgbWQ6ICdjYWxjKDEwMHZoIC0gODBweCknIH19XG4gICAgICAgICAgb3ZlcmZsb3c9XCJhdXRvXCJcbiAgICAgICAgICB6SW5kZXg9ezEwfSAvLyBlbnN1cmUgZHJvcGRvd24gaXMgYWJvdmUgdGhlIHBhZ2UgY29udGVudFxuICAgICAgICA+XG4gICAgICAgICAgPEJveCBib3JkZXI9XCJub25lXCIgd2lkdGg9XCJhdXRvXCI+XG4gICAgICAgICAgICA8UXVlcnlDb250YWluZXI+XG4gICAgICAgICAgICAgIDxGbGV4Qm94XG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImJhc2VsaW5lXCJcbiAgICAgICAgICAgICAgICBib3JkZXJDb2xvcj1cImdyYXktNjAwXCJcbiAgICAgICAgICAgICAgICBib3JkZXJTdHlsZUJvdHRvbT1cInNvbGlkXCJcbiAgICAgICAgICAgICAgICBib3JkZXJXaWR0aEJvdHRvbT1cIjFweFwiXG4gICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTZWFyY2hJY29uXG4gICAgICAgICAgICAgICAgICBoZWlnaHQ9e3sgXzogMjAsIG1kOiAyNCB9fVxuICAgICAgICAgICAgICAgICAgd2lkdGg9e3sgXzogMjAsIG1kOiAyNCB9fVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPEZvcm1cbiAgICAgICAgICAgICAgICAgIGFjdGlvbj1cIi9zZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgaWQ9XCJzZWFyY2gtZm9ybVwiXG4gICAgICAgICAgICAgICAgICBtbD17OH1cbiAgICAgICAgICAgICAgICAgIG9uU3VibWl0PXtoYW5kbGVTdWJtaXR9XG4gICAgICAgICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxTdHlsZWRJbnB1dFxuICAgICAgICAgICAgICAgICAgICBhdXRvRm9jdXNcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZD1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICBib3JkZXI9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgZm9udFNpemU9e3sgXzogMjAsIG1kOiAyNiB9fVxuICAgICAgICAgICAgICAgICAgICBmb250V2VpZ2h0PVwiYm9sZFwiXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiaGVhZGVyLXNlYXJjaC1iYXJcIlxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwicXVlcnlcIlxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhlKSA9PiBvbktleURvd24oZSl9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtzZWFyY2hQbGFjZWhvbGRlcn1cbiAgICAgICAgICAgICAgICAgICAgcmVmPXtpbnB1dFJlZn1cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgICAgICAgYXV0b0NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9Gb3JtPlxuICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICBpY29uPXtNaW5pRGVsZXRlSWNvbn1cbiAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJDbGVhciBzZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgdGlwPVwiQ2xlYXIgc2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgIHRpcFByb3BzPXt7XG4gICAgICAgICAgICAgICAgICAgIGFsaWdubWVudDogJ2JvdHRvbS1jZW50ZXInLFxuICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ6ICdmbG9hdGluZycsXG4gICAgICAgICAgICAgICAgICAgIG5hcnJvdzogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgekluZGV4OiAyLFxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2NsZWFySW5wdXR9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvRmxleEJveD5cbiAgICAgICAgICAgIDwvUXVlcnlDb250YWluZXI+XG4gICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgPFN1Z2dlc3Rpb25Db250YWluZXI+XG4gICAgICAgICAgICB7dmFsdWVUcmltbWVkLmxlbmd0aCA+IDAgPyAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgPEZsZXhCb3ggZmxleERpcmVjdGlvbj1cImNvbHVtblwiIGFzPVwidWxcIiBsaXN0U3R5bGU9XCJub25lXCIgcD17MH0+XG4gICAgICAgICAgICAgICAgICB7YXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMubWFwKChzLCBpKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgIDxJbmxpbmVSZXN1bHRMaVxuICAgICAgICAgICAgICAgICAgICAgIGtleT17cy50aXRsZX1cbiAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhldnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnYXV0b2NvbXBsZXRlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzLnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdhdXRvY29tcGxldGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzLnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxTZW1pYm9sZFNlYXJjaEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgIG1iPXsyIGFzIDB9XG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPXsxNH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZVdpZHRoPXs4fVxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgICAgICAgICAgICAgICAgIG1yPXsxMn1cbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxIaWdobGlnaHRlZFRleHQgc3VnZ2VzdGlvbj17c30gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9JbmxpbmVSZXN1bHRMaT5cbiAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgIDwvRmxleEJveD5cbiAgICAgICAgICAgICAgICB7KHNlYXJjaEFzWW91VHlwZVJlc3VsdHMgPT09IG51bGwgfHxcbiAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMudG9wLmxlbmd0aCA+IDApICYmIChcbiAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgIDxUZXh0IGFzPVwiaDJcIiBmb250U2l6ZT17MjB9IG1iPXsxNn0gbXQ9ezI0fT5cbiAgICAgICAgICAgICAgICAgICAgICBUb3AgcmVzdWx0c1xuICAgICAgICAgICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgICAgICAgICAgIDxGbGV4Qm94XG4gICAgICAgICAgICAgICAgICAgICAgZmxleERpcmVjdGlvbj1cImNvbHVtblwiXG4gICAgICAgICAgICAgICAgICAgICAgYXM9XCJ1bFwiXG4gICAgICAgICAgICAgICAgICAgICAgbGlzdFN0eWxlPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgcD17MH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHNlYXJjaEFzWW91VHlwZUxvYWRlcj8uc2hpbW1lclJvd3MubWFwKChyKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPElubGluZUxvYWRlckxpIGtleT17ci5rZXl9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3Iuc2hpbW1lcnMubWFwKCh3b3JkKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTaGltbWVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PXszMH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBweT17OCBhcyAwfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17d29yZC5rZXl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9e3dvcmQud2lkdGh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCb3hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udEZhbWlseT1cImFjY2VudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRDb2xvcj1cInRleHQtc2Vjb25kYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udFNpemU9e3sgXzogMTAgYXMgMTYgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyQ29sb3I9XCJib3JkZXItc2Vjb25kYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyPXsxfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJSYWRpdXM9XCJ4bFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB4PXsxNn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eT17MC4xfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbmJzcDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSW5saW5lTG9hZGVyTGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICkpXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMudG9wLm1hcCgocywgaSkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbmxpbmVSZXN1bHRMaVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtgJHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy5xdWVyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfToke2kudG9TdHJpbmcoKX1gfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiSW5kZXg9ezB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwibGlua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhldnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV2dC5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnc2VhcmNoX2FzX3lvdV90eXBlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsdWc6IHMuc2x1ZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLihzLmNvbnRlbnRJZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHsgY29udGVudF9pZDogcy5jb250ZW50SWQgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhZmVseVJlZGlyZWN0KHMudXJsUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnc2VhcmNoX2FzX3lvdV90eXBlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2x1Zzogcy5zbHVnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLihzLmNvbnRlbnRJZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7IGNvbnRlbnRfaWQ6IHMuY29udGVudElkIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2FmZWx5UmVkaXJlY3Qocy51cmxQYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEhpZ2hsaWdodGVkVGV4dCBzdWdnZXN0aW9uPXtzfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJhZGdlIHNpemU9XCJzbVwiIHZhcmlhbnQ9XCJ0ZXJ0aWFyeVwiIG1sPXsxMn0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtzLnR5cGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0JhZGdlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSW5saW5lUmVzdWx0TGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIHtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy50b3AubGVuZ3RoID09PSAwICYmIChcbiAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgIDxCb3ggZm9udFNpemU9e3sgXzogMjAsIHNtOiAyNiB9fSBtdD17MH0gbWI9ezQ4fT5cbiAgICAgICAgICAgICAgICAgICAgICB7YFdlIGNvdWxkbid0IGZpbmQgYSBtYXRjaCBmb3IgYH1cbiAgICAgICAgICAgICAgICAgICAgICA8VGV4dCBmb250V2VpZ2h0PVwiYm9sZFwiPntgXCIke3ZhbHVlVHJpbW1lZH0uXCJgfTwvVGV4dD5cbiAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAnIFRyeSBhbm90aGVyIGtleXdvcmQsIG9yIHNlZSB3aGF0IG91ciBtZW1iZXJzIGFyZSBsZWFybmluZy4nXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICAgICAgPE1lbnUgYm9yZGVyPVwibm9uZVwiIHZhcmlhbnQ9XCJwb3BvdmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPFBvcHVsYXJDb250ZW50IG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfSAvPlxuICAgICAgICAgICAgICAgICAgICA8L01lbnU+XG4gICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxNZW51IGJvcmRlcj1cIm5vbmVcIiB2YXJpYW50PVwicG9wb3ZlclwiPlxuICAgICAgICAgICAgICAgIDxQb3B1bGFyU2VhcmNoZXNcbiAgICAgICAgICAgICAgICAgIG5hdmlnYXRlVG9TZWFyY2g9e25hdmlnYXRlVG9TZWFyY2h9XG4gICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxQb3B1bGFyQ29udGVudCBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja30gLz5cbiAgICAgICAgICAgICAgPC9NZW51PlxuICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgeyEhc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8udG9wLmxlbmd0aCAmJiAoXG4gICAgICAgICAgICAgIDxTdHJva2VCdXR0b25cbiAgICAgICAgICAgICAgICBteT17MTZ9XG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCd2aWV3X2FsbF9yZXN1bHRzJywge1xuICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgIG5hdmlnYXRlVG9TZWFyY2godmFsdWUsIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkKTtcbiAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIFZpZXcgYWxsIHJlc3VsdHNcbiAgICAgICAgICAgICAgPC9TdHJva2VCdXR0b24+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgPFF1aXpBbmRIZWxwQ2VudGVyTGlua3NcbiAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9XG4gICAgICAgICAgICAgIGhhbmRsZUNsb3NlRHJvcGRvd249e2Nsb3NlU2VhcmNofVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L1N1Z2dlc3Rpb25Db250YWluZXI+XG4gICAgICAgIDwvQm94PlxuICAgICAgPC9Gb2N1c1RyYXA+XG4gICAgPC8+XG4gICk7XG59O1xuIl19 */");
|
|
53
|
+
}), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvU2VhcmNoL1NlYXJjaFBhbmUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQStDNEIiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL0FwcEhlYWRlci9TZWFyY2gvU2VhcmNoUGFuZS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYWRnZSxcbiAgQm94LFxuICBDb250ZW50Q29udGFpbmVyLFxuICBGbGV4Qm94LFxuICBGb2N1c1RyYXAsXG4gIEljb25CdXR0b24sXG4gIE1lbnUsXG4gIE1lbnVJdGVtLFxuICBTaGltbWVyLFxuICBTdHJva2VCdXR0b24sXG4gIFRleHQsXG59IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCB7IE1pbmlEZWxldGVJY29uLCBTZWFyY2hJY29uIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtaWNvbnMnO1xuaW1wb3J0IHsgY3NzLCB0aGVtZSwgdXNlQ3VycmVudE1vZGUgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IHVzZU9uRXNjSGFuZGxlciB9IGZyb20gJy4uL3NoYXJlZCc7XG5pbXBvcnQgeyBzZWFyY2hQbGFjZWhvbGRlciB9IGZyb20gJy4vY29uc3RzJztcbmltcG9ydCB7IFBvcHVsYXJDb250ZW50LCBQb3B1bGFyU2VhcmNoZXMgfSBmcm9tICcuL0RlZmF1bHRSZXN1bHRzJztcbmltcG9ydCB7IHVzZVVybENoYW5nZURldGVjdGlvbiB9IGZyb20gJy4vaG9va3MvdXNlVXJsQ2hhbmdlRGV0ZWN0aW9uJztcbmltcG9ydCB7IFF1aXpBbmRIZWxwQ2VudGVyTGlua3MgfSBmcm9tICcuL1F1aXpBbmRIZWxwQ2VudGVyTGlua3MnO1xuaW1wb3J0IHsgc2FmZWx5UmVkaXJlY3QgfSBmcm9tICcuL3NhZmVseVJlZGlyZWN0JztcbmltcG9ydCB7IHVzZVNlYXJjaFRyYWNraW5nQ29udGV4dCB9IGZyb20gJy4vU2VhcmNoVHJhY2tpbmdQcm92aWRlcic7XG5pbXBvcnQgeyBzZWFyY2hXb3JrZXIgfSBmcm9tICcuL1NlYXJjaFdvcmtlcic7XG5pbXBvcnQgdHlwZSB7XG4gIEF1dG9jb21wbGV0ZVN1Z2dlc3Rpb24sXG4gIFNlYXJjaEFzWW91VHlwZVJlc3VsdHMsXG59IGZyb20gJy4vU2VhcmNoV29ya2VyL3R5cGVzJztcbmltcG9ydCB7IFNlYXJjaFBhbmVQcm9wcyB9IGZyb20gJy4vdHlwZXMnO1xuXG5jb25zdCBGb3JtID0gQm94LndpdGhDb21wb25lbnQoJ2Zvcm0nKTtcbmNvbnN0IElucHV0ID0gQm94LndpdGhDb21wb25lbnQoJ2lucHV0Jyk7XG5cbmNvbnN0IFF1ZXJ5Q29udGFpbmVyID0gc3R5bGVkKENvbnRlbnRDb250YWluZXIpKFxuICBjc3Moe1xuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICB3aWR0aDogJzEwMCUnLFxuICAgIHB0OiAxNixcbiAgICBwYjogeyBfOiAwLCBtZDogMjQgfSxcbiAgICBweDogeyBfOiAyNCB9LFxuICB9KVxuKTtcblxuY29uc3QgU3VnZ2VzdGlvbkNvbnRhaW5lciA9IHN0eWxlZChDb250ZW50Q29udGFpbmVyKShcbiAgY3NzKHtcbiAgICBwdDogMTYsXG4gICAgcGI6IHsgXzogMCwgbWQ6IDI0IH0sXG4gICAgcHg6IHsgXzogMjQgfSxcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZElucHV0ID0gc3R5bGVkKElucHV0KShcbiAgY3NzKHtcbiAgICBvdXRsaW5lOiBgbm9uZWAsXG4gICAgJyY6OnBsYWNlaG9sZGVyJzoge1xuICAgICAgdGV4dENvbG9yOiB0aGVtZS5jb2xvcnNbJ3RleHQtc2Vjb25kYXJ5J10gYXMgbmV2ZXIsXG4gICAgfSxcbiAgfSlcbik7XG5cbmNvbnN0IElubGluZVJlc3VsdExpID0gc3R5bGVkKE1lbnVJdGVtKShcbiAgY3NzKHtcbiAgICBwbDogMCxcbiAgICBweTogOCxcbiAgICBmb250U2l6ZTogMTYsXG4gICAgJyY6Zm9jdXMtdmlzaWJsZTphZnRlcic6IHtcbiAgICAgIGxlZnQ6IC00LFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBJbmxpbmVMb2FkZXJMaSA9IHN0eWxlZC5saShcbiAgY3NzKHtcbiAgICBsaXN0U3R5bGVUeXBlOiAnbm9uZScsXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGdhcDogMTIsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gIH0pXG4pO1xuXG5leHBvcnQgY29uc3QgU2VtaWJvbGRTZWFyY2hJY29uID0gc3R5bGVkKFNlYXJjaEljb24pYFxuICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuICBjaXJjbGUsXG4gIHBhdGgge1xuICAgIHN0cm9rZS13aWR0aDogMnB4O1xuICB9XG4gIHJlY3Qge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0ycHgsIC0ycHgpO1xuICAgIGhlaWdodDogY2FsYygxMDAlICsgNHB4KTtcbiAgICB3aWR0aDogY2FsYygxMDAlICsgNHB4KTtcbiAgfVxuYDtcblxuY29uc3QgRWxsaXBzaXNCb3ggPSBzdHlsZWQoQm94KWBcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5gO1xuXG5jb25zdCBIaWdobGlnaHRlZFRleHQgPSAoe1xuICBzdWdnZXN0aW9uOiB7IHRpdGxlLCBzZWdtZW50cyB9LFxufToge1xuICBzdWdnZXN0aW9uOiBBdXRvY29tcGxldGVTdWdnZXN0aW9uO1xufSkgPT4ge1xuICBjb25zdCBtb2RlID0gdXNlQ3VycmVudE1vZGUoKTtcbiAgY29uc3QgaGlnaGxpZ2h0Q29sb3IgPSBtb2RlID09PSAnZGFyaycgPyAnaHlwZXInIDogJ3llbGxvdyc7XG5cbiAgcmV0dXJuIChcbiAgICA8RmxleEJveD5cbiAgICAgIDxFbGxpcHNpc0JveFxuICAgICAgICBtYXhXaWR0aD1cImNhbGMoMTAwdncgLSAxMjhweClcIlxuICAgICAgICB3aGl0ZVNwYWNlPVwicHJlXCJcbiAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgb3ZlcmZsb3c9XCJoaWRkZW5cIlxuICAgICAgPlxuICAgICAgICB7c2VnbWVudHMubWFwKChzZWdtZW50LCBpKSA9PiAoXG4gICAgICAgICAgPFRleHRcbiAgICAgICAgICAgIGtleT17YCR7dGl0bGV9OiR7aS50b1N0cmluZygpfWB9XG4gICAgICAgICAgICBsaW5lSGVpZ2h0PVwidGl0bGVcIlxuICAgICAgICAgICAgey4uLihzZWdtZW50LmhpZ2hsaWdodFxuICAgICAgICAgICAgICA/IHsgYmc6IGhpZ2hsaWdodENvbG9yLCBmb250V2VpZ2h0OiAnYm9sZCcgfVxuICAgICAgICAgICAgICA6IHt9KX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7c2VnbWVudC52YWx1ZX1cbiAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICkpfVxuICAgICAgPC9FbGxpcHNpc0JveD5cbiAgICAgIDxUZXh0IHNjcmVlbnJlYWRlcj57dGl0bGV9PC9UZXh0PlxuICAgIDwvRmxleEJveD5cbiAgKTtcbn07XG5cbnR5cGUgU2VhcmNoQXNZb3VUeXBlTG9hZGVyID0ge1xuICBzaGltbWVyUm93czoge1xuICAgIGtleTogc3RyaW5nO1xuICAgIHNoaW1tZXJzOiB7XG4gICAgICBrZXk6IHN0cmluZztcbiAgICAgIHdpZHRoOiBudW1iZXI7XG4gICAgfVtdO1xuICB9W107XG59O1xuXG5sZXQgbG9hZGVyS2V5ID0gMDtcbmZ1bmN0aW9uIHJuZExvYWRlcigpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBsdXNwbHVzXG4gIGNvbnN0IGtleSA9IGxvYWRlcktleSsrO1xuICBjb25zdCBsb2FkZXI6IFNlYXJjaEFzWW91VHlwZUxvYWRlciA9IHsgc2hpbW1lclJvd3M6IFtdIH07XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgNTsgaSsrKSB7XG4gICAgY29uc3Qgcm93ID0ge1xuICAgICAga2V5OiBgJHtrZXl9OiR7aX1gLFxuICAgICAgc2hpbW1lcnM6IFtdIGFzIHsga2V5OiBzdHJpbmc7IHdpZHRoOiBudW1iZXIgfVtdLFxuICAgIH07XG4gICAgY29uc3Qgd29yZHMgPSBNYXRoLmNlaWwoTWF0aC5yYW5kb20oKSAqIDMpO1xuICAgIGZvciAobGV0IGogPSAwOyBqIDwgd29yZHM7IGorKykge1xuICAgICAgY29uc3Qgd2lkdGggPSAxMiArIE1hdGgucm91bmQoTWF0aC5yYW5kb20oKSAqIDk2KTtcbiAgICAgIHJvdy5zaGltbWVycy5wdXNoKHtcbiAgICAgICAga2V5OiBgJHtrZXl9OiR7an1gLFxuICAgICAgICB3aWR0aCxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBsb2FkZXIuc2hpbW1lclJvd3MucHVzaChyb3cpO1xuICB9XG4gIHJldHVybiBsb2FkZXI7XG59XG5cbmV4cG9ydCBjb25zdCBTZWFyY2hQYW5lOiBSZWFjdC5GQzxTZWFyY2hQYW5lUHJvcHM+ID0gKHtcbiAgb25TZWFyY2gsXG4gIG9uVHJhY2tpbmdDbGljayxcbiAgc2VhcmNoQnV0dG9uUmVmLFxuICB0b2dnbGVTZWFyY2gsXG4gIG9uU2VhcmNoQXNZb3VUeXBlLFxufSkgPT4ge1xuICBjb25zdCB0aGVtZSA9IHVzZVRoZW1lKCk7XG4gIGNvbnN0IFt2YWx1ZSwgc2V0VmFsdWVdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCBpbnB1dFJlZiA9IHVzZVJlZjxIVE1MSW5wdXRFbGVtZW50PihudWxsKTtcbiAgY29uc3QgW2F1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zLCBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9uc10gPSB1c2VTdGF0ZTxcbiAgICBBdXRvY29tcGxldGVTdWdnZXN0aW9uW11cbiAgPihbXSk7XG4gIGNvbnN0IFtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLCBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzXSA9XG4gICAgdXNlU3RhdGU8U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyB8IG51bGw+KG51bGwpO1xuXG4gIGNvbnN0IFtzZWFyY2hSZXN1bHRDbGlja2VkLCBzZXRTZWFyY2hSZXN1bHRDbGlja2VkXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICBjb25zdCB7IHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zIH0gPSB1c2VTZWFyY2hUcmFja2luZ0NvbnRleHQoKTtcblxuICBjb25zdCBzZWFyY2hBc1lvdVR5cGVMb2FkZXIgPSBSZWFjdC51c2VNZW1vKFxuICAgICgpID0+IChzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsID8gcm5kTG9hZGVyKCkgOiBudWxsKSxcbiAgICBbc2VhcmNoQXNZb3VUeXBlUmVzdWx0c11cbiAgKTtcblxuICBjb25zdCB2YWx1ZVRyaW1tZWQgPSB2YWx1ZS50cmltKCk7XG5cbiAgY29uc3QgaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrID1cbiAgICBvblNlYXJjaEFzWW91VHlwZSAmJiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzICYmICFzZWFyY2hSZXN1bHRDbGlja2VkO1xuXG4gIGNvbnN0IGNsb3NlU2VhcmNoID0gYXN5bmMgKCkgPT4ge1xuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCB3aGVuIHVzZXIgbWFkZSBhIHNlYXJjaCBhbmQgdGhlbiBjbG9zZWQgc2VhcmNoIHBhbmVcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIGF3YWl0IHRvZ2dsZVNlYXJjaCgpO1xuICAgIC8vIGFkZHMgYSBsaXR0bGUgZGVsYXkgYmV0d2VlbiBjbG9zaW5nIHRoZSBzZWFyY2ggcGFuZSBhbmQgZm9jdXNpbmcgb24gdGhlIGJ1dHRvblxuICAgIC8vIHRvIHByZXZlbnQgdGhlIHNlYXJjaCBwYW5lIGZyb20gaW1tZWRpYXRlbHkgb3BlbmluZyBhZ2FpblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHNlYXJjaEJ1dHRvblJlZiAmJiBzZWFyY2hCdXR0b25SZWY/LmN1cnJlbnQpIHtcbiAgICAgICAgc2VhcmNoQnV0dG9uUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICB9XG4gICAgfSwgMTApO1xuICB9O1xuXG4gIGNvbnN0IG9uS2V5RG93biA9IHVzZU9uRXNjSGFuZGxlcihjbG9zZVNlYXJjaCk7XG5cbiAgY29uc3Qgb25Nb3VzZURvd25PdXRzaWRlID0gKHsgdGFyZ2V0IH06IE1vdXNlRXZlbnQpID0+IHtcbiAgICBjb25zdCBoYW5kbGVPdXRzaWRlQ2xpY2sgPSAoKSA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgICFkb2N1bWVudFxuICAgICAgICAgIC5xdWVyeVNlbGVjdG9yKCdbZGF0YS10ZXN0aWQ9XCJoZWFkZXItc2VhcmNoLWRyb3Bkb3duXCJdJylcbiAgICAgICAgICA/LmNvbnRhaW5zKHRhcmdldCBhcyBIVE1MRWxlbWVudCkgJiZcbiAgICAgICAgdGFyZ2V0ICE9PSBzZWFyY2hCdXR0b25SZWY/LmN1cnJlbnRcbiAgICAgICkge1xuICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgfVxuXG4gICAgICB0YXJnZXQ/LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBoYW5kbGVPdXRzaWRlQ2xpY2spO1xuICAgIH07XG5cbiAgICB0YXJnZXQ/LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBoYW5kbGVPdXRzaWRlQ2xpY2spO1xuICB9O1xuXG4gIGNvbnN0IG5hdmlnYXRlVG9TZWFyY2ggPSAoc2VhcmNoVGVybTogc3RyaW5nLCBmcm9tUHJldlNlYXJjaD86IHN0cmluZykgPT4ge1xuICAgIG9uU2VhcmNoKHNlYXJjaFRlcm0sIGZyb21QcmV2U2VhcmNoKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVDaGFuZ2U6IFJlYWN0LkNoYW5nZUV2ZW50SGFuZGxlcjxIVE1MSW5wdXRFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICBzZXRWYWx1ZShldnQudGFyZ2V0LnZhbHVlKTtcbiAgICAvLyByZXNldCB0byBmYWxzZSB3aGVuIHRoZSBzZWFyY2ggcXVlcnkgY2hhbmdlc1xuICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQoZmFsc2UpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVN1Ym1pdDogUmVhY3QuRm9ybUV2ZW50SGFuZGxlciA9IChldmVudCkgPT4ge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgd2hlbiB0aGUgdXNlciBzdWJtaXRzIHRoZSBmb3JtIHRvIGNhcHR1cmUgY29tcGxldGUgcXVlcnlcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIG5hdmlnYXRlVG9TZWFyY2godmFsdWUsIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkKTtcbiAgfTtcblxuICBjb25zdCBjbGVhcklucHV0ID0gKCkgPT4ge1xuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCBiZWZvcmUgdXNlciBjbGVhcnMgaW5wdXRcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIHNldFZhbHVlKCcnKTtcbiAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhbXSk7XG4gICAgLy8gcmVzZXQgdGhlIGNvbnRleHQgd2l0aCBlbXB0eSB2YWx1ZXNcbiAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICBxdWVyeTogJycsXG4gICAgICBzZWFyY2hJZDogJycsXG4gICAgICByZXN1bHRzQ291bnQ6IDAsXG4gICAgICBxdWVyeUxvYWRUaW1lOiAwLFxuICAgIH0pO1xuICB9O1xuXG4gIC8vIHdoZW4gdGhlIGN1cnJlbnQgVVJMIGNoYW5nZXMsIHdlIHdhbnQgdG8gY2xvc2UgdGhlIHNlYXJjaCBwYW5lIGlmIGl0J3Mgb3BlblxuICAvLyBhbmQgdHJhY2sgc2VhcmNoIGV2ZW50IGlmIHVzZXIgbWFkZSBhIHNlYXJjaFxuICB1c2VVcmxDaGFuZ2VEZXRlY3Rpb24oe1xuICAgIG9uVXJsQ2hhbmdlOiAoKSA9PiB7XG4gICAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgICAgfVxuXG4gICAgICB0b2dnbGVTZWFyY2goKTtcbiAgICB9LFxuICB9KTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIC8vIGRvbid0IHRyYWNrIGlmIGEgcmVzdWx0IHdhcyBjbGlja2VkIG9yIGlmIHdlIGRvbid0IGhhdmUgc2VhcmNoIHJlc3VsdHNcbiAgICBpZiAoXG4gICAgICBzZWFyY2hSZXN1bHRDbGlja2VkIHx8XG4gICAgICAhb25TZWFyY2hBc1lvdVR5cGUgfHxcbiAgICAgICFzZWFyY2hBc1lvdVR5cGVSZXN1bHRzIHx8XG4gICAgICAhdmFsdWVUcmltbWVkLmxlbmd0aFxuICAgIClcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11c2VsZXNzLXJldHVyblxuICAgICAgcmV0dXJuO1xuICB9LCBbXG4gICAgc2VhcmNoUmVzdWx0Q2xpY2tlZCxcbiAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLFxuICAgIHZhbHVlVHJpbW1lZCxcbiAgICBvblNlYXJjaEFzWW91VHlwZSxcbiAgXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpbnB1dFJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgIHNlYXJjaFdvcmtlci5pbml0KCk7XG4gIH0sIFtdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghdmFsdWVUcmltbWVkLmxlbmd0aCkge1xuICAgICAgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyhudWxsKTtcbiAgICAgIHNldEF1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zKFtdKTtcbiAgICAgIHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zKHtcbiAgICAgICAgcXVlcnk6ICcnLFxuICAgICAgICBzZWFyY2hJZDogJycsXG4gICAgICAgIHJlc3VsdHNDb3VudDogMCxcbiAgICAgICAgcXVlcnlMb2FkVGltZTogMCxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBjYW5jZWwgPSBmYWxzZTtcbiAgICBsZXQgY2xlYXJBdXRvY29tcGxldGUgPSB0cnVlO1xuICAgIGxldCBjbGVhclNlYXJjaEFzWW91VHlwZSA9IHRydWU7XG5cbiAgICBsZXQgc2VhcmNoRXZlbnROb1Jlc3VsdERlbGF5OiBOb2RlSlMuVGltZW91dDtcblxuICAgIGNvbnN0IGxvYWRlckRlbGF5ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAvKlxuICAgICAgICogV2FpdCAxMCBtaWxsaXNlY29uZHMgdG8gZ2V0IGEgcmVzcG9uc2UgZm9yIHdvcmtlciBiZWZvcmUgc2hvd2luZyBsb2FkZXJzLlxuICAgICAgICogVGhpcyBwcmV2ZW50cyBmbGlja2VyaW5nIGxvYWRlcnMgb24gcXVpY2sgb3IgY2FjaGVkIHJlc3VsdHMuXG4gICAgICAgKi9cbiAgICAgIGlmIChjYW5jZWwpIHJldHVybjtcbiAgICAgIGlmIChjbGVhckF1dG9jb21wbGV0ZSkgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgICAgaWYgKGNsZWFyU2VhcmNoQXNZb3VUeXBlKSBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKG51bGwpO1xuICAgIH0sIDEwKTtcblxuICAgIHNlYXJjaFdvcmtlci5hdXRvY29tcGxldGUodmFsdWVUcmltbWVkKS50aGVuKChzdWdnZXN0aW9ucykgPT4ge1xuICAgICAgY2xlYXJBdXRvY29tcGxldGUgPSBmYWxzZTtcblxuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuOyAvLyB0ZXh0IGhhcyBjaGFuZ2VkIHNpbmNlIHRoaXMgcmVxdWVzdCB3YXMgbWFkZVxuXG4gICAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhzdWdnZXN0aW9ucyk7XG4gICAgfSk7XG5cbiAgICBzZWFyY2hXb3JrZXIuc2VhcmNoQXNZb3VUeXBlKHZhbHVlVHJpbW1lZCkudGhlbigocmVzdWx0cykgPT4ge1xuICAgICAgY2xlYXJTZWFyY2hBc1lvdVR5cGUgPSBmYWxzZTtcblxuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuOyAvLyB0ZXh0IGhhcyBjaGFuZ2VkIHNpbmNlIHRoaXMgcmVxdWVzdCB3YXMgbWFkZVxuXG4gICAgICBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKHJlc3VsdHMpO1xuXG4gICAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICAgIHF1ZXJ5OiByZXN1bHRzLnF1ZXJ5LFxuICAgICAgICBzZWFyY2hJZDogcmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgcmVzdWx0c0NvdW50OiByZXN1bHRzLnRvcC5sZW5ndGgsXG4gICAgICAgIHF1ZXJ5TG9hZFRpbWU6IHJlc3VsdHMucXVlcnlMb2FkVGltZSxcbiAgICAgIH0pO1xuXG4gICAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgd2l0aCBhIHNtYWxsIGRlbGF5IHdoZW4gdGhlcmUgYXJlIG5vIHJlc3VsdHNcbiAgICAgIGlmIChcbiAgICAgICAgb25TZWFyY2hBc1lvdVR5cGUgJiZcbiAgICAgICAgcmVzdWx0cy50b3AubGVuZ3RoID09PSAwICYmXG4gICAgICAgICFzZWFyY2hSZXN1bHRDbGlja2VkXG4gICAgICApIHtcbiAgICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHF1ZXJ5TG9hZFRpbWUgfSA9IHJlc3VsdHM7XG4gICAgICAgIHNlYXJjaEV2ZW50Tm9SZXN1bHREZWxheSA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIGlmICghY2FuY2VsKSB7XG4gICAgICAgICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIDAsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSwgMzAwKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjYW5jZWwgPSB0cnVlO1xuICAgICAgY2xlYXJUaW1lb3V0KGxvYWRlckRlbGF5KTtcbiAgICAgIGNsZWFyVGltZW91dChzZWFyY2hFdmVudE5vUmVzdWx0RGVsYXkpO1xuICAgIH07XG4gIH0sIFtcbiAgICB2YWx1ZVRyaW1tZWQsXG4gICAgb25TZWFyY2hBc1lvdVR5cGUsXG4gICAgc2VhcmNoUmVzdWx0Q2xpY2tlZCxcbiAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyxcbiAgXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPEJveFxuICAgICAgICBhcmlhLWhpZGRlblxuICAgICAgICBiZz1cInNoYWRvdy1zZWNvbmRhcnlcIlxuICAgICAgICBoZWlnaHQ9XCIxMDB2aFwiXG4gICAgICAgIHBvc2l0aW9uPVwiZml4ZWRcIlxuICAgICAgICAvLyBXZSBhZGQgNXJlbSBoZXJlIGluIGNhc2UgdGhlcmUncyBzb21lIHNvcnQgb2YgYnJhbmRlZCBiYW5uZXIgYWJvdmUgc2VhcmNoXG4gICAgICAgIC8vIFRoZSBzZWFyY2ggYXJlYSBpcyBtdWNoIHRhbGxlciB0aGFuIDVyZW0gc28gdGhpcyBpcyBhIHNhZmUgYW1vdW50IG9mIHBhZGRpbmdcbiAgICAgICAgdG9wPXtgY2FsYygke3RoZW1lLmVsZW1lbnRzLmhlYWRlckhlaWdodH0gKyA1cmVtKWB9XG4gICAgICAgIHdpZHRoPXsxfVxuICAgICAgLz5cbiAgICAgIDxGb2N1c1RyYXBcbiAgICAgICAgb25Fc2NhcGVLZXk9e2Nsb3NlU2VhcmNofVxuICAgICAgICBvbkNsaWNrT3V0c2lkZT17b25Nb3VzZURvd25PdXRzaWRlfVxuICAgICAgICBhbGxvd1BhZ2VJbnRlcmFjdGlvblxuICAgICAgPlxuICAgICAgICA8Qm94XG4gICAgICAgICAgYmc9XCJiYWNrZ3JvdW5kXCJcbiAgICAgICAgICBib3JkZXJDb2xvckJvdHRvbT1cImJvcmRlci1wcmltYXJ5XCJcbiAgICAgICAgICBib3JkZXJDb2xvclRvcD1cImJvcmRlci10ZXJ0aWFyeVwiXG4gICAgICAgICAgYm9yZGVyU3R5bGU9XCJzb2xpZFwiXG4gICAgICAgICAgYm9yZGVyV2lkdGg9XCIycHggMCAxcHhcIlxuICAgICAgICAgIGRhdGEtdGVzdGlkPVwiaGVhZGVyLXNlYXJjaC1kcm9wZG93blwiXG4gICAgICAgICAgcG9zaXRpb249e3sgXzogJ2ZpeGVkJywgbWQ6ICdhYnNvbHV0ZScgfX1cbiAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgIG1heEhlaWdodD17eyBfOiAnY2FsYygxMDB2aCAtIDYzcHgpJywgbWQ6ICdjYWxjKDEwMHZoIC0gODBweCknIH19XG4gICAgICAgICAgb3ZlcmZsb3c9XCJhdXRvXCJcbiAgICAgICAgICB6SW5kZXg9ezEwfSAvLyBlbnN1cmUgZHJvcGRvd24gaXMgYWJvdmUgdGhlIHBhZ2UgY29udGVudFxuICAgICAgICA+XG4gICAgICAgICAgPEJveCBib3JkZXI9XCJub25lXCIgd2lkdGg9XCJhdXRvXCI+XG4gICAgICAgICAgICA8UXVlcnlDb250YWluZXI+XG4gICAgICAgICAgICAgIDxGbGV4Qm94XG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImJhc2VsaW5lXCJcbiAgICAgICAgICAgICAgICBib3JkZXJDb2xvcj1cImdyYXktNjAwXCJcbiAgICAgICAgICAgICAgICBib3JkZXJTdHlsZUJvdHRvbT1cInNvbGlkXCJcbiAgICAgICAgICAgICAgICBib3JkZXJXaWR0aEJvdHRvbT1cIjFweFwiXG4gICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTZWFyY2hJY29uXG4gICAgICAgICAgICAgICAgICBoZWlnaHQ9e3sgXzogMjAsIG1kOiAyNCB9fVxuICAgICAgICAgICAgICAgICAgd2lkdGg9e3sgXzogMjAsIG1kOiAyNCB9fVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPEZvcm1cbiAgICAgICAgICAgICAgICAgIGFjdGlvbj1cIi9zZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgaWQ9XCJzZWFyY2gtZm9ybVwiXG4gICAgICAgICAgICAgICAgICBtbD17OH1cbiAgICAgICAgICAgICAgICAgIG9uU3VibWl0PXtoYW5kbGVTdWJtaXR9XG4gICAgICAgICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxTdHlsZWRJbnB1dFxuICAgICAgICAgICAgICAgICAgICBhdXRvRm9jdXNcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZD1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICBib3JkZXI9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgZm9udFNpemU9e3sgXzogMjAsIG1kOiAyNiB9fVxuICAgICAgICAgICAgICAgICAgICBmb250V2VpZ2h0PVwiYm9sZFwiXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiaGVhZGVyLXNlYXJjaC1iYXJcIlxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwicXVlcnlcIlxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhlKSA9PiBvbktleURvd24oZSl9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtzZWFyY2hQbGFjZWhvbGRlcn1cbiAgICAgICAgICAgICAgICAgICAgcmVmPXtpbnB1dFJlZn1cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgICAgICAgYXV0b0NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9Gb3JtPlxuICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICBpY29uPXtNaW5pRGVsZXRlSWNvbn1cbiAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJDbGVhciBzZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgdGlwPVwiQ2xlYXIgc2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgIHRpcFByb3BzPXt7XG4gICAgICAgICAgICAgICAgICAgIGFsaWdubWVudDogJ2JvdHRvbS1jZW50ZXInLFxuICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ6ICdmbG9hdGluZycsXG4gICAgICAgICAgICAgICAgICAgIG5hcnJvdzogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgekluZGV4OiAyLFxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2NsZWFySW5wdXR9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvRmxleEJveD5cbiAgICAgICAgICAgIDwvUXVlcnlDb250YWluZXI+XG4gICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgPFN1Z2dlc3Rpb25Db250YWluZXI+XG4gICAgICAgICAgICB7dmFsdWVUcmltbWVkLmxlbmd0aCA+IDAgPyAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgPEZsZXhCb3ggZmxleERpcmVjdGlvbj1cImNvbHVtblwiIGFzPVwidWxcIiBsaXN0U3R5bGU9XCJub25lXCIgcD17MH0+XG4gICAgICAgICAgICAgICAgICB7YXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMubWFwKChzLCBpKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgIDxJbmxpbmVSZXN1bHRMaVxuICAgICAgICAgICAgICAgICAgICAgIGtleT17cy50aXRsZX1cbiAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhldnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnYXV0b2NvbXBsZXRlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzLnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdhdXRvY29tcGxldGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzLnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxTZW1pYm9sZFNlYXJjaEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgIG1iPXsyIGFzIDB9XG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPXsxNH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZVdpZHRoPXs4fVxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgICAgICAgICAgICAgICAgIG1yPXsxMn1cbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxIaWdobGlnaHRlZFRleHQgc3VnZ2VzdGlvbj17c30gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9JbmxpbmVSZXN1bHRMaT5cbiAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgIDwvRmxleEJveD5cbiAgICAgICAgICAgICAgICB7KHNlYXJjaEFzWW91VHlwZVJlc3VsdHMgPT09IG51bGwgfHxcbiAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMudG9wLmxlbmd0aCA+IDApICYmIChcbiAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgIDxUZXh0IGFzPVwiaDJcIiBmb250U2l6ZT17MjB9IG1iPXsxNn0gbXQ9ezI0fT5cbiAgICAgICAgICAgICAgICAgICAgICBUb3AgcmVzdWx0c1xuICAgICAgICAgICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgICAgICAgICAgIDxGbGV4Qm94XG4gICAgICAgICAgICAgICAgICAgICAgZmxleERpcmVjdGlvbj1cImNvbHVtblwiXG4gICAgICAgICAgICAgICAgICAgICAgYXM9XCJ1bFwiXG4gICAgICAgICAgICAgICAgICAgICAgbGlzdFN0eWxlPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgcD17MH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHNlYXJjaEFzWW91VHlwZUxvYWRlcj8uc2hpbW1lclJvd3MubWFwKChyKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPElubGluZUxvYWRlckxpIGtleT17ci5rZXl9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3Iuc2hpbW1lcnMubWFwKCh3b3JkKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTaGltbWVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PXszMH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBweT17OCBhcyAwfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17d29yZC5rZXl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9e3dvcmQud2lkdGh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCb3hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udEZhbWlseT1cImFjY2VudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRDb2xvcj1cInRleHQtc2Vjb25kYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udFNpemU9e3sgXzogMTAgYXMgMTYgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyQ29sb3I9XCJib3JkZXItc2Vjb25kYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyPXsxfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJSYWRpdXM9XCJ4bFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB4PXsxNn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eT17MC4xfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbmJzcDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSW5saW5lTG9hZGVyTGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICkpXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMudG9wLm1hcCgocywgaSkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbmxpbmVSZXN1bHRMaVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtgJHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy5xdWVyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfToke2kudG9TdHJpbmcoKX1gfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiSW5kZXg9ezB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwibGlua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhldnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV2dC5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnc2VhcmNoX2FzX3lvdV90eXBlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsdWc6IHMuc2x1ZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLihzLmNvbnRlbnRJZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHsgY29udGVudF9pZDogcy5jb250ZW50SWQgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhZmVseVJlZGlyZWN0KHMudXJsUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnc2VhcmNoX2FzX3lvdV90eXBlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2x1Zzogcy5zbHVnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLihzLmNvbnRlbnRJZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7IGNvbnRlbnRfaWQ6IHMuY29udGVudElkIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2FmZWx5UmVkaXJlY3Qocy51cmxQYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEhpZ2hsaWdodGVkVGV4dCBzdWdnZXN0aW9uPXtzfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJhZGdlIHNpemU9XCJzbVwiIHZhcmlhbnQ9XCJ0ZXJ0aWFyeVwiIG1sPXsxMn0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtzLnR5cGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0JhZGdlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSW5saW5lUmVzdWx0TGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIHtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy50b3AubGVuZ3RoID09PSAwICYmIChcbiAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgIDxCb3ggZm9udFNpemU9e3sgXzogMjAsIHNtOiAyNiB9fSBtdD17MH0gbWI9ezQ4fT5cbiAgICAgICAgICAgICAgICAgICAgICB7YFdlIGNvdWxkbid0IGZpbmQgYSBtYXRjaCBmb3IgYH1cbiAgICAgICAgICAgICAgICAgICAgICA8VGV4dCBmb250V2VpZ2h0PVwiYm9sZFwiPntgXCIke3ZhbHVlVHJpbW1lZH0uXCJgfTwvVGV4dD5cbiAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAnIFRyeSBhbm90aGVyIGtleXdvcmQsIG9yIHNlZSB3aGF0IG91ciBtZW1iZXJzIGFyZSBsZWFybmluZy4nXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICAgICAgPE1lbnUgYm9yZGVyPVwibm9uZVwiIHZhcmlhbnQ9XCJwb3BvdmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPFBvcHVsYXJDb250ZW50IG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfSAvPlxuICAgICAgICAgICAgICAgICAgICA8L01lbnU+XG4gICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxNZW51IGJvcmRlcj1cIm5vbmVcIiB2YXJpYW50PVwicG9wb3ZlclwiPlxuICAgICAgICAgICAgICAgIDxQb3B1bGFyU2VhcmNoZXNcbiAgICAgICAgICAgICAgICAgIG5hdmlnYXRlVG9TZWFyY2g9e25hdmlnYXRlVG9TZWFyY2h9XG4gICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxQb3B1bGFyQ29udGVudCBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja30gLz5cbiAgICAgICAgICAgICAgPC9NZW51PlxuICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgeyEhc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8udG9wLmxlbmd0aCAmJiAoXG4gICAgICAgICAgICAgIDxTdHJva2VCdXR0b25cbiAgICAgICAgICAgICAgICBteT17MTZ9XG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCd2aWV3X2FsbF9yZXN1bHRzJywge1xuICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgIG5hdmlnYXRlVG9TZWFyY2godmFsdWUsIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkKTtcbiAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIFZpZXcgYWxsIHJlc3VsdHNcbiAgICAgICAgICAgICAgPC9TdHJva2VCdXR0b24+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgPFF1aXpBbmRIZWxwQ2VudGVyTGlua3NcbiAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9XG4gICAgICAgICAgICAgIGhhbmRsZUNsb3NlRHJvcGRvd249e2Nsb3NlU2VhcmNofVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L1N1Z2dlc3Rpb25Db250YWluZXI+XG4gICAgICAgIDwvQm94PlxuICAgICAgPC9Gb2N1c1RyYXA+XG4gICAgPC8+XG4gICk7XG59O1xuIl19 */");
|
|
54
54
|
const StyledInput = /*#__PURE__*/_styled(Input, {
|
|
55
55
|
target: "e1e5b20r4",
|
|
56
56
|
label: "StyledInput"
|
|
@@ -59,7 +59,7 @@ const StyledInput = /*#__PURE__*/_styled(Input, {
|
|
|
59
59
|
'&::placeholder': {
|
|
60
60
|
textColor: theme.colors['text-secondary']
|
|
61
61
|
}
|
|
62
|
-
}), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvU2VhcmNoL1NlYXJjaFBhbmUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXVEb0IiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL0FwcEhlYWRlci9TZWFyY2gvU2VhcmNoUGFuZS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYWRnZSxcbiAgQm94LFxuICBDb250ZW50Q29udGFpbmVyLFxuICBGbGV4Qm94LFxuICBGb2N1c1RyYXAsXG4gIEljb25CdXR0b24sXG4gIE1lbnUsXG4gIE1lbnVJdGVtLFxuICBTaGltbWVyLFxuICBTdHJva2VCdXR0b24sXG4gIFRleHQsXG59IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCB7IE1pbmlEZWxldGVJY29uLCBTZWFyY2hJY29uIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtaWNvbnMnO1xuaW1wb3J0IHsgY3NzLCB0aGVtZSwgdXNlQ3VycmVudE1vZGUgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IHVzZU9uRXNjSGFuZGxlciB9IGZyb20gJy4uL3NoYXJlZCc7XG5pbXBvcnQgeyBzZWFyY2hQbGFjZWhvbGRlciB9IGZyb20gJy4vY29uc3RzJztcbmltcG9ydCB7IFBvcHVsYXJDb250ZW50LCBQb3B1bGFyU2VhcmNoZXMgfSBmcm9tICcuL0RlZmF1bHRSZXN1bHRzJztcbmltcG9ydCB7IHVzZVVybENoYW5nZURldGVjdGlvbiB9IGZyb20gJy4vaG9va3MvdXNlVXJsQ2hhbmdlRGV0ZWN0aW9uJztcbmltcG9ydCB7IFF1aXpBbmRIZWxwQ2VudGVyTGlua3MgfSBmcm9tICcuL1F1aXpBbmRIZWxwQ2VudGVyTGlua3MnO1xuaW1wb3J0IHsgc2FmZWx5UmVkaXJlY3QgfSBmcm9tICcuL3NhZmVseVJlZGlyZWN0JztcbmltcG9ydCB7IHVzZVNlYXJjaFRyYWNraW5nQ29udGV4dCB9IGZyb20gJy4vU2VhcmNoVHJhY2tpbmdQcm92aWRlcic7XG5pbXBvcnQgeyBzZWFyY2hXb3JrZXIgfSBmcm9tICcuL1NlYXJjaFdvcmtlcic7XG5pbXBvcnQgdHlwZSB7XG4gIEF1dG9jb21wbGV0ZVN1Z2dlc3Rpb24sXG4gIFNlYXJjaEFzWW91VHlwZVJlc3VsdHMsXG59IGZyb20gJy4vU2VhcmNoV29ya2VyL3R5cGVzJztcbmltcG9ydCB7IFNlYXJjaFBhbmVQcm9wcyB9IGZyb20gJy4vdHlwZXMnO1xuXG5jb25zdCBGb3JtID0gQm94LndpdGhDb21wb25lbnQoJ2Zvcm0nKTtcbmNvbnN0IElucHV0ID0gQm94LndpdGhDb21wb25lbnQoJ2lucHV0Jyk7XG5cbmNvbnN0IFF1ZXJ5Q29udGFpbmVyID0gc3R5bGVkKENvbnRlbnRDb250YWluZXIpKFxuICBjc3Moe1xuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICB3aWR0aDogJzEwMCUnLFxuICAgIHB0OiAxNixcbiAgICBwYjogeyBfOiAwLCBtZDogMjQgfSxcbiAgICBweDogeyBfOiAyNCB9LFxuICB9KVxuKTtcblxuY29uc3QgU3VnZ2VzdGlvbkNvbnRhaW5lciA9IHN0eWxlZChDb250ZW50Q29udGFpbmVyKShcbiAgY3NzKHtcbiAgICBwdDogMTYsXG4gICAgcGI6IHsgXzogMCwgbWQ6IDI0IH0sXG4gICAgcHg6IHsgXzogMjQgfSxcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZElucHV0ID0gc3R5bGVkKElucHV0KShcbiAgY3NzKHtcbiAgICBvdXRsaW5lOiBgbm9uZWAsXG4gICAgJyY6OnBsYWNlaG9sZGVyJzoge1xuICAgICAgdGV4dENvbG9yOiB0aGVtZS5jb2xvcnNbJ3RleHQtc2Vjb25kYXJ5J10gYXMgbmV2ZXIsXG4gICAgfSxcbiAgfSlcbik7XG5cbmNvbnN0IElubGluZVJlc3VsdExpID0gc3R5bGVkKE1lbnVJdGVtKShcbiAgY3NzKHtcbiAgICBwbDogMCxcbiAgICBweTogOCxcbiAgICBmb250U2l6ZTogMTYsXG4gICAgJyY6Zm9jdXMtdmlzaWJsZTphZnRlcic6IHtcbiAgICAgIGxlZnQ6IC00LFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBJbmxpbmVMb2FkZXJMaSA9IHN0eWxlZC5saShcbiAgY3NzKHtcbiAgICBsaXN0U3R5bGVUeXBlOiAnbm9uZScsXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGdhcDogMTIsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gIH0pXG4pO1xuXG5leHBvcnQgY29uc3QgU2VtaWJvbGRTZWFyY2hJY29uID0gc3R5bGVkKFNlYXJjaEljb24pYFxuICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuICBjaXJjbGUsXG4gIHBhdGgge1xuICAgIHN0cm9rZS13aWR0aDogMnB4O1xuICB9XG4gIHJlY3Qge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0ycHgsIC0ycHgpO1xuICAgIGhlaWdodDogY2FsYygxMDAlICsgNHB4KTtcbiAgICB3aWR0aDogY2FsYygxMDAlICsgNHB4KTtcbiAgfVxuYDtcblxuY29uc3QgRWxsaXBzaXNCb3ggPSBzdHlsZWQoQm94KWBcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5gO1xuXG5jb25zdCBIaWdobGlnaHRlZFRleHQgPSAoe1xuICBzdWdnZXN0aW9uOiB7IHRpdGxlLCBzZWdtZW50cyB9LFxufToge1xuICBzdWdnZXN0aW9uOiBBdXRvY29tcGxldGVTdWdnZXN0aW9uO1xufSkgPT4ge1xuICBjb25zdCBtb2RlID0gdXNlQ3VycmVudE1vZGUoKTtcbiAgY29uc3QgaGlnaGxpZ2h0Q29sb3IgPSBtb2RlID09PSAnZGFyaycgPyAnaHlwZXInIDogJ3llbGxvdyc7XG5cbiAgcmV0dXJuIChcbiAgICA8RmxleEJveD5cbiAgICAgIDxFbGxpcHNpc0JveFxuICAgICAgICBtYXhXaWR0aD1cImNhbGMoMTAwdncgLSAxMjhweClcIlxuICAgICAgICB3aGl0ZVNwYWNlPVwicHJlXCJcbiAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgb3ZlcmZsb3c9XCJoaWRkZW5cIlxuICAgICAgPlxuICAgICAgICB7c2VnbWVudHMubWFwKChzZWdtZW50LCBpKSA9PiAoXG4gICAgICAgICAgPFRleHRcbiAgICAgICAgICAgIGtleT17YCR7dGl0bGV9OiR7aS50b1N0cmluZygpfWB9XG4gICAgICAgICAgICBsaW5lSGVpZ2h0PVwidGl0bGVcIlxuICAgICAgICAgICAgey4uLihzZWdtZW50LmhpZ2hsaWdodFxuICAgICAgICAgICAgICA/IHsgYmc6IGhpZ2hsaWdodENvbG9yLCBmb250V2VpZ2h0OiAnYm9sZCcgfVxuICAgICAgICAgICAgICA6IHt9KX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7c2VnbWVudC52YWx1ZX1cbiAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICkpfVxuICAgICAgPC9FbGxpcHNpc0JveD5cbiAgICAgIDxUZXh0IHNjcmVlbnJlYWRlcj57dGl0bGV9PC9UZXh0PlxuICAgIDwvRmxleEJveD5cbiAgKTtcbn07XG5cbnR5cGUgU2VhcmNoQXNZb3VUeXBlTG9hZGVyID0ge1xuICBzaGltbWVyUm93czoge1xuICAgIGtleTogc3RyaW5nO1xuICAgIHNoaW1tZXJzOiB7XG4gICAgICBrZXk6IHN0cmluZztcbiAgICAgIHdpZHRoOiBudW1iZXI7XG4gICAgfVtdO1xuICB9W107XG59O1xuXG5sZXQgbG9hZGVyS2V5ID0gMDtcbmZ1bmN0aW9uIHJuZExvYWRlcigpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBsdXNwbHVzXG4gIGNvbnN0IGtleSA9IGxvYWRlcktleSsrO1xuICBjb25zdCBsb2FkZXI6IFNlYXJjaEFzWW91VHlwZUxvYWRlciA9IHsgc2hpbW1lclJvd3M6IFtdIH07XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgNTsgaSsrKSB7XG4gICAgY29uc3Qgcm93ID0ge1xuICAgICAga2V5OiBgJHtrZXl9OiR7aX1gLFxuICAgICAgc2hpbW1lcnM6IFtdIGFzIHsga2V5OiBzdHJpbmc7IHdpZHRoOiBudW1iZXIgfVtdLFxuICAgIH07XG4gICAgY29uc3Qgd29yZHMgPSBNYXRoLmNlaWwoTWF0aC5yYW5kb20oKSAqIDMpO1xuICAgIGZvciAobGV0IGogPSAwOyBqIDwgd29yZHM7IGorKykge1xuICAgICAgY29uc3Qgd2lkdGggPSAxMiArIE1hdGgucm91bmQoTWF0aC5yYW5kb20oKSAqIDk2KTtcbiAgICAgIHJvdy5zaGltbWVycy5wdXNoKHtcbiAgICAgICAga2V5OiBgJHtrZXl9OiR7an1gLFxuICAgICAgICB3aWR0aCxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBsb2FkZXIuc2hpbW1lclJvd3MucHVzaChyb3cpO1xuICB9XG4gIHJldHVybiBsb2FkZXI7XG59XG5cbmV4cG9ydCBjb25zdCBTZWFyY2hQYW5lOiBSZWFjdC5GQzxTZWFyY2hQYW5lUHJvcHM+ID0gKHtcbiAgb25TZWFyY2gsXG4gIG9uVHJhY2tpbmdDbGljayxcbiAgc2VhcmNoQnV0dG9uUmVmLFxuICB0b2dnbGVTZWFyY2gsXG4gIG9uU2VhcmNoQXNZb3VUeXBlLFxufSkgPT4ge1xuICBjb25zdCB0aGVtZSA9IHVzZVRoZW1lKCk7XG4gIGNvbnN0IFt2YWx1ZSwgc2V0VmFsdWVdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCBpbnB1dFJlZiA9IHVzZVJlZjxIVE1MSW5wdXRFbGVtZW50PihudWxsKTtcbiAgY29uc3QgW2F1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zLCBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9uc10gPSB1c2VTdGF0ZTxcbiAgICBBdXRvY29tcGxldGVTdWdnZXN0aW9uW11cbiAgPihbXSk7XG4gIGNvbnN0IFtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLCBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzXSA9XG4gICAgdXNlU3RhdGU8U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyB8IG51bGw+KG51bGwpO1xuXG4gIGNvbnN0IFtzZWFyY2hSZXN1bHRDbGlja2VkLCBzZXRTZWFyY2hSZXN1bHRDbGlja2VkXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICBjb25zdCB7IHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zIH0gPSB1c2VTZWFyY2hUcmFja2luZ0NvbnRleHQoKTtcblxuICBjb25zdCBzZWFyY2hBc1lvdVR5cGVMb2FkZXIgPSBSZWFjdC51c2VNZW1vKFxuICAgICgpID0+IChzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsID8gcm5kTG9hZGVyKCkgOiBudWxsKSxcbiAgICBbc2VhcmNoQXNZb3VUeXBlUmVzdWx0c11cbiAgKTtcblxuICBjb25zdCB2YWx1ZVRyaW1tZWQgPSB2YWx1ZS50cmltKCk7XG5cbiAgY29uc3QgaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrID1cbiAgICBvblNlYXJjaEFzWW91VHlwZSAmJiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzICYmICFzZWFyY2hSZXN1bHRDbGlja2VkO1xuXG4gIGNvbnN0IGNsb3NlU2VhcmNoID0gYXN5bmMgKCkgPT4ge1xuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCB3aGVuIHVzZXIgbWFkZSBhIHNlYXJjaCBhbmQgdGhlbiBjbG9zZWQgc2VhcmNoIHBhbmVcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIGF3YWl0IHRvZ2dsZVNlYXJjaCgpO1xuICAgIC8vIGFkZHMgYSBsaXR0bGUgZGVsYXkgYmV0d2VlbiBjbG9zaW5nIHRoZSBzZWFyY2ggcGFuZSBhbmQgZm9jdXNpbmcgb24gdGhlIGJ1dHRvblxuICAgIC8vIHRvIHByZXZlbnQgdGhlIHNlYXJjaCBwYW5lIGZyb20gaW1tZWRpYXRlbHkgb3BlbmluZyBhZ2FpblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHNlYXJjaEJ1dHRvblJlZiAmJiBzZWFyY2hCdXR0b25SZWY/LmN1cnJlbnQpIHtcbiAgICAgICAgc2VhcmNoQnV0dG9uUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICB9XG4gICAgfSwgMTApO1xuICB9O1xuXG4gIGNvbnN0IG9uS2V5RG93biA9IHVzZU9uRXNjSGFuZGxlcihjbG9zZVNlYXJjaCk7XG5cbiAgY29uc3Qgb25Nb3VzZURvd25PdXRzaWRlID0gKHsgdGFyZ2V0IH06IE1vdXNlRXZlbnQpID0+IHtcbiAgICBjb25zdCBoYW5kbGVPdXRzaWRlQ2xpY2sgPSAoKSA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgICFkb2N1bWVudFxuICAgICAgICAgIC5xdWVyeVNlbGVjdG9yKCdbZGF0YS10ZXN0aWQ9XCJoZWFkZXItc2VhcmNoLWRyb3Bkb3duXCJdJylcbiAgICAgICAgICA/LmNvbnRhaW5zKHRhcmdldCBhcyBIVE1MRWxlbWVudCkgJiZcbiAgICAgICAgdGFyZ2V0ICE9PSBzZWFyY2hCdXR0b25SZWY/LmN1cnJlbnRcbiAgICAgICkge1xuICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgfVxuXG4gICAgICB0YXJnZXQ/LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBoYW5kbGVPdXRzaWRlQ2xpY2spO1xuICAgIH07XG5cbiAgICB0YXJnZXQ/LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBoYW5kbGVPdXRzaWRlQ2xpY2spO1xuICB9O1xuXG4gIGNvbnN0IG5hdmlnYXRlVG9TZWFyY2ggPSAoc2VhcmNoVGVybTogc3RyaW5nLCBmcm9tUHJldlNlYXJjaD86IHN0cmluZykgPT4ge1xuICAgIG9uU2VhcmNoKHNlYXJjaFRlcm0sIGZyb21QcmV2U2VhcmNoKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVDaGFuZ2U6IFJlYWN0LkNoYW5nZUV2ZW50SGFuZGxlcjxIVE1MSW5wdXRFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICBzZXRWYWx1ZShldnQudGFyZ2V0LnZhbHVlKTtcbiAgICAvLyByZXNldCB0byBmYWxzZSB3aGVuIHRoZSBzZWFyY2ggcXVlcnkgY2hhbmdlc1xuICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQoZmFsc2UpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVN1Ym1pdDogUmVhY3QuRm9ybUV2ZW50SGFuZGxlciA9IChldmVudCkgPT4ge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgd2hlbiB0aGUgdXNlciBzdWJtaXRzIHRoZSBmb3JtIHRvIGNhcHR1cmUgY29tcGxldGUgcXVlcnlcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIG5hdmlnYXRlVG9TZWFyY2godmFsdWUsIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkKTtcbiAgfTtcblxuICBjb25zdCBjbGVhcklucHV0ID0gKCkgPT4ge1xuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCBiZWZvcmUgdXNlciBjbGVhcnMgaW5wdXRcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIHNldFZhbHVlKCcnKTtcbiAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhbXSk7XG4gICAgLy8gcmVzZXQgdGhlIGNvbnRleHQgd2l0aCBlbXB0eSB2YWx1ZXNcbiAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICBxdWVyeTogJycsXG4gICAgICBzZWFyY2hJZDogJycsXG4gICAgICByZXN1bHRzQ291bnQ6IDAsXG4gICAgICBxdWVyeUxvYWRUaW1lOiAwLFxuICAgIH0pO1xuICB9O1xuXG4gIC8vIHdoZW4gdGhlIGN1cnJlbnQgVVJMIGNoYW5nZXMsIHdlIHdhbnQgdG8gY2xvc2UgdGhlIHNlYXJjaCBwYW5lIGlmIGl0J3Mgb3BlblxuICAvLyBhbmQgdHJhY2sgc2VhcmNoIGV2ZW50IGlmIHVzZXIgbWFkZSBhIHNlYXJjaFxuICB1c2VVcmxDaGFuZ2VEZXRlY3Rpb24oe1xuICAgIG9uVXJsQ2hhbmdlOiAoKSA9PiB7XG4gICAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgICAgfVxuXG4gICAgICB0b2dnbGVTZWFyY2goKTtcbiAgICB9LFxuICB9KTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIC8vIGRvbid0IHRyYWNrIGlmIGEgcmVzdWx0IHdhcyBjbGlja2VkIG9yIGlmIHdlIGRvbid0IGhhdmUgc2VhcmNoIHJlc3VsdHNcbiAgICBpZiAoXG4gICAgICBzZWFyY2hSZXN1bHRDbGlja2VkIHx8XG4gICAgICAhb25TZWFyY2hBc1lvdVR5cGUgfHxcbiAgICAgICFzZWFyY2hBc1lvdVR5cGVSZXN1bHRzIHx8XG4gICAgICAhdmFsdWVUcmltbWVkLmxlbmd0aFxuICAgIClcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11c2VsZXNzLXJldHVyblxuICAgICAgcmV0dXJuO1xuICB9LCBbXG4gICAgc2VhcmNoUmVzdWx0Q2xpY2tlZCxcbiAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLFxuICAgIHZhbHVlVHJpbW1lZCxcbiAgICBvblNlYXJjaEFzWW91VHlwZSxcbiAgXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpbnB1dFJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgIHNlYXJjaFdvcmtlci5pbml0KCk7XG4gIH0sIFtdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghdmFsdWVUcmltbWVkLmxlbmd0aCkge1xuICAgICAgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyhudWxsKTtcbiAgICAgIHNldEF1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zKFtdKTtcbiAgICAgIHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zKHtcbiAgICAgICAgcXVlcnk6ICcnLFxuICAgICAgICBzZWFyY2hJZDogJycsXG4gICAgICAgIHJlc3VsdHNDb3VudDogMCxcbiAgICAgICAgcXVlcnlMb2FkVGltZTogMCxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBjYW5jZWwgPSBmYWxzZTtcbiAgICBsZXQgY2xlYXJBdXRvY29tcGxldGUgPSB0cnVlO1xuICAgIGxldCBjbGVhclNlYXJjaEFzWW91VHlwZSA9IHRydWU7XG5cbiAgICBsZXQgc2VhcmNoRXZlbnROb1Jlc3VsdERlbGF5OiBOb2RlSlMuVGltZW91dDtcblxuICAgIGNvbnN0IGxvYWRlckRlbGF5ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAvKlxuICAgICAgICogV2FpdCAxMCBtaWxsaXNlY29uZHMgdG8gZ2V0IGEgcmVzcG9uc2UgZm9yIHdvcmtlciBiZWZvcmUgc2hvd2luZyBsb2FkZXJzLlxuICAgICAgICogVGhpcyBwcmV2ZW50cyBmbGlja2VyaW5nIGxvYWRlcnMgb24gcXVpY2sgb3IgY2FjaGVkIHJlc3VsdHMuXG4gICAgICAgKi9cbiAgICAgIGlmIChjYW5jZWwpIHJldHVybjtcbiAgICAgIGlmIChjbGVhckF1dG9jb21wbGV0ZSkgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgICAgaWYgKGNsZWFyU2VhcmNoQXNZb3VUeXBlKSBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKG51bGwpO1xuICAgIH0sIDEwKTtcblxuICAgIHNlYXJjaFdvcmtlci5hdXRvY29tcGxldGUodmFsdWVUcmltbWVkKS50aGVuKChzdWdnZXN0aW9ucykgPT4ge1xuICAgICAgY2xlYXJBdXRvY29tcGxldGUgPSBmYWxzZTtcblxuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuOyAvLyB0ZXh0IGhhcyBjaGFuZ2VkIHNpbmNlIHRoaXMgcmVxdWVzdCB3YXMgbWFkZVxuXG4gICAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhzdWdnZXN0aW9ucyk7XG4gICAgfSk7XG5cbiAgICBzZWFyY2hXb3JrZXIuc2VhcmNoQXNZb3VUeXBlKHZhbHVlVHJpbW1lZCkudGhlbigocmVzdWx0cykgPT4ge1xuICAgICAgY2xlYXJTZWFyY2hBc1lvdVR5cGUgPSBmYWxzZTtcblxuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuOyAvLyB0ZXh0IGhhcyBjaGFuZ2VkIHNpbmNlIHRoaXMgcmVxdWVzdCB3YXMgbWFkZVxuXG4gICAgICBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKHJlc3VsdHMpO1xuXG4gICAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICAgIHF1ZXJ5OiByZXN1bHRzLnF1ZXJ5LFxuICAgICAgICBzZWFyY2hJZDogcmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgcmVzdWx0c0NvdW50OiByZXN1bHRzLnRvcC5sZW5ndGgsXG4gICAgICAgIHF1ZXJ5TG9hZFRpbWU6IHJlc3VsdHMucXVlcnlMb2FkVGltZSxcbiAgICAgIH0pO1xuXG4gICAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgd2l0aCBhIHNtYWxsIGRlbGF5IHdoZW4gdGhlcmUgYXJlIG5vIHJlc3VsdHNcbiAgICAgIGlmIChcbiAgICAgICAgb25TZWFyY2hBc1lvdVR5cGUgJiZcbiAgICAgICAgcmVzdWx0cy50b3AubGVuZ3RoID09PSAwICYmXG4gICAgICAgICFzZWFyY2hSZXN1bHRDbGlja2VkXG4gICAgICApIHtcbiAgICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHF1ZXJ5TG9hZFRpbWUgfSA9IHJlc3VsdHM7XG4gICAgICAgIHNlYXJjaEV2ZW50Tm9SZXN1bHREZWxheSA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIGlmICghY2FuY2VsKSB7XG4gICAgICAgICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIDAsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSwgMzAwKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjYW5jZWwgPSB0cnVlO1xuICAgICAgY2xlYXJUaW1lb3V0KGxvYWRlckRlbGF5KTtcbiAgICAgIGNsZWFyVGltZW91dChzZWFyY2hFdmVudE5vUmVzdWx0RGVsYXkpO1xuICAgIH07XG4gIH0sIFtcbiAgICB2YWx1ZVRyaW1tZWQsXG4gICAgb25TZWFyY2hBc1lvdVR5cGUsXG4gICAgc2VhcmNoUmVzdWx0Q2xpY2tlZCxcbiAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyxcbiAgXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPEJveFxuICAgICAgICBhcmlhLWhpZGRlblxuICAgICAgICBiZz1cInNoYWRvdy1zZWNvbmRhcnlcIlxuICAgICAgICBoZWlnaHQ9XCIxMDB2aFwiXG4gICAgICAgIHBvc2l0aW9uPVwiZml4ZWRcIlxuICAgICAgICAvLyBXZSBhZGQgNnJlbSBoZXJlIGluIGNhc2UgdGhlcmUncyBzb21lIHNvcnQgb2YgYnJhbmRlZCBiYW5uZXIgYWJvdmUgc2VhcmNoXG4gICAgICAgIC8vIFRoZSBzZWFyY2ggYXJlYSBpcyBtdWNoIHRhbGxlciB0aGFuIDZyZW0gc28gdGhpcyBpcyBhIHNhZmUgYW1vdW50IG9mIHBhZGRpbmdcbiAgICAgICAgdG9wPXtgY2FsYygke3RoZW1lLmVsZW1lbnRzLmhlYWRlckhlaWdodH0gKyA2cmVtKWB9XG4gICAgICAgIHdpZHRoPXsxfVxuICAgICAgLz5cbiAgICAgIDxGb2N1c1RyYXBcbiAgICAgICAgb25Fc2NhcGVLZXk9e2Nsb3NlU2VhcmNofVxuICAgICAgICBvbkNsaWNrT3V0c2lkZT17b25Nb3VzZURvd25PdXRzaWRlfVxuICAgICAgICBhbGxvd1BhZ2VJbnRlcmFjdGlvblxuICAgICAgPlxuICAgICAgICA8Qm94XG4gICAgICAgICAgYmc9XCJiYWNrZ3JvdW5kXCJcbiAgICAgICAgICBib3JkZXJDb2xvckJvdHRvbT1cImJvcmRlci1wcmltYXJ5XCJcbiAgICAgICAgICBib3JkZXJDb2xvclRvcD1cImJvcmRlci10ZXJ0aWFyeVwiXG4gICAgICAgICAgYm9yZGVyU3R5bGU9XCJzb2xpZFwiXG4gICAgICAgICAgYm9yZGVyV2lkdGg9XCIycHggMCAxcHhcIlxuICAgICAgICAgIGRhdGEtdGVzdGlkPVwiaGVhZGVyLXNlYXJjaC1kcm9wZG93blwiXG4gICAgICAgICAgcG9zaXRpb249e3sgXzogJ2ZpeGVkJywgbWQ6ICdhYnNvbHV0ZScgfX1cbiAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgIG1heEhlaWdodD17eyBfOiAnY2FsYygxMDB2aCAtIDYzcHgpJywgbWQ6ICdjYWxjKDEwMHZoIC0gODBweCknIH19XG4gICAgICAgICAgb3ZlcmZsb3c9XCJhdXRvXCJcbiAgICAgICAgICB6SW5kZXg9ezEwfSAvLyBlbnN1cmUgZHJvcGRvd24gaXMgYWJvdmUgdGhlIHBhZ2UgY29udGVudFxuICAgICAgICA+XG4gICAgICAgICAgPEJveCBib3JkZXI9XCJub25lXCIgd2lkdGg9XCJhdXRvXCI+XG4gICAgICAgICAgICA8UXVlcnlDb250YWluZXI+XG4gICAgICAgICAgICAgIDxGbGV4Qm94XG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImJhc2VsaW5lXCJcbiAgICAgICAgICAgICAgICBib3JkZXJDb2xvcj1cImdyYXktNjAwXCJcbiAgICAgICAgICAgICAgICBib3JkZXJTdHlsZUJvdHRvbT1cInNvbGlkXCJcbiAgICAgICAgICAgICAgICBib3JkZXJXaWR0aEJvdHRvbT1cIjFweFwiXG4gICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTZWFyY2hJY29uXG4gICAgICAgICAgICAgICAgICBoZWlnaHQ9e3sgXzogMjAsIG1kOiAyNCB9fVxuICAgICAgICAgICAgICAgICAgd2lkdGg9e3sgXzogMjAsIG1kOiAyNCB9fVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPEZvcm1cbiAgICAgICAgICAgICAgICAgIGFjdGlvbj1cIi9zZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgaWQ9XCJzZWFyY2gtZm9ybVwiXG4gICAgICAgICAgICAgICAgICBtbD17OH1cbiAgICAgICAgICAgICAgICAgIG9uU3VibWl0PXtoYW5kbGVTdWJtaXR9XG4gICAgICAgICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxTdHlsZWRJbnB1dFxuICAgICAgICAgICAgICAgICAgICBhdXRvRm9jdXNcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZD1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICBib3JkZXI9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgZm9udFNpemU9e3sgXzogMjAsIG1kOiAyNiB9fVxuICAgICAgICAgICAgICAgICAgICBmb250V2VpZ2h0PVwiYm9sZFwiXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiaGVhZGVyLXNlYXJjaC1iYXJcIlxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwicXVlcnlcIlxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhlKSA9PiBvbktleURvd24oZSl9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtzZWFyY2hQbGFjZWhvbGRlcn1cbiAgICAgICAgICAgICAgICAgICAgcmVmPXtpbnB1dFJlZn1cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgICAgICAgYXV0b0NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9Gb3JtPlxuICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICBpY29uPXtNaW5pRGVsZXRlSWNvbn1cbiAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJDbGVhciBzZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgdGlwPVwiQ2xlYXIgc2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgIHRpcFByb3BzPXt7XG4gICAgICAgICAgICAgICAgICAgIGFsaWdubWVudDogJ2JvdHRvbS1jZW50ZXInLFxuICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ6ICdmbG9hdGluZycsXG4gICAgICAgICAgICAgICAgICAgIG5hcnJvdzogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgekluZGV4OiAyLFxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2NsZWFySW5wdXR9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvRmxleEJveD5cbiAgICAgICAgICAgIDwvUXVlcnlDb250YWluZXI+XG4gICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgPFN1Z2dlc3Rpb25Db250YWluZXI+XG4gICAgICAgICAgICB7dmFsdWVUcmltbWVkLmxlbmd0aCA+IDAgPyAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgPEZsZXhCb3ggZmxleERpcmVjdGlvbj1cImNvbHVtblwiIGFzPVwidWxcIiBsaXN0U3R5bGU9XCJub25lXCIgcD17MH0+XG4gICAgICAgICAgICAgICAgICB7YXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMubWFwKChzLCBpKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgIDxJbmxpbmVSZXN1bHRMaVxuICAgICAgICAgICAgICAgICAgICAgIGtleT17cy50aXRsZX1cbiAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhldnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnYXV0b2NvbXBsZXRlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzLnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdhdXRvY29tcGxldGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzLnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxTZW1pYm9sZFNlYXJjaEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgIG1iPXsyIGFzIDB9XG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPXsxNH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZVdpZHRoPXs4fVxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgICAgICAgICAgICAgICAgIG1yPXsxMn1cbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxIaWdobGlnaHRlZFRleHQgc3VnZ2VzdGlvbj17c30gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9JbmxpbmVSZXN1bHRMaT5cbiAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgIDwvRmxleEJveD5cbiAgICAgICAgICAgICAgICB7KHNlYXJjaEFzWW91VHlwZVJlc3VsdHMgPT09IG51bGwgfHxcbiAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMudG9wLmxlbmd0aCA+IDApICYmIChcbiAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgIDxUZXh0IGFzPVwiaDJcIiBmb250U2l6ZT17MjB9IG1iPXsxNn0gbXQ9ezI0fT5cbiAgICAgICAgICAgICAgICAgICAgICBUb3AgcmVzdWx0c1xuICAgICAgICAgICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgICAgICAgICAgIDxGbGV4Qm94XG4gICAgICAgICAgICAgICAgICAgICAgZmxleERpcmVjdGlvbj1cImNvbHVtblwiXG4gICAgICAgICAgICAgICAgICAgICAgYXM9XCJ1bFwiXG4gICAgICAgICAgICAgICAgICAgICAgbGlzdFN0eWxlPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgcD17MH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHNlYXJjaEFzWW91VHlwZUxvYWRlcj8uc2hpbW1lclJvd3MubWFwKChyKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPElubGluZUxvYWRlckxpIGtleT17ci5rZXl9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3Iuc2hpbW1lcnMubWFwKCh3b3JkKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTaGltbWVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PXszMH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBweT17OCBhcyAwfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17d29yZC5rZXl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9e3dvcmQud2lkdGh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCb3hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udEZhbWlseT1cImFjY2VudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRDb2xvcj1cInRleHQtc2Vjb25kYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udFNpemU9e3sgXzogMTAgYXMgMTYgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyQ29sb3I9XCJib3JkZXItc2Vjb25kYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyPXsxfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJSYWRpdXM9XCJ4bFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB4PXsxNn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eT17MC4xfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbmJzcDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSW5saW5lTG9hZGVyTGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICkpXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMudG9wLm1hcCgocywgaSkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbmxpbmVSZXN1bHRMaVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtgJHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy5xdWVyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfToke2kudG9TdHJpbmcoKX1gfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiSW5kZXg9ezB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwibGlua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhldnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV2dC5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnc2VhcmNoX2FzX3lvdV90eXBlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsdWc6IHMuc2x1ZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLihzLmNvbnRlbnRJZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHsgY29udGVudF9pZDogcy5jb250ZW50SWQgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhZmVseVJlZGlyZWN0KHMudXJsUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnc2VhcmNoX2FzX3lvdV90eXBlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2x1Zzogcy5zbHVnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLihzLmNvbnRlbnRJZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7IGNvbnRlbnRfaWQ6IHMuY29udGVudElkIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2FmZWx5UmVkaXJlY3Qocy51cmxQYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEhpZ2hsaWdodGVkVGV4dCBzdWdnZXN0aW9uPXtzfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJhZGdlIHNpemU9XCJzbVwiIHZhcmlhbnQ9XCJ0ZXJ0aWFyeVwiIG1sPXsxMn0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtzLnR5cGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0JhZGdlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSW5saW5lUmVzdWx0TGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIHtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy50b3AubGVuZ3RoID09PSAwICYmIChcbiAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgIDxCb3ggZm9udFNpemU9e3sgXzogMjAsIHNtOiAyNiB9fSBtdD17MH0gbWI9ezQ4fT5cbiAgICAgICAgICAgICAgICAgICAgICB7YFdlIGNvdWxkbid0IGZpbmQgYSBtYXRjaCBmb3IgYH1cbiAgICAgICAgICAgICAgICAgICAgICA8VGV4dCBmb250V2VpZ2h0PVwiYm9sZFwiPntgXCIke3ZhbHVlVHJpbW1lZH0uXCJgfTwvVGV4dD5cbiAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAnIFRyeSBhbm90aGVyIGtleXdvcmQsIG9yIHNlZSB3aGF0IG91ciBtZW1iZXJzIGFyZSBsZWFybmluZy4nXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICAgICAgPE1lbnUgYm9yZGVyPVwibm9uZVwiIHZhcmlhbnQ9XCJwb3BvdmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPFBvcHVsYXJDb250ZW50IG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfSAvPlxuICAgICAgICAgICAgICAgICAgICA8L01lbnU+XG4gICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxNZW51IGJvcmRlcj1cIm5vbmVcIiB2YXJpYW50PVwicG9wb3ZlclwiPlxuICAgICAgICAgICAgICAgIDxQb3B1bGFyU2VhcmNoZXNcbiAgICAgICAgICAgICAgICAgIG5hdmlnYXRlVG9TZWFyY2g9e25hdmlnYXRlVG9TZWFyY2h9XG4gICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxQb3B1bGFyQ29udGVudCBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja30gLz5cbiAgICAgICAgICAgICAgPC9NZW51PlxuICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgeyEhc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8udG9wLmxlbmd0aCAmJiAoXG4gICAgICAgICAgICAgIDxTdHJva2VCdXR0b25cbiAgICAgICAgICAgICAgICBteT17MTZ9XG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCd2aWV3X2FsbF9yZXN1bHRzJywge1xuICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgIG5hdmlnYXRlVG9TZWFyY2godmFsdWUsIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkKTtcbiAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIFZpZXcgYWxsIHJlc3VsdHNcbiAgICAgICAgICAgICAgPC9TdHJva2VCdXR0b24+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgPFF1aXpBbmRIZWxwQ2VudGVyTGlua3NcbiAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9XG4gICAgICAgICAgICAgIGhhbmRsZUNsb3NlRHJvcGRvd249e2Nsb3NlU2VhcmNofVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L1N1Z2dlc3Rpb25Db250YWluZXI+XG4gICAgICAgIDwvQm94PlxuICAgICAgPC9Gb2N1c1RyYXA+XG4gICAgPC8+XG4gICk7XG59O1xuIl19 */");
|
|
62
|
+
}), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvU2VhcmNoL1NlYXJjaFBhbmUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXVEb0IiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL0FwcEhlYWRlci9TZWFyY2gvU2VhcmNoUGFuZS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYWRnZSxcbiAgQm94LFxuICBDb250ZW50Q29udGFpbmVyLFxuICBGbGV4Qm94LFxuICBGb2N1c1RyYXAsXG4gIEljb25CdXR0b24sXG4gIE1lbnUsXG4gIE1lbnVJdGVtLFxuICBTaGltbWVyLFxuICBTdHJva2VCdXR0b24sXG4gIFRleHQsXG59IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCB7IE1pbmlEZWxldGVJY29uLCBTZWFyY2hJY29uIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtaWNvbnMnO1xuaW1wb3J0IHsgY3NzLCB0aGVtZSwgdXNlQ3VycmVudE1vZGUgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IHVzZU9uRXNjSGFuZGxlciB9IGZyb20gJy4uL3NoYXJlZCc7XG5pbXBvcnQgeyBzZWFyY2hQbGFjZWhvbGRlciB9IGZyb20gJy4vY29uc3RzJztcbmltcG9ydCB7IFBvcHVsYXJDb250ZW50LCBQb3B1bGFyU2VhcmNoZXMgfSBmcm9tICcuL0RlZmF1bHRSZXN1bHRzJztcbmltcG9ydCB7IHVzZVVybENoYW5nZURldGVjdGlvbiB9IGZyb20gJy4vaG9va3MvdXNlVXJsQ2hhbmdlRGV0ZWN0aW9uJztcbmltcG9ydCB7IFF1aXpBbmRIZWxwQ2VudGVyTGlua3MgfSBmcm9tICcuL1F1aXpBbmRIZWxwQ2VudGVyTGlua3MnO1xuaW1wb3J0IHsgc2FmZWx5UmVkaXJlY3QgfSBmcm9tICcuL3NhZmVseVJlZGlyZWN0JztcbmltcG9ydCB7IHVzZVNlYXJjaFRyYWNraW5nQ29udGV4dCB9IGZyb20gJy4vU2VhcmNoVHJhY2tpbmdQcm92aWRlcic7XG5pbXBvcnQgeyBzZWFyY2hXb3JrZXIgfSBmcm9tICcuL1NlYXJjaFdvcmtlcic7XG5pbXBvcnQgdHlwZSB7XG4gIEF1dG9jb21wbGV0ZVN1Z2dlc3Rpb24sXG4gIFNlYXJjaEFzWW91VHlwZVJlc3VsdHMsXG59IGZyb20gJy4vU2VhcmNoV29ya2VyL3R5cGVzJztcbmltcG9ydCB7IFNlYXJjaFBhbmVQcm9wcyB9IGZyb20gJy4vdHlwZXMnO1xuXG5jb25zdCBGb3JtID0gQm94LndpdGhDb21wb25lbnQoJ2Zvcm0nKTtcbmNvbnN0IElucHV0ID0gQm94LndpdGhDb21wb25lbnQoJ2lucHV0Jyk7XG5cbmNvbnN0IFF1ZXJ5Q29udGFpbmVyID0gc3R5bGVkKENvbnRlbnRDb250YWluZXIpKFxuICBjc3Moe1xuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICB3aWR0aDogJzEwMCUnLFxuICAgIHB0OiAxNixcbiAgICBwYjogeyBfOiAwLCBtZDogMjQgfSxcbiAgICBweDogeyBfOiAyNCB9LFxuICB9KVxuKTtcblxuY29uc3QgU3VnZ2VzdGlvbkNvbnRhaW5lciA9IHN0eWxlZChDb250ZW50Q29udGFpbmVyKShcbiAgY3NzKHtcbiAgICBwdDogMTYsXG4gICAgcGI6IHsgXzogMCwgbWQ6IDI0IH0sXG4gICAgcHg6IHsgXzogMjQgfSxcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZElucHV0ID0gc3R5bGVkKElucHV0KShcbiAgY3NzKHtcbiAgICBvdXRsaW5lOiBgbm9uZWAsXG4gICAgJyY6OnBsYWNlaG9sZGVyJzoge1xuICAgICAgdGV4dENvbG9yOiB0aGVtZS5jb2xvcnNbJ3RleHQtc2Vjb25kYXJ5J10gYXMgbmV2ZXIsXG4gICAgfSxcbiAgfSlcbik7XG5cbmNvbnN0IElubGluZVJlc3VsdExpID0gc3R5bGVkKE1lbnVJdGVtKShcbiAgY3NzKHtcbiAgICBwbDogMCxcbiAgICBweTogOCxcbiAgICBmb250U2l6ZTogMTYsXG4gICAgJyY6Zm9jdXMtdmlzaWJsZTphZnRlcic6IHtcbiAgICAgIGxlZnQ6IC00LFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBJbmxpbmVMb2FkZXJMaSA9IHN0eWxlZC5saShcbiAgY3NzKHtcbiAgICBsaXN0U3R5bGVUeXBlOiAnbm9uZScsXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGdhcDogMTIsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gIH0pXG4pO1xuXG5leHBvcnQgY29uc3QgU2VtaWJvbGRTZWFyY2hJY29uID0gc3R5bGVkKFNlYXJjaEljb24pYFxuICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuICBjaXJjbGUsXG4gIHBhdGgge1xuICAgIHN0cm9rZS13aWR0aDogMnB4O1xuICB9XG4gIHJlY3Qge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0ycHgsIC0ycHgpO1xuICAgIGhlaWdodDogY2FsYygxMDAlICsgNHB4KTtcbiAgICB3aWR0aDogY2FsYygxMDAlICsgNHB4KTtcbiAgfVxuYDtcblxuY29uc3QgRWxsaXBzaXNCb3ggPSBzdHlsZWQoQm94KWBcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5gO1xuXG5jb25zdCBIaWdobGlnaHRlZFRleHQgPSAoe1xuICBzdWdnZXN0aW9uOiB7IHRpdGxlLCBzZWdtZW50cyB9LFxufToge1xuICBzdWdnZXN0aW9uOiBBdXRvY29tcGxldGVTdWdnZXN0aW9uO1xufSkgPT4ge1xuICBjb25zdCBtb2RlID0gdXNlQ3VycmVudE1vZGUoKTtcbiAgY29uc3QgaGlnaGxpZ2h0Q29sb3IgPSBtb2RlID09PSAnZGFyaycgPyAnaHlwZXInIDogJ3llbGxvdyc7XG5cbiAgcmV0dXJuIChcbiAgICA8RmxleEJveD5cbiAgICAgIDxFbGxpcHNpc0JveFxuICAgICAgICBtYXhXaWR0aD1cImNhbGMoMTAwdncgLSAxMjhweClcIlxuICAgICAgICB3aGl0ZVNwYWNlPVwicHJlXCJcbiAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgb3ZlcmZsb3c9XCJoaWRkZW5cIlxuICAgICAgPlxuICAgICAgICB7c2VnbWVudHMubWFwKChzZWdtZW50LCBpKSA9PiAoXG4gICAgICAgICAgPFRleHRcbiAgICAgICAgICAgIGtleT17YCR7dGl0bGV9OiR7aS50b1N0cmluZygpfWB9XG4gICAgICAgICAgICBsaW5lSGVpZ2h0PVwidGl0bGVcIlxuICAgICAgICAgICAgey4uLihzZWdtZW50LmhpZ2hsaWdodFxuICAgICAgICAgICAgICA/IHsgYmc6IGhpZ2hsaWdodENvbG9yLCBmb250V2VpZ2h0OiAnYm9sZCcgfVxuICAgICAgICAgICAgICA6IHt9KX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7c2VnbWVudC52YWx1ZX1cbiAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICkpfVxuICAgICAgPC9FbGxpcHNpc0JveD5cbiAgICAgIDxUZXh0IHNjcmVlbnJlYWRlcj57dGl0bGV9PC9UZXh0PlxuICAgIDwvRmxleEJveD5cbiAgKTtcbn07XG5cbnR5cGUgU2VhcmNoQXNZb3VUeXBlTG9hZGVyID0ge1xuICBzaGltbWVyUm93czoge1xuICAgIGtleTogc3RyaW5nO1xuICAgIHNoaW1tZXJzOiB7XG4gICAgICBrZXk6IHN0cmluZztcbiAgICAgIHdpZHRoOiBudW1iZXI7XG4gICAgfVtdO1xuICB9W107XG59O1xuXG5sZXQgbG9hZGVyS2V5ID0gMDtcbmZ1bmN0aW9uIHJuZExvYWRlcigpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBsdXNwbHVzXG4gIGNvbnN0IGtleSA9IGxvYWRlcktleSsrO1xuICBjb25zdCBsb2FkZXI6IFNlYXJjaEFzWW91VHlwZUxvYWRlciA9IHsgc2hpbW1lclJvd3M6IFtdIH07XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgNTsgaSsrKSB7XG4gICAgY29uc3Qgcm93ID0ge1xuICAgICAga2V5OiBgJHtrZXl9OiR7aX1gLFxuICAgICAgc2hpbW1lcnM6IFtdIGFzIHsga2V5OiBzdHJpbmc7IHdpZHRoOiBudW1iZXIgfVtdLFxuICAgIH07XG4gICAgY29uc3Qgd29yZHMgPSBNYXRoLmNlaWwoTWF0aC5yYW5kb20oKSAqIDMpO1xuICAgIGZvciAobGV0IGogPSAwOyBqIDwgd29yZHM7IGorKykge1xuICAgICAgY29uc3Qgd2lkdGggPSAxMiArIE1hdGgucm91bmQoTWF0aC5yYW5kb20oKSAqIDk2KTtcbiAgICAgIHJvdy5zaGltbWVycy5wdXNoKHtcbiAgICAgICAga2V5OiBgJHtrZXl9OiR7an1gLFxuICAgICAgICB3aWR0aCxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBsb2FkZXIuc2hpbW1lclJvd3MucHVzaChyb3cpO1xuICB9XG4gIHJldHVybiBsb2FkZXI7XG59XG5cbmV4cG9ydCBjb25zdCBTZWFyY2hQYW5lOiBSZWFjdC5GQzxTZWFyY2hQYW5lUHJvcHM+ID0gKHtcbiAgb25TZWFyY2gsXG4gIG9uVHJhY2tpbmdDbGljayxcbiAgc2VhcmNoQnV0dG9uUmVmLFxuICB0b2dnbGVTZWFyY2gsXG4gIG9uU2VhcmNoQXNZb3VUeXBlLFxufSkgPT4ge1xuICBjb25zdCB0aGVtZSA9IHVzZVRoZW1lKCk7XG4gIGNvbnN0IFt2YWx1ZSwgc2V0VmFsdWVdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCBpbnB1dFJlZiA9IHVzZVJlZjxIVE1MSW5wdXRFbGVtZW50PihudWxsKTtcbiAgY29uc3QgW2F1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zLCBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9uc10gPSB1c2VTdGF0ZTxcbiAgICBBdXRvY29tcGxldGVTdWdnZXN0aW9uW11cbiAgPihbXSk7XG4gIGNvbnN0IFtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLCBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzXSA9XG4gICAgdXNlU3RhdGU8U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyB8IG51bGw+KG51bGwpO1xuXG4gIGNvbnN0IFtzZWFyY2hSZXN1bHRDbGlja2VkLCBzZXRTZWFyY2hSZXN1bHRDbGlja2VkXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICBjb25zdCB7IHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zIH0gPSB1c2VTZWFyY2hUcmFja2luZ0NvbnRleHQoKTtcblxuICBjb25zdCBzZWFyY2hBc1lvdVR5cGVMb2FkZXIgPSBSZWFjdC51c2VNZW1vKFxuICAgICgpID0+IChzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsID8gcm5kTG9hZGVyKCkgOiBudWxsKSxcbiAgICBbc2VhcmNoQXNZb3VUeXBlUmVzdWx0c11cbiAgKTtcblxuICBjb25zdCB2YWx1ZVRyaW1tZWQgPSB2YWx1ZS50cmltKCk7XG5cbiAgY29uc3QgaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrID1cbiAgICBvblNlYXJjaEFzWW91VHlwZSAmJiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzICYmICFzZWFyY2hSZXN1bHRDbGlja2VkO1xuXG4gIGNvbnN0IGNsb3NlU2VhcmNoID0gYXN5bmMgKCkgPT4ge1xuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCB3aGVuIHVzZXIgbWFkZSBhIHNlYXJjaCBhbmQgdGhlbiBjbG9zZWQgc2VhcmNoIHBhbmVcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIGF3YWl0IHRvZ2dsZVNlYXJjaCgpO1xuICAgIC8vIGFkZHMgYSBsaXR0bGUgZGVsYXkgYmV0d2VlbiBjbG9zaW5nIHRoZSBzZWFyY2ggcGFuZSBhbmQgZm9jdXNpbmcgb24gdGhlIGJ1dHRvblxuICAgIC8vIHRvIHByZXZlbnQgdGhlIHNlYXJjaCBwYW5lIGZyb20gaW1tZWRpYXRlbHkgb3BlbmluZyBhZ2FpblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHNlYXJjaEJ1dHRvblJlZiAmJiBzZWFyY2hCdXR0b25SZWY/LmN1cnJlbnQpIHtcbiAgICAgICAgc2VhcmNoQnV0dG9uUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICB9XG4gICAgfSwgMTApO1xuICB9O1xuXG4gIGNvbnN0IG9uS2V5RG93biA9IHVzZU9uRXNjSGFuZGxlcihjbG9zZVNlYXJjaCk7XG5cbiAgY29uc3Qgb25Nb3VzZURvd25PdXRzaWRlID0gKHsgdGFyZ2V0IH06IE1vdXNlRXZlbnQpID0+IHtcbiAgICBjb25zdCBoYW5kbGVPdXRzaWRlQ2xpY2sgPSAoKSA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgICFkb2N1bWVudFxuICAgICAgICAgIC5xdWVyeVNlbGVjdG9yKCdbZGF0YS10ZXN0aWQ9XCJoZWFkZXItc2VhcmNoLWRyb3Bkb3duXCJdJylcbiAgICAgICAgICA/LmNvbnRhaW5zKHRhcmdldCBhcyBIVE1MRWxlbWVudCkgJiZcbiAgICAgICAgdGFyZ2V0ICE9PSBzZWFyY2hCdXR0b25SZWY/LmN1cnJlbnRcbiAgICAgICkge1xuICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgfVxuXG4gICAgICB0YXJnZXQ/LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBoYW5kbGVPdXRzaWRlQ2xpY2spO1xuICAgIH07XG5cbiAgICB0YXJnZXQ/LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBoYW5kbGVPdXRzaWRlQ2xpY2spO1xuICB9O1xuXG4gIGNvbnN0IG5hdmlnYXRlVG9TZWFyY2ggPSAoc2VhcmNoVGVybTogc3RyaW5nLCBmcm9tUHJldlNlYXJjaD86IHN0cmluZykgPT4ge1xuICAgIG9uU2VhcmNoKHNlYXJjaFRlcm0sIGZyb21QcmV2U2VhcmNoKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVDaGFuZ2U6IFJlYWN0LkNoYW5nZUV2ZW50SGFuZGxlcjxIVE1MSW5wdXRFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICBzZXRWYWx1ZShldnQudGFyZ2V0LnZhbHVlKTtcbiAgICAvLyByZXNldCB0byBmYWxzZSB3aGVuIHRoZSBzZWFyY2ggcXVlcnkgY2hhbmdlc1xuICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQoZmFsc2UpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVN1Ym1pdDogUmVhY3QuRm9ybUV2ZW50SGFuZGxlciA9IChldmVudCkgPT4ge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgd2hlbiB0aGUgdXNlciBzdWJtaXRzIHRoZSBmb3JtIHRvIGNhcHR1cmUgY29tcGxldGUgcXVlcnlcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIG5hdmlnYXRlVG9TZWFyY2godmFsdWUsIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkKTtcbiAgfTtcblxuICBjb25zdCBjbGVhcklucHV0ID0gKCkgPT4ge1xuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCBiZWZvcmUgdXNlciBjbGVhcnMgaW5wdXRcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIHNldFZhbHVlKCcnKTtcbiAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhbXSk7XG4gICAgLy8gcmVzZXQgdGhlIGNvbnRleHQgd2l0aCBlbXB0eSB2YWx1ZXNcbiAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICBxdWVyeTogJycsXG4gICAgICBzZWFyY2hJZDogJycsXG4gICAgICByZXN1bHRzQ291bnQ6IDAsXG4gICAgICBxdWVyeUxvYWRUaW1lOiAwLFxuICAgIH0pO1xuICB9O1xuXG4gIC8vIHdoZW4gdGhlIGN1cnJlbnQgVVJMIGNoYW5nZXMsIHdlIHdhbnQgdG8gY2xvc2UgdGhlIHNlYXJjaCBwYW5lIGlmIGl0J3Mgb3BlblxuICAvLyBhbmQgdHJhY2sgc2VhcmNoIGV2ZW50IGlmIHVzZXIgbWFkZSBhIHNlYXJjaFxuICB1c2VVcmxDaGFuZ2VEZXRlY3Rpb24oe1xuICAgIG9uVXJsQ2hhbmdlOiAoKSA9PiB7XG4gICAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgICAgfVxuXG4gICAgICB0b2dnbGVTZWFyY2goKTtcbiAgICB9LFxuICB9KTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIC8vIGRvbid0IHRyYWNrIGlmIGEgcmVzdWx0IHdhcyBjbGlja2VkIG9yIGlmIHdlIGRvbid0IGhhdmUgc2VhcmNoIHJlc3VsdHNcbiAgICBpZiAoXG4gICAgICBzZWFyY2hSZXN1bHRDbGlja2VkIHx8XG4gICAgICAhb25TZWFyY2hBc1lvdVR5cGUgfHxcbiAgICAgICFzZWFyY2hBc1lvdVR5cGVSZXN1bHRzIHx8XG4gICAgICAhdmFsdWVUcmltbWVkLmxlbmd0aFxuICAgIClcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11c2VsZXNzLXJldHVyblxuICAgICAgcmV0dXJuO1xuICB9LCBbXG4gICAgc2VhcmNoUmVzdWx0Q2xpY2tlZCxcbiAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLFxuICAgIHZhbHVlVHJpbW1lZCxcbiAgICBvblNlYXJjaEFzWW91VHlwZSxcbiAgXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpbnB1dFJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgIHNlYXJjaFdvcmtlci5pbml0KCk7XG4gIH0sIFtdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghdmFsdWVUcmltbWVkLmxlbmd0aCkge1xuICAgICAgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyhudWxsKTtcbiAgICAgIHNldEF1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zKFtdKTtcbiAgICAgIHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zKHtcbiAgICAgICAgcXVlcnk6ICcnLFxuICAgICAgICBzZWFyY2hJZDogJycsXG4gICAgICAgIHJlc3VsdHNDb3VudDogMCxcbiAgICAgICAgcXVlcnlMb2FkVGltZTogMCxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBjYW5jZWwgPSBmYWxzZTtcbiAgICBsZXQgY2xlYXJBdXRvY29tcGxldGUgPSB0cnVlO1xuICAgIGxldCBjbGVhclNlYXJjaEFzWW91VHlwZSA9IHRydWU7XG5cbiAgICBsZXQgc2VhcmNoRXZlbnROb1Jlc3VsdERlbGF5OiBOb2RlSlMuVGltZW91dDtcblxuICAgIGNvbnN0IGxvYWRlckRlbGF5ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAvKlxuICAgICAgICogV2FpdCAxMCBtaWxsaXNlY29uZHMgdG8gZ2V0IGEgcmVzcG9uc2UgZm9yIHdvcmtlciBiZWZvcmUgc2hvd2luZyBsb2FkZXJzLlxuICAgICAgICogVGhpcyBwcmV2ZW50cyBmbGlja2VyaW5nIGxvYWRlcnMgb24gcXVpY2sgb3IgY2FjaGVkIHJlc3VsdHMuXG4gICAgICAgKi9cbiAgICAgIGlmIChjYW5jZWwpIHJldHVybjtcbiAgICAgIGlmIChjbGVhckF1dG9jb21wbGV0ZSkgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgICAgaWYgKGNsZWFyU2VhcmNoQXNZb3VUeXBlKSBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKG51bGwpO1xuICAgIH0sIDEwKTtcblxuICAgIHNlYXJjaFdvcmtlci5hdXRvY29tcGxldGUodmFsdWVUcmltbWVkKS50aGVuKChzdWdnZXN0aW9ucykgPT4ge1xuICAgICAgY2xlYXJBdXRvY29tcGxldGUgPSBmYWxzZTtcblxuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuOyAvLyB0ZXh0IGhhcyBjaGFuZ2VkIHNpbmNlIHRoaXMgcmVxdWVzdCB3YXMgbWFkZVxuXG4gICAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhzdWdnZXN0aW9ucyk7XG4gICAgfSk7XG5cbiAgICBzZWFyY2hXb3JrZXIuc2VhcmNoQXNZb3VUeXBlKHZhbHVlVHJpbW1lZCkudGhlbigocmVzdWx0cykgPT4ge1xuICAgICAgY2xlYXJTZWFyY2hBc1lvdVR5cGUgPSBmYWxzZTtcblxuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuOyAvLyB0ZXh0IGhhcyBjaGFuZ2VkIHNpbmNlIHRoaXMgcmVxdWVzdCB3YXMgbWFkZVxuXG4gICAgICBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKHJlc3VsdHMpO1xuXG4gICAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICAgIHF1ZXJ5OiByZXN1bHRzLnF1ZXJ5LFxuICAgICAgICBzZWFyY2hJZDogcmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgcmVzdWx0c0NvdW50OiByZXN1bHRzLnRvcC5sZW5ndGgsXG4gICAgICAgIHF1ZXJ5TG9hZFRpbWU6IHJlc3VsdHMucXVlcnlMb2FkVGltZSxcbiAgICAgIH0pO1xuXG4gICAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgd2l0aCBhIHNtYWxsIGRlbGF5IHdoZW4gdGhlcmUgYXJlIG5vIHJlc3VsdHNcbiAgICAgIGlmIChcbiAgICAgICAgb25TZWFyY2hBc1lvdVR5cGUgJiZcbiAgICAgICAgcmVzdWx0cy50b3AubGVuZ3RoID09PSAwICYmXG4gICAgICAgICFzZWFyY2hSZXN1bHRDbGlja2VkXG4gICAgICApIHtcbiAgICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHF1ZXJ5TG9hZFRpbWUgfSA9IHJlc3VsdHM7XG4gICAgICAgIHNlYXJjaEV2ZW50Tm9SZXN1bHREZWxheSA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIGlmICghY2FuY2VsKSB7XG4gICAgICAgICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIDAsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSwgMzAwKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjYW5jZWwgPSB0cnVlO1xuICAgICAgY2xlYXJUaW1lb3V0KGxvYWRlckRlbGF5KTtcbiAgICAgIGNsZWFyVGltZW91dChzZWFyY2hFdmVudE5vUmVzdWx0RGVsYXkpO1xuICAgIH07XG4gIH0sIFtcbiAgICB2YWx1ZVRyaW1tZWQsXG4gICAgb25TZWFyY2hBc1lvdVR5cGUsXG4gICAgc2VhcmNoUmVzdWx0Q2xpY2tlZCxcbiAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyxcbiAgXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPEJveFxuICAgICAgICBhcmlhLWhpZGRlblxuICAgICAgICBiZz1cInNoYWRvdy1zZWNvbmRhcnlcIlxuICAgICAgICBoZWlnaHQ9XCIxMDB2aFwiXG4gICAgICAgIHBvc2l0aW9uPVwiZml4ZWRcIlxuICAgICAgICAvLyBXZSBhZGQgNXJlbSBoZXJlIGluIGNhc2UgdGhlcmUncyBzb21lIHNvcnQgb2YgYnJhbmRlZCBiYW5uZXIgYWJvdmUgc2VhcmNoXG4gICAgICAgIC8vIFRoZSBzZWFyY2ggYXJlYSBpcyBtdWNoIHRhbGxlciB0aGFuIDVyZW0gc28gdGhpcyBpcyBhIHNhZmUgYW1vdW50IG9mIHBhZGRpbmdcbiAgICAgICAgdG9wPXtgY2FsYygke3RoZW1lLmVsZW1lbnRzLmhlYWRlckhlaWdodH0gKyA1cmVtKWB9XG4gICAgICAgIHdpZHRoPXsxfVxuICAgICAgLz5cbiAgICAgIDxGb2N1c1RyYXBcbiAgICAgICAgb25Fc2NhcGVLZXk9e2Nsb3NlU2VhcmNofVxuICAgICAgICBvbkNsaWNrT3V0c2lkZT17b25Nb3VzZURvd25PdXRzaWRlfVxuICAgICAgICBhbGxvd1BhZ2VJbnRlcmFjdGlvblxuICAgICAgPlxuICAgICAgICA8Qm94XG4gICAgICAgICAgYmc9XCJiYWNrZ3JvdW5kXCJcbiAgICAgICAgICBib3JkZXJDb2xvckJvdHRvbT1cImJvcmRlci1wcmltYXJ5XCJcbiAgICAgICAgICBib3JkZXJDb2xvclRvcD1cImJvcmRlci10ZXJ0aWFyeVwiXG4gICAgICAgICAgYm9yZGVyU3R5bGU9XCJzb2xpZFwiXG4gICAgICAgICAgYm9yZGVyV2lkdGg9XCIycHggMCAxcHhcIlxuICAgICAgICAgIGRhdGEtdGVzdGlkPVwiaGVhZGVyLXNlYXJjaC1kcm9wZG93blwiXG4gICAgICAgICAgcG9zaXRpb249e3sgXzogJ2ZpeGVkJywgbWQ6ICdhYnNvbHV0ZScgfX1cbiAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgIG1heEhlaWdodD17eyBfOiAnY2FsYygxMDB2aCAtIDYzcHgpJywgbWQ6ICdjYWxjKDEwMHZoIC0gODBweCknIH19XG4gICAgICAgICAgb3ZlcmZsb3c9XCJhdXRvXCJcbiAgICAgICAgICB6SW5kZXg9ezEwfSAvLyBlbnN1cmUgZHJvcGRvd24gaXMgYWJvdmUgdGhlIHBhZ2UgY29udGVudFxuICAgICAgICA+XG4gICAgICAgICAgPEJveCBib3JkZXI9XCJub25lXCIgd2lkdGg9XCJhdXRvXCI+XG4gICAgICAgICAgICA8UXVlcnlDb250YWluZXI+XG4gICAgICAgICAgICAgIDxGbGV4Qm94XG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImJhc2VsaW5lXCJcbiAgICAgICAgICAgICAgICBib3JkZXJDb2xvcj1cImdyYXktNjAwXCJcbiAgICAgICAgICAgICAgICBib3JkZXJTdHlsZUJvdHRvbT1cInNvbGlkXCJcbiAgICAgICAgICAgICAgICBib3JkZXJXaWR0aEJvdHRvbT1cIjFweFwiXG4gICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTZWFyY2hJY29uXG4gICAgICAgICAgICAgICAgICBoZWlnaHQ9e3sgXzogMjAsIG1kOiAyNCB9fVxuICAgICAgICAgICAgICAgICAgd2lkdGg9e3sgXzogMjAsIG1kOiAyNCB9fVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPEZvcm1cbiAgICAgICAgICAgICAgICAgIGFjdGlvbj1cIi9zZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgaWQ9XCJzZWFyY2gtZm9ybVwiXG4gICAgICAgICAgICAgICAgICBtbD17OH1cbiAgICAgICAgICAgICAgICAgIG9uU3VibWl0PXtoYW5kbGVTdWJtaXR9XG4gICAgICAgICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxTdHlsZWRJbnB1dFxuICAgICAgICAgICAgICAgICAgICBhdXRvRm9jdXNcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZD1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICBib3JkZXI9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgZm9udFNpemU9e3sgXzogMjAsIG1kOiAyNiB9fVxuICAgICAgICAgICAgICAgICAgICBmb250V2VpZ2h0PVwiYm9sZFwiXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiaGVhZGVyLXNlYXJjaC1iYXJcIlxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwicXVlcnlcIlxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhlKSA9PiBvbktleURvd24oZSl9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtzZWFyY2hQbGFjZWhvbGRlcn1cbiAgICAgICAgICAgICAgICAgICAgcmVmPXtpbnB1dFJlZn1cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgICAgICAgYXV0b0NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9Gb3JtPlxuICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICBpY29uPXtNaW5pRGVsZXRlSWNvbn1cbiAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJDbGVhciBzZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgdGlwPVwiQ2xlYXIgc2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgIHRpcFByb3BzPXt7XG4gICAgICAgICAgICAgICAgICAgIGFsaWdubWVudDogJ2JvdHRvbS1jZW50ZXInLFxuICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ6ICdmbG9hdGluZycsXG4gICAgICAgICAgICAgICAgICAgIG5hcnJvdzogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgekluZGV4OiAyLFxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2NsZWFySW5wdXR9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvRmxleEJveD5cbiAgICAgICAgICAgIDwvUXVlcnlDb250YWluZXI+XG4gICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgPFN1Z2dlc3Rpb25Db250YWluZXI+XG4gICAgICAgICAgICB7dmFsdWVUcmltbWVkLmxlbmd0aCA+IDAgPyAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgPEZsZXhCb3ggZmxleERpcmVjdGlvbj1cImNvbHVtblwiIGFzPVwidWxcIiBsaXN0U3R5bGU9XCJub25lXCIgcD17MH0+XG4gICAgICAgICAgICAgICAgICB7YXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMubWFwKChzLCBpKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgIDxJbmxpbmVSZXN1bHRMaVxuICAgICAgICAgICAgICAgICAgICAgIGtleT17cy50aXRsZX1cbiAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhldnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnYXV0b2NvbXBsZXRlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzLnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdhdXRvY29tcGxldGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzLnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxTZW1pYm9sZFNlYXJjaEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgIG1iPXsyIGFzIDB9XG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPXsxNH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZVdpZHRoPXs4fVxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgICAgICAgICAgICAgICAgIG1yPXsxMn1cbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxIaWdobGlnaHRlZFRleHQgc3VnZ2VzdGlvbj17c30gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9JbmxpbmVSZXN1bHRMaT5cbiAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgIDwvRmxleEJveD5cbiAgICAgICAgICAgICAgICB7KHNlYXJjaEFzWW91VHlwZVJlc3VsdHMgPT09IG51bGwgfHxcbiAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMudG9wLmxlbmd0aCA+IDApICYmIChcbiAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgIDxUZXh0IGFzPVwiaDJcIiBmb250U2l6ZT17MjB9IG1iPXsxNn0gbXQ9ezI0fT5cbiAgICAgICAgICAgICAgICAgICAgICBUb3AgcmVzdWx0c1xuICAgICAgICAgICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgICAgICAgICAgIDxGbGV4Qm94XG4gICAgICAgICAgICAgICAgICAgICAgZmxleERpcmVjdGlvbj1cImNvbHVtblwiXG4gICAgICAgICAgICAgICAgICAgICAgYXM9XCJ1bFwiXG4gICAgICAgICAgICAgICAgICAgICAgbGlzdFN0eWxlPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgcD17MH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHNlYXJjaEFzWW91VHlwZUxvYWRlcj8uc2hpbW1lclJvd3MubWFwKChyKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPElubGluZUxvYWRlckxpIGtleT17ci5rZXl9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3Iuc2hpbW1lcnMubWFwKCh3b3JkKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTaGltbWVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PXszMH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBweT17OCBhcyAwfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17d29yZC5rZXl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9e3dvcmQud2lkdGh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCb3hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udEZhbWlseT1cImFjY2VudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRDb2xvcj1cInRleHQtc2Vjb25kYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udFNpemU9e3sgXzogMTAgYXMgMTYgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyQ29sb3I9XCJib3JkZXItc2Vjb25kYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyPXsxfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJSYWRpdXM9XCJ4bFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB4PXsxNn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eT17MC4xfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbmJzcDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSW5saW5lTG9hZGVyTGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICkpXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMudG9wLm1hcCgocywgaSkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbmxpbmVSZXN1bHRMaVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtgJHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy5xdWVyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfToke2kudG9TdHJpbmcoKX1gfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiSW5kZXg9ezB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwibGlua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhldnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV2dC5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnc2VhcmNoX2FzX3lvdV90eXBlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsdWc6IHMuc2x1ZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLihzLmNvbnRlbnRJZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHsgY29udGVudF9pZDogcy5jb250ZW50SWQgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhZmVseVJlZGlyZWN0KHMudXJsUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnc2VhcmNoX2FzX3lvdV90eXBlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2x1Zzogcy5zbHVnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLihzLmNvbnRlbnRJZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7IGNvbnRlbnRfaWQ6IHMuY29udGVudElkIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2FmZWx5UmVkaXJlY3Qocy51cmxQYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEhpZ2hsaWdodGVkVGV4dCBzdWdnZXN0aW9uPXtzfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJhZGdlIHNpemU9XCJzbVwiIHZhcmlhbnQ9XCJ0ZXJ0aWFyeVwiIG1sPXsxMn0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtzLnR5cGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0JhZGdlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSW5saW5lUmVzdWx0TGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIHtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy50b3AubGVuZ3RoID09PSAwICYmIChcbiAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgIDxCb3ggZm9udFNpemU9e3sgXzogMjAsIHNtOiAyNiB9fSBtdD17MH0gbWI9ezQ4fT5cbiAgICAgICAgICAgICAgICAgICAgICB7YFdlIGNvdWxkbid0IGZpbmQgYSBtYXRjaCBmb3IgYH1cbiAgICAgICAgICAgICAgICAgICAgICA8VGV4dCBmb250V2VpZ2h0PVwiYm9sZFwiPntgXCIke3ZhbHVlVHJpbW1lZH0uXCJgfTwvVGV4dD5cbiAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAnIFRyeSBhbm90aGVyIGtleXdvcmQsIG9yIHNlZSB3aGF0IG91ciBtZW1iZXJzIGFyZSBsZWFybmluZy4nXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICAgICAgPE1lbnUgYm9yZGVyPVwibm9uZVwiIHZhcmlhbnQ9XCJwb3BvdmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPFBvcHVsYXJDb250ZW50IG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfSAvPlxuICAgICAgICAgICAgICAgICAgICA8L01lbnU+XG4gICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxNZW51IGJvcmRlcj1cIm5vbmVcIiB2YXJpYW50PVwicG9wb3ZlclwiPlxuICAgICAgICAgICAgICAgIDxQb3B1bGFyU2VhcmNoZXNcbiAgICAgICAgICAgICAgICAgIG5hdmlnYXRlVG9TZWFyY2g9e25hdmlnYXRlVG9TZWFyY2h9XG4gICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxQb3B1bGFyQ29udGVudCBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja30gLz5cbiAgICAgICAgICAgICAgPC9NZW51PlxuICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgeyEhc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8udG9wLmxlbmd0aCAmJiAoXG4gICAgICAgICAgICAgIDxTdHJva2VCdXR0b25cbiAgICAgICAgICAgICAgICBteT17MTZ9XG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCd2aWV3X2FsbF9yZXN1bHRzJywge1xuICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgIG5hdmlnYXRlVG9TZWFyY2godmFsdWUsIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkKTtcbiAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIFZpZXcgYWxsIHJlc3VsdHNcbiAgICAgICAgICAgICAgPC9TdHJva2VCdXR0b24+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgPFF1aXpBbmRIZWxwQ2VudGVyTGlua3NcbiAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9XG4gICAgICAgICAgICAgIGhhbmRsZUNsb3NlRHJvcGRvd249e2Nsb3NlU2VhcmNofVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L1N1Z2dlc3Rpb25Db250YWluZXI+XG4gICAgICAgIDwvQm94PlxuICAgICAgPC9Gb2N1c1RyYXA+XG4gICAgPC8+XG4gICk7XG59O1xuIl19 */");
|
|
63
63
|
const InlineResultLi = /*#__PURE__*/_styled(MenuItem, {
|
|
64
64
|
target: "e1e5b20r3",
|
|
65
65
|
label: "InlineResultLi"
|
|
@@ -70,7 +70,7 @@ const InlineResultLi = /*#__PURE__*/_styled(MenuItem, {
|
|
|
70
70
|
'&:focus-visible:after': {
|
|
71
71
|
left: -4
|
|
72
72
|
}
|
|
73
|
-
}), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvU2VhcmNoL1NlYXJjaFBhbmUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWdFdUIiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL0FwcEhlYWRlci9TZWFyY2gvU2VhcmNoUGFuZS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYWRnZSxcbiAgQm94LFxuICBDb250ZW50Q29udGFpbmVyLFxuICBGbGV4Qm94LFxuICBGb2N1c1RyYXAsXG4gIEljb25CdXR0b24sXG4gIE1lbnUsXG4gIE1lbnVJdGVtLFxuICBTaGltbWVyLFxuICBTdHJva2VCdXR0b24sXG4gIFRleHQsXG59IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCB7IE1pbmlEZWxldGVJY29uLCBTZWFyY2hJY29uIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtaWNvbnMnO1xuaW1wb3J0IHsgY3NzLCB0aGVtZSwgdXNlQ3VycmVudE1vZGUgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IHVzZU9uRXNjSGFuZGxlciB9IGZyb20gJy4uL3NoYXJlZCc7XG5pbXBvcnQgeyBzZWFyY2hQbGFjZWhvbGRlciB9IGZyb20gJy4vY29uc3RzJztcbmltcG9ydCB7IFBvcHVsYXJDb250ZW50LCBQb3B1bGFyU2VhcmNoZXMgfSBmcm9tICcuL0RlZmF1bHRSZXN1bHRzJztcbmltcG9ydCB7IHVzZVVybENoYW5nZURldGVjdGlvbiB9IGZyb20gJy4vaG9va3MvdXNlVXJsQ2hhbmdlRGV0ZWN0aW9uJztcbmltcG9ydCB7IFF1aXpBbmRIZWxwQ2VudGVyTGlua3MgfSBmcm9tICcuL1F1aXpBbmRIZWxwQ2VudGVyTGlua3MnO1xuaW1wb3J0IHsgc2FmZWx5UmVkaXJlY3QgfSBmcm9tICcuL3NhZmVseVJlZGlyZWN0JztcbmltcG9ydCB7IHVzZVNlYXJjaFRyYWNraW5nQ29udGV4dCB9IGZyb20gJy4vU2VhcmNoVHJhY2tpbmdQcm92aWRlcic7XG5pbXBvcnQgeyBzZWFyY2hXb3JrZXIgfSBmcm9tICcuL1NlYXJjaFdvcmtlcic7XG5pbXBvcnQgdHlwZSB7XG4gIEF1dG9jb21wbGV0ZVN1Z2dlc3Rpb24sXG4gIFNlYXJjaEFzWW91VHlwZVJlc3VsdHMsXG59IGZyb20gJy4vU2VhcmNoV29ya2VyL3R5cGVzJztcbmltcG9ydCB7IFNlYXJjaFBhbmVQcm9wcyB9IGZyb20gJy4vdHlwZXMnO1xuXG5jb25zdCBGb3JtID0gQm94LndpdGhDb21wb25lbnQoJ2Zvcm0nKTtcbmNvbnN0IElucHV0ID0gQm94LndpdGhDb21wb25lbnQoJ2lucHV0Jyk7XG5cbmNvbnN0IFF1ZXJ5Q29udGFpbmVyID0gc3R5bGVkKENvbnRlbnRDb250YWluZXIpKFxuICBjc3Moe1xuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICB3aWR0aDogJzEwMCUnLFxuICAgIHB0OiAxNixcbiAgICBwYjogeyBfOiAwLCBtZDogMjQgfSxcbiAgICBweDogeyBfOiAyNCB9LFxuICB9KVxuKTtcblxuY29uc3QgU3VnZ2VzdGlvbkNvbnRhaW5lciA9IHN0eWxlZChDb250ZW50Q29udGFpbmVyKShcbiAgY3NzKHtcbiAgICBwdDogMTYsXG4gICAgcGI6IHsgXzogMCwgbWQ6IDI0IH0sXG4gICAgcHg6IHsgXzogMjQgfSxcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZElucHV0ID0gc3R5bGVkKElucHV0KShcbiAgY3NzKHtcbiAgICBvdXRsaW5lOiBgbm9uZWAsXG4gICAgJyY6OnBsYWNlaG9sZGVyJzoge1xuICAgICAgdGV4dENvbG9yOiB0aGVtZS5jb2xvcnNbJ3RleHQtc2Vjb25kYXJ5J10gYXMgbmV2ZXIsXG4gICAgfSxcbiAgfSlcbik7XG5cbmNvbnN0IElubGluZVJlc3VsdExpID0gc3R5bGVkKE1lbnVJdGVtKShcbiAgY3NzKHtcbiAgICBwbDogMCxcbiAgICBweTogOCxcbiAgICBmb250U2l6ZTogMTYsXG4gICAgJyY6Zm9jdXMtdmlzaWJsZTphZnRlcic6IHtcbiAgICAgIGxlZnQ6IC00LFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBJbmxpbmVMb2FkZXJMaSA9IHN0eWxlZC5saShcbiAgY3NzKHtcbiAgICBsaXN0U3R5bGVUeXBlOiAnbm9uZScsXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGdhcDogMTIsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gIH0pXG4pO1xuXG5leHBvcnQgY29uc3QgU2VtaWJvbGRTZWFyY2hJY29uID0gc3R5bGVkKFNlYXJjaEljb24pYFxuICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuICBjaXJjbGUsXG4gIHBhdGgge1xuICAgIHN0cm9rZS13aWR0aDogMnB4O1xuICB9XG4gIHJlY3Qge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0ycHgsIC0ycHgpO1xuICAgIGhlaWdodDogY2FsYygxMDAlICsgNHB4KTtcbiAgICB3aWR0aDogY2FsYygxMDAlICsgNHB4KTtcbiAgfVxuYDtcblxuY29uc3QgRWxsaXBzaXNCb3ggPSBzdHlsZWQoQm94KWBcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5gO1xuXG5jb25zdCBIaWdobGlnaHRlZFRleHQgPSAoe1xuICBzdWdnZXN0aW9uOiB7IHRpdGxlLCBzZWdtZW50cyB9LFxufToge1xuICBzdWdnZXN0aW9uOiBBdXRvY29tcGxldGVTdWdnZXN0aW9uO1xufSkgPT4ge1xuICBjb25zdCBtb2RlID0gdXNlQ3VycmVudE1vZGUoKTtcbiAgY29uc3QgaGlnaGxpZ2h0Q29sb3IgPSBtb2RlID09PSAnZGFyaycgPyAnaHlwZXInIDogJ3llbGxvdyc7XG5cbiAgcmV0dXJuIChcbiAgICA8RmxleEJveD5cbiAgICAgIDxFbGxpcHNpc0JveFxuICAgICAgICBtYXhXaWR0aD1cImNhbGMoMTAwdncgLSAxMjhweClcIlxuICAgICAgICB3aGl0ZVNwYWNlPVwicHJlXCJcbiAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgb3ZlcmZsb3c9XCJoaWRkZW5cIlxuICAgICAgPlxuICAgICAgICB7c2VnbWVudHMubWFwKChzZWdtZW50LCBpKSA9PiAoXG4gICAgICAgICAgPFRleHRcbiAgICAgICAgICAgIGtleT17YCR7dGl0bGV9OiR7aS50b1N0cmluZygpfWB9XG4gICAgICAgICAgICBsaW5lSGVpZ2h0PVwidGl0bGVcIlxuICAgICAgICAgICAgey4uLihzZWdtZW50LmhpZ2hsaWdodFxuICAgICAgICAgICAgICA/IHsgYmc6IGhpZ2hsaWdodENvbG9yLCBmb250V2VpZ2h0OiAnYm9sZCcgfVxuICAgICAgICAgICAgICA6IHt9KX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7c2VnbWVudC52YWx1ZX1cbiAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICkpfVxuICAgICAgPC9FbGxpcHNpc0JveD5cbiAgICAgIDxUZXh0IHNjcmVlbnJlYWRlcj57dGl0bGV9PC9UZXh0PlxuICAgIDwvRmxleEJveD5cbiAgKTtcbn07XG5cbnR5cGUgU2VhcmNoQXNZb3VUeXBlTG9hZGVyID0ge1xuICBzaGltbWVyUm93czoge1xuICAgIGtleTogc3RyaW5nO1xuICAgIHNoaW1tZXJzOiB7XG4gICAgICBrZXk6IHN0cmluZztcbiAgICAgIHdpZHRoOiBudW1iZXI7XG4gICAgfVtdO1xuICB9W107XG59O1xuXG5sZXQgbG9hZGVyS2V5ID0gMDtcbmZ1bmN0aW9uIHJuZExvYWRlcigpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBsdXNwbHVzXG4gIGNvbnN0IGtleSA9IGxvYWRlcktleSsrO1xuICBjb25zdCBsb2FkZXI6IFNlYXJjaEFzWW91VHlwZUxvYWRlciA9IHsgc2hpbW1lclJvd3M6IFtdIH07XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgNTsgaSsrKSB7XG4gICAgY29uc3Qgcm93ID0ge1xuICAgICAga2V5OiBgJHtrZXl9OiR7aX1gLFxuICAgICAgc2hpbW1lcnM6IFtdIGFzIHsga2V5OiBzdHJpbmc7IHdpZHRoOiBudW1iZXIgfVtdLFxuICAgIH07XG4gICAgY29uc3Qgd29yZHMgPSBNYXRoLmNlaWwoTWF0aC5yYW5kb20oKSAqIDMpO1xuICAgIGZvciAobGV0IGogPSAwOyBqIDwgd29yZHM7IGorKykge1xuICAgICAgY29uc3Qgd2lkdGggPSAxMiArIE1hdGgucm91bmQoTWF0aC5yYW5kb20oKSAqIDk2KTtcbiAgICAgIHJvdy5zaGltbWVycy5wdXNoKHtcbiAgICAgICAga2V5OiBgJHtrZXl9OiR7an1gLFxuICAgICAgICB3aWR0aCxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBsb2FkZXIuc2hpbW1lclJvd3MucHVzaChyb3cpO1xuICB9XG4gIHJldHVybiBsb2FkZXI7XG59XG5cbmV4cG9ydCBjb25zdCBTZWFyY2hQYW5lOiBSZWFjdC5GQzxTZWFyY2hQYW5lUHJvcHM+ID0gKHtcbiAgb25TZWFyY2gsXG4gIG9uVHJhY2tpbmdDbGljayxcbiAgc2VhcmNoQnV0dG9uUmVmLFxuICB0b2dnbGVTZWFyY2gsXG4gIG9uU2VhcmNoQXNZb3VUeXBlLFxufSkgPT4ge1xuICBjb25zdCB0aGVtZSA9IHVzZVRoZW1lKCk7XG4gIGNvbnN0IFt2YWx1ZSwgc2V0VmFsdWVdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCBpbnB1dFJlZiA9IHVzZVJlZjxIVE1MSW5wdXRFbGVtZW50PihudWxsKTtcbiAgY29uc3QgW2F1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zLCBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9uc10gPSB1c2VTdGF0ZTxcbiAgICBBdXRvY29tcGxldGVTdWdnZXN0aW9uW11cbiAgPihbXSk7XG4gIGNvbnN0IFtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLCBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzXSA9XG4gICAgdXNlU3RhdGU8U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyB8IG51bGw+KG51bGwpO1xuXG4gIGNvbnN0IFtzZWFyY2hSZXN1bHRDbGlja2VkLCBzZXRTZWFyY2hSZXN1bHRDbGlja2VkXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICBjb25zdCB7IHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zIH0gPSB1c2VTZWFyY2hUcmFja2luZ0NvbnRleHQoKTtcblxuICBjb25zdCBzZWFyY2hBc1lvdVR5cGVMb2FkZXIgPSBSZWFjdC51c2VNZW1vKFxuICAgICgpID0+IChzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsID8gcm5kTG9hZGVyKCkgOiBudWxsKSxcbiAgICBbc2VhcmNoQXNZb3VUeXBlUmVzdWx0c11cbiAgKTtcblxuICBjb25zdCB2YWx1ZVRyaW1tZWQgPSB2YWx1ZS50cmltKCk7XG5cbiAgY29uc3QgaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrID1cbiAgICBvblNlYXJjaEFzWW91VHlwZSAmJiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzICYmICFzZWFyY2hSZXN1bHRDbGlja2VkO1xuXG4gIGNvbnN0IGNsb3NlU2VhcmNoID0gYXN5bmMgKCkgPT4ge1xuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCB3aGVuIHVzZXIgbWFkZSBhIHNlYXJjaCBhbmQgdGhlbiBjbG9zZWQgc2VhcmNoIHBhbmVcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIGF3YWl0IHRvZ2dsZVNlYXJjaCgpO1xuICAgIC8vIGFkZHMgYSBsaXR0bGUgZGVsYXkgYmV0d2VlbiBjbG9zaW5nIHRoZSBzZWFyY2ggcGFuZSBhbmQgZm9jdXNpbmcgb24gdGhlIGJ1dHRvblxuICAgIC8vIHRvIHByZXZlbnQgdGhlIHNlYXJjaCBwYW5lIGZyb20gaW1tZWRpYXRlbHkgb3BlbmluZyBhZ2FpblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHNlYXJjaEJ1dHRvblJlZiAmJiBzZWFyY2hCdXR0b25SZWY/LmN1cnJlbnQpIHtcbiAgICAgICAgc2VhcmNoQnV0dG9uUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICB9XG4gICAgfSwgMTApO1xuICB9O1xuXG4gIGNvbnN0IG9uS2V5RG93biA9IHVzZU9uRXNjSGFuZGxlcihjbG9zZVNlYXJjaCk7XG5cbiAgY29uc3Qgb25Nb3VzZURvd25PdXRzaWRlID0gKHsgdGFyZ2V0IH06IE1vdXNlRXZlbnQpID0+IHtcbiAgICBjb25zdCBoYW5kbGVPdXRzaWRlQ2xpY2sgPSAoKSA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgICFkb2N1bWVudFxuICAgICAgICAgIC5xdWVyeVNlbGVjdG9yKCdbZGF0YS10ZXN0aWQ9XCJoZWFkZXItc2VhcmNoLWRyb3Bkb3duXCJdJylcbiAgICAgICAgICA/LmNvbnRhaW5zKHRhcmdldCBhcyBIVE1MRWxlbWVudCkgJiZcbiAgICAgICAgdGFyZ2V0ICE9PSBzZWFyY2hCdXR0b25SZWY/LmN1cnJlbnRcbiAgICAgICkge1xuICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgfVxuXG4gICAgICB0YXJnZXQ/LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBoYW5kbGVPdXRzaWRlQ2xpY2spO1xuICAgIH07XG5cbiAgICB0YXJnZXQ/LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBoYW5kbGVPdXRzaWRlQ2xpY2spO1xuICB9O1xuXG4gIGNvbnN0IG5hdmlnYXRlVG9TZWFyY2ggPSAoc2VhcmNoVGVybTogc3RyaW5nLCBmcm9tUHJldlNlYXJjaD86IHN0cmluZykgPT4ge1xuICAgIG9uU2VhcmNoKHNlYXJjaFRlcm0sIGZyb21QcmV2U2VhcmNoKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVDaGFuZ2U6IFJlYWN0LkNoYW5nZUV2ZW50SGFuZGxlcjxIVE1MSW5wdXRFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICBzZXRWYWx1ZShldnQudGFyZ2V0LnZhbHVlKTtcbiAgICAvLyByZXNldCB0byBmYWxzZSB3aGVuIHRoZSBzZWFyY2ggcXVlcnkgY2hhbmdlc1xuICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQoZmFsc2UpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVN1Ym1pdDogUmVhY3QuRm9ybUV2ZW50SGFuZGxlciA9IChldmVudCkgPT4ge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgd2hlbiB0aGUgdXNlciBzdWJtaXRzIHRoZSBmb3JtIHRvIGNhcHR1cmUgY29tcGxldGUgcXVlcnlcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIG5hdmlnYXRlVG9TZWFyY2godmFsdWUsIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkKTtcbiAgfTtcblxuICBjb25zdCBjbGVhcklucHV0ID0gKCkgPT4ge1xuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCBiZWZvcmUgdXNlciBjbGVhcnMgaW5wdXRcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIHNldFZhbHVlKCcnKTtcbiAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhbXSk7XG4gICAgLy8gcmVzZXQgdGhlIGNvbnRleHQgd2l0aCBlbXB0eSB2YWx1ZXNcbiAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICBxdWVyeTogJycsXG4gICAgICBzZWFyY2hJZDogJycsXG4gICAgICByZXN1bHRzQ291bnQ6IDAsXG4gICAgICBxdWVyeUxvYWRUaW1lOiAwLFxuICAgIH0pO1xuICB9O1xuXG4gIC8vIHdoZW4gdGhlIGN1cnJlbnQgVVJMIGNoYW5nZXMsIHdlIHdhbnQgdG8gY2xvc2UgdGhlIHNlYXJjaCBwYW5lIGlmIGl0J3Mgb3BlblxuICAvLyBhbmQgdHJhY2sgc2VhcmNoIGV2ZW50IGlmIHVzZXIgbWFkZSBhIHNlYXJjaFxuICB1c2VVcmxDaGFuZ2VEZXRlY3Rpb24oe1xuICAgIG9uVXJsQ2hhbmdlOiAoKSA9PiB7XG4gICAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgICAgfVxuXG4gICAgICB0b2dnbGVTZWFyY2goKTtcbiAgICB9LFxuICB9KTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIC8vIGRvbid0IHRyYWNrIGlmIGEgcmVzdWx0IHdhcyBjbGlja2VkIG9yIGlmIHdlIGRvbid0IGhhdmUgc2VhcmNoIHJlc3VsdHNcbiAgICBpZiAoXG4gICAgICBzZWFyY2hSZXN1bHRDbGlja2VkIHx8XG4gICAgICAhb25TZWFyY2hBc1lvdVR5cGUgfHxcbiAgICAgICFzZWFyY2hBc1lvdVR5cGVSZXN1bHRzIHx8XG4gICAgICAhdmFsdWVUcmltbWVkLmxlbmd0aFxuICAgIClcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11c2VsZXNzLXJldHVyblxuICAgICAgcmV0dXJuO1xuICB9LCBbXG4gICAgc2VhcmNoUmVzdWx0Q2xpY2tlZCxcbiAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLFxuICAgIHZhbHVlVHJpbW1lZCxcbiAgICBvblNlYXJjaEFzWW91VHlwZSxcbiAgXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpbnB1dFJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgIHNlYXJjaFdvcmtlci5pbml0KCk7XG4gIH0sIFtdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghdmFsdWVUcmltbWVkLmxlbmd0aCkge1xuICAgICAgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyhudWxsKTtcbiAgICAgIHNldEF1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zKFtdKTtcbiAgICAgIHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zKHtcbiAgICAgICAgcXVlcnk6ICcnLFxuICAgICAgICBzZWFyY2hJZDogJycsXG4gICAgICAgIHJlc3VsdHNDb3VudDogMCxcbiAgICAgICAgcXVlcnlMb2FkVGltZTogMCxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBjYW5jZWwgPSBmYWxzZTtcbiAgICBsZXQgY2xlYXJBdXRvY29tcGxldGUgPSB0cnVlO1xuICAgIGxldCBjbGVhclNlYXJjaEFzWW91VHlwZSA9IHRydWU7XG5cbiAgICBsZXQgc2VhcmNoRXZlbnROb1Jlc3VsdERlbGF5OiBOb2RlSlMuVGltZW91dDtcblxuICAgIGNvbnN0IGxvYWRlckRlbGF5ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAvKlxuICAgICAgICogV2FpdCAxMCBtaWxsaXNlY29uZHMgdG8gZ2V0IGEgcmVzcG9uc2UgZm9yIHdvcmtlciBiZWZvcmUgc2hvd2luZyBsb2FkZXJzLlxuICAgICAgICogVGhpcyBwcmV2ZW50cyBmbGlja2VyaW5nIGxvYWRlcnMgb24gcXVpY2sgb3IgY2FjaGVkIHJlc3VsdHMuXG4gICAgICAgKi9cbiAgICAgIGlmIChjYW5jZWwpIHJldHVybjtcbiAgICAgIGlmIChjbGVhckF1dG9jb21wbGV0ZSkgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgICAgaWYgKGNsZWFyU2VhcmNoQXNZb3VUeXBlKSBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKG51bGwpO1xuICAgIH0sIDEwKTtcblxuICAgIHNlYXJjaFdvcmtlci5hdXRvY29tcGxldGUodmFsdWVUcmltbWVkKS50aGVuKChzdWdnZXN0aW9ucykgPT4ge1xuICAgICAgY2xlYXJBdXRvY29tcGxldGUgPSBmYWxzZTtcblxuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuOyAvLyB0ZXh0IGhhcyBjaGFuZ2VkIHNpbmNlIHRoaXMgcmVxdWVzdCB3YXMgbWFkZVxuXG4gICAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhzdWdnZXN0aW9ucyk7XG4gICAgfSk7XG5cbiAgICBzZWFyY2hXb3JrZXIuc2VhcmNoQXNZb3VUeXBlKHZhbHVlVHJpbW1lZCkudGhlbigocmVzdWx0cykgPT4ge1xuICAgICAgY2xlYXJTZWFyY2hBc1lvdVR5cGUgPSBmYWxzZTtcblxuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuOyAvLyB0ZXh0IGhhcyBjaGFuZ2VkIHNpbmNlIHRoaXMgcmVxdWVzdCB3YXMgbWFkZVxuXG4gICAgICBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKHJlc3VsdHMpO1xuXG4gICAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICAgIHF1ZXJ5OiByZXN1bHRzLnF1ZXJ5LFxuICAgICAgICBzZWFyY2hJZDogcmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgcmVzdWx0c0NvdW50OiByZXN1bHRzLnRvcC5sZW5ndGgsXG4gICAgICAgIHF1ZXJ5TG9hZFRpbWU6IHJlc3VsdHMucXVlcnlMb2FkVGltZSxcbiAgICAgIH0pO1xuXG4gICAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgd2l0aCBhIHNtYWxsIGRlbGF5IHdoZW4gdGhlcmUgYXJlIG5vIHJlc3VsdHNcbiAgICAgIGlmIChcbiAgICAgICAgb25TZWFyY2hBc1lvdVR5cGUgJiZcbiAgICAgICAgcmVzdWx0cy50b3AubGVuZ3RoID09PSAwICYmXG4gICAgICAgICFzZWFyY2hSZXN1bHRDbGlja2VkXG4gICAgICApIHtcbiAgICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHF1ZXJ5TG9hZFRpbWUgfSA9IHJlc3VsdHM7XG4gICAgICAgIHNlYXJjaEV2ZW50Tm9SZXN1bHREZWxheSA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIGlmICghY2FuY2VsKSB7XG4gICAgICAgICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIDAsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSwgMzAwKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjYW5jZWwgPSB0cnVlO1xuICAgICAgY2xlYXJUaW1lb3V0KGxvYWRlckRlbGF5KTtcbiAgICAgIGNsZWFyVGltZW91dChzZWFyY2hFdmVudE5vUmVzdWx0RGVsYXkpO1xuICAgIH07XG4gIH0sIFtcbiAgICB2YWx1ZVRyaW1tZWQsXG4gICAgb25TZWFyY2hBc1lvdVR5cGUsXG4gICAgc2VhcmNoUmVzdWx0Q2xpY2tlZCxcbiAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyxcbiAgXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPEJveFxuICAgICAgICBhcmlhLWhpZGRlblxuICAgICAgICBiZz1cInNoYWRvdy1zZWNvbmRhcnlcIlxuICAgICAgICBoZWlnaHQ9XCIxMDB2aFwiXG4gICAgICAgIHBvc2l0aW9uPVwiZml4ZWRcIlxuICAgICAgICAvLyBXZSBhZGQgNnJlbSBoZXJlIGluIGNhc2UgdGhlcmUncyBzb21lIHNvcnQgb2YgYnJhbmRlZCBiYW5uZXIgYWJvdmUgc2VhcmNoXG4gICAgICAgIC8vIFRoZSBzZWFyY2ggYXJlYSBpcyBtdWNoIHRhbGxlciB0aGFuIDZyZW0gc28gdGhpcyBpcyBhIHNhZmUgYW1vdW50IG9mIHBhZGRpbmdcbiAgICAgICAgdG9wPXtgY2FsYygke3RoZW1lLmVsZW1lbnRzLmhlYWRlckhlaWdodH0gKyA2cmVtKWB9XG4gICAgICAgIHdpZHRoPXsxfVxuICAgICAgLz5cbiAgICAgIDxGb2N1c1RyYXBcbiAgICAgICAgb25Fc2NhcGVLZXk9e2Nsb3NlU2VhcmNofVxuICAgICAgICBvbkNsaWNrT3V0c2lkZT17b25Nb3VzZURvd25PdXRzaWRlfVxuICAgICAgICBhbGxvd1BhZ2VJbnRlcmFjdGlvblxuICAgICAgPlxuICAgICAgICA8Qm94XG4gICAgICAgICAgYmc9XCJiYWNrZ3JvdW5kXCJcbiAgICAgICAgICBib3JkZXJDb2xvckJvdHRvbT1cImJvcmRlci1wcmltYXJ5XCJcbiAgICAgICAgICBib3JkZXJDb2xvclRvcD1cImJvcmRlci10ZXJ0aWFyeVwiXG4gICAgICAgICAgYm9yZGVyU3R5bGU9XCJzb2xpZFwiXG4gICAgICAgICAgYm9yZGVyV2lkdGg9XCIycHggMCAxcHhcIlxuICAgICAgICAgIGRhdGEtdGVzdGlkPVwiaGVhZGVyLXNlYXJjaC1kcm9wZG93blwiXG4gICAgICAgICAgcG9zaXRpb249e3sgXzogJ2ZpeGVkJywgbWQ6ICdhYnNvbHV0ZScgfX1cbiAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgIG1heEhlaWdodD17eyBfOiAnY2FsYygxMDB2aCAtIDYzcHgpJywgbWQ6ICdjYWxjKDEwMHZoIC0gODBweCknIH19XG4gICAgICAgICAgb3ZlcmZsb3c9XCJhdXRvXCJcbiAgICAgICAgICB6SW5kZXg9ezEwfSAvLyBlbnN1cmUgZHJvcGRvd24gaXMgYWJvdmUgdGhlIHBhZ2UgY29udGVudFxuICAgICAgICA+XG4gICAgICAgICAgPEJveCBib3JkZXI9XCJub25lXCIgd2lkdGg9XCJhdXRvXCI+XG4gICAgICAgICAgICA8UXVlcnlDb250YWluZXI+XG4gICAgICAgICAgICAgIDxGbGV4Qm94XG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImJhc2VsaW5lXCJcbiAgICAgICAgICAgICAgICBib3JkZXJDb2xvcj1cImdyYXktNjAwXCJcbiAgICAgICAgICAgICAgICBib3JkZXJTdHlsZUJvdHRvbT1cInNvbGlkXCJcbiAgICAgICAgICAgICAgICBib3JkZXJXaWR0aEJvdHRvbT1cIjFweFwiXG4gICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTZWFyY2hJY29uXG4gICAgICAgICAgICAgICAgICBoZWlnaHQ9e3sgXzogMjAsIG1kOiAyNCB9fVxuICAgICAgICAgICAgICAgICAgd2lkdGg9e3sgXzogMjAsIG1kOiAyNCB9fVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPEZvcm1cbiAgICAgICAgICAgICAgICAgIGFjdGlvbj1cIi9zZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgaWQ9XCJzZWFyY2gtZm9ybVwiXG4gICAgICAgICAgICAgICAgICBtbD17OH1cbiAgICAgICAgICAgICAgICAgIG9uU3VibWl0PXtoYW5kbGVTdWJtaXR9XG4gICAgICAgICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxTdHlsZWRJbnB1dFxuICAgICAgICAgICAgICAgICAgICBhdXRvRm9jdXNcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZD1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICBib3JkZXI9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgZm9udFNpemU9e3sgXzogMjAsIG1kOiAyNiB9fVxuICAgICAgICAgICAgICAgICAgICBmb250V2VpZ2h0PVwiYm9sZFwiXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiaGVhZGVyLXNlYXJjaC1iYXJcIlxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwicXVlcnlcIlxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhlKSA9PiBvbktleURvd24oZSl9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtzZWFyY2hQbGFjZWhvbGRlcn1cbiAgICAgICAgICAgICAgICAgICAgcmVmPXtpbnB1dFJlZn1cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgICAgICAgYXV0b0NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9Gb3JtPlxuICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICBpY29uPXtNaW5pRGVsZXRlSWNvbn1cbiAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJDbGVhciBzZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgdGlwPVwiQ2xlYXIgc2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgIHRpcFByb3BzPXt7XG4gICAgICAgICAgICAgICAgICAgIGFsaWdubWVudDogJ2JvdHRvbS1jZW50ZXInLFxuICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ6ICdmbG9hdGluZycsXG4gICAgICAgICAgICAgICAgICAgIG5hcnJvdzogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgekluZGV4OiAyLFxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2NsZWFySW5wdXR9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvRmxleEJveD5cbiAgICAgICAgICAgIDwvUXVlcnlDb250YWluZXI+XG4gICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgPFN1Z2dlc3Rpb25Db250YWluZXI+XG4gICAgICAgICAgICB7dmFsdWVUcmltbWVkLmxlbmd0aCA+IDAgPyAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgPEZsZXhCb3ggZmxleERpcmVjdGlvbj1cImNvbHVtblwiIGFzPVwidWxcIiBsaXN0U3R5bGU9XCJub25lXCIgcD17MH0+XG4gICAgICAgICAgICAgICAgICB7YXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMubWFwKChzLCBpKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgIDxJbmxpbmVSZXN1bHRMaVxuICAgICAgICAgICAgICAgICAgICAgIGtleT17cy50aXRsZX1cbiAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhldnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnYXV0b2NvbXBsZXRlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzLnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdhdXRvY29tcGxldGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzLnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxTZW1pYm9sZFNlYXJjaEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgIG1iPXsyIGFzIDB9XG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPXsxNH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZVdpZHRoPXs4fVxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgICAgICAgICAgICAgICAgIG1yPXsxMn1cbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxIaWdobGlnaHRlZFRleHQgc3VnZ2VzdGlvbj17c30gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9JbmxpbmVSZXN1bHRMaT5cbiAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgIDwvRmxleEJveD5cbiAgICAgICAgICAgICAgICB7KHNlYXJjaEFzWW91VHlwZVJlc3VsdHMgPT09IG51bGwgfHxcbiAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMudG9wLmxlbmd0aCA+IDApICYmIChcbiAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgIDxUZXh0IGFzPVwiaDJcIiBmb250U2l6ZT17MjB9IG1iPXsxNn0gbXQ9ezI0fT5cbiAgICAgICAgICAgICAgICAgICAgICBUb3AgcmVzdWx0c1xuICAgICAgICAgICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgICAgICAgICAgIDxGbGV4Qm94XG4gICAgICAgICAgICAgICAgICAgICAgZmxleERpcmVjdGlvbj1cImNvbHVtblwiXG4gICAgICAgICAgICAgICAgICAgICAgYXM9XCJ1bFwiXG4gICAgICAgICAgICAgICAgICAgICAgbGlzdFN0eWxlPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgcD17MH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHNlYXJjaEFzWW91VHlwZUxvYWRlcj8uc2hpbW1lclJvd3MubWFwKChyKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPElubGluZUxvYWRlckxpIGtleT17ci5rZXl9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3Iuc2hpbW1lcnMubWFwKCh3b3JkKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTaGltbWVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PXszMH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBweT17OCBhcyAwfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17d29yZC5rZXl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9e3dvcmQud2lkdGh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCb3hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udEZhbWlseT1cImFjY2VudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRDb2xvcj1cInRleHQtc2Vjb25kYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udFNpemU9e3sgXzogMTAgYXMgMTYgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyQ29sb3I9XCJib3JkZXItc2Vjb25kYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyPXsxfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJSYWRpdXM9XCJ4bFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB4PXsxNn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eT17MC4xfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbmJzcDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSW5saW5lTG9hZGVyTGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICkpXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMudG9wLm1hcCgocywgaSkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbmxpbmVSZXN1bHRMaVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtgJHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy5xdWVyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfToke2kudG9TdHJpbmcoKX1gfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiSW5kZXg9ezB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwibGlua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhldnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV2dC5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnc2VhcmNoX2FzX3lvdV90eXBlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsdWc6IHMuc2x1ZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLihzLmNvbnRlbnRJZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHsgY29udGVudF9pZDogcy5jb250ZW50SWQgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhZmVseVJlZGlyZWN0KHMudXJsUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnc2VhcmNoX2FzX3lvdV90eXBlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2x1Zzogcy5zbHVnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLihzLmNvbnRlbnRJZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7IGNvbnRlbnRfaWQ6IHMuY29udGVudElkIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2FmZWx5UmVkaXJlY3Qocy51cmxQYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEhpZ2hsaWdodGVkVGV4dCBzdWdnZXN0aW9uPXtzfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJhZGdlIHNpemU9XCJzbVwiIHZhcmlhbnQ9XCJ0ZXJ0aWFyeVwiIG1sPXsxMn0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtzLnR5cGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0JhZGdlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSW5saW5lUmVzdWx0TGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIHtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy50b3AubGVuZ3RoID09PSAwICYmIChcbiAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgIDxCb3ggZm9udFNpemU9e3sgXzogMjAsIHNtOiAyNiB9fSBtdD17MH0gbWI9ezQ4fT5cbiAgICAgICAgICAgICAgICAgICAgICB7YFdlIGNvdWxkbid0IGZpbmQgYSBtYXRjaCBmb3IgYH1cbiAgICAgICAgICAgICAgICAgICAgICA8VGV4dCBmb250V2VpZ2h0PVwiYm9sZFwiPntgXCIke3ZhbHVlVHJpbW1lZH0uXCJgfTwvVGV4dD5cbiAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAnIFRyeSBhbm90aGVyIGtleXdvcmQsIG9yIHNlZSB3aGF0IG91ciBtZW1iZXJzIGFyZSBsZWFybmluZy4nXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICAgICAgPE1lbnUgYm9yZGVyPVwibm9uZVwiIHZhcmlhbnQ9XCJwb3BvdmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPFBvcHVsYXJDb250ZW50IG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfSAvPlxuICAgICAgICAgICAgICAgICAgICA8L01lbnU+XG4gICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxNZW51IGJvcmRlcj1cIm5vbmVcIiB2YXJpYW50PVwicG9wb3ZlclwiPlxuICAgICAgICAgICAgICAgIDxQb3B1bGFyU2VhcmNoZXNcbiAgICAgICAgICAgICAgICAgIG5hdmlnYXRlVG9TZWFyY2g9e25hdmlnYXRlVG9TZWFyY2h9XG4gICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxQb3B1bGFyQ29udGVudCBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja30gLz5cbiAgICAgICAgICAgICAgPC9NZW51PlxuICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgeyEhc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8udG9wLmxlbmd0aCAmJiAoXG4gICAgICAgICAgICAgIDxTdHJva2VCdXR0b25cbiAgICAgICAgICAgICAgICBteT17MTZ9XG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCd2aWV3X2FsbF9yZXN1bHRzJywge1xuICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgIG5hdmlnYXRlVG9TZWFyY2godmFsdWUsIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkKTtcbiAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIFZpZXcgYWxsIHJlc3VsdHNcbiAgICAgICAgICAgICAgPC9TdHJva2VCdXR0b24+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgPFF1aXpBbmRIZWxwQ2VudGVyTGlua3NcbiAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9XG4gICAgICAgICAgICAgIGhhbmRsZUNsb3NlRHJvcGRvd249e2Nsb3NlU2VhcmNofVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L1N1Z2dlc3Rpb25Db250YWluZXI+XG4gICAgICAgIDwvQm94PlxuICAgICAgPC9Gb2N1c1RyYXA+XG4gICAgPC8+XG4gICk7XG59O1xuIl19 */");
|
|
73
|
+
}), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvU2VhcmNoL1NlYXJjaFBhbmUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWdFdUIiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL0FwcEhlYWRlci9TZWFyY2gvU2VhcmNoUGFuZS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYWRnZSxcbiAgQm94LFxuICBDb250ZW50Q29udGFpbmVyLFxuICBGbGV4Qm94LFxuICBGb2N1c1RyYXAsXG4gIEljb25CdXR0b24sXG4gIE1lbnUsXG4gIE1lbnVJdGVtLFxuICBTaGltbWVyLFxuICBTdHJva2VCdXR0b24sXG4gIFRleHQsXG59IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCB7IE1pbmlEZWxldGVJY29uLCBTZWFyY2hJY29uIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtaWNvbnMnO1xuaW1wb3J0IHsgY3NzLCB0aGVtZSwgdXNlQ3VycmVudE1vZGUgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IHVzZU9uRXNjSGFuZGxlciB9IGZyb20gJy4uL3NoYXJlZCc7XG5pbXBvcnQgeyBzZWFyY2hQbGFjZWhvbGRlciB9IGZyb20gJy4vY29uc3RzJztcbmltcG9ydCB7IFBvcHVsYXJDb250ZW50LCBQb3B1bGFyU2VhcmNoZXMgfSBmcm9tICcuL0RlZmF1bHRSZXN1bHRzJztcbmltcG9ydCB7IHVzZVVybENoYW5nZURldGVjdGlvbiB9IGZyb20gJy4vaG9va3MvdXNlVXJsQ2hhbmdlRGV0ZWN0aW9uJztcbmltcG9ydCB7IFF1aXpBbmRIZWxwQ2VudGVyTGlua3MgfSBmcm9tICcuL1F1aXpBbmRIZWxwQ2VudGVyTGlua3MnO1xuaW1wb3J0IHsgc2FmZWx5UmVkaXJlY3QgfSBmcm9tICcuL3NhZmVseVJlZGlyZWN0JztcbmltcG9ydCB7IHVzZVNlYXJjaFRyYWNraW5nQ29udGV4dCB9IGZyb20gJy4vU2VhcmNoVHJhY2tpbmdQcm92aWRlcic7XG5pbXBvcnQgeyBzZWFyY2hXb3JrZXIgfSBmcm9tICcuL1NlYXJjaFdvcmtlcic7XG5pbXBvcnQgdHlwZSB7XG4gIEF1dG9jb21wbGV0ZVN1Z2dlc3Rpb24sXG4gIFNlYXJjaEFzWW91VHlwZVJlc3VsdHMsXG59IGZyb20gJy4vU2VhcmNoV29ya2VyL3R5cGVzJztcbmltcG9ydCB7IFNlYXJjaFBhbmVQcm9wcyB9IGZyb20gJy4vdHlwZXMnO1xuXG5jb25zdCBGb3JtID0gQm94LndpdGhDb21wb25lbnQoJ2Zvcm0nKTtcbmNvbnN0IElucHV0ID0gQm94LndpdGhDb21wb25lbnQoJ2lucHV0Jyk7XG5cbmNvbnN0IFF1ZXJ5Q29udGFpbmVyID0gc3R5bGVkKENvbnRlbnRDb250YWluZXIpKFxuICBjc3Moe1xuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICB3aWR0aDogJzEwMCUnLFxuICAgIHB0OiAxNixcbiAgICBwYjogeyBfOiAwLCBtZDogMjQgfSxcbiAgICBweDogeyBfOiAyNCB9LFxuICB9KVxuKTtcblxuY29uc3QgU3VnZ2VzdGlvbkNvbnRhaW5lciA9IHN0eWxlZChDb250ZW50Q29udGFpbmVyKShcbiAgY3NzKHtcbiAgICBwdDogMTYsXG4gICAgcGI6IHsgXzogMCwgbWQ6IDI0IH0sXG4gICAgcHg6IHsgXzogMjQgfSxcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZElucHV0ID0gc3R5bGVkKElucHV0KShcbiAgY3NzKHtcbiAgICBvdXRsaW5lOiBgbm9uZWAsXG4gICAgJyY6OnBsYWNlaG9sZGVyJzoge1xuICAgICAgdGV4dENvbG9yOiB0aGVtZS5jb2xvcnNbJ3RleHQtc2Vjb25kYXJ5J10gYXMgbmV2ZXIsXG4gICAgfSxcbiAgfSlcbik7XG5cbmNvbnN0IElubGluZVJlc3VsdExpID0gc3R5bGVkKE1lbnVJdGVtKShcbiAgY3NzKHtcbiAgICBwbDogMCxcbiAgICBweTogOCxcbiAgICBmb250U2l6ZTogMTYsXG4gICAgJyY6Zm9jdXMtdmlzaWJsZTphZnRlcic6IHtcbiAgICAgIGxlZnQ6IC00LFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBJbmxpbmVMb2FkZXJMaSA9IHN0eWxlZC5saShcbiAgY3NzKHtcbiAgICBsaXN0U3R5bGVUeXBlOiAnbm9uZScsXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGdhcDogMTIsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gIH0pXG4pO1xuXG5leHBvcnQgY29uc3QgU2VtaWJvbGRTZWFyY2hJY29uID0gc3R5bGVkKFNlYXJjaEljb24pYFxuICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuICBjaXJjbGUsXG4gIHBhdGgge1xuICAgIHN0cm9rZS13aWR0aDogMnB4O1xuICB9XG4gIHJlY3Qge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0ycHgsIC0ycHgpO1xuICAgIGhlaWdodDogY2FsYygxMDAlICsgNHB4KTtcbiAgICB3aWR0aDogY2FsYygxMDAlICsgNHB4KTtcbiAgfVxuYDtcblxuY29uc3QgRWxsaXBzaXNCb3ggPSBzdHlsZWQoQm94KWBcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5gO1xuXG5jb25zdCBIaWdobGlnaHRlZFRleHQgPSAoe1xuICBzdWdnZXN0aW9uOiB7IHRpdGxlLCBzZWdtZW50cyB9LFxufToge1xuICBzdWdnZXN0aW9uOiBBdXRvY29tcGxldGVTdWdnZXN0aW9uO1xufSkgPT4ge1xuICBjb25zdCBtb2RlID0gdXNlQ3VycmVudE1vZGUoKTtcbiAgY29uc3QgaGlnaGxpZ2h0Q29sb3IgPSBtb2RlID09PSAnZGFyaycgPyAnaHlwZXInIDogJ3llbGxvdyc7XG5cbiAgcmV0dXJuIChcbiAgICA8RmxleEJveD5cbiAgICAgIDxFbGxpcHNpc0JveFxuICAgICAgICBtYXhXaWR0aD1cImNhbGMoMTAwdncgLSAxMjhweClcIlxuICAgICAgICB3aGl0ZVNwYWNlPVwicHJlXCJcbiAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgb3ZlcmZsb3c9XCJoaWRkZW5cIlxuICAgICAgPlxuICAgICAgICB7c2VnbWVudHMubWFwKChzZWdtZW50LCBpKSA9PiAoXG4gICAgICAgICAgPFRleHRcbiAgICAgICAgICAgIGtleT17YCR7dGl0bGV9OiR7aS50b1N0cmluZygpfWB9XG4gICAgICAgICAgICBsaW5lSGVpZ2h0PVwidGl0bGVcIlxuICAgICAgICAgICAgey4uLihzZWdtZW50LmhpZ2hsaWdodFxuICAgICAgICAgICAgICA/IHsgYmc6IGhpZ2hsaWdodENvbG9yLCBmb250V2VpZ2h0OiAnYm9sZCcgfVxuICAgICAgICAgICAgICA6IHt9KX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7c2VnbWVudC52YWx1ZX1cbiAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICkpfVxuICAgICAgPC9FbGxpcHNpc0JveD5cbiAgICAgIDxUZXh0IHNjcmVlbnJlYWRlcj57dGl0bGV9PC9UZXh0PlxuICAgIDwvRmxleEJveD5cbiAgKTtcbn07XG5cbnR5cGUgU2VhcmNoQXNZb3VUeXBlTG9hZGVyID0ge1xuICBzaGltbWVyUm93czoge1xuICAgIGtleTogc3RyaW5nO1xuICAgIHNoaW1tZXJzOiB7XG4gICAgICBrZXk6IHN0cmluZztcbiAgICAgIHdpZHRoOiBudW1iZXI7XG4gICAgfVtdO1xuICB9W107XG59O1xuXG5sZXQgbG9hZGVyS2V5ID0gMDtcbmZ1bmN0aW9uIHJuZExvYWRlcigpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBsdXNwbHVzXG4gIGNvbnN0IGtleSA9IGxvYWRlcktleSsrO1xuICBjb25zdCBsb2FkZXI6IFNlYXJjaEFzWW91VHlwZUxvYWRlciA9IHsgc2hpbW1lclJvd3M6IFtdIH07XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgNTsgaSsrKSB7XG4gICAgY29uc3Qgcm93ID0ge1xuICAgICAga2V5OiBgJHtrZXl9OiR7aX1gLFxuICAgICAgc2hpbW1lcnM6IFtdIGFzIHsga2V5OiBzdHJpbmc7IHdpZHRoOiBudW1iZXIgfVtdLFxuICAgIH07XG4gICAgY29uc3Qgd29yZHMgPSBNYXRoLmNlaWwoTWF0aC5yYW5kb20oKSAqIDMpO1xuICAgIGZvciAobGV0IGogPSAwOyBqIDwgd29yZHM7IGorKykge1xuICAgICAgY29uc3Qgd2lkdGggPSAxMiArIE1hdGgucm91bmQoTWF0aC5yYW5kb20oKSAqIDk2KTtcbiAgICAgIHJvdy5zaGltbWVycy5wdXNoKHtcbiAgICAgICAga2V5OiBgJHtrZXl9OiR7an1gLFxuICAgICAgICB3aWR0aCxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBsb2FkZXIuc2hpbW1lclJvd3MucHVzaChyb3cpO1xuICB9XG4gIHJldHVybiBsb2FkZXI7XG59XG5cbmV4cG9ydCBjb25zdCBTZWFyY2hQYW5lOiBSZWFjdC5GQzxTZWFyY2hQYW5lUHJvcHM+ID0gKHtcbiAgb25TZWFyY2gsXG4gIG9uVHJhY2tpbmdDbGljayxcbiAgc2VhcmNoQnV0dG9uUmVmLFxuICB0b2dnbGVTZWFyY2gsXG4gIG9uU2VhcmNoQXNZb3VUeXBlLFxufSkgPT4ge1xuICBjb25zdCB0aGVtZSA9IHVzZVRoZW1lKCk7XG4gIGNvbnN0IFt2YWx1ZSwgc2V0VmFsdWVdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCBpbnB1dFJlZiA9IHVzZVJlZjxIVE1MSW5wdXRFbGVtZW50PihudWxsKTtcbiAgY29uc3QgW2F1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zLCBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9uc10gPSB1c2VTdGF0ZTxcbiAgICBBdXRvY29tcGxldGVTdWdnZXN0aW9uW11cbiAgPihbXSk7XG4gIGNvbnN0IFtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLCBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzXSA9XG4gICAgdXNlU3RhdGU8U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyB8IG51bGw+KG51bGwpO1xuXG4gIGNvbnN0IFtzZWFyY2hSZXN1bHRDbGlja2VkLCBzZXRTZWFyY2hSZXN1bHRDbGlja2VkXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICBjb25zdCB7IHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zIH0gPSB1c2VTZWFyY2hUcmFja2luZ0NvbnRleHQoKTtcblxuICBjb25zdCBzZWFyY2hBc1lvdVR5cGVMb2FkZXIgPSBSZWFjdC51c2VNZW1vKFxuICAgICgpID0+IChzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsID8gcm5kTG9hZGVyKCkgOiBudWxsKSxcbiAgICBbc2VhcmNoQXNZb3VUeXBlUmVzdWx0c11cbiAgKTtcblxuICBjb25zdCB2YWx1ZVRyaW1tZWQgPSB2YWx1ZS50cmltKCk7XG5cbiAgY29uc3QgaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrID1cbiAgICBvblNlYXJjaEFzWW91VHlwZSAmJiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzICYmICFzZWFyY2hSZXN1bHRDbGlja2VkO1xuXG4gIGNvbnN0IGNsb3NlU2VhcmNoID0gYXN5bmMgKCkgPT4ge1xuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCB3aGVuIHVzZXIgbWFkZSBhIHNlYXJjaCBhbmQgdGhlbiBjbG9zZWQgc2VhcmNoIHBhbmVcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIGF3YWl0IHRvZ2dsZVNlYXJjaCgpO1xuICAgIC8vIGFkZHMgYSBsaXR0bGUgZGVsYXkgYmV0d2VlbiBjbG9zaW5nIHRoZSBzZWFyY2ggcGFuZSBhbmQgZm9jdXNpbmcgb24gdGhlIGJ1dHRvblxuICAgIC8vIHRvIHByZXZlbnQgdGhlIHNlYXJjaCBwYW5lIGZyb20gaW1tZWRpYXRlbHkgb3BlbmluZyBhZ2FpblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHNlYXJjaEJ1dHRvblJlZiAmJiBzZWFyY2hCdXR0b25SZWY/LmN1cnJlbnQpIHtcbiAgICAgICAgc2VhcmNoQnV0dG9uUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICB9XG4gICAgfSwgMTApO1xuICB9O1xuXG4gIGNvbnN0IG9uS2V5RG93biA9IHVzZU9uRXNjSGFuZGxlcihjbG9zZVNlYXJjaCk7XG5cbiAgY29uc3Qgb25Nb3VzZURvd25PdXRzaWRlID0gKHsgdGFyZ2V0IH06IE1vdXNlRXZlbnQpID0+IHtcbiAgICBjb25zdCBoYW5kbGVPdXRzaWRlQ2xpY2sgPSAoKSA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgICFkb2N1bWVudFxuICAgICAgICAgIC5xdWVyeVNlbGVjdG9yKCdbZGF0YS10ZXN0aWQ9XCJoZWFkZXItc2VhcmNoLWRyb3Bkb3duXCJdJylcbiAgICAgICAgICA/LmNvbnRhaW5zKHRhcmdldCBhcyBIVE1MRWxlbWVudCkgJiZcbiAgICAgICAgdGFyZ2V0ICE9PSBzZWFyY2hCdXR0b25SZWY/LmN1cnJlbnRcbiAgICAgICkge1xuICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgfVxuXG4gICAgICB0YXJnZXQ/LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBoYW5kbGVPdXRzaWRlQ2xpY2spO1xuICAgIH07XG5cbiAgICB0YXJnZXQ/LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBoYW5kbGVPdXRzaWRlQ2xpY2spO1xuICB9O1xuXG4gIGNvbnN0IG5hdmlnYXRlVG9TZWFyY2ggPSAoc2VhcmNoVGVybTogc3RyaW5nLCBmcm9tUHJldlNlYXJjaD86IHN0cmluZykgPT4ge1xuICAgIG9uU2VhcmNoKHNlYXJjaFRlcm0sIGZyb21QcmV2U2VhcmNoKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVDaGFuZ2U6IFJlYWN0LkNoYW5nZUV2ZW50SGFuZGxlcjxIVE1MSW5wdXRFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICBzZXRWYWx1ZShldnQudGFyZ2V0LnZhbHVlKTtcbiAgICAvLyByZXNldCB0byBmYWxzZSB3aGVuIHRoZSBzZWFyY2ggcXVlcnkgY2hhbmdlc1xuICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQoZmFsc2UpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVN1Ym1pdDogUmVhY3QuRm9ybUV2ZW50SGFuZGxlciA9IChldmVudCkgPT4ge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgd2hlbiB0aGUgdXNlciBzdWJtaXRzIHRoZSBmb3JtIHRvIGNhcHR1cmUgY29tcGxldGUgcXVlcnlcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIG5hdmlnYXRlVG9TZWFyY2godmFsdWUsIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkKTtcbiAgfTtcblxuICBjb25zdCBjbGVhcklucHV0ID0gKCkgPT4ge1xuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCBiZWZvcmUgdXNlciBjbGVhcnMgaW5wdXRcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIHNldFZhbHVlKCcnKTtcbiAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhbXSk7XG4gICAgLy8gcmVzZXQgdGhlIGNvbnRleHQgd2l0aCBlbXB0eSB2YWx1ZXNcbiAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICBxdWVyeTogJycsXG4gICAgICBzZWFyY2hJZDogJycsXG4gICAgICByZXN1bHRzQ291bnQ6IDAsXG4gICAgICBxdWVyeUxvYWRUaW1lOiAwLFxuICAgIH0pO1xuICB9O1xuXG4gIC8vIHdoZW4gdGhlIGN1cnJlbnQgVVJMIGNoYW5nZXMsIHdlIHdhbnQgdG8gY2xvc2UgdGhlIHNlYXJjaCBwYW5lIGlmIGl0J3Mgb3BlblxuICAvLyBhbmQgdHJhY2sgc2VhcmNoIGV2ZW50IGlmIHVzZXIgbWFkZSBhIHNlYXJjaFxuICB1c2VVcmxDaGFuZ2VEZXRlY3Rpb24oe1xuICAgIG9uVXJsQ2hhbmdlOiAoKSA9PiB7XG4gICAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgICAgfVxuXG4gICAgICB0b2dnbGVTZWFyY2goKTtcbiAgICB9LFxuICB9KTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIC8vIGRvbid0IHRyYWNrIGlmIGEgcmVzdWx0IHdhcyBjbGlja2VkIG9yIGlmIHdlIGRvbid0IGhhdmUgc2VhcmNoIHJlc3VsdHNcbiAgICBpZiAoXG4gICAgICBzZWFyY2hSZXN1bHRDbGlja2VkIHx8XG4gICAgICAhb25TZWFyY2hBc1lvdVR5cGUgfHxcbiAgICAgICFzZWFyY2hBc1lvdVR5cGVSZXN1bHRzIHx8XG4gICAgICAhdmFsdWVUcmltbWVkLmxlbmd0aFxuICAgIClcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11c2VsZXNzLXJldHVyblxuICAgICAgcmV0dXJuO1xuICB9LCBbXG4gICAgc2VhcmNoUmVzdWx0Q2xpY2tlZCxcbiAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLFxuICAgIHZhbHVlVHJpbW1lZCxcbiAgICBvblNlYXJjaEFzWW91VHlwZSxcbiAgXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpbnB1dFJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgIHNlYXJjaFdvcmtlci5pbml0KCk7XG4gIH0sIFtdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghdmFsdWVUcmltbWVkLmxlbmd0aCkge1xuICAgICAgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyhudWxsKTtcbiAgICAgIHNldEF1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zKFtdKTtcbiAgICAgIHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zKHtcbiAgICAgICAgcXVlcnk6ICcnLFxuICAgICAgICBzZWFyY2hJZDogJycsXG4gICAgICAgIHJlc3VsdHNDb3VudDogMCxcbiAgICAgICAgcXVlcnlMb2FkVGltZTogMCxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBjYW5jZWwgPSBmYWxzZTtcbiAgICBsZXQgY2xlYXJBdXRvY29tcGxldGUgPSB0cnVlO1xuICAgIGxldCBjbGVhclNlYXJjaEFzWW91VHlwZSA9IHRydWU7XG5cbiAgICBsZXQgc2VhcmNoRXZlbnROb1Jlc3VsdERlbGF5OiBOb2RlSlMuVGltZW91dDtcblxuICAgIGNvbnN0IGxvYWRlckRlbGF5ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAvKlxuICAgICAgICogV2FpdCAxMCBtaWxsaXNlY29uZHMgdG8gZ2V0IGEgcmVzcG9uc2UgZm9yIHdvcmtlciBiZWZvcmUgc2hvd2luZyBsb2FkZXJzLlxuICAgICAgICogVGhpcyBwcmV2ZW50cyBmbGlja2VyaW5nIGxvYWRlcnMgb24gcXVpY2sgb3IgY2FjaGVkIHJlc3VsdHMuXG4gICAgICAgKi9cbiAgICAgIGlmIChjYW5jZWwpIHJldHVybjtcbiAgICAgIGlmIChjbGVhckF1dG9jb21wbGV0ZSkgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgICAgaWYgKGNsZWFyU2VhcmNoQXNZb3VUeXBlKSBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKG51bGwpO1xuICAgIH0sIDEwKTtcblxuICAgIHNlYXJjaFdvcmtlci5hdXRvY29tcGxldGUodmFsdWVUcmltbWVkKS50aGVuKChzdWdnZXN0aW9ucykgPT4ge1xuICAgICAgY2xlYXJBdXRvY29tcGxldGUgPSBmYWxzZTtcblxuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuOyAvLyB0ZXh0IGhhcyBjaGFuZ2VkIHNpbmNlIHRoaXMgcmVxdWVzdCB3YXMgbWFkZVxuXG4gICAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhzdWdnZXN0aW9ucyk7XG4gICAgfSk7XG5cbiAgICBzZWFyY2hXb3JrZXIuc2VhcmNoQXNZb3VUeXBlKHZhbHVlVHJpbW1lZCkudGhlbigocmVzdWx0cykgPT4ge1xuICAgICAgY2xlYXJTZWFyY2hBc1lvdVR5cGUgPSBmYWxzZTtcblxuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuOyAvLyB0ZXh0IGhhcyBjaGFuZ2VkIHNpbmNlIHRoaXMgcmVxdWVzdCB3YXMgbWFkZVxuXG4gICAgICBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKHJlc3VsdHMpO1xuXG4gICAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICAgIHF1ZXJ5OiByZXN1bHRzLnF1ZXJ5LFxuICAgICAgICBzZWFyY2hJZDogcmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgcmVzdWx0c0NvdW50OiByZXN1bHRzLnRvcC5sZW5ndGgsXG4gICAgICAgIHF1ZXJ5TG9hZFRpbWU6IHJlc3VsdHMucXVlcnlMb2FkVGltZSxcbiAgICAgIH0pO1xuXG4gICAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgd2l0aCBhIHNtYWxsIGRlbGF5IHdoZW4gdGhlcmUgYXJlIG5vIHJlc3VsdHNcbiAgICAgIGlmIChcbiAgICAgICAgb25TZWFyY2hBc1lvdVR5cGUgJiZcbiAgICAgICAgcmVzdWx0cy50b3AubGVuZ3RoID09PSAwICYmXG4gICAgICAgICFzZWFyY2hSZXN1bHRDbGlja2VkXG4gICAgICApIHtcbiAgICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHF1ZXJ5TG9hZFRpbWUgfSA9IHJlc3VsdHM7XG4gICAgICAgIHNlYXJjaEV2ZW50Tm9SZXN1bHREZWxheSA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIGlmICghY2FuY2VsKSB7XG4gICAgICAgICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIDAsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSwgMzAwKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjYW5jZWwgPSB0cnVlO1xuICAgICAgY2xlYXJUaW1lb3V0KGxvYWRlckRlbGF5KTtcbiAgICAgIGNsZWFyVGltZW91dChzZWFyY2hFdmVudE5vUmVzdWx0RGVsYXkpO1xuICAgIH07XG4gIH0sIFtcbiAgICB2YWx1ZVRyaW1tZWQsXG4gICAgb25TZWFyY2hBc1lvdVR5cGUsXG4gICAgc2VhcmNoUmVzdWx0Q2xpY2tlZCxcbiAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyxcbiAgXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPEJveFxuICAgICAgICBhcmlhLWhpZGRlblxuICAgICAgICBiZz1cInNoYWRvdy1zZWNvbmRhcnlcIlxuICAgICAgICBoZWlnaHQ9XCIxMDB2aFwiXG4gICAgICAgIHBvc2l0aW9uPVwiZml4ZWRcIlxuICAgICAgICAvLyBXZSBhZGQgNXJlbSBoZXJlIGluIGNhc2UgdGhlcmUncyBzb21lIHNvcnQgb2YgYnJhbmRlZCBiYW5uZXIgYWJvdmUgc2VhcmNoXG4gICAgICAgIC8vIFRoZSBzZWFyY2ggYXJlYSBpcyBtdWNoIHRhbGxlciB0aGFuIDVyZW0gc28gdGhpcyBpcyBhIHNhZmUgYW1vdW50IG9mIHBhZGRpbmdcbiAgICAgICAgdG9wPXtgY2FsYygke3RoZW1lLmVsZW1lbnRzLmhlYWRlckhlaWdodH0gKyA1cmVtKWB9XG4gICAgICAgIHdpZHRoPXsxfVxuICAgICAgLz5cbiAgICAgIDxGb2N1c1RyYXBcbiAgICAgICAgb25Fc2NhcGVLZXk9e2Nsb3NlU2VhcmNofVxuICAgICAgICBvbkNsaWNrT3V0c2lkZT17b25Nb3VzZURvd25PdXRzaWRlfVxuICAgICAgICBhbGxvd1BhZ2VJbnRlcmFjdGlvblxuICAgICAgPlxuICAgICAgICA8Qm94XG4gICAgICAgICAgYmc9XCJiYWNrZ3JvdW5kXCJcbiAgICAgICAgICBib3JkZXJDb2xvckJvdHRvbT1cImJvcmRlci1wcmltYXJ5XCJcbiAgICAgICAgICBib3JkZXJDb2xvclRvcD1cImJvcmRlci10ZXJ0aWFyeVwiXG4gICAgICAgICAgYm9yZGVyU3R5bGU9XCJzb2xpZFwiXG4gICAgICAgICAgYm9yZGVyV2lkdGg9XCIycHggMCAxcHhcIlxuICAgICAgICAgIGRhdGEtdGVzdGlkPVwiaGVhZGVyLXNlYXJjaC1kcm9wZG93blwiXG4gICAgICAgICAgcG9zaXRpb249e3sgXzogJ2ZpeGVkJywgbWQ6ICdhYnNvbHV0ZScgfX1cbiAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgIG1heEhlaWdodD17eyBfOiAnY2FsYygxMDB2aCAtIDYzcHgpJywgbWQ6ICdjYWxjKDEwMHZoIC0gODBweCknIH19XG4gICAgICAgICAgb3ZlcmZsb3c9XCJhdXRvXCJcbiAgICAgICAgICB6SW5kZXg9ezEwfSAvLyBlbnN1cmUgZHJvcGRvd24gaXMgYWJvdmUgdGhlIHBhZ2UgY29udGVudFxuICAgICAgICA+XG4gICAgICAgICAgPEJveCBib3JkZXI9XCJub25lXCIgd2lkdGg9XCJhdXRvXCI+XG4gICAgICAgICAgICA8UXVlcnlDb250YWluZXI+XG4gICAgICAgICAgICAgIDxGbGV4Qm94XG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImJhc2VsaW5lXCJcbiAgICAgICAgICAgICAgICBib3JkZXJDb2xvcj1cImdyYXktNjAwXCJcbiAgICAgICAgICAgICAgICBib3JkZXJTdHlsZUJvdHRvbT1cInNvbGlkXCJcbiAgICAgICAgICAgICAgICBib3JkZXJXaWR0aEJvdHRvbT1cIjFweFwiXG4gICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTZWFyY2hJY29uXG4gICAgICAgICAgICAgICAgICBoZWlnaHQ9e3sgXzogMjAsIG1kOiAyNCB9fVxuICAgICAgICAgICAgICAgICAgd2lkdGg9e3sgXzogMjAsIG1kOiAyNCB9fVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPEZvcm1cbiAgICAgICAgICAgICAgICAgIGFjdGlvbj1cIi9zZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgaWQ9XCJzZWFyY2gtZm9ybVwiXG4gICAgICAgICAgICAgICAgICBtbD17OH1cbiAgICAgICAgICAgICAgICAgIG9uU3VibWl0PXtoYW5kbGVTdWJtaXR9XG4gICAgICAgICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxTdHlsZWRJbnB1dFxuICAgICAgICAgICAgICAgICAgICBhdXRvRm9jdXNcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZD1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICBib3JkZXI9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgZm9udFNpemU9e3sgXzogMjAsIG1kOiAyNiB9fVxuICAgICAgICAgICAgICAgICAgICBmb250V2VpZ2h0PVwiYm9sZFwiXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiaGVhZGVyLXNlYXJjaC1iYXJcIlxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwicXVlcnlcIlxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhlKSA9PiBvbktleURvd24oZSl9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtzZWFyY2hQbGFjZWhvbGRlcn1cbiAgICAgICAgICAgICAgICAgICAgcmVmPXtpbnB1dFJlZn1cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgICAgICAgYXV0b0NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9Gb3JtPlxuICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICBpY29uPXtNaW5pRGVsZXRlSWNvbn1cbiAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJDbGVhciBzZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgdGlwPVwiQ2xlYXIgc2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgIHRpcFByb3BzPXt7XG4gICAgICAgICAgICAgICAgICAgIGFsaWdubWVudDogJ2JvdHRvbS1jZW50ZXInLFxuICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ6ICdmbG9hdGluZycsXG4gICAgICAgICAgICAgICAgICAgIG5hcnJvdzogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgekluZGV4OiAyLFxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2NsZWFySW5wdXR9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvRmxleEJveD5cbiAgICAgICAgICAgIDwvUXVlcnlDb250YWluZXI+XG4gICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgPFN1Z2dlc3Rpb25Db250YWluZXI+XG4gICAgICAgICAgICB7dmFsdWVUcmltbWVkLmxlbmd0aCA+IDAgPyAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgPEZsZXhCb3ggZmxleERpcmVjdGlvbj1cImNvbHVtblwiIGFzPVwidWxcIiBsaXN0U3R5bGU9XCJub25lXCIgcD17MH0+XG4gICAgICAgICAgICAgICAgICB7YXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMubWFwKChzLCBpKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgIDxJbmxpbmVSZXN1bHRMaVxuICAgICAgICAgICAgICAgICAgICAgIGtleT17cy50aXRsZX1cbiAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhldnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnYXV0b2NvbXBsZXRlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzLnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdhdXRvY29tcGxldGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzLnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxTZW1pYm9sZFNlYXJjaEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgIG1iPXsyIGFzIDB9XG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPXsxNH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZVdpZHRoPXs4fVxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgICAgICAgICAgICAgICAgIG1yPXsxMn1cbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxIaWdobGlnaHRlZFRleHQgc3VnZ2VzdGlvbj17c30gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9JbmxpbmVSZXN1bHRMaT5cbiAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgIDwvRmxleEJveD5cbiAgICAgICAgICAgICAgICB7KHNlYXJjaEFzWW91VHlwZVJlc3VsdHMgPT09IG51bGwgfHxcbiAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMudG9wLmxlbmd0aCA+IDApICYmIChcbiAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgIDxUZXh0IGFzPVwiaDJcIiBmb250U2l6ZT17MjB9IG1iPXsxNn0gbXQ9ezI0fT5cbiAgICAgICAgICAgICAgICAgICAgICBUb3AgcmVzdWx0c1xuICAgICAgICAgICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgICAgICAgICAgIDxGbGV4Qm94XG4gICAgICAgICAgICAgICAgICAgICAgZmxleERpcmVjdGlvbj1cImNvbHVtblwiXG4gICAgICAgICAgICAgICAgICAgICAgYXM9XCJ1bFwiXG4gICAgICAgICAgICAgICAgICAgICAgbGlzdFN0eWxlPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgcD17MH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHNlYXJjaEFzWW91VHlwZUxvYWRlcj8uc2hpbW1lclJvd3MubWFwKChyKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPElubGluZUxvYWRlckxpIGtleT17ci5rZXl9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3Iuc2hpbW1lcnMubWFwKCh3b3JkKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTaGltbWVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PXszMH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBweT17OCBhcyAwfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17d29yZC5rZXl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9e3dvcmQud2lkdGh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCb3hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udEZhbWlseT1cImFjY2VudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRDb2xvcj1cInRleHQtc2Vjb25kYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udFNpemU9e3sgXzogMTAgYXMgMTYgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyQ29sb3I9XCJib3JkZXItc2Vjb25kYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyPXsxfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJSYWRpdXM9XCJ4bFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB4PXsxNn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eT17MC4xfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbmJzcDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSW5saW5lTG9hZGVyTGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICkpXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMudG9wLm1hcCgocywgaSkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbmxpbmVSZXN1bHRMaVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtgJHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy5xdWVyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfToke2kudG9TdHJpbmcoKX1gfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiSW5kZXg9ezB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwibGlua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhldnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV2dC5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnc2VhcmNoX2FzX3lvdV90eXBlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsdWc6IHMuc2x1ZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLihzLmNvbnRlbnRJZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHsgY29udGVudF9pZDogcy5jb250ZW50SWQgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhZmVseVJlZGlyZWN0KHMudXJsUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnc2VhcmNoX2FzX3lvdV90eXBlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2x1Zzogcy5zbHVnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLihzLmNvbnRlbnRJZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7IGNvbnRlbnRfaWQ6IHMuY29udGVudElkIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2FmZWx5UmVkaXJlY3Qocy51cmxQYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEhpZ2hsaWdodGVkVGV4dCBzdWdnZXN0aW9uPXtzfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJhZGdlIHNpemU9XCJzbVwiIHZhcmlhbnQ9XCJ0ZXJ0aWFyeVwiIG1sPXsxMn0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtzLnR5cGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0JhZGdlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSW5saW5lUmVzdWx0TGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIHtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy50b3AubGVuZ3RoID09PSAwICYmIChcbiAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgIDxCb3ggZm9udFNpemU9e3sgXzogMjAsIHNtOiAyNiB9fSBtdD17MH0gbWI9ezQ4fT5cbiAgICAgICAgICAgICAgICAgICAgICB7YFdlIGNvdWxkbid0IGZpbmQgYSBtYXRjaCBmb3IgYH1cbiAgICAgICAgICAgICAgICAgICAgICA8VGV4dCBmb250V2VpZ2h0PVwiYm9sZFwiPntgXCIke3ZhbHVlVHJpbW1lZH0uXCJgfTwvVGV4dD5cbiAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAnIFRyeSBhbm90aGVyIGtleXdvcmQsIG9yIHNlZSB3aGF0IG91ciBtZW1iZXJzIGFyZSBsZWFybmluZy4nXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICAgICAgPE1lbnUgYm9yZGVyPVwibm9uZVwiIHZhcmlhbnQ9XCJwb3BvdmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPFBvcHVsYXJDb250ZW50IG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfSAvPlxuICAgICAgICAgICAgICAgICAgICA8L01lbnU+XG4gICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxNZW51IGJvcmRlcj1cIm5vbmVcIiB2YXJpYW50PVwicG9wb3ZlclwiPlxuICAgICAgICAgICAgICAgIDxQb3B1bGFyU2VhcmNoZXNcbiAgICAgICAgICAgICAgICAgIG5hdmlnYXRlVG9TZWFyY2g9e25hdmlnYXRlVG9TZWFyY2h9XG4gICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxQb3B1bGFyQ29udGVudCBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja30gLz5cbiAgICAgICAgICAgICAgPC9NZW51PlxuICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgeyEhc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8udG9wLmxlbmd0aCAmJiAoXG4gICAgICAgICAgICAgIDxTdHJva2VCdXR0b25cbiAgICAgICAgICAgICAgICBteT17MTZ9XG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCd2aWV3X2FsbF9yZXN1bHRzJywge1xuICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgIG5hdmlnYXRlVG9TZWFyY2godmFsdWUsIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkKTtcbiAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIFZpZXcgYWxsIHJlc3VsdHNcbiAgICAgICAgICAgICAgPC9TdHJva2VCdXR0b24+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgPFF1aXpBbmRIZWxwQ2VudGVyTGlua3NcbiAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9XG4gICAgICAgICAgICAgIGhhbmRsZUNsb3NlRHJvcGRvd249e2Nsb3NlU2VhcmNofVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L1N1Z2dlc3Rpb25Db250YWluZXI+XG4gICAgICAgIDwvQm94PlxuICAgICAgPC9Gb2N1c1RyYXA+XG4gICAgPC8+XG4gICk7XG59O1xuIl19 */");
|
|
74
74
|
const InlineLoaderLi = /*#__PURE__*/_styled("li", {
|
|
75
75
|
target: "e1e5b20r2",
|
|
76
76
|
label: "InlineLoaderLi"
|
|
@@ -79,7 +79,7 @@ const InlineLoaderLi = /*#__PURE__*/_styled("li", {
|
|
|
79
79
|
display: 'flex',
|
|
80
80
|
gap: 12,
|
|
81
81
|
alignItems: 'center'
|
|
82
|
-
}), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvU2VhcmNoL1NlYXJjaFBhbmUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTJFdUIiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL0FwcEhlYWRlci9TZWFyY2gvU2VhcmNoUGFuZS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYWRnZSxcbiAgQm94LFxuICBDb250ZW50Q29udGFpbmVyLFxuICBGbGV4Qm94LFxuICBGb2N1c1RyYXAsXG4gIEljb25CdXR0b24sXG4gIE1lbnUsXG4gIE1lbnVJdGVtLFxuICBTaGltbWVyLFxuICBTdHJva2VCdXR0b24sXG4gIFRleHQsXG59IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCB7IE1pbmlEZWxldGVJY29uLCBTZWFyY2hJY29uIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtaWNvbnMnO1xuaW1wb3J0IHsgY3NzLCB0aGVtZSwgdXNlQ3VycmVudE1vZGUgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IHVzZU9uRXNjSGFuZGxlciB9IGZyb20gJy4uL3NoYXJlZCc7XG5pbXBvcnQgeyBzZWFyY2hQbGFjZWhvbGRlciB9IGZyb20gJy4vY29uc3RzJztcbmltcG9ydCB7IFBvcHVsYXJDb250ZW50LCBQb3B1bGFyU2VhcmNoZXMgfSBmcm9tICcuL0RlZmF1bHRSZXN1bHRzJztcbmltcG9ydCB7IHVzZVVybENoYW5nZURldGVjdGlvbiB9IGZyb20gJy4vaG9va3MvdXNlVXJsQ2hhbmdlRGV0ZWN0aW9uJztcbmltcG9ydCB7IFF1aXpBbmRIZWxwQ2VudGVyTGlua3MgfSBmcm9tICcuL1F1aXpBbmRIZWxwQ2VudGVyTGlua3MnO1xuaW1wb3J0IHsgc2FmZWx5UmVkaXJlY3QgfSBmcm9tICcuL3NhZmVseVJlZGlyZWN0JztcbmltcG9ydCB7IHVzZVNlYXJjaFRyYWNraW5nQ29udGV4dCB9IGZyb20gJy4vU2VhcmNoVHJhY2tpbmdQcm92aWRlcic7XG5pbXBvcnQgeyBzZWFyY2hXb3JrZXIgfSBmcm9tICcuL1NlYXJjaFdvcmtlcic7XG5pbXBvcnQgdHlwZSB7XG4gIEF1dG9jb21wbGV0ZVN1Z2dlc3Rpb24sXG4gIFNlYXJjaEFzWW91VHlwZVJlc3VsdHMsXG59IGZyb20gJy4vU2VhcmNoV29ya2VyL3R5cGVzJztcbmltcG9ydCB7IFNlYXJjaFBhbmVQcm9wcyB9IGZyb20gJy4vdHlwZXMnO1xuXG5jb25zdCBGb3JtID0gQm94LndpdGhDb21wb25lbnQoJ2Zvcm0nKTtcbmNvbnN0IElucHV0ID0gQm94LndpdGhDb21wb25lbnQoJ2lucHV0Jyk7XG5cbmNvbnN0IFF1ZXJ5Q29udGFpbmVyID0gc3R5bGVkKENvbnRlbnRDb250YWluZXIpKFxuICBjc3Moe1xuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICB3aWR0aDogJzEwMCUnLFxuICAgIHB0OiAxNixcbiAgICBwYjogeyBfOiAwLCBtZDogMjQgfSxcbiAgICBweDogeyBfOiAyNCB9LFxuICB9KVxuKTtcblxuY29uc3QgU3VnZ2VzdGlvbkNvbnRhaW5lciA9IHN0eWxlZChDb250ZW50Q29udGFpbmVyKShcbiAgY3NzKHtcbiAgICBwdDogMTYsXG4gICAgcGI6IHsgXzogMCwgbWQ6IDI0IH0sXG4gICAgcHg6IHsgXzogMjQgfSxcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZElucHV0ID0gc3R5bGVkKElucHV0KShcbiAgY3NzKHtcbiAgICBvdXRsaW5lOiBgbm9uZWAsXG4gICAgJyY6OnBsYWNlaG9sZGVyJzoge1xuICAgICAgdGV4dENvbG9yOiB0aGVtZS5jb2xvcnNbJ3RleHQtc2Vjb25kYXJ5J10gYXMgbmV2ZXIsXG4gICAgfSxcbiAgfSlcbik7XG5cbmNvbnN0IElubGluZVJlc3VsdExpID0gc3R5bGVkKE1lbnVJdGVtKShcbiAgY3NzKHtcbiAgICBwbDogMCxcbiAgICBweTogOCxcbiAgICBmb250U2l6ZTogMTYsXG4gICAgJyY6Zm9jdXMtdmlzaWJsZTphZnRlcic6IHtcbiAgICAgIGxlZnQ6IC00LFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBJbmxpbmVMb2FkZXJMaSA9IHN0eWxlZC5saShcbiAgY3NzKHtcbiAgICBsaXN0U3R5bGVUeXBlOiAnbm9uZScsXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGdhcDogMTIsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gIH0pXG4pO1xuXG5leHBvcnQgY29uc3QgU2VtaWJvbGRTZWFyY2hJY29uID0gc3R5bGVkKFNlYXJjaEljb24pYFxuICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuICBjaXJjbGUsXG4gIHBhdGgge1xuICAgIHN0cm9rZS13aWR0aDogMnB4O1xuICB9XG4gIHJlY3Qge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0ycHgsIC0ycHgpO1xuICAgIGhlaWdodDogY2FsYygxMDAlICsgNHB4KTtcbiAgICB3aWR0aDogY2FsYygxMDAlICsgNHB4KTtcbiAgfVxuYDtcblxuY29uc3QgRWxsaXBzaXNCb3ggPSBzdHlsZWQoQm94KWBcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5gO1xuXG5jb25zdCBIaWdobGlnaHRlZFRleHQgPSAoe1xuICBzdWdnZXN0aW9uOiB7IHRpdGxlLCBzZWdtZW50cyB9LFxufToge1xuICBzdWdnZXN0aW9uOiBBdXRvY29tcGxldGVTdWdnZXN0aW9uO1xufSkgPT4ge1xuICBjb25zdCBtb2RlID0gdXNlQ3VycmVudE1vZGUoKTtcbiAgY29uc3QgaGlnaGxpZ2h0Q29sb3IgPSBtb2RlID09PSAnZGFyaycgPyAnaHlwZXInIDogJ3llbGxvdyc7XG5cbiAgcmV0dXJuIChcbiAgICA8RmxleEJveD5cbiAgICAgIDxFbGxpcHNpc0JveFxuICAgICAgICBtYXhXaWR0aD1cImNhbGMoMTAwdncgLSAxMjhweClcIlxuICAgICAgICB3aGl0ZVNwYWNlPVwicHJlXCJcbiAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgb3ZlcmZsb3c9XCJoaWRkZW5cIlxuICAgICAgPlxuICAgICAgICB7c2VnbWVudHMubWFwKChzZWdtZW50LCBpKSA9PiAoXG4gICAgICAgICAgPFRleHRcbiAgICAgICAgICAgIGtleT17YCR7dGl0bGV9OiR7aS50b1N0cmluZygpfWB9XG4gICAgICAgICAgICBsaW5lSGVpZ2h0PVwidGl0bGVcIlxuICAgICAgICAgICAgey4uLihzZWdtZW50LmhpZ2hsaWdodFxuICAgICAgICAgICAgICA/IHsgYmc6IGhpZ2hsaWdodENvbG9yLCBmb250V2VpZ2h0OiAnYm9sZCcgfVxuICAgICAgICAgICAgICA6IHt9KX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7c2VnbWVudC52YWx1ZX1cbiAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICkpfVxuICAgICAgPC9FbGxpcHNpc0JveD5cbiAgICAgIDxUZXh0IHNjcmVlbnJlYWRlcj57dGl0bGV9PC9UZXh0PlxuICAgIDwvRmxleEJveD5cbiAgKTtcbn07XG5cbnR5cGUgU2VhcmNoQXNZb3VUeXBlTG9hZGVyID0ge1xuICBzaGltbWVyUm93czoge1xuICAgIGtleTogc3RyaW5nO1xuICAgIHNoaW1tZXJzOiB7XG4gICAgICBrZXk6IHN0cmluZztcbiAgICAgIHdpZHRoOiBudW1iZXI7XG4gICAgfVtdO1xuICB9W107XG59O1xuXG5sZXQgbG9hZGVyS2V5ID0gMDtcbmZ1bmN0aW9uIHJuZExvYWRlcigpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBsdXNwbHVzXG4gIGNvbnN0IGtleSA9IGxvYWRlcktleSsrO1xuICBjb25zdCBsb2FkZXI6IFNlYXJjaEFzWW91VHlwZUxvYWRlciA9IHsgc2hpbW1lclJvd3M6IFtdIH07XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgNTsgaSsrKSB7XG4gICAgY29uc3Qgcm93ID0ge1xuICAgICAga2V5OiBgJHtrZXl9OiR7aX1gLFxuICAgICAgc2hpbW1lcnM6IFtdIGFzIHsga2V5OiBzdHJpbmc7IHdpZHRoOiBudW1iZXIgfVtdLFxuICAgIH07XG4gICAgY29uc3Qgd29yZHMgPSBNYXRoLmNlaWwoTWF0aC5yYW5kb20oKSAqIDMpO1xuICAgIGZvciAobGV0IGogPSAwOyBqIDwgd29yZHM7IGorKykge1xuICAgICAgY29uc3Qgd2lkdGggPSAxMiArIE1hdGgucm91bmQoTWF0aC5yYW5kb20oKSAqIDk2KTtcbiAgICAgIHJvdy5zaGltbWVycy5wdXNoKHtcbiAgICAgICAga2V5OiBgJHtrZXl9OiR7an1gLFxuICAgICAgICB3aWR0aCxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBsb2FkZXIuc2hpbW1lclJvd3MucHVzaChyb3cpO1xuICB9XG4gIHJldHVybiBsb2FkZXI7XG59XG5cbmV4cG9ydCBjb25zdCBTZWFyY2hQYW5lOiBSZWFjdC5GQzxTZWFyY2hQYW5lUHJvcHM+ID0gKHtcbiAgb25TZWFyY2gsXG4gIG9uVHJhY2tpbmdDbGljayxcbiAgc2VhcmNoQnV0dG9uUmVmLFxuICB0b2dnbGVTZWFyY2gsXG4gIG9uU2VhcmNoQXNZb3VUeXBlLFxufSkgPT4ge1xuICBjb25zdCB0aGVtZSA9IHVzZVRoZW1lKCk7XG4gIGNvbnN0IFt2YWx1ZSwgc2V0VmFsdWVdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCBpbnB1dFJlZiA9IHVzZVJlZjxIVE1MSW5wdXRFbGVtZW50PihudWxsKTtcbiAgY29uc3QgW2F1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zLCBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9uc10gPSB1c2VTdGF0ZTxcbiAgICBBdXRvY29tcGxldGVTdWdnZXN0aW9uW11cbiAgPihbXSk7XG4gIGNvbnN0IFtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLCBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzXSA9XG4gICAgdXNlU3RhdGU8U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyB8IG51bGw+KG51bGwpO1xuXG4gIGNvbnN0IFtzZWFyY2hSZXN1bHRDbGlja2VkLCBzZXRTZWFyY2hSZXN1bHRDbGlja2VkXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICBjb25zdCB7IHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zIH0gPSB1c2VTZWFyY2hUcmFja2luZ0NvbnRleHQoKTtcblxuICBjb25zdCBzZWFyY2hBc1lvdVR5cGVMb2FkZXIgPSBSZWFjdC51c2VNZW1vKFxuICAgICgpID0+IChzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsID8gcm5kTG9hZGVyKCkgOiBudWxsKSxcbiAgICBbc2VhcmNoQXNZb3VUeXBlUmVzdWx0c11cbiAgKTtcblxuICBjb25zdCB2YWx1ZVRyaW1tZWQgPSB2YWx1ZS50cmltKCk7XG5cbiAgY29uc3QgaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrID1cbiAgICBvblNlYXJjaEFzWW91VHlwZSAmJiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzICYmICFzZWFyY2hSZXN1bHRDbGlja2VkO1xuXG4gIGNvbnN0IGNsb3NlU2VhcmNoID0gYXN5bmMgKCkgPT4ge1xuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCB3aGVuIHVzZXIgbWFkZSBhIHNlYXJjaCBhbmQgdGhlbiBjbG9zZWQgc2VhcmNoIHBhbmVcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIGF3YWl0IHRvZ2dsZVNlYXJjaCgpO1xuICAgIC8vIGFkZHMgYSBsaXR0bGUgZGVsYXkgYmV0d2VlbiBjbG9zaW5nIHRoZSBzZWFyY2ggcGFuZSBhbmQgZm9jdXNpbmcgb24gdGhlIGJ1dHRvblxuICAgIC8vIHRvIHByZXZlbnQgdGhlIHNlYXJjaCBwYW5lIGZyb20gaW1tZWRpYXRlbHkgb3BlbmluZyBhZ2FpblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHNlYXJjaEJ1dHRvblJlZiAmJiBzZWFyY2hCdXR0b25SZWY/LmN1cnJlbnQpIHtcbiAgICAgICAgc2VhcmNoQnV0dG9uUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICB9XG4gICAgfSwgMTApO1xuICB9O1xuXG4gIGNvbnN0IG9uS2V5RG93biA9IHVzZU9uRXNjSGFuZGxlcihjbG9zZVNlYXJjaCk7XG5cbiAgY29uc3Qgb25Nb3VzZURvd25PdXRzaWRlID0gKHsgdGFyZ2V0IH06IE1vdXNlRXZlbnQpID0+IHtcbiAgICBjb25zdCBoYW5kbGVPdXRzaWRlQ2xpY2sgPSAoKSA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgICFkb2N1bWVudFxuICAgICAgICAgIC5xdWVyeVNlbGVjdG9yKCdbZGF0YS10ZXN0aWQ9XCJoZWFkZXItc2VhcmNoLWRyb3Bkb3duXCJdJylcbiAgICAgICAgICA/LmNvbnRhaW5zKHRhcmdldCBhcyBIVE1MRWxlbWVudCkgJiZcbiAgICAgICAgdGFyZ2V0ICE9PSBzZWFyY2hCdXR0b25SZWY/LmN1cnJlbnRcbiAgICAgICkge1xuICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgfVxuXG4gICAgICB0YXJnZXQ/LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBoYW5kbGVPdXRzaWRlQ2xpY2spO1xuICAgIH07XG5cbiAgICB0YXJnZXQ/LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBoYW5kbGVPdXRzaWRlQ2xpY2spO1xuICB9O1xuXG4gIGNvbnN0IG5hdmlnYXRlVG9TZWFyY2ggPSAoc2VhcmNoVGVybTogc3RyaW5nLCBmcm9tUHJldlNlYXJjaD86IHN0cmluZykgPT4ge1xuICAgIG9uU2VhcmNoKHNlYXJjaFRlcm0sIGZyb21QcmV2U2VhcmNoKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVDaGFuZ2U6IFJlYWN0LkNoYW5nZUV2ZW50SGFuZGxlcjxIVE1MSW5wdXRFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICBzZXRWYWx1ZShldnQudGFyZ2V0LnZhbHVlKTtcbiAgICAvLyByZXNldCB0byBmYWxzZSB3aGVuIHRoZSBzZWFyY2ggcXVlcnkgY2hhbmdlc1xuICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQoZmFsc2UpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVN1Ym1pdDogUmVhY3QuRm9ybUV2ZW50SGFuZGxlciA9IChldmVudCkgPT4ge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgd2hlbiB0aGUgdXNlciBzdWJtaXRzIHRoZSBmb3JtIHRvIGNhcHR1cmUgY29tcGxldGUgcXVlcnlcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIG5hdmlnYXRlVG9TZWFyY2godmFsdWUsIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkKTtcbiAgfTtcblxuICBjb25zdCBjbGVhcklucHV0ID0gKCkgPT4ge1xuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCBiZWZvcmUgdXNlciBjbGVhcnMgaW5wdXRcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIHNldFZhbHVlKCcnKTtcbiAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhbXSk7XG4gICAgLy8gcmVzZXQgdGhlIGNvbnRleHQgd2l0aCBlbXB0eSB2YWx1ZXNcbiAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICBxdWVyeTogJycsXG4gICAgICBzZWFyY2hJZDogJycsXG4gICAgICByZXN1bHRzQ291bnQ6IDAsXG4gICAgICBxdWVyeUxvYWRUaW1lOiAwLFxuICAgIH0pO1xuICB9O1xuXG4gIC8vIHdoZW4gdGhlIGN1cnJlbnQgVVJMIGNoYW5nZXMsIHdlIHdhbnQgdG8gY2xvc2UgdGhlIHNlYXJjaCBwYW5lIGlmIGl0J3Mgb3BlblxuICAvLyBhbmQgdHJhY2sgc2VhcmNoIGV2ZW50IGlmIHVzZXIgbWFkZSBhIHNlYXJjaFxuICB1c2VVcmxDaGFuZ2VEZXRlY3Rpb24oe1xuICAgIG9uVXJsQ2hhbmdlOiAoKSA9PiB7XG4gICAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgICAgfVxuXG4gICAgICB0b2dnbGVTZWFyY2goKTtcbiAgICB9LFxuICB9KTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIC8vIGRvbid0IHRyYWNrIGlmIGEgcmVzdWx0IHdhcyBjbGlja2VkIG9yIGlmIHdlIGRvbid0IGhhdmUgc2VhcmNoIHJlc3VsdHNcbiAgICBpZiAoXG4gICAgICBzZWFyY2hSZXN1bHRDbGlja2VkIHx8XG4gICAgICAhb25TZWFyY2hBc1lvdVR5cGUgfHxcbiAgICAgICFzZWFyY2hBc1lvdVR5cGVSZXN1bHRzIHx8XG4gICAgICAhdmFsdWVUcmltbWVkLmxlbmd0aFxuICAgIClcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11c2VsZXNzLXJldHVyblxuICAgICAgcmV0dXJuO1xuICB9LCBbXG4gICAgc2VhcmNoUmVzdWx0Q2xpY2tlZCxcbiAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLFxuICAgIHZhbHVlVHJpbW1lZCxcbiAgICBvblNlYXJjaEFzWW91VHlwZSxcbiAgXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpbnB1dFJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgIHNlYXJjaFdvcmtlci5pbml0KCk7XG4gIH0sIFtdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghdmFsdWVUcmltbWVkLmxlbmd0aCkge1xuICAgICAgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyhudWxsKTtcbiAgICAgIHNldEF1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zKFtdKTtcbiAgICAgIHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zKHtcbiAgICAgICAgcXVlcnk6ICcnLFxuICAgICAgICBzZWFyY2hJZDogJycsXG4gICAgICAgIHJlc3VsdHNDb3VudDogMCxcbiAgICAgICAgcXVlcnlMb2FkVGltZTogMCxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBjYW5jZWwgPSBmYWxzZTtcbiAgICBsZXQgY2xlYXJBdXRvY29tcGxldGUgPSB0cnVlO1xuICAgIGxldCBjbGVhclNlYXJjaEFzWW91VHlwZSA9IHRydWU7XG5cbiAgICBsZXQgc2VhcmNoRXZlbnROb1Jlc3VsdERlbGF5OiBOb2RlSlMuVGltZW91dDtcblxuICAgIGNvbnN0IGxvYWRlckRlbGF5ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAvKlxuICAgICAgICogV2FpdCAxMCBtaWxsaXNlY29uZHMgdG8gZ2V0IGEgcmVzcG9uc2UgZm9yIHdvcmtlciBiZWZvcmUgc2hvd2luZyBsb2FkZXJzLlxuICAgICAgICogVGhpcyBwcmV2ZW50cyBmbGlja2VyaW5nIGxvYWRlcnMgb24gcXVpY2sgb3IgY2FjaGVkIHJlc3VsdHMuXG4gICAgICAgKi9cbiAgICAgIGlmIChjYW5jZWwpIHJldHVybjtcbiAgICAgIGlmIChjbGVhckF1dG9jb21wbGV0ZSkgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgICAgaWYgKGNsZWFyU2VhcmNoQXNZb3VUeXBlKSBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKG51bGwpO1xuICAgIH0sIDEwKTtcblxuICAgIHNlYXJjaFdvcmtlci5hdXRvY29tcGxldGUodmFsdWVUcmltbWVkKS50aGVuKChzdWdnZXN0aW9ucykgPT4ge1xuICAgICAgY2xlYXJBdXRvY29tcGxldGUgPSBmYWxzZTtcblxuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuOyAvLyB0ZXh0IGhhcyBjaGFuZ2VkIHNpbmNlIHRoaXMgcmVxdWVzdCB3YXMgbWFkZVxuXG4gICAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhzdWdnZXN0aW9ucyk7XG4gICAgfSk7XG5cbiAgICBzZWFyY2hXb3JrZXIuc2VhcmNoQXNZb3VUeXBlKHZhbHVlVHJpbW1lZCkudGhlbigocmVzdWx0cykgPT4ge1xuICAgICAgY2xlYXJTZWFyY2hBc1lvdVR5cGUgPSBmYWxzZTtcblxuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuOyAvLyB0ZXh0IGhhcyBjaGFuZ2VkIHNpbmNlIHRoaXMgcmVxdWVzdCB3YXMgbWFkZVxuXG4gICAgICBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKHJlc3VsdHMpO1xuXG4gICAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICAgIHF1ZXJ5OiByZXN1bHRzLnF1ZXJ5LFxuICAgICAgICBzZWFyY2hJZDogcmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgcmVzdWx0c0NvdW50OiByZXN1bHRzLnRvcC5sZW5ndGgsXG4gICAgICAgIHF1ZXJ5TG9hZFRpbWU6IHJlc3VsdHMucXVlcnlMb2FkVGltZSxcbiAgICAgIH0pO1xuXG4gICAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgd2l0aCBhIHNtYWxsIGRlbGF5IHdoZW4gdGhlcmUgYXJlIG5vIHJlc3VsdHNcbiAgICAgIGlmIChcbiAgICAgICAgb25TZWFyY2hBc1lvdVR5cGUgJiZcbiAgICAgICAgcmVzdWx0cy50b3AubGVuZ3RoID09PSAwICYmXG4gICAgICAgICFzZWFyY2hSZXN1bHRDbGlja2VkXG4gICAgICApIHtcbiAgICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHF1ZXJ5TG9hZFRpbWUgfSA9IHJlc3VsdHM7XG4gICAgICAgIHNlYXJjaEV2ZW50Tm9SZXN1bHREZWxheSA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIGlmICghY2FuY2VsKSB7XG4gICAgICAgICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIDAsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSwgMzAwKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjYW5jZWwgPSB0cnVlO1xuICAgICAgY2xlYXJUaW1lb3V0KGxvYWRlckRlbGF5KTtcbiAgICAgIGNsZWFyVGltZW91dChzZWFyY2hFdmVudE5vUmVzdWx0RGVsYXkpO1xuICAgIH07XG4gIH0sIFtcbiAgICB2YWx1ZVRyaW1tZWQsXG4gICAgb25TZWFyY2hBc1lvdVR5cGUsXG4gICAgc2VhcmNoUmVzdWx0Q2xpY2tlZCxcbiAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyxcbiAgXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPEJveFxuICAgICAgICBhcmlhLWhpZGRlblxuICAgICAgICBiZz1cInNoYWRvdy1zZWNvbmRhcnlcIlxuICAgICAgICBoZWlnaHQ9XCIxMDB2aFwiXG4gICAgICAgIHBvc2l0aW9uPVwiZml4ZWRcIlxuICAgICAgICAvLyBXZSBhZGQgNnJlbSBoZXJlIGluIGNhc2UgdGhlcmUncyBzb21lIHNvcnQgb2YgYnJhbmRlZCBiYW5uZXIgYWJvdmUgc2VhcmNoXG4gICAgICAgIC8vIFRoZSBzZWFyY2ggYXJlYSBpcyBtdWNoIHRhbGxlciB0aGFuIDZyZW0gc28gdGhpcyBpcyBhIHNhZmUgYW1vdW50IG9mIHBhZGRpbmdcbiAgICAgICAgdG9wPXtgY2FsYygke3RoZW1lLmVsZW1lbnRzLmhlYWRlckhlaWdodH0gKyA2cmVtKWB9XG4gICAgICAgIHdpZHRoPXsxfVxuICAgICAgLz5cbiAgICAgIDxGb2N1c1RyYXBcbiAgICAgICAgb25Fc2NhcGVLZXk9e2Nsb3NlU2VhcmNofVxuICAgICAgICBvbkNsaWNrT3V0c2lkZT17b25Nb3VzZURvd25PdXRzaWRlfVxuICAgICAgICBhbGxvd1BhZ2VJbnRlcmFjdGlvblxuICAgICAgPlxuICAgICAgICA8Qm94XG4gICAgICAgICAgYmc9XCJiYWNrZ3JvdW5kXCJcbiAgICAgICAgICBib3JkZXJDb2xvckJvdHRvbT1cImJvcmRlci1wcmltYXJ5XCJcbiAgICAgICAgICBib3JkZXJDb2xvclRvcD1cImJvcmRlci10ZXJ0aWFyeVwiXG4gICAgICAgICAgYm9yZGVyU3R5bGU9XCJzb2xpZFwiXG4gICAgICAgICAgYm9yZGVyV2lkdGg9XCIycHggMCAxcHhcIlxuICAgICAgICAgIGRhdGEtdGVzdGlkPVwiaGVhZGVyLXNlYXJjaC1kcm9wZG93blwiXG4gICAgICAgICAgcG9zaXRpb249e3sgXzogJ2ZpeGVkJywgbWQ6ICdhYnNvbHV0ZScgfX1cbiAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgIG1heEhlaWdodD17eyBfOiAnY2FsYygxMDB2aCAtIDYzcHgpJywgbWQ6ICdjYWxjKDEwMHZoIC0gODBweCknIH19XG4gICAgICAgICAgb3ZlcmZsb3c9XCJhdXRvXCJcbiAgICAgICAgICB6SW5kZXg9ezEwfSAvLyBlbnN1cmUgZHJvcGRvd24gaXMgYWJvdmUgdGhlIHBhZ2UgY29udGVudFxuICAgICAgICA+XG4gICAgICAgICAgPEJveCBib3JkZXI9XCJub25lXCIgd2lkdGg9XCJhdXRvXCI+XG4gICAgICAgICAgICA8UXVlcnlDb250YWluZXI+XG4gICAgICAgICAgICAgIDxGbGV4Qm94XG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImJhc2VsaW5lXCJcbiAgICAgICAgICAgICAgICBib3JkZXJDb2xvcj1cImdyYXktNjAwXCJcbiAgICAgICAgICAgICAgICBib3JkZXJTdHlsZUJvdHRvbT1cInNvbGlkXCJcbiAgICAgICAgICAgICAgICBib3JkZXJXaWR0aEJvdHRvbT1cIjFweFwiXG4gICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTZWFyY2hJY29uXG4gICAgICAgICAgICAgICAgICBoZWlnaHQ9e3sgXzogMjAsIG1kOiAyNCB9fVxuICAgICAgICAgICAgICAgICAgd2lkdGg9e3sgXzogMjAsIG1kOiAyNCB9fVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPEZvcm1cbiAgICAgICAgICAgICAgICAgIGFjdGlvbj1cIi9zZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgaWQ9XCJzZWFyY2gtZm9ybVwiXG4gICAgICAgICAgICAgICAgICBtbD17OH1cbiAgICAgICAgICAgICAgICAgIG9uU3VibWl0PXtoYW5kbGVTdWJtaXR9XG4gICAgICAgICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxTdHlsZWRJbnB1dFxuICAgICAgICAgICAgICAgICAgICBhdXRvRm9jdXNcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZD1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICBib3JkZXI9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgZm9udFNpemU9e3sgXzogMjAsIG1kOiAyNiB9fVxuICAgICAgICAgICAgICAgICAgICBmb250V2VpZ2h0PVwiYm9sZFwiXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiaGVhZGVyLXNlYXJjaC1iYXJcIlxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwicXVlcnlcIlxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhlKSA9PiBvbktleURvd24oZSl9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtzZWFyY2hQbGFjZWhvbGRlcn1cbiAgICAgICAgICAgICAgICAgICAgcmVmPXtpbnB1dFJlZn1cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgICAgICAgYXV0b0NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9Gb3JtPlxuICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICBpY29uPXtNaW5pRGVsZXRlSWNvbn1cbiAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJDbGVhciBzZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgdGlwPVwiQ2xlYXIgc2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgIHRpcFByb3BzPXt7XG4gICAgICAgICAgICAgICAgICAgIGFsaWdubWVudDogJ2JvdHRvbS1jZW50ZXInLFxuICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ6ICdmbG9hdGluZycsXG4gICAgICAgICAgICAgICAgICAgIG5hcnJvdzogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgekluZGV4OiAyLFxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2NsZWFySW5wdXR9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvRmxleEJveD5cbiAgICAgICAgICAgIDwvUXVlcnlDb250YWluZXI+XG4gICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgPFN1Z2dlc3Rpb25Db250YWluZXI+XG4gICAgICAgICAgICB7dmFsdWVUcmltbWVkLmxlbmd0aCA+IDAgPyAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgPEZsZXhCb3ggZmxleERpcmVjdGlvbj1cImNvbHVtblwiIGFzPVwidWxcIiBsaXN0U3R5bGU9XCJub25lXCIgcD17MH0+XG4gICAgICAgICAgICAgICAgICB7YXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMubWFwKChzLCBpKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgIDxJbmxpbmVSZXN1bHRMaVxuICAgICAgICAgICAgICAgICAgICAgIGtleT17cy50aXRsZX1cbiAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhldnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnYXV0b2NvbXBsZXRlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzLnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdhdXRvY29tcGxldGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzLnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxTZW1pYm9sZFNlYXJjaEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgIG1iPXsyIGFzIDB9XG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPXsxNH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZVdpZHRoPXs4fVxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgICAgICAgICAgICAgICAgIG1yPXsxMn1cbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxIaWdobGlnaHRlZFRleHQgc3VnZ2VzdGlvbj17c30gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9JbmxpbmVSZXN1bHRMaT5cbiAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgIDwvRmxleEJveD5cbiAgICAgICAgICAgICAgICB7KHNlYXJjaEFzWW91VHlwZVJlc3VsdHMgPT09IG51bGwgfHxcbiAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMudG9wLmxlbmd0aCA+IDApICYmIChcbiAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgIDxUZXh0IGFzPVwiaDJcIiBmb250U2l6ZT17MjB9IG1iPXsxNn0gbXQ9ezI0fT5cbiAgICAgICAgICAgICAgICAgICAgICBUb3AgcmVzdWx0c1xuICAgICAgICAgICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgICAgICAgICAgIDxGbGV4Qm94XG4gICAgICAgICAgICAgICAgICAgICAgZmxleERpcmVjdGlvbj1cImNvbHVtblwiXG4gICAgICAgICAgICAgICAgICAgICAgYXM9XCJ1bFwiXG4gICAgICAgICAgICAgICAgICAgICAgbGlzdFN0eWxlPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgcD17MH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHNlYXJjaEFzWW91VHlwZUxvYWRlcj8uc2hpbW1lclJvd3MubWFwKChyKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPElubGluZUxvYWRlckxpIGtleT17ci5rZXl9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3Iuc2hpbW1lcnMubWFwKCh3b3JkKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTaGltbWVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PXszMH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBweT17OCBhcyAwfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17d29yZC5rZXl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9e3dvcmQud2lkdGh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCb3hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udEZhbWlseT1cImFjY2VudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRDb2xvcj1cInRleHQtc2Vjb25kYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udFNpemU9e3sgXzogMTAgYXMgMTYgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyQ29sb3I9XCJib3JkZXItc2Vjb25kYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyPXsxfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJSYWRpdXM9XCJ4bFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB4PXsxNn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eT17MC4xfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbmJzcDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSW5saW5lTG9hZGVyTGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICkpXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMudG9wLm1hcCgocywgaSkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbmxpbmVSZXN1bHRMaVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtgJHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy5xdWVyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfToke2kudG9TdHJpbmcoKX1gfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiSW5kZXg9ezB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwibGlua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhldnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV2dC5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnc2VhcmNoX2FzX3lvdV90eXBlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsdWc6IHMuc2x1ZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLihzLmNvbnRlbnRJZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHsgY29udGVudF9pZDogcy5jb250ZW50SWQgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhZmVseVJlZGlyZWN0KHMudXJsUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnc2VhcmNoX2FzX3lvdV90eXBlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2x1Zzogcy5zbHVnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLihzLmNvbnRlbnRJZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7IGNvbnRlbnRfaWQ6IHMuY29udGVudElkIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2FmZWx5UmVkaXJlY3Qocy51cmxQYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEhpZ2hsaWdodGVkVGV4dCBzdWdnZXN0aW9uPXtzfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJhZGdlIHNpemU9XCJzbVwiIHZhcmlhbnQ9XCJ0ZXJ0aWFyeVwiIG1sPXsxMn0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtzLnR5cGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0JhZGdlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSW5saW5lUmVzdWx0TGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIHtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy50b3AubGVuZ3RoID09PSAwICYmIChcbiAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgIDxCb3ggZm9udFNpemU9e3sgXzogMjAsIHNtOiAyNiB9fSBtdD17MH0gbWI9ezQ4fT5cbiAgICAgICAgICAgICAgICAgICAgICB7YFdlIGNvdWxkbid0IGZpbmQgYSBtYXRjaCBmb3IgYH1cbiAgICAgICAgICAgICAgICAgICAgICA8VGV4dCBmb250V2VpZ2h0PVwiYm9sZFwiPntgXCIke3ZhbHVlVHJpbW1lZH0uXCJgfTwvVGV4dD5cbiAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAnIFRyeSBhbm90aGVyIGtleXdvcmQsIG9yIHNlZSB3aGF0IG91ciBtZW1iZXJzIGFyZSBsZWFybmluZy4nXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICAgICAgPE1lbnUgYm9yZGVyPVwibm9uZVwiIHZhcmlhbnQ9XCJwb3BvdmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPFBvcHVsYXJDb250ZW50IG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfSAvPlxuICAgICAgICAgICAgICAgICAgICA8L01lbnU+XG4gICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxNZW51IGJvcmRlcj1cIm5vbmVcIiB2YXJpYW50PVwicG9wb3ZlclwiPlxuICAgICAgICAgICAgICAgIDxQb3B1bGFyU2VhcmNoZXNcbiAgICAgICAgICAgICAgICAgIG5hdmlnYXRlVG9TZWFyY2g9e25hdmlnYXRlVG9TZWFyY2h9XG4gICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxQb3B1bGFyQ29udGVudCBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja30gLz5cbiAgICAgICAgICAgICAgPC9NZW51PlxuICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgeyEhc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8udG9wLmxlbmd0aCAmJiAoXG4gICAgICAgICAgICAgIDxTdHJva2VCdXR0b25cbiAgICAgICAgICAgICAgICBteT17MTZ9XG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCd2aWV3X2FsbF9yZXN1bHRzJywge1xuICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgIG5hdmlnYXRlVG9TZWFyY2godmFsdWUsIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkKTtcbiAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIFZpZXcgYWxsIHJlc3VsdHNcbiAgICAgICAgICAgICAgPC9TdHJva2VCdXR0b24+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgPFF1aXpBbmRIZWxwQ2VudGVyTGlua3NcbiAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9XG4gICAgICAgICAgICAgIGhhbmRsZUNsb3NlRHJvcGRvd249e2Nsb3NlU2VhcmNofVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L1N1Z2dlc3Rpb25Db250YWluZXI+XG4gICAgICAgIDwvQm94PlxuICAgICAgPC9Gb2N1c1RyYXA+XG4gICAgPC8+XG4gICk7XG59O1xuIl19 */");
|
|
82
|
+
}), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvU2VhcmNoL1NlYXJjaFBhbmUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTJFdUIiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL0FwcEhlYWRlci9TZWFyY2gvU2VhcmNoUGFuZS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYWRnZSxcbiAgQm94LFxuICBDb250ZW50Q29udGFpbmVyLFxuICBGbGV4Qm94LFxuICBGb2N1c1RyYXAsXG4gIEljb25CdXR0b24sXG4gIE1lbnUsXG4gIE1lbnVJdGVtLFxuICBTaGltbWVyLFxuICBTdHJva2VCdXR0b24sXG4gIFRleHQsXG59IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCB7IE1pbmlEZWxldGVJY29uLCBTZWFyY2hJY29uIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtaWNvbnMnO1xuaW1wb3J0IHsgY3NzLCB0aGVtZSwgdXNlQ3VycmVudE1vZGUgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IHVzZU9uRXNjSGFuZGxlciB9IGZyb20gJy4uL3NoYXJlZCc7XG5pbXBvcnQgeyBzZWFyY2hQbGFjZWhvbGRlciB9IGZyb20gJy4vY29uc3RzJztcbmltcG9ydCB7IFBvcHVsYXJDb250ZW50LCBQb3B1bGFyU2VhcmNoZXMgfSBmcm9tICcuL0RlZmF1bHRSZXN1bHRzJztcbmltcG9ydCB7IHVzZVVybENoYW5nZURldGVjdGlvbiB9IGZyb20gJy4vaG9va3MvdXNlVXJsQ2hhbmdlRGV0ZWN0aW9uJztcbmltcG9ydCB7IFF1aXpBbmRIZWxwQ2VudGVyTGlua3MgfSBmcm9tICcuL1F1aXpBbmRIZWxwQ2VudGVyTGlua3MnO1xuaW1wb3J0IHsgc2FmZWx5UmVkaXJlY3QgfSBmcm9tICcuL3NhZmVseVJlZGlyZWN0JztcbmltcG9ydCB7IHVzZVNlYXJjaFRyYWNraW5nQ29udGV4dCB9IGZyb20gJy4vU2VhcmNoVHJhY2tpbmdQcm92aWRlcic7XG5pbXBvcnQgeyBzZWFyY2hXb3JrZXIgfSBmcm9tICcuL1NlYXJjaFdvcmtlcic7XG5pbXBvcnQgdHlwZSB7XG4gIEF1dG9jb21wbGV0ZVN1Z2dlc3Rpb24sXG4gIFNlYXJjaEFzWW91VHlwZVJlc3VsdHMsXG59IGZyb20gJy4vU2VhcmNoV29ya2VyL3R5cGVzJztcbmltcG9ydCB7IFNlYXJjaFBhbmVQcm9wcyB9IGZyb20gJy4vdHlwZXMnO1xuXG5jb25zdCBGb3JtID0gQm94LndpdGhDb21wb25lbnQoJ2Zvcm0nKTtcbmNvbnN0IElucHV0ID0gQm94LndpdGhDb21wb25lbnQoJ2lucHV0Jyk7XG5cbmNvbnN0IFF1ZXJ5Q29udGFpbmVyID0gc3R5bGVkKENvbnRlbnRDb250YWluZXIpKFxuICBjc3Moe1xuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICB3aWR0aDogJzEwMCUnLFxuICAgIHB0OiAxNixcbiAgICBwYjogeyBfOiAwLCBtZDogMjQgfSxcbiAgICBweDogeyBfOiAyNCB9LFxuICB9KVxuKTtcblxuY29uc3QgU3VnZ2VzdGlvbkNvbnRhaW5lciA9IHN0eWxlZChDb250ZW50Q29udGFpbmVyKShcbiAgY3NzKHtcbiAgICBwdDogMTYsXG4gICAgcGI6IHsgXzogMCwgbWQ6IDI0IH0sXG4gICAgcHg6IHsgXzogMjQgfSxcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZElucHV0ID0gc3R5bGVkKElucHV0KShcbiAgY3NzKHtcbiAgICBvdXRsaW5lOiBgbm9uZWAsXG4gICAgJyY6OnBsYWNlaG9sZGVyJzoge1xuICAgICAgdGV4dENvbG9yOiB0aGVtZS5jb2xvcnNbJ3RleHQtc2Vjb25kYXJ5J10gYXMgbmV2ZXIsXG4gICAgfSxcbiAgfSlcbik7XG5cbmNvbnN0IElubGluZVJlc3VsdExpID0gc3R5bGVkKE1lbnVJdGVtKShcbiAgY3NzKHtcbiAgICBwbDogMCxcbiAgICBweTogOCxcbiAgICBmb250U2l6ZTogMTYsXG4gICAgJyY6Zm9jdXMtdmlzaWJsZTphZnRlcic6IHtcbiAgICAgIGxlZnQ6IC00LFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBJbmxpbmVMb2FkZXJMaSA9IHN0eWxlZC5saShcbiAgY3NzKHtcbiAgICBsaXN0U3R5bGVUeXBlOiAnbm9uZScsXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGdhcDogMTIsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gIH0pXG4pO1xuXG5leHBvcnQgY29uc3QgU2VtaWJvbGRTZWFyY2hJY29uID0gc3R5bGVkKFNlYXJjaEljb24pYFxuICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuICBjaXJjbGUsXG4gIHBhdGgge1xuICAgIHN0cm9rZS13aWR0aDogMnB4O1xuICB9XG4gIHJlY3Qge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0ycHgsIC0ycHgpO1xuICAgIGhlaWdodDogY2FsYygxMDAlICsgNHB4KTtcbiAgICB3aWR0aDogY2FsYygxMDAlICsgNHB4KTtcbiAgfVxuYDtcblxuY29uc3QgRWxsaXBzaXNCb3ggPSBzdHlsZWQoQm94KWBcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5gO1xuXG5jb25zdCBIaWdobGlnaHRlZFRleHQgPSAoe1xuICBzdWdnZXN0aW9uOiB7IHRpdGxlLCBzZWdtZW50cyB9LFxufToge1xuICBzdWdnZXN0aW9uOiBBdXRvY29tcGxldGVTdWdnZXN0aW9uO1xufSkgPT4ge1xuICBjb25zdCBtb2RlID0gdXNlQ3VycmVudE1vZGUoKTtcbiAgY29uc3QgaGlnaGxpZ2h0Q29sb3IgPSBtb2RlID09PSAnZGFyaycgPyAnaHlwZXInIDogJ3llbGxvdyc7XG5cbiAgcmV0dXJuIChcbiAgICA8RmxleEJveD5cbiAgICAgIDxFbGxpcHNpc0JveFxuICAgICAgICBtYXhXaWR0aD1cImNhbGMoMTAwdncgLSAxMjhweClcIlxuICAgICAgICB3aGl0ZVNwYWNlPVwicHJlXCJcbiAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgb3ZlcmZsb3c9XCJoaWRkZW5cIlxuICAgICAgPlxuICAgICAgICB7c2VnbWVudHMubWFwKChzZWdtZW50LCBpKSA9PiAoXG4gICAgICAgICAgPFRleHRcbiAgICAgICAgICAgIGtleT17YCR7dGl0bGV9OiR7aS50b1N0cmluZygpfWB9XG4gICAgICAgICAgICBsaW5lSGVpZ2h0PVwidGl0bGVcIlxuICAgICAgICAgICAgey4uLihzZWdtZW50LmhpZ2hsaWdodFxuICAgICAgICAgICAgICA/IHsgYmc6IGhpZ2hsaWdodENvbG9yLCBmb250V2VpZ2h0OiAnYm9sZCcgfVxuICAgICAgICAgICAgICA6IHt9KX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7c2VnbWVudC52YWx1ZX1cbiAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICkpfVxuICAgICAgPC9FbGxpcHNpc0JveD5cbiAgICAgIDxUZXh0IHNjcmVlbnJlYWRlcj57dGl0bGV9PC9UZXh0PlxuICAgIDwvRmxleEJveD5cbiAgKTtcbn07XG5cbnR5cGUgU2VhcmNoQXNZb3VUeXBlTG9hZGVyID0ge1xuICBzaGltbWVyUm93czoge1xuICAgIGtleTogc3RyaW5nO1xuICAgIHNoaW1tZXJzOiB7XG4gICAgICBrZXk6IHN0cmluZztcbiAgICAgIHdpZHRoOiBudW1iZXI7XG4gICAgfVtdO1xuICB9W107XG59O1xuXG5sZXQgbG9hZGVyS2V5ID0gMDtcbmZ1bmN0aW9uIHJuZExvYWRlcigpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBsdXNwbHVzXG4gIGNvbnN0IGtleSA9IGxvYWRlcktleSsrO1xuICBjb25zdCBsb2FkZXI6IFNlYXJjaEFzWW91VHlwZUxvYWRlciA9IHsgc2hpbW1lclJvd3M6IFtdIH07XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgNTsgaSsrKSB7XG4gICAgY29uc3Qgcm93ID0ge1xuICAgICAga2V5OiBgJHtrZXl9OiR7aX1gLFxuICAgICAgc2hpbW1lcnM6IFtdIGFzIHsga2V5OiBzdHJpbmc7IHdpZHRoOiBudW1iZXIgfVtdLFxuICAgIH07XG4gICAgY29uc3Qgd29yZHMgPSBNYXRoLmNlaWwoTWF0aC5yYW5kb20oKSAqIDMpO1xuICAgIGZvciAobGV0IGogPSAwOyBqIDwgd29yZHM7IGorKykge1xuICAgICAgY29uc3Qgd2lkdGggPSAxMiArIE1hdGgucm91bmQoTWF0aC5yYW5kb20oKSAqIDk2KTtcbiAgICAgIHJvdy5zaGltbWVycy5wdXNoKHtcbiAgICAgICAga2V5OiBgJHtrZXl9OiR7an1gLFxuICAgICAgICB3aWR0aCxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBsb2FkZXIuc2hpbW1lclJvd3MucHVzaChyb3cpO1xuICB9XG4gIHJldHVybiBsb2FkZXI7XG59XG5cbmV4cG9ydCBjb25zdCBTZWFyY2hQYW5lOiBSZWFjdC5GQzxTZWFyY2hQYW5lUHJvcHM+ID0gKHtcbiAgb25TZWFyY2gsXG4gIG9uVHJhY2tpbmdDbGljayxcbiAgc2VhcmNoQnV0dG9uUmVmLFxuICB0b2dnbGVTZWFyY2gsXG4gIG9uU2VhcmNoQXNZb3VUeXBlLFxufSkgPT4ge1xuICBjb25zdCB0aGVtZSA9IHVzZVRoZW1lKCk7XG4gIGNvbnN0IFt2YWx1ZSwgc2V0VmFsdWVdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCBpbnB1dFJlZiA9IHVzZVJlZjxIVE1MSW5wdXRFbGVtZW50PihudWxsKTtcbiAgY29uc3QgW2F1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zLCBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9uc10gPSB1c2VTdGF0ZTxcbiAgICBBdXRvY29tcGxldGVTdWdnZXN0aW9uW11cbiAgPihbXSk7XG4gIGNvbnN0IFtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLCBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzXSA9XG4gICAgdXNlU3RhdGU8U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyB8IG51bGw+KG51bGwpO1xuXG4gIGNvbnN0IFtzZWFyY2hSZXN1bHRDbGlja2VkLCBzZXRTZWFyY2hSZXN1bHRDbGlja2VkXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICBjb25zdCB7IHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zIH0gPSB1c2VTZWFyY2hUcmFja2luZ0NvbnRleHQoKTtcblxuICBjb25zdCBzZWFyY2hBc1lvdVR5cGVMb2FkZXIgPSBSZWFjdC51c2VNZW1vKFxuICAgICgpID0+IChzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsID8gcm5kTG9hZGVyKCkgOiBudWxsKSxcbiAgICBbc2VhcmNoQXNZb3VUeXBlUmVzdWx0c11cbiAgKTtcblxuICBjb25zdCB2YWx1ZVRyaW1tZWQgPSB2YWx1ZS50cmltKCk7XG5cbiAgY29uc3QgaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrID1cbiAgICBvblNlYXJjaEFzWW91VHlwZSAmJiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzICYmICFzZWFyY2hSZXN1bHRDbGlja2VkO1xuXG4gIGNvbnN0IGNsb3NlU2VhcmNoID0gYXN5bmMgKCkgPT4ge1xuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCB3aGVuIHVzZXIgbWFkZSBhIHNlYXJjaCBhbmQgdGhlbiBjbG9zZWQgc2VhcmNoIHBhbmVcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIGF3YWl0IHRvZ2dsZVNlYXJjaCgpO1xuICAgIC8vIGFkZHMgYSBsaXR0bGUgZGVsYXkgYmV0d2VlbiBjbG9zaW5nIHRoZSBzZWFyY2ggcGFuZSBhbmQgZm9jdXNpbmcgb24gdGhlIGJ1dHRvblxuICAgIC8vIHRvIHByZXZlbnQgdGhlIHNlYXJjaCBwYW5lIGZyb20gaW1tZWRpYXRlbHkgb3BlbmluZyBhZ2FpblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHNlYXJjaEJ1dHRvblJlZiAmJiBzZWFyY2hCdXR0b25SZWY/LmN1cnJlbnQpIHtcbiAgICAgICAgc2VhcmNoQnV0dG9uUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICB9XG4gICAgfSwgMTApO1xuICB9O1xuXG4gIGNvbnN0IG9uS2V5RG93biA9IHVzZU9uRXNjSGFuZGxlcihjbG9zZVNlYXJjaCk7XG5cbiAgY29uc3Qgb25Nb3VzZURvd25PdXRzaWRlID0gKHsgdGFyZ2V0IH06IE1vdXNlRXZlbnQpID0+IHtcbiAgICBjb25zdCBoYW5kbGVPdXRzaWRlQ2xpY2sgPSAoKSA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgICFkb2N1bWVudFxuICAgICAgICAgIC5xdWVyeVNlbGVjdG9yKCdbZGF0YS10ZXN0aWQ9XCJoZWFkZXItc2VhcmNoLWRyb3Bkb3duXCJdJylcbiAgICAgICAgICA/LmNvbnRhaW5zKHRhcmdldCBhcyBIVE1MRWxlbWVudCkgJiZcbiAgICAgICAgdGFyZ2V0ICE9PSBzZWFyY2hCdXR0b25SZWY/LmN1cnJlbnRcbiAgICAgICkge1xuICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgfVxuXG4gICAgICB0YXJnZXQ/LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBoYW5kbGVPdXRzaWRlQ2xpY2spO1xuICAgIH07XG5cbiAgICB0YXJnZXQ/LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBoYW5kbGVPdXRzaWRlQ2xpY2spO1xuICB9O1xuXG4gIGNvbnN0IG5hdmlnYXRlVG9TZWFyY2ggPSAoc2VhcmNoVGVybTogc3RyaW5nLCBmcm9tUHJldlNlYXJjaD86IHN0cmluZykgPT4ge1xuICAgIG9uU2VhcmNoKHNlYXJjaFRlcm0sIGZyb21QcmV2U2VhcmNoKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVDaGFuZ2U6IFJlYWN0LkNoYW5nZUV2ZW50SGFuZGxlcjxIVE1MSW5wdXRFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICBzZXRWYWx1ZShldnQudGFyZ2V0LnZhbHVlKTtcbiAgICAvLyByZXNldCB0byBmYWxzZSB3aGVuIHRoZSBzZWFyY2ggcXVlcnkgY2hhbmdlc1xuICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQoZmFsc2UpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVN1Ym1pdDogUmVhY3QuRm9ybUV2ZW50SGFuZGxlciA9IChldmVudCkgPT4ge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgd2hlbiB0aGUgdXNlciBzdWJtaXRzIHRoZSBmb3JtIHRvIGNhcHR1cmUgY29tcGxldGUgcXVlcnlcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIG5hdmlnYXRlVG9TZWFyY2godmFsdWUsIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkKTtcbiAgfTtcblxuICBjb25zdCBjbGVhcklucHV0ID0gKCkgPT4ge1xuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCBiZWZvcmUgdXNlciBjbGVhcnMgaW5wdXRcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIHNldFZhbHVlKCcnKTtcbiAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhbXSk7XG4gICAgLy8gcmVzZXQgdGhlIGNvbnRleHQgd2l0aCBlbXB0eSB2YWx1ZXNcbiAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICBxdWVyeTogJycsXG4gICAgICBzZWFyY2hJZDogJycsXG4gICAgICByZXN1bHRzQ291bnQ6IDAsXG4gICAgICBxdWVyeUxvYWRUaW1lOiAwLFxuICAgIH0pO1xuICB9O1xuXG4gIC8vIHdoZW4gdGhlIGN1cnJlbnQgVVJMIGNoYW5nZXMsIHdlIHdhbnQgdG8gY2xvc2UgdGhlIHNlYXJjaCBwYW5lIGlmIGl0J3Mgb3BlblxuICAvLyBhbmQgdHJhY2sgc2VhcmNoIGV2ZW50IGlmIHVzZXIgbWFkZSBhIHNlYXJjaFxuICB1c2VVcmxDaGFuZ2VEZXRlY3Rpb24oe1xuICAgIG9uVXJsQ2hhbmdlOiAoKSA9PiB7XG4gICAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgICAgfVxuXG4gICAgICB0b2dnbGVTZWFyY2goKTtcbiAgICB9LFxuICB9KTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIC8vIGRvbid0IHRyYWNrIGlmIGEgcmVzdWx0IHdhcyBjbGlja2VkIG9yIGlmIHdlIGRvbid0IGhhdmUgc2VhcmNoIHJlc3VsdHNcbiAgICBpZiAoXG4gICAgICBzZWFyY2hSZXN1bHRDbGlja2VkIHx8XG4gICAgICAhb25TZWFyY2hBc1lvdVR5cGUgfHxcbiAgICAgICFzZWFyY2hBc1lvdVR5cGVSZXN1bHRzIHx8XG4gICAgICAhdmFsdWVUcmltbWVkLmxlbmd0aFxuICAgIClcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11c2VsZXNzLXJldHVyblxuICAgICAgcmV0dXJuO1xuICB9LCBbXG4gICAgc2VhcmNoUmVzdWx0Q2xpY2tlZCxcbiAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLFxuICAgIHZhbHVlVHJpbW1lZCxcbiAgICBvblNlYXJjaEFzWW91VHlwZSxcbiAgXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpbnB1dFJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgIHNlYXJjaFdvcmtlci5pbml0KCk7XG4gIH0sIFtdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghdmFsdWVUcmltbWVkLmxlbmd0aCkge1xuICAgICAgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyhudWxsKTtcbiAgICAgIHNldEF1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zKFtdKTtcbiAgICAgIHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zKHtcbiAgICAgICAgcXVlcnk6ICcnLFxuICAgICAgICBzZWFyY2hJZDogJycsXG4gICAgICAgIHJlc3VsdHNDb3VudDogMCxcbiAgICAgICAgcXVlcnlMb2FkVGltZTogMCxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBjYW5jZWwgPSBmYWxzZTtcbiAgICBsZXQgY2xlYXJBdXRvY29tcGxldGUgPSB0cnVlO1xuICAgIGxldCBjbGVhclNlYXJjaEFzWW91VHlwZSA9IHRydWU7XG5cbiAgICBsZXQgc2VhcmNoRXZlbnROb1Jlc3VsdERlbGF5OiBOb2RlSlMuVGltZW91dDtcblxuICAgIGNvbnN0IGxvYWRlckRlbGF5ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAvKlxuICAgICAgICogV2FpdCAxMCBtaWxsaXNlY29uZHMgdG8gZ2V0IGEgcmVzcG9uc2UgZm9yIHdvcmtlciBiZWZvcmUgc2hvd2luZyBsb2FkZXJzLlxuICAgICAgICogVGhpcyBwcmV2ZW50cyBmbGlja2VyaW5nIGxvYWRlcnMgb24gcXVpY2sgb3IgY2FjaGVkIHJlc3VsdHMuXG4gICAgICAgKi9cbiAgICAgIGlmIChjYW5jZWwpIHJldHVybjtcbiAgICAgIGlmIChjbGVhckF1dG9jb21wbGV0ZSkgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgICAgaWYgKGNsZWFyU2VhcmNoQXNZb3VUeXBlKSBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKG51bGwpO1xuICAgIH0sIDEwKTtcblxuICAgIHNlYXJjaFdvcmtlci5hdXRvY29tcGxldGUodmFsdWVUcmltbWVkKS50aGVuKChzdWdnZXN0aW9ucykgPT4ge1xuICAgICAgY2xlYXJBdXRvY29tcGxldGUgPSBmYWxzZTtcblxuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuOyAvLyB0ZXh0IGhhcyBjaGFuZ2VkIHNpbmNlIHRoaXMgcmVxdWVzdCB3YXMgbWFkZVxuXG4gICAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhzdWdnZXN0aW9ucyk7XG4gICAgfSk7XG5cbiAgICBzZWFyY2hXb3JrZXIuc2VhcmNoQXNZb3VUeXBlKHZhbHVlVHJpbW1lZCkudGhlbigocmVzdWx0cykgPT4ge1xuICAgICAgY2xlYXJTZWFyY2hBc1lvdVR5cGUgPSBmYWxzZTtcblxuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuOyAvLyB0ZXh0IGhhcyBjaGFuZ2VkIHNpbmNlIHRoaXMgcmVxdWVzdCB3YXMgbWFkZVxuXG4gICAgICBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKHJlc3VsdHMpO1xuXG4gICAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICAgIHF1ZXJ5OiByZXN1bHRzLnF1ZXJ5LFxuICAgICAgICBzZWFyY2hJZDogcmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgcmVzdWx0c0NvdW50OiByZXN1bHRzLnRvcC5sZW5ndGgsXG4gICAgICAgIHF1ZXJ5TG9hZFRpbWU6IHJlc3VsdHMucXVlcnlMb2FkVGltZSxcbiAgICAgIH0pO1xuXG4gICAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgd2l0aCBhIHNtYWxsIGRlbGF5IHdoZW4gdGhlcmUgYXJlIG5vIHJlc3VsdHNcbiAgICAgIGlmIChcbiAgICAgICAgb25TZWFyY2hBc1lvdVR5cGUgJiZcbiAgICAgICAgcmVzdWx0cy50b3AubGVuZ3RoID09PSAwICYmXG4gICAgICAgICFzZWFyY2hSZXN1bHRDbGlja2VkXG4gICAgICApIHtcbiAgICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHF1ZXJ5TG9hZFRpbWUgfSA9IHJlc3VsdHM7XG4gICAgICAgIHNlYXJjaEV2ZW50Tm9SZXN1bHREZWxheSA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIGlmICghY2FuY2VsKSB7XG4gICAgICAgICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIDAsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSwgMzAwKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjYW5jZWwgPSB0cnVlO1xuICAgICAgY2xlYXJUaW1lb3V0KGxvYWRlckRlbGF5KTtcbiAgICAgIGNsZWFyVGltZW91dChzZWFyY2hFdmVudE5vUmVzdWx0RGVsYXkpO1xuICAgIH07XG4gIH0sIFtcbiAgICB2YWx1ZVRyaW1tZWQsXG4gICAgb25TZWFyY2hBc1lvdVR5cGUsXG4gICAgc2VhcmNoUmVzdWx0Q2xpY2tlZCxcbiAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyxcbiAgXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPEJveFxuICAgICAgICBhcmlhLWhpZGRlblxuICAgICAgICBiZz1cInNoYWRvdy1zZWNvbmRhcnlcIlxuICAgICAgICBoZWlnaHQ9XCIxMDB2aFwiXG4gICAgICAgIHBvc2l0aW9uPVwiZml4ZWRcIlxuICAgICAgICAvLyBXZSBhZGQgNXJlbSBoZXJlIGluIGNhc2UgdGhlcmUncyBzb21lIHNvcnQgb2YgYnJhbmRlZCBiYW5uZXIgYWJvdmUgc2VhcmNoXG4gICAgICAgIC8vIFRoZSBzZWFyY2ggYXJlYSBpcyBtdWNoIHRhbGxlciB0aGFuIDVyZW0gc28gdGhpcyBpcyBhIHNhZmUgYW1vdW50IG9mIHBhZGRpbmdcbiAgICAgICAgdG9wPXtgY2FsYygke3RoZW1lLmVsZW1lbnRzLmhlYWRlckhlaWdodH0gKyA1cmVtKWB9XG4gICAgICAgIHdpZHRoPXsxfVxuICAgICAgLz5cbiAgICAgIDxGb2N1c1RyYXBcbiAgICAgICAgb25Fc2NhcGVLZXk9e2Nsb3NlU2VhcmNofVxuICAgICAgICBvbkNsaWNrT3V0c2lkZT17b25Nb3VzZURvd25PdXRzaWRlfVxuICAgICAgICBhbGxvd1BhZ2VJbnRlcmFjdGlvblxuICAgICAgPlxuICAgICAgICA8Qm94XG4gICAgICAgICAgYmc9XCJiYWNrZ3JvdW5kXCJcbiAgICAgICAgICBib3JkZXJDb2xvckJvdHRvbT1cImJvcmRlci1wcmltYXJ5XCJcbiAgICAgICAgICBib3JkZXJDb2xvclRvcD1cImJvcmRlci10ZXJ0aWFyeVwiXG4gICAgICAgICAgYm9yZGVyU3R5bGU9XCJzb2xpZFwiXG4gICAgICAgICAgYm9yZGVyV2lkdGg9XCIycHggMCAxcHhcIlxuICAgICAgICAgIGRhdGEtdGVzdGlkPVwiaGVhZGVyLXNlYXJjaC1kcm9wZG93blwiXG4gICAgICAgICAgcG9zaXRpb249e3sgXzogJ2ZpeGVkJywgbWQ6ICdhYnNvbHV0ZScgfX1cbiAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgIG1heEhlaWdodD17eyBfOiAnY2FsYygxMDB2aCAtIDYzcHgpJywgbWQ6ICdjYWxjKDEwMHZoIC0gODBweCknIH19XG4gICAgICAgICAgb3ZlcmZsb3c9XCJhdXRvXCJcbiAgICAgICAgICB6SW5kZXg9ezEwfSAvLyBlbnN1cmUgZHJvcGRvd24gaXMgYWJvdmUgdGhlIHBhZ2UgY29udGVudFxuICAgICAgICA+XG4gICAgICAgICAgPEJveCBib3JkZXI9XCJub25lXCIgd2lkdGg9XCJhdXRvXCI+XG4gICAgICAgICAgICA8UXVlcnlDb250YWluZXI+XG4gICAgICAgICAgICAgIDxGbGV4Qm94XG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImJhc2VsaW5lXCJcbiAgICAgICAgICAgICAgICBib3JkZXJDb2xvcj1cImdyYXktNjAwXCJcbiAgICAgICAgICAgICAgICBib3JkZXJTdHlsZUJvdHRvbT1cInNvbGlkXCJcbiAgICAgICAgICAgICAgICBib3JkZXJXaWR0aEJvdHRvbT1cIjFweFwiXG4gICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTZWFyY2hJY29uXG4gICAgICAgICAgICAgICAgICBoZWlnaHQ9e3sgXzogMjAsIG1kOiAyNCB9fVxuICAgICAgICAgICAgICAgICAgd2lkdGg9e3sgXzogMjAsIG1kOiAyNCB9fVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPEZvcm1cbiAgICAgICAgICAgICAgICAgIGFjdGlvbj1cIi9zZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgaWQ9XCJzZWFyY2gtZm9ybVwiXG4gICAgICAgICAgICAgICAgICBtbD17OH1cbiAgICAgICAgICAgICAgICAgIG9uU3VibWl0PXtoYW5kbGVTdWJtaXR9XG4gICAgICAgICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxTdHlsZWRJbnB1dFxuICAgICAgICAgICAgICAgICAgICBhdXRvRm9jdXNcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZD1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICBib3JkZXI9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgZm9udFNpemU9e3sgXzogMjAsIG1kOiAyNiB9fVxuICAgICAgICAgICAgICAgICAgICBmb250V2VpZ2h0PVwiYm9sZFwiXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiaGVhZGVyLXNlYXJjaC1iYXJcIlxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwicXVlcnlcIlxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhlKSA9PiBvbktleURvd24oZSl9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtzZWFyY2hQbGFjZWhvbGRlcn1cbiAgICAgICAgICAgICAgICAgICAgcmVmPXtpbnB1dFJlZn1cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgICAgICAgYXV0b0NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9Gb3JtPlxuICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICBpY29uPXtNaW5pRGVsZXRlSWNvbn1cbiAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJDbGVhciBzZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgdGlwPVwiQ2xlYXIgc2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgIHRpcFByb3BzPXt7XG4gICAgICAgICAgICAgICAgICAgIGFsaWdubWVudDogJ2JvdHRvbS1jZW50ZXInLFxuICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ6ICdmbG9hdGluZycsXG4gICAgICAgICAgICAgICAgICAgIG5hcnJvdzogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgekluZGV4OiAyLFxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2NsZWFySW5wdXR9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvRmxleEJveD5cbiAgICAgICAgICAgIDwvUXVlcnlDb250YWluZXI+XG4gICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgPFN1Z2dlc3Rpb25Db250YWluZXI+XG4gICAgICAgICAgICB7dmFsdWVUcmltbWVkLmxlbmd0aCA+IDAgPyAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgPEZsZXhCb3ggZmxleERpcmVjdGlvbj1cImNvbHVtblwiIGFzPVwidWxcIiBsaXN0U3R5bGU9XCJub25lXCIgcD17MH0+XG4gICAgICAgICAgICAgICAgICB7YXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMubWFwKChzLCBpKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgIDxJbmxpbmVSZXN1bHRMaVxuICAgICAgICAgICAgICAgICAgICAgIGtleT17cy50aXRsZX1cbiAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhldnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnYXV0b2NvbXBsZXRlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzLnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdhdXRvY29tcGxldGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzLnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxTZW1pYm9sZFNlYXJjaEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgIG1iPXsyIGFzIDB9XG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPXsxNH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZVdpZHRoPXs4fVxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgICAgICAgICAgICAgICAgIG1yPXsxMn1cbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxIaWdobGlnaHRlZFRleHQgc3VnZ2VzdGlvbj17c30gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9JbmxpbmVSZXN1bHRMaT5cbiAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgIDwvRmxleEJveD5cbiAgICAgICAgICAgICAgICB7KHNlYXJjaEFzWW91VHlwZVJlc3VsdHMgPT09IG51bGwgfHxcbiAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMudG9wLmxlbmd0aCA+IDApICYmIChcbiAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgIDxUZXh0IGFzPVwiaDJcIiBmb250U2l6ZT17MjB9IG1iPXsxNn0gbXQ9ezI0fT5cbiAgICAgICAgICAgICAgICAgICAgICBUb3AgcmVzdWx0c1xuICAgICAgICAgICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgICAgICAgICAgIDxGbGV4Qm94XG4gICAgICAgICAgICAgICAgICAgICAgZmxleERpcmVjdGlvbj1cImNvbHVtblwiXG4gICAgICAgICAgICAgICAgICAgICAgYXM9XCJ1bFwiXG4gICAgICAgICAgICAgICAgICAgICAgbGlzdFN0eWxlPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgcD17MH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHNlYXJjaEFzWW91VHlwZUxvYWRlcj8uc2hpbW1lclJvd3MubWFwKChyKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPElubGluZUxvYWRlckxpIGtleT17ci5rZXl9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3Iuc2hpbW1lcnMubWFwKCh3b3JkKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTaGltbWVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PXszMH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBweT17OCBhcyAwfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17d29yZC5rZXl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9e3dvcmQud2lkdGh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCb3hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udEZhbWlseT1cImFjY2VudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRDb2xvcj1cInRleHQtc2Vjb25kYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udFNpemU9e3sgXzogMTAgYXMgMTYgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyQ29sb3I9XCJib3JkZXItc2Vjb25kYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyPXsxfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJSYWRpdXM9XCJ4bFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB4PXsxNn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eT17MC4xfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbmJzcDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSW5saW5lTG9hZGVyTGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICkpXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMudG9wLm1hcCgocywgaSkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbmxpbmVSZXN1bHRMaVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtgJHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy5xdWVyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfToke2kudG9TdHJpbmcoKX1gfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiSW5kZXg9ezB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwibGlua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhldnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV2dC5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnc2VhcmNoX2FzX3lvdV90eXBlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsdWc6IHMuc2x1ZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLihzLmNvbnRlbnRJZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHsgY29udGVudF9pZDogcy5jb250ZW50SWQgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhZmVseVJlZGlyZWN0KHMudXJsUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnc2VhcmNoX2FzX3lvdV90eXBlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2x1Zzogcy5zbHVnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLihzLmNvbnRlbnRJZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7IGNvbnRlbnRfaWQ6IHMuY29udGVudElkIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2FmZWx5UmVkaXJlY3Qocy51cmxQYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEhpZ2hsaWdodGVkVGV4dCBzdWdnZXN0aW9uPXtzfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJhZGdlIHNpemU9XCJzbVwiIHZhcmlhbnQ9XCJ0ZXJ0aWFyeVwiIG1sPXsxMn0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtzLnR5cGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0JhZGdlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSW5saW5lUmVzdWx0TGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIHtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy50b3AubGVuZ3RoID09PSAwICYmIChcbiAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgIDxCb3ggZm9udFNpemU9e3sgXzogMjAsIHNtOiAyNiB9fSBtdD17MH0gbWI9ezQ4fT5cbiAgICAgICAgICAgICAgICAgICAgICB7YFdlIGNvdWxkbid0IGZpbmQgYSBtYXRjaCBmb3IgYH1cbiAgICAgICAgICAgICAgICAgICAgICA8VGV4dCBmb250V2VpZ2h0PVwiYm9sZFwiPntgXCIke3ZhbHVlVHJpbW1lZH0uXCJgfTwvVGV4dD5cbiAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAnIFRyeSBhbm90aGVyIGtleXdvcmQsIG9yIHNlZSB3aGF0IG91ciBtZW1iZXJzIGFyZSBsZWFybmluZy4nXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICAgICAgPE1lbnUgYm9yZGVyPVwibm9uZVwiIHZhcmlhbnQ9XCJwb3BvdmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPFBvcHVsYXJDb250ZW50IG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfSAvPlxuICAgICAgICAgICAgICAgICAgICA8L01lbnU+XG4gICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxNZW51IGJvcmRlcj1cIm5vbmVcIiB2YXJpYW50PVwicG9wb3ZlclwiPlxuICAgICAgICAgICAgICAgIDxQb3B1bGFyU2VhcmNoZXNcbiAgICAgICAgICAgICAgICAgIG5hdmlnYXRlVG9TZWFyY2g9e25hdmlnYXRlVG9TZWFyY2h9XG4gICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxQb3B1bGFyQ29udGVudCBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja30gLz5cbiAgICAgICAgICAgICAgPC9NZW51PlxuICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgeyEhc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8udG9wLmxlbmd0aCAmJiAoXG4gICAgICAgICAgICAgIDxTdHJva2VCdXR0b25cbiAgICAgICAgICAgICAgICBteT17MTZ9XG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCd2aWV3X2FsbF9yZXN1bHRzJywge1xuICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgIG5hdmlnYXRlVG9TZWFyY2godmFsdWUsIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkKTtcbiAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIFZpZXcgYWxsIHJlc3VsdHNcbiAgICAgICAgICAgICAgPC9TdHJva2VCdXR0b24+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgPFF1aXpBbmRIZWxwQ2VudGVyTGlua3NcbiAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9XG4gICAgICAgICAgICAgIGhhbmRsZUNsb3NlRHJvcGRvd249e2Nsb3NlU2VhcmNofVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L1N1Z2dlc3Rpb25Db250YWluZXI+XG4gICAgICAgIDwvQm94PlxuICAgICAgPC9Gb2N1c1RyYXA+XG4gICAgPC8+XG4gICk7XG59O1xuIl19 */");
|
|
83
83
|
export const SemiboldSearchIcon = /*#__PURE__*/_styled(SearchIcon, {
|
|
84
84
|
target: "e1e5b20r1",
|
|
85
85
|
label: "SemiboldSearchIcon"
|
|
@@ -88,7 +88,7 @@ export const SemiboldSearchIcon = /*#__PURE__*/_styled(SearchIcon, {
|
|
|
88
88
|
styles: "overflow:visible!important;circle,path{stroke-width:2px;}rect{transform:translate(-2px, -2px);height:calc(100% + 4px);width:calc(100% + 4px);}"
|
|
89
89
|
} : {
|
|
90
90
|
name: "138xhwl",
|
|
91
|
-
styles: "overflow:visible!important;circle,path{stroke-width:2px;}rect{transform:translate(-2px, -2px);height:calc(100% + 4px);width:calc(100% + 4px);}/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvU2VhcmNoL1NlYXJjaFBhbmUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9Gb0QiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL0FwcEhlYWRlci9TZWFyY2gvU2VhcmNoUGFuZS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYWRnZSxcbiAgQm94LFxuICBDb250ZW50Q29udGFpbmVyLFxuICBGbGV4Qm94LFxuICBGb2N1c1RyYXAsXG4gIEljb25CdXR0b24sXG4gIE1lbnUsXG4gIE1lbnVJdGVtLFxuICBTaGltbWVyLFxuICBTdHJva2VCdXR0b24sXG4gIFRleHQsXG59IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCB7IE1pbmlEZWxldGVJY29uLCBTZWFyY2hJY29uIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtaWNvbnMnO1xuaW1wb3J0IHsgY3NzLCB0aGVtZSwgdXNlQ3VycmVudE1vZGUgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IHVzZU9uRXNjSGFuZGxlciB9IGZyb20gJy4uL3NoYXJlZCc7XG5pbXBvcnQgeyBzZWFyY2hQbGFjZWhvbGRlciB9IGZyb20gJy4vY29uc3RzJztcbmltcG9ydCB7IFBvcHVsYXJDb250ZW50LCBQb3B1bGFyU2VhcmNoZXMgfSBmcm9tICcuL0RlZmF1bHRSZXN1bHRzJztcbmltcG9ydCB7IHVzZVVybENoYW5nZURldGVjdGlvbiB9IGZyb20gJy4vaG9va3MvdXNlVXJsQ2hhbmdlRGV0ZWN0aW9uJztcbmltcG9ydCB7IFF1aXpBbmRIZWxwQ2VudGVyTGlua3MgfSBmcm9tICcuL1F1aXpBbmRIZWxwQ2VudGVyTGlua3MnO1xuaW1wb3J0IHsgc2FmZWx5UmVkaXJlY3QgfSBmcm9tICcuL3NhZmVseVJlZGlyZWN0JztcbmltcG9ydCB7IHVzZVNlYXJjaFRyYWNraW5nQ29udGV4dCB9IGZyb20gJy4vU2VhcmNoVHJhY2tpbmdQcm92aWRlcic7XG5pbXBvcnQgeyBzZWFyY2hXb3JrZXIgfSBmcm9tICcuL1NlYXJjaFdvcmtlcic7XG5pbXBvcnQgdHlwZSB7XG4gIEF1dG9jb21wbGV0ZVN1Z2dlc3Rpb24sXG4gIFNlYXJjaEFzWW91VHlwZVJlc3VsdHMsXG59IGZyb20gJy4vU2VhcmNoV29ya2VyL3R5cGVzJztcbmltcG9ydCB7IFNlYXJjaFBhbmVQcm9wcyB9IGZyb20gJy4vdHlwZXMnO1xuXG5jb25zdCBGb3JtID0gQm94LndpdGhDb21wb25lbnQoJ2Zvcm0nKTtcbmNvbnN0IElucHV0ID0gQm94LndpdGhDb21wb25lbnQoJ2lucHV0Jyk7XG5cbmNvbnN0IFF1ZXJ5Q29udGFpbmVyID0gc3R5bGVkKENvbnRlbnRDb250YWluZXIpKFxuICBjc3Moe1xuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICB3aWR0aDogJzEwMCUnLFxuICAgIHB0OiAxNixcbiAgICBwYjogeyBfOiAwLCBtZDogMjQgfSxcbiAgICBweDogeyBfOiAyNCB9LFxuICB9KVxuKTtcblxuY29uc3QgU3VnZ2VzdGlvbkNvbnRhaW5lciA9IHN0eWxlZChDb250ZW50Q29udGFpbmVyKShcbiAgY3NzKHtcbiAgICBwdDogMTYsXG4gICAgcGI6IHsgXzogMCwgbWQ6IDI0IH0sXG4gICAgcHg6IHsgXzogMjQgfSxcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZElucHV0ID0gc3R5bGVkKElucHV0KShcbiAgY3NzKHtcbiAgICBvdXRsaW5lOiBgbm9uZWAsXG4gICAgJyY6OnBsYWNlaG9sZGVyJzoge1xuICAgICAgdGV4dENvbG9yOiB0aGVtZS5jb2xvcnNbJ3RleHQtc2Vjb25kYXJ5J10gYXMgbmV2ZXIsXG4gICAgfSxcbiAgfSlcbik7XG5cbmNvbnN0IElubGluZVJlc3VsdExpID0gc3R5bGVkKE1lbnVJdGVtKShcbiAgY3NzKHtcbiAgICBwbDogMCxcbiAgICBweTogOCxcbiAgICBmb250U2l6ZTogMTYsXG4gICAgJyY6Zm9jdXMtdmlzaWJsZTphZnRlcic6IHtcbiAgICAgIGxlZnQ6IC00LFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBJbmxpbmVMb2FkZXJMaSA9IHN0eWxlZC5saShcbiAgY3NzKHtcbiAgICBsaXN0U3R5bGVUeXBlOiAnbm9uZScsXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGdhcDogMTIsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gIH0pXG4pO1xuXG5leHBvcnQgY29uc3QgU2VtaWJvbGRTZWFyY2hJY29uID0gc3R5bGVkKFNlYXJjaEljb24pYFxuICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuICBjaXJjbGUsXG4gIHBhdGgge1xuICAgIHN0cm9rZS13aWR0aDogMnB4O1xuICB9XG4gIHJlY3Qge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0ycHgsIC0ycHgpO1xuICAgIGhlaWdodDogY2FsYygxMDAlICsgNHB4KTtcbiAgICB3aWR0aDogY2FsYygxMDAlICsgNHB4KTtcbiAgfVxuYDtcblxuY29uc3QgRWxsaXBzaXNCb3ggPSBzdHlsZWQoQm94KWBcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5gO1xuXG5jb25zdCBIaWdobGlnaHRlZFRleHQgPSAoe1xuICBzdWdnZXN0aW9uOiB7IHRpdGxlLCBzZWdtZW50cyB9LFxufToge1xuICBzdWdnZXN0aW9uOiBBdXRvY29tcGxldGVTdWdnZXN0aW9uO1xufSkgPT4ge1xuICBjb25zdCBtb2RlID0gdXNlQ3VycmVudE1vZGUoKTtcbiAgY29uc3QgaGlnaGxpZ2h0Q29sb3IgPSBtb2RlID09PSAnZGFyaycgPyAnaHlwZXInIDogJ3llbGxvdyc7XG5cbiAgcmV0dXJuIChcbiAgICA8RmxleEJveD5cbiAgICAgIDxFbGxpcHNpc0JveFxuICAgICAgICBtYXhXaWR0aD1cImNhbGMoMTAwdncgLSAxMjhweClcIlxuICAgICAgICB3aGl0ZVNwYWNlPVwicHJlXCJcbiAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgb3ZlcmZsb3c9XCJoaWRkZW5cIlxuICAgICAgPlxuICAgICAgICB7c2VnbWVudHMubWFwKChzZWdtZW50LCBpKSA9PiAoXG4gICAgICAgICAgPFRleHRcbiAgICAgICAgICAgIGtleT17YCR7dGl0bGV9OiR7aS50b1N0cmluZygpfWB9XG4gICAgICAgICAgICBsaW5lSGVpZ2h0PVwidGl0bGVcIlxuICAgICAgICAgICAgey4uLihzZWdtZW50LmhpZ2hsaWdodFxuICAgICAgICAgICAgICA/IHsgYmc6IGhpZ2hsaWdodENvbG9yLCBmb250V2VpZ2h0OiAnYm9sZCcgfVxuICAgICAgICAgICAgICA6IHt9KX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7c2VnbWVudC52YWx1ZX1cbiAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICkpfVxuICAgICAgPC9FbGxpcHNpc0JveD5cbiAgICAgIDxUZXh0IHNjcmVlbnJlYWRlcj57dGl0bGV9PC9UZXh0PlxuICAgIDwvRmxleEJveD5cbiAgKTtcbn07XG5cbnR5cGUgU2VhcmNoQXNZb3VUeXBlTG9hZGVyID0ge1xuICBzaGltbWVyUm93czoge1xuICAgIGtleTogc3RyaW5nO1xuICAgIHNoaW1tZXJzOiB7XG4gICAgICBrZXk6IHN0cmluZztcbiAgICAgIHdpZHRoOiBudW1iZXI7XG4gICAgfVtdO1xuICB9W107XG59O1xuXG5sZXQgbG9hZGVyS2V5ID0gMDtcbmZ1bmN0aW9uIHJuZExvYWRlcigpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBsdXNwbHVzXG4gIGNvbnN0IGtleSA9IGxvYWRlcktleSsrO1xuICBjb25zdCBsb2FkZXI6IFNlYXJjaEFzWW91VHlwZUxvYWRlciA9IHsgc2hpbW1lclJvd3M6IFtdIH07XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgNTsgaSsrKSB7XG4gICAgY29uc3Qgcm93ID0ge1xuICAgICAga2V5OiBgJHtrZXl9OiR7aX1gLFxuICAgICAgc2hpbW1lcnM6IFtdIGFzIHsga2V5OiBzdHJpbmc7IHdpZHRoOiBudW1iZXIgfVtdLFxuICAgIH07XG4gICAgY29uc3Qgd29yZHMgPSBNYXRoLmNlaWwoTWF0aC5yYW5kb20oKSAqIDMpO1xuICAgIGZvciAobGV0IGogPSAwOyBqIDwgd29yZHM7IGorKykge1xuICAgICAgY29uc3Qgd2lkdGggPSAxMiArIE1hdGgucm91bmQoTWF0aC5yYW5kb20oKSAqIDk2KTtcbiAgICAgIHJvdy5zaGltbWVycy5wdXNoKHtcbiAgICAgICAga2V5OiBgJHtrZXl9OiR7an1gLFxuICAgICAgICB3aWR0aCxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBsb2FkZXIuc2hpbW1lclJvd3MucHVzaChyb3cpO1xuICB9XG4gIHJldHVybiBsb2FkZXI7XG59XG5cbmV4cG9ydCBjb25zdCBTZWFyY2hQYW5lOiBSZWFjdC5GQzxTZWFyY2hQYW5lUHJvcHM+ID0gKHtcbiAgb25TZWFyY2gsXG4gIG9uVHJhY2tpbmdDbGljayxcbiAgc2VhcmNoQnV0dG9uUmVmLFxuICB0b2dnbGVTZWFyY2gsXG4gIG9uU2VhcmNoQXNZb3VUeXBlLFxufSkgPT4ge1xuICBjb25zdCB0aGVtZSA9IHVzZVRoZW1lKCk7XG4gIGNvbnN0IFt2YWx1ZSwgc2V0VmFsdWVdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCBpbnB1dFJlZiA9IHVzZVJlZjxIVE1MSW5wdXRFbGVtZW50PihudWxsKTtcbiAgY29uc3QgW2F1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zLCBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9uc10gPSB1c2VTdGF0ZTxcbiAgICBBdXRvY29tcGxldGVTdWdnZXN0aW9uW11cbiAgPihbXSk7XG4gIGNvbnN0IFtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLCBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzXSA9XG4gICAgdXNlU3RhdGU8U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyB8IG51bGw+KG51bGwpO1xuXG4gIGNvbnN0IFtzZWFyY2hSZXN1bHRDbGlja2VkLCBzZXRTZWFyY2hSZXN1bHRDbGlja2VkXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICBjb25zdCB7IHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zIH0gPSB1c2VTZWFyY2hUcmFja2luZ0NvbnRleHQoKTtcblxuICBjb25zdCBzZWFyY2hBc1lvdVR5cGVMb2FkZXIgPSBSZWFjdC51c2VNZW1vKFxuICAgICgpID0+IChzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsID8gcm5kTG9hZGVyKCkgOiBudWxsKSxcbiAgICBbc2VhcmNoQXNZb3VUeXBlUmVzdWx0c11cbiAgKTtcblxuICBjb25zdCB2YWx1ZVRyaW1tZWQgPSB2YWx1ZS50cmltKCk7XG5cbiAgY29uc3QgaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrID1cbiAgICBvblNlYXJjaEFzWW91VHlwZSAmJiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzICYmICFzZWFyY2hSZXN1bHRDbGlja2VkO1xuXG4gIGNvbnN0IGNsb3NlU2VhcmNoID0gYXN5bmMgKCkgPT4ge1xuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCB3aGVuIHVzZXIgbWFkZSBhIHNlYXJjaCBhbmQgdGhlbiBjbG9zZWQgc2VhcmNoIHBhbmVcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIGF3YWl0IHRvZ2dsZVNlYXJjaCgpO1xuICAgIC8vIGFkZHMgYSBsaXR0bGUgZGVsYXkgYmV0d2VlbiBjbG9zaW5nIHRoZSBzZWFyY2ggcGFuZSBhbmQgZm9jdXNpbmcgb24gdGhlIGJ1dHRvblxuICAgIC8vIHRvIHByZXZlbnQgdGhlIHNlYXJjaCBwYW5lIGZyb20gaW1tZWRpYXRlbHkgb3BlbmluZyBhZ2FpblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHNlYXJjaEJ1dHRvblJlZiAmJiBzZWFyY2hCdXR0b25SZWY/LmN1cnJlbnQpIHtcbiAgICAgICAgc2VhcmNoQnV0dG9uUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICB9XG4gICAgfSwgMTApO1xuICB9O1xuXG4gIGNvbnN0IG9uS2V5RG93biA9IHVzZU9uRXNjSGFuZGxlcihjbG9zZVNlYXJjaCk7XG5cbiAgY29uc3Qgb25Nb3VzZURvd25PdXRzaWRlID0gKHsgdGFyZ2V0IH06IE1vdXNlRXZlbnQpID0+IHtcbiAgICBjb25zdCBoYW5kbGVPdXRzaWRlQ2xpY2sgPSAoKSA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgICFkb2N1bWVudFxuICAgICAgICAgIC5xdWVyeVNlbGVjdG9yKCdbZGF0YS10ZXN0aWQ9XCJoZWFkZXItc2VhcmNoLWRyb3Bkb3duXCJdJylcbiAgICAgICAgICA/LmNvbnRhaW5zKHRhcmdldCBhcyBIVE1MRWxlbWVudCkgJiZcbiAgICAgICAgdGFyZ2V0ICE9PSBzZWFyY2hCdXR0b25SZWY/LmN1cnJlbnRcbiAgICAgICkge1xuICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgfVxuXG4gICAgICB0YXJnZXQ/LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBoYW5kbGVPdXRzaWRlQ2xpY2spO1xuICAgIH07XG5cbiAgICB0YXJnZXQ/LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBoYW5kbGVPdXRzaWRlQ2xpY2spO1xuICB9O1xuXG4gIGNvbnN0IG5hdmlnYXRlVG9TZWFyY2ggPSAoc2VhcmNoVGVybTogc3RyaW5nLCBmcm9tUHJldlNlYXJjaD86IHN0cmluZykgPT4ge1xuICAgIG9uU2VhcmNoKHNlYXJjaFRlcm0sIGZyb21QcmV2U2VhcmNoKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVDaGFuZ2U6IFJlYWN0LkNoYW5nZUV2ZW50SGFuZGxlcjxIVE1MSW5wdXRFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICBzZXRWYWx1ZShldnQudGFyZ2V0LnZhbHVlKTtcbiAgICAvLyByZXNldCB0byBmYWxzZSB3aGVuIHRoZSBzZWFyY2ggcXVlcnkgY2hhbmdlc1xuICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQoZmFsc2UpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVN1Ym1pdDogUmVhY3QuRm9ybUV2ZW50SGFuZGxlciA9IChldmVudCkgPT4ge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgd2hlbiB0aGUgdXNlciBzdWJtaXRzIHRoZSBmb3JtIHRvIGNhcHR1cmUgY29tcGxldGUgcXVlcnlcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIG5hdmlnYXRlVG9TZWFyY2godmFsdWUsIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkKTtcbiAgfTtcblxuICBjb25zdCBjbGVhcklucHV0ID0gKCkgPT4ge1xuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCBiZWZvcmUgdXNlciBjbGVhcnMgaW5wdXRcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIHNldFZhbHVlKCcnKTtcbiAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhbXSk7XG4gICAgLy8gcmVzZXQgdGhlIGNvbnRleHQgd2l0aCBlbXB0eSB2YWx1ZXNcbiAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICBxdWVyeTogJycsXG4gICAgICBzZWFyY2hJZDogJycsXG4gICAgICByZXN1bHRzQ291bnQ6IDAsXG4gICAgICBxdWVyeUxvYWRUaW1lOiAwLFxuICAgIH0pO1xuICB9O1xuXG4gIC8vIHdoZW4gdGhlIGN1cnJlbnQgVVJMIGNoYW5nZXMsIHdlIHdhbnQgdG8gY2xvc2UgdGhlIHNlYXJjaCBwYW5lIGlmIGl0J3Mgb3BlblxuICAvLyBhbmQgdHJhY2sgc2VhcmNoIGV2ZW50IGlmIHVzZXIgbWFkZSBhIHNlYXJjaFxuICB1c2VVcmxDaGFuZ2VEZXRlY3Rpb24oe1xuICAgIG9uVXJsQ2hhbmdlOiAoKSA9PiB7XG4gICAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgICAgfVxuXG4gICAgICB0b2dnbGVTZWFyY2goKTtcbiAgICB9LFxuICB9KTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIC8vIGRvbid0IHRyYWNrIGlmIGEgcmVzdWx0IHdhcyBjbGlja2VkIG9yIGlmIHdlIGRvbid0IGhhdmUgc2VhcmNoIHJlc3VsdHNcbiAgICBpZiAoXG4gICAgICBzZWFyY2hSZXN1bHRDbGlja2VkIHx8XG4gICAgICAhb25TZWFyY2hBc1lvdVR5cGUgfHxcbiAgICAgICFzZWFyY2hBc1lvdVR5cGVSZXN1bHRzIHx8XG4gICAgICAhdmFsdWVUcmltbWVkLmxlbmd0aFxuICAgIClcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11c2VsZXNzLXJldHVyblxuICAgICAgcmV0dXJuO1xuICB9LCBbXG4gICAgc2VhcmNoUmVzdWx0Q2xpY2tlZCxcbiAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLFxuICAgIHZhbHVlVHJpbW1lZCxcbiAgICBvblNlYXJjaEFzWW91VHlwZSxcbiAgXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpbnB1dFJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgIHNlYXJjaFdvcmtlci5pbml0KCk7XG4gIH0sIFtdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghdmFsdWVUcmltbWVkLmxlbmd0aCkge1xuICAgICAgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyhudWxsKTtcbiAgICAgIHNldEF1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zKFtdKTtcbiAgICAgIHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zKHtcbiAgICAgICAgcXVlcnk6ICcnLFxuICAgICAgICBzZWFyY2hJZDogJycsXG4gICAgICAgIHJlc3VsdHNDb3VudDogMCxcbiAgICAgICAgcXVlcnlMb2FkVGltZTogMCxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBjYW5jZWwgPSBmYWxzZTtcbiAgICBsZXQgY2xlYXJBdXRvY29tcGxldGUgPSB0cnVlO1xuICAgIGxldCBjbGVhclNlYXJjaEFzWW91VHlwZSA9IHRydWU7XG5cbiAgICBsZXQgc2VhcmNoRXZlbnROb1Jlc3VsdERlbGF5OiBOb2RlSlMuVGltZW91dDtcblxuICAgIGNvbnN0IGxvYWRlckRlbGF5ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAvKlxuICAgICAgICogV2FpdCAxMCBtaWxsaXNlY29uZHMgdG8gZ2V0IGEgcmVzcG9uc2UgZm9yIHdvcmtlciBiZWZvcmUgc2hvd2luZyBsb2FkZXJzLlxuICAgICAgICogVGhpcyBwcmV2ZW50cyBmbGlja2VyaW5nIGxvYWRlcnMgb24gcXVpY2sgb3IgY2FjaGVkIHJlc3VsdHMuXG4gICAgICAgKi9cbiAgICAgIGlmIChjYW5jZWwpIHJldHVybjtcbiAgICAgIGlmIChjbGVhckF1dG9jb21wbGV0ZSkgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgICAgaWYgKGNsZWFyU2VhcmNoQXNZb3VUeXBlKSBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKG51bGwpO1xuICAgIH0sIDEwKTtcblxuICAgIHNlYXJjaFdvcmtlci5hdXRvY29tcGxldGUodmFsdWVUcmltbWVkKS50aGVuKChzdWdnZXN0aW9ucykgPT4ge1xuICAgICAgY2xlYXJBdXRvY29tcGxldGUgPSBmYWxzZTtcblxuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuOyAvLyB0ZXh0IGhhcyBjaGFuZ2VkIHNpbmNlIHRoaXMgcmVxdWVzdCB3YXMgbWFkZVxuXG4gICAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhzdWdnZXN0aW9ucyk7XG4gICAgfSk7XG5cbiAgICBzZWFyY2hXb3JrZXIuc2VhcmNoQXNZb3VUeXBlKHZhbHVlVHJpbW1lZCkudGhlbigocmVzdWx0cykgPT4ge1xuICAgICAgY2xlYXJTZWFyY2hBc1lvdVR5cGUgPSBmYWxzZTtcblxuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuOyAvLyB0ZXh0IGhhcyBjaGFuZ2VkIHNpbmNlIHRoaXMgcmVxdWVzdCB3YXMgbWFkZVxuXG4gICAgICBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKHJlc3VsdHMpO1xuXG4gICAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICAgIHF1ZXJ5OiByZXN1bHRzLnF1ZXJ5LFxuICAgICAgICBzZWFyY2hJZDogcmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgcmVzdWx0c0NvdW50OiByZXN1bHRzLnRvcC5sZW5ndGgsXG4gICAgICAgIHF1ZXJ5TG9hZFRpbWU6IHJlc3VsdHMucXVlcnlMb2FkVGltZSxcbiAgICAgIH0pO1xuXG4gICAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgd2l0aCBhIHNtYWxsIGRlbGF5IHdoZW4gdGhlcmUgYXJlIG5vIHJlc3VsdHNcbiAgICAgIGlmIChcbiAgICAgICAgb25TZWFyY2hBc1lvdVR5cGUgJiZcbiAgICAgICAgcmVzdWx0cy50b3AubGVuZ3RoID09PSAwICYmXG4gICAgICAgICFzZWFyY2hSZXN1bHRDbGlja2VkXG4gICAgICApIHtcbiAgICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHF1ZXJ5TG9hZFRpbWUgfSA9IHJlc3VsdHM7XG4gICAgICAgIHNlYXJjaEV2ZW50Tm9SZXN1bHREZWxheSA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIGlmICghY2FuY2VsKSB7XG4gICAgICAgICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIDAsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSwgMzAwKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjYW5jZWwgPSB0cnVlO1xuICAgICAgY2xlYXJUaW1lb3V0KGxvYWRlckRlbGF5KTtcbiAgICAgIGNsZWFyVGltZW91dChzZWFyY2hFdmVudE5vUmVzdWx0RGVsYXkpO1xuICAgIH07XG4gIH0sIFtcbiAgICB2YWx1ZVRyaW1tZWQsXG4gICAgb25TZWFyY2hBc1lvdVR5cGUsXG4gICAgc2VhcmNoUmVzdWx0Q2xpY2tlZCxcbiAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyxcbiAgXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPEJveFxuICAgICAgICBhcmlhLWhpZGRlblxuICAgICAgICBiZz1cInNoYWRvdy1zZWNvbmRhcnlcIlxuICAgICAgICBoZWlnaHQ9XCIxMDB2aFwiXG4gICAgICAgIHBvc2l0aW9uPVwiZml4ZWRcIlxuICAgICAgICAvLyBXZSBhZGQgNnJlbSBoZXJlIGluIGNhc2UgdGhlcmUncyBzb21lIHNvcnQgb2YgYnJhbmRlZCBiYW5uZXIgYWJvdmUgc2VhcmNoXG4gICAgICAgIC8vIFRoZSBzZWFyY2ggYXJlYSBpcyBtdWNoIHRhbGxlciB0aGFuIDZyZW0gc28gdGhpcyBpcyBhIHNhZmUgYW1vdW50IG9mIHBhZGRpbmdcbiAgICAgICAgdG9wPXtgY2FsYygke3RoZW1lLmVsZW1lbnRzLmhlYWRlckhlaWdodH0gKyA2cmVtKWB9XG4gICAgICAgIHdpZHRoPXsxfVxuICAgICAgLz5cbiAgICAgIDxGb2N1c1RyYXBcbiAgICAgICAgb25Fc2NhcGVLZXk9e2Nsb3NlU2VhcmNofVxuICAgICAgICBvbkNsaWNrT3V0c2lkZT17b25Nb3VzZURvd25PdXRzaWRlfVxuICAgICAgICBhbGxvd1BhZ2VJbnRlcmFjdGlvblxuICAgICAgPlxuICAgICAgICA8Qm94XG4gICAgICAgICAgYmc9XCJiYWNrZ3JvdW5kXCJcbiAgICAgICAgICBib3JkZXJDb2xvckJvdHRvbT1cImJvcmRlci1wcmltYXJ5XCJcbiAgICAgICAgICBib3JkZXJDb2xvclRvcD1cImJvcmRlci10ZXJ0aWFyeVwiXG4gICAgICAgICAgYm9yZGVyU3R5bGU9XCJzb2xpZFwiXG4gICAgICAgICAgYm9yZGVyV2lkdGg9XCIycHggMCAxcHhcIlxuICAgICAgICAgIGRhdGEtdGVzdGlkPVwiaGVhZGVyLXNlYXJjaC1kcm9wZG93blwiXG4gICAgICAgICAgcG9zaXRpb249e3sgXzogJ2ZpeGVkJywgbWQ6ICdhYnNvbHV0ZScgfX1cbiAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgIG1heEhlaWdodD17eyBfOiAnY2FsYygxMDB2aCAtIDYzcHgpJywgbWQ6ICdjYWxjKDEwMHZoIC0gODBweCknIH19XG4gICAgICAgICAgb3ZlcmZsb3c9XCJhdXRvXCJcbiAgICAgICAgICB6SW5kZXg9ezEwfSAvLyBlbnN1cmUgZHJvcGRvd24gaXMgYWJvdmUgdGhlIHBhZ2UgY29udGVudFxuICAgICAgICA+XG4gICAgICAgICAgPEJveCBib3JkZXI9XCJub25lXCIgd2lkdGg9XCJhdXRvXCI+XG4gICAgICAgICAgICA8UXVlcnlDb250YWluZXI+XG4gICAgICAgICAgICAgIDxGbGV4Qm94XG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImJhc2VsaW5lXCJcbiAgICAgICAgICAgICAgICBib3JkZXJDb2xvcj1cImdyYXktNjAwXCJcbiAgICAgICAgICAgICAgICBib3JkZXJTdHlsZUJvdHRvbT1cInNvbGlkXCJcbiAgICAgICAgICAgICAgICBib3JkZXJXaWR0aEJvdHRvbT1cIjFweFwiXG4gICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTZWFyY2hJY29uXG4gICAgICAgICAgICAgICAgICBoZWlnaHQ9e3sgXzogMjAsIG1kOiAyNCB9fVxuICAgICAgICAgICAgICAgICAgd2lkdGg9e3sgXzogMjAsIG1kOiAyNCB9fVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPEZvcm1cbiAgICAgICAgICAgICAgICAgIGFjdGlvbj1cIi9zZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgaWQ9XCJzZWFyY2gtZm9ybVwiXG4gICAgICAgICAgICAgICAgICBtbD17OH1cbiAgICAgICAgICAgICAgICAgIG9uU3VibWl0PXtoYW5kbGVTdWJtaXR9XG4gICAgICAgICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxTdHlsZWRJbnB1dFxuICAgICAgICAgICAgICAgICAgICBhdXRvRm9jdXNcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZD1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICBib3JkZXI9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgZm9udFNpemU9e3sgXzogMjAsIG1kOiAyNiB9fVxuICAgICAgICAgICAgICAgICAgICBmb250V2VpZ2h0PVwiYm9sZFwiXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiaGVhZGVyLXNlYXJjaC1iYXJcIlxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwicXVlcnlcIlxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhlKSA9PiBvbktleURvd24oZSl9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtzZWFyY2hQbGFjZWhvbGRlcn1cbiAgICAgICAgICAgICAgICAgICAgcmVmPXtpbnB1dFJlZn1cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgICAgICAgYXV0b0NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9Gb3JtPlxuICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICBpY29uPXtNaW5pRGVsZXRlSWNvbn1cbiAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJDbGVhciBzZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgdGlwPVwiQ2xlYXIgc2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgIHRpcFByb3BzPXt7XG4gICAgICAgICAgICAgICAgICAgIGFsaWdubWVudDogJ2JvdHRvbS1jZW50ZXInLFxuICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ6ICdmbG9hdGluZycsXG4gICAgICAgICAgICAgICAgICAgIG5hcnJvdzogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgekluZGV4OiAyLFxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2NsZWFySW5wdXR9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvRmxleEJveD5cbiAgICAgICAgICAgIDwvUXVlcnlDb250YWluZXI+XG4gICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgPFN1Z2dlc3Rpb25Db250YWluZXI+XG4gICAgICAgICAgICB7dmFsdWVUcmltbWVkLmxlbmd0aCA+IDAgPyAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgPEZsZXhCb3ggZmxleERpcmVjdGlvbj1cImNvbHVtblwiIGFzPVwidWxcIiBsaXN0U3R5bGU9XCJub25lXCIgcD17MH0+XG4gICAgICAgICAgICAgICAgICB7YXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMubWFwKChzLCBpKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgIDxJbmxpbmVSZXN1bHRMaVxuICAgICAgICAgICAgICAgICAgICAgIGtleT17cy50aXRsZX1cbiAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhldnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnYXV0b2NvbXBsZXRlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzLnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdhdXRvY29tcGxldGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzLnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxTZW1pYm9sZFNlYXJjaEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgIG1iPXsyIGFzIDB9XG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPXsxNH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZVdpZHRoPXs4fVxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgICAgICAgICAgICAgICAgIG1yPXsxMn1cbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxIaWdobGlnaHRlZFRleHQgc3VnZ2VzdGlvbj17c30gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9JbmxpbmVSZXN1bHRMaT5cbiAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgIDwvRmxleEJveD5cbiAgICAgICAgICAgICAgICB7KHNlYXJjaEFzWW91VHlwZVJlc3VsdHMgPT09IG51bGwgfHxcbiAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMudG9wLmxlbmd0aCA+IDApICYmIChcbiAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgIDxUZXh0IGFzPVwiaDJcIiBmb250U2l6ZT17MjB9IG1iPXsxNn0gbXQ9ezI0fT5cbiAgICAgICAgICAgICAgICAgICAgICBUb3AgcmVzdWx0c1xuICAgICAgICAgICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgICAgICAgICAgIDxGbGV4Qm94XG4gICAgICAgICAgICAgICAgICAgICAgZmxleERpcmVjdGlvbj1cImNvbHVtblwiXG4gICAgICAgICAgICAgICAgICAgICAgYXM9XCJ1bFwiXG4gICAgICAgICAgICAgICAgICAgICAgbGlzdFN0eWxlPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgcD17MH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHNlYXJjaEFzWW91VHlwZUxvYWRlcj8uc2hpbW1lclJvd3MubWFwKChyKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPElubGluZUxvYWRlckxpIGtleT17ci5rZXl9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3Iuc2hpbW1lcnMubWFwKCh3b3JkKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTaGltbWVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PXszMH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBweT17OCBhcyAwfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17d29yZC5rZXl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9e3dvcmQud2lkdGh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCb3hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udEZhbWlseT1cImFjY2VudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRDb2xvcj1cInRleHQtc2Vjb25kYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udFNpemU9e3sgXzogMTAgYXMgMTYgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyQ29sb3I9XCJib3JkZXItc2Vjb25kYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyPXsxfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJSYWRpdXM9XCJ4bFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB4PXsxNn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eT17MC4xfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbmJzcDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSW5saW5lTG9hZGVyTGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICkpXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMudG9wLm1hcCgocywgaSkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbmxpbmVSZXN1bHRMaVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtgJHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy5xdWVyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfToke2kudG9TdHJpbmcoKX1gfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiSW5kZXg9ezB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwibGlua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhldnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV2dC5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnc2VhcmNoX2FzX3lvdV90eXBlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsdWc6IHMuc2x1ZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLihzLmNvbnRlbnRJZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHsgY29udGVudF9pZDogcy5jb250ZW50SWQgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhZmVseVJlZGlyZWN0KHMudXJsUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnc2VhcmNoX2FzX3lvdV90eXBlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2x1Zzogcy5zbHVnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLihzLmNvbnRlbnRJZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7IGNvbnRlbnRfaWQ6IHMuY29udGVudElkIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2FmZWx5UmVkaXJlY3Qocy51cmxQYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEhpZ2hsaWdodGVkVGV4dCBzdWdnZXN0aW9uPXtzfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJhZGdlIHNpemU9XCJzbVwiIHZhcmlhbnQ9XCJ0ZXJ0aWFyeVwiIG1sPXsxMn0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtzLnR5cGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0JhZGdlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSW5saW5lUmVzdWx0TGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIHtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy50b3AubGVuZ3RoID09PSAwICYmIChcbiAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgIDxCb3ggZm9udFNpemU9e3sgXzogMjAsIHNtOiAyNiB9fSBtdD17MH0gbWI9ezQ4fT5cbiAgICAgICAgICAgICAgICAgICAgICB7YFdlIGNvdWxkbid0IGZpbmQgYSBtYXRjaCBmb3IgYH1cbiAgICAgICAgICAgICAgICAgICAgICA8VGV4dCBmb250V2VpZ2h0PVwiYm9sZFwiPntgXCIke3ZhbHVlVHJpbW1lZH0uXCJgfTwvVGV4dD5cbiAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAnIFRyeSBhbm90aGVyIGtleXdvcmQsIG9yIHNlZSB3aGF0IG91ciBtZW1iZXJzIGFyZSBsZWFybmluZy4nXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICAgICAgPE1lbnUgYm9yZGVyPVwibm9uZVwiIHZhcmlhbnQ9XCJwb3BvdmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPFBvcHVsYXJDb250ZW50IG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfSAvPlxuICAgICAgICAgICAgICAgICAgICA8L01lbnU+XG4gICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxNZW51IGJvcmRlcj1cIm5vbmVcIiB2YXJpYW50PVwicG9wb3ZlclwiPlxuICAgICAgICAgICAgICAgIDxQb3B1bGFyU2VhcmNoZXNcbiAgICAgICAgICAgICAgICAgIG5hdmlnYXRlVG9TZWFyY2g9e25hdmlnYXRlVG9TZWFyY2h9XG4gICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxQb3B1bGFyQ29udGVudCBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja30gLz5cbiAgICAgICAgICAgICAgPC9NZW51PlxuICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgeyEhc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8udG9wLmxlbmd0aCAmJiAoXG4gICAgICAgICAgICAgIDxTdHJva2VCdXR0b25cbiAgICAgICAgICAgICAgICBteT17MTZ9XG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCd2aWV3X2FsbF9yZXN1bHRzJywge1xuICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgIG5hdmlnYXRlVG9TZWFyY2godmFsdWUsIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkKTtcbiAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIFZpZXcgYWxsIHJlc3VsdHNcbiAgICAgICAgICAgICAgPC9TdHJva2VCdXR0b24+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgPFF1aXpBbmRIZWxwQ2VudGVyTGlua3NcbiAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9XG4gICAgICAgICAgICAgIGhhbmRsZUNsb3NlRHJvcGRvd249e2Nsb3NlU2VhcmNofVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L1N1Z2dlc3Rpb25Db250YWluZXI+XG4gICAgICAgIDwvQm94PlxuICAgICAgPC9Gb2N1c1RyYXA+XG4gICAgPC8+XG4gICk7XG59O1xuIl19 */",
|
|
91
|
+
styles: "overflow:visible!important;circle,path{stroke-width:2px;}rect{transform:translate(-2px, -2px);height:calc(100% + 4px);width:calc(100% + 4px);}/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvU2VhcmNoL1NlYXJjaFBhbmUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9Gb0QiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL0FwcEhlYWRlci9TZWFyY2gvU2VhcmNoUGFuZS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYWRnZSxcbiAgQm94LFxuICBDb250ZW50Q29udGFpbmVyLFxuICBGbGV4Qm94LFxuICBGb2N1c1RyYXAsXG4gIEljb25CdXR0b24sXG4gIE1lbnUsXG4gIE1lbnVJdGVtLFxuICBTaGltbWVyLFxuICBTdHJva2VCdXR0b24sXG4gIFRleHQsXG59IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCB7IE1pbmlEZWxldGVJY29uLCBTZWFyY2hJY29uIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtaWNvbnMnO1xuaW1wb3J0IHsgY3NzLCB0aGVtZSwgdXNlQ3VycmVudE1vZGUgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IHVzZU9uRXNjSGFuZGxlciB9IGZyb20gJy4uL3NoYXJlZCc7XG5pbXBvcnQgeyBzZWFyY2hQbGFjZWhvbGRlciB9IGZyb20gJy4vY29uc3RzJztcbmltcG9ydCB7IFBvcHVsYXJDb250ZW50LCBQb3B1bGFyU2VhcmNoZXMgfSBmcm9tICcuL0RlZmF1bHRSZXN1bHRzJztcbmltcG9ydCB7IHVzZVVybENoYW5nZURldGVjdGlvbiB9IGZyb20gJy4vaG9va3MvdXNlVXJsQ2hhbmdlRGV0ZWN0aW9uJztcbmltcG9ydCB7IFF1aXpBbmRIZWxwQ2VudGVyTGlua3MgfSBmcm9tICcuL1F1aXpBbmRIZWxwQ2VudGVyTGlua3MnO1xuaW1wb3J0IHsgc2FmZWx5UmVkaXJlY3QgfSBmcm9tICcuL3NhZmVseVJlZGlyZWN0JztcbmltcG9ydCB7IHVzZVNlYXJjaFRyYWNraW5nQ29udGV4dCB9IGZyb20gJy4vU2VhcmNoVHJhY2tpbmdQcm92aWRlcic7XG5pbXBvcnQgeyBzZWFyY2hXb3JrZXIgfSBmcm9tICcuL1NlYXJjaFdvcmtlcic7XG5pbXBvcnQgdHlwZSB7XG4gIEF1dG9jb21wbGV0ZVN1Z2dlc3Rpb24sXG4gIFNlYXJjaEFzWW91VHlwZVJlc3VsdHMsXG59IGZyb20gJy4vU2VhcmNoV29ya2VyL3R5cGVzJztcbmltcG9ydCB7IFNlYXJjaFBhbmVQcm9wcyB9IGZyb20gJy4vdHlwZXMnO1xuXG5jb25zdCBGb3JtID0gQm94LndpdGhDb21wb25lbnQoJ2Zvcm0nKTtcbmNvbnN0IElucHV0ID0gQm94LndpdGhDb21wb25lbnQoJ2lucHV0Jyk7XG5cbmNvbnN0IFF1ZXJ5Q29udGFpbmVyID0gc3R5bGVkKENvbnRlbnRDb250YWluZXIpKFxuICBjc3Moe1xuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICB3aWR0aDogJzEwMCUnLFxuICAgIHB0OiAxNixcbiAgICBwYjogeyBfOiAwLCBtZDogMjQgfSxcbiAgICBweDogeyBfOiAyNCB9LFxuICB9KVxuKTtcblxuY29uc3QgU3VnZ2VzdGlvbkNvbnRhaW5lciA9IHN0eWxlZChDb250ZW50Q29udGFpbmVyKShcbiAgY3NzKHtcbiAgICBwdDogMTYsXG4gICAgcGI6IHsgXzogMCwgbWQ6IDI0IH0sXG4gICAgcHg6IHsgXzogMjQgfSxcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZElucHV0ID0gc3R5bGVkKElucHV0KShcbiAgY3NzKHtcbiAgICBvdXRsaW5lOiBgbm9uZWAsXG4gICAgJyY6OnBsYWNlaG9sZGVyJzoge1xuICAgICAgdGV4dENvbG9yOiB0aGVtZS5jb2xvcnNbJ3RleHQtc2Vjb25kYXJ5J10gYXMgbmV2ZXIsXG4gICAgfSxcbiAgfSlcbik7XG5cbmNvbnN0IElubGluZVJlc3VsdExpID0gc3R5bGVkKE1lbnVJdGVtKShcbiAgY3NzKHtcbiAgICBwbDogMCxcbiAgICBweTogOCxcbiAgICBmb250U2l6ZTogMTYsXG4gICAgJyY6Zm9jdXMtdmlzaWJsZTphZnRlcic6IHtcbiAgICAgIGxlZnQ6IC00LFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBJbmxpbmVMb2FkZXJMaSA9IHN0eWxlZC5saShcbiAgY3NzKHtcbiAgICBsaXN0U3R5bGVUeXBlOiAnbm9uZScsXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGdhcDogMTIsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gIH0pXG4pO1xuXG5leHBvcnQgY29uc3QgU2VtaWJvbGRTZWFyY2hJY29uID0gc3R5bGVkKFNlYXJjaEljb24pYFxuICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuICBjaXJjbGUsXG4gIHBhdGgge1xuICAgIHN0cm9rZS13aWR0aDogMnB4O1xuICB9XG4gIHJlY3Qge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0ycHgsIC0ycHgpO1xuICAgIGhlaWdodDogY2FsYygxMDAlICsgNHB4KTtcbiAgICB3aWR0aDogY2FsYygxMDAlICsgNHB4KTtcbiAgfVxuYDtcblxuY29uc3QgRWxsaXBzaXNCb3ggPSBzdHlsZWQoQm94KWBcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5gO1xuXG5jb25zdCBIaWdobGlnaHRlZFRleHQgPSAoe1xuICBzdWdnZXN0aW9uOiB7IHRpdGxlLCBzZWdtZW50cyB9LFxufToge1xuICBzdWdnZXN0aW9uOiBBdXRvY29tcGxldGVTdWdnZXN0aW9uO1xufSkgPT4ge1xuICBjb25zdCBtb2RlID0gdXNlQ3VycmVudE1vZGUoKTtcbiAgY29uc3QgaGlnaGxpZ2h0Q29sb3IgPSBtb2RlID09PSAnZGFyaycgPyAnaHlwZXInIDogJ3llbGxvdyc7XG5cbiAgcmV0dXJuIChcbiAgICA8RmxleEJveD5cbiAgICAgIDxFbGxpcHNpc0JveFxuICAgICAgICBtYXhXaWR0aD1cImNhbGMoMTAwdncgLSAxMjhweClcIlxuICAgICAgICB3aGl0ZVNwYWNlPVwicHJlXCJcbiAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgb3ZlcmZsb3c9XCJoaWRkZW5cIlxuICAgICAgPlxuICAgICAgICB7c2VnbWVudHMubWFwKChzZWdtZW50LCBpKSA9PiAoXG4gICAgICAgICAgPFRleHRcbiAgICAgICAgICAgIGtleT17YCR7dGl0bGV9OiR7aS50b1N0cmluZygpfWB9XG4gICAgICAgICAgICBsaW5lSGVpZ2h0PVwidGl0bGVcIlxuICAgICAgICAgICAgey4uLihzZWdtZW50LmhpZ2hsaWdodFxuICAgICAgICAgICAgICA/IHsgYmc6IGhpZ2hsaWdodENvbG9yLCBmb250V2VpZ2h0OiAnYm9sZCcgfVxuICAgICAgICAgICAgICA6IHt9KX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7c2VnbWVudC52YWx1ZX1cbiAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICkpfVxuICAgICAgPC9FbGxpcHNpc0JveD5cbiAgICAgIDxUZXh0IHNjcmVlbnJlYWRlcj57dGl0bGV9PC9UZXh0PlxuICAgIDwvRmxleEJveD5cbiAgKTtcbn07XG5cbnR5cGUgU2VhcmNoQXNZb3VUeXBlTG9hZGVyID0ge1xuICBzaGltbWVyUm93czoge1xuICAgIGtleTogc3RyaW5nO1xuICAgIHNoaW1tZXJzOiB7XG4gICAgICBrZXk6IHN0cmluZztcbiAgICAgIHdpZHRoOiBudW1iZXI7XG4gICAgfVtdO1xuICB9W107XG59O1xuXG5sZXQgbG9hZGVyS2V5ID0gMDtcbmZ1bmN0aW9uIHJuZExvYWRlcigpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBsdXNwbHVzXG4gIGNvbnN0IGtleSA9IGxvYWRlcktleSsrO1xuICBjb25zdCBsb2FkZXI6IFNlYXJjaEFzWW91VHlwZUxvYWRlciA9IHsgc2hpbW1lclJvd3M6IFtdIH07XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgNTsgaSsrKSB7XG4gICAgY29uc3Qgcm93ID0ge1xuICAgICAga2V5OiBgJHtrZXl9OiR7aX1gLFxuICAgICAgc2hpbW1lcnM6IFtdIGFzIHsga2V5OiBzdHJpbmc7IHdpZHRoOiBudW1iZXIgfVtdLFxuICAgIH07XG4gICAgY29uc3Qgd29yZHMgPSBNYXRoLmNlaWwoTWF0aC5yYW5kb20oKSAqIDMpO1xuICAgIGZvciAobGV0IGogPSAwOyBqIDwgd29yZHM7IGorKykge1xuICAgICAgY29uc3Qgd2lkdGggPSAxMiArIE1hdGgucm91bmQoTWF0aC5yYW5kb20oKSAqIDk2KTtcbiAgICAgIHJvdy5zaGltbWVycy5wdXNoKHtcbiAgICAgICAga2V5OiBgJHtrZXl9OiR7an1gLFxuICAgICAgICB3aWR0aCxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBsb2FkZXIuc2hpbW1lclJvd3MucHVzaChyb3cpO1xuICB9XG4gIHJldHVybiBsb2FkZXI7XG59XG5cbmV4cG9ydCBjb25zdCBTZWFyY2hQYW5lOiBSZWFjdC5GQzxTZWFyY2hQYW5lUHJvcHM+ID0gKHtcbiAgb25TZWFyY2gsXG4gIG9uVHJhY2tpbmdDbGljayxcbiAgc2VhcmNoQnV0dG9uUmVmLFxuICB0b2dnbGVTZWFyY2gsXG4gIG9uU2VhcmNoQXNZb3VUeXBlLFxufSkgPT4ge1xuICBjb25zdCB0aGVtZSA9IHVzZVRoZW1lKCk7XG4gIGNvbnN0IFt2YWx1ZSwgc2V0VmFsdWVdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCBpbnB1dFJlZiA9IHVzZVJlZjxIVE1MSW5wdXRFbGVtZW50PihudWxsKTtcbiAgY29uc3QgW2F1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zLCBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9uc10gPSB1c2VTdGF0ZTxcbiAgICBBdXRvY29tcGxldGVTdWdnZXN0aW9uW11cbiAgPihbXSk7XG4gIGNvbnN0IFtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLCBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzXSA9XG4gICAgdXNlU3RhdGU8U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyB8IG51bGw+KG51bGwpO1xuXG4gIGNvbnN0IFtzZWFyY2hSZXN1bHRDbGlja2VkLCBzZXRTZWFyY2hSZXN1bHRDbGlja2VkXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICBjb25zdCB7IHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zIH0gPSB1c2VTZWFyY2hUcmFja2luZ0NvbnRleHQoKTtcblxuICBjb25zdCBzZWFyY2hBc1lvdVR5cGVMb2FkZXIgPSBSZWFjdC51c2VNZW1vKFxuICAgICgpID0+IChzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsID8gcm5kTG9hZGVyKCkgOiBudWxsKSxcbiAgICBbc2VhcmNoQXNZb3VUeXBlUmVzdWx0c11cbiAgKTtcblxuICBjb25zdCB2YWx1ZVRyaW1tZWQgPSB2YWx1ZS50cmltKCk7XG5cbiAgY29uc3QgaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrID1cbiAgICBvblNlYXJjaEFzWW91VHlwZSAmJiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzICYmICFzZWFyY2hSZXN1bHRDbGlja2VkO1xuXG4gIGNvbnN0IGNsb3NlU2VhcmNoID0gYXN5bmMgKCkgPT4ge1xuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCB3aGVuIHVzZXIgbWFkZSBhIHNlYXJjaCBhbmQgdGhlbiBjbG9zZWQgc2VhcmNoIHBhbmVcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIGF3YWl0IHRvZ2dsZVNlYXJjaCgpO1xuICAgIC8vIGFkZHMgYSBsaXR0bGUgZGVsYXkgYmV0d2VlbiBjbG9zaW5nIHRoZSBzZWFyY2ggcGFuZSBhbmQgZm9jdXNpbmcgb24gdGhlIGJ1dHRvblxuICAgIC8vIHRvIHByZXZlbnQgdGhlIHNlYXJjaCBwYW5lIGZyb20gaW1tZWRpYXRlbHkgb3BlbmluZyBhZ2FpblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHNlYXJjaEJ1dHRvblJlZiAmJiBzZWFyY2hCdXR0b25SZWY/LmN1cnJlbnQpIHtcbiAgICAgICAgc2VhcmNoQnV0dG9uUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICB9XG4gICAgfSwgMTApO1xuICB9O1xuXG4gIGNvbnN0IG9uS2V5RG93biA9IHVzZU9uRXNjSGFuZGxlcihjbG9zZVNlYXJjaCk7XG5cbiAgY29uc3Qgb25Nb3VzZURvd25PdXRzaWRlID0gKHsgdGFyZ2V0IH06IE1vdXNlRXZlbnQpID0+IHtcbiAgICBjb25zdCBoYW5kbGVPdXRzaWRlQ2xpY2sgPSAoKSA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgICFkb2N1bWVudFxuICAgICAgICAgIC5xdWVyeVNlbGVjdG9yKCdbZGF0YS10ZXN0aWQ9XCJoZWFkZXItc2VhcmNoLWRyb3Bkb3duXCJdJylcbiAgICAgICAgICA/LmNvbnRhaW5zKHRhcmdldCBhcyBIVE1MRWxlbWVudCkgJiZcbiAgICAgICAgdGFyZ2V0ICE9PSBzZWFyY2hCdXR0b25SZWY/LmN1cnJlbnRcbiAgICAgICkge1xuICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgfVxuXG4gICAgICB0YXJnZXQ/LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBoYW5kbGVPdXRzaWRlQ2xpY2spO1xuICAgIH07XG5cbiAgICB0YXJnZXQ/LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBoYW5kbGVPdXRzaWRlQ2xpY2spO1xuICB9O1xuXG4gIGNvbnN0IG5hdmlnYXRlVG9TZWFyY2ggPSAoc2VhcmNoVGVybTogc3RyaW5nLCBmcm9tUHJldlNlYXJjaD86IHN0cmluZykgPT4ge1xuICAgIG9uU2VhcmNoKHNlYXJjaFRlcm0sIGZyb21QcmV2U2VhcmNoKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVDaGFuZ2U6IFJlYWN0LkNoYW5nZUV2ZW50SGFuZGxlcjxIVE1MSW5wdXRFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICBzZXRWYWx1ZShldnQudGFyZ2V0LnZhbHVlKTtcbiAgICAvLyByZXNldCB0byBmYWxzZSB3aGVuIHRoZSBzZWFyY2ggcXVlcnkgY2hhbmdlc1xuICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQoZmFsc2UpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVN1Ym1pdDogUmVhY3QuRm9ybUV2ZW50SGFuZGxlciA9IChldmVudCkgPT4ge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgd2hlbiB0aGUgdXNlciBzdWJtaXRzIHRoZSBmb3JtIHRvIGNhcHR1cmUgY29tcGxldGUgcXVlcnlcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIG5hdmlnYXRlVG9TZWFyY2godmFsdWUsIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkKTtcbiAgfTtcblxuICBjb25zdCBjbGVhcklucHV0ID0gKCkgPT4ge1xuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCBiZWZvcmUgdXNlciBjbGVhcnMgaW5wdXRcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIHNldFZhbHVlKCcnKTtcbiAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhbXSk7XG4gICAgLy8gcmVzZXQgdGhlIGNvbnRleHQgd2l0aCBlbXB0eSB2YWx1ZXNcbiAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICBxdWVyeTogJycsXG4gICAgICBzZWFyY2hJZDogJycsXG4gICAgICByZXN1bHRzQ291bnQ6IDAsXG4gICAgICBxdWVyeUxvYWRUaW1lOiAwLFxuICAgIH0pO1xuICB9O1xuXG4gIC8vIHdoZW4gdGhlIGN1cnJlbnQgVVJMIGNoYW5nZXMsIHdlIHdhbnQgdG8gY2xvc2UgdGhlIHNlYXJjaCBwYW5lIGlmIGl0J3Mgb3BlblxuICAvLyBhbmQgdHJhY2sgc2VhcmNoIGV2ZW50IGlmIHVzZXIgbWFkZSBhIHNlYXJjaFxuICB1c2VVcmxDaGFuZ2VEZXRlY3Rpb24oe1xuICAgIG9uVXJsQ2hhbmdlOiAoKSA9PiB7XG4gICAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgICAgfVxuXG4gICAgICB0b2dnbGVTZWFyY2goKTtcbiAgICB9LFxuICB9KTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIC8vIGRvbid0IHRyYWNrIGlmIGEgcmVzdWx0IHdhcyBjbGlja2VkIG9yIGlmIHdlIGRvbid0IGhhdmUgc2VhcmNoIHJlc3VsdHNcbiAgICBpZiAoXG4gICAgICBzZWFyY2hSZXN1bHRDbGlja2VkIHx8XG4gICAgICAhb25TZWFyY2hBc1lvdVR5cGUgfHxcbiAgICAgICFzZWFyY2hBc1lvdVR5cGVSZXN1bHRzIHx8XG4gICAgICAhdmFsdWVUcmltbWVkLmxlbmd0aFxuICAgIClcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11c2VsZXNzLXJldHVyblxuICAgICAgcmV0dXJuO1xuICB9LCBbXG4gICAgc2VhcmNoUmVzdWx0Q2xpY2tlZCxcbiAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLFxuICAgIHZhbHVlVHJpbW1lZCxcbiAgICBvblNlYXJjaEFzWW91VHlwZSxcbiAgXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpbnB1dFJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgIHNlYXJjaFdvcmtlci5pbml0KCk7XG4gIH0sIFtdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghdmFsdWVUcmltbWVkLmxlbmd0aCkge1xuICAgICAgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyhudWxsKTtcbiAgICAgIHNldEF1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zKFtdKTtcbiAgICAgIHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zKHtcbiAgICAgICAgcXVlcnk6ICcnLFxuICAgICAgICBzZWFyY2hJZDogJycsXG4gICAgICAgIHJlc3VsdHNDb3VudDogMCxcbiAgICAgICAgcXVlcnlMb2FkVGltZTogMCxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBjYW5jZWwgPSBmYWxzZTtcbiAgICBsZXQgY2xlYXJBdXRvY29tcGxldGUgPSB0cnVlO1xuICAgIGxldCBjbGVhclNlYXJjaEFzWW91VHlwZSA9IHRydWU7XG5cbiAgICBsZXQgc2VhcmNoRXZlbnROb1Jlc3VsdERlbGF5OiBOb2RlSlMuVGltZW91dDtcblxuICAgIGNvbnN0IGxvYWRlckRlbGF5ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAvKlxuICAgICAgICogV2FpdCAxMCBtaWxsaXNlY29uZHMgdG8gZ2V0IGEgcmVzcG9uc2UgZm9yIHdvcmtlciBiZWZvcmUgc2hvd2luZyBsb2FkZXJzLlxuICAgICAgICogVGhpcyBwcmV2ZW50cyBmbGlja2VyaW5nIGxvYWRlcnMgb24gcXVpY2sgb3IgY2FjaGVkIHJlc3VsdHMuXG4gICAgICAgKi9cbiAgICAgIGlmIChjYW5jZWwpIHJldHVybjtcbiAgICAgIGlmIChjbGVhckF1dG9jb21wbGV0ZSkgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgICAgaWYgKGNsZWFyU2VhcmNoQXNZb3VUeXBlKSBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKG51bGwpO1xuICAgIH0sIDEwKTtcblxuICAgIHNlYXJjaFdvcmtlci5hdXRvY29tcGxldGUodmFsdWVUcmltbWVkKS50aGVuKChzdWdnZXN0aW9ucykgPT4ge1xuICAgICAgY2xlYXJBdXRvY29tcGxldGUgPSBmYWxzZTtcblxuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuOyAvLyB0ZXh0IGhhcyBjaGFuZ2VkIHNpbmNlIHRoaXMgcmVxdWVzdCB3YXMgbWFkZVxuXG4gICAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhzdWdnZXN0aW9ucyk7XG4gICAgfSk7XG5cbiAgICBzZWFyY2hXb3JrZXIuc2VhcmNoQXNZb3VUeXBlKHZhbHVlVHJpbW1lZCkudGhlbigocmVzdWx0cykgPT4ge1xuICAgICAgY2xlYXJTZWFyY2hBc1lvdVR5cGUgPSBmYWxzZTtcblxuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuOyAvLyB0ZXh0IGhhcyBjaGFuZ2VkIHNpbmNlIHRoaXMgcmVxdWVzdCB3YXMgbWFkZVxuXG4gICAgICBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKHJlc3VsdHMpO1xuXG4gICAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICAgIHF1ZXJ5OiByZXN1bHRzLnF1ZXJ5LFxuICAgICAgICBzZWFyY2hJZDogcmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgcmVzdWx0c0NvdW50OiByZXN1bHRzLnRvcC5sZW5ndGgsXG4gICAgICAgIHF1ZXJ5TG9hZFRpbWU6IHJlc3VsdHMucXVlcnlMb2FkVGltZSxcbiAgICAgIH0pO1xuXG4gICAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgd2l0aCBhIHNtYWxsIGRlbGF5IHdoZW4gdGhlcmUgYXJlIG5vIHJlc3VsdHNcbiAgICAgIGlmIChcbiAgICAgICAgb25TZWFyY2hBc1lvdVR5cGUgJiZcbiAgICAgICAgcmVzdWx0cy50b3AubGVuZ3RoID09PSAwICYmXG4gICAgICAgICFzZWFyY2hSZXN1bHRDbGlja2VkXG4gICAgICApIHtcbiAgICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHF1ZXJ5TG9hZFRpbWUgfSA9IHJlc3VsdHM7XG4gICAgICAgIHNlYXJjaEV2ZW50Tm9SZXN1bHREZWxheSA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIGlmICghY2FuY2VsKSB7XG4gICAgICAgICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIDAsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSwgMzAwKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjYW5jZWwgPSB0cnVlO1xuICAgICAgY2xlYXJUaW1lb3V0KGxvYWRlckRlbGF5KTtcbiAgICAgIGNsZWFyVGltZW91dChzZWFyY2hFdmVudE5vUmVzdWx0RGVsYXkpO1xuICAgIH07XG4gIH0sIFtcbiAgICB2YWx1ZVRyaW1tZWQsXG4gICAgb25TZWFyY2hBc1lvdVR5cGUsXG4gICAgc2VhcmNoUmVzdWx0Q2xpY2tlZCxcbiAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyxcbiAgXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPEJveFxuICAgICAgICBhcmlhLWhpZGRlblxuICAgICAgICBiZz1cInNoYWRvdy1zZWNvbmRhcnlcIlxuICAgICAgICBoZWlnaHQ9XCIxMDB2aFwiXG4gICAgICAgIHBvc2l0aW9uPVwiZml4ZWRcIlxuICAgICAgICAvLyBXZSBhZGQgNXJlbSBoZXJlIGluIGNhc2UgdGhlcmUncyBzb21lIHNvcnQgb2YgYnJhbmRlZCBiYW5uZXIgYWJvdmUgc2VhcmNoXG4gICAgICAgIC8vIFRoZSBzZWFyY2ggYXJlYSBpcyBtdWNoIHRhbGxlciB0aGFuIDVyZW0gc28gdGhpcyBpcyBhIHNhZmUgYW1vdW50IG9mIHBhZGRpbmdcbiAgICAgICAgdG9wPXtgY2FsYygke3RoZW1lLmVsZW1lbnRzLmhlYWRlckhlaWdodH0gKyA1cmVtKWB9XG4gICAgICAgIHdpZHRoPXsxfVxuICAgICAgLz5cbiAgICAgIDxGb2N1c1RyYXBcbiAgICAgICAgb25Fc2NhcGVLZXk9e2Nsb3NlU2VhcmNofVxuICAgICAgICBvbkNsaWNrT3V0c2lkZT17b25Nb3VzZURvd25PdXRzaWRlfVxuICAgICAgICBhbGxvd1BhZ2VJbnRlcmFjdGlvblxuICAgICAgPlxuICAgICAgICA8Qm94XG4gICAgICAgICAgYmc9XCJiYWNrZ3JvdW5kXCJcbiAgICAgICAgICBib3JkZXJDb2xvckJvdHRvbT1cImJvcmRlci1wcmltYXJ5XCJcbiAgICAgICAgICBib3JkZXJDb2xvclRvcD1cImJvcmRlci10ZXJ0aWFyeVwiXG4gICAgICAgICAgYm9yZGVyU3R5bGU9XCJzb2xpZFwiXG4gICAgICAgICAgYm9yZGVyV2lkdGg9XCIycHggMCAxcHhcIlxuICAgICAgICAgIGRhdGEtdGVzdGlkPVwiaGVhZGVyLXNlYXJjaC1kcm9wZG93blwiXG4gICAgICAgICAgcG9zaXRpb249e3sgXzogJ2ZpeGVkJywgbWQ6ICdhYnNvbHV0ZScgfX1cbiAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgIG1heEhlaWdodD17eyBfOiAnY2FsYygxMDB2aCAtIDYzcHgpJywgbWQ6ICdjYWxjKDEwMHZoIC0gODBweCknIH19XG4gICAgICAgICAgb3ZlcmZsb3c9XCJhdXRvXCJcbiAgICAgICAgICB6SW5kZXg9ezEwfSAvLyBlbnN1cmUgZHJvcGRvd24gaXMgYWJvdmUgdGhlIHBhZ2UgY29udGVudFxuICAgICAgICA+XG4gICAgICAgICAgPEJveCBib3JkZXI9XCJub25lXCIgd2lkdGg9XCJhdXRvXCI+XG4gICAgICAgICAgICA8UXVlcnlDb250YWluZXI+XG4gICAgICAgICAgICAgIDxGbGV4Qm94XG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImJhc2VsaW5lXCJcbiAgICAgICAgICAgICAgICBib3JkZXJDb2xvcj1cImdyYXktNjAwXCJcbiAgICAgICAgICAgICAgICBib3JkZXJTdHlsZUJvdHRvbT1cInNvbGlkXCJcbiAgICAgICAgICAgICAgICBib3JkZXJXaWR0aEJvdHRvbT1cIjFweFwiXG4gICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTZWFyY2hJY29uXG4gICAgICAgICAgICAgICAgICBoZWlnaHQ9e3sgXzogMjAsIG1kOiAyNCB9fVxuICAgICAgICAgICAgICAgICAgd2lkdGg9e3sgXzogMjAsIG1kOiAyNCB9fVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPEZvcm1cbiAgICAgICAgICAgICAgICAgIGFjdGlvbj1cIi9zZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgaWQ9XCJzZWFyY2gtZm9ybVwiXG4gICAgICAgICAgICAgICAgICBtbD17OH1cbiAgICAgICAgICAgICAgICAgIG9uU3VibWl0PXtoYW5kbGVTdWJtaXR9XG4gICAgICAgICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxTdHlsZWRJbnB1dFxuICAgICAgICAgICAgICAgICAgICBhdXRvRm9jdXNcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZD1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICBib3JkZXI9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgZm9udFNpemU9e3sgXzogMjAsIG1kOiAyNiB9fVxuICAgICAgICAgICAgICAgICAgICBmb250V2VpZ2h0PVwiYm9sZFwiXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiaGVhZGVyLXNlYXJjaC1iYXJcIlxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwicXVlcnlcIlxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhlKSA9PiBvbktleURvd24oZSl9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtzZWFyY2hQbGFjZWhvbGRlcn1cbiAgICAgICAgICAgICAgICAgICAgcmVmPXtpbnB1dFJlZn1cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgICAgICAgYXV0b0NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9Gb3JtPlxuICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICBpY29uPXtNaW5pRGVsZXRlSWNvbn1cbiAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJDbGVhciBzZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgdGlwPVwiQ2xlYXIgc2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgIHRpcFByb3BzPXt7XG4gICAgICAgICAgICAgICAgICAgIGFsaWdubWVudDogJ2JvdHRvbS1jZW50ZXInLFxuICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ6ICdmbG9hdGluZycsXG4gICAgICAgICAgICAgICAgICAgIG5hcnJvdzogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgekluZGV4OiAyLFxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2NsZWFySW5wdXR9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvRmxleEJveD5cbiAgICAgICAgICAgIDwvUXVlcnlDb250YWluZXI+XG4gICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgPFN1Z2dlc3Rpb25Db250YWluZXI+XG4gICAgICAgICAgICB7dmFsdWVUcmltbWVkLmxlbmd0aCA+IDAgPyAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgPEZsZXhCb3ggZmxleERpcmVjdGlvbj1cImNvbHVtblwiIGFzPVwidWxcIiBsaXN0U3R5bGU9XCJub25lXCIgcD17MH0+XG4gICAgICAgICAgICAgICAgICB7YXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMubWFwKChzLCBpKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgIDxJbmxpbmVSZXN1bHRMaVxuICAgICAgICAgICAgICAgICAgICAgIGtleT17cy50aXRsZX1cbiAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhldnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnYXV0b2NvbXBsZXRlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzLnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdhdXRvY29tcGxldGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzLnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxTZW1pYm9sZFNlYXJjaEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgIG1iPXsyIGFzIDB9XG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPXsxNH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZVdpZHRoPXs4fVxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgICAgICAgICAgICAgICAgIG1yPXsxMn1cbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxIaWdobGlnaHRlZFRleHQgc3VnZ2VzdGlvbj17c30gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9JbmxpbmVSZXN1bHRMaT5cbiAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgIDwvRmxleEJveD5cbiAgICAgICAgICAgICAgICB7KHNlYXJjaEFzWW91VHlwZVJlc3VsdHMgPT09IG51bGwgfHxcbiAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMudG9wLmxlbmd0aCA+IDApICYmIChcbiAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgIDxUZXh0IGFzPVwiaDJcIiBmb250U2l6ZT17MjB9IG1iPXsxNn0gbXQ9ezI0fT5cbiAgICAgICAgICAgICAgICAgICAgICBUb3AgcmVzdWx0c1xuICAgICAgICAgICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgICAgICAgICAgIDxGbGV4Qm94XG4gICAgICAgICAgICAgICAgICAgICAgZmxleERpcmVjdGlvbj1cImNvbHVtblwiXG4gICAgICAgICAgICAgICAgICAgICAgYXM9XCJ1bFwiXG4gICAgICAgICAgICAgICAgICAgICAgbGlzdFN0eWxlPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgcD17MH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHNlYXJjaEFzWW91VHlwZUxvYWRlcj8uc2hpbW1lclJvd3MubWFwKChyKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPElubGluZUxvYWRlckxpIGtleT17ci5rZXl9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3Iuc2hpbW1lcnMubWFwKCh3b3JkKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTaGltbWVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PXszMH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBweT17OCBhcyAwfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17d29yZC5rZXl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9e3dvcmQud2lkdGh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCb3hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udEZhbWlseT1cImFjY2VudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRDb2xvcj1cInRleHQtc2Vjb25kYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udFNpemU9e3sgXzogMTAgYXMgMTYgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyQ29sb3I9XCJib3JkZXItc2Vjb25kYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyPXsxfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJSYWRpdXM9XCJ4bFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB4PXsxNn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eT17MC4xfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbmJzcDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSW5saW5lTG9hZGVyTGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICkpXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMudG9wLm1hcCgocywgaSkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbmxpbmVSZXN1bHRMaVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtgJHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy5xdWVyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfToke2kudG9TdHJpbmcoKX1gfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiSW5kZXg9ezB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwibGlua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhldnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV2dC5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnc2VhcmNoX2FzX3lvdV90eXBlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsdWc6IHMuc2x1ZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLihzLmNvbnRlbnRJZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHsgY29udGVudF9pZDogcy5jb250ZW50SWQgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhZmVseVJlZGlyZWN0KHMudXJsUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnc2VhcmNoX2FzX3lvdV90eXBlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2x1Zzogcy5zbHVnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLihzLmNvbnRlbnRJZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7IGNvbnRlbnRfaWQ6IHMuY29udGVudElkIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2FmZWx5UmVkaXJlY3Qocy51cmxQYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEhpZ2hsaWdodGVkVGV4dCBzdWdnZXN0aW9uPXtzfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJhZGdlIHNpemU9XCJzbVwiIHZhcmlhbnQ9XCJ0ZXJ0aWFyeVwiIG1sPXsxMn0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtzLnR5cGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0JhZGdlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSW5saW5lUmVzdWx0TGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIHtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy50b3AubGVuZ3RoID09PSAwICYmIChcbiAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgIDxCb3ggZm9udFNpemU9e3sgXzogMjAsIHNtOiAyNiB9fSBtdD17MH0gbWI9ezQ4fT5cbiAgICAgICAgICAgICAgICAgICAgICB7YFdlIGNvdWxkbid0IGZpbmQgYSBtYXRjaCBmb3IgYH1cbiAgICAgICAgICAgICAgICAgICAgICA8VGV4dCBmb250V2VpZ2h0PVwiYm9sZFwiPntgXCIke3ZhbHVlVHJpbW1lZH0uXCJgfTwvVGV4dD5cbiAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAnIFRyeSBhbm90aGVyIGtleXdvcmQsIG9yIHNlZSB3aGF0IG91ciBtZW1iZXJzIGFyZSBsZWFybmluZy4nXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICAgICAgPE1lbnUgYm9yZGVyPVwibm9uZVwiIHZhcmlhbnQ9XCJwb3BvdmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPFBvcHVsYXJDb250ZW50IG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfSAvPlxuICAgICAgICAgICAgICAgICAgICA8L01lbnU+XG4gICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxNZW51IGJvcmRlcj1cIm5vbmVcIiB2YXJpYW50PVwicG9wb3ZlclwiPlxuICAgICAgICAgICAgICAgIDxQb3B1bGFyU2VhcmNoZXNcbiAgICAgICAgICAgICAgICAgIG5hdmlnYXRlVG9TZWFyY2g9e25hdmlnYXRlVG9TZWFyY2h9XG4gICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxQb3B1bGFyQ29udGVudCBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja30gLz5cbiAgICAgICAgICAgICAgPC9NZW51PlxuICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgeyEhc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8udG9wLmxlbmd0aCAmJiAoXG4gICAgICAgICAgICAgIDxTdHJva2VCdXR0b25cbiAgICAgICAgICAgICAgICBteT17MTZ9XG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCd2aWV3X2FsbF9yZXN1bHRzJywge1xuICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgIG5hdmlnYXRlVG9TZWFyY2godmFsdWUsIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkKTtcbiAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIFZpZXcgYWxsIHJlc3VsdHNcbiAgICAgICAgICAgICAgPC9TdHJva2VCdXR0b24+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgPFF1aXpBbmRIZWxwQ2VudGVyTGlua3NcbiAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9XG4gICAgICAgICAgICAgIGhhbmRsZUNsb3NlRHJvcGRvd249e2Nsb3NlU2VhcmNofVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L1N1Z2dlc3Rpb25Db250YWluZXI+XG4gICAgICAgIDwvQm94PlxuICAgICAgPC9Gb2N1c1RyYXA+XG4gICAgPC8+XG4gICk7XG59O1xuIl19 */",
|
|
92
92
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
93
93
|
});
|
|
94
94
|
const EllipsisBox = /*#__PURE__*/_styled(Box, {
|
|
@@ -99,7 +99,7 @@ const EllipsisBox = /*#__PURE__*/_styled(Box, {
|
|
|
99
99
|
styles: "text-overflow:ellipsis"
|
|
100
100
|
} : {
|
|
101
101
|
name: "rkw162",
|
|
102
|
-
styles: "text-overflow:ellipsis/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvU2VhcmNoL1NlYXJjaFBhbmUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlHK0IiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL0FwcEhlYWRlci9TZWFyY2gvU2VhcmNoUGFuZS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYWRnZSxcbiAgQm94LFxuICBDb250ZW50Q29udGFpbmVyLFxuICBGbGV4Qm94LFxuICBGb2N1c1RyYXAsXG4gIEljb25CdXR0b24sXG4gIE1lbnUsXG4gIE1lbnVJdGVtLFxuICBTaGltbWVyLFxuICBTdHJva2VCdXR0b24sXG4gIFRleHQsXG59IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCB7IE1pbmlEZWxldGVJY29uLCBTZWFyY2hJY29uIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtaWNvbnMnO1xuaW1wb3J0IHsgY3NzLCB0aGVtZSwgdXNlQ3VycmVudE1vZGUgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IHVzZU9uRXNjSGFuZGxlciB9IGZyb20gJy4uL3NoYXJlZCc7XG5pbXBvcnQgeyBzZWFyY2hQbGFjZWhvbGRlciB9IGZyb20gJy4vY29uc3RzJztcbmltcG9ydCB7IFBvcHVsYXJDb250ZW50LCBQb3B1bGFyU2VhcmNoZXMgfSBmcm9tICcuL0RlZmF1bHRSZXN1bHRzJztcbmltcG9ydCB7IHVzZVVybENoYW5nZURldGVjdGlvbiB9IGZyb20gJy4vaG9va3MvdXNlVXJsQ2hhbmdlRGV0ZWN0aW9uJztcbmltcG9ydCB7IFF1aXpBbmRIZWxwQ2VudGVyTGlua3MgfSBmcm9tICcuL1F1aXpBbmRIZWxwQ2VudGVyTGlua3MnO1xuaW1wb3J0IHsgc2FmZWx5UmVkaXJlY3QgfSBmcm9tICcuL3NhZmVseVJlZGlyZWN0JztcbmltcG9ydCB7IHVzZVNlYXJjaFRyYWNraW5nQ29udGV4dCB9IGZyb20gJy4vU2VhcmNoVHJhY2tpbmdQcm92aWRlcic7XG5pbXBvcnQgeyBzZWFyY2hXb3JrZXIgfSBmcm9tICcuL1NlYXJjaFdvcmtlcic7XG5pbXBvcnQgdHlwZSB7XG4gIEF1dG9jb21wbGV0ZVN1Z2dlc3Rpb24sXG4gIFNlYXJjaEFzWW91VHlwZVJlc3VsdHMsXG59IGZyb20gJy4vU2VhcmNoV29ya2VyL3R5cGVzJztcbmltcG9ydCB7IFNlYXJjaFBhbmVQcm9wcyB9IGZyb20gJy4vdHlwZXMnO1xuXG5jb25zdCBGb3JtID0gQm94LndpdGhDb21wb25lbnQoJ2Zvcm0nKTtcbmNvbnN0IElucHV0ID0gQm94LndpdGhDb21wb25lbnQoJ2lucHV0Jyk7XG5cbmNvbnN0IFF1ZXJ5Q29udGFpbmVyID0gc3R5bGVkKENvbnRlbnRDb250YWluZXIpKFxuICBjc3Moe1xuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICB3aWR0aDogJzEwMCUnLFxuICAgIHB0OiAxNixcbiAgICBwYjogeyBfOiAwLCBtZDogMjQgfSxcbiAgICBweDogeyBfOiAyNCB9LFxuICB9KVxuKTtcblxuY29uc3QgU3VnZ2VzdGlvbkNvbnRhaW5lciA9IHN0eWxlZChDb250ZW50Q29udGFpbmVyKShcbiAgY3NzKHtcbiAgICBwdDogMTYsXG4gICAgcGI6IHsgXzogMCwgbWQ6IDI0IH0sXG4gICAgcHg6IHsgXzogMjQgfSxcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZElucHV0ID0gc3R5bGVkKElucHV0KShcbiAgY3NzKHtcbiAgICBvdXRsaW5lOiBgbm9uZWAsXG4gICAgJyY6OnBsYWNlaG9sZGVyJzoge1xuICAgICAgdGV4dENvbG9yOiB0aGVtZS5jb2xvcnNbJ3RleHQtc2Vjb25kYXJ5J10gYXMgbmV2ZXIsXG4gICAgfSxcbiAgfSlcbik7XG5cbmNvbnN0IElubGluZVJlc3VsdExpID0gc3R5bGVkKE1lbnVJdGVtKShcbiAgY3NzKHtcbiAgICBwbDogMCxcbiAgICBweTogOCxcbiAgICBmb250U2l6ZTogMTYsXG4gICAgJyY6Zm9jdXMtdmlzaWJsZTphZnRlcic6IHtcbiAgICAgIGxlZnQ6IC00LFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBJbmxpbmVMb2FkZXJMaSA9IHN0eWxlZC5saShcbiAgY3NzKHtcbiAgICBsaXN0U3R5bGVUeXBlOiAnbm9uZScsXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGdhcDogMTIsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gIH0pXG4pO1xuXG5leHBvcnQgY29uc3QgU2VtaWJvbGRTZWFyY2hJY29uID0gc3R5bGVkKFNlYXJjaEljb24pYFxuICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuICBjaXJjbGUsXG4gIHBhdGgge1xuICAgIHN0cm9rZS13aWR0aDogMnB4O1xuICB9XG4gIHJlY3Qge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0ycHgsIC0ycHgpO1xuICAgIGhlaWdodDogY2FsYygxMDAlICsgNHB4KTtcbiAgICB3aWR0aDogY2FsYygxMDAlICsgNHB4KTtcbiAgfVxuYDtcblxuY29uc3QgRWxsaXBzaXNCb3ggPSBzdHlsZWQoQm94KWBcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5gO1xuXG5jb25zdCBIaWdobGlnaHRlZFRleHQgPSAoe1xuICBzdWdnZXN0aW9uOiB7IHRpdGxlLCBzZWdtZW50cyB9LFxufToge1xuICBzdWdnZXN0aW9uOiBBdXRvY29tcGxldGVTdWdnZXN0aW9uO1xufSkgPT4ge1xuICBjb25zdCBtb2RlID0gdXNlQ3VycmVudE1vZGUoKTtcbiAgY29uc3QgaGlnaGxpZ2h0Q29sb3IgPSBtb2RlID09PSAnZGFyaycgPyAnaHlwZXInIDogJ3llbGxvdyc7XG5cbiAgcmV0dXJuIChcbiAgICA8RmxleEJveD5cbiAgICAgIDxFbGxpcHNpc0JveFxuICAgICAgICBtYXhXaWR0aD1cImNhbGMoMTAwdncgLSAxMjhweClcIlxuICAgICAgICB3aGl0ZVNwYWNlPVwicHJlXCJcbiAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgb3ZlcmZsb3c9XCJoaWRkZW5cIlxuICAgICAgPlxuICAgICAgICB7c2VnbWVudHMubWFwKChzZWdtZW50LCBpKSA9PiAoXG4gICAgICAgICAgPFRleHRcbiAgICAgICAgICAgIGtleT17YCR7dGl0bGV9OiR7aS50b1N0cmluZygpfWB9XG4gICAgICAgICAgICBsaW5lSGVpZ2h0PVwidGl0bGVcIlxuICAgICAgICAgICAgey4uLihzZWdtZW50LmhpZ2hsaWdodFxuICAgICAgICAgICAgICA/IHsgYmc6IGhpZ2hsaWdodENvbG9yLCBmb250V2VpZ2h0OiAnYm9sZCcgfVxuICAgICAgICAgICAgICA6IHt9KX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7c2VnbWVudC52YWx1ZX1cbiAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICkpfVxuICAgICAgPC9FbGxpcHNpc0JveD5cbiAgICAgIDxUZXh0IHNjcmVlbnJlYWRlcj57dGl0bGV9PC9UZXh0PlxuICAgIDwvRmxleEJveD5cbiAgKTtcbn07XG5cbnR5cGUgU2VhcmNoQXNZb3VUeXBlTG9hZGVyID0ge1xuICBzaGltbWVyUm93czoge1xuICAgIGtleTogc3RyaW5nO1xuICAgIHNoaW1tZXJzOiB7XG4gICAgICBrZXk6IHN0cmluZztcbiAgICAgIHdpZHRoOiBudW1iZXI7XG4gICAgfVtdO1xuICB9W107XG59O1xuXG5sZXQgbG9hZGVyS2V5ID0gMDtcbmZ1bmN0aW9uIHJuZExvYWRlcigpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBsdXNwbHVzXG4gIGNvbnN0IGtleSA9IGxvYWRlcktleSsrO1xuICBjb25zdCBsb2FkZXI6IFNlYXJjaEFzWW91VHlwZUxvYWRlciA9IHsgc2hpbW1lclJvd3M6IFtdIH07XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgNTsgaSsrKSB7XG4gICAgY29uc3Qgcm93ID0ge1xuICAgICAga2V5OiBgJHtrZXl9OiR7aX1gLFxuICAgICAgc2hpbW1lcnM6IFtdIGFzIHsga2V5OiBzdHJpbmc7IHdpZHRoOiBudW1iZXIgfVtdLFxuICAgIH07XG4gICAgY29uc3Qgd29yZHMgPSBNYXRoLmNlaWwoTWF0aC5yYW5kb20oKSAqIDMpO1xuICAgIGZvciAobGV0IGogPSAwOyBqIDwgd29yZHM7IGorKykge1xuICAgICAgY29uc3Qgd2lkdGggPSAxMiArIE1hdGgucm91bmQoTWF0aC5yYW5kb20oKSAqIDk2KTtcbiAgICAgIHJvdy5zaGltbWVycy5wdXNoKHtcbiAgICAgICAga2V5OiBgJHtrZXl9OiR7an1gLFxuICAgICAgICB3aWR0aCxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBsb2FkZXIuc2hpbW1lclJvd3MucHVzaChyb3cpO1xuICB9XG4gIHJldHVybiBsb2FkZXI7XG59XG5cbmV4cG9ydCBjb25zdCBTZWFyY2hQYW5lOiBSZWFjdC5GQzxTZWFyY2hQYW5lUHJvcHM+ID0gKHtcbiAgb25TZWFyY2gsXG4gIG9uVHJhY2tpbmdDbGljayxcbiAgc2VhcmNoQnV0dG9uUmVmLFxuICB0b2dnbGVTZWFyY2gsXG4gIG9uU2VhcmNoQXNZb3VUeXBlLFxufSkgPT4ge1xuICBjb25zdCB0aGVtZSA9IHVzZVRoZW1lKCk7XG4gIGNvbnN0IFt2YWx1ZSwgc2V0VmFsdWVdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCBpbnB1dFJlZiA9IHVzZVJlZjxIVE1MSW5wdXRFbGVtZW50PihudWxsKTtcbiAgY29uc3QgW2F1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zLCBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9uc10gPSB1c2VTdGF0ZTxcbiAgICBBdXRvY29tcGxldGVTdWdnZXN0aW9uW11cbiAgPihbXSk7XG4gIGNvbnN0IFtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLCBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzXSA9XG4gICAgdXNlU3RhdGU8U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyB8IG51bGw+KG51bGwpO1xuXG4gIGNvbnN0IFtzZWFyY2hSZXN1bHRDbGlja2VkLCBzZXRTZWFyY2hSZXN1bHRDbGlja2VkXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICBjb25zdCB7IHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zIH0gPSB1c2VTZWFyY2hUcmFja2luZ0NvbnRleHQoKTtcblxuICBjb25zdCBzZWFyY2hBc1lvdVR5cGVMb2FkZXIgPSBSZWFjdC51c2VNZW1vKFxuICAgICgpID0+IChzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsID8gcm5kTG9hZGVyKCkgOiBudWxsKSxcbiAgICBbc2VhcmNoQXNZb3VUeXBlUmVzdWx0c11cbiAgKTtcblxuICBjb25zdCB2YWx1ZVRyaW1tZWQgPSB2YWx1ZS50cmltKCk7XG5cbiAgY29uc3QgaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrID1cbiAgICBvblNlYXJjaEFzWW91VHlwZSAmJiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzICYmICFzZWFyY2hSZXN1bHRDbGlja2VkO1xuXG4gIGNvbnN0IGNsb3NlU2VhcmNoID0gYXN5bmMgKCkgPT4ge1xuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCB3aGVuIHVzZXIgbWFkZSBhIHNlYXJjaCBhbmQgdGhlbiBjbG9zZWQgc2VhcmNoIHBhbmVcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIGF3YWl0IHRvZ2dsZVNlYXJjaCgpO1xuICAgIC8vIGFkZHMgYSBsaXR0bGUgZGVsYXkgYmV0d2VlbiBjbG9zaW5nIHRoZSBzZWFyY2ggcGFuZSBhbmQgZm9jdXNpbmcgb24gdGhlIGJ1dHRvblxuICAgIC8vIHRvIHByZXZlbnQgdGhlIHNlYXJjaCBwYW5lIGZyb20gaW1tZWRpYXRlbHkgb3BlbmluZyBhZ2FpblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHNlYXJjaEJ1dHRvblJlZiAmJiBzZWFyY2hCdXR0b25SZWY/LmN1cnJlbnQpIHtcbiAgICAgICAgc2VhcmNoQnV0dG9uUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICB9XG4gICAgfSwgMTApO1xuICB9O1xuXG4gIGNvbnN0IG9uS2V5RG93biA9IHVzZU9uRXNjSGFuZGxlcihjbG9zZVNlYXJjaCk7XG5cbiAgY29uc3Qgb25Nb3VzZURvd25PdXRzaWRlID0gKHsgdGFyZ2V0IH06IE1vdXNlRXZlbnQpID0+IHtcbiAgICBjb25zdCBoYW5kbGVPdXRzaWRlQ2xpY2sgPSAoKSA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgICFkb2N1bWVudFxuICAgICAgICAgIC5xdWVyeVNlbGVjdG9yKCdbZGF0YS10ZXN0aWQ9XCJoZWFkZXItc2VhcmNoLWRyb3Bkb3duXCJdJylcbiAgICAgICAgICA/LmNvbnRhaW5zKHRhcmdldCBhcyBIVE1MRWxlbWVudCkgJiZcbiAgICAgICAgdGFyZ2V0ICE9PSBzZWFyY2hCdXR0b25SZWY/LmN1cnJlbnRcbiAgICAgICkge1xuICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgfVxuXG4gICAgICB0YXJnZXQ/LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBoYW5kbGVPdXRzaWRlQ2xpY2spO1xuICAgIH07XG5cbiAgICB0YXJnZXQ/LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBoYW5kbGVPdXRzaWRlQ2xpY2spO1xuICB9O1xuXG4gIGNvbnN0IG5hdmlnYXRlVG9TZWFyY2ggPSAoc2VhcmNoVGVybTogc3RyaW5nLCBmcm9tUHJldlNlYXJjaD86IHN0cmluZykgPT4ge1xuICAgIG9uU2VhcmNoKHNlYXJjaFRlcm0sIGZyb21QcmV2U2VhcmNoKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVDaGFuZ2U6IFJlYWN0LkNoYW5nZUV2ZW50SGFuZGxlcjxIVE1MSW5wdXRFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICBzZXRWYWx1ZShldnQudGFyZ2V0LnZhbHVlKTtcbiAgICAvLyByZXNldCB0byBmYWxzZSB3aGVuIHRoZSBzZWFyY2ggcXVlcnkgY2hhbmdlc1xuICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQoZmFsc2UpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVN1Ym1pdDogUmVhY3QuRm9ybUV2ZW50SGFuZGxlciA9IChldmVudCkgPT4ge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgd2hlbiB0aGUgdXNlciBzdWJtaXRzIHRoZSBmb3JtIHRvIGNhcHR1cmUgY29tcGxldGUgcXVlcnlcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIG5hdmlnYXRlVG9TZWFyY2godmFsdWUsIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkKTtcbiAgfTtcblxuICBjb25zdCBjbGVhcklucHV0ID0gKCkgPT4ge1xuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCBiZWZvcmUgdXNlciBjbGVhcnMgaW5wdXRcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIHNldFZhbHVlKCcnKTtcbiAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhbXSk7XG4gICAgLy8gcmVzZXQgdGhlIGNvbnRleHQgd2l0aCBlbXB0eSB2YWx1ZXNcbiAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICBxdWVyeTogJycsXG4gICAgICBzZWFyY2hJZDogJycsXG4gICAgICByZXN1bHRzQ291bnQ6IDAsXG4gICAgICBxdWVyeUxvYWRUaW1lOiAwLFxuICAgIH0pO1xuICB9O1xuXG4gIC8vIHdoZW4gdGhlIGN1cnJlbnQgVVJMIGNoYW5nZXMsIHdlIHdhbnQgdG8gY2xvc2UgdGhlIHNlYXJjaCBwYW5lIGlmIGl0J3Mgb3BlblxuICAvLyBhbmQgdHJhY2sgc2VhcmNoIGV2ZW50IGlmIHVzZXIgbWFkZSBhIHNlYXJjaFxuICB1c2VVcmxDaGFuZ2VEZXRlY3Rpb24oe1xuICAgIG9uVXJsQ2hhbmdlOiAoKSA9PiB7XG4gICAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgICAgfVxuXG4gICAgICB0b2dnbGVTZWFyY2goKTtcbiAgICB9LFxuICB9KTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIC8vIGRvbid0IHRyYWNrIGlmIGEgcmVzdWx0IHdhcyBjbGlja2VkIG9yIGlmIHdlIGRvbid0IGhhdmUgc2VhcmNoIHJlc3VsdHNcbiAgICBpZiAoXG4gICAgICBzZWFyY2hSZXN1bHRDbGlja2VkIHx8XG4gICAgICAhb25TZWFyY2hBc1lvdVR5cGUgfHxcbiAgICAgICFzZWFyY2hBc1lvdVR5cGVSZXN1bHRzIHx8XG4gICAgICAhdmFsdWVUcmltbWVkLmxlbmd0aFxuICAgIClcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11c2VsZXNzLXJldHVyblxuICAgICAgcmV0dXJuO1xuICB9LCBbXG4gICAgc2VhcmNoUmVzdWx0Q2xpY2tlZCxcbiAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLFxuICAgIHZhbHVlVHJpbW1lZCxcbiAgICBvblNlYXJjaEFzWW91VHlwZSxcbiAgXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpbnB1dFJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgIHNlYXJjaFdvcmtlci5pbml0KCk7XG4gIH0sIFtdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghdmFsdWVUcmltbWVkLmxlbmd0aCkge1xuICAgICAgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyhudWxsKTtcbiAgICAgIHNldEF1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zKFtdKTtcbiAgICAgIHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zKHtcbiAgICAgICAgcXVlcnk6ICcnLFxuICAgICAgICBzZWFyY2hJZDogJycsXG4gICAgICAgIHJlc3VsdHNDb3VudDogMCxcbiAgICAgICAgcXVlcnlMb2FkVGltZTogMCxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBjYW5jZWwgPSBmYWxzZTtcbiAgICBsZXQgY2xlYXJBdXRvY29tcGxldGUgPSB0cnVlO1xuICAgIGxldCBjbGVhclNlYXJjaEFzWW91VHlwZSA9IHRydWU7XG5cbiAgICBsZXQgc2VhcmNoRXZlbnROb1Jlc3VsdERlbGF5OiBOb2RlSlMuVGltZW91dDtcblxuICAgIGNvbnN0IGxvYWRlckRlbGF5ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAvKlxuICAgICAgICogV2FpdCAxMCBtaWxsaXNlY29uZHMgdG8gZ2V0IGEgcmVzcG9uc2UgZm9yIHdvcmtlciBiZWZvcmUgc2hvd2luZyBsb2FkZXJzLlxuICAgICAgICogVGhpcyBwcmV2ZW50cyBmbGlja2VyaW5nIGxvYWRlcnMgb24gcXVpY2sgb3IgY2FjaGVkIHJlc3VsdHMuXG4gICAgICAgKi9cbiAgICAgIGlmIChjYW5jZWwpIHJldHVybjtcbiAgICAgIGlmIChjbGVhckF1dG9jb21wbGV0ZSkgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgICAgaWYgKGNsZWFyU2VhcmNoQXNZb3VUeXBlKSBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKG51bGwpO1xuICAgIH0sIDEwKTtcblxuICAgIHNlYXJjaFdvcmtlci5hdXRvY29tcGxldGUodmFsdWVUcmltbWVkKS50aGVuKChzdWdnZXN0aW9ucykgPT4ge1xuICAgICAgY2xlYXJBdXRvY29tcGxldGUgPSBmYWxzZTtcblxuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuOyAvLyB0ZXh0IGhhcyBjaGFuZ2VkIHNpbmNlIHRoaXMgcmVxdWVzdCB3YXMgbWFkZVxuXG4gICAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhzdWdnZXN0aW9ucyk7XG4gICAgfSk7XG5cbiAgICBzZWFyY2hXb3JrZXIuc2VhcmNoQXNZb3VUeXBlKHZhbHVlVHJpbW1lZCkudGhlbigocmVzdWx0cykgPT4ge1xuICAgICAgY2xlYXJTZWFyY2hBc1lvdVR5cGUgPSBmYWxzZTtcblxuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuOyAvLyB0ZXh0IGhhcyBjaGFuZ2VkIHNpbmNlIHRoaXMgcmVxdWVzdCB3YXMgbWFkZVxuXG4gICAgICBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKHJlc3VsdHMpO1xuXG4gICAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICAgIHF1ZXJ5OiByZXN1bHRzLnF1ZXJ5LFxuICAgICAgICBzZWFyY2hJZDogcmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgcmVzdWx0c0NvdW50OiByZXN1bHRzLnRvcC5sZW5ndGgsXG4gICAgICAgIHF1ZXJ5TG9hZFRpbWU6IHJlc3VsdHMucXVlcnlMb2FkVGltZSxcbiAgICAgIH0pO1xuXG4gICAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgd2l0aCBhIHNtYWxsIGRlbGF5IHdoZW4gdGhlcmUgYXJlIG5vIHJlc3VsdHNcbiAgICAgIGlmIChcbiAgICAgICAgb25TZWFyY2hBc1lvdVR5cGUgJiZcbiAgICAgICAgcmVzdWx0cy50b3AubGVuZ3RoID09PSAwICYmXG4gICAgICAgICFzZWFyY2hSZXN1bHRDbGlja2VkXG4gICAgICApIHtcbiAgICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHF1ZXJ5TG9hZFRpbWUgfSA9IHJlc3VsdHM7XG4gICAgICAgIHNlYXJjaEV2ZW50Tm9SZXN1bHREZWxheSA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIGlmICghY2FuY2VsKSB7XG4gICAgICAgICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIDAsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSwgMzAwKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjYW5jZWwgPSB0cnVlO1xuICAgICAgY2xlYXJUaW1lb3V0KGxvYWRlckRlbGF5KTtcbiAgICAgIGNsZWFyVGltZW91dChzZWFyY2hFdmVudE5vUmVzdWx0RGVsYXkpO1xuICAgIH07XG4gIH0sIFtcbiAgICB2YWx1ZVRyaW1tZWQsXG4gICAgb25TZWFyY2hBc1lvdVR5cGUsXG4gICAgc2VhcmNoUmVzdWx0Q2xpY2tlZCxcbiAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyxcbiAgXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPEJveFxuICAgICAgICBhcmlhLWhpZGRlblxuICAgICAgICBiZz1cInNoYWRvdy1zZWNvbmRhcnlcIlxuICAgICAgICBoZWlnaHQ9XCIxMDB2aFwiXG4gICAgICAgIHBvc2l0aW9uPVwiZml4ZWRcIlxuICAgICAgICAvLyBXZSBhZGQgNnJlbSBoZXJlIGluIGNhc2UgdGhlcmUncyBzb21lIHNvcnQgb2YgYnJhbmRlZCBiYW5uZXIgYWJvdmUgc2VhcmNoXG4gICAgICAgIC8vIFRoZSBzZWFyY2ggYXJlYSBpcyBtdWNoIHRhbGxlciB0aGFuIDZyZW0gc28gdGhpcyBpcyBhIHNhZmUgYW1vdW50IG9mIHBhZGRpbmdcbiAgICAgICAgdG9wPXtgY2FsYygke3RoZW1lLmVsZW1lbnRzLmhlYWRlckhlaWdodH0gKyA2cmVtKWB9XG4gICAgICAgIHdpZHRoPXsxfVxuICAgICAgLz5cbiAgICAgIDxGb2N1c1RyYXBcbiAgICAgICAgb25Fc2NhcGVLZXk9e2Nsb3NlU2VhcmNofVxuICAgICAgICBvbkNsaWNrT3V0c2lkZT17b25Nb3VzZURvd25PdXRzaWRlfVxuICAgICAgICBhbGxvd1BhZ2VJbnRlcmFjdGlvblxuICAgICAgPlxuICAgICAgICA8Qm94XG4gICAgICAgICAgYmc9XCJiYWNrZ3JvdW5kXCJcbiAgICAgICAgICBib3JkZXJDb2xvckJvdHRvbT1cImJvcmRlci1wcmltYXJ5XCJcbiAgICAgICAgICBib3JkZXJDb2xvclRvcD1cImJvcmRlci10ZXJ0aWFyeVwiXG4gICAgICAgICAgYm9yZGVyU3R5bGU9XCJzb2xpZFwiXG4gICAgICAgICAgYm9yZGVyV2lkdGg9XCIycHggMCAxcHhcIlxuICAgICAgICAgIGRhdGEtdGVzdGlkPVwiaGVhZGVyLXNlYXJjaC1kcm9wZG93blwiXG4gICAgICAgICAgcG9zaXRpb249e3sgXzogJ2ZpeGVkJywgbWQ6ICdhYnNvbHV0ZScgfX1cbiAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgIG1heEhlaWdodD17eyBfOiAnY2FsYygxMDB2aCAtIDYzcHgpJywgbWQ6ICdjYWxjKDEwMHZoIC0gODBweCknIH19XG4gICAgICAgICAgb3ZlcmZsb3c9XCJhdXRvXCJcbiAgICAgICAgICB6SW5kZXg9ezEwfSAvLyBlbnN1cmUgZHJvcGRvd24gaXMgYWJvdmUgdGhlIHBhZ2UgY29udGVudFxuICAgICAgICA+XG4gICAgICAgICAgPEJveCBib3JkZXI9XCJub25lXCIgd2lkdGg9XCJhdXRvXCI+XG4gICAgICAgICAgICA8UXVlcnlDb250YWluZXI+XG4gICAgICAgICAgICAgIDxGbGV4Qm94XG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImJhc2VsaW5lXCJcbiAgICAgICAgICAgICAgICBib3JkZXJDb2xvcj1cImdyYXktNjAwXCJcbiAgICAgICAgICAgICAgICBib3JkZXJTdHlsZUJvdHRvbT1cInNvbGlkXCJcbiAgICAgICAgICAgICAgICBib3JkZXJXaWR0aEJvdHRvbT1cIjFweFwiXG4gICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTZWFyY2hJY29uXG4gICAgICAgICAgICAgICAgICBoZWlnaHQ9e3sgXzogMjAsIG1kOiAyNCB9fVxuICAgICAgICAgICAgICAgICAgd2lkdGg9e3sgXzogMjAsIG1kOiAyNCB9fVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPEZvcm1cbiAgICAgICAgICAgICAgICAgIGFjdGlvbj1cIi9zZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgaWQ9XCJzZWFyY2gtZm9ybVwiXG4gICAgICAgICAgICAgICAgICBtbD17OH1cbiAgICAgICAgICAgICAgICAgIG9uU3VibWl0PXtoYW5kbGVTdWJtaXR9XG4gICAgICAgICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxTdHlsZWRJbnB1dFxuICAgICAgICAgICAgICAgICAgICBhdXRvRm9jdXNcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZD1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICBib3JkZXI9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgZm9udFNpemU9e3sgXzogMjAsIG1kOiAyNiB9fVxuICAgICAgICAgICAgICAgICAgICBmb250V2VpZ2h0PVwiYm9sZFwiXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiaGVhZGVyLXNlYXJjaC1iYXJcIlxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwicXVlcnlcIlxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhlKSA9PiBvbktleURvd24oZSl9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtzZWFyY2hQbGFjZWhvbGRlcn1cbiAgICAgICAgICAgICAgICAgICAgcmVmPXtpbnB1dFJlZn1cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgICAgICAgYXV0b0NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9Gb3JtPlxuICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICBpY29uPXtNaW5pRGVsZXRlSWNvbn1cbiAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJDbGVhciBzZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgdGlwPVwiQ2xlYXIgc2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgIHRpcFByb3BzPXt7XG4gICAgICAgICAgICAgICAgICAgIGFsaWdubWVudDogJ2JvdHRvbS1jZW50ZXInLFxuICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ6ICdmbG9hdGluZycsXG4gICAgICAgICAgICAgICAgICAgIG5hcnJvdzogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgekluZGV4OiAyLFxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2NsZWFySW5wdXR9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvRmxleEJveD5cbiAgICAgICAgICAgIDwvUXVlcnlDb250YWluZXI+XG4gICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgPFN1Z2dlc3Rpb25Db250YWluZXI+XG4gICAgICAgICAgICB7dmFsdWVUcmltbWVkLmxlbmd0aCA+IDAgPyAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgPEZsZXhCb3ggZmxleERpcmVjdGlvbj1cImNvbHVtblwiIGFzPVwidWxcIiBsaXN0U3R5bGU9XCJub25lXCIgcD17MH0+XG4gICAgICAgICAgICAgICAgICB7YXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMubWFwKChzLCBpKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgIDxJbmxpbmVSZXN1bHRMaVxuICAgICAgICAgICAgICAgICAgICAgIGtleT17cy50aXRsZX1cbiAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhldnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnYXV0b2NvbXBsZXRlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzLnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdhdXRvY29tcGxldGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzLnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxTZW1pYm9sZFNlYXJjaEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgIG1iPXsyIGFzIDB9XG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPXsxNH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZVdpZHRoPXs4fVxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgICAgICAgICAgICAgICAgIG1yPXsxMn1cbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxIaWdobGlnaHRlZFRleHQgc3VnZ2VzdGlvbj17c30gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9JbmxpbmVSZXN1bHRMaT5cbiAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgIDwvRmxleEJveD5cbiAgICAgICAgICAgICAgICB7KHNlYXJjaEFzWW91VHlwZVJlc3VsdHMgPT09IG51bGwgfHxcbiAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMudG9wLmxlbmd0aCA+IDApICYmIChcbiAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgIDxUZXh0IGFzPVwiaDJcIiBmb250U2l6ZT17MjB9IG1iPXsxNn0gbXQ9ezI0fT5cbiAgICAgICAgICAgICAgICAgICAgICBUb3AgcmVzdWx0c1xuICAgICAgICAgICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgICAgICAgICAgIDxGbGV4Qm94XG4gICAgICAgICAgICAgICAgICAgICAgZmxleERpcmVjdGlvbj1cImNvbHVtblwiXG4gICAgICAgICAgICAgICAgICAgICAgYXM9XCJ1bFwiXG4gICAgICAgICAgICAgICAgICAgICAgbGlzdFN0eWxlPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgcD17MH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHNlYXJjaEFzWW91VHlwZUxvYWRlcj8uc2hpbW1lclJvd3MubWFwKChyKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPElubGluZUxvYWRlckxpIGtleT17ci5rZXl9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3Iuc2hpbW1lcnMubWFwKCh3b3JkKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTaGltbWVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PXszMH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBweT17OCBhcyAwfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17d29yZC5rZXl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9e3dvcmQud2lkdGh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCb3hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udEZhbWlseT1cImFjY2VudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRDb2xvcj1cInRleHQtc2Vjb25kYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udFNpemU9e3sgXzogMTAgYXMgMTYgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyQ29sb3I9XCJib3JkZXItc2Vjb25kYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyPXsxfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJSYWRpdXM9XCJ4bFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB4PXsxNn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eT17MC4xfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbmJzcDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSW5saW5lTG9hZGVyTGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICkpXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMudG9wLm1hcCgocywgaSkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbmxpbmVSZXN1bHRMaVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtgJHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy5xdWVyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfToke2kudG9TdHJpbmcoKX1gfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiSW5kZXg9ezB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwibGlua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhldnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV2dC5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnc2VhcmNoX2FzX3lvdV90eXBlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsdWc6IHMuc2x1ZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLihzLmNvbnRlbnRJZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHsgY29udGVudF9pZDogcy5jb250ZW50SWQgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhZmVseVJlZGlyZWN0KHMudXJsUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnc2VhcmNoX2FzX3lvdV90eXBlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2x1Zzogcy5zbHVnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLihzLmNvbnRlbnRJZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7IGNvbnRlbnRfaWQ6IHMuY29udGVudElkIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2FmZWx5UmVkaXJlY3Qocy51cmxQYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEhpZ2hsaWdodGVkVGV4dCBzdWdnZXN0aW9uPXtzfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJhZGdlIHNpemU9XCJzbVwiIHZhcmlhbnQ9XCJ0ZXJ0aWFyeVwiIG1sPXsxMn0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtzLnR5cGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0JhZGdlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSW5saW5lUmVzdWx0TGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIHtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy50b3AubGVuZ3RoID09PSAwICYmIChcbiAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgIDxCb3ggZm9udFNpemU9e3sgXzogMjAsIHNtOiAyNiB9fSBtdD17MH0gbWI9ezQ4fT5cbiAgICAgICAgICAgICAgICAgICAgICB7YFdlIGNvdWxkbid0IGZpbmQgYSBtYXRjaCBmb3IgYH1cbiAgICAgICAgICAgICAgICAgICAgICA8VGV4dCBmb250V2VpZ2h0PVwiYm9sZFwiPntgXCIke3ZhbHVlVHJpbW1lZH0uXCJgfTwvVGV4dD5cbiAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAnIFRyeSBhbm90aGVyIGtleXdvcmQsIG9yIHNlZSB3aGF0IG91ciBtZW1iZXJzIGFyZSBsZWFybmluZy4nXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICAgICAgPE1lbnUgYm9yZGVyPVwibm9uZVwiIHZhcmlhbnQ9XCJwb3BvdmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPFBvcHVsYXJDb250ZW50IG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfSAvPlxuICAgICAgICAgICAgICAgICAgICA8L01lbnU+XG4gICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxNZW51IGJvcmRlcj1cIm5vbmVcIiB2YXJpYW50PVwicG9wb3ZlclwiPlxuICAgICAgICAgICAgICAgIDxQb3B1bGFyU2VhcmNoZXNcbiAgICAgICAgICAgICAgICAgIG5hdmlnYXRlVG9TZWFyY2g9e25hdmlnYXRlVG9TZWFyY2h9XG4gICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxQb3B1bGFyQ29udGVudCBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja30gLz5cbiAgICAgICAgICAgICAgPC9NZW51PlxuICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgeyEhc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8udG9wLmxlbmd0aCAmJiAoXG4gICAgICAgICAgICAgIDxTdHJva2VCdXR0b25cbiAgICAgICAgICAgICAgICBteT17MTZ9XG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCd2aWV3X2FsbF9yZXN1bHRzJywge1xuICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgIG5hdmlnYXRlVG9TZWFyY2godmFsdWUsIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkKTtcbiAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIFZpZXcgYWxsIHJlc3VsdHNcbiAgICAgICAgICAgICAgPC9TdHJva2VCdXR0b24+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgPFF1aXpBbmRIZWxwQ2VudGVyTGlua3NcbiAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9XG4gICAgICAgICAgICAgIGhhbmRsZUNsb3NlRHJvcGRvd249e2Nsb3NlU2VhcmNofVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L1N1Z2dlc3Rpb25Db250YWluZXI+XG4gICAgICAgIDwvQm94PlxuICAgICAgPC9Gb2N1c1RyYXA+XG4gICAgPC8+XG4gICk7XG59O1xuIl19 */",
|
|
102
|
+
styles: "text-overflow:ellipsis/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvU2VhcmNoL1NlYXJjaFBhbmUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlHK0IiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL0FwcEhlYWRlci9TZWFyY2gvU2VhcmNoUGFuZS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYWRnZSxcbiAgQm94LFxuICBDb250ZW50Q29udGFpbmVyLFxuICBGbGV4Qm94LFxuICBGb2N1c1RyYXAsXG4gIEljb25CdXR0b24sXG4gIE1lbnUsXG4gIE1lbnVJdGVtLFxuICBTaGltbWVyLFxuICBTdHJva2VCdXR0b24sXG4gIFRleHQsXG59IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCB7IE1pbmlEZWxldGVJY29uLCBTZWFyY2hJY29uIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtaWNvbnMnO1xuaW1wb3J0IHsgY3NzLCB0aGVtZSwgdXNlQ3VycmVudE1vZGUgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IHVzZU9uRXNjSGFuZGxlciB9IGZyb20gJy4uL3NoYXJlZCc7XG5pbXBvcnQgeyBzZWFyY2hQbGFjZWhvbGRlciB9IGZyb20gJy4vY29uc3RzJztcbmltcG9ydCB7IFBvcHVsYXJDb250ZW50LCBQb3B1bGFyU2VhcmNoZXMgfSBmcm9tICcuL0RlZmF1bHRSZXN1bHRzJztcbmltcG9ydCB7IHVzZVVybENoYW5nZURldGVjdGlvbiB9IGZyb20gJy4vaG9va3MvdXNlVXJsQ2hhbmdlRGV0ZWN0aW9uJztcbmltcG9ydCB7IFF1aXpBbmRIZWxwQ2VudGVyTGlua3MgfSBmcm9tICcuL1F1aXpBbmRIZWxwQ2VudGVyTGlua3MnO1xuaW1wb3J0IHsgc2FmZWx5UmVkaXJlY3QgfSBmcm9tICcuL3NhZmVseVJlZGlyZWN0JztcbmltcG9ydCB7IHVzZVNlYXJjaFRyYWNraW5nQ29udGV4dCB9IGZyb20gJy4vU2VhcmNoVHJhY2tpbmdQcm92aWRlcic7XG5pbXBvcnQgeyBzZWFyY2hXb3JrZXIgfSBmcm9tICcuL1NlYXJjaFdvcmtlcic7XG5pbXBvcnQgdHlwZSB7XG4gIEF1dG9jb21wbGV0ZVN1Z2dlc3Rpb24sXG4gIFNlYXJjaEFzWW91VHlwZVJlc3VsdHMsXG59IGZyb20gJy4vU2VhcmNoV29ya2VyL3R5cGVzJztcbmltcG9ydCB7IFNlYXJjaFBhbmVQcm9wcyB9IGZyb20gJy4vdHlwZXMnO1xuXG5jb25zdCBGb3JtID0gQm94LndpdGhDb21wb25lbnQoJ2Zvcm0nKTtcbmNvbnN0IElucHV0ID0gQm94LndpdGhDb21wb25lbnQoJ2lucHV0Jyk7XG5cbmNvbnN0IFF1ZXJ5Q29udGFpbmVyID0gc3R5bGVkKENvbnRlbnRDb250YWluZXIpKFxuICBjc3Moe1xuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICB3aWR0aDogJzEwMCUnLFxuICAgIHB0OiAxNixcbiAgICBwYjogeyBfOiAwLCBtZDogMjQgfSxcbiAgICBweDogeyBfOiAyNCB9LFxuICB9KVxuKTtcblxuY29uc3QgU3VnZ2VzdGlvbkNvbnRhaW5lciA9IHN0eWxlZChDb250ZW50Q29udGFpbmVyKShcbiAgY3NzKHtcbiAgICBwdDogMTYsXG4gICAgcGI6IHsgXzogMCwgbWQ6IDI0IH0sXG4gICAgcHg6IHsgXzogMjQgfSxcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZElucHV0ID0gc3R5bGVkKElucHV0KShcbiAgY3NzKHtcbiAgICBvdXRsaW5lOiBgbm9uZWAsXG4gICAgJyY6OnBsYWNlaG9sZGVyJzoge1xuICAgICAgdGV4dENvbG9yOiB0aGVtZS5jb2xvcnNbJ3RleHQtc2Vjb25kYXJ5J10gYXMgbmV2ZXIsXG4gICAgfSxcbiAgfSlcbik7XG5cbmNvbnN0IElubGluZVJlc3VsdExpID0gc3R5bGVkKE1lbnVJdGVtKShcbiAgY3NzKHtcbiAgICBwbDogMCxcbiAgICBweTogOCxcbiAgICBmb250U2l6ZTogMTYsXG4gICAgJyY6Zm9jdXMtdmlzaWJsZTphZnRlcic6IHtcbiAgICAgIGxlZnQ6IC00LFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBJbmxpbmVMb2FkZXJMaSA9IHN0eWxlZC5saShcbiAgY3NzKHtcbiAgICBsaXN0U3R5bGVUeXBlOiAnbm9uZScsXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGdhcDogMTIsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gIH0pXG4pO1xuXG5leHBvcnQgY29uc3QgU2VtaWJvbGRTZWFyY2hJY29uID0gc3R5bGVkKFNlYXJjaEljb24pYFxuICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuICBjaXJjbGUsXG4gIHBhdGgge1xuICAgIHN0cm9rZS13aWR0aDogMnB4O1xuICB9XG4gIHJlY3Qge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0ycHgsIC0ycHgpO1xuICAgIGhlaWdodDogY2FsYygxMDAlICsgNHB4KTtcbiAgICB3aWR0aDogY2FsYygxMDAlICsgNHB4KTtcbiAgfVxuYDtcblxuY29uc3QgRWxsaXBzaXNCb3ggPSBzdHlsZWQoQm94KWBcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5gO1xuXG5jb25zdCBIaWdobGlnaHRlZFRleHQgPSAoe1xuICBzdWdnZXN0aW9uOiB7IHRpdGxlLCBzZWdtZW50cyB9LFxufToge1xuICBzdWdnZXN0aW9uOiBBdXRvY29tcGxldGVTdWdnZXN0aW9uO1xufSkgPT4ge1xuICBjb25zdCBtb2RlID0gdXNlQ3VycmVudE1vZGUoKTtcbiAgY29uc3QgaGlnaGxpZ2h0Q29sb3IgPSBtb2RlID09PSAnZGFyaycgPyAnaHlwZXInIDogJ3llbGxvdyc7XG5cbiAgcmV0dXJuIChcbiAgICA8RmxleEJveD5cbiAgICAgIDxFbGxpcHNpc0JveFxuICAgICAgICBtYXhXaWR0aD1cImNhbGMoMTAwdncgLSAxMjhweClcIlxuICAgICAgICB3aGl0ZVNwYWNlPVwicHJlXCJcbiAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgb3ZlcmZsb3c9XCJoaWRkZW5cIlxuICAgICAgPlxuICAgICAgICB7c2VnbWVudHMubWFwKChzZWdtZW50LCBpKSA9PiAoXG4gICAgICAgICAgPFRleHRcbiAgICAgICAgICAgIGtleT17YCR7dGl0bGV9OiR7aS50b1N0cmluZygpfWB9XG4gICAgICAgICAgICBsaW5lSGVpZ2h0PVwidGl0bGVcIlxuICAgICAgICAgICAgey4uLihzZWdtZW50LmhpZ2hsaWdodFxuICAgICAgICAgICAgICA/IHsgYmc6IGhpZ2hsaWdodENvbG9yLCBmb250V2VpZ2h0OiAnYm9sZCcgfVxuICAgICAgICAgICAgICA6IHt9KX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7c2VnbWVudC52YWx1ZX1cbiAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICkpfVxuICAgICAgPC9FbGxpcHNpc0JveD5cbiAgICAgIDxUZXh0IHNjcmVlbnJlYWRlcj57dGl0bGV9PC9UZXh0PlxuICAgIDwvRmxleEJveD5cbiAgKTtcbn07XG5cbnR5cGUgU2VhcmNoQXNZb3VUeXBlTG9hZGVyID0ge1xuICBzaGltbWVyUm93czoge1xuICAgIGtleTogc3RyaW5nO1xuICAgIHNoaW1tZXJzOiB7XG4gICAgICBrZXk6IHN0cmluZztcbiAgICAgIHdpZHRoOiBudW1iZXI7XG4gICAgfVtdO1xuICB9W107XG59O1xuXG5sZXQgbG9hZGVyS2V5ID0gMDtcbmZ1bmN0aW9uIHJuZExvYWRlcigpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBsdXNwbHVzXG4gIGNvbnN0IGtleSA9IGxvYWRlcktleSsrO1xuICBjb25zdCBsb2FkZXI6IFNlYXJjaEFzWW91VHlwZUxvYWRlciA9IHsgc2hpbW1lclJvd3M6IFtdIH07XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgNTsgaSsrKSB7XG4gICAgY29uc3Qgcm93ID0ge1xuICAgICAga2V5OiBgJHtrZXl9OiR7aX1gLFxuICAgICAgc2hpbW1lcnM6IFtdIGFzIHsga2V5OiBzdHJpbmc7IHdpZHRoOiBudW1iZXIgfVtdLFxuICAgIH07XG4gICAgY29uc3Qgd29yZHMgPSBNYXRoLmNlaWwoTWF0aC5yYW5kb20oKSAqIDMpO1xuICAgIGZvciAobGV0IGogPSAwOyBqIDwgd29yZHM7IGorKykge1xuICAgICAgY29uc3Qgd2lkdGggPSAxMiArIE1hdGgucm91bmQoTWF0aC5yYW5kb20oKSAqIDk2KTtcbiAgICAgIHJvdy5zaGltbWVycy5wdXNoKHtcbiAgICAgICAga2V5OiBgJHtrZXl9OiR7an1gLFxuICAgICAgICB3aWR0aCxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBsb2FkZXIuc2hpbW1lclJvd3MucHVzaChyb3cpO1xuICB9XG4gIHJldHVybiBsb2FkZXI7XG59XG5cbmV4cG9ydCBjb25zdCBTZWFyY2hQYW5lOiBSZWFjdC5GQzxTZWFyY2hQYW5lUHJvcHM+ID0gKHtcbiAgb25TZWFyY2gsXG4gIG9uVHJhY2tpbmdDbGljayxcbiAgc2VhcmNoQnV0dG9uUmVmLFxuICB0b2dnbGVTZWFyY2gsXG4gIG9uU2VhcmNoQXNZb3VUeXBlLFxufSkgPT4ge1xuICBjb25zdCB0aGVtZSA9IHVzZVRoZW1lKCk7XG4gIGNvbnN0IFt2YWx1ZSwgc2V0VmFsdWVdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCBpbnB1dFJlZiA9IHVzZVJlZjxIVE1MSW5wdXRFbGVtZW50PihudWxsKTtcbiAgY29uc3QgW2F1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zLCBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9uc10gPSB1c2VTdGF0ZTxcbiAgICBBdXRvY29tcGxldGVTdWdnZXN0aW9uW11cbiAgPihbXSk7XG4gIGNvbnN0IFtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLCBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzXSA9XG4gICAgdXNlU3RhdGU8U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyB8IG51bGw+KG51bGwpO1xuXG4gIGNvbnN0IFtzZWFyY2hSZXN1bHRDbGlja2VkLCBzZXRTZWFyY2hSZXN1bHRDbGlja2VkXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICBjb25zdCB7IHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zIH0gPSB1c2VTZWFyY2hUcmFja2luZ0NvbnRleHQoKTtcblxuICBjb25zdCBzZWFyY2hBc1lvdVR5cGVMb2FkZXIgPSBSZWFjdC51c2VNZW1vKFxuICAgICgpID0+IChzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsID8gcm5kTG9hZGVyKCkgOiBudWxsKSxcbiAgICBbc2VhcmNoQXNZb3VUeXBlUmVzdWx0c11cbiAgKTtcblxuICBjb25zdCB2YWx1ZVRyaW1tZWQgPSB2YWx1ZS50cmltKCk7XG5cbiAgY29uc3QgaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrID1cbiAgICBvblNlYXJjaEFzWW91VHlwZSAmJiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzICYmICFzZWFyY2hSZXN1bHRDbGlja2VkO1xuXG4gIGNvbnN0IGNsb3NlU2VhcmNoID0gYXN5bmMgKCkgPT4ge1xuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCB3aGVuIHVzZXIgbWFkZSBhIHNlYXJjaCBhbmQgdGhlbiBjbG9zZWQgc2VhcmNoIHBhbmVcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIGF3YWl0IHRvZ2dsZVNlYXJjaCgpO1xuICAgIC8vIGFkZHMgYSBsaXR0bGUgZGVsYXkgYmV0d2VlbiBjbG9zaW5nIHRoZSBzZWFyY2ggcGFuZSBhbmQgZm9jdXNpbmcgb24gdGhlIGJ1dHRvblxuICAgIC8vIHRvIHByZXZlbnQgdGhlIHNlYXJjaCBwYW5lIGZyb20gaW1tZWRpYXRlbHkgb3BlbmluZyBhZ2FpblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHNlYXJjaEJ1dHRvblJlZiAmJiBzZWFyY2hCdXR0b25SZWY/LmN1cnJlbnQpIHtcbiAgICAgICAgc2VhcmNoQnV0dG9uUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICB9XG4gICAgfSwgMTApO1xuICB9O1xuXG4gIGNvbnN0IG9uS2V5RG93biA9IHVzZU9uRXNjSGFuZGxlcihjbG9zZVNlYXJjaCk7XG5cbiAgY29uc3Qgb25Nb3VzZURvd25PdXRzaWRlID0gKHsgdGFyZ2V0IH06IE1vdXNlRXZlbnQpID0+IHtcbiAgICBjb25zdCBoYW5kbGVPdXRzaWRlQ2xpY2sgPSAoKSA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgICFkb2N1bWVudFxuICAgICAgICAgIC5xdWVyeVNlbGVjdG9yKCdbZGF0YS10ZXN0aWQ9XCJoZWFkZXItc2VhcmNoLWRyb3Bkb3duXCJdJylcbiAgICAgICAgICA/LmNvbnRhaW5zKHRhcmdldCBhcyBIVE1MRWxlbWVudCkgJiZcbiAgICAgICAgdGFyZ2V0ICE9PSBzZWFyY2hCdXR0b25SZWY/LmN1cnJlbnRcbiAgICAgICkge1xuICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgfVxuXG4gICAgICB0YXJnZXQ/LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBoYW5kbGVPdXRzaWRlQ2xpY2spO1xuICAgIH07XG5cbiAgICB0YXJnZXQ/LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBoYW5kbGVPdXRzaWRlQ2xpY2spO1xuICB9O1xuXG4gIGNvbnN0IG5hdmlnYXRlVG9TZWFyY2ggPSAoc2VhcmNoVGVybTogc3RyaW5nLCBmcm9tUHJldlNlYXJjaD86IHN0cmluZykgPT4ge1xuICAgIG9uU2VhcmNoKHNlYXJjaFRlcm0sIGZyb21QcmV2U2VhcmNoKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVDaGFuZ2U6IFJlYWN0LkNoYW5nZUV2ZW50SGFuZGxlcjxIVE1MSW5wdXRFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICBzZXRWYWx1ZShldnQudGFyZ2V0LnZhbHVlKTtcbiAgICAvLyByZXNldCB0byBmYWxzZSB3aGVuIHRoZSBzZWFyY2ggcXVlcnkgY2hhbmdlc1xuICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQoZmFsc2UpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVN1Ym1pdDogUmVhY3QuRm9ybUV2ZW50SGFuZGxlciA9IChldmVudCkgPT4ge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgd2hlbiB0aGUgdXNlciBzdWJtaXRzIHRoZSBmb3JtIHRvIGNhcHR1cmUgY29tcGxldGUgcXVlcnlcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIG5hdmlnYXRlVG9TZWFyY2godmFsdWUsIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkKTtcbiAgfTtcblxuICBjb25zdCBjbGVhcklucHV0ID0gKCkgPT4ge1xuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCBiZWZvcmUgdXNlciBjbGVhcnMgaW5wdXRcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIHNldFZhbHVlKCcnKTtcbiAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhbXSk7XG4gICAgLy8gcmVzZXQgdGhlIGNvbnRleHQgd2l0aCBlbXB0eSB2YWx1ZXNcbiAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICBxdWVyeTogJycsXG4gICAgICBzZWFyY2hJZDogJycsXG4gICAgICByZXN1bHRzQ291bnQ6IDAsXG4gICAgICBxdWVyeUxvYWRUaW1lOiAwLFxuICAgIH0pO1xuICB9O1xuXG4gIC8vIHdoZW4gdGhlIGN1cnJlbnQgVVJMIGNoYW5nZXMsIHdlIHdhbnQgdG8gY2xvc2UgdGhlIHNlYXJjaCBwYW5lIGlmIGl0J3Mgb3BlblxuICAvLyBhbmQgdHJhY2sgc2VhcmNoIGV2ZW50IGlmIHVzZXIgbWFkZSBhIHNlYXJjaFxuICB1c2VVcmxDaGFuZ2VEZXRlY3Rpb24oe1xuICAgIG9uVXJsQ2hhbmdlOiAoKSA9PiB7XG4gICAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzV2l0aG91dENsaWNrICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgICAgfVxuXG4gICAgICB0b2dnbGVTZWFyY2goKTtcbiAgICB9LFxuICB9KTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIC8vIGRvbid0IHRyYWNrIGlmIGEgcmVzdWx0IHdhcyBjbGlja2VkIG9yIGlmIHdlIGRvbid0IGhhdmUgc2VhcmNoIHJlc3VsdHNcbiAgICBpZiAoXG4gICAgICBzZWFyY2hSZXN1bHRDbGlja2VkIHx8XG4gICAgICAhb25TZWFyY2hBc1lvdVR5cGUgfHxcbiAgICAgICFzZWFyY2hBc1lvdVR5cGVSZXN1bHRzIHx8XG4gICAgICAhdmFsdWVUcmltbWVkLmxlbmd0aFxuICAgIClcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11c2VsZXNzLXJldHVyblxuICAgICAgcmV0dXJuO1xuICB9LCBbXG4gICAgc2VhcmNoUmVzdWx0Q2xpY2tlZCxcbiAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLFxuICAgIHZhbHVlVHJpbW1lZCxcbiAgICBvblNlYXJjaEFzWW91VHlwZSxcbiAgXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpbnB1dFJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgIHNlYXJjaFdvcmtlci5pbml0KCk7XG4gIH0sIFtdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghdmFsdWVUcmltbWVkLmxlbmd0aCkge1xuICAgICAgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyhudWxsKTtcbiAgICAgIHNldEF1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zKFtdKTtcbiAgICAgIHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zKHtcbiAgICAgICAgcXVlcnk6ICcnLFxuICAgICAgICBzZWFyY2hJZDogJycsXG4gICAgICAgIHJlc3VsdHNDb3VudDogMCxcbiAgICAgICAgcXVlcnlMb2FkVGltZTogMCxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBjYW5jZWwgPSBmYWxzZTtcbiAgICBsZXQgY2xlYXJBdXRvY29tcGxldGUgPSB0cnVlO1xuICAgIGxldCBjbGVhclNlYXJjaEFzWW91VHlwZSA9IHRydWU7XG5cbiAgICBsZXQgc2VhcmNoRXZlbnROb1Jlc3VsdERlbGF5OiBOb2RlSlMuVGltZW91dDtcblxuICAgIGNvbnN0IGxvYWRlckRlbGF5ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAvKlxuICAgICAgICogV2FpdCAxMCBtaWxsaXNlY29uZHMgdG8gZ2V0IGEgcmVzcG9uc2UgZm9yIHdvcmtlciBiZWZvcmUgc2hvd2luZyBsb2FkZXJzLlxuICAgICAgICogVGhpcyBwcmV2ZW50cyBmbGlja2VyaW5nIGxvYWRlcnMgb24gcXVpY2sgb3IgY2FjaGVkIHJlc3VsdHMuXG4gICAgICAgKi9cbiAgICAgIGlmIChjYW5jZWwpIHJldHVybjtcbiAgICAgIGlmIChjbGVhckF1dG9jb21wbGV0ZSkgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgICAgaWYgKGNsZWFyU2VhcmNoQXNZb3VUeXBlKSBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKG51bGwpO1xuICAgIH0sIDEwKTtcblxuICAgIHNlYXJjaFdvcmtlci5hdXRvY29tcGxldGUodmFsdWVUcmltbWVkKS50aGVuKChzdWdnZXN0aW9ucykgPT4ge1xuICAgICAgY2xlYXJBdXRvY29tcGxldGUgPSBmYWxzZTtcblxuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuOyAvLyB0ZXh0IGhhcyBjaGFuZ2VkIHNpbmNlIHRoaXMgcmVxdWVzdCB3YXMgbWFkZVxuXG4gICAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhzdWdnZXN0aW9ucyk7XG4gICAgfSk7XG5cbiAgICBzZWFyY2hXb3JrZXIuc2VhcmNoQXNZb3VUeXBlKHZhbHVlVHJpbW1lZCkudGhlbigocmVzdWx0cykgPT4ge1xuICAgICAgY2xlYXJTZWFyY2hBc1lvdVR5cGUgPSBmYWxzZTtcblxuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuOyAvLyB0ZXh0IGhhcyBjaGFuZ2VkIHNpbmNlIHRoaXMgcmVxdWVzdCB3YXMgbWFkZVxuXG4gICAgICBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKHJlc3VsdHMpO1xuXG4gICAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICAgIHF1ZXJ5OiByZXN1bHRzLnF1ZXJ5LFxuICAgICAgICBzZWFyY2hJZDogcmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgcmVzdWx0c0NvdW50OiByZXN1bHRzLnRvcC5sZW5ndGgsXG4gICAgICAgIHF1ZXJ5TG9hZFRpbWU6IHJlc3VsdHMucXVlcnlMb2FkVGltZSxcbiAgICAgIH0pO1xuXG4gICAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgd2l0aCBhIHNtYWxsIGRlbGF5IHdoZW4gdGhlcmUgYXJlIG5vIHJlc3VsdHNcbiAgICAgIGlmIChcbiAgICAgICAgb25TZWFyY2hBc1lvdVR5cGUgJiZcbiAgICAgICAgcmVzdWx0cy50b3AubGVuZ3RoID09PSAwICYmXG4gICAgICAgICFzZWFyY2hSZXN1bHRDbGlja2VkXG4gICAgICApIHtcbiAgICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHF1ZXJ5TG9hZFRpbWUgfSA9IHJlc3VsdHM7XG4gICAgICAgIHNlYXJjaEV2ZW50Tm9SZXN1bHREZWxheSA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIGlmICghY2FuY2VsKSB7XG4gICAgICAgICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIDAsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSwgMzAwKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjYW5jZWwgPSB0cnVlO1xuICAgICAgY2xlYXJUaW1lb3V0KGxvYWRlckRlbGF5KTtcbiAgICAgIGNsZWFyVGltZW91dChzZWFyY2hFdmVudE5vUmVzdWx0RGVsYXkpO1xuICAgIH07XG4gIH0sIFtcbiAgICB2YWx1ZVRyaW1tZWQsXG4gICAgb25TZWFyY2hBc1lvdVR5cGUsXG4gICAgc2VhcmNoUmVzdWx0Q2xpY2tlZCxcbiAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyxcbiAgXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPEJveFxuICAgICAgICBhcmlhLWhpZGRlblxuICAgICAgICBiZz1cInNoYWRvdy1zZWNvbmRhcnlcIlxuICAgICAgICBoZWlnaHQ9XCIxMDB2aFwiXG4gICAgICAgIHBvc2l0aW9uPVwiZml4ZWRcIlxuICAgICAgICAvLyBXZSBhZGQgNXJlbSBoZXJlIGluIGNhc2UgdGhlcmUncyBzb21lIHNvcnQgb2YgYnJhbmRlZCBiYW5uZXIgYWJvdmUgc2VhcmNoXG4gICAgICAgIC8vIFRoZSBzZWFyY2ggYXJlYSBpcyBtdWNoIHRhbGxlciB0aGFuIDVyZW0gc28gdGhpcyBpcyBhIHNhZmUgYW1vdW50IG9mIHBhZGRpbmdcbiAgICAgICAgdG9wPXtgY2FsYygke3RoZW1lLmVsZW1lbnRzLmhlYWRlckhlaWdodH0gKyA1cmVtKWB9XG4gICAgICAgIHdpZHRoPXsxfVxuICAgICAgLz5cbiAgICAgIDxGb2N1c1RyYXBcbiAgICAgICAgb25Fc2NhcGVLZXk9e2Nsb3NlU2VhcmNofVxuICAgICAgICBvbkNsaWNrT3V0c2lkZT17b25Nb3VzZURvd25PdXRzaWRlfVxuICAgICAgICBhbGxvd1BhZ2VJbnRlcmFjdGlvblxuICAgICAgPlxuICAgICAgICA8Qm94XG4gICAgICAgICAgYmc9XCJiYWNrZ3JvdW5kXCJcbiAgICAgICAgICBib3JkZXJDb2xvckJvdHRvbT1cImJvcmRlci1wcmltYXJ5XCJcbiAgICAgICAgICBib3JkZXJDb2xvclRvcD1cImJvcmRlci10ZXJ0aWFyeVwiXG4gICAgICAgICAgYm9yZGVyU3R5bGU9XCJzb2xpZFwiXG4gICAgICAgICAgYm9yZGVyV2lkdGg9XCIycHggMCAxcHhcIlxuICAgICAgICAgIGRhdGEtdGVzdGlkPVwiaGVhZGVyLXNlYXJjaC1kcm9wZG93blwiXG4gICAgICAgICAgcG9zaXRpb249e3sgXzogJ2ZpeGVkJywgbWQ6ICdhYnNvbHV0ZScgfX1cbiAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgIG1heEhlaWdodD17eyBfOiAnY2FsYygxMDB2aCAtIDYzcHgpJywgbWQ6ICdjYWxjKDEwMHZoIC0gODBweCknIH19XG4gICAgICAgICAgb3ZlcmZsb3c9XCJhdXRvXCJcbiAgICAgICAgICB6SW5kZXg9ezEwfSAvLyBlbnN1cmUgZHJvcGRvd24gaXMgYWJvdmUgdGhlIHBhZ2UgY29udGVudFxuICAgICAgICA+XG4gICAgICAgICAgPEJveCBib3JkZXI9XCJub25lXCIgd2lkdGg9XCJhdXRvXCI+XG4gICAgICAgICAgICA8UXVlcnlDb250YWluZXI+XG4gICAgICAgICAgICAgIDxGbGV4Qm94XG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImJhc2VsaW5lXCJcbiAgICAgICAgICAgICAgICBib3JkZXJDb2xvcj1cImdyYXktNjAwXCJcbiAgICAgICAgICAgICAgICBib3JkZXJTdHlsZUJvdHRvbT1cInNvbGlkXCJcbiAgICAgICAgICAgICAgICBib3JkZXJXaWR0aEJvdHRvbT1cIjFweFwiXG4gICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTZWFyY2hJY29uXG4gICAgICAgICAgICAgICAgICBoZWlnaHQ9e3sgXzogMjAsIG1kOiAyNCB9fVxuICAgICAgICAgICAgICAgICAgd2lkdGg9e3sgXzogMjAsIG1kOiAyNCB9fVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPEZvcm1cbiAgICAgICAgICAgICAgICAgIGFjdGlvbj1cIi9zZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgaWQ9XCJzZWFyY2gtZm9ybVwiXG4gICAgICAgICAgICAgICAgICBtbD17OH1cbiAgICAgICAgICAgICAgICAgIG9uU3VibWl0PXtoYW5kbGVTdWJtaXR9XG4gICAgICAgICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxTdHlsZWRJbnB1dFxuICAgICAgICAgICAgICAgICAgICBhdXRvRm9jdXNcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZD1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICBib3JkZXI9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgZm9udFNpemU9e3sgXzogMjAsIG1kOiAyNiB9fVxuICAgICAgICAgICAgICAgICAgICBmb250V2VpZ2h0PVwiYm9sZFwiXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiaGVhZGVyLXNlYXJjaC1iYXJcIlxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwicXVlcnlcIlxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhlKSA9PiBvbktleURvd24oZSl9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtzZWFyY2hQbGFjZWhvbGRlcn1cbiAgICAgICAgICAgICAgICAgICAgcmVmPXtpbnB1dFJlZn1cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgICAgICAgYXV0b0NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9Gb3JtPlxuICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICBpY29uPXtNaW5pRGVsZXRlSWNvbn1cbiAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJDbGVhciBzZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgdGlwPVwiQ2xlYXIgc2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgIHRpcFByb3BzPXt7XG4gICAgICAgICAgICAgICAgICAgIGFsaWdubWVudDogJ2JvdHRvbS1jZW50ZXInLFxuICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ6ICdmbG9hdGluZycsXG4gICAgICAgICAgICAgICAgICAgIG5hcnJvdzogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgekluZGV4OiAyLFxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2NsZWFySW5wdXR9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvRmxleEJveD5cbiAgICAgICAgICAgIDwvUXVlcnlDb250YWluZXI+XG4gICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgPFN1Z2dlc3Rpb25Db250YWluZXI+XG4gICAgICAgICAgICB7dmFsdWVUcmltbWVkLmxlbmd0aCA+IDAgPyAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgPEZsZXhCb3ggZmxleERpcmVjdGlvbj1cImNvbHVtblwiIGFzPVwidWxcIiBsaXN0U3R5bGU9XCJub25lXCIgcD17MH0+XG4gICAgICAgICAgICAgICAgICB7YXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMubWFwKChzLCBpKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgIDxJbmxpbmVSZXN1bHRMaVxuICAgICAgICAgICAgICAgICAgICAgIGtleT17cy50aXRsZX1cbiAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhldnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnYXV0b2NvbXBsZXRlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzLnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdhdXRvY29tcGxldGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzLnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxTZW1pYm9sZFNlYXJjaEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgIG1iPXsyIGFzIDB9XG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPXsxNH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZVdpZHRoPXs4fVxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgICAgICAgICAgICAgICAgIG1yPXsxMn1cbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxIaWdobGlnaHRlZFRleHQgc3VnZ2VzdGlvbj17c30gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9JbmxpbmVSZXN1bHRMaT5cbiAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgIDwvRmxleEJveD5cbiAgICAgICAgICAgICAgICB7KHNlYXJjaEFzWW91VHlwZVJlc3VsdHMgPT09IG51bGwgfHxcbiAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMudG9wLmxlbmd0aCA+IDApICYmIChcbiAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgIDxUZXh0IGFzPVwiaDJcIiBmb250U2l6ZT17MjB9IG1iPXsxNn0gbXQ9ezI0fT5cbiAgICAgICAgICAgICAgICAgICAgICBUb3AgcmVzdWx0c1xuICAgICAgICAgICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgICAgICAgICAgIDxGbGV4Qm94XG4gICAgICAgICAgICAgICAgICAgICAgZmxleERpcmVjdGlvbj1cImNvbHVtblwiXG4gICAgICAgICAgICAgICAgICAgICAgYXM9XCJ1bFwiXG4gICAgICAgICAgICAgICAgICAgICAgbGlzdFN0eWxlPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgcD17MH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHNlYXJjaEFzWW91VHlwZUxvYWRlcj8uc2hpbW1lclJvd3MubWFwKChyKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPElubGluZUxvYWRlckxpIGtleT17ci5rZXl9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3Iuc2hpbW1lcnMubWFwKCh3b3JkKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTaGltbWVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PXszMH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBweT17OCBhcyAwfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17d29yZC5rZXl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9e3dvcmQud2lkdGh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCb3hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udEZhbWlseT1cImFjY2VudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRDb2xvcj1cInRleHQtc2Vjb25kYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udFNpemU9e3sgXzogMTAgYXMgMTYgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyQ29sb3I9XCJib3JkZXItc2Vjb25kYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyPXsxfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJSYWRpdXM9XCJ4bFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB4PXsxNn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eT17MC4xfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbmJzcDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSW5saW5lTG9hZGVyTGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICkpXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMudG9wLm1hcCgocywgaSkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbmxpbmVSZXN1bHRMaVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtgJHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy5xdWVyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfToke2kudG9TdHJpbmcoKX1gfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiSW5kZXg9ezB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwibGlua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhldnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV2dC5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnc2VhcmNoX2FzX3lvdV90eXBlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsdWc6IHMuc2x1ZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLihzLmNvbnRlbnRJZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHsgY29udGVudF9pZDogcy5jb250ZW50SWQgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhZmVseVJlZGlyZWN0KHMudXJsUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnc2VhcmNoX2FzX3lvdV90eXBlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2x1Zzogcy5zbHVnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLihzLmNvbnRlbnRJZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7IGNvbnRlbnRfaWQ6IHMuY29udGVudElkIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2FmZWx5UmVkaXJlY3Qocy51cmxQYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEhpZ2hsaWdodGVkVGV4dCBzdWdnZXN0aW9uPXtzfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJhZGdlIHNpemU9XCJzbVwiIHZhcmlhbnQ9XCJ0ZXJ0aWFyeVwiIG1sPXsxMn0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtzLnR5cGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0JhZGdlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSW5saW5lUmVzdWx0TGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIHtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy50b3AubGVuZ3RoID09PSAwICYmIChcbiAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgIDxCb3ggZm9udFNpemU9e3sgXzogMjAsIHNtOiAyNiB9fSBtdD17MH0gbWI9ezQ4fT5cbiAgICAgICAgICAgICAgICAgICAgICB7YFdlIGNvdWxkbid0IGZpbmQgYSBtYXRjaCBmb3IgYH1cbiAgICAgICAgICAgICAgICAgICAgICA8VGV4dCBmb250V2VpZ2h0PVwiYm9sZFwiPntgXCIke3ZhbHVlVHJpbW1lZH0uXCJgfTwvVGV4dD5cbiAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAnIFRyeSBhbm90aGVyIGtleXdvcmQsIG9yIHNlZSB3aGF0IG91ciBtZW1iZXJzIGFyZSBsZWFybmluZy4nXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICAgICAgPE1lbnUgYm9yZGVyPVwibm9uZVwiIHZhcmlhbnQ9XCJwb3BvdmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPFBvcHVsYXJDb250ZW50IG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfSAvPlxuICAgICAgICAgICAgICAgICAgICA8L01lbnU+XG4gICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxNZW51IGJvcmRlcj1cIm5vbmVcIiB2YXJpYW50PVwicG9wb3ZlclwiPlxuICAgICAgICAgICAgICAgIDxQb3B1bGFyU2VhcmNoZXNcbiAgICAgICAgICAgICAgICAgIG5hdmlnYXRlVG9TZWFyY2g9e25hdmlnYXRlVG9TZWFyY2h9XG4gICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxQb3B1bGFyQ29udGVudCBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja30gLz5cbiAgICAgICAgICAgICAgPC9NZW51PlxuICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgeyEhc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8udG9wLmxlbmd0aCAmJiAoXG4gICAgICAgICAgICAgIDxTdHJva2VCdXR0b25cbiAgICAgICAgICAgICAgICBteT17MTZ9XG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCd2aWV3X2FsbF9yZXN1bHRzJywge1xuICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgIG5hdmlnYXRlVG9TZWFyY2godmFsdWUsIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkKTtcbiAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIFZpZXcgYWxsIHJlc3VsdHNcbiAgICAgICAgICAgICAgPC9TdHJva2VCdXR0b24+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgPFF1aXpBbmRIZWxwQ2VudGVyTGlua3NcbiAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9XG4gICAgICAgICAgICAgIGhhbmRsZUNsb3NlRHJvcGRvd249e2Nsb3NlU2VhcmNofVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L1N1Z2dlc3Rpb25Db250YWluZXI+XG4gICAgICAgIDwvQm94PlxuICAgICAgPC9Gb2N1c1RyYXA+XG4gICAgPC8+XG4gICk7XG59O1xuIl19 */",
|
|
103
103
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
104
104
|
});
|
|
105
105
|
const HighlightedText = ({
|
|
@@ -345,10 +345,10 @@ export const SearchPane = ({
|
|
|
345
345
|
bg: "shadow-secondary",
|
|
346
346
|
height: "100vh",
|
|
347
347
|
position: "fixed"
|
|
348
|
-
// We add
|
|
349
|
-
// The search area is much taller than
|
|
348
|
+
// We add 5rem here in case there's some sort of branded banner above search
|
|
349
|
+
// The search area is much taller than 5rem so this is a safe amount of padding
|
|
350
350
|
,
|
|
351
|
-
top: `calc(${theme.elements.headerHeight} +
|
|
351
|
+
top: `calc(${theme.elements.headerHeight} + 5rem)`,
|
|
352
352
|
width: 1
|
|
353
353
|
}), /*#__PURE__*/_jsx(FocusTrap, {
|
|
354
354
|
onEscapeKey: closeSearch,
|