{"version":3,"sources":["utils/styles/ie/index.ts","utils/styles/section/index.ts","utils/styles/stickyfill/index.js","utils/styles/transition/index.ts","utils/styles/accessibility/index.ts","utils/styles/button/index.ts","utils/styles/image/index.ts","utils/styles/input/index.ts","utils/styles/link/index.ts","containers/Theme/corporate/colorOptions.js","components/Announcements/InPageAnnouncement/StyledInPageAnnouncement.ts","containers/Theme/corporate/index.tsx","containers/Theme/intheblack/index.tsx","components/Advertisement/config.js","components/Advertisement/StyledAd.tsx","components/Advertisement/Ad.tsx","components/Advertisement/index.tsx","components/Announcements/SiteWideAnnouncement/StyledSiteWideAnnouncement.ts","components/Announcements/SiteWideAnnouncement/index.tsx","components/Announcements/definitions.ts","components/Announcements/index.tsx","components/Announcements/validation.ts","utils/components/PersonFallbackImage/index.tsx","components/ArticleInfo/ContributorInfo/StyledContributorInfo.ts","components/ArticleInfo/ContributorInfo/ContributorInfo.tsx","components/ArticleInfo/PublishDate/StyledPublishDate.ts","components/ArticleInfo/PublishDate/PublishDate.tsx","components/ArticleInfo/ReadingTime/StyledReadingTime.ts","components/ArticleInfo/ReadingTime/ReadingTime.tsx","components/ArticleInfo/StyledArticleInfo.ts","components/ArticleInfo/index.tsx","components/ContributorDetail/StyledContributor.ts","components/ContributorDetail/index.tsx","components/ContributorInfo/StyledContributor.ts","components/ContributorInfo/index.tsx","components/EmbedAdobeMarketoForm/index.tsx","components/EmbedAdobeMarketoForm/loadMktoForm.js","components/FeatureSection/StyledFeatureSection.ts","components/FeatureSection/validation.ts","components/FeatureSection/index.tsx","components/FeatureSectionWithAd/StyledFeatureSection.ts","components/FeatureSectionWithAd/validation.ts","components/FeatureSectionWithAd/index.tsx","components/MagazineBanner/StyledSidebarMagazineBanner.tsx","components/MagazineBanner/SidebarMagazineBanner.tsx","components/MagazineBanner/StyledColumnMagazineBanner.tsx","components/MagazineBanner/ColumnMagazineBanner.tsx","components/MagazineBanner/index.tsx","components/MagazineIssuesCarousel/ItemsWrapper.tsx","components/MagazineIssuesCarousel/StyledMagazineIssuesCarousel.ts","components/MagazineIssuesCarousel/StyledItem.ts","components/MagazineIssuesCarousel/index.tsx","components/MagazineIssuesCarousel/validation.ts","components/MagazinePageBanner/StyledMagazinePageBanner.ts","components/MagazinePageBanner/index.tsx","components/MagazinePageBanner/validation.ts","components/MetadataInTheBlack/definitions.ts","components/MetadataInTheBlack/helpers.ts","assets/cpa.png","components/MetadataInTheBlack/index.tsx","utils/helpers/form/index.ts","components/MMFCareerProfileForm/formValidation.ts","containers/FormSectionContext/index.tsx","utils/dataFetcher.js","utils/helpers/apiProxy/index.ts","containers/MemberContext/index.tsx","containers/MMFCareerProfileFormContext/index.tsx","components/MMFBPPAssessment/StyledBPPAssessment.ts","utils/components/Form/StyledFormSection.ts","components/MMFContactDetailsForm/StyledContactDetailsForm.ts","utils/components/Form/StyledContainerForm.ts","components/MMFCareerProfileForm/Sections/EditMode.tsx","utils/components/Form/ErrorMessage/StyledErrorMessage.ts","utils/components/Form/ErrorMessage/index.tsx","utils/components/Form/CheckboxList/StyledCheckboxList.ts","utils/components/Form/Dropdown/StyledDropdown.ts","utils/components/Form/Dropdown/index.tsx","utils/components/Form/EditableSection/StyledEditableSection.ts","utils/components/Form/EditableSection/EditableSectionActions.tsx","utils/components/Form/EditableSection/EditableSectionContainer.tsx","utils/components/Form/EditableSection/EditableSectionHeader.tsx","utils/components/Form/FieldSummary/StyledFieldSummary.ts","utils/components/Form/FieldSummary/index.tsx","utils/components/Form/Label/StyledLabel.ts","utils/components/Form/Label/index.tsx","components/MMFCareerProfileForm/Sections/EducationProfessionalBodiesForm.tsx","utils/components/Form/TextInput/StyledTextInput.ts","utils/components/Form/TextInput/index.tsx","utils/components/Form/DateInput/index.tsx","utils/components/Form/Dropdown/CompaniesDropdown.tsx","utils/components/Form/RadioList/StyledRadioList.ts","utils/components/Form/StyledFormElement.ts","utils/components/Form/RadioList/index.tsx","components/MMFCareerProfileForm/StyledCareerProfileForm.tsx","components/MMFCareerProfileForm/Sections/EmploymentDetailsForm.tsx","components/MMFCareerProfileForm/Sections/LicencesForm.tsx","utils/components/Form/Dropdown/GeneralDropdown.tsx","components/MMFCareerProfileForm/Sections/LicencesComponents/StyledLicencesListForm.tsx","components/MMFCareerProfileForm/Sections/LicencesComponents/LicencesTableRow/index.tsx","components/MMFCareerProfileForm/Sections/LicencesComponents/LicencesListRow/index.tsx","components/MMFCareerProfileForm/Sections/LicencesListForm.tsx","utils/components/Form/CheckboxList/index.tsx","components/MMFCareerProfileForm/Sections/ProfessionalInterestsForm.tsx","components/MMFCareerProfileForm/Sections/SpecialInterestsForm.tsx","components/MMFCareerProfileForm/Sections/ApiErrorContent.tsx","components/MMFCareerProfileForm/FormContent.tsx","components/MMFMembershipRenewalForm/Sections/Declaration/StyledModal.ts","components/MMFMembershipRenewalForm/Sections/Declaration/Modal.tsx","utils/components/Form/DiscardChangesAlert/index.tsx","utils/components/Form/StickyFooter/StyledStickyFooter.ts","utils/components/Form/StickyFooter/index.tsx","utils/components/Form/StickyFooter/definitions.ts","components/MMFCareerProfileForm/validation.ts","utils/helpers/urlFuncs/index.ts","components/MMFCareerProfileForm/index.tsx","containers/LocationAPIContext/index.tsx","utils/components/Form/AddressManual/index.tsx","utils/components/Form/AddressManual/StyledAddressManual.ts","utils/components/Form/Dropdown/AddressDropdown.tsx","utils/components/Form/Dropdown/CountryDropdown.tsx","components/MMFContactDetailsForm/Sections/AddressEditor.tsx","components/MMFContactDetailsForm/Sections/Alert.tsx","components/MMFContactDetailsForm/Sections/AddressesForm.tsx","components/MMFContactDetailsForm/Sections/ApiErrorContent.tsx","components/MMFContactDetailsForm/FormContent.tsx","components/MMFContactDetailsForm/Sections/ContactDetails.tsx","components/MMFContactDetailsForm/Sections/EditMode.tsx","components/MMFContactDetailsForm/Sections/PersonalDetailsForm.tsx","utils/components/Form/definitions.ts","utils/types/yup-extended.ts","components/MMFContactDetailsForm/formValidation.ts","containers/MMFContactDetailsFormContext/index.tsx","components/MMFContactDetailsForm/validation.ts","components/MMFContactDetailsForm/index.tsx","components/PageBanner/StyledPageBanner.ts","components/PageBanner/ImageBanner.tsx","components/PageBanner/TextBanner.tsx","components/PageBanner/index.tsx","components/PageBanner/validation.ts","components/PageFooter/StyledPageFooter.tsx","components/PageFooter/icons.tsx","components/PageFooter/index.tsx","components/CampaignNavigation/StyledCampaignNavigation.ts","components/CampaignNavigation/index.tsx","components/CampaignNavigation/validation.ts","components/MainMenuInTheBlack/StyledMainMenu.tsx","components/MainMenuInTheBlack/MenuItemList.tsx","components/MainMenuInTheBlack/Menu.tsx","components/MainMenuInTheBlack/PrimaryNavigation.tsx","components/MainMenuInTheBlack/StyledMagazine.tsx","components/MainMenuInTheBlack/Magazine.tsx","components/MainMenuInTheBlack/SecondaryNavigation.tsx","components/MainMenuInTheBlack/index.tsx","components/PageHeader/TabletMainSearch/StyledMainSearch.ts","components/PageHeader/TabletMainSearch/index.tsx","components/PageHeader/HeaderButton/index.tsx","components/PageHeader/StyledPageHeader.ts","components/PageHeader/index.tsx","utils/props/theme/index.ts","components/PlaceholderFullWidth/StyledPlaceholderFullWidth.ts","components/PlaceholderFullWidth/index.tsx","components/PlaceholderSingleColumn/StyledPlaceholderSingleColumn.ts","components/PlaceholderSingleColumn/index.tsx","components/ShowcaseHero/TimeIcon.tsx","components/ShowcaseHero/StyledShowcaseHeroReadingTime.ts","components/ShowcaseHero/ShowcaseHeroReadingTime.tsx","components/ShowcaseHero/StyledShowcaseHero.ts","components/ShowcaseHero/Banner.tsx","components/ShowcaseHero/index.tsx","components/ShowcaseHero/validation.ts","components/SponsorLogo/StyledSponsorLogo.ts","components/SponsorLogo/index.tsx","temp/componentFactory.ts","containers/TimezoneContext/index.tsx","utils/helpers/generics/index.ts","utils/components/StructuredDataCorp/CorpAllPages/index.tsx","utils/components/StructuredDataCorp/SitelinkBoxHomePage/index.tsx","layouts/SharedStyledLayout.ts","layouts/DefaultLayout/index.tsx","utils/components/StructuredDataITB/ITBAllPages/index.tsx","utils/components/StructuredDataITB/ArticlePages/index.tsx","layouts/ITBLayout/StyledLayout.ts","layouts/ITBLayout/index.tsx","temp/layoutMap.js","layouts/ITBLayout/sidebar.tsx","LayoutFactory.ts","lib/layout-service-factory.js","RouteHandler.js","utils/components/Scroller/index.tsx","AppRoot.js","index.js","lib/GraphQLClientFactory.js","i18n.js","utils/hooks/useBreakpoint.ts","containers/DigitalDataContext/definitions.ts","utils/data/queryString/index.ts","utils/components/Box/index.js","utils/components/Carousel/index.tsx","utils/components/CopyText/StyledCopyText.ts","utils/components/CopyText/index.tsx","utils/components/CostEstimate/StyledCost.ts","utils/components/LastUpdated/StyledLastUpdated.ts","utils/components/LastUpdated/index.tsx","utils/components/Link/definitions.ts","utils/components/Link/StyledLink.tsx","utils/components/Link/index.tsx","utils/components/ListingImage/StyledListingImage.ts","utils/components/ListingImage/index.tsx","utils/components/Section/StyledSection.ts","utils/components/Radio/StyledRadio.ts","utils/components/Radio/index.tsx","utils/components/RelatesTo/StyledRelatesTo.ts","utils/components/Section/index.tsx","utils/components/SpaLoader/StyledSpaLoader.ts","utils/components/SpaLoader/index.tsx","utils/components/StructuredData/index.tsx","utils/components/TimeEstimate/StyledTimeEstimate.ts","utils/components/TimeEstimate/index.tsx","utils/components/Tooltip/StyledTooltip.ts","utils/components/Tooltip/index.tsx","utils/components/HeadingWithDescription/StyledHeadingWithDescription.ts","utils/components/HeadingWithDescription/index.tsx","utils/helpers/html/index.ts","utils/styles/text/index.ts","components/Accordion/variantSettings.js","components/AgendaAccordion/variantSettings.js","containers/BaseComponent/StyledBaseComponent.js","containers/BaseComponent/index.tsx","components/DateLinkList/variantSettings.js","components/MasonryGrid/variantSettings.js","components/Tabs/variantSettings.js","utils/components/Tooltip/variantSettings.js","components/LiveChat/definitions.ts","containers/Theme/colors.js","containers/Theme/intheblack/global.js","utils/data/id/index.ts","utils/icons/Logo.tsx","utils/styles/depth/index.ts","utils/styles/print/index.ts","utils/icons/LargeCross.tsx","utils/components/Spinner/StyledSpinner.ts","utils/components/Spinner/index.tsx","utils/components/BookHinge/StyledBookHinge.ts","components/Modal/StyledModal.ts","components/Modal/index.tsx","containers/Theme/corporate/global.js","utils/icons/Svg.tsx","utils/icons/material/Search.tsx","utils/styles/focus/FocusStylesObserver.js","utils/styles/focus/index.ts","components/MainSearch/StyledMainSearch.ts","components/MainSearch/index.tsx","components/StaticTextAndImage/variantSettings.js","utils/helpers/image/index.ts","utils/helpers/setAnchorElemScrollMarginTop/index.ts","components/ContentRichText/StyledRichTextImage.ts","components/ContentRichText/RichTextImage.tsx","components/ContentRichText/index.tsx","utils/helpers/scrollToElement/index.ts","utils/types/enums.ts","components/ImageWithTitleAndText/variantSettings.ts","components/Icon/definitions.tsx","components/Icon/index.tsx","utils/icons/Arrow.tsx","utils/icons/status/Book.tsx","utils/icons/Calendar.tsx","utils/icons/Camera.tsx","utils/icons/Capacity.tsx","utils/icons/Chevron.tsx","utils/icons/ChevronDown.tsx","utils/icons/status/Closed.tsx","utils/icons/status/Completed.tsx","utils/icons/Cost.tsx","utils/icons/Cross.tsx","utils/icons/Directions.tsx","utils/icons/Download.tsx","utils/icons/External.tsx","utils/icons/Filters.tsx","utils/icons/InfoCircle.tsx","utils/icons/status/InProgress.tsx","utils/icons/Lockup.tsx","utils/icons/Mail.tsx","utils/icons/Marker.tsx","utils/icons/status/OpenForFeedback.tsx","utils/icons/Phone.tsx","utils/icons/Pin.tsx","utils/icons/status/Planned.tsx","utils/icons/RelatesTo.tsx","utils/icons/Search.tsx","utils/icons/SimpleArrow.tsx","utils/icons/Size.tsx","utils/icons/Tag.tsx","utils/icons/Time.tsx","utils/icons/status/UnderReview.tsx","utils/icons/Warning.tsx","utils/icons/WarningCircle.tsx","utils/styles/color/index.ts","utils/styles/layout/index.ts","utils/styles/list/index.ts","utils/helpers/dateConverter/index.ts","utils/helpers/link/index.ts","utils/icons/material/Menu.tsx","utils/icons/material/Login.tsx","utils/icons/material/PermIdentity.tsx","utils/icons/LogoITB.tsx","assets/logo_intheblack_placeholder.svg","utils/components/ContentCard/StyledContentCard.ts","utils/components/ContentCard/index.tsx","containers/Theme/corporate/link.js","components/Breadcrumb/variantSettings.js","components/CampaignNavigation/variantSettings.js","components/CampaignPageBanner/variantSettings.js","containers/Theme/intheblack/button.js","containers/Theme/intheblack/link.js","utils/helpers/dev/index.ts","components/ContentRelated/variantSettingsInTheBlack.js","components/DocumentList/variantSettings.js","components/HomepageBanner/variantSettings.js","components/ImageCardGrid/variantSettings.js","components/Announcements/InPageAnnouncement/variantSettings.js","components/LinkList/variantSettings.js","components/LiveChat/variantSettings.ts","components/PageFooter/variantSettings.js","components/PlaceholderDashboardSingleColumn/variantSettings.js","components/ProfilePageBanner/variantSettings.js","components/Announcements/SiteWideAnnouncement/variantSettings.js","components/TimezoneSelector/variantSettings.js","utils/components/Form/variantSettings.js","utils/components/Radio/variantSettings.js","utils/components/LastUpdated/variantSettings.js","utils/components/ShowMore/variantSettings.js","containers/AsyncComponent/index.tsx","utils/helpers/analytics/index.ts","utils/hooks/useAdSlot.tsx","utils/hooks/useMutationObserver.ts","utils/hooks/useOneTrustActiveGroups.ts","utils/hooks/usePlaceholderHasChildren.ts","utils/hooks/useScrollDepthAnalyticsTracking.ts","utils/hooks/useTimer.ts","utils/hooks/useUnload.ts","utils/hooks/useWindowSize.ts","utils/helpers/getDisplayName/index.js","utils/helpers/getRefElement/index.ts","utils/helpers/byteConverter/index.ts","utils/helpers/getCostEstimate/index.ts","utils/helpers/getPortal/index.ts","utils/helpers/search/index.ts","utils/helpers/bodyScrollLock/index.ts","components/ContentRichText/StyledContentRichText.ts","utils/hooks/useScript.ts","utils/hooks/usePrevious.ts","containers/CountryContext/index.tsx","utils/components/AuthenticatedContentIcon/StyledAuthenticatedContentIcon.ts","utils/components/AuthenticatedContentIcon/index.tsx","utils/styles/mq/index.ts","containers/Theme/corporate/colors.js","containers/Theme/global.js","utils/components/BookHinge/book-hinge.tsx","utils/components/BookHinge/index.tsx","utils/media/index.ts","components/MainMenu/StyledMainMenu.tsx","components/Logout/StyledLogout.tsx","components/Logout/index.tsx","components/MainMenu/MenuItemList.tsx","components/MainMenu/Menu.tsx","components/DashboardNavigation/index.tsx","components/MainMenu/index.tsx","components/TagList/StyledTagList.ts","utils/components/Tag/StyledTag.ts","utils/components/Tag/index.tsx","components/TagList/index.tsx","containers/DigitalDataContext/index.tsx","components/BackToTop/StyledBackToTop.ts","components/BackToTop/index.tsx","components/SearchMenuButton/StyledSearchMenuButton.ts","components/SearchMenuButton/index.tsx","components/SearchMenu/StyledSearchMenu.ts","components/SearchMenu/index.tsx","containers/Theme/intheblack/colors.js","utils/validationChecks/index.ts","containers/MenuContext/index.tsx","containers/Theme/corporate/button.js","utils/props/types.ts","utils/props/generateHelper/index.ts","utils/props/color/index.ts","utils/props/spacing/index.ts","utils/props/flex/index.ts","utils/props/layout/index.ts","utils/props/transitions/index.ts","utils/props/text/index.ts","components/PersonalisationCarousel/variantSettingsInTheBlack.js","components/CallToAction/variantSettingsInTheBlack.js","components/CardListInTheBlack/variantSettingsInTheBlack.js","components/ContentRichText/variantSettingsInTheBlack.js","components/ContentSummary/variantSettingsInTheBlack.js","components/CoveoContentCards/variantSettingsInTheBlack.ts","components/FeatureSection/variantSettingsInTheBlack.js","components/FeatureSectionWithAd/variantSettingsInTheBlack.js","components/Form/variantSettingsInTheBlack.js","components/InternalPageBanner/variantSettingsInTheBlack.js","components/LateralNavigation/variantSettingsInTheBlack.js","components/MagazineBanner/variantSettingsInTheBlack.js","components/MultiMediaEmbed/variantSettingsInTheBlack.js","components/MagazinePageBanner/variantSettingsInTheBlack.ts","components/MainMenuInTheBlack/variantSettingsInTheBlack.js","components/MainSearch/variantSettingsInTheBlack.ts","components/Modal/variantSettingsInTheBlack.js","components/PageBanner/variantSettingsInTheBlack.js","components/PageFooter/variantSettingsInTheBlack.js","components/PageHeader/variantSettingsInTheBlack.js","components/SearchMenu/variantSettingsInTheBlack.js","components/SearchResultsInTheBlack/variantSettingsInTheBlack.ts","components/ShowcaseHero/variantSettingsInTheBlack.ts","components/SingleImage/variantSettingsInTheBlack.js","utils/components/ContentCard/variantSettingsInTheBlack.js","utils/components/Carousel/variantSettingsInTheBlack.js","utils/components/HeadingWithDescription/variantSettingsInTheBlack.js","utils/components/Tag/variantSettingsInTheBlack.js","utils/styles/card/variantSettingsInTheBlack.js","utils/styles/section/variantSettingsInTheBlack.ts","containers/Theme/intheblack/theme.ts","utils/helpers/render/index.ts","components/NavItem/index.tsx","temp/config.js","containers/ModalContext/index.tsx","utils/data/dictionaryItem/index.ts","utils/components/Grid/index.tsx","utils/styles/svg/index.ts","utils/components/ScreenReader/index.ts","components/PersonalisationCarousel/variantSettings.js","components/MMFBPPAssessment/variantSettings.js","components/InformationSession/variantSettings.js","components/CallToAction/variantSettings.js","components/CardList/variantSettings.js","components/CardListInTheBlackBanner/variantSettings.ts","components/CardListWithInternalNavigation/variantSettings.js","components/MMFContactDetailsForm/variantSettings.js","components/ContentRichText/variantSettings.js","components/ContentSummary/variantSettings.js","components/CPDTracker/variantSettings.js","components/Form/variantSettings.js","components/InternalPageBanner/variantSettings.js","components/LateralNavigation/variantSettings.js","components/MagazineBanner/variantSettings.js","components/MultiMediaEmbed/variantSettings.js","components/MainMenu/variantSettings.js","components/MainSearch/variantSettings.ts","components/MMFMemberDetails/variantSettings.js","components/MMFMembershipRenewalForm/variantSettings.js","components/Modal/variantSettings.js","components/PageBanner/variantSettings.js","components/PageBannerWithInternalNavigation/variantSettings.js","components/PageHeader/variantSettings.js","components/ProgramTracker/variantSettings.js","components/SearchMenu/variantSettings.js","components/SearchResults/variantSettings.ts","components/SingleImage/variantSettings.js","utils/components/StepTracker/variantSettings.js","utils/components/Carousel/variantSettings.js","utils/components/HeadingWithDescription/variantSettings.js","utils/components/Tag/variantSettings.js","utils/styles/card/variantSettings.js","utils/styles/section/variantSettings.ts","containers/Theme/corporate/theme.ts","utils/icons/index.ts","utils/helpers/jss/index.ts","components/Announcements/InPageAnnouncement/index.tsx","containers/Theme/intheblack/colorOptions.js","../node_modules/moment-mini/locale sync /^/.*$","containers/Theme/shared.js","utils/icons lazy /^/.*$/ groupOptions: {} namespace object","utils/components/Carousel/StyledCarousel.ts"],"names":["theme","css","section","background","shouldNotInit","window","getComputedStyle","testNode","document","createElement","some","prefix","style","position","e","isInitialized","shadowRootExists","ShadowRoot","scroll","top","left","stickies","extend","targetObj","sourceObject","key","hasOwnProperty","parseNumeric","val","parseFloat","getDocOffsetTop","node","docOffsetTop","offsetTop","offsetParent","Sticky","constructor","HTMLElement","Error","sticky","_node","this","_stickyMode","_active","push","refresh","_removed","_deactivate","nodeComputedStyle","nodeComputedProps","display","marginTop","marginBottom","marginLeft","marginRight","cssFloat","isNaN","originalPosition","referenceNode","parentNode","host","nodeWinOffset","getBoundingClientRect","parentWinOffset","parentComputedStyle","_parent","styles","offsetHeight","_offsetToWindow","right","documentElement","clientWidth","_offsetToParent","borderTopWidth","borderLeftWidth","borderRightWidth","_styles","bottom","width","nodeTopValue","_limits","start","pageYOffset","end","borderBottomWidth","parentPosition","_recalcPosition","clone","_clone","height","padding","border","borderSpacing","fontSize","insertBefore","stickyMode","_fastCheck","Math","abs","removeChild","remove","index","splice","Stickyfill","forceSticky","init","refreshAll","addOne","length","i","add","nodeList","addedStickies","forEach","removeOne","removeAll","checkScroll","pageXOffset","fastCheckTimer","docHiddenKey","visibilityChangeEventName","startFastCheckTimer","setInterval","addEventListener","clearInterval","properties","speed","delay","ease","motion","propertiesToMap","map","prop","timing","join","showForSR","buttonReset","buttonColors","settings","borderWidth","color","colorHover","backgroundHover","borderHoverWidth","borderHover","borderFocus","backgroundActive","borderActive","colorActive","focus","radius","outlineWidth","outlineColor","buttonSize","borderRadius","topLeft","topRight","bottomRight","fontFamily","sm","fontWeight","lineHeight","y","x","mq","md","button","size","throwInDev","colors","imagePlaceholderSrc","imageFit","imageFitCover","inputReset","linkStyle","textDecoration","borderVisited","colorVisited","colorFocus","borderFocusColor","boxShadowColor","textDecorationFocus","textTransform","textBody","replace","link","primary","linkFeatured","featured","linkButton","linkWithoutVisited","primaryWithoutVisited","brandPrimary1","brandPrimary1Dark","brandPrimary1Darker","brandPrimary2","brandPrimary2Dark","brandPrimary2Darker","brandPrimary3","brandPrimary3Dark","brandSecondary1","brandSecondary1Dark","brandSecondary2","brandSecondary2Dark","brandSecondary3","brandSecondary3Dark","darkBackground","darkBackgroundTint1","darkBackgroundTint3","darkText","darkTextSecondary","darkTextSubtle","error100","error500","error700","information100","information500","interactive200","interactive300","interactive500","interactive600","neutral50","neutral75","neutral100","neutral200","neutral300","neutral400","neutral500","neutral600","neutral700","neutral800","neutral900","neutralBlack","neutralBlackTransparent10","neutralBlackTransparent20","neutralWhite","neutralWhiteTransparent","success100","success500","success700","transparent","visited","warning100","warning500","announcementThemes","Blue","inPageAnnouncement","blue","borderColor","pathFillColor","Yellow","yellow","Red","red","Green","green","AnnouncementWrapper","styled","div","announcementWrapper","alertStyle","spacing","mt","mb","p","xs","IconWrapper","svg","CloseIconWrapper","TextWrapper","ml","TitleWrapper","h2","titleWrapper","heading2","safeFocusRemoval","focusOutline","isBold","Content","RichText","content","richText","ButtonWrapper","AnnouncementCTA","Link","mr","announcementCta","text","lessThan","GlobalStyles","createGlobalStyle","normalize","textBody1","default","fast","ghost","slim","all","py","Theme","children","fixedBody12","tooltip","shadows","elevation16","pt","tint3","adConfig","sizes","mapping","viewport","Container","mx","AdContainer","hideOnPrint","PlaceholderContainer","tint2","AdLabel","subtle","my","compose","withCoveoNoIndexTags","withEditMode","withSitecoreContext","adSlotID","editMode","keywords","sitecoreContext","uid","advertisementLabel","getDictionaryItem","showAdLabel","setShowAdLabel","useState","adRef","useRef","bp","useBreakpoint","ad","useEffect","useAdSlot","template","route","templateName","canUseDOM","googletag","cmd","slot","pubads","getSlots","filter","getSlotElementId","handleMutations","useCallback","mutations","type","target","getElementsByTagName","useMutationObserver","options","childList","subtree","callback","className","id","ref","rendering","datasource","fields","data","pageFields","adverts","adUid","concat","topicTagArray","topictags","topics","category","categoryInformation","categoryLabelText","item","topic","siteWideAnnouncement","depth","HEADER","Trigger","SecondaryButton","Icons","Icon","name","description","dismissable","secondaryLink","title","setAnnouncementDismissed","t","useTranslation","hidden","setHidden","portal","getPortal","Portals","before","hasDescription","value","createPortal","role","tabIndex","Text","field","editable","fallbackTitle","linkSize","linkTheme","onClick","ariaHidden","DISMISSED_ANNOUNCEMENTS_COOKIE_NAME","withDataSourceValidation","errorMessage","allowRenderOnError","validators","jss","announcements","folderType","__typename","InPageAnnouncement","a","rest","normalizeJssFields","args","dismissedAnnouncementIds","cookies","get","split","includes","PersonFallbackImage","props","fill","viewBox","version","xmlns","cx","cy","r","d","Profile","ProfileDetails","ProfileFigure","ProfileImage","SCImage","avoidPageBreakOnPrint","ProfileName","span","agendaAccordion","profileNameColor","profileTitleColor","withDigitalDataContext","digitalData","image","profileName","setDigitalData","url","to","destination","setObjectData","linkName","linkDestination","emitTrackEvent","src","draggable","alt","createSrcSet","ImageSize","MW_128","PublishDateContainer","PublishDateText","textBody2","secondary","PublishDate","serverDate","formattedDate","dateConverter","utc","medium","visualDate","ReadingTimeContainer","ReadingTimeIconWrapper","nonessential","ReadingTimeText","ReadingTime","readingTime","formattedTime","Wrapper","Grid","ContributorContainer","DateReadingTimeContainer","StyledSeparator","Separator","hideOnMobile","contributors","targetItems","published","StyledGridContainer","contentSummary","gridContainer","DotSpanFirst","DotSpanSecond","TagContainer","ul","listReset","Tag","li","fixedBody14","ProfileWrap","AttributesWrap","DateText","ReadingText","Header5","fixedBody16","AttributesItem","ContributorInfo","renderingContextItem","contextItem","photo","targetItem","fullName","publishedDate","topicDisplayName","formattedReadingTime","container","alignItems","convertSrcJss","MW_512","tag","displayName","ProfileFigureWrap","Heading","h1","headingH1","ProfileBio","ContentRichText","subheading2","SocialListItem","SocialLink","bio","socialLinkMap","facebook","href","linktype","linkedin","iconName","linkedIn","twitter","instagram","tiktok","anchor","Object","values","iconLabel","NavItem","StyledLink","ariaLabelledBy","ScreenReader","withRouter","dataSource","rootUrl","embedAdobeMarketoSettings","rootURL","munchkinId","munchkinID","formId","formID","script","localStorage","getItem","setItem","body","appendChild","async","removeItem","setTimeout","innerHTML","MktoForms2","loadForm","form","onSuccess","followUpUrl","_satellite","track","formEl","getFormElem","logFirstFocus","removeEventListener","onValidate","validPhone","vals","phoneValidation","phoneInput","getElementById","cleanInput","indexOf","slice","setValues","test","submittable","formElem","find","phoneNumberInput","showErrorMessage","classList","scrollIntoView","block","phoneNumberMKTO","mobileNumberMKTO","whenReady","formName","cpa_leadtype","maskCharExtensions","b","timeout","Date","now","Promise","waitForMaskDefinitions","resolve","reject","$","mask","definitions","bind","then","keys","char","mobileorPhoneNumberMKTO","mktoForm","sourceFieldName","rules","selectEl","querySelector","cascade","currentSourceValue","getValues","currentCascadeables","targetFieldName","fieldEl","wrapperEl","parentElement","descriptorEl","descriptorJq","isRequired","required","manageCascadingRequired","mobileNumberCountryCodeMKTO","phoneNumberCountryCodeMKTO","console","log","loadMktoForm","Header","featureSection","header","pb","lg","headingColor","ListItem","Item","List","Row","LinkButton","NavLink","action","LinkWrapper","ui","divider","featureSectionFieldValidators","minLength","heading","isValidheadingCTAConfiguration","CTA","responsiveColumnConfig","col","xl","params","layoutType","isHorizontalMode","normalized","items","headingLevel","removeBottomPadding","validItems","hasItems","columnConfig","level","parseInt","toLowerCase","shouldShowCTA","classes","classNames","numItems","HeadingWithDescription","headingField","config","ContentCard","showTags","featureSectionWithAd","px","pl","pr","order","CardContainer","featureSectionWithAdFieldValidators","advertisment","adConfiguration","adPosition","adContainerOrder","cardContainerOrder","adProps","magazineBanner","sidebar","ClickableWrapper","CoverImage","CoverImageWrapper","figure","ContentWrapper","Title","fixedTitle12","Label","h5","headingH5","LinkItem","hoverColor","iconColor","SidebarMagazineBanner","componentLabel","coverImage","ctaLabel","linkItem","as","MW_256","MW_384","hideExternalIcon","column","PageContainer","ComponentLabel","ColumnMagazineBanner","magazine","latestMagazine","isSidebarVariant","sidebarVariant","ItemWrapper","carouselEnabled","trackingName","flickityOptions","cellAlign","groupCells","pageDots","h3","headingH3","elevation8","elevation4","CarouselContainer","grid","gutter","between","PrevNextPosition","Card","ImageContainer","aspect","Image","contrast","magazineList","layerOneItems","magazineItems","child","cleanItem","readTitleDictionaryItem","defaultImageSize","getImageAttrsByRatio","ImageRatio","Ratio_2By3","ItemsWrapper","magazinePageBanner","Description","CATEGORY_TEMPLATE","templateNameWhiteList","getPublishedDate","dateData","undefined","toLocaleLowerCase","attrDate","firstHeadingOne","seoTitle","getFieldValue","seoDescription","pageTitle","pageDescription","pageListingDescription","language","featuredImage","socialSharingImage","noFollow","seoCanonicalUrl","customMetaTags","readTime","multimediaType","contributor","fullNames","getContributors","sponsor","contentType","pageType","topicTags","topicKeywords","getTopicTags","primaryTopic","getPrimaryTopic","enterpriseTopic","getEnterpriseTopic","formattedPublishedDate","isUTC","extraMetaTags","metaTags","tagParts","extraTag","getCustomMetaTags","canonicalUrl","adobeLaunchScriptURL","adobeLaunchConfigurationItem","URL","googleAdSrcScriptURL","googleAdSrcConfigurationItem","titleSiteName","ogSiteName","twitterCreator","twitterSite","cpaLogo","pathname","useLocation","omit","MUTATING_CLASS","STABLE_CLASS","updatedPageData","pageName","pageurl","siteSection","path","substring","analyticsPageType","updatedDigitalData","ssrRenderComplete","cpa","useScrollDepthAnalyticsTracking","Helmet","property","rel","JSON","stringify","err","warnInDev","renderDigitalData","YEAR_FIRST_FORMAT","DAY_FIRST_FORMAT","REF_PARAM","RENEWAL_REF_PARAM_VALUE","sameAsResidentialLabel","buttonAction","targetBlank","preventDefault","open","toTitleCase","str","txt","charAt","toUpperCase","getAddress","address","addressArr","addressLine1","addressLine2","addressLine3","addressStr","lastLineArr","city","state","isoCode","country","postCode","lastLineString","completeAddressArr","getMailingAddress","mailingAddress","mailingAddressStr","getCommaSeparatedList","propertyName","list","castStringAsBoolean","renderSelectPlaceholderForField","fieldName","renderRequiredError","token","replaceTokens","renderInvalidError","renderInvalidMinLengthError","mapObj","regex","RegExp","matched","formatDate","dateOfBirth","outputFormat","isYearFirstInput","moment","isValid","isDayFirstInput","format","formatMobilePhone","countryCode","mobilePhone","checkUserRerferredFromRenewal","location","URLSearchParams","search","isDateGreaterThan1800","day","month","year","adjustedValue","minDate","FormContext","createContext","SectionKeyContext","withFormSectionKeyContext","sectionKey","WrappedComponent","Provider","dataFetcher","axiosRequestConfig","axios","withCredentials","ApiProxy","apiUri","isLoggedIn","result","setResult","proxyLevelAxiosConfig","apiCallRunning","reportSuccess","apiResponse","onComplete","reportError","onError","error","code","message","isLoading","request","setLoadingStatus","useCachedResponse","allowParallelFetching","mergedAxiosConfig","shouldMakeAPIRequest","method","response","catch","toJSON","clear","MemberContext","MemberProvider","apiHost","companiesApiHost","useContext","SitecoreContextReactContext","useMemo","context","securityInfo","isAnonymous","initialApiResultState","postResponse","member","setMember","careerProfile","setCareerProfile","careerProfileSubmission","setCareerProfileSubmission","companies","setCompanies","companyIndustries","setCompanyIndustries","companySubmission","setCompanySubmission","contactProfile","setContactProfile","contactProfileSubmission","setContactProfileSubmission","renewal","setRenewal","renewalSubmission","setRenewalSubmission","renewalNotice","setRenewalNotice","dashboardApi","careerProfileApi","employment","education","licences","professionalMemberships","specialityAreas","referenceData","professionalInterests","careerProfileSubmissionApi","OnlyEmployment","companiesApi","companyIndustriesApi","companySubmissionApi","contactProfileApi","contact","billingAddress","shippingAddress","contactProfileSubmissionApi","renewContactProfileDataApi","renewContactProfileSubmissionApi","renewCareerProfileApi","renewCareerProfileSubmitApi","renewalApi","renewalSubmissionApi","renewalNoticeApi","renewalProductsTotalAmount","products","product","isOptional","totalAmount","reduce","sum","toFixed","renewalProductsCurrency","currency","renewalProductCodes","Consumer","withMemberContext","memberContext","defaultLicenseValue","digitalDataContext","DigitalDataContext","errorInDev","isEditing","setIsEditing","sectionEditing","setSectionEditing","isReferredFromRenewal","setIsReferredFromRenewal","getQueryStringValue","hasUserBeenShownPrompt","setHasUserBeenShownPrompt","useUnload","updateAction","event","sectionIdentifier","update","cancelAction","alertBody","confirm","behavior","saveAction","isAnySectionEditing","employmentDetails","educationProfessionalBodies","isCareerProfileDataReady","validations","initEducationName","educationRef","yup","shape","cpaAustraliaId","jobTitle","min","jobFunction","when","is","industry","currentEmploymentStartDate","nullable","matches","isEmployed","oneOf","isNewCompany","careerStage","transform","originalValue","currentCareerSector","currentCareerIndustry","company","schema","websiteUrl","isoCode2Letter","highestEducationName","ranking","of","licenceName","registrationNumber","nameSet","Set","has","validationSchema","highestEducations","initialValues","careerStageItems","careerStages","careerStageVal","careerStageDefaultItem","sectorsItems","sectors","sectorVal","sectorDefaultItem","employmentIndustryItems","employmentIndustries","employmentIndustryVal","employmentIndustryDefaultItem","startDate","current","jobLevel","toString","employmentType","websiteurl","region","professionalInterestName","specialityAreaName","getInitialFormValues","onSubmit","setSubmitting","valuesToSubmitToAPI","hasCompanyError","companyName","warn","identifier","industryId","professionalBodyName","bppAssessment","introduction","subheading","Spinner","FormSection","complexFormElement","formSection","HeadingContainer","LargeHeading","headingIcon","HeadingButton","icon","h","w","DashboardButtonContainer","DashboardButton","FormSummary","Field","EditModeHeading","EditModeInstructions","RichTextContainer","richTextContainer","CTAButton","EditLink","contactDetailsForm","AddressDropdownContainer","BackToRenewalFormContent","CTAButtons","BackToRenewalFormButton","BackToRenewalFormButtonLabel","FormContainer","formContainer","SpinnerWrapper","StyledSpinner","IntroContainer","NarrowContainer","PrivacyPolicy","EditMode","apiErrorheading","Placeholder","input","backgroundDisabled","borderDisabled","colorDisabled","hasError","borderError","borderFocusError","InvalidMessageContainer","isInRenewPage","InvalidMessage","ErrorMessage","CheckboxLabel","label","check","selectedBackground","selectedBorder","selectedBackgroundHover","selectedBorderHover","selectedBackgroundFocus","selectedBorderFocus","StyledTextField","TextField","chipStyles","fixedTitle14","dropdown","chips","StyledAutocomplete","Autocomplete","FONT_FAMILY_TEXT","$shouldShowSelectedValuesBelow","indicator","$popupIconType","SelectedValuesContainer","overrides","inputRoot","paddingBottom","paddingTop","option","backgroundColor","popupIndicator","CheckboxOption","ManualModeOption","manualOption","ManualModeToggle","manualToggle","useStyles","makeStyles","popupIcons","expand","SelectedValues","multiple","meta","getOptionLabel","Array","isArray","Dropdown","handleChange","loading","onChange","onClose","onOpen","popupIcon","placeholder","shouldShowCheckboxes","shouldShowSelectedValuesBelow","valueOnClear","restProps","setOpen","searchString","setSearchString","styledAutocompleteClasses","getFieldProps","getFieldMeta","setFieldValue","useFormikContext","touched","initialTouched","errorObj","disableCloseOnSelect","disablePortal","reason","getValueToClear","valueToSet","defaultValue","renderInput","InputProps","endAdornment","variant","currentTarget","renderOption","selected","checkboxOptionClasses","highlightedOption","highlightSubstring","dangerouslySetInnerHTML","__html","SectionContainer","editableSection","sectionContainer","HeadingIcon","headingH4","SectionActions","CancelButton","SaveButton","saveButton","disabled","active","EditableSectionActions","cancelLabel","explicitSectionKey","saveLabel","formContext","sectionContext","formikContext","submitCount","isSubmitting","handleSubmit","EditableSectionContainer","EditableSectionHeader","updateLabel","updateLink","sectionKeyFromContext","FieldSummaryLabel","fieldSummary","FieldSummaryValue","FieldSummaryNoValue","noValue","FieldSummaryFootnote","footNote","FieldSummary","footnote","labelDictionaryKey","labelFallback","hasValue","hasFootnote","notCapturedLabel","requiredTag","FormElementLabel","FormElementTitle","FormElementOptionalTitle","FormLabel","optional","mockCareerProfile","educationRefData","professionalBodiesRefData","professionalBodies","mockData","highestEducationLabel","pleaseSelectPlaceholder","searchAccreditationPlaceholder","htmlFor","getOptionSelected","TextBoxInput","TextInput","useField","DateInput","helpers","setValue","onKeyUp","len","isAllowedInput","isDelete","keyCode","onEnterManually","enterManuallyCheck","isV2","isInRenewal","apiOptions","setApiOptions","setLoading","companiesDropdownLabel","companiesDropdownPlaceholder","noOptionsText","enterManuallyText","cantFindCompanyText","filterOptions","onInputChange","_","query","searchText","PaperComponent","footerRef","React","paperRef","Paper","elevation","onMouseDown","RadioLabel","FormElementWrapper","FormElementHint","Radio","fixedTitle16","outline","errorOccur","RadioList","StyledPaddingDiv","setFieldTouched","careerStageLabel","yourCareerSectorLabel","yourCareerIndustryLabel","lookUpAutoLabel","employerNameLabel","employerCountryRegionLabel","employerWebsiteLabel","enterManuallyLabel","jobLevelLabel","employmentTypeLabel","currentlyEmployedLabel","startDateLabel","careerPositionLabel","careerPositionPlacholder","jobPrimaryJobLabel","countries","employmentSectorOptions","employmentIndustriesOptions","careerStageDefaultApiVal","currentCareerSectorDefaultApiVal","currentCareerSectorDefaultItem","currentCareerIndustryDefaultApiVal","currentCareerIndustryDefaultItem","clearCompany","handleEmploymentStatusFocus","onFocus","career","maxLength","inputMode","jobFunctions","jobLevels","employmentTypes","getLicensesOptions","licensesAndCertificatesLabel","licensesPlaceholder","getLicences","licenceKey","GeneralDropdown","LicencesTableWrapper","table","LicencesAddButton","buttonSettings","corner","LicencesActionButton","interactive1","ConfirmingButton","LicencesCheckButton","LicencesCancelButton","interactive1Hover","LicencesActionButtonWrapper","DialogHeadingWrapper","LicencesListRowWrapper","LicencesListContentWrapper","isRegistrationNumber","DialogKeyTextStyle","dialogActions","justifyContent","LicencesTableRow","addNew","editTableRow","setEditTableRow","setLicenceName","number","setNumber","nameOptions","updated","handleClose","handleRegistrationNumber","filteredValue","deleteLabel","notProvidedLabel","confirmDeleteLabel","Dialog","DialogActions","LicencesListRow","validateField","addOpen","setAddOpen","editOpen","setEditOpen","deleteOpen","setDeleteOpen","handleDialogClose","licenceTypeLabel","registrationNumberLabel","addNewLabel","addLabel","editLabel","DialogContent","tooltipText","addItemLabel","noItemAddedLabel","licenceTypeNoEmpty","isMobile","setIsMobile","msg","getErrorMessage","handleResize","innerWidth","updatedLicences","colSpan","DesktopView","Checkbox","onChangeFormik","checked","fieldValue","CheckboxList","globalName","otherReferenceLabel","isMultiple","getInterestsOptions","interestsLabel","professionalInterestData","specialInterestData","ApiErrorContent","hasContent","placeholders","dashboardLinkLabel","dashboardLink","FormContent","myAccountLink","privacyNotice","viewMyAccountLabel","errorHeading","shouldShowApiError","shouldShowForm","targetSection","scrollTo","getAPIErrorMessage","MODAL","closeOnBreakpoint","Layout","CloseContainer","CloseButton","CrossWrapper","ContentContainer","withModalContext","modal","shouldHideCloseButton","onActivate","dialogRef","contentContainerRef","prevModalContent","usePrevious","Boolean","windowSize","useWindowSize","enabled","BREAKPOINTS","dialog","contentContainer","clickOutsideListener","disableBodyScroll","enableBodyScroll","focusTrapOptions","LargeCross","titleId","DiscardChangesAlert","navigationBlocked","alertBodyDictionaryKey","isNavigationBlocked","returnValue","StickyFooterContainer","stickyFooter","ie","isSticky","setSticky","stickyFooterRef","isCookieBannerClosed","isOneTrustScriptReady","useOneTrustActiveGroups","updatePositions","cancelAnimationFrame","requestAnimationFrame","stickyFooterHeight","liveChatMessage","LIVE_CHAT_ONLINE_MESSAGE_ID","liveChatButton","LIVE_CHAT_ONLINE_BUTTON_ID","LIVE_CHAT_OFFLINE_BUTTON_ID","cookieBanner","COOKIE_BANNER_ID","updateLiveChatPosition","pageFooter","pageFooterTop","windowHeight","innerHeight","updateStickyState","pageFooterPosition","isPageFooterVisible","updateStickyFooterPosition","gutters","careerProfileFormValidators","redirectUrls","redirectValue","namesArray","redirectValues","hrefSplit","redirectLink","decodeURIComponent","successHeading","backToRenewalFormLabelText","submissionRedirectLinks","redirectValuesName","history","useHistory","shouldShowStickyFooter","hasAnyAPIError","errors","shouldShowAPIError","shouldShowAPISuccess","shouldShowSpinner","errorName","customIcon","showLoadingLabel","goBack","LocationAPIContext","LocationAPIContextProvider","setCountries","countryDetail","setCountryDetail","countryStates","setCountryStates","addressSearch","setAddressSearch","addressResult","setAddressResult","countriesApi","countryDetailApi","countryStatesApi","addressSearchApi","addressResultApi","countriesMap","obj","iso","hasCountryGotStates","selectedCountry","selectedCountryValidations","hasState","v","hasCountryGotAddressLookupFeature","validation","useLocationAPIContext","locationAPIContext","AddressManual","formValuesKey","addressLine1Label","addressLine2Label","addressLine3Label","formValues","selectedCountryIsoCode","selectedState","statesPlaceholder","stateLabel","suburbLabel","hasSuburb","postcodeLabel","hasPostcode","addressManual","toggle","AddressDropdown","onSelectAddressResult","addressCountryIsoCode","addressDropdownLabel","cantFindAddressText","addressRequiredText","addressDropdownPlaceholder","debouncedHandleInputChange","useDebouncedCallback","countryIso","filteredItems","provider","handleAddressSelection","selectedAddress","addressUpdates","addressLines","postcode","suburb","CountryDropdown","countryLabel","countryPlaceholder","DeliveryContactField","deliveryContactLabel","deliveryContactPlaceholder","AddressEditor","setTouched","hasExistingAddress","isShippingAddress","hasAddressDropdownFeature","shouldShowManualMode","setShouldShowManualMode","clearAddress","clearCountry","isSameAddress","findAnAddressText","Alert","fieldMapping","mail","phone","mockContactProfile","addresses","residentialAddressLabel","mailingAddressLabel","deliverySameAsResidential","mailingContact","billingContact","getMailingContact","primaryContactName","isSameAddressCheckboxItems","comms","isMailReturned","hasCommunicationErrors","phoneErrorKeys","keyIntersection","intersection","ValidationAlerts","hasMailError","personalDetails","contactProfileApiError","contactProfileSubmissionApiLoading","contactProfileApiLoading","countriesApiLoading","countriesApiError","ContactDetails","formatLabel","contactDetails","showErrorOnLoad","editEmailLink","mobileCountryCodeRefData","phoneNumberTypeRefData","phoneNumberTypes","emailLabel","preferredPhoneLabel","businessPhoneLabel","homePhoneLabel","mobileCountryCodeLabel","mobilePhoneLabel","phoneFormatHint","mobileCountryCodePlaceholder","mobilePhonePlaceholder","phoneNumberPlaceholder","emailAddress","childrenAfterText","preferredPhoneNumber","mobilePhoneCountryCode","selectedOption","workPhone","homePhone","salutationsRefData","salutations","genderRefData","genderCodes","atsiOriginRefData","indigenousChoices","salutationLabel","preferredNameLabel","dateOfBirthLabel","genderLabel","atsiOriginLabel","genderPlaceholder","preferredNameOrderOptions","personal","salutation","firstName","surname","middleName","preferredNameOrder","membership","isMember","gender","indigenousIdentity","preferredName","phoneRegexValidationPattern","mobilePhoneRegexValidationPattern","fallbackPhoneErrorMessage","formats","parseStrict","toDate","contactDetailsFormValidationDictionaryItems","invalid","returnedMail","commsValidationSchema","validationDictionaryItems","object","string","ensure","excludeEmptyString","boolean","getValidationSchema","personalValidationSchema","date","typeError","addressValidationSchema","postcodeRegex","isPrivate","deliveryIdentifier","deliveryIdentifierProvider","formRef","isContactDetailsDataReady","isMailReturnedApiResponse","validateForm","omitAddressType","equals","innerRef","isDateOfBirthAvailable","validateOnMount","contactDetailsFormValidators","getPageBannerThemeColor","pageBannerTheme","pageBanner","getPageBannerThemeType","tint1","element","TextBannerContainer","CategoryLabelLink","accent1","headerColor","Blurb","subheading1","BannerImage","BookHingeParent","BookHingeSVGContainer","Figure","BannerContent","TextBannerContent","LinksDiv","SecondaryLinkButton","SecondaryLinkButtonDark","AdImageBanner","AdTextBanner","ImageBanner","pageImage","linkField","datasourceName","pageBannerCallToActionIcon","pageBannerCallToActionSecondaryIcon","pageBannerCallToActionSecondaryLink","isCorporateSite","pageBannerThemeCheckDark","handleClick","alignSelf","analyticsOptions","analyticsTrackingName","stripHTML","MW_640","MW_768","MW_1024","ImageHeight16by9","BookHinge","desktopPlacement","mobilePlacement","TextBanner","isCorporateSiteContext","renderingPageFields","renderingParams","isImageBanner","showImage","categoryInformationLinkObj","categoryUrl","CTAbutton","CTASecondaryLink","imageBannerProps","CTAIcon","pageBannerCallToActionSecondaryCSSClass","CTASecondaryCssClass","CTASecondaryIcon","textBannerProps","Footer","footer","shouldHideBackToTop","Container1","Container2","Column","LogoWrapper","CommunityLinkWrapper","CommunityLink","SocialIconsWrapper","SocialIconsGroupOne","SocialIconsGroupTwo","PrimaryLink","primaryLink","SecondaryLink","BottomList","BottomLink","PrivacyPreferencesLink","SocialTitle","labelColor","SubscribeLink","YoutubeSocialWrapper","YoutubeSocicalLink","ImagesContainer","YOUTUBEICON","AsyncLogo","asyncComponent","socialLinkMapGroupOne","socialLinkMapGroupTwo","wechat","weibo","threads","LightTooltip","withStyles","palette","common","white","boxShadow","Tooltip","socialLinks","linkMap","linkData","titleLable","placement","footerLinkItem","LinkComponent","linkTitle","isValidNavLink","lang","filterLinks","linksArray","socialKeys","linkObj","hideBackToTop","primaryNavigation","firstColumnLinks","secondaryNavigation","secondColumnLinks","tertiaryNavigation","thirdColumnLinks","bottomNavigation","bottomLinks","acknowledgmentCountry","messages","aboriginalFlagSrcLink","flagAboriginal","torresStraitFlagSrcLink","flagTorresStraitIslander","primaryItems","links","secondaryItems","tertiaryItems","bottomItems","socialMediaLinks","filteredGroupOneLinks","filteredGroupTwoLinks","validSocialLinks","subscribeLink","communityLink","youtubeLink","youtube","BackToTop","CampaignNavigationContainer","campaignNavigation","typography","CAMPAIGN_NAVIGATION","pageHeader","CampaignName","campaignName","hover","activeAfter","Gradient","gradient","transition","NavigationContainer","nav","navigation","LinkList","GridContainer","GridRow","GridItem","campaignCTA","campaignCta","campaignNavigationStickyRef","currentPageId","numberLinks","listRef","startGradientRef","endGradientRef","activeLinkRef","isScrollUp","setScrollUp","horizontalTimeout","toggleGradientMasking","scrollLeft","scrollWidth","initialScrollPos","handleScroll","pageHeaderHeight","scrollY","handleHorizontalScroll","renderLinks","stickyfill","activeLeftEl","listLeftEl","offset","debouncedHandleResize","scrollUpPageHeaderStyle","linkType","Nav","mainMenu","backgroundPrimary","MOTION_SPEED_FAST","MENU","NavToolbar","toolbar","NavToolbarControl","NavToolbarTabs","NavToolbarTabItem","activeHighlight","NavToolbarClose","submenuActive","backgroundSecondary","ListWrapper","SecondaryContainerWrapper","PrimaryContainerWrapper","InnerNavWrapper","focused","LabelWrapper","colorHighlight","fixedTitle18","LinkEndIcon","showOnHover","MenuCloseButton","buttonColor","LinkButtonSub","ReactLink","internalPageBanner","focusColor","MenuItem","forwardRef","menuActive","onBlur","onItemClick","handlers","onKeyDown","MenuItemWrapper","enabledItemRefs","enabledItemsIndex","keyPrefix","onItemFocus","Fragment","withMenuContext","getEnabledItemsIndex","menuItems","onItemBlur","enabledItemProps","activeMenu","menuID","navigationItems","setMenuActive","enabledMenuItems","mainNavRef","focusItemIndex","setFocusItemIndex","setTimer","useTimer","transitioning","setTransitioning","getAllEnabledItems","getAllEnabledChildItems","enabledChildLinks","el","groupSecondarylinks","groupLink","flat","createRef","currentNavClasses","contains","firstAnchor","focusFirstItem","parentIndex","childIndex","isChildNav","hasChildNav","targetIndex","currentFocusGroup","prevIndex","nextIndex","getEnabledItemsChildIndex","enabledItemsChildIndex","onParentItemClick","resetMenu","PrimaryNavigation","menuLabel","menuSubscribeLabel","subscribeToNewsletterLink","Divider","VisitCorporateSiteCTA","ReactRouterLink","Magazine","SecondaryNavigation","globalMagazineShowcase","magazineCoverImage","magazineDescription","primaryNavDescription","magazineUrl","magazineCtaLabel","magazineTitle","visitCpaAustraliaLabel","setActiveMenu","getNavigation","getNavigationItem","navigationName","containerRef","prevMenuActive","cancelTimer","overflowElements","focusListener","reserveScrollBarGap","Form","mainSearch","InputWrapper","inputBorderRadiusLessThanMd","Input","ClearButton","outlineColour","ClearIcon","iconFill","iconColorOnPrint","SubmitWrapper","Submit","submit","minWidth","MainSearch","inputRef","setFocused","currentUrlSearchTerm","searchTerm","setSearchTerm","buildSearchUrl","term","page","from","buttonStyles","menu","MENU_BUTTON","paddingLeft","dashboardMenuButton","Button","targetMenu","setEnabled","PermIdentity","Login","renderIcon","SkipContainer","skipContainer","SkipLink","caption2","skipLink","PageHeaderWrapper","stickyOnMobile","PageHeaderWrapperSec","StyledPageHeader","PageHeaderContent","transitions","pageDisplayCampaignNavigation","fixed","LogoLink","showOnPrint","logo","calcMenuOffset","extra","beforeRootSpace","MenuContainer","SearchContainer","searchContainer","ITBSearchContainer","ITBSearchWrapper","DimContent","overlayColor","MENU_COVER","MenuActiveBlockInteraction","MENU_BLOCK","dictionaryKey","itemId","campaignNavigationData","shouldDisplayCampaignNavigation","displayCampaignNavigation","inTheBlackCpaLinkTitleLabel","inTheBlackHomeLinkTitle","corporateHomeLinkTitle","portalRef","skipActive","setSkipActive","isPageFooterInDom","setIsPageFooterInDom","setBeforeRootSpace","stickyRef","portalRefBottomPos","initialPos","pageHeaderContent","isScrollDirectionUp","isSearchRoute","isInTheBlackSearchRoute","isCorporate","isInTheBlack","siteSearchSettings","searchBackdoorKey","searchDisabled","loginUrl","MutationObserver","observer","disconnect","observe","attributes","characterData","renderskipLinks","pageEditing","SearchMenuButton","HeaderButton","MainMenu","MainMenuInTheBlack","TabletMainSearch","getThemeClasses","removeTopPadding","PlaceholderWrapper","ShouldShowBorderTop","withThemeOption","isEmpty","isEmptyClassName","sectionTheme","placeholderTheme","excludeThemeColors","staticClassArray","staticClasses","rowRef","usePlaceholderHasChildren","showTopBorder","TimeIcon","showcaseHero","colour","BannerContainer","BannerFeaturedArticle","BannerFeaturedArticleImageWrapper","BannerFeaturedArticleImage","BannerFeaturedArticleImageIECutout","HeroHeadline","headingH2","headline","CategoryText","BannerFeaturedArticleText","BannerArticle","bannerArticle","borderTopColour","BannerArticleRow","BannerArticleHeader","BannerArticleImage","SubArticleSummary","Banner","handleAnalytics","featuredArticleItem","otherArticleItems","normalizedItems","bannerProps","interactiveCell","SponsorLogoImg","SponsorLabel","tag12","tag14","SponsorLogo","imageClassName","setImageClassName","hasImage","sponsorName","img","onload","MW_248","MH_112","components","Map","componentFactory","componentName","set","loadable","ssr","Advertisement","Announcements","ArticleInfo","ContributorDetail","EmbedAdobeMarketoForm","FeatureSection","FeatureSectionWithAd","MagazineBanner","MagazineIssuesCarousel","MagazinePageBanner","MetadataInTheBlack","MMFCareerProfileForm","MMFContactDetailsForm","PageBanner","PageFooter","PageHeader","PlaceholderFullWidth","PlaceholderSingleColumn","ShowcaseHero","DEFAULT_TIMEZONE_STANDARD_NAME","DEFAULT_SC_NULL_DATE","defaultTimezone","abbreviation","standardRegionName","displayRegionName","checkHasDayShifted","timezone","dateToCheck","dateToCheckAsDate","dateToCheckAsDefaultTimezone","Intl","DateTimeFormat","timeZone","dateToCheckAsCurrentTimezone","getDate","convertUTCToCurrentTimezone","utcDate","shouldReturnLongDate","utcDateAsDate","weekday","hour","minute","TimezoneContext","setTimezone","TimezoneProvider","getPropertyByKey","keyValue","entries","CorpAllPagesStructuredData","site","SitelinkBoxHomePageStructuredData","currentPath","MainContainer","DefaultLayout","fileToDownload","INVISIBLE_CLASS","render","component","SitelinkBoxHomePage","CorpAllPages","VisitorIdentification","ITBAllPagesStructuredData","ITBArticlePagesData","currentTemplateId","templateId","author","datePublished","websiteData","SingleColumnContainer","SidebarContainer","ArticleContainer","MainContentPlaceholder","keyframes","IntroContentPlaceholder","ArticleFooterPlaceholder","OutroContentPlaceholder","languageType","templateNameClassName","mainContainerClassNames","classnames","ITBAllPages","layouts","ITBLayout","layoutFactory","layoutMap","layoutIdMap","LayoutMap","resolveLayout","contextData","layoutId","layoutName","layout","freeze","layoutServiceFactory","create","process","REACT_APP_FETCH_WITH","constants","FETCH_WITH","GRAPHQL","GraphQLLayoutService","endpoint","graphQLEndpoint","apiKey","sitecoreApiKey","siteName","jssAppName","RestLayoutService","origin","configurationName","layoutServiceConfigurationName","RouteHandler","Component","super","storeAppVersion","appVersion","sessionStorage","extractRouteData","sitecore","addMutationObserver","handleBodyChanges","routeData","isRouteChange","defaultLanguage","updateLanguage","componentDidMount","updateRouteData","sitecoreRoutePath","match","sitecoreRoute","startsWith","setState","TRANSITIONING_CLASS","fetchLayoutData","status","getRouteData","redirect","hasRedirect","reload","updateSitecoreContext","hostname","newLanguage","i18n","changeLanguage","componentDidUpdate","previousProps","existingRoute","newRoute","isEditorActive","assign","pageIsStable","LayoutFactory","updatable","timer","scrollToElementById","scrollOptions","attempts","ScrollToTop","hash","clearTimeout","scrollTop","routePatterns","AppRoot","setSsrRenderComplete","ssrState","Router","graphQLClient","LayoutWithTheme","client","SitecoreContext","layoutData","routePattern","smoothscroll","polyfill","renderFunction","ReactDOM","initLanguage","__JSS_STATE__","ssrRawJson","parse","hydrate","initialGraphQLState","APOLLO_STATE","initialCacheState","createPersistedQueryLink","BatchHttpLink","uri","credentials","headers","connection","cache","InMemoryCache","fragmentMatcher","IntrospectionFragmentMatcher","introspectionQueryResultData","ApolloClient","ssrMode","ssrForceFetchDelay","restore","GraphQLClientFactory","dictionary","debug","lng","fallbackLng","load","useCookie","interpolation","escapeValue","resources","translation","use","initReactI18next","dictionaryServicePath","sitecoreApiHost","backend","loadPath","parsedData","phrases","fetchBackend","rootElement","loaderElement","createFocusStylesObserver","BrowserRouter","breakpoints","getBreakpointKeys","getBreakpoint","matchMedia","point","pointFrom","pointTo","breakpoint","setBreakpoint","currentBreakpoint","setQueryStringWithoutPageReload","qsValue","newurl","protocol","pushState","queryString","qs","deleteKeyFromQueryString","qsObj","newqsObj","newQsValue","convertStringToKebabCase","appendAnalyticsTrackingQueryString","querystring","urlPath","mergedQueryStringWithTracking","convertHashToObject","pre","flex","defaultOptions","disableImagesLoaded","defaultFlickityOptions","contain","freeScroll","prevNextButtons","setGallerySize","static","accessibility","lazyLoad","getInteractiveElement","tagName","isInteractive","getInteractiveChild","Carousel","hidePrevNextButtonsOnMobile","flickity","setFlickity","prevFlickity","prevEnabled","setPrevEnabled","nextEnabled","setNextEnabled","Children","count","wrapperRef","resize","call","cellFocusListener","focusIndex","getAttribute","elementCellIsActive","slideIndex","slides","cellIndex","getCellElement","cells","j","getElementSlideIndex","select","scrollListener","n","overflows","changeListener","carouselName","getCellElements","removeAttribute","on","setAttribute","off","previous","once","flickityRef","next","TriggerText","caption1","hide","Status","CopyText","displayText","toBeCopied","success","failed","successVisible","setSuccessVisible","failureVisible","setFailureVisible","onCopy","copy","copied","defaultProps","lastUpdated","LastUpdated","LinkTypes","LinkTheme","LinkSize","LinkChildrenWrapper","LinkTextWrapper","LinkIconWrapper","SvgWrapper","linkUrl","linkAriaCurrent","None","Small","EditorDiv","EditorText","withEditModeNotice","childrenOnly","hasNoHref","noIcon","noticeEnabled","noticeMessage","getLink","class","additionalStyledLinkProps","External","Internal","Primary","Default","imageTypes","publication","dna","simple","imageStyles","EditorImage","ImageWrapper","imageType","ListingImage","imageComponent","imageAspect","SectionWrapper","backgroundOverride","Grey","styleKey","marginWildCard","marginFirstChild","radio","cssInlineSvg","bodycheckboxFocus","Section","sectionThemeClass","bgColor","SpaLoader","StructuredData","TimeEstimate","borderColorFocus","svgColor","StyledReactARIAToolTip","ReactARIAToolTip","TOOL_TIP","bgcolor","eventType","HeaderSection","headingH6","headingWithDescription","descriptionSize","reduceBottomPadding","descriptionField","textContent","innerText","searchPhrase","headingStyle","bodyStyle","fixedStyle","fixedBodyStyle","marginBottom2","marginBottom3","headings","H1","H2","H3","H4","H5","marginBottom1","H6","fixedBody18","articleBody","body1","body2","upperCase","tag10","tint4","actionHover","darkMode","StyledNotice","noticeLevel","StyledComponentHighlight","isEditMode","sitecoreContextFactory","prototype","ComponentWithSitecoreContext","withSitecoreContextJss","withAuthenticatedCheck","isAuthenticatedContent","accessRestrictedTo","CoveoNoIndexBeginTag","CoveoNoIndexEndTag","CoveoNoIndexWrapper","clonedProps","CorporateTheme","InTheBlackTheme","darkThemeConfig","corporate","CorporateDarkTheme","intheblack","InTheBlackDarkTheme","placeholderBackgroundColors","removeRenderingTheme","dissocPath","removeParamTheme","assocPath","EditorNotice","fieldValidators","expectDataSource","MissingDataSourceWarning","InvalidFieldsWarning","invalidFieldsList","validationErrors","missingDataSource","hasDataSource","componentProps","validationResults","getFieldValidationResults","hasErrors","allowRender","every","validator","allowEditModeRenderOnError","componentWithValidationResults","backgroundEven","backgroundOdd","colorHeading","colorLink","paddingUnit","whiteCard","shadow","ctaIconFill","blueCard","yellowCard","functionalCardContainer","descriptionColor","backgroundImage","colorKeyline","iconVisible","tablist","colorHighlightActive","colorBackgroundHover","colorBackgroundPressed","pressed","colorInactiveColorHover","flexGrow","fontWeightActive","paddingXMobile","paddingX","outlineFocus","tabPanelTextColor","tagList","packageJson","sitecoreDistPath","tabPanelMinHeight","darkBlue","neutral","getRandomId","random","withSvg","clipPath","stroke","strokeWidth","COOKIE_BANNER","LIVE_CHAT","LOADING_SCREEN","LIVE_CHAT_MOBILE_MENU_ACTIVE","BREADCRUMB","QUICK_CLOSE","SpinnerContainer","tint5","getHingePlacementRules","BookHingeContainer","crossWrapper","closeButtonHover","Svg","merged","ariaLabel","svgProps","titleProps","startObserving","elem","setFocusStylesSafeRemoval","unsetFocusStylesSafeRemoval","outlineOffset","outlineStyle","inputBorderRadius","InputIcon","iconFillActive","Search","validVariants","variant1","columns","alignment","variant2","isImageAspectSquare","variant3","variant4","getImageSrcSizesByColWidth","colWidth","smallestColumns","num","MW_896","ratio","Ratio_16By9","fallBackWidth","fallBackRatio","imageWidth","imageRatioDivisor","floor","setAnchorElemScrollMarginTop","targetEl","breadcrumbHeight","calcScrollMarginTop","Caption","figcaption","contentRichText","richTextWithImage","captionColor","ImageFigure","RichTextImage","caption","isExternal","isDownload","targetElement","currentHash","MissingDataSource","hideExternalLinkIcon","richTextField","parsedRichTextField","cleanLocationId","elemToScroll","scrollToElement","StyledContentRichText","materialIcons","customIcons","memo","iconFieldName","iconComponentName","m","chr","isCustomIcon","folderName","fillRule","clipRule","getColor","colorKey","colorArgs","firstKey","shift","acc","curr","unorderedList","orderedList","bullet","marker","dateFormat","strictMode","parseZone","short","dateObj","isValidLinkObject","StyledTagList","TagList","PlaceholderCard","contentCard","cardBackground","ImageColumn","PlaceholderImage","DetailsColumn","IconContainerStyles","AttributeItemStyles","AttributesWrapper","AttributeFooterWrapper","areTagsClickable","showCategoryTag","showPublishDate","tags","cardProps","hasImageSrc","headingType","isExternalLink","inTheBlackPlaceholder","isLinkEnabled","borderFocusWithinColor","breadcrumb","linkList","scrollbar","mediaPrint","bannerHeading","bottomLeft","tertiary","iconOnly","danger","backgroundFocus","interactive100","colorAlternate","interactive400","secondaryDark","tertiaryDark","announcementTertiary","inTheBlack","borderFocusAll","backToTop","corporateColors","interactive700","visited500","logInDev","contentLinkColor","textbody","focusBorder","downloadAttributes","downloadDescription","downloadLink","buttonBackground","cardTextColor","ctaColor","iconWrapper","cardTheme","main","tint","footLinkRow","linkListItem","linkListItemDesc","defaultBorderColor","textBannerContainer","subtitle","checkboxFocus","arrowWrapper","pathFillColorHover","importComponent","C","packageConfig","require","checkSatelliteWithCallback","emit","debugAnalytics","trackEventName","lensPath","defaultSearchData","filterName","filterValue","numberOfResults","searchPage","searchResult","existingSlot","destroySlots","adMapping","sizeMapping","addSize","builtMapping","build","defineSlot","defineSizeMapping","addService","enableSingleRequest","collapseEmptyDivs","setTargeting","enableServices","mutationRecord","mutationObserver","getRefElement","ONE_TRUST_CONSENT_UPDATE_EVENT","ONE_TRUST_CLOSED_COOKIE_NAME","ONE_TRUST_DEFAULT_ACTIVE_GROUPS","ONE_TRUST_COOKIE_PURGE_EXCLUDE_LIST","activeGroups","hasActiveGroupsChanged","setActiveGroups","OptanonActiveGroups","setIsCookieBannerClosed","setIsOneTrustScriptReady","prevActiveGroups","cookiesToDelete","cookie","arr","domain","purgeBrowserData","handleConsentUpdate","getParentSection","nodeName","useLayoutEffect","counter","effectItv","hasChildNodes","trackEvent","scrollPercentage","elementOffset","triggered","setTriggered","amountscrolled","winheight","clientHeight","docheight","docEl","heightOffset","max","scrollHeight","getDocHeight","trackLength","debouncedAmountsScrolled","timeoutRef","fn","handleUnload","onUnload","getSize","setWindowSize","getDisplayName","Unit","Abbreviation","B","TagKey","querySortPrecedence","filters","capacity","usedFor","suitableFor","querySort","stringifiedQuery","queryStr","sort","encodeURIComponent","contents","buildSearchQuery","hasPassiveEvents","passiveTestOptions","passive","isIosDevice","navigator","platform","previousBodyOverflowSetting","previousBodyPaddingRight","locks","documentListenerAdded","initialClientY","allowTouchMove","lock","rawEvent","touches","setOverflowHidden","scrollBarGap","paddingRight","overflow","restoreOverflowSetting","clientY","targetTouches","isTargetElementTotallyScrolled","stopPropagation","ontouchstart","ontouchmove","elements","baseStyles","base","maxWidth","headingMargin","RichTextStyle","paragraph","externalLink","afterColor","head","row","backgroundAlt","cell","blockquote","indent","cachedScripts","useScript","customClassName","customType","loaded","onScriptLoad","onScriptError","defaultCountry","CountryContext","setCountry","CountryProvider","contextValue","withCountryContext","withTimezoneContext","iconSize","iconBreakpointDefaultSize","AuthenticatedContentIcon","iconStyleConfig","isAuthenticated","mergedProps","getZeroMediaQuery","includeMedia","bpA","bpB","focusedGrey","primary2","primary3","featureList","cross","tick","messaging","backgroundError","backgroundErrorDark","backgroundInfo","backgroundNeutral","backgroundSuccess","backgroundWarning","colorError","colorInfo","colorNeutral","colorSuccess","colorWarning","close","fillHover","scrollThumb","info","warning","interactive1Pressed","dark","brand","orange","BookHingeSVG","maxHeight","mediaApi","updateImageUrl","String","widths","getSrcSet","NavToolbarBack","MenuDivider","MenuSubBody","GroupLabelWrapper","groupLabelColor","descriptionActive","MenuLinkButton","LogOutButton","StyledSpinnerLogout","Logout","buttonText","setButtonText","showSpinner","setSpinner","spinner","fetch","ssoSignoutLink","logoutOkta","isSubItem","useLevel2Title","level2LinkTitle","hasChildren","buttonClass","iconClass","MenuItemSub","subNavTabIndex","groupLinks","groupTitle","childItems","newKeyPrefix","childItem","enabledChildIndex","addSpacingBelow","childRef","activeSubNav","isDesktop","onItemHover","currentRef","shouldHaveSubmenu","isSubNavActive","subnavItemProps","onMouseEnter","subNavWrapper","setActiveSubNav","setIsDesktop","windowWidth","loginButton","first","currentSubNavWrapper","enabledIndex","subnavOpen","navItems","dashboardNav","TagNavLink","backgroundPressed","borderPressed","sizeMap","tagVariant","backgroundVisited","validTag","defaultDigitalData","countryRegion","countryArea","stateProvince","cpaID","cpdhoursPendingByTriennium","cpdRequired","cpdtrienniumEndDate","designation","division","loginStatus","profileType","userType","social","sharedPlatform","DigitalDataProvider","BackToTopContainer","BackToTopButton","searchMenu","searchMenuButton","setModal","SearchMenu","SearchMenuContainer","SearchMenuHeader","searchMenuHeader","MainSearchWrapper","CloseIcon","closeIcon","mobileSearchPlaceholder","handleCloseSearchMenu","darkTheme","tint6","visited400","demo","interactiveCard","colorErrorDark","colorSuccessDark","colorWarningDark","warning700","darkSubtle","isObject","getProperty","part","arrayIndex","normalizedField","normalizeJssField","isValidField","isValidImage","isValidLink","isValidUrl","isValidUrlWithSSL","isValidNumber","Number","isValidInteger","isInteger","isValidPercentage","isFinite","hasComponentProps","hasRenderingWithDataSourceId","hasFields","hasData","objValues","validateObjectHasPropertiesWithData","fieldValidator","fieldPath","checkContextItem","fieldRaw","isValidIconReferenceField","MenuContext","MenuProvider","isPlainValue","getValue","applyValue","SUPPORTED_PROPS","getCssString","prev","mediaQueries","getMediaQueries","opacity","propValue","generateHelper","supportedProps","margin","marginX","marginY","paddingY","invalidValue","responsiveSpacing","factor","sign","negativeMatch","exec","allBreakpointKeys","spacingBreakpointKeys","breakpointIndex","spacingBPIndex","fallbackBreakpoint","alignContent","flexDirection","flexWrap","flexShrink","minHeight","transitionProperty","transitionTiming","textAlign","carousel","card","hoverBoxShadow","htmlContent","linkWrapper","attributeIcon","borderDashed","borderDashedHover","borderSelected","boxShadowHover","highlightColour","campaign","contentDetail","inPractice","podcast","textOnly","darkTextContrast","categoryHover","pagination","lightBanner","darkBanner","black","brandSecondary4Light","purple","teal","brandSecondary5Light","playButtonBackground","darkBackgroundTint2","colorLabel","focusHighlight","corporateVariantSettings","darkBackgroundTint5","subtle2","subtle3","primaryBackground","primaryColor","primaryHover","secondaryBackground","checkbox","clearAll","clearFilter","showFewerItem","showAllItem","dark2","light","primaryDark","iconContainer","textWrapper","credit","flickityWrapper","dot","isSelected","defaultStyle","nonInteractiveOutline","nonInteractiveDefault","nonInteractiveSubtle","nonInteractiveCategory","nonInteractiveStatusSuccess","nonInteractiveStatusWarning","nonInteractiveStatusError","interactiveLink","interactiveCategory","Dark","personalisedCarousel","accordion","callToAction","campaignPageBanner","cardListInTheBlack","contentRelated","coveoContentCards","dateLinkList","documentList","colCount","containerMaxWidth","containerMinWidth","directions","homepageBanner","imageCardGrid","imageWithTitleAndText","lateralNavigation","liveChat","multiMediaEmbed","masonryGrid","placeholderDashboardSingleColumn","profilePageBanner","xxl","searchResults","showMore","singleImage","staticTextAndImage","font","tabs","timezoneSelector","fixedTitle20","H0","tag16","DarkTheme","agendaAccordionDarkTheme","accordionDarkTheme","cardListInTheBlackDarkTheme","dateLinkListDarkTheme","masonryGridDarkTheme","sectionDarkTheme","tabsDarkTheme","tagDarkTheme","tooltipDarkTheme","renderField","markup","SITECORE_CONTEXT_CORPORATE","regexp","module","exports","ModalContext","ModalProvider","modalContent","fallbackText","toPercent","wrapWithMediaQuery","getColStyles","fluid","dir","borders","gutterLeft","gutterRight","gutterTop","gutterBottom","propType","gridX","gridY","svgString","encodingMap","entry","replacement","urlEncode","completedMessage","textColor","infoSessionName","desktopFontSize","TabletFontSize","mobileFontSize","desktopNumberFontSize","desktopTextFontSize","tabletNumberFontSize","tabletTextFontSize","mobileNumberFontSize","mobileTextFontSize","schedule","tabletFontSize","leftbar","desktopSize","tabletSize","normal","nextBestAction","podcastEpisodeCard","podcastSeriesCard","podcastSeries","cutoutBackground","subtitleColor","backToParentColor","chartRoundingLabel","details","thisYear","threeYears","strong","ctaIconWrapper","ctaHeading","ctaLinkIconWrapper","focusGrey","pageContainer","separator","borderBottom","svgFill","exempt","unknown","subjects","cards","course","podcastTopic","circle","completed","leftConnector","circleWrapper","greyBackground","labelWrapper","accordionDark","informationSession","cardList","cardListInTheBlackBanner","cardListWithInternalNavigation","cpdTracker","memberDetails","memberRenewalForm","pageBannerWithInternalNavigation","programTracker","stepTracker","cardListDarkTheme","isTitleBold","setHide","brandSecondary1Light","brandSecondary2Light","brandSecondary3Light","brandSecondary4","brandSecondary4Dark","brandSecondary5","brandSecondary5Dark","darkBackgroundTint4","darkBackgroundTint6","darkTextNonessential","darkTextDisabled","webpackContext","req","webpackContextResolve","__webpack_require__","o","none","slow","elevation32","webpackAsyncContext","ids","FlickityWrapper","PrevNextButton","ArrowWrapper"],"mappings":";kmEAAe,8E,SCEA,UAAC,MAAEA,GAAH,SAAeC,cAAd,MAAD,+CACOD,EAAME,QAAQC,aCSpC,IAAIC,GAAgB,EAKpB,GAH0C,oBAAXC,OAO7B,GAAKA,OAAOC,iBAEL,CACL,MAAMC,EAAWC,SAASC,cAAc,OAGtC,CAAC,GAAI,WAAY,QAAS,QAAQC,MAAMC,IACtC,IACEJ,EAASK,MAAMC,SAAWF,EAAS,SACnC,MAAOG,IAET,MAAkC,IAA3BP,EAASK,MAAMC,cAGxBT,GAAgB,QAblBA,GAAgB,OAJlBA,GAAgB,EAwBlB,IAAIW,GAAgB,EAGpB,MAAMC,EAAyC,oBAAfC,WAG1BC,EAAS,CACbC,IAAK,KACLC,KAAM,MAIFC,EAAW,GAKjB,SAASC,EAAOC,EAAWC,GACzB,IAAK,IAAIC,KAAOD,EACVA,EAAaE,eAAeD,KAC9BF,EAAUE,GAAOD,EAAaC,IAKpC,SAASE,EAAaC,GACpB,OAAOC,WAAWD,IAAQ,EAG5B,SAASE,EAAgBC,GACvB,IAAIC,EAAe,EAEnB,KAAOD,GACLC,GAAgBD,EAAKE,UACrBF,EAAOA,EAAKG,aAGd,OAAOF,EAMT,MAAMG,EACJC,YAAYL,GACV,KAAMA,aAAgBM,aACpB,MAAM,IAAIC,MAAM,sCAClB,GAAIjB,EAASX,MAAM6B,GAAWA,EAAOC,QAAUT,IAC7C,MAAM,IAAIO,MAAM,8CAElBG,KAAKD,MAAQT,EACbU,KAAKC,YAAc,KACnBD,KAAKE,SAAU,EAEftB,EAASuB,KAAKH,MAEdA,KAAKI,UAGPA,UACE,GAAIzC,GAAiBqC,KAAKK,SAAU,OAChCL,KAAKE,SAASF,KAAKM,cAEvB,MAAMhB,EAAOU,KAAKD,MAKZQ,EAAoB1C,iBAAiByB,GACrCkB,EAAoB,CACxBpC,SAAUmC,EAAkBnC,SAC5BM,IAAK6B,EAAkB7B,IACvB+B,QAASF,EAAkBE,QAC3BC,UAAWH,EAAkBG,UAC7BC,aAAcJ,EAAkBI,aAChCC,WAAYL,EAAkBK,WAC9BC,YAAaN,EAAkBM,YAC/BC,SAAUP,EAAkBO,UAM9B,GACEC,MAAM3B,WAAWoB,EAAkB9B,OACN,cAA7B8B,EAAkBC,SACW,QAA7BD,EAAkBC,QAElB,OAEFT,KAAKE,SAAU,EAOf,MAAMc,EAAmB1B,EAAKnB,MAAMC,SAEJ,UAA9BmC,EAAkBnC,UACY,kBAA9BmC,EAAkBnC,WAElBkB,EAAKnB,MAAMC,SAAW,UAKxB,MAAM6C,EAAgB3B,EAAK4B,WACrBA,EACJ3C,GAAoB0C,aAAyBzC,WACzCyC,EAAcE,KACdF,EACAG,EAAgB9B,EAAK+B,wBACrBC,EAAkBJ,EAAWG,wBAC7BE,EAAsB1D,iBAAiBqD,GAE7ClB,KAAKwB,QAAU,CACblC,KAAM4B,EACNO,OAAQ,CACNrD,SAAU8C,EAAW/C,MAAMC,UAE7BsD,aAAcR,EAAWQ,cAE3B1B,KAAK2B,gBAAkB,CACrBhD,KAAMyC,EAAczC,KACpBiD,MAAO7D,SAAS8D,gBAAgBC,YAAcV,EAAcQ,OAE9D5B,KAAK+B,gBAAkB,CACrBrD,IACE0C,EAAc1C,IACd4C,EAAgB5C,IAChBQ,EAAaqC,EAAoBS,gBACnCrD,KACEyC,EAAczC,KACd2C,EAAgB3C,KAChBO,EAAaqC,EAAoBU,iBACnCL,OACGR,EAAcQ,MACfN,EAAgBM,MAChB1C,EAAaqC,EAAoBW,mBAErClC,KAAKmC,QAAU,CACb/D,SAAU4C,EACVtC,IAAKY,EAAKnB,MAAMO,IAChB0D,OAAQ9C,EAAKnB,MAAMiE,OACnBzD,KAAMW,EAAKnB,MAAMQ,KACjBiD,MAAOtC,EAAKnB,MAAMyD,MAClBS,MAAO/C,EAAKnB,MAAMkE,MAClB3B,UAAWpB,EAAKnB,MAAMuC,UACtBE,WAAYtB,EAAKnB,MAAMyC,WACvBC,YAAavB,EAAKnB,MAAM0C,aAG1B,MAAMyB,EAAepD,EAAasB,EAAkB9B,KACpDsB,KAAKuC,QAAU,CACbC,MAAOpB,EAAc1C,IAAMd,OAAO6E,YAAcH,EAChDI,IACEpB,EAAgB5C,IAChBd,OAAO6E,YACPvB,EAAWQ,aACXxC,EAAaqC,EAAoBoB,mBACjCrD,EAAKoC,aACLY,EACApD,EAAasB,EAAkBG,eAMnC,MAAMiC,EAAiBrB,EAAoBnD,SAErB,YAAlBwE,GAAkD,YAAlBA,IAClC1B,EAAW/C,MAAMC,SAAW,YAO9B4B,KAAK6C,kBAKL,MAAMC,EAAS9C,KAAK+C,OAAS,GAC7BD,EAAMxD,KAAOvB,SAASC,cAAc,OAGpCa,EAAOiE,EAAMxD,KAAKnB,MAAO,CACvBkE,MAAOjB,EAAcQ,MAAQR,EAAczC,KAAO,KAClDqE,OAAQ5B,EAAcgB,OAAShB,EAAc1C,IAAM,KACnDgC,UAAWF,EAAkBE,UAC7BC,aAAcH,EAAkBG,aAChCC,WAAYJ,EAAkBI,WAC9BC,YAAaL,EAAkBK,YAC/BC,SAAUN,EAAkBM,SAC5BmC,QAAS,EACTC,OAAQ,EACRC,cAAe,EACfC,SAAU,MACVhF,SAAU,WAGZ6C,EAAcoC,aAAaP,EAAMxD,KAAMA,GACvCwD,EAAMvD,aAAeF,EAAgByD,EAAMxD,MAG7CuD,kBACE,IAAK7C,KAAKE,SAAWF,KAAKK,SAAU,OAEpC,MAAMiD,EACJ7E,EAAOC,KAAOsB,KAAKuC,QAAQC,MACvB,QACA/D,EAAOC,KAAOsB,KAAKuC,QAAQG,IAC3B,MACA,SAEN,GAAI1C,KAAKC,aAAeqD,EAAxB,CAEA,OAAQA,GACN,IAAK,QACHzE,EAAOmB,KAAKD,MAAM5B,MAAO,CACvBC,SAAU,WACVO,KAAMqB,KAAK+B,gBAAgBpD,KAAO,KAClCiD,MAAO5B,KAAK+B,gBAAgBH,MAAQ,KACpClD,IAAKsB,KAAK+B,gBAAgBrD,IAAM,KAChC0D,OAAQ,OACRC,MAAO,OACPzB,WAAY,EACZC,YAAa,EACbH,UAAW,IAEb,MAEF,IAAK,SACH7B,EAAOmB,KAAKD,MAAM5B,MAAO,CACvBC,SAAU,QACVO,KAAMqB,KAAK2B,gBAAgBhD,KAAO,KAClCiD,MAAO5B,KAAK2B,gBAAgBC,MAAQ,KACpClD,IAAKsB,KAAKmC,QAAQzD,IAClB0D,OAAQ,OACRC,MAAO,OACPzB,WAAY,EACZC,YAAa,EACbH,UAAW,IAEb,MAEF,IAAK,MACH7B,EAAOmB,KAAKD,MAAM5B,MAAO,CACvBC,SAAU,WACVO,KAAMqB,KAAK+B,gBAAgBpD,KAAO,KAClCiD,MAAO5B,KAAK+B,gBAAgBH,MAAQ,KACpClD,IAAK,OACL0D,OAAQ,EACRC,MAAO,OACPzB,WAAY,EACZC,YAAa,IAKnBb,KAAKC,YAAcqD,GAGrBC,aACOvD,KAAKE,UAAWF,KAAKK,WAGxBmD,KAAKC,IAAIpE,EAAgBW,KAAK+C,OAAOzD,MAAQU,KAAK+C,OAAOxD,cACvD,GACFiE,KAAKC,IAAIzD,KAAKwB,QAAQlC,KAAKoC,aAAe1B,KAAKwB,QAAQE,cAAgB,IAEvE1B,KAAKI,UAGTE,cACON,KAAKE,UAAWF,KAAKK,WAE1BL,KAAK+C,OAAOzD,KAAK4B,WAAWwC,YAAY1D,KAAK+C,OAAOzD,aAC7CU,KAAK+C,OAEZlE,EAAOmB,KAAKD,MAAM5B,MAAO6B,KAAKmC,gBACvBnC,KAAKmC,QAKTvD,EAASX,MACP6B,GACCA,IAAWE,MACXF,EAAO0B,SACP1B,EAAO0B,QAAQlC,OAASU,KAAKwB,QAAQlC,QAGzCT,EAAOmB,KAAKwB,QAAQlC,KAAKnB,MAAO6B,KAAKwB,QAAQC,eAExCzB,KAAKwB,QAEZxB,KAAKC,YAAc,KACnBD,KAAKE,SAAU,SAERF,KAAK2B,uBACL3B,KAAK+B,uBACL/B,KAAKuC,SAGdoB,SACE3D,KAAKM,cAEL1B,EAASX,MAAK,CAAC6B,EAAQ8D,KACrB,GAAI9D,EAAOC,QAAUC,KAAKD,MAExB,OADAnB,EAASiF,OAAOD,EAAO,IAChB,KAIX5D,KAAKK,UAAW,GAOpB,MAAMyD,EAAa,CACjBlF,WACAc,SAEAqE,cACEpG,GAAgB,EAChBqG,IAEAhE,KAAKiE,cAGPC,OAAO5E,GAEL,KAAMA,aAAgBM,aAAc,CAGlC,IAAIN,EAAK6E,SAAU7E,EAAK,GACnB,OADuBA,EAAOA,EAAK,GAM1C,IAAK,IAAI8E,EAAI,EAAGA,EAAIxF,EAASuF,OAAQC,IACnC,GAAIxF,EAASwF,GAAGrE,QAAUT,EAAM,OAAOV,EAASwF,GAIlD,OAAO,IAAI1E,EAAOJ,IAGpB+E,IAAIC,GAIF,GAFIA,aAAoB1E,cAAa0E,EAAW,CAACA,KAE5CA,EAASH,OAAQ,OAGtB,MAAMI,EAAgB,GAEtB,IAAK,IAAIH,EAAI,EAAGA,EAAIE,EAASH,OAAQC,IAAK,CACxC,MAAM9E,EAAOgF,EAASF,GAIhB9E,aAAgBM,YAQpBhB,EAASX,MAAM6B,IACb,GAAIA,EAAOC,QAAUT,EAEnB,OADAiF,EAAcpE,KAAKL,IACZ,MAObyE,EAAcpE,KAAK,IAAIT,EAAOJ,IAjB5BiF,EAAcpE,UAAK,GAoBvB,OAAOoE,GAGTN,aACErF,EAAS4F,SAAS1E,GAAWA,EAAOM,aAGtCqE,UAAUnF,GAER,KAAMA,aAAgBM,aAAc,CAGlC,IAAIN,EAAK6E,SAAU7E,EAAK,GACnB,OADuBA,EAAOA,EAAK,GAK1CV,EAASX,MAAM6B,IACb,GAAIA,EAAOC,QAAUT,EAEnB,OADAQ,EAAO6D,UACA,MAKbA,OAAOW,GAIL,GAFIA,aAAoB1E,cAAa0E,EAAW,CAACA,IAE5CA,EAASH,OAGd,IAAK,IAAIC,EAAI,EAAGA,EAAIE,EAASH,OAAQC,IAAK,CACxC,MAAM9E,EAAOgF,EAASF,GAEtBxF,EAASX,MAAM6B,IACb,GAAIA,EAAOC,QAAUT,EAEnB,OADAQ,EAAO6D,UACA,OAMfe,YACE,KAAO9F,EAASuF,QAAQvF,EAAS,GAAG+E,WAOxC,SAASK,IACP,GAAI1F,EACF,OAMF,SAASqG,IACH/G,OAAOgH,aAAenG,EAAOE,MAC/BF,EAAOC,IAAMd,OAAO6E,YACpBhE,EAAOE,KAAOf,OAAOgH,YAErBd,EAAWG,cACFrG,OAAO6E,aAAehE,EAAOC,MACtCD,EAAOC,IAAMd,OAAO6E,YACpBhE,EAAOE,KAAOf,OAAOgH,YAGrBhG,EAAS4F,SAAS1E,GAAWA,EAAO+C,qBAYxC,IAAIgC,EAYAC,EACAC,EAXJ,SAASC,IACPH,EAAiBI,aAAY,WAC3BrG,EAAS4F,SAAS1E,GAAWA,EAAOyD,iBACnC,KA/BLjF,GAAgB,EAkBhBqG,IACA/G,OAAOsH,iBAAiB,SAAUP,GAGlC/G,OAAOsH,iBAAiB,SAAUpB,EAAWG,YAC7CrG,OAAOsH,iBAAiB,oBAAqBpB,EAAWG,YAkBpD,WAAYlG,UACd+G,EAAe,SACfC,EAA4B,oBACnB,iBAAkBhH,WAC3B+G,EAAe,eACfC,EAA4B,0BAG1BA,GACGhH,SAAS+G,IAAeE,IAE7BjH,SAASmH,iBAAiBH,GAA2B,KAC/ChH,SAAS+G,GAlBfK,cAAcN,GAqBVG,QAGCA,IAGJrH,GAAeqG,IAKLF,Q,gBCziBA,aAKT,IAJJsB,EAIG,uDAJ6B,MAChCC,EAGG,uDAHK,UACRC,EAEG,uDAFK,OACRC,EACG,uDADIC,IAAOD,KAEVE,EAAkB,GAQtB,MAN0B,iBAAfL,EACTK,EAAgBtF,KAAKiF,GAErBK,EAAkBL,EAGbK,EACJC,KAAKC,GAAD,UAAaA,EAAb,YAAqBJ,EAArB,YAA6BC,IAAOI,OAAOP,GAA3C,YAAqDG,IAAOI,OAAON,MACvEO,KAAK,OClBH,SAASC,IACd,MAAM,mL,oBCID,SAASC,IACd,OAAOvI,cAAP,oTAgBK,SAASwI,EAAaC,GAC3B,OAAOzI,cAAP,u+CACgByI,EAASvI,WACHuI,EAASC,YAAiBD,EAAS/C,OAC9C+C,EAASE,MAIRF,EAASE,MAIRF,EAASE,MAIRF,EAASE,MAKPF,EAASG,WAMPH,EAASI,gBACHJ,EAASK,iBAAsBL,EAASM,YACnDN,EAASG,WAGTH,EAASG,WAKEH,EAASK,iBAAsBL,EAASO,YAI9CP,EAASQ,iBACPR,EAASS,aAChBT,EAASU,YAOFV,EAASvI,WACHuI,EAASC,YAAiBD,EAAS/C,OAC9C+C,EAASE,MAIEF,EAASK,iBAAsBL,EAASO,YAI9CP,EAASvI,WACPuI,EAAS/C,QASR,cAAC,MAAE3F,GAAH,kBAAkBA,SAAlB,UAAkBA,EAAOqJ,aAAzB,aAAkB,EAAcC,WACtC,gBAAC,MAAEtJ,GAAH,kBAAkBA,SAAlB,UAAkBA,EAAOqJ,aAAzB,aAAkB,EAAcE,aAAhC,kBAAsDvJ,SAAtD,UAAsDA,EAAOqJ,aAA7D,aAAsD,EAAcG,iBAErE,cAAC,MAAExJ,GAAH,SAAeA,SAAf,UAAeA,EAAOqJ,aAAtB,aAAe,EAAc5D,UAC/B,cAAC,MAAEzF,GAAH,SAAeA,SAAf,UAAeA,EAAOqJ,aAAtB,aAAe,EAAcjI,QAE9B,cAAC,MAAEpB,GAAH,SAAeA,SAAf,UAAeA,EAAOqJ,aAAtB,aAAe,EAAclI,OAC3B,cAAC,MAAEnB,GAAH,SAAeA,SAAf,UAAeA,EAAOqJ,aAAtB,aAAe,EAAcvE,SAWvC,SAAS2E,EAAWf,GACzB,OAAOzI,cAAP,+YAC4ByI,EAASgB,aAAaC,QACrBjB,EAASgB,aAAaE,SACnBlB,EAASgB,aAAaG,YACvBnB,EAASgB,aAAaG,YACpCnB,EAASoB,WACXpB,EAAS7C,SAASkE,GAChBrB,EAASsB,YAAc,OACvBtB,EAASuB,WAAWF,GACxBrB,EAAShD,QAAQwE,EAAOxB,EAAShD,QAAQyE,EAGlDC,YAAG,MACU1B,EAAS7C,SAASwE,GAChB3B,EAASuB,WAAWI,IAKlC,MAAMC,EAAS,eAACC,EAAD,uDAAQ,UAAW3B,EAAnB,uDAA2B,UAA3B,OAAyC,IAAgB,IAAf,MAAE5I,GAAY,EAQ5E,MAPoB,iBAATuK,GAETC,YAAW,oCAAD,OAC4BD,EAD5B,uFAKLtK,cAAP,wDACIuI,EACAiB,EAAWzJ,EAAMsK,OAAOC,IACxB9B,EAAazI,EAAMyK,OAAOH,OAAO1B,O,kBC7IhC,MAAM8B,EACX,yIAQIC,EAAQ,oFAQDC,EAAa,cACtBD,EADsB,iEAME,cACxBA,EADwB,qECrBrB,SAASE,IACd,MAAM,+GCkBD,SAASC,EAAUpC,GAAwB,IAAD,EAC/C,MAAM,oCAAN,OAC+BA,EAAS/C,OADxC,2BAEa+C,EAASE,MAFtB,gEAIuBF,EAASqC,eAJhC,6HAQsBrC,EAASsC,cAR/B,6BASetC,EAASuC,aATxB,+DAY4BvC,EAASI,gBAZrC,6JAoB0BJ,EAASI,gBApBnC,oCAqBsBJ,EAASM,YArB/B,6BAsBeN,EAASG,WAtBxB,0EA0BgBH,EAASG,WA1BzB,+EA+B0BH,EAASI,gBA/BnC,6BAgCeJ,EAASwC,WAhCxB,iGAmC2BxC,EAASyC,iBAnCpC,gFAuCgBzC,EAASG,WAvCzB,4MA8C0BH,EAASI,gBA9CnC,+CA+CiCJ,aA/CjC,EA+CiCA,EAAU0C,eA/C3C,6BAgDe1C,EAASwC,WAhDxB,iEAkDyBxC,EAAS2C,oBAlDlC,mJAwDqB3C,EAASsB,WAxD9B,gGA2DwBtB,EAAS4C,cA3DjC,sBA4DQ5C,EAAS6C,SA5DjB,gJAmEoC7C,EAASE,MAnE7C,oRAoEwOF,SApExO,UAoEwOA,EAAUE,aApElP,aAoEwO,EAAiB4C,QAAQ,IAAK,IApEtQ,gdAkFyB,cAAC,MAAExL,GAAH,kBAAkBA,SAAlB,UAAkBA,EAAOqJ,aAAzB,aAAkB,EAAcC,UAlFzD,+BAmFiBZ,EAASwC,WAnF1B,2CAoF6BxC,EAASyC,iBApFtC,6GAwF6BzC,EAAS2C,oBAxFtC,6LAmGyB3C,EAAS2C,oBAnGlC,yBAyGK,MAAMI,EAAO,QAAC,MAAEzL,GAAH,kBAAkB8K,EAAU9K,EAAMyK,OAAOgB,KAAKC,WACrDC,EAAe,QAAC,MAAE3L,GAAH,kBAAkB8K,EAAU9K,EAAMyK,OAAOgB,KAAKG,YAC7DC,EAAa,QAAC,MAAE7L,GAAH,kBAAkB8K,EAAU9K,EAAMyK,OAAOH,OAAOoB,WAS7DI,EAAqB,QAAC,MAAE9L,GAAH,kBAC7B8K,EAAU9K,EAAMyK,OAAOgB,KAAKM,yB,gEC1IlB,KAEbC,cAAe,UACfC,kBAAmB,UACnBC,oBAAqB,UACrBC,cAAe,UACfC,kBAAmB,UACnBC,oBAAqB,UACrBC,cAAe,UACfC,kBAAmB,UAEnBC,gBAAiB,UACjBC,oBAAqB,UACrBC,gBAAiB,UACjBC,oBAAqB,UACrBC,gBAAiB,UACjBC,oBAAqB,UAGrBC,eAAgB,UAChBC,oBAAqB,UACrBC,oBAAqB,UACrBC,SAAU,UACVC,kBAAmB,UACnBC,eAAgB,UAEhBC,SAAU,UACVC,SAAU,UACVC,SAAU,UACVjE,MAAO,wBACPkE,eAAgB,UAChBC,eAAgB,UAChBC,eAAgB,UAChBC,eAAgB,yBAChBC,eAAgB,UAChBC,eAAgB,UAChBC,UAAW,UACXC,UAAW,UACXC,WAAY,UACZC,WAAY,UACZC,WAAY,UACZC,WAAY,UACZC,WAAY,UACZC,WAAY,UACZC,WAAY,UACZC,WAAY,UACZC,WAAY,UACZC,aAAc,OACdC,0BAA2B,kBAC3BC,0BAA2B,kBAC3BC,aAAc,OACdC,wBAAyB,YACzBC,WAAY,UACZC,WAAY,UACZC,WAAY,UACZC,YAAa,YACbC,QAAS,UACTC,WAAY,UACZC,WAAY,Y,4XC9Cd,MAAMC,EAAqB,CACzBC,KAAMpP,cAAF,iJACkB,QAAC,MAAED,GAAH,SAAeA,EAAMsP,mBAAmBF,mBAAmBG,KAAKpP,cAEpE,QAAC,MAAEH,GAAH,SAAeA,EAAMsP,mBAAmBF,mBAAmBG,KAAKC,eAGtE,QAAC,MAAExP,GAAH,SAAeA,EAAMsP,mBAAmBF,mBAAmBK,iBAGvEC,OAAQzP,cAAF,iJACgB,QAAC,MAAED,GAAH,SAAeA,EAAMsP,mBAAmBF,mBAAmBO,OAAOxP,cAEtE,QAAC,MAAEH,GAAH,SAAeA,EAAMsP,mBAAmBF,mBAAmBO,OAAOH,eAGxE,QAAC,MAAExP,GAAH,SAAeA,EAAMsP,mBAAmBF,mBAAmBK,iBAGvEG,IAAK3P,cAAF,iJACmB,QAAC,MAAED,GAAH,SAAeA,EAAMsP,mBAAmBF,mBAAmBS,IAAI1P,cAEnE,QAAC,MAAEH,GAAH,SAAeA,EAAMsP,mBAAmBF,mBAAmBS,IAAIL,eAGrE,QAAC,MAAExP,GAAH,SAAeA,EAAMsP,mBAAmBF,mBAAmBK,iBAGvEK,MAAO7P,cAAF,mJACkB,QAAC,MAAED,GAAH,SAAeA,EAAMsP,mBAAmBF,mBAAmBW,MAAM5P,cAErE,QAAC,MAAEH,GAAH,SAAeA,EAAMsP,mBAAmBF,mBAAmBW,MAAMP,eAGxE,QAAC,MAAExP,GAAH,SAAeA,EAAMsP,mBAAmBF,mBAAmBK,kBAO5DO,EAAsBC,UAAOC,IAAV,wUAGrB,QAAC,MAAElQ,GAAH,SAAeA,EAAMsP,mBAAmBa,oBAAoBvH,SALvC,QAAC,WAAEwH,GAAH,SAAoBhB,EAAmBgB,MAWnE,QAAC,MAAEpQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOsQ,GAAI,EAAGC,GAAI,EAAGC,EAAG,CAAEC,GAAI,EAAGpG,GAAI,OAE9DD,YAAG,OAMD,QAAC,MAAEpK,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOsQ,GAAI,OAIpC,QAAC,MAAEtQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOwQ,EAAG,OAI5BE,EAAcT,UAAOC,IAAV,kJACpBS,YAAI,GAAI,KAMR,QAAC,MAAE3Q,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOuQ,GAAI,CAACE,GAAI,OAAQpG,GAAI,OAErDD,YAAG,OAKMwG,EAAmBX,UAAOC,IAAV,0HACzBS,YAAI,GAAI,KAQCE,EAAcZ,UAAOC,IAAV,oDACpB,QAAC,MAAElQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAO8Q,GAAI,CAACL,GAAI,EAAGpG,GAAI,QAIvC0G,EAAed,UAAOe,GAAV,mKACrB,QAAC,MAAEhR,GAAH,SAAeA,EAAMsP,mBAAmB2B,aAAaC,WAKnDC,IACAC,KAGF,IAAiB,IAAhB,OAAEC,GAAa,EAChB,GAAGA,EACD,OAAOpR,cAAP,4EAWOqR,EAAUrB,kBAAOsB,IAAPtB,CAAH,iJAChB,QAAC,MAAEjQ,GAAH,SAAeA,EAAMsP,mBAAmBkC,QAAQC,YAEhD,QAAC,MAAEzR,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOsQ,GAAI,WAU3BoB,EAAgBzB,UAAOC,IAAV,kEAMbyB,EAAkB1B,kBAAO2B,IAAP3B,CAAH,sIAC1B,QAAC,MAAEjQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOsQ,GAAI,OAAQuB,GAAI,UAE9CvH,YAAO,OAAQ,yBACf,QAAC,MAAEtK,GAAH,SAAeA,EAAMsP,mBAAmBwC,gBAAgBC,OAExD3H,IAAG4H,SAAS,Q,sOCvIhB,MAAMC,EAAeC,4BAAH,4iIAEhBC,YAkBEC,KACOpS,IAAMyK,OAAOsH,KAAKM,QAmCvBjI,YAAG,MACmBpK,IAAMiI,OAAOI,OAAOiK,KAQ5C9J,cACAiB,YAAWzJ,IAAMsK,OAAO+H,SACxB5J,YAAazI,IAAMyK,OAAOH,OAAOoB,SAIjClD,cACAiB,YAAWzJ,IAAMsK,OAAO+H,SACxB5J,YAAazI,IAAMyK,OAAOH,OAAOiI,OAIjC9I,YAAWzJ,IAAMsK,OAAOkI,MAIxBrB,IACAC,YAAa,CAAEpR,YAgBRA,IAAMyK,OAAOgI,IAAInG,cAG1BlC,YAAG,OAkBC,QAAC,MAAEpK,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAO0S,GAAI,OAwBlC,QAAC,MAAE1S,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOsQ,IAAK,OAYvC,QAAC,MAAEtQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOuQ,GAAI,OAOlC,QAAC,MAAEvQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOuQ,GAAI,OAyE7B,SAASoC,EAAT,GAA8B,IAAf,SAAEC,GAAY,EAC1C,OACE,kBAAC,gBAAD,CAAe5S,MAAOA,KACpB,kBAAC,WAAD,KACE,kBAACiS,EAAD,MACCW,I,cC/OT,MAAMX,EAAeC,4BAAH,ksIAEhBC,YAkBEC,KACOpS,IAAMyK,OAAOsH,KAAKM,QAmCvBjI,YAAG,MACmBpK,IAAMiI,OAAOI,OAAOiK,KAQ5C9J,cACAiB,YAAWzJ,IAAMsK,OAAO+H,SACxB5J,YAAazI,IAAMyK,OAAOH,OAAOoB,SAIjClD,cACAiB,YAAWzJ,IAAMsK,OAAO+H,SACxB5J,YAAazI,IAAMyK,OAAOH,OAAOiI,OAIjC9I,YAAWzJ,IAAMsK,OAAOkI,MAIxBrB,IACAC,YAAa,CAAEpR,YAgBRA,IAAMyK,OAAOgI,IAAIjE,aAG1BpE,YAAG,MA2BGyI,IACY7S,IAAM8S,QAAQ3S,WAEdH,IAAM+S,QAAQC,YACnBhT,IAAM8S,QAAQlK,MAWD5I,IAAM8S,QAAQ3S,YAiBpC,QAAC,MAAEH,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAO0S,GAAI,OAShC,QAAC,MAAE1S,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOiT,GAAI,YAaxC,QAAC,MAAEjT,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOuQ,GAAI,OAcpB,QAAC,MAAEvQ,GAAH,SAAeA,EAAMyK,OAAOtK,WAAW+S,SA8D9C,SAASP,EAAT,GAA8B,IAAf,SAAEC,GAAY,EAC1C,OACE,kBAAC,gBAAD,CAAe5S,MAAOA,KACpB,kBAAC,WAAD,KACE,kBAAC,EAAD,MACC4S,I,6CC5RF,MAAMO,EAAW,CACtB,IAAO,CACLC,MAAO,CAAC,CAAC,IAAK,IAAK,CAAC,IAAK,IAAK,CAAC,IAAK,KACpCC,QAAS,CACP,CACEC,SAAU,CAAC,KAAM,KACjBF,MAAO,CAAC,IAAK,KAEf,CACEE,SAAU,CAAC,IAAK,KAChBF,MAAO,CAAC,IAAK,KAEf,CACEE,SAAU,CAAC,IAAK,KAChBF,MAAO,CAAC,IAAK,KAEf,CACEE,SAAU,CAAC,EAAG,GACdF,MAAO,CAAC,IAAK,OAInB,WAAc,CACZA,MAAO,CAAC,CAAC,IAAK,IAAI,CAAC,IAAK,IAAI,CAAC,IAAK,IAAK,CAAC,IAAK,KAAM,CAAC,IAAK,KAAM,CAAC,IAAK,KAAM,CAAC,IAAK,MACjFC,QAAS,CACP,CACEC,SAAU,CAAC,KAAM,KACjBF,MAAO,CAAC,CAAC,IAAK,KAAM,CAAC,IAAK,OAE5B,CACEE,SAAU,CAAC,IAAK,KAChBF,MAAO,CAAC,IAAK,MAEf,CACEE,SAAU,CAAC,IAAK,KAChBF,MAAO,CAAC,IAAK,MAEf,CACEE,SAAU,CAAC,EAAG,GACdF,MAAO,CAAC,IAAK,OAInB,cAAiB,CACfA,MAAO,CAAC,CAAC,IAAK,IAAI,CAAC,IAAK,IAAI,CAAC,IAAK,IAAK,CAAC,IAAK,KAAM,CAAC,IAAK,KAAM,CAAC,IAAK,KAAM,CAAC,IAAK,MACjFC,QAAS,CACP,CACEC,SAAU,CAAC,KAAM,KACjBF,MAAO,CAAC,CAAC,IAAK,KAAM,CAAC,IAAK,OAE5B,CACEE,SAAU,CAAC,IAAK,KAChBF,MAAO,CAAC,IAAK,MAEf,CACEE,SAAU,CAAC,IAAK,KAChBF,MAAO,CAAC,IAAK,MAEf,CACEE,SAAU,CAAC,EAAG,GACdF,MAAO,CAAC,IAAK,Q,YCxDd,MAAMG,EAAYtD,UAAOC,IAAV,0DAElB,QAAC,MAAElQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOwT,GAAI,YAG3BC,EAAcxD,UAAOC,IAAV,kCACpBwD,KAGSC,EAAuB1D,UAAOC,IAAV,6IACX,QAAC,MAAElQ,GAAH,SAAeA,EAAMyK,OAAOtK,WAAWyT,SAShDC,EAAU5D,UAAOC,IAAV,mIACT,QAAC,MAAElQ,GAAH,SAAeA,EAAMyK,OAAOsH,KAAK+B,UAIxC,QAAC,MAAE9T,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAO+T,GAAI,UAEpCL,KCyFWM,kBACbC,IACAC,IACAC,cAHaH,EAvFe,IAQrB,IAPP,SACEI,EADF,SAEEC,EAFF,SAGEC,EAHF,SAIEzT,EAJF,gBAKE0T,EALF,IAMEC,GACI,EACN,MAAMC,EAAqBC,YAAkB,sBAAuB,iBACpE,KAAMvB,aAAA,EAAAA,EAAWtS,MAAauT,EAC5B,OAAO,KAGT,MAAOO,EAAaC,GAAkBC,oBAAS,GACzCC,EAAQC,iBAAoB,MAC5BC,EAAKC,cAELC,EAAK/B,EAAStS,GAGpBsU,qBAAU,KAAO,IAAD,IACdC,YAAU,CACR/B,QAAS6B,EAAG7B,QACZD,MAAO8B,EAAG9B,MACVgB,SAAUA,EACVvT,SAAUA,EACVwU,SAAQ,UAAEd,SAAF,UAAEA,EAAiBe,aAAnB,aAAE,EAAwBC,oBAA1B,QAA0C,GAClDjB,SAAUA,EACVE,IAAKA,MAEN,IAGHW,qBAAU,KACR,GAAIR,GAAea,aAA+B,oBAAXnV,OAAwB,CAC7D,MAAMoV,EAAYpV,OAAOoV,WAAcpV,OAAOoV,WAAa,CAAEC,IAAK,IAClED,EAAUC,IAAI9S,MAAK,WACjB,MAAM+S,EAAOF,EAAUG,SAASC,WAAWC,QAAOH,GAAQA,EAAKI,qBAAuBvB,IAClFmB,GACFF,EAAUG,SAAS/S,QAAQ8S,SAKhC,CAACX,IAEJ,MAAMgB,EAAkBC,uBAAaC,IACnCA,EAAUjP,SACR,IAMO,IANN,KACCkP,EADD,OAECC,GAII,EACuB,IAAD,EAAb,cAATD,GACFvB,KAAiBwB,SAAD,UAACA,EAAQC,qBAAqB,iBAA9B,aAAC,EAAwCzP,cAI9D,IAQH,OANA0P,YAAoB,CAClBF,OAAQtB,EACRyB,QAAS,CAAEC,WAAW,EAAMC,SAAS,GACrCC,SAAUV,IAIV,kBAACzC,EAAD,CACEoD,UAAU,gBACV,qBAGEtC,EACE,kBAACV,EAAD,qBAAmC,8BAAO9S,GAA1C,eAEA,oCACE,kBAAC4S,EAAD,CAAamD,GAAIpC,EAAKqC,IAAK/B,IAC1BH,GAAe,kBAACd,EAAD,KAAUY,QC1EvBT,I,yBAAAA,eAAQE,IAARF,EA9BqC,IAG7C,IAAD,oBAH+C,SACnDK,EADmD,UAEnDyC,GACI,EACJ,MAAMC,EAAaD,SAAH,UAAGA,EAAWE,cAAd,iBAAG,EAAmBC,YAAtB,aAAG,EAAyBF,WACtCG,EAAaJ,SAAH,UAAGA,EAAWE,cAAd,iBAAG,EAAmBC,YAAtB,aAAG,EAAyBC,WACtC9C,EAAW2C,SAAH,UAAGA,EAAYI,eAAf,aAAG,EAAqB/C,SAChCvT,EAAWkW,SAAH,UAAGA,EAAYI,eAAf,aAAG,EAAqBtW,SAEhCuW,GADMN,aAAH,EAAGA,EAAWtC,KACL6C,OAAO,QAEnBC,GAAgBJ,SAAA,UAAAA,EAAYK,iBAAZ,eAAuBC,SAAU,GACjDC,EAAWP,SAAH,UAAGA,EAAYQ,2BAAf,aAAG,EAAiCC,kBAG5CrD,EAAW,IAFFgD,EAAcnP,KAAIyP,GAAQA,EAAKC,QAEjBJ,GAAUnP,OAEvC,OACE+L,EACE,kBAACV,EAAD,qBAAmC,8BAAO9S,GAA1C,eAEA,kBAAC,EAAD,CACEuT,SAAUA,EACVvT,SAAUA,EACVyT,SAAUA,EACVE,IAAK4C,O,sFClBb,MAAMhI,GAAqB,CACzBC,KAAMpP,cAAF,wJACkB,QAAC,MAAED,GAAH,SAAeA,EAAM8X,qBAAqB1I,mBAAmBG,KAAKpP,cAEtE,QAAC,MAAEH,GAAH,SAAeA,EAAM8X,qBAAqB1I,mBAAmBG,KAAKC,eAGxE,QAAC,MAAExP,GAAH,SAAeA,EAAM8X,qBAAqB1I,mBAAmBK,iBAGzEC,OAAQzP,cAAF,wJACgB,QAAC,MAAED,GAAH,SAAeA,EAAM8X,qBAAqB1I,mBAAmBO,OAAOxP,cAExE,QAAC,MAAEH,GAAH,SAAeA,EAAM8X,qBAAqB1I,mBAAmBO,OAAOH,eAG1E,QAAC,MAAExP,GAAH,SAAeA,EAAM8X,qBAAqB1I,mBAAmBK,iBAGzEG,IAAK3P,cAAF,wJACmB,QAAC,MAAED,GAAH,SAAeA,EAAM8X,qBAAqB1I,mBAAmBS,IAAI1P,cAErE,QAAC,MAAEH,GAAH,SAAeA,EAAM8X,qBAAqB1I,mBAAmBS,IAAIL,eAGvE,QAAC,MAAExP,GAAH,SAAeA,EAAM8X,qBAAqB1I,mBAAmBK,kBAO9DO,GAAsBC,UAAOC,IAAV,kNAFA,QAAC,WAAEE,GAAH,SAAoBhB,GAAmBgB,MAM5D,QAAC,MAAEpQ,GAAH,SAAeA,EAAM8X,qBAAqB3H,oBAAoBvH,QAG5DmP,IAAMC,OAAS,GAExB,QAAC,MAAEhY,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOwQ,EAAG,CAAEC,GAAI,EAAGpG,GAAI,QAItC,QAAC,MAAErK,GAAH,SAAeA,EAAM8X,qBAAqB3H,oBAAoBV,iBAK/DiB,GAAcT,UAAOC,IAAV,kJACpBS,YAAI,GAAI,KAMR,QAAC,MAAE3Q,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOuQ,GAAI,CAAEE,GAAI,OAAQpG,GAAI,OAEtDD,YAAG,OAKMyG,GAAcZ,UAAOC,IAAV,iEACpB,QAAC,MAAElQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAO8Q,GAAI,OAI3BC,GAAed,UAAOe,GAAV,0LACrB,QAAC,MAAEhR,GAAH,SAAeA,EAAM8X,qBAAqB7G,aAAaC,WAKrDC,IACAC,KAQOE,GAAUrB,kBAAOsB,KAAPtB,CAAH,iJAChB,QAAC,MAAEjQ,GAAH,SAAeA,EAAM8X,qBAAqBtG,QAAQC,YAElD,QAAC,MAAEzR,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOsQ,GAAI,WAU3B2H,GAAUhI,UAAO3F,OAAV,gPAUhB,QAAC,MAAEtK,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAO8Q,GAAI,MACpC4C,IAGEvC,IACAC,KAIOM,GAAgBzB,UAAOC,IAAV,kEAKbyB,GAAkB1B,kBAAO2B,KAAP3B,CAAH,8JACxB,QAAC,MAAEjQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOsQ,GAAI,OAAQuB,GAAI,WAG9CvH,YAAO,OAAQ,yBACf,QAAC,MAAEtK,GAAH,SAAeA,EAAM8X,qBAAqBhG,gBAAgBZ,WAE1D9G,IAAG4H,SAAS,OAULkG,GAAkBjI,kBAAO2B,KAAP3B,CAAH,yKACxB,QAAC,MAAEjQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOsQ,GAAI,YAGlC,QAAC,MAAEtQ,GAAH,SAAeA,EAAM8X,qBAAqBhG,gBAAgBZ,WAC1D9G,IAAG4H,SAAS,OCtIZmG,GAAQ,CACZ9I,KAAM,kBAAC+I,GAAA,QAAD,CAAMC,KAAK,iBACjB3I,OAAQ,kBAAC0I,GAAA,QAAD,CAAMC,KAAK,kBACnBzI,IAAK,kBAACwI,GAAA,QAAD,CAAMC,KAAK,mBA4FHrE,mBAAQC,IAARD,EAzFmD,IAS3D,IAAD,MAT6D,YACjEsE,EADiE,YAEjEC,EAFiE,GAGjE3B,EAHiE,KAIjEnL,EAJiE,cAKjE+M,EALiE,MAMjEC,EANiE,KAOjEtC,EAPiE,yBAQjEuC,GACI,EACJ,MAAOC,GAAKC,gBACLC,EAAQC,GAAajE,oBAAS,GAU/BkE,EAASC,aAAUC,KAAQC,QAGjC,GAAIL,GAAqB,OAAXE,EACZ,OAAO,KAGT,MAAMI,EAAwC,MAAvBb,aAAA,EAAAA,EAAac,OAEpC,OAAOC,uBACL,kBAACrJ,GAAD,CACEsJ,KAAK,QACLlJ,YAAY+F,aAAA,EAAAA,EAAMiD,QAAS,SAC3BD,eAAgBA,EAChB,cAAaN,EACbjC,GAAIA,EACJ2C,SAAUV,GAAU,EAAI,KACxBA,OAAQA,EACRlC,UAAS,UAAKkC,EAAS,sBAAwB,GAAtC,4BAET,kBAACnI,GAAD,KAAcyH,IAAMhC,aAAA,EAAAA,EAAMiD,QAAS,WAEnC,kBAACvI,GAAD,KACE,kBAACE,GAAD,KACE,kBAACyI,GAAA,EAAD,CAAMC,MAAOhB,EAAOiB,UAAU,KAG/BP,GACC,kBAAC7H,GAAD,CAASmI,MAAOnB,EAAaoB,UAAU,EAAOH,SAAUV,GAAU,EAAI,OAGxE,kBAACnH,GAAD,KAEA,kBAACC,GAAD,CACE8H,MAAOhO,EACPkO,cAAelO,aAAF,EAAEA,EAAMkO,cACrBC,SAAS,IACTC,UAAU,SAGZ,kBAAC3B,GAAD,CACEuB,MAAOjB,EACPmB,cAAenB,aAAF,EAAEA,EAAemB,cAC9BC,SAAS,IACTC,UAAU,WAMZ,UAACtB,aAAD,EAACA,EAAaa,aAAd,UACE,kBAACnB,GAAD,CACE9B,KAAK,SACL,uBAAewC,EAAE,uBAAjB,YAA2CF,aAA3C,EAA2CA,EAAOW,OAClD,gBAAexC,EACf,iBAAgBiC,EAChBiB,QAhEiB,KACzBhB,GAAU,GAENJ,GACFA,KA6DMa,SAAUV,GAAU,EAAI,MAExB,kBAACT,GAAA,QAAD,CAAMC,KAAK,QAAQ0B,YAAU,MAKrChB,M,SCHG,MAAMiB,GAAsC,8BCZpChG,mBAAQE,IAAcD,IAAsBgG,YClGM,CAC/D,CACER,MAAO,kCACPS,aAAc,6CACdC,oBAAoB,EACpBC,WAAY,CACTX,IAAD,eAAWA,SAAX,UAAWA,EAAOhB,aAAlB,iBAAW,EAAc4B,WAAzB,aAAW,EAAmBjB,WD4FrBpF,EA/EqC,IAG7C,IAAD,YAH+C,SACnDK,EADmD,OAEnD2C,GACI,EACJ,MAAMsD,EAAgBtD,SAAH,UAAGA,EAAQC,YAAX,iBAAG,EAAcF,kBAAjB,aAAG,EAA0BnE,SAC1C2H,EAAavD,SAAH,UAAGA,EAAQC,YAAX,iBAAG,EAAcF,kBAAjB,aAAG,EAA0ByD,WAG9B,IAAD,EA+BP,EA/BP,MAFgC,8BAAfD,EAIb,oCAE8B,KAA1BD,aAAA,EAAAA,EAAe1T,SAAgByN,EAE3B,kBAACoG,GAAA,EAAD,CACEtE,KAAM,CAAEiD,MAAO,UACfX,MAAO,CAAEW,MAAM,+BAAD,OAAiCmB,MAIhDD,SARL,UAQKA,EACGxE,QAAQ4E,IAAD,cACkB,MAAzBA,SAAA,UAAAA,EAAGjC,aAAH,mBAAU4B,WAAV,eAAejB,QACZ/E,YAXX,aAQI,EAKIlM,KAAKuS,IACL,MAAM,GAAE9D,KAAO+D,GAAuCC,aAAmBF,GACnEG,EAAO,CACXpZ,IAAKmV,EACLA,QACG+D,GAGL,OAAO,kBAACF,GAAA,EAAuBI,OAQ3C,oCAEKP,SAFL,UAEKA,EACGxE,QAAQ4E,IAAO,IAAD,QACd,MAAMI,EAAkC,oBAAGC,KAAQC,IAAIhB,WAAf,aAAG,EAAkDiB,MAAM,YAA3D,QAAmE,GAE3G,QACGH,aAAD,EAACA,EAA0BI,SAASR,aAAnC,EAAmCA,EAAG9D,OACnCvC,GAAqC,MAAzBqG,SAAA,UAAAA,EAAGjC,aAAH,mBAAU4B,WAAV,eAAejB,kBARzC,aAEI,EASIjR,KAAKuS,IACL,MAAM,GAAE9D,KAAO+D,GAAyCC,aAAmBF,GACrEG,EAAO,CACXpZ,IAAKmV,EACLA,KACA8B,yBAA0B,KAAO,IAAD,EAKQ,EAJjClD,eAIL,UAAInV,cAAJ,aAAI,EAAQqY,4BACJ,QAAN,EAAArY,cAAA,SAAQqY,yBAAyB9B,SAGlC+D,GAGL,OAAO,kBAAC,GAAyBE,U,SElEhCM,I,kBAAAA,GAtBcC,GAEzB,qCACEC,KAAK,OACLC,QAAQ,cACRC,QAAQ,MACRjC,KAAK,MACLkC,MAAM,8BACFJ,GAGJ,yBACE,0BAAQK,GAAG,KAAKC,GAAG,KAAKC,EAAE,KAAKN,KAAK,YACpC,yBACE,wBAAMA,KAAK,OAAOO,EAAE,kMACpB,wBAAMP,KAAK,OAAOO,EAAE,kM,sCCLvB,MAAMC,GAAU5L,kBAAO2B,IAAP3B,CAAH,waAWO,QAAC,MAAEjQ,GAAH,SAAeA,EAAMyK,OAAOgI,IAAI9E,iBAMrDwD,IAKF/G,IAAG4H,SAAS,OACV,QAAC,MAAEhS,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOuQ,GAAI,MAGtCnG,YAAG,OAEC,QAAC,MAAEpK,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAO6R,GAAI,OAK/BiK,GAAiB7L,UAAOC,IAAV,uGAMd6L,GAAgB9L,UAAOC,IAAV,+NACtB,QAAC,MAAElQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAO6R,GAAI,YAUlBuJ,GAAWA,EAAM/G,SAAmB,KAAR,QAKrC2H,GAAe/L,kBAAOgM,KAAPhM,CAAH,iLASrBiM,KAGSC,GAAclM,UAAOmM,KAAV,wEACpBhK,MACO,QAAC,MAAEpS,GAAH,SAAeA,EAAMqc,gBAAgBC,oBAIpBrM,UAAOmM,KAAV,mDACrBvJ,KACO,QAAC,MAAE7S,GAAH,SAAeA,EAAMqc,gBAAgBE,qBCMjCvI,I,MAAAA,eACbwI,KADaxI,EAtEyC,IAOjD,IAPkD,YACvDyI,EADuD,SAEvDpI,EAFuD,MAGvDqI,EAHuD,YAIvDC,EAJuD,eAKvDC,EALuD,IAMvDC,GACI,EAmBJ,OACE,kBAAChB,GAAD,CACEiB,IAAKzI,GAAYwI,EACjB/C,QACEzF,EAAW,OAET,KAvBoC,IAACgE,EAAM0E,EAAN1E,EAwBlBsE,aAAD,EAACA,EAAavD,MAxBW2D,EAwBJF,EAvBf,mBAAnBD,IAETA,EACEI,aACE,CAAC,QACD,CACEC,SAAU5E,EACV6E,gBAAiBH,GAEnBN,IAGJU,aAAe,gBAaf,kBAACpB,GAAD,MACGW,aAAA,EAAAA,EAAOU,KACN,kBAACpB,GAAD,CACErF,UAAU,WACV,iBACA0G,WAAW,EACX5D,MACEpF,EACIqI,EACA,CACAtD,MAAO,CACLgE,IAAK1S,IACL4S,IAAK,GACL,cAAeC,aAAab,aAAD,EAACA,EAAOU,IAAK,CAACI,KAAUC,WAI3DhY,OAAO,KACPX,MAAM,OAIN,kBAAC,GAAD,CACEA,MAAM,KACNW,OAAO,QAIf,kBAACqW,GAAD,KACE,kBAACK,GAAD,KAAcQ,aAAd,EAAcA,EAAavD,YCpF5B,MAAMsE,GAAuBzN,UAAOC,IAAV,wEAKpByN,GAAkB1N,UAAOmM,KAAV,mDACxBwB,MACO,QAAC,MAAE5d,GAAH,SAAeA,EAAMyK,OAAOsH,KAAK8L,a,cCY7BC,I,SAAAA,GAhBiC,IAEzC,IAF0C,WAC/CC,GACI,EACJ,MAAMC,EAA0BD,GAAcE,aAAcF,EAAY,CAAEG,KAAK,EAAMC,QAAQ,IAE7F,OAAKH,aAAD,EAACA,EAAeI,YAKlB,kBAACV,GAAD,KACE,kBAACC,GAAD,KAAkBK,aAAlB,EAAkBA,EAAeI,aAL5B,MCRJ,MAAMC,GAAuBpO,UAAOC,IAAV,gGAMpBoO,GAAyBrO,UAAOC,IAAV,kIAC/B,QAAC,MAAElQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAO6R,GAAI,WAOzB,QAAC,MAAE7R,GAAH,SAAeA,EAAMyK,OAAOsH,KAAKwM,gBAKnCC,GAAkBvO,UAAOmM,KAAV,mDACxBvJ,KACO,QAAC,MAAE7S,GAAH,SAAeA,EAAMyK,OAAOsH,KAAK8L,aCG7BY,I,YAAAA,GAhBkCC,IAAiB,IAAD,EAC/D,MACMC,EADiBjK,YAAkB,mBAAoB,2BACxBlJ,QAAQ,gBAAvB,UAAwCkT,aAAxC,EAAwCA,EAAatF,aAArD,QAA8D,IAEpF,OACE,kBAACiF,GAAD,KACE,kBAACC,GAAD,KACE,kBAAClG,GAAA,QAAD,CAAMC,KAAK,WAAW0B,YAAU,KAElC,kBAACyE,GAAD,KACGG,KCjBF,MAAMC,GAAU3O,kBAAO4O,KAAKtL,UAAZtD,CAAH,gLAKhB,QAAC,MAAEjQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOsQ,GAAI,WAEpClG,YAAG,OAKM0U,GAAuB7O,UAAOC,IAAV,oHAI7B9F,YAAG,OAKM2U,GAA2B9O,UAAOC,IAAV,yIAKjC9F,YAAG,OAKM4U,GAAkB/O,UAAOC,IAAV,wLACjB,QAAC,MAAElQ,GAAH,SAAeA,EAAMyK,OAAOsH,KAAK8L,aAIxC,QAAC,MAAE7d,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOwT,GAAI,WAGlCpJ,IAAG4H,SAAS,OCvBZiN,GAAa7D,GAAU,kBAAC4D,GAAD,CAAiBrI,WAAWyE,aAAA,EAAAA,EAAO8D,cAAe,eAAiB,IAAnE,KA2CdlL,I,0CAAAA,eACbE,IADaF,EAzCiC,IAKvC,IAAD,oBAJN,SACEK,EADF,OAEE2C,EAFF,IAGExC,GACI,EACN,MAAM2K,EAAoC,UAAGnI,SAAH,UAAGA,EAAQC,YAAX,iBAAG,EAAcF,kBAAjB,iBAAG,EAA0BoI,oBAA7B,aAAG,EAAwCC,mBAA3C,QAA0D,GAC9FC,EAAYrI,SAAH,UAAGA,EAAQC,YAAX,iBAAG,EAAcF,kBAAjB,aAAG,EAA0BsI,UACtCX,EAAc1H,SAAH,UAAGA,EAAQC,YAAX,iBAAG,EAAcF,kBAAjB,aAAG,EAA0B2H,YAE9C,OACE,kBAACE,GAAD,CACEjI,UAAU,cACV,oBACAC,GAAIpC,GAEJ,kBAACsK,GAAD,KACGK,EAAahX,KAAKyP,GAEjB,kBAAC,GAAD,CACEvD,SAAUA,EACVuC,GAAIgB,aAAF,EAAEA,EAAMhB,GACV8F,MAAO9E,aAAF,EAAEA,EAAM8E,MACbjb,IAAKmW,aAAF,EAAEA,EAAMhB,GACX+F,YAAa/E,aAAF,EAAEA,EAAM+E,YACnBE,IAAKjF,aAAF,EAAEA,EAAMiF,SAMjB,kBAACkC,GAAD,MACGI,aAAA,EAAAA,EAAcvY,QAAS,kBAACqY,GAAD,CAAWC,cAAc,IAAW,KAC5D,kBAAC,GAAgBG,GAChBA,IAAaX,aAAJ,EAAIA,EAAatF,QAAS,kBAAC6F,GAAD,OACnCP,aAAA,EAAAA,EAAatF,QAAS,kBAAC,GAAgBsF,Q,mBCrCzC,MAAM7C,GAAU5L,kBAAO2B,IAAP3B,CAAH,4XAYO,QAAC,MAAEjQ,GAAH,SAAeA,EAAMyK,OAAOgI,IAAI9E,iBAMrDwD,KAMOmO,GAAsBrP,kBAAO4O,KAAKtL,UAAZtD,CAAH,+CACnB,gBAAC,MAAEjQ,GAAH,SAAeA,SAAf,UAAeA,EAAOuf,sBAAtB,iBAAe,EAAuBC,qBAAtC,aAAe,EAAsC9Z,WAGrD+Z,GAAexP,UAAOC,IAAV,0IAIrB9F,IAAG4H,SAAS,OAKH0N,GAAgBzP,UAAOC,IAAV,gIAObyP,GAAe1P,UAAO2P,GAAV,6CACrBC,IACAnM,MAISoM,GAAM7P,UAAO8P,GAAV,uOACZC,KACY,QAAC,MAAEhgB,GAAH,SAAeA,EAAMyK,OAAOtK,WAAW+S,SAC5C,QAAC,MAAElT,GAAH,SAAeA,EAAMyK,OAAOsH,KAAK+B,UAW/BmM,GAAchQ,UAAOC,IAAV,wJAGpB9F,IAAG4H,SAAS,OAOHkO,GAAiBjQ,UAAOC,IAAV,sGAGvB9F,IAAG4H,SAAS,OAKH+J,GAAgB9L,UAAOC,IAAV,wLAOJkL,GAAWA,EAAM/G,SAAmB,KAAR,QAMrC2H,GAAe/L,kBAAOgM,KAAPhM,CAAH,iLASrBiM,KAGSiE,GAAWlQ,UAAOC,IAAV,4CACjB8P,KACA,QAAC,MAAEhgB,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAO6R,GAAI,OAG3BuO,GAAcnQ,UAAOC,IAAV,qCACpB2C,KAGSwN,GAAUpQ,UAAOC,IAAV,kHAChBoQ,KAMSC,GAAiBtQ,UAAOmM,KAAV,qHAGvBzL,YAAI,GAAI,KAIA,QAAC,MAAE3Q,GAAH,SAAeA,EAAMyK,OAAOsH,KAAKwM,gB,eC3C9BiC,I,8BAAAA,GAhF2C,IAAoB,IAAD,gCAAlB,UAAE1J,GAAgB,EAC3E,MAAM2J,GAAuB3J,SAAA,UAAAA,EAAWE,cAAX,mBAAmBC,YAAnB,eAAyByJ,cAAe,GAC/DC,EAAQF,SAAH,UAAGA,EAAsBtB,oBAAzB,aAAG,EAAoCyB,WAC5CC,GAAWJ,SAAA,UAAAA,EAAsBtB,oBAAtB,mBAAoCyB,kBAApC,mBAAgDC,gBAAhD,eAA0DzH,QAAS,GAC9E0H,GAAgBL,SAAA,UAAAA,EAAsBpB,iBAAtB,eAAiCtB,aAAc,GAC/DW,GAAc+B,SAAA,UAAAA,EAAsB/B,mBAAtB,eAAmCtF,QAAS,GAC1D2H,GAAmBN,SAAA,UAAAA,EAAsBjJ,cAAtB,eAA8B4H,cAAe,GAGhE4B,EADmBtM,YAAkB,mBAAoB,2BACjBlJ,QAAQ,gBAAiBkT,UAAe,IAEhFV,EAAgB8C,GAAiB7C,aAAc6C,EAAe,CAAE5C,KAAK,EAAMC,QAAQ,IAEzF,OACE,kBAACmB,GAAD,CACE3I,UAAU,mBACV,qBAEA,kBAAC,KAAD,CAAMsK,WAAS,GACb,kBAAC,KAAD,CAAMA,WAAS,EAACC,WAAW,SAAStgB,MAAO,CAAEwC,aAAc,IAExDyd,GAAY,kBAACZ,GAAD,KACX,kBAAC,GAAD,KACE,qCACGU,SAAA,UAAAA,EAAOjE,aAAP,eAAcU,KACb,kBAAC,GAAD,KACE,wCAAG,kBAAC,GAAD,CACDzG,UAAU,WACV0G,WAAW,EACX5D,MACE,CACEL,MAAO,CACLgE,IAAK1S,IACL4S,IAAKqD,SAAF,UAAEA,EAAOjE,aAAT,aAAE,EAAcY,IACd,WAAW,GAAX,OAAe6D,aAAcR,SAAD,UAACA,EAAOjE,aAAR,aAAC,EAAcU,IAAKI,KAAU4D,WAIrE3b,OAAQkb,SAAF,UAAEA,EAAOjE,aAAT,aAAE,EAAcjX,OACtBX,MAAO6b,SAAF,UAAEA,EAAOjE,aAAT,aAAE,EAAc5X,UAKzB,kBAAC,GAAD,KACE,kBAAC,GAAD,QAIL+b,GAAY,kBAACR,GAAD,KAAUQ,IAExBA,GAAY,kBAACpB,GAAD,WAIf,kBAACS,GAAD,MACGlC,aAAA,EAAAA,EAAeI,aAAc,kBAAC+B,GAAD,KAAWnC,aAAX,EAAWA,EAAeI,aACvDJ,aAAA,EAAAA,EAAeI,aAAc,kBAACsB,GAAD,UAE7BhB,GAAe,kBAAC6B,GAAD,KACd,kBAACnI,GAAA,QAAD,CAAMC,KAAK,WAAW0B,YAAU,KAEjC2E,GAAe,kBAAC0B,GAAD,KAAcY,KAKlC,kBAAC,KAAD,CAAMC,WAAS,GACb,kBAACtB,GAAD,KACGoB,EAAiB5Y,KAAIkZ,GACpB,kBAACvB,GAAD,CAAKre,IAAK4f,EAAIzK,IAAKyK,EAAIC,YAAYlI,c,4BCrF1C,MAAM7F,GAAYtD,UAAOC,IAAV,2JAKhB,QAAC,MAAElQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOiT,GAAI,MAGtC7I,YAAG,OAKMmX,GAAoBtR,UAAOC,IAAV,mFAG1B,QAAC,MAAElQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOuQ,GAAI,CAAEE,GAAI,EAAGpG,GAAI,QAGxC0R,GAAgB9L,UAAOC,IAAV,0UACtB,QAAC,MAAElQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAO6R,GAAI,OAUlBuJ,GAAWA,EAAM/G,SAAmB,KAAR,OAI/CjK,YAAG,MAKHA,YAAG,OAMO4R,GAAe/L,kBAAOgM,KAAPhM,CAAH,iLASrBiM,KAGSJ,GAAiB7L,UAAOC,IAAV,8BAGdsR,GAAUvR,UAAOwR,GAAV,4CAChBC,KACA,QAAC,MAAE1hB,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOuQ,GAAI,OAG3BoR,GAAa1R,kBAAO2R,WAAP3R,CAAH,2CACnB4R,KACA,QAAC,MAAE7hB,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOuQ,GAAI,OAG3BuR,GAAiB7R,UAAOC,IAAV,2LAerBpF,GAAY7K,cAAH,8FAMF8hB,GAAa9R,kBAAO2B,IAAP3B,CAAH,iLACnBnF,IAQQ,QAAC,MAAE9K,GAAH,SAAeA,EAAMyK,OAAOH,OAAOuT,UAAU1d,cC6B1CqgB,OAvHyC,IAAoB,IAAD,0EAAlB,UAAE1J,GAAgB,EACzE,MAAM2J,GAAuB3J,SAAA,UAAAA,EAAWE,cAAX,mBAAmBC,YAAnB,eAAyByJ,cAAe,GAC/DC,EAAQF,aAAH,EAAGA,EAAsBE,MAC9BnM,EAAMsC,aAAH,EAAGA,EAAWtC,IACjBwN,EAAMvB,SAAH,UAAGA,EAAsBuB,WAAzB,aAAG,EAA2B3H,IACjCwG,EAAWJ,SAAH,UAAGA,EAAsBI,gBAAzB,iBAAG,EAAgCxG,WAAnC,aAAG,EAAqCjB,MAEhD6I,EAAqB,CACzB,CACEC,SAAU,CACRzJ,MAAO,WACPoE,IAAG,UAAE4D,EAAqByB,gBAAvB,iBAAE,EAA+B7H,WAAjC,aAAE,EAAoCjB,MACzC+I,KAAI,UAAE1B,EAAqByB,gBAAvB,iBAAE,EAA+B7H,WAAjC,aAAE,EAAoCjB,MAC1CgJ,SAAU,WACVhM,OAAQ,WAGZ,CACEiM,SAAU,CACRC,SAAU,YACVzF,IAAG,UAAE4D,EAAqB8B,gBAAvB,iBAAE,EAA+BlI,WAAjC,aAAE,EAAoCjB,MACzC+I,KAAI,UAAE1B,EAAqB8B,gBAAvB,iBAAE,EAA+BlI,WAAjC,aAAE,EAAoCjB,MAC1CX,MAAO,YACP2J,SAAU,WACVhM,OAAQ,WAGZ,CACEoM,QAAS,CACP/J,MAAO,UACPoE,IAAG,UAAE4D,EAAqB+B,eAAvB,iBAAE,EAA8BnI,WAAhC,aAAE,EAAmCjB,MACxC+I,KAAI,UAAE1B,EAAqB+B,eAAvB,iBAAE,EAA8BnI,WAAhC,aAAE,EAAmCjB,MACzCgJ,SAAU,WACVhM,OAAQ,WAGZ,CACEqM,UAAW,CACThK,MAAO,YACPoE,IAAG,UAAE4D,EAAqBgC,iBAAvB,iBAAE,EAAgCpI,WAAlC,aAAE,EAAqCjB,MAC1C+I,KAAI,UAAE1B,EAAqBgC,iBAAvB,iBAAE,EAAgCpI,WAAlC,aAAE,EAAqCjB,MAC3CgJ,SAAU,WACVhM,OAAQ,WAGZ,CACEsM,OAAQ,CACNjK,MAAO,SACPoE,IAAG,UAAE4D,EAAqBiC,cAAvB,iBAAE,EAA6BrI,WAA/B,aAAE,EAAkCjB,MACvC+I,KAAI,UAAE1B,EAAqBiC,cAAvB,iBAAE,EAA6BrI,WAA/B,aAAE,EAAkCjB,MACxCgJ,SAAU,WACVO,OAAQ,GACRvM,OAAQ,YA0Bd,OACE,kBAAC,GAAD,CACEO,UAAU,mBACV,oBACAC,GAAIpC,GAEJ,kBAAC+M,GAAD,KACE,kBAAC,GAAD,MACGZ,SAAA,UAAAA,EAAOtG,WAAP,mBAAYjB,aAAZ,eAAmBgE,KAClB,kBAAC,GAAD,CACEzG,UAAU,WACV0G,WAAW,EACX5D,MACE,CACEL,MAAO,CACLgE,IAAK1S,IACL4S,IAAKqD,SAAF,UAAEA,EAAOtG,WAAT,iBAAE,EAAYjB,aAAd,aAAE,EAAmBkE,IACnB,WAAW,GAAX,OAAe6D,aAAcR,SAAD,UAACA,EAAOtG,WAAR,iBAAC,EAAYjB,aAAb,aAAC,EAAmBgE,IAAKI,KAAU4D,WAI1E3b,OAAQkb,SAAF,UAAEA,EAAOtG,WAAT,iBAAE,EAAYjB,aAAd,aAAE,EAAmB3T,OAC3BX,MAAO6b,SAAF,UAAEA,EAAOtG,WAAT,iBAAE,EAAYjB,aAAd,aAAE,EAAmBtU,QAG5B,kBAAC,GAAD,QAKN,kBAAC,GAAD,KACE,kBAAC0c,GAAD,KAAUX,GACV,kBAACc,GAAD,CAAYlI,MAAOuI,IACnB,oCACeC,EAvDM9Z,KAAI,CAACyP,EAAMvR,KAClC,MACMoF,EADmBmX,OAAOC,OAAOjL,GACb,GACpB0K,GAAW7W,aAAA,EAAAA,EAAM6W,YAAY7W,aAAlB,EAAkBA,EAAMgN,OACnCqK,EAAYpO,YAAkB,uCAAD,OAAwCjJ,aAAxC,EAAwCA,EAAMgN,OAAShN,aAAvD,EAAuDA,EAAMgN,OAChG,OAAIhN,aAAJ,EAAIA,EAAMoR,KAEN,kBAACiF,GAAD,CAAgBrgB,IAAK4E,GACnB,kBAAC0c,GAAA,QAAD,CAAStX,KAAMA,EAAMuX,WAAYjB,GAAYpL,UAAW2L,EAAUW,eAAgBX,GAChF,kBAACY,GAAA,EAAD,KAAeJ,GACf,kBAAC1K,GAAA,QAAD,CAAM2B,YAAY,EAAM1B,KAAMiK,MAM7B,YChBAtO,I,8BAAAA,eAAQmP,IAAYjP,IAApBF,EAvE8C,IAEtD,IAAD,gBAFwD,UAC1D8C,GACE,EAEF,MAAMsM,EAAatM,SAAH,UAAGA,EAAWE,cAAd,iBAAG,EAAmBC,YAAtB,aAAG,EAAyBF,WACtCsM,EAAUD,SAAH,UAAGA,EAAYE,iCAAf,aAAG,EAAuCC,QACjDC,EAAaJ,SAAH,UAAGA,EAAYE,iCAAf,aAAG,EAAuCG,WACpDC,EAASN,SAAH,UAAGA,EAAYO,cAAf,iBAAG,EAAoBtJ,WAAvB,aAAG,EAAyBjB,MAyD1C,OArDAjE,qBAAU,KACR,MAAMyO,EAASpjB,SAASC,cAAc,UACtC,GAAG+U,aAA+B,oBAAXnV,OAUrB,OARKA,OAAOwjB,aAAaC,QAAQ,yBAC/BzjB,OAAOwjB,aAAaE,QAAQ,sBAAuB,QACnDH,EAAOxG,IAAP,YACOiG,EADP,+BAEA7iB,SAASwjB,KAAKC,YAAYL,GAC1BA,EAAOM,OAAQ,GAGV,KAEL1jB,SAASwjB,KAAK7d,YAAYyd,GAC1BvjB,OAAOwjB,aAAaM,WAAW,0BAKlC,IAEHhP,qBAAU,KACR,MAAMyO,EAASpjB,SAASC,cAAc,UACtC,GAAG+U,aAA+B,oBAAXnV,OAWrB,OAVA+jB,YAAW,KACL/jB,OAAOwjB,aAAaC,QAAQ,mCAC9BtjB,SAASwjB,KAAKC,YAAYL,GAC1BvjB,OAAOwjB,aAAaE,QAAQ,gCAAiC,QAC7DH,EAAOS,UAAP,UCjDH,SAAsBX,EAAQF,EAAYH,GACzCG,IAmH6B,iBAAdc,YAhHJA,WAAWC,SAAX,YAAyBlB,GAAWG,EAAYE,GAAQ,SAAUc,GACjEA,EAAKC,WAAU,SAAU5B,EAAQ6B,GAE7B,OADAC,WAAWC,MAAM,iBACV,KAEX,MAAMC,EAASL,EAAKM,cAAc,GAClCD,EAAOld,iBAAiB,SACxB,SAASod,EAAcjkB,GACnB+jB,EAAOG,oBAAoB,QAASD,GAAe,GACnDJ,WAAWC,MAAM,gBAH2B,GAKhDJ,EAAKS,YAAW,WACZ,MAAMC,EAAa,gBACnB,IAAIC,EAAOX,EAAKW,OAChB,MAAMC,EAAmB3L,IACrB,MAAM4L,EAAa7kB,SAAS8kB,eAAe7L,GAAOL,MAClD,IAAImM,EAAaF,EAAWG,QAAQ,KAAO,EAAIH,EAAaA,EAAWI,MAAM,EAAGJ,EAAWG,QAAQ,MAGnG,GAFAhB,EAAKkB,UAAU,CAAC,CAACjM,GAAQ8L,IACzBJ,EAAOX,EAAKW,OACRD,EAAWS,KAAKR,EAAK1L,IASrB+K,EAAKoB,aAAY,OATY,CAC7BpB,EAAKoB,aAAY,GACjB,IAAIC,EAAWrB,EAAKM,cAAcgB,KAAnB,WAA4BrM,IACvCsM,EAAmBvlB,SAAS8kB,eAAe7L,GAC/C+K,EAAKwB,iBAAiB,4CAA6CH,GACnEE,EAAiBE,UAAU7f,OAAO,aAClC2f,EAAiBE,UAAUnf,IAAI,eAC/Bif,EAAiBG,eAAe,CAACC,MAAO,aAK1ChB,EAAKiB,iBACPhB,EAAgB,mBAEdD,EAAKkB,kBACPjB,EAAgB,0BAI5Bd,WAAWgC,WAAU,SAAU9B,GACvB,IAAIW,EAAOX,EAAKW,OAChB1I,YAAY+H,KAAK+B,SAAWpB,EAAKqB,aACjC,MAAMC,EAAqB,CACvBC,EAAG,UAEN,IAA8BC,EACvB1hB,GADuB0hB,EAYV,IAXb1hB,EAAQ2hB,KAAKC,MACV,IAAIC,SACX,SAASC,EAAuBC,EAASC,GACL,iBAArB3C,WAAW4C,EAAEC,KACpBH,EAAQ1C,WAAW4C,EAAEC,KAAKC,aACrBT,GAAYC,KAAKC,MAAQ5hB,GAAU0hB,EACxCM,EAAO,IAAI3kB,MAAM,2CAEjB8hB,WAAW2C,EAAuBM,KAAK5kB,KAAMukB,EAASC,GAAS,QAGhDK,MAAK,WAC5B1E,OAAO2E,KAAKd,GACPxf,SAAQ,SAASugB,GACdlD,WAAW4C,EAAEC,KAAKC,YAAYI,GAAQ/kB,KAAK+kB,KAC5Cf,MAyBLtB,EAAKsC,yBAtBX,SAAiCC,EAAUC,EAAiBC,GACxD,MAAM/C,EAAS6C,EAAS5C,cAAc,GAClC+C,EAAWhD,EAAOiD,cAAc,UAAYH,EAAkB,MAClE,SAASI,IACL,MAAMC,EAAqBN,EAASO,YAAYN,GAC5CO,EAAsBN,EAAMI,GAC5BE,GACJtF,OAAO2E,KAAKW,GAAqBjhB,SAAQ,SAAUkhB,GAC/C,MAAMC,EAAUvD,EAAOiD,cAAc,UAAYK,EAAkB,MACnE,IAAIC,EAAS,OACb,MAAMC,EAAYD,EAAQE,cACtBC,EAAeF,EAAUC,cACzBE,EAAelE,WAAW4C,EAAEqB,GAC5BE,EAAaP,EAAoBC,GACrCE,EAAUpC,UAAUwC,EAAa,MAAQ,UAAU,qBACnDD,EAAavR,KAAK,uBAAuByR,SAAWD,KAG5DV,IACAF,EAASlgB,iBAAiB,SAAUogB,GAwBvCY,CAAwBnE,EAAM,0BApBL,CACtB,GAAK,CACHoE,6BAA8B,EAC9BvC,kBAAkB,EAClBwC,4BAA4B,EAC5BzC,iBAAiB,GAEnB,MAAU,CACRwC,6BAA8B,EAC9BvC,kBAAkB,EAClBwC,4BAA4B,EAC5BzC,iBAAiB,GAEnB,OAAW,CACTwC,6BAA8B,EAC9BvC,kBAAkB,EAClBwC,4BAA4B,EAC5BzC,iBAAiB,SAW/B0C,QAAQC,IAAI,qCDrEfC,CAAatF,EAAQF,EAAYH,IACpCO,EAAOM,OAAQ,KAElB,KAEM,KAGDN,GAAUA,EAAOjgB,YACnBigB,EAAOjgB,WAAWwC,YAAYyd,GAEhCvjB,OAAOwjB,aAAaM,WAAW,oCAIlC,IAGHhP,qBAAU,KACR9U,OAAOwjB,aAAaM,WAAW,iCAC/B9jB,OAAOwjB,aAAaM,WAAW,0BAI/B,6BACE,0BAAMvN,GAAE,mBAAc8M,S,kDEvDrB,MAAMuF,GAAShZ,UAAOC,IAAV,8JACA,gBAAC,MAAElQ,GAAH,mBAAeA,EAAMkpB,sBAArB,iBAAe,EAAsBC,cAArC,aAAe,EAA8BxjB,UACrD,QAAC,MAAE3F,GAAH,SAAeA,EAAMkpB,eAAetgB,SAC3C,QAAC,MAAE5I,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOopB,GAAI,EAAG7Y,GAAI,CAAEE,GAAI,EAAGpG,GAAI,EAAGgf,GAAI,QAOtD,QAAC,MAAErpB,GAAH,SAAeA,EAAMkpB,eAAeI,aAAetpB,EAAMkpB,eAAeI,aAAe,QAKvFC,GAAWtZ,kBAAO4O,KAAK2K,KAAZvZ,CAAH,gSAIjB,QAAC,MAAEjQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOopB,GAAI,OAe3B7V,GAAYtD,UAAOC,IAAV,yKACN,QAAC,MAAElQ,GAAH,SAAeA,EAAMkpB,eAAe/oB,cAQvCspB,GAAOxZ,kBAAO4O,KAAK6K,IAAZzZ,CAAH,sNAwCJ0Z,IAvBsB1Z,UAAOC,IAAV,qCAC5B,QAAC,MAAElQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOsQ,GAAI,OAGdL,kBAAO2Z,IAAP3Z,CAAH,qCACnBxE,KAG2BwE,kBAAOuJ,KAAPvJ,CAAH,oCACxB2N,MAGwB3N,UAAOmM,KAAV,gIACrBzL,YAAI,GAAI,KAMA,QAAC,MAAE3Q,GAAH,SAAeA,EAAMkpB,eAAeW,UAItB5Z,kBAAO2B,KAAP3B,CAAH,0JAEjBnE,IACAxB,YAAO,OAAQ,YAOfF,YAAG,QAMI0f,GAAc7Z,UAAOC,IAAV,4RACpB,QAAC,MAAElQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOsQ,GAAI,EAAGC,GAAI,MAE3CnG,IAAG4H,SAAS,OACY,QAAC,MAAEhS,GAAH,SAAeA,EAAMyK,OAAOsf,GAAGC,WACrD,QAAC,MAAEhqB,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOiT,GAAI,CAAExC,GAAI,GAAKH,GAAI,CAAEG,GAAI,OAO3DrG,YAAG,OASF,QAAC,MAAEpK,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAO+T,GAAI,MAGrCL,KC7HSuW,GAA0D,CACrE,CACExQ,MAAO,yCACPS,aAAc,wCACdgQ,UAAW,GAEb,CACEzQ,MAAO,yCACPS,aAAc,wCACdC,oBAAoB,EACpBC,WAAY,CACTX,GAAUA,aAAX,EAAWA,EAAOoD,MAGtB,CACEpD,MAAO,yCACPS,aAAc,yCACdC,oBAAoB,EACpBC,WAAY,CACTX,GAAUA,aAAX,EAAWA,EAAOhB,QAGtB,CACEgB,MAAO,mCACPS,aAAc,wCACdE,WAAY,CACTX,GAzCL1C,KACI,IAAD,MACH,IAAKA,EACH,OAAO,EAGT,MAAM,QAAEoT,EAAF,KAAW1e,GAASsL,EAE1B,UAAKoT,SAAD,UAACA,EAAS9P,WAAV,aAAC,EAAcjB,SAAS3N,SAAxB,UAAwBA,EAAM4O,WAA9B,iBAAwB,EAAWjB,aAAnC,aAAwB,EAAkB+I,QAiC/BiI,CAA+B3Q,MCb1C4Q,GAAOjP,IACX,MAAM,KAAE3P,EAAF,UAAQkL,GAAcyE,EAC5B,OACE,kBAAC0O,GAAD,CAAanT,UAAWA,GACtB,kBAACgT,GAAD,CAAYlQ,MAAOhO,EAAMkO,cAAelO,aAAF,EAAEA,EAAMkO,cAAeE,UAAU,eAKvEyQ,GACN,CACE,WAAY,CACVC,IAAK,CACH9Z,GAAI,GACJpG,GAAI,EACJgf,GAAI,EACJmB,GAAI,IAGR,WAAY,CACVD,IAAK,CACH9Z,GAAI,GACJpG,GAAI,EACJgf,GAAI,EACJmB,GAAI,IAGR,WAAc,CACZD,IAAK,CACH9Z,GAAI,GACJpG,GAAI,GACJgf,GAAI,GACJmB,GAAI,MAwFRxW,I,oCAAAA,eACEiG,YAAyBgQ,IACzB/V,IAFFF,EAnFoD,IAA8B,IAAD,YAA5B,UAAE8C,EAAF,SAAazC,GAAe,EAEjF,MAAM2C,GAASF,SAAA,UAAAA,EAAWE,cAAX,mBAAmBC,YAAnB,eAAyBF,aAAc,GAChD0T,EAAS3T,aAAH,EAAGA,EAAW2T,OACpBjW,GAAMsC,aAAA,EAAAA,EAAWtC,MAAO,KAExBQ,EAAKC,eACLyV,GAAyBD,aAAA,EAAAA,EAAQC,aAAc,WAE/CC,EAAkC,eAAfD,GACP,aAAfA,GAA6B,CAAC,KAAM,MAAMxP,SAASlG,GAEhD4V,EAAahQ,aAAmB5D,GAChCmT,EAAUS,aAAH,EAAGA,EAAYT,QACtBU,GAAQD,aAAA,EAAAA,EAAYC,QAAS,GAC7Bpf,EAAOmf,aAAH,EAAGA,EAAYnf,KACnBqf,GAAeL,aAAA,EAAAA,EAAQK,eAAgB,KACvCC,EAAsBN,aAAH,EAAGA,EAAQM,oBAC9BC,EAAc3W,EAA8CwW,EAAnCA,EAAM/U,QAAQ8B,GAASA,EAAKiF,MACrDoO,EAAW5W,IAAa2W,aAAA,EAAAA,EAAYpkB,QAAS,EAE7CskB,EAAeZ,GAAuBI,GAEtCS,EAAQC,SAASN,aAAD,EAACA,EAAcO,cAAc7f,QAAQ,IAAK,MAAQ,EAClE8f,KAA4BjX,GAAa5I,IAAQA,SAAJ,UAAIA,EAAM2N,aAAV,aAAI,EAAa+I,OAE9DoJ,EAAUC,KACd,kBACA,CACE,oBAAuBT,IAG3B,OACG1W,GAAY4W,EACX,kBAAC,IAAD,CAAqB5W,SAAUA,GAC7B,kBAAC,GAAD,CACEsC,UAAW4U,EACX,oBACA3U,GAAIpC,EACJiX,SAAQ,UAAET,aAAF,EAAEA,EAAYpkB,cAAd,QAAwB,IAE9BujB,aAAD,EAACA,EAAS/Q,QACT,kBAAC6P,GAAD,KACE,kBAACyC,GAAA,EAAD,CACEC,aAAcxB,EACdW,aAAcA,GAEbQ,GAAiB,kBAACjB,GAAD,CAAK5e,KAAMA,EAAMkL,UAAU,mBAIlDsU,GACC,kBAACxB,GAAD,KACGuB,EAAW7iB,KAAI,CAACyP,EAAMvR,IACrB,kBAACkjB,GAAD,CACEqC,OAAQV,EACR7W,SAAUA,EACV5S,IAAKmW,EAAKhB,IAAMvQ,GAEhB,kBAACwlB,GAAA,EAAD,eACElV,UACY,IAAVtQ,GACAskB,IACAR,aAFA,EAEAA,EAAS/Q,QACT,eAEExB,EAPN,CAQE+S,iBAAkBA,EAClBtW,SAAUA,EACVyW,aAAcK,EACdW,UAAQ,SAMjBR,GAAiB,kBAACjB,GAAD,CAAK5e,KAAMA,EAAMkL,UAAU,mBAG/C,QC9HD,MAAMsS,GAAShZ,UAAOC,IAAV,8JACA,gBAAC,MAAElQ,GAAH,mBAAeA,EAAM+rB,4BAArB,iBAAe,EAA4B5C,cAA3C,aAAe,EAAoCxjB,UAC3D,QAAC,MAAE3F,GAAH,SAAeA,EAAM+rB,qBAAqBnjB,SACjD,QAAC,MAAE5I,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOopB,GAAI,EAAG7Y,GAAI,CAAEE,GAAI,EAAGpG,GAAI,EAAGgf,GAAI,QAOtD,QAAC,MAAErpB,GAAH,SAAeA,EAAM+rB,qBAAqBzC,aAAetpB,EAAM+rB,qBAAqBzC,aAAe,QAKnGC,GAAWtZ,kBAAO4O,KAAK2K,KAAZvZ,CAAH,sQAGjB,QAAC,MAAEjQ,GAAH,SAAeqQ,YAAQ,CACzBrQ,QACAgsB,GAAI,CAAEvb,GAAI,GACV2Y,GAAI,OAIA,QAAC,MAAEppB,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOisB,GAAI,CAAE5hB,GAAI,QAI1C,QAAC,MAAErK,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOksB,GAAI,CAAE7hB,GAAI,QAYnCkJ,GAAYtD,UAAOC,IAAV,mJAOTuD,GAAcxD,UAAOC,IAAV,uRAER,QAAC,MAAElQ,GAAH,SAAeA,EAAMyK,OAAOtK,WAAWyT,QAMnDxJ,YAAG,OAED,QAAC,MAAE+hB,GAAH,wBAAwBA,EAAxB,OAGF/hB,YAAG,OASMgiB,GAAgBnc,UAAOC,IAAV,mFAMbuZ,GAAOxZ,UAAOC,IAAV,mTAWbgM,KAmCSyN,IAvBsB1Z,UAAOC,IAAV,qCAC5B,QAAC,MAAElQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOsQ,GAAI,OAGdL,kBAAO2Z,IAAP3Z,CAAH,qCACnBxE,KAG2BwE,kBAAOuJ,KAAPvJ,CAAH,oCACxB2N,MAGwB3N,UAAOmM,KAAV,gIACrBzL,YAAI,GAAI,KAMA,QAAC,MAAE3Q,GAAH,SAAeA,EAAM+rB,qBAAqBlC,UAI5B5Z,kBAAO2B,KAAP3B,CAAH,0JAEjBnE,IACAxB,YAAO,OAAQ,YAOfF,YAAG,QAMI0f,GAAc7Z,UAAOC,IAAV,4RACpB,QAAC,MAAElQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOsQ,GAAI,EAAGC,GAAI,MAE3CnG,IAAG4H,SAAS,OACY,QAAC,MAAEhS,GAAH,SAAeA,EAAMyK,OAAOsf,GAAGC,WACrD,QAAC,MAAEhqB,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOiT,GAAI,CAAExC,GAAI,GAAKH,GAAI,CAAEG,GAAI,OAO3DrG,YAAG,OASF,QAAC,MAAEpK,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAO+T,GAAI,MAGrCL,KCrKS2Y,GAAgE,CAC3E,CACE5S,MAAO,yCACPS,aAAc,iCACdgQ,UAAW,GAEb,CACEzQ,MAAO,yCACPS,aAAc,wCACdC,oBAAoB,EACpBC,WAAY,CACTX,GAAUA,aAAX,EAAWA,EAAOoD,MAGtB,CACEpD,MAAO,yCACPS,aAAc,yCACdC,oBAAoB,EACpBC,WAAY,CACTX,GAAUA,aAAX,EAAWA,EAAOhB,QAGtB,CACEgB,MAAO,mCACPS,aAAc,wCACdE,WAAY,CACTX,GAzCL1C,KACI,IAAD,MACH,IAAKA,EACH,OAAO,EAGT,MAAM,QAAEoT,EAAF,KAAW1e,GAASsL,EAE1B,UAAKoT,SAAD,UAACA,EAAS9P,WAAV,aAAC,EAAcjB,SAAS3N,SAAxB,UAAwBA,EAAM4O,WAA9B,iBAAwB,EAAWjB,aAAnC,aAAwB,EAAkB+I,QAiC/BiI,CAA+B3Q,MCR1C4Q,GAAOjP,IACX,MAAM,KAAE3P,EAAF,UAAQkL,GAAcyE,EAC5B,OACE,kBAAC,GAAD,CAAazE,UAAWA,GACtB,kBAAC,GAAD,CAAY8C,MAAOhO,EAAMkO,cAAelO,aAAF,EAAEA,EAAMkO,cAAeE,UAAU,eA4H3E7F,I,wBAAAA,eACEiG,YAAyBoS,IACzBnY,IAFFF,EAvHgE,IAA8B,IAAD,kBAA5B,UAAE8C,EAAF,SAAazC,GAAe,EAE7F,MAAM2C,GAASF,SAAA,UAAAA,EAAWE,cAAX,mBAAmBC,YAAnB,eAAyBF,aAAc,GAChD0T,EAAS3T,aAAH,EAAGA,EAAW2T,OACpBjW,GAAMsC,aAAA,EAAAA,EAAWtC,MAAO,KAExBQ,EAAKC,eAEL2V,EAAahQ,aAAmB5D,GAChCmT,EAAUS,aAAH,EAAGA,EAAYT,QACtBU,GAAQD,aAAA,EAAAA,EAAYC,QAAS,GAC7Bpf,EAAOmf,aAAH,EAAGA,EAAYnf,KAGnB6gB,EAAe1B,SAAH,UAAGA,EAAY2B,uBAAf,iBAAG,EAA6B3L,kBAAhC,aAAG,EAAyCzJ,QACxDqV,GAA8B/B,aAAA,EAAAA,EAAQ+B,aAAc,OACpD1B,GAAeL,aAAA,EAAAA,EAAQK,eAAgB,KACvCC,EAAsBN,aAAH,EAAGA,EAAQM,oBAE9BC,EAAc3W,EAA2DwW,EAA5D,UAAYA,EAAM/U,QAAQ8B,GAASA,EAAKiF,aAAxC,aAAY,EAAkC4I,MAAM,EAAG,GACpEwF,EAAW5W,IAAa2W,aAAA,EAAAA,EAAYpkB,QAAS,EAG7C6lB,EAAkC,SAAfD,EAAwB,EAAI,EAC/CE,EAAoC,SAAfF,EAAwB,EAAI,EAEjDrB,EAAQC,SAASN,aAAD,EAACA,EAAcO,cAAc7f,QAAQ,IAAK,MAAQ,EAClE8f,KAA4BjX,GAAa5I,IAAQA,SAAJ,UAAIA,EAAM2N,aAAV,aAAI,EAAa+I,OAE9DoJ,EAAUC,KACd,0BACA,CACE,CAACgB,GAAaA,EACd,oBAAuBzB,IAGrB4B,EAAU,CACdvY,SAAUkY,aAAF,EAAEA,EAAclY,SACxBvT,SAAUyrB,aAAF,EAAEA,EAAczrB,SACxByT,SAAU,GACVE,IAAKA,EAAI6C,OAAO,SAGlB,OACGhD,GAAY4W,EACX,kBAAC,IAAD,CAAqB5W,SAAUA,GAC7B,kBAAC,GAAD,CACEsC,UAAW4U,EACX,oBACA3U,GAAIpC,EACJiX,SAAQ,UAAET,aAAF,EAAEA,EAAYpkB,cAAd,QAAwB,GAG/B0lB,GAAgB,CAAC,KAAM,MAAMpR,SAASlG,IAAsB,UAAfwX,GAC5C,kBAAC,EAAOG,IAGRxC,aAAD,EAACA,EAAS/Q,QACT,kBAAC,GAAD,KACE,kBAACsS,GAAA,EAAD,CACEC,aAAcxB,EACdW,aAAcA,GAEbQ,GAAiB,kBAAC,GAAD,CAAK7f,KAAMA,EAAMkL,UAAU,mBAKlDsU,GACC,kBAAC,GAAD,KAEGqB,IAAiB,CAAC,KAAM,MAAMpR,SAASlG,IACtC,kBAAC,GAAD,CACEmX,MAAOM,GAEP,kBAAC,EAAOE,IAGZ,kBAACP,GAAD,CACED,MAAOO,GAEN1B,EAAW7iB,KAAI,CAACyP,EAAMvR,IACrB,kBAAC,GAAD,CACEulB,OAAQ,CACNrB,IAAK,CACH9Z,GAAI,GACJpG,GAAI,IAGRgK,SAAUA,EACV5S,IAAKmW,EAAKhB,IAAMvQ,GAEhB,kBAACwlB,GAAA,EAAD,iBACMjU,EADN,CAEEvD,SAAUA,EACVyW,aAAcK,EACdW,UAAQ,UASnBR,GAAiB,kBAAC,GAAD,CAAK7f,KAAMA,EAAMkL,UAAU,iBAG5C2V,GAAgB,CAAC,KAAM,MAAMpR,SAASlG,IAAsB,SAAfwX,GAC5C,kBAAC,GAAD,KACE,kBAAC,EAAOG,MAKd,QCnJD,MAAMpZ,GAAYtD,UAAOC,IAAV,mNACA,QAAC,MAAElQ,GAAH,SAClBA,EAAM4sB,eAAe3L,UAAU4L,QAAQ1sB,aAIvCiK,YAAG,OAMH,QAAC,MAAEpK,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOwQ,EAAG,CAAEnG,GAAI,OAAQgf,GAAI,OAErD3V,KAGSoZ,GAAmB7c,UAAOC,IAAV,kFAKhB6c,GAAa9c,kBAAOgM,KAAPhM,CAAH,2HAInB7F,YAAG,OAKM4iB,GAAoB/c,UAAOgd,OAAV,4CAIjBC,GAAiBjd,UAAOC,IAAV,mNAGvB9F,IAAG4H,SAAS,OACV,QAAC,MAAEhS,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAO8Q,GAAI,OAAQiD,GAAI,OASzCoZ,GAAQld,UAAOmM,KAAV,6HACdgR,KACO,QAAC,MAAEptB,GAAH,SAAeA,EAAM4sB,eAAenU,MAAM7P,SAMxCykB,GAAQpd,UAAOqd,GAAV,mDACdC,KACO,QAAC,MAAEvtB,GAAH,SAAeA,EAAM4sB,eAAenU,MAAM7P,SAGxC4kB,GAAWvd,kBAAO2B,KAAP3B,CAAH,w5BAGftE,IACAqU,KACO,QAAC,MAAEhgB,GAAH,SAAeA,EAAM4sB,eAAenhB,KAAK7C,SAQvC,QAAC,MAAE5I,GAAH,SAAeA,EAAM4sB,eAAenhB,KAAKgiB,cAK6K,QAAC,MAAEztB,GAAH,SAAeA,EAAM4sB,eAAenhB,KAAKiiB,UAAUliB,QAAQ,IAAK,OCNtRmiB,I,2BAAAA,GAhE8C,IAQtD,IAAD,4BARwD,eAC5DC,EAD4D,WAE5DC,EAF4D,SAG5DC,EAH4D,SAI5DzZ,EAJ4D,KAK5D5I,EAL4D,MAM5DgN,EAN4D,IAO5DjE,GACI,EACJ,MAAMuZ,EAAW,IAAKtiB,SAAH,UAAGA,EAAM4O,WAAT,aAAG,EAAWjB,MAAOhD,OAAQ,UAEhD,OACE,kBAAC0W,GAAD,CACEkB,GAAI3Z,EAAW,MAAQ,IACvBsC,UAAU,0BACV,oBACAwL,KAAM1W,SAAF,UAAEA,EAAM4O,WAAR,iBAAE,EAAWjB,aAAb,aAAE,EAAkB+I,KACxBvL,GAAIpC,EACJ4B,OAAM,UAAE3K,SAAF,UAAEA,EAAM4O,WAAR,iBAAE,EAAWjB,aAAb,aAAE,EAAkBhD,cAApB,QAA8B,SACpCqC,MAAOhN,SAAF,UAAEA,EAAM4O,WAAR,iBAAE,EAAWjB,aAAb,aAAE,EAAkBX,OAEzB,kBAAC,GAAD,KACE,kBAACuU,GAAD,KACE,kBAACD,GAAD,CACEpW,UAAU,WACV8C,MACEpF,EACIwZ,EACA,CACAzU,MAAO,CACLgE,IAAKyQ,SAAF,UAAEA,EAAYzU,aAAd,aAAE,EAAmBgE,IACxBE,IAAG,UAAEuQ,SAAF,UAAEA,EAAYzU,aAAd,aAAE,EAAmBkE,WAArB,QAA4B,GAC/B,cAAeC,aAAasQ,SAAD,UAACA,EAAYzU,aAAb,aAAC,EAAmBgE,IAAK,CAClDI,KAAUC,OACVD,KAAUyQ,OACVzQ,KAAU0Q,WAKpBppB,MAAO0Y,KAAUC,OACjBhY,OAAQ+X,KAAUC,UAGtB,kBAACyP,GAAD,KACE,kBAACC,GAAD,KACE,kBAAC3T,GAAA,EAAD,CACEC,MAAO,CAAEL,MAAOX,GAChBiB,UAAU,KAGd,kBAAC2T,GAAD,KAAQO,GACR,kBAACJ,GAAD,CACE7T,cAAemU,EACfrU,MAAO,CAAEL,MAAO2U,GAChBI,iBAAiB,OACjBtU,UAAU,aC/Df,MAAMtG,GAAYtD,UAAOC,IAAV,uKACA,QAAC,MAAElQ,GAAH,SAAeA,EAAM4sB,eAAe3L,UAAUmN,OAAOjuB,cAC9C,QAAC,MAAEH,GAAH,SAAeA,EAAM4sB,eAAe3L,UAAUmN,OAAOzoB,SAG5EyE,IAAG4H,SAAS,MAKd0B,KAISoZ,GAAmB7c,UAAOC,IAAV,uOAIN,QAAC,MAAElQ,GAAH,SAAeA,EAAM4sB,eAAe3L,UAAUmN,OAAOzoB,UAO/D0oB,GAAgBpe,kBAAO4O,KAAKtL,UAAZtD,CAAH,yEAGtB7F,IAAG4H,SAAS,OACV,QAAC,MAAEhS,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAO0S,GAAI,OAI7Bwa,GAAiBjd,UAAOC,IAAV,qRAMvB9F,IAAG4H,SAAS,OASHgb,GAAoB/c,UAAOgd,OAAV,8HAI1B7iB,YAAG,OAED,QAAC,MAAEpK,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAO6R,GAAI,EAAGvB,GAAI,EAAGC,GAAI,aAI3Cwc,GAAa9c,kBAAOgM,KAAPhM,CAAH,mIAInB7F,IAAG4H,SAAS,OAKHmb,GAAQld,UAAOmM,KAAV,yEACP,QAAC,MAAEpc,GAAH,SAAeA,EAAM4sB,eAAenU,MAAM7P,QAEjDwJ,MAGSkc,GAAiBre,UAAOmM,KAAV,oUACvBhK,MACO,QAAC,MAAEpS,GAAH,SAAeA,EAAM4sB,eAAenU,MAAM7P,QAK/CwB,IAAG4H,SAAS,OAOL2X,GAAa1Z,kBAAO2B,KAAP3B,CAAH,wuCAGZ,QAAC,MAAEjQ,GAAH,SAAeA,EAAM4sB,eAAenhB,KAAK7C,QAG9CkD,IACAxB,YAAO,OAAQ,iBAwBgN,QAAC,MAAEtK,GAAH,SAAeA,EAAM4sB,eAAetiB,OAAOojB,UAAUliB,QAAQ,IAAK,MAYjSpB,YAAG,MAMLA,IAAG4H,SAAS,OChEDuc,OAjE6C,IASrD,IAAD,4BATuD,eAC3DX,EAD2D,WAE3DC,EAF2D,SAG3DC,EAH2D,SAI3DzZ,EAJ2D,aAK3D6K,EAL2D,KAM3DzT,EAN2D,MAO3DgN,EAP2D,IAQ3DjE,GACI,EACJ,MAAMuZ,EAAW,IAAKtiB,SAAH,UAAGA,EAAM4O,WAAT,aAAG,EAAWjB,MAAOhD,OAAQ,UAEhD,OACE,kBAAC,GAAD,CACEO,UAAU,yBACV,oBACAC,GAAIpC,EACJwZ,GAAI3Z,EAAW,MAAQ,IACvB8N,KAAM1W,SAAF,UAAEA,EAAM4O,WAAR,iBAAE,EAAWjB,aAAb,aAAE,EAAkB+I,KACxB/L,OAAM,UAAE3K,SAAF,UAAEA,EAAM4O,WAAR,iBAAE,EAAWjB,aAAb,aAAE,EAAkBhD,cAApB,QAA8B,SACpCqC,MAAOhN,SAAF,UAAEA,EAAM4O,WAAR,iBAAE,EAAWjB,aAAb,aAAE,EAAkBX,OAEzB,kBAAC,GAAD,CAAW9B,UAAWuI,EAAe,iBAAmB,IACtD,kBAACmP,GAAD,KACE,kBAAC,GAAD,KACE,kBAAC,GAAD,CACE1X,UAAU,WACV8C,MACEpF,EACIwZ,EACA,CACAzU,MAAO,CACLgE,IAAKyQ,SAAF,UAAEA,EAAYzU,aAAd,aAAE,EAAmBgE,IACxBE,IAAG,UAAEuQ,SAAF,UAAEA,EAAYzU,aAAd,aAAE,EAAmBkE,WAArB,QAA4B,GAC/B,cAAeC,aAAasQ,SAAD,UAACA,EAAYzU,aAAb,aAAC,EAAmBgE,IAAK,CAClDI,KAAUC,OACVD,KAAUyQ,WAKpBnpB,MAAO0Y,KAAUC,OACjBhY,OAAQ+X,KAAUC,UAGtB,kBAAC,GAAD,KACE,kBAAC,GAAD,KACE,kBAACjE,GAAA,EAAD,CACEC,MAAO,CAAEL,MAAOX,GAChBiB,UAAU,KAGd,kBAAC4U,GAAD,KAAiBV,GACjB,kBAAC,GAAD,CACEjU,cAAemU,EACfrU,MAAO,CAAEL,MAAO2U,GAChBI,iBAAiB,cCbhBna,mBAAQC,IAARD,EAnDgD,IAGxD,IAAD,oCAH0D,UAC9D8C,EAD8D,SAE9DzC,GACI,EACJ,MAAMG,EAAMsC,aAAH,EAAGA,EAAWtC,IACjBga,EAAW1X,SAAH,UAAGA,EAAWE,cAAd,iBAAG,EAAmBC,YAAtB,iBAAG,EAAyBF,kBAA5B,iBAAG,EAAqC0X,sBAAxC,aAAG,EAAqD7N,WACtE,IAAK4N,EACH,OAAO,KAGT,MAAMX,EAAU,UAAGW,EAASX,kBAAZ,aAAG,EAAqBxT,IAClC5B,EAAK,UAAG+V,EAAS/V,aAAZ,aAAG,EAAgBW,MACxB3N,EAAO+iB,EAAS3R,IAEhB6R,GAAmB5X,SAAA,UAAAA,EAAW2T,cAAX,eAAmBkE,kBAAkB,EACxDzP,GAAepI,SAAA,UAAAA,EAAW2T,cAAX,eAAmBvL,gBAAgB,EAElD0O,EAAiB9W,SAAH,UAAGA,EAAWE,cAAd,iBAAG,EAAmBC,YAAtB,iBAAG,EAAyBF,kBAA5B,iBAAG,EAAqC6W,sBAAxC,aAAG,EAAqDxU,MACtE0U,EAAWhX,SAAH,UAAGA,EAAWE,cAAd,iBAAG,EAAmBC,YAAtB,iBAAG,EAAyBF,kBAA5B,iBAAG,EAAqC+W,gBAAxC,aAAG,EAA+C1U,MAEhE,OACE,qCACIsV,GACA,kBAAC,GAAD,CACEd,eAAgBA,EAChBC,WAAYA,EACZC,SAAUA,EACVzZ,SAAUA,EACV6K,aAAcA,EACdzT,KAAMA,EACNgN,MAAOA,EACPjE,IAAKA,IAIRka,GACC,kBAAC,GAAD,CACE/X,UAAU,wBACViX,eAAgBA,EAChBC,WAAYA,EACZC,SAAUA,EACVzZ,SAAUA,EACV5I,KAAMA,EACNgN,MAAOA,EACPjE,IAAKA,Q,UC1CAoa,I,SAAAA,GAbK,QAAC,gBAAEC,EAAF,SAAmBjc,EAAnB,aAA6Bkc,GAA9B,SAClB,kBAAC,KAAD,CACEC,gBAAiB,CACfC,UAAW,OACX3R,UAAWwR,EACXI,YAAY,EACZC,SAAUL,GAEZC,aAAcA,GAEblc,I,SCGE,MAAM4O,GAAUvR,UAAOkf,GAAV,yCACjBC,KACA,QAAC,MAAEpvB,GAAH,SAAeqQ,YAAQ,CACxBrQ,QACAuQ,GAAI,CACFE,GAAI,EACJpG,GAAI,QAKKkf,GAAWtZ,kBAAO4O,KAAK2K,KAAZvZ,CAAH,oSAQH,QAAC,MAAEjQ,GAAH,SAAeA,EAAM+S,QAAQsc,cAI7B,QAAC,MAAErvB,GAAH,SAAeA,EAAM+S,QAAQC,eAI7B,QAAC,MAAEhT,GAAH,SAAeA,EAAM+S,QAAQuc,cAIlC/b,GAAYtD,UAAOC,IAAV,y9BAGlBwD,IAKEtJ,YAAG,MAMLmlB,MACS,QAAC,MAAEvvB,GAAH,8BAA0D,IAA5BA,EAAMwvB,KAAKC,OAAOllB,KAAKkG,GAArD,SAEPrG,YAAG,OACM,QAAC,MAAEpK,GAAH,8BAA8BA,EAAMwvB,KAAKC,OAAOllB,KAAKF,GAArD,SAGTD,YAAG,MAQAA,IAAGslB,QAAQ,KAAM,MAOlBtlB,YAAG,MAIHmf,IACE,QAAC,MAAEvpB,GAAH,SAAeqQ,YAAQ,CACvBrQ,QACAisB,GAAI,OACJC,GAAI,CACF7hB,GAAG,OAELqI,GAAI,CACFjC,GAAI,EACJpG,GAAI,EACJgf,GAAI,OAMVsG,KAMIvlB,YAAG,MAQHA,YAAG,MAIHA,YAAG,O,sBC7Gb,MAAM6W,GAAYhhB,cAAH,iNASXmK,YAAG,OAOMwlB,IAFkB3f,kBAAO4O,KAAK2K,KAAZvZ,CAAH,4BAERA,UAAOyK,EAAV,2GACbuG,GAKA/E,MAGS2T,GAAiB5f,UAAOC,IAAV,mLACF,QAAC,MAAElQ,GAAH,SAAeA,EAAMiI,OAAOI,OAAOiK,QAE5B,QAAC,MAAEtS,GAAH,SAAeA,EAAMiI,OAAOD,OAExD8nB,YAAO,IAAK,MAKHC,GAAQ9f,kBAAOgM,KAAPhM,CAAH,sLAWLkd,GAAQld,UAAOqd,GAAV,wKACd1P,MACO,QAAC,MAAE5d,GAAH,SAAeA,EAAMyK,OAAOsH,KAAKie,YC2G1Chc,I,wBAAAA,eACEiG,YCrKqE,CACvE,CACER,MAAO,qDACPS,aAAc,sBACdwO,UAAU,GAEZ,CACEjP,MAAO,4DACPS,aAAc,qCACdgQ,UAAW,KD6JXhW,IAFFF,EA/HoE,IAA8B,IAAD,wBAA5B,UAAE8C,EAAF,SAAazC,GAAe,EAEjG,MAAM2C,GAASF,SAAA,UAAAA,EAAWE,cAAX,mBAAmBC,YAAnB,eAAyBF,aAAc,GAChDvC,GAAMsC,aAAA,EAAAA,EAAWtC,MAAO,KACxByb,GAAenZ,SAAA,UAAAA,EAAWE,cAAX,mBAAmBC,YAAnB,mBAAyBF,kBAAzB,mBAAqCkZ,oBAArC,eAAmD7Q,cAAe,GAGjF8Q,EAAa,UAAGtN,OAAOC,OAAOoN,UAAjB,aAAG,EAA6Bna,QAAO8B,GAA4B,mBAApBA,EAAK4C,aAEvE,IAAI2V,EAAgB,GAEpBvN,OAAOC,OAAOoN,GAAchpB,SAAQ2Q,IAEV,mBAApBA,EAAK4C,YAAmC5C,EAAKhF,WAC/Cud,EAAgBA,EAAc9Y,OAAOO,EAAKhF,cAI9Csd,EAAcjpB,SAAQ2Q,IAEpB,IADqBuY,EAAcrK,MAAKsK,GAASA,EAAMxZ,KAAOgB,EAAKhB,KAChD,CACjB,MAAM,GAACA,EAAD,MAAK6B,EAAL,MAAYiE,EAAZ,KAAmBjR,GAAQmM,EAC3ByY,EAAY,CAACzZ,KAAI6B,QAAOiE,QAAOjR,QACrC0kB,EAAcvtB,KAAKytB,OAIvB,MAAMlG,EAAUnT,SAAH,UAAGA,EAAQmT,eAAX,aAAG,EAAiB9P,IAC3BwQ,EAAQsF,GAAiB,GACzBrB,EAAe9X,SAAH,UAAGA,EAAQ8X,oBAAX,aAAG,EAAsBzU,IACrC2Q,EAAc3W,EAAkEwW,EAAvDA,EAAM/U,QAAQ8B,IAAD,iBAAUA,SAAV,UAAUA,EAAMnM,YAAhB,iBAAU,EAAY4O,WAAtB,iBAAU,EAAiBjB,aAA3B,aAAU,EAAwB+I,QACxE8I,EAAW5W,IAAa2W,aAAA,EAAAA,EAAYpkB,QAAS,EAE7C0pB,EAA0B5b,YAAkB,qCAAsC,YAIlFM,EAAKC,eASL4Z,GACHxa,GACDmB,cACAwV,aAAA,EAAAA,EAAYpkB,SAXwB,CACpC6J,GAAI,EACJ1G,GAAI,EACJM,GAAI,EACJgf,GAAI,EACJmB,GAAI,GAMgDxV,GAEhDsV,EACN,CACEC,IAAK,CACH9Z,GAAI,EACJpG,GAAI,EACJgf,GAAI,EACJmB,GAAI,IAIF+F,EAAmBC,aAAqBhT,KAAU0Q,OAAQuC,KAAWC,YAE3E,OACE,kBAAC,IAAD,CAAqBrc,SAAUA,IAC3BA,GAAY4W,IACZ,kBAAC,GAAD,CACEtU,UAAU,2BACV,oBACAC,GAAIpC,EACJiX,SAAQ,UAAET,aAAF,EAAEA,EAAYpkB,cAAd,QAAwB,GAE9BujB,GACA,kBAAC,GAAD,KACGA,aADH,EACGA,EAAS/Q,OAGb6R,GACC,kBAAC0F,GAAD,CACE9B,gBAAiBA,EACjBC,aAAcA,aAAF,EAAEA,EAAc1V,OAE3B4R,EAAW7iB,KAAI,CAACyP,EAAMvR,KAAP,mCACd,kBAAC,GAAD,CACEwoB,gBAAiBA,EACjBjD,OAAQtB,EACRjW,SAAUA,EACV5S,IAAKmW,EAAKhB,IAAMvQ,GAEhB,kBAACupB,GAAD,CACEzN,KAAMvK,SAAF,UAAEA,EAAMnM,YAAR,iBAAE,EAAY4O,WAAd,iBAAE,EAAiBjB,aAAnB,aAAE,EAAwB+I,KAC9B/L,OAAO,UAEP,kBAACyZ,GAAD,KACE,kBAAC,GAAD,eACElZ,UAAU,WACV8C,MACEpF,EACIuD,aADI,EACJA,EAAM8E,MACN,CACAtD,MAAO,CACLgE,IAAK1S,IACL4S,IAAG,UAAE1F,SAAF,UAAEA,EAAM8E,aAAR,iBAAE,EAAatD,aAAf,aAAE,EAAoBkE,WAAtB,QAA6B,GAChC,cAAeC,aAAa3F,SAAD,UAACA,EAAM8E,aAAP,iBAAC,EAAarC,WAAd,iBAAC,EAAkBjB,aAAnB,aAAC,EAAyBgE,IAAK,CACxDI,KAAUC,OACVD,KAAUyQ,OACVzQ,KAAU0Q,YAKhBqC,KAGR,kBAAC,GAAD,KAAQD,EAAwB9kB,QAAQ,UAAhC,UAA2CoM,SAA3C,UAA2CA,EAAMa,aAAjD,iBAA2C,EAAa4B,WAAxD,aAA2C,EAAkBjB,aAA7D,QAAsE,gBEzI3F,MAAM7F,GAAYtD,UAAOC,IAAV,iEACA,cAAC,MAAElQ,GAAH,SAAeA,SAAf,UAAeA,EAAO4wB,0BAAtB,aAAe,EAA2BzwB,aAE5DuT,KAGS2a,GAAgBpe,kBAAO4O,KAAKtL,UAAZtD,CAAH,qLAEtB,QAAC,MAAEjQ,GAAH,SACAqQ,YAAQ,CACNrQ,QACAiT,GAAI,CAAExC,GAAI,GACV2Y,GAAI,CAAE3Y,GAAI,EAAGpG,GAAI,OAGnBD,IAAG4H,SAAS,MAIZ5H,YAAG,MAIHA,YAAG,OAKM8iB,GAAiBjd,UAAOC,IAAV,oIAKvB9F,YAAG,OACD,QAAC,MAAEpK,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAO0S,GAAI,CAAErI,GAAI,EAAGgf,GAAI,QAI1C2D,GAAoB/c,UAAOgd,OAAV,iNAI1B7iB,YAAG,OAGD,QAAC,MAAEpK,GAAH,SACFqQ,YAAQ,CACNrQ,QACAuQ,IAAK,EACLO,GAAI,EACJe,GAAI,CAAExH,GAAI,EAAGgf,GAAI,GACjB/Y,GAAI,MAKNlG,YAAG,OAMM2iB,GAAa9c,kBAAOgM,KAAPhM,CAAH,0FAIVkd,GAAQld,UAAOwR,GAAV,6CACP,cAAC,MAAEzhB,GAAH,SAAeA,SAAf,UAAeA,EAAO4wB,0BAAtB,aAAe,EAA2BhoB,SAGxCioB,GAAc5gB,UAAOO,EAAV,oDACb,cAAC,MAAExQ,GAAH,SAAeA,SAAf,UAAeA,EAAO4wB,0BAAtB,aAAe,EAA2BhoB,QACjDiZ,KAGS8H,GAAa1Z,UAAOyK,EAAV,6IACnBpQ,YAAO,UAAW,YAClB,QAAC,MAAEtK,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOsQ,GAAI,MAGpClG,IAAG4H,SAAS,MAIZ5H,YAAG,OCJQ4J,mBACbE,IACA+F,YCjGoE,CACpE,CACER,MAAO,gEACPS,aAAc,8EACdwO,UAAU,KD6F2C,GAF1C1U,EArEwD,IAGhE,IAAD,0CAHkE,SACtEK,EADsE,UAEtEyC,GACI,EACJ,MAAMtC,EAAMsC,aAAH,EAAGA,EAAWtC,IACjBga,EAAW1X,SAAH,UAAGA,EAAWE,cAAd,iBAAG,EAAmBC,YAAtB,iBAAG,EAAyBF,kBAA5B,iBAAG,EAAqC0X,sBAAxC,aAAG,EAAqD7N,WAEtE,IAAK4N,IAAana,EAChB,OAAO,KAGT,MAAMwZ,EAAaW,SAAH,UAAGA,EAAUX,kBAAb,aAAG,EAAsBxT,IACnC5B,EAAQ+V,SAAH,UAAGA,EAAU/V,aAAb,aAAG,EAAiBW,MACzB3N,EAAO+iB,aAAH,EAAGA,EAAU3R,IACjBvE,EAAcxB,SAAH,UAAGA,EAAWE,cAAd,iBAAG,EAAmBC,YAAtB,iBAAG,EAAyBC,kBAA5B,iBAAG,EAAqCoB,mBAAxC,aAAG,EAAkDc,MAChE0U,EAAWhX,SAAH,UAAGA,EAAWE,cAAd,iBAAG,EAAmBC,YAAtB,iBAAG,EAAyBF,kBAA5B,iBAAG,EAAqC+W,gBAAxC,aAAG,EAA+C1U,MAE1DmX,EAAmBC,aAAqBhT,KAAU0Q,OAAQuC,KAAWC,YAE3E,OACE,kBAAC,GAAD,CACE/Z,UAAU,uBACV,oBACAC,GAAIpC,GACJ,kBAAC,GAAD,KACE,kBAAC,GAAD,KACE,kBAAC,GAAD,eACEmC,UAAU,WACV8C,MACEpF,EACIwZ,EACA,CACAzU,MAAO,CACLgE,IAAK1S,IACL4S,IAAG,UAAEuQ,SAAF,UAAEA,EAAYzU,aAAd,aAAE,EAAmBkE,WAArB,QAA4B,GAC/B,cAAeC,aAAasQ,SAAD,UAACA,EAAYzU,aAAb,aAAC,EAAmBgE,IAAK,CAClDI,KAAUyQ,OACVzQ,KAAU0Q,YAKhBqC,KAGR,kBAAC,GAAD,KACE,kBAAC,GAAD,KACE,kBAAC/W,GAAA,EAAD,CACEC,MAAO,CAAEL,MAAOX,GAChBiB,UAAU,KAGd,kBAACmX,GAAD,KACE,kBAACrX,GAAA,EAAD,CACEC,MAAO,CAAEL,MAAOd,GAChBoB,UAAU,KAGd,kBAAC,GAAD,CACEyI,KAAM1W,SAAF,UAAEA,EAAM4O,WAAR,iBAAE,EAAWjB,aAAb,aAAE,EAAkB+I,KACxB/L,OAAO,UACN0X,S,2DEvEN,MAEMgD,GAAoB,oBC8F3BC,GAAuC,CD7FD,0BACF,wBACD,wBCuG5BC,GAAmB,CAACzb,EAAkC0b,SAC5CC,IAAjB3b,GAA+Bwb,GAAsB7V,SAAS3F,EAAa4b,qBAG9D,MAAZF,GAA4C,IAAvBA,EAAS7S,YAAyC,cAArB6S,EAASG,SACvD,GAEFH,EAAS7S,WALP,GChII,WAA0B,gCC6T1BpK,mBACbwI,KACArI,eAFaH,EAvQwBoH,IAAW,IAAD,8CAK9CjG,qBAAU,KACT,MAAMkc,EAA0C7wB,SAASsnB,cAAc,MAEhD,OAApBuJ,IACDA,EAAgB9X,UAAY,EAC5B8X,EAAgBhoB,WAEjB,IAEH,MAAM,YACJoT,EADI,UAEJ3F,EAFI,eAGJ8F,EAHI,gBAIJrI,GACE6G,EAEE9F,GAAQf,aAAA,EAAAA,EAAiBe,QAAS,KAClC0B,EAAU1B,GAASA,EAAM0B,QAAW,GACpCzB,GAAeD,aAAA,EAAAA,EAAOC,eAAgB,GACtC+b,EAAmBC,yBAAcva,EAAQ,aAAe,GACxDwa,EAAyBD,yBAAcva,EAAQ,mBAAqB,GACpEya,EAAoBF,yBAAcva,EAAQ,cAAgB,GAC1D0a,EAA0BH,yBAAcva,EAAQ,oBAAsB,GACtE2a,EAAiCJ,yBAAcva,EAAQ,2BAA6B,GACpF4a,EAAmBL,yBAAcva,EAAQ,iBAAmB,KAC5D6a,EAAqBN,yBAAcva,EAAQ,kBAAoB,KAC/D8a,EAA0BP,yBAAcva,EAAQ,uBAAyB,KACzE+a,EAAoBR,yBAAcva,EAAQ,cAAe,EACzDgb,EAA2BT,yBAAcva,EAAQ,oBAAsB,KACvEib,EAAyBV,yBAAcva,EAAQ,eAAiB,KAChEkb,EAAmBX,yBAAcva,EAAQ,gBAAkB,KAC3D8J,EAAwByQ,yBAAcva,EAAQ,cAAgB,GAC9Dmb,OF7DOjB,KADoBja,EE8DSD,aAAD,EAACA,EAAQmb,gBF5DzC,GAGFlb,EACJ9O,KAAKqI,IAAD,eAAQA,SAAR,UAAQA,EAAGwG,cAAX,iBAAQ,EAAWsK,mBAAnB,aAAQ,EAAwBlI,SACpC9Q,KAAK,KAPyB2O,MEqEjC,MAAMmb,EAAW,UFtDY,EAACpb,EAAazB,KAC3C,QAAe2b,IAAXla,EACF,OAGwD,IAAD,EAAzD,GD/BkC,yBC+B9BzB,EAAa8V,cACf,OAAOrU,SAAP,UAAOA,EAAQ6J,gBAAf,aAAO,EAAkBzH,MAG3B,KAAKpC,aAAD,EAACA,EAAQmI,cACX,OAGF,MAAMkT,EAAYrb,EAAOmI,aACtBrJ,QAAQtF,IAAD,wBAAuC0gB,KAA/B1gB,SAAA,UAAAA,EAAGwG,cAAH,mBAAW6J,gBAAX,eAAqBzH,QAAsD,MAA/B5I,SAAA,UAAAA,EAAGwG,cAAH,mBAAW6J,gBAAX,eAAqBzH,UAChFjR,KAAKqI,IAAD,eAAQA,SAAR,UAAQA,EAAGwG,cAAX,iBAAQ,EAAW6J,gBAAnB,aAAQ,EAAqBzH,SAEpC,OAAOiZ,EAAUzrB,OAAS,EACtByrB,EAAU/pB,KAAK,UACf4oB,GEmCgBoB,CAAgBtb,EAAQzB,UAA3B,QAA4C,GACvDgd,EAAO,UAAGvb,SAAH,UAAGA,EAAQub,eAAX,iBAAG,EAAiBvb,cAApB,iBAAG,EAAyBqB,YAA5B,aAAG,EAA+Be,aAAlC,QAA2C,GAClDoZ,EAAW,UAAGxb,SAAH,UAAGA,EAAQyb,gBAAX,aAAG,EAAkBnR,mBAArB,QAAoC,GAC/CoR,GF/BqBpd,KAAgB,IAAD,IAC1C,GDpD4B,mBCoDxBA,EAAMC,aAAa8V,cACrB,OAAO/V,aAAP,EAAOA,EAAOgM,YAGhB,IAAIoR,EAAY,GAC2B,IAAD,EAK1C,OALIpd,SAAJ,UAAIA,EAAO0B,cAAX,iBAAI,EAAe2b,qBAAnB,aAAI,EAA8B/rB,UAChC8rB,EAAYpd,SAAH,UAAGA,EAAO0B,cAAV,aAAG,EAAe2b,cACxBxqB,KAAIkZ,IAAG,uBAAIA,aAAJ,EAAIA,EAAKC,mBAAT,QAAwB,MAC/BhZ,KAAK,MAEHoqB,GEoBWE,CAAatd,GACzBud,GFbwB,EAACvd,EAAYwB,KAAoB,IAAD,QAC9D,OAAIxB,EAAMC,aAAa8V,gBAAkByF,GAChCxb,aAAP,EAAOA,EAAOgM,aAGTxK,SAAA,UAAAA,EAAWE,cAAX,mBAAmBC,YAAnB,mBAAyByJ,mBAAzB,mBAAsChJ,2BAAtC,eAA2DC,oBAAqB,IEQlEmb,CAAgBxd,EAAOwB,GACtCic,GFD2B,EAACzd,EAAYwB,KAAoB,IAAD,QACL,IAA5D,OAAIxB,EAAMC,aAAa8V,gBAAkByF,IAChCxb,SAAA,UAAAA,EAAO0B,cAAP,mBAAe+b,uBAAf,eAAgCzR,cAAe,IAGjDxK,SAAA,UAAAA,EAAWE,cAAX,mBAAmBC,YAAnB,mBAAyByJ,mBAAzB,mBAAsChJ,2BAAtC,eAA2Dqb,kBAAmB,IEJ7DC,CAAmB1d,EAAOwB,GAE5Cmc,GAAmChV,aAAc6C,EAAe,CAAEoS,OAAO,EAAM/U,QAAQ,IAEvFgV,GAtEmBlB,KACzB,IAAImB,EAA0B,GAE1BnB,GACSA,EAAehX,MAAM,KAC3BhU,SAASoa,IACZ,IAA0B,IAAtBA,EAAImE,QAAQ,KAAa,CAC3B,MAAM6N,EAAWhS,EAAIpG,MAAM,KACrBqY,EAAW,0BAAMjb,KAAMgb,EAAS,GAAI7hB,QAAS6hB,EAAS,IAAM,KAClED,EAASxwB,KAAK0wB,OAKpB,OAAOF,GAwDeG,CAAkBtB,GAClCuB,GAAuBxB,IAAmBzd,aAAJ,EAAIA,EAAiBif,eAAgB,KAC3EpQ,IAAatM,SAAA,UAAAA,EAAWE,cAAX,mBAAmBC,YAAnB,eAAyBF,aAAc,KACpD0c,GAA4B,UAAGrQ,UAAH,UAAGA,GAAYsQ,oCAAf,iBAAG,EAA0CrZ,WAA7C,iBAAG,EAA+CrD,cAAlD,iBAAG,EAAuD2c,WAA1D,aAAG,EAA4Dva,aAA/D,QAAwE,GACpGwa,GAA4B,UAAGxQ,UAAH,UAAGA,GAAYyQ,oCAAf,iBAAG,EAA0CxZ,WAA7C,iBAAG,EAA+CrD,cAAlD,iBAAG,EAAuD2c,WAA1D,aAAG,EAA4Dva,aAA/D,QAAwE,GACpG0a,IAAwB1Q,UAAA,UAAAA,GAAY0Q,qBAAZ,eAA2B1a,QAAS,KAC5D2a,IAAqB3Q,UAAA,UAAAA,GAAY2Q,kBAAZ,eAAwB3a,QAAS,KACtD4a,IAAyB5Q,UAAA,UAAAA,GAAY4Q,sBAAZ,eAA4B5a,QAAS,KAC9D6a,IAAsB7Q,UAAA,UAAAA,GAAY6Q,mBAAZ,eAAyB7a,QAAS,KAG9D,IAAIX,GAAQ6Y,EACP7Y,IAASA,KAAUqb,KAAerb,GAAQgZ,GAI7ChZ,GADEA,IAASA,KAAUqb,GACbrb,GAAQ,MAAQqb,GAEhBA,GAGV,MAAMxb,GAAckZ,GAAkBE,EAEtC,IAAIhV,IAAQoV,aAAA,EAAAA,EAAoB1U,OAAOyU,aAA3B,EAA2BA,EAAezU,MAAO8W,GAE7D,MAAM,SAAEC,IAAaC,cAGrBjf,qBAAU,KACsB,mBAAnByH,GACTA,EACEyX,aAAK,CACH,YACA,WACA,WACA,OACA,SACA,WACC5X,IAIHjH,cACFhV,SAASwjB,KAAKiC,UAAU7f,OAAOkuB,MAC/B9zB,SAASwjB,KAAKiC,UAAU7f,OAAOmuB,SAEhC,CAACJ,KAGJhf,qBAAU,KACR,GAA8B,mBAAnByH,EAA+B,CAAC,IAAD,MAExC,MAAM4X,EAAkBxX,aACtB,CAAC,QACD,CACE0U,gBAAiBpZ,GACjBqZ,uBAAwBA,EACxB8C,SAAUhc,GACVic,QAASP,GACTQ,YAAanf,aAAa2e,IAAb,eFzJIS,EEyJuCT,GFxJ3D3e,YAIQ,MAATof,EACK,QAGFA,EAAKC,UAAU,GAAGrpB,QAAQ,MAAO,KAAK6f,cAPpC,KEwJDuG,SAAUA,EACVa,UAAUnd,SAAA,UAAAA,EAAO0B,cAAP,mBAAe8d,yBAAf,eAAkC1b,QAAS7D,EACrDuL,cAAekQ,GAAiBzb,EAAc0d,IAC9CJ,gBACAE,mBACAb,WACAQ,aACAP,iBACAK,cACAJ,cACAG,WAEF9V,GAGIsY,EAAqB,IACtBtY,KACA+X,GAGL5X,EACEmY,IAIF,UAAI10B,cAAJ,aAAI,EAAQ20B,oBACV7X,aAAe,YFpLIyX,QE4LtB,CAACnc,KAIJtD,qBAAU,KACJK,cACFnV,OAAO40B,IAAM50B,OAAO40B,KAAO,GAC3B50B,OAAO40B,IAAIxY,YAAcA,KAE1B,CAACA,IAkBJ,OAFAyY,aADwC,IAAM/X,aAAe,aACI,IAG/D,oCACE,kBAACgY,GAAA,EAAD,KACE,+BAAQ1c,IACPH,IAAe,0BAAMD,KAAK,cAAc7G,QAAS8G,KACjDyZ,GAAY,0BAAM1Z,KAAK,SAAS7G,QAAQ,oBACzC,0BAAM4jB,SAAS,WAAW5jB,QAASiH,KAClCH,IAAe,0BAAM8c,SAAS,iBAAiB5jB,QAAS8G,KACxDoE,IAAS,0BAAM0Y,SAAS,WAAW5jB,QAASkL,KAC5C8W,IAAgB,0BAAM4B,SAAS,SAAS5jB,QAASgiB,KACjDO,IAAc,0BAAMqB,SAAS,eAAe5jB,QAASuiB,KACtD,0BAAMqB,SAAS,UAAU5jB,QAAQ,YAChCkL,IAAS,0BAAMrE,KAAK,eAAe7G,QAAQ,yBAC1CkL,IAAS,0BAAMrE,KAAK,eAAe7G,QAAQ,YAC7C,0BAAM6G,KAAK,gBAAgB7G,QAASiH,KACnCH,IAAe,0BAAMD,KAAK,sBAAsB7G,QAAS8G,KACzDoE,IAAS,0BAAMrE,KAAK,gBAAgB7G,QAASkL,KAC7CuX,IAAe,0BAAM5b,KAAK,eAAe7G,QAASyiB,KAClDD,IAAkB,0BAAM3b,KAAK,kBAAkB7G,QAASwiB,KACxDR,IAAgB,0BAAM6B,IAAI,YAAYlT,KAAMqR,KAC5CL,GAGCM,IACE,4BAAQrW,IAAKqW,GAAsBvP,OAAK,IAK1C0P,IACE,4BAAQxW,IAAKwW,GAAsB1P,OAAK,IAK5C,4BAAQ/N,KAAK,aAAaQ,UAAU,0BAApC,yLAKuDqD,GALvD,qiDA4CCyZ,IACC,4DAhGmBhX,KACzB,IACE,YAA2B,IAAhBA,EACF6Y,KAAKC,UAAU9Y,EAAa,KAAM,GAEpC,GAET,MAAO+Y,GACLC,aAAUD,KAyFkBE,CAAkBjZ,GAD1C,W,2DCzSH,MAAMkZ,GAAoB,aACpBC,GAAmB,aACnBC,GAAY,MACZC,GAA0B,UAEjCC,GAAyBrhB,YAAkB,2CAA4C,uBAGhFshB,GAAe,CAACl1B,EAAU2K,EAAYwqB,KACjDn1B,EAAEo1B,iBAEF,MAAM9f,EAAS6f,EAAc,SAAW,QAExC,GAAIzgB,cAAa/J,aAAJ,EAAIA,EAAM0W,MACrB,OAAO9hB,OAAO81B,KACZ1qB,EAAK0W,KACL/L,IAsBAggB,GAAeC,GACdA,EACEA,EAAI7qB,QAAQ,UAAW8qB,GAAQA,EAAIC,OAAO,GAAGC,cAAgBF,EAAIzB,UAAU,GAAGxJ,gBADpE,GAINoL,GAAcC,IAAsB,IAAD,QAC9C,IAAKA,EAAS,MAAO,GAGrB,MAAMC,EAAa,IAEfD,aAAJ,EAAIA,EAASE,eACXD,EAAW/zB,KAAK8zB,EAAQE,eAGtBF,aAAJ,EAAIA,EAASG,eACXF,EAAW/zB,KAAK8zB,EAAQG,eAGtBH,aAAJ,EAAIA,EAASI,eACXH,EAAW/zB,KAAK8zB,EAAQI,cAG1B,MAAMC,GAAaJ,aAAA,EAAAA,EAAY/vB,QAAS+vB,EAAWruB,KAAK,MAAQ,KAG1D0uB,EAAc,GAWS,IAAD,IATxBN,aAAJ,EAAIA,EAASO,OACXD,EAAYp0B,KAAKwzB,GAAYM,EAAQO,QAEnCP,SAAJ,UAAIA,EAASQ,aAAb,aAAI,EAAgB7e,OAClB2e,EAAYp0B,KAAKwzB,GAAYM,EAAQQ,MAAM7e,SAExCqe,SAAD,UAACA,EAASQ,aAAV,aAAC,EAAgB7e,QAAQqe,SAAzB,UAAyBA,EAASQ,aAAlC,aAAyB,EAAgBC,UAC3CH,EAAYp0B,KAAK8zB,EAAQQ,MAAMC,SAE7BT,SAAJ,UAAIA,EAASU,eAAb,aAAI,EAAkB/e,OACpB2e,EAAYp0B,KAAKwzB,GAAW,UAACM,EAAQU,eAAT,aAAC,EAAiB/e,QAE5Cqe,aAAJ,EAAIA,EAASW,WACXL,EAAYp0B,KAAK8zB,EAAQW,UAG3B,MAAMC,EAAiBN,EAAY1uB,KAAK,MAGlCivB,EAAqB,GAEvBR,GACFQ,EAAmB30B,KAAKm0B,GAEtBO,GACFC,EAAmB30B,KAAK00B,GAK1B,OAF2BC,aAAA,EAAAA,EAAoB3wB,QAAS2wB,EAAmBjvB,KAAK,MAAQ,IAK7EkvB,GAAoB,CAACd,EAAkBe,KAClD,MAAMV,EAAaN,GAAWC,GACxBgB,EAAoBjB,GAAWgB,GAErC,OAAOV,IAAeW,EAAoB3B,GAAyB2B,GAWxDC,GAAwB,SAAC9M,GAAyD,IAAD,MAA1C+M,EAA0C,uDAAnB,OACzE,IAAK/M,GAAkC,KAAzB,UAACA,aAAD,EAACA,EAAOjkB,cAAR,QAAkB,GAC9B,MAAO,GAET,MAAMixB,EAAOhN,EAAM1iB,KAAKtB,GAAMA,aAAP,EAAOA,EAAI+wB,MAAkB,GAEpD,OAAOC,aAAA,EAAAA,EAAMjxB,QAASixB,EAAKvvB,KAAK,MAAQ,IAY7BwvB,GAAuB1e,GACpB,SAAVA,GAGU,UAAVA,GAGG,KAGI2e,GAAmCC,GACftjB,YAAkB,0BAA2B,kBAC9ClJ,QAAQ,cAAewsB,aAA9C,EAA8CA,EAAW3M,eAQrD4M,GAAsB,SACjCD,GAGI,IAFJE,EAEG,uDAFK,UACRhe,EACG,uDADYxF,YAAkB,yBAA0B,+BAE3D,OAAKsjB,GAAc9d,EAIZie,GAAcje,EAAc,CAAE,CAACge,GAAQF,IAHrC,MAMEI,GAAqB,SAChCJ,GAGI,IAFJE,EAEG,uDAFK,UACRhe,EACG,uDADYxF,YAAkB,wBAAyB,iCAE1D,OAAKsjB,GAAc9d,EAIZie,GAAcje,EAAc,CAAE,CAACge,GAAQF,IAHrC,MAMEK,GAA8B,CACzCL,EACA9N,KAEA,MAAMhQ,EAAexF,YAAkB,6BAA8B,gDACrE,OAAKsjB,GAAc9d,EAIZie,GAAcje,EAAc,CAAE,UAAW8d,EAAW,WAAY9N,IAH9D,MAMLiO,GAAgB,CAAC9B,EAAaiC,KAClC,IAAIC,EAAQ,IAAIC,OAAO5V,OAAO2E,KAAK+Q,GAAQhwB,KAAK,KAAM,MAEtD,OAAO+tB,EAAI7qB,QAAQ+sB,GAAO,SAAUE,GAClC,OAAOH,EAAOG,EAAQpN,mBAUbqN,GAAa,CACxBC,EACAC,KAEA,IAAKD,EAAa,MAAO,GAEzB,MAAME,EAAmBC,KAAOH,EAAahD,IAAmB,GAAMoD,UAChEC,EAAkBF,KAAOH,EAAa/C,IAAkB,GAAMmD,UAEpE,OAAIF,GAAqC,cAAjBD,EACfE,KAAOH,EAAahD,IAAmBsD,OAAOrD,IAGnDoD,GAAoC,eAAjBJ,EACdE,KAAOH,EAAa/C,IAAkBqD,OAAOtD,IAG/CgD,GAIIO,GAAoB,CAACC,EAAqBC,KACrD,GAAKD,GAAgBC,EAGrB,OAAKD,EAIC,KAAN,OAAYA,EAAZ,YAA2BC,GAHlBA,GAiBEC,GAAgC,KAC3C,IAAK7jB,YACH,OAGF,MAAMqH,EAAM,IAAI8W,IAAItzB,OAAOi5B,SAASnX,MAC9BsI,EAAS,IAAI8O,gBAAgB1c,aAApB,EAAoBA,EAAK2c,QAExC,OAAQ/O,aAAA,EAAAA,EAAQzP,IAAI6a,OAAeC,IChQ/B2D,GAAyBrgB,IAE7B,IAAIA,EACF,OAAO,EAGT,MAAOsgB,EAAKC,EAAOC,GAAQxgB,EAAM6B,MAAM,KACjC4e,EAAa,UAAMF,EAAN,YAAeD,EAAf,YAAsBE,GACnCE,EAAU,IAAIlT,KAAK,cAGzB,OAFkB,IAAIA,KAAKiT,GAERC,GCbRC,GAAcC,wBAAc,MAE5BC,GAAoBD,wBAA0B,MAE9CE,GAA6BC,GACxCC,IAGA,MAAM9Y,EAAc8Y,EAAiB9Y,aAAe8Y,EAAiB/hB,MAAQ,YAEvE6hB,EAAmE9e,GACvE,kBAAC6e,GAAkBI,SAAnB,CAA4BjhB,MAAO+gB,GACjC,kBAACC,EAAsBhf,IAM3B,OAFA8e,EAA0B5Y,YAA1B,oCAAqEA,EAArE,KAEO4Y,G,yBCfF,SAASI,GAAYzd,EAAK0d,GAC/B,OAAOC,KAAM,CACX3d,SACG0d,EAGHE,iBAAiB,ICLd,MAAMC,GAAW,IAMiC,IANV,OAC7CC,EAD6C,WAE7CC,EAF6C,OAG7CC,EAH6C,UAI7CC,EACAP,mBAAoBQ,GACkC,EAClDC,GAAiB,EAErB,MAAMC,EAAgB,CACpBC,EACAC,EACA1W,KAEIA,GACFA,EAAUyW,GAGRC,GACFA,EAAWD,GAENA,GAGHE,EAAc,CAClBlhB,EACAihB,EACAE,KAEA,MAAMH,EAAc,CAClBjkB,KAAM,KACNqkB,MAAO,CACLC,KAAM,KACNC,QAASthB,UAAgB,qBAE3BuhB,WAAW,GAWb,OARIJ,GACFA,EAAQH,GAGNC,GACFA,EAAWD,GAGNA,GAgFT,MAAO,CACLP,SACAe,QA/Ec,WASmB,IAAD,QATjB,mBACfnB,EAAqB,GADN,KAEftjB,EAAO,GAFQ,WAGfkkB,EAAa,KAHE,QAIfE,EAAU,KAJK,UAKf5W,EAAY,KALG,iBAMfkX,GAAmB,EANJ,kBAOfC,GAAoB,EAPL,sBAQfC,GAAwB,GACQ,uDAAP,GACzB,MAAMC,EAAoB,IACrBf,KACAR,GAGCwB,EACoD,SAAxD,UAACD,SAAD,UAACA,EAAmBE,cAApB,aAAC,EAA2B3Q,qBAA5B,QAA6C,SAC1B,MAAfwP,EAAO5jB,OAAiB2kB,MAAwBZ,GAAkBa,GAExE,GAAKlB,GAIH,GAAIoB,EAAsB,CAGxB,GAFAf,GAAiB,EAEZJ,EAaH,OARAE,EAAUG,EACR,CACEhkB,KAAM4jB,EAAO5jB,KACbqkB,MAAO,KACPG,UAAWE,KAIRrB,GAAYK,EAAQ,CAAE1jB,UAAS6kB,IACnCxU,MAAM2U,KACDA,aAAJ,EAAIA,EAAUhlB,OACZ+jB,GAAiB,EAEjBF,EAAUG,EACR,CACEhkB,KAAMglB,EAAShlB,KACfqkB,MAAO,KACPG,WAAW,GAEbN,EACA1W,MAGFuW,GAAiB,EAEjBF,EAAUM,EAAY,0BAA2BD,EAAYE,QAGhEa,OAAO1G,IAAS,IAAD,EACdwF,GAAiB,EAEjBF,EAAUM,EAAW,UAAC5F,EAAI2G,gBAAL,aAAC,EAAcX,QAASL,EAAYE,OAlC7DP,EAAUM,EAAY,wCAAyCD,EAAYE,UAP/EP,EAAUM,EAAY,sBAAuBD,EAAYE,KA2D3DR,SACAuB,MAZY,KACZtB,EAAU,CACR7jB,KAAM,KACNqkB,MAAO,KACPG,WAAW,OC5GJY,GAAgBrC,wBAAkC,IAwThDsC,OAtTuC,IAI/C,IAAD,cAJiD,SACrD1pB,EADqD,QAErD2pB,EAFqD,iBAGrDC,GACI,EACJ,MAAMjoB,EAAuBkoB,qBAAWC,KAElC9B,EAAsB+B,mBAC1B,qBAAOpoB,SAAD,UAACA,EAAiBqoB,eAAlB,iBAAC,EAA0BC,oBAA3B,aAAC,EAAwCC,eAC/C,CAACvoB,SAAD,UAACA,EAAiBqoB,eAAlB,iBAAC,EAA0BC,oBAA3B,aAAC,EAAwCC,cAGrCC,EAAwB,CAC5B/B,gBAAgB,EAChB/jB,KAAM,KACNqkB,MAAO,KACPG,WAAW,EACXuB,aAAc,OAGTC,EAAQC,GAAaroB,mBAA4BkoB,IACjDI,EAAeC,GAAoBvoB,mBAAmCkoB,IACtEM,EAAyBC,GAA8BzoB,mBAA6CkoB,IACpGQ,EAAWC,GAAgB3oB,mBAA+BkoB,IAC1DU,EAAmBC,GAAwB7oB,mBAAuCkoB,IAClFY,EAAmBC,GAAwB/oB,mBAAuCkoB,IAClFc,EAAgBC,GAAqBjpB,mBAAoCkoB,IACzEgB,EAA0BC,GAA+BnpB,mBAA8CkoB,IACvGkB,EAASC,GAAcrpB,mBAA6BkoB,IACpDoB,EAAmBC,GAAwBvpB,mBAAuCkoB,IAClFsB,EAAeC,GAAoBzpB,mBAAmCkoB,GAGvEwB,EAAe7D,GAAS,CAC5BC,OAAO,GAAD,OAAK4B,UAAW,GAAhB,yBACNhC,mBAAoB,CAClByB,OAAQ,OAEVpB,aACAC,OAAQoC,EACRnC,UAAWoC,IAGPsB,EAAmB9D,GAAS,CAChCC,OAAO,GAAD,OAAK4B,UAAW,GAAhB,6BACNhC,mBAAoB,CAClByB,OAAQ,MACRvR,OAAQ,CACNgU,YAAY,EACZC,WAAW,EACXC,UAAU,EACVC,yBAAyB,EACzBC,iBAAiB,EACjBC,eAAe,EACfC,uBAAuB,IAG3BnE,aACAC,OAAQsC,EACRrC,UAAWsC,IAGP4B,EAA6BtE,GAAS,CAC1CC,OAAO,GAAD,OAAK4B,UAAW,GAAhB,6BACNhC,mBAAoB,CAClByB,OAAQ,QACRvR,OAAQ,CACNwU,gBAAgB,IAGpBrE,aACAC,OAAQwC,EACRvC,UAAWwC,IAGP4B,EAAexE,GAAS,CAC5BC,OAAO,GAAD,OAAK6B,UAAoB,GAAzB,0BACNjC,mBAAoB,CAClByB,OAAQ,OAEVpB,aACAC,OAAQ0C,EACRzC,UAAW0C,IAEP2B,EAAuBzE,GAAS,CACpCC,OAAO,GAAD,OAAK6B,UAAoB,GAAzB,2BACNjC,mBAAoB,CAClByB,OAAQ,OAEVpB,aACAC,OAAQ4C,EACR3C,UAAW4C,IAEP0B,EAAuB1E,GAAS,CACpCC,OAAO,GAAD,OAAK6B,UAAoB,GAAzB,wBACNjC,mBAAoB,CAClByB,OAAQ,QAEVpB,aACAC,OAAQ8C,EACR7C,UAAW8C,IAGPyB,EAAoB3E,GAAS,CACjCC,OAAO,GAAD,OAAK4B,UAAW,GAAhB,6BACNhC,mBAAoB,CAClByB,OAAQ,MACRvR,OAAQ,CACN6U,SAAS,EACTC,gBAAgB,EAChBC,iBAAiB,EACjBV,eAAe,IAGnBlE,aACAC,OAAQgD,EACR/C,UAAWgD,IAGP2B,EAA8B/E,GAAS,CAC3CC,OAAO,GAAD,OAAK4B,UAAW,GAAhB,6BACNhC,mBAAoB,CAClByB,OAAQ,QACRvR,OAAQ,CAEN6U,SAAS,EACTC,gBAAgB,EAChBC,iBAAiB,EACjBV,eAAe,IAGnBlE,aACAC,OAAQkD,EACRjD,UAAWkD,IAKP0B,EAA6BhF,GAAS,CAC1CC,OAAO,GAAD,OAAK4B,UAAW,GAAhB,6BACNhC,mBAAoB,CAClByB,OAAQ,MACRvR,OAAQ,CACNqU,eAAe,EACfQ,SAAS,EACTC,gBAAgB,EAChBC,iBAAiB,IAGrB5E,aACAC,OAAQgD,EACR/C,UAAWgD,IAIP6B,EAAmCjF,GAAS,CAChDC,OAAO,GAAD,OAAK4B,UAAW,GAAhB,uCACNhC,mBAAoB,CAClByB,OAAQ,QACRvR,OAAQ,CAEN6U,SAAS,EACTC,gBAAgB,EAChBC,iBAAiB,EACjBV,eAAe,IAGnBlE,aACAC,OAAQkD,EACRjD,UAAWkD,IAIP4B,EAAwBlF,GAAS,CACrCC,OAAO,GAAD,OAAK4B,UAAW,GAAhB,6BACNhC,mBAAoB,CAClByB,OAAQ,MACRvR,OAAQ,CACNgU,YAAY,EACZC,WAAW,EACXC,UAAU,EACVC,yBAAyB,EACzBC,iBAAiB,EACjBC,eAAe,EACfC,uBAAuB,IAG3BnE,aACAC,OAAQsC,EACRrC,UAAWsC,IAKPyC,EAA8BnF,GAAS,CAC3CC,OAAO,GAAD,OAAK4B,UAAW,GAAhB,6BACNhC,mBAAoB,CAClByB,OAAQ,QACRvR,OAAQ,CACNwU,gBAAgB,IAGpBrE,aACAC,OAAQwC,EACRvC,UAAWwC,IAGPwC,EAAapF,GAAS,CAC1BC,OAAO,GAAD,OAAK4B,UAAW,GAAhB,uBACNhC,mBAAoB,CAClByB,OAAQ,OAEVpB,aACAC,OAAQoD,EACRnD,UAAWoD,IAEP6B,EAAuBrF,GAAS,CACpCC,OAAO,GAAD,OAAK4B,UAAW,GAAhB,uBACNhC,mBAAoB,CAClByB,OAAQ,QAEVpB,aACAC,OAAQsD,EACRrD,UAAWsD,IAGP4B,EAAmBtF,GAAS,CAChCC,OAAO,GAAD,OAAK4B,UAAW,GAAhB,6BACNhC,mBAAoB,CAClByB,OAAQ,OAEVpB,aACAC,OAAQwD,EACRvD,UAAWwD,IAIP2B,EAA6BtD,mBAAQ,KAAO,IAAD,EACX,cAApC,OAAKmD,SAAD,UAACA,EAAYjF,cAAb,aAAC,EAAoBY,WAQhB,GAPP,UAAOqE,SAAP,UAAOA,EAAYjF,cAAnB,iBAAO,EAAoB5jB,YAA3B,iBAAO,EAA0BipB,gBAAjC,iBAAO,EACHpqB,QAAOqqB,IAAYA,EAAQC,oBAD/B,iBAAO,EAEHj4B,KAAIg4B,GAAWA,EAAQE,qBAF3B,iBAAO,EAGHC,QAAO,CAACC,EAAK3+B,IAAQ2+B,EAAM3+B,GAAK,UAHpC,aAAO,EAIH4+B,QAAQ,UAJZ,QAKK,KAIN,CAACV,SAAD,UAACA,EAAYjF,cAAb,aAAC,EAAoBY,YAGlBgF,EAA0B9D,mBAAQ,KAAO,IAAD,EACR,IAApC,OAAKmD,SAAD,UAACA,EAAYjF,cAAb,aAAC,EAAoBY,WAKhB,KAJAqE,SAAP,UAAOA,EAAYjF,cAAnB,iBAAO,EAAoB5jB,YAA3B,aAAO,EAA0BipB,SAC9B/3B,KAAIg4B,GAAWA,EAAQO,WACvB5a,MAAK,QAAC,QAAEqR,GAAH,SAAiBA,OAI1B,CAAC2I,SAAD,UAACA,EAAYjF,cAAb,aAAC,EAAoBY,YAGlBkF,GAAsBhE,mBAAQ,KAAO,IAAD,EACJ,MAApC,OAAKmD,SAAD,UAACA,EAAYjF,cAAb,aAAC,EAAoBY,WAKhB,GAJAqE,SAAP,UAAOA,EAAYjF,cAAnB,iBAAO,EAAoB5jB,YAA3B,iBAAO,EAA0BipB,gBAAjC,aAAO,EACHpqB,QAAOqqB,IAAYA,EAAQC,aAC5Bj4B,KAAIg4B,GAAWA,aAAJ,EAAIA,EAAS5E,SAI5B,CAACuE,SAAD,UAACA,EAAYjF,cAAb,aAAC,EAAoBY,YAQxB,OAJEtmB,qBAAU,KACRopB,WAAc7C,YACb,IAGH,kBAACW,GAAchC,SAAf,CACEjhB,MAAO,CACLolB,mBACAQ,6BACAE,eACAC,uBACAC,uBACAC,oBACAI,8BACAlB,eACAuB,aACAC,uBACAC,mBACAW,uBACAF,0BACAR,6BAEAP,6BACAC,mCACAC,wBACAC,gCAEFjtB,IAWwBypB,GAAcuE,SAArC,MAEMC,GACXzG,IAGA,MAAM9Y,EAAc8Y,EAAiB9Y,aAAe8Y,EAAiB/hB,MAAQ,YAEvEwoB,EAAmEzlB,GACvE,kBAACihB,GAAcuE,SAAf,MACIxnB,GAAU,kBAACghB,EAAD,iBAAsBhhB,EAAYgC,MAMlD,OAFAylB,EAAkBvf,YAAlB,4BAAqDA,EAArD,KAEOuf,GCoGM7sB,I,qBAAAA,eACbE,IADaF,EA7a2E,IAGnF,IAAD,8BAHqF,SACzFpB,EADyF,SAEzFyB,GACI,EACJ,MAAMysB,EAAgBrE,qBAAWJ,IAC3B0E,EAAsBhsB,iBAAqD,IAC3EisB,EAAqBvE,qBAAWwE,OAChC,YAAExkB,EAAF,eAAeG,GAAmBokB,EAEE,IAAtCpe,OAAO2E,KAAKuZ,GAAel6B,QAC7Bs6B,aAAW,6EAIb,MAAOC,EAAWC,GAAgBvsB,oBAAS,IACpCwsB,EAAgBC,GAAqBzsB,mBAAS,OAC9C0sB,EAAuBC,GAA4B3sB,mBAAS4sB,aAAoB5L,MAAeC,KAI/F4L,EAAwBC,GAA6B9sB,oBAAS,GAGrEM,qBAAU,KAAO,IAAD,IACd2rB,SAAA,UAAAA,EAAetC,wBAAf,mBAAiC9C,eAAjC,gBAA2C,CACzCC,kBAAkB,EAClBC,mBAAmB,MAEpB,IAGHzmB,qBAAU,KACsB,IAAD,QAOmC,IAKpC,IAGmC,IAf1Dd,GAAa8sB,IAChBL,SAAA,UAAAA,EAAetC,wBAAf,mBAAiC9C,eAAjC,gBAA2C,CACzCC,kBAAkB,EAClBC,mBAAmB,KAIjBkF,SAAJ,UAAIA,EAAe9B,kCAAnB,iBAAI,EAA2CnE,cAA/C,aAAI,EAAmDS,SACrDwF,SAAA,UAAAA,EAAe9B,kCAAf,mBAA2C5C,aAA3C,oBAIC/nB,GAAY8sB,KAGXL,SAAJ,UAAIA,EAAe9B,kCAAnB,iBAAI,EAA2CnE,cAA/C,aAAI,EAAmD5jB,QACrD6pB,SAAA,UAAAA,EAAe9B,kCAAf,mBAA2C5C,aAA3C,qBAGH,CAAC/nB,EAAU8sB,IAGdS,aAAU,kBAAMd,SAAN,UAAMA,EAAe9B,kCAArB,aAAM,EAA2C5C,WAE3D,MAAMyF,EAAe,CAACC,EAAeC,KAC/BD,IACFA,WAAO5L,kBAETkL,GAAa,GAETW,GACFT,EAAkBS,GAIU,mBAAnBnlB,IACTA,EACEI,aACE,CAAC,QACD,CACEuJ,SAAU,cACVyb,OAAQD,UAAqB,IAE/BtlB,IAEJU,aAAe,gBAIb8kB,EAAgBH,IACpBA,EAAM5L,iBAGwB,mBAAnBtZ,IACTA,EACEI,aACE,CAAC,QACD,CACEyX,SAAU,uCAEZhY,IAEJU,aAAe,YAIjB,MAAM+kB,EAAYxtB,YAAkB,4BAA6B,4EAG7DrU,OAAO8hC,QAAQD,IACjBd,GAAa,GACbO,GAA0B,GAE1BH,GAAyB,GAIK,mBAAnB5kB,IACTA,EACEI,aACE,CAAC,QACD,CACEC,SAAU,kBACVC,gBAAiB,mBAEnBT,IAEJU,aAAe,gBAIa,mBAAnBP,IACTA,EACEI,aACE,CAAC,QACD,CACEC,SAAU,mBACVC,gBAAiB,oBAEnBT,IAEJU,aAAe,cAGjBmkB,EAAkB,MAElBjhC,OAAOa,OAAO,CACZC,IAAK,EACLC,KAAM,EACNghC,SAAU,aAKVC,EAAcP,MAKd1oB,EAAkC,CACtCsoB,uBAAwBA,EACxBY,oBAAqBnB,EACrBI,sBAAuBA,EACvBF,eAAgBA,EAChBD,aAAcA,EACdmB,kBAAmB,CACjBpB,YACAc,eACAI,aACAR,gBAEFW,4BAA6B,CAC3BrB,YACAc,eACAI,aACAR,gBAEFlD,SAAU,CACRwC,YACAc,eACAI,aACAR,gBAEF9C,sBAAuB,CACrBoC,YACAc,eACAI,aACAR,gBAEFhD,gBAAiB,CACfsC,YACAc,eACAI,aACAR,iBAwEEY,IACH3B,SAAD,UAACA,EAAetC,wBAAhB,iBAAC,EAAiC3D,cAAlC,aAAC,EAAyCY,aACvCqF,SADH,UACGA,EAAetC,wBADlB,iBACG,EAAiC3D,cADpC,aACG,EAAyC5jB,MAKxCyrB,EL1QwB,EAACC,EAAmBC,IAAiBC,YAAaC,MAAM,CACtFC,eAAgBF,YAChBpE,WAAYoE,UAAW,CACrBG,SAAUH,YACPI,IAAI,EAAG5K,GAA4B3jB,YAAkB,uBAAwB,YAAa,IAC7FwuB,YAAaL,YAAaM,KAAK,aAAc,CAC3CC,GAAI,OACJ9b,KAAMub,YAAana,SAASuP,GAAoBvjB,YAAkB,2BAA4B,4BAEhG2uB,SAAUR,YACVS,2BAA4BT,YAAaU,WAAWJ,KAAK,aAAc,CACrEC,GAAI,OACJ9b,KAAMub,YAAana,SAAS,uCACzB8a,QAAQ,wBAAyB,sDACjC7d,KAAK,iBAAkB,qBAAsBvM,GAAS0f,KAAO1f,EAAO,cAAc,GAAM2f,YACxFpT,KAAK,uBAAwB,uDAAwD8T,MAG1FgK,WAAYZ,YACTa,MAAM,CAAC,OAAQ,SAAUzL,GAAoBvjB,YAAkB,uCAAwC,iCACvG6uB,WACHI,aAAcd,aACde,YAAaf,YAAaU,WAAWM,WAAU,CAACzqB,EAAO0qB,IACnC,OAAlBA,OAAyB5S,EAAY9X,IACrCsP,SAAS,oCACXqb,oBAAqBlB,YAAaU,WAAWM,WAAU,CAACzqB,EAAO0qB,IAC3C,OAAlBA,OAAyB5S,EAAY9X,IACrCsP,SAAS,6CACXsb,sBAAuBnB,YAAaU,WAAWM,WAAU,CAACzqB,EAAO0qB,IAC7C,OAAlBA,OAAyB5S,EAAY9X,IACrCsP,SAAS,+CACXub,QAASpB,YAAaU,WAAWJ,KAAK,gBAAgB,CAACQ,EAAcO,IAC/DP,EACKO,EAAOpB,MAAM,CAClBzqB,KAAMwqB,YAAana,SAASuP,GAAoBvjB,YAAkB,2BAA4B,kBAC9FyvB,WAAYtB,YACZzL,QAASyL,UAAW,CAClBuB,eAAgBvB,YACbna,SAASuP,GAAoBvjB,YAAkB,6BAA8B,wBAgB/EwvB,EAAOpB,MAAM,CAClBlsB,GAAIisB,YAAaU,WAAW7a,SAASuP,GAAoBvjB,YAAkB,2BAA4B,wBAI7GgqB,UAAWmE,UAAW,CACpBwB,qBAAsBxB,YAAald,KAAK,qBAAsBjR,YAAkB,8CAA+C,4KAA6K0E,IAAW,IAAD,IAGpT,OAAKupB,MAGmBC,SAAH,UAAGA,EAAc9c,MAAKlO,GAAQA,EAAKS,OAASsqB,WAA5C,aAAG,EAA6D2B,UAC9D1B,SAAH,UAAGA,EAAc9c,MAAKlO,GAAQA,EAAKS,OAASe,WAA5C,aAAG,EAAiDkrB,eAQ5E3F,SAAUkE,UAAW,CACnBhY,MAAOgY,WAAY0B,GAAG1B,UAAW,CAC/B2B,YAAa3B,YAAald,KAAK,kCAAmCsS,GAAoBvjB,YAAkB,2BAA4B,kBAAmB0E,KAChJA,IAKPqrB,mBAAoB5B,YAAaU,cAC/B5d,KAAK,gBAAiBjR,YAAkB,sCAAuC,kCAAmCmO,IACpH,MAAM6hB,EAAU,IAAIC,IACpB,IAAK,IAAI99B,EAAI,EAAGA,EAAIgc,EAAOjc,OAAQC,IAAK,CACtC,GAAI69B,EAAQE,IAAI/hB,EAAOhc,GAAG29B,aACxB,OAAO,EAETE,EAAQ59B,IAAI+b,EAAOhc,GAAG29B,aAExB,OAAO,OAGXzF,sBAAuB8D,UAAW,CAChChY,MAAOgY,WACJI,IAAI,EAAGhL,GAAoBvjB,YAAkB,6CAA8C,8BAEhGmqB,gBAAiBgE,UAAW,CAC1BhY,MAAOgY,eKsKWgC,EAFM/D,SAAA,UAAAA,EAAetC,wBAAf,mBAAiC3D,cAAjC,mBAAyC5jB,YAAzC,mBAA+CynB,iBAA/C,eAA0D2F,uBAAwB,GACvFvD,SAAH,UAAGA,EAAetC,wBAAlB,iBAAG,EAAiC3D,cAApC,iBAAG,EAAyC5jB,YAA5C,iBAAG,EAA+C6nB,qBAAlD,iBAAG,EAA8DgG,yBAAjE,aAAG,EAAiFja,OAkJtG,OACE,kBAACkP,GAAYM,SAAb,CAAsBjhB,MAAOA,GAC1BqpB,EAEG,kBAAC,KAAD,CACEsC,cAjOmB,MAAgC,IAAD,gEAC1D,MAAM7J,EAAc4F,SAAH,UAAGA,EAAetC,wBAAlB,iBAAG,EAAiC3D,cAApC,aAAG,EAAyC5jB,KAGvD+tB,EAAmB9J,SAAH,UAAGA,EAAa4D,qBAAhB,iBAAG,EAA4BmG,oBAA/B,aAAG,EAA0Cpa,MAC7Dqa,GAAiBhK,SAAA,UAAAA,EAAauD,kBAAb,eAAyBmF,cAAe,KACzDuB,EAAyBH,EAAiBlf,MAAKlO,GAAQA,EAAKS,OAAS6sB,IAGpEE,EAAelK,SAAH,UAAGA,EAAa4D,qBAAhB,iBAAG,EAA4BuG,eAA/B,aAAG,EAAqCxa,MACpDya,GAAYpK,SAAA,UAAAA,EAAauD,kBAAb,eAAyBsF,sBAAuB,KAC5DwB,EAAoBH,EAAatf,MAAKlO,GAAQA,EAAKS,OAASitB,IAG7DE,EAA0BtK,SAAH,UAAGA,EAAa4D,qBAAhB,iBAAG,EAA4B2G,4BAA/B,aAAG,EAAkD5a,MAC5E6a,GAAwBxK,SAAA,UAAAA,EAAauD,kBAAb,eAAyBuF,wBAAyB,KAC1E2B,EAAgCH,EAAwB1f,MAAKlO,GAAQA,EAAKS,OAASqtB,IAEnFE,GAAY1K,SAAA,UAAAA,EAAauD,kBAAb,eAAyB6E,6BAA8B,GAIzE,OAFAvC,EAAoB8E,SAAU3K,SAAA,UAAAA,EAAayD,gBAAb,eAAuB9T,QAAS,GAEvD,CACLkY,eAAgB7H,aAAF,EAAEA,EAAa6H,eAC7BtE,WAAY,CACVuE,UAAU9H,SAAA,UAAAA,EAAauD,kBAAb,eAAyBuE,WAAY,GAC/CE,aAAahI,SAAA,UAAAA,EAAauD,kBAAb,eAAyByE,cAAe,GACrD4C,UAAU5K,SAAA,UAAAA,EAAauD,kBAAb,eAAyBqH,WAAY,GAC/CxC,2BAA6B5K,GAAWkN,EAAU3qB,MAAM,KAAK,IAAM,GAAI,cAAgB,GACvFwoB,WAC0C,QAAxCvI,SAAA,UAAAA,EAAauD,kBAAb,eAAyBgF,YAEvB,YAEGvI,SAAD,UAACA,EAAauD,kBAAd,aAAC,EAAyBgF,aAAYsC,WAC5CnC,aAAauB,aAAA,EAAAA,EAAwB5J,OAAQ,KAC7CwI,qBAAqBwB,aAAA,EAAAA,EAAmBhK,OAAQ,KAChDyI,uBAAuB2B,aAAA,EAAAA,EAA+BpK,OAAQ,KAC9DyK,gBAAgB9K,SAAA,UAAAA,EAAauD,kBAAb,eAAyBuH,iBAAkB,GAC3D/B,QAAS,CACPrtB,GAAIskB,SAAF,UAAEA,EAAauD,kBAAf,iBAAE,EAAyBwF,eAA3B,aAAE,EAAkCrtB,GAEtCqvB,YAAY/K,SAAA,UAAAA,EAAauD,kBAAb,mBAAyBwF,eAAzB,eAAkCgC,aAAc,GAC5DC,QAAQhL,SAAA,UAAAA,EAAauD,kBAAb,mBAAyBwF,eAAzB,eAAkCiC,SAAU,GAEpD7tB,MAAM6iB,SAAA,UAAAA,EAAauD,kBAAb,mBAAyBwF,eAAzB,eAAkC5rB,OAAQ,KAGpDqmB,UAAW,CACT2F,sBAAsBnJ,SAAA,UAAAA,EAAawD,iBAAb,eAAwB2F,uBAAwB,IAExEzF,wBAAyB,CACvB/T,OAAOqQ,SAAA,UAAAA,EAAa0D,+BAAb,eAAsC/T,QAAS,IAExD8T,SAAU,CACR9T,OAAOqQ,SAAA,UAAAA,EAAayD,gBAAb,eAAuB9T,QAAS,IAEzCkU,sBAAuB,CAErBlU,OAAOqQ,SAAA,UAAAA,EAAa6D,6BAAb,eAAoClU,MAAM1iB,KAAK0iB,GAAUA,EAAMsb,6BAA6B,IAErGtH,gBAAiB,CAEfhU,OAAOqQ,SAAA,UAAAA,EAAa2D,uBAAb,eAA8BhU,MAAM1iB,KAAK0iB,GAAUA,EAAMub,uBAAuB,CAAC,OAkKrEC,GACfC,SArJepiB,MACvBrB,EADuB,KAGnB,IAAD,kBADH,cAAE0jB,GACC,EAEH,MAAMC,EAAsBjhC,aAAMsd,GAElC,IAAI4jB,GAAkB,EAqC4B,IAAD,GAnCjDD,EAAoB7H,SAAS9T,MAAQ2b,EAAoB7H,SAAS9T,MAAM1iB,KAAIyP,IAAS,IAAD,IAElF,MAAQ,CAIN4sB,YAAW,UAAE5sB,aAAF,EAAEA,EAAM4sB,mBAAR,QAAuB5sB,aAAvB,EAAuBA,EAAMS,KACxCosB,mBAAkB,UAAE7sB,aAAF,EAAEA,EAAM6sB,0BAAR,QAA8B,OAKpD+B,EAAoBzH,sBAAsBlU,MAAQ2b,EAAoBzH,sBAAsBlU,MAAM1iB,KAAIkQ,GAC7E,iBAATA,EAAoB,CAAE8tB,yBAA0B9tB,GAASA,IAGzEmuB,EAAoB3H,gBAAgBhU,MAAQ2b,EAAoB3H,gBAAgBhU,MAAM1iB,KAAIkQ,GACjE,iBAATA,EAAoB,CAAE+tB,mBAAoB/tB,GAASA,IAGnEmuB,EAAoB/H,WAAWmF,YAAc/gB,SAA7C,UAA6CA,EAAQ4b,kBAArD,aAA6C,EAAoBmF,YACjE4C,EAAoB/H,WAAWuH,eAAiBnjB,SAAhD,UAAgDA,EAAQ4b,kBAAxD,aAAgD,EAAoBuH,eACpEQ,EAAoB/H,WAAW6E,2BAA6B5K,GAAW7V,EAAO4b,WAAW6E,2BAA4B,cAErHkD,EAAoB/H,WAAWgF,WAAa3L,GAAoBjV,SAAD,UAACA,EAAQ4b,kBAAT,aAAC,EAAoBgF,YAG/E3L,GAAoBjV,SAAD,UAACA,EAAQ4b,kBAAT,aAAC,EAAoBgF,cAC3C+C,EAAoB/H,WAAWkF,cAAe,GAO5C6C,EAAoB/H,WAAWkF,qBAC3B7C,SAAN,UAAMA,EAAe1B,4BAArB,aAAM,EAAqC1D,QAAQ,CACjDnB,mBAAoB,CAClB9P,OAAQ,CACNic,YAAaF,EAAoB/H,WAAWwF,QAAQ5rB,KACpD8gB,YAAaqN,EAAoB/H,WAAWwF,QAAQ7M,QAAQgN,eAE5DD,WAAYqC,EAAoB/H,WAAWwF,QAAQE,aAMvDvI,mBAAmB,EACnBP,QAAU7F,IACR1M,QAAQ6d,KAAKnR,GACbiR,GAAkB,EAClBrF,GAAa,GACbE,EAAkB,MAElBjhC,OAAOa,OAAO,CACZC,IAAK,EACLC,KAAM,EACNghC,SAAU,YAGd3d,UAAYwX,IACVuK,EAAoB/H,WAAWwF,QAAQrtB,GAAKqlB,EAAShlB,KAAK2vB,eAM5DH,IAKA3O,GAAoBjV,SAAD,UAACA,EAAQ4b,kBAAT,aAAC,EAAoBgF,cAC1C+C,EAAoB/H,WAAWwF,QAAU,aAIpCuC,EAAoB/H,WAAWkF,aACS,OAA3C6C,EAAoB/H,WAAWwF,iBAC1BuC,EAAoB/H,WAAWwF,QAAQ5rB,YACvCmuB,EAAoB/H,WAAWwF,QAAQ7M,eACvCoP,EAAoB/H,WAAWwF,QAAQ4C,kBACvCL,EAAoB/H,WAAWwF,QAAQE,YAIhDqC,EAAoB5H,wBAAwB/T,MAAQ2b,EAAoB5H,wBAAwB/T,MAAM1iB,KAAIyP,IAAI,CAE1GkvB,qBAAsBlvB,EAAKkvB,yBAI/BhG,SAAA,UAAAA,EAAe9B,kCAAf,mBAA2CtD,eAA3C,gBAAqD,CACnDzkB,KAAMuvB,EACNrL,WAAY,KAAO,IAAD,KAEbtY,SAAH,UAAGA,EAAQ4b,kBAAX,iBAAG,EAAoBwF,eAAvB,aAAG,EAA6B5rB,QAC9BwK,EAAO4b,WAAWwF,QAAQ5rB,KAAO,IAGnCkuB,GAAc,GACdjF,EAAkB,MAElBE,GAAyB,GACzBnhC,OAAOa,OAAO,CACZC,IAAK,EACLC,KAAM,EACNghC,SAAU,YAGd3d,UAAW,KACT2c,GAAa,GAGiB,mBAAnBxkB,IACTA,EACEI,aACE,CAAC,QACD,CACEuJ,SAAU,cACVyb,OAAQ,qBAEVvlB,IAEJU,aAAe,gBAInBwe,kBAAkB,EAClBC,mBAAmB,MAWbiJ,iBAAkBnC,GAElB,oCACG9vB,IAILA,MCxbH,MAAMyb,GAAgBpe,kBAAO4O,KAAKtL,UAAZtD,CAAH,4BAEHA,kBAAO2B,KAAP3B,CAAH,iQAEhB,QAAC,MAAEjQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOiT,GAAI,WAEpC7I,IAAG4H,SAAS,MASV1H,YAAO,UAAW,YAElBF,YAAG,OAWc6F,UAAOkf,GAAV,sCAChB,QAAC,MAAEnvB,GAAH,SAAeA,EAAM+mC,cAAc5c,WAGHla,UAAOC,IAAV,sCAC7B,QAAC,MAAElQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOwT,IAAK,OAGbvD,UAAOC,IAAV,4CACrB,QAAC,MAAElQ,GAAH,SAAeA,EAAM+mC,cAAcC,aAAaC,cAChD,QAAC,MAAEjnC,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOopB,GAAI,OAGVnZ,UAAOC,IAAV,oGAMED,kBAAOi3B,KAAPj3B,CAAH,+D,8CC/CnB,MAAMk3B,GAAcl3B,kBAAO4O,KAAKtL,UAAZtD,CAAH,2GACpB,QAAC,MAAEjQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOwQ,EAAG,EAAGD,GAAI,OAC9B,QAAC,MAAEvQ,GAAH,SAAeA,EAAMonC,mBAAmBC,YAAYlnC,cAC9C,QAAC,MAAEH,GAAH,SAAeA,EAAMonC,mBAAmBC,YAAY73B,eAI7D83B,GAAmBr3B,UAAOC,IAAV,2LAGzB9F,YAAG,MAMHA,YAAG,OA6BMm9B,IAxBct3B,UAAOC,IAAV,kIACb,QAAC,MAAElQ,GAAH,SAAeA,EAAMonC,mBAAmBC,YAAYG,YAAY5+B,SAUpDqH,UAAOkf,GAAV,qMAMhB/kB,YAAG,OAOqB6F,UAAOkf,GAAV,gNAMrB/kB,YAAG,MAIHA,YAAG,QAMMq9B,GAAgBx3B,UAAO3F,OAAV,8LACtBA,YAAO,OAAQ,YAIfF,YAAG,OAKO,QAAC,MAAEpK,GAAH,SAAeA,EAAMsK,OAAOkI,KAAKk1B,KAAK39B,GAAG49B,KAE1C,QAAC,MAAE3nC,GAAH,SAAeA,EAAMsK,OAAOkI,KAAKk1B,KAAK39B,GAAG69B,KAIzCC,GAA2B53B,UAAOC,IAAV,2GACjC,QAAC,MAAElQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAO+T,GAAI,OAM3B+zB,GAAkB73B,kBAAOw3B,GAAPx3B,CAAH,kDAIf83B,GAAc93B,kBAAO4O,KAAK6K,IAAZzZ,CAAH,qCACpB,QAAC,MAAEjQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOuQ,GAAI,CAAEE,GAAI,EAAGpG,GAAI,QAGxC29B,GAAQ/3B,kBAAO4O,KAAK2K,KAAZvZ,CAAH,4BAELg4B,GAAkBh4B,UAAOe,GAAV,qEAKfk3B,GAAuBj4B,UAAOO,EAAV,qEAKpB23B,GAAoBl4B,UAAOC,IAAV,4dAUtB,QAAC,MAAElQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAO+T,GAAI,OACd,QAAC,MAAE/T,GAAH,SAAeA,EAAMonC,mBAAmBC,YAAYe,kBAAkB54B,eAI5F,QAAC,MAAExP,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOsQ,GAAI,OAkB/B+3B,GAAYp4B,UAAO3F,OAAV,qPAClBA,YAAO,UAAW,aAIlB,QAAC,MAAEtK,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOsQ,GAAI,MAGpClG,YAAG,OAKO,QAAC,MAAEpK,GAAH,SAAeA,EAAMsK,OAAOkI,KAAKk1B,KAAK39B,GAAG49B,KAE1C,QAAC,MAAE3nC,GAAH,SAAeA,EAAMsK,OAAOkI,KAAKk1B,KAAK39B,GAAG69B,K,sBC/I/C,MAAMU,GAAWr4B,kBAAO2B,KAAP3B,CAAH,iLAKR,QAAC,MAAEjQ,GAAH,SAAeA,EAAMuoC,mBAAmB3/B,SASxC4/B,GAA2Bv4B,kBAAO+3B,GAAP/3B,CAAH,uFAGjC7F,YAAG,OAKMq+B,GAA2Bx4B,kBAAO4O,KAAK2K,KAAZvZ,CAAH,oGAMxBy4B,GAAaz4B,UAAOC,IAAV,yDAGnB,QAAC,MAAElQ,GAAH,SAAeqQ,YAAQ,CACvBrQ,QACAgsB,GAAI,CACFvb,GAAG,GAAD,OAAKzQ,EAAMwvB,KAAKC,OAAOllB,KAAKkG,GAA5B,MACFpG,GAAI,QAKGs+B,GAA0B14B,UAAO3F,OAAV,iQAChCA,YAAO,OAAQ,WAMfF,YAAG,MACDE,YAAO,UAAW,WAOpBF,IAAG4H,SAAS,OAKH42B,GAA+B34B,UAAOmM,KAAV,wF,6CCtElC,MAAM7I,GAAYtD,UAAOC,IAAV,0DAClB,QAAC,MAAElQ,GAAH,SAAeE,YAAQ,CAAEF,YACb4I,YAAM,qBAKTigC,IAFgB54B,kBAAO4O,KAAKtL,UAAZtD,CAAH,4BAEGA,UAAOC,IAAV,sGAEA,QAAC,MAAElQ,GAAH,SAAeA,EAAMonC,mBAAmB0B,cAAct5B,gBAInEu5B,GAAiB94B,UAAOC,IAAV,iJACvB,QAAC,MAAElQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAO+T,GAAI,OAQ3Bi1B,GAAgB/4B,kBAAOi3B,KAAPj3B,CAAH,+DAUbg5B,IALuBh5B,kBAAO4O,KAAKtL,UAAZtD,CAAH,2DAC7B,QAAC,MAAEjQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOsQ,GAAI,EAAGC,GAAI,EAAGC,EAAG,OAIvBP,kBAAO4O,KAAKtL,UAAZtD,CAAH,2DACvB,QAAC,MAAEjQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAO+T,GAAI,EAAGP,GAAI,EAAGhD,EAAG,QAIxC04B,GAAkBj5B,kBAAO4O,KAAKtL,UAAZtD,CAAH,2DACxB,QAAC,MAAEjQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOsQ,GAAI,EAAGC,GAAI,EAAGC,EAAG,OAQxC24B,IAJUl5B,UAAOe,GAAV,oCAChBoe,KAGyBnf,kBAAO2R,WAAP3R,CAAH,mCACxB,QAAC,MAAEjQ,GAAH,SAAeqQ,YAAQ,CACvBrQ,QACAiT,GAAI,QClBSm2B,I,YAAAA,GA5BqChuB,IAClD,MAAMtE,EAAYsE,aAAH,EAAGA,EAAOtE,UACnBuyB,EAAkB30B,YAAkB,yBAA0B,kDAEpE,OACE,kBAAC,GAAD,KACE,kBAACm0B,GAAD,KACE,kBAACK,GAAD,KACE,kBAACjB,GAAD,4BACA,kBAACC,GAAD,uKAGA,kBAACA,GAAD,KACE,uDADF,8IAEuC,oGAFvC,KAIA,kBAACf,GAAD,KACE,kBAACI,GAAD,KAAe8B,GACf,kBAAClB,GAAD,KACE,kBAACmB,GAAA,EAAD,CAAajxB,KAAK,qBAAqBvB,UAAWA,U,WCvBpC7G,UAAOs5B,MAAV,ocACrBvpB,KACkB,QAAC,MAAEhgB,GAAH,SAAeA,EAAMwkB,KAAK+kB,MAAMppC,cAEhC,QAAC,MAAEH,GAAH,SAAeA,EAAMwkB,KAAK+kB,MAAM5jC,UAC3C,QAAC,MAAE3F,GAAH,SAAeA,EAAMwkB,KAAK+kB,MAAM3gC,SAExB,QAAC,MAAE5I,GAAH,SAAeA,EAAMwkB,KAAK+kB,MAAMtgC,eAM/B,QAAC,MAAEjJ,GAAH,SAAeA,EAAMwkB,KAAK+kB,MAAMvgC,eAI/B,QAAC,MAAEhJ,GAAH,SAAeA,EAAMwkB,KAAK+kB,MAAMtgC,eAI7B,QAAC,MAAEjJ,GAAH,SAAeA,EAAMwkB,KAAK+kB,MAAMC,sBACpC,QAAC,MAAExpC,GAAH,SAAeA,EAAMwkB,KAAK+kB,MAAME,kBACvC,QAAC,MAAEzpC,GAAH,SAAeA,EAAMwkB,KAAK+kB,MAAMG,iBAIzC,QAAC,SAAEC,GAAH,SAAkBA,GAAY1pC,cAAJ,gJAER,QAAC,MAAED,GAAH,SAAeA,EAAMwkB,KAAK+kB,MAAMK,eAE7B,QAAC,MAAE5pC,GAAH,SAAeA,EAAMwkB,KAAK+kB,MAAMM,uBA/BlD,MAqCMC,GAA0B75B,UAAOC,IAAV,oGAChC2C,KACO,QAAC,MAAE7S,GAAH,SAAeA,EAAMwkB,KAAK8W,MAAM1yB,SAErB,QAAC,cAAEmhC,GAAH,SAAuBA,EAAe,UAAY,iBAG3DC,GAAiB/5B,UAAOO,EAAV,4CChCZy5B,I,SAAAA,GARmC,IAA0C,IAAzC,cAAEF,GAAgB,EAAlB,SAAyBn3B,GAAe,EACzF,OACE,kBAACk3B,GAAD,CAAyBC,cAAeA,GACtC,kBAACC,GAAD,KAAiBp3B,K,yCCThB,MAAMs3B,GAAgBj6B,UAAOk6B,MAAV,oiEAWpB//B,YAAG,OAyBmB,QAAC,MAAEpK,GAAH,SAAeA,EAAMwkB,KAAK4lB,MAAMjqC,cAEhC,QAAC,MAAEH,GAAH,SAAeA,EAAMwkB,KAAK4lB,MAAMzkC,UAapC,QAAC,MAAE3F,GAAH,SAAeA,EAAMwkB,KAAK4lB,MAAMjqC,cAWhC,QAAC,MAAEH,GAAH,SAAeA,EAAMwkB,KAAK4lB,MAAMphC,eAKhC,QAAC,MAAEhJ,GAAH,SAAeA,EAAMwkB,KAAK4lB,MAAMnhC,eAM5B,QAAC,MAAEjJ,GAAH,SAAeA,EAAMwkB,KAAK4lB,MAAMC,sBACpC,QAAC,MAAErqC,GAAH,SAAeA,EAAMwkB,KAAK4lB,MAAME,kBAI5B,QAAC,MAAEtqC,GAAH,SAClBA,EAAMwkB,KAAK4lB,MAAMG,2BACH,QAAC,MAAEvqC,GAAH,SAAeA,EAAMwkB,KAAK4lB,MAAMI,uBAI5B,QAAC,MAAExqC,GAAH,SAClBA,EAAMwkB,KAAK4lB,MAAMK,2BACH,QAAC,MAAEzqC,GAAH,SAAeA,EAAMwkB,KAAK4lB,MAAMM,uBAI5B,QAAC,MAAE1qC,GAAH,SAClBA,EAAMwkB,KAAK4lB,MAAMZ,sBACH,QAAC,MAAExpC,GAAH,SACdA,EAAMwkB,KAAK4lB,MAAMX,kBAKH,QAAC,MAAEzpC,GAAH,SAAeA,EAAMwkB,KAAK4lB,MAAMV,iBAI5B,QAAC,MAAE1pC,GAAH,SAAeA,EAAMwkB,KAAK4lB,MAAMjqC,cACpC,QAAC,MAAEH,GAAH,SAAeA,EAAMwkB,KAAK4lB,MAAMR,eAM3CE,GAA0B75B,UAAOC,IAAV,oDAChC2C,KACO,QAAC,MAAE7S,GAAH,SAAeA,EAAMwkB,KAAK8W,MAAM1yB,SAG9BohC,GAAiB/5B,UAAOO,EAAV,4C,4CClGpB,MAAMw4B,GAAgB/4B,kBAAOi3B,KAAPj3B,CAAH,+DAKb06B,GAAkB16B,kBAAO26B,KAAP36B,CAAH,oCACxB+P,KAGE6qB,GAAa5qC,cAAH,0HACZ6qC,KACkB,QAAC,MAAE9qC,GAAH,SAAeA,EAAMonC,mBAAmB2D,SAASC,MAAM7qC,cAElE,QAAC,MAAEH,GAAH,SAAeA,EAAMonC,mBAAmB2D,SAASC,MAAMpiC,SAIrDqiC,GAAwDh7B,kBAAOi7B,KAAPj7B,CAAH,knBAC9D+P,IAGemrB,KAKbN,IAGA,QAAC,+BAAEO,GAAH,SACFA,GAAkCnrC,cAAJ,+DAQrB,QAAC,MAAED,GAAH,SAAeA,EAAMonC,mBAAmB2D,SAASM,UAAUziC,SAKlE,QAAC,eAAE0iC,GAAH,QAA2C,WAAnBA,GAA+BrrC,cAA/B,qEAiBjBsrC,GAA0Bt7B,UAAO2P,GAAV,+OAChCC,KAUEgrB,IACO,QAAC,MAAE7qC,GAAH,SAAeA,EAAMwkB,KAAK2lB,MAAMvhC,SAMhC4iC,GAAY,CACvBC,UAAW,CACT3hC,WAAYqhC,KACZO,cAAe,iBACfC,WAAY,iBAEZ,iDAAkD,CAChDn8B,YAAY,GAAD,QAAK,QAAC,MAAExP,GAAH,SAAeA,EAAMonC,mBAAmB2D,SAASS,UAAUh8B,iBAI/Eo8B,OAAQ,CACN,aAAc,OAEd,uBAAwB,CACtBC,gBAAgB,GAAD,QAAK,QAAC,MAAE7rC,GAAH,SAAeA,EAAMonC,mBAAmB2D,SAASS,UAAU1iC,oBAEjF,0BAA2B,CACzB+iC,gBAAiB,gBAGrBC,eAAgB,GAChBzqB,IAAK,CACHvX,WAAYqhC,OAIHY,GAAiB97B,kBAAOi6B,GAAPj6B,CAAH,sKACvB+P,KAUSgsB,GAAmB/7B,UAAOC,IAAV,8EACH,QAAC,MAAElQ,GAAH,SAAeA,EAAMonC,mBAAmB2D,SAASkB,aAAaz8B,eAI3E08B,GAAmBj8B,UAAO3F,OAAV,mFACzB9B,KACO,QAAC,MAAExI,GAAH,SAAeA,EAAMonC,mBAAmB2D,SAASoB,aAAavjC,SC3HnEwjC,GAAYC,aAAWb,IAEvBc,GACN,CACEC,OAAQ,kBAACn0B,GAAA,QAAD,CAAM2B,YAAY,EAAM1B,KAAK,gBACrCmhB,OAAQ,kBAACphB,GAAA,QAAD,CAAM2B,YAAY,EAAM1B,KAAK,YAGjCm0B,GAAiB,IAAyC,IAAxC,SAAEC,EAAF,KAAYC,EAAZ,eAAkBC,GAAqB,EAChB,IAAD,EAA5C,OAAIF,GAAYG,MAAMC,QAAQH,aAAd,EAAcA,EAAMtzB,OAEhC,kBAACmyB,GAAD,KACGmB,SADH,UACGA,EAAMtzB,aADT,aACG,EAAajR,KAAIiR,GAAS,4BAAI,8BAAOuzB,EAAevzB,QAKpD,MAkLM0zB,I,2BAAAA,GA1J4B1xB,IACzC,MAAM,UACJzE,EADI,eAEJg2B,EAAkBf,KAAD,mCAAYA,aAAZ,EAAYA,EAAQzB,aAApB,QAA6ByB,aAA7B,EAA6BA,EAAQvzB,YAArC,QAA6CuzB,IAF1D,aAGJmB,EAHI,GAIJn2B,EAJI,QAKJo2B,EALI,SAMJP,GAAW,EANP,KAOJp0B,EAPI,SAQJ40B,EARI,QASJC,EAAU,SATN,OAUJC,EAAS,SAVL,QAWJ52B,EAXI,UAYJ62B,EAAY,SAZR,YAaJC,EAbI,qBAcJC,EAdI,8BAeJC,GAAgC,EAf5B,aAgBJC,EAhBI,cAiBJzD,GAAgB,KACb0D,GACDryB,GAEG+a,EAAMuX,GAAW74B,oBAAS,IAC1B84B,EAAcC,GAAmB/4B,mBAAS,IAE3C0W,EAAU6gB,KAEVyB,EAA4BriB,KAAW,WAAY7U,IAEnD,cAAEm3B,EAAF,aAAiBC,EAAjB,cAA+BC,GAAkBC,eACjDvB,EAAOr0B,EAAO01B,EAAa11B,GAAQ,KACnCsxB,MAAe+C,aAAA,EAAAA,EAAMwB,YAAWxB,aAAjB,EAAiBA,EAAMyB,mBAAmBzB,aAA3C,EAA2CA,EAAMpR,QAC/DphB,EAvCkB,iBADDk0B,EAwCc1B,aAAD,EAACA,EAAMpR,OAtClC8S,GAAY,IAGdA,aAAA,EAAAA,EAAQ,UAAGxrB,OAAO2E,KAAK6mB,UAAf,aAAG,EAAwB,MAAO,GAL1BA,MAAa,EA0CpC,OACE,oCACE,kBAACnD,GAAD,eACE1f,QAASA,EACT5U,UAAWk3B,EACXzC,+BAAgCmC,EAChCc,qBAAsBf,EACtBgB,eAAe,EACf3B,eAAgBA,EAChBK,QAASA,EACTP,SAAUA,EACVU,OAASrL,IACPqL,EAAOrL,GACP4L,GAAQ,IAEVR,QAAS,CAACpL,EAAOyM,KACfrB,EAAQpL,EAAOyM,GACfb,GAAQ,GACRE,EAAgB,KAElBX,SAAU,CAACnsC,EAAGsY,EAAOm1B,KACnB,OAAQA,GACN,IAAK,SACCnzB,aAAJ,EAAIA,EAAO/C,OACT21B,EACE5yB,EAAM/C,KACNm1B,UAjFOp0B,IACnBwzB,MAAMC,QAAQzzB,GACT,GAGK,OAAVA,EACK,QAIT8nB,aAAW,4IAuEqBsN,CAAgBp1B,IAIpCw0B,EAAgB,IAChB,MACF,IAAK,gBACL,IAAK,gBACH,GAAIxyB,aAAJ,EAAIA,EAAO/C,KAAM,CAAC,IAAD,EACf,MAAMo2B,EAAuB,OAAVr1B,EAAA,UACdA,aADc,EACdA,EAAOA,aADO,QACEA,EACjBgC,aAFe,EAEfA,EAAOszB,cAERD,aAAH,EAAGA,EAAY7H,YACboH,EACE5yB,EAAM/C,KACNo2B,aAFW,EAEXA,EAAY7H,YAGdoH,EACE5yB,EAAM/C,KACNo2B,GAINb,EAAgB,IAMhBb,GACFA,EAAajsC,EAAGsY,EAAOm1B,IAG3BpY,KAAMA,EACN5f,QAASA,EACT+0B,eAAgB8B,EAChBA,UAAWd,GAAWc,GACtBuB,YAAclkB,GACZ,kBAACkgB,GAAD,eACErP,MAAOqO,EACP/yB,GAAIA,EACJg4B,WAAY,IACPnkB,EAAOmkB,WACVC,aACE,oCACG7B,GAAW,kBAAC,GAAD,MACXviB,EAAOmkB,WAAWC,eAIzBxB,YAAaA,EACbyB,QAAQ,YACJrkB,EACAqjB,EAAcz1B,GAfpB,CAiBE40B,SACGnL,IAAD,aAAW8L,EAAgB9L,SAAD,UAACA,EAAOiN,qBAAR,aAAC,EAAsB31B,WAIvD41B,aAAc,CAACpD,EAAD,KAA2B,IAAlB,SAAEqD,GAAe,EAEtC,MAAMC,EAAwB1jB,KAAW,wBAAyB,WAAY,CAC5E,UAAayjB,IAGT9E,EAAQwC,EAAef,GAGvBuD,EAAoBxB,EAAeyB,aAAmBzB,EAAcxD,GAASA,EAEnF,OACE,oCACGmD,EACC,kBAACvB,GAAD,CAAgBp1B,UAAWu4B,GACzB,0BAAMG,wBAAyB,CAAEC,OAAQH,MAG3C,0BAAME,wBAAyB,CAAEC,OAAQH,QAI7C1B,IAGLF,GAAiC,kBAACf,GAAD,CAAgBC,SAAUA,EAAUC,KAAMA,EAAMC,eAAgBA,IAEjGhD,GAAY,kBAAC,GAAD,CAAcI,cAAeA,GAAgB7vB,K,UCtMzD,MAAMq1B,GAAmBt/B,kBAAO4O,KAAKtL,UAAZtD,CAAH,sLACzB,QAAC,MAAEjQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOgsB,GAAI,EAAG/Y,GAAI,EAAGmW,GAAI,CAAE3Y,GAAI,MAAO1G,GAAI,QAAUwG,GAAI,OACrE,QAAC,MAAEvQ,GAAH,SAAeA,EAAMonC,mBAAmBoI,gBAAgBC,iBAAiBtvC,cAEvE,QAAC,MAAEH,GAAH,SAAeA,EAAMonC,mBAAmBoI,gBAAgBC,iBAAiBjgC,eAGvF,QAAC,UAAE2xB,GAAH,SAAmBA,GAAalhC,cAAJ,sJACJ,QAAC,MAAED,GAAH,SAAeA,EAAMonC,mBAAmBoI,gBAAgBC,iBAAiBtO,UAAU3xB,eAC7F,QAAC,MAAExP,GAAH,SAAeA,EAAM+S,QAAQC,cAGzC5I,YAAG,SAKL4F,MAEE,QAAC,MAAEhQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOuQ,GAAI,OAI7B+2B,GAAmBr3B,UAAOC,IAAV,6IACzB,QAAC,MAAElQ,GAAH,SAAeqQ,YAAQ,CACzBrQ,QACAuQ,GAAI,CACFE,GAAI,EACJ1G,GAAI,EACJM,GAAI,EACJgf,GAAI,OAIJjf,YAAG,OAOMslC,GAAcz/B,UAAOC,IAAV,4IACpB,QAAC,MAAElQ,GAAH,SAAeqQ,YAAQ,CACzBrQ,QACA6R,GAAI,CACFpB,GAAI,EACJ1G,GAAI,EACJM,GAAI,GAENkG,GAAI,CACFE,GAAI,EACJ1G,GAAI,QAIG,QAAC,MAAE/J,GAAH,SAAeA,EAAMonC,mBAAmBoI,gBAAgBhI,YAAY5+B,SAUlE4Y,GAAUvR,UAAOkf,GAAV,0DAChBwgB,KACA,QAAC,MAAE3vC,GAAH,SAAeqQ,YAAQ,CACzBrQ,QACAsQ,GAAI,CACFG,GAAI,EACJ1G,GAAI,OAENwG,GAAI,CACFE,GAAI,EACJ1G,GAAI,QAOK09B,GAAgBx3B,UAAO3F,OAAV,sPACtBA,YAAO,OAAQ,YAOfF,YAAG,OAKD,QAAC,MAAEpK,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAO8Q,GAAI,OAC5B,QAAC,MAAE9Q,GAAH,SAAeA,EAAMsK,OAAOkI,KAAKk1B,KAAK39B,GAAG49B,KAC1C,QAAC,MAAE3nC,GAAH,SAAeA,EAAMsK,OAAOkI,KAAKk1B,KAAK39B,GAAG69B,KAIzCgI,GAAiB3/B,UAAOC,IAAV,gMACvB,QAAC,MAAElQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOsQ,GAAI,MAMpClG,YAAG,OAKMylC,GAAe5/B,UAAO3F,OAAV,6JACrBA,YAAO,UAAW,YAMlBF,YAAG,OAKM0lC,GAAa7/B,UAAO3F,OAAV,8UACnBA,YAAO,UAAW,YAMlB,QAAC,MAAEtK,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOuQ,GAAI,CAAEE,GAAI,EAAG1G,GAAI,OAEjDK,YAAG,OAKW,QAAC,MAAEpK,GAAH,SAAeA,EAAMonC,mBAAmBoI,gBAAgBO,WAAWC,SAAS7vC,cAO1E,QAAC,MAAEH,GAAH,SAAeA,EAAMonC,mBAAmBoI,gBAAgBO,WAAWE,OAAO9vC,cCxF/E+vC,OAzDuD,IAM/D,IANgE,YACrEC,EADqE,SAErEv9B,EAFqE,mBAGrEw9B,EAHqE,UAIrEC,KACGj1B,GACC,EAEJ,MAAMk1B,EAAc7T,qBAAW1C,IACzBwW,EAAiBD,aAAH,EAAGA,EAAcF,GAE/BI,EAAgBvC,gBAChB,QAAElV,EAAF,QAAWmV,EAAX,YAAoBuC,GAAgBD,EAe1C,OACE,qCACGD,aAAA,EAAAA,EAAgBpP,WACf,kBAACyO,GAAmBx0B,EAClB,kBAACy0B,GAAD,CACE,aAAYM,EACZr2B,QAASy2B,aAAF,EAAEA,EAAgBtO,aACzB+N,SAAUQ,aAAF,EAAEA,EAAeE,cAExBP,GAGH,kBAACL,GAAD,CACE,aAAYO,EACZl6B,KAAK,SACL2D,QA5BiBhZ,IAAc,IAAD,IACtCyvC,SAAA,UAAAA,EAAgBlO,kBAAhB,cAAAkO,EAA6BzvC,GAC7B0vC,SAAA,UAAAA,EAAeG,oBAAf,cAAAH,IAEKA,aAAD,EAACA,EAAezX,UAClB14B,OAAOa,OAAO,CACZC,IAAK,EACLC,KAAM,EACNghC,SAAU,YAqBN4N,UAAYjX,GAAWmV,GAAWuC,EAAc,IAAMD,aAA5C,EAA4CA,EAAeE,eAEpEL,IAIL,oCACGz9B,KC3CIg+B,OAZ2D,IAInE,IAJoE,SACzEh+B,EADyE,IAEzE4B,KACG4G,GACC,EACJ,OACE,kBAACm0B,GAAD,eAAkB34B,GAAIpC,GAAS4G,GAC5BxI,IC4DQi+B,I,kBAAAA,GA5DqD,IAM7D,IAAD,MAN+D,SACnEj+B,EADmE,KAEnE80B,EAFmE,kBAGnE3F,EAHmE,YAInE+O,EAJmE,WAKnEC,GACI,EACJ,MAAMT,EAAc7T,qBAAW1C,IACzBiX,EAAwBvU,qBAAWxC,IACnCsW,EAAc,UAAGD,aAAH,EAAGA,EAAcU,UAAjB,QAA2C,GAkB/D,OACE,kBAAC,GAAD,KACGtJ,GACC,kBAAC,GAAD,KACE,kBAACtvB,GAAA,QAAD,CACE2B,YAAY,EACZ1B,KAAMqvB,KAKX90B,GACC,kBAAC,GAAD,KACGA,KAIH29B,aAAD,EAACA,EAAgBpP,YAAa2P,GAC7B,kBAAC,GAAD,CACE,aAAYA,EACZh3B,QAnCmBhZ,IAGK,IAAD,EAA7B,OAFAA,EAAEo1B,iBAEE1gB,aAAau7B,EACR1wC,OAAO81B,KACZ4a,aADK,EACLA,EAAY5uB,KADP,UAEL4uB,aAFK,EAELA,EAAY36B,cAFP,QAEiB,WAItBm6B,aAAJ,EAAIA,EAAgB1O,cACX0O,aAAP,EAAOA,EAAgB1O,aAAa/gC,EAAGihC,QADzC,IA2BO+O,EACD,kBAAC14B,GAAA,QAAD,CACE2B,YAAY,EACZ1B,KAAK,qBC3DV,MAAM44B,GAAoBhhC,UAAOC,IAAV,sCAC1B,QAAC,UAAEixB,GAAH,SAAmBA,EACjBlhC,cAD0B,gQAGxB6qC,KACO,QAAC,MAAE9qC,GAAH,SAAeA,EAAMwkB,KAAK2lB,MAAMvhC,SAMzC3I,cAV0B,8IAYxB+f,KACO,QAAC,MAAEhgB,GAAH,SAAeA,EAAMonC,mBAAmB8J,aAAa/G,MAAMvhC,YAK7DuoC,GAAoBlhC,UAAOC,IAAV,wDAIjBkhC,GAAsBnhC,UAAOC,IAAV,6CACrB,QAAC,MAAElQ,GAAH,SAAeA,EAAMonC,mBAAmB8J,aAAaG,QAAQzoC,SAG3D0oC,GAAuBrhC,UAAOC,IAAV,oDAC7B2C,KACO,QAAC,MAAE7S,GAAH,SAAeA,EAAMonC,mBAAmB8J,aAAaK,SAAS3oC,SCC1D4oC,I,YAAAA,GA5BmC,IAM3C,IAN4C,SACjDC,EADiD,UAEjDtQ,GAAY,EAFqC,mBAGjDuQ,EAHiD,cAIjDC,EAJiD,MAKjDv4B,GACI,EACJ,MAAMw4B,IAAax4B,EACby4B,IAAgBJ,EAChBtH,EAAQuH,EAAqBh9B,YAAkBg9B,EAAoBC,GAAiBA,EACpFG,EAAmBp9B,YAAkB,0BAA2B,gBAEtE,OACE,oCACE,kBAACu8B,GAAD,CAAmB9P,UAAWA,GAAYgJ,GACzCyH,GACC,kBAACT,GAAD,KAAoB/3B,IAEpBw4B,GACA,kBAACR,GAAD,KAAsBU,GAEvBD,GACC,kBAACP,GAAD,KAAuBG,KC5B/B,MAAMM,GAAcr9B,YAAkB,oBAAqB,YAE9Cs9B,GAAmB/hC,UAAOk6B,MAAV,4OACzBW,KACO,QAAC,MAAE9qC,GAAH,SAAeA,EAAMwkB,KAAK2lB,MAAMvhC,SAQ9B,QAAC,MAAE5I,GAAH,SAAeA,EAAMwkB,KAAK+kB,MAAMG,iBAIhCuI,GAAmBhiC,UAAOmM,KAAV,sCACzB,QAAC,SAAEsM,GAAH,SAAkBA,GAAYzoB,cAAJ,wQAEL8xC,OAOZG,GAA2BjiC,UAAOmM,KAAV,sDCTtB+1B,OAX6B,IAA6B,IAA5B,SAAEv/B,KAAawI,GAAY,EACtE,MAAMsN,EAAWtN,aAAH,EAAGA,EAAOsN,SAClB0pB,EAAWh3B,aAAH,EAAGA,EAAOg3B,SACxB,OACE,kBAACJ,GAAqB52B,EACpB,kBAAC62B,GAAD,CAAkBvpB,SAAUA,GAAW9V,GACtCw/B,GAAY,kBAACF,GAAD,qB,SC8HJl+B,I,YAAAA,eACbE,IACA2sB,GACA3G,GAA0B,+BAHblmB,EA/G2D,IAKnE,IAAD,4BALqE,SACzEK,EADyE,kBAEzEg+B,EAFyE,UAGzEv7B,EAHyE,iBAIzE0nB,GACI,EACJ,MAAM8R,EAAc7T,qBAAqC1C,IACnDwW,EAAiBD,aAAH,EAAGA,EAAa9N,6BAC9B,OAAE3f,GAAWorB,eACbnP,EAAgBN,aAAH,EAAGA,EAAkB3D,OAClCyX,EAAmBxT,SAAH,UAAGA,EAAe7nB,YAAlB,iBAAG,EAAqB6nB,qBAAxB,iBAAG,EAAoCgG,yBAAvC,aAAG,EAAuDja,MAC1E0nB,EAA4BzT,SAAH,UAAGA,EAAe7nB,YAAlB,iBAAG,EAAqB6nB,qBAAxB,iBAAG,EAAoC0T,0BAAvC,aAAG,EAAwD3nB,MAEpFrW,EAAG,+BAIH2oB,EACH9oB,EAEGg+B,UAAqBI,cAFzB,EAEyBA,GAAUJ,kBAD/B7T,SADJ,UACIA,EAAkB3D,cADtB,aACI,EAA0B5jB,KAI1BkT,EAAUzV,YAAkB,gCAAiC,qCAC7Do8B,EAAcp8B,YAAkB,4BAA6B,UAC7Dg+B,EAAwBh+B,YAAkB,gCAAiC,qBAE3Ei+B,GAD2Bj+B,YAAkB,mCAAoC,qCACvDA,YAAkB,iCAAkC,kBAC9Ek+B,EAAiCl+B,YAAkB,wCAAyC,wBAElG,OACE,kBAAC,GAAD,CACEiC,UAAU,oCACVwqB,UAAWoP,aAAF,EAAEA,EAAgBpP,UAC3B3sB,IAAKA,GAEL,kBAAC,GAAD,CACEkzB,KAAK,SACLoJ,YAAaA,EACb/O,kBAAmBvtB,GAElB2V,IAGFomB,aAAA,EAAAA,EAAgBpP,WAEb,oCACE,kBAAC4G,GAAD,KACE,kBAACC,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAI4Y,GAAI,KAClC,kBAAC,GAAD,CAAWwpB,QAAQ,kCAAkCH,EACnD,kBAAC,KAAD,CAASlhC,QAtCL,8PAwCN,kBAAC,GAAD,CACEk9B,aAAc7rB,SAAF,UAAEA,EAAQ6b,iBAAV,aAAE,EAAmB2F,qBACjCztB,GAAG,iCACH61B,UAAU,EACVp0B,KAAK,iCACL9B,QAAO,UAAE+7B,aAAF,EAAEA,EAAkBnqC,KAAIyP,GAAQA,aAAJ,EAAIA,EAAMS,cAAtC,QAA+C,GACtDg1B,YAAasF,MAOnB,kBAAC5K,GAAD,KACE,kBAACC,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAI4Y,GAAI,KAClC,kBAAC,GAAD,CAAWwpB,QAAQ,iCAAnB,oCACE,kBAAC,KAAD,CAASrhC,QAtDC,6NAwDZ,kBAAC,GAAD,CACEk9B,aAAc7rB,SAAF,UAAEA,EAAQ+b,+BAAV,aAAE,EAAiC/T,MAC/C8hB,eAAiBf,GAAWA,aAAZ,EAAYA,EAAQ9E,qBACpCgM,kBAAmB,CAAClH,EAAQxyB,KAAUA,aAAA,EAAAA,EAAO0tB,yBAAyB8E,aAAhC,EAAgCA,EAAQ9E,sBAC9ElwB,GAAG,gCACHyB,KAAK,gCACL9B,QAASg8B,UAA6B,GACtClF,YAAauF,EACbtF,sBAAoB,OAO5B,oCACE,kBAACvF,GAAD,KACE,kBAACC,GAAD,KACE,kBAAC,GAAD,CACE0J,mBAAmB,gCACnBC,cAAc,oBACdv4B,MAAO+jB,SAAF,UAAEA,EAAeuB,iBAAjB,aAAE,EAA0B2F,yBAIvC,kBAAC0D,GAAD,KACE,kBAACC,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAI1G,GAAI,KAClC,kBAAC,GAAD,CACE2nC,mBAAmB,mCACnBC,cAAc,oCACdv4B,MAAOue,GAAsBwF,SAAD,UAACA,EAAeyB,+BAAhB,aAAC,EAAwC/T,MAAO,iCC7HvF,MAAMkoB,GAAe9iC,UAAOs5B,MAAV,ocACrBvpB,KACkB,QAAC,MAAEhgB,GAAH,SAAeA,EAAMwkB,KAAK+kB,MAAMppC,cAEhC,QAAC,MAAEH,GAAH,SAAeA,EAAMwkB,KAAK+kB,MAAM5jC,UAC3C,QAAC,MAAE3F,GAAH,SAAeA,EAAMwkB,KAAK+kB,MAAM3gC,SAExB,QAAC,MAAE5I,GAAH,SAAeA,EAAMwkB,KAAK+kB,MAAMtgC,eAM/B,QAAC,MAAEjJ,GAAH,SAAeA,EAAMwkB,KAAK+kB,MAAMvgC,eAI/B,QAAC,MAAEhJ,GAAH,SAAeA,EAAMwkB,KAAK+kB,MAAMtgC,eAI7B,QAAC,MAAEjJ,GAAH,SAAeA,EAAMwkB,KAAK+kB,MAAMC,sBACpC,QAAC,MAAExpC,GAAH,SAAeA,EAAMwkB,KAAK+kB,MAAME,kBACvC,QAAC,MAAEzpC,GAAH,SAAeA,EAAMwkB,KAAK+kB,MAAMG,iBAIzC,QAAC,SAAEC,GAAH,SAAkBA,GAAY1pC,cAAJ,gJAER,QAAC,MAAED,GAAH,SAAeA,EAAMwkB,KAAK+kB,MAAMK,eAE7B,QAAC,MAAE5pC,GAAH,SAAeA,EAAMwkB,KAAK+kB,MAAMM,uBAMlB55B,UAAOC,IAAV,yEAChC2C,KACO,QAAC,MAAE7S,GAAH,SAAeA,EAAMwkB,KAAK8W,MAAM1yB,SAIbqH,UAAOO,EAAV,4CCtBZwiC,OAnB8B53B,IAC3C,MAAO3B,EAAOizB,GAAQuG,aAAS73B,GAEzBuuB,MAAe+C,aAAA,EAAAA,EAAMwB,YAAWxB,aAAjB,EAAiBA,EAAMyB,mBAAmBzB,aAA3C,EAA2CA,EAAMpR,QAErE,OACE,oCACE,kBAAC,GAAD,eACEqO,SAAUA,GACNlwB,EACA2B,IAGLuuB,GAAY,kBAAC,GAAD,KAAe+C,EAAKpR,SC2CxB4X,OA1D8B93B,IAE3C,MAAO,CAAC,CAAG+3B,GAAWF,aAAS73B,IACzB,SAAEg4B,GAAaD,EAErB,OACE,oCACE,kBAAC,GAAD,eACEE,QAASvyC,IAAM,IAAD,IAEZ,MAAMc,EAAMd,SAAH,UAAGA,EAAGsV,cAAN,aAAG,EAAWgD,MACjBk6B,EAAG,UAAG1xC,aAAH,EAAGA,EAAKgF,cAAR,QAAkB,EAG3B,GACE,CACE,YACA,aACA,UACA,MACA,SACA,QACA,OACA,SACA,WACA,SACA,QACA,OACAsU,SAASpa,aAbX,EAaWA,EAAGW,KACd,OAIF,MAAM8xC,EACQ,OAAXzyC,aAAA,EAAAA,EAAGW,OAAgB,CAAC,EAAG,GAAGyZ,SAASo4B,IACjB,GAAnBloB,SAAStqB,EAAEW,QACT2pB,SAAStqB,EAAEW,KAET+xC,EAAW,CAAC,EAAG,IAAIt4B,SAASpa,aAAjB,EAAiBA,EAAG2yC,UAG/BF,IAAmBC,GAAcA,GAAkC,MAAtB5xC,EAAIizB,WAAW,GAChEue,EAASxxC,EAAIizB,UAAU,EAAGye,EAAM,IAK9B,CAAC,EAAG,GAAGp4B,SAASo4B,KAASE,GAC3BJ,EAAS,GAAD,OAAIxxC,EAAJ,QAIRwZ,M,WC2EGpH,I,YAAAA,eAAQ6sB,GAAR7sB,EAxH6C,IAQrD,IARsD,gBAC3D0/B,EAD2D,aAE3D3G,EAF2D,aAG3D7N,EAH2D,aAI3DwP,EAJ2D,mBAK3DiF,EAL2D,KAM3DC,GAAO,EANoD,YAO3DC,GAAc,GACV,EACJ,MAAOC,EAAYC,GAAiBl/B,mBAAS,KACtCm4B,EAASgH,GAAcn/B,oBAAS,GAEjCo/B,EAAyBv/B,YAC7B,2BACA,gBAEIw/B,EAA+Bx/B,YACnC,gCACA,kBAEIy/B,EAAgBz/B,YACpB,+BACA,oBAEI0/B,EAAoB1/B,YACxB,6BACA,kBAEI2/B,EAAsB3/B,YAC1B,gCACA,4BAgCF,OACE,qCACmB,IAAhBm/B,EACC,kBAAC,GAAD,CAAWhB,QAAQ,yBAChBoB,GAGH,kBAAC,GAAD,CAAWpB,QAAQ,wBAAwBnqB,UAAQ,GAChDurB,GAIL,kBAAC,GAAD,CACEt9B,UAAU,aACV29B,cAAgBnqC,GAAMA,EAAEsb,MAAM,EA9EhB,KA+EdknB,eAAiBf,GAAWA,aAAZ,EAAYA,EAAQvzB,KACpCy6B,kBAAmB,CAAClH,EAAQxyB,IAC1BwyB,EAAOhF,aAAextB,EAAMwtB,WAE9BhwB,GAAG,wBACHyB,KAAK,wBACL20B,QAASA,EACTP,UAAU,EACV0H,cAAeA,EACfI,cAAe,CAACC,EAAGp7B,KArDDq7B,MAAmB,GAAnBA,EAqD0Br7B,IA/ChD46B,GAAW,GAEX,UAAA9U,EAAaxD,eAAb,cAAAwD,EAAuB,CACrB3E,mBAAoB,CAClB9P,OAAQ,CACNiqB,WAAYD,IAGhBtZ,WAAY,KACV6Y,GAAW,IAEb3Y,QAAU7F,IACR1M,QAAQ6d,KAAKnR,IAEf/Q,UAAYwX,IAAc,IAAD,MACuB,GAA1C,UAACA,SAAD,UAACA,EAAUhlB,YAAX,iBAAC,EAAgB4T,aAAjB,aAAC,EAAuBjkB,cAAxB,QAAkC,GAAK,GACzCmtC,EAAc9X,SAAD,UAACA,EAAUhlB,YAAX,aAAC,EAAgB4T,QAGlC+Q,mBAAmB,KAvBnBmY,EAAc,KAoDZx9B,QAASu9B,EACTzG,YAAa6G,EACb9G,UAAU,SACVL,aAAcA,EACd4H,eAAgB,IAA4B,IAA3B,SAAE/hC,KAAa+H,GAAW,EACzC,MAAMi6B,EAAYC,IAAM9/B,SAClB+/B,EAAWD,IAAM9/B,SAEvB,OACE,kBAACggC,GAAA,EAAD,eAAOC,UAAW,EAAGn+B,IAAKi+B,GAAcn6B,GACrC/H,GACCghC,GACA,kBAAC5H,GAAD,CAAkBn1B,IAAK+9B,GACpBP,EAAqB,IACtB,kBAACnI,GAAD,CACEpyB,QAAS45B,EACTuB,YAAcnT,IACZA,EAAM5L,mBAGPyd,GAAsBS,MAOnC1F,aAAcA,QC5Hf,MAAMwG,GAAajlC,UAAOk6B,MAAV,ggEA6BK,QAAC,MAAEnqC,GAAH,SAAeA,EAAMwkB,KAAK4lB,MAAMjqC,cAEhC,QAAC,MAAEH,GAAH,SAAeA,EAAMwkB,KAAK4lB,MAAMzkC,UAYhC,QAAC,MAAE3F,GAAH,SAAeA,EAAMwkB,KAAK4lB,MAAMC,sBAWpC,QAAC,MAAErqC,GAAH,SAAeA,EAAMwkB,KAAK4lB,MAAMphC,eAKhC,QAAC,MAAEhJ,GAAH,SAAeA,EAAMwkB,KAAK4lB,MAAMnhC,eAK5B,QAAC,MAAEjJ,GAAH,SAAeA,EAAMwkB,KAAK4lB,MAAMjqC,cACpC,QAAC,MAAEH,GAAH,SAAeA,EAAMwkB,KAAK4lB,MAAME,kBAK5B,QAAC,MAAEtqC,GAAH,SAAeA,EAAMwkB,KAAK4lB,MAAMjqC,cACpC,QAAC,MAAEH,GAAH,SAAeA,EAAMwkB,KAAK4lB,MAAMI,uBAIhC,QAAC,MAAExqC,GAAH,SAAeA,EAAMwkB,KAAK4lB,MAAMI,uBAI5B,QAAC,MAAExqC,GAAH,SAAeA,EAAMwkB,KAAK4lB,MAAMjqC,cACpC,QAAC,MAAEH,GAAH,SAAeA,EAAMwkB,KAAK4lB,MAAME,kBAI5B,QAAC,MAAEtqC,GAAH,SAClBA,EAAMwkB,KAAK4lB,MAAMZ,sBACH,QAAC,MAAExpC,GAAH,SACdA,EAAMwkB,KAAK4lB,MAAMX,kBAKH,QAAC,MAAEzpC,GAAH,SAAeA,EAAMwkB,KAAK4lB,MAAMV,iBAI5B,QAAC,MAAE1pC,GAAH,SAAeA,EAAMwkB,KAAK4lB,MAAMjqC,cACpC,QAAC,MAAEH,GAAH,SAAeA,EAAMwkB,KAAK4lB,MAAMR,eAuC3CE,IAjCgB75B,kBAAOilC,GAAPjlC,CAAH,qmBAKF,QAAC,MAAEjQ,GAAH,SAAeA,EAAMwkB,KAAK4lB,MAAMjqC,cAY5B,QAAC,MAAEH,GAAH,SAAeA,EAAMwkB,KAAK4lB,MAAMC,sBAIhC,QAAC,MAAErqC,GAAH,SAClBA,EAAMwkB,KAAK4lB,MAAMG,2BAIC,QAAC,MAAEvqC,GAAH,SAClBA,EAAMwkB,KAAK4lB,MAAMK,2BAMYx6B,UAAOC,IAAV,oDAChC2C,KACO,QAAC,MAAE7S,GAAH,SAAeA,EAAMwkB,KAAK8W,MAAM1yB,UAG9BohC,GAAiB/5B,UAAOO,EAAV,4C,sBC9IpB,MAAM2kC,GAAqBllC,UAAOC,IAAV,qGAC3B8P,KA4BSo1B,IAtBmBnlC,UAAOk6B,MAAV,+NACzB/3B,MACO,QAAC,MAAEpS,GAAH,SAAeA,EAAMwkB,KAAK2lB,MAAMvhC,SAM9B,QAAC,MAAE5I,GAAH,SAAeA,EAAMwkB,KAAK+kB,MAAMG,gBAIvCoB,KAK0B76B,UAAOmM,KAAV,2DACzB0uB,KAI2B76B,UAAOC,IAAV,wDACxB2C,MCjBEwiC,IDqB+BplC,UAAOC,IAAV,sGAMJD,UAAO3F,OAAV,4bACL,QAAC,MAAEtK,GAAH,SAAeA,EAAMwkB,KAAKla,OAAOnK,cAG5C,QAAC,MAAEH,GAAH,SAAeA,EAAMwkB,KAAKla,OAAO1B,QACxC0sC,KAOoB,QAAC,MAAEt1C,GAAH,SAAeA,EAAMwkB,KAAKla,OAAOxB,mBAIjC,QAAC,MAAE9I,GAAH,SAAeA,EAAMwkB,KAAKla,OAAOirC,WAKjC,QAAC,MAAEv1C,GAAH,SAAeA,EAAMwkB,KAAKla,OAAOpB,oBAIjC,QAAC,MAAElJ,GAAH,SAAeA,EAAMwkB,KAAKla,OAAOk/B,sBAC5C,QAAC,MAAExpC,GAAH,SAAeA,EAAMwkB,KAAKla,OAAOo/B,iBCrDhC,IAA6B,IAA5B,SAAE92B,KAAawI,GAAY,EACxC,MAAO3B,EAAOizB,GAAQuG,aAAS73B,aAAD,EAACA,EAAO/C,MAChCm9B,GAAa9I,aAAA,EAAAA,EAAMpR,UAAUoR,aAAA,EAAAA,EAAMwB,WAAWxB,aAAjB,EAAiBA,EAAMyB,iBAAkB,eAAiB,GAE7F,OACE,kBAAC+G,GAAD,KACE,kBAAC,KAAD,eACEv+B,UAAS,6BAAwB6+B,GACjCr/B,KAAK,SACDsD,EACA2B,IAELxI,KA+BQ6iC,I,SAAAA,GA1B8Br6B,IAC3C,MAAMyP,EAAQzP,aAAH,EAAGA,EAAOyP,MACfxS,EAAO+C,aAAH,EAAGA,EAAO/C,KAEpB,OACE,oCACE,kBAAC88B,GAAD,CAAoBx+B,UAAU,kBAC3BkU,aADH,EACGA,EAAO1iB,KAAI,CAACyP,EAAMvR,KAAP,aACV,kBAACgvC,GAAD,eACE5zC,IAAK4E,EACLgS,KAAMA,EAENe,MAAK,UAAExB,aAAF,EAAEA,EAAMwB,aAAR,QAAiBxB,EAAKuyB,OACvB/uB,GAEHxD,EAAKuyB,UAGV,kBAAC,GAAD,CAAyB9xB,KAAMA,GAC7B,kBAAC,GAAD,KAAgB,kBAAC,KAAD,CAAcA,KAAMA,SC7CjBpI,UAAOC,IAAV,yJAAnB,MASMwlC,GAAmBzlC,UAAOC,IAAV,sDAIhBg8B,GAAmBj8B,UAAO3F,OAAV,oDACzB9B,KACO,QAAC,MAAExI,GAAH,SAAeA,EAAMonC,mBAAmB2D,SAASoB,aAAavjC,SCqiB1DoL,mBACbE,IACA2sB,GACA3G,GAA0B,qBAHblmB,EAvhBiD,IAIzD,IAAD,oGAJ2D,SAC/DK,EAD+D,kBAE/Dg+B,EAF+D,iBAG/D7T,IACI,EACJ,MAAM8R,GAAc7T,qBAAqC1C,IACnDwW,GAAiBD,cAAH,EAAGA,GAAa/N,mBAC9B,aACJmO,GADI,gBAEJiF,GAFI,cAGJ3H,GAHI,QAIJE,GAJI,OAKJrrB,IACEorB,eACEnP,GAAgBN,cAAH,EAAGA,GAAkB3D,OAElCrmB,GAAG,qBAGH2oB,GACH9oB,EAEGg+B,UAAqBI,cAFzB,EAEyBA,GAAUJ,kBAD/B7T,UADJ,UACIA,GAAkB3D,cADtB,aACI,EAA0B5jB,KAI1BkT,GAAUzV,YAAkB,yCAA0C,sBACtEkhC,GAAmBlhC,YAAkB,2BAA4B,gBACjEmhC,GAAwBnhC,YAAkB,iCAAkC,sBAC5EohC,GAA0BphC,YAAkB,mCAAoC,wBAChFqhC,GAAkBrhC,YAAkB,2BAA4B,uCAChEshC,GAAoBthC,YAAkB,4BAA6B,iBACnEuhC,GAA6BvhC,YAAkB,sCAAuC,2BACtFwhC,GAAuBxhC,YAAkB,+BAAgC,oBACzEyhC,GAAqBzhC,YAAkB,2CAA2C,gCAClF0hC,GAAgB1hC,YAAkB,wBAAyB,aAC3D2hC,GAAsB3hC,YAAkB,8BAA+B,mBACvEo8B,GAAcp8B,YAAkB,4BAA6B,UAC7Di+B,GAA0Bj+B,YAAkB,iCAAkC,iBAC9E4hC,GAAyB5hC,YAAkB,uCAAwC,+BACnF6hC,GAAiB7hC,YAAkB,8BAA+B,2BAClE8hC,GAAsB9hC,YAAkB,uBAAwB,YAChE+hC,GAA2B/hC,YAAkB,4BAA6B,uBAC1EgiC,GAAqBhiC,YAAkB,2BAA4B,wBAGnEiiC,IAAY7X,UAAA,UAAAA,GAAe7nB,YAAf,mBAAqB6nB,qBAArB,mBAAoC6X,iBAApC,eAA+C9rB,QAAS,GACpEma,IAAmBlG,UAAA,UAAAA,GAAe7nB,YAAf,mBAAqB6nB,qBAArB,mBAAoCmG,oBAApC,eAAkDpa,QAAS,GAC9E+rB,IAA0B9X,UAAA,UAAAA,GAAe7nB,YAAf,mBAAqB6nB,qBAArB,mBAAoCuG,eAApC,eAA6Cxa,QAAS,GAChFgsB,IAA8B/X,UAAA,UAAAA,GAAe7nB,YAAf,mBAAqB6nB,qBAArB,mBAAoC2G,4BAApC,eAA0D5a,QAAS,GAGjGisB,GAA2B3Z,UAAH,UAAGA,GAAesB,kBAAlB,aAAG,EAA2BmF,YACtDuB,GAAyBH,GAAiBlf,MAAKlO,GAAQA,EAAKS,OAASy+B,KACrEC,GAAmC5Z,UAAH,UAAGA,GAAesB,kBAAlB,aAAG,EAA2BsF,oBAC9DiT,GAAiCJ,GAAwB9wB,MAAKlO,GAAQA,EAAKS,OAAS0+B,KAEpFE,GAAqC9Z,UAAH,UAAGA,GAAesB,kBAAlB,aAAG,EAA2BuF,sBAChEkT,GAAmCL,GAA4B/wB,MAAKlO,GAAQA,EAAKS,OAAS4+B,KAI1FrR,IAAYzI,UAAA,UAAAA,GAAesB,kBAAf,eAA2B6E,6BAA8B,GAOrE6T,GAAe,KACnBnJ,GAAc,wBAAyB,IAAI,GAC3CA,GAAc,0BAA2B,IAAI,GAC7CA,GAAc,4CAA6C,IAAI,GAC/DA,GAAc,gCAAiC,IAAI,GAGnD2H,GAAgB,yBAAyB,GACzCA,GAAgB,2BAA2B,GAC3CA,GAAgB,6CAA6C,GAC7DA,GAAgB,+BAA+B,GAC/CA,GAAgB,6BAA6B,GAC7CA,GAAgB,iCAAiC,IAG7CjC,GAAkB,KACtByD,KACAnJ,GACE,2BACA,GACA,IAcJ74B,qBAAU,KAAO,IAAD,KAEZo7B,cAAA,EAAAA,GAAgBpP,aAChB+M,UADA,UACAA,GAASzP,kBADT,aACA,EAAqBgF,cACpBiN,IAED1C,GAAc,wBAAyB,IAAI,GAIN,WAAnCnrB,UAAA,UAAAA,GAAQ4b,kBAAR,eAAoBgF,cACtBuK,GAAc,sBAAuB,IAAI,GACzCA,GAAc,sBAAuB,IAAI,GACzCA,GAAc,yBAA0B,IAAI,GAC5CA,GAAc,qBAAsB,MAAM,GAC1CA,GAAc,2BAA2B,GAAO,MAGlD,CAACnrB,UAAD,UAACA,GAAQ4b,kBAAT,aAAC,EAAoBgF,aAIvB,MAAM2T,GAA8B,KAAO,IAAD,GACnClJ,UAAD,UAACA,GAASzP,kBAAV,aAAC,EAAqBgF,aACxBkS,GAAgB,yBAAyB,IAI7C,OACE,kBAAC,GAAD,CACEh/B,UAAU,0BACVwqB,UAAWoP,cAAF,EAAEA,GAAgBpP,UAC3B3sB,IAAKA,IAEL,kBAAC,GAAD,CACEkzB,KAAK,eACLoJ,YAAaA,GACb/O,kBAAmBvtB,IAElB2V,KAGFomB,cAAA,EAAAA,GAAgBpP,WAEb,oCACE,kBAAC4G,GAAD,KACE,kBAACC,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAI1G,GAAI,IAAOstC,QAASD,IAClD,kBAAC,GAAD,CACEvE,QAAQ,yBACRnqB,UAAQ,GACPktB,IAEH,kBAAC,GAAD,CACIh/B,GAAG,yBACHyB,KAAK,yBACLo0B,UAAU,EACVE,eAAiBf,GAAWA,aAAZ,EAAYA,EAAQzB,MACpC2I,kBAAmB,CAAClH,EAAQxyB,IACnBwyB,EAAOxyB,QAAUA,EAAMA,MAEhC7C,QAAO,UAAEyuB,GAAiB78B,KAAKmvC,IAAD,CAC5BnN,MAAOmN,aAAF,EAAEA,EAAQj/B,KACfe,MAAOk+B,aAAF,EAAEA,EAAQ/b,gBAFV,QAGA,GACP8R,YAAasF,GACbjE,aAAc,CAACvE,MAAOhF,cAAF,EAAEA,GAAwB9sB,KAAMe,MAAM+rB,cAAD,EAACA,GAAwB5J,UAIxF,kBAACwM,GAAD,KACA,kBAACC,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAI1G,GAAI,IAAOstC,QAASD,IAClD,kBAAC,GAAD,CACEvE,QAAQ,iCACRnqB,UAAQ,GACPmtB,IAEH,kBAAC,GAAD,CACIj/B,GAAG,iCACHyB,KAAK,iCACLo0B,UAAU,EACVE,eAAiBf,GAAWA,aAAZ,EAAYA,EAAQzB,MACpC2I,kBAAmB,CAAClH,EAAQxyB,IACnBwyB,EAAOxyB,QAAUA,EAAMA,MAEhC7C,QAAO,UAAEqgC,GAAwBzuC,KAAKmvC,IAAD,CACnCnN,MAAOmN,aAAF,EAAEA,EAAQj/B,KACfe,MAAOk+B,aAAF,EAAEA,EAAQ/b,gBAFV,QAGA,GACP8R,YAAasF,GACbjE,aAAc,CAACvE,MAAO6M,cAAF,EAAEA,GAAgC3+B,KAAMe,MAAM49B,cAAD,EAACA,GAAgCzb,SAGxG,kBAACyM,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAI1G,GAAI,IAAOstC,QAASD,IAClD,kBAAC,GAAD,CACEvE,QAAQ,mCACRnqB,UAAQ,GACPotB,IAEH,kBAAC,GAAD,CACIl/B,GAAG,mCACHyB,KAAK,mCACLo0B,UAAU,EACVE,eAAiBf,GAAWA,aAAZ,EAAYA,EAAQzB,MACpC2I,kBAAmB,CAAClH,EAAQxyB,IACnBwyB,EAAOxyB,QAAUA,EAAMA,MAEhC7C,QAAO,UAAEsgC,GAA4B1uC,KAAKmvC,IAAD,CACvCnN,MAAOmN,aAAF,EAAEA,EAAQj/B,KACfe,MAAOk+B,aAAF,EAAEA,EAAQ/b,gBAFV,QAGA,GACP8R,YAAasF,GACbjE,aAAc,CAACvE,MAAO+M,cAAF,EAAEA,GAAkC7+B,KAAMe,MAAM89B,cAAD,EAACA,GAAkC3b,UAK9G,kBAACwM,GAAD,KACE,kBAACC,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAI1G,GAAI,IAAOstC,QAASD,IAClD,kBAAC,GAAD,CACEvE,QAAQ,wBACRnqB,UAAQ,GACP4tB,IAEH,kBAAC,GAAD,CACEj+B,KAAK,wBACLwS,MAAO,CACL,CACEsf,MAAO,MACP/wB,MAAO,QAET,CACE+wB,MAAO,KACP/wB,MAAO,cASuC,SAAjCyJ,GAAO4b,WAAWgF,YAAyB5gB,GAAO4b,WAAWkF,cAClF,oCACE,kBAAC,GAAD,CACE7pB,QA1JQ,KACtBq9B,KACAnJ,GACE,2BACA,GACA,IAsJYiH,YAAanT,IACXA,EAAM5L,mBAGP6f,IAEH,kBAAChO,GAAD,KACE,kBAACC,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAI1G,GAAI,KAClC,kBAAC,GAAD,CAAW2e,UAAQ,EAACmqB,QAAQ,2BAA2BmD,IACvD,kBAAC,GAAD,CACEp/B,GAAG,0BACHyB,KAAK,8BAIyB,SAAjCwK,GAAO4b,WAAWgF,YAAyB5gB,GAAO4b,WAAWkF,cAC5D,oCACA,kBAACoE,GAAD,KACA,kBAACC,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAI1G,GAAI,KAClC,kBAAC,GAAD,CAAW2e,UAAQ,EAACmqB,QAAQ,6CAA6CoD,IACzE,kBAAC,GAAD,CACEr/B,GAAG,4CACHyB,KAAK,4CACLo0B,UAAU,EACVE,eAAiBf,GAAWA,aAAZ,EAAYA,EAAQzB,MACpC2I,kBAAmB,CAAClH,EAAQxyB,IAAUwyB,EAAOxyB,QAAUA,EAAMA,MAC7D7C,QAAO,UAAEogC,GAAUxuC,KAAKivB,IAAD,CACrB+S,MAAO/S,aAAF,EAAEA,EAAS/e,KAEhBe,MAAOge,aAAF,EAAEA,EAASgN,0BAHX,QAIA,GACPiJ,YAAasF,OAqCjB,kBAAC5K,GAAD,KACA,kBAACC,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAI1G,GAAI,KAChC,kBAAC,GAAD,CAAW8oC,QAAQ,iCAAiCqD,IACpD,kBAAC,GAAD,CACEt/B,GAAG,gCACHyB,KAAK,sCAUgB,SAAjCwK,GAAO4b,WAAWgF,YAChB,qCACI5gB,GAAO4b,WAAWkF,cAAgB,kBAACoE,GAAD,KAClC,kBAACC,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,MAC1B,kBAAC,GAAD,CACEmjC,MAAM,EACNlF,aAAc,CAACr2B,KAAMwK,UAAF,UAAEA,GAAQ4b,kBAAV,iBAAE,EAAoBwF,eAAtB,aAAE,EAA6B5rB,MAClDq7B,gBAAiBA,GACjB3G,aAAc,CAACyH,EAAGp7B,EAAOm1B,KACvB,OAAQA,GACN,IAAK,QACH4I,KACA,MACF,IAAK,gBACHA,KACAnJ,GACE,wBACA50B,aAFW,EAEXA,EAAOwtB,YACP,SAOV/jB,GAAO4b,WAAWkF,cACpB,kBAAC+R,GAAD,KACE,kBAAC,GAAD,CACA57B,QAAS45B,GACTuB,YAAanT,IACXA,EAAM5L,mBAGPigB,MAKL,oCACkC,SAAjCtzB,GAAO4b,WAAWgF,YAAyB,kBAACsE,GAAD,KAC1C,kBAACC,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,EAAG1G,GAAI,KACjC,kBAAC,GAAD,CAAW8oC,QAAQ,wCAAwCnqB,UAAQ,GAAE6tB,IACnE,kBAAC,GAAD,CACEl+B,KAAK,wCACLg1B,YAAa,aACb2C,UAAU,EACV75B,KAAK,OACLohC,UAAW,GACXC,UAAU,cAKlB,kBAACzP,GAAD,KACE,kBAACC,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAIpG,GAAI,KAClC,kBAAC,GAAD,CACEwoC,QAAQ,uBAEP2D,GACD,kBAAC,KAAD,CAAShlC,QArUJ,4HAuUP,kBAAC,GAAD,CACEoF,GAAG,sBACH2gC,UAAW,IACXl/B,KAAK,sBACLg1B,YAAaoJ,MAGiB,SAAjC5zB,GAAO4b,WAAWgF,YACjB,kBAACuE,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAIpG,GAAI,KACpC,kBAAC,GAAD,CACEwoC,QAAQ,yBACRnqB,UAAQ,GAEPguB,GACD,kBAAC,KAAD,CAASllC,QAnVH,8FAqVR,kBAAC,GAAD,CACEk9B,aAAc7rB,UAAF,UAAEA,GAAQ4b,kBAAV,aAAE,EAAoByE,YAClCtsB,GAAG,yBACHyB,KAAK,yBACLo0B,UAAU,EACVl2B,SAASuoB,UAAA,UAAAA,GAAe7nB,YAAf,mBAAqB6nB,qBAArB,mBAAoC2Y,oBAApC,eAAkD5sB,MAAM1iB,KAAIyP,GAAQA,aAAJ,EAAIA,EAAMS,SAAS,GAC5Fg1B,YAAaoJ,OAKnB,kBAAC1O,GAAD,KACE,kBAACC,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAIpG,GAAI,KAClC,kBAAC,GAAD,CACEwoC,QAAQ,uBAEPuD,GACD,kBAAC,KAAD,CAAS5kC,QAvWN,mFAyWL,kBAAC,GAAD,CACEk9B,aAAc7rB,UAAF,UAAEA,GAAQ4b,kBAAV,aAAE,EAAoBqH,SAClClvB,GAAG,sBACHyB,KAAK,sBACLo0B,UAAU,EACVl2B,SAASuoB,UAAA,UAAAA,GAAe7nB,YAAf,mBAAqB6nB,qBAArB,mBAAoC4Y,iBAApC,eAA+C7sB,MAAM1iB,KAAIyP,GAAQA,aAAJ,EAAIA,EAAMS,SAAS,GACzFg1B,YAAaoJ,MAGjB,kBAACzO,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAIpG,GAAI,KAClC,kBAAC,GAAD,CACEwoC,QAAQ,6BAEPwD,IAEH,kBAAC,GAAD,CACE3H,aAAc7rB,UAAF,UAAEA,GAAQ4b,kBAAV,aAAE,EAAoBuH,eAClCpvB,GAAG,4BACHyB,KAAK,4BACLo0B,UAAU,EACVl2B,SAASuoB,UAAA,UAAAA,GAAe7nB,YAAf,mBAAqB6nB,qBAArB,mBAAoC6Y,uBAApC,eAAqD9sB,MAAM1iB,KAAIyP,GAAQA,aAAJ,EAAIA,EAAMS,SAAS,GAC/Fg1B,YAAaoJ,UAU3B,kBAAC1O,GAAD,KACE,kBAACC,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAI1G,GAAI,KAClC,kBAAC,GAAD,CACE2nC,mBAAmB,iCACnBC,cAAc,qBACdv4B,OlC3WsBA,GkC2WO+jB,UAAD,UAACA,GAAesB,kBAAhB,aAAC,EAA2BgF,YlC1WxD,IAAVrqB,GACK,OAEK,IAAVA,GACK,UADT,MkC0WU,kBAAC4uB,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAI1G,GAAI,KAClC,kBAAC,GAAD,CACE2nC,mBAAmB,oBACnBC,cAAc,eACdv4B,MAAO+jB,UAAF,UAAEA,GAAesB,kBAAjB,aAAE,EAA2BmF,eAGtC,kBAACoE,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAI1G,GAAI,KAClC,kBAAC,GAAD,CACE2nC,mBAAmB,iCACnBC,cAAc,qBACdv4B,MAAO+jB,UAAF,UAAEA,GAAesB,kBAAjB,aAAE,EAA2BsF,uBAGtC,kBAACiE,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAI1G,GAAI,KAClC,kBAAC,GAAD,CACE2nC,mBAAmB,mCACnBC,cAAc,uBACdv4B,MAAO+jB,UAAF,UAAEA,GAAesB,kBAAjB,aAAE,EAA2BuF,yBAGtC,kBAACgE,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAI1G,GAAI,KAClC,kBAAC,GAAD,CACE2nC,mBAAmB,sBACnBC,cAAc,UACdv4B,MAAO+jB,UAAF,UAAEA,GAAesB,kBAAjB,iBAAE,EAA2BwF,eAA7B,aAAE,EAAoC5rB,QAG/C,kBAAC2vB,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAI1G,GAAI,KAClC,kBAAC,GAAD,CACE2nC,mBAAmB,8BACnBC,cAAc,0BACdv4B,MAAOsf,GAAWkN,cAAD,EAACA,GAAW3qB,MAAM,KAAK,GAAI,aAAeyd,GAAWkN,cAAD,EAACA,GAAW3qB,MAAM,KAAK,GAAI,aAAe,QAGnH,kBAAC+sB,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAI1G,GAAI,KAClC,kBAAC,GAAD,CACE2nC,mBAAmB,uBACnBC,cAAc,WACdv4B,MAAK,UAAE+jB,UAAF,UAAEA,GAAesB,kBAAjB,aAAE,EAA2BuE,gBAA7B,QAAyC7F,UAAzC,UAAyCA,GAAesB,kBAAxD,aAAyC,EAA2BqH,YAG7E,kBAACkC,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAI1G,GAAI,KAClC,kBAAC,GAAD,CACE2nC,mBAAmB,2BACnBC,cAAc,uBACdv4B,MAAO+jB,UAAF,UAAEA,GAAesB,kBAAjB,aAAE,EAA2ByE,eAGtC,kBAAC8E,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAI1G,GAAI,MAClC,kBAAC,GAAD,CACE2nC,mBAAmB,iBACnBC,cAAc,YACdv4B,MAAO+jB,UAAF,UAAEA,GAAesB,kBAAjB,aAAE,EAA2BqH,YAGtC,kBAACkC,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAI1G,GAAI,MAClC,kBAAC,GAAD,CACE2nC,mBAAmB,uBACnBC,cAAc,kBACdv4B,MAAO+jB,UAAF,UAAEA,GAAesB,kBAAjB,aAAE,EAA2BuH,oBlC1aZ5sB,UmC1BvBpF,YACbE,IACA2sB,GACA3G,GAA0B,YAHblmB,EAhFwC,IAKhD,IAAD,gBALkD,SACtDK,EADsD,kBAEtDg+B,EAFsD,UAGtDv7B,EAHsD,iBAItD0nB,GACI,EACJ,MAAM8R,EAAc7T,qBAAqC1C,IACnDwW,EAAiBD,aAAH,EAAGA,EAAa3R,SAC9BG,EAAgBN,aAAH,EAAGA,EAAkB3D,OAElC+c,EAAqB9Y,SAAH,UAAGA,EAAe7nB,YAAlB,iBAAG,EAAqB6nB,qBAAxB,iBAAG,EAAoCH,gBAAvC,aAAG,EAA8C9T,MAEnErW,EAAG,wBAGH2oB,EACH9oB,EAEGg+B,UAAqBI,cAFzB,EAEyBA,GAAUJ,kBAD/B7T,SADJ,UACIA,EAAkB3D,cADtB,aACI,EAA0B5jB,KAI1BkT,EAAUzV,YAAkB,+BAAgC,6BAC5Do8B,EAAcp8B,YAAkB,4BAA6B,UAC7DmjC,EAA+BnjC,YAAkB,oCAAqC,6BACtFojC,EAAsBpjC,YAAkB,yCAA0C,WAElF,OAAEmO,GAAWorB,eAEb8J,EAAcl1B,SAAH,UAAGA,EAAQ8b,gBAAX,aAAG,EAAkB9T,MAEtC,OACE,kBAAC,GAAD,CACElU,UAAU,6BACVwqB,UAAWoP,aAAF,EAAEA,EAAgBpP,UAC3B3sB,IAAKA,GAEL,kBAAC,GAAD,CACEkzB,KAAK,gBACLoJ,YAAaA,EACb/O,kBAAmBvtB,GAElB2V,IAGFomB,aAAA,EAAAA,EAAgBpP,WAEb,kBAAC4G,GAAD,KACE,kBAACC,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAI4Y,GAAI,KAClC,kBAAC,GAAD,CAAWwpB,QAAQ,kBAAkBgF,GACrC,kBAAC,GAAD,CACEnJ,aAAcqJ,aAAF,EAAEA,EAAa5vC,KAAKyP,IAAD,CAC7BnW,IAAKmW,EAAKogC,WACV3/B,KAAMT,EAAK4sB,gBAEbmI,eAAiBf,GAAWA,aAAZ,EAAYA,EAAQvzB,KACpCy6B,kBAAmB,CAAClH,EAAQxyB,KAAUA,aAAA,EAAAA,EAAO3X,QAAQmqC,aAAf,EAAeA,EAAQnqC,KAC7DmV,GAAG,iBACHyB,KAAK,iBACL9B,QAASqhC,UAAsB,GAC/BvK,YAAayK,EACbxK,sBAAoB,MAK1B,kBAACvF,GAAD,KACE,kBAACC,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAI1G,GAAI,KAClC,kBAAC,GAAD,CACE2nC,mBAAmB,4BACnBC,cAAc,gBACdv4B,MAAOue,GAAsBwF,SAAD,UAACA,EAAewB,gBAAhB,aAAC,EAAyB9T,MAAO,uBCjF7E,MAAMuhB,GAAYC,aAAWb,IAEvBc,GACN,CACEC,OAAQ,kBAACn0B,GAAA,QAAD,CAAM2B,YAAY,EAAM1B,KAAK,gBACrCmhB,OAAQ,kBAACphB,GAAA,QAAD,CAAM2B,YAAY,EAAM1B,KAAK,YAGjCm0B,GAAiB,IAAyC,IAAxC,SAAEC,EAAF,KAAYC,EAAZ,eAAkBC,GAAqB,EAChB,IAAD,EAA5C,OAAIF,GAAYG,MAAMC,QAAQH,aAAd,EAAcA,EAAMtzB,OAEhC,kBAACmyB,GAAD,KACGmB,SADH,UACGA,EAAMtzB,aADT,aACG,EAAajR,KAAIiR,GAAS,4BAAI,8BAAOuzB,EAAevzB,QAKpD,MAgKM6+B,I,yDAAAA,GAhJmC78B,IAChD,MAAM,UACJzE,EADI,eAEJg2B,EAAkBf,KAAD,mCAAYA,aAAZ,EAAYA,EAAQzB,aAApB,QAA6ByB,aAA7B,EAA6BA,EAAQvzB,YAArC,QAA6CuzB,IAF1D,aAGJmB,EAHI,GAIJn2B,EAJI,QAKJo2B,EALI,SAMJP,GAAW,EANP,KAOJp0B,EAPI,SAQJ40B,EARI,QASJC,EAAU,SATN,OAUJC,EAAS,SAVL,QAWJ52B,EAXI,UAYJ62B,EAAY,SAZR,YAaJC,EAbI,qBAcJC,EAdI,8BAeJC,GAAgC,EAf5B,aAgBJC,EAhBI,SAiBJ7D,GAAW,KACR8D,GACDryB,GAEG+a,EAAMuX,GAAW74B,oBAAS,IAC1B84B,EAAcC,GAAmB/4B,mBAAS,IAE3C0W,EAAU6gB,KAEVyB,EAA4BriB,KAAW,WAAY7U,IAEnD,cAAEm3B,EAAF,aAAiBC,EAAjB,cAA+BC,GAAkBC,eACjDvB,EAAOr0B,EAAO01B,EAAa11B,GAAQ,KAGzC,OACE,oCACE,kBAAC4yB,GAAD,eACE1f,QAASA,EACT5U,UAAWk3B,EACXzC,+BAAgCmC,EAChCc,qBAAsBf,EACtBgB,eAAe,EACf3B,eAAgBA,EAChBK,QAASA,EACTP,SAAUA,EACVU,OAASrL,IACPqL,EAAOrL,GACP4L,GAAQ,IAEVR,QAAS,CAACpL,EAAOyM,KACfrB,EAAQpL,EAAOyM,GACfb,GAAQ,GACRE,EAAgB,KAElBX,SAAU,CAACnsC,EAAGsY,EAAOm1B,KACnB,OAAQA,GACN,IAAK,SACCnzB,aAAJ,EAAIA,EAAO/C,OACT21B,EACE5yB,EAAM/C,KACNm1B,UAxEOp0B,IACnBwzB,MAAMC,QAAQzzB,GACT,GAGK,OAAVA,EACK,QAIT8nB,aAAW,4IA8DqBsN,CAAgBp1B,IAIpCw0B,EAAgB,IAChB,MACF,IAAK,gBACL,IAAK,gBACH,GAAIxyB,aAAJ,EAAIA,EAAO/C,KAAM,CAAC,IAAD,EACf,MAAMo2B,EAAuB,OAAVr1B,EAAA,UACdA,aADc,EACdA,EAAOA,aADO,QACEA,EACjBgC,aAFe,EAEfA,EAAOszB,aAEXV,EACE5yB,EAAM/C,KACNo2B,GAGJb,EAAgB,IAMhBb,GACFA,EAAajsC,EAAGsY,EAAOm1B,IAG3BpY,KAAMA,EACN5f,QAASA,EACT+0B,eAAgB8B,EAChBA,UAAWd,GAAWc,GACtBuB,YAAclkB,GACZ,kBAACkgB,GAAD,eACErP,MAAOqO,EACP/yB,GAAIA,EACJg4B,WAAY,IACPnkB,EAAOmkB,WACVC,aACE,oCACG7B,GAAW,kBAAC,GAAD,MACXviB,EAAOmkB,WAAWC,eAIzBxB,YAAaA,EACbyB,QAAQ,YACJrkB,EACAqjB,EAAcz1B,GAfpB,CAiBE40B,SACGnL,IAAD,aAAW8L,EAAgB9L,SAAD,UAACA,EAAOiN,qBAAR,aAAC,EAAsB31B,WAIvD41B,aAAc,CAACpD,EAAD,KAA2B,IAAlB,SAAEqD,GAAe,EAEtC,MAAMC,EAAwB1jB,KAAW,wBAAyB,WAAY,CAC5E,UAAayjB,IAGT9E,EAAQwC,EAAef,GAGvBuD,EAAoBxB,EAAeyB,aAAmBzB,EAAcxD,GAASA,EAEnF,OACE,oCACGmD,EACC,kBAACvB,GAAD,CAAgBp1B,UAAWu4B,GACzB,0BAAMG,wBAAyB,CAAEC,OAAQH,MAG3C,0BAAME,wBAAyB,CAAEC,OAAQH,QAI7C1B,IAGLF,GAAiC,kBAAC,GAAD,CAAgBd,SAAUA,EAAUC,KAAMA,EAAMC,eAAgBA,M,SChLjG,MAAMuL,GAAuBjoC,UAAOkoC,MAAV,8yCAWvBrN,KACO,QAAC,MAAE9qC,GAAH,SAAeA,EAAMwkB,KAAK2lB,MAAMvhC,SAkDpCwvC,GAAoBnoC,UAAO3F,OAAV,wMACxBA,YAAO,QAGQsY,OAAOC,OAAP,OAAcw1B,WAAd,IAAcA,MAAd,WAAcA,KAAgBhmC,eAA9B,cAAc,GAAyB3I,cAAcvB,KAAImwC,GAAM,UAAOA,EAAP,UAKtE,QAAC,MAAEt4C,GAAH,SAAeA,EAAMsK,OAAOkI,KAAKk1B,KAAK39B,GAAG49B,KAC1C,QAAC,MAAE3nC,GAAH,SAAeA,EAAMsK,OAAOkI,KAAKk1B,KAAK39B,GAAG69B,KAIzC2Q,GAAuBtoC,UAAO3F,OAAV,sJAKhB,QAAC,MAAEtK,GAAH,SAAeA,EAAMyK,OAAOsH,KAAKymC,gBAIrCC,GAAmBxoC,UAAO3F,OAAV,oTAC3BA,YAAO,OAAQ,YAKH,QAAC,MAAEtK,GAAH,SAAeA,EAAMyK,OAAOsH,KAAKymC,gBAI5B,QAAC,MAAEx4C,GAAH,SAAeA,EAAMonC,mBAAmBoI,gBAAgBO,WAAWC,SAAS7vC,cAO1E,QAAC,MAAEH,GAAH,SAAeA,EAAMonC,mBAAmBoI,gBAAgBO,WAAWE,OAAO9vC,cAKlFu4C,GAAsBzoC,UAAO3F,OAAV,0JAC1BA,YAAO,SAMC,QAAC,MAAEtK,GAAH,SAAeA,EAAMsK,OAAOkI,KAAKk1B,KAAK39B,GAAG49B,KAC1C,QAAC,MAAE3nC,GAAH,SAAeA,EAAMsK,OAAOkI,KAAKk1B,KAAK39B,GAAG69B,KAKzC+Q,GAAuB1oC,UAAO3F,OAAV,qNAC3B9B,eAEO,QAAC,MAAExI,GAAH,SAAeA,EAAMyK,OAAOsH,KAAKymC,gBAKhC,QAAC,MAAEx4C,GAAH,SAAeA,EAAMsK,OAAOkI,KAAKk1B,KAAK39B,GAAG49B,KAC1C,QAAC,MAAE3nC,GAAH,SAAeA,EAAMsK,OAAOkI,KAAKk1B,KAAK39B,GAAG69B,KAIrC,QAAC,MAAE5nC,GAAH,SAAeA,EAAMyK,OAAOsH,KAAK6mC,qBAIrCC,GAA8B5oC,UAAOC,IAAV,2NA+B3B4oC,IAhBwB7oC,UAAO3F,OAAV,gMAChCA,YAAO,OAAQ,YASb,QAAC,MAAEtK,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAO8Q,GAAI,OAC5B,QAAC,MAAE9Q,GAAH,SAAeA,EAAMsK,OAAOkI,KAAKk1B,KAAK39B,GAAG49B,KAC1C,QAAC,MAAE3nC,GAAH,SAAeA,EAAMsK,OAAOkI,KAAKk1B,KAAK39B,GAAG69B,KAIhB33B,UAAOC,IAAV,6DAmBpB8iC,IAdiB/iC,UAAOC,IAAV,yJASKD,UAAOC,IAAV,sDAKJD,UAAOs5B,MAAV,ocAClBvpB,KACkB,QAAC,MAAEhgB,GAAH,SAAeA,EAAMwkB,KAAK+kB,MAAMppC,cAEhC,QAAC,MAAEH,GAAH,SAAeA,EAAMwkB,KAAK+kB,MAAM5jC,UAC3C,QAAC,MAAE3F,GAAH,SAAeA,EAAMwkB,KAAK+kB,MAAM3gC,SAExB,QAAC,MAAE5I,GAAH,SAAeA,EAAMwkB,KAAK+kB,MAAMtgC,eAM/B,QAAC,MAAEjJ,GAAH,SAAeA,EAAMwkB,KAAK+kB,MAAMvgC,eAI/B,QAAC,MAAEhJ,GAAH,SAAeA,EAAMwkB,KAAK+kB,MAAMtgC,eAI7B,QAAC,MAAEjJ,GAAH,SAAeA,EAAMwkB,KAAK+kB,MAAMC,sBACpC,QAAC,MAAExpC,GAAH,SAAeA,EAAMwkB,KAAK+kB,MAAME,kBACvC,QAAC,MAAEzpC,GAAH,SAAeA,EAAMwkB,KAAK+kB,MAAMG,iBAIzC,QAAC,SAAEC,GAAH,SAAkBA,GAAY1pC,cAAJ,gJAER,QAAC,MAAED,GAAH,SAAeA,EAAMwkB,KAAK+kB,MAAMK,eAE7B,QAAC,MAAE5pC,GAAH,SAAeA,EAAMwkB,KAAK+kB,MAAMM,wBAO5CkP,GAAyB9oC,UAAOC,IAAV,kGAMtB8oC,GAA6B/oC,UAAOC,IAAV,0SAQjC46B,KACO,QAAC,MAAE9qC,GAAH,SAAeA,EAAMwkB,KAAK2lB,MAAMvhC,QAKvCoX,KACO,QAAC,MAAEhgB,GAAH,SAAeA,EAAMwkB,KAAK2lB,MAAMvhC,SACvC,IAA+B,IAA9B,qBAAEqwC,GAA2B,EAC9B,GAAIA,EACF,OAAOh5C,cAAP,4OAWKi5C,GAAqBjpC,UAAOC,IAAV,2EAC3B2C,KACO,QAAC,MAAE7S,GAAH,SAAeA,EAAMwkB,KAAK2lB,MAAMvhC,SAI9BqhC,GAAeh6B,UAAOO,EAAV,+FACrBqC,KACO,QAAC,MAAE7S,GAAH,SAAeA,EAAMwkB,KAAK8W,MAAM1yB,S,0BCpQ3C,MAAMwjC,GAAYC,cAAYrsC,IAAD,CAC3Bm5C,cAAe,CACbC,eAAgB,cAsKLC,OA1JU,IAKlB,IAAD,MALoB,mBACxBzB,EADwB,OAExB0B,EAFwB,KAGxB1hC,EAHwB,MAIxBvR,GACI,EACJ,MAAOkzC,EAAcC,GAAmB3kC,mBAASykC,aAC1CnjB,EAAMuX,GAAW74B,oBAAS,GAE3B0W,EAAU6gB,MAGT5H,EAAaiV,GAAkB5kC,mBAAS+C,aAAD,EAACA,EAAM4sB,cAC9CkV,EAAQC,GAAa9kC,mBAAS+C,aAAD,EAACA,EAAM6sB,oBAGrCmV,EAAchC,EAAqBA,EAAmBzvC,KAAKyP,GAAOA,EAAKS,OAAQ,IAE/E,OAAEwK,EAAF,cAAUmrB,EAAV,aAAyBD,GAAiBE,eAC1C51B,EAAI,yBAAqBhS,EAArB,gBACJqmC,EAAOr0B,EAAO01B,EAAa11B,GAAQ,KACnCsxB,MAAe+C,aAAA,EAAAA,EAAMwB,YAAWxB,aAAjB,EAAiBA,EAAMyB,mBAAmBzB,aAA3C,EAA2CA,EAAMpR,QAC/DphB,EA7BkB,iBADDk0B,EA8Bc1B,aAAD,EAACA,EAAMpR,OA5BlC8S,GAAY,IAGdA,aAAA,EAAAA,EAAQ,UAAGxrB,OAAO2E,KAAK6mB,UAAf,aAAG,EAAwB,MAAO,GAL1BA,MAAa,EAiCpC,MACMyL,EAAU,IADIh3B,SAAH,UAAGA,EAAQ8b,gBAAX,aAAG,EAAkB9T,OAOhCivB,EAAc,KAClBpM,GAAQ,IASJqM,EAA4BjY,IAChC,MAEMkY,EAFalY,EAAM1rB,OAAOgD,MAEC5N,QAAQ,gBAAiB,IAC1DmuC,EAAUK,IAIN7J,EAAcz7B,YAAkB,6BAA8B,UAC9DulC,EAAcvlC,YAAkB,6BAA8B,UAC9DwlC,EAAmBxlC,YAAkB,+CAAgD,gBACrFylC,EAAqBzlC,YAAkB,0CAA2C,8CA8ExF,OACE,kBAAC,WAAD,KACkB6kC,EA3Ed,wBAAI34C,MAAO,CAAC6E,OAAQ,KAClB,4BACE,kBAAC,GAAD,CACE2T,MAAOxB,aAAF,EAAEA,EAAM4sB,YACbmI,eAAiBf,GACRA,EAETa,UAAU,EACVp0B,KAAI,yBAAoBhS,EAApB,gBACJuQ,GAAE,yBAAoBvQ,EAApB,gBACFkQ,QAASqjC,UAAe,GACxBvM,YAAa,SACbC,sBAAsB,EACtB3D,WAAYA,IAEbA,GAAY,kBAAC,GAAD,KAAezvB,IAE9B,4BACE,kBAAC,GAAD,CACEtD,GAAE,yBAAoBvQ,EAApB,uBACF+S,MAAOsgC,EACPzM,SAAU8M,EACVxC,UAAW,IACXlK,YAAY,kBAIhB,4BACE,kBAACwL,GAAD,KACE,kBAACH,GAAD,CAAqB93C,MAAO,CAAC0C,YAAa,GAAIwB,MAAO,IAAKgV,QAAS,KAEjEk0B,EAAc,kBAAD,OAAmB3nC,EAAnB,uBAA+CqzC,GAC5D9hC,EAAK0hC,QAAS,EACdE,GAAgB,KAEf,kBAACphC,GAAA,QAAD,CAAMC,KAAK,WAEd,kBAACsgC,GAAD,CAAsB7+B,QAAS,KAE7Bk0B,EAAc,kBAAD,OAAmB3nC,EAAnB,uBAA+CqzC,GAC5D9hC,EAAK0hC,QAAS,EACdE,GAAgB,KAJlB,IAMKrJ,MAKL,4BAAI,4BACTv4B,aADS,EACTA,EAAM4sB,aAEP,6BACC5sB,aAAA,EAAAA,EAAM6sB,qBAAsByV,GAK7B,4BACE,kBAACrB,GAAD,KACE,kBAACN,GAAD,CAAsBz+B,QAAS,KAC7B0/B,GAAgB,KACf,kBAACphC,GAAA,QAAD,CAAM2B,YAAY,EAAM1B,KAAK,UAEhC,kBAACkgC,GAAD,CAAsBz+B,QAAS,KA5FvC4zB,GAAQ,KA+FE,kBAACt1B,GAAA,QAAD,CAAM2B,YAAY,EAAM1B,KAAK,eAUnC,kBAAC+hC,GAAA,EAAD,CACEjkB,KAAMA,EACN+W,QAAS4M,EACT,kBAAgB,qBAChB,mBAAiB,4BAEjB,kBAAChB,GAAD,KAAsB,kBAAC,GAAD,KAAUqB,IAChC,kBAACE,GAAA,EAAD,CAAe1jC,UAAW4U,EAAQ4tB,eAChC,kBAACV,GAAD,CAAkB3+B,QA1GP,KACnB+/B,EAAQvzC,OAAOD,EAAO,GACtB2nC,EAAc,iBAAkB6L,GAChCnM,GAAQ,KAwGGuM,GAEH,kBAACtB,GAAD,CAAsB7+B,QAASggC,GAC5B3J,O,WC7Jf,MAAM/D,GAAYC,cAAYrsC,IAAD,CAC3Bm5C,cAAe,CACbC,eAAgB,SAChBj2C,UAAW,OACXC,aAAc,YAqPHk3C,OAjPS,IAKjB,IAAD,MALmB,mBACvB1C,EADuB,OAEvB0B,EAFuB,KAGvB1hC,EAHuB,MAIvBvR,GACI,EAGJ,MAAMklB,EAAU6gB,MAET5H,EAAaiV,GAAkB5kC,mBAAS+C,aAAD,EAACA,EAAM4sB,cAC9CkV,EAAQC,GAAa9kC,mBAAS+C,aAAD,EAACA,EAAM6sB,oBAErCmV,EAAchC,EAAqBA,EAAmBzvC,KAAKyP,GAASA,EAAKS,OAAQ,IACjF,OAAEwK,EAAF,cAAUmrB,EAAV,cAAyBuM,GAAkBtM,eAE3C4L,EAAU,IADIh3B,SAAH,UAAGA,EAAQ8b,gBAAX,aAAG,EAAkB9T,QAI/B2vB,EAASC,GAAc5lC,mBAASykC,aAChCoB,EAAUC,GAAe9lC,oBAAS,IAClC+lC,EAAYC,GAAiBhmC,oBAAS,GAGvCimC,EAAoB,OAIpBf,EAA4BjY,IAChC,MAEMkY,EAFalY,EAAM1rB,OAAOgD,MAEC5N,QAAQ,gBAAiB,IAC1DmuC,EAAUK,IAwCNe,EAAmBrmC,YAAkB,2BAA4B,gBACjEsmC,EAA0BtmC,YAAkB,kCAAmC,uBAC/EwlC,EAAmBxlC,YAAkB,+CAAgD,gBACrFumC,EAAcvmC,YAAkB,0CAA2C,WAC3EwmC,EAAWxmC,YAAkB,0BAA2B,OACxDy7B,EAAcz7B,YAAkB,6BAA8B,UAC9Do8B,EAAcp8B,YAAkB,6BAA8B,UAC9DymC,EAAYzmC,YAAkB,2BAA4B,QAC1DulC,EAAcvlC,YAAkB,6BAA8B,UAC9DylC,EAAqBzlC,YAAkB,0CAA2C,8CA+BxF,OACE,kBAAC,WAAD,KA5BE,kBAAC,WAAD,KACE,kBAACqkC,GAAD,KACE,kBAAC,KAAD,CAAM93B,WAAS,GACb,kBAAC,KAAD,CAAMrJ,MAAI,EAACnH,GAAI,GACb,kBAACuoC,GAAD,KAA4B,8BAAO+B,GAAwB,8BAAOnjC,aAAP,EAAOA,EAAM4sB,cACxE,kBAACwU,GAAD,CAA4BC,sBAAsB,GAAlD,IAAyD,8BAAO+B,GAA+B,+BAAOpjC,aAAA,EAAAA,EAAM6sB,qBAAsByV,KAEpI,kBAAC,KAAD,CAAMtiC,MAAI,EAACnH,GAAI,GACb,kBAACooC,GAAD,KACE,kBAACN,GAAD,CAAsBz+B,QAAS,KAC7B6gC,GAAY,KAEX,kBAACviC,GAAA,QAAD,CAAM2B,YAAY,EAAM1B,KAAK,UAEhC,kBAACkgC,GAAD,CAAsBz+B,QAAS,KAC7B+gC,GAAc,KAEd,kBAACziC,GAAA,QAAD,CAAM2B,YAAY,EAAM1B,KAAK,iBAazC,kBAAC+hC,GAAA,EAAD,CACEjkB,KAAMqkB,EACNtN,QAAS4N,EACT,kBAAgB,qBAChB,mBAAiB,4BAEjB,kBAAChC,GAAD,CAAsBliC,GAAG,sBAAqB,kBAAC,GAAD,KAAUqkC,IACxD,kBAACG,GAAA,EAAD,KACE,kBAAC,KAAD,CAAMn6B,WAAS,EAACrgB,MAAO,CAAEwC,aAAc,GAAIg2C,eAAgB,SAAUl4B,WAAY,WAC/E,kBAAC,KAAD,CAAMtJ,MAAI,EAACnH,GAAI,GACb,kBAACyoC,GAAD,KAAqB6B,IAEvB,kBAAC,KAAD,CAAMnjC,MAAI,EAACnH,GAAI,GACb,kBAAC,GAAD,CACE2I,MAAOxB,aAAF,EAAEA,EAAM4sB,YACbmI,eAAiBf,GACRA,EAETa,UAAU,EACVp0B,KAAI,yBAAoBhS,EAApB,gBACJuQ,GAAE,yBAAoBvQ,EAApB,gBACFkQ,QAASqjC,UAAe,GACxBvM,YAAa,SACbC,sBAAsB,MAK5B,kBAAC,KAAD,CAAMrsB,WAAS,EAACm4B,eAAe,SAASl4B,WAAW,UACjD,kBAAC,KAAD,CAAMtJ,MAAI,EAACnH,GAAI,GACb,kBAACyoC,GAAD,KAAqB8B,IAEvB,kBAAC,KAAD,CAAMpjC,MAAI,EAACnH,GAAI,GACb,kBAAC,GAAD,CACE2I,MAAOsgC,EACPzM,SAAU8M,EACVxC,UAAW,IACXlK,YAAY,oBAMpB,kBAACgN,GAAA,EAAD,CAAe1jC,UAAW4U,EAAQ4tB,eAChC,kBAACV,GAAD,CAAkB3+B,QA3HRoK,UAChBtM,EAAK0hC,QAAS,EACdtL,EAAc,kBAAD,OAAmB3nC,EAAnB,uBAA+CqzC,GAC5De,GAAW,KAyHFS,GAEH,kBAACvC,GAAD,CAAsB7+B,QA3GNoK,UACtB8pB,EAAc,kBAAD,OAAmB3nC,EAAnB,uBAA+CqzC,GAC5D9hC,EAAK0hC,QAAS,EACdmB,GAAW,KAyGFtK,KAKP,kBAACiK,GAAA,EAAD,CACEjkB,KAAMukB,EACNxN,QAAS4N,EACT,kBAAgB,qBAChB,mBAAiB,4BAEjB,kBAAChC,GAAD,CAAsBliC,GAAG,sBAAqB,kBAAC,GAAD,KAAUukC,IACxD,kBAACC,GAAA,EAAD,KACE,kBAAC,KAAD,CAAMn6B,WAAS,EAACm4B,eAAe,SAASl4B,WAAW,SAAStgB,MAAO,CAAEwC,aAAc,KACjF,kBAAC,KAAD,CAAMwU,MAAI,EAACnH,GAAI,GACb,kBAACyoC,GAAD,KAAqB6B,IAEvB,kBAAC,KAAD,CAAMnjC,MAAI,EAACnH,GAAI,GACb,kBAAC,GAAD,CACE2I,MAAOxB,aAAF,EAAEA,EAAM4sB,YACbmI,eAAiBf,GACRA,EAETa,UAAU,EACVp0B,KAAI,yBAAoBhS,EAApB,gBACJuQ,GAAE,yBAAoBvQ,EAApB,gBACFkQ,QAASqjC,UAAe,GACxBvM,YAAa,SACbC,sBAAsB,MAK5B,kBAAC,KAAD,CAAMrsB,WAAS,EAACm4B,eAAe,SAASl4B,WAAW,UACjD,kBAAC,KAAD,CAAMtJ,MAAI,EAACnH,GAAI,GACb,kBAACyoC,GAAD,KAAqB8B,IAEvB,kBAAC,KAAD,CAAMpjC,MAAI,EAACnH,GAAI,GACb,kBAAC,GAAD,CACE2I,MAAOsgC,EACPzM,SAAU8M,EACVxC,UAAW,IACXlK,YAAY,oBAOpB,kBAACgN,GAAA,EAAD,CAAe1jC,UAAW4U,EAAQ4tB,eAChC,kBAACV,GAAD,CAAkB3+B,QA1KP,KACjBk0B,EAAc,kBAAD,OAAmB3nC,EAAnB,uBAA+CqzC,GAC5DiB,GAAY,KAyKH7J,GAEH,kBAAC6H,GAAD,CAAsB7+B,QA3JLoK,UACvB8pB,EAAc,kBAAD,OAAmB3nC,EAAnB,uBAA+CqzC,GAC5D9hC,EAAK0hC,QAAS,EACdqB,GAAY,KAyJHxK,KAIP,kBAACiK,GAAA,EAAD,CACEjkB,KAAMykB,EACN1N,QAAS4N,EACT,kBAAgB,qBAChB,mBAAiB,4BAEjB,kBAAChC,GAAD,CAAsBliC,GAAG,sBAAqB,kBAAC,GAAD,KAAUujC,IACxD,kBAACE,GAAA,EAAD,CAAe1jC,UAAW4U,EAAQ4tB,eAChC,kBAACV,GAAD,CAAkB3+B,QApLL,KACnB+/B,EAAQvzC,OAAOD,EAAO,GACtB2nC,EAAc,iBAAkB6L,GAChCgB,GAAc,KAkLLZ,GAEH,kBAACtB,GAAD,CAAsB7+B,QArKJ,KACxB+gC,GAAc,KAqKL1K,OCEEn8B,mBACXE,IACA2sB,GACA3G,GAA0B,YAHflmB,EA7N4C,IAKpD,IAAD,gBALsD,SACxDK,EADwD,kBAExDg+B,EAFwD,UAGxDv7B,EAHwD,iBAIxD0nB,GACE,EAEF,MAAMrU,EAAUzV,YAAkB,+BAAgC,6BAC5Do8B,EAAcp8B,YAAkB,4BAA6B,UAC7Do9B,EAAmBp9B,YAAkB,0BAA2B,gBAChE2mC,EAAc3mC,YAAkB,oCAChCqmC,EAAmBrmC,YAAkB,2BAA4B,gBACjEsmC,EAA0BtmC,YAAkB,kCAAmC,uBAC/E4mC,EAAe5mC,YAAkB,+BAAgC,YACjEwlC,EAAmBxlC,YAAkB,+CAAgD,gBACrF6mC,EAAmB7mC,YAAkB,oCAAqC,kBAC1E8mC,EAAqB9mC,YAAkB,sCAAuC,qCAG9E47B,EAAc7T,qBAAqC1C,KAClD0hB,EAAUC,GAAe7mC,oBAAS,GACnC07B,EAAiBD,aAAH,EAAGA,EAAa3R,SAC9BG,EAAgBN,aAAH,EAAGA,EAAkB3D,OAElC+c,EAAqB9Y,SAAH,UAAGA,EAAe7nB,YAAlB,iBAAG,EAAqB6nB,qBAAxB,iBAAG,EAAoCH,gBAAvC,aAAG,EAA8C9T,MAEnErW,EAAG,6BAQH,OAAEqO,EAAF,cAAUmrB,EAAV,aAAyBD,IAJ1B15B,EAEKg+B,UAAqBI,aAAUJ,mBAD/B7T,SADN,UACMA,EAAkB3D,cADxB,OACM,EAA0B5jB,KAGYg3B,gBAG1CvB,EAAI,UAAGqB,EAAa,yBAAhB,QAAqC,KAC/C,IAAIpE,EAAW+C,aAAH,EAAGA,EAAMpR,MACrB,MAAMphB,EAtDc,EAACk0B,EAAUuN,KAAS,IAAD,EAEvC,GAAwB,iBAAbvN,EACP,OAAOA,GAAY,GAIvB,GAAIxB,MAAMC,QAAQuB,GAEd,OADUuN,EAId,OAAOvN,aAAA,EAAAA,EAAQ,UAAGxrB,OAAO2E,KAAK6mB,UAAf,aAAG,EAAwB,MAAO,IA0C5BwN,CAAgBlP,aAAD,EAACA,EAAMpR,MAAOkgB,GAE5CzD,EAAcl1B,SAAH,UAAGA,EAAQ8b,gBAAX,aAAG,EAAkB9T,MA+JtC,OAfA1V,qBAAU,KACN,MAAM0mC,EAAe,KACjBH,EAAYr7C,OAAOy7C,WAAa,MAMpC,OAHAJ,EAAYr7C,OAAOy7C,WAAa,KAChCz7C,OAAOsH,iBAAiB,SAAUk0C,GAE3B,KACHx7C,OAAO2kB,oBAAoB,SAAU62B,MAE1C,IAKC,kBAAC,GAAD,CACIllC,UAAU,6BACVwqB,UAAWoP,aAAF,EAAEA,EAAgBpP,UAC3B3sB,IAAKA,GAEL,kBAAC,GAAD,CACIkzB,KAAK,gBACLoJ,YAAaA,EACb/O,kBAAmBvtB,GAElB2V,EALL,IAKc,kBAAC,KAAD,CAAS3Y,QAAS6pC,KAG/BI,GAAsBlL,aAAD,EAACA,EAAgBpP,WA/EnC,kBAAC4G,GAAD,KACI,kBAACC,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,MAEC,KAAxBsnC,aAAA,EAAAA,EAAanxC,QAAe,kBAACwqC,GAAD,KAAsBmK,GAC/CxD,EAAY5vC,KAAI,CAACyP,EAAMvR,IAEf,kBAAC,GAAD,CAAiBuR,KAAMA,EAAMvR,MAAOA,EAAOuxC,mBAAoBA,EAAoB0B,OAAQ1hC,aAAF,EAAEA,EAAM0hC,WAI7G,kBAAC,KAAD,CAAMr4B,WAAS,EAACm4B,eAAe,YAC3B,kBAAC,KAAD,CAAMxhC,MAAI,GAAV,IAAY,kBAACwgC,GAAD,CAAmBt+B,QAAS,KAEpC,MAAMiiC,EAAkB,IAAIhE,EAAa,CACrC,YAAe,GACf,mBAAsB,GACtB,cAAiB,KACjB,QAAU,IAEd/J,EAAc,iBAAkB+N,KAE/BT,OASrB,kBAACvT,GAAD,KACI,kBAACC,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,MACC,KAAxBsnC,aAAA,EAAAA,EAAanxC,QAAe,kBAACwqC,GAAD,KAAsBU,GAC/CiG,EAAY5vC,KAAKyP,GAET,kBAACowB,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,MACxB,kBAACsoC,GAAD,KACI,kBAACC,GAAD,KAA4B,8BAAO+B,GAAwB,8BAAOnjC,aAAP,EAAOA,EAAM4sB,cACxE,kBAACwU,GAAD,CAA4BC,sBAAsB,GAAlD,IAAyD,8BAAO+B,GAA+B,+BAAOpjC,aAAA,EAAAA,EAAM6sB,qBAAsByV,UAlIjJ/Y,IACbA,EAEI,kBAAC4G,GAAD,KACI,kBAACC,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,MACxB,kBAACynC,GAAD,KACI,+BACI,4BACI,4BAAK6C,GACL,4BAAKC,KAKb,+BAC6B,KAAxBjD,aAAA,EAAAA,EAAanxC,QAAe,kBAACwqC,GAAD,KAAsBmK,GAC/CxD,aADH,EACGA,EAAa5vC,KAAI,CAACyP,EAAMvR,IACb,kBAAC,GAAD,CACHuR,KAAMA,EACNvR,MAAOA,EACPuxC,mBAAoBA,EACpB0B,OAAQ1hC,aAAF,EAAEA,EAAM0hC,YAK9B,+BACI,4BACI,wBAAI0C,QAAS,GACT,kBAAC5D,GAAD,CAAmBt+B,QAAS,KAExB,MAAMiiC,EAAkB,IAAIhE,EAAa,CACrC,YAAe,GACf,mBAAsB,GACtB,cAAiB,KACjB,QAAU,IAEd/J,EAAc,iBAAkB+N,KAE/BT,SAYjC,kBAACvT,GAAD,KACI,kBAACC,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,MACxB,kBAACynC,GAAD,KACI,+BACI,4BACI,4BAAK6C,GACL,4BAAKC,KAIb,+BAE6B,KAAxBjD,aAAA,EAAAA,EAAanxC,QAAe,kBAACwqC,GAAD,KAAsBU,GAC/CiG,EAAY5vC,KAAKyP,GAET,4BACI,4BACKA,aADL,EACKA,EAAM4sB,aAEX,6BACK5sB,aAAA,EAAAA,EAAM6sB,qBAAsByV,UAoGb+B,CAAY1L,aAAD,EAACA,EAAgBpP,WAE/EwI,GAAY,kBAAC,GAAD,KAAezvB,OCxPxC,MAWMgiC,GAAoC,IAKnC,IAAD,MALqC,SACzCtpC,EADyC,SAEzCq6B,EAFyC,MAGzC/V,KACG9b,GACC,EACJ,OAAS6xB,SAAUkP,KAAmB1iC,GAASizB,GAAQuG,aAAS73B,aAAD,EAACA,EAAO/C,MACjEsxB,GAAW+C,aAAA,EAAAA,EAAMpR,UAAUoR,aAAA,EAAAA,EAAMwB,WAAWxB,aAAjB,EAAiBA,EAAMyB,iBAAkB,eAAiB,GAO3F,OACE,kBAACjE,GAAD,CAAevzB,UAAWugB,GACxB,yCACEklB,SA3BNhjC,EA2B0BgC,SAAD,UAACA,EAAOhC,aAAR,aAAC,EAAc2sB,WA1BxCsW,EA0BoD5iC,aAA3B,EAA2BA,EAAOL,MAxBvDwzB,MAAMC,QAAQwP,IACTA,aAAA,EAAAA,EAAY72B,QAAQpM,KAAU,EAE9BijC,GAsBH1lC,UAAS,gCAA2BgzB,GACpCsD,SAVkBnsC,IACtBmsC,WAAWnsC,GACXq7C,WAAiBr7C,IASbqV,KAAK,YACDsD,EACA2B,IAELxI,GAnCY,IACjBwG,EACAijC,GAmFaC,OA7CmC,IAK3C,IAL4C,MACjDzxB,EAEAxS,KAAMkkC,EAH2C,oBAIjDC,GACI,EACJ,OACE,kBAACrH,GAAD,CAAoBx+B,UAAU,kBAC3BkU,aADH,EACGA,EAAO1iB,KAAI,CAACyP,EAAMvR,KAAW,IAAD,EAC3B,MAAMo2C,GAAa,UAAC5xB,aAAD,EAACA,EAAOjkB,cAAR,QAAkB,GAAK,EAAI,cAAgB,GACxDujC,EAAQqS,EAAsB5kC,aAAH,EAAGA,EAAO4kC,GAAuB5kC,aAAjC,EAAiCA,EAAMuyB,MAExE,OACE,kBAAC+R,GAAD,CACEz6C,IAAK4E,EACLgS,KAAMkkC,UAAc3kC,aAAhB,EAAgBA,EAAMS,KAC1B6e,MAAOulB,EACPrjC,MAAO+wB,EACP8C,SAAUr1B,aAAF,EAAEA,EAAMq1B,UAEf9C,MAKP,kBAAC,GAAD,KAEIoS,EAEI,kBAAC,GAAD,KACE,kBAAC,KAAD,CAAclkC,KAAMkkC,KAGtB1xB,aANM,EAMNA,EAAO1iB,KAAI,CAACyP,EAAMvR,IAChB,kBAAC,GAAD,CAAgB5E,IAAK4E,GACnB,kBAAC,KAAD,CAAcgS,KAAMT,aAAF,EAAEA,EAAMS,aCgB7BrE,mBACbE,IACA2sB,GACA3G,GAA0B,yBAHblmB,EA7EqD,IAK7D,IAAD,cAL+D,SACnEK,EADmE,kBAEnEg+B,EAFmE,UAGnEv7B,EAHmE,iBAInE0nB,GACI,EACJ,MAAM8R,EAAc7T,qBAAqC1C,IACnDwW,EAAiBD,aAAH,EAAGA,EAAavR,sBAC9BD,EAAgBN,aAAH,EAAGA,EAAkB3D,OAElC6hB,EAAsB5d,SAAH,UAAGA,EAAe7nB,YAAlB,iBAAG,EAAqB6nB,qBAAxB,iBAAG,EAAoCC,6BAAvC,aAAG,EAA2DlU,MAEjFrW,EAAG,yBAGH2oB,EACH9oB,EAEGg+B,UAAqBI,cAFzB,EAEyBA,GAAUJ,kBAD/B7T,SADJ,UACIA,EAAkB3D,cADtB,aACI,EAA0B5jB,KAI1BkT,EAAUzV,YAAkB,6CAA8C,0BAC1Eo8B,EAAcp8B,YAAkB,4BAA6B,UAC7DioC,EAAiBjoC,YAAkB,+BAAgC,qEAEnEkoC,EAA2B,CAC/BvkC,KAAM,8BACNwS,MAAO6xB,GAGT,OACE,kBAAC,GAAD,CACE/lC,UAAU,gBACVwqB,UAAWoP,aAAF,EAAEA,EAAgBpP,UAC3B3sB,IAAKA,GAEL,kBAAC,GAAD,CACEkzB,KAAK,YACLoJ,YAAaA,EACb/O,kBAAmBvtB,GAElB2V,IAGFomB,aAAA,EAAAA,EAAgBpP,WAEb,oCAEE,kBAAC4G,GAAD,KACE,kBAACC,GAAD,KACE,kBAACV,GAAD,KACE,kBAAC/1B,GAAA,EAAD,CAAUkI,MAAO,CAAEL,MAAOujC,MAE5B,kBAAC,GAAD,eACEH,oBAAoB,OACpB5lC,GAAG,+BACCgmC,OAMZ,kBAAC7U,GAAD,KACE,kBAACC,GAAD,KACE,kBAAC,GAAD,CACE0J,mBAAmB,2BACnBC,cAAc,eACdv4B,MAAOue,GAAsBwF,SAAD,UAACA,EAAe4B,6BAAhB,aAAC,EAAsClU,MAAO,oCCc3E7W,mBACbE,IACA2sB,GACA3G,GAA0B,mBAHblmB,EA/EgD,IAKxD,IAAD,cAL0D,SAC9DK,EAD8D,kBAE9Dg+B,EAF8D,UAG9Dv7B,EAH8D,iBAI9D0nB,GACI,EACJ,MAAM8R,EAAc7T,qBAAqC1C,IACnDwW,EAAiBD,aAAH,EAAGA,EAAazR,gBAC9BC,EAAgBN,aAAH,EAAGA,EAAkB3D,OAElC6hB,EAAsB5d,SAAH,UAAGA,EAAe7nB,YAAlB,iBAAG,EAAqB6nB,qBAAxB,iBAAG,EAAoCD,uBAAvC,aAAG,EAAqDhU,MAG3ErW,EAAG,oBAGH2oB,EACH9oB,EAEGg+B,UAAqBI,cAFzB,EAEyBA,GAAUJ,kBAD/B7T,SADJ,UACIA,EAAkB3D,cADtB,aACI,EAA0B5jB,KAI1BkT,EAAUzV,YAAkB,wCAAyC,oBACrEo8B,EAAcp8B,YAAkB,4BAA6B,UAC7DioC,EAAiBjoC,YAAkB,+BAAgC,qEAEnEmoC,EAAsB,CAC1BxkC,KAAM,wBACNwS,MAAO6xB,GAGT,OACE,kBAAC,GAAD,CACE/lC,UAAU,gBACVwqB,UAAWoP,aAAF,EAAEA,EAAgBpP,UAC3B3sB,IAAKA,GAEL,kBAAC,GAAD,CACEkzB,KAAK,YACLoJ,YAAaA,EACb/O,kBAAmBvtB,GAElB2V,IAGFomB,aAAA,EAAAA,EAAgBpP,WAEb,oCAEE,kBAAC4G,GAAD,KACE,kBAACC,GAAD,KACE,kBAACV,GAAD,KACE,kBAAC/1B,GAAA,EAAD,CAAUkI,MAAO,CAAEL,MAAOujC,KAC1B,kBAAC,KAAD,CAASnrC,QA1CF,wLA4CT,kBAAC,GAAD,eACEgrC,oBAAoB,OACpB5lC,GAAG,yBACCimC,OAMZ,kBAAC9U,GAAD,KACE,kBAACC,GAAD,KACE,kBAAC,GAAD,CACE0J,mBAAmB,2BACnBC,cAAc,sBACdv4B,MAAOue,GAAsBwF,SAAD,UAACA,EAAe0B,uBAAhB,aAAC,EAAgChU,MAAO,8BC1DrEiyB,OA/B2C,IAEnD,IAAD,gBAFqD,UACzDhmC,GACI,EACJ,MAAMC,EAAaD,SAAH,UAAGA,EAAWE,cAAd,iBAAG,EAAmBC,YAAtB,aAAG,EAAyBF,WACtCoT,EAAUzV,YAAkB,yBAA0B,kDACtDqoC,GAAajmC,SAAA,UAAAA,EAAWkmC,oBAAX,mBAA0B,6BAA1B,eAAiDp2C,QAAS,EACvEq2C,EAAqBvoC,YAAkB,4BAA6B,0BACpEwoC,EAAgBnmC,SAAH,UAAGA,EAAYmmC,qBAAf,iBAAG,EAA2B7iC,WAA9B,aAAG,EAAgCjB,MAEtD,OACE,oCACG2jC,GACC,kBAAC5V,GAAD,KACE,kBAACI,GAAD,KAAepd,GACf,kBAACge,GAAD,KACE,kBAACmB,GAAA,EAAD,CAAajxB,KAAK,qBAAqBvB,UAAWA,MAIvDomC,GAAiBD,GAChB,kBAACpV,GAAD,KACE,kBAACC,GAAD,CAAiB,aAAYmV,EAAoBnjC,QAAUhZ,GAAMk1B,GAAal1B,EAAGo8C,aAAJ,EAAIA,EAAe/6B,OAC7F86B,EACD,kBAAC7kC,GAAA,QAAD,CAAM2B,YAAY,EAAM1B,KAAK,sBC4G1B8kC,I,qBAAAA,GApHwC/hC,IAAW,IAAD,4BAC/D,MAAM,iBACJojB,EADI,2BAEJQ,EAFI,qBAGJI,EAHI,UAIJtoB,GACEsE,GAEE,oBACJknB,EADI,eAEJjB,EACAkB,mBAAmB,aAAEV,GAHjB,sBAIJN,EAJI,aAKJH,GACE3E,qBAAqC1C,IAEnCoH,EAAYmB,EAEZvrB,EAAaD,SAAH,UAAGA,EAAWE,cAAd,iBAAG,EAAmBC,YAAtB,aAAG,EAAyBF,WACtCqmC,EAAgBrmC,SAAH,UAAGA,EAAYqmC,qBAAf,iBAAG,EAA2B/iC,WAA9B,aAAG,EAAgCjB,MAChDikC,EAAgBtmC,SAAH,UAAGA,EAAYsmC,qBAAf,aAAG,EAA2BhjC,IAE3CijC,EAAqB5oC,YAAkB,6BAA8B,mBACrEy7B,EAAcz7B,YAAkB,6BAA8B,UAC9D27B,EAAY37B,YAAkB,mCAAoC,gBAClE6oC,EAAe7oC,YAAkB,sBAAuB,wBAGxD+mB,GAAY+C,SAAA,UAAAA,EAAkB3D,cAAlB,eAA0BY,aAAauD,SAAvC,UAAuCA,EAA4BnE,cAAnE,aAAuC,EAAoCY,aAAa2D,SAAxF,UAAwFA,EAAsBvE,cAA9G,aAAwF,EAA8BY,WAClI+hB,GAAsB/hB,KAAe+C,SAAD,UAACA,EAAkB3D,cAAnB,aAAC,EAA0BY,aAAa+C,SAAxC,UAAwCA,EAAkB3D,cAA1D,aAAwC,EAA0BS,OACtGmiB,GAAkBhiB,KAAc+C,SAAD,UAACA,EAAkB3D,cAAnB,aAAC,EAA0BS,SAASkD,SAAlD,UAAkDA,EAAkB3D,cAApE,aAAkD,EAA0B5jB,QAASumC,EA8B5G,OApBAroC,qBAAU,KACR,IAAKK,cAAc6rB,EACjB,OAGF,MAAMqc,EAAgBl9C,SAAS8kB,eAAe+b,GAE1Cqc,GACFr9C,OAAOs9C,SAAS,CAAEx8C,IAAKu8C,aAAF,EAAEA,EAAez7C,UAAWmgC,SAAU,aAE5D,CAACf,IAEJlsB,qBAAU,KAGJisB,GACFA,EAAaG,KAEd,CAACA,IAGF,oCACGkc,GACC,kBAACtU,GAAD,CAAe1vB,MAAO4jC,EAAe1mC,UAAU,uBAGjD,kBAACuyB,GAAD,KACG/H,GAAaqc,GACZ,oCACE,kBAACvU,GAAD,KACE,kBAACxuB,GAAA,EAAD,CACEnC,YAAa,CAAEc,MAvCF,MACF,IAAD,IAAtB,GAAIolB,EACF,OAAOA,SAAP,UAAOA,EAAkB3D,cAAzB,iBAAO,EAA0BS,aAAjC,aAAO,EAAiCE,SAqCRoiB,IACtBnlC,MAAO,CAAEW,MAAOmkC,GAChBpnC,KAAM,CAAEiD,MAAO,WAGlBolB,SAAA,UAAAA,EAAkB3D,cAAlB,mBAA0BS,aAA1B,eAAiCE,UAChC,kBAAC0N,GAAD,KACE,kBAAC,GAAoB9tB,KAM5BqiC,GACC,oCACE,kBAACvU,GAAD,KACE,kBAAC,GAA0B9tB,GAC3B,kBAAC,GAAoCA,GACrC,kBAAC,GAAqBA,GACtB,kBAAC,GAA8BA,GAC/B,kBAAC,GAAyBA,GAC1B,kBAAC,GAAD,CACE+0B,YAAaA,EACbC,mBAAoB,oBACpBC,UAAWA,GAEX,kBAAChI,GAAD,CACE,aAAYiV,EACZxjC,QAAUhZ,GAAMk1B,GAAal1B,EAAGs8C,IAEhC,kBAAChlC,GAAA,QAAD,CACE2B,YAAY,EACZ1B,KAAK,eACNilC,S,2DCrHZ,MAAM97B,GAAUvR,UAAOqd,GAAV,2EAChBzL,IACOjZ,YAAM,iBAIJwxC,GAASnqC,UAAOC,IAAV,gQACGtH,YAAM,oBASfmP,KAAM8lC,OAEf,QAAC,kBAAEC,GAAH,SAA2B1zC,YAAG0zC,MAKrBC,GAAS9tC,UAAOC,IAAV,4BAEN8tC,GAAiB/tC,UAAOC,IAAV,4PACEtH,YAAM,eAM/B,QAAC,MAAE5I,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOgsB,GAAI,MAIpC5hB,YAAG,OAKM6zC,GAAchuC,UAAO3F,OAAV,2GACpB,IAAM9B,gBAOG01C,GAAejuC,UAAOmM,KAAV,0MACrBzL,YAAI,GAAI,IAIRvG,YAAG,MACDuG,YAAI,GAAI,IAIF/H,YAAM,qBAGdq1C,GAEUr1C,YAAM,sBAKPu1C,GAAmBluC,UAAOC,IAAV,4BCgEdkuC,qBAjHqB,IAAgB,IAAf,MAAEC,GAAY,EAEjD,MAAM,GACJznC,EADI,QAEJpF,EAFI,QAGJ07B,EAHI,YAIJ30B,EAJI,sBAKJ+lC,EALI,kBAMJR,EANI,WAOJS,EAPI,QAQJp0B,GACEk0B,GAAS,GAEPG,EAAYzpC,mBAEZ0pC,EAAsB1pC,mBAEtB2pC,EAAmBC,YAAYC,QAAQptC,IAEvCqtC,EAAaC,YAAc,CAAEC,UAAWjB,IAwD9C,OAtDA3oC,qBAAU,MACJ0pC,aAAA,EAAAA,EAAY/5C,QAASk6C,KAAYlB,IACnC5Q,MAED,CAAC2R,aAAD,EAACA,EAAY/5C,QAEhBqQ,qBACE,KACE,MAAM8pC,EAAST,EAAU3Y,QAEnBqZ,EAAmBT,EAAoB5Y,QAEvCsZ,EAAwBr+C,IAC5B,IAAIsV,EAAsBtV,EAAEsV,OAG5B,KAAOA,GAAQ,CACb,GAAIA,IAAW8oC,EAEb,OAGF9oC,EAASA,EAAOzS,WAGlBupC,KAkBF,OAdI17B,IAAYktC,GACdU,aAAkBH,GACd1mC,GACF/X,SAASwjB,KAAKrc,iBAAiB,YAAaw3C,GAAsB,KAG1D3tC,GAAWktC,IACjBnmC,GACF/X,SAASwjB,KAAKgB,oBAAoB,YAAam6B,GAAsB,GAEvEE,aAAiBJ,IAIZ,KACD1mC,GACF/X,SAASwjB,KAAKgB,oBAAoB,YAAam6B,GAAsB,GAEvEE,aAAiBJ,MAIrB,CAACztC,IAGEA,EAKH,kBAAC,GAAD,CACE,cAAY,EACZqF,IAAK2nC,EACLV,kBAAmBA,GAEnB,kBAAC,KAAD,CACEwB,iBAAkB,CAChBf,WAAY,KACNA,GACFA,OAKN,kBAAC,GAAD,MACID,GACA,kBAACN,GAAD,KACE,kBAAC,GAAD,KAAU7zB,GACV,kBAAC8zB,GAAD,CAAankC,QAAS,IAAMozB,KAC1B,kBAAChqB,GAAA,EAAD,KAAexO,YAAkB,4BAA6B,UAC9D,kBAACwpC,GAAD,KACE,kBAACqB,GAAA,QAAD,CAAYC,QAAO,sBAAiB5oC,GAAMmD,YAAY,OAK9D,kBAACokC,GAAD,CAAkBtnC,IAAK4nC,GAAsBjtC,MA9B5C,QCjGX,MAAMiuC,GAA0D,IAGzD,IAH0D,kBAC/DC,EAD+D,uBAE/DC,GACI,EACJ,MAAMrP,EAAc7T,qBAAW1C,IAE/B,GAAoB,OAAhBuW,EAEF,OADApP,aAAW,wEACJ,KAGT,MAAMgB,EAAYxtB,YAChBirC,UAA0B,4BAC1B,4EAIIC,GAAsBtP,aAAA,EAAAA,EAAahO,uBAAwBod,YAejE,OAbA9d,aACG9gC,IACKA,IAGFA,EAAEo1B,iBAEFp1B,EAAE++C,YAAc,OAGnBD,GAGEpqC,YAKH,kBAAC,IAAD,CACE2tB,KAAMyc,EACNpkB,QAAS0G,IANJ,M,qBClCJ,MAAM4d,GAAwB7vC,UAAOC,IAAV,sgBACZ,QAAC,MAAElQ,GAAH,SAAeA,EAAMonC,mBAAmB2Y,aAAa5/C,cACjD,QAAC,MAAEH,GAAH,SAAeA,EAAMonC,mBAAmB2Y,aAAavwC,eACnE,QAAC,SAAE6E,GAAH,SAAkBA,EAAW,IAAM,UACjC,QAAC,SAAEA,GAAH,SAAkBA,EAAW,WAAa,WAGpD2rC,KACU,QAAC,SAAE3rC,EAAF,SAAY4rC,GAAb,SAA6B5rC,GAAY4rC,EAAW,IAAM,UACxD,QAAC,SAAE5rC,EAAF,SAAY4rC,GAAb,SAA6B5rC,GAAY4rC,EAAW,QAAU,cAI1E,QAAC,MAAEjgD,GAAH,SAAeqQ,YAAQ,CACzBrQ,QACAiT,GAAI,CACFxC,GAAI,OACJpG,GAAI,QAEN+e,GAAI,CACF3Y,GAAI,YAIJrG,YAAG,MAQHyU,KAAKtL,UACHnJ,IAAG4H,SAAS,OCyHHgC,mBACbE,IADaF,EAzImC,IAG3C,IAH4C,SACjDpB,EADiD,SAEjDyB,GACI,EACJ,MAAO4rC,EAAUC,GAAarrC,oBAAS,GACjCsrC,EAAkBprC,iBAAoB,OAEtC,qBACJqrC,EADI,sBAEJC,GACEC,cAuEJ,IAAI35B,EAEJ,MAAM45B,EAAkB,KAClB55B,GACFtmB,OAAOmgD,qBAAqB75B,GAG9BA,EAAUtmB,OAAOogD,uBAAsB,KA5EV,MAAO,IAAD,MACnC,IAAKjrC,IACH,OAGF,MAAMkrC,EAAkB,UAAGP,SAAH,UAAGA,EAAiBta,eAApB,iBAAG,EAA0B/hC,+BAA7B,aAAG,EAAmD2B,cAAtD,QAAgE,EAClFk7C,EAAkBngD,SAAS8kB,eAAes7B,MAC1CC,EAAiBrgD,SAAS8kB,eAAew7B,OAA+BtgD,SAAS8kB,eAAey7B,MAChGC,EAAexgD,SAAS8kB,eAAe27B,MAEzCb,GACEO,IACFA,EAAgB//C,MAAMiE,OAAtB,UAAkC67C,EAAqB,IAAvD,OAGEG,IACFA,EAAejgD,MAAMiE,OAArB,UAAiC67C,EAAqB,GAAtD,QAGEM,IACEL,IACFA,EAAgB//C,MAAMiE,OAAtB,UAAkC67C,GAAqBM,aAAH,EAAGA,EAAc78C,cAAe,IAApF,OAGE08C,IACFA,EAAejgD,MAAMiE,OAArB,UAAiC67C,GAAqBM,aAAH,EAAGA,EAAc78C,cAAe,GAAnF,SAoDJ+8C,GAtBsB,MAAO,IAAD,QAC9B,IAAK1rC,IACH,OAGF,MAAM2rC,EAAU,UAAG3gD,SAAS6V,qBAAqB,iBAAjC,aAAG,EAA0C,GACvD+qC,EAAa,UAAGD,SAAH,UAAGA,EAAYr9C,+BAAf,aAAG,EAAqC3C,WAAxC,QAA+C,EAC5DkgD,EAAY,UAAGhhD,cAAH,aAAG,EAAQihD,YAEzBF,EAAgB,GAClBlB,EAAUmB,GAAgBD,IAa1BG,GA/C+B,MAAO,IAAD,IACvC,IAAK/rC,IACH,OAGF,MAAMuqC,EAAeI,aAAH,EAAGA,EAAiBta,QAChCmb,EAAexgD,SAAS8kB,eAAe27B,MACvCE,EAAU,UAAG3gD,SAAS6V,qBAAqB,iBAAjC,aAAG,EAA0C,GACvDmrC,EAAqBL,aAAH,EAAGA,EAAYr9C,wBACjC29C,GAAsB,UAACD,aAAD,EAACA,EAAoBrgD,WAArB,QAA4B,GAAKd,OAAOihD,YAEhEvB,IAEAA,EAAan/C,MAAMiE,OADjB48C,GAAuBrB,EACzB,MAEIY,EACF,UAA+BA,aAA/B,EAA+BA,EAAc78C,aAA7C,MAEA,QA8BJu9C,OA4BJ,OAxBAvsC,qBAAU,KACR,GAAKK,IASL,OALAnV,OAAOsH,iBAAiB,SAAU44C,GAAiB,GACnDlgD,OAAOsH,iBAAiB,SAAU44C,GAAiB,GAEnDA,IAEO,KACLlgD,OAAO2kB,oBAAoB,SAAUu7B,GAAiB,GACtDlgD,OAAO2kB,oBAAoB,SAAUu7B,GAAiB,MAEvD,IAGHprC,qBAAU,KACRorC,MACC,CACDH,EACAC,IAIA,kBAACP,GAAD,CACElpC,GCpJ0B,gBDqJ1BD,UAAU,gBACV,oBACAtC,SAAUA,EACV4rC,SAAUA,EACVppC,IAAKspC,GAEL,kBAAC,KAAK5sC,UAAN,KACE,kBAAC,KAAKmW,IAAN,CAAUkC,OAAQ,CAAE+1B,QAAS,KAC1B/uC,Q,SE1JJ,MAAMgvC,GAAwD,CACnE,CACEnoC,MAAO,iDACPS,aAAc,uDACdwO,UAAU,EACVtO,WAAY,CAACA,QCRJynC,GAAe,CAACC,EAAeC,EAAYC,KACpD,MAAMC,EAAY5hD,OAAOi5B,SAASnX,KAAKlH,MAAM6mC,GAAe,IAAM,GAClE,GAAGG,EAAW,CAEV,GAD+BF,EAAW55C,KAAKuS,GAAMA,EAAE2Q,gBAAkB42B,EAAUhnC,MAAM,IAAI3S,KAAK,IAAI+iB,gBAC1E,CAC5B,MAAM62B,EAAeF,EAAelsC,QAAQ4E,GAAMA,EAAErC,KAAKgT,gBAAkB42B,GAAavnC,EAAEtB,QAAOjR,KAAIuS,GAAMA,EAAEtB,QAAQ,GACrH/Y,OAAOi5B,SAAS9tB,QAAQ22C,mBAAmBD,EAAanc,gBCqNjD/xB,mBACbiG,YAAyB2nC,IACzBplC,KACAtI,IACA2sB,GAJa7sB,EA7KiDoH,IAAW,IAAD,sCACxE,MAAM,iBACJojB,EADI,2BAEJQ,EAFI,qBAGJI,EAHI,YAIJ3iB,EAJI,SAKJpI,EALI,UAMJyC,EANI,eAOJ8F,GACExB,EAEEgnC,EAAiB1tC,YAAkB,qBAAsB,iBACzD6oC,EAAe7oC,YAAkB,sBAAuB,wBACxD2tC,EAA6B3tC,YAAkB,oCAAqC,8BAEpFstC,EAAiBlrC,SAAH,UAAGA,EAAWE,cAAd,iBAAG,EAAmBC,YAAtB,iBAAG,EAAyBF,kBAA5B,iBAAG,EAAqCurC,+BAAxC,aAAG,EAA8Dz/B,OAC/E0/B,EAAqBzrC,SAAH,UAAGA,EAAWE,cAAd,iBAAG,EAAmBC,YAAtB,iBAAG,EAAyBF,kBAA5B,iBAAG,EAAqCurC,+BAAxC,aAAG,EAA8Dz/B,OAAO1a,KAAKuS,GAAMA,EAAErC,KAAKgT,gBAG5Gm3B,EAAUC,cAEVC,EAAyB3tC,kBAAgB,GAG/CI,qBAAU,KACRutC,EAAuB7c,QAAUxM,OAChC,IAEH,MAKM7kB,GAAMsC,aAAA,EAAAA,EAAWtC,MAAO,KAExBmuC,GACJnkB,SAAA,UAAAA,EAAkB3D,cAAlB,eAA0BS,SAC1B0D,SADA,UACAA,EAA4BnE,cAD5B,aACA,EAAoCS,SACpC8D,SAFA,UAEAA,EAAsBvE,cAFtB,aAEA,EAA8BS,OAE1BsiB,EAAqB,KAAO,IAAD,YAEuC,IAIJ,IAIU,wBAR5E,MAA4D,iBAAjDxe,SAAP,UAAOA,EAAsBvE,cAA7B,iBAAO,EAA8BS,aAArC,aAAO,EAAqCE,SACvC4D,SAAP,UAAOA,EAAsBvE,cAA7B,iBAAO,EAA8BS,aAArC,aAAO,EAAqCE,QAGU,iBAA7CgD,SAAP,UAAOA,EAAkB3D,cAAzB,iBAAO,EAA0BS,aAAjC,aAAO,EAAiCE,SACnCgD,SAAP,UAAOA,EAAkB3D,cAAzB,iBAAO,EAA0BS,aAAjC,aAAO,EAAiCE,QAGwB,iBAAvDwD,SAAP,UAAOA,EAA4BnE,cAAnC,iBAAO,EAAoCS,aAA3C,aAAO,EAA2CE,UAElDwD,SAAA,UAAAA,EAA4BnE,cAA5B,mBAAoCS,aAApC,mBAA2CE,eAA3C,mBAAoDS,gBAApD,mBAA8DhlB,YAA9D,eAAoEqkB,SACjE0D,SADH,UACGA,EAA4BnE,cAD/B,iBACG,EAAoCS,aADvC,iBACG,EAA2CE,eAD9C,iBACG,EAAoDS,gBADvD,iBACG,EAA8DhlB,YADjE,iBACG,EAAoE2rC,cADvE,iBACG,EAA6E,UADhF,aACG,EAAiFpnB,cAHxF,GAQIqnB,EAAqBF,EACrBG,GAAwBH,IAAkB3jB,SAAnB,UAAmBA,EAA4BnE,cAA/C,aAAmB,EAAoC5jB,MAC9E8rC,GAAqBJ,KACzBnkB,SAAA,UAAAA,EAAkB3D,cAAlB,eAA0BY,aACvBuD,SADH,UACGA,EAA4BnE,cAD/B,aACG,EAAoCY,aAAa2D,SADpD,UACoDA,EAAsBvE,cAD1E,aACoD,EAA8BY,YAQpF,OALIqnB,GAAwBV,EAAex7C,OAAS,GAClDi7C,GAAa,aAAcU,EAAoBP,GAI7C3tC,EAEA,kBAAC,GAAa+G,IAKlBjG,qBAAU,KAAO,IAAD,EAEXd,IACAmqB,SAAD,UAACA,EAAkB3D,cAAnB,aAAC,EAA0BY,aAC3BknB,GAC0B,mBAAnB/lC,IAEPA,EACEI,aACE,CAAC,QACD,CACEuJ,SAAU,cACVy8B,UAAWpF,KAEbnhC,IAEJU,aAAe,iBAEhB,CAACwlC,EAAgBnkB,SAAjB,UAAiBA,EAAkB3D,cAAnC,aAAiB,EAA0BY,YAG5C,kBAAC,GAAD,KACE,kBAACgkB,GAAD,MAEA,kBAAC,GAAD,CAAW7oC,GAAIpC,EAAKmC,UAAU,uBAC5B,kBAAC,KAAD,KACE,kBAACkyB,GAAD,KACE,kBAAC,GAAD,KACGga,GACC,oCACE,kBAAC5Z,GAAD,KACE,kBAACxuB,GAAA,EAAD,CACEnC,YAAa,CAAEc,MAAOwkC,KACtBnlC,MAAO,CAAEW,MAAOmkC,GAChBpnC,KAAM,CAAEiD,MAAO,WAIlBolB,SAAA,UAAAA,EAAkB3D,cAAlB,mBAA0BS,aAA1B,eAAiCE,UAChC,kBAAC0N,GAAD,KACE,kBAAC,GAAoB9tB,KAM5B0nC,GACC,kBAAC7Z,GAAD,KACE,kBAACxuB,GAAA,EAAD,CACEwoC,WAAY,CAAEriC,WAAY,CAAEvI,KAAM,iBAClCI,MAAO,CAAEW,MAAOgpC,GAChBjsC,KAAM,CAAEiD,MAAO,YAKpB2pC,GACC,kBAAC,GAAD,KACE,kBAAC,GAAD,CAAeG,kBAAkB,MAInCH,IAAqBvkB,SAAtB,UAAsBA,EAAkB3D,cAAxC,aAAsB,EAA0BY,YAC/C,kBAAC,GAAD,KACE,kBAAC,GAAD,CAAeynB,kBAAkB,KAIrC,kBAAC,GACK9nC,KAKV,kBAAC,GAAD,OAECsnC,aAAA,EAAAA,EAAwB7c,UACvB,kBAAC,GAAD,KACE,kBAAC4C,GAAD,CAA0B7c,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,IAAMkxC,QAAS,KAC5D,kBAACjZ,GAAD,KACE,kBAACC,GAAD,CAAyB7uB,QAjIT,KAE9B0oC,EAAQW,WAgIQ,kBAACva,GAAD,KACE,kBAACxwB,GAAA,QAAD,CAAMC,KAAK,eACVgqC,cC3LhB,MAAMe,GAAqBppB,wBAAuC,MAE5DqpB,GAA6B,IAGnC,IAAD,UAHqC,QACzC9mB,EAAU,GAD+B,SAEzC3pB,GACI,EACJ,MAAM2B,EAAuBkoB,qBAAWC,KAElC9B,EAAsB+B,mBAC1B,qBAAOpoB,SAAD,UAACA,EAAiBqoB,eAAlB,iBAAC,EAA0BC,oBAA3B,aAAC,EAAwCC,eAC/C,CAACvoB,SAAD,UAACA,EAAiBqoB,eAAlB,iBAAC,EAA0BC,oBAA3B,aAAC,EAAwCC,cAGrCC,EAAwB,CAC5B9lB,KAAM,KACNqkB,MAAO,KACPG,WAAW,EACXuB,aAAc,OAGT2Z,EAAW2M,GAAgBzuC,mBAA+BkoB,IAC1DwmB,EAAeC,GAAoB3uC,mBAAmCkoB,IACtE0mB,EAAeC,GAAoB7uC,mBAAmCkoB,IACtE4mB,EAAeC,GAAoB/uC,mBAAmCkoB,IACtE8mB,EAAeC,GAAoBjvC,mBAAmCkoB,GAEvEgnB,EAAerpB,GAAS,CAC5BC,OAAO,GAAD,OAAK4B,UAAW,GAAhB,2BACNhC,mBAAoB,CAClByB,OAAQ,OAEVpB,aACAC,OAAQ8b,EACR7b,UAAWwoB,IAGPU,EAAmBtpB,GAAS,CAChCC,OAAO,GAAD,OAAK4B,UAAW,GAAhB,+BACNhC,mBAAoB,CAClByB,OAAQ,OAEVpB,aACAC,OAAQ0oB,EACRzoB,UAAW0oB,IAGPS,EAAmBvpB,GAAS,CAChCC,OAAO,GAAD,OAAK4B,UAAW,GAAhB,+BACNhC,mBAAoB,CAClByB,OAAQ,OAEVpB,aACAC,OAAQ4oB,EACR3oB,UAAW4oB,IAGPQ,EAAmBxpB,GAAS,CAChCC,OAAO,GAAD,OAAK4B,UAAW,GAAhB,+BACNhC,mBAAoB,CAClByB,OAAQ,OAEVpB,aACAC,OAAQ8oB,EACR7oB,UAAW8oB,IAGPO,EAAmBzpB,GAAS,CAChCC,OAAO,GAAD,OAAK4B,UAAW,GAAhB,+BACNhC,mBAAoB,CAClByB,OAAQ,OAEVpB,aACAC,OAAQgpB,EACR/oB,UAAWgpB,IAIPM,EAA6BznB,mBAAQ,KAAO,IAAD,EACT,QAAtC,KAAKonB,SAAD,UAACA,EAAclpB,cAAf,aAAC,EAAsBY,WACzB,iBAAOsoB,SAAP,UAAOA,EAAclpB,cAArB,iBAAO,EAAsB5jB,YAA7B,iBAAO,EAA4B4T,aAAnC,aAAO,EAAmCyV,QAAO,CAACn4B,EAAKk8C,KAASl8C,EAAIk8C,EAAIC,KAAOD,EAAKl8C,IAAM,WAA1F,QAAiG,OAElG,CAAC47C,SAAD,UAACA,EAAclpB,cAAf,aAAC,EAAsBY,YAoB1B,OACE,kBAAC2nB,GAAmB/oB,SAApB,CAA6BjhB,MAAO,CAClC2qC,eACAC,mBACAC,mBACAG,eACAF,mBACAC,mBACAI,oBAzB8CC,IAAkC,IAAD,EACjF,MAAMC,EAA6BD,aAAH,EAAGA,EAAiB9hB,YAEpD,OAAO8hB,aAAA,EAAAA,EAAiBE,YACrB9X,MAAMC,QAAQ4X,MACTA,SAAD,UAACA,EAA4B3+B,YAA7B,aAAC,OAAA2+B,GAAmCE,GAAiB,WAAZA,aAAA,EAAAA,EAAGxuC,SACR,WAArCsuC,aAAA,EAAAA,EAA4BtuC,QAoBhCyuC,kCAjB0EJ,IAAkC,IAAD,IAC7G,MAAMC,EAA6BD,aAAH,EAAGA,EAAiB9hB,YAEpD,OAAOkK,MAAMC,QAAQ4X,IACjB,UAACA,SAAD,UAACA,EAA4B3uC,QAAQ+uC,GAAoC,YAArBA,aAAA,EAAAA,EAAY1uC,eAAhE,aAAC,EAAmFvP,cAApF,QAA8F,GAAK,EAC9D,YAArC69C,aAAA,EAAAA,EAA4BtuC,SAc7BvD,IAKMkyC,GAAwB,KACnC,MAAMC,EAAqBtoB,qBAAoC2mB,IAM/D,OAJ2B,OAAvB2B,GACF7jB,aAAW,+FAGN6jB,GCsCMC,I,MAAAA,GAtKqC,IAAyC,IAAD,oBAAvC,cAAEC,EAAF,gBAAiB1wC,GAAsB,EAC1F,MAAM2wC,EAAoBxwC,YAAkB,6BAA8B,kBACpEywC,EAAoBzwC,YAAkB,6BAA8B,kBACpE0wC,EAAoB1wC,YAAkB,6BAA8B,mBAEpE,iBAAEuvC,EAAF,aAAoBG,EAApB,oBAAkCG,GAAwBO,MACxDjiC,OAAQwiC,EAAV,cAAsBrX,GAAkBC,gBACvCwV,EAAeC,GAAoB7uC,mBAAsB,IAE1DywC,EAAyBD,SAAH,UAAGA,EAAaJ,UAAhB,iBAAG,EAA6B7tB,eAAhC,aAAG,EAAsCgN,eAC/DogB,EAAkBJ,aAAH,EAAGA,EAAekB,GACjCC,EAAgBF,SAAH,UAAGA,EAAaJ,UAAhB,aAAG,EAA6B/tB,MAE7CsuB,EAAoBztB,GAAgCysB,aAAD,EAACA,EAAiBiB,YAuB3E,OArBAtwC,qBAAU,KACkF,IAAD,EAAnFqvC,IAAqBA,aAAD,EAACA,EAAiBF,MAAOC,EAAoBC,GACrEP,SAAA,UAAAA,EAAkBvoB,eAAlB,cAAAuoB,EAA4B,CAC1B1pB,mBAAoB,CAClB9P,OAAQ,CACN0M,QAASqtB,aAAF,EAAEA,EAAiBF,MAG9B1oB,mBAAmB,EACnBC,uBAAuB,EACvBR,QAAU7F,IAER1M,QAAQ6d,KAAKnR,IAEf/Q,UAAYwX,IAAD,aAAcynB,EAAiBznB,SAAD,UAACA,EAAUhlB,YAAX,aAAC,EAAgB4T,UAG5D64B,EAAiB,MAElB,CAACU,EAAckB,IAGhB,oCACGd,GACC,oCACE,kBAACzc,GAAD,KACE,kBAACC,GAAD,KACE,kBAAC,GAAD,CAAW6K,QAAO,UAAKoS,EAAL,iBAAmCv8B,UAAQ,GAAEw8B,GAC/D,kBAAC,GAAD,CACEtuC,GAAE,UAAKquC,EAAL,iBACF1N,UAAW,IACXl/B,KAAI,UAAK4sC,EAAL,iBACJ9uC,KAAK,WAIX,kBAAC4xB,GAAD,KACE,kBAACC,GAAD,KACE,kBAAC,GAAD,CAAW6K,QAAO,UAAKoS,EAAL,kBAAoCE,GACtD,kBAAC,GAAD,CACEvuC,GAAE,UAAKquC,EAAL,iBACF1N,UAAW,IACXl/B,KAAI,UAAK4sC,EAAL,iBACJ9uC,KAAK,WAIX,kBAAC4xB,GAAD,KACE,kBAACC,GAAD,KACE,kBAAC,GAAD,CAAW6K,QAAO,UAAKoS,EAAL,kBAAoCG,GACtD,kBAAC,GAAD,CACExuC,GAAE,UAAKquC,EAAL,iBACF1N,UAAW,IACXl/B,KAAI,UAAK4sC,EAAL,iBACJ9uC,KAAK,WAIX,kBAAC4xB,GAAD,MACGyc,aAAA,EAAAA,EAAiBkB,cAChB,kBAAC1d,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAI1G,GAAI,KAClC,kBAAC,GAAD,CAAW8oC,QAAO,UAAKoS,EAAL,SAA2Bv8B,SAAU87B,EAAgBmB,WAAYnB,EAAgBkB,aACnG,kBAAC,GAAD,CACE9uC,GAAE,UAAKquC,EAAL,SACF1N,UAAW,GACXl/B,KAAI,UAAK4sC,EAAL,SACJ9uC,KAAK,OACLuS,SAAU87B,EAAgBmB,cAK/BnB,aAAA,EAAAA,EAAiBiB,eAAe,UAAEhC,aAAF,EAAEA,EAAe78C,cAAjB,YAC/B,kBAACohC,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAI1G,GAAI,KAClC,kBAAC,GAAD,CAAW8oC,QAAO,UAAKoS,EAAL,UAA4Bv8B,SAAU87B,EAAgBE,UAAWF,EAAgBiB,YACnG,kBAAC,GAAD,CACErsC,MAAO,CACL+d,QAAO,UAAEouB,aAAF,EAAEA,EAAepuB,eAAjB,QAA4B,GACnC9e,KAAI,UAAEktC,aAAF,EAAEA,EAAeltC,YAAjB,QAAyB,IAE/Bs0B,eAAiBf,GAAWA,aAAZ,EAAYA,EAAQvzB,KACpCy6B,kBAAmB,CAAClH,EAAQxyB,IAAUwyB,EAAOzU,UAAY/d,EAAM+d,QAC/D4V,aAAc,CAACyH,EAAGp7B,EAAOm1B,KACvB,OAAQA,GACN,IAAK,QACHP,EAAc,GAAD,OACRiX,EADQ,UAEX,CACE9tB,QAAS,GACT9e,KAAM,KAER,GAEF,MACF,IAAK,gBACH21B,EAAc,GAAD,OACRiX,EADQ,UAEX,CACE9tB,QAAS/d,aAAF,EAAEA,EAAO+d,QAChB9e,KAAMe,aAAF,EAAEA,EAAOf,OAEf,KAORzB,GAAE,UAAKquC,EAAL,UACF5sC,KAAI,UAAK4sC,EAAL,UACJxY,UAAU,EACVl2B,QAAO,UAAEktC,aAAF,EAAEA,EAAet7C,KAAK+uB,IAAD,CAC1BC,QAASD,aAAF,EAAEA,EAAOqE,KAChBljB,KAAM6e,aAAF,EAAEA,EAAO7e,gBAFR,QAGA,GACPg1B,YAAamY,MAKlBhB,aAAA,EAAAA,EAAiBiB,eAAc,UAAEhC,aAAF,EAAEA,EAAe78C,cAAjB,WAC9B,kBAACohC,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAI1G,GAAI,KAClC,kBAAC,GAAD,CAAW8oC,QAAO,UAAKoS,EAAL,eAAiCv8B,SAAU87B,EAAgBE,UAAWF,EAAgBiB,YACxG,kBAAC,GAAD,CACE7uC,GAAE,UAAKquC,EAAL,eACF1N,UAAW,GACXl/B,KAAI,UAAK4sC,EAAL,eACJv8B,SAAU87B,EAAgBE,SAC1BvuC,KAAK,WAKVquC,aAAA,EAAAA,EAAiBoB,gBAChB,kBAAC5d,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAI1G,GAAI,KAClC,kBAAC,GAAD,CAAW8oC,QAAO,UAAKoS,EAAL,aAA+Bv8B,SAAU87B,EAAgBqB,aAAcrB,EAAgBoB,eACzG,kBAAC,GAAD,CACEhvC,GAAE,UAAKquC,EAAL,aACF1N,UAAW,GACXl/B,KAAI,UAAK4sC,EAAL,aACJv8B,SAAU87B,EAAgBqB,mBCjKrC,MAAM14B,GAAQld,UAAOqd,GAAV,qCACdC,KAGS2e,GAAmBj8B,UAAO3F,OAAV,mKACzB9B,KACO,QAAC,MAAExI,GAAH,SAAeA,EAAMonC,mBAAmB0e,cAAcC,OAAOn9C,QAGpEwB,YAAG,MAIHA,YAAG,O,eC8KQ47C,OA7KyC,IAIjD,IAAD,UAJmD,cACvDf,EADuD,gBAEvDvR,EAFuD,sBAGvDuS,GACI,EAEJ,MAAOnS,EAAYC,GAAiBl/B,mBAAS,KACtCm4B,EAASgH,GAAcn/B,oBAAS,IACjC,iBAAEqvC,EAAF,iBAAoBC,GAAqBW,MACvCjiC,OAAQwiC,EAAV,cAAsBrX,GAAkBC,eAGxCiY,EAAwBb,SAAH,UAAGA,EAAaJ,UAAhB,iBAAG,EAA6B7tB,eAAhC,aAAG,EAAsCgN,eAE9D+hB,EAAuBzxC,YAAkB,uBAAwB,WACjEy/B,EAAgBz/B,YAAkB,gCAAiC,oBACnE0/B,EAAoB1/B,YAAkB,8BAA+B,kBACrE0xC,EAAsB1xC,YAAkB,iCAAkC,4BAC1E2xC,EAAsB3xC,YAAkB,6CAA8C,uBACtF4xC,G1DoHwCtuB,E0DpHqBmuB,E1DqHpCzxC,YAAkB,0BAA2B,kBAC9ClJ,QAAQ,cAAewsB,aAA9C,EAA8CA,EAAW3M,gBAFlB2M,M0DlH9C,MAAM,aAAG+V,GAAiBE,eACpBvB,EAAI,UAAGqB,EAAakX,UAAhB,QAAkC,KACtCtb,MAAe+C,aAAA,EAAAA,EAAMwB,YAAWxB,aAAjB,EAAiBA,EAAMyB,mBAAmBzB,aAA3C,EAA2CA,EAAMpR,QA8C/DirB,EAA6BC,cAFT,CAAChS,EAAGp7B,KAzC5Bq7B,MACG,GADHA,EAyC6Dr7B,IAlC7D46B,GAAW,GAEX,UAAAkQ,EAAiBxoB,eAAjB,cAAAwoB,EAA2B,CACzB3pB,mBAAoB,CAClB9P,OAAQ,CACNg8B,WAAYP,EACZzR,UAGJtZ,WAAY,KACV6Y,GAAW,IAEb3Y,QAAU7F,IACR1M,QAAQ6d,KAAKnR,IAEf/Q,UAAYwX,IAAc,IAAD,MACvB,IAAI,UAACA,SAAD,UAACA,EAAUhlB,YAAX,iBAAC,EAAgB4T,aAAjB,aAAC,EAAuBjkB,cAAxB,QAAkC,GAAK,EAAG,CAAC,IAAD,EAC5C,MAAM8/C,EAAgBzqB,SAAH,UAAGA,EAAUhlB,YAAb,aAAG,EAAgB4T,MAAM1iB,KAAI,QAAC,QAC/CuuB,EAD+C,SAE/CiwB,EACA/f,WAAYhwB,GAHkC,QAIzC,CACLuzB,MAAOzT,EACPiwB,WACA/vC,SAGFm9B,EAAc2S,KAGlB9qB,mBAAmB,KAlCnBmY,EAAc,MAwCyD,KAErE6S,EAA0BC,IAEkD,IAAD,GAA3EA,aAAA,EAAAA,EAAiBjwC,MAAMiwC,aAAvB,EAAuBA,EAAiBF,WAAYT,IACtD/B,SAAA,UAAAA,EAAkBzoB,eAAlB,cAAAyoB,EAA4B,CAC1B5pB,mBAAoB,CAClB9P,OAAQ,CACNk8B,SAAUE,EAAgBF,SAC1B/vC,GAAIiwC,EAAgBjwC,GACpB6vC,WAAYP,IAGhB7qB,QAAU7F,IACR1M,QAAQ6d,KAAKnR,IAEf/Q,UAAYwX,IAAc,IAAD,sCACvB,MAAM6qB,EAAiB,CACrBlwB,aAAcqF,SAAF,UAAEA,EAAUhlB,YAAZ,iBAAE,EAAgByf,eAAlB,iBAAE,EAAyBqwB,oBAA3B,aAAE,EAAwC,GACtDlwB,aAAcoF,SAAF,UAAEA,EAAUhlB,YAAZ,iBAAE,EAAgByf,eAAlB,iBAAE,EAAyBqwB,oBAA3B,aAAE,EAAwC,GACtDjwB,aAAcmF,SAAF,UAAEA,EAAUhlB,YAAZ,iBAAE,EAAgByf,eAAlB,iBAAE,EAAyBqwB,oBAA3B,aAAE,EAAwC,GACtD1vB,SAAU4E,SAAF,UAAEA,EAAUhlB,YAAZ,aAAE,EAAgB+vC,SAC1B/vB,KAAMgF,SAAF,UAAEA,EAAUhlB,YAAZ,aAAE,EAAgBgwC,OACtB/vB,MAAO,CACLC,QAAS8E,SAAF,UAAEA,EAAUhlB,YAAZ,iBAAE,EAAgBigB,aAAlB,aAAE,EAAuBqE,KAChCljB,KAAM4jB,SAAF,UAAEA,EAAUhlB,YAAZ,iBAAE,EAAgBigB,aAAlB,aAAE,EAAuB7e,MAE/B+e,QAAS,CACPgN,eAAgBnI,SAAF,UAAEA,EAAUhlB,YAAZ,iBAAE,EAAgBmgB,eAAlB,aAAE,EAAyBktB,IACzCjsC,KAAM4jB,SAAF,UAAEA,EAAUhlB,YAAZ,iBAAE,EAAgBmgB,eAAlB,aAAE,EAAyB/e,OAInC21B,EACEiX,EACA,IACKI,aAAH,EAAGA,EAAaJ,MACb6B,IAEL,GAGFb,cAEFrqB,mBAAmB,MAKzB,OACE,oCACE,kBAAC,GAAD,CAAWiX,QAAO,UAAKoS,GAAiBv8B,UAAQ,GAAEy9B,GAClD,kBAAC,GAAD,CACExvC,UAAU,aACV29B,cAAenqC,GAAKA,EAAEsb,MAAM,EA7Hd,KA8HdknB,eAAiBf,GAAWA,aAAZ,EAAYA,EAAQzB,MACpC2I,kBAAmB,CAAClH,EAAQxyB,IAAUwyB,EAAOh1B,KAAOwC,EAAMxC,GAC1DA,GAAE,UAAKquC,GACPtb,WAAYA,EACZqD,QAASA,EACTP,UAAU,EACV0H,cAAeA,EACfI,cAAegS,EAA2B7vC,SAC1CH,QAASu9B,EACTzG,YAAaiZ,EACblZ,UAAU,SACVL,aAAc,CAACyH,EAAGp7B,EAAOm1B,KACR,kBAAXA,IACFqY,WAAyBxtC,KAG7Bu7B,eAAgB,IAA4B,IAA3B,SAAE/hC,KAAa+H,GAAW,EACzC,MAAMi6B,EAAYC,IAAM9/B,SAClB+/B,EAAWD,IAAM9/B,SAEvB,OACE,kBAACggC,GAAA,EAAD,eACEC,UAAW,EACXn+B,IAAKi+B,GACDn6B,GAEH/H,EACD,kBAACo5B,GAAD,CAAkBn1B,IAAK+9B,GACpBwR,EAAqB,IACtB,kBAACla,GAAD,CACEpyB,QAAS45B,EACTuB,YAAanT,IACXA,EAAM5L,mBAGPke,QASZzK,GAAY,kBAAC,GAAD,KAAe0c,KC/InBa,OApCyC,IAGjD,IAAD,QAHmD,cACvDjC,EADuD,aAEvDlY,GACI,EACJ,MAAM,aAAEqX,GAAiBU,MACjBjiC,OAAQwiC,GAAepX,eAEzBuW,EAAkBa,SAAH,UAAGA,EAAaJ,UAAhB,aAAG,EAA6B7tB,QAE/C+vB,EAAezyC,YAAkB,uBAAwB,WACzD0yC,EAAqBrvB,GAAgCovB,GAE3D,OACE,oCACE,kBAAC,GAAD,CAAWtU,QAAO,UAAKoS,EAAL,YAA8Bv8B,UAAQ,GAAEy+B,GAC1D,kBAAC,GAAD,CACE/tC,MAAOorC,EACP7X,eAAiBf,IAAD,uBAAYA,aAAZ,EAAYA,EAAQvzB,YAApB,QAA4B,IAC5Cy6B,kBAAmB,CAAClH,EAAQxyB,IAAUwyB,EAAOxH,iBAAmBhrB,EAAMgrB,eACtE2I,aAAcA,EACdn2B,GAAE,UAAKquC,EAAL,YACF5sC,KAAI,UAAK4sC,EAAL,YACJxY,UAAU,EACVl2B,QAAO,UAAEqM,OAAO2E,KAAK68B,UAAgB,WAA9B,aAAE,EAAiCj8C,KAAKs+C,IAAD,cAC5C,CACEpuC,KAAM+rC,SAAF,UAAEA,EAAeqC,UAAjB,aAAE,EAA4BpuC,KAClC+rB,eAAgBggB,SAAF,UAAEA,EAAeqC,UAAjB,aAAE,EAA4BnC,QAIhDjX,YAAa+Z,MCpBrB,MAAMC,GAA4D,IAAwB,IAAvB,cAAEpC,GAAoB,EACvF,MAAMqC,EAAuB5yC,YAAkB,gCAAiC,oBAC1E6yC,EAA6B7yC,YAAkB,oCAAqC,8BAE1F,OACE,kBAACqzB,GAAD,KACE,kBAAC,GAAD,CAAoBnc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAI1G,GAAI,KAC/C,kBAAC,GAAD,CAAW8oC,QAAQ,sBAAsByU,GACzC,kBAAC,GAAD,CACE1wC,GAAE,UAAKquC,EAAL,uBACF1N,UAAW,IACXl/B,KAAI,UAAK4sC,EAAL,uBACJ5X,YAAaka,EACbpxC,KAAK,YAOTqxC,GAA8C,IAE7C,IAAD,MAF+C,cACnDvC,GACI,EACJ,MAAM,OAAEpiC,EAAF,QAAUqrB,EAAV,cAAmBF,EAAnB,WAAkCyZ,EAAlC,cAA8ClN,GAAkBtM,gBAChE,aAAEmW,EAAF,kCAAgBQ,GAAsCE,KACtDpuB,EAAU7T,aAAH,EAAGA,EAASoiC,GACnBK,EAAyB5uB,SAAH,UAAGA,EAASU,eAAZ,aAAG,EAAkBgN,eAC3CsjB,KAAuBhxB,aAAD,EAACA,EAASE,cAChC+wB,EAAsC,oBAAlB1C,EACpB2C,EAA4BhD,EAAkCR,aAAD,EAACA,EAAekB,KAC5EuC,EAAsBC,GAA2BjzC,mBAAS6yC,IAAuBE,GAElFG,EAAe,KAEnB/Z,EAAc,GAAD,OAAIiX,EAAJ,iBAAkC,IAAI,GACnDjX,EAAc,GAAD,OAAIiX,EAAJ,iBAAkC,IAAI,GACnDjX,EAAc,GAAD,OAAIiX,EAAJ,iBAAkC,IAAI,GACnDjX,EAAc,GAAD,OAAIiX,EAAJ,aAA8B,IAAI,GAC/CjX,EAAc,GAAD,OAAIiX,EAAJ,SAA0B,IAAI,GAC3CjX,EAAc,GAAD,OAAIiX,EAAJ,UAA2B,CAAE9tB,QAAS,GAAI9e,KAAM,KAAM,GAEnEovC,EACE,CACE,CAAC,GAAD,OAAIxC,EAAJ,mBAAmC,EACnC,CAAC,GAAD,OAAIA,EAAJ,mBAAmC,EACnC,CAAC,GAAD,OAAIA,EAAJ,mBAAmC,EACnC,CAAC,GAAD,OAAIA,EAAJ,eAA+B,EAC/B,CAAC,GAAD,OAAIA,EAAJ,WAA2B,EAC3B,CAAC,GAAD,OAAIA,EAAJ,YAA4B,IAE9B,IAIE+C,EAAe,KACnBha,EAAc,GAAD,OAAIiX,EAAJ,YAA6B,CAAE7gB,eAAgB,GAAI/rB,KAAM,KAAM,GAC5EovC,EAAW,CAAE,CAAC,GAAD,OAAIxC,EAAJ,cAA8B,IAAS,IAGtD9vC,qBAAU,KACR2yC,EAAwBJ,IAAuBE,KAC9C,CAACA,IAIJzyC,qBAAU,OACH0N,aAAD,EAACA,EAAQolC,iBAAiB/Z,aAA1B,EAA0BA,EAAS+Z,gBAAiBN,IACtDI,aACAC,gBAED,CAACnlC,aAAD,EAACA,EAAQolC,gBAEZ,MAkBMC,EAAoBxzC,YAAkB,+BAAgC,mBAE5E,OACE,oCACGmzC,EACC,oCACE,kBAAC9f,GAAD,KACE,kBAAC,GAAD,CAAoBnc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAI1G,GAAI,KAC/C,kBAAC,GAAD,CACEk7C,cAAeA,EACflY,aAAc,CAACyH,EAAGp7B,EAAOm1B,KAAY,IAAD,IAClC,OAAQA,GACN,IAAK,QACHwZ,IACAC,IACA,MACF,IAAK,gBACHha,EAAc,GAAD,OACRiX,EADQ,YAEX,CACE7gB,eAAc,UAAEhrB,aAAF,EAAEA,EAAOgrB,sBAAT,QAA2B,GACzC/rB,KAAI,UAAEe,aAAF,EAAEA,EAAOf,YAAT,QAAiB,KAEvB,GAEF0vC,SASRH,GACE,kBAACpf,GAAD,CAA0B5c,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAI1G,GAAI,KACrD,kBAAC,GAAD,CAAkB+P,QAzCZ,KACpBguC,GAAwB,GACxBC,MAwCiBG,KAMX,kBAAC,GAAD,CAAejD,cAAeA,KAGhC,oCACE,kBAACld,GAAD,KACE,kBAAC,GAAD,CAAoBnc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAI1G,GAAI,KAC/C,kBAAC,GAAD,CACEk7C,cAAeA,EACflY,aAAcgb,KAGlB,kBAACvf,GAAD,CAA0B5c,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAI1G,GAAI,KACrD,kBAAC,GAAD,CACEk7C,cAAeA,EACfvR,gBAnEU,KACtBoU,GAAwB,GACxBC,KAkEY9B,sBA5EgB,KAE5B1L,EAAc0K,GAGd6C,GAAwB,WA8EnBxC,GACD,kBAAC+B,GAAD,CAAsBpC,cAAeA,MC/I9BkD,OA7BqB,IAE7B,IAAD,QAF+B,KACjChyC,GACE,EACF,MAKMiyC,EAAe,CACjBC,KAAM,CACFl+B,QAPiBzV,YAAkB,yCAA0C,+BAQ7E4D,YAPqB5D,YAAkB,6CAA8C,kEASzF4zC,MAAO,CACHn+B,QATkBzV,YAAkB,0CAA2C,6CAU/E4D,YATsB5D,YAAkB,8CAA+C,kDAa/F,OACI,kBAAC+F,GAAA,EAAD,CACIwoC,WAAY,CAAEriC,WAAY,CAAEvI,KAAM,kBAClCC,YAAa,CAAEc,MAAK,UAAEgvC,EAAajyC,UAAf,aAAE,EAAoBmC,aAC1CG,MAAO,CAAEW,MAAK,UAAEgvC,EAAajyC,UAAf,aAAE,EAAoBgU,SACpChU,KAAM,CAAEiD,MAAO,U,SC4HZpF,mBACbE,IACA2sB,GACA3G,GAA0B,aAHblmB,EAzH0C,IAKlD,IAAD,gBALoD,SACxDK,EADwD,mBAExDk0C,EAFwD,UAGxDzxC,EAHwD,kBAIxDuoB,GACI,EACJ,MAAMiR,EAAc7T,qBAAsC1C,IACpDwW,EAAiBD,aAAH,EAAGA,EAAakY,WAE9B,OAAE5F,EAAF,QAAU7pB,EAAV,OAAmBlW,EAAnB,gBAA2B8yB,EAA3B,cAA4C3H,EAA5C,YAA2DyC,GAAgBxC,eAE3Ez5B,EAAG,YAEHqpB,EACHxpB,EAEGk0C,UAAsB9V,cAF1B,EAE0BA,GAAU8V,mBADhClpB,SADJ,UACIA,EAAmBxE,cADvB,aACI,EAA2B5jB,KAG3BkT,EAAUzV,YAAkB,iCAAkC,aAC9Do8B,EAAcp8B,YAAkB,6BAA8B,UAC9D+zC,EAA0B/zC,YAAkB,mCAAoC,uBAChFg0C,EAAsBh0C,YAAkB,+BAAgC,mBACxEi0C,EAA4Bj0C,YAAkB,2CAA4C,uBAG1Fk0C,E9D2DyB,EAACC,EAAwBD,KACnDA,GAAmBC,GAAmBA,IAAmBD,EACrD,KAGFA,E8DhEgBE,CACrBjrB,SADsC,UACtCA,EAAgB0B,sBADsB,aACtC,EAAgCwpB,mBAChClrB,SAFsC,UAEtCA,EAAgB2B,uBAFsB,aAEtC,EAAiCupB,oBAG7BC,EAA6B,CAAC,CAClC3wC,KAAM,gBACN8xB,MAAOwe,EACP1b,SAAU,KACR0I,EAAgB,iBAAiB,MAWrC,OACE,kBAAC,GAAD,CACEh/B,UAAU,iBACVwqB,UAAWoP,aAAF,EAAEA,EAAgBpP,UAC3B3sB,IAAKA,IAGHukB,IAAW6pB,SAAZ,UAAYA,EAAQtjB,eAApB,iBAAY,EAAiB2pB,aAA7B,aAAY,EAAwBC,iBAAkC,IAAhBzY,GACrD,kBAAC,GAAD,CAAOt6B,KAAK,SAGd,kBAAC,GAAD,CACEuxB,KAAK,OACL3F,kBAAmBvtB,EACnBs8B,YAAaA,GAEZ3mB,IAGFomB,aAAA,EAAAA,EAAgBpP,WAEb,yBAAKkW,QA3Bc,KAAO,IAAD,KAC3Bx0B,SAAJ,UAAIA,EAAQyc,eAAZ,iBAAI,EAAiB2pB,aAArB,aAAI,EAAwBC,iBAC1Blb,EAAc,gCAAgC,KA0BxC,kBAAC,GAAD,KAAQya,GACR,kBAACjB,GAAD,CAAevC,cAAc,mBAE7B,kBAACld,GAAD,KACE,kBAACC,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAI1G,GAAI,MAClC,kBAAC,GAAD,KAAQ2+C,GACR,kBAAC,GAAD,CACE9xC,GAAG,gBACHiU,MAAOm+B,OAKXnmC,EAAOolC,eAAiB,kBAACT,GAAD,CAAevC,cAAc,qBAGzD,kBAACld,GAAD,KACE,kBAACC,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAI1G,GAAI,KAClC,kBAAC,GAAD,CACE2nC,mBAAmB,mCACnBC,cAAc,sBACdv4B,MAAOqd,GAAWoH,aAAD,EAACA,EAAgB0B,mBAGtC,kBAACyI,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAI1G,GAAI,KAClC,kBAAC,GAAD,CACE2nC,mBAAmB,gCACnBC,cAAc,mBACdv4B,MAAOykB,SAAF,UAAEA,EAAgB0B,sBAAlB,aAAE,EAAgCwpB,sBAG3C,kBAAC/gB,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAI1G,GAAI,KAClC,kBAAC,GAAD,CACE2nC,mBAAmB,+BACnBC,cAAc,kBACdv4B,MAAOoe,GAAkBqG,aAAD,EAACA,EAAgB0B,eAAgB1B,aAAjC,EAAiCA,EAAgB2B,oBAI3EopB,GAAkB,kBAAC5gB,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAI1G,GAAI,KACpD,kBAAC,GAAD,CACE2nC,mBAAmB,gCACnBC,cAAc,mBACdv4B,MAAOwvC,U,qBCrGV9L,OA/B4C,IAEpD,IAAD,gBAFsD,UAC1DhmC,GACI,EACJ,MAAMC,EAAaD,SAAH,UAAGA,EAAWE,cAAd,iBAAG,EAAmBC,YAAtB,aAAG,EAAyBF,WACtCoT,EAAUzV,YAAkB,yBAA0B,kDACtDqoC,GAAajmC,SAAA,UAAAA,EAAWkmC,oBAAX,mBAA0B,6BAA1B,eAAiDp2C,QAAS,EACvEq2C,EAAqBvoC,YAAkB,4BAA6B,0BACpEwoC,EAAgBnmC,SAAH,UAAGA,EAAYmmC,qBAAf,iBAAG,EAA2B7iC,WAA9B,aAAG,EAAgCjB,MAEtD,OACE,oCACG2jC,GACC,kBAAC5V,GAAD,KACE,kBAACI,GAAD,KAAepd,GACf,kBAACge,GAAD,KACE,kBAACmB,GAAA,EAAD,CAAajxB,KAAK,qBAAqBvB,UAAWA,MAIvDomC,GAAiBD,GAChB,kBAACpV,GAAD,KACE,kBAACC,GAAD,CAAiB,aAAYmV,EAAoBnjC,QAAUhZ,GAAMk1B,GAAal1B,EAAGo8C,aAAJ,EAAIA,EAAe/6B,OAC7F86B,EACD,kBAAC7kC,GAAA,QAAD,CAAM2B,YAAY,EAAM1B,KAAK,sBCHlC,MAAM8wC,GAA0BvG,IAAqB,IAAD,EACzD,GAAIA,SAAJ,UAAIA,EAAQtjB,eAAZ,aAAI,EAAiB2pB,MAAO,CAC1B,MAAMG,EAAiB,CACrB,YACA,YACA,cACA,yBACA,wBAGIC,EAAkBC,aACtBF,EACA7hC,aAAKq7B,EAAOtjB,QAAQ2pB,QAGtB,SAASI,aAAD,EAACA,EAAiBziD,QAG5B,OAAO,GAGH2iD,GAAmB,KAAO,IAAD,IAE7B,MAAM/Y,EAAgBvC,gBAChB,OAAE2U,EAAF,QAAU7pB,EAAV,YAAmB0X,GAAgBD,EAEzC,GAAIzX,GAAW0X,EAAc,EAC3B,OAAO,KAGT,MAAM+Y,KAAiB5G,SAAD,UAACA,EAAQtjB,eAAT,iBAAC,EAAiB2pB,aAAlB,aAAC,EAAwBC,gBAE/C,OACE,oCACGtG,GAAUuG,GAAuBvG,IAChC,kBAAC,GAAD,CAAOzsC,KAAK,UAEbqzC,GACC,kBAAC,GAAD,CAAOrzC,KAAK,WAoILgnC,OA9HyC/hC,IAAW,IAAD,4BAChE,MAAM,kBACJikB,EADI,4BAEJI,EAFI,UAGJ3oB,GACEsE,GAEE,aAAE2oC,GAAiBe,MAEnB,oBACJxiB,EADI,eAEJjB,EACAooB,iBAAiB,aAAE5nB,GAHf,sBAIJN,EAJI,aAKJH,GACE3E,qBAAsC1C,IAEpCoH,EAAYmB,EAEZvrB,EAAaD,SAAH,UAAGA,EAAWE,cAAd,iBAAG,EAAmBC,YAAtB,aAAG,EAAyBF,WACtCqmC,EAAgBrmC,SAAH,UAAGA,EAAYqmC,qBAAf,iBAAG,EAA2B/iC,WAA9B,aAAG,EAAgCjB,MAChDikC,EAAgBtmC,SAAH,UAAGA,EAAYsmC,qBAAf,aAAG,EAA2BhjC,IAE3CijC,EAAqB5oC,YAAkB,6BAA8B,mBACrEy7B,EAAcz7B,YAAkB,6BAA8B,UAC9D27B,EAAY37B,YAAkB,mCAAoC,gBAClE6oC,EAAe7oC,YAAkB,sBAAuB,wBAGxDg1C,EAAyBrqB,SAAH,UAAGA,EAAmBxE,cAAtB,aAAG,EAA2BS,MACpDquB,EAAqClqB,SAAH,UAAGA,EAA6B5E,cAAhC,aAAG,EAAqCY,UAC1EmuB,EAA2BvqB,SAAH,UAAGA,EAAmBxE,cAAtB,aAAG,EAA2BY,UACtDouB,EAAsB9F,SAAH,UAAGA,EAAclpB,cAAjB,aAAG,EAAsBY,UAC5CquB,EAAoE,iBAAzC/F,SAAP,UAAOA,EAAclpB,cAArB,iBAAO,EAAsBS,aAA7B,aAAO,EAA6BE,SAGxDC,EAAYmuB,GAA4BD,EACxCnM,GAAsB/hB,IAAeouB,GAAuBC,IAAwBF,GAA4BF,EAChHjM,GAAkBhiB,IAAciuB,IAA0BrqB,SAAzC,UAAyCA,EAAmBxE,cAA5D,aAAyC,EAA2B5jB,QAASumC,EAkCpG,OApBAroC,qBAAU,KACR,IAAKK,cAAc6rB,EACjB,OAGF,MAAMqc,EAAgBl9C,SAAS8kB,eAAe+b,GAE1Cqc,GACFr9C,OAAOs9C,SAAS,CAAEx8C,IAAKu8C,aAAF,EAAEA,EAAez7C,UAAWmgC,SAAU,aAE5D,CAACf,IAEJlsB,qBAAU,KAGJisB,GACFA,EAAaG,KAEd,CAACA,IAGF,oCACGkc,GACC,kBAACtU,GAAD,CAAe1vB,MAAO4jC,EAAe1mC,UAAU,uBAGjD,kBAACuyB,GAAD,KACG/H,GAAaqc,GACZ,oCACE,kBAACvU,GAAD,KACE,kBAACxuB,GAAA,EAAD,CACEnC,YAAa,CAAEc,MA1CvB0wC,EACK/F,SAAP,UAAOA,EAAclpB,cAArB,iBAAO,EAAsBS,aAA7B,aAAO,EAA6BE,QAGmB,iBAA9C6D,SAAP,UAAOA,EAAmBxE,cAA1B,iBAAO,EAA2BS,aAAlC,aAAO,EAAkCE,SACpC6D,SAAP,UAAOA,EAAmBxE,cAA1B,iBAAO,EAA2BS,aAAlC,aAAO,EAAkCE,aAD3C,GAuCY/iB,MAAO,CAAEW,MAAOmkC,GAChBpnC,KAAM,CAAEiD,MAAO,WAGlBimB,SAAA,UAAAA,EAAmBxE,cAAnB,mBAA2BS,aAA3B,eAAkCE,UACjC,kBAAC0N,GAAD,KACE,kBAAC,GAAoB9tB,KAM5BqiC,GACC,oCACE,kBAAC8L,GAAD,MACA,kBAAC,GAAwBnuC,GACzB,kBAAC2uC,GAAmB3uC,GACpB,kBAAC,GAAkBA,GACnB,kBAAC,GAAD,CACE+0B,YAAaA,EACbC,mBAAoB,kBACpBC,UAAWA,GAEX,kBAAChI,GAAD,CACE,aAAYiV,EACZxjC,QAAUhZ,GAAMk1B,GAAal1B,EAAGs8C,IAEhC,kBAAChlC,GAAA,QAAD,CACE2B,YAAY,EACZ1B,KAAK,eAENilC,OA3EY,IAAM,IACR,IAI4C,KC7EvE,MAAM0M,GAAe7f,GAA0BA,EAAM3+B,QAAQ,SAAU,IAiPxDwI,mBACbE,IACA2sB,GACA3G,GAA0B,kBAHblmB,EA/O+C,IAKvD,IAAD,gFALyD,SAC7DK,EAD6D,mBAE7Dk0C,EAF6D,UAG7DzxC,EAH6D,kBAI7DuoB,GACI,EACJ,MAAMiR,EAAc7T,qBAAsC1C,IACpDwW,EAAiBD,aAAH,EAAGA,EAAa2Z,eAE9BzZ,EAAgBvC,gBAEhB,OAAE2U,EAAF,OAAU//B,EAAV,YAAkB4tB,GAAgBD,EAClC0Z,EAAkBf,GAAuBvG,GAEzCpuC,EAAG,kBACHuC,GAAaD,SAAH,UAAGA,EAAWE,cAAd,iBAAG,EAAmBC,YAAtB,aAAG,EAAyBF,WACtCozC,GAAgBpzC,UAAH,UAAGA,GAAYozC,qBAAf,aAAG,EAA2B9vC,IAG3CwjB,GACHxpB,EAEGk0C,UAAsB9V,cAF1B,EAE0BA,GAAU8V,mBADhClpB,SADJ,UACIA,EAAmBxE,cADvB,aACI,EAA2B5jB,KAI3B6nB,GAAgBO,aAAH,EAAGA,EAAmBxE,OACnCuvB,IAA2BtrB,UAAA,UAAAA,GAAe7nB,YAAf,mBAAqB6nB,qBAArB,mBAAoC6X,iBAApC,eAA+C9rB,QAAS,GACnFw/B,IAAyBvrB,UAAA,UAAAA,GAAe7nB,YAAf,mBAAqB6nB,qBAArB,mBAAoCwrB,wBAApC,eAAsDz/B,QAAS,GAGxFV,GAAUzV,YAAkB,uCAAwC,mBACpEo8B,GAAcp8B,YAAkB,6BAA8B,UAE9D61C,GAAa71C,YAAkB,qBAAsB,SACrD81C,GAAsB91C,YAAkB,+BAAgC,0BACxE+1C,GAAqB/1C,YAAkB,2BAA4B,yBACnEg2C,GAAiBh2C,YAAkB,2BAA4B,qBAC/Di2C,GAAyBj2C,YAAkB,8BAA+B,uBAC1Ek2C,GAAmBl2C,YAAkB,6BAA8B,uBACnEm2C,GAAkBn2C,YAAkB,4BAA6B,6DAGjEo2C,GAA+Bp2C,YAAkB,uCAAwC,uBACzFq2C,GAAyBr2C,YAAkB,gCAAiC,uBAC5Es2C,GAAyBt2C,YAAkB,sCAAuC,sBAExF,OACE,kBAAC,GAAD,CACEiC,UAAU,uBACVwqB,UAAWoP,aAAF,EAAEA,EAAgBpP,UAC3B3sB,IAAKA,IAIH+7B,aAAA,EAAAA,EAAgBpP,YAChB+oB,GAAmC,IAAhBzZ,GACnB,kBAAC,GAAD,CAAOt6B,KAAK,UAGd,kBAAC,GAAD,CACEuxB,KAAK,OACL3F,kBAAmBvtB,EACnBs8B,YAAaA,IAEZ3mB,KAGFomB,aAAA,EAAAA,EAAgBpP,WAEb,oCACE,kBAAC4G,GAAD,KACE,kBAACC,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,MAC1B,kBAAC,GAAD,KAAY85C,IAEZ,6BACG1sB,UADH,UACGA,GAAgByB,eADnB,iBACG,EAAyB2pB,aAD5B,aACG,EAAgCgC,aACjC,kBAAC3iB,GAAD,CACE4iB,mBAAiB,EACjB/8B,kBAAgB,EAChBtU,UAAU,OACVJ,MAAO0wC,IAEP,kBAAC/xC,GAAA,QAAD,CAAM2B,YAAY,EAAM1B,KAAK,aAMrC,kBAAC0vB,GAAD,KACE,kBAACC,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,MAC1B,kBAAC,GAAD,KAAY+5C,MAETnrB,SAAD,UAACA,EAAmBxE,cAApB,aAAC,EAA2BY,YAC5B,kBAAC,GAAD,CACEpjB,KAAK,qCACLwS,MACEw/B,GAAuBliD,KAAKyP,IAAI,cAC9B,CACEwB,MAAK,UAAExB,aAAF,EAAEA,EAAMS,YAAR,QAAgB,GACrB8xB,MAAOvyB,SAAF,UAAEA,EAAMS,YAAR,aAAE,EAAYhB,OAAO,kBASxC,kBAAC0wB,GAAD,KACE,kBAACC,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAIpG,GAAI,KAClC,kBAAC,GAAD,CACEwoC,QAAQ,YACRnqB,SAA0D,mBAAhD7F,SAAA,UAAAA,EAAQyc,eAAR,mBAAiB2pB,aAAjB,eAAwBkC,uBAEjCnB,GAAYS,KAEf,kBAAC,GAAD,CACE7zC,GAAG,YACHyB,KAAK,0BACLg1B,YAAa2d,KAEf,kBAAC5V,GAAD,KAAkByV,KAEpB,kBAAC7iB,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAIpG,GAAI,KAClC,kBAAC,GAAD,CACEwoC,QAAQ,YACRnqB,SAA0D,eAAhD7F,SAAA,UAAAA,EAAQyc,eAAR,mBAAiB2pB,aAAjB,eAAwBkC,uBAEjCnB,GAAYU,KAEf,kBAAC,GAAD,CACE9zC,GAAG,YACHyB,KAAK,0BACLg1B,YAAa2d,KAEf,kBAAC5V,GAAD,KAAkByV,MAItB,kBAAC9iB,GAAD,KACE,kBAACC,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAIpG,GAAI,KAElC,kBAAC,GAAD,CACEwoC,QAAQ,yBACRnqB,SAA0D,iBAAhD7F,SAAA,UAAAA,EAAQyc,eAAR,mBAAiB2pB,aAAjB,eAAwBkC,uBAEjCR,IAGD,kBAAC,GAAD,CACEtd,YAAayd,GACbpc,aACE,CACEvE,MAAOtM,UAAF,UAAEA,GAAgByB,eAAlB,iBAAE,EAAyB2pB,aAA3B,aAAE,EAAgCmC,uBACvChyC,MAAOykB,UAAF,UAAEA,GAAgByB,eAAlB,iBAAE,EAAyB2pB,aAA3B,aAAE,EAAgCmC,wBAG3Cze,eAAiBf,IAAD,aAAYA,EAAOlqC,eAAe,SAAtB,UAAiCkqC,aAAjC,EAAiCA,EAAQzB,aAAzC,QAAkD,GAAKyB,GACnFkH,kBAAmB,CAAClH,EAAQyf,KAAmBzf,aAAA,EAAAA,EAAQxyB,UAAUiyC,aAAlB,EAAkBA,EAAgBjyC,OACjFxC,GAAG,yBACHyB,KAAK,uCACLo0B,UAAU,EACVl2B,SACG8oB,SAAD,UAACA,EAAmBxE,cAApB,aAAC,EAA2BY,WAOxB,GANF2uB,cADF,EACEA,GAA0BjiD,KAAIyP,IAAI,CAE9BuyB,MAAM,GAAD,OAAKvyB,EAAKS,KAAV,aAAmBT,EAAKwzC,uBAAxB,KACLhyC,MAAOxB,EAAKwzC,8BAS1B,kBAACpjB,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAIpG,GAAI,KAClC,kBAAC,GAAD,CACEwoC,QAAQ,cACRnqB,SAA0D,iBAAhD7F,SAAA,UAAAA,EAAQyc,eAAR,mBAAiB2pB,aAAjB,eAAwBkC,uBAEjCnB,GAAYY,KAEf,kBAAC,GAAD,CACEh0C,GAAG,cACHyB,KAAK,4BACLg1B,YAAa0d,QAUrB,kBAAChjB,GAAD,KACE,kBAACC,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAI1G,GAAI,KAClC,kBAAC,GAAD,CACE2nC,mBAAmB,qBACnBC,cAAc,QACdv4B,MAAOykB,UAAF,UAAEA,GAAgByB,eAAlB,iBAAE,EAAyB2pB,aAA3B,aAAE,EAAgCgC,gBAG3C,kBAACjjB,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAI1G,GAAI,KAClC,kBAAC,GAAD,CACE2nC,mBAAmB,+BACnBC,cAAc,yBACdv4B,MAAOykB,UAAF,UAAEA,GAAgByB,eAAlB,iBAAE,EAAyB2pB,aAA3B,aAAE,EAAgCkC,wBAG3C,kBAACnjB,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAI1G,GAAI,KAClC,kBAAC,GAAD,CACE2nC,mBAAmB,6BACnBC,cAAc,gBACdv4B,MAAO8f,GAAkB2E,UAAD,UAACA,GAAgByB,eAAjB,iBAAC,EAAyB2pB,aAA1B,aAAC,EAAgCmC,uBAAwBvtB,UAAzD,UAAyDA,GAAgByB,eAAzE,iBAAyD,EAAyB2pB,aAAlF,aAAyD,EAAgC7vB,gBAGrH,kBAAC4O,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAI1G,GAAI,KAClC,kBAAC,GAAD,CACE2nC,mBAAmB,2BACnBC,cAAc,wBACdv4B,MAAOykB,UAAF,UAAEA,GAAgByB,eAAlB,iBAAE,EAAyB2pB,aAA3B,aAAE,EAAgCqC,aAG3C,kBAACtjB,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAI1G,GAAI,KAClC,kBAAC,GAAD,CACE2nC,mBAAmB,2BACnBC,cAAc,oBACdv4B,MAAOykB,UAAF,UAAEA,GAAgByB,eAAlB,iBAAE,EAAyB2pB,aAA3B,aAAE,EAAgCsC,kBCnOxCniB,OArCsChuB,IACnD,MAAMtE,EAAYsE,aAAH,EAAGA,EAAOtE,UACnBuyB,EAAkB30B,YAAkB,yBAA0B,kDAEpE,OACE,kBAAC,GAAD,KACE,kBAACm0B,GAAD,KACE,kBAACK,GAAD,KACE,kBAACjB,GAAD,6BACA,kBAACC,GAAD,uKAGA,kBAACA,GAAD,KACE,qEADF,4GAIA,kBAACf,GAAD,KACE,kBAACgB,GAAD,KACE,kBAACmB,GAAA,EAAD,CAAajxB,KAAK,wBAAwBvB,UAAWA,MAGzD,kBAACoxB,GAAD,KACE,uDADF,+IAEuC,oGAFvC,KAIA,kBAACf,GAAD,KACE,kBAACI,GAAD,KAAe8B,GACf,kBAAClB,GAAD,KACE,kBAACmB,GAAA,EAAD,CAAajxB,KAAK,qBAAqBvB,UAAWA,UCkOjD9C,mBACbE,IACA2sB,GACA3G,GAA0B,mBAHblmB,EAtOgD,IAKxD,IAAD,oHAL0D,SAC9DK,GAD8D,mBAE9Dk0C,GAF8D,UAG9DzxC,GAH8D,kBAI9DuoB,IACI,EACJ,MAAMiR,GAAc7T,qBAAsC1C,IACpDwW,GAAiBD,cAAH,EAAGA,GAAamZ,iBAE9B,OAAE5mC,IAAWorB,eACbnP,GAAgBO,cAAH,EAAGA,GAAmBxE,OACnC2wB,GAAqB1sB,UAAH,UAAGA,GAAe7nB,YAAlB,iBAAG,EAAqB6nB,qBAAxB,iBAAG,EAAoC2sB,mBAAvC,aAAG,EAAiD5gC,MACtE6gC,GAAgB5sB,UAAH,UAAGA,GAAe7nB,YAAlB,iBAAG,EAAqB6nB,qBAAxB,iBAAG,EAAoC6sB,mBAAvC,aAAG,EAAiD9gC,MACjE+gC,GAAoB9sB,UAAH,UAAGA,GAAe7nB,YAAlB,iBAAG,EAAqB6nB,qBAAxB,iBAAG,EAAoC+sB,yBAAvC,aAAG,EAAuDhhC,MAE3ErW,GAAG,mBAGHqpB,GACHxpB,GAEGk0C,YAAsB9V,cAF1B,EAE0BA,GAAU8V,mBADhClpB,UADJ,UACIA,GAAmBxE,cADvB,aACI,EAA2B5jB,KAG3BkT,GAAUzV,YAAkB,wCAAyC,oBACrEo8B,GAAcp8B,YAAkB,6BAA8B,UAC9Do3C,GAAkBp3C,YAAkB,0BAA2B,cAC/Dq3C,GAAqBr3C,YAAkB,8BAA+B,kBACtEs3C,GAAmBt3C,YAAkB,mBAAoB,iBACzDu3C,GAAcv3C,YAAkB,sBAAuB,UACvDw3C,GAAkBx3C,YAAkB,iCAAkC,2DACtEi+B,GAA0Bj+B,YAAkB,iCAAkC,iBAC9Ey3C,GAAoBp0B,GAAgCk0B,IAEpDG,GACN,CAAC,CAAC7wB,KAAM,EAAGljB,KAAM,QAAS,CAACkjB,KAAM,EAAGljB,KAAM,wBAAyB,CAACkjB,KAAM,EAAGljB,KAAM,yBAEnF,OACE,kBAAC,GAAD,CACE1B,UAAU,wBACVwqB,UAAWoP,cAAF,EAAEA,GAAgBpP,UAC3B3sB,IAAKA,IAEL,kBAAC,GAAD,CACEkzB,KAAK,gBACL3F,kBAAmBvtB,GACnBs8B,YAAaA,IAEZ3mB,KAGFomB,cAAA,EAAAA,GAAgBpP,WAEb,oCACE,kBAAC4G,GAAD,KACE,kBAACC,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAI1G,GAAI,KAClC,kBAAC,GAAD,CAAW8oC,QAAQ,+BAA+BiZ,IAClD,kBAAC,GAAD,CACEpd,aAAc7rB,UAAF,UAAEA,GAAQyc,eAAV,iBAAE,EAAiB+sB,gBAAnB,aAAE,EAA2BC,WACzC11C,GAAG,8BACH61B,UAAU,EACVp0B,KAAK,8BACL9B,QAAO,UAAEi1C,cAAF,EAAEA,GAAoBrjD,KAAIyP,GAAQA,aAAJ,EAAIA,EAAMS,cAAxC,QAAiD,GACxDg1B,YAAasF,MAGjB,kBAAC3K,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAI1G,GAAI,KAClC,kBAAC,GAAD,CACEo3B,WAAS,EACTuQ,mBAAmB,0BACnBC,cAAc,aACdv4B,MAAOykB,UAAF,UAAEA,GAAgByB,eAAlB,iBAAE,EAAyB+sB,gBAA3B,aAAE,EAAmCE,aAG9C,kBAACvkB,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAI1G,GAAI,KAClC,kBAAC,GAAD,CACEo3B,WAAS,EACTuQ,mBAAmB,2BACnBC,cAAc,cACdv4B,MAAOykB,UAAF,UAAEA,GAAgByB,eAAlB,iBAAE,EAAyB+sB,gBAA3B,aAAE,EAAmCG,YAIhD,kBAACzkB,GAAD,KACqD,QAAlDlK,UAAA,UAAAA,GAAgByB,eAAhB,mBAAyB+sB,gBAAzB,eAAmCI,aAAyE,MAAlD5uB,UAAA,UAAAA,GAAgByB,eAAhB,mBAAyB+sB,gBAAzB,eAAmCI,aAC5F,kBAACzkB,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAI1G,GAAI,KAClC,kBAAC,GAAD,CACEo3B,WAAS,EACTuQ,mBAAmB,2BACnBC,cAAc,cACdv4B,MAAOykB,UAAF,UAAEA,GAAgByB,eAAlB,iBAAE,EAAyB+sB,gBAA3B,aAAE,EAAmCI,cAIhD,kBAACzkB,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAI1G,GAAI,KAClC,kBAAC,GAAD,CAAW8oC,QAAQ,iBAAiBkZ,IACpC,kBAAC,GAAD,CACEn1C,GAAG,gBACHyB,KAAK,iCACLk/B,UAAW,OAIjB,kBAACxP,GAAD,KACE,kBAACC,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAI1G,GAAI,KAClC,kBAAC,GAAD,CAAW8oC,QAAQ,uCAAnB,6DAGE,kBAAC,GAAD,CACEnE,aAAc7rB,UAAF,UAAEA,GAAQyc,eAAV,iBAAE,EAAiB+sB,gBAAnB,aAAE,EAA2BK,mBACzC91C,GAAG,sCACH61B,UAAU,EACVp0B,KAAK,sCACL9B,QAAO,UAAE61C,cAAF,EAAEA,GAA2BjkD,KAAIyP,GAAQA,aAAJ,EAAIA,EAAMS,cAA/C,QAAwD,GAC/Dg1B,YAAasF,OAInB,kBAAC5K,GAAD,KACE,kBAACC,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAI1G,GAAI,MAElC8zB,UAAA,UAAAA,GAAgByB,eAAhB,mBAAyB+sB,gBAAzB,eAAmC1zB,eACjCkF,UADF,UACEA,GAAgByB,eADlB,iBACE,EAAyBqtB,kBAD3B,aACE,EAAqCC,UACnC,kBAAC,GAAD,CACAzrB,WAAS,EACTuQ,mBAAmB,mBACnBC,cAAc,gBACdv4B,MAAOsf,IAAWmF,UAAA,UAAAA,GAAgByB,eAAhB,mBAAyB+sB,gBAAzB,eAAmC1zB,cAAe,GAAI,eAExE,oCACA,kBAAC,GAAD,CAAWka,QAAQ,eAAemZ,IAClC,kBAAC,GAAD,CACE3zC,KAAK,+BACLg1B,YAAY,aACZ2C,UAAU,EACV75B,KAAK,OACLohC,UAAW,GACXC,UAAU,cAKpB,kBAACxP,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAI1G,GAAI,MACjC8zB,UAAA,UAAAA,GAAgByB,eAAhB,mBAAyB+sB,gBAAzB,eAAmCQ,QAChC,kBAAC,GAAD,CACA1rB,WAAS,EACTuQ,mBAAmB,sBACnBC,cAAc,SACdv4B,MAAOykB,UAAF,UAAEA,GAAgByB,eAAlB,iBAAE,EAAyB+sB,gBAA3B,aAAE,EAAmCQ,SAE1C,oCACA,kBAAC,GAAD,CAAWha,QAAQ,2BAA2BoZ,IAC9C,kBAAC,GAAD,CACEvd,aAAc7rB,UAAF,UAAEA,GAAQyc,eAAV,iBAAE,EAAiB+sB,gBAAnB,aAAE,EAA2BQ,OACzCj2C,GAAG,0BACH61B,UAAU,EACVp0B,KAAK,0BACL9B,QAAO,UAAEm1C,cAAF,EAAEA,GAAevjD,KAAIyP,GAAQA,aAAJ,EAAIA,EAAMS,cAAnC,QAA4C,GACnDg1B,YAAa8e,QAMvB,kBAACpkB,GAAD,KACE,kBAACC,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAI1G,GAAI,KAClC,kBAAC,GAAD,CAAW8oC,QAAQ,uCAAuCqZ,IAC1D,kBAAC,GAAD,CACExd,aAAc7rB,UAAF,UAAEA,GAAQyc,eAAV,iBAAE,EAAiB+sB,gBAAnB,aAAE,EAA2BS,mBACzCl2C,GAAG,sCACH61B,UAAU,EACVp0B,KAAK,sCACL9B,QAAO,UAAEq1C,cAAF,EAAEA,GAAmBzjD,KAAIyP,GAAQA,aAAJ,EAAIA,EAAMS,cAAvC,QAAgD,GACvDg1B,YAAasF,OAKnB,kBAACrJ,GAAA,EAAD,CAAajxB,KAAK,wBAAwBvB,UAAWA,MAGvD,kBAACixB,GAAD,KACE,kBAACC,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAI1G,GAAI,KAClC,kBAAC,GAAD,CACE2nC,mBAAmB,yBACnBC,cAAc,YACdv4B,MAAOykB,UAAF,UAAEA,GAAgByB,eAAlB,iBAAE,EAAyB+sB,gBAA3B,aAAE,EAAmCxrC,YAG9C,kBAACmnB,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAI1G,GAAI,KAClC,kBAAC,GAAD,CACE2nC,mBAAmB,8BACnBC,cAAc,iBACdv4B,MAAOykB,UAAF,UAAEA,GAAgByB,eAAlB,iBAAE,EAAyB+sB,gBAA3B,aAAE,EAAmCU,iBAG9C,kBAAC/kB,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAI1G,GAAI,MAClC,kBAAC,GAAD,CACE2nC,mBAAmB,0BACnBC,cAAc,4DACdv4B,MAAOykB,UAAF,UAAEA,GAAgByB,eAAlB,iBAAE,EAAyB+sB,gBAA3B,aAAE,EAAmCK,sBAG9C,kBAAC1kB,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAI1G,GAAI,KAClC,kBAAC,GAAD,CACE2nC,mBAAmB,mBACnBC,cAAc,gBACdv4B,MAAOsf,IAAWmF,UAAA,UAAAA,GAAgByB,eAAhB,mBAAyB+sB,gBAAzB,eAAmC1zB,cAAe,GAAI,gBAG5E,kBAACqP,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAI1G,GAAI,KAClC,kBAAC,GAAD,CACE2nC,mBAAmB,sBACnBC,cAAc,SACdv4B,MAAOykB,UAAF,WAAEA,GAAgByB,eAAlB,mBAAE,GAAyB+sB,gBAA3B,cAAE,GAAmCQ,UAG9C,kBAAC7kB,GAAD,CAAOpc,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAI1G,GAAI,KAClC,kBAAC,GAAD,CACE2nC,mBAAmB,2BACnBC,cAAc,8CACdv4B,MAAOykB,UAAF,WAAEA,GAAgByB,eAAlB,mBAAE,GAAyB+sB,gBAA3B,cAAE,GAAmCS,2B,UCzPnD,MAAME,GAA8B,sCAE9BC,GAAoC,aAIpCC,GAA4B,4ECPzCrqB,aAAcA,QAAU,UAAU,SAAUsqB,EAASC,GACnD,OAAO3qD,KAAKohC,WAAU,SAAUzqB,EAAO0qB,GAErC,OADA1qB,EAAQ0f,KAAOgL,EAAeqpB,EAASC,IAC1Br0B,UAAY3f,EAAMi0C,SAAW,IAAIzmC,KAAK,UAexCic,UCFR,MAAMyqB,GAA8C,CACzD30B,YAAa,CACX40B,QAASn1B,GAAmB1jB,YAAkB,mBAAoB,iBAAkB,UAAWA,YAAkB,6BAA8B,gDAEjJkiB,aAAc,CACZlO,SAAUuP,GAAoBvjB,YAAkB,6BAA8B,oBAEhF0iB,QAAS,CACPgN,eAAgB,CACd1b,SAAUuP,GAAoBvjB,YAAkB,uBAAwB,cAG5E42C,UAAW,CACTiC,QAAS74C,YAAkB,8BAA+Bw4C,IAC1DxkC,SAAUuP,GAAoBvjB,YAAkB,2BAA4B,2BAE9E62C,UAAW,CACTgC,QAAS74C,YAAkB,8BAA+Bw4C,IAC1DxkC,SAAUuP,GAAoBvjB,YAAkB,2BAA4B,uBAE9E0kB,YAAa,CACXm0B,QAAS74C,YAAkB,+BFhCgB,8EEiC3CgU,SAAUuP,GAAoBvjB,YAAkB,6BAA8B,kBAEhF02C,uBAAwB,CACtB1iC,SAAUuP,GAAoBvjB,YAAkB,8BAA+B,yBAEjFy2C,qBAAsB,CACpBziC,SAAUuP,GAAoBvjB,YAAkB,+BAAgC,4BAElFw0C,eAAgB,CACdsE,aAAc94C,YAAkB,6CAA8C,mEAIrE+4C,GAAyBC,GAAyD7qB,GAAI8qB,OAAO,CACxGrC,UAAWzoB,GAAI+qB,SAASC,SACrBrqB,QAAQwpB,GAA6B,CACpCxxB,QAASkyB,EAA0BpC,UAAUiC,QAC7CO,oBAAoB,IAErB3qB,KAAK,uBAAwB,CAC5BC,GAAI,iBACJ9b,KAAMub,GAAI+qB,SAASC,SAASnlC,SAASglC,EAA0BpC,UAAU5iC,YAG7E6iC,UAAW1oB,GAAI+qB,SAASC,SACrBrqB,QAAQwpB,GAA6B,CACpCxxB,QAASkyB,EAA0BnC,UAAUgC,QAC7CO,oBAAoB,IAErB3qB,KAAK,uBAAwB,CAC5BC,GAAI,aACJ9b,KAAMub,GAAI+qB,SAASC,SAASnlC,SAASglC,EAA0BnC,UAAU7iC,YAG7E0Q,YAAayJ,GAAI+qB,SAASC,SACvBrqB,QAAQypB,GAAmC,CAC1CzxB,QAASkyB,EAA0Bt0B,YAAYm0B,QAC/CO,oBAAoB,IAErB3qB,KAAK,uBAAwB,CAC5BC,GAAI,eACJ9b,KAAMub,GAAI+qB,SAASC,SAASnlC,SAASglC,EAA0Bt0B,YAAY1Q,YAG/E0iC,uBAAwBvoB,GAAI+qB,SAASC,SAClC1qB,KAAK,uBAAwB,CAC5BC,GAAI,eACJ9b,KAAMub,GAAI+qB,SAASC,SAASnlC,SAASglC,EAA0BtC,uBAAuB1iC,YAG1FyiC,qBAAsBtoB,GAAI+qB,SAASC,SAASnlC,SAASglC,EAA0BvC,qBAAqBziC,UAGpGuiC,aAAcpoB,GAAI+qB,SAASC,SAG3B3E,eAAgBrmB,GAAIkrB,UAAUpoC,KAAK,gBAAiB+nC,EAA0BxE,eAAesE,cAAe5rD,IAASA,MAG1GosD,GAAsB,CACjC5J,EACAG,EACAmJ,KAEA,MAAMO,EAA2BprB,GAAI8qB,OAAO,CAC1CrB,WAAYzpB,GAAI+qB,SAASC,SACzBtB,UAAW1pB,GAAI+qB,SAASC,SACxBrB,QAAS3pB,GAAI+qB,SAASC,SACtBd,cAAelqB,GAAI+qB,SAASC,SAC5Bl1B,YAAakK,GAAIqrB,OAAO3qB,WAAWtK,OAAOrD,IAAkB,GACzDuN,KAAK,WAAY,CAChBC,IAAI,EACJ9b,KAAMub,GAAIqrB,OACPj1B,OAAOrD,IAAkB,GACzBu4B,UAAUT,EAA0B/0B,YAAY40B,aAInDa,EAA0BvrB,GAAI8qB,OAAO,CACzC5E,mBAAoBlmB,GAAI+qB,SAASC,SACjCj3B,aAAciM,GAAI+qB,SAASC,SAASnlC,SAASglC,EAA0B92B,aAAalO,UACpFmO,aAAcgM,GAAI+qB,SAASC,SAC3B/2B,aAAc+L,GAAI+qB,SAASC,SAC3Bx2B,SAAUwL,GAAI+qB,SAASzqB,KAAK,0BAA0B,CAAChM,EAAS+M,KAC9D,MAAM9M,EAAUgtB,GAAgBA,EAAajtB,GAU7C,OARIC,aAAJ,EAAIA,EAASyuB,eACX3hB,EAASA,EAAOxb,SAASuP,GAAoBb,EAAQwuB,kBAGnDxuB,aAAJ,EAAIA,EAASi3B,iBACXnqB,EAASA,EAAOV,QAAQpM,EAAQi3B,cAAej2B,GAAmBhB,EAAQwuB,iBAGrE1hB,KAETjN,KAAM4L,GAAI+qB,SAASzqB,KAAK,0BAA0B,CAAChM,EAAS+M,KAAY,IAAD,IACrE,OAAOkgB,IAAY,UAAIA,EAAajtB,UAAjB,aAAI,EAAuBwuB,WAAYzhB,EAAOxb,SAASuP,GAAmB,UAACmsB,EAAajtB,UAAd,aAAC,EAAuBuuB,cAAgBxhB,KAEvIhN,MAAO2L,GAAI8qB,SAASxqB,KAAK,0BAA0B,CAAChM,EAAS+M,KAAY,IAAD,IAMpB,EALlD,OAAKkgB,IAAgB,UAACA,EAAajtB,UAAd,aAAC,EAAuButB,UAKzCH,EAAoBH,aAAD,EAACA,EAAejtB,IAC9B0L,GAAI8qB,OAAO,CAChBx2B,QAAS0L,GAAI+qB,SAASllC,SAASuP,GAAmB,UAACmsB,EAAajtB,UAAd,aAAC,EAAuBsuB,aAC1EptC,KAAMwqB,GAAI+qB,WAKP/qB,GAAI8qB,OAAO,CAChBx2B,QAAS0L,GAAI+qB,SACbv1C,KAAMwqB,GAAI+qB,SAASllC,SAASuP,GAAmB,UAACmsB,EAAajtB,UAAd,aAAC,EAAuBsuB,eAdhEvhB,KAiBX9M,QAASyL,GAAI8qB,OAAO,CAClBvpB,eAAgBvB,GAAI+qB,SAASllC,SAASglC,EAA0Bt2B,QAAQgN,eAAe1b,YAEzF4lC,UAAWzrB,GAAIkrB,UACfQ,mBAAoB1rB,GAAI+qB,SAASC,SACjCW,2BAA4B3rB,GAAI+qB,SAASC,WAG3C,OAAOhrB,GAAI8qB,SAAS7qB,MAAM,CACxBxD,QAASuD,GAAI8qB,OAAO,CAClBtB,SAAU4B,EACVhF,MAAOwE,GAAsBC,KAE/BnuB,eAAgB6uB,EAChBnG,cAAeplB,GAAIkrB,UACnBvuB,gBAAiBqD,GAAI8qB,SAASxqB,KAAK,gBAAiB,CAClDC,IAAI,EACJ9b,KAAM8mC,OC0QGp6C,mBACbE,IADaF,EAzZ6E,IAGrF,IAAD,wBAHuF,SAC3FpB,EAD2F,SAE3FyB,GACI,EACJ,MAAMysB,EAAgBrE,qBAAWJ,KAC3B,aAAE+nB,EAAF,aAAgBL,EAAhB,oBAA8BQ,GAAwBO,KACtD2J,EAAU15C,iBAAO,MAEjBisB,EAAqBvE,qBAAWwE,OAChC,YAAExkB,EAAF,eAAeG,GAAmBokB,EAExC7rB,qBAAU,KAAO,IAAD,EAEd4uC,SAAA,UAAAA,EAAcroB,eAAd,cAAAqoB,KACC,KAEC,UAAAnhC,OAAO2E,KAAKuZ,UAAiB,WAA7B,eAAkCl6B,QAAS,GAC7Cs6B,aAAW,8EAIb,MAAOC,EAAWC,GAAgBvsB,oBAAS,IACpCwsB,EAAgBC,GAAqBzsB,mBAAS,OAC9C0sB,EAAuBC,GAA4B3sB,mBAAS4sB,aAAoB5L,MAAeC,KAI/F4L,EAAwBC,GAA6B9sB,oBAAS,GAGrEM,qBAAU,KAAO,IAAD,IAEd2rB,SAAA,UAAAA,EAAezB,yBAAf,mBAAkC3D,eAAlC,gBAA4C,CAC1CC,kBAAkB,EAClBC,mBAAmB,MAEpB,IAGHzmB,qBAAU,KACsB,IAAD,QAQoC,IAKrC,IAGoC,IAhB3Dd,GAAa8sB,IAEhBL,SAAA,UAAAA,EAAezB,yBAAf,mBAAkC3D,eAAlC,gBAA4C,CAC1CC,kBAAkB,EAClBC,mBAAmB,KAIjBkF,SAAJ,UAAIA,EAAerB,mCAAnB,iBAAI,EAA4C5E,cAAhD,aAAI,EAAoDS,SACtDwF,SAAA,UAAAA,EAAerB,mCAAf,mBAA4CrD,aAA5C,oBAIC/nB,GAAY8sB,KAGXL,SAAJ,UAAIA,EAAerB,mCAAnB,iBAAI,EAA4C5E,cAAhD,aAAI,EAAoD5jB,QACtD6pB,SAAA,UAAAA,EAAerB,mCAAf,mBAA4CrD,aAA5C,qBAGH,CAAC/nB,EAAU8sB,IAGdS,aAAU,kBAAMd,SAAN,UAAMA,EAAerB,mCAArB,aAAM,EAA4CrD,WAE5D,MAAMyF,EAAe,CAACC,EAAeC,KAC/BD,IACFA,WAAO5L,kBAETkL,GAAa,GAETW,GACFT,EAAkBS,GAIU,mBAAnBnlB,IACTA,EACEI,aACE,CAAC,QACD,CACEuJ,SAAU,uBACVyb,OAAQD,UAAqB,IAE/BtlB,IAEJU,aAAe,gBAIb8kB,EAAgBH,IACpBA,EAAM5L,iBAGwB,mBAAnBtZ,IACTA,EACEI,aACE,CAAC,QACD,CACEyX,SAAU,wCAEZhY,IAEJU,aAAe,YAIjB,MAAM+kB,EAAYxtB,YAAkB,4BAA6B,4EAG7DrU,OAAO8hC,QAAQD,IACjBd,GAAa,GAGbI,GAAyB,GAEzBG,GAA0B,GAII,mBAAnB/kB,IACTA,EACEI,aACE,CAAC,QACD,CACEC,SAAU,kBACVC,gBAAiB,mBAEnBT,IAEJU,aAAe,eAKa,mBAAnBP,IACTA,EACEI,aACE,CAAC,QACD,CACEC,SAAU,mBACVC,gBAAiB,oBAEnBT,IAEJU,aAAe,cAInBmkB,EAAkB,MAElBjhC,OAAOa,OAAO,CACZC,IAAK,EACLC,KAAM,EACNghC,SAAU,YAIRC,EAAcP,MAMd1oB,EAAmC,CACvCsoB,yBACAY,oBAAqBnB,EACrBE,eAAgBA,EAChBE,sBAAuBA,EACvBH,aAAcA,EACdqoB,gBAAiB,CACftoB,YACAc,eACAI,aACAR,gBAEFooB,eAAgB,CACd9oB,YACAc,eACAI,aACAR,gBAEF2mB,UAAW,CACTrnB,YACAc,eACAI,aACAR,iBAgFE6sB,IACH5tB,SAAD,UAACA,EAAezB,yBAAhB,iBAAC,EAAkCxE,cAAnC,aAAC,EAA0CY,aACxCqF,SADH,UACGA,EAAezB,yBADlB,iBACG,EAAkCxE,cADrC,aACG,EAA0C5jB,MAEzC03C,IAA4BD,MAC9B5tB,SAAD,UAACA,EAAezB,yBAAhB,iBAAC,EAAkCxE,cAAnC,iBAAC,EAA0C5jB,YAA3C,iBAAC,EAAgDqoB,eAAjD,iBAAC,EAAyD2pB,aAA1D,aAAC,EAAgEC,gBAGpE/zC,qBAAU,KACJu5C,IAA8BhtB,IAA0B+sB,aAAxD,EAAwDA,EAAS5oB,UACnE4oB,EAAQ5oB,QAAQ+oB,eACbtnC,MACCs7B,IACMuG,GAAuBvG,IACzBxhB,GAAa,QAKtB,CAACqtB,EAAS/sB,EAAwBgtB,IA+ErC,OACE,kBAAC30B,GAAYM,SAAb,CAAsBjhB,MAAOA,GAC1Bs1C,EAEG,kBAAC,KAAD,CACE3pB,cAlLmB,MAAiC,IAAD,uJAC3D,MAAM7J,GAAc4F,SAAH,UAAGA,EAAezB,yBAAlB,iBAAG,EAAkCxE,cAArC,aAAG,EAA0C5jB,KACxD0hB,GAAcD,IAAWwC,UAAA,UAAAA,GAAaoE,eAAb,mBAAsB+sB,gBAAtB,eAAgC1zB,cAAe,GAAI,aAK5Ek2B,GAAkBx6B,aAAK,CAAC,gBAE9B,MAAO,CACL0O,eAAgB7H,cAAF,EAAEA,GAAa6H,eAC7BzD,QAAS,CACP+sB,SAAU,CACRC,YAAYpxB,UAAA,UAAAA,GAAaoE,eAAb,mBAAsB+sB,gBAAtB,eAAgCC,aAAc,GAC1DO,QAAQ3xB,UAAA,UAAAA,GAAaoE,eAAb,mBAAsB+sB,gBAAtB,eAAgCQ,SAAU,GAClDN,WAAWrxB,UAAA,UAAAA,GAAaoE,eAAb,mBAAsB+sB,gBAAtB,eAAgCE,YAAa,GACxDG,oBAAoBxxB,UAAA,UAAAA,GAAaoE,eAAb,mBAAsB+sB,gBAAtB,eAAgCK,qBAAsB,OAC1ED,YAAYvxB,UAAA,UAAAA,GAAaoE,eAAb,mBAAsB+sB,gBAAtB,eAAgCI,aAAc,GAC1DD,SAAStxB,UAAA,UAAAA,GAAaoE,eAAb,mBAAsB+sB,gBAAtB,eAAgCG,UAAW,GACpDO,eAAe7xB,UAAA,UAAAA,GAAaoE,eAAb,mBAAsB+sB,gBAAtB,eAAgCU,gBAAiB,GAChEp0B,YAAaA,GACbm0B,oBAAoB5xB,UAAA,UAAAA,GAAaoE,eAAb,mBAAsB+sB,gBAAtB,eAAgCS,qBAAsB,GAC1EF,SAAU1xB,UAAF,UAAEA,GAAaoE,eAAf,iBAAE,EAAsBqtB,kBAAxB,aAAE,EAAkCC,UAE9C3D,MAAO,CACLmC,wBAAwBlwB,UAAA,UAAAA,GAAaoE,eAAb,mBAAsB2pB,aAAtB,eAA6BmC,yBAA0B,GAC/EhyB,aAAa8B,UAAA,UAAAA,GAAaoE,eAAb,mBAAsB2pB,aAAtB,eAA6B7vB,cAAe,GACzDkyB,WAAWpwB,UAAA,UAAAA,GAAaoE,eAAb,mBAAsB2pB,aAAtB,eAA6BqC,YAAa,GACrDC,WAAWrwB,UAAA,UAAAA,GAAaoE,eAAb,mBAAsB2pB,aAAtB,eAA6BsC,YAAa,GACrDJ,sBAAsBjwB,UAAA,UAAAA,GAAaoE,eAAb,mBAAsB2pB,aAAtB,eAA6BkC,uBAAwB,GAC3EjC,gBAAgBhuB,UAAA,UAAAA,GAAaoE,eAAb,mBAAsB2pB,aAAtB,eAA6BC,kBAAkB,IAGnE3pB,eAAgB,CACdwpB,oBAAoB7tB,UAAA,UAAAA,GAAaqE,sBAAb,eAA6BwpB,qBAAsB,GACvEnyB,cAAcsE,UAAA,UAAAA,GAAaqE,sBAAb,eAA6B3I,eAAgB,GAC3DC,cAAcqE,UAAA,UAAAA,GAAaqE,sBAAb,eAA6B1I,eAAgB,GAC3DC,cAAcoE,UAAA,UAAAA,GAAaqE,sBAAb,eAA6BzI,eAAgB,GAC3DO,UAAU6D,UAAA,UAAAA,GAAaqE,sBAAb,eAA6BlI,WAAY,GACnDJ,MAAMiE,UAAA,UAAAA,GAAaqE,sBAAb,eAA6BtI,OAAQ,GAC3CC,MAAO,CACLC,SAAS+D,UAAA,UAAAA,GAAaqE,sBAAb,mBAA6BrI,aAA7B,eAAoCC,UAAW,GACxD9e,MAAM6iB,UAAA,UAAAA,GAAaqE,sBAAb,mBAA6BrI,aAA7B,eAAoC7e,OAAQ,IAEpD+e,QAAS,CACPgN,gBAAgBlJ,UAAA,UAAAA,GAAaqE,sBAAb,mBAA6BnI,eAA7B,eAAsCgN,iBAAkB,GACxE/rB,MAAM6iB,UAAA,UAAAA,GAAaqE,sBAAb,mBAA6BnI,eAA7B,eAAsC/e,OAAQ,IAEtDi2C,WAAWpzB,UAAA,UAAAA,GAAaqE,sBAAb,eAA6B+uB,aAAa,EACrDC,oBAAoBrzB,UAAA,UAAAA,GAAaqE,sBAAb,eAA6BgvB,qBAAsB,GACvEC,4BAA4BtzB,UAAA,UAAAA,GAAaqE,sBAAb,eAA6BivB,6BAA8B,IAEzFvG,cAAe6G,aAAOD,GAAgB3zB,cAAD,EAACA,GAAaqE,gBAAiBsvB,GAAgB3zB,cAAD,EAACA,GAAasE,kBACjGA,gBAAiB,CACfupB,oBAAoB7tB,UAAA,UAAAA,GAAasE,uBAAb,eAA8BupB,qBAAsB,GACxEnyB,cAAcsE,UAAA,UAAAA,GAAasE,uBAAb,eAA8B5I,eAAgB,GAC5DC,cAAcqE,UAAA,WAAAA,GAAasE,uBAAb,iBAA8B3I,eAAgB,GAC5DC,cAAcoE,UAAA,WAAAA,GAAasE,uBAAb,iBAA8B1I,eAAgB,GAC5DO,UAAU6D,UAAA,WAAAA,GAAasE,uBAAb,iBAA8BnI,WAAY,GACpDJ,MAAMiE,UAAA,WAAAA,GAAasE,uBAAb,iBAA8BvI,OAAQ,GAC5CC,MAAO,CACLC,SAAS+D,UAAA,WAAAA,GAAasE,uBAAb,sBAA8BtI,aAA9B,iBAAqCC,UAAW,GACzD9e,MAAM6iB,UAAA,WAAAA,GAAasE,uBAAb,sBAA8BtI,aAA9B,iBAAqC7e,OAAQ,IAErD+e,QAAS,CACPgN,gBAAgBlJ,UAAA,WAAAA,GAAasE,uBAAb,sBAA8BpI,eAA9B,iBAAuCgN,iBAAkB,GACzE/rB,MAAM6iB,UAAA,WAAAA,GAAasE,uBAAb,sBAA8BpI,eAA9B,iBAAuC/e,OAAQ,IAEvDi2C,UAAWpzB,UAAF,WAAEA,GAAasE,uBAAf,cAAE,GAA8B8uB,UACzCC,oBAAoBrzB,UAAA,WAAAA,GAAasE,uBAAb,iBAA8B+uB,qBAAsB,GACxEC,4BAA4BtzB,UAAA,WAAAA,GAAasE,uBAAb,iBAA8BgvB,6BAA8B,MA4GrEnoB,GACf0oB,SAAUN,EACVnoB,SApFe,CACvBzjB,EADuB,KAGnB,IAAD,gBADH,cAAE0jB,GACC,EAOH,MAAMC,EAAsBjhC,aAAMsd,GAK5BqY,EAAc4F,SAAH,UAAGA,EAAezB,yBAAlB,iBAAG,EAAkCxE,cAArC,aAAG,EAA0C5jB,KAExD+3C,EADqBt2B,IAAWwC,SAAA,UAAAA,EAAaoE,eAAb,mBAAsB+sB,gBAAtB,eAAgC1zB,cAAe,GAAI,aACvC/xB,OAAS,EAEzD4/B,EAAoBlH,QAAQ+sB,SAAS1zB,YADnCq2B,EACiD,GAEAt2B,GAAW8N,EAAoBlH,QAAQ+sB,SAAS1zB,YAAa,cAI9G6N,EAAoByhB,gBACtBzhB,EAAoBhH,gBAAkBgH,EAAoBjH,uBAIrDiH,EAAoByhB,qBAGpBzhB,EAAoBlH,QAAQ+sB,SAASO,gBAGrCpmB,EAAoBlH,QAAQ+sB,SAASE,iBACrC/lB,EAAoBlH,QAAQ+sB,SAASG,QAG5C1rB,SAAA,UAAAA,EAAerB,mCAAf,mBAA4C/D,eAA5C,gBAAsD,CACpDzkB,KAAMuvB,EACNrL,WAAY,KACVoL,GAAc,GACdjF,EAAkB,MAElBE,GAAyB,GAEzBnhC,OAAOa,OAAO,CACZC,IAAK,EACLC,KAAM,EACNghC,SAAU,YAGd3d,UAAW,KACT2c,GAAa,GAGiB,mBAAnBxkB,IACTA,EACEI,aACE,CAAC,QACD,CACEuJ,SAAU,uBACVyb,OAAQ,8BAEVvlB,IAEJU,aAAe,gBAInBwe,kBAAkB,EAClBC,mBAAmB,KAYbiJ,iBAAkBmpB,GAAoB5J,EAAcG,EAAqB+I,IACzE2B,iBAAe,EAEf9gB,eAAgB,CACd7O,QAAS,CACP2pB,MAAO,CACLqC,WAAW,EACXC,WAAW,EACXnyB,aAAa,EACbgyB,wBAAwB,EACxBD,sBAAsB,EACtBjC,eAAgByF,IAGpBpvB,eAAgB,CACd3I,aAAc+3B,EACdt3B,SAAUs3B,EACVz3B,MAAOy3B,GAETnvB,gBAAiB,CACf5I,aAAc+3B,EACdt3B,SAAUs3B,EACVz3B,MAAOy3B,GAET1G,eAAe,IAGjB,oCACGr1C,IAGHA,MClbL,MAAMs8C,GAAyD,CACpE,CACEz1C,MAAO,iDACPS,aAAc,uDACdwO,UAAU,EACVtO,WAAY,CAACA,OAEf,CACEX,MAAO,iDACPS,aAAc,mEACdwO,UAAU,EACVtO,WAAY,CAACA,QC+LFpG,I,mDAAAA,eACbiG,YAAyBi1C,IACzB1yC,KACAtI,IACA2sB,GAJa7sB,EA9JmDoH,IAAW,IAAD,kCAC1E,MAAM,kBACJikB,EADI,4BAEJI,EAFI,YAGJhjB,EAHI,SAIJpI,EAJI,UAKJyC,EALI,eAMJ8F,GACExB,GAEE,aAAE2oC,GAAiBe,KACnBtC,EAAUC,cAEVL,EAAiB1tC,YAAkB,qBAAsB,iBACzD6oC,EAAe7oC,YAAkB,sBAAuB,wBACxD2tC,EAA6B3tC,YAAkB,oCAAqC,8BAEpFguC,EAAyB3tC,kBAAgB,GAEzCitC,EAAiBlrC,SAAH,UAAGA,EAAWE,cAAd,iBAAG,EAAmBC,YAAtB,iBAAG,EAAyBF,kBAA5B,iBAAG,EAAqCurC,+BAAxC,aAAG,EAA8Dz/B,OAC/E0/B,EAAqBzrC,SAAH,UAAGA,EAAWE,cAAd,iBAAG,EAAmBC,YAAtB,iBAAG,EAAyBF,kBAA5B,iBAAG,EAAqCurC,+BAAxC,aAAG,EAA8Dz/B,OAAO1a,KAAKuS,GAAMA,EAAErC,KAAKgT,gBAGlHlW,qBAAU,KACRutC,EAAuB7c,QAAUxM,OAChC,IAEH,MAAM7kB,GAAMsC,aAAA,EAAAA,EAAWtC,MAAO,KAExBmuC,GAAiBtjB,SAAA,UAAAA,EAAmBxE,cAAnB,eAA2BS,SAASmE,SAApC,UAAoCA,EAA6B5E,cAAjE,aAAoC,EAAqCS,OAC1FsiB,EAAqB,KAAO,IAAD,QACoC,IAIU,wBAJ7E,MAAyD,iBAA9Cve,SAAP,UAAOA,EAAmBxE,cAA1B,iBAAO,EAA2BS,aAAlC,aAAO,EAAkCE,SACpC6D,SAAP,UAAOA,EAAmBxE,cAA1B,iBAAO,EAA2BS,aAAlC,aAAO,EAAkCE,QAGwB,iBAAxDiE,SAAP,UAAOA,EAA6B5E,cAApC,iBAAO,EAAqCS,aAA5C,aAAO,EAA4CE,UAEnDiE,SAAA,UAAAA,EAA6B5E,cAA7B,mBAAqCS,aAArC,mBAA4CE,eAA5C,mBAAqDS,gBAArD,mBAA+DhlB,YAA/D,eAAqEqkB,SAClEmE,SADH,UACGA,EAA6B5E,cADhC,iBACG,EAAqCS,aADxC,iBACG,EAA4CE,eAD/C,iBACG,EAAqDS,gBADxD,iBACG,EAA+DhlB,YADlE,iBACG,EAAqE2rC,cADxE,iBACG,EAA8E,UADjF,aACG,EAAkFpnB,cAHzF,GAQIqnB,EAAqBF,EACrBG,GAAwBH,IAAkBljB,SAAnB,UAAmBA,EAA6B5E,cAAhD,aAAmB,EAAqC5jB,MAC/E8rC,GAAqBJ,KACzBtjB,SAAA,UAAAA,EAAmBxE,cAAnB,eAA2BY,aACxBsoB,SADH,UACGA,EAAclpB,cADjB,aACG,EAAsBY,aACtBgE,SAFH,UAEGA,EAA6B5E,cAFhC,aAEG,EAAqCY,YAGtCqnB,GAAwBV,EAAex7C,OAAS,GAClDi7C,GAAa,aAAcU,EAAoBP,GASjD,OAAI3tC,EAEA,kBAAC,GAAa+G,IAKlBjG,qBAAU,KAAO,IAAD,EAEXd,IACAgrB,SAAD,UAACA,EAAmBxE,cAApB,aAAC,EAA2BY,aAC5BknB,GAC0B,mBAAnB/lC,IAEPA,EACEI,aACE,CAAC,QACD,CACEuJ,SAAU,uBACVy8B,UAAWpF,KAEbnhC,IAEJU,aAAe,iBAEhB,CAACwlC,EAAgBtjB,SAAjB,UAAiBA,EAAmBxE,cAApC,aAAiB,EAA2BY,YAG7C,kBAAC,GAAD,KACE,kBAACgkB,GAAD,MAEA,kBAAC,GAAD,CAAW7oC,GAAIpC,EAAKmC,UAAU,wBAC5B,kBAAC,KAAD,KACE,kBAACkyB,GAAD,KACE,kBAAC,GAAD,KACGga,GACC,oCACE,kBAAC5Z,GAAD,KACE,kBAACxuB,GAAA,EAAD,CACEnC,YAAa,CAAEc,MAAOwkC,KACtBnlC,MAAO,CAAEW,MAAOmkC,GAChBpnC,KAAM,CAAEiD,MAAO,WAIlBimB,SAAA,UAAAA,EAAmBxE,cAAnB,mBAA2BS,aAA3B,eAAkCE,UACjC,kBAAC0N,GAAD,KACE,kBAAC,GAAoB9tB,KAM5B0nC,GACC,kBAAC7Z,GAAD,KACE,kBAACxuB,GAAA,EAAD,CACEwoC,WAAY,CAAEriC,WAAY,CAAEvI,KAAM,iBAClCI,MAAO,CAAEW,MAAOgpC,GAChBjsC,KAAM,CAAEiD,MAAO,YAKpB2pC,GACC,kBAAC,GAAD,KACE,kBAAC,GAAD,CAAeG,kBAAkB,KAIrC,kBAAC,GACK9nC,KAKV,kBAAC,GAAD,OAECsnC,aAAA,EAAAA,EAAwB7c,UACvB,kBAAC,GAAD,KACE,kBAAC4C,GAAD,CAA0B7c,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,IAAMkxC,QAAS,KAC5D,kBAACjZ,GAAD,KACE,kBAACC,GAAD,CAAyB7uB,QAvFT,KAE9B0oC,EAAQW,WAsFQ,kBAACva,GAAD,KACE,kBAACxwB,GAAA,QAAD,CAAMC,KAAK,eACVgqC,c,oBC5KvB,MAAM8M,GAA0B,IAMjB,IANkB,MAC/BnvD,EAD+B,gBAE/BovD,GAIY,EACZ,MAA6C,WAAzCA,aAAA,EAAAA,EAAiBj+B,qBACZi+B,EAEFA,GACLpvD,EAAMqvD,WAAWlvD,WAAWivD,aAA5B,EAA4BA,EAAiB/jC,gBAW3CikC,GAA0BF,GAC9B,CAAC,OAAQ,SAAU,SAASl0C,SAASk0C,aAArC,EAAqCA,EAAiB/jC,eAClD,aACA,cAEO9X,GAAYtD,UAAOC,IAAV,+QACAi/C,GAKlB/kD,YAAG,OAOiB,QAAC,MAAEpK,GAAH,SAAeA,EAAMyK,OAAOtK,WAAWovD,SAClD,QAAC,MAAEvvD,GAAH,SAAeA,EAAMyK,OAAO+kD,QAAQhhD,gBAIpCihD,GAAsBx/C,UAAOC,IAAV,wUAC5B,QAAC,MAAElQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOsQ,GAAI,EAAGC,GAAI,MACzB4+C,GASlB/kD,YAAG,OAMiB,QAAC,MAAEpK,GAAH,SAAeA,EAAMyK,OAAOtK,WAAWovD,SAClD,QAAC,MAAEvvD,GAAH,SAAeA,EAAMyK,OAAO+kD,QAAQhhD,gBAIpCkhD,GAAoBz/C,kBAAO2B,KAAP3B,CAAH,wKAC1BmC,MAES,QAAC,MAAEpS,GAAH,SAAeA,EAAMyK,OAAOsf,GAAG4lC,WAQ/B1mC,GAAShZ,UAAOwR,GAAV,0LACfC,KACO,QAAC,MAAE1hB,EAAF,gBAASovD,GAAV,SACPpvD,EAAMqvD,WAAWC,GAAuBF,IAAkBQ,cAI1DxlD,YAAG,OAKMylD,GAAQ5/C,UAAOO,EAAV,iMACds/C,KACA,QAAC,MAAE9vD,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOsQ,GAAI,YAC7B,QAAC,MAAEtQ,EAAF,gBAASovD,GAAV,SACPpvD,EAAMqvD,WAAWC,GAAuBF,IAAkBxmD,QAI1DwB,YAAG,OASM2lD,IAJmB9/C,UAAOC,IAAV,qCACzB,QAAC,MAAElQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOsQ,GAAI,OAGbL,kBAAO+/C,KAAP//C,CAAH,0YACFk/C,GAMlB/kD,YAAG,MAeH6lD,KAEUd,KAKDe,GAASjgD,UAAOgd,OAAV,gFAMN8C,GAAQ9f,kBAAOgM,KAAPhM,CAAH,iLASdiM,KAGSi0C,GAAgBlgD,kBAAO4O,KAAK2K,KAAZvZ,CAAH,oHACtB,QAAC,MAAEjQ,GAAH,SACAqQ,YAAQ,CACNrQ,QACA0S,GAAI,CAAEjC,GAAI,EAAGpG,GAAI,EAAGgf,GAAI,GACxB4C,GAAI,CAAExb,GAAI,EAAG4Y,GAAI,EAAGmB,GAAI,GACxB0B,GAAI,CAAEzb,GAAI,EAAGpG,GAAI,EAAGgf,GAAI,QAIxB,QAAC,MAAErpB,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAO0S,GAAI,EAAGsZ,GAAI,OAMpCokC,GAAoBngD,kBAAO4O,KAAK2K,KAAZvZ,CAAH,4GAGxB,QAAC,MAAEjQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAO0S,GAAI,EAAGsZ,GAAI,OAMpCqkC,GAAWpgD,UAAOC,IAAV,oFAMRyZ,GAAa1Z,kBAAO2B,KAAP3B,CAAH,mNACnB,QAAC,MAAEjQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOiT,GAAI,OAAQpB,GAAI,MAE9CvH,YAAO,UAAW,aAClB8H,MAKQ,QAAC,MAAEpS,GAAH,SAAeA,EAAMyK,OAAO+kD,QAAQ7gD,gBAUrC2hD,GAAsBrgD,kBAAO2B,KAAP3B,CAAH,mWAC5B,QAAC,MAAEjQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOiT,GAAI,WAGhC3I,YAAO,UAAW,YAClB8H,MAoBKm+C,GAA0BtgD,kBAAO2B,KAAP3B,CAAH,0UAChC,QAAC,MAAEjQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOiT,GAAI,WAElC3I,YAAO,UAAW,gBAClB8H,MAQE,IAA0B,IAAzB,gBAAEg9C,GAAsB,EACzB,MAA2B,WAApBA,EAA+B,4CAA8C,MAK9E,QAAC,MAAEpvD,GAAH,SAAeA,EAAMyK,OAAO+kD,QAAQ7gD,gBASrC6hD,GAAgBvgD,UAAOC,IAAV,qCACtB,QAAC,MAAElQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOsQ,GAAI,YAG3BmgD,GAAexgD,UAAOC,IAAV,qCACrB,QAAC,MAAElQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAO+T,GAAI,YC/P3B28C,GAAmC,IAgBzC,IAAD,cAhB2C,UAC/Cj/B,EAD+C,gBAE/CC,EAF+C,gBAG/C09B,EAH+C,UAI/CuB,EAJ+C,UAK/CC,EAL+C,SAM/Cv8C,EAN+C,IAO/CG,EAP+C,aAQ/Csa,EAR+C,eAS/C+hC,EAT+C,2BAU/CC,EAV+C,oCAW/CC,EAX+C,oCAY/CC,EAZ+C,gBAa/CC,GAAkB,EAb6B,YAc/Cx0C,EAd+C,eAe/CG,GACI,EACJ,MAAMs0C,EACc,UAApB9B,GAAmD,SAApBA,GAAkD,WAApBA,EAIvD+B,EAAiC,CAAC94C,EAAM0E,KACd,mBAAnBH,IACTA,EACEI,aACE,CAAC,QACD,CACEC,SAAU5E,EACV6E,gBAAiBH,GAEnBN,IAEJU,aAAe,eAInB,OACE,kBAAC,GAAD,CACExG,UAAU,yBACV,oBACAC,GAAIpC,EACJ46C,gBAAiBA,GAEjB,kBAAC,KAAK77C,UAAN,KACE,kBAAC,KAAKmW,IAAN,CAAUxI,WAAW,UAAU0K,OAAQ,CAAE+1B,QAAS,KAChD,kBAACwO,GAAD,CACEvkC,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAIpG,GAAI,GAAKs3C,QAAS,IAC3CyP,UAAU,WAERH,GACA,kBAACvB,GAAD,CACEj2C,MAAOm3C,EACPj3C,cAAei3C,aAAF,EAAEA,EAAWj3C,cAC1BC,SAAS,IACTC,UAAU,OACVw3C,iBAAkB,CAChBC,sBAAuBxiC,aAAF,EAAEA,EAAc1V,MACrCy3C,eAAgBA,GAElB/2C,QAAS,oBAAMq3C,GAAYP,SAAA,UAAAA,EAAWx3C,aAAX,eAAkBrH,QAAQ6+C,aAA1B,EAA0BA,EAAWj3C,eAAei3C,SAArD,UAAqDA,EAAWx3C,aAAhE,aAAqD,EAAkB+I,OACjG,aAAYyuC,SAAZ,UAAYA,EAAWx3C,aAAvB,aAAY,EAAkBrH,OAGlC,kBAAC,GAAD,CACEq9C,gBAAiBA,EACjB6B,gBAAiBA,GAEjB,kBAACz3C,GAAA,EAAD,CAAMC,MAAOgY,MAEbpd,IAAYqd,aAAJ,EAAIA,EAAiBtY,SAC7B,kBAACy2C,GAAD,CAAOT,gBAAiBA,GACtB,kBAAC51C,GAAA,EAAD,CACEC,MACEpF,EACIqd,EACA,CAAEtY,MAAOm4C,aAAU7/B,aAAD,EAACA,EAAiBtY,WAK/C63C,GACC,kBAACZ,GAAD,KACE,kBAAC,GAAD,CACE52C,MAAOm3C,EACPj3C,cAAei3C,aAAF,EAAEA,EAAWj3C,cAC1BC,SAAS,IACTC,UAAU,OACVw3C,iBAAkB,CAChBC,sBAAuBxiC,aAAF,EAAEA,EAAc1V,MACrCy3C,eAAgBA,GAElBvuC,SAAUwuC,EACVh3C,QAAS,oBAAMq3C,GAAYP,SAAA,UAAAA,EAAWx3C,aAAX,eAAkBrH,QAAQ6+C,aAA1B,EAA0BA,EAAWj3C,eAAei3C,SAArD,UAAqDA,EAAWx3C,aAAhE,aAAqD,EAAkB+I,OACjG,aAAYyuC,SAAZ,UAAYA,EAAWx3C,aAAvB,aAAY,EAAkBrH,OAE/Bm/C,EACC,kBAACX,GAAD,CACE92C,MAAOu3C,EACPr3C,cACEq3C,aADW,EACXA,EAAqCr3C,cAEvCy1C,gBAAiBA,EACjBx1C,SAAS,IACTy3C,iBAAkB,CAChBC,sBAAuBxiC,aAAF,EAAEA,EAAc1V,MACrCy3C,eAAgBA,GAElBvuC,SAAUyuC,EACVj3C,QAAS,oBAAMq3C,GAAYH,SAAA,UAAAA,EAAqC53C,aAArC,eAA4CrH,QAAQi/C,aAApD,EAAoDA,EAAqCr3C,eAAeq3C,SAAzG,UAAyGA,EAAqC53C,aAA9I,aAAyG,EAA4C+I,OAC/K,aAAY6uC,SAAZ,UAAYA,EAAqC53C,aAAjD,aAAY,EAA4CrH,OAG1D,kBAACu+C,GAAD,CACE72C,MAAOu3C,EACPr3C,cACEq3C,aADW,EACXA,EAAqCr3C,cAEvCC,SAAS,IACTy3C,iBAAkB,CAChBC,sBAAuBxiC,aAAF,EAAEA,EAAc1V,MACrCy3C,eAAgBA,GAElBvuC,SAAUyuC,EACVj3C,QAAS,oBAAMq3C,GAAYH,SAAA,UAAAA,EAAqC53C,aAArC,eAA4CrH,QAAQi/C,aAApD,EAAoDA,EAAqCr3C,eAAeq3C,SAAzG,UAAyGA,EAAqC53C,aAA9I,aAAyG,EAA4C+I,OAC/K,aAAY6uC,SAAZ,UAAYA,EAAqC53C,aAAjD,aAAY,EAA4CrH,WAQtE,kBAACg+C,GAAD,CAAaX,gBAAiBA,GAC5B,kBAACc,GAAD,KACE,kBAAC,GAAD,CACEv5C,UAAU,WACV0G,WAAW,EACX5D,MACEpF,EACIs8C,EACA,CACEv3C,MAAO,CACLgE,IAAK1S,IACL4S,IAAK,GACL,cAAeC,aAAaozC,SAAD,UAACA,EAAWv3C,aAAZ,aAAC,EAAkBgE,IAAK,CACjDI,KAAU0Q,OACV1Q,KAAUg0C,OACVh0C,KAAUi0C,OACVj0C,KAAUk0C,YAKtBjsD,OAAQksD,KAAiBzjC,OACzBppB,MAAO0Y,KAAU0Q,UAGpB+iC,GACC,kBAACW,GAAA,EAAD,CAAWC,iBAAiB,OAAOC,gBAAgB,WC1KhDC,GAAkC,IASxC,IATyC,SAC9C19C,EAD8C,gBAE9Cqd,EAF8C,UAG9CD,EAH8C,IAI9Cjd,EAJ8C,UAK9Co8C,EAL8C,aAM9C9hC,EAN8C,eAO9C+hC,EAP8C,gBAQ9CI,GAAkB,GACd,EACJ,OACE,kBAACxB,GAAD,CAAqB74C,GAAIpC,EAAK,oBAAemC,UAAU,eACrD,kBAAC,KAAKpD,UAAN,KACE,kBAAC,KAAKmW,IAAN,CAAUxI,WAAW,UAAU0K,OAAQ,CAAE+1B,QAAS,CAAC,OAAQ,WACzD,kBAACyO,GAAD,CAAmBxkC,OAAQ,CAAErB,IAAK,GAAIo3B,QAAS,CAAC,OAAQ,UAAYyP,UAAU,WAC1EH,GACA,kBAACvB,GAAD,CACEj2C,MAAOm3C,EACPj3C,cAAei3C,aAAF,EAAEA,EAAWj3C,cAC1BC,SAAS,IACTC,UAAU,OACVw3C,iBAAkB,CAChBC,sBAAuBxiC,aAAF,EAAEA,EAAc1V,MACrCy3C,eAAgBA,KAItB,kBAAC,GAAD,KACE,kBAACr3C,GAAA,EAAD,CAAMC,MAAOgY,MAEbpd,IAAYqd,aAAJ,EAAIA,EAAiBtY,SAC7B,kBAACy2C,GAAD,KACE,kBAACr2C,GAAA,EAAD,CAAMC,MAAOpF,EAAWqd,EAAkB,CAAEtY,MAAOm4C,aAAU7/B,aAAD,EAACA,EAAiBtY,gBCuF/EpF,I,uFAAAA,eACbwI,KACArI,cACAD,IACA+F,YCxIiE,CACjE,CACER,MAAO,2CACPS,aAAc,6DACdwO,UAAU,KDoIwC,GAJvC1U,EA7GyB,IAMpB,IAAD,oDANsB,SACvCK,EADuC,UAEvCyC,EAFuC,gBAGvCvC,EAHuC,YAIvCkI,EAJuC,eAKvCG,GACiB,EACjB,MAAMq0C,EAAkBe,aAAuBz9C,GACzC09C,EAAsDr3C,aAAmB9D,SAAD,UAACA,EAAWE,cAAZ,iBAAC,EAAmBC,YAApB,aAAC,EAAyBC,YAClGg7C,EAAmCt3C,aAAmB9D,GAEtDq7C,EAAgB,UAACD,SAAD,UAACA,EAAiBznC,cAAlB,aAAC,EAAyB2nC,iBAA1B,oBAAkDH,SAAlD,UAAkDA,EAAqBliC,aAAvE,iBAAkD,EAA4B3W,aAA9E,aAAkD,EAAmCgE,WAArF,SAGhBgyC,GAAoB6B,GAAmBkB,EACzC,QADoB,UAEpBD,SAFoB,UAEpBA,EAAiBznC,cAFG,aAEpB,EAAyB2kC,uBAFL,QAEwB,OAE1C56C,EAAMsC,aAAH,EAAGA,EAAWtC,IAGjB69C,EAA6B,CACjCj5C,MAAO,CACLxC,GAAI,GACJuL,KAAM8vC,SAAF,UAAEA,EAAqBv6C,2BAAvB,aAAE,EAA0C46C,YAChDvgD,KAAMkgD,SAAF,UAAEA,EAAqBv6C,2BAAvB,aAAE,EAA0CC,oBAI9Ci5C,EAAYK,EACdgB,aAD6B,EAC7BA,EAAqBM,UACrBF,EAEErB,EAAsCC,EAC1CgB,aADyD,EACzDA,EAAqBO,iBACrBH,EAEIl7C,EAAUL,SAAH,UAAGA,EAAWE,cAAd,iBAAG,EAAmBC,YAAtB,iBAAG,EAAyBF,kBAA5B,aAAG,EAAqCI,QAC/CD,EAAaJ,SAAH,UAAGA,EAAWE,cAAd,iBAAG,EAAmBC,YAAtB,aAAG,EAAyBC,WACtCI,GAAgBJ,SAAA,UAAAA,EAAYK,iBAAZ,eAAuBC,SAAU,GACjDC,EAAWP,SAAH,UAAGA,EAAYQ,2BAAf,aAAG,EAAiCC,kBAE5CrD,EAAW,IADFgD,EAAcnP,KAAIyP,GAAQA,EAAKC,QACjBJ,GAAUnP,OAEjCqkB,EAAU,CACdvY,SAAU+C,aAAF,EAAEA,EAAS/C,SACnBC,WACAC,WACAzT,SAAUsW,aAAF,EAAEA,EAAStW,SACnBwU,SAAU6B,SAAF,UAAEA,EAAY7B,gBAAd,aAAE,EAAsBgD,KAChC7D,IAAKA,EAAI6C,OAAO,SAGZo7C,EAAqC,CACzChhC,UAAWwgC,aAAF,EAAEA,EAAqBzwC,QAChCkQ,gBAAiBugC,aAAF,EAAEA,EAAqBphC,YACtC8/B,UAAWsB,aAAF,EAAEA,EAAqBliC,MAChC6gC,YACAxB,kBACA/6C,WACAG,MACAsa,aAAcmjC,aAAF,EAAEA,EAAqBnjC,aACnC+hC,eAAgBoB,aAAF,EAAEA,EAAqBpB,eACrCC,2BAA4BmB,SAAF,UAAEA,EAAqBS,eAAvB,aAAE,EAA8BpxC,YAC1D0vC,sCACA2B,wCAAyCV,SAAF,UAAEA,EAAqBW,4BAAvB,aAAE,EAA2Cx5C,MACpF23C,oCAAqCkB,SAAF,UAAEA,EAAqBY,wBAAvB,aAAE,EAAuCvxC,YAC5E2vC,kBACAx0C,cACAG,kBAGIk2C,EAAmC,CACvCrhC,UAAWwgC,aAAF,EAAEA,EAAqBzwC,QAChCkQ,gBAAiBugC,aAAF,EAAEA,EAAqBphC,YACtC+/B,YACAv8C,WACAG,MACAy8C,kBACAD,sCACA2B,wCAAyCV,SAAF,UAAEA,EAAqBW,4BAAvB,aAAE,EAA2Cx5C,MACpF23C,oCAAqCkB,SAAF,UAAEA,EAAqBY,wBAAvB,aAAE,EAAuCvxC,aAG9E,OACE,oCACG6wC,EACC,oCACE,kBAACzB,GAAgB+B,IACfxB,GAAmB95C,GACnB,kBAACq5C,GAAD,KACE,kBAAC,EAAO7jC,KAKd,qCACIskC,GAAmB95C,GACnB,kBAACs5C,GAAD,CAAc95C,UAAU,gBACtB,kBAAC,EAAOgW,IAGZ,kBAAColC,GAAee,Q,wCE/GnB,MAAMC,GAAS9iD,UAAO+iD,OAAV,sCACf,QAAC,MAAEhzD,EAAF,oBAASizD,GAAV,SAAoC5iD,YAAQ,CAAErQ,QAC9CiT,GAAI,CACFxC,GAAIwiD,EAAsB,EAAI,EAC9B5oD,GAAI,QAKG6oD,GAAajjD,UAAOC,IAAV,4IACnB,QAAC,MAAElQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOiT,GAAI,OAAQmW,GAAI,CAAE3Y,GAAI,EAAGpG,GAAI,QAC3C,QAAC,MAAErK,GAAH,SAAeA,EAAMmhD,WAAWhhD,cAC3C,QAAC,MAAEH,GAAH,SAAeA,EAAMmhD,WAAWv4C,SAQ9BuqD,GAAaljD,UAAOC,IAAV,4IACnB,QAAC,MAAElQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOopB,GAAI,YAClB,QAAC,MAAEppB,GAAH,SAAeA,EAAMmhD,WAAWhhD,cAC3C,QAAC,MAAEH,GAAH,SAAeA,EAAMmhD,WAAWv4C,SAQ9BwqD,GAASnjD,kBAAO4O,KAAK2K,KAAZvZ,CAAH,sFACf,QAAC,MAAEjQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOuQ,GAAI,OAAQmC,GAAI,OAOvC2gD,GAAcpjD,UAAOC,IAAV,gFACpB,QAAC,MAAElQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOuQ,GAAI,CAAEE,GAAI,EAAGpG,GAAI,OACjDsG,YAAI,IAAK,KAKA8Y,GAAOxZ,UAAO2P,GAAV,oCACbC,KAGS0J,GAAWtZ,UAAO8P,GAAV,gFAMRuzC,GAAuBrjD,UAAOC,IAAV,mDAIpBqjD,GAAgBtjD,kBAAO2B,IAAP3B,CAAH,4DACtB3F,YAAO,OAAQ,gBACAsY,OAAOC,OAAP,OAAcw1B,WAAd,IAAcA,MAAd,WAAcA,KAAgB7lC,YAA9B,cAAc,GAAsB9I,cAAcvB,KAAImwC,GAAM,UAAOA,EAAP,UAGlEkb,GAAqBvjD,UAAOC,IAAV,kHAG3B9F,YAAG,OAKMqpD,GAAsBxjD,UAAOC,IAAV,uEAKnBwjD,GAAsBzjD,UAAOC,IAAV,wGAG5B9F,YAAG,OAMM0X,GAAiB7R,UAAOC,IAAV,2FASrBpF,GAAY7K,cAAH,8FAMF0zD,GAAc1jD,kBAAO2B,IAAP3B,CAAH,uHACpBnF,IACa,gBAAC,MAAE9K,GAAH,SAAeA,SAAf,UAAeA,EAAOmhD,kBAAtB,iBAAe,EAAmByS,mBAAlC,aAAe,EAAgC9pD,cAC/C,gBAAC,MAAE9J,GAAH,SAAeA,SAAf,UAAeA,EAAOmhD,kBAAtB,iBAAe,EAAmByS,mBAAlC,aAAe,EAAgC5pD,cAC5D,gBAAC,MAAEhK,GAAH,SAAeA,SAAf,UAAeA,EAAOmhD,kBAAtB,iBAAe,EAAmByS,mBAAlC,aAAe,EAAgCzoC,SAC/C,QAAC,MAAEnrB,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOuQ,GAAI,YAI3BsjD,GAAgB5jD,kBAAO2B,IAAP3B,CAAH,4CACtBnF,IACA,QAAC,MAAE9K,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOuQ,GAAI,YAG3BujD,GAAa7jD,UAAO2P,GAAV,0JACnBC,IAEAzV,YAAG,OAQM2pD,GAAa9jD,kBAAO2B,IAAP3B,CAAH,qHACnBnF,GACA8S,MACA,QAAC,MAAE5d,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOuQ,GAAI,WAEpCnG,YAAG,OAMM4pD,GAAyB/jD,UAAOyK,EAAV,qHAC/B5P,GACA8S,MACA,QAAC,MAAE5d,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOuQ,GAAI,WAEpCnG,YAAG,OAMM2X,GAAa9R,kBAAO2B,IAAP3B,CAAH,4IACnBnF,IAmBSmpD,IAXehkD,kBAAO3F,IAAP2F,CAAH,qKAMrBnF,GACA8S,MAIuB3N,UAAOC,IAAV,gKACb,QAAC,MAAElQ,GAAH,SAAeA,EAAMmhD,WAAW+S,eAQ9BC,GAAgBlkD,kBAAO2B,IAAP3B,CAAH,sEACtB3F,YAAO,OAAQ,gBACAsY,OAAOC,OAAP,OAAcw1B,WAAd,IAAcA,MAAd,WAAcA,KAAgB7lC,YAA9B,cAAc,GAAsB9I,cAAcvB,KAAImwC,GAAM,UAAOA,EAAP,UAE3E,QAAC,MAAEt4C,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOuQ,GAAI,OAG3B6jD,GAAuBnkD,UAAOC,IAAV,sCAC7B,QAAC,MAAElQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOsQ,GAAI,OAG3B+jD,GAAqBpkD,kBAAO2B,IAAP3B,CAAH,oOAC5BzH,cAGgBoa,OAAOC,OAAP,OAAcw1B,WAAd,IAAcA,MAAd,WAAcA,KAAgB7lC,YAA9B,cAAc,GAAsB9I,cAAcvB,KAAImwC,GAAM,UAAOA,EAAP,UAQlEgc,GAAkBrkD,UAAOC,IAAV,2JCvNfqkD,GAAc,IACzB,yBACE/4C,MAAM,6BACN1W,MAAM,KACNW,OAAO,KACP6V,QAAQ,YACRD,KAAK,QAEL,uBAAGzE,GAAG,UACJ,uBAAGA,GAAG,SACJ,0BACEA,GAAG,WACHgF,EAAE,sjBACFP,KAAK,UAEP,0BACEzE,GAAG,WACHgF,EAAE,0DACFP,KAAK,aAGT,uBAAGzE,GAAG,SACJ,0BACEA,GAAG,WACHgF,EAAE,gOACFP,KAAK,UAEP,0BACEzE,GAAG,WACHgF,EAAE,+bACFP,KAAK,UAEP,0BACEzE,GAAG,WACHgF,EAAE,gSACFP,KAAK,UAEP,0BACEzE,GAAG,WACHgF,EAAE,iFACFP,KAAK,UAEP,0BACEzE,GAAG,WACHgF,EAAE,gSACFP,KAAK,UAEP,0BACEzE,GAAG,WACHgF,EAAE,mkBACFP,KAAK,UAEP,0BACEzE,GAAG,WACHgF,EAAE,udACFP,KAAK,aCPTm5C,GAAiBC,cAAe,IACpC,2CAGIC,GAAwB,CAC5BxyC,SAAU,CACRI,SAAU,WACV7J,MAAO,YAET4J,SAAU,CACRC,SAAU,YACV7J,MAAO,YAETgK,UAAW,CACTH,SAAU,YACV7J,MAAO,aAET+J,QAAS,CACPF,SAAU,UACV7J,MAAO,YAILk8C,GAAwB,CAC5BjyC,OAAQ,CACNJ,SAAU,SACV7J,MAAO,UAETm8C,OAAQ,CACNtyC,SAAU,SACV7J,MAAO,UAETo8C,MAAO,CACLvyC,SAAU,QACV7J,MAAO,SAETq8C,QAAS,CACPxyC,SAAU,UACV7J,MAAO,YAKLs8C,GAAeC,cAAYh1D,IAAD,CAC9B8S,QAAS,CACP+4B,gBAAiB7rC,EAAMi1D,QAAQC,OAAOC,MACtCvsD,MAAO,sBACPwsD,UAAWp1D,EAAM+S,QAAQ,GACzBlN,SAAU,OALOmvD,CAOjBK,MAEEC,GAAc,CAACtqC,EAAYuqC,KAC/B,MAAO58C,GAAKC,eACZ,OAAOoS,EAAW7iB,KAAI,CAACyP,EAAMvR,KAAW,IAAD,UACrC,MAAMmvD,GAAW59C,aAAA,EAAAA,EAAMnM,OAAQ,GACzBgN,GAAQb,SAAA,UAAAA,EAAMa,aAAN,eAAaW,QAAS,GAC9Bq8C,EAAah9C,EAAM8d,OAAO,GAAGC,cAAgB/d,EAAMgN,MAAM,GACzDnD,EAAQ,UAAGizC,EAAQ39C,SAAD,UAACA,EAAMa,aAAP,iBAAC,EAAaW,aAAd,aAAC,EAAoBiS,sBAA/B,aAAG,EAA4C/I,SAE7D,OACE,kBAAC,GAAD,CAAgB7gB,IAAK4E,GACnB,kBAAC0uD,GAAD,CAAct8C,MAAK,UAAKE,EAAE,kCAAoC,IAAM88C,GAAcC,UAAU,gBAC1F,kBAAC3yC,GAAA,QAAD,CAAStX,KAAM+pD,EAAUxyC,WAAYjB,IACnC,kBAACmB,GAAA,EAAD,KAAevK,EAAE,uCAAD,OAAwCf,SAAxC,UAAwCA,EAAMa,aAA9C,aAAwC,EAAaW,SACrE,kBAAChB,GAAA,QAAD,CAAM2B,YAAY,EAAM1B,KAAMiK,WAQpCqzC,GAAiB,CAAC/9C,EAAMvR,EAAOuvD,KAAmB,IAAD,QACrD,MAAMC,GAAYj+C,SAAA,UAAAA,EAAMa,aAAN,eAAaW,SAASxB,SAAtB,UAAsBA,EAAMnM,YAA5B,aAAsB,EAAYsG,QAAQ6F,SAA1C,UAA0CA,EAAMiF,WAAhD,aAA0C,EAAW9K,OAAQ,GAC/E,OAAQ+jD,aAAel+C,IACrB,kBAAC,GAAD,CAAUnW,IAAK4E,GACb,kBAAC0c,GAAA,QAAD,CACEnQ,SAAUijD,EACVpqD,KAAMmM,EAAKnM,KACXsqD,KAAMn+C,SAAF,UAAEA,EAAMm+C,YAAR,aAAE,EAAY38C,MAClB4J,WAAY4yC,MAMdI,GAAc,CAAC/zC,EAAeg0C,KAClC,MAAMC,EAAatzC,OAAO2E,KAAKtF,GAC/B,OAAOg0C,EACJngD,QAAOqgD,IAAO,eAAID,EAAWh7C,SAASi7C,SAApB,UAAoBA,EAAS19C,aAA7B,iBAAoB,EAAgBW,aAApC,aAAoB,EAAuBiS,gBAAkByqC,aAAeK,OA6LpFniD,mBAAQC,IAAsBE,eAA9BH,EA1LyB,IAGjC,IAAD,sDAHmC,UACvC8C,EADuC,gBAEvCvC,GACI,EAGJ,MAAMsC,EAAM9B,mBAEZmgB,aADwC,IAAM/X,aAAe,cACI,IAAKtG,GAEtE,MAAM,sBAACwpC,GAAyBC,eAEzB3nC,GAAKC,eAEN7B,GAAaD,SAAA,UAAAA,EAAWE,cAAX,mBAAmBC,YAAnB,eAAyBF,aAAc,KAEpDk8C,EAAmB,UAAG1+C,SAAH,UAAGA,EAAiBe,aAApB,iBAAG,EAAwB0B,cAA3B,iBAAG,EAAgCo/C,qBAAnC,aAAG,EAA+Ch9C,aAAlD,SAEnBi9C,GAAoBt/C,SAAA,UAAAA,EAAYu/C,wBAAZ,eAA+B,KAAM,GACzDC,GAAsBx/C,SAAA,UAAAA,EAAYy/C,yBAAZ,eAAgC,KAAM,GAC5DC,GAAqB,UAAA1/C,EAAW2/C,wBAAX,eAA8B,KAAM,GACzDC,GAAmB,UAAA5/C,EAAW6/C,mBAAX,eAAyB,KAAM,GAClDC,GAAwB9/C,SAAA,UAAAA,EAAY8/C,6BAAZ,mBAAoC,UAApC,mBAAwCC,gBAAxC,mBAAmD,UAAnD,mBAAuDt7B,eAAvD,eAAgEpiB,QAAS,GACjG29C,GAAwBhgD,SAAA,UAAAA,EAAY8/C,6BAAZ,mBAAoC,UAApC,mBAAwCC,gBAAxC,mBAAmD,UAAnD,mBAAuDE,sBAAvD,eAAuE55C,MAAO,GACtG65C,GAA0BlgD,SAAA,UAAAA,EAAY8/C,6BAAZ,mBAAoC,UAApC,mBAAwCC,gBAAxC,mBAAmD,UAAnD,mBAAuDI,gCAAvD,eAAiF95C,MAAO,GAClH+5C,GAAed,aAAA,EAAAA,EAAmBe,QAAS,GAC3CC,GAAiBd,aAAA,EAAAA,EAAqBa,QAAS,GAC/CE,GAAgBb,aAAA,EAAAA,EAAoBW,QAAS,GAC7CG,GAAcZ,aAAA,EAAAA,EAAkBS,QAAS,GAGzCI,GAAmBf,aAAA,EAAAA,EAAoBe,mBAAoB,GAE3DC,EAAwBzB,GAAYtB,GAAuB8C,GAC3DE,EAAyB1B,GAAYrB,GAAuB6C,GAC5DG,EAAmB,IAAIF,KAA0BC,GAGjDE,EAAgBnB,aAAH,EAAGA,EAAoBhrD,KACpCosD,EAAgBxB,aAAH,EAAGA,EAAmBwB,cACnCC,EAAcrB,aAAH,EAAGA,EAAoBsB,QAExC,OAAKhhD,EAKH,kBAACg8C,GAAD,CACEp8C,UAAU,cACVC,GAAG,cACHC,IAAKA,EACLo8C,oBAAqBA,IAEnBA,GACA,yBAAKt8C,UAAU,iBACb,kBAACqhD,GAAA,QAAD,OAIJ,kBAAC1uB,GAAA,EAAD,CAAajxB,KAAK,mBAAmBvB,UAAWA,IAEhD,kBAACo8C,GAAD,KACE,kBAAC,KAAK3/C,UAAN,KACE,kBAAC,KAAKmW,IAAN,CAAUkC,OAAQ,CAAE+1B,QAAS,CAAC,OAAQ,WACpC,kBAACyR,GAAD,CAAQxnC,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAIpG,GAAI,KACnC,kBAACgpD,GAAD,KACE,kBAACmB,GAAD,CAAWz6C,YAAY,EAAMsB,KAAM,UAEjC87C,EAAavwD,QACf,yBAAK,aAAW,kBACd,kBAAC,GAAD,KACGuwD,EAAahvD,KAAI,CAACyP,EAAMvR,IAAUsvD,GAAe/9C,EAAMvR,EAAOstD,WAKjEkE,aAAF,EAAEA,EAAeh7C,MACf,kBAACy2C,GAAD,KACE,kBAACW,GAAD,KAAct7C,EAAE,wCAChB,kBAACoK,GAAA,QAAD,CACEnQ,UAAUilD,aAAA,EAAAA,EAAe9lD,QAAQ8lD,aAAvB,EAAuBA,EAAel+C,iBAAiBk+C,aAAvD,EAAuDA,EAAeh7C,KAChFpR,KAAMosD,EACN70C,WAAYuwC,SAMlB8D,EAAezwD,QACjB,kBAACwsD,GAAD,CAAQxnC,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAIpG,GAAI,KACnC,yBAAK,aAAW,oBACd,kBAAC,GAAD,KACGgtD,EAAelvD,KAAI,CAACyP,EAAMvR,IAAUsvD,GAAe/9C,EAAMvR,EAAOwtD,YAMrEyD,EAAc1wD,QAAU+wD,EAAiB/wD,QAAUgxD,IACrD,kBAACxE,GAAD,CAAQxnC,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAIpG,GAAI,QAC/ButD,aAAF,EAAEA,EAAe/6C,MACjB,oCACE,kBAACo3C,GAAD,KAAct7C,EAAE,gCAChB,kBAACoK,GAAA,QAAD,CACEnQ,UAAUglD,aAAA,EAAAA,EAAe7lD,QAAQ6lD,aAAvB,EAAuBA,EAAej+C,iBAAiBi+C,aAAvD,EAAuDA,EAAe/6C,KAChFpR,KAAMmsD,EACN50C,WAAYmxC,QAKdwD,EAAiB/wD,QACnB,oCACE,kBAACqtD,GAAD,KAAct7C,EAAE,6BAChB,kBAAC66C,GAAD,KACE,kBAACC,GAAD,KAAsB6B,GAAYmC,EAAuB/C,KACzD,kBAAChB,GAAD,KAAsB4B,GAAYoC,EAAuB/C,UAO3DmD,aAAF,EAAEA,EAAaj7C,MAAQ,kBAACu3C,GAAD,KACvB,kBAACH,GAAD,KAAct7C,EAAE,oCAChB,kBAACo8C,GAAD,CAAct8C,MAAK,UAAKE,EAAE,kCAAFA,YAAyD+8C,UAAU,gBACzF,kBAAC3yC,GAAA,QAAD,CACEnQ,SAAU,kBAAC2hD,GAAD,MACV9oD,KAAMqsD,EACN90C,WAAYqxC,SAMdiD,EAAc1wD,QAChB,yBAAK,aAAW,mBACd,kBAAC,GAAD,KACG0wD,EAAcnvD,KAAI,CAACyP,EAAMvR,IAAUsvD,GAAe/9C,EAAMvR,EAAOwtD,YAShF,kBAACV,GAAD,KACE,kBAAC,KAAK5/C,UAAN,KACE,kBAAC,KAAKmW,IAAN,CAAUkC,OAAQ,CAAE+1B,QAAS,CAAC,OAAQ,WACpC,kBAACyR,GAAD,CAAQxnC,OAAQ,CAAErB,IAAK,KACrB,kBAAC+pC,GAAD,KACE,yBAAKh3C,IAAK,kBAAmBF,IAAK25C,IAClC,yBAAKz5C,IAAK,0BAA2BF,IAAK65C,KAE3CJ,MAKT,kBAAC1D,GAAD,KACE,kBAAC,KAAK5/C,UAAN,KACE,kBAAC,KAAKmW,IAAN,CAAUkC,OAAQ,CAAE+1B,QAAS,CAAC,OAAQ,WACpC,kBAACyR,GAAD,CAAQxnC,OAAQ,CAAErB,IAAK,KACrB,yBAAK,aAAW,kCACd,kBAACupC,GAAD,KAGGzT,GAAyBkX,EAAYpvD,KAAI,CAACyP,EAAMvR,IAA+B,wBAArBuR,EAAKa,MAAMW,MAAkCu8C,GAAe/9C,EAAMvR,EAAO0tD,IAAa,kBAACC,GAAD,CAC7Ir9C,UAAU,gDACV8B,MAAM,4BACN,aAAW,4BACX0J,KAAK,sBACL5I,SAAU,GACP3B,EAAKa,MAAMW,gBAnIzB,Q,kCCxKJ,MAAM6+C,GAA8BhoD,UAAO/P,QAAV,oUACxB,QAAC,MAAEF,GAAH,SAAeA,EAAMk4D,mBAAmBj3C,UAAU9gB,cAEhD,QAAC,MAAEH,GAAH,SAAeA,EAAMk4D,mBAAmBj3C,UAAUzR,eAEnD,QAAC,MAAExP,GAAH,SAAeA,EAAMm4D,WAAWpmD,KAAKiO,YAAY/V,cACpD,QAAC,SAAEoK,EAAF,SAAY4rC,GAAb,SAA6B5rC,GAAY4rC,EAAW,SAAW,cAEpE,QAAC,SAAE5rC,EAAF,SAAY4rC,GAAb,SAA6B5rC,GAAY4rC,EAAW,OAAS,MACzDloC,IAAMqgD,qBAOR,QAAC,MAAEp4D,GAAH,SAAeA,EAAMq4D,WAAW5yD,OAAOgL,KAE5CrG,YAAG,OACI,QAAC,SAAEiK,EAAF,SAAY4rC,EAAZ,MAAsBjgD,GAAvB,SAAoCqU,GAAY4rC,GAAb,UAA4BjgD,EAAMq4D,WAAW5yD,OAAO4E,GAApD,SAMnCiuD,GAAeroD,UAAOC,IAAV,0FACrBkd,KACY,QAAC,MAAEptB,GAAH,SAAeA,EAAMk4D,mBAAmBK,aAAap4D,cAC1D,QAAC,MAAEH,GAAH,SAAeA,EAAMk4D,mBAAmBK,aAAa3vD,SAInD4kB,GAAWvd,kBAAO2B,KAAP3B,CAAH,2wBAIfmC,MACA,QAAC,MAAEpS,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOgsB,GAAI,CAAEvb,GAAG,MAAQpG,GAAG,aAE7C,QAAC,MAAErK,GAAH,SAAeA,EAAMk4D,mBAAmBnqC,SAASnlB,SAUtC,QAAC,MAAE5I,GAAH,SAAeA,EAAMk4D,mBAAmBnqC,SAASyqC,MAAMr4D,cAClE,QAAC,MAAEH,GAAH,SAAeA,EAAMk4D,mBAAmBnqC,SAASyqC,MAAM5vD,QAI9DuI,KACmB,QAAC,MAAEnR,GAAH,SAAeA,EAAMk4D,mBAAmBnqC,SAAS1kB,MAAMksC,UAK1EpkC,KACkB,QAAC,MAAEnR,GAAH,SAAeA,EAAMk4D,mBAAmBnqC,SAASkiB,OAAO9vC,aAI5EiK,YAAG,OAOmB,QAAC,MAAEpK,GAAH,SAAeA,EAAMk4D,mBAAmBnqC,SAAS0qC,YAAYt4D,cAY1Eu4D,GAAWzoD,UAAOmM,KAAV,yfACkB,QAAC,MAAEpc,GAAH,SAAeA,EAAMk4D,mBAAmBS,SAASx4D,aAQxEy4D,aAAW,UAAW,QAIlCxuD,YAAG,OAUmC,QAAC,MAAEpK,GAAH,SAAeA,EAAMk4D,mBAAmBS,SAASxzD,IAAIhF,cAMlF04D,GAAsB5oD,UAAO6oD,IAAV,2JAM5B1uD,IAAG4H,SAAS,OACe,QAAC,MAAEhS,GAAH,SAAeA,EAAMk4D,mBAAmBa,WAAWvpD,eAIrEwpD,GAAW/oD,UAAO2P,GAAV,oqCACjBC,IAUAzV,IAAG4H,SAAS,OAEM,QAAC,MAAEhS,GAAH,SAAeA,EAAMwvB,KAAKC,OAAOllB,KAAKkG,MAIrC,QAAC,MAAEzQ,GAAH,SAAeA,EAAMwvB,KAAKC,OAAOllB,KAAKkG,KAKzDrG,YAAG,OAqBa,QAAC,MAAEpK,GAAH,SAAeA,EAAMk4D,mBAAmBa,WAAWvpD,eAiB1DypD,GAAgBhpD,kBAAO4O,KAAKtL,UAAZtD,CAAH,6FACtB7F,IAAG4H,SAAS,OACG,QAAC,MAAEhS,GAAH,SAAeA,EAAMwvB,KAAKC,OAAOllB,KAAKkG,MAK5CyoD,GAAUjpD,kBAAO4O,KAAK6K,IAAZzZ,CAAH,0EAChB7F,IAAG4H,SAAS,OAKHmnD,GAAWlpD,kBAAO4O,KAAK2K,KAAZvZ,CAAH,oMAIjB7F,IAAG4H,SAAS,MAIZ5H,YAAG,OAQMuf,GAAa1Z,kBAAO2B,KAAP3B,CAAH,scAEnB,QAAC,MAAEjQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAO+T,GAAI,CAAEtD,GAAI,EAAGpG,GAAI,GAAKyG,GAAI,CAAEzG,GAAI,GAAK2hB,GAAI,CAAEvb,GAAG,GAAD,OAAKzQ,EAAMwvB,KAAKC,OAAOllB,KAAKkG,GAA5B,MAAoCpG,GAAI,OAGrHD,YAAG,MAODE,YAAO,OAAQ,WAGfF,YAAG,MACDE,YAAO,UAAW,YAMX,QAAC,MAAEtK,GAAH,SAAeA,EAAMk4D,mBAAmBrsD,WAAWoD,QAAQrG,SC3B3DoL,I,qEAAAA,eAAQiG,YC/NoD,CACzE,CACER,MAAO,oBACPS,aAAc,4BACdwO,UAAU,GAEZ,CACEjP,MAAO,aACPS,aAAc,gDACdgQ,UAAW,KDsNoE,GAAQhW,IAAcD,IAA1FD,EArM+C,IAAyB,IAAD,UAAvB,SAAEK,EAAF,KAAY4C,GAAW,EAEpF,MAAMmiD,EAAcniD,aAAH,EAAGA,EAAMoiD,YACpBd,EAAethD,aAAH,EAAGA,EAAMshD,aACrBe,EAA8BvkD,iBAAoB,MAClDwkD,EAAgBtiD,aAAH,EAAGA,EAAMsiD,cACtBnC,EAAQngD,aAAH,EAAGA,EAAMmgD,MACdoC,EAAcpC,IAASA,aAAJ,EAAIA,EAAOxwD,SAAU,EACxC6yD,EAAU1kD,iBAAoB,MAC9B2kD,EAAmB3kD,iBAAoB,MACvC4kD,EAAiB5kD,iBAAoB,MACrC6kD,EAAgB7kD,iBAAsB,OAErCkrC,EAAUC,GAAarrC,oBAAS,IAChCglD,EAAYC,GAAejlD,oBAAS,GAE3C,IAAI8R,EACAozC,EAEJ,MAAMC,EAAwB,KAAO,IAAD,QAImB,IAAD,EAE7C,EAOiB,EAEjB,GAXHP,SAAA,UAAAA,EAAS5zB,eAAT,eAAkBo0B,YAFE,GAGtBP,SAAA,UAAAA,EAAkB7zB,eAAlB,SAA2B5f,UAAUnf,IAAI,WAEzC4yD,SAAA,UAAAA,EAAkB7zB,eAAlB,SAA2B5f,UAAU7f,OAAO,YAI1CqzD,SAAA,UAAAA,EAAS5zB,eAAT,eAAkBo0B,aACnBR,SAAA,UAAAA,EAAS5zB,eAAT,eAAkBq0B,cAAeT,SAAjC,UAAiCA,EAAS5zB,eAA1C,aAAiC,EAAkB/hC,wBAAwBgB,OAVtD,GAYtB60D,SAAA,UAAAA,EAAgB9zB,eAAhB,SAAyB5f,UAAUnf,IAAI,WAEvC6yD,SAAA,UAAAA,EAAgB9zB,eAAhB,SAAyB5f,UAAU7f,OAAO,YAI9C,IAAI+zD,EAAmB,EACvB,MAAMC,EAAe,KACfzzC,GACFtmB,OAAOmgD,qBAAqB75B,GAG9BA,EAAUtmB,OAAOogD,uBAAsB,KACrC,MAAM4X,EAAa7iD,KAAahV,SAAS6V,qBAAqB,UAAU,GAClEgkD,EAAmBhC,aAAH,EAAGA,EAAYv0D,wBAAwB2B,OAE7Dq0D,GAAatkD,KAAahV,SAASwjB,KAAKlgB,wBAAwB3C,KAAOg5D,GACvEA,EAAmB3kD,KAAahV,SAASwjB,KAAKlgB,wBAAwB3C,IAElEk5D,GAAoB,GACtBna,EAAU7/C,OAAOi6D,SAAWD,OAK5BE,EAAyB,KACzBR,GACF15D,OAAOmgD,qBAAqBuZ,GAE9BA,EAAoB15D,OAAOogD,uBAAsB,KAC/CuZ,QAIEQ,EAAc79B,mBAAQ,IACnBy6B,EAAMjvD,KAAIsD,IAEf,MAAM0qD,EAAU,CACd/8C,MAAO,IAAK3N,IAGd,OACE,wBACEkL,UAAW4iD,KAAkB9tD,aAAL,EAAKA,EAAMmL,IAAK,SAAW,KACnDnV,IAAKgK,EAAKmL,GACVC,IAAK0iD,KAAkB9tD,aAAL,EAAKA,EAAMmL,IAAKgjD,EAAgB,MAClD,kBAAC,GAAD,CACEjjD,UAAU,2BACV8C,MAAO08C,EACP10D,IAAKgK,aAAF,EAAEA,EAAMmL,GACXiD,UAAU,cAKjB,CAAC0/C,EAAenC,IAGnBjiD,qBAAU,KAAO,IAAD,EACd,GAAKK,IAOL,OAHAnV,OAAOsH,iBAAiB,SAAUyyD,GAAc,GAChDK,IAAW3zD,IAAX,UAAewyD,aAAf,EAAeA,EAA6BzzB,eAA5C,QAAuD,IAEhD,KAAO,IAAD,EAEXxlC,OAAO2kB,oBAAoB,SAAUo1C,GAAc,GACnDK,IAAWr0D,OAAX,UAAkBkzD,aAAlB,EAAkBA,EAA6BzzB,eAA/C,QAA0D,OAE3D,IAEH1wB,qBAAU,KACR,GAAKK,IAAL,CAKA,IAAIikD,aAAA,EAAAA,EAAS5zB,WAAW+zB,aAApB,EAAoBA,EAAe/zB,SAAS,CAC9C,MAAM60B,EAAed,EAAc/zB,QAAQ/hC,wBACrC62D,EAAalB,EAAQ5zB,QAAQ/hC,wBAC7B82D,EAASF,EAAat5D,KAAQs5D,EAAa51D,MAAQ,EAAM61D,EAAW71D,MAAQ,EAClF20D,EAAQ5zB,QAAQo0B,WAAaW,EAO/B,OAHInB,aAAJ,EAAIA,EAAS5zB,UACX4zB,EAAQ5zB,QAAQl+B,iBAAiB,SAAU4yD,GAAwB,GAE9D,MAEDd,aAAJ,EAAIA,EAAS5zB,UACX4zB,EAAQ5zB,QAAQ7gB,oBAAoB,SAAUu1C,GAAwB,OAIzE,IAGH,MAAMM,EAAwBrU,aAAqBwT,EAAuB,KAE1E7kD,qBAAU,KACR,GAAKK,MACFikD,aAAD,EAACA,EAAS5zB,WACT8zB,aAAD,EAACA,EAAgB9zB,SAMnB,OAFAxlC,OAAOsH,iBAAiB,SAAUkzD,EAAsBnkD,UAEjD,KACLrW,OAAO2kB,oBAAoB,SAAU61C,EAAsBnkD,aAE5D,IAGH,MAAMokD,EAA2BjB,GAAc5Z,EAAY,gBAAkB,GAEvE8a,GAAa3B,SAAD,UAACA,EAAaj3C,YAAd,aAAC,EAAmBvb,SAAgBwyD,SAAA,UAAAA,EAAaj3C,YAAb,eAAmBqD,QAAQ,QAAS,GAA0C,KAArC4zC,SAAA,UAAAA,EAAaj3C,YAAb,eAAmBqD,QAAQ,OAAe,WAAa,WAAtG,GAEhD,OAAQnR,GAAYmlD,EAAc,EAAI,KACpC,kBAACvB,GAAD,CACEthD,UAAS,UA9JkC,sBA8JlC,YAA0CmkD,GACnD,oBACAlkD,GAAI,sBACJqpC,SAAUA,EACVppC,IAAKyiD,GAGHf,GACE,kBAACD,GAAD,KACE,kBAAC,KAAK/kD,UAAN,KAAiBglD,EAAjB,MAIN,kBAACU,GAAD,KACE,kBAACC,GAAD,CAASttC,OAAQ,CAAE+1B,QAAS,KAC1B,kBAACwX,GAAD,CAAUvtC,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,IAAMkxC,QAAS,CAAC,OAAQ,WACrD,kBAACkX,GAAD,KACE,kBAACH,GAAD,CAAU7hD,IAAK6iD,IACf,kBAACV,GAAD,CAAUriD,UAAU,kBAAkBE,IAAK4iD,GACxCe,GAEH,kBAAC9B,GAAD,CAAU/hD,UAAU,MAAME,IAAK8iD,KAEhCP,GACC,kBAAC,GAAD,CAAY3/C,MACV,CACEL,MAAO,CACLrH,KAAMqnD,aAAF,EAAEA,EAAarnD,KACnBoQ,KAAMi3C,aAAF,EAAEA,EAAaj3C,KACnB44C,SAAUA,EACV3kD,OAAQgjD,aAAF,EAAEA,EAAahjD,kB,mBEjMlC,MAAM4kD,GAAM/qD,UAAO6oD,IAAV,wvCACM,QAAC,MAAE94D,GAAH,SAAeA,EAAMi7D,SAASh6C,UAAUi6C,qBAWpC,cAASC,KAAT,OAIbpjD,IAAMqjD,KASfhxD,YAAG,OAMyC,QAAC,MAAEpK,GAAH,SAAeA,EAAMi7D,SAASh6C,UAAUi6C,oBAOpF9wD,YAAG,OAWa,QAAC,MAAEpK,GAAH,SAAeA,EAAMi7D,SAASh6C,UAAUi6C,qBAMZ,QAAC,MAAEl7D,GAAH,SAAeA,EAAMi7D,SAASh6C,UAAUi6C,qBAK3EG,GAAaprD,UAAOC,IAAV,0XACnB,QAAC,MAAElQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOisB,GAAI,YACX,QAAC,MAAEjsB,GAAH,SAAeA,EAAMi7D,SAASK,QAAQtxC,WAGnD,QAAC,MAAEhqB,GAAH,SAAeA,EAAMq4D,WAAW5yD,OAAOgL,KAKnDuvC,IAIA51C,YAAG,MAIHA,IAAG4H,SAAS,OACQ,QAAC,MAAEhS,GAAH,SAAeA,EAAMi7D,SAASh6C,UAAUi6C,qBAOnDK,GAAoBtrD,UAAOC,IAAV,+HAK1B9F,YAAG,OAKMoxD,GAAiBvrD,UAAOC,IAAV,gDAIdurD,GAAoBxrD,UAAO3F,OAAV,6KAC1B9B,IACA8sC,KAE+B,QAAC,MAAEt1C,GAAH,SAAeA,EAAMi7D,SAASK,QAAQI,mBAC9D,QAAC,MAAE17D,GAAH,SAAeA,EAAMi7D,SAASK,QAAQ1yD,SACtC,QAAC,MAAE5I,GAAH,SAAeA,EAAMi7D,SAASK,QAAQlyD,eAMpCuyD,GAAkB1rD,UAAOC,IAAV,+EAIxB,IAAwB,IAAvB,cAAE0rD,GAAoB,EACvB,GAAIA,EACF,OAAO37D,cAAP,uFACImK,YAAG,UAkBAqf,IAVWxZ,UAAOC,IAAV,0CAIMD,UAAOC,IAAV,uEACR,QAAC,MAAElQ,GAAH,SAAeA,EAAMi7D,SAASh6C,UAAUi6C,qBAKpCjrD,UAAO2P,GAAV,saACbC,KACA,QAAC,MAAE7f,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAO0S,GAAI,CAAEjC,GAAI,EAAGpG,GAAI,QAI7B,cAAS8wD,KAAoB,GAA7B,QAIN,QAAC,MAAEn7D,GAAH,SACdA,EAAMi7D,SAASh6C,UAAU46C,uBAKX,QAAC,MAAE77D,GAAH,SAAeA,EAAMi7D,SAASh6C,UAAUi6C,qBAChC,QAAC,MAAEl7D,GAAH,SAAeA,EAAMq4D,WAAW5yD,OAAOgL,GAAK,MACpD,QAAC,MAAEzQ,GAAH,SAAeA,EAAMq4D,WAAW5yD,OAAOgL,GAAK,KAExDrG,YAAG,OAEmB,QAAC,MAAEpK,GAAH,SAAeA,EAAMq4D,WAAW5yD,OAAOgL,MAC/C,QAAC,MAAEzQ,GAAH,SAAeA,EAAMq4D,WAAW5yD,OAAOgL,OAK9CqrD,GAAc7rD,UAAOC,IAAV,gDAIX6rD,GAA4B9rD,UAAOC,IAAV,6PACtB,QAAC,MAAElQ,GAAH,SAAeA,EAAMi7D,SAASh6C,UAAU46C,sBAKpDzxD,IAAG4H,SAAS,MAKZ5H,YAAG,MAIHA,YAAG,OAKM4xD,GAA0B/rD,UAAOC,IAAV,kHAIhC9F,IAAG4H,SAAS,OAKHiqD,GAAkBhsD,UAAOC,IAAV,kIAGxB9F,IAAG4H,SAAS,OAQHwX,GAAOvZ,UAAO8P,GAAV,0KACN,QAAC,MAAE/f,GAAH,SAAeA,EAAMi7D,SAASrjD,KAAKhP,QAOxCwB,YAAG,OAMIwH,GAAO3B,kBAAO2Z,IAAP3Z,CAAH,wuBACb,QAAC,MAAEjQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAO0S,GAAI,OAAQuZ,GAAI,CAAExb,GAAI,OAAQpG,GAAI,GAAK6hB,GAAI,CAAEzb,GAAI,OAAQpG,GAAI,QAEtF,QAAC,MAAErK,GAAH,SAAeA,EAAMi7D,SAASrjD,KAAKhP,SAOZ,QAAC,MAAE5I,GAAH,SAAeA,EAAMyK,OAAO+kD,QAAQ0M,WAA6B,QAAC,MAAEl8D,GAAH,SAAeA,EAAMyK,OAAO+kD,QAAQ0M,UAKjI/qD,KAGoB,QAAC,MAAEnR,GAAH,SAAeA,EAAMi7D,SAASrjD,KAAK1O,oBAKnC,QAAC,MAAElJ,GAAH,SAAeA,EAAMi7D,SAASrjD,KAAKy+C,kBAAkBntD,oBAWrD,QAAC,MAAElJ,GAAH,SAAeA,EAAMi7D,SAASrjD,KAAK1O,oBAGjC,QAAC,MAAElJ,GAAH,SAAeA,EAAMi7D,SAASrjD,KAAKy+C,kBAAkBntD,oBAOpEizD,GAAelsD,UAAOC,IAAV,0CAIZmd,GAAQpd,UAAOmM,KAAV,4TACdk5B,KACO,QAAC,MAAEt1C,GAAH,SAAeA,EAAMi7D,SAASrjD,KAAKhP,QAK1CgJ,GACAA,IACS,QAAC,MAAE5R,GAAH,SAAeA,EAAMi7D,SAASrjD,KAAKwkD,iBAG5ChyD,IAAG4H,SAAS,MACV84B,IAIA1gC,YAAG,MACDiyD,IAGFjyD,IAAG4H,SAAS,MACZsjC,KAMOgnB,GAAcrsD,UAAOC,IAAV,qPACpB,QAAC,MAAElQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAO8Q,GAAI,WACpCH,YAAI,GAAI,KAMA,QAAC,MAAE3Q,GAAH,SAAeA,EAAMi7D,SAASrjD,KAAKhP,QAEzCgJ,GACAA,IAEQ,QAAC,MAAE5R,GAAH,SAAeA,EAAMi7D,SAASrjD,KAAKwkD,kBAI7C,IAAsB,IAArB,YAAEG,GAAkB,EACrB,GAAIA,EACF,OAAOt8D,cAAP,mJAYOu8D,GAAkBvsD,UAAO3F,OAAV,ytBACxB9B,KASoB,QAAC,MAAExI,GAAH,SAAeA,EAAMi7D,SAASK,QAAQmB,eAqBpC,QAAC,MAAEz8D,GAAH,SACtBA,EAAMi7D,SAASK,QAAQI,kBAKrBvqD,KACe,QAAC,MAAEnR,GAAH,SAAeA,EAAMyK,OAAO+kD,QAAQ0M,WAS5CxqD,GAAgBzB,UAAOC,IAAV,0WACtB,QAAC,MAAElQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOgsB,GAAI,YACX,QAAC,MAAEhsB,GAAH,SAAeA,EAAMi7D,SAASK,QAAQtxC,WAGnD,QAAC,MAAEhqB,GAAH,SAAeA,EAAMq4D,WAAW5yD,OAAOgL,KAKnDuvC,IAIA51C,YAAG,MAIHA,IAAG4H,SAAS,OACQ,QAAC,MAAEhS,GAAH,SAAeA,EAAMi7D,SAASh6C,UAAUi6C,qBAMnDwB,GAAgBzsD,kBAAO0sD,IAAP1sD,CAAH,yPACtB3F,YAAO,UAAW,WAClB8H,KAKAhI,YAAG,OAMK,QAAC,MAAEpK,GAAH,SAAeA,EAAM48D,mBAAmB/wD,WAAW4D,iBAKrC,gBAAC,MAAEzP,GAAH,SAAeA,SAAf,UAAeA,EAAO48D,0BAAtB,iBAAe,EAA2BrnB,eAA1C,aAAe,EAAoCsnB,cCnavEC,GAAWC,sBACf,CAAC,EAOElmD,KAAS,IAAD,UAPV,KACCe,EADD,WAEColD,EAFD,OAGCC,EAHD,QAIC5lB,EAJD,YAKC6lB,EALD,SAMC3jD,GACS,EACT,IAAK3B,EACH,OAAO,KAGT,IAAIuyB,GAAQ,UAAAvyB,EAAKa,aAAL,eAAYW,SAASxB,SAArB,UAAqBA,EAAMnM,YAA3B,aAAqB,EAAYsG,OAAQ,GAGrD,MAAMtG,EAAOqqD,aAAel+C,GAAQA,EAAKnM,KAAO,KAG1C0xD,EAAiC1xD,EACnC,CACA,eAAgBuxD,EAChB,gBAAiBA,EACjBC,SACAnjD,QAASojD,EACT7lB,UACA+lB,UAAW,OACX7jD,SAAUA,EACVnD,QAAQwB,SAAA,UAAAA,EAAMnM,YAAN,eAAY2K,SAAU,IAE9B,KAEJ,OACE,kBAAC2M,GAAA,QAAD,iBAAao6C,EAAb,CAAuBtmD,IAAKA,EAAKpL,KAAMA,EAAMuX,WAAYpR,KACvD,kBAACuqD,GAAD,KACGhyB,GACC,kBAAC,GAAD,KAAQA,IAGZ,kBAACmyB,GAAD,CAAaC,aAAa,GACxB,kBAACnkD,GAAA,QAAD,CAAMC,KAAK,gBAAgB0B,YAAY,SAO3CsjD,GAAkBN,sBACtB,CAAC,EASElmD,KAAS,IATX,gBACCymD,EADD,kBAECC,EAFD,KAGC3lD,EAHD,UAIC4lD,EAJD,WAKCR,EALD,OAMCC,EAND,YAOCC,EAPD,YAQCO,GACS,EACT,IAAK7lD,EACH,OAAO,KAIS,IAAD,EAAjB,KAFmB0lD,aAAH,EAAGA,EAAiBz3B,QAAQ03B,IAI1C,OADA9nC,aAAU,iCAAD,OAAkC7d,SAAlC,UAAkCA,EAAMa,aAAxC,aAAkC,EAAaW,QACjD,KAGT,MAAM6M,EAAY,GAMlB,OAJIrO,aAAJ,EAAIA,EAAMjB,YACRsP,EAAUrjB,KAAKgV,EAAKjB,WAIpB,kBAAC,IAAM+mD,SAAP,CAAgBj8D,IAAG,mBAAc+7D,IAC/B,kBAACh0C,GAAD,CACE7S,UAAWsP,EAAU3d,KAAK,KAC1B7G,IAAG,eAAU+7D,IAEb,kBAACV,GAAD,CACEllD,KAAMA,EACNolD,WAAYA,EACZC,OAAQA,EACR5lB,QAAUv2C,IACR28D,EAAY38D,EAAGy8D,GAAoB,IAErCL,YAAaA,EACbrmD,IAAKA,EACL0C,SAAUyjD,EAAa,GAAK,SA4CzBhpD,mBAAQG,eAAuBwpD,KAA/B3pD,EApCM,QAAC,gBACpBspD,EADoB,qBAEpBM,EAFoB,UAGpBJ,EAHoB,WAIpBR,EAJoB,UAKpBa,EALoB,WAMpBC,EANoB,YAOpBZ,EAPoB,YAQpBO,GARmB,SASfI,EAAU11D,KAAI,CAACyP,EAAMvR,KAAW,IAAD,EAEnC,MAAMk3D,EAAoBK,EAAqBhmD,GAEzCmmD,EACJR,GAAqB,EACjB,CACA1mD,IAAKymD,SAAF,UAAEA,EAAiBz3B,QAAQ03B,UAA3B,aAAE,EAA6C/oD,IAClDipD,YAAaA,EACbR,OAAQa,GAER,GAEN,OACE,kBAACT,GAAD,eACEC,gBAAiBA,EACjBC,kBAAmBA,EACnB3lD,KAAMA,EACNnW,IAAG,UAAK+7D,EAAL,YAAkBn3D,GACrBm3D,UAAS,UAAKA,EAAL,YAAkBn3D,GAC3B22D,WAAYA,EACZE,YAAaA,GACTa,UCkFK/pD,mBAAQG,eAAuBwpD,KAA/B3pD,EA1NmB,IAS3B,IAAD,QAT6B,WACjCgqD,EADiC,SAEjCprD,EAFiC,UAGjC+D,EAHiC,OAIjCK,EAJiC,WAKjCgmD,EALiC,OAMjCiB,EANiC,gBAOjCC,EAPiC,cAQjCC,GACI,EACJ,MAAMpnD,EAAaC,SAAH,UAAGA,EAAQC,YAAX,aAAG,EAAcF,YAC1BgiD,GAAcmF,EAEf/G,EAAY,UAAG4B,aAAH,EAAGA,EAAY3B,aAAf,QAAwB,GAC1C,IAAIgH,EAAmBjH,EACvB,MAAMkH,EAAatpD,oBAEZupD,EAAgBC,GAAqB1pD,mBAAS,EAAE,GAAI,KACrD,SAAE2pD,GAAaC,eACdC,EAAeC,GAAoB9pD,oBAAS,GAG7C+pD,EAAqB3oD,uBAAY,IAC9BmoD,EAAiBtoD,QAAQ8B,GAASk+C,aAAel+C,MACvD,CAACwmD,EAAkBjH,IAGhB0H,EAA0BD,IAAqBz2D,KAAKyP,IACxD,MACMknD,IADalnD,aAAA,EAAAA,EAAM2+C,sBAAuB,IACXpuD,KAAK42D,IACpCA,aAAJ,EAAIA,EAAIC,oBAAoBp4D,QACnBm4D,aAAP,EAAOA,EAAIC,oBAAoBlpD,QAAQmpD,GAAcnJ,aAAemJ,KAE7DnJ,aAAeiJ,GAAMA,EAAK,KAElCG,OAGH,OAAOJ,EAAkBl4D,OAAS,CAACgR,KAASknD,GAAqB,MAI7DxB,EAAkBvoD,iBAAO6pD,IAAqBz2D,KAAI,CAACyP,EAAMvR,KACtD,CACLmO,IAAK2qD,sBACLvsD,SAAUisD,EAAwBx4D,GAAO8B,KAAI,IAAMg3D,6BAiBvDhqD,qBAAU,KAAO,IAAD,EACd,MAAMiqD,EAAoBf,SAAH,UAAGA,EAAYx4B,eAAf,aAAG,EAAqB5f,UAY/C,OAXI+2C,GAAcgB,IAAeC,GAC/BmB,EAAkBt4D,IAAI,iBACtB03D,GAAS,KAjBU,MACrB,KAAIh+D,SAASwjB,OAAQxjB,SAASwjB,KAAKiC,UAAUo5C,SAAS,yBAKlD/B,aAAA,EAAAA,EAAiBz3B,UAAWy3B,EAAgBz3B,QAAQj/B,OAAQ,CAE9D,MAAM04D,EAAiC9+D,SAASsnB,cAAc,mBAC9Dw3C,WAAaj2D,UASXk2D,GACAH,EAAkBt4D,IAAI,YACtBs4D,EAAkBh5D,OAAO,iBACzBu4D,GAAiB,KAChBxD,KAAoB,KACd6B,GAAcgB,IAAeC,GACtCM,EAAkB,EAAE,GAAI,IAEnB,KACLa,EAAkBh5D,OAAO,eAE1B,CAAC42D,EAAYgB,IAgHhB,OAAKjnD,EAKH,kBAAC,GAAD,CACEJ,UAAWA,EACXE,IAAKwnD,EACLjB,UAAYt8D,GA9EE,EAACA,EAAGw9D,EAAgBhB,KAAqB,IAAD,EACxD,IAAKN,IAAqC,IAAvBsB,EAAe,KAAchB,KAAoBA,aAAD,EAACA,EAAiBz3B,QAAQj/B,QAC3F,OAKF,MAAM44D,EAAclB,EAAe,GAC7BmB,EAAanB,EAAe,GAC5BoB,KAAgBD,GAAc,GAC9BE,EAAcrC,SAAH,UAAGA,EAAiBz3B,QAAQ25B,UAA5B,aAAG,EAAuC5sD,SAAShM,OAC9Dg5D,EAAcF,EAAaD,EAAaD,EAExCK,EAAoBH,EAAapC,aAAH,EAAGA,EAAiBz3B,QAAQ25B,GAAa5sD,SAASzK,KAAI,QAAC,QAAE09B,GAAH,SAAiBA,KAAWy3B,aAAlF,EAAkFA,EAAiBz3B,QAAQ19B,KAAI,QAAC,IAAEqM,GAAH,SAAaA,EAAIqxB,WAE9Ji6B,EAA4B,IAAhBF,EAAoBC,EAAkBj5D,OAAS,EAAIg5D,EAAc,EAC7EG,EAAYH,IAAgBC,EAAkBj5D,OAAS,EAAI,EAAIg5D,EAAc,EAE/E9+D,GAAmB,KAAdA,EAAE2yC,SACT3yC,EAAEo1B,iBAEE2pC,EAAkBA,EAAkBj5D,OAAS,IAC/Ci5D,EAAkBA,EAAkBj5D,OAAS,GAAGyC,SAEzCvI,GAAmB,KAAdA,EAAE2yC,SAChB3yC,EAAEo1B,iBAEE2pC,EAAkB,IACpBA,EAAkB,GAAGx2D,SAEdvI,GAAmB,KAAdA,EAAE2yC,SAChB3yC,EAAEo1B,iBAEE2pC,EAAkBC,IACpBD,EAAkBC,GAAWz2D,SAEtBvI,GAAmB,KAAdA,EAAE2yC,SAChB3yC,EAAEo1B,iBAEE2pC,EAAkBE,IACpBF,EAAkBE,GAAW12D,SAEtBvI,GAAmB,KAAdA,EAAE2yC,SAChB3yC,EAAEo1B,iBAEE2pC,EAAkBE,MAEfL,GAAcC,EACjBrC,WAAiBz3B,QAAQ25B,GAAa5sD,SAAS,GAAGizB,QAAQx8B,QAE1Dw2D,EAAkBE,GAAW12D,UAGxBvI,GAAmB,KAAdA,EAAE2yC,UAChB3yC,EAAEo1B,iBAEE2pC,EAAkBE,KAEhBL,EACFpC,WAAiBz3B,QAAQ25B,GAAahrD,IAAIqxB,QAAQx8B,QAElDw2D,EAAkBE,GAAW12D,WAiBf+zD,CAAUt8D,EAAGw9D,EAAgBhB,IAE9C1qD,EACD,kBAAC,GAAD,CACE0qD,gBAAiBA,EACjB0C,0BAf4B,CAACR,EAAa5nD,IAASinD,EAAwBW,GAAah6C,QAAQ5N,GAgBhGgmD,qBAjBwBhmD,GAASgnD,IAAqBp5C,QAAQ5N,GAkB9D4lD,UAAS,iBAAYS,GACrBjB,WAAYA,EACZa,UAAWO,EACXN,WA7Fa,KACjBS,EAAkB,EAAE,GAAI,KA6FpBrB,YAhIc,KAClBiB,GAAc,IAgIVV,YAzGc,CAAC38D,EAAGy8D,EAAmB0C,KACrCvB,IAGC1B,GACHmB,GAAc,GAEhBI,EAAkB,CAAChB,EAAmB0C,MAmGlCC,kBA9HqBp/D,KACV,YAAXA,EAAEqV,MAEc,KAAdrV,EAAE2yC,UAOR3yC,EAAEo1B,kBAqHEiqC,UAjHar/D,IACjBA,EAAEo1B,iBACFqoC,EAAkB,EAAE,GAAI,IACxBJ,GAAc,OAyFP,QClJIiC,I,6CAAAA,GAxCsC,IAK9C,IAAD,cALgD,OACpDppD,EADoD,SAEpDipC,EAFoD,gBAGpDie,EAHoD,UAIpDiC,GACI,EACJ,MAAME,EAAY3rD,YAAkB,aAAc,QAC5C4rD,EAAqB5rD,YAAkB,sCAAuC,2BAC9E6rD,GAA4BvpD,SAAA,UAAAA,EAAQC,YAAR,mBAAcF,kBAAd,mBAA0BwpD,iCAA1B,mBAAqDlmD,WAArD,mBAA0DjB,aAA1D,eAAiE+I,OAAQ,IAE3G,OACE,kBAAC65C,GAAD,KACE,kBAACF,GAAD,KACE,kBAAC,GAAD,CAAehiD,QAASqmD,GACtB,kBAACzD,GAAD,CACE5/C,GAAIyjD,GACJD,IAEJ,kBAACjF,GAAD,KACE,kBAACE,GAAD,KACE,kBAACC,GAAD,KACE,kBAACC,GAAD,KAAoB4E,KAGxB,kBAAC1E,GAAD,KACE,kBAACa,GAAD,CAAiB1iD,QAASqmD,EAAW5mD,SAAS,IAAI,aAAW,iBAGjE,kBAAC,GAAD,CACE5C,UAAU,oBACVK,OAAQA,EACRipC,SAAUA,EACVge,OAAQ,EACRC,gBAAiBA,OCpCMjuD,UAAOC,IAAV,4EAEd,QAAC,MAAElQ,GAAH,SAAeA,EAAMi7D,SAASh6C,UAAU46C,uBAFjD,MAKMtoD,GAAYtD,UAAOC,IAAV,wMAGlB9F,YAAG,MAIHA,IAAG4H,SAAS,MAKV5H,IAAG4H,SAAS,OAMLqc,GAAgBpe,kBAAO4O,KAAKtL,UAAZtD,CAAH,0FACtB,QAAC,MAAEjQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOksB,GAAI,OAAQxZ,GAAI,MAGhDtI,YAAG,OACD,QAAC,MAAEpK,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOisB,GAAI,OAAQvZ,GAAI,OAIzCwa,GAAiBjd,UAAOC,IAAV,oIAKvB,QAAC,MAAElQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOsQ,GAAI,OAG3B0c,GAAoB/c,UAAOgd,OAAV,sEAI1B,QAAC,MAAEjtB,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAO6R,GAAI,OAG3Bkb,GAAa9c,kBAAOgM,KAAPhM,CAAH,uSAUnB7F,IAAG4H,SAAS,OAKHwuD,GAAUvwD,UAAOC,IAAV,iGAChB,QAAC,MAAElQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAO+T,GAAI,YACX,QAAC,MAAE/T,GAAH,SAAeA,EAAMi7D,SAAS1E,oBAAoBvsC,UAE3E5f,IAAG4H,SAAS,OACV,QAAC,MAAEhS,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAO+T,GAAI,YAG7BoZ,GAAQld,UAAOqd,GAAV,6FACdC,KACO,QAAC,MAAEvtB,GAAH,SAAeA,EAAM4sB,eAAenU,MAAM7P,SAKxC0lB,GAAiBre,UAAOmM,KAAV,mDACvBwB,MACO,QAAC,MAAE5d,GAAH,SAAeA,EAAMi7D,SAASzsC,SAAS5lB,SAMrC+gB,IAFc1Z,UAAOyK,EAAV,4BAEEzK,kBAAO2B,KAAP3B,CAAH,gqBAEnB,QAAC,MAAEjQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOsQ,GAAI,MAGlCxE,IACAxB,YAAO,OAAQ,iBASN,QAAC,MAAEtK,GAAH,SAAeA,EAAMi7D,SAASzsC,SAAS5lB,QAmBhDwB,IAAG4H,SAAS,MAKd5H,IAAG4H,SAAS,OACV,QAAC,MAAEhS,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOsQ,GAAI,QAM7BmwD,GAAwBxwD,kBAAO0Z,GAAP1Z,CAAH,0EAC9B,QAAC,MAAEjQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOwT,GAAI,OAAQjD,GAAI,EAAGD,GAAI,MAEvDlG,YAAG,OAKMsG,GAAcT,UAAOmM,KAAV,sFASX1K,GAAgBzB,UAAOC,IAAV,4BAEbwsD,GAAgBzsD,kBAAOywD,IAAPzwD,CAAH,mRACtB3F,YAAO,UAAW,WAClB8H,KAIAhI,YAAG,MAIHA,IAAG4H,SAAS,OAKJ,QAAC,MAAEhS,GAAH,SAAeA,EAAM48D,mBAAmB/wD,WAAW4D,iBAIrC,gBAAC,MAAEzP,GAAH,SAAeA,SAAf,UAAeA,EAAO48D,0BAAtB,iBAAe,EAA2BrnB,eAA1C,aAAe,EAAoCsnB,cCnG9D8D,OA/D2B,IASnC,IAAD,UATqC,eACzC/yC,EADyC,WAEzCC,EAFyC,SAGzCC,EAHyC,SAIzCzZ,EAJyC,KAKzC5I,EALyC,MAMzCgN,EANyC,0BAOzC8nD,EAPyC,UAQzCJ,GACI,EACJ,MAAMG,EAAqB5rD,YAAkB,sCAAuC,2BAEpF,OACE,oCACE,kBAAC,GAAD,KACE,kBAAC,GAAD,KACE,kBAAC,GAAD,CAAeoF,QAASqmD,GAAW,kBAAC,GAAD,CACjCrjD,GAAIyjD,GAA6B,KACjCD,IAEF,kBAAC,GAAD,KACE,kBAAC9mD,GAAA,EAAD,CACEC,MAAO,CAAEL,MAAOX,GAChBiB,UAAU,KAGd,kBAAC,GAAD,KACE,kBAAC,GAAD,KACE,kBAAC,GAAD,CACE/C,UAAU,WACV8C,MACEpF,EACIwZ,EACA,CACAzU,MAAO,CACLgE,IAAKyQ,SAAF,UAAEA,EAAYzU,aAAd,aAAE,EAAmBgE,IACxBE,IAAKuQ,SAAF,UAAEA,EAAYzU,aAAd,aAAE,EAAmBkE,IACxB,cAAeC,aAAasQ,SAAD,UAACA,EAAYzU,aAAb,aAAC,EAAmBgE,IAAK,CAClDI,KAAUC,OACVD,KAAUyQ,WAKpBnpB,MAAO0Y,KAAUC,OACjBhY,OAAQ+X,KAAUyQ,UAGtB,kBAAC,GAAD,KAAiBL,IAEnB,kBAAC,GAAD,CACEjX,UAAU,eACV8C,MAAO,CAAEL,MAAO3N,GAChBkO,cAAemU,EACfK,iBAAiB,WAIvB,kBAACqyC,GAAD,QCXSI,OAzDwC,IAMhD,IAAD,sCANkD,WACtD5C,EADsD,OAEtDhnD,EAFsD,SAGtDipC,EAHsD,gBAItDie,EAJsD,UAKtDiC,GACI,EAEJ,MAAMppD,EAAaC,SAAH,UAAGA,EAAQC,YAAX,aAAG,EAAcF,WAC3ByX,EAAWzX,SAAH,UAAGA,EAAY8pD,8BAAf,aAAG,EAAoCjgD,WAC/CkgD,EAAqBtyC,SAAH,UAAGA,EAAUC,sBAAb,iBAAG,EAA0B7N,kBAA7B,iBAAG,EAAsCiN,kBAAzC,aAAG,EAAkDxT,IACvE0mD,EAAsBvyC,SAAH,UAAGA,EAAUwyC,6BAAb,aAAG,EAAiC5nD,MACvD6nD,EAAczyC,SAAH,UAAGA,EAAUC,sBAAb,iBAAG,EAA0B7N,kBAA7B,iBAAG,EAAsC/D,WAAzC,iBAAG,EAA2CxC,WAA9C,aAAG,EAAgDjB,MAC9D8nD,EAAmB1yC,SAAH,UAAGA,EAAUV,gBAAb,aAAG,EAAoB1U,MACvC+nD,EAAgB3yC,SAAH,UAAGA,EAAUZ,sBAAb,aAAG,EAA0BxU,MAC1CgoD,EAAyB1sD,YAAkB,4BAA6B,uBACxE6rD,GAA4BvpD,SAAA,UAAAA,EAAQC,YAAR,mBAAcF,kBAAd,mBAA0BwpD,iCAA1B,mBAAqDlmD,WAArD,mBAA0DjB,aAA1D,eAAiE+I,OAAQ,IAE3G,OACE,kBAAC45C,GAAD,KACE,kBAAC,GAAD,CACI1nD,UAAU,EACVuZ,eAAgBmzC,EAChBlzC,WAAYizC,EACZhzC,SAAUozC,EACVzoD,MAAO0oD,EACP11D,KAAMw1D,EACNV,0BAA2BA,EAC3BJ,UAAWA,IAEf,kBAAC,GAAD,CACEnC,WAAYA,EACZhnD,OAAQA,EACRipC,SAAUA,EACVge,OAAQ,EACRC,gBAAiBA,EACjB3H,qBAAqB,IAEvB,kBAACkK,GAAD,CACEhnD,MAAO,CACLL,MAAO,CACL+I,KAAM,kCACNC,SAAU,WACVhM,OAAQ,WAGZuD,cAAeynD,GAGf,kBAAC,GAAD,KACE,kBAAChpD,GAAA,QAAD,CAAM2B,YAAY,EAAM1B,KAAK,cC+ExBrE,I,wBAAAA,eAAQG,eAAuBwpD,KAA/B3pD,EAzHuB,IAO/B,IAAD,MAPiC,WACrCgqD,EADqC,OAErChnD,EAFqC,SAGrCipC,EAHqC,WAIrC+c,EAJqC,cAKrCqE,EALqC,cAMrClD,GACI,EACJ,MAAMpnD,EAAaC,SAAH,UAAGA,EAAQC,YAAX,aAAG,EAAcF,WAE3BuqD,EAAgBvqD,aAAH,EAAGA,EAAYgiD,WAClC,IAAKuI,EAEH,OADAx4C,QAAQwS,MAAM,kCACP,KAET,MAAMimC,EAAqBC,GAClBF,aAAP,EAAOA,EAAexrD,QAAQ8B,IAASA,aAAA,EAAAA,EAAMS,QAASmpD,IAGlDC,EAAe1sD,mBACf2sD,EAAiB/iB,YAAYqe,IAE7B,SAAEwB,EAAF,YAAYmD,GAAgBlD,eAE3BC,EAAeC,GAAoB9pD,oBAAS,GAKnDM,qBACE,KACE,MAAM8L,EAAYwgD,EAAa57B,QACzB+7B,EAAmB,CAACH,EAAa57B,WAAY5kB,EAAU5K,qBAAqB,OAE5EwrD,EAAiB/gE,IACrB,IAAIsV,EAAsBtV,EAAEsV,OAE5B,KAAIA,GAAwB,gBAAdA,EAAOQ,IAAwBR,GAAwB,0BAAdA,EAAOQ,IAA9D,CAKA,KAAOR,GAAQ,CACb,GAAIA,IAAW6K,EAEb,OAGF7K,EAASA,EAAOzS,WAGlBw6D,GAAc,KA0BhB,OAtBInB,IAAe0E,GACjB/C,GAAiB,GACjBH,GAAS,KACPh+D,SAASwjB,KAAKrc,iBAAiB,QAASk6D,GAAe,GACvDlD,GAAiB,KAChBxD,KAAoB,IAEvB/b,aAAkBwiB,EAAkB,CAClCE,qBAAqB,MAGb9E,GAAc0E,IACxBlhE,SAASwjB,KAAKgB,oBAAoB,QAAS68C,GAAe,GAC1DxiB,aAAiBuiB,GACjBjD,GAAiB,GAEjBH,GAAS,KACPG,GAAiB,KAChBxD,KAAoB,KAIlB,KACLwG,IACAtiB,aAAiBuiB,GACjBphE,SAASwjB,KAAKgB,oBAAoB,QAAS68C,GAAe,MAI9D,CAAC7E,IAGH,MAAMmD,EAAar/D,IACjBA,EAAEo1B,iBACFioC,GAAc,IAGhB,OACE,kBAACnD,GAAD,CACEpkD,GAAG,YACHD,UAAS,oBAAenB,aAAawnD,GAAc,eACnD/c,SAAUA,EACVppC,IAAK4qD,GAEL,kBAACxF,GAAD,KACE,kBAAC,GAAD,CACE+B,WAAYA,EACZhnD,OAAQA,EACRipC,SAAUA,EACVie,gBAAiBqD,EAAkB,uBACnCpB,UAAWA,IAGb,kBAAC,GAAD,CACEnC,WAAYA,EACZhnD,OAAQA,EACRipC,SAAUA,EACVie,gBAAiBqD,EAAkB,qBACnCpB,UAAWA,EACXkB,cAAeA,S,UC1HlB,MAAMU,GAAO9xD,UAAOuU,KAAV,mKAMK,QAAC,MAAExkB,GAAH,SAAeA,EAAMgiE,WAAW94D,mBAElDwK,KAGSuuD,GAAehyD,UAAOC,IAAV,2jBAEH,QAAC,MAAElQ,GAAH,SAAeA,EAAMgiE,WAAW94D,oBAC1C,QAAC,MAAElJ,GAAH,SAAeA,EAAMgiE,WAAWr8D,UAMhC,QAAC,MAAE3F,GAAH,SAAeA,EAAMiI,OAAOI,OAAOiK,QAAQ,QAAC,MAAEtS,GAAH,SAAeA,EAAMiI,OAAOD,QAChE,QAAC,MAAEhI,GAAH,SAAeA,EAAMiI,OAAOI,OAAOiK,QAAQ,QAAC,MAAEtS,GAAH,SAAeA,EAAMiI,OAAOD,QACnE,QAAC,MAAEhI,GAAH,SAAeA,EAAMiI,OAAOI,OAAOiK,QAAQ,QAAC,MAAEtS,GAAH,SAAeA,EAAMiI,OAAOD,QAItE,QAAC,MAAEhI,GAAH,SAAeA,EAAMgiE,WAAW94D,oBAC1C,QAAC,MAAElJ,GAAH,SAAeA,EAAMgiE,WAAW74D,eAI1CiB,IAAG4H,SAAS,OACQ,QAAC,MAAEhS,GAAH,SAAeA,EAAMgiE,WAAW7hE,cAC1C,QAAC,MAAEH,GAAH,SAAeA,EAAMgiE,WAAWr8D,UACzB,QAAC,MAAE3F,GAAH,SAAeA,EAAMgiE,WAAWE,+BAG3B,QAAC,MAAEliE,GAAH,SAAeA,EAAMgiE,WAAW94D,oBAC1C,QAAC,MAAElJ,GAAH,SAAeA,EAAMgiE,WAAW74D,gBAKnCg5D,GAAQlyD,UAAOs5B,MAAV,63BACd1+B,IACAuH,KAUEhI,YAAG,OAKL,QAAC,MAAEpK,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOisB,GAAI,CAAExb,GAAI,EAAGpG,GAAI,QAAU6hB,GAAI,CAAEzb,GAAI,OAAQpG,GAAI,QAoBxE+3D,GAAcnyD,UAAO3F,OAAV,ijBACpBA,YAAO,UAAW,QAYd8G,KACe,QAAC,MAAEpR,GAAH,SAAeA,EAAMgiE,WAAW5lC,MAAM1yB,gBAEjC,QAAC,MAAE1J,GAAH,SAAeA,EAAMgiE,WAAW5lC,MAAM32B,UACpD,QAAC,MAAEzF,GAAH,SAAeA,EAAMgiE,WAAW5lC,MAAMh7B,QAE7B,QAAC,MAAEpB,GAAH,SAAeA,EAAMgiE,WAAWK,iBAC1C,QAAC,MAAEriE,GAAH,SAAeA,EAAMgiE,WAAW5lC,MAAMj7B,OACxB,QAAC,MAAEnB,GAAH,SAAeA,EAAMgiE,WAAW5lC,MAAMt3B,SAMpDw9D,GAAYryD,UAAOmM,KAAV,2GAClBzL,YAAI,GAAI,KAIA,QAAC,MAAE3Q,GAAH,SAAeA,EAAMgiE,WAAW5lC,MAAMmmC,WAG9CC,KAGSC,GAAgBxyD,UAAOC,IAAV,wLAEd,QAAC,MAAElQ,GAAH,SAAeA,EAAMgiE,WAAWr8D,UAGpB,QAAC,MAAE3F,GAAH,SAAeA,EAAMgiE,WAAW94D,oBAC1C,QAAC,MAAElJ,GAAH,SAAeA,EAAMgiE,WAAW74D,gBAKjCu5D,GAASzyD,UAAO3F,OAAV,8pBACfA,YAAO,UAAW,YAKA,QAAC,MAAEtK,GAAH,SAAeA,EAAMgiE,WAAWW,OAAOz5D,oBAI9C,QAAC,MAAElJ,GAAH,SAAeA,EAAMgiE,WAAWW,OAAOC,WAQ9CxxD,KAEoB,QAAC,MAAEpR,GAAH,SAAeA,EAAMgiE,WAAWW,OAAOl9D,UACrD,QAAC,MAAEzF,GAAH,SAAeA,EAAMgiE,WAAWW,OAAOvhE,QAC9B,QAAC,MAAEpB,GAAH,SAAeA,EAAMgiE,WAAWK,iBAE1C,QAAC,MAAEriE,GAAH,SAAeA,EAAMgiE,WAAWW,OAAOxhE,OACzB,QAAC,MAAEnB,GAAH,SAAeA,EAAMgiE,WAAWW,OAAO79D,QAI9DsF,IAAG4H,SAAS,OAMHtB,GAAcT,UAAOmM,KAAV,6TACpBzL,YAAI,GAAI,KAKA,QAAC,MAAE3Q,GAAH,SAAeA,EAAMgiE,WAAWW,OAAOJ,WAG/CG,GACAA,IAGU,QAAC,MAAE1iE,GAAH,SAAeA,EAAMgiE,WAAWW,OAAOJ,WAE7CC,KCrDOK,I,eAAAA,GA/GyB,IAIjC,IAJkC,SACvCC,EADuC,YAEvCz1B,EAFuC,SAGvC/G,EAAW,UACP,EACJ,MAAO3tB,GAAKC,eACN4pC,EAAUC,eACTyZ,EAAS6G,GAAcluD,oBAAS,GAEjCykB,EAAWlF,eACX,OAAEoF,EAAF,SAAUrF,GAAamF,GAAY,GAEnC0pC,EADe,IAAIzpC,gBAAgBC,GACCxe,IAAI,SACvCioD,EAAYC,GAAiBruD,mBAASmuD,GAAwB,IAEhE31B,IACHA,EAAc10B,EAAE,4BAyClB,OANAxD,qBAAU,KACJgf,IAAagvC,aAAe,KAC9BD,EAAc,MAEf,CAAC/uC,IAGF,kBAAC4tC,GAAD,CACEnrD,GAAG,cACHiT,OAAO,IACPvQ,KAAK,SACL3C,UAAS,sBAAkBulD,GAAW+G,EAAc,kBAAoB,IACxE38B,SA9BkBxlC,IASH,IAAD,KARZA,GACFA,EAAEo1B,iBAGAoQ,GACFA,IAGE28B,IACFzgB,EAAQ5/C,KAAKugE,aACX,CAAEC,KAAMH,EAAYI,KAAM,IAE1B,CAAEC,KAAI,UAAG9tD,cAAS,UAAIhV,gBAAJ,aAAI,EAAUiY,cAA1B,QAAoC,OAmB5C,kBAACwpD,GAAD,KACE,kBAAC,GAAD,KACE,kBAAC7pD,GAAA,QAAD,CAAM2B,YAAY,EAAM1B,KAAK,YAE/B,kBAAC8pD,GAAD,CACEtrD,IAAKisD,EACL3sD,KAAK,SACLk3B,YAAaA,EACbJ,SAAWnsC,IACToiE,EAAcpiE,EAAEsV,OAAOgD,QAEzBi+B,QAAS,IAAM0rB,GAAW,GAC1B9F,OAAQ,IAAM8F,GAAW,GACzB3F,UA3Det8D,IArBD,KAsBhBA,EAAE2yC,SACJyvB,EAAc,KA0DV,aAAW,SACX9pD,MAAO6pD,IAERA,GACC,kBAACb,GAAD,CACEjsD,KAAK,SACL2D,QA5DgBhZ,IACpBA,GACFA,EAAEo1B,iBAGJgtC,EAAc,KAwDN,aAAW,gBAEX,kBAACZ,GAAD,KACE,kBAAClqD,GAAA,QAAD,CAAM2B,YAAY,EAAM1B,KAAK,aAKrC,kBAACoqD,GAAD,KACE,kBAACC,GAAD,CACEvsD,KAAK,SACLkhC,QAAS,IAAM0rB,GAAW,GAC1B9F,OAAQ,IAAM8F,GAAW,IAEzB,kBAAC7/C,GAAA,EAAD,KACGvK,EAAE,0CAEL,4C,8BC7GV,MAAM4qD,GAAetjE,cAAH,i3BACduI,IACA2I,KAIa,QAAC,MAAEnR,GAAH,SAAeA,EAAMq4D,WAAWmL,KAAKx5D,aAKzC+N,IAAM0rD,YAGbr5D,YAAG,OACD,QAAC,MAAEpK,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAO8Q,GAAI9Q,EAAMq4D,WAAWmL,KAAKl5D,OAAOo5D,iBAKnE,QAAC,MAAE1jE,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAO8Q,GAAI,EAAGe,GAAI,WAE3CzH,IAAGslB,QAAQ,KAAM,OACf,QAAC,MAAE1vB,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAO8Q,GAAI9Q,EAAMq4D,WAAWmL,KAAKG,oBAAoBtgE,eAGhF+G,IAAG4H,SAAS,MAMZb,KACe,QAAC,MAAEnR,GAAH,SAAeA,EAAMyK,OAAO+kD,QAAQ0M,UAMrDxoD,IAEAtJ,YAAG,OACD,QAAC,MAAEpK,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAO8Q,GAAI,EAAGkb,GAAI,WAG7C5hB,YAAG,MACDiyD,KAIY,QAAC,MAAEr8D,GAAH,SAAeA,EAAMyK,OAAO+kD,QAAQ0M,WAO5B,QAAC,MAAEl8D,GAAH,SAAeA,EAAMiI,OAAOI,OAAOiK,QASvDsxD,GAAS3zD,UAAO3F,OAAV,8DACRi5D,GAEAn5D,YAAG,OACF,QAAC,MAAEpK,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAO8Q,GAAI9Q,EAAMq4D,WAAWmL,KAAKn5D,GAAGhH,gBAI5D2f,GAAa/S,UAAOyK,EAAV,qCACZ6oD,IAGE7yD,GAAcT,UAAOmM,KAAV,oEACbhS,YAAG,OAKDijB,GAAQpd,UAAOmM,KAAV,oGACA,QAAC,MAAEpc,GAAH,SAAeA,EAAMq4D,WAAWzI,cAGvCxlD,YAAG,OAsGQuzD,I,4DAAAA,iBAjG+B,IAWvC,IAXwC,WAC7CK,EAD6C,SAE7C17C,EAF6C,GAG7C1L,EAH6C,KAI7CnL,EAJ6C,WAK7CuxD,EAL6C,cAM7CqE,EAN6C,cAO7ClD,EAP6C,OAQ7C/nD,EAR6C,WAS7CytD,EAT6C,MAU7CprD,GACI,EACJ,MAAOE,GAAKC,gBACLmmC,EAAS+kB,GAAcjvD,oBAAS,IACjC,SAAE2pD,EAAF,YAAYmD,GAAgBlD,cAIlCtpD,qBAAU,IAAMwsD,KAAe,IAE/B,MAwCMx5D,EAAM,CACV,KAAQ,kBAAC,WAAD,MACR,cAAiB,kBAAC47D,GAAA,QAAD,MACjB,MAAS,kBAACC,GAAA,QAAD,OAGLC,EAAc3hD,GAAana,EAAIma,GAErC,OACE,oCAEO7W,EACD,kBAACuX,GAAD,CAAYb,KAAM1W,EAAMmL,GAAIA,EAAIR,OAAQA,GACtC,kBAAC,GAAD,KACE6tD,EAAW3hD,IAEb,kBAAC,GAAD,KAAQ7J,IAGR,kBAACmrD,GAAD,CACEhtD,GAAIA,EACJ,gBAAeomD,GAAc6G,IAAe7F,EAC5C,aAAYhB,GAAc6G,IAAe7F,EAAa,uBAAyB,kBAC/ElkD,QAAS,KA9DdilC,IAIAie,IACHmB,GAAc,GACdkD,EAAcwC,IAGZ7G,GAAc6G,IAAe7F,GAC/BG,GAAc,GAGZnB,GAAc6G,IAAe7F,GAC/BqD,EAAcwC,GAGhBC,GAAW,GAEXtF,GAAS,KACPsF,GAAW,KACV3I,KAAoB,MA0Cb9jB,QAAS,KAtCd0H,IAIDie,GAAc6G,IAAe7F,IAC/B8F,GAAW,GACX3F,GAAc,IAGhBK,GAAS,KACPsF,GAAW,KACV3I,KAAoB,OA6Bb,kBAAC,GAAD,KACC8I,EAAW3hD,IAEZ,kBAAC,GAAD,KAAQ7J,Q,UC5Lf,MAAMyrD,GAAgBj0D,UAAOC,IAAV,oPACJ,QAAC,MAAElQ,GAAH,SAAeA,EAAMq4D,WAAW8L,cAAchkE,aAOvD4X,IAAMC,OAAS,GAQfosD,GAAWn0D,UAAOyK,EAAV,sQACjB2pD,KACA,QAAC,MAAErkE,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOgsB,GAAI,EAAG1b,GAAG,WAGrB,QAAC,MAAEtQ,GAAH,SAAeA,EAAMq4D,WAAWiM,SAASj7D,MAAMG,gBAG7D,QAAC,MAAExJ,GAAH,SAAeA,EAAMq4D,WAAWiM,SAAS17D,SAWvC27D,GAAoBt0D,UAAOC,IAAV,6NAClB,QAAC,MAAElQ,GAAH,SAAeA,EAAMq4D,WAAW5yD,OAAOgL,MACrC,QAAC,SAAE4D,EAAF,OAAY9R,GAAb,SAA0B8R,IAAa9R,EAAS,WAAa,WAClE,QAAC,SAAE8R,GAAH,SAAkBA,EAAW,IAAM,SAC/B0D,IAAMC,OAEf5N,YAAG,OACO,QAAC,MAAEpK,GAAH,SAAeA,EAAMq4D,WAAW5yD,OAAO4E,KAOjDD,IAAG4H,SAAS,OACV,QAAC,MAAEhS,GAAH,SAAgBA,EAAMq4D,WAAWx3D,SAAS2jE,gBAAkB,wBAIrDC,GAAuBx0D,UAAOC,IAAV,qSAIpB6H,IAAMC,OAEf5N,YAAG,MAIHA,YAAG,MAQHA,IAAG4H,SAAS,OAMH0yD,GAAmBz0D,UAAOkZ,OAAV,0HACP,QAAC,MAAEnpB,GAAH,SAAeA,EAAMq4D,WAAWl4D,cACzB,QAAC,MAAEH,GAAH,SAAeA,EAAMq4D,WAAW7oD,cAEhDuI,IAAMC,QAGN2sD,GAAoB10D,UAAOC,IAAV,mMAC1B,QAAC,MAAElQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOisB,GAAI,CAAExb,GAAG,GAAD,OAAKzQ,EAAMwvB,KAAKC,OAAOllB,KAAKkG,GAA5B,MAAoCpG,GAAI,GAAK6hB,GAAI,CAAEzb,GAAI,EAAGpG,GAAI,QACtG,QAAC,MAAErK,GAAH,SAAe4kE,YAAY,CAAE5kE,QAAO44D,WAAY,cAIxC,QAAC,MAAE54D,GAAH,SAAeA,EAAMq4D,WAAW5yD,OAAOgL,KAG/CrG,YAAG,OACO,QAAC,MAAEpK,GAAH,SAAeA,EAAMq4D,WAAW5yD,OAAO4E,MAG/C,IAAgD,IAA/C,OAAE9H,EAAF,8BAAUsiE,GAAoC,EACjD,GAAItiE,IAAWsiE,EACb,OAAO5kE,cAAP,yEACc,QAAC,MAAED,GAAH,SAAeA,EAAMq4D,WAAW5yD,OAAOq/D,YAO9CC,GAAW90D,kBAAO2B,IAAP3B,CAAH,uDAEjB+0D,KAGS3R,GAAcpjD,UAAOmM,KAAV,8KACpBzL,YAAI,GAAI,KAIR,QAAC,MAAE3Q,GAAH,SAAe4kE,YAAY,CAAE5kE,QAAO44D,WAAY,YAEhDxuD,YAAG,OACD,QAAC,MAAEpK,GAAH,SAAe2Q,YAAI3Q,EAAMq4D,WAAW4M,KAAKt0D,IAAItG,GAAGvF,MAAO9E,EAAMq4D,WAAW4M,KAAKt0D,IAAItG,GAAG5E,WAC7E,QAAC,MAAEzF,GAAH,SAAeA,EAAMq4D,WAAW4M,KAAKt0D,IAAItG,GAAGvF,QAGrDsF,YAAG,OACD,4CAAC,MAAEpK,GAAH,SAAgBA,SAAA,UAAAA,EAAOq4D,kBAAP,mBAAmB4M,YAAnB,mBAAyBt0D,WAAzB,mBAA8B0Y,UAA9B,eAAkCvkB,SAAS9E,SAA3C,UAA2CA,EAAOq4D,kBAAlD,iBAA2C,EAAmB4M,YAA9D,iBAA2C,EAAyBt0D,WAApE,iBAA2C,EAA8B0Y,UAAzE,aAA2C,EAAkC5jB,QAAUkL,YAAI3Q,SAAD,UAACA,EAAOq4D,kBAAR,iBAAC,EAAmB4M,YAApB,iBAAC,EAAyBt0D,WAA1B,iBAAC,EAA8B0Y,UAA/B,aAAC,EAAkCvkB,MAAO9E,SAA1C,UAA0CA,EAAOq4D,kBAAjD,iBAA0C,EAAmB4M,YAA7D,iBAA0C,EAAyBt0D,WAAnE,iBAA0C,EAA8B0Y,UAAxE,aAA0C,EAAkC5jB,QAAU,QACzL,4BAAC,MAAEzF,GAAH,SAAgBA,SAAD,UAACA,EAAOq4D,kBAAR,iBAAC,EAAmB4M,YAApB,iBAAC,EAAyBt0D,WAA1B,iBAAC,EAA8B0Y,UAA/B,aAAC,EAAkCvkB,OAAnC,UAA+C9E,SAA/C,UAA+CA,EAAOq4D,kBAAtD,iBAA+C,EAAmB4M,YAAlE,iBAA+C,EAAyBt0D,WAAxE,iBAA+C,EAA8B0Y,UAA7E,aAA+C,EAAkCvkB,MAAjF,WAA6FosB,KAGrH,IAAgD,IAA/C,OAAE3uB,EAAF,8BAAUsiE,GAAoC,EAC/C,GAAItiE,IAAWsiE,EACb,OAAO5kE,cAAP,wKACImK,YAAG,MACDuG,YAAI,IAAK,IAIXvG,YAAG,OACD,gDAAC,MAAEpK,GAAH,SAAgBA,SAAA,UAAAA,EAAOq4D,kBAAP,mBAAmB4M,YAAnB,mBAAyBt0D,WAAzB,mBAA8BpO,cAA9B,mBAAsC8mB,UAAtC,eAA0CvkB,SAAS9E,SAAnD,UAAmDA,EAAOq4D,kBAA1D,iBAAmD,EAAmB4M,YAAtE,iBAAmD,EAAyBt0D,WAA5E,iBAAmD,EAA8B0Y,UAAjF,aAAmD,EAAkC5jB,QAAUkL,YAAI3Q,SAAD,UAACA,EAAOq4D,kBAAR,iBAAC,EAAmB4M,YAApB,iBAAC,EAAyBt0D,WAA1B,iBAAC,EAA8BpO,cAA/B,iBAAC,EAAsC8mB,UAAvC,aAAC,EAA0CvkB,MAAO9E,SAAlD,UAAkDA,EAAOq4D,kBAAzD,iBAAkD,EAAmB4M,YAArE,iBAAkD,EAAyBt0D,WAA3E,iBAAkD,EAA8B0Y,UAAhF,aAAkD,EAAkC5jB,QAAU,QACzM,gCAAC,MAAEzF,GAAH,SAAgBA,SAAD,UAACA,EAAOq4D,kBAAR,iBAAC,EAAmB4M,YAApB,iBAAC,EAAyBt0D,WAA1B,iBAAC,EAA8BpO,cAA/B,iBAAC,EAAsC8mB,UAAvC,aAAC,EAA0CvkB,OAA3C,UAAuD9E,SAAvD,UAAuDA,EAAOq4D,kBAA9D,iBAAuD,EAAmB4M,YAA1E,iBAAuD,EAAyBt0D,WAAhF,iBAAuD,EAA8BpO,cAArF,iBAAuD,EAAsC8mB,UAA7F,aAAuD,EAA0CvkB,MAAjG,WAA6GosB,QAOzIg0C,GAAiB,eAAClwD,EAAD,uDAAkD,KAAMmwD,EAAxD,uDAAgE,EAAhE,OAAsE,IAGtF,IAHuF,MAC5FnlE,EAD4F,gBAE5FolE,GACI,EACJ,MAAMxK,EAAS56D,EAAMq4D,WAAW5yD,OAAOuP,GAAMowD,EAAkBD,EAE/D,OAAOllE,cAAP,iFACwB26D,EACfA,KAIEyK,GAAgBp1D,UAAOC,IAAV,qUAQb6H,IAAMqjD,KAEK,IACb,IAEPhxD,YAAG,MACD86D,GAAe,OACf,QAAC,SAAEjlB,EAAF,8BAAY4kB,GAAb,WAAiD5kB,GAAa4kB,IAAgCK,GAAe,WAK7GA,GAAe,KAAM,IAErB96D,YAAG,MACD86D,GAAe,KAAM,KAKhBI,GAAkBr1D,UAAOC,IAAV,2NAKxB,QAAC,MAAElQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAO8Q,GAAI,MAEpC1G,YAAG,OAID,QAAC,MAAEpK,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOisB,GAAIjsB,EAAMq4D,WAAWkN,gBAAgBl7D,GAAGq5D,iBACjE,QAAC,MAAE1jE,GAAH,SAAeA,EAAMq4D,WAAWkN,gBAAgBzgE,SACvD,QAAC,MAAE9E,GAAH,SAAe4kE,YAAY,CAAE5kE,QAAO44D,WAAY,aAGlD,IAAgD,IAA/C,OAAEr2D,EAAF,8BAAUsiE,GAAoC,EAC/C,GAAItiE,IAAWsiE,EACb,OAAO5kE,cAAP,oFACImK,IAAGslB,QAAQ,KAAM,OACR,QAAC,MAAE1vB,GAAH,SAAeA,EAAMq4D,WAAWkN,gBAAgBl7D,GAAGvF,YAOzD0gE,GAAqBv1D,UAAOC,IAAV,8LAG3B,QAAC,MAAElQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAO8Q,GAAI,MAEpC1G,YAAG,OAID,QAAC,MAAEpK,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOisB,GAAIjsB,EAAMq4D,WAAWkN,gBAAgBl7D,GAAGq5D,iBACxE,QAAC,MAAE1jE,GAAH,SAAe4kE,YAAY,CAAE5kE,QAAO44D,WAAY,aAGlD,IAAgD,IAA/C,OAAEr2D,EAAF,8BAAUsiE,GAAoC,EAC/C,GAAItiE,IAAWsiE,EACb,OAAO5kE,cAAP,oFACImK,IAAGslB,QAAQ,KAAM,OACR,QAAC,MAAE1vB,GAAH,SAAeA,EAAMq4D,WAAWkN,gBAAgBl7D,GAAGvF,YAOzD2gE,GAAmBx1D,UAAOC,IAAV,gKAKzB9F,YAAG,MAIHA,IAAG4H,SAAS,OAOH0zD,GAAaz1D,UAAOC,IAAV,yNACD,QAAC,MAAElQ,GAAH,SAAeA,EAAMq4D,WAAWsN,eASzC5tD,IAAM6tD,YAINC,GAA6B51D,UAAOC,IAAV,sJAO1B6H,IAAM+tD,YAGNn8C,GAAa1Z,kBAAO2B,IAAP3B,CAAH,qNACnB,QAAC,MAAEjQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAO6R,GAAI,CAAEwX,GAAI,EAAGmB,GAAI,OAGjDlgB,YAAO,UAAW,WAElB8H,MAIQ,QAAC,MAAEpS,GAAH,SAAeA,EAAM48D,mBAAmB/wD,WAAW4D,iBAKrC,gBAAC,MAAEzP,GAAH,SAAeA,SAAf,UAAeA,EAAO48D,0BAAtB,iBAAe,EAA2BrnB,eAA1C,aAAe,EAAoCsnB,c,wBCrQ7E,MAGMzF,GAAmB,CACvB,CACExgD,GAAG,eACHuzB,MAAO,kBACP47B,cAAe,4CACf3vD,OAAQ,eAEV,CACEQ,GAAG,oBACHuzB,MAAO,uBACP47B,cAAe,iDACf3vD,OAAQ,wBAEV,CACEQ,GAAG,mBACHuzB,MAAO,eACP47B,cAAe,oCACf3vD,OAAQ,gBAEV,CACEQ,GAAG,aACHuzB,MAAO,SACP47B,cAAe,mCACf3vD,OAAQ,gBAsUGpC,mBAAQC,IAAsBE,cAAuBwpD,KAArD3pD,EAlUqB,IAM7B,IAAD,gCAN+B,OACnCgD,EADmC,WAEnCgmD,EAFmC,UAGnClmD,EAHmC,cAInCqnD,EAJmC,gBAKnC5pD,GACI,EAEJ,MAAMglD,EAAgBhlD,SAAH,UAAGA,EAAiBe,aAApB,aAAG,EAAwB0wD,OACxCC,EAAyB,IAAKjvD,SAAH,UAAGA,EAAQC,YAAX,aAAG,EAAcihD,mBAAoBqB,iBAChE2M,EAA+B,UAAGD,aAAH,EAAGA,EAAwBE,iCAA3B,SAG/BC,EAA8B1xD,YAAkB,uCAAwC,iBACxF2xD,EAA0B3xD,YAAkB,8BAA+B,uBAC3E4xD,EAAyB5xD,YAAkB,8BAA+B,0BAC1E4rD,EAAqB5rD,YAAkB,sCAAuC,2BAGhFc,aACFhV,SAASwjB,KAAKiC,UAEZigD,EACI,MACA,UAEH,yBAGL,MAAOvtD,GAAKC,eACN2tD,EAAYxxD,iBAAoB,OAE/ByxD,EAAYC,GAAiB5xD,oBAAS,IACtC6xD,EAAmBC,GAAwB9xD,oBAAS,IACpDuwD,EAAiBwB,GAAsB/xD,mBAAS,IAEhDorC,EAAUC,GAAarrC,oBAAS,GACjCgyD,EAAY9xD,iBAAoB,MAEhCwrD,GAA4BvpD,SAAA,UAAAA,EAAQC,YAAR,mBAAcF,kBAAd,mBAA0BwpD,iCAA1B,mBAAqDlmD,WAArD,mBAA0DjB,aAA1D,eAAiE+I,OAAQ,IAE3GhN,qBAAU,KACkB,OAAtBoxD,EAAU1gC,UACZ0gC,EAAU1gC,QAAU7sB,aAAUC,KAAQC,SAGxC,MAAM4tD,EAAqBP,EAAU1gC,QAAQ/hC,wBAAwBe,OAErE+hE,EACGE,GAAsBA,EAAqB,EACxC,EACAA,KAEL,CAAC9J,IAEJ7nD,qBAAU,KACR,IAAKK,YACH,OAGF,IAAImR,EACAogD,EAAa,EAEjB,MAAM3M,EAAe,KACfzzC,GACFtmB,OAAOmgD,qBAAqB75B,GAG9BA,EAAUtmB,OAAOogD,uBAAsB,KAAO,IAAD,EAC3C,MAAMumB,EAAoBH,SAAH,UAAGA,EAAWhhC,eAAd,aAAG,EAAoB/hC,wBACxCmjE,EAAsBzxD,aAAahV,SAASwjB,KAAKlgB,wBAAwB3C,IAAM4lE,EACrFA,EAAavxD,aAAahV,SAASwjB,KAAKlgB,wBAAwB3C,IAE5D6lE,IAAsBd,GACxBhmB,EAAU7/C,OAAOi6D,QAAU,GAAK0M,EAAkB7lE,KAAO,GAGvD6lE,GAAqBd,GACvBhmB,EAAU7/C,OAAOi6D,QAAU,GAAK2M,OAQC,IAAD,GAHtC5mE,OAAOsH,iBAAiB,SAAUyyD,GAAc,GAChDA,IAEK8L,IACHzL,IAAW3zD,IAAX,UAAe+/D,aAAf,EAAeA,EAAWhhC,eAA1B,QAAqC,IAGvC,MAAO,KAAO,IAAD,EACXxlC,OAAO2kB,oBAAoB,SAAUo1C,GAAc,GACnDK,IAAWr0D,OAAX,UAAkBygE,aAAlB,EAAkBA,EAAWhhC,eAA7B,QAAwC,OAEzC,IAEH,MAAMqhC,EAAyBvqC,mBAC7B,iBA/HiC,yBA+H3BpoB,SAAA,UAAAA,EAAiBe,aAAjB,eAAwBC,gBAC9B,CAAChB,SAAD,UAACA,EAAiBe,aAAlB,aAAC,EAAwBC,eAGrB4xD,EAAmCxqC,mBACvC,iBAnI4C,qBAmItCpoB,SAAA,UAAAA,EAAiBe,aAAjB,eAAwBC,gBAC9B,CAAChB,SAAD,UAACA,EAAiBe,aAAlB,aAAC,EAAwBC,eAIrB6xD,EAAcnW,aAAgB18C,GAC9B8yD,GAAgBpW,aAAgB18C,GAChC+yD,EAAqB/yD,aAAH,EAAGA,EAAiB+yD,mBACtCC,EAAiB,UAAGD,aAAH,EAAGA,EAAoBC,yBAAvB,QAA4C,GAC7DC,EAAiB,UAACF,aAAD,EAACA,EAAoBE,sBAArB,YAChBhyD,cAAc+xD,IAA4E,IAAvDlnE,OAAOi5B,SAASE,OAAOhU,QAAQ+hD,IAEnE3sC,EAAsB+B,mBAC1B,mBAAOpoB,SAAD,UAACA,EAAiBsoB,oBAAlB,aAAC,EAA+BC,eACtC,CAACvoB,SAAD,UAACA,EAAiBsoB,oBAAlB,aAAC,EAA+BC,cAI5B2qC,GAAWlzD,SAAA,UAAAA,EAAiBsoB,oBAAjB,eAA+B4qC,WAAY,GAE5DtyD,qBAAU,KAAO,IAAD,EAEd,aAAI9U,cAAJ,aAAI,EAAQqnE,iBAAkB,CAC5B,IAAIC,EAAW,IAAID,kBAAiB,KAC9BlnE,SAAS8kB,eAAe,iBAC1BqiD,EAASC,aACTjB,GAAqB,OAWzB,OAPAgB,EAASE,QAAQrnE,SAASwjB,KAAM,CAC9BxN,WAAW,EACXC,SAAS,EACTqxD,YAAY,EACZC,eAAe,IAGV,KACLJ,EAASC,iBAGZ,IAEH,MAAMI,EAAkBrrC,mBACtB,IACEy6B,GAAMjvD,KAAIsD,IAER,IACE,MAAMszD,EAAKv+D,SAAS8kB,eAAe7Z,EAAK2K,QAElC+zB,EAAQxxB,EAAElN,EAAKs6D,iBAAmBt6D,EAAKs6D,cAA/B,kBAA0Dt6D,EAAK0+B,OAAUxxB,EAAElN,EAAKs6D,eAE9F,GAAIhH,EACF,OAAO,kBAACqF,GAAD,CACL3iE,IAAKgK,EAAKmL,GACVuL,KAAI,WAAM1W,EAAK2K,QACf0D,QAAS,KACPilD,EAAG11D,SAELguC,QAAS,KACHh3C,QACFA,OAAOs9C,SAAS,EAAG,GAErB8oB,GAAc,IAEhBxJ,OAAQ,IAAMwJ,EAAc,OAE3Bt8B,GAGH1U,aAAU,WAAD,OAAYhqB,EAAK0+B,MAAjB,2CAAyD1+B,EAAK2K,SAG3E,MAAOof,GACLC,aAAUD,QAGhB,CAACkxC,IAGH,OACE,oCACE,kBAACxC,GAAD,CAAevtD,UAAW6vD,EAAa,aAAe,IACnDwB,GAEH,kBAACzD,GAAD,CACElwD,SAAUE,GAAmBA,EAAgB0zD,YAC7CpxD,IAAKgwD,EACLtkE,OAAQ09C,GAER,kBAACykB,GAAD,CACE/tD,UAAU,cACVtC,SAAUE,GAAmBA,EAAgB0zD,YAC7CrxD,GAAG,cACHwmD,UAAYt8D,IAEQ,KAAdA,EAAE2yC,SAAkBupB,GACtBmB,GAAc,IAGlB57D,QAAS2jE,GAAmCjmB,GAAY1rC,IAAoBA,EAAgB0zD,aAE5F,kBAACtD,GAAD,CAAmBE,8BAA+BqB,EAAiC3jE,OAAQ09C,GAAY1rC,IAAoBA,EAAgB0zD,aACzI,kBAAClD,GAAD,CAAUjoD,GAAG,IAAI,aAAYsqD,EAAcd,EAAyBD,GAClE,kBAAC,GAAD,CAAaxB,8BAA+BqB,EAAiC3jE,OAAQ09C,GAClFmnB,EACC,kBAAC,WAAD,MAEA,kBAAC,WAAD,SAKJI,IAAmBN,IAAkBC,GACrC,kBAACe,GAAA,QAAD,MAGF,kBAACC,GAAD,CACEvxD,GAAG,cACHitD,WAAY,EACZvhD,SAAS,OACT7J,MAAOE,EAAE,gBAGVyuD,KAAkBK,GACjB,kBAACU,GAAD,CACEvxD,GAAG,wBACHitD,WAAY,EACZp4D,MAAOmvB,GAAc6sC,EACrBnlD,SAAS,gBACT7J,MAAwCE,EAAhCiiB,EAAkC,oBAAnB,iBAI1BysC,GACC,kBAACc,GAAD,CACEvxD,GAAG,wBACHitD,WAAY,EACZp4D,KAAK,kCACL6W,SAAS,QACT7J,MAAO2tD,EACPhwD,OAAO,WAIV4mD,GACC,kBAAC6I,GAAD,CACElvD,UAAWqmD,EAAa,aAAe,GACvCljD,QAAS,IAAMqkD,GAAc,KAKhCiJ,IAAgBI,IAAmBN,IAAkBC,GACpD,kBAAC7B,GAAD,CAAiBT,8BAA+BqB,EAAiC3jE,OAAQ09C,GACvF,kBAAC4iB,GAAA,QAAD,OAIHwE,IAAiBG,IAAmBN,IAAkBC,GACrD,kBAAC3B,GAAD,CAAoBX,8BAA+BqB,EAAiC3jE,OAAQ09C,GAC1F,kBAACwlB,GAAD,KACE,kBAAC5C,GAAA,QAAD,OAGF,kBAAC,GAAD,CAAY/lD,GAAIyjD,GAA4BD,IAIhD,kBAAC+E,GAAD,CACED,gBAAiBA,EACjBzuD,UAAW6vD,EAAa,aAAe,GACvC3B,8BAA+BqB,EAC/BjmB,SAAUA,GAGR+c,GACE,kBAAC0I,GAAD,CACE/uD,UAAWqmD,EAAa,aAAe,GACvCljD,QAAS,IAAMqkD,GAAc,KAMjC3oD,cACE4xD,EAEI,kBAACgB,GAAA,QAAD,CACEpxD,OAAQA,EACRgmC,aAAclmC,EAAUkmC,aACxB6nB,8BAA+BqB,EAC/BjmB,SAAUA,EACVrlB,WAAYA,EACZ6sC,SAAUA,IAIZ,kBAACY,GAAD,CACErxD,OAAQA,EACRipC,SAAUA,SAS3BonB,IAAiBG,IAAmBN,IAAkBC,GACrD,kBAAC1C,GAAD,CAAsBliE,OAAQ09C,GAC5B,kBAACqoB,GAAD,OAIHpC,GAAmC,kBAAC,GAAD,CAAoBjvD,KAAMgvD,QC5Y7D,MAAMsC,GAAmB99C,IAC9B,MAAM+9C,GAAmB/9C,aAAA,EAAAA,EAAQ+9C,oBAAoB,EAC/Cz9C,GAAsBN,aAAA,EAAAA,EAAQM,uBAAuB,EAErDQ,EAAU,GAShB,OAPIi9C,GACFj9C,EAAQ3oB,KAAK,SAEXmoB,GACFQ,EAAQ3oB,KAAK,SAGR2oB,EAAQjjB,KAAK,M,UCTf,MAAMsW,GAAU3O,kBAAOw4D,KAAPx4D,CAAH,6DAKPy4D,GAAsBz4D,UAAOC,IAAV,4DACN,QAAC,MAAElQ,GAAH,SAAeA,EAAME,QAAQ8pB,QAAQphB,SCwDhDoL,I,GAAAA,eAAQ20D,IAAiBz0D,IAAzBF,EArDmD,IAA8B,IAAD,kBAA5B,UAAE8C,EAAF,SAAazC,GAAe,EAC7F,MAAMu0D,EAAmF,KAAzE,UAAC9xD,SAAD,UAACA,EAAWkmC,oBAAZ,aAAC,EAA0B,mCAA3B,QAA0D,IAAIp2C,OAExEiiE,GAAoBx0D,GAAYu0D,EAAU,WAAa,KAEvDE,GACHhyD,SAAA,UAAAA,EAAW2T,cAAX,eAAmBs+C,oBACiE,IAAnFC,KAAmBxjD,QAAQ1O,SAA3B,UAA2BA,EAAW2T,cAAtC,aAA2B,EAAmBs+C,iBAAiB19C,eAC7DvU,SAFJ,UAEIA,EAAW2T,cAFf,aAEI,EAAmBs+C,iBAAiB19C,cACpC,GACAwgB,EAAkB/0B,SAAH,UAAGA,EAAW2T,cAAd,aAAG,EAAmBohB,gBAIrCo9B,EAAmB,GAErBp9B,GACFo9B,EAAiBrmE,KAAKipC,EAAgBxgB,eAGpCw9C,GACFI,EAAiBrmE,KAAKimE,GAGpBC,GACFG,EAAiBrmE,KAAKkmE,GAGQ,IAA5BG,EAAiBriE,QACnBqiE,EAAiBrmE,KAlBM,WAqBzB,MAAMsmE,EAAgBD,EAAiB3gE,KAAK,KAEtC6gE,EAASp0D,iBAAoB,MAInC,OAFAq0D,YAA0BD,GAGxB,kBAAC,KAAD,CACEt9B,gBAAiBA,EACjBl1B,UAAS,mBAAc4xD,GAAgBzxD,aAAD,EAACA,EAAW2T,QAAzC,YAAoDy+C,IAEvB,OAArCpyD,SAAA,UAAAA,EAAW2T,cAAX,eAAmB4+C,gBAClB,kBAACX,GAAD,MAEF,kBAAC,GAAD,CAAS/xD,UAAU,MAAME,IAAKsyD,GAC5B,kBAAC7/B,GAAA,EAAD,CAAajxB,KAAK,2BAA2BvB,UAAWA,SCxDzD,MAAM8H,GAAU3O,kBAAOw4D,KAAPx4D,CAAH,8CCgEL+D,mBAAQ20D,IAAiBz0D,IAAzBF,EAtDyD,IAA8B,IAAD,gBAA5B,UAAE8C,EAAF,SAAazC,GAAe,EACnG,MAAMu0D,EAAuF,KAA7E,UAAC9xD,SAAD,UAACA,EAAWkmC,oBAAZ,aAAC,EAA0B,uCAA3B,QAA8D,IAAIp2C,OAC5EiiE,GAAoBx0D,GAAYu0D,EAAU,WAAa,KAEvDE,GACHhyD,SAAA,UAAAA,EAAW2T,cAAX,eAAmBs+C,oBACiE,IAAnFC,KAAmBxjD,QAAQ1O,SAA3B,UAA2BA,EAAW2T,cAAtC,aAA2B,EAAmBs+C,iBAAiB19C,eAC7DvU,SAFJ,UAEIA,EAAW2T,cAFf,aAEI,EAAmBs+C,iBAAiB19C,cACpC,GAEAwgB,EAAkB/0B,SAAH,UAAGA,EAAW2T,cAAd,aAAG,EAAmBohB,gBAIrCo9B,EAAmB,GAErBp9B,GACFo9B,EAAiBrmE,KAAKipC,EAAgBxgB,eAGpCw9C,GACFI,EAAiBrmE,KAAKimE,GAGpBC,GACFG,EAAiBrmE,KAAKkmE,GAGQ,IAA5BG,EAAiBriE,QACnBqiE,EAAiBrmE,KAjBM,WAoBzB,MAAMsmE,EAAgBD,EAAiB3gE,KAAK,KAEtC6gE,EAASp0D,iBAAoB,MAInC,OAFAq0D,YAA0BD,GAGxB,kBAAC,KAAD,CACEt9B,gBAAiBA,EACjBl1B,UAAS,mBAAc4xD,GAAgBzxD,aAAD,EAACA,EAAW2T,QAAzC,YAAoDy+C,IAE7D,kBAACrqD,GAAA,EAAKtL,UAAN,KACE,kBAACsL,GAAA,EAAK6K,IAAN,CAAU0vB,eAAe,SAASxtB,OAAQ,CAAE+1B,QAAS,CAAC,OAAQ,WAC5D,kBAAC,GAAD,CAAS/1B,OAAQ,CAAE+1B,QAAS,CAAC,OAAQ,UAAYhrC,UAAU,MAAME,IAAKsyD,GACpE,kBAAC7/B,GAAA,EAAD,CAAajxB,KAAK,+BAA+BvB,UAAWA,WC3CzDwyD,I,MAAAA,GAfM,IAEjB,yBACE9tD,MAAM,6BACN1W,MAAM,KACNW,OAAO,KACP4V,KAAK,eACL1E,UAAU,cACV2E,QAAQ,aACR,0BAAMM,EAAE,uFACR,0BAAMA,EAAE,2ECTP,MAAMyC,GAAuBpO,UAAOC,IAAV,yNAQrB,QAAC,MAAElQ,GAAH,SAAeA,EAAMupE,aAAa7qD,YAAY8qD,UAM7ChrD,GAAkBvO,UAAOmM,KAAV,uEACxBvJ,KAEO,QAAC,MAAE7S,GAAH,SAAeA,EAAMupE,aAAa7qD,YAAY8qD,UCI1C/qD,I,0CAAAA,GAZwCC,IAA8B,IAAD,EAClF,MACMC,EADiBjK,YAAkB,mBAAoB,2BACxBlJ,QAAQ,gBAAvB,UAAwCkT,aAAxC,EAAwCA,EAAatF,aAArD,QAA8D,IAEpF,OACE,kBAAC,GAAD,KACE,kBAAC,GAAD,MACA,kBAAC,GAAD,KAAkBuF,KCJjB,MAAM8qD,GAAkBx5D,UAAOC,IAAV,iPAExB,QAAC,MAAElQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOopB,GAAI,OAWhB,QAAC,MAAEppB,GAAH,SAAeA,EAAMyK,OAAOtK,WAAWovD,SAClD,QAAC,MAAEvvD,GAAH,SAAeA,EAAMyK,OAAO+kD,QAAQhhD,gBAIpCk7D,GAAwBz5D,kBAAO4O,KAAK6K,IAAZzZ,CAAH,iEAG9B,QAAC,MAAEjQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOuQ,GAAI,CAAElG,GAAI,EAAGoG,GAAI,QAGxCk5D,GAAoC15D,kBAAO4O,KAAK2K,KAAZvZ,CAAH,8FAC1C,QAAC,MAAEjQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOuQ,GAAI,CAAElG,GAAI,EAAGoG,GAAI,QAOxCm5D,GAA6B35D,UAAOC,IAAV,gSAMnC9F,YAAG,OAaMy/D,GAAqC55D,UAAOC,IAAV,kOAUlC6f,GAAQ9f,kBAAOgM,KAAPhM,CAAH,8LAUdiM,KAGS4tD,GAAe75D,UAAOe,GAAV,0LACrB+4D,KACO,QAAC,MAAE/pE,GAAH,SAAeA,EAAMupE,aAAaS,SAASR,SAIlDp/D,YAAG,OAKM6/D,GAAeh6D,UAAOO,EAAV,qLACd,QAAC,MAAExQ,GAAH,SAAeA,EAAMupE,aAAa9xD,SAAS+xD,UASzCU,GAA4Bj6D,kBAAO4O,KAAK2K,KAAZvZ,CAAH,qCAClC,QAAC,MAAEjQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOisB,GAAI,CAAE5hB,GAAI,EAAGoG,GAAI,QAGxC05D,GAAgBl6D,kBAAO4O,KAAK2K,KAAZvZ,CAAH,6TAOtB,QAAC,MAAEjQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOuQ,GAAI,CAAElG,GAAI,EAAGoG,GAAI,GAAKwb,GAAI,CAAE5C,GAAI,EAAG5Y,GAAI,OAEvErG,YAAG,MAMHA,IAAG4H,SAAS,OACE,QAAC,MAAEhS,GAAH,4BAA4BA,EAAMupE,aAAaa,cAAcC,mBAQ3EnuD,KAGSouD,GAAmBr6D,kBAAO4O,KAAK6K,IAAZzZ,CAAH,oRACzB7F,YAAG,MACD+/D,GAAmBA,IACjB,QAAC,MAAEnqE,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOisB,GAAI,CAAE5hB,GAAI,EAAGoG,GAAI,OAKnD05D,GAAmBA,GAKrB//D,YAAG,OAMMmgE,GAAsBt6D,UAAOC,IAAV,wFAC5B46B,KACO,QAAC,MAAE9qC,GAAH,SAAeA,EAAMupE,aAAaS,SAASR,SAGlDp/D,YAAG,MACDkrC,KAIOk1B,GAAqBv6D,UAAOC,IAAV,6SAG3B,QAAC,MAAElQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOuQ,GAAI,CAAElG,GAAI,EAAGoG,GAAI,OAEjDrG,YAAG,MAQHA,IAAG4H,SAAS,MACV8d,YAAO,GAAI,KAQJ26C,GAAoBx6D,UAAOC,IAAV,qCAC1B,QAAC,MAAElQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAO8Q,GAAI,CAAEzG,GAAI,EAAGoG,GAAI,QC9BtCi6D,OAtIiB,IAKZ,IAAD,gBALc,SAC/Br2D,EAD+B,gBAE/Bs2D,EAF+B,MAG/B9/C,EAH+B,IAI/BrW,GACiB,EACjB,MAAOo2D,KAAwBC,GAAqBhgD,EAEpD,OACE,kBAAC4+C,GAAD,CACE7yD,GAAIpC,EACJmC,UAAU,gBACV,qBAEA,kBAAC,KAAKpD,UAAN,KACE,kBAAC,IAAD,CAAMuJ,GAAI8tD,aAAF,EAAEA,EAAqB/tD,KAC7B,kBAAC6sD,GAAD,CACExoD,WAAW,SACX0K,OAAQ,CAAE+1B,QAAS,IACnB7nC,QAAS,IAAM6wD,EAAgB,+BAAgCC,aAAjC,EAAiCA,EAAqB/tD,MAGpF,kBAAC8sD,GAAD,CACE/9C,OAAQ,CACNrB,IAAK,CAAElgB,GAAI,EAAGoG,GAAI,IAClBkxC,QAAS,IAEXyP,UAAU,cAEV,kBAACwY,GAAD,KACE,kBAAC,GAAD,CACEjzD,UAAU,WACV0G,WAAW,EACX5D,MACEpF,EACIu2D,aADI,EACJA,EAAqBluD,MACrB,CACAtD,MAAO,CACLgE,IAAK1S,IACL4S,IAAG,UAAEstD,SAAF,UAAEA,EAAqBluD,aAAvB,iBAAE,EAA4BtD,aAA9B,aAAE,EAAmCkE,WAArC,QAA4C,GAC/C,cAAeC,aAAaqtD,SAAD,UAACA,EAAqBluD,aAAtB,iBAAC,EAA4BtD,aAA7B,aAAC,EAAmCgE,IAC7D,CACEI,KAAU0Q,OACV1Q,KAAU4D,OACV5D,KAAUi0C,WAKtBhsD,OAAQksD,KAAiBzjC,OACzBppB,MAAO0Y,KAAU0Q,SAEnB,kBAAC27C,GAAD,QAIJ,kBAACK,GAAD,CACEt+C,OAAQ,CACNrB,IAAK,CAAElgB,GAAI,EAAGoG,GAAI,IAClBkxC,QAAS,IAEXyP,UAAU,cAEV,kBAAC0Y,GAAD,CAAcnzD,UAAU,YACtB,kBAAC6C,GAAA,EAAD,CAAMC,MAAOmxD,aAAF,EAAEA,EAAqBZ,YAGpC,kBAAC,GAAgBY,aAAjB,EAAiBA,EAAqBlsD,aAEtC,kBAACurD,GAAD,KACGW,SADH,UACGA,EAAqBlzD,2BADxB,aACG,EAA0CC,sBAMnD,kBAAC2yD,GAAD,CACElxB,eAAe,WACfxtB,OAAQ,CAAE+1B,QAAS,KAGjBkpB,EAAkBplD,MAAM,EAAG,GAAGtd,KAAI,CAACyP,EAAM/Q,KAAO,IAAD,YAE7C,OACE,kBAACsjE,GAAD,CACE1oE,IAAKoF,EACL+kB,OAAQ,CACNrB,IAAK,CAAElgB,GAAI,EAAGoG,GAAI,GAAI4Y,GAAI,GAC1Bs4B,QAAS,IAEXyP,UAAU,aAGVt3C,QAAS,IAAM6wD,EAAgB,8BAAD,OAA+B9jE,EAAI,GAAK+Q,aAAxC,EAAwCA,EAAMiF,MAE5E,kBAAC,IAAD,CAAMC,GAAIlF,aAAF,EAAEA,EAAMiF,KACd,kBAAC2tD,GAAD,KACE,kBAAC,GAAD,CACE7zD,UAAU,WACV0G,WAAW,EACX5D,MACEpF,EACIuD,aADI,EACJA,EAAM8E,MACN,CACAtD,MAAO,CACLgE,IAAK1S,IACL4S,IAAG,UAAE1F,SAAF,UAAEA,EAAM8E,aAAR,iBAAE,EAAatD,aAAf,aAAE,EAAoBkE,WAAtB,QAA6B,GAChC,cAAeC,aAAa3F,SAAD,UAACA,EAAM8E,aAAP,iBAAC,EAAatD,aAAd,aAAC,EAAoBgE,IAAK,CAACI,KAAU0Q,OAAQ1Q,KAAU4D,cAO9F,kBAACqpD,GAAD,KACE,kBAACF,GAAD,CAAqB5zD,UAAU,YAC7B,kBAAC6C,GAAA,EAAD,CAAMC,MAAO7B,aAAF,EAAEA,EAAMoyD,YAErB,kBAAC,GAAgBpyD,EAAK8G,aACtB,kBAACurD,GAAD,KACGryD,SADH,UACGA,EAAMF,2BADT,aACG,EAA2BC,6BC7FrC3D,I,eAAAA,eACbwI,KACAtI,IACA+F,YCzDmE,CACnE,CACER,MAAO,qDACPS,aAAc,qDACdgQ,UAAW,GAEb,CACEzQ,MAAO,qDACPS,aAAc,yGACdC,oBAAoB,EACpBo9B,UAAW,GAEb,CACE99B,MAAO,qDACPS,aAAc,2DACdE,WAAY,CACTX,GAAUA,aAAX,EAAWA,EAAOoD,MAGtB,CACEpD,MAAO,qDACPS,aAAc,gEACdE,WAAY,CACTX,IAAD,aAAWA,SAAX,UAAWA,EAAO/B,2BAAlB,aAAW,EAA4BC,qBAG3C,CACE8B,MAAO,qDACPS,aAAc,+DACdE,WAAY,CACTX,GAAUA,aAAX,EAAWA,EAAOuwD,aD2BgC,GAHzCh2D,EApC6B,IAKjB,IAAD,cALmB,YAC3CyI,EAD2C,SAE3CpI,EAF2C,UAG3CyC,EAH2C,eAI3C8F,GACwB,EACxB,MAAMwC,EAAW,UAAGtI,SAAH,UAAGA,EAAWE,cAAd,iBAAG,EAAmBC,YAAtB,iBAAG,EAAyBF,kBAA5B,iBAAG,EAAqC8T,aAAxC,aAAG,EAA4CzL,mBAA/C,QAA8D,GACzE0rD,EAAiD1rD,aAAH,EAAGA,EAAajX,KAAKyP,GAAegD,aAAmBhD,KAmBrGmzD,EAA2B,CAC/B12D,WACAs2D,gBAnBsB,CAAC1tD,EAAkBC,KACX,mBAAnBN,IACTA,EACEI,aACE,CAAC,QACD,CACEC,SAAUA,EACVC,gBAAiBA,GAEnBT,IAIJU,aAAe,eAOjB0N,MAAOigD,EACPt2D,IAAKsC,aAAF,EAAEA,EAAWtC,KAGlB,OADyBH,IAAay2D,aAAA,EAAAA,EAAiBlkE,QAAS,EACtC,kBAAC,GAAWmkE,GAAkB,Q,QExCnD,MAAMx3D,GAAYtD,UAAOC,IAAV,qCAClB,QAAC,MAAElQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOuQ,GAAI,EAAGyb,GAAI,OAGlCqnC,GAAcpjD,UAAOgd,OAAV,iUAEpB,QAAC,MAAEjtB,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOuQ,GAAG,CAAEE,GAAI,OAAQpG,GAAI,GAAK2hB,GAAI,MAO1D5hB,YAAG,MAULA,YAAG,OAQI26D,GAAW90D,kBAAO2B,IAAP3B,CAAH,wNAEVxF,KAAOsH,KAAKM,QAQF5H,KAAOugE,gBAAgB3hE,OAK/B4hE,GAAiBh7D,kBAAOgM,KAAPhM,CAAH,4BAEdi7D,GAAej7D,UAAOC,IAAV,6DACrBi7D,IAEA/gE,YAAG,MACDghE,KCESC,OArDiC,IAAoB,IAAD,4BAAlB,UAAEv0D,GAAgB,EACjE,MAAOw0D,EAAgBC,GAAqB12D,mBAAS,mBAE/Co9C,GAAsBn7C,SAAA,UAAAA,EAAWE,cAAX,mBAAmBC,YAAnB,eAAyBC,aAAc,GAC7D0J,GAAaqxC,SAAA,UAAAA,EAAqB1/B,eAArB,eAA8B3R,aAAc,GACzD4qD,EAAQ,UAAI5qD,SAAJ,UAAIA,EAAYqkD,YAAhB,iBAAI,EAAkB5qD,WAAtB,iBAAI,EAAuBjB,aAA3B,aAAI,EAA8BgE,WAAlC,SACR5I,EAAMsC,aAAH,EAAGA,EAAWtC,IACjB21B,EAAQ8nB,SAAH,UAAGA,EAAqB9nB,aAAxB,aAAG,EAA4B/wB,MACpCqyD,EAAc7qD,SAAH,UAAGA,EAAY6qD,mBAAf,aAAG,EAAyBryD,MACvC6rD,EAAOrkD,aAAH,EAAGA,EAAYqkD,KACnBx5D,EAAOmV,aAAH,EAAGA,EAAYnV,KAWzB,OATA0J,qBAAU,KAAO,IAAD,IACd,MAAMu2D,EAAM,IAAI37C,MAChB27C,EAAItuD,IAAM6nD,SAAV,UAAUA,EAAM5qD,WAAhB,iBAAU,EAAWjB,aAArB,aAAU,EAAkBgE,IAC5BsuD,EAAIC,OAAS,KACX,MAAML,EAAkBI,EAAI5mE,MAAQ4mE,EAAIjmE,OAAU,kBAAoB,iBACtE8lE,EAAkBD,MAEnB,IAEKE,EACN,kBAAC,GAAD,CACE70D,UAAU,eACV,oBACAC,GAAIpC,GAEJ,kBAACuO,GAAA,QAAD,CAAStX,KAAMA,SAAF,UAAEA,EAAM4O,WAAR,aAAE,EAAWjB,MAAO4J,WAAY+hD,GAAU3uD,OAAO,UAC5D,kBAAC,GAAD,CACEO,UAAW20D,GAEX,kBAACL,GAAD,CACEt0D,UAAU,WACV0G,WAAW,EACX5D,MACE,CACEL,MAAO,CACLgE,IAAK1S,IACL4S,IAAKmuD,EACA,WAAW,GAAX,OAAetqD,aAAc8jD,SAAD,UAACA,EAAM5qD,WAAP,iBAAC,EAAWjB,aAAZ,aAAC,EAAkBgE,IAAKI,KAAUouD,OAAQpuD,KAAUquD,WAI3FpmE,OAAQ+X,KAAUquD,OAClB/mE,MAAO0Y,KAAUouD,UAGrB,kBAACV,GAAD,KAAe/gC,KA1BF,MCRrB,MAAM2hC,GAAa,IAAIC,IA6KR,SAASC,GAAiBC,GACvC,OAAOH,GAAW9wD,IAAIixD,GA3KtBH,GAAWI,IAAI,YAAaC,aAAS,IAAM,kCAAsE,CAAEC,KAAK,KAGxHN,GAAWI,IAAI,gBAAiBG,IAGhCP,GAAWI,IAAI,gBAAiBI,IAGhCR,GAAWI,IAAI,cAAeK,IAG9BT,GAAWI,IAAI,YAAaC,aAAS,IAAM,0CAAsE,CAAEC,KAAK,KAGxHN,GAAWI,IAAI,eAAgBC,aAAS,IAAM,kCAA4E,CAAEC,KAAK,KAGjIN,GAAWI,IAAI,qBAAsBC,aAAS,IAAM,kCAAwF,CAAEC,KAAK,KAGnJN,GAAWI,IAAI,iBAAkBC,aAAS,IAAM,kCAAgF,CAAEC,KAAK,KAGvIN,GAAWI,IAAI,kBAAmBC,aAAS,IAAM,0CAAkF,CAAEC,KAAK,KAG1IN,GAAWI,IAAI,iBAAkBC,aAAS,IAAM,kCAAgF,CAAEC,KAAK,KAGvIN,GAAWI,IAAI,oBAAqBM,IAGpCV,GAAWI,IAAI,kBAAmB1rD,IAGlCsrD,GAAWI,IAAI,4BAA6BC,aAAS,IAAM,kCAAsG,CAAEC,KAAK,KAGxKN,GAAWI,IAAI,oBAAqBC,aAAS,IAAM,0DAAsF,CAAEC,KAAK,KAGhJN,GAAWI,IAAI,wBAAyBO,IAGxCX,GAAWI,IAAI,sBAAuBC,aAAS,IAAM,kCAA0F,CAAEC,KAAK,KAGtJN,GAAWI,IAAI,iBAAkBQ,IAGjCZ,GAAWI,IAAI,uBAAwBS,IAGvCb,GAAWI,IAAI,OAAQC,aAAS,IAAM,0DAA4D,CAAEC,KAAK,KAGzGN,GAAWI,IAAI,kBAAmBC,aAAS,IAAM,kCAAkF,CAAEC,KAAK,KAG1IN,GAAWI,IAAI,OAAQC,aAAS,IAAM,yCAA4D,CAAEC,KAAK,KAGzGN,GAAWI,IAAI,SAAUC,aAAS,IAAM,kCAAgE,CAAEC,KAAK,KAG/GN,GAAWI,IAAI,wBAAyBC,aAAS,IAAM,kCAA8F,CAAEC,KAAK,KAG5JN,GAAWI,IAAI,qBAAsBC,aAAS,IAAM,kCAAwF,CAAEC,KAAK,KAGnJN,GAAWI,IAAI,qBAAsBC,aAAS,IAAM,kCAAwF,CAAEC,KAAK,KAGnJN,GAAWI,IAAI,oBAAqBC,aAAS,IAAM,kCAAsF,CAAEC,KAAK,KAGhJN,GAAWI,IAAI,WAAYC,aAAS,IAAM,kCAAoE,CAAEC,KAAK,KAGrHN,GAAWI,IAAI,cAAeC,aAAS,IAAM,kCAA0E,CAAEC,KAAK,KAG9HN,GAAWI,IAAI,iBAAkBU,IAGjCd,GAAWI,IAAI,yBAA0BW,IAGzCf,GAAWI,IAAI,qBAAsBY,IAGrChB,GAAWI,IAAI,WAAYC,aAAS,IAAM,0CAAoE,CAAEC,KAAK,KAGrHN,GAAWI,IAAI,aAAcC,aAAS,IAAM,0CAAwE,CAAEC,KAAK,KAG3HN,GAAWI,IAAI,aAAcC,aAAS,IAAM,kCAAwE,CAAEC,KAAK,KAG3HN,GAAWI,IAAI,aAAcC,aAAS,IAAM,kCAAwE,CAAEC,KAAK,KAG3HN,GAAWI,IAAI,qBAAsBa,IAGrCjB,GAAWI,IAAI,uBAAwBc,IAGvClB,GAAWI,IAAI,wBAAyBe,IAGxCnB,GAAWI,IAAI,QAASC,aAAS,IAAM,0CAA8D,CAAEC,KAAK,KAG5GN,GAAWI,IAAI,kBAAmBC,aAAS,IAAM,kCAAkF,CAAEC,KAAK,KAG1IN,GAAWI,IAAI,UAAWC,aAAS,IAAM,yCAAkE,CAAEC,KAAK,KAGlHN,GAAWI,IAAI,iBAAkBC,aAAS,IAAM,kCAAgF,CAAEC,KAAK,KAGvIN,GAAWI,IAAI,gBAAiBC,aAAS,IAAM,kCAA8E,CAAEC,KAAK,KAGpIN,GAAWI,IAAI,aAAcgB,IAG7BpB,GAAWI,IAAI,aAAciB,IAG7BrB,GAAWI,IAAI,aAAckB,IAG7BtB,GAAWI,IAAI,uBAAwBmB,IAGvCvB,GAAWI,IAAI,0BAA2BoB,IAG1CxB,GAAWI,IAAI,aAAcC,aAAS,IAAM,0CAAwE,CAAEC,KAAK,KAG3HN,GAAWI,IAAI,mBAAoBC,aAAS,IAAM,0CAAoF,CAAEC,KAAK,KAG7IN,GAAWI,IAAI,0BAA2BC,aAAS,IAAM,0DAAkG,CAAEC,KAAK,KAGlKN,GAAWI,IAAI,eAAgBqB,IAG/BzB,GAAWI,IAAI,cAAeC,aAAS,IAAM,kCAA0E,CAAEC,KAAK,KAG9HN,GAAWI,IAAI,cAAeb,IAG9BS,GAAWI,IAAI,qBAAsBC,aAAS,IAAM,kCAAwF,CAAEC,KAAK,KAGnJN,GAAWI,IAAI,OAAQC,aAAS,IAAM,kCAA4D,CAAEC,KAAK,KAGzGN,GAAWI,IAAI,UAAWC,aAAS,IAAM,0CAAkE,CAAEC,KAAK,K,iEChM7G,MAAMoB,GAAiC,sBACjCC,GAAuB,uBAE9BC,GAAsC,CAC1CC,aAAc,CAAEv0D,MAAO,IACvBw0D,mBAAoB,CAAEx0D,MAAOo0D,IAC7BK,kBAAmB,CAAEz0D,MAAO,IAC5BwhD,OAAQ,CAAExhD,MAAO,KAON00D,GAAsBC,GAAsBC,IACvD,IACE,GAAIA,IAAgBP,GAClB,MAAM,IAAInrE,MAAM,mBACX,CAAC,IAAD,IACL,MAAM2rE,EAAoB,IAAIrnD,KAAKonD,GAE7BE,EAA+B,IAAIC,KAAKC,eAAe,KAAM,CACjEC,SAAUb,KACTv0C,OAAOg1C,GAEJK,EAA+B,IAAIH,KAAKC,eAAe,KAAM,CACjEC,SAAUN,IACT90C,OAAOg1C,GAEV,OAAO,cAAIrnD,KAAK0nD,UAAT,eAAwCC,cAAxC,UAAsD,IAAI3nD,KAAKsnD,UAA/D,aAAsD,EAAwCK,YAEvG,MACA,OAAO,IAIEC,GAA+BT,GAAqB,CAACU,EAAiBC,KACjF,IACE,GAAID,IAAYhB,GACd,MAAM,IAAInrE,MAAM,mBACX,CAAC,IAAD,EACL,MAAMqsE,EAAgB,IAAI/nD,KAAK6nD,GAE/B,iBAAO,IAAIN,KAAKC,eAAe,KAAM,CACnCQ,QAASF,EAAuB,aAAUx9C,EAC1CwI,IAAKg1C,EAAuB,eAAYx9C,EACxCyI,MAAO+0C,EAAuB,aAAUx9C,EACxC29C,KAAM,UACNC,OAAQ,UACRT,SAAUN,WANZ,aAAO,EAOH90C,OAAO01C,IAEb,MACA,MAAO,KAILI,GAAkB/0C,wBAAc,CACpC8zC,mBAAoB,KACpBU,4BAA6B,KAC7BT,SAAU,KACViB,YAAa,OAoBAC,OAjBf,YAAyC,IAAD,QAAd,SAAEr8D,GAAY,EACtC,MAAOm7D,EAAUiB,GAAen6D,mBAA6B64D,IAE7D,OACE,kBAACqB,GAAgB10C,SAAjB,CACEjhB,MAAO,CACL00D,mBAAoBA,GAAmBC,SAAD,UAACA,EAAUH,0BAAX,aAAC,EAA8Bx0D,OACrEo1D,4BAA6BA,GAA4BT,SAAD,UAACA,EAAUH,0BAAX,aAAC,EAA8Bx0D,OACvF20D,WACAiB,gBAGDp8D,IAOyBm8D,GAAgBnuC,S,6CCjFzC,MAAMsuC,GAAmB,CAAIztE,EAAa4iD,KAC7C,GAAGukB,KAAQvkB,GACP,OAGJ,MAAM8qB,EAAWvsD,OAAOwsD,QAAQ/qB,GAC3Bv+B,MAAMtV,GACHA,EAAE5J,OAAS,GACR4J,EAAE,KAAO/O,QACAyvB,IAAT1gB,EAAE,KAGb,YAAoB0gB,IAAbi+C,GAA0BA,EAASvoE,OAAS,EAC7CuoE,EAAS,QACTj+C,GCeKm+C,OA7B+D,IAAkB,IAAD,MAAhB,QAAEzyC,GAAc,EAE7F,KAAKA,SAAD,UAACA,EAAS0yC,YAAV,aAAC,EAAej3D,MAClB,OAAO,KAiBT,OACE,kBAAC8c,GAAA,EAAD,KACE,4BAAQhf,KAAK,uBACVmf,KAAKC,UAjB0B,CACpC,WAAY,qBACZ,QAAS,eACT,KAAQ,gBACR,IAAO,mCACP,KAAQ,iHACR,OAAU,CACR,wCACA,+CACA,0CACA,yCCuBSg6C,I,GAAAA,GAvC6E,IAAkB,IAAD,MAAhB,QAAE3yC,GAAc,EAG3G,MACM4yC,EADWp7C,cACYD,SAG7B,KAAKyI,SAAD,UAACA,EAAS0yC,YAAV,aAAC,EAAej3D,MAClB,OAAO,KAGT,GANsB,MAMlBm3D,EACF,OAAO,KAgBT,OACE,oCACE,kBAACr6C,GAAA,EAAD,KACE,4BAAQhf,KAAK,uBACVmf,KAAKC,UAjB4B,CACxC,WAAY,sBACZ,QAAS,UACT,KAAQ,gBACR,IAAO,mCACP,gBAAmB,CACjB,QAAS,eACT,OAAU,gEACV,cAAe,0CC7Bd,MAAMk6C,GAAgBx/D,UAAOC,IAAV,wEC8HXw/D,OApFwB,IAInB,IAJoB,QACtC9yC,EADsC,MAEtCtnB,EAFsC,QAGtC03B,GACiB,EACjB,MAAMpb,EAAWs9C,GAA2B,QAASA,GAAiB,eAAgB55D,aAAjB,EAAiBA,EAAO0B,UAAY,MAEnG,OAAEwiB,GAAWpF,cAUnB,OARAjf,qBAAU,KACR,MAAMw6D,EAAiBluC,aAAoB,OAAQjI,IAE9CwT,GAAW2iC,IACdr2C,SAASnX,KAAOwtD,KAEjB,CAACn2C,EAAQwT,IAGV,oCACE,kBAAC,KAAD,KACE,kBAAC,KAAD,KACE,kBAAC,GAAD,KACE,kBAAC,KAAD,KACE,kBAAC,GAAD,KACE,kBAAC,KAAD,KACA,kBAACqW,GAAD,KACE,kBAAC/Z,GAAA,EAAD,CAAajxB,KAAK,aAAavB,UAAWxB,IAC1C,kBAACm6D,GAAD,CACE74D,GAAG,eACHm/C,KAAMnkC,EACNvZ,KAAK,WACLvB,UAAWxB,EACXgE,KAAK,QAEL,kBAAC,KAAD,MAGA,yBAAK3C,UAAWq2B,EAAU4iC,KAAkB,IAC1C,kBAACtmC,GAAA,EAAD,CAAajxB,KAAK,oBAAoBvB,UAAWxB,IACjD,kBAACg0B,GAAA,EAAD,CAAajxB,KAAK,mBAAmBvB,UAAWxB,IAEhD,kBAACg0B,GAAA,EAAD,CACEjxB,KAAK,qBACLvB,UAAWxB,EACXu6D,OAAS/D,GACP,oCACGA,EACEh2D,QAAQg6D,GAA0BA,UAClC3nE,KAAI,CAAC2nE,EAAyBzpE,KAAmB,IAAD,EAE/C,OAAIypE,EAAU10D,OAAmC,mBAA1B,UAAA00D,EAAU10D,aAAV,eAAiBjF,MAC/B,kBAAC,KAAK5C,UAAN,CAAgB9R,IAAK4E,GAC1B,kBAAC,KAAKqjB,IAAN,KACE,kBAAC,KAAKF,KAAN,KAAYsiD,KAIXgE,QAMjB,kBAACxmC,GAAA,EAAD,CAAajxB,KAAK,oBAAoBvB,UAAWxB,MAIrD,kBAACg0B,GAAA,EAAD,CAAajxB,KAAK,aAAavB,UAAWxB,IAC1C,kBAAC,WAAD,MAEA,kBAACy6D,GAAD,CAAmCnzC,QAASA,IAC5C,kBAACozC,GAAD,CAA4BpzC,QAASA,WAQjD,kBAACqzC,GAAA,EAAD,QCtFSC,OA7B6D,IAAkB,IAAD,MAAhB,QAAEtzC,GAAc,EAE3F,KAAKA,SAAD,UAACA,EAAS0yC,YAAV,aAAC,EAAej3D,MAClB,OAAO,KAiBT,OACE,kBAAC8c,GAAA,EAAD,KACE,4BAAQhf,KAAK,uBACVmf,KAAKC,UAjB0B,CACpC,WAAY,qBACZ,QAAS,eACT,KAAQ,aACR,IAAO,0CACP,KAAQ,gGACR,OAAU,CACR,wCACA,0CACA,+CACA,yCCgDS46C,I,8BAAAA,GAhEiD,IAAyB,IAAD,wCAAvB,QAAEvzC,EAAF,MAAWtnB,GAAY,EAEtF,MAQM86D,GAAoB96D,SAAA,UAAAA,EAAO+6D,kBAAP,eAAmB75C,gBAAiB,GAE9D,KAAKoG,SAAD,UAACA,EAAS0yC,YAAV,aAAC,EAAej3D,MAClB,OAAO,KAIT,IAf4B,CAC1B,uCACA,uCACA,uCACA,uCACA,wCAUuB6C,SAASk1D,GAChC,OAAO,KAGT,MACME,EAAM,sBADSh7D,SAAA,UAAAA,EAAO0B,cAAP,eAAemI,eAAgB,IACxB,UAAhB,iBAAG,EAAiBnI,cAApB,iBAAG,EAAyB6J,gBAA5B,aAAG,EAAmCzH,aAAtC,QAA+C,GACrDm3D,EAAa,UAAGj7D,SAAH,UAAGA,EAAO0B,cAAV,iBAAG,EAAeqI,iBAAlB,aAAG,EAA0BjG,aAA7B,QAAsC,GACnD4wD,EAAQ,UAAG10D,SAAH,UAAGA,EAAO0B,cAAV,iBAAG,EAAeya,iBAAlB,aAAG,EAA0BrY,aAA7B,QAAsC,GAC9CsD,EAAK,UAAGpH,SAAH,UAAGA,EAAO0B,cAAV,iBAAG,EAAe6a,qBAAlB,iBAAG,EAA8BzY,aAAjC,aAAG,EAAqCgE,WAAxC,QAA+C,GAIpDozD,EAAgC,CACpC,WAAY,qBACZ,QAAS,cACT,iBAAoB,CAClB,QAAS,UACT,MARK,UAAG5zC,aAAH,EAAGA,EAASpJ,oBAAZ,QAA4B,IAUnC,SAAYw2C,EACZ,MAAS,CACPttD,GAEF,cAAiB6zD,EACjB,OAAU,CACR,QAAS,SACT,KAAQD,GAEV,UAAa,CACX,QAAS,eACT,KAAQ,gBACR,KAAQ,CACN,QAAS,cACT,IAvBU,mGA4BhB,OACE,kBAACn7C,GAAA,EAAD,KACE,4BAAQhf,KAAK,uBACVmf,KAAKC,UAAUi7C,MCrDjB,MAAMf,GAAgBx/D,UAAOC,IAAV,kZAYd,QAAC,MAAElQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOuQ,GAAI,OAOnCkgE,GAAwBxgE,kBAAO4O,KAAK2K,KAAZvZ,CAAH,4BAErBygE,GAAmBzgE,kBAAO4O,KAAK2K,KAAZvZ,CAAH,wIACzB,QAAC,MAAEjQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOopB,GAAI,MAEpChf,YAAG,MAMHsJ,KAGSi9D,GAAmB1gE,kBAAO4O,KAAK2K,KAAZvZ,CAAH,2HACzB,QAAC,MAAEjQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOopB,GAAI,OAe3BwnD,IANCC,oBAAH,8DAM2B5gE,kBAAOq5B,KAAPr5B,CAAH,6BAMtB6gE,IAJ0B7gE,kBAAOq5B,KAAPr5B,CAAH,qCAChC,QAAC,MAAEjQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOopB,GAAI,OAGDnZ,UAAOC,IAAV,iQAG9B,QAAC,MAAElQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOopB,GAAI,WAQtChf,IAAG4H,SAAS,OACV,QAAC,MAAEhS,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOopB,GAAI,WAGtChf,YAAG,OACD,QAAC,MAAEpK,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOopB,GAAI,aAI7B2nD,GAA2B9gE,UAAOC,IAAV,2XACjC,QAAC,MAAElQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOiT,GAAI,YACd,QAAC,MAAEjT,GAAH,SAAeA,EAAME,QAAQ8pB,QAAQphB,QAS3DwB,YAAG,OAWM4mE,GAA0B/gE,UAAOC,IAAV,2DAE9BwD,KCTSg8D,OA1E+Bt0D,IAAwB,IAAD,MACnE,MAAM,QAAE4xB,EAAF,MAAW13B,GAAU8F,EACrB61D,GAAyB37D,SAAA,UAAAA,EAAO0B,cAAP,mBAAei6D,oBAAf,eAA6B73D,QAAS,KAO/D7D,EAAoB,UAAGD,aAAH,EAAGA,EAAOC,oBAAV,QAA0B,GAC9C27D,EAAyC,KAAjB37D,EAAsBA,EAAa/J,QAAQ,KAAM,KAAK2lB,oBAAsB,GACpGggD,EAA0BC,KAAW,qBAAsBF,GAEjE,OACE,oCACE,kBAAC,KAAD,KACE,kBAAC,KAAD,KACE,kBAAC,KAAD,KACE,kBAAC5nC,GAAA,EAAD,CAAajxB,KAAK,aAAavB,UAAWxB,IAC1C,kBAAC,GAAD,CACEqB,UAAWw6D,EACXv6D,GAAG,eACHm/C,KAAMkb,EACN54D,KAAK,WACLvB,UAAWxB,EACXgE,KAAK,QAGL,kBAAC,KAAD,MAGA,yBAAK3C,UAAWq2B,GAAW4iC,MACzB,kBAACtmC,GAAA,EAAD,CACEjxB,KAAK,oBACLvB,UAAWxB,EACXu6D,OAAS/D,GACP,kBAACgF,GAAD,KACGhF,KAIP,kBAAC,KAAKv4D,UAAN,KACE,kBAAC,KAAKmW,IAAN,CACEkC,OAAQ,CAAE+1B,QAAS,CAAC,OAAQ,WAE5B,kBAACgvB,GAAD,CACEh6D,UAAU,uBACV,kBAAC2yB,GAAA,EAAD,CAAajxB,KAAK,mBAAmBvB,UAAWxB,OAItD,kBAACg0B,GAAA,EAAD,CAAajxB,KAAK,oBAAoBvB,UAAWxB,EAC/Cu6D,OAAS/D,GACP,kBAACkF,GAAD,KACGlF,OAOX,kBAACxiC,GAAA,EAAD,CAAajxB,KAAK,aAAavB,UAAWxB,IAC1C,kBAAC,WAAD,MAEA,kBAAC+7D,GAA8Bj2D,GAC/B,kBAAC,GAAiCA,MAIxC,kBAAC60D,GAAA,EAAD,QC5FN,MAAMqB,GAAU,IAAIvF,IACpBuF,GAAQpF,IAAI,gBAAiBwD,IAC7B4B,GAAQpF,IAAI,YAAaqF,IAEVD,UC+HA5B,OAtG+Bt0D,IAAwB,IAAD,IACnE,MAAM,QAAE4xB,EAAF,MAAW13B,GAAU8F,EACrB61D,GAAyB37D,SAAA,UAAAA,EAAO0B,cAAP,mBAAei6D,oBAAf,eAA6B73D,QAAS,KAErE,OACE,oCACE,kBAAC,KAAD,KACE,kBAAC,KAAD,KACE,kBAAC,KAAD,KACE,kBAACkwB,GAAA,EAAD,CAAajxB,KAAK,aAAavB,UAAWxB,IAC1C,kBAAC,GAAD,CACEqB,UAAU,qBACVC,GAAG,eACHm/C,KAAMkb,EACN54D,KAAK,WACLvB,UAAWxB,EACXgE,KAAK,QAGL,kBAAC,KAAD,MAGA,yBAAK3C,UAAWq2B,GAAW4iC,MACzB,kBAACtmC,GAAA,EAAD,CACEjxB,KAAK,oBACLvB,UAAWxB,EACXu6D,OAAS/D,GACP,kBAACgF,GAAD,KACGhF,KAIP,kBAAC,KAAKv4D,UAAN,KACE,kBAAC,KAAKmW,IAAN,CACEkC,OAAQ,CAAE+1B,QAAS,CAAC,OAAQ,WAC5B,kBAACrY,GAAA,EAAD,CACEjxB,KAAK,kCACLvB,UAAWxB,EACXu6D,OAAS/D,GACP,sCACKA,EAAWllE,QACZ,kBAAC6pE,GAAD,CAAuB95D,UAAU,sCAC9Bm1D,OAOb,kBAAC,KAAKpiD,IAAN,CACEkC,OAAQ,CAAE+1B,QAAS,CAAC,OAAQ,WAE5B,kBAACgvB,GAAD,CACEh6D,UAAU,sBACViV,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAIpG,GAAI,KAC7B,kBAACumE,GAAD,CAAwBv4D,KAAK,mBAAmBvB,UAAWxB,IAC3D,kBAACg0B,GAAA,EAAD,CACEjxB,KAAK,6BACLvB,UAAWxB,EACXu6D,OAAS/D,GACP,sCACKA,EAAWllE,QACZ,kBAACmqE,GAAD,KACGjF,OAQb,kBAAC4E,GAAD,CACE/5D,UAAU,yBACViV,OAAQ,CAAErB,IAAK,CAAE9Z,GAAI,GAAIpG,GAAI,IAC7ByM,UAAWxB,GACX,kBAACg0B,GAAA,EAAD,CAAajxB,KAAK,sBAAsBvB,UAAWxB,OAIzD,kBAACg0B,GAAA,EAAD,CAAajxB,KAAK,oBAAoBvB,UAAWxB,EAC/Cu6D,OAAS/D,GACP,kBAACkF,GAAD,KACGlF,OAOX,kBAACxiC,GAAA,EAAD,CAAajxB,KAAK,aAAavB,UAAWxB,IAC1C,kBAAC,WAAD,MAEA,kBAAC+7D,GAA8Bj2D,GAC/B,kBAAC,GAAiCA,MAIxC,kBAAC60D,GAAA,EAAD,QC9FN,MAAMuB,GAAgB,IAnCtB,MAKEpvE,cAAe,KAJfqvE,eAIc,OAFdC,iBAEc,EAEZjvE,KAAKgvE,UAAYE,GAEjBlvE,KAAKivE,YAAc,IAAI3F,IACvBtpE,KAAKivE,YAAYxF,IAAI,uCAAwCoF,IAC7D7uE,KAAKivE,YAAYxF,IAAI,uCAAwCoF,IAC7D7uE,KAAKivE,YAAYxF,IAAI,uCAAwCoF,IAG/DM,cAAcC,GAEZ,MAAMC,EACJD,GAAeA,EAAYC,SAAWD,EAAYC,SAASzmD,cAAgB,KACvE0mD,EAAaF,GAAeA,EAAYE,WAAaF,EAAYE,WAAa,KAEpF,IAAIC,EAUJ,OARIF,IACFE,EAASvvE,KAAKivE,YAAY12D,IAAI82D,KAG3BE,GAAUD,IACbC,EAASvvE,KAAKgvE,UAAUz2D,IAAI+2D,IAGvBC,GAAUvvE,KAAKgvE,UAAUz2D,IAAI,mBAMxC4H,OAAOqvD,OAAOT,IAECA,U,WClBR,MAAMU,GAAuB,IAjB7B,MACLC,SACE,OAAOC,mJAAYC,uBAAyBC,KAAUC,WAAWC,QAC7D,IAAIC,wBAAqB,CACvBC,SAAU9mD,KAAO+mD,gBACjBC,OAAQhnD,KAAOinD,eACfC,SAAUlnD,KAAOmnD,aAEnB,IAAIC,qBAAkB,CACpBz2C,QAASl8B,OAAOi5B,SAAS25C,OACzBL,OAAQhnD,KAAOinD,eACfC,SAAUlnD,KAAOmnD,WACjBG,kBAAmBtnD,KAAOunD,mCCEpC,IAAIxL,GACJ,MAAMyL,WAAqBv+B,IAAMw+B,UAC/BjxE,YAAYgZ,GAAQ,IAAD,IACjBk4D,MAAMl4D,GADW,KA2CnBm4D,gBAAmB32C,IAEfpnB,cACAonB,aADS,EACTA,EAAS42C,cACRC,eAAe3vD,QAAQ,eAExB2vD,eAAe1vD,QAAQ,aAAc6Y,EAAQ42C,aAjD9B,KAqDnBE,iBAAmB,KAEjB,IAAKjxE,KAAK2Y,MAAM7G,gBAAgBe,MAAO,OAAO,KAE9C,MAAM,MAAEA,KAAUsnB,GAAYn6B,KAAK2Y,MAAM7G,gBAEzC,MAAO,CACLo/D,SAAU,CACRr+D,QACAsnB,aA9Da,KAsEnBg3C,oBAAuBd,IAAc,IAAD,EAE9Bt9D,cAAS,UAAInV,cAAJ,aAAI,EAAQqnE,oBAGnBC,KACFA,GAAW,IAAID,kBAAiB,IAAMmM,aAAkBf,MAG1DnL,GAASE,QAAQrnE,SAAS8kB,eAAe,QAAS,CAChD9O,WAAW,EACXC,SAAS,EACTqxD,YAAY,EACZC,eAAe,MAhFnBtlE,KAAKy0B,MAAQ,CACX48C,UAAW,KACXC,eAAe,EACfC,gBAAiBpoD,KAAOooD,iBAI1B,MAAMF,EAAYrxE,KAAKixE,oBAOrBI,SADF,UACEA,EAAWH,gBADb,iBACE,EAAqB/2C,eADvB,aACE,EAA8BhL,YAE9BnvB,KAAKy0B,MAAM88C,gBAAkBF,EAAUH,SAAS/2C,QAAQhL,UAI1DnvB,KAAKwxE,iBAGPC,oBAAqB,IAAD,MAElB,MAAMJ,EAAYrxE,KAAKixE,mBACjBpE,EAAOwE,SAAH,UAAGA,EAAWH,gBAAd,iBAAG,EAAqB/2C,eAAxB,iBAAG,EAA8B0yC,YAAjC,aAAG,EAAoCj3D,KASzC,IAAD,GAPH5V,KAAK2Y,MAAM4Z,mBACbvyB,KAAKmxE,oBAAoBtE,GAItBwE,GAGHrxE,KAAK8wE,gBAAgBO,SAArB,UAAqBA,EAAWH,gBAAhC,aAAqB,EAAqB/2C,SAF1Cn6B,KAAK0xE,kBAsDTA,kBAEM3+D,aAAiC,iBAAbmyD,IACtBA,GAASC,aAEX,IAAIwM,EAAoB3xE,KAAK2Y,MAAM9F,MAAM++D,MAAM5pD,OAAO6pD,eAAiB,IAClEF,EAAkBG,WAAW,OAChCH,EAAiB,WAAOA,IAG1B,MAAMxiD,EAAWnvB,KAAK2Y,MAAM9F,MAAM++D,MAAM5pD,OAAOsrC,MAAQtzD,KAAKy0B,MAAM88C,gBAC5D1E,EAAO7sE,KAAK2Y,MAAM7G,gBAAgBe,MAAQ7S,KAAK2Y,MAAM7G,gBAAgB+6D,KAAKj3D,KAAO,KAEnF5V,KAAK2Y,MAAM4Z,mBAAqBxf,cAClC/S,KAAK+xE,SAAS,CAAET,eAAe,IAC/BvzE,SAASwjB,KAAKiC,UAAUnf,IAAI2tE,OAsIlC,SAAsBn/D,EAAOsc,EAAUkhD,GAErC,OAD8BZ,GAAqBC,SACtBuC,gBAAgBp/D,EAAOsc,GAAUsK,OAAOZ,GAC/DA,EAAMW,UAAsC,MAA1BX,EAAMW,SAAS04C,QAAkBr5C,EAAMW,SAAShlB,KAC7DqkB,EAAMW,SAAShlB,MAGxB6R,QAAQwS,MAAM,yBAA0BA,EAAOA,EAAMW,UAE9C,QA3IP24C,CAAaR,EAAmBxiD,GAAgBtK,MAAMwsD,IAAe,IAAD,EAElE,MAAMH,EAAWG,aAAH,EAAGA,EAAWH,SACtB/2C,EAAUk3C,SAAH,UAAGA,EAAWH,gBAAd,aAAG,EAAqB/2C,QAErC,GAAI+2C,aAAJ,EAAIA,EAAUr+D,MAAO,CAAC,IAAD,IAEnB,GAAIE,cAAaonB,SAAJ,UAAIA,EAASi4C,gBAAb,aAAI,EAAmBC,aAElC,YADAz0E,OAAOi5B,SAASy7C,SAKlB,GACEv/D,aACAi+D,eAAe3vD,QAAQ,gBACvB8Y,aAAA,EAAAA,EAAS42C,aAAcC,eAAe3vD,QAAQ,cAI9C,OAFA2vD,eAAe1vD,QAAQ,aAAc6Y,EAAQ42C,iBAC7CnzE,OAAOi5B,SAASy7C,SAoBlB,GAfAtyE,KAAK8wE,gBAAgB32C,GAErBn6B,KAAKmxE,oBAAoBtE,GAErB7sE,KAAK2Y,MAAM4Z,mBACbvyB,KAAK+xE,SAAS,CAAET,eAAe,IAIjCtxE,KAAK2Y,MAAM45D,sBAAsB,CAC/B1/D,MAAOq+D,aAAF,EAAEA,EAAUr+D,MACjB0wD,OAAQ2N,SAAF,UAAEA,EAAUr+D,aAAZ,aAAE,EAAiB0wD,UACtB2N,aAAH,EAAGA,EAAU/2C,WAGVn6B,KAAK2Y,MAAM7G,gBACd,OAAO,SAEJ,CAAC,IAAD,IAGDiB,aAE6B,eAAzB,QAAN,EAAAnV,cAAA,mBAAQi5B,gBAAR,eAAkB27C,WAClB50E,OAAOi5B,SAASy7C,aASxBd,iBACE,MAAMiB,EAAczyE,KAAK2Y,MAAM9F,MAAM++D,MAAM5pD,OAAOsrC,MAAQtzD,KAAKy0B,MAAM88C,gBAEjEmB,KAAKvjD,WAAasjD,GACpBC,KAAKC,eAAeF,GAIxBG,mBAAmBC,GACjB,MAAMC,EAAgBD,EAAchgE,MAAM++D,MAAMx3D,IAC1C24D,EAAW/yE,KAAK2Y,MAAM9F,MAAM++D,MAAMx3D,IAGpC04D,IAAkBC,IAMlBC,4BACFp1E,OAAOi5B,SAASo8C,OAAOF,IAIzB/yE,KAAKwxE,iBACLxxE,KAAK0xE,oBAGPtE,SACE,MAAMiE,EAAYrxE,KAAKixE,mBAIvB,IAAKI,EACH,OAAO,KAILt+D,cACFnV,OAAO20B,kBAAoBvyB,KAAK2Y,MAAM4Z,kBACtC30B,OAAOs1E,cAAe,GAIxB,MAAM53B,EAAS63B,GAAchE,cAAckC,EAAUH,SAASr+D,OAE9D,OAAKyoC,EAYH,kBAACA,EAAD,CACEnhB,QAASk3C,EAAUH,SAAS/2C,QAC5BoQ,QAASvqC,KAAKy0B,MAAM68C,cACpBz+D,MAAOw+D,EAAUH,SAASr+D,MAC1B03B,SAAUvqC,KAAK2Y,MAAM4Z,oBAdrB,8EAEE,6BACA,6BAAMM,KAAKC,UAAUu+C,EAAUH,SAASr+D,MAAO,KAAM,MAmChDnB,oBAAoB,CAAE0hE,WAAW,GAAjC1hE,CAAyCi/D,IC9QxD,IAAI0C,GAqBJ,SAASC,GAAoBn/D,GAA2D,IAAvDo/D,EAAsD,uDAAtC,CAAE5zC,SAAU,UAAY6zC,EAAc,uDAAH,EAClF,MAAMzmB,EAAUhvD,SAAS8kB,eAAe1O,GAEpC44C,EACFA,EAAQtpC,eAAe,CACrBkc,SAAU,WAGZqe,uBAAsB,KAEhBw1B,EAAW,KACbF,GAAoBn/D,EAAIo/D,EAAeC,EAAW,MAM3C,SAASC,KACtB,MAAM,SAAE/hD,EAAF,KAAYgiD,GAAS/hD,cAiB3B,OAfAjf,qBAAU,KACR,GAAKK,YAKL,GAAK2gE,EAEE,CAGLJ,GADWI,EAAK3qE,QAAQ,IAAK,UAjD5B,WAAiF,IAA9DzD,EAA6D,uDAHvD,IAGoBq6B,EAAmC,uDAAR,OAC7E,IACM5sB,cACF4gE,aAAaN,IAGbA,GAAQz1E,OAAO+jB,YACb,IACE/jB,OAAOs9C,SAAS,CACdx8C,IAAK,EACLC,KAAM,EACNghC,cAEJr6B,IAGJ,QA8BEsuE,KAMD,CAACliD,EAAUgiD,IAEP,KC9CF,MAAMG,GAAgB,CAC3B,4CACA,mCACA,oBAQF,MAAMC,WAAgB1hC,IAAMw+B,UAC1BjxE,YAAYgZ,GACVk4D,MAAMl4D,GADW,KAoBnBo7D,qBAAuBxhD,GACrBvyB,KAAK+xE,SAAS,CACZx/C,sBAnBFvyB,KAAKy0B,MAAQ,CACXlC,mBAAmB,GAGjB5Z,EAAMq7D,SACRh0E,KAAK8R,gBAAkB6G,EAAMq7D,SAAS9C,UAAYv4D,EAAMq7D,SAAS9C,SAASr+D,MACtE,CACAA,MAAO8F,EAAMq7D,SAAS9C,SAASr+D,MAC/B0wD,OAAQ5qD,EAAMq7D,SAAS9C,SAASr+D,MAAM0wD,UACnC5qD,EAAMq7D,SAAS9C,SAAS/2C,SAE3BxhB,EAAMq7D,SAAS9C,SAAS/2C,QAE5Bn6B,KAAK8R,gBAAkB,KAS3B2/D,oBAGE,GAAI1+D,aAA+B,oBAAXnV,OAAwB,CAC9CA,OAAOoV,UAAYpV,OAAOoV,WAAa,CAAEC,IAAK,IAC9C,MAAM,UAAED,GAAcpV,OACtBoV,EAAUC,IAAI9S,MAAK,eAGrBH,KAAK+zE,sBAAqB,GAG5B3G,SACE,MAAM,KAAEj7C,EAAF,OAAQ8hD,EAAR,cAAgBC,EAAhB,SAA+B7D,GAAarwE,KAAK2Y,MAEjDw7D,EAAmBx7D,GACH,eAApBA,aAAA,EAAAA,EAAO03D,UACP,kBAAC,EAAD,KACK13D,EAAMxI,UAGT,kBAAC,EAAD,KACGwI,EAAMxI,UAIb,OACE,kBAACgkE,EAAD,CAAiB9D,SAAUA,GACzB,kBAAC,IAAD,CAAgB+D,OAAQF,GACtB,kBAACG,EAAA,EAAD,CAAiB9K,iBAAkBA,GAAkB+K,WAAYt0E,KAAK2Y,MAAMq7D,UAC1E,kBAACC,EAAD,CAAQp9C,SAAU1E,EAAMgI,QAAS,IAC/B,kBAAC,GAAD,MACA,kBAAC,IAAD,KACG05C,GAAcnuE,KAAK6uE,GAClB,kBAAC,IAAD,CACEv1E,IAAKu1E,EACLpiD,KAAMoiD,EACNnH,OAASz0D,GAAU,kBAAC,GAAD,CAAc9F,MAAO8F,EAAO4Z,kBAAmBvyB,KAAKy0B,MAAMlC,8BAYlFuhD,U,sECtFfU,IAAaC,WAIb,IAAIC,GAAiBC,IAASvH,OAE1BwH,GAAezrD,KAAOooD,gBAetBsD,GAAgB,KACpB,MAAMC,GAAa/2E,SAAS8kB,eAAe,iBACvCiyD,KACFD,GAAgBhiD,KAAKkiD,MAAMD,GAAWlzD,YAEpCizD,KAEFH,GAAiBM,UAGjBJ,GAAeC,GAAc3D,SAAS/2C,QAAQhL,UAUhD,MAAM8lD,GACJJ,IAAiBA,GAAcK,aAAeL,GAAcK,aAAe,KAEvEhB,GCtBS,SAAUjE,EAAUtG,EAAKwL,GAEtC,MAAMnsE,EAAOosE,eAA2BxgE,OACtC,IAAIygE,KAAc,CAChBC,IAAKrF,EACLsF,YAAa,UACbC,QAAS,CACPC,WAAY,iBAKZC,EAAQ,IAAIC,KAAc,CAC9BC,gBAAiB,IAAIC,KAA6B,CAChDC,oCAIJ,OAAO,IAAIC,KAAa,CACtBC,QAASrM,EACTsM,mBAAoB,IACpBjtE,OACA0sE,MAAOA,EAAMQ,QAAQf,KDAHgB,CAAqBhtD,KAAO+mD,iBAAiB,EAAO+E,IEhD3D,IAAkB9lD,GAAUinD,IAAVjnD,GFuDxBylD,GEtDA,IAAIvwD,SAAQ,CAACE,EAASC,KAC3B,MAAM1Q,EAAU,CACduiE,OAAO,EACPC,IAAKnnD,GACLonD,aAAa,EACbC,KAAM,cACNC,WAAW,EAEXC,cAAe,CACbC,aAAa,IAIjB,GAAIP,GAGFtiE,EAAQ8iE,UAAY,GACpB9iE,EAAQ8iE,UAAUznD,IAAY,CAC5B0nD,YAAaT,IAGf1D,KAAKoE,IAAIC,MAAkB/yE,KAAK8P,GAAU+kB,IACpCA,GAAOrU,EAAOqU,GAClBtU,WAEG,CAKL,MAAMyyD,EAAqB,UAAM7tD,KAAO8tD,gBAAb,wCAA4D9tD,KAAOmnD,WAAnE,8BAAmGnnD,KAAOinD,gBAErIt8D,EAAQojE,QAAU,CAChBC,SAAUH,EACVjC,MAAQvgE,IACN,MAAM4iE,EAAavkD,KAAKkiD,MAAMvgE,GAC9B,OAAI4iE,EAAWC,QACND,EAAWC,QAEbD,IAIX1E,KACGoE,IAAIQ,MACJR,IAAIC,MACJ/yE,KAAK8P,GAAU+kB,IACVA,GAAOrU,EAAOqU,GAElBtU,YFKaM,MAAK,KAAO,IAAD,EAEhC,MAAM0yD,EAAcx5E,SAAS8kB,eAAe,QACtC20D,EAAgBz5E,SAAS8kB,eAAe,UAC9C40D,YAA0B15E,SAASwjB,MAAM/e,QAOtCzE,SAAS8D,gBAHV01E,EAAY/zD,UAAU7f,OAAO,UAC7B4zE,EAAY/zD,UAAUnf,IAAI,UAC1BmzE,WAAeh0D,UAAUnf,IAAI,UAG/BqwE,GACE,kBAAC,GAAD,CACEviD,KAAMv0B,OAAOi5B,SAASnF,SACtBuiD,OAAQyD,IACRxD,cAAeA,GACf7D,SAAQ,iBAAElnD,WAAF,IAAEA,UAAF,EAAEA,KAAQmnD,kBAAV,QAAwB,KAChC0D,SAAUa,KAEZ0C,O,iCGxFJ,uEAKA,MAAMI,EAAcC,cAKPplE,EAAgB,KAC3B,MAAMqlE,EAAgB,KACpB,GAAI9kE,aAAanV,OAAOk6E,WACtB,OAAOH,EAAYt0D,MAAK,CAAC00D,EAAOn0E,KAC9B,MAAMo0E,EAAYD,EACZE,EAAUN,EAAYxzE,OAAS,IAAMP,GAAQ+zE,EAAY/zE,EAAQ,GAEvE,OAAOq0E,EACLr6E,OAAOk6E,WAAWnwE,IAAGslB,QAAQ+qD,EAAWC,GAAS,IAAQl3C,QACvDnjC,OAAOk6E,WAAWnwE,YAAGqwE,GAAW,IAAQj3C,aAK3Cm3C,EAAYC,GAAiB/lE,mBAASylE,GAEvCzf,EAAwBrU,aAC5B,KACE,MAAMq0B,EAAoBP,IACtBO,IAAsBF,GACxBC,EAAcC,KAEf,KAUL,OAPA1lE,qBAAU,KACR,GAAIK,YAEF,OADAnV,OAAOsH,iBAAiB,SAAUkzD,EAAsBnkD,UACjD,IAAMrW,OAAO2kB,oBAAoB,SAAU61C,EAAsBnkD,aAIrEikE,I,4PC+DF,MCjGMG,EAAmCC,IAC9C,IAAKvlE,YACH,OAGF,MAAMwlE,EAAM,UACP36E,OAAOi5B,SAAS2hD,SADT,aACsB56E,OAAOi5B,SAAS11B,MADtC,OAC6CvD,OAAOi5B,SAASnF,UAD7D,OACwE4mD,GAEpF16E,OAAOmiD,QAAQ04B,UAAU,CAAEtmD,KAAMomD,GAAU,GAAIA,IAqBpCv5C,EAAsB,SAAChgC,GAAkC,IAA7B05E,EAA4B,4DAAdjqD,EACrD,IAAK1b,YACH,YAGkB0b,IAAhBiqD,IACFA,EAAc96E,OAAOi5B,SAASE,QAGhC,MAAM3W,EAASu4D,IAAG5D,MAAM2D,GACxB,OAAOt4D,EAAOphB,IAIH45E,EAA2B,SAAC55E,GAAkC,IAAD,MAA5B05E,EAA4B,4DAAdjqD,EAC1D,IAAK1b,cAAc/T,EACjB,YAGkByvB,IAAhBiqD,IACFA,EAAc96E,OAAOi5B,SAASE,QAGhC,MAAM8hD,EAAQF,IAAG5D,MAAM2D,GAEvB,IAAI,UAAA5zD,YAAK+zD,UAAL,eAAa10E,SAAU2gB,YAAK+zD,GAAO91D,QAAQ/jB,IAAQ,EAAG,CACxD,MAAM85E,EAAWlnD,YAAK,CAAC,OAAQinD,GACzBE,EAAaJ,IAAG7lD,UAAUgmD,GAChCT,EAAgC,IAAD,OAAKU,MAI3BC,EAA4BplD,GAAgBA,EAAIhL,cAAc7f,QAAQ,KAAM,KAE5EkwE,EAAqC,CAACjwE,EAAMqjB,KAEvD,MAAM,KAAE3M,EAAF,IAAQtF,EAAR,YAAa8+D,GAAgBlwE,EAC7BmwE,EAAUz5D,GAAQtF,EAExB,IAAK++D,EACH,OAGF,MAAMC,EAAgCT,IAAG7lD,UAAU,CACjD,KAAoBkmD,EAAyB3sD,MAC1CssD,IAAG5D,MAAMmE,KAQd,OAJEE,EACED,EAAQvkE,OAAO,IAAKwkE,GAClBD,GAKKE,EAAuB3F,GAClCA,EAAKl7D,MAAM,KACR9S,KAAIw8C,GAAKA,EAAE1pC,MAAM,OACjBqlB,QAAO,CAACy7C,EAAD,SAAOt6E,EAAK2X,GAAZ,QAAwB,IAAK2iE,EAAK,CAACt6E,GAAM2X,KAAU,K,yaC5FhDnJ,UAAOC,IAAtB,qEACItH,IACAyH,IACA2rE,IACAhK,IACApN,IACA7yD,K,2GCiBJ,MAAMkqE,EAAiB,CACrBtlE,UAAW,GACXulE,qBAAqB,GAGjBC,EAAyB,CAC7BC,SAAS,EACT/+D,WAAW,EACXg/D,YAAY,EACZntD,UAAU,EACVotD,iBAAiB,EACjBC,gBAAgB,EAChBC,QAAQ,EACRC,eAAe,EACfC,UAAU,GA2BNC,EAAyBntB,GAhBRA,OAChBA,IAAYA,EAAQotB,SAIE,MAApBptB,EAAQotB,SAAuC,WAApBptB,EAAQotB,SAWDC,CAAcrtB,GAAWA,EAPvCA,IACtBA,EAGEA,EAAQ1nC,cAAc,aAFpB,KAKmEg1D,CAAoBttB,GAmE5FutB,EAAWhgB,sBACf,CAAC,EAAgHlmD,KAAS,IAAzH,SAAEjE,EAAF,QAAY2D,EAAZ,gBAAqBwY,EAArB,YAAsCtS,EAAtC,eAAmDG,EAAnD,aAAmEkS,EAAnE,4BAAiFkuD,GAAuC,EACvHzmE,EAAU,IACL0lE,KACA1lE,GAGLwY,EAAkB,IACbotD,KACAptD,GAGL,MAAOpW,GAAKC,eACLqkE,EAAUC,GAAeroE,mBAAS,MACnCsoE,EAAex+B,YAAYs+B,IAC1BG,EAAaC,GAAkBxoE,oBAAS,IACxCyoE,EAAaC,GAAkB1oE,oBAAS,GACzC4W,EAAWopB,IAAM2oC,SAASC,MAAM7qE,GAChC8qE,EAAa3oE,mBAEnB,OAAiB,IAAb0W,EACK,MASTtW,qBAAU,KACR,GAAI8nE,EAAU,CACZ,MAAMU,EAASV,EAASU,OACxBV,EAASU,OAAS,KAChBV,EAASztB,QAAQvpC,UAAU7f,OAA3B,mBACAu3E,EAAOC,KAAKX,GACZA,EAASztB,QAAQvpC,UAAUnf,IAA3B,oBAGFsd,YAAW,IAAM64D,EAASU,UAAU,KAGtC,MAAME,EAAqB/8E,IACzB,GAAIA,GAAKA,EAAEsV,OAAQ,CACjB,MAAM0nE,EAAah9E,EAAEsV,OAAO2nE,aAAa,mBACzC,GAAmB,KAAfD,GAAoC,OAAfA,EACvB,OAGF,IAAsC,IAjHnBtuB,KAC3B,IAAKA,EACH,OAAO,KAGT,KAAOA,GAAS,CACd,GAAIA,EAAQvpC,UAAUo5C,SAAS,eAC7B,OAAO,EAGT,GAAI7P,EAAQvpC,UAAUo5C,SAAS,mBAC7B,OAAO,EAGT7P,EAAUA,EAAQ7rD,WAGpB,OAAO,MAgGKq6E,CAAoBl9E,EAAEsV,QAAmB,CAC3C,MAAM6nE,EAtEW,EAACC,EAAQ1uB,KAGpC,GAFAA,EAxBsBA,KACtB,IAAKA,EACH,OAAO,KAGT,KAAOA,GAAS,CACd,MAAM2uB,EAAY3uB,EAAQuuB,aAAa,kBAEvC,GAAkB,KAAdI,GAAkC,OAAdA,EACtB,OAAO3uB,EAGT,GAAIA,EAAQvpC,UAAUo5C,SAAS,mBAC7B,OAAO,KAGT7P,EAAUA,EAAQ7rD,WAGpB,OAAO,MAKGy6E,CAAe5uB,IAEpB0uB,IAAW1uB,EACd,OAAO,KAGT,IAAK,IAAI3oD,EAAI,EAAGA,EAAIq3E,EAAOt3E,OAAQC,IAAK,CACtC,MAAMw3E,EAAQH,EAAOr3E,GAAGw3E,MACxB,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAMz3E,OAAQ03E,IAEhC,GADaD,EAAMC,GACV9uB,UAAYA,EACnB,OAAO3oD,EAKb,OAAO,MAqDsB03E,CAAqBtB,EAASiB,OAAQp9E,EAAEsV,QAExC,OAAf6nE,GACFhB,EAASuB,OAAOP,GAIdP,EAAW73C,UACZ63C,EAAW73C,QAAwBo0B,WAAa,MAOnDwkB,EAAkBC,IAAO,IAAD,EAC5B,MAAMC,GAAY1B,SAAA,UAAAA,EAAUiB,cAAV,eAAkBt3E,QAAS,IAAK,EAClDy2E,EAAesB,GAAaD,EAAI,MAChCnB,EAAeoB,GAAaD,EAAI,OAG5BE,EAAiB,KAGjB9vD,GAA0C,mBAAnBlS,IACzBA,EACEI,YACE,CAAC,YACD,CAAE6hE,aAAc/vD,GAChBrS,IAGJU,YAAe,kBAGjB8/D,EAAS6B,kBAAkB73E,SAAQ,CAACuoD,EAASnpD,KAE3CmpD,WAASuvB,gBAAgB,mBAI7B,IAAK5B,GAAgBF,EAenB,OAbAA,EAAS+B,GAAG,SAAUP,GACtBxB,EAAS+B,GAAG,SAAUJ,GAEtB3B,EAAS6B,kBAAkB73E,SAAQ,CAACuoD,EAASnpD,KAC3CmpD,EAAQyvB,aAAa,iBAAkB54E,GACvC,MAAM04D,EAAK4d,EAAsBntB,GAE7BuP,IACFA,EAAGkgB,aAAa,kBAAmB54E,GACnC04D,EAAGp3D,iBAAiB,QAASk2E,OAI1B,KAELZ,EAAS6B,kBAAkB73E,SAASuoD,IAClC,MAAMuP,EAAK4d,EAAsBntB,GAC7BuP,GACFA,EAAG/5C,oBAAoB,QAAS64D,MAGpCZ,EAASiC,IAAI,SAAUT,GACvBxB,EAASiC,IAAI,SAAUN,MAK1B,CAAC3B,IAGF,kBAAC,IAAD,CAAWtmE,UAAWJ,EAAQI,UAAWE,IAAKA,GAC5C,kBAAC,IAAD,CAAkBF,UAAU,OAAOqmE,4BAA6BA,GAC9D,kBAAC,IAAD,CACEljE,QAAS,KACPmjE,EAASkC,WACT,IACElC,EAASmC,KAAK,UAAWv4E,IACvBo2E,EAAS6B,kBAAkBj4E,GAAGwC,WAEhC,MAAOmsB,GACPC,YAAUD,KAGdwa,UAAWotC,GAEX,kBAACl6D,EAAA,EAAD,KAAevK,EAAE,iCACjB,kBAAC,IAAD,KACE,kBAAC,cAAD,CAAaoB,YAAY,OAI/B,kBAAC,IAAD,CAAiBlD,IAAK6mE,GACpB,kBAAC,IAAD,CACE/mE,UAAU,WACVulE,oBAAqB3lE,EAAQ2lE,oBAC7B3lE,QAASwY,EACTswD,YAAcpC,IACZC,EAAYD,KAGbrqE,IAGL,kBAAC,IAAD,CAAkB+D,UAAU,OAAQqmE,4BAA6BA,GAC/D,kBAAC,IAAD,CACEljE,QAAS,KACPmjE,EAASqC,OACT,IACErC,EAASmC,KAAK,UAAWv4E,IACvBo2E,EAAS6B,kBAAkBj4E,GAAGwC,WAEhC,MAAOmsB,GACPC,YAAUD,KAGdwa,UAAWstC,GAEX,kBAACp6D,EAAA,EAAD,KAAevK,EAAE,6BACjB,kBAAC,IAAD,KACE,kBAAC,cAAD,CAAaoB,YAAY,YASxB/F,I,MAAAA,cAAQwI,IAARxI,CAAgC+oE,G,6CCtTxC,MAAM9kE,EAAUhI,UAAO3F,OAAV,4KASd6G,IACAC,KAIOmuE,EAActvE,UAAOmM,KAAV,oGACpBojE,IACO52E,YAAM,qBAGJ,QAAC,KAAE62E,GAAH,SAAeA,EAAO,EAAI,KAI1BC,EAASzvE,UAAOmM,KAAV,0TAOfojE,KACO,QAAC,KAAErpE,GAAH,QAAwB,YAATA,EAAqB,UAAY,aC/BrDwpE,EAAoC,IAMnC,IANoC,YACzCC,EADyC,WAEzCC,EAFyC,QAGzCC,EAHyC,OAIzCC,EAJyC,SAKzCxmE,GACI,EACJ,MAAOymE,EAAgBC,GAAqBprE,oBAAS,IAC9CqrE,EAAgBC,GAAqBtrE,oBAAS,GAErDM,qBAAU,KACR,IAAI2gE,EASJ,OAPIkK,GAAkBE,KACpBpK,EAAQ1xD,YAAW,KACjB67D,GAAkB,GAClBE,GAAkB,KACjB,MAGE,KACL/J,aAAaN,OAkBjB,OACE,kBAAC79D,EAAD,CACE9B,KAAK,SACL2D,SAjBuB,CAAC+lE,EAAYO,KAGtCA,EAFeC,IAAKR,MAgBUx4D,KAAK,KAAMw4D,GAX3BS,IACVA,EACFL,GAAkB,GAElBE,GAAkB,MAQlB5mE,SAAUA,GAEV,kBAACgmE,EAAD,CAAaE,KAAMO,GAAkBE,GAAiBN,GACtD,kBAACF,EAAD,CAAQ,eAAcM,EAAgB7pE,KAAK,WACxC2pE,GAEH,kBAACJ,EAAD,CAAQ,eAAcQ,EAAgB/pE,KAAK,UACxC4pE,KAMTJ,EAASY,aAAe,CACtBX,YAAa,OACbE,QAAS,UACTC,OAAQ,UACRxmE,SAAU,MAGGomE,I,qBCjEa1vE,UAAOC,IAAV,0FAMKD,UAAOmM,KAAV,mEACvBwB,MAKyB3N,UAAOmM,KAAV,iLACtBzL,YAAI,GAAI,IAKRvG,YAAG,OAKK,QAAC,MAAEpK,GAAH,SAAeA,EAAMyK,OAAO+kD,QAAQ7gD,eAC1C6zD,K,yCCxBsBvyD,UAAOC,IAAV,0FAMKD,UAAOmM,KAAV,mEACvBvJ,KAKyB5C,UAAOmM,KAAV,kHACtBzL,YAAI,GAAI,KAKA,QAAC,MAAE3Q,GAAH,SAAeA,EAAMwgF,YAAY/wE,gBACvC+yD,KCWSie,I,mCClCR,IAAKC,EAKAC,GAQAC,I,SAbAF,K,oBAAAA,E,qBAAAA,M,cAKAC,K,wBAAAA,E,oBAAAA,E,kBAAAA,E,sBAAAA,E,aAAAA,Q,cAQAC,K,kBAAAA,E,WAAAA,Q,uCCFZ,MAUaC,GAAsB5wE,UAAOmM,KAAV,4BAEnB0kE,GAAkB7wE,UAAOmM,KAAV,4BAEf2kE,GAAkB9wE,UAAOmM,KAAV,qJAUf4kE,GAAa/wE,UAAOmM,KAAV,6QACnBzL,YAAI,GAAI,IAQNA,YAAI,GAAI,KAaDqS,GAAa/S,mBAAO,QAAC,UAAE4J,EAAF,QAAaonE,EAAb,SAAsBrnE,EAAtB,gBAAgCsnE,KAAoBvmE,GAArD,SAC7B,kBAAC,KAAD,eAASmC,GAAImkE,EAAS,eAAcC,GAAqBvmE,MADnC1K,CAAH,8EA9CC,IAA2B,IAA1B,UAAE4J,EAAF,MAAa7Z,GAAY,EAChD,OAAI6Z,IAAc8mE,GAAUQ,KACnB,KAGFlhF,cAAP,wCACI6K,YAAU9K,EAAMyK,OAAOgB,KAAKoO,QA2C9B,QAAC,MAAE7Z,EAAF,SAAS4Z,GAAV,SAA0BA,IAAagnE,GAASQ,MAAQxjE,YAAU,CAAE5d,UAAWoS,YAAU,CAAEpS,aAKlFqhF,GAAYpxE,UAAOC,IAAV,4BCpChBoxE,GAAattE,YAAQutE,IAARvtE,CAA4BqtE,IAEzCzvE,GAA4B,IAkB3B,IAlB4B,iBACjCy/C,EADiC,SAEjCz+C,EAFiC,SAGjCyB,EAHiC,UAIjCwF,EAJiC,SAKjCD,EALiC,UAMjCjD,EANiC,MAOjC8C,EAPiC,cAQjCE,EARiC,kBASjCuxC,EATiC,aAUjCs2B,EAViC,SAWjCxxC,EAXiC,IAYjC3uB,EAZiC,UAajCogE,EAbiC,iBAcjCtzD,EAdiC,SAejC7L,EAfiC,OAgBjCo/D,GAAS,KACNtmE,GACC,EAGJ,GAAI/G,IAAaotE,EAAW,CAC1B,MAAM,KAAEt/D,EAAF,KAAQpQ,IAAS0H,aAAA,EAAAA,EAAOL,QAAS,GAEvC,OACE,yBAAKzC,UAAWA,GACd,kBAAC2qE,GAAD,CACEK,cAAex/D,IAASpQ,IAAS4H,EACjCioE,cAAa,yGAAoGz/D,EAApG,MAEb,kBAACa,GAAD,CAAYgL,GAAG,OAAOnU,UAAWA,EAAWD,SAAUA,GACpD,kBAAC,IAAD,CAAQH,MAAOA,OAOzB,MAAM08C,EAAU0rB,YAAQpoE,aAAD,EAACA,EAAOL,MAAOi4C,GAEX,IAAD,IAA1B,OAAI8E,GAAWsrB,EAEX,yBAAK9qE,UAAWA,GACd,kBAACoM,EAAA,QAAD,eACEpM,UAAW8C,SAAF,UAAEA,EAAOL,aAAT,aAAE,EAAc0oE,MACzB9+D,WAAYA,GACZvX,KAAM0qD,EACN4rB,0BAA2B,CAAEloE,YAAWD,YACxCo2B,SAAUA,EACV3uB,IAAKA,GACDjG,GAGFomE,EAEI,kBAACX,GAAD,KACGjuE,GAGH,qCAEKs4C,GAAqBt4C,GACpB,kBAACiuE,GAAD,KACGjuE,GAKP,kBAACkuE,GAAD,MACG3qB,aAAA,EAAAA,EAASpkD,OAAQ4H,IAAiBw8C,aAAlC,EAAkCA,EAASt5C,MAI5CquC,GAAqBt4C,GACnB,kBAACiuE,GAAD,KACGjuE,IAMJ8uE,IAAWp/D,KAAc6L,IAAoBgoC,aAAA,EAAAA,EAAShgD,QAASuqE,EAAUsB,YACnEP,IAAahoE,SAAA,UAAAA,EAAOL,aAAP,eAAcgJ,YAAas+D,EAAUsB,WACvD,kBAACjB,GAAD,cAEE,kBAACC,GAAD,KACE,kBAAC5oE,EAAA,QAAD,CAAM2B,YAAY,EAAM1B,KAAK,mBAQlCqpE,IAAWp/D,IAAY6zC,aAAA,EAAAA,EAAShgD,QAASuqE,EAAUuB,UAA0B,aAAdpoE,GAC9D,kBAACknE,GAAD,CAAiBpqE,UAAU,gBAA3B,SAEE,kBAACqqE,GAAD,KACE,kBAAC5oE,EAAA,QAAD,CAAM2B,YAAY,EAAM1B,KAAK,qBAMjCqpE,QAAuBxwD,IAAb5O,GACR,kBAACy+D,GAAD,cAEE,kBAACC,GAAD,KACE,kBAAC5oE,EAAA,QAAD,CAAM2B,YAAY,EAAM1B,KAAMiK,SAYjD,MAGT1Q,GAAK2uE,aAAe,CAClBl/D,IAAK,IACLxH,UAAW8mE,GAAUuB,QACrBtoE,SAAUgnE,GAASuB,QACnBjB,gBAAiB,MAGJltE,I,qBAAAA,eAAQE,IAARF,CAAsBpC,I,oBC7JrC,MAAMwwE,GAAa,CACjBC,YAAcriF,GAAUC,cAAV,QAAD,u0BAQWD,EAAMyK,OAAO63E,IAAIjwE,SAoCzChJ,MAAQrJ,GAAUC,cAAV,QAAD,kIAQPsiF,OAASviF,GAAUC,cAAV,QAAD,mIA0BJuiF,GAAcviF,cAAH,4KAUJwiF,GAAcxyE,kBAAOgM,KAAPhM,CAAH,oCACpBuyE,IAGSzyD,GAAQ9f,UAAOy7D,IAAV,oCACd8W,IAGSE,GAAezyE,UAAOC,IAAV,8EA9BS,IAA2B,IAA1B,MAAElQ,EAAF,UAAS2iF,GAAgB,EAC1D,YAAqC,IAA1BP,GAAWO,GACbP,GAAWO,GAAW3iF,IAG/By1B,YAAU,2BAAD,OACoBktD,EADpB,iEAIFP,GAAWG,OAAOviF,OCvErB4iF,GAA4C,IAK3C,IACDC,GAN6C,MACjDnmE,EADiD,UAEjDimE,EAFiD,YAGjDG,EAAc,GAHmC,SAIjDzuE,GACI,EAeJ,OAXEwuE,EADExuE,EACe,kBAACouE,GAAD,CAAahpE,MAAOiD,IAGnC,kBAAC,GAAD,CACE,qBAAayE,aAAczE,EAAMtD,MAAMgE,IAAK,MAC5C,cAAaG,aAAab,EAAMtD,MAAMgE,IAAK,CAAC,IAAK,KAAM,OACvDzG,UAAS,mBAAcmsE,KAKtB,kBAACJ,GAAD,CAAcC,UAAWA,GAAYE,IAG9CD,GAAarC,aAAe,CAC1BoC,UAAW,UAGE3uE,YAAQE,IAARF,CAAsB4uE,IAAtB5uE,I,mBC3Bf,MAKa+uE,GAAiB9yE,UAAO/P,QAAV,6KACvB,QAAC,MAAEF,GAAH,SAAeE,YAAQ,CAAEF,aAGL,QAAC,MAAEA,GAAH,SAAeA,EAAME,QAAQ8iF,mBAAmBC,QAGnE7nE,IAAU,OAAAA,aAAA,EAAAA,EAAOywB,mBAZIjjC,EAYgCwS,EAAMywB,gBAX9D,QAAC,MAAE7rC,GAAH,SAAeC,cAAd,QAAD,mDACsBD,EAAME,QAAQ8iF,mBAAmBp6E,MAF/BA,SAoBpBs6E,GAAWzN,4BAAmB,KAAO,KACrC0N,GAAiB,CAAE,CAACD,IAAW,GAC/BE,GAAmB,CAAE,CAACF,IAAW,GAE1Bza,GAAqBx4D,kBAAO4O,IAAK2K,KAAZvZ,CAAH,0KAEzB,QAAC,MAAEjQ,GAAH,SAAeqQ,YAAQ,IAAKrQ,EAAOmjF,uBAGjC,QAAC,MAAEnjF,GAAH,SAAeqQ,YAAQ,IAAKrQ,EAAOojF,yB,gBCnClBnzE,UAAOC,IAAV,2FAAf,MAQMiyD,GAAQlyD,UAAOs5B,MAAV,4IASGt5B,UAAOk6B,MAAV,+IAWGl6B,UAAOC,IAAV,syCAIN,QAAC,MAAElQ,GAAH,SAAeA,EAAMyK,OAAO+Z,KAAK6+D,MAAMr6E,cAUjCs6E,YAAa,4qCAiB3BnhB,IAKoB,QAAC,MAAEniE,GAAH,SAAeA,EAAMyK,OAAO+Z,KAAK6+D,MAAMh5C,sBACjD,QAAC,MAAErqC,GAAH,SAAeA,EAAMyK,OAAO+Z,KAAK6+D,MAAM/4C,iBAGnB63B,IAQR,QAAC,MAAEniE,GAAH,SAAeA,EAAMqjF,MAAMr/D,KAAK3a,MAAMmG,cAW9B2yD,IAQR,QAAC,MAAEniE,GAAH,SAAeA,EAAMqjF,MAAME,qBCjEtCluC,I,oBC3BaplC,UAAOC,IAAV,4FAMKD,UAAOmM,KAAV,qEACvBwB,MAKyB3N,UAAOmM,KAAV,gLACtBzL,YAAI,GAAI,IAKRvG,YAAG,OAKK,QAAC,MAAEpK,GAAH,SAAeA,EAAMyK,OAAO+kD,QAAQ7gD,eAC1C6zD,KAIcvyD,kBAAO2Z,KAAP3Z,CAAH,iDCbFuzE,I,GAAAA,GAhByB,IAAsE,IAArE,gBAAE33C,EAAF,UAAmBl1B,EAAnB,SAA8B/D,EAA9B,aAAwCk2D,KAAiBnuD,GAAW,EAE3G,MAAM8oE,OAA4C,IAAjB3a,EAA+BA,EAAaz9C,cAAgB,GACvFq4D,OAAqC,IAApB73C,EAAkCA,EAAkB,GAE3E,OACE,kBAACk3C,GAAD,eACEl3C,gBAAiB63C,EACjB/sE,UAAS,UAAKA,EAAL,YAAkB8sE,IACvB9oE,GAEH/H,I,SCVA,MAAMW,GAAYtD,UAAOC,IAAV,4YAUjBukE,KAWCrqE,YAAG,OCXMu5E,OARa,IAC1B,kBAAC,IAAD,KACE,kBAAC,GAAD,CAAW/sE,GAAG,cACZ,kBAACswB,GAAA,EAAD,CAASgc,kBAAkB,M,iBC4ClB0gC,I,SCnDa3zE,UAAOC,IAAV,4FAMKD,UAAOmM,KAAV,qEACvBwB,MAKyB3N,UAAOmM,KAAV,oLACtBzL,YAAI,GAAI,IAKRvG,YAAG,OAKK,QAAC,MAAEpK,GAAH,SAAeA,EAAMyK,OAAO+kD,QAAQ7gD,eAC1C6zD,KCdSqhB,I,2BCLR,MAAMjgB,GAAS3zD,UAAO3F,OAAV,gcACf9B,KACO,QAAC,MAAExI,GAAH,SAAeA,EAAM8S,QAAQlK,SASd,QAAC,MAAE5I,GAAH,SAAeA,EAAM8S,QAAQgxE,oBAY1C,QAAC,MAAE9jF,GAAH,SAAeA,EAAM8S,QAAQixE,YAI7BC,GAAyB/zE,kBAAOg0E,KAAPh0E,CAAH,yuBASpB8H,IAAMmsE,SAUbrxE,KACY,QAAC,MAAC7S,GAAF,SAAcA,EAAM8S,QAAQ3S,cAE5B,QAAC,MAAEH,GAAH,SAAcA,EAAM+S,QAAQC,eACjC,QAAC,MAAEhT,GAAH,SAAeA,EAAM8S,QAAQlK,SAWhB,QAAC,MAAE5I,GAAH,SAAeA,EAAM8S,QAAQ3S,cC7C1Ck1D,OAXyB,QAAC,QAAE7jD,GAAH,SAEtC,wCACE,kBAACwyE,GAAD,CACEG,QAAQ,cACRC,UAAU,QACV5oD,QAAShqB,GACV,kBAACoyD,GAAD,KAAQ,kBAACxrD,EAAA,QAAD,CAAM2B,YAAY,EAAO1B,KAAK,c,yHChBpC,MAAM9E,EAAYtD,UAAOC,IAAV,0BAETm0E,EAAgBp0E,UAAOC,IAAV,0FAMbsR,EAAUvR,kBAAOuJ,IAAPvJ,CAAH,wOAIhB7F,YAAG,MAKD2/D,IAIA36C,IAIAugB,IAIApiB,IAIA+2D,KAIOzzD,EAAc5gB,UAAOO,EAAV,oLACpB,QAAC,MAAExQ,GAAH,SAAeA,EAAMukF,uBAAuBC,mBAI5C,IAA8B,IAA7B,oBAAEC,GAA0B,EAC7B,OAAIA,EACKxkF,cAAP,8NASKA,cAAP,6BAKA,QAAC,MAAED,EAAF,oBAASykF,GAAV,SACAp0E,YAAQ,CACNrQ,QACA+T,GAAI,EACJzD,GAAIm0E,EAAsB,MAAQ,EAClCl0E,GAAIk0E,EAAsB,MAAQ,EAClCr7D,GAAIq7D,EAAsB,KAAO,OCxBxBzwE,gBAAQE,aA1B+C,IAO/D,IAPgE,SACrEtB,EADqE,SAErEyB,EAFqE,iBAGrEqwE,EAHqE,aAIrE/4D,EAJqE,aAKrEb,EALqE,oBAMrE25D,GAAsB,GAClB,EAGJ,OAFA35D,EAAeA,GAAgB,KAG7B,kBAACvX,EAAD,MACIc,GAAYsX,IACZ,kBAAC04D,EAAD,KACE,kBAAC7iE,EAAD,CACEH,IAA6B,iBAAjByJ,EAAP,WAAuCA,GAAiBA,EAC7DrR,MAAOkS,IAER/Y,IAGHyB,GAAaqwE,IAAoBA,aAAJ,EAAIA,EAAkBtrE,SAAW,kBAACyX,EAAD,CAAa4zD,oBAAqBA,GAAqB,kBAACjrE,EAAA,EAAD,CAAMC,MAAOirE,W,iCCxCnI,SAASnzB,EAAU3D,GACxB,IAAKA,EACH,MAAO,GAET,GAAwB,oBAAbptD,SACT,IACE,MAAM0P,EAAM1P,SAASC,cAAc,OAEnC,OADAyP,EAAImU,UAAYupC,EACT19C,EAAIy0E,aAAez0E,EAAI00E,WAAa,GAC3C,MAAOpvD,GACP,MAAO,IAVb,oEAiBO,MAAM4Z,EAAqB,CAAC6zB,EAAoB4hB,KACrD,GAAK5hB,GAAe4hB,EAGpB,OAAK5hB,EAGE4hB,EAAar5E,QAAQ,IAAIgtB,OAAOyqC,EAAY,OAAQoR,GAAD,aAAiBA,EAAjB,UAFjDwQ,I,iCCrBX,o2BAGA,SAASC,EAAap8E,GACpB,MAAM,SAAN,OACIA,EAASoB,WAAT,uBAAsCpB,EAASoB,WAA/C,KAA+D,GADnE,iBAEIpB,EAAS7C,SAAT,qBAAkC6C,EAAS7C,SAASkE,GAApD,OAA8D,GAFlE,iBAGIrB,EAASsB,WAAT,uBAAsCtB,EAASsB,WAA/C,KAA+D,GAHnE,iBAIItB,EAASuB,WAAT,uBAAsCvB,EAASuB,WAAWF,GAA1D,OAAoE,GAJxE,kBAKI,QAAC,MAAE/J,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAO+T,GAAI,MALxC,gEAUI3J,YAAG,MAVP,qBAWM1B,EAAS7C,SAAT,qBAAkC6C,EAAS7C,SAASwE,GAApD,OAA8D,GAXpE,mBAYM3B,EAASsB,WAAT,uBAAsCtB,EAASsB,WAA/C,KAA+D,GAZrE,mBAaMtB,EAASuB,WAAT,uBAAsCvB,EAASuB,WAAWI,GAA1D,OAAoE,GAb1E,0BAgBID,YAAG,MAhBP,qBAiBM1B,EAAS7C,SAAT,qBAAkC6C,EAAS7C,SAASwjB,GAApD,OAA8D,GAjBpE,mBAkBM3gB,EAASsB,WAAT,uBAAsCtB,EAASsB,WAA/C,KAA+D,GAlBrE,mBAmBMtB,EAASuB,WAAT,uBAAsCvB,EAASuB,WAAWof,GAA1D,OAAoE,GAnB1E,eAwBF,SAAS07D,EAAUr8E,GACjB,MAAM,SAAN,OACIA,EAASoB,WAAT,uBAAsCpB,EAASoB,WAA/C,KAA+D,GADnE,iBAEIpB,EAAS7C,SAAT,qBAAkC6C,EAAS7C,SAASkE,GAApD,OAA8D,GAFlE,iBAGIrB,EAASsB,WAAT,uBAAsCtB,EAASsB,WAA/C,KAA+D,GAHnE,iBAIItB,EAASuB,WAAT,uBAAsCvB,EAASuB,WAAWF,GAA1D,OAAoE,GAJxE,iBAKIrB,EAAS4C,cAAT,0BAA4C5C,EAAS4C,cAArD,KAAwE,GAL5E,mBAOIlB,YAAG,MAPP,qBAQM1B,EAAS7C,SAAT,qBAAkC6C,EAAS7C,SAASwE,GAApD,OAA8D,GARpE,mBASM3B,EAASuB,WAAT,uBAAsCvB,EAASuB,WAAWI,GAA1D,OAAoE,GAT1E,0BAYID,YAAG,MAZP,qBAaM1B,EAAS7C,SAAT,qBAAkC6C,EAAS7C,SAASwjB,GAApD,OAA8D,GAbpE,mBAcM3gB,EAASuB,WAAT,uBAAsCvB,EAASuB,WAAWof,GAA1D,OAAoE,GAd1E,oDAkBqB3gB,EAAS2H,SAAW,KAlBzC,kBAuBF,SAAS20E,EAAWt8E,GAClB,MAAM,SAAN,OACIA,EAASoB,WAAT,uBAAsCpB,EAASoB,WAA/C,KAA+D,GADnE,iBAEIpB,EAAS7C,SAAT,qBAAkC6C,EAAS7C,SAA3C,OAA2D,GAF/D,iBAGI6C,EAASsB,WAAT,uBAAsCtB,EAASsB,WAA/C,KAA+D,GAHnE,iBAIItB,EAASuB,WAAT,uBAAsCvB,EAASuB,WAA/C,OAAiE,GAJrE,QAQF,SAASg7E,EAAev8E,GACtB,MAAM,SAAN,OACIs8E,EAAWt8E,GADf,iBAEIA,EAASuB,WAAT,uBAAsCvB,EAASuB,WAA/C,OAAiE,GAFrE,QAMF,MACMi7E,EAAiBllF,GAAUqQ,YAAQ,CAAErQ,QAAOuQ,GAAI,IAChD40E,EAAiBnlF,GAAUqQ,YAAQ,CAAErQ,QAAOuQ,GAAI,IAEzCkhB,EAAY,QAAC,MAAEzxB,GAAH,kBAAkB8kF,EAAa9kF,EAAMm4D,WAAWitB,SAAS3sE,SAErEiJ,EAAY,QAAC,MAAE1hB,GAAH,kBAAkB8kF,EAAa9kF,EAAMm4D,WAAWitB,SAASC,KAAzD,OAA+DF,EAAcnlF,KACzF+pE,EAAY,QAAC,MAAE/pE,GAAH,kBAAkB8kF,EAAa9kF,EAAMm4D,WAAWitB,SAASE,KAAzD,OAA+DH,EAAcnlF,KACzFovB,EAAY,QAAC,MAAEpvB,GAAH,kBAAkB8kF,EAAa9kF,EAAMm4D,WAAWitB,SAASG,KAAzD,OAA+DL,EAAcllF,KACzF2vC,EAAY,QAAC,MAAE3vC,GAAH,kBAAkB8kF,EAAa9kF,EAAMm4D,WAAWitB,SAASI,KAAzD,OAA+DN,EAAcllF,KACzFutB,EAAY,QAAC,MAAEvtB,GAAH,kBAAkB8kF,EAAa9kF,EAAMm4D,WAAWitB,SAASK,KAAzD,OAVFzlF,IAAUqQ,YAAQ,CAAErQ,QAAOuQ,GAAI,IAUkCm1E,CAAc1lF,KACzFskF,EAAY,QAAC,MAAEtkF,GAAH,kBAAkB8kF,EAAa9kF,EAAMm4D,WAAWitB,SAASO,MACrE71B,EAAc,QAAC,MAAE9vD,GAAH,kBAAkB8kF,EAAa9kF,EAAMm4D,WAAWitB,SAASt1B,cAAzD,OAAwEo1B,EAAcllF,KACpG6hB,EAAc,QAAC,MAAE7hB,GAAH,kBAAkB8kF,EAAa9kF,EAAMm4D,WAAWitB,SAASvjE,eAGvEw6C,EAAe,QAAC,MAAEr8D,GAAH,kBAAkBglF,EAAWhlF,EAAMm4D,WAAWitB,SAAS/oB,gBACtE/mB,EAAe,QAAC,MAAEt1C,GAAH,kBAAkBglF,EAAWhlF,EAAMm4D,WAAWitB,SAAS9vC,gBACtExK,EAAe,QAAC,MAAE9qC,GAAH,kBAAkBglF,EAAWhlF,EAAMm4D,WAAWitB,SAASt6C,gBACtE1d,EAAe,QAAC,MAAEptB,GAAH,kBAAkBglF,EAAWhlF,EAAMm4D,WAAWitB,SAASh4D,gBACtEoyD,EAAW,QAAC,MAAEx/E,GAAH,kBAAkBilF,EAAejlF,EAAMm4D,WAAWitB,SAAS5F,YACtEnb,EAAW,QAAC,MAAErkE,GAAH,kBAAkBilF,EAAejlF,EAAMm4D,WAAWitB,SAAS/gB,YAEtEuhB,EAAc,QAAC,MAAE5lF,GAAH,kBAAkBilF,EAAejlF,EAAMm4D,WAAWpmD,KAAK6zE,eACrEtlE,EAAc,QAAC,MAAEtgB,GAAH,kBAAkBilF,EAAejlF,EAAMm4D,WAAWpmD,KAAKuO,eACrEN,EAAc,QAAC,MAAEhgB,GAAH,kBAAkBilF,EAAejlF,EAAMm4D,WAAWpmD,KAAKiO,eACrEnN,EAAc,QAAC,MAAE7S,GAAH,kBAAkBilF,EAAejlF,EAAMm4D,WAAWpmD,KAAKc,eACrEgzE,EAAc,gBAAC,MAAE7lF,GAAH,kBAAkB+kF,EAAS,UAAC/kF,EAAMm4D,kBAAP,iBAAC,EAAkBpmD,YAAnB,aAAC,EAAwB8zE,eAClEzzE,EAAY,gBAAC,MAAEpS,GAAH,kBAAkB+kF,EAAS,UAAC/kF,EAAMm4D,kBAAP,iBAAC,EAAkBpmD,YAAnB,aAAC,EAAwB+zE,SAChEloE,EAAY,gBAAC,MAAE5d,GAAH,kBAAkB+kF,EAAS,UAAC/kF,EAAMm4D,kBAAP,iBAAC,EAAkBpmD,YAAnB,aAAC,EAAwBg0E,SAGvEC,EAAY,6BAKL5a,EAAQ,gBAAC,MAAEprE,GAAH,sBACjBglF,EAAU,UAAChlF,EAAMm4D,kBAAP,iBAAC,EAAkBpmD,YAAnB,aAAC,EAAwBq5D,OADlB,eAEjB4a,EAFiB,OAIR7a,EAAQ,gBAAC,MAAEnrE,GAAH,sBACjBglF,EAAU,UAAChlF,EAAMm4D,kBAAP,iBAAC,EAAkBpmD,YAAnB,aAAC,EAAwBo5D,OADlB,eAEjB6a,EAFiB,OAIRC,EAAQ,oBAAC,MAAEjmF,GAAH,SAAeA,SAAA,UAAAA,EAAOm4D,kBAAP,mBAAmBpmD,YAAnB,eAAyBk0E,OAAzB,UAAoCjB,EAAU,UAAChlF,EAAMm4D,kBAAP,iBAAC,EAAkBpmD,YAAnB,aAAC,EAAwBk0E,QAAW,K,iCClHtH,6CAEe,KACb9lF,WAAYsK,IAAOgI,IAAI9D,aACvBzF,iBAAkBuB,IAAOtK,WAAW+lF,MACpCp9E,gBAAiB2B,IAAOtK,WAAWyT,MACnClI,QAASjB,IAAOgI,IAAIrE,WACpByb,OAAQpf,IAAOgI,IAAIxE,WACnBk4E,YAAa17E,IAAOgI,IAAIlE,WACxBm5B,KAAMj9B,IAAOgI,IAAIzG,cACjBtC,aAAc,EACd/D,OAAO,YACP6J,YAAa/E,IAAOgI,IAAIxE,WACxBjF,YAAY,qBAGP,MAAMo9E,EAAW,I,iCChBxB,6CAEe,KACbv8D,OAAQpf,IAAOgI,IAAIxE,WACnBk4E,YAAa17E,IAAOgI,IAAInG,cACxBnM,WAAYsK,IAAOgI,IAAI9D,aACvBzF,iBAAkBuB,IAAOgI,IAAIzE,WAC7BlF,gBAAiB2B,IAAOgI,IAAI5E,UAC5BlI,OAAO,aAAD,OAAe8E,IAAOgI,IAAIxE,YAChC9C,iBAAkBV,IAAOgI,IAAI9E,eAC7B3E,YAAY,oBACZU,aAAc,EACd4f,aAAc7e,IAAOgI,IAAInG,cACzBo7B,KAAMj9B,IAAOgI,IAAIzG,cACjBN,QAASjB,IAAOgI,IAAIrE,WACpBkO,iBAAkB7R,IAAOgI,IAAIpE,WAC7BkO,kBAAmB9R,IAAOgI,IAAItE,YAGzB,MAAMi4E,EAAW,I,8YCjBcn2E,UAAOC,IAAV,qDAA5B,MAIMm2E,EAAep2E,UAAOC,IAAV,8SAEZ,QAAC,MAAElQ,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOwQ,EAAG,OAC1B,QAAC,MAAExQ,EAAF,YAASsmF,EAAc,QAAxB,SAAqCtmF,EAAMyK,OAAOkqE,OAAO2R,MACpE,QAAC,MAAEtmF,EAAF,YAASsmF,GAAV,QACS,YAAhBA,EACEtmF,EAAMyK,OAAO+kD,QAAQhhD,aACrBxO,EAAMyK,OAAO+kD,QAAQ7gD,gBAOP,QAAC,MAAE3O,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOisB,GAAI,OAY3Cs6D,EAA2Bt2E,UAAOC,IAAV,uHACd,QAAC,MAAElQ,EAAF,YAASsmF,EAAc,QAAxB,SAAqCtmF,EAAMyK,OAAOkqE,OAAO2R,KAG5ED,G,wECfJ,MAAMG,EAAcprE,IAAW,IAAD,IAC5B,MAAMqrE,EAAyBhqD,qBAAWC,KACpCurC,EAAW,UAAGwe,SAAH,UAAGA,EAAwB7pD,eAA3B,aAAG,EAAiCqrC,mBAApC,SAEjB,OAAO7sD,aAAA,EAAAA,EAAO/G,WAAY4zD,GAIf9zD,EAAuBoC,GAA0C88D,GAAej4D,IAG3F,GAF+BwH,OAAO8jE,UAAUhlF,eAAek8E,KAAKxiE,EAAO,mBAGzE,OAAO,kBAACi4D,EAAcj4D,GAGxB,MAAMurE,EAA+B3yE,YAAQ4yE,YAAuBrwE,GAA/BvC,CAAyCq/D,GAC9E,OAAO,kBAACsT,EAAiCvrE,IAK9BlH,EAAgBm/D,GAAej4D,GACnC,kBAACi4D,EAAD,iBAAej4D,EAAf,CAAsB/G,SAAUmyE,EAAWprE,MAIvCyrE,EAA0BxT,GAAej4D,IAAW,IAAD,EAC9D,MAAM0rE,KAA2B1rE,SAAD,UAACA,EAAO2rE,0BAAR,aAAC,EAA2BngF,UAAU,EACtE,OAAO,kBAACysE,EAAD,iBAAej4D,EAAf,CAAsB0rE,uBAAwBA,MAIjDE,EAAuB,IAAM,6BAASrwE,UAAU,uBAAuB04B,wBAAyB,CAAEC,OAAQ,kCAE1G23C,EAAqB,IAAM,6BAAStwE,UAAU,qBAAqB04B,wBAAyB,CAAEC,OAAQ,gCAG/F43C,EAAuB9rE,IAE3BA,aAAA,EAAAA,EAAOxI,WACZ,oCACE,kBAACo0E,EAAD,MACC5rE,aAFH,EAEGA,EAAOxI,SACR,kBAACq0E,EAAD,OAMOhzE,EAAwBo/D,GAAej4D,GAGhD,oCACE,kBAAC4rE,EAAD,MACA,kBAAC3T,EAAcj4D,GACf,kBAAC6rE,EAAD,OAMOte,EAAmB0K,GAAej4D,IAAW,IAAD,YAEvD,IAAI+rE,EAAc5hF,YAAM6V,GAExB,MAAMqrE,EAAyBhqD,qBAAWC,KACpCo2C,EAAW2T,SAAH,UAAGA,EAAwB7pD,eAA3B,iBAAG,EAAiC0yC,YAApC,iBAAG,EAAuCj3D,YAA1C,aAAG,EAA6CgT,cAC9D,IAAIrrB,EAAqB,cAAb8yE,EAA2BsU,IAAiBC,IAExD,MAAMte,EAAgB,UAAG3tD,SAAH,UAAGA,EAAOtE,iBAAV,iBAAG,EAAkB2T,cAArB,aAAG,EAA0Bs+C,wBAA7B,QAAiD,GAEjEue,EAAkB,CACtBC,UAAWC,IACXC,WAAYC,KAGd,GAAyB,SAArB3e,EACF/oE,EAAQsnF,EAAgBxU,IAAa0U,SAGlC,GAAI5kE,OAAO2E,KAAKogE,KAA6BniE,QAAQujD,IAAqB,EAAG,CAChF,MAAM6e,EAAuBC,YAAW,CAAC,YAAa,SAAU,oBAAqBV,GAC/EW,EAAmBD,YAAW,CAAC,SAAU,oBAAqBD,GACpET,EAAcY,YAAU,CAAC,YAAa,SAAU,mBAAoBhf,EAAkB+e,GAGxF,OACE,kBAAC,gBAAD,CAAe9nF,MAAOA,GACpB,kBAACqzE,EAAc8T,KAqCR5F,EAAsBlO,GAAej4D,IAChD,MAAM/G,EAAWmyE,EAAWprE,IAEtB,cAAEumE,EAAF,cAAiBC,EAAgB,GAAjC,YAAqC0E,EAAc,WAAclrE,EAEvE,OAAK/G,GAAastE,EAKhB,6BACE,kBAAC4E,EAAD,CAA0BD,YAAaA,GACrC,kBAACjT,EAAcj4D,IAEjB,kBAACirE,EAAD,CAAcC,YAAaA,GAA3B,IAA0C1E,EAA1C,MARK,kBAACvO,EAAcj4D,IAepB4sE,EAAeh0E,YAAQutE,EAARvtE,CAA4B/D,UAAOC,IAAnC,2BACR+J,EAA2B,SAACguE,GAAD,IAA4CC,IAA5C,gEAAkF7U,GAAej4D,IAAW,IAAD,EACjJ,MAAM/G,EAAWmyE,EAAWprE,GAEtB+sE,EAA4B/sE,IAGhC,MAAMogB,EAAO,WAAMpgB,aAAA,EAAAA,EAAO6wD,gBAAiB,oBAA9B,2CAMb,OAHAx2C,YAAU+F,GAIR,kBAACwsD,EAAD,CAAcrG,eAAe,EAAM2E,YAAY,QAAQ1E,cAAepmD,EAASnnB,SAAUA,GACtF+G,EAAMxI,WAKPw1E,EAAwBhtE,IAI5B,MAAMogB,EAAO,WAAMpgB,aAAA,EAAAA,EAAO6wD,gBAAiB,oBAA9B,qDACPoc,EACJ,qCACGjtE,aAAA,EAAAA,EAAOktE,mBAAoBltE,EAAMktE,iBAAiB1hF,OAAS,GAC1D,4BACGwU,EAAMktE,iBAAiBngF,KAAKqzB,GAC3B,4BAAKA,OAYf,OAJA/F,YAAU+F,GACVpgB,EAAMktE,iBAAiBrhF,SAASu0B,GAAY/F,YAAU+F,KAIpD,kBAACwsD,EAAD,CAAcrG,eAAe,EAAM2E,YAAY,UAAU1E,cAAe,CAACpmD,EAAS6sD,GAAoBh0E,SAAUA,GAC7G+G,EAAMxI,WAMPq5D,EAAgB7wD,SAAH,UAAGA,EAAOtE,iBAAV,aAAG,EAAkBm1D,cAClCsc,EAAoBL,IAAqBM,YAAc,CAAEC,eAAgBrtE,IACzEstE,EAAoBC,YAA0B,CAAEF,eAAgBrtE,EAAOhB,WAAY6tE,IACnFK,GAAmBI,aAAA,EAAAA,EAAmB5yE,QAAQ6F,IAAOA,EAAEod,UAAS5wB,KAAKwT,GAAMA,EAAE2f,UAAU,GACvFstD,EAAYN,EAAiB1hF,OAAS,EAG5C,IAAIiiF,GAAerzE,cAAcozE,GAAaF,EAAkBI,OAAOntE,IAAD,aAAOA,EAAEod,UAAF,UAAapd,EAAEotE,iBAAf,aAAa,EAAa5uE,uBACnG9F,GAAYu0E,IACdC,EAAcH,EAAkBI,OAAOntE,IAAD,eAAOA,EAAEod,SAAsD,OAA3C,UAAApd,EAAEotE,iBAAF,eAAaC,8BAAkF,KAA5C,UAAArtE,EAAEotE,iBAAF,eAAaC,gCAI5H,IAAIC,EAAiC,qCAWrC,GAVIJ,IAAgBN,IAClBU,EACE,kBAAC5V,EAAD,eACEiV,iBAAkBM,EAAYN,EAAmB,KACjDI,kBAAmBA,GACfttE,KAKN/G,EAAU,CACZ,GAAIk0E,EACF,OACE,kBAACJ,EAAD,CAA0Blc,cAAeA,GACtCgd,GAGA,GAAIL,EACT,OACE,kBAACR,EAAD,CAAsBnc,cAAeA,EAAeqc,iBAAkBA,GACnEW,GAKT,OAAOA,K,iCChQT,6CAEe,KACbC,eAAgBz+E,IAAOgI,IAAI9D,aAC3B7F,gBAAiB2B,IAAOgI,IAAI1E,WAC5Bo7E,cAAe1+E,IAAOgI,IAAI5E,UAC1Bu7E,aAAc3+E,IAAOgI,IAAInG,cACzB+8E,UAAW5+E,IAAOgI,IAAI9E,eACtB27E,YAAa,GAGR,MAAMlD,EAAW,CACtBkD,YAAa,I,iCCZf,6CAEA,MAAMC,EAAY,CAChBppF,WAAYsK,IAAOgI,IAAI9D,aACvB7F,gBAAiB2B,IAAOgI,IAAI5E,UAC5BjF,MAAO6B,IAAOgI,IAAInG,cAClBi2D,SAAU93D,IAAOgI,IAAIzG,cACrBw9E,OAAQ,IAGK,KACbC,YAAah/E,IAAOgI,IAAI9D,aACxB+6E,SAAU,CACRvpF,WAAYsK,IAAOgI,IAAIzG,cACvBlD,gBAAiB2B,IAAOgI,IAAIxG,kBAC5BrD,MAAO6B,IAAOgI,IAAI9D,aAClB4zD,SAAU93D,IAAOgI,IAAItG,eAEvBo9E,UAAWA,EACXI,WAAY,CACVxpF,WAAYsK,IAAOgI,IAAItG,cACvBrD,gBAAiB2B,IAAOgI,IAAIrG,kBAC5BxD,MAAO6B,IAAOgI,IAAInG,cAClBi2D,SAAU93D,IAAOgI,IAAInG,eAEvBs9E,wBAAyB,CACvBpgF,aAAciB,IAAO+kD,QAAQ0M,UAI1B,MAAMkqB,EAAW,CACtByD,iBAAkBp/E,IAAOgI,IAAIxF,SAC7Bqc,aAAc7e,IAAOgI,IAAI9D,aACzB46E,UAAW,IACNA,EACHC,OAAQ,Q,iCCnCZ,sDAIA,MAAMxpF,EAAQ,CACZ8pF,gBAAiB,OACjBC,aAAct/E,IAAOgI,IAAIzE,WACzBg8E,aAAa,EACbC,QAAS,CACPrhF,MAAO6B,IAAOgI,IAAIpE,WAClBjF,YAAaqB,IAAOgI,IAAIpE,WACxB67E,qBAAsBz/E,IAAOgI,IAAIzG,cACjCm+E,qBAAsB1/E,IAAOugE,gBAAgBxS,MAC7C4xB,uBAAwB3/E,IAAOugE,gBAAgBqf,QAC/CC,wBAAwB,UACxBC,SAAU,EACVvgF,WAAY,IACZwgF,iBAAkB,IAClBC,eAAgB,OAChBC,SAAU,OACVC,aAAclgF,IAAOgI,IAAIzG,eAE3B4+E,kBAAmBngF,IAAOgI,IAAIpE,WAC9Bw8E,QAAS,CACPr7E,YAAa/E,IAAO+kD,QAAQ0M,UAInBkqB,EAAW,CACtBv6C,gBAAiBphC,IAAOgI,IAAInG,cAC5Bw9E,gBAAgB,OAAD,OAASgB,EAAYl/D,OAAO27D,UAAUwD,iBAAtC,0CACfhB,aAAct/E,IAAOgI,IAAIzG,cACzBg+E,aAAa,EACbC,QAAS,CACPrhF,MAAO6B,IAAOgI,IAAIxF,SAClB7D,YAAaqB,IAAOgI,IAAIxF,SACxBi9E,qBAAsBz/E,IAAOgI,IAAItG,cACjCg+E,qBAAsB1/E,IAAOgI,IAAIzF,oBACjCs9E,wBAAyB7/E,IAAOgI,IAAI9D,aACpC47E,SAAU,EACVvgF,WAAY,IACZwgF,iBAAkB,IAClBC,eAAgB,OAChBC,SAAU,OACVC,aAAclgF,IAAOgI,IAAIzG,eAE3B4+E,kBAAmBngF,IAAOgI,IAAI9D,aAC9Bq8E,kBAAmB,CACjB3gF,GAAG,QACHgf,GAAG,UAIQrpB,O,iCCrDf,6CAEe,KACbG,WAAYsK,IAAOtK,WAAWovD,MAC9B3mD,MAAO6B,IAAOsH,KAAKM,QACnB0xE,SAAUt5E,IAAOgI,IAAI9E,eACrBm2E,iBAAkBr5E,IAAO+kD,QAAQ0M,SAG5B,MAAMkqB,EAAW,CACtBjmF,WAAYsK,IAAOtK,WAAW8qF,SAC9BriF,MAAO6B,IAAOsH,KAAKm5E,QACnBnH,SAAUt5E,IAAOgI,IAAI9E,eACrBm2E,iBAAkBr5E,IAAO+kD,QAAQ0M,U,iCC6BnC,wIAAO,MAAMjb,EAAmB,sBACnBH,EAA6B,eAC7BF,EAA8B,gBAC9BG,EAA8B,yB,gCC3C5B,KAEb/0C,cAAe,UACfC,kBAAmB,UACnBC,oBAAqB,UACrBC,cAAe,UACfC,kBAAmB,UACnBC,oBAAqB,UACrBC,cAAe,UACfC,kBAAmB,UAEnBC,gBAAiB,UACjBC,oBAAqB,UACrBC,gBAAiB,UACjBC,oBAAqB,UACrBC,gBAAiB,UACjBC,oBAAqB,UAGrBC,eAAgB,UAChBC,oBAAqB,UACrBC,oBAAqB,UACrBC,SAAU,UACVC,kBAAmB,UACnBC,eAAgB,UAEhBC,SAAU,UACVC,SAAU,UACVC,SAAU,UACVjE,MAAO,wBACPkE,eAAgB,UAChBC,eAAgB,UAChBC,eAAgB,UAChBC,eAAgB,yBAChBC,eAAgB,UAChBC,eAAgB,UAChBC,UAAW,UACXC,UAAW,UACXC,WAAY,UACZC,WAAY,UACZC,WAAY,UACZC,WAAY,UACZC,WAAY,UACZC,WAAY,UACZC,WAAY,UACZC,WAAY,UACZC,WAAY,UACZC,aAAc,OACdC,0BAA2B,kBAC3BC,0BAA2B,kBAC3BC,aAAc,OACdC,wBAAyB,YACzBC,WAAY,UACZC,WAAY,UACZC,WAAY,UACZC,YAAa,YACbC,QAAS,UACTC,WAAY,UACZC,WAAY,Y,uFC5DP,MACMg8B,EAAgB,yCAQElrC,cAAH,gD,4MCRrB,MAAMkrF,EAAc,IACzBllF,KAAKmlF,SACFrlD,WACAlR,UAAU,G,wCCJf,4CA6Eew2D,4BAAQ,IAAK,GAAbA,EAzEQ,KAErB,MAAMz0E,EAAK+lB,mBAAQ,IAAMwuD,eAAe,IAExC,OAAO,oCACL,uBAAGG,SAAQ,wBAAmB10E,EAAnB,MACT,0BAAM9R,MAAM,UAAUW,OAAO,KAAK4V,KAAK,UACvC,0BAAMO,EAAE,qCAAqCP,KAAK,YAClD,0BAAMO,EAAE,mCAAmCP,KAAK,YAChD,0BAAMO,EAAE,2mKAA2mKP,KAAK,YACxnK,0BAAMO,EAAE,+8CAA+8CP,KAAK,UAC59C,0BAAMO,EAAE,oDAAoDP,KAAK,YACjE,0BAAMO,EAAE,kDAAkDP,KAAK,YAC/D,0BAAMO,EAAE,oDAAoDP,KAAK,YACjE,0BAAMO,EAAE,kDAAkDP,KAAK,YAC/D,0BAAMO,EAAE,kRAAkRP,KAAK,UAC/R,0BAAMO,EAAE,iQAAiQP,KAAK,UAC9Q,0BAAMO,EAAE,0qFAA0qFP,KAAK,UACvrF,0BAAMO,EAAE,8WAA8WP,KAAK,YAC3X,0BAAMO,EAAE,0lBAA0lBP,KAAK,UACvmB,0BAAMO,EAAE,oOAAoOP,KAAK,UACjP,0BAAMO,EAAE,0bAA0bP,KAAK,UACvc,0BAAMO,EAAE,oDAAoDP,KAAK,YACjE,0BAAMO,EAAE,oDAAoDP,KAAK,YACjE,0BAAMO,EAAE,oDAAoDP,KAAK,YACjE,0BAAMO,EAAE,oDAAoDP,KAAK,YACjE,0BAAMO,EAAE,kDAAkDP,KAAK,YAC/D,0BAAMO,EAAE,oDAAoDP,KAAK,YACjE,0BAAMO,EAAE,iPAAiPP,KAAK,YAC9P,0BAAMO,EAAE,kPAAkPP,KAAK,UAC/P,0BAAMO,EAAE,0pBAA0pBP,KAAK,UACvqB,0BAAMO,EAAE,4pBAA4pBP,KAAK,UACzqB,0BAAMO,EAAE,gTAAgTP,KAAK,UAC7T,0BAAMO,EAAE,mOAAmOP,KAAK,UAChP,0BAAMO,EAAE,yVAAyVP,KAAK,UACtW,0BAAMO,EAAE,0xBAA0xBP,KAAK,QAAQkwE,OAAO,QAAQC,YAAY,SAC10B,0BAAM5vE,EAAE,0xBAA0xBP,KAAK,QAAQkwE,OAAO,QAAQC,YAAY,SAC10B,0BAAM5vE,EAAE,mLAAmLP,KAAK,UAChM,0BAAMO,EAAE,wQAAwQP,KAAK,UACrR,0BAAMO,EAAE,6kBAA6kBP,KAAK,UAC1lB,0BAAMO,EAAE,yZAAyZP,KAAK,UACta,0BAAMO,EAAE,soBAAsoBP,KAAK,UACnpB,0BAAMO,EAAE,wwBAAwwBP,KAAK,UACrxB,0BAAMO,EAAE,63BAA63BP,KAAK,UAC14B,0BAAMO,EAAE,iRAAiRP,KAAK,UAC9R,0BAAMO,EAAE,ueAAueP,KAAK,UACpf,0BAAMO,EAAE,icAAicP,KAAK,UAC9c,0BAAMO,EAAE,4ZAA4ZP,KAAK,YACza,0BAAMO,EAAE,2HAA2HP,KAAK,YACxI,0BAAMO,EAAE,2HAA2HP,KAAK,UACxI,0BAAMO,EAAE,4HAA4HP,KAAK,UACzI,0BAAMO,EAAE,4HAA4HP,KAAK,YACzI,0BAAMO,EAAE,+aAA+aP,KAAK,YAC5b,0BAAMO,EAAE,6eAA6eP,KAAK,YAC1f,0BAAMO,EAAE,qcAAqcP,KAAK,YACld,0BAAMO,EAAE,2KAA2KP,KAAK,UACxL,0BAAMO,EAAE,0QAA0QP,KAAK,UACvR,0BAAMO,EAAE,ypBAAypBP,KAAK,UACtqB,0BAAMO,EAAE,iFAAiFP,KAAK,UAC9F,0BAAMO,EAAE,qdAAqdP,KAAK,UACle,0BAAMO,EAAE,yKAAyKP,KAAK,UACtL,0BAAMO,EAAE,oEAAoEP,KAAK,UACjF,0BAAMO,EAAE,oDAAoDP,KAAK,UACjE,0BAAMO,EAAE,4KAA4KP,KAAK,WAE3L,8BACE,8BAAUzE,GAAE,mBAAcA,IACxB,0BAAM9R,MAAM,UAAUW,OAAO,KAAK4V,KAAK,iB,iCCrEhC,KACbwiC,MAAO,WACP4tC,cAAe,WACfC,UAAW,WACXC,eAAgB,KAChBzH,SAAU,KACV9oB,KAAM,IACNqI,YAAa,IACbqC,WAAY,IACZ9tD,OAAQ,IACR4tD,WAAY,IACZgmB,6BAA8B,IAC9BC,WAAY,IACZzzB,oBAAqB,IACrB0zB,YAAa,I,mMCdR,MAAMp4E,EAAc,IAAMzT,cAAL,IAAD,mEAMd+kE,EAAc,IAAM/kE,cAAL,IAAD,oEAMduiE,EAAmB,IAAMviE,cAAL,IAAD,iEAMnBic,EAAwB,IAAMjc,cAAL,IAAD,yG,iCCpBrC,mCAOeorF,4BAAQ,GAAI,GAAZA,EAJO,IACpB,0BAAMzvE,EAAE,gvC,uECFH,MAAMmwE,EAAmB97E,UAAOC,IAAV,25BAClB,QAAC,MAAElQ,GAAH,SAAeA,EAAMyK,OAAOtK,WAAW6rF,SA6CrCvc,EAAgBx/D,UAAOC,IAAV,4GAGf,QAAC,MAAElQ,GAAH,SAAeA,EAAMyK,OAAOsH,KAAK+B,U,WChB7BozB,IAxByB,IAGjC,IAHkC,UACvCvwB,EADuC,iBAEvCusC,GAAmB,GACf,EAGJ,MAAMlW,EAAUt4B,YAAkB,wBAAyB,cAG3D,OACE,kBAAC+6D,EAAD,KACE,kBAACsc,EAAD,CAAkBp1E,UAAWA,GAC3B,yBAAK2E,QAAQ,eACX,4BAAQG,GAAG,KAAKC,GAAG,KAAKC,EAAE,SAI7BunC,GACC,8BAAOlW,M,4KCnBR,MAAMgjB,EAAkB//C,UAAOC,IAAV,+HAQtB+7E,EACJv2B,IAEyD,CAEvDv0D,IAAKlB,cAAF,uHAKHmB,KAAMnB,cAAF,wGAKJ4Y,OAAQ5Y,cAAF,uDAKmBy1D,IAGhBw2B,EAAqBj8E,UAAOC,IAAV,mFAE3B,QAAC,gBAAE4hD,GAAH,SAAyBm6B,EAAuBn6B,KAEhD1nD,YAAG,OACD,QAAC,iBAAEynD,GAAH,SAA0Bo6B,EAAuBp6B,MAI1C5B,EAAwBhgD,UAAOmM,KAAV,wPAC9BzL,YAAI,GAAG,KAGPvG,YAAG,OAUK,QAAC,MAAEpK,GAAH,SAAeA,EAAMyK,OAAOtK,WAAWovD,U,iLC1D5C,MAAMnV,EAASnqC,UAAOC,IAAV,+PACG,QAAC,MAAElQ,GAAH,SAAeA,EAAMq+C,MAAMY,OAAO9+C,aAS3C4X,IAAM8lC,OAEf,QAAC,kBAAEC,GAAH,SAA2B1zC,YAAG0zC,MAKrBC,EAAS9tC,UAAOC,IAAV,gEACf9F,YAAG,OAKM4zC,EAAiB/tC,UAAOC,IAAV,0QASvB9F,YAAG,OAQM6zC,EAAchuC,UAAO3F,OAAV,kNACpB,IAAM9B,gBAGJ,QAAC,MAAExI,GAAH,SAAeoR,YAAa,CAAEpR,aAYvBk+C,EAAejuC,UAAOmM,KAAV,gKACrB,IAAMzL,YAAI,GAAI,MAKN,QAAC,MAAE3Q,GAAH,SAAeA,EAAMq+C,MAAM8tC,aAAa18E,gBAGhDwuC,GAEU,QAAC,MAAEj+C,GAAH,SAAeA,EAAMq+C,MAAM8tC,aAAaC,iBAAiB38E,iBAK1D0uC,EAAmBluC,UAAOC,IAAV,0BCiEdkuC,uBAhHqB,IAAgB,IAAf,MAAEC,GAAY,EACjD,MAAO1lC,GAAKC,eAEN,GACJhC,EADI,QAEJpF,EAFI,QAGJ07B,EAHI,YAIJ30B,EAJI,sBAKJ+lC,EALI,kBAMJR,EANI,WAOJS,GACEF,GAAS,GAEPG,EAAYzpC,mBAEZ0pC,EAAsB1pC,mBAEtB2pC,EAAmBC,YAAYC,QAAQptC,IAEvCqtC,EAAaC,YAAc,CAAEC,UAAWjB,IAwD9C,OAtDA3oC,qBAAU,MACJ0pC,aAAA,EAAAA,EAAY/5C,QAASk6C,IAAYlB,IACnC5Q,MAED,CAAC2R,aAAD,EAACA,EAAY/5C,QAEhBqQ,qBACE,KACE,MAAM8pC,EAAST,EAAU3Y,QAEnBqZ,EAAmBT,EAAoB5Y,QAEvCsZ,EAAwBr+C,IAC5B,IAAIsV,EAAsBtV,EAAEsV,OAG5B,KAAOA,GAAQ,CACb,GAAIA,IAAW8oC,EAEb,OAGF9oC,EAASA,EAAOzS,WAGlBupC,KAkBF,OAdI17B,IAAYktC,GACdU,YAAkBH,GACd1mC,GACF/X,SAASwjB,KAAKrc,iBAAiB,YAAaw3C,GAAsB,KAG1D3tC,GAAWktC,IACjBnmC,GACF/X,SAASwjB,KAAKgB,oBAAoB,YAAam6B,GAAsB,GAEvEE,YAAiBJ,IAIZ,KACD1mC,GACF/X,SAASwjB,KAAKgB,oBAAoB,YAAam6B,GAAsB,GAEvEE,YAAiBJ,MAIrB,CAACztC,IAGEA,EAKH,kBAAC4oC,EAAD,CACE,cAAY,EACZvjC,IAAK2nC,EACLV,kBAAmBA,GAEnB,kBAAC,IAAD,CACEwB,iBAAkB,CAChBf,WAAY,KACNA,GACFA,OAKN,kBAACR,EAAD,MACIO,GACA,kBAACN,EAAD,KACE,kBAACC,EAAD,CAAankC,QAAS,IAAMozB,KAC1B,kBAAChqB,EAAA,EAAD,KAAevK,EAAE,8BACjB,kBAACulC,EAAD,KACE,kBAACqB,EAAA,QAAD,CAAYC,QAAO,sBAAiB5oC,GAAMmD,YAAY,OAK9D,kBAACokC,EAAD,CAAkBtnC,IAAK4nC,GAAsBjtC,MA7B5C,S,uFCzGJ,MACM25B,EAAgB,yCAOElrC,cAAH,gD,gCCV5B,mEAaA,MAAMktB,EAAQ,IAAoB,IAAnB,GAAEvW,EAAF,MAAM6B,GAAY,EAC/B,OAAK7B,GAAO6B,EAIP7B,EAIE,2BAAOA,GAAIA,GAAK6B,GAHd,+BAAQA,GAJR,MAUL8nE,EAAoB,CACxBjnE,KAAM,OAGF+yE,EAA2BjxE,IAC/B,MAAMkxE,EAAS,IACV/L,KACAnlE,IAGC,MACJtW,EADI,OAEJW,EAFI,SAGJmN,EAHI,MAIJ6F,EAJI,QAKJ+mC,EALI,KAMJlmC,EANI,eAOJ2J,EAPI,WAQJlJ,EARI,UASJwyE,GACED,EAEEE,EAAW,IACXlzE,GAAQ,CAAEA,WACV2J,GAAkB,CAAE,kBAAmBA,MACvClJ,GAAc,CAAE,cAAeA,MAC/BwyE,GAAa,CAAE,aAAcA,IAG7BE,EAAa,IACbh0E,GAAS,CAAEA,YACX+mC,GAAW,CAAE5oC,GAAI4oC,IAGvB,OACE,uCACE16C,MAAOA,EACPW,OAAQA,EACR6V,QAAO,cAASxW,EAAT,YAAkBW,GACzB4V,KAAK,OACLG,MAAM,8BACFgxE,GAEJ,kBAACr/D,EAAUs/D,GACV75E,IAKQy5E,YAER,MAAMhB,EAAU,CAACvmF,EAAOW,EAAQsU,IACrC,SAAwCqgB,GAEtC,MAAM9Y,EAAc8Y,EAAiB9Y,aAAe8Y,EAAiB/hB,MAAQ,YAEvEgzE,EAAwBjwE,GAC1B,kBAACixE,EAAD,eAAKvnF,MAAOA,EAAOW,OAAQA,EAAQsU,WAAYA,GAAgBqB,GAC7D,kBAACgf,EAAsBhf,IAM7B,OAFAiwE,EAAQ/pE,YAAR,kBAAiCA,EAAjC,KAEO+pE,I,iCCzFX,mCAOeA,4BAAQ,GAAI,GAAZA,EALA,IACb,oCACE,0BAAMzvE,EAAE,6OAA6OP,KAAK,qB,iCCuB9P,SAASqxE,EAAeC,EAAMh2E,GAC5Bg2E,EAAKhlF,iBAAiB,aAAa,MAjBrC,SAAmCglF,EAAMh2E,GACnCg2E,EAAK1mE,UAAUo5C,SAAS1oD,IAI5Bg2E,EAAK1mE,UAAUnf,IAAI6P,GAajBi2E,CAA0BD,EAAMh2E,MAGlCg2E,EAAKhlF,iBAAiB,WAAW,MAbnC,SAAqCglF,EAAMh2E,GACpCg2E,EAAK1mE,UAAUo5C,SAAS1oD,IAI7Bg2E,EAAK1mE,UAAU7f,OAAOuQ,GASpBk2E,CAA4BF,EAAMh2E,M,sGAUvBujE,MANf,SAAmCyS,GAAyC,IAAnCh2E,EAAkC,uDAAtB,qBACnD,MAAO,CACL1R,MAAOynF,EAAerlE,KAAK,KAAMslE,EAAMh2E,KCrCpC,MAAMxF,EAAgB,qDAMhBC,EAAe,oBAAC,MAAEpR,GAAH,qCACTA,SADS,UACTA,EAAOqJ,aADE,aACT,EAAcG,aADL,gCAERxJ,SAFQ,UAERA,EAAOqJ,aAFC,aAER,EAAcyjF,cAFN,+BAGT9sF,SAHS,UAGTA,EAAOqJ,aAHE,aAGT,EAAcE,aAHL,+BAITvJ,SAJS,UAITA,EAAOqJ,aAJE,aAIT,EAAc0jF,aAJL,S,iKCMrB,MAAMhrB,EAAO9xD,UAAOuU,KAAV,sIAOb9Q,KAGSuuD,EAAehyD,UAAOC,IAAV,glBAEH,QAAC,MAAElQ,GAAH,SAAeA,EAAMgiE,WAAW7hE,cAC1C,QAAC,MAAEH,GAAH,SAAeA,EAAMgiE,WAAWr8D,UACzB,QAAC,MAAE3F,GAAH,SAAeA,EAAMgiE,WAAWgrB,qBAMvC,QAAC,MAAEhtF,GAAH,SAAeA,EAAMiI,OAAOI,OAAOiK,QAAQ,QAAC,MAAEtS,GAAH,SAAeA,EAAMiI,OAAOD,QAChE,QAAC,MAAEhI,GAAH,SAAeA,EAAMiI,OAAOI,OAAOiK,QAAQ,QAAC,MAAEtS,GAAH,SAAeA,EAAMiI,OAAOD,QACnE,QAAC,MAAEhI,GAAH,SAAeA,EAAMiI,OAAOI,OAAOiK,QAAQ,QAAC,MAAEtS,GAAH,SAAeA,EAAMiI,OAAOD,QAItE,QAAC,MAAEhI,GAAH,SAAeA,EAAMgiE,WAAW94D,oBAC1C,QAAC,MAAElJ,GAAH,SAAeA,EAAMgiE,WAAW74D,eAI1CiB,IAAG4H,SAAS,OACQ,QAAC,MAAEhS,GAAH,SAAeA,EAAMgiE,WAAW7hE,cAC1C,QAAC,MAAEH,GAAH,SAAeA,EAAMgiE,WAAWr8D,UACzB,QAAC,MAAE3F,GAAH,SAAeA,EAAMgiE,WAAWE,+BAG3B,QAAC,MAAEliE,GAAH,SAAeA,EAAMgiE,WAAW94D,oBAC1C,QAAC,MAAElJ,GAAH,SAAeA,EAAMgiE,WAAW74D,gBAMnC8jF,EAAYh9E,UAAOmM,KAAV,2WAClBzL,YAAI,GAAI,KAIR,QAAC,MAAE3Q,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAO8Q,GAAI,CAAEL,GAAI,OAAQpG,GAAI,QAAUwH,GAAI,CAAEpB,GAAI,aAGlE,QAAC,MAAEzQ,GAAH,SAAeA,EAAMgiE,WAAWO,WAOxCn4D,IAAG4H,SAAS,OAMHmwD,EAAQlyD,UAAOs5B,MAAV,23BACd1+B,IACAuH,KAUEhI,YAAG,OAKL,QAAC,MAAEpK,GAAH,SAAeqQ,YAAQ,CAAErQ,QAAOisB,GAAI,CAAExb,GAAI,EAAGpG,GAAI,QAAU6hB,GAAI,CAAEzb,GAAI,OAAQpG,GAAI,QAoBxE+3D,EAAcnyD,UAAO3F,OAAV,+iBACpBA,YAAO,UAAW,QAYd8G,KACe,QAAC,MAAEpR,GAAH,SAAeA,EAAMgiE,WAAW5lC,MAAM1yB,gBAEjC,QAAC,MAAE1J,GAAH,SAAeA,EAAMgiE,WAAW5lC,MAAM32B,UACpD,QAAC,MAAEzF,GAAH,SAAeA,EAAMgiE,WAAW5lC,MAAMh7B,QAE7B,QAAC,MAAEpB,GAAH,SAAeA,EAAMgiE,WAAWK,iBAC1C,QAAC,MAAEriE,GAAH,SAAeA,EAAMgiE,WAAW5lC,MAAMj7B,OACxB,QAAC,MAAEnB,GAAH,SAAeA,EAAMgiE,WAAW5lC,MAAMt3B,SAMpDw9D,EAAYryD,UAAOmM,KAAV,yGAClBzL,YAAI,GAAI,KAIA,QAAC,MAAE3Q,GAAH,SAAeA,EAAMgiE,WAAW5lC,MAAMmmC,WAG9CC,KAGSE,EAASzyD,UAAO3F,OAAV,+kCACfA,YAAO,UAAW,YAQA,QAAC,MAAEtK,GAAH,SAAeA,EAAMgiE,WAAWW,OAAOxiE,cACvC,QAAC,MAAEH,GAAH,SAAeA,EAAMgiE,WAAWW,OAAOxiE,cAC1C,QAAC,MAAEH,GAAH,SAAeA,EAAMgiE,WAAWW,OAAOj5D,gBAI3C,QAAC,MAAE1J,GAAH,SAAeA,EAAMgiE,WAAWW,OAAOC,YACzC,QAAC,MAAE5iE,GAAH,SAAeA,EAAMgiE,WAAWW,OAAOj9D,WAGjC,QAAC,MAAE1F,GAAH,SAAeA,EAAMiI,OAAOI,OAAOiK,QAAQ,QAAC,MAAEtS,GAAH,SAAeA,EAAMiI,OAAOD,QACnE,QAAC,MAAEhI,GAAH,SAAeA,EAAMiI,OAAOI,OAAOiK,QAAQ,QAAC,MAAEtS,GAAH,SAAeA,EAAMiI,OAAOD,OAMtFoJ,KACe,QAAC,MAAEpR,GAAH,SAAeA,EAAMgiE,WAAWW,OAAOj5D,gBAElC,QAAC,MAAE1J,GAAH,SAAeA,EAAMgiE,WAAWW,OAAOl9D,UACrD,QAAC,MAAEzF,GAAH,SAAeA,EAAMgiE,WAAWW,OAAOvhE,QAC9B,QAAC,MAAEpB,GAAH,SAAeA,EAAMgiE,WAAWK,iBAE1C,QAAC,MAAEriE,GAAH,SAAeA,EAAMgiE,WAAWW,OAAOxhE,OACzB,QAAC,MAAEnB,GAAH,SAAeA,EAAMgiE,WAAWW,OAAO79D,QAI9DsF,IAAG4H,SAAS,OAKQ,QAAC,MAAEhS,GAAH,SAAeA,EAAMgiE,WAAWW,OAAOz5D,oBACvC,QAAC,MAAElJ,GAAH,SAAeA,EAAMgiE,WAAWW,OAAO35D,eAMvC,QAAC,MAAEhJ,GAAH,SAAeA,EAAMgiE,WAAWW,OAAOz5D,oBACvC,QAAC,MAAElJ,GAAH,SAAeA,EAAMgiE,WAAWW,OAAO35D,eAKlD0H,EAAcT,UAAOmM,KAAV,uSACpBzL,YAAI,GAAI,KAKA,QAAC,MAAE3Q,GAAH,SAAeA,EAAMgiE,WAAWW,OAAOJ,WAG/CG,EACAA,GAGU,QAAC,MAAE1iE,GAAH,SAAeA,EAAMgiE,WAAWW,OAAOuqB,iBAE7C1qB,KCrFOK,UA9GyB,IAIjC,IAJkC,SACvCC,EADuC,YAEvCz1B,EAFuC,SAGvC/G,EAAW,UACP,EACJ,MAAO3tB,GAAKC,cACN4pC,EAAUC,eACTyZ,EAAS6G,GAAcluD,oBAAS,GAEjCykB,EAAWlF,eACX,OAAEoF,EAAF,SAAUrF,GAAamF,GAAY,GAEnC0pC,EADe,IAAIzpC,gBAAgBC,GACCxe,IAAI,SACvCioD,EAAYC,GAAiBruD,mBAASmuD,GAAwB,IAEhE31B,IACHA,EAAc10B,EAAE,4BAyClB,OANAxD,qBAAU,KACJgf,IAAagvC,YAAe,KAC9BD,EAAc,MAEf,CAAC/uC,IAGF,kBAAC4tC,EAAD,CACEnrD,GAAG,cACHiT,OAAO,IACPvQ,KAAK,SACL3C,UAAS,sBAAkBulD,GAAW+G,EAAc,kBAAoB,IACxE38B,SA9BkBxlC,IASH,IAAD,KARZA,GACFA,EAAEo1B,iBAGAoQ,GACFA,IAGE28B,IACFzgB,EAAQ5/C,KAAKugE,YACX,CAAEC,KAAMH,EAAYI,KAAM,IAE1B,CAAEC,KAAI,UAAG9tD,cAAS,UAAIhV,gBAAJ,aAAI,EAAUiY,cAA1B,QAAoC,OAmB5C,kBAACwpD,EAAD,KACE,kBAACgrB,EAAD,KACE,kBAACE,EAAA,QAAD,OAEF,kBAAChrB,EAAD,CACEtrD,IAAKisD,EACL3sD,KAAK,SACLk3B,YAAaA,EACbJ,SAAWnsC,IACToiE,EAAcpiE,EAAEsV,OAAOgD,QAEzBi+B,QAAS,IAAM0rB,GAAW,GAC1B9F,OAAQ,IAAM8F,GAAW,GACzB3F,UA3Det8D,IArBD,KAsBhBA,EAAE2yC,SACJyvB,EAAc,KA0DV,aAAW,SACX9pD,MAAO6pD,IAERA,GACC,kBAACb,EAAD,CACEjsD,KAAK,SACL2D,QA5DgBhZ,IACpBA,GACFA,EAAEo1B,iBAGJgtC,EAAc,KAwDN,aAAW,gBAEX,kBAACZ,EAAD,KACE,kBAAClqD,EAAA,QAAD,CAAM2B,YAAY,EAAM1B,KAAK,aAKrC,kBAACqqD,EAAD,CACEvsD,KAAK,SACLkhC,QAAS,IAAM0rB,GAAW,GAC1B9F,OAAQ,IAAM8F,GAAW,IAEzB,kBAAC7/C,EAAA,EAAD,KACGvK,EAAE,0CAEL,kBAACjI,EAAD,KACE,kBAACy8E,EAAA,QAAD,W,iCCrIV,6CAEO,MAAMC,EAAgB,CAC3BC,SAAU,CACRj0E,MAAO,mCACPk0E,QAAS,GACTxiE,aAAc,KACdyiE,UAAW,cAEbC,SAAU,CACRp0E,MAAO,kCACPk0E,QAAS,CAAE78E,GAAI,GAAI1G,GAAI,GACvB+gB,aAAc,KACd2iE,qBAAqB,EACrBF,UAAW,cAEbG,SAAU,CACRt0E,MAAO,4BACPk0E,QAAS,CAAE78E,GAAI,GAAI1G,GAAI,EAAGsf,GAAI,GAC9ByB,aAAc,KACd2iE,qBAAqB,EACrBF,UAAW,cAEbI,SAAU,CACRv0E,MAAO,8BACPk0E,QAAS,CAAE78E,GAAI,EAAG1G,GAAI,GACtB+gB,aAAc,KACdyiE,UAAW,WAIA,KACbjkE,aAAc7e,IAAOgI,IAAInG,cACzBsL,KAAM,CACJhP,MAAO6B,IAAOsH,KAAKM,W,iCClCvB,wFAGO,MAAMu7E,EAA8BC,IACzC,MAAMC,EAAsC,iBAAbD,EAC3BA,EACAjrE,OAAO2E,KAAKsmE,GAAUvtD,QAAO,CAACytD,EAAKtsF,IAASssF,EAAMF,EAASpsF,GAAOssF,EAAMF,EAASpsF,IAAO,IAE5F,OAAwB,IAApBqsF,EACK,CAACtwE,IAAU0Q,OAAQ1Q,IAAUg0C,OAAQh0C,IAAUi0C,QACzB,IAApBq8B,EACF,CAACtwE,IAAU0Q,OAAQ1Q,IAAUg0C,QAG/B,CAACh0C,IAAU0Q,OAAQ1Q,IAAUg0C,OAAQh0C,IAAUwwE,SAG3Cx9D,EAAuB,WAAkF,IAAjF1rB,EAAgF,uDAA7D0Y,IAAU0Q,OAAQ+/D,EAA2C,uDAA3Bx9D,IAAWy9D,YACnG,MAAMC,EAAgB3wE,IAAU0Q,OAC1BkgE,EAAgB39D,IAAWy9D,YAE5BtrE,OAAOC,OAAOrF,KAAWtC,SAASpW,IACpC8d,OAAOC,OAAO4N,KAAYvV,SAAS+yE,IACpCx4D,YAAU,iCAAD,OAAkCH,KAAKC,UAAU,CAAEzwB,QAAOmpF,YAGrE,MAAMI,EAAazrE,OAAOC,OAAOrF,KAAWtC,SAASpW,GAASA,EAAQqpF,EAChEG,EAAoB1rE,OAAOC,OAAO4N,KAAYvV,SAAS+yE,GAASA,EAAQG,EAC9E,MAAO,CACLtpF,MAAOupF,EACP5oF,OAAQQ,KAAKsoF,MAAMF,EAAaC,M,+GC9B7B,MAAME,EAAgCC,IAA4B,IAAD,IACtE,IAAKA,EACH,OAGF,MAAMC,GAAmB,UAAAluF,SAASsnB,cAAc,2BAAvB,eAA4ChkB,wBAAwB2B,SAAU,GACjG40D,GAAmB,UAAA75D,SAAS8kB,eAAe,sBAAxB,eAAwCxhB,wBAAwB2B,SAAU,GAC7FkpF,EAAsBt0B,GAAoBq0B,EAAmBr0B,EAAmBq0B,EAAmBr0B,EAIzEv5D,MAAmBA,OAAnBA,EACT2tF,IAD4B3tF,EAAGm+E,aAAa,QAAhB,6BAA+C0P,EAA/C,Q,sDCH9C,MAAMC,EAAU3+E,UAAO4+E,WAAV,qFACT,QAAC,MAAE7uF,GAAH,SAAeA,EAAM8uF,gBAAgBC,kBAAkBC,gBAKrDz7E,EAAYtD,UAAOC,IAAV,wGAST6f,EAAQ9f,kBAAOgM,IAAPhM,CAAH,kJASLg/E,EAAch/E,UAAOgd,OAAV,kWACpBrP,KAGAxT,YAAG,OAoBMsG,EAAcT,UAAOmM,KAAV,8H,6CCKT8yE,MA3C6B,IAKrC,IAAD,UALuC,QAC3CC,EAD2C,MAE3CzyE,EAF2C,UAG3C6wE,EAH2C,SAI3Cl5E,GACI,EACJ,OACE,kBAAC46E,EAAD,CACEt4E,UAAWy6D,IAAW,CAAE,CAACmc,GAAYA,EAAWl5E,cAGhD,kBAAC,EAAD,CACEsC,UAAU,WACV8C,MACEpF,EACIqI,EACA,CACAtD,MAAO,CACLgE,IAAKV,SAAF,UAAEA,EAAOtD,aAAT,aAAE,EAAcgE,IACnBE,IAAKZ,SAAF,UAAEA,EAAOtD,aAAT,aAAE,EAAckE,IACnB,cAAeC,YAAab,SAAD,UAACA,EAAOtD,aAAR,aAAC,EAAcgE,IAAK,CAC7CI,IAAU0Q,OACV1Q,IAAUi0C,WAKpB3sD,MAAO0Y,IAAU0Q,OACjBzoB,OAAQ+X,IAAU0Q,SAEnBihE,GACC,kBAACP,EAAD,KACE,kBAACl+E,EAAD,KACE,kBAAC0H,EAAA,QAAD,CAAMC,KAAK,kBAEZ82E,KCxBX,MAEMh+B,EAAc,CAAC3O,EAAS1hD,KAC5B,IAAK0U,YACH,OAEF,MAAM,OAAEY,GAAWtV,EAEnB,GAAqC,MAAjCsV,EAAOwmE,QAAQvxD,cAAuB,CAExC,MAAMgpD,EAAQj+D,EAAO+L,KAAKkyD,MAAM,8DAC1B+a,EACiB,iBAAb/a,EAAM,IACZA,EAAM,GAAGztE,OAAS,GAClBytE,EAAM,GAAGhpD,gBAAkBhrB,OAAOi5B,SAAS2hD,UACxB,iBAAb5G,EAAM,IACZA,EAAM,GAAGztE,OAAS,GAClBytE,EAAM,GAAG7oE,QACP,IAAIgtB,OAAJ,YAAgB,CAAE,QAAS,GAAI,SAAU,KAAMn4B,OAAOi5B,SAAS2hD,UAA/D,QACA,MACI56E,OAAOi5B,SAAS11B,MAA4C,YAAnCwS,aAAA,EAAAA,EAAQ2nE,aAAa,WAClDsR,EAAavuF,EAAEsV,OAAO+d,SAASogD,WAAW,aAEhD,GAAwB,MAApBn+D,EAAO+d,WAAqBi7D,IAAeC,EAAY,CAGzD,GAFAvuF,EAAEo1B,iBAEE9f,EAAO+/D,KAAM,CAEf,MAAMmZ,EAAgB9uF,SAAS8kB,eAAelP,EAAO+/D,KAAK3qE,QAAQ,IAAK,KACvEgjF,EAA6Bc,GAG7B,IACE,MAAM9f,EAAcnvE,OAAOi5B,SAASnF,SAC9Bo7D,EAAclvF,OAAOi5B,SAAS68C,KAEpC,GACE//D,EAAO+d,SAAS9I,gBAAkBmkD,EAAYnkD,eAC9CjV,EAAO+/D,KAAK9qD,gBAAkBkkE,EAAYlkE,cAC1C,CAEA,MAAMzU,EAAKR,EAAO+/D,KAAK3qE,QAAQ,IAAK,IAC9BgkD,EAAUhvD,SAAS8kB,eAAe1O,GACxC,GAAI44C,EAKF,YAJAA,EAAQtpC,eAAe,CACrBkc,SAAU,YAMhB,MAAO5M,GACP0L,YAAW1L,IAGfgtB,EAAQ5/C,KAAKwT,EAAO+d,UAAY/d,EAAO+/D,KAAO//D,EAAO+/D,KAAO,QAK5DqZ,EAAoBx7E,YAAQutE,IAARvtE,CAAA,OAkFXA,sBAAQmP,IAAYjP,IAApBF,EAhFyC,IAQjD,IAAD,gBARmD,MACvDyF,EADuD,OAEvDzC,EAFuD,QAGvDwrC,EAHuD,UAIvD7rC,EAAY,GAJ2C,SAKvDtC,EALuD,UAMvDyC,EANuD,qBAOvD24E,GAAuB,GACnB,EACJ,MAAMC,OAAiC,IAAVj2E,EAAwBzC,aAA/B,EAA+BA,EAAQgN,KAAOvK,EAC9DjF,EAAMsC,aAAH,EAAGA,EAAWtC,IAGjB8D,EAActB,aAAH,EAAGA,EAAQsB,YACtB6R,EAAUnT,aAAH,EAAGA,EAAQmT,QAClBW,GAAehU,SAAA,UAAAA,EAAW2T,cAAX,eAAmBK,eAAgB,KAIxD,IAAK4kE,EACH,OAAIr7E,EAEA,kBAACm7E,EAAD,CACE7N,eAAe,EACfC,cAAa,uCAIZ,KAGT,MAAM+N,EAAsB,IACvBD,EAAet2E,OA9FKrH,EA8FoB29E,EAAct2E,MA9FTrH,EAAKvG,QAAQ,iCAAkC,qEAAxEuG,MAkGzBoD,qBAAU,KC7HoBs5E,KAC9B,IAAKjuF,SAAS84B,SAAS68C,KACrB,OAGF,MAAMyZ,EAAkBpvF,SAAS84B,SAAS68C,KAAK3qE,QAAQ,IAAK,IACtDqkF,EAAepB,GAAYjuF,SAAS8kB,eAAesqE,GAErDC,IAEFrB,EAA6BqB,GAC7BzrE,YAAW,KACTyrE,EAAa3pE,eAAe,CAC1Bkc,SAAU,aAEX,OD+GH0tD,KACC,IAEH,MAAMpzE,EAAQ1F,aAAH,EAAGA,EAAQ0F,MAChB8uD,EAAWx0D,SAAH,UAAGA,EAAQ0F,aAAX,iBAAG,EAAetD,aAAlB,aAAG,EAAsBgE,IACjC+xE,EAAUn4E,SAAH,UAAGA,EAAQm4E,eAAX,aAAG,EAAiB/1E,MAC3Bm0E,EAAS,UAAGv2E,SAAH,UAAGA,EAAQu2E,iBAAX,aAAG,EAAmBn0E,aAAtB,QAA+B,OACxC6yD,EAAgBn1D,aAAH,EAAGA,EAAWm1D,cAEjC,OACE,kBAAC14D,EAAD,CACEoD,UAAS,4BAAuBA,GAChCs1D,cAAeA,EACf,oBACAr1D,GAAIpC,IAEF2V,GAAW7R,IACX,kBAAC,IAAD,KACE,kBAACoT,EAAA,EAAD,CACEC,aAAcxB,EACdW,aAAcA,EACd45D,iBAAkBpsE,KAKvBkzD,GACC,kBAAC,EAAD,CACEn3D,SAAUA,EACVk5E,UAAWA,EACX4B,QAASA,EACTzyE,MAAOA,IAGX,kBAACqzE,EAAA,EAAD,CACEt2E,MAAOk2E,EACP71E,QAASq3C,EAAY9pC,KAAK,KAAMm7B,GAChCitC,qBAAsBA,S,gCErKvB,IAAKjyE,EAkBAm0C,EAaAlhC,EA/BZ,sG,SAAYjT,O,kBAAAA,I,qBAAAA,I,qBAAAA,I,qBAAAA,I,qBAAAA,I,qBAAAA,I,qBAAAA,I,qBAAAA,I,qBAAAA,I,qBAAAA,I,qBAAAA,I,wBAAAA,I,wBAAAA,I,yBAAAA,M,cAkBAm0C,O,oBAAAA,I,qBAAAA,I,qBAAAA,I,qBAAAA,I,qBAAAA,I,qBAAAA,I,qBAAAA,I,uBAAAA,I,uBAAAA,I,wBAAAA,M,cAaAlhC,O,2BAAAA,I,2BAAAA,I,2CAAAA,I,2BAAAA,I,6BAAAA,I,6BAAAA,I,4CAAAA,I,6BAAAA,I,8CAAAA,I,gDAAAA,M,uCC/BZ,6CAKO,MAAM28D,EAAoD,CAC/D,UAAW,CACTE,QAAS,GACTxiE,aAAc,KACdyiE,UAAW,cAEb,UAAW,CACTD,QAAS,CAAE78E,GAAI,GAAI1G,GAAI,EAAGsf,GAAI,GAC9ByB,aAAc,KACdyiE,UAAW,cAEb,UAAW,CACTD,QAAS,CAAE78E,GAAI,GAAI1G,GAAI,EAAGsf,GAAI,GAC9ByB,aAAc,KACdyiE,UAAW,cAEb,UAAW,CACTD,QAAS,CAAE78E,GAAI,GAAI1G,GAAI,EAAGsf,GAAI,GAC9ByB,aAAc,KACdyiE,UAAW,eAIA,KACbjkE,aAAc7e,IAAOgI,IAAInG,cACzBsL,KAAM,CACJhP,MAAO6B,IAAOsH,KAAKM,W,oEC/BhB,MAAM29E,EAAgB,CAC7B,oBACA,qBACA,cACA,yBACA,kBACA,iBACA,qBACA,oBACA,WACA,MACA,WACA,uBACA,QACA,YACA,eACA,YACA,aACA,iBACA,kBACA,gBACA,gBACA,aACA,cACA,eACA,UACA,eACA,aACA,iBACA,kBACA,uBACA,aACA,eACA,cACA,eACA,YACA,OACA,eACA,SACA,eACA,OACA,kBACA,YACA,eACA,QACA,kBACA,SACA,OACA,YACA,iBACA,OACA,WACA,SACA,cACA,OACA,eACA,QACA,eACA,gBACA,qBACA,QACA,QACA,QACA,iBACA,iBACA,eACA,QACA,eACA,UACA,eACA,eACA,kBACA,cACA,YACA,cACA,cACA,YACA,iBACA,SACA,cACA,kBACA,cACA,MACA,iBACA,SACA,OACA,cACA,gBACA,WACA,SACA,MACA,OACA,UACA,QACA,eACA,gBACA,eACA,gBACA,gBACA,cACA,kBACA,aACA,aACA,cACA,cACA,UACA,aACA,kBACA,kBACA,WACA,aACA,eACA,cACA,OACA,cACA,iBACA,gBACA,SACA,mBACA,QACA,iBACA,QACA,UACA,cACA,QACA,SACA,cACA,mBACA,UACA,cACA,eACA,gBACA,UACA,YACA,OACA,kBACA,aACA,cACA,cACA,OACA,QACA,oBACA,WACA,QACA,WACA,aACA,cACA,YACA,OACA,OACA,iBACA,gBACA,gBACA,cACA,YACA,OACA,QACA,OACA,UACA,OACA,MACA,mBACA,YACA,eACA,YACA,OACA,WACA,UACA,gBACA,yBACA,OACA,aACA,YACA,QACA,YACA,gBACA,UACA,eACA,cACA,sBACA,cACA,qBACA,oBACA,cACA,WACA,QACA,UACA,kBACA,UACA,SACA,gBACA,aACA,mBACA,iBACA,oBACA,gBACA,gBACA,iBACA,eACA,YACA,eACA,YACA,QACA,aACA,OACA,qBACA,QACA,cACA,aACA,SACA,WACA,kBACA,cACA,oBACA,SACA,UACA,SACA,eACA,gBACA,OACA,UACA,WACA,OACA,WACA,SACA,SACA,WACA,sBACA,oBACA,kBACA,WACA,QACA,eACA,gBACA,aACA,MACA,SACA,MACA,SACA,QACA,gBACA,aACA,2BACA,yBACA,qBACA,gBACA,UACA,aACA,yBACA,YACA,uBACA,OACA,aACA,aACA,aACA,WACA,iBACA,WACA,MACA,gBACA,QACA,YACA,gBACA,gBACA,cACA,OACA,gBACA,SACA,gBACA,WACA,iBACA,YACA,iBACA,aACA,iBACA,aACA,YACA,WACA,gBACA,WACA,OACA,eACA,UACA,YAGaC,EAAc,CACzB,QACA,WACA,OACA,QACA,YACA,YACA,QACA,MACA,SACA,QACA,UACA,UACA,SACA,OACA,UACA,OC7RI73E,EAA4By8B,IAAMq7C,MAAK,IAGtC,IAHuC,KAC5C73E,KACG+C,GACC,EACJ,IAAK/C,EACH,OAAO,KAET,MAAM83E,EAAgB93E,EAChB+3E,EAA6BD,EAlBxB9kE,cAAc7f,QAAQ,2BAA2B,CAAC6kF,EAAGC,IAAQA,EAAI95D,gBAmB5E,MAAM+5D,EAAeN,EAAY/0E,SAASi1E,GAG1C,IAFuBH,EAAc90E,SAASi1E,KAEtBI,EAEtB,OADAznE,QAAQ6d,KAAR,WAAiBwpD,EAAjB,gCACO,KAGT,MAAMK,EAAaD,EAAe,SAAW,WAEvCn4E,EAAOq8C,aAAe,IACxB,mBAEuB+7B,EAFvB,YAEqCJ,MAGzC,OAAOh4E,GAAQ,kBAACA,EAASgD,MAGZhD,a,ipYC7Cf,mCAOeizE,4BAAQ,GAAI,GAAZA,EAJE,IACf,0BAAMzvE,EAAE,07B,iCCJV,mCAOeyvE,4BAAQ,GAAI,GAAZA,EAJC,IACd,0BAAMzvE,EAAE,o0C,iC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IC9mG,EAAU,CACnBuc,WAAW,mEACXD,WAAW,mEACXrc,YAAY,oEACZ8mG,YAAY,wE,oBClBhB,IAAI3xG,EAAM,CACT,KAAM,CACL,IAED,UAAW,CACV,KAED,cAAe,CACd,KAED,aAAc,CACb,KAED,iBAAkB,CACjB,KAED,WAAY,CACX,KAED,eAAgB,CACf,KAED,aAAc,CACb,KAED,iBAAkB,CACjB,KAED,YAAa,CACZ,KAED,gBAAiB,CAChB,KAED,gBAAiB,CAChB,KAED,oBAAqB,CACpB,KAED,SAAU,CACT,KAED,aAAc,CACb,KAED,UAAW,CACV,KAED,cAAe,CACd,KAED,eAAgB,CACf,KAED,mBAAoB,CACnB,KAED,aAAc,CACb,KAED,iBAAkB,CACjB,KAED,eAAgB,CACf,IACA,GAED,mBAAoB,CACnB,IACA,GAED,aAAc,CACb,KAED,iBAAkB,CACjB,KAED,YAAa,CACZ,KAED,gBAAiB,CAChB,KAED,eAAgB,CACf,KAED,mBAAoB,CACnB,KAED,eAAgB,CACf,KAED,mBAAoB,CACnB,KAED,aAAc,CACb,IACA,KAED,iBAAkB,CACjB,IACA,KAED,WAAY,CACX,KAED,eAAgB,CACf,KAED,SAAU,CACT,KAED,aAAc,CACb,KAED,YAAa,CACZ,KAED,gBAAiB,CAChB,KAED,SAAU,CACT,KAED,aAAc,CACb,KAED,WAAY,CACX,KAED,eAAgB,CACf,KAED,UAAW,CACV,KAED,cAAe,CACd,KAED,QAAS,CACR,KAED,YAAa,CACZ,KAED,cAAe,CACd,KAED,kBAAmB,CAClB,KAED,WAAY,CACX,KAED,eAAgB,CACf,KAED,gBAAiB,CAChB,KAED,oBAAqB,CACpB,KAED,SAAU,CACT,KAED,aAAc,CACb,KAED,QAAS,CACR,IAED,YAAa,CACZ,IAED,QAAS,CACR,KAED,YAAa,CACZ,KAED,SAAU,CACT,IACA,GAED,aAAc,CACb,IACA,GAED,SAAU,CACT,KAED,aAAc,CACb,KAED,YAAa,CACZ,KAED,gBAAiB,CAChB,KAED,kBAAmB,CAClB,KAED,sBAAuB,CACtB,KAED,iBAAkB,CACjB,IACA,GAED,qBAAsB,CACrB,IACA,GAED,oBAAqB,CACpB,IACA,GAED,wBAAyB,CACxB,IACA,GAED,gBAAiB,CAChB,IACA,GAED,oBAAqB,CACpB,IACA,GAED,iBAAkB,CACjB,IACA,GAED,qBAAsB,CACrB,IACA,GAED,qBAAsB,CACrB,IACA,GAED,yBAA0B,CACzB,IACA,GAED,oBAAqB,CACpB,IACA,GAED,wBAAyB,CACxB,IACA,GAED,iBAAkB,CACjB,IACA,GAED,qBAAsB,CACrB,IACA,GAED,eAAgB,CACf,IACA,GAED,mBAAoB,CACnB,IACA,GAED,mBAAoB,CACnB,IACA,IAED,uBAAwB,CACvB,IACA,IAED,kBAAmB,CAClB,IACA,IAED,sBAAuB,CACtB,IACA,IAED,mBAAoB,CACnB,IACA,IAED,uBAAwB,CACvB,IACA,IAED,kBAAmB,CAClB,IACA,IAED,sBAAuB,CACtB,IACA,IAED,iBAAkB,CACjB,IACA,IAED,qBAAsB,CACrB,IACA,IAED,gBAAiB,CAChB,IACA,IAED,oBAAqB,CACpB,IACA,IAED,mBAAoB,CACnB,IACA,IAED,uBAAwB,CACvB,IACA,IAED,eAAgB,CACf,IACA,IAED,mBAAoB,CACnB,IACA,IAED,UAAW,CACV,IAED,aAAc,CACb,IAED,wBAAyB,CACxB,IACA,IAED,4BAA6B,CAC5B,IACA,IAED,8BAA+B,CAC9B,IACA,IAED,kCAAmC,CAClC,IACA,IAED,+BAAgC,CAC/B,IACA,IAED,mCAAoC,CACnC,IACA,IAED,4BAA6B,CAC5B,IACA,IAED,gCAAiC,CAChC,IACA,IAED,kCAAmC,CAClC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,2BAA4B,CAC3B,IACA,IAED,+BAAgC,CAC/B,IACA,IAED,iBAAkB,CACjB,IACA,IAED,qBAAsB,CACrB,IACA,IAED,8BAA+B,CAC9B,IACA,IAED,kCAAmC,CAClC,IACA,IAED,6BAA8B,CAC7B,IACA,IAED,iCAAkC,CACjC,IACA,IAED,qBAAsB,CACrB,IACA,IAED,yBAA0B,CACzB,IACA,IAED,sBAAuB,CACtB,IACA,IAED,0BAA2B,CAC1B,IACA,IAED,gCAAiC,CAChC,IACA,IAED,oCAAqC,CACpC,IACA,IAED,mBAAoB,CACnB,IACA,IAED,uBAAwB,CACvB,IACA,IAED,uBAAwB,CACvB,IACA,IAED,2BAA4B,CAC3B,IACA,IAED,0BAA2B,CAC1B,IACA,IAED,8BAA+B,CAC9B,IACA,IAED,uBAAwB,CACvB,IACA,IAED,2BAA4B,CAC3B,IACA,IAED,kBAAmB,CAClB,IACA,IAED,sBAAuB,CACtB,IACA,IAED,uBAAwB,CACvB,IACA,IAED,2BAA4B,CAC3B,IACA,IAED,2BAA4B,CAC3B,IACA,IAED,+BAAgC,CAC/B,IACA,IAED,2BAA4B,CAC3B,IACA,IAED,+BAAgC,CAC/B,IACA,IAED,yBAA0B,CACzB,IACA,IAED,6BAA8B,CAC7B,IACA,IAED,0BAA2B,CAC1B,IACA,IAED,8BAA+B,CAC9B,IACA,IAED,uBAAwB,CACvB,IACA,IAED,2BAA4B,CAC3B,IACA,IAED,wBAAyB,CACxB,IACA,IAED,4BAA6B,CAC5B,IACA,IAED,yBAA0B,CACzB,IACA,IAED,6BAA8B,CAC7B,IACA,IAED,qBAAsB,CACrB,IACA,IAED,yBAA0B,CACzB,IACA,IAED,yBAA0B,CACzB,IACA,IAED,6BAA8B,CAC7B,IACA,IAED,wBAAyB,CACxB,IACA,IAED,4BAA6B,CAC5B,IACA,IAED,wBAAyB,CACxB,IACA,IAED,4BAA6B,CAC5B,IACA,IAED,2BAA4B,CAC3B,IACA,IAED,+BAAgC,CAC/B,IACA,IAED,4BAA6B,CAC5B,IACA,IAED,gCAAiC,CAChC,IACA,IAED,gCAAiC,CAChC,IACA,IAED,oCAAqC,CACpC,IACA,IAED,yBAA0B,CACzB,IACA,IAED,6BAA8B,CAC7B,IACA,IAED,wBAAyB,CACxB,IACA,IAED,4BAA6B,CAC5B,IACA,IAED,yBAA0B,CACzB,IACA,IAED,6BAA8B,CAC7B,IACA,IAED,uBAAwB,CACvB,IACA,IAED,2BAA4B,CAC3B,IACA,IAED,oBAAqB,CACpB,IACA,IAED,wBAAyB,CACxB,IACA,IAED,yBAA0B,CACzB,IACA,IAED,6BAA8B,CAC7B,IACA,IAED,yBAA0B,CACzB,IACA,IAED,6BAA8B,CAC7B,IACA,IAED,kBAAmB,CAClB,IACA,IAED,sBAAuB,CACtB,IACA,IAED,4BAA6B,CAC5B,IACA,IAED,gCAAiC,CAChC,IACA,IAED,uBAAwB,CACvB,IACA,IAED,2BAA4B,CAC3B,IACA,IAED,mBAAoB,CACnB,IACA,IAED,uBAAwB,CACvB,IACA,IAED,yBAA0B,CACzB,IACA,IAED,6BAA8B,CAC7B,IACA,IAED,4BAA6B,CAC5B,IACA,IAED,gCAAiC,CAChC,IACA,IAED,oBAAqB,CACpB,IACA,IAED,wBAAyB,CACxB,IACA,IAED,kBAAmB,CAClB,IACA,IAED,sBAAuB,CACtB,IACA,IAED,uBAAwB,CACvB,IACA,IAED,2BAA4B,CAC3B,IACA,IAED,2BAA4B,CAC3B,IACA,IAED,+BAAgC,CAC/B,IACA,IAED,kBAAmB,CAClB,IACA,IAED,sBAAuB,CACtB,IACA,IAED,sBAAuB,CACtB,IACA,IAED,0BAA2B,CAC1B,IACA,IAED,oBAAqB,CACpB,IACA,IAED,wBAAyB,CACxB,IACA,IAED,wBAAyB,CACxB,IACA,IAED,4BAA6B,CAC5B,IACA,IAED,kBAAmB,CAClB,IACA,IAED,sBAAuB,CACtB,IACA,IAED,mBAAoB,CACnB,IACA,IAED,uBAAwB,CACvB,IACA,IAED,yBAA0B,CACzB,IACA,IAED,6BAA8B,CAC7B,IACA,IAED,yBAA0B,CACzB,IACA,IAED,6BAA8B,CAC7B,IACA,IAED,0BAA2B,CAC1B,IACA,IAED,8BAA+B,CAC9B,IACA,IAED,8BAA+B,CAC9B,IACA,IAED,kCAAmC,CAClC,IACA,IAED,mBAAoB,CACnB,IACA,IAED,uBAAwB,CACvB,IACA,IAED,mBAAoB,CACnB,IACA,IAED,uBAAwB,CACvB,IACA,IAED,mBAAoB,CACnB,IACA,IAED,uBAAwB,CACvB,IACA,IAED,2BAA4B,CAC3B,IACA,IAED,+BAAgC,CAC/B,IACA,IAED,mBAAoB,CACnB,IACA,IAED,uBAAwB,CACvB,IACA,IAED,2BAA4B,CAC3B,IACA,IAED,+BAAgC,CAC/B,IACA,IAED,yBAA0B,CACzB,IACA,IAED,6BAA8B,CAC7B,IACA,IAED,yBAA0B,CACzB,IACA,IAED,6BAA8B,CAC7B,IACA,IAED,qBAAsB,CACrB,IACA,IAED,yBAA0B,CACzB,IACA,IAED,0BAA2B,CAC1B,IACA,IAED,8BAA+B,CAC9B,IACA,IAED,yBAA0B,CACzB,IACA,IAED,6BAA8B,CAC7B,IACA,IAED,4BAA6B,CAC5B,IACA,IAED,gCAAiC,CAChC,IACA,IAED,yBAA0B,CACzB,IACA,IAED,6BAA8B,CAC7B,IACA,IAED,uBAAwB,CACvB,IACA,IAED,2BAA4B,CAC3B,IACA,IAED,yBAA0B,CACzB,IACA,IAED,6BAA8B,CAC7B,IACA,IAED,wBAAyB,CACxB,IACA,IAED,4BAA6B,CAC5B,IACA,IAED,uBAAwB,CACvB,IACA,IAED,2BAA4B,CAC3B,IACA,IAED,oBAAqB,CACpB,IACA,IAED,wBAAyB,CACxB,IACA,IAED,2BAA4B,CAC3B,IACA,IAED,+BAAgC,CAC/B,IACA,IAED,yBAA0B,CACzB,IACA,IAED,6BAA8B,CAC7B,IACA,IAED,4BAA6B,CAC5B,IACA,IAED,gCAAiC,CAChC,IACA,IAED,wBAAyB,CACxB,IACA,IAED,4BAA6B,CAC5B,IACA,IAED,iBAAkB,CACjB,IACA,IAED,qBAAsB,CACrB,IACA,IAED,0BAA2B,CAC1B,IACA,KAED,8BAA+B,CAC9B,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,4BAA6B,CAC5B,IACA,KAED,sBAAuB,CACtB,IACA,KAED,0BAA2B,CAC1B,IACA,KAED,0BAA2B,CAC1B,IACA,KAED,8BAA+B,CAC9B,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,iBAAkB,CACjB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,yBAA0B,CACzB,IACA,KAED,mBAAoB,CACnB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,yBAA0B,CACzB,IACA,KAED,6BAA8B,CAC7B,IACA,KAED,0BAA2B,CAC1B,IACA,KAED,8BAA+B,CAC9B,IACA,KAED,yBAA0B,CACzB,IACA,KAED,6BAA8B,CAC7B,IACA,KAED,0BAA2B,CAC1B,IACA,KAED,8BAA+B,CAC9B,IACA,KAED,0BAA2B,CAC1B,IACA,KAED,8BAA+B,CAC9B,IACA,KAED,wBAAyB,CACxB,IACA,KAED,4BAA6B,CAC5B,IACA,KAED,4BAA6B,CAC5B,IACA,KAED,gCAAiC,CAChC,IACA,KAED,uBAAwB,CACvB,IACA,KAED,2BAA4B,CAC3B,IACA,KAED,uBAAwB,CACvB,IACA,KAED,2BAA4B,CAC3B,IACA,KAED,wBAAyB,CACxB,IACA,KAED,4BAA6B,CAC5B,IACA,KAED,wBAAyB,CACxB,IACA,KAED,4BAA6B,CAC5B,IACA,KAED,qBAAsB,CACrB,IACA,KAED,yBAA0B,CACzB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,2BAA4B,CAC3B,IACA,KAED,4BAA6B,CAC5B,IACA,KAED,gCAAiC,CAChC,IACA,KAED,4BAA6B,CAC5B,IACA,KAED,gCAAiC,CAChC,IACA,KAED,sBAAuB,CACtB,IACA,KAED,0BAA2B,CAC1B,IACA,KAED,uBAAwB,CACvB,IACA,KAED,2BAA4B,CAC3B,IACA,KAED,wBAAyB,CACxB,IACA,KAED,4BAA6B,CAC5B,IACA,KAED,yBAA0B,CACzB,IACA,KAED,6BAA8B,CAC7B,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,4BAA6B,CAC5B,IACA,KAED,2BAA4B,CAC3B,IACA,KAED,+BAAgC,CAC/B,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,0BAA2B,CAC1B,IACA,KAED,8BAA+B,CAC9B,IACA,KAED,4BAA6B,CAC5B,IACA,KAED,gCAAiC,CAChC,IACA,KAED,mBAAoB,CACnB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,2BAA4B,CAC3B,IACA,KAED,+BAAgC,CAC/B,IACA,KAED,mBAAoB,CACnB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,4BAA6B,CAC5B,IACA,KAED,mBAAoB,CACnB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,4BAA6B,CAC5B,IACA,KAED,qBAAsB,CACrB,IACA,KAED,yBAA0B,CACzB,IACA,KAED,6BAA8B,CAC7B,IACA,KAED,iCAAkC,CACjC,IACA,KAED,wBAAyB,CACxB,IACA,KAED,4BAA6B,CAC5B,IACA,KAED,yBAA0B,CACzB,IACA,KAED,6BAA8B,CAC7B,IACA,KAED,0BAA2B,CAC1B,IACA,KAED,8BAA+B,CAC9B,IACA,KAED,qBAAsB,CACrB,IACA,KAED,yBAA0B,CACzB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,4BAA6B,CAC5B,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,0BAA2B,CAC1B,IACA,KAED,4BAA6B,CAC5B,IACA,KAED,gCAAiC,CAChC,IACA,KAED,sBAAuB,CACtB,IACA,KAED,0BAA2B,CAC1B,IACA,KAED,uBAAwB,CACvB,IACA,KAED,2BAA4B,CAC3B,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,mBAAoB,CACnB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,8BAA+B,CAC9B,IACA,KAED,kCAAmC,CAClC,IACA,KAED,sBAAuB,CACtB,IACA,KAED,0BAA2B,CAC1B,IACA,KAED,mBAAoB,CACnB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,0BAA2B,CAC1B,IACA,KAED,uBAAwB,CACvB,IACA,KAED,2BAA4B,CAC3B,IACA,KAED,yBAA0B,CACzB,IACA,KAED,6BAA8B,CAC7B,IACA,KAED,uBAAwB,CACvB,IACA,KAED,2BAA4B,CAC3B,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,2BAA4B,CAC3B,IACA,KAED,+BAAgC,CAC/B,IACA,KAED,0BAA2B,CAC1B,IACA,KAED,8BAA+B,CAC9B,IACA,KAED,0BAA2B,CAC1B,IACA,KAED,8BAA+B,CAC9B,IACA,KAED,wBAAyB,CACxB,IACA,KAED,4BAA6B,CAC5B,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,0BAA2B,CAC1B,IACA,KAED,mBAAoB,CACnB,KAED,uBAAwB,CACvB,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,yBAA0B,CACzB,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,iBAAkB,CACjB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,4BAA6B,CAC5B,IACA,KAED,gCAAiC,CAChC,IACA,KAED,uBAAwB,CACvB,IACA,KAED,2BAA4B,CAC3B,IACA,KAED,yBAA0B,CACzB,IACA,KAED,6BAA8B,CAC7B,IACA,KAED,kBAAmB,CAClB,KAED,sBAAuB,CACtB,KAED,sBAAuB,CACtB,IACA,KAED,0BAA2B,CAC1B,IACA,KAED,qBAAsB,CACrB,IACA,KAED,yBAA0B,CACzB,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,0BAA2B,CAC1B,IACA,KAED,8BAA+B,CAC9B,IACA,KAED,mCAAoC,CACnC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,2BAA4B,CAC3B,IACA,KAED,sBAAuB,CACtB,IACA,KAED,0BAA2B,CAC1B,IACA,KAED,mBAAoB,CACnB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,0BAA2B,CAC1B,IACA,KAED,8BAA+B,CAC9B,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,0BAA2B,CAC1B,IACA,KAED,yBAA0B,CACzB,IACA,KAED,6BAA8B,CAC7B,IACA,KAED,wBAAyB,CACxB,IACA,KAED,4BAA6B,CAC5B,IACA,KAED,+BAAgC,CAC/B,IACA,KAED,mCAAoC,CACnC,IACA,KAED,wBAAyB,CACxB,IACA,KAED,4BAA6B,CAC5B,IACA,KAED,+BAAgC,CAC/B,IACA,KAED,mCAAoC,CACnC,IACA,KAED,8BAA+B,CAC9B,IACA,KAED,kCAAmC,CAClC,IACA,KAED,uBAAwB,CACvB,IACA,KAED,2BAA4B,CAC3B,IACA,KAED,qBAAsB,CACrB,IACA,KAED,yBAA0B,CACzB,IACA,KAED,mBAAoB,CACnB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,yBAA0B,CACzB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,yBAA0B,CACzB,IACA,KAED,4BAA6B,CAC5B,IACA,KAED,gCAAiC,CAChC,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,0BAA2B,CAC1B,KAED,8BAA+B,CAC9B,KAED,uBAAwB,CACvB,IACA,KAED,2BAA4B,CAC3B,IACA,KAED,2BAA4B,CAC3B,IACA,KAED,+BAAgC,CAC/B,IACA,KAED,2BAA4B,CAC3B,IACA,KAED,+BAAgC,CAC/B,IACA,KAED,6BAA8B,CAC7B,IACA,KAED,iCAAkC,CACjC,IACA,KAED,0BAA2B,CAC1B,IACA,KAED,8BAA+B,CAC9B,IACA,KAED,0BAA2B,CAC1B,IACA,KAED,8BAA+B,CAC9B,IACA,KAED,2BAA4B,CAC3B,IACA,KAED,+BAAgC,CAC/B,IACA,KAED,yBAA0B,CACzB,IACA,KAED,6BAA8B,CAC7B,IACA,KAED,uBAAwB,CACvB,IACA,KAED,2BAA4B,CAC3B,IACA,KAED,yBAA0B,CACzB,IACA,KAED,6BAA8B,CAC7B,IACA,KAED,sBAAuB,CACtB,IACA,KAED,0BAA2B,CAC1B,IACA,KAED,mBAAoB,CACnB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,2BAA4B,CAC3B,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,8BAA+B,CAC9B,IACA,KAED,kCAAmC,CAClC,IACA,KAED,mBAAoB,CACnB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,4BAA6B,CAC5B,IACA,KAED,wBAAyB,CACxB,IACA,KAED,4BAA6B,CAC5B,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,yBAA0B,CACzB,IACA,KAED,4BAA6B,CAC5B,IACA,KAED,gCAAiC,CAChC,IACA,KAED,wBAAyB,CACxB,IACA,KAED,4BAA6B,CAC5B,IACA,KAED,qBAAsB,CACrB,IACA,KAED,yBAA0B,CACzB,IACA,KAED,6BAA8B,CAC7B,IACA,KAED,iCAAkC,CACjC,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,yBAA0B,CACzB,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,yBAA0B,CACzB,IACA,KAED,6BAA8B,CAC7B,IACA,KAED,0BAA2B,CAC1B,IACA,KAED,8BAA+B,CAC9B,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,yBAA0B,CACzB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,0BAA2B,CAC1B,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,oBAAqB,CACpB,KAED,wBAAyB,CACxB,KAED,sBAAuB,CACtB,IACA,KAED,0BAA2B,CAC1B,IACA,KAED,gCAAiC,CAChC,IACA,KAED,oCAAqC,CACpC,IACA,KAED,sBAAuB,CACtB,IACA,KAED,0BAA2B,CAC1B,IACA,KAED,8BAA+B,CAC9B,IACA,KAED,kCAAmC,CAClC,IACA,KAED,4BAA6B,CAC5B,IACA,KAED,gCAAiC,CAChC,IACA,KAED,mBAAoB,CACnB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,yBAA0B,CACzB,IACA,KAED,6BAA8B,CAC7B,IACA,KAED,0BAA2B,CAC1B,IACA,KAED,8BAA+B,CAC9B,IACA,KAED,iBAAkB,CACjB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,2BAA4B,CAC3B,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,iBAAkB,CACjB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,mBAAoB,CACnB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,yBAA0B,CACzB,IACA,KAED,6BAA8B,CAC7B,IACA,KAED,wBAAyB,CACxB,IACA,KAED,4BAA6B,CAC5B,IACA,KAED,oCAAqC,CACpC,IACA,KAED,wCAAyC,CACxC,IACA,KAED,kCAAmC,CAClC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,+BAAgC,CAC/B,IACA,KAED,mCAAoC,CACnC,IACA,KAED,qBAAsB,CACrB,IACA,KAED,yBAA0B,CACzB,IACA,KAED,0BAA2B,CAC1B,IACA,KAED,8BAA+B,CAC9B,IACA,KAED,uBAAwB,CACvB,IACA,KAED,2BAA4B,CAC3B,IACA,KAED,kCAAmC,CAClC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,sBAAuB,CACtB,IACA,KAED,0BAA2B,CAC1B,IACA,KAED,gCAAiC,CAChC,IACA,KAED,oCAAqC,CACpC,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,2BAA4B,CAC3B,IACA,KAED,uBAAwB,CACvB,IACA,KAED,2BAA4B,CAC3B,IACA,KAED,uBAAwB,CACvB,IACA,KAED,2BAA4B,CAC3B,IACA,KAED,qBAAsB,CACrB,IACA,KAED,yBAA0B,CACzB,IACA,KAED,0BAA2B,CAC1B,IACA,KAED,8BAA+B,CAC9B,IACA,KAED,sBAAuB,CACtB,IACA,KAED,0BAA2B,CAC1B,IACA,KAED,iBAAkB,CACjB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,0BAA2B,CAC1B,IACA,KAED,8BAA+B,CAC9B,IACA,KAED,mBAAoB,CACnB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,2BAA4B,CAC3B,IACA,KAED,0BAA2B,CAC1B,IACA,KAED,8BAA+B,CAC9B,IACA,KAED,0BAA2B,CAC1B,IACA,KAED,8BAA+B,CAC9B,IACA,KAED,wBAAyB,CACxB,IACA,KAED,4BAA6B,CAC5B,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,yBAA0B,CACzB,IACA,KAED,6BAA8B,CAC7B,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,0BAA2B,CAC1B,IACA,KAED,0BAA2B,CAC1B,IACA,KAED,8BAA+B,CAC9B,IACA,KAED,2BAA4B,CAC3B,IACA,KAED,+BAAgC,CAC/B,IACA,KAED,sBAAuB,CACtB,IACA,KAED,0BAA2B,CAC1B,IACA,KAED,wBAAyB,CACxB,IACA,KAED,4BAA6B,CAC5B,IACA,KAED,2BAA4B,CAC3B,IACA,KAED,+BAAgC,CAC/B,IACA,KAED,0BAA2B,CAC1B,IACA,KAED,8BAA+B,CAC9B,IACA,KAED,uBAAwB,CACvB,IACA,KAED,2BAA4B,CAC3B,IACA,KAED,sBAAuB,CACtB,IACA,KAED,0BAA2B,CAC1B,IACA,KAED,qBAAsB,CACrB,IACA,KAED,yBAA0B,CACzB,IACA,KAED,0BAA2B,CAC1B,IACA,KAED,8BAA+B,CAC9B,IACA,KAED,qBAAsB,CACrB,IACA,KAED,yBAA0B,CACzB,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,yBAA0B,CACzB,IACA,KAED,6BAA8B,CAC7B,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,yBAA0B,CACzB,IACA,KAED,gBAAiB,CAChB,KAED,oBAAqB,CACpB,KAED,kBAAmB,CAClB,KAED,sBAAuB,CACtB,KAED,qBAAsB,CACrB,KAED,yBAA0B,CACzB,KAED,sBAAuB,CACtB,KAED,0BAA2B,CAC1B,KAED,2BAA4B,CAC3B,KAED,+BAAgC,CAC/B,KAED,mBAAoB,CACnB,KAED,uBAAwB,CACvB,KAED,uBAAwB,CACvB,KAED,2BAA4B,CAC3B,MAGF,SAAS4xG,EAAoBP,GAC5B,IAAIE,EAAoBC,EAAExxG,EAAKqxG,GAC9B,OAAO1yF,QAAQE,UAAUM,MAAK,WAC7B,IAAIxmB,EAAI,IAAIwB,MAAM,uBAAyBk3G,EAAM,KAEjD,MADA14G,EAAEy6B,KAAO,mBACHz6B,KAIR,IAAIk5G,EAAM7xG,EAAIqxG,GAAM5iG,EAAKojG,EAAI,GAC7B,OAAOlzF,QAAQrU,IAAIunG,EAAIv0F,MAAM,GAAGtd,IAAIuxG,EAAoB54G,IAAIwmB,MAAK,WAChE,OAAOoyF,EAAoB9iG,MAG7BmjG,EAAoBxyF,KAAO,WAC1B,OAAO3E,OAAO2E,KAAKpf,IAEpB4xG,EAAoBnjG,GAAK,IACzBw8F,EAAOC,QAAU0G,G,6OCzlFV,MAAMxmG,EAAYtD,UAAOC,IAAV,mEAKT+pG,EAAkBhqG,UAAOC,IAAV,gdAiBV,QAAC,MAAElQ,GAAH,SAAeA,EAAMssG,SAASiD,gBAAgBC,IAAIrvG,cAKhD,QAAC,MAAEH,GAAH,SAAeA,EAAMssG,SAASiD,gBAAgBE,WAAWtvG,cAMhEwvB,EAAmB1f,UAAOC,IAAV,ydAKE,QAAC,MAAElQ,GAAH,SAAeA,EAAMiI,OAAOD,OAMrDoC,YAAG,MAUHA,YAAG,MAMLA,IAAG4H,SAAS,OACV,IAAoC,IAAnC,4BAAEgrE,GAAgC,EACnC,GAAIA,EACF,MAAM,oBAMDk9B,EAAiBjqG,UAAO3F,OAAV,4XACvBA,cACA6G,KAQoB,QAAC,MAAEnR,GAAH,SAAeA,EAAMiI,OAAOI,OAAOiK,OAGvDlI,YAAG,MAWHsJ,KAGSymG,EAAelqG,UAAOmM,KAAV,sKAErB,IAAMzL,YAAI,EAAG,MAGL,QAAC,MAAE3Q,GAAH,SAAeA,EAAMssG,SAASxW,aAAarmF,kB","file":"static/js/main.1bbf7cb4.chunk.js","sourcesContent":["export default () =>\r\n `@media all and (-ms-high-contrast: none), (-ms-high-contrast: active)`;","import { css } from 'styled-components';\r\n\r\nexport default ({ theme }) => css`\r\n background-color: ${theme.section.background};\r\n`;\r\n","/*\r\n * This is a fork of the deprecated Stickyfilljs which has been modified to be compatble with SSR.\r\n * https://github.com/wilddeer/stickyfill\r\n */\r\n\r\n'use strict';\r\n\r\n/*\r\n * 1. Check if the browser supports `position: sticky` natively or is too old to run the polyfill.\r\n * If either of these is the case set `shouldNotInit` flag. It will be checked later to disable key features\r\n * of the polyfill, but the API will remain functional to avoid breaking things.\r\n */\r\nlet shouldNotInit = false;\r\n\r\nconst isWindowDefined = typeof window !== 'undefined';\r\n\r\n// The polyfill can’t function properly without `window` or `window.getComputedStyle`.\r\nif (!isWindowDefined) {\r\n shouldNotInit = true;\r\n} else {\r\n // Don’t get in a way if the browser supports `position: sticky` natively.\r\n if (!window.getComputedStyle) {\r\n shouldNotInit = true;\r\n } else {\r\n const testNode = document.createElement('div');\r\n \r\n if (\r\n ['', '-webkit-', '-moz-', '-ms-'].some((prefix) => {\r\n try {\r\n testNode.style.position = prefix + 'sticky';\r\n } catch (e) {}\r\n \r\n return testNode.style.position != '';\r\n })\r\n )\r\n shouldNotInit = true;\r\n }\r\n}\r\n\r\n/*\r\n * 2. “Global” vars used across the polyfill\r\n */\r\nlet isInitialized = false;\r\n\r\n// Check if Shadow Root constructor exists to make further checks simpler\r\nconst shadowRootExists = typeof ShadowRoot !== 'undefined';\r\n\r\n// Last saved scroll position\r\nconst scroll = {\r\n top: null,\r\n left: null,\r\n};\r\n\r\n// Array of created Sticky instances\r\nconst stickies = [];\r\n\r\n/*\r\n * 3. Utility functions\r\n */\r\nfunction extend(targetObj, sourceObject) {\r\n for (var key in sourceObject) {\r\n if (sourceObject.hasOwnProperty(key)) {\r\n targetObj[key] = sourceObject[key];\r\n }\r\n }\r\n}\r\n\r\nfunction parseNumeric(val) {\r\n return parseFloat(val) || 0;\r\n}\r\n\r\nfunction getDocOffsetTop(node) {\r\n let docOffsetTop = 0;\r\n\r\n while (node) {\r\n docOffsetTop += node.offsetTop;\r\n node = node.offsetParent;\r\n }\r\n\r\n return docOffsetTop;\r\n}\r\n\r\n/*\r\n * 4. Sticky class\r\n */\r\nclass Sticky {\r\n constructor(node) {\r\n if (!(node instanceof HTMLElement))\r\n throw new Error('First argument must be HTMLElement');\r\n if (stickies.some((sticky) => sticky._node === node))\r\n throw new Error('Stickyfill is already applied to this node');\r\n\r\n this._node = node;\r\n this._stickyMode = null;\r\n this._active = false;\r\n\r\n stickies.push(this);\r\n\r\n this.refresh();\r\n }\r\n\r\n refresh() {\r\n if (shouldNotInit || this._removed) return;\r\n if (this._active) this._deactivate();\r\n\r\n const node = this._node;\r\n\r\n /*\r\n * 1. Save node computed props\r\n */\r\n const nodeComputedStyle = getComputedStyle(node);\r\n const nodeComputedProps = {\r\n position: nodeComputedStyle.position,\r\n top: nodeComputedStyle.top,\r\n display: nodeComputedStyle.display,\r\n marginTop: nodeComputedStyle.marginTop,\r\n marginBottom: nodeComputedStyle.marginBottom,\r\n marginLeft: nodeComputedStyle.marginLeft,\r\n marginRight: nodeComputedStyle.marginRight,\r\n cssFloat: nodeComputedStyle.cssFloat,\r\n };\r\n\r\n /*\r\n * 2. Check if the node can be activated\r\n */\r\n if (\r\n isNaN(parseFloat(nodeComputedProps.top)) ||\r\n nodeComputedProps.display == 'table-cell' ||\r\n nodeComputedProps.display == 'none'\r\n )\r\n return;\r\n\r\n this._active = true;\r\n\r\n /*\r\n * 3. Check if the current node position is `sticky`. If it is, it means that the browser supports sticky positioning,\r\n * but the polyfill was force-enabled. We set the node’s position to `static` before continuing, so that the node\r\n * is in it’s initial position when we gather its params.\r\n */\r\n const originalPosition = node.style.position;\r\n if (\r\n nodeComputedStyle.position == 'sticky' ||\r\n nodeComputedStyle.position == '-webkit-sticky'\r\n )\r\n node.style.position = 'static';\r\n\r\n /*\r\n * 4. Get necessary node parameters\r\n */\r\n const referenceNode = node.parentNode;\r\n const parentNode =\r\n shadowRootExists && referenceNode instanceof ShadowRoot\r\n ? referenceNode.host\r\n : referenceNode;\r\n const nodeWinOffset = node.getBoundingClientRect();\r\n const parentWinOffset = parentNode.getBoundingClientRect();\r\n const parentComputedStyle = getComputedStyle(parentNode);\r\n\r\n this._parent = {\r\n node: parentNode,\r\n styles: {\r\n position: parentNode.style.position,\r\n },\r\n offsetHeight: parentNode.offsetHeight,\r\n };\r\n this._offsetToWindow = {\r\n left: nodeWinOffset.left,\r\n right: document.documentElement.clientWidth - nodeWinOffset.right,\r\n };\r\n this._offsetToParent = {\r\n top:\r\n nodeWinOffset.top -\r\n parentWinOffset.top -\r\n parseNumeric(parentComputedStyle.borderTopWidth),\r\n left:\r\n nodeWinOffset.left -\r\n parentWinOffset.left -\r\n parseNumeric(parentComputedStyle.borderLeftWidth),\r\n right:\r\n -nodeWinOffset.right +\r\n parentWinOffset.right -\r\n parseNumeric(parentComputedStyle.borderRightWidth),\r\n };\r\n this._styles = {\r\n position: originalPosition,\r\n top: node.style.top,\r\n bottom: node.style.bottom,\r\n left: node.style.left,\r\n right: node.style.right,\r\n width: node.style.width,\r\n marginTop: node.style.marginTop,\r\n marginLeft: node.style.marginLeft,\r\n marginRight: node.style.marginRight,\r\n };\r\n\r\n const nodeTopValue = parseNumeric(nodeComputedProps.top);\r\n this._limits = {\r\n start: nodeWinOffset.top + window.pageYOffset - nodeTopValue,\r\n end:\r\n parentWinOffset.top +\r\n window.pageYOffset +\r\n parentNode.offsetHeight -\r\n parseNumeric(parentComputedStyle.borderBottomWidth) -\r\n node.offsetHeight -\r\n nodeTopValue -\r\n parseNumeric(nodeComputedProps.marginBottom),\r\n };\r\n\r\n /*\r\n * 5. Ensure that the node will be positioned relatively to the parent node\r\n */\r\n const parentPosition = parentComputedStyle.position;\r\n\r\n if (parentPosition != 'absolute' && parentPosition != 'relative') {\r\n parentNode.style.position = 'relative';\r\n }\r\n\r\n /*\r\n * 6. Recalc node position.\r\n * It’s important to do this before clone injection to avoid scrolling bug in Chrome.\r\n */\r\n this._recalcPosition();\r\n\r\n /*\r\n * 7. Create a clone\r\n */\r\n const clone = (this._clone = {});\r\n clone.node = document.createElement('div');\r\n\r\n // Apply styles to the clone\r\n extend(clone.node.style, {\r\n width: nodeWinOffset.right - nodeWinOffset.left + 'px',\r\n height: nodeWinOffset.bottom - nodeWinOffset.top + 'px',\r\n marginTop: nodeComputedProps.marginTop,\r\n marginBottom: nodeComputedProps.marginBottom,\r\n marginLeft: nodeComputedProps.marginLeft,\r\n marginRight: nodeComputedProps.marginRight,\r\n cssFloat: nodeComputedProps.cssFloat,\r\n padding: 0,\r\n border: 0,\r\n borderSpacing: 0,\r\n fontSize: '1em',\r\n position: 'static',\r\n });\r\n\r\n referenceNode.insertBefore(clone.node, node);\r\n clone.docOffsetTop = getDocOffsetTop(clone.node);\r\n }\r\n\r\n _recalcPosition() {\r\n if (!this._active || this._removed) return;\r\n\r\n const stickyMode =\r\n scroll.top <= this._limits.start\r\n ? 'start'\r\n : scroll.top >= this._limits.end\r\n ? 'end'\r\n : 'middle';\r\n\r\n if (this._stickyMode == stickyMode) return;\r\n\r\n switch (stickyMode) {\r\n case 'start':\r\n extend(this._node.style, {\r\n position: 'absolute',\r\n left: this._offsetToParent.left + 'px',\r\n right: this._offsetToParent.right + 'px',\r\n top: this._offsetToParent.top + 'px',\r\n bottom: 'auto',\r\n width: 'auto',\r\n marginLeft: 0,\r\n marginRight: 0,\r\n marginTop: 0,\r\n });\r\n break;\r\n\r\n case 'middle':\r\n extend(this._node.style, {\r\n position: 'fixed',\r\n left: this._offsetToWindow.left + 'px',\r\n right: this._offsetToWindow.right + 'px',\r\n top: this._styles.top,\r\n bottom: 'auto',\r\n width: 'auto',\r\n marginLeft: 0,\r\n marginRight: 0,\r\n marginTop: 0,\r\n });\r\n break;\r\n\r\n case 'end':\r\n extend(this._node.style, {\r\n position: 'absolute',\r\n left: this._offsetToParent.left + 'px',\r\n right: this._offsetToParent.right + 'px',\r\n top: 'auto',\r\n bottom: 0,\r\n width: 'auto',\r\n marginLeft: 0,\r\n marginRight: 0,\r\n });\r\n break;\r\n }\r\n\r\n this._stickyMode = stickyMode;\r\n }\r\n\r\n _fastCheck() {\r\n if (!this._active || this._removed) return;\r\n\r\n if (\r\n Math.abs(getDocOffsetTop(this._clone.node) - this._clone.docOffsetTop) >\r\n 1 ||\r\n Math.abs(this._parent.node.offsetHeight - this._parent.offsetHeight) > 1\r\n )\r\n this.refresh();\r\n }\r\n\r\n _deactivate() {\r\n if (!this._active || this._removed) return;\r\n\r\n this._clone.node.parentNode.removeChild(this._clone.node);\r\n delete this._clone;\r\n\r\n extend(this._node.style, this._styles);\r\n delete this._styles;\r\n\r\n // Check whether element’s parent node is used by other stickies.\r\n // If not, restore parent node’s styles.\r\n if (\r\n !stickies.some(\r\n (sticky) =>\r\n sticky !== this &&\r\n sticky._parent &&\r\n sticky._parent.node === this._parent.node\r\n )\r\n ) {\r\n extend(this._parent.node.style, this._parent.styles);\r\n }\r\n delete this._parent;\r\n\r\n this._stickyMode = null;\r\n this._active = false;\r\n\r\n delete this._offsetToWindow;\r\n delete this._offsetToParent;\r\n delete this._limits;\r\n }\r\n\r\n remove() {\r\n this._deactivate();\r\n\r\n stickies.some((sticky, index) => {\r\n if (sticky._node === this._node) {\r\n stickies.splice(index, 1);\r\n return true;\r\n }\r\n });\r\n\r\n this._removed = true;\r\n }\r\n}\r\n\r\n/*\r\n * 5. Stickyfill API\r\n */\r\nconst Stickyfill = {\r\n stickies,\r\n Sticky,\r\n\r\n forceSticky() {\r\n shouldNotInit = false;\r\n init();\r\n\r\n this.refreshAll();\r\n },\r\n\r\n addOne(node) {\r\n // Check whether it’s a node\r\n if (!(node instanceof HTMLElement)) {\r\n // Maybe it’s a node list of some sort?\r\n // Take first node from the list then\r\n if (node.length && node[0]) node = node[0];\r\n else return;\r\n }\r\n\r\n // Check if Stickyfill is already applied to the node\r\n // and return existing sticky\r\n for (var i = 0; i < stickies.length; i++) {\r\n if (stickies[i]._node === node) return stickies[i];\r\n }\r\n\r\n // Create and return new sticky\r\n return new Sticky(node);\r\n },\r\n\r\n add(nodeList) {\r\n // If it’s a node make an array of one node\r\n if (nodeList instanceof HTMLElement) nodeList = [nodeList];\r\n // Check if the argument is an iterable of some sort\r\n if (!nodeList.length) return;\r\n\r\n // Add every element as a sticky and return an array of created Sticky instances\r\n const addedStickies = [];\r\n\r\n for (let i = 0; i < nodeList.length; i++) {\r\n const node = nodeList[i];\r\n\r\n // If it’s not an HTMLElement – create an empty element to preserve 1-to-1\r\n // correlation with input list\r\n if (!(node instanceof HTMLElement)) {\r\n addedStickies.push(void 0);\r\n continue;\r\n }\r\n\r\n // If Stickyfill is already applied to the node\r\n // add existing sticky\r\n if (\r\n stickies.some((sticky) => {\r\n if (sticky._node === node) {\r\n addedStickies.push(sticky);\r\n return true;\r\n }\r\n })\r\n )\r\n continue;\r\n\r\n // Create and add new sticky\r\n addedStickies.push(new Sticky(node));\r\n }\r\n\r\n return addedStickies;\r\n },\r\n\r\n refreshAll() {\r\n stickies.forEach((sticky) => sticky.refresh());\r\n },\r\n\r\n removeOne(node) {\r\n // Check whether it’s a node\r\n if (!(node instanceof HTMLElement)) {\r\n // Maybe it’s a node list of some sort?\r\n // Take first node from the list then\r\n if (node.length && node[0]) node = node[0];\r\n else return;\r\n }\r\n\r\n // Remove the stickies bound to the nodes in the list\r\n stickies.some((sticky) => {\r\n if (sticky._node === node) {\r\n sticky.remove();\r\n return true;\r\n }\r\n });\r\n },\r\n\r\n remove(nodeList) {\r\n // If it’s a node make an array of one node\r\n if (nodeList instanceof HTMLElement) nodeList = [nodeList];\r\n // Check if the argument is an iterable of some sort\r\n if (!nodeList.length) return;\r\n\r\n // Remove the stickies bound to the nodes in the list\r\n for (let i = 0; i < nodeList.length; i++) {\r\n const node = nodeList[i];\r\n\r\n stickies.some((sticky) => {\r\n if (sticky._node === node) {\r\n sticky.remove();\r\n return true;\r\n }\r\n });\r\n }\r\n },\r\n\r\n removeAll() {\r\n while (stickies.length) stickies[0].remove();\r\n },\r\n};\r\n\r\n/*\r\n * 6. Setup events (unless the polyfill was disabled)\r\n */\r\nfunction init() {\r\n if (isInitialized) {\r\n return;\r\n }\r\n\r\n isInitialized = true;\r\n\r\n // Watch for scroll position changes and trigger recalc/refresh if needed\r\n function checkScroll() {\r\n if (window.pageXOffset != scroll.left) {\r\n scroll.top = window.pageYOffset;\r\n scroll.left = window.pageXOffset;\r\n\r\n Stickyfill.refreshAll();\r\n } else if (window.pageYOffset != scroll.top) {\r\n scroll.top = window.pageYOffset;\r\n scroll.left = window.pageXOffset;\r\n\r\n // recalc position for all stickies\r\n stickies.forEach((sticky) => sticky._recalcPosition());\r\n }\r\n }\r\n\r\n checkScroll();\r\n window.addEventListener('scroll', checkScroll);\r\n\r\n // Watch for window resizes and device orientation changes and trigger refresh\r\n window.addEventListener('resize', Stickyfill.refreshAll);\r\n window.addEventListener('orientationchange', Stickyfill.refreshAll);\r\n\r\n //Fast dirty check for layout changes every 500ms\r\n let fastCheckTimer;\r\n\r\n function startFastCheckTimer() {\r\n fastCheckTimer = setInterval(function () {\r\n stickies.forEach((sticky) => sticky._fastCheck());\r\n }, 500);\r\n }\r\n\r\n function stopFastCheckTimer() {\r\n clearInterval(fastCheckTimer);\r\n }\r\n\r\n let docHiddenKey;\r\n let visibilityChangeEventName;\r\n\r\n if ('hidden' in document) {\r\n docHiddenKey = 'hidden';\r\n visibilityChangeEventName = 'visibilitychange';\r\n } else if ('webkitHidden' in document) {\r\n docHiddenKey = 'webkitHidden';\r\n visibilityChangeEventName = 'webkitvisibilitychange';\r\n }\r\n\r\n if (visibilityChangeEventName) {\r\n if (!document[docHiddenKey]) startFastCheckTimer();\r\n\r\n document.addEventListener(visibilityChangeEventName, () => {\r\n if (document[docHiddenKey]) {\r\n stopFastCheckTimer();\r\n } else {\r\n startFastCheckTimer();\r\n }\r\n });\r\n } else startFastCheckTimer();\r\n}\r\n\r\nif (!shouldNotInit) init();\r\n\r\n/*\r\n * 7. Expose Stickyfill\r\n */\r\nexport default Stickyfill;","import { motion } from '_containers/Theme/shared';\r\n\r\nexport default (\r\n properties: string | string[] = 'all',\r\n speed = 'default',\r\n delay = 'none',\r\n ease = motion.ease\r\n) => {\r\n let propertiesToMap = [];\r\n\r\n if (typeof properties === 'string') {\r\n propertiesToMap.push(properties);\r\n } else {\r\n propertiesToMap = properties;\r\n }\r\n\r\n return propertiesToMap\r\n .map((prop) => `${prop} ${ease} ${motion.timing[speed]} ${motion.timing[delay]}`)\r\n .join(', ');\r\n};\r\n","export function showForSR() {\r\n return `\r\n display: inline-block;\r\n width: 1px;\r\n height: 1px;\r\n padding: 0;\r\n overflow: hidden;\r\n clip: rect(0,0,0,0);\r\n white-space: nowrap;\r\n border: 0; \r\n `;\r\n}\r\n","import { css } from 'styled-components';\r\nimport { IButtonColors, IButtonSetting } from '_containers/Theme/definitions';\r\nimport { mq } from '_utils/styles/';\r\nimport { throwInDev } from '../../helpers/dev';\r\n\r\nexport function buttonReset() {\r\n return css`\r\n display: inline-block;\r\n border: none;\r\n padding: 0;\r\n margin: 0;\r\n text-decoration: none;\r\n background: transparent;\r\n color: inherit;\r\n font-family: inherit;\r\n font-size: 1rem;\r\n cursor: pointer;\r\n text-align: center;\r\n appearance: none;\r\n `;\r\n}\r\n\r\nexport function buttonColors(settings: IButtonColors) {\r\n return css`\r\n background: ${settings.background};\r\n box-shadow: 0 0 0 ${settings.borderWidth}px ${settings.border};\r\n color: ${settings.color};\r\n position: relative;\r\n\r\n svg {\r\n fill: ${settings.color};\r\n }\r\n\r\n &:visited {\r\n color: ${settings.color};\r\n\r\n // increase specificity override link util\r\n path {\r\n fill: ${settings.color};\r\n }\r\n\r\n &:hover {\r\n path {\r\n fill: ${settings.colorHover};\r\n }\r\n }\r\n }\r\n\r\n &:hover {\r\n background: ${settings.backgroundHover};\r\n box-shadow: 0 0 0 ${settings.borderHoverWidth}px ${settings.borderHover};\r\n color: ${settings.colorHover};\r\n\r\n svg {\r\n fill: ${settings.colorHover};\r\n }\r\n }\r\n\r\n &:focus {\r\n box-shadow: 0 0 0 ${settings.borderHoverWidth}px ${settings.borderFocus};\r\n }\r\n\r\n &:active {\r\n background: ${settings.backgroundActive};\r\n border-color: ${settings.borderActive};\r\n color: ${settings.colorActive};\r\n }\r\n\r\n /* You have the option of disabled attr for form elements, or data-disabled for any other */\r\n &:disabled,\r\n &[data-disabled] {\r\n &:hover {\r\n background: ${settings.background};\r\n box-shadow: 0 0 0 ${settings.borderWidth}px ${settings.border};\r\n color: ${settings.color};\r\n }\r\n\r\n &:focus {\r\n box-shadow: 0 0 0 ${settings.borderHoverWidth}px ${settings.borderFocus};\r\n }\r\n\r\n &:active {\r\n background: ${settings.background};\r\n border-color: ${settings.border};\r\n }\r\n }\r\n\r\n outline: 0;\r\n\r\n body:not(.safe-focus-removal) &:focus {\r\n /* psuedo focus outline */\r\n &:before {\r\n border-radius: ${({ theme }) => `${theme?.focus?.radius}`};\r\n outline: ${({ theme }) => `${theme?.focus?.outlineWidth} solid ${theme?.focus?.outlineColor}`};\r\n content: '';\r\n height: ${({ theme }) => theme?.focus?.height};\r\n left: ${({ theme }) => theme?.focus?.left};\r\n position: absolute;\r\n top: ${({ theme }) => theme?.focus?.top};\r\n width: ${({ theme }) => theme?.focus?.width};\r\n }\r\n }\r\n\r\n // override global anchor focus\r\n &[href]:focus {\r\n outline-color: transparent;\r\n }\r\n `;\r\n}\r\n\r\nexport function buttonSize(settings: IButtonSetting) {\r\n return css`\r\n border-top-left-radius: ${settings.borderRadius.topLeft}px;\r\n border-top-right-radius: ${settings.borderRadius.topRight}px;\r\n border-bottom-right-radius: ${settings.borderRadius.bottomRight}px;\r\n border-bottom-left-radius: ${settings.borderRadius.bottomRight}px;\r\n font-family: ${settings.fontFamily};\r\n font-size: ${settings.fontSize.sm}px;\r\n font-weight: ${settings.fontWeight || 'bold'};\r\n line-height: ${settings.lineHeight.sm}px;\r\n padding: ${settings.padding.y}px ${settings.padding.x}px;\r\n text-align: center;\r\n\r\n ${mq('md')} {\r\n font-size: ${settings.fontSize.md}px;\r\n line-height: ${settings.lineHeight.md}px;\r\n }\r\n `;\r\n}\r\n\r\nexport const button = (size = 'default', color = 'primary') => ({ theme }) => {\r\n if (typeof size !== 'string') {\r\n // most likely got a theme object. give helpful error\r\n throwInDev(\r\n `Invalid button 'size' parameter (${size}). Usage: button([size],[color]) => curried fn. Did you forget to add parenthesis?`\r\n );\r\n }\r\n\r\n return css`\r\n ${buttonReset}\r\n ${buttonSize(theme.button[size])}\r\n ${buttonColors(theme.colors.button[color])}\r\n `;\r\n};\r\n","export const imagePlaceholderSrc =\r\n 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEXd3uHqnaHGAAAACklEQVQI12NgAAAAAgAB4iG8MwAAAABJRU5ErkJggg==';\r\n\r\nexport const imageGreyPlaceholderSrc =\r\n 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mO8e+/hfwAI2QOd3K1FCAAAAABJRU5ErkJggg==';\r\n\r\nexport const imageTransparentPlaceholderSrc =\r\n 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=';\r\n\r\nconst imageFit = `\r\n position: absolute;\r\n width: 100%;\r\n height: 100%;\r\n left: 0;\r\n top: 0;\r\n`;\r\n\r\nexport const imageFitCover = `\r\n ${imageFit}\r\n object-fit: cover;\r\n font-family: 'object-fit: cover';\r\n`;\r\n\r\nexport const imageFitContain = `\r\n ${imageFit}\r\n object-fit: contain;\r\n font-family: 'object-fit: contain';\r\n`;\r\n","// import { css } from 'styled-components';\r\n\r\nexport function inputReset() {\r\n return `\r\n border:none;\r\n background-image:none;\r\n background-color:transparent;\r\n box-shadow: none;\r\n `;\r\n}\r\n","import { ILinkColors } from '_containers/Theme/definitions';\r\n\r\n// TODO future use?\r\n// remove native button styling for buttons as links\r\nexport function buttonAsLinkReset() {\r\n return `\r\n appearance: none;\r\n background: transparent;\r\n border: none;\r\n color: inherit;\r\n line-height: inherit;\r\n padding: 0;\r\n text-decoration: inherit;\r\n\r\n &:hover {\r\n color: inherit;\r\n text-decoration: inherit;\r\n }\r\n `;\r\n}\r\n\r\nexport function linkStyle(settings: ILinkColors) {\r\n return `\r\n border-bottom: 3px solid ${settings.border};\r\n color: ${settings.color};\r\n position: relative;\r\n text-decoration: ${settings.textDecoration};\r\n transition: background-color 0.1s linear, color 0.1s linear;\r\n\r\n &:visited {\r\n border-color: ${settings.borderVisited};\r\n color: ${settings.colorVisited};\r\n\r\n &:hover {\r\n background-color: ${settings.backgroundHover};\r\n }\r\n .no-visited-link & {\r\n color: inherit;\r\n }\r\n }\r\n\r\n &:hover, &:active {\r\n background-color: ${settings.backgroundHover};\r\n border-color: ${settings.borderHover};\r\n color: ${settings.colorHover};\r\n cursor: pointer;\r\n\r\n path {\r\n fill: ${settings.colorHover};\r\n }\r\n }\r\n\r\n &:focus {\r\n background-color: ${settings.backgroundHover};\r\n color: ${settings.colorFocus};\r\n cursor: pointer;\r\n outline-offset: 2px;\r\n outline: 1px solid ${settings.borderFocusColor};\r\n text-decoration: none;\r\n\r\n path {\r\n fill: ${settings.colorHover};\r\n }\r\n }\r\n\r\n /* same styles but keep seperate. not supported by\r\n IE11 so will break other hover/focus selectors */\r\n &:focus-within {\r\n background-color: ${settings.backgroundHover};\r\n box-shadow: inset 0 -2px ${settings?.boxShadowColor};\r\n color: ${settings.colorFocus};\r\n cursor: pointer;\r\n text-decoration: ${settings.textDecorationFocus};\r\n }\r\n\r\n &:not([target=_blank]).link-featured {\r\n border: none;\r\n display: inline-block;\r\n font-weight: ${settings.fontWeight};\r\n padding-left: 4px;\r\n padding-right: 30px;\r\n text-transform: ${settings.textTransform};\r\n ${settings.textBody};\r\n\r\n &:visited {\r\n text-decoration: underline;\r\n }\r\n\r\n &:after {\r\n /* NOTE: trying to access ${settings.color} for fill failing in browser */\r\n background-image: url('data:image/svg+xml,%3Csvg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"%3E%3Cpath d=\"M8 0L6.59 1.41L12.17 7H0V9H12.17L6.59 14.59L8 16L16 8L8 0Z\" fill=\"%23${(settings?.color?.replace('#', ''))}\"/%3E%3C/svg%3E');\r\n background-position: center right;\r\n background-repeat: no-repeat;\r\n background-size: 14px 14px;\r\n content: '';\r\n height: 100%;\r\n position: absolute;\r\n right: 6px;\r\n top: 0;\r\n transition: background-image 0.1s linear, color 0.1s linear, background-color 0.1s linear;\r\n width: 20px;\r\n }\r\n\r\n &:focus {\r\n border-radius: ${({ theme }) => `${theme?.focus?.radius}`};\r\n color: ${settings.colorFocus};\r\n outline: 1px solid ${settings.borderFocusColor};\r\n outline-offset: -2px;\r\n\r\n &:hover, &:active {\r\n text-decoration: ${settings.textDecorationFocus};\r\n }\r\n }\r\n\r\n &:hover {\r\n text-decoration: underline;\r\n }\r\n\r\n\r\n &:focus-within {\r\n box-shadow: none;\r\n text-decoration: ${settings.textDecorationFocus};\r\n }\r\n }\r\n `;\r\n}\r\n\r\nexport const link = ({ theme }) => `${linkStyle(theme.colors.link.primary)}`;\r\nexport const linkFeatured = ({ theme }) => `${linkStyle(theme.colors.link.featured)}`;\r\nexport const linkButton = ({ theme }) => `${linkStyle(theme.colors.button.primary)}`;\r\nexport const linkSecondary = ({ theme }) => `${linkStyle(theme.colors.link.secondary)}`;\r\n\r\nexport const linkReset = () => `\r\n color: inherit;\r\n margin: 0;\r\n text-decoration: none;\r\n`;\r\n\r\nexport const linkWithoutVisited = ({ theme }) =>\r\n `${linkStyle(theme.colors.link.primaryWithoutVisited)}`;\r\n","// options\r\nexport default {\r\n // primary\r\n brandPrimary1: '#0A5CC7',\r\n brandPrimary1Dark: '#084697',\r\n brandPrimary1Darker: '#043472',\r\n brandPrimary2: '#FFDD00',\r\n brandPrimary2Dark: '#E6C700',\r\n brandPrimary2Darker: '#E5B300',\r\n brandPrimary3: '#090D46',\r\n brandPrimary3Dark: '#050724',\r\n // secondary\r\n brandSecondary1: '#712B90',\r\n brandSecondary1Dark: '#57216E',\r\n brandSecondary2: '#F59419',\r\n brandSecondary2Dark: '#B26200',\r\n brandSecondary3: '#00BAB5',\r\n brandSecondary3Dark: '#00827E',\r\n\r\n // TODO move this when dark theme is ready\r\n darkBackground: '#073A7D',\r\n darkBackgroundTint1: '#080B3B',\r\n darkBackgroundTint3: '#0C125E',\r\n darkText: '#E6F1FF',\r\n darkTextSecondary: '#BBCBE5',\r\n darkTextSubtle: '#829BBA',\r\n\r\n error100: '#FFEDED',\r\n error500: '#E10004',\r\n error700: '#AD0003',\r\n focus: 'rgba(117,172,255,0.5)',\r\n information100: '#F0F5FE',\r\n information500: '#3C78F6',\r\n interactive200: '#75ACFF',\r\n interactive300: 'rgba(7, 100, 221, 0.6)',\r\n interactive500: '#0A5CC7',\r\n interactive600: '#084697',\r\n neutral50: '#F7F7F7',\r\n neutral75: '#F4F4F4',\r\n neutral100: '#EEEEEE',\r\n neutral200: '#DDDDDD',\r\n neutral300: '#C7C7C7',\r\n neutral400: '#8C8C8C',\r\n neutral500: '#767676',\r\n neutral600: '#444444',\r\n neutral700: '#303030',\r\n neutral800: '#222222',\r\n neutral900: '#111111',\r\n neutralBlack: '#000',\r\n neutralBlackTransparent10: 'rgba(0,0,0,0.1)',\r\n neutralBlackTransparent20: 'rgba(0,0,0,0.2)',\r\n neutralWhite: '#FFF',\r\n neutralWhiteTransparent: '#ffffff33',\r\n success100: '#EAFAEF',\r\n success500: '#24A148',\r\n success700: '#018940',\r\n transparent: '#00000000',\r\n visited: '#6009A0',\r\n warning100: '#FFF5DF',\r\n warning500: '#FDA108',\r\n};\r\n","import styled, { css } from 'styled-components';\r\nimport { RichText } from '@sitecore-jss/sitecore-jss-react';\r\n\r\nimport { Link } from '_utils/components';\r\nimport { spacing } from '_utils/props';\r\nimport {\r\n button,\r\n mq,\r\n svg,\r\n safeFocusRemoval,\r\n focusOutline,\r\n} from '_utils/styles';\r\n\r\nconst announcementThemes = {\r\n Blue: css`\r\n background-color: ${({ theme }) => theme.inPageAnnouncement.announcementThemes.blue.background};\r\n border: 1px solid;\r\n border-color: ${({ theme }) => theme.inPageAnnouncement.announcementThemes.blue.borderColor};\r\n\r\n path {\r\n fill: ${({ theme }) => theme.inPageAnnouncement.announcementThemes.pathFillColor};\r\n }\r\n `,\r\n Yellow: css`\r\n background-color: ${({ theme }) => theme.inPageAnnouncement.announcementThemes.yellow.background};\r\n border: 1px solid;\r\n border-color: ${({ theme }) => theme.inPageAnnouncement.announcementThemes.yellow.borderColor};\r\n\r\n path {\r\n fill: ${({ theme }) => theme.inPageAnnouncement.announcementThemes.pathFillColor};\r\n }\r\n `,\r\n Red: css`\r\n background-color: ${({ theme }) => theme.inPageAnnouncement.announcementThemes.red.background};\r\n border: 1px solid;\r\n border-color: ${({ theme }) => theme.inPageAnnouncement.announcementThemes.red.borderColor};\r\n\r\n path {\r\n fill: ${({ theme }) => theme.inPageAnnouncement.announcementThemes.pathFillColor};\r\n }\r\n `,\r\n Green: css`\r\n background-color: ${({ theme }) => theme.inPageAnnouncement.announcementThemes.green.background};\r\n border: 1px solid;\r\n border-color: ${({ theme }) => theme.inPageAnnouncement.announcementThemes.green.borderColor};\r\n\r\n path {\r\n fill: ${({ theme }) => theme.inPageAnnouncement.announcementThemes.pathFillColor};\r\n }\r\n `,\r\n};\r\n\r\nconst handleAnnouncementTheme = ({ alertStyle }) => announcementThemes[alertStyle];\r\n\r\nexport const AnnouncementWrapper = styled.div`\r\n align-items: flex-start;\r\n border-radius: 4px;\r\n color: ${({ theme }) => theme.inPageAnnouncement.announcementWrapper.color};\r\n display: flex;\r\n flex-direction: column;\r\n position: relative;\r\n\r\n ${handleAnnouncementTheme}\r\n ${({ theme }) => spacing({ theme, mt: 3, mb: 3, p: { xs: 3, md: 2 } })};\r\n\r\n ${mq('md')} {\r\n flex-direction: row;\r\n }\r\n\r\n // Any subsequent stacking Announcements\r\n & + & {\r\n ${({ theme }) => spacing({ theme, mt: 0 })};\r\n }\r\n\r\n @media print {\r\n ${({ theme }) => spacing({ theme, p: 0 })};\r\n }\r\n`;\r\n\r\nexport const IconWrapper = styled.div`\r\n ${svg(20, 20)}\r\n flex-shrink: 0;\r\n position: relative;\r\n top: 0px;\r\n width: 20px;\r\n\r\n ${({ theme }) => spacing({ theme, mb: {xs: '18px', md: 0 }})};\r\n\r\n ${mq('md')} {\r\n top: 2px;\r\n }\r\n`;\r\n\r\nexport const CloseIconWrapper = styled.div`\r\n ${svg(20, 20)}\r\n position: absolute;\r\n top: 16px;\r\n right:16px;\r\n width: 20px;\r\n cursor: pointer;\r\n`;\r\n\r\nexport const TextWrapper = styled.div`\r\n ${({ theme }) => spacing({ theme, ml: {xs: 0, md: 2 }})};\r\n width: 100%;\r\n`;\r\n\r\nexport const TitleWrapper = styled.h2`\r\n ${({ theme }) => theme.inPageAnnouncement.titleWrapper.heading2}\r\n color: inherit;\r\n margin: 0;\r\n\r\n &:focus {\r\n ${safeFocusRemoval}\r\n ${focusOutline}\r\n }\r\n\r\n ${({ isBold }) => {\r\n if(isBold) {\r\n return css`\r\n font-weight: bold !important;\r\n `\r\n }\r\n }}\r\n\r\n &:hover {\r\n text-decoration: none;\r\n }\r\n`;\r\n\r\nexport const Content = styled(RichText)`\r\n ${({ theme }) => theme.inPageAnnouncement.content.richText};\r\n margin: 0;\r\n ${({ theme }) => spacing({ theme, mt: '4px' })};\r\n\r\n a {\r\n color: inherit;\r\n &:hover {\r\n text-decoration: none;\r\n }\r\n }\r\n`;\r\n\r\nexport const ButtonWrapper = styled.div`\r\n display: flex;\r\n flex-wrap: wrap;\r\n`\r\n\r\n// CTA\r\nexport const AnnouncementCTA = styled(Link)`\r\n${({ theme }) => spacing({ theme, mt: '12px', mr: '8px' })};\r\na {\r\n ${button('slim', 'announcementTertiary')};\r\n ${({ theme }) => theme.inPageAnnouncement.announcementCta.text};\r\n\r\n ${mq.lessThan('md')} {\r\n width: 100%;\r\n }\r\n\r\n path {\r\n fill: currentColor;\r\n }\r\n}\r\n`;","import React, { Fragment } from 'react';\r\nimport { createGlobalStyle, ThemeProvider } from 'styled-components';\r\nimport { normalize } from 'styled-normalize';\r\nimport { spacing } from '_utils/props';\r\n\r\nimport {\r\n buttonColors,\r\n buttonReset,\r\n buttonSize,\r\n focusOutline,\r\n mq,\r\n safeFocusRemoval,\r\n textBody1,\r\n} from '_utils/styles/';\r\n\r\nimport { ChildrenPropTypes } from '../../../types';\r\nimport theme from './theme';\r\n\r\nexport * from './theme';\r\n\r\nconst GlobalStyles = createGlobalStyle`\r\n\r\n${normalize}\r\n\r\nhtml {\r\n box-sizing: border-box;\r\n height: 100%;\r\n}\r\n\r\n* {\r\n &,\r\n &:before,\r\n &:after {\r\n box-sizing: inherit;\r\n }\r\n}\r\n\r\nbody {\r\n -moz-osx-font-smoothing: grayscale;\r\n -webkit-font-smoothing: antialiased;\r\n ${textBody1}\r\n color: ${theme.colors.text.default};\r\n margin: 0;\r\n max-width: 100%;\r\n min-height: 100%;\r\n min-width: 300px;\r\n overflow-x: hidden;\r\n position: relative;\r\n &.menu-active {\r\n height: 100%;\r\n }\r\n}\r\n\r\n#root {\r\n display: flex;\r\n flex-direction: column;\r\n min-height: 100vh;\r\n width: 100%;\r\n}\r\n\r\nimg,\r\npicture,\r\nsvg {\r\n vertical-align: middle;\r\n border-style: none;\r\n height: auto;\r\n max-width: 100%;\r\n}\r\n\r\nimg {\r\n &.lazyload,\r\n &.lazyloading {\r\n opacity: 0;\r\n }\r\n\r\n &.lazyloaded {\r\n ${mq('md')} {\r\n transition: opacity ${theme.motion.timing.fast} linear;\r\n }\r\n\r\n opacity: 1;\r\n }\r\n}\r\n\r\n.button-primary {\r\n ${buttonReset()}\r\n ${buttonSize(theme.button.default)}\r\n ${buttonColors(theme.colors.button.primary)}\r\n}\r\n\r\n.button-ghost {\r\n ${buttonReset()}\r\n ${buttonSize(theme.button.default)}\r\n ${buttonColors(theme.colors.button.ghost)}\r\n}\r\n\r\n.button-slim {\r\n ${buttonSize(theme.button.slim)}\r\n}\r\n\r\na:focus {\r\n ${safeFocusRemoval}\r\n ${focusOutline({ theme })}\r\n}\r\n\r\n.pageTitle,\r\nh1,\r\n.headingH1,\r\nh2,\r\n.headingH2,\r\nh3,\r\n.headingH3,\r\nh4,\r\n.headingH4,\r\nh5,\r\n.headingH5,\r\nh6,\r\n.headingH6 {\r\n color: ${theme.colors.all.brandPrimary3};\r\n}\r\n\r\n${mq('lg')} {\r\n .fullWidthOnDesktop .content-rich-text > * {\r\n max-width: 100% !important;\r\n }\r\n}\r\n\r\n/* start placeholder spacing for verical rhythm between components */\r\n\r\n/* using 'noindex' DOM element for .coveo-no-index-begin/end which is wrapper to output\r\n HTML comments - this just to reduce CSS specificity complexity for targeting spacing rules */\r\nnoindex {\r\n display: none;\r\n}\r\n\r\n.ph {\r\n\r\n // targeting row as ph too high and cannot check :empty\r\n .row:not(.db-row):not(:empty) {\r\n ${({ theme }) => spacing({ theme, py: 7 })}\r\n }\r\n\r\n &.no-pt {\r\n .row:not(:empty) {\r\n padding-top: 0;\r\n }\r\n }\r\n\r\n // emulate removing the checkbox for padding on first placeholder after PageBanner (text only)\r\n .page-banner + .ph.default .row {\r\n padding-top: 0;\r\n }\r\n\r\n // fix for 2 siblings same type to make tighter with negative margin\r\n &.default:not(.is-empty) + &.default:not(.is-empty),\r\n &.dark:not(.is-empty) + &.dark:not(.is-empty),\r\n &.grey:not(.is-empty) + &.grey:not(.is-empty),\r\n // just in case casing mis-match\r\n &.Dark:not(.is-empty) + &.Dark:not(.is-empty),\r\n &.Grey:not(.is-empty) + &.Grey:not(.is-empty) {\r\n\r\n .row:not(:empty) {\r\n padding-top: 0;\r\n ${({ theme }) => spacing({ theme, mt: -3 })}\r\n }\r\n }\r\n\r\n &.no-pb {\r\n .row:not(:empty) {\r\n padding-bottom: 0;\r\n }\r\n }\r\n\r\n // component level spacing\r\n .row > [data-component]:not(:only-of-type):not(:last-of-type) {\r\n ${({ theme }) => spacing({ theme, mb: 6 })}\r\n }\r\n\r\n // dashboard override to make tighter\r\n .db-fw &.ph-sc .row {\r\n\r\n > [data-component]:not(:only-of-type):not(:last-of-type) {\r\n ${({ theme }) => spacing({ theme, mb: 3 })}\r\n }\r\n }\r\n\r\n}\r\n/* end placeholder spacing */\r\n\r\n/* negate top margin on Page Banner if:\r\n - there is a breadcrumb component on the page and\r\n - no campaign navigation exists\r\n*/\r\nbody:not(.hasCampaignNavigation) .page-breadcrumb ~ .page-banner {\r\n margin-top: 0;\r\n}\r\n\r\n.hide-on-print {\r\n @media print {\r\n display: none !important;\r\n }\r\n}\r\n\r\n@media print {\r\n * {\r\n background: transparent !important;\r\n color: black !important;\r\n color-adjust: economy;\r\n box-shadow: none !important;\r\n text-shadow: none !important;\r\n\r\n &::after {\r\n box-shadow: none !important;\r\n }\r\n }\r\n\r\n // Prevent page breaks in the middle of a blockquote or preformatted text block\r\n pre,\r\n blockquote {\r\n border: 1px solid black;\r\n break-inside: avoid;\r\n }\r\n\r\n tr,\r\n img {\r\n break-before: auto; /* 'always,' 'avoid,' 'left,' 'inherit,' or 'right' */\r\n break-after: auto; /* 'always,' 'avoid,' 'left,' 'inherit,' or 'right' */\r\n break-inside: avoid; /* or 'auto' */\r\n }\r\n img { max-width: 100% !important; }\r\n\r\n @page { margin: 0.5cm; }\r\n\r\n p,\r\n h2,\r\n h3 {\r\n break-after: avoid;\r\n orphans: 3;\r\n widows: 3;\r\n }\r\n\r\n // hide OneTrust consent & Live Chat when printing\r\n .chat-iframe-wrap,\r\n .button-iframe-wrap,\r\n iframe#icChatButton,\r\n div#onetrust-consent-sdk {\r\n display: none;\r\n }\r\n\r\n .ph > [data-component] {\r\n margin-bottom: 20px !important;\r\n }\r\n }\r\n`;\r\n\r\nexport default function Theme({ children }) {\r\n return (\r\n \r\n \r\n \r\n {children}\r\n \r\n \r\n );\r\n}\r\n\r\nTheme.propTypes = {\r\n children: ChildrenPropTypes,\r\n};\r\n","import React, { Fragment } from 'react';\r\nimport { createGlobalStyle, ThemeProvider } from 'styled-components';\r\nimport { normalize } from 'styled-normalize';\r\nimport { spacing } from '_utils/props';\r\n\r\nimport {\r\n buttonColors,\r\n buttonReset,\r\n buttonSize,\r\n fixedBody12,\r\n focusOutline,\r\n mq,\r\n safeFocusRemoval,\r\n textBody1,\r\n} from '_utils/styles/';\r\n\r\nimport { ChildrenPropTypes } from '../../../types';\r\nimport theme from './theme';\r\n\r\nexport * from './theme';\r\n\r\nconst GlobalStyles = createGlobalStyle`\r\n\r\n${normalize}\r\n\r\nhtml {\r\n box-sizing: border-box;\r\n height: 100%;\r\n}\r\n\r\n* {\r\n &,\r\n &:before,\r\n &:after {\r\n box-sizing: inherit;\r\n }\r\n}\r\n\r\nbody {\r\n -moz-osx-font-smoothing: grayscale;\r\n -webkit-font-smoothing: antialiased;\r\n ${textBody1}\r\n color: ${theme.colors.text.default};\r\n margin: 0;\r\n max-width: 100%;\r\n min-height: 100%;\r\n min-width: 300px;\r\n overflow-x: hidden;\r\n position: relative;\r\n &.menu-active {\r\n height: 100%;\r\n }\r\n}\r\n\r\n#root {\r\n display: flex;\r\n flex-direction: column;\r\n min-height: 100vh;\r\n width: 100%;\r\n}\r\n\r\nimg,\r\npicture,\r\nsvg {\r\n vertical-align: middle;\r\n border-style: none;\r\n height: auto;\r\n max-width: 100%;\r\n}\r\n\r\nimg {\r\n &.lazyload,\r\n &.lazyloading {\r\n opacity: 0;\r\n }\r\n\r\n &.lazyloaded {\r\n ${mq('md')} {\r\n transition: opacity ${theme.motion.timing.fast} linear;\r\n }\r\n\r\n opacity: 1;\r\n }\r\n}\r\n\r\n.button-primary {\r\n ${buttonReset()}\r\n ${buttonSize(theme.button.default)}\r\n ${buttonColors(theme.colors.button.primary)}\r\n}\r\n\r\n.button-ghost {\r\n ${buttonReset()}\r\n ${buttonSize(theme.button.default)}\r\n ${buttonColors(theme.colors.button.ghost)}\r\n}\r\n\r\n.button-slim {\r\n ${buttonSize(theme.button.slim)}\r\n}\r\n\r\na:focus {\r\n ${safeFocusRemoval}\r\n ${focusOutline({ theme })}\r\n}\r\n\r\n.pageTitle,\r\nh1,\r\n.headingH1,\r\nh2,\r\n.headingH2,\r\nh3,\r\n.headingH3,\r\nh4,\r\n.headingH4,\r\nh5,\r\n.headingH5,\r\nh6,\r\n.headingH6 {\r\n color: ${theme.colors.all.neutralBlack};\r\n}\r\n\r\n${mq('lg')} {\r\n .fullWidthOnDesktop .content-rich-text > * {\r\n max-width: 100% !important;\r\n }\r\n}\r\n\r\n // Tooltips overrides for react-aria-tooltip\r\n .ra-tooltip-wrapper {\r\n display: inline-flex !important;\r\n height: 14px;\r\n\r\n button {\r\n position:relative;\r\n top:-2px;\r\n }\r\n }\r\n\r\n .ra-tooltip {\r\n background: transparent !important;\r\n max-width: 200px;\r\n width: max-content;\r\n\r\n &.top {\r\n transform: translate(-50%,-104%) !important;\r\n }\r\n\r\n .ra-tooltip-message {\r\n ${fixedBody12}\r\n background: ${theme.tooltip.background};\r\n border-radius: 4px;\r\n box-shadow: ${theme.shadows.elevation16};\r\n color: ${theme.tooltip.color};\r\n padding: 8px 16px;\r\n\r\n p {\r\n margin-bottom: 0;\r\n text-align: center;\r\n white-space: initial;\r\n }\r\n\r\n // notch on bottom\r\n &:after {\r\n border-top-color: ${theme.tooltip.background} !important;\r\n }\r\n }\r\n }\r\n\r\n/* start placeholder spacing for verical rhythm between components */\r\n\r\n/* using 'noindex' DOM element for .coveo-no-index-begin/end which is wrapper to output\r\n HTML comments - this just to reduce CSS specificity complexity for targeting spacing rules */\r\nnoindex {\r\n display: none;\r\n}\r\n\r\n.ph {\r\n\r\n // targeting row as ph too high and cannot check :empty\r\n .row:not(.db-row):not(:empty) {\r\n ${({ theme }) => spacing({ theme, py: 7 })}\r\n }\r\n\r\n &.no-pt {\r\n .row:not(:empty) {\r\n padding-top: 0;\r\n\r\n // targeting ads to have at least 24px when removeTopPadding is checked on sitecore\r\n .advertisement {\r\n ${({ theme }) => spacing({ theme, pt: '24px' })}\r\n }\r\n }\r\n }\r\n\r\n &.no-pb {\r\n .row:not(:empty) {\r\n padding-bottom: 0;\r\n }\r\n }\r\n\r\n // component level spacing\r\n > [data-component]:not(:last-child) {\r\n ${({ theme }) => spacing({ theme, mb: 6 })}\r\n }\r\n}\r\n/* end placeholder spacing */\r\n\r\n/* negate top margin on Page Banner if:\r\n - there is a breadcrumb component on the page and\r\n - no campaign navigation exists\r\n*/\r\nbody .page-breadcrumb ~ .page-banner {\r\n margin-top: 0;\r\n}\r\n\r\n.itb-magazine-listing-page {\r\n background-color: ${({ theme }) => theme.colors.background.tint3};\r\n}\r\n\r\n.hide-on-print {\r\n @media print {\r\n display: none !important;\r\n }\r\n}\r\n\r\n@media print {\r\n * {\r\n background: transparent !important;\r\n color: black !important;\r\n color-adjust: economy;\r\n box-shadow: none !important;\r\n text-shadow: none !important;\r\n\r\n &::after {\r\n box-shadow: none !important;\r\n }\r\n }\r\n\r\n // Prevent page breaks in the middle of a blockquote or preformatted text block\r\n pre,\r\n blockquote {\r\n border: 1px solid black;\r\n break-inside: avoid;\r\n }\r\n\r\n tr,\r\n img {\r\n break-before: auto; /* 'always,' 'avoid,' 'left,' 'inherit,' or 'right' */\r\n break-after: auto; /* 'always,' 'avoid,' 'left,' 'inherit,' or 'right' */\r\n break-inside: avoid; /* or 'auto' */\r\n }\r\n img { max-width: 100% !important; }\r\n\r\n @page { margin: 0.5cm; }\r\n\r\n p,\r\n h2,\r\n h3 {\r\n break-after: avoid;\r\n orphans: 3;\r\n widows: 3;\r\n }\r\n\r\n // hide OneTrust consent & Live Chat when printing\r\n .chat-iframe-wrap,\r\n .button-iframe-wrap,\r\n iframe#icChatButton,\r\n div#onetrust-consent-sdk {\r\n display: none;\r\n }\r\n\r\n .ph > [data-component] {\r\n margin-bottom: 20px !important;\r\n }\r\n\r\n }\r\n`;\r\n\r\nexport default function Theme({ children }) {\r\n return (\r\n \r\n \r\n \r\n {children}\r\n \r\n \r\n );\r\n}\r\n\r\nTheme.propTypes = {\r\n children: ChildrenPropTypes,\r\n};\r\n","export const adConfig = {\r\n \"Top\": {\r\n sizes: [[300, 50], [728, 90], [970, 90]],\r\n mapping: [\r\n {\r\n viewport: [1024, 768],\r\n sizes: [970, 90],\r\n },\r\n {\r\n viewport: [728, 480],\r\n sizes: [728, 90],\r\n },\r\n {\r\n viewport: [640, 480],\r\n sizes: [300, 50],\r\n },\r\n {\r\n viewport: [0, 0],\r\n sizes: [300, 50],\r\n }\r\n ]\r\n },\r\n \"SidebarTop\": {\r\n sizes: [[970, 90],[728, 90],[300, 50], [300, 250], [160, 600], [180, 150], [300, 600]],\r\n mapping: [\r\n {\r\n viewport: [1024, 768],\r\n sizes: [[300, 600], [300, 250]],\r\n },\r\n {\r\n viewport: [728, 480],\r\n sizes: [160, 600],\r\n },\r\n {\r\n viewport: [640, 480],\r\n sizes: [300, 250],\r\n },\r\n {\r\n viewport: [0, 0],\r\n sizes: [300, 50],\r\n }\r\n ]\r\n },\r\n \"SidebarBottom\": {\r\n sizes: [[970, 90],[728, 90],[300, 50], [300, 250], [160, 600], [180, 150], [300, 600]],\r\n mapping: [\r\n {\r\n viewport: [1024, 768],\r\n sizes: [[300, 600], [300, 250]],\r\n },\r\n {\r\n viewport: [728, 480],\r\n sizes: [160, 600],\r\n },\r\n {\r\n viewport: [640, 480],\r\n sizes: [300, 250],\r\n },\r\n {\r\n viewport: [0, 0],\r\n sizes: [300, 50],\r\n }\r\n ]\r\n }\r\n}\r\n","import { spacing } from '_utils/props';\r\nimport styled from 'styled-components';\r\nimport { hideOnPrint } from '_utils/styles';\r\n\r\nexport const Container = styled.div`\r\n text-align: center;\r\n ${({ theme }) => spacing({ theme, mx: 'auto' })}\r\n`;\r\n\r\nexport const AdContainer = styled.div`\r\n ${hideOnPrint}\r\n`;\r\n\r\nexport const PlaceholderContainer = styled.div`\r\n background-color: ${({ theme }) => theme.colors.background.tint2};\r\n padding: 30px 20px;\r\n text-align: center;\r\n\r\n span {\r\n font-weight: bold;\r\n }\r\n`;\r\n\r\nexport const AdLabel = styled.div`\r\n color: ${({ theme }) => theme.colors.text.subtle};\r\n font-size: 10px;\r\n line-height: 10px;\r\n text-transform: uppercase;\r\n ${({ theme }) => spacing({ theme, my: '8px', })}\r\n\r\n ${hideOnPrint}\r\n`;\r\n","import { canUseDOM } from 'exenv';\r\nimport { compose } from 'ramda';\r\nimport React, {\r\n useCallback,\r\n useEffect,\r\n useRef,\r\n useState,\r\n} from \"react\";\r\n\r\nimport {\r\n withCoveoNoIndexTags,\r\n withEditMode,\r\n withSitecoreContext,\r\n} from '_containers/BaseComponent';\r\n\r\nimport { getDictionaryItem } from '_utils/data/dictionaryItem';\r\nimport {\r\n useAdSlot,\r\n useBreakpoint,\r\n useMutationObserver,\r\n} from '_utils/hooks';\r\n\r\nimport { adConfig } from \"./config\";\r\nimport { AdProps } from \"./definitions\";\r\n\r\nimport {\r\n AdContainer,\r\n AdLabel,\r\n Container,\r\n PlaceholderContainer,\r\n} from './StyledAd';\r\n\r\nconst Ad: React.FC = (\r\n {\r\n adSlotID,\r\n editMode,\r\n keywords,\r\n position,\r\n sitecoreContext,\r\n uid,\r\n }) => {\r\n const advertisementLabel = getDictionaryItem('advertisement-label', 'Advertisement');\r\n if (!(adConfig?.[position] && adSlotID)) {\r\n return null;\r\n }\r\n\r\n const [showAdLabel, setShowAdLabel] = useState(false);\r\n const adRef = useRef(null);\r\n const bp = useBreakpoint();\r\n\r\n const ad = adConfig[position];\r\n\r\n // bind hook only on initial render\r\n useEffect(() => {\r\n useAdSlot({\r\n mapping: ad.mapping,\r\n sizes: ad.sizes,\r\n adSlotID: adSlotID,\r\n position: position,\r\n template: sitecoreContext?.route?.templateName ?? '',\r\n keywords: keywords,\r\n uid: uid,\r\n });\r\n }, []);\r\n\r\n // refresh ad slots when breakpoint changes to ensure correct dimension ads\r\n useEffect(() => {\r\n if (showAdLabel && canUseDOM && typeof window !== 'undefined') {\r\n const googletag = window.googletag || (window.googletag || { cmd: [] });\r\n googletag.cmd.push(function () {\r\n const slot = googletag.pubads().getSlots().filter(slot => slot.getSlotElementId() === uid);\r\n if (slot) {\r\n googletag.pubads().refresh(slot);\r\n }\r\n });\r\n }\r\n\r\n }, [bp]);\r\n\r\n const handleMutations = useCallback((mutations) => {\r\n mutations.forEach(\r\n ({\r\n type,\r\n target\r\n }: {\r\n type: MutationRecordType;\r\n target: Element | null;\r\n }) => {\r\n if (type === 'childList') {\r\n setShowAdLabel(!!target?.getElementsByTagName('iframe')?.length);\r\n }\r\n }\r\n );\r\n }, []);\r\n\r\n useMutationObserver({\r\n target: adRef,\r\n options: { childList: true, subtree: true },\r\n callback: handleMutations\r\n });\r\n\r\n return (\r\n \r\n {\r\n editMode ?\r\n Advertisment {position} goes here \r\n :\r\n <>\r\n \r\n {showAdLabel && {advertisementLabel}}\r\n \r\n }\r\n \r\n );\r\n}\r\n\r\nexport default compose(\r\n withCoveoNoIndexTags,\r\n withEditMode,\r\n withSitecoreContext()\r\n)(Ad);\r\n\r\n","import { compose } from 'ramda';\r\nimport React from 'react';\r\nimport { withEditMode } from '_containers/BaseComponent';\r\nimport Ad from './Ad';\r\nimport { AdvertisementProps } from './definitions';\r\n\r\nimport { PlaceholderContainer } from './StyledAd';\r\n\r\nconst Advertisement: React.FC = ({\r\n editMode,\r\n rendering\r\n}) => {\r\n const datasource = rendering?.fields?.data?.datasource;\r\n const pageFields = rendering?.fields?.data?.pageFields;\r\n const adSlotID = datasource?.adverts?.adSlotID;\r\n const position = datasource?.adverts?.position;\r\n const uid = rendering?.uid;\r\n const adUid = uid.concat('-ads');\r\n\r\n const topicTagArray = pageFields?.topictags?.topics || [];\r\n const category = pageFields?.categoryInformation?.categoryLabelText;\r\n const topics = topicTagArray.map(item => item.topic);\r\n\r\n const keywords = [...topics, category].join();\r\n\r\n return (\r\n editMode ?\r\n Advertisment {position} goes here \r\n :\r\n \r\n );\r\n}\r\n\r\nexport default compose(withEditMode)(Advertisement);\r\n","import styled, { css } from 'styled-components';\r\nimport { RichText } from '@sitecore-jss/sitecore-jss-react';\r\n\r\nimport { Link } from '_utils/components';\r\nimport { spacing } from '_utils/props';\r\nimport {\r\n button,\r\n depth,\r\n focusOutline,\r\n hideOnPrint,\r\n mq,\r\n safeFocusRemoval,\r\n svg,\r\n} from '_utils/styles';\r\n\r\nconst announcementThemes = {\r\n Blue: css`\r\n background-color: ${({ theme }) => theme.siteWideAnnouncement.announcementThemes.blue.background};\r\n border-bottom: 1px solid;\r\n border-color: ${({ theme }) => theme.siteWideAnnouncement.announcementThemes.blue.borderColor};\r\n\r\n path {\r\n fill: ${({ theme }) => theme.siteWideAnnouncement.announcementThemes.pathFillColor};\r\n }\r\n `,\r\n Yellow: css`\r\n background-color: ${({ theme }) => theme.siteWideAnnouncement.announcementThemes.yellow.background};\r\n border-bottom: 1px solid;\r\n border-color: ${({ theme }) => theme.siteWideAnnouncement.announcementThemes.yellow.borderColor};\r\n\r\n path {\r\n fill: ${({ theme }) => theme.siteWideAnnouncement.announcementThemes.pathFillColor};\r\n }\r\n `,\r\n Red: css`\r\n background-color: ${({ theme }) => theme.siteWideAnnouncement.announcementThemes.red.background};\r\n border-bottom: 1px solid;\r\n border-color: ${({ theme }) => theme.siteWideAnnouncement.announcementThemes.red.borderColor};\r\n\r\n path {\r\n fill: ${({ theme }) => theme.siteWideAnnouncement.announcementThemes.pathFillColor};\r\n }\r\n `\r\n};\r\n\r\nconst handleAnnouncementTheme = ({ alertStyle }) => announcementThemes[alertStyle];\r\n\r\nexport const AnnouncementWrapper = styled.div`\r\n ${handleAnnouncementTheme}\r\n\r\n align-items: flex-start;\r\n color: ${({ theme }) => theme.siteWideAnnouncement.announcementWrapper.color};\r\n display: flex;\r\n position: relative;\r\n z-index: ${depth.HEADER - 1};\r\n\r\n ${({ theme }) => spacing({ theme, p: { xs: 3, md: 2 } })};\r\n\r\n @media print {\r\n path {\r\n fill: ${({ theme }) => theme.siteWideAnnouncement.announcementWrapper.pathFillColor};\r\n }\r\n }\r\n`;\r\n\r\nexport const IconWrapper = styled.div`\r\n ${svg(20, 20)}\r\n width: 20px;\r\n flex-shrink: 0;\r\n position: relative;\r\n top: 0px;\r\n\r\n ${({ theme }) => spacing({ theme, mb: { xs: '18px', md: 0 } })};\r\n\r\n ${mq('md')} {\r\n top: 2px;\r\n }\r\n`;\r\n\r\nexport const TextWrapper = styled.div`\r\n ${({ theme }) => spacing({ theme, ml: 2 })};\r\n width: calc(100% - 60px);\r\n`;\r\n\r\nexport const TitleWrapper = styled.h2`\r\n ${({ theme }) => theme.siteWideAnnouncement.titleWrapper.heading2};\r\n color: inherit;\r\n margin: 0;\r\n font-weight: bold !important;\r\n &:focus {\r\n ${safeFocusRemoval}\r\n ${focusOutline}\r\n }\r\n\r\n &:hover {\r\n text-decoration: none;\r\n }\r\n`;\r\n\r\nexport const Content = styled(RichText)`\r\n ${({ theme }) => theme.siteWideAnnouncement.content.richText};\r\n margin: 0;\r\n ${({ theme }) => spacing({ theme, mt: '4px' })};\r\n\r\n a {\r\n color: inherit;\r\n &:hover {\r\n text-decoration: none;\r\n }\r\n }\r\n`;\r\n\r\nexport const Trigger = styled.button`\r\n border: 0;\r\n background: none;\r\n cursor: pointer;\r\n flex-shrink: 0;\r\n height: 24px;\r\n padding: 0;\r\n position: absolute;\r\n right: 16px;\r\n top: 16px;\r\n ${({ theme }) => spacing({ theme, ml: 1 })};\r\n ${hideOnPrint}\r\n\r\n &:focus {\r\n ${safeFocusRemoval}\r\n ${focusOutline}\r\n }\r\n`;\r\n\r\nexport const ButtonWrapper = styled.div`\r\n display: flex;\r\n flex-wrap: wrap;\r\n`\r\n\r\nexport const AnnouncementCTA = styled(Link)`\r\n ${({ theme }) => spacing({ theme, mt: '12px', mr: '16px' })};\r\n\r\n a {\r\n ${button('slim', 'announcementTertiary')};\r\n ${({ theme }) => theme.siteWideAnnouncement.announcementCta.heading2};\r\n\r\n ${mq.lessThan('md')} {\r\n width: 100%;\r\n }\r\n\r\n path {\r\n fill: currentColor;\r\n }\r\n }\r\n`;\r\n\r\nexport const SecondaryButton = styled(Link)`\r\n ${({ theme }) => spacing({ theme, mt: '12px' })};\r\n \r\n a {\r\n ${({ theme }) => theme.siteWideAnnouncement.announcementCta.heading2};\r\n ${mq.lessThan('md')} {\r\n width: 100%;\r\n }\r\n color: inherit;\r\n path {\r\n fill: currentColor;\r\n }\r\n }\r\n`;\r\n","import { Text } from '@sitecore-jss/sitecore-jss-react';\r\nimport { compose } from 'ramda'\r\nimport React, { useState, useEffect } from 'react';\r\nimport { createPortal } from 'react-dom';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport Icon from '_components/Icon';\r\nimport { withCoveoNoIndexTags } from '_containers/BaseComponent';\r\nimport { getPortal, Portals } from '_utils/helpers';\r\n\r\nimport { SiteWideAnnouncementProps } from '../definitions';\r\n\r\nimport {\r\n ButtonWrapper,\r\n AnnouncementCTA,\r\n SecondaryButton,\r\n AnnouncementWrapper,\r\n TitleWrapper,\r\n Content,\r\n TextWrapper,\r\n IconWrapper,\r\n Trigger,\r\n} from './StyledSiteWideAnnouncement';\r\n\r\nconst Icons = {\r\n Blue: ,\r\n Yellow: ,\r\n Red: \r\n};\r\n\r\nconst SiteWideAnnouncement: React.FC = ({\r\n description,\r\n dismissable,\r\n id,\r\n link,\r\n secondaryLink,\r\n title,\r\n type,\r\n setAnnouncementDismissed,\r\n}) => {\r\n const [t] = useTranslation();\r\n const [hidden, setHidden] = useState(false);\r\n\r\n const handleClickDismiss = () => {\r\n setHidden(true);\r\n\r\n if (setAnnouncementDismissed) {\r\n setAnnouncementDismissed();\r\n }\r\n };\r\n\r\n const portal = getPortal(Portals.before);\r\n\r\n // Stops spacing going out of whack\r\n if (hidden || portal === null) {\r\n return null;\r\n }\r\n\r\n const hasDescription = description?.value !== '';\r\n\r\n return createPortal(\r\n \r\n }\r\n \r\n {validItems.map((item, index) => (\r\n \r\n \r\n \r\n ))}\r\n\r\n \r\n \r\n }\r\n\r\n {shouldShowCTA && }\r\n\r\n {/* display Ad below CTA for mobile breakpoints when position is 'left' */}\r\n {advertisment && ['sm', 'xs'].includes(bp) && adPosition === 'left' &&\r\n \r\n \r\n \r\n }\r\n \r\n \r\n : null);\r\n};\r\n\r\nexport default\r\n compose(\r\n withDataSourceValidation(featureSectionWithAdFieldValidators),\r\n withEditMode\r\n )(FeatureSectionWithAd);\r\n","import { Image as SCImage } from '@sitecore-jss/sitecore-jss-react';\r\nimport styled from 'styled-components';\r\nimport {\r\n fixedBody14,\r\n fixedTitle12,\r\n headingH5,\r\n hideOnPrint,\r\n linkFeatured,\r\n mq\r\n} from '_utils/styles';\r\nimport { Link } from '_utils/components';\r\nimport { spacing } from '_utils/props';\r\n\r\nexport const Container = styled.div`\r\n background-color: ${({ theme }) =>\r\n theme.magazineBanner.container.sidebar.background};\r\n display: flex;\r\n padding: 16px;\r\n\r\n ${mq('md')} {\r\n flex-direction: column;\r\n justify-content: center;\r\n text-align: center;\r\n }\r\n\r\n ${({ theme }) => spacing({ theme, p: { md: '24px', lg: 4 } })};\r\n\r\n ${hideOnPrint}\r\n`;\r\n\r\nexport const ClickableWrapper = styled.div`\r\n display: inline-block;\r\n text-decoration: none;\r\n`;\r\n\r\nexport const CoverImage = styled(SCImage)`\r\n font-family: 'object-fit: cover;';\r\n object-fit: cover;\r\n\r\n ${mq('md')} {\r\n width: 100%;\r\n }\r\n`;\r\n\r\nexport const CoverImageWrapper = styled.figure`\r\n margin: 0;\r\n`;\r\n\r\nexport const ContentWrapper = styled.div`\r\n padding-top: 16px;\r\n\r\n ${mq.lessThan('md')} {\r\n ${({ theme }) => spacing({ theme, ml: '16px', my: 1 })};\r\n align-items: flex-start;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n padding-top: unset;\r\n }\r\n`;\r\n\r\nexport const Title = styled.span`\r\n ${fixedTitle12}\r\n color: ${({ theme }) => theme.magazineBanner.title.color};\r\n font-weight: 800;\r\n margin-bottom: 8px;\r\n text-transform: uppercase;\r\n`;\r\n\r\nexport const Label = styled.h5`\r\n ${headingH5}\r\n color: ${({ theme }) => theme.magazineBanner.title.color};\r\n`;\r\n\r\nexport const LinkItem = styled(Link)`\r\n padding-top: 16px;\r\n a {\r\n ${linkFeatured}\r\n ${fixedBody14}\r\n color: ${({ theme }) => theme.magazineBanner.link.color};\r\n display: inline-block;\r\n font-weight: 800;\r\n padding-right: 30px;\r\n position: relative;\r\n text-transform: uppercase;\r\n\r\n &:hover {\r\n color: ${({ theme }) => theme.magazineBanner.link.hoverColor};\r\n text-decoration: underline;\r\n }\r\n\r\n :after {\r\n background-image: url('data:image/svg+xml,%3Csvg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"%3E%3Cpath d=\"M8 0L6.59 1.41L12.17 7H0V9H12.17L6.59 14.59L8 16L16 8L8 0Z\" fill=\"%23${({ theme }) => theme.magazineBanner.link.iconColor.replace('#', '')}\"/%3E%3C/svg%3E');\r\n background-size: 18px 18px;\r\n background-position: center center;\r\n background-repeat: no-repeat;\r\n content: '';\r\n height: 100%;\r\n position: absolute;\r\n right: 0;\r\n top: 0;\r\n transition: background-image 0.1s linear, color 0.1s linear, background-color 0.1s linear;\r\n width: 20px;\r\n }\r\n }\r\n\r\n`;\r\n","import React from 'react';\r\nimport { Text } from '@sitecore-jss/sitecore-jss-react';\r\n\r\nimport { ImageSize } from '_utils/types/enums';\r\nimport {\r\n createSrcSet,\r\n} from '_utils/media';\r\n\r\nimport {\r\n ClickableWrapper,\r\n Container,\r\n ContentWrapper,\r\n CoverImage,\r\n CoverImageWrapper,\r\n Label,\r\n LinkItem,\r\n Title,\r\n} from \"./StyledSidebarMagazineBanner\";\r\n\r\nimport { MagazineBannerProps } from \"./definitions\";\r\n\r\n\r\nconst SidebarMagazineBanner: React.FC = ({\r\n componentLabel,\r\n coverImage,\r\n ctaLabel,\r\n editMode,\r\n link,\r\n title,\r\n uid\r\n}) => {\r\n const linkItem = { ...link?.jss?.value, target: '_blank' }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n <Text\r\n field={{ value: title }}\r\n editable={false}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default SidebarMagazineBanner;","import { Image as SCImage } from '@sitecore-jss/sitecore-jss-react';\r\nimport styled from 'styled-components';\r\nimport {\r\n button,\r\n hideOnPrint,\r\n linkWithoutVisited,\r\n mq,\r\n textBody1,\r\n} from '_utils/styles';\r\nimport {\r\n Grid,\r\n Link,\r\n} from '_utils/components';\r\nimport { spacing } from '_utils/props';\r\n\r\nexport const Container = styled.div`\r\n background-color: ${({ theme }) => theme.magazineBanner.container.column.background};\r\n border-bottom: 4px solid ${({ theme }) => theme.magazineBanner.container.column.border};\r\n\r\n &.hide-on-mobile {\r\n ${mq.lessThan('md')} {\r\n display: none;\r\n }\r\n }\r\n\r\n ${hideOnPrint}\r\n`;\r\n\r\n\r\nexport const ClickableWrapper = styled.div`\r\n text-decoration: none;\r\n\r\n &:focus {\r\n outline-color: ${({ theme }) => theme.magazineBanner.container.column.border} !important;\r\n outline-offset: 0px !important;\r\n outline-width: 2px !important;\r\n outline-style: solid !important;\r\n }\r\n`;\r\n\r\nexport const PageContainer = styled(Grid.Container)`\r\n display: flex;\r\n\r\n ${mq.lessThan('md')} {\r\n ${({ theme }) => spacing({ theme, py: 5 })};\r\n }\r\n`;\r\n\r\nexport const ContentWrapper = styled.div`\r\n align-items: center;\r\n display: flex;\r\n justify-content: flex-start;\r\n width: 100%;\r\n\r\n ${mq.lessThan('md')} {\r\n align-items: flex-start;\r\n justify-content: flex-start;\r\n flex-direction: column;\r\n margin-left: 16px;\r\n margin-right: 20px;\r\n }\r\n`\r\n\r\nexport const CoverImageWrapper = styled.figure`\r\n margin: 0;\r\n float: left;\r\n\r\n ${mq('md')} {\r\n clip-path: inset(0px 0px 18px 0px);\r\n ${({ theme }) => spacing({ theme, mr: 4, mt: 2, mb: '-18px' })};\r\n }\r\n`;\r\n\r\nexport const CoverImage = styled(SCImage)`\r\n font-family: 'object-fit: cover;';\r\n object-fit: cover;\r\n\r\n ${mq.lessThan('md')} {\r\n margin-top: unset;\r\n }\r\n`\r\n\r\nexport const Title = styled.span`\r\n color: ${({ theme }) => theme.magazineBanner.title.color};\r\n font-weight: 800;\r\n ${textBody1}\r\n`;\r\n\r\nexport const ComponentLabel = styled.span`\r\n ${textBody1}\r\n color: ${({ theme }) => theme.magazineBanner.title.color};\r\n\r\n :before {\r\n content: '\\\\00a0•\\\\00a0';\r\n\r\n ${mq.lessThan('md')} {\r\n content: '';\r\n padding-bottom: 12px;\r\n }\r\n }\r\n`;\r\n\r\nexport const LinkButton = styled(Link)`\r\n float: right;\r\n margin-left: auto;\r\n color: ${({ theme }) => theme.magazineBanner.link.color};\r\n\r\n a {\r\n ${linkWithoutVisited};\r\n ${button('slim', 'tertiaryDark')};\r\n border-bottom: none;\r\n border-radius: 2px;\r\n display: inline-block;\r\n padding-right: 38px;\r\n position: relative;\r\n\r\n &:focus {\r\n box-shadow: 0 0 0 3px;\r\n text-decoration: none;\r\n outline: none;\r\n border: none;\r\n }\r\n\r\n &:focus::before {\r\n border: none !important;\r\n }\r\n\r\n &:focus-within {\r\n text-decoration: none;\r\n outline: none;\r\n }\r\n\r\n :after {\r\n background-image: url('data:image/svg+xml,%3Csvg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"%3E%3Cpath d=\"M8 0L6.59 1.41L12.17 7H0V9H12.17L6.59 14.59L8 16L16 8L8 0Z\" fill=\"%23${({ theme }) => theme.magazineBanner.button.iconColor.replace('#', '')}\"/%3E%3C/svg%3E');\r\n background-size: 14px 14px;\r\n background-position: center center;\r\n background-repeat: no-repeat;\r\n content: '';\r\n height: 100%;\r\n position: absolute;\r\n right: 10px;\r\n top: 0;\r\n transition: background-image 0.1s linear, color 0.1s linear, background-color 0.1s linear;\r\n width: 20px;\r\n }\r\n ${mq('md')} {\r\n width: auto;\r\n }\r\n\r\n }\r\n\r\n ${mq.lessThan('md')} {\r\n margin-top: 12px;\r\n margin-left: unset;\r\n float: unset;\r\n }\r\n`;","import React from 'react';\r\nimport { Text } from '@sitecore-jss/sitecore-jss-react';\r\n\r\nimport { ImageSize } from '_utils/types/enums';\r\nimport {\r\n createSrcSet,\r\n} from '_utils/media';\r\n\r\nimport {\r\n ClickableWrapper,\r\n ComponentLabel,\r\n Container,\r\n ContentWrapper,\r\n CoverImage,\r\n CoverImageWrapper,\r\n LinkButton,\r\n PageContainer,\r\n Title,\r\n} from \"./StyledColumnMagazineBanner\";\r\n\r\nimport { MagazineBannerProps } from \"./definitions\";\r\n\r\nconst ColumnMagazineBanner: React.FC = ({\r\n componentLabel,\r\n coverImage,\r\n ctaLabel,\r\n editMode,\r\n hideOnMobile,\r\n link,\r\n title,\r\n uid\r\n}) => {\r\n const linkItem = { ...link?.jss?.value, target: '_blank' }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n <Text\r\n field={{ value: title }}\r\n editable={false}\r\n />\r\n \r\n {componentLabel}\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default ColumnMagazineBanner;","\r\nimport { compose } from 'ramda';\r\nimport React from 'react';\r\n\r\nimport { withCoveoNoIndexTags } from '_containers/BaseComponent';\r\n\r\nimport { getDictionaryItem } from '_utils/data/dictionaryItem';\r\n\r\nimport { MagazineBannerRenderingProps } from './definitions';\r\n\r\nimport SidebarMagazineBanner from './SidebarMagazineBanner';\r\nimport ColumnMagazineBanner from './ColumnMagazineBanner';\r\n\r\n\r\nconst MagazineBanner: React.FC = ({\r\n rendering,\r\n editMode,\r\n}) => {\r\n const uid = rendering?.uid;\r\n const magazine = rendering?.fields?.data?.datasource?.latestMagazine?.targetItem;\r\n if (!magazine) {\r\n return null;\r\n }\r\n\r\n const coverImage = magazine.coverImage?.jss;\r\n const title = magazine.title?.value;\r\n const link = magazine.url;\r\n\r\n const isSidebarVariant = rendering?.params?.sidebarVariant || false;\r\n const hideOnMobile = rendering?.params?.hideOnMobile || false;\r\n\r\n const componentLabel = rendering?.fields?.data?.datasource?.componentLabel?.value;\r\n const ctaLabel = rendering?.fields?.data?.datasource?.ctaLabel?.value;\r\n\r\n return (\r\n <>\r\n {!isSidebarVariant &&\r\n \r\n }\r\n\r\n {isSidebarVariant &&\r\n \r\n }\r\n \r\n )\r\n};\r\n\r\nexport default compose(withCoveoNoIndexTags)(MagazineBanner);","import React from 'react';\r\nimport { Carousel } from '_utils/components';\r\n\r\nconst ItemWrapper = ({ carouselEnabled, children, trackingName }) =>\r\n \r\n {children}\r\n ;\r\n\r\nexport default ItemWrapper;\r\n","import styled from 'styled-components';\r\n\r\nimport {\r\n Grid,\r\n} from '_utils/components';\r\nimport {\r\n Container as CarouselContainer,\r\n PrevNextPosition,\r\n} from '_utils/components/Carousel/StyledCarousel';\r\nimport {\r\n headingH3,\r\n hideOnPrint,\r\n mq,\r\n} from '_utils/styles';\r\nimport { spacing } from '_utils/props';\r\n\r\nexport const Heading = styled.h3`\r\n ${headingH3}\r\n ${({ theme }) => spacing({\r\n theme,\r\n mb: {\r\n xs: 1,\r\n md: 3,\r\n }\r\n})}\r\n`;\r\n\r\nexport const ListItem = styled(Grid.Item)`\r\n display: flex;\r\n flex-direction: column;\r\n padding: 0;\r\n overflow: visible;\r\n\r\n // shadow only on image, not on entire card\r\n a img {\r\n box-shadow: ${({ theme }) => theme.shadows.elevation8};\r\n }\r\n\r\n a:hover img {\r\n box-shadow: ${({ theme }) => theme.shadows.elevation16};\r\n }\r\n\r\n a:active img {\r\n box-shadow: ${({ theme }) => theme.shadows.elevation4};\r\n }\r\n`;\r\n\r\nexport const Container = styled.div`\r\n overflow: visible;\r\n\r\n ${hideOnPrint}\r\n\r\n .flickity-page-dots {\r\n bottom: -16px;\r\n\r\n ${mq('md')} {\r\n bottom: -24px;\r\n }\r\n }\r\n\r\n // if carousel, ensure shadows aren't cut off and apply negative margin to extend full width in < lg breakpoints\r\n ${CarouselContainer} {\r\n width: ${({ theme }) => `calc(100% + ${theme.grid.gutter.size.xs * 2.5}px)`};\r\n\r\n ${mq('md')} {\r\n width: ${({ theme }) => `calc(100% + ${theme.grid.gutter.size.md}px)`};\r\n }\r\n\r\n ${mq('lg')} {\r\n width: calc(100% + 24px);\r\n }\r\n\r\n // fixes for display box shadow LHS\r\n .flickity-viewport {\r\n transform: translateX(-16px);\r\n\r\n ${mq.between('md', 'lg')} {\r\n width: calc(100% + 16px);\r\n }\r\n }\r\n\r\n .flickity-slider {\r\n\r\n ${mq('lg')} {\r\n width: 100%;\r\n }\r\n\r\n ${ListItem} {\r\n ${({ theme }) => spacing({\r\n theme,\r\n pl: '16px',\r\n pr: {\r\n md: `8px`,\r\n },\r\n py: {\r\n xs: 1,\r\n md: 1,\r\n lg: 1,\r\n },\r\n })}\r\n }\r\n }\r\n\r\n ${PrevNextPosition} {\r\n top: calc(50% - 32px);\r\n\r\n &.prev {\r\n left: 0;\r\n\r\n ${mq('lg')} {\r\n left: 44px;\r\n }\r\n }\r\n\r\n &.next {\r\n right: 36px;\r\n\r\n ${mq('md')} {\r\n right: 24px;\r\n }\r\n\r\n ${mq('lg')} {\r\n right: 70px;\r\n }\r\n }\r\n }\r\n }\r\n`;\r\n","import { Image as SCImage } from '@sitecore-jss/sitecore-jss-react';\r\nimport styled, { css } from 'styled-components';\r\n\r\nimport Grid from '_utils/components/Grid';\r\n\r\nimport {\r\n aspect,\r\n avoidPageBreakOnPrint,\r\n mq,\r\n textBody2\r\n} from '_utils/styles';\r\n\r\nconst container = css`\r\n color: inherit;\r\n display: flex;\r\n flex-direction: row;\r\n flex: 1 0 auto;\r\n position: relative;\r\n text-decoration: none;\r\n width: 100%;\r\n\r\n ${mq('md')} {\r\n height: 100%;\r\n }\r\n`;\r\n\r\nexport const PlaceholderCard = styled(Grid.Item)``;\r\n\r\nexport const Card = styled.a`\r\n ${container}\r\n display: flex;\r\n flex-direction: column;\r\n height: auto;\r\n\r\n ${avoidPageBreakOnPrint}\r\n`;\r\n\r\nexport const ImageContainer = styled.div`\r\n transition-duration: ${({ theme }) => theme.motion.timing.fast};\r\n transition-property: box-shadow;\r\n transition-timing-function: ${({ theme }) => theme.motion.ease};\r\n\r\n ${aspect(304, 382)}\r\n position: relative;\r\n width: 100%;\r\n`;\r\n\r\nexport const Image = styled(SCImage)`\r\n font-family: 'object-fit: cover;';\r\n height: 100%;\r\n left: 0;\r\n object-fit: cover;\r\n position: absolute;\r\n right: 0;\r\n top: 0;\r\n width: 100%;\r\n`;\r\n\r\nexport const Title = styled.h5`\r\n ${textBody2}\r\n color: ${({ theme }) => theme.colors.text.contrast};\r\n flex-grow: auto;\r\n font-weight: 800;\r\n margin-bottom: 0 !important;\r\n margin-top: 16px;\r\n text-align: center;\r\n`;\r\n","import { canUseDOM } from 'exenv';\r\nimport { compose } from 'ramda';\r\nimport React from 'react';\r\n\r\nimport {\r\n CoveoNoIndexWrapper,\r\n withDataSourceValidation,\r\n withEditMode,\r\n} from '_containers/BaseComponent';\r\n\r\nimport { getDictionaryItem } from '_utils/data/dictionaryItem';\r\nimport { getImageAttrsByRatio } from '_utils/helpers/image';\r\nimport { useBreakpoint } from '_utils/hooks/useBreakpoint';\r\nimport {\r\n createSrcSet,\r\n} from '_utils/media';\r\nimport { imagePlaceholderSrc } from '_utils/styles';\r\nimport {\r\n ImageRatio,\r\n ImageSize\r\n} from '_utils/types/enums';\r\n\r\nimport { MagazineIssuesCarouselProps } from './definitions';\r\nimport { magazineCarouselFieldValidators } from './validation';\r\n\r\nimport ItemsWrapper from './ItemsWrapper';\r\n\r\nimport {\r\n Container,\r\n Heading,\r\n ListItem,\r\n} from './StyledMagazineIssuesCarousel';\r\n\r\nimport {\r\n Card,\r\n ImageContainer,\r\n Image,\r\n Title\r\n} from './StyledItem';\r\n\r\nconst MagazineIssuesCarousel: React.FC = ({ rendering, editMode }) => {\r\n\r\n const fields = rendering?.fields?.data?.datasource || {};\r\n const uid = rendering?.uid || null;\r\n const magazineList = rendering?.fields?.data?.datasource?.magazineList?.targetItems || [];\r\n\r\n // Here is to deal with the magazine data\r\n const layerOneItems = Object.values(magazineList)?.filter(item => item.__typename !== \"MagazineFolder\")\r\n\r\n let magazineItems = []\r\n\r\n Object.values(magazineList).forEach(item => {\r\n\r\n if (item.__typename === \"MagazineFolder\" && item.children) {\r\n magazineItems = magazineItems.concat(item.children);\r\n }\r\n })\r\n\r\n layerOneItems.forEach(item => {\r\n const existingItem = magazineItems.find(child => child.id === item.id);\r\n if (!existingItem) {\r\n const {id, title, image, link} = item\r\n const cleanItem = {id, title, image, link} \r\n magazineItems.push(cleanItem);\r\n }\r\n });\r\n\r\n const heading = fields?.heading?.jss;\r\n const items = magazineItems || [];\r\n const trackingName = fields?.trackingName?.jss;\r\n const validItems = !editMode ? items.filter((item) => item?.link?.jss?.value?.href) : items;\r\n const hasItems = editMode || (validItems?.length > 0);\r\n\r\n const readTitleDictionaryItem = getDictionaryItem('magazine-issue-carousel-read-label', 'Read {0}');\r\n\r\n // carousel functionality\r\n // define how many cards required to trigger carousel behaviour\r\n const bp = useBreakpoint();\r\n const numValidItemsToRenderCarousel = {\r\n xs: 3,\r\n sm: 3,\r\n md: 3,\r\n lg: 4,\r\n xl: 4,\r\n };\r\n\r\n const carouselEnabled =\r\n !editMode &&\r\n canUseDOM &&\r\n validItems?.length >= numValidItemsToRenderCarousel[bp];\r\n\r\n const responsiveColumnConfig =\r\n {\r\n col: {\r\n xs: 5,\r\n md: 5,\r\n lg: 4,\r\n xl: 4,\r\n }\r\n };\r\n\r\n const defaultImageSize = getImageAttrsByRatio(ImageSize.MW_384, ImageRatio.Ratio_2By3);\r\n\r\n return (\r\n \r\n {(editMode || hasItems) &&\r\n \r\n {(heading) && (\r\n \r\n {heading?.value}\r\n \r\n )}\r\n {hasItems &&\r\n \r\n {validItems.map((item, index) => (\r\n \r\n \r\n \r\n \r\n \r\n {readTitleDictionaryItem.replace(/\\{0\\}/ig, item?.title?.jss?.value ?? '')}\r\n \r\n \r\n ))}\r\n \r\n }\r\n \r\n }\r\n \r\n );\r\n};\r\n\r\nexport default\r\n compose(\r\n withDataSourceValidation(magazineCarouselFieldValidators),\r\n withEditMode\r\n )(MagazineIssuesCarousel);\r\n","import { SitecoreFieldValidator } from '_utils/validationChecks/definitions';\r\n\r\n// Validation is not that good as previous, content team need additional effort\r\nexport const magazineCarouselFieldValidators: SitecoreFieldValidator[] = [\r\n {\r\n field: 'rendering.fields.data.datasource.heading.jss.value',\r\n errorMessage: 'Heading is required',\r\n required: true\r\n },\r\n {\r\n field: 'rendering.fields.data.datasource.magazineList.targetItems',\r\n errorMessage: 'At least one card must be provided',\r\n minLength: 1\r\n }\r\n];\r\n","import { Image as SCImage } from '@sitecore-jss/sitecore-jss-react';\r\nimport { Link } from 'react-router-dom';\r\nimport styled from 'styled-components';\r\n\r\nimport {\r\n Grid,\r\n} from '_utils/components';\r\n\r\nimport { spacing } from '_utils/props';\r\n\r\nimport {\r\n button,\r\n hideOnPrint,\r\n mq,\r\n subheading2,\r\n} from '_utils/styles';\r\n\r\nexport const Container = styled.div`\r\n background-color: ${({ theme }) => theme?.magazinePageBanner?.background};\r\n\r\n ${hideOnPrint}\r\n`;\r\n\r\nexport const PageContainer = styled(Grid.Container)`\r\n display: flex;\r\n ${({ theme }) =>\r\n spacing({\r\n theme,\r\n pt: { xs: 7 },\r\n pb: { xs: 5, md: 0 }\r\n })};\r\n\r\n ${mq.lessThan('md')} {\r\n flex-direction: column;\r\n }\r\n\r\n ${mq('md')} {\r\n min-height: 412px;\r\n }\r\n\r\n ${mq('lg')} {\r\n min-height: 484px;\r\n }\r\n`;\r\n\r\nexport const ContentWrapper = styled.div`\r\n display: flex;\r\n justify-content: flex-start;\r\n flex-direction: column;\r\n\r\n ${mq('md')} {\r\n ${({ theme }) => spacing({ theme, py: { md: 5, lg: 8 } })};\r\n }\r\n`\r\n\r\nexport const CoverImageWrapper = styled.figure`\r\n margin: 0 auto;\r\n width: 208px;\r\n\r\n ${mq('md')} {\r\n clip-path: inset(0px 0px 24px 0px);\r\n flex-shrink: 0;\r\n ${({ theme }) =>\r\n spacing({\r\n theme,\r\n mb: -3,\r\n ml: 0,\r\n mr: { md: 5, lg: 7 },\r\n mt: 0,\r\n })};\r\n width: 304px;\r\n }\r\n\r\n ${mq('lg')} {\r\n width: 386px;\r\n }\r\n\r\n`;\r\n\r\nexport const CoverImage = styled(SCImage)`\r\n font-family: 'object-fit: cover;';\r\n object-fit: cover;\r\n`\r\nexport const Title = styled.h1`\r\n color: ${({ theme }) => theme?.magazinePageBanner?.color};\r\n`;\r\n\r\nexport const Description = styled.p`\r\n color: ${({ theme }) => theme?.magazinePageBanner?.color};\r\n ${subheading2}\r\n`;\r\n\r\nexport const LinkButton = styled.a`\r\n ${button('default', 'primary')};\r\n ${({ theme }) => spacing({ theme, mt: 3 })};\r\n width: auto;\r\n\r\n ${mq.lessThan('md')} {\r\n margin-top: 12px;\r\n }\r\n\r\n ${mq('md')} {\r\n margin-right: auto;\r\n }\r\n`;\r\n","import { Text } from '@sitecore-jss/sitecore-jss-react';\r\nimport { compose } from 'ramda';\r\nimport React from 'react';\r\n\r\nimport { withDataSourceValidation, withEditMode } from '_containers/BaseComponent';\r\n\r\nimport { getImageAttrsByRatio } from '_utils/helpers/image';\r\nimport {\r\n createSrcSet,\r\n} from '_utils/media';\r\nimport { imagePlaceholderSrc } from '_utils/styles';\r\nimport { ImageSize, ImageRatio } from '_utils/types/enums';\r\n\r\nimport {\r\n Container,\r\n ContentWrapper,\r\n CoverImage,\r\n CoverImageWrapper,\r\n Description,\r\n LinkButton,\r\n PageContainer,\r\n Title,\r\n} from \"./StyledMagazinePageBanner\";\r\n\r\nimport { MagazinePageBannerRenderingProps } from './definitions';\r\n\r\nimport { magazinePageBannerValidators } from './validation';\r\n\r\nconst MagazinePageBanner: React.FC = ({\r\n editMode,\r\n rendering,\r\n}) => {\r\n const uid = rendering?.uid;\r\n const magazine = rendering?.fields?.data?.datasource?.latestMagazine?.targetItem;\r\n\r\n if (!magazine && !editMode) {\r\n return null;\r\n }\r\n\r\n const coverImage = magazine?.coverImage?.jss;\r\n const title = magazine?.title?.value;\r\n const link = magazine?.url;\r\n const description = rendering?.fields?.data?.pageFields?.description?.value;\r\n const ctaLabel = rendering?.fields?.data?.datasource?.ctaLabel?.value;\r\n\r\n const defaultImageSize = getImageAttrsByRatio(ImageSize.MW_384, ImageRatio.Ratio_2By3);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n <Text\r\n field={{ value: title }}\r\n editable={false}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n {ctaLabel}\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default compose(\r\n withEditMode,\r\n withDataSourceValidation(magazinePageBannerValidators, false),\r\n)(MagazinePageBanner);\r\n","import { SitecoreFieldValidator } from '_utils/validationChecks/definitions';\r\n\r\nexport const magazinePageBannerValidators: SitecoreFieldValidator[] = [\r\n {\r\n field: 'rendering.fields.data.datasource.latestMagazine.targetItem.id',\r\n errorMessage: 'Magazine Page Banner component needs to point to a magazine datasource item',\r\n required: true,\r\n }\r\n];\r\n","import { DigitalDataContextProps } from '_containers/DigitalDataContext/definitions'\r\n\r\nexport type MetadataProps = DigitalDataContextProps & {\r\n rendering: {\r\n fields: {\r\n data: {\r\n contextItem: {\r\n categoryInformation?: {\r\n categoryLabelText?: string;\r\n categoryUrl?: string;\r\n enterpriseTopic?: string;\r\n };\r\n }\r\n }\r\n };\r\n };\r\n};\r\n\r\nexport const CONTRIBUTOR_TEMPLATE = 'itb contributor page';\r\nexport const TOPIC_TEMPLATE = 'itb topic page';\r\nexport const CATEGORY_TEMPLATE = 'itb category page';\r\nexport const ARTICLE_ADVERTORIAL_TEMPLATE = 'itb article advertorial';\r\nexport const ARTICLE_SPONSORED_TEMPLATE = 'itb article sponsored';\r\nexport const ARTICLE_STANDARD_TEMPLATE = 'itb article standard';","import { canUseDOM } from 'exenv';\r\n\r\nimport { DateData } from '_utils/helpers/dateConverter';\r\n\r\nimport {\r\n ARTICLE_ADVERTORIAL_TEMPLATE,\r\n ARTICLE_SPONSORED_TEMPLATE,\r\n ARTICLE_STANDARD_TEMPLATE,\r\n CATEGORY_TEMPLATE,\r\n CONTRIBUTOR_TEMPLATE,\r\n TOPIC_TEMPLATE\r\n} from './definitions';\r\n\r\nexport const setSection = (path): string => {\r\n if (!canUseDOM) {\r\n return '';\r\n }\r\n\r\n if (path === '/') {\r\n return 'home:';\r\n }\r\n\r\n return path.substring(1).replace(/\\//g, ':').toLowerCase();\r\n};\r\n\r\n/**\r\n * @param {Array} data = optimistically: fields?.multimediaType[index]?.fields?.displayName?.value (object array).\r\n * @returns empty or comma delimited string.\r\n */\r\nexport const getMultiMediaTypes = (data: Array): string => {\r\n if (data === undefined) {\r\n return '';\r\n }\r\n\r\n return data\r\n .map((p) => (p?.fields?.displayName?.value))\r\n .join(',');\r\n};\r\n\r\n/**\r\n * @param {object} fields - from sitecore route\r\n * @param {string} templateName - from sitecore route\r\n * @returns comma delimited string or undefined.\r\n */\r\nexport const getContributors = (fields: any, templateName: string): string | undefined => {\r\n if (fields === undefined) {\r\n return undefined;\r\n }\r\n\r\n if (templateName.toLowerCase() === CONTRIBUTOR_TEMPLATE) {\r\n return fields?.fullName?.value;\r\n }\r\n\r\n if (!fields?.contributors) {\r\n return undefined;\r\n }\r\n\r\n const fullNames = fields.contributors\r\n .filter((p) => (p?.fields?.fullName?.value !== undefined && p?.fields?.fullName?.value !== ''))\r\n .map((p) => (p?.fields?.fullName?.value));\r\n\r\n return fullNames.length > 0\r\n ? fullNames.join(',')\r\n : undefined;\r\n};\r\n\r\n/**\r\n * @param {object} route - sitecore route\r\n * @returns comma delimited string or undefined.\r\n */\r\nexport const getTopicTags = (route: any) => {\r\n if (route.templateName.toLowerCase() === TOPIC_TEMPLATE) {\r\n return route?.displayName;\r\n }\r\n\r\n let topicTags = '';\r\n if (route?.fields?.topicKeywords?.length) {\r\n topicTags = route?.fields?.topicKeywords\r\n .map(tag => tag?.displayName ?? '')\r\n .join(',');\r\n }\r\n return topicTags;\r\n}\r\n\r\n/**\r\n * @param {object} route - sitecore route\r\n * @param {object} rendering - rendering data source\r\n * @returns comma delimited string or undefined.\r\n */\r\n export const getPrimaryTopic = (route: any, rendering: any) => {\r\n if (route.templateName.toLowerCase() === CATEGORY_TEMPLATE) {\r\n return route?.displayName;\r\n }\r\n \r\n return rendering?.fields?.data?.contextItem?.categoryInformation?.categoryLabelText || '';\r\n}\r\n\r\n/**\r\n * @param {object} route - sitecore route\r\n * @param {object} rendering - rendering data source\r\n * @returns comma delimited string or undefined.\r\n */\r\n export const getEnterpriseTopic = (route: any, rendering: any) => {\r\n if (route.templateName.toLowerCase() === CATEGORY_TEMPLATE) {\r\n return route?.fields?.enterpriseTopic?.displayName || '';\r\n }\r\n \r\n return rendering?.fields?.data?.contextItem?.categoryInformation?.enterpriseTopic || '';\r\n}\r\n\r\n// TODO: this whitelist will need to be managed as article types {templateName}'s change or are added. \r\n/**\r\n * Whitelisted template names that facilitate 'publishedDate' to be included in analytics.\r\n */\r\nconst templateNameWhiteList: Array = [\r\n ARTICLE_ADVERTORIAL_TEMPLATE,\r\n ARTICLE_SPONSORED_TEMPLATE,\r\n ARTICLE_STANDARD_TEMPLATE,\r\n];\r\n\r\n/**\r\n *\r\n * @param {string | undefined} templateName\r\n * @param {DateData | null} dateData\r\n * @returns string - empty if not whitelisted 'itb article {type}' or DateData is null or invalid.\r\n */\r\nexport const getPublishedDate = (templateName: string | undefined, dateData: DateData | null): string => {\r\n if (templateName === undefined || !templateNameWhiteList.includes(templateName.toLocaleLowerCase())) {\r\n return '';\r\n }\r\n if ((dateData == null) || dateData.visualDate == '' || dateData.attrDate == '0001-01-01') {\r\n return '';\r\n }\r\n return dateData.visualDate;\r\n}","export default __webpack_public_path__ + \"static/media/cpa.2942db1a.png\";","import { withSitecoreContext, getFieldValue } from '@sitecore-jss/sitecore-jss-react';\r\nimport { canUseDOM } from 'exenv';\r\nimport { compose, omit } from 'ramda';\r\nimport React, { useEffect } from 'react';\r\nimport { Helmet } from 'react-helmet';\r\nimport { useLocation } from 'react-router';\r\n\r\nimport { withDigitalDataContext } from '_containers/DigitalDataContext';\r\n\r\nimport { dateConverter } from '_utils/helpers';\r\nimport {\r\n emitTrackEvent,\r\n setObjectData,\r\n} from '_utils/helpers/analytics';\r\nimport { DateData } from '_utils/helpers/dateConverter'\r\nimport { warnInDev } from '_utils/helpers/dev';\r\nimport {\r\n MUTATING_CLASS,\r\n STABLE_CLASS,\r\n} from '_utils/helpers/render';\r\nimport { \r\n useScrollDepthAnalyticsTracking,\r\n } from '_utils/hooks';\r\n\r\nimport { MetadataProps } from './definitions';\r\nimport { DISMISSED_ANNOUNCEMENTS_COOKIE_NAME } from '_components/Announcements/definitions';\r\nimport {\r\n getContributors,\r\n getEnterpriseTopic,\r\n getMultiMediaTypes,\r\n getPrimaryTopic,\r\n getPublishedDate,\r\n getTopicTags,\r\n setSection\r\n} from './helpers';\r\nimport cpaLogo from '../../assets/cpa.png';\r\n\r\nconst getCustomMetaTags = (customMetaTags: string): JSX.Element[] => {\r\n let metaTags: JSX.Element[] = [];\r\n\r\n if (customMetaTags) {\r\n let tags = customMetaTags.split('&');\r\n tags.forEach((tag) => {\r\n if (tag.indexOf('=') !== -1) {\r\n const tagParts = tag.split('=');\r\n const extraTag = ;\r\n metaTags.push(extraTag);\r\n }\r\n });\r\n }\r\n\r\n return metaTags;\r\n}\r\n\r\nconst Head: React.FC = (props) => {\r\n \r\n /**\r\n * On Page Load, focus H1. Does not subscribe to a trigger.\r\n */\r\n useEffect(() => {\r\n const firstHeadingOne: null | HTMLHeadElement = document.querySelector(\"h1\");\r\n\r\n if(firstHeadingOne !== null){\r\n firstHeadingOne.tabIndex = -1;\r\n firstHeadingOne.focus();\r\n }\r\n }, []);\r\n\r\n const {\r\n digitalData,\r\n rendering,\r\n setDigitalData,\r\n sitecoreContext,\r\n } = props;\r\n\r\n const route = sitecoreContext?.route || null;\r\n const fields = (route && route.fields) || {};\r\n const templateName = route?.templateName || '';\r\n const seoTitle: string = getFieldValue(fields, 'seoTitle') || '';\r\n const seoDescription: string = getFieldValue(fields, 'seoDescription') || '';\r\n const pageTitle: string = getFieldValue(fields, 'pageTitle') || '';\r\n const pageDescription: string = getFieldValue(fields, 'pageDescription') || '';\r\n const pageListingDescription: string = getFieldValue(fields, 'pageListingDescription') || '';\r\n const language: string = getFieldValue(fields, 'languageType') || 'en';\r\n const featuredImage: any = getFieldValue(fields, 'featuredImage') || null;\r\n const socialSharingImage: any = getFieldValue(fields, 'socialSharingImage') || null;\r\n const noFollow: boolean = getFieldValue(fields, 'noFollow') || false;\r\n const seoCanonicalUrl: boolean = getFieldValue(fields, 'seoCanonicalUrl') || null;\r\n const customMetaTags: string = getFieldValue(fields, 'customTags') || null;\r\n const readTime: string = getFieldValue(fields, 'readingTime') || null;\r\n const publishedDate: string = getFieldValue(fields, 'published') || '';\r\n const multimediaType = getMultiMediaTypes(fields?.multimediaType);\r\n\r\n /**\r\n * Article types:\r\n * Standard: derive comma delimited string of contributors.\r\n * Advertorial or Sponsored: derive sponsor's name\r\n */\r\n const contributor = getContributors(fields, templateName) ?? '';\r\n const sponsor = fields?.sponsor?.fields?.name?.value ?? '';\r\n const contentType = fields?.pageType?.displayName ?? '';\r\n const topicTags = getTopicTags(route);\r\n const primaryTopic = getPrimaryTopic(route, rendering);\r\n const enterpriseTopic = getEnterpriseTopic(route, rendering);\r\n \r\n const formattedPublishedDate: DateData = dateConverter(publishedDate, { isUTC: true, medium: true });\r\n\r\n const extraMetaTags = getCustomMetaTags(customMetaTags);\r\n const canonicalUrl: string = seoCanonicalUrl || sitecoreContext?.canonicalUrl || null;\r\n const dataSource = rendering?.fields?.data?.datasource || null;\r\n const adobeLaunchScriptURL: string = dataSource?.adobeLaunchConfigurationItem?.jss?.fields?.URL?.value ?? '';\r\n const googleAdSrcScriptURL: string = dataSource?.googleAdSrcConfigurationItem?.jss?.fields?.URL?.value ?? '';\r\n const titleSiteName: string = dataSource?.titleSiteName?.value || null;\r\n const ogSiteName: string = dataSource?.ogSiteName?.value || null;\r\n const twitterCreator: string = dataSource?.twitterCreator?.value || null;\r\n const twitterSite: string = dataSource?.twitterSite?.value || null;\r\n\r\n // Set the title to the seoTitle, falling back to the pageTitle if not set or if set to the site title\r\n let title = seoTitle;\r\n if (!title || title === titleSiteName) title = pageTitle;\r\n\r\n // Append the site title\r\n if (title && title !== titleSiteName) {\r\n title = title + \" | \" + titleSiteName;\r\n } else {\r\n title = titleSiteName;\r\n }\r\n\r\n const description = seoDescription || pageDescription;\r\n\r\n let image = socialSharingImage?.src || featuredImage?.src || cpaLogo;\r\n\r\n const { pathname } = useLocation();\r\n\r\n // reset fields that shouldn't persist through SPA\r\n useEffect(() => {\r\n if (typeof setDigitalData === 'function') {\r\n setDigitalData(\r\n omit([\r\n 'accordion',\r\n 'carousel',\r\n 'download',\r\n 'form',\r\n 'search',\r\n 'section',\r\n ], digitalData));\r\n }\r\n\r\n // reset mutation observer classes\r\n if (canUseDOM) {\r\n document.body.classList.remove(MUTATING_CLASS);\r\n document.body.classList.remove(STABLE_CLASS);\r\n }\r\n }, [pathname]);\r\n\r\n // update Adobe Analytics `digitalData` obj\r\n useEffect(() => { \r\n if (typeof setDigitalData === 'function') {\r\n\r\n const updatedPageData = setObjectData(\r\n ['page'],\r\n {\r\n pageDescription: description,\r\n pageListingDescription: pageListingDescription,\r\n pageName: title,\r\n pageurl: pathname,\r\n siteSection: canUseDOM && pathname && `itb:${setSection(pathname)}`,\r\n language: language,\r\n pageType: route?.fields?.analyticsPageType?.value || templateName,\r\n publishedDate: getPublishedDate(templateName, formattedPublishedDate),\r\n primaryTopic,\r\n enterpriseTopic,\r\n readTime,\r\n topicTags,\r\n multimediaType,\r\n contentType,\r\n contributor,\r\n sponsor,\r\n },\r\n digitalData\r\n );\r\n\r\n const updatedDigitalData = {\r\n ...digitalData,\r\n ...updatedPageData,\r\n };\r\n\r\n setDigitalData(\r\n updatedDigitalData\r\n );\r\n\r\n // track page views (for SPA)\r\n if (window?.ssrRenderComplete) {\r\n emitTrackEvent('pageView');\r\n }\r\n }\r\n\r\n // Ignore changes to pathname it happens before title\r\n // has changed, instead wait for title to change before\r\n // tracking page view. Assumes no two page titles are the same\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [title]);\r\n\r\n // expose `digitalData` in namespaced window obj\r\n // for ease of debugging by analytics team\r\n useEffect(() => {\r\n if (canUseDOM) {\r\n window.cpa = window.cpa || {};\r\n window.cpa.digitalData = digitalData;\r\n }\r\n }, [digitalData]);\r\n\r\n const renderDigitalData = (digitalData) => {\r\n try {\r\n if (typeof digitalData !== 'undefined') {\r\n return JSON.stringify(digitalData, null, 2);\r\n }\r\n return {};\r\n }\r\n catch (err) {\r\n warnInDev(err);\r\n }\r\n };\r\n\r\n // Dispatch 50% scroll depth analytics \r\n const dispatchHalfPageScrollEmitTrack = () => emitTrackEvent('scroll50');\r\n useScrollDepthAnalyticsTracking(dispatchHalfPageScrollEmitTrack, 50);\r\n\r\n return (\r\n <>\r\n \r\n {title}\r\n {description && }\r\n {noFollow && }\r\n \r\n {description && }\r\n {image && }\r\n {canonicalUrl && }\r\n {ogSiteName && }\r\n \r\n {image && }\r\n {!image && }\r\n \r\n {description && }\r\n {image && }\r\n {twitterSite && }\r\n {twitterCreator && }\r\n {canonicalUrl && }\r\n {extraMetaTags}\r\n\r\n {\r\n adobeLaunchScriptURL && (\r\n \r\n )\r\n }\r\n\r\n {\r\n googleAdSrcScriptURL && (\r\n \r\n )\r\n }\r\n\r\n {/* Site-wide Announcements Dismissal Handler - split out as it relies on a cookie in the 'C0003 / Functional' category. */}\r\n \r\n\r\n {adobeLaunchScriptURL && (\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default compose(\r\n withDigitalDataContext,\r\n withSitecoreContext(),\r\n)(Head);\r\n","import { LinkFieldValue } from '@sitecore-jss/sitecore-jss-react/types/components/Link';\r\nimport { canUseDOM } from 'exenv';\r\nimport moment from 'moment-mini';\r\n\r\nimport { Address } from '_containers/MemberContext/definitions';\r\nimport { DateFormat } from '_utils/components/Form/definitions';\r\nimport { getDictionaryItem } from '_utils/data/dictionaryItem';\r\nimport { deleteKeyFromQueryString } from '_utils/data/queryString';\r\n\r\n// TODO - add unit tests\r\n\r\nexport const YEAR_FIRST_FORMAT = 'YYYY-MM-DD';\r\nexport const DAY_FIRST_FORMAT = 'DD/MM/YYYY';\r\nexport const REF_PARAM = 'ref';\r\nexport const RENEWAL_REF_PARAM_VALUE = 'renewal';\r\n\r\nconst sameAsResidentialLabel = getDictionaryItem('form-contact-same-as-residential-address', 'Same as residential');\r\n\r\n// Helper functions\r\nexport const buttonAction = (e: Event, link?: any, targetBlank?: boolean) => {\r\n e.preventDefault();\r\n\r\n const target = targetBlank ? '_blank' : '_self'\r\n\r\n if (canUseDOM && link?.href) {\r\n return window.open(\r\n link.href,\r\n target,\r\n );\r\n }\r\n};\r\n\r\nexport const handleMembershipRenewalUpdateClick = (\r\n e: Event,\r\n link?: LinkFieldValue\r\n) => {\r\n e.preventDefault();\r\n\r\n if (canUseDOM && link?.href) {\r\n const linkWithReferrerParam = new URL(link.href, document.baseURI); // sitecore returns relative paths only, so we need to specify the base\r\n linkWithReferrerParam.searchParams.set(REF_PARAM, RENEWAL_REF_PARAM_VALUE);\r\n\r\n return window.open(\r\n linkWithReferrerParam.href,\r\n '_self',\r\n );\r\n }\r\n};\r\n\r\nconst toTitleCase = (str: string) => {\r\n if (!str) return '';\r\n return str.replace(/\\w\\S*/g, (txt) => txt.charAt(0).toUpperCase() + txt.substring(1).toLowerCase());\r\n};\r\n\r\nexport const getAddress = (address: Address) => {\r\n if (!address) return '';\r\n\r\n // address lines\r\n const addressArr = [];\r\n\r\n if (address?.addressLine1) {\r\n addressArr.push(address.addressLine1);\r\n }\r\n\r\n if (address?.addressLine2) {\r\n addressArr.push(address.addressLine2);\r\n }\r\n\r\n if (address?.addressLine3) {\r\n addressArr.push(address.addressLine3);\r\n }\r\n\r\n const addressStr = addressArr?.length ? addressArr.join('\\n') : null;\r\n\r\n // last line (city, isoCode, state, country) needs to be comma-separated\r\n const lastLineArr = [];\r\n\r\n if (address?.city) {\r\n lastLineArr.push(toTitleCase(address.city));\r\n }\r\n if (address?.state?.name) {\r\n lastLineArr.push(toTitleCase(address.state.name));\r\n }\r\n if (!address?.state?.name && address?.state?.isoCode) {\r\n lastLineArr.push(address.state.isoCode);\r\n }\r\n if (address?.country?.name) {\r\n lastLineArr.push(toTitleCase(address.country?.name));\r\n }\r\n if (address?.postCode) {\r\n lastLineArr.push(address.postCode);\r\n }\r\n\r\n const lastLineString = lastLineArr.join(', ');\r\n\r\n // merge address and last line\r\n const completeAddressArr = [];\r\n\r\n if (addressStr) {\r\n completeAddressArr.push(addressStr);\r\n }\r\n if (lastLineString) {\r\n completeAddressArr.push(lastLineString);\r\n }\r\n\r\n const completeAddressStr = completeAddressArr?.length ? completeAddressArr.join('\\n') : '';\r\n\r\n return completeAddressStr;\r\n};\r\n\r\nexport const getMailingAddress = (address: Address, mailingAddress: Address) => {\r\n const addressStr = getAddress(address);\r\n const mailingAddressStr = getAddress(mailingAddress);\r\n\r\n return addressStr === mailingAddressStr ? sameAsResidentialLabel : mailingAddressStr;\r\n};\r\n\r\nexport const getMailingContact = (billingContact: string, mailingContact: string) => {\r\n if (!mailingContact || (billingContact && (billingContact === mailingContact))) {\r\n return null;\r\n }\r\n\r\n return mailingContact;\r\n};\r\n\r\nexport const getCommaSeparatedList = (items: any[], propertyName: string = 'name'): string => {\r\n if (!items || (items?.length ?? 0) === 0) {\r\n return '';\r\n }\r\n const list = items.map((i) => i?.[propertyName]) || [];\r\n\r\n return list?.length ? list.join(', ') : '';\r\n};\r\n\r\nexport const renderBooleanAsString = (value: boolean) => {\r\n if (value === true) {\r\n return 'Yes';\r\n }\r\n if (value === false) {\r\n return 'No';\r\n }\r\n};\r\n\r\nexport const castStringAsBoolean = (value) => {\r\n if (value === 'true') {\r\n return true;\r\n }\r\n if (value === 'false') {\r\n return false;\r\n }\r\n return null;\r\n};\r\n\r\nexport const renderSelectPlaceholderForField = (fieldName: string) => {\r\n const selectPlaceholderLabel = getDictionaryItem(\"form-placeholder-select\", \"Select {field}\");\r\n return selectPlaceholderLabel.replace(/\\{field\\}/ig, fieldName?.toLowerCase());\r\n};\r\n\r\nexport const renderSearchPlaceholderForField = (fieldName: string) => {\r\n const selectPlaceholderLabel = getDictionaryItem(\"form-placeholder-search\", \"Search {field}\");\r\n return selectPlaceholderLabel.replace(/\\{field\\}/ig, fieldName?.toLowerCase());\r\n};\r\n\r\nexport const renderRequiredError = (\r\n fieldName: string,\r\n token = '{field}',\r\n errorMessage = getDictionaryItem('required-error-message', '{field} is a required field'),\r\n) => {\r\n if (!fieldName || !errorMessage) {\r\n return null;\r\n }\r\n\r\n return replaceTokens(errorMessage, { [token]: fieldName });\r\n};\r\n\r\nexport const renderInvalidError = (\r\n fieldName: string,\r\n token = '{field}',\r\n errorMessage = getDictionaryItem('invalid-error-message', '{field} has an invalid format'),\r\n) => {\r\n if (!fieldName || !errorMessage) {\r\n return null;\r\n }\r\n\r\n return replaceTokens(errorMessage, { [token]: fieldName });\r\n};\r\n\r\nexport const renderInvalidMinLengthError = (\r\n fieldName: string,\r\n minLength: number\r\n) => {\r\n const errorMessage = getDictionaryItem('invalid-min-length-message', '{field} must be at least {length} characters');\r\n if (!fieldName || !errorMessage) {\r\n return null;\r\n }\r\n\r\n return replaceTokens(errorMessage, { '{field}': fieldName, '{length}': minLength });\r\n};\r\n\r\nconst replaceTokens = (str: string, mapObj: object) => {\r\n var regex = new RegExp(Object.keys(mapObj).join('|'), 'gi');\r\n\r\n return str.replace(regex, function (matched) {\r\n return mapObj[matched.toLowerCase()];\r\n });\r\n};\r\n\r\n/**\r\n * @name formatDate\r\n * @param {string} date Either YYYY-MM-DD (YEAR_FIRST) or DD/MM/YYYY (DAY_FIRST)\r\n * @param {DateFormat} outputFormat Desired output format\r\n * @description Takes a YEAR_FIRST or DAY_FIRST date and returns date in desired format. Invalid inputs result in original value returned. Falsy inputs return empty string.\r\n */\r\nexport const formatDate = (\r\n dateOfBirth: string,\r\n outputFormat: DateFormat,\r\n) => {\r\n if (!dateOfBirth) return '';\r\n\r\n const isYearFirstInput = moment(dateOfBirth, YEAR_FIRST_FORMAT, true).isValid();\r\n const isDayFirstInput = moment(dateOfBirth, DAY_FIRST_FORMAT, true).isValid();\r\n\r\n if (isYearFirstInput && outputFormat === 'DAY_FIRST') {\r\n return moment(dateOfBirth, YEAR_FIRST_FORMAT).format(DAY_FIRST_FORMAT);\r\n }\r\n\r\n if (isDayFirstInput && outputFormat === 'YEAR_FIRST') {\r\n return moment(dateOfBirth, DAY_FIRST_FORMAT).format(YEAR_FIRST_FORMAT);\r\n }\r\n\r\n return dateOfBirth;\r\n};\r\n\r\n// append '+' and merge countryCode and mobile\r\nexport const formatMobilePhone = (countryCode: string, mobilePhone: string) => {\r\n if (!countryCode && !mobilePhone) {\r\n return;\r\n }\r\n if (!countryCode) {\r\n return mobilePhone;\r\n }\r\n\r\n return `+ ${countryCode} ${mobilePhone}`;\r\n};\r\n\r\nexport const removeRenewalReferrerFromQueryString = () => {\r\n if (canUseDOM) {\r\n const url = new URL(window.location.href);\r\n const params = new URLSearchParams(url?.search);\r\n\r\n if ((params?.get(REF_PARAM) === RENEWAL_REF_PARAM_VALUE)) {\r\n deleteKeyFromQueryString(REF_PARAM);\r\n }\r\n }\r\n}\r\n\r\nexport const checkUserRerferredFromRenewal = () => {\r\n if (!canUseDOM) {\r\n return\r\n };\r\n\r\n const url = new URL(window.location.href);\r\n const params = new URLSearchParams(url?.search);\r\n\r\n return (params?.get(REF_PARAM) === RENEWAL_REF_PARAM_VALUE);\r\n}\r\n","import * as yup from 'yup';\r\nimport { getDictionaryItem } from '_utils/data/dictionaryItem';\r\nimport {\r\n renderInvalidMinLengthError,\r\n renderRequiredError\r\n} from '_utils/helpers/form';\r\nimport moment from 'moment-mini';\r\n\r\nconst isDateGreaterThan1800 = (value) => {\r\n\r\n if(!value) {\r\n return false;\r\n }\r\n\r\n const [day, month, year] = value.split('/');\r\n const adjustedValue = `${month}/${day}/${year}`;\r\n const minDate = new Date('1800-01-01'); // Based on CE, there is a min date 1753, we use 1800\r\n const inputDate = new Date(adjustedValue);\r\n\r\n return inputDate > minDate;\r\n};\r\n\r\n\r\nexport const validationSchema = (initEducationName, educationRef) => yup.object().shape({\r\n cpaAustraliaId: yup.number(),\r\n employment: yup.object({\r\n jobTitle: yup.string()\r\n .min(3, renderInvalidMinLengthError(getDictionaryItem('form-career-position', 'Position'), 3)),\r\n jobFunction: yup.string().when('isEmployed', {\r\n is: 'true',\r\n then: yup.string().required(renderRequiredError(getDictionaryItem('form-career-job-function', 'Primary job function')))\r\n }),\r\n industry: yup.string(),\r\n currentEmploymentStartDate: yup.string().nullable().when('isEmployed', {\r\n is: 'true',\r\n then: yup.string().required('Start date in this role is required')\r\n .matches(/^\\d{2}\\/\\d{2}\\/\\d{4}$/, 'Date is required and its format must be DD/MM/YYYY')\r\n .test('is-date-valide', 'Date is not valid', value => moment(value, 'DD/MM/YYYY', true).isValid())\r\n .test('is-greater-than-1800', 'Date is required and must be greater than 01/01/1800', isDateGreaterThan1800)\r\n \r\n }),\r\n isEmployed: yup.string()\r\n .oneOf(['true', 'false'], renderRequiredError(getDictionaryItem('form-career-currently-employed-entry', 'Are you currently employed?')))\r\n .nullable(),\r\n isNewCompany: yup.boolean(),\r\n careerStage: yup.number().nullable().transform((value, originalValue) =>\r\n originalValue === null ? undefined : value\r\n ).required('Career Stage is a required field'),\r\n currentCareerSector: yup.string().nullable().transform((value, originalValue) =>\r\n originalValue === null ? undefined : value\r\n ).required('Current Career sector is a required field'),\r\n currentCareerIndustry: yup.string().nullable().transform((value, originalValue) =>\r\n originalValue === null ? undefined : value\r\n ).required('Current Career industry is a required field'),\r\n company: yup.object().nullable().when('isNewCompany', (isNewCompany, schema) => {\r\n if (isNewCompany) {\r\n return schema.shape({\r\n name: yup.string().required(renderRequiredError(getDictionaryItem('form-career-company-name', 'Company name'))),\r\n websiteUrl: yup.string(),\r\n country: yup.object({\r\n isoCode2Letter: yup.string()\r\n .required(renderRequiredError(getDictionaryItem('form-career-company-region', 'Company region')))\r\n }),\r\n // industry: yup.object({\r\n // name: yup.string()\r\n // .required(renderRequiredError(getDictionaryItem('form-career-industry', 'Industry'))),\r\n // code: yup.string()\r\n // .required(renderRequiredError(getDictionaryItem('form-career-industry', 'Industry')))\r\n // }),\r\n // sector: yup.object({\r\n // name: yup.string()\r\n // .required('Employer sector is required'),\r\n // code: yup.string()\r\n // .required('Employer sector is required')\r\n // }),\r\n });\r\n }\r\n return schema.shape({\r\n id: yup.number().nullable().required(renderRequiredError(getDictionaryItem('form-career-company-name', 'Company name'))),\r\n });\r\n })\r\n }),\r\n education: yup.object({\r\n highestEducationName: yup.string().test('is-higherEducation', getDictionaryItem('form-career-error-highest-education-existed', 'Our records indicate that you have a higher level of education than the one you have chosen. If you believe your record is incorrect, please contact us for assistance.'), (value) => {\r\n\r\n // When the value is '', all good\r\n if (!initEducationName) { return true }\r\n\r\n // if have value recorded, then comparing\r\n const initItemRanking = educationRef?.find(item => item.name === initEducationName)?.ranking\r\n const currentRanking = educationRef?.find(item => item.name === value)?.ranking\r\n if (initItemRanking > currentRanking) {\r\n return false\r\n }\r\n return true\r\n\r\n })\r\n }),\r\n licences: yup.object({\r\n items: yup.array().of(yup.object({\r\n licenceName: yup.string().test('licenceName should not be empty', renderRequiredError(getDictionaryItem('form-career-license-type', 'Licence Type')), (value) => {\r\n if (!value) {\r\n return false\r\n }\r\n return true;\r\n }),\r\n registrationNumber: yup.string().nullable()\r\n })).test('no-duplicates', getDictionaryItem('form-career-license-error-duplicate', 'Duplicated Licence Type found'), (values) => {\r\n const nameSet = new Set();\r\n for (let i = 0; i < values.length; i++) {\r\n if (nameSet.has(values[i].licenceName)) {\r\n return false;\r\n }\r\n nameSet.add(values[i].licenceName);\r\n }\r\n return true;\r\n })\r\n }),\r\n professionalInterests: yup.object({\r\n items: yup.array()\r\n .min(1, renderRequiredError(getDictionaryItem('form-career-section-professional-interests', 'Professional interests')))\r\n }),\r\n specialityAreas: yup.object({\r\n items: yup.array()\r\n })\r\n});","import React, { createContext } from 'react';\r\n\r\nimport { Optionalize } from '_utils/types';\r\n\r\nimport { SectionKey } from './definitions';\r\n\r\nexport const FormContext = createContext(null);\r\n\r\nexport const SectionKeyContext = createContext(null);\r\n\r\nexport const withFormSectionKeyContext = (sectionKey: SectionKey) => (\r\n WrappedComponent: React.ComponentType\r\n) => {\r\n // Try to create a nice displayName for React Dev Tools.\r\n const displayName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\r\n\r\n const withFormSectionKeyContext: React.FC> = (props) => (\r\n \r\n \r\n \r\n );\r\n\r\n withFormSectionKeyContext.displayName = `withFormSectionKeyContext(${displayName})`;\r\n\r\n return withFormSectionKeyContext;\r\n};\r\n","import axios, { AxiosRequestConfig } from 'axios';\r\n\r\n/**\r\n * Implements a data fetcher using Axios - replace with your favorite\r\n * SSR-capable HTTP or fetch library if you like. See HttpJsonFetcher type\r\n * in sitecore-jss library for implementation details/notes.\r\n * @param {string} url The URL to request; may include query string\r\n * @param {AxiosRequestConfig} data Optional data to POST with the request.\r\n */\r\nexport function dataFetcher(url, axiosRequestConfig: AxiosRequestConfig) {\r\n return axios({\r\n url,\r\n ...axiosRequestConfig,\r\n // note: axios needs to use `withCredentials: true` in order for Sitecore cookies to be included in CORS requests\r\n // which is necessary for analytics and such\r\n withCredentials: true,\r\n });\r\n}\r\n","import { dataFetcher } from '_utils/dataFetcher';\r\n\r\nimport {\r\n ApiDefinition,\r\n ApiCallback,\r\n ApiProxyProps,\r\n ApiResult,\r\n RequestArgs,\r\n} from './definitions';\r\n\r\nexport const ApiProxy = ({\r\n apiUri,\r\n isLoggedIn,\r\n result,\r\n setResult,\r\n axiosRequestConfig: proxyLevelAxiosConfig,\r\n}: ApiProxyProps): ApiDefinition => {\r\n let apiCallRunning = false;\r\n\r\n const reportSuccess = (\r\n apiResponse: ApiResult,\r\n onComplete?: ApiCallback,\r\n onSuccess?: ApiCallback,\r\n ): ApiResult => {\r\n if (onSuccess) {\r\n onSuccess(apiResponse);\r\n }\r\n\r\n if (onComplete) {\r\n onComplete(apiResponse);\r\n }\r\n return apiResponse;\r\n };\r\n\r\n const reportError = (\r\n errorMessage: string,\r\n onComplete?: ApiCallback,\r\n onError?: ApiCallback,\r\n ): ApiResult => {\r\n const apiResponse = {\r\n data: null,\r\n error: {\r\n code: null,\r\n message: errorMessage ?? 'Unknown API error',\r\n },\r\n isLoading: false,\r\n };\r\n\r\n if (onError) {\r\n onError(apiResponse);\r\n }\r\n\r\n if (onComplete) {\r\n onComplete(apiResponse);\r\n }\r\n\r\n return apiResponse;\r\n };\r\n\r\n const request = ({\r\n axiosRequestConfig = {},\r\n data = {},\r\n onComplete = null,\r\n onError = null,\r\n onSuccess = null,\r\n setLoadingStatus = true,\r\n useCachedResponse = true,\r\n allowParallelFetching = false,\r\n }: RequestArgs = {}) => {\r\n const mergedAxiosConfig = {\r\n ...proxyLevelAxiosConfig,\r\n ...axiosRequestConfig,\r\n };\r\n\r\n const shouldMakeAPIRequest =\r\n (mergedAxiosConfig?.method?.toLowerCase() ?? 'get') !== 'get' // always request if POST, PATCH, etc...\r\n || (result.data == null || !useCachedResponse) && (!apiCallRunning || allowParallelFetching) // if GET\r\n\r\n if (!apiUri) {\r\n // Set the api error status\r\n setResult(reportError('API URL not defined', onComplete, onError));\r\n } else {\r\n if (shouldMakeAPIRequest) {\r\n apiCallRunning = true;\r\n\r\n if (!isLoggedIn) {\r\n // Set the not logged in error status\r\n setResult(reportError('User must be logged in to access APIs', onComplete, onError));\r\n } else {\r\n // Set the loading status\r\n setResult(reportSuccess(\r\n {\r\n data: result.data,\r\n error: null,\r\n isLoading: setLoadingStatus,\r\n }\r\n ));\r\n\r\n return dataFetcher(apiUri, { data, ...mergedAxiosConfig })\r\n .then((response) => {\r\n if (response?.data) {\r\n apiCallRunning = false;\r\n\r\n setResult(reportSuccess(\r\n {\r\n data: response.data,\r\n error: null,\r\n isLoading: false,\r\n },\r\n onComplete,\r\n onSuccess,\r\n ));\r\n } else {\r\n apiCallRunning = false;\r\n // Set the api error status\r\n setResult(reportError('API did not return data', onComplete, onError));\r\n }\r\n })\r\n .catch((err) => {\r\n apiCallRunning = false;\r\n // Set the api error status\r\n setResult(reportError(err.toJSON()?.message, onComplete, onError));\r\n });\r\n }\r\n }\r\n }\r\n };\r\n\r\n const clear = () => {\r\n setResult({\r\n data: null,\r\n error: null,\r\n isLoading: false,\r\n });\r\n };\r\n\r\n return {\r\n apiUri,\r\n request,\r\n result,\r\n clear,\r\n }\r\n};\r\n","import { SitecoreContextReactContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport React, { createContext, useContext, useEffect, useMemo, useState } from 'react';\r\n\r\nimport { ApiProxy } from '_utils/helpers/apiProxy';\r\nimport { ApiResult } from '_utils/helpers/apiProxy/definitions';\r\nimport { Optionalize } from '_utils/types';\r\nimport { ChildrenPropTypes } from '../../types';\r\n\r\nimport {\r\n CareerProfile,\r\n CareerProfileSubmission,\r\n Companies,\r\n CompanyIndustries,\r\n CompanySubmission,\r\n ContactProfile,\r\n ContactProfileSubmission,\r\n Member,\r\n MemberContextProps,\r\n MemberProviderProps,\r\n Renewal,\r\n RenewalNotice,\r\n RenewalSubmission,\r\n} from './definitions';\r\n\r\nexport const MemberContext = createContext({});\r\n\r\nconst MemberProvider: React.FC = ({\r\n children,\r\n apiHost,\r\n companiesApiHost\r\n}) => {\r\n const sitecoreContext: any = useContext(SitecoreContextReactContext);\r\n\r\n const isLoggedIn: boolean = useMemo(\r\n () => !sitecoreContext?.context?.securityInfo?.isAnonymous,\r\n [sitecoreContext?.context?.securityInfo?.isAnonymous],\r\n );\r\n\r\n const initialApiResultState = {\r\n apiCallRunning: false,\r\n data: null,\r\n error: null,\r\n isLoading: false,\r\n postResponse: null,\r\n };\r\n\r\n const [member, setMember] = useState>(initialApiResultState);\r\n const [careerProfile, setCareerProfile] = useState>(initialApiResultState);\r\n const [careerProfileSubmission, setCareerProfileSubmission] = useState>(initialApiResultState);\r\n const [companies, setCompanies] = useState>(initialApiResultState);\r\n const [companyIndustries, setCompanyIndustries] = useState>(initialApiResultState);\r\n const [companySubmission, setCompanySubmission] = useState>(initialApiResultState);\r\n const [contactProfile, setContactProfile] = useState>(initialApiResultState);\r\n const [contactProfileSubmission, setContactProfileSubmission] = useState>(initialApiResultState);\r\n const [renewal, setRenewal] = useState>(initialApiResultState);\r\n const [renewalSubmission, setRenewalSubmission] = useState>(initialApiResultState);\r\n const [renewalNotice, setRenewalNotice] = useState>(initialApiResultState);\r\n\r\n // APIs\r\n const dashboardApi = ApiProxy({\r\n apiUri: `${apiHost ?? ''}/api/member/Dashboard`,\r\n axiosRequestConfig: {\r\n method: 'GET',\r\n },\r\n isLoggedIn,\r\n result: member,\r\n setResult: setMember,\r\n });\r\n\r\n const careerProfileApi = ApiProxy({\r\n apiUri: `${apiHost ?? ''}/api/member/CareerProfile`,\r\n axiosRequestConfig: {\r\n method: 'GET',\r\n params: {\r\n employment: true,\r\n education: true,\r\n licences: true,\r\n professionalMemberships: true,\r\n specialityAreas: true,\r\n referenceData: true,\r\n professionalInterests: true\r\n },\r\n },\r\n isLoggedIn,\r\n result: careerProfile,\r\n setResult: setCareerProfile,\r\n });\r\n\r\n const careerProfileSubmissionApi = ApiProxy({\r\n apiUri: `${apiHost ?? ''}/api/member/CareerProfile`,\r\n axiosRequestConfig: {\r\n method: 'PATCH',\r\n params: {\r\n OnlyEmployment: false,\r\n },\r\n },\r\n isLoggedIn,\r\n result: careerProfileSubmission,\r\n setResult: setCareerProfileSubmission,\r\n });\r\n\r\n const companiesApi = ApiProxy({\r\n apiUri: `${companiesApiHost ?? ''}/api/company/Companies`,\r\n axiosRequestConfig: {\r\n method: 'GET',\r\n },\r\n isLoggedIn,\r\n result: companies,\r\n setResult: setCompanies,\r\n });\r\n const companyIndustriesApi = ApiProxy({\r\n apiUri: `${companiesApiHost ?? ''}/api/company/Industries`,\r\n axiosRequestConfig: {\r\n method: 'GET',\r\n },\r\n isLoggedIn,\r\n result: companyIndustries,\r\n setResult: setCompanyIndustries,\r\n });\r\n const companySubmissionApi = ApiProxy({\r\n apiUri: `${companiesApiHost ?? ''}/api/company/Company`,\r\n axiosRequestConfig: {\r\n method: 'POST',\r\n },\r\n isLoggedIn,\r\n result: companySubmission,\r\n setResult: setCompanySubmission,\r\n });\r\n\r\n const contactProfileApi = ApiProxy({\r\n apiUri: `${apiHost ?? ''}/api/member/ContactDetail`,\r\n axiosRequestConfig: {\r\n method: 'GET',\r\n params: {\r\n contact: true,\r\n billingAddress: true,\r\n shippingAddress: true,\r\n referenceData: true,\r\n },\r\n },\r\n isLoggedIn,\r\n result: contactProfile,\r\n setResult: setContactProfile,\r\n });\r\n\r\n const contactProfileSubmissionApi = ApiProxy({\r\n apiUri: `${apiHost ?? ''}/api/member/ContactDetail`,\r\n axiosRequestConfig: {\r\n method: 'PATCH',\r\n params: {\r\n // testing to see if this works\r\n contact: true,\r\n billingAddress: true,\r\n shippingAddress: true,\r\n referenceData: true,\r\n },\r\n },\r\n isLoggedIn,\r\n result: contactProfileSubmission,\r\n setResult: setContactProfileSubmission,\r\n });\r\n\r\n // For the new renew page\r\n\r\n const renewContactProfileDataApi = ApiProxy({\r\n apiUri: `${apiHost ?? ''}/api/member/ContactDetail`,\r\n axiosRequestConfig: {\r\n method: 'GET',\r\n params: {\r\n referenceData: true,\r\n contact: true,\r\n billingAddress: false,\r\n shippingAddress: false,\r\n },\r\n },\r\n isLoggedIn,\r\n result: contactProfile,\r\n setResult: setContactProfile,\r\n }); \r\n\r\n\r\n const renewContactProfileSubmissionApi = ApiProxy({\r\n apiUri: `${apiHost ?? ''}/api/member/ContactDetailForRenewal`,\r\n axiosRequestConfig: {\r\n method: 'PATCH',\r\n params: {\r\n // testing to see if this works\r\n contact: true,\r\n billingAddress: false,\r\n shippingAddress: false,\r\n referenceData: false,\r\n },\r\n },\r\n isLoggedIn,\r\n result: contactProfileSubmission,\r\n setResult: setContactProfileSubmission,\r\n });\r\n\r\n // Renew Career profile api \r\n const renewCareerProfileApi = ApiProxy({\r\n apiUri: `${apiHost ?? ''}/api/member/CareerProfile`,\r\n axiosRequestConfig: {\r\n method: 'GET',\r\n params: {\r\n employment: true,\r\n education: false,\r\n licences: false,\r\n professionalMemberships: false,\r\n specialityAreas: false,\r\n referenceData: true,\r\n professionalInterests: false\r\n },\r\n },\r\n isLoggedIn,\r\n result: careerProfile,\r\n setResult: setCareerProfile,\r\n });\r\n\r\n\r\n // Renew Career profile submit only employment api \r\n const renewCareerProfileSubmitApi = ApiProxy({\r\n apiUri: `${apiHost ?? ''}/api/member/CareerProfile`,\r\n axiosRequestConfig: {\r\n method: 'PATCH',\r\n params: {\r\n OnlyEmployment: true,\r\n },\r\n },\r\n isLoggedIn,\r\n result: careerProfileSubmission,\r\n setResult: setCareerProfileSubmission,\r\n });\r\n \r\n const renewalApi = ApiProxy({\r\n apiUri: `${apiHost ?? ''}/api/member/Renewal`,\r\n axiosRequestConfig: {\r\n method: 'GET',\r\n },\r\n isLoggedIn,\r\n result: renewal,\r\n setResult: setRenewal,\r\n });\r\n const renewalSubmissionApi = ApiProxy({\r\n apiUri: `${apiHost ?? ''}/api/member/Renewal`,\r\n axiosRequestConfig: {\r\n method: 'POST',\r\n },\r\n isLoggedIn,\r\n result: renewalSubmission,\r\n setResult: setRenewalSubmission,\r\n });\r\n\r\n const renewalNoticeApi = ApiProxy({\r\n apiUri: `${apiHost ?? ''}/api/member/RenewalNotice`,\r\n axiosRequestConfig: {\r\n method: 'GET',\r\n },\r\n isLoggedIn,\r\n result: renewalNotice,\r\n setResult: setRenewalNotice,\r\n });\r\n\r\n // Selectors\r\n const renewalProductsTotalAmount = useMemo(() => {\r\n if (!renewalApi?.result?.isLoading) {\r\n return renewalApi?.result?.data?.products\r\n ?.filter(product => !product.isOptional) // Ignore optional products\r\n ?.map(product => product.totalAmount)\r\n ?.reduce((sum, val) => sum + val, 0)\r\n ?.toFixed(2)\r\n ?? '';\r\n } else {\r\n return '';\r\n }\r\n }, [renewalApi?.result?.isLoading]);\r\n\r\n // get currency symbol and currency code from first array item in products\r\n const renewalProductsCurrency = useMemo(() => {\r\n if (!renewalApi?.result?.isLoading) {\r\n return renewalApi?.result?.data?.products\r\n .map(product => product.currency)\r\n .find(({ isoCode }) => isoCode);\r\n } else {\r\n return null;\r\n }\r\n }, [renewalApi?.result?.isLoading]);\r\n\r\n // exclude optional products returning just the product codes\r\n const renewalProductCodes = useMemo(() => {\r\n if (!renewalApi?.result?.isLoading) {\r\n return renewalApi?.result?.data?.products\r\n ?.filter(product => !product.isOptional) // Ignore optional products\r\n .map(product => product?.code);\r\n } else {\r\n return [];\r\n }\r\n }, [renewalApi?.result?.isLoading]);\r\n\r\n // For faster dashboard loading, call the dashboard API here rather than within a useEffect per component\r\n // (also needed ASAP for analytics reporting in the Metadata component on every route)\r\n useEffect(() => {\r\n dashboardApi?.request();\r\n }, []);\r\n \r\n return (\r\n {children}\r\n \r\n );\r\n};\r\n\r\nMemberProvider.propTypes = {\r\n children: ChildrenPropTypes\r\n};\r\n\r\nexport default MemberProvider;\r\n\r\nexport const MemberConsumer = MemberContext.Consumer;\r\n\r\nexport const withMemberContext = (\r\n WrappedComponent: React.ComponentType\r\n) => {\r\n // Try to create a nice displayName for React Dev Tools.\r\n const displayName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\r\n\r\n const withMemberContext: React.FC> = (props) => (\r\n \r\n {(value) => }\r\n \r\n );\r\n\r\n withMemberContext.displayName = `withMemberContext(${displayName})`;\r\n\r\n return withMemberContext;\r\n};\r\n","/**\r\n * Initialises a FormContext + Formik Context, with values for Career Profile Form.\r\n */\r\n\r\nimport { clone, compose } from 'ramda';\r\nimport React, { useContext, useEffect, useRef, useState } from 'react';\r\nimport { Formik, FormikHelpers } from 'formik';\r\nimport { validationSchema } from '_components/MMFCareerProfileForm/formValidation';\r\nimport { withEditMode } from '_containers/BaseComponent';\r\nimport { DigitalDataContext } from '_containers/DigitalDataContext';\r\nimport { FormContext } from '_containers/FormSectionContext';\r\nimport { MemberContext } from '_containers/MemberContext';\r\nimport { getDictionaryItem } from '_utils/data/dictionaryItem';\r\nimport { emitTrackEvent, setObjectData } from '_utils/helpers/analytics';\r\nimport { getQueryStringValue } from '_utils/data/queryString';\r\nimport { errorInDev } from '_utils/helpers/dev';\r\nimport { formatDate, castStringAsBoolean, REF_PARAM, RENEWAL_REF_PARAM_VALUE } from '_utils/helpers/form';\r\nimport { useUnload } from '_utils/hooks';\r\n\r\nimport {\r\n CareerProfileFormContext,\r\n CareerProfileFormContextProviderProps,\r\n CareerProfileFormValues,\r\n} from './definitions';\r\n\r\nconst CareerProfileFormContextProvider: React.FC = ({\r\n children,\r\n editMode,\r\n}) => {\r\n const memberContext = useContext(MemberContext);\r\n const defaultLicenseValue = useRef([]);\r\n const digitalDataContext = useContext(DigitalDataContext);\r\n const { digitalData, setDigitalData } = digitalDataContext;\r\n\r\n if (Object.keys(memberContext).length === 0) {\r\n errorInDev('CareerProfileFormContextProvider is being rendered outside MemberContext!');\r\n }\r\n\r\n // TODO: When partial saving is possible, there should be individual isEditing state and actions for each editable section.\r\n const [isEditing, setIsEditing] = useState(false);\r\n const [sectionEditing, setSectionEditing] = useState(null);\r\n const [isReferredFromRenewal, setIsReferredFromRenewal] = useState(getQueryStringValue(REF_PARAM) === RENEWAL_REF_PARAM_VALUE);\r\n\r\n // pre-validation causes user to straight to edit mode, so need to capture user interaction\r\n // else user get stuck in loop\r\n const [hasUserBeenShownPrompt, setHasUserBeenShownPrompt] = useState(false);\r\n\r\n // Initial fetch\r\n useEffect(() => {\r\n memberContext?.careerProfileApi?.request?.({\r\n setLoadingStatus: true,\r\n useCachedResponse: false,\r\n });\r\n }, []);\r\n\r\n // Refresh form data everytime the user exits form edit mode\r\n useEffect(() => {\r\n if (!editMode && !isEditing) {\r\n memberContext?.careerProfileApi?.request?.({\r\n setLoadingStatus: true,\r\n useCachedResponse: false,\r\n });\r\n\r\n // clear out any cached submit errors returning to readonly mode\r\n if (memberContext?.careerProfileSubmissionApi?.result?.error) {\r\n memberContext?.careerProfileSubmissionApi?.clear?.();\r\n }\r\n }\r\n\r\n if (!editMode && isEditing) {\r\n // clear out any cached success, if there was one left over from a previous edit\r\n // (\"Updates saved\" to hide when going back into editing mode)\r\n if (memberContext?.careerProfileSubmissionApi?.result?.data) {\r\n memberContext?.careerProfileSubmissionApi?.clear?.();\r\n }\r\n }\r\n }, [editMode, isEditing]);\r\n\r\n // Ensure removal of updates saved announcement on route change\r\n useUnload(() => memberContext?.careerProfileSubmissionApi?.clear());\r\n\r\n const updateAction = (event?: Event, sectionIdentifier?: string) => {\r\n if (event) {\r\n event?.preventDefault();\r\n }\r\n setIsEditing(true);\r\n\r\n if (sectionIdentifier) {\r\n setSectionEditing(sectionIdentifier);\r\n }\r\n\r\n // dispatch tracking event when start section being updated\r\n if (typeof setDigitalData === 'function') {\r\n setDigitalData(\r\n setObjectData(\r\n ['form'],\r\n {\r\n formName: 'career form',\r\n update: sectionIdentifier ?? ''\r\n },\r\n digitalData)\r\n );\r\n emitTrackEvent('infoUpdate');\r\n }\r\n };\r\n\r\n const cancelAction = (event: Event) => {\r\n event.preventDefault();\r\n\r\n // dispatch tracking event when users saw unsaved changes overlay\r\n if (typeof setDigitalData === 'function') {\r\n setDigitalData(\r\n setObjectData(\r\n ['page'],\r\n {\r\n pageName: 'career form unsaved changes overlay'\r\n },\r\n digitalData)\r\n );\r\n emitTrackEvent('overlay');\r\n }\r\n\r\n // TODO: detect if there are changes to discard and show a dialog to confirm user cancellation\r\n const alertBody = getDictionaryItem('form-unsaved-changes-body', 'Are you sure you want to leave? You currently have some unsaved changes.');\r\n\r\n // user confirm cancel,so don't re-validate on mount\r\n if (window.confirm(alertBody)) {\r\n setIsEditing(false);\r\n setHasUserBeenShownPrompt(true);\r\n // remove referrer from query string if come from Renewal Form\r\n setIsReferredFromRenewal(false);\r\n\r\n //TODO: Update analytics linkName and linkDestination when overlay button text updated\r\n // dispatch tracking event when user confirm to cancel\r\n if (typeof setDigitalData === 'function') {\r\n setDigitalData(\r\n setObjectData(\r\n ['link'],\r\n {\r\n linkName: 'discard changes',\r\n linkDestination: 'discard changes'\r\n },\r\n digitalData)\r\n );\r\n emitTrackEvent('linkClick');\r\n }\r\n } else {\r\n // dispatch tracking event when user confirm to continue editing\r\n if (typeof setDigitalData === 'function') {\r\n setDigitalData(\r\n setObjectData(\r\n ['link'],\r\n {\r\n linkName: 'continue editing',\r\n linkDestination: 'continue editing'\r\n },\r\n digitalData)\r\n );\r\n emitTrackEvent('linkClick');\r\n }\r\n\r\n setSectionEditing(null); // so we don't conflict with scroll next line\r\n\r\n window.scroll({\r\n top: 0,\r\n left: 0,\r\n behavior: 'smooth'\r\n });\r\n };\r\n };\r\n\r\n const saveAction = (event: Event) => {\r\n // event.preventDefault();\r\n // TODO: when partial save is ready to implement, handleFormSubmit should be moved into here\r\n };\r\n\r\n const value: CareerProfileFormContext = {\r\n hasUserBeenShownPrompt: hasUserBeenShownPrompt,\r\n isAnySectionEditing: isEditing,\r\n isReferredFromRenewal: isReferredFromRenewal,\r\n sectionEditing: sectionEditing,\r\n setIsEditing: setIsEditing,\r\n employmentDetails: {\r\n isEditing,\r\n cancelAction,\r\n saveAction,\r\n updateAction,\r\n },\r\n educationProfessionalBodies: {\r\n isEditing,\r\n cancelAction,\r\n saveAction,\r\n updateAction,\r\n },\r\n licences: {\r\n isEditing,\r\n cancelAction,\r\n saveAction,\r\n updateAction,\r\n },\r\n professionalInterests: {\r\n isEditing,\r\n cancelAction,\r\n saveAction,\r\n updateAction,\r\n },\r\n specialityAreas: {\r\n isEditing,\r\n cancelAction,\r\n saveAction,\r\n updateAction,\r\n }\r\n };\r\n\r\n const getInitialFormValues = (): CareerProfileFormValues => {\r\n const apiResponse = memberContext?.careerProfileApi?.result?.data;\r\n\r\n // Now, careerProfile api is containing reference data\r\n const careerStageItems = apiResponse?.referenceData?.careerStages?.items\r\n const careerStageVal = apiResponse?.employment?.careerStage || null\r\n const careerStageDefaultItem = careerStageItems.find(item => item.name === careerStageVal)\r\n\r\n // Now, careerProfile api is containing reference data\r\n const sectorsItems = apiResponse?.referenceData?.sectors?.items\r\n const sectorVal = apiResponse?.employment?.currentCareerSector || null\r\n const sectorDefaultItem = sectorsItems.find(item => item.name === sectorVal)\r\n\r\n // Now, careerProfile api is containing reference data\r\n const employmentIndustryItems = apiResponse?.referenceData?.employmentIndustries?.items\r\n const employmentIndustryVal = apiResponse?.employment?.currentCareerIndustry || null\r\n const employmentIndustryDefaultItem = employmentIndustryItems.find(item => item.name === employmentIndustryVal)\r\n \r\n const startDate = apiResponse?.employment?.currentEmploymentStartDate || ''\r\n\r\n defaultLicenseValue.current = apiResponse?.licences?.items || [];\r\n\r\n return {\r\n cpaAustraliaId: apiResponse?.cpaAustraliaId,\r\n employment: {\r\n jobTitle: apiResponse?.employment?.jobTitle || '',\r\n jobFunction: apiResponse?.employment?.jobFunction || '',\r\n jobLevel: apiResponse?.employment?.jobLevel || '',\r\n currentEmploymentStartDate: formatDate(startDate.split('T')[0] || '', 'DAY_FIRST') || '',\r\n isEmployed: \r\n apiResponse?.employment?.isEmployed === null \r\n ?\r\n 'false'\r\n :\r\n (!!apiResponse?.employment?.isEmployed).toString(),\r\n careerStage: careerStageDefaultItem?.code || null,\r\n currentCareerSector: sectorDefaultItem?.code || null,\r\n currentCareerIndustry: employmentIndustryDefaultItem?.code || null,\r\n employmentType: apiResponse?.employment?.employmentType || '',\r\n company: {\r\n id: apiResponse?.employment?.company?.id,\r\n // industry: employmentIndustryDefaultItem || {name: '', code: '', state: 0},\r\n websiteurl: apiResponse?.employment?.company?.websiteurl || '',\r\n region: apiResponse?.employment?.company?.region || '',\r\n // sector: sectorDefaultItem || {name: '', code: ''},\r\n name: apiResponse?.employment?.company?.name || ''\r\n }\r\n },\r\n education: {\r\n highestEducationName: apiResponse?.education?.highestEducationName || ''\r\n },\r\n professionalMemberships: {\r\n items: apiResponse?.professionalMemberships?.items || [],\r\n },\r\n licences: {\r\n items: apiResponse?.licences?.items || []\r\n },\r\n professionalInterests: {\r\n // Convert ProfeesionalInterests into an array of item\r\n items: apiResponse?.professionalInterests?.items.map((items) => items.professionalInterestName) || [],\r\n },\r\n specialityAreas: {\r\n // Convert ProfeesionalInterests into an array of item\r\n items: apiResponse?.specialityAreas?.items.map((items) => items.specialityAreaName) || [''],\r\n }\r\n };\r\n };\r\n\r\n const isCareerProfileDataReady =\r\n !memberContext?.careerProfileApi?.result?.isLoading\r\n && memberContext?.careerProfileApi?.result?.data;\r\n\r\n // This is for education part validation\r\n const initEducationName = memberContext?.careerProfileApi?.result?.data?.education?.highestEducationName || '';\r\n const educationRef = memberContext?.careerProfileApi?.result?.data?.referenceData?.highestEducations?.items;\r\n const validations = validationSchema(initEducationName, educationRef)\r\n\r\n const handleFormSubmit = async (\r\n values: CareerProfileFormValues,\r\n { setSubmitting }: FormikHelpers\r\n ) => {\r\n // Transforms to prepare form values to send\r\n const valuesToSubmitToAPI = clone(values);\r\n\r\n let hasCompanyError = false;\r\n\r\n valuesToSubmitToAPI.licences.items = valuesToSubmitToAPI.licences.items.map(item => {\r\n // @ts-ignore: Convert item key to licenceKey\r\n return ({\r\n // licenceKey: licenceKeyValue,\r\n // @ts-ignore: Convert item name to licenceName\r\n // if have value, licenceName is a must have value\r\n licenceName: item?.licenceName ?? item?.name,\r\n registrationNumber: item?.registrationNumber ?? ''\r\n })\r\n });\r\n\r\n // Convert professionalInterest back to it's original data format on form submit\r\n valuesToSubmitToAPI.professionalInterests.items = valuesToSubmitToAPI.professionalInterests.items.map(name => {\r\n return typeof name === \"string\" ? { professionalInterestName: name } : name;\r\n })\r\n\r\n valuesToSubmitToAPI.specialityAreas.items = valuesToSubmitToAPI.specialityAreas.items.map(name => {\r\n return typeof name === \"string\" ? { specialityAreaName: name } : name;\r\n })\r\n\r\n valuesToSubmitToAPI.employment.careerStage = values?.employment?.careerStage;\r\n valuesToSubmitToAPI.employment.employmentType = values?.employment?.employmentType;\r\n valuesToSubmitToAPI.employment.currentEmploymentStartDate = formatDate(values.employment.currentEmploymentStartDate, 'YEAR_FIRST')\r\n\r\n valuesToSubmitToAPI.employment.isEmployed = castStringAsBoolean(values?.employment?.isEmployed)\r\n\r\n // ensure `isNewCompany` is false if not employed\r\n if (!castStringAsBoolean(values?.employment?.isEmployed)) {\r\n valuesToSubmitToAPI.employment.isNewCompany = false;\r\n }\r\n\r\n // Remove isEmployed, not needed for update\r\n // delete valuesToSubmitToAPI.employment.isEmployed;\r\n\r\n // If isNewCompany, save to Companies API and set company ID in career profile\r\n if (valuesToSubmitToAPI.employment.isNewCompany) {\r\n await memberContext?.companySubmissionApi?.request({\r\n axiosRequestConfig: {\r\n params: {\r\n companyName: valuesToSubmitToAPI.employment.company.name,\r\n countryCode: valuesToSubmitToAPI.employment.company.country.isoCode2Letter,\r\n // industryId: valuesToSubmitToAPI.employment.company.industry.code,\r\n websiteUrl: valuesToSubmitToAPI.employment.company.websiteUrl,\r\n // Bug fix for passing sector as string name, and industry as string name\r\n // sector: valuesToSubmitToAPI.employment.company.sector.name,\r\n // industry: valuesToSubmitToAPI.employment.company.industry.name,\r\n },\r\n },\r\n useCachedResponse: false,\r\n onError: (err) => {\r\n console.warn(err);\r\n hasCompanyError = true;\r\n setIsEditing(true);\r\n setSectionEditing(null); // clear the current edit section so doesn't conflict with scroll top next line\r\n\r\n window.scroll({\r\n top: 0,\r\n left: 0,\r\n behavior: 'smooth'\r\n });\r\n },\r\n onSuccess: (response) => {\r\n valuesToSubmitToAPI.employment.company.id = response.data.identifier;\r\n },\r\n });\r\n }\r\n\r\n // do not attempt submit to career api if company api has error\r\n if (hasCompanyError) {\r\n return;\r\n }\r\n\r\n // Based on mmf response\r\n if(!castStringAsBoolean(values?.employment?.isEmployed)) {\r\n valuesToSubmitToAPI.employment.company = null\r\n }\r\n\r\n // Only company ID needed for update\r\n delete valuesToSubmitToAPI.employment.isNewCompany;\r\n if (valuesToSubmitToAPI.employment.company !== null) {\r\n delete valuesToSubmitToAPI.employment.company.name;\r\n delete valuesToSubmitToAPI.employment.company.country;\r\n delete valuesToSubmitToAPI.employment.company.industryId;\r\n delete valuesToSubmitToAPI.employment.company.websiteUrl;\r\n }\r\n\r\n // Transform professional memberships for API\r\n valuesToSubmitToAPI.professionalMemberships.items = valuesToSubmitToAPI.professionalMemberships.items.map(item => (\r\n {\r\n professionalBodyName: item.professionalBodyName,\r\n }\r\n ));\r\n\r\n memberContext?.careerProfileSubmissionApi?.request?.({\r\n data: valuesToSubmitToAPI,\r\n onComplete: () => {\r\n // Note, this is a edge case fix! if Api fails, make the company name as ''\r\n if(values?.employment?.company?.name) {\r\n values.employment.company.name = '';\r\n }\r\n\r\n setSubmitting(false);\r\n setSectionEditing(null); // clear the current edit section so doesn't conflict with scroll top next line\r\n // remove referrer from query string if come from Renewal Form\r\n setIsReferredFromRenewal(false);\r\n window.scroll({\r\n top: 0,\r\n left: 0,\r\n behavior: 'smooth'\r\n });\r\n },\r\n onSuccess: () => {\r\n setIsEditing(false);\r\n\r\n // dispatch tracking event when \"Updates saved\"\r\n if (typeof setDigitalData === 'function') {\r\n setDigitalData(\r\n setObjectData(\r\n ['form'],\r\n {\r\n formName: 'career form',\r\n update: 'career form saved'\r\n },\r\n digitalData)\r\n );\r\n emitTrackEvent('infoUpdate');\r\n }\r\n\r\n },\r\n setLoadingStatus: true,\r\n useCachedResponse: false,\r\n });\r\n };\r\n\r\n return (\r\n \r\n {isCareerProfileDataReady\r\n ? (\r\n \r\n <>\r\n {children}\r\n \r\n \r\n )\r\n : children\r\n }\r\n \r\n )\r\n};\r\n\r\nexport default compose(\r\n withEditMode,\r\n)(CareerProfileFormContextProvider);\r\n","import styled, { css } from 'styled-components';\r\nimport { spacing } from '_utils/props';\r\nimport { Grid, Link, Spinner } from '_utils/components';\r\nimport {\r\n button,\r\n mq,\r\n} from '_utils/styles';\r\n\r\nexport const PageContainer = styled(Grid.Container)``;\r\n\r\nexport const CTALink = styled(Link)`\r\n display: flex;\r\n ${({ theme }) => spacing({ theme, pt: '24px' })}\r\n\r\n ${mq.lessThan('md')}{\r\n justify-content: center;\r\n\r\n a {\r\n width: 100%;\r\n }\r\n }\r\n\r\n a {\r\n ${button('default', 'tertiary')}\r\n\r\n ${mq('md')}{\r\n margin-left: auto;\r\n }\r\n\r\n path {\r\n fill: currentColor;\r\n }\r\n\r\n }\r\n`;\r\n\r\nexport const Heading = styled.h3`\r\n ${({ theme }) => theme.bppAssessment.heading};\r\n`;\r\n\r\nexport const StepTrackerContainer = styled.div`\r\n ${({ theme }) => spacing({ theme, mx: -3 })};\r\n`;\r\n\r\nexport const Introduction = styled.div`\r\n ${({ theme }) => theme.bppAssessment.introduction.subheading}\r\n ${({ theme }) => spacing({ theme, pb: 2 })}\r\n`;\r\n\r\nexport const SpinnerWrapper = styled.div`\r\n align-items: center;\r\n display: flex;\r\n justify-content: center;\r\n`;\r\n\r\nexport const StyledSpinner = styled(Spinner)`\r\n height: 50px;\r\n width: 50px;\r\n`;\r\n","import { Placeholder } from '@sitecore-jss/sitecore-jss-react';\r\nimport styled from 'styled-components';\r\nimport colors from '_containers/Theme/colors';\r\n\r\nimport { Grid } from '_utils/components';\r\nimport { spacing } from '_utils/props';\r\nimport { button, color, mq } from '_utils/styles';\r\n\r\nexport const FormSection = styled(Grid.Container)`\r\n ${({ theme }) => spacing({ theme, p: 3, mb: 3 })};\r\n background: ${({ theme }) => theme.complexFormElement.formSection.background};\r\n border: 1px solid ${({ theme }) => theme.complexFormElement.formSection.borderColor};\r\n border-radius: 4px;\r\n`;\r\n\r\nexport const HeadingContainer = styled.div`\r\n margin-bottom: 16px;\r\n\r\n ${mq('sm')} {\r\n align-items: flex-start;\r\n display: flex;\r\n margin-bottom: 24px;\r\n }\r\n\r\n ${mq('md')} {\r\n margin-bottom: 32px;\r\n }\r\n`;\r\n\r\nexport const HeadingIcon = styled.div`\r\n color: ${({ theme }) => theme.complexFormElement.formSection.headingIcon.color};\r\n display: flex;\r\n height: 32px;\r\n width: 32px;\r\n\r\n svg {\r\n width: 100%;\r\n }\r\n`;\r\n\r\nexport const Heading = styled.h3`\r\n flex: 1;\r\n font-size: 20px;\r\n line-height: 24px;\r\n margin: 12px 0 32px;\r\n\r\n ${mq('sm')} {\r\n font-size: 22px;\r\n line-height: 26px;\r\n margin: 4px 16px 16px;\r\n }\r\n`;\r\n\r\nexport const LargeHeading = styled.h3`\r\n font-size: 20px;\r\n line-height: 24px;\r\n margin: 0 0 16px;\r\n padding: 0;\r\n\r\n ${mq('sm')} {\r\n margin: 0 0 32px;\r\n }\r\n\r\n ${mq('md')} {\r\n font-size: 28px;\r\n line-height: 32px;\r\n }\r\n`;\r\n\r\nexport const HeadingButton = styled.button`\r\n ${button('slim', 'tertiary')};\r\n padding-right: 10px;\r\n width: 100%;\r\n\r\n ${mq('sm')} {\r\n width: auto;\r\n }\r\n\r\n svg {\r\n height: ${({ theme }) => theme.button.slim.icon.sm.h}px;\r\n margin-left: 10px;\r\n width: ${({ theme }) => theme.button.slim.icon.sm.w}px;\r\n }\r\n`;\r\n\r\nexport const DashboardButtonContainer = styled.div`\r\n ${({ theme }) => spacing({ theme, my: 5 })};\r\n align-items: center;\r\n display: flex;\r\n flex-direction: column;\r\n`;\r\n\r\nexport const DashboardButton = styled(HeadingButton)`\r\n margin-top: 0px;\r\n`;\r\n\r\nexport const FormSummary = styled(Grid.Row)`\r\n ${({ theme }) => spacing({ theme, mb: { xs: 5, md: 4 } })}\r\n`;\r\n\r\nexport const Field = styled(Grid.Item)``;\r\n\r\nexport const EditModeHeading = styled.h2`\r\n margin: 12px 0;\r\n padding: 0 20px;\r\n`;\r\n\r\nexport const EditModeInstructions = styled.p`\r\n margin: 12px 0;\r\n padding: 0 20px;\r\n`;\r\n\r\nexport const RichTextContainer = styled.div`\r\n & > * {\r\n margin-left: 0 !important;\r\n margin-right: 0 !important;\r\n padding-left: 0 !important;\r\n padding-right: 0 !important;\r\n }\r\n\r\n & .content-rich-text {\r\n hr {\r\n ${({ theme }) => spacing({ theme, my: 3 })};\r\n border-top: 1px solid ${({ theme }) => theme.complexFormElement.formSection.richTextContainer.borderColor};\r\n }\r\n\r\n h5 {\r\n ${({ theme }) => spacing({ theme, mt: 3 })};\r\n\r\n &:first-child {\r\n margin-top: 0;\r\n }\r\n }\r\n\r\n & > * {\r\n margin-left: 0;\r\n margin-right: 0;\r\n width: 100%;\r\n max-width: 100%;\r\n }\r\n }\r\n`;\r\n\r\n\r\n// Button to view my account\r\nexport const CTAButton = styled.button`\r\n ${button('default', 'tertiary')};\r\n align-items: center;\r\n display: flex;\r\n justify-content: center;\r\n ${({ theme }) => spacing({ theme, mt: 5 })};\r\n width: 100%;\r\n\r\n ${mq('md')} {\r\n width: auto;\r\n }\r\n\r\n svg {\r\n height: ${({ theme }) => theme.button.slim.icon.sm.h}px;\r\n margin-right: 10px;\r\n width: ${({ theme }) => theme.button.slim.icon.sm.w}px;\r\n }\r\n`;\r\n","// The styles are currently coming from StyledMembershipDetailsForm\r\n// The common syles need to be abstracted to somewhere (possibly in _utils/Forms/... somewhere)\r\n// All that should be in here is contact details form specific styling that isn't shared\r\nimport styled from 'styled-components';\r\n\r\nimport {\r\n Grid,\r\n Link,\r\n} from '_utils/components';\r\nimport { Field } from '_utils/components/Form/StyledFormSection';\r\nimport { spacing } from '_utils/props';\r\nimport {\r\n button,\r\n color,\r\n mq,\r\n} from '_utils/styles';\r\n\r\nexport const EditLink = styled(Link)`\r\n display: inline-block;\r\n margin-left: 16px;\r\n\r\n a {\r\n color: ${({ theme }) => theme.contactDetailsForm.color};\r\n text-decoration: none;\r\n }\r\n\r\n svg {\r\n margin-left: 10px;\r\n }\r\n`;\r\n\r\nexport const AddressDropdownContainer = styled(Field)`\r\n margin-top: -10px;\r\n\r\n ${mq('sm')} {\r\n margin-top: 0;\r\n }\r\n`;\r\n\r\nexport const BackToRenewalFormContent = styled(Grid.Item)`\r\n align-items: center;\r\n display: flex;\r\n justify-content: center;\r\n`;\r\n\r\nexport const CTAButtons = styled.div`\r\n display: flex;\r\n\r\n ${({ theme }) => spacing({\r\n theme,\r\n px: {\r\n xs: `${theme.grid.gutter.size.xs}px`,\r\n md: 0,\r\n },\r\n })}\r\n`;\r\n\r\nexport const BackToRenewalFormButton = styled.button`\r\n ${button('slim', 'primary')};\r\n\r\n align-items: center;\r\n display: inline-flex;\r\n justify-content: center;\r\n\r\n ${mq('md')} {\r\n ${button('default', 'primary')};\r\n\r\n align-items: center;\r\n display: inline-flex;\r\n justify-content: center;\r\n }\r\n\r\n ${mq.lessThan('md')} {\r\n flex: 1;\r\n }\r\n`;\r\n\r\nexport const BackToRenewalFormButtonLabel = styled.span`\r\n display: flex;\r\n\r\n svg {\r\n margin-right: 6px;\r\n }\r\n`;","import styled from 'styled-components';\r\n\r\nimport ContentRichText from '_components/ContentRichText';\r\nimport { Grid, Spinner } from '_utils/components';\r\nimport { spacing } from '_utils/props';\r\nimport { color, headingH3, section } from '_utils/styles';\r\n\r\nexport const Container = styled.div`\r\n ${({ theme }) => section({ theme })};\r\n background: ${color('background.tint2')};\r\n`;\r\n\r\nexport const PageContainer = styled(Grid.Container)``;\r\n\r\nexport const FormContainer = styled.div`\r\n align-items: center;\r\n border-top: 1px solid ${({ theme }) => theme.complexFormElement.formContainer.borderColor};\r\n display: flex;\r\n`;\r\n\r\nexport const SpinnerWrapper = styled.div`\r\n ${({ theme }) => spacing({ theme, my: 5 })};\r\n align-items: center;\r\n display: flex;\r\n justify-content: center;\r\n min-height: 50vh;\r\n width: 100%;\r\n`;\r\n\r\nexport const StyledSpinner = styled(Spinner)`\r\n height: 50px;\r\n width: 50px;\r\n`;\r\n\r\nexport const StepTrackerContainer = styled(Grid.Container)`\r\n ${({ theme }) => spacing({ theme, mt: 0, mb: 4, p: 0 })};\r\n max-width: 960px;\r\n`;\r\n\r\nexport const IntroContainer = styled(Grid.Container)`\r\n ${({ theme }) => spacing({ theme, my: 5, mx: 0, p: 0 })};\r\n max-width: 960px;\r\n`;\r\n\r\nexport const NarrowContainer = styled(Grid.Container)`\r\n ${({ theme }) => spacing({ theme, mt: 5, mb: 4, p: 0 })};\r\n max-width: 796px;\r\n`;\r\n\r\nexport const Heading = styled.h2`\r\n ${headingH3}\r\n`;\r\n\r\nexport const PrivacyPolicy = styled(ContentRichText)`\r\n${({ theme }) => spacing({\r\n theme,\r\n pt: 4,\r\n})}\r\n`;\r\n","import { Placeholder } from '@sitecore-jss/sitecore-jss-react';\r\nimport React from 'react';\r\n\r\nimport { getDictionaryItem } from '_utils/data/dictionaryItem';\r\n\r\nimport { CareerProfileFormProps } from '../definitions';\r\n\r\nimport { Container, FormContainer, NarrowContainer } from '_utils/components/Form/StyledContainerForm';\r\nimport { EditModeHeading, EditModeInstructions, FormSection, LargeHeading, RichTextContainer } from '_utils/components/Form/StyledFormSection';\r\n\r\nconst EditMode: React.FC = (props) => {\r\n const rendering = props?.rendering;\r\n const apiErrorheading = getDictionaryItem('form-api-error-heading', 'We’re experiencing some technical difficulties');\r\n\r\n return (\r\n \r\n \r\n \r\n Career Profile Form\r\n \r\n Given this component relies on member data and has multiple states, a custom editing experience has been setup to allow you to add content to the placeholders\r\n \r\n \r\n API Error Content: shown below the error message when the APIs returns an error getting data from the CareerProfile API\r\n (the heading is a dictionary item at /sitecore/content/CPA/Corporate/Dictionary/Forms/API Error Heading)\r\n \r\n \r\n {apiErrorheading}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default EditMode;\r\n","import styled, {css} from 'styled-components';\r\nimport {\r\n fixedBody12,\r\n fixedBody14,\r\n} from '_utils/styles/';\r\n\r\nexport const TextBoxInput = styled.input`\r\n ${fixedBody14};\r\n background-color: ${({ theme }) => theme.form.input.background};\r\n border-radius: 3px;\r\n border: 1px solid ${({ theme }) => theme.form.input.border};\r\n color: ${({ theme }) => theme.form.input.color};\r\n line-height: 24px;\r\n outline-color: ${({ theme }) => theme.form.input.borderFocus};\r\n outline-offset: 0px;\r\n padding: 12px 16px;\r\n width: 100%;\r\n\r\n &:hover {\r\n border-color: ${({ theme }) => theme.form.input.borderHover};\r\n }\r\n\r\n &:focus {\r\n outline-color: ${({ theme }) => theme.form.input.borderFocus};\r\n }\r\n\r\n &:disabled {\r\n background-color: ${({ theme }) => theme.form.input.backgroundDisabled};\r\n border-color: ${({ theme }) => theme.form.input.borderDisabled};\r\n color: ${({ theme }) => theme.form.input.colorDisabled};\r\n pointer-events: none;\r\n }\r\n\r\n ${({ hasError }) => hasError && css`\r\n &:not(:disabled) {\r\n border-color: ${({ theme }) => theme.form.input.borderError};\r\n &:focus {\r\n outline-color: ${({ theme }) => theme.form.input.borderFocusError};\r\n }\r\n }\r\n `}\r\n`;\r\n\r\nexport const InvalidMessageContainer = styled.div`\r\n ${fixedBody12};\r\n color: ${({ theme }) => theme.form.error.color};\r\n padding-top: 4px;\r\n background-color: ${({ isInRenewPage }) => isInRenewPage ?'#F7F7F7' : 'transparent'}; \r\n`;\r\n\r\nexport const InvalidMessage = styled.p`\r\n margin: 0;\r\n`;\r\n","import React from 'react';\r\nimport {\r\n InvalidMessageContainer,\r\n InvalidMessage,\r\n} from './StyledErrorMessage'\r\ninterface ErrorMessageProps {\r\n isInRenewPage?: boolean; // Optional boolean\r\n children: React.ReactNode; // React children\r\n}\r\n\r\nconst ErrorMessage: React.FC = ({ isInRenewPage = false, children }) => {\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n};\r\n\r\nexport default ErrorMessage;\r\n","import styled from 'styled-components';\r\nimport { fixedBody12 } from '_utils/styles/';\r\nimport { mq } from '_utils/styles';\r\n\r\nexport const CheckboxLabel = styled.label`\r\n align-items: flex-start;\r\n display: inline-flex;\r\n margin-bottom: 6px;\r\n margin-right: 32px;\r\n position: relative;\r\n user-select: none;\r\n vertical-align: top;\r\n width: 100%;\r\n\r\n &.is-multiple {\r\n ${mq('md')} {\r\n width: 33%;\r\n }\r\n }\r\n\r\n &:last-child {\r\n margin-right: 0;\r\n }\r\n\r\n input,\r\n &.dropdown {\r\n &.formik-field-checkbox {\r\n flex-shrink: 0;\r\n height: 18px;\r\n margin-bottom: 18px;\r\n margin: 2px 13px 2px 1px;\r\n overflow: visible;\r\n position: relative;\r\n width: 18px;\r\n\r\n &:focus {\r\n outline-color: transparent;\r\n }\r\n\r\n ::before {\r\n background-color: ${({ theme }) => theme.form.check.background};\r\n border-radius: 2px;\r\n border: 1px solid ${({ theme }) => theme.form.check.border};\r\n content: '';\r\n height: 20px;\r\n left: -1px;\r\n margin-right: 12px;\r\n position: absolute;\r\n top: -1px;\r\n width: 20px;\r\n }\r\n\r\n &:checked::after,\r\n &.checked::after {\r\n border-width: 0 2px 2px 0 !important;\r\n border: solid ${({ theme }) => theme.form.check.background};\r\n content: '';\r\n height: 11px;\r\n left: 6px;\r\n position: absolute;\r\n top: 2px;\r\n transform: rotate(45deg);\r\n width: 5px;\r\n }\r\n\r\n &:hover::before {\r\n border-color: ${({ theme }) => theme.form.check.borderHover};\r\n border-width: 2px;\r\n }\r\n\r\n &:focus::before {\r\n border-color: ${({ theme }) => theme.form.check.borderFocus};\r\n border-width: 2px;\r\n }\r\n\r\n &:checked::before,\r\n &.checked::before {\r\n background-color: ${({ theme }) => theme.form.check.selectedBackground};\r\n border-color: ${({ theme }) => theme.form.check.selectedBorder};\r\n }\r\n\r\n &:hover:checked::before {\r\n background-color: ${({ theme }) =>\r\n theme.form.check.selectedBackgroundHover};\r\n border-color: ${({ theme }) => theme.form.check.selectedBorderHover};\r\n }\r\n\r\n &:checked:focus::before {\r\n background-color: ${({ theme }) =>\r\n theme.form.check.selectedBackgroundFocus};\r\n border-color: ${({ theme }) => theme.form.check.selectedBorderFocus};\r\n }\r\n\r\n &:disabled::before {\r\n background-color: ${({ theme }) =>\r\n theme.form.check.backgroundDisabled} !important;\r\n border-color: ${({ theme }) =>\r\n theme.form.check.borderDisabled} !important;\r\n border-width: 1px !important;\r\n }\r\n\r\n &:disabled:checked::after {\r\n border-color: ${({ theme }) => theme.form.check.colorDisabled};\r\n }\r\n\r\n &.error-border::before {\r\n background-color: ${({ theme }) => theme.form.check.background};\r\n border-color: ${({ theme }) => theme.form.check.borderError};\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const InvalidMessageContainer = styled.div`\r\n ${fixedBody12};\r\n color: ${({ theme }) => theme.form.error.color};\r\n`;\r\n\r\nexport const InvalidMessage = styled.p`\r\n margin: 0;\r\n`;\r\n","import TextField from '@material-ui/core/TextField';\r\nimport { Autocomplete } from '@material-ui/lab';\r\nimport React from 'react';\r\nimport styled, { css } from 'styled-components';\r\n\r\n// because ${({theme})} not exposed for overrides for material UI JS obj\r\nimport colors from '_containers/Theme/colors';\r\nimport { FONT_FAMILY_TEXT } from '_containers/Theme/global';\r\n\r\nimport { Spinner } from '_utils/components';\r\nimport { CheckboxLabel } from '_utils/components/Form/CheckboxList/StyledCheckboxList';\r\nimport { listReset } from '_utils/styles/list'\r\nimport { StyledAutocompleteProps } from './definitions';\r\n\r\nimport {\r\n buttonReset,\r\n fixedBody14,\r\n fixedTitle14\r\n} from '_utils/styles';\r\n\r\nexport const StyledSpinner = styled(Spinner)`\r\n height: 24px;\r\n width: 24px;\r\n`;\r\n\r\nexport const StyledTextField = styled(TextField)`\r\n ${fixedBody14}\r\n`;\r\n\r\nconst chipStyles = css`\r\n ${fixedTitle14}\r\n background-color: ${({ theme }) => theme.complexFormElement.dropdown.chips.background};\r\n border-radius: 8px;\r\n color: ${({ theme }) => theme.complexFormElement.dropdown.chips.color};\r\n font-weight: bold;\r\n`;\r\n\r\nexport const StyledAutocomplete: React.FC = styled(Autocomplete)`\r\n ${fixedBody14}\r\n\r\n &.MuiAutocomplete-root {\r\n font-family: ${FONT_FAMILY_TEXT};\r\n }\r\n\r\n // chip = tag (for multiple options)\r\n .MuiChip-root {\r\n ${chipStyles}\r\n\r\n // When chip tag should display underneath\r\n ${({ $shouldShowSelectedValuesBelow }) =>\r\n $shouldShowSelectedValuesBelow && css`\r\n display: none;\r\n `\r\n }\r\n }\r\n\r\n // open/close indicator\r\n .MuiAutocomplete-popupIndicator {\r\n color: ${({ theme }) => theme.complexFormElement.dropdown.indicator.color};\r\n }\r\n\r\n // open/close indicator, open state\r\n .MuiAutocomplete-popupIndicatorOpen {\r\n ${({ $popupIconType }) => $popupIconType === 'search' && css`\r\n transform: rotate(0deg);\r\n `};\r\n }\r\n\r\n &.api-lookup[aria-expanded=\"true\"] {\r\n .MuiAutocomplete-popupIndicator {\r\n visibility: hidden;\r\n width: 0;\r\n }\r\n\r\n .MuiAutocomplete-clearIndicator {\r\n visibility: visible;\r\n }\r\n }\r\n`;\r\n\r\nexport const SelectedValuesContainer = styled.ul`\r\n ${listReset}\r\n display: flex;\r\n flex-direction: row;\r\n flex-wrap: wrap;\r\n\r\n li {\r\n margin: 10px 6px 0px 0px;\r\n }\r\n\r\n span {\r\n ${chipStyles}\r\n color: ${({ theme }) => theme.form.label.color};\r\n display: inline-block;\r\n padding: 4px 16px;\r\n }\r\n`;\r\n\r\nexport const overrides = {\r\n inputRoot: {\r\n fontFamily: FONT_FAMILY_TEXT,\r\n paddingBottom: '6px !important',\r\n paddingTop: '6px !important',\r\n // focus state\r\n \"&.Mui-focused .MuiOutlinedInput-notchedOutline\": {\r\n borderColor: `${({ theme }) => theme.complexFormElement.dropdown.overrides.borderColor}`\r\n }\r\n },\r\n // dropdownlist option\r\n option: {\r\n 'min-height': 'auto',\r\n // hover state\r\n '&[data-focus=\"true\"]': {\r\n backgroundColor: `${({ theme }) => theme.complexFormElement.dropdown.overrides.backgroundHover}`\r\n },\r\n '&[aria-selected=\"true\"]': {\r\n backgroundColor: 'transparent',\r\n },\r\n },\r\n popupIndicator: {},\r\n tag: {\r\n fontFamily: FONT_FAMILY_TEXT\r\n }\r\n}\r\n\r\nexport const CheckboxOption = styled(CheckboxLabel)`\r\n ${fixedBody14}\r\n height: auto !important;\r\n padding-left: 30px;\r\n width: 100% !important;\r\n\r\n &.selected {\r\n background-color: none;\r\n }\r\n`;\r\n\r\nexport const ManualModeOption = styled.div`\r\n border-top: 1px solid ${({ theme }) => theme.complexFormElement.dropdown.manualOption.borderColor};\r\n padding: 12px;\r\n`;\r\n\r\nexport const ManualModeToggle = styled.button`\r\n ${buttonReset};\r\n color: ${({ theme }) => theme.complexFormElement.dropdown.manualToggle.color};\r\n text-decoration: underline;\r\n`;\r\n","import { makeStyles } from \"@material-ui/core/styles\";\r\nimport classNames from 'classnames';\r\nimport { useFormikContext } from 'formik';\r\nimport React, { useState } from 'react';\r\n\r\nimport Icon from '_components/Icon';\r\nimport ErrorMessage from '_utils/components/Form/ErrorMessage';\r\nimport { errorInDev } from \"_utils/helpers/dev\";\r\nimport { highlightSubstring } from '_utils/helpers/html';\r\n\r\nimport { DropdownProps } from './definitions';\r\nimport {\r\n CheckboxOption,\r\n overrides,\r\n StyledAutocomplete,\r\n StyledSpinner,\r\n StyledTextField,\r\n SelectedValuesContainer,\r\n} from './StyledDropdown';\r\n\r\nconst useStyles = makeStyles(overrides);\r\n\r\nconst popupIcons =\r\n{\r\n expand: ,\r\n search: \r\n};\r\n\r\nconst SelectedValues = ({ multiple, meta, getOptionLabel }) => {\r\n if (multiple && Array.isArray(meta?.value)) {\r\n return (\r\n \r\n {meta?.value?.map(value =>
  • {getOptionLabel(value)}
  • )}\r\n
    \r\n )\r\n }\r\n\r\n return null;\r\n};\r\n\r\nconst getValueToClear = (value: any) => {\r\n if (Array.isArray(value)) {\r\n return [];\r\n }\r\n\r\n if (value === null) {\r\n return '';\r\n }\r\n\r\n // In the likely case that we are dealing with object type options\r\n errorInDev('Ensure that valueToClear is defined when a Dropdown deals with object options, as these values may need to be emptied in a specific way.');\r\n};\r\n\r\nconst getErrorMessage = (errorObj) => {\r\n if (typeof errorObj === 'string') {\r\n return errorObj || '';\r\n }\r\n\r\n return errorObj?.[Object.keys(errorObj)?.[0]] || '' // pick out first key in error obj if the field name describes a field that stores an object with many keys, and possibly has multiple validation errors\r\n};\r\n\r\nconst Dropdown: React.FC = (props) => {\r\n const {\r\n className,\r\n getOptionLabel = (option) => option?.label ?? option?.name ?? option,\r\n handleChange,\r\n id,\r\n loading,\r\n multiple = true,\r\n name,\r\n onChange,\r\n onClose = () => { },\r\n onOpen = () => { },\r\n options,\r\n popupIcon = 'expand',\r\n placeholder,\r\n shouldShowCheckboxes,\r\n shouldShowSelectedValuesBelow = false,\r\n valueOnClear,\r\n isInRenewPage = false,\r\n ...restProps\r\n } = props;\r\n\r\n const [open, setOpen] = useState(false);\r\n const [searchString, setSearchString] = useState('');\r\n\r\n const classes = useStyles(); // MaterialUI Style Overrides\r\n\r\n const styledAutocompleteClasses = classNames('dropdown', className);\r\n\r\n const { getFieldProps, getFieldMeta, setFieldValue } = useFormikContext();\r\n const meta = name ? getFieldMeta(name) : null;\r\n const hasError = !!((meta?.touched || meta?.initialTouched) && meta?.error);\r\n const errorMessage = getErrorMessage(meta?.error);\r\n\r\n return (\r\n <>\r\n {\r\n onOpen(event);\r\n setOpen(true);\r\n }}\r\n onClose={(event, reason) => {\r\n onClose(event, reason);\r\n setOpen(false);\r\n setSearchString('');\r\n }}\r\n onChange={(e, value, reason) => {\r\n switch (reason) {\r\n case 'clear':\r\n if (props?.name) {\r\n setFieldValue(\r\n props.name,\r\n valueOnClear ?? getValueToClear(value),\r\n );\r\n }\r\n // removes the highlighted text in results\r\n setSearchString('');\r\n break;\r\n case 'select-option':\r\n case 'remove-option':\r\n if (props?.name) {\r\n const valueToSet = value !== null\r\n ? (value?.value ?? value) // if value is object with key 'value', else just the value\r\n : props?.defaultValue;\r\n\r\n if(valueToSet?.identifier) {\r\n setFieldValue(\r\n props.name,\r\n valueToSet?.identifier,\r\n );\r\n } else {\r\n setFieldValue(\r\n props.name,\r\n valueToSet,\r\n );\r\n }\r\n }\r\n setSearchString('');\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n if (handleChange) {\r\n handleChange(e, value, reason);\r\n }\r\n }}\r\n open={open}\r\n options={options}\r\n $popupIconType={popupIcon}\r\n popupIcon={popupIcons[popupIcon]}\r\n renderInput={(params) => (\r\n \r\n {loading && }\r\n {params.InputProps.endAdornment}\r\n \r\n ),\r\n }}\r\n placeholder={placeholder}\r\n variant=\"outlined\"\r\n {...params}\r\n {...getFieldProps(name)}\r\n // onChange needed here after getFieldProps(name) so highlighting doesn't break\r\n onChange={\r\n (event) => setSearchString(event?.currentTarget?.value)\r\n }\r\n />\r\n )}\r\n renderOption={(option, { selected }) => {\r\n // reqd to re-use styles from Checkbox\r\n const checkboxOptionClasses = classNames('formik-field-checkbox', 'dropdown', {\r\n 'checked': !!selected,\r\n });\r\n\r\n const label = getOptionLabel(option);\r\n\r\n // highlight search string\r\n const highlightedOption = searchString ? highlightSubstring(searchString, label) : label;\r\n\r\n return (\r\n <>\r\n {shouldShowCheckboxes ?\r\n \r\n \r\n \r\n :\r\n \r\n }\r\n )\r\n }}\r\n {...restProps}\r\n />\r\n\r\n {shouldShowSelectedValuesBelow && }\r\n\r\n {hasError && {errorMessage}}\r\n \r\n );\r\n}\r\n\r\nexport default Dropdown;\r\n","import styled, { css } from 'styled-components';\r\n\r\nimport { AnnouncementWrapper } from '_components/Announcements/InPageAnnouncement/StyledInPageAnnouncement';\r\nimport { Grid } from '_utils/components';\r\nimport { spacing } from '_utils/props';\r\nimport {\r\n button,\r\n color,\r\n headingH4,\r\n mq,\r\n} from '_utils/styles';\r\n\r\nexport const SectionContainer = styled(Grid.Container)`\r\n ${({ theme }) => spacing({ theme, px: 3, pt: 3, pb: { xs: '6px', sm: '12px' }, mb: 3 })};\r\n background: ${({ theme }) => theme.complexFormElement.editableSection.sectionContainer.background};\r\n border: 1px solid;\r\n border-color: ${({ theme }) => theme.complexFormElement.editableSection.sectionContainer.borderColor};\r\n border-radius: 4px;\r\n\r\n ${({ isEditing }) => isEditing && css`\r\n border-top: 6px solid ${({ theme }) => theme.complexFormElement.editableSection.sectionContainer.isEditing.borderColor};\r\n box-shadow: ${({ theme }) => theme.shadows.elevation16};\r\n padding-top: 11px;\r\n\r\n ${mq('sm')} {\r\n padding-top: 19px;\r\n }\r\n`};\r\n\r\n ${AnnouncementWrapper} {\r\n margin-top: 0;\r\n ${({ theme }) => spacing({ theme, mb: 4 })};\r\n };\r\n`;\r\n\r\nexport const HeadingContainer = styled.div`\r\n ${({ theme }) => spacing({\r\n theme,\r\n mb: {\r\n xs: 3,\r\n sm: 5,\r\n md: 3,\r\n lg: 4,\r\n }\r\n})};\r\n\r\n ${mq('sm')} {\r\n align-items: flex-start;\r\n display: flex;\r\n justify-content: space-between;\r\n }\r\n`;\r\n\r\nexport const HeadingIcon = styled.div`\r\n ${({ theme }) => spacing({\r\n theme,\r\n mr: {\r\n xs: 0,\r\n sm: 3,\r\n md: 2,\r\n },\r\n mb: {\r\n xs: 3,\r\n sm: 0,\r\n }\r\n})};\r\n\r\n color: ${({ theme }) => theme.complexFormElement.editableSection.headingIcon.color};\r\n display: flex;\r\n height: 32px;\r\n width: 32px;\r\n\r\n svg {\r\n width: 100%;\r\n }\r\n`;\r\n\r\nexport const Heading = styled.h3`\r\n ${headingH4}\r\n ${({ theme }) => spacing({\r\n theme,\r\n mt: {\r\n xs: 2,\r\n sm: '4px',\r\n },\r\n mb: {\r\n xs: 3,\r\n sm: 0,\r\n }\r\n})};\r\n\r\n flex: 1;\r\n`;\r\n\r\nexport const HeadingButton = styled.button`\r\n ${button('slim', 'tertiary')};\r\n align-items: center;\r\n display: flex;\r\n justify-content: center;\r\n padding-right: 10px;\r\n width: 100%;\r\n\r\n ${mq('sm')} {\r\n width: auto;\r\n }\r\n\r\n svg {\r\n ${({ theme }) => spacing({ theme, ml: 1 })};\r\n height: ${({ theme }) => theme.button.slim.icon.sm.h}px;\r\n width: ${({ theme }) => theme.button.slim.icon.sm.w}px;\r\n }\r\n`;\r\n\r\nexport const SectionActions = styled.div`\r\n ${({ theme }) => spacing({ theme, mt: 5 })};\r\n align-items: center;\r\n display: flex;\r\n flex-direction: column-reverse;\r\n justify-content: space-between;\r\n\r\n ${mq('sm')} {\r\n flex-direction: row;\r\n }\r\n`;\r\n\r\nexport const CancelButton = styled.button`\r\n ${button('default', 'tertiary')};\r\n align-items: center;\r\n display: flex;\r\n justify-content: center;\r\n width: 100%;\r\n\r\n ${mq('sm')} {\r\n width: auto;\r\n }\r\n`;\r\n\r\nexport const SaveButton = styled.button`\r\n ${button('default', 'primary')};\r\n align-items: center;\r\n display: flex;\r\n justify-content: center;\r\n width: 100%;\r\n\r\n ${({ theme }) => spacing({ theme, mb: { xs: 5, sm: 0 } })};\r\n\r\n ${mq('sm')} {\r\n width: auto;\r\n }\r\n\r\n &:disabled {\r\n background: ${({ theme }) => theme.complexFormElement.editableSection.saveButton.disabled.background};\r\n box-shadow: none;\r\n cursor: default;\r\n\r\n &:hover,\r\n &:focus,\r\n &:active {\r\n background: ${({ theme }) => theme.complexFormElement.editableSection.saveButton.active.background};\r\n }\r\n }\r\n`;","import React, { useContext } from 'react';\r\nimport { useFormikContext } from 'formik';\r\n\r\nimport { FormContext } from '_containers/FormSectionContext';\r\n\r\nimport { EditableSectionActionsProps } from './definitions';\r\n\r\nimport {\r\n CancelButton,\r\n SaveButton,\r\n SectionActions,\r\n} from './StyledEditableSection';\r\n\r\nconst EditableSectionActions: React.FC = ({\r\n cancelLabel,\r\n children,\r\n explicitSectionKey,\r\n saveLabel,\r\n ...props\r\n}) => {\r\n // TODO: explicitSectionKey is a hack until partial saves is possible, and this component moves within each section, within a sectionKeyContext\r\n const formContext = useContext(FormContext);\r\n const sectionContext = formContext?.[explicitSectionKey];\r\n\r\n const formikContext = useFormikContext();\r\n const { isValid, touched, submitCount } = formikContext;\r\n\r\n const handleOnClickSave = (e: Event) => {\r\n sectionContext?.saveAction?.(e);\r\n formikContext?.handleSubmit?.();\r\n\r\n if (!formikContext?.isValid) {\r\n window.scroll({\r\n top: 0,\r\n left: 0,\r\n behavior: 'smooth'\r\n });\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n {sectionContext?.isEditing ? (\r\n \r\n \r\n {cancelLabel}\r\n \r\n\r\n 0) || formikContext?.isSubmitting}\r\n >\r\n {saveLabel}\r\n \r\n \r\n ) : (\r\n <>\r\n {children}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default EditableSectionActions;\r\n","import React from 'react';\r\n\r\nimport {\r\n EditableSectionContainerProps,\r\n} from './definitions';\r\n\r\nimport { SectionContainer } from './StyledEditableSection';\r\n\r\nconst EditableSectionContainer: React.FC = ({\r\n children,\r\n uid,\r\n ...props\r\n}) => {\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default EditableSectionContainer;\r\n","import { canUseDOM } from 'exenv';\r\nimport React, { useContext } from 'react';\r\n\r\nimport Icon from '_components/Icon';\r\nimport { FormContext, SectionKeyContext } from '_containers/FormSectionContext';\r\n\r\nimport { EditableSectionHeaderProps } from './definitions';\r\n\r\nimport {\r\n HeadingContainer,\r\n HeadingIcon,\r\n Heading,\r\n HeadingButton,\r\n} from './StyledEditableSection';\r\n\r\nconst EditableSectionHeader: React.FC = ({\r\n children,\r\n icon,\r\n sectionIdentifier,\r\n updateLabel,\r\n updateLink,\r\n}) => {\r\n const formContext = useContext(FormContext);\r\n const sectionKeyFromContext = useContext(SectionKeyContext);\r\n const sectionContext = formContext?.[sectionKeyFromContext] ?? {};\r\n\r\n // TODO: Remove this handling of updateLink when SC9 form is gone.\r\n const handleClickUpdate = (e: Event) => {\r\n e.preventDefault();\r\n\r\n if (canUseDOM && updateLink) {\r\n return window.open(\r\n updateLink?.href,\r\n updateLink?.target ?? '_blank'\r\n );\r\n }\r\n\r\n if (sectionContext?.updateAction) {\r\n return sectionContext?.updateAction(e, sectionIdentifier);\r\n }\r\n };\r\n\r\n return (\r\n \r\n {icon && (\r\n \r\n \r\n \r\n )}\r\n\r\n {children && (\r\n \r\n {children}\r\n \r\n )}\r\n\r\n {!sectionContext?.isEditing && updateLabel && (\r\n \r\n {updateLabel}\r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default EditableSectionHeader;\r\n","import styled, { css } from 'styled-components';\r\n\r\nimport {\r\n fixedBody12,\r\n fixedBody14,\r\n fixedTitle14,\r\n} from '_utils/styles';\r\n\r\nexport const FieldSummaryLabel = styled.div`\r\n ${({ isEditing }) => isEditing\r\n ? css`\r\n /* Describes label for field that cannot be edited, whilst in edit mode. */\r\n ${fixedTitle14};\r\n color: ${({ theme }) => theme.form.label.color};\r\n display: inline-block;\r\n font-weight: bold;\r\n line-height: 24px;\r\n margin-bottom: 4px;\r\n `\r\n : css`\r\n /* Describes label for a read-only field, whilst in read-only mode. */\r\n ${fixedBody14};\r\n color: ${({ theme }) => theme.complexFormElement.fieldSummary.label.color};\r\n `\r\n };\r\n`;\r\n\r\nexport const FieldSummaryValue = styled.div`\r\n white-space: pre-wrap;\r\n`;\r\n\r\nexport const FieldSummaryNoValue = styled.div`\r\n color: ${({ theme }) => theme.complexFormElement.fieldSummary.noValue.color};\r\n`;\r\n\r\nexport const FieldSummaryFootnote = styled.div`\r\n ${fixedBody12};\r\n color: ${({ theme }) => theme.complexFormElement.fieldSummary.footNote.color};\r\n`;\r\n","import React from 'react';\r\nimport { getDictionaryItem } from '_utils/data/dictionaryItem';\r\nimport { FieldSummaryProps } from './definitions';\r\nimport {\r\n FieldSummaryFootnote,\r\n FieldSummaryLabel,\r\n FieldSummaryNoValue,\r\n FieldSummaryValue\r\n} from './StyledFieldSummary';\r\n\r\nconst FieldSummary: React.FC = ({\r\n footnote,\r\n isEditing = false,\r\n labelDictionaryKey,\r\n labelFallback,\r\n value,\r\n}) => {\r\n const hasValue = !!value;\r\n const hasFootnote = !!footnote;\r\n const label = labelDictionaryKey ? getDictionaryItem(labelDictionaryKey, labelFallback) : labelFallback;\r\n const notCapturedLabel = getDictionaryItem('form-not-captured-label', 'Not captured');\r\n\r\n return (\r\n <>\r\n {label}\r\n {hasValue &&\r\n {value}\r\n }\r\n {!hasValue &&\r\n {notCapturedLabel}\r\n }\r\n {hasFootnote &&\r\n {footnote}\r\n }\r\n \r\n )\r\n}\r\n\r\nexport default FieldSummary;\r\n","import styled, { css } from 'styled-components';\r\nimport { getDictionaryItem } from '_utils/data/dictionaryItem';\r\nimport { fixedTitle14 } from '_utils/styles/';\r\n\r\nconst requiredTag = getDictionaryItem(\"form-required-tag\", \"required\");\r\n\r\nexport const FormElementLabel = styled.label`\r\n ${fixedTitle14};\r\n color: ${({ theme }) => theme.form.label.color};\r\n display: inline-block;\r\n font-weight: bold;\r\n line-height: 24px;\r\n margin-bottom: 4px;\r\n display: flex;\r\n justify-content: space-between;\r\n &:disabled {\r\n color: ${({ theme }) => theme.form.input.colorDisabled};\r\n }\r\n`;\r\n\r\nexport const FormElementTitle = styled.span`\r\n ${({ required }) => required && css`\r\n &:after {\r\n content: '\\\\00a0(${requiredTag})';\r\n display: inline-block;\r\n font-weight: normal;\r\n }\r\n `};\r\n`;\r\n\r\nexport const FormElementOptionalTitle = styled.span`\r\n font-weight: normal;\r\n`;","import React from 'react';\r\n\r\nimport {\r\n FormElementLabel,\r\n FormElementTitle,\r\n FormElementOptionalTitle\r\n} from './StyledLabel';\r\n\r\nimport { FormLabelProps } from './definitions';\r\n\r\nconst FormLabel: React.FC = ({ children, ...props }) => {\r\n const required = props?.required;\r\n const optional = props?.optional;\r\n return (\r\n \r\n {children}\r\n {optional && {`(optional)`}}\r\n \r\n )\r\n};\r\n\r\nexport default FormLabel;\r\n","import { useFormikContext } from 'formik';\r\nimport { compose } from 'ramda';\r\nimport React, { useContext } from 'react';\r\n\r\nimport { withEditMode } from '_containers/BaseComponent';\r\nimport { CareerProfileFormContext, CareerProfileFormValues } from '_containers/MMFCareerProfileFormContext/definitions';\r\nimport {\r\n FormContext,\r\n withFormSectionKeyContext\r\n} from '_containers/FormSectionContext';\r\nimport { withMemberContext } from '_containers/MemberContext';\r\nimport Dropdown from '_utils/components/Form/Dropdown';\r\nimport { Tooltip } from '_utils/components';\r\nimport {\r\n EditableSectionContainer,\r\n EditableSectionHeader,\r\n} from '_utils/components/Form/EditableSection';\r\nimport FieldSummary from '_utils/components/Form/FieldSummary';\r\nimport FormLabel from '_utils/components/Form/Label';\r\n\r\nimport {\r\n Field,\r\n FormSummary\r\n} from '_utils/components/Form/StyledFormSection';\r\nimport { getDictionaryItem } from '_utils/data/dictionaryItem';\r\nimport { getCommaSeparatedList } from '_utils/helpers/form';\r\n\r\nimport { CareerProfileFormProps } from '../definitions';\r\nimport mockData from '../mock.json';\r\n\r\n\r\nconst EducationProfessionalBodiesForm: React.FC = ({\r\n editMode,\r\n mockCareerProfile,\r\n rendering,\r\n careerProfileApi,\r\n}) => {\r\n const formContext = useContext(FormContext);\r\n const sectionContext = formContext?.educationProfessionalBodies;\r\n const { values } = useFormikContext();\r\n const referenceData = careerProfileApi?.result;\r\n const educationRefData = referenceData?.data?.referenceData?.highestEducations?.items;\r\n const professionalBodiesRefData = referenceData?.data?.referenceData?.professionalBodies?.items;\r\n const tooltipText = \"Please provide the highest level of education you have achieved through an education provider such as a university. Exams completed with professional accounting or finance membership bodies should be provided under Licences and Certificates below.\"\r\n const uid = `education-professionalbodies`;\r\n const tooltipTextAccred = 'If you have studied or attained membership with an accounting or finance membership body other than CPA Australia, please select from the list of bodies below and also indicate this in the Licences and certificates.'\r\n\r\n // render component with mock data when in Experience Editor\r\n const careerProfile =\r\n !editMode\r\n ? careerProfileApi?.result?.data\r\n : mockCareerProfile ?? mockData?.mockCareerProfile;\r\n\r\n // get the field and label values\r\n const heading = getDictionaryItem('form-career-section-education', 'Education and professional bodies');\r\n const updateLabel = getDictionaryItem('form-career-button-update', 'Update');\r\n const highestEducationLabel = getDictionaryItem('form-career-highest-education', 'Highest education');\r\n const accreditationBodiesLabel = getDictionaryItem('form-career-accreditation-bodies', 'Other professional accreditations');\r\n const pleaseSelectPlaceholder = getDictionaryItem(\"form-placeholder-please-select\", \"Please select\");\r\n const searchAccreditationPlaceholder = getDictionaryItem(\"form-placeholder-accreditation-bodies\", \"Search accreditation\");\r\n\r\n return (\r\n \r\n \r\n {heading}\r\n \r\n\r\n {sectionContext?.isEditing\r\n ? (\r\n <>\r\n \r\n \r\n {highestEducationLabel}\r\n \r\n \r\n item?.name) ?? []}\r\n placeholder={pleaseSelectPlaceholder}\r\n />\r\n \r\n \r\n {/* in case needed later we can add this but we do not need this now */}\r\n\r\n\r\n \r\n \r\n Other professional accreditations\r\n \r\n \r\n option?.professionalBodyName}\r\n getOptionSelected={(option, value) => value?.professionalBodyName === option?.professionalBodyName}\r\n id=\"professionalMemberships.items\"\r\n name=\"professionalMemberships.items\"\r\n options={professionalBodiesRefData ?? []}\r\n placeholder={searchAccreditationPlaceholder}\r\n shouldShowCheckboxes\r\n />\r\n \r\n \r\n\r\n \r\n ) : (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n \r\n );\r\n};\r\n\r\nexport default compose(\r\n withEditMode,\r\n withMemberContext,\r\n withFormSectionKeyContext('educationProfessionalBodies'),\r\n)(EducationProfessionalBodiesForm);","import styled, {css} from 'styled-components';\r\nimport {\r\n fixedBody12,\r\n fixedBody14,\r\n} from '_utils/styles/';\r\n\r\nexport const TextBoxInput = styled.input`\r\n ${fixedBody14};\r\n background-color: ${({ theme }) => theme.form.input.background};\r\n border-radius: 3px;\r\n border: 1px solid ${({ theme }) => theme.form.input.border};\r\n color: ${({ theme }) => theme.form.input.color};\r\n line-height: 24px;\r\n outline-color: ${({ theme }) => theme.form.input.borderFocus};\r\n outline-offset: 0px;\r\n padding: 12px 16px;\r\n width: 100%;\r\n\r\n &:hover {\r\n border-color: ${({ theme }) => theme.form.input.borderHover};\r\n }\r\n\r\n &:focus {\r\n outline-color: ${({ theme }) => theme.form.input.borderFocus};\r\n }\r\n\r\n &:disabled {\r\n background-color: ${({ theme }) => theme.form.input.backgroundDisabled};\r\n border-color: ${({ theme }) => theme.form.input.borderDisabled};\r\n color: ${({ theme }) => theme.form.input.colorDisabled};\r\n pointer-events: none;\r\n }\r\n\r\n ${({ hasError }) => hasError && css`\r\n &:not(:disabled) {\r\n border-color: ${({ theme }) => theme.form.input.borderError};\r\n &:focus {\r\n outline-color: ${({ theme }) => theme.form.input.borderFocusError};\r\n }\r\n }\r\n `}\r\n`;\r\n\r\nexport const InvalidMessageContainer = styled.div`\r\n ${fixedBody12};\r\n color: ${({ theme }) => theme.form.error.color};\r\n padding-top: 4px;\r\n`;\r\n\r\nexport const InvalidMessage = styled.p`\r\n margin: 0;\r\n`;\r\n","import React from 'react';\r\nimport { useField } from 'formik';\r\n\r\nimport ErrorMessage from '_utils/components/Form/ErrorMessage';\r\n\r\nimport { TextInputProps } from './definitions';\r\nimport { TextBoxInput } from './StyledTextInput'\r\n\r\nconst TextInput: React.FC = (props) => {\r\n const [field, meta] = useField(props);\r\n\r\n const hasError = !!((meta?.touched || meta?.initialTouched) && meta?.error);\r\n\r\n return (\r\n <>\r\n \r\n\r\n {hasError && {meta.error}}\r\n \r\n );\r\n};\r\n\r\n\r\nexport default TextInput;","import { useField } from 'formik';\r\nimport React from 'react';\r\n\r\nimport TextInput from '_utils/components/Form/TextInput';\r\nimport { TextInputProps } from '_utils/components/Form/TextInput/definitions';\r\n\r\nconst DateInput: React.FC = (props) => {\r\n\r\n const [, , helpers] = useField(props);\r\n const { setValue } = helpers;\r\n\r\n return (\r\n <>\r\n {\r\n\r\n const val = e?.target?.value;\r\n const len = val?.length ?? 0;\r\n\r\n // allow user move through input manually\r\n if (\r\n [\r\n 'ArrowLeft',\r\n 'ArrowRight',\r\n 'Control',\r\n 'End',\r\n 'Escape',\r\n 'Enter',\r\n 'Home',\r\n 'Insert',\r\n 'PageDown',\r\n 'PageUp',\r\n 'Shift',\r\n 'Tab',\r\n ].includes(e?.key)) {\r\n return;\r\n }\r\n\r\n // only allow numbers or forward slash\r\n const isAllowedInput =\r\n (e?.key === '/' && ![4, 7].includes(len)) ||\r\n parseInt(e.key) == 0 ||\r\n !!parseInt(e.key);\r\n\r\n const isDelete = [8, 46].includes(e?.keyCode);\r\n\r\n // if trying to delete or not a number, delete last char\r\n if ((!isAllowedInput && !isDelete) || (isDelete && val.substring(-1) === '/')) {\r\n setValue(val.substring(0, len - 1));\r\n return;\r\n }\r\n\r\n // If they don't add the slash, do it for them...\r\n if ([2, 5].includes(len) && !isDelete) {\r\n setValue(`${val}/`);\r\n }\r\n }}\r\n\r\n {...props}\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default DateInput;\r\n","import Paper from '@material-ui/core/Paper';\r\nimport React, { useState } from 'react';\r\nimport { compose } from 'ramda';\r\nimport { withMemberContext } from '_containers/MemberContext';\r\nimport Dropdown from '_utils/components/Form/Dropdown';\r\nimport FormLabel from '_utils/components/Form/Label';\r\nimport { getDictionaryItem } from '_utils/data/dictionaryItem';\r\n\r\nimport { CompaniesDropdownProps } from './definitions';\r\nimport { ManualModeOption, ManualModeToggle } from './StyledDropdown';\r\n\r\nconst RESULTS_LIMIT = 100;\r\n\r\nconst CompaniesDropdown: React.FC = ({\r\n onEnterManually,\r\n handleChange,\r\n companiesApi,\r\n defaultValue,\r\n enterManuallyCheck,\r\n isV2 = false,\r\n isInRenewal = false,\r\n}) => {\r\n const [apiOptions, setApiOptions] = useState([]);\r\n const [loading, setLoading] = useState(false);\r\n\r\n const companiesDropdownLabel = getDictionaryItem(\r\n 'form-career-company-name',\r\n 'Company name'\r\n );\r\n const companiesDropdownPlaceholder = getDictionaryItem(\r\n 'form-placeholder-company-name',\r\n 'Search company'\r\n );\r\n const noOptionsText = getDictionaryItem(\r\n 'form-career-no-results-found',\r\n 'No results found'\r\n );\r\n const enterManuallyText = getDictionaryItem(\r\n 'form-career-enter-manually',\r\n 'Enter manually'\r\n );\r\n const cantFindCompanyText = getDictionaryItem(\r\n 'form-career-cant-find-company',\r\n \"Can't find your company?\"\r\n );\r\n\r\n const fetchCompanies = (query?: string) => {\r\n if (!query) {\r\n setApiOptions([]);\r\n return;\r\n }\r\n\r\n setLoading(true);\r\n\r\n companiesApi.request?.({\r\n axiosRequestConfig: {\r\n params: {\r\n searchText: query,\r\n },\r\n },\r\n onComplete: () => {\r\n setLoading(false);\r\n },\r\n onError: (err) => {\r\n console.warn(err);\r\n },\r\n onSuccess: (response) => {\r\n if ((response?.data?.items?.length ?? 0) > 0) {\r\n setApiOptions(response?.data?.items);\r\n }\r\n },\r\n useCachedResponse: false,\r\n });\r\n };\r\n\r\n return (\r\n <>\r\n {isInRenewal === true ? (\r\n \r\n {companiesDropdownLabel}\r\n \r\n ) : (\r\n \r\n {companiesDropdownLabel}\r\n \r\n )}\r\n\r\n x.slice(0, RESULTS_LIMIT)}\r\n getOptionLabel={(option) => option?.name}\r\n getOptionSelected={(option, value) =>\r\n option.identifier === value.identifier\r\n }\r\n id=\"employment.company.id\"\r\n name=\"employment.company.id\"\r\n loading={loading}\r\n multiple={false}\r\n noOptionsText={noOptionsText}\r\n onInputChange={(_, value) => fetchCompanies(value)}\r\n options={apiOptions}\r\n placeholder={companiesDropdownPlaceholder}\r\n popupIcon=\"search\"\r\n handleChange={handleChange}\r\n PaperComponent={({ children, ...rest }) => {\r\n const footerRef = React.useRef();\r\n const paperRef = React.useRef();\r\n\r\n return (\r\n \r\n {children}\r\n {!isV2 && (\r\n \r\n {cantFindCompanyText}{' '}\r\n {\r\n event.preventDefault();\r\n }}\r\n >\r\n {enterManuallyCheck && enterManuallyText}\r\n \r\n \r\n )}\r\n \r\n );\r\n }}\r\n defaultValue={defaultValue}\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default compose(withMemberContext)(CompaniesDropdown);\r\n","import styled, {css} from 'styled-components';\r\nimport { fixedBody12 } from '_utils/styles/';\r\n\r\nexport const RadioLabel = styled.label`\r\n align-items: flex-start;\r\n display: inline-flex;\r\n margin-bottom: 6px;\r\n margin-right: 32px;\r\n max-width: 148px;\r\n position: relative;\r\n user-select: none;\r\n vertical-align: top;\r\n\r\n &:last-child {\r\n margin-right: 0;\r\n }\r\n\r\n input {\r\n &.formik-field-radio {\r\n flex-shrink: 0;\r\n height: 18px;\r\n margin-bottom: 18px;\r\n margin: 2px 13px 2px 1px;\r\n overflow: visible;\r\n position: relative;\r\n width: 18px;\r\n\r\n &:focus {\r\n outline-color: transparent;\r\n }\r\n\r\n ::before {\r\n background-color: ${({ theme }) => theme.form.check.background};\r\n border-radius: 50%;\r\n border: 1px solid ${({ theme }) => theme.form.check.border};\r\n content: '';\r\n height: 20px;\r\n left: -1px;\r\n margin-right: 12px;\r\n position: absolute;\r\n top: -1px;\r\n width: 20px;\r\n }\r\n\r\n &:checked::after {\r\n border-width: 6px !important;\r\n border: 5px solid ${({ theme }) => theme.form.check.selectedBackground};\r\n border-radius: 50%;\r\n content: '';\r\n height: 11px;\r\n left: 3px;\r\n position: absolute;\r\n top: 3px;\r\n width: 5px;\r\n }\r\n\r\n &:hover::before {\r\n border-color: ${({ theme }) => theme.form.check.borderHover};\r\n border-width: 2px;\r\n }\r\n\r\n &:focus::before {\r\n border-color: ${({ theme }) => theme.form.check.borderFocus};\r\n border-width: 2px;\r\n }\r\n\r\n &:checked::before {\r\n background-color: ${({ theme }) => theme.form.check.background};\r\n border-color: ${({ theme }) => theme.form.check.selectedBorder};\r\n border-radius: 50%;\r\n }\r\n\r\n &:hover:checked::before {\r\n background-color: ${({ theme }) => theme.form.check.background};\r\n border-color: ${({ theme }) => theme.form.check.selectedBorderHover};\r\n }\r\n\r\n &:hover:checked::after {\r\n border-color: ${({ theme }) => theme.form.check.selectedBorderHover};\r\n }\r\n\r\n &:checked:focus::before {\r\n background-color: ${({ theme }) => theme.form.check.background};\r\n border-color: ${({ theme }) => theme.form.check.selectedBorder};\r\n }\r\n\r\n &:disabled::before {\r\n background-color: ${({ theme }) =>\r\n theme.form.check.backgroundDisabled} !important;\r\n border-color: ${({ theme }) =>\r\n theme.form.check.borderDisabled} !important;\r\n border-width: 1px !important;\r\n }\r\n\r\n &:disabled:checked::after {\r\n border-color: ${({ theme }) => theme.form.check.colorDisabled};\r\n }\r\n\r\n &.error-border::before {\r\n background-color: ${({ theme }) => theme.form.check.background};\r\n border-color: ${({ theme }) => theme.form.check.borderError};\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const RadioWithTick = styled(RadioLabel)`\r\n input {\r\n &.formik-field-radio {\r\n &:checked::after {\r\n border-width: 0 2px 2px 0 !important;\r\n border: solid ${({ theme }) => theme.form.check.background};\r\n border-radius: unset;\r\n content: '';\r\n height: 11px;\r\n left: 6px;\r\n position: absolute;\r\n top: 2px;\r\n transform: rotate(45deg);\r\n width: 5px;\r\n }\r\n\r\n &:checked::before {\r\n background-color: ${({ theme }) => theme.form.check.selectedBackground};\r\n }\r\n\r\n &:hover:checked::before {\r\n background-color: ${({ theme }) =>\r\n theme.form.check.selectedBackgroundHover};\r\n }\r\n\r\n &:checked:focus::before {\r\n background-color: ${({ theme }) =>\r\n theme.form.check.selectedBackgroundFocus};\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const InvalidMessageContainer = styled.div`\r\n ${fixedBody12};\r\n color: ${({ theme }) => theme.form.error.color};\r\n`;\r\n\r\nexport const InvalidMessage = styled.p`\r\n margin: 0;\r\n`;\r\n","import styled from 'styled-components';\r\nimport { fixedBody12, fixedBody14, fixedTitle14, fixedTitle16, textBody1 } from '_utils/styles/';\r\nexport const FormElementWrapper = styled.div`\r\n ${fixedBody14};\r\n flex-basis: 100%;\r\n line-height: 24px;\r\n margin-top: 12px;\r\n`;\r\n\r\nexport const FormElementLabel = styled.label`\r\n ${textBody1};\r\n color: ${({ theme }) => theme.form.label.color};\r\n display: inline-block;\r\n font-weight: bold;\r\n line-height: 24px;\r\n\r\n &:disabled {\r\n color: ${({ theme }) => theme.form.input.colorDisabled};\r\n }\r\n\r\n .checkbox-radio & {\r\n ${fixedTitle14};\r\n display: block;\r\n }\r\n`;\r\n\r\nexport const FormElementTitle = styled.span`\r\n ${fixedTitle14};\r\n line-height: 24px;\r\n`;\r\n\r\nexport const FormElementHint = styled.div`\r\n ${fixedBody12}\r\n margin-top: 4px;\r\n`;\r\n\r\nexport const FormElementCtaWrapper = styled.div`\r\n display: flex;\r\n justify-content: flex-end;\r\n margin: 16px 0 24px;\r\n`;\r\n\r\nexport const FormElementCta = styled.button`\r\n background-color: ${({ theme }) => theme.form.button.background};\r\n border: none;\r\n border-radius: 24px;\r\n color: ${({ theme }) => theme.form.button.color};\r\n ${fixedTitle16};\r\n margin-left: 32px;\r\n outline: none;\r\n padding: 12px 24px;\r\n position: relative;\r\n\r\n &:hover {\r\n background-color: ${({ theme }) => theme.form.button.backgroundHover};\r\n }\r\n\r\n &:focus {\r\n border: solid 2px ${({ theme }) => theme.form.button.outline};\r\n padding: 10px 22px;\r\n }\r\n\r\n &:active {\r\n background-color: ${({ theme }) => theme.form.button.backgroundActive};\r\n }\r\n\r\n &:disabled {\r\n background-color: ${({ theme }) => theme.form.button.backgroundDisabled};\r\n color: ${({ theme }) => theme.form.button.colorDisabled};\r\n }\r\n`;\r\n","import React from 'react';\r\nimport { Field, ErrorMessage, useField } from 'formik';\r\n\r\nimport { RadioListProps } from './definitions';\r\n\r\nimport {\r\n RadioLabel,\r\n InvalidMessage,\r\n InvalidMessageContainer\r\n} from './StyledRadioList'\r\n\r\nimport {\r\n FormElementWrapper\r\n} from '../StyledFormElement'\r\n\r\nconst Radio = ({ children, ...props }) => {\r\n const [field, meta] = useField(props?.name);\r\n const errorOccur = meta?.error && (meta?.touched || meta?.initialTouched) ? \"error-border\" : \"\";\r\n\r\n return (\r\n \r\n \r\n {children}\r\n \r\n )\r\n}\r\n\r\nconst RadioList: React.FC = (props) => {\r\n const items = props?.items;\r\n const name = props?.name;\r\n\r\n return (\r\n <>\r\n \r\n {items?.map((item, index) => (\r\n \r\n {item.label}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default RadioList;","import styled from 'styled-components';\r\nimport {\r\n buttonReset\r\n } from '_utils/styles';\r\n \r\n\r\nexport const StyledIconDiv = styled.div`\r\n svg {\r\n position: relative;\r\n width: 40px !important;\r\n top: 45px;\r\n left: -3px; \r\n }\r\n`;\r\n\r\nexport const StyledPaddingDiv = styled.div`\r\n margin-left: 12px;\r\n`\r\n\r\nexport const ManualModeToggle = styled.button`\r\n ${buttonReset};\r\n color: ${({ theme }) => theme.complexFormElement.dropdown.manualToggle.color};\r\n`;\r\n","import { compose } from 'ramda';\r\nimport React, { useContext, useEffect } from 'react';\r\nimport {\r\n FormContext,\r\n withFormSectionKeyContext,\r\n} from '_containers/FormSectionContext';\r\nimport { useFormikContext } from 'formik';\r\nimport { withMemberContext } from '_containers/MemberContext';\r\nimport { withEditMode } from '_containers/BaseComponent';\r\nimport { Tooltip } from '_utils/components';\r\nimport { CareerProfileFormContext, CareerProfileFormValues } from '_containers/MMFCareerProfileFormContext/definitions';\r\nimport DateInput from '_utils/components/Form/DateInput';\r\nimport Dropdown from '_utils/components/Form/Dropdown';\r\nimport {\r\n EditableSectionContainer,\r\n EditableSectionHeader,\r\n} from '_utils/components/Form/EditableSection';\r\nimport CompaniesDropdown from '_utils/components/Form/Dropdown/CompaniesDropdown';\r\nimport FieldSummary from '_utils/components/Form/FieldSummary';\r\nimport FormLabel from '_utils/components/Form/Label';\r\nimport RadioList from '_utils/components/Form/RadioList';\r\nimport TextInput from '_utils/components/Form/TextInput';\r\nimport {\r\n Field,\r\n FormSummary\r\n} from '_utils/components/Form/StyledFormSection';\r\nimport {\r\n StyledPaddingDiv, \r\n ManualModeToggle\r\n} from '../StyledCareerProfileForm';\r\nimport { getDictionaryItem } from '_utils/data/dictionaryItem';\r\nimport { formatDate, renderBooleanAsString } from '_utils/helpers/form';\r\nimport { CareerProfileFormProps } from '../definitions';\r\nimport mockData from '../mock.json';\r\n\r\nconst EmploymentDetailsForm: React.FC = ({\r\n editMode,\r\n mockCareerProfile,\r\n careerProfileApi\r\n}) => {\r\n const formContext = useContext(FormContext);\r\n const sectionContext = formContext?.employmentDetails;\r\n const {\r\n isSubmitting,\r\n setFieldTouched,\r\n setFieldValue,\r\n touched,\r\n values,\r\n } = useFormikContext();\r\n const referenceData = careerProfileApi?.result;\r\n\r\n const uid = `employment-details`;\r\n\r\n // render component with mock data when in Experience Editor\r\n const careerProfile =\r\n !editMode\r\n ? careerProfileApi?.result?.data\r\n : mockCareerProfile ?? mockData?.mockCareerProfile;\r\n\r\n // get the field and label values\r\n const heading = getDictionaryItem('form-career-section-employment-details', 'Employment details');\r\n const careerStageLabel = getDictionaryItem('form-career-career-stage', 'Career stage');\r\n const yourCareerSectorLabel = getDictionaryItem('form-career-your-career-sector', 'Your career sector');\r\n const yourCareerIndustryLabel = getDictionaryItem('form-career-your-career-industry', 'Your career industry');\r\n const lookUpAutoLabel = getDictionaryItem('form-career-look-up-auto', 'Look up Employer name automatically');\r\n const employerNameLabel = getDictionaryItem(\"form-career-employer-name\", \"Employer name\");\r\n const employerCountryRegionLabel = getDictionaryItem(\"form-career-employer-country-region\", \"Employer country/region\");\r\n const employerWebsiteLabel = getDictionaryItem(\"form-career-employer-website\", \"Employer website\");\r\n const enterManuallyLabel = getDictionaryItem(\"form-career-enter-employer-name-manually\",\"Enter Employer name manually\");\r\n const jobLevelLabel = getDictionaryItem(\"form-career-job-level\", \"Job level\");\r\n const employmentTypeLabel = getDictionaryItem(\"form-career-employment-type\", \"Employment type\");\r\n const updateLabel = getDictionaryItem('form-career-button-update', 'Update');\r\n const pleaseSelectPlaceholder = getDictionaryItem(\"form-placeholder-please-select\", \"Please select\");\r\n const currentlyEmployedLabel = getDictionaryItem(\"form-career-currently-employed-entry\", \"Are you currently employed?\");\r\n const startDateLabel = getDictionaryItem(\"form-start-date-in-the-role\", \"Start date in this role\")\r\n const careerPositionLabel = getDictionaryItem(\"form-career-position\", \"Position\");\r\n const careerPositionPlacholder = getDictionaryItem(\"form-placeholder-position\", \"Enter your position\");\r\n const jobPrimaryJobLabel = getDictionaryItem(\"form-career-job-function\", \"Primary job function\");\r\n\r\n // map reference data\r\n const countries = referenceData?.data?.referenceData?.countries?.items || [];\r\n const careerStageItems = referenceData?.data?.referenceData?.careerStages?.items || []\r\n const employmentSectorOptions = referenceData?.data?.referenceData?.sectors?.items || [];\r\n const employmentIndustriesOptions = referenceData?.data?.referenceData?.employmentIndustries?.items || []\r\n\r\n // careerStage from api\r\n const careerStageDefaultApiVal = careerProfile?.employment?.careerStage\r\n const careerStageDefaultItem = careerStageItems.find(item => item.name === careerStageDefaultApiVal)\r\n const currentCareerSectorDefaultApiVal = careerProfile?.employment?.currentCareerSector\r\n const currentCareerSectorDefaultItem = employmentSectorOptions.find(item => item.name === currentCareerSectorDefaultApiVal)\r\n\r\n const currentCareerIndustryDefaultApiVal = careerProfile?.employment?.currentCareerIndustry\r\n const currentCareerIndustryDefaultItem = employmentIndustriesOptions.find(item => item.name === currentCareerIndustryDefaultApiVal)\r\n\r\n // careerstart date\r\n\r\n const startDate = careerProfile?.employment?.currentEmploymentStartDate || ''\r\n\r\n\r\n const tooltipPostionText = 'Please enter your position or job title at your primary employer. You may choose from the list or type your position.';\r\n const tooltipLevelText = 'Please select your level of authority/responsibility at your primary employer';\r\n const tooltipFunctionText = 'Please select the functional area in which you perform your job at your primary employer';\r\n\r\n const clearCompany = () => {\r\n setFieldValue('employment.company.id', '', false);\r\n setFieldValue('employment.company.name', '', false);\r\n setFieldValue('employment.company.country.isoCode2Letter', '', false);\r\n setFieldValue('employment.company.websiteUrl', '', false);\r\n\r\n // reset touched\r\n setFieldTouched('employment.company.id', false);\r\n setFieldTouched('employment.company.name', false);\r\n setFieldTouched('employment.company.country.isoCode2Letter', false);\r\n setFieldTouched('employment.company.industry', false);\r\n setFieldTouched('employment.company.sector', false);\r\n setFieldTouched('employment.company.websiteUrl', false);\r\n };\r\n\r\n const onEnterManually = () => {\r\n clearCompany();\r\n setFieldValue(\r\n \"employment.isNewCompany\",\r\n true,\r\n false,\r\n );\r\n };\r\n\r\n const onAutomaticMode = () => {\r\n clearCompany();\r\n setFieldValue(\r\n \"employment.isNewCompany\",\r\n false,\r\n false,\r\n );\r\n }\r\n\r\n // reset the employment sector form data when toggling employment status\r\n useEffect(() => {\r\n if (\r\n sectionContext?.isEditing &&\r\n touched?.employment?.isEmployed &&\r\n !isSubmitting\r\n ) {\r\n setFieldValue('employment.company.id', '', false);\r\n }\r\n\r\n // clear any fields relating to employment\r\n if (values?.employment?.isEmployed === 'false') {\r\n setFieldValue('employment.jobTitle', '', false);\r\n setFieldValue('employment.jobLevel', '', false);\r\n setFieldValue('employment.jobFunction', '', false);\r\n setFieldValue('employment.company', null, false);\r\n setFieldValue('employment.isNewCompany', false, false);\r\n }\r\n },\r\n [values?.employment?.isEmployed]\r\n );\r\n\r\n // set touched manually \r\n const handleEmploymentStatusFocus = () => {\r\n if (!touched?.employment?.isEmployed) {\r\n setFieldTouched('employment.isEmployed', true);\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n {heading}\r\n \r\n\r\n {sectionContext?.isEditing\r\n ? (\r\n <>\r\n \r\n \r\n \r\n {careerStageLabel}\r\n \r\n option?.label}\r\n getOptionSelected={(option, value) => {\r\n return option.value === value.value\r\n }}\r\n options={careerStageItems.map((career) => ({\r\n label: career?.name,\r\n value: career?.code\r\n })) ?? []}\r\n placeholder={pleaseSelectPlaceholder}\r\n defaultValue={{label: careerStageDefaultItem?.name, value:careerStageDefaultItem?.code}}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n {yourCareerSectorLabel}\r\n \r\n option?.label}\r\n getOptionSelected={(option, value) => {\r\n return option.value === value.value\r\n }}\r\n options={employmentSectorOptions.map((career) => ({\r\n label: career?.name,\r\n value: career?.code\r\n })) ?? []}\r\n placeholder={pleaseSelectPlaceholder}\r\n defaultValue={{label: currentCareerSectorDefaultItem?.name, value:currentCareerSectorDefaultItem?.code}}\r\n />\r\n \r\n \r\n \r\n {yourCareerIndustryLabel}\r\n \r\n option?.label}\r\n getOptionSelected={(option, value) => {\r\n return option.value === value.value\r\n }}\r\n options={employmentIndustriesOptions.map((career) => ({\r\n label: career?.name,\r\n value: career?.code\r\n })) ?? []}\r\n placeholder={pleaseSelectPlaceholder}\r\n defaultValue={{label: currentCareerIndustryDefaultItem?.name, value:currentCareerIndustryDefaultItem?.code}}\r\n />\r\n \r\n\r\n \r\n \r\n \r\n \r\n {currentlyEmployedLabel}\r\n \r\n \r\n \r\n \r\n \r\n\r\n {/*!searchCompany &&*/ values.employment.isEmployed === 'true' && values.employment.isNewCompany && (\r\n <>\r\n {\r\n event.preventDefault();\r\n }}\r\n >\r\n {lookUpAutoLabel}\r\n \r\n \r\n \r\n {employerNameLabel}\r\n \r\n \r\n \r\n {values.employment.isEmployed === 'true' && values.employment.isNewCompany && (\r\n <>\r\n \r\n \r\n {employerCountryRegionLabel}\r\n option?.label}\r\n getOptionSelected={(option, value) => option.value === value.value}\r\n options={countries.map((country) => ({\r\n label: country?.name,\r\n // The v2 api is using the below field name\r\n value: country?.isoCode2Letter\r\n })) ?? []}\r\n placeholder={pleaseSelectPlaceholder}\r\n />\r\n \r\n \r\n {/*NOSONAR*/}\r\n {/* \r\n \r\n {employerSectorLabel}\r\n option?.label}\r\n getOptionSelected={(option, value) => option.value === value.value}\r\n options={employmentSectorOptions?.map((sector) => ({\r\n label: sector?.name,\r\n value: sector\r\n })) ?? []}\r\n placeholder={pleaseSelectPlaceholder}\r\n />\r\n \r\n \r\n {employerIndustryLabel}\r\n option?.label}\r\n getOptionSelected={(option, value) => option.value === value.value}\r\n options={employmentIndustriesOptions?.map((industry) => ({\r\n label: industry?.name,\r\n value: industry\r\n })) ?? []}\r\n placeholder={pleaseSelectPlaceholder}\r\n />\r\n \r\n */}\r\n \r\n \r\n {employerWebsiteLabel}\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n {/* only show company dropdown when employed */}\r\n {\r\n values.employment.isEmployed === 'true' && (\r\n <>\r\n {!values.employment.isNewCompany && \r\n \r\n {\r\n switch (reason) {\r\n case 'clear':\r\n clearCompany();\r\n break;\r\n case 'select-option':\r\n clearCompany();\r\n setFieldValue(\r\n \"employment.company.id\",\r\n value?.identifier,\r\n false,\r\n );\r\n break;\r\n }\r\n }}\r\n />\r\n \r\n {!values.employment.isNewCompany &&\r\n \r\n {\r\n event.preventDefault();\r\n }}\r\n >\r\n {enterManuallyLabel}\r\n \r\n \r\n }\r\n }\r\n <>\r\n {values.employment.isEmployed === 'true' && \r\n \r\n {startDateLabel}\r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n {careerPositionLabel}\r\n \r\n \r\n \r\n \r\n {values.employment.isEmployed === 'true' &&\r\n \r\n \r\n {jobPrimaryJobLabel}\r\n \r\n \r\n item?.name) || []}\r\n placeholder={careerPositionPlacholder}\r\n />\r\n }\r\n \r\n\r\n \r\n \r\n \r\n {jobLevelLabel}\r\n \r\n \r\n item?.name) || []}\r\n placeholder={careerPositionPlacholder}\r\n />\r\n \r\n \r\n \r\n {employmentTypeLabel}\r\n \r\n item?.name) || []}\r\n placeholder={careerPositionPlacholder}\r\n />\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n \r\n ) : (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n \r\n );\r\n};\r\n\r\nexport default compose(\r\n withEditMode,\r\n withMemberContext,\r\n withFormSectionKeyContext('employmentDetails'),\r\n)(EmploymentDetailsForm);","import { compose } from 'ramda';\r\nimport React, { useContext } from 'react';\r\nimport { useFormikContext } from 'formik';\r\n\r\nimport { CareerProfileFormContext, CareerProfileFormValues } from '_containers/MMFCareerProfileFormContext/definitions';\r\nimport { withEditMode } from '_containers/BaseComponent';\r\nimport {\r\n FormContext,\r\n withFormSectionKeyContext,\r\n} from '_containers/FormSectionContext';\r\nimport { withMemberContext } from '_containers/MemberContext';\r\nimport {\r\n EditableSectionContainer,\r\n EditableSectionHeader,\r\n} from '_utils/components/Form/EditableSection';\r\nimport Dropdown from '_utils/components/Form/Dropdown';\r\nimport FieldSummary from '_utils/components/Form/FieldSummary';\r\nimport FormLabel from '_utils/components/Form/Label';\r\nimport {\r\n Field,\r\n FormSummary,\r\n} from '_utils/components/Form/StyledFormSection';\r\nimport { getDictionaryItem } from '_utils/data/dictionaryItem';\r\nimport { getCommaSeparatedList } from '_utils/helpers/form/index';\r\n\r\nimport { CareerProfileFormProps } from '../definitions';\r\nimport mockData from '../mock.json';\r\n\r\nconst LicencesForm: React.FC = ({\r\n editMode,\r\n mockCareerProfile,\r\n rendering,\r\n careerProfileApi\r\n}) => {\r\n const formContext = useContext(FormContext);\r\n const sectionContext = formContext?.licences;\r\n const referenceData = careerProfileApi?.result;\r\n\r\n const getLicensesOptions = referenceData?.data?.referenceData?.licences?.items;\r\n\r\n const uid = `licenses-certificates`;\r\n\r\n // render component with mock data when in Experience Editor\r\n const careerProfile =\r\n !editMode\r\n ? careerProfileApi?.result?.data\r\n : mockCareerProfile ?? mockData?.mockCareerProfile;\r\n\r\n // get the field and label values\r\n const heading = getDictionaryItem('form-career-section-licenses', 'Licenses and certificates');\r\n const updateLabel = getDictionaryItem('form-career-button-update', 'Update');\r\n const licensesAndCertificatesLabel = getDictionaryItem('form-career-licenses-certificates', 'Licenses and certificates');\r\n const licensesPlaceholder = getDictionaryItem('form-placeholder-licenses-certificates', 'Select');\r\n\r\n const { values } = useFormikContext();\r\n\r\n const getLicences = values?.licences?.items;\r\n\r\n return (\r\n \r\n \r\n {heading}\r\n \r\n\r\n {sectionContext?.isEditing\r\n ? (\r\n \r\n \r\n {licensesAndCertificatesLabel}\r\n ({\r\n key: item.licenceKey,\r\n name: item.licenceName\r\n }))}\r\n getOptionLabel={(option) => option?.name}\r\n getOptionSelected={(option, value) => value?.key === option?.key}\r\n id=\"licences.items\"\r\n name=\"licences.items\"\r\n options={getLicensesOptions ?? []}\r\n placeholder={licensesPlaceholder}\r\n shouldShowCheckboxes\r\n />\r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n \r\n );\r\n};\r\n\r\nexport default compose(\r\n withEditMode,\r\n withMemberContext,\r\n withFormSectionKeyContext('licences'),\r\n)(LicencesForm);\r\n","import { makeStyles } from \"@material-ui/core/styles\";\r\nimport classNames from 'classnames';\r\nimport { useFormikContext } from 'formik';\r\nimport React, { useState } from 'react';\r\nimport Icon from '_components/Icon';\r\nimport { errorInDev } from \"_utils/helpers/dev\";\r\nimport { highlightSubstring } from '_utils/helpers/html';\r\nimport { DropdownProps } from './definitions';\r\nimport {\r\n CheckboxOption,\r\n overrides,\r\n StyledAutocomplete,\r\n StyledSpinner,\r\n StyledTextField,\r\n SelectedValuesContainer,\r\n} from './StyledDropdown';\r\n\r\nconst useStyles = makeStyles(overrides);\r\n\r\nconst popupIcons =\r\n{\r\n expand: ,\r\n search: \r\n};\r\n\r\nconst SelectedValues = ({ multiple, meta, getOptionLabel }) => {\r\n if (multiple && Array.isArray(meta?.value)) {\r\n return (\r\n \r\n {meta?.value?.map(value =>
  • {getOptionLabel(value)}
  • )}\r\n
    \r\n )\r\n }\r\n\r\n return null;\r\n};\r\n\r\nconst getValueToClear = (value: any) => {\r\n if (Array.isArray(value)) {\r\n return [];\r\n }\r\n\r\n if (value === null) {\r\n return '';\r\n }\r\n\r\n // In the likely case that we are dealing with object type options\r\n errorInDev('Ensure that valueToClear is defined when a Dropdown deals with object options, as these values may need to be emptied in a specific way.');\r\n};\r\n\r\nconst GeneralDropdown: React.FC = (props) => {\r\n const {\r\n className,\r\n getOptionLabel = (option) => option?.label ?? option?.name ?? option,\r\n handleChange,\r\n id,\r\n loading,\r\n multiple = true,\r\n name,\r\n onChange,\r\n onClose = () => { },\r\n onOpen = () => { },\r\n options,\r\n popupIcon = 'expand',\r\n placeholder,\r\n shouldShowCheckboxes,\r\n shouldShowSelectedValuesBelow = false,\r\n valueOnClear,\r\n hasError = false,\r\n ...restProps\r\n } = props;\r\n\r\n const [open, setOpen] = useState(false);\r\n const [searchString, setSearchString] = useState('');\r\n\r\n const classes = useStyles(); // MaterialUI Style Overrides\r\n\r\n const styledAutocompleteClasses = classNames('dropdown', className);\r\n\r\n const { getFieldProps, getFieldMeta, setFieldValue } = useFormikContext();\r\n const meta = name ? getFieldMeta(name) : null;\r\n\r\n\r\n return (\r\n <>\r\n {\r\n onOpen(event);\r\n setOpen(true);\r\n }}\r\n onClose={(event, reason) => {\r\n onClose(event, reason);\r\n setOpen(false);\r\n setSearchString('');\r\n }}\r\n onChange={(e, value, reason) => {\r\n switch (reason) {\r\n case 'clear':\r\n if (props?.name) {\r\n setFieldValue(\r\n props.name,\r\n valueOnClear ?? getValueToClear(value),\r\n );\r\n }\r\n // removes the highlighted text in results\r\n setSearchString('');\r\n break;\r\n case 'select-option':\r\n case 'remove-option':\r\n if (props?.name) {\r\n const valueToSet = value !== null\r\n ? (value?.value ?? value) // if value is object with key 'value', else just the value\r\n : props?.defaultValue;\r\n\r\n setFieldValue(\r\n props.name,\r\n valueToSet,\r\n );\r\n }\r\n setSearchString('');\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n if (handleChange) {\r\n handleChange(e, value, reason);\r\n }\r\n }}\r\n open={open}\r\n options={options}\r\n $popupIconType={popupIcon}\r\n popupIcon={popupIcons[popupIcon]}\r\n renderInput={(params) => (\r\n \r\n {loading && }\r\n {params.InputProps.endAdornment}\r\n \r\n ),\r\n }}\r\n placeholder={placeholder}\r\n variant=\"outlined\"\r\n {...params}\r\n {...getFieldProps(name)}\r\n // onChange needed here after getFieldProps(name) so highlighting doesn't break\r\n onChange={\r\n (event) => setSearchString(event?.currentTarget?.value)\r\n }\r\n />\r\n )}\r\n renderOption={(option, { selected }) => {\r\n // reqd to re-use styles from Checkbox\r\n const checkboxOptionClasses = classNames('formik-field-checkbox', 'dropdown', {\r\n 'checked': !!selected,\r\n });\r\n\r\n const label = getOptionLabel(option);\r\n\r\n // highlight search string\r\n const highlightedOption = searchString ? highlightSubstring(searchString, label) : label;\r\n\r\n return (\r\n <>\r\n {shouldShowCheckboxes ?\r\n \r\n \r\n \r\n :\r\n \r\n }\r\n )\r\n }}\r\n {...restProps}\r\n />\r\n\r\n {shouldShowSelectedValuesBelow && }\r\n \r\n );\r\n}\r\n\r\nexport default GeneralDropdown;","import styled, { css } from 'styled-components';\r\nimport buttonSettings from '_containers/Theme/corporate/button';\r\nimport {\r\n button,\r\n buttonReset,\r\n fixedTitle14,\r\n fixedBody14,\r\n fixedBody12\r\n} from '_utils/styles';\r\n\r\nimport { spacing } from '_utils/props';\r\n\r\n\r\nexport const LicencesTableWrapper = styled.table`\r\n border-collapse: collapse;\r\n width: 100%;\r\n\r\n thead {\r\n border-bottom: 1px solid #ddd;\r\n }\r\n\r\n th {\r\n text-align: left;\r\n padding: 12px 24px 12px 0px;\r\n ${fixedTitle14};\r\n color: ${({ theme }) => theme.form.label.color};\r\n font-weight: bold;\r\n line-height: 24px;\r\n }\r\n\r\n \r\n td {\r\n line-height: 24px;\r\n padding: 12px 24px 12px 0px;\r\n border-bottom: 1px solid #ddd;\r\n }\r\n\r\n td:first-child {\r\n width: 60%;\r\n }\r\n\r\n td:nth-child(2) {\r\n max-width: 200px;\r\n white-space: nowrap; /* prevent the text from wrapping */\r\n overflow: hidden; /* hide the overflowing text */\r\n text-overflow: ellipsis;\r\n }\r\n\r\n td:last-child {\r\n padding-right: 0px;\r\n min-width: 80px\r\n }\r\n\r\n // @media (min-width:768px) {\r\n // td {\r\n // width: 200px;\r\n // max-width: 200px;\r\n // white-space: nowrap; /* prevent the text from wrapping */\r\n // overflow: hidden; /* hide the overflowing text */\r\n // text-overflow: ellipsis;\r\n // }\r\n // th {\r\n // width: 200px;\r\n // max-width: 200px;\r\n // }\r\n // }\r\n \r\n tfoot td {\r\n text-align: right;\r\n border-bottom: 0px;\r\n padding-top: 20px;\r\n }\r\n\r\n`;\r\n\r\nexport const LicencesAddButton = styled.button`\r\n ${button('slim')}\r\n margin-top: 10px;\r\n align-items: center;\r\n border-radius: ${Object.values(buttonSettings?.default?.borderRadius).map(corner => `${corner}px `)};\r\n\r\n\r\n svg {\r\n margin-left: 10px;\r\n height: ${({ theme }) => theme.button.slim.icon.sm.h}px;\r\n width: ${({ theme }) => theme.button.slim.icon.sm.w}px;\r\n } \r\n`;\r\n\r\nexport const LicencesActionButton = styled.button`\r\n border: none;\r\n background: transparent;\r\n display: inline-block;\r\n &:hover {\r\n color: ${({ theme }) => theme.colors.text.interactive1};\r\n }\r\n`;\r\n\r\nexport const ConfirmingButton = styled.button`\r\n${button('slim', 'primary')};\r\n border: none;\r\n margin-right: 24px;\r\n display: inline-block;\r\n &:hover {\r\n color: ${({ theme }) => theme.colors.text.interactive1};\r\n }\r\n\r\n &:disabled {\r\n background: ${({ theme }) => theme.complexFormElement.editableSection.saveButton.disabled.background};\r\n box-shadow: none;\r\n cursor: default;\r\n \r\n &:hover,\r\n &:focus,\r\n &:active {\r\n background: ${({ theme }) => theme.complexFormElement.editableSection.saveButton.active.background};\r\n }\r\n }\r\n`;\r\n\r\nexport const LicencesCheckButton = styled.button`\r\n ${button('slim')}\r\n\r\n align-items: center;\r\n border-radius: 50%\r\n\r\n svg {\r\n height: ${({ theme }) => theme.button.slim.icon.sm.h}px;\r\n width: ${({ theme }) => theme.button.slim.icon.sm.w}px;\r\n } \r\n\r\n`;\r\n\r\nexport const LicencesCancelButton = styled.button`\r\n ${buttonReset()}\r\n \r\n color: ${({ theme }) => theme.colors.text.interactive1}; \r\n align-items: center;\r\n border: none\r\n\r\n svg {\r\n height: ${({ theme }) => theme.button.slim.icon.sm.h}px;\r\n width: ${({ theme }) => theme.button.slim.icon.sm.w}px;\r\n } \r\n\r\n &:hover {\r\n color: ${({ theme }) => theme.colors.text.interactive1Hover};\r\n }\r\n`;\r\n\r\nexport const LicencesActionButtonWrapper = styled.div`\r\n display: flex;\r\n justify-content: right; \r\n align-items: center;\r\n\r\n button {\r\n margin-right: 5px;\r\n }\r\n\r\n button:last-child {\r\n margin-right: 0px;\r\n }\r\n`;\r\n\r\n\r\nexport const LicencesHeadingButton = styled.button`\r\n${button('slim', 'primary')};\r\nalign-items: center;\r\ndisplay: flex;\r\njustify-content: center;\r\nwidth: 100%;\r\nmargin-bottom: 10px;\r\n\r\n\r\nsvg {\r\n ${({ theme }) => spacing({ theme, ml: 1 })};\r\n height: ${({ theme }) => theme.button.slim.icon.sm.h}px;\r\n width: ${({ theme }) => theme.button.slim.icon.sm.w}px;\r\n}\r\n`;\r\n\r\nexport const DialogHeadingWrapper = styled.div`\r\n padding: 16px 24px 0 24px;\r\n`\r\n\r\n// For the table UI style\r\nexport const StyledTableRow = styled.div`\r\n svg {\r\n position: relative;\r\n width: 40px !important;\r\n top: 45px;\r\n left: -3px; \r\n }\r\n`;\r\n\r\nexport const StyledPaddingDiv = styled.div`\r\n margin-left: 12px;\r\n`\r\n\r\n\r\nexport const TextInput = styled.input`\r\n ${fixedBody14};\r\n background-color: ${({ theme }) => theme.form.input.background};\r\n border-radius: 3px;\r\n border: 1px solid ${({ theme }) => theme.form.input.border};\r\n color: ${({ theme }) => theme.form.input.color};\r\n line-height: 24px;\r\n outline-color: ${({ theme }) => theme.form.input.borderFocus};\r\n outline-offset: 0px;\r\n padding: 12px 16px;\r\n width: 100%;\r\n\r\n &:hover {\r\n border-color: ${({ theme }) => theme.form.input.borderHover};\r\n }\r\n\r\n &:focus {\r\n outline-color: ${({ theme }) => theme.form.input.borderFocus};\r\n }\r\n\r\n &:disabled {\r\n background-color: ${({ theme }) => theme.form.input.backgroundDisabled};\r\n border-color: ${({ theme }) => theme.form.input.borderDisabled};\r\n color: ${({ theme }) => theme.form.input.colorDisabled};\r\n pointer-events: none;\r\n }\r\n\r\n ${({ hasError }) => hasError && css`\r\n &:not(:disabled) {\r\n border-color: ${({ theme }) => theme.form.input.borderError};\r\n &:focus {\r\n outline-color: ${({ theme }) => theme.form.input.borderFocusError};\r\n }\r\n }\r\n `}\r\n`;\r\n\r\n// For the list UI view\r\nexport const LicencesListRowWrapper = styled.div`\r\n border-top: 1px solid #ddd;\r\n padding: 12px 0px;\r\n width: 100%\r\n`\r\n\r\nexport const LicencesListContentWrapper = styled.div`\r\n span {\r\n display: inline-block;\r\n vertical-align: middle;\r\n padding: 6px 12px 6px 0px;\r\n }\r\n span:first-child {\r\n text-align: left;\r\n ${fixedTitle14};\r\n color: ${({ theme }) => theme.form.label.color};\r\n font-weight: bold;\r\n }\r\n\r\n span:last-child {\r\n ${fixedBody14};\r\n color: ${({ theme }) => theme.form.label.color};\r\n ${({ isRegistrationNumber }) => {\r\n if (isRegistrationNumber) {\r\n return css`\r\n max-width: 250px;\r\n white-space: nowrap; /* prevent the text from wrapping */\r\n overflow: hidden; /* hide the overflowing text */\r\n text-overflow: ellipsis;\r\n `;\r\n }\r\n }}\r\n }\r\n`;\r\n\r\nexport const DialogKeyTextStyle = styled.div`\r\n ${fixedBody12};\r\n color: ${({ theme }) => theme.form.label.color}; \r\n font-weight: bold;\r\n`;\r\n\r\nexport const ErrorMessage = styled.p`\r\n ${fixedBody12};\r\n color: ${({ theme }) => theme.form.error.color};\r\n position: absolute;\r\n margin-top: 2px;\r\n`;","import React, { useState, Fragment } from 'react';\r\nimport { useFormikContext } from 'formik';\r\nimport { CareerProfileFormValues } from '_containers/CareerProfileFormContext/definitions';\r\nimport GeneralDropdown from '_utils/components/Form/Dropdown/GeneralDropdown';\r\nimport { \r\n LicencesActionButton, \r\n LicencesCheckButton, \r\n LicencesCancelButton, \r\n LicencesActionButtonWrapper, \r\n ConfirmingButton,\r\n DialogHeadingWrapper,\r\n TextInput,\r\n ErrorMessage\r\n } from '../StyledLicencesListForm';\r\n import { getDictionaryItem } from '_utils/data/dictionaryItem';\r\nimport Icon from '_components/Icon';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport { Heading } from '_utils/components/Form/EditableSection/StyledEditableSection';\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n dialogActions: {\r\n justifyContent: \"center\",\r\n },\r\n}));\r\n\r\nconst getErrorMessage = (errorObj) => {\r\n if (typeof errorObj === 'string') {\r\n return errorObj || '';\r\n }\r\n\r\n return errorObj?.[Object.keys(errorObj)?.[0]] || '' // pick out first key in error obj if the field name describes a field that stores an object with many keys, and possibly has multiple validation errors\r\n};\r\n\r\nconst LicencesTableRow = ({\r\n getLicensesOptions,\r\n addNew,\r\n item,\r\n index\r\n}) => {\r\n const [editTableRow, setEditTableRow] = useState(addNew ?? false)\r\n const [open, setOpen] = useState(false);\r\n\r\n const classes = useStyles();\r\n\r\n // component local state, not for updating formik context\r\n const [licenceName, setLicenceName] = useState(item?.licenceName)\r\n const [number, setNumber] = useState(item?.registrationNumber)\r\n\r\n // Since the referenceData name is the source of truth\r\n const nameOptions = getLicensesOptions ? getLicensesOptions.map((item)=>item.name) : []\r\n\r\n const { values, setFieldValue, getFieldMeta } = useFormikContext();\r\n const name = `licences.items.${index}.licenceName`;\r\n const meta = name ? getFieldMeta(name) : null;\r\n const hasError = !!((meta?.touched || meta?.initialTouched) && meta?.error);\r\n const errorMessage = getErrorMessage(meta?.error);\r\n\r\n\r\n const getLicences = values?.licences?.items;\r\n const updated = [...getLicences]\r\n\r\n const handleClickOpen = () => {\r\n setOpen(true);\r\n };\r\n\r\n const handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n const handleDelete = () => {\r\n updated.splice(index, 1)\r\n setFieldValue('licences.items', updated)\r\n setOpen(false);\r\n };\r\n\r\n const handleRegistrationNumber = (event) => {\r\n const inputValue = event.target.value;\r\n // Only allow alphanumeric characters\r\n const filteredValue = inputValue.replace(/[^a-zA-Z0-9]/g, '');\r\n setNumber(filteredValue);\r\n };\r\n\r\n // get the field and label values\r\n const cancelLabel = getDictionaryItem('form-career-license-cancel', 'Cancel');\r\n const deleteLabel = getDictionaryItem('form-career-license-delete', 'Delete');\r\n const notProvidedLabel = getDictionaryItem('form-career-registration-number-not-provided', 'Not Provided');\r\n const confirmDeleteLabel = getDictionaryItem('form-career-license-confirmation-delete', 'Are you sure you want to delete this item?');\r\n \r\n const showTableRow = (edit) => {\r\n if (edit) {\r\n return (\r\n \r\n \r\n { \r\n return option\r\n }}\r\n multiple={false}\r\n name={`licences.items.${index}.licenceName`}\r\n id={`licences.items.${index}.licenceName`}\r\n options={nameOptions ?? []}\r\n placeholder={'Select'}\r\n shouldShowCheckboxes={false} \r\n hasError={!!hasError} \r\n />\r\n {hasError && {errorMessage}}\r\n \r\n \r\n \r\n \r\n {/* make them as a whole or seprate? */}\r\n \r\n \r\n {\r\n // the result is confirmed, so sync with formik state\r\n setFieldValue(`licences.items.${index}.registrationNumber`, number)\r\n item.addNew = false\r\n setEditTableRow(false) \r\n \r\n }}>\r\n\r\n {\r\n // since it is a cancel function, the value is not updated in formik, so since local state with formik\r\n setFieldValue(`licences.items.${index}.registrationNumber`, number)\r\n item.addNew = false\r\n setEditTableRow(false) \r\n \r\n }}> {cancelLabel}\r\n \r\n \r\n )\r\n } else {\r\n return (\r\n {item?.licenceName}\r\n \r\n \r\n {item?.registrationNumber || notProvidedLabel}\r\n \r\n\r\n\r\n {/* make them as a whole or seprate? */}\r\n \r\n \r\n {\r\n setEditTableRow(true)\r\n }}>\r\n\r\n {\r\n handleClickOpen()\r\n }}>\r\n \r\n \r\n\r\n )\r\n }\r\n }\r\n\r\n return (\r\n \r\n {showTableRow(editTableRow)}\r\n \r\n {confirmDeleteLabel}\r\n \r\n \r\n {deleteLabel}\r\n \r\n \r\n {cancelLabel}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default LicencesTableRow;","import React, { useState, Fragment } from 'react';\r\nimport { useFormikContext } from 'formik';\r\nimport { CareerProfileFormValues } from '_containers/CareerProfileFormContext/definitions';\r\nimport { getDictionaryItem } from '_utils/data/dictionaryItem';\r\nimport Dropdown from '_utils/components/Form/Dropdown';\r\nimport { \r\n LicencesActionButton, \r\n LicencesActionButtonWrapper, \r\n ConfirmingButton,\r\n DialogHeadingWrapper, \r\n LicencesCancelButton,\r\n LicencesListContentWrapper,\r\n LicencesListRowWrapper,\r\n DialogKeyTextStyle,\r\n TextInput\r\n} from '../StyledLicencesListForm';\r\nimport Icon from '_components/Icon';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport { Heading } from '_utils/components/Form/EditableSection/StyledEditableSection';\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n dialogActions: {\r\n justifyContent: \"center\",\r\n marginTop: \"12px\",\r\n marginBottom: \"16px\"\r\n },\r\n}));\r\n\r\nconst LicencesListRow = ({\r\n getLicensesOptions,\r\n addNew,\r\n item,\r\n index\r\n}) => {\r\n\r\n // Override the material ui css\r\n const classes = useStyles();\r\n\r\n const [licenceName, setLicenceName] = useState(item?.licenceName)\r\n const [number, setNumber] = useState(item?.registrationNumber)\r\n\r\n const nameOptions = getLicensesOptions ? getLicensesOptions.map((item) => item.name) : []\r\n const { values, setFieldValue, validateField } = useFormikContext();\r\n const getLicences = values?.licences?.items;\r\n const updated = [...getLicences]\r\n\r\n // For controlling 3 dialog\r\n const [addOpen, setAddOpen] = useState(addNew ?? false)\r\n const [editOpen, setEditOpen] = useState(false)\r\n const [deleteOpen, setDeleteOpen] = useState(false)\r\n\r\n // This is for all the Dialog open and close\r\n const handleDialogClose = () => {\r\n // Do nothing here, so the dialog can only be closed by click related buttons\r\n };\r\n\r\n const handleRegistrationNumber = (event) => {\r\n const inputValue = event.target.value;\r\n // Only allow alphanumeric characters\r\n const filteredValue = inputValue.replace(/[^a-zA-Z0-9]/g, '');\r\n setNumber(filteredValue);\r\n };\r\n\r\n // There are same code for different dialog, could write them as one, but now keep them for personal habit \r\n const handleAdd = async () => {\r\n item.addNew = false\r\n setFieldValue(`licences.items.${index}.registrationNumber`, number)\r\n setAddOpen(false);\r\n }\r\n\r\n // For update\r\n const handleEdit = () => {\r\n setFieldValue(`licences.items.${index}.registrationNumber`, number)\r\n setEditOpen(false);\r\n }\r\n\r\n // For delete\r\n const handleDelete = () => {\r\n updated.splice(index, 1)\r\n setFieldValue('licences.items', updated)\r\n setDeleteOpen(false);\r\n }\r\n\r\n const handleAddCancel = async () => {\r\n setFieldValue(`licences.items.${index}.registrationNumber`, number)\r\n item.addNew = false\r\n setAddOpen(false);\r\n }\r\n\r\n const handleEditCancel = async () => {\r\n setFieldValue(`licences.items.${index}.registrationNumber`, number)\r\n item.addNew = false\r\n setEditOpen(false);\r\n }\r\n\r\n const handleDeleteCancel= () => {\r\n setDeleteOpen(false);\r\n }\r\n\r\n // Those value use hooks\r\n const licenceTypeLabel = getDictionaryItem('form-career-license-type', 'Licence Type');\r\n const registrationNumberLabel = getDictionaryItem('form-career-registration-number', 'Registration Number');\r\n const notProvidedLabel = getDictionaryItem('form-career-registration-number-not-provided', 'Not Provided');\r\n const addNewLabel = getDictionaryItem('form-career-registration-number-add-new', 'Add New');\r\n const addLabel = getDictionaryItem('form-career-license-add', 'Add');\r\n const cancelLabel = getDictionaryItem('form-career-license-cancel', 'Cancel');\r\n const updateLabel = getDictionaryItem('form-career-license-update', 'Update');\r\n const editLabel = getDictionaryItem('form-career-license-edit', 'Edit');\r\n const deleteLabel = getDictionaryItem('form-career-license-delete', 'Delete');\r\n const confirmDeleteLabel = getDictionaryItem('form-career-license-confirmation-delete', 'Are you sure you want to delete this item?');\r\n\r\n const showTableRow = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n {licenceTypeLabel}{item?.licenceName}\r\n {registrationNumberLabel}{item?.registrationNumber || notProvidedLabel}\r\n \r\n \r\n \r\n {\r\n setEditOpen(true)\r\n\r\n }}>\r\n\r\n {\r\n setDeleteOpen(true)\r\n }}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n )\r\n };\r\n\r\n return (\r\n \r\n {showTableRow()}\r\n \r\n {addNewLabel}\r\n \r\n \r\n \r\n {licenceTypeLabel}\r\n \r\n \r\n {\r\n return option\r\n }}\r\n multiple={false}\r\n name={`licences.items.${index}.licenceName`}\r\n id={`licences.items.${index}.licenceName`}\r\n options={nameOptions ?? []}\r\n placeholder={'Select'}\r\n shouldShowCheckboxes={false}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n {registrationNumberLabel}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n {addLabel}\r\n \r\n \r\n {cancelLabel}\r\n \r\n \r\n\r\n \r\n \r\n {editLabel}\r\n \r\n \r\n \r\n {licenceTypeLabel}\r\n \r\n \r\n {\r\n return option\r\n }}\r\n multiple={false}\r\n name={`licences.items.${index}.licenceName`}\r\n id={`licences.items.${index}.licenceName`}\r\n options={nameOptions ?? []}\r\n placeholder={'Select'}\r\n shouldShowCheckboxes={false}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n {registrationNumberLabel}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n {updateLabel}\r\n \r\n \r\n {cancelLabel}\r\n \r\n \r\n \r\n \r\n {confirmDeleteLabel}\r\n \r\n \r\n {deleteLabel}\r\n \r\n \r\n {cancelLabel}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default LicencesListRow;\r\n","import { compose } from 'ramda';\r\nimport React, { useContext, useState, useEffect } from 'react';\r\nimport { useFormikContext } from 'formik';\r\nimport ErrorMessage from '_utils/components/Form/ErrorMessage';\r\nimport { CareerProfileFormContext, CareerProfileFormValues } from '_containers/CareerProfileFormContext/definitions';\r\nimport { withEditMode } from '_containers/BaseComponent';\r\nimport {\r\n FormContext,\r\n withFormSectionKeyContext,\r\n} from '_containers/FormSectionContext';\r\nimport { withMemberContext } from '_containers/MemberContext';\r\nimport {\r\n EditableSectionContainer,\r\n EditableSectionHeader,\r\n} from '_utils/components/Form/EditableSection';\r\n\r\nimport {\r\n Field,\r\n FormSummary,\r\n} from '_utils/components/Form/StyledFormSection';\r\nimport { Tooltip } from '_utils/components';\r\nimport LicencesTableRow from './LicencesComponents/LicencesTableRow';\r\nimport LicencesListRow from './LicencesComponents/LicencesListRow'\r\nimport { getDictionaryItem } from '_utils/data/dictionaryItem';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport { FieldSummaryNoValue } from '_utils/components/Form/FieldSummary/StyledFieldSummary';\r\nimport { LicencesTableWrapper, LicencesAddButton, LicencesListContentWrapper, LicencesListRowWrapper } from './LicencesComponents/StyledLicencesListForm';\r\nimport { CareerProfileFormProps } from '../definitions';\r\nimport mockData from '../mock.json';\r\n\r\n// Todo: change it to supporting field level and array level\r\nconst getErrorMessage = (errorObj, msg) => {\r\n\r\n if (typeof errorObj === 'string') {\r\n return errorObj || '';\r\n }\r\n\r\n // Since there is Array here with edit and read view, this error is for the read view.\r\n if (Array.isArray(errorObj)) {\r\n let err = msg // In Licence field, only licence Type is a must required value\r\n return err\r\n }\r\n\r\n return errorObj?.[Object.keys(errorObj)?.[0]] || '' // pick out first key in error obj if the field name describes a field that stores an object with many keys, and possibly has multiple validation errors\r\n};\r\n\r\nconst LicencesListForm: React.FC = ({\r\n editMode,\r\n mockCareerProfile,\r\n rendering,\r\n careerProfileApi\r\n}) => {\r\n // get the field and label values\r\n const heading = getDictionaryItem('form-career-section-licenses', 'Licences and certificates');\r\n const updateLabel = getDictionaryItem('form-career-button-update', 'Update');\r\n const notCapturedLabel = getDictionaryItem('form-not-captured-label', 'Not captured');\r\n const tooltipText = getDictionaryItem('form-career-license-tooltip-text');\r\n const licenceTypeLabel = getDictionaryItem('form-career-license-type', 'Licence Type');\r\n const registrationNumberLabel = getDictionaryItem('form-career-registration-number', 'Registration Number');\r\n const addItemLabel = getDictionaryItem('form-career-license-add-item', 'Add Item');\r\n const notProvidedLabel = getDictionaryItem('form-career-registration-number-not-provided', 'Not Provided');\r\n const noItemAddedLabel = getDictionaryItem('form-career-license-no-item-added', 'No items added');\r\n const licenceTypeNoEmpty = getDictionaryItem('form-career-license-error-not-empty', 'Licences Type should not be empty');\r\n\r\n\r\n const formContext = useContext(FormContext);\r\n const [isMobile, setIsMobile] = useState(false)\r\n const sectionContext = formContext?.licences;\r\n const referenceData = careerProfileApi?.result;\r\n\r\n const getLicensesOptions = referenceData?.data?.referenceData?.licences?.items;\r\n\r\n const uid = `licenses-certificates-mmf`;\r\n\r\n // render component with mock data when in Experience Editor\r\n const careerProfile =\r\n !editMode\r\n ? careerProfileApi?.result?.data\r\n : mockCareerProfile ?? mockData?.mockCareerProfile;\r\n\r\n const { values, setFieldValue, getFieldMeta } = useFormikContext();\r\n\r\n // // For checking the duplicate\r\n const meta = getFieldMeta(`licences.items`) ?? null;\r\n let hasError = meta?.error;\r\n const errorMessage = getErrorMessage(meta?.error, licenceTypeNoEmpty);\r\n\r\n const getLicences = values?.licences?.items;\r\n\r\n const DesktopView = (isEditing) => {\r\n if (isEditing) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {licenceTypeLabel}\r\n {registrationNumberLabel}\r\n \r\n \r\n\r\n {/* feel like this part should be as a component with proprs */}\r\n \r\n {getLicences?.length === 0 ? {noItemAddedLabel} :\r\n getLicences?.map((item, index) => {\r\n return \r\n })\r\n }\r\n \r\n \r\n \r\n \r\n {\r\n // add a new row with \"singItemEdit true\"\r\n const updatedLicences = [...getLicences, {\r\n \"licenceName\": \"\",\r\n \"registrationNumber\": \"\",\r\n \"licenceStatus\": null,\r\n \"addNew\": true\r\n }]\r\n setFieldValue('licences.items', updatedLicences)\r\n }}>\r\n {addItemLabel}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {licenceTypeLabel}\r\n {registrationNumberLabel}\r\n \r\n \r\n\r\n \r\n {/* feel like this part should be as a component with proprs */}\r\n {getLicences?.length === 0 ? {notCapturedLabel} :\r\n getLicences.map((item) => {\r\n return (\r\n \r\n \r\n {item?.licenceName}\r\n \r\n \r\n {item?.registrationNumber || notProvidedLabel}\r\n \r\n\r\n \r\n )\r\n })\r\n\r\n }\r\n \r\n \r\n\r\n \r\n \r\n\r\n )\r\n }\r\n\r\n\r\n const MobileView = (isEditing) => {\r\n if (isEditing) {\r\n return (\r\n \r\n \r\n\r\n {getLicences?.length === 0 ? {noItemAddedLabel} :\r\n getLicences.map((item, index) => {\r\n return (\r\n \r\n )\r\n })\r\n }\r\n \r\n {\r\n // add a new row with \"singItemEdit true\"\r\n const updatedLicences = [...getLicences, {\r\n \"licenceName\": \"\",\r\n \"registrationNumber\": \"\",\r\n \"licenceStatus\": null,\r\n \"addNew\": true\r\n }]\r\n setFieldValue('licences.items', updatedLicences)\r\n }}>\r\n {addItemLabel}\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n\r\n return (\r\n \r\n \r\n {getLicences?.length === 0 ? {notCapturedLabel} :\r\n getLicences.map((item) => {\r\n return (\r\n \r\n \r\n {licenceTypeLabel}{item?.licenceName}\r\n {registrationNumberLabel}{item?.registrationNumber || notProvidedLabel}\r\n \r\n \r\n )\r\n })\r\n }\r\n \r\n \r\n\r\n )\r\n }\r\n\r\n useEffect(() => {\r\n const handleResize = () => {\r\n setIsMobile(window.innerWidth < 768); // check if window width is less than 768px\r\n }\r\n\r\n setIsMobile(window.innerWidth < 768);\r\n window.addEventListener('resize', handleResize);\r\n\r\n return () => {\r\n window.removeEventListener('resize', handleResize);\r\n };\r\n }, []);\r\n\r\n \r\n\r\n return (\r\n \r\n \r\n {heading} \r\n \r\n\r\n {isMobile ? MobileView(sectionContext?.isEditing) : DesktopView(sectionContext?.isEditing)}\r\n\r\n {hasError && {errorMessage}}\r\n \r\n );\r\n};\r\n\r\nexport default compose(\r\n withEditMode,\r\n withMemberContext,\r\n withFormSectionKeyContext('licences'),\r\n)(LicencesListForm);","import React from 'react';\r\nimport { ErrorMessage, useField } from 'formik';\r\n\r\nimport { CheckboxProps, CheckboxListProps } from './definitions';\r\nimport {\r\n CheckboxLabel,\r\n InvalidMessage,\r\n InvalidMessageContainer,\r\n} from './StyledCheckboxList'\r\n\r\nimport {\r\n FormElementWrapper\r\n} from '../StyledFormElement'\r\n\r\nconst getChecked = (\r\n value: string,\r\n fieldValue: boolean | string[],\r\n) => {\r\n if (Array.isArray(fieldValue)) {\r\n return fieldValue?.indexOf(value) > -1;\r\n } else {\r\n return fieldValue;\r\n }\r\n};\r\n\r\nconst Checkbox: React.FC = ({\r\n children,\r\n onChange,\r\n state,\r\n ...props\r\n}) => {\r\n const [{ onChange: onChangeFormik, ...field }, meta] = useField(props?.name);\r\n const hasError = meta?.error && (meta?.touched || meta?.initialTouched) ? \"error-border\" : \"\";\r\n\r\n const handleOnChange = (e: React.ChangeEvent) => {\r\n onChange?.(e);\r\n onChangeFormik?.(e);\r\n }\r\n\r\n return (\r\n \r\n \r\n {children}\r\n \r\n )\r\n};\r\n\r\nconst CheckboxList: React.FC = ({\r\n items,\r\n //@ts-ignore: name not being recognised in CheckboxListProps, which contains a union type - which may have confused TS.\r\n name: globalName,\r\n otherReferenceLabel,\r\n}) => {\r\n return (\r\n \r\n {items?.map((item, index) => {\r\n const isMultiple = (items?.length ?? 0) > 1 ? 'is-multiple' : '';\r\n const label = otherReferenceLabel ? item?.[otherReferenceLabel] : item?.label;\r\n\r\n return (\r\n \r\n {label}\r\n \r\n )\r\n })}\r\n\r\n \r\n {\r\n globalName\r\n ? (\r\n \r\n \r\n \r\n ) : (\r\n items?.map((item, index) => (\r\n \r\n \r\n \r\n ))\r\n )\r\n }\r\n \r\n \r\n );\r\n};\r\n\r\nexport default CheckboxList;","import { compose } from 'ramda';\r\nimport React, { useContext } from 'react';\r\nimport { RichText } from '@sitecore-jss/sitecore-jss-react';\r\n\r\nimport { withEditMode } from '_containers/BaseComponent';\r\nimport { CareerProfileFormContext } from '_containers/MMFCareerProfileFormContext/definitions';\r\nimport {\r\n FormContext,\r\n withFormSectionKeyContext,\r\n} from '_containers/FormSectionContext';\r\nimport { withMemberContext } from '_containers/MemberContext';\r\nimport {\r\n EditableSectionContainer,\r\n EditableSectionHeader,\r\n} from '_utils/components/Form/EditableSection';\r\nimport FieldSummary from '_utils/components/Form/FieldSummary';\r\nimport {\r\n Field,\r\n FormSummary,\r\n HeadingContainer,\r\n} from '_utils/components/Form/StyledFormSection';\r\nimport { getDictionaryItem } from '_utils/data/dictionaryItem';\r\nimport { getCommaSeparatedList } from '_utils/helpers/form/index';\r\n\r\nimport { CareerProfileFormProps } from '../definitions';\r\nimport mockData from '../mock.json';\r\nimport CheckboxList from '_utils/components/Form/CheckboxList';\r\n\r\nconst ProfessionalInterestsForm: React.FC = ({\r\n editMode,\r\n mockCareerProfile,\r\n rendering,\r\n careerProfileApi\r\n}) => {\r\n const formContext = useContext(FormContext);\r\n const sectionContext = formContext?.professionalInterests;\r\n const referenceData = careerProfileApi?.result;\r\n\r\n const getInterestsOptions = referenceData?.data?.referenceData?.professionalInterests?.items;\r\n\r\n const uid = `professional-interests`;\r\n\r\n // render component with mock data when in Experience Editor\r\n const careerProfile =\r\n !editMode\r\n ? careerProfileApi?.result?.data\r\n : mockCareerProfile ?? mockData?.mockCareerProfile;\r\n\r\n // get the field and label values\r\n const heading = getDictionaryItem('form-career-section-professional-interests', 'Professional interests');\r\n const updateLabel = getDictionaryItem('form-career-button-update', 'Update');\r\n const interestsLabel = getDictionaryItem('form-career-select-interests', 'Select at least one of the following topics you are interested in');\r\n\r\n const professionalInterestData = {\r\n name: \"professionalInterests.items\",\r\n items: getInterestsOptions\r\n };\r\n\r\n return (\r\n \r\n \r\n {heading}\r\n \r\n\r\n {sectionContext?.isEditing\r\n ? (\r\n <>\r\n {/* TODO: Add checkbox functionality as part of WP-2338 */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n \r\n );\r\n};\r\n\r\nexport default compose(\r\n withEditMode,\r\n withMemberContext,\r\n withFormSectionKeyContext('professionalInterests'),\r\n)(ProfessionalInterestsForm);\r\n","import { compose } from 'ramda';\r\nimport React, { useContext } from 'react';\r\nimport { RichText } from '@sitecore-jss/sitecore-jss-react';\r\n\r\nimport { withEditMode } from '_containers/BaseComponent';\r\nimport { CareerProfileFormContext } from '_containers/MMFCareerProfileFormContext/definitions';\r\nimport {\r\n FormContext,\r\n withFormSectionKeyContext,\r\n} from '_containers/FormSectionContext';\r\nimport { withMemberContext } from '_containers/MemberContext';\r\nimport {\r\n EditableSectionContainer,\r\n EditableSectionHeader,\r\n} from '_utils/components/Form/EditableSection';\r\nimport FieldSummary from '_utils/components/Form/FieldSummary';\r\nimport {\r\n Field,\r\n FormSummary,\r\n HeadingContainer,\r\n} from '_utils/components/Form/StyledFormSection';\r\nimport { Tooltip } from '_utils/components';\r\n\r\nimport { getDictionaryItem } from '_utils/data/dictionaryItem';\r\nimport { getCommaSeparatedList } from '_utils/helpers/form/index';\r\n\r\nimport { CareerProfileFormProps } from '../definitions';\r\nimport mockData from '../mock.json';\r\nimport CheckboxList from '_utils/components/Form/CheckboxList';\r\n\r\nconst SpecialInterestsForm: React.FC = ({\r\n editMode,\r\n mockCareerProfile,\r\n rendering,\r\n careerProfileApi,\r\n}) => {\r\n const formContext = useContext(FormContext);\r\n const sectionContext = formContext?.specialityAreas;\r\n const referenceData = careerProfileApi?.result;\r\n\r\n const getInterestsOptions = referenceData?.data?.referenceData?.specialityAreas?.items;\r\n const tooltipMessage = 'Please select all areas in which you are considered a specialist or have significant expertise. CPA Australia may use this information to identify you as a subject matter expert.'\r\n\r\n const uid = `special-interests`;\r\n\r\n // render component with mock data when in Experience Editor\r\n const careerProfile =\r\n !editMode\r\n ? careerProfileApi?.result?.data\r\n : mockCareerProfile ?? mockData?.mockCareerProfile;\r\n\r\n // get the field and label values\r\n const heading = getDictionaryItem('form-career-section-special-interests', 'Speciality areas');\r\n const updateLabel = getDictionaryItem('form-career-button-update', 'Update');\r\n const interestsLabel = getDictionaryItem('form-career-select-interests', 'Select at least one of the following topics you are interested in');\r\n\r\n const specialInterestData = {\r\n name: \"specialityAreas.items\",\r\n items: getInterestsOptions\r\n };\r\n\r\n return (\r\n \r\n \r\n {heading}\r\n \r\n\r\n {sectionContext?.isEditing\r\n ? (\r\n <>\r\n {/* TODO: Add checkbox functionality as part of WP-2338 */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n \r\n );\r\n};\r\n\r\nexport default compose(\r\n withEditMode,\r\n withMemberContext,\r\n withFormSectionKeyContext('specialityAreas'),\r\n)(SpecialInterestsForm);\r\n","import { Placeholder } from '@sitecore-jss/sitecore-jss-react';\r\nimport React from 'react';\r\n\r\nimport Icon from '_components/Icon';\r\nimport { DashboardButton, DashboardButtonContainer, FormSection, LargeHeading, RichTextContainer } from '_utils/components/Form/StyledFormSection';\r\nimport { getDictionaryItem } from '_utils/data/dictionaryItem';\r\nimport { buttonAction } from '_utils/helpers/form';\r\n\r\nimport { CareerProfileFormProps } from '../definitions';\r\n\r\nconst ApiErrorContent: React.FC = ({\r\n rendering,\r\n}) => {\r\n const datasource = rendering?.fields?.data?.datasource;\r\n const heading = getDictionaryItem('form-api-error-heading', 'We’re experiencing some technical difficulties');\r\n const hasContent = rendering?.placeholders?.['jss-form-api-error']?.length > 0;\r\n const dashboardLinkLabel = getDictionaryItem('form-dashboard-link-label', 'Go to My CPA dashboard');\r\n const dashboardLink = datasource?.dashboardLink?.jss?.value;\r\n\r\n return (\r\n <>\r\n {hasContent &&\r\n \r\n {heading}\r\n \r\n \r\n \r\n \r\n }\r\n {dashboardLink && dashboardLinkLabel &&\r\n \r\n buttonAction(e, dashboardLink?.href)}>\r\n {dashboardLinkLabel}\r\n \r\n \r\n \r\n }\r\n \r\n );\r\n};\r\n\r\nexport default ApiErrorContent;\r\n","import { canUseDOM } from 'exenv';\r\nimport React, { useContext, useEffect } from 'react';\r\nimport InPageAnnouncement from '_components/Announcements/InPageAnnouncement';\r\nimport {\r\n EducationProfessionalBodiesForm,\r\n EmploymentDetailsForm,\r\n ProfessionalInterestsForm,\r\n SpecialInterestsForm,\r\n LicencesListForm\r\n} from '_components/MMFCareerProfileForm/Sections';\r\nimport Icon from '_components/Icon';\r\nimport ApiErrorContent from '_components/MMFCareerProfileForm/Sections/ApiErrorContent';\r\nimport { CareerProfileFormContext } from '_containers/MMFCareerProfileFormContext/definitions';\r\nimport { FormContext } from '_containers/FormSectionContext';\r\nimport { EditableSectionActions } from '_utils/components/Form/EditableSection';\r\nimport {\r\n IntroContainer,\r\n NarrowContainer,\r\n PrivacyPolicy,\r\n} from '_utils/components/Form/StyledContainerForm';\r\nimport { CTAButton } from '_utils/components/Form/StyledFormSection';\r\nimport { buttonAction } from '_utils/helpers/form/index';\r\nimport { getDictionaryItem } from '_utils/data/dictionaryItem';\r\nimport { CareerProfileFormProps } from './definitions';\r\n\r\nconst FormContent: React.FC = (props) => {\r\n const {\r\n careerProfileApi,\r\n careerProfileSubmissionApi,\r\n companySubmissionApi,\r\n rendering,\r\n } = props;\r\n\r\n const {\r\n isAnySectionEditing,\r\n sectionEditing,\r\n employmentDetails: { updateAction },\r\n isReferredFromRenewal,\r\n setIsEditing,\r\n } = useContext(FormContext);\r\n\r\n const isEditing = isAnySectionEditing;\r\n\r\n const datasource = rendering?.fields?.data?.datasource;\r\n const myAccountLink = datasource?.myAccountLink?.jss?.value;\r\n const privacyNotice = datasource?.privacyNotice?.jss;\r\n\r\n const viewMyAccountLabel = getDictionaryItem('form-my-account-link-label', 'View My Account');\r\n const cancelLabel = getDictionaryItem('form-contact-button-cancel', 'Cancel');\r\n const saveLabel = getDictionaryItem('form-contact-button-save-updates', 'Save changes');\r\n const errorHeading = getDictionaryItem('form-errors-heading', 'Something went wrong');\r\n\r\n // TODO: these need to be made clearer\r\n const isLoading = careerProfileApi?.result?.isLoading || careerProfileSubmissionApi?.result?.isLoading || companySubmissionApi?.result?.isLoading;\r\n const shouldShowApiError = !isLoading && (!careerProfileApi?.result?.isLoading && careerProfileApi?.result?.error);\r\n const shouldShowForm = !isLoading && !careerProfileApi?.result?.error && careerProfileApi?.result?.data && !shouldShowApiError;\r\n\r\n const getAPIErrorMessage = () => {\r\n if (careerProfileApi) {\r\n return careerProfileApi?.result?.error?.message;\r\n }\r\n };\r\n\r\n // scroll user to section being edited\r\n // TODO allow for header offset\r\n useEffect(() => {\r\n if (!canUseDOM || !sectionEditing) {\r\n return;\r\n }\r\n\r\n const targetSection = document.getElementById(sectionEditing);\r\n\r\n if (targetSection) {\r\n window.scrollTo({ top: targetSection?.offsetTop, behavior: 'smooth' });\r\n }\r\n }, [sectionEditing]);\r\n\r\n useEffect(() => {\r\n // Trigger Edit mode on form if referred from Membership Renewal form\r\n // TODO: change this to open the specific section that was clicked on the renewal form, when partial saving is available\r\n if (setIsEditing) {\r\n setIsEditing(isReferredFromRenewal);\r\n }\r\n }, [isReferredFromRenewal]);\r\n\r\n return (\r\n <>\r\n {shouldShowForm &&\r\n \r\n }\r\n\r\n \r\n {isEditing && shouldShowApiError &&\r\n <>\r\n \r\n \r\n \r\n {careerProfileApi?.result?.error?.message &&\r\n \r\n \r\n \r\n }\r\n \r\n }\r\n\r\n {shouldShowForm &&\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n buttonAction(e, myAccountLink)}\r\n >\r\n \r\n {viewMyAccountLabel}\r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n )\r\n};\r\n\r\n\r\nexport default FormContent;\r\n","import styled from 'styled-components';\r\n\r\nimport depth from '_utils/styles/depth';\r\nimport { spacing } from '_utils/props';\r\nimport {\r\n buttonReset,\r\n color,\r\n mq,\r\n subheading2,\r\n svg,\r\n} from '_utils/styles';\r\n\r\nexport const Heading = styled.h5`\r\n ${subheading2}\r\n color: ${color('text.default')};\r\n font-weight: normal;\r\n`;\r\n\r\nexport const Dialog = styled.div`\r\n background-color: ${color('background.tint1')};\r\n height: 100%;\r\n left: 0;\r\n overflow-y: auto;\r\n overflow-x: hidden;\r\n position: fixed;\r\n scroll-behavior: smooth;\r\n top: 0;\r\n width: 100%;\r\n z-index: ${depth.MODAL};\r\n\r\n ${({ closeOnBreakpoint }) => mq(closeOnBreakpoint)} {\r\n display: none;\r\n }\r\n`;\r\n\r\nexport const Layout = styled.div``;\r\n\r\nexport const CloseContainer = styled.div`\r\n border-bottom: 1px solid ${color('ui.divider')};\r\n align-items: center;\r\n display: flex;\r\n flex: none;\r\n height: 64px;\r\n justify-content: space-between;\r\n ${({ theme }) => spacing({ theme, px: 3 })}\r\n position: relative;\r\n width: 100%;\r\n\r\n ${mq('md')} {\r\n height: 92px;\r\n }\r\n`;\r\n\r\nexport const CloseButton = styled.button`\r\n ${() => buttonReset()}\r\n\r\n display: inline-block;\r\n line-height: 0;\r\n position: relative;\r\n`;\r\n\r\nexport const CrossWrapper = styled.span`\r\n ${svg(18, 18)}\r\n flex: none;\r\n width: 18px;\r\n\r\n ${mq('md')} {\r\n ${svg(24, 24)}\r\n width: 24px;\r\n }\r\n path {\r\n fill: ${color('all.brandPrimary1')};\r\n }\r\n\r\n ${CloseButton}:hover & {\r\n path {\r\n fill: ${color('all.brandPrimary1')};\r\n }\r\n }\r\n`;\r\n\r\nexport const ContentContainer = styled.div``;\r\n","import FocusTrap from 'focus-trap-react';\r\nimport React, { useEffect, useRef } from 'react';\r\n\r\nimport {\r\n withModalContext,\r\n} from '_containers/ModalContext';\r\n\r\nimport ScreenReader from '_utils/components/ScreenReader';\r\nimport { getDictionaryItem } from '_utils/data/dictionaryItem';\r\nimport {\r\n disableBodyScroll,\r\n enableBodyScroll,\r\n} from '_utils/helpers';\r\nimport {\r\n usePrevious,\r\n useWindowSize,\r\n} from '_utils/hooks';\r\nimport LargeCross from '_utils/icons/LargeCross';\r\nimport { BREAKPOINTS } from '_utils/styles/mq';\r\n\r\nimport { ModalProps } from './definitions';\r\n\r\nimport {\r\n CloseButton,\r\n CloseContainer,\r\n ContentContainer,\r\n CrossWrapper,\r\n Dialog,\r\n Heading,\r\n Layout\r\n} from './StyledModal';\r\n\r\nconst Modal: React.FC = ({ modal }) => {\r\n\r\n const {\r\n id,\r\n content,\r\n onClose,\r\n dismissable,\r\n shouldHideCloseButton,\r\n closeOnBreakpoint,\r\n onActivate,\r\n heading\r\n } = modal || {};\r\n\r\n const dialogRef = useRef();\r\n\r\n const contentContainerRef = useRef();\r\n\r\n const prevModalContent = usePrevious(Boolean(content));\r\n\r\n const windowSize = useWindowSize({ enabled: !!closeOnBreakpoint });\r\n\r\n useEffect(() => {\r\n if (windowSize?.width >= BREAKPOINTS[closeOnBreakpoint]) {\r\n onClose();\r\n }\r\n }, [windowSize?.width])\r\n\r\n useEffect(\r\n () => {\r\n const dialog = dialogRef.current;\r\n\r\n const contentContainer = contentContainerRef.current;\r\n\r\n const clickOutsideListener = (e) => {\r\n let target: HTMLElement = e.target;\r\n\r\n // iterate through parents until we find menu dialog or no more\r\n while (target) {\r\n if (target === contentContainer) {\r\n // target is in contentContainer, bail\r\n return;\r\n }\r\n // move up to next parent\r\n target = target.parentNode as HTMLElement;\r\n }\r\n // focus outside, close menu\r\n onClose();\r\n };\r\n\r\n // add/remove listener when menu opened/closed\r\n if (content && !prevModalContent) {\r\n disableBodyScroll(dialog);\r\n if (dismissable) {\r\n document.body.addEventListener('mousedown', clickOutsideListener, true);\r\n }\r\n // without setImmediate effect clean up runs immediately\r\n } else if (!content && prevModalContent) {\r\n if (dismissable) {\r\n document.body.removeEventListener('mousedown', clickOutsideListener, true);\r\n }\r\n enableBodyScroll(dialog);\r\n }\r\n\r\n // clean up\r\n return () => {\r\n if (dismissable) {\r\n document.body.removeEventListener('mousedown', clickOutsideListener, true);\r\n }\r\n enableBodyScroll(dialog);\r\n };\r\n },\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n [content]\r\n );\r\n\r\n if (!content) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {\r\n if (onActivate) {\r\n onActivate();\r\n }\r\n }\r\n }\r\n }>\r\n \r\n {!shouldHideCloseButton && (\r\n \r\n {heading}\r\n onClose()}>\r\n {getDictionaryItem('accessibility-close-modal', 'close')}\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {content}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default withModalContext(Modal);\r\n","import { canUseDOM } from 'exenv';\r\nimport React, { useContext } from 'react';\r\nimport { Prompt } from 'react-router-dom';\r\n\r\nimport { FormContext } from '_containers/FormSectionContext';\r\nimport { getDictionaryItem } from '_utils/data/dictionaryItem';\r\nimport { errorInDev } from '_utils/helpers/dev';\r\nimport { useUnload } from '_utils/hooks';\r\n\r\nimport { DiscardChangesAlertProps } from './definitions';\r\n\r\nconst DiscardChangesAlert: React.FC = ({\r\n navigationBlocked,\r\n alertBodyDictionaryKey,\r\n}) => {\r\n const formContext = useContext(FormContext);\r\n\r\n if (formContext === null) {\r\n errorInDev('DiscardChangesAlert is being rendered outside a FormContextProvider!');\r\n return null;\r\n }\r\n\r\n const alertBody = getDictionaryItem(\r\n alertBodyDictionaryKey ?? 'form-unsaved-changes-body',\r\n 'Are you sure you want to leave? You currently have some unsaved changes.',\r\n );\r\n\r\n // TODO: Temporary. This will need to be updated to read if form is editing AND dirty.\r\n const isNavigationBlocked = formContext?.isAnySectionEditing && (navigationBlocked ?? true);\r\n\r\n useUnload(\r\n (e) => {\r\n if (e) {\r\n // This ensures a prompt is shown on beforeunload event\r\n // See: https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onbeforeunload#example\r\n e.preventDefault();\r\n //@ts-ignore\r\n e.returnValue = '';\r\n }\r\n },\r\n !isNavigationBlocked,\r\n );\r\n\r\n if (!canUseDOM) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport { DiscardChangesAlert };\r\n","import styled from 'styled-components';\r\n\r\nimport { Grid } from '_utils/components';\r\nimport { spacing } from '_utils/props';\r\nimport {\r\n color,\r\n ie,\r\n mq,\r\n} from '_utils/styles';\r\n\r\nexport const StickyFooterContainer = styled.div`\r\n background-color: ${({ theme }) => theme.complexFormElement.stickyFooter.background};\r\n border-top: 1px solid ${({ theme }) => theme.complexFormElement.stickyFooter.borderColor};\r\n bottom: ${({ editMode }) => editMode ? '0' : '-1px'};\r\n position: ${({ editMode }) => editMode ? 'relative' : 'sticky'};\r\n z-index: 1; // to lift above Renewal form content\r\n\r\n ${ie} {\r\n bottom: ${({ editMode, isSticky }) => !editMode && isSticky ? '0' : '-1px'};\r\n position: ${({ editMode, isSticky }) => !editMode && isSticky ? 'fixed' : 'relative'};\r\n width: 100%;\r\n }\r\n\r\n ${({ theme }) => spacing({\r\n theme,\r\n pt: {\r\n xs: '12px',\r\n md: '16px',\r\n },\r\n pb: {\r\n xs: '12px',\r\n }\r\n})}\r\n\r\n ${mq('md')} {\r\n padding-bottom: calc(16px + env(safe-area-inset-bottom));\r\n }\r\n\r\n @media all and (min-width: 768px) and (-ms-high-contrast: none), (-ms-high-contrast: active) {\r\n padding-bottom: 16px;\r\n }\r\n\r\n ${Grid.Container} {\r\n ${mq.lessThan('md')} {\r\n padding: 0;\r\n }\r\n }\r\n`;\r\n","import canUseDOM from 'exenv';\r\nimport { compose } from 'ramda'\r\nimport React, { useEffect, useRef, useState } from 'react'\r\n\r\nimport {\r\n COOKIE_BANNER_ID,\r\n LIVE_CHAT_OFFLINE_BUTTON_ID,\r\n LIVE_CHAT_ONLINE_BUTTON_ID,\r\n LIVE_CHAT_ONLINE_MESSAGE_ID,\r\n} from '_components/LiveChat/definitions';\r\nimport { withEditMode } from '_containers/BaseComponent'\r\nimport { Grid } from '_utils/components/';\r\nimport { useOneTrustActiveGroups } from '_utils/hooks';\r\n\r\nimport {\r\n STICKY_FOOTER_ID,\r\n StickyFooterProps,\r\n} from './definitions';\r\n\r\nimport { StickyFooterContainer } from './StyledStickyFooter';\r\n\r\n/**\r\n * @name StickyFooter\r\n * @description StickyFooter is a reusable footer component that pulls together \r\n * polyfill for `position: sticky`, and positioning logic to avoid LiveChat and \r\n * OneTrust's Cookie Banner (updating for when routes change).\r\n */\r\nconst StickyFooter: React.FC = ({\r\n children,\r\n editMode,\r\n}) => {\r\n const [isSticky, setSticky] = useState(false);\r\n const stickyFooterRef = useRef(null);\r\n\r\n const {\r\n isCookieBannerClosed,\r\n isOneTrustScriptReady,\r\n } = useOneTrustActiveGroups();\r\n\r\n const updateLiveChatPosition = () => {\r\n if (!canUseDOM) {\r\n return;\r\n }\r\n\r\n const stickyFooterHeight = stickyFooterRef?.current?.getBoundingClientRect()?.height ?? 0;\r\n const liveChatMessage = document.getElementById(LIVE_CHAT_ONLINE_MESSAGE_ID);\r\n const liveChatButton = document.getElementById(LIVE_CHAT_ONLINE_BUTTON_ID) || document.getElementById(LIVE_CHAT_OFFLINE_BUTTON_ID);\r\n const cookieBanner = document.getElementById(COOKIE_BANNER_ID);\r\n\r\n if (isCookieBannerClosed) {\r\n if (liveChatMessage) {\r\n liveChatMessage.style.bottom = `${stickyFooterHeight + 100}px`;\r\n }\r\n\r\n if (liveChatButton) {\r\n liveChatButton.style.bottom = `${stickyFooterHeight + 24}px`;\r\n }\r\n } else {\r\n if (cookieBanner) {\r\n if (liveChatMessage) {\r\n liveChatMessage.style.bottom = `${stickyFooterHeight + cookieBanner?.offsetHeight + 100}px`;\r\n }\r\n\r\n if (liveChatButton) {\r\n liveChatButton.style.bottom = `${stickyFooterHeight + cookieBanner?.offsetHeight + 24}px`;\r\n }\r\n }\r\n }\r\n };\r\n\r\n const updateStickyFooterPosition = () => {\r\n if (!canUseDOM) {\r\n return;\r\n }\r\n\r\n const stickyFooter = stickyFooterRef?.current;\r\n const cookieBanner = document.getElementById(COOKIE_BANNER_ID);\r\n const pageFooter = document.getElementsByTagName('footer')?.[0];\r\n const pageFooterPosition = pageFooter?.getBoundingClientRect();\r\n const isPageFooterVisible = (pageFooterPosition?.top ?? 0) < window.innerHeight;\r\n\r\n if (stickyFooter) {\r\n if (isPageFooterVisible || isCookieBannerClosed) {\r\n stickyFooter.style.bottom = `0px`;\r\n } else {\r\n if (cookieBanner) {\r\n stickyFooter.style.bottom = `${cookieBanner?.offsetHeight}px`;\r\n } else {\r\n stickyFooter.style.bottom = `0px`;\r\n }\r\n }\r\n }\r\n };\r\n\r\n const updateStickyState = () => {\r\n if (!canUseDOM) {\r\n return;\r\n }\r\n\r\n const pageFooter = document.getElementsByTagName('footer')?.[0];\r\n const pageFooterTop = pageFooter?.getBoundingClientRect()?.top ?? 0;\r\n const windowHeight = window?.innerHeight;\r\n\r\n if (pageFooterTop > 0) {\r\n setSticky(windowHeight <= pageFooterTop);\r\n }\r\n };\r\n\r\n let timeout;\r\n\r\n const updatePositions = () => {\r\n if (timeout) {\r\n window.cancelAnimationFrame(timeout);\r\n }\r\n\r\n timeout = window.requestAnimationFrame(() => {\r\n updateLiveChatPosition();\r\n updateStickyState();\r\n updateStickyFooterPosition();\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n if (!canUseDOM) {\r\n return;\r\n }\r\n\r\n window.addEventListener('resize', updatePositions, false);\r\n window.addEventListener('scroll', updatePositions, false);\r\n\r\n updatePositions();\r\n\r\n return () => {\r\n window.removeEventListener('resize', updatePositions, false);\r\n window.removeEventListener('scroll', updatePositions, false);\r\n };\r\n }, []);\r\n\r\n // reposition live chat if the cookie banner has been closed\r\n useEffect(() => {\r\n updatePositions();\r\n }, [\r\n isCookieBannerClosed,\r\n isOneTrustScriptReady,\r\n ]);\r\n\r\n return (\r\n \r\n \r\n \r\n {children}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default compose(\r\n withEditMode,\r\n)(StickyFooter);\r\n","export const STICKY_FOOTER_ID = 'sticky-footer';\r\n\r\nexport type StickyFooterProps = {\r\n editMode: boolean;\r\n sitecoreContext: any;\r\n};\r\n","import * as validators from '_utils/validationChecks';\r\nimport { SitecoreFieldValidator } from '_utils/validationChecks/definitions'\r\n\r\nexport const careerProfileFormValidators: SitecoreFieldValidator[] = [\r\n {\r\n field: 'rendering.fields.data.datasource.myAccountLink',\r\n errorMessage: 'A valid link to the My Account page must be provided',\r\n required: true,\r\n validators: [validators.isValidLink]\r\n }\r\n];\r\n","export const redirectUrls = (redirectValue, namesArray, redirectValues) => {\r\n const hrefSplit = window.location.href.split(redirectValue)[1] || '';\r\n if(hrefSplit) {\r\n const checkHrefWithNameArray = namesArray.map((a) => a.toLowerCase() === hrefSplit.split('').join('').toLowerCase() ? true : false)\r\n if (checkHrefWithNameArray) {\r\n const redirectLink = redirectValues.filter((a) => a.name.toLowerCase() === hrefSplit && a.value).map(a => (a.value))[0];\r\n window.location.replace(decodeURIComponent(redirectLink.toString()))\r\n }\r\n }\r\n}","import { compose } from 'ramda';\r\nimport React, { useEffect, useRef } from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\n\r\nimport CareerProfileFormContextProvider from '_containers/MMFCareerProfileFormContext';\r\nimport { PageContainer } from '_components/MMFBPPAssessment/StyledBPPAssessment';\r\nimport {\r\n BackToRenewalFormButton,\r\n BackToRenewalFormButtonLabel,\r\n BackToRenewalFormContent,\r\n CTAButtons,\r\n} from '_components/MMFContactDetailsForm/StyledContactDetailsForm';\r\nimport FormContent from '_components/MMFCareerProfileForm/FormContent';\r\nimport ApiErrorContent from '_components/MMFCareerProfileForm/Sections/ApiErrorContent';\r\nimport Modal from '_components/MMFMembershipRenewalForm/Sections/Declaration/Modal';\r\nimport {\r\n withDataSourceValidation,\r\n withEditMode,\r\n} from '_containers/BaseComponent';\r\nimport { withDigitalDataContext } from '_containers/DigitalDataContext';\r\nimport { withMemberContext } from '_containers/MemberContext';\r\nimport ModalProvider from '_containers/ModalContext';\r\nimport { DiscardChangesAlert } from '_utils/components/Form/DiscardChangesAlert';\r\nimport StickyFooter from '_utils/components/Form/StickyFooter';\r\nimport {\r\n Container,\r\n FormContainer,\r\n IntroContainer,\r\n NarrowContainer,\r\n SpinnerWrapper,\r\n StyledSpinner\r\n} from '_utils/components/Form/StyledContainerForm';\r\nimport { getDictionaryItem } from '_utils/data/dictionaryItem';\r\nimport { emitTrackEvent, setObjectData } from '_utils/helpers/analytics';\r\nimport {\r\n checkUserRerferredFromRenewal\r\n} from '_utils/helpers/form';\r\nimport { CareerProfileFormProps } from './definitions';\r\nimport {\r\n EditMode,\r\n} from '_components/MMFCareerProfileForm/Sections';\r\nimport { careerProfileFormValidators } from './validation';\r\nimport InPageAnnouncement from '_components/Announcements/InPageAnnouncement';\r\nimport Icon from '_components/Icon';\r\nimport {redirectUrls} from '_utils/helpers/urlFuncs' \r\n\r\nconst MMFCareerProfileForm: React.FC = (props) => {\r\n const {\r\n careerProfileApi,\r\n careerProfileSubmissionApi,\r\n companySubmissionApi,\r\n digitalData,\r\n editMode,\r\n rendering,\r\n setDigitalData\r\n } = props;\r\n\r\n const successHeading = getDictionaryItem('form-updates-saved', 'Updates saved');\r\n const errorHeading = getDictionaryItem('form-errors-heading', 'Something went wrong');\r\n const backToRenewalFormLabelText = getDictionaryItem('form-back-to-renewal-button-label', 'Back to membership renewal');\r\n\r\n const redirectValues = rendering?.fields?.data?.datasource?.submissionRedirectLinks?.values;\r\n const redirectValuesName = rendering?.fields?.data?.datasource?.submissionRedirectLinks?.values.map((a) => a.name.toLowerCase());\r\n\r\n // TODO: back to renewal form footer can be extracted as a common forms component\r\n const history = useHistory();\r\n\r\n const shouldShowStickyFooter = useRef(false);\r\n\r\n // only check referrer to should show footer on initial mount, not qs change\r\n useEffect(() => {\r\n shouldShowStickyFooter.current = checkUserRerferredFromRenewal();\r\n }, []);\r\n\r\n const handleReturnButtonClick = () => {\r\n // TODO: might need the URL for Membership Renewal form from BE defined, so that this won't fail?\r\n history.goBack();\r\n };\r\n\r\n const uid = rendering?.uid || null;\r\n\r\n const hasAnyAPIError =\r\n careerProfileApi?.result?.error ||\r\n careerProfileSubmissionApi?.result?.error ||\r\n companySubmissionApi?.result?.error;\r\n\r\n const getAPIErrorMessage = () => {\r\n // company submission api error\r\n if (typeof companySubmissionApi?.result?.error?.message === 'string') {\r\n return companySubmissionApi?.result?.error?.message;\r\n }\r\n\r\n if (typeof careerProfileApi?.result?.error?.message === 'string') {\r\n return careerProfileApi?.result?.error?.message;\r\n }\r\n\r\n if (typeof careerProfileSubmissionApi?.result?.error?.message !== 'string') {\r\n return (\r\n careerProfileSubmissionApi?.result?.error?.message?.response?.data?.error\r\n || careerProfileSubmissionApi?.result?.error?.message?.response?.data?.errors?.[0]?.message\r\n );\r\n }\r\n };\r\n\r\n const shouldShowAPIError = hasAnyAPIError;\r\n const shouldShowAPISuccess = !hasAnyAPIError && careerProfileSubmissionApi?.result?.data;\r\n const shouldShowSpinner = !hasAnyAPIError && (\r\n careerProfileApi?.result?.isLoading\r\n || careerProfileSubmissionApi?.result?.isLoading || companySubmissionApi?.result?.isLoading\r\n );\r\n\r\n if (shouldShowAPISuccess && successHeading.length > 1) {\r\n redirectUrls('?referral=', redirectValuesName, redirectValues)\r\n }\r\n\r\n // render component with mock data when in Experience Editor\r\n if (editMode) {\r\n return (\r\n \r\n )\r\n }\r\n\r\n // dispatch tracking event when API error occur and form loaded\r\n useEffect(() => {\r\n if (\r\n !editMode &&\r\n !careerProfileApi?.result?.isLoading &&\r\n hasAnyAPIError &&\r\n typeof setDigitalData === 'function'\r\n ) {\r\n setDigitalData(\r\n setObjectData(\r\n ['form'],\r\n {\r\n formName: 'career form',\r\n errorName: getAPIErrorMessage()\r\n },\r\n digitalData)\r\n );\r\n emitTrackEvent('formErrors');\r\n }\r\n }, [hasAnyAPIError, careerProfileApi?.result?.isLoading]);\r\n\r\n return (\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n {shouldShowAPIError &&\r\n <>\r\n \r\n \r\n \r\n\r\n {careerProfileApi?.result?.error?.message &&\r\n \r\n \r\n \r\n }\r\n \r\n }\r\n\r\n {shouldShowAPISuccess &&\r\n \r\n \r\n \r\n }\r\n\r\n {shouldShowSpinner &&\r\n \r\n \r\n \r\n }\r\n\r\n {!shouldShowSpinner && careerProfileApi?.result?.isLoading &&\r\n \r\n \r\n \r\n }\r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n {shouldShowStickyFooter?.current && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {backToRenewalFormLabelText}\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default compose(\r\n withDataSourceValidation(careerProfileFormValidators),\r\n withDigitalDataContext,\r\n withEditMode,\r\n withMemberContext,\r\n)(MMFCareerProfileForm);","import { SitecoreContextReactContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport React, { createContext, useContext, useMemo, useState } from 'react';\r\nimport { ApiProxy } from '_utils/helpers/apiProxy';\r\nimport { ApiResult } from '_utils/helpers/apiProxy/definitions';\r\nimport { errorInDev } from '_utils/helpers/dev';\r\n\r\nimport {\r\n AddressResult,\r\n AddressSearch,\r\n Countries,\r\n CountryDetail,\r\n CountriesMap,\r\n CountryStates,\r\n LocationAPIContextValue,\r\n CountryItem,\r\n HasCountryGotStates,\r\n HasCountryGotAddressLookupFeature,\r\n} from './definitions';\r\n\r\nexport const LocationAPIContext = createContext(null);\r\n\r\nexport const LocationAPIContextProvider = ({\r\n apiHost = '',\r\n children,\r\n}) => {\r\n const sitecoreContext: any = useContext(SitecoreContextReactContext);\r\n\r\n const isLoggedIn: boolean = useMemo(\r\n () => !sitecoreContext?.context?.securityInfo?.isAnonymous,\r\n [sitecoreContext?.context?.securityInfo?.isAnonymous],\r\n );\r\n\r\n const initialApiResultState = {\r\n data: null,\r\n error: null,\r\n isLoading: false,\r\n postResponse: null,\r\n }\r\n\r\n const [countries, setCountries] = useState>(initialApiResultState);\r\n const [countryDetail, setCountryDetail] = useState>(initialApiResultState);\r\n const [countryStates, setCountryStates] = useState>(initialApiResultState);\r\n const [addressSearch, setAddressSearch] = useState>(initialApiResultState);\r\n const [addressResult, setAddressResult] = useState>(initialApiResultState);\r\n\r\n const countriesApi = ApiProxy({\r\n apiUri: `${apiHost ?? ''}/api/location/Countries`,\r\n axiosRequestConfig: {\r\n method: 'GET',\r\n },\r\n isLoggedIn,\r\n result: countries,\r\n setResult: setCountries,\r\n });\r\n\r\n const countryDetailApi = ApiProxy({\r\n apiUri: `${apiHost ?? ''}/api/location/CountryDetail`,\r\n axiosRequestConfig: {\r\n method: 'GET',\r\n },\r\n isLoggedIn,\r\n result: countryDetail,\r\n setResult: setCountryDetail,\r\n });\r\n\r\n const countryStatesApi = ApiProxy({\r\n apiUri: `${apiHost ?? ''}/api/location/CountryStates`,\r\n axiosRequestConfig: {\r\n method: 'GET',\r\n },\r\n isLoggedIn,\r\n result: countryStates,\r\n setResult: setCountryStates,\r\n });\r\n\r\n const addressSearchApi = ApiProxy({\r\n apiUri: `${apiHost ?? ''}/api/location/AddressSearch`,\r\n axiosRequestConfig: {\r\n method: 'GET',\r\n },\r\n isLoggedIn,\r\n result: addressSearch,\r\n setResult: setAddressSearch,\r\n });\r\n\r\n const addressResultApi = ApiProxy({\r\n apiUri: `${apiHost ?? ''}/api/location/AddressResult`,\r\n axiosRequestConfig: {\r\n method: 'GET',\r\n },\r\n isLoggedIn,\r\n result: addressResult,\r\n setResult: setAddressResult,\r\n });\r\n\r\n // Selectors\r\n const countriesMap: CountriesMap = useMemo(() => {\r\n if (!countriesApi?.result?.isLoading) {\r\n return countriesApi?.result?.data?.items?.reduce((map, obj) => (map[obj.iso] = obj, map), {}) ?? null;\r\n }\r\n }, [countriesApi?.result?.isLoading]);\r\n\r\n // Utils\r\n const hasCountryGotStates: HasCountryGotStates = (selectedCountry: CountryItem) => {\r\n const selectedCountryValidations = selectedCountry?.validations;\r\n\r\n return selectedCountry?.hasState &&\r\n (Array.isArray(selectedCountryValidations)\r\n ? !!selectedCountryValidations?.find?.(v => v?.type === 'STATE')\r\n : selectedCountryValidations?.type === 'STATE');\r\n };\r\n\r\n const hasCountryGotAddressLookupFeature: HasCountryGotAddressLookupFeature = (selectedCountry: CountryItem) => {\r\n const selectedCountryValidations = selectedCountry?.validations;\r\n\r\n return Array.isArray(selectedCountryValidations)\r\n ? (selectedCountryValidations?.filter((validation) => validation?.type === 'SEARCH')?.length ?? 0) > 0\r\n : selectedCountryValidations?.type === 'SEARCH';\r\n };\r\n\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n};\r\n\r\nexport const useLocationAPIContext = () => {\r\n const locationAPIContext = useContext(LocationAPIContext);\r\n\r\n if (locationAPIContext === null) {\r\n errorInDev(\"A component that uses Location APIs is being rendered outside a LocationAPIContextProvider!\");\r\n }\r\n\r\n return locationAPIContext;\r\n};\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useFormikContext } from 'formik';\r\nimport { ContactDetailsFormValues } from '_containers/MMFContactDetailsFormContext/definitions';\r\nimport { useLocationAPIContext } from '_containers/LocationAPIContext';\r\nimport { StateItem } from '_containers/LocationAPIContext/definitions';\r\nimport { getDictionaryItem } from '_utils/data/dictionaryItem';\r\nimport Dropdown from '_utils/components/Form/Dropdown';\r\nimport { renderSelectPlaceholderForField } from '_utils/helpers/form';\r\n\r\nimport TextInput from '../TextInput';\r\nimport FormLabel from '../Label';\r\n\r\nimport { FormSummary, Field } from '_utils/components/Form/StyledFormSection';\r\nimport { AddressManualProps } from './definitions';\r\n\r\nconst AddressManual: React.FC = ({ formValuesKey, sitecoreContext }) => {\r\n const addressLine1Label = getDictionaryItem(\"form-contact-address-line1\", \"Address line 1\");\r\n const addressLine2Label = getDictionaryItem(\"form-contact-address-line2\", \"Address line 2\");\r\n const addressLine3Label = getDictionaryItem(\"form-contact-address-line3\", \"Address line 3\");\r\n\r\n const { countryStatesApi, countriesMap, hasCountryGotStates } = useLocationAPIContext();\r\n const { values: formValues, setFieldValue } = useFormikContext();\r\n const [countryStates, setCountryStates] = useState([]);\r\n\r\n const selectedCountryIsoCode = formValues?.[formValuesKey]?.country?.isoCode2Letter;\r\n const selectedCountry = countriesMap?.[selectedCountryIsoCode];\r\n const selectedState = formValues?.[formValuesKey]?.state;\r\n\r\n const statesPlaceholder = renderSelectPlaceholderForField(selectedCountry?.stateLabel);\r\n // Set initial selectedCountry based on form values, and subsequent country selection in form and set the selectedCountry\r\n useEffect(() => {\r\n if (!!selectedCountry && !!selectedCountry?.iso && hasCountryGotStates(selectedCountry)) {\r\n countryStatesApi?.request?.({\r\n axiosRequestConfig: {\r\n params: {\r\n isoCode: selectedCountry?.iso,\r\n }\r\n },\r\n useCachedResponse: false,\r\n allowParallelFetching: true,\r\n onError: (err) => {\r\n // TODO: Handle errors from CountryStates API\r\n console.warn(err);\r\n },\r\n onSuccess: (response) => setCountryStates(response?.data?.items)\r\n });\r\n } else {\r\n setCountryStates([]);\r\n }\r\n }, [countriesMap, selectedCountryIsoCode]);\r\n\r\n return (\r\n <>\r\n {selectedCountry &&\r\n <>\r\n \r\n \r\n {addressLine1Label}\r\n \r\n \r\n \r\n \r\n \r\n {addressLine2Label}\r\n \r\n \r\n \r\n \r\n \r\n {addressLine3Label}\r\n \r\n \r\n \r\n \r\n {selectedCountry?.suburbLabel &&\r\n \r\n {selectedCountry.suburbLabel}\r\n \r\n \r\n }\r\n\r\n {selectedCountry?.stateLabel && !!(countryStates?.length ?? 0) &&\r\n \r\n {selectedCountry.stateLabel}\r\n option?.name}\r\n getOptionSelected={(option, value) => option.isoCode === value.isoCode}\r\n handleChange={(_, value, reason) => {\r\n switch (reason) {\r\n case 'clear':\r\n setFieldValue(\r\n `${formValuesKey}.state`,\r\n {\r\n isoCode: '',\r\n name: '',\r\n },\r\n false\r\n );\r\n break;\r\n case 'select-option':\r\n setFieldValue(\r\n `${formValuesKey}.state`,\r\n {\r\n isoCode: value?.isoCode,\r\n name: value?.name,\r\n },\r\n false\r\n );\r\n break;\r\n default:\r\n break;\r\n }\r\n }}\r\n id={`${formValuesKey}.state`}\r\n name={`${formValuesKey}.state`}\r\n multiple={false}\r\n options={countryStates?.map((state) => ({\r\n isoCode: state?.code,\r\n name: state?.name\r\n })) ?? []}\r\n placeholder={statesPlaceholder}\r\n />\r\n \r\n }\r\n\r\n {selectedCountry?.stateLabel && !(countryStates?.length ?? false) &&\r\n \r\n {selectedCountry.stateLabel}\r\n \r\n \r\n }\r\n\r\n {selectedCountry?.postcodeLabel &&\r\n \r\n {selectedCountry.postcodeLabel}\r\n \r\n \r\n }\r\n \r\n \r\n }\r\n \r\n );\r\n};\r\n\r\nexport default AddressManual;","import { ToggleButtonGroup } from '@material-ui/lab';\r\nimport styled from 'styled-components';\r\n\r\nimport {\r\n buttonReset,\r\n headingH5,\r\n mq,\r\n} from '_utils/styles';\r\n\r\nexport const Title = styled.h5`\r\n ${headingH5};\r\n`;\r\n\r\nexport const ManualModeToggle = styled.button`\r\n ${buttonReset};\r\n color: ${({ theme }) => theme.complexFormElement.addressManual.toggle.color};\r\n text-decoration: underline;\r\n\r\n ${mq('sm')} {\r\n padding-top: 40px;\r\n }\r\n\r\n ${mq('md')} {\r\n padding-top: 45px;\r\n }\r\n`;\r\n","import Paper from '@material-ui/core/Paper';\r\nimport React, { useState } from 'react';\r\nimport { useFormikContext } from 'formik';\r\nimport { useDebouncedCallback } from 'use-debounce';\r\nimport { ContactDetailsFormValues } from '_containers/MMFContactDetailsFormContext/definitions';\r\nimport { useLocationAPIContext } from '_containers/LocationAPIContext/index';\r\nimport Dropdown from '_utils/components/Form/Dropdown/GeneralDropdown';\r\nimport FormLabel from '_utils/components/Form/Label';\r\nimport { getDictionaryItem } from '_utils/data/dictionaryItem';\r\nimport { renderSearchPlaceholderForField } from '_utils/helpers/form';\r\nimport ErrorMessage from '_utils/components/Form/ErrorMessage';\r\n\r\nimport {\r\n AddressDropdownProps,\r\n AddressSelection,\r\n} from './definitions';\r\nimport {\r\n ManualModeOption,\r\n ManualModeToggle,\r\n} from './StyledDropdown';\r\n\r\nconst RESULTS_LIMIT = 100;\r\n\r\nconst AddressDropdown: React.FC = ({\r\n formValuesKey,\r\n onEnterManually,\r\n onSelectAddressResult,\r\n}) => {\r\n\r\n const [apiOptions, setApiOptions] = useState([]);\r\n const [loading, setLoading] = useState(false);\r\n const { addressSearchApi, addressResultApi } = useLocationAPIContext();\r\n const { values: formValues, setFieldValue } = useFormikContext();\r\n\r\n\r\n const addressCountryIsoCode = formValues?.[formValuesKey]?.country?.isoCode2Letter;\r\n\r\n const addressDropdownLabel = getDictionaryItem(\"form-contact-address\", \"Address\");\r\n const noOptionsText = getDictionaryItem(\"form-contact-no-results-found\", \"No results found\");\r\n const enterManuallyText = getDictionaryItem(\"form-contact-enter-manually\", \"Enter manually\");\r\n const cantFindAddressText = getDictionaryItem(\"form-contact-cant-find-address\", \"Can't find your address?\");\r\n const addressRequiredText = getDictionaryItem(\"form-contact-notification-address-required\", \"Address is required\");\r\n const addressDropdownPlaceholder = renderSearchPlaceholderForField(addressDropdownLabel);\r\n\r\n const { getFieldMeta } = useFormikContext();\r\n const meta = getFieldMeta(formValuesKey) ?? null;\r\n const hasError = !!((meta?.touched || meta?.initialTouched) && meta?.error);\r\n\r\n const fetchAddresses = (\r\n query?: string,\r\n ) => {\r\n if (!query) {\r\n setApiOptions([]);\r\n return;\r\n }\r\n\r\n setLoading(true);\r\n //NOSONAR\r\n addressSearchApi.request?.({\r\n axiosRequestConfig: {\r\n params: {\r\n countryIso: addressCountryIsoCode,\r\n query,\r\n },\r\n },\r\n onComplete: () => {\r\n setLoading(false);\r\n },\r\n onError: (err) => {\r\n console.warn(err);\r\n },\r\n onSuccess: (response) => {\r\n if ((response?.data?.items?.length ?? 0) > 0) {\r\n const filteredItems = response?.data?.items.map(({\r\n address,\r\n provider,\r\n identifier: id,\r\n }) => ({\r\n label: address,\r\n provider,\r\n id,\r\n } as AddressSelection));\r\n\r\n setApiOptions(filteredItems);\r\n }\r\n },\r\n useCachedResponse: false,\r\n });\r\n };\r\n\r\n const handleInputChange = (_, value: string) => fetchAddresses(value);\r\n\r\n const debouncedHandleInputChange = useDebouncedCallback(handleInputChange, 300)\r\n\r\n const handleAddressSelection = (selectedAddress: AddressSelection) => {\r\n //NOSONAR\r\n if (selectedAddress?.id && selectedAddress?.provider && addressCountryIsoCode) {\r\n addressResultApi?.request?.({\r\n axiosRequestConfig: {\r\n params: {\r\n provider: selectedAddress.provider,\r\n id: selectedAddress.id,\r\n countryIso: addressCountryIsoCode,\r\n },\r\n },\r\n onError: (err) => {\r\n console.warn(err);\r\n },\r\n onSuccess: (response) => {\r\n const addressUpdates = {\r\n addressLine1: response?.data?.address?.addressLines?.[0],\r\n addressLine2: response?.data?.address?.addressLines?.[1],\r\n addressLine3: response?.data?.address?.addressLines?.[2],\r\n postCode: response?.data?.postcode,\r\n city: response?.data?.suburb,\r\n state: {\r\n isoCode: response?.data?.state?.code,\r\n name: response?.data?.state?.name,\r\n },\r\n country: {\r\n isoCode2Letter: response?.data?.country?.iso,\r\n name: response?.data?.country?.name,\r\n },\r\n };\r\n\r\n setFieldValue(\r\n formValuesKey,\r\n {\r\n ...formValues?.[formValuesKey],\r\n ...addressUpdates,\r\n },\r\n false,\r\n );\r\n\r\n onSelectAddressResult?.();\r\n },\r\n useCachedResponse: false,\r\n });\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n {addressDropdownLabel}\r\n x.slice(0, RESULTS_LIMIT)}\r\n getOptionLabel={(option) => option?.label}\r\n getOptionSelected={(option, value) => option.id === value.id}\r\n id={`${formValuesKey}`}\r\n hasError={!!hasError} \r\n loading={loading}\r\n multiple={false}\r\n noOptionsText={noOptionsText}\r\n onInputChange={debouncedHandleInputChange.callback}\r\n options={apiOptions}\r\n placeholder={addressDropdownPlaceholder}\r\n popupIcon=\"search\"\r\n handleChange={(_, value, reason) => {\r\n if (reason === 'select-option') {\r\n handleAddressSelection?.(value);\r\n }\r\n }}\r\n PaperComponent={({ children, ...rest }) => {\r\n const footerRef = React.useRef();\r\n const paperRef = React.useRef();\r\n\r\n return (\r\n \r\n {children}\r\n \r\n {cantFindAddressText}{' '}\r\n {\r\n event.preventDefault();\r\n }}\r\n >\r\n {enterManuallyText}\r\n \r\n \r\n \r\n );\r\n }}\r\n />\r\n {/*Note: the error style for Address dropdown is different from the dropdown. The dropdown is using 'name' for error controlling, address dropdown does not pass the prop*/}\r\n {/* Tracking this ticket for a fix - https://cpaaustralia.atlassian.net/browse/WP-3739 */}\r\n {hasError && {addressRequiredText}}\r\n \r\n );\r\n};\r\n\r\nexport default AddressDropdown;\r\n","import { useFormikContext } from 'formik';\r\nimport React from 'react';\r\n\r\nimport { ContactDetailsFormValues } from '_containers/ContactDetailsFormContext/definitions';\r\nimport { useLocationAPIContext } from '_containers/LocationAPIContext';\r\nimport { getDictionaryItem } from '_utils/data/dictionaryItem';\r\nimport Dropdown from '_utils/components/Form/Dropdown';\r\nimport FormLabel from '_utils/components/Form/Label';\r\nimport { renderSelectPlaceholderForField } from '_utils/helpers/form';\r\n\r\nimport { CountryDropdownProps } from './definitions';\r\n\r\nconst CountryDropdown: React.FC = ({\r\n formValuesKey,\r\n handleChange,\r\n}) => {\r\n const { countriesMap } = useLocationAPIContext();\r\n const { values: formValues } = useFormikContext();\r\n\r\n const selectedCountry = formValues?.[formValuesKey]?.country;\r\n\r\n const countryLabel = getDictionaryItem(\"form-contact-country\", \"Country\");\r\n const countryPlaceholder = renderSelectPlaceholderForField(countryLabel);\r\n\r\n return (\r\n <>\r\n {countryLabel}\r\n option?.name ?? ''}\r\n getOptionSelected={(option, value) => option.isoCode2Letter === value.isoCode2Letter}\r\n handleChange={handleChange}\r\n id={`${formValuesKey}.country`}\r\n name={`${formValuesKey}.country`}\r\n multiple={false}\r\n options={Object.keys(countriesMap ?? {})?.map((countryIso) => (\r\n {\r\n name: countriesMap?.[countryIso]?.name,\r\n isoCode2Letter: countriesMap?.[countryIso]?.iso\r\n }\r\n ))\r\n }\r\n placeholder={countryPlaceholder}\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default CountryDropdown;\r\n","import { useFormikContext } from 'formik';\r\nimport React, { useEffect, useState } from 'react';\r\n\r\nimport { ContactDetailsFormValues } from '_containers/MMFContactDetailsFormContext/definitions';\r\nimport { useLocationAPIContext } from '_containers/LocationAPIContext';\r\nimport AddressManual from '_utils/components/Form/AddressManual';\r\nimport { ManualModeToggle } from '_utils/components/Form/AddressManual/StyledAddressManual';\r\nimport AddressDropdown from '_utils/components/Form/Dropdown/AddressDropdown';\r\nimport CountryDropdown from '_utils/components/Form/Dropdown/CountryDropdown';\r\nimport FormLabel from '_utils/components/Form/Label';\r\nimport { FormSummary, Field as AddressManualField } from '_utils/components/Form/StyledFormSection';\r\nimport TextInput from '_utils/components/Form/TextInput';\r\nimport { getDictionaryItem } from '_utils/data/dictionaryItem';\r\n\r\nimport {\r\n AddressEditorProps,\r\n DeliveryContactFieldProps,\r\n} from '../definitions';\r\nimport {\r\n AddressDropdownContainer,\r\n} from '../StyledContactDetailsForm';\r\n\r\nconst DeliveryContactField: React.FC = ({ formValuesKey }) => {\r\n const deliveryContactLabel = getDictionaryItem(\"form-contact-delivery-contact\", \"Delivery contact\");\r\n const deliveryContactPlaceholder = getDictionaryItem(\"form-placeholder-delivery-contact\", \"Enter first and last name \");\r\n\r\n return (\r\n \r\n \r\n {deliveryContactLabel}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst AddressEditor: React.FC = ({\r\n formValuesKey,\r\n}) => {\r\n const { values, touched, setFieldValue, setTouched, validateField } = useFormikContext();\r\n const { countriesMap, hasCountryGotAddressLookupFeature } = useLocationAPIContext();\r\n const address = values?.[formValuesKey];\r\n const selectedCountryIsoCode = address?.country?.isoCode2Letter;\r\n const hasExistingAddress = !!address?.addressLine1;\r\n const isShippingAddress = formValuesKey === 'shippingAddress';\r\n const hasAddressDropdownFeature = hasCountryGotAddressLookupFeature(countriesMap?.[selectedCountryIsoCode]);\r\n const [shouldShowManualMode, setShouldShowManualMode] = useState(hasExistingAddress || !hasAddressDropdownFeature);\r\n\r\n const clearAddress = () => {\r\n // we must set these individually to avoid any clashes with a change of country, which would get overwritten in a state \"race condition\"\r\n setFieldValue(`${formValuesKey}.addressLine1`, '', false);\r\n setFieldValue(`${formValuesKey}.addressLine2`, '', false);\r\n setFieldValue(`${formValuesKey}.addressLine3`, '', false);\r\n setFieldValue(`${formValuesKey}.postCode`, '', false);\r\n setFieldValue(`${formValuesKey}.city`, '', false);\r\n setFieldValue(`${formValuesKey}.state`, { isoCode: '', name: '' }, false);\r\n\r\n setTouched(\r\n {\r\n [`${formValuesKey}.addressLine1`]: false,\r\n [`${formValuesKey}.addressLine2`]: false,\r\n [`${formValuesKey}.addressLine3`]: false,\r\n [`${formValuesKey}.postCode`]: false,\r\n [`${formValuesKey}.city`]: false,\r\n [`${formValuesKey}.state`]: false,\r\n },\r\n false,\r\n );\r\n };\r\n\r\n const clearCountry = () => {\r\n setFieldValue(`${formValuesKey}.country`, { isoCode2Letter: '', name: '' }, false);\r\n setTouched({ [`${formValuesKey}.country`]: false }, false);\r\n };\r\n\r\n useEffect(() => {\r\n setShouldShowManualMode(hasExistingAddress || !hasAddressDropdownFeature);\r\n }, [hasAddressDropdownFeature]);\r\n\r\n\r\n // Clear out shipping address if the isSameAddressCheckbox is set to false\r\n useEffect(() => {\r\n if (!values?.isSameAddress && touched?.isSameAddress && isShippingAddress) {\r\n clearAddress?.();\r\n clearCountry?.();\r\n }\r\n }, [values?.isSameAddress]);\r\n\r\n const onSelectAddressResult = () => {\r\n // validate here to override the previous errors styles \r\n validateField(formValuesKey)\r\n\r\n // show manual forms so user can enter address line 2, 3 etc.\r\n setShouldShowManualMode(true);\r\n };\r\n\r\n const onEnterManually = () => {\r\n setShouldShowManualMode(true);\r\n clearAddress();\r\n };\r\n\r\n const onEnterLookup = () => {\r\n setShouldShowManualMode(false);\r\n clearAddress();\r\n };\r\n\r\n const findAnAddressText = getDictionaryItem(\"form-contact-find-an-address\", \"Find an address\");\r\n\r\n return (\r\n <>\r\n {shouldShowManualMode ? (\r\n <>\r\n \r\n \r\n {\r\n switch (reason) {\r\n case 'clear':\r\n clearAddress();\r\n clearCountry();\r\n break;\r\n case 'select-option':\r\n setFieldValue(\r\n `${formValuesKey}.country`,\r\n {\r\n isoCode2Letter: value?.isoCode2Letter ?? '',\r\n name: value?.name ?? ''\r\n },\r\n false\r\n );\r\n clearAddress();\r\n break;\r\n default:\r\n break;\r\n }\r\n }}\r\n />\r\n \r\n {\r\n hasAddressDropdownFeature && (\r\n \r\n \r\n {findAnAddressText}\r\n \r\n \r\n )\r\n }\r\n \r\n \r\n \r\n ) : (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {!!selectedCountryIsoCode &&\r\n \r\n }\r\n \r\n );\r\n};\r\n\r\nexport { AddressEditor };","import React, { useEffect } from 'react';\r\nimport { getDictionaryItem } from '_utils/data/dictionaryItem';\r\nimport InPageAnnouncement from '_components/Announcements/InPageAnnouncement';\r\n\r\nimport { AlertProps } from '../definitions';\r\n\r\nconst Alert: React.FC = ({\r\n type\r\n}) => {\r\n const mailAlertHeading = getDictionaryItem(\"form-contact-notification-mail-heading\", \"Please confirm your address\");\r\n const mailAlertDescription = getDictionaryItem(\"form-contact-notification-mail-description\", \"We have received returned mail. Please review your addresses.\");\r\n const phoneAlertHeading = getDictionaryItem(\"form-contact-notification-phone-heading\", \"Please update the phone number formatting\");\r\n const phoneAlertDescription = getDictionaryItem(\"form-contact-notification-phone-description\", \"We're in the process of database maintenance\");\r\n\r\n const fieldMapping = {\r\n mail: {\r\n heading: mailAlertHeading,\r\n description: mailAlertDescription\r\n },\r\n phone: {\r\n heading: phoneAlertHeading,\r\n description: phoneAlertDescription\r\n }\r\n }\r\n\r\n return (\r\n \r\n )\r\n};\r\n\r\nexport default Alert;","import { compose } from 'ramda';\r\nimport React, { useContext } from 'react';\r\nimport { useFormikContext } from 'formik';\r\n\r\nimport { AddressEditor } from '_components/MMFContactDetailsForm/Sections/AddressEditor';\r\nimport Alert from '_components/MMFContactDetailsForm/Sections/Alert';\r\nimport { withEditMode } from '_containers/BaseComponent';\r\nimport { ContactDetailsFormContext, ContactDetailsFormValues } from '_containers/MMFContactDetailsFormContext/definitions';\r\nimport {\r\n FormContext, withFormSectionKeyContext,\r\n} from '_containers/FormSectionContext';\r\nimport { withMemberContext } from '_containers/MemberContext';\r\nimport { Title } from '_utils/components/Form/AddressManual/StyledAddressManual';\r\nimport CheckboxList from '_utils/components/Form/CheckboxList';\r\nimport {\r\n EditableSectionContainer,\r\n EditableSectionHeader,\r\n} from '_utils/components/Form/EditableSection';\r\nimport FieldSummary from '_utils/components/Form/FieldSummary';\r\nimport {\r\n Field,\r\n FormSummary,\r\n} from '_utils/components/Form/StyledFormSection';\r\nimport { getDictionaryItem } from '_utils/data/dictionaryItem';\r\nimport {\r\n getAddress,\r\n getMailingAddress,\r\n getMailingContact,\r\n} from '_utils/helpers/form/index';\r\n\r\nimport { ContactDetailsFormProps } from '../definitions';\r\nimport mockData from '../mock.json';\r\n\r\nconst AddressesForm: React.FC = ({\r\n editMode,\r\n mockContactProfile,\r\n rendering,\r\n contactProfileApi,\r\n}) => {\r\n const formContext = useContext(FormContext);\r\n const sectionContext = formContext?.addresses;\r\n\r\n const { errors, isValid, values, setFieldTouched, setFieldValue, submitCount } = useFormikContext();\r\n\r\n const uid = `addresses`;\r\n\r\n const contactProfile =\r\n !editMode\r\n ? contactProfileApi?.result?.data\r\n : mockContactProfile ?? mockData?.mockContactProfile;\r\n\r\n const heading = getDictionaryItem(\"form-contact-section-addresses\", \"Addresses\");\r\n const updateLabel = getDictionaryItem(\"form-contact-button-update\", \"Update\");\r\n const residentialAddressLabel = getDictionaryItem(\"form-contact-residential-address\", \"Residential address\");\r\n const mailingAddressLabel = getDictionaryItem(\"form-contact-mailing-address\", \"Mailing address\");\r\n const deliverySameAsResidential = getDictionaryItem(\"form-contact-same-as-residential-address\", \"Same as residential\");\r\n\r\n // show mailing contact if not null or NOT same as billing contact\r\n const mailingContact = getMailingContact(\r\n contactProfile?.billingAddress?.primaryContactName,\r\n contactProfile?.shippingAddress?.primaryContactName,\r\n );\r\n\r\n const isSameAddressCheckboxItems = [{\r\n name: 'isSameAddress',\r\n label: deliverySameAsResidential,\r\n onChange: () => {\r\n setFieldTouched('isSameAddress', true);\r\n }\r\n }];\r\n\r\n // unset the `isMailReturned` if user focuses on address fields to enable submit button\r\n const handleAddressFocus = () => {\r\n if (values?.contact?.comms?.isMailReturned) {\r\n setFieldValue('contact.comms.isMailReturned', false);\r\n }\r\n }\r\n\r\n return (\r\n \r\n {/* Redirected mail alert */}\r\n {!isValid && errors?.contact?.comms?.isMailReturned && submitCount === 0 &&\r\n \r\n }\r\n\r\n \r\n {heading}\r\n \r\n\r\n {sectionContext?.isEditing\r\n ? (\r\n
    \r\n {residentialAddressLabel}\r\n \r\n\r\n \r\n \r\n {mailingAddressLabel}\r\n \r\n \r\n \r\n\r\n {!values.isSameAddress && }\r\n
    \r\n ) : (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n mailingContact && \r\n \r\n \r\n }\r\n \r\n )\r\n }\r\n \r\n );\r\n};\r\n\r\nexport default compose(\r\n withEditMode,\r\n withMemberContext,\r\n withFormSectionKeyContext('addresses'),\r\n)(AddressesForm);\r\n","import { Placeholder } from '@sitecore-jss/sitecore-jss-react';\r\nimport React from 'react';\r\n\r\nimport Icon from '_components/Icon';\r\nimport { DashboardButton, DashboardButtonContainer, FormSection, LargeHeading, RichTextContainer } from '_utils/components/Form/StyledFormSection';\r\nimport { getDictionaryItem } from '_utils/data/dictionaryItem';\r\nimport { buttonAction } from '_utils/helpers/form';\r\n\r\nimport { ContactDetailsFormProps } from '../definitions';\r\n\r\n\r\nconst ApiErrorContent: React.FC = ({\r\n rendering,\r\n}) => {\r\n const datasource = rendering?.fields?.data?.datasource;\r\n const heading = getDictionaryItem('form-api-error-heading', 'We’re experiencing some technical difficulties');\r\n const hasContent = rendering?.placeholders?.['jss-form-api-error']?.length > 0;\r\n const dashboardLinkLabel = getDictionaryItem('form-dashboard-link-label', 'Go to My CPA dashboard');\r\n const dashboardLink = datasource?.dashboardLink?.jss?.value;\r\n\r\n return (\r\n <>\r\n {hasContent &&\r\n \r\n {heading}\r\n \r\n \r\n \r\n \r\n }\r\n {dashboardLink && dashboardLinkLabel &&\r\n \r\n buttonAction(e, dashboardLink?.href)}>\r\n {dashboardLinkLabel}\r\n \r\n \r\n \r\n }\r\n \r\n );\r\n};\r\n\r\nexport default ApiErrorContent;\r\n","import { canUseDOM } from 'exenv';\r\nimport { useFormikContext } from 'formik';\r\nimport { intersection, keys } from 'ramda';\r\nimport React, { useContext, useEffect } from 'react';\r\n\r\nimport InPageAnnouncement from '_components/Announcements/InPageAnnouncement';\r\nimport {\r\n AddressesForm,\r\n Alert,\r\n ContactDetails,\r\n PersonalDetailsForm,\r\n} from '_components/MMFContactDetailsForm/Sections';\r\nimport Icon from '_components/Icon';\r\nimport ApiErrorContent from '_components/MMFContactDetailsForm/Sections/ApiErrorContent';\r\nimport { ContactDetailsFormValues } from '_containers/MMFContactDetailsFormContext/definitions';\r\nimport { useLocationAPIContext } from '_containers/LocationAPIContext';\r\nimport { ContactDetailsFormContext } from '_containers/MMFContactDetailsFormContext/definitions';\r\nimport { FormContext } from '_containers/FormSectionContext';\r\nimport { EditableSectionActions } from '_utils/components/Form/EditableSection';\r\nimport {\r\n IntroContainer,\r\n NarrowContainer,\r\n PrivacyPolicy,\r\n} from '_utils/components/Form/StyledContainerForm';\r\nimport { CTAButton } from '_utils/components/Form/StyledFormSection';\r\nimport { buttonAction } from '_utils/helpers/form/index';\r\nimport { getDictionaryItem } from '_utils/data/dictionaryItem';\r\n\r\nimport { ContactDetailsFormProps } from './definitions';\r\n\r\n// helper function to flag if user has error with phone or returned mail\r\nexport const hasCommunicationErrors = (errors): boolean => {\r\n if (errors?.contact?.comms) {\r\n const phoneErrorKeys = [\r\n 'workPhone',\r\n 'homePhone',\r\n 'mobilePhone',\r\n 'mobilePhoneCountryCode',\r\n 'preferredPhoneNumber',\r\n ];\r\n\r\n const keyIntersection = intersection(\r\n phoneErrorKeys,\r\n keys(errors.contact.comms)\r\n );\r\n\r\n return !!keyIntersection?.length;\r\n }\r\n\r\n return false;\r\n};\r\n\r\nconst ValidationAlerts = () => {\r\n\r\n const formikContext = useFormikContext();\r\n const { errors, isValid, submitCount } = formikContext;\r\n\r\n if (isValid || submitCount > 0) {\r\n return null;\r\n }\r\n\r\n const hasMailError = !!errors?.contact?.comms?.isMailReturned;\r\n\r\n return (\r\n <>\r\n {errors && hasCommunicationErrors(errors) &&\r\n \r\n }\r\n {hasMailError &&\r\n \r\n }\r\n \r\n );\r\n};\r\n\r\nconst FormContent: React.FC = (props) => {\r\n const {\r\n contactProfileApi,\r\n contactProfileSubmissionApi,\r\n rendering,\r\n } = props;\r\n\r\n const { countriesApi } = useLocationAPIContext();\r\n\r\n const {\r\n isAnySectionEditing,\r\n sectionEditing,\r\n personalDetails: { updateAction },\r\n isReferredFromRenewal,\r\n setIsEditing,\r\n } = useContext(FormContext);\r\n\r\n const isEditing = isAnySectionEditing;\r\n\r\n const datasource = rendering?.fields?.data?.datasource;\r\n const myAccountLink = datasource?.myAccountLink?.jss?.value;\r\n const privacyNotice = datasource?.privacyNotice?.jss;\r\n\r\n const viewMyAccountLabel = getDictionaryItem('form-my-account-link-label', 'View My Account');\r\n const cancelLabel = getDictionaryItem('form-contact-button-cancel', 'Cancel');\r\n const saveLabel = getDictionaryItem('form-contact-button-save-updates', 'Save changes');\r\n const errorHeading = getDictionaryItem('form-errors-heading', 'Something went wrong');\r\n\r\n // Get Api data state for (ContactProfile, Countries, ContactProfileReferenceData)\r\n const contactProfileApiError = contactProfileApi?.result?.error;\r\n const contactProfileSubmissionApiLoading = contactProfileSubmissionApi?.result?.isLoading;\r\n const contactProfileApiLoading = contactProfileApi?.result?.isLoading;\r\n const countriesApiLoading = countriesApi?.result?.isLoading;\r\n const countriesApiError = typeof countriesApi?.result?.error?.message === 'string';\r\n\r\n // TODO: these need to be made clearer\r\n const isLoading = contactProfileApiLoading || contactProfileSubmissionApiLoading;\r\n const shouldShowApiError = !isLoading && (!countriesApiLoading && countriesApiError) || (!contactProfileApiLoading && contactProfileApiError);\r\n const shouldShowForm = !isLoading && !contactProfileApiError && contactProfileApi?.result?.data && !shouldShowApiError;\r\n\r\n const getAPIErrorMessage = () => {\r\n if (countriesApiError) {\r\n return countriesApi?.result?.error?.message;\r\n }\r\n\r\n if (typeof contactProfileApi?.result?.error?.message === 'string') {\r\n return contactProfileApi?.result?.error?.message;\r\n }\r\n };\r\n\r\n // scroll user to section being edited\r\n // TODO allow for header offset\r\n useEffect(() => {\r\n if (!canUseDOM || !sectionEditing) {\r\n return;\r\n }\r\n\r\n const targetSection = document.getElementById(sectionEditing);\r\n\r\n if (targetSection) {\r\n window.scrollTo({ top: targetSection?.offsetTop, behavior: 'smooth' });\r\n }\r\n }, [sectionEditing]);\r\n\r\n useEffect(() => {\r\n // Trigger Edit mode on form if referred from Membership Renewal form\r\n // TODO: change this to open the specific section that was clicked on the renewal form, when partial saving is available\r\n if (setIsEditing) {\r\n setIsEditing(isReferredFromRenewal);\r\n }\r\n }, [isReferredFromRenewal]);\r\n\r\n return (\r\n <>\r\n {shouldShowForm &&\r\n \r\n }\r\n\r\n \r\n {isEditing && shouldShowApiError &&\r\n <>\r\n \r\n \r\n \r\n {contactProfileApi?.result?.error?.message &&\r\n \r\n \r\n \r\n }\r\n \r\n }\r\n\r\n {shouldShowForm && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n buttonAction(e, myAccountLink)}\r\n >\r\n \r\n {viewMyAccountLabel}\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n )\r\n};\r\n\r\n\r\nexport default FormContent;","import { useFormikContext } from 'formik';\r\nimport { compose } from 'ramda';\r\nimport React, { useContext } from 'react';\r\n\r\nimport Alert from '_components/MMFContactDetailsForm/Sections/Alert';\r\nimport { hasCommunicationErrors } from '_components/MMFContactDetailsForm/FormContent';\r\n\r\nimport { withEditMode } from '_containers/BaseComponent';\r\nimport {\r\n FormContext, withFormSectionKeyContext,\r\n} from '_containers/FormSectionContext';\r\nimport { withMemberContext } from '_containers/MemberContext';\r\nimport {\r\n EditableSectionContainer,\r\n EditableSectionHeader,\r\n} from '_utils/components/Form/EditableSection';\r\nimport FieldSummary from '_utils/components/Form/FieldSummary';\r\nimport {\r\n Field,\r\n FormSummary,\r\n} from '_utils/components/Form/StyledFormSection';\r\n\r\nimport { EditLink } from '_components/MMFContactDetailsForm/StyledContactDetailsForm';\r\n\r\nimport Icon from '_components/Icon';\r\n\r\nimport RadioList from '_utils/components/Form/RadioList';\r\nimport FormLabel from '_utils/components/Form/Label';\r\nimport Dropdown from '_utils/components/Form/Dropdown';\r\nimport TextInput from '_utils/components/Form/TextInput';\r\nimport { FormElementHint } from '_utils/components/Form/StyledFormElement';\r\nimport { ContactDetailsFormContext, ContactDetailsFormValues } from '_containers/MMFContactDetailsFormContext/definitions';\r\n\r\nimport { getDictionaryItem } from '_utils/data/dictionaryItem';\r\nimport {\r\n formatMobilePhone,\r\n} from '_utils/helpers/form';\r\n\r\nimport { ContactDetailsFormProps } from '../definitions';\r\n\r\nimport mockData from '../mock.json';\r\n\r\n// trims 'number' from label as per designs - not re-useable outside this component\r\nconst formatLabel = (label: string): string => label.replace('number', '');\r\n\r\nconst ContactDetailsForm: React.FC = ({\r\n editMode,\r\n mockContactProfile,\r\n rendering,\r\n contactProfileApi\r\n}) => {\r\n const formContext = useContext(FormContext);\r\n const sectionContext = formContext?.contactDetails;\r\n\r\n const formikContext = useFormikContext();\r\n\r\n const { errors, values, submitCount } = formikContext;\r\n const showErrorOnLoad = hasCommunicationErrors(errors);\r\n\r\n const uid = `contact-details`;\r\n const datasource = rendering?.fields?.data?.datasource;\r\n const editEmailLink = datasource?.editEmailLink?.jss;\r\n\r\n // render component with mock data when in Experience Editor\r\n const contactProfile =\r\n !editMode\r\n ? contactProfileApi?.result?.data\r\n : mockContactProfile ?? mockData?.mockContactProfile;\r\n\r\n // get reference data from api\r\n const referenceData = contactProfileApi?.result;\r\n const mobileCountryCodeRefData = referenceData?.data?.referenceData?.countries?.items || [];\r\n const phoneNumberTypeRefData = referenceData?.data?.referenceData?.phoneNumberTypes?.items || [];\r\n\r\n // get the field and label values\r\n const heading = getDictionaryItem('form-contact-section-contact-details', 'Contact details');\r\n const updateLabel = getDictionaryItem('form-contact-button-update', 'Update');\r\n\r\n const emailLabel = getDictionaryItem(\"form-contact-email\", \"Email\");\r\n const preferredPhoneLabel = getDictionaryItem(\"form-contact-preferred-phone\", \"Preferred phone number\");\r\n const businessPhoneLabel = getDictionaryItem(\"form-contact-work-number\", \"Business phone number\");\r\n const homePhoneLabel = getDictionaryItem(\"form-contact-home-number\", \"Home phone number\");\r\n const mobileCountryCodeLabel = getDictionaryItem(\"form-contact-mobile-country\", \"Mobile country code\");\r\n const mobilePhoneLabel = getDictionaryItem(\"form-contact-mobile-number\", \"Mobile phone number\");\r\n const phoneFormatHint = getDictionaryItem(\"form-contact-phone-format\", \"'CountryCode- AreaCode-PhoneNumber' (Eg: 061-03-XXXXXXXX)\");\r\n\r\n // placeholder labels\r\n const mobileCountryCodePlaceholder = getDictionaryItem(\"form-placeholder-mobile-country-code\", \"Select country code\");\r\n const mobilePhonePlaceholder = getDictionaryItem(\"form-placeholder-mobile-phone\", \"Enter mobile number\");\r\n const phoneNumberPlaceholder = getDictionaryItem(\"form-placeholder-enter-phone-number\", \"Enter phone number\");\r\n\r\n return (\r\n \r\n {/* Phone number alert */}\r\n {\r\n sectionContext?.isEditing &&\r\n showErrorOnLoad && submitCount === 0 &&\r\n \r\n }\r\n\r\n \r\n {heading}\r\n \r\n\r\n {sectionContext?.isEditing\r\n ? (\r\n <>\r\n \r\n \r\n {emailLabel}\r\n\r\n
    \r\n {contactProfile?.contact?.comms?.emailAddress}\r\n \r\n\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n \r\n {preferredPhoneLabel}\r\n {\r\n !contactProfileApi?.result?.isLoading &&\r\n (\r\n {\r\n value: item?.name ?? '',\r\n label: item?.name?.concat(' phone') // append to match designs since missing from API\r\n })\r\n ))\r\n }\r\n />\r\n }\r\n \r\n \r\n\r\n \r\n \r\n \r\n {formatLabel(businessPhoneLabel)}\r\n \r\n \r\n {phoneFormatHint}\r\n \r\n \r\n \r\n {formatLabel(homePhoneLabel)}\r\n \r\n \r\n {phoneFormatHint}\r\n \r\n \r\n\r\n \r\n \r\n {/* TODO - not unique list from API - multiple countries share same country code */}\r\n \r\n {mobileCountryCodeLabel}\r\n \r\n {\r\n option.hasOwnProperty('label') ? option?.label ?? '' : option}\r\n getOptionSelected={(option, selectedOption) => option?.value === selectedOption?.value}\r\n id=\"mobilePhoneCountryCode\"\r\n name=\"contact.comms.mobilePhoneCountryCode\"\r\n multiple={false}\r\n options={\r\n !contactProfileApi?.result?.isLoading ?\r\n mobileCountryCodeRefData?.map(item => (\r\n {\r\n label: `${item.name} (${item.mobilePhoneCountryCode})`,\r\n value: item.mobilePhoneCountryCode\r\n }\r\n ))\r\n : []\r\n }\r\n />\r\n }\r\n \r\n\r\n \r\n \r\n {formatLabel(mobilePhoneLabel)}\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n ) :\r\n // pre-interaction state\r\n (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n \r\n );\r\n};\r\n\r\nexport default compose(\r\n withEditMode,\r\n withMemberContext,\r\n withFormSectionKeyContext('contactDetails'),\r\n)(ContactDetailsForm);\r\n","import { Placeholder } from '@sitecore-jss/sitecore-jss-react';\r\nimport React from 'react';\r\n\r\nimport { getDictionaryItem } from '_utils/data/dictionaryItem';\r\n\r\nimport { ContactDetailsFormProps } from '../definitions';\r\n\r\nimport { Container, FormContainer, NarrowContainer } from '_utils/components/Form/StyledContainerForm';\r\nimport { EditModeHeading, EditModeInstructions, FormSection, LargeHeading, RichTextContainer } from '_utils/components/Form/StyledFormSection';\r\n\r\nconst EditMode: React.FC = (props) => {\r\n const rendering = props?.rendering;\r\n const apiErrorheading = getDictionaryItem('form-api-error-heading', 'We’re experiencing some technical difficulties');\r\n\r\n return (\r\n \r\n \r\n \r\n Contact Details Form\r\n \r\n Given this component relies on member data and has multiple states, a custom editing experience has been setup to allow you to add content to the placeholders\r\n \r\n \r\n How do I update my name content: shown below the Personal Details form\r\n (the intention is to use an Accordion component for this section)\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n API Error Content: shown below the error message when the APIs returns an error getting data from the ContactProfile API\r\n (the heading is a dictionary item at /sitecore/content/CPA/Corporate/Dictionary/Forms/API Error Heading)\r\n \r\n \r\n {apiErrorheading}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default EditMode;\r\n","import { useFormikContext } from 'formik';\r\nimport { compose } from 'ramda';\r\nimport React, { useContext } from 'react';\r\nimport { Placeholder } from '@sitecore-jss/sitecore-jss-react';\r\n\r\nimport { withEditMode } from '_containers/BaseComponent';\r\nimport { ContactDetailsFormContext, ContactDetailsFormValues } from '_containers/MMFContactDetailsFormContext/definitions';\r\nimport {\r\n FormContext,\r\n withFormSectionKeyContext,\r\n} from '_containers/FormSectionContext';\r\nimport { withMemberContext } from '_containers/MemberContext';\r\nimport {\r\n EditableSectionContainer,\r\n EditableSectionHeader,\r\n} from '_utils/components/Form/EditableSection';\r\nimport FieldSummary from '_utils/components/Form/FieldSummary';\r\nimport {\r\n Field,\r\n FormSummary,\r\n} from '_utils/components/Form/StyledFormSection';\r\nimport { getDictionaryItem } from '_utils/data/dictionaryItem';\r\nimport {\r\n formatDate,\r\n renderSelectPlaceholderForField,\r\n} from '_utils/helpers/form';\r\nimport FormLabel from '_utils/components/Form/Label';\r\nimport Dropdown from '_utils/components/Form/Dropdown';\r\nimport TextInput from '_utils/components/Form/TextInput';\r\nimport DateInput from '_utils/components/Form/DateInput';\r\n\r\nimport { ContactDetailsFormProps } from '../definitions';\r\nimport mockData from '../mock.json';\r\n\r\nconst PersonalDetailsForm: React.FC = ({\r\n editMode,\r\n mockContactProfile,\r\n rendering,\r\n contactProfileApi\r\n}) => {\r\n const formContext = useContext(FormContext);\r\n const sectionContext = formContext?.personalDetails;\r\n\r\n const { values } = useFormikContext();\r\n const referenceData = contactProfileApi?.result;\r\n const salutationsRefData = referenceData?.data?.referenceData?.salutations?.items;\r\n const genderRefData = referenceData?.data?.referenceData?.genderCodes?.items;\r\n const atsiOriginRefData = referenceData?.data?.referenceData?.indigenousChoices?.items;\r\n\r\n const uid = `personal-details`;\r\n\r\n // render component with mock data when in Experience Editor\r\n const contactProfile =\r\n !editMode\r\n ? contactProfileApi?.result?.data\r\n : mockContactProfile ?? mockData?.mockContactProfile;\r\n\r\n const heading = getDictionaryItem('form-contact-section-personal-details', 'Personal details');\r\n const updateLabel = getDictionaryItem('form-renewal-button-update', 'Update');\r\n const salutationLabel = getDictionaryItem(\"form-contact-salutation\", \"Salutation\");\r\n const preferredNameLabel = getDictionaryItem(\"form-contact-preferred-name\", \"Preferred name\");\r\n const dateOfBirthLabel = getDictionaryItem(\"form-contact-dob\", \"Date of birth\");\r\n const genderLabel = getDictionaryItem(\"form-contact-gender\", \"Gender\");\r\n const atsiOriginLabel = getDictionaryItem(\"form-contact-atsi-origin-entry\", \"Are you of Aboriginal or Torres Strait Islander origin?\");\r\n const pleaseSelectPlaceholder = getDictionaryItem(\"form-placeholder-please-select\", \"Please select\");\r\n const genderPlaceholder = renderSelectPlaceholderForField(genderLabel);\r\n\r\n const preferredNameOrderOptions = \r\n [{code: 1, name: \"None\"}, {code: 2, name: \"First Name Last Name\"}, {code: 3, name: \"Last Name First Name\"}]\r\n\r\n return (\r\n \r\n \r\n {heading}\r\n \r\n\r\n {sectionContext?.isEditing\r\n ? (\r\n <>\r\n \r\n \r\n {salutationLabel}\r\n item?.name) ?? []}\r\n placeholder={pleaseSelectPlaceholder}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {contactProfile?.contact?.personal?.middleName !== null && contactProfile?.contact?.personal?.middleName !== '' &&\r\n \r\n \r\n \r\n }\r\n \r\n {preferredNameLabel}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Order of given and family name for printed correspondence\r\n \r\n item?.name) ?? []}\r\n placeholder={pleaseSelectPlaceholder}\r\n />\r\n \r\n \r\n \r\n \r\n { // Only allow editing if DOB not set and is not a member\r\n contactProfile?.contact?.personal?.dateOfBirth ||\r\n contactProfile?.contact?.membership?.isMember\r\n ? \r\n : <>\r\n {dateOfBirthLabel}\r\n \r\n \r\n }\r\n \r\n \r\n {contactProfile?.contact?.personal?.gender\r\n ? \r\n : <>\r\n {genderLabel}\r\n item?.name) ?? []}\r\n placeholder={genderPlaceholder}\r\n />\r\n \r\n }\r\n \r\n \r\n \r\n \r\n {atsiOriginLabel}\r\n item?.name) ?? []}\r\n placeholder={pleaseSelectPlaceholder}\r\n />\r\n \r\n \r\n {/* @ts-ignore: issue with sitecore supplied type for ComponentRendering */}\r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n \r\n );\r\n};\r\n\r\nexport default compose(\r\n withEditMode,\r\n withMemberContext,\r\n withFormSectionKeyContext('personalDetails'),\r\n)(PersonalDetailsForm);\r\n","import { FormikConfig } from 'formik';\r\n\r\nexport interface MemberFormProps extends FormikConfig {\r\n}\r\n\r\nexport const phoneRegexValidationPattern = /^\\+?\\d{1,3}-\\(?\\d{0,3}\\)?-\\d{1,11}$/;\r\n\r\nexport const mobilePhoneRegexValidationPattern = /^\\d{0,14}$/;\r\n\r\nexport const fallbackMobilePhoneErrorMessage = 'Please enter Mobile phone in a number format and must not exceed 14 digits';\r\n\r\nexport const fallbackPhoneErrorMessage = \"Please enter as 'CountryCode- AreaCode-PhoneNumber' (Eg: 061-03-XXXXXXXX)\";\r\n\r\nexport type DateFormat = 'YEAR_FIRST' | 'DAY_FIRST';\r\n","import * as yup from \"yup\";\r\nimport { AnyObject, Maybe } from \"yup/lib/types\";\r\nimport moment from 'moment-mini';\r\n\r\nyup.addMethod(yup.date, 'format', function (formats, parseStrict) {\r\n return this.transform(function (value, originalValue) {\r\n value = moment(originalValue, formats, parseStrict);\r\n return value.isValid() ? value.toDate() : new Date('');\r\n });\r\n});\r\n\r\n// Extend yup date schema so typescript recognises new 'format' method\r\ndeclare module 'yup' {\r\n interface DateSchema<\r\n TType extends Maybe = Date | undefined, \r\n TContext extends AnyObject = AnyObject, \r\n TOut extends TType = TType\r\n > extends yup.BaseSchema {\r\n format(formats: string, parseStrict: boolean): DateSchema;\r\n }\r\n}\r\n\r\nexport default yup;","import {\r\n CountriesMap,\r\n HasCountryGotStates,\r\n} from '_containers/LocationAPIContext/definitions';\r\nimport {\r\n fallbackMobilePhoneErrorMessage,\r\n fallbackPhoneErrorMessage,\r\n mobilePhoneRegexValidationPattern,\r\n phoneRegexValidationPattern,\r\n} from '_utils/components/Form/definitions';\r\nimport { getDictionaryItem } from '_utils/data/dictionaryItem';\r\nimport {\r\n DAY_FIRST_FORMAT,\r\n renderInvalidError,\r\n renderRequiredError\r\n} from '_utils/helpers/form';\r\nimport { yup } from '_utils/types';\r\n\r\ntype ValidationDictionaryItems = any;\r\n\r\nexport const contactDetailsFormValidationDictionaryItems = {\r\n dateOfBirth: {\r\n invalid: renderInvalidError(getDictionaryItem('form-contact-dob', 'Date of birth'), '{field}', getDictionaryItem('invalid-date-error-message', \"{field} must be in the format 'DD/MM/YYYY'\")),\r\n },\r\n addressLine1: {\r\n required: renderRequiredError(getDictionaryItem('form-contact-address-line1', 'Address line 1')),\r\n },\r\n country: {\r\n isoCode2Letter: {\r\n required: renderRequiredError(getDictionaryItem('form-contact-country', 'Country')),\r\n },\r\n },\r\n workPhone: {\r\n invalid: getDictionaryItem('invalid-phone-error-message', fallbackPhoneErrorMessage),\r\n required: renderRequiredError(getDictionaryItem('form-contact-work-number', 'Business phone number')),\r\n },\r\n homePhone: {\r\n invalid: getDictionaryItem('invalid-phone-error-message', fallbackPhoneErrorMessage),\r\n required: renderRequiredError(getDictionaryItem('form-contact-home-number', 'Home phone number')),\r\n },\r\n mobilePhone: {\r\n invalid: getDictionaryItem('invalid-mobile-error-message', fallbackMobilePhoneErrorMessage),\r\n required: renderRequiredError(getDictionaryItem('form-contact-mobile-number', 'Mobile phone')),\r\n },\r\n mobilePhoneCountryCode: {\r\n required: renderRequiredError(getDictionaryItem('form-contact-mobile-country', 'Mobile country code')),\r\n },\r\n preferredPhoneNumber: {\r\n required: renderRequiredError(getDictionaryItem('form-contact-preferred-phone', 'Preferred phone number')),\r\n },\r\n isMailReturned: {\r\n returnedMail: getDictionaryItem('form-contact-notification-mail-description', 'We have received returned mail. Please review your addresses.'),\r\n },\r\n};\r\n\r\nexport const commsValidationSchema = (validationDictionaryItems: ValidationDictionaryItems) => yup.object({\r\n workPhone: yup.string().ensure()\r\n .matches(phoneRegexValidationPattern, {\r\n message: validationDictionaryItems.workPhone.invalid,\r\n excludeEmptyString: true,\r\n })\r\n .when('preferredPhoneNumber', {\r\n is: 'Business Phone',\r\n then: yup.string().ensure().required(validationDictionaryItems.workPhone.required)\r\n }),\r\n\r\n homePhone: yup.string().ensure()\r\n .matches(phoneRegexValidationPattern, {\r\n message: validationDictionaryItems.homePhone.invalid,\r\n excludeEmptyString: true\r\n })\r\n .when('preferredPhoneNumber', {\r\n is: 'Home Phone',\r\n then: yup.string().ensure().required(validationDictionaryItems.homePhone.required),\r\n }),\r\n\r\n mobilePhone: yup.string().ensure()\r\n .matches(mobilePhoneRegexValidationPattern, {\r\n message: validationDictionaryItems.mobilePhone.invalid,\r\n excludeEmptyString: true\r\n })\r\n .when('preferredPhoneNumber', {\r\n is: 'Mobile Phone',\r\n then: yup.string().ensure().required(validationDictionaryItems.mobilePhone.required),\r\n }),\r\n\r\n mobilePhoneCountryCode: yup.string().ensure()\r\n .when('preferredPhoneNumber', {\r\n is: 'Mobile Phone',\r\n then: yup.string().ensure().required(validationDictionaryItems.mobilePhoneCountryCode.required),\r\n }),\r\n\r\n preferredPhoneNumber: yup.string().ensure().required(validationDictionaryItems.preferredPhoneNumber.required),\r\n\r\n // Email address handled by separate system so no need to validate here\r\n emailAddress: yup.string().ensure(),\r\n\r\n // validate in reverse - ie. if field is true, we fail test\r\n isMailReturned: yup.boolean().test('returned mail', validationDictionaryItems.isMailReturned.returnedMail, (val) => !val),\r\n});\r\n\r\nexport const getValidationSchema = (\r\n countriesMap: CountriesMap,\r\n hasCountryGotStates: HasCountryGotStates,\r\n validationDictionaryItems: ValidationDictionaryItems,\r\n) => {\r\n const personalValidationSchema = yup.object({\r\n salutation: yup.string().ensure(),\r\n firstName: yup.string().ensure(),\r\n surname: yup.string().ensure(),\r\n preferredName: yup.string().ensure(),\r\n dateOfBirth: yup.date().nullable().format(DAY_FIRST_FORMAT, true)\r\n .when('isMember', {\r\n is: false,\r\n then: yup.date()\r\n .format(DAY_FIRST_FORMAT, true)\r\n .typeError(validationDictionaryItems.dateOfBirth.invalid)\r\n })\r\n });\r\n\r\n const addressValidationSchema = yup.object({\r\n primaryContactName: yup.string().ensure(),\r\n addressLine1: yup.string().ensure().required(validationDictionaryItems.addressLine1.required),\r\n addressLine2: yup.string().ensure(),\r\n addressLine3: yup.string().ensure(),\r\n postCode: yup.string().when('country.isoCode2Letter', (isoCode, schema) => {\r\n const country = countriesMap && countriesMap[isoCode];\r\n\r\n if (country?.hasPostcode) {\r\n schema = schema.required(renderRequiredError(country.postcodeLabel));\r\n }\r\n\r\n if (country?.postcodeRegex) {\r\n schema = schema.matches(country.postcodeRegex, renderInvalidError(country.postcodeLabel));\r\n }\r\n\r\n return schema;\r\n }),\r\n city: yup.string().when('country.isoCode2Letter', (isoCode, schema) => {\r\n return countriesMap && countriesMap[isoCode]?.hasSuburb ? schema.required(renderRequiredError(countriesMap[isoCode]?.suburbLabel)) : schema;\r\n }),\r\n state: yup.object().when('country.isoCode2Letter', (isoCode, schema) => {\r\n if (!countriesMap || !countriesMap[isoCode]?.hasState) {\r\n return schema;\r\n }\r\n\r\n // State with dropdown:\r\n if (hasCountryGotStates(countriesMap?.[isoCode])) {\r\n return yup.object({\r\n isoCode: yup.string().required(renderRequiredError(countriesMap[isoCode]?.stateLabel)),\r\n name: yup.string()\r\n });\r\n }\r\n\r\n // State with text input:\r\n return yup.object({\r\n isoCode: yup.string(),\r\n name: yup.string().required(renderRequiredError(countriesMap[isoCode]?.stateLabel))\r\n });\r\n }),\r\n country: yup.object({\r\n isoCode2Letter: yup.string().required(validationDictionaryItems.country.isoCode2Letter.required)\r\n }),\r\n isPrivate: yup.boolean(),\r\n deliveryIdentifier: yup.string().ensure(),\r\n deliveryIdentifierProvider: yup.string().ensure()\r\n });\r\n\r\n return yup.object().shape({\r\n contact: yup.object({\r\n personal: personalValidationSchema,\r\n comms: commsValidationSchema(validationDictionaryItems),\r\n }),\r\n billingAddress: addressValidationSchema,\r\n isSameAddress: yup.boolean(),\r\n shippingAddress: yup.object().when('isSameAddress', {\r\n is: false,\r\n then: addressValidationSchema\r\n })\r\n });\r\n}","/**\r\n * Initialises a FormContext + Formik Context, with values for Contact Details Form.\r\n */\r\nimport { clone, compose, equals, omit } from 'ramda';\r\nimport React, { useContext, useEffect, useRef, useState } from 'react';\r\nimport { Formik, FormikHelpers } from 'formik';\r\n\r\nimport { hasCommunicationErrors } from '_components/MMFContactDetailsForm/FormContent';\r\nimport {\r\n getValidationSchema,\r\n contactDetailsFormValidationDictionaryItems,\r\n} from '_components/MMFContactDetailsForm/formValidation';\r\nimport { withEditMode } from '_containers/BaseComponent';\r\nimport { DigitalDataContext } from '_containers/DigitalDataContext';\r\nimport { FormContext } from '_containers/FormSectionContext';\r\nimport { useLocationAPIContext } from '_containers/LocationAPIContext';\r\nimport { MemberContext } from '_containers/MemberContext';\r\nimport { getDictionaryItem } from '_utils/data/dictionaryItem';\r\nimport { getQueryStringValue } from '_utils/data/queryString';\r\nimport { emitTrackEvent, setObjectData } from '_utils/helpers/analytics';\r\nimport { errorInDev } from '_utils/helpers/dev';\r\nimport {\r\n formatDate,\r\n REF_PARAM,\r\n RENEWAL_REF_PARAM_VALUE,\r\n} from '_utils/helpers/form';\r\nimport { useUnload } from '_utils/hooks';\r\n\r\nimport {\r\n ContactDetailsFormContext,\r\n ContactDetailsFormContextProviderProps,\r\n ContactDetailsFormValues,\r\n} from './definitions';\r\n\r\nconst ContactDetailsFormContextProvider: React.FC = ({\r\n children,\r\n editMode,\r\n}) => {\r\n const memberContext = useContext(MemberContext);\r\n const { countriesMap, countriesApi, hasCountryGotStates } = useLocationAPIContext();\r\n const formRef = useRef(null);\r\n\r\n const digitalDataContext = useContext(DigitalDataContext);\r\n const { digitalData, setDigitalData } = digitalDataContext;\r\n\r\n useEffect(() => {\r\n //NOSONAR\r\n countriesApi?.request?.();\r\n }, []);\r\n\r\n if (Object.keys(memberContext ?? {})?.length < 1) {\r\n errorInDev('ContactDetailsFormContextProvider is being rendered outside MemberContext!');\r\n }\r\n\r\n // TODO: When partial saving is possible, there should be individual isEditing state and actions for each editable section.\r\n const [isEditing, setIsEditing] = useState(false);\r\n const [sectionEditing, setSectionEditing] = useState(null);\r\n const [isReferredFromRenewal, setIsReferredFromRenewal] = useState(getQueryStringValue(REF_PARAM) === RENEWAL_REF_PARAM_VALUE);\r\n\r\n // pre-validation causes user to straight to edit mode, so need to capture user interaction\r\n // else user get stuck in loop\r\n const [hasUserBeenShownPrompt, setHasUserBeenShownPrompt] = useState(false);\r\n \r\n // Initial fetch\r\n useEffect(() => {\r\n //NOSONAR\r\n memberContext?.contactProfileApi?.request?.({\r\n setLoadingStatus: true,\r\n useCachedResponse: false,\r\n });\r\n }, []);\r\n\r\n // Refresh form data everytime the user exits form edit mode\r\n useEffect(() => {\r\n if (!editMode && !isEditing) {\r\n //NOSONAR\r\n memberContext?.contactProfileApi?.request?.({\r\n setLoadingStatus: true,\r\n useCachedResponse: false,\r\n });\r\n\r\n // clear out any cached submit errors returning to readonly mode\r\n if (memberContext?.contactProfileSubmissionApi?.result?.error) {\r\n memberContext?.contactProfileSubmissionApi?.clear?.();\r\n }\r\n }\r\n\r\n if (!editMode && isEditing) {\r\n // clear out any cached success, if there was one left over from a previous edit\r\n // (\"Updates saved\" to hide when going back into editing mode)\r\n if (memberContext?.contactProfileSubmissionApi?.result?.data) {\r\n memberContext?.contactProfileSubmissionApi?.clear?.();\r\n }\r\n }\r\n }, [editMode, isEditing]);\r\n\r\n // Ensure removal of updates saved announcement on route change\r\n useUnload(() => memberContext?.contactProfileSubmissionApi?.clear());\r\n\r\n const updateAction = (event?: Event, sectionIdentifier?: string) => {\r\n if (event) {\r\n event?.preventDefault();\r\n }\r\n setIsEditing(true);\r\n\r\n if (sectionIdentifier) {\r\n setSectionEditing(sectionIdentifier);\r\n }\r\n\r\n // dispatch tracking event when start section being updated\r\n if (typeof setDigitalData === 'function') {\r\n setDigitalData(\r\n setObjectData(\r\n ['form'],\r\n {\r\n formName: 'contact details form',\r\n update: sectionIdentifier ?? ''\r\n },\r\n digitalData)\r\n );\r\n emitTrackEvent('infoUpdate');\r\n }\r\n };\r\n\r\n const cancelAction = (event: Event) => {\r\n event.preventDefault();\r\n\r\n // dispatch tracking event on cancelAction\r\n if (typeof setDigitalData === 'function') {\r\n setDigitalData(\r\n setObjectData(\r\n ['page'],\r\n {\r\n pageName: 'contact form unsaved changes overlay'\r\n },\r\n digitalData)\r\n );\r\n emitTrackEvent('overlay');\r\n }\r\n\r\n // TODO: detect if there are changes to discard and show a dialog to confirm user cancellation\r\n const alertBody = getDictionaryItem('form-unsaved-changes-body', 'Are you sure you want to leave? You currently have some unsaved changes.');\r\n\r\n // user confirm cancel,so don't re-validate on mount\r\n if (window.confirm(alertBody)) {\r\n setIsEditing(false);\r\n\r\n // remove referrer from query string if come from Renewal Form\r\n setIsReferredFromRenewal(false);\r\n\r\n setHasUserBeenShownPrompt(true);\r\n\r\n //TODO: Update analytics linkName and linkDestination when overlay button text updated\r\n // dispatch tracking event when user confirm to cancel\r\n if (typeof setDigitalData === 'function') {\r\n setDigitalData(\r\n setObjectData(\r\n ['link'],\r\n {\r\n linkName: 'discard changes',\r\n linkDestination: 'discard changes'\r\n },\r\n digitalData)\r\n );\r\n emitTrackEvent('linkClick');\r\n }\r\n } else {\r\n\r\n // dispatch tracking event when user confirm to continue editing\r\n if (typeof setDigitalData === 'function') {\r\n setDigitalData(\r\n setObjectData(\r\n ['link'],\r\n {\r\n linkName: 'continue editing',\r\n linkDestination: 'continue editing'\r\n },\r\n digitalData)\r\n );\r\n emitTrackEvent('linkClick');\r\n }\r\n }\r\n\r\n setSectionEditing(null); // so we don't conflict with scroll next line\r\n\r\n window.scroll({\r\n top: 0,\r\n left: 0,\r\n behavior: 'smooth'\r\n });\r\n };\r\n\r\n const saveAction = (event: Event) => {\r\n // event.preventDefault();\r\n // TODO: when partial save is ready to implement, handleFormSubmit should be moved into here\r\n };\r\n\r\n //NOSONAR\r\n const value: ContactDetailsFormContext = {\r\n hasUserBeenShownPrompt,\r\n isAnySectionEditing: isEditing,\r\n sectionEditing: sectionEditing,\r\n isReferredFromRenewal: isReferredFromRenewal,\r\n setIsEditing: setIsEditing,\r\n personalDetails: {\r\n isEditing,\r\n cancelAction,\r\n saveAction,\r\n updateAction,\r\n },\r\n contactDetails: {\r\n isEditing,\r\n cancelAction,\r\n saveAction,\r\n updateAction,\r\n },\r\n addresses: {\r\n isEditing,\r\n cancelAction,\r\n saveAction,\r\n updateAction,\r\n }\r\n }; \r\n\r\n\r\n const getInitialFormValues = (): ContactDetailsFormValues => {\r\n const apiResponse = memberContext?.contactProfileApi?.result?.data;\r\n const dateOfBirth = formatDate(apiResponse?.contact?.personal?.dateOfBirth || '', 'DAY_FIRST')\r\n // not sure if need this so leaving it here just in case\r\n // cpaAustraliaIdTkn: apiResponse?.cpaAustraliaIdTkn,\r\n\r\n // there is a new field 'addressType' in MMF added, use the omit function provided by Ramda to omit it. \r\n const omitAddressType = omit(['addressType']);\r\n\r\n return {\r\n cpaAustraliaId: apiResponse?.cpaAustraliaId,\r\n contact: {\r\n personal: {\r\n salutation: apiResponse?.contact?.personal?.salutation || '',\r\n gender: apiResponse?.contact?.personal?.gender || '',\r\n firstName: apiResponse?.contact?.personal?.firstName || '',\r\n preferredNameOrder: apiResponse?.contact?.personal?.preferredNameOrder || 'None',\r\n middleName: apiResponse?.contact?.personal?.middleName || '',\r\n surname: apiResponse?.contact?.personal?.surname || '',\r\n preferredName: apiResponse?.contact?.personal?.preferredName || '',\r\n dateOfBirth: dateOfBirth,\r\n indigenousIdentity: apiResponse?.contact?.personal?.indigenousIdentity || '',\r\n isMember: apiResponse?.contact?.membership?.isMember // Used by DOB validation so needs to be sibling for yup.when()\r\n },\r\n comms: {\r\n mobilePhoneCountryCode: apiResponse?.contact?.comms?.mobilePhoneCountryCode || '',\r\n mobilePhone: apiResponse?.contact?.comms?.mobilePhone || '',\r\n workPhone: apiResponse?.contact?.comms?.workPhone || '',\r\n homePhone: apiResponse?.contact?.comms?.homePhone || '',\r\n preferredPhoneNumber: apiResponse?.contact?.comms?.preferredPhoneNumber || '',\r\n isMailReturned: apiResponse?.contact?.comms?.isMailReturned || false, // handle null from API else breaks validation\r\n },\r\n },\r\n billingAddress: {\r\n primaryContactName: apiResponse?.billingAddress?.primaryContactName || '',\r\n addressLine1: apiResponse?.billingAddress?.addressLine1 || '',\r\n addressLine2: apiResponse?.billingAddress?.addressLine2 || '',\r\n addressLine3: apiResponse?.billingAddress?.addressLine3 || '',\r\n postCode: apiResponse?.billingAddress?.postCode || '',\r\n city: apiResponse?.billingAddress?.city || '',\r\n state: {\r\n isoCode: apiResponse?.billingAddress?.state?.isoCode || '',\r\n name: apiResponse?.billingAddress?.state?.name || '',\r\n },\r\n country: {\r\n isoCode2Letter: apiResponse?.billingAddress?.country?.isoCode2Letter || '',\r\n name: apiResponse?.billingAddress?.country?.name || ''\r\n },\r\n isPrivate: apiResponse?.billingAddress?.isPrivate || false,\r\n deliveryIdentifier: apiResponse?.billingAddress?.deliveryIdentifier || '',\r\n deliveryIdentifierProvider: apiResponse?.billingAddress?.deliveryIdentifierProvider || '',\r\n },\r\n isSameAddress: equals(omitAddressType(apiResponse?.billingAddress), omitAddressType(apiResponse?.shippingAddress)),\r\n shippingAddress: {\r\n primaryContactName: apiResponse?.shippingAddress?.primaryContactName || '',\r\n addressLine1: apiResponse?.shippingAddress?.addressLine1 || '',\r\n addressLine2: apiResponse?.shippingAddress?.addressLine2 || '',\r\n addressLine3: apiResponse?.shippingAddress?.addressLine3 || '',\r\n postCode: apiResponse?.shippingAddress?.postCode || '',\r\n city: apiResponse?.shippingAddress?.city || '',\r\n state: {\r\n isoCode: apiResponse?.shippingAddress?.state?.isoCode || '',\r\n name: apiResponse?.shippingAddress?.state?.name || '',\r\n },\r\n country: {\r\n isoCode2Letter: apiResponse?.shippingAddress?.country?.isoCode2Letter || '',\r\n name: apiResponse?.shippingAddress?.country?.name || '',\r\n },\r\n isPrivate: apiResponse?.shippingAddress?.isPrivate,\r\n deliveryIdentifier: apiResponse?.shippingAddress?.deliveryIdentifier || '',\r\n deliveryIdentifierProvider: apiResponse?.shippingAddress?.deliveryIdentifierProvider || '',\r\n }\r\n };\r\n };\r\n\r\n const isContactDetailsDataReady =\r\n !memberContext?.contactProfileApi?.result?.isLoading\r\n && memberContext?.contactProfileApi?.result?.data;\r\n\r\n const isMailReturnedApiResponse = isContactDetailsDataReady ?\r\n !!memberContext?.contactProfileApi?.result?.data?.contact?.comms?.isMailReturned : false;\r\n\r\n // pre-validate form on page load to check phone and mail to show warnings\r\n useEffect(() => {\r\n if (isContactDetailsDataReady && !hasUserBeenShownPrompt && formRef?.current) {\r\n formRef.current.validateForm()\r\n .then(\r\n errors => {\r\n if (hasCommunicationErrors(errors)) {\r\n setIsEditing(true);\r\n }\r\n }\r\n );\r\n }\r\n }, [formRef, hasUserBeenShownPrompt, isContactDetailsDataReady]);\r\n\r\n const handleFormSubmit = (\r\n values: ContactDetailsFormValues,\r\n { setSubmitting }: FormikHelpers\r\n ) => {\r\n // Transforms to prepare form values to send\r\n /** Note below:\r\n * @clone function is for deep clone, which is Async and will take long time, \r\n * it causes a behaviour that its below following code will run before it eg. delete valuesToSubmitToAPI..\r\n * some unexpected observation will see if using console.log\r\n * */\r\n const valuesToSubmitToAPI = clone(values);\r\n\r\n // If DateOfBirth is already available in the CRM, do not set it again..\\up.ps\r\n // sending empty \"\" will not trigger a reset\r\n // API DOB is soure of truth here\r\n const apiResponse = memberContext?.contactProfileApi?.result?.data;\r\n const dateOfBirthFromAPI = formatDate(apiResponse?.contact?.personal?.dateOfBirth || '', 'DAY_FIRST');\r\n const isDateOfBirthAvailable = dateOfBirthFromAPI.length > 0;\r\n if (isDateOfBirthAvailable) {\r\n valuesToSubmitToAPI.contact.personal.dateOfBirth = '';\r\n } else {\r\n valuesToSubmitToAPI.contact.personal.dateOfBirth = formatDate(valuesToSubmitToAPI.contact.personal.dateOfBirth, 'YEAR_FIRST');\r\n }\r\n\r\n // Overwrite shippingAddress if the checkbox is tick\r\n if (valuesToSubmitToAPI.isSameAddress) {\r\n valuesToSubmitToAPI.shippingAddress = valuesToSubmitToAPI.billingAddress;\r\n }\r\n\r\n // Remove isSameAddress not require to save to api\r\n delete valuesToSubmitToAPI.isSameAddress;\r\n\r\n // Remove isMember, only used temporarily for DOB validation\r\n delete valuesToSubmitToAPI.contact.personal.isMember;\r\n\r\n // Remove firstName and surName as they cannot be changed on the form\r\n delete valuesToSubmitToAPI.contact.personal.firstName; \r\n delete valuesToSubmitToAPI.contact.personal.surname;\r\n\r\n //NOSONAR\r\n memberContext?.contactProfileSubmissionApi?.request?.({\r\n data: valuesToSubmitToAPI,\r\n onComplete: () => {\r\n setSubmitting(false);\r\n setSectionEditing(null); // clear the current edit section so doesn't conflict with scroll top next line\r\n // remove referrer from query string if come from Renewal Form\r\n setIsReferredFromRenewal(false);\r\n\r\n window.scroll({\r\n top: 0,\r\n left: 0,\r\n behavior: 'smooth'\r\n });\r\n },\r\n onSuccess: () => {\r\n setIsEditing(false);\r\n\r\n // dispatch tracking event when \"Updates saved\"\r\n if (typeof setDigitalData === 'function') {\r\n setDigitalData(\r\n setObjectData(\r\n ['form'],\r\n {\r\n formName: 'contact details form',\r\n update: 'contact details form saved'\r\n },\r\n digitalData)\r\n );\r\n emitTrackEvent('infoUpdate');\r\n }\r\n\r\n },\r\n setLoadingStatus: true,\r\n useCachedResponse: false,\r\n });\r\n };\r\n\r\n return (\r\n \r\n {isContactDetailsDataReady\r\n ? (\r\n \r\n <>\r\n {children}\r\n \r\n \r\n ) : children\r\n }\r\n \r\n )\r\n};\r\n\r\nexport default compose(\r\n withEditMode,\r\n)(ContactDetailsFormContextProvider);\r\n","import * as validators from '_utils/validationChecks';\r\nimport { SitecoreFieldValidator } from '_utils/validationChecks/definitions'\r\n\r\nexport const contactDetailsFormValidators: SitecoreFieldValidator[] = [\r\n {\r\n field: 'rendering.fields.data.datasource.myAccountLink',\r\n errorMessage: 'A valid link to the My Account page must be provided',\r\n required: true,\r\n validators: [validators.isValidLink]\r\n },\r\n {\r\n field: 'rendering.fields.data.datasource.editEmailLink',\r\n errorMessage: 'A valid link to help customers edit their email must be provided',\r\n required: true,\r\n validators: [validators.isValidLink]\r\n }\r\n];\r\n","import { compose } from 'ramda';\r\nimport React, { useEffect, useRef } from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\n\r\nimport InPageAnnouncement from '_components/Announcements/InPageAnnouncement';\r\nimport { PageContainer } from '_components/MMFBPPAssessment/StyledBPPAssessment';\r\nimport { EditMode } from '_components/MMFContactDetailsForm/Sections';\r\nimport Icon from '_components/Icon';\r\nimport ApiErrorContent from './Sections/ApiErrorContent';\r\nimport Modal from '_components/MMFMembershipRenewalForm/Sections/Declaration/Modal';\r\nimport {\r\n withDataSourceValidation,\r\n withEditMode,\r\n} from '_containers/BaseComponent';\r\nimport ContactDetailsFormContextProvider from '_containers/MMFContactDetailsFormContext';\r\nimport { withDigitalDataContext } from '_containers/DigitalDataContext';\r\nimport { useLocationAPIContext } from '_containers/LocationAPIContext';\r\nimport { withMemberContext } from '_containers/MemberContext';\r\nimport ModalProvider from '_containers/ModalContext';\r\nimport { DiscardChangesAlert } from '_utils/components/Form/DiscardChangesAlert';\r\nimport StickyFooter from '_utils/components/Form/StickyFooter';\r\nimport {\r\n Container,\r\n FormContainer,\r\n IntroContainer,\r\n NarrowContainer,\r\n SpinnerWrapper,\r\n StyledSpinner\r\n} from '_utils/components/Form/StyledContainerForm';\r\nimport { getDictionaryItem } from '_utils/data/dictionaryItem';\r\nimport { emitTrackEvent, setObjectData } from '_utils/helpers/analytics';\r\nimport {\r\n checkUserRerferredFromRenewal\r\n} from '_utils/helpers/form';\r\n\r\nimport { ContactDetailsFormProps } from './definitions';\r\nimport FormContent from './FormContent';\r\nimport { contactDetailsFormValidators } from './validation';\r\n\r\nimport {\r\n BackToRenewalFormButton,\r\n BackToRenewalFormButtonLabel,\r\n BackToRenewalFormContent,\r\n CTAButtons,\r\n} from './StyledContactDetailsForm';\r\nimport { redirectUrls } from '_utils/helpers/urlFuncs';\r\n \r\nconst MMFContactDetailsForm: React.FC = (props) => {\r\n const {\r\n contactProfileApi,\r\n contactProfileSubmissionApi,\r\n digitalData,\r\n editMode,\r\n rendering,\r\n setDigitalData,\r\n } = props;\r\n\r\n const { countriesApi } = useLocationAPIContext();\r\n const history = useHistory();\r\n\r\n const successHeading = getDictionaryItem('form-updates-saved', 'Updates saved');\r\n const errorHeading = getDictionaryItem('form-errors-heading', 'Something went wrong');\r\n const backToRenewalFormLabelText = getDictionaryItem('form-back-to-renewal-button-label', 'Back to membership renewal');\r\n\r\n const shouldShowStickyFooter = useRef(false);\r\n\r\n const redirectValues = rendering?.fields?.data?.datasource?.submissionRedirectLinks?.values;\r\n const redirectValuesName = rendering?.fields?.data?.datasource?.submissionRedirectLinks?.values.map((a) => a.name.toLowerCase());\r\n\r\n // only check referrer to should show footer on initial mount, not qs change\r\n useEffect(() => {\r\n shouldShowStickyFooter.current = checkUserRerferredFromRenewal();\r\n }, []);\r\n\r\n const uid = rendering?.uid || null;\r\n\r\n const hasAnyAPIError = contactProfileApi?.result?.error || contactProfileSubmissionApi?.result?.error;\r\n const getAPIErrorMessage = () => {\r\n if (typeof contactProfileApi?.result?.error?.message === 'string') {\r\n return contactProfileApi?.result?.error?.message;\r\n }\r\n\r\n if (typeof contactProfileSubmissionApi?.result?.error?.message !== 'string') {\r\n return (\r\n contactProfileSubmissionApi?.result?.error?.message?.response?.data?.error\r\n || contactProfileSubmissionApi?.result?.error?.message?.response?.data?.errors?.[0]?.message\r\n );\r\n }\r\n };\r\n\r\n const shouldShowAPIError = hasAnyAPIError;\r\n const shouldShowAPISuccess = !hasAnyAPIError && contactProfileSubmissionApi?.result?.data;\r\n const shouldShowSpinner = !hasAnyAPIError && (\r\n contactProfileApi?.result?.isLoading\r\n || countriesApi?.result?.isLoading\r\n || contactProfileSubmissionApi?.result?.isLoading\r\n );\r\n\r\n if (shouldShowAPISuccess && successHeading.length > 1) {\r\n redirectUrls('?referral=', redirectValuesName, redirectValues)\r\n }\r\n\r\n const handleReturnButtonClick = () => {\r\n // TODO: might need the URL for Membership Renewal form from BE defined, so that this won't fail?\r\n history.goBack();\r\n };\r\n\r\n // render component with mock data when in Experience Editor\r\n if (editMode) {\r\n return (\r\n \r\n )\r\n }\r\n\r\n // dispatch tracking event when API error occur and form loaded\r\n useEffect(() => {\r\n if (\r\n !editMode &&\r\n !contactProfileApi?.result?.isLoading &&\r\n hasAnyAPIError &&\r\n typeof setDigitalData === 'function'\r\n ) {\r\n setDigitalData(\r\n setObjectData(\r\n ['form'],\r\n {\r\n formName: 'contact Details form',\r\n errorName: getAPIErrorMessage()\r\n },\r\n digitalData)\r\n );\r\n emitTrackEvent('formErrors');\r\n }\r\n }, [hasAnyAPIError, contactProfileApi?.result?.isLoading]);\r\n\r\n return (\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n {shouldShowAPIError &&\r\n <>\r\n \r\n \r\n \r\n\r\n {contactProfileApi?.result?.error?.message &&\r\n \r\n \r\n \r\n }\r\n \r\n }\r\n\r\n {shouldShowAPISuccess &&\r\n \r\n \r\n \r\n }\r\n\r\n {shouldShowSpinner &&\r\n \r\n \r\n \r\n }\r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n {shouldShowStickyFooter?.current && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {backToRenewalFormLabelText}\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default compose(\r\n withDataSourceValidation(contactDetailsFormValidators),\r\n withDigitalDataContext,\r\n withEditMode,\r\n withMemberContext,\r\n)(MMFContactDetailsForm);\r\n","import { Image as SCImage } from '@sitecore-jss/sitecore-jss-react';\r\nimport styled from 'styled-components';\r\n\r\nimport { ITheme } from '_containers/Theme/corporate/definitions';\r\nimport { Grid, Link } from '_utils/components';\r\nimport {\r\n BookHingeParent,\r\n BookHingeSVGContainer,\r\n} from '_utils/components/BookHinge/StyledBookHinge';\r\nimport { spacing } from '_utils/props';\r\nimport {\r\n avoidPageBreakOnPrint,\r\n button,\r\n headingH1,\r\n mq,\r\n subheading1,\r\n textBody1,\r\n} from '_utils/styles';\r\nimport { PageBannerTheme, InTheBlackPageBannerTheme } from './definitions';\r\n\r\nconst getPageBannerThemeColor = ({\r\n theme,\r\n pageBannerTheme,\r\n}: {\r\n theme: ITheme;\r\n pageBannerTheme?: PageBannerTheme | InTheBlackPageBannerTheme;\r\n}): string => {\r\n if (pageBannerTheme?.toLocaleLowerCase() === 'black') {\r\n return pageBannerTheme;\r\n }\r\n return pageBannerTheme &&\r\n theme.pageBanner.background[pageBannerTheme?.toLowerCase()];\r\n}\r\n\r\nconst lightThemeBanner = (pageBannerTheme?: PageBannerTheme): string =>\r\n ['orange', 'teal', 'yellow'].includes(pageBannerTheme?.toLowerCase())\r\n && 'lightBanner';\r\n\r\nconst darkThemeBanner = (pageBannerTheme?: PageBannerTheme): string =>\r\n ['blue', 'purple', 'black'].includes(pageBannerTheme?.toLowerCase())\r\n && 'darkBanner';\r\n\r\nconst getPageBannerThemeType = (pageBannerTheme?: PageBannerTheme): string =>\r\n ['blue', 'purple', 'black'].includes(pageBannerTheme?.toLowerCase())\r\n ? 'darkBanner'\r\n : 'lightBanner';\r\n\r\nexport const Container = styled.div`\r\n background-color: ${getPageBannerThemeColor};\r\n overflow: hidden;\r\n position: relative;\r\n width: 100%;\r\n\r\n ${mq('lg')} {\r\n align-items: center;\r\n display: flex;\r\n min-height: 440px;\r\n }\r\n\r\n @media print {\r\n background-color: ${({ theme }) => theme.colors.background.tint1};\r\n color: ${({ theme }) => theme.colors.element.neutralBlack};\r\n }\r\n`;\r\n\r\nexport const TextBannerContainer = styled.div`\r\n ${({ theme }) => spacing({ theme, mt: 7, mb: 6 })}\r\n background-color: ${getPageBannerThemeColor};\r\n overflow: hidden;\r\n position: relative;\r\n width: 100%;\r\n\r\n .adTextBanner + &.page-banner {\r\n margin-top: 0 !important;\r\n }\r\n\r\n ${mq('lg')} {\r\n align-items: center;\r\n display: flex;\r\n }\r\n\r\n @media print {\r\n background-color: ${({ theme }) => theme.colors.background.tint1};\r\n color: ${({ theme }) => theme.colors.element.neutralBlack};\r\n }\r\n`;\r\n\r\nexport const CategoryLabelLink = styled(Link)`\r\n ${textBody1};\r\n a {\r\n color: ${({ theme }) => theme.colors.ui.accent1};\r\n font-size: 14px;\r\n font-weight: 800;\r\n light-height: 24px;\r\n text-transform: uppercase;\r\n }\r\n`;\r\n\r\nexport const Header = styled.h1`\r\n ${headingH1}\r\n color: ${({ theme, pageBannerTheme }) =>\r\n theme.pageBanner[getPageBannerThemeType(pageBannerTheme)].headerColor};\r\n margin-bottom: 0;\r\n\r\n /* mq specificity required to override default heading margin-bottom */\r\n ${mq('md')} {\r\n margin-bottom: 0;\r\n }\r\n`;\r\n\r\nexport const Blurb = styled.p`\r\n ${subheading1}\r\n ${({ theme }) => spacing({ theme, mt: '16px' })}\r\n color: ${({ theme, pageBannerTheme }) =>\r\n theme.pageBanner[getPageBannerThemeType(pageBannerTheme)].color};\r\n margin-bottom: 0;\r\n\r\n /* mq specificity required to override default heading margin-bottom */\r\n ${mq('md')} {\r\n margin-bottom: 0;\r\n }\r\n`;\r\n\r\nexport const TagListContainer = styled.div`\r\n ${({ theme }) => spacing({ theme, mt: 3 })}\r\n`;\r\n\r\nexport const BannerImage = styled(BookHingeParent)`\r\n background-color: ${getPageBannerThemeColor};\r\n display: block;\r\n height: 212px;\r\n position: relative;\r\n width: 100%;\r\n\r\n ${mq('md')} {\r\n height: 100%;\r\n left: auto;\r\n position: absolute;\r\n right: 0;\r\n top: 0;\r\n width: 50%;\r\n }\r\n\r\n @media print {\r\n height: 200px;\r\n position: relative;\r\n width: 100%;\r\n }\r\n\r\n ${BookHingeSVGContainer} {\r\n path {\r\n fill: ${getPageBannerThemeColor};\r\n }\r\n }\r\n`;\r\n\r\nexport const Figure = styled.figure`\r\n display: block;\r\n height: 100%;\r\n margin: 0;\r\n`;\r\n\r\nexport const Image = styled(SCImage)`\r\n font-family: 'object-fit: cover;';\r\n height: 100%;\r\n left: 0;\r\n object-fit: cover;\r\n position: absolute;\r\n top: 0;\r\n width: 100%;\r\n\r\n ${avoidPageBreakOnPrint}\r\n`;\r\n\r\nexport const BannerContent = styled(Grid.Item)`\r\n ${({ theme }) =>\r\n spacing({\r\n theme,\r\n py: { xs: 5, md: 5, lg: 8 },\r\n pl: { xs: 0, lg: 4, xl: 0 },\r\n pr: { xs: 0, md: 3, lg: 4 },\r\n })};\r\n\r\n @media print {\r\n ${({ theme }) => spacing({ theme, py: 3, px: 1 })};\r\n flex: 0 0 100%;\r\n max-width: 100%;\r\n }\r\n`;\r\n\r\nexport const TextBannerContent = styled(Grid.Item)`\r\n\r\n @media print {\r\n ${({ theme }) => spacing({ theme, py: 4, px: 1 })};\r\n flex: 0 0 100%;\r\n max-width: 100%;\r\n }\r\n`;\r\n\r\nexport const LinksDiv = styled.div`\r\n display: flex;\r\n flex-wrap: wrap;\r\n width: 100%;\r\n`\r\n\r\nexport const LinkButton = styled(Link)`\r\n ${({ theme }) => spacing({ theme, pt: '16px', mr: 1 })};\r\n a {\r\n ${button('default', 'secondary')};\r\n ${textBody1};\r\n margin-bottom: 0;\r\n min-width: 140px;\r\n\r\n path {\r\n fill: ${({ theme }) => theme.colors.element.neutralWhite};\r\n }\r\n }\r\n\r\n @media print {\r\n display: none !important;\r\n }\r\n`;\r\n\r\n\r\nexport const SecondaryLinkButton = styled(Link)`\r\n ${({ theme }) => spacing({ theme, pt: '16px'})};\r\n\r\n a {\r\n ${button('default', 'tertiary')}\r\n ${textBody1};\r\n margin-bottom: 0;\r\n min-width: 140px;\r\n border: 0;\r\n\r\n &:hover, &:active {\r\n background-color: transparent !important;\r\n\r\n path {\r\n fill: currentColor;\r\n }\r\n }\r\n }\r\n }\r\n\r\n @media print {\r\n display: none !important;\r\n }\r\n`;\r\n\r\nexport const SecondaryLinkButtonDark = styled(Link)`\r\n ${({ theme }) => spacing({ theme, pt: '16px'})};\r\n a {\r\n ${button('default', 'tertiaryDark')};\r\n ${textBody1};\r\n margin-bottom: 0;\r\n min-width: 140px;\r\n vertical-align: text-top;\r\n padding: 9px 20px;\r\n border: 0;\r\n\r\n &:hover, &:active {\r\n ${({ pageBannerTheme }) => {\r\n return pageBannerTheme === 'Purple' ? 'background-color: transparent !important;' : ''\r\n }})};\r\n }\r\n\r\n path {\r\n fill: ${({ theme }) => theme.colors.element.neutralWhite};\r\n }\r\n }\r\n\r\n @media print {\r\n display: none !important;\r\n }\r\n`;\r\n\r\nexport const AdImageBanner = styled.div`\r\n ${({ theme }) => spacing({ theme, mt: '24px' })}\r\n`;\r\n\r\nexport const AdTextBanner = styled.div`\r\n ${({ theme }) => spacing({ theme, my: '24px' })}\r\n`;\r\n\r\n ","import { Text } from \"@sitecore-jss/sitecore-jss-react\";\r\nimport React, { FC } from \"react\";\r\nimport { LinkTrackingEvent } from '_containers/DigitalDataContext/definitions';\r\nimport { Grid } from \"_utils/components\";\r\nimport { BookHinge } from \"_utils/components/BookHinge\";\r\nimport { stripHTML } from \"_utils/helpers/html\";\r\nimport { emitTrackEvent, setObjectData } from '_utils/helpers/analytics';\r\nimport { createSrcSet } from \"_utils/media\";\r\nimport { imagePlaceholderSrc } from \"_utils/styles\";\r\nimport { ImageHeight16by9, ImageSize } from \"_utils/types/enums\";\r\nimport { ImageBannerProps } from \"./definitions\";\r\nimport {\r\n BannerContent,\r\n BannerImage,\r\n Blurb,\r\n CategoryLabelLink,\r\n Container,\r\n Figure,\r\n Header,\r\n Image,\r\n LinkButton,\r\n SecondaryLinkButton,\r\n LinksDiv,\r\n SecondaryLinkButtonDark,\r\n} from \"./StyledPageBanner\";\r\n\r\nexport const ImageBanner: FC =({\r\n pageTitle,\r\n pageDescription,\r\n pageBannerTheme,\r\n pageImage,\r\n linkField,\r\n editMode,\r\n uid,\r\n trackingName,\r\n datasourceName,\r\n pageBannerCallToActionIcon,\r\n pageBannerCallToActionSecondaryIcon,\r\n pageBannerCallToActionSecondaryLink,\r\n isCorporateSite = true,\r\n digitalData,\r\n setDigitalData,\r\n}) => {\r\n const pageBannerThemeCheckDark =\r\n pageBannerTheme === \"Black\" || pageBannerTheme === \"Blue\" || pageBannerTheme === \"Purple\";\r\n\r\n\r\n // handle analytics\r\n const handleClick: LinkTrackingEvent = (name, destination) => {\r\n if (typeof setDigitalData === 'function') {\r\n setDigitalData(\r\n setObjectData(\r\n ['link'],\r\n {\r\n linkName: name,\r\n linkDestination: destination,\r\n },\r\n digitalData)\r\n );\r\n emitTrackEvent('linkClick');\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {!isCorporateSite && (\r\n handleClick(linkField?.value?.text || linkField?.fallbackTitle, linkField?.value?.href)}\r\n aria-label={linkField?.value?.text}\r\n />\r\n )}\r\n \r\n \r\n \r\n {(editMode || pageDescription?.value) && (\r\n \r\n \r\n \r\n )}\r\n {isCorporateSite && (\r\n \r\n handleClick(linkField?.value?.text || linkField?.fallbackTitle, linkField?.value?.href)}\r\n aria-label={linkField?.value?.text}\r\n />\r\n {pageBannerThemeCheckDark ? (\r\n handleClick(pageBannerCallToActionSecondaryLink?.value?.text || pageBannerCallToActionSecondaryLink?.fallbackTitle, pageBannerCallToActionSecondaryLink?.value?.href)}\r\n aria-label={pageBannerCallToActionSecondaryLink?.value?.text}\r\n />\r\n ) : (\r\n handleClick(pageBannerCallToActionSecondaryLink?.value?.text || pageBannerCallToActionSecondaryLink?.fallbackTitle, pageBannerCallToActionSecondaryLink?.value?.href)}\r\n aria-label={pageBannerCallToActionSecondaryLink?.value?.text}\r\n />\r\n )}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n {isCorporateSite && (\r\n \r\n )}\r\n
    \r\n \r\n );\r\n};\r\n","import { Text } from '@sitecore-jss/sitecore-jss-react';\r\nimport React, { FC } from 'react';\r\n\r\nimport { Grid } from '_utils/components';\r\nimport { stripHTML } from '_utils/helpers/html';\r\nimport { TextBannerProps } from './definitions';\r\n\r\nimport {\r\n Blurb,\r\n CategoryLabelLink,\r\n Header,\r\n TextBannerContainer,\r\n TextBannerContent,\r\n} from './StyledPageBanner';\r\n\r\nexport const TextBanner: FC = ({\r\n editMode,\r\n pageDescription,\r\n pageTitle,\r\n uid,\r\n linkField,\r\n trackingName,\r\n datasourceName,\r\n isCorporateSite = true\r\n}) => {\r\n return (\r\n \r\n \r\n \r\n \r\n {!isCorporateSite &&\r\n \r\n }\r\n
    \r\n \r\n
    \r\n {(editMode || pageDescription?.value) && (\r\n \r\n \r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n","import { compose } from 'ramda';\r\nimport React, { FC } from 'react';\r\nimport Ad from '_components/Advertisement/Ad';\r\nimport { ImageBanner } from '_components/PageBanner/ImageBanner';\r\nimport { TextBanner } from '_components/PageBanner/TextBanner';\r\nimport { withDigitalDataContext } from '_containers/DigitalDataContext';\r\nimport {\r\n withDataSourceValidation,\r\n withEditMode,\r\n withSitecoreContext,\r\n} from '_containers/BaseComponent';\r\nimport { normalizeJssFields } from '_utils/helpers/jss';\r\nimport { isCorporateSite as isCorporateSiteContext } from '_utils/helpers/render';\r\nimport { PageBannerFieldValidators } from './validation';\r\n\r\nimport {\r\n ImageBannerProps,\r\n NormalisedPageBannerPageFields,\r\n PageBannerProps,\r\n RenderingParams,\r\n TextBannerProps,\r\n} from './definitions';\r\n\r\nimport { AdImageBanner, AdTextBanner } from './StyledPageBanner';\r\n\r\nconst PageBanner: FC = ({\r\n editMode,\r\n rendering,\r\n sitecoreContext,\r\n digitalData,\r\n setDigitalData,\r\n}): JSX.Element => {\r\n const isCorporateSite = isCorporateSiteContext(sitecoreContext);\r\n const renderingPageFields: NormalisedPageBannerPageFields = normalizeJssFields(rendering?.fields?.data?.pageFields);\r\n const renderingParams: RenderingParams = normalizeJssFields(rendering);\r\n\r\n const isImageBanner = (renderingParams?.params?.showImage ?? false) && (renderingPageFields?.Image?.value?.src ?? false);\r\n\r\n // If is ITB & Image: Black. Else: pageBannerTheme colour or if pageBannerTheme is undefined: Blue.\r\n const pageBannerTheme = (!isCorporateSite && isImageBanner)\r\n ? 'Black'\r\n : renderingParams?.params?.pageBannerTheme ?? 'Blue';\r\n\r\n const uid = rendering?.uid;\r\n\r\n // LinkItem(NavLink) expects obj.\r\n const categoryInformationLinkObj = {\r\n value: {\r\n id: '',\r\n href: renderingPageFields?.categoryInformation?.categoryUrl,\r\n text: renderingPageFields?.categoryInformation?.categoryLabelText\r\n }\r\n };\r\n\r\n const linkField = isCorporateSite\r\n ? renderingPageFields?.CTAbutton\r\n : categoryInformationLinkObj;\r\n\r\n const pageBannerCallToActionSecondaryLink = isCorporateSite\r\n ? renderingPageFields?.CTASecondaryLink\r\n : categoryInformationLinkObj;\r\n\r\n const adverts = rendering?.fields?.data?.datasource?.adverts;\r\n const pageFields = rendering?.fields?.data?.pageFields;\r\n const topicTagArray = pageFields?.topictags?.topics || [];\r\n const category = pageFields?.categoryInformation?.categoryLabelText;\r\n const topics = topicTagArray.map(item => item.topic);\r\n const keywords = [...topics, category].join();\r\n\r\n const adProps = {\r\n adSlotID: adverts?.adSlotID,\r\n editMode,\r\n keywords,\r\n position: adverts?.position,\r\n template: pageFields?.template?.name,\r\n uid: uid.concat('-ads'),\r\n }\r\n\r\n const imageBannerProps: ImageBannerProps = {\r\n pageTitle: renderingPageFields?.Heading,\r\n pageDescription: renderingPageFields?.Description,\r\n pageImage: renderingPageFields?.Image,\r\n linkField,\r\n pageBannerTheme,\r\n editMode,\r\n uid,\r\n trackingName: renderingPageFields?.trackingName,\r\n datasourceName: renderingPageFields?.datasourceName,\r\n pageBannerCallToActionIcon: renderingPageFields?.CTAIcon?.displayName,\r\n pageBannerCallToActionSecondaryLink,\r\n pageBannerCallToActionSecondaryCSSClass: renderingPageFields?.CTASecondaryCssClass?.value,\r\n pageBannerCallToActionSecondaryIcon: renderingPageFields?.CTASecondaryIcon?.displayName,\r\n isCorporateSite,\r\n digitalData,\r\n setDigitalData,\r\n };\r\n\r\n const textBannerProps: TextBannerProps = {\r\n pageTitle: renderingPageFields?.Heading,\r\n pageDescription: renderingPageFields?.Description,\r\n linkField,\r\n editMode,\r\n uid,\r\n isCorporateSite,\r\n pageBannerCallToActionSecondaryLink,\r\n pageBannerCallToActionSecondaryCSSClass: renderingPageFields?.CTASecondaryCssClass?.value,\r\n pageBannerCallToActionSecondaryIcon: renderingPageFields?.CTASecondaryIcon?.displayName,\r\n };\r\n\r\n return (\r\n <>\r\n {isImageBanner ?\r\n <>\r\n \r\n {!isCorporateSite && adverts &&\r\n \r\n \r\n \r\n }\r\n \r\n :\r\n <>\r\n {!isCorporateSite && adverts &&\r\n \r\n \r\n \r\n }\r\n \r\n \r\n }\r\n \r\n );\r\n};\r\n\r\nexport default compose(\r\n withDigitalDataContext,\r\n withSitecoreContext(),\r\n withEditMode,\r\n withDataSourceValidation(PageBannerFieldValidators, false),\r\n)(PageBanner);\r\n","import { SitecoreFieldValidator } from '_utils/validationChecks/definitions';\r\n\r\nexport const PageBannerFieldValidators: SitecoreFieldValidator[] = [\r\n {\r\n field: 'rendering.fields.data.pageFields.Heading',\r\n errorMessage: 'A page title must be set or this component will not render',\r\n required: true\r\n }\r\n];\r\n","import { Link } from 'react-router-dom';\r\nimport styled, { css } from 'styled-components';\r\n\r\nimport buttonSettings from '_containers/Theme/corporate/button'\r\n\r\nimport { Grid } from '_utils/components';\r\nimport { spacing } from '_utils/props';\r\nimport {\r\n button,\r\n buttonReset,\r\n listReset,\r\n mq,\r\n svg,\r\n textBody2,\r\n} from '_utils/styles';\r\n\r\nexport const Footer = styled.footer`\r\n ${({ theme, shouldHideBackToTop }) => spacing({ theme,\r\n pt: {\r\n xs: shouldHideBackToTop ? 0 : 3,\r\n md: 0\r\n }\r\n })};\r\n`;\r\n\r\nexport const Container1 = styled.div`\r\n ${({ theme }) => spacing({ theme, pt: '48px', pb: { xs: 7, md: 6 } })};\r\n background-color: ${({ theme }) => theme.pageFooter.background};\r\n color: ${({ theme }) => theme.pageFooter.color};\r\n width: 100%;\r\n\r\n @media print {\r\n display: none;\r\n }\r\n`;\r\n\r\nexport const Container2 = styled.div`\r\n ${({ theme }) => spacing({ theme, pb: '32px' })};\r\n background-color: ${({ theme }) => theme.pageFooter.background};\r\n color: ${({ theme }) => theme.pageFooter.color};\r\n width: 100%;\r\n\r\n @media print {\r\n display: none;\r\n }\r\n`;\r\n\r\nexport const Column = styled(Grid.Item)`\r\n ${({ theme }) => spacing({ theme, mb: '24px', py: 0 })};\r\n\r\n &:last-child {\r\n margin-bottom: 0;\r\n }\r\n`;\r\n\r\nexport const LogoWrapper = styled.div`\r\n ${({ theme }) => spacing({ theme, mb: { xs: 7, md: 5 } })};\r\n ${svg(120, 52)};\r\n height: 52px;\r\n width: 120px;\r\n`;\r\n\r\nexport const List = styled.ul`\r\n ${listReset}\r\n`;\r\n\r\nexport const ListItem = styled.li`\r\n &:last-child > a {\r\n margin-bottom: 0;\r\n }\r\n`;\r\n\r\nexport const CommunityLinkWrapper = styled.div`\r\n margin-top: 16px;\r\n`\r\n\r\nexport const CommunityLink = styled(Link)`\r\n ${button('slim', 'tertiaryDark')};\r\n border-radius: ${Object.values(buttonSettings?.slim?.borderRadius).map(corner => `${corner}px `)};\r\n`;\r\n\r\nexport const SocialIconsWrapper = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n ${mq('lg')} {\r\n flex-direction: row;\r\n }\r\n`\r\n\r\nexport const SocialIconsGroupOne = styled.div`\r\n display: flex;\r\n margin-right: 18px;\r\n`\r\n\r\nexport const SocialIconsGroupTwo = styled.div`\r\n display: flex;\r\n margin-top: 18px;\r\n ${mq('lg')} {\r\n margin-top: 0;\r\n\r\n }\r\n`\r\n\r\nexport const SocialListItem = styled.div`\r\n width: 24px;\r\n \r\n & + & {\r\n margin-left: 18px;\r\n }\r\n\r\n`;\r\n\r\nconst linkStyle = css`\r\n color: inherit;\r\n display: inline-block;\r\n line-height: 1;\r\n`;\r\n\r\nexport const PrimaryLink = styled(Link)`\r\n ${linkStyle}\r\n font-family: ${({ theme }) => theme?.pageFooter?.primaryLink?.fontFamily};\r\n font-weight: ${({ theme }) => theme?.pageFooter?.primaryLink?.fontWeight};\r\n ${({ theme }) => theme?.pageFooter?.primaryLink?.level}\r\n ${({ theme }) => spacing({ theme, mb: '16px' })};\r\n text-decoration: none;\r\n`;\r\n\r\nexport const SecondaryLink = styled(Link)`\r\n ${linkStyle}\r\n ${({ theme }) => spacing({ theme, mb: '18px' })};\r\n`;\r\n\r\nexport const BottomList = styled.ul`\r\n ${listReset}\r\n\r\n ${mq('sm')} {\r\n align-items: center;\r\n display: flex;\r\n flex-wrap: wrap;\r\n justify-content: flex-start;\r\n }\r\n`;\r\n\r\nexport const BottomLink = styled(Link)`\r\n ${linkStyle};\r\n ${textBody2};\r\n ${({ theme }) => spacing({ theme, mb: '16px' })};\r\n\r\n ${mq('sm')} {\r\n margin-bottom: 0;\r\n margin-right: 28px;\r\n }\r\n`;\r\n\r\nexport const PrivacyPreferencesLink = styled.a`\r\n ${linkStyle};\r\n ${textBody2};\r\n ${({ theme }) => spacing({ theme, mb: '16px' })};\r\n\r\n ${mq('sm')} {\r\n margin-bottom: 0;\r\n margin-right: 28px;\r\n }\r\n`;\r\n\r\nexport const SocialLink = styled(Link)`\r\n ${linkStyle};\r\n align-items: center;\r\n display: flex;\r\n height: 24px;\r\n justify-content: center;\r\n width: 24px;\r\n`;\r\n\r\nexport const StyledButton = styled(button)`\r\n &:last-child > a {\r\n margin-bottom: 0;\r\n }\r\n text-decoration: underline;\r\n background: transparent !important;\r\n ${linkStyle};\r\n ${textBody2};\r\n`\r\n\r\n// 'get the latest', 'stay in touch' elems\r\nexport const SocialTitle = styled.div`\r\n color: ${({ theme }) => theme.pageFooter.labelColor};\r\n font-size: 12px;\r\n font-weight: bold;\r\n line-height: 1;\r\n margin-bottom: 12px;\r\n text-transform: uppercase;\r\n`;\r\n\r\nexport const SubscribeLink = styled(Link)`\r\n ${button('slim', 'tertiaryDark')};\r\n border-radius: ${Object.values(buttonSettings?.slim?.borderRadius).map(corner => `${corner}px `)};\r\n\r\n ${({ theme }) => spacing({ theme, mb: 5 })};\r\n`;\r\n\r\nexport const YoutubeSocialWrapper = styled.div`\r\n ${({ theme }) => spacing({ theme, mt: 5 })};\r\n`\r\n\r\nexport const YoutubeSocicalLink = styled(Link)`\r\n ${buttonReset()};\r\n padding: 4px 16px 6px 16px;\r\n box-shadow: 0 0 0 1px #fff;\r\n border-radius: ${Object.values(buttonSettings?.slim?.borderRadius).map(corner => `${corner}px `)};\r\n\r\n &:hover {\r\n box-shadow: rgb(255, 255, 255) 0px 0px 0px 3px;\r\n color: rgb(255, 255, 255);\r\n }\r\n`;\r\n\r\nexport const ImagesContainer = styled.div `\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n img {\r\n padding: 0.75rem;\r\n width: 80px;\r\n }\r\n`","import React from \"react\";\r\n\r\nexport const YOUTUBEICON = () => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n","import { Placeholder, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { compose } from 'ramda';\r\nimport React, {\r\n FC,\r\n useRef\r\n} from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport Tooltip from '@material-ui/core/Tooltip';\r\nimport { useOneTrustActiveGroups, useScrollDepthAnalyticsTracking } from '_utils/hooks';\r\nimport asyncComponent from '_containers/AsyncComponent';\r\nimport { withCoveoNoIndexTags } from '_containers/BaseComponent';\r\nimport BackToTop from '_components/BackToTop';\r\nimport Icon from '_components/Icon';\r\nimport NavItem from '_components/NavItem';\r\nimport { Grid } from '_utils/components';\r\nimport ScreenReader from '_utils/components/ScreenReader';\r\nimport { emitTrackEvent } from '_utils/helpers/analytics';\r\nimport { isValidNavLink } from '_utils/validationChecks'\r\nimport { PageFooterProps } from './definitions';\r\n\r\nimport {\r\n BottomLink,\r\n PrivacyPreferencesLink,\r\n BottomList,\r\n Column,\r\n Container1,\r\n Container2,\r\n Footer,\r\n List,\r\n ListItem,\r\n LogoWrapper,\r\n PrimaryLink,\r\n SecondaryLink,\r\n SocialIconsWrapper,\r\n SocialIconsGroupOne,\r\n SocialIconsGroupTwo,\r\n SocialLink,\r\n SocialListItem,\r\n SocialTitle,\r\n SubscribeLink,\r\n CommunityLinkWrapper,\r\n CommunityLink,\r\n YoutubeSocialWrapper,\r\n YoutubeSocicalLink,\r\n ImagesContainer\r\n} from './StyledPageFooter';\r\n\r\nimport { YOUTUBEICON } from './icons';\r\n\r\nconst AsyncLogo: any = asyncComponent(() =>\r\n import(/* webpackChunkName: \"Logo\" */ '_utils/icons/Logo')\r\n);\r\n\r\nconst socialLinkMapGroupOne = {\r\n facebook: {\r\n iconName: 'facebook',\r\n title: 'facebook',\r\n },\r\n linkedin: {\r\n iconName: 'linked_in',\r\n title: 'linkedin',\r\n },\r\n instagram: {\r\n iconName: 'instagram',\r\n title: 'instagram',\r\n },\r\n twitter: {\r\n iconName: 'twitter',\r\n title: 'twitter',\r\n }\r\n};\r\n\r\nconst socialLinkMapGroupTwo = {\r\n tiktok: {\r\n iconName: 'tiktok',\r\n title: 'tiktok',\r\n },\r\n wechat: {\r\n iconName: 'wechat',\r\n title: 'wechat',\r\n },\r\n weibo: {\r\n iconName: 'weibo',\r\n title: 'weibo',\r\n },\r\n threads: {\r\n iconName: 'threads',\r\n title: 'threads',\r\n }\r\n};\r\n\r\n\r\nconst LightTooltip = withStyles((theme) => ({\r\n tooltip: {\r\n backgroundColor: theme.palette.common.white,\r\n color: 'rgba(0, 0, 0, 0.87)',\r\n boxShadow: theme.shadows[1],\r\n fontSize: 11,\r\n },\r\n}))(Tooltip);\r\n\r\nconst socialLinks = (validItems, linkMap) => {\r\n const [t] = useTranslation(); \r\n return validItems.map((item, index) => {\r\n const linkData = item?.link || {};\r\n const title = item?.title?.value || '';\r\n const titleLable = title.charAt(0).toUpperCase() + title.slice(1);\r\n const iconName = linkMap[item?.title?.value?.toLowerCase()]?.iconName;\r\n \r\n return (\r\n \r\n \r\n \r\n {t(`page-footer-accessible-social-label-${item?.title?.value}`)}\r\n \r\n \r\n \r\n \r\n );\r\n });\r\n}\r\n\r\nconst footerLinkItem = (item, index, LinkComponent) => {\r\n const linkTitle = item?.title?.value || item?.link?.text || item?.url?.text || '';\r\n return (isValidNavLink(item)) && (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst filterLinks = (socialLinkMap, linksArray) => {\r\n const socialKeys = Object.keys(socialLinkMap);\r\n return linksArray\r\n .filter(linkObj => socialKeys.includes(linkObj?.title?.value?.toLowerCase()) && isValidNavLink(linkObj))\r\n};\r\n\r\nconst PageFooter: FC = ({\r\n rendering,\r\n sitecoreContext,\r\n}) => {\r\n\r\n // Dispatch 100% scroll depth analytics \r\n const ref = useRef();\r\n const dispatchFullPageScrollEmitTrack = () => emitTrackEvent('scroll100');\r\n useScrollDepthAnalyticsTracking(dispatchFullPageScrollEmitTrack, 100, ref);\r\n\r\n const {isOneTrustScriptReady} = useOneTrustActiveGroups();\r\n\r\n const [t] = useTranslation();\r\n\r\n const datasource = rendering?.fields?.data?.datasource || null;\r\n\r\n const shouldHideBackToTop = sitecoreContext?.route?.fields?.hideBackToTop?.value ?? false;\r\n\r\n const primaryNavigation = datasource?.firstColumnLinks?.[0] || [];\r\n const secondaryNavigation = datasource?.secondColumnLinks?.[0] || [];\r\n const tertiaryNavigation = datasource.thirdColumnLinks?.[0] || [];\r\n const bottomNavigation = datasource.bottomLinks?.[0] || [];\r\n const acknowledgmentCountry = datasource?.acknowledgmentCountry?.[0]?.messages?.[0]?.message?.value || [];\r\n const aboriginalFlagSrcLink = datasource?.acknowledgmentCountry?.[0]?.messages?.[0]?.flagAboriginal?.src || [];\r\n const torresStraitFlagSrcLink = datasource?.acknowledgmentCountry?.[0]?.messages?.[0]?.flagTorresStraitIslander?.src || [];\r\n const primaryItems = primaryNavigation?.links || [];\r\n const secondaryItems = secondaryNavigation?.links || [];\r\n const tertiaryItems = tertiaryNavigation?.links || [];\r\n const bottomItems = bottomNavigation?.links || [];\r\n\r\n\r\n const socialMediaLinks = tertiaryNavigation?.socialMediaLinks || [];\r\n\r\n const filteredGroupOneLinks = filterLinks(socialLinkMapGroupOne, socialMediaLinks);\r\n const filteredGroupTwoLinks = filterLinks(socialLinkMapGroupTwo, socialMediaLinks);\r\n const validSocialLinks = [...filteredGroupOneLinks, ...filteredGroupTwoLinks];\r\n\r\n // For the top two links in third comlumn\r\n const subscribeLink = tertiaryNavigation?.link;\r\n const communityLink = primaryNavigation?.communityLink;\r\n const youtubeLink = tertiaryNavigation?.youtube;\r\n\r\n if (!datasource) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {!shouldHideBackToTop && (\r\n
    \r\n \r\n
    \r\n )}\r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!!(primaryItems.length) && (\r\n \r\n )}\r\n\r\n {!!(communityLink?.url) && (\r\n \r\n {t('page-footer-community-connect-title')}\r\n \r\n \r\n )}\r\n \r\n\r\n {!!(secondaryItems.length) && (\r\n \r\n \r\n \r\n )}\r\n\r\n {!!(tertiaryItems.length || validSocialLinks.length || subscribeLink) && (\r\n \r\n {!!(subscribeLink?.url) && (\r\n <>\r\n {t('page-footer-subscribe-title')}\r\n \r\n \r\n )}\r\n\r\n {!!(validSocialLinks.length) && (\r\n <>\r\n {t('page-footer-social-title')}\r\n \r\n {socialLinks(filteredGroupOneLinks, socialLinkMapGroupOne)}\r\n {socialLinks(filteredGroupTwoLinks, socialLinkMapGroupTwo)}\r\n \r\n \r\n \r\n )}\r\n\r\n {/* TODO: integrate with BED */}\r\n {!!(youtubeLink?.url) && \r\n {t('page-footer-discover-more-title')}\r\n \r\n }\r\n link={youtubeLink}\r\n StyledLink={YoutubeSocicalLink}\r\n />\r\n \r\n \r\n }\r\n\r\n {!!(tertiaryItems.length) && (\r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {'aboriginal_flag'}\r\n {'torres_strait_islanders'}\r\n \r\n {acknowledgmentCountry}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default compose(withCoveoNoIndexTags, withSitecoreContext())(PageFooter);\r\n","import styled, { css } from 'styled-components';\r\nimport { Grid, Link } from '_utils/components/';\r\nimport {\r\n spacing,\r\n} from '_utils/props';\r\nimport {\r\n button,\r\n color,\r\n depth,\r\n fixedTitle12,\r\n linkWithoutVisited,\r\n listReset,\r\n mq,\r\n safeFocusRemoval,\r\n textBody1,\r\n transition,\r\n} from '_utils/styles';\r\n\r\nexport const CampaignNavigationContainer = styled.section`\r\n background: ${({ theme }) => theme.campaignNavigation.container.background};\r\n border-bottom: 1px solid;\r\n border-color: ${({ theme }) => theme.campaignNavigation.container.borderColor};\r\n left: 0;\r\n line-height: ${({ theme }) => theme.typography.text.fixedBody14.lineHeight}px;\r\n position: ${({ editMode, isSticky }) => !editMode && isSticky ? 'sticky' : 'relative'};\r\n right: 0;\r\n top: ${({ editMode, isSticky }) => !editMode && isSticky ? '-1px' : '0'};\r\n z-index: ${depth.CAMPAIGN_NAVIGATION};\r\n\r\n @media print {\r\n display: none;\r\n }\r\n\r\n &.isScrollingUp {\r\n top: ${({ theme }) => theme.pageHeader.height.xs}px;\r\n\r\n ${mq('md')} {\r\n top: ${({ editMode, isSticky, theme }) => !editMode && isSticky && `${theme.pageHeader.height.md}px`};\r\n\r\n }\r\n }\r\n`;\r\n\r\nexport const CampaignName = styled.div`\r\n ${fixedTitle12}\r\n background: ${({ theme }) => theme.campaignNavigation.campaignName.background};\r\n color: ${({ theme }) => theme.campaignNavigation.campaignName.color};\r\n padding: 4px 0;\r\n`;\r\n\r\nexport const LinkItem = styled(Link)`\r\n display: flex;\r\n\r\n a {\r\n ${textBody1}\r\n ${({ theme }) => spacing({ theme, px: { xs: `8px`, md: `12px` } })};\r\n border-bottom: 0;\r\n color: ${({ theme }) => theme.campaignNavigation.linkItem.color};\r\n flex-grow: 1;\r\n font-weight: bold;\r\n line-height: 68px;\r\n position: relative;\r\n text-decoration: none;\r\n white-space: nowrap;\r\n }\r\n\r\n a:hover {\r\n background-color: ${({ theme }) => theme.campaignNavigation.linkItem.hover.background};\r\n color: ${({ theme }) => theme.campaignNavigation.linkItem.hover.color};\r\n }\r\n\r\n a:not(:active):focus {\r\n ${safeFocusRemoval}\r\n outline: 2px solid ${({ theme }) => theme.campaignNavigation.linkItem.focus.outline};\r\n outline-offset: -3px;\r\n }\r\n\r\n a:active {\r\n ${safeFocusRemoval}\r\n background-color: ${({ theme }) => theme.campaignNavigation.linkItem.active.background};\r\n\r\n }\r\n\r\n ${mq('md')} {\r\n a {\r\n line-height: inherit;\r\n }\r\n }\r\n\r\n .active &:after {\r\n background-color: ${({ theme }) => theme.campaignNavigation.linkItem.activeAfter.background};\r\n bottom: -2px;\r\n content: '';\r\n height: 4px;\r\n left: 50%;\r\n position: absolute;\r\n transform: translate(-50%, -50%);\r\n width: 100%;\r\n }\r\n\r\n`;\r\n\r\nexport const Gradient = styled.span`\r\n background: linear-gradient(90deg, ${({ theme }) => theme.campaignNavigation.gradient.background} 0%, rgba(247, 247, 247, 0) 100%);\r\n content: '';\r\n pointer-events: none;\r\n height: 68px;\r\n left: 0;\r\n position: absolute;\r\n top: 0;\r\n opacity: 0;\r\n transition: ${transition('opacity', 'fast')};\r\n width: 64px;\r\n will-change: opacity;\r\n\r\n ${mq('md')} {\r\n width: 80px;\r\n }\r\n\r\n &.visible {\r\n opacity: 1;\r\n z-index: 1;\r\n }\r\n\r\n &.end {\r\n background: linear-gradient(270deg, ${({ theme }) => theme.campaignNavigation.gradient.end.background} 0%, rgba(247, 247, 247, 0) 100%);\r\n left: auto;\r\n right: 0;\r\n }\r\n`;\r\n\r\nexport const NavigationContainer = styled.nav`\r\n display: flex;\r\n position: relative;\r\n min-width: 0;\r\n width: 100%;\r\n\r\n ${mq.lessThan('md')} {\r\n border-bottom: 1px solid ${({ theme }) => theme.campaignNavigation.navigation.borderColor};\r\n }\r\n `;\r\n\r\nexport const LinkList = styled.ul`\r\n ${listReset}\r\n display: flex;\r\n flex-wrap: nowrap;\r\n justify-content: flex-start;\r\n line-height: 68px;\r\n overflow-x: auto;\r\n overflow-y: hidden;\r\n position: relative;\r\n width: 100%;\r\n\r\n ${mq.lessThan('md')} {\r\n li:first-child {\r\n padding-left: ${({ theme }) => theme.grid.gutter.size.xs}px;\r\n }\r\n\r\n li:last-child {\r\n padding-right: ${({ theme }) => theme.grid.gutter.size.xs}px;\r\n }\r\n overflow-y: hidden;\r\n }\r\n\r\n ${mq('md')} {\r\n align-items: center;\r\n\r\n /* change the thinkness of the scrollbar here*/\r\n &::-webkit-scrollbar {\r\n width: 8px;\r\n height: 8px;\r\n box-shadow: inset 0 0 8px rgba(0,0,0,0);\r\n -webkit-border-radius: 8px;\r\n border-radius: 8px;\r\n }\r\n /* add a shadow to the scrollbar here*/\r\n &::-webkit-scrollbar-track {\r\n box-shadow: inset 0 0 0px rgba(0,0,0,0);\r\n -webkit-border-radius: 8px;\r\n border-radius: 8px;\r\n }\r\n\r\n /* this is the little scrolly dealio in the bar*/\r\n &::-webkit-scrollbar-thumb {\r\n border-radius: 8px;\r\n background: ${({ theme }) => theme.campaignNavigation.navigation.borderColor};\r\n height: 3px;\r\n }\r\n\r\n /* scrollbar corner*/\r\n &::-webkit-scrollbar-corner {\r\n display: none;\r\n height: 0px;\r\n width: 0px;\r\n }\r\n }\r\n\r\n li {\r\n position: relative;\r\n }\r\n`;\r\n\r\nexport const GridContainer = styled(Grid.Container)`\r\n ${mq.lessThan('md')} {\r\n margin: 0 -${({ theme }) => theme.grid.gutter.size.xs}px;\r\n padding-right: 0;\r\n }\r\n`;\r\n\r\nexport const GridRow = styled(Grid.Row)`\r\n ${mq.lessThan('md')} {\r\n width: calc(100% + 20px);\r\n }\r\n`;\r\n\r\nexport const GridItem = styled(Grid.Item)`\r\n display: flex;\r\n flex-direction: column;\r\n\r\n ${mq.lessThan('md')} {\r\n padding: 0;\r\n }\r\n\r\n ${mq('md')} {\r\n flex-direction: row;\r\n /* flex-wrap: nowrap; */\r\n padding: 0;\r\n }\r\n`;\r\n\r\n\r\nexport const LinkButton = styled(Link)`\r\n border-bottom: 0;\r\n ${({ theme }) => spacing({ theme, my: { xs: 2, md: 0 }, ml: { md: 3 }, px: { xs: `${theme.grid.gutter.size.xs}px`, md: 0 } })};\r\n width: 100%;\r\n\r\n ${mq('md')} {\r\n align-items: center;\r\n display: flex;\r\n width: auto;\r\n }\r\n\r\n a {\r\n ${button('slim', 'primary')}\r\n width: 100%;\r\n\r\n ${mq('md')} {\r\n ${button('default', 'primary')}\r\n width: auto;\r\n white-space: nowrap;\r\n }\r\n\r\n &:visited {\r\n color: ${({ theme }) => theme.campaignNavigation.linkButton.visited.color};\r\n\r\n &:hover {\r\n background-color: inherit;\r\n }\r\n }\r\n\r\n &:focus:visited {\r\n background-color: inherit;\r\n }\r\n }\r\n`;\r\n","import canUseDOM from 'exenv';\r\nimport { compose } from 'ramda'\r\nimport React, { useEffect, useMemo, useRef, useState } from 'react'\r\nimport { useDebouncedCallback } from 'use-debounce';\r\n\r\nimport { withDataSourceValidation, withEditMode, withCoveoNoIndexTags } from '_containers/BaseComponent'\r\n\r\nimport { Grid } from '_utils/components/';\r\nimport { stickyfill } from '_utils/styles';\r\n\r\nimport { CampaignNavigationProps } from './definitions';\r\n\r\nimport { campaignNavigationFieldValidators } from './validation';\r\n\r\nimport {\r\n CampaignName,\r\n CampaignNavigationContainer,\r\n Gradient,\r\n GridContainer,\r\n GridItem,\r\n GridRow,\r\n LinkButton,\r\n LinkItem,\r\n LinkList,\r\n NavigationContainer,\r\n} from './StyledCampaignNavigation';\r\n\r\nexport const campaignNavigationStaticClassname = 'campaign-navigation';\r\n\r\nconst CampaignNavigation: React.FC = ({ editMode, data }) => {\r\n \r\n const campaignCTA = data?.campaignCta;\r\n const campaignName = data?.campaignName;\r\n const campaignNavigationStickyRef = useRef(null);\r\n const currentPageId = data?.currentPageId;\r\n const links = data?.links;\r\n const numberLinks = links && links?.length || 0;\r\n const listRef = useRef(null);\r\n const startGradientRef = useRef(null);\r\n const endGradientRef = useRef(null);\r\n const activeLinkRef = useRef(null);\r\n\r\n const [isSticky, setSticky] = useState(false);\r\n const [isScrollUp, setScrollUp] = useState(false);\r\n\r\n let timeout;\r\n let horizontalTimeout;\r\n\r\n const toggleGradientMasking = () => {\r\n // left gradient end mask\r\n const scrollThreshold = 20;\r\n\r\n if (listRef?.current?.scrollLeft > scrollThreshold) {\r\n startGradientRef?.current?.classList.add('visible');\r\n } else {\r\n startGradientRef?.current?.classList.remove('visible');\r\n }\r\n\r\n // right gradient end mask\r\n if (listRef?.current?.scrollLeft <\r\n (listRef?.current?.scrollWidth - (listRef?.current?.getBoundingClientRect().width)\r\n - scrollThreshold)) {\r\n endGradientRef?.current?.classList.add('visible');\r\n } else {\r\n endGradientRef?.current?.classList.remove('visible');\r\n }\r\n };\r\n\r\n let initialScrollPos = 0;\r\n const handleScroll = () => {\r\n if (timeout) {\r\n window.cancelAnimationFrame(timeout);\r\n }\r\n\r\n timeout = window.requestAnimationFrame(() => {\r\n const pageHeader = canUseDOM && document.getElementsByTagName('header')[0];\r\n const pageHeaderHeight = pageHeader?.getBoundingClientRect().height;\r\n\r\n setScrollUp((canUseDOM && document.body.getBoundingClientRect().top) > initialScrollPos);\r\n initialScrollPos = canUseDOM && document.body.getBoundingClientRect().top;\r\n\r\n if (pageHeaderHeight >= 0) {\r\n setSticky(window.scrollY >= pageHeaderHeight);\r\n }\r\n });\r\n }\r\n\r\n const handleHorizontalScroll = () => {\r\n if (horizontalTimeout) {\r\n window.cancelAnimationFrame(horizontalTimeout);\r\n }\r\n horizontalTimeout = window.requestAnimationFrame(() => {\r\n toggleGradientMasking();\r\n });\r\n }\r\n\r\n const renderLinks = useMemo(() => {\r\n return links.map(link => {\r\n // LinkItem(NavLink) expects obj\r\n const linkObj = {\r\n value: { ...link }\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n )\r\n })\r\n }, [currentPageId, links]);\r\n\r\n\r\n useEffect(() => {\r\n if (!canUseDOM) {\r\n return;\r\n }\r\n // add vertical scroll listener to window\r\n window.addEventListener('scroll', handleScroll, false);\r\n stickyfill.add(campaignNavigationStickyRef?.current ?? []);\r\n\r\n return () => {\r\n // remove vertical scroll listener to window\r\n window.removeEventListener('scroll', handleScroll, false);\r\n stickyfill.remove(campaignNavigationStickyRef?.current ?? []);\r\n };\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!canUseDOM) {\r\n return;\r\n }\r\n\r\n // scroll the nav list so active link positioned in the middle of the screen\r\n if (listRef?.current && activeLinkRef?.current) {\r\n const activeLeftEl = activeLinkRef.current.getBoundingClientRect();\r\n const listLeftEl = listRef.current.getBoundingClientRect();\r\n const offset = activeLeftEl.left + (activeLeftEl.width / 2) - (listLeftEl.width / 2);\r\n listRef.current.scrollLeft = offset;\r\n }\r\n\r\n // add horizontal scroll listener to nav list\r\n if (listRef?.current) {\r\n listRef.current.addEventListener('scroll', handleHorizontalScroll, false);\r\n }\r\n return () => {\r\n // remove horizontal scroll listener to nav list\r\n if (listRef?.current) {\r\n listRef.current.removeEventListener('scroll', handleHorizontalScroll, false);\r\n }\r\n };\r\n\r\n }, []);\r\n\r\n // apply gradient masking on window size change\r\n const debouncedHandleResize = useDebouncedCallback(toggleGradientMasking, 500);\r\n\r\n useEffect(() => {\r\n if (!canUseDOM ||\r\n !listRef?.current ||\r\n !endGradientRef?.current) {\r\n return;\r\n }\r\n\r\n window.addEventListener('resize', debouncedHandleResize.callback);\r\n\r\n return () => {\r\n window.removeEventListener('resize', debouncedHandleResize.callback);\r\n };\r\n }, []);\r\n\r\n // Add pageheader height in the style \r\n const scrollUpPageHeaderStyle = (isScrollUp && isSticky) ? \"isScrollingUp\" : '';\r\n \r\n const linkType = (!campaignCTA?.href?.length) ? \"\" : (campaignCTA?.href?.indexOf(\"://\") > 0 || campaignCTA?.href?.indexOf(\"//\") === 0) ? \"external\" : \"internal\";\r\n \r\n return !editMode && numberLinks < 1 ? null : (\r\n \r\n {\r\n campaignName && (\r\n \r\n {campaignName} \r\n )\r\n }\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n {renderLinks}\r\n \r\n \r\n \r\n {campaignCTA &&\r\n \r\n }\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default compose(withDataSourceValidation(campaignNavigationFieldValidators, false), withEditMode, withCoveoNoIndexTags)(CampaignNavigation);\r\n","import { SitecoreFieldValidator } from '_utils/validationChecks/definitions';\r\nimport { isValidUrl } from '_utils/validationChecks';\r\n\r\nexport const campaignNavigationFieldValidators: SitecoreFieldValidator[] = [\r\n {\r\n field: 'data.campaignName',\r\n errorMessage: 'Campaign Name is required',\r\n required: true\r\n },\r\n {\r\n field: 'data.links',\r\n errorMessage: 'At least one navigation link must be provided',\r\n minLength: 1\r\n }\r\n];\r\n","import React from 'react';\r\nimport { NavLink, Link as ReactLink } from 'react-router-dom';\r\nimport styled, { css } from 'styled-components';\r\nimport { MOTION_SPEED_FAST } from '_containers/Theme/global';\r\n\r\nimport {\r\n button,\r\n buttonReset,\r\n depth,\r\n fixedTitle14,\r\n fixedTitle16,\r\n fixedTitle18,\r\n ie,\r\n listReset,\r\n mq,\r\n safeFocusRemoval,\r\n svg,\r\n textBody1\r\n} from '_utils/styles';\r\nimport { spacing } from '_utils/props';\r\n\r\n\r\nexport const Nav = styled.nav`\r\n background-color: ${({ theme }) => theme.mainMenu.container.backgroundPrimary};\r\n display: inline-grid;\r\n flex-direction: column;\r\n height: 100%;\r\n left: 0;\r\n opacity: 0;\r\n overflow: hidden;\r\n pointer-events: auto;\r\n position: fixed;\r\n top: 0;\r\n transform: translateX(100%);\r\n transition: transform ${() => `${MOTION_SPEED_FAST}ms`} cubic-bezier(0.42, 0, 0.59, 1);\r\n /* delay to allow menu transition bw mobile/table opposite sides of screen */\r\n transition-delay: opacity .1s;\r\n width: 100%;\r\n z-index: ${depth.MENU};\r\n\r\n &.menu-active {\r\n opacity: 1;\r\n transform: translateX(0);\r\n }\r\n\r\n margin-top: 0px;\r\n\r\n ${mq('md')} {\r\n height: 100%;\r\n min-height: auto;\r\n overflow: visible;\r\n overflow-y: auto;\r\n scrollbar-width: thin;\r\n scrollbar-color: rgba(225, 225, 225, 0.1) ${({ theme }) => theme.mainMenu.container.backgroundPrimary};\r\n position: absolute;\r\n transform: translateX(-100%);\r\n width: 100%;\r\n margin-top: 60px;\r\n }\r\n\r\n ${mq('lg')} {\r\n width: 1024px;\r\n margin-top: 0;\r\n }\r\n\r\n // hide scrollbars if possible\r\n * {\r\n ::-webkit-scrollbar {\r\n width: 7px;\r\n }\r\n ::-webkit-scrollbar-track {\r\n background: ${({ theme }) => theme.mainMenu.container.backgroundPrimary};\r\n }\r\n ::-webkit-scrollbar-thumb {\r\n background-color: rgba(225, 225, 225, 0.1);\r\n border-radius: 20px;\r\n }\r\n scrollbar-color: rgba(225, 225, 225, 0.1) ${({ theme }) => theme.mainMenu.container.backgroundPrimary};\r\n scrollbar-width: thin;\r\n }\r\n`;\r\n\r\nexport const NavToolbar = styled.div`\r\n ${({ theme }) => spacing({ theme, pl: '20px' })};\r\n border-bottom: 1px solid ${({ theme }) => theme.mainMenu.toolbar.divider};\r\n display: flex;\r\n justify-content: space-between;\r\n min-height: ${({ theme }) => theme.pageHeader.height.xs}px;\r\n position: absolute;\r\n top: 0px;\r\n width: 100%;\r\n\r\n ${ie} {\r\n display: none !important;\r\n }\r\n\r\n ${mq('md')} {\r\n border: 0;\r\n }\r\n\r\n ${mq.lessThan('md')} {\r\n background-color: ${({ theme }) => theme.mainMenu.container.backgroundPrimary};\r\n position: fixed;\r\n z-index: 999;\r\n top: 96px;\r\n }\r\n`;\r\n\r\nexport const NavToolbarControl = styled.div`\r\n display: flex;\r\n flex: 1;\r\n justify-content: flex-start;\r\n\r\n ${mq('md')} {\r\n display: none;\r\n }\r\n`;\r\n\r\nexport const NavToolbarTabs = styled.div`\r\n display: flex;\r\n`;\r\n\r\nexport const NavToolbarTabItem = styled.button`\r\n ${buttonReset};\r\n ${fixedTitle16};\r\n align-items: center;\r\n box-shadow: inset 0px -4px 0px ${({ theme }) => theme.mainMenu.toolbar.activeHighlight};\r\n color: ${({ theme }) => theme.mainMenu.toolbar.color};\r\n color: ${({ theme }) => theme.mainMenu.toolbar.colorActive};\r\n display: flex;\r\n height: 100%;\r\n`;\r\n\r\n\r\nexport const NavToolbarClose = styled.div`\r\n display: flex;\r\n margin-left: auto;\r\n\r\n ${({ submenuActive }) => {\r\n if (submenuActive) {\r\n return css`\r\n ${mq('md')} {\r\n display: none;\r\n }\r\n `;\r\n }\r\n }}\r\n`;\r\n\r\nexport const MenuBody = styled.div`\r\n flex: 1;\r\n`;\r\n\r\nexport const MenuBodyNav = styled.div`\r\n background: ${({ theme }) => theme.mainMenu.container.backgroundPrimary};\r\n min-height: 100%;\r\n`;\r\n\r\n\r\nexport const List = styled.ul`\r\n ${listReset};\r\n ${({ theme }) => spacing({ theme, py: { xs: 4, md: 0 } })};\r\n display: inline-block;\r\n opacity: 1;\r\n overflow-y: auto;\r\n transition: opacity ${() => `${MOTION_SPEED_FAST + 10}ms`};\r\n width: 100%;\r\n\r\n & & {\r\n background: ${({ theme }) =>\r\n theme.mainMenu.container.backgroundSecondary};\r\n opacity: 1;\r\n }\r\n\r\n &.primaryNavigation {\r\n background: ${({ theme }) => theme.mainMenu.container.backgroundPrimary};\r\n height: calc(100% - ${({ theme }) => theme.pageHeader.height.xs + 96}px);\r\n margin-top: ${({ theme }) => theme.pageHeader.height.xs + 96}px;\r\n\r\n ${mq('md')} {\r\n column-count: 2;\r\n height: calc(100% - ${({ theme }) => theme.pageHeader.height.xs}px);\r\n margin-top: ${({ theme }) => theme.pageHeader.height.xs}px;\r\n }\r\n }\r\n`;\r\n\r\nexport const ListWrapper = styled.div`\r\n display: flex;\r\n`;\r\n\r\nexport const SecondaryContainerWrapper = styled.div`\r\n background: ${({ theme }) => theme.mainMenu.container.backgroundSecondary};\r\n display: flex;\r\n flex-direction: column;\r\n min-width: 100%;\r\n\r\n ${mq.lessThan('md')} {\r\n flex-direction: column;\r\n order: 1;\r\n }\r\n\r\n ${mq('md')} {\r\n min-width: 310px;\r\n }\r\n\r\n ${mq('lg')} {\r\n min-width: 342px;\r\n }\r\n`\r\n\r\nexport const PrimaryContainerWrapper = styled.div`\r\n display: flex;\r\n position: relative;\r\n\r\n ${mq.lessThan('md')} {\r\n flex-direction: column\r\n }\r\n`;\r\n\r\nexport const InnerNavWrapper = styled.div`\r\n display: flex;\r\n\r\n ${mq.lessThan('md')} {\r\n flex-direction: column;\r\n overflow-y: auto;\r\n order: 2;\r\n }\r\n`\r\n\r\n\r\nexport const Item = styled.li`\r\n color: ${({ theme }) => theme.mainMenu.item.color};\r\n display: inline-block;\r\n flex: none;\r\n width: 100%;\r\n\r\n\r\n &.loginButton {\r\n ${mq('md')} {\r\n display: none;\r\n }\r\n }\r\n`;\r\n\r\nexport const Link = styled(NavLink)`\r\n ${({ theme }) => spacing({ theme, py: '16px', pl: { xs: '20px', md: 5 }, pr: { xs: '20px', md: 3 } })};\r\n align-items: center;\r\n color: ${({ theme }) => theme.mainMenu.item.color};\r\n display: flex;\r\n flex-wrap: nowrap;\r\n outline: 0;\r\n text-decoration: none;\r\n\r\n body:not(.safe-focus-removal) &:focus {\r\n box-shadow: inset 0 3px 0 0 ${({ theme }) => theme.colors.element.focused}, inset 0 -3px 0 0 ${({ theme }) => theme.colors.element.focused};\r\n outline: 0;\r\n }\r\n\r\n &:focus {\r\n ${safeFocusRemoval};\r\n\r\n body:not(.safe-focus-removal) & {\r\n background-color: ${({ theme }) => theme.mainMenu.item.backgroundActive};\r\n }\r\n\r\n .primaryNavigation & {\r\n body:not(.safe-focus-removal) & {\r\n background-color: ${({ theme }) => theme.mainMenu.item.primaryNavigation.backgroundActive};\r\n }\r\n }\r\n }\r\n\r\n &[href] {\r\n position: relative;\r\n transition: background-color 0.1s linear;\r\n\r\n &:hover,\r\n &:active {\r\n background-color: ${({ theme }) => theme.mainMenu.item.backgroundActive};\r\n\r\n .primaryNavigation & {\r\n background-color: ${({ theme }) => theme.mainMenu.item.primaryNavigation.backgroundActive};\r\n }\r\n }\r\n }\r\n`;\r\n\r\n\r\nexport const LabelWrapper = styled.div`\r\n flex: 1;\r\n`;\r\n\r\nexport const Label = styled.span`\r\n ${fixedTitle16};\r\n color: ${({ theme }) => theme.mainMenu.item.color};\r\n display: inline-flex;\r\n font-weight: bold;\r\n line-height: 1.2 !important;\r\n\r\n ${Link}[href]:active &,\r\n ${Link}[href]:hover & {\r\n color: ${({ theme }) => theme.mainMenu.item.colorHighlight};\r\n }\r\n\r\n ${mq.lessThan('md')} {\r\n ${fixedTitle14}\r\n }\r\n\r\n .primaryNavigation & {\r\n ${mq('md')} {\r\n ${fixedTitle18};\r\n }\r\n\r\n ${mq.lessThan('md')} {\r\n ${fixedTitle16}\r\n }\r\n }\r\n`;\r\n\r\n\r\nexport const LinkEndIcon = styled.div`\r\n ${({ theme }) => spacing({ theme, ml: '16px' })};\r\n ${svg(24, 24)};\r\n flex-shrink: 0;\r\n height: 24px;\r\n width: 24px;\r\n\r\n path {\r\n fill: ${({ theme }) => theme.mainMenu.item.color};\r\n\r\n ${Link}[href]:active &,\r\n ${Link}[href]:hover &,\r\n .submenu-active > a & {\r\n fill: ${({ theme }) => theme.mainMenu.item.colorHighlight};\r\n }\r\n }\r\n\r\n ${({ showOnHover }) => {\r\n if (showOnHover) {\r\n return css`\r\n opacity: 0;\r\n\r\n [href]:hover &,\r\n [href]:focus & {\r\n opacity: 1;\r\n }\r\n `;\r\n }\r\n }}\r\n`;\r\n\r\nexport const MenuCloseButton = styled.button`\r\n ${buttonReset};\r\n align-items: center;\r\n display: flex;\r\n height: 100%;\r\n position: relative;\r\n width: 64px;\r\n\r\n &:before,\r\n &:after {\r\n background-color: ${({ theme }) => theme.mainMenu.toolbar.buttonColor};\r\n content: '';\r\n display: block;\r\n height: 2px;\r\n left: 50%;\r\n position: absolute;\r\n top: 50%;\r\n width: 20px;\r\n }\r\n\r\n &:before {\r\n transform: translate3d(-50%, -50%, 0) rotate(45deg);\r\n }\r\n\r\n &:after {\r\n transform: translate3d(-50%, -50%, 0) rotate(-45deg);\r\n }\r\n\r\n &:hover {\r\n &:before,\r\n &:after {\r\n background-color: ${({ theme }) =>\r\n theme.mainMenu.toolbar.activeHighlight};\r\n }\r\n }\r\n\r\n &:focus {\r\n ${safeFocusRemoval}\r\n outline-color: ${({ theme }) => theme.colors.element.focused};\r\n outline-offset: 2px;\r\n outline-style: solid;\r\n outline-width: 2px;\r\n position: relative;\r\n }\r\n`;\r\n\r\n\r\nexport const ButtonWrapper = styled.div`\r\n ${({ theme }) => spacing({ theme, px: '20px' })};\r\n border-bottom: 1px solid ${({ theme }) => theme.mainMenu.toolbar.divider};\r\n display: flex;\r\n justify-content: space-between;\r\n min-height: ${({ theme }) => theme.pageHeader.height.xs}px;\r\n position: absolute;\r\n top: 0px;\r\n width: 100%;\r\n\r\n ${ie} {\r\n display: none !important;\r\n }\r\n\r\n ${mq('md')} {\r\n border: 0;\r\n }\r\n\r\n ${mq.lessThan('md')} {\r\n background-color: ${({ theme }) => theme.mainMenu.container.backgroundPrimary};\r\n position: fixed;\r\n z-index: 999;\r\n }\r\n`;\r\n\r\nexport const LinkButtonSub = styled(ReactLink)` \r\n ${button('default', 'primary')};\r\n ${textBody1};\r\n width: 100%; \r\n margin: 24px 0;\r\n z-index: 999;\r\n\r\n ${mq('md')} {\r\n display: none;\r\n }\r\n\r\n\r\n path {\r\n fill: ${({ theme }) => theme.internalPageBanner.linkButton.pathFillColor};\r\n }\r\n \r\n\r\n a:focus:before {\r\n outline: 2px solid ${({ theme }) => theme?.internalPageBanner?.outline?.focusColor} !important;\r\n }\r\n\r\n`;","import { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { compose } from 'ramda';\r\nimport React, { forwardRef } from 'react';\r\n\r\nimport NavItem from '_components/NavItem';\r\nimport Icon from '_components/Icon';\r\nimport { withMenuContext } from '_containers/MenuContext';\r\nimport { warnInDev } from '_utils/helpers/dev';\r\nimport { isValidNavLink } from '_utils/validationChecks';\r\n\r\nimport {\r\n MenuItemHandlerProps,\r\n MenuItemProps\r\n} from './definitions';\r\n\r\nimport {\r\n Item,\r\n Label,\r\n LabelWrapper,\r\n Link,\r\n LinkEndIcon,\r\n} from './StyledMainMenu';\r\n\r\nconst MenuItem = forwardRef(\r\n ({\r\n item,\r\n menuActive,\r\n onBlur,\r\n onFocus,\r\n onItemClick,\r\n tabIndex,\r\n }, ref) => {\r\n if (!item) {\r\n return null;\r\n }\r\n\r\n let label = item.title?.value || item?.link?.text || '';\r\n\r\n // nullify links without urls\r\n const link = isValidNavLink(item) ? item.link : null;\r\n\r\n // only create handlers if we have a link\r\n const handlers: MenuItemHandlerProps = link\r\n ? {\r\n 'aria-hidden': !menuActive,\r\n 'aria-expanded': menuActive,\r\n onBlur,\r\n onClick: onItemClick,\r\n onFocus,\r\n onKeyDown: () => { },\r\n tabIndex: tabIndex,\r\n target: item?.link?.target || ''\r\n }\r\n : null;\r\n\r\n return (\r\n \r\n \r\n {label && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n);\r\n\r\nconst MenuItemWrapper = forwardRef(\r\n ({\r\n enabledItemRefs,\r\n enabledItemsIndex,\r\n item,\r\n keyPrefix,\r\n menuActive,\r\n onBlur,\r\n onItemClick,\r\n onItemFocus,\r\n }, ref) => {\r\n if (!item) {\r\n return null;\r\n }\r\n const currentRef = enabledItemRefs?.current[enabledItemsIndex];\r\n\r\n if (!currentRef) {\r\n warnInDev(`Link does not have valid url: ${item?.title?.value}`);\r\n return null;\r\n }\r\n\r\n const classList = [];\r\n\r\n if (item?.className) {\r\n classList.push(item.className);\r\n }\r\n\r\n return (\r\n \r\n \r\n {\r\n onItemFocus(e, enabledItemsIndex, -1)\r\n }}\r\n onItemClick={onItemClick}\r\n ref={ref}\r\n tabIndex={menuActive ? 0 : -1}\r\n />\r\n \r\n \r\n );\r\n },\r\n);\r\n\r\nconst MenuItemList = ({\r\n enabledItemRefs,\r\n getEnabledItemsIndex,\r\n keyPrefix,\r\n menuActive,\r\n menuItems,\r\n onItemBlur,\r\n onItemClick,\r\n onItemFocus,\r\n}) => menuItems.map((item, index) => {\r\n\r\n const enabledItemsIndex = getEnabledItemsIndex(item);\r\n\r\n const enabledItemProps =\r\n enabledItemsIndex > -1\r\n ? {\r\n ref: enabledItemRefs?.current[enabledItemsIndex]?.uid,\r\n onItemFocus: onItemFocus,\r\n onBlur: onItemBlur\r\n }\r\n : {};\r\n\r\n return (\r\n \r\n );\r\n});\r\n\r\nexport default compose(withSitecoreContext(), withMenuContext)(MenuItemList);\r\n\r\n","import { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { compose } from 'ramda';\r\nimport React, { createRef, useCallback, useEffect, useRef, useState } from 'react';\r\n\r\nimport { MOTION_SPEED_FAST } from '_containers/Theme/global';\r\nimport { withMenuContext } from '_containers/MenuContext';\r\nimport { isValidNavLink } from '_utils/validationChecks'\r\nimport { MenuProps } from './definitions';\r\nimport MenuItemList from './MenuItemList';\r\nimport {\r\n List\r\n} from './StyledMainMenu';\r\nimport { useTimer } from '_utils/hooks';\r\n// https://www.w3.org/TR/wai-aria-practices/examples/menu-button/menu-button-links.html\r\n\r\nconst Menu: React.FC = ({\r\n activeMenu,\r\n children,\r\n className,\r\n fields,\r\n menuActive,\r\n menuID,\r\n navigationItems,\r\n setMenuActive\r\n}) => {\r\n const datasource = fields?.data?.datasource;\r\n const [navigation] = navigationItems;\r\n\r\n const primaryItems = navigation?.links ?? [];\r\n let enabledMenuItems = primaryItems;\r\n const mainNavRef = useRef();\r\n // focused element index - the first value is parent index, second is child index\r\n const [focusItemIndex, setFocusItemIndex] = useState([-1, -1]);\r\n const { setTimer } = useTimer();\r\n const [transitioning, setTransitioning] = useState(false);\r\n\r\n // return all primary menu items that have a valid links\r\n const getAllEnabledItems = useCallback(() => {\r\n return enabledMenuItems.filter((item) => isValidNavLink(item));\r\n }, [enabledMenuItems, primaryItems]);\r\n\r\n // get valid primary menus and return valid child links\r\n const getAllEnabledChildItems = getAllEnabledItems().map((item) => {\r\n const childLinks = item?.secondaryNavigation || [];\r\n const enabledChildLinks = childLinks.map((el) => {\r\n if (el?.groupSecondarylinks.length) {\r\n return el?.groupSecondarylinks.filter((groupLink) => isValidNavLink(groupLink));\r\n } else {\r\n return isValidNavLink(el) ? el : [];\r\n }\r\n }).flat();\r\n\r\n // If there are valid child links, prepend the parent link\r\n return enabledChildLinks.length ? [item, ...enabledChildLinks] : [];\r\n });\r\n\r\n // store array of enabled menu item refs inside another ref\r\n const enabledItemRefs = useRef(getAllEnabledItems().map((item, index) => {\r\n return {\r\n uid: createRef(),\r\n children: getAllEnabledChildItems[index].map(() => createRef())\r\n }\r\n }));\r\n\r\n const focusFirstItem = () => {\r\n if (document.body && document.body.classList.contains('safe-focus-removal')) {\r\n // dont highlight item if menu was opened with mouse\r\n return;\r\n }\r\n\r\n if (enabledItemRefs?.current && enabledItemRefs.current.length) {\r\n // Find first visible\r\n const firstAnchor: HTMLAnchorElement = document.querySelector(\".magazineLink a\");\r\n firstAnchor?.focus()\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n const currentNavClasses = mainNavRef?.current?.classList;\r\n if (menuActive && activeMenu === menuID) {\r\n currentNavClasses.add('transition-in');\r\n setTimer(() => {\r\n focusFirstItem();\r\n currentNavClasses.add('isActive');\r\n currentNavClasses.remove('transition-in');\r\n setTransitioning(false);\r\n }, MOTION_SPEED_FAST + 10);\r\n } else if (menuActive && activeMenu !== menuID) {\r\n setFocusItemIndex([-1, -1]);\r\n }\r\n return () => {\r\n currentNavClasses.remove('isActive');\r\n }\r\n }, [menuActive, activeMenu]);\r\n\r\n\r\n const onItemClick = () => {\r\n setMenuActive(false);\r\n };\r\n\r\n const onParentItemClick = (e) => {\r\n if (e.type === 'keydown') {\r\n // Keyboard event 'enter' will open submenus\r\n if (e.keyCode === 13) {\r\n e.preventDefault();\r\n\r\n }\r\n return;\r\n }\r\n\r\n e.preventDefault();\r\n\r\n };\r\n\r\n const resetMenu = (e) => {\r\n e.preventDefault();\r\n setFocusItemIndex([-1, -1]);\r\n setMenuActive(false);\r\n };\r\n\r\n const onItemFocus = (e, enabledItemsIndex, enabledItemsChildIndex) => {\r\n if (transitioning) {\r\n return;\r\n }\r\n if (!menuActive) {\r\n setMenuActive(true);\r\n }\r\n setFocusItemIndex([enabledItemsIndex, enabledItemsChildIndex]);\r\n };\r\n\r\n const onItemBlur = () => {\r\n setFocusItemIndex([-1, -1]);\r\n };\r\n\r\n\r\n const onKeyDown = (e, focusItemIndex, enabledItemRefs) => {\r\n if (!menuActive || focusItemIndex[0] === -1 || !enabledItemRefs || !enabledItemRefs?.current.length) {\r\n return;\r\n }\r\n\r\n // focusItemIndex is [parent-index, child-index], a '-1' index means its not open/active\r\n // work out where the focus is to define which index to increase/decrease\r\n const parentIndex = focusItemIndex[0];\r\n const childIndex = focusItemIndex[1];\r\n const isChildNav = !!(childIndex >= 0);\r\n const hasChildNav = enabledItemRefs?.current[parentIndex]?.children.length;\r\n const targetIndex = isChildNav ? childIndex : parentIndex;\r\n\r\n const currentFocusGroup = isChildNav ? enabledItemRefs?.current[parentIndex].children.map(({ current }) => current) : enabledItemRefs?.current.map(({ uid }) => uid.current);\r\n\r\n const prevIndex = targetIndex === 0 ? currentFocusGroup.length - 1 : targetIndex - 1;\r\n const nextIndex = targetIndex === currentFocusGroup.length - 1 ? 0 : targetIndex + 1;\r\n\r\n if (e && e.keyCode === 35) {\r\n e.preventDefault();\r\n // END\r\n if (currentFocusGroup[currentFocusGroup.length - 1]) {\r\n currentFocusGroup[currentFocusGroup.length - 1].focus();\r\n }\r\n } else if (e && e.keyCode === 36) {\r\n e.preventDefault();\r\n // HOME\r\n if (currentFocusGroup[0]) {\r\n currentFocusGroup[0].focus();\r\n }\r\n } else if (e && e.keyCode === 38) {\r\n e.preventDefault();\r\n // UP\r\n if (currentFocusGroup[prevIndex]) {\r\n currentFocusGroup[prevIndex].focus();\r\n }\r\n } else if (e && e.keyCode === 40) {\r\n e.preventDefault();\r\n // DOWN\r\n if (currentFocusGroup[nextIndex]) {\r\n currentFocusGroup[nextIndex].focus();\r\n }\r\n } else if (e && e.keyCode === 39) {\r\n e.preventDefault();\r\n // RIGHT\r\n if (currentFocusGroup[nextIndex]) {\r\n // if right key on parent item\r\n if (!isChildNav && hasChildNav) {\r\n enabledItemRefs?.current[parentIndex].children[0].current.focus();\r\n } else {\r\n currentFocusGroup[nextIndex].focus();\r\n }\r\n }\r\n } else if (e && e.keyCode === 37) {\r\n e.preventDefault();\r\n // LEFT\r\n if (currentFocusGroup[nextIndex]) {\r\n // if left key on parent item\r\n if (isChildNav) {\r\n enabledItemRefs?.current[parentIndex].uid.current.focus();\r\n } else {\r\n currentFocusGroup[nextIndex].focus();\r\n }\r\n }\r\n }\r\n };\r\n\r\n const getEnabledItemsIndex = (item) => getAllEnabledItems().indexOf(item);\r\n const getEnabledItemsChildIndex = (parentIndex, item) => getAllEnabledChildItems[parentIndex].indexOf(item);\r\n\r\n if (!datasource) {\r\n return null;\r\n }\r\n\r\n return (\r\n onKeyDown(e, focusItemIndex, enabledItemRefs)}\r\n >\r\n {children}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default compose(withSitecoreContext(), withMenuContext)(Menu);\r\n","import React from 'react';\r\n\r\nimport { getDictionaryItem } from '_utils/data/dictionaryItem';\r\n\r\nimport Menu from './Menu';\r\nimport {\r\n ListWrapper,\r\n MenuCloseButton,\r\n NavToolbar,\r\n NavToolbarClose,\r\n NavToolbarControl,\r\n NavToolbarTabItem,\r\n NavToolbarTabs,\r\n PrimaryContainerWrapper,\r\n ButtonWrapper,\r\n LinkButtonSub\r\n} from './StyledMainMenu';\r\n\r\nimport { NavigationProps } from \"./definitions\";\r\n\r\nconst PrimaryNavigation: React.FC = ({\r\n fields,\r\n isSticky,\r\n navigationItems,\r\n resetMenu\r\n}) => {\r\n const menuLabel = getDictionaryItem('menu-label', 'Menu');\r\n const menuSubscribeLabel = getDictionaryItem('menu-button-subscribe-to-newsletter', 'Subscribe to newsletter');\r\n const subscribeToNewsletterLink = fields?.data?.datasource?.subscribeToNewsletterLink?.jss?.value?.href || '/';\r\n\r\n return (\r\n \r\n \r\n \r\n {menuSubscribeLabel}\r\n \r\n \r\n \r\n \r\n {menuLabel}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default PrimaryNavigation;","import { Link as ReactRouterLink} from 'react-router-dom';\r\nimport { Image as SCImage } from '@sitecore-jss/sitecore-jss-react';\r\nimport styled from 'styled-components';\r\nimport {\r\n button,\r\n headingH5,\r\n linkWithoutVisited,\r\n mq,\r\n textBody1,\r\n textBody2,\r\n} from '_utils/styles';\r\nimport {\r\n Grid,\r\n Link,\r\n} from '_utils/components';\r\nimport { spacing } from '_utils/props';\r\n\r\nexport const MagazineContainer = styled.div`\r\n display: inline-block;\r\n background: ${({ theme }) => theme.mainMenu.container.backgroundSecondary};\r\n`\r\n\r\nexport const Container = styled.div`\r\n margin-top: 32px; \r\n\r\n ${mq('lg')} {\r\n margin-top: 48px;\r\n }\r\n\r\n ${mq.lessThan('md')} {\r\n margin-top: 0;\r\n }\r\n \r\n &.hide-on-mobile {\r\n ${mq.lessThan('md')} {\r\n display: none;\r\n }\r\n }\r\n `;\r\n\r\nexport const PageContainer = styled(Grid.Container)`\r\n ${({ theme }) => spacing({ theme, pr: '20px', py: 1 })};\r\n display: inline-block;\r\n\r\n ${mq('md')} {\r\n ${({ theme }) => spacing({ theme, pl: '40px', py: 2, })};\r\n }\r\n`;\r\n\r\nexport const ContentWrapper = styled.div`\r\n align-items: flex-start;\r\n display: flex;\r\n justify-content: flex-start;\r\n width: 100%;\r\n ${({ theme }) => spacing({ theme, mt: 3 })};\r\n`\r\n\r\nexport const CoverImageWrapper = styled.figure`\r\n float: left;\r\n margin: 0;\r\n\r\n ${({ theme }) => spacing({ theme, mr: 3 })};\r\n`;\r\n\r\nexport const CoverImage = styled(SCImage)`\r\n font-family: 'object-fit: cover;';\r\n height: auto;\r\n object-fit: cover;\r\n width: auto;\r\n max-width: 92px;\r\n\r\n /* applies to magazine cover image to avoids blurry edges */\r\n image-rendering: -webkit-optimize-contrast;\r\n\r\n ${mq.lessThan('md')} {\r\n margin-top: unset;\r\n }\r\n`\r\n\r\nexport const Divider = styled.div`\r\n ${({ theme }) => spacing({ theme, my: '40px', })};\r\n border-bottom: 1px solid ${({ theme }) => theme.mainMenu.secondaryNavigation.divider};\r\n\r\n ${mq.lessThan('md')} {\r\n ${({ theme }) => spacing({ theme, my: '20px', })};\r\n }\r\n`\r\nexport const Title = styled.h5`\r\n ${headingH5}\r\n color: ${({ theme }) => theme.magazineBanner.title.color};\r\n font-weight: 900;\r\n text-align: left;\r\n`;\r\n\r\nexport const ComponentLabel = styled.span`\r\n ${textBody2}\r\n color: ${({ theme }) => theme.mainMenu.magazine.color};\r\n`;\r\n\r\n\r\nexport const LinkWrapper = styled.a``\r\n\r\nexport const LinkButton = styled(Link)`\r\n margin-left: auto;\r\n ${({ theme }) => spacing({ theme, mt: 3 })}\r\n\r\n a {\r\n ${linkWithoutVisited}\r\n ${button('slim', 'tertiaryDark')};\r\n border-radius: 2px;\r\n box-shadow: 0 0 0 2px;\r\n display: inline-block;\r\n font-weight: 800;\r\n line-height: 20px;\r\n position: relative;\r\n\r\n &:hover {\r\n color: ${({ theme }) => theme.mainMenu.magazine.color};\r\n }\r\n\r\n &:focus {\r\n border: none;\r\n box-shadow: 0 0 0 3px;\r\n outline: none;\r\n text-decoration: none;\r\n }\r\n\r\n &:focus::before {\r\n border: none !important;\r\n }\r\n\r\n &:focus-within {\r\n text-decoration: none;\r\n outline: none;\r\n }\r\n\r\n ${mq.lessThan('md')} {\r\n width: 100%;\r\n }\r\n }\r\n\r\n ${mq.lessThan('md')} {\r\n ${({ theme }) => spacing({ theme, mt: 4 })};\r\n float: unset;\r\n margin-left: unset;\r\n }\r\n`;\r\n\r\nexport const VisitCorporateSiteCTA = styled(LinkButton)`\r\n ${({ theme }) => spacing({ theme, mx: '20px', mb: 5, mt: 0 })};\r\n\r\n ${mq('md')} {\r\n display: none;\r\n }\r\n`\r\n\r\nexport const IconWrapper = styled.span`\r\n margin-right: 9px;\r\n\r\n svg {\r\n width: 17px;\r\n }\r\n`;\r\n\r\n\r\nexport const ButtonWrapper = styled.div``;\r\n\r\nexport const LinkButtonSub = styled(ReactRouterLink)` \r\n ${button('default', 'primary')};\r\n ${textBody1};\r\n width: 100%; \r\n margin-bottom: 12px;\r\n\r\n ${mq('lg')} {\r\n margin-bottom: 32px;\r\n }\r\n\r\n ${mq.lessThan('md')} {\r\n display: none;\r\n }\r\n\r\n path {\r\n fill: ${({ theme }) => theme.internalPageBanner.linkButton.pathFillColor};\r\n }\r\n \r\n a:focus:before {\r\n outline: 2px solid ${({ theme }) => theme?.internalPageBanner?.outline?.focusColor} !important;\r\n }\r\n\r\n`;","import React from 'react';\r\nimport { Text } from '@sitecore-jss/sitecore-jss-react';\r\nimport { getDictionaryItem } from '_utils/data/dictionaryItem';\r\nimport { ImageSize } from '_utils/types/enums';\r\nimport {\r\n createSrcSet,\r\n} from '_utils/media';\r\n\r\nimport {\r\n ComponentLabel,\r\n Container,\r\n ContentWrapper,\r\n CoverImage,\r\n CoverImageWrapper,\r\n Divider,\r\n LinkButton,\r\n PageContainer,\r\n Title,\r\n ButtonWrapper,\r\n LinkButtonSub\r\n} from \"./StyledMagazine\";\r\n\r\nimport { MagazineProps } from \"./definitions\";\r\n\r\nconst Magazine: React.FC = ({\r\n componentLabel,\r\n coverImage,\r\n ctaLabel,\r\n editMode,\r\n link,\r\n title,\r\n subscribeToNewsletterLink,\r\n resetMenu\r\n}) => {\r\n const menuSubscribeLabel = getDictionaryItem('menu-button-subscribe-to-newsletter', 'Subscribe to newsletter');\r\n\r\n return (\r\n <>\r\n \r\n \r\n {menuSubscribeLabel}\r\n \r\n \r\n <Text\r\n field={{ value: title }}\r\n editable={false}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n {componentLabel}\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default Magazine;","import React from 'react';\r\n\r\nimport Icon from '_components/Icon';\r\nimport { getDictionaryItem } from '_utils/data/dictionaryItem';\r\n\r\nimport Menu from './Menu';\r\nimport Magazine from './Magazine';\r\nimport {\r\n SecondaryContainerWrapper,\r\n} from './StyledMainMenu';\r\n\r\nimport { NavigationProps } from \"./definitions\";\r\nimport { IconWrapper, VisitCorporateSiteCTA } from './StyledMagazine';\r\n\r\nconst SecondaryNavigation: React.FC = ({\r\n activeMenu,\r\n fields,\r\n isSticky,\r\n navigationItems,\r\n resetMenu\r\n}) => {\r\n // Get Magazine data\r\n const datasource = fields?.data?.datasource;\r\n const magazine = datasource?.globalMagazineShowcase?.targetItem;\r\n const magazineCoverImage = magazine?.latestMagazine?.targetItem?.coverImage?.jss;\r\n const magazineDescription = magazine?.primaryNavDescription?.value;\r\n const magazineUrl = magazine?.latestMagazine?.targetItem?.url?.jss?.value;\r\n const magazineCtaLabel = magazine?.ctaLabel?.value;\r\n const magazineTitle = magazine?.componentLabel?.value;\r\n const visitCpaAustraliaLabel = getDictionaryItem('visit-cpa-australia-label', 'Visit CPA Australia');\r\n const subscribeToNewsletterLink = fields?.data?.datasource?.subscribeToNewsletterLink?.jss?.value?.href || '/';\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default SecondaryNavigation;","import { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { canUseDOM } from 'exenv';\r\nimport { compose } from 'ramda';\r\nimport React, { useEffect, useRef, useState } from 'react';\r\n\r\nimport { MOTION_SPEED_FAST } from '_containers/Theme/global';\r\nimport { withMenuContext } from '_containers/MenuContext';\r\n\r\nimport { enableBodyScroll, disableBodyScroll } from '_utils/helpers';\r\nimport { usePrevious, useTimer } from '_utils/hooks';\r\n\r\nimport { MenuProps } from './definitions';\r\nimport {\r\n InnerNavWrapper,\r\n Nav,\r\n} from './StyledMainMenu';\r\nimport PrimaryNavigation from './PrimaryNavigation';\r\nimport SecondaryNavigation from './SecondaryNavigation';\r\n\r\n\r\n// https://www.w3.org/TR/wai-aria-practices/examples/menu-button/menu-button-links.html\r\n\r\nconst MainMenu: React.FC = ({\r\n activeMenu,\r\n fields,\r\n isSticky,\r\n menuActive,\r\n setActiveMenu,\r\n setMenuActive,\r\n}) => {\r\n const datasource = fields?.data?.datasource;\r\n // Get navigation data\r\n const getNavigation = datasource?.navigation;\r\n if (!getNavigation) {\r\n console.error(\"Main navigation not configured\");\r\n return null;\r\n };\r\n const getNavigationItem = (navigationName: string) => {\r\n return getNavigation?.filter((item) => item?.name === navigationName);\r\n };\r\n\r\n const containerRef = useRef();\r\n const prevMenuActive = usePrevious(menuActive);\r\n // focused element index - the first value is parent index, second is child index\r\n const { setTimer, cancelTimer } = useTimer();\r\n // TODO determine if/where this needs to be added\r\n const [transitioning, setTransitioning] = useState(false);\r\n\r\n // focus listener effect:\r\n // 1. auto focus first menu item when menu opened\r\n // 2. close menu if focused element is outside of menu\r\n useEffect(\r\n () => {\r\n const container = containerRef.current;\r\n const overflowElements = [containerRef.current, ...container.getElementsByTagName('ul')];\r\n\r\n const focusListener = (e) => {\r\n let target: HTMLElement = e.target;\r\n\r\n if (target && target.id === 'menu-button' || target && target.id === 'dashboard-menu-button') {\r\n return;\r\n }\r\n\r\n // iterate through parents until we find menu container or no more\r\n while (target) {\r\n if (target === container) {\r\n // found menu container, bail\r\n return;\r\n }\r\n // move up to next parent\r\n target = target.parentNode as HTMLElement;\r\n }\r\n // focus outside, close menu\r\n setMenuActive(false);\r\n };\r\n\r\n // add/remove listener when menu opened/closed\r\n if (menuActive && !prevMenuActive) {\r\n setTransitioning(true);\r\n setTimer(() => {\r\n document.body.addEventListener('focus', focusListener, true);\r\n setTransitioning(false);\r\n }, MOTION_SPEED_FAST + 10);\r\n\r\n disableBodyScroll(overflowElements, {\r\n reserveScrollBarGap: true\r\n });\r\n // without setImmediate effect clean up runs immediately\r\n } else if (!menuActive && prevMenuActive) {\r\n document.body.removeEventListener('focus', focusListener, true);\r\n enableBodyScroll(overflowElements);\r\n setTransitioning(true);\r\n\r\n setTimer(() => {\r\n setTransitioning(false);\r\n }, MOTION_SPEED_FAST + 10);\r\n }\r\n\r\n // clean up\r\n return () => {\r\n cancelTimer();\r\n enableBodyScroll(overflowElements);\r\n document.body.removeEventListener('focus', focusListener, true);\r\n };\r\n },\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n [menuActive]\r\n );\r\n\r\n const resetMenu = (e) => {\r\n e.preventDefault();\r\n setMenuActive(false);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {/*
    hello worl
    */}\r\n \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default compose(withSitecoreContext(), withMenuContext)(MainMenu);\r\n","import styled from 'styled-components';\r\n\r\nimport { spacing } from '_utils/props';\r\nimport {\r\n button,\r\n focusOutline,\r\n hideOnPrint,\r\n iconColorOnPrint,\r\n inputReset,\r\n mq,\r\n svg,\r\n textBody1,\r\n} from '_utils/styles';\r\n\r\nexport const Form = styled.form`\r\n align-items: center;\r\n display: flex;\r\n height: 100%;\r\n position: relative;\r\n width: 100%;\r\n background-color: ${({ theme }) => theme.mainSearch.backgroundActive};\r\n\r\n ${hideOnPrint}\r\n`;\r\n\r\nexport const InputWrapper = styled.div`\r\n align-items: center;\r\n background-color: ${({ theme }) => theme.mainSearch.backgroundActive};\r\n border: ${({ theme }) => theme.mainSearch.border};\r\n border-right-style: none;\r\n display: flex;\r\n height: 100%;\r\n justify-content: center;\r\n transition:\r\n width ${({ theme }) => theme.motion.timing.fast} ${({ theme }) => theme.motion.ease},\r\n border-color ${({ theme }) => theme.motion.timing.fast} ${({ theme }) => theme.motion.ease},\r\n background-color ${({ theme }) => theme.motion.timing.fast} ${({ theme }) => theme.motion.ease};\r\n width: 100%;\r\n\r\n .search--focused & {\r\n background-color: ${({ theme }) => theme.mainSearch.backgroundActive};\r\n border: ${({ theme }) => theme.mainSearch.borderActive};\r\n border-right: none;\r\n }\r\n\r\n ${mq.lessThan('md')} {\r\n background-color: ${({ theme }) => theme.mainSearch.background};\r\n border: ${({ theme }) => theme.mainSearch.border};\r\n border-radius: ${({ theme }) => theme.mainSearch.inputBorderRadiusLessThanMd};\r\n\r\n .search--focused & {\r\n background-color: ${({ theme }) => theme.mainSearch.backgroundActive};\r\n border: ${({ theme }) => theme.mainSearch.borderActive};\r\n }\r\n }\r\n`;\r\n\r\nexport const Input = styled.input`\r\n ${inputReset}\r\n ${textBody1}\r\n\r\n border: 1px solid transparent; // Prevent shifting of input when border outline is applied to InputWrapper\r\n height: 100%;\r\n margin: 0;\r\n outline: 0;\r\n text-overflow: ellipsis;\r\n width: 100%;\r\n\r\n .search--focused & {\r\n ${mq('md')} {\r\n border: none; // Prevent shifting of input when border outline is applied to InputWrapper\r\n }\r\n }\r\n\r\n ${({ theme }) => spacing({ theme, pl: { xs: 0, md: '16px' }, pr: { xs: '18px', md: 0 } })}\r\n\r\n /*\r\n Hiding browser supplied \"X\" button for type=\"search\" inputs.\r\n We roll our own cross-browser clear input button.\r\n */\r\n &::-webkit-search-cancel-button,\r\n &::-webkit-search-decoration {\r\n -webkit-appearance: none;\r\n appearance: none;\r\n }\r\n\r\n &::-ms-clear {\r\n display: none;\r\n }\r\n\r\n /* As the input is not full width, tap highlight color is misaligned and jarring. This removes it in favor of the focus outline. */\r\n -webkit-tap-highlight-color: rgba(0,0,0,0);\r\n`;\r\n\r\nexport const ClearButton = styled.button`\r\n ${button('default', 'text')}\r\n\r\n align-items: center;\r\n border-radius: 0;\r\n display: flex;\r\n height: 100%;\r\n justify-content: center;\r\n padding: 0px 24px 0px 12px;\r\n width: 24px;\r\n\r\n body:not(.safe-focus-removal) &:focus {\r\n &:before {\r\n ${focusOutline}\r\n border-radius: ${({ theme }) => theme.mainSearch.clear.borderRadius} !important;\r\n content: '';\r\n height: calc(100% + ${({ theme }) => theme.mainSearch.clear.height}) !important;\r\n left: ${({ theme }) => theme.mainSearch.clear.left} !important;\r\n margin-top: -1px;\r\n outline-color: ${({ theme }) => theme.mainSearch.outlineColour} !important;\r\n top: ${({ theme }) => theme.mainSearch.clear.top} !important;\r\n width: calc(100% + ${({ theme }) => theme.mainSearch.clear.width}) !important;\r\n z-index: 1;\r\n }\r\n }\r\n`;\r\n\r\nexport const ClearIcon = styled.span`\r\n ${svg(14, 14)}\r\n flex: none;\r\n width: 24px;\r\n path {\r\n fill: ${({ theme }) => theme.mainSearch.clear.iconFill};\r\n }\r\n\r\n ${iconColorOnPrint}\r\n`;\r\n\r\nexport const SubmitWrapper = styled.div`\r\n height: 100%;\r\n border: ${({ theme }) => theme.mainSearch.border};\r\n border-left: none;\r\n .search--focused & {\r\n background-color: ${({ theme }) => theme.mainSearch.backgroundActive};\r\n border: ${({ theme }) => theme.mainSearch.borderActive};\r\n border-left: none;\r\n }\r\n`\r\n\r\nexport const Submit = styled.button`\r\n ${button('default', 'primary')}\r\n\r\n // fix false positive from Pally eval as #FFF\r\n color: #FFF;\r\n align-items: center;\r\n background-color: ${({ theme }) => theme.mainSearch.submit.backgroundActive};\r\n display: flex;\r\n height: 48px;\r\n justify-content: center;\r\n min-width: ${({ theme }) => theme.mainSearch.submit.minWidth};\r\n margin: 6px 24px 6px 0;\r\n outline: 0;\r\n\r\n /* Submit focus outline style */\r\n body:not(.safe-focus-removal) &:focus {\r\n \r\n &:before {\r\n ${focusOutline}\r\n content: '';\r\n height: calc(100% + ${({ theme }) => theme.mainSearch.submit.height}) !important;\r\n left: ${({ theme }) => theme.mainSearch.submit.left} !important;\r\n outline-color: ${({ theme }) => theme.mainSearch.outlineColour} !important;\r\n position: absolute;\r\n top: ${({ theme }) => theme.mainSearch.submit.top} !important;\r\n width: calc(100% + ${({ theme }) => theme.mainSearch.submit.width}) !important;\r\n }\r\n }\r\n\r\n ${mq.lessThan('md')} {\r\n display: none;\r\n }\r\n\r\n`;\r\n\r\nexport const IconWrapper = styled.span`\r\n ${svg(24, 24)}\r\n pointer-events: none; // prevent search icon from preventing click on parent button\r\n width: 24px;\r\n margin-left: 24px;\r\n path {\r\n fill: ${({ theme }) => theme.mainSearch.submit.iconFill};\r\n }\r\n\r\n ${Submit}:hover &,\r\n ${Submit}:active &,\r\n .search--focused & {\r\n path {\r\n fill: ${({ theme }) => theme.mainSearch.submit.iconFill} !important;\r\n\r\n ${iconColorOnPrint}\r\n }\r\n }\r\n`;\r\n","import { canUseDOM } from 'exenv';\r\nimport React, {\r\n FC,\r\n useEffect,\r\n useState,\r\n} from 'react';\r\nimport { useHistory, useLocation } from 'react-router-dom';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport Icon from '_components/Icon';\r\nimport ScreenReader from '_utils/components/ScreenReader';\r\nimport { buildSearchUrl } from '_utils/helpers';\r\n\r\n\r\nimport { MainSearchProps } from './definitions';\r\n\r\nimport {\r\n ClearButton,\r\n ClearIcon,\r\n Form,\r\n IconWrapper,\r\n Input,\r\n InputWrapper,\r\n SubmitWrapper,\r\n Submit\r\n} from './StyledMainSearch';\r\n\r\nconst ESCAPE_KEY_CODE = 27;\r\n\r\nconst MainSearch: FC = ({\r\n inputRef,\r\n placeholder,\r\n onSubmit = () => { },\r\n}) => {\r\n const [t] = useTranslation();\r\n const history = useHistory();\r\n const [focused, setFocused] = useState(false);\r\n\r\n const location = useLocation();\r\n const { search, pathname } = location || {};\r\n const searchParams = new URLSearchParams(search);\r\n const currentUrlSearchTerm = searchParams.get('term');\r\n const [searchTerm, setSearchTerm] = useState(currentUrlSearchTerm || '');\r\n\r\n if (!placeholder) {\r\n placeholder = t('search-placeholder-text');\r\n }\r\n\r\n const handleKeyDown = (e) => {\r\n if (e.keyCode === ESCAPE_KEY_CODE) {\r\n setSearchTerm('');\r\n }\r\n };\r\n\r\n const handlePressClear = (e) => {\r\n if (e) {\r\n e.preventDefault();\r\n }\r\n\r\n setSearchTerm('');\r\n };\r\n\r\n const handleSubmit = (e) => {\r\n if (e) {\r\n e.preventDefault();\r\n }\r\n\r\n if (onSubmit) {\r\n onSubmit()\r\n }\r\n\r\n if (searchTerm) {\r\n history.push(buildSearchUrl(\r\n { term: searchTerm, page: 1 }),\r\n // store where search was triggered from\r\n { from: (canUseDOM && document?.title) ?? '' }\r\n );\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (pathname !== buildSearchUrl({})) {\r\n setSearchTerm('');\r\n }\r\n }, [pathname]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {\r\n setSearchTerm(e.target.value)\r\n }}\r\n onFocus={() => setFocused(true)}\r\n onBlur={() => setFocused(false)}\r\n onKeyDown={handleKeyDown}\r\n aria-label=\"Search\"\r\n value={searchTerm}\r\n />\r\n {searchTerm && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n setFocused(true)}\r\n onBlur={() => setFocused(false)}\r\n >\r\n \r\n {t('search-accessible-search-button-label')}\r\n \r\n Search\r\n \r\n \r\n\r\n \r\n );\r\n};\r\n\r\nexport default MainSearch;\r\n","import React, { useState, useEffect } from 'react';\r\nimport styled, { css } from 'styled-components';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport { withMenuContext } from '_containers/MenuContext';\r\nimport { MOTION_SPEED_FAST } from '_containers/Theme/global';\r\n\r\nimport MenuIcon from '_utils/icons/material/Menu';\r\nimport LoginIcon from '_utils/icons/material/Login';\r\nimport PermIdentityIcon from '_utils/icons/material/PermIdentity';\r\nimport { useTimer } from '_utils/hooks';\r\nimport { spacing } from '_utils/props';\r\nimport {\r\n buttonReset,\r\n depth,\r\n fixedTitle18,\r\n hideOnPrint,\r\n mq,\r\n safeFocusRemoval,\r\n} from '_utils/styles';\r\n\r\nimport { MenuButtonProps } from './definitions';\r\n\r\nconst buttonStyles = css`\r\n ${buttonReset};\r\n ${safeFocusRemoval};\r\n align-items: center;\r\n display: flex;\r\n flex-shrink: 0;\r\n font-weight: ${({ theme }) => theme.pageHeader.menu.fontWeight};\r\n height: 100%;\r\n justify-content: center;\r\n position: relative;\r\n min-width: 64px;\r\n z-index: ${depth.MENU_BUTTON};\r\n\r\n &#menu-button {\r\n ${mq('lg')} {\r\n ${({ theme }) => spacing({ theme, ml: theme.pageHeader.menu.button.paddingLeft })};\r\n }\r\n }\r\n\r\n &#dashboard-menu-button {\r\n ${({ theme }) => spacing({ theme, ml: 3, mr: 'auto' })}\r\n\r\n ${mq.between('md', 'lg')} {\r\n ${({ theme }) => spacing({ theme, ml: theme.pageHeader.menu.dashboardMenuButton.marginLeft })}\r\n }\r\n\r\n ${mq.lessThan('md')} {\r\n display: none;\r\n }\r\n }\r\n\r\n &:focus {\r\n ${safeFocusRemoval}\r\n outline-color: ${({ theme }) => theme.colors.element.focused};\r\n outline-offset: 2px;\r\n outline-style: solid;\r\n outline-width: 2px;\r\n position: relative;\r\n }\r\n ${hideOnPrint}\r\n\r\n ${mq('md')} {\r\n ${({ theme }) => spacing({ theme, ml: 5, px: '12px' })}\r\n }\r\n\r\n ${mq('lg')} {\r\n ${fixedTitle18};\r\n }\r\n\r\n &:after {\r\n background: ${({ theme }) => theme.colors.element.focused};\r\n bottom: -1px;\r\n content: '';\r\n height: 6px;\r\n left: 0;\r\n opacity: 0;\r\n position: absolute;\r\n transition: opacity ${({ theme }) => theme.motion.timing.fast};\r\n width: 100%;\r\n }\r\n\r\n &[aria-expanded='true']:after {\r\n opacity: 1;\r\n }\r\n`;\r\n\r\nconst Button = styled.button`\r\n ${buttonStyles};\r\n\r\n ${mq('md')} {\r\n ${({ theme }) => spacing({ theme, ml: theme.pageHeader.menu.md.marginLeft })};\r\n }\r\n`;\r\n\r\nconst StyledLink = styled.a`\r\n ${buttonStyles};\r\n`;\r\n\r\nconst IconWrapper = styled.span`\r\n ${mq('md')} {\r\n margin-right: 11px;\r\n }\r\n`;\r\n\r\nconst Label = styled.span`\r\n color: ${({ theme }) => theme.pageHeader.headerColor};\r\n display: none;\r\n\r\n ${mq('md')} {\r\n display: block;\r\n }\r\n`;\r\n\r\nconst MenuButton: React.FC = ({\r\n activeMenu,\r\n iconName,\r\n id,\r\n link,\r\n menuActive,\r\n setActiveMenu,\r\n setMenuActive,\r\n target,\r\n targetMenu,\r\n title,\r\n}) => {\r\n const [t] = useTranslation();\r\n const [enabled, setEnabled] = useState(true);\r\n const { setTimer, cancelTimer } = useTimer();\r\n\r\n // clean up\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n useEffect(() => cancelTimer(), []);\r\n\r\n const onClickHandler = () => {\r\n if (!enabled) {\r\n return;\r\n }\r\n\r\n if (!menuActive) {\r\n setMenuActive(true);\r\n setActiveMenu(targetMenu);\r\n }\r\n\r\n if (menuActive && targetMenu === activeMenu) {\r\n setMenuActive(false);\r\n }\r\n\r\n if (menuActive && targetMenu !== activeMenu) {\r\n setActiveMenu(targetMenu);\r\n }\r\n\r\n setEnabled(false);\r\n\r\n setTimer(() => {\r\n setEnabled(true);\r\n }, MOTION_SPEED_FAST + 10);\r\n }\r\n\r\n const onFocusHandler = () => {\r\n if (!enabled) {\r\n return;\r\n }\r\n\r\n if (menuActive && targetMenu === activeMenu) {\r\n setEnabled(false);\r\n setMenuActive(false);\r\n }\r\n\r\n setTimer(() => {\r\n setEnabled(true);\r\n }, MOTION_SPEED_FAST + 10);\r\n }\r\n\r\n const map = {\r\n \"menu\": ,\r\n \"perm_identity\": ,\r\n \"login\": \r\n }\r\n\r\n const renderIcon = (iconName) => map[iconName];\r\n\r\n return (\r\n <>\r\n {\r\n !!(link) ? (\r\n \r\n \r\n {renderIcon(iconName)}\r\n \r\n \r\n \r\n ) : (\r\n onClickHandler()}\r\n onFocus={() => onFocusHandler()}\r\n >\r\n \r\n {renderIcon(iconName)}\r\n \r\n \r\n \r\n )\r\n }\r\n \r\n );\r\n};\r\n\r\nexport default withMenuContext(MenuButton);\r\n","import { Link } from 'react-router-dom';\r\nimport styled, { css } from 'styled-components';\r\n\r\nimport {\r\n spacing,\r\n transitions,\r\n} from '_utils/props';\r\nimport {\r\n caption2,\r\n depth,\r\n mq,\r\n showOnPrint,\r\n svg,\r\n button,\r\n textBody1\r\n} from '_utils/styles';\r\n\r\nexport const SkipContainer = styled.div`\r\n background-color: ${({ theme }) => theme.pageHeader.skipContainer.background};\r\n height: 0;\r\n left: 0;\r\n position: absolute;\r\n right: 0;\r\n top: -9999px;\r\n transition: height 0.1s linear;\r\n z-index: ${depth.HEADER + 1};\r\n\r\n &.skipActive {\r\n height: 40px;\r\n top: 0;\r\n }\r\n`;\r\n\r\nexport const SkipLink = styled.a`\r\n ${caption2}\r\n ${({ theme }) => spacing({ theme, px: 1, mt: `6px` })}\r\n\r\n &:focus {\r\n outline: 2px solid ${({ theme }) => theme.pageHeader.skipLink.focus.outlineColor};\r\n }\r\n\r\n color: ${({ theme }) => theme.pageHeader.skipLink.color};\r\n display: inline-block;\r\n line-height: 28px !important;\r\n opacity: 0;\r\n transition: opacity 0.2s linear;\r\n\r\n .skipActive & {\r\n opacity: 1;\r\n }\r\n`;\r\n\r\nexport const PageHeaderWrapper = styled.div`\r\n height: ${({ theme }) => theme.pageHeader.height.xs}px;\r\n position: ${({ editMode, sticky }) => editMode || !sticky ? 'relative' : 'fixed'};\r\n top: ${({ editMode }) => editMode ? '0' : '-1px'};\r\n z-index: ${depth.HEADER};\r\n width: 100vw;\r\n ${mq('md')} {\r\n height: ${({ theme }) => theme.pageHeader.height.md}px;\r\n }\r\n\r\n @media print {\r\n position: static;\r\n }\r\n\r\n ${mq.lessThan('md')} {\r\n ${({ theme }) => !theme.pageHeader.position.stickyOnMobile && 'position: relative'};\r\n }\r\n`\r\n\r\nexport const PageHeaderWrapperSec = styled.div`\r\n height: 60px;\r\n position: fixed;\r\n top: 73px ;\r\n z-index: ${depth.HEADER};\r\n width: 100vw;\r\n ${mq('lg')} {\r\n display: none;\r\n }\r\n\r\n ${mq('md')} {\r\n height: 60px;\r\n }\r\n\r\n @media print {\r\n position: static;\r\n }\r\n\r\n ${mq.lessThan('md')} {\r\n display: none;\r\n position: relative;\r\n }\r\n`\r\n\r\nexport const StyledPageHeader = styled.header`\r\n background-color: ${({ theme }) => theme.pageHeader.background};\r\n border-bottom: 1px solid ${({ theme }) => theme.pageHeader.borderColor};\r\n width: 100%;\r\n z-index: ${depth.HEADER};\r\n`;\r\n\r\nexport const PageHeaderContent = styled.div`\r\n ${({ theme }) => spacing({ theme, pl: { xs: `${theme.grid.gutter.size.xs}px`, md: 3 }, pr: { xs: 0, md: 3 } })}\r\n ${({ theme }) => transitions({ theme, transition: 'height' })};\r\n\r\n align-items: center;\r\n display: flex;\r\n height: ${({ theme }) => theme.pageHeader.height.xs}px;\r\n justify-content: space-between;\r\n\r\n ${mq('md')} {\r\n height: ${({ theme }) => theme.pageHeader.height.md}px;\r\n\r\n \r\n ${({ sticky, pageDisplayCampaignNavigation }) => {\r\n if (sticky && !pageDisplayCampaignNavigation) {\r\n return css`\r\n height: ${({ theme }) => theme.pageHeader.height.fixed}px; \r\n `;\r\n }\r\n }}\r\n }\r\n`;\r\n\r\nexport const LogoLink = styled(Link)`\r\n line-height: 0;\r\n ${showOnPrint}\r\n`;\r\n\r\nexport const LogoWrapper = styled.span`\r\n ${svg(92, 40)}\r\n flex: none;\r\n width: 92px;\r\n\r\n ${({ theme }) => transitions({ theme, transition: 'width' })};\r\n\r\n ${mq('md')} {\r\n ${({ theme }) => svg(theme.pageHeader.logo.svg.md.width, theme.pageHeader.logo.svg.md.height)};\r\n width: ${({ theme }) => theme.pageHeader.logo.svg.md.width}px;\r\n }\r\n\r\n ${mq('lg')} {\r\n ${({ theme }) => (theme?.pageHeader?.logo?.svg?.lg?.width && theme?.pageHeader?.logo?.svg?.lg?.height) ? svg(theme?.pageHeader?.logo?.svg?.lg?.width, theme?.pageHeader?.logo?.svg?.lg?.height) : null};\r\n width: ${({ theme }) => (theme?.pageHeader?.logo?.svg?.lg?.width) ? `${theme?.pageHeader?.logo?.svg?.lg?.width}px` : undefined};\r\n }\r\n\r\n ${({ sticky, pageDisplayCampaignNavigation }) => {\r\n if (sticky && !pageDisplayCampaignNavigation) {\r\n return css`\r\n ${mq('md')} {\r\n ${svg(110, 48)}\r\n width: 110px;\r\n }\r\n\r\n ${mq('lg')} {\r\n ${({ theme }) => (theme?.pageHeader?.logo?.svg?.sticky?.lg?.width && theme?.pageHeader?.logo?.svg?.lg?.height) ? svg(theme?.pageHeader?.logo?.svg?.sticky?.lg?.width, theme?.pageHeader?.logo?.svg?.lg?.height) : null};\r\n width: ${({ theme }) => (theme?.pageHeader?.logo?.svg?.sticky?.lg?.width) ? `${theme?.pageHeader?.logo?.svg?.sticky?.lg?.width}px` : undefined};\r\n }\r\n `;\r\n }\r\n }}\r\n`;\r\n\r\nconst calcMenuOffset = (bp: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'fixed' = 'xs', extra = 0) => ({\r\n theme,\r\n beforeRootSpace\r\n}) => {\r\n const offset = theme.pageHeader.height[bp] + beforeRootSpace + extra;\r\n\r\n return css`\r\n height: calc(100% - ${offset}px);\r\n top: ${offset}px;\r\n `;\r\n};\r\n\r\nexport const MenuContainer = styled.div`\r\n // height: 100%;\r\n left: 0;\r\n overflow: hidden;\r\n pointer-events: none;\r\n position: fixed;\r\n // top: 0;\r\n width: 100%;\r\n z-index: ${depth.MENU};\r\n\r\n height: calc(100% - ${153}px);\r\n top: ${153}px;\r\n\r\n ${mq('md')} {\r\n ${calcMenuOffset('md')}\r\n ${({ isSticky, pageDisplayCampaignNavigation }) => isSticky && !pageDisplayCampaignNavigation ? calcMenuOffset('fixed') : false}\r\n }\r\n\r\n\r\n &.skipActive {\r\n ${calcMenuOffset('xs', 32)}\r\n\r\n ${mq('md')} {\r\n ${calcMenuOffset('md', 32)}\r\n }\r\n }\r\n`;\r\n\r\nexport const SearchContainer = styled.div`\r\n display: none;\r\n flex: 1 1 auto;\r\n height: 48px;\r\n\r\n ${({ theme }) => spacing({ theme, ml: 3 })}\r\n\r\n ${mq('md')} {\r\n display: block;\r\n flex-grow: 0;\r\n margin-left: auto;\r\n ${({ theme }) => spacing({ theme, pl: theme.pageHeader.searchContainer.md.paddingLeft })};\r\n width: ${({ theme }) => theme.pageHeader.searchContainer.width};\r\n ${({ theme }) => transitions({ theme, transition: 'width' })};\r\n }\r\n\r\n ${({ sticky, pageDisplayCampaignNavigation }) => {\r\n if (sticky && !pageDisplayCampaignNavigation) {\r\n return css`\r\n ${mq.between('md', 'lg')} {\r\n width: ${({ theme }) => theme.pageHeader.searchContainer.md.width};\r\n }\r\n `;\r\n }\r\n }}\r\n`;\r\n\r\nexport const ITBSearchContainer = styled.div`\r\n display: none;\r\n height: 48px;\r\n ${({ theme }) => spacing({ theme, ml: 3 })}\r\n\r\n ${mq('md')} {\r\n display: flex;\r\n flex-direction: row-reverse;\r\n width: 700px;\r\n ${({ theme }) => spacing({ theme, pl: theme.pageHeader.searchContainer.md.paddingLeft })};\r\n ${({ theme }) => transitions({ theme, transition: 'width' })};\r\n }\r\n\r\n ${({ sticky, pageDisplayCampaignNavigation }) => {\r\n if (sticky && !pageDisplayCampaignNavigation) {\r\n return css`\r\n ${mq.between('md', 'lg')} {\r\n width: ${({ theme }) => theme.pageHeader.searchContainer.md.width};\r\n }\r\n `;\r\n }\r\n }}\r\n`;\r\n\r\nexport const ITBSearchWrapper = styled.div`\r\n flex-grow: 1;\r\n min-width: 150px;\r\n max-width: 430px;\r\n\r\n ${mq('xl')} {\r\n width: 430px;\r\n }\r\n\r\n ${mq.lessThan('lg')} {\r\n display: none\r\n }\r\n\r\n`\r\n\r\n/* block interaction / darken body */\r\nexport const DimContent = styled.div`\r\n background-color: ${({ theme }) => theme.pageHeader.overlayColor};\r\n height: 100%;\r\n left: 0;\r\n opacity: 0.5;\r\n overflow-x: hidden;\r\n pointer-events: auto;\r\n position: absolute;\r\n top: 0;\r\n width: 100%;\r\n z-index: ${depth.MENU_COVER};\r\n`;\r\n\r\n/* block interaction over header */\r\nexport const MenuActiveBlockInteraction = styled.div`\r\n height: 100%;\r\n left: 0;\r\n pointer-events: auto;\r\n position: absolute;\r\n top: 0;\r\n width: 100%;\r\n z-index: ${depth.MENU_BLOCK};\r\n`;\r\n\r\nexport const LinkButton = styled(Link)`\r\n ${({ theme }) => spacing({ theme, mr: { lg: 3, xl: 6} })};\r\n min-width: 210px;\r\n\r\n ${button('default', 'primary')};\r\n \r\n ${textBody1};\r\n margin-bottom: 0;\r\n\r\n path {\r\n fill: ${({ theme }) => theme.internalPageBanner.linkButton.pathFillColor};\r\n }\r\n \r\n\r\n a:focus:before {\r\n outline: 2px solid ${({ theme }) => theme?.internalPageBanner?.outline?.focusColor} !important;\r\n }\r\n\r\n`;\r\n","import { canUseDOM } from 'exenv';\r\nimport { compose } from 'ramda';\r\nimport React, {\r\n FC,\r\n useEffect,\r\n useMemo,\r\n useRef,\r\n useState,\r\n} from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport CampaignNavigation from '_components/CampaignNavigation';\r\nimport MainMenu from '_components/MainMenu';\r\nimport MainMenuInTheBlack from '_components/MainMenuInTheBlack';\r\nimport MainSearch from '_components/MainSearch';\r\nimport TabletMainSearch from './TabletMainSearch';\r\nimport HeaderButton from './HeaderButton';\r\nimport SearchMenuButton from '_components/SearchMenuButton';\r\nimport { withCoveoNoIndexTags, withSitecoreContext } from '_containers/BaseComponent';\r\nimport { withMenuContext } from '_containers/MenuContext';\r\n\r\nimport { getDictionaryItem } from '_utils/data/dictionaryItem';\r\nimport { Portals, getPortal } from '_utils/helpers';\r\nimport { warnInDev } from '_utils/helpers/dev';\r\nimport { isCorporateSite } from '_utils/helpers/render';\r\nimport { stickyfill } from '_utils/styles';\r\n\r\nimport { HeaderProps, SkipLinks } from './definitions';\r\n\r\nimport {\r\n DimContent,\r\n LogoLink,\r\n LogoWrapper,\r\n MenuActiveBlockInteraction,\r\n MenuContainer,\r\n PageHeaderContent,\r\n PageHeaderWrapper,\r\n PageHeaderWrapperSec,\r\n SearchContainer,\r\n ITBSearchContainer,\r\n SkipContainer,\r\n SkipLink,\r\n StyledPageHeader,\r\n LinkButton,\r\n ITBSearchWrapper\r\n} from './StyledPageHeader';\r\nimport AsyncLogo from '_utils/icons/Logo';\r\nimport AsyncLogoInTheBlack from '_utils/icons/LogoITB';\r\n\r\nconst SEARCH_RESULTS_TEMPLATE_NAME = 'Search results page';\r\nconst SEARCH_RESULTS_INTHEBLACK_TEMPLATE_NAME = 'ITB Search Page';\r\n\r\nconst links: SkipLinks = [\r\n {\r\n id: `001-main-nav`,\r\n label: 'main navigation',\r\n dictionaryKey: 'page-header-skip-to-main-navigation-label',\r\n target: 'menu-button'\r\n },\r\n {\r\n id: `002-secondary-nav`,\r\n label: 'secondary navigation',\r\n dictionaryKey: 'page-header-skip-to-secondary-navigation-label',\r\n target: 'secondary-navigation'\r\n },\r\n {\r\n id: `003-main-content`,\r\n label: 'main content',\r\n dictionaryKey: 'page-header-skip-to-content-label',\r\n target: 'main-content'\r\n },\r\n {\r\n id: `004-footer`,\r\n label: 'footer',\r\n dictionaryKey: 'page-header-skip-to-footer-label',\r\n target: 'page-footer'\r\n }\r\n];\r\n\r\nconst PageHeader: FC = ({\r\n fields,\r\n menuActive,\r\n rendering,\r\n setMenuActive,\r\n sitecoreContext,\r\n}) => {\r\n // data to pass to CampaignNavigation component\r\n const currentPageId = sitecoreContext?.route?.itemId;\r\n const campaignNavigationData = { ...fields?.data?.campaignNavigation, currentPageId };\r\n const shouldDisplayCampaignNavigation = campaignNavigationData?.displayCampaignNavigation ?? false;\r\n\r\n // dictionary items\r\n const inTheBlackCpaLinkTitleLabel = getDictionaryItem('page-header-cpa-australia-link-title', 'CPA Australia');\r\n const inTheBlackHomeLinkTitle = getDictionaryItem('page-header-home-link-title', 'Intheblack Homepage');\r\n const corporateHomeLinkTitle = getDictionaryItem('page-header-home-link-title', 'CPA Australia Homepage');\r\n const menuSubscribeLabel = getDictionaryItem('menu-button-subscribe-to-newsletter', 'Subscribe to newsletter');\r\n\r\n // toggle visiblity of breadcrumb if campaign navigation rendered\r\n if (canUseDOM) {\r\n document.body.classList\r\n [\r\n shouldDisplayCampaignNavigation\r\n ? 'add'\r\n : 'remove'\r\n ]\r\n ('hasCampaignNavigation');\r\n }\r\n\r\n const [t] = useTranslation();\r\n const portalRef = useRef(null);\r\n\r\n const [skipActive, setSkipActive] = useState(false);\r\n const [isPageFooterInDom, setIsPageFooterInDom] = useState(false);\r\n const [beforeRootSpace, setBeforeRootSpace] = useState(0);\r\n\r\n const [isSticky, setSticky] = useState(false);\r\n const stickyRef = useRef(null);\r\n\r\n const subscribeToNewsletterLink = fields?.data?.datasource?.subscribeToNewsletterLink?.jss?.value?.href || '/';\r\n\r\n useEffect(() => {\r\n if (portalRef.current === null) {\r\n portalRef.current = getPortal(Portals.before);\r\n }\r\n\r\n const portalRefBottomPos = portalRef.current.getBoundingClientRect().bottom;\r\n\r\n setBeforeRootSpace(\r\n (portalRefBottomPos && portalRefBottomPos < 0)\r\n ? 0\r\n : portalRefBottomPos\r\n );\r\n }, [menuActive]);\r\n\r\n useEffect(() => {\r\n if (!canUseDOM) {\r\n return;\r\n }\r\n\r\n let timeout;\r\n let initialPos = 0;\r\n\r\n const handleScroll = () => {\r\n if (timeout) {\r\n window.cancelAnimationFrame(timeout);\r\n }\r\n\r\n timeout = window.requestAnimationFrame(() => {\r\n const pageHeaderContent = stickyRef?.current?.getBoundingClientRect();\r\n const isScrollDirectionUp = canUseDOM && document.body.getBoundingClientRect().top > initialPos;\r\n initialPos = canUseDOM && document.body.getBoundingClientRect().top;\r\n\r\n if (pageHeaderContent && !shouldDisplayCampaignNavigation) {\r\n setSticky(window.scrollY > 0 && pageHeaderContent.top <= 0);\r\n }\r\n\r\n if (pageHeaderContent && shouldDisplayCampaignNavigation) {\r\n setSticky(window.scrollY > 0 && isScrollDirectionUp);\r\n }\r\n });\r\n }\r\n\r\n window.addEventListener('scroll', handleScroll, false);\r\n handleScroll();\r\n\r\n if (!shouldDisplayCampaignNavigation) {\r\n stickyfill.add(stickyRef?.current ?? []);\r\n }\r\n\r\n return () => {\r\n window.removeEventListener('scroll', handleScroll, false);\r\n stickyfill.remove(stickyRef?.current ?? []);\r\n };\r\n }, []);\r\n\r\n const isSearchRoute: boolean = useMemo(\r\n () => sitecoreContext?.route?.templateName === SEARCH_RESULTS_TEMPLATE_NAME,\r\n [sitecoreContext?.route?.templateName],\r\n );\r\n\r\n const isInTheBlackSearchRoute: boolean = useMemo(\r\n () => sitecoreContext?.route?.templateName === SEARCH_RESULTS_INTHEBLACK_TEMPLATE_NAME,\r\n [sitecoreContext?.route?.templateName],\r\n );\r\n\r\n\r\n const isCorporate = isCorporateSite(sitecoreContext);\r\n const isInTheBlack = !isCorporateSite(sitecoreContext);\r\n const siteSearchSettings = sitecoreContext?.siteSearchSettings;\r\n const searchBackdoorKey = siteSearchSettings?.searchBackdoorKey ?? '';\r\n const searchDisabled = (siteSearchSettings?.searchDisabled ?? false)\r\n && (!canUseDOM || !searchBackdoorKey || window.location.search.indexOf(searchBackdoorKey) === -1);\r\n\r\n const isLoggedIn: boolean = useMemo(\r\n () => !sitecoreContext?.securityInfo?.isAnonymous,\r\n [sitecoreContext?.securityInfo?.isAnonymous],\r\n );\r\n\r\n // A loginUrl must exist for the login menu button to appear\r\n const loginUrl = sitecoreContext?.securityInfo?.loginUrl || '';\r\n\r\n useEffect(() => {\r\n // PageHeader doesn't know when PageFooter is mounted, so poll to check so not missed in skip link\r\n if (window?.MutationObserver) {\r\n let observer = new MutationObserver(() => {\r\n if (document.getElementById('page-footer')) {\r\n observer.disconnect();\r\n setIsPageFooterInDom(true);\r\n }\r\n });\r\n\r\n observer.observe(document.body, {\r\n childList: true,\r\n subtree: true,\r\n attributes: false,\r\n characterData: false,\r\n });\r\n\r\n return () => {\r\n observer.disconnect();\r\n }\r\n }\r\n }, []);\r\n\r\n const renderskipLinks = useMemo(\r\n () =>\r\n links.map(link => {\r\n // target element may not always exists, so suppress render\r\n try {\r\n const el = document.getElementById(link.target);\r\n // fallback if dictionary item is empty\r\n const label = t(link.dictionaryKey) === link.dictionaryKey ? `Skip to ${link.label}` : t(link.dictionaryKey);\r\n\r\n if (el) {\r\n return {\r\n el.focus();\r\n }}\r\n onFocus={() => {\r\n if (window) {\r\n window.scrollTo(0, 0);\r\n }\r\n setSkipActive(true);\r\n }}\r\n onBlur={() => setSkipActive(null)}\r\n >\r\n {label}\r\n \r\n } else {\r\n warnInDev(`SkipTo: ${link.label} suppressed - could not find id ${link.target}`);\r\n }\r\n }\r\n catch (err) {\r\n warnInDev(err);\r\n }\r\n }),\r\n [isPageFooterInDom]\r\n );\r\n\r\n return (\r\n <>\r\n \r\n {renderskipLinks}\r\n \r\n \r\n {\r\n // ESCAPE\r\n if (e.keyCode === 27 && menuActive) {\r\n setMenuActive(false);\r\n }\r\n }}\r\n sticky={!shouldDisplayCampaignNavigation && isSticky && sitecoreContext && !sitecoreContext.pageEditing}\r\n >\r\n \r\n \r\n \r\n {isCorporate ?\r\n \r\n :\r\n \r\n }\r\n \r\n \r\n\r\n {!searchDisabled && !isSearchRoute && !isInTheBlackSearchRoute && (\r\n \r\n )}\r\n\r\n \r\n\r\n {isCorporate && !!(loginUrl) && (\r\n \r\n )}\r\n\r\n {isInTheBlack && (\r\n \r\n )}\r\n\r\n {menuActive && (\r\n setMenuActive(false)}\r\n />\r\n )}\r\n\r\n\r\n {isCorporate && !searchDisabled && !isSearchRoute && !isInTheBlackSearchRoute && (\r\n \r\n \r\n \r\n )}\r\n\r\n {isInTheBlack && !searchDisabled && !isSearchRoute && !isInTheBlackSearchRoute && (\r\n \r\n \r\n \r\n \r\n\r\n {menuSubscribeLabel}\r\n \r\n )}\r\n\r\n \r\n {\r\n menuActive && (\r\n setMenuActive(false)}\r\n />\r\n )\r\n }\r\n\r\n {\r\n canUseDOM && (\r\n isCorporate ?\r\n (\r\n \r\n ) :\r\n (\r\n \r\n )\r\n )\r\n }\r\n \r\n \r\n \r\n \r\n {isInTheBlack && !searchDisabled && !isSearchRoute && !isInTheBlackSearchRoute && (\r\n \r\n \r\n \r\n )}\r\n\r\n {shouldDisplayCampaignNavigation && }\r\n \r\n );\r\n};\r\n\r\nexport default compose(withCoveoNoIndexTags, withSitecoreContext(), withMenuContext)(PageHeader);\r\n","export const getThemeClasses = (params) => {\r\n const removeTopPadding = params?.removeTopPadding || false;\r\n const removeBottomPadding = params?.removeBottomPadding || false;\r\n\r\n const classes = [];\r\n\r\n if (removeTopPadding) {\r\n classes.push('no-pt');\r\n }\r\n if (removeBottomPadding) {\r\n classes.push('no-pb');\r\n }\r\n\r\n return classes.join(' ')\r\n}\r\n","import styled from 'styled-components';\r\n\r\nimport { PlaceholderWrapper } from '_utils/components';\r\n\r\nexport const Wrapper = styled(PlaceholderWrapper)`\r\n clear: both;\r\n padding: 0;\r\n`;\r\n\r\nexport const ShouldShowBorderTop = styled.div`\r\n border-top: 1px solid ${({ theme }) => theme.section.divider.color};\r\n`","import { Placeholder } from '@sitecore-jss/sitecore-jss-react';\r\nimport { compose } from 'ramda';\r\nimport React, { useRef } from 'react';\r\n\r\nimport { withEditMode, withThemeOption } from '_containers/BaseComponent';\r\nimport { excludeThemeColors } from '_containers/Theme/global';\r\n\r\nimport { Section } from '_utils/components';\r\nimport { usePlaceholderHasChildren } from '_utils/hooks';\r\nimport { getThemeClasses } from '_utils/props/theme';\r\nimport { PlaceholderFullWidthProps } from './definitions';\r\nimport { ShouldShowBorderTop, Wrapper } from './StyledPlaceholderFullWidth';\r\n\r\nconst PlaceholderFullWidth: React.FC = ({ rendering, editMode }) => {\r\n const isEmpty = (rendering?.placeholders?.['jss-components-fullwidth'] ?? []).length === 0;\r\n\r\n const isEmptyClassName = !editMode && isEmpty ? 'is-empty' : null;\r\n\r\n const sectionTheme =\r\n (rendering?.params?.placeholderTheme &&\r\n excludeThemeColors.indexOf(rendering?.params?.placeholderTheme.toLowerCase()) === -1)\r\n ? rendering?.params?.placeholderTheme.toLowerCase()\r\n : '';\r\n const backgroundColor = rendering?.params?.backgroundColor;\r\n const defaultClassName = 'default';\r\n\r\n // TODO consolidate into `getThemeClasses` util\r\n const staticClassArray = [];\r\n\r\n if (backgroundColor) {\r\n staticClassArray.push(backgroundColor.toLowerCase());\r\n }\r\n\r\n if (isEmptyClassName) {\r\n staticClassArray.push(isEmptyClassName);\r\n }\r\n\r\n if (sectionTheme) {\r\n staticClassArray.push(sectionTheme);\r\n }\r\n\r\n if (staticClassArray.length === 0) {\r\n staticClassArray.push(defaultClassName);\r\n }\r\n\r\n const staticClasses = staticClassArray.join(' ');\r\n\r\n const rowRef = useRef(null);\r\n\r\n usePlaceholderHasChildren(rowRef)\r\n\r\n return (\r\n \r\n {rendering?.params?.showTopBorder === \"1\" &&\r\n \r\n }\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default compose(withThemeOption, withEditMode)(PlaceholderFullWidth);\r\n","import styled from 'styled-components';\r\n\r\nimport { PlaceholderWrapper } from '_utils/components';\r\n\r\nexport const Wrapper = styled(PlaceholderWrapper)`\r\n clear: both;\r\n`;\r\n","import { Placeholder } from '@sitecore-jss/sitecore-jss-react';\r\nimport { compose } from 'ramda';\r\nimport React, { useRef } from 'react';\r\n\r\nimport { withEditMode, withThemeOption } from '_containers/BaseComponent';\r\nimport { excludeThemeColors } from '_containers/Theme/global';\r\nimport { Section } from '_utils/components';\r\nimport Grid from '_utils/components/Grid';\r\nimport { usePlaceholderHasChildren } from '_utils/hooks';\r\nimport { getThemeClasses } from '_utils/props/theme';\r\nimport { PlaceholderSingleColumnProps } from './definitions';\r\n\r\nimport { Wrapper } from './StyledPlaceholderSingleColumn';\r\n\r\nconst PlaceholderSingleColumn: React.FC = ({ rendering, editMode }) => {\r\n const isEmpty = (rendering?.placeholders?.['jss-components-single-column'] ?? []).length === 0;\r\n const isEmptyClassName = !editMode && isEmpty ? 'is-empty' : null;\r\n\r\n const sectionTheme =\r\n (rendering?.params?.placeholderTheme &&\r\n excludeThemeColors.indexOf(rendering?.params?.placeholderTheme.toLowerCase()) === -1)\r\n ? rendering?.params?.placeholderTheme.toLowerCase()\r\n : '';\r\n\r\n const backgroundColor = rendering?.params?.backgroundColor;\r\n\r\n const defaultClassName = 'default';\r\n\r\n const staticClassArray = [];\r\n\r\n if (backgroundColor) {\r\n staticClassArray.push(backgroundColor.toLowerCase());\r\n }\r\n\r\n if (isEmptyClassName) {\r\n staticClassArray.push(isEmptyClassName);\r\n }\r\n\r\n if (sectionTheme) {\r\n staticClassArray.push(sectionTheme);\r\n }\r\n\r\n if (staticClassArray.length === 0) {\r\n staticClassArray.push(defaultClassName);\r\n }\r\n\r\n const staticClasses = staticClassArray.join(' ');\r\n\r\n const rowRef = useRef(null);\r\n\r\n usePlaceholderHasChildren(rowRef)\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default compose(withThemeOption, withEditMode)(PlaceholderSingleColumn);\r\n","import React, { FC } from 'react';\r\n\r\nconst TimeIcon: FC = (): JSX.Element => {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default TimeIcon;","import styled from 'styled-components';\r\nimport { fixedBody12 } from '_utils/styles';\r\n\r\nexport const ReadingTimeContainer = styled.div`\r\n align-items: center;\r\n column-gap: 9px;\r\n display: flex;\r\n flex-direction: row;\r\n margin-top: 5px;\r\n \r\n & > svg {\r\n fill: ${({ theme }) => theme.showcaseHero.readingTime.colour};\r\n height: 13.33px;\r\n width: 13.33px;\r\n }\r\n`;\r\n\r\nexport const ReadingTimeText = styled.span`\r\n ${fixedBody12}\r\n font-size: 12px;\r\n color: ${({ theme }) => theme.showcaseHero.readingTime.colour};\r\n`;\r\n","import React, { FC } from 'react';\r\n\r\nimport { getDictionaryItem } from '_utils/data/dictionaryItem';\r\n\r\nimport { ShowcaseHeroReadingTimeProps } from './definitions';\r\nimport TimeIcon from './TimeIcon';\r\n\r\nimport {\r\n ReadingTimeContainer,\r\n ReadingTimeText,\r\n} from './StyledShowcaseHeroReadingTime';\r\n\r\nconst ReadingTime: FC = (readingTime): JSX.Element => {\r\n const dictionaryItem = getDictionaryItem('global-read-time', '{minutes} min read time');\r\n const formattedTime = dictionaryItem.replace(/\\{minutes\\}/ig, readingTime?.value ?? '');\r\n\r\n return (\r\n \r\n \r\n {formattedTime}\r\n \r\n )\r\n};\r\n\r\nexport default ReadingTime;","import { Image as SCImage } from '@sitecore-jss/sitecore-jss-react';\r\nimport styled, { css } from 'styled-components';\r\n\r\nimport { Grid } from '_utils/components';\r\n\r\nimport { spacing } from '_utils/props';\r\nimport {\r\n aspect,\r\n avoidPageBreakOnPrint,\r\n fixedTitle14,\r\n fixedTitle16,\r\n headingH2,\r\n mq,\r\n} from '_utils/styles';\r\n\r\nexport const BannerContainer = styled.div`\r\n overflow: hidden;\r\n ${({ theme }) => spacing({ theme, pb: 6 })}\r\n\r\n & a {\r\n text-decoration: none;\r\n\r\n &:hover .headline {\r\n text-decoration: underline;\r\n }\r\n }\r\n\r\n @media print {\r\n background-color: ${({ theme }) => theme.colors.background.tint1};\r\n color: ${({ theme }) => theme.colors.element.neutralBlack};\r\n }\r\n`;\r\n\r\nexport const BannerFeaturedArticle = styled(Grid.Row)`\r\n text-decoration: none;\r\n\r\n ${({ theme }) => spacing({ theme, mb: { md: 3, xs: 5 } })}\r\n`;\r\n\r\nexport const BannerFeaturedArticleImageWrapper = styled(Grid.Item)`\r\n ${({ theme }) => spacing({ theme, mb: { md: 0, xs: 3 } })}\r\n\r\n @media print {\r\n max-width: 50% !important;\r\n }\r\n`;\r\n\r\nexport const BannerFeaturedArticleImage = styled.div`\r\n overflow: hidden;\r\n padding-bottom: 56.25%;\r\n position: relative;\r\n width: 100%;\r\n\r\n ${mq('lg')} {\r\n clip-path: polygon(\r\n 0 0,\r\n 100% 0,\r\n 100% calc(100% - 95px),\r\n 37.5% calc(100% - 95px),\r\n 37.5% 100%,\r\n 0 100%\r\n );\r\n }\r\n`;\r\n\r\n// IE Only - Display a black background for desktop as clip-path is not supported\r\nexport const BannerFeaturedArticleImageIECutout = styled.div`\r\n @media all and (min-width: 1024px) and (-ms-high-contrast: none), (-ms-high-contrast: active) {\r\n bottom: 0;\r\n height: 90px;\r\n position: absolute;\r\n right: 0;\r\n width: 62%;\r\n }\r\n`;\r\n\r\nexport const Image = styled(SCImage)`\r\n font-family: 'object-fit: cover;';\r\n height: 100%;\r\n left: 0;\r\n object-fit: cover;\r\n position: absolute;\r\n right: 0;\r\n top: 0;\r\n width: 100%;\r\n\r\n ${avoidPageBreakOnPrint}\r\n`;\r\n\r\nexport const HeroHeadline = styled.h2`\r\n ${headingH2}\r\n color: ${({ theme }) => theme.showcaseHero.headline.colour};\r\n margin-bottom: 0;\r\n\r\n /* mq specificity required to override default heading margin-bottom */\r\n ${mq('md')} {\r\n margin-bottom: 0;\r\n }\r\n`;\r\n\r\nexport const CategoryText = styled.p`\r\n color: ${({ theme }) => theme.showcaseHero.category.colour};\r\n font-size: 12px;\r\n font-weight: 800;\r\n line-height: normal;\r\n margin-bottom: 0;\r\n margin-top: 6px;\r\n text-transform: uppercase;\r\n`;\r\n\r\nexport const BannerFeaturedArticleText = styled(Grid.Item)`\r\n ${({ theme }) => spacing({ theme, pl: { md: 3, xs: 0 } })}\r\n`;\r\n\r\nexport const BannerArticle = styled(Grid.Item)`\r\n & a {\r\n display: flex;\r\n flex-direction: row;\r\n text-decoration: none;\r\n }\r\n\r\n ${({ theme }) => spacing({ theme, mb: { md: 0, xs: 3 }, pl: { lg: 3, xs: 0 } })}\r\n\r\n ${mq('md')} {\r\n & a {\r\n flex-direction: column;\r\n }\r\n }\r\n\r\n ${mq.lessThan('md')} {\r\n border-top: ${({ theme }) => `1px solid ${theme.showcaseHero.bannerArticle.borderTopColour}`};\r\n padding-top: 16px;\r\n\r\n &:last-child {\r\n margin-bottom: 0;\r\n }\r\n }\r\n\r\n ${avoidPageBreakOnPrint}\r\n`;\r\n\r\nexport const BannerArticleRow = styled(Grid.Row)`\r\n ${mq('md')} {\r\n ${BannerArticle} + ${BannerArticle} {\r\n ${({ theme }) => spacing({ theme, pl: { md: 3, xs: 0 } })}\r\n }\r\n }\r\n\r\n @media all and (min-width: 768px) and (-ms-high-contrast: none), (-ms-high-contrast: active) {\r\n ${BannerArticle} + ${BannerArticle} {\r\n padding-left: 24px;\r\n }\r\n }\r\n\r\n ${mq('lg')} {\r\n margin-top: -95px;\r\n }\r\n\r\n`;\r\n\r\nexport const BannerArticleHeader = styled.div`\r\n ${fixedTitle14}\r\n color: ${({ theme }) => theme.showcaseHero.headline.colour};\r\n flex: 1;\r\n\r\n ${mq('md')} {\r\n ${fixedTitle16}\r\n }\r\n`;\r\n\r\nexport const BannerArticleImage = styled.div`\r\n overflow: hidden;\r\n\r\n ${({ theme }) => spacing({ theme, mb: { md: 2, xs: 0 } })}\r\n\r\n ${mq('md')} {\r\n align-self: auto;\r\n height: 100%;\r\n padding-bottom: 56.25%;\r\n position: relative;\r\n width: 100%;\r\n }\r\n\r\n ${mq.lessThan('md')} {\r\n ${aspect(84, 47)}\r\n align-self: flex-start;\r\n flex-shrink: 0;\r\n height: 100%;\r\n width: 33%;\r\n }\r\n`;\r\n\r\nexport const SubArticleSummary = styled.div`\r\n ${({ theme }) => spacing({ theme, ml: { md: 0, xs: 3 } })}\r\n`;","import { Text } from '@sitecore-jss/sitecore-jss-react';\r\nimport React, { FC } from 'react';\r\nimport { Link } from 'react-router-dom';\r\n\r\nimport { Grid } from '_utils/components';\r\nimport { ImageHeight16by9, ImageSize } from '_utils/types/enums';\r\nimport { createSrcSet } from '_utils/media';\r\nimport { imagePlaceholderSrc } from '_utils/styles';\r\n\r\nimport { BannerProps } from './definitions';\r\nimport ReadingTime from './ShowcaseHeroReadingTime';\r\n\r\nimport {\r\n BannerArticle,\r\n BannerArticleHeader,\r\n BannerArticleImage,\r\n BannerArticleRow,\r\n BannerContainer,\r\n BannerFeaturedArticle,\r\n BannerFeaturedArticleImage,\r\n BannerFeaturedArticleImageIECutout,\r\n BannerFeaturedArticleImageWrapper,\r\n BannerFeaturedArticleText,\r\n CategoryText,\r\n HeroHeadline,\r\n Image,\r\n SubArticleSummary,\r\n} from './StyledShowcaseHero';\r\n\r\nconst Banner: FC = ({\r\n editMode,\r\n handleAnalytics,\r\n items,\r\n uid,\r\n}): JSX.Element => {\r\n const [featuredArticleItem, ...otherArticleItems] = items;\r\n\r\n return (\r\n \r\n \r\n \r\n handleAnalytics('itb-homepage-showcase-hero-1', featuredArticleItem?.url)}\r\n >\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n {featuredArticleItem?.categoryInformation?.categoryLabelText}\r\n \r\n \r\n\r\n \r\n \r\n \r\n {\r\n otherArticleItems.slice(0, 3).map((item, i) => {\r\n\r\n return (\r\n handleAnalytics(`itb-homepage-showcase-hero-${i + 2}`, item?.url)}\r\n >\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n {item?.categoryInformation?.categoryLabelText}\r\n \r\n \r\n \r\n \r\n )\r\n })\r\n }\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Banner;\r\n","import { compose } from 'ramda';\r\nimport React, { FC } from 'react';\r\nimport {\r\n withDataSourceValidation,\r\n withEditMode,\r\n} from '_containers/BaseComponent';\r\nimport { withDigitalDataContext } from '_containers/DigitalDataContext';\r\nimport { emitTrackEvent, setObjectData } from '_utils/helpers/analytics';\r\nimport { normalizeJssFields } from '_utils/helpers/jss';\r\n\r\nimport { ShowcaseHeroFieldValidators } from './validation';\r\n\r\nimport {\r\n BannerProps,\r\n NormalisedShowcaseItem,\r\n ShowcaseHeroProps,\r\n} from './definitions';\r\n\r\nimport Banner from './Banner';\r\n\r\nconst ShowcaseHero: FC = ({\r\n digitalData,\r\n editMode,\r\n rendering,\r\n setDigitalData,\r\n}): JSX.Element | null => {\r\n const targetItems = rendering?.fields?.data?.datasource?.items?.targetItems ?? [];\r\n const normalizedItems: Array = targetItems?.map((item: any) => (normalizeJssFields(item)));\r\n\r\n const handleAnalytics = (linkName: string, linkDestination: string) => {\r\n if (typeof setDigitalData === 'function') {\r\n setDigitalData(\r\n setObjectData(\r\n ['link'],\r\n {\r\n linkName: linkName,\r\n linkDestination: linkDestination,\r\n },\r\n digitalData\r\n )\r\n );\r\n\r\n emitTrackEvent('linkClick');\r\n }\r\n };\r\n\r\n const bannerProps: BannerProps = {\r\n editMode,\r\n handleAnalytics,\r\n items: normalizedItems,\r\n uid: rendering?.uid,\r\n }\r\n const shouldShowBanner = editMode || (normalizedItems?.length > 0);\r\n return shouldShowBanner ? : null;\r\n};\r\n\r\nexport default compose(\r\n withDigitalDataContext,\r\n withEditMode,\r\n withDataSourceValidation(ShowcaseHeroFieldValidators, false),\r\n)(ShowcaseHero);","import { SitecoreFieldValidator } from '_utils/validationChecks/definitions';\r\n\r\nexport const ShowcaseHeroFieldValidators: SitecoreFieldValidator[] = [\r\n {\r\n field: 'rendering.fields.data.datasource.items.targetItems',\r\n errorMessage: 'All 4 In The Black showcase items must be provided',\r\n minLength: 4,\r\n },\r\n {\r\n field: 'rendering.fields.data.datasource.items.targetItems',\r\n errorMessage: 'A maximum of four In The Black showcase items will be displayed, any extra cards will not be displayed',\r\n allowRenderOnError: true,\r\n maxLength: 4,\r\n },\r\n {\r\n field: 'rendering.fields.data.datasource.items.targetItems',\r\n errorMessage: 'Some In The Black showcase items do not have valid links',\r\n validators: [\r\n (field) => field?.url,\r\n ],\r\n },\r\n {\r\n field: 'rendering.fields.data.datasource.items.targetItems',\r\n errorMessage: 'Some In The Black showcase items do not have valid categories',\r\n validators: [\r\n (field) => field?.categoryInformation?.categoryLabelText,\r\n ],\r\n },\r\n {\r\n field: 'rendering.fields.data.datasource.items.targetItems',\r\n errorMessage: 'Some In The Black showcase items do not have valid headlines',\r\n validators: [\r\n (field) => field?.headline,\r\n ],\r\n }\r\n];\r\n","import { Link } from 'react-router-dom';\r\nimport { Image as SCImage } from '@sitecore-jss/sitecore-jss-react';\r\nimport colors from '_containers/Theme/intheblack/colors';\r\nimport styled from 'styled-components';\r\n\r\nimport { spacing } from '_utils/props';\r\nimport {\r\n tag12,\r\n tag14,\r\n mq,\r\n} from '_utils/styles';\r\n\r\n\r\nexport const Container = styled.div`\r\n ${({ theme }) => spacing({ theme, mb: 6, px: 0 })}\r\n`;\r\n\r\nexport const LogoWrapper = styled.figure`\r\n margin: 0;\r\n ${({ theme }) => spacing({ theme, mb:{ xs: '12px', md: 2 }, px: 0 })}\r\n\r\n &.portrait-style {\r\n img {\r\n width: auto;\r\n max-height: 90px;\r\n\r\n ${mq('md')} {\r\n max-height: 112px;\r\n }\r\n }\r\n }\r\n\r\n &.landscape-style {\r\n img {\r\n max-width: 200px;\r\n\r\n ${mq('md')} {\r\n max-height: 248px;\r\n }\r\n }\r\n }\r\n}\r\n`;\r\n\r\nexport const LogoLink = styled(Link)`\r\n display: inline-block;\r\n color: ${colors.text.default};\r\n text-decoration: none;\r\n\r\n &:hover {\r\n text-decoration: underline;\r\n }\r\n\r\n &:focus {\r\n outline-color: ${colors.interactiveCell.focus};\r\n outline-offset: 0;\r\n }\r\n`;\r\n\r\nexport const SponsorLogoImg = styled(SCImage)``;\r\n\r\nexport const SponsorLabel = styled.div`\r\n ${tag12}\r\n\r\n ${mq('md')} {\r\n ${tag14}\r\n }\r\n`;\r\n","import React, { useEffect, useState } from 'react';\r\nimport NavItem from '_components/NavItem';\r\nimport { convertSrcJss } from '_utils/media';\r\nimport { ImageSize } from '_utils/types/enums';\r\nimport { imagePlaceholderSrc } from '_utils/styles';\r\nimport { SponsorLogoProps } from './definitions';\r\nimport {\r\n Container,\r\n LogoLink,\r\n LogoWrapper,\r\n SponsorLabel,\r\n SponsorLogoImg\r\n} from './StyledSponsorLogo'\r\n\r\nconst SponsorLogo: React.FC = ({ rendering }) => {\r\n const [imageClassName, setImageClassName] = useState('landscape-style');\r\n\r\n const renderingPageFields = rendering?.fields?.data?.pageFields || {};\r\n const targetItem = renderingPageFields?.sponsor?.targetItem || {};\r\n const hasImage = (targetItem?.logo?.jss?.value?.src ?? false);\r\n const uid = rendering?.uid;\r\n const label = renderingPageFields?.label?.value;\r\n const sponsorName = targetItem?.sponsorName?.value;\r\n const logo = targetItem?.logo;\r\n const link = targetItem?.link;\r\n\r\n useEffect(() => {\r\n const img = new Image();\r\n img.src = logo?.jss?.value?.src;\r\n img.onload = () => {\r\n const imageClassName = (img.width > img.height) ? 'landscape-style' : 'portrait-style';\r\n setImageClassName(imageClassName);\r\n }\r\n }, []);\r\n\r\n return !hasImage ? null : (\r\n \r\n \r\n \r\n \r\n \r\n {label}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default SponsorLogo;\r\n","/* eslint-disable */\n// Do not edit this file, it is auto-generated at build time!\n// See scripts/generate-component-factory.js to modify the generation of this file.\nimport loadable from '@loadable/component';\n\nimport Advertisement from '../components/Advertisement';\nimport Announcements from '../components/Announcements';\nimport ArticleInfo from '../components/ArticleInfo';\nimport ContributorDetail from '../components/ContributorDetail';\nimport ContributorInfo from '../components/ContributorInfo';\nimport EmbedAdobeMarketoForm from '../components/EmbedAdobeMarketoForm';\nimport FeatureSection from '../components/FeatureSection';\nimport FeatureSectionWithAd from '../components/FeatureSectionWithAd';\nimport MagazineBanner from '../components/MagazineBanner';\nimport MagazineIssuesCarousel from '../components/MagazineIssuesCarousel';\nimport MagazinePageBanner from '../components/MagazinePageBanner';\nimport MetadataInTheBlack from '../components/MetadataInTheBlack';\nimport MMFCareerProfileForm from '../components/MMFCareerProfileForm';\nimport MMFContactDetailsForm from '../components/MMFContactDetailsForm';\nimport PageBanner from '../components/PageBanner';\nimport PageFooter from '../components/PageFooter';\nimport PageHeader from '../components/PageHeader';\nimport PlaceholderFullWidth from '../components/PlaceholderFullWidth';\nimport PlaceholderSingleColumn from '../components/PlaceholderSingleColumn';\nimport ShowcaseHero from '../components/ShowcaseHero';\nimport SponsorLogo from '../components/SponsorLogo';\n\nconst components = new Map();\n\n // dynamic component Accordion\n components.set('Accordion', loadable(() => import(/* webpackChunkName: \"Accordion\" */'../components/Accordion'), { ssr: true}))\n\n // standard component Advertisement\n components.set('Advertisement', Advertisement);\n\n // standard component Announcements\n components.set('Announcements', Announcements);\n\n // standard component ArticleInfo\n components.set('ArticleInfo', ArticleInfo);\n\n // dynamic component BackToTop\n components.set('BackToTop', loadable(() => import(/* webpackChunkName: \"BackToTop\" */'../components/BackToTop'), { ssr: true}))\n\n // dynamic component CallToAction\n components.set('CallToAction', loadable(() => import(/* webpackChunkName: \"CallToAction\" */'../components/CallToAction'), { ssr: true}))\n\n // dynamic component CardListInTheBlack\n components.set('CardListInTheBlack', loadable(() => import(/* webpackChunkName: \"CardListInTheBlack\" */'../components/CardListInTheBlack'), { ssr: true}))\n\n // dynamic component ContentRelated\n components.set('ContentRelated', loadable(() => import(/* webpackChunkName: \"ContentRelated\" */'../components/ContentRelated'), { ssr: true}))\n\n // dynamic component ContentRichText\n components.set('ContentRichText', loadable(() => import(/* webpackChunkName: \"ContentRichText\" */'../components/ContentRichText'), { ssr: true}))\n\n // dynamic component ContentSummary\n components.set('ContentSummary', loadable(() => import(/* webpackChunkName: \"ContentSummary\" */'../components/ContentSummary'), { ssr: true}))\n\n // standard component ContributorDetail\n components.set('ContributorDetail', ContributorDetail);\n\n // standard component ContributorInfo\n components.set('ContributorInfo', ContributorInfo);\n\n // dynamic component CountryPreferenceSelector\n components.set('CountryPreferenceSelector', loadable(() => import(/* webpackChunkName: \"CountryPreferenceSelector\" */'../components/CountryPreferenceSelector'), { ssr: true}))\n\n // dynamic component CoveoContentCards\n components.set('CoveoContentCards', loadable(() => import(/* webpackChunkName: \"CoveoContentCards\" */'../components/CoveoContentCards'), { ssr: false}))\n\n // standard component EmbedAdobeMarketoForm\n components.set('EmbedAdobeMarketoForm', EmbedAdobeMarketoForm);\n\n // dynamic component EmbeddedCoveoSearch\n components.set('EmbeddedCoveoSearch', loadable(() => import(/* webpackChunkName: \"EmbeddedCoveoSearch\" */'../components/EmbeddedCoveoSearch'), { ssr: true}))\n\n // standard component FeatureSection\n components.set('FeatureSection', FeatureSection);\n\n // standard component FeatureSectionWithAd\n components.set('FeatureSectionWithAd', FeatureSectionWithAd);\n\n // dynamic component Form\n components.set('Form', loadable(() => import(/* webpackChunkName: \"Form\" */'../components/Form'), { ssr: true}))\n\n // dynamic component HiddenRendering\n components.set('HiddenRendering', loadable(() => import(/* webpackChunkName: \"HiddenRendering\" */'../components/HiddenRendering'), { ssr: true}))\n\n // dynamic component Icon\n components.set('Icon', loadable(() => import(/* webpackChunkName: \"Icon\" */'../components/Icon'), { ssr: true}))\n\n // dynamic component IFrame\n components.set('IFrame', loadable(() => import(/* webpackChunkName: \"IFrame\" */'../components/IFrame'), { ssr: true}))\n\n // dynamic component ImageWithTitleAndText\n components.set('ImageWithTitleAndText', loadable(() => import(/* webpackChunkName: \"ImageWithTitleAndText\" */'../components/ImageWithTitleAndText'), { ssr: true}))\n\n // dynamic component InformationSession\n components.set('InformationSession', loadable(() => import(/* webpackChunkName: \"InformationSession\" */'../components/InformationSession'), { ssr: true}))\n\n // dynamic component InternalPageBanner\n components.set('InternalPageBanner', loadable(() => import(/* webpackChunkName: \"InternalPageBanner\" */'../components/InternalPageBanner'), { ssr: true}))\n\n // dynamic component LateralNavigation\n components.set('LateralNavigation', loadable(() => import(/* webpackChunkName: \"LateralNavigation\" */'../components/LateralNavigation'), { ssr: true}))\n\n // dynamic component LinkList\n components.set('LinkList', loadable(() => import(/* webpackChunkName: \"LinkList\" */'../components/LinkList'), { ssr: true}))\n\n // dynamic component ListArticle\n components.set('ListArticle', loadable(() => import(/* webpackChunkName: \"ListArticle\" */'../components/ListArticle'), { ssr: true}))\n\n // standard component MagazineBanner\n components.set('MagazineBanner', MagazineBanner);\n\n // standard component MagazineIssuesCarousel\n components.set('MagazineIssuesCarousel', MagazineIssuesCarousel);\n\n // standard component MagazinePageBanner\n components.set('MagazinePageBanner', MagazinePageBanner);\n\n // dynamic component MainMenu\n components.set('MainMenu', loadable(() => import(/* webpackChunkName: \"MainMenu\" */'../components/MainMenu'), { ssr: true}))\n\n // dynamic component MainSearch\n components.set('MainSearch', loadable(() => import(/* webpackChunkName: \"MainSearch\" */'../components/MainSearch'), { ssr: true}))\n\n // dynamic component MediaEmbed\n components.set('MediaEmbed', loadable(() => import(/* webpackChunkName: \"MediaEmbed\" */'../components/MediaEmbed'), { ssr: true}))\n\n // dynamic component MenuButton\n components.set('MenuButton', loadable(() => import(/* webpackChunkName: \"MenuButton\" */'../components/MenuButton'), { ssr: true}))\n\n // standard component MetadataInTheBlack\n components.set('MetadataInTheBlack', MetadataInTheBlack);\n\n // standard component MMFCareerProfileForm\n components.set('MMFCareerProfileForm', MMFCareerProfileForm);\n\n // standard component MMFContactDetailsForm\n components.set('MMFContactDetailsForm', MMFContactDetailsForm);\n\n // dynamic component Modal\n components.set('Modal', loadable(() => import(/* webpackChunkName: \"Modal\" */'../components/Modal'), { ssr: true}))\n\n // dynamic component MultiMediaEmbed\n components.set('MultiMediaEmbed', loadable(() => import(/* webpackChunkName: \"MultiMediaEmbed\" */'../components/MultiMediaEmbed'), { ssr: true}))\n\n // dynamic component NavItem\n components.set('NavItem', loadable(() => import(/* webpackChunkName: \"NavItem\" */'../components/NavItem'), { ssr: true}))\n\n // dynamic component NewSocialShare\n components.set('NewSocialShare', loadable(() => import(/* webpackChunkName: \"NewSocialShare\" */'../components/NewSocialShare'), { ssr: true}))\n\n // dynamic component PaddingSpacer\n components.set('PaddingSpacer', loadable(() => import(/* webpackChunkName: \"PaddingSpacer\" */'../components/PaddingSpacer'), { ssr: true}))\n\n // standard component PageBanner\n components.set('PageBanner', PageBanner);\n\n // standard component PageFooter\n components.set('PageFooter', PageFooter);\n\n // standard component PageHeader\n components.set('PageHeader', PageHeader);\n\n // standard component PlaceholderFullWidth\n components.set('PlaceholderFullWidth', PlaceholderFullWidth);\n\n // standard component PlaceholderSingleColumn\n components.set('PlaceholderSingleColumn', PlaceholderSingleColumn);\n\n // dynamic component SearchMenu\n components.set('SearchMenu', loadable(() => import(/* webpackChunkName: \"SearchMenu\" */'../components/SearchMenu'), { ssr: true}))\n\n // dynamic component SearchMenuButton\n components.set('SearchMenuButton', loadable(() => import(/* webpackChunkName: \"SearchMenuButton\" */'../components/SearchMenuButton'), { ssr: true}))\n\n // dynamic component SearchResultsInTheBlack\n components.set('SearchResultsInTheBlack', loadable(() => import(/* webpackChunkName: \"SearchResultsInTheBlack\" */'../components/SearchResultsInTheBlack'), { ssr: false}))\n\n // standard component ShowcaseHero\n components.set('ShowcaseHero', ShowcaseHero);\n\n // dynamic component SingleImage\n components.set('SingleImage', loadable(() => import(/* webpackChunkName: \"SingleImage\" */'../components/SingleImage'), { ssr: true}))\n\n // standard component SponsorLogo\n components.set('SponsorLogo', SponsorLogo);\n\n // dynamic component StaticTextAndImage\n components.set('StaticTextAndImage', loadable(() => import(/* webpackChunkName: \"StaticTextAndImage\" */'../components/StaticTextAndImage'), { ssr: true}))\n\n // dynamic component Tabs\n components.set('Tabs', loadable(() => import(/* webpackChunkName: \"Tabs\" */'../components/Tabs'), { ssr: true}))\n\n // dynamic component TagList\n components.set('TagList', loadable(() => import(/* webpackChunkName: \"TagList\" */'../components/TagList'), { ssr: true}))\n\nexport default function componentFactory(componentName) {\n return components.get(componentName);\n};\n","import React, { createContext, useState } from 'react';\r\n\r\nimport { Optionalize } from '_utils/types';\r\n\r\nimport { NormalisedTimezone, TimezoneContextProps } from './definitions';\r\n\r\nexport const DEFAULT_TIMEZONE_STANDARD_NAME = 'Australia/Melbourne'\r\nexport const DEFAULT_SC_NULL_DATE = '0001-01-01T00:00:00Z';\r\n\r\nconst defaultTimezone: NormalisedTimezone = {\r\n abbreviation: { value: '' },\r\n standardRegionName: { value: DEFAULT_TIMEZONE_STANDARD_NAME },\r\n displayRegionName: { value: '' },\r\n offset: { value: '' },\r\n};\r\n\r\n/**\r\n * @name checkHasDayShifted\r\n * @description Checks if the date supplied is the same day as the default timezone\r\n */\r\nexport const checkHasDayShifted = (timezone: string) => (dateToCheck: string) => {\r\n try {\r\n if (dateToCheck === DEFAULT_SC_NULL_DATE) {\r\n throw new Error('Date is not set');\r\n } else {\r\n const dateToCheckAsDate = new Date(dateToCheck);\r\n\r\n const dateToCheckAsDefaultTimezone = new Intl.DateTimeFormat('en', {\r\n timeZone: DEFAULT_TIMEZONE_STANDARD_NAME,\r\n }).format(dateToCheckAsDate);\r\n\r\n const dateToCheckAsCurrentTimezone = new Intl.DateTimeFormat('en', {\r\n timeZone: timezone,\r\n }).format(dateToCheckAsDate);\r\n\r\n return new Date(dateToCheckAsCurrentTimezone)?.getDate() !== new Date(dateToCheckAsDefaultTimezone)?.getDate();\r\n }\r\n } catch {\r\n return false;\r\n };\r\n};\r\n\r\nexport const convertUTCToCurrentTimezone = (timezone: string) => (utcDate: string, shouldReturnLongDate: boolean) => {\r\n try {\r\n if (utcDate === DEFAULT_SC_NULL_DATE) {\r\n throw new Error('Date is not set');\r\n } else {\r\n const utcDateAsDate = new Date(utcDate);\r\n\r\n return new Intl.DateTimeFormat('en', {\r\n weekday: shouldReturnLongDate ? 'short' : undefined,\r\n day: shouldReturnLongDate ? '2-digit' : undefined,\r\n month: shouldReturnLongDate ? 'short' : undefined,\r\n hour: 'numeric',\r\n minute: 'numeric',\r\n timeZone: timezone,\r\n })?.format(utcDateAsDate);\r\n }\r\n } catch {\r\n return '';\r\n };\r\n};\r\n\r\nconst TimezoneContext = createContext({\r\n checkHasDayShifted: null,\r\n convertUTCToCurrentTimezone: null,\r\n timezone: null,\r\n setTimezone: null\r\n});\r\n\r\nfunction TimezoneProvider({ children }) {\r\n const [timezone, setTimezone] = useState(defaultTimezone);\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n\r\nexport default TimezoneProvider;\r\n\r\nexport const TimezoneConsumer = TimezoneContext.Consumer;\r\n\r\nexport function withTimezoneContext(\r\n WrappedComponent: React.ComponentType\r\n) {\r\n // Try to create a nice displayName for React Dev Tools.\r\n const displayName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\r\n\r\n const withTimezoneContext: React.FC> = (props) => (\r\n \r\n {(value) => }\r\n \r\n );\r\n\r\n withTimezoneContext.displayName = `withTimezoneContext(${displayName})`;\r\n\r\n return withTimezoneContext;\r\n}\r\n","import isEmpty from 'lodash/isEmpty';\r\n\r\n/**\r\n * @description Designed to retrieve the property value by key name. Supports recursive implementation for use cases when the object is multi layered.\r\n * @param {string} key \r\n * @param {object} obj - anonymous object \r\n * @returns T\r\n */\r\nexport const getPropertyByKey = (key: string, obj: any): undefined | T => {\r\n if(isEmpty(obj)){\r\n return undefined;\r\n }\r\n\r\n const keyValue = Object.entries(obj)\r\n .find((p: Array) => ( \r\n p.length > 0 \r\n && p[0] === key\r\n && p[1] !== undefined\r\n ));\r\n\r\n return keyValue !== undefined && keyValue.length > 0\r\n ? keyValue[1] as T\r\n : undefined;\r\n};","import React from 'react';\r\nimport { Helmet } from 'react-helmet';\r\nimport {\r\n WithContext,\r\n} from 'schema-dts';\r\n\r\nimport { CorpAllPagesStructuredDataProps } from '../definitions';\r\n\r\nconst CorpAllPagesStructuredData: React.FC = ({ context }) => {\r\n\r\n if (!context?.site?.name) {\r\n return null;\r\n }\r\n\r\n const websiteData: WithContext = {\r\n \"@context\": \"https://schema.org\",\r\n \"@type\": \"Organization\",\r\n \"name\": \"CPA Australia\",\r\n \"url\": \"https://www.cpaaustralia.com.au/\",\r\n \"logo\": \"https://www.cpaaustralia.com.au/-/jssmedia/Project/CPA/Corporate/images/logos/CPA-Australia-logos/CPAA_RGB.jpg\",\r\n \"sameAs\": [\r\n \"https://www.facebook.com/cpaaustralia\",\r\n \"https://www.linkedin.com/school/cpaaustralia\",\r\n \"https://www.instagram.com/cpaaustralia/\",\r\n \"https://twitter.com/cpaaustralia\"\r\n ]\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default CorpAllPagesStructuredData;\r\n","import React from 'react';\r\nimport { Helmet } from 'react-helmet';\r\nimport { useLocation } from 'react-router-dom';\r\nimport {\r\n WithContext,\r\n} from 'schema-dts';\r\nimport { SitelinkBoxHomePageStructuredDataProps } from '../definitions';\r\n\r\nconst SitelinkBoxHomePageStructuredData: React.FC = ({ context }) => {\r\n\r\n // This is only for the internal website with relative routes\r\n const location = useLocation();\r\n const currentPath = location.pathname;\r\n const homepPagePath = '/';\r\n\r\n if (!context?.site?.name) {\r\n return null;\r\n }\r\n\r\n if (currentPath !== homepPagePath) {\r\n return null;\r\n }\r\n\r\n const SitelinkBoxData: WithContext = {\r\n \"@context\": \"https://schema.org/\",\r\n \"@type\": \"WebSite\",\r\n \"name\": \"CPA Australia\",\r\n \"url\": \"https://www.cpaaustralia.com.au/\",\r\n \"potentialAction\": {\r\n \"@type\": \"SearchAction\",\r\n \"target\": \"https://www.cpaaustralia.com.au/search#q={search_term_string}\",\r\n \"query-input\": \"required name=search_term_string\"\r\n }\r\n }\r\n\r\n // from Google, all is added in the html head part\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default SitelinkBoxHomePageStructuredData;","import styled from 'styled-components';\r\n\r\nexport const MainContainer = styled.div`\r\n flex: 1 0 auto;\r\n position: relative;\r\n`;\r\n","import {\r\n Placeholder,\r\n VisitorIdentification,\r\n} from '@sitecore-jss/sitecore-jss-react';\r\nimport React, {\r\n FC,\r\n useEffect,\r\n ReactNode,\r\n ReactElement,\r\n} from 'react';\r\nimport { useLocation } from 'react-router';\r\nimport Modal from '_components/Modal';\r\nimport DigitalDataProvider from '_containers/DigitalDataContext';\r\nimport { LocationAPIContextProvider } from '_containers/LocationAPIContext';\r\nimport MemberProvider from '_containers/MemberContext';\r\nimport MenuProvider from '_containers/MenuContext';\r\nimport ModalProvider from '_containers/ModalContext';\r\nimport TimezoneProvider from '_containers/TimezoneContext';\r\nimport CountryProvider from '_containers/CountryContext';\r\nimport { getQueryStringValue } from '_utils/data';\r\nimport { getPropertyByKey } from '_utils/helpers/generics';\r\nimport {\r\n SpaLoader,\r\n Grid,\r\n} from '_utils/components';\r\n// Structured data for google\r\nimport { \r\n CorpAllPagesStructuredData,\r\n SitelinkBoxHomePageStructuredData\r\n} from '_utils/components/StructuredDataCorp'\r\nimport { INVISIBLE_CLASS } from '_utils/helpers/render';\r\nimport { MainContainer } from '_layouts/SharedStyledLayout';\r\n\r\nimport { Language } from '_types';\r\n\r\ninterface LayoutProps {\r\n context: any;\r\n route: any;\r\n loading?: boolean;\r\n}\r\n\r\n/**\r\n * DEFAULT APP LAYOUT\r\n */\r\nconst DefaultLayout: FC = ({\r\n context,\r\n route,\r\n loading\r\n}): JSX.Element => {\r\n const language = getPropertyByKey('value', getPropertyByKey('languageType', route?.fields)) || null;\r\n\r\n const { search } = useLocation();\r\n\r\n useEffect(() => {\r\n const fileToDownload = getQueryStringValue('file', search);\r\n\r\n if (!loading && fileToDownload) {\r\n location.href = fileToDownload;\r\n }\r\n }, [search, loading]);\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {/* prevents flash reverted content when route change and personalisation applied */}\r\n
    \r\n \r\n \r\n\r\n \r\n <>\r\n {components\r\n .filter((component: ReactNode) => (component !== null && component !== undefined))\r\n .map((component: ReactElement, index: number) => {\r\n\r\n if (component.props && component.props?.type !== 'text/sitecore') {\r\n return \r\n \r\n {components}\r\n \r\n \r\n }\r\n return component;\r\n })}\r\n \r\n }\r\n />\r\n\r\n \r\n
    \r\n\r\n \r\n \r\n \r\n {/* Google Structured data */}\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n );\r\n};\r\n\r\nexport default DefaultLayout;\r\n","import React from 'react';\r\nimport { Helmet } from 'react-helmet';\r\nimport {\r\n WithContext,\r\n} from 'schema-dts';\r\n\r\nimport { ITBAllPagesStructuredDataProps } from '../definitions';\r\n\r\nconst ITBAllPagesStructuredData: React.FC = ({ context }) => {\r\n\r\n if (!context?.site?.name) {\r\n return null;\r\n }\r\n\r\n const websiteData: WithContext = {\r\n \"@context\": \"https://schema.org\",\r\n \"@type\": \"Organization\",\r\n \"name\": \"INTHEBLACK\",\r\n \"url\": \"https://intheblack.cpaaustralia.com.au/\",\r\n \"logo\": \"https://www.cpaaustralia.com.au/-/jssmedia/Project/CPA/InTheBlack/images/Other/INTHEBLACK.jpg\",\r\n \"sameAs\": [\r\n \"https://www.facebook.com/cpaaustralia\",\r\n \"https://www.instagram.com/cpaaustralia/\",\r\n \"https://www.linkedin.com/school/cpaaustralia\",\r\n \"https://twitter.com/cpaaustralia\"\r\n ]\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ITBAllPagesStructuredData;","import React from 'react';\r\nimport { Helmet } from 'react-helmet';\r\nimport {\r\n WithContext,\r\n} from 'schema-dts';\r\n\r\nimport { ITBArticlePagesDataProps } from '../definitions';\r\n\r\nconst ITBArticlePagesData: React.FC = ({ context, route }) => {\r\n\r\n const whiteListTemplateId = [\r\n '5600C0A4-E02A-4C07-82EF-876F0866A1FC',\r\n '93AF8150-E259-4DE2-A5F7-D7860583E79F', \r\n '3F066E49-76AC-4AA8-A729-64EDB071FDA7',\r\n '2E8D5F2A-BE65-4634-B391-5C64CF80910A',\r\n '4A0A5086-5EA0-4E1C-A02B-1F5684A4445D'\r\n ];\r\n\r\n const currentTemplateId = route?.templateId?.toUpperCase() || ''\r\n\r\n if (!context?.site?.name) {\r\n return null;\r\n }\r\n \r\n // check if the current TemplateId is in the array or not\r\n if (!whiteListTemplateId.includes(currentTemplateId)) {\r\n return null\r\n }\r\n\r\n const contributors = route?.fields?.contributors || [];\r\n const author = contributors[0]?.fields?.fullName?.value ?? '';\r\n const datePublished = route?.fields?.published?.value ?? '';\r\n const headline = route?.fields?.pageTitle?.value ?? '';\r\n const image = route?.fields?.featuredImage?.value?.src ?? '';\r\n const url = context?.canonicalUrl ?? '';\r\n const logoUrl = 'https://www.cpaaustralia.com.au/-/jssmedia/Project/CPA/InTheBlack/images/Other/INTHEBLACK.jpg';\r\n\r\n const websiteData: WithContext = {\r\n \"@context\": \"https://schema.org\",\r\n \"@type\": \"NewsArticle\",\r\n \"mainEntityOfPage\": {\r\n \"@type\": \"WebPage\",\r\n \"@id\": url\r\n },\r\n \"headline\": headline,\r\n \"image\": [\r\n image,\r\n ],\r\n \"datePublished\": datePublished,\r\n \"author\": {\r\n \"@type\": \"Person\",\r\n \"name\": author\r\n },\r\n \"publisher\": {\r\n \"@type\": \"Organization\",\r\n \"name\": \"CPA Australia\",\r\n \"logo\": {\r\n \"@type\": \"ImageObject\",\r\n \"url\": logoUrl\r\n }\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ITBArticlePagesData;\r\n","import styled, { css, keyframes } from 'styled-components';\r\nimport { Placeholder } from '@sitecore-jss/sitecore-jss-react';\r\n\r\nimport { TRANSITION_DELAY } from '_utils/components/Scroller/';\r\nimport Grid from '_utils/components/Grid';\r\n\r\nimport {\r\n depth,\r\n hideOnPrint,\r\n mq,\r\n} from '_utils/styles';\r\nimport { spacing } from '_utils/props';\r\n\r\nexport const MainContainer = styled.div`\r\n flex: 1 0 auto;\r\n position: relative;\r\n\r\n &.intheblack-default {\r\n &.itb-homepage {\r\n .ph {\r\n // overwrite jss-content-main padding bottom on homepage\r\n padding-bottom: 0;\r\n\r\n // overwrite data-component margin bottom from 6 to 7 on homepage\r\n > [data-component]:not(:last-child) {\r\n ${({ theme }) => spacing({ theme, mb: 7 })}\r\n }\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const SingleColumnContainer = styled(Grid.Item)``;\r\n\r\nexport const SidebarContainer = styled(Grid.Item)`\r\n ${({ theme }) => spacing({ theme, pb: 7 })}\r\n\r\n ${mq('md')} {\r\n display: flex;\r\n flex-direction: column;\r\n position: relative;\r\n }\r\n\r\n ${hideOnPrint}\r\n`;\r\n\r\nexport const ArticleContainer = styled(Grid.Item)`\r\n ${({ theme }) => spacing({ theme, pb: 7 })}\r\n\r\n @media print {\r\n max-width: 100%;\r\n display: block;\r\n width: 100%;\r\n }\r\n`;\r\n\r\nconst pulse = keyframes`\r\n 100% {\r\n opacity: 0;\r\n }\r\n`;\r\n\r\nexport const MainContentPlaceholder = styled(Placeholder)``\r\n\r\nexport const SingleColumnPlaceholder = styled(Placeholder)`\r\n ${({ theme }) => spacing({ theme, pb: 5 })}\r\n`\r\n\r\nexport const IntroContentPlaceholder = styled.div`\r\n// overwrite jss-content-intro padding bottom on homepage\r\n .intheblack-default.itb-homepage & {\r\n ${({ theme }) => spacing({ theme, pb: '52px' })}\r\n }\r\n\r\n .page-banner,\r\n .articleInfo {\r\n margin-bottom: 0;\r\n }\r\n\r\n ${mq.lessThan('md')} {\r\n ${({ theme }) => spacing({ theme, pb: '17px' })}\r\n }\r\n\r\n ${mq('md')} {\r\n ${({ theme }) => spacing({ theme, pb: '36px' })}\r\n }\r\n`\r\n\r\nexport const ArticleFooterPlaceholder = styled.div`\r\n ${({ theme }) => spacing({ theme, pt: '20px' })};\r\n border-top: 1px solid ${({ theme }) => theme.section.divider.color};\r\n display: flex;\r\n flex-direction: column;\r\n\r\n & > .new-social-share {\r\n // when column, adding margin on top\r\n margin-top: 20px;\r\n }\r\n\r\n ${mq('lg')} {\r\n align-items: flex-start;\r\n flex-direction: column;\r\n justify-content: space-between;\r\n & > .new-social-share {\r\n margin-top: 20;\r\n }\r\n }\r\n`;\r\n\r\n// hide Recommended For You (Card List component)\r\nexport const OutroContentPlaceholder = styled.div`\r\n .card-list {\r\n ${hideOnPrint}\r\n }\r\n`;\r\n","import classnames from 'classnames';\r\nimport React from 'react';\r\nimport { Placeholder, VisitorIdentification } from '@sitecore-jss/sitecore-jss-react';\r\n\r\nimport Modal from '_components/Modal';\r\nimport DigitalDataProvider from '_containers/DigitalDataContext';\r\nimport MenuProvider from '_containers/MenuContext';\r\nimport ModalProvider from '_containers/ModalContext';\r\n\r\nimport { Language } from '_types';\r\n\r\nimport {\r\n Grid,\r\n SpaLoader,\r\n} from '_utils/components';\r\n\r\nimport { ITBAllPagesStructuredData, ITBArticlePageStructuredData } from '_utils/components/StructuredDataITB';\r\n\r\nimport { INVISIBLE_CLASS } from '_utils/helpers/render';\r\n\r\nimport { LayoutProps } from './definitions';\r\n\r\nimport {\r\n ArticleContainer,\r\n IntroContentPlaceholder,\r\n MainContainer,\r\n OutroContentPlaceholder,\r\n} from './StyledLayout';\r\n\r\nconst DefaultLayout: React.FC = (props: LayoutProps) => {\r\n const { loading, route } = props;\r\n const languageType: Language = route?.fields?.languageType?.value || null;\r\n\r\n /**\r\n * Get the sitecore generated 'Template Name'.\r\n * If not undefined, replace ALL spaces with '-' and convert to lowercase.\r\n * '/containers/Theme/intheblack/index.tsx' target class name with css when required.\r\n */\r\n const templateName: string = route?.templateName ?? '';\r\n const templateNameClassName = templateName !== '' ? templateName.replace(/ /g, '-').toLocaleLowerCase() : '';\r\n const mainContainerClassNames = classnames('intheblack-default', templateNameClassName);\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n {/* prevents flash reverted content when route change and personalisation applied */}\r\n
    \r\n (\r\n \r\n {components}\r\n \r\n )}\r\n />\r\n \r\n \r\n {/* Main content */}\r\n \r\n \r\n \r\n \r\n \r\n (\r\n \r\n {components}\r\n \r\n )}\r\n />\r\n
    \r\n\r\n \r\n \r\n \r\n {/* Google structured data */}\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n );\r\n};\r\n\r\nexport default DefaultLayout;\r\n","/* eslint-disable */\n// Do not edit this file, it is auto-generated at build time!\n// See scripts/generate-layout-map.js to modify the generation of this file.\nimport DefaultLayout from '../layouts/DefaultLayout';\nimport ITBLayout from '../layouts/ITBLayout';\n\nconst layouts = new Map();\nlayouts.set('DefaultLayout', DefaultLayout);\nlayouts.set('ITBLayout', ITBLayout);\n\nexport default layouts;\n","import React from 'react';\r\nimport { Placeholder, VisitorIdentification } from '@sitecore-jss/sitecore-jss-react';\r\n\r\nimport Modal from '_components/Modal';\r\nimport DigitalDataProvider from '_containers/DigitalDataContext';\r\nimport MenuProvider from '_containers/MenuContext';\r\nimport ModalProvider from '_containers/ModalContext';\r\nimport { Language } from '_types';\r\n\r\nimport {\r\n Grid,\r\n SpaLoader,\r\n} from '_utils/components';\r\n\r\nimport { ITBAllPagesStructuredData, ITBArticlePageStructuredData } from '_utils/components/StructuredDataITB';\r\n\r\nimport { INVISIBLE_CLASS } from '_utils/helpers/render';\r\n\r\nimport { LayoutProps } from './definitions';\r\n\r\nimport {\r\n ArticleContainer,\r\n ArticleFooterPlaceholder,\r\n IntroContentPlaceholder,\r\n MainContainer,\r\n MainContentPlaceholder,\r\n OutroContentPlaceholder,\r\n SidebarContainer,\r\n SingleColumnContainer,\r\n} from './StyledLayout';\r\n\r\n/*\r\n DEFAULT APP LAYOUT\r\n*/\r\n\r\nconst DefaultLayout: React.FC = (props: LayoutProps) => {\r\n const { loading, route } = props;\r\n const languageType: Language = route?.fields?.languageType?.value || null;\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n {/* prevents flash reverted content when route change and personalisation applied */}\r\n
    \r\n (\r\n \r\n {components}\r\n \r\n )}\r\n />\r\n \r\n \r\n (\r\n <>\r\n {!!components.length &&\r\n \r\n {components}\r\n \r\n }\r\n \r\n )}\r\n />\r\n \r\n \r\n {/* Main content */}\r\n \r\n \r\n (\r\n <>\r\n {!!components.length &&\r\n \r\n {components}\r\n \r\n }\r\n \r\n )}\r\n />\r\n \r\n {/* Sidebar content */}\r\n \r\n \r\n \r\n \r\n \r\n (\r\n \r\n {components}\r\n \r\n )}\r\n />\r\n
    \r\n\r\n \r\n \r\n \r\n {/* Google structured data */}\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n );\r\n};\r\n\r\nexport default DefaultLayout;\r\n","import LayoutMap from './temp/layoutMap.js';\r\nimport * as layouts from './layouts';\r\n\r\nclass LayoutFactory {\r\n layoutMap: Map JSX.Element>;\r\n\r\n layoutIdMap: Map JSX.Element>;\r\n\r\n constructor() {\r\n // disconnected mode\r\n this.layoutMap = LayoutMap;\r\n // connected mode\r\n this.layoutIdMap = new Map();\r\n this.layoutIdMap.set('860e4214-847d-5f17-a731-ce9f15a732e3', layouts.DefaultLayout);\r\n this.layoutIdMap.set('d431f83b-05b1-4299-93ce-450eb0d96524', layouts.ITBLayout);\r\n this.layoutIdMap.set('f8d19c4a-e40a-4247-a18c-ae3f44ccd6d8', layouts.ITBSidebarLayout);\r\n }\r\n\r\n resolveLayout(contextData: any): any {\r\n // console.log('layoutMap', this.layoutMap);\r\n const layoutId =\r\n contextData && contextData.layoutId ? contextData.layoutId.toLowerCase() : null;\r\n const layoutName = contextData && contextData.layoutName ? contextData.layoutName : null;\r\n\r\n let layout;\r\n\r\n if (layoutId) {\r\n layout = this.layoutIdMap.get(layoutId);\r\n }\r\n\r\n if (!layout && layoutName) {\r\n layout = this.layoutMap.get(layoutName);\r\n }\r\n\r\n return layout || this.layoutMap.get('DefaultLayout');\r\n }\r\n}\r\n\r\nconst layoutFactory = new LayoutFactory();\r\n\r\nObject.freeze(layoutFactory);\r\n\r\nexport default layoutFactory;\r\n","import {\r\n GraphQLLayoutService,\r\n RestLayoutService,\r\n constants,\r\n} from '@sitecore-jss/sitecore-jss-react';\r\nimport config from '../temp/config';\r\n\r\nexport class LayoutServiceFactory {\r\n create() {\r\n return process.env.REACT_APP_FETCH_WITH === constants.FETCH_WITH.GRAPHQL\r\n ? new GraphQLLayoutService({\r\n endpoint: config.graphQLEndpoint,\r\n apiKey: config.sitecoreApiKey,\r\n siteName: config.jssAppName,\r\n })\r\n : new RestLayoutService({\r\n apiHost: window.location.origin,\r\n apiKey: config.sitecoreApiKey,\r\n siteName: config.jssAppName,\r\n configurationName: config.layoutServiceConfigurationName,\r\n });\r\n }\r\n}\r\n\r\nexport const layoutServiceFactory = new LayoutServiceFactory();\r\n","import { canUseDOM } from 'exenv';\r\nimport React from 'react';\r\nimport i18n from 'i18next';\r\nimport { isEditorActive, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport {\r\n handleBodyChanges,\r\n TRANSITIONING_CLASS,\r\n} from '_utils/helpers/render';\r\nimport config from './temp/config';\r\nimport LayoutFactory from './LayoutFactory';\r\nimport { layoutServiceFactory } from './lib/layout-service-factory';\r\n\r\n\r\n/* eslint-disable no-console */\r\n\r\n// Dynamic route handler for Sitecore items.\r\n// Because JSS app routes are defined in Sitecore, traditional static React routing isn't enough -\r\n// we need to be able to load dynamic route data from Sitecore after the client side route changes.\r\n// So react-router delegates all route rendering to this handler, which attempts to get the right\r\n// route data from Sitecore - and if none exists, renders the not found component.\r\n\r\nlet observer;\r\nclass RouteHandler extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n routeData: null,\r\n isRouteChange: false,\r\n defaultLanguage: config.defaultLanguage,\r\n };\r\n \r\n\r\n const routeData = this.extractRouteData();\r\n \r\n\r\n // if we have an SSR state, and that state has language data, set the current language\r\n // (this makes the language of content follow the Sitecore context language cookie)\r\n // note that a route-based language (i.e. /de-DE) will override this default; this is for home.\r\n if (\r\n routeData?.sitecore?.context?.language\r\n ) {\r\n this.state.defaultLanguage = routeData.sitecore.context.language;\r\n }\r\n\r\n // tell i18next to sync its current language with the route language\r\n this.updateLanguage();\r\n }\r\n\r\n componentDidMount() {\r\n \r\n const routeData = this.extractRouteData();\r\n const site = routeData?.sitecore?.context?.site?.name\r\n\r\n if (this.props.ssrRenderComplete) {\r\n this.addMutationObserver(site);\r\n }\r\n\r\n // if no existing routeData is present (from SSR), get Layout Service fetching the route data or ssr render complete\r\n if (!routeData) {\r\n this.updateRouteData();\r\n } else {\r\n this.storeAppVersion(routeData?.sitecore?.context);\r\n }\r\n }\r\n\r\n storeAppVersion = (context) => {\r\n if (\r\n canUseDOM &&\r\n context?.appVersion &&\r\n !sessionStorage.getItem('appVersion')\r\n ) {\r\n sessionStorage.setItem('appVersion', context.appVersion);\r\n }\r\n }\r\n\r\n extractRouteData = () => {\r\n \r\n if (!this.props.sitecoreContext.route) return null;\r\n\r\n const { route, ...context } = this.props.sitecoreContext;\r\n\r\n return {\r\n sitecore: {\r\n route,\r\n context\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * watch for changes to app root so personalisation team have hook to know when stable\r\n */\r\n addMutationObserver = (siteName) => {\r\n\r\n if (canUseDOM && window?.MutationObserver) {\r\n // Previously, there is no `if` to check if observer is already there\r\n // Add this since no need to create the observer again\r\n if(!observer) {\r\n observer = new MutationObserver(() => handleBodyChanges(siteName));\r\n }\r\n\r\n observer.observe(document.getElementById('root'), {\r\n childList: true,\r\n subtree: false,\r\n attributes: false,\r\n characterData: false,\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Loads route data from Sitecore Layout Service into state.routeData\r\n */\r\n updateRouteData() {\r\n // cancel listening for change until layout service resolves\r\n if (canUseDOM && typeof observer === 'object') {\r\n observer.disconnect();\r\n }\r\n let sitecoreRoutePath = this.props.route.match.params.sitecoreRoute || '/';\r\n if (!sitecoreRoutePath.startsWith('/')) {\r\n sitecoreRoutePath = `/${sitecoreRoutePath}`;\r\n }\r\n\r\n const language = this.props.route.match.params.lang || this.state.defaultLanguage;\r\n const site = this.props.sitecoreContext.route ? this.props.sitecoreContext.site.name : null;\r\n\r\n if (this.props.ssrRenderComplete && canUseDOM) {\r\n this.setState({ isRouteChange: true });\r\n document.body.classList.add(TRANSITIONING_CLASS);\r\n }\r\n\r\n // get the route data for the new route\r\n getRouteData(sitecoreRoutePath, language, site).then((routeData) => {\r\n\r\n const sitecore = routeData?.sitecore;\r\n const context = routeData?.sitecore?.context;\r\n\r\n if (sitecore?.route) {\r\n /* check if page has redirect defined. We don't care what it is from FE perspective because we cannot return appropriate HTTP status code, so reload page and Sitecore can handle the redirect */\r\n if (canUseDOM && context?.redirect?.hasRedirect) {\r\n window.location.reload();\r\n return;\r\n }\r\n\r\n // check if the app version has changed and if so, update session var and force reload\r\n if (\r\n canUseDOM &&\r\n sessionStorage.getItem('appVersion') &&\r\n context?.appVersion != sessionStorage.getItem('appVersion')\r\n ) {\r\n sessionStorage.setItem('appVersion', context.appVersion);\r\n window.location.reload();\r\n return;\r\n }\r\n\r\n // store app version if we don't have anything already\r\n this.storeAppVersion(context);\r\n\r\n this.addMutationObserver(site);\r\n\r\n if (this.props.ssrRenderComplete) {\r\n this.setState({ isRouteChange: false });\r\n }\r\n\r\n // set the sitecore context data and push the new route\r\n this.props.updateSitecoreContext({\r\n route: sitecore?.route,\r\n itemId: sitecore?.route?.itemId,\r\n ...sitecore?.context,\r\n });\r\n\r\n if (!this.props.sitecoreContext) {\r\n return null;\r\n }\r\n } else {\r\n /* no route?\r\n 404 or perhaps page requiring user to log in (ie. authenticated content), hard reload page so server can return correct status */\r\n if (canUseDOM &&\r\n // don't reload page if using HMR via jss-start.ps1 (ie. localhost:3000)\r\n window?.location?.hostname !== 'localhost') {\r\n window.location.reload();\r\n }\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Updates the current app language to match the route data.\r\n */\r\n updateLanguage() {\r\n const newLanguage = this.props.route.match.params.lang || this.state.defaultLanguage;\r\n\r\n if (i18n.language !== newLanguage) {\r\n i18n.changeLanguage(newLanguage);\r\n }\r\n }\r\n\r\n componentDidUpdate(previousProps) {\r\n const existingRoute = previousProps.route.match.url;\r\n const newRoute = this.props.route.match.url;\r\n\r\n // don't change state (refetch route data) if the route has not changed\r\n if (existingRoute === newRoute) {\r\n return;\r\n }\r\n\r\n // if in experience editor - force reload instead of route data update\r\n // avoids confusing Sitecore's editing JS\r\n if (isEditorActive()) {\r\n window.location.assign(newRoute);\r\n return;\r\n }\r\n\r\n this.updateLanguage();\r\n this.updateRouteData();\r\n }\r\n\r\n render() {\r\n const routeData = this.extractRouteData();\r\n\r\n // Don't render anything if the route data or dictionary data is not fully loaded yet.\r\n // This is a good place for a \"Loading\" component, if one is needed.\r\n if (!routeData) {\r\n return null;\r\n }\r\n\r\n // store `ssrRenderComplete` for use by analytics to only dispatch `pageView` once per page\r\n if (canUseDOM) {\r\n window.ssrRenderComplete = this.props.ssrRenderComplete;\r\n window.pageIsStable = false;\r\n }\r\n\r\n // Get layout to render for route\r\n const Layout = LayoutFactory.resolveLayout(routeData.sitecore.route);\r\n\r\n if (!Layout) {\r\n return (\r\n

    \r\n Could not find layout, routeData.sitecore.route:\r\n
    \r\n

    {JSON.stringify(routeData.sitecore.route, null, 2)}
    \r\n

    \r\n );\r\n }\r\n\r\n // Render the app's root structural layout\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\n/**\r\n * Gets route data from Sitecore. This data is used to construct the component layout for a JSS route.\r\n * @param {string} route Route path to get data for (e.g. /about)\r\n * @param {string} language Language to get route data in (content language, e.g. 'en')\r\n */\r\nfunction getRouteData(route, language, siteName) {\r\n const layoutServiceInstance = layoutServiceFactory.create();\r\n return layoutServiceInstance.fetchLayoutData(route, language).catch((error) => {\r\n if (error.response && error.response.status === 404 && error.response.data) {\r\n return error.response.data;\r\n }\r\n\r\n console.error('Route data fetch error', error, error.response);\r\n\r\n return null;\r\n });\r\n}\r\n\r\nexport default withSitecoreContext({ updatable: true })(RouteHandler)\r\n","import { useEffect } from 'react';\r\n\r\nimport { useLocation } from 'react-router-dom';\r\nimport { canUseDOM } from 'exenv';\r\n\r\nexport const TRANSITION_DELAY = 250;\r\nlet timer;\r\n\r\nexport function scrollTop(delay = TRANSITION_DELAY, behavior: ScrollBehavior = 'auto') {\r\n try {\r\n if (canUseDOM) {\r\n clearTimeout(timer);\r\n\r\n // Let the LoadingScreen fade in before scrolling\r\n timer = window.setTimeout(\r\n () =>\r\n window.scrollTo({\r\n top: 0,\r\n left: 0,\r\n behavior\r\n }),\r\n delay\r\n );\r\n }\r\n } catch {}\r\n}\r\n\r\nfunction scrollToElementById(id, scrollOptions = { behavior: 'smooth' }, attempts = 0) {\r\n const element = document.getElementById(id);\r\n\r\n if (element) {\r\n element.scrollIntoView({\r\n behavior: 'smooth'\r\n });\r\n } else {\r\n requestAnimationFrame(() => {\r\n // give up after ~15 sec\r\n if (attempts < 900) {\r\n scrollToElementById(id, scrollOptions, attempts + 1);\r\n }\r\n });\r\n }\r\n}\r\n\r\nexport default function ScrollToTop() {\r\n const { pathname, hash } = useLocation();\r\n\r\n useEffect(() => {\r\n if (!canUseDOM) {\r\n return;\r\n }\r\n\r\n // no hash: Scroll to top whenever path changes\r\n if (!hash) {\r\n scrollTop();\r\n } else {\r\n // hash: try to scroll to element with that id\r\n const id = hash.replace('#', '');\r\n scrollToElementById(id);\r\n }\r\n }, [pathname, hash]);\r\n\r\n return null;\r\n}\r\n","import { canUseDOM } from 'exenv';\r\nimport React from 'react';\r\nimport { SitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { Route, Switch } from 'react-router-dom';\r\nimport { ApolloProvider } from 'react-apollo';\r\nimport CorporateTheme from '_containers/Theme/corporate/';\r\nimport ITBTheme from '_containers/Theme/intheblack/';\r\nimport componentFactory from './temp/componentFactory';\r\nimport RouteHandler from './RouteHandler';\r\nimport Scroller from '_utils/components/Scroller';\r\n\r\n// This is the main JSX entry point of the app invoked by the renderer (server or client rendering).\r\n// By default the app's normal rendering is delegated to that handles the loading of JSS route data.\r\n\r\n// support languages in the URL prefix\r\n// e.g. /da-DK/path, or /en/path, or /path\r\nexport const routePatterns = [\r\n '/:lang([a-z]{2}-[A-Z]{2})/:sitecoreRoute*',\r\n '/:lang([a-z]{2})/:sitecoreRoute*',\r\n '/:sitecoreRoute*',\r\n];\r\n\r\n// wrap the app with:\r\n// ApolloProvider: provides an instance of Apollo GraphQL client to the app to make Connected GraphQL queries.\r\n// Not needed if not using connected GraphQL.\r\n// SitecoreContext: provides component resolution and context services via withSitecoreContext\r\n// Router: provides a basic routing setup that will resolve Sitecore item routes and allow for language URL prefixes.\r\nclass AppRoot extends React.Component {\r\n constructor(props) {\r\n super(props)\r\n\r\n this.state = {\r\n ssrRenderComplete: false\r\n }\r\n\r\n if (props.ssrState) {\r\n this.sitecoreContext = props.ssrState.sitecore && props.ssrState.sitecore.route\r\n ? {\r\n route: props.ssrState.sitecore.route,\r\n itemId: props.ssrState.sitecore.route.itemId,\r\n ...props.ssrState.sitecore.context,\r\n }\r\n : props.ssrState.sitecore.context\r\n } else {\r\n this.sitecoreContext = null;\r\n }\r\n }\r\n\r\n setSsrRenderComplete = ssrRenderComplete =>\r\n this.setState({\r\n ssrRenderComplete\r\n })\r\n\r\n componentDidMount() {\r\n\r\n // initialize ads to trigger - pushing empty fn into cmd queue seems only way to fix (arrggghh!)\r\n if (canUseDOM && typeof window !== 'undefined') {\r\n window.googletag = window.googletag || { cmd: [] };\r\n const { googletag } = window;\r\n googletag.cmd.push(function () { });\r\n }\r\n\r\n this.setSsrRenderComplete(true);\r\n }\r\n\r\n render() {\r\n const { path, Router, graphQLClient, siteName } = this.props;\r\n \r\n const LayoutWithTheme = (props) => (\r\n props?.siteName === 'corporate' ?\r\n \r\n {props.children}\r\n \r\n :\r\n \r\n {props.children}\r\n \r\n );\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {routePatterns.map((routePattern) => (\r\n }\r\n />\r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default AppRoot;\r\n","import 'lazysizes';\r\nimport 'lazysizes/plugins/object-fit/ls.object-fit';\r\nimport 'lazysizes/plugins/attrchange/ls.attrchange';\r\nimport 'react-app-polyfill/stable';\r\nimport 'dwnld-attr-polyfill';\r\nimport React from 'react';\r\nimport ReactDOM, { hydrate }from 'react-dom';\r\nimport { BrowserRouter } from 'react-router-dom';\r\nimport smoothscroll from 'smoothscroll-polyfill';\r\nimport AppRoot from './AppRoot';\r\nimport GraphQLClientFactory from './lib/GraphQLClientFactory';\r\nimport config from './temp/config';\r\nimport i18ninit from './i18n';\r\nimport { createFocusStylesObserver } from '_utils/styles';\r\n\r\n/* Enable smooth scroll in browsers that dont support it (Safari, IE) */\r\nsmoothscroll.polyfill();\r\n\r\n/* eslint-disable no-underscore-dangle */\r\n// Keep React 17 way\r\nlet renderFunction = ReactDOM.render;\r\n\r\nlet initLanguage = config.defaultLanguage;\r\n\r\n/*\r\n SSR Data\r\n If we're running in a server-side rendering scenario,\r\n the server will provide JSON in the #__JSS_STATE__ element\r\n for us to acquire the initial state to run with on the client.\r\n\r\n This enables us to skip a network request to load up the layout data.\r\n We are emitting a quiescent script with JSON so that we can take advantage\r\n of JSON.parse()'s speed advantage over parsing full JS, and enable\r\n working without needing `unsafe-inline` in Content Security Policies.\r\n\r\n SSR is initiated from /server/server.js.\r\n*/\r\nlet __JSS_STATE__ = null;\r\nconst ssrRawJson = document.getElementById('__JSS_STATE__');\r\nif (ssrRawJson) {\r\n __JSS_STATE__ = JSON.parse(ssrRawJson.innerHTML);\r\n}\r\nif (__JSS_STATE__) {\r\n // when React initializes from a SSR-based initial state, you need to render with `hydrate` instead of `render`\r\n renderFunction = hydrate;\r\n\r\n // set i18n language SSR state language instead of static config default language\r\n initLanguage = __JSS_STATE__.sitecore.context.language;\r\n}\r\n\r\n/*\r\n GraphQL Data\r\n The Apollo Client needs to be initialized to make GraphQL available to the JSS app.\r\n Not using GraphQL? Remove this, and the ApolloContext from `AppRoot`.\r\n*/\r\n// Apollo supports SSR of GraphQL queries, so like JSS SSR, it has an object we can pre-hydrate the client cache from\r\n// to avoid needing to re-run GraphQL queries after the SSR page loads\r\nconst initialGraphQLState =\r\n __JSS_STATE__ && __JSS_STATE__.APOLLO_STATE ? __JSS_STATE__.APOLLO_STATE : null;\r\n\r\nconst graphQLClient = GraphQLClientFactory(config.graphQLEndpoint, false, initialGraphQLState);\r\n\r\n/*\r\n App Rendering\r\n*/\r\n// initialize the dictionary, then render the app\r\n// note: if not making a multlingual app, the dictionary init can be removed.\r\ni18ninit(initLanguage).then(() => {\r\n // HTML element to place the app into\r\n const rootElement = document.getElementById('root');\r\n const loaderElement = document.getElementById('loader');\r\n createFocusStylesObserver(document.body).start();\r\n\r\n // IIFE show content\r\n (function () {\r\n rootElement.classList.remove('hidden');\r\n rootElement.classList.add('loaded');\r\n loaderElement?.classList.add('hidden');\r\n })(document.documentElement);\r\n\r\n renderFunction(\r\n ,\r\n rootElement\r\n );\r\n \r\n});\r\n","/* eslint-disable import/first */\r\n\r\nimport 'cross-fetch/polyfill';\r\nimport { ApolloClient } from 'apollo-client';\r\nimport { InMemoryCache, IntrospectionFragmentMatcher } from 'apollo-cache-inmemory';\r\n\r\n/* eslint-disable import/order */\r\n\r\n/*\r\n INTROSPECTION DATA\r\n See https://www.apollographql.com/docs/react/recipes/fragment-matching.html\r\n This enables the Apollo cache to process fragments on interface types correctly.\r\n If this file does not exist, you may need to run the `jss graphql:update` script.\r\n*/\r\nimport introspectionQueryResultData from '../temp/GraphQLFragmentTypes.json';\r\n\r\n/*\r\n QUERY LINK SELECTION\r\n A link is transport which GraphQL queries are pushed across.\r\n You have many choices.\r\n See the apollo-link documentation for more details.\r\n\r\n NOTE: to use Sitecore Experience Editor it is essential that your\r\n link passes cookies along with requests (credentials: 'include').\r\n*/\r\n\r\n// choose between a basic HTTP link to run queries...\r\n// import { createHttpLink } from 'apollo-link-http';\r\n// const link = createHttpLink({ uri: endpoint, credentials: 'include' });\r\n\r\n// ...or a batched link (multiple queries within 10ms all go in one HTTP request)\r\nimport { BatchHttpLink } from 'apollo-link-batch-http';\r\n\r\n// ...and an automatic persisted query link, which reduces bandwidth by using query hashes to alias content\r\n// the APQ link is _chained_ behind another link that performs the actual HTTP calls, so you can choose\r\n// APQ + batched, or APQ + http links for example.\r\nimport { createPersistedQueryLink } from 'apollo-link-persisted-queries';\r\n\r\nexport default function (endpoint, ssr, initialCacheState) {\r\n /* HTTP link selection: default to batched + APQ */\r\n const link = createPersistedQueryLink().concat(\r\n new BatchHttpLink({ \r\n uri: endpoint,\r\n credentials: 'include',\r\n headers: {\r\n connection: \"keep-alive\"\r\n }\r\n })\r\n );\r\n\r\n const cache = new InMemoryCache({\r\n fragmentMatcher: new IntrospectionFragmentMatcher({\r\n introspectionQueryResultData,\r\n }),\r\n });\r\n\r\n return new ApolloClient({\r\n ssrMode: ssr,\r\n ssrForceFetchDelay: 100,\r\n link,\r\n cache: cache.restore(initialCacheState),\r\n });\r\n}\r\n","import i18n from 'i18next';\r\nimport fetchBackend from 'i18next-fetch-backend';\r\nimport { initReactI18next } from 'react-i18next';\r\nimport config from './temp/config';\r\n\r\n/**\r\n * Initializes the i18next library to provide a translation dictionary to the app.\r\n * If your app is not multilingual, this file and references to it can be removed.\r\n * Elsewhere in the app to use the dictionary `import { t } from 'i18next'; ... t('key')`\r\n * @param {string} language Optional, the initial language. Only used for SSR; otherwise language set in RouteHandler.\r\n * @param {*} dictionary Optional, the dictionary to load. Only used for SSR; otherwise, the dictionary is loaded via JSS dictionary service.\r\n */\r\nexport default function i18nInit(language, dictionary) {\r\n return new Promise((resolve, reject) => {\r\n const options = {\r\n debug: false,\r\n lng: language,\r\n fallbackLng: false, // fallback to keys\r\n load: 'currentOnly', // e.g. don't load 'es' when requesting 'es-MX' -- Sitecore config should handle this\r\n useCookie: false, // using URLs and Sitecore to store language context, don't need a cookie\r\n\r\n interpolation: {\r\n escapeValue: false, // not needed for react\r\n },\r\n };\r\n\r\n if (dictionary) {\r\n // if we got dictionary passed, that means we're in a SSR context with a server-provided dictionary\r\n // so we do not want a backend, because we already know all possible keys\r\n options.resources = {};\r\n options.resources[language] = {\r\n translation: dictionary,\r\n };\r\n\r\n i18n.use(initReactI18next).init(options, (error) => {\r\n if (error) reject(error);\r\n resolve();\r\n });\r\n } else {\r\n // We're running client-side, so we get translation data from the Sitecore dictionary API using fetch backend\r\n // For higher performance (but less simplicity), consider adding the i18n chained backend to a local cache option like the local storage backend.\r\n\r\n // eslint-disable-next-line\r\n const dictionaryServicePath = `${config.sitecoreApiHost}/sitecore/api/jss/dictionary/${config.jssAppName}/{{lng}}?sc_apikey=${config.sitecoreApiKey}`;\r\n\r\n options.backend = {\r\n loadPath: dictionaryServicePath,\r\n parse: (data) => {\r\n const parsedData = JSON.parse(data);\r\n if (parsedData.phrases) {\r\n return parsedData.phrases;\r\n }\r\n return parsedData;\r\n },\r\n };\r\n\r\n i18n\r\n .use(fetchBackend)\r\n .use(initReactI18next)\r\n .init(options, (error) => {\r\n if (error) reject(error);\r\n\r\n resolve();\r\n });\r\n }\r\n });\r\n}\r\n","import { useState, useEffect } from 'react';\r\nimport { canUseDOM } from 'exenv';\r\nimport { useDebouncedCallback } from 'use-debounce';\r\nimport mq, { getBreakpointKeys } from '_utils/styles/mq';\r\n\r\nconst breakpoints = getBreakpointKeys();\r\n\r\nconst getBreakpointIndex = (string) => breakpoints.indexOf(string);\r\n\r\n// Returns single string value of exact breakpoint (xs, sm, md, lg, xl)\r\nexport const useBreakpoint = (): string | undefined => {\r\n const getBreakpoint = () => {\r\n if (canUseDOM && window.matchMedia) {\r\n return breakpoints.find((point, index) => {\r\n const pointFrom = point;\r\n const pointTo = breakpoints.length - 1 !== index ? breakpoints[index + 1] : false;\r\n \r\n return pointTo ? \r\n window.matchMedia(mq.between(pointFrom, pointTo, false)).matches\r\n : window.matchMedia(mq(pointFrom, false)).matches;\r\n });\r\n }\r\n }\r\n\r\n const [breakpoint, setBreakpoint] = useState(getBreakpoint);\r\n\r\n const debouncedHandleResize = useDebouncedCallback(\r\n () => {\r\n const currentBreakpoint = getBreakpoint();\r\n if (currentBreakpoint !== breakpoint) {\r\n setBreakpoint(currentBreakpoint);\r\n }\r\n }, 500\r\n );\r\n\r\n useEffect(() => {\r\n if (canUseDOM) {\r\n window.addEventListener('resize', debouncedHandleResize.callback);\r\n return () => window.removeEventListener('resize', debouncedHandleResize.callback);\r\n }\r\n });\r\n\r\n return breakpoint;\r\n};\r\n\r\nexport const minBreakpoint = (breakpoint) => {\r\n return getBreakpointIndex(useBreakpoint()) >= getBreakpointIndex(breakpoint);\r\n}\r\n\r\nexport const maxBreakpoint = (breakpoint) => {\r\n return getBreakpointIndex(useBreakpoint()) < getBreakpointIndex(breakpoint);\r\n}","import { ComponentRendering } from '@sitecore-jss/sitecore-jss-react';\r\n\r\nexport type SearchDataType = {\r\n filterName?: string;\r\n filterValue?: string;\r\n searchTerm?: string;\r\n numberOfResults?: string;\r\n searchPage?: string;\r\n searchResult?: string;\r\n}\r\n\r\nexport type UserRestrictedAccess = {\r\n displayName?: string;\r\n fields?: any;\r\n id: string;\r\n name: string;\r\n url?: string;\r\n}\r\n\r\nexport type DigitalDataProps = {\r\n accordion?: {\r\n name?: string;\r\n text?: string;\r\n };\r\n authenticatedContent?: boolean;\r\n authenticatedContentPermissions?: string;\r\n carousel?: {\r\n carouselName?: string;\r\n };\r\n download?: {\r\n fileName?: string;\r\n fileTitle?: string;\r\n };\r\n form?: {\r\n errorName?: string;\r\n formName?: string;\r\n update?: string;\r\n };\r\n link?: {\r\n linkName?: string;\r\n linkDestination?: string;\r\n topic?: string;\r\n };\r\n page: {\r\n contentType?: string;\r\n contributor?: string;\r\n language?: string;\r\n multimediaType?: string;\r\n pageDescription?: string;\r\n pageListingDescription?: string;\r\n pageName?: string;\r\n pageType?: string;\r\n pageurl?: string;\r\n primaryTopic?: string;\r\n publishedDate?: string;\r\n readTime?: string;\r\n siteSection?: string;\r\n sponsor?: string;\r\n topicTags?: string;\r\n };\r\n member?: {\r\n countryRegion?: string;\r\n countryArea?: string;\r\n stateProvince: string;\r\n cpaID?: string;\r\n cpdhoursPendingByTriennium?: string;\r\n cpdRequired?: string;\r\n cpdtrienniumEndDate?: string;\r\n designation?: string;\r\n division?: string;\r\n loginStatus?: string;\r\n profileType?: string;\r\n userType?: string;\r\n };\r\n podcast?: {\r\n podcastPlatform?: string;\r\n };\r\n search?: SearchDataType;\r\n section?: {\r\n title?: string;\r\n option?: string;\r\n };\r\n social?: {\r\n sharedPlatform?: string;\r\n };\r\n};\r\n\r\nexport type DigitalDataContextProps = {\r\n digitalData: DigitalDataProps;\r\n rendering: ComponentRendering & {\r\n fields: {\r\n data: {\r\n datasource: any;\r\n }\r\n };\r\n };\r\n setDigitalData: (digitalData: DigitalDataProps) => void;\r\n sitecoreContext: any;\r\n};\r\nexport interface AnalyticsDataProps {\r\n digitalData?: DigitalDataProps;\r\n setDigitalData?: (digitalData: DigitalDataProps) => void;\r\n trackingName?: { value: string };\r\n};\r\n\r\nexport const ANALYTICS_QS_KEY = 'icid';\r\n\r\nexport type LinkTrackingEvent = (name: string, destination: string) => void;\r\n","import { canUseDOM } from 'exenv';\r\nimport qs from 'query-string';\r\nimport { keys, omit } from 'ramda';\r\n\r\nimport { ANALYTICS_QS_KEY } from '_containers/DigitalDataContext/definitions';\r\n\r\n// setQueryStringWhithoutPageReload: replaces the current query string value\r\n// with the new provided value without triggering a page refresh.\r\nexport const setQueryStringWithoutPageReload = (qsValue) => {\r\n if (!canUseDOM) {\r\n return;\r\n }\r\n\r\n const newurl =\r\n `${window.location.protocol}//${window.location.host}${window.location.pathname}${qsValue}`;\r\n\r\n window.history.pushState({ path: newurl }, '', newurl);\r\n};\r\n\r\n// setQueryStringValue: updates the query string parameters only for the\r\n// provided key, keeping the remaining parameters intact.\r\nexport const setQueryStringValue = (key, value, queryString = undefined, options) => {\r\n if (!canUseDOM) {\r\n return;\r\n }\r\n\r\n if (queryString === undefined) {\r\n queryString = window.location.search;\r\n }\r\n\r\n if (value === '') value = undefined;\r\n const values = qs.parse(queryString);\r\n const newQsValue = qs.stringify({ ...values, [key]: value }, options);\r\n setQueryStringWithoutPageReload(`?${newQsValue}`);\r\n};\r\n\r\n// getQueryStringValue: returns the query string value for the provided key.\r\nexport const getQueryStringValue = (key, queryString = undefined) => {\r\n if (!canUseDOM) {\r\n return;\r\n }\r\n\r\n if (queryString === undefined) {\r\n queryString = window.location.search;\r\n }\r\n\r\n const values = qs.parse(queryString);\r\n return values[key];\r\n};\r\n\r\n// deleteKeyFromQueryString: removes the key from query string\r\nexport const deleteKeyFromQueryString = (key, queryString = undefined) => {\r\n if (!canUseDOM || !key) {\r\n return;\r\n }\r\n\r\n if (queryString === undefined) {\r\n queryString = window.location.search;\r\n }\r\n\r\n const qsObj = qs.parse(queryString);\r\n\r\n if (keys(qsObj)?.length && keys(qsObj).indexOf(key) >= 0) {\r\n const newqsObj = omit(['ref'], qsObj);\r\n const newQsValue = qs.stringify(newqsObj);\r\n setQueryStringWithoutPageReload(`?${newQsValue}`);\r\n }\r\n};\r\n\r\nexport const convertStringToKebabCase = (str: string) => str.toLowerCase().replace(/ /g, '-');\r\n\r\nexport const appendAnalyticsTrackingQueryString = (link, trackingName) => {\r\n\r\n const { href, url, querystring } = link;\r\n const urlPath = href || url;\r\n\r\n if (!urlPath) {\r\n return;\r\n }\r\n\r\n const mergedQueryStringWithTracking = qs.stringify({\r\n [ANALYTICS_QS_KEY]: convertStringToKebabCase(trackingName),\r\n ...qs.parse(querystring)\r\n });\r\n\r\n const trackedURL =\r\n mergedQueryStringWithTracking ?\r\n urlPath.concat('?', mergedQueryStringWithTracking)\r\n : urlPath;\r\n\r\n return trackedURL;\r\n};\r\n\r\nexport const convertHashToObject = (hash: string) =>\r\n hash.split(\"&\")\r\n .map(v => v.split(\"=\"))\r\n .reduce((pre, [key, value]) => ({ ...pre, [key]: value }), {});\r\n\r\n\r\n","import styled from 'styled-components';\r\n\r\nimport { color, spacing, flex, layout, transitions, text } from '_utils/props/';\r\n\r\nexport default styled.div`\r\n ${color}\r\n ${spacing}\r\n ${flex}\r\n ${layout}\r\n ${transitions}\r\n ${text}\r\n`;\r\n","import { compose } from 'ramda';\r\nimport React, { useState, useEffect, forwardRef, ReactNode, useRef } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport Flickity, { FlickityOptions } from 'react-flickity-component';\r\n\r\nimport { withDigitalDataContext } from '_containers/DigitalDataContext';\r\nimport { AnalyticsDataProps } from '_containers/DigitalDataContext/definitions';\r\n\r\nimport { emitTrackEvent, setObjectData } from '_utils/helpers/analytics';\r\nimport { warnInDev } from '_utils/helpers/dev';\r\nimport { usePrevious } from '_utils/hooks';\r\nimport { SimpleArrow } from '_utils/icons';\r\n\r\nimport {\r\n Container,\r\n FlickityWrapper,\r\n PrevNextPosition,\r\n PrevNextButton,\r\n ArrowWrapper\r\n} from './StyledCarousel';\r\nimport ScreenReader from '../ScreenReader';\r\n\r\nexport type CarouselOptions = {\r\n className?: string;\r\n disableImagesLoaded?: boolean;\r\n};\r\n\r\nconst defaultOptions = {\r\n className: '',\r\n disableImagesLoaded: true\r\n};\r\n\r\nconst defaultFlickityOptions = {\r\n contain: true,\r\n draggable: true,\r\n freeScroll: true,\r\n pageDots: true,\r\n prevNextButtons: false,\r\n setGallerySize: true,\r\n static: true,\r\n accessibility: true,\r\n lazyLoad: true\r\n};\r\n\r\ntype CarouselProps = AnalyticsDataProps & {\r\n options?: CarouselOptions;\r\n flickityOptions?: FlickityOptions;\r\n children: ReactNode;\r\n // This is for 1. AutoPlay feature 2. Hide the buttons\r\n hidePrevNextButtonsOnMobile?: boolean;\r\n};\r\n\r\nconst isInteractive = (element) => {\r\n if (!element || !element.tagName) {\r\n return false;\r\n }\r\n\r\n return element.tagName === 'A' || element.tagName === 'BUTTON';\r\n};\r\n\r\n// not very robust: just gets first anchor or button\r\nconst getInteractiveChild = (element) => {\r\n if (!element) {\r\n return null;\r\n }\r\n return element.querySelector('a, button');\r\n};\r\n\r\nconst getInteractiveElement = (element) => isInteractive(element) ? element : getInteractiveChild(element);\r\n\r\n// return true if element (or DOM ancestor) has flickity is-selected\r\nconst elementCellIsActive = (element) => {\r\n if (!element) {\r\n return null;\r\n }\r\n\r\n while (element) {\r\n if (element.classList.contains('is-selected')) {\r\n return true;\r\n }\r\n\r\n if (element.classList.contains('flickity-slider')) {\r\n return false;\r\n }\r\n\r\n element = element.parentNode;\r\n }\r\n\r\n return null;\r\n};\r\n\r\n// get the top level cell element\r\nconst getCellElement = (element) => {\r\n if (!element) {\r\n return null;\r\n }\r\n\r\n while (element) {\r\n const cellIndex = element.getAttribute('data-cellindex');\r\n\r\n if (cellIndex !== '' && cellIndex !== null) {\r\n return element;\r\n }\r\n\r\n if (element.classList.contains('flickity-slider')) {\r\n return null;\r\n }\r\n\r\n element = element.parentNode;\r\n }\r\n\r\n return null;\r\n};\r\n\r\n// get the slide index for this element (@see flickity api documentation on slides)\r\nconst getElementSlideIndex = (slides, element) => {\r\n element = getCellElement(element);\r\n\r\n if (!slides || !element) {\r\n return null;\r\n }\r\n\r\n for (let i = 0; i < slides.length; i++) {\r\n const cells = slides[i].cells;\r\n for (let j = 0; j < cells.length; j++) {\r\n const cell = cells[j];\r\n if (cell.element === element) {\r\n return i;\r\n }\r\n }\r\n }\r\n\r\n return null;\r\n};\r\n\r\nconst Carousel = forwardRef(\r\n ({ children, options, flickityOptions, digitalData, setDigitalData, trackingName, hidePrevNextButtonsOnMobile }, ref) => {\r\n options = {\r\n ...defaultOptions,\r\n ...options\r\n };\r\n\r\n flickityOptions = {\r\n ...defaultFlickityOptions,\r\n ...flickityOptions\r\n };\r\n\r\n const [t] = useTranslation();\r\n const [flickity, setFlickity] = useState(null);\r\n const prevFlickity = usePrevious(flickity);\r\n const [prevEnabled, setPrevEnabled] = useState(false);\r\n const [nextEnabled, setNextEnabled] = useState(false);\r\n const numItems = React.Children.count(children);\r\n const wrapperRef = useRef();\r\n\r\n if (numItems === 0) {\r\n return null;\r\n }\r\n\r\n // Cell.prototype.setAriaHidden = function( val ) {\r\n // this.element.setAttribute( 'aria-hidden', val );\r\n // };\r\n\r\n // listen to cell focus and update current slide index if the\r\n // focused cell is outside the viewport\r\n useEffect(() => {\r\n if (flickity) {\r\n const resize = flickity.resize;\r\n flickity.resize = () => {\r\n flickity.element.classList.remove(`flickity-resize`);\r\n resize.call(flickity);\r\n flickity.element.classList.add(`flickity-resize`);\r\n };\r\n\r\n setTimeout(() => flickity.resize(), 100);\r\n }\r\n\r\n const cellFocusListener = (e) => {\r\n if (e && e.target) {\r\n const focusIndex = e.target.getAttribute('data-focusindex');\r\n if (focusIndex === '' || focusIndex === null) {\r\n return;\r\n }\r\n\r\n if (elementCellIsActive(e.target) === false) {\r\n const slideIndex = getElementSlideIndex(flickity.slides, e.target);\r\n\r\n if (slideIndex !== null) {\r\n flickity.select(slideIndex);\r\n }\r\n\r\n // correct browser automagic scroll behaviour on the parent with overflow\r\n if (wrapperRef.current) {\r\n (wrapperRef.current as HTMLElement).scrollLeft = 0;\r\n }\r\n }\r\n }\r\n };\r\n\r\n // update prev next buttons based on scroll\r\n const scrollListener = (n) => {\r\n const overflows = flickity?.slides?.length > 1 || false;\r\n setPrevEnabled(overflows && n > 0.001);\r\n setNextEnabled(overflows && n < 0.999);\r\n };\r\n\r\n const changeListener = () => {\r\n\r\n // emit tracking event if name provided\r\n if (trackingName && typeof setDigitalData === 'function') {\r\n setDigitalData(\r\n setObjectData(\r\n ['carousel'],\r\n { carouselName: trackingName },\r\n digitalData\r\n )\r\n );\r\n emitTrackEvent('carouselSwipe');\r\n }\r\n\r\n flickity.getCellElements().forEach((element, index) => {\r\n // flickity messes this up - just remove\r\n element?.removeAttribute('aria-hidden');\r\n });\r\n };\r\n\r\n if (!prevFlickity && flickity) {\r\n // flickity initialization\r\n flickity.on('scroll', scrollListener);\r\n flickity.on('change', changeListener);\r\n\r\n flickity.getCellElements().forEach((element, index) => {\r\n element.setAttribute('data-cellindex', index);\r\n const el = getInteractiveElement(element);\r\n\r\n if (el) {\r\n el.setAttribute('data-focusindex', index);\r\n el.addEventListener('focus', cellFocusListener);\r\n }\r\n });\r\n\r\n return () => {\r\n // flickity clean up\r\n flickity.getCellElements().forEach((element) => {\r\n const el = getInteractiveElement(element);\r\n if (el) {\r\n el.removeEventListener('focus', cellFocusListener);\r\n }\r\n });\r\n flickity.off('scroll', scrollListener);\r\n flickity.off('change', changeListener);\r\n };\r\n }\r\n // ignore prevFlickity dep\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [flickity]);\r\n\r\n return (\r\n \r\n \r\n {\r\n flickity.previous();\r\n try {\r\n flickity.once('settle', (i) => {\r\n flickity.getCellElements()[i].focus();\r\n });\r\n } catch (err) {\r\n warnInDev(err);\r\n }\r\n }}\r\n disabled={!prevEnabled}\r\n >\r\n {t('accessibility-previous-slide')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n setFlickity(flickity);\r\n }}\r\n >\r\n {children}\r\n \r\n \r\n \r\n {\r\n flickity.next();\r\n try {\r\n flickity.once('settle', (i) => {\r\n flickity.getCellElements()[i].focus();\r\n });\r\n } catch (err) {\r\n warnInDev(err);\r\n }\r\n }}\r\n disabled={!nextEnabled}\r\n >\r\n {t('accessibility-next-slide')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n);\r\n\r\nexport default compose(withDigitalDataContext)(Carousel);\r\n","import styled from 'styled-components';\r\n\r\nimport { safeFocusRemoval, focusOutline } from '../../styles/focus';\r\nimport { caption1 } from '../../styles/text'; // can't import color here\r\nimport color from '../../styles/color';\r\n\r\nexport const Trigger = styled.button`\r\n border: 0;\r\n background: none;\r\n padding: 0;\r\n margin: 0;\r\n position: relative;\r\n cursor: pointer;\r\n\r\n &:focus {\r\n ${safeFocusRemoval}\r\n ${focusOutline}\r\n }\r\n`;\r\n\r\nexport const TriggerText = styled.span`\r\n ${caption1}\r\n color: ${color('element.primary2')};\r\n transition: opacity 400ms;\r\n\r\n opacity: ${({ hide }) => (hide ? 0 : 1)};\r\n\r\n`;\r\n\r\nexport const Status = styled.span`\r\n position: absolute;\r\n bottom: 0;\r\n left: 0;\r\n opacity: 1;\r\n transform: translateY(0);\r\n transition: opacity 400ms, transform 400ms;\r\n ${caption1}\r\n color: ${({ type }) => (type === 'success' ? '#2DB84B' : '#B00020')};\r\n margin: 0;\r\n\r\n\r\n &[aria-hidden='true'] {\r\n opacity: 0;\r\n transform: translateY(5px);\r\n visibility: hidden;\r\n }\r\n`;\r\n","import React, { useState, useEffect } from 'react';\r\nimport copy from 'copy-to-clipboard';\r\n\r\nimport { CopyTextProps } from './definitions';\r\nimport { Trigger, TriggerText, Status } from './StyledCopyText';\r\n\r\nconst CopyText: React.FC = ({\r\n displayText,\r\n toBeCopied,\r\n success,\r\n failed,\r\n tabIndex\r\n}) => {\r\n const [successVisible, setSuccessVisible] = useState(false);\r\n const [failureVisible, setFailureVisible] = useState(false);\r\n\r\n useEffect(() => {\r\n let timer;\r\n\r\n if (successVisible || failureVisible) {\r\n timer = setTimeout(() => {\r\n setSuccessVisible(false);\r\n setFailureVisible(false);\r\n }, 2000);\r\n }\r\n\r\n return () => {\r\n clearTimeout(timer);\r\n };\r\n });\r\n\r\n const handleTriggerClick = (toBeCopied, onCopy) => {\r\n const result = copy(toBeCopied);\r\n\r\n onCopy(result);\r\n };\r\n\r\n const onCopy = (copied: boolean) => {\r\n if (copied) {\r\n setSuccessVisible(true);\r\n } else {\r\n setFailureVisible(true);\r\n }\r\n };\r\n\r\n return (\r\n \r\n {displayText}\r\n \r\n {success}\r\n \r\n \r\n {failed}\r\n \r\n \r\n );\r\n};\r\n\r\nCopyText.defaultProps = {\r\n displayText: 'Copy',\r\n success: 'Copied!',\r\n failed: 'Failed!',\r\n tabIndex: null\r\n};\r\n\r\nexport default CopyText;\r\n","import styled from 'styled-components';\r\nimport { textBody2, iconColorOnPrint, mq } from '_utils/styles';\r\nimport svg from '../../styles/svg';\r\n\r\nexport const AttributeRow = styled.div`\r\n display: flex;\r\n width: 100%;\r\n align-items: flex-start;\r\n`;\r\n\r\nexport const AttributeValue = styled.span`\r\n ${textBody2}\r\n flex: 1 1 auto;\r\n margin: 0;\r\n`;\r\n\r\nexport const AttributeIcon = styled.span`\r\n ${svg(24, 24)}\r\n width: 20px;\r\n flex: none;\r\n margin: 0px 8px 0 0px;\r\n\r\n ${mq('md')} {\r\n margin: 2px 8px 0 0px;\r\n }\r\n\r\n path {\r\n fill: ${({ theme }) => theme.colors.element.neutralWhite};\r\n ${iconColorOnPrint}\r\n }\r\n`;\r\n","import styled from 'styled-components';\r\nimport { fixedBody12, iconColorOnPrint, mq } from '_utils/styles';\r\nimport svg from '../../styles/svg';\r\n\r\nexport const AttributeRow = styled.div`\r\n display: flex;\r\n width: 100%;\r\n align-items: flex-start;\r\n`;\r\n\r\nexport const AttributeValue = styled.span`\r\n ${fixedBody12}\r\n flex: 1 1 auto;\r\n margin: 0;\r\n`;\r\n\r\nexport const AttributeIcon = styled.span`\r\n ${svg(20, 20)}\r\n width: 20px;\r\n margin: 0 2px 0 0;\r\n\r\n path {\r\n fill: ${({ theme }) => theme.lastUpdated.pathFillColor};\r\n ${iconColorOnPrint}\r\n }\r\n`;\r\n","import React from 'react';\r\n\r\n\r\nimport Icon from '_components/Icon';\r\nimport { dateConverter } from '_utils/helpers';\r\nimport { warnInDev } from '_utils/helpers/dev';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { AttributeRow, AttributeIcon, AttributeValue } from './StyledLastUpdated';\r\n\r\nfunction LastUpdated({ systemDateUpdated }) {\r\n const [t] = useTranslation();\r\n const { value } = systemDateUpdated;\r\n const output = dateConverter(value, { isUTC: true, outputFormat: 'DD MMM YYYY' });\r\n\r\n if (!output) {\r\n warnInDev(`LastUpdated : dateConverter failed to convert ${value}`);\r\n return null;\r\n }\r\n\r\n const { attrDate, visualDate } = output;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {t('publication-page-banner-last-updated-prefix')}{' '}\r\n {' '}\r\n \r\n \r\n );\r\n}\r\n\r\nexport default LastUpdated;\r\n","export enum LinkTypes {\r\n External = 'external',\r\n Internal = 'internal'\r\n}\r\n\r\nexport enum LinkTheme {\r\n Breadcrumb = 'breadcrumb',\r\n Featured = 'featured',\r\n Primary = 'primary',\r\n Secondary = 'secondary',\r\n None = 'none'\r\n}\r\n\r\nexport enum LinkSize {\r\n Default = 'default',\r\n Small = 's'\r\n}\r\n\r\nexport type LinkProps = React.PropsWithChildren<{\r\n analyticsOptions?: {\r\n analyticsTrackingName?: string;\r\n datasourceName?: string;\r\n };\r\n editMode?: boolean;\r\n className?: string;\r\n fallbackTitle?: string;\r\n field?: {\r\n value?: {\r\n anchor?: string;\r\n class?: string;\r\n href?: string;\r\n id?: string;\r\n linktype?: LinkTypes;\r\n querystring?: string;\r\n text?: string;\r\n title?: string;\r\n target?: string;\r\n };\r\n };\r\n linkTheme?: LinkTheme;\r\n linkSize?: LinkSize;\r\n linkAriaCurrent?: string | null;\r\n tag?: string;\r\n childrenOnly?: boolean;\r\n childrenAfterText?: boolean;\r\n disabled?: boolean;\r\n as?: string;\r\n hasNoHref?: boolean;\r\n hideExternalIcon?: boolean;\r\n iconName?: any;\r\n noIcon?: boolean;\r\n}>;\r\n","import React from 'react';\r\nimport styled, { css } from 'styled-components';\r\nimport { NavLink } from 'react-router-dom';\r\n\r\nimport { linkStyle } from '_utils/styles/'; // these import fine\r\nimport svg from '_utils/styles/svg'; // but svg isn't ...\r\nimport { textBody1, textBody2 } from '_utils/styles/text'; // but textBody2 isn't ...\r\nimport color from '_utils/styles/color'; // but color isn't ...\r\n\r\nimport { LinkTheme, LinkSize } from './definitions';\r\n\r\nconst handleLinkTheme = ({ linkTheme, theme }) => {\r\n if (linkTheme === LinkTheme.None) {\r\n return null;\r\n }\r\n\r\n return css`\r\n ${linkStyle(theme.colors.link[linkTheme])}\r\n `;\r\n};\r\n\r\nexport const LinkChildrenWrapper = styled.span``;\r\n\r\nexport const LinkTextWrapper = styled.span``;\r\n\r\nexport const LinkIconWrapper = styled.span`\r\n line-height: 0;\r\n position: relative;\r\n white-space: nowrap;\r\n\r\n &.featuredIcon {\r\n padding-right: 28px;\r\n }\r\n`;\r\n\r\nexport const SvgWrapper = styled.span`\r\n ${svg(16, 16)}\r\n width: 16px;\r\n margin-left: 8px;\r\n margin-right: 2px;\r\n top: 2px;\r\n position: relative;\r\n\r\n .featuredIcon & {\r\n ${svg(24, 24)}\r\n position: absolute;\r\n top: -3px;\r\n width: 24px;\r\n }\r\n\r\n path {\r\n fill: currentColor;\r\n }\r\n`;\r\n\r\n// Need to remove extra props getting sent to the dom\r\n// https://github.com/styled-components/styled-components/issues/135\r\nexport const StyledLink = styled(({ linkTheme, linkUrl, linkSize, linkAriaCurrent, ...rest }) =>\r\n )`\r\n ${handleLinkTheme}\r\n ${({ theme, linkSize }) => (linkSize === LinkSize.Small ? textBody2({ theme }) : textBody1({ theme }))}\r\n display: inline;\r\n margin: 0;\r\n`;\r\n\r\nexport const EditorDiv = styled.div``;\r\n","import { Link as SCLink } from '@sitecore-jss/sitecore-jss-react';\r\nimport { compose } from 'ramda';\r\nimport React from 'react';\r\n\r\nimport Icon from '_components/Icon';\r\nimport NavItem from '_components/NavItem';\r\nimport {\r\n withEditMode,\r\n withEditModeNotice,\r\n} from '_containers/BaseComponent';\r\nimport { getLink } from '../../helpers/link';\r\n\r\nimport {\r\n LinkProps,\r\n LinkSize,\r\n LinkTheme,\r\n LinkTypes,\r\n} from './definitions';\r\n\r\nimport {\r\n EditorDiv,\r\n LinkChildrenWrapper,\r\n LinkIconWrapper,\r\n LinkTextWrapper,\r\n StyledLink,\r\n SvgWrapper,\r\n} from './StyledLink';\r\n\r\n\r\nconst EditorText = compose(withEditModeNotice)(EditorDiv);\r\n\r\nconst Link: React.FC = ({\r\n analyticsOptions,\r\n children,\r\n editMode,\r\n linkTheme,\r\n linkSize,\r\n className,\r\n field,\r\n fallbackTitle,\r\n childrenAfterText,\r\n childrenOnly,\r\n disabled,\r\n tag,\r\n hasNoHref,\r\n hideExternalIcon,\r\n iconName,\r\n noIcon = false,\r\n ...props\r\n}) => {\r\n // Link with no href in editMode renders nothing with StyledLink in EE,\r\n // so instead if specified as a Link that hasNoHref, we just render the real thing (below).\r\n if (editMode && !hasNoHref) {\r\n const { href, text } = field?.value || {};\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n }\r\n\r\n const linkObj = getLink(field?.value, analyticsOptions);\r\n\r\n if (linkObj || hasNoHref) {\r\n return (\r\n
    \r\n \r\n {\r\n childrenOnly\r\n ? (\r\n \r\n {children}\r\n \r\n ) : (\r\n <>\r\n {\r\n !childrenAfterText && children && (\r\n \r\n {children}\r\n \r\n )\r\n }\r\n\r\n \r\n {linkObj?.text || fallbackTitle || linkObj?.url}\r\n \r\n\r\n {\r\n childrenAfterText && children && (\r\n \r\n {children}\r\n \r\n )\r\n }\r\n\r\n {\r\n !noIcon && !iconName && (!hideExternalIcon && linkObj?.type === LinkTypes.External\r\n || !!hasNoHref && field?.value?.linktype === LinkTypes.External) && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n\r\n {/* Featured link */}\r\n {\r\n !noIcon && !iconName && linkObj?.type === LinkTypes.Internal && linkTheme === 'featured' && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n {\r\n !noIcon && iconName !== undefined && \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n )\r\n }\r\n \r\n
    \r\n );\r\n }\r\n\r\n return null;\r\n};\r\n\r\nLink.defaultProps = {\r\n tag: 'a',\r\n linkTheme: LinkTheme.Primary,\r\n linkSize: LinkSize.Default,\r\n linkAriaCurrent: null\r\n};\r\n\r\nexport default compose(withEditMode)(Link);\r\n","import styled, { css } from 'styled-components';\r\nimport { Image as SCImage } from '@sitecore-jss/sitecore-jss-react';\r\nimport { warnInDev } from '_utils/helpers/dev';\r\n\r\nconst imageTypes = {\r\n publication: (theme) => css`\r\n &:before {\r\n content: '';\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background-color: ${theme.colors.dna.default};\r\n border-radius: 50%;\r\n @media print {\r\n background-color: transparent;\r\n }\r\n }\r\n\r\n &:after {\r\n content: '';\r\n display: block;\r\n width: 100%;\r\n padding-bottom: 100%;\r\n }\r\n\r\n img {\r\n position: absolute;\r\n box-shadow: 0px 10px 30px rgba(0, 0, 0, 0.1);\r\n border-radius: 4px;\r\n\r\n &.portrait {\r\n top: 0;\r\n left: 50%;\r\n transform: translateX(-50%);\r\n height: 100%;\r\n width: auto;\r\n }\r\n\r\n &.landscape {\r\n top: 50%;\r\n left: 0;\r\n width: 100%;\r\n height: auto;\r\n transform: translateY(-50%);\r\n }\r\n }\r\n `,\r\n focus: (theme) => css`\r\n height: 100%;\r\n\r\n img {\r\n object-fit: cover;\r\n font-family: 'object-fit: cover';\r\n }\r\n `,\r\n simple: (theme) => css`\r\n height: 100%;\r\n\r\n img {\r\n object-fit: cover;\r\n font-family: 'object-fit: cover';\r\n }\r\n `\r\n};\r\n\r\n/* \r\n Applying img styles here as Sitecore image component doesn't like custom props.\r\n Throws: Warning: React does not recognize the `imageType` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `imagetype` instead. If you accidentally passed it from a parent component, remove it from the DOM element.\r\n*/\r\nconst handleImageTypesContainer = ({ theme, imageType }) => {\r\n if (typeof imageTypes[imageType] !== 'undefined') {\r\n return imageTypes[imageType](theme);\r\n }\r\n\r\n warnInDev(\r\n `The specifed imageType (${imageType}) hasn't been configured. Fallback back to simple imageType.`\r\n );\r\n\r\n return imageTypes.simple(theme);\r\n};\r\n\r\nconst imageStyles = css`\r\n width: 100%;\r\n height: 100%;\r\n display: inline-block;\r\n margin-top: auto;\r\n margin-bottom: auto;\r\n position: relative;\r\n z-index: 5;\r\n`;\r\n\r\nexport const EditorImage = styled(SCImage)`\r\n ${imageStyles}\r\n`;\r\n\r\nexport const Image = styled.img`\r\n ${imageStyles}\r\n`;\r\n\r\nexport const ImageWrapper = styled.div`\r\n position: relative;\r\n width: 100%;\r\n\r\n ${handleImageTypesContainer}\r\n`;\r\n","import React from 'react';\r\nimport { compose } from 'ramda';\r\nimport { withEditMode } from '_containers/BaseComponent';\r\nimport { convertSrcJss, createSrcSet } from '../../media';\r\n\r\n\r\nimport { ImageWrapper, Image, EditorImage } from './StyledListingImage';\r\nimport { ListingImageProps } from './definitions';\r\n\r\nconst ListingImage: React.FC = ({\r\n image,\r\n imageType,\r\n imageAspect = '',\r\n editMode\r\n}) => {\r\n let imageComponent;\r\n\r\n if (editMode) {\r\n imageComponent = ;\r\n } else {\r\n imageComponent = (\r\n \r\n );\r\n }\r\n\r\n return {imageComponent};\r\n};\r\n\r\nListingImage.defaultProps = {\r\n imageType: 'simple'\r\n};\r\n\r\nexport default compose(withEditMode)(ListingImage);\r\n","import styled, { css } from 'styled-components';\r\n// import { isExperienceEditorActive } from '@sitecore-jss/sitecore-jss-react';\r\n\r\nimport { isEditorActive } from '@sitecore-jss/sitecore-jss-react';\r\n\r\nimport { section } from '_utils/styles';\r\nimport { spacing } from '_utils/props';\r\nimport Grid from '_utils/components/Grid';\r\n\r\nconst handleBackground = (color) =>\r\n ({ theme }) => css`\r\n background-color: ${theme.section.backgroundOverride[color]};\r\n `;\r\n\r\nexport const SectionWrapper = styled.section`\r\n ${({ theme }) => section({ theme })}\r\n\r\n &.db-fw {\r\n background-color: ${({ theme }) => theme.section.backgroundOverride.Grey};\r\n }\r\n\r\n ${(props) => props?.backgroundColor && handleBackground(props.backgroundColor)};\r\n\r\n &.is-empty {\r\n margin: 0 !important;\r\n padding: 0 !important;\r\n }\r\n`;\r\n\r\nconst styleKey = isEditorActive() ? 'mb' : 'mt';\r\nconst marginWildCard = { [styleKey]: 7 };\r\nconst marginFirstChild = { [styleKey]: 0 };\r\n\r\nexport const PlaceholderWrapper = styled(Grid.Item)`\r\n > * {\r\n ${({ theme }) => spacing({ ...theme, marginWildCard })}\r\n &.scEmptyPlaceholder,\r\n &:first-child {\r\n ${({ theme }) => spacing({ ...theme, marginFirstChild })}\r\n }\r\n }\r\n\r\n .is-empty & {\r\n margin: 0 !important;\r\n }\r\n`;\r\n","import styled from 'styled-components';\r\nimport { cssInlineSvg } from '_utils/styles/svg';\r\n\r\nexport const Container = styled.div`\r\n position: relative;\r\n & + & {\r\n margin-top: 8px;\r\n }\r\n`;\r\n\r\n// hidden input (but keep accessible)\r\nexport const Input = styled.input`\r\n position: absolute;\r\n right: 0;\r\n top: 50%;\r\n opacity: 0;\r\n transform: translateY(-50%);\r\n margin: 0;\r\n`;\r\n\r\nexport const Label = styled.label`\r\n display: block;\r\n z-index: 1;\r\n margin: 0;\r\n padding-left: 32px;\r\n\r\n &:hover {\r\n cursor: pointer;\r\n }\r\n`;\r\n\r\nexport const Check = styled.div`\r\n flex: none;\r\n width: 24px;\r\n height: 24px;\r\n border: ${({ theme }) => theme.colors.form.radio.borderHover};\r\n border-radius: 9999px;\r\n position: absolute;\r\n left: 0;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n pointer-events: none;\r\n\r\n &:before {\r\n content: '';\r\n background: ${cssInlineSvg(\r\n `\r\n \r\n `\r\n )}\r\n no-repeat;\r\n position: absolute;\r\n display: block;\r\n left: 50%;\r\n top: 50%; /* looks better */\r\n transform: translate(-50%, -50%);\r\n width: 11.71px;\r\n height: 8.72px;\r\n opacity: 0;\r\n }\r\n outline: 0;\r\n\r\n ${Input}:checked ~ & {\r\n &:before {\r\n opacity: 1;\r\n }\r\n\r\n background-color: ${({ theme }) => theme.colors.form.radio.selectedBackground};\r\n border: ${({ theme }) => theme.colors.form.radio.selectedBorder};\r\n }\r\n\r\n body:not(.safe-focus-removal) ${Input}:focus ~ & {\r\n &:after {\r\n position: absolute;\r\n left: -6px;\r\n top: -6px;\r\n content: '';\r\n width: calc(100% + 12px);\r\n height: calc(100% + 12px);\r\n border: 2px solid ${({ theme }) => theme.radio.body.focus.borderColor};\r\n border-radius: 9999px;\r\n }\r\n }\r\n\r\n [type='checkbox'] ~ & {\r\n border-radius: 4px;\r\n width: 20px;\r\n height: 20px;\r\n }\r\n\r\n body:not(.safe-focus-removal) ${Input}[type='checkbox']:focus ~ & {\r\n &:after {\r\n position: absolute;\r\n left: -6px;\r\n top: -6px;\r\n content: '';\r\n width: calc(100% + 12px);\r\n height: calc(100% + 12px);\r\n border: 2px solid ${({ theme }) => theme.radio.bodycheckboxFocus};\r\n border-radius: 6px;\r\n }\r\n }\r\n`;\r\n","import React, { ReactNode, forwardRef } from 'react';\r\n\r\nimport { Container, Input, Label, Check } from './StyledRadio';\r\n\r\ntype RadioProps = {\r\n id: string;\r\n name: string;\r\n value: any;\r\n checked: boolean;\r\n onChange: (e) => void;\r\n children: ReactNode;\r\n};\r\n\r\nexport type Ref = HTMLElement;\r\n\r\nconst Radio = forwardRef(\r\n ({ id, name, value, checked, children, onChange }, ref) => (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n);\r\n\r\nexport default Radio;\r\n","import styled from 'styled-components';\r\nimport { NavLink } from 'react-router-dom';\r\n\r\nimport { textBody2, iconColorOnPrint, mq } from '_utils/styles';\r\nimport svg from '../../styles/svg';\r\n\r\nexport const AttributeRow = styled.div`\r\n display: flex;\r\n width: 100%;\r\n align-items: flex-start;\r\n`;\r\n\r\nexport const AttributeValue = styled.span`\r\n ${textBody2}\r\n flex: 1 1 auto;\r\n margin: 0;\r\n`;\r\n\r\nexport const AttributeIcon = styled.span`\r\n ${svg(24, 24)}\r\n width: 20px;\r\n flex: none;\r\n margin: -2px 8px 0 0;\r\n\r\n ${mq('md')} {\r\n margin: 0px 8px 0 0;\r\n }\r\n\r\n path {\r\n fill: ${({ theme }) => theme.colors.element.neutralWhite};\r\n ${iconColorOnPrint}\r\n }\r\n`;\r\n\r\nexport const Link = styled(NavLink)`\r\n color: inherit;\r\n`;\r\n","import React from 'react';\r\n\r\nimport { SectionWrapper } from './StyledSection';\r\nimport { SectionProps } from './definitions';\r\n\r\nconst Section: React.FC = ({ backgroundColor, className, children, sectionTheme, ...rest }) => {\r\n\r\n const sectionThemeClass = typeof sectionTheme !== 'undefined' ? sectionTheme.toLowerCase() : '';\r\n const bgColor = typeof backgroundColor !== 'undefined' ? backgroundColor : '';\r\n\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n};\r\n\r\nexport default Section;\r\n","import styled from 'styled-components';\r\nimport {\r\n TRANSITIONING_CLASS,\r\n} from '_utils/helpers/render';\r\nimport { mq } from '_utils/styles';\r\n\r\nexport const Container = styled.div`\r\n background-color: #FFF;\r\n left: 0;\r\n height: 0;\r\n opacity: 0;\r\n position: absolute;\r\n transition: opacity 150ms linear;\r\n width: 100%;\r\n z-index: 2;\r\n\r\n .${TRANSITIONING_CLASS} & {\r\n height: 100%;\r\n opacity: 1;\r\n }\r\n\r\n > div {\r\n left: calc(50% - 24px);\r\n position: absolute;\r\n text-align: center;\r\n top: 150px;\r\n\r\n ${mq('md')} {\r\n top: 300px;\r\n }\r\n }\r\n`;","import React from 'react';\r\nimport { CoveoNoIndexWrapper } from '_containers/BaseComponent';\r\nimport { Spinner } from '_utils/components';\r\n\r\nimport {\r\n Container,\r\n} from './StyledSpaLoader';\r\n\r\nconst SpaLoader: React.FC = () => (\r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport default SpaLoader;\r\n","import React from 'react';\r\nimport { JsonLd } from 'react-schemaorg';\r\nimport {\r\n WithContext,\r\n} from 'schema-dts';\r\n\r\nimport { StructuredDataProps } from './definitions';\r\n\r\nconst StructuredData: React.FC = ({ context, route }) => {\r\n\r\n if (!context?.site?.name) {\r\n return null;\r\n }\r\n\r\n const contributors = route?.fields?.contributors || [];\r\n const author = contributors[0]?.fields?.fullName?.value ?? '';\r\n const datePublished = route?.fields?.published?.value ?? '';\r\n const headline = route?.fields?.pageTitle?.value ?? '';\r\n const image = route?.fields?.featuredImage?.value?.src ?? '';\r\n const url = context?.canonicalUrl ?? '';\r\n const logoUrl = 'https://cpaaustralia.com.au/dist/corporate/images/logo.jpg';\r\n\r\n const websiteData: WithContext = {\r\n \"@context\": \"https://schema.org\",\r\n \"@type\": \"NewsArticle\",\r\n \"mainEntityOfPage\": {\r\n \"@type\": \"WebPage\",\r\n \"@id\": url\r\n },\r\n \"headline\": headline,\r\n \"image\": [\r\n image,\r\n ],\r\n \"datePublished\": datePublished,\r\n \"author\": {\r\n \"@type\": \"Person\",\r\n \"name\": author\r\n },\r\n \"publisher\": {\r\n \"@type\": \"Organization\",\r\n \"name\": \"CPA Australia\",\r\n \"logo\": {\r\n \"@type\": \"ImageObject\",\r\n \"url\": logoUrl\r\n }\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n );\r\n};\r\n\r\nexport default StructuredData;\r\n","import styled from 'styled-components';\r\nimport { textBody2, iconColorOnPrint, mq } from '_utils/styles';\r\nimport svg from '../../styles/svg';\r\n\r\nexport const AttributeRow = styled.div`\r\n display: flex;\r\n width: 100%;\r\n align-items: flex-start;\r\n`;\r\n\r\nexport const AttributeValue = styled.span`\r\n ${textBody2}\r\n flex: 1 1 auto;\r\n margin: 0;\r\n`;\r\n\r\nexport const AttributeIcon = styled.span`\r\n ${svg(24, 24)}\r\n width: 20px;\r\n flex: none;\r\n margin: -1px 8px 0 0px;\r\n\r\n ${mq('md')} {\r\n margin: 1px 8px 0 0px;\r\n }\r\n\r\n path {\r\n fill: ${({ theme }) => theme.colors.element.neutralWhite};\r\n ${iconColorOnPrint}\r\n }\r\n`;\r\n","import React from 'react';\r\n\r\nimport { Time } from '_utils/icons';\r\nimport { AttributeRow, AttributeIcon, AttributeValue } from './StyledTimeEstimate';\r\n\r\nconst TimeEstimate = ({ estimate }) => (\r\n \r\n \r\n \r\n {estimate}\r\n \r\n );\r\n\r\nexport default TimeEstimate;\r\n","import styled from 'styled-components';\r\nimport ReactARIAToolTip from \"react-aria-tooltip\";\r\n\r\nimport {\r\n buttonReset,\r\n depth,\r\n fixedBody12,\r\n} from '_utils/styles';\r\n\r\nexport const Button = styled.button`\r\n ${buttonReset}\r\n color: ${({ theme }) => theme.tooltip.color};\r\n outline: 0;\r\n position:relative;\r\n top:-2px;\r\n\r\n body:not(.safe-focus-removal) &:focus {\r\n /* psuedo focus outline */\r\n &:before {\r\n border-radius: 3px;\r\n border: 2px solid ${({ theme }) => theme.tooltip.borderColorFocus};\r\n content: '';\r\n height: calc(100% + 1px);\r\n left: 4px;\r\n position: absolute;\r\n top: 0;\r\n width: 100%;\r\n }\r\n }\r\n\r\n svg {\r\n width: 16px;\r\n color: ${({ theme }) => theme.tooltip.svgColor};\r\n }\r\n `;\r\n\r\nexport const StyledReactARIAToolTip = styled(ReactARIAToolTip)`\r\n\r\n // Tooltips overrides for react-aria-tooltip\r\n .ra-tooltip-wrapper {\r\n display: inline-flex !important;\r\n height: 14px;\r\n }\r\n\r\n .ra-tooltip {\r\n z-index: ${depth.TOOL_TIP};\r\n background: transparent !important;\r\n max-width: 200px;\r\n width: max-content;\r\n\r\n &.top {\r\n transform: translate(-50%,-104%) !important;\r\n }\r\n\r\n .ra-tooltip-message {\r\n ${fixedBody12}\r\n background: ${({theme }) => theme.tooltip.background};\r\n border-radius: 4px;\r\n box-shadow: ${({ theme}) => theme.shadows.elevation16};\r\n color: ${({ theme }) => theme.tooltip.color};\r\n padding: 8px 16px;\r\n\r\n p {\r\n margin-bottom: 0;\r\n text-align: center;\r\n white-space: initial;\r\n }\r\n\r\n // notch on bottom\r\n &:after {\r\n border-top-color: ${({ theme }) => theme.tooltip.background} !important;\r\n }\r\n }\r\n }\r\n`\r\n","import React from 'react';\r\n\r\nimport Icon from '_components/Icon';\r\n\r\nimport { Button, StyledReactARIAToolTip } from './StyledTooltip';\r\n\r\ntype TooltipProps = {\r\n content: string;\r\n top?: string;\r\n bottom?: string;\r\n left?: string;\r\n right?: string;\r\n};\r\n\r\nconst Tooltip: React.FC = ({ content }) =>\r\n // margin-left thowing out position of tooltip\r\n <> \r\n \r\n \r\n ;\r\n\r\nexport default Tooltip;\r\n","import styled, { css } from 'styled-components';\r\nimport { spacing } from '_utils/props';\r\nimport { Text } from '@sitecore-jss/sitecore-jss-react';\r\nimport { textBody1, headingH2, headingH3, headingH4, headingH5, headingH6, mq } from '_utils/styles/';\r\n\r\nexport const Container = styled.div``;\r\n\r\nexport const HeaderSection = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n flex-wrap: wrap;\r\n`;\r\n\r\nexport const Heading = styled(Text)`\r\n flex-basis: 100%;\r\n flex-grow: 1;\r\n\r\n ${mq('md')} {\r\n flex-basis: initial;\r\n }\r\n\r\n h2& {\r\n ${headingH2}\r\n }\r\n\r\n h3& {\r\n ${headingH3}\r\n }\r\n\r\n h4& {\r\n ${headingH4}\r\n }\r\n\r\n h5& {\r\n ${headingH5}\r\n }\r\n\r\n h6& {\r\n ${headingH6}\r\n }\r\n`;\r\n\r\nexport const Description = styled.p`\r\n ${({ theme }) => theme.headingWithDescription.descriptionSize}\r\n\r\n\r\n // this for some situation that we need to control the maxmium lines\r\n ${({ reduceBottomPadding }) => {\r\n if (reduceBottomPadding) {\r\n return css`\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n display: -webkit-box;\r\n -webkit-line-clamp: 3;\r\n line-clamp: 3; \r\n -webkit-box-orient: vertical;\r\n `\r\n }\r\n return css``;\r\n }\r\n }\r\n\r\n \r\n ${({ theme, reduceBottomPadding }) =>\r\n spacing({\r\n theme,\r\n my: 0,\r\n mt: reduceBottomPadding ? '4px' : 3,\r\n mb: reduceBottomPadding ? '8px' : 0,\r\n pb: reduceBottomPadding ? '0x' : 3\r\n })}\r\n\r\n > :last-child {\r\n margin-bottom: 0;\r\n }\r\n`;\r\n","import { Text } from '@sitecore-jss/sitecore-jss-react';\r\nimport { compose } from 'ramda';\r\nimport React from 'react';\r\nimport { withEditMode } from '_containers/BaseComponent';\r\n\r\nimport { Container, Description, HeaderSection, Heading } from './StyledHeadingWithDescription';\r\n\r\nexport type HeadingWithDescriptionProps = JSX.ElementChildrenAttribute & {\r\n editMode: boolean;\r\n descriptionField?: {\r\n value?: string;\r\n };\r\n headingField: {\r\n value: string;\r\n };\r\n headingLevel: any;\r\n reduceBottomPadding?: boolean;\r\n};\r\n\r\nconst HeadingWithDescription: React.FC = ({\r\n children,\r\n editMode,\r\n descriptionField,\r\n headingField,\r\n headingLevel,\r\n reduceBottomPadding = false\r\n}) => {\r\n headingLevel = headingLevel || 'h3';\r\n\r\n return (\r\n \r\n {(editMode || headingField) && (\r\n \r\n \r\n {children}\r\n \r\n )}\r\n {(editMode || (descriptionField && descriptionField?.value)) && }\r\n \r\n );\r\n};\r\n\r\nexport default compose(withEditMode(HeadingWithDescription));\r\n","export function stripHTML(string) {\r\n if (!string) {\r\n return '';\r\n }\r\n if (typeof document !== 'undefined') {\r\n try {\r\n const div = document.createElement('div');\r\n div.innerHTML = string;\r\n return div.textContent || div.innerText || '';\r\n } catch (err) {\r\n return '';\r\n }\r\n }\r\n}\r\n\r\n// Wraps bold tags around matching substring fragments\r\n// TODO add unit tests\r\nexport const highlightSubstring = (searchTerm: string, searchPhrase: string) => {\r\n if (!searchTerm && !searchPhrase) {\r\n return;\r\n }\r\n if (!searchTerm) {\r\n return searchPhrase;\r\n }\r\n return searchPhrase.replace(new RegExp(searchTerm, \"gi\"), (match) => `${match}`)\r\n}\r\n","import { ITypographySetting, IFixedTypographySetting } from '_containers/Theme/definitions';\r\nimport { spacing } from '_utils/props';\r\nimport { mq } from '_utils/styles/';\r\n\r\nfunction headingStyle(settings: ITypographySetting) {\r\n return `\r\n ${settings.fontFamily ? `font-family: ${settings.fontFamily};` : ''}\r\n ${settings.fontSize ? `font-size: ${settings.fontSize.sm}px;` : ''}\r\n ${settings.fontWeight ? `font-weight: ${settings.fontWeight};` : ''}\r\n ${settings.lineHeight ? `line-height: ${settings.lineHeight.sm}px;` : ''}\r\n ${({ theme }) => spacing({ theme, my: 0 })}\r\n margin-bottom: 0;\r\n margin-top: 0;\r\n\r\n\r\n ${mq('md')} {\r\n ${settings.fontSize ? `font-size: ${settings.fontSize.md}px;` : ''}\r\n ${settings.fontWeight ? `font-weight: ${settings.fontWeight};` : ''}\r\n ${settings.lineHeight ? `line-height: ${settings.lineHeight.md}px;` : ''}\r\n }\r\n\r\n ${mq('lg')} {\r\n ${settings.fontSize ? `font-size: ${settings.fontSize.lg}px;` : ''}\r\n ${settings.fontWeight ? `font-weight: ${settings.fontWeight};` : ''}\r\n ${settings.lineHeight ? `line-height: ${settings.lineHeight.lg}px;` : ''}\r\n }\r\n `\r\n}\r\n\r\nfunction bodyStyle(settings: ITypographySetting) {\r\n return `\r\n ${settings.fontFamily ? `font-family: ${settings.fontFamily};` : ''}\r\n ${settings.fontSize ? `font-size: ${settings.fontSize.sm}px;` : ''}\r\n ${settings.fontWeight ? `font-weight: ${settings.fontWeight};` : ''}\r\n ${settings.lineHeight ? `line-height: ${settings.lineHeight.sm}px;` : ''}\r\n ${settings.textTransform ? `text-transform: ${settings.textTransform};` : ''}\r\n\r\n ${mq('md')} {\r\n ${settings.fontSize ? `font-size: ${settings.fontSize.md}px;` : ''}\r\n ${settings.lineHeight ? `line-height: ${settings.lineHeight.md}px;` : ''}\r\n }\r\n\r\n ${mq('lg')} {\r\n ${settings.fontSize ? `font-size: ${settings.fontSize.lg}px;` : ''}\r\n ${settings.lineHeight ? `line-height: ${settings.lineHeight.lg}px;` : ''}\r\n }\r\n\r\n p {\r\n margin-bottom: ${settings.spacing || '16'}px;\r\n }\r\n `;\r\n}\r\n\r\nfunction fixedStyle(settings: IFixedTypographySetting) {\r\n return `\r\n ${settings.fontFamily ? `font-family: ${settings.fontFamily};` : ''}\r\n ${settings.fontSize ? `font-size: ${settings.fontSize}px;` : ''}\r\n ${settings.fontWeight ? `font-weight: ${settings.fontWeight};` : ''}\r\n ${settings.lineHeight ? `line-height: ${settings.lineHeight}px;` : ''}\r\n `;\r\n}\r\n\r\nfunction fixedBodyStyle(settings: IFixedTypographySetting) {\r\n return `\r\n ${fixedStyle(settings)}\r\n ${settings.lineHeight ? `line-height: ${settings.lineHeight}px;` : ''}\r\n `;\r\n}\r\n\r\nconst marginBottom1 = (theme) => spacing({ theme, mb: 1 });\r\nconst marginBottom2 = (theme) => spacing({ theme, mb: 2 });\r\nconst marginBottom3 = (theme) => spacing({ theme, mb: 3 });\r\n\r\nexport const pageTitle = ({ theme }) => `${headingStyle(theme.typography.headings.title)}`;\r\nexport const headingH0 = ({ theme }) => `${headingStyle(theme.typography.headings.H0)}`;\r\nexport const headingH1 = ({ theme }) => `${headingStyle(theme.typography.headings.H1)}${marginBottom3(theme)}`;\r\nexport const headingH2 = ({ theme }) => `${headingStyle(theme.typography.headings.H2)}${marginBottom3(theme)}`;\r\nexport const headingH3 = ({ theme }) => `${headingStyle(theme.typography.headings.H3)}${marginBottom2(theme)}`;\r\nexport const headingH4 = ({ theme }) => `${headingStyle(theme.typography.headings.H4)}${marginBottom2(theme)}`;\r\nexport const headingH5 = ({ theme }) => `${headingStyle(theme.typography.headings.H5)}${marginBottom1(theme)}`;\r\nexport const headingH6 = ({ theme }) => `${headingStyle(theme.typography.headings.H6)}`;\r\nexport const subheading1 = ({ theme }) => `${headingStyle(theme.typography.headings.subheading1)}${marginBottom2(theme)}`;\r\nexport const subheading2 = ({ theme }) => `${headingStyle(theme.typography.headings.subheading2)}`;\r\n// fixed headings\r\nexport const fixedTitle20 = ({ theme }) => `${fixedStyle(theme.typography.headings.fixedTitle20)}`;\r\nexport const fixedTitle18 = ({ theme }) => `${fixedStyle(theme.typography.headings.fixedTitle18)}`;\r\nexport const fixedTitle16 = ({ theme }) => `${fixedStyle(theme.typography.headings.fixedTitle16)}`;\r\nexport const fixedTitle14 = ({ theme }) => `${fixedStyle(theme.typography.headings.fixedTitle14)}`;\r\nexport const fixedTitle12 = ({ theme }) => `${fixedStyle(theme.typography.headings.fixedTitle12)}`;\r\nexport const caption1 = ({ theme }) => `${fixedBodyStyle(theme.typography.headings.caption1)}`;\r\nexport const caption2 = ({ theme }) => `${fixedBodyStyle(theme.typography.headings.caption2)}`;\r\n// fixed text\r\nexport const fixedBody18 = ({ theme }) => `${fixedBodyStyle(theme.typography.text.fixedBody18)}`;\r\nexport const fixedBody16 = ({ theme }) => `${fixedBodyStyle(theme.typography.text.fixedBody16)}`;\r\nexport const fixedBody14 = ({ theme }) => `${fixedBodyStyle(theme.typography.text.fixedBody14)}`;\r\nexport const fixedBody12 = ({ theme }) => `${fixedBodyStyle(theme.typography.text.fixedBody12)}`;\r\nexport const articleBody = ({ theme }) => `${bodyStyle(theme.typography?.text?.articleBody)}`;\r\nexport const textBody1 = ({ theme }) => `${bodyStyle(theme.typography?.text?.body1)}`;\r\nexport const textBody2 = ({ theme }) => `${bodyStyle(theme.typography?.text?.body2)}`;\r\n\r\n// tags\r\nconst upperCase = 'text-transform: uppercase;';\r\nexport const tag16 = ({ theme }) => `\r\n ${fixedStyle(theme.typography?.text?.tag16)}\r\n ${upperCase}\r\n`;\r\nexport const tag14 = ({ theme }) => `\r\n ${fixedStyle(theme.typography?.text?.tag14)}\r\n ${upperCase}\r\n`;\r\nexport const tag12 = ({ theme }) => `\r\n ${fixedStyle(theme.typography?.text?.tag12)}\r\n ${upperCase}\r\n`;\r\nexport const tag10 = ({ theme }) => theme?.typography?.text?.tag10 ? `${fixedStyle(theme.typography?.text?.tag10)}` : {};\r\n","import colors from '../../containers/Theme/corporate/colors';\r\n\r\nexport default {\r\n background: colors.all.neutralWhite,\r\n backgroundActive: colors.background.tint4,\r\n backgroundHover: colors.background.tint2,\r\n primary: colors.all.neutral600,\r\n action: colors.all.neutral300,\r\n actionHover: colors.all.neutral900,\r\n icon: colors.all.brandPrimary1,\r\n borderRadius: 0,\r\n border: `1px solid`,\r\n borderColor: colors.all.neutral300,\r\n borderHover: `1px solid inherit`,\r\n};\r\n\r\nexport const darkMode = {};","import colors from '_containers/Theme/corporate/colors';\r\n\r\nexport default {\r\n action: colors.all.neutral300,\r\n actionHover: colors.all.brandPrimary3,\r\n background: colors.all.neutralWhite,\r\n backgroundActive: colors.all.neutral200,\r\n backgroundHover: colors.all.neutral50,\r\n border: `1px solid ${colors.all.neutral300}`,\r\n borderFocusColor: colors.all.interactive500,\r\n borderHover: `1px solid inherit`,\r\n borderRadius: 0,\r\n headingColor: colors.all.brandPrimary3,\r\n icon: colors.all.brandPrimary1,\r\n primary: colors.all.neutral600,\r\n profileNameColor: colors.all.neutral700,\r\n profileTitleColor: colors.all.neutral500,\r\n};\r\n\r\nexport const darkMode = {};\r\n","import styled from 'styled-components';\r\nimport { spacing } from '_utils/props';\r\nexport const StyledComponentWrapper = styled.div`\r\n padding-bottom: 50px;\r\n`;\r\n\r\nexport const StyledNotice = styled.div`\r\n display: inline-block;\r\n padding: ${({ theme }) => spacing({ theme, p: 1 })};\r\n background-color: ${({ theme, noticeLevel = 'info' }) => theme.colors.status[noticeLevel]};\r\n color: ${({ theme, noticeLevel }) =>\r\n noticeLevel === 'warning' ?\r\n theme.colors.element.neutralBlack :\r\n theme.colors.element.neutralWhite\r\n };\r\n font-size: 10px;\r\n line-height: 1.6;\r\n\r\n ul {\r\n list-style: inside disc;\r\n padding-left: ${({ theme }) => spacing({ theme, pl: 1 })};\r\n }\r\n\r\n small {\r\n font-size: 10px;\r\n }\r\n\r\n em {\r\n font-style: italic;\r\n }\r\n`;\r\n\r\nexport const StyledComponentHighlight = styled.div`\r\n border: 3px dashed ${({ theme, noticeLevel = 'info' }) => theme.colors.status[noticeLevel]};\r\n min-height: 30px;\r\n\r\n ${StyledNotice} + & {\r\n margin-top: 16px;\r\n }\r\n`;\r\n","import { canUseDOM } from 'exenv';\r\nimport { assocPath, clone, compose, dissocPath } from 'ramda';\r\nimport React, { useState, useContext } from 'react';\r\nimport styled, { ThemeProvider } from 'styled-components';\r\nimport {\r\n StyledComponentWrapper,\r\n StyledNotice,\r\n StyledComponentHighlight\r\n} from './StyledBaseComponent';\r\n\r\nimport { placeholderBackgroundColors } from '_containers/Theme/global';\r\n\r\nimport { warnInDev } from '_utils/helpers/dev';\r\nimport { getDisplayName } from '_utils/helpers';\r\nimport { SitecoreContextReactContext, withSitecoreContext as withSitecoreContextJss } from '@sitecore-jss/sitecore-jss-react';\r\nimport { WithSitecoreContextOptions } from '@sitecore-jss/sitecore-jss-react/types/enhancers/withSitecoreContext';\r\nimport CorporateTheme, { DarkTheme as CorporateDarkTheme } from '_containers/Theme/corporate/theme';\r\nimport InTheBlackTheme, { DarkTheme as InTheBlackDarkTheme } from '_containers/Theme/intheblack/theme';\r\nimport { SitecoreFieldValidator } from '_utils/validationChecks/definitions';\r\nimport { getFieldValidationResults, hasDataSource } from '_utils/validationChecks';\r\n\r\nconst isEditMode = (props) => {\r\n const sitecoreContextFactory = useContext(SitecoreContextReactContext);\r\n const pageEditing = sitecoreContextFactory?.context?.pageEditing ?? false;\r\n\r\n return props?.editMode || pageEditing;\r\n};\r\n\r\n// HOC to wrap around the JSS withSitecoreContext HOC to only get context if not already in props (allows storybook to work without Sitecore)\r\nexport const withSitecoreContext = (options?: WithSitecoreContextOptions) => (Component) => (props) => {\r\n const hasSitecoreContextProp = Object.prototype.hasOwnProperty.call(props, 'sitecoreContext');\r\n\r\n if (hasSitecoreContextProp) {\r\n return \r\n }\r\n\r\n const ComponentWithSitecoreContext = compose(withSitecoreContextJss(options))(Component);\r\n return \r\n};\r\n\r\n// HOC to wrap component with editMode provider\r\n// (ex BaseComponent instance method 'isEditMode')\r\nexport const withEditMode = (Component) => (props) => {\r\n return ;\r\n};\r\n\r\n// HOC to wrap component with isAuthenticatedContent boolean to show `lock` icon if needed\r\nexport const withAuthenticatedCheck = (Component) => (props) => {\r\n const isAuthenticatedContent = !!props?.accessRestrictedTo?.length || false;\r\n return ;\r\n};\r\n\r\n// Coveo HTML mark up to wrap around components\r\nconst CoveoNoIndexBeginTag = () => ' }}>;\r\n\r\nconst CoveoNoIndexEndTag = () => ' }}>;\r\n\r\n/* normally we would use the `withCoveoNoIndexTags` HOC, but some components (Card List) use logic oustide the validation HOC so we need to check if there are any children from the render fn to determin if tags need to be output */\r\nexport const CoveoNoIndexWrapper = (props) => {\r\n\r\n return props?.children && (\r\n <>\r\n \r\n {props?.children}\r\n \r\n \r\n );\r\n\r\n};\r\n\r\nexport const withCoveoNoIndexTags = (Component) => (props) => {\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\n// HOC to wrap component with theme provider\r\nexport const withThemeOption = (Component) => (props) => {\r\n\r\n let clonedProps = clone(props);\r\n\r\n const sitecoreContextFactory = useContext(SitecoreContextReactContext);\r\n const siteName = sitecoreContextFactory?.context?.site?.name?.toLowerCase();\r\n let theme = siteName === 'corporate' ? CorporateTheme : InTheBlackTheme;\r\n\r\n const placeholderTheme = props?.rendering?.params?.placeholderTheme ?? '';\r\n\r\n const darkThemeConfig = {\r\n corporate: CorporateDarkTheme,\r\n intheblack: InTheBlackDarkTheme\r\n }\r\n // Dark theme switches theme provider for all nested components\r\n if (placeholderTheme === 'Dark') {\r\n theme = darkThemeConfig[siteName] || CorporateDarkTheme;\r\n }\r\n // we don't need passed through to component so map to new `backgroudColor` prop and remove the theme prop\r\n else if (Object.keys(placeholderBackgroundColors).indexOf(placeholderTheme) >= 0) {\r\n const removeRenderingTheme = dissocPath(['rendering', 'params', 'placeholderTheme'], clonedProps);\r\n const removeParamTheme = dissocPath(['params', 'placeholderTheme'], removeRenderingTheme);\r\n clonedProps = assocPath(['rendering', 'params', 'backgroundColor'], placeholderTheme, removeParamTheme);\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\n// HOC to wrap component with disableable render\r\n// (ex BaseComponent instance method componentRender)\r\n//\r\n// this is an inversion of the orig BaseComponent func 'componentRender'\r\n// approach, instead component may *opt-in* to disable render by calling\r\n// props.setRenderDisabled() with bool indicating whether to proceed with\r\n// render or just return null\r\n//\r\n// Note: to get meaningfull debug messages in dev about when render was disabled,\r\n// make withDisableRender right-most function in composition, e.g:\r\n// export default compose( withSitecoreContext(), withFieldValidation, withDisableRender )(ArticleHeaderImage);\r\n//\r\nexport const withDisableRender = (Component) => (props) => {\r\n const editMode = isEditMode(props);\r\n\r\n // wrapped components can set this with a truthy value (debug msg) to prevent render\r\n const [renderDisabled, setRenderDisabled] = useState();\r\n\r\n // TODO this may get a bit noisy - give options to turn down/off warnings\r\n if (renderDisabled && !editMode) {\r\n warnInDev(`${getDisplayName(Component)} was not rendered (${renderDisabled})`);\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\n// HOC to wrap component with editor Notice (ex BaseComponent instance methods)\r\nexport const withEditModeNotice = (Component) => (props) => {\r\n const editMode = isEditMode(props);\r\n\r\n const { noticeEnabled, noticeMessage = '', noticeLevel = 'warning' } = props;\r\n\r\n if (!editMode || !noticeEnabled) {\r\n return ;\r\n }\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n {noticeMessage} \r\n
    \r\n );\r\n};\r\n\r\n// HOC to wrap component with data source and field validation\r\n// (Shows editor warnings based on field validation config and blocks rendering if there are validation errors)\r\nconst EditorNotice = compose(withEditModeNotice)(styled.div``);\r\nexport const withDataSourceValidation = (fieldValidators: SitecoreFieldValidator[], expectDataSource: boolean = true) => (Component) => (props) => {\r\n const editMode = isEditMode(props);\r\n\r\n const MissingDataSourceWarning = (props: JSX.ElementChildrenAttribute & {\r\n componentName: string\r\n }) => {\r\n const message = `${props?.componentName || \"UNKNOWN COMPONENT\"} has no data source and will not render`;\r\n\r\n // Output the error to the console log in dev environments\r\n warnInDev(message);\r\n\r\n // Return the experience editor warning\r\n return (\r\n \r\n {props.children}\r\n \r\n )\r\n }\r\n\r\n const InvalidFieldsWarning = (props: JSX.ElementChildrenAttribute & {\r\n componentName: string,\r\n validationErrors: string[]\r\n }) => {\r\n const message = `${props?.componentName || \"UNKNOWN COMPONENT\"} has invalid or missing fields and may not render`;\r\n const invalidFieldsList = (\r\n <>\r\n {props?.validationErrors && props.validationErrors.length > 0 &&\r\n
      \r\n {props.validationErrors.map((message) =>\r\n
    • {message}
    • \r\n )}\r\n
    \r\n }\r\n \r\n );\r\n\r\n // Output the errors to the console log in dev environments\r\n warnInDev(message);\r\n props.validationErrors.forEach((message) => warnInDev(message));\r\n\r\n // Return the experience editor warning\r\n return (\r\n \r\n {props.children}\r\n \r\n )\r\n }\r\n\r\n // Validate the data source and fields\r\n const componentName = props?.rendering?.componentName;\r\n const missingDataSource = expectDataSource && !hasDataSource({ componentProps: props });\r\n const validationResults = getFieldValidationResults({ componentProps: props, validators: fieldValidators });\r\n const validationErrors = validationResults?.filter((r) => !r.isValid).map((r) => r.error) || [];\r\n const hasErrors = validationErrors.length > 0;\r\n // canUseDOM check to prevent issue with SSR when inserting new component\r\n // into dynamic placeholder (ie. tabs)\r\n let allowRender = !canUseDOM || !hasErrors || validationResults.every((r) => r.isValid || r.validator?.allowRenderOnError);\r\n if (editMode && hasErrors) {\r\n allowRender = validationResults.every((r) => r.isValid || r.validator?.allowEditModeRenderOnError == null || r.validator?.allowEditModeRenderOnError === true);\r\n }\r\n\r\n // Inject the validation results as additional props\r\n let componentWithValidationResults = <>;\r\n if (allowRender && !missingDataSource) {\r\n componentWithValidationResults =\r\n ;\r\n }\r\n\r\n // Conditionally output the component with Editor warnings as needed\r\n if (editMode) {\r\n if (missingDataSource) {\r\n return (\r\n \r\n {componentWithValidationResults}\r\n \r\n )\r\n } else if (hasErrors) {\r\n return (\r\n \r\n {componentWithValidationResults}\r\n \r\n )\r\n }\r\n }\r\n return componentWithValidationResults;\r\n}\r\n","import colors from '_containers/Theme/corporate/colors';\r\n\r\nexport default {\r\n backgroundEven: colors.all.neutralWhite,\r\n backgroundHover: colors.all.neutral100,\r\n backgroundOdd: colors.all.neutral50,\r\n colorHeading: colors.all.brandPrimary3,\r\n colorLink: colors.all.interactive500,\r\n paddingUnit: 0\r\n};\r\n\r\nexport const darkMode = {\r\n paddingUnit: 2\r\n}\r\n\r\nexport const columnType = {\r\n type1: 'date',\r\n type2: 'description',\r\n type3: 'link',\r\n};\r\n","import colors from '_containers/Theme/corporate/colors';\r\n\r\nconst whiteCard = {\r\n background: colors.all.neutralWhite,\r\n backgroundHover: colors.all.neutral50,\r\n color: colors.all.brandPrimary3,\r\n iconFill: colors.all.brandPrimary1,\r\n shadow: 16\r\n};\r\n\r\nexport default {\r\n ctaIconFill: colors.all.neutralWhite,\r\n blueCard: {\r\n background: colors.all.brandPrimary1,\r\n backgroundHover: colors.all.brandPrimary1Dark,\r\n color: colors.all.neutralWhite,\r\n iconFill: colors.all.brandPrimary2,\r\n },\r\n whiteCard: whiteCard,\r\n yellowCard: {\r\n background: colors.all.brandPrimary2,\r\n backgroundHover: colors.all.brandPrimary2Dark,\r\n color: colors.all.brandPrimary3,\r\n iconFill: colors.all.brandPrimary3,\r\n },\r\n functionalCardContainer: {\r\n outlineColor: colors.element.focused\r\n }\r\n};\r\n\r\nexport const darkMode = {\r\n descriptionColor: colors.all.darkText,\r\n headingColor: colors.all.neutralWhite,\r\n whiteCard: {\r\n ...whiteCard,\r\n shadow: null\r\n },\r\n};\r\n","import packageJson from '../../../package.json';\r\nimport colors from '_containers/Theme/corporate/colors';\r\n\r\n\r\nconst theme = {\r\n backgroundImage: 'none',\r\n colorKeyline: colors.all.neutral200,\r\n iconVisible: false,\r\n tablist: {\r\n color: colors.all.neutral700,\r\n colorActive: colors.all.neutral700,\r\n colorHighlightActive: colors.all.brandPrimary1,\r\n colorBackgroundHover: colors.interactiveCell.hover,\r\n colorBackgroundPressed: colors.interactiveCell.pressed,\r\n colorInactiveColorHover: `inherit`,\r\n flexGrow: 0,\r\n fontWeight: 400,\r\n fontWeightActive: 700,\r\n paddingXMobile: '18px',\r\n paddingX: '18px',\r\n outlineFocus: colors.all.brandPrimary1\r\n },\r\n tabPanelTextColor: colors.all.neutral700,\r\n tagList: {\r\n borderColor: colors.element.focused\r\n }\r\n};\r\n\r\nexport const darkMode = {\r\n backgroundColor: colors.all.brandPrimary3,\r\n backgroundImage: `url(${packageJson.config.corporate.sitecoreDistPath}/images/homepage-tab-bg-optimised.png)`,\r\n colorKeyline: colors.all.brandPrimary1,\r\n iconVisible: true,\r\n tablist: {\r\n color: colors.all.darkText,\r\n colorActive: colors.all.darkText,\r\n colorHighlightActive: colors.all.brandPrimary2,\r\n colorBackgroundHover: colors.all.darkBackgroundTint3,\r\n colorInactiveColorHover: colors.all.neutralWhite,\r\n flexGrow: 1,\r\n fontWeight: 700,\r\n fontWeightActive: 700,\r\n paddingXMobile: '20px',\r\n paddingX: '30px',\r\n outlineFocus: colors.all.brandPrimary1\r\n },\r\n tabPanelTextColor: colors.all.neutralWhite,\r\n tabPanelMinHeight: {\r\n md: `500px`,\r\n lg: `800px`,\r\n }\r\n};\r\n\r\nexport default theme;\r\n","import colors from '_containers/Theme/corporate/colors';\r\n\r\nexport default {\r\n background: colors.background.tint1,\r\n color: colors.text.default,\r\n svgColor: colors.all.interactive500,\r\n borderColorFocus: colors.element.focused\r\n};\r\n\r\nexport const darkMode = {\r\n background: colors.background.darkBlue,\r\n color: colors.text.neutral,\r\n svgColor: colors.all.interactive500,\r\n borderColorFocus: colors.element.focused\r\n};\r\n","export type LiveChatDatasource = {\r\n hideLiveChat?: boolean;\r\n niceBusNumber?: string;\r\n nicePoc?: string;\r\n niceServerHost?: string;\r\n niceSourceUrl?: string;\r\n offlineMessage?: string;\r\n showOfflineChat?: boolean;\r\n};\r\n\r\nexport type LiveChatRendering = {\r\n fields?: {\r\n data?: {\r\n datasource?: LiveChatDatasource;\r\n };\r\n };\r\n};\r\n\r\nexport type LiveChatProps = {\r\n rendering: LiveChatRendering;\r\n sitecoreContext: {\r\n route: {\r\n fields: {\r\n hideLiveChat: {\r\n value: boolean;\r\n }\r\n }\r\n }\r\n };\r\n};\r\n\r\nexport type LiveChatOfflineMessageProps = {\r\n closeLabel?: string;\r\n message?: string;\r\n toggleIsOpen?: React.Dispatch>;\r\n};\r\n\r\nexport type LiveChatOfflineProps = {\r\n datasource?: LiveChatDatasource;\r\n shouldHideLiveChat?: boolean;\r\n};\r\n\r\nexport const COOKIE_BANNER_ID = 'onetrust-banner-sdk';\r\nexport const LIVE_CHAT_ONLINE_BUTTON_ID = 'icChatButton';\r\nexport const LIVE_CHAT_ONLINE_MESSAGE_ID = 'chat-div-wrap';\r\nexport const LIVE_CHAT_OFFLINE_BUTTON_ID = 'LiveChatOfflineButton';\r\nexport const LIVE_CHAT_OFFLINE_MESSAGE_ID = 'LiveChatOfflineMessage';\r\nexport const LIVE_CHAT_ONLINE_WRAPPER_CLASS = 'ie-div-position-customer-chat';\r\n","//TODO - need to remove - but too many components referencing directly\r\n// need to change ref to use the `_utils/styles/color` helper\r\nexport default {\r\n // primary\r\n brandPrimary1: '#0A5CC7',\r\n brandPrimary1Dark: '#084697',\r\n brandPrimary1Darker: '#043472',\r\n brandPrimary2: '#FFDD00',\r\n brandPrimary2Dark: '#E6C700',\r\n brandPrimary2Darker: '#E5B300',\r\n brandPrimary3: '#090D46',\r\n brandPrimary3Dark: '#050724',\r\n // secondary\r\n brandSecondary1: '#712B90',\r\n brandSecondary1Dark: '#57216E',\r\n brandSecondary2: '#F59419',\r\n brandSecondary2Dark: '#B26200',\r\n brandSecondary3: '#00BAB5',\r\n brandSecondary3Dark: '#00827E',\r\n\r\n // TODO move this when dark theme is ready\r\n darkBackground: '#073A7D',\r\n darkBackgroundTint1: '#080B3B',\r\n darkBackgroundTint3: '#0C125E',\r\n darkText: '#E6F1FF',\r\n darkTextSecondary: '#BBCBE5',\r\n darkTextSubtle: '#829BBA',\r\n\r\n error100: '#FFEDED',\r\n error500: '#E10004',\r\n error700: '#AD0003',\r\n focus: 'rgba(117,172,255,0.5)',\r\n information100: '#F0F5FE',\r\n information500: '#3C78F6',\r\n interactive200: '#75ACFF',\r\n interactive300: 'rgba(7, 100, 221, 0.6)',\r\n interactive500: '#0A5CC7',\r\n interactive600: '#084697',\r\n neutral50: '#F7F7F7',\r\n neutral75: '#F4F4F4',\r\n neutral100: '#EEEEEE',\r\n neutral200: '#DDDDDD',\r\n neutral300: '#C7C7C7',\r\n neutral400: '#8C8C8C',\r\n neutral500: '#767676',\r\n neutral600: '#444444',\r\n neutral700: '#303030',\r\n neutral800: '#222222',\r\n neutral900: '#111111',\r\n neutralBlack: '#000',\r\n neutralBlackTransparent10: 'rgba(0,0,0,0.1)',\r\n neutralBlackTransparent20: 'rgba(0,0,0,0.2)',\r\n neutralWhite: '#FFF',\r\n neutralWhiteTransparent: '#ffffff33',\r\n success100: '#EAFAEF',\r\n success500: '#24A148',\r\n success700: '#018940',\r\n transparent: '#00000000',\r\n visited: '#6009A0',\r\n warning100: '#FFF5DF',\r\n warning500: '#FDA108',\r\n};\r\n","export const TEXT_LINE_HEIGHT = 1.6;\r\nexport const FONT_FAMILY_TEXT = `'Avenir', Helvetica, Arial, sans-serif`;\r\nimport styled, { css } from 'styled-components';\r\n\r\nexport const placeholderBackgroundColors = {\r\n 'Grey': 'neutral50'\r\n}\r\n\r\n\r\nexport const hiddenContainer = css`\r\n display: none\r\n`\r\n\r\n// TODO remove once BEDs run Powershell script to remove from Placeholders\r\nexport const excludeThemeColors = ['white'];\r\n","//TODO - replace this with pkg such as https://www.npmjs.com/package/uuid\r\nexport const getRandomId = () =>\r\n Math.random()\r\n .toString()\r\n .substring(2);\r\n\r\nexport const normalizeId = (id: string | string[]) => {\r\n if (!id) {\r\n return id;\r\n }\r\n if (Array.isArray(id)) {\r\n return id.map(normalizeId);\r\n }\r\n if (typeof id !== 'string') {\r\n return id;\r\n }\r\n return id.replace(/-/g, '').toLowerCase();\r\n};\r\n\r\nexport const equalIds = (id1: string, id2: string): boolean => {\r\n const s1 = normalizeId(id1);\r\n const s2 = normalizeId(id2);\r\n if (s1 === '' && s2 === '') {\r\n return true;\r\n }\r\n if (!s1 || !s2) {\r\n return false;\r\n }\r\n return s1 === s2;\r\n};\r\n\r\nexport const includesId = (array, id: string): boolean => {\r\n if (!id || !Array.isArray(array)) {\r\n return false;\r\n }\r\n return array.filter((value) => equalIds(value, id)).length > 0;\r\n};\r\n","import React, { useMemo } from 'react';\r\nimport { withSvg } from './Svg';\r\nimport { getRandomId } from '_utils/data/';\r\n\r\nconst Logo: React.FC = () => {\r\n\r\n const id = useMemo(() => getRandomId(), []);\r\n\r\n return <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n};\r\n\r\nexport default withSvg(121, 52)(Logo);\r\n","// In order of layering order.\r\n\r\nexport default {\r\n MODAL: 2147483646, // one more than COOKIE_BANNER, above everything else\r\n COOKIE_BANNER: 2147483645,\r\n LIVE_CHAT: 2147483638, // value comes from that set by thrid party lib\r\n LOADING_SCREEN: 9999,\r\n TOOL_TIP: 1050,\r\n MENU: 1000,\r\n MENU_BUTTON: 950,\r\n MENU_BLOCK: 900,\r\n HEADER: 898,\r\n MENU_COVER: 889,\r\n LIVE_CHAT_MOBILE_MENU_ACTIVE: 888,\r\n BREADCRUMB: 700,\r\n CAMPAIGN_NAVIGATION: 897,\r\n QUICK_CLOSE: 5,\r\n};\r\n","import { css } from 'styled-components';\r\n\r\nexport const hideOnPrint = () => css`\r\n @media print {\r\n display: none;\r\n }\r\n`;\r\n\r\nexport const showOnPrint = () => css`\r\n @media print {\r\n display: block;\r\n }\r\n`;\r\n\r\nexport const iconColorOnPrint = () => css`\r\n @media print {\r\n fill: black;\r\n }\r\n`;\r\n\r\nexport const avoidPageBreakOnPrint = () => css`\r\n @media print {\r\n break-inside: avoid;\r\n page-break-inside: avoid;\r\n }\r\n`;\r\n","import React from 'react';\r\nimport { withSvg } from './Svg';\r\n\r\nconst SvgLargeCross = () => (\r\n \r\n);\r\n\r\nexport default withSvg(28, 28)(SvgLargeCross);\r\n","import styled from 'styled-components';\r\n\r\nexport const SpinnerContainer = styled.div`\r\n color: ${({ theme }) => theme.colors.background.tint5};\r\n display: block;\r\n height: 48px;\r\n margin-left: auto;\r\n margin-right: auto;\r\n padding-bottom: 8px;\r\n width: 48px;\r\n\r\n svg {\r\n @keyframes rotate {\r\n 100% {\r\n transform: rotate(360deg);\r\n }\r\n }\r\n animation: rotate 1.5s linear infinite;\r\n height: 100%;\r\n width: 100%;\r\n\r\n circle {\r\n @keyframes dash {\r\n 0% {\r\n stroke-dasharray: 1, 200;\r\n stroke-dashoffset: 0;\r\n }\r\n 50% {\r\n stroke-dasharray: 89, 200;\r\n stroke-dashoffset: -20;\r\n }\r\n 100% {\r\n stroke-dasharray: 89, 200;\r\n stroke-dashoffset: -124;\r\n }\r\n }\r\n\r\n animation: dash 1.5s linear infinite 0s;\r\n fill: none;\r\n stroke: currentcolor;\r\n stroke-dasharray: 1, 200;\r\n stroke-dashoffset: 0;\r\n stroke-linecap: round;\r\n stroke-width: 0.3em;\r\n }\r\n }\r\n`;\r\n\r\nexport const MainContainer = styled.div`\r\n font-size: 14px;\r\n line-height: 20px;\r\n color: ${({ theme }) => theme.colors.text.subtle};\r\n text-align: center;\r\n`;\r\n","import React from 'react';\r\n\r\nimport {\r\n MainContainer,\r\n SpinnerContainer,\r\n} from './StyledSpinner';\r\n\r\nimport { SpinnerProps } from './definitions';\r\nimport { getDictionaryItem } from '_utils/data/dictionaryItem';\r\n\r\n\r\nconst Spinner: React.FC = ({\r\n className,\r\n showLoadingLabel = false\r\n}) => {\r\n\r\n // dictionary item\r\n const loading = getDictionaryItem('spinner-label-loading', 'Loading...');\r\n\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n {showLoadingLabel &&\r\n {loading}\r\n }\r\n \r\n );\r\n};\r\n\r\nexport default Spinner;\r\n","import styled, { css } from 'styled-components';\r\n\r\nimport {\r\n mq,\r\n svg,\r\n} from '_utils/styles';\r\n\r\nimport { HingePlacement } from './definitions';\r\n\r\n/* You need to apply this to the parent of BookHinge. They're just to make sure BookHinge can position absolute. */\r\nexport const BookHingeParent = styled.div`\r\n margin-bottom: 0;\r\n margin-top: 0;\r\n overflow: hidden;\r\n position: relative;\r\n width: 100%;\r\n`;\r\n\r\nconst getHingePlacementRules = (\r\n placement: HingePlacement,\r\n) => {\r\n const hingePlacementRules: Record = {\r\n /* To prevent 'crack' between this and banner, shift 1px extra outside of container. */\r\n top: css`\r\n left: 50%;\r\n top: -29px;\r\n transform: translateX(-50%) rotate(90deg);\r\n `,\r\n left: css`\r\n left: -1px;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n `,\r\n hidden: css`\r\n display: none;\r\n `,\r\n };\r\n\r\n return hingePlacementRules[placement];\r\n};\r\n\r\nexport const BookHingeContainer = styled.div`\r\n position: absolute;\r\n ${({ mobilePlacement }) => getHingePlacementRules(mobilePlacement)}\r\n\r\n ${mq('md')} {\r\n ${({ desktopPlacement }) => getHingePlacementRules(desktopPlacement)}\r\n }\r\n`;\r\n\r\nexport const BookHingeSVGContainer = styled.span`\r\n ${svg(31,101)}\r\n width: 22px;\r\n\r\n ${mq('md')} {\r\n width: 31px;\r\n }\r\n\r\n @media print {\r\n display: none;\r\n }\r\n\r\n /* Default to page background. Apply your desired color through your component. */\r\n path {\r\n fill: ${({ theme }) => theme.colors.background.tint1};\r\n }\r\n`;\r\n","import styled from 'styled-components';\r\n\r\nimport { buttonReset, focusOutline, svg } from '_utils/styles';\r\nimport depth from '_utils/styles/depth';\r\nimport mq from '_utils/styles/mq';\r\n\r\nexport const Dialog = styled.div`\r\n background-color: ${({ theme }) => theme.modal.dialog.background};\r\n height: 100%;\r\n left: 0;\r\n overflow-y: auto;\r\n overflow-x: hidden;\r\n position: fixed;\r\n scroll-behavior: smooth;\r\n top: 0;\r\n width: 100%;\r\n z-index: ${depth.MODAL};\r\n\r\n ${({ closeOnBreakpoint }) => mq(closeOnBreakpoint)} {\r\n display: none;\r\n }\r\n`;\r\n\r\nexport const Layout = styled.div`\r\n ${mq('lg')} {\r\n margin-top: 64px;\r\n }\r\n`;\r\n\r\nexport const CloseContainer = styled.div`\r\n align-items: center;\r\n display: flex;\r\n flex: none;\r\n height: 64px;\r\n justify-content: flex-end;\r\n position: relative;\r\n width: 100%;\r\n\r\n ${mq('lg')} {\r\n left: 0;\r\n position: fixed;\r\n top: 0;\r\n width: calc(100% - 15px);\r\n }\r\n`;\r\n\r\nexport const CloseButton = styled.button`\r\n ${() => buttonReset()}\r\n\r\n &:focus {\r\n ${({ theme }) => focusOutline({ theme })}\r\n .safe-focus-removal & {\r\n outline: 0;\r\n }\r\n }\r\n\r\n display: inline-block;\r\n margin-right: 8px;\r\n padding: 10px;\r\n position: relative;\r\n`;\r\n\r\nexport const CrossWrapper = styled.span`\r\n ${() => svg(28, 28)}\r\n flex: none;\r\n width: 28px;\r\n\r\n path {\r\n fill: ${({ theme }) => theme.modal.crossWrapper.pathFillColor};\r\n }\r\n\r\n ${CloseButton}:hover & {\r\n path {\r\n fill: ${({ theme }) => theme.modal.crossWrapper.closeButtonHover.pathFillColor};\r\n }\r\n }\r\n`;\r\n\r\nexport const ContentContainer = styled.div``;\r\n","import FocusTrap from 'focus-trap-react';\r\nimport React, { useEffect, useRef } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport ScreenReader from '_utils/components/ScreenReader';\r\nimport {\r\n ModalContextProps,\r\n withModalContext,\r\n} from '_containers/ModalContext';\r\nimport {\r\n disableBodyScroll,\r\n enableBodyScroll,\r\n} from '_utils/helpers';\r\nimport {\r\n usePrevious,\r\n useWindowSize,\r\n} from '_utils/hooks';\r\nimport LargeCross from '_utils/icons/LargeCross';\r\nimport { BREAKPOINTS } from '_utils/styles/mq';\r\n\r\nimport {\r\n CloseButton,\r\n CloseContainer,\r\n ContentContainer,\r\n CrossWrapper,\r\n Dialog,\r\n Layout\r\n} from './StyledModal';\r\n\r\ntype ModalProps = ModalContextProps & {};\r\n\r\nconst Modal: React.FC = ({ modal }) => {\r\n const [t] = useTranslation();\r\n\r\n const {\r\n id,\r\n content,\r\n onClose,\r\n dismissable,\r\n shouldHideCloseButton,\r\n closeOnBreakpoint,\r\n onActivate,\r\n } = modal || {};\r\n\r\n const dialogRef = useRef();\r\n\r\n const contentContainerRef = useRef();\r\n\r\n const prevModalContent = usePrevious(Boolean(content));\r\n\r\n const windowSize = useWindowSize({ enabled: !!closeOnBreakpoint });\r\n\r\n useEffect(() => {\r\n if (windowSize?.width >= BREAKPOINTS[closeOnBreakpoint]) {\r\n onClose();\r\n }\r\n }, [windowSize?.width])\r\n\r\n useEffect(\r\n () => {\r\n const dialog = dialogRef.current;\r\n\r\n const contentContainer = contentContainerRef.current;\r\n\r\n const clickOutsideListener = (e) => {\r\n let target: HTMLElement = e.target;\r\n\r\n // iterate through parents until we find menu dialog or no more\r\n while (target) {\r\n if (target === contentContainer) {\r\n // target is in contentContainer, bail\r\n return;\r\n }\r\n // move up to next parent\r\n target = target.parentNode as HTMLElement;\r\n }\r\n // focus outside, close menu\r\n onClose();\r\n };\r\n\r\n // add/remove listener when menu opened/closed\r\n if (content && !prevModalContent) {\r\n disableBodyScroll(dialog);\r\n if (dismissable) {\r\n document.body.addEventListener('mousedown', clickOutsideListener, true);\r\n }\r\n // without setImmediate effect clean up runs immediately\r\n } else if (!content && prevModalContent) {\r\n if (dismissable) {\r\n document.body.removeEventListener('mousedown', clickOutsideListener, true);\r\n }\r\n enableBodyScroll(dialog);\r\n }\r\n\r\n // clean up\r\n return () => {\r\n if (dismissable) {\r\n document.body.removeEventListener('mousedown', clickOutsideListener, true);\r\n }\r\n enableBodyScroll(dialog);\r\n };\r\n },\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n [content]\r\n );\r\n\r\n if (!content) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {\r\n if (onActivate) {\r\n onActivate();\r\n }\r\n }\r\n }\r\n }>\r\n \r\n {!shouldHideCloseButton && (\r\n \r\n onClose()}>\r\n {t('accessibility-close-modal')}\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {content}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default withModalContext(Modal);\r\n","import styled, { css } from 'styled-components';\r\n\r\nexport const TEXT_LINE_HEIGHT = 1.6;\r\nexport const FONT_FAMILY_TEXT = `'Avenir', Helvetica, Arial, sans-serif`;\r\n\r\nexport const placeholderBackgroundColors = {\r\n 'Grey': 'neutral50'\r\n}\r\n\r\n\r\nexport const hiddenContainer = css`\r\n display: none\r\n`\r\n\r\n// TODO remove once BEDs run Powershell script to remove from Placeholders\r\nexport const excludeThemeColors = ['white'];\r\n","import React from 'react';\r\n\r\nexport type SvgProps = {\r\n children?: any;\r\n title?: string;\r\n titleId?: string;\r\n role?: string;\r\n ariaLabelledBy?: string;\r\n ariaHidden?: boolean;\r\n ariaLabel?: string;\r\n fill?: string;\r\n};\r\n\r\nconst Title = ({ id, title }) => {\r\n if (!id && !title) {\r\n return null;\r\n }\r\n\r\n if (!id) {\r\n return {title};\r\n }\r\n\r\n return {title};\r\n};\r\n\r\nconst defaultProps: any = {\r\n role: 'img'\r\n};\r\n\r\nconst Svg: React.FC = (props) => {\r\n const merged = {\r\n ...defaultProps,\r\n ...props\r\n };\r\n\r\n const {\r\n width,\r\n height,\r\n children,\r\n title,\r\n titleId,\r\n role,\r\n ariaLabelledBy,\r\n ariaHidden,\r\n ariaLabel\r\n } = merged;\r\n\r\n const svgProps = {\r\n ...(role && { role }),\r\n ...(ariaLabelledBy && { 'aria-labelledby': ariaLabelledBy }),\r\n ...(ariaHidden && { 'aria-hidden': ariaHidden }),\r\n ...(ariaLabel && { 'aria-label': ariaLabel })\r\n };\r\n\r\n const titleProps = {\r\n ...(title && { title }),\r\n ...(titleId && { id: titleId })\r\n };\r\n\r\n return (\r\n \r\n \r\n {children}\r\n </svg>\r\n );\r\n};\r\n\r\nexport default Svg;\r\n\r\nexport const withSvg = (width, height, ariaHidden?) =>\r\n function<T extends SvgProps = SvgProps>(WrappedComponent: React.ComponentType<T>) {\r\n // Try to create a nice displayName for React Dev Tools.\r\n const displayName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\r\n\r\n const withSvg: React.FC<T> = (props: T) => (\r\n <Svg width={width} height={height} ariaHidden={ariaHidden} {...props}>\r\n <WrappedComponent {...(props as T)} />\r\n </Svg>\r\n );\r\n\r\n withSvg.displayName = `withSvg(${displayName})`;\r\n\r\n return withSvg;\r\n };\r\n","import React from 'react';\r\nimport { withSvg } from '../Svg';\r\nconst Search = () => (\r\n <>\r\n <path d=\"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z\" fill=\"currentColor\"></path>\r\n </>\r\n)\r\nexport default withSvg(24, 24)(Search);","/**\r\n * Allows us to detect whether focus related styles can be removed safely\r\n *\r\n * see http://a11yproject.com/posts/never-remove-css-outlines\r\n *\r\n * Example usage:\r\n * const focusStylesObserver = createFocusStylesObserver(document.body)\r\n * focusStylesObserver.start()\r\n *\r\n */\r\n\r\nfunction setFocusStylesSafeRemoval(elem, className) {\r\n if (elem.classList.contains(className)) {\r\n return;\r\n }\r\n\r\n elem.classList.add(className);\r\n}\r\n\r\nfunction unsetFocusStylesSafeRemoval(elem, className) {\r\n if (!elem.classList.contains(className)) {\r\n return;\r\n }\r\n\r\n elem.classList.remove(className);\r\n}\r\n\r\nfunction startObserving(elem, className) {\r\n elem.addEventListener('mousemove', () => {\r\n setFocusStylesSafeRemoval(elem, className);\r\n });\r\n\r\n elem.addEventListener('keydown', () => {\r\n unsetFocusStylesSafeRemoval(elem, className);\r\n });\r\n}\r\n\r\nfunction createFocusStylesObserver(elem, className = 'safe-focus-removal') {\r\n return {\r\n start: startObserving.bind(null, elem, className)\r\n };\r\n}\r\n\r\nexport default createFocusStylesObserver;\r\n","export { default as createFocusStylesObserver } from './FocusStylesObserver';\r\n\r\nexport const safeFocusRemoval = `\r\n .safe-focus-removal & {\r\n outline: 0\r\n }\r\n`;\r\n\r\nexport const focusOutline = ({ theme }) => `\r\n outline-color: ${theme?.focus?.outlineColor};\r\n outline-offset: ${theme?.focus?.outlineOffset};\r\n outline-width: ${theme?.focus?.outlineWidth};\r\n outline-style: ${theme?.focus?.outlineStyle};\r\n`;\r\n","import styled from 'styled-components';\r\n\r\nimport { spacing } from '_utils/props';\r\nimport {\r\n button,\r\n focusOutline,\r\n hideOnPrint,\r\n iconColorOnPrint,\r\n inputReset,\r\n mq,\r\n svg,\r\n textBody1,\r\n} from '_utils/styles';\r\n\r\nexport const Form = styled.form`\r\n align-items: center;\r\n display: flex;\r\n height: 100%;\r\n position: relative;\r\n width: 100%;\r\n\r\n ${hideOnPrint}\r\n`;\r\n\r\nexport const InputWrapper = styled.div`\r\n align-items: center;\r\n background-color: ${({ theme }) => theme.mainSearch.background};\r\n border: ${({ theme }) => theme.mainSearch.border};\r\n border-radius: ${({ theme }) => theme.mainSearch.inputBorderRadius};\r\n border-right-style: none;\r\n display: flex;\r\n height: 100%;\r\n justify-content: center;\r\n transition:\r\n width ${({ theme }) => theme.motion.timing.fast} ${({ theme }) => theme.motion.ease},\r\n border-color ${({ theme }) => theme.motion.timing.fast} ${({ theme }) => theme.motion.ease},\r\n background-color ${({ theme }) => theme.motion.timing.fast} ${({ theme }) => theme.motion.ease};\r\n width: 100%;\r\n\r\n .search--focused & {\r\n background-color: ${({ theme }) => theme.mainSearch.backgroundActive};\r\n border: ${({ theme }) => theme.mainSearch.borderActive};\r\n border-right: none;\r\n }\r\n\r\n ${mq.lessThan('md')} {\r\n background-color: ${({ theme }) => theme.mainSearch.background};\r\n border: ${({ theme }) => theme.mainSearch.border};\r\n border-radius: ${({ theme }) => theme.mainSearch.inputBorderRadiusLessThanMd};\r\n\r\n .search--focused & {\r\n background-color: ${({ theme }) => theme.mainSearch.backgroundActive};\r\n border: ${({ theme }) => theme.mainSearch.borderActive};\r\n }\r\n }\r\n`;\r\n\r\n\r\nexport const InputIcon = styled.span`\r\n ${svg(17, 17)}\r\n display: none;\r\n width: 22px;\r\n\r\n ${({ theme }) => spacing({ theme, ml: { xs: '18px', md: '18px' }, mr: { xs: '12px' } })}\r\n\r\n path {\r\n fill: ${({ theme }) => theme.mainSearch.iconFill};\r\n }\r\n\r\n .search--focused & {\r\n margin-left: 17px; // Prevent icon from shifting when border applied to InputWrapper\r\n }\r\n\r\n ${mq.lessThan('md')} {\r\n display: inline-block;\r\n min-width: 20px; // Prevent icon from shifting when border applied to InputWrapper\r\n }\r\n`;\r\n\r\nexport const Input = styled.input`\r\n ${inputReset}\r\n ${textBody1}\r\n\r\n border: 1px solid transparent; // Prevent shifting of input when border outline is applied to InputWrapper\r\n height: 100%;\r\n margin: 0;\r\n outline: 0;\r\n text-overflow: ellipsis;\r\n width: 100%;\r\n\r\n .search--focused & {\r\n ${mq('md')} {\r\n border: none; // Prevent shifting of input when border outline is applied to InputWrapper\r\n }\r\n }\r\n\r\n ${({ theme }) => spacing({ theme, pl: { xs: 0, md: '22px' }, pr: { xs: '18px', md: 0 } })}\r\n\r\n /*\r\n Hiding browser supplied \"X\" button for type=\"search\" inputs.\r\n We roll our own cross-browser clear input button.\r\n */\r\n &::-webkit-search-cancel-button,\r\n &::-webkit-search-decoration {\r\n -webkit-appearance: none;\r\n appearance: none;\r\n }\r\n\r\n &::-ms-clear {\r\n display: none;\r\n }\r\n\r\n /* As the input is not full width, tap highlight color is misaligned and jarring. This removes it in favor of the focus outline. */\r\n -webkit-tap-highlight-color: rgba(0,0,0,0);\r\n`;\r\n\r\nexport const ClearButton = styled.button`\r\n ${button('default', 'text')}\r\n\r\n align-items: center;\r\n border-radius: 0;\r\n display: flex;\r\n height: 100%;\r\n justify-content: center;\r\n padding: 0px 24px 0px 12px;\r\n width: 24px;\r\n\r\n body:not(.safe-focus-removal) &:focus {\r\n &:before {\r\n ${focusOutline}\r\n border-radius: ${({ theme }) => theme.mainSearch.clear.borderRadius} !important;\r\n content: '';\r\n height: calc(100% + ${({ theme }) => theme.mainSearch.clear.height}) !important;\r\n left: ${({ theme }) => theme.mainSearch.clear.left} !important;\r\n margin-top: -1px;\r\n outline-color: ${({ theme }) => theme.mainSearch.outlineColour} !important;\r\n top: ${({ theme }) => theme.mainSearch.clear.top} !important;\r\n width: calc(100% + ${({ theme }) => theme.mainSearch.clear.width}) !important;\r\n z-index: 1;\r\n }\r\n }\r\n`;\r\n\r\nexport const ClearIcon = styled.span`\r\n ${svg(14, 14)}\r\n flex: none;\r\n width: 24px;\r\n path {\r\n fill: ${({ theme }) => theme.mainSearch.clear.iconFill};\r\n }\r\n\r\n ${iconColorOnPrint}\r\n`;\r\n\r\nexport const Submit = styled.button`\r\n ${button('default', 'primary')}\r\n\r\n // fix false positive from Pally eval as #FFF\r\n span {\r\n color: initial;\r\n }\r\n\r\n align-items: center;\r\n background-color: ${({ theme }) => theme.mainSearch.submit.background};\r\n border: 2px solid ${({ theme }) => theme.mainSearch.submit.background};\r\n border-radius: ${({ theme }) => theme.mainSearch.submit.borderRadius};\r\n display: flex;\r\n height: 100%;\r\n justify-content: center;\r\n min-width: ${({ theme }) => theme.mainSearch.submit.minWidth};\r\n padding: ${({ theme }) => theme.mainSearch.submit.padding};\r\n outline: 0;\r\n transition:\r\n border-color ${({ theme }) => theme.motion.timing.fast} ${({ theme }) => theme.motion.ease},\r\n background-color ${({ theme }) => theme.motion.timing.fast} ${({ theme }) => theme.motion.ease};\r\n\r\n /* Submit focus outline style */\r\n body:not(.safe-focus-removal) &:focus {\r\n \r\n &:before {\r\n ${focusOutline}\r\n border-radius: ${({ theme }) => theme.mainSearch.submit.borderRadius} !important;\r\n content: '';\r\n height: calc(100% + ${({ theme }) => theme.mainSearch.submit.height}) !important;\r\n left: ${({ theme }) => theme.mainSearch.submit.left} !important;\r\n outline-color: ${({ theme }) => theme.mainSearch.outlineColour} !important;\r\n position: absolute;\r\n top: ${({ theme }) => theme.mainSearch.submit.top} !important;\r\n width: calc(100% + ${({ theme }) => theme.mainSearch.submit.width}) !important;\r\n }\r\n }\r\n\r\n ${mq.lessThan('md')} {\r\n display: none;\r\n }\r\n\r\n &:hover &:focus {\r\n background-color: ${({ theme }) => theme.mainSearch.submit.backgroundActive} !important;\r\n border: 2px solid ${({ theme }) => theme.mainSearch.submit.borderHover};\r\n border-left: none;\r\n }\r\n\r\n\r\n .search--focused & {\r\n background-color: ${({ theme }) => theme.mainSearch.submit.backgroundActive} !important;\r\n border: 2px solid ${({ theme }) => theme.mainSearch.submit.borderHover} !important;\r\n border-left: none !important;\r\n }\r\n`;\r\n\r\nexport const IconWrapper = styled.span`\r\n ${svg(24, 24)}\r\n pointer-events: none; // prevent search icon from preventing click on parent button\r\n width: 24px;\r\n\r\n path {\r\n fill: ${({ theme }) => theme.mainSearch.submit.iconFill};\r\n }\r\n\r\n ${Submit}:hover &,\r\n ${Submit}:active &,\r\n .search--focused & {\r\n path {\r\n fill: ${({ theme }) => theme.mainSearch.submit.iconFillActive} !important;\r\n\r\n ${iconColorOnPrint}\r\n }\r\n }\r\n`;\r\n","import { canUseDOM } from 'exenv';\r\nimport React, {\r\n FC,\r\n useEffect,\r\n useState,\r\n} from 'react';\r\nimport { useHistory, useLocation } from 'react-router-dom';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport Icon from '_components/Icon';\r\nimport SearchIcon from '_utils/icons/material/Search'; \r\nimport ScreenReader from '_utils/components/ScreenReader';\r\nimport { buildSearchUrl } from '_utils/helpers';\r\n\r\n\r\nimport { MainSearchProps } from './definitions';\r\n\r\nimport {\r\n ClearButton,\r\n ClearIcon,\r\n Form,\r\n IconWrapper,\r\n Input,\r\n InputIcon,\r\n InputWrapper,\r\n Submit\r\n} from './StyledMainSearch';\r\n\r\nconst ESCAPE_KEY_CODE = 27;\r\n\r\nconst MainSearch: FC<MainSearchProps> = ({\r\n inputRef,\r\n placeholder,\r\n onSubmit = () => { },\r\n}) => {\r\n const [t] = useTranslation();\r\n const history = useHistory();\r\n const [focused, setFocused] = useState(false);\r\n\r\n const location = useLocation();\r\n const { search, pathname } = location || {};\r\n const searchParams = new URLSearchParams(search);\r\n const currentUrlSearchTerm = searchParams.get('term');\r\n const [searchTerm, setSearchTerm] = useState(currentUrlSearchTerm || '');\r\n\r\n if (!placeholder) {\r\n placeholder = t('search-placeholder-text');\r\n }\r\n\r\n const handleKeyDown = (e) => {\r\n if (e.keyCode === ESCAPE_KEY_CODE) {\r\n setSearchTerm('');\r\n }\r\n };\r\n\r\n const handlePressClear = (e) => {\r\n if (e) {\r\n e.preventDefault();\r\n }\r\n\r\n setSearchTerm('');\r\n };\r\n\r\n const handleSubmit = (e) => {\r\n if (e) {\r\n e.preventDefault();\r\n }\r\n\r\n if (onSubmit) {\r\n onSubmit()\r\n }\r\n\r\n if (searchTerm) {\r\n history.push(buildSearchUrl(\r\n { term: searchTerm, page: 1 }),\r\n // store where search was triggered from\r\n { from: (canUseDOM && document?.title) ?? '' }\r\n );\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (pathname !== buildSearchUrl({})) {\r\n setSearchTerm('');\r\n }\r\n }, [pathname]);\r\n\r\n return (\r\n <Form\r\n id=\"main-search\"\r\n action=\"#\" // Defining the action prop along with an input with type=\"search\" makes the iOS return key say \"Search\".\r\n role=\"search\"\r\n className={`main-search ${(focused || searchTerm) ? 'search--focused' : ''}`}\r\n onSubmit={handleSubmit}\r\n >\r\n <InputWrapper>\r\n <InputIcon>\r\n <SearchIcon />\r\n </InputIcon>\r\n <Input\r\n ref={inputRef}\r\n type=\"search\"\r\n placeholder={placeholder}\r\n onChange={(e) => {\r\n setSearchTerm(e.target.value)\r\n }}\r\n onFocus={() => setFocused(true)}\r\n onBlur={() => setFocused(false)}\r\n onKeyDown={handleKeyDown}\r\n aria-label=\"Search\"\r\n value={searchTerm}\r\n />\r\n {searchTerm && (\r\n <ClearButton\r\n type=\"button\"\r\n onClick={handlePressClear}\r\n aria-label=\"Clear search\"\r\n >\r\n <ClearIcon>\r\n <Icon ariaHidden={true} name=\"close\" />\r\n </ClearIcon>\r\n </ClearButton>\r\n )}\r\n </InputWrapper>\r\n <Submit\r\n type=\"submit\"\r\n onFocus={() => setFocused(true)}\r\n onBlur={() => setFocused(false)}\r\n >\r\n <ScreenReader>\r\n {t('search-accessible-search-button-label')}\r\n </ScreenReader>\r\n <IconWrapper>\r\n <SearchIcon />\r\n </IconWrapper>\r\n </Submit>\r\n </Form>\r\n );\r\n};\r\n\r\nexport default MainSearch;\r\n","import colors from '_containers/Theme/corporate/colors';\r\n\r\nexport const validVariants = {\r\n variant1: {\r\n value: 'image-title-text-left-horizontal',\r\n columns: 12,\r\n headingLevel: 'h4',\r\n alignment: 'flex-start',\r\n },\r\n variant2: {\r\n value: 'icon-title-text-left-horizontal',\r\n columns: { xs: 12, sm: 4 },\r\n headingLevel: 'h4',\r\n isImageAspectSquare: true,\r\n alignment: 'flex-start',\r\n },\r\n variant3: {\r\n value: 'image-title-text-vertical',\r\n columns: { xs: 12, sm: 6, lg: 3 },\r\n headingLevel: 'h5',\r\n isImageAspectSquare: true,\r\n alignment: 'flex-start',\r\n },\r\n variant4: {\r\n value: 'icon-text-center-horizontal',\r\n columns: { xs: 6, sm: 3 },\r\n headingLevel: 'h4',\r\n alignment: 'center',\r\n },\r\n};\r\n\r\nexport default {\r\n headingColor: colors.all.brandPrimary3,\r\n item: {\r\n color: colors.text.default\r\n }\r\n};\r\n","import { ImageSize, ImageRatio } from '_utils/types/enums';\r\nimport { warnInDev } from '../dev';\r\n\r\nexport const getImageSrcSizesByColWidth = (colWidth: number | Record<string, number>): number[] => {\r\n const smallestColumns = typeof colWidth === 'number'\r\n ? colWidth\r\n : Object.keys(colWidth).reduce((num, key) => (num < colWidth[key] ? num : colWidth[key]), 12);\r\n\r\n if (smallestColumns === 3) {\r\n return [ImageSize.MW_384, ImageSize.MW_640, ImageSize.MW_768];\r\n } else if (smallestColumns === 4) {\r\n return [ImageSize.MW_384, ImageSize.MW_640];\r\n }\r\n\r\n return [ImageSize.MW_384, ImageSize.MW_640, ImageSize.MW_896];\r\n}\r\n\r\nexport const getImageAttrsByRatio = (width: ImageSize = ImageSize.MW_384, ratio: number = ImageRatio.Ratio_16By9) => {\r\n const fallBackWidth = ImageSize.MW_384;\r\n const fallBackRatio = ImageRatio.Ratio_16By9;\r\n\r\n if (!Object.values(ImageSize).includes(width) ||\r\n !Object.values(ImageRatio).includes(ratio)) {\r\n warnInDev(`Image size or ratio not valid ${JSON.stringify({ width, ratio })}`);\r\n }\r\n\r\n const imageWidth = Object.values(ImageSize).includes(width) ? width : fallBackWidth;\r\n const imageRatioDivisor = Object.values(ImageRatio).includes(ratio) ? ratio : fallBackRatio;\r\n return {\r\n width: imageWidth,\r\n height: Math.floor(imageWidth / imageRatioDivisor),\r\n }\r\n}\r\n","export const setAnchorElemScrollMarginTop = (targetEl?: HTMLElement) => {\r\n if (!targetEl) {\r\n return\r\n }\r\n\r\n const breadcrumbHeight = document.querySelector('.page-breadcrumb')?.getBoundingClientRect().height || 50;\r\n const pageHeaderHeight = document.getElementById('page-header')?.getBoundingClientRect().height || 73;\r\n const calcScrollMarginTop = pageHeaderHeight && breadcrumbHeight ? pageHeaderHeight + breadcrumbHeight : pageHeaderHeight;\r\n\r\n // Apply scroll-margin-top on the elemToScroll item that is being covered by the fixed header and breadcrumb\r\n // Docs: https://www.blindemanwebsites.com/today-i-learned/2020/scroll-margin-top/\r\n const setElemScrollMarginTop = (e: HTMLElement) => e?.setAttribute('style', `scroll-margin-top: ${calcScrollMarginTop}px`);\r\n setElemScrollMarginTop(targetEl);\r\n}\r\n","import { Image as SCImage } from '@sitecore-jss/sitecore-jss-react';\r\nimport styled from 'styled-components';\r\nimport {\r\n mq,\r\n textBody2\r\n} from '_utils/styles/';\r\n\r\n\r\nexport const Caption = styled.figcaption`\r\n color: ${({ theme }) => theme.contentRichText.richTextWithImage.captionColor};\r\n margin-top: 16px;\r\n text-align: left;\r\n`\r\n\r\nexport const Container = styled.div`\r\n\r\n :after {\r\n clear: both;\r\n content: '';\r\n display: table;\r\n }\r\n`;\r\n\r\nexport const Image = styled(SCImage)`\r\n font-family: 'object-fit: cover;';\r\n height: 100%;\r\n left: 0;\r\n object-fit: cover;\r\n top: 0;\r\n width: 100%;\r\n `;\r\n\r\nexport const ImageFigure = styled.figure`\r\n ${textBody2}\r\n margin: 20px 0px 24px 0px;\r\n\r\n ${mq('md')} {\r\n width: 50%;\r\n\r\n &.left {\r\n float: left;\r\n margin: 0px 24px 24px 0px;\r\n }\r\n\r\n &.right {\r\n float: right;\r\n margin: 0px 0px 24px 24px;\r\n }\r\n\r\n // limit size of image in Experience Editor\r\n &.editMode {\r\n max-width: 350px;\r\n }\r\n }\r\n`;\r\n\r\nexport const IconWrapper = styled.span`\r\n svg {\r\n height: 15px;\r\n margin-right: 5px;\r\n max-width: unset;\r\n width: 16px;\r\n }\r\n`\r\n","import classnames from 'classnames';\r\nimport React from 'react';\r\n\r\nimport { ImageProps } from \"./definitions\"\r\nimport { ImageSize } from '_utils/types/enums';\r\nimport Icon from '_components/Icon';\r\nimport {\r\n createSrcSet,\r\n} from '_utils/media';\r\n\r\nimport {\r\n Caption,\r\n IconWrapper,\r\n Image,\r\n ImageFigure,\r\n} from './StyledRichTextImage';\r\n\r\n\r\nconst RichTextImage: React.FC<ImageProps> = ({\r\n caption,\r\n image,\r\n alignment,\r\n editMode\r\n}) => {\r\n return (\r\n <ImageFigure\r\n className={classnames({ [alignment]: alignment, editMode })}\r\n >\r\n {/* //TODO: Width and Height Image ratio */}\r\n <Image\r\n className=\"lazyload\"\r\n field={\r\n editMode\r\n ? image\r\n : {\r\n value: {\r\n src: image?.value?.src,\r\n alt: image?.value?.alt,\r\n 'data-srcset': createSrcSet(image?.value?.src, [\r\n ImageSize.MW_384,\r\n ImageSize.MW_768\r\n ])\r\n }\r\n }\r\n }\r\n width={ImageSize.MW_384}\r\n height={ImageSize.MW_384}\r\n />\r\n {caption &&\r\n <Caption>\r\n <IconWrapper>\r\n <Icon name=\"photo_camera\" />\r\n </IconWrapper>\r\n {caption}\r\n </Caption>\r\n }\r\n </ImageFigure>\r\n )\r\n\r\n}\r\n\r\nexport default RichTextImage;","import { canUseDOM } from 'exenv';\r\nimport { compose } from 'ramda';\r\nimport React, { useEffect } from 'react';\r\nimport { withRouter } from 'react-router-dom';\r\n\r\nimport { withEditMode, withEditModeNotice } from '_containers/BaseComponent';\r\n\r\nimport HeadingWithDescription from '_utils/components/HeadingWithDescription';\r\n\r\nimport { errorInDev } from '_utils/helpers/dev';\r\nimport { scrollToElement } from '_utils/helpers/scrollToElement';\r\nimport { setAnchorElemScrollMarginTop } from '_utils/helpers/setAnchorElemScrollMarginTop';\r\n\r\nimport { ContentRichTextProps } from './definitions';\r\nimport {\r\n HeadingContainer,\r\n default as StyledContentRichText\r\n} from './StyledContentRichText';\r\nimport {\r\n Container,\r\n} from './StyledRichTextImage';\r\nimport RichTextImage from './RichTextImage'\r\n\r\n\r\n/**\r\n * ContentRichText component.\r\n * Connected component for the display of the Rich Text Content.\r\n */\r\n\r\nconst wrapTablesWithDiv = (text: string): string => text.replace(/(<table(.*?)>.*?<\\/table>)+/gis, '<div class=\"table-scroll-container\" tabindex=\"0\">\\n\\t$1\\n</div>');\r\n\r\nconst handleClick = (history, e) => {\r\n if (!canUseDOM) {\r\n return;\r\n }\r\n const { target } = e;\r\n\r\n if (target.tagName.toLowerCase() === 'a') {\r\n // eslint-disable-next-line no-useless-escape\r\n const match = target.href.match(/^([^:\\/?#]+:)?(?:\\/\\/([^\\/?#]*))?([^?#]+)?(\\?[^#]*)?(#.*)?/);\r\n const isExternal =\r\n (typeof match[1] === 'string' &&\r\n match[1].length > 0 &&\r\n match[1].toLowerCase() !== window.location.protocol) ||\r\n (typeof match[2] === 'string' &&\r\n match[2].length > 0 &&\r\n match[2].replace(\r\n new RegExp(`:(${{ 'http:': 80, 'https:': 443 }[window.location.protocol]})?$`),\r\n ''\r\n ) !== window.location.host) || target?.getAttribute('target') === '_blank';\r\n const isDownload = e.target.pathname.startsWith('/-/media/');\r\n\r\n if (target.pathname !== '/' && !isExternal && !isDownload) {\r\n e.preventDefault();\r\n\r\n if (target.hash) {\r\n // Apply scroll-margin-top on the elemToScroll item that is being covered by the fixed header and breadcrumb\r\n const targetElement = document.getElementById(target.hash.replace('#', ''));\r\n setAnchorElemScrollMarginTop(targetElement);\r\n\r\n // handle anchor on same page\r\n try {\r\n const currentPath = window.location.pathname;\r\n const currentHash = window.location.hash;\r\n\r\n if (\r\n target.pathname.toLowerCase() === currentPath.toLowerCase() &&\r\n target.hash.toLowerCase() === currentHash.toLowerCase()\r\n ) {\r\n // if link points to anchor on this page, scroll to it\r\n const id = target.hash.replace('#', '');\r\n const element = document.getElementById(id);\r\n if (element) {\r\n element.scrollIntoView({\r\n behavior: 'smooth'\r\n });\r\n // exit without updating history\r\n return;\r\n }\r\n }\r\n } catch (err) {\r\n errorInDev(err);\r\n }\r\n }\r\n history.push(target.pathname + (target.hash ? target.hash : ''));\r\n }\r\n }\r\n};\r\n\r\nconst MissingDataSource = compose(withEditModeNotice)(`div`);\r\n\r\nconst ContentRichText: React.FC<ContentRichTextProps> = ({\r\n field,\r\n fields,\r\n history,\r\n className = '',\r\n editMode,\r\n rendering,\r\n hideExternalLinkIcon = false\r\n}) => {\r\n const richTextField = typeof field === 'undefined' ? fields?.body : field;\r\n const uid = rendering?.uid;\r\n\r\n // HeadingWithDescription fields\r\n const description = fields?.description;\r\n const heading = fields?.heading;\r\n const headingLevel = rendering?.params?.headingLevel || 'h3';\r\n\r\n //TODO update component to use the SitecoreDatasourceValidator\r\n\r\n if (!richTextField) {\r\n if (editMode) {\r\n return (\r\n <MissingDataSource\r\n noticeEnabled={true}\r\n noticeMessage={`ContentRichText has no data source`}\r\n />\r\n );\r\n }\r\n return null;\r\n }\r\n\r\n const parsedRichTextField = {\r\n ...richTextField, value: wrapTablesWithDiv(richTextField.value)\r\n };\r\n\r\n // Get a hash value from location and scroll to element\r\n useEffect(() => {\r\n scrollToElement();\r\n }, []);\r\n\r\n const image = fields?.image;\r\n const hasImage = fields?.image?.value?.src;\r\n const caption = fields?.caption?.value;\r\n const alignment = fields?.alignment?.value ?? \"left\";\r\n const componentName = rendering?.componentName;\r\n\r\n return (\r\n <Container\r\n className={`content-rich-text ${className}`}\r\n componentName={componentName}\r\n data-component\r\n id={uid}\r\n >\r\n {(heading || description) && (\r\n <HeadingContainer>\r\n <HeadingWithDescription\r\n headingField={heading}\r\n headingLevel={headingLevel}\r\n descriptionField={description}\r\n />\r\n </HeadingContainer>\r\n )}\r\n\r\n {hasImage &&\r\n <RichTextImage\r\n editMode={editMode}\r\n alignment={alignment}\r\n caption={caption}\r\n image={image}\r\n />\r\n }\r\n <StyledContentRichText\r\n field={parsedRichTextField}\r\n onClick={handleClick.bind(null, history)}\r\n hideExternalLinkIcon={hideExternalLinkIcon}\r\n />\r\n </Container>\r\n );\r\n};\r\n\r\nexport default compose(withRouter, withEditMode)(ContentRichText);\r\n","import { setAnchorElemScrollMarginTop } from \"../setAnchorElemScrollMarginTop\";\r\n\r\nexport const scrollToElement = (targetEl?: HTMLElement) => {\r\n if (!document.location.hash) {\r\n return\r\n }\r\n\r\n const cleanLocationId = document.location.hash.replace('#', '');\r\n const elemToScroll = targetEl || document.getElementById(cleanLocationId);\r\n\r\n if (elemToScroll) {\r\n // Apply scroll-margin-top on the elemToScroll item that is being covered by the fixed header and breadcrumb\r\n setAnchorElemScrollMarginTop(elemToScroll);\r\n setTimeout(() => {\r\n elemToScroll.scrollIntoView({\r\n behavior: 'smooth'\r\n });\r\n }, 300)\r\n }\r\n}\r\n","export enum ImageSize {\r\n 'MW_24' = 24,\r\n 'MH_112' = 112,\r\n 'MW_128' = 128,\r\n 'MW_248' = 248,\r\n 'MW_256' = 256,\r\n 'MW_304' = 304,\r\n 'MW_384' = 384,\r\n 'MW_512' = 512,\r\n 'MW_640' = 640,\r\n 'MW_768' = 768,\r\n 'MW_896' = 896,\r\n 'MW_1024' = 1024,\r\n 'MW_1280' = 1280,\r\n 'MW_1664' = 1664,\r\n}\r\n\r\n\r\nexport enum ImageHeight16by9 {\r\n 'MW_128' = 72,\r\n 'MW_256' = 144,\r\n 'MW_384' = 216,\r\n 'MW_512' = 288,\r\n 'MW_640' = 360,\r\n 'MW_768' = 432,\r\n 'MW_896' = 504,\r\n 'MW_1024' = 576,\r\n 'MW_1280' = 720,\r\n 'MW_1664' = 936,\r\n}\r\n\r\nexport enum ImageRatio {\r\n 'Ratio_1By1' = 1,\r\n 'Ratio_2By1' = 2,\r\n 'Ratio_2By3' = 2 / 3,\r\n 'Ratio_3By1' = 3,\r\n 'Ratio_3By2' = 3 / 2,\r\n 'Ratio_3By4' = 3 / 4,\r\n 'Ratio_4By3' = 4 / 3,\r\n 'Ratio_5By2' = 5 / 2,\r\n 'Ratio_16By9' = 16 / 9,\r\n 'Ratio_golden' = 1 / 1.61,\r\n}\r\n","import colors from '_containers/Theme/corporate/colors';\r\n\r\n\r\nimport { ImageWithTitleAndTextValidVariants } from './definitions';\r\n\r\nexport const validVariants: ImageWithTitleAndTextValidVariants = {\r\n '1Column': {\r\n columns: 12,\r\n headingLevel: 'h4',\r\n alignment: 'flex-start',\r\n },\r\n '2Column': {\r\n columns: { xs: 12, sm: 6, lg: 6 },\r\n headingLevel: 'h5',\r\n alignment: 'flex-start',\r\n },\r\n '3Column': {\r\n columns: { xs: 12, sm: 4, lg: 4 },\r\n headingLevel: 'h5',\r\n alignment: 'flex-start',\r\n },\r\n '4Column': {\r\n columns: { xs: 12, sm: 6, lg: 3 },\r\n headingLevel: 'h5',\r\n alignment: 'flex-start',\r\n },\r\n};\r\n\r\nexport default {\r\n headingColor: colors.all.brandPrimary3,\r\n item: {\r\n color: colors.text.default\r\n }\r\n};\r\n","export const materialIcons = [\r\n\"accessibility_new\",\r\n\"accessible_forward\",\r\n\"access_time\",\r\n\"account_balance_wallet\",\r\n\"account_balance\",\r\n\"account_circle\",\r\n\"add_circle_outline\",\r\n\"add_shopping_cart\",\r\n\"add_task\",\r\n\"add\",\r\n\"addchart\",\r\n\"admin_panel_settings\",\r\n\"alarm\",\r\n\"analytics\",\r\n\"announcement\",\r\n\"apartment\",\r\n\"arrow_back\",\r\n\"arrow_downward\",\r\n\"arrow_drop_down\",\r\n\"arrow_drop_up\",\r\n\"arrow_forward\",\r\n\"arrow_left\",\r\n\"arrow_right\",\r\n\"arrow_upward\",\r\n\"article\",\r\n\"aspect_ratio\",\r\n\"assessment\",\r\n\"assignment_ind\",\r\n\"assignment_late\",\r\n\"assignment_turned_in\",\r\n\"assignment\",\r\n\"attach_email\",\r\n\"attach_file\",\r\n\"attach_money\",\r\n\"autorenew\",\r\n\"apps\",\r\n\"backup_table\",\r\n\"backup\",\r\n\"beach_access\",\r\n\"book\",\r\n\"bookmark_border\",\r\n\"bookmarks\",\r\n\"build_circle\",\r\n\"build\",\r\n\"business_center\",\r\n\"cached\",\r\n\"cake\",\r\n\"calculate\",\r\n\"calendar_today\",\r\n\"call\",\r\n\"campaign\",\r\n\"cancel\",\r\n\"card_travel\",\r\n\"chat\",\r\n\"check_circle\",\r\n\"check\",\r\n\"chevron_left\",\r\n\"chevron_right\",\r\n\"chrome_reader_mode\",\r\n\"class\",\r\n\"clear\",\r\n\"close\",\r\n\"closed_caption\",\r\n\"cloud_download\",\r\n\"cloud_upload\",\r\n\"cloud\",\r\n\"comment_bank\",\r\n\"commute\",\r\n\"construction\",\r\n\"contact_page\",\r\n\"contact_support\",\r\n\"contactless\",\r\n\"copyright\",\r\n\"coronavirus\",\r\n\"credit_card\",\r\n\"dashboard\",\r\n\"delete_forever\",\r\n\"delete\",\r\n\"description\",\r\n\"design_services\",\r\n\"desktop_mac\",\r\n\"dns\",\r\n\"do_disturb_alt\",\r\n\"domain\",\r\n\"done\",\r\n\"donut_large\",\r\n\"download_done\",\r\n\"download\",\r\n\"drafts\",\r\n\"eco\",\r\n\"edit\",\r\n\"elderly\",\r\n\"email\",\r\n\"emoji_events\",\r\n\"emoji_objects\",\r\n\"emoji_people\",\r\n\"emoji_symbols\",\r\n\"error_outline\",\r\n\"euro_symbol\",\r\n\"event_available\",\r\n\"event_busy\",\r\n\"event_note\",\r\n\"expand_less\",\r\n\"expand_more\",\r\n\"explore\",\r\n\"fact_check\",\r\n\"family_restroom\",\r\n\"favorite_border\",\r\n\"feedback\",\r\n\"filter_alt\",\r\n\"find_in_page\",\r\n\"fingerprint\",\r\n\"flag\",\r\n\"flight_land\",\r\n\"flight_takeoff\",\r\n\"folder_shared\",\r\n\"folder\",\r\n\"follow_the_signs\",\r\n\"forum\",\r\n\"free_breakfast\",\r\n\"gavel\",\r\n\"get_app\",\r\n\"golf_course\",\r\n\"grade\",\r\n\"groups\",\r\n\"headset_mic\",\r\n\"hearing_disabled\",\r\n\"hearing\",\r\n\"help_center\",\r\n\"help_outline\",\r\n\"highlight_off\",\r\n\"history\",\r\n\"home_work\",\r\n\"home\",\r\n\"hourglass_empty\",\r\n\"how_to_reg\",\r\n\"how_to_vote\",\r\n\"history_edu\",\r\n\"info\",\r\n\"input\",\r\n\"insert_invitation\",\r\n\"insights\",\r\n\"label\",\r\n\"language\",\r\n\"laptop_mac\",\r\n\"leaderboard\",\r\n\"lightbulb\",\r\n\"link\",\r\n\"list\",\r\n\"local_activity\",\r\n\"local_airport\",\r\n\"local_library\",\r\n\"local_offer\",\r\n\"lock_open\",\r\n\"lock\",\r\n\"login\",\r\n\"loop\",\r\n\"luggage\",\r\n\"mail\",\r\n\"map\",\r\n\"mark_chat_unread\",\r\n\"mediation\",\r\n\"meeting_room\",\r\n\"menu_book\",\r\n\"menu\",\r\n\"mic_none\",\r\n\"mic_off\",\r\n\"military_tech\",\r\n\"miscellaneous_services\",\r\n\"mode\",\r\n\"more_horiz\",\r\n\"more_vert\",\r\n\"movie\",\r\n\"new_movie\",\r\n\"nature_people\",\r\n\"near_me\",\r\n\"new_releases\",\r\n\"nights_stay\",\r\n\"not_listed_location\",\r\n\"not_started\",\r\n\"notifications_none\",\r\n\"notifications_off\",\r\n\"open_in_new\",\r\n\"pan_tool\",\r\n\"pause\",\r\n\"payment\",\r\n\"pending_actions\",\r\n\"pending\",\r\n\"people\",\r\n\"perm_identity\",\r\n\"perm_media\",\r\n\"person_add_alt_1\",\r\n\"person_outline\",\r\n\"person_pin_circle\",\r\n\"person_remove\",\r\n\"person_search\",\r\n\"personal_video\",\r\n\"phone_iphone\",\r\n\"phonelink\",\r\n\"photo_camera\",\r\n\"pie_chart\",\r\n\"place\",\r\n\"play_arrow\",\r\n\"poll\",\r\n\"power_settings_new\",\r\n\"print\",\r\n\"privacy_tip\",\r\n\"psychology\",\r\n\"public\",\r\n\"push_pin\",\r\n\"question_answer\",\r\n\"queue_music\",\r\n\"record_voice_over\",\r\n\"redeem\",\r\n\"refresh\",\r\n\"report\",\r\n\"request_page\",\r\n\"request_quote\",\r\n\"rule\",\r\n\"receipt\",\r\n\"save_alt\",\r\n\"save\",\r\n\"schedule\",\r\n\"school\",\r\n\"search\",\r\n\"security\",\r\n\"sentiment_satisfied\",\r\n\"settings_ethernet\",\r\n\"settings_remote\",\r\n\"settings\",\r\n\"share\",\r\n\"shopping_bag\",\r\n\"shopping_cart\",\r\n\"sms_failed\",\r\n\"sms\",\r\n\"source\",\r\n\"spa\",\r\n\"sports\",\r\n\"stars\",\r\n\"sticky_note_2\",\r\n\"storefront\",\r\n\"subdirectory_arrow_right\",\r\n\"supervised_user_circle\",\r\n\"supervisor_account\",\r\n\"support_agent\",\r\n\"support\",\r\n\"swap_horiz\",\r\n\"swap_horizontal_circle\",\r\n\"swap_vert\",\r\n\"swap_vertical_circle\",\r\n\"sync\",\r\n\"table_view\",\r\n\"tablet_mac\",\r\n\"thumb_down\",\r\n\"thumb_up\",\r\n\"thumbs_up_down\",\r\n\"timeline\",\r\n\"toc\",\r\n\"track_changes\",\r\n\"train\",\r\n\"translate\",\r\n\"trending_down\",\r\n\"trending_flat\",\r\n\"trending_up\",\r\n\"tune\",\r\n\"turned_in_not\",\r\n\"upload\",\r\n\"verified_user\",\r\n\"verified\",\r\n\"vertical_split\",\r\n\"view_list\",\r\n\"visibility_off\",\r\n\"visibility\",\r\n\"voice_over_off\",\r\n\"volume_off\",\r\n\"volume_up\",\r\n\"vpn_lock\",\r\n\"warning_amber\",\r\n\"wb_sunny\",\r\n\"wifi\",\r\n\"work_outline\",\r\n\"zoom_in\",\r\n\"zoom_out\"\r\n] as const;\r\n\r\nexport const customIcons = [\r\n \"excel\",\r\n \"facebook\",\r\n \"file\",\r\n \"image\",\r\n \"instagram\",\r\n \"linked_in\",\r\n \"movie\",\r\n \"pdf\",\r\n \"tiktok\",\r\n \"weibo\",\r\n \"threads\",\r\n \"twitter\",\r\n \"wechat\",\r\n \"word\",\r\n \"youtube\",\r\n \"zip\"\r\n] as const;\r\n\r\nexport type CustomIcons = typeof customIcons[number];\r\nexport type MaterialIcons = typeof materialIcons[number];","import React from 'react';\r\nimport asyncComponent from '_containers/AsyncComponent';\r\nimport { SvgProps } from '_utils/icons/Svg';\r\nimport { materialIcons, customIcons } from './definitions';\r\n\r\n// This is title case but with no spaces\r\nconst iconCase = (str) => {\r\n return str.toLowerCase().replace(/(?:^|[^a-zA-Z0-9]+)(.)/g, (m, chr) => chr.toUpperCase());\r\n}\r\n\r\nexport type CustomIcons = typeof customIcons[number];\r\nexport type MaterialIcons = typeof materialIcons[number];\r\n\r\nexport interface IconProps extends SvgProps {\r\n name: CustomIcons | MaterialIcons,\r\n};\r\n\r\nconst Icon: React.FC<IconProps> = React.memo(({\r\n name,\r\n ...props\r\n}) => {\r\n if (!name) {\r\n return null;\r\n }\r\n const iconFieldName = name;\r\n const iconComponentName = iconCase(iconFieldName);\r\n const isCustomIcon = customIcons.includes(iconFieldName as CustomIcons);\r\n const isMaterialIcon = materialIcons.includes(iconFieldName as MaterialIcons);\r\n\r\n if (!isMaterialIcon && !isCustomIcon) {\r\n console.warn(`\"${iconFieldName}\" is not a valid icon name.`);\r\n return null;\r\n }\r\n\r\n const folderName = isCustomIcon ? 'custom' : 'material';\r\n\r\n const Icon = asyncComponent(() =>\r\n import(\r\n /* webpackChunkName: \"[request]\" */\r\n `../../utils/icons/${folderName}/${iconComponentName}`)\r\n )\r\n\r\n return Icon && <Icon {...props} />;\r\n})\r\n\r\nexport default Icon;\r\n","import React from 'react';\r\nimport { withSvg } from './Svg';\r\n\r\nconst SvgArrow = () => (\r\n <path d=\"M13.92 7.62C13.8724 7.49725 13.801 7.3851 13.71 7.29L7.71 1.29C7.61676 1.19676 7.50607 1.1228 7.38425 1.07234C7.26243 1.02188 7.13186 0.995909 7 0.995909C6.7337 0.995909 6.4783 1.1017 6.29 1.29C6.19676 1.38324 6.1228 1.49393 6.07234 1.61575C6.02188 1.73757 5.99591 1.86814 5.99591 2C5.99591 2.2663 6.1017 2.5217 6.29 2.71L10.59 7H1C0.734784 7 0.48043 7.10536 0.292893 7.29289C0.105357 7.48043 0 7.73478 0 8C0 8.26522 0.105357 8.51957 0.292893 8.70711C0.48043 8.89464 0.734784 9 1 9H10.59L6.29 13.29C6.19627 13.383 6.12188 13.4936 6.07111 13.6154C6.02034 13.7373 5.9942 13.868 5.9942 14C5.9942 14.132 6.02034 14.2627 6.07111 14.3846C6.12188 14.5064 6.19627 14.617 6.29 14.71C6.38296 14.8037 6.49356 14.8781 6.61542 14.9289C6.73728 14.9797 6.86799 15.0058 7 15.0058C7.13201 15.0058 7.26272 14.9797 7.38458 14.9289C7.50644 14.8781 7.61704 14.8037 7.71 14.71L13.71 8.71C13.801 8.6149 13.8724 8.50275 13.92 8.38C14.02 8.13654 14.02 7.86346 13.92 7.62Z\" />\r\n);\r\n\r\nexport default withSvg(14, 16)(SvgArrow);\r\n","import React from 'react';\r\nimport { withSvg } from '../Svg';\r\n\r\nconst SvgBook = () => (\r\n <path d=\"M21.17 4.19C20.4532 4.06654 19.7274 4.00298 19 4C16.5184 3.99797 14.0885 4.70958 12 6.05C9.90615 4.72718 7.47665 4.03304 5 4.05C4.27265 4.05298 3.5468 4.11654 2.83 4.24C2.59521 4.28048 2.38258 4.40346 2.23041 4.5868C2.07825 4.77013 1.99654 5.00177 2 5.24V17.24C1.99786 17.3869 2.02813 17.5325 2.08865 17.6664C2.14917 17.8004 2.23847 17.9193 2.35017 18.0148C2.46188 18.1102 2.59326 18.1799 2.73496 18.2188C2.87665 18.2578 3.02519 18.265 3.17 18.24C4.60302 17.9919 6.0712 18.0331 7.48807 18.3611C8.90493 18.6891 10.2418 19.2974 11.42 20.15L11.54 20.22H11.65C11.7609 20.2662 11.8799 20.29 12 20.29C12.1201 20.29 12.2391 20.2662 12.35 20.22H12.46L12.58 20.15C13.75 19.2783 15.083 18.6503 16.5001 18.3034C17.9173 17.9564 19.3897 17.8974 20.83 18.13C20.9748 18.155 21.1233 18.1478 21.265 18.1088C21.4067 18.0699 21.5381 18.0002 21.6498 17.9048C21.7615 17.8093 21.8508 17.6904 21.9113 17.5564C21.9719 17.4225 22.0021 17.2769 22 17.13V5.13C21.9896 4.90216 21.9016 4.68471 21.7506 4.51374C21.5997 4.34277 21.3948 4.22854 21.17 4.19ZM11 17.48C9.14988 16.5067 7.09052 15.9987 5 16C4.67 16 4.34 16 4 16V6C4.33306 5.98081 4.66694 5.98081 5 6C7.13339 5.99765 9.22022 6.6237 11 7.8V17.48ZM20 16.04C19.66 16.04 19.33 16.04 19 16.04C16.9095 16.0387 14.8501 16.5467 13 17.52V7.8C14.7798 6.6237 16.8666 5.99765 19 6C19.3331 5.98081 19.6669 5.98081 20 6V16.04Z\" />\r\n);\r\n\r\nexport default withSvg(24, 24)(SvgBook);\r\n","import React from 'react';\r\nimport { withSvg } from './Svg';\r\n\r\nconst SvgCalendar = () => (\r\n <path d=\"M12.334 2.00033H11.6673V0.666992H10.334V2.00033H3.66732V0.666992H2.33398V2.00033H1.66732C0.933984 2.00033 0.333984 2.60033 0.333984 3.33366V14.0003C0.333984 14.7337 0.933984 15.3337 1.66732 15.3337H12.334C13.0673 15.3337 13.6673 14.7337 13.6673 14.0003V3.33366C13.6673 2.60033 13.0673 2.00033 12.334 2.00033ZM12.334 14.0003H1.66732V6.66699H12.334V14.0003ZM12.334 5.33366H1.66732V3.33366H12.334V5.33366Z\" />\r\n);\r\n\r\nexport default withSvg(20, 20)(SvgCalendar);\r\n","import React from 'react';\r\nimport { withSvg } from './Svg';\r\n\r\nconst SvgCamera = () => (\r\n<path d=\"M17 3.49999H15.72L15.4 2.49999C15.1926 1.91322 14.8077 1.40549 14.2989 1.04715C13.7901 0.68881 13.1824 0.497593 12.56 0.499992H7.44C6.81155 0.501167 6.19933 0.699675 5.68977 1.0675C5.1802 1.43532 4.79901 1.95388 4.6 2.54999L4.28 3.54999H3C2.20435 3.54999 1.44129 3.86606 0.87868 4.42867C0.316071 4.99128 0 5.75434 0 6.54999V14.55C0 15.3456 0.316071 16.1087 0.87868 16.6713C1.44129 17.2339 2.20435 17.55 3 17.55H17C17.7956 17.55 18.5587 17.2339 19.1213 16.6713C19.6839 16.1087 20 15.3456 20 14.55V6.54999C20.0066 6.15184 19.9339 5.75635 19.7862 5.38658C19.6384 5.01681 19.4184 4.68017 19.1392 4.39628C18.86 4.11238 18.527 3.88692 18.1597 3.73304C17.7924 3.57916 17.3982 3.49994 17 3.49999ZM18 14.5C18 14.7652 17.8946 15.0196 17.7071 15.2071C17.5196 15.3946 17.2652 15.5 17 15.5H3C2.73478 15.5 2.48043 15.3946 2.29289 15.2071C2.10536 15.0196 2 14.7652 2 14.5V6.49999C2 6.23478 2.10536 5.98042 2.29289 5.79289C2.48043 5.60535 2.73478 5.49999 3 5.49999H5C5.21807 5.51137 5.43386 5.45107 5.61443 5.32828C5.795 5.20549 5.93042 5.02697 6 4.81999L6.54 3.17999C6.60709 2.98137 6.7349 2.80886 6.90537 2.68683C7.07584 2.56481 7.28036 2.49945 7.49 2.49999H12.61C12.8196 2.49945 13.0242 2.56481 13.1946 2.68683C13.3651 2.80886 13.4929 2.98137 13.56 3.17999L14.1 4.81999C14.1642 5.01074 14.2844 5.17768 14.445 5.299C14.6055 5.42032 14.799 5.49037 15 5.49999H17C17.2652 5.49999 17.5196 5.60535 17.7071 5.79289C17.8946 5.98042 18 6.23478 18 6.49999V14.5ZM10 5.49999C9.20887 5.49999 8.43552 5.73459 7.77772 6.17411C7.11992 6.61364 6.60723 7.23835 6.30448 7.96926C6.00173 8.70016 5.92252 9.50443 6.07686 10.2804C6.2312 11.0563 6.61216 11.769 7.17157 12.3284C7.73098 12.8878 8.44372 13.2688 9.21964 13.4231C9.99556 13.5775 10.7998 13.4983 11.5307 13.1955C12.2616 12.8928 12.8864 12.3801 13.3259 11.7223C13.7654 11.0645 14 10.2911 14 9.49999C14 8.43913 13.5786 7.42171 12.8284 6.67156C12.0783 5.92142 11.0609 5.49999 10 5.49999ZM10 11.5C9.60444 11.5 9.21776 11.3827 8.88886 11.1629C8.55996 10.9432 8.30362 10.6308 8.15224 10.2654C8.00087 9.89991 7.96126 9.49777 8.03843 9.10981C8.1156 8.72185 8.30608 8.36548 8.58579 8.08578C8.86549 7.80607 9.22186 7.61559 9.60982 7.53842C9.99778 7.46125 10.3999 7.50086 10.7654 7.65223C11.1308 7.80361 11.4432 8.05995 11.6629 8.38885C11.8827 8.71775 12 9.10443 12 9.49999C12 10.0304 11.7893 10.5391 11.4142 10.9142C11.0391 11.2893 10.5304 11.5 10 11.5Z\" fill=\"black\"/>\r\n);\r\n\r\nexport default withSvg(20, 18)(SvgCamera);\r\n","import React from 'react';\r\nimport { withSvg } from './Svg';\r\n\r\nconst SvgCapacity = () => (\r\n <path d=\"M12.3 12.22C12.8336 11.7581 13.2616 11.1869 13.5549 10.545C13.8482 9.90316 14 9.20571 14 8.5C14 7.17392 13.4732 5.90215 12.5355 4.96447C11.5979 4.02678 10.3261 3.5 9 3.5C7.67392 3.5 6.40215 4.02678 5.46447 4.96447C4.52678 5.90215 4 7.17392 4 8.5C3.99999 9.20571 4.1518 9.90316 4.44513 10.545C4.73845 11.1869 5.16642 11.7581 5.7 12.22C4.30014 12.8539 3.11247 13.8775 2.27898 15.1685C1.4455 16.4596 1.00147 17.9633 1 19.5C1 19.7652 1.10536 20.0196 1.29289 20.2071C1.48043 20.3946 1.73478 20.5 2 20.5C2.26522 20.5 2.51957 20.3946 2.70711 20.2071C2.89464 20.0196 3 19.7652 3 19.5C3 17.9087 3.63214 16.3826 4.75736 15.2574C5.88258 14.1321 7.4087 13.5 9 13.5C10.5913 13.5 12.1174 14.1321 13.2426 15.2574C14.3679 16.3826 15 17.9087 15 19.5C15 19.7652 15.1054 20.0196 15.2929 20.2071C15.4804 20.3946 15.7348 20.5 16 20.5C16.2652 20.5 16.5196 20.3946 16.7071 20.2071C16.8946 20.0196 17 19.7652 17 19.5C16.9985 17.9633 16.5545 16.4596 15.721 15.1685C14.8875 13.8775 13.6999 12.8539 12.3 12.22ZM9 11.5C8.40666 11.5 7.82664 11.3241 7.33329 10.9944C6.83994 10.6648 6.45542 10.1962 6.22836 9.64805C6.0013 9.09987 5.94189 8.49667 6.05764 7.91473C6.1734 7.33279 6.45912 6.79824 6.87868 6.37868C7.29824 5.95912 7.83279 5.6734 8.41473 5.55764C8.99667 5.44189 9.59987 5.5013 10.1481 5.72836C10.6962 5.95542 11.1648 6.33994 11.4944 6.83329C11.8241 7.32664 12 7.90666 12 8.5C12 9.29565 11.6839 10.0587 11.1213 10.6213C10.5587 11.1839 9.79565 11.5 9 11.5ZM18.74 11.82C19.38 11.0993 19.798 10.2091 19.9438 9.25634C20.0896 8.30362 19.9569 7.32907 19.5618 6.45C19.1666 5.57093 18.5258 4.8248 17.7165 4.30142C16.9071 3.77805 15.9638 3.49974 15 3.5C14.7348 3.5 14.4804 3.60536 14.2929 3.79289C14.1054 3.98043 14 4.23478 14 4.5C14 4.76522 14.1054 5.01957 14.2929 5.20711C14.4804 5.39464 14.7348 5.5 15 5.5C15.7956 5.5 16.5587 5.81607 17.1213 6.37868C17.6839 6.94129 18 7.70435 18 8.5C17.9986 9.02524 17.8593 9.5409 17.5961 9.99542C17.3328 10.4499 16.9549 10.8274 16.5 11.09C16.3517 11.1755 16.2279 11.2977 16.1404 11.4447C16.0528 11.5918 16.0045 11.7589 16 11.93C15.9958 12.0998 16.0349 12.2678 16.1137 12.4183C16.1924 12.5687 16.3081 12.6967 16.45 12.79L16.84 13.05L16.97 13.12C18.1754 13.6917 19.1923 14.596 19.901 15.7263C20.6096 16.8566 20.9805 18.1659 20.97 19.5C20.97 19.7652 21.0754 20.0196 21.2629 20.2071C21.4504 20.3946 21.7048 20.5 21.97 20.5C22.2352 20.5 22.4896 20.3946 22.6771 20.2071C22.8646 20.0196 22.97 19.7652 22.97 19.5C22.9782 17.9654 22.5938 16.4543 21.8535 15.1101C21.1131 13.7659 20.0413 12.6333 18.74 11.82Z\" />\r\n);\r\n\r\nexport default withSvg(24, 24)(SvgCapacity);\r\n","import React from 'react';\r\nimport { withSvg } from './Svg';\r\n\r\nconst SvgChevron = () => (\r\n <path d=\"M11.2914 16.715L5.29559 10.7156C5.20193 10.6227 5.12759 10.5121 5.07685 10.3902C5.02612 10.2684 5 10.1377 5 10.0057C5 9.8737 5.02612 9.743 5.07685 9.62116C5.12759 9.49931 5.20193 9.38872 5.29559 9.29577C5.38849 9.20205 5.49901 9.12766 5.62078 9.0769C5.74256 9.02614 5.87317 9 6.00509 9C6.13701 9 6.26762 9.02614 6.38939 9.0769C6.51117 9.12766 6.62169 9.20205 6.71459 9.29577C8.41268 11.0961 10.1567 12.8539 12.0049 14.5003L17.2871 9.29577C17.4753 9.10748 17.7305 9.00171 17.9966 9.00171C18.2627 9.00171 18.5179 9.10748 18.7061 9.29577C18.8943 9.48405 19 9.73942 19 10.0057C19 10.1375 18.974 10.2681 18.9236 10.3899C18.8732 10.5117 18.7993 10.6224 18.7061 10.7156L12.7104 16.715C12.6153 16.806 12.5032 16.8774 12.3806 16.925C12.1373 17.025 11.8644 17.025 11.6211 16.925C11.4985 16.8774 11.3864 16.806 11.2914 16.715Z\" />\r\n);\r\n\r\nexport default withSvg(24, 24)(SvgChevron);\r\n","import React from 'react';\r\nimport { withSvg } from './Svg';\r\n\r\nconst SvgCheveron = () => (\r\n <path\r\n d=\"M6.29135 7.71501L0.295591 1.71562C0.201929 1.62267 0.127585 1.51208 0.0768524 1.39023C0.0261198 1.26839 5.99922e-07 1.13769 6.11461e-07 1.0057C6.23001e-07 0.873697 0.0261199 0.743004 0.0768525 0.621157C0.127585 0.49931 0.201929 0.388722 0.295591 0.295768C0.388488 0.202049 0.499011 0.127663 0.620784 0.0768993C0.742557 0.0261357 0.873171 -1.14758e-06 1.00509 -1.13605e-06C1.13701 -1.12452e-06 1.26762 0.0261358 1.38939 0.0768994C1.51117 0.127663 1.62169 0.202049 1.71459 0.295768C3.41268 2.09612 5.15666 3.85394 7.00494 5.50025L12.2871 0.295769C12.4753 0.107485 12.7305 0.00170697 12.9966 0.00170699C13.2627 0.00170701 13.5179 0.107485 13.7061 0.295769C13.8943 0.484054 14 0.739422 14 1.0057C14 1.13754 13.974 1.2681 13.9236 1.38991C13.8732 1.51172 13.7993 1.6224 13.7061 1.71562L7.71035 7.71501C7.61531 7.80605 7.50325 7.8774 7.38058 7.92499C7.13729 8.025 6.86441 8.025 6.62112 7.92499C6.49846 7.8774 6.38639 7.80605 6.29135 7.71501Z\"\r\n fill=\"#041C2C\"\r\n />\r\n);\r\n\r\nexport default withSvg(14, 8)(SvgCheveron);\r\n","import React from 'react';\r\nimport { withSvg } from '../Svg';\r\n\r\nconst SvClosed = () => (\r\n <path\r\n d=\"M19 5.99999H15C14.7348 5.99999 14.4804 6.10535 14.2929 6.29289C14.1054 6.48042 14 6.73478 14 6.99999C14 7.26521 14.1054 7.51956 14.2929 7.7071C14.4804 7.89464 14.7348 7.99999 15 7.99999H19C19.2652 7.99999 19.5196 8.10535 19.7071 8.29289C19.8946 8.48042 20 8.73478 20 8.99999V18.72L18.43 17.27C18.2456 17.0973 18.0026 17.0009 17.75 17H9C8.73478 17 8.48043 16.8946 8.29289 16.7071C8.10535 16.5196 8 16.2652 8 16V15C8 14.7348 7.89464 14.4804 7.7071 14.2929C7.51957 14.1054 7.26521 14 7 14C6.73478 14 6.48043 14.1054 6.29289 14.2929C6.10535 14.4804 6 14.7348 6 15V16C6 16.7956 6.31607 17.5587 6.87868 18.1213C7.44129 18.6839 8.20435 19 9 19H17.36L20.36 21.73C20.5342 21.8936 20.7613 21.9894 21 22C21.1372 21.9985 21.2728 21.9714 21.4 21.92C21.5789 21.8419 21.731 21.7132 21.8376 21.5497C21.9442 21.3863 22.0007 21.1952 22 21V8.99999C22 8.20434 21.6839 7.44128 21.1213 6.87867C20.5587 6.31606 19.7956 5.99999 19 5.99999ZM10.54 10.54C11.3589 9.72314 11.8693 8.64763 11.9842 7.49669C12.0991 6.34575 11.8114 5.19057 11.1701 4.22794C10.5289 3.26532 9.57369 2.5548 8.46733 2.21742C7.36096 1.88005 6.17184 1.93669 5.10255 2.37769C4.03326 2.8187 3.14994 3.61679 2.60307 4.63601C2.0562 5.65523 1.87962 6.83253 2.10339 7.96734C2.32717 9.10215 2.93747 10.1243 3.83032 10.8596C4.72317 11.5949 5.84333 11.9979 7 12C7.65705 12.0012 8.30788 11.8728 8.9153 11.6223C9.52272 11.3718 10.0748 11.004 10.54 10.54ZM4 6.99999C4 6.20434 4.31607 5.44128 4.87868 4.87867C5.44129 4.31606 6.20435 3.99999 7 3.99999C7.4436 4.00412 7.88076 4.10658 8.28 4.29999L4.28 8.29999C4.09059 7.89306 3.9949 7.44882 4 6.99999ZM9.7 5.70999C9.89485 6.11227 9.99735 6.55301 10 6.99999C9.99778 7.50444 9.86839 8.00018 9.6238 8.44137C9.37921 8.88256 9.02732 9.25494 8.60067 9.52409C8.17402 9.79324 7.68639 9.95046 7.18287 9.9812C6.67936 10.0119 6.17622 9.91523 5.72 9.69999L9.7 5.70999Z\"\r\n fill=\"black\"\r\n />\r\n);\r\n\r\nexport default withSvg(24, 24)(SvClosed);\r\n","import React from 'react';\r\nimport { withSvg } from '../Svg';\r\n\r\nconst SvgCompleted = () => (\r\n <path\r\n d=\"M14.72 8.79L10.43 13.09L8.78 11.44C8.69035 11.3353 8.58003 11.2503 8.45597 11.1903C8.3319 11.1303 8.19677 11.0965 8.05905 11.0912C7.92133 11.0859 7.784 11.1091 7.65568 11.1594C7.52735 11.2096 7.4108 11.2859 7.31335 11.3833C7.21589 11.4808 7.13964 11.5974 7.08936 11.7257C7.03909 11.854 7.01588 11.9913 7.0212 12.1291C7.02652 12.2668 7.06025 12.4019 7.12027 12.526C7.1803 12.65 7.26532 12.7604 7.37 12.85L9.72 15.21C9.81344 15.3027 9.92426 15.376 10.0461 15.4258C10.1679 15.4755 10.2984 15.5008 10.43 15.5C10.6923 15.4989 10.9437 15.3947 11.13 15.21L16.13 10.21C16.2237 10.117 16.2981 10.0064 16.3489 9.88458C16.3997 9.76272 16.4258 9.63201 16.4258 9.5C16.4258 9.36799 16.3997 9.23728 16.3489 9.11542C16.2981 8.99356 16.2237 8.88296 16.13 8.79C15.9426 8.60375 15.6892 8.49921 15.425 8.49921C15.1608 8.49921 14.9074 8.60375 14.72 8.79ZM12 2C10.0222 2 8.08879 2.58649 6.4443 3.6853C4.79981 4.78412 3.51808 6.3459 2.7612 8.17317C2.00433 10.0004 1.80629 12.0111 2.19215 13.9509C2.578 15.8907 3.53041 17.6725 4.92893 19.0711C6.32746 20.4696 8.10929 21.422 10.0491 21.8079C11.9889 22.1937 13.9996 21.9957 15.8268 21.2388C17.6541 20.4819 19.2159 19.2002 20.3147 17.5557C21.4135 15.9112 22 13.9778 22 12C22 10.6868 21.7413 9.38642 21.2388 8.17317C20.7362 6.95991 19.9997 5.85752 19.0711 4.92893C18.1425 4.00035 17.0401 3.26375 15.8268 2.7612C14.6136 2.25866 13.3132 2 12 2ZM12 20C10.4177 20 8.87103 19.5308 7.55544 18.6518C6.23984 17.7727 5.21446 16.5233 4.60896 15.0615C4.00346 13.5997 3.84504 11.9911 4.15372 10.4393C4.4624 8.88743 5.22433 7.46197 6.34315 6.34315C7.46197 5.22433 8.88743 4.4624 10.4393 4.15372C11.9911 3.84504 13.5997 4.00346 15.0615 4.60896C16.5233 5.21447 17.7727 6.23984 18.6518 7.55544C19.5308 8.87103 20 10.4177 20 12C20 14.1217 19.1571 16.1566 17.6569 17.6569C16.1566 19.1571 14.1217 20 12 20Z\"\r\n fill=\"black\"\r\n />\r\n);\r\n\r\nexport default withSvg(24, 24)(SvgCompleted);\r\n","import React from 'react';\r\nimport { withSvg } from './Svg';\r\n\r\nconst SvgCost = () => (\r\n <>\r\n <path\r\n fillRule=\"evenodd\"\r\n clipRule=\"evenodd\"\r\n d=\"M16.4111 2.5H16.471C17.4086 2.5 18.1354 2.80014 18.6254 3.30916C19.091 3.79286 19.2625 4.38394 19.2625 4.83784V5.5C19.2625 6.05228 18.8136 6.5 18.2597 6.5C17.7059 6.5 17.257 6.05228 17.257 5.5V4.83784C17.257 4.83784 17.2568 4.83827 17.2563 4.83584C17.2533 4.82223 17.2388 4.75675 17.1786 4.69422C17.1338 4.64764 16.977 4.51093 16.5258 4.50062L5.48615 6.03811C5.32977 6.08706 5.07932 6.20669 4.87173 6.4075C4.6633 6.60911 4.50554 6.88054 4.50554 7.28396L4.50713 18.716C4.50713 18.716 4.50713 18.7197 4.50795 18.7272C4.50875 18.7347 4.51024 18.7449 4.51289 18.7574C4.51825 18.7828 4.52772 18.815 4.54343 18.8516C4.57432 18.9235 4.62856 19.0105 4.72226 19.0971C4.89727 19.2587 5.30293 19.4998 6.18744 19.4998H18.2613C18.4735 19.4998 18.8141 19.428 19.0728 19.2423C19.2804 19.0932 19.4945 18.836 19.4945 18.27V10.7295C19.4945 10.5179 19.4226 10.1782 19.2363 9.92021C19.0868 9.71318 18.8289 9.49976 18.2613 9.49976H6.63462C6.08081 9.49976 5.63185 9.05204 5.63185 8.49976C5.63185 7.94747 6.08081 7.49976 6.63462 7.49976H18.2613C19.4825 7.49976 20.3425 8.02958 20.8638 8.7516C21.3483 9.42264 21.5 10.1978 21.5 10.7295V18.27C21.5 19.4878 20.9687 20.3455 20.2447 20.8653C19.5718 21.3485 18.7944 21.4998 18.2613 21.4998H6.18744C4.92549 21.4998 3.9896 21.1462 3.35968 20.5646C2.74479 19.9968 2.50159 19.2815 2.50159 18.716L2.5 7.28396C2.5 5.18636 4.25152 4.28273 5.04829 4.08409L5.10943 4.06885L16.4111 2.5Z\"\r\n />\r\n <path\r\n fillRule=\"evenodd\"\r\n clipRule=\"evenodd\"\r\n d=\"M16.5404 15.2498C16.9557 15.2498 17.2924 14.914 17.2924 14.4998C17.2924 14.0855 16.9557 13.7498 16.5404 13.7498C16.125 13.7498 15.7883 14.0855 15.7883 14.4998C15.7883 14.914 16.125 15.2498 16.5404 15.2498ZM16.5404 16.4998C17.648 16.4998 18.5459 15.6043 18.5459 14.4998C18.5459 13.3952 17.648 12.4998 16.5404 12.4998C15.4327 12.4998 14.5348 13.3952 14.5348 14.4998C14.5348 15.6043 15.4327 16.4998 16.5404 16.4998Z\"\r\n />\r\n </>\r\n);\r\n\r\nexport default withSvg(24, 24)(SvgCost);\r\n","import React from 'react';\r\nimport { withSvg } from './Svg';\r\n\r\nconst SvgCross = () => (\r\n <path d=\"M8.41 7L12.71 2.71C12.8983 2.5217 13.0041 2.2663 13.0041 2C13.0041 1.7337 12.8983 1.4783 12.71 1.29C12.5217 1.1017 12.2663 0.995909 12 0.995909C11.7337 0.995909 11.4783 1.1017 11.29 1.29L7 5.59L2.71 1.29C2.5217 1.1017 2.2663 0.995909 2 0.995909C1.7337 0.995909 1.4783 1.1017 1.29 1.29C1.1017 1.4783 0.995908 1.7337 0.995908 2C0.995908 2.2663 1.1017 2.5217 1.29 2.71L5.59 7L1.29 11.29C1.19627 11.383 1.12188 11.4936 1.07111 11.6154C1.02034 11.7373 0.994202 11.868 0.994202 12C0.994202 12.132 1.02034 12.2627 1.07111 12.3846C1.12188 12.5064 1.19627 12.617 1.29 12.71C1.38296 12.8037 1.49356 12.8781 1.61542 12.9289C1.73728 12.9797 1.86799 13.0058 2 13.0058C2.13201 13.0058 2.26272 12.9797 2.38458 12.9289C2.50644 12.8781 2.61704 12.8037 2.71 12.71L7 8.41L11.29 12.71C11.383 12.8037 11.4936 12.8781 11.6154 12.9289C11.7373 12.9797 11.868 13.0058 12 13.0058C12.132 13.0058 12.2627 12.9797 12.3846 12.9289C12.5064 12.8781 12.617 12.8037 12.71 12.71C12.8037 12.617 12.8781 12.5064 12.9289 12.3846C12.9797 12.2627 13.0058 12.132 13.0058 12C13.0058 11.868 12.9797 11.7373 12.9289 11.6154C12.8781 11.4936 12.8037 11.383 12.71 11.29L8.41 7Z\" />\r\n);\r\n\r\nexport default withSvg(14, 14)(SvgCross);\r\n","import React from 'react';\r\nimport { withSvg } from './Svg';\r\n\r\nconst SvgArrow = () => (\r\n <path d=\"M16.6 7.23329L10.7666 1.39996C10.2897 0.947452 9.65737 0.69519 8.99996 0.69519C8.34254 0.69519 7.71019 0.947452 7.23329 1.39996L1.39996 7.23329C0.931789 7.70204 0.668823 8.33746 0.668823 8.99996C0.668823 9.66246 0.931789 10.2979 1.39996 10.7666L7.23329 16.6C7.70204 17.0681 8.33745 17.3311 8.99996 17.3311C9.66246 17.3311 10.2979 17.0681 10.7666 16.6L16.6 10.7666C17.0681 10.2979 17.3311 9.66246 17.3311 8.99996C17.3311 8.33746 17.0681 7.70204 16.6 7.23329ZM15.425 9.59163L9.59162 15.425C9.51415 15.5031 9.42199 15.5651 9.32044 15.6074C9.21889 15.6497 9.10997 15.6715 8.99996 15.6715C8.88995 15.6715 8.78102 15.6497 8.67948 15.6074C8.57793 15.5651 8.48576 15.5031 8.40829 15.425L2.57496 9.59163C2.49685 9.51416 2.43485 9.42199 2.39255 9.32044C2.35024 9.21889 2.32846 9.10997 2.32846 8.99996C2.32846 8.88995 2.35024 8.78103 2.39255 8.67948C2.43485 8.57793 2.49685 8.48576 2.57496 8.40829L8.40829 2.57496C8.48576 2.49685 8.57793 2.43486 8.67948 2.39255C8.78102 2.35024 8.88995 2.32846 8.99996 2.32846C9.10997 2.32846 9.21889 2.35024 9.32044 2.39255C9.42199 2.43486 9.51415 2.49685 9.59162 2.57496L15.425 8.40829C15.5031 8.48576 15.5651 8.57793 15.6074 8.67948C15.6497 8.78103 15.6715 8.88995 15.6715 8.99996C15.6715 9.10997 15.6497 9.21889 15.6074 9.32044C15.5651 9.42199 15.5031 9.51416 15.425 9.59163ZM10.8416 6.74163C10.6847 6.58471 10.4719 6.49655 10.25 6.49655C10.028 6.49655 9.81521 6.58471 9.65829 6.74163C9.50137 6.89855 9.41321 7.11137 9.41321 7.33329C9.41321 7.55521 9.50137 7.76804 9.65829 7.92496L9.90829 8.16663H6.91662C6.69561 8.16663 6.48365 8.25442 6.32737 8.4107C6.17109 8.56698 6.08329 8.77894 6.08329 8.99996V10.6666C6.08329 10.8876 6.17109 11.0996 6.32737 11.2559C6.48365 11.4122 6.69561 11.5 6.91662 11.5C7.13764 11.5 7.3496 11.4122 7.50588 11.2559C7.66216 11.0996 7.74996 10.8876 7.74996 10.6666V9.83329H9.90829L9.65829 10.075C9.58018 10.1524 9.51819 10.2446 9.47588 10.3461C9.43357 10.4477 9.41179 10.5566 9.41179 10.6666C9.41179 10.7766 9.43357 10.8856 9.47588 10.9871C9.51819 11.0887 9.58018 11.1808 9.65829 11.2583C9.73576 11.3364 9.82793 11.3984 9.92947 11.4407C10.031 11.483 10.1399 11.5048 10.25 11.5048C10.36 11.5048 10.4689 11.483 10.5704 11.4407C10.672 11.3984 10.7642 11.3364 10.8416 11.2583L12.5083 9.59163C12.5864 9.51416 12.6484 9.42199 12.6907 9.32044C12.733 9.21889 12.7548 9.10997 12.7548 8.99996C12.7548 8.88995 12.733 8.78103 12.6907 8.67948C12.6484 8.57793 12.5864 8.48576 12.5083 8.40829L10.8416 6.74163Z\" />\r\n);\r\n\r\nexport default withSvg(18, 18)(SvgArrow);\r\n","import React from 'react';\r\nimport { withSvg } from './Svg';\r\n\r\nconst Download = () => (\r\n <path\r\n fill=\"black\"\r\n d=\"M14 6H10V0H4V6H0L7 13L14 6ZM6 8V2H8V8H9.17L7 10.17L4.83 8H6ZM0 15H14V17H0V15Z\"\r\n />\r\n);\r\n\r\nexport default withSvg(14, 17)(Download);\r\n","import React from 'react';\r\nimport { withSvg } from './Svg';\r\n\r\nconst SvgArrow = () => (\r\n <path d=\"M12 9.35004C11.779 9.35004 11.5671 9.43784 11.4108 9.59412C11.2545 9.7504 11.1667 9.96236 11.1667 10.1834V11.1667C11.1667 11.3877 11.0789 11.5997 10.9226 11.756C10.7663 11.9122 10.5544 12 10.3334 12H2.83337C2.61236 12 2.4004 11.9122 2.24412 11.756C2.08784 11.5997 2.00004 11.3877 2.00004 11.1667V3.66671C2.00004 3.44569 2.08784 3.23373 2.24412 3.07745C2.4004 2.92117 2.61236 2.83337 2.83337 2.83337H3.81671C4.03772 2.83337 4.24968 2.74558 4.40596 2.5893C4.56224 2.43302 4.65004 2.22105 4.65004 2.00004C4.65004 1.77903 4.56224 1.56707 4.40596 1.41079C4.24968 1.2545 4.03772 1.16671 3.81671 1.16671H2.83337C2.17033 1.16671 1.53445 1.4301 1.06561 1.89894C0.596766 2.36778 0.333374 3.00367 0.333374 3.66671V11.1667C0.333374 11.8297 0.596766 12.4656 1.06561 12.9345C1.53445 13.4033 2.17033 13.6667 2.83337 13.6667H10.3334C10.9964 13.6667 11.6323 13.4033 12.1011 12.9345C12.57 12.4656 12.8334 11.8297 12.8334 11.1667V10.1834C12.8334 9.96236 12.7456 9.7504 12.5893 9.59412C12.433 9.43784 12.2211 9.35004 12 9.35004ZM13.6 0.850041C13.5155 0.646416 13.3537 0.484603 13.15 0.400041C13.0499 0.35734 12.9423 0.334691 12.8334 0.333374H7.83337C7.61236 0.333374 7.4004 0.421171 7.24412 0.577452C7.08784 0.733732 7.00004 0.945694 7.00004 1.16671C7.00004 1.38772 7.08784 1.59968 7.24412 1.75596C7.4004 1.91224 7.61236 2.00004 7.83337 2.00004H10.825L5.57504 7.24171C5.49693 7.31918 5.43494 7.41134 5.39263 7.51289C5.35032 7.61444 5.32854 7.72336 5.32854 7.83337C5.32854 7.94338 5.35032 8.0523 5.39263 8.15385C5.43494 8.2554 5.49693 8.34757 5.57504 8.42504C5.65251 8.50315 5.74468 8.56514 5.84623 8.60745C5.94778 8.64976 6.0567 8.67154 6.16671 8.67154C6.27672 8.67154 6.38564 8.64976 6.48719 8.60745C6.58874 8.56514 6.6809 8.50315 6.75837 8.42504L12 3.17504V6.16671C12 6.38772 12.0878 6.59968 12.2441 6.75596C12.4004 6.91224 12.6124 7.00004 12.8334 7.00004C13.0544 7.00004 13.2663 6.91224 13.4226 6.75596C13.5789 6.59968 13.6667 6.38772 13.6667 6.16671V1.16671C13.6654 1.05781 13.6427 0.950226 13.6 0.850041Z\" />\r\n);\r\n\r\nexport default withSvg(14, 14)(SvgArrow);\r\n","import React from 'react';\r\nimport { withSvg } from './Svg';\r\n\r\nconst SvgFilters = () => (\r\n <path\r\n fillRule=\"evenodd\"\r\n clipRule=\"evenodd\"\r\n d=\"M17 8C17 8.55 16.55 9 16 9C15.45 9 15 8.55 15 8V4C15 3.45 15.45 3 16 3C16.55 3 17 3.45 17 4V5H20C20.55 5 21 5.45 21 6C21 6.55 20.55 7 20 7H17V8ZM4 7C3.45 7 3 6.55 3 6C3 5.45 3.45 5 4 5H13V7H4ZM4 19C3.45 19 3 18.55 3 18C3 17.45 3.45 17 4 17H9V19H4ZM13 20V19H20C20.55 19 21 18.55 21 18C21 17.45 20.55 17 20 17H13V16C13 15.45 12.55 15 12 15C11.45 15 11 15.45 11 16V20C11 20.55 11.45 21 12 21C12.55 21 13 20.55 13 20ZM7 11V10C7 9.45 7.45 9 8 9C8.55 9 9 9.45 9 10V14C9 14.55 8.55 15 8 15C7.45 15 7 14.55 7 14V13H4C3.45 13 3 12.55 3 12C3 11.45 3.45 11 4 11H7ZM21 12C21 11.45 20.55 11 20 11H11V13H20C20.55 13 21 12.55 21 12Z\"\r\n />\r\n);\r\n\r\nexport default withSvg(24, 24)(SvgFilters);\r\n","import React from 'react';\r\nimport { withSvg } from './Svg';\r\n\r\nconst SvgInfoCircle = () => (\r\n <path d=\"M10 9C9.73478 9 9.48043 9.10536 9.29289 9.29289C9.10536 9.48043 9 9.73478 9 10V14C9 14.2652 9.10536 14.5196 9.29289 14.7071C9.48043 14.8946 9.73478 15 10 15C10.2652 15 10.5196 14.8946 10.7071 14.7071C10.8946 14.5196 11 14.2652 11 14V10C11 9.73478 10.8946 9.48043 10.7071 9.29289C10.5196 9.10536 10.2652 9 10 9ZM10.38 5.08C10.1365 4.97998 9.86346 4.97998 9.62 5.08C9.49725 5.12759 9.3851 5.19896 9.29 5.29C9.20167 5.3872 9.13064 5.49882 9.08 5.62C9.02402 5.73868 8.99662 5.86882 9 6C8.99924 6.13161 9.02447 6.26207 9.07423 6.38391C9.12399 6.50574 9.19732 6.61656 9.29 6.71C9.3872 6.79833 9.49882 6.86936 9.62 6.92C9.7715 6.98224 9.93597 7.00632 10.0989 6.99011C10.2619 6.97391 10.4184 6.91792 10.5547 6.82707C10.691 6.73622 10.8029 6.61328 10.8805 6.46907C10.9582 6.32486 10.9992 6.16378 11 6C10.9963 5.73523 10.8927 5.48163 10.71 5.29C10.6149 5.19896 10.5028 5.12759 10.38 5.08ZM10 0C8.02219 0 6.08879 0.58649 4.4443 1.6853C2.79981 2.78412 1.51808 4.3459 0.761205 6.17317C0.00432903 8.00043 -0.193704 10.0111 0.192148 11.9509C0.578 13.8907 1.53041 15.6725 2.92893 17.0711C4.32746 18.4696 6.10929 19.422 8.0491 19.8079C9.98891 20.1937 11.9996 19.9957 13.8268 19.2388C15.6541 18.4819 17.2159 17.2002 18.3147 15.5557C19.4135 13.9112 20 11.9778 20 10C20 8.68678 19.7413 7.38642 19.2388 6.17317C18.7362 4.95991 17.9997 3.85752 17.0711 2.92893C16.1425 2.00035 15.0401 1.26375 13.8268 0.761205C12.6136 0.258658 11.3132 0 10 0ZM10 18C8.41775 18 6.87103 17.5308 5.55544 16.6518C4.23985 15.7727 3.21447 14.5233 2.60896 13.0615C2.00346 11.5997 1.84504 9.99113 2.15372 8.43928C2.4624 6.88743 3.22433 5.46197 4.34315 4.34315C5.46197 3.22433 6.88743 2.4624 8.43928 2.15372C9.99113 1.84504 11.5997 2.00346 13.0615 2.60896C14.5233 3.21447 15.7727 4.23984 16.6518 5.55544C17.5308 6.87103 18 8.41775 18 10C18 12.1217 17.1571 14.1566 15.6569 15.6569C14.1566 17.1571 12.1217 18 10 18Z\" />\r\n);\r\n\r\nexport default withSvg(20, 20)(SvgInfoCircle);\r\n","import React from 'react';\r\nimport { withSvg } from '../Svg';\r\n\r\nconst SvgInProgress = () => (\r\n <path d=\"M6.9917 14.502C6.86037 14.502 6.73032 14.5278 6.60898 14.578C6.48764 14.6283 6.37738 14.7019 6.28452 14.7948C6.19165 14.8877 6.11799 14.9979 6.06775 15.1193C6.01751 15.2406 5.99167 15.3707 5.9917 15.502V17.2843C4.70275 15.8266 3.9914 13.9478 3.9917 12.002C3.99152 11.7079 4.00912 11.4141 4.04443 11.1221C4.06062 10.9916 4.05089 10.8591 4.01579 10.7323C3.98069 10.6055 3.92091 10.4869 3.83989 10.3832C3.75886 10.2796 3.65818 10.1929 3.54361 10.1283C3.42904 10.0636 3.30283 10.0222 3.17223 10.0064C3.04162 9.99058 2.90918 10.0007 2.78249 10.0362C2.6558 10.0717 2.53736 10.1318 2.43395 10.2131C2.33054 10.2944 2.2442 10.3954 2.17988 10.5101C2.11555 10.6249 2.0745 10.7512 2.05908 10.8819C2.01378 11.2535 1.99128 11.6276 1.9917 12.002C1.99306 14.3882 2.85066 16.6946 4.40857 18.502H2.9917C2.72648 18.502 2.47213 18.6074 2.28459 18.7949C2.09706 18.9824 1.9917 19.2368 1.9917 19.502C1.9917 19.7672 2.09706 20.0216 2.28459 20.2091C2.47213 20.3966 2.72648 20.502 2.9917 20.502H6.9917C7.1481 20.5 7.30176 20.4607 7.4399 20.3874C7.57803 20.314 7.69664 20.2087 7.78583 20.0802C7.79749 20.0648 7.81238 20.0534 7.82324 20.0372C7.8299 20.0272 7.83008 20.0155 7.8363 20.0053C7.88396 19.9248 7.91967 19.8378 7.9423 19.747C7.95711 19.696 7.96762 19.6439 7.97373 19.5911C7.9766 19.5603 7.99173 19.5336 7.99173 19.502V15.502C7.99177 15.3707 7.96593 15.2406 7.91569 15.1193C7.86544 14.9979 7.79178 14.8877 7.69891 14.7948C7.60605 14.7019 7.49579 14.6283 7.37444 14.578C7.25309 14.5278 7.12304 14.502 6.9917 14.502ZM8.4917 6.002H6.70923C8.16703 4.7131 10.0458 4.00177 11.9917 4.002C12.2856 4.00129 12.5793 4.0189 12.8711 4.05474C13.0015 4.07057 13.1338 4.06057 13.2603 4.02529C13.3869 3.99001 13.5053 3.93015 13.6087 3.84913C13.7121 3.7681 13.7986 3.6675 13.8631 3.55306C13.9277 3.43863 13.969 3.3126 13.9849 3.18218C14.0007 3.05175 13.9907 2.91949 13.9554 2.79293C13.9201 2.66637 13.8603 2.548 13.7793 2.44458C13.6982 2.34116 13.5976 2.2547 13.4832 2.19016C13.3688 2.12562 13.2427 2.08424 13.1123 2.06841C12.7405 2.02355 12.3662 2.00137 11.9917 2.002C9.60556 2.00329 7.29911 2.86083 5.4917 4.41869V3.002C5.4917 2.73678 5.38634 2.48243 5.19881 2.29489C5.01127 2.10735 4.75692 2.002 4.4917 2.002C4.22648 2.002 3.97213 2.10735 3.78459 2.29489C3.59706 2.48243 3.4917 2.73678 3.4917 3.002V7.002C3.49799 7.06809 3.51116 7.13335 3.53101 7.19671L3.53125 7.19793C3.55553 7.32098 3.60348 7.43815 3.67242 7.54293L3.68384 7.55983C3.74992 7.65593 3.83273 7.73937 3.92834 7.80617C3.93927 7.81417 3.9447 7.82643 3.95605 7.83406C3.97034 7.84352 3.98651 7.84652 4.0011 7.85518C4.05781 7.88929 4.11791 7.91744 4.18042 7.93918C4.26491 7.96857 4.35299 7.98635 4.44226 7.99203C4.45959 7.99295 4.47418 8.00203 4.4917 8.00203H8.4917C8.75692 8.00203 9.01127 7.89667 9.19881 7.70913C9.38634 7.5216 9.4917 7.26724 9.4917 7.00203C9.4917 6.73681 9.38634 6.48246 9.19881 6.29492C9.01127 6.10738 8.75692 6.00203 8.4917 6.00203V6.002ZM20.4522 16.8061C20.4279 16.683 20.3799 16.5658 20.3109 16.461L20.2996 16.4442C20.2335 16.348 20.1506 16.2646 20.0549 16.1977C20.044 16.1898 20.0386 16.1775 20.0273 16.1699C20.0165 16.1628 20.0037 16.1625 19.9927 16.1558C19.8659 16.0853 19.7269 16.0394 19.583 16.0204C19.5514 16.0174 19.5241 16.0019 19.4917 16.0019H15.4917C15.2265 16.0019 14.9721 16.1073 14.7846 16.2948C14.5971 16.4824 14.4917 16.7367 14.4917 17.0019C14.4917 17.2672 14.5971 17.5215 14.7846 17.7091C14.9721 17.8966 15.2265 18.0019 15.4917 18.0019H17.2741C15.8163 19.2908 13.9376 20.0022 11.9917 20.0019C11.6977 20.0023 11.404 19.9844 11.1123 19.9482C10.8489 19.9163 10.5836 19.9902 10.3747 20.1538C10.1658 20.3175 10.0305 20.5574 9.99853 20.8208C9.96655 21.0842 10.0405 21.3495 10.2041 21.5584C10.3678 21.7673 10.6077 21.9026 10.8711 21.9346C11.2429 21.9794 11.6172 22.0019 11.9917 22.0019C14.3778 22.0006 16.6843 21.1431 18.4917 19.5853V21.002C18.4917 21.2672 18.5971 21.5216 18.7846 21.7091C18.9721 21.8966 19.2265 22.002 19.4917 22.002C19.7569 22.002 20.0113 21.8966 20.1988 21.7091C20.3863 21.5216 20.4917 21.2672 20.4917 21.002V17.002C20.4854 16.9359 20.4722 16.8707 20.4524 16.8073L20.4522 16.8061ZM20.9917 5.502C21.2569 5.502 21.5113 5.39664 21.6988 5.2091C21.8863 5.02157 21.9917 4.76721 21.9917 4.502C21.9917 4.23678 21.8863 3.98243 21.6988 3.79489C21.5113 3.60735 21.2569 3.502 20.9917 3.502H16.9917C16.9266 3.50827 16.8623 3.52124 16.7999 3.5407L16.7932 3.54204C16.6718 3.56633 16.5561 3.6137 16.4525 3.68157L16.4329 3.69481C16.3373 3.76078 16.2542 3.84334 16.1876 3.93859C16.1798 3.94939 16.1676 3.9547 16.1602 3.96587C16.153 3.97661 16.1528 3.98931 16.1461 4.00023C16.0747 4.12782 16.0284 4.26789 16.0097 4.41289C16.0068 4.44378 15.9917 4.47039 15.9917 4.502V8.502C15.9917 8.76721 16.0971 9.02157 16.2846 9.2091C16.4721 9.39664 16.7265 9.502 16.9917 9.502C17.2569 9.502 17.5113 9.39664 17.6988 9.2091C17.8863 9.02157 17.9917 8.76721 17.9917 8.502V6.71912C19.2805 8.17709 19.9919 10.056 19.9917 12.0019C19.9919 12.296 19.9743 12.5899 19.939 12.8818C19.9073 13.1451 19.9813 13.4101 20.1448 13.6188C20.3083 13.8275 20.5479 13.9629 20.811 13.9951C20.8516 13.9998 20.8923 14.0021 20.9331 14.0019C21.1773 14.0016 21.4129 13.912 21.5955 13.7499C21.7781 13.5878 21.8951 13.3645 21.9243 13.1221C21.9696 12.7504 21.9921 12.3764 21.9917 12.002C21.9903 9.61582 21.1327 7.30936 19.5747 5.502H20.9917Z\" />\r\n);\r\n\r\nexport default withSvg(24, 24)(SvgInProgress);\r\n","import React from 'react';\r\nimport { withSvg } from './Svg';\r\n\r\nconst SvgLockup = () => (\r\n <>\r\n </>\r\n);\r\n\r\nexport default withSvg(249, 40)(SvgLockup);\r\n","import React from 'react';\r\nimport { withSvg } from './Svg';\r\n\r\nconst SvgMail = () => (\r\n <path\r\n d=\"M17 0H3C2.20435 0 1.44129 0.316071 0.87868 0.87868C0.316071 1.44129 0 2.20435 0 3V13C0 13.7956 0.316071 14.5587 0.87868 15.1213C1.44129 15.6839 2.20435 16 3 16H17C17.7956 16 18.5587 15.6839 19.1213 15.1213C19.6839 14.5587 20 13.7956 20 13V3C20 2.20435 19.6839 1.44129 19.1213 0.87868C18.5587 0.316071 17.7956 0 17 0ZM3 2H17C17.2652 2 17.5196 2.10536 17.7071 2.29289C17.8946 2.48043 18 2.73478 18 3L10 7.88L2 3C2 2.73478 2.10536 2.48043 2.29289 2.29289C2.48043 2.10536 2.73478 2 3 2ZM18 13C18 13.2652 17.8946 13.5196 17.7071 13.7071C17.5196 13.8946 17.2652 14 17 14H3C2.73478 14 2.48043 13.8946 2.29289 13.7071C2.10536 13.5196 2 13.2652 2 13V5.28L9.48 9.85C9.63202 9.93777 9.80446 9.98397 9.98 9.98397C10.1555 9.98397 10.328 9.93777 10.48 9.85L18 5.28V13Z\"\r\n fill=\"#041C2C\"\r\n />\r\n);\r\n\r\nexport default withSvg(18, 22)(SvgMail);\r\n","import React from 'react';\r\nimport { withSvg } from './Svg';\r\n\r\nconst SvgMarker = () => (\r\n <path d=\"M20.46 9.63C20.3196 8.16891 19.8032 6.76908 18.9612 5.56682C18.1191 4.36455 16.9801 3.40083 15.655 2.76949C14.3299 2.13816 12.8639 1.86072 11.3997 1.9642C9.93555 2.06769 8.52314 2.54856 7.3 3.36C6.2492 4.06264 5.36706 4.9893 4.71695 6.07339C4.06684 7.15748 3.6649 8.3721 3.54 9.63C3.41749 10.8797 3.57468 12.1409 4.00017 13.3223C4.42567 14.5036 5.1088 15.5755 6 16.46L11.3 21.77C11.393 21.8637 11.5036 21.9381 11.6254 21.9889C11.7473 22.0397 11.878 22.0658 12.01 22.0658C12.142 22.0658 12.2727 22.0397 12.3946 21.9889C12.5164 21.9381 12.627 21.8637 12.72 21.77L18 16.46C18.8912 15.5755 19.5743 14.5036 19.9998 13.3223C20.4253 12.1409 20.5825 10.8797 20.46 9.63ZM16.6 15.05L12 19.65L7.4 15.05C6.72209 14.3721 6.20281 13.5523 5.87947 12.6498C5.55614 11.7472 5.43679 10.7842 5.53 9.83C5.62382 8.8611 5.93177 7.92516 6.43157 7.08984C6.93138 6.25452 7.61056 5.54071 8.42 5C9.48095 4.29524 10.7263 3.91929 12 3.91929C13.2737 3.91929 14.5191 4.29524 15.58 5C16.387 5.53862 17.0647 6.24928 17.5644 7.08094C18.064 7.9126 18.3733 8.8446 18.47 9.81C18.5663 10.7674 18.4484 11.7343 18.125 12.6405C17.8016 13.5468 17.2807 14.3698 16.6 15.05ZM12 6C11.11 6 10.24 6.26392 9.49994 6.75839C8.75992 7.25285 8.18314 7.95566 7.84255 8.77792C7.50195 9.60019 7.41284 10.505 7.58647 11.3779C7.7601 12.2508 8.18869 13.0526 8.81802 13.682C9.44736 14.3113 10.2492 14.7399 11.1221 14.9135C11.995 15.0872 12.8998 14.9981 13.7221 14.6575C14.5443 14.3169 15.2471 13.7401 15.7416 13.0001C16.2361 12.26 16.5 11.39 16.5 10.5C16.4974 9.30734 16.0224 8.16428 15.1791 7.32094C14.3357 6.4776 13.1927 6.00264 12 6ZM12 13C11.5055 13 11.0222 12.8534 10.6111 12.5787C10.2 12.304 9.87952 11.9135 9.6903 11.4567C9.50109 10.9999 9.45158 10.4972 9.54804 10.0123C9.6445 9.52732 9.88261 9.08186 10.2322 8.73223C10.5819 8.3826 11.0273 8.1445 11.5123 8.04804C11.9972 7.95157 12.4999 8.00108 12.9567 8.1903C13.4135 8.37952 13.804 8.69995 14.0787 9.11107C14.3534 9.5222 14.5 10.0055 14.5 10.5C14.5 11.163 14.2366 11.7989 13.7678 12.2678C13.2989 12.7366 12.663 13 12 13Z\" />\r\n);\r\n\r\nexport default withSvg(24, 24)(SvgMarker);\r\n","import React from 'react';\r\nimport { withSvg } from '../Svg';\r\n\r\nconst SvgOpenForFeedback = () => (\r\n <path\r\n d=\"M12 9C11.8022 9 11.6089 9.05865 11.4444 9.16853C11.28 9.27841 11.1518 9.43459 11.0761 9.61732C11.0004 9.80004 10.9806 10.0011 11.0192 10.1951C11.0578 10.3891 11.153 10.5673 11.2929 10.7071C11.4327 10.847 11.6109 10.9422 11.8049 10.9808C11.9989 11.0194 12.2 10.9996 12.3827 10.9239C12.5654 10.8482 12.7216 10.72 12.8315 10.5556C12.9414 10.3911 13 10.1978 13 10C13 9.73478 12.8946 9.48043 12.7071 9.29289C12.5196 9.10536 12.2652 9 12 9ZM19 2H5C4.20435 2 3.44129 2.31607 2.87868 2.87868C2.31607 3.44129 2 4.20435 2 5V15C2 15.7956 2.31607 16.5587 2.87868 17.1213C3.44129 17.6839 4.20435 18 5 18H16.59L20.29 21.71C20.3834 21.8027 20.4943 21.876 20.6161 21.9258C20.7379 21.9755 20.8684 22.0008 21 22C21.1312 22.0034 21.2613 21.976 21.38 21.92C21.5626 21.845 21.7189 21.7176 21.8293 21.5539C21.9396 21.3901 21.999 21.1974 22 21V5C22 4.20435 21.6839 3.44129 21.1213 2.87868C20.5587 2.31607 19.7956 2 19 2ZM20 18.59L17.71 16.29C17.6166 16.1973 17.5057 16.124 17.3839 16.0742C17.2621 16.0245 17.1316 15.9992 17 16H5C4.73478 16 4.48043 15.8946 4.29289 15.7071C4.10536 15.5196 4 15.2652 4 15V5C4 4.73478 4.10536 4.48043 4.29289 4.29289C4.48043 4.10536 4.73478 4 5 4H19C19.2652 4 19.5196 4.10536 19.7071 4.29289C19.8946 4.48043 20 4.73478 20 5V18.59ZM8 9C7.80222 9 7.60888 9.05865 7.44443 9.16853C7.27998 9.27841 7.15181 9.43459 7.07612 9.61732C7.00043 9.80004 6.98063 10.0011 7.01921 10.1951C7.0578 10.3891 7.15304 10.5673 7.29289 10.7071C7.43275 10.847 7.61093 10.9422 7.80491 10.9808C7.99889 11.0194 8.19996 10.9996 8.38268 10.9239C8.56541 10.8482 8.72159 10.72 8.83147 10.5556C8.94135 10.3911 9 10.1978 9 10C9 9.73478 8.89464 9.48043 8.70711 9.29289C8.51957 9.10536 8.26522 9 8 9ZM16 9C15.8022 9 15.6089 9.05865 15.4444 9.16853C15.28 9.27841 15.1518 9.43459 15.0761 9.61732C15.0004 9.80004 14.9806 10.0011 15.0192 10.1951C15.0578 10.3891 15.153 10.5673 15.2929 10.7071C15.4327 10.847 15.6109 10.9422 15.8049 10.9808C15.9989 11.0194 16.2 10.9996 16.3827 10.9239C16.5654 10.8482 16.7216 10.72 16.8315 10.5556C16.9414 10.3911 17 10.1978 17 10C17 9.73478 16.8946 9.48043 16.7071 9.29289C16.5196 9.10536 16.2652 9 16 9Z\"\r\n fill=\"black\"\r\n />\r\n);\r\n\r\nexport default withSvg(24, 24)(SvgOpenForFeedback);\r\n","import React from 'react';\r\nimport { withSvg } from './Svg';\r\n\r\nconst SvgPhone = () => (\r\n <path\r\n d=\"M18.44 11C18.22 11 17.99 10.93 17.77 10.88C17.3245 10.7818 16.8867 10.6515 16.46 10.49C15.9961 10.3212 15.4861 10.33 15.0283 10.5146C14.5705 10.6992 14.1971 11.0466 13.98 11.49L13.76 11.94C12.786 11.3982 11.891 10.7252 11.1 9.94C10.3148 9.14902 9.64182 8.254 9.1 7.28L9.52 7C9.96337 6.78292 10.3108 6.40953 10.4954 5.95169C10.68 5.49385 10.6888 4.98391 10.52 4.52C10.3612 4.09242 10.2309 3.6548 10.13 3.21C10.08 2.99 10.04 2.76 10.01 2.53C9.88857 1.82562 9.51962 1.18774 8.96962 0.731239C8.41962 0.274736 7.7247 0.0296085 7.01 0.0399997H4.01C3.57903 0.0359532 3.15225 0.124813 2.75871 0.30053C2.36517 0.476247 2.01411 0.734696 1.72943 1.05828C1.44475 1.38187 1.23313 1.76299 1.10899 2.17571C0.984841 2.58843 0.951079 3.02306 1.01 3.45C1.54274 7.63938 3.45603 11.5319 6.44765 14.5126C9.43928 17.4934 13.3387 19.3925 17.53 19.91H17.91C18.6474 19.9111 19.3594 19.6405 19.91 19.15C20.2264 18.867 20.4791 18.5202 20.6515 18.1323C20.8238 17.7445 20.912 17.3244 20.91 16.9V13.9C20.8978 13.2054 20.6448 12.5366 20.1943 12.0077C19.7439 11.4788 19.1238 11.1226 18.44 11ZM18.94 17C18.9398 17.142 18.9094 17.2823 18.8508 17.4116C18.7922 17.5409 18.7067 17.6563 18.6 17.75C18.4886 17.847 18.358 17.9194 18.2167 17.9625C18.0754 18.0056 17.9266 18.0184 17.78 18C14.0349 17.5198 10.5562 15.8065 7.89272 13.1303C5.2292 10.4541 3.53241 6.96734 3.07 3.22C3.05408 3.07352 3.06803 2.92533 3.111 2.78439C3.15397 2.64345 3.22507 2.51269 3.32 2.4C3.41371 2.29333 3.52906 2.20784 3.65838 2.14922C3.7877 2.09059 3.92801 2.06018 4.07 2.06H7.07C7.30255 2.05483 7.52962 2.13088 7.71214 2.27507C7.89466 2.41926 8.02121 2.62257 8.07 2.85C8.11 3.12333 8.16 3.39333 8.22 3.66C8.33552 4.18714 8.48926 4.70518 8.68 5.21L7.28 5.86C7.1603 5.91492 7.05262 5.99295 6.96316 6.0896C6.87369 6.18624 6.8042 6.29961 6.75867 6.42319C6.71314 6.54677 6.69247 6.67813 6.69785 6.80972C6.70322 6.94131 6.73454 7.07054 6.79 7.19C8.2292 10.2728 10.7072 12.7508 13.79 14.19C14.0335 14.29 14.3065 14.29 14.55 14.19C14.6747 14.1454 14.7893 14.0765 14.8872 13.9872C14.985 13.8979 15.0642 13.7901 15.12 13.67L15.74 12.27C16.257 12.4549 16.7846 12.6085 17.32 12.73C17.5867 12.79 17.8567 12.84 18.13 12.88C18.3574 12.9288 18.5607 13.0553 18.7049 13.2379C18.8491 13.4204 18.9252 13.6475 18.92 13.88L18.94 17Z\"\r\n fill=\"#041C2C\"\r\n />\r\n);\r\n\r\nexport default withSvg(21, 20)(SvgPhone);\r\n","import React from 'react';\r\nimport { withSvg } from './Svg';\r\n\r\nconst SvgPin = () => (\r\n <path d=\"M5.99935 6.99967C5.26602 6.99967 4.66602 6.39967 4.66602 5.66634C4.66602 4.93301 5.26602 4.33301 5.99935 4.33301C6.73268 4.33301 7.33268 4.93301 7.33268 5.66634C7.33268 6.39967 6.73268 6.99967 5.99935 6.99967ZM9.99935 5.79967C9.99935 3.37967 8.23268 1.66634 5.99935 1.66634C3.76602 1.66634 1.99935 3.37967 1.99935 5.79967C1.99935 7.35967 3.29935 9.42634 5.99935 11.893C8.69935 9.42634 9.99935 7.35967 9.99935 5.79967ZM5.99935 0.333008C8.79935 0.333008 11.3327 2.47967 11.3327 5.79967C11.3327 8.01301 9.55268 10.633 5.99935 13.6663C2.44602 10.633 0.666016 8.01301 0.666016 5.79967C0.666016 2.47967 3.19935 0.333008 5.99935 0.333008Z\" />\r\n);\r\n\r\nexport default withSvg(18, 22)(SvgPin);\r\n","import React from 'react';\r\nimport { withSvg } from '../Svg';\r\n\r\nconst SvgPlanned = () => (\r\n <>\r\n <path\r\n fillRule=\"evenodd\"\r\n clipRule=\"evenodd\"\r\n d=\"M17 2H15V1C15 0.734863 14.8945 0.480469 14.707 0.292969C14.5195 0.105469 14.2656 0 14 0C13.8516 0 13.707 0.0322266 13.5781 0.0932617C13.4727 0.14209 13.375 0.209473 13.293 0.292969C13.1055 0.480469 13 0.734863 13 1V2H7V1C7 0.891113 6.98047 0.78418 6.94531 0.682617C6.89844 0.537109 6.81641 0.40332 6.70703 0.292969C6.51953 0.105469 6.26562 0 6 0C5.73438 0 5.48047 0.105469 5.29297 0.292969C5.10547 0.480469 5 0.734863 5 1V2H3C2.20312 2 1.44141 2.31592 0.878906 2.87891C0.316406 3.44141 0 4.20459 0 5V17C0 17.7954 0.316406 18.5586 0.878906 19.1211C1.07812 19.3198 1.30078 19.4878 1.54297 19.6221C1.98438 19.8677 2.48438 20 3 20H9C9.55229 20 10 19.5523 10 19C10 18.4477 9.55228 18 9 18H3C2.73438 18 2.48047 17.8945 2.29297 17.707C2.10547 17.5195 2 17.2651 2 17V10H19C19.5523 10 20 9.55229 20 9V5C20 4.20459 19.6836 3.44141 19.1211 2.87891C18.5586 2.31592 17.7969 2 17 2ZM18 8H2V5C2 4.73486 2.10547 4.48047 2.29297 4.29297C2.48047 4.10547 2.73438 4 3 4H5V5C5 5.26514 5.10547 5.51953 5.29297 5.70703C5.48047 5.89453 5.73438 6 6 6C6.26562 6 6.51953 5.89453 6.70703 5.70703C6.79297 5.61914 6.86328 5.5166 6.91406 5.40576C6.97266 5.2793 7 5.14111 7 5V4H13V5C13 5.09863 13.0156 5.19531 13.043 5.28809C13.0898 5.44482 13.1758 5.58936 13.293 5.70703C13.4805 5.89453 13.7344 6 14 6C14.2656 6 14.5195 5.89453 14.707 5.70703C14.8945 5.51953 15 5.26514 15 5V4H17C17.2656 4 17.5195 4.10547 17.707 4.29297C17.8945 4.48047 18 4.73486 18 5V8Z\"\r\n fill=\"black\"\r\n />\r\n <path\r\n d=\"M20.3 20.7529C20.4176 20.6739 20.5171 20.5709 20.5919 20.4506C20.6666 20.3303 20.715 20.1954 20.7337 20.055C20.7525 19.9146 20.7412 19.7718 20.7006 19.6361C20.66 19.5004 20.591 19.3748 20.4982 19.2678C20.4054 19.1607 20.291 19.0746 20.1624 19.0151C20.0338 18.9556 19.8941 18.9242 19.7524 18.9228C19.6108 18.9213 19.4705 18.9501 19.3407 19.007C19.211 19.0639 19.0949 19.1477 19 19.2529C18.6364 19.5735 18.2006 19.8013 17.7298 19.9167C17.259 20.032 16.7672 20.0316 16.2966 19.9154C15.826 19.7992 15.3906 19.5707 15.0276 19.2495C14.6646 18.9283 14.3848 18.5238 14.2122 18.0709C14.0397 17.6179 13.9795 17.1298 14.0367 16.6485C14.094 16.1672 14.267 15.7069 14.541 15.307C14.8151 14.9071 15.1819 14.5796 15.6101 14.3525C16.0384 14.1254 16.5152 14.0055 17 14.0029C17.421 14.0038 17.8372 14.0933 18.2214 14.2655C18.6056 14.4378 18.9493 14.6891 19.23 15.0029H18C17.7348 15.0029 17.4804 15.1083 17.2929 15.2958C17.1053 15.4833 17 15.7377 17 16.0029C17 16.2681 17.1053 16.5225 17.2929 16.71C17.4804 16.8976 17.7348 17.0029 18 17.0029H21C21.2652 17.0029 21.5195 16.8976 21.7071 16.71C21.8946 16.5225 22 16.2681 22 16.0029V13.0029C22 12.7377 21.8946 12.4833 21.7071 12.2958C21.5195 12.1083 21.2652 12.0029 21 12.0029C20.7348 12.0029 20.4804 12.1083 20.2929 12.2958C20.1053 12.4833 20 12.7377 20 13.0029C19.2442 12.4349 18.3429 12.0929 17.4006 12.0164C16.4583 11.9399 15.5136 12.1322 14.6761 12.5708C13.8386 13.0095 13.1427 13.6766 12.669 14.4948C12.1953 15.313 11.9633 16.2487 11.9998 17.1934C12.0364 18.1381 12.3401 19.0531 12.8756 19.8322C13.4111 20.6113 14.1565 21.2226 15.0254 21.5953C15.8943 21.9679 16.851 22.0865 17.7846 21.9374C18.7182 21.7883 19.5904 21.3776 20.3 20.7529Z\"\r\n fill=\"black\"\r\n />\r\n </>\r\n);\r\n\r\nexport default withSvg(24, 24)(SvgPlanned);\r\n","import React from 'react';\r\nimport { withSvg } from './Svg';\r\n\r\nconst SvgRelatesTo = () => (\r\n <path d=\"M20.92 12.62C20.8724 12.4972 20.801 12.3851 20.71 12.29L17.71 9.29C17.5217 9.1017 17.2663 8.99591 17 8.99591C16.7337 8.99591 16.4783 9.1017 16.29 9.29C16.1017 9.4783 15.9959 9.7337 15.9959 10C15.9959 10.2663 16.1017 10.5217 16.29 10.71L17.59 12H8C7.73478 12 7.48043 11.8946 7.29289 11.7071C7.10536 11.5196 7 11.2652 7 11V7C7 6.73478 6.89464 6.48043 6.70711 6.29289C6.51957 6.10536 6.26522 6 6 6C5.73478 6 5.48043 6.10536 5.29289 6.29289C5.10536 6.48043 5 6.73478 5 7V11C5 11.7956 5.31607 12.5587 5.87868 13.1213C6.44129 13.6839 7.20435 14 8 14H17.59L16.29 15.29C16.1963 15.383 16.1219 15.4936 16.0711 15.6154C16.0203 15.7373 15.9942 15.868 15.9942 16C15.9942 16.132 16.0203 16.2627 16.0711 16.3846C16.1219 16.5064 16.1963 16.617 16.29 16.71C16.383 16.8037 16.4936 16.8781 16.6154 16.9289C16.7373 16.9797 16.868 17.0058 17 17.0058C17.132 17.0058 17.2627 16.9797 17.3846 16.9289C17.5064 16.8781 17.617 16.8037 17.71 16.71L20.71 13.71C20.801 13.6149 20.8724 13.5028 20.92 13.38C21.02 13.1365 21.02 12.8635 20.92 12.62Z\" />\r\n);\r\n\r\nexport default withSvg(24, 24)(SvgRelatesTo);\r\n","import React from 'react';\r\nimport { withSvg } from './Svg';\r\n\r\nconst SvgSearch = () => (\r\n <path d=\"M12.5 11h-.79l-.28-.27A6.471 6.471 0 0013 6.5 6.5 6.5 0 106.5 13c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L17.49 16l-4.99-5zm-6 0C4.01 11 2 8.99 2 6.5S4.01 2 6.5 2 11 4.01 11 6.5 8.99 11 6.5 11z\" />\r\n);\r\n\r\n\r\nexport default withSvg(18, 18)(SvgSearch);\r\n","import React from 'react';\r\nimport { withSvg } from './Svg';\r\n\r\nconst SvgSimpleArrow = () => (\r\n <path d=\"M6.77201 6.56694L1.9725 11.3636C1.89814 11.4385 1.80966 11.498 1.71219 11.5385C1.61471 11.5791 1.51016 11.6 1.40456 11.6C1.29896 11.6 1.1944 11.5791 1.09693 11.5385C0.999449 11.498 0.910978 11.4385 0.836615 11.3636C0.76164 11.2892 0.70213 11.2008 0.66152 11.1034C0.620909 11.006 0.599999 10.9015 0.599999 10.796C0.599999 10.6904 0.620909 10.5859 0.66152 10.4885C0.70213 10.3911 0.76164 10.3027 0.836615 10.2284C2.2769 8.86988 3.68316 7.4747 5.0002 5.99607L0.836615 1.77033C0.685987 1.61979 0.601366 1.41562 0.601366 1.20273C0.601366 0.98984 0.685987 0.785668 0.836615 0.635131C0.987243 0.484595 1.19154 0.400024 1.40456 0.400024C1.51003 0.400024 1.61448 0.420787 1.71193 0.461127C1.80937 0.501467 1.89792 0.560593 1.9725 0.635131L6.77201 5.43174C6.84484 5.50777 6.90192 5.59742 6.94 5.69556C7.02 5.89019 7.02 6.1085 6.94 6.30313C6.90192 6.40126 6.84484 6.49091 6.77201 6.56694Z\" />\r\n);\r\n\r\nexport default withSvg(7, 12)(SvgSimpleArrow);\r\n","import React from 'react';\r\nimport { withSvg } from './Svg';\r\n\r\nconst SvgCapacity = () => (\r\n <path d=\"M21 2H3C2.73478 2 2.48043 2.10536 2.29289 2.29289C2.10536 2.48043 2 2.73478 2 3V21C2 21.2652 2.10536 21.5196 2.29289 21.7071C2.48043 21.8946 2.73478 22 3 22H9C9.26522 22 9.51957 21.8946 9.70711 21.7071C9.89464 21.5196 10 21.2652 10 21V10H21C21.2652 10 21.5196 9.89464 21.7071 9.70711C21.8946 9.51957 22 9.26522 22 9V3C22 2.73478 21.8946 2.48043 21.7071 2.29289C21.5196 2.10536 21.2652 2 21 2ZM20 8H18V7C18 6.73478 17.8946 6.48043 17.7071 6.29289C17.5196 6.10536 17.2652 6 17 6C16.7348 6 16.4804 6.10536 16.2929 6.29289C16.1054 6.48043 16 6.73478 16 7V8H14V7C14 6.73478 13.8946 6.48043 13.7071 6.29289C13.5196 6.10536 13.2652 6 13 6C12.7348 6 12.4804 6.10536 12.2929 6.29289C12.1054 6.48043 12 6.73478 12 7V8H10V7C10 6.73478 9.89464 6.48043 9.70711 6.29289C9.51957 6.10536 9.26522 6 9 6C8.73478 6 8.48043 6.10536 8.29289 6.29289C8.10536 6.48043 8 6.73478 8 7V8H7C6.73478 8 6.48043 8.10536 6.29289 8.29289C6.10536 8.48043 6 8.73478 6 9C6 9.26522 6.10536 9.51957 6.29289 9.70711C6.48043 9.89464 6.73478 10 7 10H8V12H7C6.73478 12 6.48043 12.1054 6.29289 12.2929C6.10536 12.4804 6 12.7348 6 13C6 13.2652 6.10536 13.5196 6.29289 13.7071C6.48043 13.8946 6.73478 14 7 14H8V16H7C6.73478 16 6.48043 16.1054 6.29289 16.2929C6.10536 16.4804 6 16.7348 6 17C6 17.2652 6.10536 17.5196 6.29289 17.7071C6.48043 17.8946 6.73478 18 7 18H8V20H4V4H20V8Z\" />\r\n);\r\n\r\nexport default withSvg(24, 24)(SvgCapacity);\r\n","import React from 'react';\r\nimport { withSvg } from './Svg';\r\n\r\nconst SvgCapacity = () => (\r\n <path d=\"M7.5 6C7.20333 6 6.91332 6.08798 6.66664 6.2528C6.41997 6.41762 6.22771 6.65189 6.11418 6.92598C6.00065 7.20007 5.97094 7.50167 6.02882 7.79264C6.0867 8.08361 6.22956 8.35088 6.43934 8.56066C6.64912 8.77044 6.91639 8.9133 7.20736 8.97118C7.49834 9.02906 7.79994 8.99935 8.07402 8.88582C8.34811 8.77229 8.58238 8.58003 8.7472 8.33336C8.91203 8.08668 9 7.79667 9 7.5C9 7.10218 8.84196 6.72065 8.56066 6.43934C8.27936 6.15804 7.89782 6 7.5 6ZM21.12 10.71L12.71 2.29C12.6166 2.19732 12.5057 2.12399 12.3839 2.07423C12.2621 2.02447 12.1316 1.99924 12 2H3C2.73478 2 2.48043 2.10536 2.29289 2.29289C2.10536 2.48043 2 2.73478 2 3V12C1.99924 12.1316 2.02446 12.2621 2.07423 12.3839C2.12399 12.5057 2.19732 12.6166 2.29 12.71L10.71 21.12C11.2725 21.6818 12.035 21.9974 12.83 21.9974C13.625 21.9974 14.3875 21.6818 14.95 21.12L21.12 15C21.6818 14.4375 21.9974 13.675 21.9974 12.88C21.9974 12.085 21.6818 11.3225 21.12 10.76V10.71ZM19.71 13.53L13.53 19.7C13.3426 19.8863 13.0892 19.9908 12.825 19.9908C12.5608 19.9908 12.3074 19.8863 12.12 19.7L4 11.59V4H11.59L19.71 12.12C19.8027 12.2134 19.876 12.3243 19.9258 12.4461C19.9755 12.5679 20.0008 12.6984 20 12.83C19.9989 13.0923 19.8947 13.3437 19.71 13.53Z\" />\r\n);\r\n\r\nexport default withSvg(24, 24)(SvgCapacity);\r\n","import React from 'react';\r\nimport { withSvg } from './Svg';\r\n\r\nconst SvgTime = () => (\r\n <path d=\"M6.99398 0.333008C3.31398 0.333008 0.333984 3.31967 0.333984 6.99967C0.333984 10.6797 3.31398 13.6663 6.99398 13.6663C10.6807 13.6663 13.6673 10.6797 13.6673 6.99967C13.6673 3.31967 10.6807 0.333008 6.99398 0.333008ZM7.00065 12.333C4.05398 12.333 1.66732 9.94634 1.66732 6.99967C1.66732 4.05301 4.05398 1.66634 7.00065 1.66634C9.94732 1.66634 12.334 4.05301 12.334 6.99967C12.334 9.94634 9.94732 12.333 7.00065 12.333ZM7.33398 3.66634H6.33398V7.66634L9.83398 9.76634L10.334 8.94634L7.33398 7.16634V3.66634Z\" />\r\n);\r\n\r\nexport default withSvg(16, 16)(SvgTime);\r\n","import React from 'react';\r\nimport { withSvg } from '../Svg';\r\n\r\nconst SvgUnderReview = () => (\r\n <>\r\n <path\r\n d=\"M22 12C22 10.0222 21.4135 8.08879 20.3147 6.4443C19.2159 4.79981 17.6541 3.51809 15.8268 2.76121C13.9996 2.00433 11.9889 1.8063 10.0491 2.19215C8.10929 2.578 6.32746 3.53041 4.92894 4.92894C3.53041 6.32746 2.578 8.10929 2.19215 10.0491C1.8063 11.9889 2.00433 13.9996 2.76121 15.8268C3.51809 17.6541 4.79981 19.2159 6.4443 20.3147C8.08879 21.4135 10.0222 22 12 22C14.6522 22 17.1957 20.9464 19.0711 19.0711C20.9464 17.1957 22 14.6522 22 12ZM4 12C4 10.4178 4.4692 8.87104 5.34825 7.55544C6.2273 6.23985 7.47673 5.21447 8.93854 4.60897C10.4003 4.00347 12.0089 3.84504 13.5607 4.15372C15.1126 4.4624 16.538 5.22433 17.6569 6.34315C18.7757 7.46197 19.5376 8.88743 19.8463 10.4393C20.155 11.9911 19.9965 13.5997 19.391 15.0615C18.7855 16.5233 17.7602 17.7727 16.4446 18.6518C15.129 19.5308 13.5823 20 12 20C9.87827 20 7.84344 19.1572 6.34315 17.6569C4.84286 16.1566 4 14.1217 4 12Z\"\r\n fill=\"black\"\r\n />\r\n <path\r\n d=\"M16.9062 12.4733C16.8466 12.6266 16.7574 12.7666 16.6435 12.8853L12.8912 16.6307C12.7749 16.7477 12.6366 16.8406 12.4841 16.904C12.3317 16.9674 12.1682 17 12.0031 17C11.838 17 11.6745 16.9674 11.5221 16.904C11.3697 16.8406 11.2313 16.7477 11.1151 16.6307C10.9978 16.5146 10.9048 16.3766 10.8413 16.2244C10.7778 16.0723 10.7451 15.9091 10.7451 15.7443C10.7451 15.5795 10.7778 15.4163 10.8413 15.2642C10.9048 15.112 10.9978 14.974 11.1151 14.8579L12.7411 13.2474H8.25078C7.91905 13.2474 7.60091 13.1159 7.36635 12.8817C7.13178 12.6476 7 12.33 7 11.9989C7 11.6678 7.13178 11.3503 7.36635 11.1161C7.60091 10.882 7.91905 10.7505 8.25078 10.7505H12.7411L11.1151 9.13997C10.8795 8.90488 10.7472 8.58603 10.7472 8.25356C10.7472 7.9211 10.8795 7.60225 11.1151 7.36716C11.3506 7.13207 11.67 7 12.0031 7C12.3362 7 12.6556 7.13207 12.8912 7.36716L16.6435 11.1125C16.7574 11.2313 16.8466 11.3713 16.9062 11.5245C17.0313 11.8285 17.0313 12.1694 16.9062 12.4733Z\"\r\n fill=\"black\"\r\n />\r\n </>\r\n);\r\n\r\nexport default withSvg(24, 24)(SvgUnderReview);\r\n","import React from 'react';\r\nimport { withSvg } from './Svg';\r\n\r\nconst SvgWarning = () => (\r\n <path d=\"M12 15C11.8022 15 11.6089 15.0586 11.4444 15.1685C11.28 15.2784 11.1518 15.4346 11.0761 15.6173C11.0004 15.8 10.9806 16.0011 11.0192 16.1951C11.0578 16.3891 11.153 16.5673 11.2929 16.7071C11.4327 16.847 11.6109 16.9422 11.8049 16.9808C11.9989 17.0194 12.2 16.9996 12.3827 16.9239C12.5654 16.8482 12.7216 16.72 12.8315 16.5556C12.9413 16.3911 13 16.1978 13 16C13 15.7348 12.8946 15.4804 12.7071 15.2929C12.5196 15.1054 12.2652 15 12 15ZM22.67 16.47L14.62 2.47C14.3598 2.00351 13.9798 1.61495 13.5192 1.34447C13.0586 1.07398 12.5341 0.931366 12 0.931366C11.4659 0.931366 10.9414 1.07398 10.4808 1.34447C10.0202 1.61495 9.64019 2.00351 9.38 2.47L1.38 16.47C1.11079 16.924 0.966141 17.441 0.960643 17.9688C0.955144 18.4966 1.089 19.0165 1.34868 19.476C1.60837 19.9356 1.9847 20.3185 2.43968 20.586C2.89466 20.8536 3.41218 20.9964 3.94 21H20.06C20.5921 21.0052 21.1159 20.8689 21.5779 20.6049C22.0399 20.3409 22.4234 19.9588 22.689 19.4978C22.9546 19.0368 23.0928 18.5134 23.0895 17.9813C23.0862 17.4493 22.9414 16.9277 22.67 16.47ZM20.94 18.47C20.8523 18.6259 20.7245 18.7555 20.5697 18.8452C20.4149 18.9349 20.2389 18.9815 20.06 18.98H3.94C3.76111 18.9815 3.5851 18.9349 3.43032 18.8452C3.27553 18.7555 3.14765 18.6259 3.06 18.47C2.97223 18.318 2.92602 18.1455 2.92602 17.97C2.92602 17.7945 2.97223 17.622 3.06 17.47L11.06 3.47C11.1439 3.3062 11.2714 3.16873 11.4284 3.07274C11.5855 2.97675 11.766 2.92596 11.95 2.92596C12.134 2.92596 12.3145 2.97675 12.4716 3.07274C12.6286 3.16873 12.7561 3.3062 12.84 3.47L20.89 17.47C20.9892 17.6198 21.0462 17.7936 21.055 17.9731C21.0638 18.1526 21.0241 18.3312 20.94 18.49V18.47ZM12 7C11.7348 7 11.4804 7.10535 11.2929 7.29289C11.1054 7.48043 11 7.73478 11 8V12C11 12.2652 11.1054 12.5196 11.2929 12.7071C11.4804 12.8946 11.7348 13 12 13C12.2652 13 12.5196 12.8946 12.7071 12.7071C12.8946 12.5196 13 12.2652 13 12V8C13 7.73478 12.8946 7.48043 12.7071 7.29289C12.5196 7.10535 12.2652 7 12 7Z\" />\r\n);\r\n\r\nexport default withSvg(24, 21)(SvgWarning);\r\n","import React from 'react';\r\nimport { withSvg } from './Svg';\r\n\r\nconst SvgWarningCircle = () => (\r\n <path d=\"M10 5C9.73478 5 9.48043 5.10536 9.29289 5.29289C9.10536 5.48043 9 5.73478 9 6V10C9 10.2652 9.10536 10.5196 9.29289 10.7071C9.48043 10.8946 9.73478 11 10 11C10.2652 11 10.5196 10.8946 10.7071 10.7071C10.8946 10.5196 11 10.2652 11 10V6C11 5.73478 10.8946 5.48043 10.7071 5.29289C10.5196 5.10536 10.2652 5 10 5ZM10.92 13.62C10.8981 13.5563 10.8678 13.4957 10.83 13.44L10.71 13.29C10.5694 13.1512 10.3908 13.0572 10.1968 13.0199C10.0028 12.9825 9.80211 13.0034 9.62 13.08C9.49882 13.1306 9.3872 13.2017 9.29 13.29C9.19732 13.3834 9.12399 13.4943 9.07423 13.6161C9.02447 13.7379 8.99924 13.8684 9 14C9.00158 14.1307 9.02876 14.2598 9.08 14.38C9.12491 14.5041 9.19657 14.6168 9.28989 14.7101C9.38321 14.8034 9.4959 14.8751 9.62 14.92C9.7397 14.9729 9.86913 15.0002 10 15.0002C10.1309 15.0002 10.2603 14.9729 10.38 14.92C10.5041 14.8751 10.6168 14.8034 10.7101 14.7101C10.8034 14.6168 10.8751 14.5041 10.92 14.38C10.9712 14.2598 10.9984 14.1307 11 14C11.0049 13.9334 11.0049 13.8666 11 13.8C10.9828 13.7362 10.9558 13.6755 10.92 13.62ZM10 0C8.02219 0 6.08879 0.58649 4.4443 1.6853C2.79981 2.78412 1.51808 4.3459 0.761205 6.17317C0.00432903 8.00043 -0.193704 10.0111 0.192148 11.9509C0.578 13.8907 1.53041 15.6725 2.92893 17.0711C4.32746 18.4696 6.10929 19.422 8.0491 19.8079C9.98891 20.1937 11.9996 19.9957 13.8268 19.2388C15.6541 18.4819 17.2159 17.2002 18.3147 15.5557C19.4135 13.9112 20 11.9778 20 10C20 8.68678 19.7413 7.38642 19.2388 6.17317C18.7362 4.95991 17.9997 3.85752 17.0711 2.92893C16.1425 2.00035 15.0401 1.26375 13.8268 0.761205C12.6136 0.258658 11.3132 0 10 0ZM10 18C8.41775 18 6.87103 17.5308 5.55544 16.6518C4.23985 15.7727 3.21447 14.5233 2.60896 13.0615C2.00346 11.5997 1.84504 9.99113 2.15372 8.43928C2.4624 6.88743 3.22433 5.46197 4.34315 4.34315C5.46197 3.22433 6.88743 2.4624 8.43928 2.15372C9.99113 1.84504 11.5997 2.00346 13.0615 2.60896C14.5233 3.21447 15.7727 4.23984 16.6518 5.55544C17.5308 6.87103 18 8.41775 18 10C18 12.1217 17.1571 14.1566 15.6569 15.6569C14.1566 17.1571 12.1217 18 10 18Z\" />\r\n);\r\n\r\nexport default withSvg(20, 20)(SvgWarningCircle);\r\n","import { warnInDev } from '_utils/helpers/dev';\r\n\r\nconst getColor = (colors: any, colorKey: string) => {\r\n const colorArgs = colorKey.split('.');\r\n const firstKey = colorArgs.shift();\r\n\r\n const color = colorArgs.reduce((acc, curr) => acc[curr], colors[firstKey]);\r\n\r\n return color;\r\n};\r\n\r\nexport default (colorKey: string) => ({ theme: { colors } }) => {\r\n let color = getColor(colors, colorKey);\r\n\r\n // If we don't have a color yet, search all colors outside of the theme\r\n if (typeof color === 'undefined') {\r\n color = getColor(colors, `all.${colorKey}`);\r\n }\r\n\r\n // Still no color, thrown warning\r\n if (typeof color === 'undefined') {\r\n warnInDev(`The color ('${colorKey}') that you tried to access doesn't exists.`);\r\n }\r\n\r\n return color;\r\n};\r\n","import { css } from 'styled-components';\r\n\r\nexport const aspect = (width, height) => css`\r\n position: relative;\r\n\r\n &:before {\r\n content: '';\r\n display: block;\r\n padding-top: ${(height / width) * 100}%; // this works because padding in percentages is based on width\r\n width: 100%;\r\n }\r\n`;\r\n","import { spacing } from '../../props';\r\nimport { mq } from '_utils/styles/';\r\n\r\nexport function listReset() {\r\n return `\r\n list-style: none;\r\n padding: 0;\r\n margin: 0;\r\n `;\r\n}\r\n\r\nexport function unorderedList({ theme }) {\r\n return `\r\n\r\n ${listReset()}\r\n\r\n margin: 16px 0;\r\n\r\n > li {\r\n padding: 0 0 0 38px;\r\n text-indent: 0;\r\n position: relative;\r\n\r\n ${mq('md')} {\r\n padding-left: 48px;\r\n }\r\n\r\n ul {\r\n margin-left: 0;\r\n }\r\n\r\n p {\r\n ${spacing({ theme, my: 1 })}\r\n }\r\n }\r\n\r\n > li::before {\r\n position: absolute;\r\n display: inline-block;\r\n text-align: center;\r\n content: '•';\r\n font-family: 'sans-serif';\r\n font-size: ${theme.contentRichText.orderedList.bullet.fontSize};\r\n color: ${theme.colors.element.primary};\r\n text-indent: 0;\r\n left: 10px;\r\n }\r\n\r\n li ul li {\r\n padding-left: 30px;\r\n\r\n &::before {\r\n content: '${theme.contentRichText.list.marker.content}';\r\n font-size: ${theme.contentRichText.list.marker.fontSize};\r\n font-family: 'sans-serif';\r\n left: 5px;\r\n }\r\n }\r\n `;\r\n}\r\n","import moment from 'moment-mini';\r\n\r\nexport const isValidDate = (d) => d.toString().toLowerCase() !== 'invalid date';\r\n\r\nexport type DateData = {\r\n attrDate: string; // used for <time datetime=\"\" />\r\n dateObj: Date;\r\n visualDate: string;\r\n};\r\n\r\nexport default (value = null, options = null, dateFormat = 'YYYYMMDDTHHmmss', strictMode = true): DateData => {\r\n try {\r\n if (value === null) {\r\n return null;\r\n }\r\n\r\n // handle utc\r\n const date = (options?.isUTC) ?\r\n moment.utc(value, dateFormat, false) :\r\n moment.parseZone(value, dateFormat, strictMode);\r\n\r\n if (!date.isValid()) {\r\n return null;\r\n }\r\n\r\n // 01/09/2021\r\n if (options?.short) {\r\n return {\r\n attrDate: date.format('YYYY-MM-DD'),\r\n dateObj: date.toDate(),\r\n visualDate: date.format('DD/MM/YYYY')\r\n };\r\n }\r\n\r\n // 1 Sep 2021\r\n if (options?.medium) {\r\n return {\r\n attrDate: date.format('YYYY-MM-DD'),\r\n dateObj: date.toDate(),\r\n visualDate: date.format('D MMM Y')\r\n };\r\n }\r\n\r\n // output preferred format\r\n if (options?.outputFormat) {\r\n return {\r\n attrDate: date.format('YYYY-MM-DD'),\r\n dateObj: date.toDate(),\r\n visualDate: date.format(options.outputFormat)\r\n };\r\n }\r\n\r\n return {\r\n attrDate: date.format('YYYY-MM-DD'),\r\n dateObj: date.toDate(),\r\n visualDate: date.format('D MMMM YYYY')\r\n };\r\n } catch {\r\n return null;\r\n }\r\n};\r\n","import { clone } from 'ramda';\r\nimport { appendAnalyticsTrackingQueryString } from '_utils/data/queryString';\r\nimport { Anchor } from './AnchorAttribute';\r\n\r\nexport const isValidLinkObject = (link) => Boolean(link?.url);\r\n\r\nexport const getLink = (link, analyticsOptions = null) => {\r\n\r\n const analyticsTrackingName = analyticsOptions?.analyticsTrackingName;\r\n const datasourceName = analyticsOptions?.datasourceName;\r\n const trackingName = analyticsTrackingName || datasourceName || false;\r\n\r\n if (typeof link === 'string' && Boolean(link)) {\r\n const linkObj: any = {\r\n url: link\r\n };\r\n\r\n // external link\r\n if (!link.startsWith('/')) {\r\n linkObj.href = link;\r\n linkObj.type = 'external';\r\n linkObj.target = '_blank';\r\n }\r\n // internal link\r\n else {\r\n linkObj.to = link;\r\n }\r\n\r\n return linkObj;\r\n } else if (link && typeof link === 'object') {\r\n // handle yet another format of links\r\n const linkObj: any = {\r\n ...link\r\n };\r\n\r\n if (Object.prototype.hasOwnProperty.call(link, 'href')) {\r\n linkObj.url = link.href;\r\n }\r\n\r\n if (Object.prototype.hasOwnProperty.call(link, 'linktype')) {\r\n linkObj.type = link.linktype;\r\n }\r\n\r\n if (Object.prototype.hasOwnProperty.call(link, 'linkType')) {\r\n linkObj.type = link.linkType;\r\n }\r\n\r\n // remove renamed keys\r\n delete linkObj.href;\r\n delete linkObj.linkType;\r\n delete linkObj.linktype;\r\n\r\n if (isValidLinkObject(linkObj)) {\r\n // only certain components (ie. banners) require the query string to pass analytics tracking info\r\n if (trackingName && linkObj?.url && linkObj.url.startsWith('/')) {\r\n linkObj.url = appendAnalyticsTrackingQueryString(link, trackingName);\r\n } else if (linkObj.querystring) {\r\n linkObj.url = linkObj?.url.concat('?', linkObj.querystring);\r\n }\r\n\r\n return linkObj;\r\n }\r\n }\r\n\r\n return null;\r\n};\r\n\r\n/**\r\n * Returns HTML anchor attributes and calculates appropriate target based on link construction. \r\n * \r\n * @param {string} link \r\n * @returns { Anchor | null }\r\n */\r\nexport const getAnchorProps = (link: string): Anchor | null => {\r\n if (!link) {\r\n return null;\r\n }\r\n\r\n const anchor: Anchor = { href: link };\r\n\r\n if (link.startsWith('/')) {\r\n return anchor;\r\n }\r\n\r\n return {\r\n ...anchor,\r\n target: '_blank'\r\n }\r\n};","import React from 'react';\r\nimport { withSvg } from '../Svg';\r\nconst Menu = () => (\r\n <>\r\n <path d=\"M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z\" fill=\"currentColor\"></path>\r\n </>\r\n)\r\nexport default withSvg(24, 24, true)(Menu);","import React from 'react';\r\nimport { withSvg } from '../Svg';\r\nconst Login = () => (\r\n <>\r\n <g></g><g><path d=\"M11,7L9.6,8.4l2.6,2.6H2v2h10.2l-2.6,2.6L11,17l5-5L11,7z M20,19h-8v2h8c1.1,0,2-0.9,2-2V5c0-1.1-0.9-2-2-2h-8v2h8V19z\" fill=\"currentColor\"></path></g>\r\n </>\r\n)\r\nexport default withSvg(24, 24, true)(Login);","import React from 'react';\r\nimport { withSvg } from '../Svg';\r\nconst PermIdentity = () => (\r\n <>\r\n <path d=\"M12 6c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2m0 9c2.7 0 5.8 1.29 6 2v1H6v-.99c.2-.72 3.3-2.01 6-2.01m0-11C9.79 4 8 5.79 8 8s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 9c-2.67 0-8 1.34-8 4v3h16v-3c0-2.66-5.33-4-8-4z\" fill=\"currentColor\"></path>\r\n </>\r\n)\r\nexport default withSvg(24, 24, true)(PermIdentity);","import React, { FC, useMemo } from 'react';\r\nimport { withSvg } from './Svg';\r\nimport { getRandomId } from '_utils/data/';\r\n\r\nconst LogoITB: FC = () => {\r\n const id = useMemo(() => getRandomId(), []);\r\n\r\n return (\r\n <>\r\n <g clipPath=\"url(#clip-path-${id})\">\r\n <path fillRule=\"evenodd\" clipRule=\"evenodd\" d=\"M106.884 27.1548C105.532 28.2059 104.105 28.7314 102.604 28.7314C100.214 28.7351 98.3622 27.5092 97.0486 25.0536C95.735 22.5981 95.0782 19.0919 95.0782 14.5352C95.0698 9.97373 95.7266 6.41085 97.0486 3.84651C98.3707 1.28217 100.251 0 102.691 0C103.866 0 105.154 0.484271 106.554 1.45281V5.09399C105.353 3.93417 104.152 3.35427 102.95 3.35427C101.504 3.35333 100.456 4.20092 99.8072 5.89704C99.1579 7.59316 98.8332 10.4153 98.8332 14.3636C98.8342 18.2743 99.1626 21.0871 99.8184 22.802C100.474 24.5169 101.56 25.3743 103.075 25.3743C104.113 25.3743 105.382 24.7063 106.884 23.3702V27.1548ZM107.688 0.368479H111.293V28.3629H107.688V0.368479ZM86.9596 0.205317L82.3052 25.0072H76.8599V0.36846H73.2568V28.3559H85.1567L86.2629 22.155H91.4704L92.4683 28.3629H95.9489L90.7062 0.205317H86.9596ZM86.7949 18.8064L88.7653 7.07981H88.8681L90.8385 18.8064H86.7949ZM71.2889 7.28864C71.2889 9.81547 70.0738 11.829 67.6436 13.3291C70.4951 14.6633 71.9208 16.9816 71.9208 20.2838C71.9227 22.6653 71.1524 24.6061 69.6098 26.1063C68.0673 27.6065 65.8759 28.3565 63.0357 28.3565H59.6367V0.369141H63.9167C66.0335 0.369141 67.7914 1.05171 69.1904 2.41686C70.5894 3.78201 71.2889 5.40593 71.2889 7.28864ZM63.5677 3.72482H63.2412V12.2364H63.5677C64.8241 12.2345 65.8243 11.8383 66.5683 11.0479C67.3124 10.2576 67.6844 9.20041 67.6844 7.87651C67.6816 6.5545 67.3232 5.53204 66.6092 4.80915C65.8951 4.08626 64.8813 3.72482 63.5677 3.72482ZM63.8759 25.0079C65.2683 25.0079 66.3572 24.6028 67.1426 23.7928C67.927 22.9827 68.3192 21.8561 68.3192 20.4132C68.3201 18.9833 67.9345 17.8226 67.1623 16.9309C66.3901 16.0393 65.2946 15.5934 63.8759 15.5934H63.2412V25.0079H63.8759ZM120.139 28.3636L114.64 13.6906L119.052 0.369141H115.365L111.414 14.1617L116.422 28.3636H120.139ZM56.7139 15.4507H50.8787V25.0072H57.595V28.3629H47.2743V0.368479H57.2473V3.72415H50.8787V12.0936H56.7139V15.4507ZM14.7145 17.6398L14.6328 17.6777L8.42746 0.369141H5.5V28.3636H8.81732V10.9284L8.89895 10.9326L15.1043 28.3636H18.0332V0.369141H14.7145V17.6398ZM0 0.368479H3.60444V28.3629H0V0.368479ZM19.6844 3.72415H23.9841V28.3629H27.5886V3.72415H31.8897V0.368479H19.6844V3.72415ZM36.3457 12.6872H41.7108V0.368479H45.2942V28.3629H41.7108V16.0428H36.3457V28.3629H32.7624V0.368479H36.3457V12.6872Z\" fill=\"black\" />\r\n </g>\r\n <defs>\r\n <clipPath id={`clip-path-${id}`}>\r\n <path width=\"121\" height=\"29\" fill=\"none\" d=\"M0 0h174.545v48H0z\" />\r\n </clipPath>\r\n </defs>\r\n </>\r\n );\r\n};\r\n\r\nexport default withSvg(121, 29)(LogoITB);\r\n","export default __webpack_public_path__ + \"static/media/logo_intheblack_placeholder.1f0806b8.svg\";","import { Image as SCImage } from '@sitecore-jss/sitecore-jss-react';\r\nimport { NavLink } from 'react-router-dom';\r\nimport styled, { css } from 'styled-components';\r\n\r\nimport TagList from '_components/TagList';\r\nimport Grid from '_utils/components/Grid';\r\n\r\nimport { spacing } from '_utils/props';\r\nimport {\r\n color,\r\n fixedBody12,\r\n headingH4,\r\n headingH5,\r\n imageFitCover,\r\n mq,\r\n svg,\r\n textBody2\r\n} from '_utils/styles';\r\n\r\nimport { hideOnPrint } from '_utils/styles/print';\r\n\r\nconst container = css`\r\n color: inherit;\r\n display: flex;\r\n flex-direction: row;\r\n flex: 1 0 auto;\r\n position: relative;\r\n text-decoration: none;\r\n width: 100%;\r\n\r\n ${mq('lg')} {\r\n height: 100%;\r\n }\r\n`;\r\n\r\nexport const TagContainer = styled.div`\r\n ${hideOnPrint}\r\n`;\r\n\r\nexport const StyledTagList = styled(TagList)`\r\n margin: 0;\r\n\r\n > div {\r\n padding: 0;\r\n }\r\n`;\r\n\r\nexport const PlaceholderCard = styled(Grid.Item)`\r\n background-color: ${({ theme }) => theme?.contentCard?.cardBackground};\r\n display: flex;\r\n`;\r\n\r\nexport const Card = styled(NavLink)`\r\n ${container}\r\n display: flex;\r\n flex-direction: column;\r\n height: auto;\r\n overflow: hidden;\r\n position: relative;\r\n\r\n &:hover .title {\r\n text-decoration: underline;\r\n }\r\n\r\n &:not(.noTopBorder).horizontal {\r\n border-top: 1px solid ${({ theme }) => theme.colors.ui.divider};\r\n }\r\n\r\n &.horizontal {\r\n flex-direction: row;\r\n ${({ theme }) => spacing({ theme, pt: 3 })}\r\n\r\n @media print {\r\n flex: none;\r\n padding-bottom: 20px;\r\n padding-top: 0;\r\n }\r\n }\r\n\r\n &.horizontal.noTopBorder {\r\n padding-top: 0;\r\n }\r\n\r\n @media print {\r\n border-top: none !important;\r\n display: inline-block;\r\n width: 100%;\r\n }\r\n`;\r\n\r\nexport const ImageColumn = styled.div`\r\n ${({ theme }) => spacing({ theme, mb: 3 })}\r\n align-items: flex-start;\r\n display: flex;\r\n justify-content: center;\r\n\r\n &:not(.noTopBorder).horizontal {\r\n margin-top: 0;\r\n }\r\n\r\n .horizontal & {\r\n flex-basis: 33.3%;\r\n flex-shrink: 0;\r\n min-width: 96px;\r\n ${({ theme }) => spacing({ theme, m: 0 })}\r\n\r\n @media print {\r\n display: block;\r\n flex: none;\r\n margin-bottom: 20px;\r\n width: 100%;\r\n }\r\n }\r\n\r\n`;\r\n\r\nexport const ImageContainer = styled.div`\r\n padding-bottom: 56.25%;\r\n position: relative;\r\n width: 100%;\r\n`;\r\n\r\nexport const PlaceholderImage = styled.img`\r\n ${imageFitCover};\r\n`;\r\n\r\nexport const Image = styled(SCImage)`\r\n ${imageFitCover}\r\n\r\n ${Card}.focus & {\r\n font-family: 'object-fit: contain;';\r\n height: 75%;\r\n left: 50%;\r\n object-fit: contain;\r\n top: 50%;\r\n transform: translate(-50%, -50%);\r\n width: 75%;\r\n }\r\n`;\r\n\r\nexport const DetailsColumn = styled.div`\r\n ${textBody2}\r\n color: ${color('text.subtle')};\r\n\r\n .horizontal & {\r\n ${({ theme }) => spacing({ theme, ml: 3 })}\r\n\r\n @media print {\r\n margin-left: 0;\r\n }\r\n }\r\n`;\r\n\r\nconst IconContainerStyles = css`\r\n color: inherit;\r\n display: block;\r\n text-decoration: none;\r\n\r\n &.title-is-link:hover {\r\n color: ${({ theme }) => theme?.contentCard?.action};\r\n }\r\n`;\r\n\r\nexport const IconContainer = styled.span`\r\n ${IconContainerStyles}\r\n`;\r\n\r\nexport const LinkIconContainer = styled(NavLink)`\r\n ${IconContainerStyles}\r\n`;\r\n\r\nconst AttributeItemStyles = css`\r\n align-items: center;\r\n display: flex;\r\n\r\n svg {\r\n ${svg(16, 16)}\r\n flex-shrink: 0;\r\n margin-right: 8px;\r\n position: relative;\r\n top: 0;\r\n width: 16px;\r\n\r\n path {\r\n fill: ${({ theme }) => theme.colors.text.nonessential};\r\n }\r\n }`;\r\n\r\nexport const AttributesItem = styled.div`\r\n ${AttributeItemStyles}\r\n`;\r\n\r\nexport const AttributesWrapper = styled.div`\r\n ${fixedBody12}\r\n color: ${({ theme }) => theme.colors.text.secondary};\r\n display: flex;\r\n flex-direction: column;\r\n flex-grow: 1;\r\n\r\n // specific values due to 4px already on Tag\r\n ${({ theme }) => spacing({ theme, mb: { xs: '4px', md: '12px' } })}\r\n\r\n .horizontal & {\r\n ${({ theme }) => spacing({ theme, mb: { md: 1 } })}\r\n }\r\n`;\r\n\r\nexport const Title = styled.div`\r\n h3,\r\n h4,\r\n h5,\r\n h6,\r\n h3&,\r\n h4&,\r\n h5&,\r\n h6& {\r\n ${headingH4}\r\n margin-top: 0;\r\n margin-bottom: 8px;\r\n }\r\n\r\n .horizontal & {\r\n ${mq.lessThan('md')} {\r\n ${headingH5}\r\n }\r\n }\r\n\r\n @media print {\r\n font-size: 16px !important;\r\n line-height: 20px !important;\r\n }\r\n`;\r\n\r\nexport const AttributeFooterWrapper = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n flex-grow: 0;\r\n`;\r\n\r\nexport const DateWrapper = styled.div`\r\n ${fixedBody12}\r\n`;\r\n","import classNames from 'classnames';\r\nimport React from 'react';\r\n\r\nimport inTheBlackPlaceholder from '_assets/logo_intheblack_placeholder.svg';\r\n\r\nimport Icon from '_components/Icon';\r\n\r\nimport { getDictionaryItem } from '_utils/data/dictionaryItem';\r\nimport { dateConverter } from '_utils/helpers/';\r\nimport { getLink } from '_utils/helpers/link';\r\nimport { useBreakpoint } from '_utils/hooks/useBreakpoint';\r\nimport { createSrcSet } from '_utils/media';\r\nimport { imagePlaceholderSrc } from '_utils/styles';\r\nimport { ImageHeight16by9, ImageSize } from '_utils/types/enums';\r\n\r\nimport {\r\n ContentCardProps,\r\n} from './definitions';\r\n\r\nimport {\r\n AttributesItem,\r\n AttributesWrapper,\r\n Card,\r\n DetailsColumn,\r\n AttributeFooterWrapper,\r\n Image as StyledImage,\r\n ImageColumn,\r\n ImageContainer,\r\n PlaceholderCard,\r\n PlaceholderImage,\r\n StyledTagList,\r\n TagContainer,\r\n Title,\r\n} from './StyledContentCard';\r\n\r\nconst getPublishedDate = (published) => {\r\n if (published) {\r\n return dateConverter(published, { isUTC: true, outputFormat: 'DD MMM YYYY' });\r\n }\r\n return;\r\n}\r\n\r\nconst ContentCard: React.FC<ContentCardProps> = ({\r\n areTagsClickable = false,\r\n category,\r\n className,\r\n editMode,\r\n featuredImage,\r\n headingLevel,\r\n isHorizontalMode = false,\r\n // published not required currently, but maybe in future\r\n // published,\r\n readingTime,\r\n showCategoryTag = false,\r\n showPublishDate = false,\r\n showTags = false,\r\n tags,\r\n title,\r\n url,\r\n}) => {\r\n\r\n const cardProps = getLink(url);\r\n const Component = editMode ? PlaceholderCard : Card;\r\n const hasImageSrc = !!featuredImage?.value?.src;\r\n const headingType = headingLevel ? `h${headingLevel + 1}` : `h4`;\r\n const isExternalLink = cardProps?.target === '_blank';\r\n // const publishedDate = getPublishedDate(published);\r\n\r\n const bp = useBreakpoint();\r\n\r\n const classes = classNames(\r\n 'card',\r\n {\r\n 'horizontal': isHorizontalMode,\r\n [className]: className\r\n });\r\n\r\n return (\r\n (editMode || cardProps) && (\r\n <Component {...cardProps}\r\n className={classes}\r\n as={isExternalLink ? 'a' : null}>\r\n <ImageColumn>\r\n <ImageContainer>\r\n {hasImageSrc ?\r\n <StyledImage\r\n className=\"lazyload\"\r\n draggable={false}\r\n field={\r\n editMode\r\n ? featuredImage?.value\r\n : {\r\n value: {\r\n src: imagePlaceholderSrc,\r\n alt: '', // alt text is empty string, as this is a decorative image\r\n 'data-srcset': createSrcSet(featuredImage?.value?.src, [ImageSize.MW_384, ImageSize.MW_512])\r\n }\r\n }\r\n }\r\n height={ImageHeight16by9.MW_384}\r\n width={ImageSize.MW_384}\r\n /> :\r\n <PlaceholderImage src={inTheBlackPlaceholder} alt='' />\r\n }\r\n </ImageContainer>\r\n </ImageColumn>\r\n <DetailsColumn>\r\n <Title as={headingType} className=\"title\">{title}\r\n \r\n {\r\n \r\n {/* published not required currently, but maybe in future\r\n {((showPublishDate && typeof publishedDate !== 'undefined')) && (\r\n \r\n \r\n {(editMode || publishedDate) && (\r\n {getDictionaryItem('global-published', 'Published')}{' '}\r\n )}\r\n \r\n )} */}\r\n {\r\n (editMode || readingTime) &&\r\n \r\n \r\n {getDictionaryItem('global-read-time', '{minutes} min reading time').replace(/\\{minutes}/ig, readingTime)}\r\n \r\n }\r\n \r\n }\r\n {\r\n showCategoryTag && category?.url &&\r\n \r\n \r\n \r\n }\r\n {\r\n showTags && tags?.length > 0 &&\r\n \r\n \r\n \r\n }\r\n \r\n \r\n\r\n
    \r\n )\r\n );\r\n};\r\n\r\nexport default ContentCard;\r\n","import { textBody1 } from '_utils/styles';\r\nimport colors from '../colors';\r\n\r\nexport default {\r\n primary: {\r\n background: colors.transparent,\r\n backgroundHover: colors.brandPrimary1,\r\n border: colors.brandPrimary1,\r\n borderFocus: '3px solid',\r\n borderFocusColor: colors.brandPrimary1,\r\n borderFocusWithinColor: colors.brandPrimary1,\r\n borderHover: colors.brandPrimary1Dark,\r\n borderVisited: colors.visited,\r\n color: colors.neutral700,\r\n colorFocus: colors.neutralWhite,\r\n colorHover: colors.neutralWhite,\r\n colorVisited: colors.visited,\r\n textDecoration: 'none',\r\n textDecorationFocus: 'none',\r\n },\r\n primaryWithoutVisited: {\r\n background: colors.transparent,\r\n backgroundHover: 'inherit',\r\n border: colors.brandPrimary1,\r\n borderHover: colors.brandPrimary1Dark,\r\n color: 'inherit',\r\n colorHover: 'inherit',\r\n colorVisited: 'inherit',\r\n borderVisited: 'inherit',\r\n textDecoration: 'none',\r\n textDecorationFocus: 'none',\r\n },\r\n secondary: {\r\n background: colors.transparent,\r\n backgroundHover: colors.transparent,\r\n border: colors.transparent,\r\n borderFocus: 'none',\r\n borderFocusColor: colors.brandPrimary1,\r\n borderFocusWithinColor: colors.transparent,\r\n borderHover: colors.transparent,\r\n borderVisited: colors.transparent,\r\n color: colors.brandPrimary1,\r\n colorFocus: colors.brandPrimary1,\r\n colorHover: colors.brandPrimary1Dark,\r\n colorVisited: colors.visited,\r\n textDecoration: 'underline',\r\n textDecorationFocus: 'underline',\r\n },\r\n featured: {\r\n background: colors.transparent,\r\n backgroundHover: colors.transparent,\r\n border: colors.transparent,\r\n borderFocusColor: colors.transparent,\r\n borderFocusWithinColor: colors.transparent,\r\n borderHover: colors.transparent,\r\n borderVisited: colors.transparent,\r\n boxShadowColor: colors.brandPrimary1Dark,\r\n color: colors.brandPrimary1,\r\n colorFocus: colors.brandPrimary1,\r\n colorHover: colors.brandPrimary1Dark,\r\n colorVisited: colors.visited,\r\n fontWeight: 'normal',\r\n textBody: textBody1,\r\n textDecoration: 'none',\r\n textDecorationFocus: 'inherit',\r\n textTransform: 'normal',\r\n },\r\n white: {\r\n background: colors.transparent,\r\n backgroundHover: colors.transparent,\r\n border: colors.transparent,\r\n borderHover: colors.transparent,\r\n borderVisited: colors.transparent,\r\n color: 'inherit',\r\n colorHover: colors.neutralWhite,\r\n colorVisited: colors.neutralWhite,\r\n textDecoration: 'underline',\r\n textDecorationFocus: 'inherit',\r\n },\r\n breadcrumb: {\r\n background: colors.transparent,\r\n backgroundHover: colors.transparent,\r\n border: colors.transparent,\r\n borderHover: colors.transparent,\r\n borderVisited: colors.transparent,\r\n color: colors.interactive500,\r\n colorHover: colors.brandPrimary1Dark,\r\n colorVisited: colors.brandPrimary1,\r\n textDecoration: 'none',\r\n textDecorationFocus: 'inherit',\r\n }\r\n}\r\n","import colors from '_containers/Theme/corporate/colors';\r\n\r\nexport default {\r\n container: {\r\n background: colors.background.tint2,\r\n borderColor: colors.all.neutral200\r\n },\r\n linkList: {\r\n color: colors.all.neutral700\r\n }\r\n};\r\n","import colors from '_containers/Theme/corporate/colors';\r\n\r\nexport default {\r\n container: {\r\n background: colors.background.tint2,\r\n borderColor: colors.ui.divider\r\n },\r\n campaignName: {\r\n background: colors.background.darkBlue,\r\n color: colors.all.darkText\r\n },\r\n linkItem: {\r\n color: colors.text.default,\r\n hover: {\r\n background: colors.background.tint3,\r\n color: colors.text.default\r\n },\r\n focus: {\r\n outline: colors.interactiveCell.focus\r\n },\r\n active: {\r\n background: colors.interactiveCell.pressed\r\n },\r\n activeAfter: {\r\n background: colors.all.brandPrimary1\r\n },\r\n },\r\n gradient: {\r\n background: colors.background.tint2,\r\n end: {\r\n background: colors.background.tint2\r\n }\r\n },\r\n navigation: {\r\n borderColor: colors.ui.divider\r\n },\r\n linkList: {\r\n scrollbar: {\r\n background: colors.background.tint4\r\n }\r\n },\r\n linkButton: {\r\n visited: {\r\n color: colors.all.neutralWhite\r\n }\r\n }\r\n};","import colors from '_containers/Theme/corporate/colors';\r\n\r\nexport default {\r\n container: {\r\n color: colors.all.darkText,\r\n background: colors.all.neutralWhite,\r\n mediaPrint: {\r\n background: colors.background.tint1,\r\n color: colors.element.neutralBlack,\r\n }\r\n },\r\n bannerHeading: {\r\n color: colors.all.neutralWhite,\r\n }\r\n};\r\n","import colors from './colorOptions';\r\nimport corporateColors from '../corporate/colorOptions';\r\nimport { FONT_FAMILY_TEXT } from './global';\r\n\r\nexport default {\r\n default: {\r\n borderRadius: {\r\n topLeft: 4,\r\n topRight: 4,\r\n bottomLeft: 4,\r\n bottomRight: 4\r\n },\r\n // (same as h5)\r\n fontSize: {\r\n sm: 16,\r\n md: 16\r\n },\r\n lineHeight: {\r\n sm: 24,\r\n md: 24\r\n },\r\n padding: {\r\n x: 16,\r\n y: 12\r\n },\r\n icon: {\r\n sm: {\r\n w: 16,\r\n h: 16\r\n },\r\n md: {\r\n w: 16,\r\n h: 16\r\n }\r\n },\r\n fontFamily: FONT_FAMILY_TEXT\r\n },\r\n tertiary: {\r\n borderRadius: {\r\n topLeft: 4,\r\n topRight: 4,\r\n bottomLeft: 4,\r\n bottomRight: 4\r\n },\r\n // (same as h5)\r\n fontSize: {\r\n sm: 16,\r\n md: 16\r\n },\r\n lineHeight: {\r\n sm: 24,\r\n md: 24\r\n },\r\n padding: {\r\n x: 16,\r\n y: 12\r\n },\r\n icon: {\r\n sm: {\r\n w: 16,\r\n h: 16\r\n },\r\n md: {\r\n w: 16,\r\n h: 16\r\n }\r\n },\r\n fontFamily: FONT_FAMILY_TEXT\r\n },\r\n slim: {\r\n borderRadius: {\r\n topLeft: 4,\r\n topRight: 4,\r\n bottomLeft: 4,\r\n bottomRight: 4\r\n },\r\n fontSize: {\r\n sm: 14,\r\n md: 14\r\n },\r\n lineHeight: {\r\n sm: 24,\r\n md: 24\r\n },\r\n padding: {\r\n x: 16,\r\n y: 4\r\n },\r\n icon: {\r\n sm: {\r\n w: 20,\r\n h: 20\r\n },\r\n md: {\r\n w: 20,\r\n h: 20\r\n }\r\n },\r\n fontFamily: FONT_FAMILY_TEXT\r\n },\r\n iconOnly: {\r\n borderRadius: {\r\n topLeft: 0,\r\n topRight: 0,\r\n bottomLeft: 0,\r\n bottomRight: 0\r\n },\r\n fontSize: {\r\n sm: 16,\r\n md: 16\r\n },\r\n lineHeight: {\r\n sm: 16,\r\n md: 16\r\n },\r\n padding: {\r\n x: 16,\r\n y: 16\r\n },\r\n icon: {\r\n sm: {\r\n w: 20,\r\n h: 20\r\n },\r\n md: {\r\n w: 24,\r\n h: 24\r\n }\r\n },\r\n fontFamily: FONT_FAMILY_TEXT,\r\n },\r\n colors: {\r\n danger: {\r\n background: colors.error500,\r\n backgroundActive: '',\r\n backgroundFocus: '',\r\n backgroundHover: colors.error700,\r\n border: '',\r\n borderActive: '',\r\n borderFocus: colors.interactive300,\r\n borderHover: '',\r\n borderHoverWidth: 0,\r\n borderWidth: 0,\r\n color: colors.neutralWhite,\r\n colorActive: '',\r\n colorHover: '',\r\n disabled: colors.neutral300,\r\n pressed: colors.neutral600\r\n },\r\n ghost: {\r\n background: colors.transparent,\r\n backgroundActive: '',\r\n backgroundFocus: '',\r\n backgroundHover: colors.interactive100,\r\n border: colors.transparent,\r\n borderActive: '',\r\n borderFocus: colors.interactive200,\r\n borderHover: colors.transparent,\r\n borderHoverWidth: 0,\r\n borderWidth: 0,\r\n color: colors.interactive600,\r\n colorActive: '',\r\n colorAlternate: colors.neutral800,\r\n colorHover: ''\r\n },\r\n primary: {\r\n background: colors.interactive400,\r\n backgroundActive: '',\r\n backgroundDisabled: colors.neutral300,\r\n backgroundFocus: '',\r\n backgroundHover: colors.interactive500,\r\n border: '',\r\n borderActive: '',\r\n borderFocus: colors.interactive300,\r\n borderHover: '',\r\n borderHoverWidth: 0,\r\n borderWidth: 0,\r\n color: colors.neutralBlack,\r\n colorActive: '',\r\n colorHover: '',\r\n disabled: colors.neutralWhite,\r\n pressed: colors.neutral600\r\n },\r\n secondary: {\r\n background: colors.brandPrimary1,\r\n backgroundActive: '',\r\n backgroundFocus: '',\r\n backgroundHover: colors.neutral700,\r\n border: '',\r\n borderActive: '',\r\n borderFocus: colors.interactive300,\r\n borderHover: '',\r\n borderHoverWidth: 0,\r\n borderWidth: 0,\r\n color: colors.neutralWhite,\r\n colorActive: '',\r\n colorHover: '',\r\n disabled: colors.neutral300,\r\n pressed: colors.neutral600\r\n },\r\n // Not show in figma - DO NOT REMOVE - breaks Corporate build\r\n // TODO - work out why it breaks Corporate build\r\n secondaryDark: {\r\n background: '',\r\n backgroundActive: '',\r\n backgroundFocus: '',\r\n backgroundHover: '',\r\n border: '',\r\n borderActive: '',\r\n borderFocus: '',\r\n borderHover: '',\r\n borderHoverWidth: 0,\r\n borderWidth: 0,\r\n color: '',\r\n colorActive: '',\r\n colorHover: ''\r\n },\r\n tertiary: {\r\n background: colors.neutralWhite,\r\n backgroundActive: '',\r\n backgroundFocus: '',\r\n backgroundHover: '',\r\n border: colors.brandPrimary1,\r\n borderActive: '',\r\n borderFocus: colors.neutralBlack,\r\n borderHover: '',\r\n borderHoverWidth: 2,\r\n borderWidth: 2,\r\n color: colors.brandPrimary1,\r\n colorActive: '',\r\n colorHover: '',\r\n pressed: colors.neutral600\r\n },\r\n tertiaryDark: {\r\n background: colors.transparent,\r\n backgroundActive: '',\r\n backgroundFocus: '',\r\n backgroundHover: '',\r\n border: colors.brandPrimary1,\r\n borderActive: '',\r\n borderFocus: colors.interactive300,\r\n borderHover: '',\r\n borderHoverWidth: 3,\r\n borderWidth: 2,\r\n color: colors.brandPrimary1,\r\n colorActive: '',\r\n colorHover: '',\r\n pressed: colors.neutral600\r\n },\r\n text: {\r\n background: colors.transparent,\r\n backgroundActive: '',\r\n backgroundFocus: '',\r\n backgroundHover: colors.transparent,\r\n border: colors.transparent,\r\n borderActive: '',\r\n borderFocus: colors.interactive200,\r\n borderHover: colors.transparent,\r\n borderHoverWidth: 0,\r\n borderWidth: 0,\r\n color: colors.brandSecondary2,\r\n colorActive: '',\r\n colorHover: colors.brandSecondary3Dark\r\n },\r\n // Not shown in figma -- used by InPageAnnouncement, SiteWideAnnouncement\r\n announcementTertiary: {\r\n background: colors.transparent,\r\n backgroundActive: '',\r\n backgroundFocus: '',\r\n backgroundHover: '',\r\n border: colors.neutral900,\r\n borderActive: '',\r\n borderFocus: colors.interactive200,\r\n borderHover: '',\r\n borderHoverWidth: 3,\r\n borderWidth: 1,\r\n color: colors.neutral900,\r\n colorHover: colors.neutral900\r\n },\r\n tertiaryDark: {\r\n background: colors.transparent,\r\n backgroundActive: '',\r\n backgroundFocus: '',\r\n backgroundHover: '',\r\n border: colors.neutralWhite,\r\n borderActive: '',\r\n borderFocus: colors.interactive200,\r\n borderHover: '',\r\n borderHoverWidth: 3,\r\n borderWidth: 1,\r\n color: colors.neutralWhite,\r\n colorActive: '',\r\n colorHover: '',\r\n disabled: colors.neutral600,\r\n pressed: colors.neutral400\r\n },\r\n // Not show in figma\r\n inTheBlack: {\r\n background: colors.interactive400,\r\n backgroundActive: colors.neutral600,\r\n backgroundDisabled: colors.neutral300,\r\n backgroundFocus: '',\r\n backgroundHover: colors.interactive500,\r\n border: colors.transparent,\r\n borderActive: '',\r\n borderFocus: colors.interactive200,\r\n borderFocusAll: colors.interactive300,\r\n borderHover: colors.transparent,\r\n borderHoverWidth: 0,\r\n borderWidth: 0,\r\n color: colors.neutralBlack,\r\n colorActive: colors.neutralWhite,\r\n colorHover: colors.neutralBlack,\r\n },\r\n backToTop: {\r\n background: corporateColors.brandPrimary1,\r\n backgroundActive: corporateColors.neutral600,\r\n backgroundFocus: '',\r\n backgroundHover: corporateColors.brandPrimary1Dark,\r\n border: corporateColors.brandPrimary1,\r\n borderActive: corporateColors.neutral600,\r\n borderFocus: corporateColors.interactive200,\r\n borderHover: corporateColors.brandPrimary1Dark,\r\n borderHoverWidth: 0,\r\n borderWidth: 0,\r\n color: corporateColors.neutralWhite,\r\n colorActive: '',\r\n colorHover: corporateColors.neutralWhite\r\n },\r\n }\r\n}\r\n","import { textBody2 } from '_utils/styles';\r\nimport colors from './colorOptions';\r\n\r\nexport default {\r\n primary: {\r\n background: colors.transparent,\r\n backgroundHover: colors.interactive700,\r\n border: colors.interactive600,\r\n borderFocus: '3px solid',\r\n borderFocusColor: colors.interactive600,\r\n borderFocusWithinColor: colors.interactive600,\r\n borderHover: colors.transparent,\r\n borderVisited: colors.visited500,\r\n color: colors.interactive600,\r\n colorFocus: colors.neutralWhite,\r\n colorHover: colors.neutralWhite,\r\n colorVisited: colors.visited500,\r\n textDecoration: 'none',\r\n textDecorationFocus: 'none',\r\n },\r\n primaryWithoutVisited: {\r\n background: colors.transparent,\r\n backgroundHover: 'inherit',\r\n border: colors.interactive600,\r\n borderHover: colors.interactive700,\r\n color: 'inherit',\r\n colorHover: 'inherit',\r\n colorVisited: 'inherit',\r\n borderVisited: 'inherit',\r\n textDecoration: 'none',\r\n textDecorationFocus: 'none',\r\n },\r\n secondary: {\r\n background: colors.transparent,\r\n backgroundHover: colors.transparent,\r\n border: colors.transparent,\r\n borderFocus: 'none',\r\n borderFocusColor: colors.interactive600,\r\n borderFocusWithinColor: colors.transparent,\r\n borderHover: colors.transparent,\r\n borderVisited: colors.transparent,\r\n color: colors.interactive600,\r\n colorFocus: colors.interactive600,\r\n colorHover: colors.interactive700,\r\n colorVisited: colors.visited500,\r\n textDecoration: 'underline',\r\n textDecorationFocus: 'underline',\r\n },\r\n featured: {\r\n background: colors.transparent,\r\n backgroundHover: colors.transparent,\r\n border: colors.transparent,\r\n borderFocusColor: colors.interactive600,\r\n borderFocusWithinColor: colors.transparent,\r\n borderHover: colors.transparent,\r\n borderVisited: colors.transparent,\r\n boxShadowColor: colors.transparent,\r\n color: colors.interactive600,\r\n colorFocus: colors.interactive600,\r\n colorHover: colors.interactive700,\r\n colorVisited: colors.visited500,\r\n fontWeight: 'bold',\r\n textBody: textBody2,\r\n textDecoration: 'none',\r\n textDecorationFocus: 'none',\r\n textTransform: 'uppercase',\r\n },\r\n white: {\r\n background: colors.transparent,\r\n backgroundHover: colors.transparent,\r\n border: colors.transparent,\r\n borderHover: colors.transparent,\r\n borderVisited: colors.transparent,\r\n color: 'inherit',\r\n colorHover: colors.neutralWhite,\r\n colorVisited: colors.neutralWhite,\r\n textDecoration: 'underline',\r\n textDecorationFocus: 'inherit',\r\n },\r\n breadcrumb: {\r\n background: colors.transparent,\r\n backgroundHover: colors.transparent,\r\n border: colors.transparent,\r\n borderHover: colors.transparent,\r\n borderVisited: colors.transparent,\r\n color: colors.interactive500,\r\n colorHover: colors.brandPrimary1,\r\n colorVisited: colors.brandPrimary1,\r\n textDecoration: 'none',\r\n textDecorationFocus: 'none',\r\n }\r\n}","// true if in dev\r\nexport const isDev: boolean = process.env.NODE_ENV === 'development';\r\n\r\nconst debugInDev = (fn) => (msg: any): void => {\r\n if (!fn || !isDev || !msg) {\r\n return;\r\n }\r\n\r\n if (typeof msg === 'function') {\r\n fn(msg());\r\n } else {\r\n fn(msg);\r\n }\r\n};\r\n\r\n// warn in dev only\r\nexport const logInDev = debugInDev(console.log);\r\n\r\n// log in dev only\r\nexport const warnInDev = debugInDev(console.warn);\r\n\r\n// error in dev only\r\nexport const errorInDev = debugInDev(console.error);\r\n\r\nexport function throwInDev(msg: any): void {\r\n if (!isDev || !msg) {\r\n return;\r\n }\r\n\r\n if (typeof msg === 'function') {\r\n throw new Error(msg());\r\n } else {\r\n throw new Error(msg);\r\n }\r\n}\r\n\r\nexport default isDev;\r\n","import colors from '_containers/Theme/intheblack/colors';\r\nimport {\r\n fixedBody12,\r\n fixedBody14,\r\n fixedTitle16,\r\n headingH4\r\n} from '_utils/styles/';\r\n\r\nexport default {\r\n background: colors.all.neutralWhiteTransparent,\r\n border: `4px solid ${colors.all.brandPrimary1}`,\r\n caption: fixedBody12,\r\n captionColor: colors.text.pressed,\r\n content: {\r\n border: `1px solid ${colors.ui.divider}`\r\n },\r\n contentLinkColor: colors.all.brandPrimary1,\r\n heading: headingH4,\r\n headingColor: colors.all.brandPrimary1,\r\n iconColor: colors.text.nonessential,\r\n textbody: fixedTitle16,\r\n link: {\r\n focusBorder: colors.all.interactive500,\r\n color: colors.all.interactive600,\r\n hoverColor: colors.text.interactive1Hover,\r\n iconColor: colors.all.interactive600\r\n }\r\n}","import colors from '_containers/Theme/corporate/colors';\r\n\r\nexport default {\r\n border: colors.all.neutral200,\r\n iconColor: colors.all.neutralBlack,\r\n downloadAttributes: {\r\n color: colors.text.subtle,\r\n },\r\n downloadDescription: {\r\n color: colors.text.subtle\r\n },\r\n downloadLink: {\r\n color: colors.element.primary\r\n }\r\n\r\n};\r\n","import colors from '_containers/Theme/corporate/colors';\r\n\r\nexport default {\r\n container: {\r\n background: colors.all.brandPrimary1,\r\n mediaPrint: {\r\n background: colors.background.tint1,\r\n color: colors.element.neutralBlack\r\n }\r\n },\r\n labelColor: colors.all.darkText,\r\n headerColor: colors.all.neutralWhite,\r\n color: colors.all.darkText,\r\n buttonBackground: colors.all.brandPrimary2,\r\n buttonColor: colors.all.brandPrimary3,\r\n};\r\n","import colors from '_containers/Theme/corporate/colors';\r\n\r\nexport default {\r\n action: colors.all.brandPrimary1,\r\n cardTextColor: colors.text.subtle,\r\n ctaColor: 'tertiary',\r\n featured: {\r\n cardTextColor: colors.all.neutralWhite,\r\n iconWrapper: {\r\n pathFillColor: colors.all.neutralWhite\r\n }\r\n }\r\n};\r\n","import colors from '_containers/Theme/corporate/colors';\r\nimport { subheading2, textBody2 } from '_utils/styles';\r\n\r\nexport default {\r\n announcementCta: {\r\n text: textBody2\r\n },\r\n announcementThemes: {\r\n blue: {\r\n background: colors.all.information100,\r\n borderColor: colors.all.brandPrimary1,\r\n },\r\n yellow: {\r\n background: colors.all.warning100,\r\n borderColor: colors.all.warning500,\r\n },\r\n red: {\r\n background: colors.all.error100,\r\n borderColor: colors.all.error500,\r\n },\r\n green: {\r\n background: colors.all.success100,\r\n borderColor: colors.all.success500,\r\n },\r\n pathFillColor: colors.all.neutral900,\r\n },\r\n announcementWrapper: {\r\n color: colors.text.default\r\n },\r\n content: {\r\n richText: textBody2\r\n },\r\n titleWrapper: {\r\n heading2: subheading2\r\n }\r\n};\r\n","import colors from '_containers/Theme/corporate/colors';\r\n\r\nexport default {\r\n cardTheme: {\r\n borderRadius: 4,\r\n borderColor: colors.all.neutral200,\r\n main: colors.background.tint1,\r\n tint: colors.all.brandSecondary3\r\n },\r\n footLinkRow: {\r\n color: colors.text.default\r\n },\r\n iconWrapper: {\r\n background: colors.ui.accent1\r\n },\r\n linkListItem: {\r\n background: colors.background.tint1\r\n },\r\n linkListItemDesc: {\r\n color: colors.text.subtle\r\n }\r\n};\r\n","import colors from '_containers/Theme/corporate/colors';\r\n\r\nexport default {\r\n background: colors.all.brandPrimary2,\r\n color: colors.all.brandPrimary3,\r\n iconFill: colors.all.brandPrimary3,\r\n};\r\n","import colors from '_containers/Theme/corporate/colors';\r\nimport { headingH5 } from '_utils/styles';\r\n\r\nexport default {\r\n background: colors.all.brandPrimary3,\r\n color: colors.all.neutralWhite,\r\n colorHover: colors.all.neutralWhite,\r\n labelColor: colors.all.darkTextSubtle,\r\n primaryLink: {\r\n fontWeight: 'bold',\r\n level: headingH5,\r\n }\r\n};\r\n","import colors from '_containers/Theme/corporate/colors';\r\n\r\nexport default {\r\n background: colors.all.neutralWhite,\r\n borderColor: colors.ui.defaultBorderColor\r\n}","import colors from '_containers/Theme/corporate/colors';\r\n\r\nexport default {\r\n container: {\r\n color: colors.element.neutralBlack\r\n },\r\n textBannerContainer: {\r\n background: colors.background.tint1,\r\n color: colors.element.neutralBlack\r\n },\r\n subtitle: {\r\n color: colors.text.default\r\n }\r\n}","import colors from '_containers/Theme/corporate/colors';\r\nimport { subheading2, textBody2 } from '_utils/styles';\r\n\r\nexport default {\r\n announcementCta: {\r\n text: textBody2\r\n },\r\n announcementThemes: {\r\n blue: {\r\n background: colors.all.information100,\r\n borderColor: colors.all.brandPrimary1,\r\n },\r\n yellow: {\r\n background: colors.all.warning100,\r\n borderColor: colors.all.warning500,\r\n },\r\n red: {\r\n background: colors.all.error100,\r\n borderColor: colors.all.error500,\r\n },\r\n green: {\r\n background: colors.all.success100,\r\n borderColor: colors.all.success500,\r\n },\r\n pathFillColor: colors.all.neutral900,\r\n },\r\n announcementWrapper: {\r\n color: colors.text.default,\r\n pathFillColor: colors.element.neutralBlack\r\n },\r\n content: {\r\n richText: textBody2\r\n },\r\n titleWrapper: {\r\n heading2: subheading2\r\n }\r\n};\r\n","import colors from '_containers/Theme/corporate/colors';\r\n\r\n\r\nexport default {\r\n background: colors.all.neutralWhite,\r\n borderRadius: 0\r\n};\r\n","import colors from '_containers/Theme/corporate/colors';\r\n\r\n\r\nexport default {\r\n formSection: {\r\n background: colors.background.tint1,\r\n borderColor: colors.ui.divider,\r\n headingIcon: {\r\n color: colors.element.primary\r\n },\r\n richTextContainer: {\r\n borderColor: colors.ui.divider\r\n }\r\n },\r\n formContainer: {\r\n borderColor: colors.ui.divider\r\n },\r\n stickyFooter: {\r\n background: colors.background.tint1,\r\n borderColor: colors.ui.defaultBorderColor,\r\n },\r\n fieldSummary: {\r\n label: {\r\n color: colors.text.subtle,\r\n },\r\n noValue: {\r\n color: colors.text.nonessential\r\n },\r\n footNote: {\r\n color: colors.text.subtle\r\n }\r\n },\r\n editableSection: {\r\n sectionContainer: {\r\n background: colors.background.tint1,\r\n borderColor: colors.ui.divider,\r\n isEditing: {\r\n borderColor: colors.all.primary,\r\n }\r\n },\r\n headingIcon: {\r\n color: colors.element.primary\r\n },\r\n saveButton: {\r\n disabled: {\r\n background: colors.background.tint5\r\n },\r\n active: {\r\n background: colors.background.tint5\r\n }\r\n }\r\n },\r\n dropdown: {\r\n chips: {\r\n background: colors.button.ghost.background,\r\n color: colors.button.ghost.color\r\n },\r\n indicator: {\r\n color: colors.text.interactive1\r\n },\r\n overrides: {\r\n borderColor: colors.all.brandPrimary1,\r\n backgroundHover: colors.all.neutral50\r\n\r\n },\r\n manualOption: {\r\n borderColor: colors.ui.divider,\r\n },\r\n manualToggle: {\r\n color: colors.text.interactive1\r\n }\r\n },\r\n addressManual: {\r\n toggle: {\r\n color: colors.text.interactive1\r\n }\r\n }\r\n}\r\n","import colors from '_containers/Theme/corporate/colors';\r\n\r\n\r\nexport default {\r\n body: {\r\n focus: {\r\n borderColor: colors.element.focused\r\n },\r\n checkboxFocus: colors.element.focused\r\n }\r\n}\r\n","import colors from '_containers/Theme/corporate/colors';\r\n\r\n\r\nexport default {\r\n pathFillColor: colors.text.nonessential\r\n}\r\n","import colors from '_containers/Theme/corporate/colors';\r\n\r\n\r\nexport default {\r\n arrowWrapper: {\r\n pathFillColor: colors.element.primary,\r\n pathFillColorHover: colors.element.neutralWhite,\r\n }\r\n}\r\n","import React from 'react';\r\n\r\nexport default (importComponent) =>\r\n class extends React.Component {\r\n state = {\r\n component: null\r\n };\r\n\r\n async componentDidMount() {\r\n const { default: component } = await importComponent();\r\n\r\n this.setState({\r\n component\r\n });\r\n }\r\n\r\n render() {\r\n const { component: C } = this.state;\r\n\r\n return C ? : null;\r\n }\r\n };\r\n","import { canUseDOM } from 'exenv';\r\nimport { lensPath, set } from 'ramda'\r\nconst packageConfig = require('../../../../package.json');\r\nimport { logInDev } from '_utils/helpers/dev';\r\n\r\nimport { SearchDataType } from '_containers/DigitalDataContext/definitions';\r\n\r\nconst STAFF_USER_ROLE = 'extranet\\\\staff';\r\n\r\n// 1 min timeout (going by 60 FPS) - to make sure OneTrust has mounted Adobe Launch scripts.\r\nconst numAttemptsCheckLoaded = 3600;\r\n\r\n// polling fn to check Adobe _satellite available\r\nexport const checkSatelliteWithCallback = (callback, attempts = 0) => {\r\n if (!canUseDOM) {\r\n callback(null);\r\n return;\r\n }\r\n\r\n if (window?._satellite?.track) {\r\n callback(callback);\r\n } else {\r\n requestAnimationFrame(() => {\r\n if (attempts < numAttemptsCheckLoaded) {\r\n // keep trying\r\n checkSatelliteWithCallback(callback, attempts + 1);\r\n } else {\r\n // give up\r\n return;\r\n }\r\n });\r\n }\r\n};\r\n\r\n// delay fire event to allow datalayer update prior\r\nconst emit = (name) => {\r\n setTimeout(() => {\r\n // logging in DEV to aid tracing events\r\n if (packageConfig?.config?.debugAnalytics && window?.cpa?.digitalData) {\r\n logInDev(\r\n JSON.stringify(\r\n {\r\n trackEventName: name,\r\n digitalData: window.cpa.digitalData\r\n }));\r\n\r\n }\r\n window._satellite.track(name);\r\n }, 50);\r\n};\r\n\r\nexport const emitTrackEvent = (name: string) => {\r\n\r\n if (!canUseDOM) {\r\n console.warn(`emitTrackEvent: cannot use DOM - event: ${name}`);\r\n return;\r\n }\r\n\r\n if (window?._satellite?.track) {\r\n emit(name);\r\n } else {\r\n console.warn(`emitTrackEvent: _satellite not available - could not emit: ${name}`);\r\n checkSatelliteWithCallback(() => emit(name));\r\n }\r\n};\r\n\r\n/**\r\n * @param path: array specifying the node in object you wish to update\r\n * @param data: the data you wish to set\r\n * @param digitalData: the object that you are mutating\r\n */\r\nexport const setObjectData = (path: Array, data: any, digitalData: any) => {\r\n if (!digitalData || !path || !data) {\r\n return;\r\n }\r\n const newObj = set(\r\n lensPath(path),\r\n data,\r\n digitalData\r\n )\r\n\r\n return newObj;\r\n};\r\n\r\nexport const defaultSearchData = {\r\n search: {\r\n filterName: '',\r\n filterValue: '',\r\n searchTerm: '',\r\n numberOfResults: '',\r\n searchPage: '',\r\n searchResult: '',\r\n }\r\n};\r\n\r\n/**\r\n * @param userRole: the role from Sitecore Context\r\n * @return string value mapped to `staff` or empty\r\n */\r\nexport const setAnalyticsStaffUserRole = (userRole: string): string => userRole?.toLowerCase() === STAFF_USER_ROLE?.toLowerCase() ? 'staff' : '';\r\n\r\n","import { canUseDOM } from 'exenv';\r\n\r\nfunction useAdSlot({ mapping, sizes, adSlotID, position, template, keywords, uid }) {\r\n\r\n if (canUseDOM && typeof window !== 'undefined') {\r\n\r\n const googletag = window.googletag || (window.googletag || { cmd: [] });\r\n\r\n googletag.cmd.push(function () {\r\n\r\n // if slot already exists, delete it and re-create\r\n const existingSlot = googletag.pubads().getSlots().find(slot => slot.getSlotElementId() === uid);\r\n\r\n if (existingSlot) {\r\n googletag.destroySlots([existingSlot]);\r\n }\r\n\r\n const adMapping = googletag.sizeMapping();\r\n\r\n mapping.forEach(item => {\r\n if (item?.viewport && item?.sizes) {\r\n adMapping?.addSize(item.viewport, item.sizes);\r\n }\r\n });\r\n const builtMapping = adMapping.build();\r\n\r\n const slot = googletag\r\n .defineSlot(adSlotID, sizes, uid)\r\n .defineSizeMapping(builtMapping)\r\n .addService(googletag.pubads());\r\n\r\n googletag.pubads().enableSingleRequest();\r\n googletag.pubads().collapseEmptyDivs(true);\r\n\r\n slot.setTargeting('ITB-Template', [template]);\r\n slot.setTargeting('ITB-Position', [position]);\r\n if (keywords) {\r\n slot.setTargeting('keywords', keywords);\r\n }\r\n slot.setTargeting('url', document.location.pathname);\r\n googletag.enableServices();\r\n });\r\n\r\n googletag.cmd.push(function () {\r\n googletag.display(uid);\r\n });\r\n\r\n };\r\n}\r\n\r\nexport default useAdSlot;\r\n","// see https://tobbelindstrom.com/blog/useMutationObserver/\r\nimport { RefObject, useEffect, useMemo } from 'react';\r\nimport { canUseDOM } from 'exenv';\r\nimport { getRefElement } from '_utils/helpers';\r\n\r\ninterface Props {\r\n target?: RefObject | Element | Node | null;\r\n options?: MutationObserverInit;\r\n callback?: MutationCallback;\r\n}\r\n\r\nconst useMutationObserver = ({\r\n target,\r\n options = {},\r\n callback\r\n}: Props): void => {\r\n const observer = useMemo(\r\n () =>\r\n canUseDOM\r\n ? new MutationObserver((mutationRecord, mutationObserver) => {\r\n callback?.(mutationRecord, mutationObserver);\r\n })\r\n : null,\r\n [callback]\r\n );\r\n\r\n useEffect(() => {\r\n const element = getRefElement(target);\r\n\r\n if (observer && element) {\r\n observer.observe(element, options);\r\n return () => observer.disconnect();\r\n }\r\n }, [target, observer, options]);\r\n};\r\n\r\nexport default useMutationObserver;","import { canUseDOM } from 'exenv';\r\nimport cookies from 'js-cookie';\r\nimport {\r\n useEffect,\r\n useMemo,\r\n useState,\r\n} from 'react';\r\nimport { COOKIE_BANNER_ID } from '_components/LiveChat/definitions';\r\n\r\nimport { usePrevious } from '_utils/hooks';\r\n\r\nconst ONE_TRUST_COOKIE_PANEL_ID = 'onetrust-consent-sdk';\r\nconst ONE_TRUST_CONSENT_UPDATE_EVENT = 'OneTrustGroupsUpdated';\r\nconst ONE_TRUST_CONSENT_COOKIE_NAME = 'OptanonConsent';\r\nconst ONE_TRUST_CLOSED_COOKIE_NAME = 'OptanonAlertBoxClosed';\r\nconst ONE_TRUST_DEFAULT_ACTIVE_GROUPS = ',,';\r\n\r\n// Cookies to exclude when clearing all cookies on consent change\r\nconst ONE_TRUST_COOKIE_PURGE_EXCLUDE_LIST = [\r\n ONE_TRUST_CLOSED_COOKIE_NAME, // remembers that the user has closed the banner initially\r\n ONE_TRUST_CONSENT_COOKIE_NAME, // persists the consent that the user has given. this cookie is legal to keep around\r\n];\r\n\r\nconst purgeBrowserData = (onComplete) => {\r\n localStorage.clear();\r\n sessionStorage.clear();\r\n\r\n const currentCookies = Object.keys(cookies.get());\r\n const cookiesToDelete = currentCookies.filter(cookie => !ONE_TRUST_COOKIE_PURGE_EXCLUDE_LIST.includes(cookie));\r\n\r\n // Make a best effort to remove as many cookies as possible\r\n // As we can only remove cookies of the same domain, ensure that the other cookies are no longer used by scripts if no longer consented to\r\n if (cookiesToDelete.length > 0) {\r\n cookiesToDelete.forEach((cookie, i, arr) => {\r\n cookies.remove(cookie);\r\n\r\n // .www.cpaaustralia.com.au\r\n cookies.remove(cookie, { domain: `.${location.hostname}` });\r\n\r\n // www.cpaaustralia.com.au\r\n cookies.remove(cookie, { domain: `${location.hostname}` });\r\n\r\n // .cpaaustralia.com.au\r\n cookies.remove(cookie, { domain: `${location.hostname.replace(/^[^.]+/, '')}` });\r\n\r\n if (i === (arr.length - 1)) {\r\n onComplete();\r\n }\r\n });\r\n } else {\r\n // we still want the page to refresh in case scripts need to reinit\r\n onComplete();\r\n }\r\n};\r\n\r\nexport default function useOneTrustActiveGroups() {\r\n if (!canUseDOM) {\r\n return {\r\n activeGroups: ONE_TRUST_DEFAULT_ACTIVE_GROUPS,\r\n hasActiveGroupsChanged: false,\r\n isCookieBannerClosed: false,\r\n };\r\n }\r\n\r\n const [activeGroups, setActiveGroups] = useState(window?.OptanonActiveGroups ?? ONE_TRUST_DEFAULT_ACTIVE_GROUPS);\r\n const [isCookieBannerClosed, setIsCookieBannerClosed] = useState(!!cookies.get(ONE_TRUST_CLOSED_COOKIE_NAME));\r\n const [isOneTrustScriptReady, setIsOneTrustScriptReady] = useState(false);\r\n\r\n useEffect(() => {\r\n // To avoid any race conditions with OneTrust mounting the DOM element,\r\n // (as unfortunately the ONE_TRUST_CONSENT_UPDATE_EVENT fires BEFORE the DOM element is mounted)\r\n // observe when this element arrives in the body and report when the script is truly ready\r\n if (window?.MutationObserver) {\r\n let observer = new MutationObserver(() => {\r\n // Cookie panel is always mounted on the page by OneTrust, and this is how we tell the script is ready\r\n if (document.getElementById(ONE_TRUST_COOKIE_PANEL_ID)) {\r\n observer.disconnect();\r\n setIsOneTrustScriptReady(true);\r\n }\r\n });\r\n\r\n observer.observe(document.body, {\r\n childList: true,\r\n subtree: true,\r\n attributes: false,\r\n characterData: false,\r\n });\r\n\r\n return () => {\r\n observer.disconnect();\r\n }\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n // If option to force users to re-consent to cookies is selected in OneTrust console,\r\n // OneTrust script does NOT clear ONE_TRUST_CLOSED_COOKIE_NAME, so we manually ensure it here\r\n if (\r\n isOneTrustScriptReady\r\n && !!cookies.get(ONE_TRUST_CLOSED_COOKIE_NAME)\r\n && document.getElementById(COOKIE_BANNER_ID)\r\n ) {\r\n // Flush the old cookie - we'll get a fresh one baked once the user reconsents\r\n cookies.remove(ONE_TRUST_CLOSED_COOKIE_NAME);\r\n setIsCookieBannerClosed(false);\r\n }\r\n }, [isOneTrustScriptReady]);\r\n\r\n const prevActiveGroups = usePrevious(activeGroups);\r\n\r\n const hasActiveGroupsChanged = useMemo(() => {\r\n const hasActiveGroupsInitialized =\r\n activeGroups\r\n && prevActiveGroups\r\n && (activeGroups !== ONE_TRUST_DEFAULT_ACTIVE_GROUPS)\r\n && (prevActiveGroups !== ONE_TRUST_DEFAULT_ACTIVE_GROUPS);\r\n\r\n if (hasActiveGroupsInitialized) {\r\n return prevActiveGroups !== activeGroups;\r\n }\r\n\r\n return false\r\n }, [activeGroups]);\r\n\r\n useEffect(() => {\r\n if (hasActiveGroupsChanged) {\r\n // Remove all existing cookies and storage just in case some remains that the user has not consented to\r\n purgeBrowserData(() => {\r\n // Force a reload to ensure all page scripts and tags reinit under the new consent groups\r\n location.reload();\r\n });\r\n }\r\n }, [hasActiveGroupsChanged]);\r\n\r\n useEffect(() => {\r\n const handleConsentUpdate = () => {\r\n setActiveGroups(window?.OptanonActiveGroups ?? ONE_TRUST_DEFAULT_ACTIVE_GROUPS);\r\n setIsCookieBannerClosed(!!cookies.get(ONE_TRUST_CLOSED_COOKIE_NAME));\r\n };\r\n\r\n window.addEventListener(ONE_TRUST_CONSENT_UPDATE_EVENT, handleConsentUpdate);\r\n\r\n return () => {\r\n window.removeEventListener(ONE_TRUST_CONSENT_UPDATE_EVENT, handleConsentUpdate);\r\n };\r\n }, []);\r\n\r\n return {\r\n activeGroups,\r\n hasActiveGroupsChanged,\r\n isCookieBannerClosed,\r\n isOneTrustScriptReady,\r\n };\r\n};\r\n","import canUseDOM from 'exenv';\r\nimport React, { useLayoutEffect } from 'react';\r\n\r\nfunction getParentSection(element: HTMLElement): HTMLElement | null {\r\n if (element === null) {\r\n return null;\r\n }\r\n\r\n if (element?.nodeName.toLowerCase() === 'section') {\r\n return element;\r\n }\r\n\r\n return getParentSection(element.parentElement);\r\n}\r\n\r\nexport default function usePlaceholderHasChildren(\r\n rowRef: React.MutableRefObject,\r\n) {\r\n useLayoutEffect(() => {\r\n if (!canUseDOM) {\r\n return;\r\n }\r\n\r\n let counter = 0;\r\n\r\n const effectItv = setInterval(() => {\r\n if (counter === 5) {\r\n clearInterval(effectItv);\r\n\r\n if (rowRef?.current && !rowRef?.current?.hasChildNodes()) {\r\n getParentSection(rowRef?.current?.parentElement)?.classList.add(\r\n 'is-empty',\r\n );\r\n }\r\n }\r\n\r\n ++counter;\r\n }, 100);\r\n }, [rowRef.current]);\r\n}\r\n","import { canUseDOM } from 'exenv';\r\nimport { useDebouncedCallback } from 'use-debounce';\r\nimport { useState, useEffect, RefObject } from 'react';\r\nimport { useLocation } from 'react-router';\r\n\r\nexport default function useScrollDepthAnalyticsTracking(trackEvent: Function, scrollPercentage: number, elementOffset?: RefObject) {\r\n const [triggered, setTriggered] = useState(false);\r\n const { pathname } = useLocation();\r\n useEffect(() => {\r\n // reset triggred when location change \r\n setTriggered(false)\r\n }, [pathname]);\r\n\r\n const getDocHeight = () => {\r\n const body = document.body;\r\n const docEl = document.documentElement;\r\n let heightOffset = 0;\r\n if (elementOffset?.current) {\r\n heightOffset = elementOffset.current.getBoundingClientRect().height;\r\n };\r\n\r\n return Math.max(\r\n body.scrollHeight, docEl.scrollHeight,\r\n body.offsetHeight, docEl.offsetHeight,\r\n body.clientHeight, docEl.clientHeight\r\n ) - heightOffset\r\n };\r\n\r\n const amountscrolled = () => {\r\n const winheight = window.innerHeight || (document.documentElement || document.body).clientHeight;\r\n const docheight = getDocHeight();\r\n const scrollTop = window.pageYOffset || (document.documentElement || document.body.parentNode as HTMLElement || document.body).scrollTop;\r\n const trackLength = docheight - winheight;\r\n const pecentageScrolled = Math.floor(scrollTop / trackLength * 100); // gets percentage scrolled (ie: 80 or NaN if tracklength == 0)\r\n\r\n if (pecentageScrolled >= scrollPercentage) {\r\n setTriggered(true);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (triggered) {\r\n trackEvent();\r\n }\r\n }, [triggered]);\r\n\r\n const debouncedAmountsScrolled = useDebouncedCallback(\r\n () => {\r\n amountscrolled();\r\n }, 500\r\n );\r\n\r\n if (canUseDOM) {\r\n window.addEventListener(\"scroll\", debouncedAmountsScrolled.callback, false);\r\n };\r\n};\r\n","import { useRef } from 'react';\r\n\r\nexport interface IValues {\r\n setTimer: (fn: any, delay: number) => void;\r\n cancelTimer: () => void;\r\n}\r\n\r\nexport default function useTimer(): IValues {\r\n const timeoutRef = useRef | null>(null);\r\n\r\n const cancelTimer = () => {\r\n if (timeoutRef.current) {\r\n clearTimeout(timeoutRef.current);\r\n timeoutRef.current = null;\r\n }\r\n };\r\n\r\n const setTimer = (fn: any, delay = 1000) => {\r\n cancelTimer();\r\n\r\n if (typeof fn === 'function') {\r\n timeoutRef.current = setTimeout(() => {\r\n fn();\r\n cancelTimer();\r\n }, delay);\r\n }\r\n };\r\n\r\n return { setTimer, cancelTimer };\r\n}\r\n","import { canUseDOM } from 'exenv';\r\nimport { useEffect, useRef } from 'react';\r\nimport { useLocation } from 'react-router-dom';\r\n\r\n/**\r\n * @name useUnload\r\n * @description Allows setting of a callback should the beforeunload event fire\r\n * @param fn - callback function to fire\r\n * @param {boolean} disabled - set this to update whether to override and disable the event listener\r\n */\r\nconst useUnload = (\r\n fn: (e?: Event) => void,\r\n disabled?: boolean,\r\n) => {\r\n if (!canUseDOM) {\r\n return;\r\n }\r\n\r\n const handleUnload = useRef(fn);\r\n const { pathname } = useLocation();\r\n\r\n // On path change: routes changing\r\n useEffect(() => {\r\n if (disabled) {\r\n return;\r\n }\r\n\r\n const onUnload = handleUnload?.current;\r\n onUnload?.();\r\n }, [pathname, handleUnload, disabled]);\r\n\r\n // On unload: the more native things like reload, back / forward\r\n useEffect(() => {\r\n const onUnload = handleUnload?.current;\r\n\r\n if (!onUnload) {\r\n return;\r\n }\r\n\r\n if (onUnload) {\r\n if (!disabled) {\r\n window.addEventListener('beforeunload', onUnload);\r\n } else {\r\n window.removeEventListener('beforeunload', onUnload);\r\n }\r\n }\r\n\r\n return () => {\r\n window.removeEventListener('beforeunload', onUnload);\r\n };\r\n }, [handleUnload, disabled]);\r\n};\r\n\r\nexport default useUnload;","import { canUseDOM } from 'exenv';\r\nimport { useEffect, useState } from 'react';\r\nimport { useDebouncedCallback } from 'use-debounce';\r\n\r\ntype WindowSize = {\r\n width?: number;\r\n height?: number;\r\n}\r\n\r\nexport default function(\r\n options = {\r\n enabled: true,\r\n },\r\n): WindowSize {\r\n function getSize() {\r\n return {\r\n width: canUseDOM ? window.innerWidth : undefined,\r\n height: canUseDOM ? window.innerHeight : undefined\r\n };\r\n }\r\n\r\n const [windowSize, setWindowSize] = useState(getSize);\r\n\r\n const debouncedHandleResize = useDebouncedCallback(\r\n () => setWindowSize(getSize()), 200,\r\n );\r\n\r\n useEffect(() => {\r\n if (options.enabled) {\r\n window.addEventListener('resize', debouncedHandleResize.callback);\r\n return () => window.removeEventListener('resize', debouncedHandleResize.callback);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [options?.enabled]);\r\n\r\n return windowSize;\r\n}\r\n","export default function getDisplayName(Component) {\r\n if (!Component) return 'Cannot get display name of null';\r\n // get React display name or fallback ie. for func component\r\n return Component.displayName || Component.name || 'Component';\r\n}\r\n","import { RefObject } from 'react';\r\n\r\nconst getRefElement = (\r\n element?: RefObject | T\r\n): Element | T | undefined | null => {\r\n if (element && 'current' in element) {\r\n return element.current;\r\n }\r\n // @ts-ignore\r\n return element;\r\n};\r\n\r\nexport default getRefElement;","enum Unit {\r\n B = 'Bytes',\r\n KB = 'Kilobytes',\r\n MB = 'Megabyte',\r\n GB = 'Gigabyte'\r\n}\r\n\r\nenum Abbreviation {\r\n B = 'B',\r\n KB = 'KB',\r\n MB = 'MB',\r\n GB = 'GB'\r\n}\r\n\r\ntype FileSizeData = {\r\n size: number;\r\n unit: {\r\n LongForm: Unit;\r\n ShortForm: Abbreviation;\r\n };\r\n};\r\n\r\nconst defaultConvert = {\r\n size: 0,\r\n unit: {\r\n LongForm: Unit.B,\r\n ShortForm: Abbreviation.B\r\n }\r\n};\r\n\r\n// https://stackoverflow.com/questions/15900485/correct-way-to-convert-size-in-bytes-to-kb-mb-gb-in-javascript\r\nexport default (size: string | number, decimals = 2): FileSizeData => {\r\n try {\r\n const convertedSize: number = typeof size === 'number' ? size : parseInt(size);\r\n\r\n if (convertedSize === 0 || Number.isNaN(convertedSize)) {\r\n return defaultConvert;\r\n }\r\n\r\n const k = 1024;\r\n\r\n const dm = decimals < 0 ? 0 : decimals;\r\n\r\n const sizes = ['B', 'KB', 'MB', 'GB'];\r\n\r\n const i = Math.floor(Math.log(convertedSize) / Math.log(k));\r\n\r\n return {\r\n size: parseFloat((convertedSize / Math.pow(k, i)).toFixed(dm)),\r\n unit: {\r\n LongForm: Unit[sizes[i]],\r\n ShortForm: Abbreviation[sizes[i]]\r\n }\r\n };\r\n } catch {\r\n return defaultConvert;\r\n }\r\n};\r\n","/**\r\n * Helper to get cost estimate for service content type\r\n *\r\n */\r\n\r\nimport handleSpecificity from '../handleSpecificity';\r\n\r\nexport const formatCostString = (estimate: string) => {\r\n if (estimate === '') {\r\n return false;\r\n }\r\n\r\n if (estimate === '0') {\r\n return 'Free';\r\n }\r\n\r\n return `$${Number(estimate)\r\n .toFixed(2)\r\n .replace(/\\.00$/, '')\r\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')}`;\r\n};\r\n\r\nexport default (specificity = '', estimate = '', description = '') => {\r\n // no valid estimate, so just give description back if valid\r\n // 1) no estimate\r\n // 2) an estimate with no specificity\r\n if (estimate === '' || (estimate !== '' && specificity === '')) {\r\n // still return description if valid\r\n if (description !== '') {\r\n return `${description}`;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n const parts = [];\r\n\r\n const formattedEstimate = formatCostString(estimate);\r\n\r\n if (formattedEstimate !== 'Free') {\r\n parts.push(handleSpecificity(specificity));\r\n }\r\n\r\n parts.push(formattedEstimate);\r\n parts.push(description);\r\n\r\n return parts.filter(Boolean).join(' ');\r\n};\r\n","import { canUseDOM } from 'exenv';\r\n\r\nexport enum Portals {\r\n before = 'portal-before-root',\r\n after = 'portal-after-root'\r\n}\r\n\r\nexport default (portal: Portals) => {\r\n if (!canUseDOM) {\r\n return null;\r\n }\r\n\r\n return document.getElementById(portal);\r\n};\r\n","import { stringify } from 'query-string';\r\n\r\nconst baseUrl = '/search';\r\nconst resultsPerPage = 20;\r\n\r\nexport enum TagKey {\r\n capacity = 'capacity',\r\n usedFor = 'used-for',\r\n location = 'location',\r\n suitableFor = 'suitable-for',\r\n topic = 'topic'\r\n}\r\n\r\ntype Query = {\r\n term?: string;\r\n page?: string | number;\r\n [TagKey.capacity]?: string;\r\n [TagKey.usedFor]?: string;\r\n [TagKey.location]?: string;\r\n [TagKey.suitableFor]?: string;\r\n [TagKey.topic]?: string;\r\n};\r\n\r\nconst querySortPrecedence = {\r\n term: 1000,\r\n page: 500,\r\n type: 200,\r\n filters: 100,\r\n [TagKey.capacity]: 70,\r\n [TagKey.usedFor]: 60,\r\n [TagKey.location]: 50,\r\n [TagKey.suitableFor]: 40,\r\n [TagKey.topic]: 30\r\n};\r\n\r\nconst querySort = (a, b) => querySortPrecedence[b] - querySortPrecedence[a];\r\n\r\nexport const queryFilterDelimiter = '&';\r\n\r\nexport const buildSearchQuery = (query: Query): string => {\r\n if (typeof window === 'undefined') {\r\n return '';\r\n }\r\n\r\n let queryStr = window.location.search + '#';\r\n\r\n queryStr += stringify(query, { sort: querySort }).replace(\r\n new RegExp(encodeURIComponent(queryFilterDelimiter), 'g'),\r\n queryFilterDelimiter\r\n );\r\n\r\n queryStr = queryStr.replace(/page=([0-9]*)/i, (match, contents) => `first=${((parseInt(contents) - 1) * resultsPerPage) + 1}`);\r\n queryStr += '&sort=relevancy';\r\n queryStr += `&numberOfResults=${resultsPerPage}`;\r\n\r\n return queryStr.replace('term=', 'q=');\r\n};\r\n\r\nexport const buildSearchUrl = (query: Query): string => {\r\n if (typeof window === 'undefined') {\r\n return '';\r\n }\r\n\r\n if (query && Object.prototype.hasOwnProperty.call(query, 'term') && !query.term) {\r\n query.term = undefined;\r\n }\r\n\r\n const stringifiedQuery = buildSearchQuery(query);\r\n\r\n return `${baseUrl}${stringifiedQuery !== '' ? `${stringifiedQuery}` : ''}`;\r\n};\r\n","// Older browsers don't support event options, feature detect it.\r\n\r\n// Adopted and modified solution from Bohdan Didukh (2017)\r\n// https://stackoverflow.com/questions/41594997/ios-10-safari-prevent-scrolling-behind-a-fixed-overlay-and-maintain-scroll-posi\r\n\r\nlet hasPassiveEvents = false;\r\nif (typeof window !== 'undefined') {\r\n const passiveTestOptions: any = {\r\n get passive() {\r\n hasPassiveEvents = true;\r\n return undefined;\r\n }\r\n };\r\n window.addEventListener('testPassive', null, passiveTestOptions);\r\n window.removeEventListener('testPassive', null, passiveTestOptions);\r\n}\r\n\r\nconst isIosDevice =\r\n typeof window !== 'undefined' &&\r\n window.navigator &&\r\n window.navigator.platform &&\r\n /iP(ad|hone|od)/.test(window.navigator.platform);\r\n\r\nlet locks = [];\r\nlet documentListenerAdded = false;\r\nlet initialClientY = -1;\r\nlet previousBodyOverflowSetting;\r\nlet previousBodyPaddingRight;\r\n\r\n// returns true if `el` should be allowed to receive touchmove events\r\nconst allowTouchMove = (el) =>\r\n locks.some((lock) => {\r\n if (lock.options.allowTouchMove && lock.options.allowTouchMove(el)) {\r\n return true;\r\n }\r\n\r\n return false;\r\n });\r\n\r\nconst preventDefault = (rawEvent) => {\r\n const e = rawEvent || window.event;\r\n\r\n // For the case whereby consumers adds a touchmove event listener to document.\r\n // Recall that we do document.addEventListener('touchmove', preventDefault, { passive: false })\r\n // in disableBodyScroll - so if we provide this opportunity to allowTouchMove, then\r\n // the touchmove event on document will break.\r\n if (allowTouchMove(e.target)) {\r\n return true;\r\n }\r\n\r\n // Do not prevent if the event has more than one touch (usually meaning this is a multi touch gesture like pinch to zoom)\r\n if (e.touches.length > 1) return true;\r\n\r\n if (e.preventDefault) e.preventDefault();\r\n\r\n return false;\r\n};\r\n\r\nconst setOverflowHidden = (options) => {\r\n // Setting overflow on body/documentElement synchronously in Desktop Safari slows down\r\n // the responsiveness for some reason. Setting within a setTimeout fixes this.\r\n setTimeout(() => {\r\n // If previousBodyPaddingRight is already set, don't set it again.\r\n if (previousBodyPaddingRight === undefined) {\r\n const reserveScrollBarGap = !!options && options.reserveScrollBarGap === true;\r\n const scrollBarGap = window.innerWidth - document.documentElement.clientWidth;\r\n\r\n if (reserveScrollBarGap && scrollBarGap > 0) {\r\n previousBodyPaddingRight = document.body.style.paddingRight;\r\n document.body.style.width = `calc(100% - ${scrollBarGap}px)`;\r\n }\r\n }\r\n\r\n // If previousBodyOverflowSetting is already set, don't set it again.\r\n if (previousBodyOverflowSetting === undefined) {\r\n previousBodyOverflowSetting = document.body.style.overflow;\r\n document.body.style.overflow = 'hidden';\r\n }\r\n });\r\n};\r\n\r\nconst restoreOverflowSetting = () => {\r\n // Setting overflow on body/documentElement synchronously in Desktop Safari slows down\r\n // the responsiveness for some reason. Setting within a setTimeout fixes this.\r\n setTimeout(() => {\r\n if (previousBodyPaddingRight !== 'undefined') {\r\n document.body.style.width = null; // previousBodyPaddingRight;\r\n\r\n // Restore previousBodyPaddingRight to undefined so setOverflowHidden knows it\r\n // can be set again.\r\n previousBodyPaddingRight = undefined;\r\n }\r\n\r\n if (previousBodyOverflowSetting !== 'undefined') {\r\n document.body.style.overflow = previousBodyOverflowSetting;\r\n\r\n // Restore previousBodyOverflowSetting to undefined\r\n // so setOverflowHidden knows it can be set again.\r\n previousBodyOverflowSetting = undefined;\r\n }\r\n });\r\n};\r\n\r\n// https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollHeight#Problems_and_solutions\r\nconst isTargetElementTotallyScrolled = (targetElement) =>\r\n targetElement\r\n ? targetElement.scrollHeight - targetElement.scrollTop <= targetElement.clientHeight\r\n : false;\r\n\r\nconst handleScroll = (event, targetElement) => {\r\n const clientY = event.targetTouches[0].clientY - initialClientY;\r\n\r\n if (allowTouchMove(event.target)) {\r\n return false;\r\n }\r\n\r\n if (targetElement && targetElement.scrollTop === 0 && clientY > 0) {\r\n // element is at the top of its scroll\r\n return preventDefault(event);\r\n }\r\n\r\n if (isTargetElementTotallyScrolled(targetElement) && clientY < 0) {\r\n // element is at the top of its scroll\r\n return preventDefault(event);\r\n }\r\n\r\n event.stopPropagation();\r\n return true;\r\n};\r\n\r\nexport const disableBodyScroll = (targetElement, options: any = {}) => {\r\n if (isIosDevice) {\r\n // targetElement must be provided, and disableBodyScroll must not have been\r\n // called on this targetElement before.\r\n if (!targetElement) {\r\n // eslint-disable-next-line no-console\r\n console.error(\r\n 'disableBodyScroll unsuccessful - targetElement must be provided when calling disableBodyScroll on IOS devices.'\r\n );\r\n return;\r\n }\r\n\r\n const elements = Array.isArray(targetElement) ? targetElement : [targetElement];\r\n\r\n elements.forEach(element => {\r\n if (element && !locks.some((lock) => lock.targetElement === element)) {\r\n const lock = {\r\n targetElement: element,\r\n options: options || {}\r\n };\r\n \r\n locks = [...locks, lock];\r\n \r\n element.ontouchstart = (event) => {\r\n if (event.targetTouches.length === 1) {\r\n // detect single touch\r\n initialClientY = event.targetTouches[0].clientY;\r\n }\r\n };\r\n element.ontouchmove = (event) => {\r\n if (event.targetTouches.length === 1) {\r\n // detect single touch\r\n handleScroll(event, targetElement);\r\n }\r\n };\r\n }\r\n });\r\n\r\n if (!documentListenerAdded) {\r\n document.addEventListener(\r\n 'touchmove',\r\n preventDefault,\r\n hasPassiveEvents ? { passive: false } : undefined\r\n );\r\n documentListenerAdded = true;\r\n }\r\n \r\n } else {\r\n setOverflowHidden(options);\r\n const lock = {\r\n targetElement,\r\n options: options || {}\r\n };\r\n\r\n locks = [...locks, lock];\r\n }\r\n};\r\n\r\nexport const clearAllBodyScrollLocks = () => {\r\n if (isIosDevice) {\r\n // Clear all locks ontouchstart/ontouchmove handlers, and the references\r\n locks.forEach((lock) => {\r\n lock.targetElement.ontouchstart = null;\r\n lock.targetElement.ontouchmove = null;\r\n });\r\n\r\n if (documentListenerAdded) {\r\n // cast here because typescript doesn't like passive\r\n (document as any).removeEventListener(\r\n 'touchmove',\r\n preventDefault,\r\n hasPassiveEvents ? { passive: false } : undefined\r\n );\r\n documentListenerAdded = false;\r\n }\r\n\r\n locks = [];\r\n\r\n // Reset initial clientY\r\n initialClientY = -1;\r\n } else {\r\n restoreOverflowSetting();\r\n locks = [];\r\n }\r\n};\r\n\r\nexport const enableBodyScroll = (targetElement) => {\r\n \r\n if (isIosDevice) {\r\n const elements = Array.isArray(targetElement) ? targetElement : [targetElement];\r\n\r\n if (!targetElement) {\r\n // eslint-disable-next-line no-console\r\n console.error(\r\n 'enableBodyScroll unsuccessful - targetElement must be provided when calling enableBodyScroll on IOS devices.'\r\n );\r\n return;\r\n }\r\n\r\n elements.forEach(element => {\r\n element.ontouchstart = null;\r\n element.ontouchmove = null;\r\n locks = locks.filter((lock) => lock.targetElement !== element);\r\n });\r\n\r\n if (documentListenerAdded && locks.length === 0) {\r\n // cast here because typescript doesn't like passive\r\n (document as any).removeEventListener(\r\n 'touchmove',\r\n preventDefault,\r\n hasPassiveEvents ? { passive: false } : undefined\r\n );\r\n\r\n documentListenerAdded = false;\r\n }\r\n\r\n } else if (locks.length === 1 && locks[0].targetElement === targetElement) {\r\n restoreOverflowSetting();\r\n\r\n locks = [];\r\n } else {\r\n locks = locks.filter((lock) => lock.targetElement !== targetElement);\r\n }\r\n};\r\n","import { RichText } from '@sitecore-jss/sitecore-jss-react';\r\n\r\nimport styled, { css } from 'styled-components';\r\n\r\n\r\nimport {\r\n avoidPageBreakOnPrint,\r\n caption1,\r\n caption2,\r\n fixedBody16,\r\n fixedBody12,\r\n fixedBody14,\r\n fixedBody18,\r\n fixedTitle12,\r\n fixedTitle14,\r\n fixedTitle16,\r\n fixedTitle18,\r\n headingH1,\r\n headingH2,\r\n headingH3,\r\n headingH4,\r\n headingH5,\r\n headingH6,\r\n link,\r\n linkButton,\r\n linkFeatured,\r\n mq,\r\n pageTitle,\r\n subheading1,\r\n subheading2,\r\n textBody1,\r\n textBody2,\r\n unorderedList,\r\n} from '_utils/styles/';\r\nimport { spacing } from '_utils/props';\r\n\r\nexport const baseStyles = ({ theme }) => css`\r\n word-break: break-word;\r\n\r\n /* When RTE placed without being child of another component\r\n make all elements render only 10 of 12 columns (91.67%) */\r\n ${mq('lg')} {\r\n &:not([class*='fullWidthOnDesktop'])> * {\r\n margin-right: auto;\r\n max-width: ${theme.contentRichText.base.maxWidth}%;\r\n }\r\n }\r\n`;\r\n\r\nexport const HeadingContainer = styled.div`\r\n ${baseStyles}\r\n`;\r\n\r\nexport const blockStyle = ({ theme }) => css`\r\n p,\r\n ul,\r\n ol,\r\n dl,\r\n blockquote,\r\n table {\r\n ${spacing({ theme, my: 2 })}\r\n\r\n &:first-child {\r\n ${spacing({ theme, mt: 0 })}\r\n }\r\n\r\n &:last-child {\r\n ${spacing({ theme, mb: 0 })}\r\n }\r\n }\r\n\r\n p {\r\n margin-top: 0;\r\n\r\n ${avoidPageBreakOnPrint}\r\n }\r\n`;\r\n\r\nexport const headingMargin = ({ theme }) => css`\r\n ${spacing({ theme, mt: 5 })};\r\n\r\n &:first-child {\r\n ${spacing({ theme, mt: 0 })};\r\n }\r\n`;\r\n\r\nexport const headingStyle = ({ theme }) => css`\r\n .pageTitle {\r\n ${pageTitle};\r\n }\r\n\r\n .headingH1,\r\n h1 {\r\n ${headingH1};\r\n ${headingMargin}\r\n }\r\n\r\n .headingH2,\r\n h2 {\r\n ${headingH2};\r\n ${headingMargin}\r\n }\r\n\r\n .headingH3,\r\n h3 {\r\n ${headingH3};\r\n ${headingMargin}\r\n }\r\n\r\n .headingH4,\r\n h4 {\r\n ${headingH4};\r\n ${headingMargin}\r\n }\r\n\r\n .headingH5,\r\n h5 {\r\n ${headingH5};\r\n ${headingMargin}\r\n }\r\n\r\n /* only for backwards compatibility, H6 not able to be added\r\n via RTE anymore */\r\n .headingH6,\r\n h6 {\r\n ${headingH6};\r\n ${headingMargin}\r\n }\r\n\r\n .subheading1 {\r\n ${subheading1};\r\n }\r\n\r\n .subheading2 {\r\n ${subheading2};\r\n }\r\n\r\n .fixed-title12 {\r\n ${fixedTitle12}\r\n }\r\n .fixed-title14 {\r\n ${fixedTitle14}\r\n }\r\n .fixed-title16 {\r\n ${fixedTitle16}\r\n }\r\n .fixed-title18 {\r\n ${fixedTitle18}\r\n }\r\n .caption1 {\r\n ${caption1};\r\n }\r\n .caption2 {\r\n ${caption2};\r\n }\r\n`;\r\n\r\nexport const textStyle = ({ theme }) => css`\r\n p {\r\n ${theme.contentRichText.paragraph}\r\n }\r\n\r\n .text-body1 {\r\n ${textBody1}\r\n }\r\n\r\n .fixed-body12 {\r\n ${fixedBody12}\r\n }\r\n .fixed-body14 {\r\n ${fixedBody14}\r\n }\r\n .fixed-body16 {\r\n ${fixedBody16}\r\n }\r\n .fixed-body18 {\r\n ${fixedBody18}\r\n }\r\n`;\r\n\r\nexport const linkStyle = ({ theme }) => css`\r\n .link,\r\n a {\r\n ${link}\r\n\r\n &:visited,\r\n &:visited:hover {\r\n background-color: inherit;\r\n }\r\n }\r\n\r\n a.button-primary {\r\n ${linkButton}\r\n }\r\n\r\n // featured links\r\n a.link-featured {\r\n ${linkFeatured}\r\n\r\n &[target=_blank] {\r\n &:hover {\r\n text-decoration: underline;\r\n }\r\n\r\n :after {\r\n background-size: 18px 18px;\r\n }\r\n }\r\n }\r\n\r\n // external links\r\n a[target=_blank] {\r\n display: inline;\r\n line-height: 20px;\r\n margin-right: 6px;\r\n padding-right: 16px;\r\n position: relative;\r\n\r\n &:not(.link-featured) {\r\n &:after {\r\n background-size: 16px 16px;\r\n }\r\n\r\n &:hover, &:focus {\r\n &:after{\r\n background-image: url(\"data:image/svg+xml;charset=UTF-8, %3csvg xmlns='http://www.w3.org/2000/svg' height='24px' viewBox='0 0 24 24' width='16px' fill='%23${({ theme }) => theme.contentRichText.externalLink.icon.hoverColor.replace('#', '')}' %3e%3cpath d='M0 0h24v24H0z' fill='none' /%3e%3cpath d='M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z'/%3e%3c/svg%3e\");\r\n }\r\n }\r\n }\r\n\r\n // Since in design, no this icon\r\n ${({hideExternalLinkIcon}) => hideExternalLinkIcon && `\r\n margin-right: 0px;\r\n padding-right: 0px;\r\n `}\r\n \r\n &:after {\r\n background-image: url(\"data:image/svg+xml;charset=UTF-8, %3csvg xmlns='http://www.w3.org/2000/svg' height='24px' viewBox='0 0 24 24' width='16px' fill='%23${({ theme }) => theme.contentRichText.externalLink.icon.afterColor.replace('#', '')}' %3e%3cpath d='M0 0h24v24H0z' fill='none' /%3e%3cpath d='M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z'/%3e%3c/svg%3e\");\r\n background-position: bottom;\r\n background-repeat: no-repeat;\r\n background-size: 20px 20px;\r\n content: '';\r\n height: 100%;\r\n position: absolute;\r\n top: -2px;\r\n transition: background-image 0.1s linear, color 0.1s linear, background-color 0.1s linear;\r\n width: 20px;\r\n\r\n // Since in design, no this icon\r\n ${({hideExternalLinkIcon}) => hideExternalLinkIcon && `\r\n display: none;\r\n `}\r\n }\r\n }\r\n`;\r\n\r\nexport const blockquoteStyle = ({ theme }) => css`\r\n blockquote {\r\n ${theme.contentRichText.blockquote.heading};\r\n margin-left: 6px;\r\n margin-right: 0;\r\n ${spacing({\r\n theme,\r\n pt: 2,\r\n pr: 2,\r\n pl: {\r\n xs: `${theme.content.indent.xs}px`,\r\n md: `${theme.content.indent.md}px`,\r\n }\r\n})}\r\n display: block;\r\n margin-left: 6px;\r\n position: relative;\r\n\r\n ${mq('md')} {\r\n margin-left: 12px;\r\n }\r\n\r\n p {\r\n ${theme.contentRichText.blockquote.heading};\r\n }\r\n\r\n > * {\r\n &:first-child {\r\n margin-top: 0;\r\n }\r\n &:last-child {\r\n margin-bottom: 0;\r\n }\r\n }\r\n\r\n &:before {\r\n ${spacing({ theme, mt: 2 })}\r\n background-color: ${theme.contentRichText.blockquote.background};\r\n content: '';\r\n display: block;\r\n height: calc(100% - 10px);\r\n left: 6px;\r\n position: absolute;\r\n top: 0;\r\n width: 4px;\r\n\r\n ${mq('md')} {\r\n left: 12px;\r\n }\r\n }\r\n\r\n + p {\r\n margin-top: 0;\r\n }\r\n }\r\n\r\n figure {\r\n ${spacing({ theme, ml: 0 })}\r\n\r\n padding-left: 0;\r\n\r\n @media print {\r\n blockquote {\r\n border: none;\r\n }\r\n }\r\n\r\n ${mq.lessThan('lg')} {\r\n margin-right: 0;\r\n }\r\n\r\n figcaption {\r\n ${subheading2};\r\n ${spacing({\r\n theme,\r\n ml: {\r\n xs: `${theme.content.indent.xs + 6}px`,\r\n md: `${theme.content.indent.md + 12}px`\r\n }\r\n})}\r\n }\r\n }\r\n`;\r\n\r\n// customise tooltip styling TBC\r\nexport const tooltipStyle = ({ theme }) => css`\r\n span[title],\r\n a[title] {\r\n border-bottom: 2px dotted ${theme.colors.element.primary};\r\n }\r\n`;\r\n\r\nexport const buttonContainerStyle = ({ theme }) => css`\r\n .button-container {\r\n display: flex;\r\n flex-direction: column;\r\n\r\n > * {\r\n ${spacing({ theme, mt: { xs: 2, sm: 0 }, ml: { xs: 0, sm: 2 } })}\r\n\r\n &:first-child {\r\n ${spacing({ theme, mt: { xs: 0 }, ml: { sm: 0 } })}\r\n }\r\n }\r\n\r\n ${mq('sm')} {\r\n flex-direction: row;\r\n align-items: center;\r\n }\r\n }\r\n`;\r\n\r\nexport const listStyle = ({ theme }) => css`\r\n li {\r\n margin-bottom: 12px;\r\n line-height: 20px;\r\n\r\n &:last-child {\r\n ${spacing({ theme, mb: 0 })}\r\n }\r\n\r\n ${mq('md')} {\r\n line-height: 24px;\r\n }\r\n }\r\n\r\n /*\r\n * unordered list\r\n */\r\n\r\n ul {\r\n ${theme.contentRichText.list.textbody}\r\n ${unorderedList({ theme })}\r\n }\r\n\r\n /*\r\n * nesting\r\n */\r\n ol,\r\n ul {\r\n ol,\r\n ul {\r\n left: -6px;\r\n position: relative;\r\n\r\n &:first-child {\r\n ${spacing({ theme, mt: 1 })}\r\n }\r\n &:last-child {\r\n ${spacing({ theme, mb: 1 })}\r\n }\r\n }\r\n }\r\n\r\n /* nested ul */\r\n ol,\r\n ul {\r\n ul li::before {\r\n content: '-';\r\n font-size: 1.5rem;\r\n font-family: 'sans-serif';\r\n }\r\n\r\n p {\r\n ${spacing({ theme, my: 1 })}\r\n }\r\n }\r\n\r\n /*\r\n * ordered list\r\n */\r\n\r\n ol {\r\n \r\n li {\r\n ${theme.contentRichText.list.textbody}\r\n margin-bottom: 12px;\r\n }\r\n\r\n ${spacing({ theme, ml: 0, my: 2, p: theme.contentRichText.orderedList.padding})}\r\n\r\n > li {\r\n padding: 0 0 0 16px;\r\n\r\n ${mq('md')} {\r\n padding-left: 25px;\r\n }\r\n\r\n ol, ul {\r\n margin-left: 0;\r\n }\r\n }\r\n\r\n li::marker {\r\n color: ${theme.contentRichText.list.marker.color};\r\n font-weight: 700;\r\n }\r\n\r\n &.featured {\r\n list-style: none;\r\n ${spacing({ theme, p: '0 0 0 3px'})}\r\n counter-reset: section;\r\n\r\n ol.featured {\r\n list-style: none;\r\n padding-left: 38px;\r\n counter-reset: section;\r\n }\r\n\r\n > li {\r\n margin-bottom: 16px;\r\n padding: 0 0 0 38px;\r\n text-indent: 0;\r\n position: relative;\r\n\r\n ${mq('md')} {\r\n padding-left: 48px;\r\n }\r\n\r\n ol.featured li {\r\n padding: 0;\r\n }\r\n }\r\n\r\n > li::before {\r\n background-color: ${theme.contentRichText.list.background};\r\n border-radius: 999px;\r\n border: ${theme.contentRichText.list.border};\r\n border-color: ${theme.contentRichText.list.borderColor};\r\n color: ${theme.contentRichText.list.color};\r\n content: counters(section, '.');\r\n counter-increment: section;\r\n display: inline-block;\r\n font-size: 14px;\r\n font-weight: bold;\r\n height: 28px;\r\n left: 0;\r\n line-height: ${theme.contentRichText.orderedList.lineHeight}px;\r\n min-width: 28px;\r\n position: absolute;\r\n text-align: center;\r\n text-indent: 0;\r\n top: ${theme.contentRichText.orderedList.bullet.top};\r\n\r\n ${mq('md')}{\r\n font-size: 16px;\r\n height: 32px;\r\n left: 0;\r\n line-height: ${theme.contentRichText.orderedList.md.lineHeight}px;\r\n top: ${theme.contentRichText.orderedList.bullet.top};\r\n width: 32px;\r\n }\r\n }\r\n\r\n > li ol.featured li::before {\r\n font-size: 12px;\r\n left: -40px;\r\n letter-spacing: -0.5px;\r\n }\r\n }\r\n }\r\n /* temp fix for numbered lists */\r\n ol.featured[start='1'] {\r\n counter-reset: section 0;\r\n }\r\n ol.featured[start='2'] {\r\n counter-reset: section 1;\r\n }\r\n ol.featured[start='3'] {\r\n counter-reset: section 2;\r\n }\r\n ol.featured[start='4'] {\r\n counter-reset: section 3;\r\n }\r\n ol.featured[start='5'] {\r\n counter-reset: section 4;\r\n }\r\n ol.featured[start='6'] {\r\n counter-reset: section 5;\r\n }\r\n ol.featured[start='7'] {\r\n counter-reset: section 6;\r\n }\r\n ol.featured[start='8'] {\r\n counter-reset: section 7;\r\n }\r\n ol.featured[start='9'] {\r\n counter-reset: section 8;\r\n }\r\n ol.featured[start='10'] {\r\n counter-reset: section 9;\r\n }\r\n ol.featured[start='11'] {\r\n counter-reset: section 10;\r\n }\r\n ol.featured[start='12'] {\r\n counter-reset: section 11;\r\n }\r\n ol.featured[start='13'] {\r\n counter-reset: section 12;\r\n }\r\n ol.featured[start='14'] {\r\n counter-reset: section 13;\r\n }\r\n ol.featured[start='15'] {\r\n counter-reset: section 14;\r\n }\r\n ol.featured[start='16'] {\r\n counter-reset: section 15;\r\n }\r\n ol.featured[start='17'] {\r\n counter-reset: section 16;\r\n }\r\n ol.featured[start='18'] {\r\n counter-reset: section 17;\r\n }\r\n ol.featured[start='19'] {\r\n counter-reset: section 18;\r\n }\r\n ol.featured[start='20'] {\r\n counter-reset: section 19;\r\n }\r\n\r\n ol.nested-counter {\r\n list-style: none;\r\n padding: 0;\r\n counter-reset: section;\r\n\r\n li {\r\n position: relative;\r\n padding: 4px 0 4px 40px;\r\n }\r\n\r\n li::before {\r\n display: inline-block;\r\n position: absolute;\r\n content: counters(section, '.') '. ';\r\n counter-increment: section;\r\n left: 0;\r\n }\r\n\r\n ol.nested-counter {\r\n li::before {\r\n text-align: right;\r\n content: counters(section, '.') ' ';\r\n left: 0;\r\n transform: translateX(-100%);\r\n }\r\n }\r\n }\r\n\r\n /* definition list */\r\n dl {\r\n ${theme.contentRichText.list.textbody}\r\n margin-bottom: 0;\r\n }\r\n\r\n dt {\r\n font-weight: bold;\r\n }\r\n\r\n dd {\r\n margin: 0;\r\n\r\n ${spacing({\r\n theme,\r\n p: 0,\r\n pl: {\r\n xs: `40px`,\r\n md: `48px`\r\n }\r\n})}\r\n\r\n p:first-of-type {\r\n margin-top: 0;\r\n }\r\n\r\n p:last-of-type {\r\n margin-bottom: 0;\r\n }\r\n }\r\n`;\r\n\r\nexport const tableStyle = ({ theme }) => css`\r\n .table-scroll-container {\r\n width: 100%;\r\n overflow-x: auto;\r\n\r\n table {\r\n min-width: 540px;\r\n }\r\n }\r\n\r\n table {\r\n border-collapse: collapse;\r\n }\r\n\r\n thead, tbody tr {\r\n width: 100%;\r\n }\r\n\r\n thead th {\r\n ${headingH6};\r\n background-color: ${theme.colors.table.head.background};\r\n color: ${theme.colors.table.head.color};\r\n\r\n }\r\n\r\n tbody {\r\n tr {\r\n background-color: ${theme.colors.table.row.background};\r\n\r\n &:nth-child(2n) {\r\n background-color: ${theme.colors.table.row.backgroundAlt};\r\n }\r\n }\r\n }\r\n\r\n td,\r\n th {\r\n border: 1px solid ${theme.colors.table.cell.border};\r\n padding: 16px;\r\n text-align: left;\r\n vertical-align: top;\r\n }\r\n\r\n th {\r\n vertical-align: middle;\r\n }\r\n\r\n td {\r\n ${textBody2};\r\n }\r\n`;\r\n\r\nexport const responsiveEmbedStyle = () => css`\r\n .responsive-embed {\r\n position: relative;\r\n height: 0;\r\n margin-bottom: 1rem;\r\n padding-bottom: 75%;\r\n overflow: hidden;\r\n }\r\n .responsive-embed iframe {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n }\r\n .responsive-embed.widescreen {\r\n padding-bottom: 56.25%;\r\n }\r\n`;\r\n\r\nexport const RichTextStyle = css`\r\n ${baseStyles}\r\n ${blockStyle}\r\n ${headingStyle}\r\n ${textStyle}\r\n ${linkStyle}\r\n ${tooltipStyle}\r\n ${buttonContainerStyle}\r\n ${listStyle}\r\n ${tableStyle}\r\n ${blockquoteStyle}\r\n ${responsiveEmbedStyle}\r\n`;\r\n\r\nexport default styled(RichText)`\r\n ${RichTextStyle}\r\n`;\r\n","import { useState, useEffect } from 'react';\r\n\r\nconst cachedScripts = [];\r\n\r\nfunction useScript(\r\n src: string,\r\n customClassName?: string,\r\n customType?: string,\r\n) {\r\n // Keeping track of script loaded and error state\r\n const [state, setState] = useState({\r\n loaded: false,\r\n error: false\r\n });\r\n\r\n useEffect(\r\n () => {\r\n if (!src) {\r\n setState({\r\n loaded: false,\r\n error: true\r\n });\r\n\r\n return;\r\n }\r\n\r\n // If cachedScripts array already includes src that means another instance ...\r\n // ... of this hook already loaded this script, so no need to load again.\r\n if (cachedScripts.indexOf(src) > -1) {\r\n setState({\r\n loaded: true,\r\n error: false\r\n });\r\n } else {\r\n cachedScripts.push(src);\r\n\r\n // Create script\r\n const script = document.createElement('script');\r\n script.src = src;\r\n\r\n if (typeof customClassName !== 'undefined') {\r\n script.classList.add(customClassName);\r\n }\r\n\r\n if (typeof customType !== 'undefined') {\r\n script.type = customType;\r\n }\r\n\r\n script.async = true;\r\n\r\n // Script event listener callbacks for load and error\r\n const onScriptLoad = () => {\r\n setState({\r\n loaded: true,\r\n error: false\r\n });\r\n };\r\n\r\n const onScriptError = () => {\r\n // Remove from cachedScripts we can try loading again\r\n const index = cachedScripts.indexOf(src);\r\n if (index >= 0) cachedScripts.splice(index, 1);\r\n script.remove();\r\n\r\n setState({\r\n loaded: true,\r\n error: true\r\n });\r\n };\r\n\r\n script.addEventListener('load', onScriptLoad);\r\n script.addEventListener('error', onScriptError);\r\n\r\n // Add script to document body\r\n document.body.appendChild(script);\r\n\r\n // Remove event listeners on cleanup\r\n return () => {\r\n script.removeEventListener('load', onScriptLoad);\r\n script.removeEventListener('error', onScriptError);\r\n };\r\n }\r\n },\r\n [src] // Only re-run effect if script src changes\r\n );\r\n\r\n return [state.loaded, state.error];\r\n}\r\n\r\nexport default useScript;\r\n","import { useRef, useEffect } from 'react';\r\n\r\nexport default function usePrevious(value) {\r\n const ref = useRef();\r\n useEffect(() => {\r\n ref.current = value;\r\n });\r\n return ref.current;\r\n}\r\n","import React, { createContext, useState, useMemo } from 'react';\r\n\r\nimport { Optionalize } from '_utils/types';\r\n\r\nimport { NormalisedCountry, CountryContextProps } from './definitions';\r\n\r\nexport const DEFAULT_COUNTRY_NAME = 'Australia'\r\n\r\nconst defaultCountry: NormalisedCountry = {\r\n name: { value: DEFAULT_COUNTRY_NAME },\r\n};\r\n\r\nconst CountryContext = createContext({\r\n country: null,\r\n setCountry: null\r\n});\r\n\r\nfunction CountryProvider({ children }) {\r\n const [country, setCountry] = useState(defaultCountry);\r\n const contextValue = useMemo(() => {\r\n return {\r\n country,\r\n setCountry\r\n };\r\n }, [country]);\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n\r\nexport default CountryProvider;\r\n\r\nexport const CountryConsumer = CountryContext.Consumer;\r\n\r\nexport function withCountryContext(\r\n WrappedComponent: React.ComponentType\r\n) {\r\n // Try to create a nice displayName for React Dev Tools.\r\n const displayName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\r\n\r\n const withTimezoneContext: React.FC> = (props) => (\r\n \r\n {(value) => }\r\n \r\n );\r\n\r\n withTimezoneContext.displayName = `withTimezoneContext(${displayName})`;\r\n\r\n return withTimezoneContext;\r\n}\r\n","import styled from 'styled-components';\r\nimport { spacing } from '_utils/props';\r\nimport {\r\n mq,\r\n svg,\r\n} from '_utils/styles';\r\n\r\n\r\nexport const IconWrapper = styled.div`\r\n top: ${props => `${props.config.xs.top}px`};\r\n width: ${props => `${props.config.xs.iconSize}px`};\r\n ${({ theme, config }) => spacing({ theme, mr: { xs: `${config.xs.mr}px`, md: `${config.md.mr}px` } })};\r\n ${props => svg(props.config.xs.iconSize, props.config.xs.iconSize)};\r\n\r\n ${mq('md')} {\r\n top: ${props => `${props.config.md.top}px`};\r\n width: ${props => `${props.config.md.iconSize}px`};\r\n ${props => svg(props.config.md.iconSize, props.config.md.iconSize)};\r\n }\r\n`;","import React from 'react';\r\n\r\nimport Icon from '_components/Icon';\r\n\r\nimport { AuthenticatedContentIconProps } from './definitions';\r\nimport { IconWrapper } from './StyledAuthenticatedContentIcon';\r\n\r\nconst iconBreakpointDefaultSize = {\r\n xs: {\r\n iconSize: 16,\r\n mr: 8,\r\n top: 5,\r\n\r\n },\r\n md: {\r\n iconSize: 24,\r\n mr: 8,\r\n top: 5,\r\n }\r\n}\r\n\r\nexport const AuthenticatedContentIcon: React.FC = ({\r\n iconStyleConfig,\r\n isAuthenticated,\r\n ...props\r\n}) => {\r\n const mergedProps = { ...iconBreakpointDefaultSize, ...iconStyleConfig };\r\n\r\n return isAuthenticated &&\r\n \r\n \r\n \r\n};\r\n","export const BREAKPOINTS = {\r\n xs: 0,\r\n sm: 576,\r\n md: 768,\r\n lg: 1024,\r\n xl: 1440\r\n};\r\n\r\nexport const getZeroMediaQuery = (): string => {\r\n const keys = Object.keys(BREAKPOINTS);\r\n for (let i = 0; i < keys.length; i++) {\r\n const key = keys[i];\r\n if (BREAKPOINTS[key] === 0) {\r\n return key;\r\n }\r\n }\r\n return undefined;\r\n};\r\n\r\n// retrieve breakpoint keys from object that match known breakpoints\r\nexport const getBreakpointKeys = (obj?: object) => {\r\n const breakpoints = Object.keys(BREAKPOINTS);\r\n if (!obj) {\r\n return breakpoints;\r\n }\r\n return Object.keys(obj).filter((key) => breakpoints.indexOf(key) > -1);\r\n};\r\n\r\nconst mq = (bp, includeMedia = true): string =>\r\n `${includeMedia ? '@media ' : ''}(min-width: ${BREAKPOINTS[bp]}px)`;\r\n\r\nmq.lessThan = (bp, includeMedia = true): string =>\r\n `${includeMedia ? '@media ' : ''}(max-width: ${BREAKPOINTS[bp] - 1}px)`;\r\n\r\nmq.between = (bpA, bpB, includeMedia = true): string =>\r\n `${includeMedia ? '@media ' : ''}(min-width: ${BREAKPOINTS[bpA]}px) and (max-width: ${BREAKPOINTS[\r\n bpB\r\n ] - 1}px)`;\r\n\r\nexport default mq;\r\n","import colors from './colorOptions';\r\n\r\nimport button from './button';\r\nimport link from './link';\r\n\r\nexport default {\r\n all: colors,\r\n background: {\r\n darkBlue: colors.brandPrimary3,\r\n disabled: colors.brandPrimary1Dark,\r\n tint1: colors.neutralWhite,\r\n tint2: colors.neutral50,\r\n tint3: colors.neutral100,\r\n tint4: colors.neutral200,\r\n tint5: colors.neutral300\r\n },\r\n button: button.colors,\r\n dna: {\r\n default: colors.brandSecondary1Dark\r\n },\r\n element: {\r\n danger: colors.error500,\r\n focused: colors.focus,\r\n focusedGrey: colors.neutralWhite,\r\n neutralBlack: colors.neutralBlack,\r\n neutralWhite: colors.neutralWhite,\r\n primary: colors.brandPrimary1,\r\n primary2: colors.brandPrimary2,\r\n primary3: colors.brandPrimary3,\r\n secondary: colors.brandSecondary1\r\n },\r\n featureList: {\r\n cross: colors.error500,\r\n tick: colors.brandSecondary3\r\n },\r\n icon: {\r\n color: colors.interactive500\r\n },\r\n interactiveCell: {\r\n focus: colors.brandPrimary1,\r\n hover: colors.neutral50,\r\n pressed: colors.neutral200,\r\n selected: colors.neutral100\r\n },\r\n link,\r\n messaging: {\r\n backgroundError: colors.error100,\r\n backgroundErrorDark: colors.error700,\r\n backgroundInfo: colors.information100,\r\n backgroundNeutral: colors.neutral50,\r\n backgroundSuccess: colors.success100,\r\n backgroundWarning: colors.warning100,\r\n colorError: colors.error500,\r\n colorInfo: colors.information500,\r\n colorNeutral: colors.neutral300,\r\n colorSuccess: colors.success500,\r\n colorWarning: colors.warning500\r\n },\r\n modal: {\r\n close: {\r\n fill: colors.neutralWhite,\r\n fillHover: colors.neutralWhite\r\n },\r\n container: {\r\n background: colors.brandPrimary3\r\n },\r\n scrollThumb: {\r\n background: colors.brandPrimary1Dark\r\n }\r\n },\r\n status: {\r\n error: colors.error500,\r\n info: colors.information500,\r\n warning: colors.warning500\r\n },\r\n table: {\r\n cell: {\r\n border: colors.neutralWhite\r\n },\r\n head: {\r\n background: colors.brandPrimary3,\r\n color: colors.neutralWhite\r\n },\r\n row: {\r\n background: colors.neutralWhite,\r\n backgroundAlt: colors.neutral50\r\n }\r\n },\r\n text: {\r\n contrast: colors.neutral900,\r\n default: colors.neutral700,\r\n disabled: colors.neutral300,\r\n interactive1: colors.interactive500,\r\n interactive1Hover: colors.interactive600,\r\n interactive1Pressed: colors.neutral600,\r\n nonessential: colors.neutral400,\r\n secondary: colors.neutral600,\r\n subtle: colors.neutral500,\r\n neutral: colors.neutralWhite,\r\n dark: {\r\n default: colors.darkText,\r\n secondary: colors.darkTextSecondary\r\n },\r\n visited: colors.visited\r\n },\r\n ui: {\r\n accent1: colors.brandSecondary3,\r\n defaultBorderColor: colors.neutral200,\r\n divider: colors.neutral200,\r\n },\r\n brand: {\r\n orange: {\r\n secondary: colors.brandSecondary2,\r\n },\r\n }\r\n}","import styled, { css } from 'styled-components'; \r\nexport const MOTION_SPEED_BASE = 400;\r\nexport const MOTION_SPEED_FAST = 400 / 2;\r\nexport const MOTION_SPEED_SLOW = 400 * 2;\r\n\r\n\r\nexport const hiddenContainer = css`\r\n display: none\r\n`\r\n\r\nexport const TEXT_LINE_HEIGHT = 1.6;\r\nexport const FONT_FAMILY_TEXT = `'Avenir', Helvetica, Arial, sans-serif`;\r\n\r\nexport const placeholderBackgroundColors = {\r\n 'Grey': 'neutral50'\r\n}\r\n\r\n\r\n// TODO remove once BEDs run Powershell script to remove from Placeholders\r\nexport const excludeThemeColors = ['white'];\r\n","import React from 'react';\r\n\r\nexport const BookHingeSVG = () => (\r\n \r\n \r\n \r\n);\r\n","import React from 'react';\r\n\r\nimport { BookHingeSVG } from './book-hinge';\r\n\r\nimport { BookHingeProps } from './definitions';\r\n\r\nimport {\r\n BookHingeContainer,\r\n BookHingeSVGContainer,\r\n} from './StyledBookHinge';\r\n\r\nexport const BookHinge: React.FC = ({\r\n desktopPlacement,\r\n mobilePlacement,\r\n}) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};","import { mediaApi } from '@sitecore-jss/sitecore-jss-react';\r\n\r\nexport const convertSrcJss = (src: string, maxWidth: number = null, maxHeight: number = null) => {\r\n return mediaApi.updateImageUrl(src, { 'mw': String(maxWidth), 'mh': String(maxHeight) });\r\n};\r\n\r\nexport const createSrcSet = (src: string, widths: number[]) => {\r\n return mediaApi.getSrcSet(src, widths.map(w => ({ 'mw': String(w) })));\r\n};\r\n","import React from 'react';\r\nimport { NavLink, Link as ReactLink } from 'react-router-dom';\r\nimport styled, { css } from 'styled-components';\r\nimport { MOTION_SPEED_FAST } from '_containers/Theme/global';\r\n\r\nimport {\r\n button,\r\n buttonReset,\r\n depth,\r\n fixedTitle16,\r\n fixedTitle18,\r\n ie,\r\n listReset,\r\n mq,\r\n safeFocusRemoval,\r\n svg,\r\n textBody2,\r\n} from '_utils/styles';\r\nimport { spacing } from '_utils/props';\r\n\r\n\r\nexport const Nav = styled.nav`\r\n background-color: ${({ theme }) => theme.mainMenu.container.backgroundPrimary};\r\n display: flex;\r\n flex-direction: column;\r\n height: 100%;\r\n left: 0;\r\n opacity: 0;\r\n overflow: hidden;\r\n pointer-events: auto;\r\n position: fixed;\r\n top: 0;\r\n transform: translateX(100%);\r\n transition: transform ${() => `${MOTION_SPEED_FAST}ms`} cubic-bezier(0.42, 0, 0.59, 1);\r\n /* delay to allow menu transition bw mobile/table opposite sides of screen */\r\n transition-delay: opacity .1s;\r\n width: 100%;\r\n z-index: ${depth.MENU};\r\n\r\n &.menu-active {\r\n opacity: 1;\r\n transform: translateX(0);\r\n }\r\n\r\n ${mq('md')} {\r\n height: 100%;\r\n min-height: auto;\r\n overflow: visible;\r\n position: absolute;\r\n transform: translateX(-100%);\r\n width: 330px;\r\n }\r\n\r\n ${mq('lg')} {\r\n width: 360px;\r\n }\r\n\r\n // hide scrollbars if possible\r\n * {\r\n ::-webkit-scrollbar {\r\n width: 7px;\r\n }\r\n ::-webkit-scrollbar-track {\r\n background: ${({ theme }) => theme.mainMenu.container.backgroundPrimary};\r\n }\r\n ::-webkit-scrollbar-thumb {\r\n background-color: rgba(225, 225, 225, 0.1);\r\n border-radius: 20px;\r\n }\r\n scrollbar-color: rgba(225, 225, 225, 0.1) ${({ theme }) => theme.mainMenu.container.backgroundPrimary};\r\n scrollbar-width: thin;\r\n }\r\n`;\r\n\r\nexport const NavToolbar = styled.div`\r\n ${({ theme }) => spacing({ theme, pl: '20px' })};\r\n border-bottom: 1px solid ${({ theme }) => theme.mainMenu.toolbar.divider};\r\n display: flex;\r\n justify-content: space-between;\r\n min-height: ${({ theme }) => theme.pageHeader.height.xs}px;\r\n position: fixed;\r\n top: 0;\r\n width: 100%;\r\n\r\n ${ie} {\r\n display: none !important;\r\n }\r\n\r\n ${mq('md')} {\r\n border: 0;\r\n }\r\n\r\n ${({ level }) => {\r\n if (level === 'primary') {\r\n return css`\r\n background: ${({ theme }) => theme.mainMenu.toolbar.background};\r\n `;\r\n }\r\n }}\r\n`;\r\n\r\nexport const NavToolbarControl = styled.div`\r\n display: flex;\r\n flex: 1;\r\n justify-content: flex-start;\r\n\r\n ${mq('md')} {\r\n display: none;\r\n }\r\n`;\r\n\r\nexport const NavToolbarTabs = styled.div`\r\n display: flex;\r\n`;\r\n\r\nexport const NavToolbarTabItem = styled.button`\r\n ${buttonReset};\r\n ${fixedTitle16};\r\n ${({ theme }) => spacing({ theme, px: 4 })};\r\n align-items: center;\r\n color: ${({ theme }) => theme.mainMenu.toolbar.color};\r\n display: flex;\r\n height: 100%;\r\n\r\n ${({ active }) => {\r\n if (active) {\r\n return css`\r\n color: ${({ theme }) => theme.mainMenu.toolbar.colorActive};\r\n box-shadow: inset 0px -4px 0px ${({ theme }) => theme.mainMenu.toolbar.activeHighlight};\r\n `;\r\n }\r\n }}\r\n`;\r\n\r\nexport const NavToolbarBack = styled.button`\r\n ${buttonReset};\r\n ${fixedTitle16};\r\n align-items: center;\r\n display: flex;\r\n flex: 1;\r\n\r\n svg {\r\n margin-right: 12px;\r\n }\r\n\r\n path {\r\n fill: ${({ theme }) => theme.mainMenu.toolbar.colorActive};\r\n }\r\n\r\n ${mq('md')} {\r\n display: none;\r\n }\r\n`;\r\n\r\nexport const NavToolbarClose = styled.div`\r\n display: flex;\r\n margin-left: auto;\r\n\r\n ${({ submenuActive }) => {\r\n if (submenuActive) {\r\n return css`\r\n ${mq('md')} {\r\n display: none;\r\n }\r\n `;\r\n }\r\n }}\r\n`;\r\n\r\nexport const MenuBody = styled.div`\r\n flex: 1;\r\n`;\r\n\r\nexport const MenuBodyNav = styled.div`\r\n background: ${({ theme }) => theme.mainMenu.container.backgroundPrimary};\r\n min-height: 100%;\r\n`;\r\n\r\nexport const MenuDivider = styled.li`\r\n ${({ theme }) => spacing({ theme, mb: 5 })};\r\n background-color: ${({ theme }) => theme.mainMenu.container.divider};\r\n flex: none;\r\n height: 1px;\r\n`;\r\n\r\nexport const MenuSubBody = styled.div`\r\n background-color: ${({ theme }) => theme.mainMenu.container.backgroundSecondary};\r\n flex: 1;\r\n height: 100%;\r\n left: 0;\r\n pointer-events: none;\r\n position: absolute;\r\n top: 0;\r\n transform: translateX(100%);\r\n transition: all ${() => `${MOTION_SPEED_FAST}ms`};\r\n width: 100%;\r\n z-index: 1;\r\n\r\n ${mq('md')} {\r\n opacity: 0;\r\n transform: translateX(0);\r\n z-index: -1;\r\n }\r\n\r\n ${({ active }) => {\r\n if (active) {\r\n return css`\r\n pointer-events: auto;\r\n opacity: 1;\r\n transform: translateX(0);\r\n\r\n ${mq('md')} {\r\n opacity: 1;\r\n transform: translateX(100%);\r\n }\r\n `;\r\n }\r\n }};\r\n`;\r\n\r\nexport const List = styled.ul`\r\n ${listReset};\r\n ${({ theme }) => spacing({ theme, py: { xs: 4, md: 0 } })};\r\n background: ${({ theme }) => theme.mainMenu.container.backgroundPrimary};\r\n display: flex;\r\n display: none;\r\n flex-direction: column;\r\n height: calc(100% - ${({ theme }) => theme.pageHeader.height.xs}px);\r\n margin-top: ${({ theme }) => theme.pageHeader.height.xs}px;\r\n opacity: 0;\r\n overflow-y: auto;\r\n transition: opacity ${() => `${MOTION_SPEED_FAST}ms`};\r\n width: 100%;\r\n\r\n & & {\r\n display: flex;\r\n opacity: 1;\r\n background: ${({ theme }) =>\r\n theme.mainMenu.container.backgroundSecondary};\r\n }\r\n\r\n &.transition-in {\r\n display: flex;\r\n }\r\n\r\n &.isActive {\r\n display: flex;\r\n opacity: 1;\r\n }\r\n`;\r\n\r\nexport const Item = styled.li`\r\n color: ${({ theme }) => theme.mainMenu.item.color};\r\n display: block;\r\n flex: none;\r\n\r\n &:last-child {\r\n ${({ theme }) => spacing({ theme, mb: 4 })};\r\n }\r\n\r\n &.loginButton {\r\n ${mq('md')} {\r\n display: none;\r\n }\r\n }\r\n`;\r\n\r\nexport const Link = styled(NavLink)`\r\n ${({ theme }) => spacing({ theme, py: '16px', pl: { xs: '20px', md: 5 }, pr: { xs: '20px', md: 3 } })};\r\n align-items: center;\r\n color: ${({ theme }) => theme.mainMenu.item.color};\r\n display: flex;\r\n flex-wrap: nowrap;\r\n outline: 0;\r\n text-decoration: none;\r\n\r\n body:not(.safe-focus-removal) &:focus {\r\n box-shadow: inset 0 3px 0 0 ${({ theme }) => theme.colors.element.focusedGrey}, inset 0 -3px 0 0 ${({ theme }) => theme.colors.element.focusedGrey};\r\n outline: 0;\r\n }\r\n\r\n &:focus {\r\n ${safeFocusRemoval};\r\n\r\n body:not(.safe-focus-removal) & {\r\n background-color: ${({ theme }) => theme.mainMenu.item.backgroundActive};\r\n }\r\n }\r\n\r\n &[href] {\r\n position: relative;\r\n transition: background-color 0.1s linear;\r\n\r\n &:hover,\r\n &:active {\r\n background-color: ${({ theme }) => theme.mainMenu.item.backgroundActive};\r\n }\r\n }\r\n\r\n .submenu & {\r\n ${({ theme }) => spacing({ theme, py: '18px' })};\r\n }\r\n\r\n .submenu-active & {\r\n background: ${({ theme }) => theme.mainMenu.item.backgroundActive};\r\n }\r\n\r\n ${({ className }) => {\r\n if (className === \"with-description\") {\r\n return css`\r\n ${mq('md')} {\r\n align-items: flex-start;\r\n }\r\n `;\r\n }\r\n }}\r\n`;\r\n\r\nexport const LinkWrapper = styled.div`\r\n ${({ theme }) => spacing({ theme, mt: '16px', ml: 6, mr: 5 })};\r\n outline: 0;\r\n\r\n body:not(.safe-focus-removal) &:focus {\r\n background-color: ${({ theme }) => theme.mainMenu.item.backgroundActive};\r\n }\r\n`;\r\n\r\nexport const GroupLabelWrapper = styled.div`\r\n ${({ theme }) => spacing({ theme, mt: 2, mx: { xs: '20px', md: 5 } })};\r\n color: ${({ theme }) => theme.mainMenu.item.groupLabelColor};\r\n font-size: 12px;\r\n font-weight: bold;\r\n text-transform: uppercase;\r\n`;\r\n\r\nexport const LabelWrapper = styled.div`\r\n flex: 1;\r\n`;\r\n\r\nexport const Label = styled.span`\r\n ${fixedTitle16};\r\n color: ${({ theme }) => theme.mainMenu.item.color};\r\n display: inline-flex;\r\n font-weight: bold;\r\n line-height: 1.2 !important;\r\n\r\n ${Link}[href]:active &,\r\n ${Link}[href]:hover &,\r\n .submenu-active > a & {\r\n color: ${({ theme }) => theme.mainMenu.item.colorHighlight};\r\n }\r\n\r\n ${mq('md')} {\r\n ${fixedTitle18};\r\n\r\n .submenu & {\r\n ${fixedTitle16};\r\n }\r\n }\r\n`;\r\n\r\nexport const Description = styled.span`\r\n ${textBody2};\r\n color: ${({ theme }) => theme.mainMenu.item.description};\r\n display: block;\r\n overflow: hidden;\r\n\r\n ${({ theme }) => spacing({ theme, mt: '4px', mb: 0 })};\r\n &:first-of-type {\r\n margin-top: 0;\r\n }\r\n\r\n body:not(.safe-focus-removal) ${Link}[href]:focus & {\r\n color: ${({ theme }) => theme.mainMenu.item.descriptionActive};\r\n }\r\n\r\n ${Link}[href]:active &,\r\n ${Link}[href]:hover & {\r\n color: ${({ theme }) => theme.mainMenu.item.descriptionActive};\r\n }\r\n`;\r\n\r\nexport const LinkEndIcon = styled.div`\r\n ${({ theme }) => spacing({ theme, ml: '16px' })};\r\n ${svg(24, 24)};\r\n flex-shrink: 0;\r\n height: 24px;\r\n width: 24px;\r\n\r\n path {\r\n fill: ${({ theme }) => theme.mainMenu.item.color};\r\n\r\n ${Link}[href]:active &,\r\n ${Link}[href]:hover &,\r\n .submenu-active > a & {\r\n fill: ${({ theme }) => theme.mainMenu.item.colorHighlight};\r\n }\r\n }\r\n\r\n ${({ showOnHover }) => {\r\n if (showOnHover) {\r\n return css`\r\n opacity: 0;\r\n\r\n [href]:hover &,\r\n [href]:focus & {\r\n opacity: 1;\r\n }\r\n `;\r\n }\r\n }}\r\n`;\r\n\r\nexport const IconWrapper = styled.div`\r\n align-items: center;\r\n display: inline-flex;\r\n flex-shrink: 0;\r\n\r\n svg {\r\n height: 24px;\r\n }\r\n\r\n path {\r\n fill: ${({ theme }) => theme.mainMenu.item.color};\r\n\r\n ${Link}[href]:active &,\r\n ${Link}[href]:hover &,\r\n .submenu-active > a & {\r\n fill: ${({ theme }) => theme.mainMenu.item.colorHighlight};\r\n }\r\n }\r\n\r\n ${({ position }) => {\r\n if (position === 'after') {\r\n return css`\r\n ${({ theme }) => spacing({ theme, ml: 1 })};\r\n `;\r\n }\r\n if (position === 'before') {\r\n return css`\r\n ${({ theme }) => spacing({ theme, mr: 1 })};\r\n `;\r\n }\r\n }}\r\n`;\r\n\r\nexport const MenuLinkButton = styled(ReactLink)`\r\n width: 100%;\r\n\r\n ${mq('md')} {\r\n width: auto;\r\n }\r\n\r\n ${({ className }) => {\r\n if (className) {\r\n return css`\r\n ${button('default', className)};\r\n .submenu & {\r\n width: 100%;\r\n }\r\n `;\r\n }\r\n }}\r\n display: inline-flex;\r\n justify-content: center;\r\n`;\r\n\r\nexport const MenuCloseButton = styled.button`\r\n ${buttonReset};\r\n align-items: center;\r\n display: flex;\r\n height: 100%;\r\n position: relative;\r\n width: 64px;\r\n\r\n &:before,\r\n &:after {\r\n content: '';\r\n background-color: ${({ theme }) => theme.mainMenu.toolbar.buttonColor};\r\n display: block;\r\n height: 2px;\r\n left: 50%;\r\n position: absolute;\r\n top: 50%;\r\n width: 20px;\r\n }\r\n\r\n &:before {\r\n transform: translate3d(-50%, -50%, 0) rotate(45deg);\r\n }\r\n\r\n &:after {\r\n transform: translate3d(-50%, -50%, 0) rotate(-45deg);\r\n }\r\n\r\n &:hover {\r\n &:before,\r\n &:after {\r\n background-color: ${({ theme }) =>\r\n theme.mainMenu.toolbar.activeHighlight};\r\n }\r\n }\r\n\r\n &:focus {\r\n ${safeFocusRemoval}\r\n outline-color: ${({ theme }) => theme.colors.element.focusedGrey} !important;\r\n outline-offset: 2px;\r\n outline-style: solid !important;\r\n outline-width: 2px;\r\n position: relative;\r\n }\r\n`;\r\n","\r\nimport styled,{ css } from 'styled-components';\r\nimport {button, mq} from '_utils/styles';\r\nimport { Spinner} from \"_utils/components\";\r\n\r\n\r\n export const LogOutButton = styled.button`\r\n ${button('default', 'primary')};\r\n align-items: center;\r\n display: flex;\r\n justify-content: center;\r\n width: calc(100% - 3rem);\r\n margin: 1rem auto;\r\n padding: 12px 24px;\r\n\r\n ${mq('sm')} {\r\n width: auto;\r\n margin-top: 16px;\r\n margin-left: 24px;\r\n margin-right: 24px;\r\n }\r\n`;\r\n\r\nexport const StyledSpinnerLogout = styled(Spinner)`\r\n height: 24px;\r\n width: 24px;\r\n`;","import React from 'react';\r\nimport { useState } from 'react';\r\nimport { isValidNavLink } from '_utils/validationChecks';\r\nimport { LogOutButton, StyledSpinnerLogout } from \"_components/Logout/StyledLogout\";\r\n\r\ntype Props ={\r\n item: {\r\n link: {\r\n url: string;\r\n },\r\n title: {\r\n value: string;\r\n }\r\n }\r\n}\r\n\r\n\r\nexport const Logout = ({item}:Props) => {\r\n const [buttonText, setButtonText] = useState(\"Sign Out\");\r\n const [showSpinner, setSpinner] = useState(false);\r\n let spinner: JSX.Element;\r\n\r\n async function logoutOkta(item) {\r\n setButtonText(\"Signing Out\");\r\n setSpinner( true);\r\n\r\n const link = isValidNavLink(item) ? item.link?.url : null;\r\n const OktaResponse = await fetch(link);\r\n\r\n if(OktaResponse.status === 204)\r\n {\r\n window.location.replace(item.ssoSignoutLink?.url);\r\n }\r\n else{\r\n //continue the process no matter if it fails in Okta, \r\n //placeholder for logging purpose in the future\r\n window.location.replace(item.ssoSignoutLink?.url);\r\n }\r\n };\r\n\r\n if (showSpinner) {\r\n spinner = \r\n }\r\n\r\n return (\r\n
  • \r\n logoutOkta(item)}>\r\n {buttonText}\r\n {spinner}\r\n \r\n
  • \r\n );\r\n};\r\n\r\n\r\n\r\nexport default Logout;","import { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { compose } from 'ramda';\r\nimport React, { forwardRef, useCallback } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport { withMenuContext } from '_containers/MenuContext';\r\nimport NavItem from '_components/NavItem';\r\nimport Icon from '_components/Icon';\r\nimport { warnInDev } from '_utils/helpers/dev';\r\nimport { isValidNavLink } from '_utils/validationChecks';\r\n\r\nimport {\r\n MenuItemHandlerProps,\r\n MenuItemProps\r\n} from './definitions';\r\n\r\nimport {\r\n Description,\r\n GroupLabelWrapper,\r\n IconWrapper,\r\n Item,\r\n Label,\r\n LabelWrapper,\r\n Link,\r\n LinkEndIcon,\r\n LinkWrapper,\r\n List,\r\n MenuCloseButton,\r\n MenuDivider,\r\n MenuLinkButton,\r\n MenuSubBody,\r\n NavToolbar,\r\n NavToolbarBack,\r\n NavToolbarClose,\r\n} from './StyledMainMenu';\r\nimport Logout from '_components/Logout';\r\n\r\nconst MenuItem = forwardRef(\r\n ({\r\n item,\r\n isSubItem,\r\n menuActive,\r\n submenuActive,\r\n onBlur,\r\n onFocus,\r\n onItemClick,\r\n tabIndex,\r\n useLevel2Title\r\n }, ref) => {\r\n if (!item) {\r\n return null;\r\n }\r\n\r\n let label = item.title?.value || item?.link?.text || item?.link?.fallbackTitle || '';\r\n if (useLevel2Title) {\r\n label = item.level2LinkTitle?.value || label\r\n }\r\n const description = !isSubItem && item.description?.value ? item.description?.value : '';\r\n const hasChildren = isSubItem ? false : item?.secondaryNavigation?.length;\r\n const buttonClass = item?.buttonClass?.value;\r\n const iconClass = item?.iconClass?.targetItem?.name;\r\n\r\n // nullify links without urls\r\n const link = isValidNavLink(item) ? item.link : null;\r\n\r\n // only create handlers if we have a link\r\n const handlers: MenuItemHandlerProps = link\r\n ? {\r\n 'aria-hidden': !menuActive,\r\n 'aria-expanded': submenuActive,\r\n onBlur,\r\n onClick: onItemClick,\r\n onFocus,\r\n onKeyDown: hasChildren ? onItemClick : () => { },\r\n tabIndex: tabIndex,\r\n target: item?.link?.target || ''\r\n }\r\n : null;\r\n\r\n return (\r\n <>\r\n {buttonClass ? (\r\n \r\n \r\n {label && label}\r\n {iconClass && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n ) : (\r\n \r\n {!description && iconClass && (\r\n \r\n \r\n \r\n )}\r\n \r\n {label && (\r\n \r\n )}\r\n {description && {description}}\r\n \r\n {hasChildren ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n );\r\n }\r\n);\r\n\r\n\r\nconst MenuItemSub = forwardRef(\r\n ({\r\n items,\r\n enabledItemRefs,\r\n enabledItemsIndex,\r\n getEnabledItemsChildIndex,\r\n keyPrefix,\r\n menuActive,\r\n onBlur,\r\n onItemClick,\r\n onItemFocus,\r\n subNavTabIndex,\r\n submenuActive\r\n }, ref) => {\r\n\r\n if (!items) {\r\n return null;\r\n }\r\n\r\n return (\r\n <>\r\n {items.map((child, index) => {\r\n const groupLinks = child?.groupSecondarylinks;\r\n const groupTitle = child?.groupTitle?.value;\r\n const childItems = groupLinks.length ? groupLinks : [child];\r\n const newKeyPrefix = `${keyPrefix}-${index}`;\r\n\r\n return (\r\n \r\n {groupLinks && groupTitle && (\r\n \r\n {groupTitle}\r\n \r\n )}\r\n {childItems.map((childItem, i) => {\r\n const enabledChildIndex = getEnabledItemsChildIndex(enabledItemsIndex, childItem);\r\n const spacing = !!(childItem?.addSpacingBelow?.value) || false;\r\n const childRef = enabledItemRefs.current[enabledItemsIndex].children[enabledChildIndex];\r\n\r\n // If item doesnt have a ref, return early\r\n if (!childRef) {\r\n warnInDev('Link does not have valid url');\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n \r\n {\r\n onItemFocus(e, enabledItemsIndex, enabledChildIndex)\r\n }}\r\n onItemClick={onItemClick}\r\n ref={childRef}\r\n tabIndex={subNavTabIndex}\r\n isSubItem={true}\r\n submenuActive={submenuActive}\r\n />\r\n \r\n {spacing && (\r\n \r\n )}\r\n \r\n )\r\n })\r\n }\r\n {!!(child?.addSpacingBelow?.value) && (\r\n \r\n )}\r\n \r\n )\r\n })}\r\n \r\n );\r\n },\r\n);\r\n\r\nconst MenuItemWrapper = forwardRef(\r\n ({\r\n activeSubNav,\r\n enabledItemRefs,\r\n enabledItemsIndex,\r\n getEnabledItemsChildIndex,\r\n item,\r\n isDesktop,\r\n keyPrefix,\r\n menuActive,\r\n onBlur,\r\n onItemClick,\r\n onItemFocus,\r\n onItemHover,\r\n onParentItemClick,\r\n resetMenu\r\n }, ref) => {\r\n if (!item) {\r\n return null;\r\n }\r\n // TODO: Replace useTranslation() to getDictionaryItem()\r\n const [t] = useTranslation();\r\n const children = item?.secondaryNavigation || [];\r\n const currentRef = enabledItemRefs?.current[enabledItemsIndex];\r\n const shouldHaveSubmenu = !!(children.length);\r\n const isSubNavActive = !!(shouldHaveSubmenu && activeSubNav === enabledItemsIndex);\r\n const subNavTabIndex = isSubNavActive ? 0 : -1;\r\n const spacing = !!(item?.addSpacingBelow?.value) || false;\r\n const mouseOverEffect = () => onItemHover && isDesktop\r\n ? onItemHover.callback(activeSubNav, shouldHaveSubmenu ? enabledItemsIndex : -1)\r\n : () => { };\r\n\r\n // props that need to be passed to subnav items\r\n const subnavItemProps = {\r\n enabledItemRefs: enabledItemRefs,\r\n enabledItemsIndex: enabledItemsIndex,\r\n getEnabledItemsChildIndex: getEnabledItemsChildIndex,\r\n menuActive: menuActive,\r\n onBlur: onBlur,\r\n onItemClick: onItemClick,\r\n onItemFocus: onItemFocus,\r\n subNavTabIndex: subNavTabIndex,\r\n }\r\n\r\n if (!currentRef) {\r\n warnInDev(`Link does not have valid url: ${item?.title?.value}`);\r\n return null;\r\n }\r\n\r\n const classList = [];\r\n\r\n if (isSubNavActive) {\r\n classList.push('submenu-active');\r\n }\r\n if (item?.className) {\r\n classList.push(item.className);\r\n }\r\n\r\n return (\r\n \r\n mouseOverEffect()}\r\n key={`menu-${keyPrefix}`}\r\n >\r\n {\r\n onItemFocus(e, enabledItemsIndex, -1)\r\n }}\r\n onItemClick={shouldHaveSubmenu ? onParentItemClick : onItemClick}\r\n ref={ref}\r\n submenuActive={isSubNavActive}\r\n tabIndex={menuActive ? 0 : -1}\r\n />\r\n {shouldHaveSubmenu && (\r\n <>\r\n \r\n \r\n \r\n \r\n {t('menu-back-label')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* Repeated first nav item key=menu-sub-primary-0*/}\r\n \r\n {\r\n onItemFocus(e, enabledItemsIndex, 0)\r\n }}\r\n onItemClick={onItemClick}\r\n ref={currentRef?.children && currentRef?.children[0]}\r\n tabIndex={menuActive ? 0 : -1}\r\n useLevel2Title={true}\r\n submenuActive={isSubNavActive}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n {spacing && (\r\n \r\n )}\r\n \r\n );\r\n },\r\n);\r\n\r\nconst MenuItemList = ({\r\n activeSubNav,\r\n enabledItemRefs,\r\n getEnabledItemsChildIndex,\r\n getEnabledItemsIndex,\r\n isDesktop,\r\n keyPrefix,\r\n menuActive,\r\n menuItems,\r\n onItemBlur,\r\n onItemClick,\r\n onItemHover,\r\n onItemFocus,\r\n onParentItemClick,\r\n resetMenu,\r\n}) => menuItems.map((item, index) => {\r\n const enabledItemsIndex = getEnabledItemsIndex(item);\r\n\r\n const enabledItemProps =\r\n enabledItemsIndex > -1\r\n ? {\r\n ref: enabledItemRefs?.current[enabledItemsIndex]?.uid,\r\n onItemFocus: onItemFocus,\r\n onBlur: onItemBlur\r\n }\r\n : {};\r\n\r\n return (\r\n (item?.title?.value === \"Sign out\") ? \r\n : \r\n onParentItemClick(e, enabledItemsIndex)}\r\n resetMenu={(e) => resetMenu(e)}\r\n {...enabledItemProps}\r\n />\r\n );\r\n});\r\n\r\nexport default compose(withSitecoreContext(), withMenuContext)(MenuItemList);\r\n\r\n","import { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { compose } from 'ramda';\r\nimport React, { createRef, useCallback, useEffect, useRef, useState } from 'react';\r\nimport { useDebouncedCallback } from 'use-debounce';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport { MOTION_SPEED_FAST } from '_containers/Theme/global';\r\nimport { withMenuContext } from '_containers/MenuContext';\r\nimport { useTimer, useWindowSize } from '_utils/hooks';\r\nimport { BREAKPOINTS } from '_utils/styles/mq/';\r\nimport { isValidNavLink } from '_utils/validationChecks'\r\nimport { MenuProps } from './definitions';\r\nimport MenuItemList from './MenuItemList';\r\nimport { List } from './StyledMainMenu';\r\n\r\n// https://www.w3.org/TR/wai-aria-practices/examples/menu-button/menu-button-links.html\r\n\r\nconst Menu: React.FC = ({\r\n activeMenu,\r\n activeSubNav,\r\n fields,\r\n isLoggedIn,\r\n loginUrl,\r\n menuActive,\r\n menuID,\r\n setActiveSubNav,\r\n setMenuActive,\r\n}) => {\r\n const [t] = useTranslation();\r\n const datasource = fields?.data?.datasource;\r\n const primaryItems = datasource?.primaryNavigation || [];\r\n let enabledMenuItems = primaryItems;\r\n const mainNavRef = useRef();\r\n // focused element index - the first value is parent index, second is child index\r\n const [focusItemIndex, setFocusItemIndex] = useState([-1, -1]);\r\n const { setTimer } = useTimer();\r\n const [transitioning, setTransitioning] = useState(false);\r\n const [isDesktop, setIsDesktop] = useState(false);\r\n const windowWidth = useWindowSize();\r\n\r\n const loginButton = [{\r\n \"title\": {\r\n \"value\": t('login-mobile-label')\r\n },\r\n \"link\": {\r\n \"url\": loginUrl,\r\n \"type\": \"external\",\r\n \"text\": \"\",\r\n \"target\": \"\",\r\n \"queryString\": \"\",\r\n },\r\n \"buttonClass\": {\r\n \"value\": \"primary\"\r\n },\r\n \"secondaryNavigation\": [],\r\n \"className\": \"loginButton\"\r\n }];\r\n if (!isLoggedIn && loginUrl) {\r\n enabledMenuItems = [...loginButton, ...primaryItems];\r\n }\r\n\r\n // return all primary menu items that have a valid links\r\n const getAllEnabledItems = useCallback(() => {\r\n return enabledMenuItems.filter((item) => isValidNavLink(item) || item?.template?.name === \"DashboardLink\");\r\n }, [enabledMenuItems, primaryItems]);\r\n\r\n // get valid primary menus and return valid child links\r\n const getAllEnabledChildItems = getAllEnabledItems().map((item) => {\r\n const childLinks = item?.secondaryNavigation || [];\r\n const enabledChildLinks = childLinks.map((el) => {\r\n if (el?.groupSecondarylinks.length) {\r\n return el?.groupSecondarylinks.filter((groupLink) => isValidNavLink(groupLink));\r\n } else {\r\n return isValidNavLink(el) ? el : [];\r\n }\r\n }).flat();\r\n\r\n // If there are valid child links, prepend the parent link\r\n return enabledChildLinks.length ? [item, ...enabledChildLinks] : [];\r\n });\r\n\r\n // store array of enabled menu item refs inside another ref\r\n const enabledItemRefs = useRef(getAllEnabledItems().map((item, index) => {\r\n return {\r\n uid: createRef(),\r\n children: getAllEnabledChildItems[index].map(() => createRef()),\r\n subNavWrapper: createRef(),\r\n }\r\n }));\r\n\r\n const focusFirstItem = () => {\r\n if (document.body && document.body.classList.contains('safe-focus-removal')) {\r\n // dont highlight item if menu was opened with mouse\r\n return;\r\n }\r\n if (enabledItemRefs?.current && enabledItemRefs.current.length) {\r\n // Find first visible\r\n const first = enabledItemRefs.current.find(item => item?.uid?.current?.offsetParent !== null);\r\n if (first && first?.uid?.current) {\r\n first?.uid?.current.focus();\r\n }\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n const currentNavClasses = mainNavRef?.current?.classList;\r\n if (menuActive && activeMenu === menuID) {\r\n currentNavClasses.add('transition-in');\r\n setTimer(() => {\r\n focusFirstItem();\r\n currentNavClasses.add('isActive');\r\n currentNavClasses.remove('transition-in');\r\n setTransitioning(false);\r\n }, MOTION_SPEED_FAST + 10);\r\n } else if (menuActive && activeMenu !== menuID) {\r\n setFocusItemIndex([-1, -1]);\r\n setActiveSubNav(-1);\r\n }\r\n return () => {\r\n currentNavClasses.remove('isActive');\r\n }\r\n }, [menuActive, activeMenu]);\r\n\r\n useEffect(() => {\r\n const currentSubNavWrapper = enabledItemRefs.current[activeSubNav]?.subNavWrapper?.current;\r\n if (activeSubNav !== -1 && currentSubNavWrapper) {\r\n currentSubNavWrapper.scrollTop = 0\r\n }\r\n }, [activeSubNav]);\r\n\r\n useEffect(() => {\r\n setIsDesktop(windowWidth.width > BREAKPOINTS.lg ? true : false);\r\n }, [windowWidth]);\r\n\r\n const onItemClick = () => {\r\n setActiveSubNav(-1);\r\n setMenuActive(false);\r\n };\r\n\r\n const onParentItemClick = (e, enabledItemsIndex) => {\r\n if (e.type === 'keydown') {\r\n // Keyboard event 'enter' will open submenus\r\n if (e.keyCode === 13) {\r\n e.preventDefault();\r\n setActiveSubNav(enabledItemsIndex !== activeSubNav ? enabledItemsIndex : -1);\r\n }\r\n return;\r\n }\r\n\r\n e.preventDefault();\r\n if (!isDesktop) {\r\n // toggle active if same nav item is clicked\r\n setActiveSubNav(enabledItemsIndex !== activeSubNav ? enabledItemsIndex : -1);\r\n }\r\n };\r\n\r\n const resetMenu = (e) => {\r\n e.preventDefault();\r\n setFocusItemIndex([-1, -1]);\r\n setActiveSubNav(-1);\r\n setMenuActive(false);\r\n };\r\n\r\n const onItemFocus = (e, enabledItemsIndex, enabledItemsChildIndex) => {\r\n if (transitioning) {\r\n return;\r\n }\r\n if (!menuActive) {\r\n setMenuActive(true);\r\n }\r\n setFocusItemIndex([enabledItemsIndex, enabledItemsChildIndex]);\r\n };\r\n\r\n const onItemBlur = (e) => {\r\n setFocusItemIndex([-1, -1]);\r\n };\r\n\r\n const onItemHover = useDebouncedCallback(\r\n (activeSubNav, enabledIndex) => {\r\n if (activeSubNav !== enabledIndex) {\r\n setActiveSubNav(enabledIndex);\r\n }\r\n }, 200,\r\n );\r\n\r\n const onKeyDown = (e, focusItemIndex, enabledItemRefs) => {\r\n if (!menuActive || focusItemIndex[0] === -1 || !enabledItemRefs || !enabledItemRefs?.current.length) {\r\n return;\r\n }\r\n\r\n // focusItemIndex is [parent-index, child-index], a '-1' index means its not open/active\r\n // work out where the focus is to define which index to increase/decrease\r\n const parentIndex = focusItemIndex[0];\r\n const childIndex = focusItemIndex[1];\r\n const isChildNav = !!(childIndex >= 0);\r\n const hasChildNav = enabledItemRefs?.current[parentIndex]?.children.length;\r\n const targetIndex = isChildNav ? childIndex : parentIndex;\r\n const subnavOpen = !!(activeSubNav === parentIndex);\r\n\r\n const currentFocusGroup = isChildNav ? enabledItemRefs?.current[parentIndex].children.map(({ current }) => current) : enabledItemRefs?.current.map(({ uid }) => uid.current);\r\n\r\n const prevIndex = targetIndex === 0 ? currentFocusGroup.length - 1 : targetIndex - 1;\r\n const nextIndex = targetIndex === currentFocusGroup.length - 1 ? 0 : targetIndex + 1;\r\n\r\n if (e && e.keyCode === 35) {\r\n e.preventDefault();\r\n // END\r\n if (currentFocusGroup[currentFocusGroup.length - 1]) {\r\n currentFocusGroup[currentFocusGroup.length - 1].focus();\r\n }\r\n } else if (e && e.keyCode === 36) {\r\n e.preventDefault();\r\n // HOME\r\n if (currentFocusGroup[0]) {\r\n currentFocusGroup[0].focus();\r\n }\r\n } else if (e && e.keyCode === 38) {\r\n e.preventDefault();\r\n // UP\r\n if (currentFocusGroup[prevIndex]) {\r\n currentFocusGroup[prevIndex].focus();\r\n }\r\n } else if (e && e.keyCode === 40) {\r\n e.preventDefault();\r\n // DOWN\r\n if (currentFocusGroup[nextIndex]) {\r\n currentFocusGroup[nextIndex].focus();\r\n }\r\n } else if (e && e.keyCode === 39) {\r\n e.preventDefault();\r\n // RIGHT\r\n if (currentFocusGroup[nextIndex]) {\r\n // if right key on parent item\r\n if (!isChildNav && hasChildNav) {\r\n if (!subnavOpen) {\r\n setActiveSubNav(parentIndex);\r\n }\r\n enabledItemRefs?.current[parentIndex].children[0].current.focus();\r\n } else {\r\n currentFocusGroup[nextIndex].focus();\r\n }\r\n }\r\n } else if (e && e.keyCode === 37) {\r\n e.preventDefault();\r\n // LEFT\r\n if (currentFocusGroup[nextIndex]) {\r\n // if left key on parent item\r\n if (isChildNav) {\r\n setActiveSubNav(-1);\r\n enabledItemRefs?.current[parentIndex].uid.current.focus();\r\n } else {\r\n currentFocusGroup[nextIndex].focus();\r\n }\r\n }\r\n }\r\n };\r\n\r\n const getEnabledItemsIndex = (item) => getAllEnabledItems().indexOf(item);\r\n const getEnabledItemsChildIndex = (parentIndex, item) => getAllEnabledChildItems[parentIndex].indexOf(item);\r\n\r\n if (!datasource) {\r\n return null;\r\n }\r\n\r\n return (\r\n onKeyDown(e, focusItemIndex, enabledItemRefs)}>\r\n \r\n \r\n );\r\n};\r\n\r\nexport default compose(withSitecoreContext(), withMenuContext)(Menu);\r\n","import { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { compose } from 'ramda';\r\nimport React, {useEffect}from 'react';\r\nimport { canUseDOM } from 'exenv';\r\nimport Menu from '_components/MainMenu/Menu';\r\n\r\nconst DashboardNavigation: React.FC = ({\r\n activeSubNav,\r\n isSticky,\r\n rendering,\r\n setActiveSubNav,\r\n sitecoreContext,\r\n}) => {\r\n let navItems = rendering?.fields?.data?.datasource?.primaryNavigation;\r\n \r\n if (!navItems) {\r\n return null;\r\n }\r\n\r\n return navItems?.length && (\r\n \r\n );\r\n};\r\n\r\nexport default compose(withSitecoreContext())(DashboardNavigation);\r\n\r\n","import { withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport { canUseDOM } from 'exenv';\r\nimport { compose } from 'ramda';\r\nimport React, { useEffect, useRef, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport DashboardNavigation from '_components/DashboardNavigation';\r\nimport { MOTION_SPEED_FAST } from '_containers/Theme/global';\r\nimport { withMenuContext } from '_containers/MenuContext';\r\n\r\nimport { enableBodyScroll, disableBodyScroll } from '_utils/helpers';\r\nimport { usePrevious, useTimer } from '_utils/hooks';\r\n\r\nimport { MenuProps } from './definitions';\r\nimport Menu from './Menu';\r\nimport {\r\n Nav,\r\n NavToolbar,\r\n MenuCloseButton,\r\n NavToolbarClose,\r\n NavToolbarControl,\r\n NavToolbarTabItem,\r\n NavToolbarTabs,\r\n} from './StyledMainMenu';\r\n\r\n// https://www.w3.org/TR/wai-aria-practices/examples/menu-button/menu-button-links.html\r\n\r\nconst MainMenu: React.FC = ({\r\n activeMenu,\r\n fields,\r\n isLoggedIn,\r\n isSticky,\r\n loginUrl,\r\n menuActive,\r\n placeholders,\r\n setActiveMenu,\r\n setMenuActive,\r\n}) => {\r\n const [t] = useTranslation();\r\n const containerRef = useRef();\r\n const prevMenuActive = usePrevious(menuActive);\r\n // focused element index - the first value is parent index, second is child index\r\n const { setTimer, cancelTimer } = useTimer();\r\n const [activeSubNav, setActiveSubNav] = useState(-1);\r\n // TODO determine if/where this needs to be added\r\n const [transitioning, setTransitioning] = useState(false);\r\n const dashboardNav = placeholders['jss-header-navigation'] || [];\r\n\r\n // focus listener effect:\r\n // 1. auto focus first menu item when menu opened\r\n // 2. close menu if focused element is outside of menu\r\n useEffect(\r\n () => {\r\n const container = containerRef.current;\r\n const overflowElements = [containerRef.current, ...container.getElementsByTagName('ul')];\r\n\r\n const focusListener = (e) => {\r\n let target: HTMLElement = e.target;\r\n\r\n if (target && target.id === 'menu-button' || target && target.id === 'dashboard-menu-button') {\r\n return;\r\n }\r\n\r\n // iterate through parents until we find menu container or no more\r\n while (target) {\r\n if (target === container) {\r\n // found menu container, bail\r\n return;\r\n }\r\n // move up to next parent\r\n target = target.parentNode as HTMLElement;\r\n }\r\n // focus outside, close menu\r\n setMenuActive(false);\r\n };\r\n\r\n // add/remove listener when menu opened/closed\r\n if (menuActive && !prevMenuActive) {\r\n setTransitioning(true);\r\n setTimer(() => {\r\n document.body.addEventListener('focus', focusListener, true);\r\n setTransitioning(false);\r\n }, MOTION_SPEED_FAST + 10);\r\n\r\n disableBodyScroll(overflowElements, {\r\n reserveScrollBarGap: true\r\n });\r\n // without setImmediate effect clean up runs immediately\r\n } else if (!menuActive && prevMenuActive) {\r\n document.body.removeEventListener('focus', focusListener, true);\r\n enableBodyScroll(overflowElements);\r\n setTransitioning(true);\r\n // close any open subnavs\r\n setActiveSubNav(-1);\r\n\r\n setTimer(() => {\r\n setTransitioning(false);\r\n }, MOTION_SPEED_FAST + 10);\r\n }\r\n\r\n // clean up\r\n return () => {\r\n cancelTimer();\r\n enableBodyScroll(overflowElements);\r\n document.body.removeEventListener('focus', focusListener, true);\r\n };\r\n },\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n [menuActive]\r\n );\r\n\r\n const resetMenu = (e) => {\r\n e.preventDefault();\r\n setActiveSubNav(-1);\r\n setMenuActive(false);\r\n };\r\n\r\n return (\r\n \r\n \r\n = 0}>\r\n \r\n { setActiveMenu(0) }}>{t('menu-label')}\r\n {!!(dashboardNav.length) && (\r\n { setActiveMenu(1) }}>{t('menu-my-cpa-label')}\r\n )}\r\n \r\n \r\n = 0}>\r\n \r\n \r\n \r\n \r\n {!!(dashboardNav.length) && (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default compose(withSitecoreContext(), withMenuContext)(MainMenu);\r\n","import { NavLink } from 'react-router-dom';\r\nimport styled from 'styled-components';\r\n\r\nexport const Container = styled.div`\r\n display: flex;\r\n flex-wrap: wrap;\r\n`;\r\n\r\nexport const TagNavLink = styled(NavLink)`\r\n text-decoration: none;\r\n\r\n &:focus {\r\n outline-offset: -3px;\r\n }\r\n\r\n &:active {\r\n span {\r\n background-color: ${({ theme }) => theme?.tag?.backgroundPressed};\r\n border: ${({ theme }) => theme?.tag?.borderPressed};\r\n }\r\n }\r\n`;\r\n","import styled from 'styled-components';\r\n\r\nimport { spacing } from '_utils/props';\r\nimport {\r\n hideOnPrint,\r\n tag10,\r\n tag12,\r\n tag14,\r\n} from '_utils/styles';\r\n\r\nconst sizeMap = {\r\n 'large': tag14,\r\n 'small': tag12,\r\n 'extra-small': tag10,\r\n};\r\n\r\nexport const TagContainer = styled.span`\r\n align-items: center;\r\n border: 1px solid transparent;\r\n display: flex;\r\n font-weight: bold;\r\n ${({ theme }) => spacing({ theme, my: '4px', mr: '8px' })}\r\n text-transform: uppercase;\r\n\r\n ${({ theme, size }) => {\r\n if (size === 'large') {\r\n return spacing({ theme, px: '8px', py: '4px' });\r\n }\r\n if (['extra-small', 'small'].includes(size)) {\r\n return spacing({ theme, px: '6px', py: '3px' });\r\n }\r\n }}\r\n\r\n ${({ size }) => sizeMap?.[size]};\r\n\r\n a > & {\r\n ${({ theme }) => spacing({ theme, m: '4px' })}\r\n }\r\n\r\n background-color: ${({ theme, tagVariant }) => theme?.tag[tagVariant]?.background ?? null};\r\n border-color: ${({ theme, tagVariant }) => theme?.tag[tagVariant]?.border ?? 'transparent'};\r\n border-radius: ${({ theme, tagVariant }) => theme?.tag[tagVariant]?.borderRadius ?? null};\r\n color: ${({ theme, tagVariant }) => theme?.tag[tagVariant]?.color ?? 'inherit'};\r\n // padding override required by Corporate AgendaAccordion\r\n padding: ${({ theme, tagVariant }) => theme?.tag[tagVariant]?.padding ?? null};\r\n text-decoration: ${({ theme, tagVariant }) => theme?.tag[tagVariant]?.textDecoration ?? null};\r\n\r\n &:hover {\r\n background-color: ${({ theme, tagVariant }) => theme?.tag[tagVariant]?.backgroundHover ?? null};\r\n color: ${({ theme, tagVariant }) => theme?.tag[tagVariant]?.colorHover ?? null};\r\n }\r\n\r\n &:visited {\r\n background-color: ${({ theme, tagVariant }) => theme?.tag[tagVariant]?.backgroundVisited ?? null};\r\n color: ${({ theme, tagVariant }) => theme?.tag[tagVariant]?.colorVisited ?? null};\r\n }\r\n\r\n ${hideOnPrint}\r\n`;\r\n","import React from 'react';\r\n\r\nimport {\r\n TagContainer,\r\n} from './StyledTag';\r\n\r\nimport { TagProps } from './definitions';\r\n\r\n\r\nconst Tag: React.FC = ({\r\n children,\r\n className,\r\n size = 'small',\r\n tagVariant\r\n}) => (\r\n \r\n {children}\r\n \r\n);\r\n\r\nexport default Tag;\r\n","import { canUseDOM } from 'exenv';\r\nimport { compose } from 'ramda';\r\nimport React from 'react';\r\n\r\nimport { withEditMode } from '_containers/BaseComponent';\r\nimport { withDigitalDataContext } from '_containers/DigitalDataContext';\r\n\r\nimport { emitTrackEvent, setObjectData } from '_utils/helpers/analytics';\r\n\r\n\r\nimport { Container, TagNavLink } from './StyledTagList';\r\nimport NavItem from '../NavItem';\r\nimport { TagListProps, TagItem } from './definitions';\r\nimport Tag from '_utils/components/Tag';\r\n\r\n\r\nconst validTag = (tag: TagItem) => {\r\n if (!tag) {\r\n return false;\r\n }\r\n\r\n const { displayName, id } = tag;\r\n\r\n return Boolean(displayName && id);\r\n};\r\n\r\nconst TagList: React.FC = ({\r\n className = '',\r\n digitalData,\r\n editMode,\r\n isLinkEnabled = true,\r\n rendering,\r\n setDigitalData,\r\n size = 'small',\r\n tagList,\r\n variant = 'interactiveLink',\r\n}) => {\r\n const tags = rendering?.fields?.data?.datasource?.tags?.targetItems || tagList;\r\n const uid = rendering?.uid ?? '';\r\n\r\n if (!tags?.length) {\r\n return null;\r\n }\r\n\r\n const handleClick = (name: string, url: string) => {\r\n if (!canUseDOM) {\r\n return;\r\n }\r\n\r\n if (typeof setDigitalData === 'function') {\r\n setDigitalData(\r\n setObjectData(\r\n ['link'],\r\n {\r\n linkName: name,\r\n linkDestination: url\r\n },\r\n digitalData\r\n )\r\n );\r\n\r\n emitTrackEvent('sectionViews');\r\n }\r\n }\r\n\r\n return (\r\n \r\n {\r\n tags?.filter(validTag).map(\r\n ({\r\n displayName,\r\n id,\r\n url,\r\n }) => (\r\n (url && isLinkEnabled) ? (\r\n handleClick(displayName, url)}\r\n StyledLink={TagNavLink}\r\n link={{\r\n url: url,\r\n type: 'internal'\r\n }}\r\n >\r\n {displayName}\r\n )\r\n : (\r\n {displayName}\r\n )\r\n )\r\n )\r\n }\r\n \r\n );\r\n};\r\n\r\nexport default compose(\r\n withDigitalDataContext,\r\n withEditMode)(TagList);\r\n\r\n","import { canUseDOM } from 'exenv';\r\nimport React, { createContext, useEffect, useState } from 'react';\r\n\r\nimport { Optionalize } from '_utils/types';\r\n\r\nimport { logInDev } from '_utils/helpers/dev';\r\n\r\nimport { ChildrenPropTypes } from '../../types';\r\n\r\nconst packageConfig = require('../../../package.json');\r\n\r\nimport { DigitalDataProps, DigitalDataContextProps } from './definitions';\r\n\r\nconst defaultDigitalData: DigitalDataProps = {\r\n form: {\r\n errorName: '',\r\n formName: '',\r\n update: '',\r\n },\r\n link: {\r\n linkName: '',\r\n linkDestination: '',\r\n topic: '',\r\n },\r\n member: {\r\n countryRegion: '',\r\n countryArea: '',\r\n stateProvince: '',\r\n cpaID: '',\r\n cpdhoursPendingByTriennium: '',\r\n cpdRequired: '',\r\n cpdtrienniumEndDate: '',\r\n designation: '',\r\n division: '',\r\n loginStatus: '',\r\n profileType: '',\r\n userType: '',\r\n },\r\n page: {\r\n contentType: '',\r\n contributor: '',\r\n language: '',\r\n multimediaType: '',\r\n pageDescription: '',\r\n pageListingDescription: '',\r\n pageName: '',\r\n pageType: '',\r\n pageurl: '',\r\n primaryTopic: '',\r\n siteSection: '',\r\n sponsor: '',\r\n topicTags: '',\r\n publishedDate: '',\r\n readTime: null,\r\n },\r\n section: {\r\n title: '',\r\n option: '',\r\n },\r\n social: {\r\n sharedPlatform: '',\r\n },\r\n};\r\n\r\nexport const DigitalDataContext = createContext({\r\n digitalData: null,\r\n setDigitalData: null\r\n});\r\n\r\nfunction DigitalDataProvider({ children }) {\r\n const [digitalData, setDigitalData] = useState(defaultDigitalData);\r\n\r\n // [DEV ONLY] tracing data\r\n useEffect(() => {\r\n\r\n if (packageConfig?.config?.debugAnalytics) {\r\n logInDev(\r\n JSON.stringify(\r\n digitalData\r\n ));\r\n }\r\n\r\n if (canUseDOM) {\r\n window.digitalData = digitalData;\r\n }\r\n\r\n }, [digitalData]);\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n\r\nDigitalDataProvider.propTypes = {\r\n children: ChildrenPropTypes\r\n};\r\n\r\nexport default DigitalDataProvider;\r\n\r\nexport const DigitalDataConsumer = DigitalDataContext.Consumer;\r\n\r\nexport function withDigitalDataContext(\r\n WrappedComponent: React.ComponentType\r\n) {\r\n // Try to create a nice displayName for React Dev Tools.\r\n const displayName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\r\n\r\n const withDigitalDataContext: React.FC> = (props) => (\r\n \r\n {(value) => }\r\n \r\n );\r\n\r\n withDigitalDataContext.displayName = `withDigitalDataContext(${displayName})`;\r\n\r\n return withDigitalDataContext;\r\n}\r\n","import styled from 'styled-components';\r\nimport buttonSettings from '_containers/Theme/corporate/button'\r\nimport { button } from '_utils/styles';\r\n\r\nexport const BackToTopContainer = styled.div`\r\n position: relative;\r\n width: 100%;\r\n z-index: 2;\r\n`;\r\n\r\nexport const BackToTopButton = styled.button`\r\n ${button('slim', 'backToTop')}\r\n\r\n align-items: center;\r\n border-radius: ${Object.values(buttonSettings?.default?.borderRadius).map(corner => `${corner}px `)};\r\n display: inline-flex;\r\n left: 50%;\r\n position: absolute;\r\n top: 0;\r\n transform: translate(-50%, -50%);\r\n\r\n svg {\r\n margin-left: 10px;\r\n height: ${({ theme }) => theme.button.slim.icon.sm.h}px;\r\n width: ${({ theme }) => theme.button.slim.icon.sm.w}px;\r\n }\r\n`;\r\n","import { canUseDOM } from 'exenv';\r\nimport React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport Icon from '_components/Icon';\r\nimport { BackToTopButton, BackToTopContainer } from './StyledBackToTop';\r\n\r\nconst BackToTop: React.FC = () => {\r\n const [t] = useTranslation();\r\n\r\n const scrollToTop = () => {\r\n if (!canUseDOM) {\r\n return false;\r\n }\r\n window.scrollTo({ top: 0, behavior: 'smooth' });\r\n }\r\n\r\n return (\r\n \r\n \r\n {t('page-footer-back-to-top-label')}\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default BackToTop;\r\n","import styled from 'styled-components';\r\n\r\nimport {\r\n buttonReset,\r\n hideOnPrint,\r\n mq,\r\n safeFocusRemoval,\r\n} from '_utils/styles';\r\n\r\nexport const Button = styled.button`\r\n ${buttonReset}\r\n ${safeFocusRemoval}\r\n ${hideOnPrint}\r\n align-items: center;\r\n display: flex;\r\n height: 100%;\r\n justify-content: center;\r\n margin-left: auto;\r\n min-width: 64px;\r\n\r\n svg {\r\n width: 23px;\r\n }\r\n\r\n path {\r\n fill: ${({ theme }) => theme.searchMenu.searchMenuButton.pathFillColor};\r\n }\r\n\r\n &:focus {\r\n outline-color: ${({ theme }) => theme.searchMenu.searchMenuButton.focus};\r\n outline-offset: 2px;\r\n outline-width: 2px;\r\n outline-style: solid;\r\n position: relative;\r\n }\r\n\r\n ${mq('md')} {\r\n display: none;\r\n }\r\n`;\r\n\r\nexport const Label = styled.span`\r\n color: ${({ theme }) => theme.searchMenu.searchMenuButton.label.color};\r\n display: none;\r\n\r\n ${mq('md')} {\r\n display: block;\r\n }\r\n`;","import { compose } from 'ramda';\r\nimport React, { useState, useRef } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport SearchMenu from '_components/SearchMenu';\r\nimport { withModalContext } from '_containers/ModalContext'\r\nimport { Search } from '_utils/icons';\r\n\r\nimport { SearchMenuButtonProps } from './definitions';\r\n\r\nimport {\r\n Button,\r\n Label,\r\n} from './StyledSearchMenuButton';\r\n\r\nconst SEARCH_MODAL_ID = 'search';\r\n\r\nconst SearchMenuButton: React.FC = ({\r\n setModal,\r\n}) => {\r\n const [t] = useTranslation();\r\n const [enabled, setEnabled] = useState(true);\r\n const inputRef = useRef(null);\r\n\r\n return (\r\n {\r\n setEnabled(true);\r\n setModal({\r\n id: SEARCH_MODAL_ID,\r\n content: ,\r\n onClose: () => setModal(null),\r\n shouldHideCloseButton: true,\r\n closeOnBreakpoint: 'md',\r\n onActivate: () => {\r\n inputRef?.current?.focus();\r\n }\r\n });\r\n }}\r\n >\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default compose(withModalContext)(SearchMenuButton);\r\n","import styled from 'styled-components';\r\n\r\nimport { spacing } from '_utils/props';\r\nimport {\r\n svg,\r\n button,\r\n iconColorOnPrint,\r\n} from '_utils/styles';\r\n\r\nexport const SearchMenuContainer = styled.div`\r\n overflow: hidden;\r\n`;\r\n\r\nexport const SearchMenuHeader = styled.div`\r\n border-bottom: 1px solid ${({ theme }) => theme.searchMenu.searchMenuHeader.borderColor};\r\n\r\n ${({ theme }) => spacing({ theme, pl: 3, pr: 0, py: 1 })}\r\n`;\r\n\r\nexport const MainSearchWrapper = styled.div`\r\n align-items: center;\r\n display: flex;\r\n height: 48px;\r\n width: 100%;\r\n`;\r\n\r\nexport const CloseButton = styled.button`\r\n ${button('default', 'text')}\r\n\r\n align-items: center;\r\n border-radius: 0;\r\n display: flex;\r\n height: 100%;\r\n justify-content: center;\r\n margin: 0 8px;\r\n padding: 0 26px;\r\n width: 24px;\r\n`;\r\n\r\nexport const CloseIcon = styled.span`\r\n ${svg(14, 14)}\r\n flex: none;\r\n width: 19px;\r\n\r\n path {\r\n fill: ${({ theme }) => theme.searchMenu.closeIcon.pathFillColor};\r\n }\r\n\r\n ${iconColorOnPrint}\r\n`;","import { compose } from 'ramda';\r\nimport React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport MainSearch from '_components/MainSearch';\r\nimport { withModalContext } from '_containers/ModalContext';\r\nimport { Cross } from '_utils/icons';\r\n\r\nimport { SearchMenuProps } from './definitions';\r\n\r\nimport {\r\n CloseButton,\r\n CloseIcon,\r\n MainSearchWrapper,\r\n SearchMenuContainer,\r\n SearchMenuHeader,\r\n} from './StyledSearchMenu';\r\n\r\n// This is the mobile-only search menu for the page header\r\nconst SearchMenu: React.FC = ({\r\n modal,\r\n inputRef,\r\n}) => {\r\n const [t] = useTranslation();\r\n const mobileSearchPlaceholder = t('search-placeholder-text-mobile');\r\n\r\n const handleCloseSearchMenu = () => {\r\n modal.onClose();\r\n };\r\n\r\n const handleOnSubmit = () => {\r\n handleCloseSearchMenu();\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\nexport default compose(withModalContext)(SearchMenu);\r\n","import colors from './colorOptions';\r\n\r\nimport button from './button';\r\nimport link from './link';\r\n\r\nexport default {\r\n all: colors,\r\n background: {\r\n tint1: colors.neutralWhite,\r\n tint2: colors.neutral50,\r\n tint3: colors.neutral100,\r\n tint4: colors.neutral200,\r\n tint5: colors.neutral300,\r\n },\r\n button: button.colors,\r\n darkTheme: {\r\n background: {\r\n tint1: colors.neutralBlack,\r\n tint2: colors.neutral900,\r\n tint3: colors.neutral800,\r\n tint4: colors.neutral700,\r\n tint5: colors.neutral600,\r\n tint6: colors.neutral500,\r\n },\r\n text: {\r\n contrast: colors.neutral900,\r\n default: colors.neutral50,\r\n disabled: colors.neutral600,\r\n interactive1: colors.interactive500,\r\n interactive1Hover: colors.interactive600,\r\n nonessential: colors.neutral400,\r\n pressed: colors.neutral600,\r\n secondary: colors.neutral200,\r\n subtle: colors.neutral300,\r\n visited: colors.visited400,\r\n },\r\n ui: {\r\n divider: colors.neutral600,\r\n },\r\n },\r\n // Feature List is not showing on figma\r\n featureList: {\r\n cross: colors.error500,\r\n tick: colors.brandSecondary3,\r\n },\r\n form: {\r\n border: colors.neutral200,\r\n color: colors.neutral800,\r\n colorDisabled: colors.neutral300,\r\n disabled: colors.neutral50,\r\n error: colors.error500,\r\n focus: colors.interactive500,\r\n hover: colors.neutral800,\r\n },\r\n // Element is not showing on figma\r\n element: {\r\n danger: colors.error500,\r\n focused: colors.interactive500,\r\n neutralBlack: colors.neutralBlack,\r\n neutralWhite: colors.neutralWhite,\r\n primary: colors.brandPrimary1,\r\n primary2: colors.brandPrimary2,\r\n primary3: colors.brandPrimary3,\r\n secondary: colors.brandSecondary1,\r\n },\r\n icon: {\r\n demo: colors.interactive500,\r\n },\r\n interactiveCard: {\r\n border: colors.neutral200,\r\n focus: colors.interactive500,\r\n hover: colors.neutral800,\r\n selected: colors.interactive700,\r\n },\r\n interactiveCell: {\r\n focus: colors.interactive500,\r\n hover: colors.neutral50,\r\n pressed: colors.neutral200,\r\n selected: colors.neutral100,\r\n },\r\n link,\r\n messaging: {\r\n backgroundError: colors.error100,\r\n backgroundInfo: colors.information100,\r\n backgroundSuccess: colors.success100,\r\n backgroundWarning: colors.warning100,\r\n colorError: colors.error500,\r\n colorErrorDark: colors.error700,\r\n colorInfo: colors.information500,\r\n colorSuccess: colors.success500,\r\n colorSuccessDark: colors.success700,\r\n colorWarning: colors.warning500,\r\n colorWarningDark: colors.warning700,\r\n },\r\n // Modal is not showing on figma\r\n modal: {\r\n background: colors.brandPrimary1,\r\n close: {\r\n fill: colors.neutralWhite,\r\n fillHover: colors.neutralWhite,\r\n },\r\n container: {\r\n background: colors.brandPrimary3,\r\n },\r\n scrollThumb: {\r\n background: colors.brandPrimary1Dark,\r\n },\r\n },\r\n // Status is not showing on figma\r\n status: {\r\n error: colors.error500,\r\n info: colors.information500,\r\n warning: colors.warning500,\r\n },\r\n // TODO: Update table color\r\n table: {\r\n cell: {\r\n border: colors.neutralWhite,\r\n },\r\n head: {\r\n background: colors.brandPrimary1,\r\n color: colors.neutralWhite,\r\n },\r\n row: {\r\n background: colors.neutralWhite,\r\n backgroundAlt: colors.neutral50,\r\n },\r\n },\r\n text: {\r\n contrast: colors.neutral900,\r\n darkSubtle: colors.darkTextSubtle,\r\n darkTextSecondary: colors.darkTextSecondary,\r\n default: colors.neutral700,\r\n disabled: colors.neutral300,\r\n interactive1: colors.interactive600,\r\n interactive1Hover: colors.interactive700,\r\n nonessential: colors.neutral400,\r\n pressed: colors.neutral600,\r\n secondary: colors.neutral600,\r\n subtle: colors.neutral500,\r\n visited: colors.visited500,\r\n },\r\n ui: {\r\n accent1: colors.brandPrimary2,\r\n divider: colors.neutral200,\r\n },\r\n};\r\n","// import { endsWith } from '_utils/helpers/';\r\n// import * as R from 'ramda';\r\nimport { ComponentFields, Field } from '@sitecore-jss/sitecore-jss-react';\r\nimport { dateConverter } from '_utils/helpers';\r\nimport { normalizeJssField } from '_utils/helpers/jss';\r\nimport { SitecoreFieldValidator, SitecoreFieldValidatorCallback, SitecoreFieldValidatorResult } from './definitions';\r\n\r\nconst isObject = (obj: any) => {\r\n return obj instanceof Object && obj.constructor === Object;\r\n}\r\n\r\nexport const getProperty = (obj: any, path: string) => {\r\n if (!isObject(obj) || !path) return null;\r\n return path.split('.').reduce((acc, part) => {\r\n if (acc) {\r\n const prop = acc[part.replace(/\\[.*/, '')];\r\n const arrayIndex = part.replace(/^[^\\[]*(\\[|$)|\\]$/g, '');\r\n if (prop) {\r\n if (Array.isArray(prop)) {\r\n if (arrayIndex.match(/^[0-9]+$/)) {\r\n return prop[parseInt(arrayIndex)] || null;\r\n } else if (arrayIndex) {\r\n return prop[arrayIndex] || null;\r\n }\r\n }\r\n return prop;\r\n }\r\n }\r\n return null;\r\n }, obj);\r\n}\r\n\r\n// Will return true if the param passed is an object with at least one property and all properties have data\r\nconst validateObjectHasPropertiesWithData = (obj: object) => {\r\n if (!!obj && isObject(obj)) {\r\n var objValues = Object.values(obj);\r\n if (objValues.length > 0) {\r\n return objValues.every((prop) => !!prop);\r\n }\r\n }\r\n return false;\r\n}\r\n\r\nconst getFieldValue = (field: object) => {\r\n if (!!field) {\r\n const normalizedField = normalizeJssField(field);\r\n return isObject(normalizedField) ? normalizedField['value'] : field;\r\n }\r\n return '';\r\n}\r\n\r\nexport const isValidField: SitecoreFieldValidatorCallback = (field) => !!getFieldValue(field);\r\n\r\nexport const isValidIconReferenceField: SitecoreFieldValidatorCallback = (field) => !!field && !!field.targetItem && !!field.targetItem.name;\r\n\r\n// export const isValidJssField : SitecoreFieldValidatorCallback = (field) => !!field && !!field.jss && !!field.jss.value;\r\n\r\n// export const isValidJssFieldAndNotEmpty : SitecoreFieldValidatorCallback = (field) => !!field && !!field.jss && !!field.jss.value && field.jss.value !== '';\r\n\r\n// export const isValidMedia : SitecoreFieldValidatorCallback = (field) => isValidField(field) && !!getFieldValue(field).src && getFieldValue(field).src !== '';\r\n\r\n// export const isValidJssImage : SitecoreFieldValidatorCallback = (field) => isValidField(field) && !!getFieldValue(field).jss && !!getFieldValue(field).jss.src && getFieldValue(field).jss.src !== '';\r\n\r\nexport const isValidImage: SitecoreFieldValidatorCallback = (field) => {\r\n const fieldValue = getFieldValue(field);\r\n return isValidField(field) &&\r\n !!fieldValue.src &&\r\n fieldValue.src !== '' &&\r\n fieldValue.class !== 'scEmptyImage';\r\n}\r\n\r\nexport const isValidLink: SitecoreFieldValidatorCallback = (field) => {\r\n const fieldValue = getFieldValue(field);\r\n return isValidField(field) && !!fieldValue.href && !(fieldValue.href.toString().match(/:\\/\\/$/));\r\n}\r\n\r\nexport const isValidNavLink: SitecoreFieldValidatorCallback = (field) =>\r\n field?.link?.url.startsWith('/') || isValidUrl(field?.link?.url)\r\n\r\nexport const isValidUrl: SitecoreFieldValidatorCallback = (field) =>\r\n isValidField(field) && !!(getFieldValue(field).toString().match(/^https?:\\/\\//i));\r\n\r\nexport const isValidUrlWithSSL: SitecoreFieldValidatorCallback = (field) =>\r\n isValidField(field) && !!(getFieldValue(field).toString().match(/^https:\\/\\//i));\r\n\r\n// export const isValidReadMore: SitecoreFieldValidatorCallback = (field) => isValidLink(field) && getFieldValue(field).text !== '';\r\n\r\nexport const isValidDate: SitecoreFieldValidatorCallback = (field) => {\r\n // If the field is not set, return false\r\n const defaultSitecoreDateStr = '00010101T000000Z';\r\n if (!isValidField(field) || getFieldValue(field).toString() === defaultSitecoreDateStr) return false;\r\n\r\n // Check the value is a valid date\r\n const rawDateStr = getFieldValue(field).toString().replace('Z', '');\r\n const parsedDate = dateConverter(rawDateStr);\r\n return parsedDate !== null;\r\n}\r\n\r\nexport const isValidNumber: SitecoreFieldValidatorCallback = (field) =>\r\n isValidField(field) && !Number.isNaN(parseFloat(getFieldValue(field)?.toString()));\r\n\r\nexport const isValidInteger: SitecoreFieldValidatorCallback = (field) =>\r\n isValidNumber(field) && Number.isInteger(parseFloat(getFieldValue(field)?.toString()));\r\n\r\nexport const isValidPercentage: SitecoreFieldValidatorCallback = (field) => {\r\n if (!isValidNumber(field)) return false;\r\n\r\n var num = parseFloat(getFieldValue(field)?.toString());\r\n if (Number.isFinite(num) && num >= 0 && num <= 100) return true;\r\n return false;\r\n}\r\n\r\n// export const isValidLookup : SitecoreFieldValidatorCallback = (field) => !!field && !!field.targetItem && !!field.targetItem.lookupValue;\r\n\r\n// export const isValidCategoryLookup: SitecoreFieldValidatorCallback = (field) => !!field && !!field.targetItem && !!field.targetItem.tagName && !!field.targetItem.tagName.value;\r\n\r\n// export const isImageUsingStandardValue: SitecoreFieldValidatorCallback = (image) => {\r\n// const field = typeof image.jss !== 'undefined' ? image.jss : image;\r\n\r\n// // field has no value if user has cleared the placeholder image from the backend\r\n// return image.containsStandardValue === true || Object.keys(getFieldValue(field)).length === 0;\r\n// };\r\n\r\n// export const isImagePlaceholder: SitecoreFieldValidatorCallback = (image) =>{\r\n// try {\r\n// return R.contains('/placeholders/',image.value.src);\r\n// } catch (e) {\r\n// return false;\r\n// }\r\n// }\r\n\r\nexport const hasDataSource = (props: { componentProps: any }): boolean => {\r\n var hasComponentProps = !!props?.componentProps && isObject(props.componentProps)\r\n var hasRenderingWithDataSourceId = !!props?.componentProps?.rendering?.dataSource;\r\n var hasFields = !!props?.componentProps?.rendering?.fields && isObject(props.componentProps.rendering.fields);\r\n var isGraphQL = !!props?.componentProps?.rendering?.fields?.data && isObject(props.componentProps.rendering.fields.data) && !props.componentProps.rendering.fields.data.value;\r\n var hasData = validateObjectHasPropertiesWithData(isGraphQL ? props.componentProps.rendering.fields.data : props.componentProps.rendering.fields);\r\n\r\n return hasComponentProps && hasRenderingWithDataSourceId && hasFields && hasData;\r\n}\r\n\r\nexport const hasValidFields = (props: { componentProps: any, validators: SitecoreFieldValidator[] }): boolean => {\r\n return getFieldValidationResults(props)?.every((v) => v.isValid) === true;\r\n}\r\n\r\nexport const getFieldValidationResults = (props: { componentProps: any, validators: SitecoreFieldValidator[] }): SitecoreFieldValidatorResult[] => {\r\n let validationResults: SitecoreFieldValidatorResult[] = [];\r\n\r\n // Check we have fields and validators\r\n if (isObject(props.componentProps) && props.validators) {\r\n\r\n // Run each of the validators against the field value\r\n props.validators.forEach((fieldValidator) => {\r\n const fieldPath = fieldValidator?.field;\r\n if (fieldPath) {\r\n let prop = getProperty(props.componentProps, fieldPath);\r\n // rare situation where need to check both 'datasource' and 'contextItem'\r\n if (fieldValidator?.checkContextItem) {\r\n prop = getProperty(props.componentProps, fieldPath) || getProperty(props.componentProps, fieldPath?.replace('datasource', 'contextItem'));\r\n }\r\n\r\n let fields = prop;\r\n if (!Array.isArray(prop)) {\r\n fields = [prop];\r\n } else if (\r\n fieldValidator.minLength && fields.length < fieldValidator.minLength ||\r\n fieldValidator.maxLength && fields.length > fieldValidator.maxLength) {\r\n validationResults.push({\r\n field: fields,\r\n isValid: false,\r\n error: fieldValidator.errorMessage,\r\n validator: fieldValidator\r\n });\r\n }\r\n fields.forEach((fieldRaw, index) => {\r\n const field = normalizeJssField(fieldRaw);\r\n const hasValue = isValidField(field) || isValidIconReferenceField(field);\r\n let path = !Array.isArray(prop) ? fieldPath : `${fieldPath}[${index + 1}]`;\r\n let isValid = true;\r\n let error = `${fieldValidator.errorMessage ? fieldValidator.errorMessage + ' - ' : ''}${path}`;\r\n\r\n if (!hasValue && fieldValidator.required) {\r\n // Set an error as the required field is missing a value\r\n error += ' is missing';\r\n isValid = false;\r\n } else if (fieldValidator.validators) {\r\n // Set an error if not all the validators return true\r\n if (!fieldValidator.validators.every((v) => v?.call(this, field, props.componentProps)) === true) {\r\n error += ' is invalid';\r\n isValid = false;\r\n }\r\n }\r\n\r\n // Return the validation result for each validator\r\n validationResults.push({\r\n field: field,\r\n isValid: isValid,\r\n error: !isValid ? error : '',\r\n validator: fieldValidator\r\n });\r\n });\r\n }\r\n });\r\n }\r\n\r\n return validationResults.length > 0 ? validationResults : null;\r\n}\r\n","import React, { createContext, useState, useEffect } from 'react';\r\nimport { usePrevious } from '_utils/hooks';\r\nimport { Optionalize } from '_utils/types';\r\nimport { ChildrenPropTypes } from '../../types';\r\n\r\nexport interface MenuContextProps {\r\n menuActive: boolean;\r\n setMenuActive: (active: boolean) => void;\r\n activeMenu: number;\r\n setActiveMenu: (active: number) => void;\r\n}\r\n\r\nconst MenuContext = createContext({\r\n menuActive: false,\r\n setMenuActive: null,\r\n activeMenu: 0,\r\n setActiveMenu: null\r\n});\r\n\r\nfunction MenuProvider({ children }) {\r\n // state\r\n const [menuActive, setMenuActive] = useState(false);\r\n const [activeMenu, setActiveMenu] = useState(0);\r\n const prevMenuActive = usePrevious(menuActive);\r\n\r\n useEffect(() => {\r\n if (menuActive && !prevMenuActive) {\r\n document.body.classList.add('menu-active');\r\n } else if (!menuActive && prevMenuActive) {\r\n document.body.classList.remove('menu-active');\r\n }\r\n\r\n return () => {\r\n document.body.classList.remove('menu-active');\r\n };\r\n }, [menuActive, prevMenuActive]);\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n\r\nMenuProvider.propTypes = {\r\n children: ChildrenPropTypes\r\n};\r\n\r\nexport default MenuProvider;\r\n\r\nexport const MenuConsumer = MenuContext.Consumer;\r\n\r\nexport function withMenuContext(\r\n WrappedComponent: React.ComponentType\r\n) {\r\n // Try to create a nice displayName for React Dev Tools.\r\n const displayName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\r\n\r\n const withMenuContext: React.FC> = (props) => (\r\n \r\n {(value) => }\r\n \r\n );\r\n\r\n withMenuContext.displayName = `withMenuContext(${displayName})`;\r\n\r\n return withMenuContext;\r\n}\r\n","import colors from './colorOptions';\r\nimport { FONT_FAMILY_TEXT } from './global';\r\n\r\nexport default {\r\n default: {\r\n borderRadius: {\r\n topLeft: 9999,\r\n topRight: 9999,\r\n bottomLeft: 9999,\r\n bottomRight: 9999\r\n },\r\n // (same as h5)\r\n fontSize: {\r\n sm: 16,\r\n md: 16\r\n },\r\n lineHeight: {\r\n sm: 24,\r\n md: 24\r\n },\r\n padding: {\r\n x: 24,\r\n y: 12\r\n },\r\n icon: {\r\n sm: {\r\n w: 16,\r\n h: 16\r\n },\r\n md: {\r\n w: 16,\r\n h: 16\r\n }\r\n },\r\n fontFamily: FONT_FAMILY_TEXT\r\n },\r\n slim: {\r\n borderRadius: {\r\n topLeft: 9999,\r\n topRight: 9999,\r\n bottomLeft: 9999,\r\n bottomRight: 9999\r\n },\r\n fontSize: {\r\n sm: 14,\r\n md: 14\r\n },\r\n lineHeight: {\r\n sm: 24,\r\n md: 24\r\n },\r\n padding: {\r\n x: 16,\r\n y: 4\r\n },\r\n icon: {\r\n sm: {\r\n w: 20,\r\n h: 20\r\n },\r\n md: {\r\n w: 20,\r\n h: 20\r\n }\r\n },\r\n fontFamily: FONT_FAMILY_TEXT\r\n },\r\n iconOnly: {\r\n borderRadius: {\r\n topLeft: 0,\r\n topRight: 0,\r\n bottomLeft: 0,\r\n bottomRight: 0\r\n },\r\n fontSize: {\r\n sm: 16,\r\n md: 16\r\n },\r\n lineHeight: {\r\n sm: 16,\r\n md: 16\r\n },\r\n padding: {\r\n x: 16,\r\n y: 16\r\n },\r\n icon: {\r\n sm: {\r\n w: 20,\r\n h: 20\r\n },\r\n md: {\r\n w: 24,\r\n h: 24\r\n }\r\n },\r\n fontFamily: FONT_FAMILY_TEXT,\r\n },\r\n colors: {\r\n danger: {\r\n background: colors.error500,\r\n backgroundActive: '',\r\n backgroundFocus: '',\r\n backgroundHover: colors.error700,\r\n border: '',\r\n borderActive: '',\r\n borderFocus: colors.interactive200,\r\n borderHover: colors.brandSecondary3,\r\n borderHoverWidth: 0,\r\n borderWidth: 0,\r\n color: colors.neutralWhite,\r\n colorActive: '',\r\n colorHover: colors.neutralWhite\r\n },\r\n ghost: {\r\n background: colors.transparent,\r\n backgroundActive: '',\r\n backgroundFocus: '',\r\n backgroundHover: colors.neutral100,\r\n border: colors.transparent,\r\n borderActive: '',\r\n borderFocus: colors.interactive200,\r\n borderHover: colors.transparent,\r\n borderHoverWidth: 0,\r\n borderWidth: 0,\r\n color: colors.brandPrimary1,\r\n colorActive: '',\r\n colorHover: colors.brandPrimary1\r\n },\r\n primary: {\r\n background: colors.brandPrimary1,\r\n backgroundActive: colors.neutral600,\r\n backgroundFocus: '',\r\n backgroundHover: colors.brandPrimary1Dark,\r\n border: colors.brandPrimary1,\r\n borderActive: colors.neutral600,\r\n borderFocus: colors.interactive200,\r\n borderHover: colors.brandPrimary1Dark,\r\n borderHoverWidth: 0,\r\n borderWidth: 0,\r\n color: colors.neutralWhite,\r\n colorActive: '',\r\n colorHover: colors.neutralWhite\r\n },\r\n secondary: {\r\n background: colors.brandPrimary3,\r\n backgroundActive: colors.neutral600,\r\n backgroundFocus: '',\r\n backgroundHover: colors.brandPrimary3Dark,\r\n border: colors.brandPrimary3Dark,\r\n borderActive: '',\r\n borderFocus: colors.interactive200,\r\n borderHover: colors.brandPrimary3Dark,\r\n borderHoverWidth: 0,\r\n borderWidth: 0,\r\n color: colors.neutralWhite,\r\n colorActive: '',\r\n colorHover: colors.neutralWhite\r\n },\r\n secondaryDark: {\r\n background: colors.brandPrimary2,\r\n backgroundActive: colors.neutral600,\r\n backgroundFocus: '',\r\n backgroundHover: colors.brandPrimary2Dark,\r\n border: colors.brandPrimary2,\r\n borderActive: '',\r\n borderFocus: colors.interactive200,\r\n borderHover: colors.brandSecondary3Dark,\r\n borderHoverWidth: 0,\r\n borderWidth: 0,\r\n color: colors.brandPrimary3,\r\n colorActive: '',\r\n colorHover: colors.brandPrimary3\r\n },\r\n tag: {\r\n background: colors.neutralWhite,\r\n backgroundActive: '',\r\n backgroundFocus: '',\r\n backgroundHover: colors.interactive500,\r\n border: colors.interactive500,\r\n borderActive: '',\r\n borderFocus: colors.interactive200,\r\n borderHover: colors.transparent,\r\n borderHoverWidth: 0,\r\n borderWidth: 1,\r\n color: colors.interactive500,\r\n colorActive: '',\r\n colorHover: colors.neutralWhite\r\n },\r\n tertiary: {\r\n background: colors.transparent,\r\n backgroundActive: '',\r\n backgroundFocus: '',\r\n backgroundHover: '',\r\n border: colors.brandPrimary3,\r\n borderActive: '',\r\n borderFocus: colors.interactive200,\r\n borderHover: '',\r\n borderHoverWidth: 3,\r\n borderWidth: 1,\r\n color: colors.brandPrimary3,\r\n colorActive: '',\r\n colorHover: colors.brandPrimary3\r\n },\r\n announcementTertiary: {\r\n background: colors.transparent,\r\n backgroundActive: '',\r\n backgroundFocus: '',\r\n backgroundHover: '',\r\n border: colors.neutral900,\r\n borderActive: '',\r\n borderFocus: colors.interactive200,\r\n borderHover: '',\r\n borderHoverWidth: 3,\r\n borderWidth: 1,\r\n color: colors.neutral900,\r\n colorHover: colors.neutral900\r\n },\r\n tertiaryDark: {\r\n background: colors.transparent,\r\n backgroundActive: '',\r\n backgroundFocus: '',\r\n backgroundHover: '',\r\n border: colors.neutralWhite,\r\n borderActive: '',\r\n borderFocus: colors.interactive200,\r\n borderHover: colors.neutralWhite,\r\n borderHoverWidth: 3,\r\n borderWidth: 1,\r\n color: colors.neutralWhite,\r\n colorActive: '',\r\n colorHover: colors.neutralWhite\r\n },\r\n text: {\r\n background: colors.transparent,\r\n backgroundActive: '',\r\n backgroundFocus: '',\r\n backgroundHover: colors.transparent,\r\n border: colors.transparent,\r\n borderActive: '',\r\n borderFocus: colors.interactive200,\r\n borderHover: colors.transparent,\r\n borderHoverWidth: 0,\r\n borderWidth: 0,\r\n color: colors.brandSecondary2,\r\n colorActive: '',\r\n colorHover: colors.brandSecondary3Dark\r\n },\r\n inTheBlack: {\r\n background: colors.brandSecondary3,\r\n backgroundActive: colors.neutral600,\r\n backgroundFocus: '',\r\n backgroundHover: colors.brandSecondary3Dark,\r\n border: colors.transparent,\r\n borderActive: '',\r\n borderFocus: colors.interactive200,\r\n borderHover: colors.transparent,\r\n borderHoverWidth: 0,\r\n borderWidth: 0,\r\n color: colors.neutralBlack,\r\n colorActive: colors.neutralWhite,\r\n colorHover: colors.neutralBlack,\r\n },\r\n backToTop: {\r\n background: colors.brandPrimary1,\r\n backgroundActive: colors.neutral600,\r\n backgroundFocus: '',\r\n backgroundHover: colors.brandPrimary1Dark,\r\n border: colors.brandPrimary1,\r\n borderActive: colors.neutral600,\r\n borderFocus: colors.interactive200,\r\n borderHover: colors.brandPrimary1Dark,\r\n borderHoverWidth: 0,\r\n borderWidth: 0,\r\n color: colors.neutralWhite,\r\n colorActive: '',\r\n colorHover: colors.neutralWhite\r\n },\r\n }\r\n}\r\n","export interface IPropList {\r\n [key: string]: string[];\r\n}\r\n\r\nexport const isPlainValue = (value: any): boolean =>\r\n typeof value === 'string' || typeof value === 'number';\r\n\r\nexport const isObject = (value: any) => typeof value === 'object' && value !== null;\r\n","import { isPlainValue, isObject } from '_utils/props/';\r\nimport mq, { getZeroMediaQuery, getBreakpointKeys } from '_utils/styles/mq';\r\nimport { IPropList } from '../types';\r\n\r\nexport interface IHelperOptions {\r\n getValue?: (value: any, property: string, theme: any) => any;\r\n applyValue?: (\r\n SUPPORTED_PROPS: IPropList,\r\n theme: any,\r\n property: string,\r\n value?: any,\r\n breakpoint?: string\r\n ) => string[];\r\n getCssString?: (css: string | string[], breakpoint?: string) => string;\r\n}\r\n/**\r\n * get media query properties\r\n * @param value component props\r\n * @returns Array. property keys that match breakpoints\r\n */\r\nconst getMediaQueries = (theme: any, value: any): string[] => {\r\n if (!isObject(value)) {\r\n return [];\r\n }\r\n return getBreakpointKeys(value);\r\n};\r\n\r\nconst defaultGetValue = (props: any, property: string, theme?: any) => props ? props[property] : undefined;\r\n\r\n// default implementation for applying prop/value to get css\r\nconst defaultApplyValue = (\r\n SUPPORTED_PROPS: IPropList,\r\n theme: any,\r\n property: string,\r\n value?: any,\r\n breakpoint?: string,\r\n config?: any\r\n): string[] => SUPPORTED_PROPS[property].map((prop) => `${prop}: ${value};`);\r\n\r\n// default implementation for wrapping css partials with media queries\r\nexport const defaultGetCssString = (css: string | string[], breakpoint?: string): string => {\r\n // might get array of css partials, convert to string\r\n if (Array.isArray(css)) {\r\n css = css.join(' ');\r\n }\r\n\r\n return !breakpoint || breakpoint === getZeroMediaQuery() ? css : `${mq(breakpoint)} { ${css} }`;\r\n};\r\n\r\nconst defaultOptions = {\r\n getValue: defaultGetValue,\r\n applyValue: defaultApplyValue,\r\n getCssString: defaultGetCssString\r\n};\r\n\r\nexport default (\r\n SUPPORTED_PROPS: IPropList,\r\n { theme, config = undefined, ...rest },\r\n options?: IHelperOptions\r\n) =>\r\n Object.keys(rest)\r\n .filter((key) => Object.keys(SUPPORTED_PROPS).indexOf(key) > -1)\r\n .reduce((prev, property) => {\r\n const { getValue, applyValue, getCssString } = { ...defaultOptions, ...options };\r\n\r\n const value = getValue(rest, property, theme);\r\n\r\n // case 1. simple value to applied without media queries\r\n\r\n if (isPlainValue(value)) {\r\n const css: string[] = applyValue(SUPPORTED_PROPS, theme, property, value, undefined, config);\r\n return prev.concat(getCssString(css, undefined));\r\n }\r\n\r\n // case 2. value is object containing values keyed by media queries\r\n\r\n const mediaQueries: string[] = getMediaQueries(theme, value);\r\n return prev.concat(\r\n ...mediaQueries.map((breakpoint) => {\r\n const css: string[] = applyValue(\r\n SUPPORTED_PROPS,\r\n theme,\r\n property,\r\n value[breakpoint],\r\n breakpoint,\r\n config\r\n );\r\n return getCssString(css, breakpoint);\r\n })\r\n );\r\n }, [])\r\n .join(' ');\r\n","import { IPropList } from \"..\";\r\nimport generateHelper from '../generateHelper';\r\n\r\nconst SUPPORTED_PROPS: IPropList = {\r\n color: ['color'],\r\n backgroundColor: ['background-color'],\r\n opacity: ['opacity']\r\n};\r\n\r\nconst getValue = (propValue, property, { colors }) => {\r\n if (property === 'opacity') {\r\n return propValue;\r\n }\r\n\r\n const colorArgs = propValue.split('.');\r\n const firstKey = colorArgs.shift();\r\n\r\n const color = colorArgs.reduce((acc, curr) => acc[curr], colors[firstKey]);\r\n\r\n return typeof color === 'undefined' ? propValue : color;\r\n};\r\n\r\nexport default (props: any) => generateHelper(SUPPORTED_PROPS, props, { getValue });\r\n","import { warnInDev } from '_utils/helpers/dev';\r\nimport mq, { getZeroMediaQuery, getBreakpointKeys } from '_utils/styles/mq';\r\nimport { IPropList } from \"..\";\r\nimport generateHelper from '../generateHelper';\r\n\r\nconst supportedProps: IPropList = {\r\n margin: ['margin'],\r\n m: ['margin'],\r\n marginX: ['margin-left', 'margin-right'],\r\n mx: ['margin-left', 'margin-right'],\r\n marginY: ['margin-top', 'margin-bottom'],\r\n my: ['margin-top', 'margin-bottom'],\r\n marginTop: ['margin-top'],\r\n mt: ['margin-top'],\r\n marginBottom: ['margin-bottom'],\r\n mb: ['margin-bottom'],\r\n marginLeft: ['margin-left'],\r\n ml: ['margin-left'],\r\n marginRight: ['margin-right'],\r\n mr: ['margin-right'],\r\n padding: ['padding'],\r\n p: ['padding'],\r\n paddingX: ['padding-left', 'padding-right'],\r\n px: ['padding-left', 'padding-right'],\r\n paddingY: ['padding-top', 'padding-bottom'],\r\n py: ['padding-top', 'padding-bottom'],\r\n paddingTop: ['padding-top'],\r\n pt: ['padding-top'],\r\n paddingBottom: ['padding-bottom'],\r\n pb: ['padding-bottom'],\r\n paddingLeft: ['padding-left'],\r\n pl: ['padding-left'],\r\n paddingRight: ['padding-right'],\r\n pr: ['padding-right'],\r\n};\r\n\r\nconst invalidValue = (theme: any, breakpoint: string, value: any): string => {\r\n if (\r\n theme &&\r\n theme.responsiveSpacing &&\r\n theme.responsiveSpacing[breakpoint] &&\r\n Object.prototype.hasOwnProperty.call(theme.responsiveSpacing[breakpoint], value)\r\n ) {\r\n return undefined;\r\n }\r\n\r\n return `could not find spacing for value (${value}) at breakpoint '${breakpoint}'`;\r\n};\r\n\r\n/*\r\n * @private\r\n */\r\nexport const applyValue = (\r\n supportedProps: IPropList,\r\n theme: any,\r\n property: string,\r\n value: string | number,\r\n breakpoint?: string,\r\n config?: any\r\n) => {\r\n if (typeof value !== 'string' && typeof value !== 'number') {\r\n warnInDev(`invalid spacing of type (${typeof value}) ignored for (${property})`);\r\n return [];\r\n }\r\n\r\n // // dont process non numeric values - just apply\r\n if (Number.isNaN(Number(value))) {\r\n return supportedProps[property].map((prop) => `${prop}: ${value};`);\r\n }\r\n\r\n // early exit for 0\r\n if (Number(value) === 0) {\r\n return supportedProps[property].map((prop) => `${prop}: 0;`);\r\n }\r\n\r\n // breakpoint is undefined value is plain value\r\n // eg { margin: 2 } as opposed to { margin: { xs: 1, md : 2} }\r\n // we handle it specially here by auto applying breakpoint as per\r\n // responsive spacing values defined in the theme\r\n\r\n const factor = config?.factor || 1;\r\n\r\n let sign = 1;\r\n\r\n const negativeMatch = /^-(\\d+)$/.exec(String(value));\r\n // check for negative value\r\n if (negativeMatch) {\r\n sign = -1;\r\n value = negativeMatch[1];\r\n }\r\n\r\n if (breakpoint === undefined) {\r\n // get breakpoints defined by theme\r\n const mediaQueries = getBreakpointKeys(theme.responsiveSpacing);\r\n\r\n return mediaQueries.map((breakpoint) => {\r\n const invalid = invalidValue(theme, breakpoint, value);\r\n\r\n if (invalid) {\r\n // throwInDev(invalid);\r\n warnInDev(invalid);\r\n return '';\r\n }\r\n\r\n const val = factor * sign * Number(theme.responsiveSpacing[breakpoint][value]);\r\n\r\n // convert to css to string so we can wrap in mq\r\n const css: string = supportedProps[property].map((prop) => `${prop}: ${val}px;`).join(' ');\r\n\r\n return !breakpoint || breakpoint === getZeroMediaQuery()\r\n ? css\r\n : `${mq(breakpoint)} { ${css} }`;\r\n });\r\n }\r\n\r\n // if we this far, a breakpoint was specified\r\n // in props e.g. { margin: { xs: 1, md : 2} }\r\n const allBreakpointKeys = getBreakpointKeys();\r\n const spacingBreakpointKeys = getBreakpointKeys(theme.responsiveSpacing);\r\n\r\n // make sure breakpoint is valid and in responsive spacing table\r\n // if possible fall back to earlier breakpoint's value\r\n const breakpointIndex = allBreakpointKeys.indexOf(breakpoint);\r\n const spacingBPIndex = spacingBreakpointKeys.indexOf(breakpoint);\r\n\r\n if (breakpointIndex === -1) {\r\n return [];\r\n }\r\n if (spacingBPIndex === -1) {\r\n // breakpoint is valid, but not in responsive spacing table, fall back to next closest\r\n let index = breakpointIndex;\r\n let fallbackBreakpoint;\r\n while (index > -1) {\r\n index--;\r\n fallbackBreakpoint = allBreakpointKeys[index];\r\n if (spacingBreakpointKeys.indexOf(fallbackBreakpoint) > -1) {\r\n break;\r\n }\r\n }\r\n\r\n // warnInDev(\r\n // `breakpoint '${breakpoint}' is not defined in spacing. Will use closest previous breakpoint '${fallbackBreakpoint}' in applying '${property}' of (${value})`\r\n // );\r\n\r\n // replace requested breakpoint with fallback\r\n breakpoint = fallbackBreakpoint;\r\n }\r\n\r\n const invalid = invalidValue(theme, breakpoint, value);\r\n\r\n if (invalid) {\r\n // throwInDev(invalid);\r\n warnInDev(invalid);\r\n return [];\r\n }\r\n\r\n return supportedProps[property].map(\r\n (prop) => `${prop}: ${theme.responsiveSpacing[breakpoint][value]}px;`\r\n );\r\n};\r\n\r\n/*\r\n * spacing helper generates spacing styles for components\r\n *\r\n * Basic usage:\r\n *\r\n * using component properties:\r\n *\r\n * \r\n *\r\n * OR styled components interpolation:\r\n *\r\n * const styles = css`${spacing({ theme, mt: 3, mb : 4 })}`\r\n *\r\n * @see SUPPORTED_PROPERTIES for valid properties and aliases.\r\n *\r\n * margin-top: 16px; @media (min-width: 768px) { margin-top: 24px; }\r\n * margin-bottom: 16px; @media (min-width: 768px) { margin-bottom: 32px; }\r\n *\r\n * Spacing helper uses settings under 'spacing' key in theme:\r\n * @see src/containers/Theme/theme\r\n *\r\n * Plain values such as mt:2 will retrieve and apply spacing as per the breakpoints set out\r\n * in theme's spacing table\r\n *\r\n * Note the zero breakpoint ('xs') will be used as the base style (i.e. not wrapped in media query)\r\n *\r\n * Custom values can be used by adding 'px' to value.\r\n *\r\n * Custom values can be provided under breakpoint keys:\r\n *\r\n * Important: If specifying breakpoints in properties, you must\r\n * supply the lowest breakpoint ('xs') to ensure base styles are created.\r\n *\r\n * \r\n *\r\n * generates:\r\n * margin-top: 10px; @media (min-width: 576px) { margin-top: 20px; }\r\n *\r\n */\r\nexport default (props: any) => generateHelper(supportedProps, props, { applyValue });\r\n","import { IPropList } from \"..\";\r\nimport generateHelper from '../generateHelper';\r\n\r\nconst SUPPORTED_PROPS: IPropList = {\r\n alignSelf: ['align-self'],\r\n alignItems: ['align-items'],\r\n alignContent: ['align-content'],\r\n justifyContent: ['justify-content'],\r\n order: ['order'],\r\n flexDirection: ['flex-direction'],\r\n flexWrap: ['flex-wrap'],\r\n flex: ['flex'],\r\n flexGrow: ['flex-grow'],\r\n flexShrink: ['flex-shrink']\r\n};\r\n\r\nconst getValue = (props, property) => props ? props[property] : undefined;\r\n\r\nexport default (props) => generateHelper(SUPPORTED_PROPS, props, { getValue });\r\n","import { IPropList } from \"..\";\r\nimport generateHelper from '../generateHelper';\r\n\r\nconst SUPPORTED_PROPS: IPropList = {\r\n display: ['display'],\r\n width: ['width'],\r\n w: ['width'],\r\n minWidth: ['min-width'],\r\n maxWidth: ['max-width'],\r\n height: ['height'],\r\n h: ['height'],\r\n minHeight: ['min-height'],\r\n maxHeight: ['max-height']\r\n};\r\n\r\nexport default (props) => generateHelper(SUPPORTED_PROPS, props);\r\n","import { IPropList } from \"..\";\r\nimport generateHelper from '../generateHelper';\r\n\r\nconst SUPPORTED_PROPS: IPropList = {\r\n transition: ['transition']\r\n};\r\n\r\nconst getValue = ({ transition, timing }, _, { motion }) => {\r\n const transitionProperty = transition ? `${transition} ` : '';\r\n const transitionTiming = timing ? `${motion.timing[timing]} ` : `${motion.timing.default} `;\r\n\r\n return `${transitionProperty}${transitionTiming}${motion.ease}`;\r\n};\r\n\r\nexport default (props) => generateHelper(SUPPORTED_PROPS, props, { getValue });\r\n","import { IPropList } from \"..\";\r\nimport generateHelper from '../generateHelper';\r\n\r\nconst SUPPORTED_PROPS: IPropList = {\r\n textAlign: ['text-align']\r\n};\r\n\r\nexport default (props) => generateHelper(SUPPORTED_PROPS, props);\r\n","import colors from '../../containers/Theme/intheblack/colors';\r\n\r\nexport default {\r\n carousel: {\r\n background: colors.background.tint1,\r\n },\r\n item: {\r\n card: {\r\n borderRadius: 4,\r\n background: colors.background.tint1,\r\n boxShadow: '0px 1px 1px rgba(0,0,0,0.08),0px 2px 4px rgba(0,0,0,0.12)',\r\n hoverBoxShadow: '0px 1px 4px rgb(0 0 0 / 8%), 0px 6px 16px rgb(0 0 0 / 12%)',\r\n },\r\n tags: {\r\n color: colors.text.subtle,\r\n background: colors.background.tint3,\r\n },\r\n title: {\r\n \r\n },\r\n htmlContent: {\r\n color: colors.text.subtle,\r\n }\r\n }\r\n};\r\n\r\nexport const darkMode = {};","import colors from '_containers/Theme/intheblack/colors';\r\n\r\nexport default {\r\n borderColor: colors.ui.divider,\r\n color: colors.text.default,\r\n linkWrapper: {\r\n color: colors.all.neutralWhite\r\n },\r\n linkButton: {\r\n pathFillColor: colors.all.neutralWhite\r\n },\r\n outline: {\r\n focusColor: colors.interactiveCard.focus\r\n }\r\n};","import colors from '_containers/Theme/intheblack/colors';\r\n\r\nexport default {\r\n action: colors.all.brandPrimary1,\r\n attributeIcon: colors.all.neutral700,\r\n background: 'transparent',\r\n cardBackground: colors.all.neutralWhite,\r\n border: `1px solid ${colors.all.neutral200}`,\r\n borderDashed: `0px dashed ${colors.all.neutral200}`,\r\n borderDashedHover: `0px dashed ${colors.all.neutral800}`,\r\n borderFocus: `2px solid ${colors.all.interactive200}`,\r\n borderHover: 'none',\r\n borderRadius: 4,\r\n borderSelected: 'none',\r\n boxShadow: null,\r\n boxShadowHover: null,\r\n ctaColor: 'tertiary',\r\n highlightColour: {\r\n campaign: colors.all.brandPrimary1,\r\n category: colors.all.brandPrimary1,\r\n contentDetail: colors.all.brandPrimary1,\r\n inPractice: colors.all.brandSecondary2,\r\n inTheBlack: colors.all.brandSecondary3,\r\n podcast: colors.all.brandPrimary2,\r\n textOnly: colors.all.brandPrimary1,\r\n }\r\n};\r\n\r\nexport const darkMode = {\r\n background: colors.all.brandPrimary3,\r\n headingColor: colors.all.neutralWhite,\r\n color: colors.all.neutralWhite,\r\n ctaColor: 'tertiaryDark',\r\n};\r\n","import colors from '_containers/Theme/intheblack/colors';\r\nimport {\r\n articleBody,\r\n headingH4,\r\n headingH5\r\n} from '_utils/styles';\r\n\r\nexport default {\r\n base: {\r\n maxWidth: 100\r\n },\r\n blockquote: {\r\n background: colors.all.brandPrimary2,\r\n heading: headingH4,\r\n },\r\n externalLink: {\r\n icon: {\r\n afterColor: colors.all.interactive600,\r\n hoverColor: colors.all.neutralWhite\r\n }\r\n },\r\n list: {\r\n textbody: articleBody,\r\n marker: {\r\n content: \"\\\\25CB\",\r\n fontSize: '14px',\r\n color: colors.element.primary,\r\n },\r\n background: colors.element.primary,\r\n color: colors.all.darkTextContrast,\r\n fontSize: headingH5\r\n },\r\n paragraph: articleBody,\r\n orderedList: {\r\n bullet: {\r\n fontSize: '24px',\r\n top: 0\r\n },\r\n lineHeight: 30,\r\n md: {\r\n lineHeight: 32,\r\n },\r\n padding: '0 0 0 28px',\r\n },\r\n richTextWithImage: {\r\n captionColor: colors.all.neutral500,\r\n },\r\n table: {\r\n head: {\r\n background: colors.table.head.background,\r\n color: colors.table.head.color,\r\n },\r\n row: {\r\n background: colors.table.row.background,\r\n backgroundAlt: colors.table.row.backgroundAlt,\r\n },\r\n cell: {\r\n border: \"1px solid\",\r\n borderColor: colors.table.cell.border\r\n }\r\n },\r\n}","import colors from '_containers/Theme/intheblack/colors';\r\nimport { headingH3 } from '_utils/styles/';\r\n\r\nexport default {\r\n background: colors.all.interactive100,\r\n border: `4px solid ${colors.all.brandPrimary2}`,\r\n gridContainer: {\r\n padding: 0\r\n },\r\n heading: headingH3,\r\n headingColor: colors.all.brandPrimary2Dark,\r\n my: null,\r\n p: null,\r\n textBody: colors.all.textBody\r\n}","import colors from '_containers/Theme/intheblack/colors';\r\n\r\nexport default {\r\n action: colors.all.brandPrimary1,\r\n attributeIcon: colors.all.neutral700,\r\n background: colors.all.neutralWhite,\r\n text: {\r\n category: colors.text.interactive1,\r\n categoryHover: colors.text.interactive1Hover,\r\n heading: colors.text.contrast,\r\n attributes: colors.text.secondary,\r\n },\r\n pagination: {\r\n backgroundActive: colors.background.tint4,\r\n color: colors.text.default,\r\n colorHover: colors.text.interactive1Hover,\r\n },\r\n cardBackground: colors.all.neutralWhite,\r\n};\r\n","import colors from '_containers/Theme/intheblack/colors';\r\n\r\nexport default {\r\n action: colors.all.brandPrimary1,\r\n attributeIcon: colors.all.neutral700,\r\n background: 'transparent',\r\n cardBackground: colors.all.neutralWhite,\r\n border: `1px solid ${colors.all.neutral200}`,\r\n borderDashed: `0px dashed ${colors.all.neutral200}`,\r\n borderDashedHover: `0px dashed ${colors.all.neutral800}`,\r\n borderFocus: `2px solid ${colors.all.interactive200}`,\r\n borderHover: 'none',\r\n borderRadius: 4,\r\n borderSelected: 'none',\r\n boxShadow: null,\r\n boxShadowHover: null,\r\n ctaColor: 'tertiary',\r\n header: {\r\n border: `4px solid ${colors.all.neutralBlack}`\r\n }\r\n};\r\n\r\nexport const darkMode = {\r\n background: colors.all.brandPrimary3,\r\n headingColor: colors.all.neutralWhite,\r\n color: colors.all.neutralWhite,\r\n ctaColor: 'tertiaryDark',\r\n};\r\n","import colors from '_containers/Theme/intheblack/colors';\r\n\r\nexport default {\r\n action: colors.all.brandPrimary1,\r\n attributeIcon: colors.all.neutral700,\r\n background: 'transparent',\r\n cardBackground: colors.all.neutralWhite,\r\n border: `1px solid ${colors.all.neutral200}`,\r\n borderDashed: `0px dashed ${colors.all.neutral200}`,\r\n borderDashedHover: `0px dashed ${colors.all.neutral800}`,\r\n borderFocus: `2px solid ${colors.all.interactive200}`,\r\n borderHover: 'none',\r\n borderRadius: 4,\r\n borderSelected: 'none',\r\n boxShadow: null,\r\n boxShadowHover: null,\r\n ctaColor: 'tertiary',\r\n header: {\r\n border: `4px solid ${colors.all.neutralBlack}`\r\n }\r\n};\r\n\r\nexport const darkMode = {\r\n background: colors.all.brandPrimary3,\r\n headingColor: colors.all.neutralWhite,\r\n color: colors.all.neutralWhite,\r\n ctaColor: 'tertiaryDark',\r\n};\r\n","import colors from '_containers/Theme/intheblack/colors';\r\n\r\nexport default {\r\n label: {\r\n color: colors.text.default\r\n },\r\n error: {\r\n background: colors.messaging.backgroundError,\r\n border: colors.form.error,\r\n color: colors.form.error\r\n },\r\n success: {\r\n background: colors.messaging.backgroundSuccess,\r\n border: colors.messaging.colorSuccess\r\n },\r\n input: {\r\n background: colors.element.neutralWhite,\r\n backgroundDisabled: colors.form.disabled,\r\n border: colors.form.border,\r\n borderDisabled: colors.form.border,\r\n borderError: colors.form.error,\r\n borderFocus: colors.form.focus,\r\n borderFocusError: colors.form.error,\r\n borderHover: colors.form.hover,\r\n color: colors.text.default,\r\n colorDisabled: colors.text.disabled,\r\n },\r\n select: {\r\n active: colors.form.focus,\r\n iconColor: colors.all.brandPrimary2Dark,\r\n selected: colors.background.tint5\r\n },\r\n check: {\r\n background: colors.background.tint1,\r\n backgroundDisabled: colors.form.disabled,\r\n border: colors.text.default,\r\n borderDisabled: colors.text.disabled,\r\n borderError: colors.form.error,\r\n borderFocus: colors.form.focus,\r\n borderHover: colors.text.default,\r\n color: colors.element.neutralWhite,\r\n colorDisabled: colors.text.disabled,\r\n colorHover: colors.element.neutralWhite,\r\n selectedBackground: colors.text.interactive1,\r\n selectedBackgroundFocus: colors.all.interactive600,\r\n selectedBackgroundHover: colors.text.interactive1Hover,\r\n selectedBorder: colors.text.interactive1,\r\n selectedBorderFocus: colors.button.inTheBlack.borderFocusAll,\r\n selectedBorderHover: colors.text.interactive1Hover\r\n },\r\n button: {\r\n background: colors.button.primary.background,\r\n backgroundActive: colors.button.primary.backgroundActive,\r\n backgroundDisabled: colors.button.primary.backgroundDisabled,\r\n backgroundHover: colors.button.primary.backgroundHover,\r\n borderRadius: 4,\r\n color: colors.button.primary.color,\r\n colorDisabled: colors.button.primary.disabled,\r\n outline: colors.button.primary.borderFocus\r\n },\r\n spinner: {\r\n color: colors.text.subtle\r\n }\r\n};\r\n","import colors from '_containers/Theme/intheblack/colors';\r\n\r\nexport default {\r\n lightBanner: {\r\n headerColor: colors.all.brandPrimary3,\r\n color: colors.all.neutral700,\r\n },\r\n darkBanner: {\r\n headerColor: colors.all.neutralWhite,\r\n color: colors.darkTheme.text.default,\r\n },\r\n background: {\r\n black: colors.darkTheme.background.tint1,\r\n blue: colors.all.brandSecondary4Light,\r\n orange: colors.all.brandSecondary3,\r\n purple: colors.all.visited500,\r\n teal: colors.all.brandPrimary2,\r\n yellow: colors.all.brandSecondary5Light,\r\n },\r\n container: {\r\n mediaPrint: {\r\n background: colors.background.tint1,\r\n color: colors.element.neutralBlack\r\n },\r\n minHeight: 270,\r\n },\r\n linkButton: { \r\n pathFillColor: colors.button.primary.background\r\n }\r\n};\r\n","import colors from '_containers/Theme/intheblack/colors';\r\n\r\nexport default {\r\n link: {\r\n minWidth: {\r\n md: '130px',\r\n }\r\n },\r\n title: {\r\n color: colors.text.interactive1,\r\n colorHover: colors.text.interactive1Hover,\r\n colorVisited: colors.text.visited,\r\n },\r\n icon: {\r\n color: colors.text.interactive1,\r\n colorHover: colors.text.interactive1Hover,\r\n },\r\n subtitle: {\r\n color: colors.text.subtle\r\n }\r\n};\r\n","import colors from '_containers/Theme/intheblack/colors';\r\n\r\n\r\nexport default {\r\n container: {\r\n column: {\r\n border: colors.all.brandPrimary2,\r\n background: colors.darkTheme.background.tint3,\r\n },\r\n sidebar: {\r\n border: colors.all.interactive500,\r\n background: colors.darkTheme.background.tint2,\r\n }\r\n },\r\n title: {\r\n color: colors.all.darkTextContrast\r\n },\r\n link: {\r\n color: colors.all.darkTextContrast,\r\n hoverColor: colors.darkTheme.text.interactive1Hover,\r\n iconColor: colors.darkTheme.text.interactive1\r\n },\r\n button: {\r\n color: colors.all.darkTextContrast,\r\n iconColor: colors.all.darkTextContrast\r\n }\r\n}","import colors from '_containers/Theme/intheblack/colors';\r\n\r\nexport default {\r\n background: `transparent`,\r\n action: colors.all.interactive400,\r\n playButtonBackground: colors.all.interactive400,\r\n};\r\n","import colors from '_containers/Theme/intheblack/colors';\r\n\r\nexport default {\r\n background: colors.darkTheme.background.tint1,\r\n color: colors.all.neutralWhite,\r\n};\r\n","import colors from '_containers/Theme/intheblack/colors';\r\n\r\nexport default {\r\n container: {\r\n backgroundPrimary: colors.all.darkBackgroundTint1,\r\n backgroundSecondary: colors.all.darkBackgroundTint2,\r\n divider: colors.all.transparent,\r\n },\r\n item: {\r\n background: colors.all.transparent,\r\n backgroundActive: colors.all.darkBackgroundTint2,\r\n color: colors.all.neutralWhite,\r\n colorActive: colors.all.neutralWhite,\r\n colorHighlight: colors.all.brandPrimary2,\r\n colorLabel: colors.all.darkTextSubtle,\r\n description: colors.all.darkText,\r\n descriptionActive: colors.all.darkText,\r\n focusHighlight: colors.all.interactive200,\r\n groupLabelColor: colors.all.darkTextSubtle,\r\n primaryNavigation: {\r\n backgroundActive: colors.all.darkBackgroundTint1,\r\n }\r\n },\r\n toolbar: {\r\n activeHighlight: colors.all.brandPrimary2,\r\n background: colors.all.darkBackgroundTint1,\r\n buttonColor: colors.all.neutralWhite,\r\n color: colors.all.darkTextSubtle,\r\n colorActive: colors.all.neutralWhite,\r\n divider: colors.all.darkBackground,\r\n },\r\n secondaryNavigation: {\r\n divider: colors.darkTheme.ui.divider\r\n },\r\n magazine: {\r\n color: colors.all.darkText\r\n }\r\n};\r\n","import colors from '_containers/Theme/intheblack/colors';\r\n\r\nexport default {\r\n background: colors.all.neutral50,\r\n backgroundActive: colors.all.neutralWhite,\r\n border: `1px solid ${colors.all.neutral200}`,\r\n borderActive: `2px solid ${colors.all.interactive500}`,\r\n iconFill: colors.all.neutral400,\r\n inputBorderRadius: '4px 0 0 4px',\r\n inputBorderRadiusLessThanMd: '4px',\r\n outlineColour: colors.all.interactive300,\r\n clear: {\r\n borderRadius: '0',\r\n height: '-16px',\r\n iconFill: colors.all.neutral500,\r\n left: '-2px',\r\n top: '9px',\r\n width: '-8px',\r\n },\r\n submit: {\r\n background: colors.all.neutral200,\r\n backgroundActive: colors.all.brandPrimary1,\r\n borderHover: colors.all.interactive500,\r\n borderRadius: '0 4px 4px 0',\r\n height: '8px',\r\n iconFill: colors.all.neutral700,\r\n iconFillActive: colors.all.neutralWhite,\r\n left: '-2px',\r\n minWidth: '48px',\r\n padding: '0',\r\n top: '-4px',\r\n width: '6px',\r\n },\r\n};\r\n","import colors from '_containers/Theme/intheblack/colors';\r\n\r\nexport default {\r\n dialog: {\r\n background: colors.modal.background,\r\n },\r\n crossWrapper: {\r\n pathFillColor: colors.modal.close.fill,\r\n closeButtonHover: {\r\n pathFillColor: colors.modal.close.fillHover,\r\n }\r\n }\r\n};","import colors from '_containers/Theme/intheblack/colors';\r\n\r\nexport default {\r\n lightBanner: {\r\n headerColor: colors.all.neutralBlack,\r\n color: colors.text.default,\r\n },\r\n darkBanner: {\r\n headerColor: colors.background.tint1,\r\n color: colors.darkTheme.text.default,\r\n },\r\n background: {\r\n black: colors.element.neutralBlack\r\n }\r\n};\r\n","// intentionally importing Corporate as only difference is heading level\r\n// ie. colors remain as per Corporate\r\nimport { FONT_FAMILY_TEXT } from '_containers/Theme/global';\r\nimport { headingH4 } from '_utils/styles';\r\n\r\nimport corporateVariantSettings from './variantSettings';\r\n\r\nexport default {\r\n ...corporateVariantSettings,\r\n primaryLink: {\r\n fontFamily: FONT_FAMILY_TEXT,\r\n fontWeight: '700 !important', // override weight defined in utils/styles/headingH4\r\n level: headingH4,\r\n },\r\n};\r\n","import colors from '_containers/Theme/intheblack/colors';\r\n\r\nexport default {\r\n background: colors.all.neutralWhite,\r\n borderColor: colors.all.neutral200,\r\n headerColor: colors.all.brandPrimary1,\r\n height: {\r\n fixed: 73,\r\n md: 93,\r\n xs: 65\r\n },\r\n logo: {\r\n svg: {\r\n md: {\r\n height: 52,\r\n width: 120,\r\n },\r\n lg: {\r\n height: 40,\r\n width: 165,\r\n },\r\n sticky: {\r\n md: {\r\n height: 48,\r\n width: 112,\r\n },\r\n lg: {\r\n height: 32,\r\n width: 132,\r\n }\r\n }\r\n }\r\n },\r\n menu: {\r\n button: {\r\n paddingLeft: '40px'\r\n },\r\n fontWeight: 900,\r\n dashboardMenuButton: {\r\n marginRight: '0',\r\n marginLeft: '8px'\r\n },\r\n md: {\r\n marginLeft: 3\r\n }\r\n },\r\n overlayColor: colors.all.neutralBlack,\r\n position: {\r\n stickyOnMobile: false\r\n },\r\n searchContainer: {\r\n width: '424px',\r\n md: {\r\n paddingLeft: '37px',\r\n width: '100%'\r\n }\r\n },\r\n skipContainer: {\r\n background: colors.background.tint2\r\n },\r\n skipLink: {\r\n color: colors.all.neutralBlack,\r\n focus: {\r\n outlineColor: colors.element.focused\r\n }\r\n }\r\n};\r\n","import colors from '_containers/Theme/intheblack/colors';\r\n\r\n\r\nexport default {\r\n searchMenuHeader: {\r\n borderColor: colors.all.darkBackgroundTint5,\r\n },\r\n closeIcon: {\r\n pathFillColor: colors.element.neutralWhite,\r\n },\r\n searchMenuButton: {\r\n pathFillColor: colors.all.brandPrimary1,\r\n focus: colors.element.focused,\r\n label: {\r\n color: colors.all.brandPrimary3\r\n }\r\n }\r\n}","import colors from '_containers/Theme/intheblack/colors';\r\nimport { getDictionaryItem } from '_utils/data/dictionaryItem';\r\n\r\nexport default {\r\n action: colors.all.brandPrimary1,\r\n attributeIcon: colors.all.neutral700,\r\n background: {\r\n dark: colors.all.brandPrimary1,\r\n default: colors.all.neutralWhite,\r\n subtle: colors.all.neutral50,\r\n subtle2: colors.all.neutral100,\r\n subtle3: colors.all.neutral200,\r\n },\r\n border: {\r\n dark: colors.all.neutral300,\r\n default: colors.all.neutral200,\r\n outline: colors.all.interactive200,\r\n divider: colors.ui.divider,\r\n focus: colors.all.interactive500\r\n },\r\n button: {\r\n background: colors.all.neutral200,\r\n backgroundHover: colors.all.brandPrimary1,\r\n border: colors.all.brandPrimary2,\r\n primaryBackground: colors.button.primary.background,\r\n primaryColor: colors.button.primary.color,\r\n primaryHover: colors.button.primary.backgroundHover,\r\n secondaryBackground: colors.button.secondary.background\r\n },\r\n cardBackground: colors.all.neutralWhite,\r\n checkbox: {\r\n background: colors.text.interactive1,\r\n backgroundHover: colors.all.brandPrimary1Dark,\r\n border: colors.all.brandPrimary2\r\n },\r\n label: {\r\n clearAll: getDictionaryItem('search-filters-clear-all-label', 'Clear all'),\r\n clearFilter: getDictionaryItem('search-filters-clear-label', 'Clear filter'),\r\n showFewerItem: getDictionaryItem('search-filters-show-fewer-label', 'Show fewer categories'),\r\n showAllItem: getDictionaryItem('search-filters-show-all-label', 'Show all categories'),\r\n },\r\n loading: {\r\n icon: colors.all.interactive600,\r\n },\r\n link: {\r\n color: colors.all.interactive600,\r\n hover: colors.all.interactive700\r\n },\r\n pagination: {\r\n backgroundActive: colors.background.tint4,\r\n text: colors.text.default,\r\n colorHover: colors.text.interactive1Hover\r\n },\r\n text: {\r\n attributes: colors.text.secondary,\r\n category: colors.text.interactive1,\r\n categoryHover: colors.text.interactive1Hover,\r\n dark: colors.all.neutral600,\r\n dark2: colors.all.neutral900,\r\n default: colors.all.neutral700,\r\n error: colors.all.error500,\r\n heading: colors.text.default,\r\n light: colors.all.neutralWhite,\r\n primary: colors.all.brandPrimary1,\r\n primaryDark: colors.all.brandPrimary3,\r\n subtle: colors.all.neutral500,\r\n subtle2: colors.all.neutral400,\r\n subtle3: colors.all.neutral300,\r\n },\r\n};\r\n","import colors from '_containers/Theme/intheblack/colors';\r\n\r\nconst defaultValue = {\r\n headline: {\r\n colour: colors.element.neutralWhite,\r\n },\r\n readingTime: {\r\n colour: colors.text.darkTextSecondary,\r\n },\r\n category: {\r\n colour: colors.text.darkSubtle,\r\n },\r\n bannerArticle: {\r\n borderTopColour: colors.all.darkBackgroundTint5,\r\n },\r\n};\r\n\r\nexport const darkMode = { ...defaultValue };\r\n\r\nexport default defaultValue;","import colors from '_containers/Theme/intheblack/colors';\r\n\r\nexport default {\r\n figcaption: {\r\n color: colors.text.subtle\r\n },\r\n iconContainer: {\r\n color: colors.text.subtle\r\n },\r\n textWrapper: colors.text.default,\r\n credit: {\r\n color: colors.text.subtle\r\n },\r\n};\r\n","import colors from '_containers/Theme/intheblack/colors';\r\n\r\nexport default {\r\n action: colors.all.brandPrimary1,\r\n attributeIcon: colors.all.neutral700,\r\n cardBackground: colors.all.neutralWhite,\r\n};\r\n","import colors from '_containers/Theme/intheblack/colors';\r\n\r\n\r\nexport default {\r\n flickityWrapper: {\r\n dot: {\r\n background: colors.background.tint4\r\n },\r\n isSelected: {\r\n background: colors.all.brandPrimary1\r\n }\r\n },\r\n arrowWrapper: {\r\n pathFillColor: colors.all.brandPrimary1\r\n }\r\n};\r\n","import {\r\n subheading2\r\n}\r\n from '_utils/styles/';\r\n\r\n\r\nexport default {\r\n descriptionSize: subheading2\r\n};\r\n","import colors from '_containers/Theme/intheblack/colors';\r\n\r\nconst defaultStyle = {\r\n borderRadius: '1px',\r\n}\r\n\r\nexport default {\r\n backgroundPressed: colors.interactiveCell.pressed,\r\n borderPressed: `1px solid ${colors.all.interactive500}`,\r\n nonInteractiveOutline: {\r\n ...defaultStyle,\r\n background: colors.background.tint1,\r\n border: colors.text.default,\r\n color: colors.text.default,\r\n\r\n },\r\n nonInteractiveDefault: {\r\n ...defaultStyle,\r\n background: colors.button.primary.color,\r\n color: colors.darkTheme.text.default,\r\n },\r\n nonInteractiveSubtle: {\r\n ...defaultStyle,\r\n background: colors.background.tint3,\r\n border: colors.background.tint3,\r\n color: colors.text.secondary,\r\n },\r\n nonInteractiveCategory: {\r\n ...defaultStyle,\r\n background: colors.background.tint1,\r\n border: colors.all.transparent,\r\n color: colors.text.subtle,\r\n },\r\n nonInteractiveStatusSuccess: {\r\n ...defaultStyle,\r\n background: colors.messaging.backgroundSuccess,\r\n border: colors.messaging.backgroundSuccess,\r\n color: colors.messaging.colorSuccessDark,\r\n },\r\n nonInteractiveStatusWarning: {\r\n ...defaultStyle,\r\n background: colors.messaging.backgroundWarning,\r\n border: colors.messaging.backgroundWarning,\r\n color: colors.messaging.colorWarningDark,\r\n },\r\n nonInteractiveStatusError: {\r\n ...defaultStyle,\r\n background: colors.messaging.backgroundError,\r\n border: colors.messaging.backgroundError,\r\n color: colors.messaging.colorErrorDark,\r\n },\r\n interactiveLink: {\r\n ...defaultStyle,\r\n background: colors.background.tint1,\r\n backgroundHover: colors.button.ghost.backgroundHover,\r\n backgroundVisited: colors.button.ghost.backgroundVisited,\r\n border: colors.text.interactive1,\r\n color: colors.text.interactive1,\r\n },\r\n interactiveCategory: {\r\n ...defaultStyle,\r\n background: colors.background.tint1,\r\n border: colors.all.transparent,\r\n color: colors.text.interactive1,\r\n colorHover: colors.text.interactive1Hover,\r\n colorVisited: colors.button.ghost.colorVisited,\r\n padding: 0,\r\n textDecoration: 'underline',\r\n },\r\n}\r\n\r\nexport const darkMode = {\r\n nonInteractiveSubtle: {\r\n ...defaultStyle,\r\n background: colors.darkTheme.background.tint3,\r\n color: colors.darkTheme.text.secondary,\r\n },\r\n nonInteractiveCategory: {\r\n ...defaultStyle,\r\n background: colors.background.tint1,\r\n color: colors.darkTheme.text.subtle,\r\n },\r\n};\r\n","import colors from '_containers/Theme/intheblack/colors';\r\n\r\nexport default {\r\n action: colors.all.brandPrimary1,\r\n attributeIcon: colors.all.neutral700,\r\n background: `transparent`,\r\n cardBackground: colors.all.neutralWhite,\r\n border: `1px solid ${colors.all.neutral200}`,\r\n borderDashed: `0px dashed ${colors.all.neutral200}`,\r\n borderDashedHover: `0px dashed ${colors.all.neutral800}`,\r\n borderFocus: `2px solid ${colors.all.interactive500}`,\r\n borderHover: `none`,\r\n borderRadius: 0,\r\n borderSelected: `none`,\r\n boxShadow: null,\r\n boxShadowHover: null,\r\n};\r\n\r\nexport const darkMode = {\r\n background: colors.all.brandPrimary3,\r\n color: colors.all.neutralWhite,\r\n ctaColor: 'tertiaryDark',\r\n};","import colors from '_containers/Theme/intheblack/colors';\r\n\r\n\r\nexport default {\r\n background: 'transparent',\r\n backgroundOverride: {\r\n Grey: colors.background.tint4,\r\n Dark: colors.all.darkBackgroundTint1\r\n },\r\n divider: {\r\n color: colors.ui.divider\r\n }\r\n};\r\n\r\nexport const darkMode = {\r\n background: colors.all.darkBackgroundTint1\r\n}\r\n","import personalisedCarousel from '_components/PersonalisationCarousel/variantSettingsInTheBlack';\r\nimport accordion, { darkMode as accordionDarkTheme } from '_components/Accordion/variantSettings';\r\nimport agendaAccordion, { darkMode as agendaAccordionDarkTheme } from '_components/AgendaAccordion/variantSettings';\r\nimport inPageAnnouncement from '_components/Announcements/InPageAnnouncement/variantSettings';\r\nimport siteWideAnnouncement from '_components/Announcements/SiteWideAnnouncement/variantSettings';\r\nimport breadcrumb from '_components/Breadcrumb/variantSettings';\r\nimport callToAction from '_components/CallToAction/variantSettingsInTheBlack';\r\nimport campaignNavigation from '_components/CampaignNavigation/variantSettings';\r\nimport campaignPageBanner from '_components/CampaignPageBanner/variantSettings';\r\nimport cardListInTheBlack, { darkMode as cardListInTheBlackDarkTheme } from '_components/CardListInTheBlack/variantSettingsInTheBlack';\r\nimport contentRelated from '_components/ContentRelated/variantSettingsInTheBlack';\r\nimport contentRichText from '_components/ContentRichText/variantSettingsInTheBlack';\r\nimport contentSummary from '_components/ContentSummary/variantSettingsInTheBlack';\r\nimport coveoContentCards from '_components/CoveoContentCards/variantSettingsInTheBlack';\r\nimport dateLinkList, { darkMode as dateLinkListDarkTheme } from '_components/DateLinkList/variantSettings';\r\nimport documentList from '_components/DocumentList/variantSettings';\r\nimport featureSection from '_components/FeatureSection/variantSettingsInTheBlack';\r\nimport featureSectionWithAd from '_components/FeatureSectionWithAd/variantSettingsInTheBlack';\r\nimport form from '_components/Form/variantSettingsInTheBlack';\r\nimport homepageBanner from '_components/HomepageBanner/variantSettings';\r\nimport imageCardGrid from '_components/ImageCardGrid/variantSettings';\r\nimport imageWithTitleAndText from '_components/ImageWithTitleAndText/variantSettings';\r\nimport internalPageBanner from '_components/InternalPageBanner/variantSettingsInTheBlack';\r\nimport lateralNavigation from '_components/LateralNavigation/variantSettingsInTheBlack';\r\nimport linkList from '_components/LinkList/variantSettings';\r\nimport liveChat from '_components/LiveChat/variantSettings';\r\nimport magazineBanner from '_components/MagazineBanner/variantSettingsInTheBlack';\r\nimport multiMediaEmbed from '_components/MultiMediaEmbed/variantSettingsInTheBlack';\r\nimport magazinePageBanner from '_components/MagazinePageBanner/variantSettingsInTheBlack';\r\nimport mainMenu from '_components/MainMenuInTheBlack/variantSettingsInTheBlack';\r\nimport mainSearch from '_components/MainSearch/variantSettingsInTheBlack';\r\nimport masonryGrid, { darkMode as masonryGridDarkTheme } from '_components/MasonryGrid/variantSettings';\r\nimport modal from '_components/Modal/variantSettingsInTheBlack';\r\nimport pageBanner from '_components/PageBanner/variantSettingsInTheBlack';\r\nimport pageFooter from '_components/PageFooter/variantSettingsInTheBlack';\r\nimport pageHeader from '_components/PageHeader/variantSettingsInTheBlack';\r\nimport placeholderDashboardSingleColumn from '_components/PlaceholderDashboardSingleColumn/variantSettings';\r\nimport profilePageBanner from '_components/ProfilePageBanner/variantSettings';\r\nimport searchMenu from '_components/SearchMenu/variantSettingsInTheBlack';\r\nimport searchResults from '_components/SearchResultsInTheBlack/variantSettingsInTheBlack';\r\nimport showcaseHero from '_components/ShowcaseHero/variantSettingsInTheBlack';\r\nimport singleImage from '_components/SingleImage/variantSettingsInTheBlack';\r\nimport staticTextAndImage from '_components/StaticTextAndImage/variantSettings';\r\nimport tabs, { darkMode as tabsDarkTheme } from '_components/Tabs/variantSettings';\r\nimport timezoneSelector from '_components/TimezoneSelector/variantSettings';\r\n\r\n// utils\r\nimport contentCard from '_utils/components/ContentCard/variantSettingsInTheBlack';\r\nimport carousel from '_utils/components/Carousel/variantSettingsInTheBlack';\r\nimport headingWithDescription from '_utils/components/HeadingWithDescription/variantSettingsInTheBlack';\r\nimport spinner from '_utils/components/Spinner';\r\nimport tag, { darkMode as tagDarkTheme } from '_utils/components/Tag/variantSettingsInTheBlack';\r\nimport complexFormElement from '_utils/components/Form/variantSettings';\r\nimport lastUpdated from '_utils/components/LastUpdated/variantSettings';\r\nimport radio from '_utils/components/Radio/variantSettings';\r\nimport showMore from '_utils/components/ShowMore/variantSettings';\r\nimport tooltip, { darkMode as tooltipDarkTheme } from '_utils/components/Tooltip/variantSettings';\r\n\r\n// styles\r\nimport card from '_utils/styles/card/variantSettingsInTheBlack';\r\nimport section, { darkMode as sectionDarkTheme } from '_utils/styles/section/variantSettingsInTheBlack';\r\n\r\nimport button from './button';\r\nimport colors from './colors';\r\nimport { FONT_FAMILY_TEXT } from './global';\r\nimport link from './link';\r\nimport {\r\n motion,\r\n shadows,\r\n} from '../shared';\r\n\r\nimport { ITheme } from './definitions';\r\n\r\nconst Theme: ITheme = {\r\n personalisedCarousel,\r\n accordion,\r\n agendaAccordion,\r\n borderRadius: {\r\n default: {\r\n lg: 0,\r\n md: 14,\r\n sm: 10\r\n }\r\n },\r\n button,\r\n breadcrumb,\r\n callToAction,\r\n campaignNavigation,\r\n campaignPageBanner,\r\n card,\r\n cardListInTheBlack,\r\n carousel,\r\n colors: colors,\r\n content: {\r\n indent: {\r\n lg: 44,\r\n md: 36,\r\n xs: 32\r\n }\r\n },\r\n complexFormElement,\r\n contentCard,\r\n contentRelated,\r\n contentRichText,\r\n contentSummary,\r\n coveoContentCards,\r\n dateLinkList,\r\n documentList,\r\n featureSection,\r\n featureSectionWithAd,\r\n focus: {\r\n height: 'calc(100% + 4px)',\r\n left: '-2px',\r\n outlineColor: colors.all.interactive500,\r\n outlineOffset: 0,\r\n outlineStyle: 'solid',\r\n outlineWidth: '2px',\r\n radius: 0,\r\n top: '-2px',\r\n width: 'calc(100% + 4px)'\r\n },\r\n form,\r\n grid: {\r\n borderColor: colors.brandPrimary1,\r\n borderWidth: '1px',\r\n colCount: 12,\r\n containerMaxWidth: 1024,\r\n containerMinWidth: 280,\r\n gutter: {\r\n directions: ['left', 'right', 'top', 'bottom'],\r\n size: {\r\n lg: 24,\r\n md: 24,\r\n xs: 14\r\n }\r\n },\r\n margin: {\r\n lg: 32,\r\n md: 24,\r\n xs: 20\r\n }\r\n },\r\n headingWithDescription,\r\n homepageBanner,\r\n imageCardGrid,\r\n imageWithTitleAndText,\r\n inPageAnnouncement,\r\n internalPageBanner,\r\n lastUpdated,\r\n lateralNavigation,\r\n link,\r\n linkList,\r\n liveChat,\r\n magazineBanner,\r\n multiMediaEmbed,\r\n magazinePageBanner,\r\n mainMenu,\r\n mainSearch,\r\n masonryGrid,\r\n modal,\r\n motion,\r\n pageBanner,\r\n pageFooter,\r\n pageHeader,\r\n placeholderDashboardSingleColumn,\r\n profilePageBanner,\r\n responsiveSpacing: {\r\n xxl: {\r\n '0': 0,\r\n '1': 8,\r\n '2': 16,\r\n '3': 24,\r\n '4': 32,\r\n '5': 40,\r\n '6': 48,\r\n '7': 64,\r\n '8': 80,\r\n '9': 120\r\n },\r\n lg: {\r\n '0': 0,\r\n '1': 8,\r\n '2': 16,\r\n '3': 24,\r\n '4': 32,\r\n '5': 40,\r\n '6': 48,\r\n '7': 64,\r\n '8': 80,\r\n '9': 120\r\n },\r\n md: {\r\n '0': 0,\r\n '1': 8,\r\n '2': 16,\r\n '3': 24,\r\n '4': 32,\r\n '5': 40,\r\n '6': 48,\r\n '7': 64,\r\n '8': 80,\r\n '9': 120\r\n },\r\n xs: {\r\n '0': 0,\r\n '1': 8,\r\n '2': 12,\r\n '3': 16,\r\n '4': 16,\r\n '5': 24,\r\n '6': 24,\r\n '7': 32,\r\n '8': 40,\r\n '9': 64\r\n }\r\n },\r\n radio,\r\n searchMenu,\r\n searchResults,\r\n section,\r\n shadows,\r\n showcaseHero,\r\n showMore,\r\n singleImage,\r\n siteWideAnnouncement,\r\n spinner,\r\n staticTextAndImage,\r\n table: {\r\n font: {\r\n fontFamily: FONT_FAMILY_TEXT,\r\n // same as body2\r\n fontSize: {\r\n lg: 0,\r\n md: 16,\r\n sm: 14\r\n },\r\n lineHeight: {\r\n lg: 0,\r\n md: 20,\r\n sm: 16\r\n },\r\n spacing: 16\r\n }\r\n },\r\n tabs,\r\n tag,\r\n timezoneSelector,\r\n tooltip,\r\n typography: {\r\n headings: {\r\n caption1: {\r\n fontSize: 14,\r\n lineHeight: 14\r\n },\r\n caption2: {\r\n fontSize: 12,\r\n lineHeight: 12\r\n },\r\n fixedTitle12: {\r\n fontSize: 12,\r\n fontWeight: 900,\r\n lineHeight: 16,\r\n spacing: 16\r\n },\r\n fixedTitle14: {\r\n fontSize: 14,\r\n fontWeight: 900,\r\n lineHeight: 18,\r\n spacing: 18\r\n },\r\n fixedTitle16: {\r\n fontSize: 16,\r\n fontWeight: 900,\r\n lineHeight: 20,\r\n spacing: 20\r\n },\r\n fixedTitle18: {\r\n fontSize: 18,\r\n fontWeight: 900,\r\n lineHeight: 24,\r\n spacing: 24\r\n },\r\n fixedTitle20: {\r\n fontSize: 20,\r\n fontWeight: 900,\r\n lineHeight: 24,\r\n spacing: 24\r\n },\r\n H0: { // only used in HomepageBanner currently as oversized H1\r\n fontSize: {\r\n lg: 64,\r\n md: 45,\r\n sm: 40\r\n },\r\n lineHeight: {\r\n lg: 72,\r\n md: 54,\r\n sm: 48\r\n },\r\n fontWeight: 900\r\n },\r\n H1: {\r\n fontSize: {\r\n lg: 48,\r\n md: 40,\r\n sm: 32\r\n },\r\n lineHeight: {\r\n lg: 54,\r\n md: 48,\r\n sm: 38\r\n },\r\n fontWeight: 900\r\n },\r\n H2: {\r\n fontSize: {\r\n lg: 36,\r\n md: 32,\r\n sm: 28\r\n },\r\n lineHeight: {\r\n lg: 44,\r\n md: 38,\r\n sm: 32\r\n },\r\n fontWeight: 900\r\n },\r\n H3: {\r\n fontSize: {\r\n lg: 28,\r\n md: 24,\r\n sm: 24\r\n },\r\n lineHeight: {\r\n lg: 32,\r\n md: 28,\r\n sm: 28\r\n },\r\n fontWeight: 900\r\n },\r\n H4: {\r\n fontSize: {\r\n lg: 22,\r\n md: 20,\r\n sm: 20\r\n },\r\n lineHeight: {\r\n lg: 26,\r\n md: 24,\r\n sm: 24\r\n },\r\n fontWeight: 900\r\n },\r\n H5: {\r\n fontSize: {\r\n lg: 16,\r\n md: 14,\r\n sm: 14\r\n },\r\n lineHeight: {\r\n lg: 20,\r\n md: 18,\r\n sm: 18\r\n },\r\n fontWeight: 900\r\n },\r\n // same as H5 - attempt backward compaitble for any\r\n // previously authored content using H6\r\n H6: {\r\n fontSize: {\r\n lg: 16,\r\n md: 14,\r\n sm: 14\r\n },\r\n lineHeight: {\r\n lg: 20,\r\n md: 18,\r\n sm: 18\r\n },\r\n fontWeight: 900\r\n },\r\n subheading1: {\r\n fontSize: {\r\n lg: 24,\r\n md: 22,\r\n sm: 20\r\n },\r\n fontWeight: 300,\r\n lineHeight: {\r\n lg: 32,\r\n md: 30,\r\n sm: 28\r\n }\r\n },\r\n subheading2: {\r\n fontSize: {\r\n lg: 18,\r\n md: 18,\r\n sm: 16\r\n },\r\n fontWeight: 'normal',\r\n lineHeight: {\r\n lg: 24,\r\n md: 24,\r\n sm: 20\r\n }\r\n },\r\n title: {\r\n fontSize: {\r\n lg: 64,\r\n md: 48,\r\n sm: 36\r\n },\r\n fontWeight: 'normal',\r\n lineHeight: {\r\n lg: 64,\r\n md: 48,\r\n sm: 36\r\n }\r\n }\r\n },\r\n text: {\r\n // article body\r\n articleBody: {\r\n fontSize: {\r\n lg: 20,\r\n md: 18,\r\n sm: 18\r\n },\r\n lineHeight: {\r\n lg: 32,\r\n md: 28,\r\n sm: 28\r\n },\r\n spacing: 24\r\n },\r\n // normal body\r\n body1: {\r\n fontSize: {\r\n lg: 16,\r\n md: 16,\r\n sm: 16\r\n },\r\n lineHeight: {\r\n lg: 28,\r\n md: 28,\r\n sm: 24\r\n },\r\n spacing: 24\r\n },\r\n // smaller body\r\n body2: {\r\n fontSize: {\r\n lg: 14,\r\n md: 14,\r\n sm: 14\r\n },\r\n lineHeight: {\r\n lg: 20,\r\n md: 20,\r\n sm: 20\r\n },\r\n spacing: 24\r\n },\r\n fixedBody12: {\r\n fontSize: 12,\r\n fontWeight: 'normal',\r\n lineHeight: 16,\r\n spacing: 24\r\n },\r\n fixedBody14: {\r\n fontSize: 14,\r\n fontWeight: 'normal',\r\n lineHeight: 18,\r\n spacing: 24\r\n },\r\n fixedBody16: {\r\n fontSize: 16,\r\n fontWeight: 'normal',\r\n lineHeight: 20,\r\n spacing: 24\r\n },\r\n fixedBody18: {\r\n fontSize: 18,\r\n fontWeight: 'normal',\r\n lineHeight: 24,\r\n spacing: 24\r\n },\r\n tag16: {\r\n fontSize: 16,\r\n fontWeight: 'bold',\r\n lineHeight: 24,\r\n spacing: 0\r\n },\r\n tag14: {\r\n fontSize: 14,\r\n fontWeight: 'bold',\r\n lineHeight: 24,\r\n spacing: 0\r\n },\r\n tag12: {\r\n fontSize: 12,\r\n fontWeight: 'bold',\r\n lineHeight: 18,\r\n spacing: 0\r\n },\r\n tag10: {\r\n fontSize: 10,\r\n fontWeight: 'bold',\r\n lineHeight: 12,\r\n spacing: 0\r\n }\r\n }\r\n }\r\n};\r\n\r\nexport const DarkTheme = {\r\n ...Theme,\r\n agendaAccordion: {\r\n ...agendaAccordion,\r\n ...agendaAccordionDarkTheme,\r\n },\r\n accordion: {\r\n ...accordion,\r\n ...accordionDarkTheme,\r\n },\r\n cardListInTheBlack: {\r\n ...cardListInTheBlack,\r\n ...cardListInTheBlackDarkTheme\r\n },\r\n dateLinkList: {\r\n ...dateLinkList,\r\n ...dateLinkListDarkTheme\r\n },\r\n masonryGrid: {\r\n ...masonryGrid,\r\n ...masonryGridDarkTheme\r\n },\r\n section: {\r\n ...section,\r\n ...sectionDarkTheme\r\n },\r\n tabs: {\r\n ...tabs,\r\n ...tabsDarkTheme\r\n },\r\n tag: {\r\n ...tag,\r\n ...tagDarkTheme\r\n },\r\n tooltip: {\r\n ...tooltip,\r\n ...tooltipDarkTheme\r\n },\r\n multiMediaEmbed: {\r\n ...multiMediaEmbed\r\n }\r\n};\r\n\r\nexport default Theme;\r\n","export const renderField = (editMode, field, markup) => {\r\n if (editMode === false && !field?.value) {\r\n return null;\r\n }\r\n return markup;\r\n};\r\n\r\n/**\r\n * CPA AU or In The Black differentiator known keys, derived from __JSS_STATE__ rendered in the DOM.\r\n * Corporate: https://www.cpaaustralia.com.au/\r\n * InTheBlack: https://intheblack.cpaaustralia.com.au\r\n *\r\n * Currently the sitecoreContext has not been contracted to a 'type' or 'interface'.\r\n * Once we do that we can remove the use of 'any' from the input parameter on both functions.\r\n */\r\nexport const SITECORE_CONTEXT_CORPORATE: string = \"Corporate\".toLocaleLowerCase();\r\nexport const SITECORE_CONTEXT_ITB: string = \"InTheBlack\".toLocaleLowerCase();\r\n\r\nexport const isCorporateSite = (sitecoreContext: any): boolean => {\r\n const name: string | undefined = sitecoreContext?.site?.name;\r\n return name !== undefined && (name as string).toLocaleLowerCase() === SITECORE_CONTEXT_CORPORATE;\r\n};\r\n\r\nexport const isInTheBlackSite = (sitecoreContext: any): boolean => {\r\n const name: string | undefined = sitecoreContext?.site?.name;\r\n return name !== undefined && (name as string).toLocaleLowerCase() === SITECORE_CONTEXT_ITB;\r\n};\r\n\r\nexport const STABLE_CLASS = 'stable';\r\nexport const MUTATING_CLASS = 'mutating';\r\nexport const TRANSITIONING_CLASS = 'isTransitioning';\r\nexport const INVISIBLE_CLASS = 'invisible';\r\n\r\nexport const handleBodyChanges = (site) => {\r\n\r\n // courtesy classes just to aid debugging, no actual visual changes\r\n document.body.classList.add(MUTATING_CLASS);\r\n document.body.classList.remove(STABLE_CLASS);\r\n\r\n let counter = 1;\r\n const interval = 20; // milliseconds\r\n const threshold = 20; // muliple of interval so = 400ms\r\n const normalizedSite = typeof site === 'string' ? site.toLowerCase() : '';\r\n const timeoutPeriod = 0;\r\n\r\n const timer = setInterval(() => {\r\n if (counter === threshold) {\r\n clearInterval(timer);\r\n // dispatch event for Adobe Target to listen to\r\n if (window?._satellite?.track) {\r\n window._satellite.track('pageContent'); // don't use `emitTrackEvent` as it has 50ms delay\r\n }\r\n window.pageIsStable = true;\r\n // courtesy classes just to aid debugging, no actual visual changes\r\n document.body.classList.remove(MUTATING_CLASS);\r\n document.body.classList.add(STABLE_CLASS);\r\n\r\n // fallback to show app if Adobe Launch fails to\r\n setTimeout(() => {\r\n document.body.classList.remove(TRANSITIONING_CLASS);\r\n }, timeoutPeriod);\r\n\r\n } else {\r\n counter++;\r\n }\r\n }, interval);\r\n}\r\n","import React, { ReactNode, forwardRef } from 'react';\r\n\r\n/**\r\n * Nav Item Footer and Main\r\n */\r\nexport type LinkProps = {\r\n href?: string;\r\n url: string;\r\n type?: string;\r\n linktype?: string;\r\n linkType?: string; // This one should be the correct one\r\n target?: string;\r\n rel?: string;\r\n};\r\n\r\ntype LinkComponentProps = {\r\n to?: string;\r\n href?: string;\r\n target?: string;\r\n as?: string;\r\n ref?: React.Ref;\r\n className?: string;\r\n onClick?: (event: Event) => void;\r\n rel?: string;\r\n};\r\n\r\nexport type NavItemProps = {\r\n children: ReactNode;\r\n StyledLink: React.ComponentType;\r\n link: LinkProps;\r\n ariaLabelledBy?: string;\r\n className?: string;\r\n tabIndex?: string | number;\r\n additionalStyledLinkProps?: any;\r\n disabled?: boolean;\r\n tag?: string;\r\n variant?: string;\r\n onClick?: () => void;\r\n lang?: string;\r\n};\r\n\r\nexport type Ref = HTMLElement;\r\n\r\nconst NavItem = forwardRef(\r\n (\r\n {\r\n children,\r\n StyledLink,\r\n link,\r\n ariaLabelledBy,\r\n className,\r\n additionalStyledLinkProps = {},\r\n disabled,\r\n tag,\r\n variant,\r\n ...rest\r\n },\r\n ref\r\n ) => {\r\n if (!children) {\r\n return null;\r\n }\r\n\r\n const props: LinkComponentProps = {};\r\n\r\n if (ariaLabelledBy) {\r\n props['aria-labelledby'] = ariaLabelledBy;\r\n }\r\n\r\n if (disabled) {\r\n props['data-disabled'] = true;\r\n }\r\n\r\n if (link && !disabled) {\r\n props.target = link.target || null;\r\n\r\n const regexp = new RegExp(\"^https?://\", \"i\");\r\n\r\n const linkType = link?.type || link?.linktype || link?.linkType || null;\r\n\r\n if (linkType && (linkType.toLowerCase() === 'external' || linkType.toLowerCase() === 'mailto' || linkType.toLowerCase() === 'anchor' || linkType.toLowerCase() === 'javascript' || ((linkType.toLowerCase() === 'internal' || linkType.toLowerCase() === 'media') && regexp.test(link.url)))) {\r\n props.as = tag || 'a';\r\n props.href = link.url;\r\n } else {\r\n // internal link (default)\r\n props.to = link.href || link.url;\r\n }\r\n\r\n if (link.rel) {\r\n props.rel = link.rel;\r\n } else if (link?.target === '_blank' && !link.rel) {\r\n // information disclosure attack prevention keeps target blank site from getting ref to window.opener\r\n props.rel = 'noopener noreferrer';\r\n }\r\n } else {\r\n props.as = 'span';\r\n }\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n }\r\n);\r\n\r\nexport default NavItem;\r\n","/* eslint-disable */\n// Do not edit this file, it is auto-generated at build time!\n// See scripts/bootstrap.js to modify the generation of this file.\nmodule.exports = {\n \"sitecoreApiKey\": \"#{Sitecore.JssApiKey}\",\n \"sitecoreApiHost\": \"\",\n \"jssAppName\": \"inTheBlack\",\n \"defaultLanguage\": \"en\",\n \"graphQLEndpointPath\": \"/api/intheblack\",\n \"graphQLEndpoint\": \"/api/intheblack?sc_apikey=#{Sitecore.JssApiKey}\"\n};","import React, { createContext, useEffect, useState } from 'react';\r\n\r\nimport { usePrevious } from '_utils/hooks';\r\nimport { BREAKPOINTS } from '_utils/styles/mq';\r\nimport { Optionalize } from '_utils/types';\r\n\r\nimport { ChildrenPropTypes } from '../../types';\r\n\r\nexport type ModalProps = {\r\n id: string;\r\n content: JSX.Element;\r\n dismissable?: boolean;\r\n heading?: string;\r\n onClose: () => void;\r\n shouldHideCloseButton?: boolean;\r\n closeOnBreakpoint?: keyof typeof BREAKPOINTS;\r\n onActivate?: () => void;\r\n};\r\nexport type ModalContextProps = {\r\n modal: ModalProps;\r\n prevModalContent: null;\r\n setModal: (modal: ModalProps) => void;\r\n};\r\n\r\nconst ModalContext = createContext({\r\n modal: null,\r\n setModal: null\r\n});\r\n\r\nfunction ModalProvider({ children }) {\r\n // state\r\n const [modal, setModal] = useState(null);\r\n const modalContent = modal?.content;\r\n const prevModalContent = usePrevious(Boolean(modalContent));\r\n\r\n useEffect(() => {\r\n if (modalContent && !prevModalContent) {\r\n document.body.classList.add('menu-active');\r\n } else if (!modalContent && prevModalContent) {\r\n document.body.classList.remove('menu-active');\r\n }\r\n\r\n return () => {\r\n document.body.classList.remove('menu-active');\r\n };\r\n }, [modalContent, prevModalContent]);\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n\r\nModalProvider.propTypes = {\r\n children: ChildrenPropTypes\r\n};\r\n\r\nexport default ModalProvider;\r\n\r\nexport const ModalConsumer = ModalContext.Consumer;\r\n\r\nexport function withModalContext(\r\n WrappedComponent: React.ComponentType\r\n) {\r\n // Try to create a nice displayName for React Dev Tools.\r\n const displayName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\r\n\r\n const withModalContext: React.FC> = (props) => (\r\n \r\n {(value) => }\r\n \r\n );\r\n\r\n withModalContext.displayName = `withModalContext(${displayName})`;\r\n\r\n return withModalContext;\r\n}\r\n","import { useTranslation } from 'react-i18next';\r\n\r\nexport const getDictionaryItem = (key: string, fallbackText = '') => {\r\n let text = '';\r\n\r\n try {\r\n const [t] = useTranslation();\r\n\r\n text = t(key);\r\n }\r\n catch (e) {\r\n text = fallbackText;\r\n }\r\n finally {\r\n // if empty in Sitecore, returns the key, so check\r\n // that values are not the same\r\n return (text !== key) ? text : fallbackText;\r\n }\r\n}\r\n","import styled from 'styled-components';\r\n\r\nimport { flex, layout, text, spacing, color, isPlainValue } from '_utils/props/';\r\nimport { ITheme } from '_containers/Theme/intheblack/definitions';\r\nimport mq, { getZeroMediaQuery } from '../../styles/mq';\r\n\r\n\r\nconst toPercent = (col: any, colCount: number): string => `${(parseInt(col) / colCount) * 100}%`;\r\n\r\nconst wrapWithMediaQuery = (breakpoint: string, value): string => {\r\n value = Array.isArray(value) ? value.join('') : value;\r\n if (breakpoint !== getZeroMediaQuery()) {\r\n return `\r\n ${mq(breakpoint)} {\r\n ${value}\r\n }\r\n `;\r\n }\r\n return `${value}`;\r\n};\r\n\r\nconst getColStyles = (col: any, colCount: number): string => {\r\n if (col === 'auto') {\r\n return `\r\n flex-basis: 0;\r\n flex-grow: 1;\r\n max-width: 100%;\r\n `;\r\n }\r\n\r\n return `\r\n flex: 0 0 ${toPercent(col, colCount)};\r\n max-width: ${toPercent(col, colCount)};\r\n `;\r\n};\r\n\r\nconst columns = (col: any, theme: ITheme) => {\r\n // 1 grid size all breakpoints\r\n if (isPlainValue(col)) {\r\n return getColStyles(col, theme.grid.colCount);\r\n }\r\n\r\n // At this point cols should be an object;\r\n // {sm: 4, md: 6}\r\n return Object.keys(col).map((size) =>\r\n wrapWithMediaQuery(size, getColStyles(col[size], theme.grid.colCount))\r\n );\r\n};\r\n\r\nconst offset = (offset, theme) => {\r\n // 1 grid size all breakpoints\r\n if (isPlainValue(offset)) {\r\n return `margin-left: ${toPercent(offset, theme.grid.colCount)};`;\r\n }\r\n\r\n // At this point value should be an object;\r\n // {sm: 4, md: 6}\r\n return Object.keys(offset).map((size) =>\r\n wrapWithMediaQuery(size, `margin-left: ${toPercent(offset[size], theme.grid.colCount)};`)\r\n );\r\n};\r\n\r\nconst push = (push, theme) => {\r\n // 1 grid size all breakpoints\r\n if (isPlainValue(push)) {\r\n return `margin-right: ${toPercent(push, theme.grid.colCount)};`;\r\n }\r\n\r\n // At this point value should be an object;\r\n // {sm: 4, md: 6}\r\n return Object.keys(push).map((size) =>\r\n wrapWithMediaQuery(size, `margin-right: ${toPercent(push[size], theme.grid.colCount)};`)\r\n );\r\n};\r\n\r\nconst order = (order) => {\r\n const propType = typeof order;\r\n\r\n // 1 grid size all breakpoints\r\n if (propType === 'string' || propType === 'number') {\r\n return `order: ${order};`;\r\n }\r\n\r\n // At this point value should be an object;\r\n // {sm: 4, md: 6}\r\n return Object.keys(order).map((size) => wrapWithMediaQuery(size, `order: ${order[size]};`));\r\n};\r\n\r\nconst gutters = ({ config, theme }) => {\r\n const gutters = config && config.gutters ? config.gutters : theme.grid.gutter.directions;\r\n\r\n return Object.keys(theme.grid.gutter.size).map((breakpoint) =>\r\n wrapWithMediaQuery(\r\n breakpoint,\r\n gutters.map((dir) => `padding-${dir}: ${theme.grid.gutter.size[breakpoint] / 2}px;`)\r\n )\r\n );\r\n};\r\n\r\nconst borders = ({ config, theme }) => {\r\n const borders = config && config.borders;\r\n\r\n if (!borders) {\r\n return '';\r\n }\r\n\r\n const borderColor = config && config.borderColor ? config.borderColor : theme.grid.borderColor;\r\n const borderWidth = config && config.borderWidth ? config.borderWidth : theme.grid.borderWidth;\r\n\r\n const gutters = config && config.gutters ? config.gutters : theme.grid.gutter.directions;\r\n const gutterLeft = gutters.indexOf('left') > -1;\r\n const gutterRight = gutters.indexOf('right') > -1;\r\n const gutterTop = gutters.indexOf('top') > -1;\r\n const gutterBottom = gutters.indexOf('bottom') > -1;\r\n\r\n return Object.keys(theme.grid.gutter.size).map((breakpoint) =>\r\n wrapWithMediaQuery(\r\n breakpoint,\r\n `\r\n :after {\r\n\r\n content: '';\r\n position: absolute;\r\n top: ${gutterTop ? theme.grid.gutter.size[breakpoint] / 2 : 0}px;\r\n left: ${gutterLeft ? theme.grid.gutter.size[breakpoint] / 2 : 0}px;\r\n width: calc(100% - ${gutterLeft ? theme.grid.gutter.size[breakpoint] / 2 : 0}px - ${gutterRight ? theme.grid.gutter.size[breakpoint] / 2 : 0\r\n }px );\r\n height: calc(100% - ${gutterTop ? theme.grid.gutter.size[breakpoint] / 2 : 0}px - ${gutterBottom ? theme.grid.gutter.size[breakpoint] / 2 : 0\r\n }px );\r\n pointer-events: none;\r\n\r\n ${borders.map((dir) => `border-${dir}: ${borderWidth} solid ${borderColor};`).join('')};\r\n }`\r\n )\r\n );\r\n};\r\n\r\n// reverse effect of item gutters with negative margins\r\nconst rowGutters = ({ config, theme }) => {\r\n const gutters = config && config.gutters ? config.gutters : theme.grid.gutter.directions;\r\n\r\n return Object.keys(theme.grid.gutter.size).map((breakpoint) =>\r\n wrapWithMediaQuery(\r\n breakpoint,\r\n gutters.map((dir) => `margin-${dir}: -${theme.grid.gutter.size[breakpoint] / 2}px;`)\r\n )\r\n );\r\n};\r\n\r\nconst calculateItemConfig = ({ config, theme }) => {\r\n const styles = [];\r\n\r\n if (typeof config.col !== 'undefined') {\r\n styles.push(columns(config.col, theme));\r\n }\r\n\r\n if (typeof config.order !== 'undefined') {\r\n styles.push(order(config.order));\r\n }\r\n\r\n if (typeof config.offset !== 'undefined') {\r\n styles.push(offset(config.offset, theme));\r\n }\r\n\r\n if (typeof config.push !== 'undefined') {\r\n styles.push(push(config.push, theme));\r\n }\r\n\r\n return styles;\r\n};\r\n\r\nconst Container = styled.div`\r\n width: 100%;\r\n max-width: ${(props) => (props.fluid ? 'none' : `${props.theme.grid.containerMaxWidth}px`)};\r\n min-width: ${(props) => (props.fluid ? 'none' : `${props.theme.grid.containerMinWidth}px`)};\r\n margin-right: auto;\r\n margin-left: auto;\r\n\r\n padding-left: ${({ theme }) => theme.grid.margin.xs}px;\r\n padding-right: ${({ theme }) => theme.grid.margin.xs}px;\r\n\r\n ${mq('md')} {\r\n padding-left: ${({ theme }) => theme.grid.margin.md}px;\r\n padding-right: ${({ theme }) => theme.grid.margin.md}px;\r\n }\r\n\r\n ${mq('lg')} {\r\n padding-left: ${({ theme }) => theme.grid.margin.lg}px;\r\n padding-right: ${({ theme }) => theme.grid.margin.lg}px;\r\n }\r\n\r\n ${mq('xl')} {\r\n padding-left: 0;\r\n padding-right: 0;\r\n }\r\n\r\n ${spacing}\r\n`;\r\n\r\nconst Row = styled.div`\r\n display: flex;\r\n ${flex}\r\n ${rowGutters}\r\n ${spacing}\r\n`;\r\n\r\nRow.defaultProps = {\r\n flexWrap: 'wrap'\r\n};\r\n\r\nconst Item = styled.div`\r\n position: relative;\r\n width: 100%;\r\n ${color}\r\n ${layout}\r\n ${flex}\r\n ${text}\r\n ${spacing}\r\n ${gutters}\r\n ${borders}\r\n ${calculateItemConfig}\r\n`;\r\n\r\nItem.defaultProps = {\r\n config: {\r\n gridX: true,\r\n gridY: true\r\n }\r\n};\r\n\r\nexport default {\r\n Container,\r\n Row,\r\n Item\r\n};\r\n","import { css } from 'styled-components';\r\nimport { aspect } from '_utils/styles/layout';\r\n\r\n/*\r\n * create a container with fixed aspect ratio\r\n * using the padding-top aspect ratio trick to create a container\r\n */\r\n\r\nexport default (width = 100, height = 100) => css`\r\n ${aspect(width, height)}\r\n\r\n display: inline-block;\r\n\r\n svg,\r\n img {\r\n display: block;\r\n position: absolute;\r\n width: 100%;\r\n height: 100%;\r\n left: 0;\r\n top: 0;\r\n }\r\n`;\r\n\r\n// Encode symbols\r\nfunction urlEncode(string) {\r\n const encodingMap = [\r\n [/%/g, '%25'],\r\n [//g, '%3E'],\r\n [/ /g, '%20'],\r\n [/!/g, '%21'],\r\n [/\\*/g, '%2A'],\r\n [/'/g, '%27'],\r\n [/\"/g, '%22'],\r\n [/\\(/g, '%28'],\r\n [/\\)/g, '%29'],\r\n [/;/g, '%3B'],\r\n [/:/g, '%3A'],\r\n [/@/g, '%40'],\r\n [/&/g, '%26'],\r\n [/=/g, '%3D'],\r\n [/\\+/g, '%2B'],\r\n [/\\$/g, '%24'],\r\n [/,/g, '%2C'],\r\n [/\\//g, '%2F'],\r\n [/\\?/g, '%3F'],\r\n [/#/g, '%23'],\r\n [/\\[/g, '%5B'],\r\n [/\\]/g, '%5D']\r\n ];\r\n\r\n for (let i = 0; i < encodingMap.length; i++) {\r\n const entry = encodingMap[i];\r\n const search = entry[0];\r\n const replacement = entry[1];\r\n string = string.replace(search, replacement);\r\n }\r\n\r\n return string;\r\n}\r\n\r\n// Format the SVG as a URL\r\nexport function cssInlineSvg(svgString: string) {\r\n return `url(\"data:image/svg+xml,${urlEncode(svgString)}\")`;\r\n}\r\n","import styled from 'styled-components';\r\nimport { showForSR } from '_utils/styles';\r\n\r\nexport default styled.span`\r\n ${showForSR}\r\n`;\r\n","import colors from '../../containers/Theme/corporate/colors';\r\n\r\nexport default {\r\n carousel: {\r\n \r\n },\r\n item: {\r\n card: {\r\n borderRadius: 4,\r\n background: colors.background.tint1,\r\n boxShadow: '0px 1px 1px rgba(0,0,0,0.08),0px 2px 4px rgba(0,0,0,0.12)',\r\n hoverBoxShadow: '0px 1px 4px rgb(0 0 0 / 8%), 0px 6px 16px rgb(0 0 0 / 12%)',\r\n },\r\n tags: {\r\n color: colors.text.subtle,\r\n background: colors.background.tint3,\r\n },\r\n title: {\r\n \r\n },\r\n htmlContent: {\r\n color: colors.text.subtle,\r\n }\r\n }\r\n};\r\n\r\nexport const darkMode = {};\r\n","import colors from '_containers/Theme/corporate/colors';\r\nimport {\r\n headingH3,\r\n headingH4,\r\n subheading2,\r\n textBody1\r\n} from '_utils/styles';\r\n\r\nexport default {\r\n heading: headingH3,\r\n introduction: {\r\n subheading: subheading2,\r\n },\r\n completedMessage: {\r\n heading: {\r\n headingH4: headingH4,\r\n color: colors.all.brandSecondary3Dark,\r\n },\r\n subheading: {\r\n text: textBody1,\r\n fontWeight: 'bold',\r\n },\r\n text: textBody1,\r\n iconWrapper: {\r\n color: colors.all.brandSecondary3,\r\n },\r\n },\r\n};\r\n","import colors from '_containers/Theme/corporate/colors';\r\n\r\n\r\nexport default {\r\n container: {\r\n border: `1px solid`,\r\n borderColor: colors.all.neutral200,\r\n textColor: \"#090D46\"\r\n },\r\n infoSessionName: {\r\n background: \"#090D46\",\r\n desktopFontSize:\"18px\",\r\n TabletFontSize:\"16px\",\r\n mobileFontSize:\"16px\"\r\n },\r\n date: {\r\n background: \"#090D46\",\r\n desktopNumberFontSize:\"36px\",\r\n desktopTextFontSize:\"22px\",\r\n tabletNumberFontSize:\"36px\",\r\n tabletTextFontSize:\"22px\",\r\n mobileNumberFontSize:\"24px\",\r\n mobileTextFontSize:\"24px\"\r\n \r\n },\r\n schedule: {\r\n background: \"#090D46\",\r\n desktopFontSize:\"12px\",\r\n tabletFontSize:\"12px\",\r\n mobileFontSize:\"12px\"\r\n },\r\n divider: {\r\n background: \"#0A5CC7\"\r\n },\r\n address: {\r\n background: \"#090D46\",\r\n desktopFontSize:\"12px\",\r\n tabletFontSize:\"12px\",\r\n mobileFontSize:\"12px\"\r\n },\r\n leftbar:{\r\n background: colors.background.brandPrimary1,\r\n desktopSize:\"6px\",\r\n tabletSize:\"6px\"\r\n }\r\n};\r\n\r\n\r\n\r\n","import colors from '_containers/Theme/corporate/colors';\r\n\r\nexport default {\r\n backgroundColor: colors.all.brandPrimary3,\r\n color: colors.all.neutralWhite,\r\n iconColor: colors.all.brandPrimary2,\r\n normal: {\r\n borderRadius: 0,\r\n },\r\n nextBestAction: {\r\n borderRadius: 8,\r\n },\r\n linkWrapper: {\r\n color: colors.all.neutralWhite\r\n },\r\n linkButton: {\r\n pathFillColor: colors.all.neutralWhite\r\n },\r\n outline: {\r\n focusColor: colors.all.neutralWhite\r\n }\r\n};","import colors from '_containers/Theme/corporate/colors';\r\n\r\nexport default {\r\n action: colors.all.brandPrimary1,\r\n attributeIcon: colors.all.neutral700,\r\n background: `transparent`,\r\n cardBackground: colors.all.neutralWhite,\r\n border: `1px solid ${colors.all.neutral200}`,\r\n borderDashed: `0px dashed ${colors.all.neutral200}`,\r\n borderDashedHover: `0px dashed ${colors.all.neutral800}`,\r\n borderFocus: `2px solid ${colors.all.interactive200}`,\r\n borderHover: `none`,\r\n borderRadius: 4,\r\n borderSelected: `none`,\r\n boxShadow: null,\r\n boxShadowHover: null,\r\n ctaColor: 'tertiary',\r\n highlightColour: {\r\n campaign: colors.all.brandPrimary1,\r\n category: colors.all.brandPrimary1,\r\n contentDetail: colors.all.brandPrimary1,\r\n inPractice: colors.all.brandSecondary2,\r\n inTheBlack: colors.all.brandSecondary3,\r\n textOnly: colors.all.brandPrimary1,\r\n podcastEpisodeCard: colors.all.brandSecondary3Dark,\r\n podcastSeriesCard: colors.all.brandPrimary2,\r\n // page level\r\n podcastSeries: colors.all.brandPrimary2,\r\n podcast: colors.all.brandSecondary3Dark,\r\n }\r\n};\r\n\r\nexport const darkMode = {\r\n background: colors.all.brandPrimary3,\r\n headingColor: colors.all.neutralWhite,\r\n color: colors.all.neutralWhite,\r\n ctaColor: 'tertiaryDark',\r\n};\r\n","import colors from '_containers/Theme/corporate/colors';\r\n\r\nexport default {\r\n background: colors.all.brandPrimary3,\r\n color: colors.all.neutralWhite,\r\n cutoutBackground: colors.all.neutralBlack,\r\n subtitleColor: colors.all.neutral75,\r\n};\r\n","import colors from '_containers/Theme/corporate/colors';\r\n\r\nexport default {};\r\n\r\nexport const darkMode = {\r\n action: colors.all.brandPrimary1,\r\n attributeIcon: colors.all.neutral700,\r\n background: colors.all.brandPrimary3,\r\n cardBackground: colors.all.neutralWhite,\r\n border: `1px solid ${colors.all.neutral200}`,\r\n borderDashed: `0px dashed ${colors.all.neutral200}`,\r\n borderDashedHover: `0px dashed ${colors.all.neutral800}`,\r\n borderFocus: `2px solid ${colors.all.interactive200}`,\r\n borderHover: `none`,\r\n borderRadius: 4,\r\n borderSelected: `none`,\r\n boxShadow: null,\r\n boxShadowHover: null,\r\n color: colors.all.neutralWhite,\r\n ctaColor: 'tertiary',\r\n theme: {\r\n light: {\r\n headerColor: colors.background.darkBlue,\r\n backToParentColor: colors.all.brandPrimary3,\r\n color: colors.all.brandPrimary3,\r\n },\r\n dark: {\r\n headerColor: colors.text.neutral,\r\n backToParentColor: colors.text.neutral,\r\n color: colors.text.neutral,\r\n },\r\n background: {\r\n yellow: colors.element.primary2,\r\n teal: colors.all.brandSecondary3,\r\n orange: colors.brand.orange.secondary,\r\n blue: colors.element.primary,\r\n purple: colors.element.secondary,\r\n black: colors.element.neutralBlack\r\n }\r\n }\r\n};\r\n","import colors from '_containers/Theme/intheblack/colors';\r\n\r\nexport default {\r\n color: colors.all.brandPrimary1\r\n};\r\n","import colors from '_containers/Theme/corporate/colors';\r\nimport {\r\n headingH5,\r\n subheading1,\r\n textBody1,\r\n textBody2\r\n} from '_utils/styles';\r\n\r\nexport default {\r\n base: {\r\n maxWidth: 91.67 // mimic 10/12 columns\r\n },\r\n blockquote: {\r\n background: colors.all.brandSecondary3,\r\n heading: subheading1,\r\n },\r\n externalLink: {\r\n icon: {\r\n afterColor: colors.all.brandPrimary1,\r\n hoverColor: colors.all.neutralWhite\r\n }\r\n },\r\n list: {\r\n textbody: textBody2,\r\n marker: {\r\n content: \"-\",\r\n fontSize: '24px',\r\n color: colors.element.primary3,\r\n },\r\n border: `2px solid`,\r\n borderColor: colors.element.primary,\r\n color: colors.element.primary,\r\n fontSize: headingH5\r\n },\r\n paragraph: textBody1,\r\n orderedList: {\r\n bullet: {\r\n fontSize: '27px',\r\n top: '-4px'\r\n },\r\n lineHeight: 24,\r\n md: {\r\n lineHeight: 28,\r\n },\r\n padding: '0 0 0 22px',\r\n },\r\n richTextWithImage: {\r\n captionColor: colors.all.neutral500\r\n },\r\n table: {\r\n head: {\r\n background: colors.table.head.background,\r\n color: colors.table.head.color,\r\n },\r\n row: {\r\n background: colors.table.row.background,\r\n backgroundAlt: colors.table.row.backgroundAlt,\r\n },\r\n cell: {\r\n border: `1px solid`,\r\n borderColor: colors.table.cell.border\r\n }\r\n }\r\n};\r\n","import colors from '_containers/Theme/corporate/colors';\r\nimport { headingH2 } from '_utils/styles';\r\n\r\nexport default {\r\n background: colors.all.neutral50,\r\n heading: headingH2,\r\n headingColor: colors.all.brandPrimary3,\r\n my: 3,\r\n p: 3,\r\n textBody: colors.all.textBody\r\n}","import colors from '_containers/Theme/corporate/colors';\r\n\r\nexport default {\r\n introduction: {\r\n color: colors.text.secondary\r\n },\r\n chartRoundingLabel: {\r\n color: colors.text.subtle\r\n },\r\n details: {\r\n thisYear: {\r\n background: colors.element.primary2,\r\n },\r\n threeYears: {\r\n background: colors.element.primary\r\n }\r\n },\r\n item: {\r\n span: {\r\n color: colors.text.subtle\r\n },\r\n strong: {\r\n color: colors.text.secondary\r\n }\r\n },\r\n footnote: {\r\n color: colors.text.subtle\r\n },\r\n callToAction: {\r\n borderColor: colors.ui.divider\r\n },\r\n ctaIconWrapper: {\r\n color: colors.element.primary\r\n },\r\n ctaHeading: {\r\n color: colors.text.subtle\r\n },\r\n ctaLinkIconWrapper: {\r\n color: colors.element.primary\r\n }\r\n};\r\n","import colors from '_containers/Theme/colors';\r\n\r\nexport default {\r\n label: {\r\n color: colors.neutral700\r\n },\r\n error: {\r\n background: colors.error100,\r\n border: colors.error500,\r\n color: colors.error500\r\n },\r\n success: {\r\n background: colors.success100,\r\n border: colors.success500\r\n },\r\n input: {\r\n background: colors.neutralWhite,\r\n backgroundDisabled: colors.neutral50,\r\n border: colors.neutral200,\r\n borderDisabled: colors.neutral200,\r\n borderError: colors.error500,\r\n borderFocus: colors.interactive500,\r\n borderFocusError: colors.error500,\r\n borderHover: colors.neutral800,\r\n color: colors.neutral700,\r\n colorDisabled: colors.neutral300,\r\n },\r\n select: {\r\n active: colors.interactive500,\r\n iconColor: colors.brandPrimary1,\r\n selected: colors.neutral300\r\n },\r\n check: {\r\n background: colors.neutralWhite,\r\n backgroundDisabled: colors.neutral50,\r\n border: colors.neutral700,\r\n borderDisabled: colors.neutral300,\r\n borderError: colors.error500,\r\n borderFocus: colors.interactive500,\r\n borderHover: colors.neutral700,\r\n color: colors.neutralWhite,\r\n colorDisabled: colors.neutral300,\r\n colorHover: colors.neutralWhite,\r\n selectedBackground: colors.interactive500,\r\n selectedBackgroundFocus: colors.interactive600,\r\n selectedBackgroundHover: colors.interactive600,\r\n selectedBorder: colors.interactive500,\r\n selectedBorderFocus: colors.interactive200,\r\n selectedBorderHover: colors.interactive600\r\n },\r\n button: {\r\n background: colors.interactive500,\r\n backgroundActive: colors.neutral600,\r\n backgroundDisabled: colors.neutral50,\r\n backgroundHover: colors.interactive600,\r\n borderRadius: 24,\r\n color: colors.neutralWhite,\r\n colorDisabled: colors.neutral300,\r\n outline: colors.interactive200\r\n },\r\n spinner: {\r\n color: colors.neutral500\r\n }\r\n};\r\n","import colors from '_containers/Theme/corporate/colors';\r\n\r\nexport default {\r\n lightBanner: {\r\n headerColor: colors.all.brandPrimary3,\r\n color: colors.all.neutral700,\r\n },\r\n darkBanner: {\r\n headerColor: colors.all.neutralWhite,\r\n color: colors.all.darkText,\r\n },\r\n background: {\r\n yellow: colors.all.brandPrimary2,\r\n teal: colors.all.brandSecondary3,\r\n orange: colors.all.brandSecondary2,\r\n blue: colors.all.brandPrimary1,\r\n purple: colors.all.brandSecondary1,\r\n },\r\n container: {\r\n mediaPrint: {\r\n background: colors.background.tint1,\r\n color: colors.element.neutralBlack\r\n },\r\n minHeight: 308,\r\n },\r\n linkButton: {\r\n pathFillColor: colors.all.neutralWhite\r\n },\r\n outline: {\r\n focusColor: colors.all.neutralWhite\r\n }\r\n};\r\n","import colors from '_containers/Theme/corporate/colors';\r\n\r\nexport default {\r\n link: {\r\n minWidth: {\r\n md: '280px',\r\n }\r\n },\r\n title: {\r\n color: colors.text.interactive1,\r\n colorHover: colors.text.interactive1Hover,\r\n colorVisited: colors.text.visited,\r\n fontWeight: 'normal',\r\n },\r\n icon: {\r\n color: colors.text.interactive1,\r\n colorHover: colors.text.interactive1Hover,\r\n },\r\n subtitle: {\r\n color: colors.text.subtle\r\n }\r\n};\r\n","import colors from '_containers/Theme/intheblack/colors';\r\n\r\n// this can be change to corporate theme in the future if need\r\nexport default {\r\n container: {\r\n column: {\r\n border: colors.all.brandPrimary2,\r\n background: colors.darkTheme.background.tint3,\r\n },\r\n sidebar: {\r\n border: colors.all.interactive500,\r\n background: colors.darkTheme.background.tint2,\r\n }\r\n },\r\n title: {\r\n color: colors.all.darkTextContrast\r\n },\r\n link: {\r\n color: colors.all.darkTextContrast,\r\n hoverColor: colors.darkTheme.text.interactive1Hover,\r\n iconColor: colors.darkTheme.text.interactive1\r\n },\r\n button: {\r\n color: colors.all.darkTextContrast,\r\n iconColor: colors.all.darkTextContrast\r\n }\r\n}","import colors from '_containers/Theme/corporate/colors';\r\n\r\nexport default {\r\n background: `transparent`,\r\n action: colors.all.brandPrimary1,\r\n playButtonBackground: `rgba(255, 255, 255, 0.7)`\r\n};\r\n","import colors from '_containers/Theme/corporate/colors';\r\n\r\nexport default {\r\n container: {\r\n backgroundPrimary: colors.all.brandPrimary3,\r\n backgroundSecondary: colors.all.darkBackgroundTint1,\r\n divider: colors.all.transparent,\r\n },\r\n toolbar: {\r\n activeHighlight: colors.all.brandPrimary2,\r\n background: colors.all.brandPrimary3,\r\n buttonColor: colors.all.neutralWhite,\r\n color: colors.all.darkTextSubtle,\r\n colorActive: colors.all.neutralWhite,\r\n divider: colors.all.darkBackground,\r\n },\r\n item: {\r\n background: colors.all.transparent,\r\n backgroundActive: colors.all.darkBackgroundTint1,\r\n color: colors.all.neutralWhite,\r\n colorActive: colors.all.neutralWhite,\r\n colorHighlight: colors.all.brandPrimary2,\r\n colorLabel: colors.all.darkTextSubtle,\r\n description: colors.all.darkText,\r\n descriptionActive: colors.all.darkText,\r\n focusHighlight: colors.all.focusGrey,\r\n groupLabelColor: colors.all.darkTextSubtle,\r\n },\r\n};\r\n","import colors from '_containers/Theme/corporate/colors';\r\n\r\nexport default {\r\n background: colors.all.neutral50,\r\n backgroundActive: colors.all.neutralWhite,\r\n border: `1px solid ${colors.all.neutral200}`,\r\n borderActive: `2px solid ${colors.all.brandPrimary1}`,\r\n iconFill: colors.all.neutral400,\r\n inputBorderRadius: '74px 0 0 74px',\r\n inputBorderRadiusLessThanMd: '74px',\r\n outlineColour: colors.all.interactive300,\r\n clear: {\r\n borderRadius: '1px',\r\n height: '4px',\r\n iconFill: colors.all.neutral500,\r\n left: '-10px',\r\n top: '-1px',\r\n width: '8px',\r\n },\r\n submit: {\r\n background: colors.all.neutral200,\r\n backgroundActive: colors.all.brandPrimary1,\r\n borderHover: colors.all.interactive600,\r\n borderRadius: '0 74px 74px 0',\r\n height: '4px',\r\n iconFill: colors.all.neutral700,\r\n iconFillActive: colors.all.neutralWhite,\r\n left: '0',\r\n minWidth: '56px',\r\n padding: '0px 5px 0px 0px',\r\n top: '-2px',\r\n width: '2px',\r\n },\r\n};\r\n","import colors from '_containers/Theme/corporate/colors';\r\n\r\nexport default {\r\n container: {\r\n background: colors.background.tint2\r\n },\r\n pageContainer: {\r\n color: colors.text.secondary\r\n },\r\n separator: {\r\n color: colors.text.nonessential\r\n }\r\n\r\n};\r\n\r\n","import colors from '_containers/Theme/corporate/colors';\r\n\r\nexport default {\r\n container: {\r\n background: colors.background.tint2\r\n },\r\n formContainer: {\r\n borderColor: colors.ui.divider\r\n }\r\n};\r\n\r\n","import colors from '_containers/Theme/corporate/colors';\r\n\r\nexport default {\r\n dialog: {\r\n background: colors.modal.container.background,\r\n },\r\n crossWrapper: {\r\n pathFillColor: colors.modal.close.fill,\r\n closeButtonHover: {\r\n pathFillColor: colors.modal.close.fillHover,\r\n }\r\n }\r\n};","import colors from '_containers/Theme/corporate/colors';\r\n\r\nexport default {\r\n lightBanner: {\r\n headerColor: colors.background.darkBlue,\r\n color: colors.text.default,\r\n },\r\n darkBanner: {\r\n headerColor: colors.background.tint1,\r\n color: colors.text.dark.default,\r\n },\r\n background: {\r\n yellow: colors.element.primary2,\r\n teal: colors.featureList.tick,\r\n orange: colors.brand.orange.secondary,\r\n blue: colors.element.primary,\r\n purple: colors.element.secondary,\r\n black: colors.element.neutralBlack\r\n }\r\n};\r\n","import colors from '_containers/Theme/corporate/colors';\r\n\r\nexport default {\r\n lightBanner: {\r\n color: colors.text.default,\r\n headerColor: colors.background.darkBlue,\r\n },\r\n darkBanner: {\r\n color: colors.text.dark.default,\r\n headerColor: colors.background.tint1,\r\n },\r\n background: {\r\n black: colors.element.neutralBlack,\r\n blue: colors.element.primary,\r\n orange: colors.brand.orange.secondary,\r\n purple: colors.element.secondary,\r\n teal: colors.featureList.tick,\r\n yellow: colors.element.primary2,\r\n }, \r\n border: {\r\n color: colors.ui.divider\r\n }, \r\n icon: {\r\n color: colors.all.brandPrimary1\r\n }\r\n};\r\n","import colors from '_containers/Theme/corporate/colors';\r\n\r\nexport default {\r\n background: colors.all.neutralWhite,\r\n borderColor: colors.all.neutral200,\r\n headerColor: colors.all.brandPrimary3,\r\n height: {\r\n fixed: 73,\r\n md: 93,\r\n xs: 65\r\n },\r\n logo: {\r\n svg: {\r\n md: {\r\n height: 52,\r\n width: 120,\r\n },\r\n sticky: {\r\n md: {\r\n height: 48,\r\n width: 110,\r\n }\r\n }\r\n }\r\n },\r\n menu: {\r\n button: { \r\n paddingLeft: '40px'\r\n },\r\n fontWeight: 'bold',\r\n dashboardMenuButton: {\r\n marginLeft: null\r\n },\r\n md: {\r\n paddingLeft: '0',\r\n marginLeft: '40px'\r\n }\r\n },\r\n overlayColor: colors.all.neutralBlack,\r\n position: {\r\n stickyOnMobile: true\r\n },\r\n searchContainer: {\r\n width: '520px',\r\n md: {\r\n paddingLeft: '37px',\r\n width: '410px'\r\n }\r\n },\r\n skipContainer: {\r\n background: colors.background.tint2\r\n },\r\n skipLink: {\r\n color: colors.all.neutralBlack,\r\n focus: {\r\n outlineColor: colors.element.focused\r\n }\r\n }\r\n};\r\n","import colors from '_containers/Theme/corporate/colors';\r\n\r\n\r\nexport default {\r\n column: {\r\n borderBottom: colors.all.neutral200\r\n },\r\n body: {\r\n color: colors.all.brandSecondary2Dark,\r\n svgFill: colors.all.brandSecondary2,\r\n exempt: {\r\n color: colors.all.brandSecondary3Dark,\r\n svgFill: colors.all.brandSecondary3\r\n }\r\n },\r\n item: {\r\n span: {\r\n unknown: {\r\n color: colors.text.subtle\r\n }\r\n },\r\n subjects: {\r\n color: colors.all.brandPrimary1\r\n }\r\n }\r\n}","import colors from '_containers/Theme/corporate/colors';\r\n\r\n\r\nexport default {\r\n searchMenuHeader: {\r\n borderColor: colors.background.disabled\r\n },\r\n closeIcon: {\r\n pathFillColor: colors.element.neutralWhite,\r\n },\r\n searchMenuButton: {\r\n pathFillColor: colors.all.brandPrimary3,\r\n focus: colors.element.focused,\r\n label: {\r\n color: colors.all.brandPrimary3\r\n }\r\n }\r\n}","import colors from '_containers/Theme/corporate/colors';\r\n\r\nexport default {\r\n background: {\r\n dark: colors.all.brandPrimary3,\r\n default: colors.all.neutralWhite,\r\n subtle: colors.all.neutral50,\r\n subtle2: colors.all.neutral100,\r\n subtle3: colors.all.neutral200,\r\n },\r\n border: {\r\n dark: colors.all.neutral300,\r\n default: colors.all.neutral200,\r\n outline: colors.all.interactive200,\r\n },\r\n button: {\r\n background: colors.all.brandPrimary1,\r\n backgroundHover: colors.all.brandPrimary1Dark,\r\n },\r\n cards: {\r\n content: colors.all.brandPrimary1,\r\n course: colors.all.brandSecondary3,\r\n event: colors.all.brandPrimary1,\r\n inTheBlack: colors.all.brandSecondary3,\r\n inPractice: colors.all.brandSecondary2,\r\n podcastSeries: colors.all.brandPrimary2,\r\n podcast: colors.all.brandSecondary3Dark,\r\n podcastTopic: colors.all.brandSecondary3Dark,\r\n },\r\n text: {\r\n dark: colors.all.neutral600,\r\n dark2: colors.all.neutral900,\r\n default: colors.all.neutral700,\r\n error: colors.all.error500,\r\n primary: colors.all.brandPrimary1,\r\n primaryDark: colors.all.brandPrimary3,\r\n subtle: colors.all.neutral500,\r\n subtle2: colors.all.neutral400,\r\n subtle3: colors.all.neutral300,\r\n light: colors.all.neutralWhite,\r\n },\r\n};\r\n","import colors from '_containers/Theme/corporate/colors';\r\n\r\n\r\nexport default {\r\n figcaption: {\r\n color: colors.element.primary3\r\n },\r\n iconContainer: {\r\n pathFillColor: colors.all.neutral700\r\n },\r\n textWrapper: colors.text.default,\r\n credit: {\r\n color: colors.text.subtle\r\n }\r\n}","import colors from '_containers/Theme/corporate/colors';\r\n\r\nexport default {\r\n circle: {\r\n borderColor: colors.all.brandPrimary1,\r\n color: colors.all.brandPrimary1,\r\n completed:{\r\n background: colors.all.neutralWhite,\r\n bppAssessment: {\r\n background: colors.text.dark.default,\r\n borderColor: colors.all.neutralWhite,\r\n color: colors.all.brandPrimary3\r\n }\r\n },\r\n active: {\r\n background: colors.all.brandPrimary1,\r\n color: colors.all.neutralWhite,\r\n disabled: {\r\n background: colors.all.neutralWhite,\r\n borderColor: colors.all.neutral300,\r\n color: colors.all.neutral400,\r\n bppAssessment: {\r\n background: colors.background.tint3,\r\n borderColor: colors.background.tint5,\r\n color: colors.text.nonessential\r\n }\r\n }\r\n }\r\n },\r\n leftConnector: {\r\n background: colors.all.brandPrimary1,\r\n active: {\r\n background: colors.all.brandPrimary1\r\n },\r\n completed: {\r\n background: colors.all.brandPrimary1\r\n },\r\n disabled: {\r\n background: colors.all.neutral300\r\n },\r\n bppAssessment: {\r\n active: {\r\n background: colors.text.dark.secondary\r\n },\r\n completed: {\r\n background: colors.text.dark.secondary\r\n }\r\n }\r\n },\r\n circleWrapper: {\r\n background: colors.all.neutralWhite,\r\n greyBackground: colors.all.neutral50\r\n },\r\n labelWrapper: {\r\n active: {\r\n color: colors.all.brandPrimary3,\r\n background: colors.all.neutralWhite,\r\n greyBackground: colors.all.neutral50\r\n },\r\n disabled: {\r\n color: colors.all.neutral500\r\n },\r\n completed: {\r\n color: colors.all.brandPrimary3\r\n },\r\n bppAssessment: {\r\n color: colors.text.subtle\r\n }\r\n },\r\n iconWrapper: {\r\n color: colors.all.brandPrimary3,\r\n bppAssessment: {\r\n color: colors.messaging.colorError\r\n }\r\n }\r\n};\r\n","import colors from '_containers/Theme/corporate/colors';\r\n\r\n\r\nexport default {\r\n flickityWrapper: {\r\n dot: {\r\n background: colors.background.tint4\r\n },\r\n isSelected: {\r\n background: colors.all.brandPrimary1\r\n }\r\n },\r\n arrowWrapper: {\r\n pathFillColor: colors.element.neutralWhite\r\n }\r\n};\r\n","import {\r\n textBody1,\r\n}\r\n from '_utils/styles/';\r\n\r\n\r\nexport default {\r\n descriptionSize: textBody1\r\n};\r\n","import colors from '_containers/Theme/corporate/colors';\r\n\r\nconst defaultStyle = {\r\n borderRadius: '3px',\r\n padding: '1px 4px !important',\r\n}\r\nexport default {\r\n accordion: {\r\n ...defaultStyle,\r\n background: colors.all.neutralWhite,\r\n border: colors.all.neutral700,\r\n color: colors.all.neutral700,\r\n },\r\n accordionDark: {\r\n ...defaultStyle,\r\n background: colors.all.darkBackgroundTint1,\r\n color: colors.all.darkText,\r\n }\r\n}\r\n\r\nexport const darkMode = {\r\n ...defaultStyle,\r\n background: colors.all.darkBackgroundTint1,\r\n color: colors.all.darkText,\r\n}\r\n","import colors from '_containers/Theme/corporate/colors';\r\nimport { shadows } from '_containers/Theme/shared';\r\n\r\nexport default {\r\n action: colors.all.brandPrimary1,\r\n attributeIcon: colors.all.neutral700,\r\n background: `transparent`,\r\n cardBackground: colors.all.neutralWhite,\r\n border: `1px solid ${colors.all.neutral200}`,\r\n borderDashed: `0px dashed ${colors.all.neutral200}`,\r\n borderDashedHover: `0px dashed ${colors.all.neutral800}`,\r\n borderFocus: `2px solid ${colors.all.interactive200}`,\r\n borderHover: `none`,\r\n borderRadius: 4,\r\n borderSelected: `none`,\r\n boxShadow: shadows.elevation4,\r\n boxShadowHover: shadows.elevation16,\r\n};\r\n\r\nexport const darkMode = {\r\n background: colors.all.brandPrimary3,\r\n color: colors.all.neutralWhite,\r\n ctaColor: 'tertiaryDark',\r\n};","import colors from '_containers/Theme/corporate/colors';\r\n\r\nexport default {\r\n background: 'transparent',\r\n backgroundOverride: {\r\n Grey: colors.all.neutral50\r\n },\r\n divider: {\r\n color: colors.ui.divider\r\n }\r\n};\r\n\r\nexport const darkMode = {\r\n background: colors.all.brandPrimary3\r\n}\r\n","import personalisedCarousel from '_components/PersonalisationCarousel/variantSettings';\r\nimport accordion, { darkMode as accordionDarkTheme } from '_components/Accordion/variantSettings';\r\nimport agendaAccordion, { darkMode as agendaAccordionDarkTheme } from '_components/AgendaAccordion/variantSettings';\r\nimport bppAssessment from '_components/MMFBPPAssessment/variantSettings';\r\nimport breadcrumb from '_components/Breadcrumb/variantSettings';\r\nimport informationSession from '_components/InformationSession/variantSettings';\r\nimport callToAction from '_components/CallToAction/variantSettings';\r\nimport campaignNavigation from '_components/CampaignNavigation/variantSettings';\r\nimport campaignPageBanner from '_components/CampaignPageBanner/variantSettings';\r\nimport cardList, { darkMode as cardListDarkTheme } from '_components/CardList/variantSettings';\r\nimport cardListInTheBlackBanner from '_components/CardListInTheBlackBanner/variantSettings';\r\nimport { darkMode as cardListWithInternalNavigation } from '_components/CardListWithInternalNavigation/variantSettings';\r\nimport contactDetailsForm from '_components/MMFContactDetailsForm/variantSettings';\r\nimport contentRelated from '_components/ContentRelated/variantSettingsInTheBlack';\r\nimport contentRichText from '_components/ContentRichText/variantSettings';\r\nimport contentSummary from '_components/ContentSummary/variantSettings';\r\nimport cpdTracker from '_components/CPDTracker/variantSettings';\r\nimport dateLinkList, { darkMode as dateLinkListDarkTheme } from '_components/DateLinkList/variantSettings';\r\nimport documentList from '_components/DocumentList/variantSettings';\r\nimport form from '_components/Form/variantSettings';\r\nimport homepageBanner from '_components/HomepageBanner/variantSettings';\r\nimport imageCardGrid from '_components/ImageCardGrid/variantSettings';\r\nimport imageWithTitleAndText from '_components/ImageWithTitleAndText/variantSettings';\r\nimport inPageAnnouncement from '_components/Announcements/InPageAnnouncement/variantSettings';\r\nimport internalPageBanner from '_components/InternalPageBanner/variantSettings';\r\nimport lateralNavigation from '_components/LateralNavigation/variantSettings';\r\nimport linkList from '_components/LinkList/variantSettings';\r\nimport liveChat from '_components/LiveChat/variantSettings';\r\nimport magazineBanner from '_components/MagazineBanner/variantSettings';\r\nimport multiMediaEmbed from '_components/MultiMediaEmbed/variantSettings';\r\nimport mainMenu from '_components/MainMenu/variantSettings';\r\nimport mainSearch from '_components/MainSearch/variantSettings';\r\nimport masonryGrid, { darkMode as masonryGridDarkTheme } from '_components/MasonryGrid/variantSettings';\r\nimport memberDetails from '_components/MMFMemberDetails/variantSettings';\r\nimport memberRenewalForm from '_components/MMFMembershipRenewalForm/variantSettings';\r\nimport modal from '_components/Modal/variantSettings';\r\nimport pageBanner from '_components/PageBanner/variantSettings';\r\nimport pageBannerWithInternalNavigation from '_components/PageBannerWithInternalNavigation/variantSettings';\r\nimport pageFooter from '_components/PageFooter/variantSettings';\r\nimport pageHeader from '_components/PageHeader/variantSettings';\r\nimport placeholderDashboardSingleColumn from '_components/PlaceholderDashboardSingleColumn/variantSettings';\r\nimport profilePageBanner from '_components/ProfilePageBanner/variantSettings';\r\nimport programTracker from '_components/ProgramTracker/variantSettings';\r\nimport searchMenu from '_components/SearchMenu/variantSettings';\r\nimport searchResults from '_components/SearchResults/variantSettings';\r\nimport singleImage from '_components/SingleImage/variantSettings';\r\nimport siteWideAnnouncement from '_components/Announcements/SiteWideAnnouncement/variantSettings';\r\nimport staticTextAndImage from '_components/StaticTextAndImage/variantSettings';\r\nimport stepTracker from '_utils/components/StepTracker/variantSettings';\r\nimport tabs, { darkMode as tabsDarkTheme } from '_components/Tabs/variantSettings';\r\nimport timezoneSelector from '_components/TimezoneSelector/variantSettings';\r\n// utils\r\nimport carousel from '_utils/components/Carousel/variantSettings';\r\nimport headingWithDescription from '_utils/components/HeadingWithDescription/variantSettings';\r\nimport spinner from '_utils/components/Spinner';\r\nimport tag from '_utils/components/Tag/variantSettings';\r\nimport complexFormElement from '_utils/components/Form/variantSettings';\r\nimport radio from '_utils/components/Radio/variantSettings';\r\nimport lastUpdated from '_utils/components/LastUpdated/variantSettings';\r\nimport showMore from '_utils/components/ShowMore/variantSettings';\r\nimport tooltip, { darkMode as tooltipDarkTheme } from '_utils/components/Tooltip/variantSettings';\r\n// styles\r\nimport card from '_utils/styles/card/variantSettings';\r\nimport section, { darkMode as sectionDarkTheme } from '_utils/styles/section/variantSettings';\r\n\r\nimport button from './button';\r\nimport colors from './colors';\r\nimport { FONT_FAMILY_TEXT } from './global';\r\nimport link from './link';\r\n\r\nimport {\r\n motion,\r\n shadows,\r\n} from '../shared';\r\n\r\nimport { ITheme } from './definitions';\r\n\r\nconst Theme: ITheme = {\r\n personalisedCarousel,\r\n accordion,\r\n agendaAccordion,\r\n borderRadius: {\r\n default: {\r\n lg: 0,\r\n md: 14,\r\n sm: 10\r\n }\r\n },\r\n bppAssessment,\r\n button,\r\n breadcrumb,\r\n informationSession,\r\n callToAction,\r\n campaignNavigation,\r\n campaignPageBanner,\r\n card,\r\n cardList,\r\n cardListInTheBlackBanner,\r\n cardListWithInternalNavigation,\r\n carousel,\r\n colors: colors,\r\n content: {\r\n indent: {\r\n lg: 44,\r\n md: 36,\r\n xs: 32\r\n }\r\n },\r\n contentRelated,\r\n complexFormElement,\r\n contactDetailsForm,\r\n contentRichText,\r\n contentSummary,\r\n cpdTracker,\r\n dateLinkList,\r\n documentList,\r\n focus: {\r\n height: 'calc(100% + 8px)',\r\n left: '-4px',\r\n outlineColor: colors.all.interactive300,\r\n outlineOffset: '2px',\r\n outlineStyle: 'solid',\r\n outlineWidth: '2px',\r\n radius: '3px',\r\n top: '-4px',\r\n width: 'calc(100% + 8px)'\r\n },\r\n form,\r\n grid: {\r\n borderColor: colors.brandPrimary1,\r\n borderWidth: '1px',\r\n colCount: 12,\r\n containerMaxWidth: 1024,\r\n containerMinWidth: 280,\r\n gutter: {\r\n directions: ['left', 'right', 'top', 'bottom'],\r\n size: {\r\n lg: 24,\r\n md: 24,\r\n xs: 20\r\n }\r\n },\r\n margin: {\r\n lg: 32,\r\n md: 24,\r\n xs: 20\r\n }\r\n },\r\n headingWithDescription,\r\n homepageBanner,\r\n imageCardGrid,\r\n imageWithTitleAndText,\r\n inPageAnnouncement,\r\n internalPageBanner,\r\n lastUpdated,\r\n lateralNavigation,\r\n link,\r\n linkList,\r\n liveChat,\r\n magazineBanner,\r\n multiMediaEmbed,\r\n mainMenu,\r\n mainSearch,\r\n masonryGrid,\r\n memberDetails,\r\n memberRenewalForm,\r\n modal,\r\n motion,\r\n pageBanner,\r\n pageBannerWithInternalNavigation,\r\n pageFooter,\r\n pageHeader,\r\n placeholderDashboardSingleColumn,\r\n profilePageBanner,\r\n programTracker,\r\n responsiveSpacing: {\r\n lg: {\r\n '0': 0,\r\n '1': 8,\r\n '2': 16,\r\n '3': 24,\r\n '4': 32,\r\n '5': 40,\r\n '6': 48,\r\n '7': 64,\r\n '8': 80,\r\n '9': 120\r\n },\r\n md: {\r\n '0': 0,\r\n '1': 8,\r\n '2': 16,\r\n '3': 24,\r\n '4': 32,\r\n '5': 40,\r\n '6': 48,\r\n '7': 64,\r\n '8': 80,\r\n '9': 120\r\n },\r\n xs: {\r\n '0': 0,\r\n '1': 8,\r\n '2': 12,\r\n '3': 16,\r\n '4': 16,\r\n '5': 24,\r\n '6': 24,\r\n '7': 32,\r\n '8': 40,\r\n '9': 64\r\n }\r\n },\r\n radio,\r\n searchMenu,\r\n searchResults,\r\n section,\r\n shadows,\r\n showMore,\r\n spinner,\r\n singleImage,\r\n siteWideAnnouncement,\r\n staticTextAndImage,\r\n stepTracker,\r\n table: {\r\n font: {\r\n fontFamily: FONT_FAMILY_TEXT,\r\n // same as body2\r\n fontSize: {\r\n lg: 0,\r\n md: 16,\r\n sm: 14\r\n },\r\n lineHeight: {\r\n lg: 0,\r\n md: 20,\r\n sm: 16\r\n },\r\n spacing: 16\r\n }\r\n },\r\n tabs,\r\n tag,\r\n timezoneSelector,\r\n tooltip,\r\n typography: {\r\n headings: {\r\n caption1: {\r\n fontSize: 14,\r\n lineHeight: 14\r\n },\r\n caption2: {\r\n fontSize: 12,\r\n lineHeight: 12\r\n },\r\n fixedTitle12: {\r\n fontSize: 12,\r\n fontWeight: 'bold',\r\n lineHeight: 16,\r\n spacing: 24\r\n },\r\n fixedTitle14: {\r\n fontSize: 14,\r\n fontWeight: 'bold',\r\n lineHeight: 18,\r\n spacing: 24\r\n },\r\n fixedTitle16: {\r\n fontSize: 16,\r\n fontWeight: 'bold',\r\n lineHeight: 20,\r\n spacing: 24\r\n },\r\n fixedTitle18: {\r\n fontSize: 18,\r\n fontWeight: 'bold',\r\n lineHeight: 24,\r\n spacing: 24\r\n },\r\n H0: { // only used in HomepageBanner currently as oversized H1\r\n fontSize: {\r\n lg: 64,\r\n md: 45,\r\n sm: 40\r\n },\r\n lineHeight: {\r\n lg: 72,\r\n md: 54,\r\n sm: 48\r\n }\r\n },\r\n H1: {\r\n fontSize: {\r\n lg: 48,\r\n md: 40,\r\n sm: 32\r\n },\r\n lineHeight: {\r\n lg: 54,\r\n md: 48,\r\n sm: 38\r\n }\r\n },\r\n H2: {\r\n fontSize: {\r\n lg: 36,\r\n md: 32,\r\n sm: 28\r\n },\r\n lineHeight: {\r\n lg: 44,\r\n md: 38,\r\n sm: 32\r\n }\r\n },\r\n H3: {\r\n fontSize: {\r\n lg: 28,\r\n md: 24,\r\n sm: 24\r\n },\r\n lineHeight: {\r\n lg: 32,\r\n md: 28,\r\n sm: 28\r\n }\r\n },\r\n H4: {\r\n fontSize: {\r\n lg: 22,\r\n md: 20,\r\n sm: 20\r\n },\r\n lineHeight: {\r\n lg: 26,\r\n md: 24,\r\n sm: 24\r\n }\r\n },\r\n H5: {\r\n fontSize: {\r\n lg: 16,\r\n md: 14,\r\n sm: 14\r\n },\r\n lineHeight: {\r\n lg: 20,\r\n md: 18,\r\n sm: 18\r\n }\r\n },\r\n // same as H5 - attempt backward compaitble for any\r\n // previously authored content using H6\r\n H6: {\r\n fontSize: {\r\n lg: 16,\r\n md: 14,\r\n sm: 14\r\n },\r\n lineHeight: {\r\n lg: 20,\r\n md: 18,\r\n sm: 18\r\n }\r\n },\r\n subheading1: {\r\n fontSize: {\r\n lg: 24,\r\n md: 22,\r\n sm: 20\r\n },\r\n fontWeight: 300,\r\n lineHeight: {\r\n lg: 32,\r\n md: 30,\r\n sm: 28\r\n }\r\n },\r\n subheading2: {\r\n fontSize: {\r\n lg: 18,\r\n md: 18,\r\n sm: 16\r\n },\r\n fontWeight: 300,\r\n lineHeight: {\r\n lg: 24,\r\n md: 24,\r\n sm: 20\r\n }\r\n },\r\n title: {\r\n fontSize: {\r\n lg: 64,\r\n md: 48,\r\n sm: 36\r\n },\r\n fontWeight: 300,\r\n lineHeight: {\r\n lg: 64,\r\n md: 48,\r\n sm: 36\r\n }\r\n }\r\n },\r\n text: {\r\n // normal body\r\n body1: {\r\n fontSize: {\r\n lg: 16,\r\n md: 16,\r\n sm: 16\r\n },\r\n lineHeight: {\r\n lg: 28,\r\n md: 28,\r\n sm: 24\r\n },\r\n spacing: 24\r\n },\r\n // smaller body\r\n body2: {\r\n fontSize: {\r\n lg: 14,\r\n md: 14,\r\n sm: 14\r\n },\r\n lineHeight: {\r\n lg: 20,\r\n md: 24,\r\n sm: 20\r\n },\r\n spacing: 24\r\n },\r\n fixedBody12: {\r\n fontSize: 12,\r\n fontWeight: 'normal',\r\n lineHeight: 16,\r\n spacing: 24\r\n },\r\n fixedBody14: {\r\n fontSize: 14,\r\n fontWeight: 'normal',\r\n lineHeight: 18,\r\n spacing: 24\r\n },\r\n fixedBody16: {\r\n fontSize: 16,\r\n fontWeight: 'normal',\r\n lineHeight: 20,\r\n spacing: 24\r\n },\r\n fixedBody18: {\r\n fontSize: 18,\r\n fontWeight: 'normal',\r\n lineHeight: 24,\r\n spacing: 24\r\n },\r\n tag16: {\r\n fontSize: 16,\r\n fontWeight: 'bold',\r\n lineHeight: 24,\r\n spacing: 0\r\n },\r\n tag14: {\r\n fontSize: 14,\r\n fontWeight: 'bold',\r\n lineHeight: 24,\r\n spacing: 0\r\n },\r\n tag12: {\r\n fontSize: 12,\r\n fontWeight: 'bold',\r\n lineHeight: 18,\r\n spacing: 0\r\n },\r\n tag10: {\r\n fontSize: 10,\r\n fontWeight: 'bold',\r\n lineHeight: 12,\r\n spacing: 0\r\n }\r\n }\r\n }\r\n};\r\n\r\nexport const DarkTheme = {\r\n ...Theme,\r\n agendaAccordion: {\r\n ...agendaAccordion,\r\n ...agendaAccordionDarkTheme,\r\n },\r\n accordion: {\r\n ...accordion,\r\n ...accordionDarkTheme,\r\n },\r\n cardList: {\r\n ...cardList,\r\n ...cardListDarkTheme\r\n },\r\n cardListWithInternalNavigation: cardListWithInternalNavigation,\r\n dateLinkList: {\r\n ...dateLinkList,\r\n ...dateLinkListDarkTheme\r\n },\r\n masonryGrid: {\r\n ...masonryGrid,\r\n ...masonryGridDarkTheme\r\n },\r\n section: {\r\n ...section,\r\n ...sectionDarkTheme\r\n },\r\n tabs: {\r\n ...tabs,\r\n ...tabsDarkTheme\r\n },\r\n tooltip: {\r\n ...tooltip,\r\n ...tooltipDarkTheme\r\n },\r\n multiMediaEmbed: {\r\n ...multiMediaEmbed\r\n }\r\n};\r\n\r\nexport default Theme;\r\n","export { default as Arrow } from './Arrow';\r\nexport { default as Book } from './status/Book';\r\nexport { default as Calendar } from './Calendar';\r\nexport { default as Camera } from './Camera';\r\nexport { default as Capacity } from './Capacity';\r\nexport { default as Chevron } from './Chevron';\r\nexport { default as ChevronDown } from './ChevronDown';\r\nexport { default as Closed } from './status/Closed';\r\nexport { default as Completed } from './status/Completed';\r\nexport { default as Cost } from './Cost';\r\nexport { default as Cross } from './Cross';\r\nexport { default as Directions } from './Directions';\r\nexport { default as Download } from './Download';\r\nexport { default as External } from './External';\r\nexport { default as Filters } from './Filters';\r\nexport { default as InfoCircle } from './InfoCircle';\r\nexport { default as InProgress } from './status/InProgress';\r\nexport { default as Lockup } from './Lockup';\r\nexport { default as Logo } from './Logo';\r\nexport { default as Mail } from './Mail';\r\nexport { default as Marker } from './Marker';\r\nexport { default as OpenForFeedback } from './status/OpenForFeedback';\r\nexport { default as Phone } from './Phone';\r\nexport { default as Pin } from './Pin';\r\nexport { default as Planned } from './status/Planned';\r\nexport { default as RelatesTo } from './RelatesTo';\r\nexport { default as Search } from './Search';\r\nexport { default as SimpleArrow } from './SimpleArrow';\r\nexport { default as Size } from './Size';\r\nexport { default as Tag } from './Tag';\r\nexport { default as Time } from './Time';\r\nexport { default as UnderReview } from './status/UnderReview';\r\nexport { default as Warning } from './Warning';\r\nexport { default as WarningCircle } from './WarningCircle';\r\n\r\n","export const normalizeJssFields = (data: object, filters = []): any => {\r\n if (!data) {\r\n return data;\r\n }\r\n\r\n const normalized = {};\r\n\r\n const keys = Object.keys(data).filter((key) => !filters.length || filters.indexOf(key) > -1);\r\n\r\n keys.forEach((key) => {\r\n normalized[key] = normalizeJssField(data[key]);\r\n });\r\n\r\n return normalized;\r\n};\r\n\r\nexport const normalizeJssField = (field: any): any => {\r\n if (field && typeof field === 'object' && field.hasOwnProperty('jss')) {\r\n const {jss, ...rest} = field;\r\n\r\n // Properties with names that match inside and outside `jss` for a given field will be overwritten.\r\n return {\r\n ...rest,\r\n ...jss,\r\n };\r\n }\r\n\r\n return field;\r\n};\r\n","import { Text } from '@sitecore-jss/sitecore-jss-react';\r\nimport React, { useState } from 'react';\r\nimport Icon, { MaterialIcons } from '_components/Icon';\r\nimport { InPageAnnouncementProps } from '../definitions';\r\nimport {\r\n AnnouncementCTA,\r\n AnnouncementWrapper,\r\n TitleWrapper,\r\n Content,\r\n TextWrapper,\r\n IconWrapper,\r\n CloseIconWrapper,\r\n ButtonWrapper\r\n} from './StyledInPageAnnouncement';\r\n\r\nconst Icons = {\r\n Blue: 'error_outline' as MaterialIcons,\r\n Yellow: 'warning_amber' as MaterialIcons,\r\n Red: 'error_outline' as MaterialIcons,\r\n Green: 'check_circle' as MaterialIcons,\r\n};\r\n\r\nconst InPageAnnouncement: React.FC = ({\r\n customIcon,\r\n id,\r\n description,\r\n link,\r\n secondaryLink,\r\n title,\r\n type = { value: 'Blue' },\r\n isTitleBold,\r\n dismissable = { value: false }\r\n}) => {\r\n\r\n const [hide, setHide] = useState(false);\r\n\r\n return hide ? null : \r\n \r\n \r\n \r\n {dismissable?.value && setHide(!hide)}>\r\n \r\n }\r\n \r\n \r\n \r\n \r\n\r\n {description?.value && }\r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n};\r\n\r\nexport default InPageAnnouncement;\r\n","// options\r\nexport default {\r\n // primary\r\n brandPrimary1: '#000000',\r\n brandPrimary2: '#00BAB5',\r\n brandPrimary2Dark: '#00827E',\r\n // secondary\r\n brandSecondary1: '#D92F1F',\r\n brandSecondary1Dark: '#9A281D',\r\n brandSecondary1Light: '#FBEAE9',\r\n brandSecondary2: '#712B90',\r\n brandSecondary2Dark: '#57216E',\r\n brandSecondary2Light: '#F1EAF4',\r\n brandSecondary3: '#F59419',\r\n brandSecondary3Dark: '#B26200',\r\n brandSecondary3Light: '#FDEAD1',\r\n brandSecondary4: '#E7EFF9',\r\n brandSecondary4Light: '#0A5CC7',\r\n brandSecondary4Dark: '#084697',\r\n brandSecondary5: '#FFF8CC',\r\n brandSecondary5Light: '#FFDD00',\r\n brandSecondary5Dark: '#E6C700',\r\n\r\n // TODO move this when dark theme is ready\r\n darkBackgroundTint1: '#000000',\r\n darkBackgroundTint2: '#111111',\r\n darkBackgroundTint3: '#222222',\r\n darkBackgroundTint4: '#303030',\r\n darkBackgroundTint5: '#444444',\r\n darkBackgroundTint6: '#767676',\r\n darkText: '#F7F7F7',\r\n darkTextSecondary: '#DDDDDD',\r\n darkTextSubtle: '#C7C7C7',\r\n darkTextContrast: '#FFFFFF',\r\n darkTextNonessential: '#8C8C8C',\r\n darkTextDisabled: '#444444',\r\n\r\n error100: '#FFEDED',\r\n error500: '#E10004',\r\n error700: '#AD0003',\r\n focus: 'rgba(100,100,100,0.5)',\r\n information100: '#F0F5FE',\r\n information500: '#0A5CC7',\r\n interactive100: '#E6F8F8',\r\n interactive200: '#CCF1F0',\r\n interactive300: '#99E3E1',\r\n interactive400: '#66D6D3',\r\n interactive500: '#00BAB5',\r\n interactive600: '#00827E',\r\n interactive700: '#275D5C',\r\n neutral50: '#F7F7F7',\r\n neutral75: '#F4F4F4',\r\n neutral100: '#EEEEEE',\r\n neutral200: '#DDDDDD',\r\n neutral300: '#C7C7C7',\r\n neutral400: '#8C8C8C',\r\n neutral500: '#767676',\r\n neutral600: '#444444',\r\n neutral700: '#303030',\r\n neutral800: '#222222',\r\n neutral900: '#111111',\r\n neutralBlack: '#000000',\r\n neutralBlackTransparent10: 'rgba(0,0,0,0.1)',\r\n neutralBlackTransparent20: 'rgba(0,0,0,0.2)',\r\n neutralWhite: '#FFFFFF',\r\n neutralWhiteTransparent: '#ffffff33',\r\n success100: '#E3F9EC',\r\n success500: '#24A148',\r\n success700: '#01803C',\r\n transparent: '#00000000',\r\n visited500: '#712B90',\r\n visited400: '#9267AD',\r\n warning100: '#FFF5DF',\r\n warning500: '#FDA108',\r\n warning700: '#A85D00',\r\n};\r\n","var map = {\n\t\"./locale\": 406,\n\t\"./locale.js\": 406\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 906;","export const MOTION_SPEED_BASE = 400;\r\nexport const MOTION_SPEED_FAST = 400 / 2;\r\nexport const MOTION_SPEED_SLOW = 400 * 2;\r\n\r\nexport const motion = {\r\n ease: 'cubic-bezier(.27,.23,.08,1)',\r\n timing: {\r\n default: `${MOTION_SPEED_BASE}ms`,\r\n fast: `${MOTION_SPEED_FAST}ms`,\r\n none: `0ms`,\r\n slow: `${MOTION_SPEED_SLOW}ms`\r\n }\r\n}\r\n\r\nexport const shadows = {\r\n elevation4: `0px 1px 1px rgba(0, 0, 0, 0.08), 0px 2px 4px rgba(0, 0, 0, 0.12)`,\r\n elevation8: `0px 1px 2px rgba(0, 0, 0, 0.08), 0px 4px 8px rgba(0, 0, 0, 0.12)`,\r\n elevation16: `0px 1px 4px rgba(0, 0, 0, 0.08), 0px 6px 16px rgba(0, 0, 0, 0.12)`,\r\n elevation32: `0px 4px 12px rgba(0, 0, 0, 0.08), 0px 24px 64px rgba(0, 0, 0, 0.12)`\r\n};","var map = {\n\t\"./\": [\n\t\t77\n\t],\n\t\"./Arrow\": [\n\t\t222\n\t],\n\t\"./Arrow.tsx\": [\n\t\t222\n\t],\n\t\"./Calendar\": [\n\t\t224\n\t],\n\t\"./Calendar.tsx\": [\n\t\t224\n\t],\n\t\"./Camera\": [\n\t\t225\n\t],\n\t\"./Camera.tsx\": [\n\t\t225\n\t],\n\t\"./Capacity\": [\n\t\t226\n\t],\n\t\"./Capacity.tsx\": [\n\t\t226\n\t],\n\t\"./Chevron\": [\n\t\t227\n\t],\n\t\"./Chevron.tsx\": [\n\t\t227\n\t],\n\t\"./ChevronDown\": [\n\t\t228\n\t],\n\t\"./ChevronDown.tsx\": [\n\t\t228\n\t],\n\t\"./Cost\": [\n\t\t231\n\t],\n\t\"./Cost.tsx\": [\n\t\t231\n\t],\n\t\"./Cross\": [\n\t\t232\n\t],\n\t\"./Cross.tsx\": [\n\t\t232\n\t],\n\t\"./Directions\": [\n\t\t233\n\t],\n\t\"./Directions.tsx\": [\n\t\t233\n\t],\n\t\"./Download\": [\n\t\t234\n\t],\n\t\"./Download.tsx\": [\n\t\t234\n\t],\n\t\"./Expandable\": [\n\t\t501,\n\t\t0\n\t],\n\t\"./Expandable.tsx\": [\n\t\t501,\n\t\t0\n\t],\n\t\"./External\": [\n\t\t235\n\t],\n\t\"./External.tsx\": [\n\t\t235\n\t],\n\t\"./Filters\": [\n\t\t236\n\t],\n\t\"./Filters.tsx\": [\n\t\t236\n\t],\n\t\"./InfoCircle\": [\n\t\t237\n\t],\n\t\"./InfoCircle.tsx\": [\n\t\t237\n\t],\n\t\"./LargeCross\": [\n\t\t166\n\t],\n\t\"./LargeCross.tsx\": [\n\t\t166\n\t],\n\t\"./LinkList\": [\n\t\t499,\n\t\t313\n\t],\n\t\"./LinkList.tsx\": [\n\t\t499,\n\t\t314\n\t],\n\t\"./Lockup\": [\n\t\t239\n\t],\n\t\"./Lockup.tsx\": [\n\t\t239\n\t],\n\t\"./Logo\": [\n\t\t162\n\t],\n\t\"./Logo.tsx\": [\n\t\t162\n\t],\n\t\"./LogoITB\": [\n\t\t281\n\t],\n\t\"./LogoITB.tsx\": [\n\t\t281\n\t],\n\t\"./Mail\": [\n\t\t240\n\t],\n\t\"./Mail.tsx\": [\n\t\t240\n\t],\n\t\"./Marker\": [\n\t\t241\n\t],\n\t\"./Marker.tsx\": [\n\t\t241\n\t],\n\t\"./Phone\": [\n\t\t243\n\t],\n\t\"./Phone.tsx\": [\n\t\t243\n\t],\n\t\"./Pin\": [\n\t\t244\n\t],\n\t\"./Pin.tsx\": [\n\t\t244\n\t],\n\t\"./RelatesTo\": [\n\t\t246\n\t],\n\t\"./RelatesTo.tsx\": [\n\t\t246\n\t],\n\t\"./Search\": [\n\t\t247\n\t],\n\t\"./Search.tsx\": [\n\t\t247\n\t],\n\t\"./SimpleArrow\": [\n\t\t248\n\t],\n\t\"./SimpleArrow.tsx\": [\n\t\t248\n\t],\n\t\"./Size\": [\n\t\t249\n\t],\n\t\"./Size.tsx\": [\n\t\t249\n\t],\n\t\"./Svg\": [\n\t\t19\n\t],\n\t\"./Svg.tsx\": [\n\t\t19\n\t],\n\t\"./Tag\": [\n\t\t250\n\t],\n\t\"./Tag.tsx\": [\n\t\t250\n\t],\n\t\"./Tick\": [\n\t\t502,\n\t\t1\n\t],\n\t\"./Tick.tsx\": [\n\t\t502,\n\t\t1\n\t],\n\t\"./Time\": [\n\t\t251\n\t],\n\t\"./Time.tsx\": [\n\t\t251\n\t],\n\t\"./Warning\": [\n\t\t253\n\t],\n\t\"./Warning.tsx\": [\n\t\t253\n\t],\n\t\"./WarningCircle\": [\n\t\t254\n\t],\n\t\"./WarningCircle.tsx\": [\n\t\t254\n\t],\n\t\"./custom/Excel\": [\n\t\t503,\n\t\t2\n\t],\n\t\"./custom/Excel.tsx\": [\n\t\t503,\n\t\t2\n\t],\n\t\"./custom/Facebook\": [\n\t\t504,\n\t\t3\n\t],\n\t\"./custom/Facebook.tsx\": [\n\t\t504,\n\t\t3\n\t],\n\t\"./custom/File\": [\n\t\t505,\n\t\t4\n\t],\n\t\"./custom/File.tsx\": [\n\t\t505,\n\t\t4\n\t],\n\t\"./custom/Image\": [\n\t\t506,\n\t\t5\n\t],\n\t\"./custom/Image.tsx\": [\n\t\t506,\n\t\t5\n\t],\n\t\"./custom/Instagram\": [\n\t\t507,\n\t\t6\n\t],\n\t\"./custom/Instagram.tsx\": [\n\t\t507,\n\t\t6\n\t],\n\t\"./custom/LinkedIn\": [\n\t\t508,\n\t\t7\n\t],\n\t\"./custom/LinkedIn.tsx\": [\n\t\t508,\n\t\t7\n\t],\n\t\"./custom/Movie\": [\n\t\t509,\n\t\t8\n\t],\n\t\"./custom/Movie.tsx\": [\n\t\t509,\n\t\t8\n\t],\n\t\"./custom/Pdf\": [\n\t\t510,\n\t\t9\n\t],\n\t\"./custom/Pdf.tsx\": [\n\t\t510,\n\t\t9\n\t],\n\t\"./custom/Threads\": [\n\t\t511,\n\t\t10\n\t],\n\t\"./custom/Threads.tsx\": [\n\t\t511,\n\t\t10\n\t],\n\t\"./custom/Tiktok\": [\n\t\t512,\n\t\t11\n\t],\n\t\"./custom/Tiktok.tsx\": [\n\t\t512,\n\t\t11\n\t],\n\t\"./custom/Twitter\": [\n\t\t513,\n\t\t12\n\t],\n\t\"./custom/Twitter.tsx\": [\n\t\t513,\n\t\t12\n\t],\n\t\"./custom/Wechat\": [\n\t\t514,\n\t\t13\n\t],\n\t\"./custom/Wechat.tsx\": [\n\t\t514,\n\t\t13\n\t],\n\t\"./custom/Weibo\": [\n\t\t515,\n\t\t14\n\t],\n\t\"./custom/Weibo.tsx\": [\n\t\t515,\n\t\t14\n\t],\n\t\"./custom/Word\": [\n\t\t516,\n\t\t15\n\t],\n\t\"./custom/Word.tsx\": [\n\t\t516,\n\t\t15\n\t],\n\t\"./custom/Youtube\": [\n\t\t517,\n\t\t16\n\t],\n\t\"./custom/Youtube.tsx\": [\n\t\t517,\n\t\t16\n\t],\n\t\"./custom/Zip\": [\n\t\t518,\n\t\t17\n\t],\n\t\"./custom/Zip.tsx\": [\n\t\t518,\n\t\t17\n\t],\n\t\"./index\": [\n\t\t77\n\t],\n\t\"./index.ts\": [\n\t\t77\n\t],\n\t\"./material/AccessTime\": [\n\t\t519,\n\t\t18\n\t],\n\t\"./material/AccessTime.tsx\": [\n\t\t519,\n\t\t18\n\t],\n\t\"./material/AccessibilityNew\": [\n\t\t520,\n\t\t19\n\t],\n\t\"./material/AccessibilityNew.tsx\": [\n\t\t520,\n\t\t19\n\t],\n\t\"./material/AccessibleForward\": [\n\t\t521,\n\t\t20\n\t],\n\t\"./material/AccessibleForward.tsx\": [\n\t\t521,\n\t\t20\n\t],\n\t\"./material/AccountBalance\": [\n\t\t522,\n\t\t21\n\t],\n\t\"./material/AccountBalance.tsx\": [\n\t\t522,\n\t\t21\n\t],\n\t\"./material/AccountBalanceWallet\": [\n\t\t523,\n\t\t22\n\t],\n\t\"./material/AccountBalanceWallet.tsx\": [\n\t\t523,\n\t\t22\n\t],\n\t\"./material/AccountCircle\": [\n\t\t524,\n\t\t23\n\t],\n\t\"./material/AccountCircle.tsx\": [\n\t\t524,\n\t\t23\n\t],\n\t\"./material/Add\": [\n\t\t525,\n\t\t24\n\t],\n\t\"./material/Add.tsx\": [\n\t\t525,\n\t\t24\n\t],\n\t\"./material/AddCircleOutline\": [\n\t\t526,\n\t\t25\n\t],\n\t\"./material/AddCircleOutline.tsx\": [\n\t\t526,\n\t\t25\n\t],\n\t\"./material/AddShoppingCart\": [\n\t\t527,\n\t\t26\n\t],\n\t\"./material/AddShoppingCart.tsx\": [\n\t\t527,\n\t\t26\n\t],\n\t\"./material/AddTask\": [\n\t\t528,\n\t\t27\n\t],\n\t\"./material/AddTask.tsx\": [\n\t\t528,\n\t\t27\n\t],\n\t\"./material/Addchart\": [\n\t\t529,\n\t\t28\n\t],\n\t\"./material/Addchart.tsx\": [\n\t\t529,\n\t\t28\n\t],\n\t\"./material/AdminPanelSettings\": [\n\t\t530,\n\t\t29\n\t],\n\t\"./material/AdminPanelSettings.tsx\": [\n\t\t530,\n\t\t29\n\t],\n\t\"./material/Alarm\": [\n\t\t531,\n\t\t30\n\t],\n\t\"./material/Alarm.tsx\": [\n\t\t531,\n\t\t30\n\t],\n\t\"./material/Analytics\": [\n\t\t532,\n\t\t31\n\t],\n\t\"./material/Analytics.tsx\": [\n\t\t532,\n\t\t31\n\t],\n\t\"./material/Announcement\": [\n\t\t533,\n\t\t32\n\t],\n\t\"./material/Announcement.tsx\": [\n\t\t533,\n\t\t32\n\t],\n\t\"./material/Apartment\": [\n\t\t534,\n\t\t33\n\t],\n\t\"./material/Apartment.tsx\": [\n\t\t534,\n\t\t33\n\t],\n\t\"./material/Apps\": [\n\t\t535,\n\t\t34\n\t],\n\t\"./material/Apps.tsx\": [\n\t\t535,\n\t\t34\n\t],\n\t\"./material/ArrowBack\": [\n\t\t536,\n\t\t35\n\t],\n\t\"./material/ArrowBack.tsx\": [\n\t\t536,\n\t\t35\n\t],\n\t\"./material/ArrowDownward\": [\n\t\t537,\n\t\t36\n\t],\n\t\"./material/ArrowDownward.tsx\": [\n\t\t537,\n\t\t36\n\t],\n\t\"./material/ArrowDropDown\": [\n\t\t538,\n\t\t37\n\t],\n\t\"./material/ArrowDropDown.tsx\": [\n\t\t538,\n\t\t37\n\t],\n\t\"./material/ArrowDropUp\": [\n\t\t539,\n\t\t38\n\t],\n\t\"./material/ArrowDropUp.tsx\": [\n\t\t539,\n\t\t38\n\t],\n\t\"./material/ArrowForward\": [\n\t\t540,\n\t\t39\n\t],\n\t\"./material/ArrowForward.tsx\": [\n\t\t540,\n\t\t39\n\t],\n\t\"./material/ArrowLeft\": [\n\t\t541,\n\t\t40\n\t],\n\t\"./material/ArrowLeft.tsx\": [\n\t\t541,\n\t\t40\n\t],\n\t\"./material/ArrowRight\": [\n\t\t542,\n\t\t41\n\t],\n\t\"./material/ArrowRight.tsx\": [\n\t\t542,\n\t\t41\n\t],\n\t\"./material/ArrowUpward\": [\n\t\t543,\n\t\t42\n\t],\n\t\"./material/ArrowUpward.tsx\": [\n\t\t543,\n\t\t42\n\t],\n\t\"./material/Article\": [\n\t\t544,\n\t\t43\n\t],\n\t\"./material/Article.tsx\": [\n\t\t544,\n\t\t43\n\t],\n\t\"./material/AspectRatio\": [\n\t\t545,\n\t\t44\n\t],\n\t\"./material/AspectRatio.tsx\": [\n\t\t545,\n\t\t44\n\t],\n\t\"./material/Assessment\": [\n\t\t546,\n\t\t45\n\t],\n\t\"./material/Assessment.tsx\": [\n\t\t546,\n\t\t45\n\t],\n\t\"./material/Assignment\": [\n\t\t547,\n\t\t46\n\t],\n\t\"./material/Assignment.tsx\": [\n\t\t547,\n\t\t46\n\t],\n\t\"./material/AssignmentInd\": [\n\t\t548,\n\t\t47\n\t],\n\t\"./material/AssignmentInd.tsx\": [\n\t\t548,\n\t\t47\n\t],\n\t\"./material/AssignmentLate\": [\n\t\t549,\n\t\t48\n\t],\n\t\"./material/AssignmentLate.tsx\": [\n\t\t549,\n\t\t48\n\t],\n\t\"./material/AssignmentTurnedIn\": [\n\t\t550,\n\t\t49\n\t],\n\t\"./material/AssignmentTurnedIn.tsx\": [\n\t\t550,\n\t\t49\n\t],\n\t\"./material/AttachEmail\": [\n\t\t551,\n\t\t50\n\t],\n\t\"./material/AttachEmail.tsx\": [\n\t\t551,\n\t\t50\n\t],\n\t\"./material/AttachFile\": [\n\t\t552,\n\t\t51\n\t],\n\t\"./material/AttachFile.tsx\": [\n\t\t552,\n\t\t51\n\t],\n\t\"./material/AttachMoney\": [\n\t\t553,\n\t\t52\n\t],\n\t\"./material/AttachMoney.tsx\": [\n\t\t553,\n\t\t52\n\t],\n\t\"./material/Autorenew\": [\n\t\t554,\n\t\t53\n\t],\n\t\"./material/Autorenew.tsx\": [\n\t\t554,\n\t\t53\n\t],\n\t\"./material/Backup\": [\n\t\t555,\n\t\t54\n\t],\n\t\"./material/Backup.tsx\": [\n\t\t555,\n\t\t54\n\t],\n\t\"./material/BackupTable\": [\n\t\t556,\n\t\t55\n\t],\n\t\"./material/BackupTable.tsx\": [\n\t\t556,\n\t\t55\n\t],\n\t\"./material/BeachAccess\": [\n\t\t557,\n\t\t56\n\t],\n\t\"./material/BeachAccess.tsx\": [\n\t\t557,\n\t\t56\n\t],\n\t\"./material/Book\": [\n\t\t558,\n\t\t57\n\t],\n\t\"./material/Book.tsx\": [\n\t\t558,\n\t\t57\n\t],\n\t\"./material/BookmarkBorder\": [\n\t\t559,\n\t\t58\n\t],\n\t\"./material/BookmarkBorder.tsx\": [\n\t\t559,\n\t\t58\n\t],\n\t\"./material/Bookmarks\": [\n\t\t560,\n\t\t59\n\t],\n\t\"./material/Bookmarks.tsx\": [\n\t\t560,\n\t\t59\n\t],\n\t\"./material/Build\": [\n\t\t561,\n\t\t60\n\t],\n\t\"./material/Build.tsx\": [\n\t\t561,\n\t\t60\n\t],\n\t\"./material/BuildCircle\": [\n\t\t562,\n\t\t61\n\t],\n\t\"./material/BuildCircle.tsx\": [\n\t\t562,\n\t\t61\n\t],\n\t\"./material/BusinessCenter\": [\n\t\t563,\n\t\t62\n\t],\n\t\"./material/BusinessCenter.tsx\": [\n\t\t563,\n\t\t62\n\t],\n\t\"./material/Cached\": [\n\t\t564,\n\t\t63\n\t],\n\t\"./material/Cached.tsx\": [\n\t\t564,\n\t\t63\n\t],\n\t\"./material/Cake\": [\n\t\t565,\n\t\t64\n\t],\n\t\"./material/Cake.tsx\": [\n\t\t565,\n\t\t64\n\t],\n\t\"./material/Calculate\": [\n\t\t566,\n\t\t65\n\t],\n\t\"./material/Calculate.tsx\": [\n\t\t566,\n\t\t65\n\t],\n\t\"./material/CalendarToday\": [\n\t\t567,\n\t\t66\n\t],\n\t\"./material/CalendarToday.tsx\": [\n\t\t567,\n\t\t66\n\t],\n\t\"./material/Call\": [\n\t\t568,\n\t\t67\n\t],\n\t\"./material/Call.tsx\": [\n\t\t568,\n\t\t67\n\t],\n\t\"./material/Campaign\": [\n\t\t569,\n\t\t68\n\t],\n\t\"./material/Campaign.tsx\": [\n\t\t569,\n\t\t68\n\t],\n\t\"./material/Cancel\": [\n\t\t570,\n\t\t69\n\t],\n\t\"./material/Cancel.tsx\": [\n\t\t570,\n\t\t69\n\t],\n\t\"./material/CardTravel\": [\n\t\t571,\n\t\t70\n\t],\n\t\"./material/CardTravel.tsx\": [\n\t\t571,\n\t\t70\n\t],\n\t\"./material/Chat\": [\n\t\t572,\n\t\t71\n\t],\n\t\"./material/Chat.tsx\": [\n\t\t572,\n\t\t71\n\t],\n\t\"./material/Check\": [\n\t\t573,\n\t\t72\n\t],\n\t\"./material/Check.tsx\": [\n\t\t573,\n\t\t72\n\t],\n\t\"./material/CheckCircle\": [\n\t\t574,\n\t\t73\n\t],\n\t\"./material/CheckCircle.tsx\": [\n\t\t574,\n\t\t73\n\t],\n\t\"./material/ChevronLeft\": [\n\t\t575,\n\t\t74\n\t],\n\t\"./material/ChevronLeft.tsx\": [\n\t\t575,\n\t\t74\n\t],\n\t\"./material/ChevronRight\": [\n\t\t576,\n\t\t75\n\t],\n\t\"./material/ChevronRight.tsx\": [\n\t\t576,\n\t\t75\n\t],\n\t\"./material/ChromeReaderMode\": [\n\t\t577,\n\t\t76\n\t],\n\t\"./material/ChromeReaderMode.tsx\": [\n\t\t577,\n\t\t76\n\t],\n\t\"./material/Class\": [\n\t\t578,\n\t\t77\n\t],\n\t\"./material/Class.tsx\": [\n\t\t578,\n\t\t77\n\t],\n\t\"./material/Clear\": [\n\t\t579,\n\t\t78\n\t],\n\t\"./material/Clear.tsx\": [\n\t\t579,\n\t\t78\n\t],\n\t\"./material/Close\": [\n\t\t580,\n\t\t79\n\t],\n\t\"./material/Close.tsx\": [\n\t\t580,\n\t\t79\n\t],\n\t\"./material/ClosedCaption\": [\n\t\t581,\n\t\t80\n\t],\n\t\"./material/ClosedCaption.tsx\": [\n\t\t581,\n\t\t80\n\t],\n\t\"./material/Cloud\": [\n\t\t582,\n\t\t81\n\t],\n\t\"./material/Cloud.tsx\": [\n\t\t582,\n\t\t81\n\t],\n\t\"./material/CloudDownload\": [\n\t\t583,\n\t\t82\n\t],\n\t\"./material/CloudDownload.tsx\": [\n\t\t583,\n\t\t82\n\t],\n\t\"./material/CloudUpload\": [\n\t\t584,\n\t\t83\n\t],\n\t\"./material/CloudUpload.tsx\": [\n\t\t584,\n\t\t83\n\t],\n\t\"./material/CommentBank\": [\n\t\t585,\n\t\t84\n\t],\n\t\"./material/CommentBank.tsx\": [\n\t\t585,\n\t\t84\n\t],\n\t\"./material/Commute\": [\n\t\t586,\n\t\t85\n\t],\n\t\"./material/Commute.tsx\": [\n\t\t586,\n\t\t85\n\t],\n\t\"./material/Construction\": [\n\t\t587,\n\t\t86\n\t],\n\t\"./material/Construction.tsx\": [\n\t\t587,\n\t\t86\n\t],\n\t\"./material/ContactPage\": [\n\t\t588,\n\t\t87\n\t],\n\t\"./material/ContactPage.tsx\": [\n\t\t588,\n\t\t87\n\t],\n\t\"./material/ContactSupport\": [\n\t\t589,\n\t\t88\n\t],\n\t\"./material/ContactSupport.tsx\": [\n\t\t589,\n\t\t88\n\t],\n\t\"./material/Contactless\": [\n\t\t590,\n\t\t89\n\t],\n\t\"./material/Contactless.tsx\": [\n\t\t590,\n\t\t89\n\t],\n\t\"./material/Copyright\": [\n\t\t591,\n\t\t90\n\t],\n\t\"./material/Copyright.tsx\": [\n\t\t591,\n\t\t90\n\t],\n\t\"./material/Coronavirus\": [\n\t\t592,\n\t\t91\n\t],\n\t\"./material/Coronavirus.tsx\": [\n\t\t592,\n\t\t91\n\t],\n\t\"./material/CreditCard\": [\n\t\t593,\n\t\t92\n\t],\n\t\"./material/CreditCard.tsx\": [\n\t\t593,\n\t\t92\n\t],\n\t\"./material/Dashboard\": [\n\t\t594,\n\t\t93\n\t],\n\t\"./material/Dashboard.tsx\": [\n\t\t594,\n\t\t93\n\t],\n\t\"./material/Delete\": [\n\t\t595,\n\t\t94\n\t],\n\t\"./material/Delete.tsx\": [\n\t\t595,\n\t\t94\n\t],\n\t\"./material/DeleteForever\": [\n\t\t596,\n\t\t95\n\t],\n\t\"./material/DeleteForever.tsx\": [\n\t\t596,\n\t\t95\n\t],\n\t\"./material/Description\": [\n\t\t597,\n\t\t96\n\t],\n\t\"./material/Description.tsx\": [\n\t\t597,\n\t\t96\n\t],\n\t\"./material/DesignServices\": [\n\t\t598,\n\t\t97\n\t],\n\t\"./material/DesignServices.tsx\": [\n\t\t598,\n\t\t97\n\t],\n\t\"./material/DesktopMac\": [\n\t\t599,\n\t\t98\n\t],\n\t\"./material/DesktopMac.tsx\": [\n\t\t599,\n\t\t98\n\t],\n\t\"./material/Dns\": [\n\t\t600,\n\t\t99\n\t],\n\t\"./material/Dns.tsx\": [\n\t\t600,\n\t\t99\n\t],\n\t\"./material/DoDisturbAlt\": [\n\t\t601,\n\t\t100\n\t],\n\t\"./material/DoDisturbAlt.tsx\": [\n\t\t601,\n\t\t100\n\t],\n\t\"./material/Domain\": [\n\t\t602,\n\t\t101\n\t],\n\t\"./material/Domain.tsx\": [\n\t\t602,\n\t\t101\n\t],\n\t\"./material/Done\": [\n\t\t603,\n\t\t102\n\t],\n\t\"./material/Done.tsx\": [\n\t\t603,\n\t\t102\n\t],\n\t\"./material/DonutLarge\": [\n\t\t604,\n\t\t103\n\t],\n\t\"./material/DonutLarge.tsx\": [\n\t\t604,\n\t\t103\n\t],\n\t\"./material/Download\": [\n\t\t605,\n\t\t104\n\t],\n\t\"./material/Download.tsx\": [\n\t\t605,\n\t\t104\n\t],\n\t\"./material/DownloadDone\": [\n\t\t606,\n\t\t105\n\t],\n\t\"./material/DownloadDone.tsx\": [\n\t\t606,\n\t\t105\n\t],\n\t\"./material/Drafts\": [\n\t\t607,\n\t\t106\n\t],\n\t\"./material/Drafts.tsx\": [\n\t\t607,\n\t\t106\n\t],\n\t\"./material/Eco\": [\n\t\t608,\n\t\t107\n\t],\n\t\"./material/Eco.tsx\": [\n\t\t608,\n\t\t107\n\t],\n\t\"./material/Edit\": [\n\t\t609,\n\t\t108\n\t],\n\t\"./material/Edit.tsx\": [\n\t\t609,\n\t\t108\n\t],\n\t\"./material/Elderly\": [\n\t\t610,\n\t\t109\n\t],\n\t\"./material/Elderly.tsx\": [\n\t\t610,\n\t\t109\n\t],\n\t\"./material/Email\": [\n\t\t611,\n\t\t110\n\t],\n\t\"./material/Email.tsx\": [\n\t\t611,\n\t\t110\n\t],\n\t\"./material/EmojiEvents\": [\n\t\t612,\n\t\t111\n\t],\n\t\"./material/EmojiEvents.tsx\": [\n\t\t612,\n\t\t111\n\t],\n\t\"./material/EmojiObjects\": [\n\t\t613,\n\t\t112\n\t],\n\t\"./material/EmojiObjects.tsx\": [\n\t\t613,\n\t\t112\n\t],\n\t\"./material/EmojiPeople\": [\n\t\t614,\n\t\t113\n\t],\n\t\"./material/EmojiPeople.tsx\": [\n\t\t614,\n\t\t113\n\t],\n\t\"./material/EmojiSymbols\": [\n\t\t615,\n\t\t114\n\t],\n\t\"./material/EmojiSymbols.tsx\": [\n\t\t615,\n\t\t114\n\t],\n\t\"./material/ErrorOutline\": [\n\t\t616,\n\t\t115\n\t],\n\t\"./material/ErrorOutline.tsx\": [\n\t\t616,\n\t\t115\n\t],\n\t\"./material/EuroSymbol\": [\n\t\t617,\n\t\t116\n\t],\n\t\"./material/EuroSymbol.tsx\": [\n\t\t617,\n\t\t116\n\t],\n\t\"./material/EventAvailable\": [\n\t\t618,\n\t\t117\n\t],\n\t\"./material/EventAvailable.tsx\": [\n\t\t618,\n\t\t117\n\t],\n\t\"./material/EventBusy\": [\n\t\t619,\n\t\t118\n\t],\n\t\"./material/EventBusy.tsx\": [\n\t\t619,\n\t\t118\n\t],\n\t\"./material/EventNote\": [\n\t\t620,\n\t\t119\n\t],\n\t\"./material/EventNote.tsx\": [\n\t\t620,\n\t\t119\n\t],\n\t\"./material/ExpandLess\": [\n\t\t621,\n\t\t120\n\t],\n\t\"./material/ExpandLess.tsx\": [\n\t\t621,\n\t\t120\n\t],\n\t\"./material/ExpandMore\": [\n\t\t622,\n\t\t121\n\t],\n\t\"./material/ExpandMore.tsx\": [\n\t\t622,\n\t\t121\n\t],\n\t\"./material/Explore\": [\n\t\t623,\n\t\t122\n\t],\n\t\"./material/Explore.tsx\": [\n\t\t623,\n\t\t122\n\t],\n\t\"./material/FactCheck\": [\n\t\t624,\n\t\t123\n\t],\n\t\"./material/FactCheck.tsx\": [\n\t\t624,\n\t\t123\n\t],\n\t\"./material/FamilyRestroom\": [\n\t\t625,\n\t\t124\n\t],\n\t\"./material/FamilyRestroom.tsx\": [\n\t\t625,\n\t\t124\n\t],\n\t\"./material/FavoriteBorder\": [\n\t\t626,\n\t\t125\n\t],\n\t\"./material/FavoriteBorder.tsx\": [\n\t\t626,\n\t\t125\n\t],\n\t\"./material/Feedback\": [\n\t\t627,\n\t\t126\n\t],\n\t\"./material/Feedback.tsx\": [\n\t\t627,\n\t\t126\n\t],\n\t\"./material/FilterAlt\": [\n\t\t628,\n\t\t127\n\t],\n\t\"./material/FilterAlt.tsx\": [\n\t\t628,\n\t\t127\n\t],\n\t\"./material/FindInPage\": [\n\t\t629,\n\t\t128\n\t],\n\t\"./material/FindInPage.tsx\": [\n\t\t629,\n\t\t128\n\t],\n\t\"./material/Fingerprint\": [\n\t\t630,\n\t\t129\n\t],\n\t\"./material/Fingerprint.tsx\": [\n\t\t630,\n\t\t129\n\t],\n\t\"./material/Flag\": [\n\t\t631,\n\t\t130\n\t],\n\t\"./material/Flag.tsx\": [\n\t\t631,\n\t\t130\n\t],\n\t\"./material/FlightLand\": [\n\t\t632,\n\t\t131\n\t],\n\t\"./material/FlightLand.tsx\": [\n\t\t632,\n\t\t131\n\t],\n\t\"./material/FlightTakeoff\": [\n\t\t633,\n\t\t132\n\t],\n\t\"./material/FlightTakeoff.tsx\": [\n\t\t633,\n\t\t132\n\t],\n\t\"./material/Folder\": [\n\t\t634,\n\t\t133\n\t],\n\t\"./material/Folder.tsx\": [\n\t\t634,\n\t\t133\n\t],\n\t\"./material/FolderShared\": [\n\t\t635,\n\t\t134\n\t],\n\t\"./material/FolderShared.tsx\": [\n\t\t635,\n\t\t134\n\t],\n\t\"./material/FollowTheSigns\": [\n\t\t636,\n\t\t135\n\t],\n\t\"./material/FollowTheSigns.tsx\": [\n\t\t636,\n\t\t135\n\t],\n\t\"./material/Forum\": [\n\t\t637,\n\t\t136\n\t],\n\t\"./material/Forum.tsx\": [\n\t\t637,\n\t\t136\n\t],\n\t\"./material/FreeBreakfast\": [\n\t\t638,\n\t\t137\n\t],\n\t\"./material/FreeBreakfast.tsx\": [\n\t\t638,\n\t\t137\n\t],\n\t\"./material/Gavel\": [\n\t\t639,\n\t\t138\n\t],\n\t\"./material/Gavel.tsx\": [\n\t\t639,\n\t\t138\n\t],\n\t\"./material/GetApp\": [\n\t\t640,\n\t\t139\n\t],\n\t\"./material/GetApp.tsx\": [\n\t\t640,\n\t\t139\n\t],\n\t\"./material/GolfCourse\": [\n\t\t641,\n\t\t140\n\t],\n\t\"./material/GolfCourse.tsx\": [\n\t\t641,\n\t\t140\n\t],\n\t\"./material/Grade\": [\n\t\t642,\n\t\t141\n\t],\n\t\"./material/Grade.tsx\": [\n\t\t642,\n\t\t141\n\t],\n\t\"./material/Groups\": [\n\t\t643,\n\t\t142\n\t],\n\t\"./material/Groups.tsx\": [\n\t\t643,\n\t\t142\n\t],\n\t\"./material/HeadsetMic\": [\n\t\t644,\n\t\t143\n\t],\n\t\"./material/HeadsetMic.tsx\": [\n\t\t644,\n\t\t143\n\t],\n\t\"./material/Hearing\": [\n\t\t645,\n\t\t144\n\t],\n\t\"./material/Hearing.tsx\": [\n\t\t645,\n\t\t144\n\t],\n\t\"./material/HearingDisabled\": [\n\t\t646,\n\t\t145\n\t],\n\t\"./material/HearingDisabled.tsx\": [\n\t\t646,\n\t\t145\n\t],\n\t\"./material/HelpCenter\": [\n\t\t647,\n\t\t146\n\t],\n\t\"./material/HelpCenter.tsx\": [\n\t\t647,\n\t\t146\n\t],\n\t\"./material/HelpOutline\": [\n\t\t648,\n\t\t147\n\t],\n\t\"./material/HelpOutline.tsx\": [\n\t\t648,\n\t\t147\n\t],\n\t\"./material/HighlightOff\": [\n\t\t649,\n\t\t148\n\t],\n\t\"./material/HighlightOff.tsx\": [\n\t\t649,\n\t\t148\n\t],\n\t\"./material/History\": [\n\t\t650,\n\t\t149\n\t],\n\t\"./material/History.tsx\": [\n\t\t650,\n\t\t149\n\t],\n\t\"./material/HistoryEdu\": [\n\t\t651,\n\t\t150\n\t],\n\t\"./material/HistoryEdu.tsx\": [\n\t\t651,\n\t\t150\n\t],\n\t\"./material/Home\": [\n\t\t652,\n\t\t151\n\t],\n\t\"./material/Home.tsx\": [\n\t\t652,\n\t\t151\n\t],\n\t\"./material/HomeWork\": [\n\t\t653,\n\t\t152\n\t],\n\t\"./material/HomeWork.tsx\": [\n\t\t653,\n\t\t152\n\t],\n\t\"./material/HourglassEmpty\": [\n\t\t654,\n\t\t153\n\t],\n\t\"./material/HourglassEmpty.tsx\": [\n\t\t654,\n\t\t153\n\t],\n\t\"./material/HowToReg\": [\n\t\t655,\n\t\t154\n\t],\n\t\"./material/HowToReg.tsx\": [\n\t\t655,\n\t\t154\n\t],\n\t\"./material/HowToVote\": [\n\t\t656,\n\t\t155\n\t],\n\t\"./material/HowToVote.tsx\": [\n\t\t656,\n\t\t155\n\t],\n\t\"./material/Info\": [\n\t\t657,\n\t\t156\n\t],\n\t\"./material/Info.tsx\": [\n\t\t657,\n\t\t156\n\t],\n\t\"./material/Input\": [\n\t\t658,\n\t\t157\n\t],\n\t\"./material/Input.tsx\": [\n\t\t658,\n\t\t157\n\t],\n\t\"./material/InsertInvitation\": [\n\t\t659,\n\t\t158\n\t],\n\t\"./material/InsertInvitation.tsx\": [\n\t\t659,\n\t\t158\n\t],\n\t\"./material/Insights\": [\n\t\t660,\n\t\t159\n\t],\n\t\"./material/Insights.tsx\": [\n\t\t660,\n\t\t159\n\t],\n\t\"./material/Label\": [\n\t\t661,\n\t\t160\n\t],\n\t\"./material/Label.tsx\": [\n\t\t661,\n\t\t160\n\t],\n\t\"./material/Language\": [\n\t\t662,\n\t\t161\n\t],\n\t\"./material/Language.tsx\": [\n\t\t662,\n\t\t161\n\t],\n\t\"./material/LaptopMac\": [\n\t\t663,\n\t\t162\n\t],\n\t\"./material/LaptopMac.tsx\": [\n\t\t663,\n\t\t162\n\t],\n\t\"./material/Leaderboard\": [\n\t\t664,\n\t\t163\n\t],\n\t\"./material/Leaderboard.tsx\": [\n\t\t664,\n\t\t163\n\t],\n\t\"./material/Lightbulb\": [\n\t\t665,\n\t\t164\n\t],\n\t\"./material/Lightbulb.tsx\": [\n\t\t665,\n\t\t164\n\t],\n\t\"./material/Link\": [\n\t\t666,\n\t\t165\n\t],\n\t\"./material/Link.tsx\": [\n\t\t666,\n\t\t165\n\t],\n\t\"./material/List\": [\n\t\t667,\n\t\t166\n\t],\n\t\"./material/List.tsx\": [\n\t\t667,\n\t\t166\n\t],\n\t\"./material/LocalActivity\": [\n\t\t668,\n\t\t167\n\t],\n\t\"./material/LocalActivity.tsx\": [\n\t\t668,\n\t\t167\n\t],\n\t\"./material/LocalAirport\": [\n\t\t669,\n\t\t168\n\t],\n\t\"./material/LocalAirport.tsx\": [\n\t\t669,\n\t\t168\n\t],\n\t\"./material/LocalLibrary\": [\n\t\t670,\n\t\t169\n\t],\n\t\"./material/LocalLibrary.tsx\": [\n\t\t670,\n\t\t169\n\t],\n\t\"./material/LocalOffer\": [\n\t\t671,\n\t\t170\n\t],\n\t\"./material/LocalOffer.tsx\": [\n\t\t671,\n\t\t170\n\t],\n\t\"./material/Lock\": [\n\t\t672,\n\t\t171\n\t],\n\t\"./material/Lock.tsx\": [\n\t\t672,\n\t\t171\n\t],\n\t\"./material/LockOpen\": [\n\t\t673,\n\t\t172\n\t],\n\t\"./material/LockOpen.tsx\": [\n\t\t673,\n\t\t172\n\t],\n\t\"./material/Login\": [\n\t\t279\n\t],\n\t\"./material/Login.tsx\": [\n\t\t279\n\t],\n\t\"./material/Loop\": [\n\t\t674,\n\t\t173\n\t],\n\t\"./material/Loop.tsx\": [\n\t\t674,\n\t\t173\n\t],\n\t\"./material/Luggage\": [\n\t\t675,\n\t\t174\n\t],\n\t\"./material/Luggage.tsx\": [\n\t\t675,\n\t\t174\n\t],\n\t\"./material/Mail\": [\n\t\t676,\n\t\t175\n\t],\n\t\"./material/Mail.tsx\": [\n\t\t676,\n\t\t175\n\t],\n\t\"./material/Map\": [\n\t\t677,\n\t\t176\n\t],\n\t\"./material/Map.tsx\": [\n\t\t677,\n\t\t176\n\t],\n\t\"./material/MarkChatUnread\": [\n\t\t678,\n\t\t177\n\t],\n\t\"./material/MarkChatUnread.tsx\": [\n\t\t678,\n\t\t177\n\t],\n\t\"./material/Mediation\": [\n\t\t679,\n\t\t178\n\t],\n\t\"./material/Mediation.tsx\": [\n\t\t679,\n\t\t178\n\t],\n\t\"./material/MeetingRoom\": [\n\t\t680,\n\t\t179\n\t],\n\t\"./material/MeetingRoom.tsx\": [\n\t\t680,\n\t\t179\n\t],\n\t\"./material/Menu\": [\n\t\t278\n\t],\n\t\"./material/Menu.tsx\": [\n\t\t278\n\t],\n\t\"./material/MenuBook\": [\n\t\t681,\n\t\t180\n\t],\n\t\"./material/MenuBook.tsx\": [\n\t\t681,\n\t\t180\n\t],\n\t\"./material/MicNone\": [\n\t\t682,\n\t\t181\n\t],\n\t\"./material/MicNone.tsx\": [\n\t\t682,\n\t\t181\n\t],\n\t\"./material/MicOff\": [\n\t\t683,\n\t\t182\n\t],\n\t\"./material/MicOff.tsx\": [\n\t\t683,\n\t\t182\n\t],\n\t\"./material/MilitaryTech\": [\n\t\t684,\n\t\t183\n\t],\n\t\"./material/MilitaryTech.tsx\": [\n\t\t684,\n\t\t183\n\t],\n\t\"./material/MiscellaneousServices\": [\n\t\t685,\n\t\t184\n\t],\n\t\"./material/MiscellaneousServices.tsx\": [\n\t\t685,\n\t\t184\n\t],\n\t\"./material/Mode\": [\n\t\t686,\n\t\t185\n\t],\n\t\"./material/Mode.tsx\": [\n\t\t686,\n\t\t185\n\t],\n\t\"./material/MoreHoriz\": [\n\t\t687,\n\t\t186\n\t],\n\t\"./material/MoreHoriz.tsx\": [\n\t\t687,\n\t\t186\n\t],\n\t\"./material/MoreVert\": [\n\t\t688,\n\t\t187\n\t],\n\t\"./material/MoreVert.tsx\": [\n\t\t688,\n\t\t187\n\t],\n\t\"./material/Movie\": [\n\t\t689,\n\t\t188\n\t],\n\t\"./material/Movie.tsx\": [\n\t\t689,\n\t\t188\n\t],\n\t\"./material/NaturePeople\": [\n\t\t690,\n\t\t189\n\t],\n\t\"./material/NaturePeople.tsx\": [\n\t\t690,\n\t\t189\n\t],\n\t\"./material/NearMe\": [\n\t\t691,\n\t\t190\n\t],\n\t\"./material/NearMe.tsx\": [\n\t\t691,\n\t\t190\n\t],\n\t\"./material/NewMovie\": [\n\t\t692,\n\t\t191\n\t],\n\t\"./material/NewMovie.tsx\": [\n\t\t692,\n\t\t191\n\t],\n\t\"./material/NewReleases\": [\n\t\t693,\n\t\t192\n\t],\n\t\"./material/NewReleases.tsx\": [\n\t\t693,\n\t\t192\n\t],\n\t\"./material/NightsStay\": [\n\t\t694,\n\t\t193\n\t],\n\t\"./material/NightsStay.tsx\": [\n\t\t694,\n\t\t193\n\t],\n\t\"./material/NotListedLocation\": [\n\t\t695,\n\t\t194\n\t],\n\t\"./material/NotListedLocation.tsx\": [\n\t\t695,\n\t\t194\n\t],\n\t\"./material/NotStarted\": [\n\t\t696,\n\t\t195\n\t],\n\t\"./material/NotStarted.tsx\": [\n\t\t696,\n\t\t195\n\t],\n\t\"./material/NotificationsNone\": [\n\t\t697,\n\t\t196\n\t],\n\t\"./material/NotificationsNone.tsx\": [\n\t\t697,\n\t\t196\n\t],\n\t\"./material/NotificationsOff\": [\n\t\t698,\n\t\t197\n\t],\n\t\"./material/NotificationsOff.tsx\": [\n\t\t698,\n\t\t197\n\t],\n\t\"./material/OpenInNew\": [\n\t\t699,\n\t\t198\n\t],\n\t\"./material/OpenInNew.tsx\": [\n\t\t699,\n\t\t198\n\t],\n\t\"./material/PanTool\": [\n\t\t700,\n\t\t199\n\t],\n\t\"./material/PanTool.tsx\": [\n\t\t700,\n\t\t199\n\t],\n\t\"./material/Pause\": [\n\t\t701,\n\t\t200\n\t],\n\t\"./material/Pause.tsx\": [\n\t\t701,\n\t\t200\n\t],\n\t\"./material/Payment\": [\n\t\t702,\n\t\t201\n\t],\n\t\"./material/Payment.tsx\": [\n\t\t702,\n\t\t201\n\t],\n\t\"./material/Pending\": [\n\t\t703,\n\t\t202\n\t],\n\t\"./material/Pending.tsx\": [\n\t\t703,\n\t\t202\n\t],\n\t\"./material/PendingActions\": [\n\t\t704,\n\t\t203\n\t],\n\t\"./material/PendingActions.tsx\": [\n\t\t704,\n\t\t203\n\t],\n\t\"./material/People\": [\n\t\t705,\n\t\t204\n\t],\n\t\"./material/People.tsx\": [\n\t\t705,\n\t\t204\n\t],\n\t\"./material/PermIdentity\": [\n\t\t280\n\t],\n\t\"./material/PermIdentity.tsx\": [\n\t\t280\n\t],\n\t\"./material/PermMedia\": [\n\t\t706,\n\t\t205\n\t],\n\t\"./material/PermMedia.tsx\": [\n\t\t706,\n\t\t205\n\t],\n\t\"./material/PersonAddAlt1\": [\n\t\t707,\n\t\t206\n\t],\n\t\"./material/PersonAddAlt1.tsx\": [\n\t\t707,\n\t\t206\n\t],\n\t\"./material/PersonOutline\": [\n\t\t708,\n\t\t207\n\t],\n\t\"./material/PersonOutline.tsx\": [\n\t\t708,\n\t\t207\n\t],\n\t\"./material/PersonPinCircle\": [\n\t\t709,\n\t\t208\n\t],\n\t\"./material/PersonPinCircle.tsx\": [\n\t\t709,\n\t\t208\n\t],\n\t\"./material/PersonRemove\": [\n\t\t710,\n\t\t209\n\t],\n\t\"./material/PersonRemove.tsx\": [\n\t\t710,\n\t\t209\n\t],\n\t\"./material/PersonSearch\": [\n\t\t711,\n\t\t210\n\t],\n\t\"./material/PersonSearch.tsx\": [\n\t\t711,\n\t\t210\n\t],\n\t\"./material/PersonalVideo\": [\n\t\t712,\n\t\t211\n\t],\n\t\"./material/PersonalVideo.tsx\": [\n\t\t712,\n\t\t211\n\t],\n\t\"./material/PhoneIphone\": [\n\t\t713,\n\t\t212\n\t],\n\t\"./material/PhoneIphone.tsx\": [\n\t\t713,\n\t\t212\n\t],\n\t\"./material/Phonelink\": [\n\t\t714,\n\t\t213\n\t],\n\t\"./material/Phonelink.tsx\": [\n\t\t714,\n\t\t213\n\t],\n\t\"./material/PhotoCamera\": [\n\t\t715,\n\t\t214\n\t],\n\t\"./material/PhotoCamera.tsx\": [\n\t\t715,\n\t\t214\n\t],\n\t\"./material/PieChart\": [\n\t\t716,\n\t\t215\n\t],\n\t\"./material/PieChart.tsx\": [\n\t\t716,\n\t\t215\n\t],\n\t\"./material/Place\": [\n\t\t717,\n\t\t216\n\t],\n\t\"./material/Place.tsx\": [\n\t\t717,\n\t\t216\n\t],\n\t\"./material/PlayArrow\": [\n\t\t718,\n\t\t217\n\t],\n\t\"./material/PlayArrow.tsx\": [\n\t\t718,\n\t\t217\n\t],\n\t\"./material/Poll\": [\n\t\t719,\n\t\t218\n\t],\n\t\"./material/Poll.tsx\": [\n\t\t719,\n\t\t218\n\t],\n\t\"./material/PowerSettingsNew\": [\n\t\t720,\n\t\t219\n\t],\n\t\"./material/PowerSettingsNew.tsx\": [\n\t\t720,\n\t\t219\n\t],\n\t\"./material/Print\": [\n\t\t721,\n\t\t220\n\t],\n\t\"./material/Print.tsx\": [\n\t\t721,\n\t\t220\n\t],\n\t\"./material/PrivacyTip\": [\n\t\t722,\n\t\t221\n\t],\n\t\"./material/PrivacyTip.tsx\": [\n\t\t722,\n\t\t221\n\t],\n\t\"./material/Psychology\": [\n\t\t723,\n\t\t222\n\t],\n\t\"./material/Psychology.tsx\": [\n\t\t723,\n\t\t222\n\t],\n\t\"./material/Public\": [\n\t\t724,\n\t\t223\n\t],\n\t\"./material/Public.tsx\": [\n\t\t724,\n\t\t223\n\t],\n\t\"./material/PushPin\": [\n\t\t725,\n\t\t224\n\t],\n\t\"./material/PushPin.tsx\": [\n\t\t725,\n\t\t224\n\t],\n\t\"./material/QuestionAnswer\": [\n\t\t726,\n\t\t225\n\t],\n\t\"./material/QuestionAnswer.tsx\": [\n\t\t726,\n\t\t225\n\t],\n\t\"./material/QueueMusic\": [\n\t\t727,\n\t\t226\n\t],\n\t\"./material/QueueMusic.tsx\": [\n\t\t727,\n\t\t226\n\t],\n\t\"./material/Receipt\": [\n\t\t728,\n\t\t227\n\t],\n\t\"./material/Receipt.tsx\": [\n\t\t728,\n\t\t227\n\t],\n\t\"./material/RecordVoiceOver\": [\n\t\t729,\n\t\t228\n\t],\n\t\"./material/RecordVoiceOver.tsx\": [\n\t\t729,\n\t\t228\n\t],\n\t\"./material/Redeem\": [\n\t\t730,\n\t\t229\n\t],\n\t\"./material/Redeem.tsx\": [\n\t\t730,\n\t\t229\n\t],\n\t\"./material/Refresh\": [\n\t\t731,\n\t\t230\n\t],\n\t\"./material/Refresh.tsx\": [\n\t\t731,\n\t\t230\n\t],\n\t\"./material/Report\": [\n\t\t732,\n\t\t231\n\t],\n\t\"./material/Report.tsx\": [\n\t\t732,\n\t\t231\n\t],\n\t\"./material/RequestPage\": [\n\t\t733,\n\t\t232\n\t],\n\t\"./material/RequestPage.tsx\": [\n\t\t733,\n\t\t232\n\t],\n\t\"./material/RequestQuote\": [\n\t\t734,\n\t\t233\n\t],\n\t\"./material/RequestQuote.tsx\": [\n\t\t734,\n\t\t233\n\t],\n\t\"./material/Rule\": [\n\t\t735,\n\t\t234\n\t],\n\t\"./material/Rule.tsx\": [\n\t\t735,\n\t\t234\n\t],\n\t\"./material/Save\": [\n\t\t736,\n\t\t235\n\t],\n\t\"./material/Save.tsx\": [\n\t\t736,\n\t\t235\n\t],\n\t\"./material/SaveAlt\": [\n\t\t737,\n\t\t236\n\t],\n\t\"./material/SaveAlt.tsx\": [\n\t\t737,\n\t\t236\n\t],\n\t\"./material/Schedule\": [\n\t\t738,\n\t\t237\n\t],\n\t\"./material/Schedule.tsx\": [\n\t\t738,\n\t\t237\n\t],\n\t\"./material/School\": [\n\t\t739,\n\t\t238\n\t],\n\t\"./material/School.tsx\": [\n\t\t739,\n\t\t238\n\t],\n\t\"./material/Search\": [\n\t\t196\n\t],\n\t\"./material/Search.tsx\": [\n\t\t196\n\t],\n\t\"./material/Security\": [\n\t\t740,\n\t\t239\n\t],\n\t\"./material/Security.tsx\": [\n\t\t740,\n\t\t239\n\t],\n\t\"./material/SentimentSatisfied\": [\n\t\t741,\n\t\t240\n\t],\n\t\"./material/SentimentSatisfied.tsx\": [\n\t\t741,\n\t\t240\n\t],\n\t\"./material/Settings\": [\n\t\t742,\n\t\t241\n\t],\n\t\"./material/Settings.tsx\": [\n\t\t742,\n\t\t241\n\t],\n\t\"./material/SettingsEthernet\": [\n\t\t743,\n\t\t242\n\t],\n\t\"./material/SettingsEthernet.tsx\": [\n\t\t743,\n\t\t242\n\t],\n\t\"./material/SettingsRemote\": [\n\t\t744,\n\t\t243\n\t],\n\t\"./material/SettingsRemote.tsx\": [\n\t\t744,\n\t\t243\n\t],\n\t\"./material/Share\": [\n\t\t745,\n\t\t244\n\t],\n\t\"./material/Share.tsx\": [\n\t\t745,\n\t\t244\n\t],\n\t\"./material/ShoppingBag\": [\n\t\t746,\n\t\t245\n\t],\n\t\"./material/ShoppingBag.tsx\": [\n\t\t746,\n\t\t245\n\t],\n\t\"./material/ShoppingCart\": [\n\t\t747,\n\t\t246\n\t],\n\t\"./material/ShoppingCart.tsx\": [\n\t\t747,\n\t\t246\n\t],\n\t\"./material/Sms\": [\n\t\t748,\n\t\t247\n\t],\n\t\"./material/Sms.tsx\": [\n\t\t748,\n\t\t247\n\t],\n\t\"./material/SmsFailed\": [\n\t\t749,\n\t\t248\n\t],\n\t\"./material/SmsFailed.tsx\": [\n\t\t749,\n\t\t248\n\t],\n\t\"./material/Source\": [\n\t\t750,\n\t\t249\n\t],\n\t\"./material/Source.tsx\": [\n\t\t750,\n\t\t249\n\t],\n\t\"./material/Spa\": [\n\t\t751,\n\t\t250\n\t],\n\t\"./material/Spa.tsx\": [\n\t\t751,\n\t\t250\n\t],\n\t\"./material/Sports\": [\n\t\t752,\n\t\t251\n\t],\n\t\"./material/Sports.tsx\": [\n\t\t752,\n\t\t251\n\t],\n\t\"./material/Stars\": [\n\t\t753,\n\t\t252\n\t],\n\t\"./material/Stars.tsx\": [\n\t\t753,\n\t\t252\n\t],\n\t\"./material/StickyNote2\": [\n\t\t754,\n\t\t253\n\t],\n\t\"./material/StickyNote2.tsx\": [\n\t\t754,\n\t\t253\n\t],\n\t\"./material/Storefront\": [\n\t\t755,\n\t\t254\n\t],\n\t\"./material/Storefront.tsx\": [\n\t\t755,\n\t\t254\n\t],\n\t\"./material/SubdirectoryArrowRight\": [\n\t\t756,\n\t\t255\n\t],\n\t\"./material/SubdirectoryArrowRight.tsx\": [\n\t\t756,\n\t\t255\n\t],\n\t\"./material/SupervisedUserCircle\": [\n\t\t757,\n\t\t256\n\t],\n\t\"./material/SupervisedUserCircle.tsx\": [\n\t\t757,\n\t\t256\n\t],\n\t\"./material/SupervisorAccount\": [\n\t\t758,\n\t\t257\n\t],\n\t\"./material/SupervisorAccount.tsx\": [\n\t\t758,\n\t\t257\n\t],\n\t\"./material/Support\": [\n\t\t759,\n\t\t258\n\t],\n\t\"./material/Support.tsx\": [\n\t\t759,\n\t\t258\n\t],\n\t\"./material/SupportAgent\": [\n\t\t760,\n\t\t259\n\t],\n\t\"./material/SupportAgent.tsx\": [\n\t\t760,\n\t\t259\n\t],\n\t\"./material/SwapHoriz\": [\n\t\t761,\n\t\t260\n\t],\n\t\"./material/SwapHoriz.tsx\": [\n\t\t761,\n\t\t260\n\t],\n\t\"./material/SwapHorizontalCircle\": [\n\t\t762,\n\t\t261\n\t],\n\t\"./material/SwapHorizontalCircle.tsx\": [\n\t\t762,\n\t\t261\n\t],\n\t\"./material/SwapVert\": [\n\t\t763,\n\t\t262\n\t],\n\t\"./material/SwapVert.tsx\": [\n\t\t763,\n\t\t262\n\t],\n\t\"./material/SwapVerticalCircle\": [\n\t\t764,\n\t\t263\n\t],\n\t\"./material/SwapVerticalCircle.tsx\": [\n\t\t764,\n\t\t263\n\t],\n\t\"./material/Sync\": [\n\t\t765,\n\t\t264\n\t],\n\t\"./material/Sync.tsx\": [\n\t\t765,\n\t\t264\n\t],\n\t\"./material/TableView\": [\n\t\t766,\n\t\t265\n\t],\n\t\"./material/TableView.tsx\": [\n\t\t766,\n\t\t265\n\t],\n\t\"./material/TabletMac\": [\n\t\t767,\n\t\t266\n\t],\n\t\"./material/TabletMac.tsx\": [\n\t\t767,\n\t\t266\n\t],\n\t\"./material/ThumbDown\": [\n\t\t768,\n\t\t267\n\t],\n\t\"./material/ThumbDown.tsx\": [\n\t\t768,\n\t\t267\n\t],\n\t\"./material/ThumbUp\": [\n\t\t769,\n\t\t268\n\t],\n\t\"./material/ThumbUp.tsx\": [\n\t\t769,\n\t\t268\n\t],\n\t\"./material/ThumbsUpDown\": [\n\t\t770,\n\t\t269\n\t],\n\t\"./material/ThumbsUpDown.tsx\": [\n\t\t770,\n\t\t269\n\t],\n\t\"./material/Timeline\": [\n\t\t771,\n\t\t270\n\t],\n\t\"./material/Timeline.tsx\": [\n\t\t771,\n\t\t270\n\t],\n\t\"./material/Toc\": [\n\t\t772,\n\t\t271\n\t],\n\t\"./material/Toc.tsx\": [\n\t\t772,\n\t\t271\n\t],\n\t\"./material/TrackChanges\": [\n\t\t773,\n\t\t272\n\t],\n\t\"./material/TrackChanges.tsx\": [\n\t\t773,\n\t\t272\n\t],\n\t\"./material/Train\": [\n\t\t774,\n\t\t273\n\t],\n\t\"./material/Train.tsx\": [\n\t\t774,\n\t\t273\n\t],\n\t\"./material/Translate\": [\n\t\t775,\n\t\t274\n\t],\n\t\"./material/Translate.tsx\": [\n\t\t775,\n\t\t274\n\t],\n\t\"./material/TrendingDown\": [\n\t\t776,\n\t\t275\n\t],\n\t\"./material/TrendingDown.tsx\": [\n\t\t776,\n\t\t275\n\t],\n\t\"./material/TrendingFlat\": [\n\t\t777,\n\t\t276\n\t],\n\t\"./material/TrendingFlat.tsx\": [\n\t\t777,\n\t\t276\n\t],\n\t\"./material/TrendingUp\": [\n\t\t778,\n\t\t277\n\t],\n\t\"./material/TrendingUp.tsx\": [\n\t\t778,\n\t\t277\n\t],\n\t\"./material/Tune\": [\n\t\t779,\n\t\t278\n\t],\n\t\"./material/Tune.tsx\": [\n\t\t779,\n\t\t278\n\t],\n\t\"./material/TurnedInNot\": [\n\t\t780,\n\t\t279\n\t],\n\t\"./material/TurnedInNot.tsx\": [\n\t\t780,\n\t\t279\n\t],\n\t\"./material/Upload\": [\n\t\t781,\n\t\t280\n\t],\n\t\"./material/Upload.tsx\": [\n\t\t781,\n\t\t280\n\t],\n\t\"./material/Verified\": [\n\t\t782,\n\t\t281\n\t],\n\t\"./material/Verified.tsx\": [\n\t\t782,\n\t\t281\n\t],\n\t\"./material/VerifiedUser\": [\n\t\t783,\n\t\t282\n\t],\n\t\"./material/VerifiedUser.tsx\": [\n\t\t783,\n\t\t282\n\t],\n\t\"./material/VerticalSplit\": [\n\t\t784,\n\t\t283\n\t],\n\t\"./material/VerticalSplit.tsx\": [\n\t\t784,\n\t\t283\n\t],\n\t\"./material/ViewList\": [\n\t\t785,\n\t\t284\n\t],\n\t\"./material/ViewList.tsx\": [\n\t\t785,\n\t\t284\n\t],\n\t\"./material/Visibility\": [\n\t\t786,\n\t\t285\n\t],\n\t\"./material/Visibility.tsx\": [\n\t\t786,\n\t\t285\n\t],\n\t\"./material/VisibilityOff\": [\n\t\t787,\n\t\t286\n\t],\n\t\"./material/VisibilityOff.tsx\": [\n\t\t787,\n\t\t286\n\t],\n\t\"./material/VoiceOverOff\": [\n\t\t788,\n\t\t287\n\t],\n\t\"./material/VoiceOverOff.tsx\": [\n\t\t788,\n\t\t287\n\t],\n\t\"./material/VolumeOff\": [\n\t\t789,\n\t\t288\n\t],\n\t\"./material/VolumeOff.tsx\": [\n\t\t789,\n\t\t288\n\t],\n\t\"./material/VolumeUp\": [\n\t\t790,\n\t\t289\n\t],\n\t\"./material/VolumeUp.tsx\": [\n\t\t790,\n\t\t289\n\t],\n\t\"./material/VpnLock\": [\n\t\t791,\n\t\t290\n\t],\n\t\"./material/VpnLock.tsx\": [\n\t\t791,\n\t\t290\n\t],\n\t\"./material/WarningAmber\": [\n\t\t792,\n\t\t291\n\t],\n\t\"./material/WarningAmber.tsx\": [\n\t\t792,\n\t\t291\n\t],\n\t\"./material/WbSunny\": [\n\t\t793,\n\t\t292\n\t],\n\t\"./material/WbSunny.tsx\": [\n\t\t793,\n\t\t292\n\t],\n\t\"./material/Wifi\": [\n\t\t794,\n\t\t293\n\t],\n\t\"./material/Wifi.tsx\": [\n\t\t794,\n\t\t293\n\t],\n\t\"./material/WorkOutline\": [\n\t\t795,\n\t\t294\n\t],\n\t\"./material/WorkOutline.tsx\": [\n\t\t795,\n\t\t294\n\t],\n\t\"./material/ZoomIn\": [\n\t\t796,\n\t\t295\n\t],\n\t\"./material/ZoomIn.tsx\": [\n\t\t796,\n\t\t295\n\t],\n\t\"./material/ZoomOut\": [\n\t\t797,\n\t\t296\n\t],\n\t\"./material/ZoomOut.tsx\": [\n\t\t797,\n\t\t296\n\t],\n\t\"./status/Book\": [\n\t\t223\n\t],\n\t\"./status/Book.tsx\": [\n\t\t223\n\t],\n\t\"./status/Closed\": [\n\t\t229\n\t],\n\t\"./status/Closed.tsx\": [\n\t\t229\n\t],\n\t\"./status/Completed\": [\n\t\t230\n\t],\n\t\"./status/Completed.tsx\": [\n\t\t230\n\t],\n\t\"./status/InProgress\": [\n\t\t238\n\t],\n\t\"./status/InProgress.tsx\": [\n\t\t238\n\t],\n\t\"./status/OpenForFeedback\": [\n\t\t242\n\t],\n\t\"./status/OpenForFeedback.tsx\": [\n\t\t242\n\t],\n\t\"./status/Planned\": [\n\t\t245\n\t],\n\t\"./status/Planned.tsx\": [\n\t\t245\n\t],\n\t\"./status/UnderReview\": [\n\t\t252\n\t],\n\t\"./status/UnderReview.tsx\": [\n\t\t252\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 916;\nmodule.exports = webpackAsyncContext;","import styled from 'styled-components';\r\n\r\nimport {\r\n button,\r\n hideOnPrint,\r\n mq,\r\n safeFocusRemoval,\r\n svg,\r\n} from '_utils/styles';\r\n\r\nexport const Container = styled.div`\r\n position: relative;\r\n width: 100%;\r\n`;\r\n\r\nexport const FlickityWrapper = styled.div`\r\n /* padding is for dots to avoid overflow scroll bars */\r\n padding-bottom: 28px;\r\n\r\n .flickity-viewport {\r\n overflow-x: hidden;\r\n\r\n @media print {\r\n overflow: visible;\r\n }\r\n\r\n body:not(.safe-focus-removal) &:focus {\r\n outline: none;\r\n }\r\n }\r\n\r\n .flickity-page-dots .dot {\r\n background: ${({ theme }) => theme.carousel.flickityWrapper.dot.background};\r\n height: 8px;\r\n width: 8px;\r\n\r\n &.is-selected {\r\n background: ${({ theme }) => theme.carousel.flickityWrapper.isSelected.background};\r\n }\r\n opacity: 1;\r\n }\r\n`;\r\n\r\nexport const PrevNextPosition = styled.div`\r\n position: absolute;\r\n z-index: 1;\r\n overflow: visible;\r\n top: 50%;\r\n transition: transform 0.4s ${({ theme }) => theme.motion.ease};\r\n\r\n &.prev {\r\n left: 12px;\r\n transform: translate(-50%, -50%);\r\n\r\n ${mq('lg')} {\r\n left: 52px;\r\n transform: translate(-150%, -50%);\r\n }\r\n }\r\n\r\n &.next {\r\n right: 12px;\r\n transform: translate(50%, -50%);\r\n\r\n ${mq('lg')} {\r\n right: 52px;\r\n transform: translate(150%, -50%);\r\n }\r\n }\r\n\r\n ${mq.lessThan('lg')} {\r\n ${({ hidePrevNextButtonsOnMobile})=> {\r\n if (hidePrevNextButtonsOnMobile) {\r\n return `display: none;`\r\n }\r\n }}\r\n }\r\n`;\r\n\r\nexport const PrevNextButton = styled.button`\r\n ${button()}\r\n ${safeFocusRemoval}\r\n align-items: center;\r\n border-radius: 50%;\r\n display: flex;\r\n height: 32px;\r\n justify-content: center;\r\n opacity: 1;\r\n padding: 0;\r\n transition: opacity ${({ theme }) => theme.motion.timing.fast} linear;\r\n width: 32px;\r\n\r\n ${mq('md')} {\r\n width: 40px;\r\n height: 40px;\r\n }\r\n\r\n &:disabled {\r\n opacity: 0;\r\n pointer-events: none;\r\n cursor: auto;\r\n }\r\n\r\n ${hideOnPrint}\r\n`;\r\n\r\nexport const ArrowWrapper = styled.span`\r\n flex: none;\r\n ${() => svg(7, 12)};\r\n width: 8px;\r\n path {\r\n fill: ${({ theme }) => theme.carousel.arrowWrapper.pathFillColor};\r\n }\r\n\r\n .prev & {\r\n right: 2px;\r\n transform: rotate(180deg);\r\n }\r\n`;\r\n"],"sourceRoot":""}