{"version":3,"sources":["helpers/cn.tsx","helpers/clone-deep.tsx","helpers/debounce.tsx","helpers/detect-language.tsx","helpers/get-text.tsx","helpers/throttle.tsx","helpers/create-year-in-past.tsx","helpers/number-formatter.tsx","helpers/is-internal-user.tsx","helpers/auth-data.tsx","helpers/toggle.tsx","helpers/type-checker.tsx","helpers/unmask.tsx","helpers/filter-builder.tsx","helpers/search-filter-builder.tsx","helpers/html-to-json.tsx","helpers/sanitizer.tsx","helpers/super-script-sanitizer.tsx","helpers/remove-invalid-characters.tsx","helpers/page-texts-section.tsx","helpers/locale-date-format.tsx","helpers/unique-array.tsx","helpers/create-array-from-piped-string.tsx","helpers/html-entities.tsx","helpers/random.tsx","helpers/get-search-type.tsx","helpers/file-size.tsx","helpers/valid-internal-user.tsx","helpers/get-flag-type.tsx","helpers/get-link-config-lang.tsx","utilities/api-manager/generate-api-headers.tsx","utilities/api-manager/index.tsx","utilities/parse-query.tsx","components/_common/dropdown-button/dropdown-button.tsx","components/_common/sign-in-button/sign-in-button.tsx","components/_common/html-content/html-content.tsx","helpers/sort.tsx","assets/svg/icons/caret-right.svg","assets/svg/icons/datasets-filter.svg","utilities/spg-variables.tsx","helpers/get-config.tsx","components/_common/error-boundary/error-boundary.tsx","helpers/get.tsx","redux/user/user.reducer.tsx","redux/datasets/datasets.reducer.tsx","redux/solutions/solutions.reducer.tsx","redux/blueprints/blueprints.reducer.tsx","redux/filters/filters.reducer.tsx","redux/errors/errors.reducer.tsx","redux/shared/shared.reducer.tsx","redux/querybuilder/query-builder.reducer.tsx","redux/querylibrary/querylibrary.reducer.tsx","utilities/build-url.tsx","components/_common/button/button.tsx","utilities/log-usage.tsx","helpers/date-diff.tsx","utilities/security.tsx","components/_common/modal/index.tsx","components/notify-me/notify-me.tsx","assets/svg/icons/clock.svg","assets/svg/icons/refresh.svg","assets/svg/icons/added-circle.svg","components/data-flag/data-flag.tsx","assets/svg/icons/close.svg","assets/svg/icons/caret-down.svg","utilities/query-string-manager.tsx","components/_common/modal/modal.tsx","redux/querybuilder/query-builder.actions.tsx","utilities/key-pages.tsx","redux/errors/errors.actions.tsx","redux/datasets/datasets.actions.tsx","redux/store.tsx","redux/web-storage.tsx","redux/solutions/solutions.actions.tsx","redux/blueprints/blueprints.actions.tsx","utilities/application-insights.tsx","components/_common/loader/loader.tsx","theme/theme.tsx","components/_common/helmet-manager/helmet-manager.tsx","components/_common/popup/popup.tsx","components/_common/spinner/spinner.tsx","assets/svg/product-finder-button-img.svg","assets/svg/icons/product-finder.svg","components/_common/custom-link/custom-link.tsx","assets/svg/icons/query-library.svg","utilities/extract-id.tsx","assets/svg/icons/success.svg","components/_common/form/text-field-input/text-field-input.tsx","assets/svg/icons/caret-up.svg","components/_common/notification/notification.tsx","utilities/history.tsx","components/_common/custom-link/index.tsx","redux/querylibrary/querylibrary.actions.tsx","assets/svg/icons/external-link.svg","components/_common/form/checkbox-input/checkbox-input.tsx","redux/user/user.actions.tsx","redux/actionTypes.tsx","utilities/slugify.tsx","utilities/data-mappers/map-databundle-to-dataprofile-card.tsx","utilities/data-mappers/map-dataset-to-dataprofile-card.tsx","utilities/data-mappers/map-dataset-to-dataprofile.tsx","utilities/data-mappers/map-databundle-to-dataprofile.tsx","utilities/data-mappers/map-searchresults-to-dataprofile-card.tsx","utilities/data-mappers/map-searchresults-to-query.tsx","utilities/data-mappers/map-searchresults-to-solution.tsx","utilities/data-mappers/map-databundle-to-relateddataset.tsx","utilities/data-mappers/map-databundle-to-industry.tsx","utilities/data-mappers/map-searchresults-to-blueprint.tsx","redux/shared/shared.actions.tsx","redux/server-store.tsx","redux/filters/filters.actions.tsx","utilities/init-data.tsx","utilities/gtm-tracker.tsx","utilities/router-manager.tsx","assets/svg/standard-and-poor-global-marketplace.svg","assets/svg/icons/user.svg","components/global-header/global-header-profile-menu/global-header-profile-menu.tsx","components/global-header/global-header-sub-menu/global-header-sub-menu.tsx","components/_common/sign-up-button/sign-up-button.tsx","components/global-header/global-header-sign-in/global-header-sign-in.tsx","components/_common/typeahead-old/typeahead-dropdown/typeahead-dropdown.tsx","helpers/auth-data-blueprint.tsx","components/_common/typeahead-old/typeahead.tsx","components/global-header/global-header-desktop/global-header-desktop.tsx","components/global-header/global-header-menu-icon/global-header-menu-icon.tsx","components/global-header/global-header-search-overlay/global-header-search-overlay.tsx","components/blackhat-header-footer/header/blackhat-right-menu-item.tsx","components/global-header/global-header-menu/global-header-menu.tsx","components/global-header/global-header-mobile/global-header-mobile.tsx","components/global-header/global-header.tsx","components/blackhat-header-footer/footer/blackhat-footer.tsx","components/blackhat-header-footer/header/blackhat-left-menu-item.tsx","components/blackhat-header-footer/header/blackhat-header.tsx","components/okta-login-callback/okta-login-callback.tsx","utilities/protected-route/protected-route.tsx","utilities/annonymous-route/annonymous-route.tsx","components/error-message/error-message.tsx","routes/router.tsx","components/notification-container/notification-container.tsx","utilities/marketo-tracker.tsx","utilities/cookie-notice.tsx","utilities/set-language-context.tsx","utilities/feature-flags.tsx","serviceWorkerRegistration.ts","utilities/tracker.tsx","index.entry.tsx","utilities/tracker-datadog.tsx","utilities/error-manager.tsx","assets/svg/icons/search.svg"],"names":["cn","cloneDeep","debounce","spgVariables","SPGVariables","detectLanguage","languages","SUPPORTED_LANGUAGES","langCode","IS_SERVER_REQUEST","window","location","pathname","split","length","includes","browserLangCode","navigator","language","substring","doRedirect","result","overwriteMerge","destinationArray","sourceArray","setLangResource","langFileJA","require","deepMerge","langFileEN","arrayMerge","langFileZH","langFile","getText","key","get","concat","yearsAgo","currentDate","Date","setFullYear","getFullYear","input","Intl","NumberFormat","style","format","isInternalUser","allowedList","userEmail","arr","filter","x","toLowerCase","indexOf","authSolList","getConfig","allowedDomains","authdata","list","email","isValidUser","KeyPlatformService","toggleAllAria","items","toggleProp1","toggleProp2","value","map","a","b","isNumber","isBoolean","filterOptions","region","keyColumn","pointInTime","industry","category","history","delivery","deliveryPlatform","vendor","keyRegion","keyPointInTime","keyIndustry","keyCategory","keyHistory","keyDelivery","keyActiveFlag","activeFlag","keyDeliveryPlatform","keyVendor","keyQueryType","querytype","keyDataset","dataset","searchFilterBuilder","filters","geographyQuery","forEach","filterData","parseInt","push","replace","_filterData$split","_filterData$split2","_slicedToArray","terms","PointInTime","KeySPGDestinationPlatform","KeySPGDeliveryPlatform","KeyMIIndustryTree","KeyMarketplaceSearchTag","ActiveMPDatasetCoverage","MarketPlaceVendor","KeyMarketplaceQueryType","DatasetID","range","EarliestRecord","lte","gte","query_string","query","join","KeyGeographyTree","htmlToJson","content","headerArray","bodyArray","tempDiv","document","createElement","innerHTML","headers","querySelector","body","headerRows","querySelectorAll","i","r","cells","textContent","bodyRows","sanitizerOptions","ADD_ATTR","ADD_TAGS","ALLOW_DATA_ATTR","FORBID_ATTR","FORBID_TAGS","KEEP_CONTENT","sanitizer","str","options","DOMPurify","sanitize","_objectSpread","superScriptSanitizer","text","symbols","index","_toConsumableArray","findIndex","s","symbol","React","removeInvalidCharacters","emptySection","title","linkText","linkUrl","sectionName","pageSectionsData","dataDrivenTexts","find","MarketplacePageSection","MarketplacePageSectionName","pageSectionData","MarketplaceSectionConHeader","MarketplaceSectionConDesc","MarketplaceSectionConLinkTitle","WebSiteURL","localeCode","option","month","day","year","date","toString","DateTimeFormat","uniqueArray","array","property","flags","Set","entry","has","add","createArrayFromPipedString","cleanString","decode","textArea","encode","SearchType","random","n","Math","abs","floor","fileSize","size","sizeInFloat","parseFloat","toFixed","validInternalUser","user","userInfo","Email","flagCutOff","getFlagType","addedDate","enhancedDate","dateTodayMinus90","getTime","dateToday","dateDatasetAdded","parse","dateDatasetEnhanced","getUpdatedLink","link","urlArray","protocol","host","keywordList","isMatchedData","searchInput","valueList","matched","element","trim","OpenSearchStrategy","_classCallCheck","apply","openSearch","LLMSearchStrategy","llmSearch","createSearchStrategyFactory","conditions","Map","getSearchStrategy","searchValue","pattern","regEx","RegExp","match","pathExp","generateHeaders","url","exec","time","signable","sha1","SHA","setHMACKey","update","getHMAC","g","pRetryOptions","urls","commonEmailTemplate","userProfileProperties","userProfileV2Properties","datasetSolutionFields","bluePrintFields","queryLibraryFields","solutionFullProperties","solutionFullExpand","axios","defaults","baseURL","APIBASE","post","timeout","then","security","setOAuthRequestInterceptor","handleError","error","parameters","onError","isCancel","ErrorManager","apiError","Promise","reject","generateOdataClientHeaders","GenerateHeaders","GetAllDataFromUrls","serviceName","requestUrls","pRetry","all","request","method","withCredentials","spread","_len","arguments","responses","Array","_key","data","ServiceName","RequestUri","msg","process","REACT_APP_SPOOF_API","spoofResponses","mi","odata","APIToken","apis","getDataCatalog","apiLangcode","isDefaultLanguage","requestUris","api","cms","datasetCards","datasetBundleCards","datasetNames","datasetBundleNames","logUsage","resolve","logging","logPageAccess","console","search","advFilters","queryFilter","cancel","fieldsToInclude","CancelToken","source","filterList","isType","undefined","replaceCode","id","params","search_text","mode","limit","fields_to_include","field","fields_to_exclude","cancelToken","token","getSolutions","solutionCatalog","solutionNames","getSolutionById","now","getSolutionDetailsById","solutionProfileDetails","getBatchDataSetDetailsById","datasetProfileDetails","datasetProfileIndustry","getS3HtmlDocByKey","htmlDocs","getDownloadLinkByKey","isBundle","bundleProfileSampleDataKeys","datasetProfileSampleDataKeys","getSolutionsAccessLinksbyKey","solutionAccessLink","getBlueprintAccessLinksbyKey","blueprintAccessLink","getDatasetAccessLinksbyKey","type","endpoint","datasetProfileAccessDataLinks","bundleProfileAccessDataLinks","getBatchFilters","mIIndustryTree","lookupSPGDestPlatforms","marketPlaceSearchTags","geographyTree","countries","states","datasetFeatured","datasetAlternative","vendors","datasetExtract","featuredBlueprints","marketPlaceQueryTypes","qlDatasetName","getBundleDataById","bundleProfileDetails","bundleProfileIndustry","bundleProfileRelateds","getFAQs","faqs","getUserInfo","version","isV2UserProfileVersion","userProfileV2","SNLStack","userProfile","signOut","invalidateUserInfo","invalidateUserProfile","getAllProfilePageItems","keyCountry","emailDomain","getRegistrationItems","updateProfileInfo","updatePassword","currentPassword","newPassword","userName","appCode","updateIDMPassword","sendEmail","subject","emailTo","requestStatus","messaging","To","Template","Subject","UserComment","getResearchLinks","crownpeak","researchLinks","getIdVariants","config","variants","getTableauSessionTicket","tableau","getPowerBIEmbedInfo","reportid","powerbi","getHomepageCompanyTypes","homepageCompanyType","getBookMarkUserPreference","storage","storedObjects","updateUserPreferance","kou","requestJson","bookmarkName","saveBookmark","Kou","BookmarkName","RequestJson","JSON","stringify","getUserPreferences","getBookMarkPreferencesCMS","getDownloads","selfService","querydownload","getQueryBuilderSteps","queryBuilderSteps","getAwsDownloadUrl","docType","selectedCompanyIdLookup","awsDownloadUrl","getPageTexts","pageText","getGitData","contentUrl","gitContent","encodeURIComponent","res","submitLeadToMarketo","createLead","marketo","submitLeadToCrisil","crisil","submitLeadToEloqua","eloqua","submitQueryExecute","saveExecute","submitSubQueryExecute","saveExecuteSubQuery","cancelQuery","requestId","callbackCancelReqError","cancelRequest","response","status","rerunQuery","rerunRequest","findKenshoLinkMatch","payload","accessToken","errorCallBack","kensho","Authorization","reqError","getAudioFile","fileName","origin","responseType","getReqHeaderByName","headerName","reqHeader","getProductFinderData","getLLMAccessToken","message","getChatiqSearchById","llm","sendChatiqSearchFeedbackById","feedback","getBlueprints","blueprintCatalog","blueprintNames","getBlueprintDetailsById","blueprintProfileDetails","getTileNamesGt25Chars","tileNamesGt25Chars","cancelApiRequest","getQueryLibraryProfileById","numberId","Number","qlProfile","getQueryLibraryProfileSqlsById","qlProfileSqlDetails","getQueryLibraryRelatedQueriesById","qlProfileRelatedQueries","getTrendingQueries","topQueries","mad","getQueryLibraryTrendingQueriesById","qlCatalogTrendingQueries","getSubscribedDatasets","userCountry","keyOnlineUser","userLocation","keySubscriberAccounts","props","className","listContent","buttonContent","buttonClass","openDropDownOnHover","isMobile","menuGrp","showDropDownIcon","_React$useState","_React$useState2","menuOpen","setMenuOpen","_React$useState3","_React$useState4","contextMenuOpened","setContextMenuOpened","parentNode","useClickAway","historyListener","HistoryInstance","listen","onMouseLeave","setTimeout","onContextMenu","test","userAgent","onMouseEnter","ref","onClick","data-testid","CaretUpIcon","CaretDownIcon","child","children","isDisabled","signInText","signOutText","Window","dataLayer","flushAppInsights","AppInsights","appInsights","flush","buttonTheme","isButton","isFullWidth","_useOktaAuth","useOktaAuth","authState","oktaAuth","isUserLoggedIn","useSelector","state","signInUrl","logOut","returnUrl","gaLabel","handleClick","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","event","wrap","_context","prev","next","log","isAuthenticated","preventDefault","Store","dispatch","CLEAR_STORE","websiteUrl","postLogoutRedirectUri","href","stop","_x","CustomLink","changedUrl","getUrl","isLoginLink","html","inputProps","Object","assign","dangerouslySetInnerHTML","__html","isValidDate","prop","sortAsc","sortProp1","sortProp2","sort","sortQLAsc","sortDesc","sortQLDesc","sortDescByDate","sortByEnhanced","item","enhancementDate","DateDiff","nonEnhancedDate","_extends","bind","target","prototype","hasOwnProperty","call","this","_objectWithoutProperties","excluded","sourceKeys","keys","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","_ref2","d","fill","SvgCaretRight","svgRef","width","height","viewBox","ForwardRef","forwardRef","SvgDatasetsFilter","runningAsServer","REACT_APP_SPGVARS_IS_SERVER_REQUEST","loadSPGVariables","APIGEE_SEARCH_HEADER","CROWNPEAK_HOST","CloudFrontURL","READ_SERVICE_HOST","DATAVENDORTOEMAIL","GTM_CONTAINER_ID","GA_TRACKING_ID","MARKETO_MUNCHKINID","ONE_TRUST_COOKIE_GUID","CLIENTID","CLIENTSECRET","REFRESHTOKEN","TRENDINGDATASETS","TABLEAU_SECURESITE","TABLEAU_PUBLICSITE","SSO_LOGOUT_URL","IS_CRAWLER_REQUEST","BUILD_VERSION","REACT_APP_SPGVARS_BUILD_VERSION","REACT_APP_SPGVARS_APIBASE","DEVICE_ISMOBILE","IS_RENDERTRON_REQUEST","OKTA_ISSUER_URL","OKTA_CLIENT_ID","OKTA_IDP_ID","LD_CLIENT_ID","LD_SECRET_HASH","LD_RELAYPROXY","ENV","RATINGSRATEMAILLIST","INDEXRATEMAILLIST","SPGLOBALRATEMAILLIST","SPGVARS_QUERY_BUILDER","SPGVARS_ENABLE_KENSHO_DEMOS","SPGVARS_ENABLE_TRANSLATIONS","SPGVARS_ENABLE_WORKBENCH","SPGVARS_ENABLE_BLUEPRINT","COALITIONEMAILLIST","KENSHOLLMEmailList","LLMEmailList","MOBILITYEMAILLIST","baseUrl","spgVarsObj","Base64","spgVars","SSR","configFile","REACT_APP_RELEASELOCAL","prodConfig","merge","defaultValue","ErrorBoundary","_React$Component","_this","_possibleConstructorReturn","_getPrototypeOf","_inherits","_createClass","errorInfo","isSilent","customError","ErrorType","applicationError","name","componentStack","stack","reportError","_this$props","render","replacementComponent","initialUserState","isLoggedIn","isTableauSessionCreated","bookmarkPreference","reducer","reducerWithInitialState","toggleLogInStatus","toggleSessionCreate","fetchUserProfile","async","done","$set","fetchUserPreference","updateUserPreference","updateUserPreferenceManually","clearUserProfile","initialDataSetState","full","globalLabel","getDelivery","unmaskDelivery","marketSPGDestinationPlatform","deliveryFilter","filterDelivery","SPGDestinationPlatform","getDeliveryPlatform","keyPlatformService","MktplaceSolutionName","mktplaceSolutionName","getAllIndustries","industries","industryFilter","MIIndustryTree","IndustryLongName","checkGlobalGeographic","marketDatasetGeography","regions","Global","reg","keysArr","regionKeys","GeographyTree","TreeID","GlobalRegion","fetchDatasets","dataProfiles","dataProfile","marketDatasetMIIndustrys","marketDatasetGeographys","marketDatasetLinks","deliveryChannel","unmaskDeliveryPlatform","marketSPGDeliveryPlatform","allDeliveryPlatform","fetchBundle","relatedDataProfile","relatedDatasets","countbundleDatasets","bundleDatasets","countrelateddataProfiles","_loop","marketDatasetDatasets","incomingAction","action","API_INITIAL_DATASETS","actionObj","API_OPENSEARCH_DATASETS","API_FULL_DATASETS","idAsString","dataProfileResponse","_defineProperty","cachedTime","initialSolutionsState","API_INITIAL_SOLUTIONS","API_FULL_SOLUTION","debug","initialBlueprintsState","API_INITIAL_BLUEPRINTS","API_FULL_BLUEPRINT","allIndustries","lessThan5Years","atleast5Years","atleast10Years","atleast15Years","atleast20Years","initialFiltersState","categories","solutionCategories","featuredDatasets","alternativeDatasets","extractedDatasets","queryTypes","datasets","API_FILTERS","mapIndustries","industryResponse","slugify","checked","mapDelivery","deliveryResponse","mapQueryCategories","categoryResponse","ActiveQuerySearchTag","y","FormOrderQuery","MarketplaceSearchTag","mapCategories","ActiveMarketplaceSearchTag","FormOrder","mapSolutionCategories","ActiveSolutionSearchTag","mapRegions","regionResponse","globalValue","mappedRegions","mapHistory","createYearInPast","mapPointInTime","pointIntTimeText","mapBookmark","bookmarkText","mapCountries","mapStates","mapMarketDatasetFeaturedAlternative","mapDeliveryPlatform","platformData","platform","mapAllDeliveryPlatform","mapDatasetVendors","vendorsData","SolutionType","KeyMarketPlaceVendor","tempVendorsData","values","mapSolutionVendors","mapMarketDatasetExtract","mapMarketBlueprintFeatured","mapQueryTypes","MarketplaceQueryType","mapDatasets","datasetsResponse","marketplaceDatasetName","keyMarketplaceDataset","bookmark","queryCategories","solutionVendors","initialErrorState","errors","lastErrorTime","newError","toISOString","initialSharedState","faqList","pageSections","utmParameters","utmSource","utmMedium","utmCampaign","utmTerm","utmContent","isLDReady","fflagEnableQueryBuilder","enableKenshoDemos","enableTranslations","enabledBlueprintFlag","fflagEnableWorkbench","hideFooterFlag","Solution","IdVariant","Dataset","TileNames","API_RESEARCHLINKS","API_FAQS","API_PAGETEXTS","texts","UPDATE_UTMPARAMETERS","SET_FLAGS","$merge","ID_VARIANTS","TILE_NAMES_GT_25_CHARS","initialQueryBuilderState","downloads","steps","QUERY_DOWNLOADS","QUERY_STEPS","initialQueryLibraryState","relatedQueries","API_FULL_QUERYLIBRARY","API_QL_RELATED_QUERIES","_ref$theme","theme","isUpperCase","hasIcon","_ref$type","_ref$gtmId","gtmId","_ref$gtmLabel","gtmLabel","buttonTestId","buttonInner","CaretRightIcon","disabled","data-gtm-id","data-gtm-label","keyPage","internetTransferDuration","getState","APIManager","queryString","date2","diff","isNaN","miCredentials","tokenRefreshTimer","securityConfig","suppressAuthorizationHeader","axiosSecurityClient","create","requestTimeout","clearCookies","batchClearTokenCookies","clearAllTokenCookies","_args","clearTimeout","localStorage","removeItem","sessionStorageKey","setItem","queryStringManager","domains","hostname","refreshToken","path","domain","getAccessToken","serializedToken","getItem","storeAccessToken","expires","expires_in","max","authenticate","scheduleTokenRefresh","_callee2","signoutOnFail","_args2","_context2","abrupt","requestBody","client_id","client_secret","scope","scopePart1","scopePart2","grant_type","grantTypes","REACT_APP_MIUSERNAME","REACT_APP_MIPASSWORD","username","password","refresh_token","setTokenCookies","substr","access_token","addEventListener","instance","tokenRefreshInProgress","interceptors","use","some","regexStr","tokenAvailable","tokenNotAvailable","Error","retries","minTimeout","maxTimeout","factor","onFailedAttempt","milliseconds","warn","formText","validateEmail","keyPageNumber","keyPageNotifyMeSubscribed","keyPageNotifyMe","notifyMeVariant","subscriptionText","variant","pageSectionNames","modalIsOpen","setModalOpen","hasSuccess","setSuccess","_React$useState5","_React$useState6","isSubmitting","setSubmitting","_React$useState7","_React$useState8","hasError","setError","keyPageIds","datasetPage","datasetNotifyMeSubscribed","datasetNotifyMe","subscription","solutionPage","solutionNotifyMeSubscribed","solutionNotifyMe","solutionText","blueprintPage","blueprintNotifyMeSubscribed","blueprintNotifyMe","blueprintText","pageTextsData","KeyOnlinePage","alertSubmissionSection","getPageTextsSection","alertSubmission","alertformSection","alertSection","formInitialValues","HasSubscribedAll","_useForm","useForm","defaultValues","register","setValue","watch","handleSubmit","reset","formFields","emailInputRequired","required","errorRequired","errorEmail","submissionFailed","submitSuccess","formType","additionalDetails","Button","popupButtonText","Modal","open","onClose","isFullScreen","innerWidth","scrollBody","noValidate","onSubmit","formData","notifyMeRequest","marketplaceNewDatasets","marketplaceAllDatasetsAlerts","marketplaceNewSolution","marketplaceBlueprint","TextFieldInput","errorObject","isRequired","label","onChange","submittingText","submitButton","CheckboxInput","errorNotification","HtmlContent","privacyCopy","Popup","icon","SuccessIcon","fillRule","clipRule","ClockIconInstance","ClockIcon","RefreshIconInstance","RefreshIcon","AddedCircleIconInstance","AddedCircleIcon","flagOptions","default","datasetAddedDate","datasetEnhancementDate","datasetId","datasetName","_props$notifyVariant","notifyVariant","_props$isSmall","isSmall","querySrc","flagType","getFlagVariant","startsWith","flagClasses","localeDate","formattedDate","paddingLeft","NotifyMe","SvgClose","SvgCaretDown","getSearch","getSearchItem","param","setSearchItem","queryStringParam","silent","searchParsed","removeSearchItem","setHash","hash","replaceState","updateSearchItem","searchString","ModalContext","ModalMemo","maxWidth","dialogClasses","whiteClose","keyPageId","backdropProps","paperProps","dialogWrapStyle","dialog","handleKeyDown","focusableElements","firstElement","lastElement","shiftKey","activeElement","focus","getElementsByClassName","removeEventListener","Provider","Dialog","e","reason","documentElement","clientWidth","clientX","fullScreen","fullWidth","classes","BackdropProps","PaperProps","scroll","aria-labelledby","aria-label","CloseIcon","fetchDownloads","fetchTask","addTask","fetchQueryBuilderSteps","keyPages","homePage","homePageVideo","productFinderPage","searchResultsPage","datasetsPage","datasetRATForm","solutionRATForm","datasetSampleDataDownload","datasetDataDictionaryDownload","solutionsPage","solutionDemoPage","vendorForm","datasetRATFormSubmission","solutionRATFormSubmission","vendorFormSubmission","profilePage","faq","newUserSignup","queryLibraryPage","queryBuilderPage","queryBuilderDownload","queryBuilderNewQuery","queryBuilderRATFormLoad","queryBuilderRATSubmission","blueprintsPage","homeResultsPage","myAccount","userProfileVersion","queryLibraryProfilePage","clientSubscriptions","actionCreatorFactory","actionCreator","ERRORS","apiDataRefreshTime","fetchInitialDataset","cachedResponse","dateDiff","BundleNames","mapDatasetToDataProfileCard","dataBundleCards","mapDataBundleToDataProfileCard","fetchOpenSearchDataset","datasetprofileCards","mapSearchResultToDataProfileCard","_source","dispatchFullDataset","hasExpired","BatchRes","mapDataBundleToDataProfile","mapDataBundleToIndustry","mapDataBundleToRelatedDataset","mapDatasetToDataProfile","FetchDatasetsOrBundle","fetchFullDatasetwithfilters","_getState3","_x2","persistedState","secret","cryptr","Cryptr","initialState","solutions","blueprints","shared","querybuilder","querylibrary","reducers","combineReducers","userReducer","datasetsReducer","solutionsReducer","blueprintsReducer","filterReducer","errorsReducer","sharedReducer","queryBuilderReducer","queryLibraryReducer","thunk","thunkMiddleware","middlewareEnhancer","applyMiddleware","composedEnhancers","compose","devToolsEnhancer","REACT_APP_IGNORE_LOCALSTORAGE","serializedState","serializedSessionUserState","stateObject","sessionStateObject","decrypt","_unused","sessionStorage","_unused2","loadState","redux","store","createStore","subscribe","rest","serializedUserState","encrypt","_unused3","saveState","bookmarkPreferenceFromLS","fetchInitialSolutions","apiSolutions","nameitem","resitem","AbsoluteSolutionName","fetchFullSolution","CachedTime","fetchInitialBlueprints","apiBlueprints","KeyMarketplaceBlueprint","AbsoluteBlueprintName","MarketplaceBlueprintName","fetchFullBlueprint","Loader","minHeight","colors","black","spRed","blue","whiteSmoke","lightGray","grey80","boulder","white","createTheme","typography","fontFamily","palette","main","MuiButtonBase","disableRipple","breakpoints","xs","sm","md","lg","xl","overrides","MuiToolbar","root","backgroundColor","MuiBackdrop","MuiPaper","elevation1","border","boxShadow","rounded","borderRadius","MuiIconButton","colorPrimary","background","colorSecondary","MuiInputLabel","color","asterisk","MuiFormLabel","MuiFormHelperText","fontSize","MuiSelect","select","paddingRight","selectMenu","whiteSpace","iconFilled","right","top","MuiMenuItem","gutters","MuiFilledInput","borderTopLeftRadius","borderTopRightRadius","borderRight","borderLeft","borderTop","multiline","paddingBottom","underline","borderBottom","borderBottomStyle","MuiInputBase","inputMultiline","resize","MuiCheckbox","MuiRadio","MuiExpansionPanel","margin","borderBottomLeftRadius","borderBottomRightRadius","MuiExpansionPanelSummary","padding","MuiExpansionPanelDetails","MuiSnackbarContent","MuiListItem","button","MuiTab","textTransform","textColorInherit","opacity","wrapper","fontWeight","MuiTabs","indicator","siteTitle","defaultShareImage","defaultLDStructureType","supportedLangs","additionalSchema","HelmetManager","metaData","noIndex","fullTitle","shareImage","image","virtualPageTitle","virtualPageUrl","Helmet","description","rel","alternateLinks","langauge","hrefLang","getAlternateLinks","itemProp","Spinner","disable","clipPath","rx","stroke","strokeWidth","strokeMiterlimit","_ref3","_ref4","imgOnButton","SpImage","filtersButtonIcon","filterName","ProductFinderImage","QueryLibraryImage","DsImage","_cn","_cn2","_ref$target","_ref$title","linkTheme","_ref$buttonTheme","hasUnderline","noWrap","activeClassName","focusRef","renderTitle","_ref$id","hasImage","htmlText","hasSVGIcon","isExternalLink","isEmailLink","linkClassTheme","buttonClassTheme","linkTextClass","linkClass","linkInner","ExternalLinkIcon","renderExternalLink","NavLink","to","innerRef","Link","renderInternalLink","SvgQueryLibrary","cx","cy","SvgSuccess","useStyles","makeStyles","createStyles","errorMessage","display","textAlign","pxToRem","autoFocus","controlledValue","helpText","_ref$isFullWidth","hasOtherField","placeHolder","_ref$autocomplete","autocomplete","validateFn","el","opts","isEmpty","isValid","removeOnly","elField","closest","elError","addOnly","removeAttribute","setAttribute","innerText","validate","TextField","helperText","inputVal","onBlur","live","placeholder","autoComplete","aria-live","SvgCaretUp","variantIcon","success","CheckCircleIcon","warning","WarningIcon","ErrorIcon","info","InfoIcon","container","alignItems","green","primary","amber","iconClose","iconVariant","marginRight","position","onClosed","Icon","setClose","handleClose","Snackbar","anchorOrigin","SnackbarContent","aria-describedby","IconButton","titleAccess","createBrowserHistory","allowResetScrollOnPage","previousLocation","resetScroll","scrollTo","hasPageChanged","resetScrollOnPage","page","hasHash","fetchFullQueryLibrary","queryLibrary","fetchQueryLibraryRelatedQueries","SvgExternalLink","formField","checkbox","FormControlLabel","control","Checkbox","USER_LOGGIN","TABLEAU_SESSION_CREATED","actionCreatorAsync","asyncFactory","dataUserProfileVersion","setGTMdatalayer","KeyOnlineUser","SubscriberAccount","CompanyType","PrimaryJobFunction","UserWebpartProfile","USER_PREFERENCE","pageResponse","headerSection","bookMarks","queries","bookmarksLoaded","UPDATE_USER_PREFERENCE","bookmarks","paramsList","keyId","createResponse","onSuccess","newBookmarks","bookmarkPrefer","addRemoveBookmarks","UPDATE_USER_PREFERENCE_MANUALLY","USER_PROFILE","refreshUserInfo","_response$data","Country","profileItems","_profileItems$data","CompanyTypeList","rolesList","RegistrationFormatItems","ProfileItems","_response$data2","_profileItems$data2","CLEAR_USER_PROFILE","nameItems","geographies","earliestRecord","dataProvider","MarketDatasetBundleDatasets","bundleDataset","MarketDatasetSearchTags","MarketDatasetMIIndustrys","MarketDatasetGeographys","geography","MarketDatasetDestPlatforms","MarketDatasetDelivPlatforms","MarketplaceDataProvider","englishNameItem","nameItem","KeyMarketplaceDatasetBundle","MarketplaceDatasetBundleName","absoluteName","MarketplaceDatasetBundleAdded","MktplaceBundleEnhancementDate","shortDescription","MarketplaceBundleShortDesc","thumbnailImageFilePath","ThumbnailImageFilePath","longDescription","MarketplaceBundleLongDesc","active","supportDocs","MarketDSBundleSupportDocs","KeyMarketplaceDataset","MarketplaceDatasetName","MarketplaceDatasetAdded","MktPlaceDataSetEnhancementDate","MarketplaceShortDescription","MarketplaceLongDescription","MarketDatasetSupportDocs","marketMSADataLink","MSADataLink","marketMSADataFilePath","MSADataFilePath","marketplaceMSATooltip","MarketplaceMSATooltip","datasetLogos","MarketDatasetLogos","logoObj","logo","OnlineImageFilePath","DataProvider","deliveryChannels","deliveryPlatforms","MarketDatasetDatasets","relDataset","MarketplaceDatasetRelated","relData","KeyMarketplaceDatasetRelated","dataProviderDesc","MarketplaceDataProviderDesc","onlineImageFilePath","releaseNote","MktPlaceDataSetEnhancementDesc","releaseNoteLink","MktPlaceDataSetEnhancementLink","socialSharingImageFilePath","SocialSharingImageFilePath","earliestSignificantCoverage","EarliestSignificantCoverage","estimatedDatasetSize","EstimatedDatasetSize","estimatedDatasetStorage","EstimatedDatasetStorage","marketplaceDatasetCoverageDesc","MarketplaceDatasetCoverageDesc","marketplaceDataSource","MarketplaceDataSource","overviewImageFilePath","OverviewImageFilePath","pointInTimeDescription","PointInTimeDescription","marketplaceTrialButtonTitle","MarketplaceTrialButtonTitle","marketDatasetSearchTags","MarketDatasetLinks","marketplaceDatasetFieldCount","MarketplaceDatasetFieldCount","marketDatasetVisualization","MarketDatasetVizs","marketDatasetNotebooks","MarketDatasetNotebooks","spgCoverageType","SPGCoverageType","spgDatasetFrequency","SPGDatasetFrequency","spgDatasetLatency","SPGDatasetLatency","sampleDataLink","SampleDataLink","sampleDataFilePath","SampleDataFilePath","dataDictionaryLink","DataDictionaryLink","marketDatasetResearchs","MarketDatasetResearchs","marketDatasetLogos","hasAlert","ActiveMarketplaceDatasetNote","alertNote","MarketplaceDatasetNote","alertTitle","MarketplaceDatasetNoteTitle","mktplaceSolutionSupportEmail","MktplaceSolutionSupportEmail","dataProviders","MarketplaceDataset","bundle","notebook","ActiveMarketplaceDSBundleNote","MarketplaceBundleNote","MarketplaceDSBundleNote","MarketplaceDSBundleNoteTitle","MarketDSBundleResearchs","DatasetResearchTitle","MarketplaceDatasetResearch","relatedDataset","KeyMarketplaceDatasetBundleRel","newOrder","bundleLogos","LogoObj","itemLogo","MarketDSBundleVizs","MktplaceBundleDataProviderDesc","releaseNoteTitle","KeyMSADataLink","removeLastComma","string","lastIndexOf","marketplaceDataProvider","urlName","Name","buildPipeArray","translateDatasets","associatedBundle","associatedDataset","translateToCodeData","WebsiteURL","mapSearchResultsToQuery","marketplaceDatasetPackage","queryId","KeyMarketplaceQuery","versiondate","packages","codeData","mapSearchResultToSolution","MktplaceSolutionProvider","MktplaceSolutionProviderDesc","MktplaceSolutionDesc","MarketSolutionProvider","PlatformService","MktplaceDateAdded","MktplaceSolutionCurrentVerDate","MktplaceSolutionUrlName","mapSearchResultToBluePrint","MktplaceDataProviderDesc","MktplaceBlueprintDesc","MktplaceBlueprintLongDesc","itemKeyPlatformService","MarketplaceDataProviders","MarketplaceBlueprintShortDesc","MarketplaceBlueprintLongDesc","MarketplaceBlueprintDateAdded","MarketplaceBlueprintEnhancementDate","MktplaceBlueprintUrlName","fetchResearchLinks","docs","fetchIdVariants","fetchTileNamesGt25Chars","fetchPageTexts","fetchFAQs","updateUTMParameters","urlParams","URLSearchParams","setFeatureFlags","storeReducer","enstore","jastore","zhstore","fetchFilters","ClientStore","loadAll","batch","start","ServerStore","pathLowerCase","extractId","AsyncHome","AsyncProductFinder","AsyncSearchResults","AsyncDatasets","AsyncDataset","AsyncSolutions","AsyncSolution","AsyncProfilePage","AsyncDataVendor","AsyncRequestTrial","AsyncFAQ","AsyncQueryLibrary","AsyncQueryBuilder","AsyncBuildQuery","AsyncQueryBuilderDownload","AsyncBlueprint","AsyncBlueprints","AsyncQueryLibraryProfile","SetAIOperationId","context","telemetryTrace","traceID","uuidv4","HomePage","startDate","SearchResultsPage","DatasetsPage","ProductFinderPage","DatasetPage","DatasetBundlePage","SolutionsPage","SolutionPage","ProfilePage","NewUserSignUpPage","DataVendorPage","FAQPage","QueryLibraryPage","QueryLibraryProfilePage","QueryBuilderPage","BuildQueryPage","QueryBuilderDownload","BlueprintPage","BlueprintsPage","xlinkHref","enableBackground","xmlSpace","myAccountText","FirstName","LastName","Dropdown","SignInButton","UserIcon","data-hj-suppress","data-dd-privacy","Truncate","trimWhitespace","spgvariables","memo","dropDownItems","_props$headerId","headerId","useState","isActive","setIsActive","setReqHeader","useEffect","userOriginCountryCodeFromSession","userorigincountrycode","urlConfigKey","Fragment","signUpText","keyOnlineUserId","signUpUrl","_props$text","SignUpButton","seeAllResults","Blueprint","inputRef","isMobileDropdown","searchToken","loading","parentRef","hasMoreThan5Results","highlightedItemIndex","allResultsRef","refsArray","keyPressHandler","lastResultIndex","allResultsBtnIndex","current","setResultRef","hasDataProfiles","hasSearchTerm","slice","solution","solutionPathSegment","buildUrl","DataFlag","buildSolution","blueprint","blueprintPathSegment","buildBlueprint","buildDataset","authdatablueprint","UnstyledTextInput","withStyles","throttleDuration","iconPrepend","iconAppend","onFocusEvent","_props$autoFocus","_props$autoClose","autoClose","onComplete","safeAutoFocus","setResponse","setSearchValue","setLoading","isFirstClickEvent","setIsFirstClickEvent","textFieldRef","textFieldAndDropdownRef","onCloseContext","useDebounce","updatedData","hit","searchTerm","searchResultsCount","History","Waypoint","onLeave","w","viewportTop","waypointTop","blur","handleScroll","newSearch","onFocus","TypeaheadDropdown","searchFilter","homeText","globalNavText","showSearchForm","setShowSearchForm","linkItems","isValidInternalUser","handleHeaderBodyClick","onHeaderBodyClick","role","onKeyDown","exact","SPLogo","drowDownList","GolbalHeaderSubMenu","hideForNonLoggedInUser","useLocation","stopPropagation","onSearchIconClick","handleSearchButtonClick","SearchIcon","onAnimationEnd","animationName","Typeahead","GlobalHeaderProfileMenu","GlobalHeaderSignIn","classList","remove","nodeRef","isVisible","navOpenMobile","classNameProp","menuItems","isLangSelector","onMobileClick","aria-haspopup","aria-expanded","lang","langRegex","handleItemClick","getLangName","GlobalHeaderSubMenuMobile","subText","investorNavVisible","investorNavOpen","supportNavVisible","supportNavOpen","_React$useState9","_React$useState10","siteIsDesktop","setSiteDesktop","_React$useState11","_React$useState12","languageNavVisible","languageNavOpen","dropdownTwo","dropdownThree","dropdownFour","breakPoint","handleResize","curWidth","getLangURL","lancCode","parent","rect","getBoundingClientRect","getHeight","Media","RightMenuItem","investorMenuName","investorNav","supportMenuName","supportNav","showMobileNav","setShowMobileNav","dispatchEvent","Event","handleOldSearchButtonClick","SearchOverlay","BurgerIcon","Menu","handleSearchIconClick","Mobile","minWidth","Desktop","xImgSrc","setXImgSrc","handleMouseEnter","handleMouseLeave","primaryLinks","secondaryLinks","socialLinks","maxHeight","marginBottom","src","alt","aria-hidden","noticeLinks","relAttribute","listItem","SlideDown","closed","connect","siteNavVisible","siteNavOpen","dropdownOne","handleClickAway","contains","LeftMenuItem","siteMenuName","siteNav","OktaLoginCallback","useParams","redirectUri","handleLoginRedirect","isPending","getOriginalUri","Component","component","useHistory","Route","RedirectToLoginPage","errorMessageTitle","tryAgain","errorMessageContact","metaDataText","ErrorMessage","reload","OktaAuth","pkce","issuer","clientId","scopes","redirectUser","authService","signInWithRedirect","idp","isAuthenticationProcessCompleted","setIsAuthenticationProcessCompleted","showPages","setShowPages","st","checkAuthentication","unlisten","Router","Security","onAuthRequired","BlackhatHeader","GlobalHeader","fallback","Switch","ProtectedRoute","AnnonymousRoute","Redirect","from","BlackhatFooter","vertical","horizontal","cachedError","_ref$message","_ref$variant","setHasError","errorState","Notification","crossOrigin","getElementsByTagName","appendChild","bizible","setLanguageContext","results","ldClient","getUser","country","custom","internalUser","InternalUser","webpartProfile","KeyWebpartProfile","userCompanyDepartment","KeyOnlineUserCompanyDepartment","userCompanyType","KeyOnlineUserCompanyType","userCompanyRole","KeyOnlineUserCompanyRole","culture","Culture","timeZoneUSName","TimeZoneUSName","anonymous","clientSideId","relayProxy","ldOptions","streamUrl","flagValues","camelCasedKey","camelCase","initFlags","LDClient","on","flagsSanitised","allFlags","variation","setFlags","flag","newFlagValue","subscribeToChanges","hotjartracker","script","hotjarScript","hotjar","initialize","domNode","getElementById","cRoot","createRoot","hRoot","hydrateRoot","scriptJs","charset","scriptWrapper","cookieNotice","initData","gtmScript","noscript","gtmiframe","visibility","gtmTracker","featureFlags","oktaiframe","ThemeProvider","NotificationContainer","marketoScript","marketoTracker","swUrl","serviceWorker","registration","onupdatefound","installingWorker","installing","onstatechange","registerValidSW","datadogRum","init","applicationId","clientToken","site","service","env","sampleRate","replaySampleRate","trackInteractions","startSessionReplayRecording","errorType","errorStack","logError","errorParam","SvgSearch"],"mappings":"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AlCG,SAAWA,GAEd,IAAMC,EAAOH,EAAQG,KAAKD,GACpBlI,EAAUmI,GAAQA,EAAK,GAGvBC,GAAO,IAAI5N,MAAOwL,UAGlBqC,EAAQ,GAAAhO,OAAM+N,EAAI,KAAA/N,OAAI2F,GAKtBsI,EAAO,IAAIC,IAAI,QAAS,QAW9B,OAVAD,EAAKE,WAnCO,2FAmCa,OACzBF,EAAKG,OAAOJ,GAEI,CACZ,mBAAoBD,EACpB,qBAAqB,KAAD/N,OAAOiO,EAAKI,QAAQ,SAcrCC,CAAET,G,4lBCvDb,IAAM9P,EAAeC,cACfuQ,EAAgBnN,YAAU,2BAC1BoN,EAAOpN,YAAU,QACjBqN,EAAsBrN,YAAU,iCAqDhCsN,EAAwB,CAC1B,YACA,WACA,QACA,QACA,gBACA,qBACA,cACA,QACA,SACA,UACA,OACA,QACA,aACA,UACA,kBACA,iBACA,eACA,kBACA,UACA,yBACA,qBACA,eACA,uBACA,YACA,wBACA,YACA,iBACA,+BACA,oBACA,cACA,qBACA,2BACA,2BACA,eACA,oBACA,iCACA,kBAGEC,EAA0B,CAC5B,YACA,WACA,QACA,QACA,gBACA,qBACA,cACA,QAEA,UACA,UACA,OACA,QACA,MAEA,UACA,kBACA,iBACA,eACA,kBACA,UAGA,eACA,uBACA,YACA,wBACA,YACA,iBACA,+BACA,oBACA,cACA,qBACA,2BACA,2BACA,eACA,oBACA,iCACA,iBACA,6BAGEC,EAAwB,CAC1B,OACA,UACA,iBACA,gCACA,6BACA,iCACA,SACA,0BACA,iCACA,wBACA,8BACA,yBACA,sBAGEC,EAAkB,CACpB,OACA,UACA,iBACA,gCACA,6BACA,iCACA,SACA,0BACA,iCACA,wBACA,8BACA,yBACA,qBACA,2BAGEC,EAAqB,CACvB,UACA,iBACA,+BACA,uBACA,sBACA,sBACA,iCACA,aACA,uBACA,YACA,2BAIEC,EAjL4B,CAC9B,qBACA,oBACA,uBACA,uBACA,iCACA,6BA2KqD/O,OAlKpB,CACjC,2BACA,8BACA,6BACA,+BACA,0BACA,+BACA,gCACA,+BACA,oBACA,8BACA,iCACA,iBACA,yBACA,+BACA,0BACA,gCACA,4BACA,cACA,oBAgJEgP,EAzKwB,CAC1B,yBACA,kBACA,sJAsK6ChP,OA7IhB,CAC7B,mEACA,iEACA,yBACA,4HACA,iHACA,6DAyIJiP,IAAMC,SAASC,QAAUpR,EAAaqR,QACtCH,IAAMC,SAAShJ,QAAQnG,IAAI,gBAAkB,mBAC7CkP,IAAMC,SAAShJ,QAAQmJ,KAAK,gBAAe,4BAAArP,OA5LjB,+CA6L1BiP,IAAMC,SAASI,QAAUlO,YAAU,4BAG9BrD,EAAaM,mBACd,yCAAsBkR,MAAK,SAAAC,GACvBA,EAAQ,QAASC,2BAA2BR,QAMpD,SAASS,EAAYC,EAAmBC,EAA8BC,GAKlE,OAJKZ,IAAMa,SAASH,IAChBI,IAAaC,SAASL,EAAOC,GAE7BC,GAASA,IACNI,QAAQC,OAAOP,GAG1B,SAASQ,EAA2BtC,GAChC,OAAIA,EAAI3M,QAAQ,SAAW,EAChBkP,EAAgBvC,GAEpBuC,EAAgB,GAADpQ,OAAIjC,EAAaqR,QAAO,KAAApP,OAAI6N,IAGtD,SAASwC,EAAsBC,EAAqBC,GAChD,OAAOC,KACH,kBAAMvB,IAAMwB,IACRF,EAAYvO,KAAI,SAAAhB,GAAC,OAAIiO,IAAMyB,QAAQ,CAC/B7C,IAAK7M,EACL2P,OAAQ,MACRzK,QAASiK,EAA2BnP,GACpC4P,iBAAiB,UAGzBrC,GAECgB,KACGN,IAAM4B,QAAO,WACM,IAAf,IAAeC,EAAAC,UAAArS,OADFsS,EAAS,IAAAC,MAAAH,GAAAI,EAAA,EAAAA,EAAAJ,EAAAI,IAATF,EAASE,GAAAH,UAAAG,GAQtB,OANQF,EAAUhP,KAAI,SAAAhB,GAClB,OAAIA,GAAKA,EAAEmQ,MAAQnQ,EAAEmQ,KAAKxB,MACf,GAEJ3O,EAAEmQ,YAIpB,OACM,SAACxB,GAOJ,OAAOD,EAAYC,EANA,CACfyB,YAAad,EACbe,WAAYd,EAAY/K,KAAK,MAC7BmK,QACA2B,IA9CU,2BAqDc,SAApCC,8CAAYC,qBACZ,gCAA8BjC,MAAK,SAAAkC,GAC/BA,EAAc,QAASxC,IA3PL,iBACC,kBACK,mBAyPsET,EAAKkD,GAAGC,MAAK,WAKnH,IAAIC,EAAqC,KAEnCC,EAAO,CACTC,eAAgB,WACZ,IAAMC,EAAclS,YAAQ,eACtBmS,EAAoBnS,YAAQ,qBAC5BoS,EAAc,GAChBpE,EAAG,GAAA7N,OAAMwO,EAAK0D,IAAIC,IAAIC,aAAY,cAAApS,OAAa+R,GAcnD,OAbAE,EAAY9N,KAAK0J,GAEjBA,EAAG,GAAA7N,OAAMwO,EAAK0D,IAAIC,IAAIE,mBAAkB,cAAArS,OAAa+R,GACrDE,EAAY9N,KAAK0J,GAEZmE,IACDnE,EAAMW,EAAK0D,IAAIC,IAAIG,aACnBL,EAAY9N,KAAK0J,GAEjBA,EAAMW,EAAK0D,IAAIC,IAAII,mBACnBN,EAAY9N,KAAK0J,IAGdwC,EAAqD,MAAO4B,IAEvEO,SAAU,SAACjN,GACP,OAAO,IAAI0K,SAAQ,SAAAwC,GACf,OAAOxD,IACFyB,QAAQ,CACL7C,IAAKW,EAAKkD,GAAGgB,QAAQC,cACrBhC,OAAQ,OACRzK,QAASiK,EAA2B3B,EAAKkD,GAAGgB,QAAQC,eACpD/B,iBAAiB,EACjBO,KAAM5L,IAETgK,MAAK,kBAAMkD,GAAQ,MAAM,OACnB,SAAC9C,GAQJ,OAPAiD,QAAQjD,MAAM,uBAOP8C,EAAQ,aAK/BI,OAAQ,SAACtN,EAAezB,EAAoBgP,EAAuBC,GAC3DnB,GAAUA,EAASoB,OAAO,uCAC9B,IAAM9J,EAAarJ,YAAQ,YACvBoT,EAAkB,GAEtBrB,EAAW3C,IAAMiE,YAAYC,SAC7B,IAAMC,EAAavP,YAAoBC,GAAW,IAC9CgP,GAAcA,EAAW5R,QAAQ,iBAAmB,GACpDkS,EAAWjP,KAAK,CAAEK,MAAO,CAAE6O,OAAQ,CAAC,YACpCJ,EAAkBnE,GACXgE,GAAcA,EAAW5R,QAAQ,oCAAsC,GAC9EkS,EAAWjP,KAAK,CAAEK,MAAO,CAAE6O,OAAQ,CAAC,UAAW,aAC/CD,EAAWjP,KAAK,CAAEK,MAAO,CAAEM,wBAAyB,CAAC,MACrDmO,EAAkBrE,GACXkE,GAAcA,EAAW5R,QAAQ,oBAAsB,GAC9DkS,EAAWjP,KAAK,CAAEK,MAAO,CAAE6O,OAAQ,CAAC,eACpCJ,EAAkBrE,GACXkE,GAAcA,EAAW5R,QAAQ,qBAAuB,GAC/DkS,EAAWjP,KAAK,CAAEK,MAAO,CAAE6O,OAAQ,CAAC,gBACpCJ,EAAkBpE,IAGlBuE,EAAWjP,KAAK,CAAEK,MAAO,CAAE6O,OAAQ,CAAC,UAAW,SAAU,WAAY,qBACjDC,IAAhBP,EAEAK,EAAWjP,KAAK,CAAEmB,aAAc,CAAEC,MAAOwN,KAKzCK,EAAWjP,KAAK,CAAEmB,aAAc,CAAEC,MAAO,+EAG7C0N,EAAkBpE,GAGtB,IAAM0E,EAA6B,OAAfrK,EAAsB,GAAE,IAAAlJ,OAAOkJ,GAM7CiI,EAAO,CACTqC,GAAI,gBACJC,OAAQ,CAEJC,YAAanO,EACboO,KAAM,MACNC,MAAO,IACP9P,QAASsP,EAETS,kBAdRZ,EAAkBA,EAAgBjR,KAAI,SAAA8R,GAElC,OAAOA,EAAM1P,QAAQ,MAAOmP,MAcxBQ,kBAAmB,KAGrB7N,EAAUiK,EAA2B3B,EAAK0D,IAAIW,QACpD,OACI5D,IACKyB,QAA6B,CAC1B7C,IAAKW,EAAK0D,IAAIW,OACdlC,OAAQ,OACRzK,UACA0K,iBAAiB,EACjBO,OACA6C,YAAapC,EAAWA,EAASqC,WAAQX,IAK7C,OACO,SAAC3D,GAAiB,OAAKD,EAAYC,EAAO,CAAE2B,IAAK,yBAGpE4C,aAAc,WACV,IAAMnC,EAAclS,YAAQ,eACtBmS,EAAoBnS,YAAQ,qBAC5BoS,EAAc,GAChBpE,EAAG,GAAA7N,OAAMwO,EAAK0D,IAAIC,IAAIgC,gBAAe,kBAAAnU,OAAiB+R,GAM1D,OALAE,EAAY9N,KAAK0J,GACZmE,IACDnE,EAAMW,EAAK0D,IAAIC,IAAIiC,cACnBnC,EAAY9N,KAAK0J,IAEdwC,EAAkC,MAAO4B,IAEpDoC,gBAAiB,SAACb,GACd,IAAMzB,EAAclS,YAAQ,eACtB0F,EAAK,GAAAvF,OAtYQ,kBAsYgB,KAAAA,OAAIwT,EAAE,cAAAxT,OAAa+O,EAAuBvJ,KAAK,KAAI,aAAAxF,OAAYgP,EAAmBxJ,KACjH,KACH,WAAAxF,OAAUG,KAAKmU,MAAK,iBAAAtU,OAAgB+R,GACrC,OAAO9C,IACFlP,IAAiByO,EAAKkD,GAAGC,MAAK,OAAUpM,EAAO,CAAEW,QAASiK,EAA2B3B,EAAKkD,GAAGC,MAAK,OAAUpM,KAAS,OAC/G,SAACoK,GAOJ,OAAOD,EAAYC,EANA,CACfyB,YAAa,eACbC,WAAY7C,EAAKkD,GAAGC,MAAK,OAAUpM,EACnCoK,QACA2B,IAAK,0CAKrBiD,uBAAwB,SAACf,GACrB,IAAMzB,EAAclS,YAAQ,eACtB0F,EAAK,GAAAvF,OAAMwO,EAAK0D,IAAIC,IAAIqC,uBAAsB,QAAAxU,OAAOwT,EAAE,cAAAxT,OAAa+R,GAC1E,OAAO9C,IACFlP,IAAiBwF,EAAO,CAAEW,QAASiK,EAA2B5K,KAAS,OACjE,SAACoK,GAOJ,OAAOD,EAAYC,EANA,CACfyB,YAAa,MACbC,WAAY9L,EACZoK,QACA2B,IAAK,8CAKrBmD,2BAA4B,SAACjB,GACzB,IAAMzB,EAAclS,YAAQ,eAK5B,OAAOwQ,EAA+B,MAJlB,CAAC,GAADrQ,OACbwO,EAAK0D,IAAIC,IAAIuC,sBAAqB,QAAA1U,OAAOwT,EAAE,cAAAxT,OAAa+R,GAAW,GAAA/R,OACnEwO,EAAK0D,IAAIC,IAAIwC,uBAAsB,QAAA3U,OAAOwT,EAAE,cAAAxT,OAAa+R,MAqBpE6C,kBAAmB,SAAC9U,GAChB,IAAMyF,EAAK,GAAAvF,OAAMwO,EAAK0D,IAAIC,IAAI0C,SAAQ,QAAA7U,OAAOF,GAC7C,OAAO0Q,KAAO,WACV,OAAOvB,IAAMlP,IAAYwF,EAAO,CAAEW,QAASiK,EAA2B5K,OACvEgJ,GAAc,OAAO,SAACoB,GAOrB,OAAOD,EAAYC,EANA,CACfyB,YAAa,MACbC,WAAY9L,EACZoK,QACA2B,IAnQU,4BAwQtBwD,qBAAsB,SAACtB,EAAYuB,GAC/B,IAAMxP,EAAK,GAAAvF,OACP+U,EAAQ,GAAA/U,OAAMwO,EAAK0D,IAAIC,IAAI6C,4BAA2B,QAAAhV,OAAOwT,GAAE,GAAAxT,OAAQwO,EAAK0D,IAAIC,IAAI8C,6BAA4B,QAAAjV,OAAOwT,IAE3H,OAAOvE,IACFlP,IAAyBwF,EAAO,CAAEW,QAASiK,EAA2B5K,KAAS,OACzE,SAACoK,GAOJ,OAAOD,EAAYC,EANA,CACfyB,YAAa,MACbC,WAAY9L,EACZoK,QACA2B,IAAK,qCAKrB4D,6BAA8B,SAACpV,GAC3B,IAAMyF,EAAK,GAAAvF,OAAMwO,EAAK0D,IAAIC,IAAIgD,mBAAkB,QAAAnV,OAAOF,GACvD,OAAOmP,IACFlP,IAAyBwF,EAAO,CAAEW,QAASiK,EAA2B5K,KAAS,OACzE,SAACoK,GAAiB,OAAKD,EAAYC,EAAO,CAAE2B,IAAK,6CAEhE8D,6BAA8B,SAACtV,GAC3B,IAAMyF,EAAK,GAAAvF,OAAMwO,EAAK0D,IAAIC,IAAIkD,oBAAmB,QAAArV,OAAOF,GACxD,OAAOmP,IACFlP,IAAyBwF,EAAO,CAAEW,QAASiK,EAA2B5K,KAAS,OACzE,SAACoK,GAAiB,OAAKD,EAAYC,EAAO,CAAE2B,IAAK,8CAEhEgE,2BAA4B,SAACC,EAAczV,GACvC,IAAM0V,EAAoB,YAATD,EAAqB/G,EAAK0D,IAAIC,IAAIsD,8BAAgCjH,EAAK0D,IAAIC,IAAIuD,6BAC1FnQ,EAAK,GAAAvF,OAAMwV,EAAQ,QAAAxV,OAAOF,GAChC,OAAOmP,IACFlP,IAAyBwF,EAAO,CAAEW,QAASiK,EAA2B5K,KAAS,OACzE,SAACoK,GAAiB,OAAKD,EAAYC,EAAO,CAAE2B,IAAK,4CAEhEqE,gBAAiB,WACb,IAAM5D,EAAclS,YAAQ,eACtBoS,EAAc,GAChBpE,EAAG,GAAA7N,OAAMwO,EAAK0D,IAAIC,IAAIyD,eAAc,cAAA5V,OAAa+R,GA0BrD,OAzBAE,EAAY9N,KAAK0J,GACjBA,EAAG,GAAA7N,OAAMwO,EAAK0D,IAAIC,IAAI0D,uBAAsB,cAAA7V,OAAa+R,GACzDE,EAAY9N,KAAK0J,GACjBA,EAAG,GAAA7N,OAAMwO,EAAK0D,IAAIC,IAAI2D,sBAAqB,cAAA9V,OAAa+R,GACxDE,EAAY9N,KAAK0J,GACjBA,EAAG,GAAA7N,OAAMwO,EAAK0D,IAAIC,IAAI4D,cAAa,cAAA/V,OAAa+R,GAChDE,EAAY9N,KAAK0J,GACjBA,EAAG,GAAA7N,OAAMwO,EAAK0D,IAAIC,IAAI6D,WACtB/D,EAAY9N,KAAK0J,GACjBA,EAAG,GAAA7N,OAAMwO,EAAK0D,IAAIC,IAAI8D,QACtBhE,EAAY9N,KAAK0J,GACjBA,EAAG,GAAA7N,OAAMwO,EAAK0D,IAAIC,IAAI+D,iBACtBjE,EAAY9N,KAAK0J,GACjBA,EAAG,GAAA7N,OAAMwO,EAAK0D,IAAIC,IAAIgE,oBACtBlE,EAAY9N,KAAK0J,GACjBA,EAAG,GAAA7N,OAAMwO,EAAK0D,IAAIC,IAAIiE,SACtBnE,EAAY9N,KAAK0J,GACjBA,EAAG,GAAA7N,OAAMwO,EAAK0D,IAAIC,IAAIkE,gBACtBpE,EAAY9N,KAAK0J,GACjBA,EAAG,GAAA7N,OAAMwO,EAAK0D,IAAIC,IAAImE,oBACtBrE,EAAY9N,KAAK0J,GACjBA,EAAG,GAAA7N,OAAMwO,EAAK0D,IAAIC,IAAIoE,uBACtBtE,EAAY9N,KAAK0J,GACjBA,EAAG,GAAA7N,OAAMwO,EAAK0D,IAAIC,IAAIqE,eACtBvE,EAAY9N,KAAK0J,GACVwC,EAA+B,MAAO4B,IAEjDwE,kBAAmB,SAACjD,GAChB,IAAMzB,EAAclS,YAAQ,eAM5B,OAAOwQ,EAAkC,MALrB,CAAC,GAADrQ,OACbwO,EAAK0D,IAAIC,IAAIuE,qBAAoB,QAAA1W,OAAOwT,EAAE,cAAAxT,OAAa+R,GAAW,GAAA/R,OAClEwO,EAAK0D,IAAIC,IAAIwE,sBAAqB,QAAA3W,OAAOwT,EAAE,cAAAxT,OAAa+R,GAAW,GAAA/R,OACnEwO,EAAK0D,IAAIC,IAAIyE,sBAAqB,QAAA5W,OAAOwT,EAAE,cAAAxT,OAAa+R,MAInE8E,QAAS,WACL,IAAM9E,EAAclS,YAAQ,eACtB0F,EAAK,GAAAvF,OAAMwO,EAAK0D,IAAIC,IAAI2E,KAAI,iBAAA9W,OAAgB+R,GAClD,OAAO9C,IACFlP,IAAkBwF,EAAO,CAAEW,QAASiK,EAA2B5K,KAAS,OAClE,SAACoK,GAOJ,OAAOD,EAAYC,EANA,CACfyB,YAAa,MACbC,WAAY9L,EACZoK,QACA2B,IAAK,2BAKrByF,YAAa,SAACC,GACV,IAAMC,EAAqC,OAAZD,EACzBzR,EAA8B,YAAAvF,OAAtBiX,EAAqCtI,EAAwBnJ,KAAK,KAAqBkJ,EAAsBlJ,KAAK,MAChI,OAAOgL,KAAO,WACV,OAAKyG,EACEhI,IAAMlP,IAAcyO,EAAKkD,GAAGlC,SAAS0H,cAAgB3R,EAAO,CAAEW,QAAS,CAAE,YAAa,uCAAwCiR,SAAU,YADzGlI,IAAMlP,IAAcyO,EAAKkD,GAAGlC,SAAS4H,YAAc7R,KAE1FgJ,GAAc,OAAO,SAACoB,GAOrBD,EAAYC,EANO,CACfyB,YAAa,kBACbC,WAAY4F,EAAyBzI,EAAKkD,GAAGlC,SAAS0H,cAAgB3R,EAAQiJ,EAAKkD,GAAGlC,SAAS4H,YAAc7R,EAC7GoK,QACA2B,IAAK,6EAGT,yCAAsB/B,MAAK,SAAAC,GACvBA,EAAQ,QAAS6H,iBAI7BC,mBAAoB,WAChB,OAAOrI,IAAMlP,IAAIyO,EAAKkD,GAAGlC,SAAS+H,wBAEtCC,uBAAwB,SAACC,EAAoBC,GACzC,IAAMnS,EAAK,GAAAvF,OAAMwO,EAAKkD,GAAGlC,SAASmI,qBAAoB,aAAA3X,OAAYyX,EAAU,wDAAAzX,OAAuD0X,GACnI,OAAOzI,IACFI,KACG9J,EAAM,gBAADvF,OACWyX,EAAU,gEAAAzX,OAA+D0X,EAAW,wBACvG,OACM,SAAC/H,GAMJ,OAAOD,EAAYC,EALA,CACfyB,YAAa,kBACbC,WAAY9L,EACZoK,cAKhBiI,kBAAmB,SAACzG,EAActB,GAC9B,IAAMtK,EAAK,GAAAvF,OAAMwO,EAAKkD,GAAGlC,SAASoI,mBAClC,OAAO3I,IACFI,KAAa9J,EAAO4L,EAAM,CAAEjL,QAAS,CAAE,eAAgB,sBAAuB,OACxE,SAACyJ,GAOJ,OAAOD,EAAYC,EANA,CACfyB,YAAa,kBACbC,WAAY9L,EACZoK,QACA2B,IAAK,2BAE6BzB,OAGlDgI,eAAgB,SAACC,EAAyBC,GACtC,IAAM5G,EAAO,CACT6G,SAAU,GACVF,kBACAC,cACAE,QAAS7W,YAAU,sBAEvB,OAAO6N,IACFyB,QAAgC,CAC7B7C,IAAKW,EAAKkD,GAAGlC,SAAS0I,kBACtBvH,OAAQ,OACRzK,QAAS,CAAE,eAAgB,oBAC3BiL,SACF,OACK,SAACxB,GAOJ,OAAOD,EAAYC,EANA,CACfyB,YAAa,kBACbC,WAAY7C,EAAKkD,GAAGlC,SAAS0I,kBAC7BvI,QACA2B,IAAK,+CAKrB6G,UAAW,SAAC/R,EAAcgS,EAAiBC,EAAiBC,GACxD,IAAMzK,EAAMW,EAAKkD,GAAG6G,UACdpH,EAAO,CACTqH,GAAIH,EACJI,SAAUhK,EACViK,QAASN,EACTO,YAAavS,GAEjB,OAAO6I,IACFyB,QAAgB,CACb7C,MACA8C,OAAQ,OACRzK,QAAOsB,EAAA,GAAO2I,EAA2BtC,GAAK,CAAC,eAAgB,qBAC/DsD,SAEH5B,MAAK,kBAAM+I,GAAc,MAAM,OACzB,SAAC3I,GAOJD,EAAYC,EANO,CACfyB,YAAa,iBACbC,WAAYxD,EACZ8B,QACA2B,IAAK,sCAGTgH,GAAc,OAG1BM,iBAAkB,WACd,OAAO3J,IAAMlP,IAAmByO,EAAK0D,IAAI2G,UAAUC,eAAc,OAAO,SAACnJ,GAGrE,OAFAiD,QAAQjD,MAAM,gCAEPM,QAAQC,OAAOP,OAG9BoJ,cAAe,WACX,OAAO9J,IAAMlP,IAAoByO,EAAK0D,IAAI8G,OAAOC,SAAU,CACvD/S,QAAS,CACL,eAAgB,sBAEtB,OAAO,SAACyJ,GAGN,OAFAiD,QAAQjD,MAAM,4BAEPM,QAAQC,OAAOP,OAG9BuJ,wBAAyB,WAErB,IAAMrL,EAAG,GAAA7N,OAAMwO,EAAK0D,IAAIiH,QAAQlF,MAAK,WAAAjU,OAAUG,KAAKmU,OACpD,OAAOrF,IAAMlP,IAAY8N,GAAI,OAAO,SAAC8B,GAGjC,OAFAiD,QAAQjD,MAAM,iCAEPM,QAAQC,OAAOP,OAG9ByJ,oBAAqB,SAACC,GAClB,IAAMxL,EAAG,GAAA7N,OAAMwO,EAAK0D,IAAIoH,QAAQrF,MAAK,cAAAjU,OAAaqZ,GAClD,OAAOpK,IAAMlP,IAAyB8N,GAAI,OAAO,SAAC8B,GAE9C,OADAiD,QAAQjD,MAAM,6BACPM,QAAQC,OAAOP,OAG9B4J,wBAAyB,SAAC/F,GACtB,IAAMjO,EAAK,GAAAvF,OAAMwO,EAAK0D,IAAIC,IAAIqH,oBAAmB,+BAAAxZ,OAA8BwT,GAC/E,OAAOvE,IACFlP,IAA2BwF,EAAO,CAAEW,QAASiK,EAA2B5K,KAAS,OAC3E,SAACoK,GAOJ,OAAOD,EAAYC,EANA,CACfyB,YAAa,MACbC,WAAY9L,EACZoK,QACA2B,IAAK,oCAKrBmI,0BAAyB,SAAC3Z,GACtB,IAAM+N,EAAG,GAAA7N,OAAMwO,EAAKkD,GAAGgI,QAAQC,cAAa,MAAA3Z,OAAKF,EAAG,aAAAE,OAAYG,KAAKmU,OACrE,OAAOrF,IAAMlP,IAA6B8N,GAAI,OAAO,SAAC8B,GAOlD,OAAOD,EAAYC,EANA,CACfyB,YAAa,iBACbC,WAAYxD,EACZ8B,QACA2B,IAAK,qCAKjBsI,qBAAoB,SAACC,EAAaC,GAC9B,IAAMC,EAAe3Y,YAAU,sBACzByM,EAAMW,EAAK0D,IAAIC,IAAI6H,aACnB9T,EAAUiK,EAA2B3B,EAAK0D,IAAIC,IAAI6H,cAClD7I,EAAO,CACT8I,IAAKJ,EACLK,aAAcH,EACdI,YAAaC,KAAKC,UAAUP,IAEhC,OAAO7K,IACFyB,QAAgD,CAC7CxK,UACA0K,iBAAiB,EACjB/C,MACA8C,OAAQ,OACRQ,SACF,OACK,SAACxB,GAMJ,OAAOD,EAAYC,EALA,CACf0B,WAAYxD,EACZ8B,QACA2B,IAAK,6DAMrBgJ,mBAAkB,WACd,IAAMzM,EAAG,GAAA7N,OAAMwO,EAAKkD,GAAGgI,QAAQC,cAAa,qEAC5C,OAAO1K,IAAMlP,IAAqB8N,GAAI,OAAO,SAAC8B,GAO1C,OAAOD,EAAYC,EANA,CACfyB,YAAa,iBACbC,WAAYxD,EACZ8B,QACA2B,IAAK,6CAMjBiJ,0BAA2B,SAACV,GACxB,IAAME,EAAe3Y,YAAU,sBACzBmE,EAAK,GAAAvF,OAAMwO,EAAK0D,IAAIC,IAAIwH,cAAa,SAAA3Z,OAAQ6Z,EAAG,kBAAA7Z,OAAiB+Z,GACvE,OAAO9K,IAAMlP,IAAgCwF,EAAO,CAChDW,QAAS,CACL,eAAgB,sBAEtB,OAAO,SAACyJ,GAEN,OADAiD,QAAQjD,MAAM,wCACPM,QAAQC,OAAOP,OAI9B6K,aAAY,WACR,IAAM3M,EAAG,GAAA7N,OAAMwO,EAAK0D,IAAIuI,YAAYC,eACpC,OAAOzL,IACFlP,IAAe8N,EAAK,CAAE3H,QAASiK,EAA2BtC,KAAO,OAC3D,SAAC8B,GAGJ,OAFAiD,QAAQjD,MAAM,sBAEPM,QAAQC,OAAOP,OAIlCgL,qBAAoB,WAChB,IAAM9M,EAAG,GAAA7N,OAAMwO,EAAK0D,IAAIuI,YAAYG,mBACpC,OAAO3L,IACFlP,IAAwB8N,EAAK,CAAE3H,QAASiK,EAA2BtC,KAAO,OACpE,SAAC8B,GACJ,OAAOD,EAAYC,EAAO,CAAE2B,IAAK,2CAI7CuJ,kBAAiB,SAACrH,GAAyD,IAA7CsH,EAAO/J,UAAArS,OAAA,QAAA4U,IAAAvC,UAAA,GAAAA,UAAA,GAAG,GAAIgK,EAAuBhK,UAAArS,OAAA,QAAA4U,IAAAvC,UAAA,GAAAA,UAAA,GAAG,GAC9DlD,EAAG,GAAA7N,OAAMwO,EAAK0D,IAAIuI,YAAYO,eAAc,KAAAhb,OAAIwT,GAIpD,OAHIsH,IACAjN,EAAG,GAAA7N,OAAMwO,EAAK0D,IAAIuI,YAAYO,eAAc,WAAAhb,OAAUwT,EAAE,KAAAxT,OAAI8a,EAAO,KAAA9a,OAAI+a,IAEpE9L,IACFlP,IAAY8N,EAAK,CAAE3H,QAASiK,EAA2BtC,KAAO,OACxD,SAAC8B,GAAiB,OAAKD,EAAYC,EAAO,CAAE2B,IAAK,qCAGhE2J,aAAc,WACV,IAAMlJ,EAAclS,YAAQ,eACtB0F,EAAK,GAAAvF,OAAMwO,EAAK0D,IAAIC,IAAI+I,SAAQ,cAAAlb,OAAa+R,GACnD,OAAO9C,IACFlP,IAAoBwF,EAAO,CAAEW,QAASiK,EAA2B5K,KAAS,OACpE,SAACoK,GAOJ,OAAOD,EAAYC,EANA,CACfyB,YAAa,MACbC,WAAY9L,EACZoK,QACA2B,IAAK,sCAMrB6J,WAAY,SAACC,GACT,IAAMvN,EAAG,GAAA7N,OAAMwO,EAAK0D,IAAImJ,WAAU,gBAAArb,OAAesb,mBAAmBF,IACpE,OAAOnM,IACFlP,IAAY8N,EAAK,CAAE3H,QAASiK,EAA2BtC,KACvD0B,MAAK,SAAAgM,GACF,OAAkBA,EAAIpK,KC9zBrB/M,QAAQ,kBAAkB,SAACgD,GACpC,OAAOA,EAAIzI,SAAS,WAAayI,EAAIzI,SAAS,UAAY,GAAKyI,KAChEuF,UD6zBO,OACK,SAACgD,GAAiB,OAAKD,EAAYC,EAAO,CAAE2B,IAAK,uCAGhEkK,oBAAmB,SAACrK,GAChB,IAAMtD,EAAMW,EAAK0D,IAAIuJ,WAAWC,QAChC,OAAOzM,IACFyB,QAAiB,CACd7C,MACA8C,OAAQ,OACRzK,QAASiK,EAA2B3B,EAAK0D,IAAIuJ,WAAWC,SACxD9K,iBAAiB,EACjBO,SACF,OACK,SAACxB,GAAiB,OAAKD,EAAYC,EAAO,CAAE2B,IAAK,uCAGhEqK,mBAAkB,SAACxK,GACf,IAAMtD,EAAMW,EAAK0D,IAAIuJ,WAAWG,OAChC,OAAO3M,IACFyB,QAAiB,CACd7C,MACA8C,OAAQ,OACRzK,QAASiK,EAA2B3B,EAAK0D,IAAIuJ,WAAWG,QACxDhL,iBAAiB,EACjBO,SACF,OACK,SAACxB,GAAiB,OAAKD,EAAYC,EAAO,CAAE2B,IAAK,sCAGhEuK,mBAAkB,SAAC1K,GACf,IAAMtD,EAAMW,EAAK0D,IAAIuJ,WAAWK,OAChC,OAAO7M,IACFyB,QAAiB,CACd7C,MACA8C,OAAQ,OACRzK,QAASiK,EAA2B3B,EAAK0D,IAAIuJ,WAAWK,QACxDlL,iBAAiB,EACjBO,SACF,OACK,SAACxB,GAAiB,OAAKD,EAAYC,EAAO,CAAE2B,IAAK,sCAGhEyK,mBAAkB,SAAC5K,GACf,IAAMtD,EAAMW,EAAK0D,IAAIuI,YAAYuB,YAEjC,OAAO/M,IAAMyB,QAAQ,CACjB7C,MACA8C,OAAQ,OACRzK,QAASiK,EAA2BtC,GACpC+C,iBAAiB,EACjBO,UAIR8K,sBAAqB,SAAC9K,GAClB,IAAMtD,EAAMW,EAAK0D,IAAIuI,YAAYyB,oBAEjC,OAAOjN,IAAMyB,QAAQ,CACjB7C,MACA8C,OAAQ,OACRzK,QAASiK,EAA2BtC,GACpC+C,iBAAiB,EACjBO,UAIRgL,YAAW,SAACC,EAAmBC,GAC3B,IAAMxO,EAAG,GAAA7N,OAAMwO,EAAK0D,IAAIuI,YAAY6B,cAAa,KAAAtc,OAAIoc,GACrD,OAAOnN,IAAMlP,IAAI8N,EAAK,CAAE3H,QAASiK,EAA2BtC,KAAO,OAAO,SAAC8B,GACnEA,GAASA,EAAM4M,UAAsC,MAA1B5M,EAAM4M,SAASC,OAC1CH,EAAuBD,GAEvB1M,EAAYC,EAAO,CAAE2B,IAAK,yCAKtCmL,WAAU,SAACL,GACP,IAAMvO,EAAG,GAAA7N,OAAMwO,EAAK0D,IAAIuI,YAAYiC,aAAY,KAAA1c,OAAIoc,GACpD,OAAOnN,IAAMlP,IAAI8N,EAAK,CAAE3H,QAASiK,EAA2BtC,MAGhE8O,oBAAmB,SAACC,EAA0BC,EAAqBC,GAC/D,OAAO7N,IACFI,KAAmBb,EAAKkD,GAAGqL,OAAO9Q,KAAMmO,KAAKC,UAAUuC,GAAU,CAC9D1W,QAAS,CAAE,eAAgB,mBAAoB8W,cAAc,UAADhd,OAAY6c,MAC1E,OACK,SAAAI,GAMHvN,EAAYuN,EALO,CACf7L,YAAa,gBACbC,WAAY7C,EAAKkD,GAAGqL,OAAO9Q,KAC3B0D,MAAOsN,IAIXH,EAAcG,OAI1BC,aAAY,SAACC,GACT,OAAOlO,IAAMlP,IAAG,GAAAC,OAAU1B,OAAOC,SAAS6e,QAAMpd,OAAGmd,GAAY,CAAEE,aAAc,UAGnFC,mBAAkB,SAACC,GACf,IAAM1P,EAAG,GAAA7N,OAAMwO,EAAK0D,IAAIsL,UAAS,gBAAAxd,OAAeud,GAChD,OAAOtO,IAAMlP,IAAY8N,GAAI,OAAO,SAAC8B,GAAiB,OAAKM,QAAQC,OAAOP,OAG9E8N,qBAAoB,SAACrf,GACjB,IAAM+S,EAAO,CACTqC,GAAI,yBACJC,OAAQ,CAEJI,kBAAmB,CACf,YACA,wBACA,8BACA,qBACA,yBACA,qBACA,wBAAwB,sBAAD7T,OACD5B,GAAQ,0BAAA4B,OACJ5B,GAAQ,yBAAA4B,OACT5B,IAE7BwV,MAAO,MAIT1N,EAAUiK,EAA2B3B,EAAK0D,IAAIW,QACpD,OAAO5D,IACFyB,QAA6B,CAC1B7C,IAAKW,EAAK0D,IAAIW,OACdlC,OAAQ,OACRzK,UACA0K,iBAAiB,EACjBO,OACA6C,YAAapC,EAAWA,EAASqC,WAAQX,IAC3C,OACK,SAAC3D,GAAiB,OAAKD,EAAYC,EAAO,CAAE2B,IAAK,+CAGhEoM,kBAAmB,WACf,IAAM7P,EAAG,GAAA7N,OAAMwO,EAAK0D,IAAIC,IAAI0K,aAE5B,OADAjL,EAAW3C,IAAMiE,YAAYC,SACtBlE,IAAMlP,IAAoB8N,EAAK,CAAEmG,YAAapC,EAAWA,EAASqC,WAAQX,IAAY,OAAO,SAAC3D,GAGjG,OADAiD,QAAQjD,MAAMA,EAAMgO,SACb1N,QAAQC,OAAOP,OAI9BiO,oBAAqB,SAACzM,EAA2B0L,GAC7C,IAAMhP,EAAMW,EAAK0D,IAAI2L,IAAIhL,OAEzB,OADAjB,EAAW3C,IAAMiE,YAAYC,SACtBlE,IACFyB,QAAQ,CACL7C,MACA8C,OAAQ,OACRzK,QAAS,CAAE,eAAgB,mBAAoB,oBAAoB,GAADlG,OAAK6c,IACvEjM,iBAAiB,EACjBO,OACA6C,YAAapC,EAAWA,EAASqC,WAAQX,IAC3C,OACK,SAAC3D,GAGJ,OADAiD,QAAQjD,MAAMA,EAAMgO,SACb1N,QAAQC,OAAOP,OAIlCmO,6BAA8B,SAAC3M,EAA4B0L,GACvD,IAAMhP,EAAMW,EAAK0D,IAAI2L,IAAIE,SACzB,OAAO9O,IACFyB,QAAQ,CACL7C,MACA8C,OAAQ,OACRzK,QAAS,CAAE,eAAgB,mBAAoB,oBAAoB,GAADlG,OAAK6c,IACvEjM,iBAAiB,EACjBO,SACF,OACK,SAACxB,GAGJ,OADAiD,QAAQjD,MAAMA,EAAMgO,SACb1N,QAAQC,OAAOP,OAIlCqO,cAAe,WACX,IAAMjM,EAAclS,YAAQ,eACtBmS,EAAoBnS,YAAQ,qBAC5BoS,EAAc,GAChBpE,EAAG,GAAA7N,OAAMwO,EAAK0D,IAAIC,IAAI8L,iBAAgB,cAAAje,OAAa+R,GAMvD,OALAE,EAAY9N,KAAK0J,GACZmE,IACDnE,EAAMW,EAAK0D,IAAIC,IAAI+L,eACnBjM,EAAY9N,KAAK0J,IAEdwC,EAAkC,MAAO4B,IAGpDkM,wBAAyB,SAAC3K,GACtB,IAAMzB,EAAclS,YAAQ,eACtB0F,EAAK,GAAAvF,OAAMwO,EAAK0D,IAAIC,IAAIiM,wBAAuB,QAAApe,OAAOwT,EAAE,cAAAxT,OAAa+R,GAC3E,OAAO9C,IACFlP,IAAkBwF,EAAO,CAAEW,QAASiK,EAA2B5K,KAAS,OAClE,SAACoK,GAOJ,OAAOD,EAAYC,EANA,CACfyB,YAAa,MACbC,WAAY9L,EACZoK,QACA2B,IAAK,+CAMrB+M,sBAAuB,WACnB,IAAMxQ,EAAG,GAAA7N,OAAMwO,EAAK0D,IAAIC,IAAImM,oBAC5B,OAAOrP,IAAMlP,IAAS8N,EAAK,CACvB3H,QAAS,CACL,eAAgB,sBAEtB,OAAO,SAACyJ,GACN,OAAOD,EAAYC,OAI3B4O,iBAAkB,WACV3M,GAAUA,EAASoB,OAAO,oBAC9BpB,EAAW,MAGf4M,2BAA4B,SAAChL,GACzB,IAAMzB,EAAclS,YAAQ,eACtB4e,EAAWC,OAAOlL,GAClBjO,EAAK,GAAAvF,OAAMwO,EAAK0D,IAAIC,IAAIwM,UAAS,yBAAA3e,OAAwBye,EAAQ,UAAAze,OAAS+R,GAChF,OAAO9C,IACFlP,IAAyBwF,EAAO,CAAEW,QAASiK,EAA2B5K,KAAS,OACzE,SAACoK,GAOJ,OAAOD,EAAYC,EANA,CACfyB,YAAa,MACbC,WAAY9L,EACZoK,QACA2B,IAAK,2DAMrBsN,+BAAgC,SAACpL,GAC7B,IAAMiL,EAAWC,OAAOlL,GAClBjO,EAAK,GAAAvF,OAAMwO,EAAK0D,IAAIC,IAAI0M,oBAAmB,yBAAA7e,OAAwBye,GACzE,OAAOxP,IACFlP,IAAyBwF,EAAO,CAAEW,QAASiK,EAA2B5K,KAAS,OACzE,SAACoK,GAOJ,OAAOD,EAAYC,EANA,CACfyB,YAAa,MACbC,WAAY9L,EACZoK,QACA2B,IAAK,+DAMrBwN,kCAAmC,SAACtL,GAChC,IAAMzB,EAAclS,YAAQ,eACtB4e,EAAWC,OAAOlL,GAClBjO,EAAK,GAAAvF,OAAMwO,EAAK0D,IAAIC,IAAI4M,wBAAuB,yBAAA/e,OAAwBye,EAAQ,UAAAze,OAAS+R,GAC9F,OAAO9C,IACFlP,IAAsBwF,EAAO,CAAEW,QAASiK,EAA2B5K,KAAS,OACtE,SAACoK,GAOJ,OAAOD,EAAYC,EANA,CACfyB,YAAa,MACbC,WAAY9L,EACZoK,QACA2B,IAAK,mEAKrB0N,mBAAoB,WACInf,YAAQ,eAA5B,IACMof,EAAU,GAAAjf,OAAMwO,EAAK0D,IAAIgN,IAAID,YACnC,OAAOhQ,IACFlP,IAAqBkf,EAAY,CAAE/Y,QAASiK,EAA2B8O,KAAc,OAC/E,SAACtP,GAOJ,OAAOD,EAAYC,EANA,CACfyB,YAAa,MACbC,WAAY4N,EACZtP,QACA2B,IAAK,sDAKrB6N,mCAAoC,SAAC3L,GACjC,IAAMzB,EAAclS,YAAQ,eACtB0F,EAAK,GAAAvF,OAAMwO,EAAK0D,IAAIC,IAAIiN,yBAAwB,UAAApf,OAAS+R,EAAW,2BAAA/R,OAA0BwT,GACpG,OAAOvE,IACFlP,IAAuBwF,EAAO,CAAEW,QAASiK,EAA2B5K,KAAS,OACvE,SAACoK,GAOJ,OAAOD,EAAYC,EANA,CACfyB,YAAa,MACbC,WAAY9L,EACZoK,QACA2B,IAAK,oEAMrB+N,sBAAuB,SAACxF,EAAayF,EAAqBxF,GACtD,IAAMjM,EAAG,GAAA7N,OAAMwO,EAAK0D,IAAIC,IAAIkN,uBACtBnZ,EAAUiK,EAA2B3B,EAAK0D,IAAIC,IAAIkN,uBAClDlO,EAAO,CACToO,cAAe1F,EACf2F,aAAcF,EACdG,sBAAuBrF,KAAKtO,MAAMgO,IAEtC,OAAO7K,IACFyB,QAA8C,CAC3CxK,UACA0K,iBAAiB,EACjB/C,MACA8C,OAAQ,OACRQ,SACF,OACK,SAACxB,GAMJ,OAAOD,EAAYC,EALA,CACf0B,WAAYxD,EACZ8B,QACA2B,IAAK,yEAQVO,O,kJEpkCA5J,cAzEf,SAAwByX,GAA6B,IACzCC,EAAiHD,EAAjHC,UAAWC,EAAsGF,EAAtGE,YAAaC,EAAyFH,EAAzFG,cAAeC,EAA0EJ,EAA1EI,YAAaC,EAA6DL,EAA7DK,oBAAqBC,EAAwCN,EAAxCM,SAAUC,EAA8BP,EAA9BO,QAASC,EAAqBR,EAArBQ,iBAAgBC,EACpFlY,YAAwB,GAAMmY,EAAA7b,IAAA4b,EAAA,GAAvDE,EAAQD,EAAA,GAAEE,EAAWF,EAAA,GAAAG,EACsBtY,YAAwB,GAAMuY,EAAAjc,IAAAgc,EAAA,GAAzEE,EAAiBD,EAAA,GAAEE,EAAoBF,EAAA,GACxCG,EAA2C1Y,SAAa,MAiC9D,OAhCA2Y,YAAaD,GAAY,kBAAML,GAAY,MAE3CrY,aAAgB,WACZ,IAAM4Y,EAAkBC,IAAgBC,QAAO,WAC3CT,GAAY,MAEhB,OAAO,WACHO,OAEL,IAwBC5Y,gBAAA,OACI+Y,aAjBoB,WACpBP,EACAQ,YAAW,kBAAMP,GAAqB,KAAQ,MAG7CV,GAAYD,GACbO,GAAY,IAYZY,cARqB,WACc,qBAAdriB,WAA6B,WAAWsiB,KAAKtiB,UAAUuiB,YACjEV,GAAqB,IAOhCW,aAAc,kBAAOrB,GAAYD,GAAuBO,GAAY,IACpEgB,IAAKX,EACLhB,UAAW/hB,YAAG,kBAAmB+hB,IAEjC1X,gBAAA,UAAQsN,KAAK,SAASoK,UAAWG,EAAayB,QAAS,kBAAMjB,GAAaD,IAAWmB,cAAY,mBAC5F3B,EACAK,IAAuBG,EAAkEpY,gBAACwZ,IAAW,CAAC9B,UAAU,0BAA7E1X,gBAACyZ,IAAa,CAAC/B,UAAU,4BAE/DK,EACE/X,gBAAA,MAAIuZ,cAAY,uBAAuB7B,UAAW/hB,YAAG,8BAA+B+hB,EAAW,CAAE,sCAAuCU,KACpIpY,gBAAA,UACIA,gBAAA,UAAQsN,KAAK,SAASoK,UAAU,4BAA4B4B,QAAS,kBAAMjB,GAAY,KACnFrY,gBAAA,QAAM0X,UAAU,6BArCvB,KAsCO1X,gBAAA,QAAM0X,UAAU,6BAA6BM,KAGpDhY,WAAejG,IAAI4d,GAAa,SAAC+B,EAA2B/Z,GAAa,OACtEK,gBAAA,MAAI0X,UAAW/hB,YAAG,8BAA+B,CAAE,iBAxC5B2I,EAwC+EqZ,EAAYhY,EAAQ,GAvCnIrB,GAAKA,EAAEmZ,MAAMkC,UAAYrb,EAAEmZ,MAAMkC,SAAS,IAAMrb,EAAEmZ,MAAMkC,SAAS,GAAGlC,QAAUnZ,EAAEmZ,MAAMkC,SAAS,GAAGlC,MAAMmC,eAuCoCF,GAxC7G,IAACpb,MA4C/B0B,gBAAA,MAAIuZ,cAAY,uBAAuB7B,UAAW/hB,YAAG,wBAAyB+hB,EAAW,CAAE,gCAAiCU,KACvHpY,WAAejG,IAAI4d,GAAa,SAAC+B,EAA2B/Z,GAAa,OACtEK,gBAAA,MAAI0X,UAAW/hB,YAAG,wBAAyB,CAAE,iBAAkB+jB,EAAMjC,MAAMmC,YAAejC,EAAYhY,EAAQ,KAAOgY,EAAYhY,EAAQ,GAAG8X,MAAMmC,cAAiBF,Y,wKC/DrLG,EAAajiB,YAAQ,kBACrBkiB,EAAcliB,YAAQ,kBACtBmiB,EAAS1jB,OACf0jB,EAAOC,UAAYD,EAAOC,WAAa,GAGvC,IAAM7jB,EAAWyB,YAAQ,YAEnBqiB,EAAmB,WACrB,yCAAkD3S,MAAK,SAAA4S,GACnD,IAAMC,EAAcD,EAAW,QAC3BC,GACAA,EAAYC,YA6ETpa,cAxEf,SAAsByX,GAA2B,IACrC4C,EAAkD5C,EAAlD4C,YAAa3C,EAAqCD,EAArCC,UAAW4C,EAA0B7C,EAA1B6C,SAAUC,EAAgB9C,EAAhB8C,YAAWC,EACrBC,cAAxBC,EAASF,EAATE,UAAWC,EAAQH,EAARG,SACbC,EAAiBC,aAAY,SAACC,GAAqB,OAAKhjB,YAAIgjB,EAAO,mBAAmB,MACtFC,EAAY5hB,YAAU,4BACtB6hB,EAAS7hB,YAAU,4BACrB8hB,EAAY,GACVC,EAAUN,EAAiB,GAAK,UAEhCO,EAAW,eAAAC,EAAAC,IAAAC,IAAAC,MAAG,SAAAC,EAAOC,GAA2B,OAAAH,IAAAI,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,WAE9CjB,EAAe,CAADe,EAAAE,KAAA,SACdlR,QAAQmR,IAAI,kBACiEH,EAAAE,KAAA,SAChD,KAAD,MACpBnB,EAAUqB,gBAAgB,CAADJ,EAAAE,KAAA,eAAAF,EAAAE,KAAA,EAAQlB,EAASvL,UAAU,KAAD,EAAAuM,EAAAE,KAAA,iBAGjB,OADtCJ,EAAMO,iBACNC,IAAMC,SAAS,CAAE5O,KAAM6O,MAAeR,EAAAE,KAAA,GAChCtU,UAAS6H,UAAU9H,MAAK,WAC1B2S,IACA,IAAMmC,EAAU,GAAArkB,OAAM1B,OAAOC,SAAS6e,OAAM,KAAApd,OAAI5B,GAC5CukB,EAAUqB,gBACVpB,EAASvL,QAAQ,CAAEiN,sBAAsB,GAADtkB,OAAKqkB,EAAU,aAEvD/lB,OAAOC,SAASgmB,KAAI,GAAAvkB,OAAM1B,OAAOC,SAAS6e,OAAM,KAAApd,OAAIijB,EAAM,aAAAjjB,OAAYsb,mBAAmB,GAADtb,OAAIqkB,QAEjG,KAAD,GAAAT,EAAAE,KAAA,iBAGNlR,QAAQmR,IAAI,oBACRzlB,OAAOC,SAASC,SAASE,OAAS,IAClCwkB,EAAS,UAAAljB,OAAasb,mBAAmBhd,OAAOC,SAASC,YAE7DklB,EAAMO,iBACN/B,IACA5jB,OAAOC,SAASgmB,KAAI,GAAAvkB,OAAMgjB,EAAYE,GACzC,yBAAAU,EAAAY,UAAAf,OACJ,gBA7BgBgB,GAAA,OAAApB,EAAAvW,MAAA,KAAAiE,YAAA,GA+CjB,OACI9I,gBAACyc,IAAU,CACPhd,KAAMmb,EAAiBd,EAAcD,EACrCjU,IAnBR,WACI,IAAI8W,EAAa3B,EACXqB,EAAU,GAAArkB,OAAM1B,OAAOC,SAAS6e,OAAM,KAAApd,OAAI5B,GAWhD,OATQykB,EACA8B,EAAU,GAAA3kB,OAAM1B,OAAOC,SAAS6e,OAAM,KAAApd,OAAIijB,EAAM,aAAAjjB,OAAYsb,mBAAmB,GAADtb,OAAIqkB,MAE9E/lB,OAAOC,SAASC,SAASE,OAAS,IAClCwkB,EAAS,UAAAljB,OAAasb,mBAAmBhd,OAAOC,SAASC,YAE7DmmB,EAAU,GAAA3kB,OAAMgjB,EAAYE,IAG7ByB,EAMEC,GACLtC,YAAaA,EACb3C,UAAWA,EACX4C,SAAUA,EACVC,YAAaA,EACbjB,QAAS6B,EACT5P,GAAG,eACH2P,QAASA,EACT0B,aAAchC,Q,4FCnFX5a,cANf,SAAqByX,GAA0B,IACnCoF,EAAgCpF,EAAhCoF,KAAMnF,EAA0BD,EAA1BC,UAAWoF,EAAerF,EAAfqF,WAEzB,OAAO9c,gBAAA,MAAA+c,OAAAC,OAAA,CAAKtF,UAAW/hB,YAAG,eAAgB+hB,GAAY6B,cAAY,eAAe0D,wBAAyB,CAAEC,OAAQhe,YAAU2d,EAAM,MAAWC,Q,iCCRnJ,yNAIMK,EAAc,SAACC,GACjB,SAAKA,GAAiB,KAATA,IACwB,iBAA9B,IAAIllB,KAAKklB,GAAM7b,YAGpB8b,EAAU,SAAC1jB,EAAwB2jB,GAAuC,IAApBC,EAASzU,UAAArS,OAAA,QAAA4U,IAAAvC,UAAA,GAAAA,UAAA,GAAG,GACpE,OAAKnP,EAAMlD,QAAWkD,EAAM,GAAG2jB,GACxB3jB,EAAM6jB,MAAK,SAACxjB,EAAoBC,GACnC,GAAID,EAAEsjB,IAAcrjB,EAAEqjB,GAAY,CAC9B,GAAItjB,EAAEsjB,GAAWtkB,cAAgBiB,EAAEqjB,GAAWtkB,cAAe,OAAQ,EACrE,GAAIgB,EAAEsjB,GAAWtkB,cAAgBiB,EAAEqjB,GAAWtkB,cAAe,OAAO,EAExE,GAAkB,KAAdukB,EAAkB,CAClB,GAAIvjB,EAAEujB,GAAWvkB,cAAgBiB,EAAEsjB,GAAWvkB,cAAe,OAAQ,EACrE,GAAIgB,EAAEujB,GAAWvkB,cAAgBiB,EAAEsjB,GAAWvkB,cAAe,OAAO,EAExE,OAAO,KAVuCW,GAchD8jB,EAAY,SAAC9jB,EAAwB2jB,GAAuC,IAApBC,EAASzU,UAAArS,OAAA,QAAA4U,IAAAvC,UAAA,GAAAA,UAAA,GAAG,GACtE,OAAKnP,EAAMlD,QAAWkD,EAAM,GAAG2jB,GACxB3jB,EAAM6jB,MAAK,SAACxjB,EAAoBC,GACnC,GAAID,EAAEsjB,IAAcrjB,EAAEqjB,GAAY,CAC9B,GAAItjB,EAAEsjB,GAAW,GAAGtkB,cAAgBiB,EAAEqjB,GAAW,GAAGtkB,cAAe,OAAQ,EAC3E,GAAIgB,EAAEsjB,GAAW,GAAGtkB,cAAgBiB,EAAEqjB,GAAW,GAAGtkB,cAAe,OAAO,EAE9E,GAAkB,KAAdukB,EAAkB,CAClB,GAAIvjB,EAAEujB,GAAW,GAAGvkB,cAAgBiB,EAAEsjB,GAAW,GAAGvkB,cAAe,OAAQ,EAC3E,GAAIgB,EAAEujB,GAAW,GAAGvkB,cAAgBiB,EAAEsjB,GAAW,GAAGvkB,cAAe,OAAO,EAE9E,OAAO,KAVuCW,GAchD+jB,EAAW,SAAC/jB,EAAwB2jB,GAAuC,IAApBC,EAASzU,UAAArS,OAAA,QAAA4U,IAAAvC,UAAA,GAAAA,UAAA,GAAG,GACrE,OAAKnP,EAAM,GAAG2jB,GACP3jB,EAAM6jB,MAAK,SAACxjB,EAAoBC,GACnC,GAAID,EAAEsjB,IAAcrjB,EAAEqjB,GAAY,CAC9B,GAAItjB,EAAEsjB,GAAWtkB,cAAgBiB,EAAEqjB,GAAWtkB,cAAe,OAAO,EACpE,GAAIgB,EAAEsjB,GAAWtkB,cAAgBiB,EAAEqjB,GAAWtkB,cAAe,OAAQ,EAEzE,GAAkB,KAAdukB,EAAkB,CAClB,GAAIvjB,EAAEujB,GAAWvkB,cAAgBiB,EAAEsjB,GAAWvkB,cAAe,OAAO,EACpE,GAAIgB,EAAEujB,GAAWvkB,cAAgBiB,EAAEsjB,GAAWvkB,cAAe,OAAQ,EAEzE,OAAO,KAVsBW,GAc/BgkB,EAAa,SAAChkB,EAAwB2jB,GAAuC,IAApBC,EAASzU,UAAArS,OAAA,QAAA4U,IAAAvC,UAAA,GAAAA,UAAA,GAAG,GACvE,OAAKnP,EAAM,GAAG2jB,GACP3jB,EAAM6jB,MAAK,SAACxjB,EAAoBC,GACnC,GAAID,EAAEsjB,IAAcrjB,EAAEqjB,GAAY,CAC9B,GAAItjB,EAAEsjB,GAAW,GAAGtkB,cAAgBiB,EAAEqjB,GAAW,GAAGtkB,cAAe,OAAO,EAC1E,GAAIgB,EAAEsjB,GAAW,GAAGtkB,cAAgBiB,EAAEqjB,GAAW,GAAGtkB,cAAe,OAAQ,EAE/E,GAAkB,KAAdukB,EAAkB,CAClB,GAAIvjB,EAAEujB,GAAW,GAAGvkB,cAAgBiB,EAAEsjB,GAAW,GAAGvkB,cAAe,OAAO,EAC1E,GAAIgB,EAAEujB,GAAW,GAAGvkB,cAAgBiB,EAAEsjB,GAAW,GAAGvkB,cAAe,OAAQ,EAE/E,OAAO,KAVsBW,GA8B/BikB,EAAiB,SAACjkB,EAAwB2jB,GAAuC,IAApBC,EAASzU,UAAArS,OAAA,QAAA4U,IAAAvC,UAAA,GAAAA,UAAA,GAAG,GAC3E,OAAOnP,EAAM6jB,MAAK,SAACxjB,EAAoBC,GAEnC,IAAKkjB,EAAYnjB,EAAEsjB,IAAa,OAAO,EAEvC,IAAKH,EAAYljB,EAAEqjB,IAAa,OAAQ,EACxC,GAAI,IAAIplB,KAAK8B,EAAEsjB,IAAc,IAAIplB,KAAK+B,EAAEqjB,IAAa,OAAO,EAC5D,GAAI,IAAIplB,KAAK8B,EAAEsjB,IAAc,IAAIplB,KAAK+B,EAAEqjB,IAAa,OAAQ,EAC7D,GAAkB,KAAdC,EAAkB,CAClB,GAAIvjB,EAAEujB,GAAWvkB,cAAgBiB,EAAEsjB,GAAWvkB,cAAe,OAAO,EACpE,GAAIgB,EAAEujB,GAAWvkB,cAAgBiB,EAAEsjB,GAAWvkB,cAAe,OAAQ,EAEzE,OAAO,MAIT6kB,EAAiB,SAAClkB,GACpB,IAAM6J,EAAe7J,EAChBb,QAAO,SAACglB,GACL,QAAKA,EAAKC,kBACHZ,EAAYW,EAAKC,kBAAoBC,YAASF,EAAKC,iBAAmB,MAEhFP,MAAK,SAACxjB,EAAoBC,GAEvB,OAAKkjB,EAAYnjB,EAAE+jB,iBAEdZ,EAAYljB,EAAE8jB,iBACf,IAAI7lB,KAAK8B,EAAE+jB,iBAAmB,IAAI7lB,KAAK+B,EAAE8jB,iBAAyB,EAClE,IAAI7lB,KAAK8B,EAAE+jB,iBAAmB,IAAI7lB,KAAK+B,EAAE8jB,kBAA0B,EAChE,GAHsC,EAFD,KAQ9CE,EAAkBtkB,EACnBb,QAAO,SAACglB,GACL,OAAKA,EAAKC,mBACLZ,EAAYW,EAAKC,kBACfC,YAASF,EAAKC,kBAAoB,MAE5CP,MAAK,SAACxjB,EAAoBC,GAEvB,OAAKkjB,EAAYnjB,EAAEuJ,WAEd4Z,EAAYljB,EAAEsJ,WACf,IAAIrL,KAAK8B,EAAEuJ,WAAa,IAAIrL,KAAK+B,EAAEsJ,WAAmB,EACtD,IAAIrL,KAAK8B,EAAEuJ,WAAa,IAAIrL,KAAK+B,EAAEsJ,YAAoB,EACpD,GAHgC,EAFD,KAQ9C,OAAOC,EAAazL,OAAOkmB,K,iCCrI/B,+DAASC,IAAiS,OAApRA,EAAWnB,OAAOC,OAASD,OAAOC,OAAOmB,OAAS,SAAUC,GAAU,IAAK,IAAI9f,EAAI,EAAGA,EAAIwK,UAAUrS,OAAQ6H,IAAK,CAAE,IAAI4M,EAASpC,UAAUxK,GAAI,IAAK,IAAIzG,KAAOqT,EAAc6R,OAAOsB,UAAUC,eAAeC,KAAKrT,EAAQrT,KAAQumB,EAAOvmB,GAAOqT,EAAOrT,IAAY,OAAOumB,IAA2BvZ,MAAM2Z,KAAM1V,WACtU,SAAS2V,EAAyBvT,EAAQwT,GAAY,GAAc,MAAVxT,EAAgB,MAAO,GAAI,IAAkErT,EAAKyG,EAAnE8f,EACzF,SAAuClT,EAAQwT,GAAY,GAAc,MAAVxT,EAAgB,MAAO,GAAI,IAA2DrT,EAAKyG,EAA5D8f,EAAS,GAAQO,EAAa5B,OAAO6B,KAAK1T,GAAqB,IAAK5M,EAAI,EAAGA,EAAIqgB,EAAWloB,OAAQ6H,IAAOzG,EAAM8mB,EAAWrgB,GAAQogB,EAASzlB,QAAQpB,IAAQ,IAAaumB,EAAOvmB,GAAOqT,EAAOrT,IAAQ,OAAOumB,EADxMS,CAA8B3T,EAAQwT,GAAuB,GAAI3B,OAAO+B,sBAAuB,CAAE,IAAIC,EAAmBhC,OAAO+B,sBAAsB5T,GAAS,IAAK5M,EAAI,EAAGA,EAAIygB,EAAiBtoB,OAAQ6H,IAAOzG,EAAMknB,EAAiBzgB,GAAQogB,EAASzlB,QAAQpB,IAAQ,GAAkBklB,OAAOsB,UAAUW,qBAAqBT,KAAKrT,EAAQrT,KAAgBumB,EAAOvmB,GAAOqT,EAAOrT,IAAU,OAAOumB,EAGne,IAAIa,EAAqB,IAAMlhB,cAAc,OAAQ,CACnDmhB,EAAG,8HACHC,KAAM,iBAEJC,EAAgB,SAAuBhE,GACzC,IAAIiE,EAASjE,EAAKiE,OAChB5H,EAAQgH,EAAyBrD,EAAM,CAAC,WAC1C,OAAO,IAAMrd,cAAc,MAAOmgB,EAAS,CACzCoB,MAAO,EACPC,OAAQ,GACRC,QAAS,WACTL,KAAM,OACN9F,IAAKgG,GACJ5H,GAAQwH,IAETQ,EAAa,IAAMC,YAAW,SAAUjI,EAAO4B,GACjD,OAAO,IAAMtb,cAAcqhB,EAAelB,EAAS,CACjDmB,OAAQhG,GACP5B,OAEU,K,iCCxBf,+DAASyG,IAAiS,OAApRA,EAAWnB,OAAOC,OAASD,OAAOC,OAAOmB,OAAS,SAAUC,GAAU,IAAK,IAAI9f,EAAI,EAAGA,EAAIwK,UAAUrS,OAAQ6H,IAAK,CAAE,IAAI4M,EAASpC,UAAUxK,GAAI,IAAK,IAAIzG,KAAOqT,EAAc6R,OAAOsB,UAAUC,eAAeC,KAAKrT,EAAQrT,KAAQumB,EAAOvmB,GAAOqT,EAAOrT,IAAY,OAAOumB,IAA2BvZ,MAAM2Z,KAAM1V,WACtU,SAAS2V,EAAyBvT,EAAQwT,GAAY,GAAc,MAAVxT,EAAgB,MAAO,GAAI,IAAkErT,EAAKyG,EAAnE8f,EACzF,SAAuClT,EAAQwT,GAAY,GAAc,MAAVxT,EAAgB,MAAO,GAAI,IAA2DrT,EAAKyG,EAA5D8f,EAAS,GAAQO,EAAa5B,OAAO6B,KAAK1T,GAAqB,IAAK5M,EAAI,EAAGA,EAAIqgB,EAAWloB,OAAQ6H,IAAOzG,EAAM8mB,EAAWrgB,GAAQogB,EAASzlB,QAAQpB,IAAQ,IAAaumB,EAAOvmB,GAAOqT,EAAOrT,IAAQ,OAAOumB,EADxMS,CAA8B3T,EAAQwT,GAAuB,GAAI3B,OAAO+B,sBAAuB,CAAE,IAAIC,EAAmBhC,OAAO+B,sBAAsB5T,GAAS,IAAK5M,EAAI,EAAGA,EAAIygB,EAAiBtoB,OAAQ6H,IAAOzG,EAAMknB,EAAiBzgB,GAAQogB,EAASzlB,QAAQpB,IAAQ,GAAkBklB,OAAOsB,UAAUW,qBAAqBT,KAAKrT,EAAQrT,KAAgBumB,EAAOvmB,GAAOqT,EAAOrT,IAAU,OAAOumB,EAGne,IAAIa,EAAqB,IAAMlhB,cAAc,OAAQ,CACnDmhB,EAAG,gGAEDS,EAAoB,SAA2BvE,GACjD,IAAIiE,EAASjE,EAAKiE,OAChB5H,EAAQgH,EAAyBrD,EAAM,CAAC,WAC1C,OAAO,IAAMrd,cAAc,MAAOmgB,EAAS,CACzCoB,MAAO,GACPC,OAAQ,GACRC,QAAS,YACTL,KAAM,OACN9F,IAAKgG,GACJ5H,GAAQwH,IAETQ,EAAa,IAAMC,YAAW,SAAUjI,EAAO4B,GACjD,OAAO,IAAMtb,cAAc4hB,EAAmBzB,EAAS,CACrDmB,OAAQhG,GACP5B,OAEU,K,gCCvBf,sDAGMmI,EAAkBtW,8CAAYuW,qCAA2F,SAApDvW,8CAAYuW,oCAcxE,SAASC,IACpB,GAAiF,SAApCxW,8CAAYC,oBACrD,OAAOpQ,YAAU,WAGrB,GAAIymB,EACA,MAAO,CACHG,qBAAsB,GACtBC,eAAgB,GAChBC,cAAe,GACfC,kBAAmB,GACnBC,kBAAmB,GACnBC,iBAAkB,GAClBC,eAAgB,GAChBC,mBAAoB,GACpBC,sBAAuB,GACvBC,SAAU,GACVC,aAAc,GACdC,aAAc,GACdC,iBAAkB,GAClBC,mBAAoB,GACpBC,mBAAoB,GACpBC,eAAgB,GAChB5qB,oBAAqB,GACrB6qB,oBAAoB,EACpBC,cAAe1X,8CAAY2X,iCAAmC,GAC9D9Z,QAASmC,8CAAY4X,2BAA6B,GAClD9qB,mBAAmB,EACnB+qB,iBAAiB,EACjBC,uBAAuB,EACvBC,gBAAiB,GACjBC,eAAgB,GAChBC,YAAa,GACbC,aAAc,GACdC,eAAgB,GAChBC,cAAe,GACfC,IAAK,GACLC,oBAAqB,GACrBC,kBAAmB,GACnBC,qBAAsB,GACtBC,uBAAuB,EACvBC,6BAA6B,EAC7BC,6BAA6B,EAC7BC,0BAA0B,EAC1BC,0BAA0B,EAC1BC,mBAAoB,GACpBC,mBAAoB,GACpBC,aAAc,GACdC,kBAAmB,IAI3B,IA9DYC,EA8DNC,EAA0BtQ,KAAKtO,MAAM6e,SAAOvgB,OAAOwgB,UACzD,MAAO,CACH5C,qBAAsB0C,EAAW1C,qBACjCiB,cAAeyB,EAAWzB,cAC1BhB,eAAgByC,EAAWzC,eAC3BE,kBAAmBuC,EAAWvC,kBAC9BC,kBAAmBsC,EAAWtC,kBAC9BE,eAAgBoC,EAAWpC,eAC3BD,iBAAkBqC,EAAWrC,iBAC7BE,mBAAoBmC,EAAWnC,mBAC/BC,sBAAuBkC,EAAWlC,sBAClCc,gBAAiBoB,EAAWpB,gBAC5BC,eAAgBmB,EAAWnB,eAC3BC,YAAakB,EAAWlB,YACxBf,SAAUiC,EAAWjC,SACrBC,aAAcgC,EAAWhC,aACzBC,aAAc+B,EAAW/B,aACzBC,iBAAkB8B,EAAW9B,iBAC7BC,mBAAoB6B,EAAW7B,mBAC/BC,mBAAoB4B,EAAW5B,mBAC/B3qB,oBAAqBusB,EAAWvsB,oBAChC6qB,mBAAoB0B,EAAW1B,mBAC/B5Z,QAASsb,EAAWtb,QACpB2Z,eAAgB2B,EAAW3B,eAC3B1qB,kBAAmBqsB,EAAWrsB,kBAC9B+qB,gBAAiBsB,EAAWtB,gBAC5ByB,IAAKH,EAAWG,IAChBxB,sBAAuBqB,EAAWrB,sBAClCI,aAAciB,EAAWjB,aACzBC,eAAgBgB,EAAWhB,eAC3BC,cAAee,EAAWf,cAC1BC,KA7FQa,EA6FIC,EAAWtb,QAAQnO,cA5F/BwpB,EAAQ9rB,SAAS,kBACV,MAEP8rB,EAAQ9rB,SAAS,oBACV,QAEJ,QAuFHkrB,oBAAqBa,EAAWb,oBAChCC,kBAAmBY,EAAWZ,kBAC9BC,qBAAsBW,EAAWX,qBACjCC,sBAAuBU,EAAWV,sBAClCC,4BAA6BS,EAAWT,4BACxCC,4BAA6BQ,EAAWR,4BACxCC,yBAA0BO,EAAWP,yBACrCC,yBAA0BM,EAAWN,yBACrCC,mBAAoBK,EAAWL,mBAC/BnC,cAAewC,EAAWxC,cAC1BoC,mBAAoBI,EAAWJ,mBAC/BC,aAAcG,EAAWH,aACzBC,kBAAmBE,EAAWF,qB,iCCjHtC,wCAYIxR,EAAS8R,EAIb,GAA6CvZ,8CAAYwZ,uBAAwB,CAE7E,IAAMC,EAAazrB,EAAQ,KAC3ByZ,EAASiS,IAAMjS,EAAQgS,GASZ5pB,IAJf,SAAmBtB,EAAaorB,GAC5B,OAAOnrB,YAAIiZ,EAAQlZ,EAAKorB,GAAY,GAAAlrB,OAdnB,mBAcsCA,OAAGF,M,gLCf7D,IAEoBqrB,EAAa,SAAAC,GAC9B,SAAAD,EAAoBzL,GAA4B,IAAD2L,EAKzC,OALyCxe,IAAA,KAAAse,IAC3CE,EAAAC,IAAA,KAAAC,IAAAJ,GAAA3E,KAAA,KAAM9G,KAEDqD,MAAQ,CACTpT,MAAO,MACT0b,EAOL,OAb6BG,IAAAL,EAAAC,GAO7BK,IAAAN,EAAA,EAAArrB,IAAA,oBAAAiC,MAAA,SAQwB4N,EAAc+b,GACdjF,KAAK/G,MAAlBiM,UAzBT,SAAqBhc,EAAc+b,GAEtC3b,IAAa6b,YACTC,IAAUC,iBACV,sDAAsD,GAAD9rB,OAClD2P,EAAMoc,KAAI,wBAAA/rB,OAAuB0rB,EAAUM,eAAc,kBAAAhsB,OAAiB2P,EAAMsc,QAsB/EC,CAAYvc,EAAO+b,KAE1B,CAAA5rB,IAAA,SAAAiC,MAAA,WAEgB,IACL4N,EAAU8W,KAAK1D,MAAfpT,MAAKwc,EACgD1F,KAAK/G,MAA1DkC,EAAQuK,EAARvK,SAAUwK,EAAMD,EAANC,OAAQT,EAAQQ,EAARR,SAAUU,EAAoBF,EAApBE,qBACpC,OAAID,EAAeA,EAAOxK,EAAUjS,GAChCA,IAAUgc,EAAiBU,GAAwB,KAChDzK,KACV,EAAA9hB,IAAA,2BAAAiC,MAAA,SAnBsC4N,GACnC,MAAO,CACHA,aAEPwb,EAb6B,CAASljB,c,iCCZ3C,sBAgBelI,MAAG,G,4tBCJlB,IAAMusB,EAAmC,CACrCC,YAAY,EACZC,yBAAyB,EACzBC,wBAAoBnZ,GAGlBoZ,EAAUC,kCAAwBL,GAExCI,EAAO,KAAME,KAAmB,SAAC7J,EAAOwJ,GACpC,OAAA/kB,EAAA,GAAYub,EAAM,CAACwJ,kBAGvBG,EAAO,KAAMG,KAAqB,SAAC9J,EAAuByJ,GACtD,OAAAhlB,EAAA,GAAYub,EAAM,CAACyJ,+BAGvBE,EAAO,KAAMI,IAAiBC,MAAMC,MAAM,SAACjK,EAAO3X,GAE9C,OAAOgD,IAAO2U,EAAO,CAAE3X,SAAU,CAAE6hB,KAAM7hB,EAASnM,aAGtDytB,EAAO,KAAMQ,IAAoBH,MAAMC,MAAM,SAACjK,EAAO0J,GACjD,OAAOre,IAAO2U,EAAO,CAAE0J,mBAAoB,CAAEQ,KAAMR,EAAmBxtB,aAG1EytB,EAAO,KAAMS,IAAqBJ,MAAMC,MAAM,SAACjK,EAAO0J,GAClD,OAAOre,IAAO2U,EAAO,CAAE0J,mBAAoB,CAAEQ,KAAMR,EAAmBxtB,aAG1EytB,EAAO,KAAMU,IAA6BL,MAAMC,MAAM,SAACjK,EAAO0J,GAC1D,OAAOre,IAAO2U,EAAO,CAAE0J,mBAAoB,CAAEQ,KAAMR,EAAmBxtB,aAG1EytB,EAAO,KAAMW,KAAkB,SAAAtK,GAC3B,OAAO3U,IAAO2U,EAAO,CAAEkK,KAAMX,Q,ytBC1CjC,IAAMgB,EAA0C,CAC5CC,KAAM,GACN9c,IAAK,GACL1D,WAAY,IAGVygB,EAAc3tB,YAAQ,uBAEtB4tB,EAAc,SAACC,EAA0B9qB,GAC3C,IAAM+qB,EAA2C,GAUjD,OATAD,EAAe1pB,SAAQ,SAAAU,GACnB,IAAMkpB,EAAiBhrB,EAAS8F,MAAK,SAAAmlB,GAAc,OAAI3pB,SAAS2pB,EAAera,GAAc,KAAO9O,KAChGkpB,GACAD,EAA6BxpB,KAAK,CAC9B2pB,uBAAwBF,EAAe7B,KACvCrnB,0BAA2BR,SAAS0pB,EAAe7rB,MAAiB,QAIzE4rB,GAGLI,EAAsB,SAACL,EAA0B9qB,GACnD,IAAM+qB,EAA2C,GAYjD,OAXAD,EAAe1pB,SAAQ,SAAAU,GACnB,IAAMkpB,EAAiBhrB,EAAS8F,MAAK,SAAAmlB,GAAc,OAAI3pB,SAAS2pB,EAAera,GAAc,KAAO9O,KAChGkpB,GACAD,EAA6BxpB,KAAK,CAC9B2pB,uBAAwBF,EAAe7B,KACvCrnB,0BAA2BR,SAAS0pB,EAAe7rB,MAAiB,GACpEL,mBAAoBksB,EAAeI,mBACnCC,qBAAsBL,EAAeM,0BAI1CP,GAGLQ,EAAmB,SAACC,GACtB,OAAOA,EACFrtB,QAAO,SAAAstB,GAAc,OAAInqB,SAASmqB,EAAetsB,MAAiB,GAAK,KACvEC,KAAI,SAAAqsB,GAKD,MAJwC,CACpCzpB,kBAAmBV,SAASmqB,EAAetsB,MAAiB,GAC5DusB,eAAgB,CAAEC,iBAAkBF,EAAetC,WAM7DyC,EAAwB,SAACC,EAAkDC,GAC7E,IAAMC,EAASD,EAAQhmB,MAAK,SAAAkmB,GAAG,OAAIA,EAAI7C,OAASyB,KAC1CqB,EAAoBF,EAAUA,EAAO5sB,MAAiBtD,MAAM,KAAO,GACnEqwB,EAAaL,EAAyBA,EAAuBzsB,KAAI,SAAA4sB,GACnE,OAAOA,EAAInpB,iBAAmBmpB,EAAInpB,iBAAiB+D,gBAAa8J,KAC/D,GAEL,OADgBub,EAAQ9tB,QAAO,SAAAglB,GAAI,OAAkC,IAA9B+I,EAAWnwB,SAASonB,MAC5CrnB,OAAS,EAClB+vB,EACA,CAAC,CAAEhpB,iBAAkB,EAAGspB,cAAe,CAAEC,OAAQ,EAAGC,aAAc,CAAEA,aAAczB,OAGtF0B,EAAgB,SAAC3S,GAAmC,IAC9C4S,EAA0B5S,EAA1B4S,aAAcrrB,EAAYyY,EAAZzY,QAEhBsrB,EAAcD,EAAa,GAEjCC,EAAYC,yBAA2BF,EAAa,GAAGE,yBACvDD,EAAYE,wBAA0BH,EAAa,GAAGG,wBACtDF,EAAYG,mBAAqBJ,EAAa,GAAGI,mBAEjD,IAAM7B,EAAiB0B,EAAYzB,6BACnCyB,EAAYI,gBAAkB/B,EAAYC,EAAgB5pB,EAAQlB,UAClE,IAAM6sB,EAAyBL,EAAYM,0BAS3C,OARAN,EAAYvsB,iBAAmBkrB,EAAoB0B,EAAwB3rB,EAAQ6rB,qBAEnFP,EAAYE,wBAA0Bd,EAAsBY,EAAYE,wBAAyBxrB,EAAQ4qB,SAGrGU,EAAYC,0BAA4BD,EAAYC,yBAAyBtuB,QAAO,SAAC0B,GAAiC,OAAoC,IAA/BA,EAASmC,qBAAyBlG,OAAS,IACtK0wB,EAAYC,yBAA2BlB,EAAiBrqB,EAAQsqB,aAE7DgB,GAGLQ,EAAc,SAACrT,GAAmC,IAC5C4S,EAA0B5S,EAA1B4S,aAAcrrB,EAAYyY,EAAZzY,QAChBsrB,EAAcD,EAAa,GAC3BU,EAAqBV,EAAa,GAClCW,EAAkBX,EAAa,GAC/BY,EAAsBX,GAAeA,EAAYY,eAAiBZ,EAAYY,eAAetxB,OAAS,EACtGuxB,EAA2BJ,GAAsBA,EAAmBG,eAAiBH,EAAmBG,eAAetxB,OAAS,EACtI,GAAIqxB,GAAuBE,EACvB,IADkD,IAADC,EAAA,SACxC3pB,GACL,IAAM3C,EACFisB,EAAmBG,gBACnBH,EAAmBG,eAAetnB,MAAK,SAAAqd,GAAI,OAAIqJ,EAAYY,gBAAkBjK,EAAKvS,KAAO4b,EAAYY,eAAezpB,GAAGiN,MAC3H,GAAI5P,GAAWwrB,EAAYY,eAAgB,CACvCZ,EAAYY,eAAezpB,GAAG8oB,yBAA2BzrB,EAAQyrB,yBACjED,EAAYY,eAAezpB,GAAGgpB,mBAAqB3rB,EAAQ2rB,mBAC3DH,EAAYY,eAAezpB,GAAG+oB,wBAA0Bd,EAAsB5qB,EAAQ0rB,wBAAyBxrB,EAAQ4qB,SAEvH,IAAMhB,EAAiB0B,EAAYY,eAAezpB,GAAGonB,6BACrDyB,EAAYY,eAAezpB,GAAGipB,gBAAkB/B,EAAYC,EAAgB5pB,EAAQlB,UACpF,IAAM6sB,EAAyBL,EAAYY,eAAezpB,GAAGmpB,0BAC7DN,EAAYY,eAAezpB,GAAG1D,iBAAmBkrB,EAAoB0B,EAAwB3rB,EAAQ6rB,qBAGjGP,EAAYY,eAAezpB,GAAG8oB,yBAAyBtuB,QACnD,SAAC0B,GAAiC,OAAoC,IAA/BA,EAASmC,qBAClDlG,OAAS,IAEX0wB,EAAYY,eAAezpB,GAAG8oB,yBAA2BlB,EAAiBrqB,EAAQsqB,eAnBrF7nB,EAAI,EAAGA,EAAIwpB,EAAqBxpB,IAAK2pB,EAArC3pB,GAyBb,OADA6oB,EAAYe,sBAAwBL,EAAgBK,sBAC7Cf,GAKL1C,EAAU,WAAkH,IAAjH3J,EAAyBhS,UAAArS,OAAA,QAAA4U,IAAAvC,UAAA,GAAAA,UAAA,GAAGuc,EAAqB8C,EAA0Drf,UAAArS,OAAA,EAAAqS,UAAA,QAAAuC,EAClH+c,EAASD,EACf,OAAQC,EAAO9a,MACX,KAAK+a,IACD,IAAMC,EAAYF,EAClB,OAAOjiB,IAAO2U,EAAO,CAAEtS,IAAK,CAAE8L,SAAU,CAAE0Q,KAAMsD,EAAUhU,UAAYxO,KAAM,CAAEkf,KAAMsD,EAAUxiB,SAElG,KAAKyiB,IACD,IAAMD,EAAYF,EAClB,OAAOjiB,IAAO2U,EAAO,CAAEhW,WAAY,CAAEwP,SAAU,CAAE0Q,KAAMsD,EAAUhU,UAAYxO,KAAM,CAAEkf,KAAMsD,EAAUxiB,SAEzG,KAAK0iB,IACD,IAAMF,EAAYF,EACdK,EAAqBH,EAAU/c,GACnC,QAA+BF,IAA3Bid,EAAUpB,cAA8BoB,EAAUpB,aAAazwB,OAAS,EAAG,CAAC,IAIxEiyB,EAHIxB,EAAiBoB,EAAjBpB,aAEFC,EAAcD,EAAa,GAWjC,OARIC,EAAYra,UACZ4b,EAAsBf,EAAYW,GAClCG,GAAc,OAEdC,EAAsBzB,EAAcqB,GACpCG,GAAc,MAGXtiB,IAAO2U,EAAO,CAAEwK,KAAIqD,IAAA,GAAKF,EAAa,CAAEzD,KAAM,CAAE1Q,SAAQ/U,EAAA,GAAOmpB,EAAoB,CAACE,WAAY,IAAI1wB,YAE/G,OAAO4iB,EAEX,QACI,OAAOA,GAASuK,K,iJC7JtBwD,EAA6C,CAC/CvD,KAAM,GACN9c,IAAK,IAKHic,EAAU,WAAuH,IAAtH3J,EAA0BhS,UAAArS,OAAA,QAAA4U,IAAAvC,UAAA,GAAAA,UAAA,GAAG+f,EAAuBV,EAA4Drf,UAAArS,OAAA,EAAAqS,UAAA,QAAAuC,EACvH+c,EAASD,EACf,OAAQC,EAAO9a,MACX,KAAKwb,IACD,IAAMR,EAAYF,EAElB,OADAzd,QAAQmR,IAAI,mCAAoChB,EAAOwN,EAAUhb,KAAMgb,EAAUhU,UAC1EnO,IAAO2U,EAAO,CAAEtS,IAAK,CAAE8L,SAAU,CAAE0Q,KAAMsD,EAAUhU,SAASxa,OAASgM,KAAM,CAAEkf,KAAMsD,EAAUxiB,SAExG,KAAKijB,IACD,IAAMT,EAAYF,EAElB,OADAzd,QAAQqe,MAAM,+BAAgClO,EAAOwN,EAAUhb,KAAMgb,EAAUhU,UACxEnO,IAAO2U,EAAO,CAAEwK,KAAIqD,IAAA,GAAKL,EAAU/c,GAAK,CAAEyZ,KAAM,CAAE1Q,SAAUgU,EAAUhU,cAEjF,QACI,OAAOwG,GAAS+N,K,iJCrBtBI,EAA+C,CACjD3D,KAAM,GACN9c,IAAK,IAKHic,EAAU,WAA2H,IAA1H3J,EAA2BhS,UAAArS,OAAA,QAAA4U,IAAAvC,UAAA,GAAAA,UAAA,GAAGmgB,EAAwBd,EAA8Drf,UAAArS,OAAA,EAAAqS,UAAA,QAAAuC,EAC3H+c,EAASD,EACf,OAAQC,EAAO9a,MACX,KAAK4b,IACD,IAAMZ,EAAYF,EAClB,OAAOjiB,IAAO2U,EAAO,CAAEtS,IAAK,CAAE8L,SAAU,CAAE0Q,KAAMsD,EAAUhU,UAAYxO,KAAM,CAAEkf,KAAMsD,EAAUxiB,SAElG,KAAKqjB,IACD,IAAMb,EAAYF,EAElB,OAAOjiB,IAAO2U,EAAO,CAAEwK,KAAIqD,IAAA,GAAKL,EAAU/c,GAAK,CAAEyZ,KAAM,CAAE1Q,SAAUgU,EAAUhU,cAEjF,QACI,OAAOwG,GAASmO,K,kvBClB5B,IAAMG,EAAgBxxB,YAAQ,yBACxByxB,EAAiBzxB,YAAQ,uCACzB0xB,EAAgB1xB,YAAQ,sCACxB2xB,EAAiB3xB,YAAQ,uCACzB4xB,EAAiB5xB,YAAQ,uCACzB6xB,EAAiB7xB,YAAQ,uCAEzB8xB,EAAwC,CAC1CC,WAAY,GACZC,mBAAoB,GACpBjvB,SAAU,GACVD,QAAS,GACTyrB,WAAY,GACZ5rB,YAAa,GACbksB,QAAS,GACT1Y,UAAW,GACXC,OAAQ,GACR6b,iBAAkB,GAClBC,oBAAqB,GACrBlvB,iBAAkB,GAClB8sB,oBAAqB,GACrB5hB,KAAM,GACNqI,QAAS,GACT4b,kBAAmB,GACnB1b,mBAAoB,GACpB2b,WAAY,GACZC,SAAU,IAKRxF,EAAU,WAAyF,IAAxF3J,EAAuBhS,UAAArS,OAAA,QAAA4U,IAAAvC,UAAA,GAAAA,UAAA,GAAG4gB,EAAqBvB,EAAmCrf,UAAArS,OAAA,EAAAqS,UAAA,QAAAuC,EACzF+c,EAASD,EACf,OAAQC,EAAO9a,MACX,KAAK4c,IACD,IAAM5B,EAAYF,EAClB,QAA2B/c,IAAvBid,EAAUhU,SAAwB,CAClC,IAAM6V,EAAgB,SAACC,GAYnB,OAXyBA,EAAiBrwB,KAAI,SAAC+jB,GAI3C,MAH8B,QAA1BA,EAAKwI,mBACLxI,EAAKwI,iBAAmB8C,GAErB,CACHtF,KAAMhG,EAAKwI,iBACX/a,GAAG,YAADxT,OAAcsyB,YAAQvM,EAAKwI,mBAC7BxsB,MAAOgkB,EAAKnhB,kBACZ2tB,SAAS,OAMfC,EAAc,SAACC,GAWjB,OAVuBA,EAClB1xB,QAAO,SAAAglB,GAAI,MAAI,CAAC,GAAI,GAAI,GAAI,IAAIpnB,SAASonB,EAAKrhB,8BAC9C1C,KAAI,SAAC+jB,GACF,MAAO,CACHgG,KAAMhG,EAAK+H,uBACXta,GAAIuS,EAAKrhB,0BACT3C,MAAOgkB,EAAKrhB,0BACZ6tB,SAAS,OAMnBG,EAAqB,SAACC,GAYxB,OAXyBA,EACpB5xB,QAAO,SAAAC,GAAC,OAAIA,EAAE4xB,wBACdnN,MAAK,SAACzkB,EAAG6xB,GAAC,OAAM7xB,EAAE8xB,eAAiBD,EAAEC,eAAiB,GAAK,KAC3D9wB,KAAI,SAAC+jB,GACF,MAAO,CACHgG,KAAMhG,EAAKgN,qBACXvf,GAAG,YAADxT,OAAcsyB,YAAQvM,EAAKgN,uBAC7BhxB,MAAOgkB,EAAKlhB,wBACZ0tB,SAAS,OAMnBS,EAAgB,SAACL,GAYnB,OAXyBA,EACpB5xB,QAAO,SAAAC,GAAC,OAAIA,EAAEiyB,8BACdxN,MAAK,SAACzkB,EAAG6xB,GAAC,OAAM7xB,EAAEkyB,UAAYL,EAAEK,UAAY,GAAK,KACjDlxB,KAAI,SAAC+jB,GACF,MAAO,CACHgG,KAAMhG,EAAKgN,qBACXvf,GAAG,YAADxT,OAAcsyB,YAAQvM,EAAKgN,uBAC7BhxB,MAAOgkB,EAAKlhB,wBACZ0tB,SAAS,OAMnBY,EAAwB,SAACR,GAY3B,OAX4BA,EACvB5xB,QAAO,SAAAC,GAAC,OAAIA,EAAEoyB,2BACd3N,MAAK,SAACzkB,EAAG6xB,GAAC,OAAM7xB,EAAEkyB,UAAYL,EAAEK,UAAY,GAAK,KACjDlxB,KAAI,SAAC+jB,GACF,MAAO,CACHgG,KAAMhG,EAAKgN,qBACXvf,GAAG,YAADxT,OAAcsyB,YAAQvM,EAAKgN,uBAC7BhxB,MAAOgkB,EAAKlhB,wBACZ0tB,SAAS,OAMnBc,EAAa,SAACC,GAChB,IAAM9F,EAAc3tB,YAAQ,gEACtB0zB,EAAwB,GAExBC,EAAgBF,EAAetxB,KAAI,SAAC+jB,GAEtC,OADAwN,EAAYpvB,KAAK4hB,EAAKtgB,kBACf,CACHsmB,KAAMhG,EAAKkJ,aAAaA,aACxBzb,GAAG,UAADxT,OAAYsyB,YAAQvM,EAAKkJ,aAAaA,eACxCltB,MAAOgkB,EAAKtgB,iBACZ8sB,SAAS,MAYjB,MAAM,CARe,CACjBxG,KAAMyB,EACNha,GAAG,UAADxT,OAAYsyB,YAAQ9E,IACtBzrB,MAAM,GAAD/B,OAAKuzB,GACVhB,SAAS,IAIOvyB,OAAA6H,IAAKyd,YAAQkO,EAAe,WAG9CC,EAAa,WA+Bf,MA9BuB,CACnB,CACI1H,KAAMuF,EACNvvB,MAAM,IAAD/B,OAAM0zB,YAAiB,GAAE,WAElC,CACI3H,KAAMwF,EACNxvB,MAAM,SAAD/B,OAAW0zB,YAAiB,GAAE,MAEvC,CACI3H,KAAMyF,EACNzvB,MAAM,SAAD/B,OAAW0zB,YAAiB,IAAG,MAExC,CACI3H,KAAM0F,EACN1vB,MAAM,SAAD/B,OAAW0zB,YAAiB,IAAG,MAExC,CACI3H,KAAM2F,EACN3vB,MAAM,SAAD/B,OAAW0zB,YAAiB,IAAG,OAGP1xB,KAAI,SAAC+jB,GACtC,MAAO,CACHgG,KAAMhG,EAAKgG,KACXvY,GAAG,WAADxT,OAAasyB,YAAQvM,EAAKhkB,QAC5BA,MAAOgkB,EAAKhkB,MACZwwB,SAAS,OAMfoB,EAAiB,WACnB,IAAMC,EAAmB/zB,YAAQ,iDAEjC,MAAO,CACH,CACIksB,KAAM6H,EACNpgB,GAAI8e,YAAQsB,GACZ7xB,MAAO,IACPwwB,SAAS,KAKfsB,EAAc,WAChB,IAAMC,EAAej0B,YAAQ,8CAE7B,MAAO,CACH,CACIksB,KAAM+H,EACNtgB,GAAI8e,YAAQwB,GACZ/xB,MAAO,IACPwwB,SAAS,KAKfwB,EAAe,SAACpB,GAClB,OAAOA,GAGLqB,EAAY,SAACrB,GACf,OAAOA,GAGLsB,EAAsC,SAACryB,GACzC,OAAOA,GAGLsyB,EAAsB,SAACtyB,GACzB,IAAMuyB,EAAmC,GAczC,OAbAvyB,EAAMoC,SAAQ,SAAC+hB,GACX,GAAI,CAAC,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,KAAKpnB,SAASonB,EAAKrhB,4BAA8BqhB,EAAKrhB,0BAA4B,EAAG,CAC9H,IAAM0vB,EAAW,CACb5gB,GAAIuS,EAAKrhB,0BACTqnB,KAAMhG,EAAK+H,uBACX/rB,MAAOgkB,EAAKrhB,0BAA0B8E,WACtC+oB,SAAS,EACTvE,mBAAoBjI,EAAKrkB,mBACzBwsB,qBAAsBnI,EAAKkI,sBAE/BkG,EAAahwB,KAAKiwB,OAGnBD,GAGLE,EAAyB,SAACzyB,GAC5B,IAAMuyB,EAAmC,GAczC,OAbAvyB,EAAMoC,SAAQ,SAAC+hB,GACX,GAAIA,EAAKrhB,0BAA4B,EAAG,CACpC,IAAM0vB,EAAW,CACb5gB,GAAIuS,EAAKrhB,0BACTqnB,KAAMhG,EAAK+H,uBACX/rB,MAAOgkB,EAAKrhB,0BAA0B8E,WACtC+oB,SAAS,EACTvE,mBAAoBjI,EAAKrkB,mBACzBwsB,qBAAsBnI,EAAKkI,sBAE/BkG,EAAahwB,KAAKiwB,OAGnBD,GAGLG,EAAoB,SAAC1yB,GACvB,IAAM2yB,EAAgC,GACtC3yB,EAAMoC,SAAQ,SAAC+hB,GACX,GAA0B,YAAtBA,EAAKyO,aAA4B,CACjC,IAAM1xB,EAAS,CACX0Q,GAAIuS,EAAK0O,qBACT1I,KAAMhG,EAAKhhB,kBACXhD,MAAOgkB,EAAKhhB,kBAAkByE,WAC9B+oB,SAAS,GAEbgC,EAAYpwB,KAAKrB,OAGzB,IAAM4xB,EAAkBH,EAAYxzB,QAAO,SAACC,EAAGuF,EAAGtE,GAAC,OAAKA,EAAEf,QAAQF,KAAOuF,KAGzE,OADuBsB,IAAO,IAAIuF,IAAIsnB,EAAgB1yB,KAAI,SAAA+jB,GAAI,MAAI,CAACA,EAAQ,KAAGA,OAAQ4O,WAIpFC,EAAqB,SAAChzB,GACxB,IAAM2yB,EAAgC,GACtC3yB,EAAMoC,SAAQ,SAAC+hB,GACX,GAA0B,aAAtBA,EAAKyO,aAA6B,CAClC,IAAM1xB,EAAS,CACX0Q,GAAIuS,EAAK0O,qBACT1I,KAAMhG,EAAKhhB,kBACXhD,MAAOgkB,EAAKhhB,kBAAkByE,WAC9B+oB,SAAS,GAEbgC,EAAYpwB,KAAKrB,OAGzB,IAAM4xB,EAAkBH,EAAYxzB,QAAO,SAACC,EAAGuF,EAAGtE,GAAC,OAAKA,EAAEf,QAAQF,KAAOuF,KAGzE,OADuBsB,IAAO,IAAIuF,IAAIsnB,EAAgB1yB,KAAI,SAAA+jB,GAAI,MAAI,CAACA,EAAQ,KAAGA,OAAQ4O,WAGpFE,EAA0B,SAACjzB,GAC7B,OAAOA,GAELkzB,EAA6B,SAAClzB,GAChC,OAAOA,GAGLmzB,EAAgB,SAACpC,GAWnB,OAVyBA,EACpBlN,MAAK,SAACzkB,EAAG6xB,GAAC,OAAM7xB,EAAEg0B,qBAAuBnC,EAAEmC,qBAAuB,GAAK,KACvEhzB,KAAI,SAAC+jB,GACF,MAAO,CACHgG,KAAMhG,EAAKiP,qBACXxhB,GAAG,aAADxT,OAAesyB,YAAQvM,EAAK/gB,0BAC9BjD,MAAOgkB,EAAK/gB,wBACZutB,SAAS,OAMnB0C,EAAc,SAACC,GAWjB,OAVuBA,EAClBzP,MAAK,SAACzkB,EAAG6xB,GAAC,OAAM7xB,EAAEm0B,uBAAyBtC,EAAEsC,uBAAyB,GAAK,KAC3EnzB,KAAI,SAAC+jB,GACF,MAAO,CACHgG,KAAMhG,EAAKoP,uBACX3hB,GAAG,WAADxT,OAAasyB,YAAQvM,EAAKqP,wBAC5BrzB,MAAOgkB,EAAKqP,sBACZ7C,SAAS,OAMnBzuB,EAA4B,CAC9BsqB,WAAYgE,EAAc7B,EAAUhU,SAAS,IAC7C3Z,SAAU4vB,EAAYjC,EAAUhU,SAAS,IACzCqV,WAAYoB,EAAczC,EAAUhU,SAAS,IAC7CmS,QAAS2E,EAAW9C,EAAUhU,SAAS,IACvC5Z,QAAS8wB,IACTzd,UAAW+d,EAAaxD,EAAUhU,SAAS,IAC3CtG,OAAQ+d,EAAUzD,EAAUhU,SAAS,IACrCuV,iBAAkBmC,EAAoC1D,EAAUhU,SAAS,IACzEwV,oBAAqBkC,EAAoC1D,EAAUhU,SAAS,IAC5E/Z,YAAamxB,IACb0B,SAAUxB,IACVhxB,iBAAkBqxB,EAAoB3D,EAAUhU,SAAS,IACzDoT,oBAAqB0E,EAAuB9D,EAAUhU,SAAS,IAC/D+Y,gBAAiB5C,EAAmBnC,EAAUhU,SAAS,IACvDsV,mBAAoBsB,EAAsB5C,EAAUhU,SAAS,IAC7DnG,QAASke,EAAkB/D,EAAUhU,SAAS,IAC9CgZ,gBAAiBX,EAAmBrE,EAAUhU,SAAS,IACvDyV,kBAAmB6C,EAAwBtE,EAAUhU,SAAS,IAC9DjG,mBAAoBwe,EAA2BvE,EAAUhU,SAAS,KAClE0V,WAAY8C,EAAcxE,EAAUhU,SAAS,KAC7C2V,SAAU+C,EAAY1E,EAAUhU,SAAS,MAG7C,OAAOnO,IAAO2U,EAAO,CAAEkK,KAAIzlB,EAAA,GAAO1D,EAAQ,CAACiK,KAAMwiB,EAAUxiB,SAE/D,OAAOgV,EAEX,QACI,OAAOA,GAAS4O,K,6JC1VtB6D,EAAqC,CACvCC,OAAQ,GACRC,cAAe,IAGbhJ,EAAUC,kCAAwB6I,GAExC9I,EAAO,KAAMiJ,KAAU,SAAC5S,EAAOpT,GAC3B,IAAM5B,GAAO,IAAI5N,MAAOy1B,cACxB,OAAOxnB,IAAO2U,EAAO,CAAE0S,OAAM7E,IAAA,GAAK7iB,EAAO,CAAEkf,KAAMtd,EAAMsc,QAAWyJ,cAAe,CAAEzI,KAAMlf,S,iCCb7F,wGAIM6c,EAAU5sB,cAEV63B,EAAuC,CACzC/c,cAAe,CACX3H,KAAM,GACNpD,UAAMuF,GAEVwD,KAAM,CACFgf,QAAS,GACT/nB,UAAMuF,GAEVyiB,aAAc,CACV5kB,KAAM,GACNpD,UAAMuF,GAEV0iB,cAAe,CACXC,UAAW,GACXC,UAAW,GACXC,YAAa,GACbC,QAAS,GACTC,WAAY,IAEhBxsB,MAAO,CACHysB,WAAW,EACXC,wBAAyB3L,EAAQZ,sBACjCwM,kBAAmB5L,EAAQX,4BAC3BwM,mBAAoB7L,EAAQV,4BAC5BwM,qBAAsB9L,EAAQR,yBAC9BuM,qBAAsB/L,EAAQT,yBAC9ByM,gBAAgB,GAEpB5d,OAAQ,CACJ7H,KAAM,CACF0lB,SAAU,CAAEC,UAAW,IACvBC,QAAS,CAAED,UAAW,KAE1B/oB,UAAMuF,GAGVgL,mBAAoB,CAChBnN,KAAM,CACF6lB,UAAW,IAEfjpB,UAAMuF,IAMRoZ,EAAU,WAKmC,IALlC3J,EAAuBhS,UAAArS,OAAA,QAAA4U,IAAAvC,UAAA,GAAAA,UAAA,GAAG8kB,EACvCzF,EAIyCrf,UAAArS,OAAA,EAAAqS,UAAA,QAAAuC,EACnC+c,EAASD,EACf,OAAQC,EAAO9a,MACX,KAAK0hB,IACD,IAAM1G,EAAYF,EAClB,OAAOjiB,IAAO2U,EAAO,CAAEjK,cAAe,CAAE3H,KAAM,CAAE8b,KAAMsD,EAAUzX,eAAiB/K,KAAM,CAAEkf,KAAMsD,EAAUxiB,SAE7G,KAAKmpB,IACD,IAAM3G,EAAYF,EAClB,OAAOjiB,IAAO2U,EAAO,CAAEjM,KAAM,CAAEgf,QAAS,CAAE7I,KAAMsD,EAAUzZ,MAAQ/I,KAAM,CAAEkf,KAAMsD,EAAUxiB,SAE9F,KAAKopB,IACD,IAAM5G,EAAYF,EAClB,OAAOjiB,IAAO2U,EAAO,CAAEgT,aAAc,CAAE5kB,KAAM,CAAE8b,KAAMsD,EAAU6G,OAASrpB,KAAM,CAAEkf,KAAMsD,EAAUxiB,SAEpG,KAAKspB,IACD,IAAM9G,EAAYF,EAClB,OAAOjiB,IAAO2U,EAAO,CAAEiT,cAAe,CAAE/I,KAAMsD,EAAUyF,iBAE5D,KAAKsB,IACD,IAAM/G,EAAYF,EAClB,OAAOjiB,IAAO2U,EAAO,CAAElZ,MAAO,CAAE0tB,OAAQhH,EAAU1mB,SAEtD,KAAK2tB,IACD,IAAMjH,EAAYF,EAClB,OAAOjiB,IAAO2U,EAAO,CAAE/J,OAAQ,CAAE7H,KAAM,CAAE8b,KAAMsD,EAAUvX,QAAUjL,KAAM,CAAEkf,KAAMsD,EAAUxiB,SAE/F,KAAK0pB,IACD,IAAMlH,EAAYF,EAClB,OAAOjiB,IAAO2U,EAAO,CAAEzE,mBAAoB,CAAEnN,KAAM,CAAE8b,KAAMsD,EAAUjS,oBAAsBvQ,KAAM,CAAEkf,KAAMsD,EAAUxiB,SAEvH,QACI,OAAOgV,GAAS8S,K,iCC1F5B,gGAGM6B,EAAmD,CACrDC,UAAW,CACPxmB,UAAMmC,EACNvF,UAAMuF,GAEVskB,WAAOtkB,GAGLoZ,EAAU,WAAqI,IAApI3J,EAA6BhS,UAAArS,OAAA,QAAA4U,IAAAvC,UAAA,GAAAA,UAAA,GAAG2mB,EAA0BtH,EAAoErf,UAAArS,OAAA,EAAAqS,UAAA,QAAAuC,EACrI+c,EAASD,EACf,OAAQC,EAAO9a,MACX,KAAKsiB,IACD,IAAMtH,EAAYF,EAClB,OAAOjiB,IAAO2U,EAAO,CAAE4U,UAAW,CAAExmB,KAAM,CAAE8b,KAAMsD,EAAUoH,WAAa5pB,KAAM,CAAEkf,KAAMsD,EAAUxiB,SAErG,KAAK+pB,IACD,IAAMvH,EAAYF,EAClB,OAAOjiB,IAAO2U,EAAO,CAAE6U,MAAO,CAAE3K,KAAMsD,EAAUqH,OAAS7pB,KAAM,CAAEkf,KAAMsD,EAAUxiB,QAErF,QACI,OAAOgV,GAAS2U,K,iJCpBtBK,EAAmD,CACrDxK,KAAM,GACN9c,IAAK,GACLunB,eAAgB,IAKdtL,EAAU,WAAoL,IAAnL3J,EAA6BhS,UAAArS,OAAA,QAAA4U,IAAAvC,UAAA,GAAAA,UAAA,GAAGgnB,EAA0B3H,EAAmHrf,UAAArS,OAAA,EAAAqS,UAAA,QAAAuC,EACpL+c,EAASD,EACf,OAAQC,EAAO9a,MACX,KAAK0iB,IACD,IAAM1H,EAAYF,EAIlB,OAHKtN,EAAMwK,OACPxK,EAAMwK,KAAO,IAEVnf,IAAO2U,EAAO,CAAEwK,KAAIqD,IAAA,GAAKL,EAAU/c,GAAK,CAAEyZ,KAAM,CAAE1Q,SAAUgU,EAAUhU,cAEjF,KAAK2b,IACD,IAAM3H,EAAYF,EAIlB,OAHKtN,EAAMiV,iBACPjV,EAAMiV,eAAiB,IAEpB5pB,IAAO2U,EAAO,CAAEiV,eAAcpH,IAAA,GAAKL,EAAU/c,GAAK,CAAEyZ,KAAM,CAAE1Q,SAAUgU,EAAUhU,cAE3F,QACI,OAAOwG,GAASgV,K,iCC7B5B,YAEe,aAAChM,EAAcvY,GAC1B,MAAM,GAANxT,OAAUsyB,YAAQvG,GAAK,MAAA/rB,OAAKwT,EAAGhK,WAAU,O,8GC+D9BvB,aAAWA,cA9D1B,SAAeob,EAeX/B,GACD,IAdKlZ,EAAKib,EAALjb,MACAV,EAAI2b,EAAJ3b,KAAIywB,EAAA9U,EACJ+U,aAAK,IAAAD,EAAG,YAAWA,EACnBE,EAAWhV,EAAXgV,YACA7V,EAAWa,EAAXb,YACA8V,EAAOjV,EAAPiV,QACA3Y,EAAS0D,EAAT1D,UACA4B,EAAO8B,EAAP9B,QAAOgX,EAAAlV,EACP9N,YAAI,IAAAgjB,EAAG,SAAQA,EACf1W,EAAUwB,EAAVxB,WAAU2W,EAAAnV,EACVoV,aAAK,IAAAD,EAAG,GAAEA,EAAAE,EAAArV,EACVsV,gBAAQ,IAAAD,EAAG,GAAEA,EAIX5Y,EAAcliB,YAAG,SAAU+hB,EAASiR,IAAA,CACtC,oBAAqBpO,EACrB,oBAAqB6V,EACrB,iBAAkBjwB,GAAK,WAAApI,OACXo4B,GAAUA,IAGpBQ,EAAgBjZ,GAAY,SAE5BkZ,EACF5wB,2BAAA,KACKP,EACA4wB,GAAWrwB,gBAAC6wB,IAAc,CAACnZ,UAAU,kBAG9C,MAAa,WAATpK,EAEItN,gBAAA,UAAQsN,KAAK,SAASwjB,SAAUlX,EAAYlC,UAAWG,EAAayB,QAASA,EAASD,IAAKA,EAAKE,cAAaoX,EAAcI,cAAaP,EAAOQ,iBAAgBN,GAC1JvwB,GACGH,2BAAA,KACIA,gBAAA,QAAM0X,UAAU,iBAAiBvX,GACjCH,gBAAA,YAAO4wB,KAGbzwB,GAASywB,GASnB5wB,gBAAA,UAAQsN,KAAK,SAASwjB,SAAUlX,EAAYlC,UAAWG,EAAayB,QALpD,SAACmC,GACbnC,GAASA,EAAQmC,IAIqEpC,IAAKA,EAAKE,cAAaoX,EAAcI,cAAaP,EAAOQ,iBAAgBN,GAC9JvwB,GACGH,2BAAA,KACIA,gBAAA,QAAM0X,UAAU,iBAAiBvX,GACjCH,gBAAA,YAAO4wB,KAGbzwB,GAASywB,Q,iCC7DvB,6DAIe,SAASrmB,EAAS0mB,GAAgD,IAA/BC,EAAwBpoB,UAAArS,OAAA,QAAA4U,IAAAvC,UAAA,GAAAA,UAAA,GAAG,EAE/Dwb,EAAaxsB,YAAImkB,IAAMkV,WAAY,mBAAmB,GACxD7M,GACA8M,IAAW7mB,SAAS,CAChB0mB,UACAI,YAAah7B,OAAOC,SAASC,SAAWF,OAAOC,SAASsU,OACxDsmB,yBAA0BA,EAAyB3vB,e,iCCPpD,aAACD,EAAqBgwB,GACjC,IAAMjlB,EAAYilB,EAAQ,IAAIp5B,KAAKoJ,GAAQ,IAAIpJ,KACzCoP,EAAagqB,EAAQ,IAAIp5B,KAAKo5B,GAAS,IAAIp5B,KAAKoJ,GAChDiwB,EAAellB,EAAI3I,UAAY4D,EAAK5D,UAC1C,OAAO+S,OAAO+a,MAAMD,GAAQ,EAAIA,I,ivBCEpC,IAQIE,EACAC,EATE57B,EAAeC,cAEf47B,EAAiBx4B,YAAU,sBAC3BmN,EAAgBnN,YAAU,2BAC1BoN,EAAOpN,YAAU,oBAEfy4B,EAA2ED,EAA3EC,4BAMFC,EAAqC7qB,IAAM8qB,OAAO,CACpD5qB,QAASpR,EAAaqR,QACtBE,QAASsqB,EAAeI,eACxB9zB,QAAS,CACL,eAAgB,sDASlBmR,EAAO,eAAAgM,EAAAC,IAAAC,IAAAC,MAAG,SAAAC,IAAA,IAAAwW,EAAAC,EAAAC,EAAAC,EAAArpB,UAAA,OAAAwS,IAAAI,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAIyB,GAJlBmW,IAAYG,EAAA17B,OAAA,QAAA4U,IAAA8mB,EAAA,KAAAA,EAAA,GAC/BC,aAAaV,GACbW,aAAaC,WAAWX,EAAe3lB,MAAMumB,mBAC7CF,aAAaC,WAAW,SACxBD,aAAaC,WAAW,cAEpBN,EAAqD,CAAArW,EAAAE,KAAA,SAepD,OAdDwW,aAAaG,QAAQ,eAAe,SAADz6B,OAAW0K,KAAKF,WAC7C0vB,EAAyBJ,EAAoBzqB,KAC/Cb,EAAK0rB,uBACLQ,IAAmBrgB,UAAU,CACzBsgB,QAAS,CAACr8B,OAAOC,SAASq8B,UAC1BC,cAAc,KAGhBV,EAAuBL,EAAoBzqB,KAC7Cb,EAAK2rB,qBACLO,IAAmBrgB,UAAU,CACzBygB,KAAM,IACNC,OAAQz8B,OAAOC,SAASq8B,YAE/BhX,EAAAE,KAAA,GACK7T,QAAQQ,IAAI,CAACypB,EAAwBC,IAAsB,OACtD,SAACxqB,GACJiD,QAAQjD,MAAM,gCAEhB,SACO,WACLuU,IAAMC,SAASkJ,kBAChB,KAAD,GAAAzJ,EAAAE,KAAA,iBAENI,IAAMC,SAASkJ,eAAoB,yBAAAzJ,EAAAY,UAAAf,OAE1C,kBAjCY,OAAAJ,EAAAvW,MAAA,KAAAiE,YAAA,GAoCPiqB,EAAiB,WACnB,IAAMC,EAAkBX,aAAaY,QAAQtB,EAAe3lB,MAAMumB,mBAClE,GAAuB,MAAnBS,EAGJ,OAAO7gB,KAAKtO,MAAMmvB,IA2BhBE,EAAmB,SAACte,GACtB,IAAMue,GAAU,IAAIj7B,MAAOwL,UAAqC,IAAzBkR,EAAYwe,WAAoB,IACvEf,aAAaG,QAAQb,EAAe3lB,MAAMumB,kBAAmBpgB,KAAKC,UAAS7S,EAAC,GAAKqV,EAAY,CAACwe,WAAYD,MA1BjF,WAEzBf,aAAaV,GAEb,IAAM9c,EAAcme,IACpB,GAAIne,EAAa,CACb,IAAMvN,EAAU5E,KAAK4wB,IAAIze,EAAYwe,YAAa,IAAIl7B,MAAOwL,UAAW,GACpE2D,IAEAqqB,EAAoB1Y,YAAW,WAG3BzQ,KAAO,kBAAM+qB,GAAa,KAAQhtB,GAAc,OAAO,SAACoB,GACpDI,IAAaC,SAASL,EAAO,CAAE2B,IAAK,0BACpCsB,QAAQjD,MAAM,mBAAoBA,GAClC0H,SAEL/H,KAUXksB,IAMED,EAAY,eAAArU,EAAA5D,IAAAC,IAAAC,MAAG,SAAAiY,IAAA,IAAAC,EAAAC,EAAA5qB,UAAA,OAAAwS,IAAAI,MAAA,SAAAiY,GAAA,cAAAA,EAAA/X,KAAA+X,EAAA9X,MAAA,OAA2B,OAApB4X,IAAaC,EAAAj9B,OAAA,QAAA4U,IAAAqoB,EAAA,KAAAA,EAAA,GAAOC,EAAAC,OAAA,SACrC,IAAI5rB,SAAQ,SAACwC,EAASvC,GACzB,IAAM4rB,EAAc,CAChBC,UAAWh+B,EAAa0qB,SACxBuT,cAAej+B,EAAa2qB,aAC5BuT,MAAM,GAADj8B,OAAK45B,EAAe3lB,MAAMioB,YAAUl8B,OAAG45B,EAAe3lB,MAAMkoB,YACjEC,WAAYxC,EAAeyC,WAAWxB,cAgB1C,GAb8CtpB,8CAAYwZ,yBAClDxZ,8CAAY+qB,sBAAwB/qB,8CAAYgrB,sBAChD7C,EAAgB,CACZ8C,SAAUjrB,8CAAY+qB,qBACtBG,SAAUlrB,8CAAYgrB,sBAE1BT,EAAYM,WAAaxC,EAAeyC,WAAWI,WAEnDX,EAAYC,UAAY,GACxBD,EAAYE,cAAgB,KAI9BF,EAAYC,WAAaD,EAAYE,cAEpC,CACH,IAAM51B,EACF01B,EAAYM,aAAexC,EAAeyC,WAAWxB,aAAYrzB,EAAA,GACtDs0B,EAAY,CAACY,cAAe3+B,EAAa4qB,eAAYnhB,EAAA,GACrDs0B,EAAY,GAAIpC,GAE/BI,EACKzqB,KAAkBb,EAAKyF,MAAOymB,IAAmBrgB,UAAUjU,IAC3DmJ,MAAK,SAAAgN,GACF4e,EAAiB5e,EAASpL,MAC1B+S,IAAMC,SAASyI,aAAkB,IACjCkN,EACKzqB,KACGb,EAAKmuB,gBACLviB,KAAKC,UAAU,CACXygB,KAAM,IACNC,OAAQz8B,OAAOC,SAASq8B,SAASgC,OAAOt+B,OAAOC,SAASq8B,SAAS15B,QAAQ,QAE7E,CACIgF,QAAS,CAAE8W,cAAc,UAADhd,OAAYuc,EAASpL,KAAK0rB,cAAgB,eAAgB,sBAEzF,OACM,SAACltB,GACJI,IAAaC,SAASL,EAAO,CAAE2B,IAAK,0BACpCsB,QAAQmR,IAAI,mBAAoBpU,MAGxCrR,OAAOw+B,iBAAiB,WAAW,SAAApZ,GACb,iBAAdA,EAAM5jB,KACNuX,GAAQ,MAGhB5E,EAAQ8J,EAASpL,SACnB,OACK,SAACxB,GACJ,IAAMC,EAAa,CACfwB,YAAa,kBACbC,WAAY7C,EAAKyF,MACjBtE,QACA2B,IAAK,yBAETvB,IAAaC,SAASL,EAAOC,GAC7BgD,QAAQmR,IAAI,mBAAoBpU,GAE5B+rB,EACArkB,IAAS,SAAS,kBAAMnH,OAExBA,EAAOP,WAhDnB0H,GAAQ,GAAO9H,MAAK,kBAAMkD,WAoDhC,wBAAAmpB,EAAApX,UAAAiX,OACL,kBA5EiB,OAAAvU,EAAApa,MAAA,KAAAiE,YAAA,GA4KZvB,EAAW,CACbC,2BA/F+B,SAACstB,GAChC,IAAIC,GAAyB,EAC7BD,EAASE,aAAavsB,QAAQwsB,KAAI,SAAClkB,GAC/B,OAAO,IAAI/I,SAAQ,SAAAwC,GACf,IAAM5E,EAAMmL,EAAOnL,KAAO,GAU1B,GANIA,EAAInP,QACJm7B,EAA4BsD,MAAK,SAAAC,GAE7B,OADc3vB,OAAO2vB,EAAU,KAClBjc,KAAKtT,MAItB4E,EAAQuG,QAGZ,GAAIgkB,EAEAxsB,KACI,WACI,OAAO,IAAIP,SAAQ,SAACotB,EAAgBC,GAC5BN,EACAM,EAAkB,IAAIC,MAAM1vB,IAE5BwvB,SAIZ,CACIG,QAAS,GACTC,WAAY,IACZC,WAAY,IACZC,OAAQ,KACRC,gBAAiB,WAnM3B,IAACC,IAoMmB,IAnMvB,IAAI5tB,SAAQ,SAAAwC,GAAO,OAAIwO,WAAWxO,EAASorB,SAuMjCtuB,MAAK,WAEF,IAAM0E,EAAQ+mB,IACV/mB,IACA+E,EAAO9S,QAAQ8W,cAAa,UAAAhd,OAAaiU,EAAM4oB,eAEnDpqB,EAAQuG,MACV,OACK,WAEHpG,QAAQkrB,KAAK,gCAAD99B,OAAiCgZ,EAAOnL,MACpD4E,EAAQuG,UAEb,CACH,IAAM/E,EAAQ+mB,IACd,GAAI/mB,GACyB,IAAI9T,MAAOwL,UAAY,IACzBsI,EAAMonB,YACzB2B,GAAyB,EAEzBxsB,KAAO,kBAAM+qB,GAAa,KAAQhtB,GAC7BgB,MAAK,SAAAgN,GAGEvD,EAAO9S,QAAQ8W,cAAa,UAAAhd,OAD5Buc,EACyCA,EAASsgB,aAET5oB,EAAM4oB,iBAErD,OACK,SAACltB,GAEJI,IAAaC,SAASL,EAAO,CAAE2B,IAAK,0BACpCsB,QAAQmR,IAAI,mBAAoBpU,GAEhC0H,OACF,SACO,WAEL2lB,GAAyB,EACzBvqB,EAAQuG,QAIhBA,EAAO9S,QAAQ8W,cAAa,UAAAhd,OAAaiU,EAAM4oB,cAC/CpqB,EAAQuG,SAGZvG,EAAQuG,WASxBuiB,eACAlkB,WAGW7H,a,iCClSf,yD,yPCiBMuuB,EAAWl+B,YAAQ,kBACnBm+B,EAAgB,aAChBhc,EAAS1jB,OACf0jB,EAAOC,UAAYD,EAAOC,WAAa,GAwNxBha,cAtNf,SAAkByX,GAAuB,IAUjCue,EACAC,EACAC,EACAC,EACAC,EAbIC,EAAY5e,EAAZ4e,QACFC,EAAmBn9B,YAAU,YAADpB,OAAas+B,EAAO,qBAAoBne,EACtClY,YAAwB,GAAMmY,EAAA7b,IAAA4b,EAAA,GAA3Dqe,EAAWpe,EAAA,GAAEqe,EAAYre,EAAA,GAAAG,EACCtY,YAAwB,GAAMuY,EAAAjc,IAAAgc,EAAA,GAAxDme,EAAUle,EAAA,GAAEme,EAAUne,EAAA,GAAAoe,EACS32B,YAAwB,GAAM42B,EAAAt6B,IAAAq6B,EAAA,GAA7DE,EAAYD,EAAA,GAAEE,EAAaF,EAAA,GAAAG,EACL/2B,YAAwB,GAAMg3B,EAAA16B,IAAAy6B,EAAA,GAApDE,EAAQD,EAAA,GAAEE,EAAQF,EAAA,GACjBtf,EAAwBD,EAAxBC,UAAWjY,EAAagY,EAAbhY,KAAM8L,EAAOkM,EAAPlM,GACjBpI,EAAa0X,aAAY,SAACC,GAAqB,OAAKhjB,YAAIgjB,EAAO,WAA/D3X,SAQQ,YAAZkzB,GACAL,EAAgBmB,IAAWC,YAC3BnB,EAA4BkB,IAAWE,0BACvCnB,EAAkBiB,IAAWG,gBAC7BnB,EAAkB,kBAClBC,EAAmBN,EAASyB,aAAa93B,MACtB,aAAZ42B,GACPL,EAAgBmB,IAAWK,aAC3BvB,EAA4BkB,IAAWM,2BACvCvB,EAAkBiB,IAAWO,iBAC7BvB,EAAkB,mBAClBC,EAAmBN,EAASyB,aAAaI,eAEzC3B,EAAgBmB,IAAWS,cAC3B3B,EAA4BkB,IAAWU,4BACvC3B,EAAkBiB,IAAWW,kBAC7B3B,EAAkB,oBAClBC,EAAmBN,EAASyB,aAAaQ,eAE7C,IAAM9G,EAAU+E,EACVgC,EAAgBnd,aAAY,SAACC,GAC/B,OAAOhjB,YAAIgjB,EAAO,2BAA4B,OAC/ChiB,QAAO,SAAAC,GAAC,OAAIA,EAAEk/B,gBAAkBhH,KAE/BiH,EAAyBC,YAAoB7B,EAAiB8B,gBAAiB,IAC/EC,EAAmBF,YAAoB7B,EAAiBgC,aAAc,IAEtEN,IACAE,EAAyBC,YAAoB7B,EAAiB8B,gBAAiBJ,GAC/EK,EAAmBF,YAAoB7B,EAAiBgC,aAAcN,IAG1E,IACMO,EAAoB,CACtBn1B,MAFUD,EAAWA,EAASC,MAAQ,GAGtCo1B,kBAAkB,GACpBC,EACiEC,YAAuB,CACtFC,cAAeJ,IADXK,GAAQH,EAARG,SAAUC,GAAQJ,EAARI,SAAUC,GAAKL,EAALK,MAAOtL,GAAMiL,EAANjL,OAAQuL,GAAYN,EAAZM,aAAcC,GAAKP,EAALO,MAGnDC,GAAaH,KAEbI,GAAqB,CACvBC,SAAUrD,EAASsD,cACnB9zB,QAAS,CACLxL,MAAOi8B,EACPrgB,QAASogB,EAASuD,aAOpBC,GAAmB,WACrBxC,GAAc,GACdI,GAAS,GACTnd,EAAOC,UAAU9d,KAAK,CAClBuf,MAAO,aACP8d,cAAe,QACfC,SAAU,YACVC,kBAAkB,sCAAD1hC,OAAwC0H,EAAI,OAAA1H,OAAMwT,MAgE3E,OAZAvL,aAAgB,WACZ44B,GACI,CACI9U,KAAM,SAEVoV,IAEJN,GAAS,CACL9U,KAAM,uBAEX,IAGC9jB,2BAAA,KACIA,gBAAC05B,IAAM,CACHj6B,KAAMq2B,EAAS6D,gBACfrgB,QAAS,kBAvBjBkd,GAAa,GACbE,GAAW,GACXI,GAAc,GACdkC,GAAMT,QACNhuB,YAAS2rB,IAoBD/F,MAAM,UACN5V,aAAW,EACX7C,UAAW/hB,YAAG,uBAAwB+hB,KAE1C1X,gBAAC45B,IAAK,CAACC,KAAMtD,EAAauD,QAAS,kBAAMtD,GAAa,IAAQuD,aAAc1jC,OAAO2jC,WAAa,KAAMC,YAAU,GAC5Gj6B,gBAACkjB,IAAa,CAACQ,UAAQ,GACnB1jB,gBAAA,OAAK0X,UAAU,cACT+e,GACEz2B,2BAAA,KACIA,gBAAA,OAAK0X,UAAU,qBACX1X,gBAAA,UAAKq4B,EAAiBl4B,OACtBH,gBAAA,KAAG0X,UAAU,oCAAoC2gB,EAAiB36B,UAEtEsC,gBAAA,QACIooB,OAAO,IACP8R,YAAU,EACVxiB,UAAU,qCACVyiB,SAAUpB,IAvEzB,SAACqB,GACdlD,GAAS,GACTJ,GAAc,GACd,IAAM/I,EAA+Bj2B,YAAImkB,IAAMkV,WAAY,uBAAwB,IAC7EkJ,EAAmC,CACrC9gC,MAAO6gC,EAASh3B,MAChBk3B,uBAAoC,YAAZjE,EAAwB52B,EAAO,GACvD86B,6BAA8BH,EAAS5B,iBACvCgC,uBAAoC,aAAZnE,EAAyB52B,EAAO,GACxDg7B,qBAAkC,cAAZpE,EAA0B52B,EAAO,GACvD42B,QAASF,EACTnI,UAAWD,EAAcC,UACzBC,UAAWF,EAAcE,UACzBC,YAAaH,EAAcG,YAC3BC,QAASJ,EAAcI,QACvBC,WAAYL,EAAcK,YAE9BgD,IAAW7d,oBAAoB8mB,GAC1B/yB,MAAK,SAAAgN,GACF,GAAIA,EAASpL,KAGT,OAhCZwtB,GAAW,GACX3c,EAAOC,UAAU9d,KAAK,CAClBuf,MAAO,aACP8d,cAAe,OACfC,SAAU,YACVC,kBAAkB,sCAAD1hC,OAAwC0H,EAAI,OAAA1H,OAAMwT,KAEvEhB,YAAS0rB,QAwBGa,GAAc,GAGlBwC,QACF,OACK,kBAAMA,WA8CW/f,cAAY,aAEZvZ,gBAAC06B,IAAc,CACXzX,aAAcgW,GAAW71B,MACzBu3B,YAAanN,GAAOpqB,MACpBw3B,YAAU,EACVC,MAAO/E,EAASv8B,MAAMkG,KACtBqkB,KAAMgS,EAASv8B,MAAMuqB,KACrBgX,SA1GX,SAAChX,EAA4ChqB,GAClE++B,GAAS/U,EAAMhqB,GAAO,IA0GUwT,KAAK,UAETtN,gBAAC05B,IAAM,CACHhiB,UAAU,oBACVkC,WAAYid,IAAiBI,EAC7B1c,aAAW,EACX9a,KAAOo3B,EAAuCf,EAASiF,eAAjCjF,EAASkF,aAC/B7K,MAAM,UACN7iB,KAAK,WAETtN,gBAAA,OAAK0X,UAAU,mBACX1X,gBAACi7B,IAAa,CACVJ,MAAOzE,EACPtS,KAAMgS,EAASyB,aAAazT,KAC5BgX,SAAU,SAAChhC,GACP++B,GAAS/C,EAASyB,aAAazT,KAAMhqB,OAIhDm9B,GAAYj3B,gBAAA,KAAG0X,UAAU,6BAA6Boe,EAASoF,mBAChEl7B,gBAACm7B,IAAW,CAACte,KAAMiZ,EAASsF,gBAIvC3E,GACGz2B,gBAACq7B,IAAK,CACFl7B,MAAO+3B,EAAuB/3B,MAC9BzC,QAASw6B,EAAuBx6B,QAChCsG,KAAM,CACFvE,KAAMy4B,EAAuB93B,SAAW83B,EAAuB93B,SAAW,GAC1EwF,IAAKsyB,EAAuB73B,QAAU63B,EAAuB73B,QAAU,IAE3Ei7B,KAAMt7B,gBAACu7B,IAAW,eClOlD,SAASrd,IAAiS,OAApRA,EAAWnB,OAAOC,OAASD,OAAOC,OAAOmB,OAAS,SAAUC,GAAU,IAAK,IAAI9f,EAAI,EAAGA,EAAIwK,UAAUrS,OAAQ6H,IAAK,CAAE,IAAI4M,EAASpC,UAAUxK,GAAI,IAAK,IAAIzG,KAAOqT,EAAc6R,OAAOsB,UAAUC,eAAeC,KAAKrT,EAAQrT,KAAQumB,EAAOvmB,GAAOqT,EAAOrT,IAAY,OAAOumB,IAA2BvZ,MAAM2Z,KAAM1V,WACtU,SAAS2V,EAAyBvT,EAAQwT,GAAY,GAAc,MAAVxT,EAAgB,MAAO,GAAI,IAAkErT,EAAKyG,EAAnE8f,EACzF,SAAuClT,EAAQwT,GAAY,GAAc,MAAVxT,EAAgB,MAAO,GAAI,IAA2DrT,EAAKyG,EAA5D8f,EAAS,GAAQO,EAAa5B,OAAO6B,KAAK1T,GAAqB,IAAK5M,EAAI,EAAGA,EAAIqgB,EAAWloB,OAAQ6H,IAAOzG,EAAM8mB,EAAWrgB,GAAQogB,EAASzlB,QAAQpB,IAAQ,IAAaumB,EAAOvmB,GAAOqT,EAAOrT,IAAQ,OAAOumB,EADxMS,CAA8B3T,EAAQwT,GAAuB,GAAI3B,OAAO+B,sBAAuB,CAAE,IAAIC,EAAmBhC,OAAO+B,sBAAsB5T,GAAS,IAAK5M,EAAI,EAAGA,EAAIygB,EAAiBtoB,OAAQ6H,IAAOzG,EAAMknB,EAAiBzgB,GAAQogB,EAASzlB,QAAQpB,IAAQ,GAAkBklB,OAAOsB,UAAUW,qBAAqBT,KAAKrT,EAAQrT,KAAgBumB,EAAOvmB,GAAOqT,EAAOrT,IAAU,OAAOumB,EAGne,IAAIa,EAAqB,IAAMlhB,cAAc,OAAQ,CACnDy9B,SAAU,UACVC,SAAU,UACVvc,EAAG,qMACHC,KAAM,iBAEJ,EAAW,SAAkB/D,GAC/B,IAAIiE,EAASjE,EAAKiE,OAChB5H,EAAQgH,EAAyBrD,EAAM,CAAC,WAC1C,OAAO,IAAMrd,cAAc,MAAOmgB,EAAS,CACzCoB,MAAO,GACPC,OAAQ,GACRC,QAAS,YACTL,KAAM,OACN9F,IAAKgG,GACJ5H,GAAQwH,IAETQ,EAAa,IAAMC,YAAW,SAAUjI,EAAO4B,GACjD,OAAO,IAAMtb,cAAc,EAAUmgB,EAAS,CAC5CmB,OAAQhG,GACP5B,OAEU,IC1Bf,SAAS,IAAiS,OAApR,EAAWsF,OAAOC,OAASD,OAAOC,OAAOmB,OAAS,SAAUC,GAAU,IAAK,IAAI9f,EAAI,EAAGA,EAAIwK,UAAUrS,OAAQ6H,IAAK,CAAE,IAAI4M,EAASpC,UAAUxK,GAAI,IAAK,IAAIzG,KAAOqT,EAAc6R,OAAOsB,UAAUC,eAAeC,KAAKrT,EAAQrT,KAAQumB,EAAOvmB,GAAOqT,EAAOrT,IAAY,OAAOumB,IAA2BvZ,MAAM2Z,KAAM1V,WACtU,SAAS,EAAyBoC,EAAQwT,GAAY,GAAc,MAAVxT,EAAgB,MAAO,GAAI,IAAkErT,EAAKyG,EAAnE8f,EACzF,SAAuClT,EAAQwT,GAAY,GAAc,MAAVxT,EAAgB,MAAO,GAAI,IAA2DrT,EAAKyG,EAA5D8f,EAAS,GAAQO,EAAa5B,OAAO6B,KAAK1T,GAAqB,IAAK5M,EAAI,EAAGA,EAAIqgB,EAAWloB,OAAQ6H,IAAOzG,EAAM8mB,EAAWrgB,GAAQogB,EAASzlB,QAAQpB,IAAQ,IAAaumB,EAAOvmB,GAAOqT,EAAOrT,IAAQ,OAAOumB,EADxM,CAA8BlT,EAAQwT,GAAuB,GAAI3B,OAAO+B,sBAAuB,CAAE,IAAIC,EAAmBhC,OAAO+B,sBAAsB5T,GAAS,IAAK5M,EAAI,EAAGA,EAAIygB,EAAiBtoB,OAAQ6H,IAAOzG,EAAMknB,EAAiBzgB,GAAQogB,EAASzlB,QAAQpB,IAAQ,GAAkBklB,OAAOsB,UAAUW,qBAAqBT,KAAKrT,EAAQrT,KAAgBumB,EAAOvmB,GAAOqT,EAAOrT,IAAU,OAAOumB,EAGne,IAAI,EAAqB,IAAMrgB,cAAc,OAAQ,CACnDmhB,EAAG,mTACHC,KAAM,iBAEJ,EAAa,SAAoB/D,GACnC,IAAIiE,EAASjE,EAAKiE,OAChB5H,EAAQ,EAAyB2D,EAAM,CAAC,WAC1C,OAAO,IAAMrd,cAAc,MAAO,EAAS,CACzCuhB,MAAO,GACPC,OAAQ,GACRC,QAAS,YACTL,KAAM,eACN9F,IAAKgG,GACJ5H,GAAQ,IAET,EAAa,IAAMiI,YAAW,SAAUjI,EAAO4B,GACjD,OAAO,IAAMtb,cAAc,EAAY,EAAS,CAC9CshB,OAAQhG,GACP5B,OAEU,ICxBf,SAAS,IAAiS,OAApR,EAAWsF,OAAOC,OAASD,OAAOC,OAAOmB,OAAS,SAAUC,GAAU,IAAK,IAAI9f,EAAI,EAAGA,EAAIwK,UAAUrS,OAAQ6H,IAAK,CAAE,IAAI4M,EAASpC,UAAUxK,GAAI,IAAK,IAAIzG,KAAOqT,EAAc6R,OAAOsB,UAAUC,eAAeC,KAAKrT,EAAQrT,KAAQumB,EAAOvmB,GAAOqT,EAAOrT,IAAY,OAAOumB,IAA2BvZ,MAAM2Z,KAAM1V,WACtU,SAAS,EAAyBoC,EAAQwT,GAAY,GAAc,MAAVxT,EAAgB,MAAO,GAAI,IAAkErT,EAAKyG,EAAnE8f,EACzF,SAAuClT,EAAQwT,GAAY,GAAc,MAAVxT,EAAgB,MAAO,GAAI,IAA2DrT,EAAKyG,EAA5D8f,EAAS,GAAQO,EAAa5B,OAAO6B,KAAK1T,GAAqB,IAAK5M,EAAI,EAAGA,EAAIqgB,EAAWloB,OAAQ6H,IAAOzG,EAAM8mB,EAAWrgB,GAAQogB,EAASzlB,QAAQpB,IAAQ,IAAaumB,EAAOvmB,GAAOqT,EAAOrT,IAAQ,OAAOumB,EADxM,CAA8BlT,EAAQwT,GAAuB,GAAI3B,OAAO+B,sBAAuB,CAAE,IAAIC,EAAmBhC,OAAO+B,sBAAsB5T,GAAS,IAAK5M,EAAI,EAAGA,EAAIygB,EAAiBtoB,OAAQ6H,IAAOzG,EAAMknB,EAAiBzgB,GAAQogB,EAASzlB,QAAQpB,IAAQ,GAAkBklB,OAAOsB,UAAUW,qBAAqBT,KAAKrT,EAAQrT,KAAgBumB,EAAOvmB,GAAOqT,EAAOrT,IAAU,OAAOumB,EAGne,IAAI,EAAqB,IAAMrgB,cAAc,OAAQ,CACnDmhB,EAAG,uGACHC,KAAM,iBAEJ,EAAiB,SAAwB/D,GAC3C,IAAIiE,EAASjE,EAAKiE,OAChB5H,EAAQ,EAAyB2D,EAAM,CAAC,WAC1C,OAAO,IAAMrd,cAAc,MAAO,EAAS,CACzCuhB,MAAO,GACPC,OAAQ,GACRC,QAAS,YACTL,KAAM,OACN9F,IAAKgG,GACJ5H,GAAQ,IAET,EAAa,IAAMiI,YAAW,SAAUjI,EAAO4B,GACjD,OAAO,IAAMtb,cAAc,EAAgB,EAAS,CAClDshB,OAAQhG,GACP5B,OCdCikB,GDgBS,IChBW17B,gBAAC27B,EAAS,OAC9BC,EAAsB57B,gBAAC67B,EAAW,MAClCC,EAA0B97B,gBAAC+7B,EAAe,MAE1CC,EAA2B,CAC7B,cAAe,CACXv8B,KAAM7H,YAAQ,sBACd0jC,KAAMI,EACNhkB,UAAW,0BAEf,sBAAuB,CACnBjY,KAAM7H,YAAQ,sBACd0jC,KAAMI,EACNhkB,UAAW,mCAEf,iBAAkB,CACdjY,KAAM7H,YAAQ,yBACd0jC,KAAMQ,EACNpkB,UAAW,6BAEf,yBAA0B,CACtBjY,KAAM7H,YAAQ,mBACd0jC,KAAMQ,EACNpkB,UAAW,sCAEf,oBAAqB,CACjBjY,KAAM7H,YAAQ,4BACd0jC,KAAMM,EACNlkB,UAAW,0BAEf,4BAA6B,CACzBjY,KAAM7H,YAAQ,sBACd0jC,KAAMM,EACNlkB,UAAW,mCAEfukB,QAAS,CACLx8B,KAAM,GACN67B,KAAM,KACN5jB,UAAW,KAWbrU,EAAalK,YAAU,uCAqB7B,IA+Be6G,UA3BE,SAAkByX,GAAwB,IAC/CykB,EAAoIzkB,EAApIykB,iBAAkBC,EAAkH1kB,EAAlH0kB,uBAAwB9F,EAA0F5e,EAA1F4e,QAAS+F,EAAiF3kB,EAAjF2kB,UAAWC,EAAsE5kB,EAAtE4kB,YAAWC,EAA2D7kB,EAAzD8kB,qBAAa,IAAAD,EAAG,UAASA,EAAAE,EAAgC/kB,EAA9BglB,eAAO,IAAAD,GAAQA,EAAEE,EAAajlB,EAAbilB,SAEzHC,EA1BV,SAAqBp5B,EAAoBC,GACrC,IAAMC,GAAmB,IAAIvL,MAAOwL,UAAYL,EAC1CM,GAAY,IAAIzL,MAAOwL,UAEvBE,EAAmBL,GAAarL,KAAK2L,MAAMN,GAC3CO,EAAsBN,GAAgBtL,KAAK2L,MAAML,GAEvD,OAAII,GAAoBA,EAAmBD,EAChC,cAEPC,GAAoBA,EAAmBH,GAAoBG,GAAoBD,EACxE,iBAEPG,GAAwBA,EAAsBL,GAAoBK,EAAsBH,EACjF,oBAEJ,UASML,CAAY44B,EAAkBC,GANxB,SAAC9F,GACpB,OAAOA,EAAO,IAAAt+B,OAAOs+B,GAAY,GAMDuG,CAAevG,GAE/C,GAAIsG,EAASE,WAAW,WACpB,OAAO,KAGX,IAAMC,EAAcnnC,YAAG,YAAaqmC,EAAYW,GAAUjlB,UAAW,CACjE,mBAAoB+kB,EACpB,wBAAsC,YAAbC,IAGvBp7B,EA9CY,SAACq7B,EAAkBT,EAA0BC,GAC/D,MAAiB,8BAAbQ,EAAgD,IAAN5kC,OAAWglC,YAAWZ,IACnD,2BAAbQ,EAA6C,IAAN5kC,OAAWglC,YAAWb,IAC1D,GA2CMc,CAAcL,EAAUT,EAAkBC,GAEvD,OACIn8B,gBAAA,OAAK0X,UAAU,wBACX1X,gBAAA,QAAMuZ,cAAY,YAAY7B,UAAWolB,EAAatkC,MAAO,CAAEykC,YAA0B,SAAbP,EAAsB,MAAQ,SACrGV,EAAYW,GAAUrB,KACtBU,EAAYW,GAAUl9B,KAAO6B,GAEpB,wBAAbq7B,EAAqC38B,gBAACk9B,EAAQ,CAAC3xB,GAAI6wB,GAAa,EAAG38B,KAAM48B,GAAe,GAAIhG,QAASkG,IAAoB,U,iCCxGtI,+DAASre,IAAiS,OAApRA,EAAWnB,OAAOC,OAASD,OAAOC,OAAOmB,OAAS,SAAUC,GAAU,IAAK,IAAI9f,EAAI,EAAGA,EAAIwK,UAAUrS,OAAQ6H,IAAK,CAAE,IAAI4M,EAASpC,UAAUxK,GAAI,IAAK,IAAIzG,KAAOqT,EAAc6R,OAAOsB,UAAUC,eAAeC,KAAKrT,EAAQrT,KAAQumB,EAAOvmB,GAAOqT,EAAOrT,IAAY,OAAOumB,IAA2BvZ,MAAM2Z,KAAM1V,WACtU,SAAS2V,EAAyBvT,EAAQwT,GAAY,GAAc,MAAVxT,EAAgB,MAAO,GAAI,IAAkErT,EAAKyG,EAAnE8f,EACzF,SAAuClT,EAAQwT,GAAY,GAAc,MAAVxT,EAAgB,MAAO,GAAI,IAA2DrT,EAAKyG,EAA5D8f,EAAS,GAAQO,EAAa5B,OAAO6B,KAAK1T,GAAqB,IAAK5M,EAAI,EAAGA,EAAIqgB,EAAWloB,OAAQ6H,IAAOzG,EAAM8mB,EAAWrgB,GAAQogB,EAASzlB,QAAQpB,IAAQ,IAAaumB,EAAOvmB,GAAOqT,EAAOrT,IAAQ,OAAOumB,EADxMS,CAA8B3T,EAAQwT,GAAuB,GAAI3B,OAAO+B,sBAAuB,CAAE,IAAIC,EAAmBhC,OAAO+B,sBAAsB5T,GAAS,IAAK5M,EAAI,EAAGA,EAAIygB,EAAiBtoB,OAAQ6H,IAAOzG,EAAMknB,EAAiBzgB,GAAQogB,EAASzlB,QAAQpB,IAAQ,GAAkBklB,OAAOsB,UAAUW,qBAAqBT,KAAKrT,EAAQrT,KAAgBumB,EAAOvmB,GAAOqT,EAAOrT,IAAU,OAAOumB,EAGne,IAAIa,EAAqB,IAAMlhB,cAAc,OAAQ,CACnDohB,KAAM,eACNqc,SAAU,UACVC,SAAU,UACVvc,EAAG,mNAEDie,EAAW,SAAkB/hB,GAC/B,IAAIiE,EAASjE,EAAKiE,OAChB5H,EAAQgH,EAAyBrD,EAAM,CAAC,WAC1C,OAAO,IAAMrd,cAAc,MAAOmgB,EAAS,CACzCoB,MAAO,GACPC,OAAQ,GACRC,QAAS,YACTL,KAAM,OACN9F,IAAKgG,GACJ5H,GAAQwH,IAETQ,EAAa,IAAMC,YAAW,SAAUjI,EAAO4B,GACjD,OAAO,IAAMtb,cAAco/B,EAAUjf,EAAS,CAC5CmB,OAAQhG,GACP5B,OAEU,K,iCC1Bf,+DAASyG,IAAiS,OAApRA,EAAWnB,OAAOC,OAASD,OAAOC,OAAOmB,OAAS,SAAUC,GAAU,IAAK,IAAI9f,EAAI,EAAGA,EAAIwK,UAAUrS,OAAQ6H,IAAK,CAAE,IAAI4M,EAASpC,UAAUxK,GAAI,IAAK,IAAIzG,KAAOqT,EAAc6R,OAAOsB,UAAUC,eAAeC,KAAKrT,EAAQrT,KAAQumB,EAAOvmB,GAAOqT,EAAOrT,IAAY,OAAOumB,IAA2BvZ,MAAM2Z,KAAM1V,WACtU,SAAS2V,EAAyBvT,EAAQwT,GAAY,GAAc,MAAVxT,EAAgB,MAAO,GAAI,IAAkErT,EAAKyG,EAAnE8f,EACzF,SAAuClT,EAAQwT,GAAY,GAAc,MAAVxT,EAAgB,MAAO,GAAI,IAA2DrT,EAAKyG,EAA5D8f,EAAS,GAAQO,EAAa5B,OAAO6B,KAAK1T,GAAqB,IAAK5M,EAAI,EAAGA,EAAIqgB,EAAWloB,OAAQ6H,IAAOzG,EAAM8mB,EAAWrgB,GAAQogB,EAASzlB,QAAQpB,IAAQ,IAAaumB,EAAOvmB,GAAOqT,EAAOrT,IAAQ,OAAOumB,EADxMS,CAA8B3T,EAAQwT,GAAuB,GAAI3B,OAAO+B,sBAAuB,CAAE,IAAIC,EAAmBhC,OAAO+B,sBAAsB5T,GAAS,IAAK5M,EAAI,EAAGA,EAAIygB,EAAiBtoB,OAAQ6H,IAAOzG,EAAMknB,EAAiBzgB,GAAQogB,EAASzlB,QAAQpB,IAAQ,GAAkBklB,OAAOsB,UAAUW,qBAAqBT,KAAKrT,EAAQrT,KAAgBumB,EAAOvmB,GAAOqT,EAAOrT,IAAU,OAAOumB,EAGne,IAAIa,EAAqB,IAAMlhB,cAAc,OAAQ,CACnDmhB,EAAG,4NACHC,KAAM,iBAEJie,EAAe,SAAsBhiB,GACvC,IAAIiE,EAASjE,EAAKiE,OAChB5H,EAAQgH,EAAyBrD,EAAM,CAAC,WAC1C,OAAO,IAAMrd,cAAc,MAAOmgB,EAAS,CACzCoB,MAAO,GACPC,OAAQ,EACRC,QAAS,WACTL,KAAM,OACN9F,IAAKgG,GACJ5H,GAAQwH,IAETQ,EAAa,IAAMC,YAAW,SAAUjI,EAAO4B,GACjD,OAAO,IAAMtb,cAAcq/B,EAAclf,EAAS,CAChDmB,OAAQhG,GACP5B,OAEU,K,4SCrBf,IAAMgb,EAAqB,CAEvB4K,UAAW,WACP,OAAOhM,IAAYxtB,MAAMxN,OAAOC,SAASsU,SAG7C0yB,cAAe,SAACC,GAEZ,OADelM,IAAYxtB,MAAMxN,OAAOC,SAASsU,QACnC2yB,IAGlBnrB,UAAW,SAACmrB,GACR,OAAOlM,IAAYjf,UAAUmrB,IAIjCC,cAAe,SAACC,EAA0BC,GACtC,IAAMC,EAAetM,IAAYxtB,MAAMxN,OAAOC,SAASsU,QACjDtU,EAAQ,GAAAyB,OAAM1B,OAAOC,SAASC,SAAQ,KAAAwB,OAAIs5B,IAAYjf,U,iWAAS7S,CAAC,GAAKo+B,EAAa,GAAIF,KAC5F,OAAIC,EAAehjC,IAAQyB,QAAQ7F,GAC5BoE,IAAQwB,KAAK5F,IAGxBsnC,iBAAkB,SAAC/lC,EAAa6lC,GAC5B,IAAMC,EAAetM,IAAYxtB,MAAMxN,OAAOC,SAASsU,eAChD+yB,EAAa9lC,GACpB,IAAMvB,EAAQ,GAAAyB,OAAM1B,OAAOC,SAASC,SAAQ,KAAAwB,OAAIs5B,IAAYjf,UAAUurB,IACtE,OAAID,EAAehjC,IAAQyB,QAAQ7F,GAC5BoE,IAAQwB,KAAK5F,IAGxBunC,QAAS,SAACC,GACFA,EAAKrnC,OACLJ,OAAOqE,QAAQqjC,aAAa,KAAM,GAAID,GAEtCznC,OAAOqE,QAAQqjC,aAAa,KAAM,GAAI1nC,OAAOC,SAASC,SAAWF,OAAOC,SAASsU,SAKzFozB,iBAAkB,SAACnmC,EAAaiC,EAAsB4jC,GAClD,IAAIC,EAAgC,IACpCA,EAAetM,IAAYxtB,MAAMxN,OAAOC,SAASsU,SACpC/S,GAAOiC,EACpB,IAAMmkC,EAAe5M,IAAYjf,UAAUurB,GACrCrnC,EAAQ,GAAAyB,OAAM1B,OAAOC,SAASC,SAAQ,KAAAwB,OAAIkmC,GAChD,OAAIP,EAAehjC,IAAQyB,QAAQ7F,GAC5BoE,IAAQwB,KAAK5F,KAKbm8B,O,iCCvDf,iHAMMyL,EAAel+B,iBAA8B,eAuFnD,IAAMm+B,EAAYn+B,QArFlB,SAAeyX,GAAoB,IACvBoiB,EAAsKpiB,EAAtKoiB,KAAMC,EAAgKriB,EAAhKqiB,QAASC,EAAuJtiB,EAAvJsiB,aAAcxf,EAAyI9C,EAAzI8C,YAAa6jB,EAA4H3mB,EAA5H2mB,SAAUC,EAAkH5mB,EAAlH4mB,cAAepE,EAAmGxiB,EAAnGwiB,WAAYqE,EAAuF7mB,EAAvF6mB,WAAY3kB,EAA2ElC,EAA3EkC,SAAU4kB,EAAiE9mB,EAAjE8mB,UAAWC,EAAsD/mB,EAAtD+mB,cAAeC,EAAuChnB,EAAvCgnB,WAAYC,EAA2BjnB,EAA3BinB,gBAiDnJ,OAjD8KjnB,EAAVtX,MAEpKH,aAAgB,WACZ,IAAI2+B,EACEC,EAAgB,SAACnjB,GACnB,GAAIkjB,GAAwB,QAAdljB,EAAM5jB,IAAe,CAC/B,IAAMgnC,EAAoBF,EACrBtgC,iBAAiB,4EACtB,GAAIwgC,EAAkBpoC,OAAQ,CAC1B,IAAMqoC,EAAeD,EAAkB,GACjCE,EAAcF,EAAkBA,EAAkBpoC,OAAS,GAC7DglB,EAAMujB,SACFlhC,SAASmhC,gBAAkBH,IAC3BrjB,EAAMO,iBACL+iB,EAA4BG,SAE1BphC,SAASmhC,gBAAkBF,IAClCtjB,EAAMO,iBACL8iB,EAA6BI,YAgB9C,OAVIrF,GACA7gB,YAAW,YACP2lB,EAAS7gC,SAASqhC,uBAAuB,4CAA4C,KAGjFR,EAAO9J,iBAAiB,UAAW+J,KAExC,KAGA,WACCD,GAAQA,EAAOS,oBAAoB,UAAWR,MAGvD,CAAC/E,IAEAA,GAAQ0E,GAAWh0B,YAASg0B,GAU5Bv+B,gBAACk+B,EAAamB,SAAQ,CAACvlC,MAAOggC,GAC1B95B,gBAACs/B,IAAM,CACHzF,KAAMA,EACNC,QAXgB,SAACyF,EAAsBC,IAEhC,kBAAXA,GAA+B1hC,SAAS2hC,gBAAgBC,YADlC,GACqEH,EAAEI,UAC7F7F,KASI8F,WAAY7F,EACZ8F,UAAWtlB,EACX6jB,SAAUA,EACV0B,QAASzB,EACT0B,cAAevB,EACfwB,WAAYvB,EACZwB,OAAQhG,EAAa,OAAS,QAC9B1gB,cAAY,QACZ/gB,MAAOkmC,EACPwB,kBAAgB,eAEhBlgC,gBAAA,UACIsZ,QAASwgB,EACTpiB,UAAW/hB,YAAG,eAAgB,CAC1B,4BAA6B4kB,EAC7B,sBAAuB+jB,IAE3BhxB,KAAK,SACL6yB,aAAW,cACX5mB,cAAY,mBAEZvZ,gBAACogC,IAAS,OAGbzmB,Q,iCCtFjB,+FAQM0mB,EAAiB,WAAH,OAAqD,SAAAnkB,GACrE,IAAMokB,EAAYlP,IAAW7e,eAAejL,MAAK,SAACgN,GAC1CA,EAASpL,MACTgT,EAAS,CAAEwT,UAAWpb,EAASpL,KAAMpD,KAAM,IAAI5N,KAAQoV,KAAMsiB,SAGrE2Q,kBAAQD,KAGNE,EAAyB,WAAH,OAAkD,SAAAtkB,GAC1E,IAAMokB,EAAYlP,IAAW1e,uBAAuBpL,MAAK,SAAAgN,GACjDA,EAASpL,MACTgT,EAAS,CAAEyT,MAAOrb,EAASpL,KAAMpD,KAAM,IAAI5N,KAAQoV,KAAMuiB,SAGjE0Q,kBAAQD,M,gCCxBZ,IAIKG,EAJL,OAEMtJ,EAAah+B,YAAU,sBAEhB,SAARsnC,OAAQ,SACEtJ,EAAWuJ,UAAQ,WAD7BD,IAAQ,cAEOtJ,EAAWwJ,eAAa,gBAFvCF,IAAQ,kBAGWtJ,EAAWyJ,mBAAiB,oBAH/CH,IAAQ,kBAIWtJ,EAAW0J,mBAAiB,oBAJ/CJ,IAAQ,aAKMtJ,EAAW2J,cAAY,eALrCL,IAAQ,YAMKtJ,EAAWC,aAAW,cANnCqJ,IAAQ,eAOQtJ,EAAW4J,gBAAc,iBAPzCN,IAAQ,gBAQStJ,EAAW6J,iBAAe,kBAR3CP,IAAQ,0BASmBtJ,EAAW8J,2BAAyB,4BAT/DR,IAAQ,8BAUuBtJ,EAAW+J,+BAA6B,gCAVvET,IAAQ,cAWOtJ,EAAWgK,eAAa,gBAXvCV,IAAQ,aAYMtJ,EAAWK,cAAY,eAZrCiJ,IAAQ,iBAcUtJ,EAAWiK,kBAAgB,mBAd7CX,IAAQ,WAeItJ,EAAWkK,YAAU,aAfjCZ,IAAQ,yBAgBkBtJ,EAAWmK,0BAAwB,2BAhB7Db,IAAQ,0BAiBmBtJ,EAAWoK,2BAAyB,4BAjB/Dd,IAAQ,qBAkBctJ,EAAWqK,sBAAoB,uBAlBrDf,IAAQ,YAmBKtJ,EAAWsK,aAAW,cAnBnChB,IAAQ,IAoBHtJ,EAAWuK,KAAG,MApBnBjB,IAAQ,cAqBOtJ,EAAWwK,eAAa,gBArBvClB,IAAQ,iBAsBUtJ,EAAWyK,kBAAgB,mBAtB7CnB,IAAQ,gBAuBStJ,EAAWG,iBAAe,kBAvB3CmJ,IAAQ,iBAwBUtJ,EAAWO,kBAAgB,mBAxB7C+I,IAAQ,0BAyBmBtJ,EAAWE,2BAAyB,4BAzB/DoJ,IAAQ,2BA0BoBtJ,EAAWM,4BAA0B,6BA1BjEgJ,IAAQ,iBA2BUtJ,EAAW0K,kBAAgB,mBA3B7CpB,IAAQ,qBA4BatJ,EAAW2K,sBAAoB,uBA5BpDrB,IAAQ,qBA6BatJ,EAAW4K,sBAAoB,uBA7BpDtB,IAAQ,wBA8BgBtJ,EAAW6K,yBAAuB,0BA9B1DvB,IAAQ,0BA+BmBtJ,EAAW8K,2BAAyB,4BA/B/DxB,IAAQ,eAgCQtJ,EAAW+K,gBAAc,iBAhCzCzB,IAAQ,cAiCOtJ,EAAWS,eAAa,gBAjCvC6I,IAAQ,kBAkCWtJ,EAAWW,mBAAiB,oBAlC/C2I,IAAQ,4BAmCqBtJ,EAAWU,6BAA2B,8BAnCnE4I,IAAQ,gBAoCStJ,EAAWgL,iBAAe,kBApC3C1B,IAAQ,UAqCGtJ,EAAWiL,WAAS,YArC/B3B,IAAQ,mBAsCYtJ,EAAWkL,oBAAkB,qBAtCjD5B,IAAQ,wBAuCiBtJ,EAAWmL,yBAAuB,0BAvC3D7B,IAAQ,oBAwCatJ,EAAWoL,qBAAmB,sBAxC3C,CAAR9B,MAAQ,KA2CEA,O,iCC/Cf,6BAKM/S,EAFgB8U,KAELC,CAAqBC,KAEvBhV,O,oOCQTiV,EAAqBxpC,YAAU,gCAG/BypC,EAAsB,WAAH,OAA+C,SAAC1mB,EAAUiV,GAAc,IACrFlH,EAAakH,IAAblH,SACF4Y,EAAiB/qC,YAAImyB,EAAU,OAErC,GADmB4Y,KAAoBA,EAAe/8B,MAAcg9B,YAASD,EAAe/8B,MAAQ68B,GACpF,CACZ,IAAM54B,EAAoBnS,YAAQ,qBAC5B0oC,EAAYlP,IAAWvnB,iBAAiBvC,MAAK,SAAAgN,GAC/C,IAAMjK,GAAgBN,GAAqBuK,EAAS,GAAKA,EAAS,GAAK,GACjEyuB,GAAeh5B,GAAqBuK,EAAS,GAAKA,EAAS,GAAK,GAChEnK,EAAkCmK,EAAS,GAAGva,KAAI,SAAC+jB,GAAgB,OAAKklB,YAA4BllB,EAAMzT,MAC1G44B,EAAqC3uB,EAAS,GAAGva,KAAI,SAAC+jB,GAAuB,OAAKolB,YAA+BplB,EAAMilB,MAC7H7mB,EAAS,CAAE5H,SAAS,GAADvc,OAAA6H,IAAMuK,GAAYvK,IAAKqjC,IAAkBn9B,KAAM,IAAI5N,KAAQoV,KAAM+a,SAExFkY,kBAAQD,MAKV6C,EAAyB,WAAH,OAA+C,SAACjnB,EAAUiV,GAAc,IACxFlH,EAAakH,IAAblH,SACF4Y,EAAiB/qC,YAAImyB,EAAU,cAErC,GADmB4Y,KAAoBA,EAAe/8B,MAAcg9B,YAASD,EAAe/8B,MAAQ68B,GACpF,CACZ,IAAMrC,EAAYlP,IAAWxmB,OAAO,GAAI,GAAI,CAAC,oCACxCtD,MAAK,SAAAgM,GACF,IAEM8vB,EAFmBtrC,YAAIwb,EAAK,iBAAkB,IAEYvZ,KAAI,SAAC+jB,GAAS,OAAKulB,YAAiCvlB,EAAKwlB,YACzHpnB,EAAS,CAAE5H,SAAQ1U,IAAMwjC,GAAsBt9B,KAAM,IAAI5N,KAAQoV,KAAMib,SACzE,OACK,SAAA7gB,GACGA,GAASA,EAAMgO,SAA6B,wCAAlBhO,EAAMgO,SAClC/K,QAAQkrB,KAAKnuB,MAGzB64B,kBAAQD,MAyBViD,EAAsB,SAAC/3B,EAAuBsP,EAAwBoB,GAA6C,IAC7G3Q,EAAiBC,EAAjBD,GAAIuB,EAAatB,EAAbsB,SACJmd,EAAsBnP,EAAtBmP,SAAUpuB,EAAYif,EAAZjf,QACZgnC,EAAiB/qC,YAAImyB,EAAS,QAADlyB,OAAUwT,EAAE,KAAAxT,OAAI+U,EAAW,IAAM,KAAO,IACrE02B,EAAaX,KAAoBA,EAAevuB,UAAkBwuB,YAASD,EAAevuB,SAASsU,YAAc+Z,GAEvH,IAAKp3B,IAAOs3B,GAAkBW,EAAY,CACtC,IAAMlD,EA3BgB,SAAC/0B,EAAYuB,EAAmBjR,GAC1D,OAAIiR,EACOskB,IAAW5iB,kBAAkBjD,GAAIjE,MAAK,SAAAm8B,GACzC,IAAMvc,EAA8B,GAMpC,OALIuc,IACIA,EAAShtC,OAAS,GAAGywB,EAAahrB,KAAKwnC,YAA2BD,EAAS,KAC3EA,EAAShtC,OAAS,GAAGywB,EAAahrB,KAAKynC,YAAwBF,EAAS,KACxEA,EAAShtC,OAAS,GAAGywB,EAAahrB,KAAK0nC,YAA8BH,EAAS,MAE/E,CAAEvc,eAAcrrB,cAIxBu1B,IAAW5kB,2BAA2BjB,GAAIjE,MAAK,SAAAm8B,GAElD,MAAO,CAAEvc,aAD2Buc,EAAS1pC,KAAI,SAAA4B,GAAO,OAAIkoC,YAAwBloC,MAC7DE,cAYLioC,CAAsBv4B,EAAIC,EAAOsB,SAAUjR,GAASyL,MAAK,SAAAgN,GACvE4H,EAAS,CACLgL,aAAc5S,EAAS4S,aACvBrrB,QAASyY,EAASzY,QAClB0P,GAAIC,EAAOD,GACX+B,KAAMkb,SAGd+X,kBAAQD,KAKVyD,EAA8B,SAACv4B,GAAqB,sBAAA4P,EAAAC,IAAAC,IAAAC,MAA8D,SAAAC,EAAOU,EAAUiV,GAAQ,IAAA6S,EAAA1D,EAAA,OAAAhlB,IAAAI,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAE7ImoB,EACoB7S,IACC,KADN6S,EAAPnoC,QACIiK,KACRy9B,EAAoB/3B,EAAQ2lB,IAAYjV,IAElCokB,EAAYlP,IAAW1jB,kBAAkBpG,MAAK,SAAAgN,GAChD4H,EAAS,CAAE5H,WAAUxO,KAAM,IAAI5N,KAAQoV,KAAM4c,MAC7CqZ,EAAoB/3B,EAAQ2lB,IAAYjV,MAE5CqkB,kBAAQD,IACX,wBAAA3kB,EAAAY,UAAAf,OACJ,gBAAAgB,EAAAynB,GAAA,OAAA7oB,EAAAvW,MAAA,KAAAiE,YAbyD,K,us7CC/BtDo7B,E,uGC/DEpuC,EAAeC,cAEfouC,EAASruC,EAAa4qB,cAAgB,eAEtC0jB,EAAS,IAAIC,IAAOF,EAAOxP,OAAO,EAAG,KAErCx+B,EAAWyB,YAAQ,Y,gGDWnB9B,EAAeC,cACfI,EAAWyB,YAAQ,YAInB0sC,EAAe,CACjBv1B,QAAQ,GAADhX,OAAKjC,EAAakrB,cAAa,KAAAjpB,OAAI5B,GAC1C+M,KAAMmhB,IACN4F,SAAU5E,IACVkf,UAAW1b,IACX2b,WAAYvb,IACZptB,QAAS6tB,IACT8D,OAAQD,IACRkX,OAAQ7W,IACR8W,aAAcjV,IACdkV,aAAc7U,KAGZ8U,EAAWC,0BAAgC,CAC7C91B,QAAS2V,kCAAwB,GAAD3sB,OAAIjC,EAAakrB,cAAa,KAAAjpB,OAAI5B,IAClE+M,KAAM4hC,IACN7a,SAAU8a,IACVR,UAAWS,IACXR,WAAYS,IACZppC,QAASqpC,IACT1X,OAAQ2X,IACRV,OAAQW,IACRV,aAAcW,IACdV,aAAcW,MAUZC,EAAoDC,IACpDC,EAAqBC,0BAAgBH,GAErCI,EAAmCC,kBACrCH,EACAI,2BAAiB,KAKhB/vC,EAAaM,oBACd8tC,EAA+D,SAA9C56B,8CAAYw8B,+BAA6ChwC,EAAairB,wBAAmC1V,EC1D5G,WACd,IACI,IAAM06B,EAAkB1T,aAAaY,QAAQ,SACvC+S,EAA6B3T,aAAaY,QAAQ,aAExD,GAAwB,OAApB8S,EAA0B,OAE9B,IAAME,EAA8B9zB,KAAKtO,MAAMkiC,GAE/C,GAAIE,EAAYl3B,UAAO,GAAAhX,OAAQjC,EAAakrB,cAAa,KAAAjpB,OAAI5B,GAAY,CACrE,GAAmC,OAA/B6vC,EACA,IACI,IAAME,EAAqC/zB,KAAKtO,MAAMugC,EAAO+B,QAAQH,IAErEjpB,OAAOC,OAAOipB,EAAa,CAAE/iC,KAAMgjC,IACrC,MAAAE,GACEC,eAAe/T,WAAW,SAGlC,OAAO2T,EAEX,OAAIA,EAAYl3B,QAAQvY,MAAM,KAAK,KAAOV,EAAakrB,eAAiBilB,EAAYl3B,QAAQvY,MAAM,KAAK,KAAOL,OAC1Gk8B,aAAaC,WAAW,UAI5BD,aAAaC,WAAW,cACxB+T,eAAe/T,WAAW,UAG5B,MAAAgU,GAGE,OAFAjU,aAAaC,WAAW,cACxB+T,eAAe/T,WAAW,UD0B8EiU,KAG3GzwC,EAAaM,mBAAqBowC,QAE/BtC,OADqB74B,IAAnB64B,EACe/9B,IAAO+9B,EAAgB,CAAE5U,OAAQkX,QAEjCA,OAKzB,IAAMC,EAAQC,uBA9BO,WAA8D,IAA7D5rB,EAAqBhS,UAAArS,OAAA,QAAA4U,IAAAvC,UAAA,GAAAA,UAAA,GAAGw7B,EAAclc,EAAiBtf,UAAArS,OAAA,EAAAqS,UAAA,QAAAuC,EACzE,OAAI+c,EAAO9a,OAAS6O,IACThW,IAAO2U,EAAO,CAAEkK,KAAMsf,IAE1BM,EAAS9pB,EAAOsN,KA0BkD8b,EAAgByB,GAExF7vC,EAAairB,oBAAuBjrB,EAAaM,mBAClDqwC,EAAME,WAAU,kBCpCF,SAAC7rB,GACf,IAAK,IAEG5X,EAGA4X,EAHA5X,KAEG0jC,GACH9rB,EAFA0S,OACO/O,IACP3D,EAAK,oBAEHirB,EAAkB5zB,KAAKC,UAAUw0B,GACjCC,EAAsBzC,EAAO0C,QAAQ30B,KAAKC,UAAUlP,IACtDiP,KAAKC,UAAUlP,KAAUmvB,aAAaY,QAAQ,eAC9CZ,aAAaG,QAAQ,QAASuT,GAC9B1T,aAAaG,QAAQ,YAAaqU,IAExC,MAAAE,KDsBoBC,CAAUP,EAAMtV,eAG1C96B,OAAOw+B,iBAAiB,WAAW,WAC/B,IAAMoS,EAA2B5U,aAAaY,QAAQ,sBAElDgU,GAA4BA,IAA6B90B,KAAKC,UAAUq0B,EAAMtV,WAAWjuB,KAAKshB,sBAC9FiiB,EAAMvqB,SAASiJ,IAA6BiD,OAAOjW,KAAKtO,MAAMojC,KAC9D5U,aAAaC,WAAW,2B,wtBExFhC,IAAMqQ,EAAqBxpC,YAAU,gCAE/B+tC,EAAwB,WAAH,OAAgD,SAAChrB,EAAUiV,GAAc,IACxFoT,EAAcpT,IAAdoT,UACF1B,EAAiB/qC,YAAIysC,EAAW,OAEtC,GADmB1B,KAAoBA,EAAe/8B,MAAcg9B,YAASD,EAAe/8B,MAAQ68B,GACpF,CACZ,IAAM54B,EAAoBnS,YAAQ,qBAE5B0oC,EAAYlP,IAAWnlB,eAAe3E,MAAK,SAAAgN,GAC7C,IAAI6yB,EAAe7yB,EAAS,IACvBvK,GAAqBuK,EAAS7d,OAAS,IACxC0wC,EAAe7yB,EAAS,GAAGva,KAAI,SAAC+jB,GAC5B,IAAMspB,EAAW9yB,EAAS,GAAG7T,MAAK,SAAC4mC,GAAuC,OAAKA,EAAQ5tC,qBAAuBqkB,EAAKrkB,sBAEnH,OADAqkB,EAAKwpB,qBAAuBF,GAAYA,EAASphB,qBAAuBohB,EAASphB,qBAAuBlI,EAAKkI,qBACtGlI,MAGf5B,EAAS,CAAE5H,SAAU,CAAExa,MAAOqtC,GAAgBrhC,KAAM,IAAI5N,KAAQoV,KAAMwb,SAE1EyX,kBAAQD,MAIViH,EAAoB,SAAC/7B,GAAuB,OAA2C,SAAC0Q,EAAUiV,GAAc,IAC1GoT,EAAcpT,IAAdoT,UACAh5B,EAAOC,EAAPD,GACFs3B,EAAiB/qC,YAAIysC,EAAU,QAADxsC,OAAUwT,GAAM,IAC9Ci4B,EAAaX,KAAoBA,EAAevuB,UAAkBwuB,YAASD,EAAevuB,SAASkzB,YAAc7E,GACvH,IAAKp3B,IAAOs3B,GAAkBW,EAAY,CACtC,IAAMlD,EAAYlP,IAAW9kB,uBAAuBf,GAAIjE,MAAK,SAAAgN,GACzD4H,EAAS,CAAE5H,SAAQ/U,EAAA,GAAO+U,EAASpL,KAAK,CAACs+B,WAAY,IAAItvC,OAAUoV,KAAMyb,IAAmBxd,UAEhGg1B,kBAAQD,O,wtBCjChB,IAAMqC,EAAqBxpC,YAAU,gCAE/BsuC,EAAyB,WAAH,OAAiD,SAACvrB,EAAUiV,GAAc,IAC1FqT,EAAerT,IAAfqT,WACF3B,EAAiB/qC,YAAI0sC,EAAY,OAEvC,GADmB3B,KAAoBA,EAAe/8B,MAAcg9B,YAASD,EAAe/8B,MAAQ68B,GACpF,CACZ,IAAM54B,EAAoBnS,YAAQ,qBAE5B0oC,EAAYlP,IAAWrb,gBAAgBzO,MAAK,SAAAgN,GAC9C,IAAIozB,EAAgBpzB,EAAS,IACxBvK,GAAqBuK,EAAS7d,OAAS,IACxCixC,EAAgBpzB,EAAS,GAAGva,KAAI,SAAC+jB,GAC7B,IAAMspB,EAAW9yB,EAAS,GAAG7T,MAAK,SAAC4mC,GAA4C,OAAKA,EAAQM,0BAA4B7pB,EAAK6pB,2BAE7H,OADA7pB,EAAK8pB,sBAAwBR,GAAYA,EAASS,yBAA2BT,EAASS,yBAA2B/pB,EAAK+pB,yBAC/G/pB,MAGf5B,EAAS,CAAE5H,SAAUozB,EAAe5hC,KAAM,IAAI5N,KAAQoV,KAAM4b,SAEhEqX,kBAAQD,MAIVwH,EAAqB,SAACt8B,GAAwB,OAA4C,SAAC0Q,EAAUiV,GAAc,IAC7GqT,EAAerT,IAAfqT,WACAj5B,EAAOC,EAAPD,GACFs3B,EAAiB/qC,YAAI0sC,EAAW,QAADzsC,OAAUwT,GAAM,IAC/Ci4B,EAAaX,KAAoBA,EAAevuB,UAAkBwuB,YAASD,EAAevuB,SAASkzB,YAAc7E,GACvH,IAAKp3B,IAAOs3B,GAAkBW,EAAY,CACtC,IAAMlD,EAAYlP,IAAWlb,wBAAwB3K,GAAIjE,MAAK,SAAAgN,GAC1D4H,EAAS,CAAE5H,SAAQ/U,EAAA,GAAO+U,EAASpL,KAAK,CAACs+B,WAAY,IAAItvC,OAAUoV,KAAM6b,IAAoB5d,UAEjGg1B,kBAAQD,O,iCCtChB,OAgBenmB,UAFuJ,M,4FCVvJ,SAAS4tB,EAAOtwB,GAAqB,IACxCuwB,EAAyBvwB,EAAzBuwB,UAAWtwB,EAAcD,EAAdC,UAEnB,OACI1X,gBAAA,OAAK0X,UAAW/hB,YAAG,SAAU+hB,GAAYlf,MAAO,CAAEwvC,cAC9ChoC,gBAAA,OAAK0X,UAAU,gBACX1X,gBAAA,iB,iCCVhB,iFAEMioC,EAAS,CACXC,MAAO,UACPC,MAAO,UACPC,KAAM,UACNC,WAAY,UACZC,UAAW,UACXC,OAAQ,UACRC,QAAS,UACTC,MAAO,WAGLtY,EAAQuY,YAAY,CACtBC,WAAY,CACRC,WAAY,CAAC,YAAa,QAAS,cAAcrrC,KAAK,MAE1DsrC,QAAS,CACLnhC,MAAO,CACHohC,KAAMb,EAAOE,QAGrB1wB,MAAO,CACHsxB,cAAe,CACXC,eAAe,IAGvBC,YAAa,CACTvc,OAAQ,CACJwc,GAAI,EACJC,GAAI,IACJC,GAAI,KACJC,GAAI,KACJC,GAAI,OAGZC,UAAW,CACPC,WAAY,CACRC,KAAM,CACFC,gBAAiBzB,EAAOM,SAGhCoB,YAAa,CACTF,KAAM,CACFC,gBAAiB,wBAGzBE,SAAU,CACNC,WAAY,CACRC,OAAO,aAAD/xC,OAAekwC,EAAOM,QAC5BwB,UAAW,mCAEfC,QAAS,CACLC,aAAc,MAGtBC,cAAe,CACXT,KAAM,CACF,UAAW,CACPC,gBAAiB,SAGzBS,aAAc,CACV,UAAW,CACPT,gBAAiB,QAErB,YAAa,CACTU,WAAY,SAGpBC,eAAgB,CACZ,UAAW,CACPX,gBAAiB,QAErB,YAAa,CACTU,WAAY,UAIxBE,cAAe,CACXb,KAAM,CACFc,MAAOtC,EAAOO,SAElBgC,SAAU,CACND,MAAOtC,EAAOE,QAGtBsC,aAAc,CACVhB,KAAM,CACF,YAAa,CACTc,MAAOtC,EAAOM,UAI1BmC,kBAAmB,CACfjB,KAAM,CACFkB,SAAU,OACV,UAAW,CACPJ,MAAOtC,EAAOE,SAI1ByC,UAAW,CACPC,OAAQ,CACJC,aAAc,OACd,UAAW,CACPpB,gBAAiB,SAGzBqB,WAAY,CACRC,WAAY,UAEhBC,WAAY,CACRV,MAAOtC,EAAOO,QACd0C,MAAO,OACPC,IAAK,qBAGbC,YAAa,CACTC,QAAS,CACLpO,YAAa,mBAEjBwM,KAAM,CACFuB,WAAY,WAGpBM,eAAgB,CACZ7B,KAAM,CACFC,gBAAiBzB,EAAOQ,MACxB8C,oBAAqB,IACrBC,qBAAsB,IACtBC,YAAY,aAAD1zC,OAAekwC,EAAOK,WACjCoD,WAAW,aAAD3zC,OAAekwC,EAAOK,WAChCqD,UAAU,aAAD5zC,OAAekwC,EAAOK,WAC/BiC,MAAOtC,EAAOO,QAEd,UAAW,CACPkB,gBAAiBzB,EAAOQ,OAE5B,aAAc,CACViB,gBAAiBzB,EAAOI,WACxBkC,MAAOtC,EAAOO,UAGtBnwC,MAAO,CACHkyC,MAAOtC,EAAOC,OAElB0D,UAAW,CACPC,cAAe,OAEnBC,UAAW,CACP,WAAY,CACRC,aAAa,aAADh0C,OAAekwC,EAAOM,SAEtC,UAAW,CACPwD,aAAa,aAADh0C,OAAekwC,EAAOC,QAEtC,YAAa,CACTwB,gBAAiBzB,EAAOQ,MACxB,UAAW,CACPsD,aAAa,aAADh0C,OAAekwC,EAAOC,SAG1C,UAAW,CACP,WAAY,CACR6D,aAAa,aAADh0C,OAAekwC,EAAOM,UAG1C,aAAc,CACV,WAAY,CACRyD,kBAAmB,YAKnCC,aAAc,CACVC,eAAgB,CACZC,OAAQ,YAEZ9zC,MAAO,CACH,aAAc,CACVkyC,MAAOtC,EAAOO,WAI1B4D,YAAa,CACTjC,aAAc,CACV,YAAa,CACTI,MAAOtC,EAAOE,MACd,UAAW,CACPuB,gBAAiB,UAI7BW,eAAgB,CACZ,YAAa,CACTE,MAAOtC,EAAOE,MACd,UAAW,CACPuB,gBAAiB,WAKjC2C,SAAU,CACNlC,aAAc,CACV,YAAa,CACTI,MAAOtC,EAAOE,MACd,UAAW,CACPuB,gBAAiB,WAKjC4C,kBAAmB,CACf7C,KAAM,CACFM,UAAW,OACXwC,OAAQ,EACR,aAAc,CACVA,OAAQ,GAEZ,WAAY,CACR7uC,QAAS,SAGjBssC,QAAS,CACL,eAAgB,CACZwC,uBAAwB,IACxBC,wBAAyB,OAIrCC,yBAA0B,CACtBjD,KAAM,CACF8C,OAAQ,EACRvE,UAAW,EACX2E,QAAS,EACT,aAAc,CACVJ,OAAQ,EACRvE,UAAW,IAGnBtqC,QAAS,CACL6uC,OAAQ,EACR,aAAc,CACVA,OAAQ,KAIpBK,yBAA0B,CACtBnD,KAAM,CACFkD,QAAS,IAGjBE,mBAAoB,CAChBn3B,QAAS,CACLi3B,QAAS,WAGjBG,YAAa,CACTrD,KAAM,CACF,aAAc,CACVC,gBAAiBzB,EAAOM,SAGhCwE,OAAQ,CACJ,UAAW,CACPrD,gBAAiBzB,EAAOK,aAIpC0E,OAAQ,CACJvD,KAAM,CACFwD,cAAe,YACf,aAAc,CACV1C,MAAOtC,EAAOE,QAGtB+E,iBAAkB,CACd3C,MAAOtC,EAAOC,MACdiF,QAAS,WAEbC,QAAS,CACLC,WAAY,MAGpBC,QAAS,CACLC,UAAW,CACP7D,gBAAiBzB,EAAOE,MACxB5oB,OAAQ,Y,sGC3RlB1oB,EAAWe,YAAQ,YACnB41C,EAAY51C,YAAQ,qBAGpB61C,EAAoBt0C,YAAU,gCAC9Bu0C,EAAyBv0C,YAAU,qCACnCqpB,EAAU5qB,YAAQ,WAClBzB,EAAWyB,YAAQ,YAEnB+1C,EADe53C,cACeG,oBAE9B03C,EAAgB,wKAAA71C,OAIYyqB,EAAO,6UAsF1BqrB,EArEO,SAACp2B,GAA+B,IAC1Cq2B,EAAsBr2B,EAAtBq2B,SAAUC,EAAYt2B,EAAZs2B,QACZC,EAAYF,EAAS3tC,MAAK,GAAApI,OAAM+1C,EAAS3tC,MAAK,OAAApI,OAAMy1C,GAAcA,EAClElgC,EAAOwgC,EAASxgC,KAAOwgC,EAASxgC,KAAOogC,EACvCO,EAAaH,EAASI,MAAQJ,EAASI,MAAQT,EAC/C1zB,EAAS1jB,OAaf,OAVA2J,aAAgB,WACR+Z,EAAOC,WACPD,EAAOC,UAAU9d,KAAK,CAClBuf,MAAO,WACP0yB,iBAAkBH,EAClBI,eAAgB/3C,OAAOC,SAASgmB,SAGzC,CAAC0xB,IAGAhuC,gBAACquC,SAAM,KACHruC,gBAAA,aAAQguC,GACRhuC,gBAAA,QAAM8jB,KAAK,cAAcpmB,QAASowC,EAASQ,cAE3CtuC,gBAAA,QAAMuuC,IAAI,YAAYjyB,KAAI,GAAAvkB,OAAKyqB,EAAO,KAAAzqB,OAAI5B,GAAQ4B,OAAG+1C,EAASloC,OA/BhD,SAACkoC,GACvB,IAAMU,EAAiBb,EAAe5zC,KAAI,SAAA00C,GAAQ,OAC9CzuC,gBAAA,QAAMuuC,IAAI,YAAY12C,IAAK42C,EAAUnyB,KAAI,GAAAvkB,OAAKyqB,EAAO,KAAAzqB,OAAI02C,GAAQ12C,OAAG+1C,EAASloC,KAAO8oC,SAAUD,OAGlG,OADAD,EAAetyC,KAAK8D,gBAAA,QAAMuuC,IAAI,YAAY12C,IAAI,SAASykB,KAAI,GAAAvkB,OAAKyqB,EAAO,OAAAzqB,OAAM+1C,EAASloC,KAAO8oC,SAAS,eAC/FF,EA2BEG,CAAkBb,GAClBC,GAAW/tC,gBAAA,QAAM8jB,KAAK,SAASpmB,QAAQ,YAGxCsC,gBAAA,QAAM4uC,SAAS,OAAOlxC,QAAS8vC,IAC/BxtC,gBAAA,QAAM4uC,SAAS,cAAclxC,QAASowC,EAASQ,cAC/CtuC,gBAAA,QAAM4uC,SAAS,QAAQlxC,QAASuwC,IAGhCjuC,gBAAA,QAAM2B,SAAS,WAAWjE,QAASswC,IACnChuC,gBAAA,QAAM2B,SAAS,SAASjE,QAASowC,EAASloC,MAC1C5F,gBAAA,QAAM2B,SAAS,iBAAiBjE,QAASowC,EAASQ,cAClDtuC,gBAAA,QAAM2B,SAAS,WAAWjE,QAASuwC,IACnCjuC,gBAAA,QAAM2B,SAAS,eAAejE,QAAS8vC,IACvCxtC,gBAAA,QAAM2B,SAAS,YAAYjE,QAAS7G,IACpCmJ,gBAAA,QAAM2B,SAAS,UAAUjE,QAAQ,YAGjCsC,gBAAA,QAAM8jB,KAAK,WAAWpmB,QAAQ,+EAG9BsC,gBAAA,QAAM8jB,KAAK,eAAepmB,QAAQ,YAClCsC,gBAAA,QAAM8jB,KAAK,eAAepmB,QA3EhB,cA8EVsC,gBAAA,UAAQsN,KAAK,uBAAqB,4HAAAvV,OAIVuV,EAAI,yCAAAvV,OACLi2C,EAAS,gDAAAj2C,OACF+1C,EAASQ,YAAW,kDAAAv2C,OArF1C,WAsFmC,wCAAAA,OACrByqB,EAAUsrB,EAASloC,IAAG,qIAAA7N,OAGlByqB,GAAOzqB,OAAGk2C,EAAU,0DAAAl2C,OAEvB,YAATuV,EAAqBsgC,EAAmB,GAAE,+B,sGC3ErD5tC,cApBf,SAAeyX,GAAoB,IACvBtX,EAA+BsX,EAA/BtX,MAAOzC,EAAwB+Z,EAAxB/Z,QAASsG,EAAeyT,EAAfzT,KAAMs3B,EAAS7jB,EAAT6jB,KAC9B,OACIt7B,gBAAA,OAAK0X,UAAU,SACX1X,gBAAA,OAAK0X,UAAU,iBAEP4jB,GAAQA,EAEZt7B,gBAAA,MAAI0X,UAAU,gBAAgBvX,IAElCH,gBAAA,OAAK0X,UAAU,SACX1X,gBAACm7B,IAAW,CAACte,KAAMnf,KAEtBsG,GAAuB,KAAbA,EAAK4B,KAA4B,KAAd5B,EAAKvE,MAC/BO,gBAACyc,IAAU,CAAC7W,IAAK5B,EAAK4B,IAAK8R,UAAU,qBAAqBjY,KAAMuE,EAAKvE,KAAM2wB,aAAW,EAACC,SAAO,S,4FCf/F,SAASwe,EAAQp3B,GAAsB,IAC1CC,EAAuBD,EAAvBC,UAAWo3B,EAAYr3B,EAAZq3B,QACnB,OAAO9uC,gBAAA,QAAM0X,UAAW/hB,YAAG,UAAW,CAAE,mBAAoBm5C,GAAWp3B,O,+FCL3E,SAASwG,IAAiS,OAApRA,EAAWnB,OAAOC,OAASD,OAAOC,OAAOmB,OAAS,SAAUC,GAAU,IAAK,IAAI9f,EAAI,EAAGA,EAAIwK,UAAUrS,OAAQ6H,IAAK,CAAE,IAAI4M,EAASpC,UAAUxK,GAAI,IAAK,IAAIzG,KAAOqT,EAAc6R,OAAOsB,UAAUC,eAAeC,KAAKrT,EAAQrT,KAAQumB,EAAOvmB,GAAOqT,EAAOrT,IAAY,OAAOumB,IAA2BvZ,MAAM2Z,KAAM1V,WACtU,SAAS2V,EAAyBvT,EAAQwT,GAAY,GAAc,MAAVxT,EAAgB,MAAO,GAAI,IAAkErT,EAAKyG,EAAnE8f,EACzF,SAAuClT,EAAQwT,GAAY,GAAc,MAAVxT,EAAgB,MAAO,GAAI,IAA2DrT,EAAKyG,EAA5D8f,EAAS,GAAQO,EAAa5B,OAAO6B,KAAK1T,GAAqB,IAAK5M,EAAI,EAAGA,EAAIqgB,EAAWloB,OAAQ6H,IAAOzG,EAAM8mB,EAAWrgB,GAAQogB,EAASzlB,QAAQpB,IAAQ,IAAaumB,EAAOvmB,GAAOqT,EAAOrT,IAAQ,OAAOumB,EADxMS,CAA8B3T,EAAQwT,GAAuB,GAAI3B,OAAO+B,sBAAuB,CAAE,IAAIC,EAAmBhC,OAAO+B,sBAAsB5T,GAAS,IAAK5M,EAAI,EAAGA,EAAIygB,EAAiBtoB,OAAQ6H,IAAOzG,EAAMknB,EAAiBzgB,GAAQogB,EAASzlB,QAAQpB,IAAQ,GAAkBklB,OAAOsB,UAAUW,qBAAqBT,KAAKrT,EAAQrT,KAAgBumB,EAAOvmB,GAAOqT,EAAOrT,IAAU,OAAOumB,EAGne,IAAIa,EAAqB,IAAMlhB,cAAc,IAAK,CAChDgxC,SAAU,0BACT,IAAMhxC,cAAc,OAAQ,CAC7BuhB,MAAO,GACPC,OAAQ,GACRyvB,GAAI,KACJ7vB,KAAM,UACJ,IAAMphB,cAAc,OAAQ,CAC9BmhB,EAAG,mEACH+vB,OAAQ,UACRC,YAAa,QACbC,iBAAkB,MAChB,IAAMpxC,cAAc,OAAQ,CAC9BmhB,EAAG,kEACH+vB,OAAQ,UACRC,YAAa,QACbC,iBAAkB,MAChB,IAAMpxC,cAAc,OAAQ,CAC9BmhB,EAAG,kHACH+vB,OAAQ,UACRC,YAAa,QACbC,iBAAkB,MAChB,IAAMpxC,cAAc,OAAQ,CAC9BmhB,EAAG,+DACH+vB,OAAQ,UACRC,YAAa,QACbC,iBAAkB,MAChB,IAAMpxC,cAAc,OAAQ,CAC9BmhB,EAAG,kEACH+vB,OAAQ,UACRC,YAAa,QACbC,iBAAkB,MAChB,IAAMpxC,cAAc,OAAQ,CAC9BmhB,EAAG,iHACH+vB,OAAQ,QACRC,YAAa,QACbC,iBAAkB,MAChB,IAAMpxC,cAAc,OAAQ,CAC9BmhB,EAAG,mEACH+vB,OAAQ,UACRC,YAAa,QACbC,iBAAkB,MAChB,IAAMpxC,cAAc,OAAQ,CAC9BmhB,EAAG,kHACH+vB,OAAQ,UACRC,YAAa,QACbC,iBAAkB,OAEhBC,EAAqB,IAAMrxC,cAAc,OAAQ,CACnDhF,EAAG,GACH6xB,EAAG,GACHtL,MAAO,GACPC,OAAQ,GACRyvB,GAAI,GACJC,OAAQ,YAENI,EAAqB,IAAMtxC,cAAc,OAAQ,KAAM,IAAMA,cAAc,WAAY,CACzFwN,GAAI,oBACH,IAAMxN,cAAc,OAAQ,CAC7BuhB,MAAO,GACPC,OAAQ,GACRyvB,GAAI,KACJ7vB,KAAM,YAEJ,EAA4B,SAAmC/D,GACjE,IAAIiE,EAASjE,EAAKiE,OAChB5H,EAAQgH,EAAyBrD,EAAM,CAAC,WAC1C,OAAO,IAAMrd,cAAc,MAAOmgB,EAAS,CACzCoB,MAAO,GACPC,OAAQ,GACRC,QAAS,YACTL,KAAM,OACN9F,IAAKgG,GACJ5H,GAAQwH,EAAOmwB,EAAOC,IAEvB5vB,EAAa,IAAMC,YAAW,SAAUjI,EAAO4B,GACjD,OAAO,IAAMtb,cAAc,EAA2BmgB,EAAS,CAC7DmB,OAAQhG,GACP5B,O,GAEU,I,eCpFf,SAAS,IAAiS,OAApR,EAAWsF,OAAOC,OAASD,OAAOC,OAAOmB,OAAS,SAAUC,GAAU,IAAK,IAAI9f,EAAI,EAAGA,EAAIwK,UAAUrS,OAAQ6H,IAAK,CAAE,IAAI4M,EAASpC,UAAUxK,GAAI,IAAK,IAAIzG,KAAOqT,EAAc6R,OAAOsB,UAAUC,eAAeC,KAAKrT,EAAQrT,KAAQumB,EAAOvmB,GAAOqT,EAAOrT,IAAY,OAAOumB,IAA2BvZ,MAAM2Z,KAAM1V,WACtU,SAAS,EAAyBoC,EAAQwT,GAAY,GAAc,MAAVxT,EAAgB,MAAO,GAAI,IAAkErT,EAAKyG,EAAnE8f,EACzF,SAAuClT,EAAQwT,GAAY,GAAc,MAAVxT,EAAgB,MAAO,GAAI,IAA2DrT,EAAKyG,EAA5D8f,EAAS,GAAQO,EAAa5B,OAAO6B,KAAK1T,GAAqB,IAAK5M,EAAI,EAAGA,EAAIqgB,EAAWloB,OAAQ6H,IAAOzG,EAAM8mB,EAAWrgB,GAAQogB,EAASzlB,QAAQpB,IAAQ,IAAaumB,EAAOvmB,GAAOqT,EAAOrT,IAAQ,OAAOumB,EADxM,CAA8BlT,EAAQwT,GAAuB,GAAI3B,OAAO+B,sBAAuB,CAAE,IAAIC,EAAmBhC,OAAO+B,sBAAsB5T,GAAS,IAAK5M,EAAI,EAAGA,EAAIygB,EAAiBtoB,OAAQ6H,IAAOzG,EAAMknB,EAAiBzgB,GAAQogB,EAASzlB,QAAQpB,IAAQ,GAAkBklB,OAAOsB,UAAUW,qBAAqBT,KAAKrT,EAAQrT,KAAgBumB,EAAOvmB,GAAOqT,EAAOrT,IAAU,OAAOumB,EAGne,IAAI,EAAqB,IAAMrgB,cAAc,IAAK,CAChDgxC,SAAU,0BACT,IAAMhxC,cAAc,OAAQ,CAC7BuhB,MAAO,GACPC,OAAQ,GACRyvB,GAAI,KACJ7vB,KAAM,UACJ,IAAMphB,cAAc,OAAQ,CAC9BmhB,EAAG,mEACH+vB,OAAQ,UACRC,YAAa,QACbC,iBAAkB,MAChB,IAAMpxC,cAAc,OAAQ,CAC9BmhB,EAAG,kEACH+vB,OAAQ,UACRC,YAAa,QACbC,iBAAkB,MAChB,IAAMpxC,cAAc,OAAQ,CAC9BmhB,EAAG,kHACH+vB,OAAQ,UACRC,YAAa,QACbC,iBAAkB,MAChB,IAAMpxC,cAAc,OAAQ,CAC9BmhB,EAAG,+DACH+vB,OAAQ,UACRC,YAAa,QACbC,iBAAkB,MAChB,IAAMpxC,cAAc,OAAQ,CAC9BmhB,EAAG,kEACH+vB,OAAQ,UACRC,YAAa,QACbC,iBAAkB,MAChB,IAAMpxC,cAAc,OAAQ,CAC9BmhB,EAAG,iHACH+vB,OAAQ,QACRC,YAAa,QACbC,iBAAkB,MAChB,IAAMpxC,cAAc,OAAQ,CAC9BmhB,EAAG,mEACH+vB,OAAQ,UACRC,YAAa,QACbC,iBAAkB,MAChB,IAAMpxC,cAAc,OAAQ,CAC9BmhB,EAAG,kHACH+vB,OAAQ,UACRC,YAAa,QACbC,iBAAkB,OAEhB,EAAqB,IAAMpxC,cAAc,OAAQ,CACnDhF,EAAG,GACH6xB,EAAG,GACHtL,MAAO,GACPC,OAAQ,GACRyvB,GAAI,GACJC,OAAQ,YAEN,EAAqB,IAAMlxC,cAAc,OAAQ,KAAM,IAAMA,cAAc,WAAY,CACzFwN,GAAI,oBACH,IAAMxN,cAAc,OAAQ,CAC7BuhB,MAAO,GACPC,OAAQ,GACRyvB,GAAI,KACJ7vB,KAAM,YAEJ,EAAmB,SAA0B/D,GAC/C,IAAIiE,EAASjE,EAAKiE,OAChB5H,EAAQ,EAAyB2D,EAAM,CAAC,WAC1C,OAAO,IAAMrd,cAAc,MAAO,EAAS,CACzCuhB,MAAO,GACPC,OAAQ,GACRC,QAAS,YACTL,KAAM,OACN9F,IAAKgG,GACJ5H,GAAQ,EAAO,EAAO,IAEvB,EAAa,IAAMiI,YAAW,SAAUjI,EAAO4B,GACjD,OAAO,IAAMtb,cAAc,EAAkB,EAAS,CACpDshB,OAAQhG,GACP5B,O,GAEU,I,QC1Ef,SAAS63B,IACL,OACItvC,gBAACuvC,EAAO,CAAC73B,UAAU,mCAK3B,SAAS83B,EAAkBC,GACvB,OAAQA,GACJ,IAAK,iBACD,OAAOzvC,gBAAC0vC,EAAkB,CAACl3C,MAAO,CAAE+mB,OAAQ,OAAQD,MAAO,UAC/D,IAAK,gBACD,OAAOtf,gBAAC2vC,IAAiB,MAC7B,IAAK,oCAEL,IAAK,2CAEL,IAAK,gBAEL,IAAK,MAEL,QACI,OAAO3vC,gBAAC4vC,IAAO,OAwJZ5vC,YAjEf,SAAmBob,GAyBE,IAADy0B,EAAAC,EAAAC,EAAA30B,EAxBhBgD,cAAM,IAAA2xB,EAAG,SAAQA,EACjBnqC,EAAGwV,EAAHxV,IACAnG,EAAI2b,EAAJ3b,KAAIuwC,EAAA50B,EACJjb,aAAK,IAAA6vC,EAAG,GAAEA,EACV3f,EAAOjV,EAAPiV,QACAzW,EAAUwB,EAAVxB,WACAq2B,EAAS70B,EAAT60B,UAASC,EAAA90B,EACTf,mBAAW,IAAA61B,EAAG,YAAWA,EACzB51B,EAAQc,EAARd,SACA8V,EAAWhV,EAAXgV,YACA+f,EAAY/0B,EAAZ+0B,aACAC,EAAMh1B,EAANg1B,OACA71B,EAAWa,EAAXb,YACA7C,EAAS0D,EAAT1D,UACA24B,EAAej1B,EAAfi1B,gBACA/2B,EAAO8B,EAAP9B,QACAg3B,EAAQl1B,EAARk1B,SACAC,EAAWn1B,EAAXm1B,YAAWC,EAAAp1B,EACX7P,UAAE,IAAAilC,EAAG,OAAMA,EACXC,EAAQr1B,EAARq1B,SACAC,EAAQt1B,EAARs1B,SACAC,EAAUv1B,EAAVu1B,WACA54B,EAAQqD,EAARrD,SACA6E,EAAWxB,EAAXwB,YAEMg0B,EAAiBhrC,EAAMA,EAAIH,MAAM,kCAAoC,GACrEorC,EAAcjrC,EAAMA,EAAIH,MAAM,eAAiB,GAE/CqrC,EAAiBn7C,YAAG,QAAS+hB,GAASm4B,EAAA,GAAAlnB,IAAAknB,EAAC,UAAD93C,OAC7Bk4C,GAAcA,GAAStnB,IAAAknB,EAClC,mBAAoBzf,GAAWzH,IAAAknB,EAC/B,mBAAoBM,GAAYxnB,IAAAknB,EAChC,cAAexf,GAAO1H,IAAAknB,EACtB,mBAAoBt1B,GAAWoO,IAAAknB,EAC/B,gBAAiBO,GAAMP,IAGrBkB,EAAmBp7C,YAAG,SAAU+hB,GAASo4B,EAAA,GAAAnnB,IAAAmnB,EAAC,WAAD/3C,OAC/BsiB,GAAgBA,GAAWsO,IAAAmnB,EACvC,oBAAqB1f,GAAWzH,IAAAmnB,EAChC,eAAgBzf,GAAO1H,IAAAmnB,EACvB,oBAAqBv1B,GAAWoO,IAAAmnB,EAChC,iBAAkBM,GAAMznB,IAAAmnB,EACxB,2BAA4BW,GAAQX,IAGlCkB,EAAgBr7C,YAAG,cAAe,CACpC,sBAAuBy6C,EACvB,kBAAmBx2B,EACnB,iBAAkB62B,EAClB,kBAAmB14B,IAGjBoD,EAAc,SAACM,GACbnC,GAASA,EAAQmC,IAEnBw1B,EAAY32B,EAAWy2B,EAAmBD,EAEhD,OAAIF,GAAkBC,EA9I1B,SACIG,EACAC,EACA7yB,EACAxY,EACAnG,GAQD,IAPCU,EAAK2I,UAAArS,OAAA,QAAA4U,IAAAvC,UAAA,GAAAA,UAAA,GAAG,GACRunB,EAA4BvnB,UAAArS,OAAA,EAAAqS,UAAA,QAAAuC,EAC5BslC,EAA+B7nC,UAAArS,OAAA,EAAAqS,UAAA,QAAAuC,EAC/BklC,EAAgCznC,UAAArS,OAAA,EAAAqS,UAAA,QAAAuC,EAChCilC,EAA+CxnC,UAAArS,OAAA,EAAAqS,UAAA,QAAAuC,EAC/CiO,EAA+CxQ,UAAArS,OAAA,GAAAqS,UAAA,SAAAuC,EAC/CE,EAAEzC,UAAArS,OAAA,SAAA4U,IAAAvC,UAAA,IAAAA,UAAA,IAAG,gBAECooC,EACFlxC,2BAAA,KACK2wC,EAAanB,EAAkB/vC,GAAQ,KACxCO,gBAAA,QAAM0X,UAAWs5B,GAAgBvxC,GAEhC4wB,IAAazqB,EAAIlP,SAAS,6BAAoGsJ,gBAAC6wB,IAAc,CAACnZ,UAAU,sCAA/F1X,gBAACmxC,IAAgB,CAACz5B,UAAU,wCAI9F,OACI1X,gBAAA,KAAGsc,KAAM1W,EAAKwY,OAAQA,EAAQje,MAAOA,EAAOkZ,IAAKi3B,EAAU/B,IAAI,sBAAsB72B,UAAWu5B,EAAW33B,QAASA,EAASC,cAAahO,GACrIpL,GAASowC,GACNvwC,2BAAA,KACIA,gBAAA,QAAM0X,UAAU,iBAAiBvX,GACjCH,gBAAA,YAAOkxC,KAGbX,GAAeW,GAgHdE,CAAmBJ,EAAeC,EAAW7yB,EAAQxY,EAAKnG,EAAMU,EAAOkwB,EAASsgB,EAAYJ,EAAaD,EAAUn1B,EAAa5P,GA3G/I,SACIylC,EACAC,EACAxxC,GAaD,IAZCU,EAAK2I,UAAArS,OAAA,QAAA4U,IAAAvC,UAAA,GAAAA,UAAA,GAAG,GACRunB,EAA4BvnB,UAAArS,OAAA,EAAAqS,UAAA,QAAAuC,EAC5BzF,EAAWkD,UAAArS,OAAA,EAAAqS,UAAA,QAAAuC,EACXglC,EAAwBvnC,UAAArS,OAAA,EAAAqS,UAAA,QAAAuC,EACxBilC,EAA+CxnC,UAAArS,OAAA,EAAAqS,UAAA,QAAAuC,EAC/CiO,EAA+CxQ,UAAArS,OAAA,EAAAqS,UAAA,QAAAuC,EAC/CE,EAAEzC,UAAArS,OAAA,QAAA4U,IAAAvC,UAAA,GAAAA,UAAA,GAAG,gBACL8Q,EAA2B9Q,UAAArS,OAAA,GAAAqS,UAAA,SAAAuC,EAC3BolC,EAAyB3nC,UAAArS,OAAA,GAAAqS,UAAA,SAAAuC,EACzBqlC,EAAyB5nC,UAAArS,OAAA,GAAAqS,UAAA,SAAAuC,EACzBslC,EAA2B7nC,UAAArS,OAAA,GAAAqS,UAAA,SAAAuC,EAC3BuR,EAA6B9T,UAAArS,OAAA,GAAAqS,UAAA,SAAAuC,EAEvBlV,EAAWyB,YAAQ,YACnByI,EAAUuc,EAAchX,EAAG,IAAA7N,OAAO5B,GAAQ4B,OAAG6N,GACnD,YAAwByF,IAApBglC,EAEIz2B,EACI5Z,gBAAA,QAAM0X,UAAWs5B,GAAgBvxC,GACjCO,gBAACqxC,IAAO,CAACC,GAAIjxC,EAASF,MAAOA,EAAOoxC,SAAUjB,EAAU54B,UAAWu5B,EAAWZ,gBAAiBA,EAAiB/2B,QAASA,GACpHm3B,EAAWnB,IAAgB,KAC3BqB,EAAanB,EAAkB/vC,GAAQ,KACvCixC,EACG1wC,gBAAA,OAAKid,wBAAyB,CAAEC,OAAQhe,YAAU,wBAAyB,OAC3Ec,gBAAA,QAAM0X,UAAWs5B,GAAgBvxC,GACpC4wB,GAAWrwB,gBAAC6wB,IAAc,CAACnZ,UAAU,uCAKlDkC,EACI5Z,gBAAA,QAAM0X,UAAWs5B,GAAc,UAC/BhxC,gBAACwxC,IAAI,CAACF,GAAIjxC,EAASF,MAAOA,EAAOoxC,SAAUjB,EAAU54B,UAAWu5B,EAAW33B,QAASA,EAASC,cAAahO,GACrGklC,EAAWnB,IAAgB,KAC3BqB,EAAanB,EAAkB/vC,GAAQ,KACvCixC,EACG1wC,gBAAA,OAAK0X,UAAWs5B,EAAe/zB,wBAAyB,CAAEC,OAAQhe,YAAUO,EAAM,OAClFO,gBAAA,QAAM0X,UAAWs5B,GAAgBvxC,GACpC4wB,GAAWrwB,gBAAC6wB,IAAc,CAACnZ,UAAU,uCAmE3C+5B,CAAmBT,EAAeC,EAAWxxC,EAAMU,EAAOkwB,EAASzqB,EAAKyqC,EAAiBC,EAAUn1B,EAAa5P,EAAIqO,EAAY62B,EAAUC,EAAUC,EAAY/zB,O,iCCrL3K,+DAASsB,IAAiS,OAApRA,EAAWnB,OAAOC,OAASD,OAAOC,OAAOmB,OAAS,SAAUC,GAAU,IAAK,IAAI9f,EAAI,EAAGA,EAAIwK,UAAUrS,OAAQ6H,IAAK,CAAE,IAAI4M,EAASpC,UAAUxK,GAAI,IAAK,IAAIzG,KAAOqT,EAAc6R,OAAOsB,UAAUC,eAAeC,KAAKrT,EAAQrT,KAAQumB,EAAOvmB,GAAOqT,EAAOrT,IAAY,OAAOumB,IAA2BvZ,MAAM2Z,KAAM1V,WACtU,SAAS2V,EAAyBvT,EAAQwT,GAAY,GAAc,MAAVxT,EAAgB,MAAO,GAAI,IAAkErT,EAAKyG,EAAnE8f,EACzF,SAAuClT,EAAQwT,GAAY,GAAc,MAAVxT,EAAgB,MAAO,GAAI,IAA2DrT,EAAKyG,EAA5D8f,EAAS,GAAQO,EAAa5B,OAAO6B,KAAK1T,GAAqB,IAAK5M,EAAI,EAAGA,EAAIqgB,EAAWloB,OAAQ6H,IAAOzG,EAAM8mB,EAAWrgB,GAAQogB,EAASzlB,QAAQpB,IAAQ,IAAaumB,EAAOvmB,GAAOqT,EAAOrT,IAAQ,OAAOumB,EADxMS,CAA8B3T,EAAQwT,GAAuB,GAAI3B,OAAO+B,sBAAuB,CAAE,IAAIC,EAAmBhC,OAAO+B,sBAAsB5T,GAAS,IAAK5M,EAAI,EAAGA,EAAIygB,EAAiBtoB,OAAQ6H,IAAOzG,EAAMknB,EAAiBzgB,GAAQogB,EAASzlB,QAAQpB,IAAQ,GAAkBklB,OAAOsB,UAAUW,qBAAqBT,KAAKrT,EAAQrT,KAAgBumB,EAAOvmB,GAAOqT,EAAOrT,IAAU,OAAOumB,EAGne,IAAIa,EAAqB,IAAMlhB,cAAc,OAAQ,CACnDmhB,EAAG,2SAEDwyB,EAAkB,SAAyBt2B,GAC7C,IAAIiE,EAASjE,EAAKiE,OAChB5H,EAAQgH,EAAyBrD,EAAM,CAAC,WAC1C,OAAO,IAAMrd,cAAc,MAAOmgB,EAAS,CACzCoB,MAAO,GACPC,OAAQ,GACRC,QAAS,YACTL,KAAM,OACN9F,IAAKgG,GACJ5H,GAAQwH,IAETQ,EAAa,IAAMC,YAAW,SAAUjI,EAAO4B,GACjD,OAAO,IAAMtb,cAAc2zC,EAAiBxzB,EAAS,CACnDmB,OAAQhG,GACP5B,OAEU,K,iCCvBA,aAAC7R,GACZ,IAAMH,EAAQG,EAAIH,MAAM,UACxB,OAAIA,GAASA,EAAM,GACRA,EAAM,GAAGkvB,OAAO,EAAGlvB,EAAM,GAAGhP,OAAS,GAEzC,I,iCCLX,+DAASynB,IAAiS,OAApRA,EAAWnB,OAAOC,OAASD,OAAOC,OAAOmB,OAAS,SAAUC,GAAU,IAAK,IAAI9f,EAAI,EAAGA,EAAIwK,UAAUrS,OAAQ6H,IAAK,CAAE,IAAI4M,EAASpC,UAAUxK,GAAI,IAAK,IAAIzG,KAAOqT,EAAc6R,OAAOsB,UAAUC,eAAeC,KAAKrT,EAAQrT,KAAQumB,EAAOvmB,GAAOqT,EAAOrT,IAAY,OAAOumB,IAA2BvZ,MAAM2Z,KAAM1V,WACtU,SAAS2V,EAAyBvT,EAAQwT,GAAY,GAAc,MAAVxT,EAAgB,MAAO,GAAI,IAAkErT,EAAKyG,EAAnE8f,EACzF,SAAuClT,EAAQwT,GAAY,GAAc,MAAVxT,EAAgB,MAAO,GAAI,IAA2DrT,EAAKyG,EAA5D8f,EAAS,GAAQO,EAAa5B,OAAO6B,KAAK1T,GAAqB,IAAK5M,EAAI,EAAGA,EAAIqgB,EAAWloB,OAAQ6H,IAAOzG,EAAM8mB,EAAWrgB,GAAQogB,EAASzlB,QAAQpB,IAAQ,IAAaumB,EAAOvmB,GAAOqT,EAAOrT,IAAQ,OAAOumB,EADxMS,CAA8B3T,EAAQwT,GAAuB,GAAI3B,OAAO+B,sBAAuB,CAAE,IAAIC,EAAmBhC,OAAO+B,sBAAsB5T,GAAS,IAAK5M,EAAI,EAAGA,EAAIygB,EAAiBtoB,OAAQ6H,IAAOzG,EAAMknB,EAAiBzgB,GAAQogB,EAASzlB,QAAQpB,IAAQ,GAAkBklB,OAAOsB,UAAUW,qBAAqBT,KAAKrT,EAAQrT,KAAgBumB,EAAOvmB,GAAOqT,EAAOrT,IAAU,OAAOumB,EAGne,IAAIa,EAAqB,IAAMlhB,cAAc,OAAQ,CACnDmhB,EAAG,yBACH+vB,OAAQ,eACRC,YAAa,IAEXE,EAAqB,IAAMrxC,cAAc,SAAU,CACrD4zC,GAAI,GACJC,GAAI,GACJrzC,EAAG,KACH0wC,OAAQ,eACRC,YAAa,IAEX2C,EAAa,SAAoBz2B,GACnC,IAAIiE,EAASjE,EAAKiE,OAChB5H,EAAQgH,EAAyBrD,EAAM,CAAC,WAC1C,OAAO,IAAMrd,cAAc,MAAOmgB,EAAS,CACzCoB,MAAO,GACPC,OAAQ,GACRJ,KAAM,OACN9F,IAAKgG,GACJ5H,GAAQwH,EAAOmwB,IAEhB3vB,EAAa,IAAMC,YAAW,SAAUjI,EAAO4B,GACjD,OAAO,IAAMtb,cAAc8zC,EAAY3zB,EAAS,CAC9CmB,OAAQhG,GACP5B,OAEU,K,ktBC1Bf,IAAMq6B,EAAYC,aAAW,SAAC5hB,GAC1B,OAAO6hB,YAAa,CAChBC,aAAc,CACV1H,MAAOpa,EAAM0Y,QAAQnhC,MAAMohC,KAC3BoJ,QAAS,QACTC,UAAW,QACXxH,SAAUxa,EAAMwY,WAAWyJ,QAAQ,UAsGhCpyC,UAjGQ,SAAuBob,GAkBrB,IAjBrBi3B,EAASj3B,EAATi3B,UACA36B,EAAS0D,EAAT1D,UACA46B,EAAel3B,EAAfk3B,gBACArvB,EAAY7H,EAAZ6H,aACA0X,EAAWvf,EAAXuf,YACA4X,EAAQn3B,EAARm3B,SACAz1B,EAAU1B,EAAV0B,WACAlD,EAAUwB,EAAVxB,WAAU44B,EAAAp3B,EACVb,mBAAW,IAAAi4B,GAAOA,EAClB5X,EAAUxf,EAAVwf,WACAC,EAAKzf,EAALyf,MACA/W,EAAI1I,EAAJ0I,KACAgX,EAAQ1f,EAAR0f,SAAQxK,EAAAlV,EACR9N,YAAI,IAAAgjB,EAAG,OAAMA,EACbmiB,EAAar3B,EAAbq3B,cACAC,EAAWt3B,EAAXs3B,YAAWC,EAAAv3B,EACXw3B,oBAAY,IAAAD,EAAG,GAAEA,EAEX7S,EAAUgS,EAAU,GAAG55B,EAEHlY,WAAgCijB,GAAgB,IAAG9K,EAAA7b,IAAA4b,EAAA,GAAtEpe,EAAKqe,EAAA,GAAE0gB,EAAQ1gB,EAAA,GAkCtB,SAAS06B,EAAWC,EAASC,GACzB,IAAMC,EAAuB,KAAbF,EAAGh5C,MACfk5C,GAAWrY,GAnBnB,SAAkBmY,EAASG,EAAkBhB,EAAmBc,GAC5D,IAAMG,EAAaH,GAAQA,EAAKG,WAC1BC,EAAUL,EAAGM,QAAQ,UACrBC,EAAUF,GAAWA,EAAQj1C,cAAc,IAADnG,OAAK+rB,IAEjDmvB,IAAYF,EAAKO,QAEjBR,EAAGS,gBAAgB,kBAEhBL,IAAcG,KACjBP,EAAGU,aAAa,eAAgB,QAChCH,EAAQI,UAAS,GAAA17C,OAAM+rB,EAAI,kBAS3B4vB,CAASZ,GAAKE,EAASrY,EAAYjlB,QAASq9B,GAUpD,OACI/yC,gBAAA,OAAK0X,UAAW/hB,YAAG,SAADoC,OAAU2f,KACxB1X,gBAAC2zC,IAAS,CACNtB,UAAWA,EACXvhB,SAAUlX,EACVlS,WAAuB2D,IAAhBsvB,EACPkF,UAAWtlB,EACXq5B,WAAYrB,EACZz1B,WAAUvd,EAAA,GACHud,EAAW,CACd,aAAc+d,EACd,cAAe/W,EACf,mBAAoBA,IAExB+W,MAAOA,EACP/W,KAAMA,EACNgX,SA7DZ,SAAsBrf,GAClB,IAAMo4B,EAAWp4B,EAAM2C,OAAOtkB,MACxBqM,EAAiBlG,YAAwB4zC,GAE3CpB,GADgB,oBACcv5B,KAAK26B,KACnChb,EAAS1yB,GACT20B,EAAShX,EAAM3d,IAEdssC,IACD5Z,EAAS1yB,GACT20B,EAAShX,EAAM3d,KAoDX2tC,OAtBZ,SAAoBr4B,GAChBo3B,EAAWp3B,EAAM2C,OAAQ,CAAE21B,MAAM,KAsBzB5a,SAAUyB,EACVttB,KAAMA,EACNxT,MAAOw4C,GAAmBx4C,EAC1Bu8B,QAAQ,SACR2d,YAAatB,EACbuB,aAAcrB,IAEjBjY,GAAe36B,gBAAA,QAAMuL,GAAIuY,EAAMpM,UAAWooB,EAAQmS,aAAciC,YAAU,aAAavZ,EAAYjlB,c,iCC7GhH,+DAASwI,IAAiS,OAApRA,EAAWnB,OAAOC,OAASD,OAAOC,OAAOmB,OAAS,SAAUC,GAAU,IAAK,IAAI9f,EAAI,EAAGA,EAAIwK,UAAUrS,OAAQ6H,IAAK,CAAE,IAAI4M,EAASpC,UAAUxK,GAAI,IAAK,IAAIzG,KAAOqT,EAAc6R,OAAOsB,UAAUC,eAAeC,KAAKrT,EAAQrT,KAAQumB,EAAOvmB,GAAOqT,EAAOrT,IAAY,OAAOumB,IAA2BvZ,MAAM2Z,KAAM1V,WACtU,SAAS2V,EAAyBvT,EAAQwT,GAAY,GAAc,MAAVxT,EAAgB,MAAO,GAAI,IAAkErT,EAAKyG,EAAnE8f,EACzF,SAAuClT,EAAQwT,GAAY,GAAc,MAAVxT,EAAgB,MAAO,GAAI,IAA2DrT,EAAKyG,EAA5D8f,EAAS,GAAQO,EAAa5B,OAAO6B,KAAK1T,GAAqB,IAAK5M,EAAI,EAAGA,EAAIqgB,EAAWloB,OAAQ6H,IAAOzG,EAAM8mB,EAAWrgB,GAAQogB,EAASzlB,QAAQpB,IAAQ,IAAaumB,EAAOvmB,GAAOqT,EAAOrT,IAAQ,OAAOumB,EADxMS,CAA8B3T,EAAQwT,GAAuB,GAAI3B,OAAO+B,sBAAuB,CAAE,IAAIC,EAAmBhC,OAAO+B,sBAAsB5T,GAAS,IAAK5M,EAAI,EAAGA,EAAIygB,EAAiBtoB,OAAQ6H,IAAOzG,EAAMknB,EAAiBzgB,GAAQogB,EAASzlB,QAAQpB,IAAQ,GAAkBklB,OAAOsB,UAAUW,qBAAqBT,KAAKrT,EAAQrT,KAAgBumB,EAAOvmB,GAAOqT,EAAOrT,IAAU,OAAOumB,EAGne,IAAIa,EAAqB,IAAMlhB,cAAc,OAAQ,CACnDmhB,EAAG,0NACHC,KAAM,iBAEJg1B,EAAa,SAAoB/4B,GACnC,IAAIiE,EAASjE,EAAKiE,OAChB5H,EAAQgH,EAAyBrD,EAAM,CAAC,WAC1C,OAAO,IAAMrd,cAAc,MAAOmgB,EAAS,CACzCoB,MAAO,GACPC,OAAQ,EACRC,QAAS,WACTL,KAAM,OACN9F,IAAKgG,GACJ5H,GAAQwH,IAETQ,EAAa,IAAMC,YAAW,SAAUjI,EAAO4B,GACjD,OAAO,IAAMtb,cAAco2C,EAAYj2B,EAAS,CAC9CmB,OAAQhG,GACP5B,OAEU,K,80BCXf,IAAM28B,EAAc,CAChBC,QAASC,IACTC,QAASC,IACT9sC,MAAO+sC,IACPC,KAAMC,KAGJ7C,EAAYC,aAAW,SAAC5hB,GAAY,MAAM,CAC5CykB,UAAW,CACPC,WAAY,SAEhBR,QAAS,CACL3K,gBAAiBoL,IAAM,MAE3BptC,MAAO,CACHgiC,gBAAiB,WAErBgL,KAAM,CACFhL,gBAAiBvZ,EAAM0Y,QAAQkM,QAAQjM,MAE3CyL,QAAS,CACL7K,gBAAiBsL,IAAM,MAE3B1Z,KAAM,CACFqP,SAAUxa,EAAMwY,WAAWyJ,QAAQ,KAEvC6C,UAAW,CACPtI,QAASxc,EAAMwY,WAAWyJ,QAAQ,IAEtC8C,YAAa,CACTC,YAAahlB,EAAMwY,WAAWyJ,QAAQ,KAE1C18B,QAAS,CACLw8B,QAAS,OACT9T,SAAU,aA4CHp+B,cAxCf,SAAqBob,GAA0E,IAAvE1D,EAAS0D,EAAT1D,UAAWhC,EAAO0F,EAAP1F,QAAS2gB,EAAOjb,EAAPib,QAAS+e,EAAQh6B,EAARg6B,SAAUC,EAAQj6B,EAARi6B,SACrDvV,EAAUgS,IACVwD,EAAOlB,EAAY/d,GAASne,EACTlY,YAAe,GAAKmY,EAAA7b,IAAA4b,EAAA,GAAtC2hB,EAAI1hB,EAAA,GAAEo9B,EAAQp9B,EAAA,GAEfq9B,EAAc,SAAC/5B,EAA8B+jB,GAChC,cAAXA,IACJ+V,GAAS,GACLF,GAAUA,MAGlB,OACIr1C,gBAAA,OAAKuZ,cAAA,gBAAAxhB,OAA6Bs+B,GAAW3e,UAAW/hB,YAAG,8BAADoC,OAA+Bs+B,GAAW3e,IAChG1X,gBAACy1C,IAAQ,CACLC,aAAYn2C,EAAA,GACL61C,GAEPvb,KAAMA,EACNC,QAAS0b,GAETx1C,gBAAC21C,IAAe,CACZj+B,UAAW/hB,YAAGmqC,EAAQzJ,GAAUyJ,EAAQ8U,WACxCgB,mBAAA,GAAA79C,OAAqBs+B,EAAO,iBAC5B3gB,QACI1V,gBAAA,QAAMuL,GAAE,UAAAxT,OAAYs+B,EAAO,iBAAiB3e,UAAWooB,EAAQpqB,SAC3D1V,gBAACs1C,EAAI,CAAC59B,UAAW/hB,YAAGmqC,EAAQxE,KAAMwE,EAAQoV,eACzCx/B,GAGT0S,OAAQ,CACJpoB,gBAAC61C,IAAU,CAACh+C,IAAI,QAAQsoC,aAAW,QAAQoK,MAAM,UAAUjxB,QAASk8B,EAAa99B,UAAWooB,EAAQmV,WAChGj1C,gBAACogC,IAAS,CAAC1oB,UAAWooB,EAAQxE,KAAMwa,YAAY,oB,gCClF5E,YAEMp7C,EAAUq7C,cAEVC,EAAyB,CAAC,iBAG5BC,EAAmB,CACnB1/C,SAAU,GACVqU,OAAQ,IAGZ,SAASsrC,IACL7/C,OAAO8/C,SAAS,EAAG,GAGvBz7C,EAAQoe,QAAO,SAAAxiB,GACX,IAAM8/C,EAAkBH,EAAiB1/C,UAAY0/C,EAAiB1/C,WAAaD,EAASC,UAAwC,IAA3BD,EAASsU,OAAOnU,OACnH4/C,EAAoB//C,EAASsU,OAAOnU,OAAS,GAAKu/C,EAAuBl9C,QAAO,SAAAw9C,GAAI,OAAIhgD,EAASC,SAAS0C,QAAQq9C,IAAS,KAAG7/C,OAAS,EACvI8/C,EAA4B,KAAlBjgD,EAASwnC,MAEpBsY,IAAmBG,GAAYF,IAAmBr9B,WAAWk9B,EAAa,GAG/ED,EAAmB3/C,KAGRoE,O,gCC3Bf,kD,wtBCKA,IAAMioC,EAAqBxpC,YAAU,gCAE/Bq9C,EAAwB,SAAChrC,GAA0B,OAAsD,SAAC0Q,EAAUiV,GAAc,IAC5HslB,EAAiBtlB,IAAjBslB,aACAlrC,EAAOC,EAAPD,GACFs3B,EAAiB/qC,YAAI2+C,EAAa,QAAD1+C,OAAUwT,GAAM,IACjDi4B,EAAaX,KAAoBA,EAAevuB,UAAkBwuB,YAASD,EAAevuB,SAASkzB,YAAc7E,GACvH,IAAKp3B,IAAOs3B,GAAkBW,EAAY,CACtC,IAAMlD,EAAYlP,IAAW7a,2BAA2BhL,GAAIjE,MAAK,SAAAgN,GAC7D4H,EAAS,CAAE5H,SAAQ/U,EAAA,GAAO+U,EAASpL,KAAK,CAACs+B,WAAY,IAAItvC,OAAUoV,KAAM0iB,IAAuBzkB,UAEpGg1B,kBAAQD,MAIVoW,EAAkC,SAAClrC,GAA0B,OAA6D,SAAC0Q,EAAUiV,GAAc,IAC7IslB,EAAiBtlB,IAAjBslB,aACAlrC,EAAOC,EAAPD,GACFs3B,EAAiB/qC,YAAI2+C,EAAa,kBAAD1+C,OAAoBwT,GAAM,IAC3Di4B,EAAaX,KAAoBA,EAAevuB,UAAkBwuB,YAASD,EAAevuB,SAASkzB,YAAc7E,GACvH,IAAKp3B,IAAOs3B,GAAkBW,EAAY,CACtC,IAAMlD,EAAYlP,IAAWva,kCAAkCtL,GAAIjE,MAAK,SAAAgN,GACpE4H,EAAS,CAAE5H,SAAQ/U,EAAA,GAAO+U,EAASpL,KAAK,CAACs+B,WAAY,IAAItvC,OAAUoV,KAAM2iB,IAAwB1kB,UAErGg1B,kBAAQD,O,iCC7BhB,+DAASpiB,IAAiS,OAApRA,EAAWnB,OAAOC,OAASD,OAAOC,OAAOmB,OAAS,SAAUC,GAAU,IAAK,IAAI9f,EAAI,EAAGA,EAAIwK,UAAUrS,OAAQ6H,IAAK,CAAE,IAAI4M,EAASpC,UAAUxK,GAAI,IAAK,IAAIzG,KAAOqT,EAAc6R,OAAOsB,UAAUC,eAAeC,KAAKrT,EAAQrT,KAAQumB,EAAOvmB,GAAOqT,EAAOrT,IAAY,OAAOumB,IAA2BvZ,MAAM2Z,KAAM1V,WACtU,SAAS2V,EAAyBvT,EAAQwT,GAAY,GAAc,MAAVxT,EAAgB,MAAO,GAAI,IAAkErT,EAAKyG,EAAnE8f,EACzF,SAAuClT,EAAQwT,GAAY,GAAc,MAAVxT,EAAgB,MAAO,GAAI,IAA2DrT,EAAKyG,EAA5D8f,EAAS,GAAQO,EAAa5B,OAAO6B,KAAK1T,GAAqB,IAAK5M,EAAI,EAAGA,EAAIqgB,EAAWloB,OAAQ6H,IAAOzG,EAAM8mB,EAAWrgB,GAAQogB,EAASzlB,QAAQpB,IAAQ,IAAaumB,EAAOvmB,GAAOqT,EAAOrT,IAAQ,OAAOumB,EADxMS,CAA8B3T,EAAQwT,GAAuB,GAAI3B,OAAO+B,sBAAuB,CAAE,IAAIC,EAAmBhC,OAAO+B,sBAAsB5T,GAAS,IAAK5M,EAAI,EAAGA,EAAIygB,EAAiBtoB,OAAQ6H,IAAOzG,EAAMknB,EAAiBzgB,GAAQogB,EAASzlB,QAAQpB,IAAQ,GAAkBklB,OAAOsB,UAAUW,qBAAqBT,KAAKrT,EAAQrT,KAAgBumB,EAAOvmB,GAAOqT,EAAOrT,IAAU,OAAOumB,EAGne,IAAIa,EAAqB,IAAMlhB,cAAc,OAAQ,CACnDy9B,SAAU,UACVC,SAAU,UACVvc,EAAG,yNACHC,KAAM,iBAEJw3B,EAAkB,SAAyBv7B,GAC7C,IAAIiE,EAASjE,EAAKiE,OAChB5H,EAAQgH,EAAyBrD,EAAM,CAAC,WAC1C,OAAO,IAAMrd,cAAc,MAAOmgB,EAAS,CACzCoB,MAAO,GACPC,OAAQ,GACRC,QAAS,YACTL,KAAM,OACN9F,IAAKgG,GACJ5H,GAAQwH,IAETQ,EAAa,IAAMC,YAAW,SAAUjI,EAAO4B,GACjD,OAAO,IAAMtb,cAAc44C,EAAiBz4B,EAAS,CACnDmB,OAAQhG,GACP5B,OAEU,K,0ICpBTq6B,EAAYC,YACdC,YAAa,CACT4E,UAAW,CACP/B,WAAY,SAEhBgC,SAAU,CACNlK,QAAS,cAgCN3sC,UA3BO,SAAsBob,GAMpB,IALpByf,EAAKzf,EAALyf,MACA5X,EAAY7H,EAAZ6H,aACAvL,EAAS0D,EAAT1D,UACAoM,EAAI1I,EAAJ0I,KACAgX,EAAQ1f,EAAR0f,SAEMgF,EAAUgS,EAAU,GAAG55B,EAEHlY,WAAwBijB,IAAgB,GAAM9K,EAAA7b,IAAA4b,EAAA,GAAjEpe,EAAKqe,EAAA,GAAE0gB,EAAQ1gB,EAAA,GAOtB,OACInY,gBAAC82C,IAAgB,CACbC,QAAS/2C,gBAACg3C,IAAQ,CAACzM,MAAM,UAAUzmB,KAAMA,EAAMvY,GAAIuY,EAAMhqB,MAAOA,EAAOghC,SAP/E,SAAsBrf,EAAe6O,GACjCuO,EAASvO,GACTwQ,EAASxQ,IAK0F5S,UAAWooB,EAAQ+W,WAClHhc,MAAOA,EACPnjB,UAAW/hB,YAAGmqC,EAAQ8W,UAAWl/B,GACjC6B,cAAauK,EACbwG,QAASxwB,Q,qt7CC9BrB,IAAM2oC,EAAgBD,MAEhB7d,EAAoB8d,EAAuBwU,KAG3Cl9B,EADe4I,cACQvsB,kBAAgD,CAAE4jB,UAAW,IAAzC3jB,OAC7C0jB,IAAQA,EAAOC,UAAYD,EAAOC,WAAa,IAEnD,IAAM4K,EAAsB6d,EAAuByU,KAE7CC,EAAqBC,uBAA6B3U,GACpD4U,EAAyBlf,YAAoB,GAAI,IAC/CllB,EAAW9Z,YAAU,+BAC3B,SAASm+C,EAAgBn0C,GACjB4W,GACAA,EAAOC,UAAU9d,KAAK,CAClBq7C,cAAep0C,EAASo0C,cACxBC,kBAAmBr0C,EAASq0C,kBAC5BC,YAAat0C,EAASs0C,YACtBC,mBAAoBv0C,EAASu0C,mBAC7BC,mBAAoBx0C,EAASw0C,qBAKzC,IAuCM1yB,EAAsBkyB,EAA6CS,KAAiB,SAACpsC,EAAQ0Q,EAAUiV,GACzG,IAAMrW,EAAQqW,IACR3M,EAAqB1sB,YAAIgjB,EAAO,2BAChCjjB,EAAMsB,YAAU,sBAEtB,OAAOi4B,IAAWpe,eAAe1L,MAAK,SAACuwC,GACnC,IAAI7f,EAQJ,OAPI6f,EAAa3uC,OACb8uB,EAAgB6f,EAAa3uC,OAEjC8uB,EAAgBA,GAAiBA,EAAcl/B,QAAO,SAAAC,GAAC,OAAIA,EAAEk/B,gBAAkBd,IAAWkL,yBAEtFgV,EAAyBlf,YAAoBllB,EAAS6kC,cAAe9f,IAElE5G,IAAWtiB,YAAYuoC,EAAuBl3C,OAAOmH,MAAK,SAAAnE,GAC7D,GAAIA,GAAYA,EAAS+F,KAAM,CAC3B,IAAM0I,EAAMzO,EAAS+F,KAAKquC,cAC1B,GAAI1/C,GAAO+Z,EACP,OAAOwf,IAAW9e,0BAA0BV,GAAKtK,MAAK,SAAAgN,GAClD,MAAO,CACHzc,MAGAkgD,UAAWzjC,EAASpL,KAAKgJ,aAAe,CAAE+X,SAAU,GAAIsa,UAAW,GAAIyT,QAAS,GAAIxT,WAAY,IAChGyT,iBAAiB,MAKjC,OAAOzzB,WAKbU,EAAuBiyB,EAAyDe,KAAwB,SAAC1sC,EAAQ0Q,EAAUiV,GAC7H,IAAMrW,EAAQqW,IACRjuB,EAAOpL,YAAIgjB,EAAO,QAChB0J,EAAiCthB,EAAjCshB,mBAAoBrhB,EAAaD,EAAbC,SACpBtL,EAAQ2sB,EAAR3sB,IACR,GAAIqL,EAAKohB,YAAcnhB,EAAU,CAC7B,IAAMyO,EAAMzO,EAASo0C,cAErB,OAAOnmB,IAAW9e,0BAA0BV,GAAKtK,MAAK,SAAAgN,GAClD,IAAM6jC,EAAiB7jC,EAASpL,KAAKgJ,YACrC,OAnFe,SAACra,EAAa+Z,EAAawmC,EAA8BD,GAuBhF,OAtBAC,EAAWr8C,SAAQ,SAAAyP,GAAW,IAClB4c,EAA2B5c,EAA3B4c,OAAQ9a,EAAmB9B,EAAnB8B,KAAM8f,EAAa5hB,EAAb4hB,SACP,QAAXhF,GACM9a,KAAQ6qC,IAAYA,EAAU7qC,GAA2B,IAElD,aAATA,GAA+G,IAAxF6qC,EAAUluB,SAASnxB,QAAO,SAAAomB,GAAC,OAAIA,EAAEm5B,QAAU7sC,EAAO4hB,SAASirB,MAAM92C,cAAY9K,QAAc0hD,EAAUluB,SAAS/tB,KAAKkxB,GACjI,cAAT9f,GAAsG,IAA9E6qC,EAAU5T,UAAUzrC,QAAO,SAAAomB,GAAC,OAAIA,EAAEm5B,QAAU7sC,EAAO4hB,SAASirB,SAAO5hD,QAAc0hD,EAAU5T,UAAUroC,KAAKkxB,GACzH,eAAT9f,GAAwG,IAA/E6qC,EAAU3T,WAAW1rC,QAAO,SAAAomB,GAAC,OAAIA,EAAEm5B,QAAU7sC,EAAO4hB,SAASirB,SAAO5hD,QAAc0hD,EAAU3T,WAAWtoC,KAAKkxB,IAE3H,YAAT9f,IAAuB6qC,EAAUH,SACxB,YAAT1qC,GAAsB6qC,EAAUH,SAAkG,IAAvFG,EAAUH,QAAQl/C,QAAO,SAAAomB,GAAC,OAAIA,EAAEm5B,QAAU7sC,EAAO4hB,SAASirB,MAAM92C,cAAY9K,eAE9F4U,IAAtB8sC,EAAUH,UAAuBG,EAAUH,QAAU,IACzDG,EAAUH,QAAQ97C,KAAKkxB,KAET,WAAXhF,IACM,aAAT9a,IAAqB6qC,EAAUluB,SAAWkuB,EAAUluB,SAASnxB,QAAO,SAAAomB,GAAC,OAAIA,EAAEm5B,QAAUjrB,EAASirB,MAAM92C,eAC3F,cAAT+L,IAAsB6qC,EAAU5T,UAAY4T,EAAU5T,UAAUzrC,QAAO,SAAAomB,GAAC,OAAIA,EAAEm5B,QAAUjrB,EAASirB,UACxF,eAAT/qC,IAAuB6qC,EAAU3T,WAAa2T,EAAU3T,WAAW1rC,QAAO,SAAAomB,GAAC,OAAIA,EAAEm5B,QAAUjrB,EAASirB,UAC3F,YAAT/qC,IAAoB6qC,EAAUH,QAAUG,EAAUH,QAAQl/C,QAAO,SAAAomB,GAAC,OAAIA,EAAEm5B,QAAUjrB,EAASirB,MAAM92C,mBAGtG6vB,IAAWzf,qBAAqBC,EAAKumC,GAAW7wC,MAAK,SAAAgxC,GAOxD,OALAF,EAAWr8C,SAAQ,SAAAyP,GACXA,EAAO+sC,WACP/sC,EAAO+sC,eAGRnnB,IAAW9e,0BAA0BV,GAAKtK,MAAK,SAAAgN,GAClD,IAAMkkC,EAAoBlkC,EAASpL,KAAKgJ,aAAe,CAAE+X,SAAU,GAAIsa,UAAW,GAAIyT,QAAS,GAAIxT,WAAY,IACzGiU,EAAiB,CAAE5gD,MAAKkgD,UAAWS,EAAcP,iBAAiB,GAExE,OADA5lB,aAAaG,QAAQ,qBAAsBrgB,KAAKC,UAAUqmC,IACnDA,QAiDAC,CAAmB7gD,EAAK+Z,EAAKpG,EAAQ2sC,MAIpD,OAAO3zB,KAGLW,EAA+BgyB,EAA2DwB,KAAiC,SAAAntC,GAC7H,OAAOA,KAILqZ,EAAmBsyB,EACrByB,KACA,SAACptC,EAAQ0Q,EAAUiV,GACf,IAAMrW,EAAQqW,IACRjuB,EAAOpL,YAAIgjB,EAAO,QAChB+9B,EAA+BrtC,EAA/BqtC,gBAAiBN,EAAc/sC,EAAd+sC,UACzB,OAAIr1C,EAAKohB,YAAgBphB,EAAKC,WAAY01C,GAuDtCN,GACAA,EAAUr1C,EAAKC,UAEfD,EAAKC,UAAUm0C,EAAgBp0C,EAAKC,UAEjCD,EAAKC,UA3DJ01C,EACOznB,IAAWpe,eAAe1L,MAAK,SAACuwC,GACnC,IAAI7f,EAQJ,OAPI6f,EAAa3uC,OACb8uB,EAAgB6f,EAAa3uC,OAEjC8uB,EAAgBA,GAAiBA,EAAcl/B,QAAO,SAAAC,GAAC,OAAIA,EAAEk/B,gBAAkBd,IAAWkL,yBAEtFgV,EAAyBlf,YAAoBllB,EAAS6kC,cAAe9f,IAElE5G,IAAW/hB,qBAAqB/H,MAAK,WACxC,OAAO8pB,IAAWtiB,YAAYuoC,EAAuBl3C,OAAOmH,MAAK,SAAAgN,GAC7D,GAAIA,EAAU,CACNikC,GACAA,EAAUjkC,EAASpL,MAEvBouC,EAAgBhjC,EAASpL,MAAM,IAAA4vC,EACJxkC,EAASpL,KAA5B6vC,EAAOD,EAAPC,QAAS31C,EAAK01C,EAAL11C,MACjB,OAAOguB,IAAW7hB,uBAAuBwpC,EAAS31C,GAAOkE,MAAK,SAAA0xC,GAAiB,IAADC,EACVD,EAAa9vC,KAArEgwC,EAAeD,EAAfC,gBAAiBC,EAASF,EAATE,UAAWC,EAAuBH,EAAvBG,wBACpC,OAAA75C,EAAA,GAAY+U,EAASpL,KAAK,CAACmwC,aAAc,CAAEH,kBAAiBC,YAAWC,gCAG/E,OAAOl2C,WAKhBkuB,IAAWpe,eAAe1L,MAAK,SAACuwC,GACnC,IAAI7f,EAQJ,OAPI6f,EAAa3uC,OACb8uB,EAAgB6f,EAAa3uC,OAEjC8uB,EAAgBA,GAAiBA,EAAcl/B,QAAO,SAAAC,GAAC,OAAIA,EAAEk/B,gBAAkBd,IAAWkL,yBAEtFgV,EAAyBlf,YAAoBllB,EAAS6kC,cAAe9f,IAElE5G,IAAWtiB,YAAYuoC,EAAuBl3C,OAAOmH,MAAK,SAAAgN,GAC7D,GAAIA,EAAU,CAAC,IAADglC,EACiBhlC,EAASpL,KAA5B6vC,EAAOO,EAAPP,QAAS31C,EAAKk2C,EAALl2C,MAKjB,OAJIm1C,GACAA,EAAUjkC,EAASpL,MAEvBouC,EAAgBhjC,EAASpL,MAClBkoB,IAAW7hB,uBAAuBwpC,EAAS31C,GAAOkE,MAAK,SAAA0xC,GAAiB,IAADO,EACVP,EAAa9vC,KAArEgwC,EAAeK,EAAfL,gBAAiBC,EAASI,EAATJ,UAAWC,EAAuBG,EAAvBH,wBACpC,OAAA75C,EAAA,GAAY+U,EAASpL,KAAK,CAACmwC,aAAc,CAAEH,kBAAiBC,YAAWC,gCAG/E,OAAOl2C,WAcrBkiB,EAAmBqd,EAAc+W,M,qECvMvC,w7BAOO,IAAMr9B,EAAc,cACd+N,EAAc,cACd7B,EAAuB,uBACvBE,EAA0B,0BAC1BO,EAAwB,wBACxBI,EAAyB,yBACzBV,EAAoB,oBACpBO,EAAoB,oBACpBkuB,EAAc,cACd2B,EAAe,eACfhB,EAAkB,kBAClBM,EAAyB,yBACzBS,EAAkC,kCAClCzB,EAA0B,0BAC1BsC,EAAqB,qBACrB9W,EAAS,SAET1T,EAAoB,oBACpBC,EAAW,WACXC,EAAgB,gBAChBE,EAAuB,uBACvBC,EAAY,YACZO,EAAkB,kBAClBC,EAAc,cACdN,EAAc,cACdpG,EAAqB,qBACrBqG,EAAyB,yBACzBQ,EAAwB,wBACxBC,EAAyB,0B,gCCnCvB,aAAC9wB,GACZ,OAAOA,EACFoC,WACAvI,cACAmD,QAAQ,OAAQ,KAChBA,QAAQ,KAAM,SACdA,QAAQ,OAAQ,KAChBA,QAAQ,QAAQ,SAAApD,GAAC,MAAY,QAANA,GAAqB,QAANA,EAAe,GAAKA,KAC1DoD,QAAQ,YAAa,IACrBA,QAAQ,SAAU,KAClBA,QAAQ,MAAO,IACfA,QAAQ,MAAO,M,02gHCmCT+mC,EA9CwB,SAACplB,EAAyB27B,GAC7D,IAAM9vB,EAAuB,GACvBxD,EAAuB,GACvBuzB,EAA0B,GAC1BC,EAA2B,GAC3Bp/C,EAAyB,GACzBgtB,EAA4B,GAC5B3sB,EAA6B,GAC7Bg/C,EAAyB,GAC3B97B,EAAK+7B,6BACL/7B,EAAK+7B,4BAA4B99C,SAAQ,SAAA+9C,GACjCA,IACAnwB,EAAWztB,KAAI2I,MAAf8kB,EAAU/pB,IAASk6C,EAAcC,wBAAwBhgD,KAAI,SAAAU,GAAQ,OAAIA,EAASmC,6BAClFupB,EAAWjqB,KAAI2I,MAAfshB,EAAUvmB,IAASk6C,EAAcE,yBAAyBjgD,KAAI,SAAAS,GAAQ,OAAIA,EAASmC,uBACnF+8C,EAAYx9C,KAAK49C,EAAcG,wBAAwBlgD,KAAI,SAAAmgD,GAAS,OAAIA,EAAU18C,qBAClFm8C,EAAez9C,KAAK49C,EAAc58C,gBAClC3C,EAAY2B,KAAK49C,EAAct9C,aAC3Bs9C,GAAiBA,EAAcK,4BAA4BL,EAAcK,2BAA2Bp+C,SAAQ,SAAA0I,GAAO,OAAI8iB,EAAgBrrB,KAAKuI,EAAQhI,8BACpJq9C,GAAiBA,EAAcM,6BAA6BN,EAAcM,4BAA4Br+C,SAAQ,SAAA0I,GAAO,OAAI7J,EAAiBsB,KAAKuI,EAAQhI,+BACtF,IAAjEm9C,EAAa3gD,QAAQ6gD,EAAcO,0BAAiCT,EAAa19C,KAAK49C,EAAcO,6BAIpH,IAAMC,EAAkBb,EAAUhjD,OAAS,GAAKgjD,EAAUh5C,MAAK,SAAA85C,GAAQ,OAAIA,EAASC,8BAAgC18B,EAAK08B,+BACzH,MAAO,CACH12B,KAAMhG,EAAK28B,6BACXC,aAAcJ,EAAkBA,EAAgBG,6BAA+B38B,EAAK28B,6BACpFlvC,GAAIuS,EAAK08B,4BACT1tC,UAAU,EACVvJ,UAAWua,EAAK68B,8BAChB58B,gBAAiBD,EAAK88B,8BACtBC,iBAAkB/8B,EAAKg9B,2BACvBC,uBAAwBj9B,EAAKk9B,uBAC7BC,gBAAiBn9B,EAAKo9B,0BACtBtB,aAAcA,EAAar8C,KAAK,MAChCgqB,kBACA3sB,mBACA++C,iBACAp/C,cACAovB,aACAxD,aACAuzB,cACAyB,OAAQr9B,EAAKjhB,wBACbu+C,YAAat9B,EAAKu9B,0BAA4Bv9B,EAAKu9B,0BAA4B,KCjBxErY,EA1BqB,SAACllB,EAAkB27B,GACnD,IAAMa,EAAkBb,EAAUhjD,OAAS,GAAKgjD,EAAUh5C,MAAK,SAAA85C,GAAQ,OAAIA,EAASe,wBAA0Bx9B,EAAKw9B,yBACnH,MAAO,CACHx3B,KAAMhG,EAAKy9B,uBACXb,aAAcJ,EAAkBA,EAAgBiB,uBAAyBz9B,EAAKy9B,uBAC9EhwC,GAAIuS,EAAKw9B,sBACTxuC,UAAU,EACVvJ,UAAWua,EAAK09B,wBAChBz9B,gBAAiBD,EAAK29B,+BACtBZ,iBAAkB/8B,EAAK49B,4BACvBX,uBAAwBj9B,EAAKk9B,uBAC7BC,gBAAiBn9B,EAAK69B,2BACtB/B,aAAc97B,EAAKu8B,wBACnBc,OAAQr9B,EAAKjhB,wBACb88C,eAAgB,CAAC77B,EAAK5gB,gBACtB3C,YAAa,CAACujB,EAAKthB,aACnB4+C,YAAat9B,EAAK89B,yBAA2B99B,EAAK89B,yBAA2B,GAC7EjyB,WAAY7L,EAAKi8B,wBAA0Bj8B,EAAKi8B,wBAAwBhgD,KAAI,SAAAU,GAAQ,OAAIA,EAASmC,2BAA2B,GAC5HupB,WAAYrI,EAAKk8B,yBAA2Bl8B,EAAKk8B,yBAAyBjgD,KAAI,SAAAS,GAAQ,OAAIA,EAASmC,qBAAqB,GACxH+8C,YAAa57B,EAAKm8B,wBAA0B,CAACn8B,EAAKm8B,wBAAwBlgD,KAAI,SAAAmgD,GAAS,OAAIA,EAAU18C,qBAAqB,GAC1H+pB,gBAAiBzJ,EAAKq8B,4BAA8Br8B,EAAKq8B,2BAA2BpgD,KAAI,SAAAhB,GAAC,OAAIA,EAAE0D,6BAC/Fo/C,kBAAmB/9B,EAAKg+B,YACxBC,sBAAuBj+B,EAAKk+B,gBAC5BC,sBAAuBn+B,EAAKo+B,wBCsErBrY,EA7FiB,SAACloC,GAC7B,IAAMwgD,EAAqC,GACvCxgD,EAAQygD,oBACRzgD,EAAQygD,mBAAmBrgD,SAAQ,SAACsgD,GAChC,IAAMC,EAA2B,CAC7BC,oBAAqBF,EAAQE,oBAC7BtxB,UAAWoxB,EAAQpxB,UACnBuxB,aAAc7gD,EAAQ0+C,yBAE1B8B,EAAajgD,KAAKogD,MAI1B,IAAIG,EAA6B,GAC7B9gD,EAAQw+C,4BAA8Bx+C,EAAQw+C,2BAA2B1jD,OAAS,IAElFgmD,EAAmB9gD,EAAQw+C,2BACtB38B,OACAzjB,KAAI,SAAAhB,GACD,OAAOA,EAAE0D,8BAIrB,IAAIigD,EAA8B,GAC9B/gD,EAAQy+C,6BAA+Bz+C,EAAQy+C,4BAA4B3jD,OAAS,IACpFimD,EAAoB/gD,EAAQy+C,4BACvB58B,OACAzjB,KAAI,SAAAhB,GACD,OAAOA,EAAE0D,8BAIrB,IAAMyrB,EAAwBvsB,EAAQghD,uBAAyBhhD,EAAQghD,sBAAsB7jD,QAAO,SAAA8jD,GAChG,OAAKA,EAAWC,2BACTD,EAAWC,0BAA0BhgD,2BAC7C9C,KAAI,SAAA+iD,GACH,MAAO,CAAEC,6BAA8BD,EAAQC,6BAA8BvC,4BAA6BsC,EAAQtC,4BAA6BvvB,UAAW6xB,EAAQ7xB,cAGtK,MAAO,CACH1f,GAAI5P,EAAQ2/C,sBACZH,OAAQx/C,EAAQkB,wBAChBiQ,UAAU,EACVvJ,UAAW5H,EAAQ6/C,wBACnBz9B,gBAAiBpiB,EAAQ8/C,+BACzB33B,KAAMnoB,EAAQ4/C,uBACdV,iBAAkBl/C,EAAQ+/C,4BAC1BX,uBAAwBp/C,EAAQq/C,uBAChCpB,aAAcj+C,EAAQ0+C,wBACtB2C,iBAAkBrhD,EAAQshD,4BAC1BtD,eAAgBh+C,EAAQuB,eACxB3C,YAAaoB,EAAQa,YACrBy+C,gBAAiBt/C,EAAQggD,2BACzBuB,oBAAqBvhD,EAAQ4gD,oBAC7BY,YAAaxhD,EAAQyhD,+BACrBC,gBAAiB1hD,EAAQ2hD,+BACzBC,2BAA4B5hD,EAAQ6hD,2BACpCC,4BAA6B9hD,EAAQ+hD,4BACrCC,qBAAsBhiD,EAAQiiD,qBAC9BC,wBAAyBliD,EAAQmiD,wBACjCC,+BAAgCpiD,EAAQqiD,+BACxCC,sBAAuBtiD,EAAQuiD,sBAC/BC,sBAAuBxiD,EAAQyiD,sBAC/BC,uBAAwB1iD,EAAQ2iD,uBAChCp2B,wBACAq2B,4BAA6B5iD,EAAQ6iD,4BACrCC,wBAAyB9iD,EAAQo+C,wBACjC3yB,yBAA0BzrB,EAAQq+C,yBAClC3yB,wBAAyB1rB,EAAQs+C,wBACjC3yB,mBAAoB3rB,EAAQ+iD,mBAC5BC,6BAA8BhjD,EAAQijD,6BACtCC,2BAA4BljD,EAAQmjD,kBACpCC,uBAAwBpjD,EAAQqjD,uBAChCC,gBAAiBtjD,EAAQujD,gBACzBC,oBAAqBxjD,EAAQyjD,oBAC7BC,kBAAmB1jD,EAAQ2jD,kBAC3BC,eAAgB5jD,EAAQ6jD,eACxBC,mBAAoB9jD,EAAQ+jD,mBAC5BC,mBAAoBhkD,EAAQikD,mBAC5BC,uBAAwBlkD,EAAQmkD,uBAChC1E,YAAaz/C,EAAQigD,yBACrBmE,mBAAoB5D,EACpB6D,SAAUrkD,EAAQskD,+BAAgC,EAClDC,UAAWvkD,EAAQwkD,wBAA0B,GAC7CC,WAAYzkD,EAAQ0kD,6BAA+B,GACnDxE,kBAAmBlgD,EAAQmgD,YAC3BC,sBAAuBpgD,EAAQqgD,gBAC/BC,sBAAuBtgD,EAAQugD,sBAC/BoE,6BAA8B3kD,EAAQ4kD,6BACtC76B,6BAA8B+2B,EAC9Bh1B,0BAA2Bi1B,I,8OCxFnC,IAmIehZ,EAnIoB,SAAC5lB,GAChC,IAAMoJ,EAA8B,GAChCg5B,EAAY,GACZE,EAAa,GACXP,EAAkD,GAClDd,EAAkD,GAClD72B,EAAgD,GAChDs4B,EAA6B,IAAI3+C,IACvC,GAAIic,EAAK+7B,6BAA+B/7B,EAAK+7B,4BAA4BpjD,OAAS,EAAG,CACjFywB,EAAahrB,KAAI2I,MAAjBqiB,EAAYtnB,IACLke,EAAK+7B,4BAA4Br8B,MAAK,SAACxjB,EAAGC,GACzC,OAAOD,EAAEixB,UAAYhxB,EAAEgxB,UAAY,GAAK,KAEvCnyB,QAAO,SAAA6C,GAAO,OAAmC,OAA/BA,EAAQ8kD,sBAC1B1mD,KAAI,SAAAuE,GAED,OADAkiD,EAAcx+C,IAAI1D,EAAEmiD,mBAAmBpG,yBAChCxW,EAAwBvlC,EAAEmiD,yBAG7C,IAAIx1B,EAAY,EAChBrrB,IAAIke,EAAK+7B,6BACJr8B,MAAK,SAACxjB,EAAGC,GAAC,OAAKD,EAAEixB,UAAYhxB,EAAEgxB,aAC/BlvB,SAAQ,SAAA2kD,GACDA,EAAOD,mBAAmBzB,wBAC1Bp/C,IAAI8gD,EAAOD,mBAAmBzB,wBACzBxhC,MAAK,SAACxjB,EAAGC,GAAC,OAAKD,EAAEixB,UAAYhxB,EAAEgxB,aAC/BlvB,SAAQ,SAAA4kD,GACLA,EAAS11B,UAAYA,EACrB8zB,EAAuB7iD,KAAKykD,GAC5B11B,GAAa,QAKjCnN,EAAK8iC,gCACLV,EAAYpiC,EAAK+iC,sBAAsBC,yBAA2B,GAClEV,EAAatiC,EAAK+iC,sBAAsBE,8BAAgC,IAExEjjC,EAAKkjC,yBAA2BljC,EAAKkjC,wBAAwBvqD,OAAS,GACtEopD,EAAuB3jD,KAAI2I,MAA3Bg7C,EAAsBjgD,IACfke,EAAKkjC,wBAAwBxjC,MAAK,SAACxjB,EAAGC,GACrC,OAAOD,EAAEixB,UAAYhxB,EAAEgxB,UAAY,GAAK,KACzClxB,KAAI,SAAAuE,GACH,MAAO,CACH2sB,UAAW3sB,EAAE2sB,UACbg2B,qBAAsB3iD,EAAE4iD,2BAA2BD,qBACnDjgD,WAAY1C,EAAE4iD,2BAA2BlgD,iBAKrD8c,EAAKhkB,OAASgkB,EAAKhkB,MAAMrD,OAAS,GAClCqnB,EAAKhkB,MAAMhB,QAAO,SAAAqoD,GAAoB,OAAKA,EAAeV,oBAAwCU,EAAeV,mBAAmB5jD,2BAA4Bd,SAAQ,SAAAolD,GACpKj5B,EAAsBhsB,K,iWAAIqD,CAAC,GAAK4hD,EAAe,CAACpE,6BAA8BoE,EAAe7F,sBAAuBd,4BAA6B2G,EAAeC,qCAIxK,IAAIC,EAAW,EACTC,EAAoC,GAsB1C,OArBAp6B,EACKpuB,QAAO,SAAAquB,GAAW,QAAMA,EAAY44B,oBAAsB54B,EAAY44B,mBAAmBtpD,OAAS,KAClGsD,KAAI,SAAA4B,GAgBD,OAfIA,EAAQokD,oBAAsBpkD,EAAQokD,mBAAmBtpD,OAAS,GAClEkF,EAAQokD,mBAAmBhkD,SAAQ,SAACwlD,GAChC,IAAMjF,EAA2B,CAC7BC,oBAAqBgF,EAAQhF,oBAC7BtxB,UAAWo2B,EACX7E,aAAc7gD,EAAQi+C,cAGqG,IAA3H0H,EAAYxoD,QAAO,SAAC0oD,GAA4B,OAAKA,EAASjF,sBAAwBD,EAAKC,uBAAqB9lD,SAEhH4qD,IACAC,EAAYplD,KAAKogD,OAItBgF,KAGR,CACHzC,2BAA4B/gC,EAAK2jC,mBACjC39B,KAAMhG,EAAK28B,6BACXlvC,GAAIuS,EAAK08B,4BACT1tC,UAAU,EACVvJ,UAAWua,EAAK68B,8BAChB58B,gBAAiBD,EAAK88B,8BACtBC,iBAAkB/8B,EAAKg9B,2BACvBC,uBAAwBj9B,EAAKk9B,uBAC7BC,gBAAiBn9B,EAAKo9B,0BACtB8B,iBAAkBl/B,EAAK4jC,+BACvB35B,eAAgBb,EAChBi2B,YAAa,GACbwE,iBAAkB,GAClB9B,yBACAtB,4BAA6BzgC,EAAK0gC,4BAClC5E,aAAch6C,IAAI4gD,GAAejjD,KAAK,MACtCo8C,eAAgB,EAChBp/C,aAAa,EACb2iD,oBAAqB,GACrBK,2BAA4Bz/B,EAAK0/B,2BACjCC,4BAA6B,EAC7BE,qBAAsB,EACtBE,wBAAyB,EACzBE,+BAAgC,MAChCE,sBAAuB,GACvBE,sBAAuB,GACvBE,uBAAwB,GACxBn2B,wBACAu2B,wBAAyB,GACzBr3B,yBAA0B,GAC1BC,wBAAyB,GACzBC,mBAAoB,GACpBy3B,yBACAx3B,gBAAiB,CAAC,CAAE1B,uBAAwB,GAAIppB,0BAA2B,IAC3E7B,iBAAkB,CAAC,CAAEirB,uBAAwB,GAAIppB,0BAA2B,IAC5EkiD,6BAA8B,CAAEC,6BAA8B,IAC9DxD,YAAat9B,EAAKu9B,0BAClB0E,mBAAoBuB,EACpBtB,SAAUliC,EAAK8iC,8BACfV,YACAE,aACAjF,OAAQr9B,EAAKjhB,wBACbg/C,kBAAmB/9B,EAAK8jC,eACxB7F,sBAAuBj+B,EAAKk+B,gBAC5BC,sBAAuBn+B,EAAKo+B,sBAC5BoE,6BAA8BxiC,EAAKyiC,6BACnC94B,0BAA2B,GAC3B/B,6BAA8B,K,OChItC,SAASm8B,EAAgBC,GACrB,IAAMt/C,EAAIs/C,EAAOC,YAAY,KAC7B,OAAOv/C,GAAK,GAAMA,EAAI,IAAOs/C,EAAOrrD,OAASqrD,EAAOhrD,UAAU,EAAG0L,GAAKs/C,EAE1E,IAiBeze,EAjB0B,SAACvlB,GACtC,IAAMhR,EAA2B,WAAhBgR,EAAK1S,OAChBnK,EAAarJ,YAAQ,YACrBoqD,EAA0BlqD,YAAIgmB,EAAqB,OAAf7c,EAAsB,0BAAyB,2BAAAlJ,OAA8BkJ,GAAc,IACrI,MAAO,CACH6iB,KAAMhsB,YAAIgmB,EAAqB,OAAf7c,EAAsB,OAAM,QAAAlJ,OAAWkJ,GAAc,IACrEghD,QAASnkC,EAAKokC,KACd32C,GAAIuB,EAAWgR,EAAK08B,4BAA8B18B,EAAKw9B,sBACvDxuC,WACAvJ,UAAWua,EAAK09B,wBAChBz9B,gBAAiBD,EAAK29B,+BACtBZ,iBAAkB/iD,YAAIgmB,EAAqB,OAAf7c,EAAsB,cAAa,eAAAlJ,OAAkBkJ,GAAc,IAC/F85C,uBAAwBj9B,EAAKk9B,uBAC7BC,gBAAiBnjD,YAAIgmB,EAAqB,OAAf7c,EAAsB,6BAA4B,8BAAAlJ,OAAiCkJ,GAAc,IAC5H24C,aAAcoI,GAA2Bl1C,EAAW+0C,EAAgBG,EAAwBt9C,QAAUs9C,IClBxG/gD,EAAarJ,YAAQ,YAErBuqD,EAAiB,SAAChjD,GACpB,OAAOA,EAAI3I,MAAM,KAAKsC,QAAO,SAAAgH,GAAC,MAAiB,KAAbA,EAAE4E,UAAe3K,KAAI,SAAA+F,GAAC,OAAIA,EAAE4E,WAG5D09C,EAAoB,SAACtkC,GACvB,IAAMukC,EAAmBvqD,YAAIgmB,EAAqB,OAAf7c,EAAsB,mBAAkB,oBAAAlJ,OAAuBkJ,GAAc,IAC1GqhD,EAAoBxqD,YAAIgmB,EAAqB,OAAf7c,EAAsB,oBAAmB,qBAAAlJ,OAAwBkJ,GAAc,IACnH,OAAIohD,GAAoBC,EAAyB,GAANvqD,OAAA6H,IAAWuiD,EAAeG,IAAkB1iD,IAAKuiD,EAAeE,KACvGC,EAA0BH,EAAeG,GACzCD,EAAyBF,EAAeE,GACrC,IAGLE,EAAsB,SAACzkC,GACzB,GAAIA,EAAK0kC,YAAc1kC,EAAKiP,qBAAsB,CAC9C,IAAM/C,EAAam4B,EAAerkC,EAAKiP,sBAEvC,OADoBo1B,EAAerkC,EAAK0kC,YACrBzoD,KAAI,SAAC6L,EAAajG,GACjC,MAAO,CACHiG,MAAKsD,KAAM,GAAI/I,MAAO6pB,EAAWrqB,SAqBlC8iD,EAdiB,SAAC3kC,GAC7B,IAAM4kC,EAA4B5qD,YAAIgmB,EAAqB,OAAf7c,EAAsB,4BAA2B,6BAAAlJ,OAAgCkJ,GAAc,IAC3I,MAAO,CACH6iB,KAAMhsB,YAAIgmB,EAAqB,OAAf7c,EAAsB,OAAM,QAAAlJ,OAAWkJ,GAAc,IACrE0hD,QAAS7kC,EAAK8kC,oBACdtU,YAAax2C,YAAIgmB,EAAqB,OAAf7c,EAAsB,cAAa,eAAAlJ,OAAkBkJ,GAAc,IAC1F4hD,YAAa/kC,EAAK29B,+BAClBqH,SAAUX,EAAeO,GAA6B,IACtDz4B,SAAUm4B,EAAkBtkC,GAC5BilC,SAAUR,EAAoBzkC,KCJvBklC,EAjCmB,SAACllC,GAC/B,IAAM7c,EAAarJ,YAAQ,YACrBqrD,EAA2BnrD,YAAIgmB,EAAqB,OAAf7c,EAAsB,0BAAyB,2BAAAlJ,OAA8BkJ,GAAc,IAChIiiD,EAA+BprD,YACjCgmB,EACe,OAAf7c,EAAsB,8BAA6B,+BAAAlJ,OAAkCkJ,GACrF,IAEE+kB,EAAuBluB,YAAIgmB,EAAqB,OAAf7c,EAAsB,OAAM,QAAAlJ,OAAWkJ,GAAc,IACtFkiD,EAAuBrrD,YAAIgmB,EAAqB,OAAf7c,EAAsB,cAAa,eAAAlJ,OAAkBkJ,GAAc,IACpGxH,EAAqB3B,YAAIgmB,EAAM,qBAAsB,IAAI9kB,cAC/D,MAAO,CACHoqD,uBAAwB,CACpBH,2BACAC,gCAEJtJ,aAAcqJ,EACdj9B,uBACAlC,KAAMkC,EACNshB,0BAAsBj8B,EACtB83C,uBACAE,gBAAiB,CACbrI,uBAAwBl9B,EAAKk9B,wBAEjCsI,kBAAmBxlC,EAAK09B,wBACxBj4C,UAAWua,EAAK09B,wBAChB+H,+BAAgCzlC,EAAK29B,+BACrC19B,gBAAiBD,EAAK29B,+BACtBhiD,qBACA+jD,2BAA4B1/B,EAAK0/B,2BACjCgG,wBAAyB1lC,EAAKokC,O,8NC/BtC,IAgEete,EAhEuB,SAAC9lB,GACnC,IACMoK,EAAgD,GAChDs4B,EAA6B,IAAI3+C,IAEnCic,GAAQA,EAAKrnB,OAAS,GACtBqnB,EAAKhlB,QAAO,SAAAqoD,GAAoB,OAAKA,EAAeV,oBAAwCU,EAAeV,mBAAmB5jD,2BAA4Bd,SAAQ,SAAAolD,GAC9Jj5B,EAAsBhsB,K,iWAAIqD,CAAC,GAAK4hD,EAAe,CAACpE,6BAA8BoE,EAAe7F,sBAAuBd,4BAA6B2G,EAAeC,qCAMxK,MAAO,CACHvC,2BAA4B,GAC5B/6B,KAAM,GACNvY,GAAI,EACJuB,UAAU,EACVvJ,UAAW,GACXwa,gBAAiB,GACjB88B,iBAAkB,GAClBE,uBAAwB,GACxBE,gBAAiB,GACjB+B,iBAAkB,GAClBj1B,eAvBgC,GAwBhCo1B,YAAa,GACbwE,iBAAkB,GAClB9B,uBAAwB,GACxBtB,4BAA6B,GAC7B3E,aAAch6C,IAAI4gD,GAAejjD,KAAK,MACtCo8C,eAAgB,EAChBp/C,aAAa,EACb2iD,oBAAqB,GACrBK,2BAA4B,GAC5BE,4BAA6B,EAC7BE,qBAAsB,EACtBE,wBAAyB,EACzBE,+BAAgC,MAChCE,sBAAuB,GACvBE,sBAAuB,GACvBE,uBAAwB,GACxBn2B,wBACAu2B,wBAAyB,GACzBr3B,yBAA0B,GAC1BC,wBAAyB,GACzBC,mBAAoB,GACpBy3B,uBAAwB,GACxBx3B,gBAAiB,CAAC,CAAE1B,uBAAwB,GAAIppB,0BAA2B,IAC3E7B,iBAAkB,CAAC,CAAEirB,uBAAwB,GAAIppB,0BAA2B,IAC5EkiD,6BAA8B,CAAEC,6BAA8B,IAC9DxD,YAAa,GACb2E,mBAxCsC,GAyCtCC,UAAU,EACVE,UAAW,GACXE,WAAY,GACZjF,QAAQ,EACRU,kBAAmB,GACnBE,sBAAuB,GACvBE,sBAAuB,GACvBqE,6BAA8B,GAC9B74B,0BAA2B,GAC3B/B,6BAA8B,KCSvBie,EApEiB,SAAC7lB,GAC7B,IAAMoJ,EAA8B,GAE9Bs5B,EAA6B,IAAI3+C,IAEnCic,GAAQA,EAAK2iC,oBAAsB3iC,EAAK2iC,mBAAmBhqD,OAAS,GACpEywB,EAAahrB,KAAI2I,MAAjBqiB,EAAYtnB,IACLke,EAAK2iC,mBAAmB3nD,QAAO,SAAA6C,GAAO,OAAgB,OAAZA,KACxC5B,KAAI,SAAAuE,GAED,OADAkiD,EAAcx+C,IAAI1D,EAAE+7C,yBACbxW,EAAwBvlC,QAO/C,MAAO,CACHugD,2BAA4B,GAC5B/6B,KAAM,GACNvY,GAAI,EACJuB,UAAU,EACVvJ,UAAW,GACXwa,gBAAiB,GACjB88B,iBAAkB,GAClBE,uBAAwB,GACxBE,gBAAiB,GACjB+B,iBAAkB,GAClBj1B,eAAgBb,EAChBi2B,YAAa,GACbwE,iBAAkB,GAClB9B,uBAAwB,GACxBtB,4BAA6B,GAC7B3E,aAAch6C,IAAI4gD,GAAejjD,KAAK,MACtCo8C,eAAgB,EAChBp/C,aAAa,EACb2iD,oBAAqB,GACrBK,2BAA4B,GAC5BE,4BAA6B,EAC7BE,qBAAsB,EACtBE,wBAAyB,EACzBE,+BAAgC,MAChCE,sBAAuB,GACvBE,sBAAuB,GACvBE,uBAAwB,GACxBn2B,sBA3CkD,GA4ClDu2B,wBAAyB,GACzBr3B,yBAA0B,GAC1BC,wBAAyB,GACzBC,mBAAoB,GACpBy3B,uBAAwB,GACxBx3B,gBAAiB,CAAC,CAAE1B,uBAAwB,GAAIppB,0BAA2B,IAC3E7B,iBAAkB,CAAC,CAAEirB,uBAAwB,GAAIppB,0BAA2B,IAC5EkiD,6BAA8B,CAAEC,6BAA8B,IAC9DxD,YAAa,GACb2E,mBAxCsC,GAyCtCC,UAAU,EACVE,UAAW,GACXE,WAAY,GACZjF,QAAQ,EACRU,kBAAmB,GACnBE,sBAAuB,GACvBE,sBAAuB,GACvBqE,6BAA8B,GAC9B74B,0BAA2B,GAC3B/B,6BAA8B,KC1BvB+9B,EAxCoB,SAAC3lC,GAChC,IAAM7c,EAAarJ,YAAQ,YACrByiD,EAA0BviD,YAAIgmB,EAAqB,OAAf7c,EAAsB,0BAAyB,2BAAAlJ,OAA8BkJ,GAAc,IAC/HyiD,EAA2B5rD,YAC7BgmB,EACe,OAAf7c,EAAsB,8BAA6B,+BAAAlJ,OAAkCkJ,GACrF,IAEE4mC,EAA2B/vC,YAAIgmB,EAAqB,OAAf7c,EAAsB,OAAM,QAAAlJ,OAAWkJ,GAAc,IAC1F0iD,EAAwB7rD,YAAIgmB,EAAqB,OAAf7c,EAAsB,cAAa,eAAAlJ,OAAkBkJ,GAAc,IACrG2iD,EAA4B9rD,YAAIgmB,EAAqB,OAAf7c,EAAsB,6BAA4B,6BAAAlJ,OAAgCkJ,GAAc,IACtI4iD,EAAyB/rD,YAAIgmB,EAAM,qBAAsB,IACzDrkB,EAAqBoqD,EAAyBA,EAAuB7qD,cAAgB6qD,EAC3F,MAAO,CACHC,yBAA0B,CACtBzJ,0BACAqJ,4BAEJ9J,aAAcS,EACdxS,2BACA/jB,KAAM+jB,EACND,2BAAuBv8B,EACvBs4C,wBACAI,8BAA+BJ,EAC/BK,6BAA8BJ,EAC9BP,gBAAiB,CACbrI,uBAAwBl9B,EAAKk9B,wBAEjCiJ,8BAA+BnmC,EAAK09B,wBACpCj4C,UAAWua,EAAK09B,wBAChB+H,+BAAgCzlC,EAAK29B,+BACrC19B,gBAAiBD,EAAK29B,+BACtByI,oCAAqCpmC,EAAK29B,+BAC1ChiD,qBACA+jD,2BAA4B1/B,EAAK0/B,2BACjC2G,yBAA0BrmC,EAAKokC,KAC/Bva,wBAAyB7pB,EAAK6pB,wBAC9BqT,uBAAwBl9B,EAAKk9B,0B,4PCtCrC,gRAKMrY,EAAqBxpC,YAAU,gCAE/BirD,EAAqB,WAAH,OAA8C,SAACloC,EAAUiV,GAC7E,IAAMrW,EAAQqW,IACR0R,EAAiB/qC,YAAIgjB,EAAO,uBAAwB,IAE1D,GADmB+nB,GAAmBA,EAAe35B,QAAU25B,EAAe/8B,MAAcg9B,YAASD,EAAe/8B,MAAQ68B,GAC5G,CACZ,IAAMrC,EAAYlP,IAAWzgB,mBAAmBrJ,MAAK,SAACgN,GAC9CA,EAASpL,MACTgT,EAAS,CAAErL,cAAeyD,EAASpL,KAAKm7C,KAAMv+C,KAAM,IAAI5N,KAAQoV,KAAM0hB,SAG9EuR,kBAAQD,MAIVgkB,EAAkB,WAAH,OAA8B,SAACpoC,EAAUiV,GAC1D,IAAMrW,EAAQqW,IACR0R,EAAiB/qC,YAAIgjB,EAAO,gBAAiB,IAEnD,GADmB+nB,GAAmBA,EAAe35B,QAAU25B,EAAe/8B,MAAcg9B,YAASD,EAAe/8B,MAAQ68B,GAC5G,CACZ,IAAMrC,EACNlP,IAAWtgB,gBACNxJ,MAAK,SAACgN,GACCA,EAASpL,MACTgT,EAAS,CAAEnL,OAAQuD,EAASpL,KAAMpD,KAAM,IAAI5N,KAAQoV,KAAMiiB,SAGtEgR,kBAAQD,MAKVikB,EAA0B,WAAH,OAA8B,SAACroC,EAAUiV,GAClE,IAAMrW,EAAQqW,IACR0R,EAAiB/qC,YAAIgjB,EAAO,4BAA6B,IAE/D,GADmB+nB,GAAmBA,EAAe35B,QAAU25B,EAAe/8B,MAAcg9B,YAASD,EAAe/8B,MAAQ68B,GAC5G,CACZ,IAAMrC,EACNlP,IAAWhb,wBACN9O,MAAK,SAACgN,GACCA,EAASpL,MACTgT,EAAS,CAAE7F,mBAAoB/B,EAASpL,KAAMpD,KAAM,IAAI5N,KAAQoV,KAAMkiB,SAGlF+Q,kBAAQD,MAIVkkB,EAAiB,WAAH,OAA0C,SAACtoC,EAAUiV,GACrE,IAAMrW,EAAQqW,IACR0R,EAAiB/qC,YAAIgjB,EAAO,sBAAuB,IAEzD,GADmB+nB,GAAmBA,EAAe35B,QAAU25B,EAAe/8B,MAAcg9B,YAASD,EAAe/8B,MAAQ68B,GAC5G,CACZ,IAAMrC,EAAYlP,IAAWpe,eAAe1L,MAAK,SAACgN,GAC1CA,EAASpL,MACTgT,EAAS,CAAEiT,MAAO7a,EAASpL,KAAMpD,KAAM,IAAI5N,KAAQoV,KAAM4hB,SAGjEqR,kBAAQD,MAIVmkB,EAAY,WAAH,OAAoC,SAACvoC,EAAUiV,GAC1D,IAAMrW,EAAQqW,IACR0R,EAAiB/qC,YAAIgjB,EAAO,cAAe,IAEjD,GADmB+nB,GAAmBA,EAAehV,WAAagV,EAAe/8B,MAAcg9B,YAASD,EAAe/8B,MAAQ68B,GAC/G,CACZ,IAAMrC,EAAYlP,IAAWxiB,UAAUtH,MAAK,SAACgN,GACrCA,EAASpL,MACTgT,EAAS,CAAErN,KAAMyF,EAASpL,KAAMpD,KAAM,IAAI5N,KAAQoV,KAAM2hB,SAGhEsR,kBAAQD,MAIVokB,EAAsB,WAAH,OAAoD,SAAAxoC,GACzE,IAAMyoC,EAAY,IAAIC,gBAAgBvuD,OAAOC,SAASsU,OAAO5R,eAQ7DkjB,EAAS,CAAE6R,cAP0B,CACjCC,UAAW22B,EAAU7sD,IAAI,eAAiB,GAC1Cm2B,UAAW02B,EAAU7sD,IAAI,eAAiB,GAC1Co2B,YAAay2B,EAAU7sD,IAAI,iBAAmB,GAC9Cq2B,QAASw2B,EAAU7sD,IAAI,aAAe,GACtCs2B,WAAYu2B,EAAU7sD,IAAI,gBAAkB,IAEtBwV,KAAM8hB,QAG9By1B,EAAkB,SAACjjD,GAAmB,OAAyC,SAAAsa,GACjFA,EAAS,CAAEta,QAAO0L,KAAM+hB,S,wkEC7EtBv5B,EAAeC,cAEfuuC,EAAe,CACjBv1B,QAAQ,GAADhX,OAAKjC,EAAakrB,eACzB9d,KAAMmhB,IACN4F,SAAU5E,IACVkf,UAAW1b,IACX2b,WAAYvb,IACZptB,QAAS6tB,IACT8D,OAAQD,IACRkX,OAAQ7W,IACR8W,aAAcjV,IACdkV,aAAc7U,KAGZ8U,EAAWC,0BAAgC,CAC7C91B,QAAS2V,kCAAwB,GAAD3sB,OAAIjC,EAAakrB,gBACjD9d,KAAM4hC,IACN7a,SAAU8a,IACVR,UAAWS,IACXR,WAAYS,IACZppC,QAASqpC,IACT1X,OAAQ2X,IACRV,OAAQW,IACRV,aAAcW,IACdV,aAAcW,MAGZwf,EAAe,WAA8D,IAA7DhqC,EAAqBhS,UAAArS,OAAA,QAAA4U,IAAAvC,UAAA,GAAAA,UAAA,GAAGw7B,EAAclc,EAAiBtf,UAAArS,OAAA,EAAAqS,UAAA,QAAAuC,EACzE,OAAI+c,EAAO9a,OAAS6O,IACThW,IAAO2U,EAAO,CAAEkK,KAAMsf,IAE1BM,EAAS9pB,EAAOsN,IAGrBmd,EAAoDC,IACpDC,EAAqBC,0BAAgBH,GAErCI,EAAmCC,kBACrCH,EACAI,2BAAiB,KAKfkf,EAAUre,sBAAiDoe,EAAcnf,GAEzEqf,EAAUte,sBAAiDoe,EAAcnf,GAEzEsf,EAAUve,sBAAiDoe,EAAcnf,G,qEC/DzEhD,EAAqBxpC,YAAU,kCActB+rD,EAZM,WAAH,OAA8C,SAAChpC,EAAUiV,GACvE,IAAMrW,EAAQqW,IACR0R,EAAiB/qC,YAAIgjB,EAAO,WAElC,GADmB+nB,KAAoBA,EAAe/8B,MAAcg9B,YAASD,EAAe/8B,MAAQ68B,GACpF,CACZ,IAAMrC,EAAYlP,IAAW1jB,kBAAkBpG,MAAK,SAAAgN,GAChD4H,EAAS,CAAE5H,WAAUxO,KAAM,IAAI5N,KAAQoV,KAAM4c,SAEjDqW,kBAAQD,M,SCFVxqC,EAAeC,cAEjBkmB,EAAQkpC,IAENC,EAAU,WACZC,aAAM,WACFppC,EAAMC,SAASkoC,eAEfnoC,EAAMC,SAASinB,eAEflnB,EAAMC,SAAS0mB,eAEf3mB,EAAMC,SAASgrB,eAEfjrB,EAAMC,SAASurB,eAEfxrB,EAAMC,SAASgpC,KAEfjpC,EAAMC,SAASsoC,eAEfvoC,EAAMC,SAASskB,eAEfvkB,EAAMC,SAASooC,eAEfroC,EAAMC,SAASqoC,mBAgCRe,EA5BD,SAACzyB,GACX,GAAI/8B,EAAairB,oBAAsBjrB,EAAaM,kBAAmB,CACnE6lB,EAAQnmB,EAAaM,kBF2Bf,WACV,OAAQwB,YAAQ,aACZ,IAAK,KACD,OAAOotD,EACX,IAAK,KACD,OAAOC,EACX,QACI,OAAOF,GElC8BQ,GAAgBtpC,EACzD,IAAMupC,EAAgB3yB,EAAK75B,cACrBuS,EAAKk6C,YAAUD,GACrB,GAAIj6C,EACA,GAAIi6C,EAAcvsD,QAAQ,gBAAkB,EACxCgjB,EAAMC,SAASqrB,YAAkB,CAAEh8B,aAChC,GAAIi6C,EAAcvsD,QAAQ,iBAAmB,EAChDgjB,EAAMC,SAAS4rB,YAAmB,CAAEv8B,aACjC,GAAIi6C,EAAcvsD,QAAQ,oBAAsB,EACnDgjB,EAAMC,SAASs6B,YAAsB,CAAEjrC,YACpC,CACH,IAAMuB,EAAW04C,EAAcvsD,QAAQ,WAAa,EACpDgjB,EAAMC,SAAS6nB,YAA4B,CAAEx4B,KAAIuB,mBAE9C04C,EAAcvsD,QAAQ,QAAU,EACvCgjB,EAAMC,SAASuoC,eAEfW,SAGJA,IAEAnpC,EAAMC,SAASwoC,gBC/DjB5uD,EAAeC,c,mICGf2vD,GAAY1lD,QAAW,kBAAM,8EAC7B2lD,GAAqB3lD,QAAW,kBAAM,+EACtC4lD,GAAqB5lD,QAAW,kBAAM,8EACtC6lD,GAAgB7lD,QAAW,kBAAM,8EACjC8lD,GAAe9lD,QAAW,kBAAM,8EAChC+lD,GAAiB/lD,QAAW,kBAAM,+EAClCgmD,GAAgBhmD,QAAW,kBAAM,8EACjCimD,GAAmBjmD,QAAW,kBAAM,wEACpCkmD,GAAkBlmD,QAAW,kBAAM,mCACnCmmD,GAAoBnmD,QAAW,kBAAM,mCACrComD,GAAWpmD,QAAW,kBAAM,0DAC5BqmD,GAAoBrmD,QAAW,kBAAM,8EACrCsmD,GAAoBtmD,QAAW,kBAAM,8EACrCumD,GAAkBvmD,QAAW,kBAAM,wEACnCwmD,GAA4BxmD,QAAW,kBAAM,yDAC7CymD,GAAiBzmD,QAAW,kBAAM,8EAClC0mD,GAAkB1mD,QAAW,kBAAM,+EACnC2mD,GAA2B3mD,QAAW,kBAAM,8EAI5C4mD,GAAmB,WACjBzsC,aAAaA,WAAY0sC,QAAQC,eAAeC,QAAUC,iBAK5DC,GAAW,SAACxvC,GAEd,OADAmvC,KACO5mD,gBAAC0lD,GAAS3oC,OAAAC,OAAA,GAAKvF,EAAK,CAAEwZ,QAASwP,KAASC,SAAUwmB,UAAW,IAAIhvD,SAGtEivD,GAAoB,SAAC1vC,GAEvB,OADAmvC,KACO5mD,gBAAC4lD,GAAkB7oC,OAAAC,OAAA,GAAKvF,EAAK,CAAEwZ,QAASwP,KAASI,kBAAmBqmB,UAAW,IAAIhvD,SAGxFkvD,GAAe,SAAC3vC,GAElB,OADAmvC,KACO5mD,gBAAC6lD,GAAa9oC,OAAAC,OAAA,GAAKvF,EAAK,CAAEwZ,QAASwP,KAASK,aAAcomB,UAAW,IAAIhvD,SAG9EmvD,GAAoB,SAAC5vC,GAEvB,OADAmvC,KACO5mD,gBAAC2lD,GAAkB5oC,OAAAC,OAAA,GAAKvF,EAAK,CAAEwZ,QAASwP,KAASG,kBAAmBsmB,UAAW,IAAIhvD,SAGxFovD,GAAc,SAAC7vC,GAEjB,OADAmvC,KACO5mD,gBAAC8lD,GAAY/oC,OAAAC,OAAA,GAAKvF,EAAK,CAAEwZ,QAASwP,KAASrJ,YAAa8vB,UAAW,IAAIhvD,SAG5EqvD,GAAoB,SAAC9vC,GAEvB,OADAmvC,KACO5mD,gBAAC8lD,GAAY/oC,OAAAC,OAAA,GAAKvF,EAAK,CAAEwZ,QAASwP,KAASrJ,YAAa8vB,UAAW,IAAIhvD,SAG5EsvD,GAAgB,SAAC/vC,GAEnB,OADAmvC,KACO5mD,gBAAC+lD,GAAchpC,OAAAC,OAAA,GAAKvF,EAAK,CAAEwZ,QAASwP,KAASU,cAAe+lB,UAAW,IAAIhvD,SAGhFuvD,GAAe,SAAChwC,GAElB,OADAmvC,KACO5mD,gBAACgmD,GAAajpC,OAAAC,OAAA,GAAKvF,EAAK,CAAEwZ,QAASwP,KAASjJ,aAAc0vB,UAAW,IAAIhvD,SAG9EwvD,GAAc,SAACjwC,GAEjB,OADAmvC,KACO5mD,gBAACimD,GAAgBlpC,OAAAC,OAAA,GAAKvF,EAAK,CAAEwZ,QAASwP,KAASgB,YAAaylB,UAAW,IAAIhvD,SAGhFyvD,GAAoB,SAAClwC,GAEvB,OADAmvC,KACO5mD,gBAACmmD,GAAiBppC,OAAAC,OAAA,GAAKvF,EAAK,CAAEwZ,QAASwP,KAASM,eAAgBmmB,UAAW,IAAIhvD,SAGpF0vD,GAAiB,SAACnwC,GAEpB,OADAmvC,KACO5mD,gBAACkmD,GAAenpC,OAAAC,OAAA,GAAKvF,EAAK,CAAEwZ,QAASwP,KAASY,WAAY6lB,UAAW,IAAIhvD,SAG9E2vD,GAAU,SAACpwC,GAEb,OADAmvC,KACO5mD,gBAAComD,GAAQrpC,OAAAC,OAAA,GAAKvF,EAAK,CAAEwZ,QAASwP,KAASiB,IAAKwlB,UAAW,IAAIhvD,SAGhE4vD,GAAmB,SAACrwC,GAEtB,OADAmvC,KACO5mD,gBAACqmD,GAAiBtpC,OAAAC,OAAA,GAAKvF,EAAK,CAAEwZ,QAASwP,KAASmB,iBAAkBslB,UAAW,IAAIhvD,SAGtF6vD,GAA0B,SAACtwC,GAE7B,OADAmvC,KACO5mD,gBAAC2mD,GAAwB5pC,OAAAC,OAAA,GAAKvF,EAAK,CAAEwZ,QAASwP,KAAS6B,wBAAyB4kB,UAAW,IAAIhvD,SAGpG8vD,GAAmB,SAACvwC,GAEtB,OADAmvC,KACO5mD,gBAACsmD,GAAiBvpC,OAAAC,OAAA,GAAKvF,EAAK,CAAEwZ,QAASwP,KAASoB,iBAAkBqlB,UAAW,IAAIhvD,SAEtF+vD,GAAiB,SAACxwC,GAEpB,OADAmvC,KACO5mD,gBAACumD,GAAexpC,OAAAC,OAAA,GAAKvF,EAAK,CAAEwZ,QAASwP,KAASsB,qBAAsBmlB,UAAW,IAAIhvD,SAExFgwD,GAAuB,SAACzwC,GAE1B,OADAmvC,KACO5mD,gBAACwmD,GAAyBzpC,OAAAC,OAAA,GAAKvF,EAAK,CAAEwZ,QAASwP,KAASqB,qBAAsBolB,UAAW,IAAIhvD,SAGlGiwD,GAAgB,SAAC1wC,GAEnB,OADAmvC,KACO5mD,gBAACymD,GAAc1pC,OAAAC,OAAA,GAAKvF,EAAK,CAAEwZ,QAASwP,KAAS7I,cAAesvB,UAAW,IAAIhvD,SAGhFkwD,GAAiB,SAAC3wC,GAEpB,OADAmvC,KACO5mD,gBAAC0mD,GAAe3pC,OAAAC,OAAA,GAAKvF,EAAK,CAAEwZ,QAASwP,KAAS7I,cAAesvB,UAAW,IAAIhvD,S,8CC1HvF,SAASgmB,KAAiS,OAApRA,GAAWnB,OAAOC,OAASD,OAAOC,OAAOmB,OAAS,SAAUC,GAAU,IAAK,IAAI9f,EAAI,EAAGA,EAAIwK,UAAUrS,OAAQ6H,IAAK,CAAE,IAAI4M,EAASpC,UAAUxK,GAAI,IAAK,IAAIzG,KAAOqT,EAAc6R,OAAOsB,UAAUC,eAAeC,KAAKrT,EAAQrT,KAAQumB,EAAOvmB,GAAOqT,EAAOrT,IAAY,OAAOumB,IAA2BvZ,MAAM2Z,KAAM1V,WACtU,SAAS2V,GAAyBvT,EAAQwT,GAAY,GAAc,MAAVxT,EAAgB,MAAO,GAAI,IAAkErT,EAAKyG,EAAnE8f,EACzF,SAAuClT,EAAQwT,GAAY,GAAc,MAAVxT,EAAgB,MAAO,GAAI,IAA2DrT,EAAKyG,EAA5D8f,EAAS,GAAQO,EAAa5B,OAAO6B,KAAK1T,GAAqB,IAAK5M,EAAI,EAAGA,EAAIqgB,EAAWloB,OAAQ6H,IAAOzG,EAAM8mB,EAAWrgB,GAAQogB,EAASzlB,QAAQpB,IAAQ,IAAaumB,EAAOvmB,GAAOqT,EAAOrT,IAAQ,OAAOumB,EADxMS,CAA8B3T,EAAQwT,GAAuB,GAAI3B,OAAO+B,sBAAuB,CAAE,IAAIC,EAAmBhC,OAAO+B,sBAAsB5T,GAAS,IAAK5M,EAAI,EAAGA,EAAIygB,EAAiBtoB,OAAQ6H,IAAOzG,EAAMknB,EAAiBzgB,GAAQogB,EAASzlB,QAAQpB,IAAQ,GAAkBklB,OAAOsB,UAAUW,qBAAqBT,KAAKrT,EAAQrT,KAAgBumB,EAAOvmB,GAAOqT,EAAOrT,IAAU,OAAOumB,EAGne,IAAIa,GAAqB,IAAMlhB,cAAc,QAAS,CACpDhF,EAAG,EACH6xB,EAAG,EACHy9B,UAAW,mtlBAET,GAAsC,SAA6CjtC,GACrF,IAAIiE,EAASjE,EAAKiE,OAChB5H,EAAQgH,GAAyBrD,EAAM,CAAC,WAC1C,OAAO,IAAMrd,cAAc,MAAOmgB,GAAS,CACzCnlB,EAAG,MACH6xB,EAAG,MACHtL,MAAO,QACPC,OAAQ,QACRC,QAAS,cACT8oC,iBAAkB,kBAClBC,SAAU,WACVlvC,IAAKgG,GACJ5H,GAAQwH,KAETQ,GAAa,IAAMC,YAAW,SAAUjI,EAAO4B,GACjD,OAAO,IAAMtb,cAAc,GAAqCmgB,GAAS,CACvEmB,OAAQhG,GACP5B,O,IAEU,I,uDC5Bf,SAAS,KAAiS,OAApR,GAAWsF,OAAOC,OAASD,OAAOC,OAAOmB,OAAS,SAAUC,GAAU,IAAK,IAAI9f,EAAI,EAAGA,EAAIwK,UAAUrS,OAAQ6H,IAAK,CAAE,IAAI4M,EAASpC,UAAUxK,GAAI,IAAK,IAAIzG,KAAOqT,EAAc6R,OAAOsB,UAAUC,eAAeC,KAAKrT,EAAQrT,KAAQumB,EAAOvmB,GAAOqT,EAAOrT,IAAY,OAAOumB,IAA2BvZ,MAAM2Z,KAAM1V,WACtU,SAAS,GAAyBoC,EAAQwT,GAAY,GAAc,MAAVxT,EAAgB,MAAO,GAAI,IAAkErT,EAAKyG,EAAnE8f,EACzF,SAAuClT,EAAQwT,GAAY,GAAc,MAAVxT,EAAgB,MAAO,GAAI,IAA2DrT,EAAKyG,EAA5D8f,EAAS,GAAQO,EAAa5B,OAAO6B,KAAK1T,GAAqB,IAAK5M,EAAI,EAAGA,EAAIqgB,EAAWloB,OAAQ6H,IAAOzG,EAAM8mB,EAAWrgB,GAAQogB,EAASzlB,QAAQpB,IAAQ,IAAaumB,EAAOvmB,GAAOqT,EAAOrT,IAAQ,OAAOumB,EADxM,CAA8BlT,EAAQwT,GAAuB,GAAI3B,OAAO+B,sBAAuB,CAAE,IAAIC,EAAmBhC,OAAO+B,sBAAsB5T,GAAS,IAAK5M,EAAI,EAAGA,EAAIygB,EAAiBtoB,OAAQ6H,IAAOzG,EAAMknB,EAAiBzgB,GAAQogB,EAASzlB,QAAQpB,IAAQ,GAAkBklB,OAAOsB,UAAUW,qBAAqBT,KAAKrT,EAAQrT,KAAgBumB,EAAOvmB,GAAOqT,EAAOrT,IAAU,OAAOumB,EAGne,IAAI,GAAqB,IAAMrgB,cAAc,OAAQ,CACnDy9B,SAAU,UACVC,SAAU,UACVvc,EAAG,4XACHC,KAAM,iBAEJ,GAAU,SAAiB/D,GAC7B,IAAIiE,EAASjE,EAAKiE,OAChB5H,EAAQ,GAAyB2D,EAAM,CAAC,WAC1C,OAAO,IAAMrd,cAAc,MAAO,GAAS,CACzCuhB,MAAO,GACPC,OAAQ,GACRC,QAAS,YACTL,KAAM,OACN9F,IAAKgG,GACJ5H,GAAQ,KAET,GAAa,IAAMiI,YAAW,SAAUjI,EAAO4B,GACjD,OAAO,IAAMtb,cAAc,GAAS,GAAS,CAC3CshB,OAAQhG,GACP5B,O,IAEU,I,QCjBT+wC,GAAgB5wD,YAAQ,qBAyBfoI,eAvBf,SAAiCyX,GAAsC,IAC3DC,EAAcD,EAAdC,UACFvU,EAAW0X,aAAY,SAACC,GAAqB,OAAKhjB,YAAIgjB,EAAO,gBAAiB,SAC9E/K,EAAW5M,EAAQ,GAAApL,OAAMoL,EAASslD,UAAS,KAAA1wD,OAAIoL,EAASulD,UAAa,GAE3E,OACI1oD,gBAAC2oD,KAAQ,CACLjxC,UAAWA,EACXC,YAAa,CACT3X,gBAACyc,KAAU,CAAC5kB,IAAI,aAAa4H,KAAM+oD,GAAe5iD,IAAI,cAAczF,MAAOqoD,GAAejuC,aAAW,IACrGva,gBAAC4oD,KAAY,CAAC/wD,IAAI,UAAU0iB,aAAW,KAE3C3C,cACI5X,2BAAA,KACIA,gBAAC6oD,GAAQ,CAACnxC,UAAU,qCACpB1X,gBAAA,QAAM0X,UAAU,uCAAuCoxC,oBAAA,EAAiBC,kBAAgB,QAAO/oD,gBAACgpD,KAAQ,CAACC,gBAAc,EAAC3pC,MAAO,KAAMvP,KAG7I8H,YAAY,wC,mBCnBlB9hB,GAAemzD,cACf/yD,GAAWyB,YAAQ,YAqDVoI,WAAMmpD,MAnDrB,SAA6B1xC,GAAkC,IACnD2xC,EAAuC3xC,EAAvC2xC,cAAe3pD,EAAwBgY,EAAxBhY,KAAI4pD,EAAoB5xC,EAAlB6xC,gBAAQ,IAAAD,EAAG,GAAEA,EAAAnxC,EACVlY,IAAMupD,UAAkB,GAAMpxC,EAAA7b,KAAA4b,EAAA,GAAvDsxC,EAAQrxC,EAAA,GAAEsxC,EAAWtxC,EAAA,GAAAG,EACMtY,IAAMupD,SAAiB,IAAGhxC,EAAAjc,KAAAgc,EAAA,GAA1CoxC,GAAFnxC,EAAA,GAAcA,EAAA,IAoB9B,OAlBAvY,IAAM2pD,WAAU,WACZF,EAAY5wC,KAAgBviB,SAASC,SAASG,SAAS,IAADqB,OAAKuxD,EAAStwD,cAAa,OACjF,IAAM4f,EAAkBC,KAAgBC,QAAO,SAAAxiB,GAC3CmzD,EAAYnzD,EAASC,SAASG,SAAS,IAADqB,OAAKuxD,EAAStwD,cAAa,UAE/D4wD,EAAmCvjB,eAAepT,QAAQ,yBAShE,OARyC,OAArC22B,EACAx4B,IAAW/b,mBAAmB,uBAAuB/N,MAAK,SAAAgN,GACtDo1C,EAAap1C,EAASrW,QAAQ4rD,uBAAyB,IACvDxjB,eAAe7T,QAAQ,wBAAyBle,EAASrW,QAAQ4rD,0BAGrEH,EAAaE,GAAoC,IAE9C,WACHhxC,OAEL,IAEC5Y,IAAAjC,cAAC4qD,KAAQ,CACL7wC,qBAAmB,EACnBJ,UAAU,yBACVC,YAAayxC,EAAcrvD,KAAI,SAAC+jB,GAAsB,OAClD9d,IAAAjC,cAAC0e,KAAU,CACP5kB,IAAKimB,EAAKre,KACVA,KAAMqe,EAAKre,KACXmG,IAAKkY,EAAKgsC,aAAgB3wD,YAAU,GAADpB,OAAI+lB,EAAKgsC,aAAY,KAAA/xD,OAAIhC,GAAa4rB,MAAoB7D,EAAKlY,IAClGzF,MAAO2d,EAAK3d,MACZoa,aAAW,EACXX,WAAYkE,EAAKlE,WACjBy2B,gBAAgB,4CAGxBz4B,cACI5X,IAAAjC,cAAAiC,IAAA+pD,SAAA,KACI/pD,IAAAjC,cAAA,QAAM2Z,UAAW/hB,YAAG,4DAADoC,OAA6D5B,IAAY,CAAE,sCAAuCqzD,KAChI/pD,EACDO,IAAAjC,cAAC0b,KAAa,QAI1B5B,YAAY,oCCtDlBmyC,GAAapyD,YAAQ,yBAErBmiB,GAAS1jB,OACf0jB,GAAOC,UAAYD,GAAOC,WAAa,GA8CxBha,eA5Cf,SAAsByX,GAClB,IAAMvU,EAAO2X,aAAY,SAACC,GAAqB,OAAKhjB,YAAIgjB,EAAO,OAAQ,OACjEmvC,EAAkB/mD,GAAQA,EAAKC,UAAYD,EAAKC,SAASo0C,cAAgBr0C,EAAKC,SAASo0C,cAAgB,GACvG2S,EAAY/wD,YAAU,4BAGxBue,EAKAD,EALAC,UACA2C,EAIA5C,EAJA4C,YACAC,EAGA7C,EAHA6C,SACAC,EAEA9C,EAFA8C,YAAW4vC,EAEX1yC,EADAhY,YAAI,IAAA0qD,EAAGH,GAAUG,EAGfhvC,EAAW,eAAAC,EAAAC,KAAAC,KAAAC,MAAG,SAAAC,EAAOC,GAA2B,OAAAH,KAAAI,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAE9CJ,EAAMO,iBACN,yCAAkD1U,MAAK,SAAA4S,GACnD,IAAMC,EAAcD,EAAW,QAC3BC,GAAaA,EAAYC,QAC7B/jB,OAAOC,SAASgmB,KAAO4tC,KAG/BnwC,GAAOC,UAAU9d,KAAK,CAClBuf,MAAO,UACPnE,cAAe2yC,IAChB,wBAAAtuC,EAAAY,UAAAf,OACN,gBAbgBgB,GAAA,OAAApB,EAAAvW,MAAA,KAAAiE,YAAA,GAejB,OACI9I,gBAACyc,KAAU,CACP7W,IAAKskD,EACLzqD,KAAMA,EACN6a,SAAUA,EACVD,YAAaA,EACb+D,OAAO,QACP7D,YAAaA,EACb7C,UAAWA,EACX4B,QAAS6B,EACT5P,GAAG,eACH2P,QA3CI,wBCAV8uC,GAAapyD,YAAQ,yBACrBiiB,GAAajiB,YAAQ,kBAiBZoI,eAff,SAA4ByX,GAAiC,IACjDC,EAAcD,EAAdC,UACR,OACI1X,gBAAC2oD,KAAQ,CACLjxC,UAAWA,EACXC,YAAa,CACT3X,gBAAC4oD,KAAY,CAAC/wD,IAAI,UAAU0iB,aAAW,IACvCva,gBAACoqD,GAAY,CAACvyD,IAAI,UAAU4H,KAAMuqD,GAAYzvC,aAAW,EAACD,UAAU,KAExE1C,cAAeiC,GACfhC,YAAY,2D,4GCZlBwyC,GAAgBzyD,YAAQ,yBAExBk3B,GAAUl3B,YAAQ,mBAClBg3B,GAAWh3B,YAAQ,oBACnB0yD,GAAY1yD,YAAQ,qBAoKXoI,eAlKf,SAA2ByX,GAAgC,IAC/CyP,EAAkGzP,EAAlGyP,aAAcqjC,EAAoF9yC,EAApF8yC,SAAUC,EAA0E/yC,EAA1E+yC,iBAAkBC,EAAwDhzC,EAAxDgzC,YAAaC,EAA2CjzC,EAA3CizC,QAAShzC,EAAkCD,EAAlCC,UAAW4B,EAAuB7B,EAAvB6B,QAASqxC,EAAclzC,EAAdkzC,UACtFC,EAAsB1jC,EAAazwB,OATlB,EAWnBo0D,GAAwB,EAGxBC,EAA0C,KAC1CC,EAAiC,GAM/BC,EAAkB,SAACvvC,GACrB,IAEMwvC,EAAkBF,EAAUt0D,OAAS,EACrCy0D,EAAqBD,EAAkB,EAG7C,GAAIJ,GALqB,IAKsC,OAAdpvC,EAAM5jB,KAA8B,YAAd4jB,EAAM5jB,KAGzE,OAFAgzD,GAPgB,OAQZN,EAASY,SAASZ,EAASY,QAAQjsB,SAK3C,GAAI2rB,IAAyBI,IAAkC,SAAdxvC,EAAM5jB,KAAgC,cAAd4jB,EAAM5jB,MAAwB+yD,EAInG,OAHAnvC,EAAMO,iBACF8uC,GAAeA,EAAc5rB,aACjC2rB,IAKJ,GACKA,IAAyBK,IAAuBL,IAAyBI,GAAoBL,IAC/E,SAAdnvC,EAAM5jB,KAAgC,cAAd4jB,EAAM5jB,IAFnC,CASA,OAAQ4jB,EAAM5jB,KACV,IAAK,KACL,IAAK,UACDgzD,GAAwB,EACxB,MACJ,IAAK,OACL,IAAK,YACDA,GAAwB,EAOd,OAAdpvC,EAAM5jB,KAA8B,YAAd4jB,EAAM5jB,KAAmC,SAAd4jB,EAAM5jB,KAAgC,cAAd4jB,EAAM5jB,MAC/E4jB,EAAMO,iBACN+uC,EAAUF,GAAsB3rB,cArBhCzjB,EAAMO,kBAyBdhc,aAAgB,WACZ,IAAM40C,EAAY+V,EAAYA,EAAUQ,QAAU,KAElD,OADIvW,GAAWA,EAAU/f,iBAAiB,UAAWm2B,GAC9C,WACCpW,GAAWA,EAAUxV,oBAAoB,UAAW4rB,OAIhE,IAAMI,EAAe,SAAC3mD,GAClBsmD,EAAS,GAAAhzD,OAAA6H,KAAOmrD,GAAS,CAAEtmD,KA0DzB4mD,EAAkBnkC,EAAazwB,OAAS,EACxC60D,EAAgBb,EAAYh0D,OAAS,EAC3C,OAASi0D,IAAWW,IAAoBC,EAyBpC,KAxBAtrD,gBAAA,WAAS0X,UAAW/hB,YAAG,yBAA0B+hB,KAC3C2zC,GAAmBrrD,gBAAA,KAAG0X,UAAU,sCAAoC,yCACrE2zC,GACGrrD,gBAAA,MAAI0X,UAAU,gCACTwP,EAAaqkC,MAAM,EAAG,GAAGxxD,KAAI,SAAAotB,GAC1B,MAAI,yBAA0BA,EA/D5B,SAACqkC,GACnB,IAAMC,EAAsBC,aAASF,EAASlkB,sBAAwBkkB,EAAShI,yBAA2BgI,EAASxlC,qBAAsBwlC,EAAS/xD,oBAC5ImM,EAAG,cAAA7N,OAAiB0zD,GAC1B,OACIzrD,gBAAA,MAAInI,IAAK2zD,EAAS/xD,mBAAoBie,UAAU,qCAC5C1X,gBAAA,QAAM0X,UAAU,gDAAgDkX,IAChE5uB,gBAACyc,KAAU,CACPhd,KAAM+rD,EAASxlC,qBACfpgB,IAAKA,EACL8R,UAAU,oCACV44B,SAAU8a,EACV9xC,QAASA,IAEbtZ,gBAAC2rD,KAAQ,CAACzvB,iBAAkBsvB,EAASlI,kBAAmBnnB,uBAAwBqvB,EAASjI,+BAAgC9mB,SAAO,KAkDtEmvB,CAAczkC,GAC5D,6BAA8BA,EA9C/B,SAAC0kC,GACpB,IAAMC,EAAuBJ,aAASG,EAAUjkB,uBAAyBikB,EAAU1H,0BAA4B0H,EAAUhkB,yBACrHgkB,EAAUlkB,yBACR/hC,EAAG,eAAA7N,OAAkB+zD,GAC3B,OACI9rD,gBAAA,MAAInI,IAAKg0D,EAAUlkB,wBAAyBjwB,UAAU,qCAClD1X,gBAAA,QAAM0X,UAAU,gDAAgD4yC,IAChEtqD,gBAACyc,KAAU,CACPhd,KAAMosD,EAAUhkB,yBAChBjiC,IAAKA,EACL8R,UAAU,oCACV44B,SAAU8a,EACV9xC,QAASA,IAEbtZ,gBAAC2rD,KAAQ,CAACzvB,iBAAkB2vB,EAAU5H,8BAA+B9nB,uBAAwB0vB,EAAU3H,oCAAqCznB,SAAO,KAgCrFsvB,CAAe5kC,GA3BpE,SAACA,GAA4B,OAC9CnnB,gBAAA,MAAInI,IAAKsvB,EAAY5b,GAAImM,UAAU,qCAC/B1X,gBAAA,QAAM0X,UAAU,gDAAgDoX,IAChE9uB,gBAACyc,KAAU,CACPhd,KAAM0nB,EAAYrD,KAClBle,IACIuhB,EAAYra,SAAQ,oBAAA/U,OACM2zD,aAASvkC,EAAYuzB,cAAgBvzB,EAAY86B,SAAW96B,EAAYrD,KAAMqD,EAAY5b,KAAG,aAAAxT,OACpG2zD,aAASvkC,EAAYuzB,cAAgBvzB,EAAY86B,SAAW96B,EAAYrD,KAAMqD,EAAY5b,KAEjHmM,UAAU,oCACV44B,SAAU8a,EACV9xC,QAASA,IAEbtZ,gBAAC2rD,KAAQ,CAACzvB,iBAAkB/U,EAAY5jB,UAAW44B,uBAAwBhV,EAAYpJ,gBAAiB0e,SAAO,KAc5FuvB,CAAa7kC,MAEvByjC,IAAwBJ,GACrBxqD,gBAACyc,KAAU,CACPpC,YAAY,WACZ3C,UAAU,iCACV44B,SA1IC,SAAC7rC,GACtBqmD,EAAgBrmD,GA0II6V,UAAQ,EACRC,aAAW,EACX9a,KAAI,GAAA1H,OAAKsyD,GAAa,MAAAtyD,OAAKmvB,EAAazwB,OAAM,KAC9CmP,IAAG,0BAAA7N,OAA4Bsb,mBAAmBo3C,EAAY/lD,SAC9D4U,QAASA,S,mBClK/BpgB,I,OAAcC,YAAU,wBACxBC,GAAiBD,YAAU,uBAalB8yD,GAXW,SAAC3yD,EAAsBC,GAE7C,IAAMC,EAAcd,YAAeU,GAAgBG,GAEnD,OAAID,GAAQA,EAAK7C,OAAS,GAAK6C,IAA2BE,EACxCF,EAAKR,QAAO,SAAAC,GAAC,OAAKG,GAAYxC,SAASqC,EAAE4uC,6BACvC,GAEbruC,GCILnD,GAAWyB,YAAQ,YAEnBmiB,GAAS1jB,OACf0jB,GAAOC,UAAYD,GAAOC,WAAa,GAEvC,IAAMkyC,GAAoBC,aAAW,CACjC1iB,KAAM,CACF,iBAAkB,MAClB,+BAAgC,CAC5B/rC,QAAS,QAEb,8BAA+B,CAC3BA,QAAS,UAPKyuD,CAUvBxY,MAEGyY,GAAmBjzD,YAAU,wCAC7BkxD,GAAgBzyD,YAAQ,yBA8LfoI,eA5Lf,SAAmByX,GAAwB,IAEnC40C,EAUA50C,EAVA40C,YACAC,EASA70C,EATA60C,WACAxoC,EAQArM,EARAqM,KACApM,EAOAD,EAPAC,UACAs8B,EAMAv8B,EANAu8B,YACAuY,EAKA90C,EALA80C,aACA/B,EAIA/yC,EAJA+yC,iBAAgBgC,EAIhB/0C,EAHA46B,iBAAS,IAAAma,GAAQA,EAAAC,EAGjBh1C,EAFAi1C,iBAAS,IAAAD,GAAQA,EACjBE,EACAl1C,EADAk1C,WAIEC,IADKh2D,UAAUuiB,UACIlgB,QAAQ,aAAe,IAAYo5C,EACtDnvC,EAAO2X,aAAY,SAACC,GAAqB,OAAKhjB,YAAIgjB,EAAO,OAAQ,OACjE2T,EAAuB5T,aAAY,SAACC,GAAqB,OAAKhjB,YAAIgjB,EAAO,qCAAqC,MAC9GliB,EAAYsK,GAAQA,EAAKC,UAAYD,EAAKC,SAASC,MAAQF,EAAKC,SAASC,MAAQ,GAAG8U,EAC1DlY,WAAiE,IAAGmY,EAAA7b,KAAA4b,EAAA,GAA7F5D,EAAQ6D,EAAA,GAAE00C,EAAW10C,EAAA,GAAAG,EACUtY,WAAuB,IAAGuY,EAAAjc,KAAAgc,EAAA,GAAzDjT,EAAWkT,EAAA,GAAEu0C,EAAcv0C,EAAA,GAAAoe,EACJ32B,YAAwB,GAAM42B,EAAAt6B,KAAAq6B,EAAA,GAArD+zB,EAAO9zB,EAAA,GAAEm2B,EAAUn2B,EAAA,GAE1BG,EACkD/2B,YAAwB,GAAKg3B,EAAA16B,KAAAy6B,EAAA,GAAxEi2B,EAAiBh2B,EAAA,GAAEi2B,EAAoBj2B,EAAA,GAExCk2B,EAAkDltD,SAAa,MAC/DmtD,EAA2DntD,SAAa,MAGxEotD,EAAiBptD,aAAiBk+B,MAElClF,EAAQ,WAEV+zB,GAAW,GACXD,EAAe,IACfD,EAAY,IACRF,GAAYA,IAChBS,KAwFJ,OArDAC,cACI,WACQhoD,EAAY5O,QACZ26B,IAAWxmB,OAAOvF,EAAYX,YAAQ2G,GAAW/D,MAAK,SAAAgM,GAClD,IAoBIg6C,EAAc,GAClBA,EArBax1D,YAAIwb,EAAK,iBAAkB,IAAIvZ,KAAI,SAACwzD,GAC7C,GAA2B,aAAvBA,EAAIjqB,QAAQl4B,OAAuB,CACnC,IAAMrS,EAAIiqD,aAA0BuK,EAAIjqB,SAClCzqC,EAAMQ,YAAS,CAACN,GAAmBH,GACzC,OAAIC,GAAOA,EAAIpC,OAAS,EACbsC,EAEJ,KAEX,GAA2B,cAAvBw0D,EAAIjqB,QAAQl4B,OAAwB,CACpC,IAAMrS,EAAI0qD,aAA2B8J,EAAIjqB,SACnCzqC,EAAMozD,GAAkB,CAAClzD,GAA+BH,GAC9D,OAAIC,GAAOA,EAAIpC,OAAS,EACbsC,EAEJ,KAEX,OAAOsqC,aAAiCkqB,EAAIjqB,YAI7BxqC,QAAO,SAACC,GAAiD,QAAOA,KAC9E01B,IACD6+B,EAAcA,EAAYx0D,QAAO,SAACC,GAAM,YAAmCsS,IAA9BtS,EAAE4uC,4BAGnD5tB,GAAOC,UAAU9d,KAAK,CAClBuf,MAAO,eACP+xC,WAAYnoD,EACZooD,mBAAoBH,EAAY72D,SAGpCo2D,EAAYS,GACZP,GAAW,QAIvBX,GACA,CAAC/mD,IAGLsT,aAAaw0C,GAAyB,WAC7BH,EAGDC,GAAqB,GAFrBj0B,MAIL,CAAC,UAGAh5B,gBAAA,OAAKqZ,IAAK8zC,EAAyBz1C,UAAU,0BACzC1X,gBAAA,QAAMooB,OAAO,kBAAkB8R,YAAU,EAACxiB,UAAW/hB,YAAG,gBAAiB+hB,GAAYyiB,SA9DtE,SAAC1e,GACpBA,EAAMO,iBACNgd,IACK3zB,EAAY5O,OACZi3D,KAAQxxD,KAAK,IAADnE,OAAK5B,GAAQ,2BAAA4B,OAA0Bsb,mBAAmBhO,EAAYX,UAD9DgpD,KAAQxxD,KAAK,IAADnE,OAAK5B,GAAQ,sBA4DzCk2D,EACDrsD,gBAAA,OAAK0X,UAAU,wBACX1X,gBAAC2tD,KAAQ,CAACC,QAAS,SAACC,GAAwB,OA1FvC,SAACA,GACdA,EAAEC,YAAcD,EAAEE,cAClB/0B,IACIk0B,GAAgBA,EAAa/B,SAAS+B,EAAa/B,QAAQ6C,QAuFNC,CAAaJ,KAC1D7tD,gBAACksD,GAAiB,CACd5+C,KAAK,SACL+kC,UAAWua,EACX3Y,aAAa,MACbpU,WAAS,EACTt0B,GAAIuY,EACJA,KAAMA,EACNgX,SAvFD,SAACrf,GAAgD,IAI9DyyC,EAHazyC,EAAX2C,OACAtkB,MAEgBqC,QADV,QACyB,IACvC2wD,EAAeoB,GACXA,EAAUz3D,OACVs2D,GAAW,IAEXF,EAAY,IACZE,GAAW,KA8EKoB,QA5FF,SAAC1yC,GACf8wC,GAAcA,EAAa9wC,IA4FXu4B,YAAaA,EACbl6C,MAAOuL,EACPklD,SAAU2C,EACVpwC,WAAY,CACRtkB,MAAO,CACH+mB,OAAQ,QAEZ,aAAcy0B,EACd,cAAe,uBAK/Bh0C,gBAAC6uC,KAAO,CAACC,SAAU4b,IAClB4B,IAGHI,GACE1sD,gBAACouD,GAAiB,CACdlnC,aAAc5S,EACdi2C,SAAU2C,EACV1C,iBAAkBA,EAClBC,YAAaplD,EACbqlD,QAASA,EACTpxC,QAAS0f,EACT2xB,UAAWwC,EACXkB,aAAa,KAIpB/5C,EAAS7d,OAAS,GAAK+zD,GACpBxqD,gBAAA,OAAK0X,UAAU,oDACX1X,gBAACyc,KAAU,CACPpC,YAAY,WACZ3C,UAAU,wCACV4C,UAAQ,EACRC,aAAW,EACX9a,KAAI,GAAA1H,OAAKsyD,GAAa,MAAAtyD,OAAKuc,EAAS7d,OAAM,KAC1CmP,IAAG,0BAAA7N,OAA4Bsb,mBAAmBhO,EAAYX,SAC9D4U,QAAS0f,SC7M3Bs1B,GAAW12D,YAAQ,gBACnB22D,GAAgB32D,YAAQ,aACxBo8C,GAAcp8C,YAAQ,gCACtBzB,GAAWyB,YAAQ,YAwHVoI,eAvGf,SAA6ByX,GAAsB,IAADS,EACFlY,WAAuB,GAAEmY,EAAA7b,KAAA4b,EAAA,GAA9Ds2C,EAAcr2C,EAAA,GAAEs2C,EAAiBt2C,EAAA,GAClCu2C,EAAgC3xC,OAAO2P,OAAO6hC,IAC5CjgC,EAA4B7W,EAA5B6W,wBACFG,EAAuB5T,aAAY,SAACC,GAAqB,OAAKhjB,YAAIgjB,EAAO,qCAAqC,MAEpH9a,aAAgB,WACZlC,SAAS+2B,iBAAiB,mBAAmB,WACzC45B,EAAkB,SAI1B,IApB+Bn1C,EAwBzBsB,EAAiBC,aAAY,SAACC,GAAqB,OAAKhjB,YAAIgjB,EAAO,mBAAmB,MACtF6zC,EAAsB1rD,YAAkB4X,aAAY,SAACC,GAAqB,OAAKhjB,YAAIgjB,EAAO,YAO1F8zC,EAAwB,WAC1Bn3C,EAAMo3C,qBAQV,OACI7uD,gBAAA,UAAQ8uD,KAAK,eAAex1C,QAASs1C,EAAuBG,UAAWH,EAAuBl3C,UAAW/hB,YAAG,wBAAyB,iBACjIqK,gBAAA,OAAK0X,UAAU,uBACX1X,gBAACqxC,KAAO,CAAC2d,OAAK,EAAC1d,GAAE,IAAAv5C,OAAM5B,GAAQ,KAAKgK,MAAOmuD,GAAU52C,UAAU,8BAA8B24B,gBAAgB,uCACzGrwC,gBAACivD,GAAM,CAAC31C,QAAS,kBAAMm1C,EAAkB,OAE7CzuD,gBAAA,OAAK0X,UAAU,8BACX1X,gBAAA,MAAI0X,UAAU,+BACTg3C,EAAU51D,QAAO,SAAAglB,GAAI,MAAkB,aAAbA,EAAKlY,KAAqB0oB,KAAiCv0B,KAAI,SAAA+jB,GACtF,OAAIA,EAAKoxC,aACGlvD,gBAAA,MAAInI,IAAKimB,EAAKre,KAAMiY,UAAU,gCAA+B1X,gBAACmvD,GAAmB,CAAC1vD,KAAMqe,EAAKre,KAAM6pD,SAAUxrC,EAAKvS,GAAI69C,eAf1H9vD,EAegKwkB,EAAKoxC,cAd1Lt0C,GAAkB+zC,EAAsBr1D,EAC3CA,EAAKR,QAAO,SAAAg6C,GAAE,OAAKA,EAAGsc,4BAawL,OAE7K,gBAAbtxC,EAAKlY,KAA0B6oB,EACjB,aAAd3Q,EAAKre,MAAuBgvB,EAA6B,KAEzDzuB,gBAAA,MAAInI,IAAKimB,EAAKre,KAAMiY,UAAU,gCAC1B1X,gBAACyc,KAAU,CACPhd,KAAMqe,EAAKre,KACXmG,IAAKkY,EAAKlY,IACVzF,MAAO2d,EAAK3d,MACZuX,UAAS,4DAAA3f,OAA8D5B,IACvEk6C,gBAAgB,yCAToC,KAjBzD,IAAC/2C,OAiCd+1D,eAAc94D,WAAQ,IAAAwB,OAAS5B,GAAQ,MAAOk5D,eAAc94D,WAAQ,IAAAwB,OAAS5B,MAC3E6J,gBAAA,UAAQsN,KAAK,SAASoK,UAAU,sDAAsD4B,QAAS,SAAAimB,GAAC,OA3CpF,SAACA,GAC7BA,EAAE+vB,kBACF73C,EAAM83C,oBAyC8GC,CAAwBjwB,IAAIhmB,cAAY,cAAc4mB,aAAW,eACjKngC,gBAACyvD,KAAU,OAIjBJ,eAAc94D,WAAQ,IAAAwB,OAAS5B,GAAQ,MAAOk5D,eAAc94D,WAAQ,IAAAwB,OAAS5B,KAC3E6J,gBAAA,UAAQsN,KAAK,SAASoK,UAAU,sDAAsD4B,QAAS,kBAAMm1C,EAAkB,IAAIl1C,cAAY,cAAc4mB,aAAW,eAC5JngC,gBAACyvD,KAAU,OAGlBjB,EAAiB,GAAKA,EAAiB,GACpCxuD,gBAAA,OACI0X,UAAW/hB,YAAG,qCAAsC,CAChD,8CAAkE,IAAnB64D,IAEnDkB,eAjEK,SAACj0C,GACtBA,EAAMk0C,cAAc12D,QAAQ,iBAAmB,GAAGw1D,EAAkBD,EAAiB,IAiErEj1C,cAAY,iCAEZvZ,gBAAC4vD,GAAS,CACNvD,YA9FxBrsD,gBAAA,QAAM0X,UAAU,kDACZ1X,gBAACyvD,KAAU,OA8FSnD,YA1FGhzC,EA0FmC,kBAAMm1C,EAAkB,IAxFtFzuD,gBAAA,UAAQsN,KAAK,SAASoK,UAAU,gDAAgD4B,QAASA,EAASC,cAAY,cAC1GvZ,gBAACogC,KAAS,QAwFUtc,KAAK,gBACLpM,UAAU,mEACVs8B,YAAaA,GACb3B,WAAS,EACTqa,UAA8B,IAAnB8B,EACX7B,WAAY,kBAAM8B,EAAkB,QAKlD7zC,EAGE5a,gBAAC6vD,GAAuB,CAACn4C,UAAU,wCAFnC1X,gBAAC8vD,GAAkB,CAACp4C,UAAU,wC,0BCtGnC1X,eAvBf,SAA8ByX,GAA8B,IAChD6B,EAAsB7B,EAAtB6B,QAASkwC,EAAa/xC,EAAb+xC,SAEjB,OACIxpD,gBAAA,UACImgC,aAAW,OACX7yB,KAAK,SAILoK,UAAW/hB,YAAG,2BAA4B,CACtC,iCAAkC6zD,IAEtClwC,QAASA,EACTC,cAAY,aAEZvZ,gBAAA,QAAM0X,UAAU,mCAChB1X,gBAAA,QAAM0X,UAAU,mCAChB1X,gBAAA,QAAM0X,UAAU,uCCftBs8B,I,OAAcp8C,YAAQ,iCACtBuI,GAAQvI,YAAQ,kBA0CPoI,eAhCf,WAWI,OATAA,aAAgB,WAGZ,OAFAlC,SAASK,KAAK4xD,UAAU/tD,IAAI,eAC5BlE,SAAS2hC,gBAAgBswB,UAAU/tD,IAAI,eAChC,WACHlE,SAASK,KAAK4xD,UAAUC,OAAO,eAC/BlyD,SAAS2hC,gBAAgBswB,UAAUC,OAAO,mBAK9ChwD,gBAAA,WAAS0X,UAAU,4CAA4C6B,cAAY,kBACvEvZ,gBAAA,OAAK0X,UAAU,qEACX1X,gBAAA,MAAI0X,UAAU,uCAAuCvX,KAEzDH,gBAAA,OAAK0X,UAAU,qCACX1X,gBAAA,WAAS0X,UAAU,sCACf1X,gBAAC4vD,GAAS,CACNvD,YAzBhBrsD,gBAAA,QAAM0X,UAAU,2CACZ1X,gBAACyvD,KAAU,OAyBC3rC,KAAK,wBACL0mC,kBAAgB,EAChB9yC,UAAU,8DACVs8B,YAAaA,GACb3B,WAAS,UCpC3Bp8C,I,OADeF,cACUG,qBAwEhB8J,WAvEO,SAAuByX,GAA+B,IAChEw4C,EAA+Gx4C,EAA/Gw4C,QAAS32C,EAAsG7B,EAAtG6B,QAAS42C,EAA6Fz4C,EAA7Fy4C,UAAWC,EAAkF14C,EAAlF04C,cAAehwD,EAAmEsX,EAAnEtX,MAAOiwD,EAA4D34C,EAA5D24C,cAAeC,EAA6C54C,EAA7C44C,UAAWC,EAAkC74C,EAAlC64C,eAAgBC,EAAkB94C,EAAlB84C,cAwCrG,OACIvwD,gBAAA,OAAKqZ,IAAK42C,EAASv4C,UAAU,mBAAmByoB,aAAW,wBACvDngC,gBAAA,KAAGsc,KAAK,IAAIk0C,gBAAc,OAAOjlD,GAAG,QAAQklD,gBAAeN,EAAez4C,UAAU,UAAUg5C,KAAK,QAAQp3C,QAlB3F,SAACmC,GACrBA,EAAMO,iBACFu0C,EAAeA,EAAcH,GAC5B92C,GAAS62C,KAgBLhwD,GAEH+vD,GAAaC,GACXnwD,gBAAA,MAAI0X,UAAS,yBAAA3f,OAA2Bq4D,GAAiBK,gBAAeN,GACnEE,EAAUt2D,KAAI,SAAA+jB,GACX,OACI9d,gBAAA,MAAInI,IAAKimB,EAAK+c,MAAOi0B,KAAK,YACtB9uD,gBAAA,KACIsc,KAAMwB,EAAK9Z,KACX7D,MAAM,GACNouC,IAAI,sBACJnwB,OAAO,SACP9E,QAAS,SAAAmC,GAAK,OArDtB,SAACA,EAA6B7V,EAAanG,GAAmC,IAArBtJ,EAAQ2S,UAAArS,OAAA,QAAA4U,IAAAvC,UAAA,GAAAA,UAAA,GAAG,KACxF,GAAIwnD,EAAgB,CAChB70C,EAAMO,iBACN,IAAM20C,EAAY,IAAInrD,OAClBvP,GACK8D,KAAI,SAAC22D,GACF,MAAM,IAAN34D,OAAW24D,EAAI,OAAA34D,OAAM24D,MAExBnzD,KAAK,MAGVqN,EAASvU,OAAOC,SAASsU,OACxBpU,MAAM,KACNsC,QAAO,SAAAqG,GAAG,OAAKA,EAAIzI,SAAS,eAC5B6G,KAAK,KACLpB,QAAQ,IAAK,IAClByO,EAASA,EAAOnU,OAAS,EAAC,IAAAsB,OAAO6S,GAAWA,EAC5C,IAAM8lD,EAAI,IAAA34D,OAAO5B,EAAQ,KACnBmmB,EAAI,GAAAvkB,OAAM1B,OAAOC,SAAS6e,QAAMpd,OAAG1B,OAAOC,SAASC,SAAS4F,QAAQw0D,EAAWD,IAAK34D,OAAG6S,GAC7FvU,OAAOC,SAASgmB,KAAI,GAAAvkB,OAAMukB,IAkCgBs0C,CAAgBn1C,EAAOqC,EAAK9Z,KAAM8Z,EAAK+c,MAAO/c,EAAK3nB,YAEpE2nB,EAAK+c,MACc,OAAlB/c,EAAK3nB,SAAqB6J,gBAAA,QAAM0X,UAAU,mBAAiB,IA7BzE,SAACvhB,GACjB,OAAQA,GACJ,IAAK,KACD,MAAO,UACX,IAAK,KACD,MAAO,WACX,QACI,MAAO,IAsB6E06D,CAAY/yC,EAAK3nB,UAAS,KAAY,aCnDpIo4D,GAAgB32D,YAAQ,aAExB4wD,GAAgB5wD,YAAQ,qBAExB7B,GAAemzD,cAEfwF,GAAgC3xC,OAAO2P,OAAO6hC,IAG9CrlD,GAAOtR,YAAQ,eACf+1C,GAAiB53C,GAAaG,oBAE9BC,GAAWyB,YAAQ,YAEzB,SAASk5D,GAA0Br5C,GAAkC,IACzD2xC,EAAuC3xC,EAAvC2xC,cAAe3pD,EAAwBgY,EAAxBhY,KAAI4pD,EAAoB5xC,EAAlB6xC,gBAAQ,IAAAD,EAAG,GAAEA,EAAAnxC,EACVlY,YAAwB,GAAMmY,EAAA7b,KAAA4b,EAAA,GAAvDsxC,EAAQrxC,EAAA,GAAEsxC,EAAWtxC,EAAA,GAAAG,EACMtY,WAAuB,IAAGuY,EAAAjc,KAAAgc,EAAA,GAA1CoxC,GAAFnxC,EAAA,GAAcA,EAAA,IAqB9B,OAlBAvY,aAAgB,WACZypD,EAAY5wC,KAAgBviB,SAASC,SAASG,SAAS,IAADqB,OAAKuxD,EAAStwD,cAAa,OACjF,IAAM4f,EAAkBC,KAAgBC,QAAO,SAAAxiB,GAC3CmzD,EAAYnzD,EAASC,SAASG,SAAS,IAADqB,OAAKuxD,EAAStwD,cAAa,UAE/D4wD,EAAmCvjB,eAAepT,QAAQ,yBAShE,OARyC,OAArC22B,EACAx4B,IAAW/b,mBAAmB,uBAAuB/N,MAAK,SAAAgN,GACtDo1C,EAAap1C,EAASrW,QAAQ4rD,uBAAyB,IACvDxjB,eAAe7T,QAAQ,wBAAyBle,EAASrW,QAAQ4rD,0BAGrEH,EAAaE,GAEV,WACHhxC,OAEL,IAEC5Y,gBAAC2oD,KAAQ,CACL7wC,qBAAmB,EACnBJ,UAAU,4DACVC,YAAayxC,EAAcrvD,KAAI,SAAC+jB,GAAsB,OAClD9d,gBAAA,OAAKnI,IAAKimB,EAAKre,MACXO,gBAACyc,KAAU,CACP5kB,IAAKimB,EAAKre,KACVA,KAAMqe,EAAKre,KACXmG,IAAKkY,EAAKgsC,aAAgB3wD,YAAU,GAADpB,OAAI+lB,EAAKgsC,aAAY,KAAA/xD,OAAIhC,GAAa4rB,MAAoB7D,EAAKlY,IAClGzF,MAAO2d,EAAK3d,MACZoa,aAAW,EACXX,WAAYkE,EAAKlE,WACjBy2B,gBAAgB,uCAChBt4B,UAAQ,IAGZ/X,gBAAA,SAAI8d,EAAKizC,aAGjBn5C,cACI5X,2BAAA,KACIA,gBAAA,QAAM0X,UAAW/hB,YAAG,8BAA+B,CAAE,sCAAuC6zD,KAAc/pD,IAGlHoY,YAAY,+BACZG,QAASvY,EACTsY,UAAQ,IAgLL/X,eA3Kf,SAA0ByX,GAAsB,IAADkf,EACG32B,YAAwB,GAAM42B,EAAAt6B,KAAAq6B,EAAA,GAArEq6B,EAAkBp6B,EAAA,GAAEq6B,EAAer6B,EAAA,GAAAG,EACE/2B,YAAwB,GAAMg3B,EAAA16B,KAAAy6B,EAAA,GAAnEm6B,EAAiBl6B,EAAA,GAAEm6B,EAAcn6B,EAAA,GAAAo6B,EACApxD,YAAwB,GAAMqxD,EAAA/0D,KAAA80D,EAAA,GAA/DE,EAAaD,EAAA,GAAEE,EAAcF,EAAA,GAAAG,EACUxxD,YAAwB,GAAMyxD,EAAAn1D,KAAAk1D,EAAA,GAArEE,EAAkBD,EAAA,GAAEE,EAAeF,EAAA,GACpCG,EAAc5xD,SAA4B,MAC1C6xD,EAAgB7xD,SAA4B,MAC5C8xD,EAAe9xD,SAA4B,MAE3C+xD,EAAa54D,YAAU,sCACvB64D,EAAe,WACjB,IAAMC,EAAW57D,OAAO2jC,WACpBi4B,EAAWF,IAAeT,EAC1BC,GAAe,GACRU,GAAYF,GAAcT,GACjCC,GAAe,IAIvBS,IAEAhyD,aAAgB,WAGZ,OAFA3J,OAAOw+B,iBAAiB,SAAUm9B,GAE3B,WACH37D,OAAO+oC,oBAAoB,SAAU4yB,OAI7C,IAAME,EAAa,SAACC,GAChB,MAAM,GAANp6D,OAAU1B,OAAOC,SAAS6e,OAAM,KAAApd,OAAIo6D,EAAQ,MAG1Cl8D,EAAY,CACd,CAAE4kC,MAAO,UAAW72B,KAAMkuD,EAAW,MAAO/7D,SAAU,MACtD,CAAE0kC,MAAO,eAAM72B,KAAMkuD,EAAW,MAAO/7D,SAAU,MACjD,CAAE0kC,MAAO,qBAAO72B,KAAMkuD,EAAW,MAAO/7D,SAAU,OAGtD6J,aAAgB,WAGZ,OAFAlC,SAASK,KAAK4xD,UAAU/tD,IAAI,eAC5BlE,SAAS2hC,gBAAgBswB,UAAU/tD,IAAI,eAChC,WACHlE,SAASK,KAAK4xD,UAAUC,OAAO,eAC/BlyD,SAAS2hC,gBAAgBswB,UAAUC,OAAO,mBAE/C,IACK1hC,EAA4B7W,EAA5B6W,wBAEF1T,EAAiBC,aAAY,SAACC,GAAqB,OAAKhjB,YAAIgjB,EAAO,mBAAmB,MACtF6zC,EAAsB1rD,YAAkB4X,aAAY,SAACC,GAAqB,OAAKhjB,YAAIgjB,EAAO,YAC1F2T,EAAuB5T,aAAY,SAACC,GAAqB,OAAKhjB,YAAIgjB,EAAO,qCAAqC,MAW9GxB,EAAU,SAACwE,GACA,aAATA,GACAmzC,GAAiBD,GACjBW,GAAgB,GAChBR,GAAe,IACC,aAATrzC,GACP6zC,GAAiBD,GACjBT,GAAgB,GAChBE,GAAe,IACC,YAATrzC,IACPqzC,GAAgBD,GAChBD,GAAgB,GAChBU,GAAgB,KASxB,OACI3xD,gBAAA,OAAK0X,UAAU,kCAAkClf,MAAO,CAAE+mB,OA/B5C,WACd,IAAM6yC,EAASt0D,SAASqhC,uBAAuB,wBAAwB,GACvE,GAAIizB,EAAQ,CACR,IAAMC,EAAOD,EAAOE,wBACpB,MAAM,gBAANv6D,OAAuBs6D,EAAKlnB,IAAG,SAAApzC,OAAQs6D,EAAK9yC,OAAM,aAEtD,MAAO,QAyB2DgzC,IAAeh5C,cAAY,sBACzFvZ,gBAAA,OAAK0X,UAAU,+CACX1X,gBAAA,MAAI0X,UAAU,4BACTg3C,GAAU51D,QAAO,SAAAglB,GAAI,MAAkB,aAAbA,EAAKlY,KAAqB0oB,KAAiCv0B,KAAI,SAAA+jB,GACtF,OAAIA,EAAKoxC,aACGlvD,gBAAA,MAAInI,IAAKimB,EAAKre,KAAMiY,UAAW/hB,YAAG,+BAAgC,CAAE,iBAAiB,KAASqK,gBAAC8wD,GAAyB,CAACrxD,KAAMqe,EAAKre,KAAM6pD,SAAUxrC,EAAKvS,GAAI69C,eAX7J9vD,EAWmMwkB,EAAKoxC,cAV7Nt0C,GAAkB+zC,EAAsBr1D,EAC3CA,EAAKR,QAAO,SAAAg6C,GAAE,OAAKA,EAAGsc,4BAS2N,OAEpN,gBAAbtxC,EAAKlY,KAA0B6oB,EACjB,aAAd3Q,EAAKre,MAAuBgvB,EAA6B,KAEzDzuB,gBAAA,MAAInI,IAAKimB,EAAKre,KAAMiY,UAAW/hB,YAAG,+BAAgC,CAAE,iBAAiB,KACjFqK,gBAACyc,KAAU,CACPhd,KAAMqe,EAAKre,KACXmG,IAAKkY,EAAKlY,IACVzF,MAAO2d,EAAK3d,MACZuX,UAAS,4DAAA3f,OAA8D5B,IACvEk6C,gBAAgB,yCAToC,KAbrD,IAAC/2C,KA2BhB0G,gBAACwyD,KAAK,CAACl1D,MAAO,CAAE8gC,SAAU,OACtBp+B,gBAAA,MAAI0X,UAAU,6BACV1X,gBAACyyD,GAAa,CACVxC,QAAS2B,EACTt4C,QAAS23C,EACTV,cAAej3C,EACf42C,UAAWc,EACXb,cAAea,EACf7wD,MAAO+I,GAAKwpD,iBACZrC,UAAWnnD,GAAKypD,YAChBvC,cAAc,aAElBpwD,gBAACyyD,GAAa,CACVxC,QAAS6B,EACTx4C,QAASq4C,EACTpB,cAAej3C,EACf42C,UAAWwB,EACXvB,cAAeuB,EACfvxD,MAAOvI,YAAQ,qBACfy4D,UAAWp6D,EAAU6C,QAAO,SAAAC,GAAC,OAAI40C,GAAej3C,SAASqC,EAAE5C,aAC3Dm6D,gBAAc,EACdF,cAAc,aAElBpwD,gBAACyyD,GAAa,CACVxC,QAAS4B,EACTv4C,QAAS63C,EACTZ,cAAej3C,EACf42C,UAAWgB,EACXf,cAAee,EACf/wD,MAAO+I,GAAK0pD,gBACZvC,UAAWnnD,GAAK2pD,WAChBzC,cAAc,cAKzBx1C,GACG5a,2BAAA,KACIA,gBAAA,MAAI0X,UAAU,6BACV1X,gBAACyc,KAAU,CACPhd,KAAM+oD,GACN5iD,IAAI,cACJzF,MAAOqoD,GACP9wC,UAAU,+DACV24B,gBAAgB,mCAChB91B,aAAW,KAGnBva,gBAAA,MAAI0X,UAAU,6BACV1X,gBAAC4oD,KAAY,CAACruC,aAAW,EAAC7C,UAAU,oEAK9CkD,GACE5a,2BAAA,KACIA,gBAAC4oD,KAAY,CAACtuC,UAAQ,EAACD,YAAY,WAAW3C,UAAU,kCAAkC6C,aAAW,IACrGva,gBAACoqD,GAAY,CAAC9vC,UAAQ,EAACD,YAAY,WAAW3C,UAAU,kCAAkC6C,aAAW,WC3O3H+zC,GAAW12D,YAAQ,gBACnBzB,GAAWyB,YAAQ,YAiFVoI,eA/Ef,SAA4ByX,GAAsB,IAADS,EACHlY,YAAwB,GAAMmY,EAAA7b,KAAA4b,EAAA,GAAjE46C,EAAa36C,EAAA,GAAE46C,EAAgB56C,EAAA,GAAAG,EACFtY,YAAwB,GAAMuY,EAAAjc,KAAAgc,EAAA,GAA3Die,EAAWhe,EAAA,GAAEie,EAAYje,EAAA,GAEhCvY,aAAgB,WACZ,IAAM4Y,EAAkBC,KAAgBC,QAAO,WAC3Ci6C,GAAiB,MAErB,OAAO,WACHn6C,OAEL,IAGH,IAcMg2C,EAAwB,WAE1B9wD,SAASk1D,cAAc,IAAIC,MAAM,gCAGrC,OACIjzD,gBAAA,UAAQ8uD,KAAK,eAAex1C,QAAS,kBAAMs1C,KAAyBG,UAAW,kBAAMH,KAAyBl3C,UAAW/hB,YAAG,uBAAwB,gBAAiB4jB,cAAY,wBAC7KvZ,gBAAA,OAAK0X,UAAU,uBACX1X,gBAACqxC,KAAO,CACJ2d,OAAK,EACL1d,GAAE,IAAAv5C,OAAM5B,GAAQ,KAChBgK,MAAOmuD,GACP52C,UAAU,6BACV24B,gBAAgB,sCAEhBrwC,gBAACivD,GAAM,OAEXjvD,gBAAA,OAAK0X,UAAU,8BACT23C,eAAc94D,WAAQ,IAAAwB,OAAS5B,GAAQ,MAAOk5D,eAAc94D,WAAQ,IAAAwB,OAAS5B,MAC3E6J,gBAAA,UACIsZ,QAAS,SAACimB,GAAmB,OA7BrB,SAACA,GAC7BwzB,GAAiB,GACjBxzB,EAAE+vB,kBAIFxxD,SAASk1D,cAAc,IAAIC,MAAM,iCAuBqBzD,CAAwBjwB,IAC1DjyB,KAAK,SACLoK,UAAU,mCACVyoB,aAAW,SACX5mB,cAAY,cAEZvZ,gBAACyvD,KAAU,OAGjBJ,eAAc94D,WAAQ,IAAAwB,OAAS5B,GAAQ,MAAOk5D,eAAc94D,WAAQ,IAAAwB,OAAS5B,KAC3E6J,gBAAA,UACIsZ,QAAS,SAACimB,GAAmB,OA7ClB,SAACA,GAChCA,EAAE+vB,kBACF94B,GAAa,GA2CyC08B,CAA2B3zB,IAC7DjyB,KAAK,SACLoK,UAAU,mCACVyoB,aAAW,SACX5mB,cAAY,cAEZvZ,gBAACyvD,KAAU,OAGnBzvD,gBAAC45B,KAAK,CAACC,KAAMtD,EAAauD,QAAS,kBAAMtD,GAAa,IAAQuD,aAAc1jC,OAAO2jC,WAAa,MAC5Fh6B,gBAACmzD,GAAa,OAElBnzD,gBAACozD,GAAU,CAAC5J,SAAUsJ,EAAex5C,QAAS,kBAAMy5C,GAAkBD,QAG7EA,GAAiB9yD,gBAACqzD,GAAS57C,OClFlC3hB,GAAeC,cA0BNiK,eAxBf,SAAsByX,GAClB,IAAM67C,EAAwB,WAC1B,IAAM73C,EAAQ,IAAIw3C,MAAM,qBACxBn1D,SAASk1D,cAAcv3C,IAGrBmzC,EAAwB,WAC1B,IAAMnzC,EAAQ,IAAIw3C,MAAM,mBACxBn1D,SAASk1D,cAAcv3C,IAG3B,OAAI3lB,GAAaqrB,gBAAwBnhB,gBAACuzD,GAAW97C,GAEjDzX,2BAAA,KACIA,gBAACwyD,KAAK,CAACl1D,MAAO,CAAEk2D,SAAU,OACtBxzD,gBAACyzD,GAAO12C,OAAAC,OAAA,GAAKvF,EAAK,CAAE83C,kBAAmB+D,EAAuBzE,kBAAmBD,MAErF5uD,gBAACwyD,KAAK,CAACl1D,MAAO,CAAE8gC,SAAU,OACtBp+B,gBAACuzD,GAAMx2C,OAAAC,OAAA,GAAKvF,EAAK,CAAE83C,kBAAmB+D,EAAuBzE,kBAAmBD,UCvB1F1lD,I,OAAOtR,YAAQ,gBAyFNoI,WAxFQ,WAA2B,IAADkY,EACflY,WAAuB,kBAAiBmY,EAAA7b,KAAA4b,EAAA,GAA/Dw7C,EAAOv7C,EAAA,GAAEw7C,EAAUx7C,EAAA,GAEpBy7C,EAAmB,WACrBD,EAAW,wBAGTE,EAAmB,WACrBF,EAAW,mBAGf,OACI3zD,gBAAA,UAAQ0X,UAAU,sBAAsBo3C,KAAK,eACzC9uD,gBAAA,OAAK0X,UAAU,uCACX1X,gBAAA,MAAI0X,UAAU,qBACTxO,GAAK4qD,aAAa/5D,KAAI,SAAC+jB,GACpB,OACI9d,gBAAA,MAAInI,IAAKimB,EAAK+c,MAAOnjB,UAAU,sBAC3B1X,gBAAA,KAAGsc,KAAMwB,EAAKlY,IAAKzF,MAAM,IACpB2d,EAAK+c,YAM1B76B,gBAAA,MAAI0X,UAAU,kDACTxO,GAAK6qD,eAAeh6D,KAAI,SAAC+jB,GACtB,OACI9d,gBAAA,MAAInI,IAAKimB,EAAK+c,MAAOnjB,UAAU,sBAC3B1X,gBAAA,KAAGsc,KAAMwB,EAAKlY,IAAKzF,MAAM,GAAGmZ,QAAS,cAChCwE,EAAK+c,YAM1B76B,gBAAA,OAAK0X,UAAU,0BACX1X,gBAAA,MAAI0X,UAAU,kBACTxO,GAAK8qD,YAAYj6D,KAAI,SAAC+jB,GACnB,MAAmB,YAAfA,EAAK+c,MAED76B,gBAAA,MAAInI,IAAKimB,EAAK+c,MAAOnjB,UAAU,wBAC3B1X,gBAAA,KAAGsc,KAAMwB,EAAKlY,IAAKzF,MAAM,GAAGggC,aAAYriB,EAAK+c,MAAOvhB,QAAS,cACzDtZ,gBAAA,OACIxH,MAAO,CAAEy7D,UAAW,OAAQC,aAAc,OAC1CC,IAAKT,EACLU,IAAI,iBACJ76C,cAAY,aACZH,aAAcw6C,EACd76C,aAAc86C,MAO9B7zD,gBAAA,MAAInI,IAAKimB,EAAK+c,MAAOnjB,UAAU,wBAC3B1X,gBAAA,KAAGsc,KAAMwB,EAAKlY,IAAKzF,MAAM,GAAGggC,aAAYriB,EAAK+c,MAAOvhB,QAAS,cACzDtZ,gBAAA,KAAG0X,UAAS,SAAA3f,OAAW+lB,EAAK+c,OAASw5B,cAAY,eAMrEr0D,gBAAA,MAAI0X,UAAU,kBACTxO,GAAKorD,YAAYv6D,KAAI,SAAC+jB,GACnB,IAAMM,EAASN,EAAKM,OAASN,EAAKM,OAAS,QACrCm2C,EAAez2C,EAAKM,OAAS,sBAAwB,GACrDo2C,EAAW12C,EAAKlY,IAClB5F,gBAAA,KAAGsc,KAAMwB,EAAKlY,IAAKwY,OAAQA,EAAQmwB,IAAKgmB,EAAcj7C,QAAS,cAC1DwE,EAAK+c,OAGV/c,EAAK+c,MAAM1+B,QAAQ,UAAU,IAAIjE,MAAOE,eAE5C,OACI4H,gBAAA,MAAInI,IAAKimB,EAAK+c,MAAOnjB,UAAU,wBAC1B88C,a,+CCzE/Bv+D,I,OADeF,cACUG,qBAuEhB8J,WAtEM,SAAsByX,GAA+B,IAC9Dw4C,EAAiFx4C,EAAjFw4C,QAAS32C,EAAwE7B,EAAxE6B,QAAS42C,EAA+Dz4C,EAA/Dy4C,UAAWC,EAAoD14C,EAApD04C,cAAehwD,EAAqCsX,EAArCtX,MAAOkwD,EAA8B54C,EAA9B44C,UAAWC,EAAmB74C,EAAnB64C,eA4BtE,OACItwD,gBAAA,OAAKqZ,IAAK42C,EAASv4C,UAAU,aAAayoB,aAAW,wBACjDngC,gBAAA,KAAGsc,KAAK,IAAIk0C,gBAAc,OAAOjlD,GAAG,WAAWklD,gBAAeN,EAAez4C,UAAU,kBAAkBg5C,KAAK,QAAQp3C,QANtG,SAACmC,GACrBA,EAAMO,iBACN1C,GAAS62C,KAKAhwD,GAELH,gBAACy0D,aAAS,CAAC/8C,UAAU,uBAAuB28C,eAAclE,EAAeuE,SAAUxE,GAAaC,IAC5FnwD,gBAAA,WACIA,gBAAA,OAAK0X,UAAU,uBACX1X,gBAAA,MACImgC,aAAW,UACXzoB,UAAU,oBACV6B,cAAY,0BACZu1C,KAAK,QAEJuB,EAAUt2D,KAAI,SAAA+jB,GACX,OACI9d,gBAAA,MAAInI,IAAKimB,EAAK+c,MAAOi0B,KAAK,YACtB9uD,gBAAA,KACIsc,KAAMwB,EAAK9Z,KACX7D,MAAM,GACNuX,UAA0B,eAAfoG,EAAK+c,MAAyB,SAAW,GACpD0T,IAAI,sBACJnwB,OAAO,SACP9E,QAAS,SAAAmC,GAAK,OAjD9B,SAACA,EAA6B7V,EAAanG,GAAmC,IAArBtJ,EAAQ2S,UAAArS,OAAA,QAAA4U,IAAAvC,UAAA,GAAAA,UAAA,GAAG,KACxF,GAAIwnD,EAAgB,CAChB70C,EAAMO,iBACN,IAAM20C,EAAY,IAAInrD,OAClBvP,GACK8D,KAAI,SAAC22D,GACF,MAAM,IAAN34D,OAAW24D,EAAI,OAAA34D,OAAM24D,MAExBnzD,KAAK,MAGVqN,EAASvU,OAAOC,SAASsU,OACxBpU,MAAM,KACNsC,QAAO,SAAAqG,GAAG,OAAKA,EAAIzI,SAAS,eAC5B6G,KAAK,KACLpB,QAAQ,IAAK,IAClByO,EAASA,EAAOnU,OAAS,EAAC,IAAAsB,OAAO6S,GAAWA,EAC5C,IAAM8lD,EAAI,IAAA34D,OAAO5B,EAAQ,KACnBmmB,EAAI,GAAAvkB,OAAM1B,OAAOC,SAAS6e,QAAMpd,OAAG1B,OAAOC,SAASC,SAAS4F,QAAQw0D,EAAWD,IAAK34D,OAAG6S,GAC7FvU,OAAOC,SAASgmB,KAAI,GAAAvkB,OAAMukB,IA8BwBs0C,CAAgBn1C,EAAOqC,EAAK9Z,KAAM8Z,EAAK+c,MAAO/c,EAAK3nB,YAEpE2nB,EAAK+c,WAKtB76B,gBAAA,OAAK0X,UAAU,qBACX1X,gBAAA,KAAGsc,KAAK,IAAIhD,QAAS,kBAAMA,GAAS62C,KAAe,IAAEnwD,gBAACogC,KAAS,MAAG,mBC5D5Fl3B,GAAOtR,YAAQ,eACf9B,GAAeC,cACf43C,GAAiB73C,GAAaI,oBA+IrBy+D,gBANS,SAAC75C,GACrB,MAAO,CACH0T,mBAAoB12B,YAAIgjB,EAAO,sCAIxB65C,CAAyB30D,QA9IjB,SAAwByX,GAAsB,IAEzD+W,EAAuB/W,EAAvB+W,mBAAkBtW,EACYlY,YAAwB,GAAMmY,EAAA7b,KAAA4b,EAAA,GAA7D08C,EAAcz8C,EAAA,GAAE08C,EAAW18C,EAAA,GAAAG,EACYtY,YAAwB,GAAMuY,EAAAjc,KAAAgc,EAAA,GAArE04C,EAAkBz4C,EAAA,GAAE04C,EAAe14C,EAAA,GAAAoe,EACE32B,YAAwB,GAAM42B,EAAAt6B,KAAAq6B,EAAA,GAAnEu6B,EAAiBt6B,EAAA,GAAEu6B,EAAcv6B,EAAA,GAAAG,EACA/2B,YAAwB,GAAMg3B,EAAA16B,KAAAy6B,EAAA,GAA/Du6B,EAAat6B,EAAA,GAAEu6B,EAAcv6B,EAAA,GAAAo6B,EACUpxD,YAAwB,GAAMqxD,EAAA/0D,KAAA80D,EAAA,GAArEM,EAAkBL,EAAA,GAAEM,EAAeN,EAAA,GACpCyD,EAAc90D,SAA4B,MAC1C4xD,EAAc5xD,SAA4B,MAC1C6xD,EAAgB7xD,SAA4B,MAC5C8xD,EAAe9xD,SAA4B,MAC3C+xD,EAAa54D,YAAU,sCAEvB64D,EAAe,WACjB,IAAMC,EAAW57D,OAAO2jC,WACpBi4B,EAAWF,IAAeT,EAC1BC,GAAe,GACRU,GAAYF,GAAcT,GACjCC,GAAe,IAIvBS,IAEA,IAAM+C,EAAkB,SAACt5C,GACjBq5C,EAAY3J,SAA4B,OAAjB1vC,EAAM2C,SACxB02C,EAAY3J,QAAQ6J,SAASv5C,EAAM2C,SACpCy2C,GAAY,IAGhBjD,EAAYzG,SAA4B,OAAjB1vC,EAAM2C,SACxBwzC,EAAYzG,QAAQ6J,SAASv5C,EAAM2C,SACpC6yC,GAAgB,IAGpBY,EAAc1G,SAA4B,OAAjB1vC,EAAM2C,SAC1ByzC,EAAc1G,QAAQ6J,SAASv5C,EAAM2C,SACtC+yC,GAAe,IAGnBW,EAAa3G,SAA4B,OAAjB1vC,EAAM2C,SACzB0zC,EAAa3G,QAAQ6J,SAASv5C,EAAM2C,SACrCuzC,GAAgB,KAK5B3xD,aAAgB,WAKZ,OAJA3J,OAAOw+B,iBAAiB,SAAUm9B,GAClCl0D,SAAS+2B,iBAAiB,QAASkgC,GACnCj3D,SAAS+2B,iBAAiB,WAAYkgC,GAE/B,WACH1+D,OAAO+oC,oBAAoB,SAAU4yB,GACrCl0D,SAASshC,oBAAoB,QAAS21B,GACtCj3D,SAASshC,oBAAoB,WAAY21B,OAIjD,IAAM7C,EAAa,SAACC,GAChB,MAAM,GAANp6D,OAAU1B,OAAOC,SAAS6e,OAAM,KAAApd,OAAIo6D,EAAQ,MAG1Cl8D,EAAY,CACd,CAAE4kC,MAAO,UAAW72B,KAAMkuD,EAAW,MAAO/7D,SAAU,MACtD,CAAE0kC,MAAO,eAAM72B,KAAMkuD,EAAW,MAAO/7D,SAAU,MACjD,CAAE0kC,MAAO,qBAAO72B,KAAMkuD,EAAW,MAAO/7D,SAAU,OAGtD,OAEI6J,gBAAA,OAAK0X,UAAU,kBACX1X,gBAAA,OAAK0X,UAAU,uBACX1X,gBAAA,OAAK0X,UAAU,4BACX1X,gBAAA,OAAK0X,UAAU,iCAAiCyoB,aAAW,qBACrDrqC,GAAairB,qBAAuBjrB,GAAasrB,wBAC/CphB,gBAACi1D,GAAY,CACThF,QAAS6E,EACTx7C,QAASu7C,EACT3E,UAAW0E,GAAkBtD,EAC7BnB,cAAeyE,EACfz0D,MAAO+I,GAAKgsD,aACZ7E,UAAWnnD,GAAKisD,UAIxBn1D,gBAAA,QAAM0X,UAAU,oBAAkB,oDAEtC1X,gBAACwyD,KAAK,CAACl1D,MAAO,CAAEk2D,SAAU,OACtBxzD,gBAAA,OAAK0X,UAAU,mCACX1X,gBAAA,WACIA,gBAACyyD,GAAa,CACVxC,QAAS2B,EACTt4C,QAAS23C,EACTf,UAAWc,EACXb,cAAea,EACf7wD,MAAO+I,GAAKwpD,iBACZrC,UAAWnnD,GAAKypD,YAChBvC,cAAc,cAGrB5hC,GAAsBmf,GAAel3C,OAAS,GAC3CuJ,gBAAA,WACIA,gBAACyyD,GAAa,CACVxC,QAAS6B,EACTx4C,QAASq4C,EACTzB,UAAWwB,EACXvB,cAAeuB,EACfvxD,MAAOvI,YAAQ,qBACfy4D,UAAWp6D,EAAU6C,QAAO,SAAAC,GAAC,OAAI40C,GAAej3C,SAASqC,EAAE5C,aAC3Dm6D,gBAAc,EACdF,cAAc,cAI1BpwD,gBAAA,WACIA,gBAACyyD,GAAa,CACVxC,QAAS4B,EACTv4C,QAAS63C,EACTjB,UAAWgB,EACXf,cAAee,EACf/wD,MAAO+I,GAAK0pD,gBACZvC,UAAWnnD,GAAK2pD,WAChBzC,cAAc,sB,UC9H5Cj6D,GAAWyB,YAAQ,YAEV,SAASw9D,KAA2B,IAAD56C,EACdC,eAAxBE,EAAQH,EAARG,SAAUD,EAASF,EAATE,UACVpN,EAAS+nD,eAAT/nD,KAeR,OAbAtN,aAAgB,WAOZ,GANI2a,GAAYA,EAASvb,UACrBub,EAASvb,QAAQk2D,YAAW,GAAAv9D,OAAM1B,OAAOC,SAAS6e,OAAM,KAAApd,OAAI5B,GAAQ,KAAA4B,OAAIuV,EAAI,yBAGhFqN,EAAS46C,uBAEJ76C,EAAU86C,WAAa96C,EAAUhT,MAAO,CACzC,IAAMpR,EAAWqkB,EAAS86C,iBAC1Bp/D,OAAOC,SAAS0mB,OAAO1mB,MAE5B,CAACqkB,EAAUD,IAEP,K,yBCEI1a,OAAMmpD,MAdE,SAAuB/tC,GAAiD,IAAnCs6C,EAASt6C,EAApBu6C,UAAyB/uB,EAAInoB,KAAArD,EAAA,eAClEkJ,EAAemiB,IAAMtV,WAAWjuB,KAAhCohB,WACF5pB,EAAUk7D,eACV5pD,EAAQqmB,aAAaY,QAAQ,SAEnC,OAAKyiC,EAIDpxC,EAAmBtkB,IAAAjC,cAAC83D,KAAK94C,OAAAC,OAAA,GAAK4pB,EAAI,CAAEziB,OAAQ,SAAC1M,GAA8B,OAAKzX,IAAAjC,cAAC23D,EAAcj+C,OAE3FzL,EAtBgB,WACxB,IAAM+O,EAAY5hB,YAAU,4BACtB8hB,EAAS,UAAAljB,OAAasb,mBAAmBhd,OAAOC,SAASC,WAM/D,OALA,yCAAkC+Q,MAAK,SAAA4S,GACnC,IAAMC,EAAcD,EAAW,QAC3BC,GAAaA,EAAYC,QAC7B/jB,OAAOC,SAASgmB,KAAI,GAAAvkB,OAAMgjB,EAAYE,MAEnCjb,IAAAjC,cAAA,YAc6B+3D,GAApBp7D,EAAQwB,KAAK,KALlB,QCDA8D,OAAMmpD,MAZO,SAA4B/tC,GAAiD,IAAnCs6C,EAASt6C,EAApBu6C,UAAyB/uB,EAAInoB,KAAArD,EAAA,eAC5EkJ,EAAemiB,IAAMtV,WAAWjuB,KAAhCohB,WAER,OAAKoxC,EAIApxC,GAXL5pB,KAAQwB,KAAK,KACN8D,IAAAjC,cAAA,aAUiBiC,IAAAjC,cAAC83D,KAAK94C,OAAAC,OAAA,GAAK4pB,EAAI,CAAEziB,OAAQ,SAAC1M,GAA8B,OAAKzX,IAAAjC,cAAC23D,EAAcj+C,OAHzF,Q,wCCNTs+C,I,OAAoBn+D,YAAQ,8BAC5Bo+D,GAAWp+D,YAAQ,oBACnBzB,GAAWyB,YAAQ,YACnBq+D,GAAsBr+D,YAAQ,+BAC9Bs+D,GAAet+D,YAAQ,4BAEd,SAASu+D,KASpB,OACIn2D,2BAAA,KACIA,gBAAC6tC,KAAa,CAACC,SAAUooB,KACzBl2D,gBAAA,OAAK0X,UAAU,2BACX1X,gBAAA,OAAK0X,UAAU,uBACX1X,gBAAA,MAAI0X,UAAU,MAAMq+C,IACpB/1D,gBAAC05B,KAAM,CAACpgB,QAdT,WACPjjB,OAAOC,SAASgmB,KAAKrjB,QAAQ,SAAW,EACxC5C,OAAOC,SAASgmB,KAAI,IAAAvkB,OAAO5B,IAE3BE,OAAOC,SAAS8/D,UAUiB32D,KAAMu2D,GAAU7lC,MAAM,UAAUzY,UAAU,8BACnE1X,gBAACm7B,KAAW,CAACte,KAAMo5C,QCavC,IAAMngE,GAAeC,cAGfI,GAAWyB,YAAQ,YACnB+iB,GAAW,IAAI07C,YAAS,CAC1BC,MAAM,EACNC,OAAQzgE,GAAaurB,gBACrBm1C,SAAU1gE,GAAawrB,eAEvBg0C,YAAY,GAADv9D,OAAK1B,OAAOC,SAAS6e,OAAM,KAAApd,OAAI5B,GAAQ,kCAClDsgE,OAAQ,CAAC,SAAU,+BAAgC,oBAAqB,qBA+G7D9B,gBAPS,SAAC75C,GACrB,MAAO,CACHwT,wBAAyBx2B,YAAIgjB,EAAO,wCACpC6T,eAAgB72B,YAAIgjB,EAAO,kCAIpB65C,CAAyB30D,QA5GzB,SAACyX,GAAyB,IAADS,EACFlY,WAAuB,IAAGmY,EAAA7b,KAAA4b,EAAA,GAA1CwxC,GAAFvxC,EAAA,GAAcA,EAAA,IACxBu+C,EAAe12D,eAAkB,SAAC22D,GACpCA,EAAYC,mBAAmB,CAE3BC,IAAK/gE,GAAayrB,gBAEvB,IAAIjJ,EACyEtY,YAAwB,GAAMuY,EAAAjc,KAAAgc,EAAA,GAAvGw+C,EAAgCv+C,EAAA,GAAEw+C,EAAmCx+C,EAAA,GAAAoe,EAC1C32B,YAAwB,GAAM42B,EAAAt6B,KAAAq6B,EAAA,GAAzDqgC,EAASpgC,EAAA,GAAEqgC,EAAYrgC,EAAA,GACxBtS,EAAazJ,aAAY,SAACq8C,GAAkB,OAAKA,EAAGh0D,KAAKohB,cACzDnhB,EAAW0X,aAAY,SAACq8C,GAAkB,OAAKA,EAAGh0D,KAAKC,YACvDsrB,EAAuB5T,aAAY,SAACC,GAAqB,OAAKhjB,YAAIgjB,EAAO,qCAAqC,MACpH9a,aAAgB,WACZ,IAAM4pD,EAAmCvjB,eAAepT,QAAQ,yBACvB,OAArC22B,EACAx4B,IAAW/b,mBAAmB,uBAAuB/N,MAAK,SAAAgN,GACtDo1C,EAAap1C,EAASrW,QAAQ4rD,uBAAyB,IACvDxjB,eAAe7T,QAAQ,wBAAyBle,EAASrW,QAAQ4rD,0BAGrEH,EAAaE,GAAoC,IAE5B,eAAAxuC,EAAAC,KAAAC,KAAAC,MAAG,SAAAC,IAAA,OAAAF,KAAAI,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,EAClBlB,GAASoB,kBAAkB,KAAD,EAChCg7C,GAAoC,GAAM,wBAAAp7C,EAAAY,UAAAf,OAC7C,kBAHwB,OAAAJ,EAAAvW,MAAA,KAAAiE,YAAA,EAIzBquD,KACD,IAEHn3D,aAAgB,WACR82D,KAAsCxyC,GAAeA,GAAcnhB,IACnE8zD,GAAa,KAElB,CAACH,EAAkCxyC,EAAYnhB,IAAW,IAErDmrB,EAA4C7W,EAA5C6W,wBAAyBK,EAAmBlX,EAAnBkX,eAkBjC,OAVA3uB,aAAgB,WACZ,IAAMo3D,EAAW18D,KAAQoe,QAAO,WAN3Bpe,KAAQpE,SAASC,SAASG,SAAS,oBACpCulB,IAAMC,SAAS,CAAEta,MAAO,CAAE+sB,gBAAgB,GAASrhB,KAAM+hB,SAS7D,OAAO,WACH+nC,OAEL,CAAC18D,OAGAsF,gBAACq3D,KAAM,CAAC38D,QAASA,MACbsF,gBAACs3D,KAAQ,CAAC38C,SAAUA,GAAU48C,eAAgBb,GAC1C12D,gBAACw3D,GAAc,MACfx3D,gBAACy3D,GAAiBhgD,GAClBzX,gBAAA,QAAM8uD,KAAK,QACP9uD,gBAACkjB,KAAa,CAACkB,qBAAsBpkB,gBAACm2D,GAAY,OAC9Cn2D,gBAACA,WAAc,CAAC03D,SAAU13D,gBAAC+nC,KAAM,CAACC,UAAU,UACvCgvB,GACGh3D,gBAAC23D,KAAM,KACH33D,gBAAC61D,KAAK,CAAChjC,KAAM,CAAC,IAAK,WAAY,WAAY,oBAAqBm8B,OAAK,EAAC2G,UAAW1O,KACjFjnD,gBAAC61D,KAAK,CAAChjC,KAAK,kCAAkCm8B,OAAK,EAAC2G,UAAWtO,KAC/DrnD,gBAAC61D,KAAK,CAAChjC,KAAK,0BAA0Bm8B,OAAK,EAAC2G,UAAWxO,KACvDnnD,gBAAC61D,KAAK,CAAChjC,KAAK,oBAAoBm8B,OAAK,EAAC2G,UAAWvO,KACjDpnD,gBAAC61D,KAAK,CAAChjC,KAAK,wBAAwBm8B,OAAK,EAAC2G,UAAWrO,KACrDtnD,gBAAC61D,KAAK,CAAChjC,KAAK,+BAA+Bm8B,OAAK,EAAC2G,UAAWpO,KAC5DvnD,gBAAC61D,KAAK,CAAChjC,KAAK,qBAAqBm8B,OAAK,EAAC2G,UAAWnO,KAClDxnD,gBAAC61D,KAAK,CAAChjC,KAAK,qCAAqC8iC,UAAWP,KAC5Dp1D,gBAAC61D,KAAK,CAAChjC,KAAK,yBAAyBm8B,OAAK,EAAC2G,UAAWlO,KACpDh5B,GAAyBzuB,gBAAC61D,KAAK,CAAChjC,KAAK,sBAAsBm8B,OAAK,EAAC2G,UAAWvN,KAC5E35B,GAAyBzuB,gBAAC61D,KAAK,CAAChjC,KAAK,0BAA0Bm8B,OAAK,EAAC2G,UAAWxN,KAClFnoD,gBAAC43D,GAAc,CAAC/kC,KAAK,sBAAsBm8B,OAAK,EAAC2G,UAAWjO,KAC5D1nD,gBAAC63D,GAAe,CAAChlC,KAAK,2BAA2Bm8B,OAAK,EAAC2G,UAAWhO,KAClE3nD,gBAAC61D,KAAK,CAAChjC,KAAK,iCAAiCm8B,OAAK,EAAC2G,UAAW/N,KAC9D5nD,gBAAC83D,KAAQ,CAACC,KAAK,uBAAuBzmB,GAAG,mCACzCtxC,gBAAC61D,KAAK,CAAChjC,KAAK,uBAAuBm8B,OAAK,EAAC2G,UAAW9N,KACpD7nD,gBAAC61D,KAAK,CAAChjC,KAAK,iCAAiCm8B,OAAK,EAAC2G,UAAW7N,KAC9D9nD,gBAAC61D,KAAK,CAAChjC,KAAK,qCAAqCm8B,OAAK,EAAC2G,UAAW5N,MAChEjyD,GAAaisB,uBAAyBuM,IAA4BtuB,gBAAC43D,GAAc,CAAC/kC,KAAK,iCAAiCm8B,OAAK,EAAC2G,UAAW1N,MACzInyD,GAAaisB,uBAAyBuM,IAA4BtuB,gBAAC61D,KAAK,CAAChjC,KAAK,mBAAmBm8B,OAAK,EAAC2G,UAAW3N,MAClHlyD,GAAaisB,uBAAyBuM,IAA4BtuB,gBAAC43D,GAAc,CAAC/kC,KAAK,4BAA4Bm8B,OAAK,EAAC2G,UAAWzN,KA/F3D,KAiG3EloD,gBAAC61D,KAAK,KACF71D,gBAACm2D,GAAY,YAOnCxnC,GAAkB3uB,gBAACg4D,GAAc,Y,UCjJ7C/lB,GAAer6C,YAAQ,wBAEvBw9C,GAAW,CACb6iB,SAAU,MACVC,WAAY,SAGZC,GAAc,GAqBHn4D,eAnBf,SAA8Bob,GAA6E,IAADg9C,EAAAh9C,EAAzE1F,eAAO,IAAA0iD,EAAGnmB,GAAYmmB,EAAAC,EAAAj9C,EAAEib,eAAO,IAAAgiC,EAAG,QAAOA,EAAAngD,EACtClY,YAAwB,GAAMmY,EAAA7b,KAAA4b,EAAA,GAAvD+e,EAAQ9e,EAAA,GAAEmgD,EAAWngD,EAAA,GAEtBogD,EAAa19C,aACf,SAACC,GACG,OAAOhjB,YAAIgjB,EAAO,aAEtB,SAAA0S,GAAM,MAA6B,KAAzBA,EAAOC,iBASrB,OANmB8qC,EAAW9qC,gBAAkB0qC,IAEhCG,GAAY,GAE5BH,GAAcI,EAAW9qC,cAElBwJ,EAAWj3B,gBAACw4D,KAAY,CAAC9iD,QAASA,EAAS0/B,SAAUA,GAAU/e,QAASA,EAASgf,SAAU,kBAAMijB,GAAY,MAAa,Q,mBC5B/HxiE,GAAeC,cAErB,IAAMD,GAAasrB,wBAAyBtrB,GAAairB,mBAAqB,CAC1E,IAAI/c,GAAOlG,SAASC,cAAc,QAClCiG,GAAKuqC,IAAM,aACXvqC,GAAKsJ,KAAO,aACZtJ,GAAKy0D,YAAc,YACnBz0D,GAAK0T,UAAY,yBACjB1T,GAAKsY,KAAO,yBACZxe,SAAS46D,qBAAqB,QAAQ,GAAGC,YAAY30D,KAErDA,GAAOlG,SAASC,cAAc,SACzBuP,KAAO,aACZtJ,GAAKuqC,IAAM,aACXvqC,GAAK0T,UAAY,yBACjB1T,GAAKy0D,YAAc,YACnBz0D,GAAKsY,KAAI,KAAAvkB,OAAQjC,GAAawqB,mBAAkB,iBAChDxiB,SAAS46D,qBAAqB,QAAQ,GAAGC,YAAY30D,IAErD,IAAM40D,GAAU96D,SAASC,cAAc,UACvC66D,GAAQtrD,KAAO,aACfsrD,GAAQlhD,UAAY,yBACpBkhD,GAAQzE,IAAM,uCACdyE,GAAQ9zC,OAAQ,EAChBhnB,SAAS46D,qBAAqB,QAAQ,GAAGC,YAAYC,ICxBzD,IAAM9iE,GAAeC,cAErB,IAAMD,GAAasrB,wBAAyBtrB,GAAairB,mBAAqB,CAC1E,IAAM/c,GAAOlG,SAASC,cAAc,QACpCiG,GAAKuqC,IAAM,eACXvqC,GAAKy0D,YAAc,YACnBz0D,GAAKsY,KAAO,sBACZxe,SAAS46D,qBAAqB,QAAQ,GAAGC,YAAY30D,ICNzD,IAAMlO,GAAeC,cAQN8iE,GAPY,WACvB,IAAMC,EAAU9iE,eACXF,GAAaM,mBAAqB0iE,EAAQ/hE,aAC3CV,OAAOC,SAASgmB,KAAI,GAAAvkB,OAAM1B,OAAOC,SAAS6e,OAAM,KAAApd,OAAI+gE,EAAQ3iE,UAAQ4B,OAAG1B,OAAOC,SAASC,UAAQwB,OAAG1B,OAAOC,SAASsU,U,iRCC1H,IAEImuD,GAFEp2C,GAAU7sB,cAsCVkjE,GAAU,SAAC7pD,GACb,GAAIA,EAAa,CACb,IAAMjM,EAAO,CAETrL,IAAKsX,EAAYooC,cAEjB0hB,QAAS9pD,EAAY4pC,QAErBmgB,OAAQ,CAEJC,aAAchqD,EAAYiqD,aAE1BC,eAAgBlqD,EAAYmqD,kBAE5BC,sBAAuBpqD,EAAYqqD,+BAEnCC,gBAAiBtqD,EAAYuqD,yBAE7BC,gBAAiBxqD,EAAYyqD,yBAE7BC,QAAS1qD,EAAY2qD,QAErBC,eAAgB5qD,EAAY6qD,iBAIpC,OAAI7qD,EAAYiqD,a,oWAEZ75D,CAAA,GAAY2D,EAAK,CAAC3J,MAAO4V,EAAY/L,QAGlCF,EAEX,MAAO,CACHrL,IAAK,IACLoiE,WAAW,IAIJ,GACL,SAACC,EAAsBp8B,EAAcq8B,EAAoBj3D,GAC3D,IAAMtB,EAAyBzI,YAAU,uBACnCihE,EAA6B,CAC/Bt8B,OACAtb,QAAS23C,EACTE,UAAWF,GAEfv4D,EAAM0sB,wBAA0B3L,GAAQZ,sBACxCngB,EAAM2sB,kBAAoB5L,GAAQX,4BAClCpgB,EAAM4sB,mBAAqB7L,GAAQV,4BACnCrgB,EAAM6sB,qBAAuB9L,GAAQR,yBA/E3B,SAACvgB,GACf,IAAM04D,EAA8B,GACpCv9C,OAAO6B,KAAKhd,GAAO7F,SAAQ,SAAAlE,GACvB,IAAM0iE,EAAgBC,KAAU3iE,GAChCyiE,EAAWC,GAAiB34D,EAAM/J,MAEtCokB,IAAMC,SAAS2oC,YAAgBjjD,IA0E3B64D,CAAU74D,IACVm3D,GAAW2B,KAAoBR,EAAclB,GAAQ91D,GAAOk3D,IAEnDO,GAAG,SAAS,WACjB,IAAMC,EAAiB7B,GAAS8B,YAAcj5D,GA3EzC,SAACA,GACd,IAAM04D,EAA8B,CAAEjsC,WAAW,GACjDtR,OAAO6B,KAAKhd,GAAO7F,SAAQ,SAAAlE,GACvB,IAAM0iE,EAAgBC,KAAU3iE,GAChCyiE,EAAWC,GAAiBxB,GAAS+B,UAAUjjE,EAAK+J,EAAM/J,OAE9DokB,IAAMC,SAAS2oC,YAAgByV,IAsEvBS,CAASH,GAnEM,SAACh5D,GACxBmb,OAAO6B,KAAKhd,GAAO7F,SAAQ,SAAAi/D,GACvB,IAAMT,EAAgBC,KAAUQ,GAChCjC,GAAS4B,GAAG,UAAD5iE,OAAWijE,IAAQ,SAAA7P,GAC1B,IAAM8P,EAAgC,GACtCA,EAAaV,GAAiBpP,EAC9BlvC,IAAMC,SAAS2oC,YAAgBoW,UA8D/BC,CAAmBN,OCrGzB9kE,GAAeC,c,cCiCNolE,OAhCR,WACH,IAGMC,EAASt9D,SAASC,cAAc,UACtCq9D,EAAO9tD,KAAO,aACd8tD,EAAO1jD,UAAY,yBACnB,IAAM2jD,EAAY,yLAAAtjE,OANJ,UASqB,gHAAAA,OARnB,UAUqB,iEAAAA,OATtB,UAWqB,sRAOpCqjE,EAAOp9D,UAAYq9D,EACnBv9D,SAAS46D,qBAAqB,QAAQ,GAAGC,YAAYyC,GACjD/kE,OAAOC,SAASq8B,SAASj8B,SAAS,OAClC4kE,UAAOC,WAAW,QAAS,GAAG,GACvBllE,OAAOC,SAASq8B,SAASj8B,SAAS,SACzC4kE,UAAOC,WAAW,QAAS,GAAG,GAE9BD,UAAOC,WAAW,QAAS,GAAG,I,UCDtC,IAAM54C,GAAU7sB,cAEVikB,GAAS1jB,OAETmlE,GAAU19D,SAAS29D,eAAe,QAExC,IAAKD,GACD,MAAM,IAAIlmC,MAAM,kCAEpB,IAAMomC,GAAQC,qBAAWH,IACnBI,GAAQC,sBAAYL,GAASx7D,aACnC+Z,GAAOC,UAAYD,GAAOC,WAAa,GAcvC6+C,KL3CA,WACI,IAAM/iE,GAAasrB,wBAAyBtrB,GAAairB,mBAAqB,CAC1E,IAAM+6C,EAAWh+D,SAASC,cAAc,UACxC+9D,EAASxuD,KAAO,kBAChBwuD,EAAS3H,IAAM,yDACf2H,EAASC,QAAU,QACnBD,EAASh3C,OAAQ,EACjBg3C,EAASrD,YAAc,YACvBqD,EAAStoB,aAAa,qBAAsB19C,GAAayqB,uBACzDu7C,EAAStoB,aAAa,yBAA0B,QAChD11C,SAAS46D,qBAAqB,QAAQ,GAAGC,YAAYmD,GAErD,IAAME,EAAgBl+D,SAASC,cAAc,UAC7Ci+D,EAAc1uD,KAAO,kBACrB0uD,EAAch+D,UAAY,gCAC1BF,SAAS46D,qBAAqB,QAAQ,GAAGC,YAAYqD,IK6B7DC,GACAC,EAAS7lE,OAAOC,SAASC,UjCrDV,WACX,IAAIT,EAAasrB,wBAAyBtrB,EAAairB,mBAAvD,CACA,IAAMq6C,EAASt9D,SAASC,cAAc,UAChCo+D,EAAS,saAAApkE,OAI8CjC,EAAasqB,iBAAgB,6CAE1Fg7C,EAAOp9D,UAAYm+D,EACnBr+D,SAAS46D,qBAAqB,QAAQ,GAAGC,YAAYyC,GAGrD,IAAMgB,EAAWt+D,SAASC,cAAc,YAClCs+D,EAAYv+D,SAASC,cAAc,UACzCs+D,EAAUlI,IAAG,+CAAAp8D,OAAkDjC,EAAasqB,kBAC5Ei8C,EAAU98C,OAAS,IACnB88C,EAAU/8C,MAAQ,IAClB+8C,EAAU7jE,MAAM8jE,WAAa,SAC7BD,EAAU7jE,MAAM05C,QAAU,OAC1BkqB,EAASzD,YAAY0D,GACrBv+D,SAAS46D,qBAAqB,QAAQ,GAAGC,YAAYyD,IiCiCzDG,GAEAh1D,WACK+rB,eACAhsB,MAAK,SAAA0E,GACF,GAAIA,EAAO,CACPiQ,IAAMC,SACF2I,KAAiBuD,OAAO,CACpBmwB,UAAW,SAACr1C,GACRs5D,GAAkB75C,GAAQnB,aAAcmB,GAAQlB,eAAgBkB,GAAQjB,cAAexe,GACvFyH,QAAQmR,IAAI,qBAAsB5Y,EAAKq0C,eACvCx9B,GAAOC,UAAU9d,KAAK,CAClBuf,MAAO,QACPnE,cAAepU,EAAKq0C,oBAMpC,IACM6kB,EAAWt+D,SAASC,cAAc,YAClC0+D,EAAa3+D,SAASC,cAAc,UAC1C0+D,EAAWlxD,GAAK,0CAChBkxD,EAAWtI,IAJgB,kJAK3BsI,EAAWl9C,OAAS,IACpBk9C,EAAWn9C,MAAQ,IACnBm9C,EAAWjkE,MAAM8jE,WAAa,SAC9BG,EAAWjkE,MAAM05C,QAAU,OAC3BkqB,EAASzD,YAAY8D,GACrB3+D,SAAS46D,qBAAqB,QAAQ,GAAGC,YAAYyD,GACrDngD,IAAMC,SAAS+I,KAAoBmD,UACnCnM,IAAMC,SAASskB,oBAEfg8B,GAAkB75C,GAAQnB,aAAcmB,GAAQlB,eAAgBkB,GAAQjB,eACxE3H,GAAOC,UAAU9d,KAAK,CAClBq7C,cA9DM,YA+DNC,kBA/DM,YAgENC,YAhEM,YAiENC,mBAjEM,YAkENC,mBAlEM,iBAqEhB,SACO,YACKh1B,GAAQC,IAAMg5C,GAAQF,IA3D/Bv3C,OACDnkB,gBAACq/B,IAAQ,CAACoH,MAAOxqB,KACbjc,gBAAC08D,IAAa,CAACvsC,MAAOA,KAClBnwB,gBAAC28D,GAAqB,MACtB38D,gBAACkjB,KAAa,CAACQ,UAAQ,GACnB1jB,gBAACq3D,GAAM,UNnBZ,WACX,IAAIvhE,GAAasrB,wBAAyBtrB,GAAairB,mBAAvD,CAEA,IAAMq6C,EAASt9D,SAASC,cAAc,UACtCq9D,EAAO9tD,KAAO,aACd8tD,EAAO1jD,UAAY,yBACnB,IAAMklD,EAAa,gQAAA7kE,OAMsBjC,GAAawqB,mBAAkB,itBAexE86C,EAAOp9D,UAAY4+D,EACnB9+D,SAAS46D,qBAAqB,QAAQ,GAAGC,YAAYyC,IM8CjDyB,MF7EA/mE,GAAasrB,uBAAyBtrB,GAAairB,oBACV,kBAAmBnqB,WAC5DP,OAAOw+B,iBAAiB,QAAQ,YAxBxC,SAAyBioC,GACrBlmE,UAAUmmE,cACLnkC,SAASkkC,GACTx1D,MAAK,SAAA01D,GACFA,EAAaC,cAAgB,WACzB,IAAMC,EAAmBF,EAAaG,WACd,MAApBD,IAGJA,EAAiBE,cAAgB,WACE,cAA3BF,EAAiBpiD,OACjBnQ,QAAQmR,IAAI,6CAI1B,OACK,SAAApU,GACHiD,QAAQjD,MAAM,4CAA6CA,MAS3D21D,CADW,GAAAtlE,OAAMuR,GAAsB,0BE+EnD0P,YAAW,WCzGPskD,KAAWC,KAAK,CACZC,cAAe,uCACfC,YAAa,sCACbC,KAAM,gBACNC,QAAS,yBAETC,IAAKvnE,OAAOC,SAASq8B,SAASj8B,SAAS,SAAW,QAAWL,OAAOC,SAASq8B,SAASj8B,SAAS,OAAS,cAAgB,aAGxHmnE,WAAY,IACZC,iBAAkB,IAClBC,mBAAmB,IAGvBT,KAAWU,gCD2FyB,KAExChlD,YAAW,WAAQmiD,OAAoB,M,wGEtGlCv3C,E,6DAAS,SAATA,KAAS,qCAATA,EAAS,mCAATA,EAAS,8BAATA,MAAS,SAMR9b,EAAY,oBAAAA,IAAAlD,IAAA,KAAAkD,GA2Cb,OA3Ca0b,IAAA1b,EAAA,OAAAjQ,IAAA,cAGdiC,MAAA,SAQ0BmkE,EAAsBhsB,EAAsBisB,GAClE,IAAMx2D,EAAQ,IAAI4tB,MAAM,GAADv9B,OAAIkmE,EAAU18D,WAAU,MAAAxJ,OAAKk6C,IACpDvqC,EAAMsc,MAAQiuB,EACdzzB,KAAK2/C,SAASz2D,KAGlB,CAAA7P,IAAA,WAAAiC,MAAA,SAGuBskE,EAAwBz2D,GAC/B7P,YAAIsmE,EAAY,aAAc,IAA1C,IAUM12D,EAAQ,IAAI4tB,MAAM8oC,EAAW1oD,SACnChO,EAAMsc,MAAQrc,GAAcA,EAAW0B,IAAM1B,EAAW0B,IAAM+0D,EAAW1oD,QACzE8I,KAAK2/C,SAASz2D,EAAOC,KACxB,CAAA9P,IAAA,WAAAiC,MAAA,SAEsBskE,EAAmBz2D,GACtCsU,IAAMC,SAASwR,YAAS0wC,QAM3Bt2D,EA3Ca,I,gCCdlB,+DAASoW,IAAiS,OAApRA,EAAWnB,OAAOC,OAASD,OAAOC,OAAOmB,OAAS,SAAUC,GAAU,IAAK,IAAI9f,EAAI,EAAGA,EAAIwK,UAAUrS,OAAQ6H,IAAK,CAAE,IAAI4M,EAASpC,UAAUxK,GAAI,IAAK,IAAIzG,KAAOqT,EAAc6R,OAAOsB,UAAUC,eAAeC,KAAKrT,EAAQrT,KAAQumB,EAAOvmB,GAAOqT,EAAOrT,IAAY,OAAOumB,IAA2BvZ,MAAM2Z,KAAM1V,WACtU,SAAS2V,EAAyBvT,EAAQwT,GAAY,GAAc,MAAVxT,EAAgB,MAAO,GAAI,IAAkErT,EAAKyG,EAAnE8f,EACzF,SAAuClT,EAAQwT,GAAY,GAAc,MAAVxT,EAAgB,MAAO,GAAI,IAA2DrT,EAAKyG,EAA5D8f,EAAS,GAAQO,EAAa5B,OAAO6B,KAAK1T,GAAqB,IAAK5M,EAAI,EAAGA,EAAIqgB,EAAWloB,OAAQ6H,IAAOzG,EAAM8mB,EAAWrgB,GAAQogB,EAASzlB,QAAQpB,IAAQ,IAAaumB,EAAOvmB,GAAOqT,EAAOrT,IAAQ,OAAOumB,EADxMS,CAA8B3T,EAAQwT,GAAuB,GAAI3B,OAAO+B,sBAAuB,CAAE,IAAIC,EAAmBhC,OAAO+B,sBAAsB5T,GAAS,IAAK5M,EAAI,EAAGA,EAAIygB,EAAiBtoB,OAAQ6H,IAAOzG,EAAMknB,EAAiBzgB,GAAQogB,EAASzlB,QAAQpB,IAAQ,GAAkBklB,OAAOsB,UAAUW,qBAAqBT,KAAKrT,EAAQrT,KAAgBumB,EAAOvmB,GAAOqT,EAAOrT,IAAU,OAAOumB,EAGne,IAAIa,EAAqB,IAAMlhB,cAAc,OAAQ,CACnDy9B,SAAU,UACVC,SAAU,UACVvc,EAAG,ugBACHC,KAAM,iBAEJk/C,EAAY,SAAmBjjD,GACjC,IAAIiE,EAASjE,EAAKiE,OAChB5H,EAAQgH,EAAyBrD,EAAM,CAAC,WAC1C,OAAO,IAAMrd,cAAc,MAAOmgB,EAAS,CACzCoB,MAAO,GACPC,OAAQ,GACRC,QAAS,YACTL,KAAM,OACN9F,IAAKgG,GACJ5H,GAAQwH,IAETQ,EAAa,IAAMC,YAAW,SAAUjI,EAAO4B,GACjD,OAAO,IAAMtb,cAAcsgE,EAAWngD,EAAS,CAC7CmB,OAAQhG,GACP5B,OAEU,M","file":"static/js/main.cc0f23a2.chunk.js","sourcesContent":["/**\r\n *\r\n * Usage\r\n *\r\n * cn('foo', 'bar'); // => 'foo bar'\r\n * cn('foo', { bar: true }); // => 'foo bar'\r\n * cn({ foo: true }, { bar: true }); // => 'foo bar'\r\n * cn({ foo: true, bar: true }); // => 'foo bar'\r\n *\r\n * Dynamic class names\r\n *\r\n * let buttonType = 'primary';\r\n * cn({ [`btn-${buttonType}`]: true });\r\n *\r\n * Conditional class name based on a boolean variable\r\n *\r\n * let addActiveClass = true;\r\n * className={cn('foo', {\r\n * 'foo--active': addActiveClass\r\n * })}\r\n *\r\n */\r\n\r\nimport cn from 'classnames';\r\n\r\nexport default cn;\r\n","/**\r\n *\r\n * Usage\r\n *\r\n * const objects = [{ 'a': 1 }, { 'b': 2 }];\r\n * const deep = clonedeep(objects);\r\n *\r\n */\r\n\r\nimport cloneDeep from 'lodash.clonedeep';\r\n\r\nexport default cloneDeep;\r\n","/**\r\n *\r\n * Usage\r\n *\r\n * _.debounce(func, [wait=0], [options={}])\r\n *\r\n * const debounced = _.debounce(someFunction, 250);\r\n */\r\n\r\nimport debounce from 'lodash.debounce';\r\n\r\nexport default debounce;\r\n","import SPGVariables from '../utilities/spg-variables';\r\n\r\nconst spgVariables = SPGVariables();\r\nconst detectLanguage = () => {\r\n const languages = spgVariables.SUPPORTED_LANGUAGES;\r\n const langCode = spgVariables.IS_SERVER_REQUEST ? 'en' : window.location.pathname.split('/')[1];\r\n if (langCode.length !== 2 || (langCode.length === 2 && !languages.includes(langCode))) {\r\n let browserLangCode = 'en';\r\n if ((typeof window) !== 'undefined') {\r\n browserLangCode = window.navigator.language.substring(0, 2);\r\n }\r\n browserLangCode = browserLangCode && browserLangCode.length === 2 && languages.includes(browserLangCode) ? browserLangCode : 'en';\r\n return { langCode: browserLangCode, doRedirect: true };\r\n }\r\n return { langCode, doRedirect: false };\r\n};\r\n\r\nexport default detectLanguage;\r\n","/**\r\n *\r\n * Usage\r\n *\r\n * getText('hello'); // => 'world'\r\n *\r\n * getText('pages.dataSets.text'); // => 'Datasets'\r\n *\r\n */\r\n\r\nimport deepMerge from 'deepmerge';\r\nimport get from './get';\r\nimport langFileEN from '../languages/en/en-us.json';\r\nimport detectLanguage from './detect-language';\r\n\r\nconst missingValue = 'Missing text: ';\r\nconst result = detectLanguage();\r\n\r\nconst overwriteMerge = (destinationArray: [], sourceArray: []) => sourceArray;\r\n\r\nconst setLangResource = (language?: string) => {\r\n switch (language || result.langCode) {\r\n /* eslint-disable */\r\n case 'ja':\r\n const langFileJA = require('../languages/ja/ja-jp.json');\r\n return deepMerge(langFileEN, langFileJA, { arrayMerge: overwriteMerge });\r\n case 'zh':\r\n const langFileZH = require('../languages/zh/zh-cn.json');\r\n return deepMerge(langFileEN, langFileZH, { arrayMerge: overwriteMerge });\r\n /* eslint-enable */\r\n default:\r\n return langFileEN;\r\n }\r\n};\r\n\r\nlet langFile = setLangResource();\r\n\r\nconst setLanguage = (language: string) => {\r\n langFile = setLangResource(language);\r\n};\r\n\r\nconst getText = (key: string) => {\r\n return get(langFile, key, `${missingValue}${key}`);\r\n};\r\n\r\n\r\nexport { getText as default, setLanguage };\r\n","import throttle from 'lodash.throttle';\r\n\r\nexport default throttle;\r\n","export default (yearsAgo: number) => {\r\n const currentDate = new Date();\r\n currentDate.setFullYear(currentDate.getFullYear() - yearsAgo);\r\n return currentDate.getFullYear();\r\n};\r\n","export default (input: number) => {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n if (!(window as any).Intl) return input;\r\n const numberToDecimal = new Intl.NumberFormat('en-US', {\r\n style: 'decimal'\r\n });\r\n\r\n return numberToDecimal.format(input);\r\n};\r\n","const isInternalUser = (allowedList: string[], userEmail: string) => {\r\n // Hide sensitive solutions for external users\r\n let arr = [];\r\n if (allowedList && allowedList.length > 0 && userEmail) {\r\n arr = allowedList.filter(x => x && userEmail.toLowerCase().indexOf(x.toLowerCase(), userEmail.length - x.length) !== -1);\r\n }\r\n return arr.length > 0;\r\n};\r\n\r\nexport default isInternalUser;\r\n","\r\nimport { isInternalUser, getConfig } from '.';\r\n\r\n\r\nconst authSolList = getConfig('authorizedsolutions');\r\nconst allowedDomains = getConfig('internalMailDomains');\r\n\r\nconst authdata = (list: APISolution[], email: string) => {\r\n\r\n const isValidUser = isInternalUser(allowedDomains, email);\r\n // Hide sensitive solutions for external users\r\n if (list && list.length > 0 && list as APISolution[] && !isValidUser) {\r\n const value = list.filter(x => !authSolList.includes(x.KeyPlatformService));\r\n return value || [];\r\n }\r\n return list;\r\n};\r\n\r\nexport default authdata;\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\n\r\nconst name = 'Toggle Helper';\r\n\r\nconst toggleAll = (items: AnonymousObject, toggleProp: string, value: any) => {\r\n return items.map((a: AnonymousObject) => {\r\n const b = a;\r\n b[toggleProp] = value;\r\n return b;\r\n });\r\n};\r\n\r\nconst toggleAllAria = (items: AnonymousObject, toggleProp1: string, toggleProp2: string, value: any) => {\r\n return items.map((a: AnonymousObject) => {\r\n const b = a;\r\n b[toggleProp1] = value;\r\n b[toggleProp2] = value;\r\n return b;\r\n });\r\n};\r\n\r\nconst togglebByProp = (items: AnonymousObject, toggleProp: string, IdProp: string, value: any) => {\r\n return items.map((b: AnonymousObject) => {\r\n const a = b;\r\n a[toggleProp] = a[IdProp] === value ? !a[toggleProp] : a[toggleProp];\r\n return a;\r\n });\r\n};\r\n\r\nexport { name as default, toggleAll, toggleAllAria, togglebByProp };\r\n","const isNumber = (value: number | null): boolean => typeof value === 'number';\r\n\r\nconst isBoolean = (value: boolean | null): boolean => typeof value === 'boolean';\r\n\r\nexport { isNumber, isBoolean };\r\n","\r\nconst name = 'UnMask Helper';\r\n\r\nfunction GetBase(x: number) {\r\n let n = 0;\r\n let y = 0;\r\n while (x > y) {\r\n y = 2 ** (n + 1);\r\n if (x < y) return n;\r\n n++;\r\n }\r\n return n;\r\n}\r\n\r\nconst unMask = (value: number) => {\r\n const unmask: number[] = [];\r\n let x = value;\r\n let y = 0;\r\n while (x > 0) {\r\n y = GetBase(x);\r\n unmask.push(y);\r\n x -= (2 ** y);\r\n }\r\n return unmask;\r\n};\r\n\r\nexport { name as default, unMask };\r\n","import getConfig from './get-config';\r\n\r\nconst name = 'filter Builder';\r\nconst filterOptions = getConfig('components.filterOptions');\r\nconst keyRegion: string = filterOptions.region.keyColumn;\r\nconst keyPointInTime: string = filterOptions.pointInTime.keyColumn;\r\nconst keyIndustry: string = filterOptions.industry.keyColumn;\r\nconst keyCategory: string = filterOptions.category.keyColumn;\r\nconst keyHistory: string = filterOptions.history.keyColumn;\r\nconst keyDelivery: string = filterOptions.delivery.keyColumn;\r\nconst keyDeliveryPlatform: string = filterOptions.deliveryPlatform.keyColumn;\r\nconst keyVendor: string = filterOptions.vendor.keyColumn;\r\n\r\nconst filterBuilder = (filters: string[]) => {\r\n const pointInTime: string[] = [];\r\n const delivery: string[] = [];\r\n const deliveryPlatform: string[] = [];\r\n const industry: string[] = []; // Include zero for dataset has industry as all\r\n const category: string[] = [];\r\n const region: string[] = [];\r\n const history: string[] = [];\r\n const vendor: string[] = [];\r\n const filter: string[] = [];\r\n filters.forEach((filterData: string) => {\r\n if (filterData.split(':')[0] === keyRegion) {\r\n const keyValue: string[] = filterData.split(':');\r\n const GeographyArray: number[] = keyValue[1].split(',').map(value => parseInt(value, 0));\r\n if (GeographyArray.length === 1) {\r\n region.push(filterData);\r\n } else {\r\n // for Global we need to dataset should has all keys\r\n region.push(`${keyRegion}:(${GeographyArray.join(' AND ')})`);\r\n }\r\n }\r\n if (filterData.split(':')[0] === keyDelivery) delivery.push(filterData);\r\n if (filterData.split(':')[0] === keyPointInTime) pointInTime.push(filterData);\r\n if (filterData.split(':')[0] === keyDeliveryPlatform) deliveryPlatform.push(filterData);\r\n if (filterData.split(':')[0] === keyIndustry) industry.push(filterData);\r\n if (filterData.split(':')[0] === keyCategory) category.push(filterData);\r\n if (filterData.split(':')[0] === keyHistory) history.push(filterData);\r\n if (filterData.split(':')[0] === keyVendor) vendor.push(filterData);\r\n });\r\n if (pointInTime.length > 0) filter.push(pointInTime.join(' OR '));\r\n if (delivery.length > 0) filter.push(delivery.join(' OR '));\r\n if (deliveryPlatform.length > 0) filter.push(deliveryPlatform.join(' OR '));\r\n if (industry.length > 0) filter.push(industry.join(' OR '));\r\n if (category.length > 0) filter.push(category.join(' OR '));\r\n if (history.length > 0) filter.push(history.join(' OR '));\r\n if (region.length > 0) filter.push(region.join(' OR '));\r\n if (vendor.length > 0) filter.push(vendor.join(' OR '));\r\n return filter;\r\n};\r\n\r\nexport { name as default, filterBuilder };\r\n","/* eslint-disable @typescript-eslint/camelcase */\r\nimport getConfig from './get-config';\r\n\r\nconst name = 'search filter Builder';\r\nconst filterOptions = getConfig('components.filterOptions');\r\nconst keyRegion: string = filterOptions.region.keyColumn;\r\nconst keyPointInTime: string = filterOptions.pointInTime.keyColumn;\r\nconst keyIndustry: string = filterOptions.industry.keyColumn;\r\nconst keyCategory: string = filterOptions.category.keyColumn;\r\nconst keyHistory: string = filterOptions.history.keyColumn;\r\nconst keyDelivery: string = filterOptions.delivery.keyColumn;\r\nconst keyActiveFlag: string = filterOptions.activeFlag.keyColumn;\r\nconst keyDeliveryPlatform: string = filterOptions.deliveryPlatform.keyColumn;\r\nconst keyVendor: string = filterOptions.vendor.keyColumn;\r\nconst keyQueryType: string = filterOptions.querytype.keyColumn;\r\nconst keyDataset: string = filterOptions.dataset.keyColumn;\r\n\r\nconst searchFilterBuilder = (filters: string[]) => {\r\n const pointInTime: string[] = [];\r\n const delivery: string[] = [];\r\n const deliveryPlatform: string[] = [];\r\n const industry: string[] = [];\r\n const category: string[] = [];\r\n const region: string[] = [];\r\n const vendor: string[] = [];\r\n const querytype: string[] = [];\r\n const dataset: string[] = [];\r\n let history = '';\r\n const activeFlag: string[] = [];\r\n const filter: Record[] = [];\r\n let geographyQuery = '';\r\n filters.forEach((filterData: string) => {\r\n if (filterData.split(':')[0] === keyRegion) {\r\n const keyValue: string[] = filterData.split(':');\r\n const GeographyArray: number[] = keyValue[1].split(',').map(value => parseInt(value, 0));\r\n if (GeographyArray.length === 1) {\r\n region.push(filterData.split(':')[1]);\r\n } else {\r\n // for Global we need query_string with anding\r\n geographyQuery = `KeyGeographyTree:(${filterData.split(':')[1].replace(/,/g, ' AND ')})`;\r\n }\r\n }\r\n if (filterData.split(':')[0] === keyDelivery) delivery.push(filterData.split(':')[1]);\r\n if (filterData.split(':')[0] === keyPointInTime) pointInTime.push(filterData.split(':')[1]);\r\n if (filterData.split(':')[0] === keyDeliveryPlatform) deliveryPlatform.push(filterData.split(':')[1]);\r\n if (filterData.split(':')[0] === keyIndustry) industry.push(filterData.split(':')[1]);\r\n if (filterData.split(':')[0] === keyCategory) category.push(filterData.split(':')[1]);\r\n if (filterData.split(':')[0] === keyHistory) [, history] = filterData.split(':');\r\n if (filterData.split(':')[0] === keyActiveFlag) activeFlag.push(filterData.split(':')[1]);\r\n if (filterData.split(':')[0] === keyVendor) vendor.push(filterData.split(':')[1]);\r\n if (filterData.split(':')[0] === keyQueryType) querytype.push(filterData.split(':')[1]);\r\n if (filterData.split(':')[0] === keyDataset) dataset.push(filterData.split(':')[1]);\r\n });\r\n\r\n if (pointInTime.length > 0) filter.push({ terms: { PointInTime: pointInTime } });\r\n if (delivery.length > 0) filter.push({ terms: { KeySPGDestinationPlatform: delivery } });\r\n if (deliveryPlatform.length > 0) filter.push({ terms: { KeySPGDeliveryPlatform: deliveryPlatform } });\r\n if (industry.length > 0) filter.push({ terms: { KeyMIIndustryTree: industry } });\r\n if (category.length > 0) filter.push({ terms: { KeyMarketplaceSearchTag: category } });\r\n if (activeFlag.length > 0) filter.push({ terms: { ActiveMPDatasetCoverage: activeFlag } });\r\n if (vendor.length > 0) filter.push({ terms: { MarketPlaceVendor: vendor } });\r\n if (querytype.length > 0) filter.push({ terms: { KeyMarketplaceQueryType: querytype } });\r\n if (dataset.length > 0) filter.push({ terms: { DatasetID: dataset } });\r\n\r\n if (history.length > 0) {\r\n if (history.split(' ')[0] === '[*') {\r\n filter.push({ range: { EarliestRecord: { lte: history.split(' ')[2].replace(']', '') } } });\r\n } else {\r\n filter.push({ range: { EarliestRecord: { gte: history.split(' ')[0].replace('[', '') } } });\r\n }\r\n }\r\n // if geography has global use query_string else terms\r\n if (geographyQuery !== '') {\r\n filter.push({ query_string: { query: region.length > 0 ? `${keyRegion}:(${region.join(' OR ')}) OR ${geographyQuery}` : geographyQuery } });\r\n } else if (region.length > 0) {\r\n filter.push({ terms: { KeyGeographyTree: region } });\r\n }\r\n return filter;\r\n};\r\n\r\nexport { name as default, searchFilterBuilder };\r\n","const name = 'Html to Json Parser';\r\n\r\nconst htmlToJson = (content: string) => {\r\n // create temp data structures\r\n const headerArray: string[][] = [];\r\n const bodyArray: string[][] = [];\r\n // create div in virtual memeroy to render the html\r\n let tempDiv: HTMLElement | null = document.createElement('div');\r\n tempDiv.innerHTML = content;\r\n // query the thead and tbody\r\n const headers = tempDiv.querySelector('thead');\r\n const body = tempDiv.querySelector('tbody');\r\n // loop through to build the data\r\n if (headers !== null && body !== null) {\r\n // loop through the headers\r\n const headerRows = headers.querySelectorAll('tr');\r\n for (let i = 0; i < headerRows.length; i++) {\r\n headerArray[i] = [];\r\n for (let r = 0; r < headerRows[i].cells.length; r++) {\r\n headerArray[i][r] = headerRows[i].cells[r].textContent || ' ';\r\n }\r\n }\r\n // loop through the body\r\n const bodyRows = body.querySelectorAll('tr');\r\n for (let i = 0; i < bodyRows.length; i++) {\r\n bodyArray[i] = [];\r\n for (let r = 0; r < bodyRows[i].cells.length; r++) {\r\n bodyArray[i][r] = bodyRows[i].cells[r].textContent || ' ';\r\n }\r\n }\r\n }\r\n tempDiv.innerHTML = '';\r\n tempDiv = null;\r\n return { headerRows: headerArray, bodyRows: bodyArray };\r\n};\r\n\r\nexport { name as default, htmlToJson };\r\n","import DOMPurify from 'dompurify';\r\n\r\nconst sanitizerOptions = {\r\n ADD_ATTR: ['target'],\r\n ADD_TAGS: ['iframe'],\r\n ALLOW_DATA_ATTR: true,\r\n FORBID_ATTR: ['style'],\r\n FORBID_TAGS: ['style'],\r\n KEEP_CONTENT: true\r\n};\r\n\r\nconst sanitizer = (str: string, options?: {}) => DOMPurify.sanitize(str, { ...sanitizerOptions, ...options });\r\n\r\nexport default sanitizer;\r\n","import * as React from 'react';\r\n\r\nconst superScriptSanitizer = (text: string): JSX.Element => {\r\n const symbols = ['®', '™'];\r\n const index = [...text].findIndex(s => symbols.includes(s));\r\n if (index > -1) {\r\n const symbol = text[index];\r\n return (\r\n <>\r\n {text.substring(0, index)}{symbol}{text.substring(index + 1)}\r\n \r\n );\r\n }\r\n return <>{text};\r\n};\r\n\r\nexport default superScriptSanitizer;\r\n","const removeInvalidCharacters = (value: string) => {\r\n return value.replace(/[<>\\\\/]/g, '');\r\n};\r\n\r\nexport default removeInvalidCharacters;\r\n","const emptySection = {\r\n title: '',\r\n content: '',\r\n linkText: '',\r\n linkUrl: ''\r\n};\r\nexport default (sectionName: string, pageSectionsData: PageSections[]) => {\r\n if (pageSectionsData && pageSectionsData.length < 1) return emptySection;\r\n const dataDrivenTexts = pageSectionsData && pageSectionsData.find(x => x.MarketplacePageSection.MarketplacePageSectionName === sectionName);\r\n let pageSectionData = emptySection;\r\n if (dataDrivenTexts) {\r\n pageSectionData = {\r\n title: dataDrivenTexts.MarketplaceSectionConHeader ? dataDrivenTexts.MarketplaceSectionConHeader : '',\r\n content: dataDrivenTexts.MarketplaceSectionConDesc ? dataDrivenTexts.MarketplaceSectionConDesc : '',\r\n linkText: dataDrivenTexts.MarketplaceSectionConLinkTitle ? dataDrivenTexts.MarketplaceSectionConLinkTitle : '',\r\n linkUrl: dataDrivenTexts.WebSiteURL ? dataDrivenTexts.WebSiteURL : ''\r\n };\r\n }\r\n return pageSectionData;\r\n};\r\n","// Change date format based on localization\r\nimport getText from './get-text';\r\n\r\nconst localeCode = getText('language');\r\nconst option = { month: '2-digit', day: '2-digit', year: 'numeric' };\r\nexport default (date?: Date | string) => {\r\n if (date && new Date(date).toString() !== 'Invalid Date') {\r\n return Intl.DateTimeFormat(localeCode, option).format(new Date(date));\r\n }\r\n return null;\r\n};\r\n","\r\nconst uniqueArray = ((array: AnonymousObject, property: string): AnonymousObject => {\r\n const flags = new Set();\r\n\r\n return array.filter((entry: AnonymousObject) => {\r\n if (flags.has(entry[property])) {\r\n return false;\r\n }\r\n flags.add(entry[property]);\r\n return true;\r\n });\r\n});\r\n\r\nexport default uniqueArray;\r\n","/*\r\n Convert piped string to array\r\n*/\r\n\r\nconst createArrayFromPipedString = (str: string) => {\r\n let cleanString = str;\r\n if (cleanString) {\r\n // remove whitespace\r\n cleanString = cleanString.replace(/\\s/g, '');\r\n\r\n return cleanString.split('|');\r\n }\r\n\r\n return [];\r\n};\r\n\r\nexport default createArrayFromPipedString;\r\n","const name = 'html-entities';\r\n\r\nfunction decode(text: string) {\r\n const textArea = document.createElement('textarea');\r\n textArea.innerHTML = text;\r\n return textArea.value;\r\n}\r\n\r\nfunction encode(text: string) {\r\n const textArea = document.createElement('textarea');\r\n textArea.innerHTML = text;\r\n return textArea.innerHTML;\r\n}\r\n\r\nexport { name as default, encode, decode };\r\n","const random = (n: number) => {\r\n if (n === 0) return 0;\r\n return Math.abs(Math.floor(Math.random() * (n - 1) + 0));\r\n};\r\nexport default random;\r\n","/* eslint-disable max-classes-per-file */\r\nimport getText from './get-text';\r\n\r\nenum SearchType {\r\n openSearch = 'Open Search',\r\n llmSearch = 'LLM Search',\r\n unknownSearch = 'Unknown Search'\r\n}\r\n\r\nconst keywordList = getText('pages.home.genAIKeywords');\r\n\r\nconst getPatternString = () => {\r\n const patternString = keywordList.map(x => '\\\\b'.concat(x).concat('\\\\b'));\r\n const strRegExPattern = patternString.join('|');\r\n return strRegExPattern;\r\n};\r\n\r\nconst isMatchedData = (searchInput: string, valueList: string[]) => {\r\n const matched = valueList.filter(element => element && element.toLowerCase().trim() === searchInput.trim().toLowerCase());\r\n if (matched && matched.length > 0) return true;\r\n return false;\r\n};\r\n\r\ninterface Strategy {\r\n apply: () => string;\r\n}\r\n\r\n\r\nclass OpenSearchStrategy implements Strategy {\r\n public apply = () => {\r\n return SearchType.openSearch;\r\n }\r\n}\r\n\r\nclass LLMSearchStrategy implements Strategy {\r\n public apply = () => {\r\n return SearchType.llmSearch;\r\n }\r\n}\r\n\r\nconst createSearchStrategyFactory = () => {\r\n const conditions: Map = new Map([\r\n ['conditionNotLogin', new OpenSearchStrategy()],\r\n ['conditionMatchWord', new LLMSearchStrategy()],\r\n ['conditionLessThan25', new OpenSearchStrategy()],\r\n ['conditionGreaterThan25Match', new OpenSearchStrategy()],\r\n ['conditionGreaterThan25NotMatch', new LLMSearchStrategy()],\r\n ['conditionElse', new OpenSearchStrategy()]\r\n ]);\r\n\r\n const getSearchStrategy = (searchValue: string, valueList: string[]) => {\r\n const pattern = getPatternString();\r\n const regEx = new RegExp(pattern, 'gi');\r\n if (searchValue.match(regEx)) return conditions.get('conditionMatchWord');\r\n if (searchValue.length <= 25) return conditions.get('conditionLessThan25');\r\n if (searchValue.length > 25 && isMatchedData(searchValue, valueList)) return conditions.get('conditionGreaterThan25Match');\r\n if (searchValue.length > 25 && !isMatchedData(searchValue, valueList)) return conditions.get('conditionGreaterThan25NotMatch');\r\n return conditions.get('conditionElse');\r\n };\r\n\r\n return { getSearchStrategy };\r\n};\r\n\r\nexport { SearchType, createSearchStrategyFactory };\r\n","const fileSize = (size: string) => {\r\n const sizeInFloat = parseFloat(size);\r\n if (Math.floor(sizeInFloat) === 0) {\r\n const sizeInKB = sizeInFloat * 1024;\r\n return `${sizeInKB.toFixed(2)} KB`;\r\n }\r\n return `${sizeInFloat.toFixed(2)} MB`;\r\n};\r\nexport default fileSize;\r\n","import { isInternalUser, getConfig } from '.';\r\n\r\nconst allowedDomains = getConfig('internalMailDomains');\r\n\r\nconst validInternalUser = (user: UserStoreState) => {\r\n const email = (user && user.userInfo && user.userInfo.Email) || '';\r\n return isInternalUser(allowedDomains, email);\r\n};\r\n\r\nexport default validInternalUser;\r\n","import { getConfig } from '.';\r\n\r\nconst flagCutOff = getConfig('components.flagVisibilityCutoffTime');\r\n\r\nconst getFlagType = (addedDate?: string, enhancedDate?: string): string => {\r\n const dateTodayMinus90 = new Date().getTime() - flagCutOff;\r\n const dateToday = new Date().getTime();\r\n\r\n const dateDatasetAdded = addedDate && Date.parse(addedDate);\r\n const dateDatasetEnhanced = enhancedDate && Date.parse(enhancedDate);\r\n\r\n if (dateDatasetAdded && dateDatasetAdded > dateToday) {\r\n return 'coming-soon';\r\n }\r\n if (dateDatasetAdded && dateDatasetAdded > dateTodayMinus90 && dateDatasetAdded <= dateToday) {\r\n return 'recently-added';\r\n }\r\n if (dateDatasetEnhanced && (dateDatasetEnhanced > dateTodayMinus90 && dateDatasetEnhanced < dateToday)) {\r\n return 'recently-enhanced';\r\n }\r\n return 'default';\r\n};\r\nexport default getFlagType;\r\n","\r\nconst getUpdatedLink = (value: string, langCode: string) => {\r\n let link = value;\r\n if (value && langCode) {\r\n const urlArray = value.split('/');\r\n if (urlArray && urlArray.length > 4) {\r\n urlArray[0] = window.location.protocol;\r\n urlArray[2] = window.location.host;\r\n if (!value.includes(`/${langCode}/`)) {\r\n urlArray[3] = langCode;\r\n }\r\n link = urlArray.join('/');\r\n }\r\n }\r\n return link;\r\n};\r\nexport default getUpdatedLink;\r\n","/**\r\n * Utility to generate and return custom headers for the S&P API\r\n *\r\n * @module security/fetch\r\n */\r\n\r\nimport SHA from 'jssha';\r\n\r\n// hash key for generating the headers\r\nconst hashKey = 'PQ/OZW8SZCU/wUwm2u+Os6oyAmiFfif6QGVAhCLUahh36ui7BJfwymytCgULDZ6G111ud6SuySii544A6Uw+Tw==';\r\n\r\n// regex to parse a url, taken from Crockford and modified, see http://www.coderholic.com/javascript-the-good-parts/\r\nconst pathExp = /^https?:(?:\\/{0,3})[0-9.\\-A-Za-z]+(?::\\d+)?(.+)$/i;\r\n\r\n/**\r\n * Generates headers for a given url, see https://docs.google.com/document/d/1YK5Iw465A0UgcuWkwzVFLUronMvCCAGhGUiTV0YmSwU/edit\r\n *\r\n * Returns an object with the following properties:\r\n *\r\n * SNL-Request-Time\r\n * SNL-Request-Client\r\n *\r\n * @method\r\n * @param {string} url The url for which to generate headers, assumed not to be encoded\r\n * @returns {object} An object of the format described above\r\n *\r\n * Note, renamed to g from generateHeaders to avoid having a self-descriptive method name in the minified build. Obscurity!\r\n */\r\n\r\nexport function g(url: string) {\r\n // get the signable content\r\n const exec = pathExp.exec(url);\r\n const content = exec && exec[1];\r\n\r\n // get current time\r\n const time = new Date().getTime();\r\n\r\n // signable message\r\n const signable = `${time}:${content}`;\r\n\r\n // console.log('url', url, 'signable', signable);\r\n\r\n // create the hashing object, use it to create the hash: https://github.com/Caligatio/jsSHA\r\n const sha1 = new SHA('SHA-1', 'TEXT');\r\n sha1.setHMACKey(hashKey, 'B64');\r\n sha1.update(signable);\r\n\r\n const headers = {\r\n 'SNL-Request-Time': time,\r\n 'SNL-Request-Client': `1:${sha1.getHMAC('B64')}`\r\n };\r\n\r\n // console.log('headers', headers);\r\n\r\n return headers;\r\n}\r\n\r\n/**\r\n * Returns the headers for a new fetch request\r\n * @method\r\n * @param {string} url the url to be fetched\r\n */\r\nexport default function generateHeaders(url: string): object {\r\n return g(url);\r\n}\r\n","import axios, { AxiosError, CancelToken, CancelTokenSource } from 'axios';\r\nimport pRetry from 'p-retry';\r\nimport GenerateHeaders from './generate-api-headers';\r\nimport { getText, getConfig, searchFilterBuilder } from '../../helpers';\r\nimport { ErrorManager } from '../error-manager';\r\nimport SPGVariables from '../spg-variables';\r\nimport parseQuery from '../parse-query';\r\n\r\nconst spgVariables = SPGVariables();\r\nconst pRetryOptions = getConfig('utilities.pRetryOptions');\r\nconst urls = getConfig('urls');\r\nconst commonEmailTemplate = getConfig('utilities.commonEmailTemplate');\r\nconst multipartBoundary = 'batch_fc11b0cc-7b4c-49ac-a1bb-ec1fb3368e51r';\r\n\r\nconst ENDPOINT_DATASETS = 'MarketDatasets';\r\nconst ENDPOINT_SOLUTIONS = 'MarketSolutions';\r\nconst ENDPOINT_S3DOCUMENTFILE = 'DocsFileVersions';\r\n\r\nconst solutionInitialProperties = [\r\n 'KeyPlatformService',\r\n 'MktplaceDateAdded',\r\n 'MktplaceSolutionName',\r\n 'MktplaceSolutionDesc',\r\n 'MktplaceSolutionCurrentVerDate',\r\n 'FormOrderHomepageSolution'\r\n];\r\n\r\nconst solutionInitialExpand = [\r\n 'MarketSolutionProvider',\r\n 'PlatformService',\r\n 'MarketSolutionSupportDocs($select=FormOrder;$filter=(FormOrder+eq+1);$expand=MarketPlaceSupportDoc($select=MarketPlaceSupportDocument,WebSiteURL))'\r\n];\r\n\r\nconst solutionAdditionalProperties = [\r\n 'MktplaceSolutionDescLong',\r\n 'Marketplacetrialbuttontitle',\r\n 'MktplaceSolutionInstallReq',\r\n 'MktplaceSolutionSupportEmail',\r\n 'MktplaceSolutionUseCase',\r\n 'MktplaceSolutionUserBenefits',\r\n 'MktplaceSolutionCurrentVerNum',\r\n 'MktplaceSolutionDefaultImage',\r\n 'EstimatedFileSize',\r\n 'MktplaceSolutionReleaseNote',\r\n 'MktplaceSolutionReleaseNoteURL',\r\n 'VidyardVideoID',\r\n 'MktplaceSolutionDocURL',\r\n 'MarketplaceSolutionNoteTitle',\r\n 'MarketplaceSolutionNote',\r\n 'ActiveMarketplaceSolutionNote',\r\n 'MarketplaceSolutionDemoID',\r\n 'MSADataLink',\r\n 'MSADataFilePath'\r\n];\r\n\r\nconst solutionAdditionalExpand = [\r\n 'MarketServiceInputFileTypes($expand=MarketplaceSolutionFileType)',\r\n 'MarketServiceOutFileTypes($expand=MarketplaceSolutionFileType)',\r\n 'MarketSolutionRelLinks',\r\n 'MarketSolutionSupportDocs($select=FormOrder;$expand=MarketPlaceSupportDoc($select=MarketPlaceSupportDocument,WebSiteURL))',\r\n 'PlatformService($select=KeyPlatformService;$expand=MarketSolutionLogos($select=OnlineImageFilePath,FormOrder))',\r\n 'MarketplaceMSATooltip($select=MarketplaceMSATooltipText)'\r\n];\r\n\r\nconst userProfileProperties = [\r\n 'FirstName',\r\n 'LastName',\r\n 'Title',\r\n 'Email',\r\n 'KeyOnlineUser',\r\n 'PrimaryJobFunction',\r\n 'KeyCurrency',\r\n 'Phone',\r\n 'Street',\r\n 'Street2',\r\n 'City',\r\n 'State',\r\n 'PostalCode',\r\n 'Country',\r\n 'ForeignProvince',\r\n 'ForeignZipCode',\r\n 'ForeignPhone',\r\n 'KeyLanguageData',\r\n 'Culture',\r\n 'IndustryNamesForHeader',\r\n 'ContentPreferences',\r\n 'MSTimeZoneID',\r\n 'TimeZoneAbbreviation',\r\n 'UTCOffset',\r\n 'InternetLastLoginDate',\r\n 'InstnName',\r\n 'SiteDepartment',\r\n 'KeySubscriberAccountOverride',\r\n 'SubscriberAccount',\r\n 'CompanyType',\r\n 'UserWebpartProfile',\r\n 'KeyOnlineUserCompanyType',\r\n 'KeyOnlineUserCompanyRole',\r\n 'InternalUser',\r\n 'KeyWebpartProfile',\r\n 'KeyOnlineUserCompanyDepartment',\r\n 'TimeZoneUSName'\r\n];\r\n\r\nconst userProfileV2Properties = [\r\n 'FirstName',\r\n 'LastName',\r\n 'Title',\r\n 'Email',\r\n 'KeyOnlineUser',\r\n 'PrimaryJobFunction',\r\n 'KeyCurrency',\r\n 'Phone',\r\n // 'Street',\r\n 'Street1',\r\n 'Street2',\r\n 'City',\r\n 'State',\r\n 'Zip',\r\n // 'PostalCode',\r\n 'Country',\r\n 'ForeignProvince',\r\n 'ForeignZipCode',\r\n 'ForeignPhone',\r\n 'KeyLanguageData',\r\n 'Culture',\r\n // 'IndustryNamesForHeader',\r\n // 'ContentPreferences',\r\n 'MSTimeZoneID',\r\n 'TimeZoneAbbreviation',\r\n 'UTCOffset',\r\n 'InternetLastLoginDate',\r\n 'InstnName',\r\n 'SiteDepartment',\r\n 'KeySubscriberAccountOverride',\r\n 'SubscriberAccount',\r\n 'CompanyType',\r\n 'UserWebpartProfile',\r\n 'KeyOnlineUserCompanyType',\r\n 'KeyOnlineUserCompanyRole',\r\n 'InternalUser',\r\n 'KeyWebpartProfile',\r\n 'KeyOnlineUserCompanyDepartment',\r\n 'TimeZoneUSName',\r\n 'SubscribedProductsDetails'\r\n];\r\n\r\nconst datasetSolutionFields = [\r\n 'Name',\r\n 'Name_en',\r\n 'Description_en',\r\n 'MarketplaceLongDescription_en',\r\n 'MarketplaceDataProvider_en',\r\n 'MarketplaceDataProviderDesc_en',\r\n 'isType',\r\n 'MarketplaceDatasetAdded',\r\n 'MktPlaceDataSetEnhancementDate',\r\n 'KeyMarketplaceDataset',\r\n 'KeyMarketplaceDatasetBundle',\r\n 'ThumbnailImageFilePath',\r\n 'keyplatformservice'\r\n];\r\n\r\nconst bluePrintFields = [\r\n 'Name',\r\n 'Name_en',\r\n 'Description_en',\r\n 'MarketplaceLongDescription_en',\r\n 'MarketplaceDataProvider_en',\r\n 'MarketplaceDataProviderDesc_en',\r\n 'isType',\r\n 'MarketplaceDatasetAdded',\r\n 'MktPlaceDataSetEnhancementDate',\r\n 'KeyMarketplaceDataset',\r\n 'KeyMarketplaceDatasetBundle',\r\n 'ThumbnailImageFilePath',\r\n 'keyplatformservice',\r\n 'KeyMarketplaceBlueprint'\r\n];\r\n\r\nconst queryLibraryFields = [\r\n 'Name_en',\r\n 'Description_en',\r\n 'MarketplaceDatasetPackage_en',\r\n 'AssociatedDataset_en',\r\n 'AssociatedBundle_en',\r\n 'KeyMarketplaceQuery',\r\n 'MktPlaceDataSetEnhancementDate',\r\n 'WebsiteURL',\r\n 'MarketplaceQueryType',\r\n 'DatasetID',\r\n 'MarketplaceDatasetTable'\r\n];\r\n\r\n// TODO USE THIS AGAIN\r\nconst solutionFullProperties = solutionInitialProperties.concat(solutionAdditionalProperties);\r\nconst solutionFullExpand = solutionInitialExpand.concat(solutionAdditionalExpand);\r\n\r\naxios.defaults.baseURL = spgVariables.APIBASE;\r\naxios.defaults.headers.get['Content-Type'] = 'application/json';\r\naxios.defaults.headers.post['Content-Type'] = `multipart/mixed;boundary=${multipartBoundary}`;\r\naxios.defaults.timeout = getConfig('utilities.requestTimeout');\r\n\r\n// if not running from server\r\nif (!spgVariables.IS_SERVER_REQUEST) {\r\n import('../security').then(security => {\r\n security.default.setOAuthRequestInterceptor(axios);\r\n });\r\n}\r\n\r\nconst fetchingDataError = 'Data Loading Error!';\r\n\r\nfunction handleError(error: AxiosError, parameters?: AnonymousObject, onError?: () => void) {\r\n if (!axios.isCancel(error)) {\r\n ErrorManager.apiError(error, parameters);\r\n }\r\n if (onError) onError();\r\n return Promise.reject(error);\r\n}\r\n\r\nfunction generateOdataClientHeaders(url: string) {\r\n if (url.indexOf('http') > -1) {\r\n return GenerateHeaders(url);\r\n }\r\n return GenerateHeaders(`${spgVariables.APIBASE}/${url}`);\r\n}\r\n\r\nfunction GetAllDataFromUrls(serviceName: string, requestUrls: string[]) {\r\n return pRetry(\r\n () => axios.all(\r\n requestUrls.map(x => axios.request({\r\n url: x,\r\n method: 'GET',\r\n headers: generateOdataClientHeaders(x),\r\n withCredentials: false\r\n }))\r\n ),\r\n pRetryOptions\r\n )\r\n .then(\r\n axios.spread((...responses) => {\r\n let items = [];\r\n items = responses.map(x => {\r\n if (x && x.data && x.data.error) {\r\n return [];\r\n }\r\n return x.data;\r\n });\r\n return items;\r\n })\r\n )\r\n .catch((error: AxiosError) => {\r\n const parameters = {\r\n ServiceName: serviceName,\r\n RequestUri: requestUrls.join(', '),\r\n error,\r\n msg: fetchingDataError\r\n };\r\n return handleError(error, parameters);\r\n });\r\n}\r\n\r\n/* eslint-disable */\r\nif (process.env.REACT_APP_SPOOF_API === 'true') {\r\n import('./spoofed-responses').then(spoofResponses => {\r\n spoofResponses.default(axios, ENDPOINT_DATASETS, ENDPOINT_SOLUTIONS, ENDPOINT_S3DOCUMENTFILE, urls.mi.odata.public);\r\n });\r\n}\r\n/* eslint-enable */\r\n\r\nlet APIToken: CancelTokenSource | null = null;\r\n\r\nconst apis = {\r\n getDataCatalog: () => {\r\n const apiLangcode = getText('apiLangCode');\r\n const isDefaultLanguage = getText('isDefaultLanguage');\r\n const requestUris = [];\r\n let url = `${urls.api.cms.datasetCards}?dataLang=${apiLangcode}`;\r\n requestUris.push(url);\r\n\r\n url = `${urls.api.cms.datasetBundleCards}?dataLang=${apiLangcode}`;\r\n requestUris.push(url);\r\n\r\n if (!isDefaultLanguage) {\r\n url = urls.api.cms.datasetNames;\r\n requestUris.push(url);\r\n\r\n url = urls.api.cms.datasetBundleNames;\r\n requestUris.push(url);\r\n }\r\n\r\n return GetAllDataFromUrls('CMS', requestUris);\r\n },\r\n logUsage: (query: LogPageAccessRequest) => {\r\n return new Promise(resolve => {\r\n return axios\r\n .request({\r\n url: urls.mi.logging.logPageAccess,\r\n method: 'POST',\r\n headers: generateOdataClientHeaders(urls.mi.logging.logPageAccess),\r\n withCredentials: false,\r\n data: query\r\n })\r\n .then(() => resolve(true))\r\n .catch((error: AxiosError) => {\r\n console.error('POST logUsage error');\r\n // const parameters = {\r\n // ServiceName: 'LoggingService',\r\n // RequestUri: urls.mi.logging.logPageAccess,\r\n // error,\r\n // msg: 'Usage logging error'\r\n // };\r\n return resolve(null);\r\n });\r\n });\r\n },\r\n\r\n search: (query: string, filters?: string[], advFilters?: string[], queryFilter?: string) => {\r\n if (APIToken) APIToken.cancel('Search canceled due to new request.');\r\n const localeCode = getText('langCode');\r\n let fieldsToInclude = [];\r\n\r\n APIToken = axios.CancelToken.source();\r\n const filterList = searchFilterBuilder(filters || []);\r\n if (advFilters && advFilters.indexOf('isType:Query') > -1) {\r\n filterList.push({ terms: { isType: ['Query'] } });\r\n fieldsToInclude = queryLibraryFields;\r\n } else if (advFilters && advFilters.indexOf('isType:Dataset OR isType:Bundle') > -1) {\r\n filterList.push({ terms: { isType: ['Dataset', 'Bundle'] } });\r\n filterList.push({ terms: { ActiveMPDatasetCoverage: [1] } });\r\n fieldsToInclude = datasetSolutionFields;\r\n } else if (advFilters && advFilters.indexOf('isType:Solution') > -1) {\r\n filterList.push({ terms: { isType: ['Solution'] } });\r\n fieldsToInclude = datasetSolutionFields;\r\n } else if (advFilters && advFilters.indexOf('isType:Blueprint') > -1) {\r\n filterList.push({ terms: { isType: ['Blueprint'] } });\r\n fieldsToInclude = bluePrintFields;\r\n } else {\r\n // filterList.push({ terms: { isType: ['Dataset', 'Bundle', 'Solution'] } });\r\n filterList.push({ terms: { isType: ['Dataset', 'Bundle', 'Solution', 'Blueprint'] } });\r\n if (queryFilter !== undefined) {\r\n // eslint-disable-next-line @typescript-eslint/camelcase\r\n filterList.push({ query_string: { query: queryFilter } });\r\n } else {\r\n // eslint-disable-next-line @typescript-eslint/camelcase\r\n // filterList.push({ query_string: { query: 'ActiveMPDatasetCoverage: (1) OR isType: (Solution)' } });\r\n // eslint-disable-next-line @typescript-eslint/camelcase\r\n filterList.push({ query_string: { query: 'ActiveMPDatasetCoverage: (1) OR isType: (Solution) OR isType: (Blueprint)' } }); // working\r\n }\r\n // fieldsToInclude = datasetSolutionFields;\r\n fieldsToInclude = bluePrintFields;\r\n }\r\n\r\n const replaceCode = localeCode === 'en' ? '' : `_${localeCode}`;\r\n fieldsToInclude = fieldsToInclude.map(field => {\r\n // replace _en with selected language code\r\n return field.replace('_en', replaceCode);\r\n });\r\n\r\n const data = {\r\n id: 'mp-all-search',\r\n params: {\r\n // eslint-disable-next-line @typescript-eslint/camelcase\r\n search_text: query,\r\n mode: 'and',\r\n limit: 2000,\r\n filters: filterList,\r\n // eslint-disable-next-line @typescript-eslint/camelcase\r\n fields_to_include: fieldsToInclude,\r\n // eslint-disable-next-line @typescript-eslint/camelcase\r\n fields_to_exclude: []\r\n }\r\n };\r\n const headers = generateOdataClientHeaders(urls.api.search);\r\n return (\r\n axios\r\n .request({\r\n url: urls.api.search,\r\n method: 'POST',\r\n headers,\r\n withCredentials: false,\r\n data,\r\n cancelToken: APIToken ? APIToken.token : undefined\r\n })\r\n // .then(response => {\r\n // axios.post(urls.api.search, data, { headers: { 'Content-security-policy': 'default-src \"self\"' } });\r\n // console.log('response', response);\r\n // })\r\n .catch((error: AxiosError) => handleError(error, { msg: 'Searching Error!' }))\r\n );\r\n },\r\n getSolutions: () => {\r\n const apiLangcode = getText('apiLangCode');\r\n const isDefaultLanguage = getText('isDefaultLanguage');\r\n const requestUris = [];\r\n let url = `${urls.api.cms.solutionCatalog}?solutionLang=${apiLangcode}`;\r\n requestUris.push(url);\r\n if (!isDefaultLanguage) {\r\n url = urls.api.cms.solutionNames;\r\n requestUris.push(url);\r\n }\r\n return GetAllDataFromUrls('CMS', requestUris);\r\n },\r\n getSolutionById: (id: string) => {\r\n const apiLangcode = getText('apiLangCode');\r\n const query = `${ENDPOINT_SOLUTIONS}(${id})?$select=${solutionFullProperties.join(',')}&$expand=${solutionFullExpand.join(\r\n ','\r\n )}&clear=${Date.now()}&datasetLang=${apiLangcode}`;\r\n return axios\r\n .get(urls.mi.odata.public + query, { headers: generateOdataClientHeaders(urls.mi.odata.public + query) })\r\n .catch((error: AxiosError) => {\r\n const parameters = {\r\n ServiceName: 'OdataService',\r\n RequestUri: urls.mi.odata.public + query,\r\n error,\r\n msg: 'Error! Can not load solution data'\r\n };\r\n return handleError(error, parameters);\r\n });\r\n },\r\n getSolutionDetailsById: (id: string) => {\r\n const apiLangcode = getText('apiLangCode');\r\n const query = `${urls.api.cms.solutionProfileDetails}?id=${id}&dataLang=${apiLangcode}`;\r\n return axios\r\n .get(query, { headers: generateOdataClientHeaders(query) })\r\n .catch((error: AxiosError) => {\r\n const parameters = {\r\n ServiceName: 'CMS',\r\n RequestUri: query,\r\n error,\r\n msg: 'Error! Can not load solution details.'\r\n };\r\n return handleError(error, parameters);\r\n });\r\n },\r\n getBatchDataSetDetailsById: (id: string) => {\r\n const apiLangcode = getText('apiLangCode');\r\n const requestUris = [\r\n `${urls.api.cms.datasetProfileDetails}?id=${id}&dataLang=${apiLangcode}`,\r\n `${urls.api.cms.datasetProfileIndustry}?id=${id}&dataLang=${apiLangcode}`\r\n ];\r\n return GetAllDataFromUrls('CMS', requestUris);\r\n },\r\n // TODO: unused method?\r\n // getS3DocByKey: (key: string, isSecure?: boolean) => {\r\n // const query = `${ENDPOINT_S3DOCUMENTFILE}(${key})/$value`;\r\n // return pRetry(() => {\r\n // if (isSecure) {\r\n // return axios.get(urls.mi.odata.general + query, { headers: generateOdataClientHeaders(urls.mi.odata.general + query) });\r\n // }\r\n // return axios.get(urls.mi.odata.public + query, { headers: generateOdataClientHeaders(urls.mi.odata.public + query) });\r\n // }, pRetryOptions).catch((error: AxiosError) => {\r\n // const parameters = {\r\n // ServiceName: 'OdataService',\r\n // RequestUri: isSecure ? urls.mi.odata.general + query : urls.mi.odata.public + query,\r\n // error\r\n // };\r\n // return handleError(error, parameters);\r\n // });\r\n // },\r\n getS3HtmlDocByKey: (key: string) => {\r\n const query = `${urls.api.cms.htmlDocs}?id=${key}`;\r\n return pRetry(() => {\r\n return axios.get(query, { headers: generateOdataClientHeaders(query) });\r\n }, pRetryOptions).catch((error: AxiosError) => {\r\n const parameters = {\r\n ServiceName: 'CMS',\r\n RequestUri: query,\r\n error,\r\n msg: fetchingDataError\r\n };\r\n return handleError(error, parameters);\r\n });\r\n },\r\n getDownloadLinkByKey: (id: string, isBundle: boolean) => {\r\n const query = `${\r\n isBundle ? `${urls.api.cms.bundleProfileSampleDataKeys}?id=${id}` : `${urls.api.cms.datasetProfileSampleDataKeys}?id=${id}`\r\n }`;\r\n return axios\r\n .get(query, { headers: generateOdataClientHeaders(query) })\r\n .catch((error: AxiosError) => {\r\n const parameters = {\r\n ServiceName: 'CMS',\r\n RequestUri: query,\r\n error,\r\n msg: 'Download Link loading Error!'\r\n };\r\n return handleError(error, parameters);\r\n });\r\n },\r\n getSolutionsAccessLinksbyKey: (key: string) => {\r\n const query = `${urls.api.cms.solutionAccessLink}?id=${key}`;\r\n return axios\r\n .get(query, { headers: generateOdataClientHeaders(query) })\r\n .catch((error: AxiosError) => handleError(error, { msg: 'Solution Access Links loading Error!' }));\r\n },\r\n getBlueprintAccessLinksbyKey: (key: string) => {\r\n const query = `${urls.api.cms.blueprintAccessLink}?id=${key}`;\r\n return axios\r\n .get(query, { headers: generateOdataClientHeaders(query) })\r\n .catch((error: AxiosError) => handleError(error, { msg: 'Blueprint Access Links loading Error!' }));\r\n },\r\n getDatasetAccessLinksbyKey: (type: string, key: string) => {\r\n const endpoint = type === 'dataset' ? urls.api.cms.datasetProfileAccessDataLinks : urls.api.cms.bundleProfileAccessDataLinks;\r\n const query = `${endpoint}?id=${key}`;\r\n return axios\r\n .get(query, { headers: generateOdataClientHeaders(query) })\r\n .catch((error: AxiosError) => handleError(error, { msg: 'Dataset Access Links loading Error!' }));\r\n },\r\n getBatchFilters: () => {\r\n const apiLangcode = getText('apiLangCode');\r\n const requestUris = [];\r\n let url = `${urls.api.cms.mIIndustryTree}?dataLang=${apiLangcode}`;\r\n requestUris.push(url);\r\n url = `${urls.api.cms.lookupSPGDestPlatforms}?dataLang=${apiLangcode}`;\r\n requestUris.push(url);\r\n url = `${urls.api.cms.marketPlaceSearchTags}?dataLang=${apiLangcode}`;\r\n requestUris.push(url);\r\n url = `${urls.api.cms.geographyTree}?dataLang=${apiLangcode}`;\r\n requestUris.push(url);\r\n url = `${urls.api.cms.countries}`;\r\n requestUris.push(url);\r\n url = `${urls.api.cms.states}`;\r\n requestUris.push(url);\r\n url = `${urls.api.cms.datasetFeatured}`;\r\n requestUris.push(url);\r\n url = `${urls.api.cms.datasetAlternative}`;\r\n requestUris.push(url);\r\n url = `${urls.api.cms.vendors}`;\r\n requestUris.push(url);\r\n url = `${urls.api.cms.datasetExtract}`;\r\n requestUris.push(url);\r\n url = `${urls.api.cms.featuredBlueprints}`;\r\n requestUris.push(url);\r\n url = `${urls.api.cms.marketPlaceQueryTypes}`;\r\n requestUris.push(url);\r\n url = `${urls.api.cms.qlDatasetName}`;\r\n requestUris.push(url);\r\n return GetAllDataFromUrls('CMS', requestUris);\r\n },\r\n getBundleDataById: (id: string) => {\r\n const apiLangcode = getText('apiLangCode');\r\n const requestUris = [\r\n `${urls.api.cms.bundleProfileDetails}?id=${id}&dataLang=${apiLangcode}`,\r\n `${urls.api.cms.bundleProfileIndustry}?id=${id}&dataLang=${apiLangcode}`,\r\n `${urls.api.cms.bundleProfileRelateds}?id=${id}&dataLang=${apiLangcode}`\r\n ];\r\n return GetAllDataFromUrls('CMS', requestUris);\r\n },\r\n getFAQs: () => {\r\n const apiLangcode = getText('apiLangCode');\r\n const query = `${urls.api.cms.faqs}?datasetLang=${apiLangcode}`;\r\n return axios\r\n .get(query, { headers: generateOdataClientHeaders(query) })\r\n .catch((error: AxiosError) => {\r\n const parameters = {\r\n ServiceName: 'CMS',\r\n RequestUri: query,\r\n error,\r\n msg: 'FAQs loading error'\r\n };\r\n return handleError(error, parameters);\r\n });\r\n },\r\n getUserInfo: (version: string) => {\r\n const isV2UserProfileVersion = version === 'v2';\r\n const query = isV2UserProfileVersion ? `?$select=${userProfileV2Properties.join(',')}` : `?$select=${userProfileProperties.join(',')}`;\r\n return pRetry(() => {\r\n if (!isV2UserProfileVersion) { return axios.get(urls.mi.security.userProfile + query); }\r\n return axios.get(urls.mi.security.userProfileV2 + query, { headers: { 'spg-appid': '00000000-0000-0000-0000-000000000001', SNLStack: 'STACK2' } });\r\n }, pRetryOptions).catch((error: AxiosError) => {\r\n const parameters = {\r\n ServiceName: 'SecurityService',\r\n RequestUri: isV2UserProfileVersion ? urls.mi.security.userProfileV2 + query : urls.mi.security.userProfile + query,\r\n error,\r\n msg: 'User Info loading Error! You are logged out because of security reasons.'\r\n };\r\n handleError(error, parameters);\r\n import('../security').then(security => {\r\n security.default.signOut();\r\n });\r\n });\r\n },\r\n invalidateUserInfo: () => {\r\n return axios.get(urls.mi.security.invalidateUserProfile);\r\n },\r\n getAllProfilePageItems: (keyCountry: string, emailDomain: string) => {\r\n const query = `${urls.mi.security.getRegistrationItems}?country=${keyCountry}®isteredLanguage=0&displayLanguage=0&emailDomain=${emailDomain}`;\r\n return axios\r\n .post(\r\n query,\r\n `{\"country\": \"${keyCountry}\",\"registeredLanguage\":0,\"displayLanguage\":0,\"emailDomain\":\"${emailDomain}\",\"SignupToken\":\"\"}`\r\n )\r\n .catch((error: AxiosError) => {\r\n const parameters = {\r\n ServiceName: 'SecurityService',\r\n RequestUri: query,\r\n error\r\n };\r\n return handleError(error, parameters);\r\n });\r\n },\r\n updateProfileInfo: (data: string, onError: () => void) => {\r\n const query = `${urls.mi.security.updateProfileInfo}`;\r\n return axios\r\n .post(query, data, { headers: { 'content-type': 'application/json' } })\r\n .catch((error: AxiosError) => {\r\n const parameters = {\r\n ServiceName: 'SecurityService',\r\n RequestUri: query,\r\n error,\r\n msg: 'Profile updating Error!'\r\n };\r\n return handleError(error, parameters, onError);\r\n });\r\n },\r\n updatePassword: (currentPassword: string, newPassword: string) => {\r\n const data = {\r\n userName: '',\r\n currentPassword,\r\n newPassword,\r\n appCode: getConfig('utilities.appCode')\r\n };\r\n return axios\r\n .request({\r\n url: urls.mi.security.updateIDMPassword,\r\n method: 'POST',\r\n headers: { 'content-type': 'application/json' },\r\n data\r\n })\r\n .catch((error: AxiosError) => {\r\n const parameters = {\r\n ServiceName: 'SecurityService',\r\n RequestUri: urls.mi.security.updateIDMPassword,\r\n error,\r\n msg: 'Request error! Password is not updated'\r\n };\r\n return handleError(error, parameters);\r\n });\r\n },\r\n sendEmail: (body: string, subject: string, emailTo: string, requestStatus: (status: boolean) => void) => {\r\n const url = urls.mi.messaging;\r\n const data = {\r\n To: emailTo,\r\n Template: commonEmailTemplate,\r\n Subject: subject,\r\n UserComment: body\r\n };\r\n return axios\r\n .request({\r\n url,\r\n method: 'POST',\r\n headers: { ...generateOdataClientHeaders(url), 'content-type': 'application/json' },\r\n data\r\n })\r\n .then(() => requestStatus(true))\r\n .catch((error: AxiosError) => {\r\n const parameters = {\r\n ServiceName: 'MessageService',\r\n RequestUri: url,\r\n error,\r\n msg: 'Email is not sent due to an error'\r\n };\r\n handleError(error, parameters);\r\n requestStatus(false);\r\n });\r\n },\r\n getResearchLinks: () => {\r\n return axios.get(urls.api.crownpeak.researchLinks).catch((error: AxiosError) => {\r\n console.error('Research links loading error');\r\n // return handleError(error);\r\n return Promise.reject(error);\r\n });\r\n },\r\n getIdVariants: () => {\r\n return axios.get(urls.api.config.variants, {\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n }).catch((error: AxiosError) => {\r\n console.error('IdVariants loading error');\r\n // return handleError(error);\r\n return Promise.reject(error);\r\n });\r\n },\r\n getTableauSessionTicket: () => {\r\n // added random number as IE cache the token due to some reason;\r\n const url = `${urls.api.tableau.token}?clear=${Date.now()}`;\r\n return axios.get(url).catch((error: AxiosError) => {\r\n console.error('getTableauSessionTicket error');\r\n // return handleError(error);\r\n return Promise.reject(error);\r\n });\r\n },\r\n getPowerBIEmbedInfo: (reportid: string) => {\r\n const url = `${urls.api.powerbi.token}?reportid=${reportid}`;\r\n return axios.get(url).catch((error: AxiosError) => {\r\n console.error('getPowerBIEmbedInfo error');\r\n return Promise.reject(error);\r\n });\r\n },\r\n getHomepageCompanyTypes: (id: number) => {\r\n const query = `${urls.api.cms.homepageCompanyType}/?keyOnlineUserCompanyType=${id}`;\r\n return axios\r\n .get(query, { headers: generateOdataClientHeaders(query) })\r\n .catch((error: AxiosError) => {\r\n const parameters = {\r\n ServiceName: 'CMS',\r\n RequestUri: query,\r\n error,\r\n msg: 'Company types loading error'\r\n };\r\n return handleError(error, parameters);\r\n });\r\n },\r\n getBookMarkUserPreference(key: string) {\r\n const url = `${urls.mi.storage.storedObjects}('${key}')?clear=${Date.now()}`;\r\n return axios.get(url).catch((error: AxiosError) => {\r\n const parameters = {\r\n ServiceName: 'StorageService',\r\n RequestUri: url,\r\n error,\r\n msg: 'Bookmarks data loading error'\r\n };\r\n return handleError(error, parameters);\r\n });\r\n },\r\n updateUserPreferance(kou: string, requestJson: Bookmarks) {\r\n const bookmarkName = getConfig('common.keyBookmark');\r\n const url = urls.api.cms.saveBookmark;\r\n const headers = generateOdataClientHeaders(urls.api.cms.saveBookmark);\r\n const data = {\r\n Kou: kou,\r\n BookmarkName: bookmarkName,\r\n RequestJson: JSON.stringify(requestJson)\r\n };\r\n return axios\r\n .request({\r\n headers,\r\n withCredentials: false,\r\n url,\r\n method: 'POST',\r\n data\r\n })\r\n .catch((error: AxiosError) => {\r\n const parameters = {\r\n RequestUri: url,\r\n error,\r\n msg: 'Bookmark prferences are not updated due to an Error!'\r\n };\r\n return handleError(error, parameters);\r\n });\r\n },\r\n\r\n getUserPreferences() {\r\n const url = `${urls.mi.storage.storedObjects}?$filter=(StoredObjectType+eq+StorageService.StoredObjectType'7')`;\r\n return axios.get(url).catch((error: AxiosError) => {\r\n const parameters = {\r\n ServiceName: 'StorageService',\r\n RequestUri: url,\r\n error,\r\n msg: 'User Preferences data loading Error!'\r\n };\r\n return handleError(error, parameters);\r\n });\r\n },\r\n\r\n getBookMarkPreferencesCMS: (kou: string) => {\r\n const bookmarkName = getConfig('common.keyBookmark');\r\n const query = `${urls.api.cms.storedObjects}?kou=${kou}&bookmarkName=${bookmarkName}`;\r\n return axios.get(query, {\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n }).catch((error: AxiosError) => {\r\n console.error('User Preferences data loading Error!');\r\n return Promise.reject(error);\r\n });\r\n },\r\n\r\n getDownloads() {\r\n const url = `${urls.api.selfService.querydownload}`;\r\n return axios\r\n .get(url, { headers: generateOdataClientHeaders(url) })\r\n .catch((error: AxiosError) => {\r\n console.error('getDownloads error');\r\n // return handleError(error);\r\n return Promise.reject(error);\r\n });\r\n },\r\n\r\n getQueryBuilderSteps() {\r\n const url = `${urls.api.selfService.queryBuilderSteps}`;\r\n return axios\r\n .get(url, { headers: generateOdataClientHeaders(url) })\r\n .catch((error: AxiosError) => {\r\n return handleError(error, { msg: 'Query builder steps loading Error!' });\r\n });\r\n },\r\n\r\n getAwsDownloadUrl(id: string, docType = '', selectedCompanyIdLookup = '') {\r\n let url = `${urls.api.selfService.awsDownloadUrl}/${id}`;\r\n if (docType) {\r\n url = `${urls.api.selfService.awsDownloadUrl}/codes/${id}/${docType}/${selectedCompanyIdLookup}`;\r\n }\r\n return axios\r\n .get(url, { headers: generateOdataClientHeaders(url) })\r\n .catch((error: AxiosError) => handleError(error, { msg: 'Can not get AWS download url' }));\r\n },\r\n\r\n getPageTexts: () => {\r\n const apiLangcode = getText('apiLangCode');\r\n const query = `${urls.api.cms.pageText}?dataLang=${apiLangcode}`;\r\n return axios\r\n .get(query, { headers: generateOdataClientHeaders(query) })\r\n .catch((error: AxiosError) => {\r\n const parameters = {\r\n ServiceName: 'CMS',\r\n RequestUri: query,\r\n error,\r\n msg: 'Error! Can not get page texts'\r\n };\r\n return handleError(error, parameters);\r\n });\r\n },\r\n\r\n getGitData: (contentUrl: string) => {\r\n const url = `${urls.api.gitContent}?contentUrl=${encodeURIComponent(contentUrl)}`;\r\n return axios\r\n .get(url, { headers: generateOdataClientHeaders(url) })\r\n .then(res => {\r\n return parseQuery(res.data);\r\n })\r\n .catch((error: AxiosError) => handleError(error, { msg: 'Error! Can not get query data.' }));\r\n },\r\n\r\n submitLeadToMarketo(data: NotifyMeRequest | RATRequest | RATPlattsRequest | RATCommuniqueBaseRequest | RATVisualizationRequest) {\r\n const url = urls.api.createLead.marketo;\r\n return axios\r\n .request({\r\n url,\r\n method: 'POST',\r\n headers: generateOdataClientHeaders(urls.api.createLead.marketo),\r\n withCredentials: false,\r\n data\r\n })\r\n .catch((error: AxiosError) => handleError(error, { msg: 'Error! Can not lead to Marketo' }));\r\n },\r\n\r\n submitLeadToCrisil(data: RATCrisilRequest) {\r\n const url = urls.api.createLead.crisil;\r\n return axios\r\n .request({\r\n url,\r\n method: 'POST',\r\n headers: generateOdataClientHeaders(urls.api.createLead.crisil),\r\n withCredentials: false,\r\n data\r\n })\r\n .catch((error: AxiosError) => handleError(error, { msg: 'Error! Can not lead to Crisil' }));\r\n },\r\n\r\n submitLeadToEloqua(data: RATIHSMarkitRequest) {\r\n const url = urls.api.createLead.eloqua;\r\n return axios\r\n .request({\r\n url,\r\n method: 'POST',\r\n headers: generateOdataClientHeaders(urls.api.createLead.eloqua),\r\n withCredentials: false,\r\n data\r\n })\r\n .catch((error: AxiosError) => handleError(error, { msg: 'Error! Can not lead to Eloqua' }));\r\n },\r\n\r\n submitQueryExecute(data: BuildQueryRequest) {\r\n const url = urls.api.selfService.saveExecute;\r\n // Field will be hard coded for time being except filters\r\n return axios.request({\r\n url,\r\n method: 'POST',\r\n headers: generateOdataClientHeaders(url),\r\n withCredentials: false,\r\n data\r\n });\r\n },\r\n\r\n submitSubQueryExecute(data: BuildSubQueryRequest) {\r\n const url = urls.api.selfService.saveExecuteSubQuery;\r\n // Field will be hard coded for time being except filters\r\n return axios.request({\r\n url,\r\n method: 'POST',\r\n headers: generateOdataClientHeaders(url),\r\n withCredentials: false,\r\n data\r\n });\r\n },\r\n\r\n cancelQuery(requestId: string, callbackCancelReqError: (reqId: string) => void) {\r\n const url = `${urls.api.selfService.cancelRequest}/${requestId}`;\r\n return axios.get(url, { headers: generateOdataClientHeaders(url) }).catch((error: AxiosError) => {\r\n if (error && error.response && error.response.status === 404) {\r\n callbackCancelReqError(requestId);\r\n } else {\r\n handleError(error, { msg: 'Error! Can not cancel the query.' });\r\n }\r\n });\r\n },\r\n\r\n rerunQuery(requestId: string) {\r\n const url = `${urls.api.selfService.rerunRequest}/${requestId}`;\r\n return axios.get(url, { headers: generateOdataClientHeaders(url) });\r\n },\r\n\r\n findKenshoLinkMatch(payload: AnonymousObject, accessToken: string, errorCallBack: (reqError: AxiosError) => void) {\r\n return axios\r\n .post(urls.mi.kensho.link, JSON.stringify(payload), {\r\n headers: { 'Content-Type': 'application/json', Authorization: `Bearer ${accessToken}` }\r\n })\r\n .catch(reqError => {\r\n const parameters = {\r\n ServiceName: 'KenshoService',\r\n RequestUri: urls.mi.kensho.link,\r\n error: reqError\r\n };\r\n handleError(reqError, parameters);\r\n\r\n errorCallBack(reqError);\r\n });\r\n },\r\n\r\n getAudioFile(fileName: string) {\r\n return axios.get(`${window.location.origin}${fileName}`, { responseType: 'blob' });\r\n },\r\n\r\n getReqHeaderByName(headerName: string) {\r\n const url = `${urls.api.reqHeader}?headerName=${headerName}`;\r\n return axios.get(url).catch((error: AxiosError) => Promise.reject(error));\r\n },\r\n\r\n getProductFinderData(langCode: string) {\r\n const data = {\r\n id: 'product-finder-mapping',\r\n params: {\r\n // eslint-disable-next-line\r\n fields_to_include: [\r\n 'isSection',\r\n 'KeyMarketplaceDataset',\r\n 'KeyMarketplaceDatasetBundle',\r\n 'KeyMarketplaceRole',\r\n 'KeyMarketplaceWorkflow',\r\n 'KeyPlatformService',\r\n 'KeyUseCaseCompanyType',\r\n `MarketplaceRoleName${langCode}`,\r\n `MarketplaceWorkflowName${langCode}`,\r\n `UseCaseCompanyTypeName${langCode}`\r\n ],\r\n limit: 2000\r\n }\r\n };\r\n\r\n const headers = generateOdataClientHeaders(urls.api.search);\r\n return axios\r\n .request({\r\n url: urls.api.search,\r\n method: 'POST',\r\n headers,\r\n withCredentials: false,\r\n data,\r\n cancelToken: APIToken ? APIToken.token : undefined\r\n })\r\n .catch((error: AxiosError) => handleError(error, { msg: 'Error! Can not get product finder data' }));\r\n },\r\n\r\n getLLMAccessToken: () => {\r\n const url = `${urls.api.cms.accessToken}`;\r\n APIToken = axios.CancelToken.source();\r\n return axios.get(url, { cancelToken: APIToken ? APIToken.token : undefined }).catch((error: AxiosError) => {\r\n // this request should not show red toast in case of error\r\n console.error(error.message);\r\n return Promise.reject(error);\r\n });\r\n },\r\n\r\n getChatiqSearchById: (data: ChatiqSearchRequest, accessToken: string) => {\r\n const url = urls.api.llm.search;\r\n APIToken = axios.CancelToken.source();\r\n return axios\r\n .request({\r\n url,\r\n method: 'POST',\r\n headers: { 'Content-Type': 'application/json', 'Llm-Authorization': `${accessToken}` },\r\n withCredentials: false,\r\n data,\r\n cancelToken: APIToken ? APIToken.token : undefined\r\n })\r\n .catch((error: AxiosError) => {\r\n // this request should not show red toast in case of error\r\n console.error(error.message);\r\n return Promise.reject(error);\r\n });\r\n },\r\n\r\n sendChatiqSearchFeedbackById: (data: ChatiqSearchFeedback, accessToken: string) => {\r\n const url = urls.api.llm.feedback;\r\n return axios\r\n .request({\r\n url,\r\n method: 'POST',\r\n headers: { 'Content-Type': 'application/json', 'Llm-Authorization': `${accessToken}` },\r\n withCredentials: false,\r\n data\r\n })\r\n .catch((error: AxiosError) => {\r\n // this request should not show red toast in case of error\r\n console.error(error.message);\r\n return Promise.reject(error);\r\n });\r\n },\r\n\r\n getBlueprints: () => {\r\n const apiLangcode = getText('apiLangCode');\r\n const isDefaultLanguage = getText('isDefaultLanguage');\r\n const requestUris = [];\r\n let url = `${urls.api.cms.blueprintCatalog}?dataLang=${apiLangcode}`;\r\n requestUris.push(url);\r\n if (!isDefaultLanguage) {\r\n url = urls.api.cms.blueprintNames;\r\n requestUris.push(url);\r\n }\r\n return GetAllDataFromUrls('CMS', requestUris);\r\n },\r\n\r\n getBlueprintDetailsById: (id: string) => {\r\n const apiLangcode = getText('apiLangCode');\r\n const query = `${urls.api.cms.blueprintProfileDetails}?id=${id}&dataLang=${apiLangcode}`;\r\n return axios\r\n .get(query, { headers: generateOdataClientHeaders(query) })\r\n .catch((error: AxiosError) => {\r\n const parameters = {\r\n ServiceName: 'CMS',\r\n RequestUri: query,\r\n error,\r\n msg: 'Error! Can not get the blueprint data.'\r\n };\r\n return handleError(error, parameters);\r\n });\r\n },\r\n\r\n getTileNamesGt25Chars: () => {\r\n const url = `${urls.api.cms.tileNamesGt25Chars}`;\r\n return axios.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n }).catch((error: AxiosError) => {\r\n return handleError(error);\r\n });\r\n },\r\n\r\n cancelApiRequest: () => {\r\n if (APIToken) APIToken.cancel('Search canceled.');\r\n APIToken = null;\r\n },\r\n\r\n getQueryLibraryProfileById: (id: string) => {\r\n const apiLangcode = getText('apiLangCode');\r\n const numberId = Number(id);\r\n const query = `${urls.api.cms.qlProfile}?keyMarketplaceQuery=${numberId}&lang=${apiLangcode}`;\r\n return axios\r\n .get(query, { headers: generateOdataClientHeaders(query) })\r\n .catch((error: AxiosError) => {\r\n const parameters = {\r\n ServiceName: 'CMS',\r\n RequestUri: query,\r\n error,\r\n msg: 'Error! Can not get the query library profile data.'\r\n };\r\n return handleError(error, parameters);\r\n });\r\n },\r\n\r\n getQueryLibraryProfileSqlsById: (id: string) => {\r\n const numberId = Number(id);\r\n const query = `${urls.api.cms.qlProfileSqlDetails}?keyMarketplaceQuery=${numberId}`;\r\n return axios\r\n .get(query, { headers: generateOdataClientHeaders(query) })\r\n .catch((error: AxiosError) => {\r\n const parameters = {\r\n ServiceName: 'CMS',\r\n RequestUri: query,\r\n error,\r\n msg: 'Error! Can not get the query library profile SQL data.'\r\n };\r\n return handleError(error, parameters);\r\n });\r\n },\r\n\r\n getQueryLibraryRelatedQueriesById: (id: string) => {\r\n const apiLangcode = getText('apiLangCode');\r\n const numberId = Number(id);\r\n const query = `${urls.api.cms.qlProfileRelatedQueries}?keyMarketplaceQuery=${numberId}&lang=${apiLangcode}`;\r\n return axios\r\n .get(query, { headers: generateOdataClientHeaders(query) })\r\n .catch((error: AxiosError) => {\r\n const parameters = {\r\n ServiceName: 'CMS',\r\n RequestUri: query,\r\n error,\r\n msg: 'Error! Can not get the query library related queries data.'\r\n };\r\n return handleError(error, parameters);\r\n });\r\n },\r\n getTrendingQueries: () => {\r\n const apiLangcode = getText('apiLangCode');\r\n const topQueries = `${urls.api.mad.topQueries}`;\r\n return axios\r\n .get(topQueries, { headers: generateOdataClientHeaders(topQueries) })\r\n .catch((error: AxiosError) => {\r\n const parameters = {\r\n ServiceName: 'MAD',\r\n RequestUri: topQueries,\r\n error,\r\n msg: 'Error! Can not get the trending queries data.'\r\n };\r\n return handleError(error, parameters);\r\n });\r\n },\r\n getQueryLibraryTrendingQueriesById: (id: string) => {\r\n const apiLangcode = getText('apiLangCode');\r\n const query = `${urls.api.cms.qlCatalogTrendingQueries}?lang=${apiLangcode}&keyMarketplaceQueries=${id}`;\r\n return axios\r\n .get(query, { headers: generateOdataClientHeaders(query) })\r\n .catch((error: AxiosError) => {\r\n const parameters = {\r\n ServiceName: 'CMS',\r\n RequestUri: query,\r\n error,\r\n msg: 'Error! Can not get the query library trending queries data.'\r\n };\r\n return handleError(error, parameters);\r\n });\r\n },\r\n\r\n getSubscribedDatasets: (kou: string, userCountry: string, requestJson: string) => {\r\n const url = `${urls.api.cms.getSubscribedDatasets}`;\r\n const headers = generateOdataClientHeaders(urls.api.cms.getSubscribedDatasets);\r\n const data = {\r\n keyOnlineUser: kou,\r\n userLocation: userCountry,\r\n keySubscriberAccounts: JSON.parse(requestJson)\r\n };\r\n return axios\r\n .request({\r\n headers,\r\n withCredentials: false,\r\n url,\r\n method: 'POST',\r\n data\r\n })\r\n .catch((error: AxiosError) => {\r\n const parameters = {\r\n RequestUri: url,\r\n error,\r\n msg: 'client subscriptions prferences are not loaded due to an Error!'\r\n };\r\n return handleError(error, parameters);\r\n });\r\n },\r\n\r\n};\r\n\r\nexport default apis;\r\n","export default function parseQuery(query: string) {\r\n return query.replace(/\\/\\*[^]*?\\*\\//g, (str: string) => {\r\n return str.includes('/*****') && str.includes('*****/') ? '' : str;\r\n }).trim();\r\n}\r\n","import * as React from 'react';\r\nimport { useClickAway } from 'react-use';\r\nimport { cn } from '../../../helpers';\r\nimport { ReactComponent as CaretDownIcon } from '../../../assets/svg/icons/caret-down.svg';\r\nimport { ReactComponent as CaretUpIcon } from '../../../assets/svg/icons/caret-up.svg';\r\n\r\nimport './dropdown-button.style.scss';\r\nimport HistoryInstance from '../../../utilities/history';\r\n\r\nfunction Dropdownbutton(props: DropdownButtonProps) {\r\n const { className, listContent, buttonContent, buttonClass, openDropDownOnHover, isMobile, menuGrp, showDropDownIcon } = props;\r\n const [menuOpen, setMenuOpen] = React.useState(false);\r\n const [contextMenuOpened, setContextMenuOpened] = React.useState(false);\r\n const parentNode: React.RefObject = React.useRef(null);\r\n useClickAway(parentNode, () => setMenuOpen(false));\r\n\r\n React.useEffect(() => {\r\n const historyListener = HistoryInstance.listen(() => {\r\n setMenuOpen(false);\r\n });\r\n return () => {\r\n historyListener();\r\n };\r\n }, []);\r\n\r\n const backicon = '<';\r\n\r\n const showBorderBottomUnderItemOnMobile = (i: any) => {\r\n return i && i.props.children && i.props.children[0] && i.props.children[0].props && !i.props.children[0].props.isDisabled;\r\n };\r\n\r\n const onMouseLeaveHandler = () => {\r\n if (contextMenuOpened) {\r\n setTimeout(() => setContextMenuOpened(false), 100);\r\n return;\r\n }\r\n if (!isMobile && openDropDownOnHover) {\r\n setMenuOpen(false);\r\n }\r\n };\r\n\r\n const onContextMenuHandler = () => {\r\n const isFirefox = typeof navigator !== 'undefined' && /Firefox/i.test(navigator.userAgent);\r\n if (isFirefox) setContextMenuOpened(true);\r\n };\r\n\r\n return (\r\n !isMobile && openDropDownOnHover && setMenuOpen(true)}\r\n ref={parentNode}\r\n className={cn('dropdown-button', className)}\r\n >\r\n \r\n { isMobile ? (\r\n
    \r\n
  • \r\n \r\n
  • \r\n {React.Children.map(listContent, (child: React.ReactElement, index: number) => (\r\n
  • {child}
  • \r\n ))}\r\n
\r\n ) : (\r\n
    \r\n {React.Children.map(listContent, (child: React.ReactElement, index: number) => (\r\n
  • {child}
  • \r\n ))}\r\n
\r\n )}\r\n\r\n \r\n );\r\n}\r\n\r\nexport default React.memo(Dropdownbutton);\r\n","import * as React from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { useOktaAuth } from '@okta/okta-react';\r\n\r\nimport Store from '../../../redux/store';\r\nimport { CLEAR_STORE } from '../../../redux/actionTypes';\r\nimport CustomLink from '../custom-link';\r\nimport { get, getText, getConfig } from '../../../helpers';\r\nimport security from '../../../utilities/security';\r\n\r\nconst signInText = getText('generic.signIn');\r\nconst signOutText = getText('generic.logOut');\r\nconst Window = window as AnonymousObject;\r\nWindow.dataLayer = Window.dataLayer || [];\r\n\r\n\r\nconst langCode = getText('langCode');\r\n\r\nconst flushAppInsights = () => {\r\n import('../../../utilities/application-insights').then(AppInsights => {\r\n const appInsights = AppInsights.default;\r\n if (appInsights) {\r\n appInsights.flush();\r\n }\r\n });\r\n};\r\n\r\nfunction SignInButton(props: SignInButtonProps) {\r\n const { buttonTheme, className, isButton, isFullWidth } = props;\r\n const { authState, oktaAuth } = useOktaAuth();\r\n const isUserLoggedIn = useSelector((state: RootStoreState) => get(state, 'user.isLoggedIn', false));\r\n const signInUrl = getConfig('urls.mi.ssacs.oktaSignIn');\r\n const logOut = getConfig('urls.mi.ssacs.oktaLogOut');\r\n let returnUrl = '';\r\n const gaLabel = isUserLoggedIn ? '' : 'Sign In';\r\n\r\n const handleClick = async (event: React.SyntheticEvent) => {\r\n /* istanbul ignore next */\r\n if (isUserLoggedIn) {\r\n console.log('isUserLoggedIn');\r\n if (process.env.NODE_ENV === 'development' || process.env.NODE_ENV === 'test') {\r\n await security.signOut();\r\n if (authState.isAuthenticated) await oktaAuth.signOut();\r\n } else {\r\n event.preventDefault();\r\n Store.dispatch({ type: CLEAR_STORE });\r\n await security.signOut().then(() => {\r\n flushAppInsights();\r\n const websiteUrl = `${window.location.origin}/${langCode}`;\r\n if (authState.isAuthenticated) {\r\n oktaAuth.signOut({ postLogoutRedirectUri: `${websiteUrl}/logout` });\r\n } else {\r\n window.location.href = `${window.location.origin}/${logOut}&end_url=${encodeURIComponent(`${websiteUrl}`)}`;\r\n }\r\n });\r\n }\r\n } else if (process.env.NODE_ENV === 'production') {\r\n console.log('Is not logged In');\r\n if (window.location.pathname.length > 1) {\r\n returnUrl = `&mpurl=${encodeURIComponent(window.location.pathname)}`;\r\n }\r\n event.preventDefault();\r\n flushAppInsights();\r\n window.location.href = `${signInUrl + returnUrl}`;\r\n }\r\n };\r\n\r\n function getUrl(): string {\r\n let changedUrl = signInUrl;\r\n const websiteUrl = `${window.location.origin}/${langCode}`;\r\n if (process.env.NODE_ENV === 'production') {\r\n if (isUserLoggedIn) {\r\n changedUrl = `${window.location.origin}/${logOut}&end_url=${encodeURIComponent(`${websiteUrl}`)}`;\r\n } else {\r\n if (window.location.pathname.length > 1) {\r\n returnUrl = `&mpurl=${encodeURIComponent(window.location.pathname)}`;\r\n }\r\n changedUrl = `${signInUrl + returnUrl}`;\r\n }\r\n }\r\n return changedUrl;\r\n }\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nexport default React.memo(SignInButton);\r\n","import * as React from 'react';\r\nimport { cn, sanitizer } from '../../../helpers';\r\n\r\nimport './html-content.scss';\r\n\r\nfunction HtmlContent(props: HtmlContentProps) {\r\n const { html, className, inputProps } = props;\r\n\r\n return
;\r\n}\r\n\r\nexport default React.memo(HtmlContent);\r\n","import DateDiff from './date-diff';\r\n\r\nconst name = 'Sort Helper';\r\n\r\nconst isValidDate = (prop: undefined | number | string) => {\r\n if (!prop || prop === '') return false;\r\n return new Date(prop).toString() !== 'Invalid Date';\r\n};\r\n\r\nconst sortAsc = (items: AnonymousObject, sortProp1: string, sortProp2 = '') => {\r\n if (!items.length || !items[0][sortProp1]) return items;\r\n return items.sort((a: AnonymousObject, b: AnonymousObject) => {\r\n if (a[sortProp1] && b[sortProp1]) {\r\n if (a[sortProp1].toLowerCase() < b[sortProp1].toLowerCase()) return -1;\r\n if (a[sortProp1].toLowerCase() > b[sortProp1].toLowerCase()) return 1;\r\n }\r\n if (sortProp2 !== '') {\r\n if (a[sortProp2].toLowerCase() < b[sortProp2].toLowerCase()) return -1;\r\n if (a[sortProp2].toLowerCase() > b[sortProp2].toLowerCase()) return 1;\r\n }\r\n return 0;\r\n });\r\n};\r\n\r\nconst sortQLAsc = (items: AnonymousObject, sortProp1: string, sortProp2 = '') => {\r\n if (!items.length || !items[0][sortProp1]) return items;\r\n return items.sort((a: AnonymousObject, b: AnonymousObject) => {\r\n if (a[sortProp1] && b[sortProp1]) {\r\n if (a[sortProp1][0].toLowerCase() < b[sortProp1][0].toLowerCase()) return -1;\r\n if (a[sortProp1][0].toLowerCase() > b[sortProp1][0].toLowerCase()) return 1;\r\n }\r\n if (sortProp2 !== '') {\r\n if (a[sortProp2][0].toLowerCase() < b[sortProp2][0].toLowerCase()) return -1;\r\n if (a[sortProp2][0].toLowerCase() > b[sortProp2][0].toLowerCase()) return 1;\r\n }\r\n return 0;\r\n });\r\n};\r\n\r\nconst sortDesc = (items: AnonymousObject, sortProp1: string, sortProp2 = '') => {\r\n if (!items[0][sortProp1]) return items;\r\n return items.sort((a: AnonymousObject, b: AnonymousObject) => {\r\n if (a[sortProp1] && b[sortProp1]) {\r\n if (a[sortProp1].toLowerCase() < b[sortProp1].toLowerCase()) return 1;\r\n if (a[sortProp1].toLowerCase() > b[sortProp1].toLowerCase()) return -1;\r\n }\r\n if (sortProp2 !== '') {\r\n if (a[sortProp2].toLowerCase() < b[sortProp2].toLowerCase()) return 1;\r\n if (a[sortProp2].toLowerCase() > b[sortProp2].toLowerCase()) return -1;\r\n }\r\n return 0;\r\n });\r\n};\r\n\r\nconst sortQLDesc = (items: AnonymousObject, sortProp1: string, sortProp2 = '') => {\r\n if (!items[0][sortProp1]) return items;\r\n return items.sort((a: AnonymousObject, b: AnonymousObject) => {\r\n if (a[sortProp1] && b[sortProp1]) {\r\n if (a[sortProp1][0].toLowerCase() < b[sortProp1][0].toLowerCase()) return 1;\r\n if (a[sortProp1][0].toLowerCase() > b[sortProp1][0].toLowerCase()) return -1;\r\n }\r\n if (sortProp2 !== '') {\r\n if (a[sortProp2][0].toLowerCase() < b[sortProp2][0].toLowerCase()) return 1;\r\n if (a[sortProp2][0].toLowerCase() > b[sortProp2][0].toLowerCase()) return -1;\r\n }\r\n return 0;\r\n });\r\n};\r\n\r\nconst sortAscByDate = (items: AnonymousObject, sortProp1: string, sortProp2 = '') => {\r\n return items.sort((a: AnonymousObject, b: AnonymousObject) => {\r\n // a is null? last\r\n if (!isValidDate(a[sortProp1])) return 1;\r\n // b is null? last\r\n if (!isValidDate(b[sortProp1])) return -1;\r\n if (new Date(a[sortProp1]) < new Date(b[sortProp1])) return -1;\r\n if (new Date(a[sortProp1]) > new Date(b[sortProp1])) return 1;\r\n if (sortProp2 !== '') {\r\n if (a[sortProp2].toLowerCase() < b[sortProp2].toLowerCase()) return -1;\r\n if (a[sortProp2].toLowerCase() > b[sortProp2].toLowerCase()) return 1;\r\n }\r\n return 0;\r\n });\r\n};\r\n\r\nconst sortDescByDate = (items: AnonymousObject, sortProp1: string, sortProp2 = '') => {\r\n return items.sort((a: AnonymousObject, b: AnonymousObject) => {\r\n // a is null? last\r\n if (!isValidDate(a[sortProp1])) return 1;\r\n // b is null? last\r\n if (!isValidDate(b[sortProp1])) return -1;\r\n if (new Date(a[sortProp1]) < new Date(b[sortProp1])) return 1;\r\n if (new Date(a[sortProp1]) > new Date(b[sortProp1])) return -1;\r\n if (sortProp2 !== '') {\r\n if (a[sortProp2].toLowerCase() < b[sortProp2].toLowerCase()) return 1;\r\n if (a[sortProp2].toLowerCase() > b[sortProp2].toLowerCase()) return -1;\r\n }\r\n return 0;\r\n });\r\n};\r\n\r\nconst sortByEnhanced = (items: AnonymousObject) => {\r\n const enhancedDate = items\r\n .filter((item: DataProfileCard) => {\r\n if (!item.enhancementDate) return false;\r\n return isValidDate(item.enhancementDate) && DateDiff(item.enhancementDate) > 0;\r\n }) // plus filter to remove future dates use DateDiff\r\n .sort((a: AnonymousObject, b: AnonymousObject) => {\r\n // a is null? last\r\n if (!isValidDate(a.enhancementDate)) return 1;\r\n // b is null? last\r\n if (!isValidDate(b.enhancementDate)) return -1;\r\n if (new Date(a.enhancementDate) < new Date(b.enhancementDate)) return 1;\r\n if (new Date(a.enhancementDate) > new Date(b.enhancementDate)) return -1;\r\n return 0;\r\n });\r\n\r\n const nonEnhancedDate = items\r\n .filter((item: DataProfileCard) => {\r\n if (!item.enhancementDate) return true;\r\n if (!isValidDate(item.enhancementDate)) return true;\r\n return DateDiff(item.enhancementDate) <= 0;\r\n })\r\n .sort((a: AnonymousObject, b: AnonymousObject) => {\r\n // a is null? last\r\n if (!isValidDate(a.addedDate)) return 1;\r\n // b is null? last\r\n if (!isValidDate(b.addedDate)) return -1;\r\n if (new Date(a.addedDate) < new Date(b.addedDate)) return 1;\r\n if (new Date(a.addedDate) > new Date(b.addedDate)) return -1;\r\n return 0;\r\n });\r\n\r\n return enhancedDate.concat(nonEnhancedDate);\r\n};\r\n\r\nexport { name as default, sortAsc, sortDesc, sortAscByDate, sortDescByDate, sortByEnhanced, isValidDate, sortQLAsc, sortQLDesc };\r\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7 7l.707.707L8.414 7l-.707-.707L7 7zm-.707-.707l-6 6 1.414 1.414 6-6-1.414-1.414zm-6-4.586l6 6 1.414-1.414-6-6L.293 1.707z\",\n fill: \"currentColor\"\n});\nvar SvgCaretRight = function SvgCaretRight(_ref) {\n var svgRef = _ref.svgRef,\n props = _objectWithoutProperties(_ref, [\"svgRef\"]);\n return React.createElement(\"svg\", _extends({\n width: 9,\n height: 14,\n viewBox: \"0 0 9 14\",\n fill: \"none\",\n ref: svgRef\n }, props), _ref2);\n};\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return React.createElement(SvgCaretRight, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/caret-right.fe9e5156.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0.5 0V18H15.5V0H0.5ZM2 1.5H14V5.25H2V1.5ZM2 6.75H14V11.25H2V6.75ZM2 12.75H14V16.5H2V12.75Z\"\n});\nvar SvgDatasetsFilter = function SvgDatasetsFilter(_ref) {\n var svgRef = _ref.svgRef,\n props = _objectWithoutProperties(_ref, [\"svgRef\"]);\n return React.createElement(\"svg\", _extends({\n width: 16,\n height: 18,\n viewBox: \"0 0 16 18\",\n fill: \"none\",\n ref: svgRef\n }, props), _ref2);\n};\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return React.createElement(SvgDatasetsFilter, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/datasets-filter.e0d4c726.svg\";\nexport { ForwardRef as ReactComponent };","import { Base64 } from 'js-base64';\r\nimport { getConfig } from '../helpers';\r\n\r\nconst runningAsServer = process.env.REACT_APP_SPGVARS_IS_SERVER_REQUEST && process.env.REACT_APP_SPGVARS_IS_SERVER_REQUEST === 'true';\r\n\r\nexport declare const spgVars: string;\r\n\r\nfunction getEnv(baseUrl: string): string {\r\n if (baseUrl.includes('marketplacedev')) {\r\n return 'dev';\r\n }\r\n if (baseUrl.includes('marketplacestage')) {\r\n return 'stage';\r\n }\r\n return 'prod';\r\n}\r\n\r\nexport default function loadSPGVariables(): SPGlobalEnv {\r\n if (process.env.NODE_ENV !== 'production' || process.env.REACT_APP_SPOOF_API === 'true') {\r\n return getConfig('spgVars');\r\n }\r\n\r\n if (runningAsServer) {\r\n return {\r\n APIGEE_SEARCH_HEADER: '',\r\n CROWNPEAK_HOST: '',\r\n CloudFrontURL: '',\r\n READ_SERVICE_HOST: '',\r\n DATAVENDORTOEMAIL: '',\r\n GTM_CONTAINER_ID: '',\r\n GA_TRACKING_ID: '',\r\n MARKETO_MUNCHKINID: '',\r\n ONE_TRUST_COOKIE_GUID: '',\r\n CLIENTID: '',\r\n CLIENTSECRET: '',\r\n REFRESHTOKEN: '',\r\n TRENDINGDATASETS: [],\r\n TABLEAU_SECURESITE: '',\r\n TABLEAU_PUBLICSITE: '',\r\n SSO_LOGOUT_URL: '',\r\n SUPPORTED_LANGUAGES: [],\r\n IS_CRAWLER_REQUEST: false,\r\n BUILD_VERSION: process.env.REACT_APP_SPGVARS_BUILD_VERSION || '',\r\n APIBASE: process.env.REACT_APP_SPGVARS_APIBASE || '',\r\n IS_SERVER_REQUEST: true,\r\n DEVICE_ISMOBILE: false,\r\n IS_RENDERTRON_REQUEST: false,\r\n OKTA_ISSUER_URL: '',\r\n OKTA_CLIENT_ID: '',\r\n OKTA_IDP_ID: '',\r\n LD_CLIENT_ID: '',\r\n LD_SECRET_HASH: '',\r\n LD_RELAYPROXY: '',\r\n ENV: '',\r\n RATINGSRATEMAILLIST: '',\r\n INDEXRATEMAILLIST: '',\r\n SPGLOBALRATEMAILLIST: '',\r\n SPGVARS_QUERY_BUILDER: false,\r\n SPGVARS_ENABLE_KENSHO_DEMOS: false,\r\n SPGVARS_ENABLE_TRANSLATIONS: false,\r\n SPGVARS_ENABLE_WORKBENCH: false,\r\n SPGVARS_ENABLE_BLUEPRINT: false,\r\n COALITIONEMAILLIST: '',\r\n KENSHOLLMEmailList: '',\r\n LLMEmailList: '',\r\n MOBILITYEMAILLIST: ''\r\n };\r\n }\r\n\r\n const spgVarsObj: SPGlobalEnv = JSON.parse(Base64.decode(spgVars));\r\n return {\r\n APIGEE_SEARCH_HEADER: spgVarsObj.APIGEE_SEARCH_HEADER,\r\n BUILD_VERSION: spgVarsObj.BUILD_VERSION,\r\n CROWNPEAK_HOST: spgVarsObj.CROWNPEAK_HOST,\r\n READ_SERVICE_HOST: spgVarsObj.READ_SERVICE_HOST,\r\n DATAVENDORTOEMAIL: spgVarsObj.DATAVENDORTOEMAIL,\r\n GA_TRACKING_ID: spgVarsObj.GA_TRACKING_ID,\r\n GTM_CONTAINER_ID: spgVarsObj.GTM_CONTAINER_ID,\r\n MARKETO_MUNCHKINID: spgVarsObj.MARKETO_MUNCHKINID,\r\n ONE_TRUST_COOKIE_GUID: spgVarsObj.ONE_TRUST_COOKIE_GUID,\r\n OKTA_ISSUER_URL: spgVarsObj.OKTA_ISSUER_URL,\r\n OKTA_CLIENT_ID: spgVarsObj.OKTA_CLIENT_ID,\r\n OKTA_IDP_ID: spgVarsObj.OKTA_IDP_ID,\r\n CLIENTID: spgVarsObj.CLIENTID,\r\n CLIENTSECRET: spgVarsObj.CLIENTSECRET,\r\n REFRESHTOKEN: spgVarsObj.REFRESHTOKEN,\r\n TRENDINGDATASETS: spgVarsObj.TRENDINGDATASETS,\r\n TABLEAU_SECURESITE: spgVarsObj.TABLEAU_SECURESITE,\r\n TABLEAU_PUBLICSITE: spgVarsObj.TABLEAU_PUBLICSITE,\r\n SUPPORTED_LANGUAGES: spgVarsObj.SUPPORTED_LANGUAGES,\r\n IS_CRAWLER_REQUEST: spgVarsObj.IS_CRAWLER_REQUEST,\r\n APIBASE: spgVarsObj.APIBASE,\r\n SSO_LOGOUT_URL: spgVarsObj.SSO_LOGOUT_URL,\r\n IS_SERVER_REQUEST: spgVarsObj.IS_SERVER_REQUEST,\r\n DEVICE_ISMOBILE: spgVarsObj.DEVICE_ISMOBILE,\r\n SSR: spgVarsObj.SSR,\r\n IS_RENDERTRON_REQUEST: spgVarsObj.IS_RENDERTRON_REQUEST,\r\n LD_CLIENT_ID: spgVarsObj.LD_CLIENT_ID,\r\n LD_SECRET_HASH: spgVarsObj.LD_SECRET_HASH,\r\n LD_RELAYPROXY: spgVarsObj.LD_RELAYPROXY,\r\n ENV: getEnv(spgVarsObj.APIBASE.toLowerCase()),\r\n RATINGSRATEMAILLIST: spgVarsObj.RATINGSRATEMAILLIST,\r\n INDEXRATEMAILLIST: spgVarsObj.INDEXRATEMAILLIST,\r\n SPGLOBALRATEMAILLIST: spgVarsObj.SPGLOBALRATEMAILLIST,\r\n SPGVARS_QUERY_BUILDER: spgVarsObj.SPGVARS_QUERY_BUILDER,\r\n SPGVARS_ENABLE_KENSHO_DEMOS: spgVarsObj.SPGVARS_ENABLE_KENSHO_DEMOS,\r\n SPGVARS_ENABLE_TRANSLATIONS: spgVarsObj.SPGVARS_ENABLE_TRANSLATIONS,\r\n SPGVARS_ENABLE_WORKBENCH: spgVarsObj.SPGVARS_ENABLE_WORKBENCH,\r\n SPGVARS_ENABLE_BLUEPRINT: spgVarsObj.SPGVARS_ENABLE_BLUEPRINT,\r\n COALITIONEMAILLIST: spgVarsObj.COALITIONEMAILLIST,\r\n CloudFrontURL: spgVarsObj.CloudFrontURL,\r\n KENSHOLLMEmailList: spgVarsObj.KENSHOLLMEmailList,\r\n LLMEmailList: spgVarsObj.LLMEmailList,\r\n MOBILITYEMAILLIST: spgVarsObj.MOBILITYEMAILLIST\r\n };\r\n}\r\n","/**\r\n *\r\n * Usage\r\n *\r\n * getConfig('hello'); // => 'world'\r\n *\r\n */\r\nimport merge from 'deepmerge';\r\nimport get from './get';\r\nimport configFile from '../config.json';\r\n\r\nconst missingValue = 'Missing value: ';\r\nlet config = configFile;\r\n\r\n// a function to merge the dev config\r\n\r\nif (process.env.NODE_ENV !== 'production' || process.env.REACT_APP_RELEASELOCAL) {\r\n /* eslint-disable */\r\n const prodConfig = require('../config.dev.json');\r\n config = merge(config, prodConfig);\r\n /* eslint-enable */\r\n}\r\n\r\n// the main getter\r\nfunction getConfig(key: string, defaultValue?: string) {\r\n return get(config, key, defaultValue || `${missingValue}${key}`);\r\n}\r\n\r\nexport default getConfig;\r\n","import * as React from 'react';\r\nimport { ErrorManager, ErrorType } from '../../../utilities/error-manager';\r\n\r\nexport function reportError(error: Error, errorInfo: React.ErrorInfo) {\r\n // console.log('** ERROR LOGGER **', error, errorInfo);\r\n ErrorManager.customError(\r\n ErrorType.applicationError,\r\n 'Oops! Something went wrong. Please try again later.',\r\n `${error.name}...component Stack :${errorInfo.componentStack} Error stack: ${error.stack}`\r\n );\r\n}\r\n\r\nexport default class ErrorBoundary extends React.Component {\r\n private constructor(props: ErrorBoundaryProps) {\r\n super(props);\r\n\r\n this.state = {\r\n error: null\r\n };\r\n }\r\n\r\n public static getDerivedStateFromError(error: Error) {\r\n return {\r\n error\r\n };\r\n }\r\n\r\n public componentDidCatch(error: Error, errorInfo: React.ErrorInfo) {\r\n const { isSilent } = this.props;\r\n if (isSilent) {\r\n reportError(error, errorInfo);\r\n }\r\n }\r\n\r\n public render() {\r\n const { error } = this.state;\r\n const { children, render, isSilent, replacementComponent } = this.props;\r\n if (render) return render(children, error);\r\n if (error && !isSilent) return replacementComponent || null;\r\n return children;\r\n }\r\n}\r\n","/**\r\n *\r\n * Usage\r\n *\r\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\r\n *\r\n * get(object, 'a[0].b.c'); // => 3\r\n *\r\n * get(object, ['a', '0', 'b', 'c']); // => 3\r\n *\r\n * get(object, 'a.b.c', 'default'); // => 'default'\r\n *\r\n */\r\n\r\nimport get from 'lodash.get';\r\n\r\nexport default get;\r\n","import { reducerWithInitialState } from 'typescript-fsa-reducers';\r\nimport update from 'react-addons-update';\r\nimport {\r\n toggleLogInStatus,\r\n fetchUserProfile,\r\n clearUserProfile,\r\n toggleSessionCreate,\r\n fetchUserPreference,\r\n updateUserPreference,\r\n updateUserPreferenceManually\r\n} from './user.actions';\r\n\r\nconst initialUserState: UserStoreState = {\r\n isLoggedIn: false,\r\n isTableauSessionCreated: false,\r\n bookmarkPreference: undefined\r\n};\r\n\r\nconst reducer = reducerWithInitialState(initialUserState);\r\n\r\nreducer.case(toggleLogInStatus, (state, isLoggedIn) => {\r\n return { ...state, isLoggedIn };\r\n});\r\n\r\nreducer.case(toggleSessionCreate, (state: UserStoreState, isTableauSessionCreated: boolean) => {\r\n return { ...state, isTableauSessionCreated };\r\n});\r\n\r\nreducer.case(fetchUserProfile.async.done, (state, userInfo) => {\r\n // console.log('fetchInitialDataset.async.done', state, userInfo);\r\n return update(state, { userInfo: { $set: userInfo.result } });\r\n});\r\n\r\nreducer.case(fetchUserPreference.async.done, (state, bookmarkPreference) => {\r\n return update(state, { bookmarkPreference: { $set: bookmarkPreference.result } });\r\n});\r\n\r\nreducer.case(updateUserPreference.async.done, (state, bookmarkPreference) => {\r\n return update(state, { bookmarkPreference: { $set: bookmarkPreference.result } });\r\n});\r\n\r\nreducer.case(updateUserPreferenceManually.async.done, (state, bookmarkPreference) => {\r\n return update(state, { bookmarkPreference: { $set: bookmarkPreference.result } });\r\n});\r\n\r\nreducer.case(clearUserProfile, state => {\r\n return update(state, { $set: initialUserState });\r\n});\r\n\r\nexport { reducer, initialUserState };\r\n","import update from 'react-addons-update';\r\nimport { API_INITIAL_DATASETS, API_FULL_DATASETS, API_OPENSEARCH_DATASETS } from '../actionTypes';\r\nimport { getText } from '../../helpers';\r\n\r\nconst initialDataSetState: DatasetsStoreState = {\r\n full: {},\r\n all: {},\r\n openSearch: {}\r\n};\r\n\r\nconst globalLabel = getText('generic.globalLabel');\r\n\r\nconst getDelivery = (unmaskDelivery: number[], delivery: FilterCheckBoxItem[]) => {\r\n const marketSPGDestinationPlatform: Delivery[] = [];\r\n unmaskDelivery.forEach(KeySPGDestinationPlatform => {\r\n const deliveryFilter = delivery.find(filterDelivery => parseInt(filterDelivery.id as string, 0) === KeySPGDestinationPlatform);\r\n if (deliveryFilter) {\r\n marketSPGDestinationPlatform.push({\r\n SPGDestinationPlatform: deliveryFilter.name,\r\n KeySPGDestinationPlatform: parseInt(deliveryFilter.value as string, 0)\r\n });\r\n }\r\n });\r\n return marketSPGDestinationPlatform;\r\n};\r\n\r\nconst getDeliveryPlatform = (unmaskDelivery: number[], delivery: FilterCheckBoxItem[]) => {\r\n const marketSPGDestinationPlatform: Delivery[] = [];\r\n unmaskDelivery.forEach(KeySPGDestinationPlatform => {\r\n const deliveryFilter = delivery.find(filterDelivery => parseInt(filterDelivery.id as string, 0) === KeySPGDestinationPlatform);\r\n if (deliveryFilter) {\r\n marketSPGDestinationPlatform.push({\r\n SPGDestinationPlatform: deliveryFilter.name,\r\n KeySPGDestinationPlatform: parseInt(deliveryFilter.value as string, 0),\r\n KeyPlatformService: deliveryFilter.keyPlatformService,\r\n MktplaceSolutionName: deliveryFilter.mktplaceSolutionName\r\n });\r\n }\r\n });\r\n return marketSPGDestinationPlatform;\r\n};\r\n\r\nconst getAllIndustries = (industries: FilterCheckBoxItem[]) => {\r\n return industries\r\n .filter(industryFilter => parseInt(industryFilter.value as string, 0) > 0)\r\n .map(industryFilter => {\r\n const filter: MarketDatasetMIIndustry = {\r\n KeyMIIndustryTree: parseInt(industryFilter.value as string, 0),\r\n MIIndustryTree: { IndustryLongName: industryFilter.name }\r\n };\r\n return filter;\r\n });\r\n};\r\n\r\nconst checkGlobalGeographic = (marketDatasetGeography: MarketDatasetGeography[], regions: FilterCheckBoxItem[]) => {\r\n const Global = regions.find(reg => reg.name === globalLabel);\r\n const keysArr: string[] = Global ? (Global.value as string).split(',') : [];\r\n const regionKeys = marketDatasetGeography ? marketDatasetGeography.map(reg => {\r\n return reg.KeyGeographyTree ? reg.KeyGeographyTree.toString() : undefined;\r\n }) : [];\r\n const missing = keysArr.filter(item => regionKeys.includes(item) === false);\r\n return missing.length > 0\r\n ? marketDatasetGeography\r\n : [{ KeyGeographyTree: 0, GeographyTree: { TreeID: 0, GlobalRegion: { GlobalRegion: globalLabel } } }];\r\n};\r\n\r\nconst fetchDatasets = (response: DatasetResultAction) => {\r\n const { dataProfiles, filters } = response;\r\n\r\n const dataProfile = dataProfiles[0];\r\n\r\n dataProfile.marketDatasetMIIndustrys = dataProfiles[1].marketDatasetMIIndustrys;\r\n dataProfile.marketDatasetGeographys = dataProfiles[1].marketDatasetGeographys;\r\n dataProfile.marketDatasetLinks = dataProfiles[1].marketDatasetLinks;\r\n\r\n const unmaskDelivery = dataProfile.marketSPGDestinationPlatform;\r\n dataProfile.deliveryChannel = getDelivery(unmaskDelivery, filters.delivery);\r\n const unmaskDeliveryPlatform = dataProfile.marketSPGDeliveryPlatform;\r\n dataProfile.deliveryPlatform = getDeliveryPlatform(unmaskDeliveryPlatform, filters.allDeliveryPlatform);\r\n // Set Global if all Key present for geography\r\n dataProfile.marketDatasetGeographys = checkGlobalGeographic(dataProfile.marketDatasetGeographys, filters.regions);\r\n\r\n // When dataset has KeyMIIndustryTree == 0 i.e ALL need to show all Industry Labels from industry filters\r\n if (dataProfile.marketDatasetMIIndustrys && dataProfile.marketDatasetMIIndustrys.filter((industry: MarketDatasetMIIndustry) => industry.KeyMIIndustryTree === 0).length > 0) {\r\n dataProfile.marketDatasetMIIndustrys = getAllIndustries(filters.industries);\r\n }\r\n return dataProfile;\r\n};\r\n\r\nconst fetchBundle = (response: DatasetResultAction) => {\r\n const { dataProfiles, filters } = response;\r\n const dataProfile = dataProfiles[0];\r\n const relatedDataProfile = dataProfiles[1];\r\n const relatedDatasets = dataProfiles[2];\r\n const countbundleDatasets = dataProfile && dataProfile.bundleDatasets ? dataProfile.bundleDatasets.length : 0;\r\n const countrelateddataProfiles = relatedDataProfile && relatedDataProfile.bundleDatasets ? relatedDataProfile.bundleDatasets.length : 0;\r\n if (countbundleDatasets && countrelateddataProfiles) {\r\n for (let i = 0; i < countbundleDatasets; i++) {\r\n const dataset =\r\n relatedDataProfile.bundleDatasets &&\r\n relatedDataProfile.bundleDatasets.find(item => dataProfile.bundleDatasets && item.id === dataProfile.bundleDatasets[i].id);\r\n if (dataset && dataProfile.bundleDatasets) {\r\n dataProfile.bundleDatasets[i].marketDatasetMIIndustrys = dataset.marketDatasetMIIndustrys;\r\n dataProfile.bundleDatasets[i].marketDatasetLinks = dataset.marketDatasetLinks;\r\n dataProfile.bundleDatasets[i].marketDatasetGeographys = checkGlobalGeographic(dataset.marketDatasetGeographys, filters.regions);\r\n\r\n const unmaskDelivery = dataProfile.bundleDatasets[i].marketSPGDestinationPlatform;\r\n dataProfile.bundleDatasets[i].deliveryChannel = getDelivery(unmaskDelivery, filters.delivery);\r\n const unmaskDeliveryPlatform = dataProfile.bundleDatasets[i].marketSPGDeliveryPlatform;\r\n dataProfile.bundleDatasets[i].deliveryPlatform = getDeliveryPlatform(unmaskDeliveryPlatform, filters.allDeliveryPlatform);\r\n // When dataset has KeyMIIndustryTree == 0 i.e ALL need to show all Industry Labels from industry filters\r\n if (\r\n dataProfile.bundleDatasets[i].marketDatasetMIIndustrys.filter(\r\n (industry: MarketDatasetMIIndustry) => industry.KeyMIIndustryTree === 0\r\n ).length > 0\r\n ) {\r\n dataProfile.bundleDatasets[i].marketDatasetMIIndustrys = getAllIndustries(filters.industries);\r\n }\r\n }\r\n }\r\n }\r\n dataProfile.marketDatasetDatasets = relatedDatasets.marketDatasetDatasets;\r\n return dataProfile;\r\n};\r\n\r\n// TODO - remove any\r\n// eslint-disable-next-line\r\nconst reducer = (state: DatasetsStoreState = initialDataSetState, incomingAction: DatasetsResultAction | DatasetResultAction) => {\r\n const action = incomingAction;\r\n switch (action.type) {\r\n case API_INITIAL_DATASETS: {\r\n const actionObj = action as DatasetsResultAction;\r\n return update(state, { all: { response: { $set: actionObj.response }, time: { $set: actionObj.time } } });\r\n }\r\n case API_OPENSEARCH_DATASETS: {\r\n const actionObj = action as DatasetsResultAction;\r\n return update(state, { openSearch: { response: { $set: actionObj.response }, time: { $set: actionObj.time } } });\r\n }\r\n case API_FULL_DATASETS: {\r\n const actionObj = action as DatasetResultAction;\r\n let idAsString: string = actionObj.id;\r\n if (actionObj.dataProfiles !== undefined && actionObj.dataProfiles.length > 0) {\r\n const { dataProfiles } = actionObj;\r\n\r\n const dataProfile = dataProfiles[0];\r\n let dataProfileResponse;\r\n\r\n if (dataProfile.isBundle) {\r\n dataProfileResponse = fetchBundle(actionObj);\r\n idAsString += '-B';\r\n } else {\r\n dataProfileResponse = fetchDatasets(actionObj);\r\n idAsString += '-D';\r\n }\r\n\r\n return update(state, { full: { [idAsString]: { $set: { response: { ...dataProfileResponse, cachedTime: new Date() } } } } });\r\n }\r\n return state;\r\n }\r\n default:\r\n return state || initialDataSetState;\r\n }\r\n};\r\n\r\nexport { reducer, initialDataSetState };\r\n","import update from 'react-addons-update';\r\nimport { API_FULL_SOLUTION, API_INITIAL_SOLUTIONS } from '../actionTypes';\r\n\r\nconst initialSolutionsState: SolutionsStoreState = {\r\n full: {},\r\n all: {}\r\n};\r\n\r\n// TODO - remove any\r\n// eslint-disable-next-line\r\nconst reducer = (state: SolutionsStoreState = initialSolutionsState, incomingAction: SolutionsResultAction | SolutionResultAction) => {\r\n const action = incomingAction;\r\n switch (action.type) {\r\n case API_INITIAL_SOLUTIONS: {\r\n const actionObj = action as SolutionsResultAction;\r\n console.log('fetchInitialSolutions.async.done', state, actionObj.type, actionObj.response);\r\n return update(state, { all: { response: { $set: actionObj.response.value }, time: { $set: actionObj.time } } });\r\n }\r\n case API_FULL_SOLUTION: {\r\n const actionObj = action as SolutionResultAction;\r\n console.debug('fetchFullSolution.async.done', state, actionObj.type, actionObj.response);\r\n return update(state, { full: { [actionObj.id]: { $set: { response: actionObj.response } } } });\r\n }\r\n default:\r\n return state || initialSolutionsState;\r\n }\r\n};\r\n\r\nexport { reducer, initialSolutionsState };\r\n","import update from 'react-addons-update';\r\nimport { API_FULL_BLUEPRINT, API_INITIAL_BLUEPRINTS } from '../actionTypes';\r\n\r\nconst initialBlueprintsState: BlueprintsStoreState = {\r\n full: {},\r\n all: {}\r\n};\r\n\r\n// TODO - remove any\r\n// eslint-disable-next-line\r\nconst reducer = (state: BlueprintsStoreState = initialBlueprintsState, incomingAction: BlueprintsResultAction | BlueprintResultAction) => {\r\n const action = incomingAction;\r\n switch (action.type) {\r\n case API_INITIAL_BLUEPRINTS: {\r\n const actionObj = action as BlueprintsResultAction;\r\n return update(state, { all: { response: { $set: actionObj.response }, time: { $set: actionObj.time } } });\r\n }\r\n case API_FULL_BLUEPRINT: {\r\n const actionObj = action as BlueprintResultAction;\r\n // console.log('fetchFullBlueprint.async.done', state, actionObj.type, actionObj.response);\r\n return update(state, { full: { [actionObj.id]: { $set: { response: actionObj.response } } } });\r\n }\r\n default:\r\n return state || initialBlueprintsState;\r\n }\r\n};\r\n\r\nexport { reducer, initialBlueprintsState };\r\n","import update from 'react-addons-update';\r\nimport { createYearInPast, sortAsc, getText } from '../../helpers';\r\nimport slugify from '../../utilities/slugify';\r\nimport { API_FILTERS } from '../actionTypes';\r\n\r\nconst allIndustries = getText('generic.allIndustries');\r\nconst lessThan5Years = getText('historyFilterOptions.lessThan5Years');\r\nconst atleast5Years = getText('historyFilterOptions.atleast5Years');\r\nconst atleast10Years = getText('historyFilterOptions.atleast10Years');\r\nconst atleast15Years = getText('historyFilterOptions.atleast15Years');\r\nconst atleast20Years = getText('historyFilterOptions.atleast20Years');\r\n\r\nconst initialFiltersState: FilterStoreState = {\r\n categories: [],\r\n solutionCategories: [],\r\n delivery: [],\r\n history: [],\r\n industries: [],\r\n pointInTime: [],\r\n regions: [],\r\n countries: [],\r\n states: [],\r\n featuredDatasets: [],\r\n alternativeDatasets: [],\r\n deliveryPlatform: [],\r\n allDeliveryPlatform: [],\r\n time: '',\r\n vendors: [],\r\n extractedDatasets: [],\r\n featuredBlueprints: [],\r\n queryTypes: [],\r\n datasets: []\r\n};\r\n\r\n// TODO - remove any\r\n// eslint-disable-next-line\r\nconst reducer = (state: FilterStoreState = initialFiltersState, incomingAction: FiltersResultAction) => {\r\n const action = incomingAction;\r\n switch (action.type) {\r\n case API_FILTERS: {\r\n const actionObj = action as FiltersResultAction;\r\n if (actionObj.response !== undefined) {\r\n const mapIndustries = (industryResponse: AnonymousObject[]) => {\r\n const mappedIndustries = industryResponse.map((item: AnonymousObject) => {\r\n if (item.IndustryLongName === 'All') {\r\n item.IndustryLongName = allIndustries;\r\n }\r\n return {\r\n name: item.IndustryLongName,\r\n id: `industry-${slugify(item.IndustryLongName)}`,\r\n value: item.KeyMIIndustryTree,\r\n checked: false\r\n };\r\n });\r\n return mappedIndustries;\r\n };\r\n\r\n const mapDelivery = (deliveryResponse: AnonymousObject[]) => {\r\n const mappedDelivery = deliveryResponse\r\n .filter(item => [49, 55, 57, 64].includes(item.KeySPGDestinationPlatform))\r\n .map((item: AnonymousObject) => {\r\n return {\r\n name: item.SPGDestinationPlatform,\r\n id: item.KeySPGDestinationPlatform,\r\n value: item.KeySPGDestinationPlatform,\r\n checked: false\r\n };\r\n });\r\n return mappedDelivery;\r\n };\r\n\r\n const mapQueryCategories = (categoryResponse: AnonymousObject[]) => {\r\n const mappedCategories = categoryResponse\r\n .filter(x => x.ActiveQuerySearchTag)\r\n .sort((x, y) => (x.FormOrderQuery > y.FormOrderQuery ? 1 : -1))\r\n .map((item: AnonymousObject) => {\r\n return {\r\n name: item.MarketplaceSearchTag,\r\n id: `category-${slugify(item.MarketplaceSearchTag)}`,\r\n value: item.KeyMarketplaceSearchTag,\r\n checked: false\r\n };\r\n });\r\n return mappedCategories;\r\n };\r\n\r\n const mapCategories = (categoryResponse: AnonymousObject[]) => {\r\n const mappedCategories = categoryResponse\r\n .filter(x => x.ActiveMarketplaceSearchTag)\r\n .sort((x, y) => (x.FormOrder > y.FormOrder ? 1 : -1))\r\n .map((item: AnonymousObject) => {\r\n return {\r\n name: item.MarketplaceSearchTag,\r\n id: `category-${slugify(item.MarketplaceSearchTag)}`,\r\n value: item.KeyMarketplaceSearchTag,\r\n checked: false\r\n };\r\n });\r\n return mappedCategories;\r\n };\r\n\r\n const mapSolutionCategories = (categoryResponse: AnonymousObject[]) => {\r\n const mappedSolCategories = categoryResponse\r\n .filter(x => x.ActiveSolutionSearchTag)\r\n .sort((x, y) => (x.FormOrder > y.FormOrder ? 1 : -1))\r\n .map((item: AnonymousObject) => {\r\n return {\r\n name: item.MarketplaceSearchTag,\r\n id: `category-${slugify(item.MarketplaceSearchTag)}`,\r\n value: item.KeyMarketplaceSearchTag,\r\n checked: false\r\n };\r\n });\r\n return mappedSolCategories;\r\n };\r\n\r\n const mapRegions = (regionResponse: Region[]) => {\r\n const globalLabel = getText('pages.dataSets.filterOptions.region.additionalOptions.global') as string;\r\n const globalValue: string[] = [];\r\n\r\n const mappedRegions = regionResponse.map((item: Region) => {\r\n globalValue.push(item.KeyGeographyTree);\r\n return {\r\n name: item.GlobalRegion.GlobalRegion,\r\n id: `region-${slugify(item.GlobalRegion.GlobalRegion)}`,\r\n value: item.KeyGeographyTree,\r\n checked: false\r\n };\r\n });\r\n\r\n const globalRegion = {\r\n name: globalLabel,\r\n id: `region-${slugify(globalLabel)}`,\r\n value: `${globalValue}`,\r\n checked: false\r\n };\r\n\r\n // Apply sortAsc on field GlobalRegion as in oData query it is getting to complex\r\n return [globalRegion, ...sortAsc(mappedRegions, 'name')];\r\n };\r\n\r\n const mapHistory = () => {\r\n const historyOptions = [\r\n {\r\n name: lessThan5Years,\r\n value: `[${createYearInPast(5)} TO *]`\r\n },\r\n {\r\n name: atleast5Years,\r\n value: `[* TO ${createYearInPast(5)}]`\r\n },\r\n {\r\n name: atleast10Years,\r\n value: `[* TO ${createYearInPast(10)}]`\r\n },\r\n {\r\n name: atleast15Years,\r\n value: `[* TO ${createYearInPast(15)}]`\r\n },\r\n {\r\n name: atleast20Years,\r\n value: `[* TO ${createYearInPast(20)}]`\r\n }\r\n ];\r\n const mappedHistory = historyOptions.map((item: AnonymousObject) => {\r\n return {\r\n name: item.name,\r\n id: `history-${slugify(item.value)}`,\r\n value: item.value,\r\n checked: false\r\n };\r\n });\r\n return mappedHistory;\r\n };\r\n\r\n const mapPointInTime = () => {\r\n const pointIntTimeText = getText('pages.dataSets.filterOptions.pointInTime.text');\r\n\r\n return [\r\n {\r\n name: pointIntTimeText,\r\n id: slugify(pointIntTimeText),\r\n value: '1',\r\n checked: false\r\n }\r\n ];\r\n };\r\n\r\n const mapBookmark = () => {\r\n const bookmarkText = getText('pages.dataSets.filterOptions.bookmark.text');\r\n\r\n return [\r\n {\r\n name: bookmarkText,\r\n id: slugify(bookmarkText),\r\n value: '1',\r\n checked: false\r\n }\r\n ];\r\n };\r\n\r\n const mapCountries = (categoryResponse: Country[]) => {\r\n return categoryResponse;\r\n };\r\n\r\n const mapStates = (categoryResponse: State[]) => {\r\n return categoryResponse;\r\n };\r\n\r\n const mapMarketDatasetFeaturedAlternative = (items: DatasetFeaturedAlternative[]) => {\r\n return items;\r\n };\r\n\r\n const mapDeliveryPlatform = (items: Delivery[]) => {\r\n const platformData: DeliveryPlatform[] = [];\r\n items.forEach((item: Delivery) => {\r\n if ([52, 60, 6, 47, 49, 29, 62, 61, 65, 104, 105].includes(item.KeySPGDestinationPlatform) && item.KeySPGDestinationPlatform > 0) {\r\n const platform = {\r\n id: item.KeySPGDestinationPlatform,\r\n name: item.SPGDestinationPlatform,\r\n value: item.KeySPGDestinationPlatform.toString(),\r\n checked: false,\r\n keyPlatformService: item.KeyPlatformService,\r\n mktplaceSolutionName: item.MktplaceSolutionName\r\n };\r\n platformData.push(platform as DeliveryPlatform);\r\n }\r\n });\r\n return platformData;\r\n };\r\n\r\n const mapAllDeliveryPlatform = (items: Delivery[]) => {\r\n const platformData: DeliveryPlatform[] = [];\r\n items.forEach((item: Delivery) => {\r\n if (item.KeySPGDestinationPlatform > 0) {\r\n const platform = {\r\n id: item.KeySPGDestinationPlatform,\r\n name: item.SPGDestinationPlatform,\r\n value: item.KeySPGDestinationPlatform.toString(),\r\n checked: false,\r\n keyPlatformService: item.KeyPlatformService,\r\n mktplaceSolutionName: item.MktplaceSolutionName\r\n };\r\n platformData.push(platform as DeliveryPlatform);\r\n }\r\n });\r\n return platformData;\r\n };\r\n\r\n const mapDatasetVendors = (items: Vendor[]) => {\r\n const vendorsData: VendorPlatform[] = [];\r\n items.forEach((item: Vendor) => {\r\n if (item.SolutionType === 'Dataset') {\r\n const vendor = {\r\n id: item.KeyMarketPlaceVendor,\r\n name: item.MarketPlaceVendor,\r\n value: item.MarketPlaceVendor.toString(),\r\n checked: false\r\n };\r\n vendorsData.push(vendor as VendorPlatform);\r\n }\r\n });\r\n const tempVendorsData = vendorsData.filter((x, i, a) => a.indexOf(x) === i);\r\n const key = 'name';\r\n const uniqueVendorsData = [...new Map(tempVendorsData.map(item => [item[key], item])).values()];\r\n return uniqueVendorsData;\r\n };\r\n\r\n const mapSolutionVendors = (items: Vendor[]) => {\r\n const vendorsData: VendorPlatform[] = [];\r\n items.forEach((item: Vendor) => {\r\n if (item.SolutionType === 'Solution') {\r\n const vendor = {\r\n id: item.KeyMarketPlaceVendor,\r\n name: item.MarketPlaceVendor,\r\n value: item.MarketPlaceVendor.toString(),\r\n checked: false\r\n };\r\n vendorsData.push(vendor as VendorPlatform);\r\n }\r\n });\r\n const tempVendorsData = vendorsData.filter((x, i, a) => a.indexOf(x) === i);\r\n const key = 'name';\r\n const uniqueVendorsData = [...new Map(tempVendorsData.map(item => [item[key], item])).values()];\r\n return uniqueVendorsData;\r\n };\r\n const mapMarketDatasetExtract = (items: DatasetExtractedAlternative[]) => {\r\n return items;\r\n };\r\n const mapMarketBlueprintFeatured = (items: BlueprintsFeatured[]) => {\r\n return items;\r\n };\r\n\r\n const mapQueryTypes = (categoryResponse: AnonymousObject[]) => {\r\n const mappedCategories = categoryResponse\r\n .sort((x, y) => (x.MarketplaceQueryType > y.MarketplaceQueryType ? 1 : -1))\r\n .map((item: AnonymousObject) => {\r\n return {\r\n name: item.MarketplaceQueryType,\r\n id: `queryType-${slugify(item.KeyMarketplaceQueryType)}`,\r\n value: item.KeyMarketplaceQueryType,\r\n checked: false\r\n };\r\n });\r\n return mappedCategories;\r\n };\r\n\r\n const mapDatasets = (datasetsResponse: AnonymousObject[]) => {\r\n const mappedDatasets = datasetsResponse\r\n .sort((x, y) => (x.marketplaceDatasetName > y.marketplaceDatasetName ? 1 : -1))\r\n .map((item: AnonymousObject) => {\r\n return {\r\n name: item.marketplaceDatasetName,\r\n id: `dataset-${slugify(item.keyMarketplaceDataset)}`,\r\n value: item.keyMarketplaceDataset,\r\n checked: false\r\n };\r\n });\r\n return mappedDatasets;\r\n };\r\n\r\n const filters: FilterStoreState = {\r\n industries: mapIndustries(actionObj.response[0]),\r\n delivery: mapDelivery(actionObj.response[1]),\r\n categories: mapCategories(actionObj.response[2]),\r\n regions: mapRegions(actionObj.response[3]),\r\n history: mapHistory(),\r\n countries: mapCountries(actionObj.response[4]),\r\n states: mapStates(actionObj.response[5]),\r\n featuredDatasets: mapMarketDatasetFeaturedAlternative(actionObj.response[6]),\r\n alternativeDatasets: mapMarketDatasetFeaturedAlternative(actionObj.response[7]),\r\n pointInTime: mapPointInTime(),\r\n bookmark: mapBookmark(),\r\n deliveryPlatform: mapDeliveryPlatform(actionObj.response[1]),\r\n allDeliveryPlatform: mapAllDeliveryPlatform(actionObj.response[1]),\r\n queryCategories: mapQueryCategories(actionObj.response[2]),\r\n solutionCategories: mapSolutionCategories(actionObj.response[2]),\r\n vendors: mapDatasetVendors(actionObj.response[8]),\r\n solutionVendors: mapSolutionVendors(actionObj.response[8]),\r\n extractedDatasets: mapMarketDatasetExtract(actionObj.response[9]),\r\n featuredBlueprints: mapMarketBlueprintFeatured(actionObj.response[10]),\r\n queryTypes: mapQueryTypes(actionObj.response[11]),\r\n datasets: mapDatasets(actionObj.response[12])\r\n };\r\n\r\n return update(state, { $set: { ...filters, time: actionObj.time } });\r\n }\r\n return state;\r\n }\r\n default:\r\n return state || initialFiltersState;\r\n }\r\n};\r\n\r\nexport { reducer, initialFiltersState };\r\n","import { reducerWithInitialState } from 'typescript-fsa-reducers';\r\nimport update from 'immutability-helper';\r\nimport newError from './errors.actions';\r\n\r\nconst initialErrorState: ErrorStoreState = {\r\n errors: {},\r\n lastErrorTime: ''\r\n};\r\n\r\nconst reducer = reducerWithInitialState(initialErrorState);\r\n\r\nreducer.case(newError, (state, error) => {\r\n const time = new Date().toISOString();\r\n return update(state, { errors: { [time]: { $set: error.stack } }, lastErrorTime: { $set: time } });\r\n});\r\n\r\nexport { reducer, initialErrorState };\r\n","import update from 'react-addons-update';\r\nimport { API_RESEARCHLINKS, API_FAQS, API_PAGETEXTS, UPDATE_UTMPARAMETERS, SET_FLAGS, ID_VARIANTS, TILE_NAMES_GT_25_CHARS } from '../actionTypes';\r\nimport SPGVariables from '../../utilities/spg-variables';\r\n\r\nconst spgVars = SPGVariables();\r\n\r\nconst initialSharedState: SharedStoreState = {\r\n researchLinks: {\r\n data: [],\r\n time: undefined\r\n },\r\n faqs: {\r\n faqList: [],\r\n time: undefined\r\n },\r\n pageSections: {\r\n data: [],\r\n time: undefined\r\n },\r\n utmParameters: {\r\n utmSource: '',\r\n utmMedium: '',\r\n utmCampaign: '',\r\n utmTerm: '',\r\n utmContent: ''\r\n },\r\n flags: {\r\n isLDReady: false,\r\n fflagEnableQueryBuilder: spgVars.SPGVARS_QUERY_BUILDER,\r\n enableKenshoDemos: spgVars.SPGVARS_ENABLE_KENSHO_DEMOS,\r\n enableTranslations: spgVars.SPGVARS_ENABLE_TRANSLATIONS,\r\n enabledBlueprintFlag: spgVars.SPGVARS_ENABLE_BLUEPRINT,\r\n fflagEnableWorkbench: spgVars.SPGVARS_ENABLE_WORKBENCH,\r\n hideFooterFlag: false\r\n },\r\n config: {\r\n data: {\r\n Solution: { IdVariant: [] },\r\n Dataset: { IdVariant: [] }\r\n },\r\n time: undefined\r\n\r\n },\r\n tileNamesGt25Chars: {\r\n data: {\r\n TileNames: []\r\n },\r\n time: undefined\r\n }\r\n};\r\n\r\n// TODO - remove any\r\n// eslint-disable-next-line\r\nconst reducer = (state: SharedStoreState = initialSharedState,\r\n incomingAction: PageTextsAction |\r\n ResearchLinksAction |\r\n FAQAction |\r\n UpdateUTMParametersAction |\r\n FeatureFlagsAction | IdVariantsAction) => {\r\n const action = incomingAction;\r\n switch (action.type) {\r\n case API_RESEARCHLINKS: {\r\n const actionObj = action as ResearchLinksAction;\r\n return update(state, { researchLinks: { data: { $set: actionObj.researchLinks }, time: { $set: actionObj.time } } });\r\n }\r\n case API_FAQS: {\r\n const actionObj = action as FAQAction;\r\n return update(state, { faqs: { faqList: { $set: actionObj.faqs }, time: { $set: actionObj.time } } });\r\n }\r\n case API_PAGETEXTS: {\r\n const actionObj = action as PageTextsAction;\r\n return update(state, { pageSections: { data: { $set: actionObj.texts }, time: { $set: actionObj.time } } });\r\n }\r\n case UPDATE_UTMPARAMETERS: {\r\n const actionObj = action as UpdateUTMParametersAction;\r\n return update(state, { utmParameters: { $set: actionObj.utmParameters } });\r\n }\r\n case SET_FLAGS: {\r\n const actionObj = action as FeatureFlagsAction;\r\n return update(state, { flags: { $merge: actionObj.flags } });\r\n }\r\n case ID_VARIANTS: {\r\n const actionObj = action as IdVariantsAction;\r\n return update(state, { config: { data: { $set: actionObj.config }, time: { $set: actionObj.time } } });\r\n }\r\n case TILE_NAMES_GT_25_CHARS: {\r\n const actionObj = action as TileNamesGt25CharsAction;\r\n return update(state, { tileNamesGt25Chars: { data: { $set: actionObj.tileNamesGt25Chars }, time: { $set: actionObj.time } } });\r\n }\r\n default:\r\n return state || initialSharedState;\r\n }\r\n};\r\n\r\nexport { reducer, initialSharedState };\r\n","import update from 'react-addons-update';\r\nimport { QUERY_DOWNLOADS, QUERY_STEPS } from '../actionTypes';\r\n\r\nconst initialQueryBuilderState: QueryBuilderStoreState = {\r\n downloads: {\r\n data: undefined,\r\n time: undefined\r\n },\r\n steps: undefined\r\n};\r\n\r\nconst reducer = (state: QueryBuilderStoreState = initialQueryBuilderState, incomingAction: QueryBuilderDownloadAction | QueryBuilderStepsAction) => {\r\n const action = incomingAction;\r\n switch (action.type) {\r\n case QUERY_DOWNLOADS: {\r\n const actionObj = action as QueryBuilderDownloadAction;\r\n return update(state, { downloads: { data: { $set: actionObj.downloads }, time: { $set: actionObj.time } } });\r\n }\r\n case QUERY_STEPS: {\r\n const actionObj = action as QueryBuilderStepsAction;\r\n return update(state, { steps: { $set: actionObj.steps }, time: { $set: actionObj.time } });\r\n }\r\n default:\r\n return state || initialQueryBuilderState;\r\n }\r\n};\r\n\r\nexport { reducer, initialQueryBuilderState };\r\n","import update from 'react-addons-update';\r\nimport { API_FULL_QUERYLIBRARY, API_QL_RELATED_QUERIES } from '../actionTypes';\r\n\r\nconst initialQueryLibraryState: QueryLibraryStoreState = {\r\n full: {},\r\n all: {},\r\n relatedQueries: {}\r\n};\r\n\r\n// TODO - remove any\r\n// eslint-disable-next-line\r\nconst reducer = (state: QueryLibraryStoreState = initialQueryLibraryState, incomingAction: QueryLibraryResultAction | QueryLibraryProfileResultAction | QueryLibraryRelatedQueriesResultAction) => {\r\n const action = incomingAction;\r\n switch (action.type) {\r\n case API_FULL_QUERYLIBRARY: {\r\n const actionObj = action as QueryLibraryProfileResultAction;\r\n if (!state.full) {\r\n state.full = {};\r\n }\r\n return update(state, { full: { [actionObj.id]: { $set: { response: actionObj.response } } } });\r\n }\r\n case API_QL_RELATED_QUERIES: {\r\n const actionObj = action as QueryLibraryRelatedQueriesResultAction;\r\n if (!state.relatedQueries) {\r\n state.relatedQueries = {};\r\n }\r\n return update(state, { relatedQueries: { [actionObj.id]: { $set: { response: actionObj.response } } } });\r\n }\r\n default:\r\n return state || initialQueryLibraryState;\r\n }\r\n};\r\n\r\nexport { reducer, initialQueryLibraryState };\r\n","import slugify from './slugify';\r\n\r\nexport default (name: string, id: string | number) => {\r\n return `${slugify(name)}-(${id.toString()})`;\r\n};\r\n","import * as React from 'react';\r\nimport { cn } from '../../../helpers';\r\nimport { ReactComponent as CaretRightIcon } from '../../../assets/svg/icons/caret-right.svg';\r\n\r\nfunction Button(\r\n {\r\n title,\r\n text,\r\n theme = 'secondary',\r\n isUpperCase,\r\n isFullWidth,\r\n hasIcon,\r\n className,\r\n onClick,\r\n type = 'button',\r\n isDisabled,\r\n gtmId = '',\r\n gtmLabel = ''\r\n }: ButtonProps,\r\n ref: React.Ref\r\n) {\r\n const buttonClass = cn('button', className, {\r\n 'button--fullwidth': isFullWidth,\r\n 'button--uppercase': isUpperCase,\r\n 'button--titled': title,\r\n [`button--${theme}`]: theme\r\n });\r\n\r\n const buttonTestId = !className ? 'button' : className;\r\n\r\n const buttonInner = (\r\n <>\r\n {text}\r\n {hasIcon && }\r\n \r\n );\r\n if (type === 'submit') {\r\n return (\r\n \r\n );\r\n }\r\n const handleClick = (event: React.SyntheticEvent) => {\r\n if (onClick) onClick(event);\r\n };\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nexport default React.memo(React.forwardRef(Button));\r\n","import APIManager from './api-manager';\r\nimport { get } from '../helpers';\r\nimport Store from '../redux/store';\r\n\r\nexport default function logUsage(keyPage: number, internetTransferDuration = 0) {\r\n if (process.env.NODE_ENV === 'production' || process.env.REACT_APP_ENABLE_TRACKING === 'true') {\r\n const isLoggedIn = get(Store.getState(), 'user.isLoggedIn', false);\r\n if (isLoggedIn) {\r\n APIManager.logUsage({\r\n keyPage,\r\n queryString: window.location.pathname + window.location.search,\r\n internetTransferDuration: internetTransferDuration.toString()\r\n });\r\n }\r\n } else if (process.env.NODE_ENV === 'development') {\r\n console.warn(`Logging hit skipped - KeyPage:${keyPage} - Page: ${window.location.pathname + window.location.search}`);\r\n }\r\n}\r\n","// Datediff\r\n// if only date is passed it compares the time to now()\r\n// else it compares the two times\r\n\r\nexport default (date: Date | string, date2?: Date | string) => {\r\n const now: Date = date2 ? new Date(date) : new Date();\r\n const then: Date = date2 ? new Date(date2) : new Date(date);\r\n const diff: number = now.getTime() - then.getTime();\r\n return Number.isNaN(diff) ? 0 : diff;\r\n};\r\n","/* eslint-disable @typescript-eslint/camelcase */\r\nimport axios, { AxiosRequestConfig, AxiosInstance, AxiosError } from 'axios';\r\nimport pRetry from 'p-retry';\r\nimport { getConfig } from '../helpers';\r\nimport queryStringManager from './query-string-manager';\r\nimport SPGVariables from './spg-variables';\r\nimport Store from '../redux/store';\r\nimport { ErrorManager } from './error-manager';\r\nimport { toggleLogInStatus, clearUserProfile } from '../redux/user/user.actions';\r\n\r\nconst spgVariables = SPGVariables();\r\n\r\nconst securityConfig = getConfig('utilities.security');\r\nconst pRetryOptions = getConfig('utilities.pRetryOptions');\r\nconst urls = getConfig('urls.mi.security');\r\n\r\nconst { suppressAuthorizationHeader }: { suppressAuthorizationHeader: string[] } = securityConfig;\r\n\r\nlet miCredentials: AnonymousObject;\r\nlet tokenRefreshTimer: NodeJS.Timeout;\r\n\r\n// initialize axios instance to handle requests to security service\r\nconst axiosSecurityClient: AxiosInstance = axios.create({\r\n baseURL: spgVariables.APIBASE,\r\n timeout: securityConfig.requestTimeout,\r\n headers: {\r\n 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'\r\n }\r\n});\r\n\r\nconst sleep = (milliseconds: number) => {\r\n return new Promise(resolve => setTimeout(resolve, milliseconds));\r\n};\r\n\r\n\r\nconst signOut = async (clearCookies = true) => {\r\n clearTimeout(tokenRefreshTimer);\r\n localStorage.removeItem(securityConfig.token.sessionStorageKey);\r\n localStorage.removeItem('state');\r\n localStorage.removeItem('stateUser');\r\n\r\n if (clearCookies && process.env.NODE_ENV === 'production') {\r\n localStorage.setItem('logout-event', `logout${Math.random()}`);\r\n const batchClearTokenCookies = axiosSecurityClient.post(\r\n urls.batchClearTokenCookies,\r\n queryStringManager.stringify({\r\n domains: [window.location.hostname],\r\n refreshToken: true\r\n })\r\n );\r\n const clearAllTokenCookies = axiosSecurityClient.post(\r\n urls.clearAllTokenCookies,\r\n queryStringManager.stringify({\r\n path: '/',\r\n domain: window.location.hostname\r\n })\r\n );\r\n await Promise.all([batchClearTokenCookies, clearAllTokenCookies])\r\n .catch((error: AxiosError) => {\r\n console.error('Clear token cookies error');\r\n // ErrorManager.apiError(error, { msg: 'Sign out process error.' });\r\n })\r\n .finally(() => {\r\n Store.dispatch(clearUserProfile());\r\n });\r\n } else {\r\n Store.dispatch(clearUserProfile());\r\n }\r\n};\r\n\r\n// load token info in localStorage\r\nconst getAccessToken = (): AccessToken | undefined => {\r\n const serializedToken = localStorage.getItem(securityConfig.token.sessionStorageKey);\r\n if (serializedToken == null) {\r\n return undefined;\r\n }\r\n return JSON.parse(serializedToken);\r\n};\r\n\r\nconst scheduleTokenRefresh = () => {\r\n // first, cancel any pending refresh\r\n clearTimeout(tokenRefreshTimer);\r\n // and determine the interval until we should refresh\r\n const accessToken = getAccessToken();\r\n if (accessToken) {\r\n const timeout = Math.max(accessToken.expires_in - new Date().getTime(), 0);\r\n if (timeout) {\r\n // set a callback\r\n tokenRefreshTimer = setTimeout(() => {\r\n // authenticate to get new tokens\r\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\r\n pRetry(() => authenticate(false), pRetryOptions).catch((error: AxiosError) => {\r\n ErrorManager.apiError(error, { msg: 'Authentication Error!' });\r\n console.error('2. Security.tsx ', error);\r\n signOut();\r\n });\r\n }, timeout);\r\n }\r\n }\r\n};\r\n\r\n\r\n// store token info in localStorage\r\nconst storeAccessToken = (accessToken: AccessToken) => {\r\n const expires = new Date().getTime() + accessToken.expires_in * 1000 * 0.75;\r\n localStorage.setItem(securityConfig.token.sessionStorageKey, JSON.stringify({ ...accessToken, expires_in: expires }));\r\n scheduleTokenRefresh();\r\n};\r\n\r\n\r\n// authenticate via security service\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nconst authenticate = async (signoutOnFail = true): Promise => {\r\n return new Promise((resolve, reject) => {\r\n const requestBody = {\r\n client_id: spgVariables.CLIENTID,\r\n client_secret: spgVariables.CLIENTSECRET,\r\n scope: `${securityConfig.token.scopePart1}${securityConfig.token.scopePart2}`,\r\n grant_type: securityConfig.grantTypes.refreshToken\r\n };\r\n\r\n if (process.env.NODE_ENV === 'development' || process.env.REACT_APP_RELEASELOCAL) {\r\n if (process.env.REACT_APP_MIUSERNAME && process.env.REACT_APP_MIPASSWORD) {\r\n miCredentials = {\r\n username: process.env.REACT_APP_MIUSERNAME,\r\n password: process.env.REACT_APP_MIPASSWORD\r\n };\r\n requestBody.grant_type = securityConfig.grantTypes.password;\r\n } else {\r\n requestBody.client_id = '';\r\n requestBody.client_secret = '';\r\n }\r\n }\r\n\r\n if (!(requestBody.client_id && requestBody.client_secret)) {\r\n signOut(false).then(() => resolve()); // anonymous user\r\n } else {\r\n const body =\r\n requestBody.grant_type === securityConfig.grantTypes.refreshToken\r\n ? { ...requestBody, refresh_token: spgVariables.REFRESHTOKEN }\r\n : { ...requestBody, ...miCredentials };\r\n\r\n axiosSecurityClient\r\n .post(urls.token, queryStringManager.stringify(body))\r\n .then(response => {\r\n storeAccessToken(response.data);\r\n Store.dispatch(toggleLogInStatus(true));\r\n axiosSecurityClient\r\n .post(\r\n urls.setTokenCookies,\r\n JSON.stringify({\r\n path: '/',\r\n domain: window.location.hostname.substr(window.location.hostname.indexOf('.'))\r\n }),\r\n {\r\n headers: { Authorization: `Bearer ${response.data.access_token}`, 'Content-Type': 'application/json' }\r\n }\r\n )\r\n .catch((error: AxiosError) => {\r\n ErrorManager.apiError(error, { msg: 'Authentication Error!' });\r\n console.log('3. Security.tsx ', error);\r\n });\r\n // Below code is logout user from all the browser tab if user logged out from one tab\r\n window.addEventListener('storage', event => {\r\n if (event.key === 'logout-event') {\r\n signOut(false);\r\n }\r\n });\r\n resolve(response.data);\r\n })\r\n .catch((error: AxiosError) => {\r\n const parameters = {\r\n ServiceName: 'SecurityService',\r\n RequestUri: urls.token,\r\n error,\r\n msg: 'Authentication Error!'\r\n };\r\n ErrorManager.apiError(error, parameters);\r\n console.log('4. Security.tsx ', error);\r\n\r\n if (signoutOnFail) {\r\n signOut().finally(() => reject());\r\n } else {\r\n reject(error);\r\n }\r\n });\r\n }\r\n });\r\n};\r\n\r\nconst setOAuthRequestInterceptor = (instance: AxiosInstance) => {\r\n let tokenRefreshInProgress = false;\r\n instance.interceptors.request.use((config: AxiosRequestConfig) => {\r\n return new Promise(resolve => {\r\n const url = config.url || '';\r\n\r\n // we have some urls that dont need a token\r\n const supressToken =\r\n url.length &&\r\n suppressAuthorizationHeader.some(regexStr => {\r\n const regex = RegExp(regexStr, 'i');\r\n return regex.test(url);\r\n });\r\n\r\n if (supressToken) {\r\n resolve(config);\r\n return;\r\n }\r\n if (tokenRefreshInProgress) {\r\n // Token refresh in progress\r\n pRetry(\r\n () => {\r\n return new Promise((tokenAvailable, tokenNotAvailable) => {\r\n if (tokenRefreshInProgress) {\r\n tokenNotAvailable(new Error(url));\r\n } else {\r\n tokenAvailable();\r\n }\r\n });\r\n },\r\n {\r\n retries: 10,\r\n minTimeout: 100,\r\n maxTimeout: 60 * 10 * 1000, // 10 mins\r\n factor: 2.25,\r\n onFailedAttempt: () => {\r\n sleep(500); // snooze\r\n }\r\n }\r\n )\r\n .then(() => {\r\n // we have a new token\r\n const token = getAccessToken();\r\n if (token) {\r\n config.headers.Authorization = `Bearer ${token.access_token}`;\r\n }\r\n resolve(config);\r\n })\r\n .catch(() => {\r\n // still no token available, expect 401\r\n console.warn(`no accesstoken available for ${config.url}`);\r\n resolve(config);\r\n });\r\n } else {\r\n const token = getAccessToken();\r\n if (token) {\r\n const refreshThreshold = new Date().getTime() + 300000; // 5 minutes from now\r\n if (refreshThreshold > token.expires_in) {\r\n tokenRefreshInProgress = true;\r\n // we got an old token, so lets get a new one before we proceed\r\n pRetry(() => authenticate(false), pRetryOptions)\r\n .then(response => {\r\n // got a new one, great! attach to header\r\n if (response) {\r\n config.headers.Authorization = `Bearer ${response.access_token}`;\r\n } else {\r\n config.headers.Authorization = `Bearer ${token.access_token}`;\r\n }\r\n })\r\n .catch((error: AxiosError) => {\r\n // security service unavailable, log and expect 401\r\n ErrorManager.apiError(error, { msg: 'Authentication Error!' });\r\n console.log('5. Security.tsx ', error);\r\n // signout since we didnt pass that option when authenticating above\r\n signOut();\r\n })\r\n .finally(() => {\r\n // release waiting requests and allow to succeed or fail\r\n tokenRefreshInProgress = false;\r\n resolve(config);\r\n });\r\n } else {\r\n // we have a token, attach to header\r\n config.headers.Authorization = `Bearer ${token.access_token}`;\r\n resolve(config);\r\n }\r\n } else {\r\n resolve(config);\r\n }\r\n }\r\n });\r\n });\r\n};\r\n\r\nconst security = {\r\n setOAuthRequestInterceptor,\r\n authenticate,\r\n signOut\r\n};\r\n\r\nexport default security;\r\n","import './modal.style.scss';\r\n\r\nexport { default } from './modal';\r\n","import * as React from 'react';\r\nimport useForm from 'react-hook-form';\r\nimport { useSelector } from 'react-redux';\r\nimport Button from '../_common/button';\r\nimport Modal from '../_common/modal';\r\nimport { cn, getText, get, getPageTextsSection, getConfig } from '../../helpers';\r\nimport keyPageIds from '../../utilities/key-pages';\r\nimport TextFieldInput from '../_common/form/text-field-input';\r\nimport HtmlContent from '../_common/html-content';\r\nimport { ReactComponent as SuccessIcon } from '../../assets/svg/icons/success.svg';\r\nimport ErrorBoundary from '../_common/error-boundary';\r\nimport Popup from '../_common/popup';\r\nimport logUsage from '../../utilities/log-usage';\r\nimport APIManager from '../../utilities/api-manager';\r\nimport CheckboxInput from '../_common/form/checkbox-input';\r\nimport Store from '../../redux/store';\r\n\r\nconst formText = getText('pages.notifyMe');\r\nconst validateEmail = /.+@.+\\..+/i;\r\nconst Window = window as AnonymousObject;\r\nWindow.dataLayer = Window.dataLayer || [];\r\n\r\nfunction NotifyMe(props: NotifyMeProps) {\r\n const { variant } = props;\r\n const pageSectionNames = getConfig(`pagetext.${variant}.notifyMeSection`);\r\n const [modalIsOpen, setModalOpen] = React.useState(false);\r\n const [hasSuccess, setSuccess] = React.useState(false);\r\n const [isSubmitting, setSubmitting] = React.useState(false);\r\n const [hasError, setError] = React.useState(false);\r\n const { className, text, id } = props;\r\n const { userInfo } = useSelector((state: RootStoreState) => get(state, 'user'));\r\n\r\n let keyPageNumber: number;\r\n let keyPageNotifyMeSubscribed: number;\r\n let keyPageNotifyMe: number;\r\n let notifyMeVariant: string;\r\n let subscriptionText: string;\r\n\r\n if (variant === 'dataset') {\r\n keyPageNumber = keyPageIds.datasetPage;\r\n keyPageNotifyMeSubscribed = keyPageIds.datasetNotifyMeSubscribed;\r\n keyPageNotifyMe = keyPageIds.datasetNotifyMe;\r\n notifyMeVariant = 'NotifyMeDataset';\r\n subscriptionText = formText.subscription.text;\r\n } else if (variant === 'solution') {\r\n keyPageNumber = keyPageIds.solutionPage;\r\n keyPageNotifyMeSubscribed = keyPageIds.solutionNotifyMeSubscribed;\r\n keyPageNotifyMe = keyPageIds.solutionNotifyMe;\r\n notifyMeVariant = 'NotifyMeSolution';\r\n subscriptionText = formText.subscription.solutionText;\r\n } else {\r\n keyPageNumber = keyPageIds.blueprintPage;\r\n keyPageNotifyMeSubscribed = keyPageIds.blueprintNotifyMeSubscribed;\r\n keyPageNotifyMe = keyPageIds.blueprintNotifyMe;\r\n notifyMeVariant = 'NotifyMeBlueprint';\r\n subscriptionText = formText.subscription.blueprintText;\r\n }\r\n const keyPage = keyPageNumber;\r\n const pageTextsData = useSelector((state: RootStoreState) => {\r\n return get(state, 'shared.pageSections.data', []) as PageSections[];\r\n }).filter(x => x.KeyOnlinePage === keyPage);\r\n\r\n let alertSubmissionSection = getPageTextsSection(pageSectionNames.alertSubmission, []);\r\n let alertformSection = getPageTextsSection(pageSectionNames.alertSection, []);\r\n\r\n if (pageTextsData) {\r\n alertSubmissionSection = getPageTextsSection(pageSectionNames.alertSubmission, pageTextsData);\r\n alertformSection = getPageTextsSection(pageSectionNames.alertSection, pageTextsData);\r\n }\r\n\r\n const email = userInfo ? userInfo.Email : '';\r\n const formInitialValues = {\r\n Email: email,\r\n HasSubscribedAll: false\r\n };\r\n const { register, setValue, watch, errors, handleSubmit, reset } = useForm({\r\n defaultValues: formInitialValues\r\n });\r\n const formFields = watch();\r\n\r\n const emailInputRequired = {\r\n required: formText.errorRequired,\r\n pattern: {\r\n value: validateEmail,\r\n message: formText.errorEmail\r\n }\r\n };\r\n const updateFormFields = (name: Extract, value: string) => {\r\n setValue(name, value, true);\r\n };\r\n\r\n const submissionFailed = () => {\r\n setSubmitting(false);\r\n setError(true);\r\n Window.dataLayer.push({\r\n event: 'formSubmit',\r\n submitSuccess: 'false',\r\n formType: 'Notify me',\r\n additionalDetails: `Subscribed for coming soon alert | ${text} : ${id}`\r\n });\r\n };\r\n\r\n const submissionSuccess = () => {\r\n setSuccess(true);\r\n Window.dataLayer.push({\r\n event: 'formSubmit',\r\n submitSuccess: 'true',\r\n formType: 'Notify me',\r\n additionalDetails: `Subscribed for coming soon alert | ${text} : ${id}`\r\n });\r\n logUsage(keyPageNotifyMeSubscribed);\r\n };\r\n\r\n const onSubmit = (formData: NotifyMeState) => {\r\n setError(false);\r\n setSubmitting(true);\r\n const utmParameters: UTMParameters = get(Store.getState(), 'shared.utmParameters', {});\r\n const notifyMeRequest: NotifyMeRequest = {\r\n email: formData.Email,\r\n marketplaceNewDatasets: variant === 'dataset' ? text : '',\r\n marketplaceAllDatasetsAlerts: formData.HasSubscribedAll,\r\n marketplaceNewSolution: variant === 'solution' ? text : '',\r\n marketplaceBlueprint: variant === 'blueprint' ? text : '',\r\n variant: notifyMeVariant,\r\n utmSource: utmParameters.utmSource,\r\n utmMedium: utmParameters.utmMedium,\r\n utmCampaign: utmParameters.utmCampaign,\r\n utmTerm: utmParameters.utmTerm,\r\n utmContent: utmParameters.utmContent\r\n };\r\n APIManager.submitLeadToMarketo(notifyMeRequest)\r\n .then(response => {\r\n if (response.data) {\r\n submissionSuccess();\r\n setSubmitting(false);\r\n return;\r\n }\r\n submissionFailed();\r\n })\r\n .catch(() => submissionFailed());\r\n };\r\n\r\n const handleClick = () => {\r\n setModalOpen(true);\r\n setSuccess(false);\r\n setSubmitting(false);\r\n reset(formInitialValues);\r\n logUsage(keyPageNotifyMe);\r\n };\r\n\r\n React.useEffect(() => {\r\n register(\r\n {\r\n name: 'Email'\r\n },\r\n emailInputRequired\r\n );\r\n register({\r\n name: 'HasSubscribedAll'\r\n });\r\n }, []);\r\n\r\n return (\r\n <>\r\n handleClick()}\r\n theme=\"primary\"\r\n isFullWidth\r\n className={cn('notify-me__popup-btn', className)}\r\n />\r\n setModalOpen(false)} isFullScreen={window.innerWidth < 1024} scrollBody>\r\n \r\n
\r\n {!hasSuccess && (\r\n <>\r\n
\r\n

{alertformSection.title}

\r\n

{alertformSection.content}

\r\n
\r\n \r\n \r\n \r\n
\r\n {\r\n setValue(formText.subscription.name, value);\r\n }}\r\n />\r\n
\r\n {hasError &&

{formText.errorNotification}

}\r\n \r\n \r\n \r\n )}\r\n {hasSuccess && (\r\n }\r\n />\r\n )}\r\n
\r\n
\r\n
\r\n \r\n );\r\n}\r\n\r\nexport default React.memo(NotifyMe);\r\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M10 11V5H8v6h2zm0 0h3V9h-3v2zm4.62-9.02C13.07.74 11.12 0 9 0 4.03 0 0 4.03 0 9s4.02 9 9 9 9-4.03 9-9c0-2.12-.74-4.07-1.97-5.61l-1.41-1.41zM2 9c0-3.87 3.13-7 7-7s7 3.13 7 7-3.13 7-7 7-7-3.13-7-7z\",\n fill: \"currentColor\"\n});\nvar SvgClock = function SvgClock(_ref) {\n var svgRef = _ref.svgRef,\n props = _objectWithoutProperties(_ref, [\"svgRef\"]);\n return React.createElement(\"svg\", _extends({\n width: 18,\n height: 18,\n viewBox: \"0 0 18 18\",\n fill: \"none\",\n ref: svgRef\n }, props), _ref2);\n};\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return React.createElement(SvgClock, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/clock.c180f4b8.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.3546 2.6437C13.7223 1.0125 11.4822 0 8.9944 0 4.0188 0 0 4.0275 0 9s4.0188 9 8.9944 9c4.1988 0 7.6998-2.8687 8.7017-6.75h-2.3415c-.9231 2.6213-3.4221 4.5-6.3602 4.5C5.2683 15.75 2.24 12.7238 2.24 9c0-3.7237 3.0282-6.75 6.7543-6.75 1.8686 0 3.5347.7763 4.7504 2.0025L10.1201 7.875H18V0l-2.6454 2.6437z\",\n fill: \"currentColor\"\n});\nvar SvgRefresh = function SvgRefresh(_ref) {\n var svgRef = _ref.svgRef,\n props = _objectWithoutProperties(_ref, [\"svgRef\"]);\n return React.createElement(\"svg\", _extends({\n width: 18,\n height: 18,\n viewBox: \"0 0 18 18\",\n fill: \"currentColor\",\n ref: svgRef\n }, props), _ref2);\n};\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return React.createElement(SvgRefresh, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/refresh.095162d7.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm5 11h-4v4h-2v-4H7v-2h4V7h2v4h4v2z\",\n fill: \"currentColor\"\n});\nvar SvgAddedCircle = function SvgAddedCircle(_ref) {\n var svgRef = _ref.svgRef,\n props = _objectWithoutProperties(_ref, [\"svgRef\"]);\n return React.createElement(\"svg\", _extends({\n width: 18,\n height: 18,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n ref: svgRef\n }, props), _ref2);\n};\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return React.createElement(SvgAddedCircle, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/added-circle.033400ca.svg\";\nexport { ForwardRef as ReactComponent };","import * as React from 'react';\r\nimport { getText, cn, getConfig, localeDate } from '../../helpers';\r\nimport NotifyMe from '../notify-me';\r\n\r\nimport { ReactComponent as ClockIcon } from '../../assets/svg/icons/clock.svg';\r\nimport { ReactComponent as RefreshIcon } from '../../assets/svg/icons/refresh.svg';\r\nimport { ReactComponent as AddedCircleIcon } from '../../assets/svg/icons/added-circle.svg';\r\n\r\nconst ClockIconInstance = ;\r\nconst RefreshIconInstance = ;\r\nconst AddedCircleIconInstance = ;\r\n\r\nconst flagOptions: FlagOptions = {\r\n 'coming-soon': {\r\n text: getText('generic.comingSoon'),\r\n icon: ClockIconInstance,\r\n className: 'data-flag--coming-soon'\r\n },\r\n 'coming-soon-profile': {\r\n text: getText('generic.comingSoon'),\r\n icon: ClockIconInstance,\r\n className: 'data-flag--coming-soon-inverted'\r\n },\r\n 'recently-added': {\r\n text: getText('generic.recentlyAdded'),\r\n icon: AddedCircleIconInstance,\r\n className: 'data-flag--recently-added'\r\n },\r\n 'recently-added-profile': {\r\n text: getText('generic.addedOn'),\r\n icon: AddedCircleIconInstance,\r\n className: 'data-flag--recently-added-inverted'\r\n },\r\n 'recently-enhanced': {\r\n text: getText('generic.recentlyEnhanced'),\r\n icon: RefreshIconInstance,\r\n className: 'data-flag--alternative'\r\n },\r\n 'recently-enhanced-profile': {\r\n text: getText('generic.enhancedOn'),\r\n icon: RefreshIconInstance,\r\n className: 'data-flag--alternative-inverted'\r\n },\r\n default: {\r\n text: '',\r\n icon: null,\r\n className: ''\r\n }\r\n};\r\n\r\nconst formattedDate = (flagType: string, datasetAddedDate: string, datasetEnhancementDate?: string) => {\r\n if (flagType === 'recently-enhanced-profile') return ` ${localeDate(datasetEnhancementDate)}`;\r\n if (flagType === 'recently-added-profile') return ` ${localeDate(datasetAddedDate)}`;\r\n return '';\r\n};\r\n\r\n// datetime calculations are in miliseconds (90 days equal to 7776000000 Milliseconds)\r\nconst flagCutOff = getConfig('components.flagVisibilityCutoffTime');\r\n\r\nfunction getFlagType(addedDate?: string, enhancedDate?: string): string {\r\n const dateTodayMinus90 = new Date().getTime() - flagCutOff;\r\n const dateToday = new Date().getTime();\r\n\r\n const dateDatasetAdded = addedDate && Date.parse(addedDate);\r\n const dateDatasetEnhanced = enhancedDate && Date.parse(enhancedDate);\r\n\r\n if (dateDatasetAdded && dateDatasetAdded > dateToday) {\r\n return 'coming-soon';\r\n }\r\n if (dateDatasetAdded && dateDatasetAdded > dateTodayMinus90 && dateDatasetAdded <= dateToday) {\r\n return 'recently-added';\r\n }\r\n if (dateDatasetEnhanced && (dateDatasetEnhanced > dateTodayMinus90 && dateDatasetEnhanced < dateToday)) {\r\n return 'recently-enhanced';\r\n }\r\n return 'default';\r\n}\r\n\r\nconst getFlagVariant = (variant?: string) => {\r\n return variant ? `-${variant}` : '';\r\n};\r\n\r\nconst DataFlag = function DataFlag(props: DataFlagObject) {\r\n const { datasetAddedDate, datasetEnhancementDate, variant, datasetId, datasetName, notifyVariant = 'dataset', isSmall = false, querySrc } = props;\r\n const flag = getFlagType(datasetAddedDate, datasetEnhancementDate);\r\n const flagType: string = flag + getFlagVariant(variant);\r\n\r\n if (flagType.startsWith('default')) {\r\n return null;\r\n }\r\n\r\n const flagClasses = cn('data-flag', flagOptions[flagType].className, {\r\n 'data-flag--small': isSmall,\r\n 'data-flag__topnospace': querySrc === 'profile'\r\n });\r\n\r\n const date = formattedDate(flagType, datasetAddedDate, datasetEnhancementDate);\r\n\r\n return (\r\n
\r\n \r\n {flagOptions[flagType].icon}\r\n {flagOptions[flagType].text + date}\r\n \r\n {flagType === 'coming-soon-profile' ? : null}\r\n
\r\n );\r\n};\r\n\r\nexport default React.memo(DataFlag);\r\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M10.5826 11.9958L3.99609 18.5823L5.41031 19.9965L11.9968 13.41L18.5837 19.9969L19.9979 18.5826L13.411 11.9958L19.9967 5.41012L18.5825 3.99591L11.9968 10.5815L5.41155 3.99628L3.99734 5.41049L10.5826 11.9958Z\"\n});\nvar SvgClose = function SvgClose(_ref) {\n var svgRef = _ref.svgRef,\n props = _objectWithoutProperties(_ref, [\"svgRef\"]);\n return React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n ref: svgRef\n }, props), _ref2);\n};\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return React.createElement(SvgClose, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/close.b31bb027.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7 7L6.29289 7.70711L7 8.41421L7.70711 7.70711L7 7ZM7.70711 6.29289L1.70711 0.292893L0.292893 1.70711L6.29289 7.70711L7.70711 6.29289ZM12.2929 0.292894L6.29289 6.29289L7.70711 7.70711L13.7071 1.70711L12.2929 0.292894Z\",\n fill: \"currentColor\"\n});\nvar SvgCaretDown = function SvgCaretDown(_ref) {\n var svgRef = _ref.svgRef,\n props = _objectWithoutProperties(_ref, [\"svgRef\"]);\n return React.createElement(\"svg\", _extends({\n width: 14,\n height: 9,\n viewBox: \"0 0 14 9\",\n fill: \"none\",\n ref: svgRef\n }, props), _ref2);\n};\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return React.createElement(SvgCaretDown, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/caret-down.2e9747ff.svg\";\nexport { ForwardRef as ReactComponent };","import queryString from 'query-string';\r\nimport history from './history';\r\n\r\nconst queryStringManager = {\r\n /** Getters */\r\n getSearch: () => {\r\n return queryString.parse(window.location.search);\r\n },\r\n\r\n getSearchItem: (param: string) => {\r\n const parsed = queryString.parse(window.location.search);\r\n return parsed[param];\r\n },\r\n\r\n stringify: (param: {}) => {\r\n return queryString.stringify(param);\r\n },\r\n\r\n /** Setters */\r\n setSearchItem: (queryStringParam: object, silent?: boolean) => {\r\n const searchParsed = queryString.parse(window.location.search);\r\n const location = `${window.location.pathname}?${queryString.stringify({ ...searchParsed, ...queryStringParam })}`;\r\n if (silent) return history.replace(location);\r\n return history.push(location);\r\n },\r\n\r\n removeSearchItem: (key: string, silent?: boolean) => {\r\n const searchParsed = queryString.parse(window.location.search);\r\n delete searchParsed[key];\r\n const location = `${window.location.pathname}?${queryString.stringify(searchParsed)}`;\r\n if (silent) return history.replace(location);\r\n return history.push(location);\r\n },\r\n\r\n setHash: (hash: string) => {\r\n if (hash.length) {\r\n window.history.replaceState(null, '', hash);\r\n } else {\r\n window.history.replaceState(null, '', window.location.pathname + window.location.search);\r\n }\r\n },\r\n\r\n /** Updaters */\r\n updateSearchItem: (key: string, value: string | null, silent?: boolean) => {\r\n let searchParsed: AnonymousObject = {};\r\n searchParsed = queryString.parse(window.location.search);\r\n searchParsed[key] = value;\r\n const searchString = queryString.stringify(searchParsed);\r\n const location = `${window.location.pathname}?${searchString}`;\r\n if (silent) return history.replace(location);\r\n return history.push(location);\r\n }\r\n\r\n};\r\n\r\nexport default queryStringManager;\r\n","import * as React from 'react';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport { ReactComponent as CloseIcon } from '../../../assets/svg/icons/close.svg';\r\nimport { cn } from '../../../helpers';\r\nimport logUsage from '../../../utilities/log-usage';\r\n\r\nconst ModalContext = React.createContext(() => {});\r\n\r\nfunction Modal(props: ModalProps) {\r\n const { open, onClose, isFullScreen, isFullWidth, maxWidth, dialogClasses, scrollBody, whiteClose, children, keyPageId, backdropProps, paperProps, dialogWrapStyle, title } = props;\r\n\r\n React.useEffect(() => {\r\n let dialog: HTMLElement;\r\n const handleKeyDown = (event: KeyboardEvent) => {\r\n if (dialog && event.key === 'Tab') {\r\n const focusableElements = dialog\r\n .querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])');\r\n if (focusableElements.length) {\r\n const firstElement = focusableElements[0];\r\n const lastElement = focusableElements[focusableElements.length - 1];\r\n if (event.shiftKey) {\r\n if (document.activeElement === firstElement) {\r\n event.preventDefault();\r\n (lastElement as HTMLElement).focus();\r\n }\r\n } else if (document.activeElement === lastElement) {\r\n event.preventDefault();\r\n (firstElement as HTMLElement).focus();\r\n }\r\n }\r\n }\r\n };\r\n\r\n if (open) {\r\n setTimeout(() => {\r\n dialog = document.getElementsByClassName('MuiDialog-container MuiDialog-scrollBody')[0] as HTMLElement;\r\n\r\n if (dialog) {\r\n dialog.addEventListener('keydown', handleKeyDown);\r\n }\r\n }, 500);\r\n }\r\n\r\n return () => {\r\n if (dialog) dialog.removeEventListener('keydown', handleKeyDown);\r\n };\r\n\r\n }, [open]);\r\n\r\n if (open && keyPageId) logUsage(keyPageId);\r\n\r\n const handleBackdropClose = (e: {clientX: number}, reason: string) => {\r\n const maxScrollBarWidth = 18;\r\n if (reason === 'escapeKeyDown' || (document.documentElement.clientWidth - maxScrollBarWidth) > e.clientX) {\r\n onClose();\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n\r\n {children}\r\n \r\n \r\n );\r\n}\r\n\r\nconst ModalMemo = React.memo(Modal);\r\n\r\nexport { ModalMemo as default, ModalContext };\r\n","import { AxiosResponse } from 'axios';\r\nimport { addTask } from 'domain-task';\r\nimport APIManager from '../../utilities/api-manager';\r\nimport { QUERY_DOWNLOADS, QUERY_STEPS } from '../actionTypes';\r\n\r\nconst addQueryExecute = (data: BuildQueryRequest) => {\r\n return APIManager.submitQueryExecute(data);\r\n};\r\n\r\nconst fetchDownloads = (): AppThunkAction => dispatch => {\r\n const fetchTask = APIManager.getDownloads().then((response: AxiosResponse) => {\r\n if (response.data) {\r\n dispatch({ downloads: response.data, time: new Date(), type: QUERY_DOWNLOADS } as QueryBuilderDownloadAction);\r\n }\r\n });\r\n addTask(fetchTask);\r\n};\r\n\r\nconst fetchQueryBuilderSteps = (): AppThunkAction => dispatch => {\r\n const fetchTask = APIManager.getQueryBuilderSteps().then(response => {\r\n if (response.data) {\r\n dispatch({ steps: response.data, time: new Date(), type: QUERY_STEPS } as QueryBuilderStepsAction);\r\n }\r\n });\r\n addTask(fetchTask);\r\n};\r\n\r\nexport { addQueryExecute, fetchDownloads, fetchQueryBuilderSteps };\r\n","import { getConfig } from '../helpers';\r\n\r\nconst keyPageIds = getConfig('common.keyPageIds');\r\n\r\nenum keyPages {\r\n homePage = keyPageIds.homePage,\r\n homepageVideo = keyPageIds.homePageVideo,\r\n productFinderPage = keyPageIds.productFinderPage,\r\n searchResultsPage = keyPageIds.searchResultsPage,\r\n datasetsPage = keyPageIds.datasetsPage,\r\n datasetPage = keyPageIds.datasetPage,\r\n datasetRATForm = keyPageIds.datasetRATForm,\r\n solutionRATForm = keyPageIds.solutionRATForm,\r\n datasetSampleDataDownload = keyPageIds.datasetSampleDataDownload,\r\n datasetDataDictionaryDownload = keyPageIds.datasetDataDictionaryDownload,\r\n solutionsPage = keyPageIds.solutionsPage,\r\n solutionPage = keyPageIds.solutionPage,\r\n // TODO Need to generate a keyPageId for the demo page(s)\r\n solutionDemoPage = keyPageIds.solutionDemoPage,\r\n vendorForm = keyPageIds.vendorForm,\r\n datasetRATFormSubmission = keyPageIds.datasetRATFormSubmission,\r\n solutionRATFormSubmission = keyPageIds.solutionRATFormSubmission,\r\n vendorFormSubmission = keyPageIds.vendorFormSubmission,\r\n profilePage = keyPageIds.profilePage,\r\n faq = keyPageIds.faq,\r\n newUserSignup = keyPageIds.newUserSignup,\r\n queryLibraryPage = keyPageIds.queryLibraryPage,\r\n datasetNotifyMe = keyPageIds.datasetNotifyMe,\r\n solutionNotifyMe = keyPageIds.solutionNotifyMe,\r\n datasetNotifyMeSubscribed = keyPageIds.datasetNotifyMeSubscribed,\r\n solutionNotifyMeSubscribed = keyPageIds.solutionNotifyMeSubscribed,\r\n queryBuilderPage = keyPageIds.queryBuilderPage,\r\n queryBuilderDownload= keyPageIds.queryBuilderDownload,\r\n queryBuilderNewQuery= keyPageIds.queryBuilderNewQuery,\r\n queryBuilderRATFormLoad= keyPageIds.queryBuilderRATFormLoad,\r\n queryBuilderRATSubmission = keyPageIds.queryBuilderRATSubmission,\r\n blueprintsPage = keyPageIds.blueprintsPage,\r\n blueprintPage = keyPageIds.blueprintPage,\r\n blueprintNotifyMe = keyPageIds.blueprintNotifyMe,\r\n blueprintNotifyMeSubscribed = keyPageIds.blueprintNotifyMeSubscribed,\r\n homeResultsPage = keyPageIds.homeResultsPage,\r\n myAccount = keyPageIds.myAccount,\r\n userProfileVersion = keyPageIds.userProfileVersion,\r\n queryLibraryProfilePage = keyPageIds.queryLibraryProfilePage,\r\n clientSubscriptions = keyPageIds.clientSubscriptions\r\n}\r\n\r\nexport default keyPages;\r\n","import actionCreatorFactory from 'typescript-fsa';\r\nimport { ERRORS } from '../actionTypes';\r\n\r\nconst actionCreator = actionCreatorFactory();\r\n\r\nconst newError = actionCreator(ERRORS);\r\n\r\nexport default newError;\r\n","import { addTask } from 'domain-task';\r\nimport { Dispatch } from 'react';\r\nimport { API_INITIAL_DATASETS, API_FULL_DATASETS, API_FILTERS, API_OPENSEARCH_DATASETS } from '../actionTypes';\r\nimport APIManager from '../../utilities/api-manager';\r\nimport { get, getConfig, dateDiff, getText } from '../../helpers';\r\nimport {\r\n mapDataBundleToDataProfileCard,\r\n mapDatasetToDataProfileCard,\r\n mapDatasetToDataProfile,\r\n mapDataBundleToDataProfile,\r\n mapDataBundleToRelatedDataset,\r\n mapDataBundleToIndustry,\r\n mapSearchResultToDataProfileCard\r\n} from '../../utilities/data-mappers';\r\n\r\nconst apiDataRefreshTime = getConfig('redux.cacheRefreshTimes.long');\r\n\r\n// get the intital datasets with only limited properties\r\nconst fetchInitialDataset = (): AppThunkAction => (dispatch, getState) => {\r\n const { datasets } = getState();\r\n const cachedResponse = get(datasets, 'all');\r\n const hasExpired = cachedResponse && (!cachedResponse.time ? true : dateDiff(cachedResponse.time) > apiDataRefreshTime);\r\n if (hasExpired) {\r\n const isDefaultLanguage = getText('isDefaultLanguage'); // making it local as SSR needs to fetch this for each store\r\n const fetchTask = APIManager.getDataCatalog().then(response => {\r\n const datasetNames = !isDefaultLanguage && response[2] ? response[2] : [];\r\n const BundleNames = !isDefaultLanguage && response[3] ? response[3] : [];\r\n const datasetCards: DataProfileCard[] = response[0].map((item: APIDataset) => mapDatasetToDataProfileCard(item, datasetNames));\r\n const dataBundleCards: DataProfileCard[] = response[1].map((item: APIDataBundleCard) => mapDataBundleToDataProfileCard(item, BundleNames));\r\n dispatch({ response: [...datasetCards, ...dataBundleCards], time: new Date(), type: API_INITIAL_DATASETS });\r\n });\r\n addTask(fetchTask);\r\n }\r\n};\r\n\r\n// get the intital datasets with only limited properties\r\nconst fetchOpenSearchDataset = (): AppThunkAction => (dispatch, getState) => {\r\n const { datasets } = getState();\r\n const cachedResponse = get(datasets, 'openSearch');\r\n const hasExpired = cachedResponse && (!cachedResponse.time ? true : dateDiff(cachedResponse.time) > apiDataRefreshTime);\r\n if (hasExpired) {\r\n const fetchTask = APIManager.search('', [], ['isType:Dataset OR isType:Bundle'])\r\n .then(res => {\r\n const dataProfileCards = get(res, 'data.hits.hits', []);\r\n // eslint-disable-next-line no-underscore-dangle\r\n const datasetprofileCards: DataProfileCard[] = dataProfileCards.map((item: Hit) => mapSearchResultToDataProfileCard(item._source));\r\n dispatch({ response: [...datasetprofileCards], time: new Date(), type: API_OPENSEARCH_DATASETS });\r\n })\r\n .catch(error => {\r\n if (!(error && error.message && error.message === 'Search canceled due to new request.')) {\r\n console.warn(error);\r\n }\r\n });\r\n addTask(fetchTask);\r\n }\r\n};\r\n\r\n// eslint-disable-next-line\r\nconst FetchDatasetsOrBundle = (id: string, isBundle: boolean, filters: any) => {\r\n if (isBundle) {\r\n return APIManager.getBundleDataById(id).then(BatchRes => {\r\n const dataProfiles: DataProfile[] = [];\r\n if (BatchRes) {\r\n if (BatchRes.length > 0) dataProfiles.push(mapDataBundleToDataProfile(BatchRes[0]));\r\n if (BatchRes.length > 1) dataProfiles.push(mapDataBundleToIndustry(BatchRes[1]));\r\n if (BatchRes.length > 2) dataProfiles.push(mapDataBundleToRelatedDataset(BatchRes[2]));\r\n }\r\n return { dataProfiles, filters };\r\n });\r\n }\r\n\r\n return APIManager.getBatchDataSetDetailsById(id).then(BatchRes => {\r\n const dataProfiles: DataProfile[] = BatchRes.map(dataset => mapDatasetToDataProfile(dataset));\r\n return { dataProfiles, filters };\r\n });\r\n};\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nconst dispatchFullDataset = (params: DatasetParams, state: AnonymousObject, dispatch: Dispatch) => {\r\n const { id, isBundle } = params;\r\n const { datasets, filters } = state;\r\n const cachedResponse = get(datasets, `full.${id}-${isBundle ? 'B' : 'D'}`, {});\r\n const hasExpired = cachedResponse && (!cachedResponse.response ? true : dateDiff(cachedResponse.response.cachedTime) > apiDataRefreshTime);\r\n\r\n if (!id || !cachedResponse || hasExpired) {\r\n const fetchTask = FetchDatasetsOrBundle(id, params.isBundle, filters).then(response => {\r\n dispatch({\r\n dataProfiles: response.dataProfiles,\r\n filters: response.filters,\r\n id: params.id,\r\n type: API_FULL_DATASETS\r\n });\r\n });\r\n addTask(fetchTask);\r\n }\r\n};\r\n\r\n// gets each full dataset\r\nconst fetchFullDatasetwithfilters = (params: DatasetParams): AppThunkAction => async (dispatch, getState) => {\r\n // need to pass filters as we need Industries and deleviry filted in full dataset to be shown\r\n // As filter is from diffrent reducer So, this is a way we can pass to other reducer\r\n const { filters } = getState();\r\n if (filters.time !== '') {\r\n dispatchFullDataset(params, getState(), dispatch);\r\n } else {\r\n const fetchTask = APIManager.getBatchFilters().then(response => {\r\n dispatch({ response, time: new Date(), type: API_FILTERS });\r\n dispatchFullDataset(params, getState(), dispatch);\r\n });\r\n addTask(fetchTask);\r\n }\r\n};\r\n\r\nexport { fetchInitialDataset, fetchFullDatasetwithfilters, fetchOpenSearchDataset };\r\n","import { createStore, combineReducers, applyMiddleware, compose, StoreEnhancer, AnyAction } from 'redux';\r\nimport thunkMiddleware, { ThunkMiddleware } from 'redux-thunk';\r\nimport update from 'react-addons-update';\r\nimport { devToolsEnhancer } from 'redux-devtools-extension/logOnlyInProduction';\r\nimport { reducerWithInitialState } from 'typescript-fsa-reducers';\r\nimport { throttle, getConfig, getText } from '../helpers';\r\nimport { loadState, saveState } from './web-storage';\r\nimport { CLEAR_STORE } from './actionTypes';\r\nimport SPGVariables from '../utilities/spg-variables';\r\n\r\nimport { reducer as userReducer, initialUserState } from './user/user.reducer';\r\nimport { reducer as datasetsReducer, initialDataSetState } from './datasets/datasets.reducer';\r\nimport { reducer as solutionsReducer, initialSolutionsState } from './solutions/solutions.reducer';\r\nimport { reducer as blueprintsReducer, initialBlueprintsState } from './blueprints/blueprints.reducer';\r\nimport { reducer as filterReducer, initialFiltersState } from './filters/filters.reducer';\r\nimport { reducer as errorsReducer, initialErrorState } from './errors/errors.reducer';\r\nimport { reducer as sharedReducer, initialSharedState } from './shared/shared.reducer';\r\nimport { reducer as queryBuilderReducer, initialQueryBuilderState } from './querybuilder/query-builder.reducer';\r\nimport { reducer as queryLibraryReducer, initialQueryLibraryState } from './querylibrary/querylibrary.reducer';\r\nimport { updateUserPreferenceManually } from './user/user.actions';\r\n\r\nconst spgVariables = SPGVariables();\r\nconst langCode = getText('langCode');\r\n\r\nexport declare const redux: RootStoreState;\r\n\r\nconst initialState = {\r\n version: `${spgVariables.BUILD_VERSION}-${langCode}`,\r\n user: initialUserState,\r\n datasets: initialDataSetState,\r\n solutions: initialSolutionsState,\r\n blueprints: initialBlueprintsState,\r\n filters: initialFiltersState,\r\n errors: initialErrorState,\r\n shared: initialSharedState,\r\n querybuilder: initialQueryBuilderState,\r\n querylibrary: initialQueryLibraryState\r\n};\r\n\r\nconst reducers = combineReducers({\r\n version: reducerWithInitialState(`${spgVariables.BUILD_VERSION}-${langCode}`),\r\n user: userReducer,\r\n datasets: datasetsReducer,\r\n solutions: solutionsReducer,\r\n blueprints: blueprintsReducer,\r\n filters: filterReducer,\r\n errors: errorsReducer,\r\n shared: sharedReducer,\r\n querybuilder: queryBuilderReducer,\r\n querylibrary: queryLibraryReducer\r\n});\r\n\r\nconst storeReducer = (state: RootStoreState = initialState, action: AnyAction) => {\r\n if (action.type === CLEAR_STORE) {\r\n return update(state, { $set: initialState });\r\n }\r\n return reducers(state, action);\r\n};\r\n\r\nconst thunk: ThunkMiddleware = thunkMiddleware;\r\nconst middlewareEnhancer = applyMiddleware(thunk);\r\n\r\nconst composedEnhancers: StoreEnhancer = compose(\r\n middlewareEnhancer,\r\n devToolsEnhancer({})\r\n);\r\n\r\nlet persistedState: {} | undefined;\r\n\r\nif (!spgVariables.IS_SERVER_REQUEST) {\r\n persistedState = process.env.REACT_APP_IGNORE_LOCALSTORAGE !== 'true' && !spgVariables.IS_CRAWLER_REQUEST ? loadState() : undefined;\r\n}\r\n\r\nif (!spgVariables.IS_SERVER_REQUEST && redux) {\r\n if (!(persistedState === undefined)) {\r\n persistedState = update(persistedState, { $merge: redux }) as RootStoreState;\r\n } else {\r\n persistedState = redux;\r\n }\r\n}\r\n// TODO remove this any\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nconst store = createStore(storeReducer, persistedState, composedEnhancers);\r\n\r\nif (!spgVariables.IS_CRAWLER_REQUEST && !spgVariables.IS_SERVER_REQUEST) {\r\n store.subscribe(() => saveState(store.getState()));\r\n}\r\n\r\nwindow.addEventListener('storage', () => {\r\n const bookmarkPreferenceFromLS = localStorage.getItem('bookmarkPreference');\r\n\r\n if (bookmarkPreferenceFromLS && bookmarkPreferenceFromLS !== JSON.stringify(store.getState().user.bookmarkPreference)) {\r\n store.dispatch(updateUserPreferenceManually.action(JSON.parse(bookmarkPreferenceFromLS)));\r\n localStorage.removeItem('bookmarkPreference');\r\n }\r\n});\r\n\r\nexport { store as default, initialState };\r\n","import Cryptr from 'cryptr';\r\nimport SPGVariables from '../utilities/spg-variables';\r\nimport { getText } from '../helpers';\r\n\r\nconst spgVariables = SPGVariables();\r\n\r\nconst secret = spgVariables.REFRESHTOKEN || 'TopSecretKey';\r\n\r\nconst cryptr = new Cryptr(secret.substr(0, 12));\r\n\r\nconst langCode = getText('langCode');\r\n\r\nconst loadState = () => {\r\n try {\r\n const serializedState = localStorage.getItem('state');\r\n const serializedSessionUserState = localStorage.getItem('stateUser');\r\n\r\n if (serializedState === null) return undefined;\r\n\r\n const stateObject: RootStoreState = JSON.parse(serializedState);\r\n\r\n if (stateObject.version === `${spgVariables.BUILD_VERSION}-${langCode}`) {\r\n if (serializedSessionUserState !== null) {\r\n try {\r\n const sessionStateObject: RootStoreState = JSON.parse(cryptr.decrypt(serializedSessionUserState));\r\n // const sessionStateObject: RootStoreState = JSON.parse(serializedSessionUserState);\r\n Object.assign(stateObject, { user: sessionStateObject });\r\n } catch {\r\n sessionStorage.removeItem('state');\r\n }\r\n }\r\n return stateObject;\r\n }\r\n if (stateObject.version.split('-')[0] === spgVariables.BUILD_VERSION && stateObject.version.split('-')[1] !== langCode) {\r\n localStorage.removeItem('state');\r\n return undefined;\r\n }\r\n\r\n localStorage.removeItem('state');\r\n sessionStorage.removeItem('state');\r\n return undefined;\r\n\r\n } catch {\r\n localStorage.removeItem('state');\r\n sessionStorage.removeItem('state');\r\n return undefined;\r\n }\r\n};\r\n\r\nconst saveState = (state: RootStoreState) => {\r\n try {\r\n const {\r\n user,\r\n errors, // eslint-disable-line @typescript-eslint/no-unused-vars\r\n ...rest\r\n } = state;\r\n\r\n const serializedState = JSON.stringify(rest);\r\n const serializedUserState = cryptr.encrypt(JSON.stringify(user));\r\n if (JSON.stringify(user) !== localStorage.getItem('stateUser')) {\r\n localStorage.setItem('state', serializedState);\r\n localStorage.setItem('stateUser', serializedUserState);\r\n }\r\n } catch {\r\n // pass\r\n }\r\n};\r\n\r\nexport { loadState, saveState };\r\n","import { addTask } from 'domain-task';\r\nimport { get, getConfig, dateDiff, getText } from '../../helpers';\r\nimport APIManager from '../../utilities/api-manager';\r\nimport { API_INITIAL_SOLUTIONS, API_FULL_SOLUTION } from '../actionTypes';\r\n\r\nconst apiDataRefreshTime = getConfig('redux.cacheRefreshTimes.long');\r\n\r\nconst fetchInitialSolutions = (): AppThunkAction => (dispatch, getState) => {\r\n const { solutions } = getState();\r\n const cachedResponse = get(solutions, 'all');\r\n const hasExpired = cachedResponse && (!cachedResponse.time ? true : dateDiff(cachedResponse.time) > apiDataRefreshTime);\r\n if (hasExpired) {\r\n const isDefaultLanguage = getText('isDefaultLanguage'); // making it local as SSR needs to fetch this for each store\r\n\r\n const fetchTask = APIManager.getSolutions().then(response => {\r\n let apiSolutions = response[0];\r\n if (!isDefaultLanguage && response.length > 1) {\r\n apiSolutions = response[0].map((item: APISolution) => {\r\n const nameitem = response[1].find((resitem: { KeyPlatformService: string }) => resitem.KeyPlatformService === item.KeyPlatformService);\r\n item.AbsoluteSolutionName = nameitem && nameitem.MktplaceSolutionName ? nameitem.MktplaceSolutionName : item.MktplaceSolutionName;\r\n return item;\r\n });\r\n }\r\n dispatch({ response: { value: apiSolutions }, time: new Date(), type: API_INITIAL_SOLUTIONS });\r\n });\r\n addTask(fetchTask);\r\n }\r\n};\r\n\r\nconst fetchFullSolution = (params: SolutionsParams): AppThunkAction => (dispatch, getState) => {\r\n const { solutions } = getState();\r\n const { id } = params;\r\n const cachedResponse = get(solutions, `full.${id}`, {});\r\n const hasExpired = cachedResponse && (!cachedResponse.response ? true : dateDiff(cachedResponse.response.CachedTime) > apiDataRefreshTime);\r\n if (!id || !cachedResponse || hasExpired) {\r\n const fetchTask = APIManager.getSolutionDetailsById(id).then(response => {\r\n dispatch({ response: { ...response.data, CachedTime: new Date() }, type: API_FULL_SOLUTION, id });\r\n });\r\n addTask(fetchTask);\r\n }\r\n};\r\n\r\n// eslint-disable-next-line import/prefer-default-export\r\nexport { fetchInitialSolutions, fetchFullSolution };\r\n","import { addTask } from 'domain-task';\r\nimport { get, getConfig, dateDiff, getText } from '../../helpers';\r\nimport APIManager from '../../utilities/api-manager';\r\nimport { API_FULL_BLUEPRINT, API_INITIAL_BLUEPRINTS } from '../actionTypes';\r\n\r\nconst apiDataRefreshTime = getConfig('redux.cacheRefreshTimes.long');\r\n\r\nconst fetchInitialBlueprints = (): AppThunkAction => (dispatch, getState) => {\r\n const { blueprints } = getState();\r\n const cachedResponse = get(blueprints, 'all');\r\n const hasExpired = cachedResponse && (!cachedResponse.time ? true : dateDiff(cachedResponse.time) > apiDataRefreshTime);\r\n if (hasExpired) {\r\n const isDefaultLanguage = getText('isDefaultLanguage'); // making it local as SSR needs to fetch this for each store\r\n\r\n const fetchTask = APIManager.getBlueprints().then(response => {\r\n let apiBlueprints = response[0];\r\n if (!isDefaultLanguage && response.length > 1) {\r\n apiBlueprints = response[0].map((item: APIBlueprint) => {\r\n const nameitem = response[1].find((resitem: { KeyMarketplaceBlueprint: string }) => resitem.KeyMarketplaceBlueprint === item.KeyMarketplaceBlueprint);\r\n item.AbsoluteBlueprintName = nameitem && nameitem.MarketplaceBlueprintName ? nameitem.MarketplaceBlueprintName : item.MarketplaceBlueprintName;\r\n return item;\r\n });\r\n }\r\n dispatch({ response: apiBlueprints, time: new Date(), type: API_INITIAL_BLUEPRINTS } as BlueprintsResultAction);\r\n });\r\n addTask(fetchTask);\r\n }\r\n};\r\n\r\nconst fetchFullBlueprint = (params: BlueprintsParams): AppThunkAction => (dispatch, getState) => {\r\n const { blueprints } = getState();\r\n const { id } = params;\r\n const cachedResponse = get(blueprints, `full.${id}`, {});\r\n const hasExpired = cachedResponse && (!cachedResponse.response ? true : dateDiff(cachedResponse.response.CachedTime) > apiDataRefreshTime);\r\n if (!id || !cachedResponse || hasExpired) {\r\n const fetchTask = APIManager.getBlueprintDetailsById(id).then(response => {\r\n dispatch({ response: { ...response.data, CachedTime: new Date() }, type: API_FULL_BLUEPRINT, id });\r\n });\r\n addTask(fetchTask);\r\n }\r\n};\r\n\r\n// eslint-disable-next-line import/prefer-default-export\r\nexport { fetchFullBlueprint, fetchInitialBlueprints };\r\n","// import { getConfig } from '../helpers';\r\n// import SPGVariables from './spg-variables';\r\n\r\n// const spgVariables = SPGVariables();\r\n\r\n// const iKey = getConfig('utilities.aiInstrumentationKey');\r\n// const endpointUrl = `${spgVariables.APIBASE}/${getConfig('urls.mi.logging.logClientTelemetry')}`;\r\n\r\n// const config = {\r\n// instrumentationKey: iKey,\r\n// endpointUrl: `${endpointUrl}${new Date().getTime()}`,\r\n// overridePageViewDuration: true\r\n// };\r\n\r\nconst appInsights: { default: string; trackPageView: Function; flush: Function; trackException: Function; context: { telemetryTrace: { traceID: string } } } | null = null;\r\n\r\nexport default appInsights;\r\n","import * as React from 'react';\r\nimport { cn } from '../../../helpers';\r\nimport './loader.style.scss';\r\n\r\nexport default function Loader(props: LoaderProps) {\r\n const { minHeight, className } = props;\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n}\r\n","import { createTheme } from '@material-ui/core/styles';\r\n\r\nconst colors = {\r\n black: '#000000',\r\n spRed: '#D6002A',\r\n blue: '#6986B0',\r\n whiteSmoke: '#EAEAEA',\r\n lightGray: '#DEDEDE',\r\n grey80: '#CCCCCC',\r\n boulder: '#767676',\r\n white: '#FFFFFF'\r\n};\r\n\r\nconst theme = createTheme({\r\n typography: {\r\n fontFamily: ['\"Akk Pro\"', 'Arial', 'sans-serif'].join(',')\r\n },\r\n palette: {\r\n error: {\r\n main: colors.spRed\r\n }\r\n },\r\n props: {\r\n MuiButtonBase: {\r\n disableRipple: true\r\n }\r\n },\r\n breakpoints: {\r\n values: {\r\n xs: 0,\r\n sm: 768,\r\n md: 1024,\r\n lg: 1260,\r\n xl: 1440\r\n }\r\n },\r\n overrides: {\r\n MuiToolbar: {\r\n root: {\r\n backgroundColor: colors.grey80\r\n }\r\n },\r\n MuiBackdrop: {\r\n root: {\r\n backgroundColor: 'rgba(0, 0, 0, 0.75)'\r\n }\r\n },\r\n MuiPaper: {\r\n elevation1: {\r\n border: `1px solid ${colors.grey80}`,\r\n boxShadow: '0px 5px 10px rgba(0, 0, 0, 0.1)'\r\n },\r\n rounded: {\r\n borderRadius: '0'\r\n }\r\n },\r\n MuiIconButton: {\r\n root: {\r\n '&:hover': {\r\n backgroundColor: 'none'\r\n }\r\n },\r\n colorPrimary: {\r\n '&:hover': {\r\n backgroundColor: 'none'\r\n },\r\n '&$checked': {\r\n background: 'none'\r\n }\r\n },\r\n colorSecondary: {\r\n '&:hover': {\r\n backgroundColor: 'none'\r\n },\r\n '&$checked': {\r\n background: 'none'\r\n }\r\n }\r\n },\r\n MuiInputLabel: {\r\n root: {\r\n color: colors.boulder\r\n },\r\n asterisk: {\r\n color: colors.spRed\r\n }\r\n },\r\n MuiFormLabel: {\r\n root: {\r\n '&$focused': {\r\n color: colors.grey80\r\n }\r\n }\r\n },\r\n MuiFormHelperText: {\r\n root: {\r\n fontSize: '12px',\r\n '&$error': {\r\n color: colors.spRed\r\n }\r\n }\r\n },\r\n MuiSelect: {\r\n select: {\r\n paddingRight: '35px',\r\n '&:focus': {\r\n backgroundColor: 'none'\r\n }\r\n },\r\n selectMenu: {\r\n whiteSpace: 'normal'\r\n },\r\n iconFilled: {\r\n color: colors.boulder,\r\n right: '20px',\r\n top: 'calc(60% - 12px)'\r\n }\r\n },\r\n MuiMenuItem: {\r\n gutters: {\r\n paddingLeft: '16px !important'\r\n },\r\n root: {\r\n whiteSpace: 'normal'\r\n }\r\n },\r\n MuiFilledInput: {\r\n root: {\r\n backgroundColor: colors.white,\r\n borderTopLeftRadius: '0',\r\n borderTopRightRadius: '0',\r\n borderRight: `1px solid ${colors.lightGray}`,\r\n borderLeft: `1px solid ${colors.lightGray}`,\r\n borderTop: `1px solid ${colors.lightGray}`,\r\n color: colors.boulder,\r\n\r\n '&:hover': {\r\n backgroundColor: colors.white\r\n },\r\n '&$disabled': {\r\n backgroundColor: colors.whiteSmoke,\r\n color: colors.boulder\r\n }\r\n },\r\n input: {\r\n color: colors.black\r\n },\r\n multiline: {\r\n paddingBottom: '7px'\r\n },\r\n underline: {\r\n '&:before': {\r\n borderBottom: `2px solid ${colors.grey80}`\r\n },\r\n '&:after': {\r\n borderBottom: `2px solid ${colors.black}`\r\n },\r\n '&$focused': {\r\n backgroundColor: colors.white,\r\n '&:after': {\r\n borderBottom: `2px solid ${colors.black}`\r\n }\r\n },\r\n '&:hover': {\r\n '&:before': {\r\n borderBottom: `2px solid ${colors.grey80}`\r\n }\r\n },\r\n '&$disabled': {\r\n '&:before': {\r\n borderBottomStyle: 'solid'\r\n }\r\n }\r\n }\r\n },\r\n MuiInputBase: {\r\n inputMultiline: {\r\n resize: 'vertical'\r\n },\r\n input: {\r\n '&$disabled': {\r\n color: colors.boulder\r\n }\r\n }\r\n },\r\n MuiCheckbox: {\r\n colorPrimary: {\r\n '&$checked': {\r\n color: colors.spRed,\r\n '&:hover': {\r\n backgroundColor: 'none'\r\n }\r\n }\r\n },\r\n colorSecondary: {\r\n '&$checked': {\r\n color: colors.spRed,\r\n '&:hover': {\r\n backgroundColor: 'none'\r\n }\r\n }\r\n }\r\n },\r\n MuiRadio: {\r\n colorPrimary: {\r\n '&$checked': {\r\n color: colors.spRed,\r\n '&:hover': {\r\n backgroundColor: 'none'\r\n }\r\n }\r\n }\r\n },\r\n MuiExpansionPanel: {\r\n root: {\r\n boxShadow: 'none',\r\n margin: 0,\r\n '&$expanded': {\r\n margin: 0\r\n },\r\n '&:before': {\r\n content: 'none'\r\n }\r\n },\r\n rounded: {\r\n '&:last-child': {\r\n borderBottomLeftRadius: '0',\r\n borderBottomRightRadius: '0'\r\n }\r\n }\r\n },\r\n MuiExpansionPanelSummary: {\r\n root: {\r\n margin: 0,\r\n minHeight: 0,\r\n padding: 0,\r\n '&$expanded': {\r\n margin: 0,\r\n minHeight: 0\r\n }\r\n },\r\n content: {\r\n margin: 0,\r\n '&$expanded': {\r\n margin: 0\r\n }\r\n }\r\n },\r\n MuiExpansionPanelDetails: {\r\n root: {\r\n padding: 0\r\n }\r\n },\r\n MuiSnackbarContent: {\r\n message: {\r\n padding: '15px 0'\r\n }\r\n },\r\n MuiListItem: {\r\n root: {\r\n '&$selected': {\r\n backgroundColor: colors.grey80\r\n }\r\n },\r\n button: {\r\n '&:hover': {\r\n backgroundColor: colors.lightGray\r\n }\r\n }\r\n },\r\n MuiTab: {\r\n root: {\r\n textTransform: 'uppercase',\r\n '&$selected': {\r\n color: colors.spRed\r\n }\r\n },\r\n textColorInherit: {\r\n color: colors.black,\r\n opacity: 'initial'\r\n },\r\n wrapper: {\r\n fontWeight: 700\r\n }\r\n },\r\n MuiTabs: {\r\n indicator: {\r\n backgroundColor: colors.spRed,\r\n height: '4px'\r\n }\r\n }\r\n }\r\n});\r\n\r\nexport { colors, theme };\r\n","import * as React from 'react';\r\nimport { Helmet } from 'react-helmet';\r\nimport { getText, getConfig } from '../../../helpers';\r\nimport SPGVariables from '../../../utilities/spg-variables';\r\n\r\nconst language = getText('language');\r\nconst siteTitle = getText('generic.siteTitle');\r\nconst companyName = 'SPGlobal';\r\nconst twitterHandle = '@SPGlobal';\r\nconst defaultShareImage = getConfig('components.defaultShareImage');\r\nconst defaultLDStructureType = getConfig('components.defaultLDStructureType');\r\nconst baseUrl = getText('baseUrl');\r\nconst langCode = getText('langCode');\r\nconst spgVariables = SPGVariables();\r\nconst supportedLangs = spgVariables.SUPPORTED_LANGUAGES;\r\n\r\nconst additionalSchema = `,\"creator\":\r\n {\r\n \"@type\": \"Organization\",\r\n \"name\": \"S&P Global\",\r\n \"url\": \"${baseUrl}\",\r\n \"contactPoint\": {\r\n \"@type\": \"ContactPoint\",\r\n \"contactType\": \"support\",\r\n \"telephone\": \"+1-877-863-1306\",\r\n \"email\": \"support.mi@spglobal.com\"\r\n }\r\n }`;\r\n\r\nconst getAlternateLinks = (metaData: MetaDataProps) => {\r\n const alternateLinks = supportedLangs.map(langauge => (\r\n \r\n ));\r\n alternateLinks.push();\r\n return alternateLinks;\r\n};\r\n\r\nconst HelmetManager = (props: HelmetManagerProps) => {\r\n const { metaData, noIndex } = props;\r\n const fullTitle = metaData.title ? `${metaData.title} | ${siteTitle}` : siteTitle;\r\n const type = metaData.type ? metaData.type : defaultLDStructureType;\r\n const shareImage = metaData.image ? metaData.image : defaultShareImage;\r\n const Window = window as AnonymousObject;\r\n\r\n // GA logic\r\n React.useEffect(() => {\r\n if (Window.dataLayer) {\r\n Window.dataLayer.push({\r\n event: 'pageview',\r\n virtualPageTitle: fullTitle,\r\n virtualPageUrl: window.location.href\r\n });\r\n }\r\n }, [fullTitle]);\r\n\r\n return (\r\n \r\n {fullTitle}\r\n \r\n\r\n \r\n {getAlternateLinks(metaData)}\r\n {noIndex && }\r\n\r\n {/* Schema data */}\r\n \r\n \r\n \r\n\r\n {/* Open Graph data */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {/* not zoom in input elements in mobile Safari-browser */}\r\n \r\n\r\n {/* Twitter Card data */}\r\n \r\n \r\n\r\n {/* Linked data */}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default HelmetManager;\r\n","import * as React from 'react';\r\nimport CustomLink from '../custom-link';\r\nimport HtmlContent from '../html-content';\r\n\r\nfunction Popup(props: PopUpProps) {\r\n const { title, content, link, icon } = props;\r\n return (\r\n
\r\n
\r\n {\r\n icon && icon\r\n }\r\n

{title}

\r\n
\r\n
\r\n \r\n
\r\n {link && ((link.url !== '' && link.text !== '') && (\r\n \r\n ))}\r\n
\r\n );\r\n}\r\n\r\nexport default React.memo(Popup);\r\n","import * as React from 'react';\r\nimport { cn } from '../../../helpers';\r\n\r\nexport default function Spinner(props: SpinnerProps) {\r\n const { className, disable } = props;\r\n return ;\r\n}\r\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_410_167005)\"\n}, React.createElement(\"rect\", {\n width: 37,\n height: 37,\n rx: 18.5,\n fill: \"white\"\n}), React.createElement(\"path\", {\n d: \"M34.1296 6.08044C31.3157 6.44784 28.5149 7.12297 25.7767 8.12287\",\n stroke: \"#CCCCCC\",\n strokeWidth: 4.61628,\n strokeMiterlimit: 200\n}), React.createElement(\"path\", {\n d: \"M10.252 18.4819C8.28903 20.6186 6.59003 22.9479 5.16792 25.4168\",\n stroke: \"#CCCCCC\",\n strokeWidth: 4.61628,\n strokeMiterlimit: 200\n}), React.createElement(\"path\", {\n d: \"M21.1026 10.1854C20.5871 10.4533 20.0752 10.731 19.5666 11.0246C17.5484 12.1898 15.6756 13.5071 13.9481 14.9525\",\n stroke: \"#D6002A\",\n strokeWidth: 4.68859,\n strokeMiterlimit: 200\n}), React.createElement(\"path\", {\n d: \"M2.91016 30C1.81009 32.6558 1.00149 35.4248 0.501165 38.2539\",\n stroke: \"#CCCCCC\",\n strokeWidth: 4.61628,\n strokeMiterlimit: 200\n}), React.createElement(\"path\", {\n d: \"M45.9266 14.994C40.3058 13.7419 34.3246 14.0501 28.6834 16.1113\",\n stroke: \"#CCCCCC\",\n strokeWidth: 4.61628,\n strokeMiterlimit: 200\n}), React.createElement(\"path\", {\n d: \"M25.0202 17.7285C24.6158 17.9381 24.2142 18.1561 23.8156 18.3863C18.9524 21.194 15.1439 25.128 12.5297 29.6673\",\n stroke: \"black\",\n strokeWidth: 4.61628,\n strokeMiterlimit: 200\n}), React.createElement(\"path\", {\n d: \"M10.7617 33.2603C8.53312 38.6358 7.83631 44.6003 8.86512 50.4351\",\n stroke: \"#CCCCCC\",\n strokeWidth: 4.61628,\n strokeMiterlimit: 200\n}), React.createElement(\"path\", {\n d: \"M44.0806 23.2919C38.8137 22.117 33.1082 22.8373 28.0665 25.7481C19.7113 30.5719 15.6543 39.9795 17.2382 48.9601\",\n stroke: \"#767676\",\n strokeWidth: 4.61628,\n strokeMiterlimit: 200\n}));\nvar _ref3 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 0.5,\n y: 0.5,\n width: 36,\n height: 36,\n rx: 18,\n stroke: \"#CCCCCC\"\n});\nvar _ref4 = /*#__PURE__*/React.createElement(\"defs\", null, React.createElement(\"clipPath\", {\n id: \"clip0_410_167005\"\n}, React.createElement(\"rect\", {\n width: 37,\n height: 37,\n rx: 18.5,\n fill: \"white\"\n})));\nvar SvgProductFinderButtonImg = function SvgProductFinderButtonImg(_ref) {\n var svgRef = _ref.svgRef,\n props = _objectWithoutProperties(_ref, [\"svgRef\"]);\n return React.createElement(\"svg\", _extends({\n width: 37,\n height: 37,\n viewBox: \"0 0 37 37\",\n fill: \"none\",\n ref: svgRef\n }, props), _ref2, _ref3, _ref4);\n};\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return React.createElement(SvgProductFinderButtonImg, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/product-finder-button-img.319db219.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_410_167005)\"\n}, React.createElement(\"rect\", {\n width: 37,\n height: 37,\n rx: 18.5,\n fill: \"white\"\n}), React.createElement(\"path\", {\n d: \"M34.1296 6.08044C31.3157 6.44784 28.5149 7.12297 25.7767 8.12287\",\n stroke: \"#CCCCCC\",\n strokeWidth: 4.61628,\n strokeMiterlimit: 200\n}), React.createElement(\"path\", {\n d: \"M10.252 18.4819C8.28903 20.6186 6.59003 22.9479 5.16792 25.4168\",\n stroke: \"#CCCCCC\",\n strokeWidth: 4.61628,\n strokeMiterlimit: 200\n}), React.createElement(\"path\", {\n d: \"M21.1026 10.1854C20.5871 10.4533 20.0752 10.731 19.5666 11.0246C17.5484 12.1898 15.6756 13.5071 13.9481 14.9525\",\n stroke: \"#D6002A\",\n strokeWidth: 4.68859,\n strokeMiterlimit: 200\n}), React.createElement(\"path\", {\n d: \"M2.91016 30C1.81009 32.6558 1.00149 35.4248 0.501165 38.2539\",\n stroke: \"#CCCCCC\",\n strokeWidth: 4.61628,\n strokeMiterlimit: 200\n}), React.createElement(\"path\", {\n d: \"M45.9266 14.994C40.3058 13.7419 34.3246 14.0501 28.6834 16.1113\",\n stroke: \"#CCCCCC\",\n strokeWidth: 4.61628,\n strokeMiterlimit: 200\n}), React.createElement(\"path\", {\n d: \"M25.0202 17.7285C24.6158 17.9381 24.2142 18.1561 23.8156 18.3863C18.9524 21.194 15.1439 25.128 12.5297 29.6673\",\n stroke: \"black\",\n strokeWidth: 4.61628,\n strokeMiterlimit: 200\n}), React.createElement(\"path\", {\n d: \"M10.7617 33.2603C8.53312 38.6358 7.83631 44.6003 8.86512 50.4351\",\n stroke: \"#CCCCCC\",\n strokeWidth: 4.61628,\n strokeMiterlimit: 200\n}), React.createElement(\"path\", {\n d: \"M44.0806 23.2919C38.8137 22.117 33.1082 22.8373 28.0665 25.7481C19.7113 30.5719 15.6543 39.9795 17.2382 48.9601\",\n stroke: \"#767676\",\n strokeWidth: 4.61628,\n strokeMiterlimit: 200\n}));\nvar _ref3 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 0.5,\n y: 0.5,\n width: 36,\n height: 36,\n rx: 18,\n stroke: \"#CCCCCC\"\n});\nvar _ref4 = /*#__PURE__*/React.createElement(\"defs\", null, React.createElement(\"clipPath\", {\n id: \"clip0_410_167005\"\n}, React.createElement(\"rect\", {\n width: 37,\n height: 37,\n rx: 18.5,\n fill: \"white\"\n})));\nvar SvgProductFinder = function SvgProductFinder(_ref) {\n var svgRef = _ref.svgRef,\n props = _objectWithoutProperties(_ref, [\"svgRef\"]);\n return React.createElement(\"svg\", _extends({\n width: 37,\n height: 37,\n viewBox: \"0 0 37 37\",\n fill: \"none\",\n ref: svgRef\n }, props), _ref2, _ref3, _ref4);\n};\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return React.createElement(SvgProductFinder, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/product-finder.319db219.svg\";\nexport { ForwardRef as ReactComponent };","import * as React from 'react';\r\nimport { Link, NavLink } from 'react-router-dom';\r\nimport { ReactComponent as CaretRightIcon } from '../../../assets/svg/icons/caret-right.svg';\r\nimport { ReactComponent as ExternalLinkIcon } from '../../../assets/svg/icons/external-link.svg';\r\nimport { ReactComponent as SpImage } from '../../../assets/svg/product-finder-button-img.svg';\r\nimport { cn, getText, sanitizer } from '../../../helpers';\r\nimport { ReactComponent as DsImage } from '../../../assets/svg/icons/datasets-filter.svg';\r\nimport { ReactComponent as ProductFinderImage } from '../../../assets/svg/icons/product-finder.svg';\r\nimport { ReactComponent as QueryLibraryImage } from '../../../assets/svg/icons/query-library.svg';\r\n\r\nfunction imgOnButton() {\r\n return (\r\n \r\n\r\n );\r\n}\r\n\r\nfunction filtersButtonIcon(filterName: string) {\r\n switch (filterName) {\r\n case 'Product Finder':\r\n return ;\r\n case 'Query Library':\r\n return ;\r\n case 'Marketplace – Support Center':\r\n return ;\r\n case 'Commodity Insights – Support Center':\r\n return ;\r\n case 'Data Partners':\r\n return ;\r\n case 'FAQ':\r\n return ;\r\n default:\r\n return ;\r\n }\r\n}\r\n\r\nfunction renderExternalLink(\r\n linkTextClass: string,\r\n linkClass: string,\r\n target: string,\r\n url: string,\r\n text: string,\r\n title = '',\r\n hasIcon: boolean | undefined,\r\n hasSVGIcon: boolean | undefined,\r\n renderTitle: boolean | undefined,\r\n focusRef?: (element: HTMLAnchorElement) => void,\r\n onClick?: (event: React.SyntheticEvent) => void,\r\n id = 'external-link'\r\n) {\r\n const linkInner = (\r\n <>\r\n {hasSVGIcon ? filtersButtonIcon(text) : null}\r\n {text}\r\n {/* support mailto:link is external, but design requirement is to show internal arrow-icon for it */}\r\n {hasIcon && (!url.includes('mailto:marketplacesupport') ? : )}\r\n \r\n );\r\n\r\n return (\r\n \r\n {title && renderTitle && (\r\n <>\r\n {title}\r\n {linkInner}\r\n \r\n )}\r\n {!renderTitle && linkInner}\r\n \r\n );\r\n}\r\n\r\nfunction renderInternalLink(\r\n linkTextClass: string,\r\n linkClass: string,\r\n text: string,\r\n title = '',\r\n hasIcon: boolean | undefined,\r\n url: string,\r\n activeClassName?: string,\r\n focusRef?: (element: HTMLAnchorElement) => void,\r\n onClick?: (event: React.SyntheticEvent) => void,\r\n id = 'internal-link',\r\n isDisabled?: boolean | true,\r\n hasImage?: boolean | true,\r\n htmlText?: boolean | true,\r\n hasSVGIcon?: boolean | true,\r\n isLoginLink?: boolean | false\r\n) {\r\n const langCode = getText('langCode');\r\n const linkUrl = isLoginLink ? url : `/${langCode}${url}`;\r\n if (activeClassName !== undefined) {\r\n return (\r\n isDisabled ?\r\n {text} :\r\n \r\n {hasImage ? imgOnButton() : null}\r\n {hasSVGIcon ? filtersButtonIcon(text) : null}\r\n {htmlText ?\r\n
', {}) }} /> :\r\n {text}}\r\n {hasIcon && }\r\n \r\n );\r\n }\r\n return (\r\n isDisabled ?\r\n sample :\r\n \r\n {hasImage ? imgOnButton() : null}\r\n {hasSVGIcon ? filtersButtonIcon(text) : null}\r\n {htmlText ?\r\n
:\r\n {text}}\r\n {hasIcon && }\r\n \r\n );\r\n}\r\n\r\nfunction CustomLink({\r\n target = '_blank',\r\n url,\r\n text,\r\n title = '',\r\n hasIcon,\r\n isDisabled,\r\n linkTheme,\r\n buttonTheme = 'secondary',\r\n isButton,\r\n isUpperCase,\r\n hasUnderline,\r\n noWrap,\r\n isFullWidth,\r\n className,\r\n activeClassName,\r\n onClick,\r\n focusRef,\r\n renderTitle,\r\n id = 'link',\r\n hasImage,\r\n htmlText,\r\n hasSVGIcon,\r\n isMobile,\r\n isLoginLink\r\n}: CustomLinkProps) {\r\n const isExternalLink = url ? url.match(/^(ftp|http|https):\\/\\/[^ \"]+$/g) : '';\r\n const isEmailLink = url ? url.match(/^(mailto):/g) : '';\r\n\r\n const linkClassTheme = cn('links', className, {\r\n [`links--${linkTheme}`]: linkTheme,\r\n 'links--uppercase': isUpperCase,\r\n 'links--underline': hasUnderline,\r\n 'links--icon': hasIcon,\r\n 'links--fullwidth': isFullWidth,\r\n 'links--nowrap': noWrap\r\n });\r\n\r\n const buttonClassTheme = cn('button', className, {\r\n [`button--${buttonTheme}`]: buttonTheme,\r\n 'button--uppercase': isUpperCase,\r\n 'button--icon': hasIcon,\r\n 'button--fullwidth': isFullWidth,\r\n 'button--nowrap': noWrap,\r\n 'button--new-button-style': hasImage\r\n });\r\n\r\n const linkTextClass = cn('links__text', {\r\n 'links__text--nowrap': noWrap,\r\n 'links--disabled': isDisabled,\r\n 'links--newlink': hasImage,\r\n 'links--boldtext': isMobile\r\n });\r\n\r\n const handleClick = (event: React.SyntheticEvent) => {\r\n if (onClick) onClick(event);\r\n };\r\n const linkClass = isButton ? buttonClassTheme : linkClassTheme;\r\n\r\n if (isExternalLink || isEmailLink) {\r\n return renderExternalLink(linkTextClass, linkClass, target, url, text, title, hasIcon, hasSVGIcon, renderTitle, focusRef, handleClick, id);\r\n }\r\n return renderInternalLink(linkTextClass, linkClass, text, title, hasIcon, url, activeClassName, focusRef, handleClick, id, isDisabled, hasImage, htmlText, hasSVGIcon, isLoginLink);\r\n}\r\n\r\nexport default React.memo(CustomLink);\r\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.5 3.75L9 20.25H10.5L15 3.75H13.5ZM5.95275 4.8045L0.89025 11.5545L0.5625 12L0.891 12.4455L5.9535 19.1955L7.17225 18.3045L2.4375 12L7.17225 5.6955L5.95275 4.8045ZM18.0465 4.8045L16.8278 5.6955L21.5625 12L16.8278 18.3045L18.0465 19.1955L23.109 12.4455L23.4375 12L23.109 11.5545L18.0465 4.8045Z\"\n});\nvar SvgQueryLibrary = function SvgQueryLibrary(_ref) {\n var svgRef = _ref.svgRef,\n props = _objectWithoutProperties(_ref, [\"svgRef\"]);\n return React.createElement(\"svg\", _extends({\n width: 18,\n height: 18,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n ref: svgRef\n }, props), _ref2);\n};\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return React.createElement(SvgQueryLibrary, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/query-library.4718a32a.svg\";\nexport { ForwardRef as ReactComponent };","export default (url: string) => {\r\n const match = url.match(/\\(.+\\)/);\r\n if (match && match[0]) {\r\n return match[0].substr(1, match[0].length - 2);\r\n }\r\n return 0;\r\n};\r\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15 27.143L22 34l14-15\",\n stroke: \"currentColor\",\n strokeWidth: 3\n});\nvar _ref3 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 26,\n cy: 26,\n r: 24.5,\n stroke: \"currentColor\",\n strokeWidth: 3\n});\nvar SvgSuccess = function SvgSuccess(_ref) {\n var svgRef = _ref.svgRef,\n props = _objectWithoutProperties(_ref, [\"svgRef\"]);\n return React.createElement(\"svg\", _extends({\n width: 52,\n height: 52,\n fill: \"none\",\n ref: svgRef\n }, props), _ref2, _ref3);\n};\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return React.createElement(SvgSuccess, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/success.92303aa5.svg\";\nexport { ForwardRef as ReactComponent };","import * as React from 'react';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport { createStyles, Theme, makeStyles } from '@material-ui/core/styles';\r\nimport { cn, removeInvalidCharacters } from '../../../../helpers';\r\n\r\nconst useStyles = makeStyles((theme: Theme) => {\r\n return createStyles({\r\n errorMessage: {\r\n color: theme.palette.error.main,\r\n display: 'block',\r\n textAlign: 'right',\r\n fontSize: theme.typography.pxToRem(12)\r\n }\r\n });\r\n});\r\n\r\nconst textFieldInput = function TextFieldInput({\r\n autoFocus,\r\n className,\r\n controlledValue,\r\n defaultValue,\r\n errorObject,\r\n helpText,\r\n inputProps,\r\n isDisabled,\r\n isFullWidth = true,\r\n isRequired,\r\n label,\r\n name,\r\n onChange,\r\n type = 'text',\r\n hasOtherField,\r\n placeHolder,\r\n autocomplete = ''\r\n}: TextFieldInputProps) {\r\n const classes = useStyles(0);\r\n\r\n const [value, setValue] = React.useState(defaultValue || '');\r\n\r\n function handleChange(event: React.ChangeEvent<{ name?: string | undefined; value: unknown }>) {\r\n const inputVal = event.target.value as string;\r\n const update: string = removeInvalidCharacters(inputVal);\r\n const alphanumreg = /^[a-zA-Z0-9,. ]*$/;\r\n if (hasOtherField && (alphanumreg.test(inputVal))) {\r\n setValue(update);\r\n onChange(name, update);\r\n }\r\n if (!hasOtherField) {\r\n setValue(update);\r\n onChange(name, update);\r\n }\r\n\r\n }\r\n\r\n function validate(el: any, isValid: boolean, errorMessage: any, opts: any) {\r\n const removeOnly = opts && opts.removeOnly;\r\n const elField = el.closest('.field');\r\n const elError = elField && elField.querySelector(`#${name}`);\r\n\r\n if (isValid && !opts.addOnly) {\r\n // elError.innerText = ''; // It's valid\r\n el.removeAttribute('aria-invalid');\r\n return true;\r\n } if (!removeOnly && elError) {\r\n el.setAttribute('aria-invalid', 'true');\r\n elError.innerText = `${name} is required `;\r\n return false;\r\n }\r\n return false;\r\n }\r\n\r\n function validateFn(el: any, opts: any) {\r\n const isEmpty = el.value === '';\r\n if (isEmpty && errorObject) {\r\n validate(el, !isEmpty, errorObject.message, opts);\r\n }\r\n }\r\n\r\n\r\n function handleBlur(event: any) {\r\n validateFn(event.target, { live: true });\r\n }\r\n\r\n\r\n return (\r\n
\r\n \r\n {errorObject && {errorObject.message}}\r\n
\r\n );\r\n};\r\nexport default React.memo(textFieldInput);\r\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7 2L7.70711 1.29289L7 0.585786L6.29289 1.29289L7 2ZM6.29289 2.70711L12.2929 8.70711L13.7071 7.29289L7.70711 1.29289L6.29289 2.70711ZM1.70711 8.70711L7.70711 2.70711L6.29289 1.29289L0.292893 7.29289L1.70711 8.70711Z\",\n fill: \"currentColor\"\n});\nvar SvgCaretUp = function SvgCaretUp(_ref) {\n var svgRef = _ref.svgRef,\n props = _objectWithoutProperties(_ref, [\"svgRef\"]);\n return React.createElement(\"svg\", _extends({\n width: 14,\n height: 9,\n viewBox: \"0 0 14 9\",\n fill: \"none\",\n ref: svgRef\n }, props), _ref2);\n};\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return React.createElement(SvgCaretUp, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/caret-up.638f5e11.svg\";\nexport { ForwardRef as ReactComponent };","import * as React from 'react';\r\nimport CheckCircleIcon from '@material-ui/icons/CheckCircle';\r\nimport ErrorIcon from '@material-ui/icons/Error';\r\nimport InfoIcon from '@material-ui/icons/Info';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport { amber, green } from '@material-ui/core/colors';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport Snackbar from '@material-ui/core/Snackbar';\r\nimport SnackbarContent from '@material-ui/core/SnackbarContent';\r\nimport WarningIcon from '@material-ui/icons/Warning';\r\nimport { makeStyles, Theme } from '@material-ui/core/styles';\r\nimport { cn } from '../../../helpers';\r\n\r\nconst variantIcon = {\r\n success: CheckCircleIcon,\r\n warning: WarningIcon,\r\n error: ErrorIcon,\r\n info: InfoIcon\r\n};\r\n\r\nconst useStyles = makeStyles((theme: Theme) => ({\r\n container: {\r\n alignItems: 'start'\r\n },\r\n success: {\r\n backgroundColor: green[600] // default Material-UI colors can be changed later for branding\r\n },\r\n error: {\r\n backgroundColor: '#D6002A'\r\n },\r\n info: {\r\n backgroundColor: theme.palette.primary.main // default Material-UI colors can be changed later for branding\r\n },\r\n warning: {\r\n backgroundColor: amber[700] // default Material-UI colors can be changed later for branding\r\n },\r\n icon: {\r\n fontSize: theme.typography.pxToRem(25)\r\n },\r\n iconClose: {\r\n padding: theme.typography.pxToRem(5)\r\n },\r\n iconVariant: {\r\n marginRight: theme.typography.pxToRem(15)\r\n },\r\n message: {\r\n display: 'flex',\r\n maxWidth: '300px'\r\n }\r\n}));\r\n\r\nfunction Notification({ className, message, variant, position, onClosed }: NotificationProps) {\r\n const classes = useStyles();\r\n const Icon = variantIcon[variant];\r\n const [open, setClose] = React.useState(true);\r\n\r\n const handleClose = (event?: React.SyntheticEvent, reason?: string) => {\r\n if (reason === 'clickaway') return;\r\n setClose(false);\r\n if (onClosed) onClosed();\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n {message}\r\n \r\n }\r\n action={[\r\n \r\n \r\n \r\n ]}\r\n />\r\n \r\n
\r\n );\r\n}\r\n\r\nexport default React.memo(Notification);\r\n","import { createBrowserHistory } from 'history';\r\n\r\nconst history = createBrowserHistory();\r\n\r\nconst allowResetScrollOnPage = ['query-library'];\r\n\r\n// cache the current page\r\nlet previousLocation = {\r\n pathname: '',\r\n search: ''\r\n};\r\n\r\nfunction resetScroll() {\r\n window.scrollTo(0, 0);\r\n}\r\n\r\nhistory.listen(location => {\r\n const hasPageChanged = (previousLocation.pathname && previousLocation.pathname !== location.pathname) || location.search.length === 0;\r\n const resetScrollOnPage = location.search.length > 0 && allowResetScrollOnPage.filter(page => location.pathname.indexOf(page) > -1).length > 0;\r\n const hasHash = location.hash !== '';\r\n\r\n if ((hasPageChanged && !hasHash) || resetScrollOnPage) setTimeout(resetScroll, 1);\r\n\r\n // update cached page\r\n previousLocation = location;\r\n});\r\n\r\nexport default history;\r\n","export { default } from './custom-link';\r\n","import { addTask } from 'domain-task';\r\nimport { get, getConfig, dateDiff, getText } from '../../helpers';\r\nimport APIManager from '../../utilities/api-manager';\r\nimport { API_FULL_QUERYLIBRARY, API_QL_RELATED_QUERIES } from '../actionTypes';\r\n\r\nconst apiDataRefreshTime = getConfig('redux.cacheRefreshTimes.long');\r\n\r\nconst fetchFullQueryLibrary = (params: QueryLibraryParams): AppThunkAction => (dispatch, getState) => {\r\n const { queryLibrary } = getState();\r\n const { id } = params;\r\n const cachedResponse = get(queryLibrary, `full.${id}`, {});\r\n const hasExpired = cachedResponse && (!cachedResponse.response ? true : dateDiff(cachedResponse.response.CachedTime) > apiDataRefreshTime);\r\n if (!id || !cachedResponse || hasExpired) {\r\n const fetchTask = APIManager.getQueryLibraryProfileById(id).then(response => {\r\n dispatch({ response: { ...response.data, CachedTime: new Date() }, type: API_FULL_QUERYLIBRARY, id });\r\n });\r\n addTask(fetchTask);\r\n }\r\n};\r\n\r\nconst fetchQueryLibraryRelatedQueries = (params: QueryLibraryParams): AppThunkAction => (dispatch, getState) => {\r\n const { queryLibrary } = getState();\r\n const { id } = params;\r\n const cachedResponse = get(queryLibrary, `relatedQueries.${id}`, {});\r\n const hasExpired = cachedResponse && (!cachedResponse.response ? true : dateDiff(cachedResponse.response.CachedTime) > apiDataRefreshTime);\r\n if (!id || !cachedResponse || hasExpired) {\r\n const fetchTask = APIManager.getQueryLibraryRelatedQueriesById(id).then(response => {\r\n dispatch({ response: { ...response.data, CachedTime: new Date() }, type: API_QL_RELATED_QUERIES, id });\r\n });\r\n addTask(fetchTask);\r\n }\r\n};\r\n\r\n// eslint-disable-next-line import/prefer-default-export\r\nexport { fetchFullQueryLibrary, fetchQueryLibraryRelatedQueries };\r\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M5.75 7.25H6.75H9.75V9.25H7.75V16.25H14.75V14.25H16.75V17.25V18.25H15.75H6.75H5.75V17.25V8.25V7.25ZM14.8357 7.75H12.2501V5.75H17.2501H18.2501V6.75V11.75H16.2501V9.16409L12.7071 12.7071L11.2928 11.2929L14.8357 7.75Z\",\n fill: \"currentColor\"\n});\nvar SvgExternalLink = function SvgExternalLink(_ref) {\n var svgRef = _ref.svgRef,\n props = _objectWithoutProperties(_ref, [\"svgRef\"]);\n return React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n ref: svgRef\n }, props), _ref2);\n};\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return React.createElement(SvgExternalLink, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/external-link.acfaced6.svg\";\nexport { ForwardRef as ReactComponent };","import * as React from 'react';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport { createStyles, makeStyles } from '@material-ui/core/styles';\r\nimport { cn } from '../../../../helpers';\r\n\r\nconst useStyles = makeStyles(\r\n createStyles({\r\n formField: {\r\n alignItems: 'start',\r\n },\r\n checkbox: {\r\n padding: '0 9px 0'\r\n }\r\n })\r\n);\r\n\r\nconst checkboxInput = function CheckboxInput({\r\n label,\r\n defaultValue,\r\n className,\r\n name,\r\n onChange\r\n}: CheckboxInputProps) {\r\n const classes = useStyles(0);\r\n\r\n const [value, setValue] = React.useState(defaultValue || false);\r\n\r\n function handleChange(event: object, checked: boolean) {\r\n setValue(checked);\r\n onChange(checked);\r\n }\r\n\r\n return (\r\n }\r\n label={label}\r\n className={cn(classes.formField, className)}\r\n data-testid={name}\r\n checked={value}\r\n />\r\n );\r\n};\r\n\r\nexport default React.memo(checkboxInput);\r\n","import actionCreatorFactory from 'typescript-fsa';\r\nimport { asyncFactory } from 'typescript-fsa-redux-thunk';\r\nimport { AxiosResponse } from 'axios';\r\nimport { USER_LOGGIN, USER_PROFILE, CLEAR_USER_PROFILE, TABLEAU_SESSION_CREATED, USER_PREFERENCE, UPDATE_USER_PREFERENCE, UPDATE_USER_PREFERENCE_MANUALLY } from '../actionTypes';\r\nimport APIManager from '../../utilities/api-manager';\r\nimport spgVars from '../../utilities/spg-variables';\r\nimport { get, getConfig, getPageTextsSection } from '../../helpers';\r\nimport keyPageIds from '../../utilities/key-pages';\r\n\r\nconst actionCreator = actionCreatorFactory();\r\n\r\nconst toggleLogInStatus = actionCreator(USER_LOGGIN);\r\n\r\nconst spgVariables = spgVars();\r\nconst Window = !spgVariables.IS_SERVER_REQUEST ? window as AnonymousObject : { dataLayer: [] };\r\nif (Window) Window.dataLayer = Window.dataLayer || [];\r\n\r\nconst toggleSessionCreate = actionCreator(TABLEAU_SESSION_CREATED);\r\n\r\nconst actionCreatorAsync = asyncFactory(actionCreator);\r\nlet dataUserProfileVersion = getPageTextsSection('', []);\r\nconst pageText = getConfig('pagetext.userProfileVersion');\r\nfunction setGTMdatalayer(userInfo: UserInfo) {\r\n if (Window) {\r\n Window.dataLayer.push({\r\n KeyOnlineUser: userInfo.KeyOnlineUser,\r\n SubscriberAccount: userInfo.SubscriberAccount,\r\n CompanyType: userInfo.CompanyType,\r\n PrimaryJobFunction: userInfo.PrimaryJobFunction,\r\n UserWebpartProfile: userInfo.UserWebpartProfile\r\n });\r\n }\r\n}\r\n\r\nconst addRemoveBookmarks = (key: string, kou: string, paramsList: BookmarkParams[], bookmarks: Bookmarks) => {\r\n paramsList.forEach(params => {\r\n const { action, type, bookmark } = params;\r\n if (action === 'add') {\r\n if (!(type in bookmarks)) bookmarks[type as keyof Bookmarks] = [];\r\n // verify is already added to bookmarks by other browser\r\n if (type === 'datasets' && bookmarks.datasets.filter(d => d.keyId === params.bookmark.keyId.toString()).length === 0) bookmarks.datasets.push(bookmark);\r\n if (type === 'solutions' && bookmarks.solutions.filter(d => d.keyId === params.bookmark.keyId).length === 0) bookmarks.solutions.push(bookmark);\r\n if (type === 'blueprints' && bookmarks.blueprints.filter(d => d.keyId === params.bookmark.keyId).length === 0) bookmarks.blueprints.push(bookmark);\r\n if (\r\n (type === 'queries' && !bookmarks.queries) ||\r\n (type === 'queries' && bookmarks.queries && bookmarks.queries.filter(d => d.keyId === params.bookmark.keyId.toString()).length === 0)\r\n ) {\r\n if (bookmarks.queries === undefined) bookmarks.queries = [];\r\n bookmarks.queries.push(bookmark);\r\n }\r\n } else if (action === 'remove') {\r\n if (type === 'datasets') bookmarks.datasets = bookmarks.datasets.filter(d => d.keyId !== bookmark.keyId.toString());\r\n if (type === 'solutions') bookmarks.solutions = bookmarks.solutions.filter(d => d.keyId !== bookmark.keyId);\r\n if (type === 'blueprints') bookmarks.blueprints = bookmarks.blueprints.filter(d => d.keyId !== bookmark.keyId);\r\n if (type === 'queries') bookmarks.queries = bookmarks.queries.filter(d => d.keyId !== bookmark.keyId.toString());\r\n }\r\n });\r\n return APIManager.updateUserPreferance(kou, bookmarks).then(createResponse => {\r\n // update redux back with the changes\r\n paramsList.forEach(params => {\r\n if (params.onSuccess) {\r\n params.onSuccess();\r\n }\r\n });\r\n return APIManager.getBookMarkPreferencesCMS(kou).then(response => {\r\n const newBookmarks: any = response.data.RequestJson || { datasets: [], solutions: [], queries: [], blueprints: [] };\r\n const bookmarkPrefer = { key, bookMarks: newBookmarks, bookmarksLoaded: true };\r\n localStorage.setItem('bookmarkPreference', JSON.stringify(bookmarkPrefer));\r\n return bookmarkPrefer;\r\n });\r\n });\r\n};\r\n\r\nconst fetchUserPreference = actionCreatorAsync(USER_PREFERENCE, (params, dispatch, getState) => {\r\n const state = getState();\r\n const bookmarkPreference = get(state, 'user.bookmarkPreference');\r\n const key = getConfig('common.keyBookmark');\r\n\r\n return APIManager.getPageTexts().then((pageResponse: AxiosResponse) => {\r\n let pageTextsData;\r\n if (pageResponse.data) {\r\n pageTextsData = pageResponse.data;\r\n }\r\n pageTextsData = pageTextsData && pageTextsData.filter(x => x.KeyOnlinePage === keyPageIds.userProfileVersion);\r\n if (pageTextsData) {\r\n dataUserProfileVersion = getPageTextsSection(pageText.headerSection, pageTextsData);\r\n }\r\n return APIManager.getUserInfo(dataUserProfileVersion.title).then(userInfo => {\r\n if (userInfo && userInfo.data) {\r\n const kou = userInfo.data.KeyOnlineUser;\r\n if (key && kou) {\r\n return APIManager.getBookMarkPreferencesCMS(kou).then(response => {\r\n return {\r\n key,\r\n // Testing bookmarks, actual on 28.08.2024\r\n // bookMarks: { datasets: [{ keyId: '1724327246', name: 'short-sentiment-factors', created: '' }], solutions: [{ keyId: '03f3c047-dcac-4fa7-a1ef-fb48a4d9b75d', name: 's-p-global-marketplace-catalog-api', created: '' }], blueprints: [{ keyId: '8de48fc7-b79c-4fca-9c31-485df81af83f', name: 'python-automation', created: '' }], queries: [{ keyId: '612', name: 'API Request To Return The Top 10 Professionals Of The Passed In Identifier', created: '' }] },\r\n bookMarks: response.data.RequestJson || { datasets: [], solutions: [], queries: [], blueprints: [] },\r\n bookmarksLoaded: true\r\n };\r\n });\r\n }\r\n }\r\n return bookmarkPreference;\r\n });\r\n });\r\n});\r\n\r\nconst updateUserPreference = actionCreatorAsync(UPDATE_USER_PREFERENCE, (params, dispatch, getState) => {\r\n const state = getState();\r\n const user = get(state, 'user');\r\n const { bookmarkPreference, userInfo } = user;\r\n const { key } = bookmarkPreference;\r\n if (user.isLoggedIn && userInfo) {\r\n const kou = userInfo.KeyOnlineUser;\r\n // get latest bookmarks before updating it\r\n return APIManager.getBookMarkPreferencesCMS(kou).then(response => {\r\n const bookmarks: any = response.data.RequestJson;\r\n return addRemoveBookmarks(key, kou, params, bookmarks);\r\n });\r\n }\r\n // Return the existing bookmarkPreference if the user info is not available\r\n return bookmarkPreference;\r\n});\r\n\r\nconst updateUserPreferenceManually = actionCreatorAsync(UPDATE_USER_PREFERENCE_MANUALLY, params => {\r\n return params;\r\n});\r\n\r\n// get the intital datasets with only limited properties\r\nconst fetchUserProfile = actionCreatorAsync(\r\n USER_PROFILE,\r\n (params, dispatch, getState) => {\r\n const state = getState();\r\n const user = get(state, 'user');\r\n const { refreshUserInfo, onSuccess } = params;\r\n if (user.isLoggedIn && (!user.userInfo || refreshUserInfo)) {\r\n if (refreshUserInfo) {\r\n return APIManager.getPageTexts().then((pageResponse: AxiosResponse) => {\r\n let pageTextsData;\r\n if (pageResponse.data) {\r\n pageTextsData = pageResponse.data;\r\n }\r\n pageTextsData = pageTextsData && pageTextsData.filter(x => x.KeyOnlinePage === keyPageIds.userProfileVersion);\r\n if (pageTextsData) {\r\n dataUserProfileVersion = getPageTextsSection(pageText.headerSection, pageTextsData);\r\n }\r\n return APIManager.invalidateUserInfo().then(() => {\r\n return APIManager.getUserInfo(dataUserProfileVersion.title).then(response => {\r\n if (response) {\r\n if (onSuccess) {\r\n onSuccess(response.data);\r\n }\r\n setGTMdatalayer(response.data);\r\n const { Country, Email } = response.data;\r\n return APIManager.getAllProfilePageItems(Country, Email).then(profileItems => {\r\n const { CompanyTypeList, rolesList, RegistrationFormatItems } = profileItems.data;\r\n return { ...response.data, ProfileItems: { CompanyTypeList, rolesList, RegistrationFormatItems } };\r\n });\r\n }\r\n return user;\r\n });\r\n });\r\n });\r\n }\r\n return APIManager.getPageTexts().then((pageResponse: AxiosResponse) => {\r\n let pageTextsData;\r\n if (pageResponse.data) {\r\n pageTextsData = pageResponse.data;\r\n }\r\n pageTextsData = pageTextsData && pageTextsData.filter(x => x.KeyOnlinePage === keyPageIds.userProfileVersion);\r\n if (pageTextsData) {\r\n dataUserProfileVersion = getPageTextsSection(pageText.headerSection, pageTextsData);\r\n }\r\n return APIManager.getUserInfo(dataUserProfileVersion.title).then(response => {\r\n if (response) {\r\n const { Country, Email } = response.data;\r\n if (onSuccess) {\r\n onSuccess(response.data);\r\n }\r\n setGTMdatalayer(response.data);\r\n return APIManager.getAllProfilePageItems(Country, Email).then(profileItems => {\r\n const { CompanyTypeList, rolesList, RegistrationFormatItems } = profileItems.data;\r\n return { ...response.data, ProfileItems: { CompanyTypeList, rolesList, RegistrationFormatItems } };\r\n });\r\n }\r\n return user;\r\n });\r\n });\r\n }\r\n\r\n if (onSuccess) {\r\n onSuccess(user.userInfo);\r\n }\r\n if (user.userInfo) setGTMdatalayer(user.userInfo);\r\n\r\n return user.userInfo;\r\n }\r\n);\r\n\r\nconst clearUserProfile = actionCreator(CLEAR_USER_PROFILE);\r\n\r\nexport { toggleLogInStatus, fetchUserProfile, clearUserProfile, toggleSessionCreate, fetchUserPreference, updateUserPreference, updateUserPreferenceManually };\r\n","/**\r\n * * Action Types\r\n * * It is a requirement to export all action type constants to enforce consistency and team exposure.\r\n * * This file must be strictly kept alphabetical. Group constants by a common prefix.\r\n */\r\n\r\n// eslint-disable-next-line import/prefer-default-export\r\nexport const CLEAR_STORE = 'CLEAR_STORE';\r\nexport const API_FILTERS = 'API_FILTERS';\r\nexport const API_INITIAL_DATASETS = 'API_INITIAL_DATASETS';\r\nexport const API_OPENSEARCH_DATASETS = 'API_OPENSEARCH_DATASETS';\r\nexport const API_INITIAL_SOLUTIONS = 'API_INITIAL_SOLUTIONS';\r\nexport const API_INITIAL_BLUEPRINTS = 'API_INITIAL_BLUEPRINTS';\r\nexport const API_FULL_DATASETS = 'API_FULL_DATASETS';\r\nexport const API_FULL_SOLUTION = 'API_FULL_SOLUTION';\r\nexport const USER_LOGGIN = 'USER_LOGGIN';\r\nexport const USER_PROFILE = 'USER_PROFILE';\r\nexport const USER_PREFERENCE = 'USER_PREFERENCE';\r\nexport const UPDATE_USER_PREFERENCE = 'UPDATE_USER_PREFERENCE';\r\nexport const UPDATE_USER_PREFERENCE_MANUALLY = 'UPDATE_USER_PREFERENCE_MANUALLY';\r\nexport const TABLEAU_SESSION_CREATED = 'TABLEAU_SESSION_CREATED';\r\nexport const CLEAR_USER_PROFILE = 'CLEAR_USER_PROFILE';\r\nexport const ERRORS = 'ERRORS';\r\nexport const API_BUNDLE_DATASETS = 'API_BUNDLE_DATASETS';\r\nexport const API_RESEARCHLINKS = 'API_RESEARCHLINKS';\r\nexport const API_FAQS = 'API_FAQS';\r\nexport const API_PAGETEXTS = 'API_PAGETEXTS';\r\nexport const UPDATE_UTMPARAMETERS = 'UPDATE_UTMPARAMETERS';\r\nexport const SET_FLAGS = 'SET_FLAGS';\r\nexport const QUERY_DOWNLOADS = 'QUERY_DOWNLOADS';\r\nexport const QUERY_STEPS = 'QUERY_STEPS';\r\nexport const ID_VARIANTS = 'ID_VARIANTS';\r\nexport const API_FULL_BLUEPRINT = 'API_FULL_BLUEPRINT';\r\nexport const TILE_NAMES_GT_25_CHARS = 'TILE_NAMES_GT_25_CHARS';\r\nexport const API_FULL_QUERYLIBRARY = 'API_FULL_QUERYLIBRARY';\r\nexport const API_QL_RELATED_QUERIES = 'API_QL_RELATED_QUERIES';\r\n","export default (str: string) => {\r\n return str\r\n .toString()\r\n .toLowerCase()\r\n .replace(/\\s+/g, '-') // Replace spaces with -\r\n .replace(/&/g, '-and-') // Replace & with 'and'\r\n .replace(/-a-/g, '-') // Replace '-a-' with '-'\r\n .replace(/\\w+/g, x => ((x === 'the' || x === 'and') ? '' : x)) // Replace 'and' and 'the' with ''\r\n .replace(/[^\\w\\-]+/g, '') // Remove all non-word characters\r\n .replace(/\\-\\-+/g, '-') // Replace multiple - with single -\r\n .replace(/^-+/, '') // Trim - from start of text\r\n .replace(/-+$/, ''); // Trim - from end of text\r\n};\r\n","const mapDataBundleToDataProfileCard = (item: APIDataBundleCard, nameItems: APIDataBundleCard[]) => {\r\n const categories: number[] = [];\r\n const industries: number[] = [];\r\n const geographies: number[][] = [];\r\n const earliestRecord: number[] = [];\r\n const pointInTime: boolean[] = [];\r\n const deliveryChannel: number[] = [];\r\n const deliveryPlatform: number[] = [];\r\n const dataProvider: string[] = [];\r\n if (item.MarketDatasetBundleDatasets) {\r\n item.MarketDatasetBundleDatasets.forEach(bundleDataset => {\r\n if (bundleDataset) {\r\n categories.push(...bundleDataset.MarketDatasetSearchTags.map(category => category.KeyMarketplaceSearchTag));\r\n industries.push(...bundleDataset.MarketDatasetMIIndustrys.map(industry => industry.KeyMIIndustryTree));\r\n geographies.push(bundleDataset.MarketDatasetGeographys.map(geography => geography.KeyGeographyTree));\r\n earliestRecord.push(bundleDataset.EarliestRecord);\r\n pointInTime.push(bundleDataset.PointInTime);\r\n if (bundleDataset && bundleDataset.MarketDatasetDestPlatforms) bundleDataset.MarketDatasetDestPlatforms.forEach(element => deliveryChannel.push(element.KeySPGDestinationPlatform));\r\n if (bundleDataset && bundleDataset.MarketDatasetDelivPlatforms) bundleDataset.MarketDatasetDelivPlatforms.forEach(element => deliveryPlatform.push(element.KeySPGDestinationPlatform));\r\n if (dataProvider.indexOf(bundleDataset.MarketplaceDataProvider) === -1) dataProvider.push(bundleDataset.MarketplaceDataProvider);\r\n }\r\n });\r\n }\r\n const englishNameItem = nameItems.length > 0 && nameItems.find(nameItem => nameItem.KeyMarketplaceDatasetBundle === item.KeyMarketplaceDatasetBundle);\r\n return {\r\n name: item.MarketplaceDatasetBundleName,\r\n absoluteName: englishNameItem ? englishNameItem.MarketplaceDatasetBundleName : item.MarketplaceDatasetBundleName,\r\n id: item.KeyMarketplaceDatasetBundle,\r\n isBundle: true,\r\n addedDate: item.MarketplaceDatasetBundleAdded,\r\n enhancementDate: item.MktplaceBundleEnhancementDate,\r\n shortDescription: item.MarketplaceBundleShortDesc,\r\n thumbnailImageFilePath: item.ThumbnailImageFilePath, // tile image\r\n longDescription: item.MarketplaceBundleLongDesc,\r\n dataProvider: dataProvider.join(', '),\r\n deliveryChannel,\r\n deliveryPlatform,\r\n earliestRecord,\r\n pointInTime,\r\n categories,\r\n industries,\r\n geographies,\r\n active: item.ActiveMPDatasetCoverage,\r\n supportDocs: item.MarketDSBundleSupportDocs ? item.MarketDSBundleSupportDocs : [],\r\n };\r\n};\r\nexport default mapDataBundleToDataProfileCard;\r\n","const mapDatasetToDataProfileCard = (item: APIDataset, nameItems: APIDataset[]) => {\r\n const englishNameItem = nameItems.length > 0 && nameItems.find(nameItem => nameItem.KeyMarketplaceDataset === item.KeyMarketplaceDataset);\r\n return {\r\n name: item.MarketplaceDatasetName,\r\n absoluteName: englishNameItem ? englishNameItem.MarketplaceDatasetName : item.MarketplaceDatasetName,\r\n id: item.KeyMarketplaceDataset,\r\n isBundle: false,\r\n addedDate: item.MarketplaceDatasetAdded,\r\n enhancementDate: item.MktPlaceDataSetEnhancementDate,\r\n shortDescription: item.MarketplaceShortDescription,\r\n thumbnailImageFilePath: item.ThumbnailImageFilePath, // tile image\r\n longDescription: item.MarketplaceLongDescription,\r\n dataProvider: item.MarketplaceDataProvider,\r\n active: item.ActiveMPDatasetCoverage,\r\n earliestRecord: [item.EarliestRecord],\r\n pointInTime: [item.PointInTime],\r\n supportDocs: item.MarketDatasetSupportDocs ? item.MarketDatasetSupportDocs : [],\r\n categories: item.MarketDatasetSearchTags ? item.MarketDatasetSearchTags.map(category => category.KeyMarketplaceSearchTag) : [],\r\n industries: item.MarketDatasetMIIndustrys ? item.MarketDatasetMIIndustrys.map(industry => industry.KeyMIIndustryTree) : [],\r\n geographies: item.MarketDatasetGeographys ? [item.MarketDatasetGeographys.map(geography => geography.KeyGeographyTree)] : [],\r\n deliveryChannel: item.MarketDatasetDestPlatforms && item.MarketDatasetDestPlatforms.map(x => x.KeySPGDestinationPlatform),\r\n marketMSADataLink: item.MSADataLink,\r\n marketMSADataFilePath: item.MSADataFilePath,\r\n marketplaceMSATooltip: item.MarketplaceMSATooltip\r\n };\r\n};\r\nexport default mapDatasetToDataProfileCard;\r\n","const mapDatasetToDataProfile = (dataset: APIDataset) => {\r\n const datasetLogos: MarketDatasetLogos[] = [];\r\n if (dataset.MarketDatasetLogos) {\r\n dataset.MarketDatasetLogos.forEach((logoObj: MarketDatasetLogos) => {\r\n const logo: MarketDatasetLogos = {\r\n OnlineImageFilePath: logoObj.OnlineImageFilePath,\r\n FormOrder: logoObj.FormOrder,\r\n DataProvider: dataset.MarketplaceDataProvider\r\n };\r\n datasetLogos.push(logo);\r\n });\r\n }\r\n\r\n let deliveryChannels: number[] = [];\r\n if (dataset.MarketDatasetDestPlatforms && dataset.MarketDatasetDestPlatforms.length > 0) {\r\n\r\n deliveryChannels = dataset.MarketDatasetDestPlatforms\r\n .sort()\r\n .map(x => {\r\n return x.KeySPGDestinationPlatform;\r\n });\r\n }\r\n\r\n let deliveryPlatforms: number[] = [];\r\n if (dataset.MarketDatasetDelivPlatforms && dataset.MarketDatasetDelivPlatforms.length > 0) {\r\n deliveryPlatforms = dataset.MarketDatasetDelivPlatforms\r\n .sort()\r\n .map(x => {\r\n return x.KeySPGDestinationPlatform;\r\n });\r\n }\r\n\r\n const marketDatasetDatasets = dataset.MarketDatasetDatasets && dataset.MarketDatasetDatasets.filter(relDataset => {\r\n if (!relDataset.MarketplaceDatasetRelated) return true;\r\n return relDataset.MarketplaceDatasetRelated.ActiveMPDatasetCoverage;\r\n }).map(relData => {\r\n return { KeyMarketplaceDatasetRelated: relData.KeyMarketplaceDatasetRelated, KeyMarketplaceDatasetBundle: relData.KeyMarketplaceDatasetBundle, FormOrder: relData.FormOrder } as MarketDatasetDataset;\r\n });\r\n\r\n return {\r\n id: dataset.KeyMarketplaceDataset,\r\n active: dataset.ActiveMPDatasetCoverage,\r\n isBundle: false,\r\n addedDate: dataset.MarketplaceDatasetAdded,\r\n enhancementDate: dataset.MktPlaceDataSetEnhancementDate,\r\n name: dataset.MarketplaceDatasetName,\r\n shortDescription: dataset.MarketplaceShortDescription,\r\n thumbnailImageFilePath: dataset.ThumbnailImageFilePath,\r\n dataProvider: dataset.MarketplaceDataProvider,\r\n dataProviderDesc: dataset.MarketplaceDataProviderDesc,\r\n earliestRecord: dataset.EarliestRecord,\r\n pointInTime: dataset.PointInTime,\r\n longDescription: dataset.MarketplaceLongDescription,\r\n onlineImageFilePath: dataset.OnlineImageFilePath,\r\n releaseNote: dataset.MktPlaceDataSetEnhancementDesc,\r\n releaseNoteLink: dataset.MktPlaceDataSetEnhancementLink,\r\n socialSharingImageFilePath: dataset.SocialSharingImageFilePath,\r\n earliestSignificantCoverage: dataset.EarliestSignificantCoverage,\r\n estimatedDatasetSize: dataset.EstimatedDatasetSize,\r\n estimatedDatasetStorage: dataset.EstimatedDatasetStorage,\r\n marketplaceDatasetCoverageDesc: dataset.MarketplaceDatasetCoverageDesc,\r\n marketplaceDataSource: dataset.MarketplaceDataSource,\r\n overviewImageFilePath: dataset.OverviewImageFilePath,\r\n pointInTimeDescription: dataset.PointInTimeDescription,\r\n marketDatasetDatasets,\r\n marketplaceTrialButtonTitle: dataset.MarketplaceTrialButtonTitle,\r\n marketDatasetSearchTags: dataset.MarketDatasetSearchTags,\r\n marketDatasetMIIndustrys: dataset.MarketDatasetMIIndustrys,\r\n marketDatasetGeographys: dataset.MarketDatasetGeographys,\r\n marketDatasetLinks: dataset.MarketDatasetLinks,\r\n marketplaceDatasetFieldCount: dataset.MarketplaceDatasetFieldCount,\r\n marketDatasetVisualization: dataset.MarketDatasetVizs,\r\n marketDatasetNotebooks: dataset.MarketDatasetNotebooks,\r\n spgCoverageType: dataset.SPGCoverageType,\r\n spgDatasetFrequency: dataset.SPGDatasetFrequency,\r\n spgDatasetLatency: dataset.SPGDatasetLatency,\r\n sampleDataLink: dataset.SampleDataLink,\r\n sampleDataFilePath: dataset.SampleDataFilePath,\r\n dataDictionaryLink: dataset.DataDictionaryLink,\r\n marketDatasetResearchs: dataset.MarketDatasetResearchs,\r\n supportDocs: dataset.MarketDatasetSupportDocs,\r\n marketDatasetLogos: datasetLogos,\r\n hasAlert: dataset.ActiveMarketplaceDatasetNote || false,\r\n alertNote: dataset.MarketplaceDatasetNote || '',\r\n alertTitle: dataset.MarketplaceDatasetNoteTitle || '',\r\n marketMSADataLink: dataset.MSADataLink,\r\n marketMSADataFilePath: dataset.MSADataFilePath,\r\n marketplaceMSATooltip: dataset.MarketplaceMSATooltip,\r\n mktplaceSolutionSupportEmail: dataset.MktplaceSolutionSupportEmail,\r\n marketSPGDestinationPlatform: deliveryChannels,\r\n marketSPGDeliveryPlatform: deliveryPlatforms,\r\n } as DataProfile;\r\n};\r\nexport default mapDatasetToDataProfile;\r\n","import mapDatasetToDataProfile from './map-dataset-to-dataprofile';\r\n\r\nconst mapDataBundleToDataProfile = (item: APIDataBundle) => {\r\n const dataProfiles: DataProfile[] = [];\r\n let alertNote = '';\r\n let alertTitle = '';\r\n const marketDatasetResearchs: MarketDatasetResearch[] = [];\r\n const marketDatasetNotebooks: MarketDatasetNotebook[] = [];\r\n const marketDatasetDatasets: MarketDatasetDataset[] = [];\r\n const dataProviders: Set = new Set();\r\n if (item.MarketDatasetBundleDatasets && item.MarketDatasetBundleDatasets.length > 0) {\r\n dataProfiles.push(\r\n ...item.MarketDatasetBundleDatasets.sort((a, b) => {\r\n return a.FormOrder > b.FormOrder ? 1 : -1;\r\n })\r\n .filter(dataset => dataset.MarketplaceDataset !== null)\r\n .map(i => {\r\n dataProviders.add(i.MarketplaceDataset.MarketplaceDataProvider);\r\n return mapDatasetToDataProfile(i.MarketplaceDataset);\r\n })\r\n );\r\n let FormOrder = 0;\r\n [...item.MarketDatasetBundleDatasets]\r\n .sort((a, b) => a.FormOrder - b.FormOrder)\r\n .forEach(bundle => {\r\n if (bundle.MarketplaceDataset.MarketDatasetNotebooks) {\r\n [...bundle.MarketplaceDataset.MarketDatasetNotebooks]\r\n .sort((a, b) => a.FormOrder - b.FormOrder)\r\n .forEach(notebook => {\r\n notebook.FormOrder = FormOrder;\r\n marketDatasetNotebooks.push(notebook);\r\n FormOrder += 1;\r\n });\r\n }\r\n });\r\n }\r\n if (item.ActiveMarketplaceDSBundleNote) {\r\n alertNote = item.MarketplaceBundleNote.MarketplaceDSBundleNote || '';\r\n alertTitle = item.MarketplaceBundleNote.MarketplaceDSBundleNoteTitle || '';\r\n }\r\n if (item.MarketDSBundleResearchs && item.MarketDSBundleResearchs.length > 0) {\r\n marketDatasetResearchs.push(\r\n ...item.MarketDSBundleResearchs.sort((a, b) => {\r\n return a.FormOrder > b.FormOrder ? 1 : -1;\r\n }).map(i => {\r\n return {\r\n FormOrder: i.FormOrder,\r\n DatasetResearchTitle: i.MarketplaceDatasetResearch.DatasetResearchTitle,\r\n WebSiteURL: i.MarketplaceDatasetResearch.WebSiteURL\r\n };\r\n })\r\n );\r\n }\r\n if (item.value && item.value.length > 0) {\r\n item.value.filter(relatedDataset => { if (!relatedDataset.MarketplaceDataset) return true; return relatedDataset.MarketplaceDataset.ActiveMPDatasetCoverage; }).forEach(relatedDataset => {\r\n marketDatasetDatasets.push({ ...relatedDataset, KeyMarketplaceDatasetRelated: relatedDataset.KeyMarketplaceDataset, KeyMarketplaceDatasetBundle: relatedDataset.KeyMarketplaceDatasetBundleRel });\r\n });\r\n }\r\n\r\n let newOrder = 1;\r\n const bundleLogos: MarketDatasetLogos[] = [];\r\n dataProfiles\r\n .filter(dataProfile => !!dataProfile.marketDatasetLogos && dataProfile.marketDatasetLogos.length > 0)\r\n .map(dataset => {\r\n if (dataset.marketDatasetLogos && dataset.marketDatasetLogos.length > 0) {\r\n dataset.marketDatasetLogos.forEach((LogoObj: MarketDatasetLogos) => {\r\n const logo: MarketDatasetLogos = {\r\n OnlineImageFilePath: LogoObj.OnlineImageFilePath,\r\n FormOrder: newOrder,\r\n DataProvider: dataset.dataProvider\r\n };\r\n if (\r\n bundleLogos.filter((itemLogo: MarketDatasetLogos) => itemLogo.OnlineImageFilePath === logo.OnlineImageFilePath).length === 0\r\n ) {\r\n newOrder++;\r\n bundleLogos.push(logo);\r\n }\r\n });\r\n }\r\n return bundleLogos;\r\n });\r\n\r\n return {\r\n marketDatasetVisualization: item.MarketDSBundleVizs,\r\n name: item.MarketplaceDatasetBundleName,\r\n id: item.KeyMarketplaceDatasetBundle,\r\n isBundle: true,\r\n addedDate: item.MarketplaceDatasetBundleAdded,\r\n enhancementDate: item.MktplaceBundleEnhancementDate,\r\n shortDescription: item.MarketplaceBundleShortDesc,\r\n thumbnailImageFilePath: item.ThumbnailImageFilePath,\r\n longDescription: item.MarketplaceBundleLongDesc,\r\n dataProviderDesc: item.MktplaceBundleDataProviderDesc,\r\n bundleDatasets: dataProfiles,\r\n releaseNote: '',\r\n releaseNoteTitle: '',\r\n marketDatasetResearchs,\r\n marketplaceTrialButtonTitle: item.MarketplaceTrialButtonTitle,\r\n dataProvider: [...dataProviders].join(', '),\r\n earliestRecord: 0,\r\n pointInTime: false,\r\n onlineImageFilePath: '',\r\n socialSharingImageFilePath: item.SocialSharingImageFilePath,\r\n earliestSignificantCoverage: 0,\r\n estimatedDatasetSize: 0,\r\n estimatedDatasetStorage: 0,\r\n marketplaceDatasetCoverageDesc: '100',\r\n marketplaceDataSource: '',\r\n overviewImageFilePath: '',\r\n pointInTimeDescription: '',\r\n marketDatasetDatasets,\r\n marketDatasetSearchTags: [],\r\n marketDatasetMIIndustrys: [],\r\n marketDatasetGeographys: [],\r\n marketDatasetLinks: [],\r\n marketDatasetNotebooks,\r\n deliveryChannel: [{ SPGDestinationPlatform: '', KeySPGDestinationPlatform: 0 }],\r\n deliveryPlatform: [{ SPGDestinationPlatform: '', KeySPGDestinationPlatform: 0 }],\r\n marketplaceDatasetFieldCount: { MarketplaceDatasetFieldCount: '' },\r\n supportDocs: item.MarketDSBundleSupportDocs,\r\n marketDatasetLogos: bundleLogos,\r\n hasAlert: item.ActiveMarketplaceDSBundleNote,\r\n alertNote,\r\n alertTitle,\r\n active: item.ActiveMPDatasetCoverage,\r\n marketMSADataLink: item.KeyMSADataLink,\r\n marketMSADataFilePath: item.MSADataFilePath,\r\n marketplaceMSATooltip: item.MarketplaceMSATooltip,\r\n mktplaceSolutionSupportEmail: item.MktplaceSolutionSupportEmail,\r\n marketSPGDeliveryPlatform: [],\r\n marketSPGDestinationPlatform: []\r\n } as DataProfile;\r\n};\r\nexport default mapDataBundleToDataProfile;\r\n","import { getText, get } from '../../helpers';\r\n\r\nfunction removeLastComma(string: string) {\r\n const n = string.lastIndexOf(',');\r\n return n > -1 && (n + 1) === string.length ? string.substring(0, n) : string;\r\n}\r\nconst mapSearchResultToDataProfileCard = (item: DataModal) => {\r\n const isBundle = item.isType === 'Bundle';\r\n const localeCode = getText('langCode');\r\n const marketplaceDataProvider = get(item, localeCode === 'en' ? 'MarketplaceDataProvider' : `MarketplaceDataProvider_${localeCode}`, '');\r\n return {\r\n name: get(item, localeCode === 'en' ? 'Name' : `Name_${localeCode}`, ''),\r\n urlName: item.Name,\r\n id: isBundle ? item.KeyMarketplaceDatasetBundle : item.KeyMarketplaceDataset,\r\n isBundle,\r\n addedDate: item.MarketplaceDatasetAdded,\r\n enhancementDate: item.MktPlaceDataSetEnhancementDate,\r\n shortDescription: get(item, localeCode === 'en' ? 'Description' : `Description_${localeCode}`, ''),\r\n thumbnailImageFilePath: item.ThumbnailImageFilePath,\r\n longDescription: get(item, localeCode === 'en' ? 'MarketplaceLongDescription' : `MarketplaceLongDescription_${localeCode}`, ''),\r\n dataProvider: marketplaceDataProvider && isBundle ? removeLastComma(marketplaceDataProvider.trim()) : marketplaceDataProvider\r\n };\r\n};\r\nexport default mapSearchResultToDataProfileCard;\r\n","import { getText, get } from '../../helpers';\r\n\r\nconst localeCode = getText('langCode');\r\n\r\nconst buildPipeArray = (str: string) => {\r\n return str.split('|').filter(s => s.trim() !== '').map(s => s.trim());\r\n};\r\n\r\nconst translateDatasets = (item: DataModal): string[] => {\r\n const associatedBundle = get(item, localeCode === 'en' ? 'AssociatedBundle' : `AssociatedBundle_${localeCode}`, '');\r\n const associatedDataset = get(item, localeCode === 'en' ? 'AssociatedDataset' : `AssociatedDataset_${localeCode}`, '');\r\n if (associatedBundle && associatedDataset) return [...buildPipeArray(associatedDataset), ...buildPipeArray(associatedBundle)];\r\n if (associatedDataset) return buildPipeArray(associatedDataset);\r\n if (associatedBundle) return buildPipeArray(associatedBundle);\r\n return [];\r\n};\r\n\r\nconst translateToCodeData = (item: DataModal): QuerySubnavCodeData[] | undefined => {\r\n if (item.WebsiteURL && item.MarketplaceQueryType) {\r\n const queryTypes = buildPipeArray(item.MarketplaceQueryType);\r\n const websiteURLs = buildPipeArray(item.WebsiteURL);\r\n return websiteURLs.map((url: string, index: number) => {\r\n return {\r\n url, data: '', title: queryTypes[index]\r\n };\r\n });\r\n }\r\n return undefined;\r\n};\r\n\r\nconst mapSearchResultsToQuery = (item: DataModal) => {\r\n const marketplaceDatasetPackage = get(item, localeCode === 'en' ? 'MarketplaceDatasetPackage' : `MarketplaceDatasetPackage_${localeCode}`, '');\r\n return {\r\n name: get(item, localeCode === 'en' ? 'Name' : `Name_${localeCode}`, ''),\r\n queryId: item.KeyMarketplaceQuery,\r\n description: get(item, localeCode === 'en' ? 'Description' : `Description_${localeCode}`, ''),\r\n versiondate: item.MktPlaceDataSetEnhancementDate,\r\n packages: buildPipeArray(marketplaceDatasetPackage || ''),\r\n datasets: translateDatasets(item),\r\n codeData: translateToCodeData(item)\r\n };\r\n};\r\n\r\n\r\nexport default mapSearchResultsToQuery;\r\n","import { getText, get } from '../../helpers';\r\n\r\nconst mapSearchResultToSolution = (item: DataModal) => {\r\n const localeCode = getText('langCode');\r\n const MktplaceSolutionProvider = get(item, localeCode === 'en' ? 'MarketplaceDataProvider' : `MarketplaceDataProvider_${localeCode}`, '');\r\n const MktplaceSolutionProviderDesc = get(\r\n item,\r\n localeCode === 'en' ? 'MarketplaceDataProviderDesc' : `MarketplaceDataProviderDesc_${localeCode}`,\r\n ''\r\n );\r\n const MktplaceSolutionName = get(item, localeCode === 'en' ? 'Name' : `Name_${localeCode}`, '');\r\n const MktplaceSolutionDesc = get(item, localeCode === 'en' ? 'Description' : `Description_${localeCode}`, '');\r\n const KeyPlatformService = get(item, 'keyplatformservice', '').toLowerCase();\r\n return {\r\n MarketSolutionProvider: {\r\n MktplaceSolutionProvider,\r\n MktplaceSolutionProviderDesc\r\n },\r\n dataProvider: MktplaceSolutionProvider,\r\n MktplaceSolutionName,\r\n name: MktplaceSolutionName,\r\n AbsoluteSolutionName: undefined,\r\n MktplaceSolutionDesc,\r\n PlatformService: {\r\n ThumbnailImageFilePath: item.ThumbnailImageFilePath\r\n },\r\n MktplaceDateAdded: item.MarketplaceDatasetAdded,\r\n addedDate: item.MarketplaceDatasetAdded,\r\n MktplaceSolutionCurrentVerDate: item.MktPlaceDataSetEnhancementDate,\r\n enhancementDate: item.MktPlaceDataSetEnhancementDate,\r\n KeyPlatformService,\r\n SocialSharingImageFilePath: item.SocialSharingImageFilePath,\r\n MktplaceSolutionUrlName: item.Name\r\n };\r\n};\r\nexport default mapSearchResultToSolution;\r\n","\r\nconst mapDataBundleToRelatedDataset = (item: MarketplaceDataset[]) => {\r\n const dataProfiles: DataProfile[] = [];\r\n const marketDatasetDatasets: MarketDatasetDataset[] = [];\r\n const dataProviders: Set = new Set();\r\n\r\n if (item && item.length > 0) {\r\n item.filter(relatedDataset => { if (!relatedDataset.MarketplaceDataset) return true; return relatedDataset.MarketplaceDataset.ActiveMPDatasetCoverage; }).forEach(relatedDataset => {\r\n marketDatasetDatasets.push({ ...relatedDataset, KeyMarketplaceDatasetRelated: relatedDataset.KeyMarketplaceDataset, KeyMarketplaceDatasetBundle: relatedDataset.KeyMarketplaceDatasetBundleRel });\r\n });\r\n }\r\n\r\n const bundleLogos: MarketDatasetLogos[] = [];\r\n\r\n return {\r\n marketDatasetVisualization: [],\r\n name: '',\r\n id: 0,\r\n isBundle: true,\r\n addedDate: '',\r\n enhancementDate: '',\r\n shortDescription: '',\r\n thumbnailImageFilePath: '',\r\n longDescription: '',\r\n dataProviderDesc: '',\r\n bundleDatasets: dataProfiles,\r\n releaseNote: '',\r\n releaseNoteTitle: '',\r\n marketDatasetResearchs: [],\r\n marketplaceTrialButtonTitle: '',\r\n dataProvider: [...dataProviders].join(', '),\r\n earliestRecord: 0,\r\n pointInTime: false,\r\n onlineImageFilePath: '',\r\n socialSharingImageFilePath: '',\r\n earliestSignificantCoverage: 0,\r\n estimatedDatasetSize: 0,\r\n estimatedDatasetStorage: 0,\r\n marketplaceDatasetCoverageDesc: '100',\r\n marketplaceDataSource: '',\r\n overviewImageFilePath: '',\r\n pointInTimeDescription: '',\r\n marketDatasetDatasets,\r\n marketDatasetSearchTags: [],\r\n marketDatasetMIIndustrys: [],\r\n marketDatasetGeographys: [],\r\n marketDatasetLinks: [],\r\n marketDatasetNotebooks: [],\r\n deliveryChannel: [{ SPGDestinationPlatform: '', KeySPGDestinationPlatform: 0 }],\r\n deliveryPlatform: [{ SPGDestinationPlatform: '', KeySPGDestinationPlatform: 0 }],\r\n marketplaceDatasetFieldCount: { MarketplaceDatasetFieldCount: '' },\r\n supportDocs: [],\r\n marketDatasetLogos: bundleLogos,\r\n hasAlert: false,\r\n alertNote: '',\r\n alertTitle: '',\r\n active: false,\r\n marketMSADataLink: '',\r\n marketMSADataFilePath: '',\r\n marketplaceMSATooltip: '',\r\n mktplaceSolutionSupportEmail: '',\r\n marketSPGDeliveryPlatform: [],\r\n marketSPGDestinationPlatform: []\r\n } as DataProfile;\r\n};\r\nexport default mapDataBundleToRelatedDataset;\r\n","\r\nimport mapDatasetToDataProfile from './map-dataset-to-dataprofile';\r\n\r\nconst mapDataBundleToIndustry = (item: APIBundleDatasetIndustrys) => {\r\n const dataProfiles: DataProfile[] = [];\r\n const marketDatasetDatasets: MarketDatasetDataset[] = [];\r\n const dataProviders: Set = new Set();\r\n\r\n if (item && item.MarketplaceDataset && item.MarketplaceDataset.length > 0) {\r\n dataProfiles.push(\r\n ...item.MarketplaceDataset.filter(dataset => dataset !== null)\r\n .map(i => {\r\n dataProviders.add(i.MarketplaceDataProvider);\r\n return mapDatasetToDataProfile(i);\r\n })\r\n );\r\n }\r\n\r\n const bundleLogos: MarketDatasetLogos[] = [];\r\n\r\n return {\r\n marketDatasetVisualization: [],\r\n name: '',\r\n id: 0,\r\n isBundle: true,\r\n addedDate: '',\r\n enhancementDate: '',\r\n shortDescription: '',\r\n thumbnailImageFilePath: '',\r\n longDescription: '',\r\n dataProviderDesc: '',\r\n bundleDatasets: dataProfiles,\r\n releaseNote: '',\r\n releaseNoteTitle: '',\r\n marketDatasetResearchs: [],\r\n marketplaceTrialButtonTitle: '',\r\n dataProvider: [...dataProviders].join(', '),\r\n earliestRecord: 0,\r\n pointInTime: false,\r\n onlineImageFilePath: '',\r\n socialSharingImageFilePath: '',\r\n earliestSignificantCoverage: 0,\r\n estimatedDatasetSize: 0,\r\n estimatedDatasetStorage: 0,\r\n marketplaceDatasetCoverageDesc: '100',\r\n marketplaceDataSource: '',\r\n overviewImageFilePath: '',\r\n pointInTimeDescription: '',\r\n marketDatasetDatasets,\r\n marketDatasetSearchTags: [],\r\n marketDatasetMIIndustrys: [],\r\n marketDatasetGeographys: [],\r\n marketDatasetLinks: [],\r\n marketDatasetNotebooks: [],\r\n deliveryChannel: [{ SPGDestinationPlatform: '', KeySPGDestinationPlatform: 0 }],\r\n deliveryPlatform: [{ SPGDestinationPlatform: '', KeySPGDestinationPlatform: 0 }],\r\n marketplaceDatasetFieldCount: { MarketplaceDatasetFieldCount: '' },\r\n supportDocs: [],\r\n marketDatasetLogos: bundleLogos,\r\n hasAlert: false,\r\n alertNote: '',\r\n alertTitle: '',\r\n active: false,\r\n marketMSADataLink: '',\r\n marketMSADataFilePath: '',\r\n marketplaceMSATooltip: '',\r\n mktplaceSolutionSupportEmail: '',\r\n marketSPGDeliveryPlatform: [],\r\n marketSPGDestinationPlatform: []\r\n } as DataProfile;\r\n};\r\nexport default mapDataBundleToIndustry;\r\n","import { getText, get } from '../../helpers';\r\n\r\nconst mapSearchResultToBluePrint = (item: DataModal) => {\r\n const localeCode = getText('langCode');\r\n const MarketplaceDataProvider = get(item, localeCode === 'en' ? 'MarketplaceDataProvider' : `MarketplaceDataProvider_${localeCode}`, '');\r\n const MktplaceDataProviderDesc = get(\r\n item,\r\n localeCode === 'en' ? 'MarketplaceDataProviderDesc' : `MarketplaceDataProviderDesc_${localeCode}`,\r\n ''\r\n );\r\n const MarketplaceBlueprintName = get(item, localeCode === 'en' ? 'Name' : `Name_${localeCode}`, '');\r\n const MktplaceBlueprintDesc = get(item, localeCode === 'en' ? 'Description' : `Description_${localeCode}`, '');\r\n const MktplaceBlueprintLongDesc = get(item, localeCode === 'en' ? 'MarketplaceLongDescription' : `MarketplaceLongDescription${localeCode}`, '');\r\n const itemKeyPlatformService = get(item, 'keyplatformservice', '');\r\n const KeyPlatformService = itemKeyPlatformService ? itemKeyPlatformService.toLowerCase() : itemKeyPlatformService;\r\n return {\r\n MarketplaceDataProviders: {\r\n MarketplaceDataProvider,\r\n MktplaceDataProviderDesc\r\n },\r\n dataProvider: MarketplaceDataProvider,\r\n MarketplaceBlueprintName,\r\n name: MarketplaceBlueprintName,\r\n AbsoluteBlueprintName: undefined,\r\n MktplaceBlueprintDesc,\r\n MarketplaceBlueprintShortDesc: MktplaceBlueprintDesc,\r\n MarketplaceBlueprintLongDesc: MktplaceBlueprintLongDesc,\r\n PlatformService: {\r\n ThumbnailImageFilePath: item.ThumbnailImageFilePath\r\n },\r\n MarketplaceBlueprintDateAdded: item.MarketplaceDatasetAdded,\r\n addedDate: item.MarketplaceDatasetAdded,\r\n MktplaceSolutionCurrentVerDate: item.MktPlaceDataSetEnhancementDate,\r\n enhancementDate: item.MktPlaceDataSetEnhancementDate,\r\n MarketplaceBlueprintEnhancementDate: item.MktPlaceDataSetEnhancementDate,\r\n KeyPlatformService,\r\n SocialSharingImageFilePath: item.SocialSharingImageFilePath,\r\n MktplaceBlueprintUrlName: item.Name,\r\n KeyMarketplaceBlueprint: item.KeyMarketplaceBlueprint,\r\n ThumbnailImageFilePath: item.ThumbnailImageFilePath,\r\n };\r\n};\r\nexport default mapSearchResultToBluePrint;\r\n","import { AxiosResponse } from 'axios';\r\nimport { addTask } from 'domain-task';\r\nimport { getConfig, dateDiff, get } from '../../helpers';\r\nimport APIManager from '../../utilities/api-manager';\r\nimport { API_RESEARCHLINKS, API_FAQS, API_PAGETEXTS, UPDATE_UTMPARAMETERS, SET_FLAGS, ID_VARIANTS, TILE_NAMES_GT_25_CHARS } from '../actionTypes';\r\n\r\nconst apiDataRefreshTime = getConfig('redux.cacheRefreshTimes.long');\r\n\r\nconst fetchResearchLinks = (): AppThunkAction => (dispatch, getState) => {\r\n const state = getState();\r\n const cachedResponse = get(state, 'shared.researchLinks', {}) as ResearchLinksState;\r\n const hasExpired = cachedResponse && (cachedResponse.data && (!cachedResponse.time ? true : dateDiff(cachedResponse.time) > apiDataRefreshTime));\r\n if (hasExpired) {\r\n const fetchTask = APIManager.getResearchLinks().then((response: AxiosResponse) => {\r\n if (response.data) {\r\n dispatch({ researchLinks: response.data.docs, time: new Date(), type: API_RESEARCHLINKS });\r\n }\r\n });\r\n addTask(fetchTask);\r\n }\r\n};\r\n\r\nconst fetchIdVariants = (): AppThunkAction => (dispatch, getState) => {\r\n const state = getState();\r\n const cachedResponse = get(state, 'shared.config', {}) as IdVariantsState;\r\n const hasExpired = cachedResponse && (cachedResponse.data && (!cachedResponse.time ? true : dateDiff(cachedResponse.time) > apiDataRefreshTime));\r\n if (hasExpired) {\r\n const fetchTask =\r\n APIManager.getIdVariants()\r\n .then((response: AxiosResponse) => {\r\n if (response.data) {\r\n dispatch({ config: response.data, time: new Date(), type: ID_VARIANTS });\r\n }\r\n });\r\n addTask(fetchTask);\r\n }\r\n\r\n};\r\n\r\nconst fetchTileNamesGt25Chars = (): AppThunkAction => (dispatch, getState) => {\r\n const state = getState();\r\n const cachedResponse = get(state, 'shared.tileNamesGt25Chars', {}) as TileNamesGt25CharsState;\r\n const hasExpired = cachedResponse && (cachedResponse.data && (!cachedResponse.time ? true : dateDiff(cachedResponse.time) > apiDataRefreshTime));\r\n if (hasExpired) {\r\n const fetchTask =\r\n APIManager.getTileNamesGt25Chars()\r\n .then((response: AxiosResponse) => {\r\n if (response.data) {\r\n dispatch({ tileNamesGt25Chars: response.data, time: new Date(), type: TILE_NAMES_GT_25_CHARS });\r\n }\r\n });\r\n addTask(fetchTask);\r\n }\r\n};\r\n\r\nconst fetchPageTexts = (): AppThunkAction => (dispatch, getState) => {\r\n const state = getState();\r\n const cachedResponse = get(state, 'shared.pageSections', {}) as PageTextsState;\r\n const hasExpired = cachedResponse && (cachedResponse.data && (!cachedResponse.time ? true : dateDiff(cachedResponse.time) > apiDataRefreshTime));\r\n if (hasExpired) {\r\n const fetchTask = APIManager.getPageTexts().then((response: AxiosResponse) => {\r\n if (response.data) {\r\n dispatch({ texts: response.data, time: new Date(), type: API_PAGETEXTS });\r\n }\r\n });\r\n addTask(fetchTask);\r\n }\r\n};\r\n\r\nconst fetchFAQs = (): AppThunkAction => (dispatch, getState) => {\r\n const state = getState();\r\n const cachedResponse = get(state, 'shared.faqs', {}) as FAQState;\r\n const hasExpired = cachedResponse && (cachedResponse.faqList && (!cachedResponse.time ? true : dateDiff(cachedResponse.time) > apiDataRefreshTime));\r\n if (hasExpired) {\r\n const fetchTask = APIManager.getFAQs().then((response: AxiosResponse) => {\r\n if (response.data) {\r\n dispatch({ faqs: response.data, time: new Date(), type: API_FAQS });\r\n }\r\n });\r\n addTask(fetchTask);\r\n }\r\n};\r\n\r\nconst updateUTMParameters = (): AppThunkAction => dispatch => {\r\n const urlParams = new URLSearchParams(window.location.search.toLowerCase());\r\n const utmParameters: UTMParameters = {\r\n utmSource: urlParams.get('utm_source') || '',\r\n utmMedium: urlParams.get('utm_medium') || '',\r\n utmCampaign: urlParams.get('utm_campaign') || '',\r\n utmTerm: urlParams.get('utm_term') || '',\r\n utmContent: urlParams.get('utm_content') || ''\r\n };\r\n dispatch({ utmParameters, type: UPDATE_UTMPARAMETERS });\r\n};\r\n\r\nconst setFeatureFlags = (flags: FeatureFlags): AppThunkAction => dispatch => {\r\n dispatch({ flags, type: SET_FLAGS });\r\n};\r\n\r\nexport { fetchResearchLinks, fetchFAQs, fetchPageTexts, updateUTMParameters, setFeatureFlags, fetchIdVariants, fetchTileNamesGt25Chars };\r\n","import { createStore, combineReducers, applyMiddleware, compose, StoreEnhancer, AnyAction } from 'redux';\r\nimport thunkMiddleware, { ThunkMiddleware } from 'redux-thunk';\r\nimport update from 'react-addons-update';\r\nimport { devToolsEnhancer } from 'redux-devtools-extension/logOnlyInProduction';\r\nimport { reducerWithInitialState } from 'typescript-fsa-reducers';\r\nimport { CLEAR_STORE } from './actionTypes';\r\nimport { getText } from '../helpers';\r\nimport SPGVariables from '../utilities/spg-variables';\r\n\r\nimport { reducer as userReducer, initialUserState } from './user/user.reducer';\r\nimport { reducer as datasetsReducer, initialDataSetState } from './datasets/datasets.reducer';\r\nimport { reducer as solutionsReducer, initialSolutionsState } from './solutions/solutions.reducer';\r\nimport { reducer as blueprintsReducer, initialBlueprintsState } from './blueprints/blueprints.reducer';\r\nimport { reducer as filterReducer, initialFiltersState } from './filters/filters.reducer';\r\nimport { reducer as errorsReducer, initialErrorState } from './errors/errors.reducer';\r\nimport { reducer as sharedReducer, initialSharedState } from './shared/shared.reducer';\r\nimport { reducer as queryBuilderReducer, initialQueryBuilderState } from './querybuilder/query-builder.reducer';\r\nimport { reducer as queryLibraryReducer, initialQueryLibraryState } from './querylibrary/querylibrary.reducer';\r\n\r\nconst spgVariables = SPGVariables();\r\n\r\nconst initialState = {\r\n version: `${spgVariables.BUILD_VERSION}`,\r\n user: initialUserState,\r\n datasets: initialDataSetState,\r\n solutions: initialSolutionsState,\r\n blueprints: initialBlueprintsState,\r\n filters: initialFiltersState,\r\n errors: initialErrorState,\r\n shared: initialSharedState,\r\n querybuilder: initialQueryBuilderState,\r\n querylibrary: initialQueryLibraryState\r\n};\r\n\r\nconst reducers = combineReducers({\r\n version: reducerWithInitialState(`${spgVariables.BUILD_VERSION}`),\r\n user: userReducer,\r\n datasets: datasetsReducer,\r\n solutions: solutionsReducer,\r\n blueprints: blueprintsReducer,\r\n filters: filterReducer,\r\n errors: errorsReducer,\r\n shared: sharedReducer,\r\n querybuilder: queryBuilderReducer,\r\n querylibrary: queryLibraryReducer\r\n});\r\n\r\nconst storeReducer = (state: RootStoreState = initialState, action: AnyAction) => {\r\n if (action.type === CLEAR_STORE) {\r\n return update(state, { $set: initialState });\r\n }\r\n return reducers(state, action);\r\n};\r\n\r\nconst thunk: ThunkMiddleware = thunkMiddleware;\r\nconst middlewareEnhancer = applyMiddleware(thunk);\r\n\r\nconst composedEnhancers: StoreEnhancer = compose(\r\n middlewareEnhancer,\r\n devToolsEnhancer({})\r\n);\r\n\r\n// TODO remove this any\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nconst enstore = createStore(storeReducer, composedEnhancers);\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nconst jastore = createStore(storeReducer, composedEnhancers);\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nconst zhstore = createStore(storeReducer, composedEnhancers);\r\n\r\nconst store = () => {\r\n switch (getText('langCode')) {\r\n case 'ja':\r\n return jastore;\r\n case 'zh':\r\n return zhstore;\r\n default:\r\n return enstore;\r\n }\r\n};\r\n\r\nexport { store as default, initialState };\r\n","import { addTask } from 'domain-task';\r\nimport { API_FILTERS } from '../actionTypes';\r\nimport APIManager from '../../utilities/api-manager';\r\nimport { get, getConfig, dateDiff } from '../../helpers';\r\n\r\nconst apiDataRefreshTime = getConfig('redux.cacheRefreshTimes.medium');\r\n\r\nconst fetchFilters = (): AppThunkAction => (dispatch, getState) => {\r\n const state = getState();\r\n const cachedResponse = get(state, 'filters');\r\n const hasExpired = cachedResponse && (!cachedResponse.time ? true : dateDiff(cachedResponse.time) > apiDataRefreshTime);\r\n if (hasExpired) {\r\n const fetchTask = APIManager.getBatchFilters().then(response => {\r\n dispatch({ response, time: new Date(), type: API_FILTERS });\r\n });\r\n addTask(fetchTask);\r\n }\r\n};\r\n\r\nexport default fetchFilters;\r\n","import { batch } from 'react-redux';\r\nimport ClientStore from '../redux/store';\r\nimport ServerStore from '../redux/server-store';\r\nimport { fetchInitialDataset, fetchFullDatasetwithfilters, fetchOpenSearchDataset } from '../redux/datasets/datasets.actions';\r\nimport { fetchQueryBuilderSteps } from '../redux/querybuilder/query-builder.actions';\r\nimport { fetchInitialSolutions, fetchFullSolution } from '../redux/solutions/solutions.actions';\r\nimport { fetchFullBlueprint, fetchInitialBlueprints } from '../redux/blueprints/blueprints.actions';\r\nimport { fetchFullQueryLibrary } from '../redux/querylibrary/querylibrary.actions';\r\nimport { fetchResearchLinks, fetchFAQs, fetchPageTexts, updateUTMParameters, fetchIdVariants, fetchTileNamesGt25Chars } from '../redux/shared/shared.actions';\r\nimport fetchFilters from '../redux/filters/filters.actions';\r\nimport extractId from './extract-id';\r\nimport SPGVariables from './spg-variables';\r\n\r\nconst spgVariables = SPGVariables();\r\n\r\nlet Store = ClientStore;\r\n\r\nconst loadAll = () => {\r\n batch(() => {\r\n Store.dispatch(fetchResearchLinks());\r\n // load all datasets and bundles from the openSearch API\r\n Store.dispatch(fetchOpenSearchDataset());\r\n // load all datasets\r\n Store.dispatch(fetchInitialDataset());\r\n // Load all solutions\r\n Store.dispatch(fetchInitialSolutions());\r\n // Load all blueprints\r\n Store.dispatch(fetchInitialBlueprints());\r\n // load all filters\r\n Store.dispatch(fetchFilters());\r\n // load all page texts / page sections\r\n Store.dispatch(fetchPageTexts());\r\n // load all steps when user is not logged in\r\n Store.dispatch(fetchQueryBuilderSteps());\r\n // load IdVariants\r\n Store.dispatch(fetchIdVariants());\r\n // load tileNamesGt25Chars\r\n Store.dispatch(fetchTileNamesGt25Chars());\r\n });\r\n};\r\n\r\nconst start = (path: string) => {\r\n if (spgVariables.IS_CRAWLER_REQUEST || spgVariables.IS_SERVER_REQUEST) {\r\n Store = spgVariables.IS_SERVER_REQUEST ? ServerStore() : Store;\r\n const pathLowerCase = path.toLowerCase();\r\n const id = extractId(pathLowerCase);\r\n if (id) {\r\n if (pathLowerCase.indexOf('/solutions/') > -1) {\r\n Store.dispatch(fetchFullSolution({ id }));\r\n } else if (pathLowerCase.indexOf('/blueprints/') > -1) {\r\n Store.dispatch(fetchFullBlueprint({ id }));\r\n } else if (pathLowerCase.indexOf('/query-library/') > -1) {\r\n Store.dispatch(fetchFullQueryLibrary({ id }));\r\n } else {\r\n const isBundle = pathLowerCase.indexOf('bundle') > -1;\r\n Store.dispatch(fetchFullDatasetwithfilters({ id, isBundle }));\r\n }\r\n } else if (pathLowerCase.indexOf('faq') > -1) {\r\n Store.dispatch(fetchFAQs());\r\n } else {\r\n loadAll();\r\n }\r\n } else {\r\n loadAll();\r\n // store utm params for marketo form submission\r\n Store.dispatch(updateUTMParameters());\r\n }\r\n};\r\n\r\nexport default start;\r\n","import SPGVariables from './spg-variables';\r\n\r\nconst spgVariables = SPGVariables();\r\n\r\nexport default function gtmTracker() {\r\n if (spgVariables.IS_RENDERTRON_REQUEST || spgVariables.IS_CRAWLER_REQUEST) return;\r\n const script = document.createElement('script');\r\n const gtmScript = `(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':\r\n new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],\r\n j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=\r\n 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);\r\n })(window,document,'script','dataLayer','${spgVariables.GTM_CONTAINER_ID}');window.dataLayer=window.dataLayer||[];`;\r\n\r\n script.innerHTML = gtmScript;\r\n document.getElementsByTagName('head')[0].appendChild(script);\r\n\r\n // Google Tag Manager (noscript) hidden iframe\r\n const noscript = document.createElement('noscript');\r\n const gtmiframe = document.createElement('iframe');\r\n gtmiframe.src = `https://www.googletagmanager.com/ns.html?id=${spgVariables.GTM_CONTAINER_ID}`;\r\n gtmiframe.height = '0';\r\n gtmiframe.width = '0';\r\n gtmiframe.style.visibility = 'hidden';\r\n gtmiframe.style.display = 'none';\r\n noscript.appendChild(gtmiframe);\r\n document.getElementsByTagName('body')[0].appendChild(noscript);\r\n}\r\n","import * as React from 'react';\r\nimport { v4 as uuidv4 } from 'uuid';\r\nimport keyPages from './key-pages';\r\nimport appInsights from './application-insights';\r\n\r\nconst AsyncHome = React.lazy(() => import('../routes/homepage' /* webpackChunkName: \"homepage\" */));\r\nconst AsyncProductFinder = React.lazy(() => import('../routes/product-finder' /* webpackChunkName: \"product-finder\" */));\r\nconst AsyncSearchResults = React.lazy(() => import('../routes/search-results' /* webpackChunkName: \"search-results\" */));\r\nconst AsyncDatasets = React.lazy(() => import('../routes/datasets' /* webpackChunkName: \"datasets\" */));\r\nconst AsyncDataset = React.lazy(() => import('../routes/dataset' /* webpackChunkName: \"dataset\" */));\r\nconst AsyncSolutions = React.lazy(() => import('../routes/solutions' /* webpackChunkName: \"solutions\" */));\r\nconst AsyncSolution = React.lazy(() => import('../routes/solution' /* webpackChunkName: \"solution\" */));\r\nconst AsyncProfilePage = React.lazy(() => import('../routes/profile-page' /* webpackChunkName: \"profile-page\" */));\r\nconst AsyncDataVendor = React.lazy(() => import('../routes/data-partners' /* webpackChunkName: \"data-partners\" */));\r\nconst AsyncRequestTrial = React.lazy(() => import('../routes/request-trial-page' /* webpackChunkName: \"request-a-trial\" */));\r\nconst AsyncFAQ = React.lazy(() => import('../routes/faq-page' /* webpackChunkName: \"faq\" */));\r\nconst AsyncQueryLibrary = React.lazy(() => import('../routes/query-library-page' /* webpackChunkName: \"query-library-page\" */));\r\nconst AsyncQueryBuilder = React.lazy(() => import('../routes/query-builder' /* webpackChunkName: \"query-builder\" */));\r\nconst AsyncBuildQuery = React.lazy(() => import('../routes/build-query' /* webpackChunkName: \"query-builder-new-query\" */));\r\nconst AsyncQueryBuilderDownload = React.lazy(() => import('../routes/query-builder-download' /* webpackChunkName: \"query-builder-download\" */));\r\nconst AsyncBlueprint = React.lazy(() => import('../routes/blueprint' /* webpackChunkName: \"blueprint\" */));\r\nconst AsyncBlueprints = React.lazy(() => import('../routes/blueprints' /* webpackChunkName: \"blueprints\" */));\r\nconst AsyncQueryLibraryProfile = React.lazy(() => import('../routes/query-library-profile' /* webpackChunkName: \"query-library-profile\" */));\r\n\r\nconst isDev = process.env.NODE_ENV === 'development';\r\n\r\nconst SetAIOperationId = () => {\r\n if (appInsights) appInsights.context.telemetryTrace.traceID = uuidv4();\r\n};\r\n\r\nconst AsyncFakeLogin = isDev ? React.lazy(() => import('../routes/fake-login' /* webpackChunkName: \"fake-login\" */)) : null;\r\n\r\nconst HomePage = (props: PageProps) => {\r\n SetAIOperationId();\r\n return ;\r\n};\r\n\r\nconst SearchResultsPage = (props: PageProps) => {\r\n SetAIOperationId();\r\n return ;\r\n};\r\n\r\nconst DatasetsPage = (props: PageProps) => {\r\n SetAIOperationId();\r\n return ;\r\n};\r\n\r\nconst ProductFinderPage = (props: PageProps) => {\r\n SetAIOperationId();\r\n return ;\r\n};\r\n\r\nconst DatasetPage = (props: PageProps & DatasetProps) => {\r\n SetAIOperationId();\r\n return ;\r\n};\r\n\r\nconst DatasetBundlePage = (props: PageProps & DatasetProps) => {\r\n SetAIOperationId();\r\n return ;\r\n};\r\n\r\nconst SolutionsPage = (props: PageProps) => {\r\n SetAIOperationId();\r\n return ;\r\n};\r\n\r\nconst SolutionPage = (props: PageProps & SolutionProps) => {\r\n SetAIOperationId();\r\n return ;\r\n};\r\n\r\nconst ProfilePage = (props: PageProps) => {\r\n SetAIOperationId();\r\n return ;\r\n};\r\n\r\nconst NewUserSignUpPage = (props: PageProps) => {\r\n SetAIOperationId();\r\n return ;\r\n};\r\n\r\nconst DataVendorPage = (props: PageProps & DataVendorState) => {\r\n SetAIOperationId();\r\n return ;\r\n};\r\n\r\nconst FAQPage = (props: PageProps) => {\r\n SetAIOperationId();\r\n return ;\r\n};\r\n\r\nconst QueryLibraryPage = (props: QueryLibraryPageProps) => {\r\n SetAIOperationId();\r\n return ;\r\n};\r\n\r\nconst QueryLibraryProfilePage = (props: PageProps & QueryLibraryProfilePageProps) => {\r\n SetAIOperationId();\r\n return ;\r\n};\r\n\r\nconst QueryBuilderPage = (props: QueryBuilderPageProps) => {\r\n SetAIOperationId();\r\n return ;\r\n};\r\nconst BuildQueryPage = (props: PageProps) => {\r\n SetAIOperationId();\r\n return ;\r\n};\r\nconst QueryBuilderDownload = (props: PageProps) => {\r\n SetAIOperationId();\r\n return ;\r\n};\r\n\r\nconst BlueprintPage = (props: PageProps & BlueprintProps) => {\r\n SetAIOperationId();\r\n return ;\r\n};\r\n\r\nconst BlueprintsPage = (props: PageProps & BlueprintsProps) => {\r\n SetAIOperationId();\r\n return ;\r\n};\r\n\r\n\r\nexport {\r\n HomePage,\r\n ProductFinderPage,\r\n SearchResultsPage,\r\n DatasetsPage,\r\n DatasetPage,\r\n DatasetBundlePage,\r\n SolutionsPage,\r\n SolutionPage,\r\n NewUserSignUpPage,\r\n ProfilePage,\r\n DataVendorPage,\r\n FAQPage,\r\n QueryLibraryPage,\r\n QueryLibraryProfilePage,\r\n QueryBuilderPage,\r\n BuildQueryPage,\r\n QueryBuilderDownload,\r\n BlueprintPage,\r\n BlueprintsPage,\r\n AsyncFakeLogin\r\n};\r\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"image\", {\n x: 0,\n y: 0,\n xlinkHref: \"data:image/png;base64,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 OZdJ/N3UaR+omsB4BphU5rcvSR+zODXRymd7KnNgNgM4PAzD4dH/n1vtetQZ/015PfMCayMODGMJ w/B+ROvmrQrLNAM4IwzDk8MYNWFFeb4GhuAOeZkHB1GZd9aRwLah2Ealqft0JIb2bVQw6633PheG 4YIwDA9DBupKnJ/OR5QeNksjLIrKU1d9oFCoXM8wivLbDgnR2vraNmE+FZ9hlMhzb3R78IVrJnAT sGqJvC4kXpV4sTvDaJXvDrhVAxdQRsujTJ77A+8leD+Fd3QpjoP2FPVbDdGactUxyzOMjRDL+TPR H4iGiM+vYUQxDzKq/zpIvPdnEUWG2cgAOQVxO35SW+tzZcq3FHA+YqugLeN3yOFz/yy/uXrqA15U GAPwPG8zYBdEda43YunZDdmK+Dy6ngRGhDFO26J8zgI2QNT6piLRCO9DAkO1BbfadYfnef0R/fId gZURC+vlkI4xBZn9v464yH45yV59irKsh2jX7Ii842WRQX1GdE1DtktGRdebYRnvvZ7nTQd6xDxu 42jLD8/zOiHf52BgS0TFsxeiePANMoi/iqzqHw91HoNrRlvoc57nbYHE71knKuNqiCHdF9H1OfLN PRQmCB6Wsiw17QMmMAyjxiQRGIZRS9qiywrDMAyjBpjAMAzDMFSYwDAMwzBUmMAwDMMwVJjAMAzD MFSYwDAMwzBUmMAwDMMwVJjAMAzDMFSY4Z5hGIahwlYYhmEYhgoTGIZhGIYKExiGYRiGChMYhmEY hgoTGIZhGIYKExiGYRiGChMYhmEYhgoTGIZhGIYKExiGYRiGChMYhmEYhgoTGIZhGIYKExiGYRiG ChMYhmEYhgoTGIZhGIYKExiGYRiGChMYhmEYhgoTGIZhGIYKExiGYRiGChMYhmEYhgoTGIZhGIYK ExiGYRiGChMYhmEYhgoTGIZhGIYKExiGYRiGChMYhmEYhgoTGIZhGIYKExiGYRiGChMYhmEYhgoT GIZhGIYKExiGYRiGisZSf2xoaOgahuF6tS6cYRiGUT08zxvT0tLyfbnfSwqMMAz7AW/UuvCGYRhG 9QjDcFNgVLnfbUvKMAzDUGECwzAMw1BhAsMwDMNQYQLDMAzDUGECwzAMw1BhAsMwDMNQYQLDMAzD UGECwzAMw1DRWObv3wFPAGGtC2gYhmFUBQ8Z+8sThuFPrvHjx9e64IZhGEaVGT9+fEmZULhsS8ow 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 aHOBr/GY7fXsGM6d/DZ/roN3e0ZTEx1YHvAImclE5nJ7RuU6ramJZbbfg3kvf+LRQkdEaBS8FkzD YwoNXktL8/RwfSZyVB20B4gNzglNT9PQ0MMjDD1ClkOERojHNDyvpaVlevgbJrJcFcp8TlMT7RrX g+awHSGrItbxnRA7jMl4TKCxoWXBgve4MkF5zmxqoj2r4NGOkGYWMKHib3K3piY2pAMe3YEWFvAN Vx11FCEwfPhwVlut/By/pMAwhDFeb7wf+s5C/PDjWhfJMAyjZpjAMAzDMFT8P6WL728CSbrOAAAA JXRFWHRkYXRlOmNyZWF0ZQAyMDIwLTAxLTI4VDIwOjU1OjI4KzAzOjAwaT6sfQAAACV0RVh0ZGF0 ZTptb2RpZnkAMjAyMC0wMS0yOFQyMDo1NToyOCswMzowMBhjFMEAAAAbdEVYdGljYzpjb3B5cmln aHQAUHVibGljIERvbWFpbraRMVsAAAAidEVYdGljYzpkZXNjcmlwdGlvbgBHSU1QIGJ1aWx0LWlu IHNSR0JMZ0ETAAAAFXRFWHRpY2M6bWFudWZhY3R1cmVyAEdJTVBMnpDKAAAADnRFWHRpY2M6bW9k ZWwAc1JHQltgSUMAAAAASUVORK5CYII=\"\n});\nvar SvgStandardAndPoorGlobalMarketplace = function SvgStandardAndPoorGlobalMarketplace(_ref) {\n var svgRef = _ref.svgRef,\n props = _objectWithoutProperties(_ref, [\"svgRef\"]);\n return React.createElement(\"svg\", _extends({\n x: \"0px\",\n y: \"0px\",\n width: \"396px\",\n height: \"182px\",\n viewBox: \"0 0 396 182\",\n enableBackground: \"new 0 0 396 182\",\n xmlSpace: \"preserve\",\n ref: svgRef\n }, props), _ref2);\n};\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return React.createElement(SvgStandardAndPoorGlobalMarketplace, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/standard-and-poor-global-marketplace.29071fa0.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M11 5C11 6.65685 9.65685 8 8 8C6.34315 8 5 6.65685 5 5C5 3.34315 6.34315 2 8 2C9.65685 2 11 3.34315 11 5ZM11.3344 8.72588C12.3567 7.81038 13 6.48032 13 5C13 2.23858 10.7614 0 8 0C5.23858 0 3 2.23858 3 5C3 6.48032 3.6433 7.81038 4.66559 8.72588C1.91213 9.99012 0 12.7718 0 16H2C2 12.6863 4.68629 10 8 10C11.3137 10 14 12.6863 14 16H16C16 12.7718 14.0879 9.99012 11.3344 8.72588Z\",\n fill: \"currentColor\"\n});\nvar SvgUser = function SvgUser(_ref) {\n var svgRef = _ref.svgRef,\n props = _objectWithoutProperties(_ref, [\"svgRef\"]);\n return React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n ref: svgRef\n }, props), _ref2);\n};\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return React.createElement(SvgUser, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/user.2b23655a.svg\";\nexport { ForwardRef as ReactComponent };","import * as React from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport Truncate from 'react-truncate';\r\nimport CustomLink from '../../_common/custom-link';\r\nimport SignInButton from '../../_common/sign-in-button';\r\nimport { getText, get } from '../../../helpers';\r\nimport { ReactComponent as UserIcon } from '../../../assets/svg/icons/user.svg';\r\nimport Dropdown from '../../_common/dropdown-button';\r\n\r\nconst myAccountText = getText('generic.myAccount');\r\n\r\nfunction GlobalHeaderProfileMenu(props: GlobalHeaderProfileMenuProps) {\r\n const { className } = props;\r\n const userInfo = useSelector((state: RootStoreState) => get(state, 'user.userInfo', null));\r\n const userName = userInfo ? `${userInfo.FirstName} ${userInfo.LastName}` : '';\r\n\r\n return (\r\n ,\r\n \r\n ]}\r\n buttonContent={\r\n <>\r\n \r\n {userName}\r\n \r\n }\r\n buttonClass=\"global-header-profile-menu__link\"\r\n />\r\n );\r\n}\r\n\r\nexport default React.memo(GlobalHeaderProfileMenu);\r\n","import React from 'react';\r\nimport { cn, getConfig, getText } from '../../../helpers';\r\nimport HistoryInstance from '../../../utilities/history';\r\nimport spgvariables from '../../../utilities/spg-variables';\r\n\r\nimport CustomLink from '../../_common/custom-link';\r\nimport Dropdown from '../../_common/dropdown-button';\r\nimport APIManager from '../../../utilities/api-manager';\r\nimport { ReactComponent as CaretDownIcon } from '../../../assets/svg/icons/caret-down.svg';\r\n\r\nconst SPGVariables = spgvariables();\r\nconst langCode = getText('langCode');\r\n\r\nfunction GlobalHeaderSubMenu(props: GlobalHeaderSubMenuProps) {\r\n const { dropDownItems, text, headerId = '' } = props;\r\n const [isActive, setIsActive] = React.useState(false);\r\n const [reqHeader, setReqHeader] = React.useState('');\r\n\r\n React.useEffect(() => {\r\n setIsActive(HistoryInstance.location.pathname.includes(`/${headerId.toLowerCase()}/`));\r\n const historyListener = HistoryInstance.listen(location => {\r\n setIsActive(location.pathname.includes(`/${headerId.toLowerCase()}/`));\r\n });\r\n const userOriginCountryCodeFromSession = sessionStorage.getItem('userOriginCountryCode');\r\n if (userOriginCountryCodeFromSession === null) {\r\n APIManager.getReqHeaderByName('PMUSER_COUNTRY_CODE').then(response => {\r\n setReqHeader(response.headers.userorigincountrycode || '');\r\n sessionStorage.setItem('userOriginCountryCode', response.headers.userorigincountrycode);\r\n });\r\n } else {\r\n setReqHeader(userOriginCountryCodeFromSession || '');\r\n }\r\n return () => {\r\n historyListener();\r\n };\r\n }, []);\r\n return (\r\n (\r\n \r\n ))}\r\n buttonContent={\r\n <>\r\n \r\n {text}\r\n \r\n \r\n \r\n }\r\n buttonClass=\"global-header-sub-menu__link\"\r\n />\r\n );\r\n}\r\n\r\nexport default React.memo(GlobalHeaderSubMenu);\r\n","import * as React from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport CustomLink from '../custom-link';\r\nimport { get, getText, getConfig } from '../../../helpers';\r\n\r\nconst signUpText = getText('generic.newUserSignUp');\r\nconst gaLabel = 'New User Sign Up';\r\nconst Window = window as AnonymousObject;\r\nWindow.dataLayer = Window.dataLayer || [];\r\n\r\nfunction SignUpButton(props: SignUpButtonProps) {\r\n const user = useSelector((state: RootStoreState) => get(state, 'user', ''));\r\n const keyOnlineUserId = user && user.userInfo && user.userInfo.KeyOnlineUser ? user.userInfo.KeyOnlineUser : '';\r\n const signUpUrl = getConfig('urls.mi.ssacs.oktaSignUp');\r\n\r\n const {\r\n className,\r\n buttonTheme,\r\n isButton,\r\n isFullWidth,\r\n text = signUpText\r\n } = props;\r\n\r\n const handleClick = async (event: React.SyntheticEvent) => {\r\n if (process.env.NODE_ENV === 'production') {\r\n event.preventDefault();\r\n import('../../../utilities/application-insights').then(AppInsights => {\r\n const appInsights = AppInsights.default;\r\n if (appInsights) appInsights.flush();\r\n window.location.href = signUpUrl;\r\n });\r\n }\r\n Window.dataLayer.push({\r\n event: 'sign_up',\r\n keyOnlineUser: keyOnlineUserId\r\n });\r\n };\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nexport default React.memo(SignUpButton);\r\n","import * as React from 'react';\r\nimport SignInButton from '../../_common/sign-in-button';\r\nimport SignUpButton from '../../_common/sign-up-button';\r\nimport Dropdown from '../../_common/dropdown-button';\r\nimport { getText } from '../../../helpers';\r\n\r\nconst signUpText = getText('generic.newUserSignUp');\r\nconst signInText = getText('generic.signIn');\r\n\r\nfunction GlobalHeaderSignIn(props: GlobalHeaderSignInProps) {\r\n const { className } = props;\r\n return (\r\n ,\r\n \r\n ]}\r\n buttonContent={signInText}\r\n buttonClass=\"global-header-desktop__sign-in-btn button--tertiary\"\r\n />\r\n );\r\n}\r\n\r\nexport default React.memo(GlobalHeaderSignIn);\r\n","import * as React from 'react';\r\nimport DataFlag from '../../../data-flag';\r\nimport CustomLink from '../../custom-link';\r\nimport { cn, getText } from '../../../../helpers';\r\nimport buildUrl from '../../../../utilities/build-url';\r\n\r\nconst maxDropdownResults = 5;\r\nconst seeAllResults = getText('generic.seeAllResults');\r\n\r\nconst Dataset = getText('generic.dataset');\r\nconst Solution = getText('generic.solution');\r\nconst Blueprint = getText('generic.blueprint');\r\n\r\nfunction TypeaheadDropdown(props: TypeaheadDropdownProps) {\r\n const { dataProfiles, inputRef, isMobileDropdown, searchToken, loading, className, onClick, parentRef } = props;\r\n const hasMoreThan5Results = dataProfiles.length > maxDropdownResults;\r\n\r\n let highlightedItemIndex = -1;\r\n\r\n // REFs\r\n let allResultsRef: HTMLAnchorElement | null = null;\r\n let refsArray: HTMLAnchorElement[] = [];\r\n\r\n const setAllResultsRef = (element: HTMLAnchorElement) => {\r\n allResultsRef = element;\r\n };\r\n\r\n const keyPressHandler = (event: KeyboardEvent) => {\r\n const inputIndex = -1;\r\n const firstResultIndex = 0;\r\n const lastResultIndex = refsArray.length - 1;\r\n const allResultsBtnIndex = lastResultIndex + 1;\r\n\r\n // select input when going up from first result\r\n if (highlightedItemIndex <= firstResultIndex && (event.key === 'Up' || event.key === 'ArrowUp')) {\r\n highlightedItemIndex = inputIndex;\r\n if (inputRef.current) inputRef.current.focus();\r\n return;\r\n }\r\n\r\n // select button when going down from last result\r\n if (highlightedItemIndex === lastResultIndex && (event.key === 'Down' || event.key === 'ArrowDown') && hasMoreThan5Results) {\r\n event.preventDefault();\r\n if (allResultsRef) allResultsRef.focus();\r\n highlightedItemIndex++;\r\n return;\r\n }\r\n\r\n // do nothing when going down from button\r\n if (\r\n (highlightedItemIndex === allResultsBtnIndex || (highlightedItemIndex === lastResultIndex && !hasMoreThan5Results)) &&\r\n (event.key === 'Down' || event.key === 'ArrowDown')\r\n ) {\r\n event.preventDefault();\r\n return;\r\n }\r\n\r\n // set index of to be focussed\r\n switch (event.key) {\r\n case 'Up':\r\n case 'ArrowUp':\r\n highlightedItemIndex -= 1;\r\n break;\r\n case 'Down':\r\n case 'ArrowDown':\r\n highlightedItemIndex += 1;\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n // focus item\r\n if (event.key === 'up' || event.key === 'ArrowUp' || event.key === 'Down' || event.key === 'ArrowDown') {\r\n event.preventDefault();\r\n refsArray[highlightedItemIndex].focus();\r\n }\r\n };\r\n\r\n React.useEffect(() => {\r\n const container = parentRef ? parentRef.current : null;\r\n if (container) container.addEventListener('keydown', keyPressHandler);\r\n return () => {\r\n if (container) container.removeEventListener('keydown', keyPressHandler);\r\n };\r\n });\r\n\r\n const setResultRef = (element: HTMLAnchorElement) => {\r\n refsArray = [...refsArray, element];\r\n };\r\n\r\n const buildSolution = (solution: APISolution) => {\r\n const solutionPathSegment = buildUrl(solution.AbsoluteSolutionName || solution.MktplaceSolutionUrlName || solution.MktplaceSolutionName, solution.KeyPlatformService);\r\n const url = `/solutions/${solutionPathSegment}`;\r\n return (\r\n
  • \r\n {Solution}\r\n \r\n \r\n
  • \r\n );\r\n };\r\n\r\n const buildBlueprint = (blueprint: APIBlueprint) => {\r\n const blueprintPathSegment = buildUrl(blueprint.AbsoluteBlueprintName || blueprint.MktplaceBlueprintUrlName || blueprint.MarketplaceBlueprintName,\r\n blueprint.KeyMarketplaceBlueprint);\r\n const url = `/blueprints/${blueprintPathSegment}`;\r\n return (\r\n
  • \r\n {Blueprint}\r\n \r\n \r\n
  • \r\n );\r\n };\r\n\r\n const buildDataset = (dataProfile: DataProfileCard) => (\r\n
  • \r\n {Dataset}\r\n \r\n \r\n
  • \r\n );\r\n\r\n const hasDataProfiles = dataProfiles.length > 0;\r\n const hasSearchTerm = searchToken.length > 0;\r\n return (!loading || hasDataProfiles) && hasSearchTerm ? (\r\n
    \r\n {!hasDataProfiles &&

    No results - please amend your search

    }\r\n {hasDataProfiles && (\r\n
      \r\n {dataProfiles.slice(0, 5).map(dataProfile => {\r\n if ('MktplaceSolutionName' in dataProfile) return buildSolution(dataProfile as APISolution);\r\n if ('MarketplaceBlueprintName' in dataProfile) return buildBlueprint(dataProfile as APIBlueprint);\r\n return buildDataset(dataProfile as DataProfileCard);\r\n })}\r\n {hasMoreThan5Results && !isMobileDropdown && (\r\n \r\n )}\r\n
    \r\n )}\r\n
    \r\n ) : null;\r\n}\r\n\r\nexport default React.memo(TypeaheadDropdown);\r\n","\r\nimport { isInternalUser, getConfig } from '.';\r\n\r\n\r\nconst authSolList = getConfig('authorizedsolutions');\r\nconst allowedDomains = getConfig('internalMailDomains');\r\n\r\nconst authdatablueprint = (list: APIBlueprint[], email: string) => {\r\n\r\n const isValidUser = isInternalUser(allowedDomains, email);\r\n // Hide sensitive blueprints for external users\r\n if (list && list.length > 0 && list as APIBlueprint[] && !isValidUser) {\r\n const value = list.filter(x => !authSolList.includes(x.KeyMarketplaceBlueprint));\r\n return value || [];\r\n }\r\n return list;\r\n};\r\n\r\nexport default authdatablueprint;\r\n","/* eslint-disable no-underscore-dangle */\r\nimport * as React from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { Waypoint } from 'react-waypoint';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport { useClickAway, useDebounce } from 'react-use';\r\nimport Spinner from '../spinner';\r\nimport TypeaheadDropdown from './typeahead-dropdown';\r\nimport CustomLink from '../custom-link';\r\nimport APIManager from '../../../utilities/api-manager';\r\nimport History from '../../../utilities/history';\r\nimport { cn, getConfig, getText, get, authdata } from '../../../helpers';\r\nimport { mapSearchResultToDataProfileCard, mapSearchResultToSolution, mapSearchResultToBluePrint } from '../../../utilities/data-mappers';\r\nimport { ModalContext } from '../modal/modal';\r\n\r\nimport './typeahead.style.scss';\r\nimport authdatablueprint from '../../../helpers/auth-data-blueprint';\r\n\r\nconst langCode = getText('langCode');\r\n\r\nconst Window = window as AnonymousObject;\r\nWindow.dataLayer = Window.dataLayer || [];\r\n\r\nconst UnstyledTextInput = withStyles({\r\n root: {\r\n 'flex-direction': 'row',\r\n '& .MuiInput-underline:before': {\r\n content: 'none'\r\n },\r\n '& .MuiInput-underline:after': {\r\n content: 'none'\r\n }\r\n }\r\n})(TextField);\r\n\r\nconst throttleDuration = getConfig('components.typeaheadThrottleDuration');\r\nconst seeAllResults = getText('generic.seeAllResults');\r\n\r\nfunction Typeahead(props: TypeaheadProps) {\r\n const {\r\n iconPrepend,\r\n iconAppend,\r\n name,\r\n className,\r\n placeholder,\r\n onFocusEvent,\r\n isMobileDropdown,\r\n autoFocus = false,\r\n autoClose = false,\r\n onComplete\r\n } = props;\r\n\r\n const ua = navigator.userAgent; // prevent autofocus on IE11\r\n const safeAutoFocus = ua.indexOf('Trident/') > -1 ? false : autoFocus;\r\n const user = useSelector((state: RootStoreState) => get(state, 'user', ''));\r\n const enabledBlueprintFlag = useSelector((state: RootStoreState) => get(state, 'shared.flags.enabledBlueprintFlag', false));\r\n const userEmail = user && user.userInfo && user.userInfo.Email ? user.userInfo.Email : '';\r\n const [response, setResponse] = React.useState<(DataProfileCard | APISolution | APIBlueprint)[]>([]);\r\n const [searchValue, setSearchValue] = React.useState('');\r\n const [loading, setLoading] = React.useState(false);\r\n // debugging state to avoid typeahead closing on init\r\n // somewhere is click event, that triggers useClickAway hook on init\r\n const [isFirstClickEvent, setIsFirstClickEvent] = React.useState(true);\r\n\r\n const textFieldRef: React.RefObject = React.useRef(null);\r\n const textFieldAndDropdownRef: React.RefObject = React.useRef(null);\r\n\r\n // CONTEXT\r\n const onCloseContext = React.useContext(ModalContext);\r\n\r\n const reset = () => {\r\n // console.log('RESET');\r\n setLoading(false);\r\n setSearchValue('');\r\n setResponse([]);\r\n if (onComplete) onComplete();\r\n onCloseContext();\r\n };\r\n\r\n const handleScroll = (w: Waypoint.CallbackArgs) => {\r\n if (w.viewportTop > w.waypointTop) {\r\n reset();\r\n if (textFieldRef && textFieldRef.current) textFieldRef.current.blur();\r\n }\r\n };\r\n\r\n const handleOnFocus = (event: React.FocusEvent) => {\r\n if (onFocusEvent) onFocusEvent(event);\r\n };\r\n\r\n const handleOnChange = (event: React.ChangeEvent) => {\r\n const { target } = event;\r\n const { value } = target;\r\n const regex = /^\\s+/g;\r\n const newSearch = value.replace(regex, '');\r\n setSearchValue(newSearch);\r\n if (newSearch.length) {\r\n setLoading(true);\r\n } else {\r\n setResponse([]);\r\n setLoading(false);\r\n }\r\n };\r\n\r\n const handleOnSubmit = (event: React.FormEvent) => {\r\n event.preventDefault();\r\n reset();\r\n if (!searchValue.length) History.push(`/${langCode}/search-results`);\r\n else History.push(`/${langCode}/search-results?search=${encodeURIComponent(searchValue.trim())}`);\r\n };\r\n\r\n useDebounce(\r\n () => {\r\n if (searchValue.length) {\r\n APIManager.search(searchValue.trim(), undefined).then(res => {\r\n const data = get(res, 'data.hits.hits', []).map((hit: Hit) => {\r\n if (hit._source.isType === 'Solution') {\r\n const x = mapSearchResultToSolution(hit._source);\r\n const arr = authdata([x as APISolution], userEmail);\r\n if (arr && arr.length > 0) {\r\n return x;\r\n }\r\n return null;\r\n }\r\n if (hit._source.isType === 'Blueprint') {\r\n const x = mapSearchResultToBluePrint(hit._source);\r\n const arr = authdatablueprint([x as unknown as APIBlueprint], userEmail);\r\n if (arr && arr.length > 0) {\r\n return x;\r\n }\r\n return null;\r\n }\r\n return mapSearchResultToDataProfileCard(hit._source);\r\n });\r\n\r\n let updatedData = [];\r\n updatedData = data.filter((x: (DataProfileCard | APISolution | APIBlueprint)) => !!x);\r\n if (!enabledBlueprintFlag) {\r\n updatedData = updatedData.filter((x: any) => x.KeyMarketplaceBlueprint === undefined);\r\n }\r\n\r\n Window.dataLayer.push({\r\n event: 'searchSubmit',\r\n searchTerm: searchValue,\r\n searchResultsCount: updatedData.length\r\n });\r\n\r\n setResponse(updatedData);\r\n setLoading(false);\r\n });\r\n }\r\n },\r\n throttleDuration,\r\n [searchValue]\r\n );\r\n\r\n useClickAway(textFieldAndDropdownRef, () => {\r\n if (!isFirstClickEvent) {\r\n reset();\r\n } else {\r\n setIsFirstClickEvent(false);\r\n }\r\n }, ['click']);\r\n\r\n return (\r\n
    \r\n
    \r\n {iconPrepend}\r\n
    \r\n handleScroll(w)}>\r\n \r\n \r\n
    \r\n \r\n {iconAppend}\r\n \r\n\r\n {!autoClose && (\r\n \r\n )}\r\n\r\n {response.length > 5 && isMobileDropdown && (\r\n
    \r\n \r\n
    \r\n )}\r\n
    \r\n );\r\n}\r\n\r\nexport default React.memo(Typeahead);\r\n","import * as React from 'react';\r\nimport { NavLink, useLocation } from 'react-router-dom';\r\nimport { useSelector } from 'react-redux';\r\nimport { ReactComponent as SPLogo } from '../../../assets/svg/standard-and-poor-global-marketplace.svg';\r\nimport { ReactComponent as SearchIcon } from '../../../assets/svg/icons/search.svg';\r\nimport { ReactComponent as CloseIcon } from '../../../assets/svg/icons/close.svg';\r\nimport CustomLink from '../../_common/custom-link';\r\nimport { cn, getText, get, validInternalUser } from '../../../helpers';\r\nimport GlobalHeaderProfileMenu from '../global-header-profile-menu';\r\nimport GolbalHeaderSubMenu from '../global-header-sub-menu';\r\n\r\nimport GlobalHeaderSignIn from '../global-header-sign-in';\r\nimport Typeahead from '../../_common/typeahead-old';\r\n\r\nconst homeText = getText('generic.home');\r\nconst globalNavText = getText('globalNav');\r\nconst placeholder = getText('generic.typeAheadPlaceholder');\r\nconst langCode = getText('langCode');\r\n\r\nfunction GlobalHeaderFormSearchIcon() {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\nfunction GlobalHeaderFormCloseIcon(onClick: (event: React.SyntheticEvent) => void) {\r\n return (\r\n \r\n );\r\n}\r\n\r\nfunction GlobalHeaderDesktop(props: FeatureFlags) {\r\n const [showSearchForm, setShowSearchForm] = React.useState(0);\r\n const linkItems: GlobalHeaderLink[] = Object.values(globalNavText);\r\n const { fflagEnableQueryBuilder } = props;\r\n const enabledBlueprintFlag = useSelector((state: RootStoreState) => get(state, 'shared.flags.enabledBlueprintFlag', false));\r\n\r\n React.useEffect(() => {\r\n document.addEventListener('HomeButtonClick', () => {\r\n setShowSearchForm(0);\r\n });\r\n });\r\n\r\n const handleOnAnimationEnd = (event: React.AnimationEvent) => {\r\n if (event.animationName.indexOf('search-input') > -1) setShowSearchForm(showSearchForm + 1);\r\n };\r\n\r\n const isUserLoggedIn = useSelector((state: RootStoreState) => get(state, 'user.isLoggedIn', false));\r\n const isValidInternalUser = validInternalUser(useSelector((state: RootStoreState) => get(state, 'user')));\r\n\r\n const handleSearchButtonClick = (e: React.MouseEvent) => {\r\n e.stopPropagation();\r\n props.onSearchIconClick();\r\n };\r\n\r\n const handleHeaderBodyClick = () => {\r\n props.onHeaderBodyClick();\r\n };\r\n\r\n const filterOutDropDownItems = (list: any[]) => {\r\n return isUserLoggedIn && isValidInternalUser ? list :\r\n list.filter(el => !el.hideForNonLoggedInUser);\r\n };\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n setShowSearchForm(0)} />\r\n \r\n
    \r\n )}\r\n \r\n {!isUserLoggedIn ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
    \r\n \r\n );\r\n}\r\n\r\nexport default React.memo(GlobalHeaderDesktop);\r\n","import * as React from 'react';\r\nimport { cn } from '../../../helpers';\r\n\r\nfunction GlobalHeaderMenuIcon(props: GlobalHeaderMenuIcon) {\r\n const { onClick, isActive } = props;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default React.memo(GlobalHeaderMenuIcon);\r\n","import * as React from 'react';\r\nimport Typeahead from '../../_common/typeahead-old';\r\n\r\nimport { ReactComponent as SearchIcon } from '../../../assets/svg/icons/search.svg';\r\nimport { getText } from '../../../helpers';\r\n\r\nconst placeholder = getText('generic.typeAheadPlaceholder');\r\nconst title = getText('generic.search');\r\n\r\nfunction GlobalHeaderSearchOverlayIcon() {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nfunction GlobalHeaderSearchOverlay() {\r\n\r\n React.useEffect(() => {\r\n document.body.classList.add('kill-scroll');\r\n document.documentElement.classList.add('kill-scroll');\r\n return () => {\r\n document.body.classList.remove('kill-scroll');\r\n document.documentElement.classList.remove('kill-scroll');\r\n };\r\n });\r\n\r\n return (\r\n
    \r\n
    \r\n
    {title}
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nexport default React.memo(GlobalHeaderSearchOverlay);\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport * as React from 'react';\r\nimport SPGVariables from '../../../utilities/spg-variables';\r\n\r\nconst spgVariables = SPGVariables();\r\nconst languages = spgVariables.SUPPORTED_LANGUAGES;\r\nconst RightMenuItem = function RightMenuItem(props: BlackhatMenuItemProps) {\r\n const { nodeRef, onClick, isVisible, navOpenMobile, title, classNameProp, menuItems, isLangSelector, onMobileClick } = props;\r\n\r\n const handleItemClick = (event: React.SyntheticEvent, url: string, text: string, langCode = 'en') => {\r\n if (isLangSelector) {\r\n event.preventDefault();\r\n const langRegex = new RegExp(\r\n languages\r\n .map((lang: string) => {\r\n return `/${lang}/|/${lang}`;\r\n })\r\n .join('|')\r\n );\r\n // remove filters when language changed\r\n let search = window.location.search\r\n .split('&')\r\n .filter(str => !str.includes('filters='))\r\n .join('&')\r\n .replace('?', '');\r\n search = search.length > 0 ? `?${search}` : search;\r\n const lang = `/${langCode}/`;\r\n const href = `${window.location.origin}${window.location.pathname.replace(langRegex, lang)}${search}`;\r\n window.location.href = `${href}`;\r\n }\r\n };\r\n const handleMenuClick = (event: React.SyntheticEvent) => {\r\n event.preventDefault();\r\n if (onMobileClick) onMobileClick(classNameProp);\r\n else onClick(!navOpenMobile);\r\n };\r\n const getLangName = (langCode: string) => {\r\n switch (langCode) {\r\n case 'zh':\r\n return 'Chinese';\r\n case 'ja':\r\n return 'Japanese';\r\n default:\r\n return '';\r\n }\r\n };\r\n\r\n return (\r\n
    \r\n \r\n {title}\r\n \r\n { isVisible && navOpenMobile && (\r\n
      \r\n {menuItems.map(item => {\r\n return (\r\n
    • \r\n handleItemClick(event, item.link, item.label, item.langCode)}\r\n >\r\n {item.label}\r\n {(item.langCode !== 'en') ? {getLangName(item.langCode)} : ''}\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 React.memo(RightMenuItem);\r\n","import * as React from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport Media from 'react-media';\r\nimport RightMenuItem from '../../blackhat-header-footer/header/blackhat-right-menu-item';\r\nimport CustomLink from '../../_common/custom-link';\r\nimport SignInButton from '../../_common/sign-in-button';\r\nimport SignUpButton from '../../_common/sign-up-button';\r\nimport { cn, getText, get, getConfig, validInternalUser } from '../../../helpers';\r\nimport spgvariables from '../../../utilities/spg-variables';\r\n\r\nimport APIManager from '../../../utilities/api-manager';\r\nimport HistoryInstance from '../../../utilities/history';\r\nimport Dropdown from '../../_common/dropdown-button';\r\n\r\nconst globalNavText = getText('globalNav');\r\n\r\nconst myAccountText = getText('generic.myAccount');\r\n\r\nconst SPGVariables = spgvariables();\r\n\r\nconst linkItems: GlobalHeaderLink[] = Object.values(globalNavText);\r\n\r\n\r\nconst data = getText('blackHeader');\r\nconst supportedLangs = SPGVariables.SUPPORTED_LANGUAGES;\r\n\r\nconst langCode = getText('langCode');\r\n\r\nfunction GlobalHeaderSubMenuMobile(props: GlobalHeaderSubMenuProps) {\r\n const { dropDownItems, text, headerId = '' } = props;\r\n const [isActive, setIsActive] = React.useState(false);\r\n const [reqHeader, setReqHeader] = React.useState('');\r\n\r\n\r\n React.useEffect(() => {\r\n setIsActive(HistoryInstance.location.pathname.includes(`/${headerId.toLowerCase()}/`));\r\n const historyListener = HistoryInstance.listen(location => {\r\n setIsActive(location.pathname.includes(`/${headerId.toLowerCase()}/`));\r\n });\r\n const userOriginCountryCodeFromSession = sessionStorage.getItem('userOriginCountryCode');\r\n if (userOriginCountryCodeFromSession === null) {\r\n APIManager.getReqHeaderByName('PMUSER_COUNTRY_CODE').then(response => {\r\n setReqHeader(response.headers.userorigincountrycode || '');\r\n sessionStorage.setItem('userOriginCountryCode', response.headers.userorigincountrycode);\r\n });\r\n } else {\r\n setReqHeader(userOriginCountryCodeFromSession);\r\n }\r\n return () => {\r\n historyListener();\r\n };\r\n }, []);\r\n return (\r\n (\r\n
    \r\n \r\n

    {item.subText}

    \r\n
    \r\n ))}\r\n buttonContent={\r\n <>\r\n {text}\r\n \r\n }\r\n buttonClass=\"global-header-sub-menu__link\"\r\n menuGrp={text}\r\n isMobile\r\n />\r\n );\r\n}\r\n\r\nfunction GlobalHeaderMenu(props: FeatureFlags) {\r\n const [investorNavVisible, investorNavOpen] = React.useState(false);\r\n const [supportNavVisible, supportNavOpen] = React.useState(false);\r\n const [siteIsDesktop, setSiteDesktop] = React.useState(false);\r\n const [languageNavVisible, languageNavOpen] = React.useState(false);\r\n const dropdownTwo = React.useRef(null);\r\n const dropdownThree = React.useRef(null);\r\n const dropdownFour = React.useRef(null);\r\n\r\n const breakPoint = getConfig('routes.homepage.blackhatBreakpoint');\r\n const handleResize = () => {\r\n const curWidth = window.innerWidth;\r\n if (curWidth > breakPoint && !siteIsDesktop) {\r\n setSiteDesktop(true);\r\n } else if (curWidth <= breakPoint && siteIsDesktop) {\r\n setSiteDesktop(false);\r\n }\r\n };\r\n\r\n handleResize();\r\n\r\n React.useEffect(() => {\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 const getLangURL = (lancCode: string) => {\r\n return `${window.location.origin}/${lancCode}/`;\r\n };\r\n\r\n const languages = [\r\n { label: 'English', link: getLangURL('en'), langCode: 'en' },\r\n { label: '中文', link: getLangURL('zh'), langCode: 'zh' },\r\n { label: '日本語', link: getLangURL('ja'), langCode: 'ja' }\r\n ];\r\n\r\n React.useEffect(() => {\r\n document.body.classList.add('kill-scroll');\r\n document.documentElement.classList.add('kill-scroll');\r\n return () => {\r\n document.body.classList.remove('kill-scroll');\r\n document.documentElement.classList.remove('kill-scroll');\r\n };\r\n });\r\n const { fflagEnableQueryBuilder } = props;\r\n\r\n const isUserLoggedIn = useSelector((state: RootStoreState) => get(state, 'user.isLoggedIn', false));\r\n const isValidInternalUser = validInternalUser(useSelector((state: RootStoreState) => get(state, 'user')));\r\n const enabledBlueprintFlag = useSelector((state: RootStoreState) => get(state, 'shared.flags.enabledBlueprintFlag', false));\r\n\r\n const getHeight = () => {\r\n const parent = document.getElementsByClassName('global-header-mobile')[0];\r\n if (parent) {\r\n const rect = parent.getBoundingClientRect();\r\n return `calc(100vh - ${rect.top}px - ${rect.height}px + 1px)`;\r\n }\r\n return '100vh';\r\n };\r\n\r\n const onClick = (item: string) => {\r\n if (item === 'investor') {\r\n investorNavOpen(!investorNavVisible);\r\n languageNavOpen(false);\r\n supportNavOpen(false);\r\n } else if (item === 'language') {\r\n languageNavOpen(!languageNavVisible);\r\n investorNavOpen(false);\r\n supportNavOpen(false);\r\n } else if (item === 'support') {\r\n supportNavOpen(!supportNavVisible);\r\n investorNavOpen(false);\r\n languageNavOpen(false);\r\n }\r\n };\r\n\r\n const filterOutDropDownItems = (list: any[]) => {\r\n return isUserLoggedIn && isValidInternalUser ? list :\r\n list.filter(el => !el.hideForNonLoggedInUser);\r\n };\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n}\r\n\r\nexport default React.memo(GlobalHeaderMenu);\r\n","import * as React from 'react';\r\nimport { NavLink, useLocation } from 'react-router-dom';\r\nimport Modal from '../../_common/modal';\r\nimport BurgerIcon from '../global-header-menu-icon';\r\nimport SearchOverlay from '../global-header-search-overlay';\r\nimport Menu from '../global-header-menu';\r\nimport { ReactComponent as SPLogo } from '../../../assets/svg/standard-and-poor-global-marketplace.svg';\r\nimport { ReactComponent as SearchIcon } from '../../../assets/svg/icons/search.svg';\r\nimport { cn, getText } from '../../../helpers';\r\nimport HistoryInstance from '../../../utilities/history';\r\n\r\nconst homeText = getText('generic.home');\r\nconst langCode = getText('langCode');\r\n\r\nfunction GlobalHeaderMobile(props: FeatureFlags) {\r\n const [showMobileNav, setShowMobileNav] = React.useState(false);\r\n const [modalIsOpen, setModalOpen] = React.useState(false);\r\n\r\n React.useEffect(() => {\r\n const historyListener = HistoryInstance.listen(() => {\r\n setShowMobileNav(false);\r\n });\r\n return () => {\r\n historyListener();\r\n };\r\n }, []);\r\n\r\n // temporarily solution, till we use old searchbar view\r\n const handleOldSearchButtonClick = (e: React.MouseEvent) => {\r\n e.stopPropagation();\r\n setModalOpen(true);\r\n };\r\n\r\n const handleSearchButtonClick = (e: React.MouseEvent) => {\r\n setShowMobileNav(false);\r\n e.stopPropagation();\r\n // this is urgent fix of mobile search button click listener\r\n // we shouls uncomment onSearchIconClick property call and not use the event listener\r\n // the problem is - overlay is not opening on search button click on the staging\r\n document.dispatchEvent(new Event('MobileSearchButtonClickEvent'));\r\n };\r\n\r\n const handleHeaderBodyClick = () => {\r\n // this is urgent fix of mobile search button click listener\r\n document.dispatchEvent(new Event('MobileHeaderBodyClickEvent'));\r\n };\r\n\r\n return (\r\n
    handleHeaderBodyClick()} onKeyDown={() => handleHeaderBodyClick()} className={cn('global-header-mobile', 'page-section')} data-testid=\"global-header-mobile\">\r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n {showMobileNav && }\r\n
    \r\n );\r\n}\r\n\r\nexport default React.memo(GlobalHeaderMobile);\r\n","import * as React from 'react';\r\nimport Media from 'react-media';\r\nimport SPGVariables from '../../utilities/spg-variables';\r\nimport Desktop from './global-header-desktop';\r\nimport Mobile from './global-header-mobile';\r\n\r\nconst spgVariables = SPGVariables();\r\n\r\nfunction GlobalHeader(props: FeatureFlags) {\r\n const handleSearchIconClick = () => {\r\n const event = new Event('HeaderSearchClick');\r\n document.dispatchEvent(event);\r\n };\r\n\r\n const handleHeaderBodyClick = () => {\r\n const event = new Event('HeaderBodyClick');\r\n document.dispatchEvent(event);\r\n };\r\n\r\n if (spgVariables.DEVICE_ISMOBILE) return ;\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\nexport default React.memo(GlobalHeader);\r\n","import * as React from 'react';\r\nimport { getText } from '../../../helpers';\r\n\r\nconst data = getText('blackFooter');\r\nconst BlackhatFooter = function BlackhatFooter() {\r\n const [xImgSrc, setXImgSrc] = React.useState('/x-twitter.jpg');\r\n\r\n const handleMouseEnter = () => {\r\n setXImgSrc('/x-twitter-grey.png');\r\n };\r\n\r\n const handleMouseLeave = () => {\r\n setXImgSrc('/x-twitter.jpg');\r\n };\r\n\r\n return (\r\n
    \r\n
    \r\n
      \r\n {data.primaryLinks.map((item: AnonymousObject) => {\r\n return (\r\n
    • \r\n \r\n {item.label}\r\n \r\n
    • \r\n );\r\n })}\r\n
    \r\n \r\n
    \r\n
      \r\n {data.socialLinks.map((item: AnonymousObject) => {\r\n if (item.label === 'twitter') {\r\n return (\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 );\r\n })}\r\n
    \r\n
      \r\n {data.noticeLinks.map((item: AnonymousObject) => {\r\n const target = item.target ? item.target : '_self';\r\n const relAttribute = item.target ? 'noopener noreferrer' : '';\r\n const listItem = item.url ? (\r\n {}}>\r\n {item.label}\r\n \r\n ) : (\r\n item.label.replace('{year}', new Date().getFullYear())\r\n );\r\n return (\r\n
    • \r\n {listItem}\r\n
    • \r\n );\r\n })}\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default React.memo(BlackhatFooter);\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport * as React from 'react';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport { SlideDown } from 'react-slidedown';\r\nimport SPGVariables from '../../../utilities/spg-variables';\r\nimport 'react-slidedown/lib/slidedown.css';\r\n\r\nconst spgVariables = SPGVariables();\r\nconst languages = spgVariables.SUPPORTED_LANGUAGES;\r\nconst LeftMenuItem = function LeftMenuItem(props: BlackhatMenuItemProps) {\r\n const { nodeRef, onClick, isVisible, navOpenMobile, title, menuItems, isLangSelector } = props;\r\n\r\n const handleItemClick = (event: React.SyntheticEvent, url: string, text: string, langCode = 'en') => {\r\n if (isLangSelector) {\r\n event.preventDefault();\r\n const langRegex = new RegExp(\r\n languages\r\n .map((lang: string) => {\r\n return `/${lang}/|/${lang}`;\r\n })\r\n .join('|')\r\n );\r\n // remove filters when language changed\r\n let search = window.location.search\r\n .split('&')\r\n .filter(str => !str.includes('filters='))\r\n .join('&')\r\n .replace('?', '');\r\n search = search.length > 0 ? `?${search}` : search;\r\n const lang = `/${langCode}/`;\r\n const href = `${window.location.origin}${window.location.pathname.replace(langRegex, lang)}${search}`;\r\n window.location.href = `${href}`;\r\n }\r\n };\r\n const handleMenuClick = (event: React.SyntheticEvent) => {\r\n event.preventDefault();\r\n onClick(!navOpenMobile);\r\n };\r\n return (\r\n
    \r\n \r\n {title}\r\n \r\n \r\n
    \r\n
    \r\n \r\n {menuItems.map(item => {\r\n return (\r\n
  • \r\n handleItemClick(event, item.link, item.label, item.langCode)}\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\n );\r\n};\r\n\r\nexport default React.memo(LeftMenuItem);\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport * as React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport Media from 'react-media';\r\nimport LeftMenuItem from './blackhat-left-menu-item';\r\nimport RightMenuItem from './blackhat-right-menu-item';\r\nimport { getConfig, getText, get } from '../../../helpers';\r\nimport SPGVariables from '../../../utilities/spg-variables';\r\n\r\nconst data = getText('blackHeader');\r\nconst spgVariables = SPGVariables();\r\nconst supportedLangs = spgVariables.SUPPORTED_LANGUAGES;\r\nconst BlackhatHeader = function BlackhatHeader(props: FeatureFlags) {\r\n\r\n const { enableTranslations } = props;\r\n const [siteNavVisible, siteNavOpen] = React.useState(false);\r\n const [investorNavVisible, investorNavOpen] = React.useState(false);\r\n const [supportNavVisible, supportNavOpen] = React.useState(false);\r\n const [siteIsDesktop, setSiteDesktop] = React.useState(false);\r\n const [languageNavVisible, languageNavOpen] = React.useState(false);\r\n const dropdownOne = React.useRef(null);\r\n const dropdownTwo = React.useRef(null);\r\n const dropdownThree = React.useRef(null);\r\n const dropdownFour = React.useRef(null);\r\n const breakPoint = getConfig('routes.homepage.blackhatBreakpoint');\r\n\r\n const handleResize = () => {\r\n const curWidth = window.innerWidth;\r\n if (curWidth > breakPoint && !siteIsDesktop) {\r\n setSiteDesktop(true);\r\n } else if (curWidth <= breakPoint && siteIsDesktop) {\r\n setSiteDesktop(false);\r\n }\r\n };\r\n\r\n handleResize();\r\n\r\n const handleClickAway = (event: Event) => {\r\n if (dropdownOne.current && event.target !== null) {\r\n if (!dropdownOne.current.contains(event.target as Node)) {\r\n siteNavOpen(false);\r\n }\r\n }\r\n if (dropdownTwo.current && event.target !== null) {\r\n if (!dropdownTwo.current.contains(event.target as Node)) {\r\n investorNavOpen(false);\r\n }\r\n }\r\n if (dropdownThree.current && event.target !== null) {\r\n if (!dropdownThree.current.contains(event.target as Node)) {\r\n supportNavOpen(false);\r\n }\r\n }\r\n if (dropdownFour.current && event.target !== null) {\r\n if (!dropdownFour.current.contains(event.target as Node)) {\r\n languageNavOpen(false);\r\n }\r\n }\r\n };\r\n\r\n React.useEffect(() => {\r\n window.addEventListener('resize', handleResize);\r\n document.addEventListener('click', handleClickAway);\r\n document.addEventListener('touchend', handleClickAway);\r\n\r\n return () => {\r\n window.removeEventListener('resize', handleResize);\r\n document.removeEventListener('click', handleClickAway);\r\n document.removeEventListener('touchend', handleClickAway);\r\n };\r\n });\r\n\r\n const getLangURL = (lancCode: string) => {\r\n return `${window.location.origin}/${lancCode}/`;\r\n };\r\n\r\n const languages = [\r\n { label: 'English', link: getLangURL('en'), langCode: 'en' },\r\n { label: '中文', link: getLangURL('zh'), langCode: 'zh' },\r\n { label: '日本語', link: getLangURL('ja'), langCode: 'ja' }\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\nconst mapStateToProps = (state: RootStoreState): FeatureFlags => {\r\n return {\r\n enableTranslations: get(state, 'shared.flags.enableTranslations')\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps)(React.memo(BlackhatHeader));\r\n","import * as React from 'react';\r\nimport { useOktaAuth } from '@okta/okta-react';\r\nimport { useParams } from 'react-router-dom';\r\nimport { getText } from '../../helpers';\r\n\r\n/**\r\n * This component mirrors the LoginCallback provided by okta-react except it will redirect the user\r\n * to the previous page that triggered the auth flow in the event an error occurs.\r\n */\r\n\r\nconst langCode = getText('langCode');\r\n\r\nexport default function OktaLoginCallback(): null {\r\n const { oktaAuth, authState } = useOktaAuth();\r\n const { type } = useParams();\r\n\r\n React.useEffect(() => {\r\n if (oktaAuth && oktaAuth.options) {\r\n oktaAuth.options.redirectUri = `${window.location.origin}/${langCode}/${type}/demos/auth/callback`;\r\n }\r\n\r\n oktaAuth.handleLoginRedirect();\r\n\r\n if (!authState.isPending && authState.error) {\r\n const location = oktaAuth.getOriginalUri();\r\n window.location.assign(location);\r\n }\r\n }, [oktaAuth, authState]);\r\n\r\n return null;\r\n}\r\n","import React from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { Route, RouteComponentProps, RouteProps, useHistory } from 'react-router-dom';\r\nimport { get, getConfig } from '../../helpers';\r\nimport store from '../../redux/store';\r\n\r\nconst RedirectToLoginPage = () => {\r\n const signInUrl = getConfig('urls.mi.ssacs.oktaSignIn');\r\n const returnUrl = `?mpurl=${encodeURIComponent(window.location.pathname)}`;\r\n import('../application-insights').then(AppInsights => {\r\n const appInsights = AppInsights.default;\r\n if (appInsights) appInsights.flush();\r\n window.location.href = `${signInUrl + returnUrl}`;\r\n });\r\n return
    ;\r\n};\r\n\r\nconst ProtectedRoute = function ProtectedRoute({ component: Component, ...rest }: RouteProps) {\r\n const { isLoggedIn } = store.getState().user;\r\n const history = useHistory();\r\n const token = localStorage.getItem('token');\r\n\r\n if (!Component) {\r\n return null;\r\n }\r\n\r\n if (isLoggedIn) return ) => } />;\r\n\r\n return !token ? history.push('/') : RedirectToLoginPage();\r\n};\r\n\r\nexport default React.memo(ProtectedRoute);\r\n","import React from 'react';\r\nimport { Route, RouteComponentProps, RouteProps } from 'react-router-dom';\r\nimport store from '../../redux/store';\r\nimport history from '../history';\r\n\r\nconst RedirectToHomePage = () => {\r\n history.push('/');\r\n return
    ;\r\n};\r\n\r\nconst AnnonymousUserRoute = function AnnonymousUserRoute({ component: Component, ...rest }: RouteProps) {\r\n const { isLoggedIn } = store.getState().user;\r\n\r\n if (!Component) {\r\n return null;\r\n }\r\n\r\n if (!isLoggedIn) return ) => } />;\r\n\r\n return RedirectToHomePage();\r\n};\r\n\r\nexport default React.memo(AnnonymousUserRoute);\r\n","import * as React from 'react';\r\nimport Button from '../_common/button';\r\nimport HtmlContent from '../_common/html-content';\r\nimport HelmetManager from '../_common/helmet-manager';\r\n\r\nimport { getText } from '../../helpers';\r\nimport './error-message.style.scss';\r\n\r\nconst errorMessageTitle = getText('generic.errorMessageTitle');\r\nconst tryAgain = getText('generic.tryAgain');\r\nconst langCode = getText('langCode');\r\nconst errorMessageContact = getText('generic.errorMessageContact');\r\nconst metaDataText = getText('pages.errorPage.metaData');\r\n\r\nexport default function ErrorMessage() {\r\n const reload = () => {\r\n if (window.location.href.indexOf('/404') > -1) {\r\n window.location.href = `/${langCode}`;\r\n } else {\r\n window.location.reload();\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n \r\n
    \r\n
    \r\n

    {errorMessageTitle}

    \r\n
    \r\n
    \r\n \r\n );\r\n}\r\n","import * as React from 'react';\r\nimport { Router, Switch, Route, Redirect } from 'react-router-dom';\r\nimport { connect, useSelector } from 'react-redux';\r\nimport { Security } from '@okta/okta-react';\r\nimport { OktaAuth } from '@okta/okta-auth-js';\r\nimport Store from '../redux/store';\r\nimport { SET_FLAGS } from '../redux/actionTypes';\r\nimport {\r\n HomePage,\r\n ProductFinderPage,\r\n SearchResultsPage,\r\n DatasetsPage,\r\n DatasetPage,\r\n DatasetBundlePage,\r\n SolutionsPage,\r\n SolutionPage,\r\n ProfilePage,\r\n NewUserSignUpPage,\r\n DataVendorPage,\r\n FAQPage,\r\n QueryLibraryPage,\r\n QueryBuilderPage,\r\n BuildQueryPage,\r\n QueryBuilderDownload,\r\n BlueprintPage,\r\n BlueprintsPage,\r\n QueryLibraryProfilePage\r\n} from '../utilities/router-manager';\r\nimport security from '../utilities/security';\r\nimport SPGVariables from '../utilities/spg-variables';\r\nimport history from '../utilities/history';\r\nimport GlobalHeader from '../components/global-header';\r\nimport BlackhatFooter from '../components/blackhat-header-footer/footer';\r\nimport BlackhatHeader from '../components/blackhat-header-footer/header';\r\nimport ErrorBoundary from '../components/_common/error-boundary';\r\nimport OktaLoginCallback from '../components/okta-login-callback';\r\nimport ProtectedRoute from '../utilities/protected-route';\r\nimport AnnonymousRoute from '../utilities/annonymous-route';\r\nimport Loader from '../components/_common/loader';\r\nimport ErrorMessage from '../components/error-message';\r\nimport { getText, get } from '../helpers';\r\nimport APIManager from '../utilities/api-manager';\r\n\r\nconst spgVariables = SPGVariables();\r\nconst isDev = process.env.NODE_ENV === 'development';\r\nconst AsyncFakeLogin = isDev ? React.lazy(() => import('./fake-login' /* webpackChunkName: \"fake-login\" */)) : null;\r\nconst langCode = getText('langCode');\r\nconst oktaAuth = new OktaAuth({\r\n pkce: true,\r\n issuer: spgVariables.OKTA_ISSUER_URL,\r\n clientId: spgVariables.OKTA_CLIENT_ID,\r\n // TODO Standardize to /okta/auth/callback\r\n redirectUri: `${window.location.origin}/${langCode}/solutions/demos/auth/callback`,\r\n scopes: ['openid', 'kensho:app:link-model-server', 'kensho:app:scribe', 'kensho:app:nerd']\r\n});\r\n\r\nconst Routes = (props: FeatureFlags) => {\r\n const [reqHeader, setReqHeader] = React.useState('');\r\n const redirectUser = React.useCallback((authService: OktaAuth) => {\r\n authService.signInWithRedirect({\r\n // Skip Okta login page by explicitly specifying the IDP to use for login\r\n idp: spgVariables.OKTA_IDP_ID\r\n });\r\n }, []);\r\n const [isAuthenticationProcessCompleted, setIsAuthenticationProcessCompleted] = React.useState(false);\r\n const [showPages, setShowPages] = React.useState(false);\r\n const isLoggedIn = useSelector((st: RootStoreState) => st.user.isLoggedIn);\r\n const userInfo = useSelector((st: RootStoreState) => st.user.userInfo);\r\n const enabledBlueprintFlag = useSelector((state: RootStoreState) => get(state, 'shared.flags.enabledBlueprintFlag', false));\r\n React.useEffect(() => {\r\n const userOriginCountryCodeFromSession = sessionStorage.getItem('userOriginCountryCode');\r\n if (userOriginCountryCodeFromSession === null) {\r\n APIManager.getReqHeaderByName('PMUSER_COUNTRY_CODE').then(response => {\r\n setReqHeader(response.headers.userorigincountrycode || '');\r\n sessionStorage.setItem('userOriginCountryCode', response.headers.userorigincountrycode);\r\n });\r\n } else {\r\n setReqHeader(userOriginCountryCodeFromSession || '');\r\n }\r\n const checkAuthentication = async () => {\r\n await oktaAuth.isAuthenticated();\r\n setIsAuthenticationProcessCompleted(true);\r\n };\r\n checkAuthentication();\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n if (isAuthenticationProcessCompleted && (!isLoggedIn || (isLoggedIn && userInfo))) {\r\n setShowPages(true);\r\n }\r\n }, [isAuthenticationProcessCompleted, isLoggedIn, userInfo]);\r\n\r\n const { fflagEnableQueryBuilder, hideFooterFlag } = props;\r\n\r\n const handlePageLeave = () => {\r\n if (!history.location.pathname.includes('/search-results')) {\r\n Store.dispatch({ flags: { hideFooterFlag: false }, type: SET_FLAGS });\r\n }\r\n };\r\n\r\n React.useEffect(() => {\r\n const unlisten = history.listen(() => {\r\n handlePageLeave();\r\n });\r\n\r\n return () => {\r\n unlisten();\r\n };\r\n }, [history]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n
    \r\n }>\r\n }>\r\n {showPages && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n { enabledBlueprintFlag && ()}\r\n { enabledBlueprintFlag && ()}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {(spgVariables.SPGVARS_QUERY_BUILDER || fflagEnableQueryBuilder) && }\r\n {(spgVariables.SPGVARS_QUERY_BUILDER || fflagEnableQueryBuilder) && }\r\n {(spgVariables.SPGVARS_QUERY_BUILDER || fflagEnableQueryBuilder) && }\r\n {AsyncFakeLogin && }\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n
    \r\n {!hideFooterFlag && }\r\n
    \r\n
    \r\n );\r\n};\r\n\r\n\r\nconst mapStateToProps = (state: RootStoreState): FeatureFlags => {\r\n return {\r\n fflagEnableQueryBuilder: get(state, 'shared.flags.fflagEnableQueryBuilder'),\r\n hideFooterFlag: get(state, 'shared.flags.hideFooterFlag')\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps)(React.memo(Routes));\r\n","import * as React from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport Notification from '../_common/notification';\r\nimport { get, getText } from '../../helpers';\r\n\r\nconst errorMessage = getText('generic.errorMessage');\r\n\r\nconst position = {\r\n vertical: 'top',\r\n horizontal: 'right'\r\n};\r\n\r\nlet cachedError = '';\r\n\r\nfunction NotificationContainer({ message = errorMessage, variant = 'error' }: NotificationContainerProps) {\r\n const [hasError, setHasError] = React.useState(false);\r\n\r\n const errorState = useSelector(\r\n (state: RootStoreState) => {\r\n return get(state, 'errors');\r\n },\r\n errors => errors.lastErrorTime === ''\r\n );\r\n\r\n const isNewError = errorState.lastErrorTime !== cachedError;\r\n\r\n if (isNewError) setHasError(true);\r\n\r\n cachedError = errorState.lastErrorTime;\r\n\r\n return hasError ? setHasError(false)} /> : null;\r\n}\r\n\r\nexport default React.memo(NotificationContainer);\r\n","import SPGVariables from './spg-variables';\r\n\r\nconst spgVariables = SPGVariables();\r\n\r\nif (!(spgVariables.IS_RENDERTRON_REQUEST || spgVariables.IS_CRAWLER_REQUEST)) {\r\n let link = document.createElement('link');\r\n link.rel = 'preconnect';\r\n link.type = 'text/plain';\r\n link.crossOrigin = 'anonymous';\r\n link.className = 'optanon-category-C0002';\r\n link.href = '//munchkin.marketo.net';\r\n document.getElementsByTagName('head')[0].appendChild(link);\r\n\r\n link = document.createElement('link');\r\n link.type = 'text/plain';\r\n link.rel = 'preconnect';\r\n link.className = 'optanon-category-C0002';\r\n link.crossOrigin = 'anonymous';\r\n link.href = `//${spgVariables.MARKETO_MUNCHKINID}.mktoresp.com`;\r\n document.getElementsByTagName('head')[0].appendChild(link);\r\n\r\n const bizible = document.createElement('script');\r\n bizible.type = 'text/plain';\r\n bizible.className = 'optanon-category-C0002';\r\n bizible.src = '//cdn.bizible.com/scripts/bizible.js';\r\n bizible.async = true;\r\n document.getElementsByTagName('head')[0].appendChild(bizible);\r\n}\r\n\r\nexport default function marketoTracker() {\r\n if (spgVariables.IS_RENDERTRON_REQUEST || spgVariables.IS_CRAWLER_REQUEST) return;\r\n\r\n const script = document.createElement('script');\r\n script.type = 'text/plain';\r\n script.className = 'optanon-category-C0002';\r\n const marketoScript =\r\n `(function() {\r\n var didInit = false;\r\n function initMunchkin() {\r\n if(didInit === false) {\r\n didInit = true;\r\n Munchkin.init('${spgVariables.MARKETO_MUNCHKINID}');\r\n }\r\n }\r\n var s = document.createElement('script');\r\n s.type = 'text/javascript';\r\n s.async = true;\r\n s.src = '//munchkin.marketo.net/munchkin.js';\r\n s.onreadystatechange = function() {\r\n if(this.readyState == 'complete' || this.readyState == 'loaded') {\r\n initMunchkin();\r\n }\r\n };\r\n s.onload = initMunchkin;\r\n document.getElementsByTagName('head')[0].appendChild(s);\r\n })();`;\r\n script.innerHTML = marketoScript;\r\n document.getElementsByTagName('head')[0].appendChild(script);\r\n}\r\n","import SPGVariables from './spg-variables';\r\n\r\nconst spgVariables = SPGVariables();\r\n\r\nif (!(spgVariables.IS_RENDERTRON_REQUEST || spgVariables.IS_CRAWLER_REQUEST)) {\r\n const link = document.createElement('link');\r\n link.rel = 'dns-prefetch';\r\n link.crossOrigin = 'anonymous';\r\n link.href = '//cdn.cookielaw.org';\r\n document.getElementsByTagName('head')[0].appendChild(link);\r\n}\r\n\r\nfunction cookieNotice() {\r\n if (!(spgVariables.IS_RENDERTRON_REQUEST || spgVariables.IS_CRAWLER_REQUEST)) {\r\n const scriptJs = document.createElement('script');\r\n scriptJs.type = 'text/javascript';\r\n scriptJs.src = 'https://cdn.cookielaw.org/scripttemplates/otSDKStub.js';\r\n scriptJs.charset = 'UTF-8';\r\n scriptJs.async = true;\r\n scriptJs.crossOrigin = 'anonymous';\r\n scriptJs.setAttribute('data-domain-script', spgVariables.ONE_TRUST_COOKIE_GUID);\r\n scriptJs.setAttribute('data-document-language', 'true');\r\n document.getElementsByTagName('head')[0].appendChild(scriptJs);\r\n\r\n const scriptWrapper = document.createElement('script');\r\n scriptWrapper.type = 'text/javascript';\r\n scriptWrapper.innerHTML = 'function OptanonWrapper() { }';\r\n document.getElementsByTagName('head')[0].appendChild(scriptWrapper);\r\n }\r\n}\r\n\r\nexport { cookieNotice as default };\r\n","import { detectLanguage } from '../helpers';\r\nimport SPGVariables from './spg-variables';\r\n\r\nconst spgVariables = SPGVariables();\r\nconst setLanguageContext = () => {\r\n const results = detectLanguage();\r\n if (!spgVariables.IS_SERVER_REQUEST && results.doRedirect) {\r\n window.location.href = `${window.location.origin}/${results.langCode}${window.location.pathname}${window.location.search}`;\r\n }\r\n};\r\n\r\nexport default setLanguageContext;\r\n","import * as LDClient from 'launchdarkly-js-client-sdk';\r\nimport camelCase from 'lodash.camelcase';\r\nimport { setFeatureFlags } from '../redux/shared/shared.actions';\r\nimport Store from '../redux/store';\r\nimport { getConfig } from '../helpers';\r\nimport spgVariables from './spg-variables';\r\n\r\n\r\nconst spgVars = spgVariables();\r\n\r\nlet ldClient: LDClient.LDClient;\r\n\r\n// WARNING!!!\r\n// Fields being added here need to be reviewed through legal !!!\r\n// Please refer to the documentation located here: https://spglobal.visualstudio.com/SNLServiceModules/_git/spg-webplatform-featureflags?path=%2FREADME.md&_a=preview\r\n\r\n\r\nconst initFlags = (flags: AnonymousObject) => {\r\n const flagValues: AnonymousObject = {};\r\n Object.keys(flags).forEach(key => {\r\n const camelCasedKey = camelCase(key);\r\n flagValues[camelCasedKey] = flags[key];\r\n });\r\n Store.dispatch(setFeatureFlags(flags));\r\n};\r\n\r\nconst setFlags = (flags: AnonymousObject) => {\r\n const flagValues: AnonymousObject = { isLDReady: true };\r\n Object.keys(flags).forEach(key => {\r\n const camelCasedKey = camelCase(key);\r\n flagValues[camelCasedKey] = ldClient.variation(key, flags[key]);\r\n });\r\n Store.dispatch(setFeatureFlags(flagValues));\r\n};\r\n\r\nconst subscribeToChanges = (flags: AnonymousObject) => {\r\n Object.keys(flags).forEach(flag => {\r\n const camelCasedKey = camelCase(flag);\r\n ldClient.on(`change:${flag}`, current => {\r\n const newFlagValue: AnonymousObject = {};\r\n newFlagValue[camelCasedKey] = current;\r\n Store.dispatch(setFeatureFlags(newFlagValue));\r\n });\r\n });\r\n};\r\n\r\nconst getUser = (userProfile?: UserInfo | null): LDClient.LDUser => {\r\n if (userProfile) {\r\n const user = {\r\n // WARNING - READ ABOVE\r\n key: userProfile.KeyOnlineUser,\r\n // WARNING - READ ABOVE\r\n country: userProfile.Country,\r\n // WARNING - READ ABOVE\r\n custom: {\r\n // WARNING - READ ABOVE\r\n internalUser: userProfile.InternalUser,\r\n // WARNING - READ ABOVE\r\n webpartProfile: userProfile.KeyWebpartProfile,\r\n // WARNING - READ ABOVE\r\n userCompanyDepartment: userProfile.KeyOnlineUserCompanyDepartment,\r\n // WARNING - READ ABOVE\r\n userCompanyType: userProfile.KeyOnlineUserCompanyType,\r\n // WARNING - READ ABOVE\r\n userCompanyRole: userProfile.KeyOnlineUserCompanyRole,\r\n // WARNING - READ ABOVE\r\n culture: userProfile.Culture,\r\n // WARNING - READ ABOVE\r\n timeZoneUSName: userProfile.TimeZoneUSName\r\n }\r\n };\r\n\r\n if (userProfile.InternalUser) {\r\n // WARNING - READ ABOVE\r\n return { ...user, email: userProfile.Email };\r\n }\r\n\r\n return user;\r\n }\r\n return {\r\n key: '0',\r\n anonymous: true\r\n };\r\n};\r\n\r\nexport default {\r\n init: (clientSideId: string, hash: string, relayProxy: string, user?: UserInfo) => {\r\n const flags: AnonymousObject = getConfig('featureFlagDefaults');\r\n const ldOptions: AnonymousObject = {\r\n hash,\r\n baseUrl: relayProxy,\r\n streamUrl: relayProxy\r\n };\r\n flags.fflagEnableQueryBuilder = spgVars.SPGVARS_QUERY_BUILDER;\r\n flags.enableKenshoDemos = spgVars.SPGVARS_ENABLE_KENSHO_DEMOS;\r\n flags.enableTranslations = spgVars.SPGVARS_ENABLE_TRANSLATIONS;\r\n flags.enabledBlueprintFlag = spgVars.SPGVARS_ENABLE_BLUEPRINT;\r\n initFlags(flags);\r\n ldClient = LDClient.initialize(clientSideId, getUser(user), ldOptions);\r\n\r\n ldClient.on('ready', () => {\r\n const flagsSanitised = ldClient.allFlags() || flags;\r\n setFlags(flagsSanitised);\r\n subscribeToChanges(flagsSanitised);\r\n });\r\n }\r\n};\r\n","import SPGVariables from './utilities/spg-variables';\r\n\r\nconst spgVariables = SPGVariables();\r\n\r\nfunction registerValidSW(swUrl: string) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n console.log('Offline fallback page is installed!');\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction register() {\r\n if (spgVariables.IS_RENDERTRON_REQUEST || spgVariables.IS_CRAWLER_REQUEST) return;\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n registerValidSW(swUrl);\r\n });\r\n }\r\n}\r\n\r\nexport { register as default };\r\n","import { hotjar } from 'react-hotjar';\r\n\r\n\r\nexport function hotjartracker() {\r\n const devId = '3295869';\r\n const stageId = '3295897';\r\n const prodId = '2724634';\r\n const script = document.createElement('script');\r\n script.type = 'text/plain';\r\n script.className = 'optanon-category-C0002';\r\n const hotjarScript = `(function(h,o,t,j,a,r){\r\n h.hj=h.hj||function(){(h.hj.q=h.hj.q||[]).push(arguments)};\r\n if(window.location.hostname.includes('dev')) {\r\n h._hjSettings={hjid:${devId},hjsv:6};\r\n } else if(window.location.hostname.includes('stage')) {\r\n h._hjSettings={hjid:${stageId},hjsv:6};\r\n } else {\r\n h._hjSettings={hjid:${prodId},hjsv:6}; \r\n }\r\n a=o.getElementsByTagName('head')[0];\r\n r=o.createElement('script');r.async=1;\r\n r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv;\r\n a.appendChild(r);\r\n })(window,document,'https://static.hotjar.com/c/hotjar-','.js?sv=');`;\r\n script.innerHTML = hotjarScript;\r\n document.getElementsByTagName('head')[0].appendChild(script);\r\n if (window.location.hostname.includes('dev')) {\r\n hotjar.initialize(3295869, 6, false);\r\n } else if (window.location.hostname.includes('stage')) {\r\n hotjar.initialize(3295897, 6, false);\r\n } else {\r\n hotjar.initialize(2724634, 6, false);\r\n }\r\n}\r\n\r\nexport default hotjartracker;\r\n","import './scss/style.scss';\r\nimport 'core-js/stable';\r\nimport 'fastestsmallesttextencoderdecoder';\r\nimport 'webcrypto-shim';\r\nimport 'regenerator-runtime/runtime';\r\nimport 'classlist-polyfill';\r\nimport { ThemeProvider } from '@material-ui/core/styles';\r\nimport { hydrateRoot, createRoot, Root } from 'react-dom/client';\r\nimport { Provider } from 'react-redux';\r\nimport * as React from 'react';\r\nimport initData from './utilities/init-data';\r\nimport gtmTracker from './utilities/gtm-tracker';\r\nimport { theme } from './theme/theme';\r\nimport Router from './routes/router';\r\nimport Store from './redux/store';\r\nimport NotificationContainer from './components/notification-container';\r\nimport ErrorBoundary from './components/_common/error-boundary';\r\nimport { fetchUserProfile, fetchUserPreference } from './redux/user/user.actions';\r\nimport { fetchQueryBuilderSteps } from './redux/querybuilder/query-builder.actions';\r\nimport security from './utilities/security';\r\nimport marketoTracker from './utilities/marketo-tracker';\r\nimport cookieNotice from './utilities/cookie-notice';\r\nimport setLanguageContext from './utilities/set-language-context';\r\nimport spgVariables from './utilities/spg-variables';\r\nimport featureFlags from './utilities/feature-flags';\r\nimport serviceWorkerRegistration from './serviceWorkerRegistration';\r\nimport hotjartracker from './utilities/tracker';\r\nimport datadogtracker from './utilities/tracker-datadog';\r\nimport history from './utilities/history';\r\n\r\nconst spgVars = spgVariables();\r\nconst anonymousText = 'Anonymous';\r\nconst Window = window as AnonymousObject;\r\n\r\nconst domNode = document.getElementById('root');\r\n\r\nif (!domNode) {\r\n throw new Error(\"The element #root wasn't found\");\r\n}\r\nconst cRoot = createRoot(domNode);\r\nconst hRoot = hydrateRoot(domNode, React.Component);\r\nWindow.dataLayer = Window.dataLayer || [];\r\nfunction renderApp(root: Root) {\r\n root.render(\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ,\r\n );\r\n}\r\n\r\nsetLanguageContext();\r\ncookieNotice();\r\ninitData(window.location.pathname);\r\ngtmTracker();\r\n\r\nsecurity\r\n .authenticate()\r\n .then(token => {\r\n if (token) {\r\n Store.dispatch(\r\n fetchUserProfile.action({\r\n onSuccess: (user: UserInfo) => {\r\n featureFlags.init(spgVars.LD_CLIENT_ID, spgVars.LD_SECRET_HASH, spgVars.LD_RELAYPROXY, user);\r\n console.log('Key Online User : ', user.KeyOnlineUser);\r\n Window.dataLayer.push({\r\n event: 'login',\r\n keyOnlineUser: user.KeyOnlineUser\r\n });\r\n }\r\n })\r\n );\r\n // Code snippet to have backward and forward compatibility from OKTA to IDM or viceversa hidden iframe\r\n const kenshoAutoLoginURL = 'https://secure.signin.spglobal.com/app/spglobaliam_wam12cprod_1/exk1ll4itvcxcfGlc1d8/sso/saml?RelayState=https://login.spglobal.com/favicon.ico';\r\n const noscript = document.createElement('noscript');\r\n const oktaiframe = document.createElement('iframe');\r\n oktaiframe.id = 'OktaToIDM12cBackwardCHandShakeUrlIFrame';\r\n oktaiframe.src = kenshoAutoLoginURL;\r\n oktaiframe.height = '0';\r\n oktaiframe.width = '0';\r\n oktaiframe.style.visibility = 'hidden';\r\n oktaiframe.style.display = 'none';\r\n noscript.appendChild(oktaiframe);\r\n document.getElementsByTagName('body')[0].appendChild(noscript);\r\n Store.dispatch(fetchUserPreference.action());\r\n Store.dispatch(fetchQueryBuilderSteps());\r\n } else {\r\n featureFlags.init(spgVars.LD_CLIENT_ID, spgVars.LD_SECRET_HASH, spgVars.LD_RELAYPROXY);\r\n Window.dataLayer.push({\r\n KeyOnlineUser: anonymousText,\r\n SubscriberAccount: anonymousText,\r\n CompanyType: anonymousText,\r\n PrimaryJobFunction: anonymousText,\r\n UserWebpartProfile: anonymousText\r\n });\r\n }\r\n })\r\n .finally(() => {\r\n renderApp(spgVars.SSR ? hRoot : cRoot);\r\n marketoTracker();\r\n });\r\n\r\nserviceWorkerRegistration();\r\n\r\nsetTimeout(() => { datadogtracker(); }, 2000);\r\n\r\nsetTimeout(() => { hotjartracker(); }, 2000);\r\n","import { datadogRum } from '@datadog/browser-rum';\r\n\r\nexport default function datadogtracker() {\r\n datadogRum.init({\r\n applicationId: 'b7925abc-ce8b-41a5-a728-25e3513c302e',\r\n clientToken: 'pub47cc5e76b2ddbce149c5b008fdde123c',\r\n site: 'datadoghq.com',\r\n service: 'marketplace-storefront',\r\n // eslint-disable-next-line no-nested-ternary\r\n env: window.location.hostname.includes('stage') ? 'stage' : (window.location.hostname.includes('dev') ? 'development' : 'production'),\r\n // Specify a version number to identify the deployed version of your application in Datadog\r\n // version: '1.0.0',\r\n sampleRate: 100,\r\n replaySampleRate: 100,\r\n trackInteractions: true\r\n });\r\n\r\n datadogRum.startSessionReplayRecording();\r\n}\r\n","/**\r\n * Logger utility to send data to error reporting tool. This may have additon/modification of logging callback method if such scenario arises.\r\n */\r\nimport { AxiosError } from 'axios';\r\nimport { get } from '../helpers';\r\nimport Store from '../redux/store';\r\nimport newError from '../redux/errors/errors.actions';\r\n\r\nenum ErrorType {\r\n applicationError = 'Application Error',\r\n validationError = 'Validation Error',\r\n unknownError = 'Unknown Error'\r\n}\r\n\r\nclass ErrorManager {\r\n\r\n\r\n /**\r\n * This method is called when you want to send custom data or want to add something to error caught\r\n * params......\r\n * ErrorType: This would indicate kind of error and you may introduce new type in Enum if required.\r\n * ErrorMessage: Original message from error caught or custom message or both\r\n * errorStack: Stack from error caught or manually created stack or component path/identifier\r\n * It would be helpful to troubleshoot with custom error message and error stack as system raised error may not provide component specific information\r\n */\r\n public static customError(errorType: ErrorType, errorMessage: string, errorStack?: string) {\r\n const error = new Error(`${errorType.toString()} :${errorMessage}`);\r\n error.stack = errorMessage;\r\n this.logError(error);\r\n }\r\n\r\n /**\r\n * This Method sends error message ,stack and status code to reporting Tool along with Url.\r\n */\r\n public static apiError(errorParam: AxiosError, parameters?: AnonymousObject) {\r\n const url = get(errorParam, 'config.url', '');\r\n // let errorMessage: string;\r\n // errorMessage = errorParam.message;\r\n // if (errorParam.response) {\r\n // errorMessage = `${url} responded with ${errorParam.response.status}. Error message:${errorParam.message}`;\r\n // if (parameters) parameters.StatusCode = errorParam.response.status;\r\n // } else {\r\n // errorMessage = `No response from ${url}.Error message:${errorParam.message}`;\r\n // }\r\n // console.log('AAA', errorParam.message);\r\n const error = new Error(errorParam.message);\r\n error.stack = parameters && parameters.msg ? parameters.msg : errorParam.message;\r\n this.logError(error, parameters);\r\n }\r\n\r\n public static logError(errorParam: Error, parameters?: AnonymousObject) {\r\n Store.dispatch(newError(errorParam));\r\n // Functionality is disconnected\r\n // import('./application-insights').then(AppInsights => {\r\n // const appInsights = AppInsights.default;\r\n // if (appInsights && appInsights.trackException) appInsights.trackException({ error: errorParam, properties: parameters });\r\n // });\r\n }\r\n}\r\n\r\nexport { ErrorType, ErrorManager };\r\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M15.8645 14.3208H15.0515L14.7633 14.0429C15.7719 12.8696 16.3791 11.3465 16.3791 9.68954C16.3791 5.99485 13.3842 3 9.68954 3C5.99485 3 3 5.99485 3 9.68954C3 13.3842 5.99485 16.3791 9.68954 16.3791C11.3465 16.3791 12.8696 15.7719 14.0429 14.7633L14.3208 15.0515V15.8645L19.4666 21L21 19.4666L15.8645 14.3208ZM9.68954 14.3208C7.12693 14.3208 5.05832 12.2521 5.05832 9.68954C5.05832 7.12693 7.12693 5.05832 9.68954 5.05832C12.2521 5.05832 14.3208 7.12693 14.3208 9.68954C14.3208 12.2521 12.2521 14.3208 9.68954 14.3208Z\",\n fill: \"currentColor\"\n});\nvar SvgSearch = function SvgSearch(_ref) {\n var svgRef = _ref.svgRef,\n props = _objectWithoutProperties(_ref, [\"svgRef\"]);\n return React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n ref: svgRef\n }, props), _ref2);\n};\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return React.createElement(SvgSearch, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/search.bb847090.svg\";\nexport { ForwardRef as ReactComponent };"],"sourceRoot":""}