@codecademy/brand 4.0.0-alpha.fdfb3ba880.0 → 4.0.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/AbbreviatedCommunityEventCard/index.d.ts +7 -10
- package/dist/AbbreviatedCommunityEventCard/index.js +98 -86
- package/dist/AppBar/AppBarSection.d.ts +10 -15
- package/dist/AppBar/AppBarSection.js +39 -35
- package/dist/AppBar/index.d.ts +8 -12
- package/dist/AppBar/index.js +20 -20
- package/dist/AppBarDeprecated/AppBarSectionDeprecated.d.ts +9 -13
- package/dist/AppBarDeprecated/AppBarSectionDeprecated.js +23 -21
- package/dist/AppBarDeprecated/index.d.ts +9 -13
- package/dist/AppBarDeprecated/index.js +24 -22
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/MarketingBanner.d.ts +13 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/MarketingBanner.js +111 -132
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/NavPanels.d.ts +8 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/NavPanels.js +334 -288
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/consts.d.ts +17 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/consts.js +226 -270
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/index.d.ts +5 -9
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/index.js +122 -107
- package/dist/AppHeader/AppHeaderElements/AppHeaderDietCard/index.d.ts +11 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderDietCard/index.js +124 -112
- package/dist/AppHeader/AppHeaderElements/AppHeaderDropdown/index.d.ts +11 -16
- package/dist/AppHeader/AppHeaderElements/AppHeaderDropdown/index.js +113 -94
- package/dist/AppHeader/AppHeaderElements/AppHeaderDropdownProvider/index.d.ts +13 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderDropdownProvider/index.js +27 -29
- package/dist/AppHeader/AppHeaderElements/AppHeaderFeatureCard/index.d.ts +4 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderFeatureCard/index.js +56 -59
- package/dist/AppHeader/AppHeaderElements/AppHeaderLink/index.d.ts +44 -53
- package/dist/AppHeader/AppHeaderElements/AppHeaderLink/index.js +70 -56
- package/dist/AppHeader/AppHeaderElements/AppHeaderLinkSections/elements.d.ts +42 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderLinkSections/elements.js +36 -32
- package/dist/AppHeader/AppHeaderElements/AppHeaderLinkSections/index.d.ts +8 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderLinkSections/index.js +59 -41
- package/dist/AppHeader/AppHeaderElements/AppHeaderListItem/index.d.ts +14 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderListItem/index.js +32 -23
- package/dist/AppHeader/AppHeaderElements/AppHeaderLogo/index.d.ts +5 -10
- package/dist/AppHeader/AppHeaderElements/AppHeaderLogo/index.js +55 -49
- package/dist/AppHeader/AppHeaderElements/AppHeaderMenuProvider/index.d.ts +14 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderMenuProvider/index.js +86 -80
- package/dist/AppHeader/AppHeaderElements/AppHeaderNavButton/index.d.ts +12 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderNavButton/index.js +101 -76
- package/dist/AppHeader/AppHeaderElements/AppHeaderProvider/index.d.ts +10 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderProvider/index.js +17 -20
- package/dist/AppHeader/AppHeaderElements/AppHeaderResourcesDropdown/NavPanels.d.ts +10 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderResourcesDropdown/NavPanels.js +107 -110
- package/dist/AppHeader/AppHeaderElements/AppHeaderResourcesDropdown/consts.d.ts +18 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderResourcesDropdown/consts.js +291 -335
- package/dist/AppHeader/AppHeaderElements/AppHeaderResourcesDropdown/index.d.ts +5 -9
- package/dist/AppHeader/AppHeaderElements/AppHeaderResourcesDropdown/index.js +120 -102
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/AppHeaderSectionContext.d.ts +7 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/AppHeaderSectionContext.js +9 -15
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/MobileBackButton.d.ts +6 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/MobileBackButton.js +89 -83
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/MobileNavMenu.d.ts +11 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/MobileNavMenu.js +61 -49
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/NavTabs.d.ts +20 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/NavTabs.js +125 -98
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/PanelLayout.d.ts +9 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/PanelLayout.js +81 -83
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/elements.d.ts +88 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/elements.js +118 -168
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/index.d.ts +24 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/index.js +144 -117
- package/dist/AppHeader/AppHeaderElements/AppHeaderSkillTile/index.d.ts +6 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderSkillTile/index.js +65 -53
- package/dist/AppHeader/Search/DefaultResults.d.ts +10 -0
- package/dist/AppHeader/Search/DefaultResults.js +111 -101
- package/dist/AppHeader/Search/QuizAndHelpCenterLinks.d.ts +7 -0
- package/dist/AppHeader/Search/QuizAndHelpCenterLinks.js +79 -68
- package/dist/AppHeader/Search/SearchButton.d.ts +2 -0
- package/dist/AppHeader/Search/SearchButton.js +71 -46
- package/dist/AppHeader/Search/SearchPane.d.ts +6 -0
- package/dist/AppHeader/Search/SearchPane.js +622 -472
- package/dist/AppHeader/Search/SearchTrackingProvider/index.d.ts +17 -0
- package/dist/AppHeader/Search/SearchTrackingProvider/index.js +23 -26
- package/dist/AppHeader/Search/SearchWorker/PromiseLookup.d.ts +18 -0
- package/dist/AppHeader/Search/SearchWorker/PromiseLookup.js +35 -43
- package/dist/AppHeader/Search/SearchWorker/index.d.ts +4 -9
- package/dist/AppHeader/Search/SearchWorker/index.js +23 -23
- package/dist/AppHeader/Search/SearchWorker/src.d.ts +1 -0
- package/dist/AppHeader/Search/SearchWorker/src.js +305 -153
- package/dist/AppHeader/Search/SearchWorker/types.d.ts +30 -23
- package/dist/AppHeader/Search/SearchWorker/types.js +5 -9
- package/dist/AppHeader/Search/SearchWorker/worker.d.ts +2 -0
- package/dist/AppHeader/Search/SearchWorker/worker.js +29 -24
- package/dist/AppHeader/Search/consts.d.ts +20 -23
- package/dist/AppHeader/Search/consts.js +39 -62
- package/dist/AppHeader/Search/hooks/useUrlChangeDetection.d.ts +5 -0
- package/dist/AppHeader/Search/hooks/useUrlChangeDetection.js +14 -16
- package/dist/AppHeader/Search/safelyRedirect.d.ts +5 -0
- package/dist/AppHeader/Search/safelyRedirect.js +42 -32
- package/dist/AppHeader/Search/types.d.ts +19 -11
- package/dist/AppHeader/Search/types.js +1 -0
- package/dist/AppHeader/Search/useHeaderSearch.d.ts +6 -0
- package/dist/AppHeader/Search/useHeaderSearch.js +40 -38
- package/dist/AppHeader/index.d.ts +22 -28
- package/dist/AppHeader/index.js +98 -90
- package/dist/AppHeader/shared/elements.d.ts +90 -9
- package/dist/AppHeader/shared/elements.js +243 -152
- package/dist/AppHeader/shared/index.d.ts +4 -4
- package/dist/AppHeader/shared/index.js +4 -0
- package/dist/AppHeader/shared/keyboardNav.d.ts +23 -1
- package/dist/AppHeader/shared/keyboardNav.js +65 -63
- package/dist/AppHeader/shared/mockAppHeaderItems.d.ts +2 -1
- package/dist/AppHeader/shared/mockAppHeaderItems.js +10 -0
- package/dist/AppHeader/shared/types.d.ts +104 -108
- package/dist/AppHeader/shared/types.js +1 -5
- package/dist/AppHeader/shared/utils.d.ts +14 -0
- package/dist/AppHeader/shared/utils.js +100 -84
- package/dist/AppHeader/utils/types.d.ts +8 -0
- package/dist/AppHeader/utils/types.js +1 -0
- package/dist/AppHeaderMobile/AppHeaderMainMenuMobile/index.d.ts +7 -12
- package/dist/AppHeaderMobile/AppHeaderMainMenuMobile/index.js +140 -121
- package/dist/AppHeaderMobile/AppHeaderSubMenuMobile/elements.d.ts +13 -0
- package/dist/AppHeaderMobile/AppHeaderSubMenuMobile/elements.js +30 -26
- package/dist/AppHeaderMobile/AppHeaderSubMenuMobile/index.d.ts +7 -11
- package/dist/AppHeaderMobile/AppHeaderSubMenuMobile/index.js +122 -105
- package/dist/AppHeaderMobile/AppHeaderSubMenuTarget/index.d.ts +7 -0
- package/dist/AppHeaderMobile/AppHeaderSubMenuTarget/index.js +60 -58
- package/dist/AppHeaderMobile/index.d.ts +19 -26
- package/dist/AppHeaderMobile/index.js +214 -191
- package/dist/Avatar/Avatar.stories.js +15 -0
- package/dist/Avatar/index.d.ts +33 -37
- package/dist/Avatar/index.js +45 -49
- package/dist/AvatarChooser/index.d.ts +10 -13
- package/dist/AvatarChooser/index.js +102 -93
- package/dist/BackToTopAnchor/index.d.ts +11 -13
- package/dist/BackToTopAnchor/index.js +37 -31
- package/dist/Banner/CountdownTimer.d.ts +5 -8
- package/dist/Banner/CountdownTimer.js +104 -103
- package/dist/Banner/EnhancedBanner.d.ts +16 -19
- package/dist/Banner/EnhancedBanner.js +169 -136
- package/dist/Banner/index.d.ts +18 -21
- package/dist/Banner/index.js +95 -73
- package/dist/BetaSticker/index.d.ts +4 -7
- package/dist/BetaSticker/index.js +57 -60
- package/dist/CareerPathCard/index.d.ts +20 -24
- package/dist/CareerPathCard/index.js +49 -33
- package/dist/Carousel/elements.d.ts +27 -0
- package/dist/Carousel/elements.js +14 -10
- package/dist/Carousel/index.d.ts +21 -24
- package/dist/Carousel/index.js +247 -185
- package/dist/CertificationPathCard/__tests__/__fixtures__/index.d.ts +2 -0
- package/dist/CertificationPathCard/index.d.ts +20 -24
- package/dist/CertificationPathCard/index.js +52 -40
- package/dist/CoachingSessionCard/index.d.ts +20 -23
- package/dist/CoachingSessionCard/index.js +73 -84
- package/dist/CommunityEventCard/EventTypeIcon.d.ts +11 -0
- package/dist/CommunityEventCard/EventTypeIcon.js +58 -59
- package/dist/CommunityEventCard/index.d.ts +27 -30
- package/dist/CommunityEventCard/index.js +302 -253
- package/dist/CommunityEventToast/index.d.ts +4 -7
- package/dist/CommunityEventToast/index.js +32 -33
- package/dist/ContentGroupBaseCard/helpers.d.ts +4 -8
- package/dist/ContentGroupBaseCard/helpers.js +11 -12
- package/dist/ContentGroupBaseCard/index.d.ts +31 -38
- package/dist/ContentGroupBaseCard/index.js +236 -209
- package/dist/ContentGroupBaseCard/shared.d.ts +7 -0
- package/dist/ContentGroupBaseCard/shared.js +67 -73
- package/dist/ContentGroupBaseCard/types.d.ts +8 -11
- package/dist/ContentGroupBaseCard/types.js +11 -15
- package/dist/CourseCard/__tests__/__fixtures__/index.d.ts +3 -0
- package/dist/CourseCard/index.d.ts +19 -24
- package/dist/CourseCard/index.js +45 -31
- package/dist/CurriculumCard/BottomTag/index.d.ts +7 -6
- package/dist/CurriculumCard/BottomTag/index.js +24 -26
- package/dist/CurriculumCard/Difficulty/helpers.d.ts +2 -7
- package/dist/CurriculumCard/Difficulty/helpers.js +11 -15
- package/dist/CurriculumCard/Difficulty/index.d.ts +3 -7
- package/dist/CurriculumCard/Difficulty/index.js +47 -40
- package/dist/CurriculumCard/Difficulty/types.d.ts +13 -16
- package/dist/CurriculumCard/Difficulty/types.js +17 -16
- package/dist/CurriculumCard/Footer/index.d.ts +10 -0
- package/dist/CurriculumCard/Footer/index.js +54 -47
- package/dist/CurriculumCard/Image/index.d.ts +9 -0
- package/dist/CurriculumCard/Image/index.js +52 -43
- package/dist/CurriculumCard/Subtitle/helpers.d.ts +1 -0
- package/dist/CurriculumCard/Subtitle/helpers.js +8 -8
- package/dist/CurriculumCard/Subtitle/index.d.ts +7 -10
- package/dist/CurriculumCard/Subtitle/index.js +34 -37
- package/dist/CurriculumCard/index.d.ts +52 -56
- package/dist/CurriculumCard/index.js +124 -114
- package/dist/DropdownButton/DropdownList.d.ts +14 -16
- package/dist/DropdownButton/DropdownList.js +73 -55
- package/dist/DropdownButton/index.d.ts +69 -75
- package/dist/DropdownButton/index.js +169 -137
- package/dist/DropdownButton/useDynamicPopoverPosition.d.ts +14 -0
- package/dist/DropdownButton/useDynamicPopoverPosition.js +49 -34
- package/dist/DropdownButton/useDynamicPopoverPosition.test.js +85 -0
- package/dist/EmptySection/index.d.ts +27 -32
- package/dist/EmptySection/index.js +181 -154
- package/dist/ErrorContents/index.d.ts +7 -11
- package/dist/ErrorContents/index.js +48 -62
- package/dist/FeatureList/index.d.ts +9 -16
- package/dist/FeatureList/index.js +41 -39
- package/dist/GlobalFooter/FooterHeading.d.ts +9 -0
- package/dist/GlobalFooter/FooterHeading.js +29 -25
- package/dist/GlobalFooter/FooterLegal/LegalLinks.d.ts +6 -0
- package/dist/GlobalFooter/FooterLegal/LegalLinks.js +43 -74
- package/dist/GlobalFooter/FooterLegal/MadeIn.d.ts +5 -0
- package/dist/GlobalFooter/FooterLegal/MadeIn.js +63 -75
- package/dist/GlobalFooter/FooterLegal/index.d.ts +7 -0
- package/dist/GlobalFooter/FooterLegal/index.js +22 -26
- package/dist/GlobalFooter/FooterLinks.d.ts +18 -0
- package/dist/GlobalFooter/FooterLinks.js +52 -45
- package/dist/GlobalFooter/FooterNavLinks/CatalogLinks.d.ts +7 -0
- package/dist/GlobalFooter/FooterNavLinks/CatalogLinks.js +292 -288
- package/dist/GlobalFooter/FooterNavLinks/CompanyLinks.d.ts +11 -0
- package/dist/GlobalFooter/FooterNavLinks/CompanyLinks.js +286 -251
- package/dist/GlobalFooter/FooterNavLinks/ReferralRock/ReferAFriendLinkWithModal.d.ts +7 -0
- package/dist/GlobalFooter/FooterNavLinks/ReferralRock/ReferAFriendLinkWithModal.js +271 -242
- package/dist/GlobalFooter/FooterNavLinks/ReferralRock/ReferralFields.d.ts +2 -0
- package/dist/GlobalFooter/FooterNavLinks/ReferralRock/ReferralFields.js +29 -25
- package/dist/GlobalFooter/FooterNavLinks/ReferralRock/ReferralForm.d.ts +4 -0
- package/dist/GlobalFooter/FooterNavLinks/ReferralRock/ReferralForm.js +75 -67
- package/dist/GlobalFooter/FooterNavLinks/ReferralRock/ReferralLinkSocialMediaSharing.d.ts +3 -0
- package/dist/GlobalFooter/FooterNavLinks/ReferralRock/ReferralLinkSocialMediaSharing.js +86 -69
- package/dist/GlobalFooter/FooterNavLinks/ReferralRock/types.d.ts +3 -6
- package/dist/GlobalFooter/FooterNavLinks/ReferralRock/types.js +1 -0
- package/dist/GlobalFooter/FooterNavLinks/SocialMediaLinks.d.ts +2 -0
- package/dist/GlobalFooter/FooterNavLinks/SocialMediaLinks.js +50 -57
- package/dist/GlobalFooter/FooterNavLinks/index.d.ts +4 -0
- package/dist/GlobalFooter/FooterNavLinks/index.js +43 -41
- package/dist/GlobalFooter/FooterSubHeading.d.ts +9 -0
- package/dist/GlobalFooter/FooterSubHeading.js +22 -0
- package/dist/GlobalFooter/index.d.ts +21 -25
- package/dist/GlobalFooter/index.js +37 -35
- package/dist/GlobalFooter/types.d.ts +11 -14
- package/dist/GlobalFooter/types.js +1 -0
- package/dist/GlobalHeader/GlobalHeaderItems.d.ts +28 -0
- package/dist/GlobalHeader/GlobalHeaderItems.js +378 -376
- package/dist/GlobalHeader/GlobalHeaderVariants.d.ts +83 -0
- package/dist/GlobalHeader/GlobalHeaderVariants.js +325 -304
- package/dist/GlobalHeader/context.d.ts +34 -0
- package/dist/GlobalHeader/context.js +72 -69
- package/dist/GlobalHeader/index.d.ts +7 -10
- package/dist/GlobalHeader/index.js +180 -165
- package/dist/GlobalHeader/types.d.ts +99 -104
- package/dist/GlobalHeader/types.js +1 -0
- package/dist/GlobalHeader/urlHelpers.d.ts +2 -0
- package/dist/GlobalHeader/urlHelpers.js +20 -19
- package/dist/GlobalPage/index.d.ts +43 -46
- package/dist/GlobalPage/index.js +59 -42
- package/dist/Grid/GridCollapse.d.ts +39 -47
- package/dist/Grid/GridCollapse.js +194 -152
- package/dist/Grid/GridCollapse.test.js +96 -0
- package/dist/Grid/Subgrid.d.ts +5 -11
- package/dist/Grid/Subgrid.js +35 -37
- package/dist/Grid/getCSSFromColumnCount.d.ts +6 -10
- package/dist/Grid/getCSSFromColumnCount.js +7 -9
- package/dist/Grid/index.d.ts +3 -4
- package/dist/Grid/index.js +3 -5
- package/dist/HeaderHeightArea/index.d.ts +8 -12
- package/dist/HeaderHeightArea/index.js +40 -35
- package/dist/HeaderHeightArea/useIsInHeaderRegion.d.ts +1 -0
- package/dist/HeaderHeightArea/useIsInHeaderRegion.js +14 -15
- package/dist/HorizontalScrollMenu/index.d.ts +6 -10
- package/dist/HorizontalScrollMenu/index.js +75 -65
- package/dist/HubCard/index.d.ts +7 -11
- package/dist/HubCard/index.js +38 -38
- package/dist/InfoCard/index.d.ts +18 -22
- package/dist/InfoCard/index.js +147 -109
- package/dist/InstructorCard/__tests__/__fixtures__/index.d.ts +2 -0
- package/dist/InstructorCard/index.d.ts +18 -0
- package/dist/InstructorCard/index.js +175 -0
- package/dist/Konamimojisplosion/Konamimojisplosion.d.ts +4 -8
- package/dist/Konamimojisplosion/Konamimojisplosion.js +7 -10
- package/dist/Konamimojisplosion/index.d.ts +2 -3
- package/dist/Konamimojisplosion/index.js +2 -4
- package/dist/Konamimojisplosion/useKonamimojisplosion.d.ts +1 -4
- package/dist/Konamimojisplosion/useKonamimojisplosion.js +32 -44
- package/dist/LandingPage/Description.d.ts +5 -9
- package/dist/LandingPage/Description.js +14 -16
- package/dist/LandingPage/PageFAQs.d.ts +10 -11
- package/dist/LandingPage/PageFAQs.js +44 -46
- package/dist/LandingPage/Title.d.ts +19 -23
- package/dist/LandingPage/Title.js +27 -29
- package/dist/LandingPage/TitleWithEyebrow.d.ts +10 -14
- package/dist/LandingPage/TitleWithEyebrow.js +40 -37
- package/dist/LandingPage/index.d.ts +6 -15
- package/dist/LandingPage/index.js +6 -15
- package/dist/LandingPage/types.d.ts +30 -29
- package/dist/LandingPage/types.js +1 -0
- package/dist/LayoutMenu/AccordionMenu.d.ts +24 -16
- package/dist/LayoutMenu/AccordionMenu.js +70 -59
- package/dist/LayoutMenu/LayoutMenu.d.ts +43 -47
- package/dist/LayoutMenu/LayoutMenu.js +119 -105
- package/dist/LayoutMenu/LayoutMenuSection.d.ts +16 -0
- package/dist/LayoutMenu/LayoutMenuSection.js +39 -36
- package/dist/LayoutMenu/SectionItemLink.d.ts +6 -10
- package/dist/LayoutMenu/SectionItemLink.js +16 -17
- package/dist/LayoutMenu/SelectedSectionItem.d.ts +3 -7
- package/dist/LayoutMenu/SelectedSectionItem.js +17 -20
- package/dist/LayoutMenu/index.d.ts +3 -4
- package/dist/LayoutMenu/index.js +3 -5
- package/dist/LayoutMenuVariant/AccordionMenu.d.ts +19 -17
- package/dist/LayoutMenuVariant/AccordionMenu.js +86 -72
- package/dist/LayoutMenuVariant/LayoutMenu.d.ts +38 -42
- package/dist/LayoutMenuVariant/LayoutMenu.js +93 -85
- package/dist/LayoutMenuVariant/LayoutMenuSection.d.ts +10 -0
- package/dist/LayoutMenuVariant/LayoutMenuSection.js +41 -33
- package/dist/LayoutMenuVariant/SectionItemLink.d.ts +7 -11
- package/dist/LayoutMenuVariant/SectionItemLink.js +17 -17
- package/dist/LayoutMenuVariant/index.d.ts +2 -9
- package/dist/LayoutMenuVariant/index.js +2 -12
- package/dist/LearningOutcomeAssessmentScores/AssessmentDetail.d.ts +8 -0
- package/dist/LearningOutcomeAssessmentScores/AssessmentDetail.js +55 -50
- package/dist/LearningOutcomeAssessmentScores/index.d.ts +6 -8
- package/dist/LearningOutcomeAssessmentScores/index.js +24 -24
- package/dist/LearningOutcomeBadges/LearningOutcomeLevelBadge.d.ts +14 -17
- package/dist/LearningOutcomeBadges/LearningOutcomeLevelBadge.js +55 -44
- package/dist/LearningOutcomeBadges/LearningOutcomeLowAssessmentBadge.d.ts +8 -16
- package/dist/LearningOutcomeBadges/LearningOutcomeLowAssessmentBadge.js +34 -34
- package/dist/LearningOutcomeBadges/index.d.ts +2 -3
- package/dist/LearningOutcomeBadges/index.js +2 -4
- package/dist/LearningOutcomeCard/index.d.ts +23 -27
- package/dist/LearningOutcomeCard/index.js +197 -159
- package/dist/LearningOutcomeFlyout/LearningOutcomeCardList.d.ts +7 -0
- package/dist/LearningOutcomeFlyout/LearningOutcomeCardList.js +42 -40
- package/dist/LearningOutcomeFlyout/index.d.ts +7 -12
- package/dist/LearningOutcomeFlyout/index.js +349 -306
- package/dist/LearningOutcomeFlyout/types.d.ts +54 -58
- package/dist/LearningOutcomeFlyout/types.js +5 -9
- package/dist/LearningOutcomePopover/index.d.ts +8 -11
- package/dist/LearningOutcomePopover/index.js +121 -112
- package/dist/LearningOutcomeTile/Tile.d.ts +7 -0
- package/dist/LearningOutcomeTile/Tile.js +75 -62
- package/dist/LearningOutcomeTile/index.d.ts +3 -7
- package/dist/LearningOutcomeTile/index.js +114 -92
- package/dist/LearningOutcomeTile/types.d.ts +36 -35
- package/dist/LearningOutcomeTile/types.js +9 -8
- package/dist/ListSection/index.d.ts +20 -25
- package/dist/ListSection/index.js +64 -53
- package/dist/Loading/index.d.ts +4 -8
- package/dist/Loading/index.js +81 -87
- package/dist/LoadingCurriculumCard/index.d.ts +5 -8
- package/dist/LoadingCurriculumCard/index.js +82 -83
- package/dist/Logos/LogoCodecademy/index.d.ts +2 -6
- package/dist/Logos/LogoCodecademy/index.js +22 -22
- package/dist/Logos/LogoCodecademyMini/index.d.ts +2 -6
- package/dist/Logos/LogoCodecademyMini/index.js +18 -18
- package/dist/Logos/LogoCodecademyPro/index.d.ts +2 -6
- package/dist/Logos/LogoCodecademyPro/index.js +25 -25
- package/dist/Logos/LogoCodecademyTeams/index.d.ts +2 -6
- package/dist/Logos/LogoCodecademyTeams/index.js +46 -52
- package/dist/Logos/LogoFromSkillsoft/index.d.ts +3 -7
- package/dist/Logos/LogoFromSkillsoft/index.js +48 -47
- package/dist/Logos/LogoLXStudio/index.d.ts +3 -7
- package/dist/Logos/LogoLXStudio/index.js +40 -36
- package/dist/Logos/ProLabel/ProLabelCutout/index.d.ts +8 -0
- package/dist/Logos/ProLabel/ProLabelCutout/index.js +31 -36
- package/dist/Logos/ProLabel/ProLabelCutoutTransparent/index.d.ts +7 -0
- package/dist/Logos/ProLabel/ProLabelCutoutTransparent/index.js +31 -37
- package/dist/Logos/ProLabel/index.d.ts +11 -14
- package/dist/Logos/ProLabel/index.js +27 -25
- package/dist/Logos/index.d.ts +7 -8
- package/dist/Logos/index.js +7 -9
- package/dist/Logos/shared.d.ts +989 -235
- package/dist/Logos/shared.js +14 -10
- package/dist/MarketingToaster/index.d.ts +6 -9
- package/dist/MarketingToaster/index.js +66 -46
- package/dist/NotFoundContent/index.d.ts +6 -9
- package/dist/NotFoundContent/index.js +55 -46
- package/dist/NotificationList/EmptyNotification/emptyNotificationContents.d.ts +7 -0
- package/dist/NotificationList/EmptyNotification/emptyNotificationContents.js +23 -33
- package/dist/NotificationList/EmptyNotification/index.d.ts +1 -0
- package/dist/NotificationList/EmptyNotification/index.js +38 -42
- package/dist/NotificationList/NotificationItem.d.ts +7 -11
- package/dist/NotificationList/NotificationItem.js +149 -157
- package/dist/NotificationList/index.d.ts +8 -12
- package/dist/NotificationList/index.js +46 -41
- package/dist/NotificationList/typings.d.ts +14 -17
- package/dist/NotificationList/typings.js +1 -0
- package/dist/Notifications/NotificationBell.d.ts +10 -0
- package/dist/Notifications/NotificationBell.js +72 -60
- package/dist/Notifications/NotificationsContents.d.ts +3 -0
- package/dist/Notifications/NotificationsContents.js +85 -78
- package/dist/Notifications/NotificationsDropdown.d.ts +2 -0
- package/dist/Notifications/NotificationsDropdown.js +25 -23
- package/dist/Notifications/__fixtures__/NotificationTestComponent.d.ts +2 -0
- package/dist/Notifications/__fixtures__/NotificationTestComponent.js +12 -0
- package/dist/Notifications/__fixtures__/stubs.d.ts +2 -0
- package/dist/Notifications/__fixtures__/stubs.js +8 -0
- package/dist/Notifications/constants.d.ts +4 -0
- package/dist/Notifications/constants.js +3 -7
- package/dist/Notifications/elements.d.ts +12 -0
- package/dist/Notifications/elements.js +20 -19
- package/dist/Notifications/types.d.ts +22 -16
- package/dist/Notifications/types.js +1 -0
- package/dist/Notifications/useHeaderNotifications.d.ts +10 -0
- package/dist/Notifications/useHeaderNotifications.js +37 -37
- package/dist/Notifications/useNotificationButtons.d.ts +9 -0
- package/dist/Notifications/useNotificationButtons.js +56 -52
- package/dist/PageAlerts/PageAlerts.d.ts +9 -15
- package/dist/PageAlerts/PageAlerts.js +74 -64
- package/dist/PageAlerts/PageAlertsProvider.d.ts +10 -14
- package/dist/PageAlerts/PageAlertsProvider.js +33 -36
- package/dist/PageAlerts/index.d.ts +3 -4
- package/dist/PageAlerts/index.js +3 -4
- package/dist/PageAlerts/types.d.ts +14 -15
- package/dist/PageAlerts/types.js +1 -0
- package/dist/PageLayoutWithSidebarMenu/PageLayoutWithSidebarMenu.d.ts +17 -20
- package/dist/PageLayoutWithSidebarMenu/PageLayoutWithSidebarMenu.js +53 -48
- package/dist/PageLayoutWithSidebarMenu/index.d.ts +1 -2
- package/dist/PageLayoutWithSidebarMenu/index.js +1 -3
- package/dist/PageSection/index.d.ts +14 -17
- package/dist/PageSection/index.js +65 -61
- package/dist/PastDue/PastDueModalContents/index.d.ts +7 -11
- package/dist/PastDue/PastDueModalContents/index.js +30 -26
- package/dist/PastDue/index.d.ts +2 -3
- package/dist/PastDue/index.js +2 -4
- package/dist/PastDue/pastDueMessages.d.ts +4 -6
- package/dist/PastDue/pastDueMessages.js +48 -53
- package/dist/PausableImage/BaseImage/index.d.ts +15 -0
- package/dist/PausableImage/BaseImage/index.js +53 -69
- package/dist/PausableImage/index.d.ts +9 -14
- package/dist/PausableImage/index.js +35 -26
- package/dist/PlanCard/PlanCardBanner.d.ts +5 -8
- package/dist/PlanCard/PlanCardBanner.js +28 -27
- package/dist/PlanCard/PlanFeature.d.ts +10 -0
- package/dist/PlanCard/PlanFeature.js +105 -88
- package/dist/PlanCard/PopularBadge.d.ts +3 -0
- package/dist/PlanCard/PopularBadge.js +13 -18
- package/dist/PlanCard/PricingAmount.d.ts +14 -0
- package/dist/PlanCard/PricingAmount.js +116 -118
- package/dist/PlanCard/RecommendedBadge.d.ts +3 -0
- package/dist/PlanCard/RecommendedBadge.js +24 -29
- package/dist/PlanCard/consts.d.ts +15 -0
- package/dist/PlanCard/consts.js +167 -219
- package/dist/PlanCard/index.d.ts +17 -21
- package/dist/PlanCard/index.js +373 -336
- package/dist/PlanCard/types.d.ts +38 -41
- package/dist/PlanCard/types.js +69 -66
- package/dist/PlanCardTeams/consts.d.ts +9 -0
- package/dist/PlanCardTeams/consts.js +8 -21
- package/dist/PlanCardTeams/index.d.ts +7 -11
- package/dist/PlanCardTeams/index.js +165 -135
- package/dist/PricingSection/ConditionalColorMode.d.ts +4 -0
- package/dist/PricingSection/ConditionalColorMode.js +13 -13
- package/dist/PricingSection/PricingCard/PricingAmount.d.ts +14 -0
- package/dist/PricingSection/PricingCard/PricingAmount.js +114 -118
- package/dist/PricingSection/PricingCard/RecommendedBadge.d.ts +3 -0
- package/dist/PricingSection/PricingCard/RecommendedBadge.js +24 -29
- package/dist/PricingSection/PricingCard/consts.d.ts +14 -0
- package/dist/PricingSection/PricingCard/consts.js +96 -0
- package/dist/PricingSection/PricingCard/index.d.ts +16 -0
- package/dist/PricingSection/PricingCard/index.js +198 -170
- package/dist/PricingSection/PricingCard/types.d.ts +38 -24
- package/dist/PricingSection/PricingCard/types.js +58 -61
- package/dist/PricingSection/ProductCTA.d.ts +12 -0
- package/dist/PricingSection/ProductCTA.js +133 -103
- package/dist/PricingSection/Products.d.ts +15 -0
- package/dist/PricingSection/Products.js +92 -85
- package/dist/PricingSection/config.d.ts +8 -0
- package/dist/PricingSection/config.js +36 -29
- package/dist/PricingSection/index.d.ts +14 -20
- package/dist/PricingSection/index.js +41 -35
- package/dist/PricingSection/types.d.ts +29 -16
- package/dist/PricingSection/types.js +9 -13
- package/dist/ProLogoAlt/index.d.ts +8 -12
- package/dist/ProLogoAlt/index.js +26 -26
- package/dist/ProductFeatureShowcase/index.d.ts +15 -18
- package/dist/ProductFeatureShowcase/index.js +119 -105
- package/dist/QuizScore/index.d.ts +10 -13
- package/dist/QuizScore/index.js +84 -91
- package/dist/RatingsBar/index.d.ts +11 -15
- package/dist/RatingsBar/index.js +34 -41
- package/dist/Recurly/context/NoProvider.d.ts +8 -0
- package/dist/Recurly/context/NoProvider.js +6 -10
- package/dist/Recurly/context/elements/index.d.ts +21 -10
- package/dist/Recurly/context/elements/index.js +42 -39
- package/dist/Recurly/context/index.d.ts +2 -2
- package/dist/Recurly/context/index.js +2 -0
- package/dist/Recurly/context/recurly/index.d.ts +7 -15
- package/dist/Recurly/context/recurly/index.js +47 -44
- package/dist/Recurly/context/recurly/loadRecurly.d.ts +5 -8
- package/dist/Recurly/context/recurly/loadRecurly.js +22 -21
- package/dist/Recurly/context/recurly/w.d.ts +14 -0
- package/dist/Recurly/context/recurly/w.js +3 -4
- package/dist/Recurly/fields/RecurlyField.d.ts +4 -13
- package/dist/Recurly/fields/RecurlyField.js +55 -65
- package/dist/Recurly/fields/elements.d.ts +15 -20
- package/dist/Recurly/fields/elements.js +95 -48
- package/dist/Recurly/fields/elements.test.js +79 -0
- package/dist/Recurly/fields/index.d.ts +2 -2
- package/dist/Recurly/fields/index.js +2 -0
- package/dist/Recurly/index.d.ts +2 -7
- package/dist/Recurly/index.js +2 -6
- package/dist/ResourceCard/index.d.ts +13 -17
- package/dist/ResourceCard/index.js +58 -56
- package/dist/ScoreSummary/SubScores.d.ts +26 -38
- package/dist/ScoreSummary/SubScores.js +163 -132
- package/dist/ScoreSummary/helpers.d.ts +11 -0
- package/dist/ScoreSummary/helpers.js +19 -17
- package/dist/ScoreSummary/index.d.ts +20 -24
- package/dist/ScoreSummary/index.js +108 -96
- package/dist/ScoreSummary/types.d.ts +305 -308
- package/dist/ScoreSummary/types.js +1 -0
- package/dist/SkillPathCard/__tests__/__fixtures__/index.d.ts +2 -0
- package/dist/SkillPathCard/index.d.ts +19 -24
- package/dist/SkillPathCard/index.js +46 -33
- package/dist/SocialMediaSharing/SocialShareIconLink.d.ts +12 -9
- package/dist/SocialMediaSharing/SocialShareIconLink.js +48 -39
- package/dist/SocialMediaSharing/index.d.ts +44 -59
- package/dist/SocialMediaSharing/index.js +114 -80
- package/dist/SocialMediaSharingDropdown/__tests__/SocialMediaSharingDropdown-test.d.ts +1 -0
- package/dist/SocialMediaSharingDropdown/index.d.ts +14 -18
- package/dist/SocialMediaSharingDropdown/index.js +110 -95
- package/dist/Testimonial/index.d.ts +42 -50
- package/dist/Testimonial/index.js +153 -128
- package/dist/assets/darkQuotes.svg +1 -0
- package/dist/assets/lightQuotes.svg +1 -0
- package/dist/assets/orange_squiggle.svg +1 -0
- package/dist/index.d.ts +89 -132
- package/dist/index.js +86 -116
- package/dist/lib/breakpointHooks/index.d.ts +7 -10
- package/dist/lib/breakpointHooks/index.js +53 -51
- package/dist/lib/catalogList/index.d.ts +3 -0
- package/dist/lib/catalogList/index.js +61 -52
- package/dist/lib/resourcesList/index.d.ts +5 -0
- package/dist/lib/resourcesList/index.js +236 -65
- package/dist/png.d.ts +4 -0
- package/dist/react-freezeframe.d.ts +1 -0
- package/dist/remoteAssets/components.d.ts +1 -0
- package/dist/remoteAssets/components.js +1 -5
- package/dist/stories/Atoms/Avatar.stories.js +16 -0
- package/dist/stories/Atoms/BetaSticker.stories.js +21 -0
- package/dist/stories/Atoms/Logos/LogoCodecademy.stories.js +8 -0
- package/dist/stories/Atoms/Logos/LogoCodecademyMini.stories.js +8 -0
- package/dist/stories/Atoms/Logos/LogoCodecademyPro.stories.js +8 -0
- package/dist/stories/Atoms/Logos/LogoCodecademyTeams.stories.js +8 -0
- package/dist/stories/Atoms/Logos/LogoFromSkillsoft.stories.js +9 -0
- package/dist/stories/Atoms/Logos/LogoLXStudio.stories.js +11 -0
- package/dist/stories/Atoms/Logos/ProLabel.stories.js +29 -0
- package/dist/stories/Atoms/RatingsBar.stories.js +16 -0
- package/dist/stories/Atoms/Subgrid.stories.js +87 -0
- package/dist/stories/Molecules/AppBar.stories.js +31 -0
- package/dist/stories/Molecules/AppHeader/AppHeader.stories.js +84 -0
- package/dist/stories/Molecules/AppHeader/AppHeaderDropdown.stories.js +67 -0
- package/dist/stories/Molecules/AppHeader/AppHeaderLink.stories.js +50 -0
- package/dist/stories/Molecules/AppHeader/AppHeaderLogo.stories.js +43 -0
- package/dist/stories/Molecules/AppHeader/AppHeaderMainMenuMobile.stories.js +34 -0
- package/dist/stories/Molecules/AppHeader/AppHeaderMobile.stories.js +40 -0
- package/dist/stories/Molecules/AppHeader/AppHeaderSubMenuMobile.stories.js +25 -0
- package/dist/stories/Molecules/AppHeader/LXStudioHeader.stories.js +176 -0
- package/dist/stories/Molecules/AppHeader/LXStudioMobileHeader.stories.js +84 -0
- package/dist/stories/Molecules/AppHeader/MockAppHeaderElements.d.ts +5 -0
- package/dist/stories/Molecules/AppHeader/MockAppHeaderElements.js +90 -0
- package/dist/stories/Molecules/AvatarChooser.stories.js +22 -0
- package/dist/stories/Molecules/BackToTopAnchor.stories.js +51 -0
- package/dist/stories/Molecules/Banner.stories.js +112 -0
- package/dist/stories/Molecules/Carousel.stories.js +47 -0
- package/dist/stories/Molecules/ContentGroupBaseCard.stories.js +175 -0
- package/dist/stories/Molecules/CurriculumCard.stories.js +201 -0
- package/dist/stories/Molecules/CurriculumCards/CareerPathCard.stories.js +94 -0
- package/dist/stories/Molecules/CurriculumCards/CertificationPathCard.stories.js +67 -0
- package/dist/stories/Molecules/CurriculumCards/CourseCard.stories.js +85 -0
- package/dist/stories/Molecules/CurriculumCards/LoadingCurriculumCard.stories.js +20 -0
- package/dist/stories/Molecules/CurriculumCards/SkillPathCard.stories.js +92 -0
- package/dist/stories/Molecules/DropdownButton.stories.js +207 -0
- package/dist/stories/Molecules/EmptySection.stories.js +167 -0
- package/dist/stories/Molecules/EnhancedBanner.stories.js +104 -0
- package/dist/stories/Molecules/ErrorContents.stories.js +19 -0
- package/dist/stories/Molecules/GridCollapse.stories.js +42 -0
- package/dist/stories/Molecules/HorizontalScrollMenu.examples.d.ts +1 -0
- package/dist/stories/Molecules/HorizontalScrollMenu.examples.js +67 -0
- package/dist/stories/Molecules/HorizontalScrollMenu.stories.js +11 -0
- package/dist/stories/Molecules/HubCard.stories.js +27 -0
- package/dist/stories/Molecules/InfoCard.stories.js +30 -0
- package/dist/stories/Molecules/InstructorCard.stories.js +125 -0
- package/dist/stories/Molecules/LearningOutcomeAssessmentScores.stories.js +23 -0
- package/dist/stories/Molecules/LearningOutcomeCard.stories.js +189 -0
- package/dist/stories/Molecules/LearningOutcomeFlyout.stories.js +62 -0
- package/dist/stories/Molecules/LearningOutcomeLevelBadge.stories.js +20 -0
- package/dist/stories/Molecules/LearningOutcomeLowAssessmentBadge.stories.js +10 -0
- package/dist/stories/Molecules/LearningOutcomePopover.stories.js +39 -0
- package/dist/stories/Molecules/LearningOutcomeTile.stories.js +276 -0
- package/dist/stories/Molecules/ListSection.stories.js +97 -0
- package/dist/stories/Molecules/Loading.stories.js +10 -0
- package/dist/stories/Molecules/NotificationList.stories.js +99 -0
- package/dist/stories/Molecules/PageSection.stories.js +67 -0
- package/dist/stories/Molecules/PastDueModalContents.stories.js +62 -0
- package/dist/stories/Molecules/PausableImage.stories.js +16 -0
- package/dist/stories/Molecules/Recurly.stories.js +56 -0
- package/dist/stories/Molecules/ResourceCard.stories.js +18 -0
- package/dist/stories/Molecules/SocialMediaSharing.stories.js +20 -0
- package/dist/stories/Molecules/SocialMediaSharingDropdown.stories.js +20 -0
- package/dist/stories/Molecules/Testimonial.stories.js +59 -0
- package/dist/stories/Organisms/GlobalFooter.stories.js +28 -0
- package/dist/stories/Organisms/GlobalHeader/About.stories.js +133 -0
- package/dist/stories/Organisms/GlobalHeader/Anon.stories.js +71 -0
- package/dist/stories/Organisms/GlobalHeader/Bootcamp.stories.js +29 -0
- package/dist/stories/Organisms/GlobalHeader/Enterprise.stories.js +105 -0
- package/dist/stories/Organisms/GlobalHeader/Free.stories.js +131 -0
- package/dist/stories/Organisms/GlobalHeader/Pro.stories.js +197 -0
- package/dist/stories/Organisms/GlobalHeader/Simple.stories.js +28 -0
- package/dist/stories/Organisms/GlobalPage.stories.js +138 -0
- package/dist/stories/Organisms/LayoutMenu.stories.js +239 -0
- package/dist/stories/Organisms/LayoutMenuVariant.stories.js +222 -0
- package/dist/stories/Organisms/PageAlerts.example.d.ts +2 -0
- package/dist/stories/Organisms/PageAlerts.example.js +42 -0
- package/dist/stories/Organisms/PageAlerts.stories.js +15 -0
- package/dist/stories/Organisms/PageLayoutWithSidebarMenu.stories.js +34 -0
- package/dist/stories/Organisms/PlanCard.stories.js +98 -0
- package/dist/stories/Organisms/PlanCardTeams.stories.js +27 -0
- package/dist/stories/Organisms/ScoreSummary.stories.js +295 -0
- package/dist/svg.d.ts +7 -0
- package/dist/theme.d.ts +5 -0
- package/package.json +5 -359
- package/dist/AbbreviatedCommunityEventCard/index.cjs +0 -89
- package/dist/AbbreviatedCommunityEventCard/index.d.cts +0 -11
- package/dist/AppBar/AppBarSection.cjs +0 -40
- package/dist/AppBar/AppBarSection.d.cts +0 -15
- package/dist/AppBar/index.cjs +0 -22
- package/dist/AppBar/index.d.cts +0 -13
- package/dist/AppBarDeprecated/AppBarSectionDeprecated.cjs +0 -26
- package/dist/AppBarDeprecated/AppBarSectionDeprecated.d.cts +0 -18
- package/dist/AppBarDeprecated/index.cjs +0 -27
- package/dist/AppBarDeprecated/index.d.cts +0 -18
- package/dist/AppBarDeprecated/styles/index.module.cjs +0 -5
- package/dist/AppBarDeprecated/styles/index.module.js +0 -5
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/MarketingBanner.cjs +0 -134
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/NavPanels.cjs +0 -300
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/consts.cjs +0 -274
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/index.cjs +0 -110
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/index.d.cts +0 -8
- package/dist/AppHeader/AppHeaderElements/AppHeaderDietCard/index.cjs +0 -114
- package/dist/AppHeader/AppHeaderElements/AppHeaderDropdown/index.cjs +0 -97
- package/dist/AppHeader/AppHeaderElements/AppHeaderDropdown/index.d.cts +0 -16
- package/dist/AppHeader/AppHeaderElements/AppHeaderDropdownProvider/index.cjs +0 -36
- package/dist/AppHeader/AppHeaderElements/AppHeaderFeatureCard/index.cjs +0 -61
- package/dist/AppHeader/AppHeaderElements/AppHeaderLink/index.cjs +0 -59
- package/dist/AppHeader/AppHeaderElements/AppHeaderLink/index.d.cts +0 -56
- package/dist/AppHeader/AppHeaderElements/AppHeaderLinkSections/elements.cjs +0 -34
- package/dist/AppHeader/AppHeaderElements/AppHeaderLinkSections/index.cjs +0 -44
- package/dist/AppHeader/AppHeaderElements/AppHeaderListItem/index.cjs +0 -26
- package/dist/AppHeader/AppHeaderElements/AppHeaderLogo/index.cjs +0 -53
- package/dist/AppHeader/AppHeaderElements/AppHeaderLogo/index.d.cts +0 -10
- package/dist/AppHeader/AppHeaderElements/AppHeaderMenuProvider/index.cjs +0 -85
- package/dist/AppHeader/AppHeaderElements/AppHeaderNavButton/index.cjs +0 -80
- package/dist/AppHeader/AppHeaderElements/AppHeaderProvider/index.cjs +0 -25
- package/dist/AppHeader/AppHeaderElements/AppHeaderResourcesDropdown/NavPanels.cjs +0 -118
- package/dist/AppHeader/AppHeaderElements/AppHeaderResourcesDropdown/consts.cjs +0 -341
- package/dist/AppHeader/AppHeaderElements/AppHeaderResourcesDropdown/index.cjs +0 -105
- package/dist/AppHeader/AppHeaderElements/AppHeaderResourcesDropdown/index.d.cts +0 -8
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/AppHeaderSectionContext.cjs +0 -18
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/MobileBackButton.cjs +0 -85
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/MobileNavMenu.cjs +0 -51
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/NavTabs.cjs +0 -105
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/PanelLayout.cjs +0 -84
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/elements.cjs +0 -179
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/index.cjs +0 -119
- package/dist/AppHeader/AppHeaderElements/AppHeaderSkillTile/index.cjs +0 -55
- package/dist/AppHeader/Search/DefaultResults.cjs +0 -105
- package/dist/AppHeader/Search/QuizAndHelpCenterLinks.cjs +0 -70
- package/dist/AppHeader/Search/SearchButton.cjs +0 -50
- package/dist/AppHeader/Search/SearchPane.cjs +0 -482
- package/dist/AppHeader/Search/SearchTrackingProvider/index.cjs +0 -32
- package/dist/AppHeader/Search/SearchWorker/PromiseLookup.cjs +0 -43
- package/dist/AppHeader/Search/SearchWorker/index.cjs +0 -24
- package/dist/AppHeader/Search/SearchWorker/index.d.cts +0 -10
- package/dist/AppHeader/Search/SearchWorker/src.cjs +0 -159
- package/dist/AppHeader/Search/SearchWorker/types.cjs +0 -10
- package/dist/AppHeader/Search/SearchWorker/types.d.cts +0 -30
- package/dist/AppHeader/Search/SearchWorker/worker.cjs +0 -26
- package/dist/AppHeader/Search/consts.cjs +0 -68
- package/dist/AppHeader/Search/consts.d.cts +0 -26
- package/dist/AppHeader/Search/hooks/useUrlChangeDetection.cjs +0 -17
- package/dist/AppHeader/Search/safelyRedirect.cjs +0 -39
- package/dist/AppHeader/Search/types.d.cts +0 -14
- package/dist/AppHeader/Search/useHeaderSearch.cjs +0 -39
- package/dist/AppHeader/index.cjs +0 -97
- package/dist/AppHeader/index.d.cts +0 -28
- package/dist/AppHeader/shared/elements.cjs +0 -172
- package/dist/AppHeader/shared/keyboardNav.cjs +0 -67
- package/dist/AppHeader/shared/types.cjs +0 -6
- package/dist/AppHeader/shared/types.d.cts +0 -111
- package/dist/AppHeader/shared/utils.cjs +0 -85
- package/dist/AppHeaderMobile/AppHeaderMainMenuMobile/index.cjs +0 -126
- package/dist/AppHeaderMobile/AppHeaderMainMenuMobile/index.d.cts +0 -12
- package/dist/AppHeaderMobile/AppHeaderSubMenuMobile/elements.cjs +0 -29
- package/dist/AppHeaderMobile/AppHeaderSubMenuMobile/index.cjs +0 -110
- package/dist/AppHeaderMobile/AppHeaderSubMenuMobile/index.d.cts +0 -12
- package/dist/AppHeaderMobile/AppHeaderSubMenuTarget/index.cjs +0 -61
- package/dist/AppHeaderMobile/index.cjs +0 -194
- package/dist/AppHeaderMobile/index.d.cts +0 -24
- package/dist/Avatar/index.cjs +0 -52
- package/dist/Avatar/index.d.cts +0 -40
- package/dist/AvatarChooser/index.cjs +0 -99
- package/dist/AvatarChooser/index.d.cts +0 -15
- package/dist/BackToTopAnchor/index.cjs +0 -33
- package/dist/BackToTopAnchor/index.d.cts +0 -15
- package/dist/Banner/CountdownTimer.cjs +0 -111
- package/dist/Banner/CountdownTimer.d.cts +0 -10
- package/dist/Banner/EnhancedBanner.cjs +0 -142
- package/dist/Banner/EnhancedBanner.d.cts +0 -20
- package/dist/Banner/index.cjs +0 -83
- package/dist/Banner/index.d.cts +0 -24
- package/dist/BetaSticker/index.cjs +0 -63
- package/dist/BetaSticker/index.d.cts +0 -9
- package/dist/CareerPathCard/index.cjs +0 -34
- package/dist/CareerPathCard/index.d.cts +0 -26
- package/dist/Carousel/elements.cjs +0 -12
- package/dist/Carousel/index.cjs +0 -194
- package/dist/Carousel/index.d.cts +0 -27
- package/dist/CertificationPathCard/index.cjs +0 -41
- package/dist/CertificationPathCard/index.d.cts +0 -27
- package/dist/CoachingSessionCard/index.cjs +0 -87
- package/dist/CoachingSessionCard/index.d.cts +0 -24
- package/dist/CommunityEventCard/EventTypeIcon.cjs +0 -61
- package/dist/CommunityEventCard/index.cjs +0 -260
- package/dist/CommunityEventCard/index.d.cts +0 -31
- package/dist/CommunityEventToast/index.cjs +0 -35
- package/dist/CommunityEventToast/index.d.cts +0 -9
- package/dist/ContentGroupBaseCard/helpers.cjs +0 -15
- package/dist/ContentGroupBaseCard/helpers.d.cts +0 -8
- package/dist/ContentGroupBaseCard/index.cjs +0 -215
- package/dist/ContentGroupBaseCard/index.d.cts +0 -40
- package/dist/ContentGroupBaseCard/shared.cjs +0 -80
- package/dist/ContentGroupBaseCard/types.cjs +0 -18
- package/dist/ContentGroupBaseCard/types.d.cts +0 -13
- package/dist/CourseCard/index.cjs +0 -32
- package/dist/CourseCard/index.d.cts +0 -25
- package/dist/CurriculumCard/BottomTag/index.cjs +0 -30
- package/dist/CurriculumCard/BottomTag/index.d.cts +0 -4
- package/dist/CurriculumCard/Difficulty/helpers.cjs +0 -17
- package/dist/CurriculumCard/Difficulty/helpers.d.cts +0 -13
- package/dist/CurriculumCard/Difficulty/index.cjs +0 -45
- package/dist/CurriculumCard/Difficulty/index.d.cts +0 -7
- package/dist/CurriculumCard/Difficulty/types.cjs +0 -21
- package/dist/CurriculumCard/Difficulty/types.d.cts +0 -25
- package/dist/CurriculumCard/Footer/index.cjs +0 -49
- package/dist/CurriculumCard/Image/index.cjs +0 -50
- package/dist/CurriculumCard/Subtitle/helpers.cjs +0 -9
- package/dist/CurriculumCard/Subtitle/index.cjs +0 -40
- package/dist/CurriculumCard/Subtitle/index.d.cts +0 -10
- package/dist/CurriculumCard/index.cjs +0 -122
- package/dist/CurriculumCard/index.d.cts +0 -63
- package/dist/DropdownButton/DropdownList.cjs +0 -57
- package/dist/DropdownButton/DropdownList.d.cts +0 -19
- package/dist/DropdownButton/index.cjs +0 -140
- package/dist/DropdownButton/index.d.cts +0 -80
- package/dist/DropdownButton/useDynamicPopoverPosition.cjs +0 -41
- package/dist/EditorialImage/index.cjs +0 -21
- package/dist/EditorialImage/index.d.cts +0 -14
- package/dist/EditorialImage/index.d.ts +0 -14
- package/dist/EditorialImage/index.js +0 -19
- package/dist/EditorialImage/styles.module.cjs +0 -5
- package/dist/EditorialImage/styles.module.js +0 -5
- package/dist/EmptySection/index.cjs +0 -159
- package/dist/EmptySection/index.d.cts +0 -32
- package/dist/ErrorContents/index.cjs +0 -64
- package/dist/ErrorContents/index.d.cts +0 -12
- package/dist/FeatureList/index.cjs +0 -41
- package/dist/FeatureList/index.d.cts +0 -18
- package/dist/GlobalFooter/FooterHeading.cjs +0 -28
- package/dist/GlobalFooter/FooterLegal/LegalLinks.cjs +0 -77
- package/dist/GlobalFooter/FooterLegal/MadeIn.cjs +0 -79
- package/dist/GlobalFooter/FooterLegal/index.cjs +0 -29
- package/dist/GlobalFooter/FooterLinks.cjs +0 -51
- package/dist/GlobalFooter/FooterNavLinks/CatalogLinks.cjs +0 -297
- package/dist/GlobalFooter/FooterNavLinks/CompanyLinks.cjs +0 -254
- package/dist/GlobalFooter/FooterNavLinks/ReferralRock/ReferAFriendLinkWithModal.cjs +0 -246
- package/dist/GlobalFooter/FooterNavLinks/ReferralRock/ReferralFields.cjs +0 -27
- package/dist/GlobalFooter/FooterNavLinks/ReferralRock/ReferralForm.cjs +0 -72
- package/dist/GlobalFooter/FooterNavLinks/ReferralRock/ReferralLinkSocialMediaSharing.cjs +0 -70
- package/dist/GlobalFooter/FooterNavLinks/ReferralRock/types.d.cts +0 -7
- package/dist/GlobalFooter/FooterNavLinks/SocialMediaLinks.cjs +0 -59
- package/dist/GlobalFooter/FooterNavLinks/assets/download-on-the-app-store.cjs +0 -5
- package/dist/GlobalFooter/FooterNavLinks/assets/download-on-the-app-store.js +0 -5
- package/dist/GlobalFooter/FooterNavLinks/assets/get-it-on-google-play.cjs +0 -5
- package/dist/GlobalFooter/FooterNavLinks/assets/get-it-on-google-play.js +0 -5
- package/dist/GlobalFooter/FooterNavLinks/index.cjs +0 -44
- package/dist/GlobalFooter/index.cjs +0 -38
- package/dist/GlobalFooter/index.d.cts +0 -26
- package/dist/GlobalFooter/types.d.cts +0 -16
- package/dist/GlobalHeader/GlobalHeaderItems.cjs +0 -443
- package/dist/GlobalHeader/GlobalHeaderVariants.cjs +0 -351
- package/dist/GlobalHeader/context.cjs +0 -82
- package/dist/GlobalHeader/index.cjs +0 -171
- package/dist/GlobalHeader/index.d.cts +0 -10
- package/dist/GlobalHeader/types.d.cts +0 -124
- package/dist/GlobalHeader/urlHelpers.cjs +0 -22
- package/dist/GlobalPage/index.cjs +0 -45
- package/dist/GlobalPage/index.d.cts +0 -51
- package/dist/Grid/GridCollapse.cjs +0 -161
- package/dist/Grid/GridCollapse.d.cts +0 -49
- package/dist/Grid/Subgrid.cjs +0 -41
- package/dist/Grid/Subgrid.d.cts +0 -29
- package/dist/Grid/getCSSFromColumnCount.cjs +0 -10
- package/dist/Grid/getCSSFromColumnCount.d.cts +0 -10
- package/dist/Grid/index.cjs +0 -9
- package/dist/Grid/index.d.cts +0 -4
- package/dist/HeaderHeightArea/index.cjs +0 -38
- package/dist/HeaderHeightArea/index.d.cts +0 -13
- package/dist/HeaderHeightArea/useIsInHeaderRegion.cjs +0 -17
- package/dist/HorizontalScrollMenu/index.cjs +0 -68
- package/dist/HorizontalScrollMenu/index.d.cts +0 -10
- package/dist/HubCard/index.cjs +0 -40
- package/dist/HubCard/index.d.cts +0 -12
- package/dist/InfoCard/index.cjs +0 -121
- package/dist/InfoCard/index.d.cts +0 -23
- package/dist/Konamimojisplosion/Konamimojisplosion.cjs +0 -10
- package/dist/Konamimojisplosion/Konamimojisplosion.d.cts +0 -9
- package/dist/Konamimojisplosion/index.cjs +0 -5
- package/dist/Konamimojisplosion/index.d.cts +0 -3
- package/dist/Konamimojisplosion/useKonamimojisplosion.cjs +0 -47
- package/dist/Konamimojisplosion/useKonamimojisplosion.d.cts +0 -4
- package/dist/LandingPage/CTA.cjs +0 -11
- package/dist/LandingPage/CTA.js +0 -9
- package/dist/LandingPage/Description.cjs +0 -18
- package/dist/LandingPage/Description.d.cts +0 -10
- package/dist/LandingPage/Feature.cjs +0 -89
- package/dist/LandingPage/Feature.js +0 -81
- package/dist/LandingPage/PageFAQs.cjs +0 -49
- package/dist/LandingPage/PageFAQs.d.cts +0 -14
- package/dist/LandingPage/PageFeatures.cjs +0 -99
- package/dist/LandingPage/PageFeatures.d.cts +0 -20
- package/dist/LandingPage/PageFeatures.d.ts +0 -20
- package/dist/LandingPage/PageFeatures.js +0 -97
- package/dist/LandingPage/PageFeaturesEnhanced.cjs +0 -152
- package/dist/LandingPage/PageFeaturesEnhanced.d.cts +0 -11
- package/dist/LandingPage/PageFeaturesEnhanced.d.ts +0 -11
- package/dist/LandingPage/PageFeaturesEnhanced.js +0 -150
- package/dist/LandingPage/PageFeaturesWithReferences.cjs +0 -128
- package/dist/LandingPage/PageFeaturesWithReferences.d.cts +0 -23
- package/dist/LandingPage/PageFeaturesWithReferences.d.ts +0 -23
- package/dist/LandingPage/PageFeaturesWithReferences.js +0 -126
- package/dist/LandingPage/PageHero.cjs +0 -20
- package/dist/LandingPage/PageHero.d.cts +0 -11
- package/dist/LandingPage/PageHero.d.ts +0 -11
- package/dist/LandingPage/PageHero.js +0 -18
- package/dist/LandingPage/PagePrefooter.cjs +0 -66
- package/dist/LandingPage/PagePrefooter.d.cts +0 -9
- package/dist/LandingPage/PagePrefooter.d.ts +0 -9
- package/dist/LandingPage/PagePrefooter.js +0 -64
- package/dist/LandingPage/PageSingleFeature.cjs +0 -108
- package/dist/LandingPage/PageSingleFeature.d.cts +0 -60
- package/dist/LandingPage/PageSingleFeature.d.ts +0 -60
- package/dist/LandingPage/PageSingleFeature.js +0 -105
- package/dist/LandingPage/PageTestimonials.cjs +0 -108
- package/dist/LandingPage/PageTestimonials.d.cts +0 -25
- package/dist/LandingPage/PageTestimonials.d.ts +0 -25
- package/dist/LandingPage/PageTestimonials.js +0 -105
- package/dist/LandingPage/PageVideoGallery.cjs +0 -70
- package/dist/LandingPage/PageVideoGallery.d.cts +0 -15
- package/dist/LandingPage/PageVideoGallery.d.ts +0 -15
- package/dist/LandingPage/PageVideoGallery.js +0 -67
- package/dist/LandingPage/Title.cjs +0 -33
- package/dist/LandingPage/Title.d.cts +0 -27
- package/dist/LandingPage/TitleWithEyebrow.cjs +0 -39
- package/dist/LandingPage/TitleWithEyebrow.d.cts +0 -15
- package/dist/LandingPage/index.cjs +0 -29
- package/dist/LandingPage/index.d.cts +0 -15
- package/dist/LandingPage/types.d.cts +0 -31
- package/dist/LayoutMenu/AccordionMenu.cjs +0 -64
- package/dist/LayoutMenu/AccordionMenu.d.cts +0 -18
- package/dist/LayoutMenu/LayoutMenu.cjs +0 -107
- package/dist/LayoutMenu/LayoutMenu.d.cts +0 -48
- package/dist/LayoutMenu/LayoutMenuSection.cjs +0 -38
- package/dist/LayoutMenu/SectionItemLink.cjs +0 -19
- package/dist/LayoutMenu/SectionItemLink.d.cts +0 -11
- package/dist/LayoutMenu/SelectedSectionItem.cjs +0 -22
- package/dist/LayoutMenu/SelectedSectionItem.d.cts +0 -7
- package/dist/LayoutMenu/index.cjs +0 -7
- package/dist/LayoutMenu/index.d.cts +0 -4
- package/dist/LayoutMenuVariant/AccordionMenu.cjs +0 -76
- package/dist/LayoutMenuVariant/AccordionMenu.d.cts +0 -19
- package/dist/LayoutMenuVariant/LayoutMenu.cjs +0 -88
- package/dist/LayoutMenuVariant/LayoutMenu.d.cts +0 -43
- package/dist/LayoutMenuVariant/LayoutMenuSection.cjs +0 -37
- package/dist/LayoutMenuVariant/SectionItemLink.cjs +0 -19
- package/dist/LayoutMenuVariant/SectionItemLink.d.cts +0 -12
- package/dist/LayoutMenuVariant/index.cjs +0 -19
- package/dist/LayoutMenuVariant/index.d.cts +0 -9
- package/dist/LearningOutcomeAssessmentScores/AssessmentDetail.cjs +0 -52
- package/dist/LearningOutcomeAssessmentScores/index.cjs +0 -25
- package/dist/LearningOutcomeAssessmentScores/index.d.cts +0 -10
- package/dist/LearningOutcomeBadges/LearningOutcomeLevelBadge.cjs +0 -50
- package/dist/LearningOutcomeBadges/LearningOutcomeLevelBadge.d.cts +0 -21
- package/dist/LearningOutcomeBadges/LearningOutcomeLowAssessmentBadge.cjs +0 -38
- package/dist/LearningOutcomeBadges/LearningOutcomeLowAssessmentBadge.d.cts +0 -18
- package/dist/LearningOutcomeBadges/index.cjs +0 -8
- package/dist/LearningOutcomeBadges/index.d.cts +0 -3
- package/dist/LearningOutcomeCard/index.cjs +0 -167
- package/dist/LearningOutcomeCard/index.d.cts +0 -30
- package/dist/LearningOutcomeFlyout/LearningOutcomeCardList.cjs +0 -41
- package/dist/LearningOutcomeFlyout/index.cjs +0 -316
- package/dist/LearningOutcomeFlyout/index.d.cts +0 -12
- package/dist/LearningOutcomeFlyout/types.cjs +0 -10
- package/dist/LearningOutcomeFlyout/types.d.cts +0 -66
- package/dist/LearningOutcomePopover/index.cjs +0 -117
- package/dist/LearningOutcomePopover/index.d.cts +0 -13
- package/dist/LearningOutcomeTile/Tile.cjs +0 -68
- package/dist/LearningOutcomeTile/index.cjs +0 -96
- package/dist/LearningOutcomeTile/index.d.cts +0 -7
- package/dist/LearningOutcomeTile/types.cjs +0 -11
- package/dist/LearningOutcomeTile/types.d.cts +0 -45
- package/dist/ListSection/index.cjs +0 -56
- package/dist/ListSection/index.d.cts +0 -25
- package/dist/Loading/index.cjs +0 -91
- package/dist/Loading/index.d.cts +0 -9
- package/dist/Loading/styles.module.cjs +0 -5
- package/dist/Loading/styles.module.js +0 -5
- package/dist/LoadingCurriculumCard/index.cjs +0 -85
- package/dist/LoadingCurriculumCard/index.d.cts +0 -10
- package/dist/Logos/LogoCodecademy/index.cjs +0 -23
- package/dist/Logos/LogoCodecademy/index.d.cts +0 -6
- package/dist/Logos/LogoCodecademyMini/index.cjs +0 -19
- package/dist/Logos/LogoCodecademyMini/index.d.cts +0 -6
- package/dist/Logos/LogoCodecademyPro/index.cjs +0 -26
- package/dist/Logos/LogoCodecademyPro/index.d.cts +0 -6
- package/dist/Logos/LogoCodecademyTeams/index.cjs +0 -53
- package/dist/Logos/LogoCodecademyTeams/index.d.cts +0 -6
- package/dist/Logos/LogoFromSkillsoft/index.cjs +0 -49
- package/dist/Logos/LogoFromSkillsoft/index.d.cts +0 -7
- package/dist/Logos/LogoLXStudio/index.cjs +0 -38
- package/dist/Logos/LogoLXStudio/index.d.cts +0 -7
- package/dist/Logos/ProLabel/ProLabelCutout/index.cjs +0 -38
- package/dist/Logos/ProLabel/ProLabelCutoutTransparent/index.cjs +0 -39
- package/dist/Logos/ProLabel/index.cjs +0 -27
- package/dist/Logos/ProLabel/index.d.cts +0 -18
- package/dist/Logos/index.cjs +0 -15
- package/dist/Logos/index.d.cts +0 -8
- package/dist/Logos/shared.cjs +0 -14
- package/dist/Logos/shared.d.cts +0 -232
- package/dist/MarketingToaster/index.cjs +0 -50
- package/dist/MarketingToaster/index.d.cts +0 -11
- package/dist/NotFoundContent/404.cjs +0 -5
- package/dist/NotFoundContent/404.js +0 -5
- package/dist/NotFoundContent/index.cjs +0 -49
- package/dist/NotFoundContent/index.d.cts +0 -11
- package/dist/NotificationList/EmptyNotification/emptyNotificationContents.cjs +0 -34
- package/dist/NotificationList/EmptyNotification/index.cjs +0 -44
- package/dist/NotificationList/NotificationItem.cjs +0 -162
- package/dist/NotificationList/NotificationItem.d.cts +0 -12
- package/dist/NotificationList/index.cjs +0 -45
- package/dist/NotificationList/index.d.cts +0 -13
- package/dist/NotificationList/typings.d.cts +0 -19
- package/dist/Notifications/NotificationBell.cjs +0 -61
- package/dist/Notifications/NotificationsContents.cjs +0 -80
- package/dist/Notifications/NotificationsDropdown.cjs +0 -24
- package/dist/Notifications/constants.cjs +0 -9
- package/dist/Notifications/elements.cjs +0 -23
- package/dist/Notifications/types.d.cts +0 -17
- package/dist/Notifications/useHeaderNotifications.cjs +0 -38
- package/dist/Notifications/useNotificationButtons.cjs +0 -53
- package/dist/PageAlerts/PageAlerts.cjs +0 -69
- package/dist/PageAlerts/PageAlerts.d.cts +0 -16
- package/dist/PageAlerts/PageAlertsProvider.cjs +0 -41
- package/dist/PageAlerts/PageAlertsProvider.d.cts +0 -15
- package/dist/PageAlerts/index.cjs +0 -8
- package/dist/PageAlerts/index.d.cts +0 -4
- package/dist/PageAlerts/types.d.cts +0 -18
- package/dist/PageLayoutWithSidebarMenu/PageLayoutWithSidebarMenu.cjs +0 -50
- package/dist/PageLayoutWithSidebarMenu/PageLayoutWithSidebarMenu.d.cts +0 -22
- package/dist/PageLayoutWithSidebarMenu/index.cjs +0 -3
- package/dist/PageLayoutWithSidebarMenu/index.d.cts +0 -2
- package/dist/PageSection/index.cjs +0 -65
- package/dist/PageSection/index.d.cts +0 -20
- package/dist/PastDue/PastDueModalContents/index.cjs +0 -28
- package/dist/PastDue/PastDueModalContents/index.d.cts +0 -12
- package/dist/PastDue/index.cjs +0 -5
- package/dist/PastDue/index.d.cts +0 -3
- package/dist/PastDue/pastDueMessages.cjs +0 -55
- package/dist/PastDue/pastDueMessages.d.cts +0 -8
- package/dist/PausableImage/BaseImage/index.cjs +0 -77
- package/dist/PausableImage/index.cjs +0 -32
- package/dist/PausableImage/index.d.cts +0 -16
- package/dist/PlanCard/PlanCardBanner.cjs +0 -30
- package/dist/PlanCard/PlanCardBanner.d.cts +0 -10
- package/dist/PlanCard/PlanFeature.cjs +0 -91
- package/dist/PlanCard/PopularBadge.cjs +0 -20
- package/dist/PlanCard/PricingAmount.cjs +0 -122
- package/dist/PlanCard/RecommendedBadge.cjs +0 -31
- package/dist/PlanCard/consts.cjs +0 -220
- package/dist/PlanCard/index.cjs +0 -341
- package/dist/PlanCard/index.d.cts +0 -22
- package/dist/PlanCard/types.cjs +0 -75
- package/dist/PlanCard/types.d.cts +0 -43
- package/dist/PlanCardTeams/consts.cjs +0 -22
- package/dist/PlanCardTeams/index.cjs +0 -140
- package/dist/PlanCardTeams/index.d.cts +0 -12
- package/dist/PricingSection/ConditionalColorMode.cjs +0 -14
- package/dist/PricingSection/PricingCard/PricingAmount.cjs +0 -122
- package/dist/PricingSection/PricingCard/RecommendedBadge.cjs +0 -30
- package/dist/PricingSection/PricingCard/index.cjs +0 -176
- package/dist/PricingSection/PricingCard/types.cjs +0 -67
- package/dist/PricingSection/PricingCard/types.d.cts +0 -26
- package/dist/PricingSection/ProductCTA.cjs +0 -106
- package/dist/PricingSection/Products.cjs +0 -86
- package/dist/PricingSection/config.cjs +0 -33
- package/dist/PricingSection/index.cjs +0 -36
- package/dist/PricingSection/index.d.cts +0 -22
- package/dist/PricingSection/types.cjs +0 -14
- package/dist/PricingSection/types.d.cts +0 -18
- package/dist/ProLogoAlt/index.cjs +0 -28
- package/dist/ProLogoAlt/index.d.cts +0 -13
- package/dist/ProductFeatureShowcase/index.cjs +0 -108
- package/dist/ProductFeatureShowcase/index.d.cts +0 -19
- package/dist/QuizScore/index.cjs +0 -93
- package/dist/QuizScore/index.d.cts +0 -15
- package/dist/RatingsBar/index.cjs +0 -44
- package/dist/RatingsBar/index.d.cts +0 -16
- package/dist/Recurly/context/NoProvider.cjs +0 -12
- package/dist/Recurly/context/elements/index.cjs +0 -45
- package/dist/Recurly/context/elements/index.d.cts +0 -15
- package/dist/Recurly/context/recurly/index.cjs +0 -49
- package/dist/Recurly/context/recurly/index.d.cts +0 -38
- package/dist/Recurly/context/recurly/loadRecurly.cjs +0 -21
- package/dist/Recurly/context/recurly/loadRecurly.d.cts +0 -9
- package/dist/Recurly/context/recurly/w.cjs +0 -6
- package/dist/Recurly/fields/RecurlyField.cjs +0 -69
- package/dist/Recurly/fields/RecurlyField.d.cts +0 -18
- package/dist/Recurly/fields/elements.cjs +0 -63
- package/dist/Recurly/fields/elements.d.cts +0 -22
- package/dist/Recurly/index.cjs +0 -13
- package/dist/Recurly/index.d.cts +0 -5
- package/dist/ResourceCard/index.cjs +0 -59
- package/dist/ResourceCard/index.d.cts +0 -19
- package/dist/ScoreSummary/SubScores.cjs +0 -136
- package/dist/ScoreSummary/SubScores.d.cts +0 -40
- package/dist/ScoreSummary/helpers.cjs +0 -20
- package/dist/ScoreSummary/index.cjs +0 -98
- package/dist/ScoreSummary/index.d.cts +0 -25
- package/dist/ScoreSummary/types.d.cts +0 -313
- package/dist/SkillPathCard/index.cjs +0 -34
- package/dist/SkillPathCard/index.d.cts +0 -25
- package/dist/SocialMediaSharing/SocialShareIconLink.cjs +0 -43
- package/dist/SocialMediaSharing/SocialShareIconLink.d.cts +0 -9
- package/dist/SocialMediaSharing/index.cjs +0 -86
- package/dist/SocialMediaSharing/index.d.cts +0 -64
- package/dist/SocialMediaSharingDropdown/index.cjs +0 -98
- package/dist/SocialMediaSharingDropdown/index.d.cts +0 -19
- package/dist/Testimonial/index.cjs +0 -141
- package/dist/Testimonial/index.d.cts +0 -53
- package/dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/defineProperty.cjs +0 -14
- package/dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/defineProperty.js +0 -14
- package/dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/toPrimitive.cjs +0 -16
- package/dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/toPrimitive.js +0 -16
- package/dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/toPropertyKey.cjs +0 -11
- package/dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/toPropertyKey.js +0 -11
- package/dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/typeof.cjs +0 -18
- package/dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/typeof.js +0 -12
- package/dist/_virtual/rolldown_runtime.cjs +0 -43
- package/dist/_virtual/rolldown_runtime.js +0 -18
- package/dist/assets/navyQuotes.cjs +0 -5
- package/dist/assets/navyQuotes.js +0 -5
- package/dist/assets/styles.module-CAlrRbjX.scss +0 -36
- package/dist/index.cjs +0 -279
- package/dist/index.d.cts +0 -122
- package/dist/lib/breakpointHooks/index.cjs +0 -64
- package/dist/lib/breakpointHooks/index.d.cts +0 -46
- package/dist/lib/catalogList/index.cjs +0 -52
- package/dist/lib/resourcesList/index.cjs +0 -68
- package/dist/remoteAssets/components.cjs +0 -6
- /package/dist/{assets/index.module-Dz0I2VL5.scss → AppBarDeprecated/styles/index.module.scss} +0 -0
- /package/dist/{assets/download-on-the-app-store-BbQ68gT5.svg → GlobalFooter/FooterNavLinks/assets/download-on-the-app-store.svg} +0 -0
- /package/dist/{assets/get-it-on-google-play-CnA-UUOj.png → GlobalFooter/FooterNavLinks/assets/get-it-on-google-play.png} +0 -0
- /package/dist/{assets/styles.module-DbrbHmEX.scss → Loading/styles.module.scss} +0 -0
- /package/dist/{assets/404-BM2-wvJv.svg → NotFoundContent/404.svg} +0 -0
- /package/dist/assets/{navyQuotes-C0ZxClwi.svg → navyQuotes.svg} +0 -0
|
@@ -1,479 +1,629 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import
|
|
12
|
-
import
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
const
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
"&:focus-visible:after": { left: -4 }
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
1
|
+
import _styled from "@emotion/styled/base";
|
|
2
|
+
function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
|
|
3
|
+
import { Badge, Box, ContentContainer, FlexBox, FocusTrap, IconButton, Menu, MenuItem, Shimmer, StrokeButton, Text } from '@codecademy/gamut';
|
|
4
|
+
import { MiniDeleteIcon, SearchIcon } from '@codecademy/gamut-icons';
|
|
5
|
+
import { css, theme, useCurrentMode } from '@codecademy/gamut-styles';
|
|
6
|
+
import { useTheme } from '@emotion/react';
|
|
7
|
+
import * as React from 'react';
|
|
8
|
+
import { useEffect, useRef, useState } from 'react';
|
|
9
|
+
import { useGlobalHeaderDynamicDataContext } from '../../GlobalHeader/context';
|
|
10
|
+
import { MarketingBanner } from '../AppHeaderElements/AppHeaderCatalogDropdown/MarketingBanner';
|
|
11
|
+
import { useOnEscHandler } from '../shared';
|
|
12
|
+
import { searchPlaceholder } from './consts';
|
|
13
|
+
import { PopularContent, PopularSearches } from './DefaultResults';
|
|
14
|
+
import { useUrlChangeDetection } from './hooks/useUrlChangeDetection';
|
|
15
|
+
import { QuizAndHelpCenterLinks } from './QuizAndHelpCenterLinks';
|
|
16
|
+
import { safelyRedirect } from './safelyRedirect';
|
|
17
|
+
import { useSearchTrackingContext } from './SearchTrackingProvider';
|
|
18
|
+
import { searchWorker } from './SearchWorker';
|
|
19
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
20
|
+
const Form = Box.withComponent('form', {
|
|
21
|
+
target: "e1e5b20r7",
|
|
22
|
+
label: "Form"
|
|
23
|
+
});
|
|
24
|
+
const Input = Box.withComponent('input', {
|
|
25
|
+
target: "e1e5b20r8",
|
|
26
|
+
label: "Input"
|
|
27
|
+
});
|
|
28
|
+
const QueryContainer = /*#__PURE__*/_styled(ContentContainer, {
|
|
29
|
+
target: "e1e5b20r6",
|
|
30
|
+
label: "QueryContainer"
|
|
31
|
+
})(({
|
|
32
|
+
$compact
|
|
33
|
+
}) => css({
|
|
34
|
+
display: 'flex',
|
|
35
|
+
width: '100%',
|
|
36
|
+
pt: 16,
|
|
37
|
+
pb: $compact ? {
|
|
38
|
+
_: 0,
|
|
39
|
+
md: 4
|
|
40
|
+
} : {
|
|
41
|
+
_: 0,
|
|
42
|
+
md: 24
|
|
43
|
+
},
|
|
44
|
+
px: {
|
|
45
|
+
_: 24
|
|
46
|
+
}
|
|
47
|
+
}), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvU2VhcmNoL1NlYXJjaFBhbmUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXVDdUIiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL0FwcEhlYWRlci9TZWFyY2gvU2VhcmNoUGFuZS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYWRnZSxcbiAgQm94LFxuICBDb250ZW50Q29udGFpbmVyLFxuICBGbGV4Qm94LFxuICBGb2N1c1RyYXAsXG4gIEljb25CdXR0b24sXG4gIE1lbnUsXG4gIE1lbnVJdGVtLFxuICBTaGltbWVyLFxuICBTdHJva2VCdXR0b24sXG4gIFRleHQsXG59IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCB7IE1pbmlEZWxldGVJY29uLCBTZWFyY2hJY29uIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtaWNvbnMnO1xuaW1wb3J0IHsgY3NzLCB0aGVtZSwgdXNlQ3VycmVudE1vZGUgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IHVzZUdsb2JhbEhlYWRlckR5bmFtaWNEYXRhQ29udGV4dCB9IGZyb20gJy4uLy4uL0dsb2JhbEhlYWRlci9jb250ZXh0JztcbmltcG9ydCB7IE1hcmtldGluZ0Jhbm5lciB9IGZyb20gJy4uL0FwcEhlYWRlckVsZW1lbnRzL0FwcEhlYWRlckNhdGFsb2dEcm9wZG93bi9NYXJrZXRpbmdCYW5uZXInO1xuaW1wb3J0IHsgdXNlT25Fc2NIYW5kbGVyIH0gZnJvbSAnLi4vc2hhcmVkJztcbmltcG9ydCB7IHNlYXJjaFBsYWNlaG9sZGVyIH0gZnJvbSAnLi9jb25zdHMnO1xuaW1wb3J0IHsgUG9wdWxhckNvbnRlbnQsIFBvcHVsYXJTZWFyY2hlcyB9IGZyb20gJy4vRGVmYXVsdFJlc3VsdHMnO1xuaW1wb3J0IHsgdXNlVXJsQ2hhbmdlRGV0ZWN0aW9uIH0gZnJvbSAnLi9ob29rcy91c2VVcmxDaGFuZ2VEZXRlY3Rpb24nO1xuaW1wb3J0IHsgUXVpekFuZEhlbHBDZW50ZXJMaW5rcyB9IGZyb20gJy4vUXVpekFuZEhlbHBDZW50ZXJMaW5rcyc7XG5pbXBvcnQgeyBzYWZlbHlSZWRpcmVjdCB9IGZyb20gJy4vc2FmZWx5UmVkaXJlY3QnO1xuaW1wb3J0IHsgdXNlU2VhcmNoVHJhY2tpbmdDb250ZXh0IH0gZnJvbSAnLi9TZWFyY2hUcmFja2luZ1Byb3ZpZGVyJztcbmltcG9ydCB7IHNlYXJjaFdvcmtlciB9IGZyb20gJy4vU2VhcmNoV29ya2VyJztcbmltcG9ydCB0eXBlIHtcbiAgQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbixcbiAgU2VhcmNoQXNZb3VUeXBlUmVzdWx0cyxcbn0gZnJvbSAnLi9TZWFyY2hXb3JrZXIvdHlwZXMnO1xuaW1wb3J0IHsgU2VhcmNoUGFuZVByb3BzIH0gZnJvbSAnLi90eXBlcyc7XG5cbmNvbnN0IEZvcm0gPSBCb3gud2l0aENvbXBvbmVudCgnZm9ybScpO1xuY29uc3QgSW5wdXQgPSBCb3gud2l0aENvbXBvbmVudCgnaW5wdXQnKTtcblxuY29uc3QgUXVlcnlDb250YWluZXIgPSBzdHlsZWQoQ29udGVudENvbnRhaW5lcik8eyAkY29tcGFjdD86IGJvb2xlYW4gfT4oXG4gICh7ICRjb21wYWN0IH0pID0+XG4gICAgY3NzKHtcbiAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICBwdDogMTYsXG4gICAgICBwYjogJGNvbXBhY3QgPyB7IF86IDAsIG1kOiA0IH0gOiB7IF86IDAsIG1kOiAyNCB9LFxuICAgICAgcHg6IHsgXzogMjQgfSxcbiAgICB9KVxuKTtcblxuY29uc3QgU3VnZ2VzdGlvbkNvbnRhaW5lciA9IHN0eWxlZChDb250ZW50Q29udGFpbmVyKTx7ICRjb21wYWN0PzogYm9vbGVhbiB9PihcbiAgKHsgJGNvbXBhY3QgfSkgPT5cbiAgICBjc3Moe1xuICAgICAgcHQ6ICRjb21wYWN0ID8gNCA6IDE2LFxuICAgICAgcGI6IHsgXzogMCwgbWQ6IDI0IH0sXG4gICAgICBweDogeyBfOiAyNCB9LFxuICAgIH0pXG4pO1xuXG5jb25zdCBTdHlsZWRJbnB1dCA9IHN0eWxlZChJbnB1dCkoXG4gIGNzcyh7XG4gICAgb3V0bGluZTogYG5vbmVgLFxuICAgICcmOjpwbGFjZWhvbGRlcic6IHtcbiAgICAgIHRleHRDb2xvcjogdGhlbWUuY29sb3JzWyd0ZXh0LXNlY29uZGFyeSddIGFzIG5ldmVyLFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBJbmxpbmVSZXN1bHRMaSA9IHN0eWxlZChNZW51SXRlbSkoXG4gIGNzcyh7XG4gICAgcGw6IDAsXG4gICAgcHk6IDgsXG4gICAgZm9udFNpemU6IDE2LFxuICAgICcmOmZvY3VzLXZpc2libGU6YWZ0ZXInOiB7XG4gICAgICBsZWZ0OiAtNCxcbiAgICB9LFxuICB9KVxuKTtcblxuY29uc3QgSW5saW5lTG9hZGVyTGkgPSBzdHlsZWQubGkoXG4gIGNzcyh7XG4gICAgbGlzdFN0eWxlVHlwZTogJ25vbmUnLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBnYXA6IDEyLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICB9KVxuKTtcblxuZXhwb3J0IGNvbnN0IFNlbWlib2xkU2VhcmNoSWNvbiA9IHN0eWxlZChTZWFyY2hJY29uKWBcbiAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbiAgY2lyY2xlLFxuICBwYXRoIHtcbiAgICBzdHJva2Utd2lkdGg6IDJweDtcbiAgfVxuICByZWN0IHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMnB4LCAtMnB4KTtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSArIDRweCk7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSArIDRweCk7XG4gIH1cbmA7XG5cbmNvbnN0IEVsbGlwc2lzQm94ID0gc3R5bGVkKEJveClgXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuYDtcblxuY29uc3QgSGlnaGxpZ2h0ZWRUZXh0ID0gKHtcbiAgc3VnZ2VzdGlvbjogeyB0aXRsZSwgc2VnbWVudHMgfSxcbn06IHtcbiAgc3VnZ2VzdGlvbjogQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbjtcbn0pID0+IHtcbiAgY29uc3QgbW9kZSA9IHVzZUN1cnJlbnRNb2RlKCk7XG4gIGNvbnN0IGhpZ2hsaWdodENvbG9yID0gbW9kZSA9PT0gJ2RhcmsnID8gJ2h5cGVyJyA6ICd5ZWxsb3cnO1xuXG4gIHJldHVybiAoXG4gICAgPEZsZXhCb3g+XG4gICAgICA8RWxsaXBzaXNCb3hcbiAgICAgICAgbWF4V2lkdGg9XCJjYWxjKDEwMHZ3IC0gMTI4cHgpXCJcbiAgICAgICAgd2hpdGVTcGFjZT1cInByZVwiXG4gICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgIG92ZXJmbG93PVwiaGlkZGVuXCJcbiAgICAgID5cbiAgICAgICAge3NlZ21lbnRzLm1hcCgoc2VnbWVudCwgaSkgPT4gKFxuICAgICAgICAgIDxUZXh0XG4gICAgICAgICAgICBrZXk9e2Ake3RpdGxlfToke2kudG9TdHJpbmcoKX1gfVxuICAgICAgICAgICAgbGluZUhlaWdodD1cInRpdGxlXCJcbiAgICAgICAgICAgIHsuLi4oc2VnbWVudC5oaWdobGlnaHRcbiAgICAgICAgICAgICAgPyB7IGJnOiBoaWdobGlnaHRDb2xvciwgZm9udFdlaWdodDogJ2JvbGQnIH1cbiAgICAgICAgICAgICAgOiB7fSl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3NlZ21lbnQudmFsdWV9XG4gICAgICAgICAgPC9UZXh0PlxuICAgICAgICApKX1cbiAgICAgIDwvRWxsaXBzaXNCb3g+XG4gICAgICA8VGV4dCBzY3JlZW5yZWFkZXI+e3RpdGxlfTwvVGV4dD5cbiAgICA8L0ZsZXhCb3g+XG4gICk7XG59O1xuXG50eXBlIFNlYXJjaEFzWW91VHlwZUxvYWRlciA9IHtcbiAgc2hpbW1lclJvd3M6IHtcbiAgICBrZXk6IHN0cmluZztcbiAgICBzaGltbWVyczoge1xuICAgICAga2V5OiBzdHJpbmc7XG4gICAgICB3aWR0aDogbnVtYmVyO1xuICAgIH1bXTtcbiAgfVtdO1xufTtcblxubGV0IGxvYWRlcktleSA9IDA7XG5mdW5jdGlvbiBybmRMb2FkZXIoKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wbHVzcGx1c1xuICBjb25zdCBrZXkgPSBsb2FkZXJLZXkrKztcbiAgY29uc3QgbG9hZGVyOiBTZWFyY2hBc1lvdVR5cGVMb2FkZXIgPSB7IHNoaW1tZXJSb3dzOiBbXSB9O1xuICBmb3IgKGxldCBpID0gMDsgaSA8IDU7IGkrKykge1xuICAgIGNvbnN0IHJvdyA9IHtcbiAgICAgIGtleTogYCR7a2V5fToke2l9YCxcbiAgICAgIHNoaW1tZXJzOiBbXSBhcyB7IGtleTogc3RyaW5nOyB3aWR0aDogbnVtYmVyIH1bXSxcbiAgICB9O1xuICAgIGNvbnN0IHdvcmRzID0gTWF0aC5jZWlsKE1hdGgucmFuZG9tKCkgKiAzKTtcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IHdvcmRzOyBqKyspIHtcbiAgICAgIGNvbnN0IHdpZHRoID0gMTIgKyBNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkgKiA5Nik7XG4gICAgICByb3cuc2hpbW1lcnMucHVzaCh7XG4gICAgICAgIGtleTogYCR7a2V5fToke2p9YCxcbiAgICAgICAgd2lkdGgsXG4gICAgICB9KTtcbiAgICB9XG4gICAgbG9hZGVyLnNoaW1tZXJSb3dzLnB1c2gocm93KTtcbiAgfVxuICByZXR1cm4gbG9hZGVyO1xufVxuXG5leHBvcnQgY29uc3QgU2VhcmNoUGFuZTogUmVhY3QuRkM8U2VhcmNoUGFuZVByb3BzPiA9ICh7XG4gIG9uU2VhcmNoLFxuICBvblRyYWNraW5nQ2xpY2ssXG4gIHNlYXJjaEJ1dHRvblJlZixcbiAgdG9nZ2xlU2VhcmNoLFxuICBvblNlYXJjaEFzWW91VHlwZSxcbn0pID0+IHtcbiAgY29uc3QgdGhlbWUgPSB1c2VUaGVtZSgpO1xuICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IHVzZVN0YXRlKCcnKTtcbiAgY29uc3QgaW5wdXRSZWYgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IFthdXRvQ29tcGxldGVTdWdnZXN0aW9ucywgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnNdID0gdXNlU3RhdGU8XG4gICAgQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbltdXG4gID4oW10pO1xuICBjb25zdCBbc2VhcmNoQXNZb3VUeXBlUmVzdWx0cywgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0c10gPVxuICAgIHVzZVN0YXRlPFNlYXJjaEFzWW91VHlwZVJlc3VsdHMgfCBudWxsPihudWxsKTtcblxuICBjb25zdCBbc2VhcmNoUmVzdWx0Q2xpY2tlZCwgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgY29uc3QgeyBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyB9ID0gdXNlU2VhcmNoVHJhY2tpbmdDb250ZXh0KCk7XG4gIGNvbnN0IHsgZ2xvYmFsSGVhZGVyRHluYW1pY0RhdGEgfSA9IHVzZUdsb2JhbEhlYWRlckR5bmFtaWNEYXRhQ29udGV4dCgpO1xuXG4gIGNvbnN0IGJhbm5lciA9IGdsb2JhbEhlYWRlckR5bmFtaWNEYXRhPy5jYXRhbG9nRHJvcGRvd24/LmJhbm5lcjtcbiAgY29uc3Qgc2hvd01hcmtldGluZ0Jhbm5lciA9IGJhbm5lcj8udGV4dCAmJiBiYW5uZXI/LmhyZWYgJiYgTWFya2V0aW5nQmFubmVyO1xuXG4gIGNvbnN0IHNlYXJjaEFzWW91VHlwZUxvYWRlciA9IFJlYWN0LnVzZU1lbW8oXG4gICAgKCkgPT4gKHNlYXJjaEFzWW91VHlwZVJlc3VsdHMgPT09IG51bGwgPyBybmRMb2FkZXIoKSA6IG51bGwpLFxuICAgIFtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzXVxuICApO1xuXG4gIGNvbnN0IHZhbHVlVHJpbW1lZCA9IHZhbHVlLnRyaW0oKTtcblxuICBjb25zdCBoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2sgPVxuICAgIG9uU2VhcmNoQXNZb3VUeXBlICYmIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMgJiYgIXNlYXJjaFJlc3VsdENsaWNrZWQ7XG5cbiAgY29uc3QgY2xvc2VTZWFyY2ggPSBhc3luYyAoKSA9PiB7XG4gICAgLy8gdHJhY2sgc2VhcmNoIGV2ZW50IHdoZW4gdXNlciBtYWRlIGEgc2VhcmNoIGFuZCB0aGVuIGNsb3NlZCBzZWFyY2ggcGFuZVxuICAgIGlmIChoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2sgJiYgdmFsdWVUcmltbWVkLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM7XG4gICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSk7XG4gICAgfVxuXG4gICAgYXdhaXQgdG9nZ2xlU2VhcmNoKCk7XG4gICAgLy8gYWRkcyBhIGxpdHRsZSBkZWxheSBiZXR3ZWVuIGNsb3NpbmcgdGhlIHNlYXJjaCBwYW5lIGFuZCBmb2N1c2luZyBvbiB0aGUgYnV0dG9uXG4gICAgLy8gdG8gcHJldmVudCB0aGUgc2VhcmNoIHBhbmUgZnJvbSBpbW1lZGlhdGVseSBvcGVuaW5nIGFnYWluXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAoc2VhcmNoQnV0dG9uUmVmICYmIHNlYXJjaEJ1dHRvblJlZj8uY3VycmVudCkge1xuICAgICAgICBzZWFyY2hCdXR0b25SZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9LCAxMCk7XG4gIH07XG5cbiAgY29uc3Qgb25LZXlEb3duID0gdXNlT25Fc2NIYW5kbGVyKGNsb3NlU2VhcmNoKTtcblxuICBjb25zdCBvbk1vdXNlRG93bk91dHNpZGUgPSAoeyB0YXJnZXQgfTogTW91c2VFdmVudCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZU91dHNpZGVDbGljayA9ICgpID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgIWRvY3VtZW50XG4gICAgICAgICAgLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXRlc3RpZD1cImhlYWRlci1zZWFyY2gtZHJvcGRvd25cIl0nKVxuICAgICAgICAgID8uY29udGFpbnModGFyZ2V0IGFzIEhUTUxFbGVtZW50KSAmJlxuICAgICAgICB0YXJnZXQgIT09IHNlYXJjaEJ1dHRvblJlZj8uY3VycmVudFxuICAgICAgKSB7XG4gICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICB9XG5cbiAgICAgIHRhcmdldD8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGhhbmRsZU91dHNpZGVDbGljayk7XG4gICAgfTtcblxuICAgIHRhcmdldD8uYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGhhbmRsZU91dHNpZGVDbGljayk7XG4gIH07XG5cbiAgY29uc3QgbmF2aWdhdGVUb1NlYXJjaCA9IChzZWFyY2hUZXJtOiBzdHJpbmcsIGZyb21QcmV2U2VhcmNoPzogc3RyaW5nKSA9PiB7XG4gICAgb25TZWFyY2goc2VhcmNoVGVybSwgZnJvbVByZXZTZWFyY2gpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUNoYW5nZTogUmVhY3QuQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxJbnB1dEVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgIHNldFZhbHVlKGV2dC50YXJnZXQudmFsdWUpO1xuICAgIC8vIHJlc2V0IHRvIGZhbHNlIHdoZW4gdGhlIHNlYXJjaCBxdWVyeSBjaGFuZ2VzXG4gICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZChmYWxzZSk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlU3VibWl0OiBSZWFjdC5Gb3JtRXZlbnRIYW5kbGVyID0gKGV2ZW50KSA9PiB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCB3aGVuIHRoZSB1c2VyIHN1Ym1pdHMgdGhlIGZvcm0gdG8gY2FwdHVyZSBjb21wbGV0ZSBxdWVyeVxuICAgIGlmIChoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2spIHtcbiAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM7XG4gICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSk7XG4gICAgfVxuXG4gICAgbmF2aWdhdGVUb1NlYXJjaCh2YWx1ZSwgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWQpO1xuICB9O1xuXG4gIGNvbnN0IGNsZWFySW5wdXQgPSAoKSA9PiB7XG4gICAgLy8gdHJhY2sgc2VhcmNoIGV2ZW50IGJlZm9yZSB1c2VyIGNsZWFycyBpbnB1dFxuICAgIGlmIChoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2sgJiYgdmFsdWVUcmltbWVkLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM7XG4gICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSk7XG4gICAgfVxuXG4gICAgc2V0VmFsdWUoJycpO1xuICAgIHNldEF1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zKFtdKTtcbiAgICAvLyByZXNldCB0aGUgY29udGV4dCB3aXRoIGVtcHR5IHZhbHVlc1xuICAgIHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zKHtcbiAgICAgIHF1ZXJ5OiAnJyxcbiAgICAgIHNlYXJjaElkOiAnJyxcbiAgICAgIHJlc3VsdHNDb3VudDogMCxcbiAgICAgIHF1ZXJ5TG9hZFRpbWU6IDAsXG4gICAgfSk7XG4gIH07XG5cbiAgLy8gd2hlbiB0aGUgY3VycmVudCBVUkwgY2hhbmdlcywgd2Ugd2FudCB0byBjbG9zZSB0aGUgc2VhcmNoIHBhbmUgaWYgaXQncyBvcGVuXG4gIC8vIGFuZCB0cmFjayBzZWFyY2ggZXZlbnQgaWYgdXNlciBtYWRlIGEgc2VhcmNoXG4gIHVzZVVybENoYW5nZURldGVjdGlvbih7XG4gICAgb25VcmxDaGFuZ2U6ICgpID0+IHtcbiAgICAgIGlmIChoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2sgJiYgdmFsdWVUcmltbWVkLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSB9ID1cbiAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSk7XG4gICAgICB9XG5cbiAgICAgIHRvZ2dsZVNlYXJjaCgpO1xuICAgIH0sXG4gIH0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gZG9uJ3QgdHJhY2sgaWYgYSByZXN1bHQgd2FzIGNsaWNrZWQgb3IgaWYgd2UgZG9uJ3QgaGF2ZSBzZWFyY2ggcmVzdWx0c1xuICAgIGlmIChcbiAgICAgIHNlYXJjaFJlc3VsdENsaWNrZWQgfHxcbiAgICAgICFvblNlYXJjaEFzWW91VHlwZSB8fFxuICAgICAgIXNlYXJjaEFzWW91VHlwZVJlc3VsdHMgfHxcbiAgICAgICF2YWx1ZVRyaW1tZWQubGVuZ3RoXG4gICAgKVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZWxlc3MtcmV0dXJuXG4gICAgICByZXR1cm47XG4gIH0sIFtcbiAgICBzZWFyY2hSZXN1bHRDbGlja2VkLFxuICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMsXG4gICAgdmFsdWVUcmltbWVkLFxuICAgIG9uU2VhcmNoQXNZb3VUeXBlLFxuICBdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlucHV0UmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgc2VhcmNoV29ya2VyLmluaXQoKTtcbiAgfSwgW10pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCF2YWx1ZVRyaW1tZWQubGVuZ3RoKSB7XG4gICAgICBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKG51bGwpO1xuICAgICAgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMoe1xuICAgICAgICBxdWVyeTogJycsXG4gICAgICAgIHNlYXJjaElkOiAnJyxcbiAgICAgICAgcmVzdWx0c0NvdW50OiAwLFxuICAgICAgICBxdWVyeUxvYWRUaW1lOiAwLFxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGNhbmNlbCA9IGZhbHNlO1xuICAgIGxldCBjbGVhckF1dG9jb21wbGV0ZSA9IHRydWU7XG4gICAgbGV0IGNsZWFyU2VhcmNoQXNZb3VUeXBlID0gdHJ1ZTtcblxuICAgIGxldCBzZWFyY2hFdmVudE5vUmVzdWx0RGVsYXk6IE5vZGVKUy5UaW1lb3V0O1xuXG4gICAgY29uc3QgbG9hZGVyRGVsYXkgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIC8qXG4gICAgICAgKiBXYWl0IDEwIG1pbGxpc2Vjb25kcyB0byBnZXQgYSByZXNwb25zZSBmb3Igd29ya2VyIGJlZm9yZSBzaG93aW5nIGxvYWRlcnMuXG4gICAgICAgKiBUaGlzIHByZXZlbnRzIGZsaWNrZXJpbmcgbG9hZGVycyBvbiBxdWljayBvciBjYWNoZWQgcmVzdWx0cy5cbiAgICAgICAqL1xuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuO1xuICAgICAgaWYgKGNsZWFyQXV0b2NvbXBsZXRlKSBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhbXSk7XG4gICAgICBpZiAoY2xlYXJTZWFyY2hBc1lvdVR5cGUpIHNldFNlYXJjaEFzWW91VHlwZVJlc3VsdHMobnVsbCk7XG4gICAgfSwgMTApO1xuXG4gICAgc2VhcmNoV29ya2VyLmF1dG9jb21wbGV0ZSh2YWx1ZVRyaW1tZWQpLnRoZW4oKHN1Z2dlc3Rpb25zKSA9PiB7XG4gICAgICBjbGVhckF1dG9jb21wbGV0ZSA9IGZhbHNlO1xuXG4gICAgICBpZiAoY2FuY2VsKSByZXR1cm47IC8vIHRleHQgaGFzIGNoYW5nZWQgc2luY2UgdGhpcyByZXF1ZXN0IHdhcyBtYWRlXG5cbiAgICAgIHNldEF1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zKHN1Z2dlc3Rpb25zKTtcbiAgICB9KTtcblxuICAgIHNlYXJjaFdvcmtlci5zZWFyY2hBc1lvdVR5cGUodmFsdWVUcmltbWVkKS50aGVuKChyZXN1bHRzKSA9PiB7XG4gICAgICBjbGVhclNlYXJjaEFzWW91VHlwZSA9IGZhbHNlO1xuXG4gICAgICBpZiAoY2FuY2VsKSByZXR1cm47IC8vIHRleHQgaGFzIGNoYW5nZWQgc2luY2UgdGhpcyByZXF1ZXN0IHdhcyBtYWRlXG5cbiAgICAgIHNldFNlYXJjaEFzWW91VHlwZVJlc3VsdHMocmVzdWx0cyk7XG5cbiAgICAgIHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zKHtcbiAgICAgICAgcXVlcnk6IHJlc3VsdHMucXVlcnksXG4gICAgICAgIHNlYXJjaElkOiByZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICByZXN1bHRzQ291bnQ6IHJlc3VsdHMudG9wLmxlbmd0aCxcbiAgICAgICAgcXVlcnlMb2FkVGltZTogcmVzdWx0cy5xdWVyeUxvYWRUaW1lLFxuICAgICAgfSk7XG5cbiAgICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCB3aXRoIGEgc21hbGwgZGVsYXkgd2hlbiB0aGVyZSBhcmUgbm8gcmVzdWx0c1xuICAgICAgaWYgKFxuICAgICAgICBvblNlYXJjaEFzWW91VHlwZSAmJlxuICAgICAgICByZXN1bHRzLnRvcC5sZW5ndGggPT09IDAgJiZcbiAgICAgICAgIXNlYXJjaFJlc3VsdENsaWNrZWRcbiAgICAgICkge1xuICAgICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcXVlcnlMb2FkVGltZSB9ID0gcmVzdWx0cztcbiAgICAgICAgc2VhcmNoRXZlbnROb1Jlc3VsdERlbGF5ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgaWYgKCFjYW5jZWwpIHtcbiAgICAgICAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgMCwgcXVlcnlMb2FkVGltZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LCAzMDApO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGNhbmNlbCA9IHRydWU7XG4gICAgICBjbGVhclRpbWVvdXQobG9hZGVyRGVsYXkpO1xuICAgICAgY2xlYXJUaW1lb3V0KHNlYXJjaEV2ZW50Tm9SZXN1bHREZWxheSk7XG4gICAgfTtcbiAgfSwgW1xuICAgIHZhbHVlVHJpbW1lZCxcbiAgICBvblNlYXJjaEFzWW91VHlwZSxcbiAgICBzZWFyY2hSZXN1bHRDbGlja2VkLFxuICAgIHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zLFxuICBdKTtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8Qm94XG4gICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgIGJnPVwic2hhZG93LXNlY29uZGFyeVwiXG4gICAgICAgIGhlaWdodD1cIjEwMHZoXCJcbiAgICAgICAgcG9zaXRpb249XCJmaXhlZFwiXG4gICAgICAgIC8vIFdlIGFkZCA2cmVtIGhlcmUgaW4gY2FzZSB0aGVyZSdzIHNvbWUgc29ydCBvZiBicmFuZGVkIGJhbm5lciBhYm92ZSBzZWFyY2hcbiAgICAgICAgLy8gVGhlIHNlYXJjaCBhcmVhIGlzIG11Y2ggdGFsbGVyIHRoYW4gNnJlbSBzbyB0aGlzIGlzIGEgc2FmZSBhbW91bnQgb2YgcGFkZGluZ1xuICAgICAgICB0b3A9e2BjYWxjKCR7dGhlbWUuZWxlbWVudHMuaGVhZGVySGVpZ2h0fSArIDZyZW0pYH1cbiAgICAgICAgd2lkdGg9ezF9XG4gICAgICAvPlxuICAgICAgPEZvY3VzVHJhcFxuICAgICAgICBvbkVzY2FwZUtleT17Y2xvc2VTZWFyY2h9XG4gICAgICAgIG9uQ2xpY2tPdXRzaWRlPXtvbk1vdXNlRG93bk91dHNpZGV9XG4gICAgICAgIGFsbG93UGFnZUludGVyYWN0aW9uXG4gICAgICA+XG4gICAgICAgIDxCb3hcbiAgICAgICAgICBiZz1cImJhY2tncm91bmRcIlxuICAgICAgICAgIGJvcmRlckNvbG9yQm90dG9tPVwiYm9yZGVyLXByaW1hcnlcIlxuICAgICAgICAgIGJvcmRlckNvbG9yVG9wPVwiYm9yZGVyLXRlcnRpYXJ5XCJcbiAgICAgICAgICBib3JkZXJTdHlsZT1cInNvbGlkXCJcbiAgICAgICAgICBib3JkZXJXaWR0aD1cIjJweCAwIDFweFwiXG4gICAgICAgICAgZGF0YS10ZXN0aWQ9XCJoZWFkZXItc2VhcmNoLWRyb3Bkb3duXCJcbiAgICAgICAgICBwb3NpdGlvbj17eyBfOiAnZml4ZWQnLCBtZDogJ2Fic29sdXRlJyB9fVxuICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgbWF4SGVpZ2h0PXt7IF86ICdjYWxjKDEwMHZoIC0gNjNweCknLCBtZDogJ2NhbGMoMTAwdmggLSA4MHB4KScgfX1cbiAgICAgICAgICBvdmVyZmxvdz1cImF1dG9cIlxuICAgICAgICAgIHpJbmRleD17MTB9IC8vIGVuc3VyZSBkcm9wZG93biBpcyBhYm92ZSB0aGUgcGFnZSBjb250ZW50XG4gICAgICAgID5cbiAgICAgICAgICA8Qm94IGJvcmRlcj1cIm5vbmVcIiB3aWR0aD1cImF1dG9cIj5cbiAgICAgICAgICAgIDxRdWVyeUNvbnRhaW5lciAkY29tcGFjdD17ISFzaG93TWFya2V0aW5nQmFubmVyfT5cbiAgICAgICAgICAgICAgPEZsZXhCb3hcbiAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiYmFzZWxpbmVcIlxuICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yPVwiZ3JheS02MDBcIlxuICAgICAgICAgICAgICAgIGJvcmRlclN0eWxlQm90dG9tPVwic29saWRcIlxuICAgICAgICAgICAgICAgIGJvcmRlcldpZHRoQm90dG9tPVwiMXB4XCJcbiAgICAgICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFNlYXJjaEljb25cbiAgICAgICAgICAgICAgICAgIGhlaWdodD17eyBfOiAyMCwgbWQ6IDI0IH19XG4gICAgICAgICAgICAgICAgICB3aWR0aD17eyBfOiAyMCwgbWQ6IDI0IH19XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8Rm9ybVxuICAgICAgICAgICAgICAgICAgYWN0aW9uPVwiL3NlYXJjaFwiXG4gICAgICAgICAgICAgICAgICBpZD1cInNlYXJjaC1mb3JtXCJcbiAgICAgICAgICAgICAgICAgIG1sPXs4fVxuICAgICAgICAgICAgICAgICAgb25TdWJtaXQ9e2hhbmRsZVN1Ym1pdH1cbiAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPFN0eWxlZElucHV0XG4gICAgICAgICAgICAgICAgICAgIGF1dG9Gb2N1c1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcj1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICBmb250U2l6ZT17eyBfOiAyMCwgbWQ6IDI2IH19XG4gICAgICAgICAgICAgICAgICAgIGZvbnRXZWlnaHQ9XCJib2xkXCJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJoZWFkZXItc2VhcmNoLWJhclwiXG4gICAgICAgICAgICAgICAgICAgIG5hbWU9XCJxdWVyeVwiXG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVDaGFuZ2V9XG4gICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17KGUpID0+IG9uS2V5RG93bihlKX1cbiAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e3NlYXJjaFBsYWNlaG9sZGVyfVxuICAgICAgICAgICAgICAgICAgICByZWY9e2lucHV0UmVmfVxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwic2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgICAgICAgICBhdXRvQ29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L0Zvcm0+XG4gICAgICAgICAgICAgICAgPEljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgIGljb249e01pbmlEZWxldGVJY29ufVxuICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkNsZWFyIHNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICB0aXA9XCJDbGVhciBzZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgdGlwUHJvcHM9e3tcbiAgICAgICAgICAgICAgICAgICAgYWxpZ25tZW50OiAnYm90dG9tLWNlbnRlcicsXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudDogJ2Zsb2F0aW5nJyxcbiAgICAgICAgICAgICAgICAgICAgbmFycm93OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICB6SW5kZXg6IDIsXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17Y2xlYXJJbnB1dH1cbiAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgICAgICAgPC9RdWVyeUNvbnRhaW5lcj5cbiAgICAgICAgICA8L0JveD5cbiAgICAgICAgICB7c2hvd01hcmtldGluZ0Jhbm5lciAmJiAoXG4gICAgICAgICAgICA8Q29udGVudENvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPE1hcmtldGluZ0Jhbm5lclxuICAgICAgICAgICAgICAgIHNvdXJjZT1cInNlYXJjaFwiXG4gICAgICAgICAgICAgICAgdGV4dD17YmFubmVyPy50ZXh0fVxuICAgICAgICAgICAgICAgIGhyZWY9e2Jhbm5lcj8uaHJlZn1cbiAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICBweT17eyBfOiAxNiwgbGc6IDI0IH19XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0NvbnRlbnRDb250YWluZXI+XG4gICAgICAgICAgKX1cbiAgICAgICAgICA8U3VnZ2VzdGlvbkNvbnRhaW5lciAkY29tcGFjdD17ISFzaG93TWFya2V0aW5nQmFubmVyfT5cbiAgICAgICAgICAgIHt2YWx1ZVRyaW1tZWQubGVuZ3RoID4gMCA/IChcbiAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICA8RmxleEJveCBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCIgYXM9XCJ1bFwiIGxpc3RTdHlsZT1cIm5vbmVcIiBwPXswfT5cbiAgICAgICAgICAgICAgICAgIHthdXRvQ29tcGxldGVTdWdnZXN0aW9ucy5tYXAoKHMsIGkpID0+IChcbiAgICAgICAgICAgICAgICAgICAgPElubGluZVJlc3VsdExpXG4gICAgICAgICAgICAgICAgICAgICAga2V5PXtzLnRpdGxlfVxuICAgICAgICAgICAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17KGV2dCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV2dC5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdhdXRvY29tcGxldGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWQgPz8gJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMudGl0bGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ2F1dG9jb21wbGV0ZV9yZXN1bHQnLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWQgPz8gJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hdmlnYXRlVG9TZWFyY2goXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHMudGl0bGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPFNlbWlib2xkU2VhcmNoSWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgbWI9ezIgYXMgMH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9ezE0fVxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlV2lkdGg9ezh9XG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlblxuICAgICAgICAgICAgICAgICAgICAgICAgbXI9ezEyfVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPEhpZ2hsaWdodGVkVGV4dCBzdWdnZXN0aW9uPXtzfSAvPlxuICAgICAgICAgICAgICAgICAgICA8L0lubGluZVJlc3VsdExpPlxuICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgICAgICAgICAgIHsoc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyA9PT0gbnVsbCB8fFxuICAgICAgICAgICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy50b3AubGVuZ3RoID4gMCkgJiYgKFxuICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgPFRleHQgYXM9XCJoMlwiIGZvbnRTaXplPXsyMH0gbWI9ezE2fSBtdD17MjR9PlxuICAgICAgICAgICAgICAgICAgICAgIFRvcCByZXN1bHRzXG4gICAgICAgICAgICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgICAgICAgICAgICAgPEZsZXhCb3hcbiAgICAgICAgICAgICAgICAgICAgICBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICAgICBhcz1cInVsXCJcbiAgICAgICAgICAgICAgICAgICAgICBsaXN0U3R5bGU9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICBwPXswfVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAge3NlYXJjaEFzWW91VHlwZVJlc3VsdHMgPT09IG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgID8gc2VhcmNoQXNZb3VUeXBlTG9hZGVyPy5zaGltbWVyUm93cy5tYXAoKHIpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5saW5lTG9hZGVyTGkga2V5PXtyLmtleX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ci5zaGltbWVycy5tYXAoKHdvcmQpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFNoaW1tZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9ezMwfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB5PXs4IGFzIDB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXt3b3JkLmtleX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD17d29yZC53aWR0aH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJveFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250RmFtaWx5PVwiYWNjZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dENvbG9yPVwidGV4dC1zZWNvbmRhcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250U2l6ZT17eyBfOiAxMCBhcyAxNiB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJDb2xvcj1cImJvcmRlci1zZWNvbmRhcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI9ezF9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1cz1cInhsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHg9ezE2fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5PXswLjF9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZuYnNwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9JbmxpbmVMb2FkZXJMaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy50b3AubWFwKChzLCBpKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPElubGluZVJlc3VsdExpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2Ake1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnF1ZXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OiR7aS50b1N0cmluZygpfWB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJsaW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17KGV2dCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXZ0LmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdzZWFyY2hfYXNfeW91X3R5cGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2x1Zzogcy5zbHVnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKHMuY29udGVudElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8geyBjb250ZW50X2lkOiBzLmNvbnRlbnRJZCB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2FmZWx5UmVkaXJlY3Qocy51cmxQYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdzZWFyY2hfYXNfeW91X3R5cGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbHVnOiBzLnNsdWcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKHMuY29udGVudElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHsgY29udGVudF9pZDogcy5jb250ZW50SWQgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB7fSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYWZlbHlSZWRpcmVjdChzLnVybFBhdGgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SGlnaGxpZ2h0ZWRUZXh0IHN1Z2dlc3Rpb249e3N9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QmFkZ2Ugc2l6ZT1cInNtXCIgdmFyaWFudD1cInRlcnRpYXJ5XCIgbWw9ezEyfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3MudHlwZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQmFkZ2U+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9JbmxpbmVSZXN1bHRMaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgIDwvRmxleEJveD5cbiAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAge3NlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnRvcC5sZW5ndGggPT09IDAgJiYgKFxuICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgPEJveCBmb250U2l6ZT17eyBfOiAyMCwgc206IDI2IH19IG10PXswfSBtYj17NDh9PlxuICAgICAgICAgICAgICAgICAgICAgIHtgV2UgY291bGRuJ3QgZmluZCBhIG1hdGNoIGZvciBgfVxuICAgICAgICAgICAgICAgICAgICAgIDxUZXh0IGZvbnRXZWlnaHQ9XCJib2xkXCI+e2BcIiR7dmFsdWVUcmltbWVkfS5cImB9PC9UZXh0PlxuICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICcgVHJ5IGFub3RoZXIga2V5d29yZCwgb3Igc2VlIHdoYXQgb3VyIG1lbWJlcnMgYXJlIGxlYXJuaW5nLidcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICA8TWVudSBib3JkZXI9XCJub25lXCIgdmFyaWFudD1cInBvcG92ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8UG9wdWxhckNvbnRlbnQgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvTWVudT5cbiAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPE1lbnUgYm9yZGVyPVwibm9uZVwiIHZhcmlhbnQ9XCJwb3BvdmVyXCI+XG4gICAgICAgICAgICAgICAgPFBvcHVsYXJTZWFyY2hlc1xuICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaD17bmF2aWdhdGVUb1NlYXJjaH1cbiAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPFBvcHVsYXJDb250ZW50IG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfSAvPlxuICAgICAgICAgICAgICA8L01lbnU+XG4gICAgICAgICAgICApfVxuXG4gICAgICAgICAgICB7ISFzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy50b3AubGVuZ3RoICYmIChcbiAgICAgICAgICAgICAgPFN0cm9rZUJ1dHRvblxuICAgICAgICAgICAgICAgIG15PXsxNn1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ3ZpZXdfYWxsX3Jlc3VsdHMnLCB7XG4gICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaCh2YWx1ZSwgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWQpO1xuICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgVmlldyBhbGwgcmVzdWx0c1xuICAgICAgICAgICAgICA8L1N0cm9rZUJ1dHRvbj5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8UXVpekFuZEhlbHBDZW50ZXJMaW5rc1xuICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja31cbiAgICAgICAgICAgICAgaGFuZGxlQ2xvc2VEcm9wZG93bj17Y2xvc2VTZWFyY2h9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvU3VnZ2VzdGlvbkNvbnRhaW5lcj5cbiAgICAgICAgPC9Cb3g+XG4gICAgICA8L0ZvY3VzVHJhcD5cbiAgICA8Lz5cbiAgKTtcbn07XG4iXX0= */");
|
|
48
|
+
const SuggestionContainer = /*#__PURE__*/_styled(ContentContainer, {
|
|
49
|
+
target: "e1e5b20r5",
|
|
50
|
+
label: "SuggestionContainer"
|
|
51
|
+
})(({
|
|
52
|
+
$compact
|
|
53
|
+
}) => css({
|
|
54
|
+
pt: $compact ? 4 : 16,
|
|
55
|
+
pb: {
|
|
56
|
+
_: 0,
|
|
57
|
+
md: 24
|
|
58
|
+
},
|
|
59
|
+
px: {
|
|
60
|
+
_: 24
|
|
61
|
+
}
|
|
62
|
+
}), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvU2VhcmNoL1NlYXJjaFBhbmUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWtENEIiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL0FwcEhlYWRlci9TZWFyY2gvU2VhcmNoUGFuZS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYWRnZSxcbiAgQm94LFxuICBDb250ZW50Q29udGFpbmVyLFxuICBGbGV4Qm94LFxuICBGb2N1c1RyYXAsXG4gIEljb25CdXR0b24sXG4gIE1lbnUsXG4gIE1lbnVJdGVtLFxuICBTaGltbWVyLFxuICBTdHJva2VCdXR0b24sXG4gIFRleHQsXG59IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCB7IE1pbmlEZWxldGVJY29uLCBTZWFyY2hJY29uIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtaWNvbnMnO1xuaW1wb3J0IHsgY3NzLCB0aGVtZSwgdXNlQ3VycmVudE1vZGUgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IHVzZUdsb2JhbEhlYWRlckR5bmFtaWNEYXRhQ29udGV4dCB9IGZyb20gJy4uLy4uL0dsb2JhbEhlYWRlci9jb250ZXh0JztcbmltcG9ydCB7IE1hcmtldGluZ0Jhbm5lciB9IGZyb20gJy4uL0FwcEhlYWRlckVsZW1lbnRzL0FwcEhlYWRlckNhdGFsb2dEcm9wZG93bi9NYXJrZXRpbmdCYW5uZXInO1xuaW1wb3J0IHsgdXNlT25Fc2NIYW5kbGVyIH0gZnJvbSAnLi4vc2hhcmVkJztcbmltcG9ydCB7IHNlYXJjaFBsYWNlaG9sZGVyIH0gZnJvbSAnLi9jb25zdHMnO1xuaW1wb3J0IHsgUG9wdWxhckNvbnRlbnQsIFBvcHVsYXJTZWFyY2hlcyB9IGZyb20gJy4vRGVmYXVsdFJlc3VsdHMnO1xuaW1wb3J0IHsgdXNlVXJsQ2hhbmdlRGV0ZWN0aW9uIH0gZnJvbSAnLi9ob29rcy91c2VVcmxDaGFuZ2VEZXRlY3Rpb24nO1xuaW1wb3J0IHsgUXVpekFuZEhlbHBDZW50ZXJMaW5rcyB9IGZyb20gJy4vUXVpekFuZEhlbHBDZW50ZXJMaW5rcyc7XG5pbXBvcnQgeyBzYWZlbHlSZWRpcmVjdCB9IGZyb20gJy4vc2FmZWx5UmVkaXJlY3QnO1xuaW1wb3J0IHsgdXNlU2VhcmNoVHJhY2tpbmdDb250ZXh0IH0gZnJvbSAnLi9TZWFyY2hUcmFja2luZ1Byb3ZpZGVyJztcbmltcG9ydCB7IHNlYXJjaFdvcmtlciB9IGZyb20gJy4vU2VhcmNoV29ya2VyJztcbmltcG9ydCB0eXBlIHtcbiAgQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbixcbiAgU2VhcmNoQXNZb3VUeXBlUmVzdWx0cyxcbn0gZnJvbSAnLi9TZWFyY2hXb3JrZXIvdHlwZXMnO1xuaW1wb3J0IHsgU2VhcmNoUGFuZVByb3BzIH0gZnJvbSAnLi90eXBlcyc7XG5cbmNvbnN0IEZvcm0gPSBCb3gud2l0aENvbXBvbmVudCgnZm9ybScpO1xuY29uc3QgSW5wdXQgPSBCb3gud2l0aENvbXBvbmVudCgnaW5wdXQnKTtcblxuY29uc3QgUXVlcnlDb250YWluZXIgPSBzdHlsZWQoQ29udGVudENvbnRhaW5lcik8eyAkY29tcGFjdD86IGJvb2xlYW4gfT4oXG4gICh7ICRjb21wYWN0IH0pID0+XG4gICAgY3NzKHtcbiAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICBwdDogMTYsXG4gICAgICBwYjogJGNvbXBhY3QgPyB7IF86IDAsIG1kOiA0IH0gOiB7IF86IDAsIG1kOiAyNCB9LFxuICAgICAgcHg6IHsgXzogMjQgfSxcbiAgICB9KVxuKTtcblxuY29uc3QgU3VnZ2VzdGlvbkNvbnRhaW5lciA9IHN0eWxlZChDb250ZW50Q29udGFpbmVyKTx7ICRjb21wYWN0PzogYm9vbGVhbiB9PihcbiAgKHsgJGNvbXBhY3QgfSkgPT5cbiAgICBjc3Moe1xuICAgICAgcHQ6ICRjb21wYWN0ID8gNCA6IDE2LFxuICAgICAgcGI6IHsgXzogMCwgbWQ6IDI0IH0sXG4gICAgICBweDogeyBfOiAyNCB9LFxuICAgIH0pXG4pO1xuXG5jb25zdCBTdHlsZWRJbnB1dCA9IHN0eWxlZChJbnB1dCkoXG4gIGNzcyh7XG4gICAgb3V0bGluZTogYG5vbmVgLFxuICAgICcmOjpwbGFjZWhvbGRlcic6IHtcbiAgICAgIHRleHRDb2xvcjogdGhlbWUuY29sb3JzWyd0ZXh0LXNlY29uZGFyeSddIGFzIG5ldmVyLFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBJbmxpbmVSZXN1bHRMaSA9IHN0eWxlZChNZW51SXRlbSkoXG4gIGNzcyh7XG4gICAgcGw6IDAsXG4gICAgcHk6IDgsXG4gICAgZm9udFNpemU6IDE2LFxuICAgICcmOmZvY3VzLXZpc2libGU6YWZ0ZXInOiB7XG4gICAgICBsZWZ0OiAtNCxcbiAgICB9LFxuICB9KVxuKTtcblxuY29uc3QgSW5saW5lTG9hZGVyTGkgPSBzdHlsZWQubGkoXG4gIGNzcyh7XG4gICAgbGlzdFN0eWxlVHlwZTogJ25vbmUnLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBnYXA6IDEyLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICB9KVxuKTtcblxuZXhwb3J0IGNvbnN0IFNlbWlib2xkU2VhcmNoSWNvbiA9IHN0eWxlZChTZWFyY2hJY29uKWBcbiAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbiAgY2lyY2xlLFxuICBwYXRoIHtcbiAgICBzdHJva2Utd2lkdGg6IDJweDtcbiAgfVxuICByZWN0IHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMnB4LCAtMnB4KTtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSArIDRweCk7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSArIDRweCk7XG4gIH1cbmA7XG5cbmNvbnN0IEVsbGlwc2lzQm94ID0gc3R5bGVkKEJveClgXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuYDtcblxuY29uc3QgSGlnaGxpZ2h0ZWRUZXh0ID0gKHtcbiAgc3VnZ2VzdGlvbjogeyB0aXRsZSwgc2VnbWVudHMgfSxcbn06IHtcbiAgc3VnZ2VzdGlvbjogQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbjtcbn0pID0+IHtcbiAgY29uc3QgbW9kZSA9IHVzZUN1cnJlbnRNb2RlKCk7XG4gIGNvbnN0IGhpZ2hsaWdodENvbG9yID0gbW9kZSA9PT0gJ2RhcmsnID8gJ2h5cGVyJyA6ICd5ZWxsb3cnO1xuXG4gIHJldHVybiAoXG4gICAgPEZsZXhCb3g+XG4gICAgICA8RWxsaXBzaXNCb3hcbiAgICAgICAgbWF4V2lkdGg9XCJjYWxjKDEwMHZ3IC0gMTI4cHgpXCJcbiAgICAgICAgd2hpdGVTcGFjZT1cInByZVwiXG4gICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgIG92ZXJmbG93PVwiaGlkZGVuXCJcbiAgICAgID5cbiAgICAgICAge3NlZ21lbnRzLm1hcCgoc2VnbWVudCwgaSkgPT4gKFxuICAgICAgICAgIDxUZXh0XG4gICAgICAgICAgICBrZXk9e2Ake3RpdGxlfToke2kudG9TdHJpbmcoKX1gfVxuICAgICAgICAgICAgbGluZUhlaWdodD1cInRpdGxlXCJcbiAgICAgICAgICAgIHsuLi4oc2VnbWVudC5oaWdobGlnaHRcbiAgICAgICAgICAgICAgPyB7IGJnOiBoaWdobGlnaHRDb2xvciwgZm9udFdlaWdodDogJ2JvbGQnIH1cbiAgICAgICAgICAgICAgOiB7fSl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3NlZ21lbnQudmFsdWV9XG4gICAgICAgICAgPC9UZXh0PlxuICAgICAgICApKX1cbiAgICAgIDwvRWxsaXBzaXNCb3g+XG4gICAgICA8VGV4dCBzY3JlZW5yZWFkZXI+e3RpdGxlfTwvVGV4dD5cbiAgICA8L0ZsZXhCb3g+XG4gICk7XG59O1xuXG50eXBlIFNlYXJjaEFzWW91VHlwZUxvYWRlciA9IHtcbiAgc2hpbW1lclJvd3M6IHtcbiAgICBrZXk6IHN0cmluZztcbiAgICBzaGltbWVyczoge1xuICAgICAga2V5OiBzdHJpbmc7XG4gICAgICB3aWR0aDogbnVtYmVyO1xuICAgIH1bXTtcbiAgfVtdO1xufTtcblxubGV0IGxvYWRlcktleSA9IDA7XG5mdW5jdGlvbiBybmRMb2FkZXIoKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wbHVzcGx1c1xuICBjb25zdCBrZXkgPSBsb2FkZXJLZXkrKztcbiAgY29uc3QgbG9hZGVyOiBTZWFyY2hBc1lvdVR5cGVMb2FkZXIgPSB7IHNoaW1tZXJSb3dzOiBbXSB9O1xuICBmb3IgKGxldCBpID0gMDsgaSA8IDU7IGkrKykge1xuICAgIGNvbnN0IHJvdyA9IHtcbiAgICAgIGtleTogYCR7a2V5fToke2l9YCxcbiAgICAgIHNoaW1tZXJzOiBbXSBhcyB7IGtleTogc3RyaW5nOyB3aWR0aDogbnVtYmVyIH1bXSxcbiAgICB9O1xuICAgIGNvbnN0IHdvcmRzID0gTWF0aC5jZWlsKE1hdGgucmFuZG9tKCkgKiAzKTtcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IHdvcmRzOyBqKyspIHtcbiAgICAgIGNvbnN0IHdpZHRoID0gMTIgKyBNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkgKiA5Nik7XG4gICAgICByb3cuc2hpbW1lcnMucHVzaCh7XG4gICAgICAgIGtleTogYCR7a2V5fToke2p9YCxcbiAgICAgICAgd2lkdGgsXG4gICAgICB9KTtcbiAgICB9XG4gICAgbG9hZGVyLnNoaW1tZXJSb3dzLnB1c2gocm93KTtcbiAgfVxuICByZXR1cm4gbG9hZGVyO1xufVxuXG5leHBvcnQgY29uc3QgU2VhcmNoUGFuZTogUmVhY3QuRkM8U2VhcmNoUGFuZVByb3BzPiA9ICh7XG4gIG9uU2VhcmNoLFxuICBvblRyYWNraW5nQ2xpY2ssXG4gIHNlYXJjaEJ1dHRvblJlZixcbiAgdG9nZ2xlU2VhcmNoLFxuICBvblNlYXJjaEFzWW91VHlwZSxcbn0pID0+IHtcbiAgY29uc3QgdGhlbWUgPSB1c2VUaGVtZSgpO1xuICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IHVzZVN0YXRlKCcnKTtcbiAgY29uc3QgaW5wdXRSZWYgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IFthdXRvQ29tcGxldGVTdWdnZXN0aW9ucywgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnNdID0gdXNlU3RhdGU8XG4gICAgQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbltdXG4gID4oW10pO1xuICBjb25zdCBbc2VhcmNoQXNZb3VUeXBlUmVzdWx0cywgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0c10gPVxuICAgIHVzZVN0YXRlPFNlYXJjaEFzWW91VHlwZVJlc3VsdHMgfCBudWxsPihudWxsKTtcblxuICBjb25zdCBbc2VhcmNoUmVzdWx0Q2xpY2tlZCwgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgY29uc3QgeyBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyB9ID0gdXNlU2VhcmNoVHJhY2tpbmdDb250ZXh0KCk7XG4gIGNvbnN0IHsgZ2xvYmFsSGVhZGVyRHluYW1pY0RhdGEgfSA9IHVzZUdsb2JhbEhlYWRlckR5bmFtaWNEYXRhQ29udGV4dCgpO1xuXG4gIGNvbnN0IGJhbm5lciA9IGdsb2JhbEhlYWRlckR5bmFtaWNEYXRhPy5jYXRhbG9nRHJvcGRvd24/LmJhbm5lcjtcbiAgY29uc3Qgc2hvd01hcmtldGluZ0Jhbm5lciA9IGJhbm5lcj8udGV4dCAmJiBiYW5uZXI/LmhyZWYgJiYgTWFya2V0aW5nQmFubmVyO1xuXG4gIGNvbnN0IHNlYXJjaEFzWW91VHlwZUxvYWRlciA9IFJlYWN0LnVzZU1lbW8oXG4gICAgKCkgPT4gKHNlYXJjaEFzWW91VHlwZVJlc3VsdHMgPT09IG51bGwgPyBybmRMb2FkZXIoKSA6IG51bGwpLFxuICAgIFtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzXVxuICApO1xuXG4gIGNvbnN0IHZhbHVlVHJpbW1lZCA9IHZhbHVlLnRyaW0oKTtcblxuICBjb25zdCBoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2sgPVxuICAgIG9uU2VhcmNoQXNZb3VUeXBlICYmIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMgJiYgIXNlYXJjaFJlc3VsdENsaWNrZWQ7XG5cbiAgY29uc3QgY2xvc2VTZWFyY2ggPSBhc3luYyAoKSA9PiB7XG4gICAgLy8gdHJhY2sgc2VhcmNoIGV2ZW50IHdoZW4gdXNlciBtYWRlIGEgc2VhcmNoIGFuZCB0aGVuIGNsb3NlZCBzZWFyY2ggcGFuZVxuICAgIGlmIChoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2sgJiYgdmFsdWVUcmltbWVkLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM7XG4gICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSk7XG4gICAgfVxuXG4gICAgYXdhaXQgdG9nZ2xlU2VhcmNoKCk7XG4gICAgLy8gYWRkcyBhIGxpdHRsZSBkZWxheSBiZXR3ZWVuIGNsb3NpbmcgdGhlIHNlYXJjaCBwYW5lIGFuZCBmb2N1c2luZyBvbiB0aGUgYnV0dG9uXG4gICAgLy8gdG8gcHJldmVudCB0aGUgc2VhcmNoIHBhbmUgZnJvbSBpbW1lZGlhdGVseSBvcGVuaW5nIGFnYWluXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAoc2VhcmNoQnV0dG9uUmVmICYmIHNlYXJjaEJ1dHRvblJlZj8uY3VycmVudCkge1xuICAgICAgICBzZWFyY2hCdXR0b25SZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9LCAxMCk7XG4gIH07XG5cbiAgY29uc3Qgb25LZXlEb3duID0gdXNlT25Fc2NIYW5kbGVyKGNsb3NlU2VhcmNoKTtcblxuICBjb25zdCBvbk1vdXNlRG93bk91dHNpZGUgPSAoeyB0YXJnZXQgfTogTW91c2VFdmVudCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZU91dHNpZGVDbGljayA9ICgpID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgIWRvY3VtZW50XG4gICAgICAgICAgLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXRlc3RpZD1cImhlYWRlci1zZWFyY2gtZHJvcGRvd25cIl0nKVxuICAgICAgICAgID8uY29udGFpbnModGFyZ2V0IGFzIEhUTUxFbGVtZW50KSAmJlxuICAgICAgICB0YXJnZXQgIT09IHNlYXJjaEJ1dHRvblJlZj8uY3VycmVudFxuICAgICAgKSB7XG4gICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICB9XG5cbiAgICAgIHRhcmdldD8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGhhbmRsZU91dHNpZGVDbGljayk7XG4gICAgfTtcblxuICAgIHRhcmdldD8uYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGhhbmRsZU91dHNpZGVDbGljayk7XG4gIH07XG5cbiAgY29uc3QgbmF2aWdhdGVUb1NlYXJjaCA9IChzZWFyY2hUZXJtOiBzdHJpbmcsIGZyb21QcmV2U2VhcmNoPzogc3RyaW5nKSA9PiB7XG4gICAgb25TZWFyY2goc2VhcmNoVGVybSwgZnJvbVByZXZTZWFyY2gpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUNoYW5nZTogUmVhY3QuQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxJbnB1dEVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgIHNldFZhbHVlKGV2dC50YXJnZXQudmFsdWUpO1xuICAgIC8vIHJlc2V0IHRvIGZhbHNlIHdoZW4gdGhlIHNlYXJjaCBxdWVyeSBjaGFuZ2VzXG4gICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZChmYWxzZSk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlU3VibWl0OiBSZWFjdC5Gb3JtRXZlbnRIYW5kbGVyID0gKGV2ZW50KSA9PiB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCB3aGVuIHRoZSB1c2VyIHN1Ym1pdHMgdGhlIGZvcm0gdG8gY2FwdHVyZSBjb21wbGV0ZSBxdWVyeVxuICAgIGlmIChoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2spIHtcbiAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM7XG4gICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSk7XG4gICAgfVxuXG4gICAgbmF2aWdhdGVUb1NlYXJjaCh2YWx1ZSwgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWQpO1xuICB9O1xuXG4gIGNvbnN0IGNsZWFySW5wdXQgPSAoKSA9PiB7XG4gICAgLy8gdHJhY2sgc2VhcmNoIGV2ZW50IGJlZm9yZSB1c2VyIGNsZWFycyBpbnB1dFxuICAgIGlmIChoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2sgJiYgdmFsdWVUcmltbWVkLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM7XG4gICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSk7XG4gICAgfVxuXG4gICAgc2V0VmFsdWUoJycpO1xuICAgIHNldEF1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zKFtdKTtcbiAgICAvLyByZXNldCB0aGUgY29udGV4dCB3aXRoIGVtcHR5IHZhbHVlc1xuICAgIHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zKHtcbiAgICAgIHF1ZXJ5OiAnJyxcbiAgICAgIHNlYXJjaElkOiAnJyxcbiAgICAgIHJlc3VsdHNDb3VudDogMCxcbiAgICAgIHF1ZXJ5TG9hZFRpbWU6IDAsXG4gICAgfSk7XG4gIH07XG5cbiAgLy8gd2hlbiB0aGUgY3VycmVudCBVUkwgY2hhbmdlcywgd2Ugd2FudCB0byBjbG9zZSB0aGUgc2VhcmNoIHBhbmUgaWYgaXQncyBvcGVuXG4gIC8vIGFuZCB0cmFjayBzZWFyY2ggZXZlbnQgaWYgdXNlciBtYWRlIGEgc2VhcmNoXG4gIHVzZVVybENoYW5nZURldGVjdGlvbih7XG4gICAgb25VcmxDaGFuZ2U6ICgpID0+IHtcbiAgICAgIGlmIChoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2sgJiYgdmFsdWVUcmltbWVkLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSB9ID1cbiAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSk7XG4gICAgICB9XG5cbiAgICAgIHRvZ2dsZVNlYXJjaCgpO1xuICAgIH0sXG4gIH0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gZG9uJ3QgdHJhY2sgaWYgYSByZXN1bHQgd2FzIGNsaWNrZWQgb3IgaWYgd2UgZG9uJ3QgaGF2ZSBzZWFyY2ggcmVzdWx0c1xuICAgIGlmIChcbiAgICAgIHNlYXJjaFJlc3VsdENsaWNrZWQgfHxcbiAgICAgICFvblNlYXJjaEFzWW91VHlwZSB8fFxuICAgICAgIXNlYXJjaEFzWW91VHlwZVJlc3VsdHMgfHxcbiAgICAgICF2YWx1ZVRyaW1tZWQubGVuZ3RoXG4gICAgKVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZWxlc3MtcmV0dXJuXG4gICAgICByZXR1cm47XG4gIH0sIFtcbiAgICBzZWFyY2hSZXN1bHRDbGlja2VkLFxuICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMsXG4gICAgdmFsdWVUcmltbWVkLFxuICAgIG9uU2VhcmNoQXNZb3VUeXBlLFxuICBdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlucHV0UmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgc2VhcmNoV29ya2VyLmluaXQoKTtcbiAgfSwgW10pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCF2YWx1ZVRyaW1tZWQubGVuZ3RoKSB7XG4gICAgICBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKG51bGwpO1xuICAgICAgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMoe1xuICAgICAgICBxdWVyeTogJycsXG4gICAgICAgIHNlYXJjaElkOiAnJyxcbiAgICAgICAgcmVzdWx0c0NvdW50OiAwLFxuICAgICAgICBxdWVyeUxvYWRUaW1lOiAwLFxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGNhbmNlbCA9IGZhbHNlO1xuICAgIGxldCBjbGVhckF1dG9jb21wbGV0ZSA9IHRydWU7XG4gICAgbGV0IGNsZWFyU2VhcmNoQXNZb3VUeXBlID0gdHJ1ZTtcblxuICAgIGxldCBzZWFyY2hFdmVudE5vUmVzdWx0RGVsYXk6IE5vZGVKUy5UaW1lb3V0O1xuXG4gICAgY29uc3QgbG9hZGVyRGVsYXkgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIC8qXG4gICAgICAgKiBXYWl0IDEwIG1pbGxpc2Vjb25kcyB0byBnZXQgYSByZXNwb25zZSBmb3Igd29ya2VyIGJlZm9yZSBzaG93aW5nIGxvYWRlcnMuXG4gICAgICAgKiBUaGlzIHByZXZlbnRzIGZsaWNrZXJpbmcgbG9hZGVycyBvbiBxdWljayBvciBjYWNoZWQgcmVzdWx0cy5cbiAgICAgICAqL1xuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuO1xuICAgICAgaWYgKGNsZWFyQXV0b2NvbXBsZXRlKSBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhbXSk7XG4gICAgICBpZiAoY2xlYXJTZWFyY2hBc1lvdVR5cGUpIHNldFNlYXJjaEFzWW91VHlwZVJlc3VsdHMobnVsbCk7XG4gICAgfSwgMTApO1xuXG4gICAgc2VhcmNoV29ya2VyLmF1dG9jb21wbGV0ZSh2YWx1ZVRyaW1tZWQpLnRoZW4oKHN1Z2dlc3Rpb25zKSA9PiB7XG4gICAgICBjbGVhckF1dG9jb21wbGV0ZSA9IGZhbHNlO1xuXG4gICAgICBpZiAoY2FuY2VsKSByZXR1cm47IC8vIHRleHQgaGFzIGNoYW5nZWQgc2luY2UgdGhpcyByZXF1ZXN0IHdhcyBtYWRlXG5cbiAgICAgIHNldEF1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zKHN1Z2dlc3Rpb25zKTtcbiAgICB9KTtcblxuICAgIHNlYXJjaFdvcmtlci5zZWFyY2hBc1lvdVR5cGUodmFsdWVUcmltbWVkKS50aGVuKChyZXN1bHRzKSA9PiB7XG4gICAgICBjbGVhclNlYXJjaEFzWW91VHlwZSA9IGZhbHNlO1xuXG4gICAgICBpZiAoY2FuY2VsKSByZXR1cm47IC8vIHRleHQgaGFzIGNoYW5nZWQgc2luY2UgdGhpcyByZXF1ZXN0IHdhcyBtYWRlXG5cbiAgICAgIHNldFNlYXJjaEFzWW91VHlwZVJlc3VsdHMocmVzdWx0cyk7XG5cbiAgICAgIHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zKHtcbiAgICAgICAgcXVlcnk6IHJlc3VsdHMucXVlcnksXG4gICAgICAgIHNlYXJjaElkOiByZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICByZXN1bHRzQ291bnQ6IHJlc3VsdHMudG9wLmxlbmd0aCxcbiAgICAgICAgcXVlcnlMb2FkVGltZTogcmVzdWx0cy5xdWVyeUxvYWRUaW1lLFxuICAgICAgfSk7XG5cbiAgICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCB3aXRoIGEgc21hbGwgZGVsYXkgd2hlbiB0aGVyZSBhcmUgbm8gcmVzdWx0c1xuICAgICAgaWYgKFxuICAgICAgICBvblNlYXJjaEFzWW91VHlwZSAmJlxuICAgICAgICByZXN1bHRzLnRvcC5sZW5ndGggPT09IDAgJiZcbiAgICAgICAgIXNlYXJjaFJlc3VsdENsaWNrZWRcbiAgICAgICkge1xuICAgICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcXVlcnlMb2FkVGltZSB9ID0gcmVzdWx0cztcbiAgICAgICAgc2VhcmNoRXZlbnROb1Jlc3VsdERlbGF5ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgaWYgKCFjYW5jZWwpIHtcbiAgICAgICAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgMCwgcXVlcnlMb2FkVGltZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LCAzMDApO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGNhbmNlbCA9IHRydWU7XG4gICAgICBjbGVhclRpbWVvdXQobG9hZGVyRGVsYXkpO1xuICAgICAgY2xlYXJUaW1lb3V0KHNlYXJjaEV2ZW50Tm9SZXN1bHREZWxheSk7XG4gICAgfTtcbiAgfSwgW1xuICAgIHZhbHVlVHJpbW1lZCxcbiAgICBvblNlYXJjaEFzWW91VHlwZSxcbiAgICBzZWFyY2hSZXN1bHRDbGlja2VkLFxuICAgIHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zLFxuICBdKTtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8Qm94XG4gICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgIGJnPVwic2hhZG93LXNlY29uZGFyeVwiXG4gICAgICAgIGhlaWdodD1cIjEwMHZoXCJcbiAgICAgICAgcG9zaXRpb249XCJmaXhlZFwiXG4gICAgICAgIC8vIFdlIGFkZCA2cmVtIGhlcmUgaW4gY2FzZSB0aGVyZSdzIHNvbWUgc29ydCBvZiBicmFuZGVkIGJhbm5lciBhYm92ZSBzZWFyY2hcbiAgICAgICAgLy8gVGhlIHNlYXJjaCBhcmVhIGlzIG11Y2ggdGFsbGVyIHRoYW4gNnJlbSBzbyB0aGlzIGlzIGEgc2FmZSBhbW91bnQgb2YgcGFkZGluZ1xuICAgICAgICB0b3A9e2BjYWxjKCR7dGhlbWUuZWxlbWVudHMuaGVhZGVySGVpZ2h0fSArIDZyZW0pYH1cbiAgICAgICAgd2lkdGg9ezF9XG4gICAgICAvPlxuICAgICAgPEZvY3VzVHJhcFxuICAgICAgICBvbkVzY2FwZUtleT17Y2xvc2VTZWFyY2h9XG4gICAgICAgIG9uQ2xpY2tPdXRzaWRlPXtvbk1vdXNlRG93bk91dHNpZGV9XG4gICAgICAgIGFsbG93UGFnZUludGVyYWN0aW9uXG4gICAgICA+XG4gICAgICAgIDxCb3hcbiAgICAgICAgICBiZz1cImJhY2tncm91bmRcIlxuICAgICAgICAgIGJvcmRlckNvbG9yQm90dG9tPVwiYm9yZGVyLXByaW1hcnlcIlxuICAgICAgICAgIGJvcmRlckNvbG9yVG9wPVwiYm9yZGVyLXRlcnRpYXJ5XCJcbiAgICAgICAgICBib3JkZXJTdHlsZT1cInNvbGlkXCJcbiAgICAgICAgICBib3JkZXJXaWR0aD1cIjJweCAwIDFweFwiXG4gICAgICAgICAgZGF0YS10ZXN0aWQ9XCJoZWFkZXItc2VhcmNoLWRyb3Bkb3duXCJcbiAgICAgICAgICBwb3NpdGlvbj17eyBfOiAnZml4ZWQnLCBtZDogJ2Fic29sdXRlJyB9fVxuICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgbWF4SGVpZ2h0PXt7IF86ICdjYWxjKDEwMHZoIC0gNjNweCknLCBtZDogJ2NhbGMoMTAwdmggLSA4MHB4KScgfX1cbiAgICAgICAgICBvdmVyZmxvdz1cImF1dG9cIlxuICAgICAgICAgIHpJbmRleD17MTB9IC8vIGVuc3VyZSBkcm9wZG93biBpcyBhYm92ZSB0aGUgcGFnZSBjb250ZW50XG4gICAgICAgID5cbiAgICAgICAgICA8Qm94IGJvcmRlcj1cIm5vbmVcIiB3aWR0aD1cImF1dG9cIj5cbiAgICAgICAgICAgIDxRdWVyeUNvbnRhaW5lciAkY29tcGFjdD17ISFzaG93TWFya2V0aW5nQmFubmVyfT5cbiAgICAgICAgICAgICAgPEZsZXhCb3hcbiAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiYmFzZWxpbmVcIlxuICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yPVwiZ3JheS02MDBcIlxuICAgICAgICAgICAgICAgIGJvcmRlclN0eWxlQm90dG9tPVwic29saWRcIlxuICAgICAgICAgICAgICAgIGJvcmRlcldpZHRoQm90dG9tPVwiMXB4XCJcbiAgICAgICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFNlYXJjaEljb25cbiAgICAgICAgICAgICAgICAgIGhlaWdodD17eyBfOiAyMCwgbWQ6IDI0IH19XG4gICAgICAgICAgICAgICAgICB3aWR0aD17eyBfOiAyMCwgbWQ6IDI0IH19XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8Rm9ybVxuICAgICAgICAgICAgICAgICAgYWN0aW9uPVwiL3NlYXJjaFwiXG4gICAgICAgICAgICAgICAgICBpZD1cInNlYXJjaC1mb3JtXCJcbiAgICAgICAgICAgICAgICAgIG1sPXs4fVxuICAgICAgICAgICAgICAgICAgb25TdWJtaXQ9e2hhbmRsZVN1Ym1pdH1cbiAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPFN0eWxlZElucHV0XG4gICAgICAgICAgICAgICAgICAgIGF1dG9Gb2N1c1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcj1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICBmb250U2l6ZT17eyBfOiAyMCwgbWQ6IDI2IH19XG4gICAgICAgICAgICAgICAgICAgIGZvbnRXZWlnaHQ9XCJib2xkXCJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJoZWFkZXItc2VhcmNoLWJhclwiXG4gICAgICAgICAgICAgICAgICAgIG5hbWU9XCJxdWVyeVwiXG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVDaGFuZ2V9XG4gICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17KGUpID0+IG9uS2V5RG93bihlKX1cbiAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e3NlYXJjaFBsYWNlaG9sZGVyfVxuICAgICAgICAgICAgICAgICAgICByZWY9e2lucHV0UmVmfVxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwic2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgICAgICAgICBhdXRvQ29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L0Zvcm0+XG4gICAgICAgICAgICAgICAgPEljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgIGljb249e01pbmlEZWxldGVJY29ufVxuICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkNsZWFyIHNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICB0aXA9XCJDbGVhciBzZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgdGlwUHJvcHM9e3tcbiAgICAgICAgICAgICAgICAgICAgYWxpZ25tZW50OiAnYm90dG9tLWNlbnRlcicsXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudDogJ2Zsb2F0aW5nJyxcbiAgICAgICAgICAgICAgICAgICAgbmFycm93OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICB6SW5kZXg6IDIsXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17Y2xlYXJJbnB1dH1cbiAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgICAgICAgPC9RdWVyeUNvbnRhaW5lcj5cbiAgICAgICAgICA8L0JveD5cbiAgICAgICAgICB7c2hvd01hcmtldGluZ0Jhbm5lciAmJiAoXG4gICAgICAgICAgICA8Q29udGVudENvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPE1hcmtldGluZ0Jhbm5lclxuICAgICAgICAgICAgICAgIHNvdXJjZT1cInNlYXJjaFwiXG4gICAgICAgICAgICAgICAgdGV4dD17YmFubmVyPy50ZXh0fVxuICAgICAgICAgICAgICAgIGhyZWY9e2Jhbm5lcj8uaHJlZn1cbiAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICBweT17eyBfOiAxNiwgbGc6IDI0IH19XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0NvbnRlbnRDb250YWluZXI+XG4gICAgICAgICAgKX1cbiAgICAgICAgICA8U3VnZ2VzdGlvbkNvbnRhaW5lciAkY29tcGFjdD17ISFzaG93TWFya2V0aW5nQmFubmVyfT5cbiAgICAgICAgICAgIHt2YWx1ZVRyaW1tZWQubGVuZ3RoID4gMCA/IChcbiAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICA8RmxleEJveCBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCIgYXM9XCJ1bFwiIGxpc3RTdHlsZT1cIm5vbmVcIiBwPXswfT5cbiAgICAgICAgICAgICAgICAgIHthdXRvQ29tcGxldGVTdWdnZXN0aW9ucy5tYXAoKHMsIGkpID0+IChcbiAgICAgICAgICAgICAgICAgICAgPElubGluZVJlc3VsdExpXG4gICAgICAgICAgICAgICAgICAgICAga2V5PXtzLnRpdGxlfVxuICAgICAgICAgICAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17KGV2dCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV2dC5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdhdXRvY29tcGxldGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWQgPz8gJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMudGl0bGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ2F1dG9jb21wbGV0ZV9yZXN1bHQnLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWQgPz8gJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hdmlnYXRlVG9TZWFyY2goXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHMudGl0bGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPFNlbWlib2xkU2VhcmNoSWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgbWI9ezIgYXMgMH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9ezE0fVxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlV2lkdGg9ezh9XG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlblxuICAgICAgICAgICAgICAgICAgICAgICAgbXI9ezEyfVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPEhpZ2hsaWdodGVkVGV4dCBzdWdnZXN0aW9uPXtzfSAvPlxuICAgICAgICAgICAgICAgICAgICA8L0lubGluZVJlc3VsdExpPlxuICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgICAgICAgICAgIHsoc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyA9PT0gbnVsbCB8fFxuICAgICAgICAgICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy50b3AubGVuZ3RoID4gMCkgJiYgKFxuICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgPFRleHQgYXM9XCJoMlwiIGZvbnRTaXplPXsyMH0gbWI9ezE2fSBtdD17MjR9PlxuICAgICAgICAgICAgICAgICAgICAgIFRvcCByZXN1bHRzXG4gICAgICAgICAgICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgICAgICAgICAgICAgPEZsZXhCb3hcbiAgICAgICAgICAgICAgICAgICAgICBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICAgICBhcz1cInVsXCJcbiAgICAgICAgICAgICAgICAgICAgICBsaXN0U3R5bGU9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICBwPXswfVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAge3NlYXJjaEFzWW91VHlwZVJlc3VsdHMgPT09IG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgID8gc2VhcmNoQXNZb3VUeXBlTG9hZGVyPy5zaGltbWVyUm93cy5tYXAoKHIpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5saW5lTG9hZGVyTGkga2V5PXtyLmtleX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ci5zaGltbWVycy5tYXAoKHdvcmQpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFNoaW1tZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9ezMwfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB5PXs4IGFzIDB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXt3b3JkLmtleX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD17d29yZC53aWR0aH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJveFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250RmFtaWx5PVwiYWNjZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dENvbG9yPVwidGV4dC1zZWNvbmRhcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250U2l6ZT17eyBfOiAxMCBhcyAxNiB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJDb2xvcj1cImJvcmRlci1zZWNvbmRhcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI9ezF9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1cz1cInhsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHg9ezE2fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5PXswLjF9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZuYnNwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9JbmxpbmVMb2FkZXJMaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy50b3AubWFwKChzLCBpKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPElubGluZVJlc3VsdExpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2Ake1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnF1ZXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OiR7aS50b1N0cmluZygpfWB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJsaW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17KGV2dCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXZ0LmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdzZWFyY2hfYXNfeW91X3R5cGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2x1Zzogcy5zbHVnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKHMuY29udGVudElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8geyBjb250ZW50X2lkOiBzLmNvbnRlbnRJZCB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2FmZWx5UmVkaXJlY3Qocy51cmxQYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdzZWFyY2hfYXNfeW91X3R5cGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbHVnOiBzLnNsdWcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKHMuY29udGVudElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHsgY29udGVudF9pZDogcy5jb250ZW50SWQgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB7fSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYWZlbHlSZWRpcmVjdChzLnVybFBhdGgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SGlnaGxpZ2h0ZWRUZXh0IHN1Z2dlc3Rpb249e3N9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QmFkZ2Ugc2l6ZT1cInNtXCIgdmFyaWFudD1cInRlcnRpYXJ5XCIgbWw9ezEyfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3MudHlwZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQmFkZ2U+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9JbmxpbmVSZXN1bHRMaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgIDwvRmxleEJveD5cbiAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAge3NlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnRvcC5sZW5ndGggPT09IDAgJiYgKFxuICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgPEJveCBmb250U2l6ZT17eyBfOiAyMCwgc206IDI2IH19IG10PXswfSBtYj17NDh9PlxuICAgICAgICAgICAgICAgICAgICAgIHtgV2UgY291bGRuJ3QgZmluZCBhIG1hdGNoIGZvciBgfVxuICAgICAgICAgICAgICAgICAgICAgIDxUZXh0IGZvbnRXZWlnaHQ9XCJib2xkXCI+e2BcIiR7dmFsdWVUcmltbWVkfS5cImB9PC9UZXh0PlxuICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICcgVHJ5IGFub3RoZXIga2V5d29yZCwgb3Igc2VlIHdoYXQgb3VyIG1lbWJlcnMgYXJlIGxlYXJuaW5nLidcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICA8TWVudSBib3JkZXI9XCJub25lXCIgdmFyaWFudD1cInBvcG92ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8UG9wdWxhckNvbnRlbnQgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvTWVudT5cbiAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPE1lbnUgYm9yZGVyPVwibm9uZVwiIHZhcmlhbnQ9XCJwb3BvdmVyXCI+XG4gICAgICAgICAgICAgICAgPFBvcHVsYXJTZWFyY2hlc1xuICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaD17bmF2aWdhdGVUb1NlYXJjaH1cbiAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPFBvcHVsYXJDb250ZW50IG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfSAvPlxuICAgICAgICAgICAgICA8L01lbnU+XG4gICAgICAgICAgICApfVxuXG4gICAgICAgICAgICB7ISFzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy50b3AubGVuZ3RoICYmIChcbiAgICAgICAgICAgICAgPFN0cm9rZUJ1dHRvblxuICAgICAgICAgICAgICAgIG15PXsxNn1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ3ZpZXdfYWxsX3Jlc3VsdHMnLCB7XG4gICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaCh2YWx1ZSwgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWQpO1xuICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgVmlldyBhbGwgcmVzdWx0c1xuICAgICAgICAgICAgICA8L1N0cm9rZUJ1dHRvbj5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8UXVpekFuZEhlbHBDZW50ZXJMaW5rc1xuICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja31cbiAgICAgICAgICAgICAgaGFuZGxlQ2xvc2VEcm9wZG93bj17Y2xvc2VTZWFyY2h9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvU3VnZ2VzdGlvbkNvbnRhaW5lcj5cbiAgICAgICAgPC9Cb3g+XG4gICAgICA8L0ZvY3VzVHJhcD5cbiAgICA8Lz5cbiAgKTtcbn07XG4iXX0= */");
|
|
63
|
+
const StyledInput = /*#__PURE__*/_styled(Input, {
|
|
64
|
+
target: "e1e5b20r4",
|
|
65
|
+
label: "StyledInput"
|
|
66
|
+
})(css({
|
|
67
|
+
outline: `none`,
|
|
68
|
+
'&::placeholder': {
|
|
69
|
+
textColor: theme.colors['text-secondary']
|
|
60
70
|
}
|
|
61
|
-
rect {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
71
|
+
}), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvU2VhcmNoL1NlYXJjaFBhbmUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTJEb0IiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL0FwcEhlYWRlci9TZWFyY2gvU2VhcmNoUGFuZS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYWRnZSxcbiAgQm94LFxuICBDb250ZW50Q29udGFpbmVyLFxuICBGbGV4Qm94LFxuICBGb2N1c1RyYXAsXG4gIEljb25CdXR0b24sXG4gIE1lbnUsXG4gIE1lbnVJdGVtLFxuICBTaGltbWVyLFxuICBTdHJva2VCdXR0b24sXG4gIFRleHQsXG59IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCB7IE1pbmlEZWxldGVJY29uLCBTZWFyY2hJY29uIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtaWNvbnMnO1xuaW1wb3J0IHsgY3NzLCB0aGVtZSwgdXNlQ3VycmVudE1vZGUgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IHVzZUdsb2JhbEhlYWRlckR5bmFtaWNEYXRhQ29udGV4dCB9IGZyb20gJy4uLy4uL0dsb2JhbEhlYWRlci9jb250ZXh0JztcbmltcG9ydCB7IE1hcmtldGluZ0Jhbm5lciB9IGZyb20gJy4uL0FwcEhlYWRlckVsZW1lbnRzL0FwcEhlYWRlckNhdGFsb2dEcm9wZG93bi9NYXJrZXRpbmdCYW5uZXInO1xuaW1wb3J0IHsgdXNlT25Fc2NIYW5kbGVyIH0gZnJvbSAnLi4vc2hhcmVkJztcbmltcG9ydCB7IHNlYXJjaFBsYWNlaG9sZGVyIH0gZnJvbSAnLi9jb25zdHMnO1xuaW1wb3J0IHsgUG9wdWxhckNvbnRlbnQsIFBvcHVsYXJTZWFyY2hlcyB9IGZyb20gJy4vRGVmYXVsdFJlc3VsdHMnO1xuaW1wb3J0IHsgdXNlVXJsQ2hhbmdlRGV0ZWN0aW9uIH0gZnJvbSAnLi9ob29rcy91c2VVcmxDaGFuZ2VEZXRlY3Rpb24nO1xuaW1wb3J0IHsgUXVpekFuZEhlbHBDZW50ZXJMaW5rcyB9IGZyb20gJy4vUXVpekFuZEhlbHBDZW50ZXJMaW5rcyc7XG5pbXBvcnQgeyBzYWZlbHlSZWRpcmVjdCB9IGZyb20gJy4vc2FmZWx5UmVkaXJlY3QnO1xuaW1wb3J0IHsgdXNlU2VhcmNoVHJhY2tpbmdDb250ZXh0IH0gZnJvbSAnLi9TZWFyY2hUcmFja2luZ1Byb3ZpZGVyJztcbmltcG9ydCB7IHNlYXJjaFdvcmtlciB9IGZyb20gJy4vU2VhcmNoV29ya2VyJztcbmltcG9ydCB0eXBlIHtcbiAgQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbixcbiAgU2VhcmNoQXNZb3VUeXBlUmVzdWx0cyxcbn0gZnJvbSAnLi9TZWFyY2hXb3JrZXIvdHlwZXMnO1xuaW1wb3J0IHsgU2VhcmNoUGFuZVByb3BzIH0gZnJvbSAnLi90eXBlcyc7XG5cbmNvbnN0IEZvcm0gPSBCb3gud2l0aENvbXBvbmVudCgnZm9ybScpO1xuY29uc3QgSW5wdXQgPSBCb3gud2l0aENvbXBvbmVudCgnaW5wdXQnKTtcblxuY29uc3QgUXVlcnlDb250YWluZXIgPSBzdHlsZWQoQ29udGVudENvbnRhaW5lcik8eyAkY29tcGFjdD86IGJvb2xlYW4gfT4oXG4gICh7ICRjb21wYWN0IH0pID0+XG4gICAgY3NzKHtcbiAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICBwdDogMTYsXG4gICAgICBwYjogJGNvbXBhY3QgPyB7IF86IDAsIG1kOiA0IH0gOiB7IF86IDAsIG1kOiAyNCB9LFxuICAgICAgcHg6IHsgXzogMjQgfSxcbiAgICB9KVxuKTtcblxuY29uc3QgU3VnZ2VzdGlvbkNvbnRhaW5lciA9IHN0eWxlZChDb250ZW50Q29udGFpbmVyKTx7ICRjb21wYWN0PzogYm9vbGVhbiB9PihcbiAgKHsgJGNvbXBhY3QgfSkgPT5cbiAgICBjc3Moe1xuICAgICAgcHQ6ICRjb21wYWN0ID8gNCA6IDE2LFxuICAgICAgcGI6IHsgXzogMCwgbWQ6IDI0IH0sXG4gICAgICBweDogeyBfOiAyNCB9LFxuICAgIH0pXG4pO1xuXG5jb25zdCBTdHlsZWRJbnB1dCA9IHN0eWxlZChJbnB1dCkoXG4gIGNzcyh7XG4gICAgb3V0bGluZTogYG5vbmVgLFxuICAgICcmOjpwbGFjZWhvbGRlcic6IHtcbiAgICAgIHRleHRDb2xvcjogdGhlbWUuY29sb3JzWyd0ZXh0LXNlY29uZGFyeSddIGFzIG5ldmVyLFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBJbmxpbmVSZXN1bHRMaSA9IHN0eWxlZChNZW51SXRlbSkoXG4gIGNzcyh7XG4gICAgcGw6IDAsXG4gICAgcHk6IDgsXG4gICAgZm9udFNpemU6IDE2LFxuICAgICcmOmZvY3VzLXZpc2libGU6YWZ0ZXInOiB7XG4gICAgICBsZWZ0OiAtNCxcbiAgICB9LFxuICB9KVxuKTtcblxuY29uc3QgSW5saW5lTG9hZGVyTGkgPSBzdHlsZWQubGkoXG4gIGNzcyh7XG4gICAgbGlzdFN0eWxlVHlwZTogJ25vbmUnLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBnYXA6IDEyLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICB9KVxuKTtcblxuZXhwb3J0IGNvbnN0IFNlbWlib2xkU2VhcmNoSWNvbiA9IHN0eWxlZChTZWFyY2hJY29uKWBcbiAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbiAgY2lyY2xlLFxuICBwYXRoIHtcbiAgICBzdHJva2Utd2lkdGg6IDJweDtcbiAgfVxuICByZWN0IHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMnB4LCAtMnB4KTtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSArIDRweCk7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSArIDRweCk7XG4gIH1cbmA7XG5cbmNvbnN0IEVsbGlwc2lzQm94ID0gc3R5bGVkKEJveClgXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuYDtcblxuY29uc3QgSGlnaGxpZ2h0ZWRUZXh0ID0gKHtcbiAgc3VnZ2VzdGlvbjogeyB0aXRsZSwgc2VnbWVudHMgfSxcbn06IHtcbiAgc3VnZ2VzdGlvbjogQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbjtcbn0pID0+IHtcbiAgY29uc3QgbW9kZSA9IHVzZUN1cnJlbnRNb2RlKCk7XG4gIGNvbnN0IGhpZ2hsaWdodENvbG9yID0gbW9kZSA9PT0gJ2RhcmsnID8gJ2h5cGVyJyA6ICd5ZWxsb3cnO1xuXG4gIHJldHVybiAoXG4gICAgPEZsZXhCb3g+XG4gICAgICA8RWxsaXBzaXNCb3hcbiAgICAgICAgbWF4V2lkdGg9XCJjYWxjKDEwMHZ3IC0gMTI4cHgpXCJcbiAgICAgICAgd2hpdGVTcGFjZT1cInByZVwiXG4gICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgIG92ZXJmbG93PVwiaGlkZGVuXCJcbiAgICAgID5cbiAgICAgICAge3NlZ21lbnRzLm1hcCgoc2VnbWVudCwgaSkgPT4gKFxuICAgICAgICAgIDxUZXh0XG4gICAgICAgICAgICBrZXk9e2Ake3RpdGxlfToke2kudG9TdHJpbmcoKX1gfVxuICAgICAgICAgICAgbGluZUhlaWdodD1cInRpdGxlXCJcbiAgICAgICAgICAgIHsuLi4oc2VnbWVudC5oaWdobGlnaHRcbiAgICAgICAgICAgICAgPyB7IGJnOiBoaWdobGlnaHRDb2xvciwgZm9udFdlaWdodDogJ2JvbGQnIH1cbiAgICAgICAgICAgICAgOiB7fSl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3NlZ21lbnQudmFsdWV9XG4gICAgICAgICAgPC9UZXh0PlxuICAgICAgICApKX1cbiAgICAgIDwvRWxsaXBzaXNCb3g+XG4gICAgICA8VGV4dCBzY3JlZW5yZWFkZXI+e3RpdGxlfTwvVGV4dD5cbiAgICA8L0ZsZXhCb3g+XG4gICk7XG59O1xuXG50eXBlIFNlYXJjaEFzWW91VHlwZUxvYWRlciA9IHtcbiAgc2hpbW1lclJvd3M6IHtcbiAgICBrZXk6IHN0cmluZztcbiAgICBzaGltbWVyczoge1xuICAgICAga2V5OiBzdHJpbmc7XG4gICAgICB3aWR0aDogbnVtYmVyO1xuICAgIH1bXTtcbiAgfVtdO1xufTtcblxubGV0IGxvYWRlcktleSA9IDA7XG5mdW5jdGlvbiBybmRMb2FkZXIoKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wbHVzcGx1c1xuICBjb25zdCBrZXkgPSBsb2FkZXJLZXkrKztcbiAgY29uc3QgbG9hZGVyOiBTZWFyY2hBc1lvdVR5cGVMb2FkZXIgPSB7IHNoaW1tZXJSb3dzOiBbXSB9O1xuICBmb3IgKGxldCBpID0gMDsgaSA8IDU7IGkrKykge1xuICAgIGNvbnN0IHJvdyA9IHtcbiAgICAgIGtleTogYCR7a2V5fToke2l9YCxcbiAgICAgIHNoaW1tZXJzOiBbXSBhcyB7IGtleTogc3RyaW5nOyB3aWR0aDogbnVtYmVyIH1bXSxcbiAgICB9O1xuICAgIGNvbnN0IHdvcmRzID0gTWF0aC5jZWlsKE1hdGgucmFuZG9tKCkgKiAzKTtcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IHdvcmRzOyBqKyspIHtcbiAgICAgIGNvbnN0IHdpZHRoID0gMTIgKyBNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkgKiA5Nik7XG4gICAgICByb3cuc2hpbW1lcnMucHVzaCh7XG4gICAgICAgIGtleTogYCR7a2V5fToke2p9YCxcbiAgICAgICAgd2lkdGgsXG4gICAgICB9KTtcbiAgICB9XG4gICAgbG9hZGVyLnNoaW1tZXJSb3dzLnB1c2gocm93KTtcbiAgfVxuICByZXR1cm4gbG9hZGVyO1xufVxuXG5leHBvcnQgY29uc3QgU2VhcmNoUGFuZTogUmVhY3QuRkM8U2VhcmNoUGFuZVByb3BzPiA9ICh7XG4gIG9uU2VhcmNoLFxuICBvblRyYWNraW5nQ2xpY2ssXG4gIHNlYXJjaEJ1dHRvblJlZixcbiAgdG9nZ2xlU2VhcmNoLFxuICBvblNlYXJjaEFzWW91VHlwZSxcbn0pID0+IHtcbiAgY29uc3QgdGhlbWUgPSB1c2VUaGVtZSgpO1xuICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IHVzZVN0YXRlKCcnKTtcbiAgY29uc3QgaW5wdXRSZWYgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IFthdXRvQ29tcGxldGVTdWdnZXN0aW9ucywgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnNdID0gdXNlU3RhdGU8XG4gICAgQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbltdXG4gID4oW10pO1xuICBjb25zdCBbc2VhcmNoQXNZb3VUeXBlUmVzdWx0cywgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0c10gPVxuICAgIHVzZVN0YXRlPFNlYXJjaEFzWW91VHlwZVJlc3VsdHMgfCBudWxsPihudWxsKTtcblxuICBjb25zdCBbc2VhcmNoUmVzdWx0Q2xpY2tlZCwgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgY29uc3QgeyBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyB9ID0gdXNlU2VhcmNoVHJhY2tpbmdDb250ZXh0KCk7XG4gIGNvbnN0IHsgZ2xvYmFsSGVhZGVyRHluYW1pY0RhdGEgfSA9IHVzZUdsb2JhbEhlYWRlckR5bmFtaWNEYXRhQ29udGV4dCgpO1xuXG4gIGNvbnN0IGJhbm5lciA9IGdsb2JhbEhlYWRlckR5bmFtaWNEYXRhPy5jYXRhbG9nRHJvcGRvd24/LmJhbm5lcjtcbiAgY29uc3Qgc2hvd01hcmtldGluZ0Jhbm5lciA9IGJhbm5lcj8udGV4dCAmJiBiYW5uZXI/LmhyZWYgJiYgTWFya2V0aW5nQmFubmVyO1xuXG4gIGNvbnN0IHNlYXJjaEFzWW91VHlwZUxvYWRlciA9IFJlYWN0LnVzZU1lbW8oXG4gICAgKCkgPT4gKHNlYXJjaEFzWW91VHlwZVJlc3VsdHMgPT09IG51bGwgPyBybmRMb2FkZXIoKSA6IG51bGwpLFxuICAgIFtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzXVxuICApO1xuXG4gIGNvbnN0IHZhbHVlVHJpbW1lZCA9IHZhbHVlLnRyaW0oKTtcblxuICBjb25zdCBoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2sgPVxuICAgIG9uU2VhcmNoQXNZb3VUeXBlICYmIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMgJiYgIXNlYXJjaFJlc3VsdENsaWNrZWQ7XG5cbiAgY29uc3QgY2xvc2VTZWFyY2ggPSBhc3luYyAoKSA9PiB7XG4gICAgLy8gdHJhY2sgc2VhcmNoIGV2ZW50IHdoZW4gdXNlciBtYWRlIGEgc2VhcmNoIGFuZCB0aGVuIGNsb3NlZCBzZWFyY2ggcGFuZVxuICAgIGlmIChoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2sgJiYgdmFsdWVUcmltbWVkLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM7XG4gICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSk7XG4gICAgfVxuXG4gICAgYXdhaXQgdG9nZ2xlU2VhcmNoKCk7XG4gICAgLy8gYWRkcyBhIGxpdHRsZSBkZWxheSBiZXR3ZWVuIGNsb3NpbmcgdGhlIHNlYXJjaCBwYW5lIGFuZCBmb2N1c2luZyBvbiB0aGUgYnV0dG9uXG4gICAgLy8gdG8gcHJldmVudCB0aGUgc2VhcmNoIHBhbmUgZnJvbSBpbW1lZGlhdGVseSBvcGVuaW5nIGFnYWluXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAoc2VhcmNoQnV0dG9uUmVmICYmIHNlYXJjaEJ1dHRvblJlZj8uY3VycmVudCkge1xuICAgICAgICBzZWFyY2hCdXR0b25SZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9LCAxMCk7XG4gIH07XG5cbiAgY29uc3Qgb25LZXlEb3duID0gdXNlT25Fc2NIYW5kbGVyKGNsb3NlU2VhcmNoKTtcblxuICBjb25zdCBvbk1vdXNlRG93bk91dHNpZGUgPSAoeyB0YXJnZXQgfTogTW91c2VFdmVudCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZU91dHNpZGVDbGljayA9ICgpID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgIWRvY3VtZW50XG4gICAgICAgICAgLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXRlc3RpZD1cImhlYWRlci1zZWFyY2gtZHJvcGRvd25cIl0nKVxuICAgICAgICAgID8uY29udGFpbnModGFyZ2V0IGFzIEhUTUxFbGVtZW50KSAmJlxuICAgICAgICB0YXJnZXQgIT09IHNlYXJjaEJ1dHRvblJlZj8uY3VycmVudFxuICAgICAgKSB7XG4gICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICB9XG5cbiAgICAgIHRhcmdldD8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGhhbmRsZU91dHNpZGVDbGljayk7XG4gICAgfTtcblxuICAgIHRhcmdldD8uYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGhhbmRsZU91dHNpZGVDbGljayk7XG4gIH07XG5cbiAgY29uc3QgbmF2aWdhdGVUb1NlYXJjaCA9IChzZWFyY2hUZXJtOiBzdHJpbmcsIGZyb21QcmV2U2VhcmNoPzogc3RyaW5nKSA9PiB7XG4gICAgb25TZWFyY2goc2VhcmNoVGVybSwgZnJvbVByZXZTZWFyY2gpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUNoYW5nZTogUmVhY3QuQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxJbnB1dEVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgIHNldFZhbHVlKGV2dC50YXJnZXQudmFsdWUpO1xuICAgIC8vIHJlc2V0IHRvIGZhbHNlIHdoZW4gdGhlIHNlYXJjaCBxdWVyeSBjaGFuZ2VzXG4gICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZChmYWxzZSk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlU3VibWl0OiBSZWFjdC5Gb3JtRXZlbnRIYW5kbGVyID0gKGV2ZW50KSA9PiB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCB3aGVuIHRoZSB1c2VyIHN1Ym1pdHMgdGhlIGZvcm0gdG8gY2FwdHVyZSBjb21wbGV0ZSBxdWVyeVxuICAgIGlmIChoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2spIHtcbiAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM7XG4gICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSk7XG4gICAgfVxuXG4gICAgbmF2aWdhdGVUb1NlYXJjaCh2YWx1ZSwgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWQpO1xuICB9O1xuXG4gIGNvbnN0IGNsZWFySW5wdXQgPSAoKSA9PiB7XG4gICAgLy8gdHJhY2sgc2VhcmNoIGV2ZW50IGJlZm9yZSB1c2VyIGNsZWFycyBpbnB1dFxuICAgIGlmIChoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2sgJiYgdmFsdWVUcmltbWVkLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM7XG4gICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSk7XG4gICAgfVxuXG4gICAgc2V0VmFsdWUoJycpO1xuICAgIHNldEF1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zKFtdKTtcbiAgICAvLyByZXNldCB0aGUgY29udGV4dCB3aXRoIGVtcHR5IHZhbHVlc1xuICAgIHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zKHtcbiAgICAgIHF1ZXJ5OiAnJyxcbiAgICAgIHNlYXJjaElkOiAnJyxcbiAgICAgIHJlc3VsdHNDb3VudDogMCxcbiAgICAgIHF1ZXJ5TG9hZFRpbWU6IDAsXG4gICAgfSk7XG4gIH07XG5cbiAgLy8gd2hlbiB0aGUgY3VycmVudCBVUkwgY2hhbmdlcywgd2Ugd2FudCB0byBjbG9zZSB0aGUgc2VhcmNoIHBhbmUgaWYgaXQncyBvcGVuXG4gIC8vIGFuZCB0cmFjayBzZWFyY2ggZXZlbnQgaWYgdXNlciBtYWRlIGEgc2VhcmNoXG4gIHVzZVVybENoYW5nZURldGVjdGlvbih7XG4gICAgb25VcmxDaGFuZ2U6ICgpID0+IHtcbiAgICAgIGlmIChoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2sgJiYgdmFsdWVUcmltbWVkLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSB9ID1cbiAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSk7XG4gICAgICB9XG5cbiAgICAgIHRvZ2dsZVNlYXJjaCgpO1xuICAgIH0sXG4gIH0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gZG9uJ3QgdHJhY2sgaWYgYSByZXN1bHQgd2FzIGNsaWNrZWQgb3IgaWYgd2UgZG9uJ3QgaGF2ZSBzZWFyY2ggcmVzdWx0c1xuICAgIGlmIChcbiAgICAgIHNlYXJjaFJlc3VsdENsaWNrZWQgfHxcbiAgICAgICFvblNlYXJjaEFzWW91VHlwZSB8fFxuICAgICAgIXNlYXJjaEFzWW91VHlwZVJlc3VsdHMgfHxcbiAgICAgICF2YWx1ZVRyaW1tZWQubGVuZ3RoXG4gICAgKVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZWxlc3MtcmV0dXJuXG4gICAgICByZXR1cm47XG4gIH0sIFtcbiAgICBzZWFyY2hSZXN1bHRDbGlja2VkLFxuICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMsXG4gICAgdmFsdWVUcmltbWVkLFxuICAgIG9uU2VhcmNoQXNZb3VUeXBlLFxuICBdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlucHV0UmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgc2VhcmNoV29ya2VyLmluaXQoKTtcbiAgfSwgW10pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCF2YWx1ZVRyaW1tZWQubGVuZ3RoKSB7XG4gICAgICBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKG51bGwpO1xuICAgICAgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMoe1xuICAgICAgICBxdWVyeTogJycsXG4gICAgICAgIHNlYXJjaElkOiAnJyxcbiAgICAgICAgcmVzdWx0c0NvdW50OiAwLFxuICAgICAgICBxdWVyeUxvYWRUaW1lOiAwLFxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGNhbmNlbCA9IGZhbHNlO1xuICAgIGxldCBjbGVhckF1dG9jb21wbGV0ZSA9IHRydWU7XG4gICAgbGV0IGNsZWFyU2VhcmNoQXNZb3VUeXBlID0gdHJ1ZTtcblxuICAgIGxldCBzZWFyY2hFdmVudE5vUmVzdWx0RGVsYXk6IE5vZGVKUy5UaW1lb3V0O1xuXG4gICAgY29uc3QgbG9hZGVyRGVsYXkgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIC8qXG4gICAgICAgKiBXYWl0IDEwIG1pbGxpc2Vjb25kcyB0byBnZXQgYSByZXNwb25zZSBmb3Igd29ya2VyIGJlZm9yZSBzaG93aW5nIGxvYWRlcnMuXG4gICAgICAgKiBUaGlzIHByZXZlbnRzIGZsaWNrZXJpbmcgbG9hZGVycyBvbiBxdWljayBvciBjYWNoZWQgcmVzdWx0cy5cbiAgICAgICAqL1xuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuO1xuICAgICAgaWYgKGNsZWFyQXV0b2NvbXBsZXRlKSBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhbXSk7XG4gICAgICBpZiAoY2xlYXJTZWFyY2hBc1lvdVR5cGUpIHNldFNlYXJjaEFzWW91VHlwZVJlc3VsdHMobnVsbCk7XG4gICAgfSwgMTApO1xuXG4gICAgc2VhcmNoV29ya2VyLmF1dG9jb21wbGV0ZSh2YWx1ZVRyaW1tZWQpLnRoZW4oKHN1Z2dlc3Rpb25zKSA9PiB7XG4gICAgICBjbGVhckF1dG9jb21wbGV0ZSA9IGZhbHNlO1xuXG4gICAgICBpZiAoY2FuY2VsKSByZXR1cm47IC8vIHRleHQgaGFzIGNoYW5nZWQgc2luY2UgdGhpcyByZXF1ZXN0IHdhcyBtYWRlXG5cbiAgICAgIHNldEF1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zKHN1Z2dlc3Rpb25zKTtcbiAgICB9KTtcblxuICAgIHNlYXJjaFdvcmtlci5zZWFyY2hBc1lvdVR5cGUodmFsdWVUcmltbWVkKS50aGVuKChyZXN1bHRzKSA9PiB7XG4gICAgICBjbGVhclNlYXJjaEFzWW91VHlwZSA9IGZhbHNlO1xuXG4gICAgICBpZiAoY2FuY2VsKSByZXR1cm47IC8vIHRleHQgaGFzIGNoYW5nZWQgc2luY2UgdGhpcyByZXF1ZXN0IHdhcyBtYWRlXG5cbiAgICAgIHNldFNlYXJjaEFzWW91VHlwZVJlc3VsdHMocmVzdWx0cyk7XG5cbiAgICAgIHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zKHtcbiAgICAgICAgcXVlcnk6IHJlc3VsdHMucXVlcnksXG4gICAgICAgIHNlYXJjaElkOiByZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICByZXN1bHRzQ291bnQ6IHJlc3VsdHMudG9wLmxlbmd0aCxcbiAgICAgICAgcXVlcnlMb2FkVGltZTogcmVzdWx0cy5xdWVyeUxvYWRUaW1lLFxuICAgICAgfSk7XG5cbiAgICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCB3aXRoIGEgc21hbGwgZGVsYXkgd2hlbiB0aGVyZSBhcmUgbm8gcmVzdWx0c1xuICAgICAgaWYgKFxuICAgICAgICBvblNlYXJjaEFzWW91VHlwZSAmJlxuICAgICAgICByZXN1bHRzLnRvcC5sZW5ndGggPT09IDAgJiZcbiAgICAgICAgIXNlYXJjaFJlc3VsdENsaWNrZWRcbiAgICAgICkge1xuICAgICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcXVlcnlMb2FkVGltZSB9ID0gcmVzdWx0cztcbiAgICAgICAgc2VhcmNoRXZlbnROb1Jlc3VsdERlbGF5ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgaWYgKCFjYW5jZWwpIHtcbiAgICAgICAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgMCwgcXVlcnlMb2FkVGltZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LCAzMDApO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGNhbmNlbCA9IHRydWU7XG4gICAgICBjbGVhclRpbWVvdXQobG9hZGVyRGVsYXkpO1xuICAgICAgY2xlYXJUaW1lb3V0KHNlYXJjaEV2ZW50Tm9SZXN1bHREZWxheSk7XG4gICAgfTtcbiAgfSwgW1xuICAgIHZhbHVlVHJpbW1lZCxcbiAgICBvblNlYXJjaEFzWW91VHlwZSxcbiAgICBzZWFyY2hSZXN1bHRDbGlja2VkLFxuICAgIHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zLFxuICBdKTtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8Qm94XG4gICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgIGJnPVwic2hhZG93LXNlY29uZGFyeVwiXG4gICAgICAgIGhlaWdodD1cIjEwMHZoXCJcbiAgICAgICAgcG9zaXRpb249XCJmaXhlZFwiXG4gICAgICAgIC8vIFdlIGFkZCA2cmVtIGhlcmUgaW4gY2FzZSB0aGVyZSdzIHNvbWUgc29ydCBvZiBicmFuZGVkIGJhbm5lciBhYm92ZSBzZWFyY2hcbiAgICAgICAgLy8gVGhlIHNlYXJjaCBhcmVhIGlzIG11Y2ggdGFsbGVyIHRoYW4gNnJlbSBzbyB0aGlzIGlzIGEgc2FmZSBhbW91bnQgb2YgcGFkZGluZ1xuICAgICAgICB0b3A9e2BjYWxjKCR7dGhlbWUuZWxlbWVudHMuaGVhZGVySGVpZ2h0fSArIDZyZW0pYH1cbiAgICAgICAgd2lkdGg9ezF9XG4gICAgICAvPlxuICAgICAgPEZvY3VzVHJhcFxuICAgICAgICBvbkVzY2FwZUtleT17Y2xvc2VTZWFyY2h9XG4gICAgICAgIG9uQ2xpY2tPdXRzaWRlPXtvbk1vdXNlRG93bk91dHNpZGV9XG4gICAgICAgIGFsbG93UGFnZUludGVyYWN0aW9uXG4gICAgICA+XG4gICAgICAgIDxCb3hcbiAgICAgICAgICBiZz1cImJhY2tncm91bmRcIlxuICAgICAgICAgIGJvcmRlckNvbG9yQm90dG9tPVwiYm9yZGVyLXByaW1hcnlcIlxuICAgICAgICAgIGJvcmRlckNvbG9yVG9wPVwiYm9yZGVyLXRlcnRpYXJ5XCJcbiAgICAgICAgICBib3JkZXJTdHlsZT1cInNvbGlkXCJcbiAgICAgICAgICBib3JkZXJXaWR0aD1cIjJweCAwIDFweFwiXG4gICAgICAgICAgZGF0YS10ZXN0aWQ9XCJoZWFkZXItc2VhcmNoLWRyb3Bkb3duXCJcbiAgICAgICAgICBwb3NpdGlvbj17eyBfOiAnZml4ZWQnLCBtZDogJ2Fic29sdXRlJyB9fVxuICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgbWF4SGVpZ2h0PXt7IF86ICdjYWxjKDEwMHZoIC0gNjNweCknLCBtZDogJ2NhbGMoMTAwdmggLSA4MHB4KScgfX1cbiAgICAgICAgICBvdmVyZmxvdz1cImF1dG9cIlxuICAgICAgICAgIHpJbmRleD17MTB9IC8vIGVuc3VyZSBkcm9wZG93biBpcyBhYm92ZSB0aGUgcGFnZSBjb250ZW50XG4gICAgICAgID5cbiAgICAgICAgICA8Qm94IGJvcmRlcj1cIm5vbmVcIiB3aWR0aD1cImF1dG9cIj5cbiAgICAgICAgICAgIDxRdWVyeUNvbnRhaW5lciAkY29tcGFjdD17ISFzaG93TWFya2V0aW5nQmFubmVyfT5cbiAgICAgICAgICAgICAgPEZsZXhCb3hcbiAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiYmFzZWxpbmVcIlxuICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yPVwiZ3JheS02MDBcIlxuICAgICAgICAgICAgICAgIGJvcmRlclN0eWxlQm90dG9tPVwic29saWRcIlxuICAgICAgICAgICAgICAgIGJvcmRlcldpZHRoQm90dG9tPVwiMXB4XCJcbiAgICAgICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFNlYXJjaEljb25cbiAgICAgICAgICAgICAgICAgIGhlaWdodD17eyBfOiAyMCwgbWQ6IDI0IH19XG4gICAgICAgICAgICAgICAgICB3aWR0aD17eyBfOiAyMCwgbWQ6IDI0IH19XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8Rm9ybVxuICAgICAgICAgICAgICAgICAgYWN0aW9uPVwiL3NlYXJjaFwiXG4gICAgICAgICAgICAgICAgICBpZD1cInNlYXJjaC1mb3JtXCJcbiAgICAgICAgICAgICAgICAgIG1sPXs4fVxuICAgICAgICAgICAgICAgICAgb25TdWJtaXQ9e2hhbmRsZVN1Ym1pdH1cbiAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPFN0eWxlZElucHV0XG4gICAgICAgICAgICAgICAgICAgIGF1dG9Gb2N1c1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcj1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICBmb250U2l6ZT17eyBfOiAyMCwgbWQ6IDI2IH19XG4gICAgICAgICAgICAgICAgICAgIGZvbnRXZWlnaHQ9XCJib2xkXCJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJoZWFkZXItc2VhcmNoLWJhclwiXG4gICAgICAgICAgICAgICAgICAgIG5hbWU9XCJxdWVyeVwiXG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVDaGFuZ2V9XG4gICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17KGUpID0+IG9uS2V5RG93bihlKX1cbiAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e3NlYXJjaFBsYWNlaG9sZGVyfVxuICAgICAgICAgICAgICAgICAgICByZWY9e2lucHV0UmVmfVxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwic2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgICAgICAgICBhdXRvQ29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L0Zvcm0+XG4gICAgICAgICAgICAgICAgPEljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgIGljb249e01pbmlEZWxldGVJY29ufVxuICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkNsZWFyIHNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICB0aXA9XCJDbGVhciBzZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgdGlwUHJvcHM9e3tcbiAgICAgICAgICAgICAgICAgICAgYWxpZ25tZW50OiAnYm90dG9tLWNlbnRlcicsXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudDogJ2Zsb2F0aW5nJyxcbiAgICAgICAgICAgICAgICAgICAgbmFycm93OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICB6SW5kZXg6IDIsXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17Y2xlYXJJbnB1dH1cbiAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgICAgICAgPC9RdWVyeUNvbnRhaW5lcj5cbiAgICAgICAgICA8L0JveD5cbiAgICAgICAgICB7c2hvd01hcmtldGluZ0Jhbm5lciAmJiAoXG4gICAgICAgICAgICA8Q29udGVudENvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPE1hcmtldGluZ0Jhbm5lclxuICAgICAgICAgICAgICAgIHNvdXJjZT1cInNlYXJjaFwiXG4gICAgICAgICAgICAgICAgdGV4dD17YmFubmVyPy50ZXh0fVxuICAgICAgICAgICAgICAgIGhyZWY9e2Jhbm5lcj8uaHJlZn1cbiAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICBweT17eyBfOiAxNiwgbGc6IDI0IH19XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0NvbnRlbnRDb250YWluZXI+XG4gICAgICAgICAgKX1cbiAgICAgICAgICA8U3VnZ2VzdGlvbkNvbnRhaW5lciAkY29tcGFjdD17ISFzaG93TWFya2V0aW5nQmFubmVyfT5cbiAgICAgICAgICAgIHt2YWx1ZVRyaW1tZWQubGVuZ3RoID4gMCA/IChcbiAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICA8RmxleEJveCBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCIgYXM9XCJ1bFwiIGxpc3RTdHlsZT1cIm5vbmVcIiBwPXswfT5cbiAgICAgICAgICAgICAgICAgIHthdXRvQ29tcGxldGVTdWdnZXN0aW9ucy5tYXAoKHMsIGkpID0+IChcbiAgICAgICAgICAgICAgICAgICAgPElubGluZVJlc3VsdExpXG4gICAgICAgICAgICAgICAgICAgICAga2V5PXtzLnRpdGxlfVxuICAgICAgICAgICAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17KGV2dCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV2dC5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdhdXRvY29tcGxldGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWQgPz8gJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMudGl0bGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ2F1dG9jb21wbGV0ZV9yZXN1bHQnLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWQgPz8gJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hdmlnYXRlVG9TZWFyY2goXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHMudGl0bGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPFNlbWlib2xkU2VhcmNoSWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgbWI9ezIgYXMgMH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9ezE0fVxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlV2lkdGg9ezh9XG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlblxuICAgICAgICAgICAgICAgICAgICAgICAgbXI9ezEyfVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPEhpZ2hsaWdodGVkVGV4dCBzdWdnZXN0aW9uPXtzfSAvPlxuICAgICAgICAgICAgICAgICAgICA8L0lubGluZVJlc3VsdExpPlxuICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgICAgICAgICAgIHsoc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyA9PT0gbnVsbCB8fFxuICAgICAgICAgICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy50b3AubGVuZ3RoID4gMCkgJiYgKFxuICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgPFRleHQgYXM9XCJoMlwiIGZvbnRTaXplPXsyMH0gbWI9ezE2fSBtdD17MjR9PlxuICAgICAgICAgICAgICAgICAgICAgIFRvcCByZXN1bHRzXG4gICAgICAgICAgICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgICAgICAgICAgICAgPEZsZXhCb3hcbiAgICAgICAgICAgICAgICAgICAgICBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICAgICBhcz1cInVsXCJcbiAgICAgICAgICAgICAgICAgICAgICBsaXN0U3R5bGU9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICBwPXswfVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAge3NlYXJjaEFzWW91VHlwZVJlc3VsdHMgPT09IG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgID8gc2VhcmNoQXNZb3VUeXBlTG9hZGVyPy5zaGltbWVyUm93cy5tYXAoKHIpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5saW5lTG9hZGVyTGkga2V5PXtyLmtleX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ci5zaGltbWVycy5tYXAoKHdvcmQpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFNoaW1tZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9ezMwfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB5PXs4IGFzIDB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXt3b3JkLmtleX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD17d29yZC53aWR0aH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJveFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250RmFtaWx5PVwiYWNjZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dENvbG9yPVwidGV4dC1zZWNvbmRhcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250U2l6ZT17eyBfOiAxMCBhcyAxNiB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJDb2xvcj1cImJvcmRlci1zZWNvbmRhcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI9ezF9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1cz1cInhsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHg9ezE2fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5PXswLjF9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZuYnNwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9JbmxpbmVMb2FkZXJMaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy50b3AubWFwKChzLCBpKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPElubGluZVJlc3VsdExpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2Ake1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnF1ZXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OiR7aS50b1N0cmluZygpfWB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJsaW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17KGV2dCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXZ0LmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdzZWFyY2hfYXNfeW91X3R5cGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2x1Zzogcy5zbHVnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKHMuY29udGVudElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8geyBjb250ZW50X2lkOiBzLmNvbnRlbnRJZCB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2FmZWx5UmVkaXJlY3Qocy51cmxQYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdzZWFyY2hfYXNfeW91X3R5cGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbHVnOiBzLnNsdWcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKHMuY29udGVudElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHsgY29udGVudF9pZDogcy5jb250ZW50SWQgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB7fSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYWZlbHlSZWRpcmVjdChzLnVybFBhdGgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SGlnaGxpZ2h0ZWRUZXh0IHN1Z2dlc3Rpb249e3N9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QmFkZ2Ugc2l6ZT1cInNtXCIgdmFyaWFudD1cInRlcnRpYXJ5XCIgbWw9ezEyfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3MudHlwZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQmFkZ2U+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9JbmxpbmVSZXN1bHRMaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgIDwvRmxleEJveD5cbiAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAge3NlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnRvcC5sZW5ndGggPT09IDAgJiYgKFxuICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgPEJveCBmb250U2l6ZT17eyBfOiAyMCwgc206IDI2IH19IG10PXswfSBtYj17NDh9PlxuICAgICAgICAgICAgICAgICAgICAgIHtgV2UgY291bGRuJ3QgZmluZCBhIG1hdGNoIGZvciBgfVxuICAgICAgICAgICAgICAgICAgICAgIDxUZXh0IGZvbnRXZWlnaHQ9XCJib2xkXCI+e2BcIiR7dmFsdWVUcmltbWVkfS5cImB9PC9UZXh0PlxuICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICcgVHJ5IGFub3RoZXIga2V5d29yZCwgb3Igc2VlIHdoYXQgb3VyIG1lbWJlcnMgYXJlIGxlYXJuaW5nLidcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICA8TWVudSBib3JkZXI9XCJub25lXCIgdmFyaWFudD1cInBvcG92ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8UG9wdWxhckNvbnRlbnQgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvTWVudT5cbiAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPE1lbnUgYm9yZGVyPVwibm9uZVwiIHZhcmlhbnQ9XCJwb3BvdmVyXCI+XG4gICAgICAgICAgICAgICAgPFBvcHVsYXJTZWFyY2hlc1xuICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaD17bmF2aWdhdGVUb1NlYXJjaH1cbiAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPFBvcHVsYXJDb250ZW50IG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfSAvPlxuICAgICAgICAgICAgICA8L01lbnU+XG4gICAgICAgICAgICApfVxuXG4gICAgICAgICAgICB7ISFzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy50b3AubGVuZ3RoICYmIChcbiAgICAgICAgICAgICAgPFN0cm9rZUJ1dHRvblxuICAgICAgICAgICAgICAgIG15PXsxNn1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ3ZpZXdfYWxsX3Jlc3VsdHMnLCB7XG4gICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaCh2YWx1ZSwgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWQpO1xuICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgVmlldyBhbGwgcmVzdWx0c1xuICAgICAgICAgICAgICA8L1N0cm9rZUJ1dHRvbj5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8UXVpekFuZEhlbHBDZW50ZXJMaW5rc1xuICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja31cbiAgICAgICAgICAgICAgaGFuZGxlQ2xvc2VEcm9wZG93bj17Y2xvc2VTZWFyY2h9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvU3VnZ2VzdGlvbkNvbnRhaW5lcj5cbiAgICAgICAgPC9Cb3g+XG4gICAgICA8L0ZvY3VzVHJhcD5cbiAgICA8Lz5cbiAgKTtcbn07XG4iXX0= */");
|
|
72
|
+
const InlineResultLi = /*#__PURE__*/_styled(MenuItem, {
|
|
73
|
+
target: "e1e5b20r3",
|
|
74
|
+
label: "InlineResultLi"
|
|
75
|
+
})(css({
|
|
76
|
+
pl: 0,
|
|
77
|
+
py: 8,
|
|
78
|
+
fontSize: 16,
|
|
79
|
+
'&:focus-visible:after': {
|
|
80
|
+
left: -4
|
|
65
81
|
}
|
|
66
|
-
`;
|
|
67
|
-
const
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
"aria-hidden": true,
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
}, `${title}:${i.toString()}`))
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
82
|
+
}), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvU2VhcmNoL1NlYXJjaFBhbmUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9FdUIiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL0FwcEhlYWRlci9TZWFyY2gvU2VhcmNoUGFuZS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYWRnZSxcbiAgQm94LFxuICBDb250ZW50Q29udGFpbmVyLFxuICBGbGV4Qm94LFxuICBGb2N1c1RyYXAsXG4gIEljb25CdXR0b24sXG4gIE1lbnUsXG4gIE1lbnVJdGVtLFxuICBTaGltbWVyLFxuICBTdHJva2VCdXR0b24sXG4gIFRleHQsXG59IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCB7IE1pbmlEZWxldGVJY29uLCBTZWFyY2hJY29uIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtaWNvbnMnO1xuaW1wb3J0IHsgY3NzLCB0aGVtZSwgdXNlQ3VycmVudE1vZGUgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IHVzZUdsb2JhbEhlYWRlckR5bmFtaWNEYXRhQ29udGV4dCB9IGZyb20gJy4uLy4uL0dsb2JhbEhlYWRlci9jb250ZXh0JztcbmltcG9ydCB7IE1hcmtldGluZ0Jhbm5lciB9IGZyb20gJy4uL0FwcEhlYWRlckVsZW1lbnRzL0FwcEhlYWRlckNhdGFsb2dEcm9wZG93bi9NYXJrZXRpbmdCYW5uZXInO1xuaW1wb3J0IHsgdXNlT25Fc2NIYW5kbGVyIH0gZnJvbSAnLi4vc2hhcmVkJztcbmltcG9ydCB7IHNlYXJjaFBsYWNlaG9sZGVyIH0gZnJvbSAnLi9jb25zdHMnO1xuaW1wb3J0IHsgUG9wdWxhckNvbnRlbnQsIFBvcHVsYXJTZWFyY2hlcyB9IGZyb20gJy4vRGVmYXVsdFJlc3VsdHMnO1xuaW1wb3J0IHsgdXNlVXJsQ2hhbmdlRGV0ZWN0aW9uIH0gZnJvbSAnLi9ob29rcy91c2VVcmxDaGFuZ2VEZXRlY3Rpb24nO1xuaW1wb3J0IHsgUXVpekFuZEhlbHBDZW50ZXJMaW5rcyB9IGZyb20gJy4vUXVpekFuZEhlbHBDZW50ZXJMaW5rcyc7XG5pbXBvcnQgeyBzYWZlbHlSZWRpcmVjdCB9IGZyb20gJy4vc2FmZWx5UmVkaXJlY3QnO1xuaW1wb3J0IHsgdXNlU2VhcmNoVHJhY2tpbmdDb250ZXh0IH0gZnJvbSAnLi9TZWFyY2hUcmFja2luZ1Byb3ZpZGVyJztcbmltcG9ydCB7IHNlYXJjaFdvcmtlciB9IGZyb20gJy4vU2VhcmNoV29ya2VyJztcbmltcG9ydCB0eXBlIHtcbiAgQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbixcbiAgU2VhcmNoQXNZb3VUeXBlUmVzdWx0cyxcbn0gZnJvbSAnLi9TZWFyY2hXb3JrZXIvdHlwZXMnO1xuaW1wb3J0IHsgU2VhcmNoUGFuZVByb3BzIH0gZnJvbSAnLi90eXBlcyc7XG5cbmNvbnN0IEZvcm0gPSBCb3gud2l0aENvbXBvbmVudCgnZm9ybScpO1xuY29uc3QgSW5wdXQgPSBCb3gud2l0aENvbXBvbmVudCgnaW5wdXQnKTtcblxuY29uc3QgUXVlcnlDb250YWluZXIgPSBzdHlsZWQoQ29udGVudENvbnRhaW5lcik8eyAkY29tcGFjdD86IGJvb2xlYW4gfT4oXG4gICh7ICRjb21wYWN0IH0pID0+XG4gICAgY3NzKHtcbiAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICBwdDogMTYsXG4gICAgICBwYjogJGNvbXBhY3QgPyB7IF86IDAsIG1kOiA0IH0gOiB7IF86IDAsIG1kOiAyNCB9LFxuICAgICAgcHg6IHsgXzogMjQgfSxcbiAgICB9KVxuKTtcblxuY29uc3QgU3VnZ2VzdGlvbkNvbnRhaW5lciA9IHN0eWxlZChDb250ZW50Q29udGFpbmVyKTx7ICRjb21wYWN0PzogYm9vbGVhbiB9PihcbiAgKHsgJGNvbXBhY3QgfSkgPT5cbiAgICBjc3Moe1xuICAgICAgcHQ6ICRjb21wYWN0ID8gNCA6IDE2LFxuICAgICAgcGI6IHsgXzogMCwgbWQ6IDI0IH0sXG4gICAgICBweDogeyBfOiAyNCB9LFxuICAgIH0pXG4pO1xuXG5jb25zdCBTdHlsZWRJbnB1dCA9IHN0eWxlZChJbnB1dCkoXG4gIGNzcyh7XG4gICAgb3V0bGluZTogYG5vbmVgLFxuICAgICcmOjpwbGFjZWhvbGRlcic6IHtcbiAgICAgIHRleHRDb2xvcjogdGhlbWUuY29sb3JzWyd0ZXh0LXNlY29uZGFyeSddIGFzIG5ldmVyLFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBJbmxpbmVSZXN1bHRMaSA9IHN0eWxlZChNZW51SXRlbSkoXG4gIGNzcyh7XG4gICAgcGw6IDAsXG4gICAgcHk6IDgsXG4gICAgZm9udFNpemU6IDE2LFxuICAgICcmOmZvY3VzLXZpc2libGU6YWZ0ZXInOiB7XG4gICAgICBsZWZ0OiAtNCxcbiAgICB9LFxuICB9KVxuKTtcblxuY29uc3QgSW5saW5lTG9hZGVyTGkgPSBzdHlsZWQubGkoXG4gIGNzcyh7XG4gICAgbGlzdFN0eWxlVHlwZTogJ25vbmUnLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBnYXA6IDEyLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICB9KVxuKTtcblxuZXhwb3J0IGNvbnN0IFNlbWlib2xkU2VhcmNoSWNvbiA9IHN0eWxlZChTZWFyY2hJY29uKWBcbiAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbiAgY2lyY2xlLFxuICBwYXRoIHtcbiAgICBzdHJva2Utd2lkdGg6IDJweDtcbiAgfVxuICByZWN0IHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMnB4LCAtMnB4KTtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSArIDRweCk7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSArIDRweCk7XG4gIH1cbmA7XG5cbmNvbnN0IEVsbGlwc2lzQm94ID0gc3R5bGVkKEJveClgXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuYDtcblxuY29uc3QgSGlnaGxpZ2h0ZWRUZXh0ID0gKHtcbiAgc3VnZ2VzdGlvbjogeyB0aXRsZSwgc2VnbWVudHMgfSxcbn06IHtcbiAgc3VnZ2VzdGlvbjogQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbjtcbn0pID0+IHtcbiAgY29uc3QgbW9kZSA9IHVzZUN1cnJlbnRNb2RlKCk7XG4gIGNvbnN0IGhpZ2hsaWdodENvbG9yID0gbW9kZSA9PT0gJ2RhcmsnID8gJ2h5cGVyJyA6ICd5ZWxsb3cnO1xuXG4gIHJldHVybiAoXG4gICAgPEZsZXhCb3g+XG4gICAgICA8RWxsaXBzaXNCb3hcbiAgICAgICAgbWF4V2lkdGg9XCJjYWxjKDEwMHZ3IC0gMTI4cHgpXCJcbiAgICAgICAgd2hpdGVTcGFjZT1cInByZVwiXG4gICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgIG92ZXJmbG93PVwiaGlkZGVuXCJcbiAgICAgID5cbiAgICAgICAge3NlZ21lbnRzLm1hcCgoc2VnbWVudCwgaSkgPT4gKFxuICAgICAgICAgIDxUZXh0XG4gICAgICAgICAgICBrZXk9e2Ake3RpdGxlfToke2kudG9TdHJpbmcoKX1gfVxuICAgICAgICAgICAgbGluZUhlaWdodD1cInRpdGxlXCJcbiAgICAgICAgICAgIHsuLi4oc2VnbWVudC5oaWdobGlnaHRcbiAgICAgICAgICAgICAgPyB7IGJnOiBoaWdobGlnaHRDb2xvciwgZm9udFdlaWdodDogJ2JvbGQnIH1cbiAgICAgICAgICAgICAgOiB7fSl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3NlZ21lbnQudmFsdWV9XG4gICAgICAgICAgPC9UZXh0PlxuICAgICAgICApKX1cbiAgICAgIDwvRWxsaXBzaXNCb3g+XG4gICAgICA8VGV4dCBzY3JlZW5yZWFkZXI+e3RpdGxlfTwvVGV4dD5cbiAgICA8L0ZsZXhCb3g+XG4gICk7XG59O1xuXG50eXBlIFNlYXJjaEFzWW91VHlwZUxvYWRlciA9IHtcbiAgc2hpbW1lclJvd3M6IHtcbiAgICBrZXk6IHN0cmluZztcbiAgICBzaGltbWVyczoge1xuICAgICAga2V5OiBzdHJpbmc7XG4gICAgICB3aWR0aDogbnVtYmVyO1xuICAgIH1bXTtcbiAgfVtdO1xufTtcblxubGV0IGxvYWRlcktleSA9IDA7XG5mdW5jdGlvbiBybmRMb2FkZXIoKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wbHVzcGx1c1xuICBjb25zdCBrZXkgPSBsb2FkZXJLZXkrKztcbiAgY29uc3QgbG9hZGVyOiBTZWFyY2hBc1lvdVR5cGVMb2FkZXIgPSB7IHNoaW1tZXJSb3dzOiBbXSB9O1xuICBmb3IgKGxldCBpID0gMDsgaSA8IDU7IGkrKykge1xuICAgIGNvbnN0IHJvdyA9IHtcbiAgICAgIGtleTogYCR7a2V5fToke2l9YCxcbiAgICAgIHNoaW1tZXJzOiBbXSBhcyB7IGtleTogc3RyaW5nOyB3aWR0aDogbnVtYmVyIH1bXSxcbiAgICB9O1xuICAgIGNvbnN0IHdvcmRzID0gTWF0aC5jZWlsKE1hdGgucmFuZG9tKCkgKiAzKTtcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IHdvcmRzOyBqKyspIHtcbiAgICAgIGNvbnN0IHdpZHRoID0gMTIgKyBNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkgKiA5Nik7XG4gICAgICByb3cuc2hpbW1lcnMucHVzaCh7XG4gICAgICAgIGtleTogYCR7a2V5fToke2p9YCxcbiAgICAgICAgd2lkdGgsXG4gICAgICB9KTtcbiAgICB9XG4gICAgbG9hZGVyLnNoaW1tZXJSb3dzLnB1c2gocm93KTtcbiAgfVxuICByZXR1cm4gbG9hZGVyO1xufVxuXG5leHBvcnQgY29uc3QgU2VhcmNoUGFuZTogUmVhY3QuRkM8U2VhcmNoUGFuZVByb3BzPiA9ICh7XG4gIG9uU2VhcmNoLFxuICBvblRyYWNraW5nQ2xpY2ssXG4gIHNlYXJjaEJ1dHRvblJlZixcbiAgdG9nZ2xlU2VhcmNoLFxuICBvblNlYXJjaEFzWW91VHlwZSxcbn0pID0+IHtcbiAgY29uc3QgdGhlbWUgPSB1c2VUaGVtZSgpO1xuICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IHVzZVN0YXRlKCcnKTtcbiAgY29uc3QgaW5wdXRSZWYgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IFthdXRvQ29tcGxldGVTdWdnZXN0aW9ucywgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnNdID0gdXNlU3RhdGU8XG4gICAgQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbltdXG4gID4oW10pO1xuICBjb25zdCBbc2VhcmNoQXNZb3VUeXBlUmVzdWx0cywgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0c10gPVxuICAgIHVzZVN0YXRlPFNlYXJjaEFzWW91VHlwZVJlc3VsdHMgfCBudWxsPihudWxsKTtcblxuICBjb25zdCBbc2VhcmNoUmVzdWx0Q2xpY2tlZCwgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgY29uc3QgeyBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyB9ID0gdXNlU2VhcmNoVHJhY2tpbmdDb250ZXh0KCk7XG4gIGNvbnN0IHsgZ2xvYmFsSGVhZGVyRHluYW1pY0RhdGEgfSA9IHVzZUdsb2JhbEhlYWRlckR5bmFtaWNEYXRhQ29udGV4dCgpO1xuXG4gIGNvbnN0IGJhbm5lciA9IGdsb2JhbEhlYWRlckR5bmFtaWNEYXRhPy5jYXRhbG9nRHJvcGRvd24/LmJhbm5lcjtcbiAgY29uc3Qgc2hvd01hcmtldGluZ0Jhbm5lciA9IGJhbm5lcj8udGV4dCAmJiBiYW5uZXI/LmhyZWYgJiYgTWFya2V0aW5nQmFubmVyO1xuXG4gIGNvbnN0IHNlYXJjaEFzWW91VHlwZUxvYWRlciA9IFJlYWN0LnVzZU1lbW8oXG4gICAgKCkgPT4gKHNlYXJjaEFzWW91VHlwZVJlc3VsdHMgPT09IG51bGwgPyBybmRMb2FkZXIoKSA6IG51bGwpLFxuICAgIFtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzXVxuICApO1xuXG4gIGNvbnN0IHZhbHVlVHJpbW1lZCA9IHZhbHVlLnRyaW0oKTtcblxuICBjb25zdCBoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2sgPVxuICAgIG9uU2VhcmNoQXNZb3VUeXBlICYmIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMgJiYgIXNlYXJjaFJlc3VsdENsaWNrZWQ7XG5cbiAgY29uc3QgY2xvc2VTZWFyY2ggPSBhc3luYyAoKSA9PiB7XG4gICAgLy8gdHJhY2sgc2VhcmNoIGV2ZW50IHdoZW4gdXNlciBtYWRlIGEgc2VhcmNoIGFuZCB0aGVuIGNsb3NlZCBzZWFyY2ggcGFuZVxuICAgIGlmIChoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2sgJiYgdmFsdWVUcmltbWVkLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM7XG4gICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSk7XG4gICAgfVxuXG4gICAgYXdhaXQgdG9nZ2xlU2VhcmNoKCk7XG4gICAgLy8gYWRkcyBhIGxpdHRsZSBkZWxheSBiZXR3ZWVuIGNsb3NpbmcgdGhlIHNlYXJjaCBwYW5lIGFuZCBmb2N1c2luZyBvbiB0aGUgYnV0dG9uXG4gICAgLy8gdG8gcHJldmVudCB0aGUgc2VhcmNoIHBhbmUgZnJvbSBpbW1lZGlhdGVseSBvcGVuaW5nIGFnYWluXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAoc2VhcmNoQnV0dG9uUmVmICYmIHNlYXJjaEJ1dHRvblJlZj8uY3VycmVudCkge1xuICAgICAgICBzZWFyY2hCdXR0b25SZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9LCAxMCk7XG4gIH07XG5cbiAgY29uc3Qgb25LZXlEb3duID0gdXNlT25Fc2NIYW5kbGVyKGNsb3NlU2VhcmNoKTtcblxuICBjb25zdCBvbk1vdXNlRG93bk91dHNpZGUgPSAoeyB0YXJnZXQgfTogTW91c2VFdmVudCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZU91dHNpZGVDbGljayA9ICgpID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgIWRvY3VtZW50XG4gICAgICAgICAgLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXRlc3RpZD1cImhlYWRlci1zZWFyY2gtZHJvcGRvd25cIl0nKVxuICAgICAgICAgID8uY29udGFpbnModGFyZ2V0IGFzIEhUTUxFbGVtZW50KSAmJlxuICAgICAgICB0YXJnZXQgIT09IHNlYXJjaEJ1dHRvblJlZj8uY3VycmVudFxuICAgICAgKSB7XG4gICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICB9XG5cbiAgICAgIHRhcmdldD8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGhhbmRsZU91dHNpZGVDbGljayk7XG4gICAgfTtcblxuICAgIHRhcmdldD8uYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGhhbmRsZU91dHNpZGVDbGljayk7XG4gIH07XG5cbiAgY29uc3QgbmF2aWdhdGVUb1NlYXJjaCA9IChzZWFyY2hUZXJtOiBzdHJpbmcsIGZyb21QcmV2U2VhcmNoPzogc3RyaW5nKSA9PiB7XG4gICAgb25TZWFyY2goc2VhcmNoVGVybSwgZnJvbVByZXZTZWFyY2gpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUNoYW5nZTogUmVhY3QuQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxJbnB1dEVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgIHNldFZhbHVlKGV2dC50YXJnZXQudmFsdWUpO1xuICAgIC8vIHJlc2V0IHRvIGZhbHNlIHdoZW4gdGhlIHNlYXJjaCBxdWVyeSBjaGFuZ2VzXG4gICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZChmYWxzZSk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlU3VibWl0OiBSZWFjdC5Gb3JtRXZlbnRIYW5kbGVyID0gKGV2ZW50KSA9PiB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCB3aGVuIHRoZSB1c2VyIHN1Ym1pdHMgdGhlIGZvcm0gdG8gY2FwdHVyZSBjb21wbGV0ZSBxdWVyeVxuICAgIGlmIChoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2spIHtcbiAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM7XG4gICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSk7XG4gICAgfVxuXG4gICAgbmF2aWdhdGVUb1NlYXJjaCh2YWx1ZSwgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWQpO1xuICB9O1xuXG4gIGNvbnN0IGNsZWFySW5wdXQgPSAoKSA9PiB7XG4gICAgLy8gdHJhY2sgc2VhcmNoIGV2ZW50IGJlZm9yZSB1c2VyIGNsZWFycyBpbnB1dFxuICAgIGlmIChoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2sgJiYgdmFsdWVUcmltbWVkLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM7XG4gICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSk7XG4gICAgfVxuXG4gICAgc2V0VmFsdWUoJycpO1xuICAgIHNldEF1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zKFtdKTtcbiAgICAvLyByZXNldCB0aGUgY29udGV4dCB3aXRoIGVtcHR5IHZhbHVlc1xuICAgIHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zKHtcbiAgICAgIHF1ZXJ5OiAnJyxcbiAgICAgIHNlYXJjaElkOiAnJyxcbiAgICAgIHJlc3VsdHNDb3VudDogMCxcbiAgICAgIHF1ZXJ5TG9hZFRpbWU6IDAsXG4gICAgfSk7XG4gIH07XG5cbiAgLy8gd2hlbiB0aGUgY3VycmVudCBVUkwgY2hhbmdlcywgd2Ugd2FudCB0byBjbG9zZSB0aGUgc2VhcmNoIHBhbmUgaWYgaXQncyBvcGVuXG4gIC8vIGFuZCB0cmFjayBzZWFyY2ggZXZlbnQgaWYgdXNlciBtYWRlIGEgc2VhcmNoXG4gIHVzZVVybENoYW5nZURldGVjdGlvbih7XG4gICAgb25VcmxDaGFuZ2U6ICgpID0+IHtcbiAgICAgIGlmIChoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2sgJiYgdmFsdWVUcmltbWVkLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSB9ID1cbiAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSk7XG4gICAgICB9XG5cbiAgICAgIHRvZ2dsZVNlYXJjaCgpO1xuICAgIH0sXG4gIH0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gZG9uJ3QgdHJhY2sgaWYgYSByZXN1bHQgd2FzIGNsaWNrZWQgb3IgaWYgd2UgZG9uJ3QgaGF2ZSBzZWFyY2ggcmVzdWx0c1xuICAgIGlmIChcbiAgICAgIHNlYXJjaFJlc3VsdENsaWNrZWQgfHxcbiAgICAgICFvblNlYXJjaEFzWW91VHlwZSB8fFxuICAgICAgIXNlYXJjaEFzWW91VHlwZVJlc3VsdHMgfHxcbiAgICAgICF2YWx1ZVRyaW1tZWQubGVuZ3RoXG4gICAgKVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZWxlc3MtcmV0dXJuXG4gICAgICByZXR1cm47XG4gIH0sIFtcbiAgICBzZWFyY2hSZXN1bHRDbGlja2VkLFxuICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMsXG4gICAgdmFsdWVUcmltbWVkLFxuICAgIG9uU2VhcmNoQXNZb3VUeXBlLFxuICBdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlucHV0UmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgc2VhcmNoV29ya2VyLmluaXQoKTtcbiAgfSwgW10pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCF2YWx1ZVRyaW1tZWQubGVuZ3RoKSB7XG4gICAgICBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKG51bGwpO1xuICAgICAgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMoe1xuICAgICAgICBxdWVyeTogJycsXG4gICAgICAgIHNlYXJjaElkOiAnJyxcbiAgICAgICAgcmVzdWx0c0NvdW50OiAwLFxuICAgICAgICBxdWVyeUxvYWRUaW1lOiAwLFxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGNhbmNlbCA9IGZhbHNlO1xuICAgIGxldCBjbGVhckF1dG9jb21wbGV0ZSA9IHRydWU7XG4gICAgbGV0IGNsZWFyU2VhcmNoQXNZb3VUeXBlID0gdHJ1ZTtcblxuICAgIGxldCBzZWFyY2hFdmVudE5vUmVzdWx0RGVsYXk6IE5vZGVKUy5UaW1lb3V0O1xuXG4gICAgY29uc3QgbG9hZGVyRGVsYXkgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIC8qXG4gICAgICAgKiBXYWl0IDEwIG1pbGxpc2Vjb25kcyB0byBnZXQgYSByZXNwb25zZSBmb3Igd29ya2VyIGJlZm9yZSBzaG93aW5nIGxvYWRlcnMuXG4gICAgICAgKiBUaGlzIHByZXZlbnRzIGZsaWNrZXJpbmcgbG9hZGVycyBvbiBxdWljayBvciBjYWNoZWQgcmVzdWx0cy5cbiAgICAgICAqL1xuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuO1xuICAgICAgaWYgKGNsZWFyQXV0b2NvbXBsZXRlKSBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhbXSk7XG4gICAgICBpZiAoY2xlYXJTZWFyY2hBc1lvdVR5cGUpIHNldFNlYXJjaEFzWW91VHlwZVJlc3VsdHMobnVsbCk7XG4gICAgfSwgMTApO1xuXG4gICAgc2VhcmNoV29ya2VyLmF1dG9jb21wbGV0ZSh2YWx1ZVRyaW1tZWQpLnRoZW4oKHN1Z2dlc3Rpb25zKSA9PiB7XG4gICAgICBjbGVhckF1dG9jb21wbGV0ZSA9IGZhbHNlO1xuXG4gICAgICBpZiAoY2FuY2VsKSByZXR1cm47IC8vIHRleHQgaGFzIGNoYW5nZWQgc2luY2UgdGhpcyByZXF1ZXN0IHdhcyBtYWRlXG5cbiAgICAgIHNldEF1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zKHN1Z2dlc3Rpb25zKTtcbiAgICB9KTtcblxuICAgIHNlYXJjaFdvcmtlci5zZWFyY2hBc1lvdVR5cGUodmFsdWVUcmltbWVkKS50aGVuKChyZXN1bHRzKSA9PiB7XG4gICAgICBjbGVhclNlYXJjaEFzWW91VHlwZSA9IGZhbHNlO1xuXG4gICAgICBpZiAoY2FuY2VsKSByZXR1cm47IC8vIHRleHQgaGFzIGNoYW5nZWQgc2luY2UgdGhpcyByZXF1ZXN0IHdhcyBtYWRlXG5cbiAgICAgIHNldFNlYXJjaEFzWW91VHlwZVJlc3VsdHMocmVzdWx0cyk7XG5cbiAgICAgIHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zKHtcbiAgICAgICAgcXVlcnk6IHJlc3VsdHMucXVlcnksXG4gICAgICAgIHNlYXJjaElkOiByZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICByZXN1bHRzQ291bnQ6IHJlc3VsdHMudG9wLmxlbmd0aCxcbiAgICAgICAgcXVlcnlMb2FkVGltZTogcmVzdWx0cy5xdWVyeUxvYWRUaW1lLFxuICAgICAgfSk7XG5cbiAgICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCB3aXRoIGEgc21hbGwgZGVsYXkgd2hlbiB0aGVyZSBhcmUgbm8gcmVzdWx0c1xuICAgICAgaWYgKFxuICAgICAgICBvblNlYXJjaEFzWW91VHlwZSAmJlxuICAgICAgICByZXN1bHRzLnRvcC5sZW5ndGggPT09IDAgJiZcbiAgICAgICAgIXNlYXJjaFJlc3VsdENsaWNrZWRcbiAgICAgICkge1xuICAgICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcXVlcnlMb2FkVGltZSB9ID0gcmVzdWx0cztcbiAgICAgICAgc2VhcmNoRXZlbnROb1Jlc3VsdERlbGF5ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgaWYgKCFjYW5jZWwpIHtcbiAgICAgICAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgMCwgcXVlcnlMb2FkVGltZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LCAzMDApO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGNhbmNlbCA9IHRydWU7XG4gICAgICBjbGVhclRpbWVvdXQobG9hZGVyRGVsYXkpO1xuICAgICAgY2xlYXJUaW1lb3V0KHNlYXJjaEV2ZW50Tm9SZXN1bHREZWxheSk7XG4gICAgfTtcbiAgfSwgW1xuICAgIHZhbHVlVHJpbW1lZCxcbiAgICBvblNlYXJjaEFzWW91VHlwZSxcbiAgICBzZWFyY2hSZXN1bHRDbGlja2VkLFxuICAgIHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zLFxuICBdKTtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8Qm94XG4gICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgIGJnPVwic2hhZG93LXNlY29uZGFyeVwiXG4gICAgICAgIGhlaWdodD1cIjEwMHZoXCJcbiAgICAgICAgcG9zaXRpb249XCJmaXhlZFwiXG4gICAgICAgIC8vIFdlIGFkZCA2cmVtIGhlcmUgaW4gY2FzZSB0aGVyZSdzIHNvbWUgc29ydCBvZiBicmFuZGVkIGJhbm5lciBhYm92ZSBzZWFyY2hcbiAgICAgICAgLy8gVGhlIHNlYXJjaCBhcmVhIGlzIG11Y2ggdGFsbGVyIHRoYW4gNnJlbSBzbyB0aGlzIGlzIGEgc2FmZSBhbW91bnQgb2YgcGFkZGluZ1xuICAgICAgICB0b3A9e2BjYWxjKCR7dGhlbWUuZWxlbWVudHMuaGVhZGVySGVpZ2h0fSArIDZyZW0pYH1cbiAgICAgICAgd2lkdGg9ezF9XG4gICAgICAvPlxuICAgICAgPEZvY3VzVHJhcFxuICAgICAgICBvbkVzY2FwZUtleT17Y2xvc2VTZWFyY2h9XG4gICAgICAgIG9uQ2xpY2tPdXRzaWRlPXtvbk1vdXNlRG93bk91dHNpZGV9XG4gICAgICAgIGFsbG93UGFnZUludGVyYWN0aW9uXG4gICAgICA+XG4gICAgICAgIDxCb3hcbiAgICAgICAgICBiZz1cImJhY2tncm91bmRcIlxuICAgICAgICAgIGJvcmRlckNvbG9yQm90dG9tPVwiYm9yZGVyLXByaW1hcnlcIlxuICAgICAgICAgIGJvcmRlckNvbG9yVG9wPVwiYm9yZGVyLXRlcnRpYXJ5XCJcbiAgICAgICAgICBib3JkZXJTdHlsZT1cInNvbGlkXCJcbiAgICAgICAgICBib3JkZXJXaWR0aD1cIjJweCAwIDFweFwiXG4gICAgICAgICAgZGF0YS10ZXN0aWQ9XCJoZWFkZXItc2VhcmNoLWRyb3Bkb3duXCJcbiAgICAgICAgICBwb3NpdGlvbj17eyBfOiAnZml4ZWQnLCBtZDogJ2Fic29sdXRlJyB9fVxuICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgbWF4SGVpZ2h0PXt7IF86ICdjYWxjKDEwMHZoIC0gNjNweCknLCBtZDogJ2NhbGMoMTAwdmggLSA4MHB4KScgfX1cbiAgICAgICAgICBvdmVyZmxvdz1cImF1dG9cIlxuICAgICAgICAgIHpJbmRleD17MTB9IC8vIGVuc3VyZSBkcm9wZG93biBpcyBhYm92ZSB0aGUgcGFnZSBjb250ZW50XG4gICAgICAgID5cbiAgICAgICAgICA8Qm94IGJvcmRlcj1cIm5vbmVcIiB3aWR0aD1cImF1dG9cIj5cbiAgICAgICAgICAgIDxRdWVyeUNvbnRhaW5lciAkY29tcGFjdD17ISFzaG93TWFya2V0aW5nQmFubmVyfT5cbiAgICAgICAgICAgICAgPEZsZXhCb3hcbiAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiYmFzZWxpbmVcIlxuICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yPVwiZ3JheS02MDBcIlxuICAgICAgICAgICAgICAgIGJvcmRlclN0eWxlQm90dG9tPVwic29saWRcIlxuICAgICAgICAgICAgICAgIGJvcmRlcldpZHRoQm90dG9tPVwiMXB4XCJcbiAgICAgICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFNlYXJjaEljb25cbiAgICAgICAgICAgICAgICAgIGhlaWdodD17eyBfOiAyMCwgbWQ6IDI0IH19XG4gICAgICAgICAgICAgICAgICB3aWR0aD17eyBfOiAyMCwgbWQ6IDI0IH19XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8Rm9ybVxuICAgICAgICAgICAgICAgICAgYWN0aW9uPVwiL3NlYXJjaFwiXG4gICAgICAgICAgICAgICAgICBpZD1cInNlYXJjaC1mb3JtXCJcbiAgICAgICAgICAgICAgICAgIG1sPXs4fVxuICAgICAgICAgICAgICAgICAgb25TdWJtaXQ9e2hhbmRsZVN1Ym1pdH1cbiAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPFN0eWxlZElucHV0XG4gICAgICAgICAgICAgICAgICAgIGF1dG9Gb2N1c1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcj1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICBmb250U2l6ZT17eyBfOiAyMCwgbWQ6IDI2IH19XG4gICAgICAgICAgICAgICAgICAgIGZvbnRXZWlnaHQ9XCJib2xkXCJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJoZWFkZXItc2VhcmNoLWJhclwiXG4gICAgICAgICAgICAgICAgICAgIG5hbWU9XCJxdWVyeVwiXG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVDaGFuZ2V9XG4gICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17KGUpID0+IG9uS2V5RG93bihlKX1cbiAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e3NlYXJjaFBsYWNlaG9sZGVyfVxuICAgICAgICAgICAgICAgICAgICByZWY9e2lucHV0UmVmfVxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwic2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgICAgICAgICBhdXRvQ29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L0Zvcm0+XG4gICAgICAgICAgICAgICAgPEljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgIGljb249e01pbmlEZWxldGVJY29ufVxuICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkNsZWFyIHNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICB0aXA9XCJDbGVhciBzZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgdGlwUHJvcHM9e3tcbiAgICAgICAgICAgICAgICAgICAgYWxpZ25tZW50OiAnYm90dG9tLWNlbnRlcicsXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudDogJ2Zsb2F0aW5nJyxcbiAgICAgICAgICAgICAgICAgICAgbmFycm93OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICB6SW5kZXg6IDIsXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17Y2xlYXJJbnB1dH1cbiAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgICAgICAgPC9RdWVyeUNvbnRhaW5lcj5cbiAgICAgICAgICA8L0JveD5cbiAgICAgICAgICB7c2hvd01hcmtldGluZ0Jhbm5lciAmJiAoXG4gICAgICAgICAgICA8Q29udGVudENvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPE1hcmtldGluZ0Jhbm5lclxuICAgICAgICAgICAgICAgIHNvdXJjZT1cInNlYXJjaFwiXG4gICAgICAgICAgICAgICAgdGV4dD17YmFubmVyPy50ZXh0fVxuICAgICAgICAgICAgICAgIGhyZWY9e2Jhbm5lcj8uaHJlZn1cbiAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICBweT17eyBfOiAxNiwgbGc6IDI0IH19XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0NvbnRlbnRDb250YWluZXI+XG4gICAgICAgICAgKX1cbiAgICAgICAgICA8U3VnZ2VzdGlvbkNvbnRhaW5lciAkY29tcGFjdD17ISFzaG93TWFya2V0aW5nQmFubmVyfT5cbiAgICAgICAgICAgIHt2YWx1ZVRyaW1tZWQubGVuZ3RoID4gMCA/IChcbiAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICA8RmxleEJveCBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCIgYXM9XCJ1bFwiIGxpc3RTdHlsZT1cIm5vbmVcIiBwPXswfT5cbiAgICAgICAgICAgICAgICAgIHthdXRvQ29tcGxldGVTdWdnZXN0aW9ucy5tYXAoKHMsIGkpID0+IChcbiAgICAgICAgICAgICAgICAgICAgPElubGluZVJlc3VsdExpXG4gICAgICAgICAgICAgICAgICAgICAga2V5PXtzLnRpdGxlfVxuICAgICAgICAgICAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17KGV2dCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV2dC5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdhdXRvY29tcGxldGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWQgPz8gJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMudGl0bGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ2F1dG9jb21wbGV0ZV9yZXN1bHQnLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWQgPz8gJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hdmlnYXRlVG9TZWFyY2goXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHMudGl0bGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPFNlbWlib2xkU2VhcmNoSWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgbWI9ezIgYXMgMH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9ezE0fVxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlV2lkdGg9ezh9XG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlblxuICAgICAgICAgICAgICAgICAgICAgICAgbXI9ezEyfVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPEhpZ2hsaWdodGVkVGV4dCBzdWdnZXN0aW9uPXtzfSAvPlxuICAgICAgICAgICAgICAgICAgICA8L0lubGluZVJlc3VsdExpPlxuICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgICAgICAgICAgIHsoc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyA9PT0gbnVsbCB8fFxuICAgICAgICAgICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy50b3AubGVuZ3RoID4gMCkgJiYgKFxuICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgPFRleHQgYXM9XCJoMlwiIGZvbnRTaXplPXsyMH0gbWI9ezE2fSBtdD17MjR9PlxuICAgICAgICAgICAgICAgICAgICAgIFRvcCByZXN1bHRzXG4gICAgICAgICAgICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgICAgICAgICAgICAgPEZsZXhCb3hcbiAgICAgICAgICAgICAgICAgICAgICBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICAgICBhcz1cInVsXCJcbiAgICAgICAgICAgICAgICAgICAgICBsaXN0U3R5bGU9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICBwPXswfVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAge3NlYXJjaEFzWW91VHlwZVJlc3VsdHMgPT09IG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgID8gc2VhcmNoQXNZb3VUeXBlTG9hZGVyPy5zaGltbWVyUm93cy5tYXAoKHIpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5saW5lTG9hZGVyTGkga2V5PXtyLmtleX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ci5zaGltbWVycy5tYXAoKHdvcmQpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFNoaW1tZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9ezMwfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB5PXs4IGFzIDB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXt3b3JkLmtleX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD17d29yZC53aWR0aH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJveFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250RmFtaWx5PVwiYWNjZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dENvbG9yPVwidGV4dC1zZWNvbmRhcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250U2l6ZT17eyBfOiAxMCBhcyAxNiB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJDb2xvcj1cImJvcmRlci1zZWNvbmRhcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI9ezF9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1cz1cInhsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHg9ezE2fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5PXswLjF9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZuYnNwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9JbmxpbmVMb2FkZXJMaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy50b3AubWFwKChzLCBpKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPElubGluZVJlc3VsdExpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2Ake1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnF1ZXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OiR7aS50b1N0cmluZygpfWB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJsaW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17KGV2dCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXZ0LmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdzZWFyY2hfYXNfeW91X3R5cGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2x1Zzogcy5zbHVnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKHMuY29udGVudElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8geyBjb250ZW50X2lkOiBzLmNvbnRlbnRJZCB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2FmZWx5UmVkaXJlY3Qocy51cmxQYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdzZWFyY2hfYXNfeW91X3R5cGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbHVnOiBzLnNsdWcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKHMuY29udGVudElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHsgY29udGVudF9pZDogcy5jb250ZW50SWQgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB7fSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYWZlbHlSZWRpcmVjdChzLnVybFBhdGgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SGlnaGxpZ2h0ZWRUZXh0IHN1Z2dlc3Rpb249e3N9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QmFkZ2Ugc2l6ZT1cInNtXCIgdmFyaWFudD1cInRlcnRpYXJ5XCIgbWw9ezEyfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3MudHlwZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQmFkZ2U+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9JbmxpbmVSZXN1bHRMaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgIDwvRmxleEJveD5cbiAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAge3NlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnRvcC5sZW5ndGggPT09IDAgJiYgKFxuICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgPEJveCBmb250U2l6ZT17eyBfOiAyMCwgc206IDI2IH19IG10PXswfSBtYj17NDh9PlxuICAgICAgICAgICAgICAgICAgICAgIHtgV2UgY291bGRuJ3QgZmluZCBhIG1hdGNoIGZvciBgfVxuICAgICAgICAgICAgICAgICAgICAgIDxUZXh0IGZvbnRXZWlnaHQ9XCJib2xkXCI+e2BcIiR7dmFsdWVUcmltbWVkfS5cImB9PC9UZXh0PlxuICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICcgVHJ5IGFub3RoZXIga2V5d29yZCwgb3Igc2VlIHdoYXQgb3VyIG1lbWJlcnMgYXJlIGxlYXJuaW5nLidcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICA8TWVudSBib3JkZXI9XCJub25lXCIgdmFyaWFudD1cInBvcG92ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8UG9wdWxhckNvbnRlbnQgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvTWVudT5cbiAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPE1lbnUgYm9yZGVyPVwibm9uZVwiIHZhcmlhbnQ9XCJwb3BvdmVyXCI+XG4gICAgICAgICAgICAgICAgPFBvcHVsYXJTZWFyY2hlc1xuICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaD17bmF2aWdhdGVUb1NlYXJjaH1cbiAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPFBvcHVsYXJDb250ZW50IG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfSAvPlxuICAgICAgICAgICAgICA8L01lbnU+XG4gICAgICAgICAgICApfVxuXG4gICAgICAgICAgICB7ISFzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy50b3AubGVuZ3RoICYmIChcbiAgICAgICAgICAgICAgPFN0cm9rZUJ1dHRvblxuICAgICAgICAgICAgICAgIG15PXsxNn1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ3ZpZXdfYWxsX3Jlc3VsdHMnLCB7XG4gICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaCh2YWx1ZSwgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWQpO1xuICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgVmlldyBhbGwgcmVzdWx0c1xuICAgICAgICAgICAgICA8L1N0cm9rZUJ1dHRvbj5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8UXVpekFuZEhlbHBDZW50ZXJMaW5rc1xuICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja31cbiAgICAgICAgICAgICAgaGFuZGxlQ2xvc2VEcm9wZG93bj17Y2xvc2VTZWFyY2h9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvU3VnZ2VzdGlvbkNvbnRhaW5lcj5cbiAgICAgICAgPC9Cb3g+XG4gICAgICA8L0ZvY3VzVHJhcD5cbiAgICA8Lz5cbiAgKTtcbn07XG4iXX0= */");
|
|
83
|
+
const InlineLoaderLi = /*#__PURE__*/_styled("li", {
|
|
84
|
+
target: "e1e5b20r2",
|
|
85
|
+
label: "InlineLoaderLi"
|
|
86
|
+
})(css({
|
|
87
|
+
listStyleType: 'none',
|
|
88
|
+
display: 'flex',
|
|
89
|
+
gap: 12,
|
|
90
|
+
alignItems: 'center'
|
|
91
|
+
}), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvU2VhcmNoL1NlYXJjaFBhbmUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQStFdUIiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL0FwcEhlYWRlci9TZWFyY2gvU2VhcmNoUGFuZS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYWRnZSxcbiAgQm94LFxuICBDb250ZW50Q29udGFpbmVyLFxuICBGbGV4Qm94LFxuICBGb2N1c1RyYXAsXG4gIEljb25CdXR0b24sXG4gIE1lbnUsXG4gIE1lbnVJdGVtLFxuICBTaGltbWVyLFxuICBTdHJva2VCdXR0b24sXG4gIFRleHQsXG59IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCB7IE1pbmlEZWxldGVJY29uLCBTZWFyY2hJY29uIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtaWNvbnMnO1xuaW1wb3J0IHsgY3NzLCB0aGVtZSwgdXNlQ3VycmVudE1vZGUgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IHVzZUdsb2JhbEhlYWRlckR5bmFtaWNEYXRhQ29udGV4dCB9IGZyb20gJy4uLy4uL0dsb2JhbEhlYWRlci9jb250ZXh0JztcbmltcG9ydCB7IE1hcmtldGluZ0Jhbm5lciB9IGZyb20gJy4uL0FwcEhlYWRlckVsZW1lbnRzL0FwcEhlYWRlckNhdGFsb2dEcm9wZG93bi9NYXJrZXRpbmdCYW5uZXInO1xuaW1wb3J0IHsgdXNlT25Fc2NIYW5kbGVyIH0gZnJvbSAnLi4vc2hhcmVkJztcbmltcG9ydCB7IHNlYXJjaFBsYWNlaG9sZGVyIH0gZnJvbSAnLi9jb25zdHMnO1xuaW1wb3J0IHsgUG9wdWxhckNvbnRlbnQsIFBvcHVsYXJTZWFyY2hlcyB9IGZyb20gJy4vRGVmYXVsdFJlc3VsdHMnO1xuaW1wb3J0IHsgdXNlVXJsQ2hhbmdlRGV0ZWN0aW9uIH0gZnJvbSAnLi9ob29rcy91c2VVcmxDaGFuZ2VEZXRlY3Rpb24nO1xuaW1wb3J0IHsgUXVpekFuZEhlbHBDZW50ZXJMaW5rcyB9IGZyb20gJy4vUXVpekFuZEhlbHBDZW50ZXJMaW5rcyc7XG5pbXBvcnQgeyBzYWZlbHlSZWRpcmVjdCB9IGZyb20gJy4vc2FmZWx5UmVkaXJlY3QnO1xuaW1wb3J0IHsgdXNlU2VhcmNoVHJhY2tpbmdDb250ZXh0IH0gZnJvbSAnLi9TZWFyY2hUcmFja2luZ1Byb3ZpZGVyJztcbmltcG9ydCB7IHNlYXJjaFdvcmtlciB9IGZyb20gJy4vU2VhcmNoV29ya2VyJztcbmltcG9ydCB0eXBlIHtcbiAgQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbixcbiAgU2VhcmNoQXNZb3VUeXBlUmVzdWx0cyxcbn0gZnJvbSAnLi9TZWFyY2hXb3JrZXIvdHlwZXMnO1xuaW1wb3J0IHsgU2VhcmNoUGFuZVByb3BzIH0gZnJvbSAnLi90eXBlcyc7XG5cbmNvbnN0IEZvcm0gPSBCb3gud2l0aENvbXBvbmVudCgnZm9ybScpO1xuY29uc3QgSW5wdXQgPSBCb3gud2l0aENvbXBvbmVudCgnaW5wdXQnKTtcblxuY29uc3QgUXVlcnlDb250YWluZXIgPSBzdHlsZWQoQ29udGVudENvbnRhaW5lcik8eyAkY29tcGFjdD86IGJvb2xlYW4gfT4oXG4gICh7ICRjb21wYWN0IH0pID0+XG4gICAgY3NzKHtcbiAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICBwdDogMTYsXG4gICAgICBwYjogJGNvbXBhY3QgPyB7IF86IDAsIG1kOiA0IH0gOiB7IF86IDAsIG1kOiAyNCB9LFxuICAgICAgcHg6IHsgXzogMjQgfSxcbiAgICB9KVxuKTtcblxuY29uc3QgU3VnZ2VzdGlvbkNvbnRhaW5lciA9IHN0eWxlZChDb250ZW50Q29udGFpbmVyKTx7ICRjb21wYWN0PzogYm9vbGVhbiB9PihcbiAgKHsgJGNvbXBhY3QgfSkgPT5cbiAgICBjc3Moe1xuICAgICAgcHQ6ICRjb21wYWN0ID8gNCA6IDE2LFxuICAgICAgcGI6IHsgXzogMCwgbWQ6IDI0IH0sXG4gICAgICBweDogeyBfOiAyNCB9LFxuICAgIH0pXG4pO1xuXG5jb25zdCBTdHlsZWRJbnB1dCA9IHN0eWxlZChJbnB1dCkoXG4gIGNzcyh7XG4gICAgb3V0bGluZTogYG5vbmVgLFxuICAgICcmOjpwbGFjZWhvbGRlcic6IHtcbiAgICAgIHRleHRDb2xvcjogdGhlbWUuY29sb3JzWyd0ZXh0LXNlY29uZGFyeSddIGFzIG5ldmVyLFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBJbmxpbmVSZXN1bHRMaSA9IHN0eWxlZChNZW51SXRlbSkoXG4gIGNzcyh7XG4gICAgcGw6IDAsXG4gICAgcHk6IDgsXG4gICAgZm9udFNpemU6IDE2LFxuICAgICcmOmZvY3VzLXZpc2libGU6YWZ0ZXInOiB7XG4gICAgICBsZWZ0OiAtNCxcbiAgICB9LFxuICB9KVxuKTtcblxuY29uc3QgSW5saW5lTG9hZGVyTGkgPSBzdHlsZWQubGkoXG4gIGNzcyh7XG4gICAgbGlzdFN0eWxlVHlwZTogJ25vbmUnLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBnYXA6IDEyLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICB9KVxuKTtcblxuZXhwb3J0IGNvbnN0IFNlbWlib2xkU2VhcmNoSWNvbiA9IHN0eWxlZChTZWFyY2hJY29uKWBcbiAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbiAgY2lyY2xlLFxuICBwYXRoIHtcbiAgICBzdHJva2Utd2lkdGg6IDJweDtcbiAgfVxuICByZWN0IHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMnB4LCAtMnB4KTtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSArIDRweCk7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSArIDRweCk7XG4gIH1cbmA7XG5cbmNvbnN0IEVsbGlwc2lzQm94ID0gc3R5bGVkKEJveClgXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuYDtcblxuY29uc3QgSGlnaGxpZ2h0ZWRUZXh0ID0gKHtcbiAgc3VnZ2VzdGlvbjogeyB0aXRsZSwgc2VnbWVudHMgfSxcbn06IHtcbiAgc3VnZ2VzdGlvbjogQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbjtcbn0pID0+IHtcbiAgY29uc3QgbW9kZSA9IHVzZUN1cnJlbnRNb2RlKCk7XG4gIGNvbnN0IGhpZ2hsaWdodENvbG9yID0gbW9kZSA9PT0gJ2RhcmsnID8gJ2h5cGVyJyA6ICd5ZWxsb3cnO1xuXG4gIHJldHVybiAoXG4gICAgPEZsZXhCb3g+XG4gICAgICA8RWxsaXBzaXNCb3hcbiAgICAgICAgbWF4V2lkdGg9XCJjYWxjKDEwMHZ3IC0gMTI4cHgpXCJcbiAgICAgICAgd2hpdGVTcGFjZT1cInByZVwiXG4gICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgIG92ZXJmbG93PVwiaGlkZGVuXCJcbiAgICAgID5cbiAgICAgICAge3NlZ21lbnRzLm1hcCgoc2VnbWVudCwgaSkgPT4gKFxuICAgICAgICAgIDxUZXh0XG4gICAgICAgICAgICBrZXk9e2Ake3RpdGxlfToke2kudG9TdHJpbmcoKX1gfVxuICAgICAgICAgICAgbGluZUhlaWdodD1cInRpdGxlXCJcbiAgICAgICAgICAgIHsuLi4oc2VnbWVudC5oaWdobGlnaHRcbiAgICAgICAgICAgICAgPyB7IGJnOiBoaWdobGlnaHRDb2xvciwgZm9udFdlaWdodDogJ2JvbGQnIH1cbiAgICAgICAgICAgICAgOiB7fSl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3NlZ21lbnQudmFsdWV9XG4gICAgICAgICAgPC9UZXh0PlxuICAgICAgICApKX1cbiAgICAgIDwvRWxsaXBzaXNCb3g+XG4gICAgICA8VGV4dCBzY3JlZW5yZWFkZXI+e3RpdGxlfTwvVGV4dD5cbiAgICA8L0ZsZXhCb3g+XG4gICk7XG59O1xuXG50eXBlIFNlYXJjaEFzWW91VHlwZUxvYWRlciA9IHtcbiAgc2hpbW1lclJvd3M6IHtcbiAgICBrZXk6IHN0cmluZztcbiAgICBzaGltbWVyczoge1xuICAgICAga2V5OiBzdHJpbmc7XG4gICAgICB3aWR0aDogbnVtYmVyO1xuICAgIH1bXTtcbiAgfVtdO1xufTtcblxubGV0IGxvYWRlcktleSA9IDA7XG5mdW5jdGlvbiBybmRMb2FkZXIoKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wbHVzcGx1c1xuICBjb25zdCBrZXkgPSBsb2FkZXJLZXkrKztcbiAgY29uc3QgbG9hZGVyOiBTZWFyY2hBc1lvdVR5cGVMb2FkZXIgPSB7IHNoaW1tZXJSb3dzOiBbXSB9O1xuICBmb3IgKGxldCBpID0gMDsgaSA8IDU7IGkrKykge1xuICAgIGNvbnN0IHJvdyA9IHtcbiAgICAgIGtleTogYCR7a2V5fToke2l9YCxcbiAgICAgIHNoaW1tZXJzOiBbXSBhcyB7IGtleTogc3RyaW5nOyB3aWR0aDogbnVtYmVyIH1bXSxcbiAgICB9O1xuICAgIGNvbnN0IHdvcmRzID0gTWF0aC5jZWlsKE1hdGgucmFuZG9tKCkgKiAzKTtcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IHdvcmRzOyBqKyspIHtcbiAgICAgIGNvbnN0IHdpZHRoID0gMTIgKyBNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkgKiA5Nik7XG4gICAgICByb3cuc2hpbW1lcnMucHVzaCh7XG4gICAgICAgIGtleTogYCR7a2V5fToke2p9YCxcbiAgICAgICAgd2lkdGgsXG4gICAgICB9KTtcbiAgICB9XG4gICAgbG9hZGVyLnNoaW1tZXJSb3dzLnB1c2gocm93KTtcbiAgfVxuICByZXR1cm4gbG9hZGVyO1xufVxuXG5leHBvcnQgY29uc3QgU2VhcmNoUGFuZTogUmVhY3QuRkM8U2VhcmNoUGFuZVByb3BzPiA9ICh7XG4gIG9uU2VhcmNoLFxuICBvblRyYWNraW5nQ2xpY2ssXG4gIHNlYXJjaEJ1dHRvblJlZixcbiAgdG9nZ2xlU2VhcmNoLFxuICBvblNlYXJjaEFzWW91VHlwZSxcbn0pID0+IHtcbiAgY29uc3QgdGhlbWUgPSB1c2VUaGVtZSgpO1xuICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IHVzZVN0YXRlKCcnKTtcbiAgY29uc3QgaW5wdXRSZWYgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IFthdXRvQ29tcGxldGVTdWdnZXN0aW9ucywgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnNdID0gdXNlU3RhdGU8XG4gICAgQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbltdXG4gID4oW10pO1xuICBjb25zdCBbc2VhcmNoQXNZb3VUeXBlUmVzdWx0cywgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0c10gPVxuICAgIHVzZVN0YXRlPFNlYXJjaEFzWW91VHlwZVJlc3VsdHMgfCBudWxsPihudWxsKTtcblxuICBjb25zdCBbc2VhcmNoUmVzdWx0Q2xpY2tlZCwgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgY29uc3QgeyBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyB9ID0gdXNlU2VhcmNoVHJhY2tpbmdDb250ZXh0KCk7XG4gIGNvbnN0IHsgZ2xvYmFsSGVhZGVyRHluYW1pY0RhdGEgfSA9IHVzZUdsb2JhbEhlYWRlckR5bmFtaWNEYXRhQ29udGV4dCgpO1xuXG4gIGNvbnN0IGJhbm5lciA9IGdsb2JhbEhlYWRlckR5bmFtaWNEYXRhPy5jYXRhbG9nRHJvcGRvd24/LmJhbm5lcjtcbiAgY29uc3Qgc2hvd01hcmtldGluZ0Jhbm5lciA9IGJhbm5lcj8udGV4dCAmJiBiYW5uZXI/LmhyZWYgJiYgTWFya2V0aW5nQmFubmVyO1xuXG4gIGNvbnN0IHNlYXJjaEFzWW91VHlwZUxvYWRlciA9IFJlYWN0LnVzZU1lbW8oXG4gICAgKCkgPT4gKHNlYXJjaEFzWW91VHlwZVJlc3VsdHMgPT09IG51bGwgPyBybmRMb2FkZXIoKSA6IG51bGwpLFxuICAgIFtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzXVxuICApO1xuXG4gIGNvbnN0IHZhbHVlVHJpbW1lZCA9IHZhbHVlLnRyaW0oKTtcblxuICBjb25zdCBoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2sgPVxuICAgIG9uU2VhcmNoQXNZb3VUeXBlICYmIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMgJiYgIXNlYXJjaFJlc3VsdENsaWNrZWQ7XG5cbiAgY29uc3QgY2xvc2VTZWFyY2ggPSBhc3luYyAoKSA9PiB7XG4gICAgLy8gdHJhY2sgc2VhcmNoIGV2ZW50IHdoZW4gdXNlciBtYWRlIGEgc2VhcmNoIGFuZCB0aGVuIGNsb3NlZCBzZWFyY2ggcGFuZVxuICAgIGlmIChoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2sgJiYgdmFsdWVUcmltbWVkLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM7XG4gICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSk7XG4gICAgfVxuXG4gICAgYXdhaXQgdG9nZ2xlU2VhcmNoKCk7XG4gICAgLy8gYWRkcyBhIGxpdHRsZSBkZWxheSBiZXR3ZWVuIGNsb3NpbmcgdGhlIHNlYXJjaCBwYW5lIGFuZCBmb2N1c2luZyBvbiB0aGUgYnV0dG9uXG4gICAgLy8gdG8gcHJldmVudCB0aGUgc2VhcmNoIHBhbmUgZnJvbSBpbW1lZGlhdGVseSBvcGVuaW5nIGFnYWluXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAoc2VhcmNoQnV0dG9uUmVmICYmIHNlYXJjaEJ1dHRvblJlZj8uY3VycmVudCkge1xuICAgICAgICBzZWFyY2hCdXR0b25SZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9LCAxMCk7XG4gIH07XG5cbiAgY29uc3Qgb25LZXlEb3duID0gdXNlT25Fc2NIYW5kbGVyKGNsb3NlU2VhcmNoKTtcblxuICBjb25zdCBvbk1vdXNlRG93bk91dHNpZGUgPSAoeyB0YXJnZXQgfTogTW91c2VFdmVudCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZU91dHNpZGVDbGljayA9ICgpID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgIWRvY3VtZW50XG4gICAgICAgICAgLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXRlc3RpZD1cImhlYWRlci1zZWFyY2gtZHJvcGRvd25cIl0nKVxuICAgICAgICAgID8uY29udGFpbnModGFyZ2V0IGFzIEhUTUxFbGVtZW50KSAmJlxuICAgICAgICB0YXJnZXQgIT09IHNlYXJjaEJ1dHRvblJlZj8uY3VycmVudFxuICAgICAgKSB7XG4gICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICB9XG5cbiAgICAgIHRhcmdldD8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGhhbmRsZU91dHNpZGVDbGljayk7XG4gICAgfTtcblxuICAgIHRhcmdldD8uYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGhhbmRsZU91dHNpZGVDbGljayk7XG4gIH07XG5cbiAgY29uc3QgbmF2aWdhdGVUb1NlYXJjaCA9IChzZWFyY2hUZXJtOiBzdHJpbmcsIGZyb21QcmV2U2VhcmNoPzogc3RyaW5nKSA9PiB7XG4gICAgb25TZWFyY2goc2VhcmNoVGVybSwgZnJvbVByZXZTZWFyY2gpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUNoYW5nZTogUmVhY3QuQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxJbnB1dEVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgIHNldFZhbHVlKGV2dC50YXJnZXQudmFsdWUpO1xuICAgIC8vIHJlc2V0IHRvIGZhbHNlIHdoZW4gdGhlIHNlYXJjaCBxdWVyeSBjaGFuZ2VzXG4gICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZChmYWxzZSk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlU3VibWl0OiBSZWFjdC5Gb3JtRXZlbnRIYW5kbGVyID0gKGV2ZW50KSA9PiB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCB3aGVuIHRoZSB1c2VyIHN1Ym1pdHMgdGhlIGZvcm0gdG8gY2FwdHVyZSBjb21wbGV0ZSBxdWVyeVxuICAgIGlmIChoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2spIHtcbiAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM7XG4gICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSk7XG4gICAgfVxuXG4gICAgbmF2aWdhdGVUb1NlYXJjaCh2YWx1ZSwgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWQpO1xuICB9O1xuXG4gIGNvbnN0IGNsZWFySW5wdXQgPSAoKSA9PiB7XG4gICAgLy8gdHJhY2sgc2VhcmNoIGV2ZW50IGJlZm9yZSB1c2VyIGNsZWFycyBpbnB1dFxuICAgIGlmIChoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2sgJiYgdmFsdWVUcmltbWVkLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM7XG4gICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSk7XG4gICAgfVxuXG4gICAgc2V0VmFsdWUoJycpO1xuICAgIHNldEF1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zKFtdKTtcbiAgICAvLyByZXNldCB0aGUgY29udGV4dCB3aXRoIGVtcHR5IHZhbHVlc1xuICAgIHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zKHtcbiAgICAgIHF1ZXJ5OiAnJyxcbiAgICAgIHNlYXJjaElkOiAnJyxcbiAgICAgIHJlc3VsdHNDb3VudDogMCxcbiAgICAgIHF1ZXJ5TG9hZFRpbWU6IDAsXG4gICAgfSk7XG4gIH07XG5cbiAgLy8gd2hlbiB0aGUgY3VycmVudCBVUkwgY2hhbmdlcywgd2Ugd2FudCB0byBjbG9zZSB0aGUgc2VhcmNoIHBhbmUgaWYgaXQncyBvcGVuXG4gIC8vIGFuZCB0cmFjayBzZWFyY2ggZXZlbnQgaWYgdXNlciBtYWRlIGEgc2VhcmNoXG4gIHVzZVVybENoYW5nZURldGVjdGlvbih7XG4gICAgb25VcmxDaGFuZ2U6ICgpID0+IHtcbiAgICAgIGlmIChoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2sgJiYgdmFsdWVUcmltbWVkLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSB9ID1cbiAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSk7XG4gICAgICB9XG5cbiAgICAgIHRvZ2dsZVNlYXJjaCgpO1xuICAgIH0sXG4gIH0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gZG9uJ3QgdHJhY2sgaWYgYSByZXN1bHQgd2FzIGNsaWNrZWQgb3IgaWYgd2UgZG9uJ3QgaGF2ZSBzZWFyY2ggcmVzdWx0c1xuICAgIGlmIChcbiAgICAgIHNlYXJjaFJlc3VsdENsaWNrZWQgfHxcbiAgICAgICFvblNlYXJjaEFzWW91VHlwZSB8fFxuICAgICAgIXNlYXJjaEFzWW91VHlwZVJlc3VsdHMgfHxcbiAgICAgICF2YWx1ZVRyaW1tZWQubGVuZ3RoXG4gICAgKVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZWxlc3MtcmV0dXJuXG4gICAgICByZXR1cm47XG4gIH0sIFtcbiAgICBzZWFyY2hSZXN1bHRDbGlja2VkLFxuICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMsXG4gICAgdmFsdWVUcmltbWVkLFxuICAgIG9uU2VhcmNoQXNZb3VUeXBlLFxuICBdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlucHV0UmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgc2VhcmNoV29ya2VyLmluaXQoKTtcbiAgfSwgW10pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCF2YWx1ZVRyaW1tZWQubGVuZ3RoKSB7XG4gICAgICBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKG51bGwpO1xuICAgICAgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMoe1xuICAgICAgICBxdWVyeTogJycsXG4gICAgICAgIHNlYXJjaElkOiAnJyxcbiAgICAgICAgcmVzdWx0c0NvdW50OiAwLFxuICAgICAgICBxdWVyeUxvYWRUaW1lOiAwLFxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGNhbmNlbCA9IGZhbHNlO1xuICAgIGxldCBjbGVhckF1dG9jb21wbGV0ZSA9IHRydWU7XG4gICAgbGV0IGNsZWFyU2VhcmNoQXNZb3VUeXBlID0gdHJ1ZTtcblxuICAgIGxldCBzZWFyY2hFdmVudE5vUmVzdWx0RGVsYXk6IE5vZGVKUy5UaW1lb3V0O1xuXG4gICAgY29uc3QgbG9hZGVyRGVsYXkgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIC8qXG4gICAgICAgKiBXYWl0IDEwIG1pbGxpc2Vjb25kcyB0byBnZXQgYSByZXNwb25zZSBmb3Igd29ya2VyIGJlZm9yZSBzaG93aW5nIGxvYWRlcnMuXG4gICAgICAgKiBUaGlzIHByZXZlbnRzIGZsaWNrZXJpbmcgbG9hZGVycyBvbiBxdWljayBvciBjYWNoZWQgcmVzdWx0cy5cbiAgICAgICAqL1xuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuO1xuICAgICAgaWYgKGNsZWFyQXV0b2NvbXBsZXRlKSBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhbXSk7XG4gICAgICBpZiAoY2xlYXJTZWFyY2hBc1lvdVR5cGUpIHNldFNlYXJjaEFzWW91VHlwZVJlc3VsdHMobnVsbCk7XG4gICAgfSwgMTApO1xuXG4gICAgc2VhcmNoV29ya2VyLmF1dG9jb21wbGV0ZSh2YWx1ZVRyaW1tZWQpLnRoZW4oKHN1Z2dlc3Rpb25zKSA9PiB7XG4gICAgICBjbGVhckF1dG9jb21wbGV0ZSA9IGZhbHNlO1xuXG4gICAgICBpZiAoY2FuY2VsKSByZXR1cm47IC8vIHRleHQgaGFzIGNoYW5nZWQgc2luY2UgdGhpcyByZXF1ZXN0IHdhcyBtYWRlXG5cbiAgICAgIHNldEF1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zKHN1Z2dlc3Rpb25zKTtcbiAgICB9KTtcblxuICAgIHNlYXJjaFdvcmtlci5zZWFyY2hBc1lvdVR5cGUodmFsdWVUcmltbWVkKS50aGVuKChyZXN1bHRzKSA9PiB7XG4gICAgICBjbGVhclNlYXJjaEFzWW91VHlwZSA9IGZhbHNlO1xuXG4gICAgICBpZiAoY2FuY2VsKSByZXR1cm47IC8vIHRleHQgaGFzIGNoYW5nZWQgc2luY2UgdGhpcyByZXF1ZXN0IHdhcyBtYWRlXG5cbiAgICAgIHNldFNlYXJjaEFzWW91VHlwZVJlc3VsdHMocmVzdWx0cyk7XG5cbiAgICAgIHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zKHtcbiAgICAgICAgcXVlcnk6IHJlc3VsdHMucXVlcnksXG4gICAgICAgIHNlYXJjaElkOiByZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICByZXN1bHRzQ291bnQ6IHJlc3VsdHMudG9wLmxlbmd0aCxcbiAgICAgICAgcXVlcnlMb2FkVGltZTogcmVzdWx0cy5xdWVyeUxvYWRUaW1lLFxuICAgICAgfSk7XG5cbiAgICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCB3aXRoIGEgc21hbGwgZGVsYXkgd2hlbiB0aGVyZSBhcmUgbm8gcmVzdWx0c1xuICAgICAgaWYgKFxuICAgICAgICBvblNlYXJjaEFzWW91VHlwZSAmJlxuICAgICAgICByZXN1bHRzLnRvcC5sZW5ndGggPT09IDAgJiZcbiAgICAgICAgIXNlYXJjaFJlc3VsdENsaWNrZWRcbiAgICAgICkge1xuICAgICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcXVlcnlMb2FkVGltZSB9ID0gcmVzdWx0cztcbiAgICAgICAgc2VhcmNoRXZlbnROb1Jlc3VsdERlbGF5ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgaWYgKCFjYW5jZWwpIHtcbiAgICAgICAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgMCwgcXVlcnlMb2FkVGltZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LCAzMDApO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGNhbmNlbCA9IHRydWU7XG4gICAgICBjbGVhclRpbWVvdXQobG9hZGVyRGVsYXkpO1xuICAgICAgY2xlYXJUaW1lb3V0KHNlYXJjaEV2ZW50Tm9SZXN1bHREZWxheSk7XG4gICAgfTtcbiAgfSwgW1xuICAgIHZhbHVlVHJpbW1lZCxcbiAgICBvblNlYXJjaEFzWW91VHlwZSxcbiAgICBzZWFyY2hSZXN1bHRDbGlja2VkLFxuICAgIHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zLFxuICBdKTtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8Qm94XG4gICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgIGJnPVwic2hhZG93LXNlY29uZGFyeVwiXG4gICAgICAgIGhlaWdodD1cIjEwMHZoXCJcbiAgICAgICAgcG9zaXRpb249XCJmaXhlZFwiXG4gICAgICAgIC8vIFdlIGFkZCA2cmVtIGhlcmUgaW4gY2FzZSB0aGVyZSdzIHNvbWUgc29ydCBvZiBicmFuZGVkIGJhbm5lciBhYm92ZSBzZWFyY2hcbiAgICAgICAgLy8gVGhlIHNlYXJjaCBhcmVhIGlzIG11Y2ggdGFsbGVyIHRoYW4gNnJlbSBzbyB0aGlzIGlzIGEgc2FmZSBhbW91bnQgb2YgcGFkZGluZ1xuICAgICAgICB0b3A9e2BjYWxjKCR7dGhlbWUuZWxlbWVudHMuaGVhZGVySGVpZ2h0fSArIDZyZW0pYH1cbiAgICAgICAgd2lkdGg9ezF9XG4gICAgICAvPlxuICAgICAgPEZvY3VzVHJhcFxuICAgICAgICBvbkVzY2FwZUtleT17Y2xvc2VTZWFyY2h9XG4gICAgICAgIG9uQ2xpY2tPdXRzaWRlPXtvbk1vdXNlRG93bk91dHNpZGV9XG4gICAgICAgIGFsbG93UGFnZUludGVyYWN0aW9uXG4gICAgICA+XG4gICAgICAgIDxCb3hcbiAgICAgICAgICBiZz1cImJhY2tncm91bmRcIlxuICAgICAgICAgIGJvcmRlckNvbG9yQm90dG9tPVwiYm9yZGVyLXByaW1hcnlcIlxuICAgICAgICAgIGJvcmRlckNvbG9yVG9wPVwiYm9yZGVyLXRlcnRpYXJ5XCJcbiAgICAgICAgICBib3JkZXJTdHlsZT1cInNvbGlkXCJcbiAgICAgICAgICBib3JkZXJXaWR0aD1cIjJweCAwIDFweFwiXG4gICAgICAgICAgZGF0YS10ZXN0aWQ9XCJoZWFkZXItc2VhcmNoLWRyb3Bkb3duXCJcbiAgICAgICAgICBwb3NpdGlvbj17eyBfOiAnZml4ZWQnLCBtZDogJ2Fic29sdXRlJyB9fVxuICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgbWF4SGVpZ2h0PXt7IF86ICdjYWxjKDEwMHZoIC0gNjNweCknLCBtZDogJ2NhbGMoMTAwdmggLSA4MHB4KScgfX1cbiAgICAgICAgICBvdmVyZmxvdz1cImF1dG9cIlxuICAgICAgICAgIHpJbmRleD17MTB9IC8vIGVuc3VyZSBkcm9wZG93biBpcyBhYm92ZSB0aGUgcGFnZSBjb250ZW50XG4gICAgICAgID5cbiAgICAgICAgICA8Qm94IGJvcmRlcj1cIm5vbmVcIiB3aWR0aD1cImF1dG9cIj5cbiAgICAgICAgICAgIDxRdWVyeUNvbnRhaW5lciAkY29tcGFjdD17ISFzaG93TWFya2V0aW5nQmFubmVyfT5cbiAgICAgICAgICAgICAgPEZsZXhCb3hcbiAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiYmFzZWxpbmVcIlxuICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yPVwiZ3JheS02MDBcIlxuICAgICAgICAgICAgICAgIGJvcmRlclN0eWxlQm90dG9tPVwic29saWRcIlxuICAgICAgICAgICAgICAgIGJvcmRlcldpZHRoQm90dG9tPVwiMXB4XCJcbiAgICAgICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFNlYXJjaEljb25cbiAgICAgICAgICAgICAgICAgIGhlaWdodD17eyBfOiAyMCwgbWQ6IDI0IH19XG4gICAgICAgICAgICAgICAgICB3aWR0aD17eyBfOiAyMCwgbWQ6IDI0IH19XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8Rm9ybVxuICAgICAgICAgICAgICAgICAgYWN0aW9uPVwiL3NlYXJjaFwiXG4gICAgICAgICAgICAgICAgICBpZD1cInNlYXJjaC1mb3JtXCJcbiAgICAgICAgICAgICAgICAgIG1sPXs4fVxuICAgICAgICAgICAgICAgICAgb25TdWJtaXQ9e2hhbmRsZVN1Ym1pdH1cbiAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPFN0eWxlZElucHV0XG4gICAgICAgICAgICAgICAgICAgIGF1dG9Gb2N1c1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcj1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICBmb250U2l6ZT17eyBfOiAyMCwgbWQ6IDI2IH19XG4gICAgICAgICAgICAgICAgICAgIGZvbnRXZWlnaHQ9XCJib2xkXCJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJoZWFkZXItc2VhcmNoLWJhclwiXG4gICAgICAgICAgICAgICAgICAgIG5hbWU9XCJxdWVyeVwiXG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVDaGFuZ2V9XG4gICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17KGUpID0+IG9uS2V5RG93bihlKX1cbiAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e3NlYXJjaFBsYWNlaG9sZGVyfVxuICAgICAgICAgICAgICAgICAgICByZWY9e2lucHV0UmVmfVxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwic2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgICAgICAgICBhdXRvQ29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L0Zvcm0+XG4gICAgICAgICAgICAgICAgPEljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgIGljb249e01pbmlEZWxldGVJY29ufVxuICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkNsZWFyIHNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICB0aXA9XCJDbGVhciBzZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgdGlwUHJvcHM9e3tcbiAgICAgICAgICAgICAgICAgICAgYWxpZ25tZW50OiAnYm90dG9tLWNlbnRlcicsXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudDogJ2Zsb2F0aW5nJyxcbiAgICAgICAgICAgICAgICAgICAgbmFycm93OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICB6SW5kZXg6IDIsXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17Y2xlYXJJbnB1dH1cbiAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgICAgICAgPC9RdWVyeUNvbnRhaW5lcj5cbiAgICAgICAgICA8L0JveD5cbiAgICAgICAgICB7c2hvd01hcmtldGluZ0Jhbm5lciAmJiAoXG4gICAgICAgICAgICA8Q29udGVudENvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPE1hcmtldGluZ0Jhbm5lclxuICAgICAgICAgICAgICAgIHNvdXJjZT1cInNlYXJjaFwiXG4gICAgICAgICAgICAgICAgdGV4dD17YmFubmVyPy50ZXh0fVxuICAgICAgICAgICAgICAgIGhyZWY9e2Jhbm5lcj8uaHJlZn1cbiAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICBweT17eyBfOiAxNiwgbGc6IDI0IH19XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0NvbnRlbnRDb250YWluZXI+XG4gICAgICAgICAgKX1cbiAgICAgICAgICA8U3VnZ2VzdGlvbkNvbnRhaW5lciAkY29tcGFjdD17ISFzaG93TWFya2V0aW5nQmFubmVyfT5cbiAgICAgICAgICAgIHt2YWx1ZVRyaW1tZWQubGVuZ3RoID4gMCA/IChcbiAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICA8RmxleEJveCBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCIgYXM9XCJ1bFwiIGxpc3RTdHlsZT1cIm5vbmVcIiBwPXswfT5cbiAgICAgICAgICAgICAgICAgIHthdXRvQ29tcGxldGVTdWdnZXN0aW9ucy5tYXAoKHMsIGkpID0+IChcbiAgICAgICAgICAgICAgICAgICAgPElubGluZVJlc3VsdExpXG4gICAgICAgICAgICAgICAgICAgICAga2V5PXtzLnRpdGxlfVxuICAgICAgICAgICAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17KGV2dCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV2dC5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdhdXRvY29tcGxldGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWQgPz8gJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMudGl0bGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ2F1dG9jb21wbGV0ZV9yZXN1bHQnLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWQgPz8gJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hdmlnYXRlVG9TZWFyY2goXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHMudGl0bGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPFNlbWlib2xkU2VhcmNoSWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgbWI9ezIgYXMgMH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9ezE0fVxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlV2lkdGg9ezh9XG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlblxuICAgICAgICAgICAgICAgICAgICAgICAgbXI9ezEyfVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPEhpZ2hsaWdodGVkVGV4dCBzdWdnZXN0aW9uPXtzfSAvPlxuICAgICAgICAgICAgICAgICAgICA8L0lubGluZVJlc3VsdExpPlxuICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgICAgICAgICAgIHsoc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyA9PT0gbnVsbCB8fFxuICAgICAgICAgICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy50b3AubGVuZ3RoID4gMCkgJiYgKFxuICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgPFRleHQgYXM9XCJoMlwiIGZvbnRTaXplPXsyMH0gbWI9ezE2fSBtdD17MjR9PlxuICAgICAgICAgICAgICAgICAgICAgIFRvcCByZXN1bHRzXG4gICAgICAgICAgICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgICAgICAgICAgICAgPEZsZXhCb3hcbiAgICAgICAgICAgICAgICAgICAgICBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICAgICBhcz1cInVsXCJcbiAgICAgICAgICAgICAgICAgICAgICBsaXN0U3R5bGU9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICBwPXswfVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAge3NlYXJjaEFzWW91VHlwZVJlc3VsdHMgPT09IG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgID8gc2VhcmNoQXNZb3VUeXBlTG9hZGVyPy5zaGltbWVyUm93cy5tYXAoKHIpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5saW5lTG9hZGVyTGkga2V5PXtyLmtleX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ci5zaGltbWVycy5tYXAoKHdvcmQpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFNoaW1tZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9ezMwfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB5PXs4IGFzIDB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXt3b3JkLmtleX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD17d29yZC53aWR0aH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJveFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250RmFtaWx5PVwiYWNjZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dENvbG9yPVwidGV4dC1zZWNvbmRhcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250U2l6ZT17eyBfOiAxMCBhcyAxNiB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJDb2xvcj1cImJvcmRlci1zZWNvbmRhcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI9ezF9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1cz1cInhsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHg9ezE2fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5PXswLjF9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZuYnNwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9JbmxpbmVMb2FkZXJMaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy50b3AubWFwKChzLCBpKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPElubGluZVJlc3VsdExpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2Ake1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnF1ZXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OiR7aS50b1N0cmluZygpfWB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJsaW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17KGV2dCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXZ0LmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdzZWFyY2hfYXNfeW91X3R5cGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2x1Zzogcy5zbHVnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKHMuY29udGVudElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8geyBjb250ZW50X2lkOiBzLmNvbnRlbnRJZCB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2FmZWx5UmVkaXJlY3Qocy51cmxQYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdzZWFyY2hfYXNfeW91X3R5cGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbHVnOiBzLnNsdWcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKHMuY29udGVudElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHsgY29udGVudF9pZDogcy5jb250ZW50SWQgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB7fSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYWZlbHlSZWRpcmVjdChzLnVybFBhdGgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SGlnaGxpZ2h0ZWRUZXh0IHN1Z2dlc3Rpb249e3N9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QmFkZ2Ugc2l6ZT1cInNtXCIgdmFyaWFudD1cInRlcnRpYXJ5XCIgbWw9ezEyfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3MudHlwZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQmFkZ2U+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9JbmxpbmVSZXN1bHRMaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgIDwvRmxleEJveD5cbiAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAge3NlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnRvcC5sZW5ndGggPT09IDAgJiYgKFxuICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgPEJveCBmb250U2l6ZT17eyBfOiAyMCwgc206IDI2IH19IG10PXswfSBtYj17NDh9PlxuICAgICAgICAgICAgICAgICAgICAgIHtgV2UgY291bGRuJ3QgZmluZCBhIG1hdGNoIGZvciBgfVxuICAgICAgICAgICAgICAgICAgICAgIDxUZXh0IGZvbnRXZWlnaHQ9XCJib2xkXCI+e2BcIiR7dmFsdWVUcmltbWVkfS5cImB9PC9UZXh0PlxuICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICcgVHJ5IGFub3RoZXIga2V5d29yZCwgb3Igc2VlIHdoYXQgb3VyIG1lbWJlcnMgYXJlIGxlYXJuaW5nLidcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICA8TWVudSBib3JkZXI9XCJub25lXCIgdmFyaWFudD1cInBvcG92ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8UG9wdWxhckNvbnRlbnQgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvTWVudT5cbiAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPE1lbnUgYm9yZGVyPVwibm9uZVwiIHZhcmlhbnQ9XCJwb3BvdmVyXCI+XG4gICAgICAgICAgICAgICAgPFBvcHVsYXJTZWFyY2hlc1xuICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaD17bmF2aWdhdGVUb1NlYXJjaH1cbiAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPFBvcHVsYXJDb250ZW50IG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfSAvPlxuICAgICAgICAgICAgICA8L01lbnU+XG4gICAgICAgICAgICApfVxuXG4gICAgICAgICAgICB7ISFzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy50b3AubGVuZ3RoICYmIChcbiAgICAgICAgICAgICAgPFN0cm9rZUJ1dHRvblxuICAgICAgICAgICAgICAgIG15PXsxNn1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ3ZpZXdfYWxsX3Jlc3VsdHMnLCB7XG4gICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaCh2YWx1ZSwgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWQpO1xuICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgVmlldyBhbGwgcmVzdWx0c1xuICAgICAgICAgICAgICA8L1N0cm9rZUJ1dHRvbj5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8UXVpekFuZEhlbHBDZW50ZXJMaW5rc1xuICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja31cbiAgICAgICAgICAgICAgaGFuZGxlQ2xvc2VEcm9wZG93bj17Y2xvc2VTZWFyY2h9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvU3VnZ2VzdGlvbkNvbnRhaW5lcj5cbiAgICAgICAgPC9Cb3g+XG4gICAgICA8L0ZvY3VzVHJhcD5cbiAgICA8Lz5cbiAgKTtcbn07XG4iXX0= */");
|
|
92
|
+
export const SemiboldSearchIcon = /*#__PURE__*/_styled(SearchIcon, {
|
|
93
|
+
target: "e1e5b20r1",
|
|
94
|
+
label: "SemiboldSearchIcon"
|
|
95
|
+
})(process.env.NODE_ENV === "production" ? {
|
|
96
|
+
name: "138xhwl",
|
|
97
|
+
styles: "overflow:visible!important;circle,path{stroke-width:2px;}rect{transform:translate(-2px, -2px);height:calc(100% + 4px);width:calc(100% + 4px);}"
|
|
98
|
+
} : {
|
|
99
|
+
name: "138xhwl",
|
|
100
|
+
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvU2VhcmNoL1NlYXJjaFBhbmUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXdGb0QiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL0FwcEhlYWRlci9TZWFyY2gvU2VhcmNoUGFuZS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYWRnZSxcbiAgQm94LFxuICBDb250ZW50Q29udGFpbmVyLFxuICBGbGV4Qm94LFxuICBGb2N1c1RyYXAsXG4gIEljb25CdXR0b24sXG4gIE1lbnUsXG4gIE1lbnVJdGVtLFxuICBTaGltbWVyLFxuICBTdHJva2VCdXR0b24sXG4gIFRleHQsXG59IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCB7IE1pbmlEZWxldGVJY29uLCBTZWFyY2hJY29uIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtaWNvbnMnO1xuaW1wb3J0IHsgY3NzLCB0aGVtZSwgdXNlQ3VycmVudE1vZGUgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IHVzZUdsb2JhbEhlYWRlckR5bmFtaWNEYXRhQ29udGV4dCB9IGZyb20gJy4uLy4uL0dsb2JhbEhlYWRlci9jb250ZXh0JztcbmltcG9ydCB7IE1hcmtldGluZ0Jhbm5lciB9IGZyb20gJy4uL0FwcEhlYWRlckVsZW1lbnRzL0FwcEhlYWRlckNhdGFsb2dEcm9wZG93bi9NYXJrZXRpbmdCYW5uZXInO1xuaW1wb3J0IHsgdXNlT25Fc2NIYW5kbGVyIH0gZnJvbSAnLi4vc2hhcmVkJztcbmltcG9ydCB7IHNlYXJjaFBsYWNlaG9sZGVyIH0gZnJvbSAnLi9jb25zdHMnO1xuaW1wb3J0IHsgUG9wdWxhckNvbnRlbnQsIFBvcHVsYXJTZWFyY2hlcyB9IGZyb20gJy4vRGVmYXVsdFJlc3VsdHMnO1xuaW1wb3J0IHsgdXNlVXJsQ2hhbmdlRGV0ZWN0aW9uIH0gZnJvbSAnLi9ob29rcy91c2VVcmxDaGFuZ2VEZXRlY3Rpb24nO1xuaW1wb3J0IHsgUXVpekFuZEhlbHBDZW50ZXJMaW5rcyB9IGZyb20gJy4vUXVpekFuZEhlbHBDZW50ZXJMaW5rcyc7XG5pbXBvcnQgeyBzYWZlbHlSZWRpcmVjdCB9IGZyb20gJy4vc2FmZWx5UmVkaXJlY3QnO1xuaW1wb3J0IHsgdXNlU2VhcmNoVHJhY2tpbmdDb250ZXh0IH0gZnJvbSAnLi9TZWFyY2hUcmFja2luZ1Byb3ZpZGVyJztcbmltcG9ydCB7IHNlYXJjaFdvcmtlciB9IGZyb20gJy4vU2VhcmNoV29ya2VyJztcbmltcG9ydCB0eXBlIHtcbiAgQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbixcbiAgU2VhcmNoQXNZb3VUeXBlUmVzdWx0cyxcbn0gZnJvbSAnLi9TZWFyY2hXb3JrZXIvdHlwZXMnO1xuaW1wb3J0IHsgU2VhcmNoUGFuZVByb3BzIH0gZnJvbSAnLi90eXBlcyc7XG5cbmNvbnN0IEZvcm0gPSBCb3gud2l0aENvbXBvbmVudCgnZm9ybScpO1xuY29uc3QgSW5wdXQgPSBCb3gud2l0aENvbXBvbmVudCgnaW5wdXQnKTtcblxuY29uc3QgUXVlcnlDb250YWluZXIgPSBzdHlsZWQoQ29udGVudENvbnRhaW5lcik8eyAkY29tcGFjdD86IGJvb2xlYW4gfT4oXG4gICh7ICRjb21wYWN0IH0pID0+XG4gICAgY3NzKHtcbiAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICBwdDogMTYsXG4gICAgICBwYjogJGNvbXBhY3QgPyB7IF86IDAsIG1kOiA0IH0gOiB7IF86IDAsIG1kOiAyNCB9LFxuICAgICAgcHg6IHsgXzogMjQgfSxcbiAgICB9KVxuKTtcblxuY29uc3QgU3VnZ2VzdGlvbkNvbnRhaW5lciA9IHN0eWxlZChDb250ZW50Q29udGFpbmVyKTx7ICRjb21wYWN0PzogYm9vbGVhbiB9PihcbiAgKHsgJGNvbXBhY3QgfSkgPT5cbiAgICBjc3Moe1xuICAgICAgcHQ6ICRjb21wYWN0ID8gNCA6IDE2LFxuICAgICAgcGI6IHsgXzogMCwgbWQ6IDI0IH0sXG4gICAgICBweDogeyBfOiAyNCB9LFxuICAgIH0pXG4pO1xuXG5jb25zdCBTdHlsZWRJbnB1dCA9IHN0eWxlZChJbnB1dCkoXG4gIGNzcyh7XG4gICAgb3V0bGluZTogYG5vbmVgLFxuICAgICcmOjpwbGFjZWhvbGRlcic6IHtcbiAgICAgIHRleHRDb2xvcjogdGhlbWUuY29sb3JzWyd0ZXh0LXNlY29uZGFyeSddIGFzIG5ldmVyLFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBJbmxpbmVSZXN1bHRMaSA9IHN0eWxlZChNZW51SXRlbSkoXG4gIGNzcyh7XG4gICAgcGw6IDAsXG4gICAgcHk6IDgsXG4gICAgZm9udFNpemU6IDE2LFxuICAgICcmOmZvY3VzLXZpc2libGU6YWZ0ZXInOiB7XG4gICAgICBsZWZ0OiAtNCxcbiAgICB9LFxuICB9KVxuKTtcblxuY29uc3QgSW5saW5lTG9hZGVyTGkgPSBzdHlsZWQubGkoXG4gIGNzcyh7XG4gICAgbGlzdFN0eWxlVHlwZTogJ25vbmUnLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBnYXA6IDEyLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICB9KVxuKTtcblxuZXhwb3J0IGNvbnN0IFNlbWlib2xkU2VhcmNoSWNvbiA9IHN0eWxlZChTZWFyY2hJY29uKWBcbiAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbiAgY2lyY2xlLFxuICBwYXRoIHtcbiAgICBzdHJva2Utd2lkdGg6IDJweDtcbiAgfVxuICByZWN0IHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMnB4LCAtMnB4KTtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSArIDRweCk7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSArIDRweCk7XG4gIH1cbmA7XG5cbmNvbnN0IEVsbGlwc2lzQm94ID0gc3R5bGVkKEJveClgXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuYDtcblxuY29uc3QgSGlnaGxpZ2h0ZWRUZXh0ID0gKHtcbiAgc3VnZ2VzdGlvbjogeyB0aXRsZSwgc2VnbWVudHMgfSxcbn06IHtcbiAgc3VnZ2VzdGlvbjogQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbjtcbn0pID0+IHtcbiAgY29uc3QgbW9kZSA9IHVzZUN1cnJlbnRNb2RlKCk7XG4gIGNvbnN0IGhpZ2hsaWdodENvbG9yID0gbW9kZSA9PT0gJ2RhcmsnID8gJ2h5cGVyJyA6ICd5ZWxsb3cnO1xuXG4gIHJldHVybiAoXG4gICAgPEZsZXhCb3g+XG4gICAgICA8RWxsaXBzaXNCb3hcbiAgICAgICAgbWF4V2lkdGg9XCJjYWxjKDEwMHZ3IC0gMTI4cHgpXCJcbiAgICAgICAgd2hpdGVTcGFjZT1cInByZVwiXG4gICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgIG92ZXJmbG93PVwiaGlkZGVuXCJcbiAgICAgID5cbiAgICAgICAge3NlZ21lbnRzLm1hcCgoc2VnbWVudCwgaSkgPT4gKFxuICAgICAgICAgIDxUZXh0XG4gICAgICAgICAgICBrZXk9e2Ake3RpdGxlfToke2kudG9TdHJpbmcoKX1gfVxuICAgICAgICAgICAgbGluZUhlaWdodD1cInRpdGxlXCJcbiAgICAgICAgICAgIHsuLi4oc2VnbWVudC5oaWdobGlnaHRcbiAgICAgICAgICAgICAgPyB7IGJnOiBoaWdobGlnaHRDb2xvciwgZm9udFdlaWdodDogJ2JvbGQnIH1cbiAgICAgICAgICAgICAgOiB7fSl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3NlZ21lbnQudmFsdWV9XG4gICAgICAgICAgPC9UZXh0PlxuICAgICAgICApKX1cbiAgICAgIDwvRWxsaXBzaXNCb3g+XG4gICAgICA8VGV4dCBzY3JlZW5yZWFkZXI+e3RpdGxlfTwvVGV4dD5cbiAgICA8L0ZsZXhCb3g+XG4gICk7XG59O1xuXG50eXBlIFNlYXJjaEFzWW91VHlwZUxvYWRlciA9IHtcbiAgc2hpbW1lclJvd3M6IHtcbiAgICBrZXk6IHN0cmluZztcbiAgICBzaGltbWVyczoge1xuICAgICAga2V5OiBzdHJpbmc7XG4gICAgICB3aWR0aDogbnVtYmVyO1xuICAgIH1bXTtcbiAgfVtdO1xufTtcblxubGV0IGxvYWRlcktleSA9IDA7XG5mdW5jdGlvbiBybmRMb2FkZXIoKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wbHVzcGx1c1xuICBjb25zdCBrZXkgPSBsb2FkZXJLZXkrKztcbiAgY29uc3QgbG9hZGVyOiBTZWFyY2hBc1lvdVR5cGVMb2FkZXIgPSB7IHNoaW1tZXJSb3dzOiBbXSB9O1xuICBmb3IgKGxldCBpID0gMDsgaSA8IDU7IGkrKykge1xuICAgIGNvbnN0IHJvdyA9IHtcbiAgICAgIGtleTogYCR7a2V5fToke2l9YCxcbiAgICAgIHNoaW1tZXJzOiBbXSBhcyB7IGtleTogc3RyaW5nOyB3aWR0aDogbnVtYmVyIH1bXSxcbiAgICB9O1xuICAgIGNvbnN0IHdvcmRzID0gTWF0aC5jZWlsKE1hdGgucmFuZG9tKCkgKiAzKTtcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IHdvcmRzOyBqKyspIHtcbiAgICAgIGNvbnN0IHdpZHRoID0gMTIgKyBNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkgKiA5Nik7XG4gICAgICByb3cuc2hpbW1lcnMucHVzaCh7XG4gICAgICAgIGtleTogYCR7a2V5fToke2p9YCxcbiAgICAgICAgd2lkdGgsXG4gICAgICB9KTtcbiAgICB9XG4gICAgbG9hZGVyLnNoaW1tZXJSb3dzLnB1c2gocm93KTtcbiAgfVxuICByZXR1cm4gbG9hZGVyO1xufVxuXG5leHBvcnQgY29uc3QgU2VhcmNoUGFuZTogUmVhY3QuRkM8U2VhcmNoUGFuZVByb3BzPiA9ICh7XG4gIG9uU2VhcmNoLFxuICBvblRyYWNraW5nQ2xpY2ssXG4gIHNlYXJjaEJ1dHRvblJlZixcbiAgdG9nZ2xlU2VhcmNoLFxuICBvblNlYXJjaEFzWW91VHlwZSxcbn0pID0+IHtcbiAgY29uc3QgdGhlbWUgPSB1c2VUaGVtZSgpO1xuICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IHVzZVN0YXRlKCcnKTtcbiAgY29uc3QgaW5wdXRSZWYgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IFthdXRvQ29tcGxldGVTdWdnZXN0aW9ucywgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnNdID0gdXNlU3RhdGU8XG4gICAgQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbltdXG4gID4oW10pO1xuICBjb25zdCBbc2VhcmNoQXNZb3VUeXBlUmVzdWx0cywgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0c10gPVxuICAgIHVzZVN0YXRlPFNlYXJjaEFzWW91VHlwZVJlc3VsdHMgfCBudWxsPihudWxsKTtcblxuICBjb25zdCBbc2VhcmNoUmVzdWx0Q2xpY2tlZCwgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgY29uc3QgeyBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyB9ID0gdXNlU2VhcmNoVHJhY2tpbmdDb250ZXh0KCk7XG4gIGNvbnN0IHsgZ2xvYmFsSGVhZGVyRHluYW1pY0RhdGEgfSA9IHVzZUdsb2JhbEhlYWRlckR5bmFtaWNEYXRhQ29udGV4dCgpO1xuXG4gIGNvbnN0IGJhbm5lciA9IGdsb2JhbEhlYWRlckR5bmFtaWNEYXRhPy5jYXRhbG9nRHJvcGRvd24/LmJhbm5lcjtcbiAgY29uc3Qgc2hvd01hcmtldGluZ0Jhbm5lciA9IGJhbm5lcj8udGV4dCAmJiBiYW5uZXI/LmhyZWYgJiYgTWFya2V0aW5nQmFubmVyO1xuXG4gIGNvbnN0IHNlYXJjaEFzWW91VHlwZUxvYWRlciA9IFJlYWN0LnVzZU1lbW8oXG4gICAgKCkgPT4gKHNlYXJjaEFzWW91VHlwZVJlc3VsdHMgPT09IG51bGwgPyBybmRMb2FkZXIoKSA6IG51bGwpLFxuICAgIFtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzXVxuICApO1xuXG4gIGNvbnN0IHZhbHVlVHJpbW1lZCA9IHZhbHVlLnRyaW0oKTtcblxuICBjb25zdCBoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2sgPVxuICAgIG9uU2VhcmNoQXNZb3VUeXBlICYmIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMgJiYgIXNlYXJjaFJlc3VsdENsaWNrZWQ7XG5cbiAgY29uc3QgY2xvc2VTZWFyY2ggPSBhc3luYyAoKSA9PiB7XG4gICAgLy8gdHJhY2sgc2VhcmNoIGV2ZW50IHdoZW4gdXNlciBtYWRlIGEgc2VhcmNoIGFuZCB0aGVuIGNsb3NlZCBzZWFyY2ggcGFuZVxuICAgIGlmIChoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2sgJiYgdmFsdWVUcmltbWVkLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM7XG4gICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSk7XG4gICAgfVxuXG4gICAgYXdhaXQgdG9nZ2xlU2VhcmNoKCk7XG4gICAgLy8gYWRkcyBhIGxpdHRsZSBkZWxheSBiZXR3ZWVuIGNsb3NpbmcgdGhlIHNlYXJjaCBwYW5lIGFuZCBmb2N1c2luZyBvbiB0aGUgYnV0dG9uXG4gICAgLy8gdG8gcHJldmVudCB0aGUgc2VhcmNoIHBhbmUgZnJvbSBpbW1lZGlhdGVseSBvcGVuaW5nIGFnYWluXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAoc2VhcmNoQnV0dG9uUmVmICYmIHNlYXJjaEJ1dHRvblJlZj8uY3VycmVudCkge1xuICAgICAgICBzZWFyY2hCdXR0b25SZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9LCAxMCk7XG4gIH07XG5cbiAgY29uc3Qgb25LZXlEb3duID0gdXNlT25Fc2NIYW5kbGVyKGNsb3NlU2VhcmNoKTtcblxuICBjb25zdCBvbk1vdXNlRG93bk91dHNpZGUgPSAoeyB0YXJnZXQgfTogTW91c2VFdmVudCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZU91dHNpZGVDbGljayA9ICgpID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgIWRvY3VtZW50XG4gICAgICAgICAgLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXRlc3RpZD1cImhlYWRlci1zZWFyY2gtZHJvcGRvd25cIl0nKVxuICAgICAgICAgID8uY29udGFpbnModGFyZ2V0IGFzIEhUTUxFbGVtZW50KSAmJlxuICAgICAgICB0YXJnZXQgIT09IHNlYXJjaEJ1dHRvblJlZj8uY3VycmVudFxuICAgICAgKSB7XG4gICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICB9XG5cbiAgICAgIHRhcmdldD8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGhhbmRsZU91dHNpZGVDbGljayk7XG4gICAgfTtcblxuICAgIHRhcmdldD8uYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGhhbmRsZU91dHNpZGVDbGljayk7XG4gIH07XG5cbiAgY29uc3QgbmF2aWdhdGVUb1NlYXJjaCA9IChzZWFyY2hUZXJtOiBzdHJpbmcsIGZyb21QcmV2U2VhcmNoPzogc3RyaW5nKSA9PiB7XG4gICAgb25TZWFyY2goc2VhcmNoVGVybSwgZnJvbVByZXZTZWFyY2gpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUNoYW5nZTogUmVhY3QuQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxJbnB1dEVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgIHNldFZhbHVlKGV2dC50YXJnZXQudmFsdWUpO1xuICAgIC8vIHJlc2V0IHRvIGZhbHNlIHdoZW4gdGhlIHNlYXJjaCBxdWVyeSBjaGFuZ2VzXG4gICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZChmYWxzZSk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlU3VibWl0OiBSZWFjdC5Gb3JtRXZlbnRIYW5kbGVyID0gKGV2ZW50KSA9PiB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCB3aGVuIHRoZSB1c2VyIHN1Ym1pdHMgdGhlIGZvcm0gdG8gY2FwdHVyZSBjb21wbGV0ZSBxdWVyeVxuICAgIGlmIChoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2spIHtcbiAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM7XG4gICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSk7XG4gICAgfVxuXG4gICAgbmF2aWdhdGVUb1NlYXJjaCh2YWx1ZSwgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWQpO1xuICB9O1xuXG4gIGNvbnN0IGNsZWFySW5wdXQgPSAoKSA9PiB7XG4gICAgLy8gdHJhY2sgc2VhcmNoIGV2ZW50IGJlZm9yZSB1c2VyIGNsZWFycyBpbnB1dFxuICAgIGlmIChoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2sgJiYgdmFsdWVUcmltbWVkLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM7XG4gICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSk7XG4gICAgfVxuXG4gICAgc2V0VmFsdWUoJycpO1xuICAgIHNldEF1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zKFtdKTtcbiAgICAvLyByZXNldCB0aGUgY29udGV4dCB3aXRoIGVtcHR5IHZhbHVlc1xuICAgIHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zKHtcbiAgICAgIHF1ZXJ5OiAnJyxcbiAgICAgIHNlYXJjaElkOiAnJyxcbiAgICAgIHJlc3VsdHNDb3VudDogMCxcbiAgICAgIHF1ZXJ5TG9hZFRpbWU6IDAsXG4gICAgfSk7XG4gIH07XG5cbiAgLy8gd2hlbiB0aGUgY3VycmVudCBVUkwgY2hhbmdlcywgd2Ugd2FudCB0byBjbG9zZSB0aGUgc2VhcmNoIHBhbmUgaWYgaXQncyBvcGVuXG4gIC8vIGFuZCB0cmFjayBzZWFyY2ggZXZlbnQgaWYgdXNlciBtYWRlIGEgc2VhcmNoXG4gIHVzZVVybENoYW5nZURldGVjdGlvbih7XG4gICAgb25VcmxDaGFuZ2U6ICgpID0+IHtcbiAgICAgIGlmIChoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2sgJiYgdmFsdWVUcmltbWVkLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSB9ID1cbiAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSk7XG4gICAgICB9XG5cbiAgICAgIHRvZ2dsZVNlYXJjaCgpO1xuICAgIH0sXG4gIH0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gZG9uJ3QgdHJhY2sgaWYgYSByZXN1bHQgd2FzIGNsaWNrZWQgb3IgaWYgd2UgZG9uJ3QgaGF2ZSBzZWFyY2ggcmVzdWx0c1xuICAgIGlmIChcbiAgICAgIHNlYXJjaFJlc3VsdENsaWNrZWQgfHxcbiAgICAgICFvblNlYXJjaEFzWW91VHlwZSB8fFxuICAgICAgIXNlYXJjaEFzWW91VHlwZVJlc3VsdHMgfHxcbiAgICAgICF2YWx1ZVRyaW1tZWQubGVuZ3RoXG4gICAgKVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZWxlc3MtcmV0dXJuXG4gICAgICByZXR1cm47XG4gIH0sIFtcbiAgICBzZWFyY2hSZXN1bHRDbGlja2VkLFxuICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMsXG4gICAgdmFsdWVUcmltbWVkLFxuICAgIG9uU2VhcmNoQXNZb3VUeXBlLFxuICBdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlucHV0UmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgc2VhcmNoV29ya2VyLmluaXQoKTtcbiAgfSwgW10pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCF2YWx1ZVRyaW1tZWQubGVuZ3RoKSB7XG4gICAgICBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKG51bGwpO1xuICAgICAgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMoe1xuICAgICAgICBxdWVyeTogJycsXG4gICAgICAgIHNlYXJjaElkOiAnJyxcbiAgICAgICAgcmVzdWx0c0NvdW50OiAwLFxuICAgICAgICBxdWVyeUxvYWRUaW1lOiAwLFxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGNhbmNlbCA9IGZhbHNlO1xuICAgIGxldCBjbGVhckF1dG9jb21wbGV0ZSA9IHRydWU7XG4gICAgbGV0IGNsZWFyU2VhcmNoQXNZb3VUeXBlID0gdHJ1ZTtcblxuICAgIGxldCBzZWFyY2hFdmVudE5vUmVzdWx0RGVsYXk6IE5vZGVKUy5UaW1lb3V0O1xuXG4gICAgY29uc3QgbG9hZGVyRGVsYXkgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIC8qXG4gICAgICAgKiBXYWl0IDEwIG1pbGxpc2Vjb25kcyB0byBnZXQgYSByZXNwb25zZSBmb3Igd29ya2VyIGJlZm9yZSBzaG93aW5nIGxvYWRlcnMuXG4gICAgICAgKiBUaGlzIHByZXZlbnRzIGZsaWNrZXJpbmcgbG9hZGVycyBvbiBxdWljayBvciBjYWNoZWQgcmVzdWx0cy5cbiAgICAgICAqL1xuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuO1xuICAgICAgaWYgKGNsZWFyQXV0b2NvbXBsZXRlKSBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhbXSk7XG4gICAgICBpZiAoY2xlYXJTZWFyY2hBc1lvdVR5cGUpIHNldFNlYXJjaEFzWW91VHlwZVJlc3VsdHMobnVsbCk7XG4gICAgfSwgMTApO1xuXG4gICAgc2VhcmNoV29ya2VyLmF1dG9jb21wbGV0ZSh2YWx1ZVRyaW1tZWQpLnRoZW4oKHN1Z2dlc3Rpb25zKSA9PiB7XG4gICAgICBjbGVhckF1dG9jb21wbGV0ZSA9IGZhbHNlO1xuXG4gICAgICBpZiAoY2FuY2VsKSByZXR1cm47IC8vIHRleHQgaGFzIGNoYW5nZWQgc2luY2UgdGhpcyByZXF1ZXN0IHdhcyBtYWRlXG5cbiAgICAgIHNldEF1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zKHN1Z2dlc3Rpb25zKTtcbiAgICB9KTtcblxuICAgIHNlYXJjaFdvcmtlci5zZWFyY2hBc1lvdVR5cGUodmFsdWVUcmltbWVkKS50aGVuKChyZXN1bHRzKSA9PiB7XG4gICAgICBjbGVhclNlYXJjaEFzWW91VHlwZSA9IGZhbHNlO1xuXG4gICAgICBpZiAoY2FuY2VsKSByZXR1cm47IC8vIHRleHQgaGFzIGNoYW5nZWQgc2luY2UgdGhpcyByZXF1ZXN0IHdhcyBtYWRlXG5cbiAgICAgIHNldFNlYXJjaEFzWW91VHlwZVJlc3VsdHMocmVzdWx0cyk7XG5cbiAgICAgIHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zKHtcbiAgICAgICAgcXVlcnk6IHJlc3VsdHMucXVlcnksXG4gICAgICAgIHNlYXJjaElkOiByZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICByZXN1bHRzQ291bnQ6IHJlc3VsdHMudG9wLmxlbmd0aCxcbiAgICAgICAgcXVlcnlMb2FkVGltZTogcmVzdWx0cy5xdWVyeUxvYWRUaW1lLFxuICAgICAgfSk7XG5cbiAgICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCB3aXRoIGEgc21hbGwgZGVsYXkgd2hlbiB0aGVyZSBhcmUgbm8gcmVzdWx0c1xuICAgICAgaWYgKFxuICAgICAgICBvblNlYXJjaEFzWW91VHlwZSAmJlxuICAgICAgICByZXN1bHRzLnRvcC5sZW5ndGggPT09IDAgJiZcbiAgICAgICAgIXNlYXJjaFJlc3VsdENsaWNrZWRcbiAgICAgICkge1xuICAgICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcXVlcnlMb2FkVGltZSB9ID0gcmVzdWx0cztcbiAgICAgICAgc2VhcmNoRXZlbnROb1Jlc3VsdERlbGF5ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgaWYgKCFjYW5jZWwpIHtcbiAgICAgICAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgMCwgcXVlcnlMb2FkVGltZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LCAzMDApO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGNhbmNlbCA9IHRydWU7XG4gICAgICBjbGVhclRpbWVvdXQobG9hZGVyRGVsYXkpO1xuICAgICAgY2xlYXJUaW1lb3V0KHNlYXJjaEV2ZW50Tm9SZXN1bHREZWxheSk7XG4gICAgfTtcbiAgfSwgW1xuICAgIHZhbHVlVHJpbW1lZCxcbiAgICBvblNlYXJjaEFzWW91VHlwZSxcbiAgICBzZWFyY2hSZXN1bHRDbGlja2VkLFxuICAgIHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zLFxuICBdKTtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8Qm94XG4gICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgIGJnPVwic2hhZG93LXNlY29uZGFyeVwiXG4gICAgICAgIGhlaWdodD1cIjEwMHZoXCJcbiAgICAgICAgcG9zaXRpb249XCJmaXhlZFwiXG4gICAgICAgIC8vIFdlIGFkZCA2cmVtIGhlcmUgaW4gY2FzZSB0aGVyZSdzIHNvbWUgc29ydCBvZiBicmFuZGVkIGJhbm5lciBhYm92ZSBzZWFyY2hcbiAgICAgICAgLy8gVGhlIHNlYXJjaCBhcmVhIGlzIG11Y2ggdGFsbGVyIHRoYW4gNnJlbSBzbyB0aGlzIGlzIGEgc2FmZSBhbW91bnQgb2YgcGFkZGluZ1xuICAgICAgICB0b3A9e2BjYWxjKCR7dGhlbWUuZWxlbWVudHMuaGVhZGVySGVpZ2h0fSArIDZyZW0pYH1cbiAgICAgICAgd2lkdGg9ezF9XG4gICAgICAvPlxuICAgICAgPEZvY3VzVHJhcFxuICAgICAgICBvbkVzY2FwZUtleT17Y2xvc2VTZWFyY2h9XG4gICAgICAgIG9uQ2xpY2tPdXRzaWRlPXtvbk1vdXNlRG93bk91dHNpZGV9XG4gICAgICAgIGFsbG93UGFnZUludGVyYWN0aW9uXG4gICAgICA+XG4gICAgICAgIDxCb3hcbiAgICAgICAgICBiZz1cImJhY2tncm91bmRcIlxuICAgICAgICAgIGJvcmRlckNvbG9yQm90dG9tPVwiYm9yZGVyLXByaW1hcnlcIlxuICAgICAgICAgIGJvcmRlckNvbG9yVG9wPVwiYm9yZGVyLXRlcnRpYXJ5XCJcbiAgICAgICAgICBib3JkZXJTdHlsZT1cInNvbGlkXCJcbiAgICAgICAgICBib3JkZXJXaWR0aD1cIjJweCAwIDFweFwiXG4gICAgICAgICAgZGF0YS10ZXN0aWQ9XCJoZWFkZXItc2VhcmNoLWRyb3Bkb3duXCJcbiAgICAgICAgICBwb3NpdGlvbj17eyBfOiAnZml4ZWQnLCBtZDogJ2Fic29sdXRlJyB9fVxuICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgbWF4SGVpZ2h0PXt7IF86ICdjYWxjKDEwMHZoIC0gNjNweCknLCBtZDogJ2NhbGMoMTAwdmggLSA4MHB4KScgfX1cbiAgICAgICAgICBvdmVyZmxvdz1cImF1dG9cIlxuICAgICAgICAgIHpJbmRleD17MTB9IC8vIGVuc3VyZSBkcm9wZG93biBpcyBhYm92ZSB0aGUgcGFnZSBjb250ZW50XG4gICAgICAgID5cbiAgICAgICAgICA8Qm94IGJvcmRlcj1cIm5vbmVcIiB3aWR0aD1cImF1dG9cIj5cbiAgICAgICAgICAgIDxRdWVyeUNvbnRhaW5lciAkY29tcGFjdD17ISFzaG93TWFya2V0aW5nQmFubmVyfT5cbiAgICAgICAgICAgICAgPEZsZXhCb3hcbiAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiYmFzZWxpbmVcIlxuICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yPVwiZ3JheS02MDBcIlxuICAgICAgICAgICAgICAgIGJvcmRlclN0eWxlQm90dG9tPVwic29saWRcIlxuICAgICAgICAgICAgICAgIGJvcmRlcldpZHRoQm90dG9tPVwiMXB4XCJcbiAgICAgICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFNlYXJjaEljb25cbiAgICAgICAgICAgICAgICAgIGhlaWdodD17eyBfOiAyMCwgbWQ6IDI0IH19XG4gICAgICAgICAgICAgICAgICB3aWR0aD17eyBfOiAyMCwgbWQ6IDI0IH19XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8Rm9ybVxuICAgICAgICAgICAgICAgICAgYWN0aW9uPVwiL3NlYXJjaFwiXG4gICAgICAgICAgICAgICAgICBpZD1cInNlYXJjaC1mb3JtXCJcbiAgICAgICAgICAgICAgICAgIG1sPXs4fVxuICAgICAgICAgICAgICAgICAgb25TdWJtaXQ9e2hhbmRsZVN1Ym1pdH1cbiAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPFN0eWxlZElucHV0XG4gICAgICAgICAgICAgICAgICAgIGF1dG9Gb2N1c1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcj1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICBmb250U2l6ZT17eyBfOiAyMCwgbWQ6IDI2IH19XG4gICAgICAgICAgICAgICAgICAgIGZvbnRXZWlnaHQ9XCJib2xkXCJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJoZWFkZXItc2VhcmNoLWJhclwiXG4gICAgICAgICAgICAgICAgICAgIG5hbWU9XCJxdWVyeVwiXG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVDaGFuZ2V9XG4gICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17KGUpID0+IG9uS2V5RG93bihlKX1cbiAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e3NlYXJjaFBsYWNlaG9sZGVyfVxuICAgICAgICAgICAgICAgICAgICByZWY9e2lucHV0UmVmfVxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwic2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgICAgICAgICBhdXRvQ29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L0Zvcm0+XG4gICAgICAgICAgICAgICAgPEljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgIGljb249e01pbmlEZWxldGVJY29ufVxuICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkNsZWFyIHNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICB0aXA9XCJDbGVhciBzZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgdGlwUHJvcHM9e3tcbiAgICAgICAgICAgICAgICAgICAgYWxpZ25tZW50OiAnYm90dG9tLWNlbnRlcicsXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudDogJ2Zsb2F0aW5nJyxcbiAgICAgICAgICAgICAgICAgICAgbmFycm93OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICB6SW5kZXg6IDIsXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17Y2xlYXJJbnB1dH1cbiAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgICAgICAgPC9RdWVyeUNvbnRhaW5lcj5cbiAgICAgICAgICA8L0JveD5cbiAgICAgICAgICB7c2hvd01hcmtldGluZ0Jhbm5lciAmJiAoXG4gICAgICAgICAgICA8Q29udGVudENvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPE1hcmtldGluZ0Jhbm5lclxuICAgICAgICAgICAgICAgIHNvdXJjZT1cInNlYXJjaFwiXG4gICAgICAgICAgICAgICAgdGV4dD17YmFubmVyPy50ZXh0fVxuICAgICAgICAgICAgICAgIGhyZWY9e2Jhbm5lcj8uaHJlZn1cbiAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICBweT17eyBfOiAxNiwgbGc6IDI0IH19XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0NvbnRlbnRDb250YWluZXI+XG4gICAgICAgICAgKX1cbiAgICAgICAgICA8U3VnZ2VzdGlvbkNvbnRhaW5lciAkY29tcGFjdD17ISFzaG93TWFya2V0aW5nQmFubmVyfT5cbiAgICAgICAgICAgIHt2YWx1ZVRyaW1tZWQubGVuZ3RoID4gMCA/IChcbiAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICA8RmxleEJveCBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCIgYXM9XCJ1bFwiIGxpc3RTdHlsZT1cIm5vbmVcIiBwPXswfT5cbiAgICAgICAgICAgICAgICAgIHthdXRvQ29tcGxldGVTdWdnZXN0aW9ucy5tYXAoKHMsIGkpID0+IChcbiAgICAgICAgICAgICAgICAgICAgPElubGluZVJlc3VsdExpXG4gICAgICAgICAgICAgICAgICAgICAga2V5PXtzLnRpdGxlfVxuICAgICAgICAgICAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17KGV2dCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV2dC5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdhdXRvY29tcGxldGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWQgPz8gJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMudGl0bGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ2F1dG9jb21wbGV0ZV9yZXN1bHQnLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWQgPz8gJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hdmlnYXRlVG9TZWFyY2goXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHMudGl0bGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPFNlbWlib2xkU2VhcmNoSWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgbWI9ezIgYXMgMH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9ezE0fVxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlV2lkdGg9ezh9XG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlblxuICAgICAgICAgICAgICAgICAgICAgICAgbXI9ezEyfVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPEhpZ2hsaWdodGVkVGV4dCBzdWdnZXN0aW9uPXtzfSAvPlxuICAgICAgICAgICAgICAgICAgICA8L0lubGluZVJlc3VsdExpPlxuICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgICAgICAgICAgIHsoc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyA9PT0gbnVsbCB8fFxuICAgICAgICAgICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy50b3AubGVuZ3RoID4gMCkgJiYgKFxuICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgPFRleHQgYXM9XCJoMlwiIGZvbnRTaXplPXsyMH0gbWI9ezE2fSBtdD17MjR9PlxuICAgICAgICAgICAgICAgICAgICAgIFRvcCByZXN1bHRzXG4gICAgICAgICAgICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgICAgICAgICAgICAgPEZsZXhCb3hcbiAgICAgICAgICAgICAgICAgICAgICBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICAgICBhcz1cInVsXCJcbiAgICAgICAgICAgICAgICAgICAgICBsaXN0U3R5bGU9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICBwPXswfVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAge3NlYXJjaEFzWW91VHlwZVJlc3VsdHMgPT09IG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgID8gc2VhcmNoQXNZb3VUeXBlTG9hZGVyPy5zaGltbWVyUm93cy5tYXAoKHIpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5saW5lTG9hZGVyTGkga2V5PXtyLmtleX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ci5zaGltbWVycy5tYXAoKHdvcmQpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFNoaW1tZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9ezMwfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB5PXs4IGFzIDB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXt3b3JkLmtleX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD17d29yZC53aWR0aH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJveFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250RmFtaWx5PVwiYWNjZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dENvbG9yPVwidGV4dC1zZWNvbmRhcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250U2l6ZT17eyBfOiAxMCBhcyAxNiB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJDb2xvcj1cImJvcmRlci1zZWNvbmRhcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI9ezF9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1cz1cInhsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHg9ezE2fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5PXswLjF9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZuYnNwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9JbmxpbmVMb2FkZXJMaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy50b3AubWFwKChzLCBpKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPElubGluZVJlc3VsdExpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2Ake1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnF1ZXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OiR7aS50b1N0cmluZygpfWB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJsaW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17KGV2dCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXZ0LmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdzZWFyY2hfYXNfeW91X3R5cGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2x1Zzogcy5zbHVnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKHMuY29udGVudElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8geyBjb250ZW50X2lkOiBzLmNvbnRlbnRJZCB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2FmZWx5UmVkaXJlY3Qocy51cmxQYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdzZWFyY2hfYXNfeW91X3R5cGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbHVnOiBzLnNsdWcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKHMuY29udGVudElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHsgY29udGVudF9pZDogcy5jb250ZW50SWQgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB7fSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYWZlbHlSZWRpcmVjdChzLnVybFBhdGgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SGlnaGxpZ2h0ZWRUZXh0IHN1Z2dlc3Rpb249e3N9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QmFkZ2Ugc2l6ZT1cInNtXCIgdmFyaWFudD1cInRlcnRpYXJ5XCIgbWw9ezEyfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3MudHlwZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQmFkZ2U+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9JbmxpbmVSZXN1bHRMaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgIDwvRmxleEJveD5cbiAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAge3NlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnRvcC5sZW5ndGggPT09IDAgJiYgKFxuICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgPEJveCBmb250U2l6ZT17eyBfOiAyMCwgc206IDI2IH19IG10PXswfSBtYj17NDh9PlxuICAgICAgICAgICAgICAgICAgICAgIHtgV2UgY291bGRuJ3QgZmluZCBhIG1hdGNoIGZvciBgfVxuICAgICAgICAgICAgICAgICAgICAgIDxUZXh0IGZvbnRXZWlnaHQ9XCJib2xkXCI+e2BcIiR7dmFsdWVUcmltbWVkfS5cImB9PC9UZXh0PlxuICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICcgVHJ5IGFub3RoZXIga2V5d29yZCwgb3Igc2VlIHdoYXQgb3VyIG1lbWJlcnMgYXJlIGxlYXJuaW5nLidcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICA8TWVudSBib3JkZXI9XCJub25lXCIgdmFyaWFudD1cInBvcG92ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8UG9wdWxhckNvbnRlbnQgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvTWVudT5cbiAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPE1lbnUgYm9yZGVyPVwibm9uZVwiIHZhcmlhbnQ9XCJwb3BvdmVyXCI+XG4gICAgICAgICAgICAgICAgPFBvcHVsYXJTZWFyY2hlc1xuICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaD17bmF2aWdhdGVUb1NlYXJjaH1cbiAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPFBvcHVsYXJDb250ZW50IG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfSAvPlxuICAgICAgICAgICAgICA8L01lbnU+XG4gICAgICAgICAgICApfVxuXG4gICAgICAgICAgICB7ISFzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy50b3AubGVuZ3RoICYmIChcbiAgICAgICAgICAgICAgPFN0cm9rZUJ1dHRvblxuICAgICAgICAgICAgICAgIG15PXsxNn1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ3ZpZXdfYWxsX3Jlc3VsdHMnLCB7XG4gICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaCh2YWx1ZSwgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWQpO1xuICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgVmlldyBhbGwgcmVzdWx0c1xuICAgICAgICAgICAgICA8L1N0cm9rZUJ1dHRvbj5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8UXVpekFuZEhlbHBDZW50ZXJMaW5rc1xuICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja31cbiAgICAgICAgICAgICAgaGFuZGxlQ2xvc2VEcm9wZG93bj17Y2xvc2VTZWFyY2h9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvU3VnZ2VzdGlvbkNvbnRhaW5lcj5cbiAgICAgICAgPC9Cb3g+XG4gICAgICA8L0ZvY3VzVHJhcD5cbiAgICA8Lz5cbiAgKTtcbn07XG4iXX0= */",
|
|
101
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
102
|
+
});
|
|
103
|
+
const EllipsisBox = /*#__PURE__*/_styled(Box, {
|
|
104
|
+
target: "e1e5b20r0",
|
|
105
|
+
label: "EllipsisBox"
|
|
106
|
+
})(process.env.NODE_ENV === "production" ? {
|
|
107
|
+
name: "rkw162",
|
|
108
|
+
styles: "text-overflow:ellipsis"
|
|
109
|
+
} : {
|
|
110
|
+
name: "rkw162",
|
|
111
|
+
styles: "text-overflow:ellipsis/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvU2VhcmNoL1NlYXJjaFBhbmUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXFHK0IiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL0FwcEhlYWRlci9TZWFyY2gvU2VhcmNoUGFuZS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYWRnZSxcbiAgQm94LFxuICBDb250ZW50Q29udGFpbmVyLFxuICBGbGV4Qm94LFxuICBGb2N1c1RyYXAsXG4gIEljb25CdXR0b24sXG4gIE1lbnUsXG4gIE1lbnVJdGVtLFxuICBTaGltbWVyLFxuICBTdHJva2VCdXR0b24sXG4gIFRleHQsXG59IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCB7IE1pbmlEZWxldGVJY29uLCBTZWFyY2hJY29uIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtaWNvbnMnO1xuaW1wb3J0IHsgY3NzLCB0aGVtZSwgdXNlQ3VycmVudE1vZGUgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IHVzZUdsb2JhbEhlYWRlckR5bmFtaWNEYXRhQ29udGV4dCB9IGZyb20gJy4uLy4uL0dsb2JhbEhlYWRlci9jb250ZXh0JztcbmltcG9ydCB7IE1hcmtldGluZ0Jhbm5lciB9IGZyb20gJy4uL0FwcEhlYWRlckVsZW1lbnRzL0FwcEhlYWRlckNhdGFsb2dEcm9wZG93bi9NYXJrZXRpbmdCYW5uZXInO1xuaW1wb3J0IHsgdXNlT25Fc2NIYW5kbGVyIH0gZnJvbSAnLi4vc2hhcmVkJztcbmltcG9ydCB7IHNlYXJjaFBsYWNlaG9sZGVyIH0gZnJvbSAnLi9jb25zdHMnO1xuaW1wb3J0IHsgUG9wdWxhckNvbnRlbnQsIFBvcHVsYXJTZWFyY2hlcyB9IGZyb20gJy4vRGVmYXVsdFJlc3VsdHMnO1xuaW1wb3J0IHsgdXNlVXJsQ2hhbmdlRGV0ZWN0aW9uIH0gZnJvbSAnLi9ob29rcy91c2VVcmxDaGFuZ2VEZXRlY3Rpb24nO1xuaW1wb3J0IHsgUXVpekFuZEhlbHBDZW50ZXJMaW5rcyB9IGZyb20gJy4vUXVpekFuZEhlbHBDZW50ZXJMaW5rcyc7XG5pbXBvcnQgeyBzYWZlbHlSZWRpcmVjdCB9IGZyb20gJy4vc2FmZWx5UmVkaXJlY3QnO1xuaW1wb3J0IHsgdXNlU2VhcmNoVHJhY2tpbmdDb250ZXh0IH0gZnJvbSAnLi9TZWFyY2hUcmFja2luZ1Byb3ZpZGVyJztcbmltcG9ydCB7IHNlYXJjaFdvcmtlciB9IGZyb20gJy4vU2VhcmNoV29ya2VyJztcbmltcG9ydCB0eXBlIHtcbiAgQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbixcbiAgU2VhcmNoQXNZb3VUeXBlUmVzdWx0cyxcbn0gZnJvbSAnLi9TZWFyY2hXb3JrZXIvdHlwZXMnO1xuaW1wb3J0IHsgU2VhcmNoUGFuZVByb3BzIH0gZnJvbSAnLi90eXBlcyc7XG5cbmNvbnN0IEZvcm0gPSBCb3gud2l0aENvbXBvbmVudCgnZm9ybScpO1xuY29uc3QgSW5wdXQgPSBCb3gud2l0aENvbXBvbmVudCgnaW5wdXQnKTtcblxuY29uc3QgUXVlcnlDb250YWluZXIgPSBzdHlsZWQoQ29udGVudENvbnRhaW5lcik8eyAkY29tcGFjdD86IGJvb2xlYW4gfT4oXG4gICh7ICRjb21wYWN0IH0pID0+XG4gICAgY3NzKHtcbiAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICBwdDogMTYsXG4gICAgICBwYjogJGNvbXBhY3QgPyB7IF86IDAsIG1kOiA0IH0gOiB7IF86IDAsIG1kOiAyNCB9LFxuICAgICAgcHg6IHsgXzogMjQgfSxcbiAgICB9KVxuKTtcblxuY29uc3QgU3VnZ2VzdGlvbkNvbnRhaW5lciA9IHN0eWxlZChDb250ZW50Q29udGFpbmVyKTx7ICRjb21wYWN0PzogYm9vbGVhbiB9PihcbiAgKHsgJGNvbXBhY3QgfSkgPT5cbiAgICBjc3Moe1xuICAgICAgcHQ6ICRjb21wYWN0ID8gNCA6IDE2LFxuICAgICAgcGI6IHsgXzogMCwgbWQ6IDI0IH0sXG4gICAgICBweDogeyBfOiAyNCB9LFxuICAgIH0pXG4pO1xuXG5jb25zdCBTdHlsZWRJbnB1dCA9IHN0eWxlZChJbnB1dCkoXG4gIGNzcyh7XG4gICAgb3V0bGluZTogYG5vbmVgLFxuICAgICcmOjpwbGFjZWhvbGRlcic6IHtcbiAgICAgIHRleHRDb2xvcjogdGhlbWUuY29sb3JzWyd0ZXh0LXNlY29uZGFyeSddIGFzIG5ldmVyLFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBJbmxpbmVSZXN1bHRMaSA9IHN0eWxlZChNZW51SXRlbSkoXG4gIGNzcyh7XG4gICAgcGw6IDAsXG4gICAgcHk6IDgsXG4gICAgZm9udFNpemU6IDE2LFxuICAgICcmOmZvY3VzLXZpc2libGU6YWZ0ZXInOiB7XG4gICAgICBsZWZ0OiAtNCxcbiAgICB9LFxuICB9KVxuKTtcblxuY29uc3QgSW5saW5lTG9hZGVyTGkgPSBzdHlsZWQubGkoXG4gIGNzcyh7XG4gICAgbGlzdFN0eWxlVHlwZTogJ25vbmUnLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBnYXA6IDEyLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICB9KVxuKTtcblxuZXhwb3J0IGNvbnN0IFNlbWlib2xkU2VhcmNoSWNvbiA9IHN0eWxlZChTZWFyY2hJY29uKWBcbiAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbiAgY2lyY2xlLFxuICBwYXRoIHtcbiAgICBzdHJva2Utd2lkdGg6IDJweDtcbiAgfVxuICByZWN0IHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMnB4LCAtMnB4KTtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSArIDRweCk7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSArIDRweCk7XG4gIH1cbmA7XG5cbmNvbnN0IEVsbGlwc2lzQm94ID0gc3R5bGVkKEJveClgXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuYDtcblxuY29uc3QgSGlnaGxpZ2h0ZWRUZXh0ID0gKHtcbiAgc3VnZ2VzdGlvbjogeyB0aXRsZSwgc2VnbWVudHMgfSxcbn06IHtcbiAgc3VnZ2VzdGlvbjogQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbjtcbn0pID0+IHtcbiAgY29uc3QgbW9kZSA9IHVzZUN1cnJlbnRNb2RlKCk7XG4gIGNvbnN0IGhpZ2hsaWdodENvbG9yID0gbW9kZSA9PT0gJ2RhcmsnID8gJ2h5cGVyJyA6ICd5ZWxsb3cnO1xuXG4gIHJldHVybiAoXG4gICAgPEZsZXhCb3g+XG4gICAgICA8RWxsaXBzaXNCb3hcbiAgICAgICAgbWF4V2lkdGg9XCJjYWxjKDEwMHZ3IC0gMTI4cHgpXCJcbiAgICAgICAgd2hpdGVTcGFjZT1cInByZVwiXG4gICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgIG92ZXJmbG93PVwiaGlkZGVuXCJcbiAgICAgID5cbiAgICAgICAge3NlZ21lbnRzLm1hcCgoc2VnbWVudCwgaSkgPT4gKFxuICAgICAgICAgIDxUZXh0XG4gICAgICAgICAgICBrZXk9e2Ake3RpdGxlfToke2kudG9TdHJpbmcoKX1gfVxuICAgICAgICAgICAgbGluZUhlaWdodD1cInRpdGxlXCJcbiAgICAgICAgICAgIHsuLi4oc2VnbWVudC5oaWdobGlnaHRcbiAgICAgICAgICAgICAgPyB7IGJnOiBoaWdobGlnaHRDb2xvciwgZm9udFdlaWdodDogJ2JvbGQnIH1cbiAgICAgICAgICAgICAgOiB7fSl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3NlZ21lbnQudmFsdWV9XG4gICAgICAgICAgPC9UZXh0PlxuICAgICAgICApKX1cbiAgICAgIDwvRWxsaXBzaXNCb3g+XG4gICAgICA8VGV4dCBzY3JlZW5yZWFkZXI+e3RpdGxlfTwvVGV4dD5cbiAgICA8L0ZsZXhCb3g+XG4gICk7XG59O1xuXG50eXBlIFNlYXJjaEFzWW91VHlwZUxvYWRlciA9IHtcbiAgc2hpbW1lclJvd3M6IHtcbiAgICBrZXk6IHN0cmluZztcbiAgICBzaGltbWVyczoge1xuICAgICAga2V5OiBzdHJpbmc7XG4gICAgICB3aWR0aDogbnVtYmVyO1xuICAgIH1bXTtcbiAgfVtdO1xufTtcblxubGV0IGxvYWRlcktleSA9IDA7XG5mdW5jdGlvbiBybmRMb2FkZXIoKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wbHVzcGx1c1xuICBjb25zdCBrZXkgPSBsb2FkZXJLZXkrKztcbiAgY29uc3QgbG9hZGVyOiBTZWFyY2hBc1lvdVR5cGVMb2FkZXIgPSB7IHNoaW1tZXJSb3dzOiBbXSB9O1xuICBmb3IgKGxldCBpID0gMDsgaSA8IDU7IGkrKykge1xuICAgIGNvbnN0IHJvdyA9IHtcbiAgICAgIGtleTogYCR7a2V5fToke2l9YCxcbiAgICAgIHNoaW1tZXJzOiBbXSBhcyB7IGtleTogc3RyaW5nOyB3aWR0aDogbnVtYmVyIH1bXSxcbiAgICB9O1xuICAgIGNvbnN0IHdvcmRzID0gTWF0aC5jZWlsKE1hdGgucmFuZG9tKCkgKiAzKTtcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IHdvcmRzOyBqKyspIHtcbiAgICAgIGNvbnN0IHdpZHRoID0gMTIgKyBNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkgKiA5Nik7XG4gICAgICByb3cuc2hpbW1lcnMucHVzaCh7XG4gICAgICAgIGtleTogYCR7a2V5fToke2p9YCxcbiAgICAgICAgd2lkdGgsXG4gICAgICB9KTtcbiAgICB9XG4gICAgbG9hZGVyLnNoaW1tZXJSb3dzLnB1c2gocm93KTtcbiAgfVxuICByZXR1cm4gbG9hZGVyO1xufVxuXG5leHBvcnQgY29uc3QgU2VhcmNoUGFuZTogUmVhY3QuRkM8U2VhcmNoUGFuZVByb3BzPiA9ICh7XG4gIG9uU2VhcmNoLFxuICBvblRyYWNraW5nQ2xpY2ssXG4gIHNlYXJjaEJ1dHRvblJlZixcbiAgdG9nZ2xlU2VhcmNoLFxuICBvblNlYXJjaEFzWW91VHlwZSxcbn0pID0+IHtcbiAgY29uc3QgdGhlbWUgPSB1c2VUaGVtZSgpO1xuICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IHVzZVN0YXRlKCcnKTtcbiAgY29uc3QgaW5wdXRSZWYgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IFthdXRvQ29tcGxldGVTdWdnZXN0aW9ucywgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnNdID0gdXNlU3RhdGU8XG4gICAgQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbltdXG4gID4oW10pO1xuICBjb25zdCBbc2VhcmNoQXNZb3VUeXBlUmVzdWx0cywgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0c10gPVxuICAgIHVzZVN0YXRlPFNlYXJjaEFzWW91VHlwZVJlc3VsdHMgfCBudWxsPihudWxsKTtcblxuICBjb25zdCBbc2VhcmNoUmVzdWx0Q2xpY2tlZCwgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgY29uc3QgeyBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyB9ID0gdXNlU2VhcmNoVHJhY2tpbmdDb250ZXh0KCk7XG4gIGNvbnN0IHsgZ2xvYmFsSGVhZGVyRHluYW1pY0RhdGEgfSA9IHVzZUdsb2JhbEhlYWRlckR5bmFtaWNEYXRhQ29udGV4dCgpO1xuXG4gIGNvbnN0IGJhbm5lciA9IGdsb2JhbEhlYWRlckR5bmFtaWNEYXRhPy5jYXRhbG9nRHJvcGRvd24/LmJhbm5lcjtcbiAgY29uc3Qgc2hvd01hcmtldGluZ0Jhbm5lciA9IGJhbm5lcj8udGV4dCAmJiBiYW5uZXI/LmhyZWYgJiYgTWFya2V0aW5nQmFubmVyO1xuXG4gIGNvbnN0IHNlYXJjaEFzWW91VHlwZUxvYWRlciA9IFJlYWN0LnVzZU1lbW8oXG4gICAgKCkgPT4gKHNlYXJjaEFzWW91VHlwZVJlc3VsdHMgPT09IG51bGwgPyBybmRMb2FkZXIoKSA6IG51bGwpLFxuICAgIFtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzXVxuICApO1xuXG4gIGNvbnN0IHZhbHVlVHJpbW1lZCA9IHZhbHVlLnRyaW0oKTtcblxuICBjb25zdCBoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2sgPVxuICAgIG9uU2VhcmNoQXNZb3VUeXBlICYmIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMgJiYgIXNlYXJjaFJlc3VsdENsaWNrZWQ7XG5cbiAgY29uc3QgY2xvc2VTZWFyY2ggPSBhc3luYyAoKSA9PiB7XG4gICAgLy8gdHJhY2sgc2VhcmNoIGV2ZW50IHdoZW4gdXNlciBtYWRlIGEgc2VhcmNoIGFuZCB0aGVuIGNsb3NlZCBzZWFyY2ggcGFuZVxuICAgIGlmIChoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2sgJiYgdmFsdWVUcmltbWVkLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM7XG4gICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSk7XG4gICAgfVxuXG4gICAgYXdhaXQgdG9nZ2xlU2VhcmNoKCk7XG4gICAgLy8gYWRkcyBhIGxpdHRsZSBkZWxheSBiZXR3ZWVuIGNsb3NpbmcgdGhlIHNlYXJjaCBwYW5lIGFuZCBmb2N1c2luZyBvbiB0aGUgYnV0dG9uXG4gICAgLy8gdG8gcHJldmVudCB0aGUgc2VhcmNoIHBhbmUgZnJvbSBpbW1lZGlhdGVseSBvcGVuaW5nIGFnYWluXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAoc2VhcmNoQnV0dG9uUmVmICYmIHNlYXJjaEJ1dHRvblJlZj8uY3VycmVudCkge1xuICAgICAgICBzZWFyY2hCdXR0b25SZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9LCAxMCk7XG4gIH07XG5cbiAgY29uc3Qgb25LZXlEb3duID0gdXNlT25Fc2NIYW5kbGVyKGNsb3NlU2VhcmNoKTtcblxuICBjb25zdCBvbk1vdXNlRG93bk91dHNpZGUgPSAoeyB0YXJnZXQgfTogTW91c2VFdmVudCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZU91dHNpZGVDbGljayA9ICgpID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgIWRvY3VtZW50XG4gICAgICAgICAgLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXRlc3RpZD1cImhlYWRlci1zZWFyY2gtZHJvcGRvd25cIl0nKVxuICAgICAgICAgID8uY29udGFpbnModGFyZ2V0IGFzIEhUTUxFbGVtZW50KSAmJlxuICAgICAgICB0YXJnZXQgIT09IHNlYXJjaEJ1dHRvblJlZj8uY3VycmVudFxuICAgICAgKSB7XG4gICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICB9XG5cbiAgICAgIHRhcmdldD8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGhhbmRsZU91dHNpZGVDbGljayk7XG4gICAgfTtcblxuICAgIHRhcmdldD8uYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGhhbmRsZU91dHNpZGVDbGljayk7XG4gIH07XG5cbiAgY29uc3QgbmF2aWdhdGVUb1NlYXJjaCA9IChzZWFyY2hUZXJtOiBzdHJpbmcsIGZyb21QcmV2U2VhcmNoPzogc3RyaW5nKSA9PiB7XG4gICAgb25TZWFyY2goc2VhcmNoVGVybSwgZnJvbVByZXZTZWFyY2gpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUNoYW5nZTogUmVhY3QuQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxJbnB1dEVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgIHNldFZhbHVlKGV2dC50YXJnZXQudmFsdWUpO1xuICAgIC8vIHJlc2V0IHRvIGZhbHNlIHdoZW4gdGhlIHNlYXJjaCBxdWVyeSBjaGFuZ2VzXG4gICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZChmYWxzZSk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlU3VibWl0OiBSZWFjdC5Gb3JtRXZlbnRIYW5kbGVyID0gKGV2ZW50KSA9PiB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCB3aGVuIHRoZSB1c2VyIHN1Ym1pdHMgdGhlIGZvcm0gdG8gY2FwdHVyZSBjb21wbGV0ZSBxdWVyeVxuICAgIGlmIChoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2spIHtcbiAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM7XG4gICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSk7XG4gICAgfVxuXG4gICAgbmF2aWdhdGVUb1NlYXJjaCh2YWx1ZSwgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWQpO1xuICB9O1xuXG4gIGNvbnN0IGNsZWFySW5wdXQgPSAoKSA9PiB7XG4gICAgLy8gdHJhY2sgc2VhcmNoIGV2ZW50IGJlZm9yZSB1c2VyIGNsZWFycyBpbnB1dFxuICAgIGlmIChoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2sgJiYgdmFsdWVUcmltbWVkLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM7XG4gICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSk7XG4gICAgfVxuXG4gICAgc2V0VmFsdWUoJycpO1xuICAgIHNldEF1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zKFtdKTtcbiAgICAvLyByZXNldCB0aGUgY29udGV4dCB3aXRoIGVtcHR5IHZhbHVlc1xuICAgIHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zKHtcbiAgICAgIHF1ZXJ5OiAnJyxcbiAgICAgIHNlYXJjaElkOiAnJyxcbiAgICAgIHJlc3VsdHNDb3VudDogMCxcbiAgICAgIHF1ZXJ5TG9hZFRpbWU6IDAsXG4gICAgfSk7XG4gIH07XG5cbiAgLy8gd2hlbiB0aGUgY3VycmVudCBVUkwgY2hhbmdlcywgd2Ugd2FudCB0byBjbG9zZSB0aGUgc2VhcmNoIHBhbmUgaWYgaXQncyBvcGVuXG4gIC8vIGFuZCB0cmFjayBzZWFyY2ggZXZlbnQgaWYgdXNlciBtYWRlIGEgc2VhcmNoXG4gIHVzZVVybENoYW5nZURldGVjdGlvbih7XG4gICAgb25VcmxDaGFuZ2U6ICgpID0+IHtcbiAgICAgIGlmIChoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2sgJiYgdmFsdWVUcmltbWVkLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSB9ID1cbiAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSk7XG4gICAgICB9XG5cbiAgICAgIHRvZ2dsZVNlYXJjaCgpO1xuICAgIH0sXG4gIH0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gZG9uJ3QgdHJhY2sgaWYgYSByZXN1bHQgd2FzIGNsaWNrZWQgb3IgaWYgd2UgZG9uJ3QgaGF2ZSBzZWFyY2ggcmVzdWx0c1xuICAgIGlmIChcbiAgICAgIHNlYXJjaFJlc3VsdENsaWNrZWQgfHxcbiAgICAgICFvblNlYXJjaEFzWW91VHlwZSB8fFxuICAgICAgIXNlYXJjaEFzWW91VHlwZVJlc3VsdHMgfHxcbiAgICAgICF2YWx1ZVRyaW1tZWQubGVuZ3RoXG4gICAgKVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZWxlc3MtcmV0dXJuXG4gICAgICByZXR1cm47XG4gIH0sIFtcbiAgICBzZWFyY2hSZXN1bHRDbGlja2VkLFxuICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMsXG4gICAgdmFsdWVUcmltbWVkLFxuICAgIG9uU2VhcmNoQXNZb3VUeXBlLFxuICBdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlucHV0UmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgc2VhcmNoV29ya2VyLmluaXQoKTtcbiAgfSwgW10pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCF2YWx1ZVRyaW1tZWQubGVuZ3RoKSB7XG4gICAgICBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKG51bGwpO1xuICAgICAgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMoe1xuICAgICAgICBxdWVyeTogJycsXG4gICAgICAgIHNlYXJjaElkOiAnJyxcbiAgICAgICAgcmVzdWx0c0NvdW50OiAwLFxuICAgICAgICBxdWVyeUxvYWRUaW1lOiAwLFxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGNhbmNlbCA9IGZhbHNlO1xuICAgIGxldCBjbGVhckF1dG9jb21wbGV0ZSA9IHRydWU7XG4gICAgbGV0IGNsZWFyU2VhcmNoQXNZb3VUeXBlID0gdHJ1ZTtcblxuICAgIGxldCBzZWFyY2hFdmVudE5vUmVzdWx0RGVsYXk6IE5vZGVKUy5UaW1lb3V0O1xuXG4gICAgY29uc3QgbG9hZGVyRGVsYXkgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIC8qXG4gICAgICAgKiBXYWl0IDEwIG1pbGxpc2Vjb25kcyB0byBnZXQgYSByZXNwb25zZSBmb3Igd29ya2VyIGJlZm9yZSBzaG93aW5nIGxvYWRlcnMuXG4gICAgICAgKiBUaGlzIHByZXZlbnRzIGZsaWNrZXJpbmcgbG9hZGVycyBvbiBxdWljayBvciBjYWNoZWQgcmVzdWx0cy5cbiAgICAgICAqL1xuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuO1xuICAgICAgaWYgKGNsZWFyQXV0b2NvbXBsZXRlKSBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhbXSk7XG4gICAgICBpZiAoY2xlYXJTZWFyY2hBc1lvdVR5cGUpIHNldFNlYXJjaEFzWW91VHlwZVJlc3VsdHMobnVsbCk7XG4gICAgfSwgMTApO1xuXG4gICAgc2VhcmNoV29ya2VyLmF1dG9jb21wbGV0ZSh2YWx1ZVRyaW1tZWQpLnRoZW4oKHN1Z2dlc3Rpb25zKSA9PiB7XG4gICAgICBjbGVhckF1dG9jb21wbGV0ZSA9IGZhbHNlO1xuXG4gICAgICBpZiAoY2FuY2VsKSByZXR1cm47IC8vIHRleHQgaGFzIGNoYW5nZWQgc2luY2UgdGhpcyByZXF1ZXN0IHdhcyBtYWRlXG5cbiAgICAgIHNldEF1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zKHN1Z2dlc3Rpb25zKTtcbiAgICB9KTtcblxuICAgIHNlYXJjaFdvcmtlci5zZWFyY2hBc1lvdVR5cGUodmFsdWVUcmltbWVkKS50aGVuKChyZXN1bHRzKSA9PiB7XG4gICAgICBjbGVhclNlYXJjaEFzWW91VHlwZSA9IGZhbHNlO1xuXG4gICAgICBpZiAoY2FuY2VsKSByZXR1cm47IC8vIHRleHQgaGFzIGNoYW5nZWQgc2luY2UgdGhpcyByZXF1ZXN0IHdhcyBtYWRlXG5cbiAgICAgIHNldFNlYXJjaEFzWW91VHlwZVJlc3VsdHMocmVzdWx0cyk7XG5cbiAgICAgIHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zKHtcbiAgICAgICAgcXVlcnk6IHJlc3VsdHMucXVlcnksXG4gICAgICAgIHNlYXJjaElkOiByZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICByZXN1bHRzQ291bnQ6IHJlc3VsdHMudG9wLmxlbmd0aCxcbiAgICAgICAgcXVlcnlMb2FkVGltZTogcmVzdWx0cy5xdWVyeUxvYWRUaW1lLFxuICAgICAgfSk7XG5cbiAgICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCB3aXRoIGEgc21hbGwgZGVsYXkgd2hlbiB0aGVyZSBhcmUgbm8gcmVzdWx0c1xuICAgICAgaWYgKFxuICAgICAgICBvblNlYXJjaEFzWW91VHlwZSAmJlxuICAgICAgICByZXN1bHRzLnRvcC5sZW5ndGggPT09IDAgJiZcbiAgICAgICAgIXNlYXJjaFJlc3VsdENsaWNrZWRcbiAgICAgICkge1xuICAgICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcXVlcnlMb2FkVGltZSB9ID0gcmVzdWx0cztcbiAgICAgICAgc2VhcmNoRXZlbnROb1Jlc3VsdERlbGF5ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgaWYgKCFjYW5jZWwpIHtcbiAgICAgICAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgMCwgcXVlcnlMb2FkVGltZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LCAzMDApO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGNhbmNlbCA9IHRydWU7XG4gICAgICBjbGVhclRpbWVvdXQobG9hZGVyRGVsYXkpO1xuICAgICAgY2xlYXJUaW1lb3V0KHNlYXJjaEV2ZW50Tm9SZXN1bHREZWxheSk7XG4gICAgfTtcbiAgfSwgW1xuICAgIHZhbHVlVHJpbW1lZCxcbiAgICBvblNlYXJjaEFzWW91VHlwZSxcbiAgICBzZWFyY2hSZXN1bHRDbGlja2VkLFxuICAgIHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zLFxuICBdKTtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8Qm94XG4gICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgIGJnPVwic2hhZG93LXNlY29uZGFyeVwiXG4gICAgICAgIGhlaWdodD1cIjEwMHZoXCJcbiAgICAgICAgcG9zaXRpb249XCJmaXhlZFwiXG4gICAgICAgIC8vIFdlIGFkZCA2cmVtIGhlcmUgaW4gY2FzZSB0aGVyZSdzIHNvbWUgc29ydCBvZiBicmFuZGVkIGJhbm5lciBhYm92ZSBzZWFyY2hcbiAgICAgICAgLy8gVGhlIHNlYXJjaCBhcmVhIGlzIG11Y2ggdGFsbGVyIHRoYW4gNnJlbSBzbyB0aGlzIGlzIGEgc2FmZSBhbW91bnQgb2YgcGFkZGluZ1xuICAgICAgICB0b3A9e2BjYWxjKCR7dGhlbWUuZWxlbWVudHMuaGVhZGVySGVpZ2h0fSArIDZyZW0pYH1cbiAgICAgICAgd2lkdGg9ezF9XG4gICAgICAvPlxuICAgICAgPEZvY3VzVHJhcFxuICAgICAgICBvbkVzY2FwZUtleT17Y2xvc2VTZWFyY2h9XG4gICAgICAgIG9uQ2xpY2tPdXRzaWRlPXtvbk1vdXNlRG93bk91dHNpZGV9XG4gICAgICAgIGFsbG93UGFnZUludGVyYWN0aW9uXG4gICAgICA+XG4gICAgICAgIDxCb3hcbiAgICAgICAgICBiZz1cImJhY2tncm91bmRcIlxuICAgICAgICAgIGJvcmRlckNvbG9yQm90dG9tPVwiYm9yZGVyLXByaW1hcnlcIlxuICAgICAgICAgIGJvcmRlckNvbG9yVG9wPVwiYm9yZGVyLXRlcnRpYXJ5XCJcbiAgICAgICAgICBib3JkZXJTdHlsZT1cInNvbGlkXCJcbiAgICAgICAgICBib3JkZXJXaWR0aD1cIjJweCAwIDFweFwiXG4gICAgICAgICAgZGF0YS10ZXN0aWQ9XCJoZWFkZXItc2VhcmNoLWRyb3Bkb3duXCJcbiAgICAgICAgICBwb3NpdGlvbj17eyBfOiAnZml4ZWQnLCBtZDogJ2Fic29sdXRlJyB9fVxuICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgbWF4SGVpZ2h0PXt7IF86ICdjYWxjKDEwMHZoIC0gNjNweCknLCBtZDogJ2NhbGMoMTAwdmggLSA4MHB4KScgfX1cbiAgICAgICAgICBvdmVyZmxvdz1cImF1dG9cIlxuICAgICAgICAgIHpJbmRleD17MTB9IC8vIGVuc3VyZSBkcm9wZG93biBpcyBhYm92ZSB0aGUgcGFnZSBjb250ZW50XG4gICAgICAgID5cbiAgICAgICAgICA8Qm94IGJvcmRlcj1cIm5vbmVcIiB3aWR0aD1cImF1dG9cIj5cbiAgICAgICAgICAgIDxRdWVyeUNvbnRhaW5lciAkY29tcGFjdD17ISFzaG93TWFya2V0aW5nQmFubmVyfT5cbiAgICAgICAgICAgICAgPEZsZXhCb3hcbiAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiYmFzZWxpbmVcIlxuICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yPVwiZ3JheS02MDBcIlxuICAgICAgICAgICAgICAgIGJvcmRlclN0eWxlQm90dG9tPVwic29saWRcIlxuICAgICAgICAgICAgICAgIGJvcmRlcldpZHRoQm90dG9tPVwiMXB4XCJcbiAgICAgICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFNlYXJjaEljb25cbiAgICAgICAgICAgICAgICAgIGhlaWdodD17eyBfOiAyMCwgbWQ6IDI0IH19XG4gICAgICAgICAgICAgICAgICB3aWR0aD17eyBfOiAyMCwgbWQ6IDI0IH19XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8Rm9ybVxuICAgICAgICAgICAgICAgICAgYWN0aW9uPVwiL3NlYXJjaFwiXG4gICAgICAgICAgICAgICAgICBpZD1cInNlYXJjaC1mb3JtXCJcbiAgICAgICAgICAgICAgICAgIG1sPXs4fVxuICAgICAgICAgICAgICAgICAgb25TdWJtaXQ9e2hhbmRsZVN1Ym1pdH1cbiAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPFN0eWxlZElucHV0XG4gICAgICAgICAgICAgICAgICAgIGF1dG9Gb2N1c1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcj1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICBmb250U2l6ZT17eyBfOiAyMCwgbWQ6IDI2IH19XG4gICAgICAgICAgICAgICAgICAgIGZvbnRXZWlnaHQ9XCJib2xkXCJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJoZWFkZXItc2VhcmNoLWJhclwiXG4gICAgICAgICAgICAgICAgICAgIG5hbWU9XCJxdWVyeVwiXG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVDaGFuZ2V9XG4gICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17KGUpID0+IG9uS2V5RG93bihlKX1cbiAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e3NlYXJjaFBsYWNlaG9sZGVyfVxuICAgICAgICAgICAgICAgICAgICByZWY9e2lucHV0UmVmfVxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwic2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgICAgICAgICBhdXRvQ29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L0Zvcm0+XG4gICAgICAgICAgICAgICAgPEljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgIGljb249e01pbmlEZWxldGVJY29ufVxuICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkNsZWFyIHNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICB0aXA9XCJDbGVhciBzZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgdGlwUHJvcHM9e3tcbiAgICAgICAgICAgICAgICAgICAgYWxpZ25tZW50OiAnYm90dG9tLWNlbnRlcicsXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudDogJ2Zsb2F0aW5nJyxcbiAgICAgICAgICAgICAgICAgICAgbmFycm93OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICB6SW5kZXg6IDIsXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17Y2xlYXJJbnB1dH1cbiAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgICAgICAgPC9RdWVyeUNvbnRhaW5lcj5cbiAgICAgICAgICA8L0JveD5cbiAgICAgICAgICB7c2hvd01hcmtldGluZ0Jhbm5lciAmJiAoXG4gICAgICAgICAgICA8Q29udGVudENvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPE1hcmtldGluZ0Jhbm5lclxuICAgICAgICAgICAgICAgIHNvdXJjZT1cInNlYXJjaFwiXG4gICAgICAgICAgICAgICAgdGV4dD17YmFubmVyPy50ZXh0fVxuICAgICAgICAgICAgICAgIGhyZWY9e2Jhbm5lcj8uaHJlZn1cbiAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICBweT17eyBfOiAxNiwgbGc6IDI0IH19XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0NvbnRlbnRDb250YWluZXI+XG4gICAgICAgICAgKX1cbiAgICAgICAgICA8U3VnZ2VzdGlvbkNvbnRhaW5lciAkY29tcGFjdD17ISFzaG93TWFya2V0aW5nQmFubmVyfT5cbiAgICAgICAgICAgIHt2YWx1ZVRyaW1tZWQubGVuZ3RoID4gMCA/IChcbiAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICA8RmxleEJveCBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCIgYXM9XCJ1bFwiIGxpc3RTdHlsZT1cIm5vbmVcIiBwPXswfT5cbiAgICAgICAgICAgICAgICAgIHthdXRvQ29tcGxldGVTdWdnZXN0aW9ucy5tYXAoKHMsIGkpID0+IChcbiAgICAgICAgICAgICAgICAgICAgPElubGluZVJlc3VsdExpXG4gICAgICAgICAgICAgICAgICAgICAga2V5PXtzLnRpdGxlfVxuICAgICAgICAgICAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17KGV2dCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV2dC5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdhdXRvY29tcGxldGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWQgPz8gJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMudGl0bGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ2F1dG9jb21wbGV0ZV9yZXN1bHQnLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWQgPz8gJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hdmlnYXRlVG9TZWFyY2goXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHMudGl0bGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPFNlbWlib2xkU2VhcmNoSWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgbWI9ezIgYXMgMH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9ezE0fVxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlV2lkdGg9ezh9XG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlblxuICAgICAgICAgICAgICAgICAgICAgICAgbXI9ezEyfVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPEhpZ2hsaWdodGVkVGV4dCBzdWdnZXN0aW9uPXtzfSAvPlxuICAgICAgICAgICAgICAgICAgICA8L0lubGluZVJlc3VsdExpPlxuICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgICAgICAgICAgIHsoc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyA9PT0gbnVsbCB8fFxuICAgICAgICAgICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy50b3AubGVuZ3RoID4gMCkgJiYgKFxuICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgPFRleHQgYXM9XCJoMlwiIGZvbnRTaXplPXsyMH0gbWI9ezE2fSBtdD17MjR9PlxuICAgICAgICAgICAgICAgICAgICAgIFRvcCByZXN1bHRzXG4gICAgICAgICAgICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgICAgICAgICAgICAgPEZsZXhCb3hcbiAgICAgICAgICAgICAgICAgICAgICBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICAgICBhcz1cInVsXCJcbiAgICAgICAgICAgICAgICAgICAgICBsaXN0U3R5bGU9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICBwPXswfVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAge3NlYXJjaEFzWW91VHlwZVJlc3VsdHMgPT09IG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgID8gc2VhcmNoQXNZb3VUeXBlTG9hZGVyPy5zaGltbWVyUm93cy5tYXAoKHIpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5saW5lTG9hZGVyTGkga2V5PXtyLmtleX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ci5zaGltbWVycy5tYXAoKHdvcmQpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFNoaW1tZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9ezMwfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB5PXs4IGFzIDB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXt3b3JkLmtleX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD17d29yZC53aWR0aH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJveFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250RmFtaWx5PVwiYWNjZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dENvbG9yPVwidGV4dC1zZWNvbmRhcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250U2l6ZT17eyBfOiAxMCBhcyAxNiB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJDb2xvcj1cImJvcmRlci1zZWNvbmRhcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI9ezF9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1cz1cInhsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHg9ezE2fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5PXswLjF9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZuYnNwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9JbmxpbmVMb2FkZXJMaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy50b3AubWFwKChzLCBpKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPElubGluZVJlc3VsdExpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2Ake1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnF1ZXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OiR7aS50b1N0cmluZygpfWB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJsaW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17KGV2dCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXZ0LmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdzZWFyY2hfYXNfeW91X3R5cGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2x1Zzogcy5zbHVnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKHMuY29udGVudElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8geyBjb250ZW50X2lkOiBzLmNvbnRlbnRJZCB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2FmZWx5UmVkaXJlY3Qocy51cmxQYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdzZWFyY2hfYXNfeW91X3R5cGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbHVnOiBzLnNsdWcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKHMuY29udGVudElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHsgY29udGVudF9pZDogcy5jb250ZW50SWQgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB7fSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYWZlbHlSZWRpcmVjdChzLnVybFBhdGgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SGlnaGxpZ2h0ZWRUZXh0IHN1Z2dlc3Rpb249e3N9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QmFkZ2Ugc2l6ZT1cInNtXCIgdmFyaWFudD1cInRlcnRpYXJ5XCIgbWw9ezEyfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3MudHlwZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQmFkZ2U+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9JbmxpbmVSZXN1bHRMaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgIDwvRmxleEJveD5cbiAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAge3NlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnRvcC5sZW5ndGggPT09IDAgJiYgKFxuICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgPEJveCBmb250U2l6ZT17eyBfOiAyMCwgc206IDI2IH19IG10PXswfSBtYj17NDh9PlxuICAgICAgICAgICAgICAgICAgICAgIHtgV2UgY291bGRuJ3QgZmluZCBhIG1hdGNoIGZvciBgfVxuICAgICAgICAgICAgICAgICAgICAgIDxUZXh0IGZvbnRXZWlnaHQ9XCJib2xkXCI+e2BcIiR7dmFsdWVUcmltbWVkfS5cImB9PC9UZXh0PlxuICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICcgVHJ5IGFub3RoZXIga2V5d29yZCwgb3Igc2VlIHdoYXQgb3VyIG1lbWJlcnMgYXJlIGxlYXJuaW5nLidcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICA8TWVudSBib3JkZXI9XCJub25lXCIgdmFyaWFudD1cInBvcG92ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8UG9wdWxhckNvbnRlbnQgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvTWVudT5cbiAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPE1lbnUgYm9yZGVyPVwibm9uZVwiIHZhcmlhbnQ9XCJwb3BvdmVyXCI+XG4gICAgICAgICAgICAgICAgPFBvcHVsYXJTZWFyY2hlc1xuICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaD17bmF2aWdhdGVUb1NlYXJjaH1cbiAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPFBvcHVsYXJDb250ZW50IG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfSAvPlxuICAgICAgICAgICAgICA8L01lbnU+XG4gICAgICAgICAgICApfVxuXG4gICAgICAgICAgICB7ISFzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy50b3AubGVuZ3RoICYmIChcbiAgICAgICAgICAgICAgPFN0cm9rZUJ1dHRvblxuICAgICAgICAgICAgICAgIG15PXsxNn1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ3ZpZXdfYWxsX3Jlc3VsdHMnLCB7XG4gICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaCh2YWx1ZSwgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWQpO1xuICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgVmlldyBhbGwgcmVzdWx0c1xuICAgICAgICAgICAgICA8L1N0cm9rZUJ1dHRvbj5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8UXVpekFuZEhlbHBDZW50ZXJMaW5rc1xuICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja31cbiAgICAgICAgICAgICAgaGFuZGxlQ2xvc2VEcm9wZG93bj17Y2xvc2VTZWFyY2h9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvU3VnZ2VzdGlvbkNvbnRhaW5lcj5cbiAgICAgICAgPC9Cb3g+XG4gICAgICA8L0ZvY3VzVHJhcD5cbiAgICA8Lz5cbiAgKTtcbn07XG4iXX0= */",
|
|
112
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
113
|
+
});
|
|
114
|
+
const HighlightedText = ({
|
|
115
|
+
suggestion: {
|
|
116
|
+
title,
|
|
117
|
+
segments
|
|
118
|
+
}
|
|
119
|
+
}) => {
|
|
120
|
+
const mode = useCurrentMode();
|
|
121
|
+
const highlightColor = mode === 'dark' ? 'hyper' : 'yellow';
|
|
122
|
+
return /*#__PURE__*/_jsxs(FlexBox, {
|
|
123
|
+
children: [/*#__PURE__*/_jsx(EllipsisBox, {
|
|
124
|
+
maxWidth: "calc(100vw - 128px)",
|
|
125
|
+
whiteSpace: "pre",
|
|
126
|
+
"aria-hidden": true,
|
|
127
|
+
overflow: "hidden",
|
|
128
|
+
children: segments.map((segment, i) => /*#__PURE__*/_jsx(Text, {
|
|
129
|
+
lineHeight: "title",
|
|
130
|
+
...(segment.highlight ? {
|
|
131
|
+
bg: highlightColor,
|
|
132
|
+
fontWeight: 'bold'
|
|
133
|
+
} : {}),
|
|
134
|
+
children: segment.value
|
|
135
|
+
}, `${title}:${i.toString()}`))
|
|
136
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
137
|
+
screenreader: true,
|
|
138
|
+
children: title
|
|
139
|
+
})]
|
|
140
|
+
});
|
|
89
141
|
};
|
|
90
142
|
let loaderKey = 0;
|
|
91
143
|
function rndLoader() {
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
144
|
+
// eslint-disable-next-line no-plusplus
|
|
145
|
+
const key = loaderKey++;
|
|
146
|
+
const loader = {
|
|
147
|
+
shimmerRows: []
|
|
148
|
+
};
|
|
149
|
+
for (let i = 0; i < 5; i++) {
|
|
150
|
+
const row = {
|
|
151
|
+
key: `${key}:${i}`,
|
|
152
|
+
shimmers: []
|
|
153
|
+
};
|
|
154
|
+
const words = Math.ceil(Math.random() * 3);
|
|
155
|
+
for (let j = 0; j < words; j++) {
|
|
156
|
+
const width = 12 + Math.round(Math.random() * 96);
|
|
157
|
+
row.shimmers.push({
|
|
158
|
+
key: `${key}:${j}`,
|
|
159
|
+
width
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
loader.shimmerRows.push(row);
|
|
163
|
+
}
|
|
164
|
+
return loader;
|
|
110
165
|
}
|
|
111
|
-
const SearchPane = ({
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
children: [
|
|
281
|
-
/* @__PURE__ */ jsx(SearchIcon, {
|
|
282
|
-
height: {
|
|
283
|
-
_: 20,
|
|
284
|
-
md: 24
|
|
285
|
-
},
|
|
286
|
-
width: {
|
|
287
|
-
_: 20,
|
|
288
|
-
md: 24
|
|
289
|
-
}
|
|
290
|
-
}),
|
|
291
|
-
/* @__PURE__ */ jsx(Form, {
|
|
292
|
-
action: "/search",
|
|
293
|
-
id: "search-form",
|
|
294
|
-
ml: 8,
|
|
295
|
-
onSubmit: handleSubmit,
|
|
296
|
-
width: "100%",
|
|
297
|
-
children: /* @__PURE__ */ jsx(StyledInput, {
|
|
298
|
-
autoFocus: true,
|
|
299
|
-
background: "none",
|
|
300
|
-
border: "none",
|
|
301
|
-
color: "text",
|
|
302
|
-
fontSize: {
|
|
303
|
-
_: 20,
|
|
304
|
-
md: 26
|
|
305
|
-
},
|
|
306
|
-
fontWeight: "bold",
|
|
307
|
-
id: "header-search-bar",
|
|
308
|
-
name: "query",
|
|
309
|
-
onChange: handleChange,
|
|
310
|
-
onKeyDown: (e) => onKeyDown(e),
|
|
311
|
-
placeholder: searchPlaceholder,
|
|
312
|
-
ref: inputRef,
|
|
313
|
-
type: "search",
|
|
314
|
-
value,
|
|
315
|
-
width: "100%",
|
|
316
|
-
autoComplete: "off"
|
|
317
|
-
})
|
|
318
|
-
}),
|
|
319
|
-
/* @__PURE__ */ jsx(IconButton, {
|
|
320
|
-
icon: MiniDeleteIcon,
|
|
321
|
-
"aria-label": "Clear search",
|
|
322
|
-
tip: "Clear search",
|
|
323
|
-
tipProps: {
|
|
324
|
-
alignment: "bottom-center",
|
|
325
|
-
placement: "floating",
|
|
326
|
-
narrow: true,
|
|
327
|
-
zIndex: 2
|
|
328
|
-
},
|
|
329
|
-
onClick: clearInput,
|
|
330
|
-
size: "small"
|
|
331
|
-
})
|
|
332
|
-
]
|
|
333
|
-
}) })
|
|
334
|
-
}), /* @__PURE__ */ jsxs(SuggestionContainer, { children: [
|
|
335
|
-
valueTrimmed.length > 0 ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
336
|
-
/* @__PURE__ */ jsx(FlexBox, {
|
|
337
|
-
flexDirection: "column",
|
|
338
|
-
as: "ul",
|
|
339
|
-
listStyle: "none",
|
|
340
|
-
p: 0,
|
|
341
|
-
children: autoCompleteSuggestions.map((s, i) => /* @__PURE__ */ jsxs(InlineResultLi, {
|
|
342
|
-
tabIndex: 0,
|
|
343
|
-
onKeyDown: (evt) => {
|
|
344
|
-
if (evt.key === "Enter") {
|
|
345
|
-
setSearchResultClicked(true);
|
|
346
|
-
onTrackingClick("autocomplete_result", {
|
|
347
|
-
search_id: searchAsYouTypeResults?.searchId ?? "",
|
|
348
|
-
misc: JSON.stringify({ position: i })
|
|
349
|
-
});
|
|
350
|
-
navigateToSearch(s.title, searchAsYouTypeResults?.searchId);
|
|
351
|
-
closeSearch();
|
|
352
|
-
}
|
|
353
|
-
},
|
|
354
|
-
onClick: () => {
|
|
355
|
-
setSearchResultClicked(true);
|
|
356
|
-
onTrackingClick("autocomplete_result", {
|
|
357
|
-
search_id: searchAsYouTypeResults?.searchId ?? "",
|
|
358
|
-
misc: JSON.stringify({ position: i })
|
|
359
|
-
});
|
|
360
|
-
navigateToSearch(s.title, searchAsYouTypeResults?.searchId);
|
|
361
|
-
closeSearch();
|
|
362
|
-
},
|
|
363
|
-
children: [/* @__PURE__ */ jsx(SemiboldSearchIcon, {
|
|
364
|
-
mb: 2,
|
|
365
|
-
size: 14,
|
|
366
|
-
strokeWidth: 8,
|
|
367
|
-
"aria-hidden": true,
|
|
368
|
-
mr: 12
|
|
369
|
-
}), /* @__PURE__ */ jsx(HighlightedText, { suggestion: s })]
|
|
370
|
-
}, s.title))
|
|
371
|
-
}),
|
|
372
|
-
(searchAsYouTypeResults === null || searchAsYouTypeResults.top.length > 0) && /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(Text, {
|
|
373
|
-
as: "h2",
|
|
374
|
-
fontSize: 20,
|
|
375
|
-
mb: 16,
|
|
376
|
-
mt: 24,
|
|
377
|
-
children: "Top results"
|
|
378
|
-
}), /* @__PURE__ */ jsx(FlexBox, {
|
|
379
|
-
flexDirection: "column",
|
|
380
|
-
as: "ul",
|
|
381
|
-
listStyle: "none",
|
|
382
|
-
p: 0,
|
|
383
|
-
children: searchAsYouTypeResults === null ? searchAsYouTypeLoader?.shimmerRows.map((r) => /* @__PURE__ */ jsxs(InlineLoaderLi, { children: [r.shimmers.map((word) => /* @__PURE__ */ jsx(Shimmer, {
|
|
384
|
-
height: 30,
|
|
385
|
-
py: 8,
|
|
386
|
-
width: word.width
|
|
387
|
-
}, word.key)), /* @__PURE__ */ jsx(Box, {
|
|
388
|
-
fontFamily: "accent",
|
|
389
|
-
textColor: "text-secondary",
|
|
390
|
-
fontSize: { _: 10 },
|
|
391
|
-
borderColor: "border-secondary",
|
|
392
|
-
border: 1,
|
|
393
|
-
borderRadius: "xl",
|
|
394
|
-
px: 16,
|
|
395
|
-
opacity: .1,
|
|
396
|
-
children: "\xA0"
|
|
397
|
-
})] }, r.key)) : searchAsYouTypeResults.top.map((s, i) => /* @__PURE__ */ jsxs(InlineResultLi, {
|
|
398
|
-
tabIndex: 0,
|
|
399
|
-
role: "link",
|
|
400
|
-
onKeyDown: (evt) => {
|
|
401
|
-
if (evt.key === "Enter") {
|
|
402
|
-
setSearchResultClicked(true);
|
|
403
|
-
onTrackingClick("search_as_you_type_result", {
|
|
404
|
-
search_id: searchAsYouTypeResults.searchId,
|
|
405
|
-
slug: s.slug,
|
|
406
|
-
...s.contentId ? { content_id: s.contentId } : {},
|
|
407
|
-
misc: JSON.stringify({ position: i })
|
|
408
|
-
});
|
|
409
|
-
closeSearch();
|
|
410
|
-
safelyRedirect(s.urlPath);
|
|
411
|
-
}
|
|
412
|
-
},
|
|
413
|
-
onClick: () => {
|
|
414
|
-
setSearchResultClicked(true);
|
|
415
|
-
onTrackingClick("search_as_you_type_result", {
|
|
416
|
-
search_id: searchAsYouTypeResults.searchId,
|
|
417
|
-
slug: s.slug,
|
|
418
|
-
...s.contentId ? { content_id: s.contentId } : {},
|
|
419
|
-
misc: JSON.stringify({ position: i })
|
|
420
|
-
});
|
|
421
|
-
closeSearch();
|
|
422
|
-
safelyRedirect(s.urlPath);
|
|
423
|
-
},
|
|
424
|
-
children: [/* @__PURE__ */ jsx(HighlightedText, { suggestion: s }), /* @__PURE__ */ jsx(Badge, {
|
|
425
|
-
size: "sm",
|
|
426
|
-
variant: "tertiary",
|
|
427
|
-
ml: 12,
|
|
428
|
-
children: s.type
|
|
429
|
-
})]
|
|
430
|
-
}, `${searchAsYouTypeResults.query}:${i.toString()}`))
|
|
431
|
-
})] }),
|
|
432
|
-
searchAsYouTypeResults?.top.length === 0 && /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsxs(Box, {
|
|
433
|
-
fontSize: {
|
|
434
|
-
_: 20,
|
|
435
|
-
sm: 26
|
|
436
|
-
},
|
|
437
|
-
mt: 0,
|
|
438
|
-
mb: 48,
|
|
439
|
-
children: [
|
|
440
|
-
`We couldn't find a match for `,
|
|
441
|
-
/* @__PURE__ */ jsx(Text, {
|
|
442
|
-
fontWeight: "bold",
|
|
443
|
-
children: `"${valueTrimmed}."`
|
|
444
|
-
}),
|
|
445
|
-
" Try another keyword, or see what our members are learning."
|
|
446
|
-
]
|
|
447
|
-
}), /* @__PURE__ */ jsx(Menu, {
|
|
448
|
-
border: "none",
|
|
449
|
-
variant: "popover",
|
|
450
|
-
children: /* @__PURE__ */ jsx(PopularContent, { onTrackingClick })
|
|
451
|
-
})] })
|
|
452
|
-
] }) : /* @__PURE__ */ jsxs(Menu, {
|
|
453
|
-
border: "none",
|
|
454
|
-
variant: "popover",
|
|
455
|
-
children: [/* @__PURE__ */ jsx(PopularSearches, {
|
|
456
|
-
navigateToSearch,
|
|
457
|
-
onTrackingClick
|
|
458
|
-
}), /* @__PURE__ */ jsx(PopularContent, { onTrackingClick })]
|
|
459
|
-
}),
|
|
460
|
-
!!searchAsYouTypeResults?.top.length && /* @__PURE__ */ jsx(StrokeButton, {
|
|
461
|
-
my: 16,
|
|
462
|
-
onClick: () => {
|
|
463
|
-
onTrackingClick("view_all_results", { search_id: searchAsYouTypeResults.searchId });
|
|
464
|
-
navigateToSearch(value, searchAsYouTypeResults?.searchId);
|
|
465
|
-
closeSearch();
|
|
466
|
-
},
|
|
467
|
-
children: "View all results"
|
|
468
|
-
}),
|
|
469
|
-
/* @__PURE__ */ jsx(QuizAndHelpCenterLinks, {
|
|
470
|
-
onTrackingClick,
|
|
471
|
-
handleCloseDropdown: closeSearch
|
|
472
|
-
})
|
|
473
|
-
] })]
|
|
474
|
-
})
|
|
475
|
-
})] });
|
|
476
|
-
};
|
|
166
|
+
export const SearchPane = ({
|
|
167
|
+
onSearch,
|
|
168
|
+
onTrackingClick,
|
|
169
|
+
searchButtonRef,
|
|
170
|
+
toggleSearch,
|
|
171
|
+
onSearchAsYouType
|
|
172
|
+
}) => {
|
|
173
|
+
const theme = useTheme();
|
|
174
|
+
const [value, setValue] = useState('');
|
|
175
|
+
const inputRef = useRef(null);
|
|
176
|
+
const [autoCompleteSuggestions, setAutoCompleteSuggestions] = useState([]);
|
|
177
|
+
const [searchAsYouTypeResults, setSearchAsYouTypeResults] = useState(null);
|
|
178
|
+
const [searchResultClicked, setSearchResultClicked] = useState(false);
|
|
179
|
+
const {
|
|
180
|
+
setOnSearchAsYouTypeParams
|
|
181
|
+
} = useSearchTrackingContext();
|
|
182
|
+
const {
|
|
183
|
+
globalHeaderDynamicData
|
|
184
|
+
} = useGlobalHeaderDynamicDataContext();
|
|
185
|
+
const banner = globalHeaderDynamicData?.catalogDropdown?.banner;
|
|
186
|
+
const showMarketingBanner = banner?.text && banner?.href && MarketingBanner;
|
|
187
|
+
const searchAsYouTypeLoader = React.useMemo(() => searchAsYouTypeResults === null ? rndLoader() : null, [searchAsYouTypeResults]);
|
|
188
|
+
const valueTrimmed = value.trim();
|
|
189
|
+
const hasSearchEventAndResultsWithoutClick = onSearchAsYouType && searchAsYouTypeResults && !searchResultClicked;
|
|
190
|
+
const closeSearch = async () => {
|
|
191
|
+
// track search event when user made a search and then closed search pane
|
|
192
|
+
if (hasSearchEventAndResultsWithoutClick && valueTrimmed.length > 0) {
|
|
193
|
+
const {
|
|
194
|
+
query,
|
|
195
|
+
searchId,
|
|
196
|
+
resultsCount,
|
|
197
|
+
queryLoadTime
|
|
198
|
+
} = searchAsYouTypeResults;
|
|
199
|
+
onSearchAsYouType(query, searchId, resultsCount, queryLoadTime);
|
|
200
|
+
}
|
|
201
|
+
await toggleSearch();
|
|
202
|
+
// adds a little delay between closing the search pane and focusing on the button
|
|
203
|
+
// to prevent the search pane from immediately opening again
|
|
204
|
+
setTimeout(() => {
|
|
205
|
+
if (searchButtonRef && searchButtonRef?.current) {
|
|
206
|
+
searchButtonRef.current?.focus();
|
|
207
|
+
}
|
|
208
|
+
}, 10);
|
|
209
|
+
};
|
|
210
|
+
const onKeyDown = useOnEscHandler(closeSearch);
|
|
211
|
+
const onMouseDownOutside = ({
|
|
212
|
+
target
|
|
213
|
+
}) => {
|
|
214
|
+
const handleOutsideClick = () => {
|
|
215
|
+
if (!document.querySelector('[data-testid="header-search-dropdown"]')?.contains(target) && target !== searchButtonRef?.current) {
|
|
216
|
+
closeSearch();
|
|
217
|
+
}
|
|
218
|
+
target?.removeEventListener('mouseup', handleOutsideClick);
|
|
219
|
+
};
|
|
220
|
+
target?.addEventListener('mouseup', handleOutsideClick);
|
|
221
|
+
};
|
|
222
|
+
const navigateToSearch = (searchTerm, fromPrevSearch) => {
|
|
223
|
+
onSearch(searchTerm, fromPrevSearch);
|
|
224
|
+
};
|
|
225
|
+
const handleChange = evt => {
|
|
226
|
+
setValue(evt.target.value);
|
|
227
|
+
// reset to false when the search query changes
|
|
228
|
+
setSearchResultClicked(false);
|
|
229
|
+
};
|
|
230
|
+
const handleSubmit = event => {
|
|
231
|
+
event.preventDefault();
|
|
232
|
+
|
|
233
|
+
// track search event when the user submits the form to capture complete query
|
|
234
|
+
if (hasSearchEventAndResultsWithoutClick) {
|
|
235
|
+
const {
|
|
236
|
+
query,
|
|
237
|
+
searchId,
|
|
238
|
+
resultsCount,
|
|
239
|
+
queryLoadTime
|
|
240
|
+
} = searchAsYouTypeResults;
|
|
241
|
+
onSearchAsYouType(query, searchId, resultsCount, queryLoadTime);
|
|
242
|
+
}
|
|
243
|
+
navigateToSearch(value, searchAsYouTypeResults?.searchId);
|
|
244
|
+
};
|
|
245
|
+
const clearInput = () => {
|
|
246
|
+
// track search event before user clears input
|
|
247
|
+
if (hasSearchEventAndResultsWithoutClick && valueTrimmed.length > 0) {
|
|
248
|
+
const {
|
|
249
|
+
query,
|
|
250
|
+
searchId,
|
|
251
|
+
resultsCount,
|
|
252
|
+
queryLoadTime
|
|
253
|
+
} = searchAsYouTypeResults;
|
|
254
|
+
onSearchAsYouType(query, searchId, resultsCount, queryLoadTime);
|
|
255
|
+
}
|
|
256
|
+
setValue('');
|
|
257
|
+
setAutoCompleteSuggestions([]);
|
|
258
|
+
// reset the context with empty values
|
|
259
|
+
setOnSearchAsYouTypeParams({
|
|
260
|
+
query: '',
|
|
261
|
+
searchId: '',
|
|
262
|
+
resultsCount: 0,
|
|
263
|
+
queryLoadTime: 0
|
|
264
|
+
});
|
|
265
|
+
};
|
|
266
|
+
|
|
267
|
+
// when the current URL changes, we want to close the search pane if it's open
|
|
268
|
+
// and track search event if user made a search
|
|
269
|
+
useUrlChangeDetection({
|
|
270
|
+
onUrlChange: () => {
|
|
271
|
+
if (hasSearchEventAndResultsWithoutClick && valueTrimmed.length > 0) {
|
|
272
|
+
const {
|
|
273
|
+
query,
|
|
274
|
+
searchId,
|
|
275
|
+
resultsCount,
|
|
276
|
+
queryLoadTime
|
|
277
|
+
} = searchAsYouTypeResults;
|
|
278
|
+
onSearchAsYouType(query, searchId, resultsCount, queryLoadTime);
|
|
279
|
+
}
|
|
280
|
+
toggleSearch();
|
|
281
|
+
}
|
|
282
|
+
});
|
|
283
|
+
useEffect(() => {
|
|
284
|
+
// don't track if a result was clicked or if we don't have search results
|
|
285
|
+
if (searchResultClicked || !onSearchAsYouType || !searchAsYouTypeResults || !valueTrimmed.length)
|
|
286
|
+
// eslint-disable-next-line no-useless-return
|
|
287
|
+
return;
|
|
288
|
+
}, [searchResultClicked, searchAsYouTypeResults, valueTrimmed, onSearchAsYouType]);
|
|
289
|
+
useEffect(() => {
|
|
290
|
+
inputRef.current?.focus();
|
|
291
|
+
searchWorker.init();
|
|
292
|
+
}, []);
|
|
293
|
+
useEffect(() => {
|
|
294
|
+
if (!valueTrimmed.length) {
|
|
295
|
+
setSearchAsYouTypeResults(null);
|
|
296
|
+
setAutoCompleteSuggestions([]);
|
|
297
|
+
setOnSearchAsYouTypeParams({
|
|
298
|
+
query: '',
|
|
299
|
+
searchId: '',
|
|
300
|
+
resultsCount: 0,
|
|
301
|
+
queryLoadTime: 0
|
|
302
|
+
});
|
|
303
|
+
return;
|
|
304
|
+
}
|
|
305
|
+
let cancel = false;
|
|
306
|
+
let clearAutocomplete = true;
|
|
307
|
+
let clearSearchAsYouType = true;
|
|
308
|
+
let searchEventNoResultDelay;
|
|
309
|
+
const loaderDelay = setTimeout(() => {
|
|
310
|
+
/*
|
|
311
|
+
* Wait 10 milliseconds to get a response for worker before showing loaders.
|
|
312
|
+
* This prevents flickering loaders on quick or cached results.
|
|
313
|
+
*/
|
|
314
|
+
if (cancel) return;
|
|
315
|
+
if (clearAutocomplete) setAutoCompleteSuggestions([]);
|
|
316
|
+
if (clearSearchAsYouType) setSearchAsYouTypeResults(null);
|
|
317
|
+
}, 10);
|
|
318
|
+
searchWorker.autocomplete(valueTrimmed).then(suggestions => {
|
|
319
|
+
clearAutocomplete = false;
|
|
320
|
+
if (cancel) return; // text has changed since this request was made
|
|
321
|
+
|
|
322
|
+
setAutoCompleteSuggestions(suggestions);
|
|
323
|
+
});
|
|
324
|
+
searchWorker.searchAsYouType(valueTrimmed).then(results => {
|
|
325
|
+
clearSearchAsYouType = false;
|
|
326
|
+
if (cancel) return; // text has changed since this request was made
|
|
327
|
+
|
|
328
|
+
setSearchAsYouTypeResults(results);
|
|
329
|
+
setOnSearchAsYouTypeParams({
|
|
330
|
+
query: results.query,
|
|
331
|
+
searchId: results.searchId,
|
|
332
|
+
resultsCount: results.top.length,
|
|
333
|
+
queryLoadTime: results.queryLoadTime
|
|
334
|
+
});
|
|
477
335
|
|
|
478
|
-
|
|
479
|
-
|
|
336
|
+
// track search event with a small delay when there are no results
|
|
337
|
+
if (onSearchAsYouType && results.top.length === 0 && !searchResultClicked) {
|
|
338
|
+
const {
|
|
339
|
+
query,
|
|
340
|
+
searchId,
|
|
341
|
+
queryLoadTime
|
|
342
|
+
} = results;
|
|
343
|
+
searchEventNoResultDelay = setTimeout(() => {
|
|
344
|
+
if (!cancel) {
|
|
345
|
+
onSearchAsYouType(query, searchId, 0, queryLoadTime);
|
|
346
|
+
}
|
|
347
|
+
}, 300);
|
|
348
|
+
}
|
|
349
|
+
});
|
|
350
|
+
return () => {
|
|
351
|
+
cancel = true;
|
|
352
|
+
clearTimeout(loaderDelay);
|
|
353
|
+
clearTimeout(searchEventNoResultDelay);
|
|
354
|
+
};
|
|
355
|
+
}, [valueTrimmed, onSearchAsYouType, searchResultClicked, setOnSearchAsYouTypeParams]);
|
|
356
|
+
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
357
|
+
children: [/*#__PURE__*/_jsx(Box, {
|
|
358
|
+
"aria-hidden": true,
|
|
359
|
+
bg: "shadow-secondary",
|
|
360
|
+
height: "100vh",
|
|
361
|
+
position: "fixed"
|
|
362
|
+
// We add 6rem here in case there's some sort of branded banner above search
|
|
363
|
+
// The search area is much taller than 6rem so this is a safe amount of padding
|
|
364
|
+
,
|
|
365
|
+
top: `calc(${theme.elements.headerHeight} + 6rem)`,
|
|
366
|
+
width: 1
|
|
367
|
+
}), /*#__PURE__*/_jsx(FocusTrap, {
|
|
368
|
+
onEscapeKey: closeSearch,
|
|
369
|
+
onClickOutside: onMouseDownOutside,
|
|
370
|
+
allowPageInteraction: true,
|
|
371
|
+
children: /*#__PURE__*/_jsxs(Box, {
|
|
372
|
+
bg: "background",
|
|
373
|
+
borderColorBottom: "border-primary",
|
|
374
|
+
borderColorTop: "border-tertiary",
|
|
375
|
+
borderStyle: "solid",
|
|
376
|
+
borderWidth: "2px 0 1px",
|
|
377
|
+
"data-testid": "header-search-dropdown",
|
|
378
|
+
position: {
|
|
379
|
+
_: 'fixed',
|
|
380
|
+
md: 'absolute'
|
|
381
|
+
},
|
|
382
|
+
width: "100%",
|
|
383
|
+
maxHeight: {
|
|
384
|
+
_: 'calc(100vh - 63px)',
|
|
385
|
+
md: 'calc(100vh - 80px)'
|
|
386
|
+
},
|
|
387
|
+
overflow: "auto",
|
|
388
|
+
zIndex: 10 // ensure dropdown is above the page content
|
|
389
|
+
,
|
|
390
|
+
children: [/*#__PURE__*/_jsx(Box, {
|
|
391
|
+
border: "none",
|
|
392
|
+
width: "auto",
|
|
393
|
+
children: /*#__PURE__*/_jsx(QueryContainer, {
|
|
394
|
+
$compact: !!showMarketingBanner,
|
|
395
|
+
children: /*#__PURE__*/_jsxs(FlexBox, {
|
|
396
|
+
alignItems: "baseline",
|
|
397
|
+
borderColor: "gray-600",
|
|
398
|
+
borderStyleBottom: "solid",
|
|
399
|
+
borderWidthBottom: "1px",
|
|
400
|
+
width: "100%",
|
|
401
|
+
children: [/*#__PURE__*/_jsx(SearchIcon, {
|
|
402
|
+
height: {
|
|
403
|
+
_: 20,
|
|
404
|
+
md: 24
|
|
405
|
+
},
|
|
406
|
+
width: {
|
|
407
|
+
_: 20,
|
|
408
|
+
md: 24
|
|
409
|
+
}
|
|
410
|
+
}), /*#__PURE__*/_jsx(Form, {
|
|
411
|
+
action: "/search",
|
|
412
|
+
id: "search-form",
|
|
413
|
+
ml: 8,
|
|
414
|
+
onSubmit: handleSubmit,
|
|
415
|
+
width: "100%",
|
|
416
|
+
children: /*#__PURE__*/_jsx(StyledInput, {
|
|
417
|
+
autoFocus: true,
|
|
418
|
+
background: "none",
|
|
419
|
+
border: "none",
|
|
420
|
+
color: "text",
|
|
421
|
+
fontSize: {
|
|
422
|
+
_: 20,
|
|
423
|
+
md: 26
|
|
424
|
+
},
|
|
425
|
+
fontWeight: "bold",
|
|
426
|
+
id: "header-search-bar",
|
|
427
|
+
name: "query",
|
|
428
|
+
onChange: handleChange,
|
|
429
|
+
onKeyDown: e => onKeyDown(e),
|
|
430
|
+
placeholder: searchPlaceholder,
|
|
431
|
+
ref: inputRef,
|
|
432
|
+
type: "search",
|
|
433
|
+
value: value,
|
|
434
|
+
width: "100%",
|
|
435
|
+
autoComplete: "off"
|
|
436
|
+
})
|
|
437
|
+
}), /*#__PURE__*/_jsx(IconButton, {
|
|
438
|
+
icon: MiniDeleteIcon,
|
|
439
|
+
"aria-label": "Clear search",
|
|
440
|
+
tip: "Clear search",
|
|
441
|
+
tipProps: {
|
|
442
|
+
alignment: 'bottom-center',
|
|
443
|
+
placement: 'floating',
|
|
444
|
+
narrow: true,
|
|
445
|
+
zIndex: 2
|
|
446
|
+
},
|
|
447
|
+
onClick: clearInput,
|
|
448
|
+
size: "small"
|
|
449
|
+
})]
|
|
450
|
+
})
|
|
451
|
+
})
|
|
452
|
+
}), showMarketingBanner && /*#__PURE__*/_jsx(ContentContainer, {
|
|
453
|
+
children: /*#__PURE__*/_jsx(MarketingBanner, {
|
|
454
|
+
source: "search",
|
|
455
|
+
text: banner?.text,
|
|
456
|
+
href: banner?.href,
|
|
457
|
+
tabIndex: 0,
|
|
458
|
+
py: {
|
|
459
|
+
_: 16,
|
|
460
|
+
lg: 24
|
|
461
|
+
}
|
|
462
|
+
})
|
|
463
|
+
}), /*#__PURE__*/_jsxs(SuggestionContainer, {
|
|
464
|
+
$compact: !!showMarketingBanner,
|
|
465
|
+
children: [valueTrimmed.length > 0 ? /*#__PURE__*/_jsxs(_Fragment, {
|
|
466
|
+
children: [/*#__PURE__*/_jsx(FlexBox, {
|
|
467
|
+
flexDirection: "column",
|
|
468
|
+
as: "ul",
|
|
469
|
+
listStyle: "none",
|
|
470
|
+
p: 0,
|
|
471
|
+
children: autoCompleteSuggestions.map((s, i) => /*#__PURE__*/_jsxs(InlineResultLi, {
|
|
472
|
+
tabIndex: 0,
|
|
473
|
+
onKeyDown: evt => {
|
|
474
|
+
if (evt.key === 'Enter') {
|
|
475
|
+
setSearchResultClicked(true);
|
|
476
|
+
onTrackingClick('autocomplete_result', {
|
|
477
|
+
search_id: searchAsYouTypeResults?.searchId ?? '',
|
|
478
|
+
misc: JSON.stringify({
|
|
479
|
+
position: i
|
|
480
|
+
})
|
|
481
|
+
});
|
|
482
|
+
navigateToSearch(s.title, searchAsYouTypeResults?.searchId);
|
|
483
|
+
closeSearch();
|
|
484
|
+
}
|
|
485
|
+
},
|
|
486
|
+
onClick: () => {
|
|
487
|
+
setSearchResultClicked(true);
|
|
488
|
+
onTrackingClick('autocomplete_result', {
|
|
489
|
+
search_id: searchAsYouTypeResults?.searchId ?? '',
|
|
490
|
+
misc: JSON.stringify({
|
|
491
|
+
position: i
|
|
492
|
+
})
|
|
493
|
+
});
|
|
494
|
+
navigateToSearch(s.title, searchAsYouTypeResults?.searchId);
|
|
495
|
+
closeSearch();
|
|
496
|
+
},
|
|
497
|
+
children: [/*#__PURE__*/_jsx(SemiboldSearchIcon, {
|
|
498
|
+
mb: 2,
|
|
499
|
+
size: 14,
|
|
500
|
+
strokeWidth: 8,
|
|
501
|
+
"aria-hidden": true,
|
|
502
|
+
mr: 12
|
|
503
|
+
}), /*#__PURE__*/_jsx(HighlightedText, {
|
|
504
|
+
suggestion: s
|
|
505
|
+
})]
|
|
506
|
+
}, s.title))
|
|
507
|
+
}), (searchAsYouTypeResults === null || searchAsYouTypeResults.top.length > 0) && /*#__PURE__*/_jsxs(_Fragment, {
|
|
508
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
509
|
+
as: "h2",
|
|
510
|
+
fontSize: 20,
|
|
511
|
+
mb: 16,
|
|
512
|
+
mt: 24,
|
|
513
|
+
children: "Top results"
|
|
514
|
+
}), /*#__PURE__*/_jsx(FlexBox, {
|
|
515
|
+
flexDirection: "column",
|
|
516
|
+
as: "ul",
|
|
517
|
+
listStyle: "none",
|
|
518
|
+
p: 0,
|
|
519
|
+
children: searchAsYouTypeResults === null ? searchAsYouTypeLoader?.shimmerRows.map(r => /*#__PURE__*/_jsxs(InlineLoaderLi, {
|
|
520
|
+
children: [r.shimmers.map(word => /*#__PURE__*/_jsx(Shimmer, {
|
|
521
|
+
height: 30,
|
|
522
|
+
py: 8,
|
|
523
|
+
width: word.width
|
|
524
|
+
}, word.key)), /*#__PURE__*/_jsx(Box, {
|
|
525
|
+
fontFamily: "accent",
|
|
526
|
+
textColor: "text-secondary",
|
|
527
|
+
fontSize: {
|
|
528
|
+
_: 10
|
|
529
|
+
},
|
|
530
|
+
borderColor: "border-secondary",
|
|
531
|
+
border: 1,
|
|
532
|
+
borderRadius: "xl",
|
|
533
|
+
px: 16,
|
|
534
|
+
opacity: 0.1,
|
|
535
|
+
children: "\xA0"
|
|
536
|
+
})]
|
|
537
|
+
}, r.key)) : searchAsYouTypeResults.top.map((s, i) => /*#__PURE__*/_jsxs(InlineResultLi, {
|
|
538
|
+
tabIndex: 0,
|
|
539
|
+
role: "link",
|
|
540
|
+
onKeyDown: evt => {
|
|
541
|
+
if (evt.key === 'Enter') {
|
|
542
|
+
setSearchResultClicked(true);
|
|
543
|
+
onTrackingClick('search_as_you_type_result', {
|
|
544
|
+
search_id: searchAsYouTypeResults.searchId,
|
|
545
|
+
slug: s.slug,
|
|
546
|
+
...(s.contentId ? {
|
|
547
|
+
content_id: s.contentId
|
|
548
|
+
} : {}),
|
|
549
|
+
misc: JSON.stringify({
|
|
550
|
+
position: i
|
|
551
|
+
})
|
|
552
|
+
});
|
|
553
|
+
closeSearch();
|
|
554
|
+
safelyRedirect(s.urlPath);
|
|
555
|
+
}
|
|
556
|
+
},
|
|
557
|
+
onClick: () => {
|
|
558
|
+
setSearchResultClicked(true);
|
|
559
|
+
onTrackingClick('search_as_you_type_result', {
|
|
560
|
+
search_id: searchAsYouTypeResults.searchId,
|
|
561
|
+
slug: s.slug,
|
|
562
|
+
...(s.contentId ? {
|
|
563
|
+
content_id: s.contentId
|
|
564
|
+
} : {}),
|
|
565
|
+
misc: JSON.stringify({
|
|
566
|
+
position: i
|
|
567
|
+
})
|
|
568
|
+
});
|
|
569
|
+
closeSearch();
|
|
570
|
+
safelyRedirect(s.urlPath);
|
|
571
|
+
},
|
|
572
|
+
children: [/*#__PURE__*/_jsx(HighlightedText, {
|
|
573
|
+
suggestion: s
|
|
574
|
+
}), /*#__PURE__*/_jsx(Badge, {
|
|
575
|
+
size: "sm",
|
|
576
|
+
variant: "tertiary",
|
|
577
|
+
ml: 12,
|
|
578
|
+
children: s.type
|
|
579
|
+
})]
|
|
580
|
+
}, `${searchAsYouTypeResults.query}:${i.toString()}`))
|
|
581
|
+
})]
|
|
582
|
+
}), searchAsYouTypeResults?.top.length === 0 && /*#__PURE__*/_jsxs(_Fragment, {
|
|
583
|
+
children: [/*#__PURE__*/_jsxs(Box, {
|
|
584
|
+
fontSize: {
|
|
585
|
+
_: 20,
|
|
586
|
+
sm: 26
|
|
587
|
+
},
|
|
588
|
+
mt: 0,
|
|
589
|
+
mb: 48,
|
|
590
|
+
children: [`We couldn't find a match for `, /*#__PURE__*/_jsx(Text, {
|
|
591
|
+
fontWeight: "bold",
|
|
592
|
+
children: `"${valueTrimmed}."`
|
|
593
|
+
}), ' Try another keyword, or see what our members are learning.']
|
|
594
|
+
}), /*#__PURE__*/_jsx(Menu, {
|
|
595
|
+
border: "none",
|
|
596
|
+
variant: "popover",
|
|
597
|
+
children: /*#__PURE__*/_jsx(PopularContent, {
|
|
598
|
+
onTrackingClick: onTrackingClick
|
|
599
|
+
})
|
|
600
|
+
})]
|
|
601
|
+
})]
|
|
602
|
+
}) : /*#__PURE__*/_jsxs(Menu, {
|
|
603
|
+
border: "none",
|
|
604
|
+
variant: "popover",
|
|
605
|
+
children: [/*#__PURE__*/_jsx(PopularSearches, {
|
|
606
|
+
navigateToSearch: navigateToSearch,
|
|
607
|
+
onTrackingClick: onTrackingClick
|
|
608
|
+
}), /*#__PURE__*/_jsx(PopularContent, {
|
|
609
|
+
onTrackingClick: onTrackingClick
|
|
610
|
+
})]
|
|
611
|
+
}), !!searchAsYouTypeResults?.top.length && /*#__PURE__*/_jsx(StrokeButton, {
|
|
612
|
+
my: 16,
|
|
613
|
+
onClick: () => {
|
|
614
|
+
onTrackingClick('view_all_results', {
|
|
615
|
+
search_id: searchAsYouTypeResults.searchId
|
|
616
|
+
});
|
|
617
|
+
navigateToSearch(value, searchAsYouTypeResults?.searchId);
|
|
618
|
+
closeSearch();
|
|
619
|
+
},
|
|
620
|
+
children: "View all results"
|
|
621
|
+
}), /*#__PURE__*/_jsx(QuizAndHelpCenterLinks, {
|
|
622
|
+
onTrackingClick: onTrackingClick,
|
|
623
|
+
handleCloseDropdown: closeSearch
|
|
624
|
+
})]
|
|
625
|
+
})]
|
|
626
|
+
})
|
|
627
|
+
})]
|
|
628
|
+
});
|
|
629
|
+
};
|