{"version":3,"sources":["quotaHelpers.ts","components/LinkAsButton.tsx","components/quota/AllocationRow.tsx","hooks/quota/useAllocationReview.ts","components/Subheader.tsx","hooks/project/useCloseProject.ts","art/iconClear.svg","art/attribute_edit_modal/filter.svg","art/attribute_edit_modal/allocation.svg","components/quota/Option.tsx","art/iconWarning.svg","art/iconInfoBlue.svg","components/Section.tsx","lib/queries/respondentsQuery.ts","invoice-api.ts","containers/ModalPropsContext.tsx","lineItemHelpers.ts","components/survey/Constants.ts","components/quota/GridStyles.tsx","invoiceHelpers.ts","networkHelpers.js","art/iconInfo.svg","art/iconDelete.svg","components/IconButton.tsx","components/StyledSpinner.tsx","components/PopoverStyle.tsx","art/premiumTagSmall.svg","components/dashboard/DashboardStyler.js","constants/modalTypes.ts","components/quota/AttributeEditStyles.tsx","components/Flag.js","generalHelpers.ts","components/quota/OptionList.tsx","art/iconDeleteGray.svg","components/LightBackground.js","lib/queries/metaData.ts","components/modal/ViewReport/LineItemTable.tsx","components/modal/ViewReport/Dropzone.tsx","components/modal/ViewReport/RequestCorrection.tsx","components/modal/ViewReport/FooterContent.tsx","components/modal/ViewReport/ViewReport.tsx","hooks/project/useProjectTopicsEdit.ts","hooks/project/useUpdateProjectTopics.ts","components/respondents/ProjectTopicsSelector.tsx","containers/lineitem/AllocationGroupContainer.ts","components/quota/AllocationGroupPopover.tsx","lib/queries/lineitem.ts","art/Error.svg","art/CreateProject.svg","art/upload.svg","art/alert.svg","art/calculator.svg","art/LaunchProject.svg","art/attribute_edit_modal/filterActive.svg","art/attribute_edit_modal/filterDisabled.svg","art/attribute_edit_modal/allocationActive.svg","art/attribute_edit_modal/allocationDisabled.svg","art/attribute_edit_modal/splitEvenly.svg","art/arrowWhite.svg","art/iconOrangeInfo.svg","art/iconRefresh.svg","art/cmixStatus/live.svg","art/cmixStatus/closed.svg","art/cmixStatus/testing.svg","art/cmixStatus/design.svg","art/iconFile.svg","art/openLinkBlue.svg","art/header/arrow.svg","art/header/samplifyTitle.svg","art/pipeDark.svg","art/accessKey.svg","art/padlock.svg","constants/titles.ts","components/lineitem/Constants.ts","components/GlobalStyle.tsx","components/Page404.tsx","components/LoginCallback.js","components/invoices/InvoiceReportModal.tsx","components/modal/CreateProject.js","containers/project/CreateProjectContainer.js","components/modal/CreateReport.js","components/modal/ReportFilter/Wrapper.js","components/modal/ReportFilter/RespondentId.js","components/modal/ReportFilter/DateRange.js","components/modal/ReportFilter/SurveyDuration.js","components/modal/ReportFilter/BlockHeader.js","components/modal/ReportFilter/FilterBlock.js","components/modal/CreateFilter.js","components/modal/CreateCrosstab.js","components/modal/ExportData/ExportColumnSelect.js","components/modal/ExportData/ExportCellSelect.js","components/modal/ExportData/ExportOpenEnd.js","components/modal/ExportData/ExportStyles.js","components/modal/ExportData/ExportData.tsx","components/modal/DeclineTosConfirm.js","components/modal/ViewReport/ViewReportOnModal.tsx","hooks/lineitem/useSplitSource.ts","hooks/lineitem/useSplitSourceState.ts","components/ModalCancelButton.tsx","components/modal/SplitSource.tsx","components/modal/ConfirmationModal.tsx","components/modal/ConfirmCloseLineItem.tsx","components/modal/ConfirmCloseProject.tsx","components/modal/UpdateFound.tsx","components/Gong.tsx","components/modal/ConfirmDeleteSurvey.tsx","components/modal/ConfirmNavigation.tsx","components/modal/ConfirmDuplicateLineItemDeprecatedAttribute.tsx","components/quota/AttributeEditHeader.tsx","components/quota/AttributeEditFooter.tsx","components/design/Checkbox.tsx","components/quota/AttributeOptionList.tsx","hooks/quota/useAttributeEdit.ts","components/quota/AttributeOptionEditor.tsx","hooks/quota/useAttributeRange.ts","components/quota/AttributeRangeRow.tsx","components/quota/AttributeRangeEditor.tsx","components/quota/AttributeStringEditor.tsx","constants/attributeIds.ts","components/quota/AttributeIntegerEditor.tsx","components/quota/AttributeEditorSwitch.tsx","components/modal/AttributeEditorModal.tsx","components/modal/ProjectTopicSelectorModal.tsx","components/modal/InvalidInputModal.tsx","components/design/ModalCloseButton.tsx","components/survey/CmixSurveyStatus.tsx","components/survey/CmixSurveyListItem.tsx","components/survey/CmixSurveyList.tsx","hooks/survey/useGetExternalSurveys.ts","hooks/survey/useExternalSurveysPaging.ts","components/survey/CmixSurveyModalBody.tsx","components/modal/ConnectCmixSurveyModal.tsx","hooks/quota/useTemplateDelete.ts","components/modal/ConfirmDeleteTargetingTemplate.tsx","components/modal/SaveTargetingTemplate.tsx","containers/lineitem/CreateTargetingTemplateContainer.tsx","components/modal/ProjectRestrictionsModal.tsx","components/modal/ConfirmLoadTargetingTemplate.tsx","components/modal/ConfirmDuplicateProjectInternalSurveys.tsx","components/modal/Modal.tsx","containers/ModalContainer.tsx","components/AppOuter.ts","lib/queries/user.ts","components/tos/TosDecline.tsx","components/tos/TosAccept.js","components/tos/DownloadPdf.js","components/tos/Tos.js","components/header/Title.tsx","components/header/Nav.tsx","components/header/Help.tsx","hooks/useComponentVisible.tsx","components/header/AccountMenuStyles.ts","components/header/Account.tsx","components/header/CompanySwitcherMenu.tsx","lib/queries/companySwitch.ts","hooks/useCompanySwitch.ts","components/header/CompanySwitcher.tsx","components/header/CompanySwitchSuccess.tsx","components/header/Header.tsx","idHelpers.ts","custom-window.ts","hooks/useBeaconRouting.ts","components/Unauthorized.tsx","components/DIPLauncher.tsx","components/AppLayout.tsx","types/AppStatus.ts","containers/LoginContainer.js","components/FullStoryIdentifier.js","containers/IdleLogoutContainer.js","containers/AppStatusContainer.ts","components/SROnly.tsx","components/OutageNotice.tsx","hooks/useServiceWorkerUpdated.ts","containers/UpdateFoundContainer.tsx","containers/HealthyContainer.ts","components/MaintenanceMessage.tsx","components/Toast.tsx","lib/queries/error.ts","components/ToastChild.tsx","containers/GraphQLErrorHandlerContainer.tsx","hooks/useFetchUserInfo.ts","hooks/useUserInfo.ts","hooks/useFetchMetaData.ts","hooks/useMetaData.ts","hooks/useProjectFilters.ts","hooks/useGetDashboardProjects.ts","hooks/useDashboardPaging.ts","apolloClient.js","App.tsx","registerServiceWorker.js","index.js","projectHelpers.ts","components/quota/AttributeEditButtonGroup.tsx","components/PageLoading.tsx","types/index.ts","components/modal/ViewReport/Constants.ts","lib/queries/project.ts","lib/queries/surveys.ts","components/PageError.tsx","art/search.svg","components/modal/ReportFilter/ClearFilter.js","components/design/Select.tsx","constants/dateFormats.ts","hooks/useSetModal.ts","hooks/usePopover.ts","components/GenericErrorBoundary.js","components/WidthWrap.tsx","constants/styles.js","components/NumberUnit.tsx","art/iconError.svg","art/Caret.svg"],"names":["EDIT_MODE_FILTER","EDIT_MODE_ALLOCATION","FILTER_TYPE_INCLUDE","FILTER_TYPE_EXCLUDE","ATTR_HIGHLIGHT_COLORS","COMPLETES_COLOR","INCOMPLETES_COLOR","SCREENOUTS_COLOR","OVERQUOTAS_COLOR","COMPLETES_REFUSED_COLOR","parseAllocations","map","result","Map","_i","_keys","Array","from","keys","length","key","allocationVal","get","numCount","count","numPerc","perc","parseFloat","set","groupNodes","quotaGroup","quotaNodes","quotaCells","forEach","cell","nonNullNodes","push","apply","Object","_var_lib_jenkins_goworkspace_src_github_com_researchnow_samplify_ui_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_2__","planNodes","quotaPlan","quotaGroups","g","planCells","planNodeAttributeIds","uniq","node","attributeId","planAttributeIds","attributeIds","filters","f","c","n","updateInterlock","selections","requiredCompletes","allNonInterlockedGroups","clearInterlocks","interlocked","loose","newInterlockedGroup","interlockGroups","concat","groups","nonInterlockedGroupMap","ids","groupAttributeIds","maybeExistingGroup","isNewCell","isEqual","name","filter","values","interlockedGroup","i","interlockTwoGroups","group1","group2","interlockedCells","group1Cell","group2Cell","Math","round","distributeRemaining","counts","remainder","reduce","a","b","rectifyCnt","abs","idx","_var_lib_jenkins_goworkspace_src_github_com_researchnow_samplify_ui_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_objectSpread__WEBPACK_IMPORTED_MODULE_1__","nodeComparison","options","sort","cellsEqual","isArray","copyA","slice","copyB","groupA","groupB","groupsEqual","assign","groupFromFilter","o","__typename","flattenAllocation","totalCount","fill","getPerc","distributeSequentially","divisor","minCountPerCell","distributeEvenly","total","toFixed","getCount","cellOptions","opts","_var_lib_jenkins_goworkspace_src_github_com_researchnow_samplify_ui_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_construct__WEBPACK_IMPORTED_MODULE_0__","nodeOptions","groupOptions","group","attrIDSet","Set","add","onlyGroupAttributeId","attrIds","Error","inputFromPlan","plan","inputFromFilter","inputFromGroup","operator","inputFromCell","inputFromNode","status","quotaCellID","BlankStat","floatValue","intValue","percentageValue","percentageValueRounded","statusMessage","BlankReport","attempts","completes","screenouts","overquotas","incompletes","completesRefused","conversion","incidence","progress","remainingCompletes","actualMedianLOI","cellReport","cellInput","cells","expectedCell","find","quotaCellReport","isQuotaPlanNull","quota","getOptionMapping","JSON","parse","getOptionText","_ref","optionString","optionMap","attributeType","text","sortOptionList","attributeOptions","selectedOptions","attrSorter","attrNameA","toUpperCase","attrNameB","makeNodeSorter","attributeMap","attrA","attrB","buildGroupLikeFromQuotaGroup","buildGroupLikeFromFeasibilityGroup","buildCellLikeFromFeasibilityCell","buildCellLikeFromQuotaGroupCell","sortOptionMapKeys","list","optionTextMap","k","id","s","getGroupedOptionMap","groupedOptionMap","groupFromOptionsAndGroup","quotaGroupInput","selectedOptionsSet","quotaOptions","quotaCellsWithSelectedOptions","some","has","quotaOptionSet","newFilterOptions","groupFromExistingFilter","groupWithOnlyAttribute","quotaMap","hash","groupsWithoutAttribute","getPieChartData","title","value","color","numberWithCommas","x","toString","replace","getCategoryName","category","subCategory","mainCategory","getInvalidFilterDataFromJSON","msg","substring","indexOf","console","log","message","undefined","InvalidOpts","Filter","AttributeID","Operator","Options","invalidOpts","e","error","arrayFromString","trim","split","scanInvalidOptions","invalidOptions","format","currTextsArr","currTextsSet","invalidOps","invalidFormatOps","match","isAttributeInQuotaPlan","attribute","quotaPlanInput","qg","qc","qn","emptyTooltipOverlayStyle","display","allocExceededText","needMoreAllocText","finishAllocText","finishFilterText","selectOneFilterText","completesErrorText","convertToTemplateQP","getInitialAllocationEditModeMap","hasAnyAllocEditOpen","hasEditOpen","filterRetiredAttributes","attributes","quotaGroupsAttributeIds","flat","filterAttributes","groupAttributes","v","attr","state","LinkAsButton","styled","_templateObject","props","theme","fontFamily","StyledPopover","Popover","StyledTooltip","Tooltip","_templateObject2","StyledNumberUnit","NumberUnit","_templateObject3","InputWrap","div","_templateObject4","Outer","_templateObject5","BaseStyledInput","TextInput","attrs","type","_templateObject6","CustomTextInput","showError","rest","_var_lib_jenkins_goworkspace_src_github_com_researchnow_samplify_ui_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__","react__WEBPACK_IMPORTED_MODULE_3___default","createElement","PercInput","_templateObject7","CountInput","_templateObject8","BracketSpan","span","_templateObject9","Count","Perc","AllocationRow","_ref2","updateCell","quotaCell","updateTempQuotaGroupInput","attributeCount","isLineItemLaunched","_ref2$showAllocationE","showAllocationError","disableGrouping","calculatedNestingListHeight","toggleRangeGroupingChange","changeShowCompletesError","_ref2$shouldUpdateAll","shouldUpdateAllocRowVal","toggleUpdateAllocRowVal","numCnt","_usePopover","usePopover","popoverOpen","togglePopover","setPopover","_useState","useState","_useState2","_var_lib_jenkins_goworkspace_src_github_com_researchnow_samplify_ui_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__","stateCount","setStateCount","_useState3","_useState4","statePerc","setStatePerc","useEffect","groupEnabled","groupedOptionsCount","groupButtonText","preSelectedOption","interlockingDisabled","maybeGroup","overlay","placement","mouseLeaveDelay","_AttributeEditStyles__WEBPACK_IMPORTED_MODULE_12__","noOfOptions","isOpen","onOuterAction","enterExitTransitionDurationMs","tipSize","place","body","focus_trap_react__WEBPACK_IMPORTED_MODULE_8___default","focusTrapOptions","onDeactivate","_AllocationGroupPopover__WEBPACK_IMPORTED_MODULE_10__","buttonText","interlockedCount","step","max","min","onChange","isNaN","currentTarget","valueAsNumber","placeholder","_quotaHelpers__WEBPACK_IMPORTED_MODULE_0__","__webpack_require__","useAllocationReview","allocationMap","acc","val","remainingCount","totalPerc","imperative","Subheader","react_apollo_hooks__WEBPACK_IMPORTED_MODULE_0__","_lib_queries_project__WEBPACK_IMPORTED_MODULE_1__","useCloseProject","extProjectId","useMutation","closeProject","variables","module","exports","p","react__WEBPACK_IMPORTED_MODULE_0__","react__WEBPACK_IMPORTED_MODULE_0___default","_quotaHelpers__WEBPACK_IMPORTED_MODULE_1__","Option","StyledTriangle","open","disabled","react__WEBPACK_IMPORTED_MODULE_2___default","StyledTitle","SectionButton","_ref3","minHeight","primary","SectionContainer","_ref4","showTopBorder","handleMargins","handlePadding","SectionHeader","Section","_ref5","header","children","_ref5$disabled","toggleOpen","_ref5$showTopBorder","_ref5$minHeight","_ref5$handleMargins","_ref5$handlePadding","_ref5$additionalHeade","additionalHeaderComponent","maybeChildren","onClick","blur","respondentsQuery","gql","lineItemFragments","lineItem","stat","surveyFragments","actions","localeLinks","projectActions","d","__webpack_exports__","getInvoicePDF","getInvoiceSummaryPDF","axios__WEBPACK_IMPORTED_MODULE_0__","axios__WEBPACK_IMPORTED_MODULE_0___default","_networkHelpers__WEBPACK_IMPORTED_MODULE_1__","extprojectid","changeLoading","toastManager","headers","Authorization","localStorage","getItem","params","axios","getHost","responseType","then","response","url","window","URL","createObjectURL","Blob","data","link","document","href","setAttribute","click","revokeObjectURL","catch","appearance","alert","finally","headerArr","lenght","filename","err","ModalPropsContext","React","createContext","_var_lib_jenkins_goworkspace_src_github_com_researchnow_samplify_ui_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_objectSpread__WEBPACK_IMPORTED_MODULE_0__","modalType","modalProps","setModalData","m","LineItemField","isMutable","isLaunched","isClosed","isCompleted","isDraft","LineItemState","PROVISIONED","REJECTED","REJECTED_PAUSED","COMPLETED","isCancelled","CANCELLED","isRejected","CLOSED","INVOICED","isLive","isLaunchable","PAUSED","LAUNCHED","QA_APPROVED","AWAITING_APPROVAL","isPaused","AWAITING_APPROVAL_PAUSED","AWAITING_CLIENT_APPROVAL","isQueued","AWAITING_AUTO_APPROVAL","LineItemStateEnum","ScheduleType","stateTypeOf","QUEUED","LIVE","PAUSE","DRAFT","stateLabelOf","navStateLabelMap","latestRepricing","events","eventType","d1","Date","createdAt","d2","isBad","report","indicativeIncidence","healthColor","bad","disabledSourceTooltipText","country","language","sourceId","sourcesForCountry","visibilityCounter","visibility","Number","ID","languageName","l","supportedLanguages","countryName","findLineItemSettingsValidationMessage","errorMessages","fieldName","replacedName","arguments","errMsg","Message","sortLineItems","lineItems","cancelled","notCancelled","setNewAttributes","projectAttributes","setProjectAttributes","fetchAttributes","countryISOCode","languageISOCode","al","newProjectAttributes","_var_lib_jenkins_goworkspace_src_github_com_researchnow_samplify_ui_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__","lineItemSettingsToInput","settings","survey","lengthOfInterview","parseInt","source","daysInField","fieldSchedule","deliveryType","getSelectOptionStyle","isDisabled","isFocused","isSelected","backgroundColor","cursor","padding","getScheduleType","SCHEDULE","NOW","launchSchedulingSelectorOptions","label","createFieldScheduleObject","startDateValue","startTimeValue","endDateValue","endTimeValue","startTimeString","endTimeString","startTime","getUTCDateInSpecFormat","FIELD_SCHEDULE_API_ACCEPTED_DATE_FORMAT","endTime","shouldShowControls","actionsMap","LineItemActionKind","LAUNCH","visible","CLOSE","DUPLICATE","EDIT","SPLIT_SOURCE","getScheduleTimeValueFromDisplayedTime","timeString","apiTime","moment","FIELD_SCHEDULE_UI_TIME_FORMAT","FIELD_SCHEDULE_API_TIME_FORMAT","includes","NewSurveyName","CMIX_OPTION_TEXT","CMIX_LEARN_URL","CMIX_DEFAULT_URL","EXTERNAL_LINK_WARNING_TEXT","EntryLinkDescription","IdentifiersDescription1","IdentifiersDescription2","DataAppendsDescription","ExitLinksDescription1","ExitLinksDescription2","PID_TooltipText","PSID_TooltipText","DataAppendsDescriptionURL","STEP_STATES","statusColors","SECURITY_KEY","K2","PID","PSID","DEFAULT_PARAMS","PARAMS_COLORS","DEFAULT_PLACEHOLDERS","dataAppendsColors","_constants_titles__WEBPACK_IMPORTED_MODULE_0__","CMIX","SAMPLIFY","SUCCESS","FAILURE","IN_PROGRESS","psid","pid","securityKey","pidColors","background","psidColors","k2Colors","securityColors","default","restricted","{{PID}}","{pid}","{{PSID}}","{psid}","k2","{{K2}}","med","high","{calculatedSecurityCode}","_s","_k","_o","rst","secret","toSign","OuterGrid","attributeColumnCount","LiveOuterGrid","InnerGrid","GridCell","GridCellChart","AllocationEditingCell","AllocationEditableCell","AllocationEditableButton","allocationEditHover","StyledGridHeader","headerWidth","deprecated","_templateObject10","StyledGridMidHeader","_templateObject11","StyledGridControlHeader","_templateObject12","FeasibilityCell","_templateObject13","getIncompleteAllocMsg","stateLabelMap","dropdownButtonStateLabelMap","dropdownButtonOptions","isZeroCost","getStartDate","formatFilterDate","Summary","Invoice","cost","substr","date","getFullYear","getMonth","dateVal","formatteddate","SAMPLIFY_LOGO_LINK","STATUS_PAGE_URL","appendLoginParams","getEnv","getLoginURL","getPasswordURL","getGQLURL","getDownloadURL","getDownloadMappingFile","login","reconcile","logout","getAppStatus","getHealthy","clearSessionId","getSessionId","scope","response_type","client_id","redirect_uri","origin","searchParams","append","__SERVER_VARS__","hostURL","process","getKeycloak","keycloakURL","nodeENV","getLoginBody","code","redirectURI","stringify","fetch","method","location","ok","sessionId","setSessionId","setItem","file","Headers","FormData","mode","logoutResponse","removeItem","HELP_URL","IconButton","button","neutralLight","StyledSpinner","Spinner","PopoverStyle","Wrapper","neutralDark","DashboardStyler","react__WEBPACK_IMPORTED_MODULE_1___default","_Subheader__WEBPACK_IMPORTED_MODULE_4__","_WidthWrap__WEBPACK_IMPORTED_MODULE_3__","CREATE_PROJECT","LAUNCH_PROJECT","CREATE_REPORT","CREATE_FILTER","CREATE_CROSSTAB","EXPORT_DATA","DECLINE_TOS","INVOICE_REPORT","CONFIRM_CLOSE_LINEITEM","DUPLICATE_LINEITEM_WITH_DEPRECATED_ATTRIBUTES","CONFIRM_CLOSE_PROJECT","UPDATE_FOUND","CONFIRM_DELETE_SURVEY","CONFIRM_NAVIGATION","ATTRIBUTE_EDITOR","PROJECT_TOPIC_SELECTOR","INVALID_INPUT","CONNECT_CMIX_SURVEY","CONFIRM_DELETE_TARGETING_TEMPLATE","SAVE_TARGETING_TEMPLATE","PROJECT_RESTRICTIONS","CONFIRM_LOAD_TARGETING_TEMPLATE","DUPLICATE_PROJECT_WITH_INTERNAL_SURVEYS","StyledCheckbox","Checkbox","checked","StyledSeparator","StyledTextarea","withComponent","UploadOuter","StyledOrSpan","StyledUpload","Upload","StyledUploadGroup","onFileInputChange","accept","swatch","StyledGroupButton","_var_lib_jenkins_goworkspace_src_github_com_researchnow_samplify_ui_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_0__","StyledIcon","StyledInterlockButton","StyledGrid","showAllocationView","Flex","AttributeEditorOuter","_ref6","Flag","F","flags","capitalize","commaSeparatedString","getTimeBasedExclusionDate","getDateStringInSpecFormat","getHourOrMinuteString","parseGraphQLError","calcShowAllPosAndWidth","getActionsMap","graphQlErrorTitle","filterErrors","floorCurrentTime","getTimezoneAbbreviation","getSafeTextToMatch","sortCompanies","getEffectiveCompany","localEffCompIDKey","setLocalEffCompID","hasNoAccess","getSafePathSegment","_types__WEBPACK_IMPORTED_MODULE_0__","moment__WEBPACK_IMPORTED_MODULE_1__","moment__WEBPACK_IMPORTED_MODULE_1___default","moment_timezone__WEBPACK_IMPORTED_MODULE_2__","moment_timezone__WEBPACK_IMPORTED_MODULE_2___default","charAt","arr","quotesRequired","quoteOrNoQuote","opt","getTime","getTimezoneOffset","dateFormat","utc","errorMessage","listElementId","showAllElementId","showAll","displayShowAll","listItemDistance","defaultDisplayedRows","setDisplay","setShowAllPos","setShowAllWidth","setUndisplayedItems","listElem","getElementById","showAllElem","rowWidth","offsetWidth","showAllElemWidth","listLength","listRowWidth","displayedItems","displayedRows","actualRowWidth","lastDisplayedWidth","defaultMetadata","enabled","description","res","actionMap","actionKeys","ResourceType","USER","UserActionKind","SURVEY","SurveyActionKind","PROJECT","ProjectActionKind","LINEITEM","kind","metadata","getErrorCode","ErrorCode","INVALID_URL","INVALID_IDENTIFIERS","INVALID_ATTRIBUTE_OPTIONS","CUSTOM_MESSAGE","UNKNOWN","errors","customErrors","extensions","validationErr","Title","Code","toErrorType","r","currentTime","setMinutes","getMinutes","momentTimezone","tz","guess","specialChars","safeTextToMatch","sc","exp","RegExp","companyComparison","isEffective","companies","specialCharsForPathSegment","pathSegment","safePathSegment","Or","OptionList","react__WEBPACK_IMPORTED_MODULE_1__","_Option__WEBPACK_IMPORTED_MODULE_3__","LightBackground","createGlobalStyle","metaQuery","StyledTable","table","StyledTableHeader","th","StyledTableRow","tr","StyledCost","StyledTableFooter","tfoot","StyledTableFooterRow","StyledLink","Link","Footnote","LineItemTable","project","clearModal","incurredCost","react_default","tableHeaders","item","li","extLineItemId","react","cpi","costPerUnit","sources","join","stats","to","route","buildLineItem","colSpan","footnote","StyledDropzone","Dropzone_templateObject","isDragActive","StyledDropzoneContent","Dropzone_templateObject2","StyledDropzoneText","Dropzone_templateObject3","StyledError","Dropzone_templateObject4","StyledErrorWrapper","Dropzone_templateObject5","Dropzone","onDrop","uploadBtn","_useDropzone","useDropzone","getRootProps","getInputProps","dragText","maybeError","rejectedFiles","className","src","alt","width","uploadIcon","RequestCorrection_templateObject","StyledDesc","RequestCorrection_templateObject2","FileBrowser","RequestCorrection_templateObject3","FileName","RequestCorrection_templateObject4","RequestCorrection_templateObject5","StyledTextArea","textarea","RequestCorrection_templateObject6","Button","RequestCorrection_templateObject7","RequestCorrection_templateObject8","StyledDeleteFile","FileContainer","RequestCorrection","onDescriptionChange","onFileChange","fileName","deleteFile","useCallback","acceptedFiles","maybeFileName","checkLongFileName","maybeDropzone","ViewReport_Dropzone","RequestCorrection_StyledLink","sampleFileLink","sampleFileLinkText","correctionDescriptionPlaceholder","StyledButton","FooterContent_templateObject","StyledSendButton","FooterContent_templateObject2","StyledButtonIcon","img","FooterContent_templateObject3","FooterContent","onApproveSummary","onCancel","onSendCorrection","sendDisabled","showCorrection","toggleShowCorrection","loadingCorrection","modal","fromRespondent","projectActionsMap","maybeCancelBtn","bundle","actionProjectRequestRecon","REQUEST_RECONCILIATION","requestLabel","requestVisible","requestEnabled","maybeRequestCorrectionBtn","calculatorIcon","maybeApproveBtn","isCloseable","maybeCorrection","Intro","ViewReport_templateObject","InvoiceName","ViewReport_templateObject2","RefNumber","ViewReport_templateObject3","StyledModalBody","ModalBody","ViewReport_templateObject4","StyledModalFooter","ModalFooter","ViewReport_templateObject5","StyledModalHeader","ViewReport_templateObject6","StyledInvoiceTitle","ViewReport_templateObject7","StyledRequestCorrection","ViewReport_templateObject8","ViewReport_templateObject9","StyledSummaryButton","ViewReport_templateObject10","ViewReport","slicedToArray","setDescription","setFile","_useState5","_useState6","setFileName","_useState7","_useState8","setShowCorrection","_useState9","_useState10","setSendDisabled","_useState11","_useState12","setLoadingCorrection","_useState13","_useState14","invoiceLoading","setInvoiceLoading","_useState15","_useState16","summaryLoading","setSummaryLoading","jobNumber","_useCloseProject","actionViewInvoice","DOWNLOAD_INVOICE","invoicesLabel","invoiceVisible","invoiceEnabled","sendCorrection","asyncToGenerator","regenerator_default","mark","_callee","wrap","_context","prev","next","stop","this","maybeJobNumber","reportHeader","ViewReport_LineItemTable","changeInvoiceLoading","changeSummaryLoading","maybeInvoiceLoader","maybeSummaryLoader","maybeInvoiceBtn","ViewReport_StyledButton","maybeSummaryBtn","modalHeader","intro","ViewReport_RequestCorrection","selectedFile","ViewReport_FooterContent","useProjectTopicsEdit","surveyTopics","selectedTopics","topics","topic","selectedTopicsSet","topicsCheckList","t","allocatedTopics","initialState","setState","toggleTopic","topicCheck","newAllocatedTopics","toConsumableArray","objectSpread","defineProperty","useUpdateProjectTopics","input","updateProjectTopics","ArrowIcon","Footer","ButtonSection","StyledCancel","ModalCancel","StyledH1","h1","StyledLabel","StyledP","Topics","Topic","ProjectTopicsSelector","_ref$edit","edit","_ref$onCancel","_ref$resetFeasibility","resetFeasibility","_useProjectTopicsEdit","_useUpdateProjectTopi","surveyTopic","notificationEmails","devices","exclusions","target","buttonSection","Arrow","footerSection","allocatedTopicsSet","getRowMap","stateMap","cellOpts","nonNullOptions","AllocationGroupContainer","_this","classCallCheck","_this$props","possibleConstructorReturn","getPrototypeOf","call","rowMap","toggleRow","bind","assertThisInitialized","updateGroupings","row","prevState","nextMap","_this$props2","mapKeys","_partition","partition","_partition2","checkedRows","uncheckedRows","checkedOptions","checkedCell","uncheckedCells","getNextCells","Component","StyledOptionList","maxHeight","objectWithoutProperties","Row","StyledOptionContainer","AllocationGroupPopover","lineitem_AllocationGroupContainer","onlyAttrId","rowKeys","updateDisabled","AttributeEditStyles","AttributeEditButtonGroup","saveDisabled","onSave","tooltipOverlay","saveButtonName","toggleErrorHighlight","statFragment","attributeFragment","quoteFragment","actionsFragment","projectActionsFragment","costFragment","reportFragment","quotaCellFragment","quotaPlanFragment","eventsFragment","lineItemReportFragment","fragments","quote","splitSource","feasibility","_templateObject14","_templateObject15","addLineItem","_templateObject16","isDuplicatable","_templateObject17","duplicateLineItem","_templateObject18","updateLineItemSettings","_templateObject19","updateQuotaPlan","_templateObject20","pauseLineItem","_templateObject21","closeLineItem","_templateObject22","acceptRepricing","_templateObject23","launchLineItem","_templateObject24","lineItemReport","_templateObject25","lineItemStatus","_templateObject26","targetingTemplates","_templateObject27","createTargetingTemplate","_templateObject28","deleteTargetingTemplate","_templateObject29","updateQuotaCellStatus","_templateObject30","MIN_COMPLETES","MAX_COMPLETES","MIN_DURATION","MAX_DURATION","MIN_DAYS_IN_FIELD","MAX_DAYS_IN_FIELD","MIN_INCIDENCE","MAX_INCIDENCE","MAX_NUMBER_OF_ZIP_CODES_OR_RESPONDENT_IDS","MAX_ATTRIBUTE_OPTIONS","MAX_ATTRIBUTE_OPTIONS_ERROR_MESSAGE","TIER_PREMIUM","COST_TYPE_PREMIUM","PERFORMANCE","AVAIL_AFTER_LAUNCH","TARGETING_ATTRIBUTES","NONE_SELECTED","GET_ESTIMATES_MSG","GETTING_ESTIMATES_MSG","EDIT_OPEN_MSG","defaultActionWith","DECLINE_REPRICE","APPROVE_REPRICE","ESTIMATES","GlobalStyle","Page404_templateObject","Inner","Blurb","ErrorArt","Page404","panda","LoginCallback","URLSearchParams","search","StyledModal","contentClassName","overlayClassName","react_modal_lib_default","portalClassName","InvoiceReportModal_templateObject","Alert","icons","StyledInput","TextInputLine","CreateProject_templateObject","StyledBody","CreateProject_templateObject2","CreateProject_templateObject3","ButtonsFlex","CreateProject_templateObject4","ErrorText","danger","StyledImage","StyledHeader","TextLine","StyledAnchor","CreateProject","setTitle","onSubmit","path","createProject","setPath","_this2","art","autoFocus","rel","CreateProjectContainer","redirect","history","react_apollo_esm","mutation","onCompleted","mutateCreateProject","modal_CreateProject","CreateProjectContainerWithLocation","react_router","render","CreateProjectContainer_CreateProjectContainer","StyledFooter","CreateReport_templateObject","CreateReport_templateObject2","StyledCancelButton","CreateReport_templateObject3","CreateReport_templateObject4","CreateReport","style","CreateReport_ButtonsFlex","CreateReport_StyledButton","Wrapper_templateObject","RespondentId_templateObject","RespondentId_templateObject2","RespondentId","respondentID","setRespondentID","setIds","ClearFilter","clearFilter","idString","idArray","rows","Separator","DateRange_templateObject","StyledDatePicker","Datepicker","DateRange_templateObject2","DateRange","filterDate","setFilterDate","startDate","endDate","today","clearIcon","maxDate","minDetail","SurveyDuration_templateObject","StyledWrapper","SurveyDuration_templateObject2","SurveyDuration_templateObject3","invalid","SurveyDuration_templateObject4","SurveyDuration_templateObject5","SurveyDuration","duration","setDuration","moreThanError","setMoreThanError","lessThanError","setLessThanError","moreThan","lessThan","SurveyDuration_StyledInput","Caret","Check","StyledBlockHeader","BlockHeader_templateObject","StyledCaret","BlockHeader_templateObject2","StyledCheck","BlockHeader_templateObject3","BlockHeader","setOpenBlock","StyledFilterBlock","FilterBlock_templateObject","FilterBlock","content","openBlock","ReportFilter_BlockHeader","CreateFilter_templateObject","CreateFilter_templateObject2","CreateFilter_templateObject3","CreateFilter","usedReportFilter","useContext","reportFilter","setReportFilter","block","ReportFilter_FilterBlock","ReportFilter_RespondentId","ReportFilter_SurveyDuration","ReportFilter_DateRange","CreateFilter_StyledCancelButton","CreateFilter_StyledButton","CreateCrosstab","Select","ColumnSelect","columns","update","Fragment","CellSelect","OpenEnd","includeOpen","ExportStyles_templateObject","ExportStyles_templateObject2","ExportStyles_templateObject3","ExportStyles_templateObject4","ExportStyles_templateObject5","CREATE_EXPORT","ExportData_templateObject","ExportData","surveyKey","aggregate","updateAggregate","individual","newFormat","field","handleSelectChange","selectedOption","condensed","noOpened","actualText","mapResponses","createExport","ExportStyles_StyledModal","defaultValue","ExportColumnSelect","ExportCellSelect","ExportOpenEnd","ExportStyles_StyledFooter","ExportStyles_StyledCancelButton","ExportStyles_StyledButton","DECLINE_TOS_MUTATION","DeclineTosConfirm_templateObject","DeclineTosConfirm_templateObject2","DeclineTosConfirm_templateObject3","DeclineTosConfirm_templateObject4","StyledDecline","DeclineTosConfirm_templateObject5","StyledReturn","DeclineTosConfirm_templateObject6","DeclineTosConfirm","declineTermsAndConditions","DeclineTosConfirm_StyledBody","DeclineTosConfirm_StyledFooter","DeclineTosConfirm_ButtonsFlex","ViewReportOnModal","_useContext$modalProp","contextType","useSplitSource","_useMutation","_useMutation2","mutate","mutationResult","updateRespondents","cache","resultData","readQuery","query","splitLineItem","writeQuery","inputSources","parseVal","valueFromEvent","sourceIsValid","sourcesAreValid","activeSources","countValid","completesValid","every","useSplitSourceState","sampleSources","states","getInitialSourceState","idToStateMap","getInitialState","sourceStates","makeTextChangeHandler","makeCheckedChangeHandler","prevSource","srcState","totalRequired","sum","req","sourcesValid","ModalCancelButton","ModalCancelButton_templateObject","ErrorBody","SplitSource_templateObject","SplitSource_templateObject2","SplitSource_templateObject3","H1","SplitSource_templateObject4","SplitSource_templateObject5","StyledTextInput","SplitSource_templateObject6","SplitSource_templateObject7","StyledSourceRow","checkDisabled","textDisabled","onTextChange","onCheckedChange","tabIndex","tooltipText","SplitSource_templateObject8","Strong","strong","SplitSource_templateObject9","Total","StyledDisabledSourceRow","SplitSource","_useSplitSource","loading","_useSplitSourceState","rowStates","buttonChild","focus_trap_react_default","SplitSource_Outer","SplitSource_StyledBody","components_ModalCancelButton","SplitSourceOuter","Consumer","_modalProps$project","SplitSource_SplitSource","Buttons","ConfirmationModal_templateObject","Cancel","ConfirmationModal_templateObject2","ConfirmationModal_templateObject3","ConfirmationModal","confirmation","onConfirm","_ref2$cancelLabel","cancelLabel","_ref2$confirmLabel","confirmLabel","ConfirmationModal_StyledModal","ConfirmCloseLineItem","modal_ConfirmationModal","ConfirmCloseProject","UpdateFound_templateObject","UpdateFound","UpdateFound_StyledModal","role","reload","StyledImg","Gong_templateObject","Gong","ConfirmDeleteSurvey_templateObject","ConfirmDeleteSurvey_templateObject2","ConfirmDeleteSurvey_templateObject3","ConfirmDeleteSurvey_templateObject4","LineItemRow","ConfirmDeleteSurvey","_context$modalProps","deleteSurvey","ConfirmDeleteSurvey_Outer","ConfirmDeleteSurvey_StyledBody","components_Gong","ConfirmDeleteSurvey_LineItemRow","ConfirmDeleteSurvey_StyledButton","ConfirmNavigation_templateObject","ConfirmNavigation_templateObject2","ConfirmNavigation_templateObject3","RoutingButton","withRouter","nextLocation","setBlockNavigateAway","pathname","ConfirmClose","ConfirmNavigation_StyledModal","ConfirmNavigation_Buttons","ConfirmNavigation_Cancel","ConfirmDuplicateLineItemDeprecatedAttribute","deprecatedAttributes","deprecatedAttributeList","StyledSelectAllLabel","AttributeEditHeader_templateObject","StyledFlex","AttributeEditHeader_templateObject2","StyledSearchIcon","AttributeEditHeader_templateObject3","StyledClearButton","AttributeEditHeader_templateObject4","StyledSplitEvenlyButton","AttributeEditHeader_templateObject5","StyledSplitEvenlyIcon","AttributeEditHeader_templateObject6","StyledSplitEvenlySpan","AttributeEditHeader_templateObject7","StyledClearIcon","AttributeEditHeader_templateObject8","StyledSearchLabel","AttributeEditHeader_templateObject9","AttributeEditHeader_templateObject10","AttributeEditHeader_templateObject11","StyledHeaderSeparator","StyledTypeLabel","StyledInfoIcon","StyledButtonGroup","ButtonGroup","StyledGroupedButton","GroupedButton","StyledGroupButtonIcon","StyledGroupButtonSpan","StyledFilterTypeSelect","filterTypeOptions","StyledAllocationSpan","EditTypeButton","active","AttributeEditHeader","toggleAll","handleSearch","toggleAllValue","clearSearch","allocationAllowed","filterAllowed","editMode","toggleEditMode","showSplitEvenly","onSplitEvenlyClick","filterType","toggleFilterType","allowSearch","allowSelectAll","showAllocation","filterDisableMessage","showFilter","maybeClearSearchButton","iconClear","tooltipInfo","AttributeEditHeader_StyledHeader","margin","AttributeEditHeader_StyledTooltip","iconInfo","AttributeEditHeader_EditTypeButton","allocationActive","allocation","allocationDisabled","filterActive","filterDisabled","AttributeEditHeader_StyledTextInput","height","AttributeEditHeader_StyledCheckbox","splitEvenly","StyledSelectView","AttributeEditFooter_templateObject","AttributeEditFooter_templateObject2","StyledSpan","AttributeEditFooter_templateObject3","StyledToggle","Toggle","AttributeEditFooter_templateObject4","CustomSpan","StyledAllocSpan","AttributeEditFooter_templateObject5","StyledCompletesSpan","AttributeEditFooter_templateObject6","AttributeEditFooter","showSelectedOnlyToggle","allocationOn","toggleViewSelectedOptions","unchecked","marginLeft","HiddenInput","Checkbox_templateObject","RedCheckbox","viewBox","xmlns","y","rx","ry","strokeWidth","points","strokeLinecap","strokeLinejoin","Checkbox_templateObject2","focusA","fillColor","AttributeOptionList_templateObject","StyledOptionGrid","hoverColor","AttributeOptionList_templateObject2","StyledOptionLabel","AttributeOptionList_templateObject3","AttributeOptionList","optionChecked","updateGroup","lineItemState","filterIsExclude","checkbox","AttributeOptionList_StyledCheckbox","getQuotaGroupInputWithAllocations","parsedMap","allocationValue","mapAllocations","draft","evenly","cellsToMap","getCurrQuotaGroup","updateQuotaGroupInput","prevGroup","newQuotaCells","allocationMapKey","useAttributeEdit","initialSelectedOptions","initialQuotaGroupInput","initialEditMode","initialOperatorType","nonNullOptionKeys","initialOptionsMap","option","optionsCheckList","showSelectedOptions","showAllocationErrors","setShowAllocationErrors","setShouldUpdateAllocRowVal","toggleOption","optionId","optionCheck","newQuotaGroupInput","quotaCellsWithoutOptions","groupWithoutOptions","groupWithSegregateOptions","unGroupOptions","newAllocationMap","delete","filteredOptions","allSelected","newOptions","handleSplitEvenly","selectedQuotaGroupInput","isRange","updateAllocationCell","index","updateGroupWithAllocations","deleteAllocationCell","OptionsList","AttributeOptionEditor_templateObject","AttributeOptionEditor_templateObject2","AttributeOptionEditor","_ref2$initialSelected","calculatedListHeight","isAllowedInQuotas","isAllowedInFilters","oList","_useAttributeEdit","toggleVals","filterOn","filterIsInclude","wordToMatch","optionKeys","safeWordToMatch","regex","findMatches","selectedFilteredOptions","findSelectedMatches","currOptionList","currSortedUnGroupedOptionList","groupAttrIds","nonNullGroupedOptionMap","currList","maybeGroupedOptions","currSortedOptionList","sortedAllOptionsMap","sortedList","getCurrentSortedList","optionList","quotaNodeOptions","sortedOptionKeys","getGroupedOptionText","quotaNodeInput","quotaCellCount","quotaCellPerc","quota_AttributeOptionList","_useAllocationReview","selectedQuotaGroupWithAlloc","isAllocationIncomplete","isSelectedAllocationOptionsLess","isSelectedFilterOptionsLess","disabledMessage","errorMsg","quota_AttributeEditHeader","quota_AttributeEditFooter","asAllocation","quotaFilterInput","parseRangeStrings","rangeStrings","rangeProper","array","minInt","maxInt","rangesProper","ranges","rangesMatch","rn","test","findQuotaNode","validateRanges","singleRanges","sortedRanges","sortBy","rangesOverlap","getOptionFromRangeArray","rangeArray","findPrevCellCount","allocationKey","allocatedCount","groupFromRangesAndGroup","rangeArrays","prevCells","updatedQuotaCells","getInitialRanges","initialOptions","orderBy","foundNode","sortQuotaCells","useAttributeRange","rangeGroupingChange","setRangeGroupingChange","singleRangesArray","getSingleRangesArray","rangesValid","setValue","arrayIndex","prevRangeArray","prevQuotaNodeOptions","prevAllocationMapKey","prevAllocationCount","prevAllocationPerc","newRange","newRangeArray","newQuotaNodeOptions","newAllocationMapKey","newRanges","newGroupInput","removeRange","addRange","after","getUpdatedRanges","stringifyRanges","Add","highlightBorder","currValue","AttributeRangeRow_templateObject","RangeRowOuter","AttributeRangeRow_templateObject2","StyledIconButton","AttributeRangeRow_templateObject3","StyledAddIconButton","AttributeRangeRow_templateObject4","StyledDeleteIcon","AttributeRangeRow_templateObject5","AttributeRangeRow","addDisabled","range","deleteDisabled","highlightErrorRanges","minInput","maxInput","AttributeRangeRow_StyledTextInput","onBlur","DeleteIcon","Index","AttributeRangeEditor_templateObject","StyledRangeList","AttributeRangeEditor_templateObject2","StyledGroupGrid","AttributeRangeEditor_templateObject3","StyledRangeGrid","AttributeRangeEditor_templateObject4","AttributeRangeEditor_templateObject5","AttributeRangeEditor","rnToTest","getMinRangeInput","getMaxRangeInput","attributeEditState","_useAttributeRange","rangesErrorMessage","isSelectedOptionsLess","saveDisabledMessage","isRangeGroupEmpty","rangeError","setRangeError","getCountFromMapViaIndex","AttributeRangeEditor_StyledFlex","quota_AttributeRangeRow","selectedQuotaGroup","StyledOuter","AttributeStringEditor_templateObject","AttributeStringEditor_templateObject2","AttributeStringEditor","_ref$initialSelectedO","_ref$invalidOptions","maxAttributeOptions","tooManyOptions","fileReader","FileReader","onload","dataTransfer","items","preventDefault","files","getAsFile","readAsText","AttributeStringEditor_Blurb","AttributeIntegerEditor_templateObject","AttributeIntegerEditor_templateObject2","AttributeIntegerEditor_StyledOuter","AttributeIntegerEditor_Blurb","AttributeEditorSwitch","quota_AttributeOptionEditor","quota_AttributeRangeEditor","quota_AttributeStringEditor","AttributeIntegerEditor","PremiumIcon","AttributeEditorModal_templateObject","AttributeEditorModal_templateObject2","AttributeEditorModal_templateObject3","AttributeEditorModal_templateObject4","AttributeEditorModal","maybePremiumIcon","tier","AttributeEditorModal_StyledTooltip","premiumTagSmall","innerHeight","AttributeEditorModal_StyledModal","quota_AttributeEditorSwitch","ProjectTopicSelectorModal_templateObject","ProjectTopicSelectorModal","ProjectTopicSelectorModal_StyledModalBody","InvalidInputModal_templateObject","Header","InvalidInputModal_templateObject2","ModalIcon","InvalidInputModal_templateObject3","h3","InvalidInputModal_templateObject4","InvalidInputModal_templateObject5","InvalidInputModal_templateObject6","EditButton","InvalidInputModal_templateObject7","InvalidInputModal","attributeName","onEdit","onProceed","InvalidInputModal_StyledModal","InvalidInputModal_Header","iconOrangeInfo","InvalidInputModal_Title","InvalidInputModal_Message","InvalidInputModal_Buttons","ModalCloseButton_templateObject","ClearIcon","ModalCloseButton_templateObject2","ModalCloseButton","ModalCloseButton_StyledButton","svgClear","getStatusText","toLowerCase","getStatusIcon","ExternalSurveyStatus","DESIGN","svgDesign","svgLive","svgClosed","TEST","svgTesting","Box","CmixSurveyStatus_templateObject","StyledStatusIcon","CmixSurveyStatus_templateObject2","StyledSurveyName","CmixSurveyStatus_templateObject3","CmixSurveyStatus","_getStatusData","statusText","statusIcon","OuterDiv","CmixSurveyListItem_templateObject","activeSectionOpen","CmixSurveyListItem_templateObject2","CmixSurveyListItem_templateObject3","StyledGridCol","CmixSurveyListItem_templateObject4","StyledAppIcon","CmixSurveyListItem_templateObject5","StyledSurveyNameSection","CmixSurveyListItem_templateObject6","CmixSurveyListItem_templateObject7","StyledSurveyMappedDetails","CmixSurveyListItem_templateObject8","StyledProjectLink","CmixSurveyListItem_templateObject9","StyledSurveyMappedIcon","CmixSurveyListItem_templateObject10","CmixSurveyListItem","cmixIconURL","samplifyIconURL","closeModal","createSurvey","maybeInactiveRowDetails","mappedProject","projectID","surveyID","projectName","CmixSurveyListItem_StyledSurveyName","survey_CmixSurveyStatus","CmixSurveyListItem_Box","Godzilla","ErrorSplash","CmixSurveyList_templateObject","ErrorOuter","CmixSurveyList_templateObject2","CmixSurveyList_templateObject3","PageError","CmixSurveyList_Blurb","LoadingOuter","CmixSurveyList_templateObject4","PageLoading","NoSurveysOuter","CmixSurveyList_templateObject5","StyledFileIcon","CmixSurveyList_templateObject6","StyledNoSurveysBlurb","CmixSurveyList_templateObject7","StyledLinkAsButton","CmixSurveyList_templateObject8","PageNoSurveys","cmixURL","svgFile","CmixSurveyList","surveys","hasNext","addMoreSurveys","fetching","refetching","CmixSurveyList_PageError","CmixSurveyList_PageLoading","CmixSurveyList_PageNoSurveys","maybeRefetching","debouncedLoadMore","debounce","leading","trailing","surveyRows","survey_CmixSurveyListItem","react_infinite_scroll_component_lib_default","dataLength","hasMore","loader","useGetExternalSurveys","authoringPlatform","searchQuery","pageNumber","fetchPolicy","notifyOnNetworkStatusChange","useQuery","externalSurveysQuery","useExternalSurveysPaging","setPageNumber","_useGetExternalSurvey","fetchMore","refetch","networkStatus","externalSurveys","totalSurveys","NetworkStatus","updateQuery","fetchMoreResult","newData","previousSurveys","allSurveys","newSurveyList","nextPage","CmixSurveyModalBody_templateObject","StyledTop","CmixSurveyModalBody_templateObject2","StyledSearchBox","CmixSurveyModalBody_templateObject3","CmixSurveyModalBody_templateObject4","StyledDebounce","DebounceInput","SearchInput","CmixSurveyModalBody_templateObject5","StyledRefreshBox","CmixSurveyModalBody_templateObject6","StyledRefreshBtn","CmixSurveyModalBody_templateObject7","StyledRefreshIcon","CmixSurveyModalBody_templateObject8","SectionTitle","CmixSurveyModalBody_templateObject9","RedSpan","CmixSurveyModalBody_templateObject10","StyledSections","CmixSurveyModalBody_templateObject11","SectionOuter","CmixSurveyModalBody_templateObject12","SectionActiveOuter","CmixSurveyModalBody_templateObject13","SectionInActiveOuter","CmixSurveyModalBody_templateObject14","CmixSurveyModalBody","stateSearchQuery","setStateSearchQuery","setActiveSectionOpen","toggleSectionOpen","totalActive","setTotalActive","totalInActive","setTotalInActive","updateTotal","_useExternalSurveysPa","AuthoringPlatform","surveysList","survey_CmixSurveyList","activeSurveysHeader","inActiveSurveysHeader","CmixSurveyModalBody_StyledBody","debounceTimeout","CmixSurveyModalBody_StyledSearchIcon","svgSearch","svgRefresh","components_Section","ConnectCmixSurveyModal_templateObject","ConnectCmixSurveyModal_templateObject2","ConnectCmixSurveyModal_templateObject3","GoToCmixLinkAsBtn","ConnectCmixSurveyModal_templateObject4","StyledLinkIcon","ConnectCmixSurveyModal_templateObject5","ConnectCmixSurveyModal","cmixApp","icon","ConnectCmixSurveyModal_StyledModal","ConnectCmixSurveyModal_StyledHeader","ConnectCmixSurveyModal_StyledTitle","svgLink","survey_CmixSurveyModalBody","useDeleteTargetingTemplate","templateID","ConfirmDeleteTargetingTemplate_templateObject","ConfirmDeleteTargetingTemplate_templateObject2","ConfirmDeleteTargetingTemplate_templateObject3","ConfirmDeleteTargetingTemplate_templateObject4","ConfirmDeleteTargetingTemplate_templateObject5","ConfirmDeleteTargetingTemplate_templateObject6","ConfirmDeleteTemplate","template","resetTemplates","_useTemplateDelete","useTemplateDelete","ConfirmDeleteTargetingTemplate_Outer","ConfirmDeleteTargetingTemplate_StyledBody","ConfirmDeleteTargetingTemplate_StyledHeader","deleteIcon","ConfirmDeleteTargetingTemplate_Footer","ConfirmDeleteTargetingTemplate_StyledButton","SaveTargetingTemplate_templateObject","InputWrapper","SaveTargetingTemplate_templateObject2","SaveTargetingTemplate_templateObject3","StyledH2","h2","SaveTargetingTemplate_templateObject4","SaveTargetingTemplate_templateObject5","SaveTargetingTemplate_templateObject6","StyledSection","SaveTargetingTemplate_templateObject7","StyledSectionHeader","SaveTargetingTemplate_templateObject8","SaveTargetingTemplate_templateObject9","SaveTargetingTemplate","createTemplate","setName","desc","setDesc","saveTemplate","allocations","attrId","attrName","maybeNested","nestedAttrsList","SaveTargetingTemplate_StyledSpan","getNested","maybeAllocation","SaveTargetingTemplate_StyledImg","Allocation","filterItems","maybeFilters","SaveTargetingTemplate_StyledModalBody","SaveTargetingTemplate_StyledTextArea","SaveTargetingTemplate_Buttons","nameVal","tags","CreateTargetingTemplateContainer","mutateCreateTargetingTemplate","modal_SaveTargetingTemplate","StyledAcceptSection","ProjectRestrictionsModal_templateObject","ProjectRestrictionsModal_templateObject2","ProjectRestrictionsModal_templateObject3","ProjectRestrictionsModal_templateObject4","StyledRestriction","ProjectRestrictionsModal_templateObject5","ProjectRestrictionsModal","setChecked","restrictions","openCreateProjectModal","ProjectRestrictionsModal_StyledModalBody","ProjectRestrictionsModal_StyledLabel","ProjectRestrictionsModal_StyledCheckbox","ConfirmLoadTargetingTemplate_templateObject","ConfirmLoadTargetingTemplate_templateObject2","ConfirmLoadTargetingTemplate_templateObject3","ConfirmLoadTargetingTemplate_templateObject4","ConfirmLoadTargetingTemplate_templateObject5","ConfirmLoadTargetingTemplate_templateObject6","ConfirmLoadTemplate","loadTemplate","ConfirmLoadTargetingTemplate_Outer","ConfirmLoadTargetingTemplate_StyledBody","ConfirmLoadTargetingTemplate_StyledHeader","ConfirmLoadTargetingTemplate_StyledIcon","iconWarning","ConfirmLoadTargetingTemplate_StyledP","ConfirmLoadTargetingTemplate_Footer","ConfirmDuplicateProjectInternalSurveys_templateObject","ConfirmDuplicateProjectInternalSurveys_templateObject2","ConfirmDuplicateProjectInternalSurveys_templateObject3","StyledBlurb","ConfirmDuplicateProjectInternalSurveys_templateObject4","ConfirmDuplicateProjectInternalSurveys","duplicateProject","ConfirmDuplicateProjectInternalSurveys_StyledHeader","ConfirmDuplicateProjectInternalSurveys_StyledInfoIcon","svgInfo","ConfirmDuplicateProjectInternalSurveys_StyledTitle","StyledBaseModal","BaseModal","Modal_templateObject","Modal","clearModalType","modalTypes","closeable","Content","ConfirmNavigation","ConfirmDeleteTargetingTemplate","CreateTemplateContainer","ConfirmLoadTargetingTemplate","renderModalContent","appElement","modalSize","InvoiceReportModal","closeTimeoutMS","contentLabel","onRequestClose","size","shouldCloseOnOverlayClick","ModalContainer","modalData","modal_Modal","AppOuter","AppOuter_templateObject","userQuery","user_templateObject","Decline","TosDecline_templateObject","TosDecline","setDeclineToSModal","useSetModal","Accept","TosAccept_templateObject","agree","StyledSpnner","TosAccept_templateObject2","TosAccept","_ref7","showRedText","acceptTos","buttonContent","Download","DownloadButton","DownloadPdf_templateObject","DownloadPdf","downloadLink","TosStyler","Tos_templateObject","Tos_templateObject2","ToCText","ol","Tos_templateObject3","Tos_templateObject4","Tos_templateObject5","Tos_templateObject6","SmallText","Tos_templateObject7","RedText","Tos_templateObject8","TOS_QUERY","Tos_templateObject9","ACCEPT_TOS_MUTATION","Tos_templateObject10","Tos","redText","handleChange","hideRedText","clearErrors","htmlEntities","str","String","GenericErrorBoundary","components_PageLoading","components_PageError","termsTemplate","DOMParser","parseFromString","firstChild","innerHTML","refetchQueries","acceptTermsAndConditions","maybeErrors","data-testid","Tos_Header","tos_DownloadPdf","dangerouslySetInnerHTML","__html","Tos_Flex","Tos_StyledCheckbox","Tos_Buttons","tos_TosDecline","tos_TosAccept","errorMsgs","graphQLErrors","StyledLogo","Title_templateObject","Title_templateObject2","StyledArrow","Title_templateObject3","StyledIdentifier","Title_templateObject4","StyledEnv","Title_templateObject5","env","Title_StyledTitle","samplifyTitle","arrowLogo","StyledNav","nav","Nav_templateObject","StyledNavLink","Nav_templateObject2","NavLink","Nav","aria-label","HEADER","exact","Help_templateObject","StyledHelpIcon","Help_templateObject2","Apps","Help_StyledButton","useComponentVisible","initialIsVisible","isVisible","setIsVisible","ref","useRef","handlePressEscape","event","handleClickOutside","current","contains","addEventListener","removeEventListener","toggleIsVisible","AccountMenuCommonStyles","StyledMenuHeader","AccountMenuStyles_templateObject","StyledMenuHeaderLabel","AccountMenuStyles_templateObject2","StyledAccount","Account_templateObject","StyledAccountButton","Account_templateObject2","StyledAccountMenu","Account_templateObject3","Account_templateObject4","StyledMenuWrapper","Account_templateObject5","Account_templateObject6","Account_templateObject7","Account_templateObject8","Account","userInfo","_useComponentVisible","firstName","initials","maybeAccountMenu","Account_StyledSectionHeader","Account_StyledButton","Account_StyledSpan","StyledCompanyLabel","CompanySwitcherMenu_templateObject","StyledCompanyList","CompanySwitcherMenu_templateObject2","CompanySwitcherMenu_templateObject3","StyledInputWrapper","CompanySwitcherMenu_templateObject4","CompanySwitcherMenu_templateObject5","CompanySwitcherMenu","onCompanySelect","searchText","setSearchText","sortedCompanies","CompanySwitcherMenu_StyledSearchIcon","CompanySwitcherMenu_StyledInput","pipe","switchCompany","companySwitch_templateObject","useSwitchCompany","companyID","mutationStatus","CaretIcon","CompanySwitcher_templateObject","StyledCompanySwitcher","CompanySwitcher_templateObject2","CompanySwitcher_templateObject3","CompanySwitcher_templateObject4","CompanySwitcher","effectiveCompany","companySwitcherOpen","toggleCompanySwitcher","onSwitchSuccess","onSwitchFailure","header_CompanySwitcherMenu","CompanySwitcher_StyledSpan","caret","animation","keyframes","CompanySwitchSuccess_templateObject","CompanySwitchSuccess_templateObject2","SuccessMessage","CompanySwitchSuccess_templateObject3","ErrorMessage","CompanySwitchSuccess_templateObject4","CompanySwitchSuccess","showCompanySwitchErrMsg","removeCompanySwitchMsgs","interval","setInterval","clearInterval","Header_templateObject","StyledLeftDiv","Header_templateObject2","StyledAppsButton","Header_templateObject3","StyledGridIcon","Header_templateObject4","StyledRightDiv","Header_templateObject5","termsAccepted","doesUserHaveAccess","apps","toggleLauncherOpen","resetDashboard","resetInProgress","setResetInProgress","header_Nav","showCompanySwitchSuccessMsg","setShowCompanySwitchSuccessMsg","setShowCompanySwitchErrMsg","setEffectiveCompany","maybeCompanySwitcher","header_CompanySwitcher","maybeCompanySwitchSuccess","header_CompanySwitchSuccess","Header_StyledHeader","header_Title","Help","header_Account","customWindow","showBeacon","page","msgID","beacon","Beacon","matchPath","useBeaconRouting","loc","useLocation","hsDashboardMessage","hsSurveysMessage","hsRespondentsMessage","hsInvoicesMessage","Unauthorized_templateObject","Heading","Unauthorized_templateObject2","Unauthorized_templateObject3","Icon","Unauthorized_templateObject4","Unauthorized","Unauthorized_Outer","accessKey","Unauthorized_Message","widget","DIPLauncherWidget","StyledLauncher","setOpen","mounted","setMounted","appIds","vars","getEnvTag","launcherContainer","getElementsByClassName","appsButton","mount","parentElement","DIPLauncher_templateObject","AppStatus","StyledMain","main","AppLayout_templateObject","LoadableDashboard","Loadable","Promise","all","LoadableInvoices","LoadableProject","LoadableSurveytool","AppLayout","setFilters","countries","deliveryModes","studyRequirements","projectsList","dashboardError","hasMoreProjects","addMoreProjects","formattedFilters","dashboardLoading","userTermsInfo","signedVersion","currentVersion","applications","actionCreateProject","CREATE_NEW_PROJECT","header_Header","_match$params","initialSurveyHash","basename","exitLink","components_AppOuter","components_DIPLauncher","tos_Tos","components_LoginCallback","allowSurveyBuilder","userApps","components_Page404","containers_ModalContainer","components_Unauthorized","LoginContainer","renderChildren","unauthorized","_this$state","FullStoryIdentifier","user","userId","email","FullStory","displayName","fullName","companyName","IdleLogoutContainer","dist_index_es","timeout","onIdle","AppStatusContainer","gqlError","Blank","appStatus","setStatus","appStatusCheck","OK","NotOK","SROnly","SROnly_templateObject","Grid","OutageNotice_templateObject","OutageNotice_templateObject2","OutageNotice_templateObject3","MessageOuter","OutageNotice_templateObject4","StyledSplash","OutageNotice_templateObject5","StyledSub","sub","OutageNotice_templateObject6","Art","OutageNotice_templateObject7","OutageNotice_H1","OutageNotice_Icon","OutageNotice_Blurb","OutageNotice","WidthWrap","OutageNotice_Art","aria-labelledby","OutageNotice_Message","components_SROnly","useServiceWorkerUpdated","installed","setInstalled","navigator","serviceWorker","getRegistration","reg","installingWorker","installing","onstatechange","controller","UpdateFoundContainer","updateFound","setModal","HealthyContainer","healthy","setHealthy","logoutIfRequired","healthyCheck","MaintenanceMessage_templateObject","MaintenanceMessage_templateObject2","StyledMessage","MaintenanceMessage_templateObject3","MaintenanceMessage_templateObject4","MaintenanceMessage_templateObject5","MaintenanceMessage","MaintenanceMessage_Outer","MaintenanceMessage_StyledHeader","MaintenanceMessage_StyledIcon","Padlock","MaintenanceMessage_StyledAnchor","StyledToast","DefaultToast","Toast_templateObject","Toast","esm_extends","getGraphQLError","error_templateObject","getNetworkError","error_templateObject2","IconWrapper","ToastChild_templateObject","ToastChild_templateObject2","StyledToastChild","ToastChild_templateObject3","ToastChild_templateObject4","ToastChild_templateObject5","getIcon","ErrorIcon","WarningIcon","InfoIcon","ToastChild","maybeIcon","ToastChild_StyledIcon","displayedMessage","ToastChild_Title","ToastChild_Message","defaultSystemErr","GraphQLErrorHandlerContainer","client","useApolloClient","networkError","addToast","useToasts","getErrorsToDisplay","components_ToastChild","autoDismiss","onDismiss","useFetchUserInfo","useUserInfo","userData","setUserData","_useFetchUserInfo","effComp","onstorage","storageEvent","oldValue","newValue","useStudyMetaData","useMetaData","_useFetchMetaData","useFetchMetaData","metaData","studyMetadata","deliveryTypes","studyTypes","validateData","useFilters","setDate","getDate","setHours","statuses","initialFilters","partial","mergeFilters","useGetDashboardProjects","formatFilters","dashboardTableQuery","useDashboardPaging","_useGetDashboardProje","projects","np","pp","newProjects","previousProjects","newProjectList","totalProjects","refetchProjects","omitTypenameLink","ApolloLink","operation","forward","hasUnauthError","statusCode","errorLink","onError","locations","authHeaderLink","setContext","_","authorization","clientHttpLink","HttpLink","uri","InMemoryCache","dataIdFromObject","object","defaultDataIdFromObject","clientStateLink","withClientState","resolvers","Mutation","stateLinkWriteDefault","writeDefaults","unauthorizedLink","getClient","ApolloClient","AppStatusSwitch","components_OutageNotice","components_MaintenanceMessage","containers_LoginContainer","Provider","containers_UpdateFoundContainer","App_AppContainer","containers_IdleLogoutContainer","AppContainer","useHistory","setStateResetInProgress","clearStore","refetchUserData","refetchMetaData","onClearStore","_useUserInfo","_useMetaData","_useProjectFilters","useProjectFilters","_useDashboardPaging","components_FullStoryIdentifier","components_AppLayout","withDragDropContext","react_router_dom","components_GlobalStyle","ApolloContext","dist","components","containers_GraphQLErrorHandlerContainer","containers_AppStatusContainer","containers_HealthyContainer","App_AppStatusSwitch","isLocalhost","Boolean","hostname","SW_UPDATE_INTERVAL","registerValidSW","swUrl","register","registration","onupdatefound","ready","unregister","checkValidServiceWorker","orgId","sentry_dsn","sentryDSN","REACT_APP_SENTRY_DSN","Sentry","dsn","ReactDOM","src_App","ReasonCode","bubbleStateLabelMap","ProjectState","explicitDateString","dateNumber","num","foundDeviceOrCategoryError","details","reasons","reason","getDeviceType","DeviceEnum","mobile","tablet","desktop","respondentStatuses","respondentStatusLabelMap","SCREENOUT","INCOMPLETE","OVERQUOTA","respondentEntryDateTypeLabelMap","ALL_DATES","LAST_DAYS","LAST_MONTHS","CUSTOM","timeBasedProjectExclusionsTypes","timeBasedProjectExclusionsTypeLabelMap","THIS_MONTH","LAST_MONTH","LAST_THREE_MONTHS","StyledErrorCell","StyledErrorSpan","StyledErrorIcon","StyledButtons","StyledSaveButton","StyledDisabledButton","saveButton","onMouseEnter","iconError","samplify_design__WEBPACK_IMPORTED_MODULE_3__","Device","SecurityLevel","DeliveryType","AppID","BillingType","QuotaCellAction","tableRow","invoicesTableQuery","updateRespondentFilters","updateDevices","localeLinksFragment","surveyLineItem","refreshLocaleLinks","surveysQuery","dataAppendAttributes","updateSurvey","Delete","StyledDelete","stopPropagation","menuIsOpen","_var_lib_jenkins_goworkspace_src_github_com_researchnow_samplify_ui_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__","StyledSelect","StyledCaretIcon","DropdownIndicator","_props$components","_props$styles","styles","customStyles","indicatorSeparator","control","base","boxShadow","borderColor","outline","&:hover","borderRadius","border","FIELD_SCHEDULE_API_DATE_FORMAT","FIELD_SCHEDULE_DEFAULT_API_DATE_FORMAT","FIELD_SCHEDULE_UI_DATE_FORMAT","RESPONDENT_FILTERS_API_DATE_FORMAT","RESPONDENT_FILTERS_UI_DATE_FORMAT","_containers_ModalPropsContext__WEBPACK_IMPORTED_MODULE_1__","_var_lib_jenkins_goworkspace_src_github_com_researchnow_samplify_ui_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__","_var_lib_jenkins_goworkspace_src_github_com_researchnow_samplify_ui_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__","_var_lib_jenkins_goworkspace_src_github_com_researchnow_samplify_ui_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__","errorInfo","errorRender","react__WEBPACK_IMPORTED_MODULE_5___default","_PageError__WEBPACK_IMPORTED_MODULE_6__","Children","only","Wrap"],"mappings":"6tEA4BaA,EAAmB,SACnBC,EAAuB,aAGvBC,EAAsB,UACtBC,EAAsB,UAEtBC,EAAwB,CACnC,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WAGWC,EAAkB,UAClBC,EAAoB,UACpBC,EAAmB,UACnBC,EAAmB,UACnBC,EAA0B,UAS1BC,EAAmB,SAC9BC,GAIA,IAFA,IAAMC,EAAS,IAAIC,IAAIF,GAEvBG,EAAA,EAAAC,EADaC,MAAMC,KAAKL,EAAOM,QAC/BJ,EAAAC,EAAAI,OAAAL,IAAsB,CAAjB,IAAIM,EAAGL,EAAAD,GACJO,EAAgBT,EAAOU,IAAIF,GACjC,GAAIC,EAAe,CACjB,IAAIE,EAAWF,EAAcG,MAC3BC,EAAUJ,EAAcK,KACF,kBAAbH,IACTA,EAAWI,WAAWJ,IAAa,GAEd,kBAAZE,IACTA,EAAUE,WAAWF,IAAY,GAEnCb,EAAOgB,IAAIR,EAAK,CAAEI,MAAOD,EAAUG,KAAMD,KAG7C,OAAOb,GAoDIiB,EAAa,SAACC,GACzB,IAAMC,EAAa,IAAIf,MAQvB,OANqBc,EAAWE,YAAc,IACjCC,QAAQ,SAAAC,GACnB,IAAMC,EAAeD,EAAKH,YAAc,GACxCA,EAAWK,KAAXC,MAAAN,EAAUO,OAAAC,EAAA,EAAAD,CAASH,MAGdJ,GAcIS,EAAY,SAACC,GACxB,IAAMV,EAAa,IAAIf,MAOvB,OAnBuB,SAACyB,GACxB,IAAMT,EAAa,IAAIhB,MAOvB,OALsByB,EAAUC,aAAe,IACjCT,QAAQ,SAAAU,GACpBX,EAAWI,KAAXC,MAAAL,EAAUM,OAAAC,EAAA,EAAAD,CAASK,EAAEX,eAGhBA,EAMPY,CAAUH,GAAWR,QAAQ,SAAAC,GAC3B,IAAMC,EAAeD,EAAKH,YAAc,GACxCA,EAAWK,KAAXC,MAAAN,EAAUO,OAAAC,EAAA,EAAAD,CAASH,MAGdJ,GAGIc,EAAuB,SAACJ,GAAD,OAClCK,IAAKN,EAAUC,GAAW9B,IAAI,SAAAoC,GAAI,OAAIA,EAAKC,gBAEhCC,EAAmB,SAACR,GAC/B,IAAMS,EAAe,IAAIlC,MAUzB,OARAyB,EAAUU,QAAQlB,QAAQ,SAAAmB,GAAC,OAAIF,EAAad,KAAKgB,EAAEJ,eAEnDP,EAAUC,YAAYT,QAAQ,SAAAU,GAAC,OAC7BA,EAAEX,WAAWC,QAAQ,SAAAoB,GAAC,OACpBA,EAAEtB,WAAWE,QAAQ,SAAAqB,GAAC,OAAIJ,EAAad,KAAKkB,EAAEN,mBAI3CE,GAGIK,EAAkB,SAC7Bd,EACAe,EACAC,GAEA,IAAMC,EAA0BC,EAAgBlB,EAAUC,aAAe,IAEnEkB,EAAc,IAAI5C,MAClB6C,EAAQ,IAAI7C,MAClB0C,EAAwBzB,QAAQ,SAAAU,GAC1Ba,EAAWb,EAAEX,WAAW,GAAGD,WAAW,GAAGiB,aAC3CY,EAAYxB,KAAKO,GAEjBkB,EAAMzB,KAAKO,KAIf,IAAMmB,EAAsBC,EAAgBH,EAAaH,GAEzD,MAAO,CACLN,QAASV,EAAUU,SAAW,GAC9BT,YAAW,CAAGoB,GAAHE,OAA2BH,KAI7BF,EAAkB,SAC7BM,GAEA,IAAMC,EAAyB,IAAIrD,IAE7B+C,EAAc,IAAI5C,MA4DxB,OA3DAiD,EAAOhC,QAAQ,SAAAU,GACb,IAAMwB,EAAMC,EAAkBzB,GAEX,IAAfwB,EAAIhD,OACN+C,EAAuBtC,IAAIuC,EAAI,GAAIxB,GAEnCiB,EAAYxB,KAAKO,KAIrBiB,EAAY3B,QAAQ,SAAAU,GAClBA,EAAEX,WAAWC,QAAQ,SAAAoB,GACnBA,EAAEtB,WAAWE,QAAQ,SAAAqB,GACnB,IAAMe,EAAqBH,EAAuB5C,IAAIgC,EAAEN,aAExD,GAAIqB,EAAoB,CACtB,IAAIC,GAAY,EAgChB,OA/BAD,EAAmBrC,WAAWC,QAAQ,SAAAC,GAIpC,GAAIqC,IAAQjB,EAAGpB,EAAKH,WAAW,IAW7B,OAVAuC,GAAY,OACZJ,EAAuBtC,IAAI0B,EAAEN,YAAa,CACxCwB,KAAM,GACNxC,WAAU,GAAAgC,OAAA1B,OAAAC,EAAA,EAAAD,CACL+B,EAAmBrC,WAAWyC,OAC/B,SAAApB,GAAC,OAAKkB,IAAQlB,EAAGnB,MAFX,CAIR,CAAEV,MAAOU,EAAKV,MAAQ6B,EAAE7B,MAAOO,WAAY,CAACuB,GAAI5B,KAAM,cAM1D4C,GACFJ,EAAuBtC,IAAI0B,EAAEN,YAAa,CACxCwB,KAAM,GACNxC,WAAU,GAAAgC,OAAA1B,OAAAC,EAAA,EAAAD,CACL+B,EAAmBrC,YADd,CAER,CACER,MAAO6B,EAAE7B,MACTO,WAAY,CAACuB,GACb5B,KAAM,QAQhBwC,EAAuBtC,IAAI0B,EAAEN,YAAa,CACxCwB,KAAM,GACNxC,WAAY,CAAC,CAAER,MAAO6B,EAAE7B,MAAOO,WAAY,CAACuB,GAAI5B,KAAM,YAMvDV,MAAMC,KAAKiD,EAAuBQ,WAG9BX,EAAkB,SAC7BE,EACAR,GAEA,GAAsB,IAAlBQ,EAAO9C,OACT,MAAO,CAAEqD,KAAM,GAAIxC,WAAY,IAGjC,GAAsB,IAAlBiC,EAAO9C,OACT,OAAO8C,EAAO,GAGhB,IAAIU,EAAmBV,EAAO,GAW9B,OAVAA,EAAOhC,QAAQ,SAACU,EAAGiC,GACP,IAANA,IACFD,EAAmBE,EACjBF,EACAhC,EACAc,MAKCkB,GAGIE,EAAqB,SAChCC,EACAC,EACAtB,GAEA,IAAMuB,EAAmB,IAAIhE,MAc7B,OAZA8D,EAAO9C,WAAWC,QAAQ,SAAAgD,GACxBF,EAAO/C,WAAWC,QAAQ,SAAAiD,GACxBF,EAAiB5C,KAAK,CACpBZ,MAAO2D,KAAKC,MACTH,EAAWzD,MAAQ0D,EAAW1D,MAASiC,GAE1C1B,WAAU,GAAAiC,OAAA1B,OAAAC,EAAA,EAAAD,CAAM2C,EAAWlD,YAAjBO,OAAAC,EAAA,EAAAD,CAAgC4C,EAAWnD,aACrDL,KAAM,QAKL,CACL8C,KAAM,GACNxC,WAAYqD,EAAoBL,EAAkBvB,KAIzC4B,EAAsB,SACjCrD,EACAyB,GAEA,IAAI6B,EAAStD,EAAWrB,IAAI,SAAA0C,GAAC,OAAIA,EAAE7B,QAE7B+D,EAAY9B,EADM6B,EAAOE,OAAO,SAACC,EAAGC,GAAJ,OAAUD,EAAIC,GAAG,GAGnDC,EAAa,EACbJ,EAAY,IACdI,GAAc,GAEhB,IAAK,IAAIf,EAAI,EAAGA,EAAIO,KAAKS,IAAIL,GAAYX,IAAK,CAE5C,IADA,IAAIiB,EAAMjB,EAAIU,EAAOnE,OACd0E,IAAQP,EAAOnE,OAAS,GAAKmE,EAAOO,GAAOF,EAAa,GAC7DE,IACAA,GAAYP,EAAOnE,OAErBmE,EAAOO,GAAOP,EAAOO,GAAOF,EAG9B,OAAO3D,EAAWrB,IAAI,SAAC0C,EAAGuB,GAAJ,OAAAtC,OAAAwD,EAAA,EAAAxD,CAAA,GACjBe,EADiB,CAEpB7B,MAAO8D,EAAOV,QAIZmB,EAAiB,SAACN,EAAmBC,GACzC,OAAID,EAAEzC,YAAc0C,EAAE1C,YAAoB,EACtCyC,EAAEzC,YAAc0C,EAAE1C,aAAqB,EACvCyC,EAAEO,QAAQC,OAAO,GAAKP,EAAEM,QAAQC,OAAO,GAAW,EAClDR,EAAEO,QAAQC,OAAO,GAAKP,EAAEM,QAAQC,OAAO,IAAY,EAChD,GAGIC,EAAa,SAACT,EAAaC,GACtC,GAAI1E,MAAMmF,QAAQV,EAAE1D,YAAa,CAC/B,IAAMqE,EAAQX,EAAE1D,WAAWsE,QACrBC,EAAQZ,EAAE3D,WAAWsE,QACrBE,EAASH,EAAMH,KAAKF,GACpBS,EAASF,EAAML,KAAKF,GAC1B,OAAOxB,IAAQgC,EAAQC,GAEvB,OAAOjC,IAAQkB,EAAGC,IAITe,EAAc,SAAChB,EAAcC,GACxC,IAAMU,EAAQ9D,OAAOoE,OAAO,GAAIjB,GAC1Ba,EAAQhE,OAAOoE,OAAO,GAAIhB,GAC1Ba,EAAS1E,EAAWuE,GAAOH,KAAKF,GAChCS,EAAS3E,EAAWyE,GAAOL,KAAKF,GACtC,OAAOxB,IAAQgC,EAAQC,IAGZG,EAAkB,SAC7BlC,EACAhB,EACAe,GAEA,IACMxC,GADiByC,EAAOuB,SAAW,IACPrF,IAAoB,SAAAiG,GAAC,MAAK,CAC1D7E,WAAY,CACV,CACEiB,YAAayB,EAAOzB,YACpBgD,QAAS,CAACY,KAGdpF,MAAO,EACPE,KAAM,EACNmF,WAAY,eAGd,MAAO,CACLrC,KAAMA,EACNxC,WAAY8E,EAAkB9E,EAAYyB,GAC1CoD,WAAY,oBAsCHC,EAAoB,SAC/B9E,EACAyB,GAEA,OAA0B,IAAtBzB,EAAWb,OACN,GAGLa,EAAWb,OAASsC,EArBK,SAC7BzB,EACA+E,GAEA,IAAMzB,EAAS,IAAItE,MAAcgB,EAAWb,QAAQ6F,KAAK,EAAG,EAAGD,GAE/D,OAAO/E,EAAWrB,IAAoB,SAAC0C,EAAGuB,GAAJ,OAAAtC,OAAAwD,EAAA,EAAAxD,CAAA,GACjCe,EADiC,CAEpC7B,MAAO8D,EAAOV,GACdlD,KAAMuF,EAAQ3B,EAAOV,GAAImC,OAalBG,CAAuBlF,EAAYyB,GA3CrB,SACvBzB,EACAyB,GAQA,IANA,IAAM0D,EAAUnF,EAAWb,OACrBoE,EAAY9B,EAAoB0D,EAChCC,GAAmB3D,EAAoB8B,GAAa4B,EAEtD7B,EAAS,IAAItE,MAAcgB,EAAWb,QAAQ6F,KAAKI,GAE9CxC,EAAI,EAAGA,EAAIW,EAAWX,IAC7BU,EAAOV,GAAKU,EAAOV,GAAK,EAG1B,OAAO5C,EAAWrB,IAAI,SAAC0C,EAAGuB,GAAJ,OAAAtC,OAAAwD,EAAA,EAAAxD,CAAA,GACjBe,EADiB,CAEpB7B,MAAO8D,EAAOV,GACdlD,KAAMuF,EAAQ3B,EAAOV,GAAInB,OA6BpB4D,CAAiBrF,EAAYyB,IAGzBwD,EAAU,SAACzF,EAAe8F,GACrC,OAAO3F,YAAaH,EAAQ8F,EAAS,KAAKC,QAAQ,KAGvCC,EAAW,SAAC9F,EAAc4F,GACrC,OAAOnC,KAAKC,MAAO1D,EAAO,IAAO4F,IAM7BG,EAAc,SAACvF,GACnB,IAAMwF,EAAO,IAAI1G,MAKjB,OAHqBkB,EAAKH,YAAc,IAC3BE,QAAQ,SAAAc,GAAI,OAAI2E,EAAKtF,KAALC,MAAAqF,EAAIpF,OAAAC,EAAA,EAAAD,CAPf,SAACS,GAAD,OAAAT,OAAAqF,EAAA,EAAArF,CACdtB,MADcsB,OAAAC,EAAA,EAAAD,CACIS,EAAKiD,SAAW,KAMI4B,CAAY7E,OAE/C2E,GAGIG,EAAe,SAACC,GAC3B,IAAMJ,EAAO,IAAI1G,MAKjB,OAHqB8G,EAAM9F,YAAc,IAC5BC,QAAQ,SAAAC,GAAI,OAAIwF,EAAKtF,KAALC,MAAAqF,EAAIpF,OAAAC,EAAA,EAAAD,CAASmF,EAAYvF,OAE/CwF,GAGItD,EAAoB,SAAC0D,GAChC,IAAMC,EAAY,IAAIC,IAMtB,OAJCF,EAAM9F,YAAc,IAAIC,QAAQ,SAAAoB,GAAC,OAC/BA,EAAEtB,YAAc,IAAIE,QAAQ,SAAAqB,GAAC,OAAIyE,EAAUE,IAAI3E,EAAEN,iBAG7ChC,MAAMC,KAAK8G,IAGPG,EAAuB,SAACJ,GACnC,IAAMK,EAAU/D,EAAkB0D,GAClC,GAAuB,IAAnBK,EAAQhH,OACV,MAAM,IAAIiH,MACR,sFAEJ,OAAOD,EAAQ,IAsBJE,EAAgB,SAACC,GAAD,MAAsC,CACjEnF,QAASmF,EAAKnF,QAAQxC,IAAI,SAAAyC,GAAC,OAAImF,EAAgBnF,KAC/CV,YAAa4F,EAAK5F,YAAY/B,IAAI,SAAAgC,GAAC,OAAI6F,EAAe7F,KACtDkE,WAAY,cAGD0B,EAAkB,SAAC9D,GAAD,MAA4C,CACzEzB,YAAayB,EAAOzB,YACpBgD,QAASvB,EAAOuB,QAChByC,SAAUhE,EAAOgE,SACjB5B,WAAY,SAGD2B,EAAiB,SAACV,GAAD,MAAyC,CACrEtD,KAAMsD,EAAMtD,KACZxC,WAAY8F,EAAM9F,WAAWrB,IAAI,SAAA0C,GAAC,OAAIqF,EAAcrF,KACpDwD,WAAY,eAGD6B,EAAgB,SAACxG,GAAD,MAAsC,CACjEV,MAAOU,EAAKV,MACZO,WAAYG,EAAKH,WAAWpB,IAAI,SAAA2C,GAAC,OAAIqF,EAAcrF,KACnD5B,KAAMQ,EAAKR,KACXkH,OAAQ1G,EAAK0G,OACbC,YAAa3G,EAAK2G,YAClBhC,WAAY,cAGD8B,EAAgB,SAAC5F,GAAD,MAAsC,CACjEC,YAAaD,EAAKC,YAClBgD,QAASjD,EAAKiD,QACda,WAAY,SAGRiC,EAAkB,CACtBC,WAAY,EACZC,SAAU,EACVC,gBAAiB,EACjBC,uBAAwB,EACxBN,OAAQ,QACRO,cAAe,IAGJC,EAAsB,CACjCC,SAAUP,EACVQ,UAAWR,EACXS,WAAYT,EACZU,WAAYV,EACZW,YAAaX,EACbY,iBAAkBZ,EAClBa,WAAYb,EACZc,UAAWd,EACXe,SAAUf,EACVgB,mBAAoBhB,EACpBiB,gBAAiBjB,GAGNkB,EAAa,SACxBC,EACAC,GAEA,IAAMC,EAAeD,EAAME,KAAK,SAAA/G,GAAC,OAAI6C,EAAWwC,EAAcrF,GAAI4G,KAClE,OAAOE,EAAeA,EAAaE,gBAAkBjB,GAG1CkB,EAAkB,SAACC,GAC9B,OAA6B,IAAzBA,EAAMpH,QAAQhC,QAA6C,IAA7BoJ,EAAM7H,YAAYvB,QAmCzCqJ,EAAmB,SAACxE,GAC/B,OAAKA,EACkB,kBAAZA,EAA6BA,EACjCyE,KAAKC,MAAM1E,GAFG,IAKV2E,EAAgB,SAAAC,GAIP,IAHpBC,EAGoBD,EAHpBC,aACAC,EAEoBF,EAFpBE,UACAC,EACoBH,EADpBG,cAEA,IAAKD,EACH,OAAOD,EAGT,IAAKC,EAAUD,GACb,OAAOA,EAGT,OAAQE,GACN,IAAK,OACH,OAAOD,EAAUD,GAAcG,KACjC,QACE,OAAOH,IAIAI,GAAiB,SAC5BF,EACAG,EACAC,GAEA,IAAML,EAAYN,EAAiBU,GAKnC,OAJsCC,EAAgBxK,IAAI,SAAAiG,GAAC,OACzD+D,EAAc,CAAEE,aAAcjE,EAAGkE,YAAWC,oBAEA9E,QAInCmF,GAAa,SAAC3F,EAAcC,GACvC,IAAM2F,EAAY5F,EAAEjB,KAAK8G,cACnBC,EAAY7F,EAAElB,KAAK8G,cACzB,OAAID,EAAYE,GAAmB,EAC/BF,EAAYE,EAAkB,EAC3B,GAGIC,GAAiB,SAACC,GAAD,OAAgC,SAC5DhG,EACAC,GAEA,IAAMgG,EAAQD,EAAahG,EAAEzC,aACvB2I,EAAQF,EAAa/F,EAAE1C,aAC7B,OAAOoI,GAAWM,EAAOC,KAGdC,GAA+B,SAAC9D,GAS3C,MARU,CACR9F,WAAY8F,EAAM9F,WAAWrB,IAAI,SAAA0C,GAAC,MAAK,CACrCtB,WAAYsB,EAAEtB,WAAWpB,IAAI,SAAA2C,GAAC,MAAK,CACjCN,YAAaM,EAAEN,YACfgD,QAAS1C,EAAE0C,gBAON6F,GAAqC,SAChD/D,GAUA,MARU,CACR9F,WAAY8F,EAAM9F,WAAWrB,IAAI,SAAA0C,GAAC,MAAK,CACrCtB,WAAYsB,EAAEtB,WAAWpB,IAAI,SAAA2C,GAAC,MAAK,CACjCN,YAAaM,EAAEN,YACfgD,QAAS1C,EAAE0C,gBAON8F,GAAmC,SAC9C5J,GAEA,MAAO,CACLH,WAAYG,EAAKH,WAAWpB,IAAI,SAAA2C,GAAC,MAAK,CACpCN,YAAaM,EAAEN,YACfgD,QAAS1C,EAAE0C,aAKJ+F,GAAkC,SAC7C7J,GAEA,MAAO,CACLH,WAAYG,EAAKH,WAAWpB,IAAI,SAAA2C,GAAC,MAAK,CACpCN,YAAaM,EAAEN,YACfgD,QAAS1C,EAAE0C,aAKJgG,GAAoB,SAC/BlB,EACAmB,GAGA,IADA,IAAIC,EAAiC,GAC5BtH,EAAI,EAAGA,EAAIqH,EAAK9K,OAAQyD,IAAK,CACpC,IAAMuH,EAAIF,EAAKrH,GACfsH,EAAcpB,EAAUqB,GAAGnB,KAAKM,eAAiBR,EAAUqB,GAAGC,GAMhE,OAJ0B9J,OAAOpB,KAAKgL,GAAejG,OACVtF,IAAI,SAAA0L,GAC7C,OAAOH,EAAcG,MAKZC,GAAsB,SACjCtK,GAEA,IAAMuK,EAAmB,IAAI1L,IAY7B,OAVAmB,EAAWC,QAAQ,SAAAoB,GACjBA,EAAEtB,WAAWE,QAAQ,SAAAqB,GACfA,EAAE0C,QAAQ7E,QAAU,GACtBmC,EAAE0C,QAAQ/D,QAAQ,SAAA2E,GAChB2F,EAAiB3K,IAAIgF,EAAGtD,EAAE0C,eAM3BuG,GAGIC,GAA2B,SACtCxJ,EACAmI,EACAsB,EACAhJ,GAEA,IAAMiJ,EAAqB,IAAI1E,IAAImD,GAE7BwB,EAAe,IAAI3L,MACnB4L,EAAgC,IAAI5L,MAE1CyL,EAAgBzK,WAAWC,QAAQ,SAAAoB,GAAC,OAClCA,EAAEtB,WAAWE,QAAQ,SAAAqB,GACnBqJ,EAAavK,KAAbC,MAAAsK,EAAYrK,OAAAC,EAAA,EAAAD,CAASgB,EAAE0C,UACnB1C,EAAE0C,QAAQ6G,KAAK,SAAAjG,GAAC,OAAI8F,EAAmBI,IAAIlG,MAC7CgG,EAA8BxK,KAAKiB,OAIzC,IAAM0J,EAAiB,IAAI/E,IAAI2E,GAEzBK,EAAmB7B,EAAgB1G,OAAO,SAAAmC,GAAC,OAAKmG,EAAeD,IAAIlG,KACnEqG,EACJD,EAAiB7L,OAAS,EACtBwF,EACE,CACE3D,YAAaA,EACbgD,QAASgH,GAEXvJ,EACAgJ,EAAgBjI,MAElB,CACEA,KAAM,GACNxC,WAAY,IAGpB,MAAO,CACLwC,KAAMiI,EAAgBjI,KACtBxC,WAAU,GAAAgC,OACL4I,EADKtK,OAAAC,EAAA,EAAAD,CAEL2K,EAAwBjL,eAKpBkL,GAAyB,SACpClK,EACAlB,GAEA,IAAMqL,EAAW,IAAItM,IAuBrB,OArBAiB,EAAWE,WAAWC,QAAQ,SAAAoB,GAC5BA,EAAEtB,WAAWE,QAAQ,SAAAqB,GACnB,GAAIA,EAAEN,cAAgBA,EAAa,CACjC,IAAM5B,EAAMgM,IAAK9J,EAAE0C,SACbjD,EAAO,CAAC,CAAEC,YAAaA,EAAagD,QAAS1C,EAAE0C,UAE/C9D,EAAuBiL,EAAS7L,IAAIF,IAAQ,CAChDW,WAAYgB,EACZvB,MAAO,EACPE,KAAM,GAGRyL,EAASvL,IAAIR,EAAK,CAChBW,WAAYgB,EACZvB,MAAOU,EAAKV,MAAQ6B,EAAE7B,MACtBE,KAAMQ,EAAKR,KAAO2B,EAAE3B,YAMrB,CACL8C,KAAM,GACNxC,WAAYhB,MAAMC,KAAKkM,EAASzI,YAKvB2I,GAAyB,SACpCrK,EACAN,GAFoC,OAIpCA,EAAY+B,OACV,SAAA9B,GAAC,OACCA,EAAEX,WAAWb,QAAU,GACvBwB,EAAEX,WAAW,GAAGD,WAAW,GAAGiB,cAAgBA,KAGvCsK,GAAkB,SAC7BjE,EACAC,EACAG,EACAF,EACAC,EACAE,GAEA,OAAOL,EAASL,SAAW,EACvB,CACE,CACEuE,MAAO,YACPC,MAAOlE,EAAUN,SACjByE,MAAOpN,GAET,CACEkN,MAAO,cACPC,MAAO/D,EAAYT,SACnByE,MAAOnN,GAET,CACEiN,MAAO,aACPC,MAAOjE,EAAWP,SAClByE,MAAOlN,GAET,CACEgN,MAAO,aACPC,MAAOhE,EAAWR,SAClByE,MAAOjN,GAET,CACE+M,MAAO,oBACPC,MAAO9D,EAAiBV,SACxByE,MAAOhN,IAGX,MAGOiN,GAAmB,SAACC,GAC/B,OAAOA,EAAEC,WAAWC,QAAQ,wBAAyB,MAG1CC,GAAkB,SAACC,GAC9B,OAAOA,EAASC,aAAeD,EAASC,YAAYhD,KAAK7J,OAAS,EAC9D4M,EAASC,YAAYhD,KACrB+C,EAASE,aAAajD,MAQfkD,GAA+B,SAC1CC,GAEA,IACE,IAAMvN,EAAS6J,KAAKC,MAAMyD,EAAIC,UAAUD,EAAIE,QAAQ,OAC9ClG,EAAU7F,OAAOpB,KAAKN,GAC5B,GAAIuH,EAAQhH,OAAS,EAEnB,OADAmN,QAAQC,IAAI,0BACL,KAGT,IAAMC,EAAU5N,EAAOuH,EAAQ,IAC/B,YACcsG,IAAZD,QACwBC,IAAxBD,EAAQE,kBACWD,IAAnBD,EAAQG,aACuBF,IAA/BD,EAAQG,OAAOC,kBACaH,IAA5BD,EAAQG,OAAOE,eACYJ,IAA3BD,EAAQG,OAAOG,SAEfR,QAAQC,IAAI,oCACL,MAGF,CACL9J,OAAQ,CACNzB,YAAawL,EAAQG,OAAOC,YAC5BnG,SAAU+F,EAAQG,OAAOE,SACzB7I,QAASwI,EAAQG,OAAOG,SAE1BC,YAAaP,EAAQE,aAEvB,MAAOM,GAEP,OADAV,QAAQW,MAAMD,GACP,OAIEE,GAAkB,SAAC7C,GAC9B,OAAOvJ,IACLuJ,EACG8C,OACAtB,QAAQ,MAAO,KACfuB,MAAM,KACN3K,OAAO,SAAA4H,GAAC,YAAUoC,IAANpC,GAAyB,OAANA,GAAoB,KAANA,IAC7C1L,IAAI,SAAA0L,GAAC,OAAIA,EAAE8C,WAILE,GAAqB,SAChChD,EACAiD,EACAC,GAEA,IAAMC,EAAeN,GAAgB7C,GAC/BoD,EAAe,IAAIzH,IAAIwH,GAEvBE,EAAaJ,EAAe7K,OAAO,SAAAG,GAAC,OAAI6K,EAAa3C,IAAIlI,KAEzD+K,EAAmBH,EAAa/K,OAAO,SAAApB,GAAC,OAAwB,OAApBA,EAAEuM,MAAML,KAE1D,OAAOvO,MAAMC,KAAK,IAAI+G,IAAJ,GAAAhE,OAAA1B,OAAAC,EAAA,EAAAD,CAAYoN,GAAZpN,OAAAC,EAAA,EAAAD,CAA2BqN,OAGlCE,GAAyB,SACpCC,EACAC,GACY,IACJ5M,EAAyB4M,EAAzB5M,QAAST,EAAgBqN,EAAhBrN,YACjB,QACIS,EAAQiH,KAAK,SAAAhH,GAAC,OAAIA,EAAEJ,cAAgB8M,EAAU1D,QAC9C1J,EAAY0H,KACZ,SAAA4F,GAAE,QACEA,EAAGhO,WAAWoI,KACd,SAAA6F,GAAE,QAAMA,EAAGlO,WAAWqI,KAAK,SAAA8F,GAAE,OAAIA,EAAGlN,cAAgB8M,EAAU1D,UAM3D+D,GAA2B,CAAEC,QAAS,QAEtCC,GACX,sDACWC,GAAoB,wCACpBC,GAAkB,4CAClBC,GAAmB,oCACnBC,GAAsB,6CACtBC,GACX,yGAEWC,GAAsB,SACjClO,EACAgB,GAwBA,MANqC,CACnCN,QAjB+BV,EAAzBU,QAkBNT,YAlB+BD,EAAhBC,YACW/B,IAAI,SAAAmH,GAC9B,IAAMoC,EAAQpC,EAAM9F,WAAWrB,IAAI,SAAAuB,GACjC,MAAO,CACLR,KAAMuF,EAAQ/E,EAAKV,MAAOiC,GAC1BjC,MAAO,EACPO,WAAYG,EAAKH,WACjB8E,WAAY,eAGhB,MAAO,CACLrC,KAAMsD,EAAMtD,KACZxC,WAAYkI,EACZrD,WAAY,gBAMdA,WAAY,cAMH+J,GAAkC,SAC7C3M,GAEA,IAAMtD,EAAM,IAAIE,IAOhB,OALAoD,EAAOhC,QAAQ,SAAAU,GACb,IAAMvB,EAAMgM,IAAKzK,GACjBhC,EAAIiB,IAAIR,GAAK,KAGRT,GAGIkQ,GAAsB,SAAClQ,GAClC,IAAImQ,GAAc,EASlB,OAPAnQ,EAAIsB,QAAQ,SAAAyD,GACNA,IACFoL,GAAc,KAKXA,GAGIC,GAA0B,SACrCtO,EACAuO,GACgB,IACR7N,EAAyBV,EAAzBU,QACF8N,EAD2BxO,EAAhBC,YAEd/B,IAAI,SAAAqP,GAAE,OAAI5L,EAAkB4L,KAC5BkB,KAAK,GACFC,EAAmBhO,EAAQxC,IAAI,SAAAyC,GAAC,OAAI4N,EAAW5N,EAAEJ,eACjDoO,EAAkBH,EAAwBtQ,IAAI,SAAA0Q,GAAC,OAAIL,EAAWK,KACpE,MAAO,GAAArN,OAAA1B,OAAAC,EAAA,EAAAD,CAAI6O,GAAJ7O,OAAAC,EAAA,EAAAD,CAAyB8O,IAAiB3M,OAC/C,SAAA6M,GAAI,MAAmB,eAAfA,EAAKC,8cCtiCjB,IAAMC,OAAeC,QAAOhM,EAAViM,IAOiB,SAAAC,GAAK,OAAIA,EAAMC,MAAMC,aASzCL,gvDCIf,IAEMM,EAAgBL,kBAAOM,IAAPN,CAAHC,KAIbM,EAAgBP,kBAAOQ,UAAPR,CAAHS,KAIbC,EAAmBV,kBAAOW,IAAPX,CAAHY,KAKhBC,EAAYb,UAAOc,IAAVC,KAITC,EAAQhB,UAAOc,IAAVG,KAWLC,EAAkBlB,kBAAOmB,aAAWC,MAAM,CAAEC,KAAM,UAAhCrB,CAAHsB,IAKc,SAAApB,GAAK,OAAIA,EAAMC,MAAMC,aA2BlDmB,EAAkB,SAAApI,KAAGqI,UAAH,IAAiBC,EAAjB5Q,OAAA6Q,EAAA,EAAA7Q,CAAAsI,EAAA,sBACtBwI,EAAA3N,EAAA4N,cAACV,EAAoBO,IAGjBI,EAAY7B,kBAAOuB,EAAPvB,CAAH8B,IAEG,SAAA5B,GAAK,OAAKA,EAAMsB,UAAY,UAAY,YAGpDO,EAAa/B,kBAAOuB,EAAPvB,CAAHgC,IAOE,SAAA9B,GAAK,OAAKA,EAAMsB,UAAY,UAAY,YAGpDS,EAAcjC,UAAOkC,KAAVC,IAEkB,SAAAjC,GAAK,OAAIA,EAAMC,MAAMC,aAGlDgC,EAAQ,SAAClC,GAAD,OACZyB,EAAA3N,EAAA4N,cAAA,WACED,EAAA3N,EAAA4N,cAACG,EAAe7B,KAIdmC,EAAO,SAACnC,GAAD,OACXyB,EAAA3N,EAAA4N,cAAA,WACED,EAAA3N,EAAA4N,cAACK,EAAD,UACAN,EAAA3N,EAAA4N,cAACC,EAAc3B,GACfyB,EAAA3N,EAAA4N,cAACK,EAAD,YAuLWK,IA/JO,SAAAC,GAkBT,IAjBXxS,EAiBWwS,EAjBXxS,MACAyS,EAgBWD,EAhBXC,WACAxQ,EAeWuQ,EAfXvQ,kBACAyQ,EAcWF,EAdXE,UACApS,EAaWkS,EAbXlS,WACAqS,EAYWH,EAZXG,0BACAC,EAWWJ,EAXXI,eACAC,EAUWL,EAVXK,mBACArD,EASWgD,EATXhD,WASWsD,EAAAN,EARXO,2BAQW,IAAAD,KAPXE,EAOWR,EAPXQ,gBACAC,EAMWT,EANXS,4BACAC,EAKWV,EALXU,0BACApL,EAIW0K,EAJX1K,UACAqL,EAGWX,EAHXW,yBAGWC,EAAAZ,EAFXa,+BAEW,IAAAD,KADXE,EACWd,EADXc,wBAEMC,EAASvT,GAAgB,EADpBwT,EAEwCC,cAA3CC,EAFGF,EAEHE,YAAaC,EAFVH,EAEUG,cAAeC,EAFzBJ,EAEyBI,WAFzBC,EAGyBC,mBAASP,GAHlCQ,EAAAjT,OAAAkT,EAAA,EAAAlT,CAAA+S,EAAA,GAGJI,EAHIF,EAAA,GAGQG,EAHRH,EAAA,GAIL9T,EAAUwF,YAAQ8N,EAAQtR,GAJrBkS,EAKuBL,mBAAS7T,GALhCmU,EAAAtT,OAAAkT,EAAA,EAAAlT,CAAAqT,EAAA,GAKJE,EALID,EAAA,GAKOE,EALPF,EAAA,GAOXG,oBAAU,WACJlB,IACEC,GACFA,GAAwB,GAE1BY,EAAcX,GACde,EAAarU,KAEd,CACDoT,EACAE,EACAtR,EACAqR,EACArT,IAGF,IA2BMuU,GACHxB,GAAsC,IAAnBJ,IAAyBC,EACzC4B,EAAsB/B,EAAUnS,WAAW,GAAGiE,QAAQ7E,OACtD+U,EACJD,EAAsB,EAAIA,EAAsB,WAAa,QACzDE,EACoB,IAAxBF,EAA4B/B,EAAUnS,WAAW,GAAGiE,QAAQ,GAAK,GAE7DoQ,GACJH,GAAuB,GACvBnU,EAAWE,WAAWyC,OACpB,SAAApB,GAAC,OAAKkB,IAAQlB,EAAEtB,WAAYmS,EAAUnS,cACtCZ,QAAU,EAERkV,GAAaL,EACjBI,GACEhD,EAAA3N,EAAA4N,cAACrB,EAAD,CACEsE,QA7MgB,yCA8MhBC,UAAU,MACVC,gBAAiB,GAEjBpD,EAAA3N,EAAA4N,cAACoD,EAAA,EAAD,CAAmBC,YAAaT,GAC9B7C,EAAA3N,EAAA4N,cAAA,YAAO6C,GACP9C,EAAA3N,EAAA4N,cAACoD,EAAA,EAAD,QAIJrD,EAAA3N,EAAA4N,cAACvB,EAAD,CACE6E,OAAQzB,EACR0B,cAAezB,EACf0B,8BAA+B,EAC/BC,QAAS,GACTC,MAAM,QACNC,KACE5D,EAAA3N,EAAA4N,cAAC4D,EAAAxR,EAAD,CACEyR,iBAAkB,CAChBC,aAAc,WACZ/B,GAAW,MAIfhC,EAAA3N,EAAA4N,cAAC+D,EAAA,EAAD,CACElD,UAAWA,EACXpS,WAAYA,EACZqS,0BAA2BA,EAC3BnD,WAAYA,EACZmE,cAAeA,EACfgB,kBAAmBA,EACnB1B,4BAA6BA,EAC7BC,0BAA2BA,MAKjCtB,EAAA3N,EAAA4N,cAACoD,EAAA,EAAD,CACEtB,cAAeA,EACfkC,WAAYnB,EACZoB,iBAAkBrB,KAItB,KAEJ,OACE7C,EAAA3N,EAAA4N,cAACZ,EAAD,KACEW,EAAA3N,EAAA4N,cAACQ,EAAD,CACE0D,KAAM,EACNC,IAAK/T,EACLgU,IAAK,EACLjK,MAAOiI,GAAc,GACrBiC,SAtFkB,SAAC1I,GACvB,IAAMxN,EAAQmW,MAAM3I,EAAE4I,cAAcC,eAChC,EACA7I,EAAE4I,cAAcC,cACpBnC,EAAclU,GACd,IAAME,EAAOuF,YAAQzF,EAAOiC,GAQ5B,OAPAqS,EAAapU,GAET4H,GAAaqL,GAEfA,EADYnT,EAAQ8H,GAIf2K,EAAW,CAAEvS,OAAMF,WA0EtBsW,YAAY,IACZ7E,UAAWsB,IAEbnB,EAAA3N,EAAA4N,cAACf,EAAD,KACEc,EAAA3N,EAAA4N,cAACS,EAAD,CACEyD,KAAM,IACNC,IAAK,IACLC,IAAK,EACLjK,MAAOqI,GAAa,GACpB6B,SA3Ge,SAAC1I,GACtB,IAAMtN,EAAOiW,MAAM3I,EAAE4I,cAAcC,eAC/B,EACA7I,EAAE4I,cAAcC,cACpB/B,EAAapU,GACb,IAAMF,EAAQgG,YAAS9F,EAAM+B,GAG7B,OAFAiS,EAAclU,GAEPyS,EAAW,CAAEvS,OAAMF,WAoGpBsW,YAAY,IACZ7E,UAAWsB,IAEbnB,EAAA3N,EAAA4N,cAAClB,EAAD,WAEDkE,uCCxSP,IAAA0B,EAAAC,EAAA,IA6BeC,IAtBa,SAAArN,GAAiD,IAA9CsN,EAA8CtN,EAA9CsN,cAAezU,EAA+BmH,EAA/BnH,kBAMtCsD,EALmB/F,MAAMC,KAAKiX,EAAcxT,UAElB/D,IAAI,SAAA0Q,GAAC,MAChB,kBAAZA,EAAE7P,MAAqB6P,EAAE7P,MAAQ,IAEhBgE,OAAO,SAAC2S,EAAKC,GACrC,OAAOD,EAAMC,GACZ,GAGGC,EAAiB5U,EAAoBsD,EAG3C,MAAO,CACLuR,UALgBrR,YAAQF,EAAYtD,GAMpCsD,aACAsR,iBACAE,WANiBF,EAAiB,EAAI,WAAa,sKCjBvD,IAAMG,OAAY/G,QAAOc,IAAVb,KAKA8G,wCCPf,IAAAC,EAAAT,EAAA,KAAAU,EAAAV,EAAA,IAMeW,IAHS,SAACC,GAAD,OACtBC,YAAYC,IAAc,CAAEC,UAAW,CAAEH,wCCJ3CI,EAAAC,QAAiBjB,EAAAkB,EAAuB,2DCAxCF,EAAAC,QAAiBjB,EAAAkB,EAAuB,wDCAxCF,EAAAC,QAAiBjB,EAAAkB,EAAuB,yECAxC,IAAAC,EAAAnB,EAAA,GAAAoB,EAAApB,EAAA1U,EAAA6V,GAAAE,EAAArB,EAAA,IAcesB,IAJA,SAAC3H,GAAD,OACbyH,EAAA3T,EAAA4N,cAAC8F,EAAA,SAAD,KAAWxO,YAAcgH,IAAU,4BCXrCqH,EAAAC,QAAiBjB,EAAAkB,EAAuB,6DCAxCF,EAAAC,QAAiBjB,EAAAkB,EAAuB,8wCCOxC,IAGMK,EAAiB9H,kBAHL,SAAA7G,GAAiDA,EAA9C4O,KAA8C5O,EAAxC6O,SAAwC,IAA3BvG,EAA2B5Q,OAAA6Q,EAAA,EAAA7Q,CAAAsI,EAAA,qBACjE,OAAO8O,EAAAjU,EAAA4N,cAAA,MAASH,IAEKzB,CAAHC,IAIO,SAAAC,GAAK,OAAKA,EAAM8H,SAAW,UAAY,WAKnD,SAAA9H,GAAK,OAAKA,EAAM6H,KAAO,gBAAkB,iBAW3CG,EAAclI,kBAHP,SAAAuC,GAA6CA,EAA1CyF,SAA0C,IAA7BvG,EAA6B5Q,OAAA6Q,EAAA,EAAA7Q,CAAA0R,EAAA,cAC/D,OAAO0F,EAAAjU,EAAA4N,cAAA,MAASH,IAESzB,CAAHS,IAEb,SAAAP,GAAK,OAAKA,EAAM8H,SAAW,UAAY,WAGf,SAAA9H,GAAK,OAAIA,EAAMC,MAAMC,aAWlD+H,EAAgBnI,kBAHD,SAAAoI,GAA+CA,EAA5CC,UAA4C,IAA9B5G,EAA8B5Q,OAAA6Q,EAAA,EAAA7Q,CAAAuX,EAAA,eAClE,OAAOH,EAAAjU,EAAA4N,cAAA,SAAYH,IAECzB,CAAHY,IAEH,SAAAV,GAAK,OAAIA,EAAMmI,WAKnB,SAAAnI,GAAK,OAAKA,EAAM8H,SAAW,OAAS,WAKpB,SAAA9H,GAAK,OAAIA,EAAMC,MAAMmI,QAAQ,KAkBnDC,EAAmBvI,kBARH,SAAAwI,GAKIA,EAJxBC,cAIwBD,EAHxBE,cAGwBF,EAFxBG,cAEwB,IADrBlH,EACqB5Q,OAAA6Q,EAAA,EAAA7Q,CAAA2X,EAAA,mDACxB,OAAOP,EAAAjU,EAAA4N,cAAA,MAASH,IAEOzB,CAAHe,IACN,SAAAb,GAAK,OAAKA,EAAMuI,cAAgB,oBAAsB,QAC1D,SAAAvI,GAAK,OAAKA,EAAMwI,cAAgB,YAAc,QAC7C,SAAAxI,GAAK,OAAKA,EAAMyI,cAAgB,WAAa,SAGpDC,EAAgB5I,UAAOc,IAAVG,KA0DJ4H,IAxCC,SAAAC,GAWC,IAVfC,EAUeD,EAVfC,OACAC,EASeF,EATfE,SASeC,EAAAH,EARfd,gBAQe,IAAAiB,KAPf/D,EAOe4D,EAPf5D,OACAgE,EAMeJ,EANfI,WAMeC,EAAAL,EALfL,qBAKe,IAAAU,KAAAC,EAAAN,EAJfT,iBAIe,IAAAe,EAJH,SAIGA,EAAAC,EAAAP,EAHfJ,qBAGe,IAAAW,KAAAC,EAAAR,EAFfH,qBAEe,IAAAW,KAAAC,EAAAT,EADfU,iCACe,IAAAD,EADa,KACbA,EAKTE,EAAgBvE,IAAW8C,EAAWgB,EAAW,KAEvD,OACEf,EAAAjU,EAAA4N,cAAC2G,EAAD,CACEE,cAAeA,EACfC,cAAeA,EACfC,cAAeA,GAEfV,EAAAjU,EAAA4N,cAACgH,EAAD,KACEX,EAAAjU,EAAA4N,cAACuG,EAAD,CACEuB,QAdY,SAACnM,GACnB2L,IACA3L,EAAE4I,cAAcwD,QAaV3B,SAAUA,EACVK,UAAWA,GAEXJ,EAAAjU,EAAA4N,cAACkG,EAAD,CAAgBC,KAAM7C,IAAW8C,EAAUA,SAAUA,IACrDC,EAAAjU,EAAA4N,cAACsG,EAAD,CAAaF,SAAUA,GAAWe,IAEnCS,GAEFC,0sDCnIP,IAAMG,EAAmBC,IAAH5J,IAmFlB6J,IAAkBC,SAClBD,IAAkBE,KAClBC,IAAgBC,QAChBD,IAAgBE,YAChBL,IAAkBM,gBAGPR,wCC9FfrD,EAAA8D,EAAAC,EAAA,sBAAAC,IAAAhE,EAAA8D,EAAAC,EAAA,sBAAAE,IAAA,IAAAC,EAAAlE,EAAA,KAAAmE,EAAAnE,EAAA1U,EAAA4Y,GAAAE,EAAApE,EAAA,IAGagE,EAAgB,SAC3BK,EACAC,EACAC,GAEA,IAAMC,EAAU,CACdC,cAAeC,aAAaC,QAAQ,cAEhCC,EAAS,CACbP,aAAcA,GAEhBC,GAAc,GACdO,IACGvb,IADH,GAAA0C,OACU8Y,cADV,YAC+B,CAC3BC,aAAc,OACdP,UACAI,WAEDI,KAAK,SAAAC,GACJ,IAAMC,EAAMC,OAAOC,IAAIC,gBAAgB,IAAIC,KAAK,CAACL,EAASM,QACpDC,EAAOC,SAASpK,cAAc,KACpCmK,EAAKE,KAAOR,EACZM,EAAKG,aAAa,WAAlB,GAAA3Z,OAAiCqY,EAAjC,SACAmB,EAAKI,QACLT,OAAOC,IAAIS,gBAAgBX,KAE5BY,MAAM,SAAA7O,GACDsN,EACFA,EAAatU,IAAb,yBAAAjE,OAA0CiL,EAAMT,SAAW,CACzDuP,WAAY,UAGdC,MAAK,yBAAAha,OAA0BiL,EAAMT,YAGxCyP,QAAQ,kBAAM3B,GAAc,MAGpBL,EAAuB,SAClCI,EACAC,GAEA,IAAME,EAAU,CACdC,cAAeC,aAAaC,QAAQ,cAEhCC,EAAS,CACbP,aAAcA,GAEhBC,GAAc,GACdO,IACGvb,IADH,GAAA0C,OACU8Y,cADV,oBACuC,CACnCC,aAAc,OACdP,UACAI,WAEDI,KAAK,SAAAC,GACJ,IACMiB,EADSjB,EAAST,QAAQ,uBACPpN,MAAM,aAE/B,GAAI8O,EAAUC,OAAS,EAAG,OAAOH,MAAK,2BACtC,IAAMI,EAAWF,EAAU,GACrBhB,EAAMC,OAAOC,IAAIC,gBAAgB,IAAIC,KAAK,CAACL,EAASM,QACpDC,EAAOC,SAASpK,cAAc,KACpCmK,EAAKE,KAAOR,EACZM,EAAKG,aAAa,WAAYS,GAC9BZ,EAAKI,QACLT,OAAOC,IAAIS,gBAAgBX,KAE5BY,MAAM,SAAAO,GAAG,OAAIL,MAAK,yBAAAha,OAA0Bqa,EAAI7P,YAChDyP,QAAQ,kBAAM3B,GAAc,0DCvD3BgC,SAAoBC,EAAMC,cAANlc,OAAAmc,EAAA,EAAAnc,CAAA,GANE,CAC1Boc,UAAW,KACXC,WAAY,KACZC,aAAc,SAACC,QAKFP,4+BC2EHQ,kDAhECC,EAAY,SAACxN,GAAD,QACrByN,EAAWzN,IAAU0N,EAAS1N,IAAU2N,EAAY3N,KAE3C4N,EAAU,SAAC5N,GAAD,OACrBA,IAAU6N,IAAcC,aACxB9N,IAAU6N,IAAcE,UACxB/N,IAAU6N,IAAcG,iBAEbL,EAAc,SAAC3N,GAAD,OACzBA,IAAU6N,IAAcI,WAEbC,EAAc,SAAClO,GAAD,OACzBA,IAAU6N,IAAcM,WAEbC,EAAa,SAACpO,GAAD,OACxBA,IAAU6N,IAAcE,UAAY/N,IAAU6N,IAAcG,iBAEjDN,EAAW,SAAC1N,GAAD,OACtBA,IAAU6N,IAAcQ,QACxBrO,IAAU6N,IAAcM,WACxBnO,IAAU6N,IAAcS,UAEbb,EAAa,SAACzN,GAAD,OACxBuO,EAAOvO,IACPA,IAAU6N,IAAcQ,QACxBrO,IAAU6N,IAAcS,UACxBtO,IAAU6N,IAAcM,WAEbK,EAAe,SAACxO,GAAD,OAC1BA,IAAU6N,IAAcC,aACxB9N,IAAU6N,IAAcE,UACxB/N,IAAU6N,IAAcG,iBACxBhO,IAAU6N,IAAcY,QAEbF,EAAS,SAACvO,GAAD,OACpBA,IAAU6N,IAAca,UACxB1O,IAAU6N,IAAcc,aACxB3O,IAAU6N,IAAce,mBACxBC,EAAS7O,IAEE6O,EAAW,SAAC7O,GAAD,OACtBA,IAAU6N,IAAcY,QACxBzO,IAAU6N,IAAciB,0BACxB9O,IAAU6N,IAAckB,0BAEbC,EAAW,SAAChP,GAAD,OACtBA,IAAU6N,IAAce,mBACxB5O,IAAU6N,IAAcoB,wBACxBjP,IAAU6N,IAAciB,0BACxB9O,IAAU6N,IAAcc,uBAedpB,yXAcZ,IAiDY2B,mIASL,IAoNKC,EApNCC,EAAc,SAACpP,GAC1B,OAAQA,GACN,KAAK6N,IAAce,kBACnB,KAAKf,IAAcoB,uBACnB,KAAKpB,IAAcc,YACjB,OAAOO,EAAkBG,OAC3B,KAAKxB,IAAca,SACjB,OAAOQ,EAAkBI,KAC3B,KAAKzB,IAAciB,yBACnB,KAAKjB,IAAckB,yBACnB,KAAKlB,IAAcY,OACjB,OAAOS,EAAkBK,MAC3B,KAAK1B,IAAcQ,OACnB,KAAKR,IAAcM,UACnB,KAAKN,IAAcS,SACjB,OAAOY,EAAkBb,OAC3B,KAAKR,IAAcE,SACjB,OAAOmB,EAAkBnB,SAC3B,KAAKF,IAAcC,YACnB,QACE,OAAOoB,EAAkBM,QAIlBC,EAAe,SAACzP,GAC3B,OAAQA,GACN,KAAK6N,IAAce,kBACnB,KAAKf,IAAcoB,uBACnB,KAAKpB,IAAcc,YACjB,MAAO,SACT,KAAKd,IAAciB,yBACnB,KAAKjB,IAAckB,yBACnB,KAAKlB,IAAcY,OACjB,MAAO,SACT,KAAKZ,IAAca,SACjB,MAAO,OACT,KAAKb,IAAcQ,OACnB,KAAKR,IAAcM,UACjB,MAAO,SACT,KAAKN,IAAcS,SACjB,MAAO,oBACT,KAAKT,IAAcI,UACjB,MAAO,YACT,KAAKJ,IAAcE,SACjB,MAAO,WACT,KAAKF,IAAcC,YACnB,QACE,MAAO,UAIA4B,EAAmB,CAC9B5B,YAAa,QACbc,kBAAmB,SACnBK,uBAAwB,SACxBH,yBAA0B,SAC1BC,yBAA0B,SAC1BJ,YAAa,SACbZ,SAAU,QACVC,gBAAiB,QACjBU,SAAU,OACVD,OAAQ,SACRJ,OAAQ,SACRF,UAAW,SACXG,SAAU,SACVL,UAAW,aAGA0B,EAAkB,SAACC,GAC9B,IAAKA,EAAOhgB,OAAQ,OAAO,KAC3B,IAAMP,EAASugB,EAAO1c,OACpB,SAAAuK,GAAC,MAAoB,8BAAhBA,EAAEoS,YAET,OAAsB,IAAlBxgB,EAAOO,OAAqB,MAChCP,EAAOqF,KAAK,SAACR,EAAGC,GACd,IAAM2b,EAAK,IAAIC,KAAK7b,EAAE8b,WAChBC,EAAK,IAAIF,KAAK5b,EAAE6b,WACtB,OAAOF,EAAKG,GAAM,EAAIH,EAAKG,EAAK,EAAI,IAE/B5gB,EAAO,KAGH6gB,EAAQ,SACnBC,EACAC,GAFmB,OAGhB,GAKQC,EAAc,SAACC,GAAD,OAAmBA,EAAM,UAAY,WAEnDC,EAA4B,SACvCC,EACAC,EACAC,EACAC,GAEA,IAAMlX,EAAO,6BACPmX,EAAoBD,EACtB5f,OAAOpB,KAAKghB,GAAmB1c,OAC7B,SAAC4c,EAAYhhB,GAAb,OACEghB,EACAF,EAAkB9gB,GAAKoE,OACrB,SAAC6L,EAAGzK,GAAJ,OACEyK,EAAIgR,OAAOzb,EAAE0b,KAAOL,GAA6B,YAAjBrb,EAAEwb,aACpC,IAEJ,GAEF,EAEAG,EAAe,GACnB,GAAIR,EAAS,CACX,IAAMS,EAAIT,EAAQU,mBAAmBrY,KAAK,SAAAoY,GAAC,OAAIA,EAAEF,KAAON,IACxDO,EAAeC,EAAIA,EAAEhe,KAAO,GAE9B,IAAMke,EAAcX,EAAUA,EAAQvd,KAAO,GAE7C,OAAO2d,EAAiB,GAAAne,OACjBgH,EADiB,KAAAhH,OACTue,EADS,QAAAve,OAEjBgH,EAFiB,KAAAhH,OAET0e,EAFS,MAKbC,EAAwC,SACnDC,EACAC,GAEG,IADHC,EACGC,UAAA5hB,OAAA,QAAAsN,IAAAsU,UAAA,GAAAA,UAAA,GADY,GAETC,EAASJ,EAAcxY,KAAK,SAAAyU,GAAC,OAAIA,EAAEyD,KAAOO,IAC1CrU,EAAUwU,EAASA,EAAOC,QAAU,GAC1C,OAAOH,EAAetU,EAAQX,QAAQgV,EAAWC,GAAgBtU,GAGtD0U,EAAgB,SAACC,GAC5B,IAAMC,EAAY,IAAIpiB,MAChBqiB,EAAe,IAAIriB,MAKzB,OAJAmiB,EAAUlhB,QAAQ,SAAAugB,GACJ,cAAZA,EAAEjR,MAAwB6R,EAAUhhB,KAAKogB,GAAKa,EAAajhB,KAAKogB,KAGlE,GAAAxe,OAAWqf,EAAiBD,IAGjBE,EAAmB,SAC9BC,EACAC,EACAC,EAKAC,EACAC,GAE0BJ,EAAkB1W,KAC1C,SAAA+W,GAAE,OACAA,EAAGF,iBAAmBA,GACtBE,EAAGD,kBAAoBA,KAIzBF,IAAkBzG,KAAK,SAAApS,GAAc,IAAX2S,EAAW3S,EAAX2S,KACxB,GAAIA,GAAQA,EAAKvM,WAAY,CAC3B,IAAM6S,EAAoB,GAAA7f,OAAA1B,OAAAwhB,EAAA,EAAAxhB,CAAOihB,GAAP,CAA0BhG,EAAKvM,aACzDwS,EAAqBK,OAMhBE,EAA0B,SACrCC,GAEA,MAAO,CACLzW,MAAOyW,EAASzW,MAChB0W,OAAQD,EAASC,OACjBC,kBAAmBC,SAASH,EAASE,kBAAmB,IACxDR,eAAgBM,EAASN,eACzBC,gBAAiBK,EAASL,gBAC1BS,OAAQJ,EAAS/B,SAAW+B,EAAS/B,SAASrU,WAAa,GAC3D+T,oBAAqBwC,SAASH,EAASrC,oBAAqB,IAC5Dle,kBAAmB0gB,SAASH,EAASvgB,kBAAmB,IACxD4gB,YAAaL,EAASK,YAClBF,SAASH,EAASK,YAAa,IAC/B,KACJC,cAAeN,EAASM,cACxBC,aAAcP,EAASO,eAIdC,EAAuB,SAClCC,EACAC,EACAC,GAEA,MAAO,CACLC,gBAAiBD,EACb,yBACAD,EACA,yBACA,uBACJjX,MAAOkX,EACH,uBACAF,EACA,uBACA,sBACJI,OAAQJ,EAAa,cAAgB,UACrCK,QAAS,cAIDpE,iDAKL,IAAMqE,EAAkB,SAC7BV,EACAC,GAF6B,OAGXA,EAAgB5D,EAAasE,SAAWtE,EAAauE,KAE5DC,EAAkC,CAC7C,CAAEC,MAAO,YAAa3X,MAAOkT,EAAauE,KAC1C,CAAEE,MAAO,WAAY3X,MAAOkT,EAAasE,WAG9BI,EAA4B,SACvCC,EACAC,EACAC,EACAC,GAEA,IAAMC,EAAe,GAAAzhB,OAAMqhB,EAAN,KAAArhB,OAAwBshB,GACvCI,EAAa,GAAA1hB,OAAMuhB,EAAN,KAAAvhB,OAAsBwhB,GAWzC,MAAO,CACLG,UAVgBC,YAChBH,EACAI,KASAC,QAPcF,YACdF,EACAG,KAMAhf,WAAY,aAIHkf,EAAqB,SAACC,GAAD,OAChCA,EAAWC,IAAmBC,QAAQC,SACtCH,EAAWC,IAAmBnF,OAAOqF,SACrCH,EAAWC,IAAmBG,OAAOD,SACrCH,EAAWC,IAAmBI,WAAWF,SACzCH,EAAWC,IAAmBK,MAAMH,SACpCH,EAAWC,IAAmBM,cAAcJ,SAEjCK,EAAwC,SAACC,GACpD,IAAMC,EAAUC,IAAOF,EAAYG,KAA+BrX,OAChEsX,KAEF,OAAOH,EAAQI,SAAS,WAAa,WAAaJ,qCC7apD1O,EAAA8D,EAAAC,EAAA,sBAAAgL,IAAA/O,EAAA8D,EAAAC,EAAA,sBAAAiL,IAAAhP,EAAA8D,EAAAC,EAAA,sBAAAkL,IAAAjP,EAAA8D,EAAAC,EAAA,sBAAAmL,IAAAlP,EAAA8D,EAAAC,EAAA,sBAAAoL,IAAAnP,EAAA8D,EAAAC,EAAA,sBAAAqL,IAAApP,EAAA8D,EAAAC,EAAA,sBAAAsL,IAAArP,EAAA8D,EAAAC,EAAA,sBAAAuL,IAAAtP,EAAA8D,EAAAC,EAAA,sBAAAwL,IAAAvP,EAAA8D,EAAAC,EAAA,sBAAAyL,IAAAxP,EAAA8D,EAAAC,EAAA,sBAAA0L,IAAAzP,EAAA8D,EAAAC,EAAA,sBAAA2L,IAAA1P,EAAA8D,EAAAC,EAAA,sBAAA4L,IAAA3P,EAAA8D,EAAAC,EAAA,sBAAA6L,IAAA5P,EAAA8D,EAAAC,EAAA,sBAAA8L,IAAA7P,EAAA8D,EAAAC,EAAA,sBAAA+L,IAAA9P,EAAA8D,EAAAC,EAAA,sBAAAgM,IAAA/P,EAAA8D,EAAAC,EAAA,sBAAAiM,IAAAhQ,EAAA8D,EAAAC,EAAA,sBAAAkM,IAAAjQ,EAAA8D,EAAAC,EAAA,sBAAAmM,IAAAlQ,EAAA8D,EAAAC,EAAA,sBAAAoM,IAAAnQ,EAAA8D,EAAAC,EAAA,sBAAAqM,IAAApQ,EAAA8D,EAAAC,EAAA,sBAAAsM,IAAArQ,EAAA8D,EAAAC,EAAA,sBAAAuM,IAAA,IA0CYT,EA1CZU,EAAAvQ,EAAA,IAEa+O,EAAgB,aAEhBC,EAAmB,8CACnBC,EACX,qEACWC,EAAmB,mBAEnBC,EACX,qCACAqB,IACA,kCACAC,IACA,iDAEWrB,EACX,oDAEWC,EACX,+FACWC,EACX,oEAEWC,EACX,wHAEWC,EACX,qDACAiB,IACA,gCACWhB,EACX,0HAEWC,EACX,8JACWC,EACX,4IAEWC,EACX,qFAEUC,qGAOL,IAAMC,EAA0C,CACrDY,QAAS,UACTC,QAAS,UACTC,YAAa,WAGFb,EAAe,cACfC,EAAK,KACLC,EAAM,MACNC,EAAO,OAEPC,EAA+B,CAC1CU,KAAMX,EACNY,IAAKb,EACLc,YAAa,IAOTC,EAAoB,CAAEhe,KAAM,UAAWie,WAAY,WACnDC,EAAqB,CAAEle,KAAM,UAAWie,WAAY,WACpDE,EAAmB,CAAEne,KAAM,UAAWie,WAAY,WAClDG,EAAyB,CAAEpe,KAAM,UAAWie,WAAY,WAIjDb,EAA+B,CAC1CiB,QAAS,CAAEre,KAAM,UAAWie,WAAY,WACxCK,WAAY,CAAEte,KAAM,UAAWie,WAAY,WAC3CH,IAAKE,EACLO,UAAWP,EACXQ,QAASR,EACTH,KAAMK,EACNO,WAAYP,EACZQ,SAAUR,EACVS,GAAIR,EACJS,SAAUT,EACVU,IAAKT,EACLU,KAAMV,EACNW,2BAA4BX,EAC5BY,GAAIZ,EACJa,GAAI,CAAEjf,KAAM,UAAWie,WAAY,WACnCiB,GAAI,CAAElf,KAAM,UAAWie,WAAY,WACnCkB,IAAK,CAAEnf,KAAM,UAAWie,WAAY,WACpCmB,OAAQ,CAAEpf,KAAM,UAAWie,WAAY,WACvCoB,OAAQ,CAAErf,KAAM,UAAWie,WAAY,YAG5BZ,EAAuB,CAAC,UAAW,WAAY,UAE/CC,EAAoB,CAC/B,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,+rGCzGF,IAOagC,EAAY7Y,kBAPP,SAAA7G,GAGCA,EAFjB2f,qBAEiB,IADdrX,EACc5Q,OAAA6Q,EAAA,EAAA7Q,CAAAsI,EAAA,0BACjB,OAAO8O,EAAAjU,EAAA4N,cAAA,MAASH,IAGOzB,CAAHC,IAMT,SAAAC,GAAK,OAAIA,EAAM4Y,uBAOfC,EAAgB/Y,kBAAO6Y,EAAP7Y,CAAHS,KAabuY,GAJiBhZ,kBAAO6Y,EAAP7Y,CAAHY,KAIFZ,UAAOc,IAAVC,MAWTkY,EAAWjZ,UAAOc,IAAVG,KAURiY,EAAgBlZ,kBAAOiZ,EAAPjZ,CAAHsB,KAIb6X,EAAwBnZ,kBAAOiZ,EAAPjZ,CAAH8B,KAUrBsX,EAAyBpZ,kBAAOiZ,EAAPjZ,CAAHgC,KAgBtBqX,EAA2BrZ,kBAPd,SAAAuC,GAGIA,EAF5B+W,oBAE4B,IADzB7X,EACyB5Q,OAAA6Q,EAAA,EAAA7Q,CAAA0R,EAAA,yBAC5B,OAAO0F,EAAAjU,EAAA4N,cAAA,SAAYH,IAGmBzB,CAAHmC,IACF,SAAAjC,GAAK,OAAIA,EAAMC,MAAMC,YAMlC,SAAAF,GAAK,OACvBA,EAAMoZ,oBAAsB,qBAAuB,WAO3B,SAAApZ,GAAK,OAAIA,EAAMC,MAAMmI,QAAQ,KAmB5CiR,EAAmBvZ,kBARN,SAAAoI,GAIIA,EAH5BoR,YAG4BpR,EAF5BqR,WAE4B,IADzBhY,EACyB5Q,OAAA6Q,EAAA,EAAA7Q,CAAAuX,EAAA,8BAC5B,OAAOH,EAAAjU,EAAA4N,cAAA,SAAYH,IAGWzB,CAAH0Z,IAQP,SAAAxZ,GAAK,OACvBA,EAAMuZ,WAAa,wBAA0B,YAMpCE,EAAsB3Z,kBAAOuZ,EAAPvZ,CAAH4Z,IAErB,SAAA1Z,GAAK,OACZA,EAAMsZ,aAAN,GAAAjnB,OAAwBmgB,SAASxS,EAAMsZ,aAAe,GAAtD,QAGSK,EAA0B7Z,kBAAOuZ,EAAPvZ,CAAH8Z,KAKvBC,EAAkB/Z,kBAAOiZ,EAAPjZ,CAAHga,KAOfC,EAAwB,SACnCnT,EACAF,GAFmC,OAInCqB,EAAAjU,EAAA4N,cAAA,YACGkF,EADH,kBAC6BmB,EAAAjU,EAAA4N,cAAA,SAAIlO,KAAKS,IAAIyS,IAD1C,gEChKFL,EAAA8D,EAAAC,EAAA,sBAAA4P,IAAA3T,EAAA8D,EAAAC,EAAA,sBAAA6P,IAAA5T,EAAA8D,EAAAC,EAAA,sBAAA8P,IAAA7T,EAAA8D,EAAAC,EAAA,sBAAA+P,IAAA9T,EAAA8D,EAAAC,EAAA,sBAAAgQ,IAAA/T,EAAA8D,EAAAC,EAAA,sBAAAiQ,IAAO,IAAML,EAA2C,CACtD/L,OAAQ,qBACRJ,UAAW,iBACXK,SAAU,YAGC+L,EAAyD,CACpEhM,OAAQ,UACRJ,UAAW,UACXK,SAAU,WAGCgM,EAAqD,CAChEI,QAAS,CAAC,eACVC,QAAS,CAAC,cAAe,aAGdJ,EAAa,SAACK,GAEzB,MAAmB,SADHA,EAAKC,OAAO,EAAGD,EAAKhrB,SAIzB4qB,EAAe,SAACM,GAAD,OAC1B,IAAI/K,KAAK+K,EAAKC,cAAeD,EAAKE,WAAY,IAInCP,EAAmB,SAAClZ,EAAc0Z,GAC7C,IAJyBH,EAInBI,EAAgB,IAAInL,KAAKkL,EAAQjd,OAAO,eAC9C,MAAgB,UAATuD,EACHiZ,EAAaU,IANQJ,EAOVI,EANf,IAAInL,KAAK+K,EAAKC,cAAeD,EAAKE,WAAa,EAAG,sCC3BpDvU,EAAA8D,EAAAC,EAAA,sBAAA2Q,IAAA1U,EAAA8D,EAAAC,EAAA,sBAAA4Q,IAAA3U,EAAA8D,EAAAC,EAAA,sBAAA6Q,IAAA5U,EAAA8D,EAAAC,EAAA,sBAAAe,IAAA9E,EAAA8D,EAAAC,EAAA,sBAAA8Q,IAAA7U,EAAA8D,EAAAC,EAAA,sBAAA+Q,IAAA9U,EAAA8D,EAAAC,EAAA,sBAAAgR,IAAA/U,EAAA8D,EAAAC,EAAA,sBAAAiR,IAAAhV,EAAA8D,EAAAC,EAAA,sBAAAkR,IAAAjV,EAAA8D,EAAAC,EAAA,sBAAAmR,IAAAlV,EAAA8D,EAAAC,EAAA,sBAAAoR,IAAAnV,EAAA8D,EAAAC,EAAA,sBAAAqR,IAAApV,EAAA8D,EAAAC,EAAA,sBAAAsR,IAAArV,EAAA8D,EAAAC,EAAA,sBAAAuR,IAAAtV,EAAA8D,EAAAC,EAAA,sBAAAwR,IAAAvV,EAAA8D,EAAAC,EAAA,sBAAAyR,IAAAxV,EAAA8D,EAAAC,EAAA,sBAAA0R,IAAA,IAEaf,EACX,4DAEWC,EAAkB,6BAElBC,EAAoB,SAAA1P,GAC/B,IAAMN,EAAS,CACb8Q,MAAO,SACPC,cAAe,OACfC,UAAW,iBACXC,aAAY,GAAA7pB,OAAKmZ,OAAO2Q,OAAZ,cAGd,OADAxrB,OAAOpB,KAAK0b,GAAQ3a,QAAQ,SAAAb,GAAG,OAAI8b,EAAI6Q,aAAaC,OAAO5sB,EAAKwb,EAAOxb,MAChE8b,GAGIJ,EAAU,kBACrBK,OAAO8Q,gBAAgBjd,WAAWkd,SAAWC,yBAEzCC,EAAc,kBAClBjR,OAAO8Q,gBAAgBjd,WAAWqd,aAClCF,sCAEWtB,EAAS,kBAAM1P,OAAO8Q,gBAAgBjd,WAAWsd,SAAW,OAM5DxB,EAAc,kBAAM,IAAI1P,IAAJ,GAAApZ,OAAWoqB,KAAXpqB,OAJb,kDAOP+oB,EAAiB,kBAC5B,IAAI3P,IAAJ,GAAApZ,OAAWoqB,KAAXpqB,OANqB,sCAQVgpB,EAAY,kBAAM,IAAI5P,IAAJ,GAAApZ,OAAW8Y,IAAX,cAClBmQ,EAAiB,kBAAM,IAAI7P,IAAJ,GAAApZ,OAAW8Y,IAAX,qBAGvBoQ,EAAyB,kBAAM,IAAI9P,IAAJ,GAAApZ,OAAW8Y,IAAX,cAM/ByR,EAAe,SAAAC,GAC1B,IAAMxX,EAAO,CAAEwX,OAAMC,YAAW,GAAAzqB,OAAKmZ,OAAO2Q,OAAZ,cAChC,OAAOrjB,KAAKikB,UAAU1X,IAQXmW,EAAQ,SAAAqB,GACnB,OAAOG,MAtBuB,IAAIvR,IAAJ,GAAApZ,OAAW8Y,IAAX,UAsBH,CACzB8R,OAAQ,OACR5X,KAAMuX,EAAaC,KAClBxR,KAAK,SAAAC,GAIN,GAHwB,MAApBA,EAASrU,QACXuU,OAAO0R,SAAShhB,QAAQ+e,EAAkBE,MAEpB,MAApB7P,EAASrU,OACX,MAAM,IAAIR,MAAM,kBAElB,GAAI6U,EAAS6R,GAAI,CACf,IAAMC,EAAY9R,EAAST,QAAQlb,IAAI,iBACvC,IAAKytB,EAAW,MAAM,IAAI3mB,MAAM,oCAChC4mB,EAAaD,GACbrS,aAAauS,QAAQ,YAAaF,GAC7BrS,aAAaC,QAAQ,gCACxBD,aAAauS,QAAQ,8BAA+B,QAEtD9R,OAAO0R,SAAShhB,QAAQsP,OAAO2Q,YAKxBV,EAAY,SAAC5e,EAAS0gB,EAAMtW,GACvC,IAAMmW,EAAYtB,IACZjR,EAAU,IAAI2S,QAAQ,CAC1B1S,cAAesS,GAAa,KAExB7R,EA/C6B,IAAIE,IAAJ,GAAApZ,OAAW8Y,IAAX,eAgDnCI,EAAI6Q,aAAaC,OAAO,eAAgBpV,GACxC,IAAM2E,EAAO,IAAI6R,SAGjB,OAFA7R,EAAK3b,IAAI,UAAW4M,GACpB+O,EAAKyQ,OAAO,OAAQkB,GACbP,MAAMzR,EAAK,CAChBmS,KAAM,OACNT,OAAQ,OACRpS,QAASA,EACTxF,KAAMuG,KAIG8P,EAAS,WACpB,IAAM0B,EAAYtB,IACZjR,EAAU,IAAI2S,QAAQ,CAAE1S,cAAesS,GAAa,KAC1D,OAAOJ,MAtEyB,IAAIvR,IAAJ,GAAApZ,OAAW8Y,IAAX,YAsEH,CAC3BuS,KAAM,OACNT,OAAQ,OACRpS,QAASA,IACRQ,KAAK,SAAAsS,GACN9B,IACArQ,OAAO0R,SAAShhB,QAAQsP,OAAO0R,SAASf,WAI/BR,EAAe,kBAAMqB,MAxEG,IAAIvR,IAAJ,GAAApZ,OAAW8Y,IAAX,YAwEsB,CAAE8R,OAAQ,SACxDrB,EAAa,WACxB,IAAMwB,EAAYtB,IACZjR,EAAU,IAAI2S,QAAQ,CAAE1S,cAAesS,GAAa,KAC1D,OAAOJ,MA1E0B,IAAIvR,IAAJ,GAAApZ,OAAW8Y,IAAX,aA0EH,CAC5BuS,KAAM,OACNT,OAAQ,MACRpS,QAASA,KAIAwS,EAAe,SAAA5iB,GAAE,OAAIsQ,aAAauS,QAAQ,YAAa7iB,IACvDohB,EAAiB,kBAAM9Q,aAAa6S,WAAW,cAC/C9B,EAAe,kBAAM/Q,aAAaC,QAAQ,cAOxC6S,IApIE,wECAjBxW,EAAAC,QAAiBjB,EAAAkB,EAAuB,0DCAxCF,EAAAC,QAAiBjB,EAAAkB,EAAuB,kaCExC,IAAMuW,OAAahe,QAAOie,OAAVhe,IAOJ,SAAA9G,GAAA,OAAAA,EAAGgH,MAAkB+d,aAAa,IAKlB,SAAAhe,GAAK,OAAIA,EAAMC,MAAMmI,QAAQ,KAK1C0V,wLChBf,IAAMG,EAAgBne,kBAAOoe,UAAPpe,CAAHC,KAMJke,sRCPf,IAAME,OAAere,QAAOc,IAAVb,IACI,SAAA9G,GAAA,OAAAA,EAAGgH,MAAkB+d,aAAa,IAE/B,SAAA3b,GAAA,OAAAA,EAAGpC,MAAkB+d,aAAa,KAM5CG,2BCXf9W,EAAAC,QAAiBjB,EAAAkB,EAAuB,wVCKxC,IAAM6W,EAAUte,UAAOc,IAAVb,IAGS,SAAA9G,GAAA,OAAAA,EAAGgH,MAAkB+d,aAAa,IAI7C,SAAA3b,GAAA,OAAAA,EAAGpC,MAAkBoe,YAAY,KAW7BC,IARS,SAAApW,GAAA,IAAGY,EAAHZ,EAAGY,SAAH,OACtByV,EAAAzqB,EAAA4N,cAAC8c,EAAA,EAAD,KACED,EAAAzqB,EAAA4N,cAAC+c,EAAA,EAAD,KACEF,EAAAzqB,EAAA4N,cAAC0c,EAAD,KAAUtV,uCClBDsB,EAAA,GACbsU,eAAgB,iBAChBC,eAAgB,iBAChBC,cAAe,gBACfC,cAAe,gBACfC,gBAAiB,kBACjBC,YAAa,cACbC,YAAa,cACbC,eAAgB,iBAChBrK,aAAc,eACdsK,uBAAwB,yBACxBC,8CACE,gDACFC,sBAAuB,wBACvBC,aAAc,eACdC,sBAAuB,wBACvBC,mBAAoB,qBACpBC,iBAAkB,mBAClBC,uBAAwB,yBACxBC,cAAe,gBACfC,oBAAqB,sBACrBC,kCAAmC,oCACnCC,wBAAyB,0BACzBC,qBAAsB,uBACtBC,gCAAiC,kCACjCC,wCACE,4iFCtBG,IAAMC,EAAiBngB,kBAAOogB,WAAPpgB,CAAHC,IAIf,SAAAC,GAAK,OAAKA,EAAMmgB,QAAU,UAAY,YASrCC,EAAkBtgB,UAAOc,IAAVL,IAEC,SAAAtH,GAAA,OAAAA,EAAGgH,MAAkB+d,aAAa,KAGlDqC,EAAiBvgB,kBAAOmB,YAAUqf,cAAc,YAA/BxgB,CAAHY,KAOrB6f,EAAczgB,UAAOc,IAAVC,KACJ2f,EAAe1gB,UAAOkC,KAAVjB,KAKZ0f,EAAe3gB,kBAAO4gB,SAAP5gB,CAAHsB,IACQ,SAAApB,GAAK,OAAIA,EAAMC,MAAMC,aAQzCygB,EAAoB,SAAAte,GAEH,IAD5Bue,EAC4Bve,EAD5Bue,kBAEA,OACE7Y,EAAAjU,EAAA4N,cAAC6e,EAAD,KACExY,EAAAjU,EAAA4N,cAAC8e,EAAD,WACAzY,EAAAjU,EAAA4N,cAAC+e,EAAD,CACEI,OAAO,uBACP9a,SAAU6a,EACVE,OAAO,kBAYFC,EAAoBjhB,kBAHZ,SAAAoI,GAA2CA,EAAxCnD,YAAwC,IAAxBxD,EAAwB5Q,OAAAqwB,EAAA,EAAArwB,CAAAuX,EAAA,iBAC9D,OAAOH,EAAAjU,EAAA4N,cAAA,SAAYH,IAEYzB,CAAH8B,IACK,SAAA5B,GAAK,OAAIA,EAAMC,MAAMC,YAMlC,SAAAF,GAAK,OAAKA,EAAM+E,YAAc,EAAI,UAAY,WACzD,SAAA/E,GAAK,OAAKA,EAAM+E,YAAc,EAAI,UAAY,WAGrC,SAAA/E,GAAK,OAAKA,EAAM+E,YAAc,EAAI,UAAY,WAMtC,SAAA/E,GAAK,OAAIA,EAAMC,MAAMmI,QAAQ,KAI5C6Y,EAAanhB,UAAOkC,KAAVF,KAcVof,EAAwB,SAAA5Y,GAIH,IAHhC9E,EAGgC8E,EAHhC9E,cACAkC,EAEgC4C,EAFhC5C,WACAC,EACgC2C,EADhC3C,iBAEA,OACEoC,EAAAjU,EAAA4N,cAACqf,EAAD,CAAmBvX,QAAShG,EAAeuB,YAAaY,GACtDoC,EAAAjU,EAAA4N,cAAA,YAAOgE,GACPqC,EAAAjU,EAAA4N,cAACuf,EAAD,QAaOE,EAAarhB,kBAJH,SAAA8I,GAAsDA,EAAnDwY,mBAAmD,IAA5B7f,EAA4B5Q,OAAAqwB,EAAA,EAAArwB,CAAAiY,EAAA,wBAC3E,OAAOb,EAAAjU,EAAA4N,cAAA,MAASH,IAGQzB,CAAHmC,IACV,SAAAjC,GAAK,OAAKA,EAAMohB,mBAAqB,OAAS,SAK9CC,EAAOvhB,UAAOc,IAAV4Y,KAKJ8H,EAAuBxhB,UAAOc,IAAV8Y,IAKX,SAAA6H,GAAA,OAAAA,EAAGthB,MAAkB+d,aAAa,KAOzCsD,wQC5If,IAAMxgB,EAAQhB,UAAOc,IAAVb,KAmBIyhB,IAVF,SAAAvoB,GAAiC,IAA9B8Y,EAA8B9Y,EAA9B8Y,eAAmBxQ,EAAW5Q,OAAAqwB,EAAA,EAAArwB,CAAAsI,EAAA,oBACtCwoB,EAAIC,QAAM3P,GAChB,OAAK0P,EAEH1Z,EAAAjU,EAAA4N,cAACZ,EAAUS,EACTwG,EAAAjU,EAAA4N,cAAC+f,EAAD,OAHW,uCCdjBpb,EAAA8D,EAAAC,EAAA,sBAAAuX,IAAAtb,EAAA8D,EAAAC,EAAA,sBAAAwX,IAAAvb,EAAA8D,EAAAC,EAAA,sBAAAyX,IAAAxb,EAAA8D,EAAAC,EAAA,sBAAA0X,IAAAzb,EAAA8D,EAAAC,EAAA,sBAAA6J,IAAA5N,EAAA8D,EAAAC,EAAA,sBAAA2X,IAAA1b,EAAA8D,EAAAC,EAAA,sBAAA4X,IAAA3b,EAAA8D,EAAAC,EAAA,sBAAA6X,IAAA5b,EAAA8D,EAAAC,EAAA,sBAAA8X,IAAA7b,EAAA8D,EAAAC,EAAA,sBAAA+X,IAAA9b,EAAA8D,EAAAC,EAAA,sBAAAgY,IAAA/b,EAAA8D,EAAAC,EAAA,sBAAAiY,IAAAhc,EAAA8D,EAAAC,EAAA,sBAAAkY,IAAAjc,EAAA8D,EAAAC,EAAA,sBAAAmY,IAAAlc,EAAA8D,EAAAC,EAAA,sBAAAoY,IAAAnc,EAAA8D,EAAAC,EAAA,sBAAAqY,IAAApc,EAAA8D,EAAAC,EAAA,sBAAAsY,IAAArc,EAAA8D,EAAAC,EAAA,sBAAAuY,IAAAtc,EAAA8D,EAAAC,EAAA,sBAAAwY,IAAAvc,EAAA8D,EAAAC,EAAA,sBAAAyY,IAAA,IAAAC,EAAAzc,EAAA,GAAA0c,EAAA1c,EAAA,IAAA2c,EAAA3c,EAAA1U,EAAAoxB,GAAAE,EAAA5c,EAAA,KAAA6c,EAAA7c,EAAA1U,EAAAsxB,GAeatB,EAAa,SAACjnB,GAAD,OAAeA,EAAEyoB,OAAO,GAAGxpB,cAAgBe,EAAEhG,MAAM,IAEhEktB,EAAuB,SAClCwB,EACAC,GAEA,IAAMC,EAAiBD,EAAiB,IAAM,GAE9C,OAAOD,EAAIvvB,OAAO,SAAC2S,EAAK+c,EAAKrvB,GAC3B,IAAMuS,EAAM6c,EAAiBC,EAAMD,EACnC,OAAQpvB,GACN,KAAK,EACH,SAAA7B,OAAUoU,GACZ,KAAK2c,EAAI5zB,OAAS,EAChB,SAAA6C,OAAUmU,EAAV,SAAAnU,OAAqBoU,GACvB,QACE,SAAApU,OAAUmU,EAAV,MAAAnU,OAAkBoU,KAErB,KAGQob,EAA4B,SAACnnB,GACxC,OAAO,IAAIiV,KACT,IAAIA,KAAKjV,GAAG8oB,UAAYhwB,KAAKS,IAAqC,KAAjC,IAAI0b,MAAO8T,uBAOnC3B,EAA4B,SACvCpH,EACAgJ,GAFuC,IAHChpB,EAGD,OAAA0W,UAAA5hB,OAAA,QAAAsN,IAAAsU,UAAA,IAAAA,UAAA,GAMnC4D,IAAO,IAAIrF,MATyBjV,EASMggB,EAR9C,IAAI/K,KAAK,IAAIA,KAAKjV,GAAG8oB,UAA6C,KAAjC,IAAI7T,MAAO8T,wBAQU7lB,OAAO8lB,GACzD1O,IAAO,IAAIrF,KAAK+K,IAAO9c,OAAO8lB,IAEvBzP,EAAyB,SAACyG,EAAc9c,GAAf,OACpCoX,IAAO,IAAIrF,KAAK+K,IACbiJ,MACA/lB,OAAOA,IAECmkB,EAAwB,SAACtb,GAAD,OACnCA,EAAM,GAAN,IAAApU,OAAeoU,GAAf,GAAApU,OAA0BoU,IAEfub,EAAoB,SAC/B4B,GAEA,IAAKA,EAAazO,SAAS,KACzB,MAAO,GAET,IAEE,OADYrc,KAAKC,MAAM6qB,EAAannB,UAAUmnB,EAAalnB,QAAQ,OAEnE,MAAOW,GACP,MAAO,KAiBE4kB,EAAyB,SAAAhpB,GAWH,IAVjC4qB,EAUiC5qB,EAVjC4qB,cACAC,EASiC7qB,EATjC6qB,iBACAC,EAQiC9qB,EARjC8qB,QACAC,EAOiC/qB,EAPjC+qB,eACAC,EAMiChrB,EANjCgrB,iBACAC,EAKiCjrB,EALjCirB,qBACAC,EAIiClrB,EAJjCkrB,WACAC,EAGiCnrB,EAHjCmrB,cACAC,EAEiCprB,EAFjCorB,gBACAC,EACiCrrB,EADjCqrB,oBAEMC,EAAWzY,SAAS0Y,eAAeX,GACzC,GAAIU,EASF,IARA,IAAME,EAAc3Y,SAAS0Y,eAAeV,GACtCxpB,EAAOiqB,EAASzb,SAChB4b,EAAWH,EAASI,YACpBC,EAAmBH,EAAcA,EAAYE,YAAc,EAC3DE,EAAab,EAAiB1pB,EAAK9K,OAAS,EAAI8K,EAAK9K,OACvDs1B,EAAe,EACfC,EAAiB,EACjBC,EAAgB,EACX/xB,EAAI,EAAGA,EAAI4xB,EAAY5xB,IAAK,CAInC,IADA6xB,GADsBxqB,EAAKrH,GAAG0xB,YAAcV,GAEzBS,EAAU,CAC3B,IACMO,EAEJH,EAHyBxqB,EAAKrH,GAGI0xB,YAAcV,EAElD,GADAE,GAAW,IACNJ,GAAWiB,IAAkBd,EAAsB,CAEtD,GADAa,EAAiB9xB,EACbgyB,EAAiBL,EAAmBF,EAAU,CAChD,IAEMQ,EAFgB5qB,EAAKrH,EAAI,GAEU0xB,YACzCI,GAAkB,EAClBX,EACEa,EAAiBC,EAAqBjB,GAExCI,EAAgBa,QAEhBd,EAAca,GAEZX,GACFA,EAAoBO,EAAaE,GAEnC,MAEFC,GAAiB,EACjBF,EAAe,EACf7xB,GAAK,EAGL6xB,EAAeF,EAAmBF,GAClCR,GAAwBc,GAExBb,GAAW,KAUbgB,EAAkC,CACtC3R,MAAO,GACPgB,SAAS,EACT4Q,SAAS,EACTC,YAAa,IAGFnD,EAAgB,SAACoD,EAAmBtb,GAC/C,IAAIub,EAAwB,GAC1BC,EAAuB,GACzB,OAAQF,GACN,KAAKG,IAAaC,KAChBF,EAAa70B,OAAOpB,KAAKo2B,KACzB,MACF,KAAKF,IAAaG,OAChBJ,EAAa70B,OAAOpB,KAAKs2B,KACzB,MACF,KAAKJ,IAAaK,QAChBN,EAAa70B,OAAOpB,KAAKw2B,KACzB,MACF,KAAKN,IAAaO,SAChBR,EAAa70B,OAAOpB,KAAK+kB,KACzB,MACF,QACEkR,EAAa,GAKjB,OAFAA,EAAWl1B,QAAQ,SAAAb,GAAG,OAAK81B,EAAU91B,GAAO01B,IAC5Cnb,EAAQ1Z,QAAQ,SAAAwD,GAAC,OAAIyxB,EAAUzxB,EAAEmyB,QAAUV,EAAUzxB,EAAEmyB,MAAQnyB,EAAEoyB,YAC1DX,GAGHY,EAAe,SAACtJ,GACpB,OAAQA,GACN,IAAK,cACH,OAAOuJ,IAAUC,YAEnB,IAAK,sBACH,OAAOD,IAAUE,oBAEnB,IAAK,4BACH,OAAOF,IAAUG,0BAEnB,IAAK,iBACH,OAAOH,IAAUI,eAEnB,QACE,OAAOJ,IAAUK,UAIVtE,EAAoB,eAmCpBC,EAAe,SAACsE,GAC3B,IAAMC,EAAe,IAAIt3B,MACzB,IACEq3B,EAAOp2B,QAAQ,SAAA+M,IApCC,SAACA,GACnB,IAAMupB,EAAavpB,EAAEupB,WACrB,GACEA,QACoB9pB,IAApB8pB,EAAW/J,WACY/f,IAAvB8pB,EAAW/pB,QAEX,MAAO,CACL,CACEpC,GAAI,GACJmB,MAAOgrB,EAAWhrB,MAAQgrB,EAAWhrB,MAAQumB,EAC7CtF,KAAMsJ,EAAaS,EAAW/J,MAC9BhgB,QAAS+pB,EAAW/pB,UAI1B,IAAMA,EAAUQ,EAAER,QACZgqB,EAAgB7E,EAAkBnlB,GAClC6pB,EAAS,IAAIr3B,MASnB,OARAw3B,EAAcv2B,QAAQ,SAAA+M,GACpBqpB,EAAOj2B,KAAK,CACVgK,GAAI4C,EAAEsT,GACN/U,MAAOyB,EAAEypB,MACTjK,KAAMsJ,EAAa9oB,EAAE0pB,MACrBlqB,QAASQ,EAAEiU,YAGXoV,EAAOl3B,OAAek3B,GAE1B/pB,QAAQC,IAAI,sCACL,KAOgBoqB,CAAY3pB,GACpB/M,QAAQ,SAAA22B,GAAC,OAAIN,EAAal2B,KAAKw2B,OAE5C,MAAO5pB,GAEP,OADAV,QAAQW,MAAMD,GACP,IAAIhO,MAEb,OAAOs3B,GAGItE,EAAmB,WAC9B,IAAM6E,EAAc,IAAIvX,KACxB,OAAO,IAAIA,MACT,IAAIA,MAAOwX,WACTD,EAAYE,aAAgBF,EAAYE,aAAe,MAKhD9E,EAA0B,kBACrC+E,IAAeC,GAAGD,IAAeC,GAAGC,SAAS3pB,OAAO,MAEhD4pB,EAAyB,CAC7B,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAEWjF,EAAqB,SAAClpB,GACjC,IAAIouB,EAAkBpuB,EAMtB,OALAmuB,EAAal3B,QAAQ,SAAAo3B,GACnB,IAAMC,EAAM,IAAIC,OAAOF,EAAI,KAC3BD,EAAkBA,EAAgBvrB,QAAQyrB,EAAKD,KAG1CD,GAGHI,EAAoB,SAAC/zB,EAAYC,GACrC,OAAID,EAAEg0B,aAAqB,EACvB/zB,EAAE+zB,YAAoB,EAEtBh0B,EAAEjB,KAAOkB,EAAElB,KAAa,EACxBiB,EAAEjB,KAAOkB,EAAElB,MAAc,EAEtB,GAEI2vB,EAAgB,SAACuF,GAC5B,OAAOA,EAAUzzB,KAAKuzB,IAGXpF,EAAsB,SACjCsF,GAEA,OAAOA,EAAUtvB,KAAK,SAAA/G,GAAC,OAAIA,EAAEo2B,eAGlBpF,EAAoB,qBACpBC,EAAoB,SAAC9mB,GAChCkP,aAAauS,QAAQoF,EAAmB7mB,EAAMI,aAUnC2mB,EAAc,SAAClW,GAI1B,QAHiBA,EAAIjU,KAAK,SAAA4E,GAAC,QACzBA,EAAEupB,YAAoC,kBAAvBvpB,EAAEupB,WAAWhrB,SAO1BosB,EAAuC,CAAC,OACjCnF,EAAqB,SAACoF,GACjC,IAAIC,EAAkBD,EAMtB,OALAD,EAA2B13B,QAAQ,SAAAo3B,GACjC,IAAMC,EAAM,IAAIC,OAAOF,EAAI,KAC3BQ,EAAkBA,EAAgBhsB,QAAQyrB,EAAKD,KAG1CQ,2LCnVT,IAAMC,EAAKroB,UAAOkC,KAAKd,MAAM,CAAE4H,SAAU,QAA9BhJ,CAAHC,IAEG,SAAA9G,GAAA,OAAAA,EAAGgH,MAAkB+d,aAAa,KA4B9BoK,IAnBI,SAAA/lB,GAAkD,IAA/ChO,EAA+CgO,EAA/ChO,QAAS8E,EAAsCkJ,EAAtClJ,UAAWC,EAA2BiJ,EAA3BjJ,cACxC,OACEmlB,EAAAzqB,EAAA4N,cAAC2mB,EAAA,SAAD,KACE9J,EAAAzqB,EAAA4N,cAAA,YACGrN,EAAQrF,IAAI,SAACiG,EAAGf,GAAJ,OACXqqB,EAAAzqB,EAAA4N,cAAC2mB,EAAA,SAAD,CAAU54B,IAAKwF,GACbspB,EAAAzqB,EAAA4N,cAAC4mB,EAAA,EAAD,CACEpvB,aAAcjE,EACdkE,UAAWA,EACXC,cAAeA,IAEhBlF,IAAQG,EAAQ7E,OAAS,EAAI,KAAO+uB,EAAAzqB,EAAA4N,cAACymB,EAAD,iCC3BjD9gB,EAAAC,QAAiBjB,EAAAkB,EAAuB,uNCExC,IAAMghB,EAAkBC,4BAAHzoB,IAEK,SAAA9G,GAAA,OAAAA,EAAGgH,MAAkB+d,aAAa,KAI7CuK,kwBCNf,IAAME,QAAY9e,GAAH5J,KA2CA0oB,4kECtCf,IAAMC,EAAc5oB,UAAO6oB,MAAV5oB,KAOX6oB,EAAoB9oB,UAAO+oB,GAAVtoB,KAwBjBuoB,EAAiBhpB,UAAOipB,GAAVroB,KAqBdsoB,EAAalpB,UAAOkC,KAAVnB,KAOVooB,EAAoBnpB,UAAOopB,MAAVnoB,KASjBooB,EAAuBrpB,UAAOipB,GAAV3nB,KAapBgoB,EAAatpB,kBAAOupB,OAAPvpB,CAAH8B,KAKV0nB,EAAWxpB,UAAOyH,EAAVzF,KAqECynB,EAxDO,SAAAtwB,GAAwC,IAArCuwB,EAAqCvwB,EAArCuwB,QAASC,EAA4BxwB,EAA5BwwB,WAC1BjP,EAAOgP,EAAQzZ,OAAOyK,KAAKkP,aA2BjC,OACEC,EAAA71B,EAAA4N,cAACgnB,EAAD,KACEiB,EAAA71B,EAAA4N,cAAA,aACEioB,EAAA71B,EAAA4N,cAAA,UACGkoB,IAAa56B,IAAI,SAAA65B,GAAE,OAClBc,EAAA71B,EAAA4N,cAACknB,EAAD,CAAmBn5B,IAAKo5B,GAAKA,OAInCc,EAAA71B,EAAA4N,cAAA,aACG8nB,EAAQhY,UAAUxiB,IAAI,SAAC66B,EAAgB52B,GAAjB,OApCP,SAAC62B,EAAc72B,GAAc,IACzCgU,EAA+C6iB,EAA/C7iB,aAAc8iB,EAAiCD,EAAjCC,cAAeha,EAAkB+Z,EAAlB/Z,OAAQnU,EAAUkuB,EAAVluB,MAC7C,IAAKmU,EAAQ,OAAO4Z,EAAA71B,EAAA4N,cAACsoB,EAAA,SAAD,MAEpB,IAAMN,EAAe3Z,EAAOyK,KAAKkP,aAC3BO,EAAMla,EAAOyK,KAAK0P,YAClBzX,EAAS1C,EAAOoa,QAAQn7B,IAAI,SAAA0L,GAAC,OAAIA,EAAE7H,OAAMu3B,KAAK,KAC9CzyB,EAAYoY,EAAOsa,MAAM1yB,UAAUN,SACzC,OACEsyB,EAAA71B,EAAA4N,cAAConB,EAAD,CAAgBr5B,IAAKwD,GACnB02B,EAAA71B,EAAA4N,cAAA,UACEioB,EAAA71B,EAAA4N,cAAC0nB,EAAD,CACE35B,IAAKs6B,EACLO,GAAIC,YAAMtjB,EAAc8iB,GACxBvgB,QAAS,kBAAMigB,GAAcA,MAE5B7tB,IAGL+tB,EAAA71B,EAAA4N,cAAA,UAAK+Q,GACLkX,EAAA71B,EAAA4N,cAAA,UAAK/J,GACLgyB,EAAA71B,EAAA4N,cAAA,UAAKuoB,GACLN,EAAA71B,EAAA4N,cAAA,UAAKgoB,IAeHc,CAAcX,EAAM52B,MAGxB02B,EAAA71B,EAAA4N,cAACunB,EAAD,KACEU,EAAA71B,EAAA4N,cAACynB,EAAD,KACEQ,EAAA71B,EAAA4N,cAAA,MAAI+oB,QAAS,GACXd,EAAA71B,EAAA4N,cAAC4nB,EAAD,KAAWoB,MAEbf,EAAA71B,EAAA4N,cAAA,MAAI+oB,QAAS,GACXd,EAAA71B,EAAA4N,cAACsnB,EAAD,cAAmBxO,+3BChJ/B,IAAMmQ,EAAiB7qB,UAAOc,IAAVgqB,IAQJ,SAAA3xB,GAAA,OAAAA,EAAG4xB,aACA,UAAY,SAGzBC,EAAwBhrB,UAAOc,IAAVmqB,KAOrBC,EAAqBlrB,UAAOc,IAAVqqB,KAIlBC,EAAcprB,UAAOc,IAAVuqB,KAWXC,EAAqBtrB,UAAOc,IAAVyqB,KAuDTC,EA7CE,SAAAjpB,GAA8C,IAA3CkpB,EAA2ClpB,EAA3CkpB,OAAQ1K,EAAmCxe,EAAnCwe,OAAQ2K,EAA2BnpB,EAA3BmpB,UAA2BC,EAMzDC,YAAY,CACdH,SACA1K,WANA8K,EAF2DF,EAE3DE,aACAC,EAH2DH,EAG3DG,cACAf,EAJ2DY,EAI3DZ,aAMIgB,EAAWhB,EACb,iCACA,qCAEEiB,EAduDL,EAK3DM,cAS+Bv8B,OAAS,GACxCm6B,EAAA71B,EAAA4N,cAAC0pB,EAAD,KACEzB,EAAA71B,EAAA4N,cAACwpB,EAAD,CAAac,UAAU,4BACrBrC,EAAA71B,EAAA4N,cAAA,QAAMsqB,UAAU,6BACdrC,EAAA71B,EAAA4N,cAAA,OAAKuqB,IAAK5f,IAAO6f,IAAI,aAAaC,MAAM,QAE1CxC,EAAA71B,EAAA4N,cAAA,OAAKsqB,UAAU,2BACbrC,EAAA71B,EAAA4N,cAAA,oEASR,OACEioB,EAAA71B,EAAA4N,cAACsoB,EAAA,SAAD,KACG8B,EACDnC,EAAA71B,EAAA4N,cAACipB,EAADh6B,OAAAoE,OAAA,GAAoB42B,IAApB,CAAoCd,aAAcA,IAChDlB,EAAA71B,EAAA4N,cAAA,QAAA/Q,OAAAoE,OAAA,CAAOi3B,UAAU,kBAAqBJ,MACtCjC,EAAA71B,EAAA4N,cAACopB,EAAD,KACEnB,EAAA71B,EAAA4N,cAAA,OAAKuqB,IAAKG,IAAYF,IAAI,WAC1BvC,EAAA71B,EAAA4N,cAACspB,EAAD,KAAqBa,GACpBL,y1DClFX,IAAMxjB,GAAclI,UAAOc,IAAVyrB,MAOXC,GAAaxsB,UAAOc,IAAV2rB,MAKVC,GAAc1sB,UAAOc,IAAV6rB,MAOXC,GAAW5sB,UAAOkC,KAAV2qB,MAIRvD,GAAatpB,UAAOhM,EAAV84B,KACL,SAAA3zB,GAAA,OAAAA,EAAGgH,MAAkBmI,QAAQ,IAE3B,SAAA/F,GAAA,OAAAA,EAAGpC,MAAkBmI,QAAQ,KAIpCykB,GAAiB/sB,UAAOgtB,SAAVC,KAGT,SAAA7kB,GAAA,OAAAA,EAAGjI,MAAkBoe,YAAY,IAWhB,SAAA/V,GAAA,OAAAA,EAAGrI,MAAkBmI,QAAQ,KAoBnDqY,GAAe3gB,kBAAOktB,SAAPltB,CAAHmtB,MAKZ7O,GAAUte,UAAOc,IAAVssB,IACS,SAAAtkB,GAAA,OAAAA,EAAG3I,MAAkB+d,aAAa,KAIlDmP,GAAmBrtB,UAAOkC,KAAVC,KAOhBmrB,GAAgBttB,UAAOc,IAAV4Y,KAgEJ6T,GA3CW,SAAA9L,GAMT,IALf+L,EAKe/L,EALf+L,oBACAC,EAIehM,EAJfgM,aACAlI,EAGe9D,EAHf8D,YACAmI,EAEejM,EAFfiM,SACAC,EACelM,EADfkM,WAEMlC,EAASmC,sBACb,SAACC,GAAD,OAA2BJ,EAAaI,EAAc,KACtD,CAACJ,IAEG/B,EACJ7B,EAAA71B,EAAA4N,cAAC8qB,GAAD,KACE7C,EAAA71B,EAAA4N,cAAC+e,GAAD,qBAGEmN,EAAgBJ,GACpB7D,EAAA71B,EAAA4N,cAAC0rB,GAAD,KACEzD,EAAA71B,EAAA4N,cAACgrB,GAAD,KAjCoB,SAACc,GACzB,IAAMh+B,EAASg+B,EAASh+B,OACxB,OAAOA,EAAS,GAAT,GAAA6C,OACAm7B,EAAS/wB,UAAU,EAAG,IADtB,OAAApK,OAC+Bm7B,EAAS/wB,UAAUjN,EAAS,KAC9Dg+B,EA6BWK,CAAkBL,IAC7B7D,EAAA71B,EAAA4N,cAACyrB,GAAD,CAAkB3jB,QAASikB,GAA3B,WAGEK,GAAiBN,GACrB7D,EAAA71B,EAAA4N,cAACqsB,EAAD,CAAUxC,OAAQA,EAAQ1K,OAAQ,cAAe2K,UAAWA,IAE9D,OACE7B,EAAA71B,EAAA4N,cAAC0c,GAAD,KACEuL,EAAA71B,EAAA4N,cAACsG,GAAD,2BACA2hB,EAAA71B,EAAA4N,cAAC4qB,GAAD,wEACmE,IACjE3C,EAAA71B,EAAA4N,cAACssB,GAAD,CAAYjiB,KAAMkiB,KAAiBC,MAEpCN,EACAE,EACDnE,EAAA71B,EAAA4N,cAACmrB,GAAD,CACE1mB,YAAagoB,IACbtyB,MAAOwpB,EACPtf,SAAUunB,kkBC5IlB,IAAMc,GAAetuB,kBAAOktB,SAAPltB,CAAHuuB,MAYZC,GAAmBxuB,kBAAOktB,SAAPltB,CAAHyuB,MAQhBC,GAAmB1uB,UAAO2uB,IAAVC,MAyEPC,GAtDO,SAAA11B,GAYL,IAXf21B,EAWe31B,EAXf21B,iBACAC,EAUe51B,EAVf41B,SACAC,EASe71B,EATf61B,iBACAC,EAQe91B,EARf81B,aACAC,EAOe/1B,EAPf+1B,eACApvB,EAMe3G,EANf2G,MACAqvB,EAKeh2B,EALfg2B,qBACAC,EAIej2B,EAJfi2B,kBACAC,EAGel2B,EAHfk2B,MACAC,EAEen2B,EAFfm2B,eACAC,EACep2B,EADfo2B,kBAEMC,EAAiBH,GACrBxF,EAAA71B,EAAA4N,cAAC6tB,EAAA,YAAD,CAAa/lB,QAASqlB,GAAtB,UAEIW,EACJH,EAAkBtJ,IAAkB0J,wBAE7BC,EAGLF,EAHFhc,MACSmc,EAEPH,EAFFhb,QACSob,EACPJ,EADFpK,QAIIyK,EADmBT,GAAmBJ,IAAkBW,EAM1D,KAJFhG,EAAA71B,EAAA4N,cAAC0sB,GAAD,CAAc5kB,QAASylB,EAAsBnnB,UAAW8nB,GACtDjG,EAAA71B,EAAA4N,cAAC8sB,GAAD,CAAkBvC,IAAK6D,KAAgB5D,IAAI,eAC1CwD,GAGCK,GAAmBf,GAAkBgB,YAAYpwB,IACrD+pB,EAAA71B,EAAA4N,cAAC4sB,GAAD,CAAkB9kB,QAASolB,EAAkB9N,OAAO,UAApD,mBAIImP,EAAkBjB,GACtBrF,EAAA71B,EAAA4N,cAAC4sB,GAAD,CACExmB,SAAUinB,GAAgBG,EAC1B1lB,QAASslB,GAERI,EAAoBvF,EAAA71B,EAAA4N,cAAC6tB,EAAA,QAAD,MAAc,mBAGvC,OACE5F,EAAA71B,EAAA4N,cAACsoB,EAAA,SAAD,KACGsF,EACAO,EACAE,EACAE,yiDC7EP,IAAMC,GAAQpwB,UAAOyH,EAAV4oB,MAMLC,GAActwB,UAAOyH,EAAV8oB,KAGN,SAACrwB,GAAD,OAAuBA,EAAMmvB,MAAQ,UAAY,YAGtDmB,GAAYxwB,UAAOc,IAAV2vB,MAITC,GAAkB1wB,kBAAO2wB,YAAP3wB,CAAH4wB,MAQfC,GAAoB7wB,kBAAO8wB,cAAP9wB,CAAH+wB,KACV,SAAA7wB,GAAK,OAAKA,EAAMmvB,MAAQ,cAAgB,MAM/C2B,GAAoBhxB,UAAOc,IAAVmwB,MASjBC,GAAqBlxB,UAAOc,IAAVqwB,MAQlBC,GAA0BpxB,UAAOc,IAAVuwB,KAChB,SAACnxB,GAAD,OAAuBA,EAAMmvB,MAAQ,SAAW,MAIvDf,GAAetuB,kBAAOktB,SAAPltB,CAAHsxB,MAQZC,GAAsBvxB,kBAAOsuB,GAAPtuB,CAAHwxB,MAInBrT,GAAgBne,kBAAOoe,UAAPpe,CAAH4Z,MAmKJ6X,IArJI,SAAAt4B,GAMF,IALfuwB,EAKevwB,EALfuwB,QACA2F,EAIel2B,EAJfk2B,MACA1F,EAGexwB,EAHfwwB,WACAxyB,EAEegC,EAFfhC,OACAm4B,EACen2B,EADfm2B,eACe1rB,EACuBC,mBAAS,IADhCC,EAAAjT,OAAA6gC,EAAA,EAAA7gC,CAAA+S,EAAA,GACR2hB,EADQzhB,EAAA,GACK6tB,EADL7tB,EAAA,GAAAI,EAESL,mBAAS,MAFlBM,EAAAtT,OAAA6gC,EAAA,EAAA7gC,CAAAqT,EAAA,GAERuZ,EAFQtZ,EAAA,GAEFytB,EAFEztB,EAAA,GAAA0tB,EAGiBhuB,mBAAS,IAH1BiuB,EAAAjhC,OAAA6gC,EAAA,EAAA7gC,CAAAghC,EAAA,GAGRnE,EAHQoE,EAAA,GAGEC,EAHFD,EAAA,GAAAE,EAI6BnuB,oBAAS,GAJtCouB,EAAAphC,OAAA6gC,EAAA,EAAA7gC,CAAAmhC,EAAA,GAIR9C,EAJQ+C,EAAA,GAIQC,EAJRD,EAAA,GAAAE,EAKyBtuB,oBAAS,GALlCuuB,EAAAvhC,OAAA6gC,EAAA,EAAA7gC,CAAAshC,EAAA,GAKRlD,EALQmD,EAAA,GAKMC,EALND,EAAA,GAAAE,EAMmCzuB,oBAAS,GAN5C0uB,EAAA1hC,OAAA6gC,EAAA,EAAA7gC,CAAAyhC,EAAA,GAMRlD,EANQmD,EAAA,GAMWC,EANXD,EAAA,GAAAE,EAO6B5uB,oBAAS,GAPtC6uB,EAAA7hC,OAAA6gC,EAAA,EAAA7gC,CAAA4hC,EAAA,GAORE,EAPQD,EAAA,GAOQE,EAPRF,EAAA,GAAAG,EAQ6BhvB,oBAAS,GARtCivB,EAAAjiC,OAAA6gC,EAAA,EAAA7gC,CAAAgiC,EAAA,GAQRE,EARQD,EAAA,GAQQE,EARRF,EAAA,GASP3rB,EAAmDuiB,EAAnDviB,aAAcrH,EAAqC4pB,EAArC5pB,MAAOhE,EAA8B4tB,EAA9B5tB,MAAOm3B,EAAuBvJ,EAAvBuJ,UAAW/oB,EAAYwf,EAAZxf,QAThCgpB,GAUQhsB,aAAgBC,GAAhCE,GAVQxW,OAAA6gC,EAAA,EAAA7gC,CAAAqiC,GAAA,MAYT3D,GAAoBnN,aAAcuD,IAAaK,QAAS9b,GACxDipB,GACJ5D,GAAkBtJ,IAAkBmN,kBAE7BC,GAGLF,GAHFzf,MACS4f,GAEPH,GAFFze,QACS6e,GACPJ,GADF7N,QAQIkO,GAAc,eAAAjxB,EAAA1R,OAAA4iC,EAAA,EAAA5iC,CAAA6iC,EAAA1/B,EAAA2/B,KAAG,SAAAC,IAAA,IAAAzsB,EAAA,OAAAusB,EAAA1/B,EAAA6/B,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OACb7sB,EAAiBuiB,EAAjBviB,aACRqrB,GAAqB,GACrB7W,YAAU4J,EAAa9H,EAAMtW,GAC1BoE,KAAKoe,GACLpe,KAAKinB,GAAqB,IAC1BnmB,MAAM,SAAC9O,GACNosB,GAAcA,IACd6I,GAAqB,KARJ,wBAAAsB,EAAAG,SAAAL,MAAH,yBAAArxB,EAAA3R,MAAAsjC,KAAA5iB,YAAA,GA8Bd6iB,GAA+B,KAAdlB,GACrBpJ,EAAA71B,EAAA4N,cAAC4uB,GAAD,4BAAgCyC,GAE5BmB,GACJvK,EAAA71B,EAAA4N,cAACsoB,EAAA,SAAD,KACEL,EAAA71B,EAAA4N,cAACsvB,GAAD,KACErH,EAAA71B,EAAA4N,cAAC0uB,GAAD,CAAajB,MAAOA,GAAQvzB,GAC3Bq4B,IAEHtK,EAAA71B,EAAA4N,cAACyyB,EAAD,CAAe3K,QAASA,EAASC,WAAYA,KAI3CjP,GAAOgP,EAAQzZ,OAAOyK,KAAKkP,aAC3B0K,GAAuB,SAACrgC,GAAD,OAAgB2+B,EAAkB3+B,IACzDsgC,GAAuB,SAACtgC,GAAD,OAAgB++B,EAAkB/+B,IAKzDugC,GAAqB7B,EAAiB9I,EAAA71B,EAAA4N,cAACuc,GAAD,MAAoBkV,GAC1DoB,GAAqB1B,EACzBlJ,EAAA71B,EAAA4N,cAACuc,GAAD,MAEA,mBAEIuW,GAAkBv9B,GACX,aAAXA,GACAm8B,KACCjZ,aAAWK,KACVmP,EAAA71B,EAAA4N,cAAC+yB,GAAD,CAAcjrB,QAdY,kBAC5Ba,YAAcpD,EAAcmtB,KAaoBtsB,UAAWurB,IACtDiB,IAGDI,GAAkBz9B,GAAUqW,YAASrW,IACzC0yB,EAAA71B,EAAA4N,cAAC2vB,GAAD,CAAqB7nB,QAjBC,kBACtBc,YAAqBrD,EAAcotB,MAiBhCE,IAGCI,GACJhL,EAAA71B,EAAA4N,cAAC8uB,GAAD,KACE7G,EAAA71B,EAAA4N,cAACovB,GAAD,KACEnH,EAAA71B,EAAA4N,cAACwuB,GAAD,KAAQ0E,KACRjL,EAAA71B,EAAA4N,cAAA,WACG8yB,GACAE,KAGJR,IAGCrrB,GAASsmB,EAAQwF,GAAcT,GAC/BjE,GAAkBjB,GACtBrF,EAAA71B,EAAA4N,cAACwvB,GAAD,CAAyB/B,MAAOA,GAC9BxF,EAAA71B,EAAA4N,cAACmzB,GAAD,CACExP,YAAaA,EACbmI,SAAUA,EACVF,oBA3EsB,SAACjwB,GAAD,OAC1Bo0B,EAAep0B,EAAE4I,cAAcpK,QA2E3B0xB,aAzEe,SAACuH,GACfA,IACLpD,EAAQoD,GACRjD,EAAYiD,EAAajiC,MACzBs/B,GAAgB,KAsEZ1E,WAnEa,WACjBiE,EAAQ,MACRG,EAAY,IACZM,GAAgB,OAqElB,OACExI,EAAA71B,EAAA4N,cAACsoB,EAAA,SAAD,KACGnhB,GACAonB,GACDtG,EAAA71B,EAAA4N,cAACivB,GAAD,CAAmBxB,MAAOA,GACxBxF,EAAA71B,EAAA4N,cAACqzB,GAAD,CACEnG,iBAzGiB,WACvBznB,KACAsiB,GAAcA,KAwGRoF,SAAUpF,EACVsF,aAAcA,EACdC,eAAgBA,EAChBpvB,MAAOA,EACPqvB,qBA7EwB,kBAAM+C,GAAmBhD,IA8EjDF,iBAAkBwE,GAClBpE,kBAAmBA,EACnBC,MAAOA,EACPC,eAAgBA,EAChBC,kBAAmBA,oIClLd2F,EA5Bc,SAAA/7B,GAA6C,IAA1Cg8B,EAA0Ch8B,EAA1Cg8B,aAAcC,EAA4Bj8B,EAA5Bi8B,eAA4BxxB,EAC9CC,mBAnBP,SACnBsxB,EACAC,GAEA,IAAMC,EAASF,EAAajmC,IAAI,SAAAomC,GAAK,OAAIA,EAAM36B,KACzC46B,EAAoB,IAAIh/B,IAAI6+B,GAE5BI,EAAkB,GAKxB,OAJAH,EAAO7kC,QAAQ,SAAAilC,GACbD,EAAgBC,GAAKF,EAAkBl6B,IAAIo6B,KAGtC,CACLD,kBACAE,gBAAiBN,EAAexgC,SAMhC+gC,CAAaR,EAAcC,IAF2CtxB,EAAAjT,OAAA6gC,EAAA,EAAA7gC,CAAA+S,EAAA,GACjE9D,EADiEgE,EAAA,GAC1D8xB,EAD0D9xB,EAAA,GAsBxE,MAAO,CACLhE,QACA+1B,YAnBkB,SAACP,GAAkB,IAC7BE,EAAqC11B,EAArC01B,gBAAiBE,EAAoB51B,EAApB41B,gBACnBI,GAAcN,EAAgBF,GAE9BS,EAAqBD,EAAU,GAAAvjC,OAAA1B,OAAAmlC,EAAA,EAAAnlC,CAC7B6kC,GAD6B,CACZJ,IACrBI,EAAgB1iC,OAAO,SAAAyiC,GAAC,OAAIA,IAAMH,IAEtCM,EAAS,CACPJ,gBAAgB3kC,OAAAolC,EAAA,EAAAplC,CAAA,GACX2kC,EADU3kC,OAAAqlC,EAAA,EAAArlC,CAAA,GAEZykC,EAAQQ,IAEXJ,gBAAiBK,wBClCRI,EANgB,SAAAh9B,GAA0C,IAEjE5E,EAAU,CAAE+S,UADA,CAAE8uB,MADmDj9B,EAAvCi9B,QAGhC,OAAOhvB,YAAkBivB,IAAqB9hC,8xCCRhD,IAAM+hC,EAAYt2B,UAAO2uB,IAAV1uB,KAMTs2B,EAASv2B,UAAOc,IAAVL,KAON+1B,EAAgBx2B,UAAOc,IAAVF,KAWb61B,EAAez2B,kBAAO02B,cAAP12B,CAAHe,KAKZ41B,EAAW32B,UAAO42B,GAAV31B,KAMR41B,EAAc72B,UAAO0T,MAAVpS,KAQXw1B,EAAU92B,UAAOyH,EAAV3F,KAKPi1B,EAAS/2B,UAAOc,IAAVkB,KAONg1B,EAAQh3B,UAAOc,IAAVqB,KA8FI80B,IA9Ee,SAAA99B,GAOjB,IAAA+9B,EAAA/9B,EANXg+B,YAMW,IAAAD,KALX/vB,EAKWhO,EALXgO,aACAguB,EAIWh8B,EAJXg8B,aACAC,EAGWj8B,EAHXi8B,eAGWgC,EAAAj+B,EAFX41B,gBAEW,IAAAqI,EAFA,aAEAA,EAAAC,EAAAl+B,EADXm+B,wBACW,IAAAD,EADQ,aACRA,EAAAE,EACoBrC,EAAqB,CAClDC,eACAC,mBAFMt1B,EADGy3B,EACHz3B,MAAO+1B,EADJ0B,EACI1B,YAIPH,EAAoB51B,EAApB41B,gBALG8B,EAemBrB,EAAuB,CAAEC,MATzC,CACZjvB,eACA7K,SAAU,CAAEm7B,YAAa/B,GACzB55B,MAAO,KACP47B,mBAAoB,KACpBC,QAAS,KACTC,WAAY,KACZ3E,UAAW,QAENoD,EAfIxlC,OAAA6gC,EAAA,EAAA7gC,CAAA2mC,EAAA,MAgBLvxB,EAAW,SAAC1I,GAAD,OACfs4B,EAAYt4B,EAAEs6B,OAAO97B,QASjB+7B,EACJjO,EAAA71B,EAAA4N,cAAC40B,EAAD,KACE3M,EAAA71B,EAAA4N,cAAC6tB,EAAA,OAAD,CAAQznB,UAAW0tB,EAAgBhmC,OAAQga,QAAS2sB,GAApD,sBAEExM,EAAA71B,EAAA4N,cAAC00B,EAAD,CAAWnK,IAAK4L,IAAO3L,IAAI,OAI3B4L,EACJnO,EAAA71B,EAAA4N,cAAC20B,EAAD,KACE1M,EAAA71B,EAAA4N,cAAC60B,EAAD,CAAc/sB,QAASqlB,GAAvB,UACAlF,EAAA71B,EAAA4N,cAAC6tB,EAAA,OAAD,CAAQznB,UAAW0tB,EAAgBhmC,OAAQga,QAnBhC,WACb4tB,IACAjB,IACIc,GACFpI,MAeA,SAMEkJ,EAAqB,IAAI1hC,IAAIm/B,GAEnC,OACE7L,EAAA71B,EAAA4N,cAAA,WACIu1B,EAAiD,KAA1CtN,EAAA71B,EAAA4N,cAAC+0B,EAAD,2BACT9M,EAAA71B,EAAA4N,cAACk1B,EAAD,mHAIAjN,EAAA71B,EAAA4N,cAACm1B,EAAD,KACG5B,EAAajmC,IAAI,SAAAumC,GAAC,OACjB5L,EAAA71B,EAAA4N,cAACo1B,EAAD,CAAOrnC,IAAK8lC,EAAE96B,IACZkvB,EAAA71B,EAAA4N,cAACi1B,EAAD,KACEhN,EAAA71B,EAAA4N,cAAC6tB,EAAA,SAAD,CACE1zB,MAAO05B,EAAE96B,GACT0lB,QAAS4X,EAAmB58B,IAAIo6B,EAAE96B,IAClCsL,SAAUA,IAEZ4jB,EAAA71B,EAAA4N,cAAA,YAAO6zB,EAAE1iC,WAKfokC,EAAuBa,EAAhBF,oNClJTI,EAAY,SAChB7nC,EACAoS,GAEA,IAAM01B,EAAW,IAAI/oC,IAEfsB,EAAe+R,EAAUnS,YAAc,GAsB7C,OArBAI,EAAaF,QAAQ,SAAAc,IACIA,EAAKiD,SAAW,IACxB/D,QAAQ,SAAA2E,GACrBgjC,EAAShoC,IAAI,CAACgF,IAAI,QAID9E,EAAWE,YAAc,IACdyC,OAC9B,SAAApB,GAAC,OAAKkB,IAAQlB,EAAEtB,WAAYI,KAEnBF,QAAQ,SAAAC,GACjB,IAAM2nC,EAAW,IAAI7oC,OACAkB,EAAKH,YAAc,IAC3BE,QAAQ,SAAAc,GACnB,IAAM+mC,EAAiB/mC,EAAKiD,SAAW,GACvC6jC,EAASznC,KAATC,MAAAwnC,EAAQvnC,OAAAmlC,EAAA,EAAAnlC,CAASwnC,MAEnBF,EAAShoC,IAAIioC,GAAU,KAGlBD,GAgGMG,cAzCb,SAAAA,EAAYp4B,GAAuB,IAAAq4B,EAAA1nC,OAAA2nC,EAAA,EAAA3nC,CAAAqjC,KAAAoE,GAAA,IAAAG,GACjCF,EAAA1nC,OAAA6nC,EAAA,EAAA7nC,CAAAqjC,KAAArjC,OAAA8nC,EAAA,EAAA9nC,CAAAynC,GAAAM,KAAA1E,KAAMh0B,KACiCA,MAA/B7P,EAFyBooC,EAEzBpoC,WAAYoS,EAFag2B,EAEbh2B,UAFa,OAGjC81B,EAAKz4B,MAAQ,CAAE+4B,OAAQX,EAAU7nC,EAAYoS,IAC7C81B,EAAKO,UAAYP,EAAKO,UAAUC,KAAfloC,OAAAmoC,EAAA,EAAAnoC,CAAA0nC,IACjBA,EAAKU,gBAAkBV,EAAKU,gBAAgBF,KAArBloC,OAAAmoC,EAAA,EAAAnoC,CAAA0nC,IALUA,yEAQzBW,GACRhF,KAAK0B,SAAS,SAAAuD,GACZ,IAAMC,EAAU,IAAIhqC,IAAI+pC,EAAUN,QAElC,OADAO,EAAQjpC,IAAI+oC,GAAMC,EAAUN,OAAOhpC,IAAIqpC,IAChC,CAAEL,OAAQO,+CAIH,IAAAC,EAMZnF,KAAKh0B,MAJP7P,EAFcgpC,EAEdhpC,WACAqS,EAHc22B,EAGd32B,0BACAgB,EAJc21B,EAId31B,cACAT,EALco2B,EAKdp2B,0BAEM41B,EAAW3E,KAAKp0B,MAAhB+4B,OAEFtoC,EA7EW,SACnBgB,EACAsnC,GAEA,IAAMS,EAAU/pC,MAAMC,KAAKqpC,EAAOppC,QADR8pC,EAGWC,IAAoBF,EAAS,SAAAJ,GAAG,OACnEL,EAAOhpC,IAAIqpC,KAJaO,EAAA5oC,OAAA6gC,EAAA,EAAA7gC,CAAA0oC,EAAA,GAGnBG,EAHmBD,EAAA,GAGNE,EAHMF,EAAA,GAOpBG,EAAiB,IAAIrqC,MAC3BmqC,EAAYlpC,QAAQ,SAAA0oC,GAClBU,EAAejpC,KAAfC,MAAAgpC,EAAc/oC,OAAAmlC,EAAA,EAAAnlC,CAASqoC,MAGzB,IAAMW,EAA8B,CAClCvpC,WAAY,CAAC,CAAEiB,cAAagD,QAASqlC,IACrC7pC,MAAO,EACPE,KAAM,GAGF6pC,EAAiBH,EAAczqC,IAAoB,SAAAgqC,GAAG,MAAK,CAC/D5oC,WAAY,CAAC,CAAEiB,cAAagD,QAAS2kC,IACrCnpC,MAAO,EACPE,KAAM,KAGR,OAAQ4pC,GAARtnC,OAAA1B,OAAAmlC,EAAA,EAAAnlC,CAAwBipC,IAkDHC,CADCtjC,aAAqBpG,GACIwoC,GAC7Cn2B,EAA0B7R,OAAAolC,EAAA,EAAAplC,CAAA,GAAKR,EAAN,CAAkBE,gBACvC0S,GACFA,IAEFS,qCAOA,OAAOsF,EAHckrB,KAAKh0B,MAAlB8I,UAGQ,CAAE6vB,OAFC3E,KAAKp0B,MAAhB+4B,OAEkBC,UADa5E,KAA/B4E,UAC6BG,gBADE/E,KAApB+E,yBAxCgBnsB,IAAMktB,ozBCvE7C,IAIaC,EAAmBj6B,kBAJd,SAAA7G,GAAyCA,EAAtC+gC,UAAsC,IAAxBz4B,EAAwB5Q,OAAAspC,EAAA,EAAAtpC,CAAAsI,EAAA,eACzD,OAAO0wB,EAAA71B,EAAA4N,cAAA,MAASH,IAGczB,CAAHC,IAEb,SAAAC,GAAK,OAAIA,EAAMg6B,YAIlBE,EAAMp6B,UAAO0T,MAAVjT,IAEmB,SAAAP,GAAK,OAAIA,EAAMC,MAAMC,aAW3C4mB,EAAQhnB,UAAO42B,GAAVh2B,IAGiB,SAAAV,GAAK,OAAIA,EAAMC,MAAMC,aAGlDi6B,EAAwBr6B,UAAOc,IAAVC,KAqFZu5B,IArEgB,SAAA/3B,GASlB,IARXlS,EAQWkS,EARXlS,WACAoS,EAOWF,EAPXE,UACAC,EAMWH,EANXG,0BACAnD,EAKWgD,EALXhD,WACAmE,EAIWnB,EAJXmB,cACAgB,EAGWnC,EAHXmC,kBACA1B,EAEWT,EAFXS,4BACAC,EACWV,EADXU,0BAEA,OACE4mB,EAAA71B,EAAA4N,cAAC24B,EAAD,CACElqC,WAAYA,EACZoS,UAAWA,EACXC,0BAA2BA,EAC3BgB,cAAeA,EACfT,0BAA2BA,GAE1B,SAAAmF,GAA4C,IAAzCywB,EAAyCzwB,EAAzCywB,OAAQC,EAAiC1wB,EAAjC0wB,UAAWG,EAAsB7wB,EAAtB6wB,gBACfuB,EAAa/jC,aAAqBpG,GAClCgO,EAAYkB,EAAWi7B,GACvBlhC,EAAgB+E,EAAUgD,KAC1Bo5B,EAAUlrC,MAAMC,KAAKqpC,EAAOppC,QAE5BirC,EADcD,EAAQznC,OAAO,SAAArD,GAAG,OAAIkpC,EAAOhpC,IAAIF,KAClBD,OAAS,EACtC2J,EAAYN,YAAiBsF,EAAU9J,SAC7C,OACEs1B,EAAA71B,EAAA4N,cAACyc,EAAA,EAAD,KACEwL,EAAA71B,EAAA4N,cAAColB,EAAD,mBAEA6C,EAAA71B,EAAA4N,cAACq4B,EAAD,CAAkBC,UAAWl3B,GAC1By3B,EAAQvrC,IAAI,SAACgqC,EAAK/lC,GACjB,OAAmB,IAAf+lC,EAAIxpC,QAAgBwpC,EAAI,KAAOx0B,EAC1B,KAGPmlB,EAAA71B,EAAA4N,cAACw4B,EAAD,CAAKzqC,IAAKwD,GACR02B,EAAA71B,EAAA4N,cAAC+4B,EAAA,EAAD,CACEta,QAASwY,EAAOhpC,IAAIqpC,GACpBjzB,SAAU,kBAAM6yB,EAAUI,MAE5BrP,EAAA71B,EAAA4N,cAACy4B,EAAD,KACExQ,EAAA71B,EAAA4N,cAAC0mB,EAAA,EAAD,CACE/zB,QAAS2kC,EACT7/B,UAAWA,EACXC,cAAeA,SAQ3BuwB,EAAA71B,EAAA4N,cAACg5B,EAAA,EAAD,CACEC,aAAcH,EACdI,OAAQ7B,EACRlK,SAAUrrB,EACVq3B,eAAe,2BACfC,eAAe,SACfx5B,WAAW,EACXy5B,qBAAsB,61YCrH7B,IAAMC,EAAerxB,IAAH5J,KAWnBk7B,EAAoBtxB,IAAHpJ,KAiBjB26B,EAAgBvxB,IAAHjJ,KAgBby6B,EAAkBxxB,IAAH9I,KAcfu6B,EAAyBzxB,IAAH5I,KActBs6B,EAAe1xB,IAAHvI,KAkBZk6B,EAAiB3xB,IAAH/H,IAoChBo5B,GAGEO,EAAoB5xB,IAAH7H,IAgBnBw5B,GAGEE,EAAoB7xB,IAAH1H,IAmBnBs5B,EACAD,GAGEG,EAAiB9xB,IAAH6P,KA+CdkiB,EAAyB/xB,IAAH+P,IAqBxBshB,EACAK,EACAC,GAGSK,EAAY,CACvB7xB,KAAMkxB,EACNY,MAAOV,EACP1gB,KAAM6gB,EACNvqC,UAAW0qC,EACXhsB,OAAQisB,EACRzxB,QAASmxB,EACTjxB,eAAgBkxB,EAChBrrB,OAAQ2rB,EACR7xB,SAAUF,IAAFiQ,IAgCJuhB,EACAK,EACAC,EACAP,EACAQ,IAIOG,EAAclyB,IAAHmQ,IASpB6hB,EAAU9xB,UAcDiyB,GAXQnyB,IAAHoyB,KAWSpyB,IAAHqyB,IAkCpBb,EACAD,IAGSe,EAActyB,IAAHuyB,IAMpBP,EAAU9xB,UAGDsyB,EAAiBxyB,IAAHyyB,IASvBnB,GAGSoB,EAAoB1yB,IAAH2yB,IAM1BX,EAAU9xB,UAGD0yB,EAAyB5yB,IAAH6yB,IA8B/BrB,EACAK,EACAN,GAGSuB,GAAkB9yB,IAAH+yB,IAWxBvB,EACAK,EACAN,GAGSyB,GAAgBhzB,IAAHizB,IAWtBzB,GAGS0B,GAAgBlzB,IAAHmzB,IAWtB3B,GAGS4B,GAAkBpzB,IAAHqzB,KAMfC,GAAiBtzB,IAAHuzB,IAevB/B,EACAO,EACAF,GAGS2B,GAAiBxzB,IAAHyzB,IAYvB5B,EACAE,GAGS2B,GAAiB1zB,IAAH2zB,IAiBvBnC,EACAK,EACAN,EACAQ,GAGS6B,GAAqB5zB,IAAH6zB,KAyClBC,GAA0B9zB,IAAH+zB,KAQvBC,GAA0Bh0B,IAAHi0B,KAMvBC,GAAwBl0B,IAAHm0B,IAM9BvC,wBC/kBJl0B,EAAAC,QAAiBjB,EAAAkB,EAAuB,uDCAxCF,EAAAC,QAAiBjB,EAAAkB,EAAuB,+DCAxCF,EAAAC,QAAiBjB,EAAAkB,EAAuB,wDCAxCF,EAAAC,QAAiBjB,EAAAkB,EAAuB,uDCAxCF,EAAAC,QAAiBjB,EAAAkB,EAAuB,4DCAxCF,EAAAC,QAAiBjB,EAAAkB,EAAuB,+DCAxCF,EAAAC,QAAiBjB,EAAAkB,EAAuB,8DCAxCF,EAAAC,QAAiBjB,EAAAkB,EAAuB,gECAxCF,EAAAC,QAAiBjB,EAAAkB,EAAuB,kECAxCF,EAAAC,QAAiBjB,EAAAkB,EAAuB,oECAxCF,EAAAC,QAAiBjB,EAAAkB,EAAuB,6DCAxCF,EAAAC,QAAiBjB,EAAAkB,EAAuB,4DCAxCF,EAAAC,QAAiBjB,EAAAkB,EAAuB,gECAxCF,EAAAC,QAAiBjB,EAAAkB,EAAuB,6DCAxCF,EAAAC,QAAiBjB,EAAAkB,EAAuB,sDCAxCF,EAAAC,QAAiBjB,EAAAkB,EAAuB,wDCAxCF,EAAAC,QAAiBjB,EAAAkB,EAAuB,yDCAxCF,EAAAC,QAAiBjB,EAAAkB,EAAuB,wDCAxCF,EAAAC,QAAiBjB,EAAAkB,EAAuB,0DCAxCF,EAAAC,QAAiBjB,EAAAkB,EAAuB,8DCAxCF,EAAAC,QAAiBjB,EAAAkB,EAAuB,uDCAxCF,EAAAC,QAAiBjB,EAAAkB,EAAuB,+DCAxCF,EAAAC,QAAiBjB,EAAAkB,EAAuB,0DCAxCF,EAAAC,QAAiBjB,EAAAkB,EAAuB,2DCAxCF,EAAAC,QAAiBjB,EAAAkB,EAAuB,qECAxClB,EAAA8D,EAAAC,EAAA,sBAAA0M,IAAAzQ,EAAA8D,EAAAC,EAAA,sBAAAyM,IAAO,IAAMC,EAAW,WACXD,EAAO,8ECDpBxQ,EAAA8D,EAAAC,EAAA,sBAAA2zB,IAAA13B,EAAA8D,EAAAC,EAAA,sBAAA4zB,IAAA33B,EAAA8D,EAAAC,EAAA,sBAAA6zB,IAAA53B,EAAA8D,EAAAC,EAAA,sBAAA8zB,IAAA73B,EAAA8D,EAAAC,EAAA,sBAAA+zB,IAAA93B,EAAA8D,EAAAC,EAAA,sBAAAg0B,IAAA/3B,EAAA8D,EAAAC,EAAA,sBAAAi0B,IAAAh4B,EAAA8D,EAAAC,EAAA,sBAAAk0B,IAAAj4B,EAAA8D,EAAAC,EAAA,sBAAAm0B,IAAAl4B,EAAA8D,EAAAC,EAAA,sBAAAo0B,IAAAn4B,EAAA8D,EAAAC,EAAA,sBAAAq0B,IAAAp4B,EAAA8D,EAAAC,EAAA,sBAAAs0B,IAAAr4B,EAAA8D,EAAAC,EAAA,sBAAAu0B,IAAAt4B,EAAA8D,EAAAC,EAAA,sBAAAw0B,IAAAv4B,EAAA8D,EAAAC,EAAA,sBAAAy0B,IAAAx4B,EAAA8D,EAAAC,EAAA,sBAAA00B,IAAAz4B,EAAA8D,EAAAC,EAAA,sBAAA20B,IAAA14B,EAAA8D,EAAAC,EAAA,sBAAA40B,IAAA34B,EAAA8D,EAAAC,EAAA,sBAAA60B,IAAA54B,EAAA8D,EAAAC,EAAA,sBAAA80B,IAAA,IAAApc,EAAAzc,EAAA,GAEa03B,EAAgB,EAChBC,EAAgB,OAEhBC,EAAe,EACfC,EAAe,GAEfC,EAAoB,EACpBC,EAAoB,IAEpBC,EAAgB,EAChBC,EAAgB,IAEhBC,EAA4C,IAE5CC,EAAwB,IACxBC,EAAsC,iBAE9C,yCAF8CrtB,UAAA5hB,OAAA,QAAAsN,IAAAsU,UAAA,GAAAA,UAAA,GAC3BotB,IAGXE,EAAe,UAGfC,EAAoB,UAGpBC,EAAc,cACdC,EAAqB,4BACrBC,EAAuB,uBACvBC,EAAgB,mBAEhBC,EAAoB,6BACpBC,EAAwB,uBACxBC,EAAgB,0BAEvBC,EAAoB,SAAClZ,GAAD,MAA+C,CACvEC,SAAU,CACR1S,MAAO,GACP4R,SAAS,EACT5Q,SAAS,EACT6Q,YAAa,IAEfY,SAGmCkZ,EACnC7qB,IAAmBC,QAEe4qB,EAAkB7qB,IAAmBnF,OACjCgwB,EACtC7qB,IAAmBI,WAEeyqB,EAAkB7qB,IAAmBG,OACtC0qB,EAAkB7qB,IAAmBK,MAC7BwqB,EACzC7qB,IAAmBM,cAEwBuqB,EAC3C7qB,IAAmB8qB,iBAEyBD,EAC5C7qB,IAAmB+qB,iBAEmBF,EACtC7qB,IAAmBgrB,mtBC/DrB,IA0BeC,EA1BK/W,4BAAHzoB,IAYA,SAAA9G,GAAA,OAAAA,EAAGgH,MAAkBoe,YAAY,IAG3B,SAAAhc,GAAA,OAAAA,EAAGpC,MAAkBC,YAChB,SAAAgI,GAAA,OAAAA,EAAGjI,MAAkB+d,aAAa,0nBCd9D,IAAMld,EAAQhB,UAAOc,IAAV4+B,KAKLC,EAAQ3/B,UAAOc,IAAVL,KAMLm/B,EAAQ5/B,UAAOyH,EAAV7G,KAOLi/B,EAAW7/B,UAAO2uB,IAAV5tB,KAcC++B,EATC,kBACdjW,EAAA71B,EAAA4N,cAACZ,EAAD,KACE6oB,EAAA71B,EAAA4N,cAAC+9B,EAAD,KACE9V,EAAA71B,EAAA4N,cAACg+B,EAAD,6DACA/V,EAAA71B,EAAA4N,cAACi+B,EAAD,CAAU1T,IAAK4T,yECZNC,8LAVX,IACMjjB,EADc,IAAIkjB,gBAAgBv0B,OAAO0R,SAAS8iB,QAC/BrwC,IAAI,QACzBktB,GAAMrB,YAAMqB,oCAIhB,OAAO,YARiBjQ,IAAMktB,u4BCOlC,IAoDemG,EArCKngC,kBAfE,SAAA7G,GAAkD,IAA/C+yB,EAA+C/yB,EAA/C+yB,UAAWljB,EAAoC7P,EAApC6P,SAAa9I,EAAuBrP,OAAAspC,EAAA,EAAAtpC,CAAAsI,EAAA,0BAChEinC,EAAgB,GAAA7tC,OAAM25B,EAAN,aAChBmU,EAAgB,GAAA9tC,OAAM25B,EAAN,aACtB,OACErC,EAAA71B,EAAA4N,cAAC0+B,EAAAtsC,EAADnD,OAAAoE,OAAA,CACEsrC,gBAAiBrU,EACjBmU,iBAAkBA,EAClBnU,UAAWkU,GACPlgC,GAEH8I,IAKahJ,CAAHwgC,+gECzBTC,GAAUC,QAAVD,MAEFE,GAAc3gC,kBAAO4gC,gBAAP5gC,CAAH6gC,KAMW,SAAA3gC,GAAK,OAAIA,EAAMC,MAAMmI,QAAQ,KAKnDw4B,GAAa9gC,kBAAO2wB,YAAP3wB,CAAH+gC,KAUZH,iBAQEtS,GAAetuB,kBAAOktB,SAAPltB,CAAHghC,MAMZC,GAAcjhC,UAAOc,IAAVogC,MAMXC,GAAYnhC,UAAOc,IAAVG,KACJ,SAAA9H,GAAA,OAAAA,EAAGgH,MAAkBihC,OAAO,IAM3B,SAAA7+B,GAAA,OAAAA,EAAGpC,MAAkBihC,OAAO,KAOlCC,GAAcrhC,UAAO2uB,IAAVrtB,MAMXggC,GAAethC,UAAO42B,GAAV90B,IACiB,SAAA5B,GAAK,OAAIA,EAAMC,MAAMC,aAMlDmhC,GAAWvhC,UAAOyH,EAAVzF,IACqB,SAAA9B,GAAK,OAAIA,EAAMC,MAAMC,aAsBlDohC,GAfaxhC,UAAOie,OAAV9b,IAUY,SAAAjC,GAAK,OAAIA,EAAMC,MAAMmI,QAAQ,KAKzBkY,cAAc,KAwE/BihB,eArEb,SAAAA,EAAYvhC,GAAO,IAAAq4B,EAAA,OAAA1nC,OAAA2nC,EAAA,EAAA3nC,CAAAqjC,KAAAuN,IACjBlJ,EAAA1nC,OAAA6nC,EAAA,EAAA7nC,CAAAqjC,KAAArjC,OAAA8nC,EAAA,EAAA9nC,CAAA4wC,GAAA7I,KAAA1E,KAAMh0B,KAKRwhC,SAAW,SAAA5lC,GACTy8B,EAAK3C,SAAS,CAAE95B,QAAO0B,OAAO,KAPb+6B,EAUnBoJ,SAAW,SAAAC,GACT,GAAgC,IAA5BrJ,EAAKz4B,MAAMhE,MAAMpM,OACnB,OAAO6oC,EAAK3C,SAAS,CAAEp4B,OAAO,IAEhC+6B,EAAKsJ,cAAcD,IAdFrJ,EAiBnBsJ,cAAgB,SAAAD,GAAQ,IAAAnJ,EACaF,EAAKr4B,MAAhC4hC,EADcrJ,EACdqJ,QAASD,EADKpJ,EACLoJ,cACT/lC,EAAUy8B,EAAKz4B,MAAfhE,MACM,KAAVA,IACJgmC,EAAQF,GACRC,EAAc/lC,KApBdy8B,EAAKz4B,MAAQ,CAAEhE,MAAO,GAAI0B,OAAO,GACjC+6B,EAAKsJ,cAAgBtJ,EAAKsJ,cAAc9I,KAAnBloC,OAAAmoC,EAAA,EAAAnoC,CAAA0nC,IAHJA,wEAyBV,IAAAwJ,EAAA7N,KACD12B,EAAQ02B,KAAKp0B,MAAMtC,MACvBqsB,EAAA71B,EAAA4N,cAACu/B,GAAD,KACEtX,EAAA71B,EAAA4N,cAAC6+B,GAAD,MADF,mCAIE,KACJ,OACE5W,EAAA71B,EAAA4N,cAACk/B,GAAD,KACEjX,EAAA71B,EAAA4N,cAAC0/B,GAAD,2BACAzX,EAAA71B,EAAA4N,cAACy/B,GAAD,CAAalV,IAAK6V,IAAK5V,IAAI,KAC3BvC,EAAA71B,EAAA4N,cAAC++B,GAAD,CACE16B,SAAU,SAAA1I,GAAC,OAAIwkC,EAAKL,SAASnkC,EAAEs6B,OAAO97B,QACtCsK,YAAY,2BACZ47B,UAAU,cAEXzkC,EACDqsB,EAAA71B,EAAA4N,cAACq/B,GAAD,KACEpX,EAAA71B,EAAA4N,cAAC0sB,GAAD,CACE5kB,QAAS,kBAAMq4B,EAAKJ,SAAS,YAC7B3gB,OAAO,eAFT,kBAMA6I,EAAA71B,EAAA4N,cAAC0sB,GAAD,CAAc5kB,QAAS,kBAAMq4B,EAAKJ,SAAS,iBAA3C,uBAIF9X,EAAA71B,EAAA4N,cAAC2/B,GAAD,sEACiE,IAC/D1X,EAAA71B,EAAA4N,cAAC4/B,GAAD,CACEv1B,KAAM,+CACN4rB,OAAO,SACPqK,IAAI,uBAHN,cAFF,aAtDoBp1B,IAAMktB,oBC7F5BmI,eACJ,SAAAA,EAAYjiC,GAAO,IAAAq4B,EAAA,OAAA1nC,OAAA2nC,EAAA,EAAA3nC,CAAAqjC,KAAAiO,IACjB5J,EAAA1nC,OAAA6nC,EAAA,EAAA7nC,CAAAqjC,KAAArjC,OAAA8nC,EAAA,EAAA9nC,CAAAsxC,GAAAvJ,KAAA1E,KAAMh0B,KACDJ,MAAQ,CAAE8hC,KAAM,WACrBrJ,EAAKuJ,QAAUvJ,EAAKuJ,QAAQ/I,KAAbloC,OAAAmoC,EAAA,EAAAnoC,CAAA0nC,IACfA,EAAK6J,SAAW7J,EAAK6J,SAASrJ,KAAdloC,OAAAmoC,EAAA,EAAAnoC,CAAA0nC,IAJCA,uEAOXqJ,GACN,GAAa,YAATA,GAA+B,gBAATA,EACxB,MAAM,IAAIjrC,MAAM,4BAClBu9B,KAAK0B,SAAS,CAAEgM,0CAGT91B,GAAM,IACL3E,EAAiB2E,EAAK+1B,cAAtB16B,aACAy6B,EAAS1N,KAAKp0B,MAAd8hC,KAFKnJ,EAGmBvE,KAAKh0B,MAA7BmiC,EAHK5J,EAGL4J,QAAS1Y,EAHJ8O,EAGI9O,WACXvM,EAAQ,YAAA7qB,OAAe4U,EAAf,KAAA5U,OAA+BqvC,GAC7CjY,IACA0Y,EAAQ1xC,KAAKysB,oCAGN,IAAA2kB,EAAA7N,KACP,OACErK,EAAA71B,EAAA4N,cAAC0gC,EAAA,EAAD,CAAUC,SAAUV,KAAeW,YAAatO,KAAKkO,UAClD,SAAAK,GAIC,OACE5Y,EAAA71B,EAAA4N,cAAC8gC,GAAD7xC,OAAAoE,OAAA,CACE4sC,cALkB,SAAA/lC,GAAK,OACzB2mC,EAAoB,CAAEn7B,UAAW,CAAExL,YAKjCgmC,QAASC,EAAKD,SACVC,EAAK7hC,iBAlCc4M,IAAMktB,WAmD5B2I,GAR4B,SAAAziC,GAAK,OAC9C2pB,EAAA71B,EAAA4N,cAACghC,EAAA,EAAD,CACEC,OAAQ,SAAA1pC,GAAA,IAAGkpC,EAAHlpC,EAAGkpC,QAAH,OACNxY,EAAA71B,EAAA4N,cAACkhC,GAADjyC,OAAAoE,OAAA,CAAwBotC,QAASA,GAAaniC,gmBC1CpD,IAAM6iC,GAAe/iC,kBAAO8wB,cAAP9wB,CAAHgjC,MAIZ1U,GAAetuB,kBAAOktB,SAAPltB,CAAHijC,MAMZC,GAAqBljC,kBAAOktB,SAAPltB,CAAHmjC,KACb,SAAAhqC,GAAA,OAAAA,EAAGgH,MAAkBoe,YAAY,KAWtC0iB,GAAcjhC,UAAOc,IAAVsiC,MA0BFC,GApBM,SAAA9gC,GAAA,IAAGonB,EAAHpnB,EAAGonB,WAAH,OACnBE,EAAA71B,EAAA4N,cAAA,WACEioB,EAAA71B,EAAA4N,cAAC6tB,EAAA,YAAD,0BACA5F,EAAA71B,EAAA4N,cAAC6tB,EAAA,UAAD,KACE5F,EAAA71B,EAAA4N,cAAC6tB,EAAA,cAAD,CACE6T,MAAO,CAAEjX,MAAO,SAChBhmB,YAAY,6BAGhBwjB,EAAA71B,EAAA4N,cAACmhC,GAAD,KACElZ,EAAA71B,EAAA4N,cAAC2hC,GAAD,KACE1Z,EAAA71B,EAAA4N,cAACshC,GAAD,CAAoBx5B,QAAS,kBAAMigB,MAAnC,UAGAE,EAAA71B,EAAA4N,cAAC4hC,GAAD,iOClDD,IAAMllB,GAAUte,UAAOc,IAAV2iC,0lBCGpB,IAAM1W,GAAiB/sB,UAAOgtB,SAAV0W,KACE,SAAAvqC,GAAA,OAAAA,EAAGgH,MAAkB+d,aAAa,KAgBlD4Y,GAAU92B,UAAOyH,EAAVk8B,MAqCEC,GAzBM,SAAArhC,GAAuC,IAApCshC,EAAoCthC,EAApCshC,aAAcC,EAAsBvhC,EAAtBuhC,gBAAsBlgC,EACpCC,mBAASggC,EAAeA,EAAavZ,KAAK,MAAQ,IADdxmB,EAAAjT,OAAA6gC,EAAA,EAAA7gC,CAAA+S,EAAA,GACnDlR,EADmDoR,EAAA,GAC9CigC,EAD8CjgC,EAAA,GAc1D,OACE+lB,EAAA71B,EAAA4N,cAAC0c,GAAD,KACEuL,EAAA71B,EAAA4N,cAACk1B,GAAD,yCAEEjN,EAAA71B,EAAA4N,cAACoiC,GAAA,EAAD,CAAaC,YAhBC,WAClBH,EAAgB,MAChBC,EAAO,QAgBLla,EAAA71B,EAAA4N,cAACmrB,GAAD,CAAgB9mB,SAbG,SAAA1I,GACrB,IAAM2mC,EAAW3mC,EAAEs6B,OAAO97B,MACpBooC,EAAUD,EAASx0C,OAASw0C,EAASxmC,OAAOC,MAAM,OAAS,KACjEomC,EAAOG,GACPJ,EAAgBK,IAS4BC,KAAK,IAAIroC,MAAOrJ,gMChDhE,IAAM2xC,GAAYrkC,UAAOkC,KAAVoiC,MAITC,GAAmBvkC,kBAAOwkC,aAAPxkC,CAAHykC,MAkCPC,GA9BG,SAAAvrC,GAAmC,IAAhCwrC,EAAgCxrC,EAAhCwrC,WAAYC,EAAoBzrC,EAApByrC,cACzBC,EACJF,GAAcA,EAAWE,UAAYF,EAAWE,UAAY,GACxDC,EAAUH,GAAcA,EAAWG,QAAUH,EAAWG,QAAU,GAIlEC,EAAQ,IAAIl1B,KAClB,OACEga,EAAA71B,EAAA4N,cAAC0c,GAAD,KACEuL,EAAA71B,EAAA4N,cAAC6tB,EAAA,WAAD,CACEuV,UAAW,KACXC,QAASF,EACTG,UAAW,OACXj/B,SAVe,SAAA4+B,GAAS,OAAID,EAAc,CAAEC,YAAWC,aAWvD/oC,MAAO8oC,IAEThb,EAAA71B,EAAA4N,cAACyiC,GAAD,UACAxa,EAAA71B,EAAA4N,cAAC2iC,GAAD,CACES,UAAW,KACXC,QAASF,EACTG,UAAW,OACXj/B,SAjBa,SAAA6+B,GAAO,OAAIF,EAAc,CAAEC,YAAWC,aAkBnD/oC,MAAO+oC,IAETjb,EAAA71B,EAAA4N,cAACoiC,GAAA,EAAD,CAAaC,YAnBG,kBAAMW,EAAc,opBCb1C,IAAM/jC,GAAYb,UAAOc,IAAVqkC,MAKTC,GAAgBplC,kBAAOse,GAAPte,CAAHqlC,MAQb1E,GAAc3gC,kBAAOmB,YAAPnB,CAAHslC,KAKT,SAAAnsC,GAAA,IAAGosC,EAAHpsC,EAAGosC,QAASplC,EAAZhH,EAAYgH,MAAZ,OACAolC,EAAUplC,EAAMihC,OAAO,GAAOjhC,EAAMmI,QAAQ,KAI9C5H,GAAmBV,kBAAOW,KAAPX,CAAHwlC,MAKhB3O,GAAc72B,UAAOyH,EAAVg+B,MAiEFC,GA7DQ,SAAAnjC,GAOjB,IANJojC,EAMIpjC,EANJojC,SACAC,EAKIrjC,EALJqjC,YACAC,EAIItjC,EAJJsjC,cACAC,EAGIvjC,EAHJujC,iBACAC,EAEIxjC,EAFJwjC,cACAC,EACIzjC,EADJyjC,iBAEMC,EAAWN,GAAYA,EAASM,SAAWN,EAASM,SAAW,GAC/DC,EAAWP,GAAYA,EAASO,SAAWP,EAASO,SAAW,GAuBrE,OACErc,EAAA71B,EAAA4N,cAACwjC,GAAD,KACEvb,EAAA71B,EAAA4N,cAACf,GAAD,KACEgpB,EAAA71B,EAAA4N,cAACi1B,GAAD,qBACAhN,EAAA71B,EAAA4N,cAACukC,GAAD,CACEngC,IAAK,EACLC,SA3BY,SAAA1I,GAClB,IAAMxB,EAAQwB,EAAEs6B,OAAO97B,MACvB+pC,EAAiBl1B,OAAO7U,GAAS,GACjCiqC,EAAiBp1B,OAAOs1B,IAAat1B,OAAOs1B,GAAYt1B,OAAO7U,IAC/D6pC,EAAY,CACVK,SAAUlqC,EAAQ6U,OAAO7U,GAAS,KAClCmqC,SAAUA,GAAsB,QAsB5B7kC,KAAK,SACLtF,MAAOkqC,EACPV,QAASM,IAEXhc,EAAA71B,EAAA4N,cAAClB,GAAD,aAEFmpB,EAAA71B,EAAA4N,cAACf,GAAD,KACEgpB,EAAA71B,EAAA4N,cAACi1B,GAAD,kBACAhN,EAAA71B,EAAA4N,cAACukC,GAAD,CACEngC,IAAK,EACLC,SA5BY,SAAA1I,GAClB,IAAMxB,EAAQwB,EAAEs6B,OAAO97B,MACvBiqC,EACEp1B,OAAO7U,GAAS,GAAMA,GAAS6U,OAAO7U,GAAS6U,OAAOq1B,IAExDL,EAAY,CACVK,SAAUA,GAAsB,KAChCC,SAAUnqC,EAAQ6U,OAAO7U,GAAS,QAsB9BsF,KAAK,SACLtF,MAAOmqC,EACPX,QAASQ,IAEXlc,EAAA71B,EAAA4N,cAAClB,GAAD,aAEFmpB,EAAA71B,EAAA4N,cAACoiC,GAAA,EAAD,CAAaC,YAzBG,kBAAM2B,EAAY,0jBClEhCQ,GAAiB1F,QAAjB0F,MAAOC,GAAU3F,QAAV2F,MAETC,GAAoBtmC,UAAOc,IAAVylC,KAQN,SAAArmC,GAAK,OAAKA,EAAMgF,OAAS,iBAAmB,kBAGjD,SAAA/L,GAAA,OAAAA,EAAGgH,MAAkBoe,YAAY,KAIvCioB,GAAcxmC,kBAAOomC,GAAPpmC,CAAHymC,MAOXC,GAAc1mC,kBAAOqmC,GAAPrmC,CAAH2mC,MAmBFC,GAbK,SAAArkC,GAA2C,IAAxC2C,EAAwC3C,EAAxC2C,OAAQwO,EAAgCnR,EAAhCmR,MAAOmzB,EAAyBtkC,EAAzBskC,aAAc/6B,EAAWvJ,EAAXuJ,KAIlD,OACE+d,EAAA71B,EAAA4N,cAAC0kC,GAAD,CAAmBphC,OAAQA,EAAQwE,QAAS,kBAHZm9B,EAA/B3hC,EAA4C,GAAtBwO,KAIrBmW,EAAA71B,EAAA4N,cAAC4kC,GAAD,MACC9yB,EACA5H,EAAO+d,EAAA71B,EAAA4N,cAAC8kC,GAAD,MAAkB,iHCtChC,IAAMI,GAAoB9mC,UAAOc,IAAVimC,KACM,SAAA5tC,GAAA,OAAAA,EAAGgH,MAAkB+d,aAAa,KAkBhD8oB,GAfK,SAAAzkC,GAAuD,IAApD0kC,EAAoD1kC,EAApD0kC,QAASn7B,EAA2CvJ,EAA3CuJ,KAAM4H,EAAqCnR,EAArCmR,MAAOwzB,EAA8B3kC,EAA9B2kC,UAAWL,EAAmBtkC,EAAnBskC,aAChD3hC,EAASwO,IAAUwzB,EACzB,OACErd,EAAA71B,EAAA4N,cAACklC,GAAD,KACEjd,EAAA71B,EAAA4N,cAACulC,GAAD,CACEr7B,KAAMA,EACN5G,OAAQA,EACRwO,MAAOA,EACPmzB,aAAcA,IAEf3hC,GAAU+hC,oeCTjB,IAAM3Y,GAAetuB,kBAAOktB,SAAPltB,CAAHonC,MAMZlE,GAAqBljC,kBAAOktB,SAAPltB,CAAHqnC,KACb,SAAAluC,GAAA,OAAAA,EAAGgH,MAAkBoe,YAAY,KAWtCmS,GAAkB1wB,kBAAO2wB,YAAP3wB,CAAHsnC,MAyFNC,GApFM,SAAAhlC,GAAoB,IAAjBonB,EAAiBpnB,EAAjBonB,WAEd6d,EADeC,qBAAW56B,MAA1BK,WACAs6B,iBACAE,EAAyCF,EAAzCE,aAAcC,EAA2BH,EAA3BG,gBAAiBC,EAAUJ,EAAVI,MAHAhkC,EAILC,mBAAS+jC,GAJJ9jC,EAAAjT,OAAA6gC,EAAA,EAAA7gC,CAAA+S,EAAA,GAIhCsjC,EAJgCpjC,EAAA,GAIrB+iC,EAJqB/iC,EAAA,GAAAI,EAKCL,mBAAS6jC,EAAa7D,cALvB1/B,EAAAtT,OAAA6gC,EAAA,EAAA7gC,CAAAqT,EAAA,GAKhC2/B,EALgC1/B,EAAA,GAKlB2/B,EALkB3/B,EAAA,GAAA0tB,EAMPhuB,mBAAS6jC,EAAa/B,UANf7T,EAAAjhC,OAAA6gC,EAAA,EAAA7gC,CAAAghC,EAAA,GAMhC8T,EANgC7T,EAAA,GAMtB8T,EANsB9T,EAAA,GAAAE,EAOHnuB,mBAAS6jC,EAAa/C,YAPnB1S,EAAAphC,OAAA6gC,EAAA,EAAA7gC,CAAAmhC,EAAA,GAOhC2S,EAPgC1S,EAAA,GAOpB2S,EAPoB3S,EAAA,GAAAE,EAQGtuB,oBAAS,GARZuuB,EAAAvhC,OAAA6gC,EAAA,EAAA7gC,CAAAshC,EAAA,GAQhC0T,EARgCzT,EAAA,GAQjB0T,EARiB1T,EAAA,GAAAE,EASGzuB,oBAAS,GATZ0uB,EAAA1hC,OAAA6gC,EAAA,EAAA7gC,CAAAyhC,EAAA,GAShCyT,EATgCxT,EAAA,GASjByT,EATiBzT,EAAA,GAsBjCuI,EAAS,WAVb6M,EAAgB,CACd9D,aAAcA,EAAYhzC,OAAAmlC,GAAA,EAAAnlC,CAAO,IAAI0F,IAAIstC,IAAiB,KAC1D8B,UACEA,GAAcA,EAASO,UAAaP,EAASM,SAEzCN,EADA,KAENhB,eAMFhb,KAGF,OACEE,EAAA71B,EAAA4N,cAAA,WACEioB,EAAA71B,EAAA4N,cAAC6tB,EAAA,YAAD,uBACA5F,EAAA71B,EAAA4N,cAAC8uB,GAAD,KACE7G,EAAA71B,EAAA4N,cAACimC,GAAD,CACEZ,QACEpd,EAAA71B,EAAA4N,cAACkmC,GAAD,CACEjE,aAAcA,EACdC,gBAAiBA,IAGrBh4B,KAAM+3B,EACNnwB,MAAM,gBACNwzB,UAAWA,EACXL,aAAcA,IAEhBhd,EAAA71B,EAAA4N,cAACimC,GAAD,CACEZ,QACEpd,EAAA71B,EAAA4N,cAACmmC,GAAD,CACEpC,SAAUA,EACVC,YAAaA,EACbC,cAAeA,EACfC,iBAAkBA,EAClBC,cAAeA,EACfC,iBAAkBA,IAGtBl6B,KAAM65B,EACNjyB,MAAM,WACNwzB,UAAWA,EACXL,aAAcA,IAEhBhd,EAAA71B,EAAA4N,cAACimC,GAAD,CACEZ,QACEpd,EAAA71B,EAAA4N,cAAComC,GAAD,CAAWrD,WAAYA,EAAYC,cAAeA,IAEpD94B,KAAM64B,EACNjxB,MAAM,aACNwzB,UAAWA,EACXL,aAAcA,KAGlBhd,EAAA71B,EAAA4N,cAAC6tB,EAAA,YAAD,KACE5F,EAAA71B,EAAA4N,cAACqmC,GAAD,CAAoBv+B,QAAS,kBAAMigB,MAAnC,UAGAE,EAAA71B,EAAA4N,cAACsmC,GAAD,CACElgC,SAAU69B,GAAiBE,EAC3Br8B,QAAS,kBAAMoxB,MAFjB,oBC/EOqN,GAfQ,SAAAhvC,GAAA,IAAGwwB,EAAHxwB,EAAGwwB,WAAH,OACrBE,EAAA71B,EAAA4N,cAAA,WACEioB,EAAA71B,EAAA4N,cAAC6tB,EAAA,YAAD,qBACA5F,EAAA71B,EAAA4N,cAAC6tB,EAAA,UAAD,KACE5F,EAAA71B,EAAA4N,cAAC6tB,EAAA,UAAD,MACA5F,EAAA71B,EAAA4N,cAACwmC,GAAA,EAAD,MACAve,EAAA71B,EAAA4N,cAACwmC,GAAA,EAAD,OAEFve,EAAA71B,EAAA4N,cAAC6tB,EAAA,YAAD,KACE5F,EAAA71B,EAAA4N,cAAC6tB,EAAA,YAAD,CAAa/lB,QAAS,kBAAMigB,MAA5B,UACAE,EAAA71B,EAAA4N,cAAC6tB,EAAA,OAAD,yBCKS4Y,GAxBM,SAAAlvC,GAAA,IAAGmvC,EAAHnvC,EAAGmvC,QAASC,EAAZpvC,EAAYovC,OAAZ,OACnB1e,EAAA71B,EAAA4N,cAACioB,EAAA71B,EAAMw0C,SAAP,KACE3e,EAAA71B,EAAA4N,cAAA,qBACAioB,EAAA71B,EAAA4N,cAAA,aACEioB,EAAA71B,EAAA4N,cAAA,SACEP,KAAK,QACLtF,MAAM,YACNskB,QAAqB,cAAZioB,EACTriC,SAAUsiC,EAAO,aALrB,aASA1e,EAAA71B,EAAA4N,cAAA,aACEioB,EAAA71B,EAAA4N,cAAA,SACEP,KAAK,QACLtF,MAAM,WACNskB,QAAqB,aAAZioB,EACTriC,SAAUsiC,EAAO,aALrB,cCYWE,GAxBI,SAAAtvC,GAAA,IAAGV,EAAHU,EAAGV,MAAO8vC,EAAVpvC,EAAUovC,OAAV,OACjB1e,EAAA71B,EAAA4N,cAACioB,EAAA71B,EAAMw0C,SAAP,KACE3e,EAAA71B,EAAA4N,cAAA,mBACAioB,EAAA71B,EAAA4N,cAAA,aACEioB,EAAA71B,EAAA4N,cAAA,SACEP,KAAK,QACLtF,MAAM,OACNskB,QAAmB,SAAV5nB,EACTwN,SAAUsiC,EAAO,WALrB,eASA1e,EAAA71B,EAAA4N,cAAA,aACEioB,EAAA71B,EAAA4N,cAAA,SACEP,KAAK,QACLtF,MAAM,UACNskB,QAAmB,YAAV5nB,EACTwN,SAAUsiC,EAAO,WALrB,mBCGWG,GAfC,SAAAvvC,GAAA,IAAGwvC,EAAHxvC,EAAGwvC,YAAaJ,EAAhBpvC,EAAgBovC,OAAhB,OACd1e,EAAA71B,EAAA4N,cAACioB,EAAA71B,EAAMw0C,SAAP,KACE3e,EAAA71B,EAAA4N,cAAA,sBACAioB,EAAA71B,EAAA4N,cAAA,aACEioB,EAAA71B,EAAA4N,cAAA,SACEP,KAAK,WACLtF,MAAM,cACNskB,QAASsoB,EACT1iC,SAAUsiC,EAAO,iBALrB,46BCFG,IAAMxF,GAAe/iC,kBAAO8wB,cAAP9wB,CAAH4oC,MAIZ//B,GAAU7I,UAAOc,IAAV+nC,MAQPva,GAAetuB,kBAAOktB,SAAPltB,CAAH8oC,MAMZ5F,GAAqBljC,kBAAOktB,SAAPltB,CAAH+oC,KACpB,SAAA5vC,GAAA,OAAAA,EAAGgH,MAAkBoe,YAAY,KAW/B4hB,GAAcngC,kBAAO2wB,YAAP3wB,CAAHgpC,mMCXxB,IAAMC,GAAgBp/B,KAAHq/B,MAmLJC,GA3JI,SAAAhwC,GAA2B,IAAxBwwB,EAAwBxwB,EAAxBwwB,WAEZyf,EADQ3B,qBAAW56B,MACGK,WAAtBk8B,UAFoCxlC,EAIlBC,mBAAgB,CACxC/F,OAAQ,CAAE/B,MAAO,QAAS2X,MAAO,SACjC21B,UAAW,aACX5wC,MAAO,OACPkwC,aAAa,EACbL,QAAS,YACTxsC,MAAO,0BAVmCgI,EAAAjT,OAAA6gC,EAAA,EAAA7gC,CAAA+S,EAAA,GAIrC9D,EAJqCgE,EAAA,GAI9B8xB,EAJ8B9xB,EAAA,GAatCwlC,EAAkB,SAAC/rC,GACvB,IAAMgsC,EAAiC,YAApBzpC,EAAMupC,UACnBvrC,EAASgC,EAAMhC,OAAO4V,MACxB81B,EAAY,CAAEztC,MAAO,GAAI2X,MAAO,IACpC,OAAQ5V,GACN,IAAK,QACH0rC,EAAYD,EACR,CAAExtC,MAAO,QAAS2X,MAAO,SACzB,CAAE3X,MAAO,kBAAmB2X,MAAO,SACvC,MACF,IAAK,MACH81B,EAAYD,EACR,CAAExtC,MAAO,MAAO2X,MAAO,OACvB,CAAE3X,MAAO,gBAAiB2X,MAAO,OACrC,MACF,IAAK,OACH81B,EAAYD,EACR,CAAExtC,MAAO,OAAQ2X,MAAO,QACxB,CAAE3X,MAAO,kBAAmB2X,MAAO,SAM3C,IAAMmkB,EAASt6B,EAAE4I,cACjByvB,EAAS,SAAAh7B,GAAC,OAAA/J,OAAAolC,EAAA,EAAAplC,CAAA,GAAU+J,EAAV,CAAayuC,UAAWxR,EAAO97B,MAAO+B,OAAQ0rC,OAGpDjB,EAAS,SAACkB,GACd,OAAO,SAAClsC,GACN,IAAMs6B,EAASt6B,EAAE4I,cACXpK,EAAwB,aAAhB87B,EAAOx2B,KAAsBw2B,EAAOxX,QAAUwX,EAAO97B,MACnE65B,EAAS,SAAAh7B,GAAC,OAAA/J,OAAAolC,EAAA,EAAAplC,CAAA,GAAU+J,EAAV/J,OAAAqlC,GAAA,EAAArlC,CAAA,GAAc44C,EAAQ1tC,QAI9B2tC,EAAqB,SAACC,GAC1B/T,EAAS,SAAAh7B,GAAC,OAAA/J,OAAAolC,EAAA,EAAAplC,CAAA,GAAU+J,EAAV,CAAakD,OAAQ6rC,OAG3BN,EAAgC,eAApBvpC,EAAMupC,UAClB90C,EAAyB80C,EAC3B,CACE,CAAEttC,MAAO,QAAS2X,MAAO,SACzB,CAAE3X,MAAO,MAAO2X,MAAO,OACvB,CAAE3X,MAAO,OAAQ2X,MAAO,SAE1B,CACE,CAAE3X,MAAO,kBAAmB2X,MAAO,SACnC,CAAE3X,MAAO,gBAAiB2X,MAAO,QAGjC0iB,EAAQ,CACZA,MAAO,CACLgT,UAAWA,EACXtrC,OAAQgC,EAAMhC,OAAO/B,MACrBxH,QAAS,CACPq1C,UAA6B,cAAlB9pC,EAAMwoC,QACjBuB,UAAW/pC,EAAM6oC,YACjBmB,WAA4B,SAAhBhqC,EAAMrH,MAClBsxC,cAAc,KAKpB,OACElgB,EAAA71B,EAAA4N,cAAC0gC,EAAA,EAAD,CAAUC,SAAU0G,GAAe3hC,UAAW8uB,GAC3C,SAAA4T,GAAY,OACXngB,EAAA71B,EAAA4N,cAACioB,EAAA71B,EAAMw0C,SAAP,KACE3e,EAAA71B,EAAA4N,cAAC6tB,EAAA,YAAD,qCACA5F,EAAA71B,EAAA4N,cAACqoC,GAAD,KACEpgB,EAAA71B,EAAA4N,cAAC6tB,EAAA,YAAD,KACE5F,EAAA71B,EAAA4N,cAAC6tB,EAAA,cAAD,CACEvD,UAA+B,eAApBpsB,EAAMupC,UAA6B,SAAW,GACzD3/B,QAAS4/B,EACTvtC,MAAO,cAHT,cAOA8tB,EAAA71B,EAAA4N,cAAC6tB,EAAA,cAAD,CACEvD,UAA+B,YAApBpsB,EAAMupC,UAA0B,SAAW,GACtD3/B,QAAS4/B,EACTvtC,MAAO,WAHT,YASF8tB,EAAA71B,EAAA4N,cAACiH,GAAD,KACEghB,EAAA71B,EAAA4N,cAAA,yBACAioB,EAAA71B,EAAA4N,cAACwmC,GAAA,EAAD,CACErsC,MAAO+D,EAAMhC,OACbvJ,QAASA,EACT0R,SAAUyjC,EACVQ,aAAcpqC,EAAMhC,UAIxB+rB,EAAA71B,EAAA4N,cAACiH,GAAD,KACGwgC,GACCxf,EAAA71B,EAAA4N,cAACuoC,GAAD,CAAc7B,QAASxoC,EAAMwoC,QAASC,OAAQA,KAIlD1e,EAAA71B,EAAA4N,cAACiH,GAAD,KACGwgC,GAAaxf,EAAA71B,EAAA4N,cAACwoC,GAAD,CAAY3xC,MAAOqH,EAAMrH,MAAO8vC,OAAQA,KAGxD1e,EAAA71B,EAAA4N,cAACiH,GAAD,KACGwgC,GACCxf,EAAA71B,EAAA4N,cAACyoC,GAAD,CAAS1B,YAAa7oC,EAAM6oC,YAAaJ,OAAQA,KAIrD1e,EAAA71B,EAAA4N,cAACiH,GAAD,KACEghB,EAAA71B,EAAA4N,cAAC6tB,EAAA,cAAD,CAAe1zB,MAAO+D,EAAMhE,MAAOmK,SAAUsiC,EAAO,aAGxD1e,EAAA71B,EAAA4N,cAAC0oC,GAAD,KACEzgB,EAAA71B,EAAA4N,cAAC2oC,GAAD,CACE7gC,QAAS,WACPigB,MAFJ,UAOAE,EAAA71B,EAAA4N,cAAC4oC,GAAD,CACE1uC,MAAM,SACN4N,QAAS,WACPsgC,IACArgB,MAJJ,k/BClLZ,IAAM8gB,GAAuB5gC,KAAH6gC,MAMpB5J,GAAa9gC,kBAAO2wB,YAAP3wB,CAAH2qC,MAQV5H,GAAe/iC,kBAAO8wB,cAAP9wB,CAAH4qC,MAIZ3J,GAAcjhC,UAAOc,IAAV+pC,MAMXC,GAAgB9qC,kBAAOktB,SAAPltB,CAAH+qC,MAabC,GAAehrC,kBAAOktB,SAAPltB,CAAHirC,MA+CHC,GAxCW,SAAA/xC,GAAA,IAAGwwB,EAAHxwB,EAAGwwB,WAAH,OACxBE,EAAA71B,EAAA4N,cAAC0gC,EAAA,EAAD,CAAUC,SAAUkI,IACjB,SAAAU,GAAyB,OACxBthB,EAAA71B,EAAA4N,cAACsoB,EAAA,SAAD,KACEL,EAAA71B,EAAA4N,cAAC6tB,EAAA,YAAD,qCACA5F,EAAA71B,EAAA4N,cAACwpC,GAAD,KACEvhB,EAAA71B,EAAA4N,cAAA,4JAKAioB,EAAA71B,EAAA4N,cAAA,gIAKFioB,EAAA71B,EAAA4N,cAACypC,GAAD,KACExhB,EAAA71B,EAAA4N,cAAC0pC,GAAD,KACEzhB,EAAA71B,EAAA4N,cAACkpC,GAAD,CACEphC,QAAS,WACPyhC,IACAvvB,gBAHJ,aAQAiO,EAAA71B,EAAA4N,cAACopC,GAAD,CACEthC,QAAS,WACPigB,MAFJ,uCCrEN4hB,GAAoB,SAAApyC,GAA+B,IAA5BwwB,EAA4BxwB,EAA5BwwB,WAA4B6hB,EACX/D,qBAC1C56B,MACAK,WAFMwc,EAD+C8hB,EAC/C9hB,QAASvyB,EADsCq0C,EACtCr0C,OAAQm4B,EAD8Bkc,EAC9Blc,eAIzB,OACEzF,EAAA71B,EAAA4N,cAAC6vB,GAAA,EAAD,CACE/H,QAASA,EACT2F,OAAO,EACP1F,WAAYA,EACZxyB,OAAQA,EACRm4B,eAAgBA,KAKtBic,GAAkBE,YAAc5+B,KAEjB0+B,4DC+BAG,GAhCQ,SAACvkC,EAAsB8iB,GAA0B,IAAA0hB,EACrCvkC,aAAYm7B,MADyBqJ,EAAA/6C,OAAA6gC,EAAA,EAAA7gC,CAAA86C,EAAA,GAC/DE,EAD+DD,EAAA,GACvDE,EADuDF,EAAA,GAEhEG,EAA4C,SAChDC,EACAF,GAEA,IAAMG,EAAaH,EAAehgC,KAC5BA,EAA+BkgC,EAAME,UAAU,CACnDC,MAAOviC,KACPtC,UAAW,CAAEH,kBAEF,OAAT2E,GAAiBmgC,IACnBngC,EAAK4d,QAAQhY,UAAYu6B,EAAWG,cAAc16B,WACpDs6B,EAAMK,WAAW,CAAEF,MAAOviC,KAAkBkC,UAa9C,MAAO,CACLiwB,YAZkB,SAACuQ,GAAD,OAClBT,EAAO,CACLvkC,UAAW,CACT8uB,MAAO,CACLjvB,eACA8iB,gBACAI,QAASiiB,IAGb/D,OAAQwD,KAIVD,mBC9BES,GAAW,SAAC5lC,GAChB,IAAM9U,EAAI6gB,SAAS/L,EAAK,IACxB,OAAIiK,OAAO1K,MAAMrU,GAAW,EACrBA,GAGH26C,GAAiB,SAACjvC,GAAD,OAXJ1L,EAYP6gB,SAASnV,EAAE4I,cAAcpK,MAAO,IAXtC6U,OAAO1K,MAAMrU,GAAW,GACrB6B,KAAKS,IAAItC,GAAGsK,WAFH,IAACtK,GAkCb46C,GAAgB,SAAC7xC,GAAD,OAAoB2xC,GAAS3xC,EAAE5I,mBAAqB,GAEpE06C,GAAkB,SAACriB,GACvB,IAAMsiB,EAAgBtiB,EAAQr3B,OAAO,SAAAm5B,GAAG,OAAIA,EAAI9L,UAC1CusB,EAAaD,EAAcj9C,OAAS,EACpCm9C,EAAiBF,EAAcG,MAAML,IAC3C,OAAOG,GAAcC,GA2DRE,GAlDa,SAAAxqC,GAAwC,IANpC8nB,EAOxBsL,EA1BgB,SAAAx8B,GAAsD,IAAnD6zC,EAAmD7zC,EAAnD6zC,cAAejjC,EAAoC5Q,EAApC4Q,SAElCkjC,EAASD,EAAc99C,IADV,SAAC0L,GAAD,OAXS,SAC5BmP,EACA4I,GAEA,IAAM9gB,EAAI8gB,EAAO9B,KAAO9G,EAAS4I,OAAS5I,EAAS/X,kBAAoB,EAGvE,MAAO,CAAE2gB,SAAQ0N,QAFD1N,EAAO9B,KAAO9G,EAAS4I,OAEb3gB,kBADAH,EAAEsK,YAKY+wC,CAAsBnjC,EAAUnP,KAElEuyC,EAAe,GAIrB,OAHAF,EAAOz8C,QAAQ,SAAAoK,GACbuyC,EAAavyC,EAAE+X,OAAO9B,IAAMjW,IAEvBuyC,EAmBcC,CAAgB,CAAEJ,cAD2BzqC,EAArCyqC,cACyBjjC,SADYxH,EAAtBwH,WAAsBnG,EAExCC,mBAAuB8xB,GAFiB7xB,EAAAjT,OAAA6gC,EAAA,EAAA7gC,CAAA+S,EAAA,GAE3D9D,EAF2DgE,EAAA,GAEpD8xB,EAFoD9xB,EAAA,GAG5DupC,EAAex8C,OAAOoC,OAAO6M,GAC7BwtC,EAAwB1f,sBAC5B,SAACpd,GAAD,OAAsB,SAACjT,GACrB,IAAMvL,EAAoBw6C,GAAejvC,GACzC,OAAOq4B,EAAS,SAAAuD,GAAS,OAAAtoC,OAAAolC,EAAA,EAAAplC,CAAA,GACpBsoC,EADoBtoC,OAAAqlC,GAAA,EAAArlC,CAAA,GAEtB2f,EAFsB3f,OAAAolC,EAAA,EAAAplC,CAAA,GAENsoC,EAAU3oB,GAFJ,CAEexe,4BAG1C,IAEIu7C,EAA2B3f,sBAC/B,SAACpd,GAAD,OAAsB,kBACpBolB,EAAS,SAAAuD,GACP,IAAMqU,EAAarU,EAAU3oB,GACvB6P,GAAWmtB,EAAWntB,QACtBruB,EAAoBw7C,EAAWntB,QACjC,IACAmtB,EAAWx7C,kBACf,OAAOnB,OAAAolC,EAAA,EAAAplC,CAAA,GACFsoC,EADLtoC,OAAAqlC,GAAA,EAAArlC,CAAA,GAEG2f,EAFH3f,OAAAolC,EAAA,EAAAplC,CAAA,GAEmB28C,EAFnB,CAE+BntB,UAASruB,4BAG5C,IAGIs6C,EAAez7C,OAAOpB,KAAKqQ,GAC9B5Q,IAAI,SAAAS,GAAG,OAAImQ,EAAMnQ,KACjBqD,OACC,SAAAy6C,GAAQ,MAAmC,YAA/BA,EAAS96B,OAAOhC,YAA4B88B,EAASptB,UAElEnxB,IAAI,SAAAu+C,GAAQ,MAAK,CAChB9yC,GAAI8yC,EAAS96B,OAAO9B,GAAG1U,WACvBnK,kBAAmBu6C,GAASkB,EAASz7C,sBAEtCgB,OAAO,SAAAojC,GAAK,OAAIA,EAAMpkC,kBAAoB,IAC7C,MAAO,CACL8N,QACAwtC,wBACAC,2BACAjB,eACAoB,eAnD4BrjB,EAmDUgjB,EAlDxChjB,EACGr3B,OAAO,SAAA4H,GAAC,OAAIA,EAAEylB,UACdnxB,IAAI,SAAAi9B,GAAG,OAAIogB,GAASpgB,EAAIn6B,qBACxB+B,OAAO,SAAC45C,EAAKC,GAAN,OAAcD,EAAMC,GAAK,IAgDjCC,aAAcnB,GAAgBW,2QC9GlC,IAYeS,GAZW9tC,kBAAO02B,cAAYlW,cAAc,UAAjCxgB,CAAH+tC,qmDCgBvB,IAAMC,GAAYhuC,UAAOc,IAAVmtC,KAGJ,SAAA90C,GAAA,OAAAA,EAAGgH,MAAkBihC,OAAO,KAGjCN,GAAa9gC,kBAAO2wB,YAAP3wB,CAAHkuC,MAUVltC,GAAQhB,UAAOc,IAAVqtC,MAGLC,GAAKpuC,UAAO42B,GAAVyX,MAOFluB,GAAiBngB,kBAAOogB,WAAPpgB,CAAHsuC,MAMdC,GAAkBvuC,kBAAOmB,YAAPnB,CAAHwuC,MAKfjuC,GAAgBP,kBAAOQ,UAAPR,CAAHyuC,MAqEbC,GAAkB1uC,kBAnDN,SAAAuC,GAaF,IAZd+N,EAYc/N,EAZd+N,QACAC,EAWchO,EAXdgO,SACAC,EAUcjO,EAVdiO,SACAC,EASclO,EATdkO,kBACA1d,EAQcwP,EARdxP,KACAf,EAOcuQ,EAPdvQ,kBACAquB,EAMc9d,EANd8d,QACAsuB,EAKcpsC,EALdosC,cACAC,EAIcrsC,EAJdqsC,aACA1iB,EAGc3pB,EAHd2pB,UACA2iB,EAEctsC,EAFdssC,aACAC,EACcvsC,EADdusC,gBAEM5V,EACJrP,EAAA71B,EAAA4N,cAAA,OAAKsqB,UAAWA,GACdrC,EAAA71B,EAAA4N,cAAA,aACEioB,EAAA71B,EAAA4N,cAACue,GAAD,CACEla,SAAU6oC,EACVzuB,QAASA,EACTrY,SAAU2mC,EACVI,SAAU,IAEZllB,EAAA71B,EAAA4N,cAAA,YAAO7O,IAET82B,EAAA71B,EAAA4N,cAAC2sC,GAAD,CACEltC,KAAK,SACLyE,KAAM,EACNE,IAAK,EACLjK,MAAO/J,EACPiU,SAAU4oC,EACV7mC,SAAU4mC,KAIhB,GAAID,EAAe,CACjB,IAAMK,EAAc3+B,aAClBC,EACAC,EACAC,EACAC,GAEF,OACEoZ,EAAA71B,EAAA4N,cAACrB,GAAD,CAAesE,QAASmqC,EAAalqC,UAAU,MAAMC,gBAAiB,GACnEm0B,GAIP,OAAOA,GAGel5B,CAAHivC,KACC,SAAA7mC,GAAA,OAAAA,EAAGiY,QACX,0BAA4B,gBASpC6uB,GAASlvC,UAAOmvC,OAAVC,MAGNC,GAAQrvC,UAAOkC,KAAVwX,MAIL41B,GAA0BtvC,kBAAO0uC,GAAP1uC,CAAH4Z,MAsBvB21B,GAAc,SAAA/mC,GAMP,IALX8H,EAKW9H,EALX8H,QACA08B,EAIWxkC,EAJXwkC,cACAv8B,EAGWjI,EAHXiI,kBACA1G,EAEWvB,EAFXuB,SACA4f,EACWnhB,EADXmhB,WAEQxiB,EAAiD4C,EAAjD5C,aAAc8iB,EAAmClgB,EAAnCkgB,cAAe/X,EAAoBnI,EAApBmI,gBAD1Bs9B,EAE6B9D,GACtCvkC,EACA8iB,GAFM8R,EAFGyT,EAEHzT,YAAa+P,EAFV0D,EAEU1D,eAIb2D,EAAmB3D,EAAnB2D,QAASjyC,EAAUsuC,EAAVtuC,MANNkyC,EAcP3C,GAAoB,CAAEC,gBAAejjC,aANvCjK,EARS4vC,EAQT5vC,MACA4tC,EATSgC,EASThC,cACAG,EAVS6B,EAUT7B,aACAvB,EAXSoD,EAWTpD,aACAgB,EAZSoC,EAYTpC,sBACAC,EAbSmC,EAaTnC,yBAEIoC,EAAY9+C,OAAOoC,OAAO6M,GAM1BksB,OACMhvB,IAAVQ,EACEqsB,EAAA71B,EAAA4N,cAACosC,GAAD,mDACE,KACA4B,EAAcH,EAAU5lB,EAAA71B,EAAA4N,cAACuc,GAAA,EAAD,MAAoB,QAClD,OACE0L,EAAA71B,EAAA4N,cAACiuC,GAAA77C,EAAD,KACE61B,EAAA71B,EAAA4N,cAACkuC,GAAD,KACEjmB,EAAA71B,EAAA4N,cAACmuC,GAAD,KACElmB,EAAA71B,EAAA4N,cAACwsC,GAAD,qBACCuB,EAAUzgD,IAAI,SAAAu+C,GACb,IAAMptB,EAAUotB,EAASptB,QACnB3L,EAAyC,YAA/B+4B,EAAS96B,OAAOhC,WAChC,OAAO+D,EACLmV,EAAA71B,EAAA4N,cAAC8sC,GAAD,CACEp+B,QAASA,EACTC,SAAU2B,EACV1B,SAAUi9B,EAAS96B,OAAO9B,GAC1BJ,kBAAmBA,EACnB9gB,IAAK89C,EAAS96B,OAAO9B,GACrB9d,KAAM06C,EAAS96B,OAAO5f,KACtBf,kBAAmBy7C,EAASz7C,kBAC5BquB,QAASotB,EAASptB,QAClBsuB,eAAgBj6B,EAChBk6B,cAAel6B,IAAY+4B,EAASptB,QACpCwuB,aAAcvB,EAAsBG,EAAS96B,OAAO9B,IACpDi+B,gBAAiBvB,EAAyBE,EAAS96B,OAAO9B,MAG5DgZ,EAAA71B,EAAA4N,cAAC0tC,GAAD,CACEh/B,QAASA,EACTC,SAAU2B,EACV1B,SAAUi9B,EAAS96B,OAAO9B,GAC1BJ,kBAAmBA,EACnB9gB,IAAK89C,EAAS96B,OAAO9B,GACrB9d,KAAM06C,EAAS96B,OAAO5f,KACtBf,kBAAmBy7C,EAASz7C,kBAC5BquB,QAASA,EACTsuB,eAAgBj6B,EAChBk6B,cAAel6B,IAAY2L,EAC3BwuB,aAAcvB,EAAsBG,EAAS96B,OAAO9B,IACpDi+B,gBAAiBvB,EAAyBE,EAAS96B,OAAO9B,QAIhEgZ,EAAA71B,EAAA4N,cAACytC,GAAD,KACExlB,EAAA71B,EAAA4N,cAACstC,GAAD,KAASxB,GADX,oBAGC1hB,GAEHnC,EAAA71B,EAAA4N,cAAC6tB,EAAA,YAAD,KACE5F,EAAA71B,EAAA4N,cAACouC,GAAD,CAAmBhoC,SAAUynC,EAAS/lC,QAASigB,GAA/C,UAGAE,EAAA71B,EAAA4N,cAAC6tB,EAAA,OAAD,CAAQznB,SAAUynC,IAAY5B,EAAcnkC,QA3DlC,WAChBqyB,EAAYuQ,GAAc/gC,KAAK,SAAApc,QACT6N,IAAhB7N,EAAO2c,MAAoB6d,QA0DxBimB,OA8BEK,GAtBU,SAAAnnC,GAAA,IAAG6gB,EAAH7gB,EAAG6gB,WAAH,OACvBE,EAAA71B,EAAA4N,cAACiL,GAAA,EAAkBqjC,SAAnB,KACG,SAAAzuB,GAA0C,IAAA0uB,EAAA1uB,EAAvCvU,WAMawc,QAJbpZ,EAFuC6/B,EAEvC7/B,QACA08B,EAHuCmD,EAGvCnD,cACAv8B,EAJuC0/B,EAIvC1/B,kBACA1G,EALuComC,EAKvCpmC,SAEF,OACE8f,EAAA71B,EAAA4N,cAACwuC,GAAD,CACE9/B,QAASA,EACT08B,cAAeA,EACfv8B,kBAAmBA,EACnB1G,SAAUA,EACV4f,WAAYA,6iBC1QtB,IAAM0mB,GAAUrwC,UAAOc,IAAVwvC,MAMPC,GAASvwC,kBAAOktB,SAAPltB,CAAHwwC,KAED,SAAAr3C,GAAA,OAAAA,EAAGgH,MAAkBoe,YAAY,KAUtC4hB,GAAcngC,kBAAO2wB,YAAP3wB,CAAHywC,MAiCFC,GAlBW,SAAAnuC,GAMb,IALXouC,EAKWpuC,EALXouC,aACA5hB,EAIWxsB,EAJXwsB,SACA6hB,EAGWruC,EAHXquC,UAGWC,EAAAtuC,EAFXuuC,mBAEW,IAAAD,EAFG,SAEHA,EAAAE,EAAAxuC,EADXyuC,oBACW,IAAAD,EADI,QACJA,EACX,OACElnB,EAAA71B,EAAA4N,cAACqvC,GAAD,KACGN,EACD9mB,EAAA71B,EAAA4N,cAACyuC,GAAD,KACExmB,EAAA71B,EAAA4N,cAAC2uC,GAAD,CAAQ7mC,QAASqlB,GAAW+hB,GAC5BjnB,EAAA71B,EAAA4N,cAAC6tB,EAAA,OAAD,CAAQ/lB,QAASknC,GAAYI,MCxBtBE,GAjBc,SAAA/3C,GAA2B,IAAxBwwB,EAAwBxwB,EAAxBwwB,WACtBzc,EAAeu6B,qBAAW56B,MAA1BK,WAMR,OACE2c,EAAA71B,EAAA4N,cAACuvC,GAAD,CACER,aAAc9mB,EAAA71B,EAAA4N,cAAA,2CAAmCsL,EAAWpR,MAA9C,KACdizB,SAAUpF,EACVinB,UATkB,WACpB1jC,EAAW6vB,gBACXpT,KAQEqnB,aAAc,qBCULI,GArBa,SAAAj4C,GAA2B,IAAxBwwB,EAAwBxwB,EAAxBwwB,WACrBzc,EAAeu6B,qBAAW56B,MAA1BK,WAD6CgmB,EAE9BhsB,aAAgBgG,EAAW/F,cAA3CE,EAF8CxW,OAAA6gC,EAAA,EAAA7gC,CAAAqiC,EAAA,MASrD,OACErJ,EAAA71B,EAAA4N,cAACuvC,GAAD,CACER,aACE9mB,EAAA71B,EAAA4N,cAAA,kEAEFmtB,SAAUpF,EACVinB,UAXc,WAChBvpC,IACAsiB,KAUEqnB,aAAc,yGCrBb,IAAM7Q,GAAcngC,kBAAO2wB,YAAP3wB,CAAHqxC,MAqBTC,GAjBK,kBAClBznB,EAAA71B,EAAA4N,cAAA,WACEioB,EAAA71B,EAAA4N,cAAC6tB,EAAA,YAAD,qBACA5F,EAAA71B,EAAA4N,cAAC2vC,GAAD,KACE1nB,EAAA71B,EAAA4N,cAAA,4GAKFioB,EAAA71B,EAAA4N,cAAC6tB,EAAA,YAAD,KACE5F,EAAA71B,EAAA4N,cAAC6tB,EAAA,OAAD,CAAQ+hB,KAAK,OAAO9nC,QAAS,kBAAMgC,OAAO0R,SAASq0B,WAAnD,4LCdN,IAAMC,GAAY1xC,UAAO2uB,IAAVgjB,MAQAC,GAFF,SAAC1xC,GAAD,OAAgB2pB,EAAA71B,EAAA4N,cAAC8vC,GAAD7gD,OAAAoE,OAAA,CAAWk3B,IAAK6V,MAAS9hC,2fCFtD,IAAMq2B,GAASv2B,UAAOc,IAAV+wC,MAGNvjB,GAAetuB,kBAAOktB,SAAPltB,CAAH8xC,MAIZhR,GAAa9gC,kBAAO2wB,YAAP3wB,CAAH+xC,MA8BV/wC,GAAQhB,UAAOc,IAAVkxC,MAELC,GAAc,SAAC/xC,GAAD,OAClB2pB,EAAA71B,EAAA4N,cAAA,WACEioB,EAAA71B,EAAA4N,cAAC8f,GAAA,EAAD,CAAMzP,eAAgB/R,EAAM+R,iBAC5B4X,EAAA71B,EAAA4N,cAAA,YAAO1B,EAAMpE,SAwCFo2C,GApCa,SAAA/4C,GAA2B,IAAxBwwB,EAAwBxwB,EAAxBwwB,WAAwBwoB,EACf1K,qBAAW56B,MACLK,WAApCwE,EAF6CygC,EAE7CzgC,UAAW0gC,EAFkCD,EAElCC,aAKnB,OACEvoB,EAAA71B,EAAA4N,cAACywC,GAAD,KACExoB,EAAA71B,EAAA4N,cAAC0wC,GAAD,KACEzoB,EAAA71B,EAAA4N,cAAC2wC,GAAD,MACA1oB,EAAA71B,EAAA4N,cAAA,WACEioB,EAAA71B,EAAA4N,cAAA,8FAIC8P,EAAUxiB,IAAI,SAAA86B,GAAE,OACfH,EAAA71B,EAAA4N,cAAC4wC,GAAD3hD,OAAAoE,OAAA,CAAatF,IAAKq6B,EAAGC,eAAmBD,MAE1CH,EAAA71B,EAAA4N,cAAA,+DACAioB,EAAA71B,EAAA4N,cAAA,2FAKFioB,EAAA71B,EAAA4N,cAAC20B,GAAD,KACE1M,EAAA71B,EAAA4N,cAACouC,GAAD,CAAmBtmC,QAASigB,GAA5B,UACAE,EAAA71B,EAAA4N,cAAC6wC,GAAD,CAAczxB,OAAO,SAAStX,QAxBhB,WACpBigB,IACAyoB,MAsBM,8iBC3EV,IAAM/B,GAAUrwC,UAAOc,IAAV4xC,MAMPnC,GAASvwC,kBAAOktB,SAAPltB,CAAH2yC,KAED,SAAAx5C,GAAA,OAAAA,EAAGgH,MAAkBoe,YAAY,KAUtC4hB,GAAcngC,kBAAO2wB,YAAP3wB,CAAH4yC,MA0BXC,GAAgBC,YAnBA,SAAAvwC,GAKX,IAJTwwC,EAISxwC,EAJTwwC,aACA1Q,EAGS9/B,EAHT8/B,QACA1Y,EAESpnB,EAFTonB,WACAqpB,EACSzwC,EADTywC,qBAEA,OACEnpB,EAAA71B,EAAA4N,cAAC6tB,EAAA,OAAD,CACE/lB,QAAS,WACP24B,EAAQ1xC,KAAKoiD,EAAaE,SAAU,IACpCD,GAAqB,GACrBrpB,MAJJ,SA0DWupB,GA/BM,SAAA9qC,GAA2B,IAAxBuhB,EAAwBvhB,EAAxBuhB,WAAwBwoB,EACR1K,qBAAW56B,MACMK,WAA/C6lC,EAFsCZ,EAEtCY,aAAcC,EAFwBb,EAExBa,qBAEtB,OACEnpB,EAAA71B,EAAA4N,cAACuxC,GAAD,KACEtpB,EAAA71B,EAAA4N,cAAA,wFAIAioB,EAAA71B,EAAA4N,cAACwxC,GAAD,KACEvpB,EAAA71B,EAAA4N,cAACyxC,GAAD,CACE3pC,QAAS,WACPspC,GAAqB,GACrBrpB,MAHJ,UAQAE,EAAA71B,EAAA4N,cAACixC,GAAD,CACEE,aAAcA,EACdppB,WAAYA,EACZqpB,qBAAsBA,GAHxB,mBChCOM,GAjCqC,SAAAn6C,GAA2B,IAAxBwwB,EAAwBxwB,EAAxBwwB,WAAwBwoB,EACvC1K,qBAAW56B,MACWK,WAApDqmC,EAFqEpB,EAErEoB,qBAAsBhX,EAF+C4V,EAE/C5V,kBACxBiX,EAA0B1xB,aAC9ByxB,EAAqBrkD,IAAI,SAAA8E,GAAC,OAAIA,EAAEjB,QAChC,GAOF,OACE82B,EAAA71B,EAAA4N,cAACuvC,GAAD,CACER,aACE9mB,EAAA71B,EAAA4N,cAAAioB,EAAA71B,EAAAw0C,SAAA,KACE3e,EAAA71B,EAAA4N,cAAA,qCAC2BioB,EAAA71B,EAAA4N,cAAA,SAAI4xC,GAD/B,uBAIA3pB,EAAA71B,EAAA4N,cAAA,yHAMJmtB,SAAUpF,EACVinB,UApBiB,WACnBrU,IACA5S,KAmBEqnB,aAAc,0gJChBpB,IAMMyC,GAAuBzzC,UAAO0T,MAAVggC,MASpBC,GAAa3zC,UAAOc,IAAV8yC,MAKVC,GAAmB7zC,UAAO2uB,IAAVmlB,MAShBC,GAAoB/zC,kBAAOktB,SAAPltB,CAAHg0C,KAUY,SAAA9zC,GAAK,OAAIA,EAAMC,MAAMC,aAWlD6zC,GAA0Bj0C,kBAAOktB,SAAPltB,CAAHk0C,KAOM,SAAAh0C,GAAK,OAAIA,EAAMC,MAAMC,aAWlD+zC,GAAwBn0C,UAAO2uB,IAAVylB,MAMrBC,GAAwBr0C,UAAOkC,KAAVoyC,MAOrBC,GAAkBv0C,UAAO2uB,IAAV6lB,MAMfC,GAAoBz0C,UAAO0T,MAAVghC,MAQjBnG,GAAkBvuC,kBAAOmB,YAAPnB,CAAH20C,MAUfx0B,GAAiBngB,kBAAOogB,WAAPpgB,CAAH40C,MAEdC,GAAwB70C,UAAOc,IAAVgZ,KAEE,SAAA3gB,GAAA,OAAAA,EAAGgH,MAAkB+d,aAAa,KAGzDojB,GAAethC,UAAOc,IAAVkZ,MAIZ86B,GAAkB90C,UAAO0T,MAAVuoB,KAIc,SAAA/7B,GAAK,OAAIA,EAAMC,MAAMC,aAGlDG,GAAgBP,kBAAOQ,UAAPR,CAAHk8B,MAIb6Y,GAAiB/0C,UAAO2uB,IAAVyN,MAOd4Y,GAAoBh1C,kBAAOi1C,cAAPj1C,CAAHs8B,MAOjB4Y,GAAsBl1C,kBAAOm1C,gBAAPn1C,CAAHw8B,KAOU,SAAAt8B,GAAK,OAAIA,EAAMC,MAAMC,YAyBhC,SAAAmC,GAAA,OAAAA,EAAGpC,MAAkB+d,aAAa,KAKpDk3B,GAAwBp1C,UAAO2uB,IAAV+N,MAMrB2Y,GAAwBr1C,UAAOkC,KAAV06B,MAOrB0Y,GAAyBt1C,kBAAOooC,SAAPpoC,CAAH88B,KAQO,SAAA58B,GAAK,OAAIA,EAAMC,MAAMC,aAOlDm1C,GAAoB,CACxB,CACE7hC,MAAOmW,EAAA71B,EAAA4N,cAAA,QAAM0hC,MAAO,CAAEtnC,MAAO,YAAtB,WACPD,MAAOtN,MAET,CACEilB,MAAOmW,EAAA71B,EAAA4N,cAAA,QAAM0hC,MAAO,CAAEtnC,MAAO,YAAtB,WACPD,MAAOrN,OAIL8mD,GAAuBx1C,UAAOkC,KAAV86B,KACS,SAAA98B,GAAK,OAAIA,EAAMC,MAAMC,aAUlDq1C,GAAiB,SAAArtC,GAKJ,IAJjBY,EAIiBZ,EAJjBY,SACAU,EAGiBtB,EAHjBsB,QACAgsC,EAEiBttC,EAFjBstC,OACA1tC,EACiBI,EADjBJ,SAEMkkB,EAAYwpB,EAAS,SAAW,GACtC,OACE7rB,EAAA71B,EAAA4N,cAACszC,GAAD,CACEhpB,UAAWA,EACXxiB,QAASA,EACT1B,SAAUA,GAETgB,IAmLQ2sC,GA3Ja,SAAAntC,GAiBf,IAhBXotC,EAgBWptC,EAhBXotC,UACAC,EAeWrtC,EAfXqtC,aACA95C,EAcWyM,EAdXzM,MACA+5C,EAaWttC,EAbXstC,eACAC,EAYWvtC,EAZXutC,YACAC,EAWWxtC,EAXXwtC,kBACAC,EAUWztC,EAVXytC,cACAC,EASW1tC,EATX0tC,SACAC,EAQW3tC,EARX2tC,eACAC,EAOW5tC,EAPX4tC,gBACAC,EAMW7tC,EANX6tC,mBACAC,EAKW9tC,EALX8tC,WACAC,EAIW/tC,EAJX+tC,iBACAC,EAGWhuC,EAHXguC,YACAC,EAEWjuC,EAFXiuC,eAGMC,GADKluC,EADXmuC,qBAEuBT,IAAa1nD,MAC9BooD,EAAaV,IAAa3nD,KAE1BsoD,EACM,KAAV96C,EAAe,KACb8tB,EAAA71B,EAAA4N,cAACmyC,GAAD,CAAmBrqC,QAASqsC,GAC1BlsB,EAAA71B,EAAA4N,cAAC2yC,GAAD,CAAiBpoB,IAAK2qB,KAAW1qB,IAAI,KADvC,UAKE2qB,EAAcH,EApSpB,+GAGA,0EAmSA,OACE/sB,EAAA71B,EAAA4N,cAACo1C,GAAD,KACEntB,EAAA71B,EAAA4N,cAAC+xC,GAAD,KACE9pB,EAAA71B,EAAA4N,cAACkzC,GAAD,KACEjrB,EAAA71B,EAAA4N,cAAA,QAAM0hC,MAAO,CAAE2T,OAAQ,IAAvB,WACAptB,EAAA71B,EAAA4N,cAACs1C,GAAD,CACEryC,QAASkyC,EACTjyC,UAAU,MACVC,gBAAiB,GAEjB8kB,EAAA71B,EAAA4N,cAACmzC,GAAD,CAAgB5oB,IAAKgrB,KAAU/qB,IAAI,WAIvCvC,EAAA71B,EAAA4N,cAACozC,GAAD,KACEnrB,EAAA71B,EAAA4N,cAACw1C,GAAD,CACEpvC,UAAWguC,EACXN,OAAQgB,EACRhtC,QAAS,WACPysC,EAAe3nD,QAGjBq7B,EAAA71B,EAAA4N,cAACyzC,GAAD,KACExrB,EAAA71B,EAAA4N,cAACwzC,GAAD,CACEjpB,IACEuqB,EACIW,KACArB,EACAsB,KACAC,KAENnrB,IAAI,KATR,eAeFvC,EAAA71B,EAAA4N,cAACw1C,GAAD,CACEpvC,UAAWiuC,EACXP,OAAQkB,EACRltC,QAAS,WACPysC,EAAe5nD,QAGjBs7B,EAAA71B,EAAA4N,cAACyzC,GAAD,KACExrB,EAAA71B,EAAA4N,cAACwzC,GAAD,CACEjpB,IACEyqB,EACIY,KACAvB,EACAjjD,KACAykD,KAENrrB,IAAI,KATR,YAgBHwqB,EACC/sB,EAAA71B,EAAA4N,cAAC0zC,GAAD,CACE/gD,QACE+hD,IAAe5nD,KACX,CAAC6mD,GAAkB,IACnB,CAACA,GAAkB,IAEzBtvC,SAAU,SAAC9Q,GAAD,OAAyBohD,EAAiBphD,EAAE4G,QACtDA,MACEu6C,IAAe5nD,KACX6mD,GAAkB,GAClBA,GAAkB,KAGxB,MAGLiB,EACC3sB,EAAA71B,EAAA4N,cAAC+xC,GAAD,KACE9pB,EAAA71B,EAAA4N,cAAC6yC,GAAD,KACE5qB,EAAA71B,EAAA4N,cAACiyC,GAAD,CAAkB1nB,IAAK+T,KAAQ9T,IAAI,KAClCyqB,EACDhtB,EAAA71B,EAAA4N,cAAC81C,GAAD,CACEr2C,KAAK,OACLtO,KAAK,SACLkT,SAAU4vC,EACV95C,MAAOA,EACPsK,YAAY,qBAIhB,KAEJwjB,EAAA71B,EAAA4N,cAAC+xC,GAAD,KACE9pB,EAAA71B,EAAA4N,cAAC+4B,GAAA,EAAD,CAAYrZ,mBAAoBo1B,GAC9B7sB,EAAA71B,EAAA4N,cAAA,OAAK0hC,MAAO,CAAEqU,OAAQ,SACnBlB,EACC5sB,EAAA71B,EAAA4N,cAAC6xC,GAAD,KACE5pB,EAAA71B,EAAA4N,cAACg2C,GAAD,CAAgB3xC,SAAU2vC,EAAWv1B,QAASy1B,IAC9CjsB,EAAA71B,EAAA4N,cAAA,2BAEA,MAGL80C,EACC7sB,EAAA71B,EAAA4N,cAAA,OAAK0hC,MAAO,CAAE3kC,QAAS,SACrBkrB,EAAA71B,EAAA4N,cAAC4zC,GAAD,mBACCY,EACCvsB,EAAA71B,EAAA4N,cAACqyC,GAAD,CAAyBvqC,QAAS2sC,GAChCxsB,EAAA71B,EAAA4N,cAACyyC,GAAD,KACExqB,EAAA71B,EAAA4N,cAACuyC,GAAD,CAAuBhoB,IAAK0rB,KAAazrB,IAAI,KAD/C,iBAKA,MAEJ,OAIRvC,EAAA71B,EAAA4N,cAACizC,GAAD,msCCzbN,IAAMiD,GAAmB93C,UAAOc,IAAVi3C,MAMhBx2B,GAAOvhB,UAAOc,IAAVk3C,MAMJC,GAAaj4C,UAAOkC,KAAVg2C,KACmB,SAAAh4C,GAAK,OAAIA,EAAMC,MAAMC,aAIlD+3C,GAAen4C,kBAAOo4C,SAAPp4C,CAAHq4C,MAkCZC,GAAa,SAAAn/C,KAAG2J,oBAAH,IAA2BrB,EAA3B5Q,OAAAspC,EAAA,EAAAtpC,CAAAsI,EAAA,gCACjB0wB,EAAA71B,EAAA4N,cAAA,OAAUH,IAGN82C,GAAkBv4C,kBAAOs4C,GAAPt4C,CAAHw4C,KAEV,SAAAt4C,GAAK,OAAKA,EAAM4C,oBAAsB,UAAY,YAGvD21C,GAAsBz4C,kBAAOs4C,GAAPt4C,CAAH04C,KACd,SAAAx4C,GAAK,OAAKA,EAAM4C,oBAAsB,UAAY,YAuD9C61C,GA1Ca,SAAAp2C,GAQf,IAPXq2C,EAOWr2C,EAPXq2C,uBACAC,EAMWt2C,EANXs2C,aACA/1C,EAKWP,EALXO,oBACA+D,EAIWtE,EAJXsE,UACAvR,EAGWiN,EAHXjN,WACAtD,EAEWuQ,EAFXvQ,kBACA8mD,EACWv2C,EADXu2C,0BAEA,OACEjvB,EAAA71B,EAAA4N,cAACk2C,GAAD,KACEjuB,EAAA71B,EAAA4N,cAAC+4B,GAAA,EAAD,CAAYrZ,mBAAoBu3B,GAC9BhvB,EAAA71B,EAAA4N,cAAC2f,GAAD,KACGq3B,EACC/uB,EAAA71B,EAAA4N,cAACsoB,EAAA,SAAD,KACEL,EAAA71B,EAAA4N,cAACq2C,GAAD,2BACApuB,EAAA71B,EAAA4N,cAACu2C,GAAD,CACElyC,SAAU6yC,EACVpY,MAAO,CAAErgB,QAAS,KAAM04B,UAAW,UAGrC,MAELF,EACChvB,EAAA71B,EAAA4N,cAAC2f,GAAD,KACEsI,EAAA71B,EAAA4N,cAAC22C,GAAD,CAAiBz1C,oBAAqBA,GACnC+D,EADH,KAGAgjB,EAAA71B,EAAA4N,cAAA,QAAM0hC,MAAO,CAAE0V,WAAY,WAA3B,IAEEnvB,EAAA71B,EAAA4N,cAAC62C,GAAD,CAAqB31C,oBAAqBA,GACvCxN,GACoB,IAJzB,UAKUtD,EALV,MAQA,0lCChHZ,IAAMinD,GAAcj5C,UAAOo2B,MAAV8iB,MA6CJC,GAAcn5C,kBArCN,SAACE,GAAe,IAC3B8I,EAAiC9I,EAAjC8I,SAAUkjB,EAAuBhsB,EAAvBgsB,UAAczqB,EADG5Q,OAAAspC,EAAA,EAAAtpC,CACMqP,EADN,0BAEnC,OACE2pB,EAAA71B,EAAA4N,cAAA,SAAOsqB,UAAWA,GAChBrC,EAAA71B,EAAA4N,cAACq3C,GAADpoD,OAAAoE,OAAA,CAAaoM,KAAK,YAAeI,IACjCooB,EAAA71B,EAAA4N,cAAA,OAAKw3C,QAAQ,UAAUC,MAAM,8BAC3BxvB,EAAA71B,EAAA4N,cAAA,QACEsqB,UAAU,sBACVhwB,EAAE,QACFo9C,EAAE,QACFjtB,MAAM,OACNsrB,OAAO,OACP4B,GAAG,OACHC,GAAG,SAEL3vB,EAAA71B,EAAA4N,cAAA,QACEsqB,UAAU,gBACVhwB,EAAE,OACFo9C,EAAE,OACFjtB,MAAM,MACNsrB,OAAO,MACP4B,GAAG,MACHC,GAAG,MACHC,YAAY,QAEd5vB,EAAA71B,EAAA4N,cAAA,YACE83C,OAAO,sCACPD,YAAY,MACZE,cAAc,QACdC,eAAe,WAGlB5wC,IAKoBhJ,CAAH65C,KAClBZ,GAEQ,SAAA/4C,GAAK,OAAIA,EAAMC,MAAM+d,aAAa,IAM1C+6B,GAGAA,GAYQ,SAAA/4C,GAAK,OAAIA,EAAMC,MAAM+d,aAAa,IAIlC,SAAAhe,GAAK,OAAIA,EAAMC,MAAM25C,2lBC1DnC,IAaM35B,GAAiBngB,kBAJA,SAAAuC,GAAiDA,EAA9Cw3C,UAA8C,IAAhCt4C,EAAgC5Q,OAAAspC,EAAA,EAAAtpC,CAAA0R,EAAA,eACtE,OAAOsnB,EAAA71B,EAAA4N,cAAC6tB,EAAA,SAAahuB,IAGAzB,CAAHg6C,KAER,SAAA95C,GAAK,OAAKA,EAAMmgB,QAAUngB,EAAM65C,UAAY,YASlDE,GAAmBj6C,kBAxBD,SAAA7G,GAAoDA,EAAjD+gD,WAAiD,IAAlCz4C,EAAkC5Q,OAAAspC,EAAA,EAAAtpC,CAAAsI,EAAA,gBAE1E,OAAO0wB,EAAA71B,EAAA4N,cAAC+4B,GAAA,EAAel5B,IAsBAzB,CAAHm6C,KAEE,SAAAj6C,GAAK,OAAIA,EAAMg6C,aAIjCE,GAAoBp6C,UAAO0T,MAAV2mC,KAGY,SAAAn6C,GAAK,OAAIA,EAAMC,MAAMC,aAiGzCk6C,GAjEa,SAAAlyC,GAqBf,IApBX7O,EAoBW6O,EApBX7O,KACAghD,EAmBWnyC,EAnBXmyC,cACAt0C,EAkBWmC,EAlBXnC,SACA4yC,EAiBWzwC,EAjBXywC,aACA9oD,EAgBWqY,EAhBXrY,MACAyS,EAeW4F,EAfX5F,WACAxQ,EAcWoW,EAdXpW,kBACAyQ,EAaW2F,EAbX3F,UACAzH,EAYWoN,EAZXpN,gBACAw/C,EAWWpyC,EAXXoyC,YACA73C,EAUWyF,EAVXzF,eAEApD,GAQW6I,EATXqyC,cASWryC,EARX7I,YACA26C,EAOW9xC,EAPX8xC,WACAH,EAMW3xC,EANX2xC,UACAW,EAKWtyC,EALXsyC,gBACA53C,EAIWsF,EAJXtF,oBACAE,EAGWoF,EAHXpF,4BACAI,EAEWgF,EAFXhF,wBACAC,EACW+E,EADX/E,wBAEMs3C,GACH9B,GAAgB6B,EACf7wB,EAAA71B,EAAA4N,cAACu3C,GAAD,CAAa94B,QAASk6B,EAAet0C,SAAUA,IAE/C4jB,EAAA71B,EAAA4N,cAACg5C,GAAD,CACEv6B,QAASk6B,EACTt0C,SAAUA,EACV8zC,UAAWA,IAIjB,OACElwB,EAAA71B,EAAA4N,cAACq4C,GAAD,CAAkB34B,mBAAoBu3B,EAAcqB,WAAYA,GAC9DrwB,EAAA71B,EAAA4N,cAAC+4B,GAAA,EAAD,KACE9Q,EAAA71B,EAAA4N,cAACw4C,GAAD,KACGO,EACD9wB,EAAA71B,EAAA4N,cAAA,QAAM0hC,MAAO,CAAE2T,OAAQ,MAAQ19C,KAGlCs/C,GAAgB0B,EACf1wB,EAAA71B,EAAA4N,cAAC+4B,GAAA,EAAD,KACE9Q,EAAA71B,EAAA4N,cAACU,GAAA,EAAD,CACEG,UAAWA,EACXpS,WAAY2K,EACZjL,MAAOA,EACPyS,WAAYA,EACZE,0BAA2B83C,EAC3BxoD,kBAAmBA,EACnB2Q,eAAgBA,EAChBC,oBAAoB,EACpBrD,WAAYA,EACZuD,oBAAqBA,EACrBC,iBAAiB,EACjBC,4BAA6BA,EAC7BI,wBAAyBA,EACzBC,wBAAyBA,KAG3B,wDCvHGw3C,GAAoC,SAC/C3rD,EACAqB,EACAwC,GAEA,IAAM+nD,EAAY7rD,cAAiBC,GAanC,MAJmC,CACjCqB,WATgBA,EAAWrB,IAAoB,SAAA0C,GAC/C,IAAMmpD,EAAkBD,EAAUjrD,IAAI8L,KAAK/J,EAAEtB,WAAW,GAAGiE,UAC3D,OAAO1D,OAAAolC,EAAA,EAAAplC,CAAA,GACFe,EADL,CAEE7B,MAAQgrD,GAAmBA,EAAgBhrD,OAAU,EACrDE,KAAO8qD,GAAmBA,EAAgB9qD,MAAS,MAKrD8C,SAKEioD,GAAiB,SACrBC,EACAxiD,EACAyiD,EACAlpD,GAEA,IAAImpD,EAAa1iD,EAKjB,OAJIyiD,IACFC,EAAa9lD,aAAkBoD,EAAOzG,IAGjC,IAAI5C,IACT+rD,EAAWjsD,IAAI,SAAA0C,GAAC,MAAI,CAClB+J,KAAK/J,EAAEtB,WAAW,GAAGiE,SACrB,CACExE,MAAOkrD,EAAQ,GAAKrpD,EAAE7B,MACtBE,KAAMgrD,EAAQ,GAAKzlD,aAAQ5D,EAAE7B,MAAOiC,SAM/BopD,GAAoB,SAC/B/8C,EACArD,EACAtB,EACA1H,GAJ+B,OAM/BgJ,EAAgBzK,WAAWb,OACvBqL,aACEsD,EAAU1D,GACVjB,EACAsB,EACAhJ,GAEFkD,aACE,CACE3D,YAAa8M,EAAU1D,GACvBpG,QAASmF,GAEX1H,EACAgJ,EAAgBjI,OA6BlBsoD,GAAwB,SAC5BC,EACA70C,GAEA,IAAM80C,EAAgBD,EAAU/qD,WAAWrB,IAAI,SAAA0C,GAC7C,IAAM4pD,EAAmB7/C,KAAK/J,EAAEtB,WAAW,GAAGiE,SACxCwmD,EAAkBt0C,EAAc5W,IAAI2rD,GACpCvrD,EAAQ8qD,GAAmBA,EAAgB9qD,MAAS,EACpDF,EAASgrD,GAAmBA,EAAgBhrD,OAAU,EAC5D,OAAOc,OAAAolC,EAAA,EAAAplC,CAAA,GAAKe,EAAZ,CAAe3B,OAAMF,YAEvB,OAAOc,OAAAolC,EAAA,EAAAplC,CAAA,GAAKyqD,EAAZ,CAAuB/qD,WAAYgrD,KAgTtBE,GA9OU,SAAAtiD,GASZ,IARXkF,EAQWlF,EARXkF,UACA48C,EAOW9hD,EAPX8hD,MACA1mD,EAMW4E,EANX5E,QACAmnD,EAKWviD,EALXuiD,uBACAC,EAIWxiD,EAJXwiD,uBACAC,EAGWziD,EAHXyiD,gBACAC,EAEW1iD,EAFX0iD,oBACA7pD,EACWmH,EADXnH,kBACW4R,EACeC,mBA3DP,SACnBo3C,EACA1mD,EACAmnD,EACAC,EACAzF,EACAI,EACAtkD,GAEA,IAAM8pD,EAAoBjrD,OAAOpB,KAAK8E,IAAY,GAE9CwnD,EAAgD,GACpDL,EAAuBlrD,QAAQ,SAAAwrD,GAAM,OAAKD,EAAkBC,IAAU,IAGtE,IADA,IAAIC,EAA+C,GAC1C9oD,EAAI,EAAGA,EAAI2oD,EAAkBpsD,OAAQyD,IAAK,CACjD,IAAMxD,EAAMmsD,EAAkB3oD,GAAGgJ,WACjC8/C,EAAiBtsD,GAAOosD,EAAkBpsD,GAG5C,IAAM8W,EAAgBu0C,GACpBC,EACAU,EAAuBprD,YACvB,EACAyB,GAGF,MAAO,CACLiqD,iBAAkBA,EAClB/b,OAAQ,GACRgc,qBAAqB,EACrBhG,SAAUA,GAAY3nD,KACtBkY,cAAeA,EACf6vC,WAAYA,GAAc7nD,KAC1BuM,gBAAiB2gD,GA0BjBhmB,CACEslB,EACA1mD,EACAmnD,EACAC,EACAC,EACAC,EACA7pD,IATO8R,EAAAjT,OAAA6gC,EAAA,EAAA7gC,CAAA+S,EAAA,GACJ9D,EADIgE,EAAA,GACG8xB,EADH9xB,EAAA,GAAAI,EAY6CL,oBACtD,GAbSM,EAAAtT,OAAA6gC,EAAA,EAAA7gC,CAAAqT,EAAA,GAYJi4C,EAZIh4C,EAAA,GAYkBi4C,EAZlBj4C,EAAA,GAAA0tB,EAemDhuB,oBAAS,GAf5DiuB,EAAAjhC,OAAA6gC,EAAA,EAAA7gC,CAAAghC,EAAA,GAeJzuB,EAfI0uB,EAAA,GAeqBuqB,EAfrBvqB,EAAA,GAgNX,MAAO,CACLhyB,QACAq2C,eA/LqB,SAACD,GACtBtgB,EAAS,SAAAuD,GACP,OAAOtoC,OAAAolC,EAAA,EAAAplC,CAAA,GACFsoC,EADL,CAEE+c,SAAUA,OA4LdoG,aAvLmB,SACnBC,EACAf,EACArlD,GACG,IACK8lD,EAAqDn8C,EAArDm8C,iBAAkBjhD,EAAmC8E,EAAnC9E,gBAAiByL,EAAkB3G,EAAlB2G,cACrC+1C,GAAeP,EAAiBM,GAEhCE,GACHD,GAAermD,EAAYzG,OAAS,EArJpB,SACrB2O,EACArD,EACA7E,EACAnE,GAEA,IAAM0qD,EAA2B1hD,EAAgBzK,WAAWyC,OAC1D,SAAApB,GAAC,OAAIA,EAAEtB,WAAW,GAAGiE,UAAY4B,IAE7BwmD,EAAsB,CAC1B5pD,KAAMiI,EAAgBjI,KACtBxC,WAAYmsD,GAGRE,EAA4B1nD,aAChC,CACE3D,YAAa8M,EAAU1D,GACvBpG,QAAS4B,GAEXnE,EACAgJ,EAAgBjI,MAGlB,OAAOlC,OAAAolC,EAAA,EAAAplC,CAAA,GAAK8rD,EAAwBC,GA+H5BC,CACEx+C,EACArD,EACA7E,EACAnE,GAEFgJ,EAEA8hD,EAAmB,IAAI1tD,IAAIqX,GAC7B+1C,EACFM,EAAiB3sD,IAAIqrD,EAAkB,CAAEzrD,MAAO,GAAIE,KAAM,KAE1D6sD,EAAiBC,OAAOvB,GAG1B5lB,EAAS,SAAAuD,GACP,OAAOtoC,OAAAolC,EAAA,EAAAplC,CAAA,GACFsoC,EADL,CAEE8iB,iBAAiBprD,OAAAolC,EAAA,EAAAplC,CAAA,GACZorD,EADWprD,OAAAqlC,GAAA,EAAArlC,CAAA,GAEb0rD,EAAWC,IAEdxhD,gBAAiByhD,EACjBh2C,cAAeq2C,OAuJnBjH,aAlJmB,SAACt4C,GAAyC,IACrDxB,EAAUwB,EAAE4I,cAAZpK,MACR65B,EAAS,SAAAuD,GACP,OAAOtoC,OAAAolC,EAAA,EAAAplC,CAAA,GAAKsoC,EAAZ,CAAuB+G,OAAQnkC,OAgJjCg6C,YA5IkB,WAClBngB,EAAS,SAAAuD,GACP,OAAOtoC,OAAAolC,EAAA,EAAAplC,CAAA,GAAKsoC,EAAZ,CAAuB+G,OAAQ,QA2IjC0V,UAvIgB,SAACoH,GAA8B,IAEvCf,EAAsCn8C,EAAtCm8C,iBAAkBjhD,EAAoB8E,EAApB9E,gBACpBiiD,EAAcD,EAAgBlQ,MAAM,SAAAn9C,GAAG,OAAIssD,EAAiBtsD,KAE5DutD,EAAa,GACnBF,EAAgBxsD,QAAQ,SAAAmW,GACtBu2C,EAAWv2C,IAAQs2C,IAGrB,IAAMR,EAAqBrB,GACzB/8C,EACArD,EACAgiD,EACAhrD,GAGIyU,EAAgBu0C,IACpB,EACAyB,EAAmBlsD,YACnB,EACAyB,GAGF4jC,EAAS,SAAAuD,GACP,OAAOtoC,OAAAolC,EAAA,EAAAplC,CAAA,GACFsoC,EADL,CAEE8iB,iBAAiBprD,OAAAolC,EAAA,EAAAplC,CAAA,GACZiP,EAAMm8C,iBACNiB,GAELz2C,cAAeA,OAyGnBqyC,0BApGgC,WAChCljB,EAAS,SAAAuD,GACP,OAAOtoC,OAAAolC,EAAA,EAAAplC,CAAA,GACFsoC,EADL,CAEE+iB,qBAAsBp8C,EAAMo8C,yBAiGhCiB,kBA5FwB,SACxBC,GAEG,IADHC,EACG/rC,UAAA5hB,OAAA,QAAAsN,IAAAsU,UAAA,IAAAA,UAAA,GACGwrC,EAAmB9B,IACvB,EACAoC,EAAwB7sD,YACxB,EACAyB,GAGF4jC,EAAS,SAAAuD,GAAa,IACZn+B,EAAoBm+B,EAApBn+B,gBACR,OAAOnK,OAAAolC,EAAA,EAAAplC,CAAA,GACFsoC,EADL,CAEE1yB,cAAeq2C,EACf9hD,gBAAiBqiD,EACbhC,GAAsBrgD,EAAiB8hD,GACvC9hD,MAGRqhD,GAA2B,IAwE3B9F,iBArEuB,SAACD,GACxB1gB,EAAS,SAAAuD,GACP,OAAOtoC,OAAAolC,EAAA,EAAAplC,CAAA,GACFsoC,EADL,CAEEmd,WAAYA,OAkEhBgH,qBA7D2B,SAACC,EAAexhD,GAC3C65B,EAAS,SAAAuD,GAAa,IACZ1yB,EAAkB0yB,EAAlB1yB,cACFq2C,EAAmB,IAAI1tD,IAAIqX,GAGjC,OAFAq2C,EAAiB3sD,IAAIotD,EAAO,CAAExtD,MAAOgM,EAAMhM,MAAOE,KAAM8L,EAAM9L,OAEvDY,OAAAolC,EAAA,EAAAplC,CAAA,GACFsoC,EADL,CAEE1yB,cAAeq2C,OAsDnBtC,YArCkB,SAACiC,GACnB7mB,EAAS,SAAAuD,GACP,OAAOtoC,OAAAolC,EAAA,EAAAplC,CAAA,GACFsoC,EADL,CAEEn+B,gBAAiByhD,OAkCrBe,2BA7BiC,SAACf,GAClC,IAAMK,EAAmB9B,GACvBC,EACAwB,EAAmBlsD,YACnB,EACAyB,GAGF4jC,EAAS,SAAAuD,GACP,OAAOtoC,OAAAolC,EAAA,EAAAplC,CAAA,GACFsoC,EADL,CAEEn+B,gBAAiByhD,EACjBh2C,cAAeq2C,OAkBnBV,0BACAD,uBACAsB,qBArD2B,SAACF,GAC5B3nB,EAAS,SAAAuD,GACP,IAAM2jB,EAAmB,IAAI1tD,IAAI+pC,EAAU1yB,eAG3C,OAFAq2C,EAAiBC,OAAOQ,GAEjB1sD,OAAAolC,EAAA,EAAAplC,CAAA,GACFsoC,EADL,CAEE1yB,cAAeq2C,OA+CnB15C,0BACAC,wBAhN8B,SAACpP,GAAD,OAAgBooD,EAA2BpoD,sWCjL7E,IAeMypD,GAAc19C,kBAJF,SAAA7G,GAAyCA,EAAtC+gC,UAAsC,IAAxBz4B,EAAwB5Q,OAAAspC,EAAA,EAAAtpC,CAAAsI,EAAA,eACzD,OAAO0wB,EAAA71B,EAAA4N,cAAA,MAASH,IAGEzB,CAAH29C,KAGD,SAAAz9C,GAAK,OAAIA,EAAMg6B,YAsDzB7R,GAAKroB,UAAOkC,KAAKd,MAAM,CAAE4H,SAAU,QAA9BhJ,CAAH49C,MA2SOC,GA/Qe,SAAAt7C,GAeF,IAd1B04C,EAc0B14C,EAd1B04C,MACA58C,EAa0BkE,EAb1BlE,UACA0wB,EAY0BxsB,EAZ1BwsB,SACA+L,EAW0Bv4B,EAX1Bu4B,OACAvmC,EAU0BgO,EAV1BhO,QAU0BupD,EAAAv7C,EAT1Bm5C,8BAS0B,IAAAoC,EATD,GASCA,EAR1BjC,EAQ0Bt5C,EAR1Bs5C,oBACAF,EAO0Bp5C,EAP1Bo5C,uBACA3pD,EAM0BuQ,EAN1BvQ,kBACAyoD,EAK0Bl4C,EAL1Bk4C,cACAzgD,EAI0BuI,EAJ1BvI,aACAk8C,EAG0B3zC,EAH1B2zC,SACA6H,EAE0Bx7C,EAF1Bw7C,qBACA/6C,EAC0BT,EAD1BS,4BAEMgzC,EAAoB33C,EAAU2/C,kBAC9B/H,EAAgB53C,EAAU4/C,mBAEhC,GAAI/H,IAAa3nD,OAAqB0nD,IAAkBD,EACtD,MAAM,IAAIr/C,MAAM,0DALQ,IDvIOunD,ECuIPC,EAwBtB1C,GAAiB,CACnBp9C,YACA48C,QACA1mD,UACAmnD,yBACAC,yBACAC,gBAAiB1F,EACjB2F,sBACA7pD,sBAvBA8N,EATwBq+C,EASxBr+C,MACAq2C,EAVwBgI,EAUxBhI,eACAmG,EAXwB6B,EAWxB7B,aACAzG,EAZwBsI,EAYxBtI,aACAE,EAbwBoI,EAaxBpI,YACAH,EAdwBuI,EAcxBvI,UACAkD,EAfwBqF,EAexBrF,0BACAqE,EAhBwBgB,EAgBxBhB,kBACA5G,EAjBwB4H,EAiBxB5H,iBACA+G,EAlBwBa,EAkBxBb,qBACAE,EAnBwBW,EAmBxBX,2BACApB,EApBwB+B,EAoBxB/B,wBACAD,EArBwBgC,EAqBxBhC,qBACA/4C,EAtBwB+6C,EAsBxB/6C,wBACAC,EAvBwB86C,EAuBxB96C,wBAYI+6C,EAAat+C,EAAMm8C,iBACnBpD,EAAe/4C,EAAMo2C,WAAa1nD,KAClC6vD,EAAWv+C,EAAMo2C,WAAa3nD,KAC9B+vD,EAAkBx+C,EAAMw2C,aAAe7nD,KACvCisD,EAAkB56C,EAAMw2C,aAAe5nD,KACvCsuD,EAnIY,SAACuB,EAAqBhqD,GACxC,IAAMiqD,EAAa3tD,OAAOpB,KAAK8E,IAAY,GACrCkqD,EAAkBh8B,aAAmB87B,GAE3C,OAAOC,EAAWxrD,OAAO,SAAArD,GACvB,IAAM+uD,EAAQ,IAAI52B,OAAO22B,EAAiB,MAC1C,OAAOlqD,EAAQ5E,GAAK4J,KAAK4E,MAAMugD,KA6HTC,CAAY7+C,EAAMogC,OAAQ3rC,GAC5CuhD,EAAiBkH,EAAgBlQ,MAAM,SAAAn9C,GAAG,OAAIyuD,EAAWzuD,KACzD+J,GDjL2BwkD,ECiLUp+C,EAAMm8C,iBDhLjDprD,OAAOpB,KAAKyuD,GAAOlrD,OAAO,SAAA0H,GAAC,OAAIwjD,EAAMxjD,MCiL/BkkD,EA5HoB,SAC1BL,EACAhqD,EACAmF,GAEA,IAAM+kD,EAAkBh8B,aAAmB87B,GAE3C,OAAO7kD,EAAgB1G,OAAO,SAAArD,GAC5B,IAAM+uD,EAAQ,IAAI52B,OAAO22B,EAAiB,MAC1C,OAAOlqD,EAAQ5E,GAAK4J,KAAK4E,MAAMugD,KAmHDG,CAC9B/+C,EAAMogC,OACN3rC,EACAmF,GAEIolD,EAAiBh/C,EAAMo8C,oBACR,KAAjBp8C,EAAMogC,OACJ0e,EACAllD,EACFsjD,EAEE+B,EAAgCxkD,cACpChG,EACAuqD,GAGI1B,EAA0BhC,GAC9B/8C,EACAyB,EAAM9E,gBACNtB,EACA1H,GAGIgtD,EAAersD,aAAkByqD,GAEjC6B,EACJpG,GAAgBuE,EACZviD,aAAoBuiD,EAAwB7sD,YAC5C,IAAInB,IAEJ8vD,EACJrG,GAAgBoG,EA9IS,SAC3BE,EACAC,GAEA,IAAIC,EAAsB,IAAIjwD,IAC9BgwD,EAAqB5uD,QAAQ,SAAA2E,GAAC,OAAIkqD,EAAoBlvD,IAAIgF,GAAG,KAE7DgqD,EAAoB3uD,QAAQ,SAAAkK,GAC1BA,EAAElK,QAAQ,SAAC2E,EAAGhC,GACF,IAANA,GACFksD,EAAoBlvD,IAAIgF,GAAG,OAKjC,IAAImqD,EAAa,IAAI/vD,MAAc,GAOnC,OANA6vD,EAAqB5uD,QAAQ,SAAA2E,GACvBkqD,EAAoBxvD,IAAIsF,IAC1BmqD,EAAW3uD,KAAKwE,KAIbmqD,EAyHDC,CACEN,EACAF,GAEFA,EAEA7E,EAAarB,EAhMS,UAkMxByF,EAtM0B,UAEA,UAwMxBvE,EAAYlB,EArMK,UAuMnByF,EA3MqB,UAEA,UA6MnBkB,GAAaN,EAAShwD,IAAI,SAACS,EAAKwD,GACpC,IAAMgC,EAAIZ,EAAQ5E,GACZ8vD,EAAmBR,EAAwBpvD,IAAIF,IAAQ,IAAIJ,MAAMI,GACjE4J,EACJs/C,GAAgBoG,EAAwB5jD,IAAI1L,GAtIrB,SAC3B0J,EACAmlD,EACAngD,GAEA,IAAMqhD,EAAmBnlD,cAAkBlB,EAAWmlD,GACtD,OACE30B,EAAA71B,EAAA4N,cAACsoB,EAAA,SAAD,KACGw1B,EAAiBxwD,IAAI,SAACiG,EAAGf,GAAJ,OACpBy1B,EAAA71B,EAAA4N,cAACsoB,EAAA,SAAD,CAAUv6B,IAAKwF,GACb00B,EAAA71B,EAAA4N,cAACiG,GAAA,EAAD,CACEzO,aAAcjE,EACdkE,UAAWA,EACXC,cAAe+E,EAAUgD,OAE1BjN,IAAQsrD,EAAiBhwD,OAAS,EAAI,KAAOm6B,EAAA71B,EAAA4N,cAACymB,GAAD,UAwHhDs3B,CAAqBprD,EAASkrD,EAAkBphD,GAEhDwrB,EAAA71B,EAAA4N,cAACsoB,EAAA,SAAD,KAAW/0B,EAAEoE,MAEXqmD,EAAiC,CACrCruD,YAAa8M,EAAU1D,GACvBpG,QAASkrD,GAELjE,EAAmB7/C,KAAK8jD,GACxB1E,EAAkBj7C,EAAM2G,cAAc5W,IAAI2rD,GAC1CqE,EAAkB9E,GAAmBA,EAAgBhrD,OAAU,GAC/D+vD,EAAiB/E,GAAmBA,EAAgB9qD,MAAS,GAC7DwS,EAA4B,CAChC1S,MAA0B,KAAnB8vD,EAAwB,EAAIA,EACnCvvD,WAAY,CAACsvD,GACb3vD,KAAwB,KAAlB6vD,EAAuB,EAAIA,GAGnC,OACEj2B,EAAA71B,EAAA4N,cAACm+C,GAAD,CACEpwD,IAAKwD,EACLonD,gBAAiBz6C,EAAMm8C,iBAAiB9mD,EAAEwF,IAC1CsL,SAAU,kBAAMq2C,EAAannD,EAAEwF,GAAI6gD,EAAkBiE,IACrDlmD,KAAMA,EACNs/C,aAAcA,EACdp2C,UAAWA,EACXzH,gBAAiBoiD,EACjBrtD,MAAO8vD,EACPr9C,WAAY,SAAA5C,GAAC,OAAI09C,EAAqB9B,EAAkB57C,IACxD46C,YAAagD,EACbxrD,kBAAmBA,EACnB2Q,eAAgBq8C,EAAatvD,OAC7B+qD,cAAeA,EACfl7C,WAAYvF,EACZkgD,WAAYA,EACZH,UAAWA,EACXW,gBAAiBA,EACjB53C,oBAAqBq5C,EACrBn5C,4BAA6BA,EAC7BI,wBAAyBA,EACzBC,wBAAyBA,MA1IL28C,GAoJtBx5C,aAAoB,CACtBC,cAAe3G,EAAM2G,cACrBzU,sBANA6U,GAhJwBm5C,GAgJxBn5C,UACAvR,GAjJwB0qD,GAiJxB1qD,WACAsR,GAlJwBo5C,GAkJxBp5C,eACAE,GAnJwBk5C,GAmJxBl5C,WAMFxC,oBAAU,WACe,IAAnBsC,IACFw1C,GAAwB,IAEzB,CAACx1C,GAAgBw1C,IAEpB,IAAM6D,GAA+CpH,EACjDgC,GACE/6C,EAAM2G,cACN22C,EAAwB7sD,WACxB6sD,EAAwBrqD,MAE1B,CACEA,KAAM,GACNxC,WAAY,IAGZ2vD,GAA4C,IAAnBt5C,GACzBu5C,GACJtH,GAAgBoH,GAA4B1vD,WAAWb,QAAU,EAC7D0wD,GACJ/B,GAAYO,EAAwBlvD,OAAS,EACzCmrC,GACHge,IACEqH,IAA0BC,KAC5B9B,GAAY+B,GAeTC,GACJF,IAAmCC,GAC9BvH,GAAgBh6C,OAAuBw/C,GAAYt/C,KACpDzJ,GAAa4oC,KACbt/B,KACAshD,GACAjmC,aAAsBnT,GAAYF,IAClC,GAEA9D,GACH+1C,GAAgBqH,IAA0B/D,GAC1CkC,GAAY+B,GAETE,GAAWzH,EAAe/5C,KAAkBE,MAElD,OACE6qB,EAAA71B,EAAA4N,cAAC+4B,GAAA,EAAD,KACE9Q,EAAA71B,EAAA4N,cAAC2+C,GAAD,CACE3K,UAAW,kBAAMA,EAAUoH,IAC3BlH,eAAgBA,EAChBD,aAAcA,EACd95C,MAAO+D,EAAMogC,OACb6V,YAAaA,EACbC,kBAAmBA,EACnBC,cAAeA,EACfC,SAAUp2C,EAAMo2C,SAChBC,eAAgBA,EAChBC,iBAAkB+J,GAClB9J,mBAAoB,kBAAM8G,EAAkBC,IAC5C9G,WAAYx2C,EAAMw2C,WAClBC,iBAAkBA,EAClBC,aAAa,EACbC,gBAAgB,IAGlB5sB,EAAA71B,EAAA4N,cAAC87C,GAAD,CAAaxjB,UAAW6jB,GAAuByB,IAE/C31B,EAAA71B,EAAA4N,cAAC+4B,GAAA,EAAD,MAEA9Q,EAAA71B,EAAA4N,cAAC4+C,GAAD,CACE1H,0BAA2BA,EAC3Bh2C,oBAAqBA,GACrB+D,UAAWA,GACX7U,kBAAmBA,EACnB6mD,aAAcA,EACdvjD,WAAYA,GACZsjD,wBAAwB,IAG1B/uB,EAAA71B,EAAA4N,cAACg5B,GAAA,EAAD,CACEC,aAAcA,GACdC,OAhEc,WAClBA,EAAO,CACL2lB,aAAc5H,EACd6H,iBAAkB,CAChBnvD,YAAa8M,EAAU1D,GACvB3D,SAAU8I,EAAMw2C,WAChB/hD,QAASmF,GAEXsB,gBAAiBilD,KAEnBlxB,KAuDIA,SAAUA,EACVgM,eAAgBslB,GAChBrlB,eAAe,OACfx5B,UAAWsB,GACXw9C,SAAUA,GACVrlB,qBAAsBmhB,gDCjYxBuE,GAAoB,SAACC,GAAD,OACxBA,EAAa1xD,IAAI,SAAA0L,GACf,IAAMuD,EAAQvD,EAAEuD,MAAM,eAGtB,MAAO,CAAE6H,IAFG7H,EAAQA,EAAM,GAAK,GAEjB4H,IADF5H,EAAQA,EAAM,GAAK,OAO7B0iD,GAAc,SAAC9kD,EAAcwhD,EAAeuD,GAAmB,IAC3D96C,EAAajK,EAAbiK,IAAKD,EAAQhK,EAARgK,IACPg7C,EAASruC,SAAS1M,EAAK,IACvBg7C,EAAStuC,SAAS3M,EAAK,IAC7B,OAAIG,MAAM66C,MACN76C,MAAM86C,IACHD,GAAUC,IAGbC,GAAe,SAACC,GAAD,OAAqBA,EAAOpU,MAAM+T,KAWjDM,GAAc,SAACD,EAAiBpjD,GACpC,IAAM4gD,EAAQ52B,OAAOhqB,GACrB,OAAOojD,EAAOpU,MAAM,SAAA3lB,GAClB,IAAMi6B,EAAKj6B,EAAEnhB,IAAM,IAAMmhB,EAAEphB,IAC3B,OAAO24C,EAAM2C,KAAKD,MAIhBE,GAAgB,SAAChxD,EAA8BiB,GAA/B,OACpBjB,EAAWqI,KAAK,SAAA9G,GAAC,OAAIA,EAAEN,cAAgBA,KAEnCgwD,GAAiB,SAACC,EAAuBnjD,GAAxB,OACrB4iD,GAAaO,KArBO,SAACN,GACrB,IAAMO,EAAeC,KAAOR,EAAQ,SAAA/5B,GAAC,OAAIzU,SAASyU,EAAEnhB,IAAK,MACzD,OAAOy7C,EAAarmD,KAAK,SAAC+rB,EAAGh0B,GAAJ,OACjB,IAANA,GAEIuf,SAASyU,EAAEnhB,IAAK,KAAO0M,SAAS+uC,EAAatuD,EAAI,GAAG4S,IAAK,MAiB9D47C,CAAcH,IACfL,GAAYK,EAAcnjD,EAAUP,SAOzB8jD,GAA0B,SAACC,GAAD,OACrCA,EAAW3yD,IAAI,SAAAqT,GAAA,IAAGyD,EAAHzD,EAAGyD,IAAKD,EAARxD,EAAQwD,IAAR,SAAAxT,OAAqByT,EAArB,KAAAzT,OAA4BwT,MAEvC+7C,GAAoB,SACxBr7C,EACAlW,EACAyrD,EACA7oD,GAEA,IAAM4uD,EAAgBpmD,KAAKqgD,GACrBgG,EAAiBv7C,EAAc5W,IAAIkyD,GACzC,OAAIC,EACKA,EAAejyD,OAAS,EAE7BQ,EAAW4C,GACN5C,EAAW4C,GAAGpD,MAEhB,GAGHkyD,GAA0B,SAC9Bx7C,EACAlV,EACA2wD,EACAlnD,GAEA,IAAMmnD,EAAYnnD,EAAgBzK,WAC5B6xD,EAAoBF,EAAYhzD,IAAoB,SAAC2yD,EAAY1uD,GACrE,IAAMoB,EAAUqtD,GAAwBC,GACxC,MAAO,CACLvxD,WAAY,CACV,CACEiB,cACAgD,YAGJxE,MAAO+xD,GAAkBr7C,EAAe07C,EAAW5tD,EAASpB,GAC5DlD,KAAM,KAIV,MAAO,CACL8C,KAAMiI,EAAgBjI,KACtBxC,WAAY6xD,IAiBVC,GAAmB,SACvBhkD,EACAikD,EACAtnD,GAEA,GAAIsnD,EAAe5yD,SAAWsL,EAAgBzK,WAAWb,OACvD,MAAO,CAACixD,GAAkB2B,IAE5B,IACM/tD,EAtBe,SAAC8J,EAAsB9N,GAO5C,OAAOgyD,KAAQhyD,EANE,SAACE,GAChB,IAAK4N,EAAW,MAAO,GACvB,IAAMmkD,EAAYlB,GAAc7wD,EAAKH,WAAY+N,EAAU1D,IAC3D,OAAK6nD,GAAcA,EAAUjuD,SAAYiuD,EAAUjuD,QAAQ,GACpDiuD,EAAUjuD,QAAQ,GAD6C,IAGnC,OAcjBkuD,CAAepkD,EAAWrD,EAAgBzK,YAClCrB,IAAI,SAAA0C,GAC9B,IAAM4wD,EAAYlB,GAAc1vD,EAAEtB,WAAY+N,EAAU1D,IACxD,OAAO6nD,EAAYA,EAAUjuD,QAAU,KAEzC,OAAOA,EAAQ7E,OACX6E,EAAQrF,IAAI,SAAAiG,GAAC,OAAIwrD,GAAkBxrD,KACnC,CAAC,CAAC,CAAE6Q,IAAK,GAAID,IAAK,OA+LT28C,GA5KW,SAAAt6C,GAUb,IATX3B,EASW2B,EATX3B,cACApI,EAQW+J,EARX/J,UACAikD,EAOWl6C,EAPXk6C,eACAtnD,EAMWoN,EANXpN,gBACAw/C,EAKWpyC,EALXoyC,YACArE,EAIW/tC,EAJX+tC,eACAmH,EAGWl1C,EAHXk1C,qBACAG,EAEWr1C,EAFXq1C,qBACAp6C,EACW+E,EADX/E,wBACWO,EACeC,mBAAqB,CAC7Cq9C,OAAQmB,GAAiBhkD,EAAWikD,EAAgBtnD,KAF3C8I,EAAAjT,OAAA6gC,EAAA,EAAA7gC,CAAA+S,EAAA,GACJ9D,EADIgE,EAAA,GACG8xB,EADH9xB,EAAA,GAAAI,EAI2CL,oBACpD,GALSM,EAAAtT,OAAA6gC,EAAA,EAAA7gC,CAAAqT,EAAA,GAIJy+C,EAJIx+C,EAAA,GAIiBy+C,EAJjBz+C,EAAA,GAOH+8C,EAAWphD,EAAXohD,OACF2B,EAvDqB,SAAC3B,GAAD,OAC3BA,EAAOntD,OAAO,SAAC2S,EAAKC,GAAN,OAAcD,EAAInU,OAAOoU,IAAM,IAsDnBm8C,CAAqB5B,GAE/C58C,oBAAU,WACJq+C,IACF/sB,EAAS,CACPsrB,OAAQmB,GAAiBhkD,EAAWikD,EAAgBtnD,KAEtD4nD,GAAuB,KAExB,CAACvkD,EAAWikD,EAAgBtnD,EAAiB2nD,IAEhD,IAhI0BnB,EAAuB1jD,EA4P3CilD,EAAcxB,GAAesB,EAAmBxkD,GAEhDgiD,GA9PoBmB,EA+PxBqB,EA/P+C/kD,EAgQ/CO,EAAUP,OA/PXmjD,GAAaO,IAAkBL,GAAYK,EAAc1jD,GAEtD,8BADA,qBAiQJ,MAAO,CACLojD,SACA8B,SAlIe,SACfC,EACA1F,EACAl8C,EACAtF,GAEA65B,EAAS,SAAAuD,GAAa,IACZ+nB,EAAW/nB,EAAX+nB,OACFgC,EAAiBhC,EAAO+B,GACxBE,EAAuBvB,GAAwBsB,GAC/CE,EAAuBznD,KAAKwnD,GAC5BpI,EAAkBt0C,EAAc5W,IAAIuzD,GACpCC,EACHtI,GAAmBA,EAAgBhrD,OAAU,GAC1CuzD,EACHvI,GAAmBA,EAAgB9qD,MAAS,GAC/CwtD,EAAqB2F,GAErB,IAAMG,EAAQ1yD,OAAAolC,EAAA,EAAAplC,CAAA,GAAQqyD,EAAe3F,GAAvB1sD,OAAAqlC,GAAA,EAAArlC,CAAA,GAAgCwQ,EAAOtF,IAC/CynD,EAAa,GAAAjxD,OAAA1B,OAAAmlC,GAAA,EAAAnlC,CACdqyD,EAAetuD,MAAM,EAAG2oD,IADV,CAEjBgG,GAFiB1yD,OAAAmlC,GAAA,EAAAnlC,CAGdqyD,EAAetuD,MAAM2oD,EAAQ,EAAG2F,EAAexzD,UAE9C+zD,EAAsBD,EAAct0D,IAAI,SAAAi4B,GAAC,SAAA50B,OAAO40B,EAAEnhB,IAAT,KAAAzT,OAAgB40B,EAAEphB,OAC3D29C,EAAsB/nD,KAAK8nD,GACjCnG,EAAqBoG,EAAqB,CACxC3zD,MAAOszD,EACPpzD,KAAMqzD,IAGR,IAAMK,EAAS,GAAApxD,OAAA1B,OAAAmlC,GAAA,EAAAnlC,CACVqwD,EAAOtsD,MAAM,EAAGquD,IADN,CAEbO,GAFa3yD,OAAAmlC,GAAA,EAAAnlC,CAGVqwD,EAAOtsD,MAAMquD,EAAa,EAAG/B,EAAOxxD,UAGnCk0D,EAAgB3B,GACpBx7C,EACApI,EAAU1D,GACVgpD,EACA3oD,GAKF,OAHAw/C,EAAYoJ,GACZvgD,GAAwB,GAEjB,CACL69C,OAAQyC,MAoFZE,YA/EkB,SAACZ,EAAoB1F,GACvC,OAAO3nB,EAAS,SAAAuD,GAAa,IACnB+nB,EAAW/nB,EAAX+nB,OACFgC,EAAiBhC,EAAO+B,GACxBE,EAAuBD,EAAeh0D,IAAI,SAAAi4B,GAAC,SAAA50B,OAAO40B,EAAEnhB,IAAT,KAAAzT,OAAgB40B,EAAEphB,OAC7Dq9C,EAAuBznD,KAAKwnD,GAE5BI,EAAQ,GAAAhxD,OAAA1B,OAAAmlC,GAAA,EAAAnlC,CACTqyD,EAAetuD,MAAM,EAAG2oD,IADf1sD,OAAAmlC,GAAA,EAAAnlC,CAETqyD,EAAetuD,MAAM2oD,EAAQ,EAAG2F,EAAexzD,UAE9Ci0D,EAAYJ,EAAS7zD,OAAT,GAAA6C,OAAA1B,OAAAmlC,GAAA,EAAAnlC,CAETqwD,EAAOtsD,MAAM,EAAGquD,IAFP,CAGZM,GAHY1yD,OAAAmlC,GAAA,EAAAnlC,CAITqwD,EAAOtsD,MAAMquD,EAAa,EAAG/B,EAAOxxD,UAJ3B,GAAA6C,OAAA1B,OAAAmlC,GAAA,EAAAnlC,CAOTqwD,EAAOtsD,MAAM,EAAGquD,IAPPpyD,OAAAmlC,GAAA,EAAAnlC,CAQTqwD,EAAOtsD,MAAMquD,EAAa,EAAG/B,EAAOxxD,UAGvCk0D,EAAgB3B,GACpBx7C,EACApI,EAAU1D,GACVgpD,EACA3oD,GAOF,OALAw/C,EAAYoJ,GAEZnG,EAAqB2F,GACrB//C,GAAwB,GAEjB,CACL69C,OAAQyC,MA8CZG,SAzCe,SAACC,GAChB,OAAOnuB,EAAS,SAAAuD,GAAa,IACnB+nB,EAAW/nB,EAAX+nB,OACFyC,EAAS,GAAApxD,OAAA1B,OAAAmlC,GAAA,EAAAnlC,CACVqwD,EAAOtsD,MAAM,EAAGmvD,EAAQ,IADd,CAEb,CAAC,CAAE/9C,IAAK,GAAID,IAAK,MAFJlV,OAAAmlC,GAAA,EAAAnlC,CAGVqwD,EAAOtsD,MAAMmvD,EAAQ,EAAG7C,EAAOxxD,UAGhCi0D,EAAUj0D,QAAU,GACtBymD,EAAe3nD,MAGjB,IAAMo1D,EAAgB3B,GACpBx7C,EACApI,EAAU1D,GACVgpD,EACA3oD,GAKF,OAHAw/C,EAAYoJ,GACZvgD,GAAwB,GAEjB,CACL69C,OAAQyC,MAmBZK,iBAduB,kBAjSH,SAAC9C,GAAD,OACtBA,EAAOhyD,IAAI,SAAAi4B,GAAC,OAAIA,EAAEj4B,IAAI,SAAAiK,GAAA,IAAG6M,EAAH7M,EAAG6M,IAAKD,EAAR5M,EAAQ4M,IAAR,SAAAxT,OAAqByT,EAArB,KAAAzT,OAA4BwT,OAgSnBk+C,CAAgB/C,IAe7Cj+C,0BAzIgC,kBAChC2/C,GAAwBD,IAyIxBI,cACA1C,w1BCxUI6D,GAAQxjB,QAARwjB,IAoBF3V,GAAkBvuC,kBANA,SAAA7G,KACtBgrD,gBADsBhrD,EAEtBirD,UAFsB,IAGnB3iD,EAHmB5Q,OAAAspC,EAAA,EAAAtpC,CAAAsI,EAAA,wCAII0wB,EAAA71B,EAAA4N,cAAC6tB,EAAA,UAAchuB,IAEnBzB,CAAHqkD,KAMH,SAAAnkD,GAAK,OACnBA,EAAMikD,iBAAuC,KAApBjkD,EAAMkkD,UAAmB,UAAY,YAG5DE,GAAgBtkD,UAAOc,IAAVyjD,MAWbC,GAAmBxkD,kBAAOge,KAAPhe,CAAHykD,MAKhBC,GAAsB1kD,kBAAOwkD,GAAPxkD,CAAH2kD,MAYnBC,GAAmB5kD,UAAO2uB,IAAVk2B,MA8FPC,GAvEW,SAAAviD,GAYI,IAX5BwiD,EAW4BxiD,EAX5BwiD,YACA9B,EAU4B1gD,EAV5B0gD,WACA+B,EAS4BziD,EAT5ByiD,MACAhC,EAQ4BzgD,EAR5BygD,SACAzF,EAO4Bh7C,EAP5Bg7C,MACAuG,EAM4BvhD,EAN5BuhD,SACAD,EAK4BthD,EAL5BshD,YACAoB,EAI4B1iD,EAJ5B0iD,eACAC,EAG4B3iD,EAH5B2iD,qBACAC,EAE4B5iD,EAF5B4iD,SACAC,EAC4B7iD,EAD5B6iD,SAeA,OACEv7B,EAAA71B,EAAA4N,cAAC0iD,GAAD,KACEz6B,EAAA71B,EAAA4N,cAACyjD,GAAD,CACEhkD,KAAK,SACLyE,KAAK,IACL/J,MAAOipD,EAAMh/C,IACbo+C,UAAWY,EAAMh/C,IAAI7J,WACrB8J,SAAU,SAAC1I,GAAD,OACRylD,EAASC,EAAY1F,EAAO,MAAOhgD,EAAE4I,cAAcpK,QAErDiK,IAAKm/C,EAAShpD,WACd4J,IAAKq/C,EAASjpD,WACdmpD,OAzBgB,SAAC/nD,GACrB,IAAMyI,EAAM9V,WAAWqN,EAAE4I,cAAcpK,QACnCiK,EAAMm/C,GAAYn/C,EAAMo/C,IAC1BpC,EAASC,EAAY1F,EAAO,MAAO4H,EAAShpD,aAuB1CgoD,gBAAiBe,IAElB,MACDr7B,EAAA71B,EAAA4N,cAACyjD,GAAD,CACEhkD,KAAK,SACLyE,KAAK,IACL/J,MAAOipD,EAAMj/C,IACbq+C,UAAWY,EAAMj/C,IAAI5J,WACrB8J,SAAU,SAAC1I,GAAD,OACRylD,EAASC,EAAY1F,EAAO,MAAOhgD,EAAE4I,cAAcpK,QAErDiK,IAAKm/C,EAAShpD,WACd4J,IAAKq/C,EAASjpD,WACdmpD,OAjCgB,SAAC/nD,GACrB,IAAMwI,EAAM7V,WAAWqN,EAAE4I,cAAcpK,QACnCgK,EAAMo/C,GAAYp/C,EAAMq/C,IAC1BpC,EAASC,EAAY1F,EAAO,MAAO6H,EAASjpD,aA+B1CgoD,gBAAiBe,IAEnBr7B,EAAA71B,EAAA4N,cAAC8iD,GAAD,CACE18C,SAAU+8C,EACVr7C,QAAS,kBAAMo6C,EAASb,KAExBp5B,EAAA71B,EAAA4N,cAACsiD,GAAD,OAEFr6B,EAAA71B,EAAA4N,cAAC4iD,GAAD,CACEx8C,SAAUi9C,EACVv7C,QAAS,kBAAMm6C,EAAYZ,EAAY1F,KAEvC1zB,EAAA71B,EAAA4N,cAACgjD,GAAD,CAAkBz4B,IAAKo5B,KAAYn5B,IAAI,ywBC7H/C,IAMMo5B,GAAQxlD,UAAOc,IAAV2kD,MAkBLC,GAAkB1lD,kBAJN,SAAA7G,GAAyCA,EAAtC+gC,UAAsC,IAAxBz4B,EAAwB5Q,OAAAspC,EAAA,EAAAtpC,CAAAsI,EAAA,eACzD,OAAO0wB,EAAA71B,EAAA4N,cAAA,MAASH,IAGMzB,CAAH2lD,KAEL,SAAAzlD,GAAK,OAAIA,EAAMg6B,YAIzB0rB,GAAkB5lD,kBAAOqhB,KAAPrhB,CAAH6lD,MASfC,GAAkB9lD,UAAOc,IAAVilD,MAKfpS,GAAa3zC,kBAAOuhB,KAAPvhB,CAAHgmD,MA0TDC,GA/Qc,SAAA1jD,GAeD,IAd1B04C,EAc0B14C,EAd1B04C,MACA1mD,EAa0BgO,EAb1BhO,QACAmnD,EAY0Bn5C,EAZ1Bm5C,uBACAC,EAW0Bp5C,EAX1Bo5C,uBACAzF,EAU0B3zC,EAV1B2zC,SACAnnB,EAS0BxsB,EAT1BwsB,SACA+L,EAQ0Bv4B,EAR1Bu4B,OACAz8B,EAO0BkE,EAP1BlE,UACAw9C,EAM0Bt5C,EAN1Bs5C,oBACA7hD,EAK0BuI,EAL1BvI,aAEAhI,GAG0BuQ,EAJ1Bk4C,cAI0Bl4C,EAH1BvQ,mBACA+rD,EAE0Bx7C,EAF1Bw7C,qBACA/6C,EAC0BT,EAD1BS,4BAEMgzC,EAAoB33C,EAAU2/C,kBAC9B/H,EAAgB53C,EAAU4/C,mBAC1BS,EAAQ52B,OAAOzpB,EAAUP,QAEzBqnD,EA1DiB,SAACzG,GAGxB,IAFA,IAAI14C,EAlDU,GAmDVkgD,EAAWlgD,EAAI7J,WAAa,KAAO6J,EAAM,GAAG7J,YACxCuiD,EAAM2C,KAAK6E,IAAW,CAE5B,IADAlgD,GAAY,GApDA,GAsDV,OAAO,EAETkgD,EAAWlgD,EAAI7J,WAAa,KAAO6J,EAAM,GAAG7J,WAE9C,OAAO6J,EAgDUmgD,CAAiBzH,GAC5B0G,EA9CiB,SAAC1G,GAGxB,IAFA,IAAI34C,EA9DU,GA+DVmgD,GAAYngD,EAAM,GAAG5J,WAAa,IAAM4J,EAAI5J,YACxCuiD,EAAM2C,KAAK6E,IAAW,CAE5B,IADAngD,GAAY,GAlEA,GAoEV,OAAO,EAETmgD,GAAYngD,EAAM,GAAG5J,WAAa,IAAM4J,EAAI5J,WAE9C,OAAO4J,EAoCUqgD,CAAiB1H,GANRP,EAqBtB1C,GAAiB,CACnBp9C,YACA48C,QACA1mD,UACAmnD,yBACAC,yBACAC,gBAAiB1F,EACjB2F,sBACA7pD,sBApBOq0D,EATiBlI,EASxBr+C,MACAq2C,EAVwBgI,EAUxBhI,eACAgH,EAXwBgB,EAWxBhB,kBACA5G,EAZwB4H,EAYxB5H,iBACA+G,EAbwBa,EAaxBb,qBACA9C,EAdwB2D,EAcxB3D,YACAgD,EAfwBW,EAexBX,2BACApB,EAhBwB+B,EAgBxB/B,wBACAD,EAjBwBgC,EAiBxBhC,qBACAsB,EAlBwBU,EAkBxBV,qBACAp6C,EAnBwB86C,EAmBxB96C,wBACAD,EApBwB+6C,EAoBxB/6C,wBAYIy1C,EAAewN,EAAmBnQ,WAAa1nD,KAhC3B83D,EA2CtB5D,GAAkB,CACpBj8C,cAAe4/C,EAAmB5/C,cAClCpI,YACAikD,eAAgB5G,EAChB1gD,gBAAiBqrD,EAAmBrrD,gBACpCw/C,cACArE,iBACAmH,uBACAG,uBACAp6C,4BAjBA69C,EAnCwBoF,EAmCxBpF,OACA8B,EApCwBsD,EAoCxBtD,SACAa,EArCwByC,EAqCxBzC,YACAC,EAtCwBwC,EAsCxBxC,SACAE,EAvCwBsC,EAuCxBtC,iBACA/gD,EAxCwBqjD,EAwCxBrjD,0BACA8/C,EAzCwBuD,EAyCxBvD,YACiBwD,EA1COD,EA0CxBjG,gBA1CwBL,EAsFtBx5C,aAAoB,CACtBC,cAAe4/C,EAAmB5/C,cAClCzU,sBANA6U,EAlFwBm5C,EAkFxBn5C,UACAvR,EAnFwB0qD,EAmFxB1qD,WACAsR,EApFwBo5C,EAoFxBp5C,eACAE,EArFwBk5C,EAqFxBl5C,WAMFxC,oBAAU,WACe,IAAnBsC,GACFw1C,GAAwB,IAEzB,CAACx1C,EAAgBw1C,IAEpB,IAAM8D,EAA4C,IAAnBt5C,EACzB4/C,EAAwBtF,EAAOxxD,QAAU,EAEzCmrC,GACHkoB,GACAlK,IAAiBqH,GAA0BsG,GAExCC,EAAuB1D,EAEzBlK,EACF2N,EACE38B,EAAA71B,EAAA4N,cAAA,oDACEs+C,EACFr2B,EAAA71B,EAAA4N,cAAA,YACGkF,EADH,kBAC6B+iB,EAAA71B,EAAA4N,cAAA,SAAIlO,KAAKS,IAAIyS,IAD1C,6BAKA,GAEA,KAZF2/C,EAcIG,GAAoB,SAAC1B,GAAD,MAAwC,MAAnBA,EAAM16B,KAAK,KAIpDxnB,GACJ+1C,GAAgBqH,GAA0B/D,EA5HlBv4C,GA8HUC,oBAAS,GA9HnBC,GAAAjT,OAAA6gC,EAAA,EAAA7gC,CAAA+S,GAAA,GA8HnB+iD,GA9HmB7iD,GAAA,GA8HP8iD,GA9HO9iD,GAAA,GAqIpBw8C,GAAWzH,EAAe/5C,KAAkBE,MAElD,OACE6qB,EAAA71B,EAAA4N,cAAC+4B,GAAA,EAAD,KACE9Q,EAAA71B,EAAA4N,cAAC2+C,GAAD,CACEvK,kBAAmBA,EACnBC,cAAeA,GAAiBuQ,EAChC7P,qBA9ON,gHA+OMT,SAAUmQ,EAAmBnQ,SAC7BC,eAAgBA,EAChBC,gBAAiB8K,EAAOxxD,QAAU,EAClC2mD,mBAAoB,kBAClB8G,EAAkBkJ,EAAmBrrD,iBAAiB,IAExDs7C,WAAY+P,EAAmB/P,WAC/BC,iBAAkBA,EAClBC,aAAa,EACbC,gBAAgB,IAGlB5sB,EAAA71B,EAAA4N,cAAC8jD,GAAD,CAAiBxrB,UAAW6jB,GACzBmD,EAAOhyD,IAAI,SAAC2yD,EAAqBoB,GAChC,IAAMxD,EAAmBmC,GAAwBC,GAC3CjC,EAAiC,CACrCruD,YAAa8M,EAAU1D,GACvBpG,QAASkrD,GAELjE,EAAmB7/C,KAAK8jD,GACxB1E,EAAkBsL,EAAmB5/C,cAAc5W,IACvD2rD,GAEIqE,EACH9E,GAAmBA,EAAgBhrD,OAhMhB,SAC9B0W,EACA82C,GAEA,IAAM5tD,EAAMJ,MAAMC,KAAKiX,EAAchX,QAAQ8tD,GACvCxC,EAAkBt0C,EAAc5W,IAAIF,GAC1C,OAAQorD,GAAmBA,EAAgBhrD,OAAU,GA2L3C82D,CACER,EAAmB5/C,cACnBw8C,GAIExgD,EAA4B,CAChC1S,MAA0B,KAAnB8vD,EAAwB,EAAIA,EACnCvvD,WAAY,CAACsvD,GACb3vD,KALqB8qD,GAAmBA,EAAgB9qD,MAAS,GAQnE,OACE45B,EAAA71B,EAAA4N,cAACgkD,GAAD,CAAiBj2D,IAAKszD,EAAY3hC,mBAAoBu3B,GACpDhvB,EAAA71B,EAAA4N,cAACklD,GAAD,CAAYn3D,IAAKszD,GACdpB,EAAW3yD,IAAI,SAACi4B,EAAGh0B,GAAJ,OACd02B,EAAA71B,EAAA4N,cAACkkD,GAAD,CAAiBn2D,IAAKwD,GACpB02B,EAAA71B,EAAA4N,cAAC4jD,GAAD,KACS,IAANryD,EAAA,GAAAZ,OAAa0wD,EAAa,EAA1B,KAAiCp5B,EAAA71B,EAAA4N,cAAA,mBAEpCioB,EAAA71B,EAAA4N,cAACmlD,GAAD,CACE9D,WAAYA,EACZtzD,IAAKwD,EACL6xD,MAAO79B,EACPo2B,MAAOpqD,EACP6vD,SAAUA,EACVa,YAAaA,EACbC,SAAUA,EACViB,YAzEaf,IAAmB5oD,KAAKsrD,IA0ErCzB,eAAgB/D,EAAOxxD,OAAS,EAChCw1D,qBAAsByB,GACtBxB,SAAUA,EACVC,SAAUA,QAKjBvM,EACChvB,EAAA71B,EAAA4N,cAACklD,GAAD,KACEj9B,EAAA71B,EAAA4N,cAACU,GAAA,EAAD,CACEG,UAAWA,EACXpS,WAAYg2D,EAAmBrrD,gBAC/BjL,MAAO8vD,EACPr9C,WAAY,SAAA5C,GAAC,OAAI09C,EAAqB9B,EAAkB57C,IACxD8C,0BAA2B86C,EAC3BxrD,kBAAmBA,EACnB2Q,eAAgB,EAChBC,oBAAoB,EACpBrD,WAAYvF,EACZ8I,oBAAqBq5C,EACrBp5C,iBAAiB,EACjBC,4BAA6BA,EAC7BC,0BAA2BA,EAC3BG,wBAAyBA,EACzBC,wBAAyBA,KAI7BwmB,EAAA71B,EAAA4N,cAAA,gBAOVioB,EAAA71B,EAAA4N,cAAC+4B,GAAA,EAAD,MAEA9Q,EAAA71B,EAAA4N,cAAC4+C,GAAD,CACE19C,oBAAqBA,GACrB+D,UAAWA,EACX7U,kBAAmBA,EACnB6mD,aAAcA,EACdvjD,WAAYA,EACZsjD,wBAAwB,IAG1B/uB,EAAA71B,EAAA4N,cAACg5B,GAAA,EAAD,CACEC,aAAcA,EACdC,OA7Lc,WAClB,IA1EoBxX,EA0Eds9B,EAAeoD,IACfgD,EAAqBnO,EACvBgC,GACEwL,EAAmB5/C,cACnB4/C,EAAmBrrD,gBAAgBzK,WACnC81D,EAAmBrrD,gBAAgBjI,MAErC,CACEA,KAAM,GACNxC,WAAY,IAGlBuqC,EAAO,CACL2lB,aAAc5H,EACd6H,iBAAkB,CAChBnvD,YAAa8M,EAAU1D,GACvB3D,SAAUqvD,EAAmB/P,WAC7B/hD,SA3FgB+uB,EA2FQs9B,EA1F9Bt9B,EAAIvvB,OAAO,SAAC2S,EAAKC,GAAN,OAAcD,EAAInU,OAAOoU,IAAM,MA4FtC3L,gBAAiBgsD,IAGnBj4B,KAuKIA,SAAUA,EACVgM,eAAgB0rB,EAChBzrB,eAAe,OACfslB,SAAUA,GACV9+C,UAAWsB,GACXm4B,qBA1HuB,SAAChnC,GAC5B2yD,GAAc3yD,GACdmoD,EAAwBnoD,yMC7O5B,IAAMgzD,GAAcjnD,kBAAOwhB,KAAPxhB,CAAHknD,MAIXtnB,GAAQ5/B,UAAOc,IAAVqmD,MAiLIC,GAtKe,SAAAjuD,GAYF,IAX1B8hD,EAW0B9hD,EAX1B8hD,MACA58C,EAU0BlF,EAV1BkF,UACA0wB,EAS0B51B,EAT1B41B,SACA+L,EAQ0B3hC,EAR1B2hC,OACAvmC,EAO0B4E,EAP1B5E,QAO0B8yD,EAAAluD,EAN1BuiD,8BAM0B,IAAA2L,EAND,GAMCA,EAL1BxL,EAK0B1iD,EAL1B0iD,oBACAF,EAI0BxiD,EAJ1BwiD,uBACAzF,EAG0B/8C,EAH1B+8C,SAG0BoR,EAAAnuD,EAF1B0E,sBAE0B,IAAAypD,EAFT,GAESA,EAD1Bt1D,EAC0BmH,EAD1BnH,kBAGMu1D,ECpD6B,aDmDPlpD,EAApB1D,GAGF+jC,KACAD,KACAllC,EAAOmiD,EAAyBA,EAAuBpxB,KAAK,MAAQ,GACpErsB,EAAaL,cAAmBrE,EAAMsE,EAAgBQ,EAAUP,QAChE0pD,EAAiB/pD,aAAgBlE,GAAM7J,OAAS63D,EAChD1sB,EAAwB,KAATthC,GAAe0E,EAAWvO,QAAU,GAAK83D,EATpC5jD,EAWAC,mBAAgB,CACxCtK,OACAshC,eACAh9B,eAAgBI,EAChBupD,mBAfwB1jD,EAAAjT,OAAA6gC,EAAA,EAAA7gC,CAAA+S,EAAA,GAWnB9D,EAXmBgE,EAAA,GAWZ8xB,EAXY9xB,EAAA,GAiBpB2jD,EAAa,IAAIC,WAjBGvJ,EAuBtB1C,GAAiB,CACnBp9C,YACA48C,QACA1mD,UACAmnD,yBACAC,yBACAC,gBAAiB1F,EACjB2F,sBACA7pD,sBAXOq0D,EApBiBlI,EAoBxBr+C,MACAq2C,EArBwBgI,EAqBxBhI,eACAI,EAtBwB4H,EAsBxB5H,iBAqFI8J,EAAmBvgD,EAAMvG,KAAK7J,OAEhCoQ,EAAM0nD,eACN7oB,aAAoC4oB,GACpC,oBAHA,uBAKJE,EAAWE,OAvDU,WACnB,IAAMlyB,EAAIgyB,EAAWt4D,OACfoK,EAAa,OAANk8B,EAAa,GAAKA,EAAEt5B,WAC3BmB,EAAcM,cAClBrE,EACAsE,EACAQ,EAAUP,QAEN0pD,EAAiB/pD,aAAgBlE,GAAM7J,OAAS63D,EAChD1sB,EACK,KAATthC,GAAe+D,EAAY5N,QAAU,GAAK83D,EAE5C5xB,EAAS,CACP4xB,iBACA3sB,eACAthC,OACAsE,eAAgBP,KAyCpB,IAEMwmB,EAAe,oBAFOhC,aAAqBhiB,EAAMjC,gBAAgB,GAIvE,OACEgsB,EAAA71B,EAAA4N,cAACqlD,GAAD,CAAax7B,OA1CI,SAACluB,GAClB,GAAIA,EAAEqqD,aAAaC,MAAO,CACxBtqD,EAAEuqD,iBACF,IAAMC,EAAQx4D,MAAMC,KAAK+N,EAAEqqD,aAAaC,OACrC70D,OAAO,SAAAG,GAAC,MAAe,SAAXA,EAAEgzB,OACdj3B,IAAI,SAAAiE,GAAC,OAAIA,EAAE60D,cACd,GAAID,GAASA,EAAMr4D,QAAUq4D,EAAM,GAAI,CACrC,IAAMtqC,EAAOsqC,EAAM,GACN,OAATtqC,GAAegqC,EAAWQ,WAAWxqC,OAmC3CoM,EAAA71B,EAAA4N,cAAC2+C,GAAD,CACEvK,kBAAmB33C,EAAU2/C,kBAC7B/H,cAAe53C,EAAU4/C,mBACzB/H,SAAUmQ,EAAmBnQ,SAC7BC,eAAgBA,EAChBG,WAAY+P,EAAmB/P,WAC/BC,iBAAkBA,EAClBC,aAAa,EACbC,gBAAgB,IAGlB5sB,EAAA71B,EAAA4N,cAACsmD,GAAD,8DAEAr+B,EAAA71B,EAAA4N,cAAC+4B,GAAA,EAAD,CAAgB5+B,MAAO+D,EAAMvG,KAAM0M,SApGd,SAAC1I,GACxB,IAAMhE,EAAOgE,EAAE4I,cAAcpK,MACvBuB,EAAcM,cAClBrE,EACAsE,EACAQ,EAAUP,QAEN0pD,EAAiB/pD,aAAgBlE,GAAM7J,OAAS63D,EAChD1sB,EACK,KAATthC,GAAe+D,EAAY5N,QAAU,GAAK83D,EAE5C5xB,EAAS,CACP4xB,iBACA3sB,eACAthC,OACAsE,eAAgBP,OAuFhBusB,EAAA71B,EAAA4N,cAAC+4B,GAAA,EAAD,CAAmB7Z,kBAnFG,SAACvjB,GAAyC,IAC1DwqD,EAAUxqD,EAAE4I,cAAZ4hD,MACJA,GAASA,EAAMr4D,QAAQ+3D,EAAWQ,WAAWF,EAAM,OAmFrDl+B,EAAA71B,EAAA4N,cAAC+4B,GAAA,EAAD,MAEA9Q,EAAA71B,EAAA4N,cAACg5B,GAAA,EAAD,CACEC,aAAc/6B,EAAM+6B,aACpBC,OAnDY,WAChBA,EAAO,CACL2lB,cAAc,EACdC,iBAAkB,CAChBnvD,YAAa8M,EAAU1D,GACvB3D,SAAUqvD,EAAmB/P,WAC7B/hD,QAASkJ,aAAgBqC,EAAMvG,OAEjCyB,gBAAiB,CACfjI,KAAM,GACNxC,WAAY,MAGhBw+B,KAuCIA,SAAUA,EACVgM,eAAgBslB,EAChBrlB,eAAe,OACfx5B,UAAW1B,EAAMjC,eAAenO,OAAS,EACzC4wD,SAAUx8B,EACVmX,qBAAsB,kNE/K9B,IAAMgsB,GAAcjnD,kBAAOwhB,KAAPxhB,CAAHmoD,MAIXvoB,GAAQ5/B,UAAOc,IAAVsnD,MAiLIhB,GAtKe,SAAAjuD,GAYF,IAX1B8hD,EAW0B9hD,EAX1B8hD,MACA58C,EAU0BlF,EAV1BkF,UACA0wB,EAS0B51B,EAT1B41B,SACA+L,EAQ0B3hC,EAR1B2hC,OACAvmC,EAO0B4E,EAP1B5E,QAO0B8yD,EAAAluD,EAN1BuiD,8BAM0B,IAAA2L,EAND,GAMCA,EAL1BxL,EAK0B1iD,EAL1B0iD,oBACAF,EAI0BxiD,EAJ1BwiD,uBACAzF,EAG0B/8C,EAH1B+8C,SAG0BoR,EAAAnuD,EAF1B0E,sBAE0B,IAAAypD,EAFT,GAESA,EAD1Bt1D,EAC0BmH,EAD1BnH,kBAGMu1D,EDnDkC,SCkDZlpD,EAApB1D,GAGF+jC,KACAD,KACAllC,EAAOmiD,EAAyBA,EAAuBpxB,KAAK,MAAQ,GACpErsB,EAAaL,cAAmBrE,EAAMsE,EAAgBQ,EAAUP,QAChE0pD,EAAiB/pD,aAAgBlE,GAAM7J,OAAS63D,EAChD1sB,EAAwB,KAATthC,GAAe0E,EAAWvO,QAAU,GAAK83D,EATpC5jD,EAWAC,mBAAgB,CACxCtK,OACAshC,eACAh9B,eAAgBI,EAChBupD,mBAfwB1jD,EAAAjT,OAAA6gC,EAAA,EAAA7gC,CAAA+S,EAAA,GAWnB9D,EAXmBgE,EAAA,GAWZ8xB,EAXY9xB,EAAA,GAiBpB2jD,EAAa,IAAIC,WAjBGvJ,EAuBtB1C,GAAiB,CACnBp9C,YACA48C,QACA1mD,UACAmnD,yBACAC,yBACAC,gBAAiB1F,EACjB2F,sBACA7pD,sBAXOq0D,EApBiBlI,EAoBxBr+C,MACAq2C,EArBwBgI,EAqBxBhI,eACAI,EAtBwB4H,EAsBxB5H,iBAqFI8J,EAAmBvgD,EAAMvG,KAAK7J,OAEhCoQ,EAAM0nD,eACN7oB,aAAoC4oB,GACpC,oBAHA,uBAKJE,EAAWE,OAvDU,WACnB,IAAMlyB,EAAIgyB,EAAWt4D,OACfoK,EAAa,OAANk8B,EAAa,GAAKA,EAAEt5B,WAC3BmB,EAAcM,cAClBrE,EACAsE,EACAQ,EAAUP,QAEN0pD,EAAiB/pD,aAAgBlE,GAAM7J,OAAS63D,EAChD1sB,EACK,KAATthC,GAAe+D,EAAY5N,QAAU,GAAK83D,EAE5C5xB,EAAS,CACPiF,eACAthC,OACAsE,eAAgBP,EAChBkqD,oBAyCJ,IAEM1jC,EAAe,oBAFOhC,aAAqBhiB,EAAMjC,gBAAgB,GAIvE,OACEgsB,EAAA71B,EAAA4N,cAACymD,GAAD,CAAa58B,OA1CI,SAACluB,GAClB,GAAIA,EAAEqqD,aAAaC,MAAO,CACxBtqD,EAAEuqD,iBACF,IAAMC,EAAQx4D,MAAMC,KAAK+N,EAAEqqD,aAAaC,OACrC70D,OAAO,SAAAG,GAAC,MAAe,SAAXA,EAAEgzB,OACdj3B,IAAI,SAAAiE,GAAC,OAAIA,EAAE60D,cACd,GAAID,GAASA,EAAMr4D,QAAUq4D,EAAM,GAAI,CACrC,IAAMtqC,EAAOsqC,EAAM,GACN,OAATtqC,GAAegqC,EAAWQ,WAAWxqC,OAmC3CoM,EAAA71B,EAAA4N,cAAC2+C,GAAD,CACEvK,kBAAmB33C,EAAU2/C,kBAC7B/H,cAAe53C,EAAU4/C,mBACzB/H,SAAUmQ,EAAmBnQ,SAC7BC,eAAgBA,EAChBG,WAAY+P,EAAmB/P,WAC/BC,iBAAkBA,EAClBC,aAAa,EACbC,gBAAgB,IAGlB5sB,EAAA71B,EAAA4N,cAAC0mD,GAAD,8DAEAz+B,EAAA71B,EAAA4N,cAAC+4B,GAAA,EAAD,CAAgB5+B,MAAO+D,EAAMvG,KAAM0M,SApGd,SAAC1I,GACxB,IAAMhE,EAAOgE,EAAE4I,cAAcpK,MACvBuB,EAAcM,cAClBrE,EACAsE,EACAQ,EAAUP,QAEN0pD,EAAiB/pD,aAAgBlE,GAAM7J,OAAS63D,EAChD1sB,EACK,KAATthC,GAAe+D,EAAY5N,QAAU,GAAK83D,EAE5C5xB,EAAS,CACPiF,eACAthC,OACAsE,eAAgBP,EAChBkqD,sBAuFA39B,EAAA71B,EAAA4N,cAAC+4B,GAAA,EAAD,CAAmB7Z,kBAnFG,SAACvjB,GAAyC,IAC1DwqD,EAAUxqD,EAAE4I,cAAZ4hD,MACJA,GAASA,EAAMr4D,QAAQ+3D,EAAWQ,WAAWF,EAAM,OAmFrDl+B,EAAA71B,EAAA4N,cAAC+4B,GAAA,EAAD,MAEA9Q,EAAA71B,EAAA4N,cAACg5B,GAAA,EAAD,CACEC,aAAc/6B,EAAM+6B,aACpBC,OAnDY,WAChBA,EAAO,CACL2lB,cAAc,EACdC,iBAAkB,CAChBnvD,YAAa8M,EAAU1D,GACvB3D,SAAUqvD,EAAmB/P,WAC7B/hD,QAASkJ,aAAgBqC,EAAMvG,OAEjCyB,gBAAiB,CACfjI,KAAM,GACNxC,WAAY,MAGhBw+B,KAuCIA,SAAUA,EACVgM,eAAgBslB,EAChBrlB,eAAe,OACfx5B,UAAW1B,EAAMjC,eAAenO,OAAS,EACzC4wD,SAAUx8B,EACVmX,qBAAsB,iBC1KfstB,GArBe,SAACroD,GAG7B,OAFsBA,EAAd7B,UAEUgD,MAChB,IAAK,OACH,OAAOwoB,EAAA71B,EAAA4N,cAAC4mD,GAA0BtoD,GAEpC,IAAK,gBACH,OAAO2pB,EAAA71B,EAAA4N,cAAC6mD,GAAyBvoD,GAEnC,IAAK,SACH,OAAO2pB,EAAA71B,EAAA4N,cAAC8mD,GAA0BxoD,GAEpC,IAAK,UACH,OAAO2pB,EAAA71B,EAAA4N,cAAC+mD,GAA2BzoD,GAErC,QACE,OAAO,grBCZb,IAAM0oD,GAAc5oD,UAAO2uB,IAAVk6B,MAMXtoD,GAAgBP,kBAAOQ,UAAPR,CAAH8oD,MAIb3oB,GAAcngC,kBAAO2wB,YAAP3wB,CAAH+oD,MAWX7gD,GAAclI,UAAOc,IAAVkoD,KAEkB,SAAA9oD,GAAK,OAAIA,EAAMC,MAAMC,aAgFzC6oD,GApEc,SAAA9vD,GAA2B,IAAxBwwB,EAAwBxwB,EAAxBwwB,WAAwBwoB,EAChB1K,qBAAW56B,MAcrCK,WAZV+tC,EAHoD9I,EAGpD8I,MACA58C,EAJoD8zC,EAIpD9zC,UACA0wB,EALoDojB,EAKpDpjB,SACA+L,EANoDqX,EAMpDrX,OACA4gB,EAPoDvJ,EAOpDuJ,uBACAG,EARoD1J,EAQpD0J,oBACAF,EAToDxJ,EASpDwJ,uBACA3pD,EAVoDmgD,EAUpDngD,kBACAyoD,EAXoDtI,EAWpDsI,cACAzgD,EAZoDm4C,EAYpDn4C,aACAk8C,EAboD/D,EAapD+D,SACAr4C,EAdoDs0C,EAcpDt0C,eAGIxE,EAAYN,aAAiBsF,EAAU9J,SASvC20D,EACJ7qD,EAAU8qD,OAASvqB,KACjB/U,EAAA71B,EAAA4N,cAACwnD,GAAD,CACEvkD,QAAQ,oBACRC,UAAU,MACVC,gBAAiB,GAEjB8kB,EAAA71B,EAAA4N,cAACgnD,GAAD,CAAaz8B,IAAKk9B,KAAiBj9B,IAAI,aAEvC,KAEA2xB,EAAuBryC,OAAO49C,YAAc,GAAK,MACjDtmD,EAA8B0I,OAAO49C,YAAc,GAAK,MAE9D,OACEz/B,EAAA71B,EAAA4N,cAAC2nD,GAAD,KACE1/B,EAAA71B,EAAA4N,cAACsG,GAAD,KACG7J,EAAUtL,KACVm2D,GAGHr/B,EAAA71B,EAAA4N,cAAC4nD,GAAD,CACEvO,MAAOA,EACP/E,SAAUA,EACV73C,UAAWA,EACX0wB,SAhCc,WACdA,GACFA,IAEFpF,KA6BImR,OAAQA,EACRvmC,QAAS8E,EACTqiD,uBAAwBA,EACxBG,oBAAqBA,EACrBF,uBAAwBA,EACxB3pD,kBAAmBA,EACnByoD,cAAeA,EACfzgD,aAAcA,EACd+jD,qBAAsBA,EACtB/6C,4BAA6BA,EAC7BnF,eAAgBA,+SCtGxB,IAAM6yB,GAAkB1wB,kBAAO2wB,YAAP3wB,CAAHypD,MAkDNC,GAvBmB,SAAAvwD,GAA2B,IAAxBwwB,EAAwBxwB,EAAxBwwB,WAAwBwoB,EACrB1K,qBAAW56B,MAMrCK,WAJV/F,EAHyDgrC,EAGzDhrC,aACAguB,EAJyDgd,EAIzDhd,aACAC,EALyD+c,EAKzD/c,eACAkC,EANyD6a,EAMzD7a,iBAGF,OACEzN,EAAA71B,EAAA4N,cAAC+nD,GAAD,KACE9/B,EAAA71B,EAAA4N,cAACq1B,GAAA,EAAD,CACEE,MAAM,EACNhwB,aAAcA,EACdiuB,eAAgBA,EAChBD,aAAcA,EACdpG,SAAUpF,EACV2N,iBAAkBA,qkCC7C1B,IAAM6I,GAAcngC,kBAAO2wB,YAAP3wB,CAAH4pD,MASXC,GAAS7pD,UAAOc,IAAVgpD,MAKNC,GAAY/pD,UAAO2uB,IAAVq7B,MAMThjC,GAAQhnB,UAAOiqD,GAAVC,KACwB,SAAAhqD,GAAK,OAAIA,EAAMC,MAAMC,aAIlDoR,GAAUxR,UAAOyH,EAAV0iD,MAIP9Z,GAAUrwC,UAAOc,IAAVspD,KAIsB,SAAAlqD,GAAK,OAAIA,EAAMC,MAAMC,aAGlDiqD,GAAarqD,kBAAOktB,SAAPltB,CAAHsqD,KACM,SAAAnxD,GAAA,OAAAA,EAAGgH,MAAkB+d,aAAa,IAC7C,SAAA3b,GAAA,OAAAA,EAAGpC,MAAkBmI,QAAQ,IAEhB,SAAAF,GAAA,OAAAA,EAAGjI,MAAkB+d,aAAa,KA4D3CqsC,GAtCW,SAAA/hD,GAA2B,IAAxBmhB,EAAwBnhB,EAAxBmhB,WAAwBwoB,EACb1K,qBAAW56B,MACiBK,WAA1D5P,EAF2C60C,EAE3C70C,YAAaktD,EAF8BrY,EAE9BqY,cAAeC,EAFetY,EAEfsY,OAAQC,EAFOvY,EAEPuY,UAE5C,OACE7gC,EAAA71B,EAAA4N,cAAC+oD,GAAD,KACE9gC,EAAA71B,EAAA4N,cAACgpD,GAAD,KACE/gC,EAAA71B,EAAA4N,cAACmoD,GAAD,CAAW59B,IAAK0+B,KAAgBz+B,IAAI,KACpCvC,EAAA71B,EAAA4N,cAACkpD,GAAD,8BAGFjhC,EAAA71B,EAAA4N,cAACmpD,GAAD,KACGztD,EADH,2BACwCktD,EADxC,8EAKA3gC,EAAA71B,EAAA4N,cAACopD,GAAD,KACEnhC,EAAA71B,EAAA4N,cAACyoD,GAAD,CACE3gD,QAAS,WACP+gD,MAFJ,sBAQA5gC,EAAA71B,EAAA4N,cAAC6tB,EAAA,OAAD,CACE/lB,QAAS,WACPghD,IACA/gC,MAHJ,wfCxFR,IAAM2E,GAAetuB,kBAAOktB,SAAPltB,CAAHirD,MAqBZC,GAAYlrD,UAAO2uB,IAAVw8B,MASAC,GAAA,SAAAjyD,GAA2B,IAAxBwwB,EAAwBxwB,EAAxBwwB,WAChB,OACEE,EAAA71B,EAAA4N,cAACypD,GAAD,CAAc3hD,QAASigB,GACrBE,EAAA71B,EAAA4N,cAACspD,GAAD,CAAW/+B,IAAKm/B,wpBC9BtB,IAAMC,GAAgB,SAAC3wD,GACrB,IAAMmW,EAAInW,EAAE4wD,cACZ,OAAOz6C,EAAEsS,OAAO,GAAGxpB,cAAgBkX,EAAEnc,MAAM,IAGvC62D,GAAgB,SAAC7wD,GACrB,OAAQA,GACN,KAAK8wD,KAAqBC,OACxB,OAAOC,KAET,KAAKF,KAAqBt8C,KACxB,OAAOy8C,KAET,KAAKH,KAAqBv9C,OACxB,OAAO29C,KAET,KAAKJ,KAAqBK,KACxB,OAAOC,KAET,QACE,MAAO,KAsBPC,GAAMjsD,kBAFM,SAAA7G,KAAGkV,OAAH,IAAc5M,EAAd5Q,OAAAspC,EAAA,EAAAtpC,CAAAsI,EAAA,mBAAyC0wB,EAAA71B,EAAA4N,cAAA,MAASH,IAExDzB,CAAHksD,KAIO,SAAAhsD,GAAK,OAAKA,EAAMmO,OAAS,UAAY,YAM/C89C,GAAmBnsD,UAAO2uB,IAAVy9B,MAMhBC,GAAmBrsD,UAAOkC,KAAVoqD,KACa,SAAApsD,GAAK,OAAIA,EAAMC,MAAMC,aAmBzCmsD,GAXU,SAAAhqD,GAAuB,IAtCzB3H,EAsCKzD,EAAoBoL,EAApBpL,OAAoBq1D,EArCvC,CACLC,WAAYlB,GAFO3wD,EAuC4BzD,GApC/Cu1D,WAAYjB,GAAc7wD,IAoCpB6xD,EADsCD,EACtCC,WAAYC,EAD0BF,EAC1BE,WAEpB,OACE7iC,EAAA71B,EAAA4N,cAACqqD,GAAD,CAAK59C,OAAQlX,IAAWu0D,KAAqBt8C,MAC3Cya,EAAA71B,EAAA4N,cAACuqD,GAAD,CAAkBhgC,IAAKugC,EAAYtgC,IAAI,KACvCvC,EAAA71B,EAAA4N,cAACyqD,GAAD,KAAmBI,u4DC3EzB,IAAME,GAAW3sD,UAAOc,IAAV8rD,MAgBRX,GAAMjsD,kBAHS,SAAA7G,GAAuDA,EAApD0zD,kBAAoD,IAA9BprD,EAA8B5Q,OAAAspC,EAAA,EAAAtpC,CAAAsI,EAAA,uBAC1E,OAAO0wB,EAAA71B,EAAA4N,cAAC6tB,EAAA,OAAWhuB,IAETzB,CAAH8sD,KAG0B,SAAA5sD,GAAK,OAAIA,EAAMC,MAAMC,YAO5C,SAAAF,GAAK,OAAKA,EAAM2sD,kBAAoB,UAAY,WAKpC,SAAA3sD,GAAK,OACvBA,EAAM2sD,kBAAoB,yBAA2B,WAGzC,SAAA3sD,GAAK,OAAKA,EAAM2sD,kBAAoB,UAAY,SAI5DxrC,GAAarhB,UAAOc,IAAVisD,MASVC,GAAgBhtD,UAAOc,IAAVmsD,MAIbC,GAAgBltD,UAAO2uB,IAAVw+B,MAMbC,GAA0BptD,UAAOc,IAAVusD,MAKvBhB,GAAmBrsD,UAAOkC,KAAVorD,MAQhBC,GAA4BvtD,UAAOc,IAAV0sD,KAEI,SAAAttD,GAAK,OAAIA,EAAMC,MAAMC,aAIlDqtD,GAAoBztD,UAAOhM,EAAV05D,MAOjBC,GAAyB3tD,UAAO2uB,IAAVi/B,MA6EbC,GA/DY,SAAAtrD,GAOd,IANXurD,EAMWvrD,EANXurD,YACAC,EAKWxrD,EALXwrD,gBACAv7C,EAIWjQ,EAJXiQ,OACAw7C,EAGWzrD,EAHXyrD,WACAC,EAEW1rD,EAFX0rD,aACApB,EACWtqD,EADXsqD,kBAUMqB,GACHrB,GAAqBr6C,EAAO27C,cAC3BtkC,EAAA71B,EAAA4N,cAAC2rD,GAAD,eACU,IACR1jC,EAAA71B,EAAA4N,cAAC6rD,GAAD,CACExhD,KACEP,OAAO2Q,OACP,YACA7J,EAAO27C,cAAcC,UACrB,YACA57C,EAAO27C,cAAcE,SAEvBx2B,OAAO,SACPqK,IAAI,uBAEH1vB,EAAO27C,cAAcG,aAExBzkC,EAAA71B,EAAA4N,cAAC+rD,GAAD,CAAwBxhC,IAAK4hC,EAAiB3hC,IAAI,MAElD,KAEA8M,EACJrP,EAAA71B,EAAA4N,cAACyf,GAAD,KACEwI,EAAA71B,EAAA4N,cAACorD,GAAD,KACEnjC,EAAA71B,EAAA4N,cAACsrD,GAAD,CAAe/gC,IAAK2hC,EAAa1hC,IAAI,MAEvCvC,EAAA71B,EAAA4N,cAACorD,GAAD,KACEnjC,EAAA71B,EAAA4N,cAACwrD,GAAD,KACEvjC,EAAA71B,EAAA4N,cAAC2sD,GAAD,KAAmB/7C,EAAOzf,MACzBm7D,IAGLrkC,EAAA71B,EAAA4N,cAACorD,GAAD,KACEnjC,EAAA71B,EAAA4N,cAAC4sD,GAAD,CAAkBr3D,OAAQqb,EAAOrb,WAKvC,OACE0yB,EAAA71B,EAAA4N,cAAC+qD,GAAD,KACE9iC,EAAA71B,EAAA4N,cAAC6sD,GAAD,CAAK/kD,QAhDc,WAEjBmjD,GAA8C,OAAzBr6C,EAAO27C,gBAC9BF,EAAaz7C,EAAOzf,KAAMyf,EAAO7X,IACjCqzD,MA4C8BnB,kBAAmBA,GAC9C3zB,qqCCtJT,IAAMw1B,GAAW1uD,kBAAO2uD,cAAP3uD,CAAH4uD,MAIRC,GAAa7uD,UAAOc,IAAVguD,MAGVlvB,GAAQ5/B,UAAOyH,EAAVsnD,MAILC,GAAY,kBAChBnlC,EAAA71B,EAAA4N,cAACitD,GAAD,KACEhlC,EAAA71B,EAAA4N,cAACqtD,GAAD,wFAIAplC,EAAA71B,EAAA4N,cAAC8sD,GAAD,QAIEQ,GAAelvD,UAAOc,IAAVquD,MAKZC,GAAc,kBAClBvlC,EAAA71B,EAAA4N,cAACstD,GAAD,KACErlC,EAAA71B,EAAA4N,cAAC6tB,EAAA,QAAD,QAIE4/B,GAAiBrvD,UAAOc,IAAVwuD,MAMdC,GAAiBvvD,UAAO2uB,IAAV6gC,MAIdC,GAAuBzvD,UAAOyH,EAAVioD,KAES,SAAAxvD,GAAK,OAAIA,EAAMC,MAAMC,aAElDuvD,GAAqB3vD,kBAAOD,KAAPC,CAAH4vD,KAEW,SAAA1vD,GAAK,OAAIA,EAAMC,MAAMC,aAYlDyvD,GAAgB,SAAA12D,GAAwD,IAArD0zD,EAAqD1zD,EAArD0zD,kBAAmBiD,EAAkC32D,EAAlC22D,QACpChpD,EAAa+lD,EAAoB,YAAc,SAErD,OACEhjC,EAAA71B,EAAA4N,cAACytD,GAAD,KACExlC,EAAA71B,EAAA4N,cAAC2tD,GAAD,CAAgBpjC,IAAK4jC,KAAS3jC,IAAI,KAClCvC,EAAA71B,EAAA4N,cAAC6tD,GAAD,gCACsB14C,KADtB,YACqCjQ,EADrC,SAGA+iB,EAAA71B,EAAA4N,cAAC+tD,GAAD,CACE1jD,KAAM6jD,EACNj4B,OAAO,SACPqK,IAAI,uBAHN,SAKSnrB,QAsFAi5C,GAjEQ,SAAAztD,GAaV,IAZXutD,EAYWvtD,EAZXutD,QACAhC,EAWWvrD,EAXXurD,YACAC,EAUWxrD,EAVXwrD,gBACAC,EASWzrD,EATXyrD,WACAC,EAQW1rD,EARX0rD,aACApB,EAOWtqD,EAPXsqD,kBACAoD,EAMW1tD,EANX0tD,QACAzyD,EAKW+E,EALX/E,MACA0yD,EAIW3tD,EAJX2tD,QACAC,EAGW5tD,EAHX4tD,eACAC,EAEW7tD,EAFX6tD,SACAC,EACW9tD,EADX8tD,WAEA,GAAI7yD,EACF,OAAOqsB,EAAA71B,EAAA4N,cAAC0uD,GAAD,MAET,GAAIF,GAA+B,IAAnBH,EAAQvgE,OACtB,OAAOm6B,EAAA71B,EAAA4N,cAAC2uD,GAAD,CAAa5gE,IAAK,aAE3B,GAAuB,IAAnBsgE,EAAQvgE,OACV,OACEm6B,EAAA71B,EAAA4N,cAAC4uD,GAAD,CAAe3D,kBAAmBA,EAAmBiD,QAASA,IAIlE,IAAMW,EAAkBJ,EACtBxmC,EAAA71B,EAAA4N,cAAC2uD,GAAD,CAAa5gE,IAAK,aAChB,KAEE+gE,EAAoBC,KAASR,EAAgB,IAAK,CACtDS,SAAS,EACTC,UAAU,IAGNC,EAAab,EAAQ/gE,IAAI,SAAA0L,GAC7B,OACEivB,EAAA71B,EAAA4N,cAACmvD,GAAD,CACEphE,IAAKiL,EAAED,GACPmzD,YAAaA,EACbC,gBAAiBA,EACjBv7C,OAAQ5X,EACRozD,WAAYA,EACZC,aAAcA,EACdpB,kBAAmBA,MAKzB,OACEhjC,EAAA71B,EAAA4N,cAACsoB,EAAA,SAAD,KACGumC,EACD5mC,EAAA71B,EAAA4N,cAACovD,GAAAh9D,EAAD,CACEi9D,WAAYhB,EAAQvgE,OACpBskC,KAAM08B,EACNQ,QAAShB,EACTiB,OAAQtnC,EAAA71B,EAAA4N,cAAC2uD,GAAD,CAAa5gE,IAAK,aAC1BgoD,OAAQ0Y,EAAa,IAAM,KAE1BS,kCChIMM,GApBe,SAC5BC,EACA3b,EACA4b,GAEA,IAMM/8D,EAAmB,CACvB+S,UAP2B,CAC3BiqD,WAAY,EACZF,oBACA3b,SACA4b,eAIAE,YAAa,eACbC,6BAA6B,GAG/B,OAAOC,aAA0BC,KAAsBp9D,aC0C1Cq9D,GAvEkB,SAC/BP,EACA3b,EACA4b,GACG,IAAA1tD,EACiCC,mBAAS,GAD1CC,EAAAjT,OAAA6gC,EAAA,EAAA7gC,CAAA+S,EAAA,GACI2tD,EADJztD,EAAA,GACgB+tD,EADhB/tD,EAAA,GAEHQ,oBAAU,WACRutD,EAAc,IACb,CAACP,IAJD,IAAAQ,EAaCV,GAAsBC,EAAmB3b,EAAQ4b,GANnDxlD,EAPCgmD,EAODhmD,KACAimD,EARCD,EAQDC,UACAv0D,EATCs0D,EASDt0D,MACAiyC,EAVCqiB,EAUDriB,QACAuiB,EAXCF,EAWDE,QACAC,EAZCH,EAYDG,cAGI/B,KACJpkD,IAAQA,EAAKomD,kBAAkBpmD,EAAKomD,gBAAgBhC,QAChDD,EACJnkD,GAAQA,EAAKomD,gBAAkBpmD,EAAKomD,gBAAgBjC,QAAU,GAC1DkC,EACJrmD,GAAQA,EAAKomD,gBAAkBpmD,EAAKomD,gBAAgBC,aAAe,EAE/D9B,EAAa4B,IAAkBG,KAAcJ,QAgCnD,MAAO,CACL/B,UACAkC,eACAjC,UACAC,eAlCqB,WACrB4B,EAAU,CACRzqD,UAAW,CAAEiqD,cACbc,YAAa,SAACt+B,EAAD56B,GAA+B,IAAtBm5D,EAAsBn5D,EAAtBm5D,gBACpB,IAAKv+B,IAASu+B,EACZ,OAAOv+B,EAGT,IAAMw+B,EAAUD,EAAgBJ,gBAC1BM,EAAkBz+B,EAAKm+B,gBAAgBjC,QACvCwC,EAAU,GAAAlgE,OAAA1B,OAAAmlC,GAAA,EAAAnlC,CAAO2hE,GAAP3hE,OAAAmlC,GAAA,EAAAnlC,CAA2B0hE,EAAQtC,UAE7CyC,EAAmB7hE,OAAAolC,EAAA,EAAAplC,CAAA,GACpBkjC,EADoB,CAEvBm+B,gBAAiB,CACfb,kBAAmBkB,EAAQlB,kBAC3Bc,aAAcI,EAAQJ,aACtBjC,QAASqC,EAAQrC,QACjByC,SAAUJ,EAAQI,SAClB1C,QAASwC,EACTr9D,WAAYm9D,EAAQn9D,cAKxB,OADAy8D,EAAcU,EAAQI,UACfD,MAUXnB,aACA/zD,QACA4yD,SAAU3gB,EACV4gB,aACA2B,osEC7DJ,IAEMlxB,GAAa9gC,UAAOc,IAAV8xD,MAIVC,GAAY7yD,UAAOc,IAAVgyD,MAOTC,GAAkB/yD,UAAOc,IAAVkyD,MAKfnf,GAAmB7zC,UAAO2uB,IAAVskC,MAMhBC,GAAiB/xD,YAAUqf,cAAc2yC,kBACzCC,GAAcpzD,kBAAOkzD,GAAPlzD,CAAHqzD,MAOXC,GAAmBtzD,UAAOc,IAAVyyD,MAKhBC,GAAmBxzD,kBAAOktB,SAAPltB,CAAHyzD,KAMa,SAAAvzD,GAAK,OAAIA,EAAMC,MAAMC,aAYlDszD,GAAoB1zD,UAAO2uB,IAAVglC,MAMjBC,GAAe5zD,UAAOkC,KAAV2xD,KAEiB,SAAA3zD,GAAK,OAAIA,EAAMC,MAAMC,aAGlD0zD,GAAU9zD,UAAOkC,KAAV6xD,KAEsB,SAAA7zD,GAAK,OAAIA,EAAMC,MAAMC,aAIlD4zD,GAAiBh0D,UAAOc,IAAVmzD,MAadC,GAAel0D,kBAJS,SAAA7G,KAC5B0zD,kBAD4B,IAEzBprD,EAFyB5Q,OAAAspC,EAAA,EAAAtpC,CAAAsI,EAAA,8BAGC0wB,EAAA71B,EAAA4N,cAAA,MAASH,IACnBzB,CAAHm0D,MAIZC,GAAqBp0D,kBAAOk0D,GAAPl0D,CAAHq0D,MAIlBC,GAAuBt0D,kBAAOk0D,GAAPl0D,CAAHu0D,KAEd,SAAAr0D,GAAK,OAAKA,EAAM2sD,kBAAoB,IAAM,SAC7C,SAAA3sD,GAAK,OAAKA,EAAM2sD,kBAAoB,QAAU,SAgJxC2H,GArIa,SAAAjyD,GAMf,IALXyrD,EAKWzrD,EALXyrD,WACA8B,EAIWvtD,EAJXutD,QACAhC,EAGWvrD,EAHXurD,YACAC,EAEWxrD,EAFXwrD,gBACAE,EACW1rD,EADX0rD,aACWrqD,EACqCC,qBADrCC,EAAAjT,OAAA6gC,EAAA,EAAA7gC,CAAA+S,EAAA,GACJ6wD,EADI3wD,EAAA,GACc4wD,EADd5wD,EAAA,GAAAI,EAGuCL,oBAAS,GAHhDM,EAAAtT,OAAA6gC,EAAA,EAAA7gC,CAAAqT,EAAA,GAGJ2oD,EAHI1oD,EAAA,GAGewwD,EAHfxwD,EAAA,GAILywD,EAAoB,kBAAMD,GAAsB9H,IAJ3Ch7B,EAM2BhuB,mBAAS,GANpCiuB,EAAAjhC,OAAA6gC,EAAA,EAAA7gC,CAAAghC,EAAA,GAMJgjC,EANI/iC,EAAA,GAMSgjC,EANThjC,EAAA,GAAAE,EAO+BnuB,mBAAS,GAPxCouB,EAAAphC,OAAA6gC,EAAA,EAAA7gC,CAAAmhC,EAAA,GAOJ+iC,EAPI9iC,EAAA,GAOW+iC,EAPX/iC,EAAA,GAQLgjC,EAAcrnC,sBAClB,SAAC/7B,GACKg7D,EACFiI,EAAejjE,GAEfmjE,EAAiBnjE,IAGrB,CAACg7D,EAAmBiI,EAAgBE,IAGhC/uD,EAAW2nB,sBACf,SAACrwB,GACCm3D,EAAoBn3D,EAAEs6B,OAAO97B,OAC7B+4D,EAAe,GACfE,EAAiB,IAEnB,CAACN,IAzBQQ,EAoCPtD,GACFuD,KAAkBp+C,KAClB81C,EACA4H,GAVAxE,EA7BSiF,EA6BTjF,QACAzyD,EA9BS03D,EA8BT13D,MACA0yD,EA/BSgF,EA+BThF,QACAC,EAhCS+E,EAgCT/E,eACAC,EAjCS8E,EAiCT9E,SACA4B,EAlCSkD,EAkCTlD,QACA3B,EAnCS6E,EAmCT7E,WAOF/rD,oBAAU,WACR2wD,EAAYhF,EAAQvgE,SACnB,CAACulE,EAAahF,IAEjB,IAMMmF,EACJvrC,EAAA71B,EAAA4N,cAACyzD,GAAD,CACErH,WAAYA,EACZ8B,QAASA,EACThC,YAAaA,EACbC,gBAAiBA,EACjBE,aAAcA,EACdpB,kBAAmBA,EACnBoD,QAASA,EACTzyD,QAAOA,EACP0yD,QAASA,EACTC,eAAgBA,EAChBC,SAAUA,EACVC,WAAYA,IAIViF,EACJzrC,EAAA71B,EAAA4N,cAACgyD,GAAD,2BAAkCiB,EAAlC,KAGIU,EACJ1rC,EAAA71B,EAAA4N,cAACgyD,GAAD,wBACmBmB,EADnB,IACmC,IACjClrC,EAAA71B,EAAA4N,cAACkyD,GAAD,iEAIJ,OACEjqC,EAAA71B,EAAA4N,cAAC4zD,GAAD,KACE3rC,EAAA71B,EAAA4N,cAACixD,GAAD,KACEhpC,EAAA71B,EAAA4N,cAACmxD,GAAD,KACElpC,EAAA71B,EAAA4N,cAACwxD,GAAD,CACE/sD,YAAY,SACZtK,MAAO04D,GAAsC,GAC7CxuD,SAAUA,EACVwvD,gBAAiB,MAEnB5rC,EAAA71B,EAAA4N,cAAC8zD,GAAD,CAAkBvpC,IAAKwpC,KAAWvpC,IAAI,MAExCvC,EAAA71B,EAAA4N,cAAC0xD,GAAD,KACEzpC,EAAA71B,EAAA4N,cAAC4xD,GAAD,CAAkB9pD,QAAS,WA9C5B0mD,GAAaC,GAChB2B,MA8CMnoC,EAAA71B,EAAA4N,cAAC8xD,GAAD,CAAmBvnC,IAAKypC,KAAYxpC,IAAI,KAD1C,cAMJvC,EAAA71B,EAAA4N,cAACoyD,GAAD,KACEnqC,EAAA71B,EAAA4N,cAACwyD,GAAD,CAAoBvH,kBAAmBA,GACrChjC,EAAA71B,EAAA4N,cAACi0D,GAAA,EAAD,CACE9sD,OAAQusD,EACRpwD,OAAQ2nD,EACR3jD,WAAY0rD,EACZnsD,eAAe,EACfJ,UA3NgB,QA6Nf+sD,IAILvrC,EAAA71B,EAAA4N,cAAC0yD,GAAD,CAAsBzH,kBAAmBA,GACvChjC,EAAA71B,EAAA4N,cAACi0D,GAAA,EAAD,CACE9sD,OAAQwsD,EACRrwD,QAAS2nD,EACT3jD,WAAY0rD,EACZvsD,UAtOgB,QAwOf+sD,wlCCvOb,IAAMj1B,GAAcngC,kBAAO2wB,YAAP3wB,CAAH81D,MAWXx0B,GAAethC,UAAOc,IAAVi1D,MAKZ7tD,GAAclI,UAAOkC,KAAV8zD,KAEkB,SAAA91D,GAAK,OAAIA,EAAMC,MAAMC,aAIlD61D,GAAoBj2D,kBAAOD,KAAPC,CAAHk2D,KAIY,SAAAh2D,GAAK,OAAIA,EAAMC,MAAMC,aAWlD+1D,GAAiBn2D,UAAO2uB,IAAVynC,MAoDLC,GAhCgB,SAAAl9D,GAA2B,IAAxBwwB,EAAwBxwB,EAAxBwwB,WAAwBwoB,EAClB1K,qBAAW56B,MACUK,WAAnDopD,EAFgDnkB,EAEhDmkB,QAASrI,EAFuC9b,EAEvC8b,aAAcF,EAFyB5b,EAEzB4b,gBAEzBD,EAAcwI,EAAUA,EAAQC,KAAO,GACvCzG,EAAUwG,EAAUA,EAAQ7qD,IAAMgK,KAExC,OACEoU,EAAA71B,EAAA4N,cAAC40D,GAAD,KACE3sC,EAAA71B,EAAA4N,cAAC60D,GAAD,KACE5sC,EAAA71B,EAAA4N,cAAC80D,GAAD,kBAAwB3/C,KAAxB,WACA8S,EAAA71B,EAAA4N,cAACq0D,GAAD,CACEhqD,KAAM6jD,EACNj4B,OAAO,SACPqK,IAAI,uBAEJrY,EAAA71B,EAAA4N,cAACu0D,GAAD,CAAgBhqC,IAAKwqC,KAASvqC,IAAI,KALpC,UAKiDrV,MAEjD8S,EAAA71B,EAAA4N,cAACwpD,GAAD,CAAkBzhC,WAAYA,KAGhCE,EAAA71B,EAAA4N,cAACg1D,GAAD,CACE5I,WAAYrkC,EACZmmC,QAASA,EACThC,YAAaA,EACbC,gBAAiBA,EACjBE,aAAcA,2BCnFP4I,GALoB,SAACC,GAAD,OACjC1vD,aAAkBy2B,KAAyB,CACzCv2B,UAAW,CAAEwvD,mzBCAjB,IAAMvgC,GAASv2B,UAAOc,IAAVi2D,MAINzoC,GAAetuB,kBAAOktB,SAAPltB,CAAHg3D,MAIZl2B,GAAa9gC,kBAAO2wB,YAAP3wB,CAAHi3D,MAcV31B,GAAethC,UAAOyH,EAAVyvD,MAIZ/1C,GAAanhB,UAAO2uB,IAAVwoC,MAiBVn2D,GAAQhB,UAAOc,IAAVs2D,MA+BIC,GA7Be,SAAAl+D,GAA2B,IAAxBwwB,EAAwBxwB,EAAxBwwB,WAAwBwoB,EACjB1K,qBAAW56B,MACJK,WAArCoqD,EAF+CnlB,EAE/CmlB,SAAUC,EAFqCplB,EAErColB,eAFqCC,EAGrBC,GAAkBH,EAAS38D,IAAtDkjC,EAHgDhtC,OAAA6gC,EAAA,EAAA7gC,CAAA2mE,EAAA,MAUvD,OACE3tC,EAAA71B,EAAA4N,cAAC81D,GAAD,KACE7tC,EAAA71B,EAAA4N,cAAC+1D,GAAD,KACE9tC,EAAA71B,EAAA4N,cAACg2D,GAAD,KACE/tC,EAAA71B,EAAA4N,cAACuf,GAAD,CAAYgL,IAAK0rC,KAAYxrC,MAAM,KAAKD,IAAI,WAD9C,mBAIAvC,EAAA71B,EAAA4N,cAAA,6CAAqC01D,EAASvkE,KAA9C,MACA82B,EAAA71B,EAAA4N,cAACk2D,GAAD,KACEjuC,EAAA71B,EAAA4N,cAACouC,GAAD,CAAmBtmC,QAASigB,GAA5B,UACAE,EAAA71B,EAAA4N,cAACm2D,GAAD,CAAc/2C,OAAO,SAAStX,QAhBhB,WACpBigB,IACAkU,IAA0BtyB,KACxB,SAAAhJ,GAAA,IAAGuJ,EAAHvJ,EAAGuJ,KAAH,OAAcA,GAAQA,EAAK+xB,yBAA2B05B,QAalD,0rDC1DV,IAAMlnB,GAAUrwC,UAAOc,IAAVk3D,MAOPC,GAAej4D,UAAOc,IAAVo3D,MAeZnrC,GAAiB/sB,UAAOgtB,SAAVmrC,MAgBdC,GAAWp4D,UAAOq4D,GAAVC,MAOR5mB,GAAY1xC,UAAO2uB,IAAV4pC,MAKT7nC,GAAkB1wB,kBAAO2wB,YAAP3wB,CAAHw4D,MAKfC,GAAgBz4D,UAAOc,IAAV43D,MAabC,GAAsB34D,UAAOc,IAAV83D,MAKnB3gB,GAAaj4C,UAAOkC,KAAV22D,MA2HDC,GApGe,SAAA3/D,GAA2C,IAAxCwwB,EAAwCxwB,EAAxCwwB,WAAYovC,EAA4B5/D,EAA5B4/D,eAA4Bn1D,EAC/CC,mBAAS,CAAE9H,MAAO,GAAIyB,OAAO,IADkBsG,EAAAjT,OAAA6gC,EAAA,EAAA7gC,CAAA+S,EAAA,GAChE7Q,EADgE+Q,EAAA,GAC1Dk1D,EAD0Dl1D,EAAA,GAAAI,EAE/CL,mBAAS,IAFsCM,EAAAtT,OAAA6gC,EAAA,EAAA7gC,CAAAqT,EAAA,GAEhE+0D,EAFgE90D,EAAA,GAE1D+0D,EAF0D/0D,EAAA,GAAAguC,EAGjC1K,qBAAW56B,MACOK,WAAhDlc,EAJ+DmhD,EAI/DnhD,UAAWuO,EAJoD4yC,EAIpD5yC,WAAY45D,EAJwChnB,EAIxCgnB,aACvBznE,EAAyBV,EAAzBU,QAAST,EAAgBD,EAAhBC,YAoBXmoE,EAAcnoE,EAAY/B,IAAI,SAAC66B,EAAkB52B,GACrD,IAAM7C,EAAay5B,EAAKx5B,WAAW,GAAGD,WAChC+oE,EAAS/oE,EAAW,GAAGiB,YACvB+nE,EAAW/5D,EAAW85D,GAAQtmE,KAa9BwmE,EAAcjpE,EAAWZ,OAAS,GAZtB,WAChB,IACM8pE,EADclpE,EAAWsE,MAAM,EAAGtE,EAAWZ,QACfR,IAClC,SAAAiE,GAAC,SAAAZ,OAAOgN,EAAWpM,EAAE5B,aAAawB,KAAjC,QAEH,OACE82B,EAAA71B,EAAA4N,cAAA,YACEioB,EAAA71B,EAAA4N,cAAC63D,GAAD,qBACCD,GAIsCE,GAC7C,OACE7vC,EAAA71B,EAAA4N,cAAA,MAAIjS,IAAKwD,GACNmmE,EADH,IACcC,KAIZI,EAAkB1oE,EAAYvB,OAAS,GAC3Cm6B,EAAA71B,EAAA4N,cAAC62D,GAAD,KACE5uC,EAAA71B,EAAA4N,cAAC+2D,GAAD,KACE9uC,EAAA71B,EAAA4N,cAACg4D,GAAD,CAAWztC,IAAK0tC,KAAYztC,IAAI,KAChCvC,EAAA71B,EAAA4N,cAAA,2BAEFioB,EAAA71B,EAAA4N,cAAA,UAAKw3D,IAIHU,EAAcpoE,EAAQxC,IAAI,SAAC66B,EAAM52B,GAAM,IACnC5B,EAAgBw4B,EAAhBx4B,YACF+nE,EAAW/5D,EAAWhO,GAAawB,KACzC,OAAO82B,EAAA71B,EAAA4N,cAAA,MAAIjS,IAAKwD,GAAImmE,KAEhBS,EAAeroE,EAAQhC,OAAS,GACpCm6B,EAAA71B,EAAA4N,cAAC62D,GAAD,KACE5uC,EAAA71B,EAAA4N,cAAC+2D,GAAD,KACE9uC,EAAA71B,EAAA4N,cAACg4D,GAAD,CAAWztC,IAAKjvB,KAAQkvB,IAAI,KAC5BvC,EAAA71B,EAAA4N,cAAA,uBAEFioB,EAAA71B,EAAA4N,cAAA,UAAKk4D,IAGT,OACEjwC,EAAA71B,EAAA4N,cAACo4D,GAAD,KACEnwC,EAAA71B,EAAA4N,cAACw2D,GAAD,6BACAvuC,EAAA71B,EAAA4N,cAACq2D,GAAD,KACEpuC,EAAA71B,EAAA4N,cAAC6tB,EAAA,UAAD,CACEppB,YAAY,gBACZtK,MAAOhJ,EAAKgJ,MACZkK,SAxES,SAAC1I,GAAD,OACfy7D,EAAQ,CAAEj9D,MAAOwB,EAAE4I,cAAcpK,MAAOyB,OAAO,KAwEzC+nC,QAASxyC,EAAKyK,SAGlBqsB,EAAA71B,EAAA4N,cAACq2D,GAAD,KACEpuC,EAAA71B,EAAA4N,cAACq4D,GAAD,CACE5zD,YAAY,cACZtK,MAAOk9D,EACPhzD,SA9ES,SAAC1I,GAAD,OACf27D,EAAQ37D,EAAE4I,cAAcpK,WAgFrB49D,EACAI,EACDlwC,EAAA71B,EAAA4N,cAACs4D,GAAD,KACErwC,EAAA71B,EAAA4N,cAACouC,GAAD,CAAmBtmC,QAASigB,GAA5B,UACAE,EAAA71B,EAAA4N,cAAC6tB,EAAA,OAAD,CAAQ/lB,QAlFM,WAClB,IAAMywD,EAAUpnE,EAAKgJ,MACrB,GAAuB,IAAnBo+D,EAAQzqE,OAAc,OAAOspE,EAAQ,CAAEj9D,MAAOo+D,EAAS38D,OAAO,IAQlE27D,EAPiC,CAC/BpmE,KAAMonE,EACNlB,OACAjoE,YACAopE,KAAM,GACNrB,qBA0EE,WC9KOsB,GAlB0B,SAAAlhE,GAA2B,IAAxBwwB,EAAwBxwB,EAAxBwwB,WAC1C,OACEE,EAAA71B,EAAA4N,cAAC0gC,EAAA,EAAD,CAAUC,SAAU5E,KAAyB6E,YAAa7Y,GACvD,SAAA2wC,GAIC,OACEzwC,EAAA71B,EAAA4N,cAAC24D,GAAD,CACExB,eALmB,SAAC3iC,GAAD,OACrBkkC,EAA8B,CAAEhzD,UAAW,CAAE8uB,YAK3CzM,WAAYA,0yBClBxB,IAAM6wC,GAAsBx6D,UAAOc,IAAV25D,MAOnBt6C,GAAiBngB,kBAAOogB,WAAPpgB,CAAH06D,MAIdhqC,GAAkB1wB,kBAAO2wB,YAAP3wB,CAAH26D,MAWf9jC,GAAc72B,UAAO0T,MAAVknD,MAMXC,GAAoB76D,UAAOc,IAAVg6D,MAoDRC,GAnCkB,WAAM,IAAAn3D,EACPC,oBAAS,GADFC,EAAAjT,OAAA6gC,EAAA,EAAA7gC,CAAA+S,EAAA,GAC9Byc,EAD8Bvc,EAAA,GACrBk3D,EADqBl3D,EAAA,GAAAquC,EAEC1K,qBAAW56B,MACQK,WAAjD+tD,EAH6B9oB,EAG7B8oB,aAAcC,EAHe/oB,EAGf+oB,uBAStB,OACErxC,EAAA71B,EAAA4N,cAACu5D,GAAD,KACEtxC,EAAA71B,EAAA4N,cAAA,gGAICq5D,EAAa/rE,IAAI,SAAAi4B,GAAC,OACjB0C,EAAA71B,EAAA4N,cAACi5D,GAAD,CAAmBlrE,IAAKw3B,EAAExsB,IACxBkvB,EAAA71B,EAAA4N,cAAA,sBACAioB,EAAA71B,EAAA4N,cAAA,YAAOulB,EAAEp0B,SAGb82B,EAAA71B,EAAA4N,cAAC44D,GAAD,KACE3wC,EAAA71B,EAAA4N,cAACw5D,GAAD,KACEvxC,EAAA71B,EAAA4N,cAACy5D,GAAD,CAAgBh7C,QAASA,EAASpa,SAhBzB,kBAAM+0D,GAAY36C,MAiB3BwJ,EAAA71B,EAAA4N,cAAA,2CAEFioB,EAAA71B,EAAA4N,cAAC6tB,EAAA,OAAD,CAAQ/lB,QAzBG,WACX2W,GACFpV,aAAauS,QAAQ,8BAA+B,SAEtD09C,MAqBI,21BCzER,IAAM3kC,GAASv2B,UAAOc,IAAVw6D,MAKNx6B,GAAa9gC,kBAAO2wB,YAAP3wB,CAAHu7D,MAcVj6B,GAAethC,UAAOyH,EAAV+zD,MAIZr6C,GAAanhB,UAAO2uB,IAAV8sC,MAMV3kC,GAAU92B,UAAOyH,EAAVi0D,MAeP16D,GAAQhB,UAAOc,IAAV66D,MA6BIC,GA3Ba,SAAAziE,GAA2B,IAAxBwwB,EAAwBxwB,EAAxBwwB,WAErBkyC,EAD8Bp0B,qBAAW56B,MAChBK,WAAzB2uD,aAKR,OACEhyC,EAAA71B,EAAA4N,cAACk6D,GAAD,KACEjyC,EAAA71B,EAAA4N,cAACm6D,GAAD,KACElyC,EAAA71B,EAAA4N,cAACo6D,GAAD,KACEnyC,EAAA71B,EAAA4N,cAACq6D,GAAD,CAAY9vC,IAAK+vC,KAAa7vC,MAAM,KAAKD,IAAI,YAD/C,oCAIAvC,EAAA71B,EAAA4N,cAACu6D,GAAD,8HAIAtyC,EAAA71B,EAAA4N,cAACw6D,GAAD,KACEvyC,EAAA71B,EAAA4N,cAACouC,GAAD,CAAmBtmC,QAASigB,GAA5B,UACAE,EAAA71B,EAAA4N,cAAC6tB,EAAA,OAAD,CAAQ/lB,QAjBI,WAClBigB,IACAkyC,MAeM,siBClEV,IAAMv6B,GAAethC,UAAOc,IAAVu7D,MAKZtnB,GAAiB/0C,UAAO2uB,IAAV2tC,MAIdp0D,GAAclI,UAAOc,IAAVy7D,KAEkB,SAAAr8D,GAAK,OAAIA,EAAMC,MAAMC,aAGlDo8D,GAAcx8D,UAAOyH,EAAVg1D,KAEkB,SAAAv8D,GAAK,OAAIA,EAAMC,MAAMC,aA+CzCs8D,GAhCgC,SAAAvjE,GAA2B,IAAxBwwB,EAAwBxwB,EAAxBwwB,WAExCgzC,EAD8Bl1B,qBAAW56B,MACZK,WAA7ByvD,iBAOR,OACE9yC,EAAA71B,EAAA4N,cAACuvC,GAAD,CACER,aACE9mB,EAAA71B,EAAA4N,cAACsoB,EAAA,SAAD,KACEL,EAAA71B,EAAA4N,cAACg7D,GAAD,KACE/yC,EAAA71B,EAAA4N,cAACi7D,GAAD,CAAgB1wC,IAAK2wC,OACrBjzC,EAAA71B,EAAA4N,cAACm7D,GAAD,0CAGFlzC,EAAA71B,EAAA4N,cAAC46D,GAAD,0DACqDzlD,KADrD,4HAOJgY,SAAUpF,EACVinB,UAtBiB,WACnB+rB,IACAhzC,KAqBEqnB,aAAc,yHCpCpB,IAGMgsB,GAAkBh9D,kBAAOi9D,QAAPj9D,CAAHk9D,MAwHNC,GAhHD,SAAAhkE,GAA0C,IAAvC8T,EAAuC9T,EAAvC8T,UAAWmwD,EAA4BjkE,EAA5BikE,eACpBzzC,EAAa,YAZH,SAAC1c,GAAD,OAChBA,IAAcowD,IAAW99C,cAYlB+9C,CAAUrwD,IACfmwD,KAGIG,EAAW,WACf,OAAQtwD,GACN,KAAKowD,IAAWz+C,eACd,OAAOujB,GACT,KAAKk7B,IAAWv+C,cACd,OAAOukB,GACT,KAAKg6B,IAAWt+C,cACd,OAAOwoB,GACT,KAAK81B,IAAWr+C,gBACd,OAAOmpB,GACT,KAAKk1B,IAAWp+C,YACd,OAAOkqB,GACT,KAAKk0B,IAAWn+C,YACd,OAAOgsB,GACT,KAAKmyB,IAAWl+C,eACd,OAAOosB,GACT,KAAK8xB,IAAWvoD,aACd,OAAOy6B,GACT,KAAK8tB,IAAWj+C,uBACd,OAAO8xB,GACT,KAAKmsB,IAAW/9C,sBACd,OAAO8xB,GACT,KAAKisB,IAAW99C,aACd,OAAO+xB,GACT,KAAK+rB,IAAW79C,sBACd,OAAO0yB,GACT,KAAKmrB,IAAW59C,mBACd,OAAO+9C,GACT,KAAKH,IAAWh+C,8CACd,OAAOi0B,GACT,KAAK+pB,IAAW39C,iBACd,OAAOupC,GACT,KAAKoU,IAAW19C,uBACd,OAAO+pC,GACT,KAAK2T,IAAWz9C,cACd,OAAO2qC,GACT,KAAK8S,IAAWx9C,oBACd,OAAOw2C,GACT,KAAKgH,IAAWv9C,kCACd,OAAO29C,GACT,KAAKJ,IAAWt9C,wBACd,OAAO29C,GACT,KAAKL,IAAWr9C,qBACd,OAAO+6C,GACT,KAAKsC,IAAWp9C,gCACd,OAAO09C,GACT,KAAKN,IAAWn9C,wCACd,OAAOw8C,GACT,QACE,OAAO,MAjDI,GAoDXkB,EAAqB,kBACb,OAAZL,EAAmB,KAAO1zC,EAAA71B,EAAA4N,cAAC27D,EAAD,CAAS5zC,WAAYA,KAC3Ck0C,EAAa7xD,SAAS0Y,eAAe,QAEvCo5C,EAAY,GAQhB,OAPI7wD,IAAcowD,IAAWt+C,gBAC3B++C,EAAY,MAEV7wD,IAAcowD,IAAW19C,yBAC3Bm+C,EAAY,MAGV7wD,IAAcowD,IAAWl+C,eAEzB0K,EAAA71B,EAAA4N,cAACm8D,EAAD,CACEF,WAAYA,QAA0B7gE,EACtCghE,eAAgB,IAChB94D,OAAsB,OAAd+H,EACRgxD,aAAa,QACbC,eAAgBv0C,GAEfi0C,KAKL3wD,IAAcowD,IAAW39C,kBACzBzS,IAAcowD,IAAWx9C,oBAGvBgK,EAAA71B,EAAA4N,cAACo7D,GAAD,CACEmB,KAAK,KACLD,eAAgBv0C,EAChBk0C,WAAYA,EACZ34D,OAAsB,OAAd+H,EACRmxD,2BAA2B,GAE1BR,KAML/zC,EAAA71B,EAAA4N,cAACo7D,GAAD,CACEmB,KAAML,EACNI,eAAgBv0C,EAChBk0C,WAAYA,EACZ34D,OAAsB,OAAd+H,GAEP2wD,MCjIQS,GARQ,SAAAllE,GAA0C,IAAvCmlE,EAAuCnlE,EAAvCmlE,UAAWlB,EAA4BjkE,EAA5BikE,eACnC,OACEvzC,EAAA71B,EAAA4N,cAACghC,EAAA,EAAD,KACE/Y,EAAA71B,EAAA4N,cAAC28D,GAAD,CAAOnB,eAAgBA,EAAgBnwD,UAAWqxD,EAAUrxD,gICXlE,IAKeuxD,GALEx+D,UAAOc,IAAV29D,s2BCAP,IAAMC,GAAY70D,KAAH80D,MAgDPD,sFC5Cf,IAAME,GAAU5+D,kBAAOktB,SAAPltB,CAAH6+D,MAYEC,GAVI,WACjB,IAAMC,EAAqBC,aAAY3B,IAAWn+C,aAElD,OACE2K,EAAA71B,EAAA4N,cAACg9D,GAAD,CAASl1D,QAASq1D,EAAoB/9C,OAAO,UAA7C,ySCRJ,IAAMi+C,GAASj/D,kBAAOktB,SAAPltB,CAAHk/D,KACU,SAAAh/D,GAAK,OACvBA,EAAMi/D,MACF,SAAAhmE,GAAA,OAAAA,EAAGgH,MAAkBmI,QAAQ,IAC7B,SAAA/F,GAAA,OAAAA,EAAGpC,MAAkB+d,aAAa,KAElB,SAAAhe,GAAK,OACvBA,EAAMi/D,MACF,SAAA/2D,GAAA,OAAAA,EAAGjI,MAAkBmI,QAAQ,IAC7B,SAAAE,GAAA,OAAAA,EAAGrI,MAAkB+d,aAAa,KAGpB,SAAAhe,GAAK,OACvBA,EAAMi/D,MACF,SAAAr2D,GAAA,OAAAA,EAAG3I,MAAkBmI,QAAQ,IAC7B,SAAAmZ,GAAA,OAAAA,EAAGthB,MAAkB+d,aAAa,MAItCkhD,GAAep/D,kBAAOoe,UAAPpe,CAAHq/D,MAyBHC,GArBG,SAAAC,GAAgD,IAA7CJ,EAA6CI,EAA7CJ,MAAOK,EAAsCD,EAAtCC,YAAa/vB,EAAyB8vB,EAAzB9vB,QAASgwB,EAAgBF,EAAhBE,UAC1CC,EAAgBjwB,EAAU5lB,EAAA71B,EAAA4N,cAACw9D,GAAD,MAAmB,WACnD,OACEv1C,EAAA71B,EAAA4N,cAAA,WACEioB,EAAA71B,EAAA4N,cAACq9D,GAAD,CACEE,MAAOA,EACPn3D,SAAUynC,EACV/lC,QAAS,WACHy1D,EACFM,IAEAD,MAIHE,0SCtCDC,GAAaj/B,QAAbi/B,SAEFC,GAAiB5/D,kBAAOktB,SAAPltB,CAAH6/D,KACE,SAAA1mE,GAAA,OAAAA,EAAGgH,MAAkB+d,aAAa,IAC7C,SAAA3b,GAAA,OAAAA,EAAGpC,MAAkBoe,YAAY,IAOpB,SAAAnW,GAAA,OAAAA,EAAGjI,MAAkB+d,aAAa,IAGlC,SAAA1V,GAAA,OAAAA,EAAGrI,MAAkB+d,aAAa,KAe3C4hD,GAXK,SAAAh3D,GAAsB,IAAnBi3D,EAAmBj3D,EAAnBi3D,aACrB,OACEl2C,EAAA71B,EAAA4N,cAAA,KAAGqK,KAAM8zD,EAAcloC,OAAO,SAASqK,IAAI,uBACzCrY,EAAA71B,EAAA4N,cAACg+D,GAAD,KACE/1C,EAAA71B,EAAA4N,cAAC+9D,GAAD,MADF,uwDCXN,IAAMK,GAAYhgE,UAAOc,IAAVm/D,KACO,SAAA9mE,GAAA,OAAAA,EAAGgH,MAAkB+d,aAAa,IAC7C,SAAA3b,GAAA,OAAAA,EAAGpC,MAAkBoe,YAAY,KAKtCgD,GAAOvhB,UAAOc,IAAVo/D,MAMJC,GAAUngE,UAAOogE,GAAVC,MAuBPxW,GAAS7pD,UAAOc,IAAVw/D,MAMNngD,GAAiBngB,kBAAOogB,WAAPpgB,CAAHugE,MAIdlwB,GAAUrwC,UAAOc,IAAV0/D,MAUPC,GAAYzgE,UAAOyH,EAAVi5D,MAITC,GAAU3gE,kBAAOygE,GAAPzgE,CAAH4gE,KACF,SAAAx4D,GAAA,OAAAA,EAAGjI,MAAkBihC,OAAO,IAE1B,SAAAlhC,GAAK,OAAIA,EAAMvB,SAAW,SAMjCkiE,GAAYh3D,KAAHi3D,MAUTC,GAAsBl3D,KAAHm3D,MA+HVC,8MAxHbnhE,MAAQ,CACNq/D,OAAO,EACP+B,QAAS,OACTt6C,OAAQ,MAGVu6C,aAAe,WACb5oC,EAAK3C,SAAS,CAAEupC,OAAQ5mC,EAAKz4B,MAAMq/D,MAAO+B,QAAS,YAGrD1B,YAAc,WACZjnC,EAAK3C,SAAS,CAAEsrC,QAAS,aAG3BE,YAAc,WACZ7oC,EAAK3C,SAAS,CAAEsrC,QAAS,YAG3BG,YAAc,WACZ9oC,EAAK3C,SAAS,CAAEhP,OAAQ,QAG1B06C,aAAe,SAAAC,GACb,OAAOC,OAAOD,GACXnlE,QAAQ,KAAM,SACdA,QAAQ,KAAM,QACdA,QAAQ,KAAM,QACdA,QAAQ,KAAM,mFAGV,IAAA2lC,EAAA7N,KACP,OACErK,EAAA71B,EAAA4N,cAAC6/D,EAAA,EAAD,KACE53C,EAAA71B,EAAA4N,cAAC0gC,EAAA,EAAD,CAAO6J,MAAO00B,IACX,SAAAr4D,GAA8B,IAA3BsD,EAA2BtD,EAA3BsD,KAAMtO,EAAqBgL,EAArBhL,MACR,GAD6BgL,EAAdinC,QACF,OAAO5lB,EAAA71B,EAAA4N,cAAC8/D,EAAA,EAAD,MACpB,GAAIlkE,EAAO,OAAOqsB,EAAA71B,EAAA4N,cAAC+/D,GAAA,EAAD,MAFW,IAIrBC,EAAkB91D,EAAlB81D,cACAtK,EAA2BsK,EAA3BtK,SAAUyI,EAAiB6B,EAAjB7B,aAGZxmE,GAFS,IAAIsoE,WACIC,gBAAgBxK,EAAU,YAC5ByK,WAAWC,UAEhC,OACEn4C,EAAA71B,EAAA4N,cAAC0gC,EAAA,EAAD,CACEC,SAAUw+B,GACVkB,eAAgB,CAAC,CAAE91B,MAAOuyB,MAEzB,SAACwD,EAADp5D,GAA2C,IAAd2mC,EAAc3mC,EAAd2mC,QACtB0yB,EAAcpgC,EAAKjiC,MAAM8mB,OAAOl3B,OAClCqyC,EAAKjiC,MAAM8mB,OAAO13B,IAAI,SAAC6N,EAAS5J,GAAV,OACpB02B,EAAA71B,EAAA4N,cAAC++D,GAAD,CAAShiE,QAAS,QAAShP,IAAKwD,GAC7B4J,KAGL,KASJ,OACE8sB,EAAA71B,EAAA4N,cAAC4c,GAAA,EAAD,CAAiB4jD,cAAY,UAC3Bv4C,EAAA71B,EAAA4N,cAACo+D,GAAD,KACEn2C,EAAA71B,EAAA4N,cAACygE,GAAD,KACEx4C,EAAA71B,EAAA4N,cAAA,kCACAioB,EAAA71B,EAAA4N,cAAC0gE,GAAD,CAAavC,aAAcA,KAE7Bl2C,EAAA71B,EAAA4N,cAAA,8JAKAioB,EAAA71B,EAAA4N,cAACu+D,GAAD,CAASoC,wBAAyB,CAAEC,OAAQjpE,KAC5CswB,EAAA71B,EAAA4N,cAAC6+D,GAAD,+LAMA52C,EAAA71B,EAAA4N,cAAC6gE,GAAD,KACE54C,EAAA71B,EAAA4N,cAAA,aACEioB,EAAA71B,EAAA4N,cAAC8gE,GAAD,CACEriD,QAAS0hB,EAAKjiC,MAAMq/D,MACpBl5D,SAAU87B,EAAKo/B,eAHnB,kDAOCgB,EACDt4C,EAAA71B,EAAA4N,cAAC++D,GAAD,CAAShiE,QAASojC,EAAKjiC,MAAMohE,SAA7B,2GAKFr3C,EAAA71B,EAAA4N,cAAC+gE,GAAD,KACE94C,EAAA71B,EAAA4N,cAACghE,GAAD,MACA/4C,EAAA71B,EAAA4N,cAACihE,GAAD,CACE1D,MAAOp9B,EAAKjiC,MAAMq/D,MAClBK,YAAaz9B,EAAKy9B,YAClB/vB,QAASA,EACTgwB,UA9CQ,WAChB19B,EAAKs/B,cACLa,IAA2B71D,MAAM,SAAA9O,GAC/B,IAAMulE,EAAYvlE,EAAEwlE,cAAc7zE,IAAI,SAAAqO,GAAC,OAAIA,EAAER,UAC7CglC,EAAKnM,SAAS,CAAEhP,OAAQk8C,wBA/D5B9oC,w1BC7FlB,IAAMgpC,GAAahjE,UAAO2uB,IAAVs0C,MAMV/6D,GAAclI,UAAO2uB,IAAVu0C,MAMXC,GAAcnjE,UAAO2uB,IAAVy0C,MAMXC,GAAmBrjE,UAAOc,IAAVwiE,MAMhBC,GAAYvjE,UAAOc,IAAV0iE,MAyBAx8C,GAdD,WACZ,IAAMy8C,EAAMroD,cAASvhB,cACrB,OACEgwB,EAAA71B,EAAA4N,cAACsoB,EAAA,SAAD,KACEL,EAAA71B,EAAA4N,cAACohE,GAAD,CAAY72C,IAAKlR,IAAoBmR,IAAI,KACzCvC,EAAA71B,EAAA4N,cAAC8hE,GAAD,CAAav3C,IAAKw3C,KAAev3C,IAAI,KACrCvC,EAAA71B,EAAA4N,cAACyhE,GAAD,KACW,QAARI,GAAiB55C,EAAA71B,EAAA4N,cAAC2hE,GAAD,KAAYE,IAEhC55C,EAAA71B,EAAA4N,cAACuhE,GAAD,CAAah3C,IAAKy3C,KAAWx3C,IAAI,6qBC7CvC,IAAMy3C,GAAY7jE,UAAO8jE,IAAVC,MAgCTC,GA3BehkE,UAAOie,OAAVgmD,KASiB,SAAA/jE,GAAK,OAAIA,EAAMC,MAAMC,aAkBrBogB,cAAc0jD,WAelCC,GAbH,WACV,OACEt6C,EAAA71B,EAAA4N,cAACiiE,GAAD,CAAWO,aAAW,cACpBv6C,EAAA71B,EAAA4N,cAACoiE,GAAD,CAAerpE,GAAI0pE,mBAA0B75C,GAAG,IAAI85C,OAAK,GAAzD,aACYz6C,EAAA71B,EAAA4N,cAAA,cAEZioB,EAAA71B,EAAA4N,cAACoiE,GAAD,CAAerpE,GAAI0pE,kBAAyB75C,GAAG,YAAY85C,OAAK,GAAhE,YACWz6C,EAAA71B,EAAA4N,cAAA,ieCxCjB,IAAM0sB,GAAetuB,UAAOie,OAAVsmD,MAcZC,GAAiBxkE,UAAO7M,EAAVsxE,KAGhBn2C,IAiBWo2C,GAZF,WAKX,OACE76C,EAAA71B,EAAA4N,cAAC+iE,GAAD,CAAchqE,GAAI0pE,cAAqB36D,QALxB,WACfgC,OAAO3D,KAAKgW,IAAU,YAKpB8L,EAAA71B,EAAA4N,cAAC4iE,GAAD,CAAgBt4C,UAAU,uCCFjB04C,GA/Ba,SAACC,GAA8B,IAAAjhE,EACvBC,mBAASghE,GADc/gE,EAAAjT,OAAA6gC,EAAA,EAAA7gC,CAAA+S,EAAA,GAClDkhE,EADkDhhE,EAAA,GACvCihE,EADuCjhE,EAAA,GAEnDkhE,EAAMC,iBAAO,MAIbC,EAAoB,SAACC,GACP,WAAdA,EAAMx1E,KACRo1E,GAAa,IAIXK,EAAqB,SAACD,GAEtBH,EAAIK,UAAYL,EAAIK,QAAQC,SAASH,EAAMttC,SAC7CktC,GAAa,IAajB,OATAzgE,oBAAU,WAGR,OAFA0H,SAASu5D,iBAAiB,UAAWL,GAAmB,GACxDl5D,SAASu5D,iBAAiB,QAASH,GAAoB,GAChD,WACLp5D,SAASw5D,oBAAoB,UAAWN,GAAmB,GAC3Dl5D,SAASw5D,oBAAoB,QAASJ,GAAoB,MAIvD,CAAEJ,MAAKF,YAAWC,eAAcU,gBAxBf,kBAAMV,GAAcD,oWCJvC,IAAMY,GAAuB,6NAUvBC,GAAmB3lE,UAAOc,IAAV8kE,MAOhBC,GAAwB7lE,UAAOkC,KAAV4jE,KAEC,SAAA5lE,GAAK,OAAIA,EAAMC,MAAMC,02DCTxD,IAAM2lE,GAAgB/lE,UAAOc,IAAVklE,MAKbC,GAAsBjmE,UAAOie,OAAVioD,MAenBC,GAAoBnmE,UAAOc,IAAVslE,KACnBV,IAMEztB,GAAaj4C,UAAOkC,KAAVmkE,KAMmB,SAAAnmE,GAAK,OAAIA,EAAMC,MAAMC,YAGpD6lE,IAKEK,GAAoBtmE,UAAOc,IAAVylE,MAMjB5N,GAAsB34D,UAAOc,IAAV0lE,KACU,SAAAtmE,GAAK,OAAIA,EAAMC,MAAMC,aAKlDkpB,GAAatpB,UAAOhM,EAAVyyE,KAImB,SAAAvmE,GAAK,OAAIA,EAAMC,MAAMC,aAMlDkuB,GAAetuB,UAAOie,OAAVyoD,KACiB,SAAAxmE,GAAK,OAAIA,EAAMC,MAAMC,aAkEzCumE,GA3CC,SAAAxtE,GAAyB,IAAtBytE,EAAsBztE,EAAtBytE,SAAsBC,EACKjC,IAAoB,GAAxDI,EAD+B6B,EAC/B7B,IAAKF,EAD0B+B,EAC1B/B,UAAWW,EADeoB,EACfpB,gBAClBqB,EAAYF,EAAWA,EAASE,UAAY,IAC5CC,EAAWH,EAAWA,EAASG,SAAW,IAE1CC,EAAmBlC,GACvBj7C,EAAA71B,EAAA4N,cAACukE,GAAD,KACEt8C,EAAA71B,EAAA4N,cAAC0kE,GAAD,KACEz8C,EAAA71B,EAAA4N,cAAC+jE,GAAD,KACE97C,EAAA71B,EAAA4N,cAACikE,GAAD,iBAAiCiB,IAEnCj9C,EAAA71B,EAAA4N,cAACqlE,GAAD,aACAp9C,EAAA71B,EAAA4N,cAAC0nB,GAAD,CACE3uB,GAAI0pE,2BACJp4D,KAAMqP,cAAiBnf,WACvB07B,OAAO,SACPqK,IAAI,uBAJN,mBAQArY,EAAA71B,EAAA4N,cAACslE,GAAD,CACEvsE,GAAI0pE,wBACJ36D,QAASkS,KAFX,YAUN,OACEiO,EAAA71B,EAAA4N,cAACmkE,GAAD,CAAef,IAAKA,GAClBn7C,EAAA71B,EAAA4N,cAACqkE,GAAD,CACEtrE,GAAI0pE,iBACJ36D,QAAS+7D,GAET57C,EAAA71B,EAAA4N,cAACulE,GAAD,KAAaJ,IAEdC,+/BC5HP,IAIMI,GAAqBpnE,kBAJT,SAAA7G,KAAG6uB,YAAH,IAAmBvmB,EAAnB5Q,OAAAspC,EAAA,EAAAtpC,CAAAsI,EAAA,wBAChB0wB,EAAA71B,EAAA4N,cAAA,MAASH,IAGgBzB,CAAHqnE,KAEF,SAAAnnE,GAAK,OACvBA,EAAM8nB,YAAc,UAAY,wBACzB,SAAA9nB,GAAK,OAAKA,EAAM8nB,YAAc,UAAY,YAW/Cs/C,GAAoBtnE,UAAOc,IAAVymE,KACY,SAAArnE,GAAK,OAAIA,EAAMC,MAAMC,aAKlDugC,GAAc3gC,kBAAOmB,YAAPnB,CAAHwnE,MASXC,GAAqBznE,UAAOc,IAAV4mE,KAEW,SAAAxnE,GAAK,OAAIA,EAAMC,MAAMC,aAKlDyzC,GAAmB7zC,UAAO2uB,IAAVg5C,MAuDPC,GA3Ca,SAAArlE,GAA2C,IAAxC0lB,EAAwC1lB,EAAxC0lB,UAAW4/C,EAA6BtlE,EAA7BslE,gBAA6BjkE,EACjCC,mBAAS,IADwBC,EAAAjT,OAAA6gC,EAAA,EAAA7gC,CAAA+S,EAAA,GAC9DkkE,EAD8DhkE,EAAA,GAClDikE,EADkDjkE,EAAA,GAM/DkkE,EAAkBtlD,aAAcuF,GAEtC,OACE4B,EAAA71B,EAAA4N,cAACioB,EAAA71B,EAAMw0C,SAAP,KACE3e,EAAA71B,EAAA4N,cAAC+jE,GAAD,KACE97C,EAAA71B,EAAA4N,cAACikE,GAAD,wBAEFh8C,EAAA71B,EAAA4N,cAAC6lE,GAAD,KACE59C,EAAA71B,EAAA4N,cAACqmE,GAAD,CAAkB97C,IAAK+T,KAAQ9T,IAAI,KACnCvC,EAAA71B,EAAA4N,cAACsmE,GAAD,CACEnsE,MAAO+rE,EACPzhE,YAAY,mBACZJ,SAfc,SAAC1I,GAAD,OACpBwqE,EAAcxqE,EAAE4I,cAAcpK,WAiB5B8tB,EAAA71B,EAAA4N,cAAC0lE,GAAD,KACGU,EACEh1E,OAAO,SAACpB,GAAD,OACNA,EAAEmB,KAAKy4D,cAAcn2C,SAASyyD,EAAWtc,iBAE1Ct8D,IAAI,SAAC0C,GACJ,OACEi4B,EAAA71B,EAAA4N,cAACwlE,GAAD,CACEz3E,IAAKiC,EAAE+I,GACPqtB,YAAap2B,EAAEo2B,YACfte,QAAS,kBAAMm+D,EAAgBj2E,KAE9BA,EAAEmB,KACFnB,EAAEo2B,aAAe6B,EAAA71B,EAAA4N,cAAA,OAAKuqB,IAAKg8C,KAAM/7C,IAAI,gNClG/C,IAAMg8C,GAAgBv+D,KAAHw+D,MCiBXC,GAXU,WAAM,IAAA38B,EACIvkC,aAAkBghE,IADtBx8B,EAAA/6C,OAAA6gC,EAAA,EAAA7gC,CAAA86C,EAAA,GACtBE,EADsBD,EAAA,GAQ7B,MAAO,CAAEw8B,cALS,SAACx2E,GACjB,OAAOi6C,EAAO,CACZvkC,UAAW,CAAEihE,UAAW32E,EAAE+I,OAGK6tE,eARN58B,EAAA,y0BCE/B,IAAM68B,GAAYzoE,UAAO2uB,IAAV+5C,MAKTC,GAAwB3oE,UAAOie,OAAV2qD,KAEQ,SAAA1oE,GAAK,OAAIA,EAAMC,MAAMC,aAgBlD63C,GAAaj4C,UAAOkC,KAAV2mE,MAOVxoE,GAAgBL,kBAAOM,KAAPN,CAAH8oE,KACfpD,IA4DWqD,GA/CS,SAAA5vE,GAOX,IANX6vE,EAMW7vE,EANX6vE,iBACA/gD,EAKW9uB,EALX8uB,UACAghD,EAIW9vE,EAJX8vE,oBACAC,EAGW/vE,EAHX+vE,sBACAC,EAEWhwE,EAFXgwE,gBACAC,EACWjwE,EADXiwE,gBAEQhB,EAAkBE,KAAlBF,cAcR,OACEv+C,EAAA71B,EAAA4N,cAACvB,GAAD,CACE6E,OAAQ+jE,EACR1jE,KACEskB,EAAA71B,EAAA4N,cAACynE,GAAD,CACEphD,UAAWA,EACX4/C,gBAlBgB,SAACj2E,GACvBw2E,EAAcx2E,GACX2Z,KAAK,SAAAia,GACAA,GAAOA,EAAI1Z,MAAQ0Z,EAAI1Z,KAAKs8D,cAC9Be,EAAgBv3E,GAEhBw3E,MAGH58D,QAAQ,kBAAM08D,SAYf9jE,8BAA+B,EAC/BC,QAAS,GACTC,MAAM,QACNH,cAAe+jE,GAEfr/C,EAAA71B,EAAA4N,cAAC+mE,GAAD,CACEhuE,GAAI0pE,uBACJ36D,QAASw/D,GAETr/C,EAAA71B,EAAA4N,cAAC0nE,GAAD,KAAaN,EAAiBj2E,MAC9B82B,EAAA71B,EAAA4N,cAAC6mE,GAAD,CAAWt8C,IAAKo9C,KAAOn9C,IAAI,uxBC1FnC,IAAMo9C,GAAYC,oBAAHC,MASTl4D,GAAUxR,UAAOc,IAAV6oE,KAEOH,IAUdI,GAAiB5pE,kBAAOwR,GAAPxR,CAAH6pE,MAKdC,GAAe9pE,kBAAOwR,GAAPxR,CAAH+pE,MAsCHC,GAxBc,SAAA7wE,GAIhB,IAHX6vE,EAGW7vE,EAHX6vE,iBACAiB,EAEW9wE,EAFX8wE,wBACAC,EACW/wE,EADX+wE,wBAYA,OAVA5lE,oBAAU,WACR,IAAM6lE,EAAWC,YAAY,WAC3BF,KACC,KAEH,OAAO,WACLG,cAAcF,MAIdF,EACKpgD,EAAA71B,EAAA4N,cAACkoE,GAAD,QAAAv3E,OAlBM,gCAkBN,MAIPs3B,EAAA71B,EAAA4N,cAACgoE,GAAD,QAAAr3E,OAvBe,kCAuBf,KAAAA,OAAkCy2E,EAAiBj2E,KAAnD,4lCCpDJ,IAAMuuC,GAAethC,UAAO+I,OAAVuhE,KASI,SAAAnxE,GAAA,OAAAA,EAAGgH,MAAkB+d,aAAa,KAKlDqsD,GAAgBvqE,UAAOc,IAAV0pE,MAKbC,GAAmBzqE,UAAOie,OAAVysD,MAchBC,GAAiB3qE,UAAO7M,EAAVy3E,KAGhBH,IAKEI,GAAiB7qE,UAAOc,IAAVgqE,MA+GLjhB,GA3FA,SAAAtnD,GASF,IARXwoE,EAQWxoE,EARXwoE,cACAnE,EAOWrkE,EAPXqkE,SAEAoE,GAKWzoE,EANX0oE,KAMW1oE,EALXyoE,oBACAE,EAIW3oE,EAJX2oE,mBACAC,EAGW5oE,EAHX4oE,eACAC,EAEW7oE,EAFX6oE,gBACAC,EACW9oE,EADX8oE,mBAEMpjD,EAAY2+C,EAAWA,EAAS3+C,UAAY,GAC5C67C,EAAMiH,GAAiBC,EAAqBnhD,EAAA71B,EAAA4N,cAAC0pE,GAAD,MAAU,KAFjD/nE,EAOPC,eAFWylE,EALJ1lE,EAKTE,YACeylE,EANN3lE,EAMTG,cANSE,EAYPC,oBAAS,GAZFC,EAAAjT,OAAA6gC,EAAA,EAAA7gC,CAAA+S,EAAA,GAUT2nE,EAVSznE,EAAA,GAWT0nE,EAXS1nE,EAAA,GAAAI,EAamDL,oBAAS,GAb5DM,EAAAtT,OAAA6gC,EAAA,EAAA7gC,CAAAqT,EAAA,GAaJ+lE,EAbI9lE,EAAA,GAaqBsnE,EAbrBtnE,EAAA,GAAA0tB,EAoBqChuB,mBAC9C8e,aAAoBsF,IArBX6J,EAAAjhC,OAAA6gC,EAAA,EAAA7gC,CAAAghC,EAAA,GAoBJm3C,EApBIl3C,EAAA,GAoBc45C,EApBd55C,EAAA,GAuBXxtB,oBAAU,WACRonE,EAAoB/oD,aAAoBsF,KACvC,CAACA,IAEJ,IAaM0jD,EACJX,GAAsB/iD,EAAUv4B,OAAS,GAAKs5E,EAC5Cn/C,EAAA71B,EAAA4N,cAACgqE,GAAD,CACE5C,iBAAkBA,EAClB/gD,UAAWA,EACXghD,oBAAqBA,EACrBC,sBAAuBA,EACvBC,gBApBkB,SAACv3E,GAClBw5E,IACCC,GAAoBA,IACxBK,EAAoB95E,GACpB45E,GAA+B,GAC3BL,GAAgBA,MAgBlB/B,gBAZkB,WACtBqC,GAA2B,MAavB,KAEAI,GACHN,GAA+BtB,IAChCjB,EACEn/C,EAAA71B,EAAA4N,cAACkqE,GAAD,CACE9C,iBAAkBA,EAClBiB,wBAAyBA,EACzBC,wBA5C0B,WAC9BsB,GAA+B,GAC/BC,GAA2B,MA4CvB,KAEN,OACE5hD,EAAA71B,EAAA4N,cAACmqE,GAAD,CAAcpxE,GClJI,UDmJhBkvB,EAAA71B,EAAA4N,cAAC2oE,GAAD,KACE1gD,EAAA71B,EAAA4N,cAAC6oE,GAAD,CAAkB/gE,QAASwhE,GACzBrhD,EAAA71B,EAAA4N,cAAC+oE,GAAD,CAAgBz+C,UAAU,+BAE5BrC,EAAA71B,EAAA4N,cAACoqE,GAAD,MACClI,GAGHj6C,EAAA71B,EAAA4N,cAACipE,GAAD,KACGG,EAAqBnhD,EAAA71B,EAAA4N,cAACqqE,GAAD,MAAW,KACjCpiD,EAAA71B,EAAA4N,cAACsqE,GAAD,CAAStF,SAAUA,IAClB+E,EACAE,KExJMM,GAFMzgE,OCwBf0gE,GAAa,SAACxqC,EAAcyqC,EAAkBC,GAClD,IAAMC,EAASJ,GAAaK,OACvBD,GACyB,OAA1BE,YAAU7qC,EAAMyqC,IAA4B,KAAVC,GACpCC,EAAO,eAAgBD,IAIZI,GA3BU,SAAC9F,GACxB,IAAM+F,EAAMC,cACZtoE,oBAAU,WACS,OAAbsiE,IASJwF,GAAWO,EAAI15B,SALa,CAAErR,KAAM,IAAK0iC,OAAO,GAKZsC,EAASiG,oBAC7CT,GAAWO,EAAI15B,SALc,CAAErR,KAAM,YAAa0iC,OAAO,GAKpBsC,EAASkG,kBAC9CV,GAAWO,EAAI15B,SALmB,CAAErR,KAAM,gBAAiB0iC,OAAO,GAKxBsC,EAASmG,sBACnDX,GAAWO,EAAI15B,SALgB,CAAErR,KAAM,YAAa0iC,OAAO,GAKpBsC,EAASoG,qBAC/C,CAACL,EAAK/F,4jBCrBX,IAAM5lE,GAAQhB,UAAOc,IAAVmsE,MAOLC,GAAUltE,UAAOc,IAAVqsE,KACsB,SAAAjtE,GAAK,OAAIA,EAAMC,MAAMC,aAGlDoR,GAAUxR,UAAOc,IAAVssE,KACsB,SAAAltE,GAAK,OAAIA,EAAMC,MAAMC,aAIlDitE,GAAOrtE,UAAO2uB,IAAV2+C,MAgBKC,GAVM,kBACnB1jD,EAAA71B,EAAA4N,cAAC4rE,GAAD,KACE3jD,EAAA71B,EAAA4N,cAACsrE,GAAD,KACErjD,EAAA71B,EAAA4N,cAACyrE,GAAD,CAAMlhD,IAAKshD,OADb,iBAEiBz2D,MAEjB6S,EAAA71B,EAAA4N,cAAC8rE,GAAD,6NCRJ,IAQMvB,GAAezgE,OACfiiE,GAASxB,GAAayB,kBAsDbC,GARQ7tE,kBA5CH,SAAA7G,GAA+C,IAA5C8xE,EAA4C9xE,EAA5C8xE,KAAMljE,EAAsC5O,EAAtC4O,KAAM+lE,EAAgC30E,EAAhC20E,QAAS5hD,EAAuB/yB,EAAvB+yB,UAAuBtoB,EACnCC,oBAAS,GAD0BC,EAAAjT,OAAA6gC,EAAA,EAAA7gC,CAAA+S,EAAA,GAC1DmqE,EAD0DjqE,EAAA,GACjDkqE,EADiDlqE,EAAA,GAE3DmqE,EAAShD,EAAK/7E,IAAI,SAAA8E,GAAC,OAAIA,EAAE2G,GAAGd,gBAC5B4pE,EAdU,WAChB,IAAMyK,EAAO/B,GAAa3vD,gBAC1B,QAAaxf,IAATkxE,EAAoB,MAAO,OAC/B,IAAMzK,EAAMyK,EAAK3uE,WAAWsd,QAC5B,OAAY,OAAR4mD,EAAqB,OAClBA,EAAI5pE,cASCs0E,GAQN/I,EAAqBx3C,sBACzB,SAACu3C,GACC,IAAMiJ,EAAoBpiE,SAASqiE,uBACjC,sBACA,GACF,GAAID,EAAmB,CACrB,IAAME,EAAatiE,SAASqiE,uBAAuB,aAAa,GAG7DD,EAAkB9I,SAASH,EAAMttC,SAClCstC,EAAMttC,SAAWy2C,GAEjBR,GAAQ,KAId,CAACA,IAcH,OAXAxpE,oBAAU,WAOR,OANIyD,GACFokE,GAAa5G,iBAAiB,QAASH,GAAoB,GAEzD2I,QAAsB/wE,IAAX2wE,IACbA,GAAO9qC,OAAO,CAAE96B,OAAMkjE,KAAMgD,EAAQxK,QAE/B,WACL0I,GAAa3G,oBAAoB,QAASJ,GAAoB,KAE/D,CAAC2I,EAAShmE,EAAMkmE,EAAQxK,EAAK2B,IACzBv7C,EAAA71B,EAAA4N,cAAA,OAAKojE,IArCO,SAAC1zE,GACL,OAATA,GAAkBy8E,QAAsB/wE,IAAX2wE,KAC/BA,GAAOY,MAAM,CAAEC,cAAel9E,EAAMyW,OAAMkjE,KAAMgD,EAAQxK,QACxDuK,GAAW,KAkCc9hD,UAAWA,KAGnBlsB,CAAHyuE,KAEP,SAAAlsE,GAAA,OAAAA,EAAGwF,KAAmB,QAAU,yHCrD7C,IC7BK2mE,GD6BCC,GAAa3uE,UAAO4uE,KAAVC,MAKVC,GAAoBC,IAAS,CACjC5d,OAAQ,kBAAM6d,QAAAC,IAAA,CAAA1oE,EAAAhJ,EAAA,GAAAgJ,EAAAhJ,EAAA,MAAAgO,KAAAhF,EAAAwyB,KAAA,aACd0W,QAAS2f,MAGL8f,GAAmBH,IAAS,CAChC5d,OAAQ,kBAAM6d,QAAAC,IAAA,CAAA1oE,EAAAhJ,EAAA,GAAAgJ,EAAAhJ,EAAA,GAAAgJ,EAAAhJ,EAAA,IAAAgJ,EAAAhJ,EAAA,GAAAgJ,EAAAhJ,EAAA,MAAAgO,KAAAhF,EAAAwyB,KAAA,aACd0W,QAAS2f,MAGL+f,GAAkBJ,IAAS,CAC/B5d,OAAQ,kBAAM5qD,EAAAhJ,EAAA,IAAAgO,KAAAhF,EAAAwyB,KAAA,aACd0W,QAAS2f,MAGLggB,GAAqBL,IAAS,CAClC5d,OAAQ,kBAAM5qD,EAAAhJ,EAAA,IAAAgO,KAAAhF,EAAAwyB,KAAA,aACd0W,QAAS2f,MAwKIigB,GAhJG,SAAAl2E,GAmBL,IAlBXytE,EAkBWztE,EAlBXytE,SACAuE,EAiBWhyE,EAjBXgyE,eACAC,EAgBWjyE,EAhBXiyE,gBACAC,EAeWlyE,EAfXkyE,mBACA35E,EAcWyH,EAdXzH,QACA49E,EAaWn2E,EAbXm2E,WACAC,EAYWp2E,EAZXo2E,UACAC,EAWWr2E,EAXXq2E,cACAC,EAUWt2E,EAVXs2E,kBACAt6C,EASWh8B,EATXg8B,aACAu6C,EAQWv2E,EARXu2E,aACAC,EAOWx2E,EAPXw2E,eACAC,EAMWz2E,EANXy2E,gBACAC,EAKW12E,EALX02E,gBACAC,EAIW32E,EAJX22E,iBACAC,EAGW52E,EAHX42E,iBACAzR,EAEWnlE,EAFXmlE,UACAlB,EACWjkE,EADXikE,eACWyJ,EAC0CjC,IACnD,GADMG,EADG8B,EACH9B,aAAcD,EADX+B,EACW/B,UAAWW,EADtBoB,EACsBpB,gBAGzBuK,EAAqCpJ,EAArCoJ,cAAez9D,EAAsBq0D,EAAtBr0D,SAAUrI,EAAY08D,EAAZ18D,QAC3B6gE,IAAgBiF,EAAcjF,eAChCiF,EAAcC,gBAAkBD,EAAcE,eAElDxD,GAAiB9F,GACjB,IAAMoE,EAAqBz4D,EAAS49D,aAAa/0E,KAC/C,SAAApH,GAAC,MAAa,aAATA,EAAE2G,KAIHy1E,EADiBhuD,aAAcuD,KAAaC,KAAM1b,GACb2b,KAAewqD,oBAEpDtnE,EACJ8gB,EAAA71B,EAAA4N,cAAC0uE,GAAD,CACEvF,cAAeA,EACfnE,SAAUA,EACVqE,KAAM14D,EAAS49D,aACfnF,mBAAoBA,EACpBE,mBAAoBzF,EACpB0F,eAAgBA,EAChBC,gBAAiBA,EACjBC,mBAAoBA,IAIxB,OAAKL,EAUHnhD,EAAA71B,EAAA4N,cAACghC,EAAA,EAAD,KACE/Y,EAAA71B,EAAA4N,cAACghC,EAAA,EAAD,CACEhB,KAAK,uDACLiB,OAAQ,SAAAtgC,GAAe,IAAAguE,EAAAhuE,EAAZpE,MACyCgN,OAA1ChE,EADaopE,EACbppE,aAAcqpE,EADDD,EACCC,kBACtB,OACE3mD,EAAA71B,EAAA4N,cAACwtE,GAAD,CACEjoE,aAAcA,EACdqpE,kBAAmBA,EACnBC,SAAQ,YAAAl+E,OAAc4U,EAAd,eACRupE,SAAQ,YAAAn+E,OAAc4U,EAAd,iBAKhB0iB,EAAA71B,EAAA4N,cAACghC,EAAA,EAAD,KACE/Y,EAAA71B,EAAA4N,cAAC+uE,GAAD,KACG5nE,EACD8gB,EAAA71B,EAAA4N,cAAC6/D,EAAA,EAAD,KACE53C,EAAA71B,EAAA4N,cAAC+sE,GAAD,KACE9kD,EAAA71B,EAAA4N,cAACgvE,GAAD,CACE7oE,KAAM+8D,EACNgJ,QAAS/I,EACTkG,KAAM14D,EAAS49D,eAEjBtmD,EAAA71B,EAAA4N,cAACghC,EAAA,EAAD,MACImoC,GACAlhD,EAAA71B,EAAA4N,cAACghC,EAAA,EAAD,CAAOhB,KAAK,KACV/X,EAAA71B,EAAA4N,cAACivE,GAAD,OAGJhnD,EAAA71B,EAAA4N,cAACghC,EAAA,EAAD,CAAOhB,KAAK,IAAI0iC,OAAK,GACnBz6C,EAAA71B,EAAA4N,cAACktE,GAAD,CACE1D,gBAAiBA,EACjBqE,kBAAmBA,EACnBW,oBAAqBA,EACrB1+E,QAASA,EACT49E,WAAYA,EACZI,aAAcA,EACdlyE,MAAOmyE,EACPzf,QAAS0f,EACTC,gBAAiBA,EACjBC,iBAAkBA,EAClBrgC,QAASsgC,KAGblmD,EAAA71B,EAAA4N,cAACghC,EAAA,EAAD,CAAOhB,KAAK,aACV/X,EAAA71B,EAAA4N,cAACstE,GAAD,OAEFrlD,EAAA71B,EAAA4N,cAACghC,EAAA,EAAD,CAAOhB,KAAK,YAAY0iC,OAAK,GAC3Bz6C,EAAA71B,EAAA4N,cAACkvE,EAAD,OAEFjnD,EAAA71B,EAAA4N,cAACghC,EAAA,EAAD,CACEhB,KAAK,yBACLiB,OAAQ,SAAAz6B,GAAyB,IAAtBjK,EAAsBiK,EAAtBjK,MAAOif,EAAehV,EAAfgV,SACRjW,EAAiBhJ,EAAMgN,OAAvBhE,aACR,OACE0iB,EAAA71B,EAAA4N,cAACutE,GAAD,CACE/xD,SAAUA,EACVjW,aAAcA,EACd4pE,mBAAoBx+D,EAASw+D,mBAC7BC,SAAUz+D,EAAS49D,aACnBX,cAAeA,EACfr6C,aAAcA,EACdo6C,UAAWA,OAKnB1lD,EAAA71B,EAAA4N,cAACghC,EAAA,EAAD,KACE/Y,EAAA71B,EAAA4N,cAACqvE,EAAD,UAMRpnD,EAAA71B,EAAA4N,cAACsvE,GAAD,CACE5S,UAAWA,EACXlB,eAAgBA,OAtFtBvzC,EAAA71B,EAAA4N,cAAC+uE,GAAD,KACG5nE,EACD8gB,EAAA71B,EAAA4N,cAACuvE,GAAD,QEtEOC,eA7Cb,SAAAA,EAAYlxE,GAAO,IAAAq4B,EAAA,OAAA1nC,OAAA2nC,EAAA,EAAA3nC,CAAAqjC,KAAAk9C,IACjB74C,EAAA1nC,OAAA6nC,EAAA,EAAA7nC,CAAAqjC,KAAArjC,OAAA8nC,EAAA,EAAA9nC,CAAAugF,GAAAx4C,KAAA1E,KAAMh0B,KACDJ,MAAQ,CAAEuxE,gBAAgB,EAAOC,cAAc,GAFnC/4C,mFAKC,IAAAwJ,EAAA7N,KAClB,GAAIlY,cACFkY,KAAK0B,SAAS,CAAEy7C,gBAAgB,QADlC,CAIA,IACMt0D,EADc,IAAIkjB,gBAAgBv0B,OAAO0R,SAAS8iB,QAC/BrwC,IAAI,QAC7B,GAAIktB,EACFrB,YAAMqB,GAAM1Q,MAAM,SAAA9O,GACE,mBAAdA,EAAER,SACJglC,EAAKnM,SAAS,CAAE07C,cAAc,UAHpC,CAQA,IAAMlvC,EAAWjnB,YAAkBE,eACnC3P,OAAO0R,SAAShhB,QAAQgmC,sCAGjB,IACCp5B,EAAakrB,KAAKh0B,MAAlB8I,SADDuoE,EAEkCr9C,KAAKp0B,MAAtCuxE,EAFDE,EAECF,eAER,OAJOE,EAEiBD,aAIpBznD,EAAA71B,EAAA4N,cAAC+uE,GAAD,KACE9mD,EAAA71B,EAAA4N,cAAC0uE,GAAD,CAAQvF,eAAe,EAAOC,oBAAoB,IAClDnhD,EAAA71B,EAAA4N,cAACuvE,GAAD,OAKFE,EACKroE,EAGF,YA1CkB8D,IAAMktB,qBCMpBw3C,GAda,SAAAr4E,GAAc,IAAXs4E,EAAWt4E,EAAXs4E,KAW7B,OAVAntE,oBAAU,WACR,GAAImtE,GAAQA,EAAK7K,SAAmD,CAClE,IAAM8K,EAASD,EAAK7K,SAAS+K,MAC7BC,KAAmBF,EAAQ,CACzBG,YAAaJ,EAAK7K,SAASkL,SAC3BC,YAAaN,EAAK7K,SAASmL,gBAG9B,CAACN,IAEG,gBCJMO,GAJa,kBAC1BnoD,EAAA71B,EAAA4N,cAACqwE,GAAA,EAAD,CAAWthB,SAAU,IAAKuhB,QAHP,KAG8BC,OAAQv2D,iBHPtD8yD,uDAKUA,UI8BA0D,GAzBY,SAAAj5E,GAAmC,IAAhC6P,EAAgC7P,EAAhC6P,SAAUqpE,EAAsBl5E,EAAtBk5E,SAAsBzuE,EAC7BC,mBAAoB6qE,GAAU4D,OADDxuE,EAAAjT,OAAA6gC,EAAA,EAAA7gC,CAAA+S,EAAA,GACrD2uE,EADqDzuE,EAAA,GAC1C0uE,EAD0C1uE,EAAA,GAGtD2uE,EAAiB,kBACrB52D,cACGtQ,KAAK,SAACC,GACmB,MAApBA,EAASrU,OACXq7E,EAAU9D,GAAUgE,IAEpBF,EAAU9D,GAAUiE,SAGvBtmE,MAAM,kBAAMmmE,EAAU9D,GAAU4D,UAUrC,OARAhuE,oBAAU,WACRmuE,KACC,IAEHnuE,oBAAU,WACJ+tE,GAAYA,EAAS3iF,QAAQ+iF,KAChC,CAACJ,IAEGrpE,EAASupE,8PC9BlB,IAUeK,GAVA5yE,UAAOc,IAAV+xE,i5BCQJpyC,GAAUC,QAAVD,MAEFqyC,GAAO9yE,UAAO4uE,KAAVmE,MAOJ3kC,GAAKpuC,UAAO42B,GAAVo8C,MAOFpzC,GAAQ5/B,UAAOyH,EAAVwrE,MAILC,GAAelzE,UAAOc,IAAVqyE,MAIZC,GAAepzE,kBAAO2uD,cAAP3uD,CAAHqzE,MAKZC,GAAYtzE,UAAOuzE,IAAVC,MAKTC,GAAM,SAACvzE,GAAD,OACV2pB,EAAA71B,EAAA4N,cAAA,WACEioB,EAAA71B,EAAA4N,cAACwxE,GAAiBlzE,GAClB2pB,EAAA71B,EAAA4N,cAAC0xE,GAAD,gBAIEjG,GAAOrtE,kBAAOygC,GAAPzgC,CAAH0zE,KAEA,SAAAv6E,GAAA,OAAAA,EAAGgH,MAAkBihC,OAAO,KAIhC5vB,GAAU,kBACdqY,EAAA71B,EAAA4N,cAACsxE,GAAD,KACErpD,EAAA71B,EAAA4N,cAAC+xE,GAAD,KACE9pD,EAAA71B,EAAA4N,cAACgyE,GAAD,MACC58D,KAFH,YAIA6S,EAAA71B,EAAA4N,cAACiyE,GAAD,0DACoDhqD,EAAA71B,EAAA4N,cAAA,WADpD,8BAsBWkyE,GAfM,kBACnBjqD,EAAA71B,EAAA4N,cAAC+uE,GAAD,KACE9mD,EAAA71B,EAAA4N,cAACmF,GAAA,EAAD,KACE8iB,EAAA71B,EAAA4N,cAACmyE,GAAA,EAAD,KACElqD,EAAA71B,EAAA4N,cAAC6mB,GAAA,EAAD,MACAoB,EAAA71B,EAAA4N,cAACkxE,GAAD,KACEjpD,EAAA71B,EAAA4N,cAACoyE,GAAD,CAAKxiC,KAAK,MAAMyiC,kBAAgB,YAChCpqD,EAAA71B,EAAA4N,cAACsyE,GAAD,OAEFrqD,EAAA71B,EAAA4N,cAACuyE,GAAD,CAAQx5E,GAAG,WAAX,qBC3COy5E,GAlCiB,WAAM,IAAAxwE,EACFC,oBAAS,GADPC,EAAAjT,OAAA6gC,EAAA,EAAA7gC,CAAA+S,EAAA,GAC7BywE,EAD6BvwE,EAAA,GAClBwwE,EADkBxwE,EAAA,GA+BpC,OA7BAQ,oBAAU,WAGF,kBAAmBiwE,WACP,IAAI5oE,IACpB+Q,GACAhR,OAAO0R,SAASjhB,YAEJkgB,SAAW3Q,OAAO0R,SAASf,QAG9Bk4D,UAAUC,cAElBC,kBAAkBlpE,KAAK,SAAAmpE,GACxB,QAAY13E,IAAR03E,EAAJ,CACA,IAAMC,EAAmBD,EAAIE,WACJ,OAArBD,IACJA,EAAiBE,cAAgB,WACA,cAA3BF,EAAiB70E,OACfy0E,UAAUC,cAAcM,YAG1BR,GAAa,SAKpB,IAEID,GCnBMU,GATc,WAC3B,IAAMC,EAAcZ,KACda,EAAWjW,aAAY3B,IAAW99C,cAIxC,OAHAjb,oBAAU,WACJ0wE,GAAaC,KAChB,CAACD,EAAaC,IACV,MCoCMC,GArCU,SAAA/7E,GAAmC,IAAhC6P,EAAgC7P,EAAhC6P,SAAUqpE,EAAsBl5E,EAAtBk5E,SAAsBzuE,EAC5BC,mBAAoB6qE,GAAU4D,OADFxuE,EAAAjT,OAAA6gC,EAAA,EAAA7gC,CAAA+S,EAAA,GACnDuxE,EADmDrxE,EAAA,GAC1CsxE,EAD0CtxE,EAAA,GAGpDuxE,EAAmB,WACLr5D,eAEhBJ,eAIE05D,EAAe1nD,sBAAY,WAC/B9R,cACGvQ,KAAK,SAACC,GACmB,MAApBA,EAASrU,OACXi+E,EAAW1G,GAAUgE,KAErB0C,EAAW1G,GAAUiE,OACrB0C,OAGHhpE,MAAM,WACL+oE,EAAW1G,GAAU4D,OACrB+C,OAEH,IAUH,OARA/wE,oBAAU,WACRgxE,KACC,CAACA,IAEJhxE,oBAAU,WACJ+tE,GAAYA,EAAS3iF,QAAQ4lF,KAChC,CAACA,EAAcjD,IAEXrpE,EAASmsE,i1BCtClB,IAAMn0E,GAAQhB,UAAOc,IAAVy0E,MAcLp0D,GAAanhB,UAAO2uB,IAAV6mD,MAIVC,GAAgBz1E,UAAOyH,EAAViuE,MAIbp0C,GAAethC,UAAOyH,EAAVkuE,MAQZn0C,GAAexhC,UAAOhM,EAAV4hF,MAyBHC,GApBY,kBACzBhsD,EAAA71B,EAAA4N,cAACk0E,GAAD,KACEjsD,EAAA71B,EAAA4N,cAACm0E,GAAD,KACElsD,EAAA71B,EAAA4N,cAACo0E,GAAD,CAAY7pD,IAAK8pD,KAAS7pD,IAAI,KAC7BpV,KAFH,sBAIA6S,EAAA71B,EAAA4N,cAAC6zE,GAAD,KACGz+D,KADH,sDACgE,IAC9D6S,EAAA71B,EAAA4N,cAACs0E,GAAD,CACEjqE,KAAMiP,IACN2c,OAAO,SACPqK,IAAI,uBAEHhnB,KACa,IARlB,oiBCvCJ,IAcMi7D,GAAcn2E,kBAAOo2E,eAAPp2E,CAAHq2E,KACK,SAAAn2E,GAAK,MAdN,WADOoM,EAesBpM,EAAMoM,YAdnB,wBAChB,SAAfA,EAA8B,yBACf,YAAfA,EAAiC,wBAClB,YAAfA,EAAiC,eAArC,EAJyB,IAACA,GAiBN,SAAApM,GAAK,MATN,WADGoM,EAUsBpM,EAAMoM,YATf,wBAChB,SAAfA,EAA8B,yBACf,YAAfA,EAAiC,wBAClB,YAAfA,EAAiC,eAArC,EAJqB,IAACA,IA8BTgqE,GAJD,SAAAn9E,GAAA,IAAM+G,EAANrP,OAAA0lF,GAAA,EAAA1lF,CAAA,GAAAsI,GAAA,OACZ0wB,EAAA71B,EAAA4N,cAACu0E,GAAgBj2E,EAAQA,EAAM8I,sOCxC1B,IAAMwtE,GAAkB3sE,KAAH4sE,MAMfC,GAAkB7sE,KAAH8sE,wkBCD5B,IAAMC,GAAc52E,UAAOc,IAAV+1E,MAIXrlE,GAAUxR,UAAOyH,EAAVqvE,MAKPC,GAAmB/2E,UAAOc,IAAVk2E,MAIhB71D,GAAanhB,UAAO2uB,IAAVsoD,MAKVjwD,GAAQhnB,UAAOyH,EAAVyvE,MAMLC,GAAU,SAAC5gB,GACf,MAAa,UAATA,EAAyB6gB,KAChB,YAAT7gB,EAA2B8gB,KAClB,SAAT9gB,EAAwB+gB,KACrB,IA8BMC,GArBI,SAAAp+E,GAAqC,IAAlC2C,EAAkC3C,EAAlC2C,MAAOy6D,EAA2Bp9D,EAA3Bo9D,KAAMx5D,EAAqB5D,EAArB4D,QAC3By6E,EAAYjhB,GAChB1sC,EAAA71B,EAAA4N,cAACg1E,GAAD,KACE/sD,EAAA71B,EAAA4N,cAAC61E,GAAD,CAAYtrD,IAAKgrD,GAAQ5gB,GAAOnqC,IAAI,MAKlCsrD,EAAmB36E,EAAQX,QAAQ,QAAS,OAElD,OACEytB,EAAA71B,EAAA4N,cAACm1E,GAAD,KACGS,EACD3tD,EAAA71B,EAAA4N,cAAA,WACEioB,EAAA71B,EAAA4N,cAAC+1E,GAAD,KAAQ77E,GACR+tB,EAAA71B,EAAA4N,cAACg2E,GAAD,KAAUF,MC/CZG,GAA0B,CAC9Bl9E,GAAI,GACJmB,MAAOumB,KACPtF,KAAMuJ,KAAUI,eAChB3pB,QAP0B,qCAuFb+6E,GA3DsB,SAAA3+E,GAAyB,IAAtB6P,EAAsB7P,EAAtB6P,SAChC+uE,EAASC,cACD3F,EAAa3gB,aAAwB8kB,IAA3C1qE,KACMmsE,EAAiBvmB,aAAwBglB,IAA/C5qE,KACAosE,EAAaC,sBAAbD,SAgDR,OA9CA5zE,oBAAU,WACJ+tE,GAAYA,EAAStP,eAAiBsP,EAAStP,cAAcrzE,QAzB1C,SAACk3B,GAC1B,IAAKA,EAAOl3B,OACV,MAAO,CAACmoF,IAGV,IAAMhxD,EAAeD,EAAO5zB,OAAO,SAAAuK,GAAC,OAAIA,EAAEwf,OAASuJ,KAAUI,iBAE7D,OAAIG,EAAan3B,OACRm3B,EAGF,GAgBqBuxD,CADT91D,aAAazxB,OAAAmlC,GAAA,EAAAnlC,CAAIwhF,EAAStP,iBAGzB7zE,IAAI,SAAA0d,GAClB,IAAM7P,EAAU8kB,aAAWjV,EAAI7P,SAE/B,OAAOm7E,EACLruD,EAAA71B,EAAA4N,cAACy2E,GAAD,CAAYv8E,MAAO8Q,EAAI9Q,MAAOiB,QAASA,EAASw5D,KAAM,UACtD,CACEjqD,WAAY,QACZgsE,aAAa,EACbC,UAAW,kBACTR,EAAO1rC,WAAW,CAChBF,MAAOqqC,GACP1qE,KAAM,CACJi3D,cAAe,WAOzBkV,GAAgBA,EAAaA,cAC/BC,EACEruD,EAAA71B,EAAA4N,cAACy2E,GAAD,CACEv8E,MA5DgB,gBA6DhBiB,QA5DkB,yCA6DlBw5D,KAAM,UAER,CACEjqD,WAAY,QACZgsE,aAAa,EACbC,UAAW,kBACTR,EAAO1rC,WAAW,CAChBF,MAAOuqC,GACP5qE,KAAM,CACJmsE,aAAc,UAMzB,CAAC5F,EAAU4F,EAAcC,EAAUH,IAE/B/uE,EACLqpE,GAAYA,EAAStP,eAAiBsP,EAAStP,cAAcrzE,OACzD2iF,EAAStP,cACT,iBChFOyV,GAJU,WACvB,OAAO9mB,aAAmBgN,KCyDb+Z,GAzCK,SAAAt/E,GAIM,IAHxBgyE,EAGwBhyE,EAHxBgyE,eACAC,EAEwBjyE,EAFxBiyE,gBACAC,EACwBlyE,EADxBkyE,mBACwBznE,EAEQC,mBAAe,MAFvBC,EAAAjT,OAAA6gC,EAAA,EAAA7gC,CAAA+S,EAAA,GAEjB80E,EAFiB50E,EAAA,GAEP60E,EAFO70E,EAAA,GAAA80E,EAGkBJ,KAAlC1sE,EAHgB8sE,EAGhB9sE,KAAMtO,EAHUo7E,EAGVp7E,MAAOiyC,EAHGmpC,EAGHnpC,QAASuiB,EAHN4mB,EAGM5mB,QAExB6mB,EACJ/sE,GAAQA,EAAK86D,UAAYjkD,aAAoB7W,EAAK86D,SAAS3+C,WAuB7D,OArBA3jB,oBAAU,WACHmrC,GAAY38C,mBAAQ4lF,EAAU5sE,KACjC6sE,EAAY7sE,GACR+sE,GACFh2D,aAAkBg2D,EAAQl+E,MAG7B,CAAC80C,EAAS3jC,EAAM4sE,EAAUG,IAE7BntE,OAAOotE,UAAY,SAACC,GACb3N,GAAoB37B,GAAYjyC,GAEjCu7E,EAAappF,MAAQizB,MACrBm2D,EAAaC,WAAaD,EAAaE,WAEvC5N,IACAF,MAKC,CACLr/D,KAAM2jC,IAAY3jC,EAAO4sE,EAAW5sE,EACpCtO,QACAiyC,QAASA,GAAwB,OAAbipC,EACpB1mB,sBCnDWknB,GAFU,kBAAMxnB,aAAe/oC,OC2C/BwwD,GANK,WAAmB,IAAAC,EACKC,KAAlC5pC,EAD6B2pC,EAC7B3pC,QAASjyC,EADoB47E,EACpB57E,MAAOsO,EADastE,EACbttE,KAAMkmD,EADOonB,EACPpnB,QAE9B,OAAOnhE,OAAAolC,EAAA,EAAAplC,CAAA,GArCY,SACnB4+C,EACAjyC,EACAsO,GAOA,IAAMwtE,GACH7pC,IACAjyC,GACDsO,GACAA,EAAKyjE,WACLzjE,EAAKytE,eACLztE,EAAKytE,cAAcC,eACnB1tE,EAAKytE,cAAcj9E,UACnBwP,EAAKytE,cAAcj9E,SAASm9E,YAC5B3tE,EAAKytE,cAAcj9E,SAAS64B,cAC5BrpB,EAAKytE,cAAcj9E,SAASmzE,kBACxB3jE,OACA9O,EAEN,MAAO,CACLuyE,UAAW+J,EAAWA,EAAS/J,UAAY,GAC3CC,cAAe8J,EAAWA,EAASC,cAAcC,cAAgB,GACjE/J,kBAAmB6J,EACfA,EAASC,cAAcj9E,SAASmzE,kBAChC,GACJt6C,aAAcmkD,EAAWA,EAASC,cAAcj9E,SAAS64B,aAAe,IAO9DukD,CAAajqC,EAASjyC,EAAOsO,GAAzC,CAAgDkmD,aChBnC2nB,GA9BI,WACjB,IAAM90C,EAAkB,IAAIh1B,KAC5Bg1B,EAAU+0C,QAAQ/0C,EAAUg1C,UAAY,IACxCh1C,EAAUi1C,SAAS,EAAG,EAAG,EAAG,GAC5B,IAAMh1C,EAAgB,IAAIj1B,KAC1Bi1B,EAAQ80C,QAAQ90C,EAAQ+0C,WACxB/0C,EAAQg1C,SAAS,GAAI,GAAI,GAAI,KAE7B,IAAMnkD,EAA+B,CACnCkP,UAAWA,EACXC,QAASA,EACTwsB,YAAa,GACbyoB,SAAU,GACV99D,MAAO,QAbcrY,EAeOC,mBAAS8xB,GAfhB7xB,EAAAjT,OAAA6gC,EAAA,EAAA7gC,CAAA+S,EAAA,GAehBlS,EAfgBoS,EAAA,GAePwrE,EAfOxrE,EAAA,GAuBvB,MAAO,CACLk2E,eAAgBrkD,EAChBjkC,UACA49E,WANwB,SAAC2K,GAAD,OACxB3K,EALmB,SAAC2K,GAAD,OAAAppF,OAAAolC,EAAA,EAAAplC,CAAA,GAChBa,EACAuoF,GAGQC,CAAaD,gBCGbE,GAXiB,SAACzoF,GAC/B,IAAMo+E,EAAqCsK,aAAc1oF,GAEnD6C,EAAmB,CACvB+S,UAFwBzW,OAAAolC,EAAA,EAAAplC,CAAA,CAAK0gE,WAAY,GAAMue,GAG/Cte,YAAa,oBACbC,6BAA6B,GAE/B,OAAOC,aAA0B2oB,KAAqB9lF,ICmDzC+lF,GArEY,SAAC5oF,GAC1B,IAAMo+E,EAAmBsK,aAAc1oF,GADekS,EAElBC,mBAAS,GAFSC,EAAAjT,OAAA6gC,EAAA,EAAA7gC,CAAA+S,EAAA,GAE/C2tD,EAF+CztD,EAAA,GAEnC+tD,EAFmC/tD,EAAA,GAGtDQ,oBAAU,WACRutD,EAAc,IACb,CAACngE,IALkD,IAAA6oF,EAalDJ,GAAwBzoF,GAN1Boa,EAPoDyuE,EAOpDzuE,KACAimD,EARoDwoB,EAQpDxoB,UACAv0D,EAToD+8E,EASpD/8E,MACAiyC,EAVoD8qC,EAUpD9qC,QACAuiB,EAXoDuoB,EAWpDvoB,QACAC,EAZoDsoB,EAYpDtoB,cAGI/B,KAAUpkD,IAAQA,EAAK0uE,WAAW1uE,EAAK0uE,SAAStqB,QA0CtD,MAAO,CACLwf,aA1CmB5jE,GAAQA,EAAK0uE,SAAW1uE,EAAK0uE,SAAS9K,aAAe,GA2CxElyE,QACA0yD,UACA2f,gBA5CsB,WACtB9d,EAAU,CACRzqD,UAAW,CAAEiqD,cACbc,YAAa,SAACt+B,EAAD56B,GAA+B,IAAtBm5D,EAAsBn5D,EAAtBm5D,gBACpB,IAAKA,EAAiB,OAAOv+B,EAC7B,IAAKA,EAAM,OAAOA,EAClB,GACEu+B,EAAgBkoB,SAAS9K,aAAa5iC,MAAM,SAAA2tC,GAAE,QAC5C1mD,EAAKymD,SAAS9K,aAAa/2E,KACzB,SAAA+hF,GAAE,OAAID,EAAGtzE,eAAiBuzE,EAAGvzE,iBAMjC,OAAO4sB,EAET,IAAM4mD,EAAcroB,EAAgBkoB,SAAS9K,aACvCkL,EAAmB7mD,EAAKymD,SAAS9K,aACjC8K,EAAQ,GAAAjoF,OAAA1B,OAAAmlC,GAAA,EAAAnlC,CAAO+pF,GAAP/pF,OAAAmlC,GAAA,EAAAnlC,CAA4B8pF,IAEpCE,EAAchqF,OAAAolC,EAAA,EAAAplC,CAAA,GACfkjC,EADe,CAElBymD,SAAU,CACRM,cAAexoB,EAAgBkoB,SAASM,cACxC5qB,QAASoC,EAAgBkoB,SAAStqB,QAClCwf,aAAc8K,EACdplF,WAAY,cAIhB,OADAy8D,EAAcN,EAAa,GACpBspB,MAcX/K,mBACAve,aACA9hB,QAASA,GAAWwiB,IAAkBG,KAAcJ,QACpD+oB,gBAbsB,WAEtB,OADAlpB,EAAc,GACPG,+FCxCLgpB,GAAmB,IAAIC,KAAW,SAACC,EAAWC,GAOlD,OANID,EAAU5zE,YACZ4zE,EAAU5zE,UAAYtO,KAAKC,MACzBD,KAAKikB,UAAUi+D,EAAU5zE,WACzB,SAAC3X,EAAKoM,GAAN,MAAyB,eAARpM,OAAuBqN,EAAYjB,KAGjDo/E,EAAQD,KAGXE,GAAiB,SAAAjiF,GAAA,IAAG8+E,EAAH9+E,EAAG8+E,aAAclV,EAAjB5pE,EAAiB4pE,cAAjB,OACpBkV,IAC8B,MAA5BA,EAAaoD,YAAkD,MAA5BpD,EAAaoD,aAClDtY,GAAiBA,EAAc3nE,KAAK,SAAAmC,GAAC,MAAkB,qBAAdA,EAAER,WAGxCu+E,GAAYC,aAAQ,SAAAh5E,GAA+C,IAA5CwgE,EAA4CxgE,EAA5CwgE,cAAekV,EAA6B11E,EAA7B01E,aAAczsE,EAAejJ,EAAfiJ,SACpDu3D,IACFA,EAAc7zE,IAAI,SAAAkZ,GAAA,IAAGrL,EAAHqL,EAAGrL,QAASy+E,EAAZpzE,EAAYozE,UAAW55C,EAAvBx5B,EAAuBw5B,KAAM9a,EAA7B1e,EAA6B0e,WAA7B,OAChBjqB,QAAQC,IAAR,6BAAAvK,OAC+BwK,EAD/B,gBAAAxK,OACqDipF,EADrD,YAAAjpF,OACyEqvC,EADzE,kBAAArvC,OAC8Fu0B,MAG3FhE,aAAYigD,IACf/2B,GAAMK,WAAW,CACfF,MAAOqqC,GACP1qE,KAAM,CACJi3D,oBAMJkV,IACFp7E,QAAQC,IAAR,oBAAAvK,OAAgC0lF,IAChCjsC,GAAMK,WAAW,CACfF,MAAOuqC,GACP5qE,KAAM,CACJmsE,mBAKFmD,GAAe,CAAErY,gBAAekV,kBAAmBzsE,IACrDA,EAASob,OAAS,QAIhB60D,GAAiBC,aAAW,SAACC,EAADnzE,GAAoB,IAAduC,EAAcvC,EAAduC,QAChCuS,EAAYtB,cAClB,MAAO,CACLjR,QAAQla,OAAAolC,EAAA,EAAAplC,CAAA,GACHka,EADE,CAEL6wE,cAAet+D,GAAwB,QAKvCu+D,GAAiB,IAAIC,KAAS,CAAEC,IAAKxgE,gBAkBrCywB,GAAQ,IAAIgwC,KAAc,CAAEC,iBAhBT,SAAAC,GACvB,OAAQA,EAAO9mF,YACb,IAAK,UACH,OAAO8mF,EAAO/0E,aAChB,IAAK,WAEH,kBAAA5U,OAAmB2pF,EAAO/0E,aAA1B,KAAA5U,OAA0C2pF,EAAOjyD,eACnD,IAAK,YACH,mBAAA13B,OAAoB2pF,EAAOvhF,GAA3B,KAAApI,OAAiC2pF,EAAOjqE,eAAxC,KAAA1f,OACE2pF,EAAOhqE,iBAEX,QACE,OAAOiqE,aAAwBD,OAW/BE,GAAkBC,aAAgB,CACtCC,UALgB,CAChBC,SAAU,IAKVvwC,WAGWwwC,GAAqB,eAAA1zE,EAAAjY,OAAA4iC,GAAA,EAAA5iC,CAAA6iC,GAAA1/B,EAAA2/B,KAAG,SAAAC,IAAA,OAAAF,GAAA1/B,EAAA6/B,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OACnCooD,GAAgBK,gBADmB,wBAAA3oD,EAAAG,SAAAL,MAAH,yBAAA9qB,EAAAlY,MAAAsjC,KAAA5iB,YAAA,GAI5BorE,GAAmBnB,aACvB,SAAA95D,GAAyDA,EAAtDy5D,UAAsD,IAA3CjD,EAA2Cx2D,EAA3Cw2D,aAAclV,EAA6BthD,EAA7BshD,cAA6BthD,EAAd05D,QACzC,GAAIC,GAAe,CAAEnD,eAAclV,kBAAkB,CACnDhnD,cACA,IAAMqmB,EAAWjnB,YAAkBE,eACnC3P,OAAO0R,SAAShhB,QAAQgmC,MAoBfu6C,OAdf,WACE,OAAO,IAAIC,KAAa,CACtB7wE,KAAMkvE,KAAWzrF,KAAK,CACpBktF,GACAjB,GACAT,GACAM,GACAc,GACAP,KAEF7vC,YChGE6wC,GAAkB,SAAA1jF,GAII,IAH1Bo5E,EAG0Bp5E,EAH1Bo5E,UACA4C,EAE0Bh8E,EAF1Bg8E,QACA4C,EAC0B5+E,EAD1B4+E,OAC0Bn0E,EACQC,mBAAgB,CAChDoJ,UAAW,KACXC,WAAY,OAHYpJ,EAAAjT,OAAA6gC,EAAA,EAAA7gC,CAAA+S,EAAA,GACnB06D,EADmBx6D,EAAA,GACRqJ,EADQrJ,EAAA,GAS1B,OAAIyuE,IAAc7D,GAAU4D,OAAS6C,IAAYzG,GAAU4D,MAClD,KAGLC,IAAc7D,GAAUiE,MACnB9oD,EAAA71B,EAAA4N,cAACk7E,GAAD,MAEL3H,IAAYzG,GAAUiE,MACjB9oD,EAAA71B,EAAA4N,cAACm7E,GAAD,MAIPlzD,EAAA71B,EAAA4N,cAACo7E,GAAD,KACEnzD,EAAA71B,EAAA4N,cAACiL,GAAA,EAAkBowE,SAAnB,CACElhF,MAAO,CACLmR,WAAYoxD,EAAUpxD,WACtBD,UAAWqxD,EAAUrxD,UACrBE,iBAGF0c,EAAA71B,EAAA4N,cAACs7E,GAAD,MACArzD,EAAA71B,EAAA4N,cAACu7E,GAAD,CACEpF,OAAQA,EACRzZ,UAAWA,EACXlB,eA5Be,WACrBjwD,EAAa,SAAAvS,GAAC,OAAA/J,OAAAolC,EAAA,EAAAplC,CAAA,GAAU+J,EAAV,CAAaqS,UAAW,aA8BpC4c,EAAA71B,EAAA4N,cAACw7E,GAAD,QAWAC,GAAe,SAAA96E,GAII,IAHvBw1E,EAGuBx1E,EAHvBw1E,OACAzZ,EAEuB/7D,EAFvB+7D,UACAlB,EACuB76D,EADvB66D,eAEM/6B,EAAUi7C,cADOp5E,EAI4BL,oBAAS,GAJrCM,EAAAtT,OAAA6gC,EAAA,EAAA7gC,CAAAqT,EAAA,GAIhBknE,EAJgBjnE,EAAA,GAICo5E,EAJDp5E,EAAA,GAKjBknE,EAAqB,kBAAMkS,GAAwB,IACnDpS,EAAiB,WAErB9oC,EAAQ1xC,KAAK,KACbonF,EAAOyF,aAAahxE,QAAQ,WAC1BixE,IAAkBlyE,KAAK,kBACrBmyE,IAAkBnyE,KAAK,kBACrBwvE,IAAkBvuE,QAAQ,kBAAM+wE,GAAwB,YAMhExF,EAAO4F,aAAanB,IAlBG,IAAAoB,EAoBoCnF,GAAY,CACrEtN,iBACAC,kBACAC,uBAHMv/D,EApBe8xE,EAoBf9xE,KAAMtO,EApBSogF,EAoBTpgF,MAAOiyC,EApBEmuC,EAoBFnuC,QAAkBguC,EApBhBG,EAoBO5rB,QApBP6rB,EAgCnB1E,KALF5J,EA3BqBsO,EA2BrBtO,UACAC,EA5BqBqO,EA4BrBrO,cACAC,EA7BqBoO,EA6BrBpO,kBACAt6C,EA9BqB0oD,EA8BrB1oD,aACSuoD,EA/BYG,EA+BrB7rB,QA/BqB8rB,EAkCSC,KAAxBrsF,EAlCeosF,EAkCfpsF,QAAS49E,EAlCMwO,EAkCNxO,WAlCM0O,EA2CnB1D,GAAmB5oF,GAPrBg+E,EApCqBsO,EAoCrBtO,aACOC,EArCcqO,EAqCrBxgF,MACA0yD,EAtCqB8tB,EAsCrB9tB,QACA2f,EAvCqBmO,EAuCrBnO,gBACAC,EAxCqBkO,EAwCrBlO,iBACSC,EAzCYiO,EAyCrBvuC,QACAsrC,EA1CqBiD,EA0CrBjD,gBAGF,OAAItrC,EACK5lB,EAAA71B,EAAA4N,cAAC8/D,EAAA,EAAD,OAELlkE,GAAWsO,GAAQA,EAAK86D,SAK1B/8C,EAAA71B,EAAA4N,cAACsoB,EAAA,SAAD,KACEL,EAAA71B,EAAA4N,cAACq8E,GAAD,CAAqBxM,KAAM3lE,IAC3B+d,EAAA71B,EAAA4N,cAACs8E,GAAD,CACEtX,SAAU96D,EAAK86D,SACfuE,eAAgBA,EAChBC,gBAAiBA,EACjBC,mBAAoBA,EACpB35E,QAASA,EACT49E,WAAYA,EACZC,UAAWA,EACXC,cAAeA,EACfC,kBAAmBA,EACnBt6C,aAAcA,EACdu6C,aAAcA,EACdC,eAAgBA,EAChBC,gBAAiB1f,EACjB2f,gBAAiBA,EACjBC,iBAAkBA,EAClBC,iBAAkBA,EAClBzR,UAAWA,EACXlB,eAAgBA,KAxBbvzC,EAAA71B,EAAA4N,cAAC+/D,GAAA,EAAD,OAmEIwc,eArCH,WACV,IAAMpG,EAAS4E,KAEf,OACE9yD,EAAA71B,EAAA4N,cAACw8E,EAAA,cAAD,KACEv0D,EAAA71B,EAAA4N,cAAC6tB,EAAA,qBAAD,KACE5F,EAAA71B,EAAA4N,cAACsoB,EAAA,SAAD,KACEL,EAAA71B,EAAA4N,cAACy8E,EAAD,MACAx0D,EAAA71B,EAAA4N,cAAC0gC,EAAA,EAAD,CAAgBy1C,OAAQA,GACtBluD,EAAA71B,EAAA4N,cAAC08E,EAAA,EAAD,CAAqBvG,OAAQA,GAC3BluD,EAAA71B,EAAA4N,cAAC28E,EAAA,cAAD,CAAeC,WAAY,CAAElI,UAASxxE,UAAU,eAC9C+kB,EAAA71B,EAAA4N,cAAC68E,GAAD,KACG,SAAApM,GAAQ,OACPxoD,EAAA71B,EAAA4N,cAAC88E,GAAD,CAAoBrM,SAAUA,GAC3B,SAAAE,GAAS,OACR1oD,EAAA71B,EAAA4N,cAAC+8E,GAAD,CAAkBtM,SAAUA,GACzB,SAAA8C,GAAO,OACNtrD,EAAA71B,EAAA4N,cAACg9E,GAAD,CACErM,UAAWA,EACX4C,QAASA,EACT4C,OAAQA,kBCrLhC8G,GAAcC,QACW,cAA7BpzE,OAAO0R,SAAS2hE,UAEe,UAA7BrzE,OAAO0R,SAAS2hE,UAEhBrzE,OAAO0R,SAAS2hE,SAAS5gF,MACvB,2DAuCN,IAAM6gF,GAAqB,IAE3B,SAASC,GAAgBC,GACvB3K,UAAUC,cACP2K,SAASD,GACT3zE,KAAK,SAAA6zE,GAOJhV,YANmB,WACbgV,EAAaxK,YACjBwK,EACG72C,SACAl8B,MAAM,SAAA9O,GAAC,OAAIV,QAAQW,MAAM,uCAAwCD,MAE9CyhF,IACxBI,EAAaC,cAAgB,WAC3B,IAAM1K,EAAmByK,EAAaxK,WACb,OAArBD,IACJA,EAAiBE,cAAgB,WACA,cAA3BF,EAAiB70E,QACfy0E,UAAUC,cAAcM,WAK1Bj4E,QAAQC,IAAI,6CAKZD,QAAQC,IAAI,4CAMrBuP,MAAM,SAAA7O,GACLX,QAAQW,MAAM,4CAA6CA,gDAtElD,WACb,GAA6C,kBAAmB+2E,UAAW,CAGzE,GADkB,IAAI5oE,IAAI+Q,GAAwBhR,OAAO0R,UAC3Cf,SAAW3Q,OAAO0R,SAASf,OAIvC,OAGF3Q,OAAO65D,iBAAiB,OAAQ,WAC9B,IAAM2Z,EAAK,GAAA3sF,OAAMmqB,GAAN,sBAEPmiE,IA4DV,SAAiCK,GAE/BhiE,MAAMgiE,GACH3zE,KAAK,SAAAC,GAGkB,MAApBA,EAASrU,SACuD,IAAhEqU,EAAST,QAAQlb,IAAI,gBAAgB+M,QAAQ,cAG7C23E,UAAUC,cAAc8K,MAAM/zE,KAAK,SAAA6zE,GACjCA,EAAaG,aAAah0E,KAAK,WAC7BG,OAAO0R,SAASq0B,aAKpBwtC,GAAgBC,KAGnB7yE,MAAM,WACLxP,QAAQC,IACN,mEAhFA0iF,CAAwBN,GAIxB3K,UAAUC,cAAc8K,MAAM/zE,KAAK,WACjC1O,QAAQC,IACN,+GAMJmiF,GAAgBC,MCrCxBC,GAEA,IAGIvN,KAAe,CAAE6N,MAAO,UAGxB,IAAMC,GACJh0E,OAAO8Q,gBAAgBjd,WAAWogF,WAClCjjE,qJAAYkjE,qBACdC,KAAY,CAAEC,IAAKJ,KAErB,MAAOniF,IACPV,QAAQW,MAAMD,IAGhBwiF,IAASl9C,OAAOhZ,EAAA71B,EAAA4N,cAACo+E,GAAD,MAASh0E,SAAS0Y,eAAe,ohBC+IrCu7D,SAjKCC,EAAsB,CACjCtyE,YAAa,QACbO,OAAQ,SACRC,SAAU,WACVI,SAAU,WACVT,UAAW,YACXW,kBAAmB,WACnBT,UAAW,SACXqB,MAAO,SAQI4gB,EAAc,SAACpwB,GAAD,OACzBA,IAAUqgF,IAAa7wE,QAAU9B,EAAS1N,IAE/B0N,EAAW,SAAC1N,GAAD,OACtBA,IAAUqgF,IAAahyE,QACvBrO,IAAUqgF,IAAalyE,WACvBnO,IAAUqgF,IAAa/xE,UAQZb,EAAa,SAACzN,GAAD,OACxBuO,EAAOvO,IACPA,IAAUqgF,IAAahyE,QACvBrO,IAAUqgF,IAAa/xE,UACvBtO,IAAUqgF,IAAalyE,WAEZI,EAAS,SAACvO,GAAD,OACpBA,IAAUqgF,IAAa3xE,UACvB1O,IAAUqgF,IAAa1xE,aACvB3O,IAAUqgF,IAAazxE,mBACvBC,EAAS7O,IAEE6O,EAAW,SAAC7O,GAAD,OACtBA,IAAUqgF,IAAa5xE,QACvBzO,IAAUqgF,IAAavxE,0BACvB9O,IAAUqgF,IAAatxE,0BA0CZuxE,EAAqB,SAAC/1E,GACjC,IAAMg2E,EAAa,SAACC,GAClB,OAAIA,EAAM,GAAI,IAAA/tF,OAAW+tF,GAClBA,GAGT,SAAA/tF,OAAU8X,EAAEwQ,cAAZ,KAAAtoB,OAA6B8tF,EAAWh2E,EAAEyQ,WAAa,GAAvD,KAAAvoB,OAA6D8tF,EAC3Dh2E,EAAEwvE,aA+COO,EAAgB,SAAC1oF,GAW5B,MAAO,CACLmzC,UAXgBnzC,EAAQmzC,UACtBu7C,EAAmB,IAAIvwE,KAAKne,EAAQmzC,YACpC,GAUFC,QATcpzC,EAAQozC,QACpBs7C,EAAmB,IAAIvwE,KAAKne,EAAQozC,UACpC,GAQFwsB,YAPkB5/D,EAAQ4/D,aAAe,KAQzCyoB,SAPeroF,EAAQqoF,UAAY,GAQnC99D,MAPYvqB,EAAQuqB,OAAS,eAWrBgkE,uDAIL,IAAMM,EAA6B,SACxC7uE,EACArQ,GAFwC,OAIxCqQ,EAAUtW,KAAK,SAAA2O,GAAQ,OACrBA,EAAS2F,OAAOtU,KACd,SAAA+pE,GAAK,MACiB,kCAApBA,EAAMx1D,WACNw1D,EAAMqb,QAAQC,QAAQrlF,KAAK,SAAAslF,GAAM,OAAIA,EAAO3jE,KAAK1H,SAAShU,UAIrDopB,EAAQ,SAACtjB,EAAsB8iB,GAAvB,kBAAA13B,OACP4U,EADO,iBAAA5U,OACqB03B,GAAgC,KAE7D02D,EAAgB,SAAC/lF,GAC5B,OAAQA,GACN,KAAKgmF,IAAWC,OACd,OAAOD,IAAWC,OAEpB,KAAKD,IAAWE,OACd,OAAOF,IAAWE,OAEpB,QACE,OAAOF,IAAWG,UAIXC,EAAmD,CAC9D,YACA,YACA,aACA,aAGWC,EAAsD,CACjElzE,UAAW,YACXmzE,UAAW,aACXC,WAAY,aACZC,UAAW,cAGAC,EAA6D,CACxEC,UAAW,YACXC,UAAW,kBACXC,YAAa,oBACbC,OAAQ,UAGGC,EAAwD,CACnE,aACA,aACA,qBAGWC,EAET,CACFC,WAAY,aACZC,WAAY,aACZC,kBAAmB,63CCtOrB,IAAMzgE,EAAarhB,UAAOc,IAAVb,KAMV8hF,EAAkB/hF,UAAOc,IAAVL,KAKfuhF,EAAkBhiF,UAAOkC,KAAVtB,IACc,SAAAV,GAAK,OAAIA,EAAMC,MAAMC,aAGlD6hF,EAAkBjiF,UAAO2uB,IAAV5tB,KAMfmhF,EAAgBliF,UAAOc,IAAVG,KAMbiiC,EAAqBljC,kBAAO02B,cAAP12B,CAAHsB,IACW,SAAApB,GAAK,OAAIA,EAAMC,MAAMC,aAKlD+hF,EAAmBniF,kBAAOktB,SAAPltB,CAAH8B,IACW,SAAA5B,GAAK,OAAIA,EAAMC,MAAMC,aAMhDG,EAAgBP,kBAAOQ,UAAPR,CAAHgC,KAIbogF,EAAuBpiF,kBAAOmiF,EAAPniF,CAAHmC,KA+DXy4B,IA3CkB,SAAAzhC,GASpB,IARX2hC,EAQW3hC,EARX2hC,OACA/L,EAOW51B,EAPX41B,SACA8L,EAMW1hC,EANX0hC,aACAE,EAKW5hC,EALX4hC,eACAC,EAIW7hC,EAJX6hC,eACAx5B,EAGWrI,EAHXqI,UACA8+C,EAEWnnD,EAFXmnD,SACArlB,EACW9hC,EADX8hC,qBAEMonD,EAAaxnD,EACjBpc,EAAAzqB,EAAA4N,cAACrB,EAAD,CAAesE,QAASk2B,EAAgBj2B,UAAU,MAAMC,gBAAiB,GACvE0Z,EAAAzqB,EAAA4N,cAACwgF,EAAD,CAAsBE,aAAc,kBAAMrnD,GAAqB,KAC5DD,IAILvc,EAAAzqB,EAAA4N,cAACugF,EAAD,CACEG,aAAc,kBAAMrnD,GAAqB,IACzCvxB,QAASoxB,GAERE,GAIChP,EAAaxqB,EACjBid,EAAAzqB,EAAA4N,cAACogF,EAAD,KACEvjE,EAAAzqB,EAAA4N,cAACqgF,EAAD,CAAiB91D,IAAKo2D,MACrBjiC,GAED,KAEJ,OACE7hC,EAAAzqB,EAAA4N,cAACyf,EAAD,KACE5C,EAAAzqB,EAAA4N,cAACmgF,EAAD,KAAkB/1D,GAClBvN,EAAAzqB,EAAA4N,cAACsgF,EAAD,KACEzjE,EAAAzqB,EAAA4N,cAACshC,EAAD,CAAoBx5B,QAASqlB,GAA7B,UACCszD,sNCtGT,IAAMrhF,EAAQhB,UAAOc,IAAVb,KAmBImvD,IATK,SAAAj2D,GAAsB,IAAnBqE,EAAmBrE,EAAnBqE,MACtB,GAAIA,EAAO,MAAMA,EACjB,OACCihB,EAAAzqB,EAAA4N,cAACZ,EAAD,KACCyd,EAAAzqB,EAAA4N,cAAC4gF,EAAA,QAAD,wCCWI,IAAKC,EAqBAtC,EAwBAhrB,EAqEAutB,EAyCA/0E,EAoRA6G,EAyBAqR,EAIAI,EAgBAF,EAYAJ,EAgBAg9D,EA4IAr8D,EA6BAs8D,EA6DAC,EAgJAn3B,EAsBAo3B,EAp4BZv8E,EAAA8D,EAAAC,EAAA,sBAAAm4E,IAAAl8E,EAAA8D,EAAAC,EAAA,sBAAA61E,IAAA55E,EAAA8D,EAAAC,EAAA,sBAAA6qD,IAAA5uD,EAAA8D,EAAAC,EAAA,sBAAAo4E,IAAAn8E,EAAA8D,EAAAC,EAAA,sBAAAqD,IAAApH,EAAA8D,EAAAC,EAAA,sBAAAkK,IAAAjO,EAAA8D,EAAAC,EAAA,sBAAAub,IAAAtf,EAAA8D,EAAAC,EAAA,sBAAA2b,IAAA1f,EAAA8D,EAAAC,EAAA,sBAAAyb,IAAAxf,EAAA8D,EAAAC,EAAA,sBAAAqb,IAAApf,EAAA8D,EAAAC,EAAA,sBAAAq4E,IAAAp8E,EAAA8D,EAAAC,EAAA,sBAAAgc,IAAA/f,EAAA8D,EAAAC,EAAA,sBAAAs4E,IAAAr8E,EAAA8D,EAAAC,EAAA,sBAAAu4E,IAAAt8E,EAAA8D,EAAAC,EAAA,sBAAAohD,IAAAnlD,EAAA8D,EAAAC,EAAA,sBAAAw4E,aAAYL,gFAqBAtC,8aAwBAhrB,oFAqEAutB,gHAyCA/0E,gdAoRA6G,0vBAyBAqR,kEAIAI,odAgBAF,4QAYAJ,kGAgBAg9D,kHA4IAr8D,8MA6BAs8D,gIA6DAC,8FAgJAn3B,wFAsBAo3B,kFCj6BZv8E,EAAA8D,EAAAC,EAAA,sBAAAwqB,IAAAvuB,EAAA8D,EAAAC,EAAA,sBAAAsgB,IAAArkB,EAAA8D,EAAAC,EAAA,sBAAAwf,IAAAvjB,EAAA8D,EAAAC,EAAA,sBAAA+jB,IAAA9nB,EAAA8D,EAAAC,EAAA,sBAAA6jB,IAAA5nB,EAAA8D,EAAAC,EAAA,sBAAA8jB,IAAO,IAAM0G,EAAQ,mBASRlK,EACX,0DAEWd,EAAe,CAC1B,eACA,SACA,YACA,MACA,QAGWuE,EAAmC,+BAKnCF,EACX,kFAEWC,EAAqB,glQCxB3B,IAAMyN,EAAY,CACvBknD,SAAUl5E,IAAF5J,IAuEJ6J,IAAkBE,KAClBF,IAAkBI,QAClBJ,IAAkBM,iBAIXiwE,EAAsBxwE,IAAHpJ,IA4B5Bo7B,EAAUknD,UAGDC,EAAqBn5E,IAAHjJ,IAoG3BkJ,IAAkBE,KAClBF,IAAkBM,gBAiBTwtB,GAdgB/tB,IAAH9I,KAcA8I,IAAH5I,MASVgiF,EAA0Bp5E,IAAHvI,KA0BvB4hF,EAAgBr5E,IAAH/H,KASb+/B,EAAgBh4B,IAAH7H,KAyBbqF,GAjBawC,IAAH1H,IAcnB2H,IAAkBI,SAGML,IAAH6P,IAerB5P,IAAkBI,QAClBJ,IAAkBM,iBAGT4iC,EAAgBnjC,IAAH+P,KAMb+iD,EAAmB9yD,IAAHiQ,IAMzB+hB,EAAUknD,UAGD1sD,EAAsBxsB,IAAHmQ,IAU5BlQ,IAAkBM,gBAGTA,EAAiBP,IAAHoyB,IAoBvBnyB,IAAkBM,eAClBN,IAAkBI,QAClBJ,IAAkBgyB,MAClBhyB,IAAkBmG,OAClBhG,IAAgBC,kgKChXpB,IAAMmxB,EAAkBxxB,IAAH5J,KAcfkjF,EAAsBt5E,IAAHpJ,KAaZo7B,EAAY,CACvB3xB,QAASmxB,EACTlxB,YAAag5E,EACb3wE,OAAQ3I,IAAFjJ,IA8DFuiF,EACA9nD,GAEJ+nD,eAAgBv5E,IAAF9I,MAgBHsiF,EAAqBx5E,IAAH5I,IAU3BkiF,GAGSG,EAAez5E,IAAHvI,IAkBrBu6B,EAAUrpB,OACVqpB,EAAUunD,eACVt5E,IAAkBM,gBAGTm5E,EAAuB15E,IAAH/H,KAsBpBmsD,EAAepkD,IAAH7H,IAkBrB65B,EAAUrpB,OACVqpB,EAAUunD,eACVt5E,IAAkBM,gBAGTo5E,EAAe35E,IAAH1H,IASrB05B,EAAUrpB,QAGD4/B,EAAevoC,IAAH6P,IAUrBmiB,EAAUrpB,QAGDm/C,EAAuB9nD,IAAH+P,6nBCxNjC,IAAM80C,EAAW1uD,kBAAO2uD,cAAP3uD,CAAHC,KAORe,EAAQhB,UAAOc,IAAVL,KAKLk/B,EAAQ3/B,UAAOc,IAAVF,KAMLg/B,EAAQ5/B,UAAOyH,EAAV1G,KAiBIiuD,IAZG,kBAChBvwC,EAAAzqB,EAAA4N,cAACZ,EAAD,KACEyd,EAAAzqB,EAAA4N,cAAC+9B,EAAD,KACElhB,EAAAzqB,EAAA4N,cAACg+B,EAAD,wFAIAnhB,EAAAzqB,EAAA4N,cAAC8sD,EAAD,6BClCNnnD,EAAAC,QAAiBjB,EAAAkB,EAAuB,iQCIhCg8E,EAAW/iD,QAAX+iD,OAEFC,EAAe1jF,kBAAOyjF,EAAPzjF,CAAHC,IACR,SAAA9G,GAAA,OAAAA,EAAGgH,MAAkBoe,YAAY,KAiB5BylB,IAVK,SAAAzhC,GAAiC,IAA9B0hC,EAA8B1hC,EAA9B0hC,YAAatgC,EAAiBpB,EAAjBoB,WAOlC,OAAO8a,EAAAzqB,EAAA4N,cAAC8hF,EAAD,CAAch6E,QANC,SAAAnM,GACpB0mC,IACItgC,GAAYA,GAAW,GAC3BpG,EAAEomF,yaCTN,IAIMn9C,EAAcxmC,kBAJD,SAAA7G,KAAGyqF,WAAH,IAAkBniF,EAAlB5Q,OAAAgzF,EAAA,EAAAhzF,CAAAsI,EAAA,uBACjBwI,EAAA3N,EAAA4N,cAAA,OAAUH,IAGQzB,CAAHC,KAKX6jF,EAAe9jF,kBAAOooC,IAAPpoC,CAAHS,KAEZsjF,EAAkB/jF,UAAO2uB,IAAV/tB,KAKfojF,EAAoB,SAACJ,GAAD,OACxBjiF,EAAA3N,EAAA4N,cAAC4kC,EAAD,CAAao9C,WAAYA,GACvBjiF,EAAA3N,EAAA4N,cAACmiF,EAAD,CAAiB53D,IAAKo9C,QAIXj/D,EAAA,WAACpK,GAAe,IAAA+jF,EAC8B/jF,EAAnDs+E,kBADqB,IAAAyF,EACR,GADQA,EAAAC,EAC8BhkF,EAAlCikF,cADI,IAAAD,EACK,GADLA,EACS3+C,EAAqBrlC,EAArBqlC,QAAY9jC,EADrB5Q,OAAAgzF,EAAA,EAAAhzF,CAC8BqP,EAD9B,mCAEvBkkF,EAAe,CACnBC,mBAAoB,iBAAO,CAAE1lF,QAAS,SACtC2lF,QAAS,SAACC,EAAWzkF,GAAZ,OACPylC,EAAO10C,OAAAmc,EAAA,EAAAnc,CAAA,GAEE0zF,EAFF,CAGDC,UAAW,oBACXC,YAAa,gBAEf3kF,EAAMmT,UAANpiB,OAAAmc,EAAA,EAAAnc,CAAA,GAEK0zF,EAFL,CAGEG,QAAS,OACTF,UAAW,oBACXC,YAAa,cACbE,UAAW,CACTF,YAAa,cACbC,QAAS,UARb7zF,OAAAmc,EAAA,EAAAnc,CAAA,GAYK0zF,EAZL,CAaEK,aAAc,QACdC,OAAQ,oBACRF,UAAW,CACTD,QAAS,YAKrB,OACE/iF,EAAA3N,EAAA4N,cAACkiF,EAADjzF,OAAAoE,OAAA,CACEkvF,OAAMtzF,OAAAmc,EAAA,EAAAnc,CAAA,GAAOszF,EAAWC,GACxB5F,WAAU3tF,OAAAmc,EAAA,EAAAnc,CAAA,CAAImzF,qBAAsBxF,IAChC/8E,sCCnEV8E,EAAA8D,EAAAC,EAAA,sBAAA8J,IAAA7N,EAAA8D,EAAAC,EAAA,sBAAAw6E,IAAAv+E,EAAA8D,EAAAC,EAAA,sBAAA8K,IAAA7O,EAAA8D,EAAAC,EAAA,sBAAAy6E,IAAAx+E,EAAA8D,EAAAC,EAAA,sBAAA06E,IAAAz+E,EAAA8D,EAAAC,EAAA,sBAAA6K,IAAA5O,EAAA8D,EAAAC,EAAA,sBAAA26E,IAAA1+E,EAAA8D,EAAAC,EAAA,sBAAA46E,IAAO,IAAM9wE,EAA0C,sBAC1C0wE,EAAiC,aACjC1vE,EAAiC,WACjC2vE,EAAyC,sBACzCC,EAAgC,SAChC7vE,EAAgC,UAChC8vE,EAAqC,aACrCC,EAAoC,8CCPjD,IAAAx9E,EAAAnB,EAAA,GAAA4+E,EAAA5+E,EAAA,IAWey4D,IARK,SAAC/xD,GAAsB,IACjCE,EAAiBs6B,qBAAW56B,KAA5BM,aAIR,OAHiB,SAACD,GAChBC,EAAa,CAAED,aAAYD,mECMhBzJ,IAVI,WAAM,IAAAI,EACCC,oBAAS,GADVC,EAAAjT,OAAAkT,EAAA,EAAAlT,CAAA+S,EAAA,GAChBmE,EADgBjE,EAAA,GACVgqE,EADUhqE,EAAA,GAGvB,MAAO,CACLL,YAAasE,EACbrE,cAHiB,kBAAMoqE,GAAS/lE,IAIhCpE,WAAYmqE,yGCLVrM,cACJ,SAAAA,EAAYvhE,GAAO,IAAAq4B,EAAA,OAAA1nC,OAAAu0F,EAAA,EAAAv0F,CAAAqjC,KAAAutC,IACjBlpC,EAAA1nC,OAAAw0F,EAAA,EAAAx0F,CAAAqjC,KAAArjC,OAAAy0F,EAAA,EAAAz0F,CAAA4wE,GAAA7oC,KAAA1E,KAAMh0B,KACDJ,MAAQ,CAAEtC,MAAO,KAAM+nF,UAAW,MAFtBhtD,iFAKD/6B,EAAO+nF,GACvBrxD,KAAK0B,SAAS,CAAEp4B,QAAO+nF,+CAGvB,IAAMC,OACuBxoF,IAA3Bk3B,KAAKh0B,MAAMslF,YACTC,EAAAzxF,EAAA4N,cAAC8jF,EAAA,EAAD,MAEAxxD,KAAKh0B,MAAMslF,YAEf,OAAItxD,KAAKp0B,MAAMtC,MAAcgoF,EACtB14E,IAAM64E,SAASC,KAAK1xD,KAAKh0B,MAAM8I,iBAjBP8D,IAAMktB,WAqB1BynC,mMCrBf,IAAMokB,OAAO7lF,QAAOc,IAAVb,ICHoB,UDUf4lF,gRERf,IAAMllF,OAAaX,QAAOkC,KAAVjC,KAUDU,0BCZf4G,EAAAC,QAAiBjB,EAAAkB,EAAuB,0DCAxCF,EAAAC,QAAiBjB,EAAAkB,EAAuB","file":"static/js/main.3fe23135.chunk.js","sourcesContent":["import uniq from \"lodash/uniq\";\nimport uniqWith from \"lodash/uniqWith\";\nimport isEqual from \"lodash/isEqual\";\nimport hash from \"object-hash\";\nimport {\n Attribute,\n AttributeType,\n QuotaPlanInput,\n QuotaNodeInput,\n QuotaGroupInput,\n QuotaCellInput,\n QuotaPlan,\n AttributeOptionMap,\n AttributeMap,\n FeasibilityQuotaGroup,\n FeasibilityQuotaCell,\n LineItemState,\n QuotaFilterInput,\n OperatorType,\n QuotaGroup,\n Report,\n QuotaCell,\n Stat,\n AttributeCategory,\n QuotaFilter,\n QuotaNode\n} from \"./types\";\n\nexport const EDIT_MODE_FILTER = \"filter\";\nexport const EDIT_MODE_ALLOCATION = \"allocation\";\nexport type EditMode = \"filter\" | \"allocation\";\n\nexport const FILTER_TYPE_INCLUDE = \"INCLUDE\";\nexport const FILTER_TYPE_EXCLUDE = \"EXCLUDE\";\n\nexport const ATTR_HIGHLIGHT_COLORS = [\n \"#DDF0F9\",\n \"#FFF0E5\",\n \"#DCF2EC\",\n \"#DFC8E1\",\n \"#F9CBDF\",\n \"#FDE8E6\",\n \"#C7CDE8\",\n \"#E9DCCA\",\n \"#E4B6AE\",\n \"#FCF3C7\"\n];\n\nexport const COMPLETES_COLOR = \"#3EA8DD\";\nexport const INCOMPLETES_COLOR = \"#F0C419\";\nexport const SCREENOUTS_COLOR = \"#FB903F\";\nexport const OVERQUOTAS_COLOR = \"#B27CA7\";\nexport const COMPLETES_REFUSED_COLOR = \"#A7BECF\";\n\nexport type AllocVal = number | \"\";\n\nexport type AllocationValue = {\n count: AllocVal;\n perc: AllocVal;\n};\n\nexport const parseAllocations = (\n map: Map\n) => {\n const result = new Map(map);\n const keys = Array.from(result.keys());\n for (let key of keys) {\n const allocationVal = result.get(key);\n if (allocationVal) {\n let numCount = allocationVal.count,\n numPerc = allocationVal.perc;\n if (typeof numCount !== \"number\") {\n numCount = parseFloat(numCount) || 0;\n }\n if (typeof numPerc !== \"number\") {\n numPerc = parseFloat(numPerc) || 0;\n }\n result.set(key, { count: numCount, perc: numPerc });\n }\n }\n return result;\n};\n\nexport type AttributeSaveInput = {\n asAllocation: boolean;\n quotaFilterInput: QuotaFilterInput;\n quotaGroupInput: QuotaGroupInput;\n};\n\nexport type AttributeEditorModalProps = {\n draft: boolean;\n editMode: EditMode;\n attribute: Attribute;\n onCancel: () => void;\n onSave: (input: AttributeSaveInput) => void;\n initialSelectedOptions: string[];\n initialOperatorType: OperatorType;\n initialQuotaGroupInput: QuotaGroupInput;\n requiredCompletes: number;\n lineItemState: LineItemState;\n attributeMap: AttributeMap;\n invalidOptions: string[];\n};\n\ntype OptionTextIdMap = {\n [id: string]: string;\n};\n\nexport type AttributeEditorProps = {\n options: AttributeOptionMap;\n calculatedListHeight: string;\n calculatedNestingListHeight: string;\n} & AttributeEditorModalProps;\n\nexport type AttributeSelection = {\n [id: string]: boolean;\n};\n\nexport type CellLike = {\n quotaNodes: Array;\n};\n\ntype GroupLike = {\n quotaCells: Array;\n};\n\ntype OptionTextArgs = {\n optionString: string;\n optionMap: AttributeOptionMap;\n attributeType: AttributeType;\n};\n\nexport const groupNodes = (quotaGroup: GroupLike): Array => {\n const quotaNodes = new Array();\n\n const nonNullCells = quotaGroup.quotaCells || [];\n nonNullCells.forEach(cell => {\n const nonNullNodes = cell.quotaNodes || [];\n quotaNodes.push(...nonNullNodes);\n });\n\n return quotaNodes;\n};\n\nexport const planCells = (quotaPlan: QuotaPlanInput): Array => {\n const quotaCells = new Array();\n\n const nonNullGroups = quotaPlan.quotaGroups || [];\n nonNullGroups.forEach(g => {\n quotaCells.push(...g.quotaCells);\n });\n\n return quotaCells;\n};\n\nexport const planNodes = (quotaPlan: QuotaPlanInput): Array => {\n const quotaNodes = new Array();\n\n planCells(quotaPlan).forEach(cell => {\n const nonNullNodes = cell.quotaNodes || [];\n quotaNodes.push(...nonNullNodes);\n });\n\n return quotaNodes;\n};\n\nexport const planNodeAttributeIds = (quotaPlan: QuotaPlanInput) =>\n uniq(planNodes(quotaPlan).map(node => node.attributeId));\n\nexport const planAttributeIds = (quotaPlan: QuotaPlanInput): Array => {\n const attributeIds = new Array();\n\n quotaPlan.filters.forEach(f => attributeIds.push(f.attributeId));\n\n quotaPlan.quotaGroups.forEach(g =>\n g.quotaCells.forEach(c =>\n c.quotaNodes.forEach(n => attributeIds.push(n.attributeId))\n )\n );\n\n return attributeIds;\n};\n\nexport const updateInterlock = (\n quotaPlan: QuotaPlanInput,\n selections: AttributeSelection,\n requiredCompletes: number\n): QuotaPlanInput => {\n const allNonInterlockedGroups = clearInterlocks(quotaPlan.quotaGroups || []);\n\n const interlocked = new Array();\n const loose = new Array();\n allNonInterlockedGroups.forEach(g => {\n if (selections[g.quotaCells[0].quotaNodes[0].attributeId]) {\n interlocked.push(g);\n } else {\n loose.push(g);\n }\n });\n\n const newInterlockedGroup = interlockGroups(interlocked, requiredCompletes);\n\n return {\n filters: quotaPlan.filters || [],\n quotaGroups: [newInterlockedGroup, ...loose]\n };\n};\n\nexport const clearInterlocks = (\n groups: Array\n): Array => {\n const nonInterlockedGroupMap = new Map();\n\n const interlocked = new Array();\n groups.forEach(g => {\n const ids = groupAttributeIds(g);\n // add the loose groups directly to map\n if (ids.length === 1) {\n nonInterlockedGroupMap.set(ids[0], g);\n } else {\n interlocked.push(g);\n }\n });\n\n interlocked.forEach(g => {\n g.quotaCells.forEach(c => {\n c.quotaNodes.forEach(n => {\n const maybeExistingGroup = nonInterlockedGroupMap.get(n.attributeId);\n\n if (maybeExistingGroup) {\n let isNewCell = true;\n maybeExistingGroup.quotaCells.forEach(cell => {\n // check if current interlockedNode `n` is same as\n // node `cell.quotaNodes[0]` (existing in map)\n // to avoid creating a new group and just update perc of existing cell\n if (isEqual(n, cell.quotaNodes[0])) {\n isNewCell = false;\n nonInterlockedGroupMap.set(n.attributeId, {\n name: \"\",\n quotaCells: [\n ...maybeExistingGroup.quotaCells.filter(\n c => !isEqual(c, cell)\n ),\n { count: cell.count + c.count, quotaNodes: [n], perc: 0 }\n ]\n });\n return;\n }\n });\n if (isNewCell) {\n nonInterlockedGroupMap.set(n.attributeId, {\n name: \"\",\n quotaCells: [\n ...maybeExistingGroup.quotaCells,\n {\n count: c.count,\n quotaNodes: [n],\n perc: 0\n }\n ]\n });\n }\n return;\n }\n\n nonInterlockedGroupMap.set(n.attributeId, {\n name: \"\",\n quotaCells: [{ count: c.count, quotaNodes: [n], perc: 0 }]\n });\n });\n });\n });\n\n return Array.from(nonInterlockedGroupMap.values());\n};\n\nexport const interlockGroups = (\n groups: Array,\n requiredCompletes: number\n): QuotaGroupInput => {\n if (groups.length === 0) {\n return { name: \"\", quotaCells: [] };\n }\n\n if (groups.length === 1) {\n return groups[0];\n }\n\n let interlockedGroup = groups[0];\n groups.forEach((g, i) => {\n if (i !== 0) {\n interlockedGroup = interlockTwoGroups(\n interlockedGroup,\n g,\n requiredCompletes\n );\n }\n });\n\n return interlockedGroup;\n};\n\nexport const interlockTwoGroups = (\n group1: QuotaGroupInput,\n group2: QuotaGroupInput,\n requiredCompletes: number\n): QuotaGroupInput => {\n const interlockedCells = new Array();\n\n group1.quotaCells.forEach(group1Cell => {\n group2.quotaCells.forEach(group2Cell => {\n interlockedCells.push({\n count: Math.round(\n (group1Cell.count * group2Cell.count) / requiredCompletes\n ),\n quotaNodes: [...group1Cell.quotaNodes, ...group2Cell.quotaNodes],\n perc: 0\n });\n });\n });\n\n return {\n name: \"\",\n quotaCells: distributeRemaining(interlockedCells, requiredCompletes)\n };\n};\n\nexport const distributeRemaining = (\n quotaCells: Array,\n requiredCompletes: number\n): Array => {\n let counts = quotaCells.map(c => c.count);\n const cellsTotalCount = counts.reduce((a, b) => a + b, 0);\n const remainder = requiredCompletes - cellsTotalCount;\n\n let rectifyCnt = +1;\n if (remainder < 0) {\n rectifyCnt = -1;\n }\n for (let i = 0; i < Math.abs(remainder); i++) {\n let idx = i % counts.length;\n while (idx !== counts.length - 1 && counts[idx] + rectifyCnt < 0) {\n idx++;\n idx = idx % counts.length;\n }\n counts[idx] = counts[idx] + rectifyCnt;\n }\n\n return quotaCells.map((c, i) => ({\n ...c,\n count: counts[i]\n }));\n};\n\nconst nodeComparison = (a: QuotaNodeInput, b: QuotaNodeInput): number => {\n if (a.attributeId > b.attributeId) return 1;\n if (a.attributeId < b.attributeId) return -1;\n if (a.options.sort()[0] > b.options.sort()[0]) return 1;\n if (a.options.sort()[0] < b.options.sort()[0]) return -1;\n return 0;\n};\n\nexport const cellsEqual = (a: CellLike, b: CellLike): boolean => {\n if (Array.isArray(a.quotaNodes)) {\n const copyA = a.quotaNodes.slice();\n const copyB = b.quotaNodes.slice();\n const groupA = copyA.sort(nodeComparison);\n const groupB = copyB.sort(nodeComparison);\n return isEqual(groupA, groupB);\n } else {\n return isEqual(a, b);\n }\n};\n\nexport const groupsEqual = (a: GroupLike, b: GroupLike): boolean => {\n const copyA = Object.assign({}, a);\n const copyB = Object.assign({}, b);\n const groupA = groupNodes(copyA).sort(nodeComparison); // groupNodes returns an array of nodes for quota group or valueCount\n const groupB = groupNodes(copyB).sort(nodeComparison);\n return isEqual(groupA, groupB);\n};\n\nexport const groupFromFilter = (\n filter: QuotaNodeInput,\n requiredCompletes: number,\n name: string\n): QuotaGroupInput => {\n const nonNullOptions = filter.options || [];\n const quotaCells = nonNullOptions.map(o => ({\n quotaNodes: [\n {\n attributeId: filter.attributeId,\n options: [o]\n }\n ],\n count: 0,\n perc: 0,\n __typename: \"QuotaCell\"\n }));\n\n return {\n name: name,\n quotaCells: flattenAllocation(quotaCells, requiredCompletes),\n __typename: \"QuotaGroupInput\"\n };\n};\n\nconst distributeEvenly = (\n quotaCells: Array,\n requiredCompletes: number\n): Array => {\n const divisor = quotaCells.length;\n const remainder = requiredCompletes % divisor;\n const minCountPerCell = (requiredCompletes - remainder) / divisor;\n\n let counts = new Array(quotaCells.length).fill(minCountPerCell);\n\n for (let i = 0; i < remainder; i++) {\n counts[i] = counts[i] + 1;\n }\n\n return quotaCells.map((c, i) => ({\n ...c,\n count: counts[i],\n perc: getPerc(counts[i], requiredCompletes)\n }));\n};\n\nconst distributeSequentially = (\n quotaCells: Array,\n totalCount: number\n): Array => {\n const counts = new Array(quotaCells.length).fill(1, 0, totalCount);\n\n return quotaCells.map((c, i) => ({\n ...c,\n count: counts[i],\n perc: getPerc(counts[i], totalCount)\n }));\n};\n\nexport const flattenAllocation = (\n quotaCells: Array,\n requiredCompletes: number\n): Array => {\n if (quotaCells.length === 0) {\n return [];\n }\n\n if (quotaCells.length > requiredCompletes) {\n return distributeSequentially(quotaCells, requiredCompletes);\n }\n\n return distributeEvenly(quotaCells, requiredCompletes);\n};\n\nexport const getPerc = (count: number, total: number): number => {\n return parseFloat(((count / total) * 100).toFixed(2));\n};\n\nexport const getCount = (perc: number, total: number): number => {\n return Math.round((perc / 100) * total);\n};\n\nconst nodeOptions = (node: QuotaNodeInput): string[] =>\n new Array(...(node.options || []));\n\nconst cellOptions = (cell: QuotaCellInput): string[] => {\n const opts = new Array();\n\n const nonNullNodes = cell.quotaNodes || [];\n nonNullNodes.forEach(node => opts.push(...nodeOptions(node)));\n\n return opts;\n};\n\nexport const groupOptions = (group: QuotaGroupInput): string[] => {\n const opts = new Array();\n\n const nonNullCells = group.quotaCells || [];\n nonNullCells.forEach(cell => opts.push(...cellOptions(cell)));\n\n return opts;\n};\n\nexport const groupAttributeIds = (group: QuotaGroupInput): string[] => {\n const attrIDSet = new Set();\n\n (group.quotaCells || []).forEach(c =>\n (c.quotaNodes || []).forEach(n => attrIDSet.add(n.attributeId))\n );\n\n return Array.from(attrIDSet);\n};\n\nexport const onlyGroupAttributeId = (group: QuotaGroupInput) => {\n const attrIds = groupAttributeIds(group);\n if (attrIds.length !== 1)\n throw new Error(\n \"onlyGroupAttributeId expected to receive a quota group with only one attribute id.\"\n );\n return attrIds[0];\n};\n\n/**\n * filterFromGroup returns a quota filter from a given quota group.\n * If the given group has more than 1 attribute Id, filterFromGroup will throw.\n */\nexport const filterFromGroup = (\n group: QuotaGroupInput,\n operator: OperatorType\n): QuotaFilterInput => ({\n attributeId: onlyGroupAttributeId(group),\n options: groupOptions(group),\n operator: operator\n});\n\nexport const nodesEqual = (a: QuotaNodeInput, b: QuotaNodeInput) =>\n a.attributeId === b.attributeId && isEqual(a.options, b.options);\n\nexport const uniqueNodes = (quotaNodes: Array) =>\n uniqWith(quotaNodes, nodesEqual);\n\nexport const inputFromPlan = (plan: QuotaPlan): QuotaPlanInput => ({\n filters: plan.filters.map(f => inputFromFilter(f)),\n quotaGroups: plan.quotaGroups.map(g => inputFromGroup(g)),\n __typename: \"QuotaPlan\"\n});\n\nexport const inputFromFilter = (filter: QuotaFilter): QuotaFilterInput => ({\n attributeId: filter.attributeId,\n options: filter.options,\n operator: filter.operator,\n __typename: \"Node\"\n});\n\nexport const inputFromGroup = (group: QuotaGroup): QuotaGroupInput => ({\n name: group.name,\n quotaCells: group.quotaCells.map(c => inputFromCell(c)),\n __typename: \"QuotaGroup\"\n});\n\nexport const inputFromCell = (cell: QuotaCell): QuotaCellInput => ({\n count: cell.count,\n quotaNodes: cell.quotaNodes.map(n => inputFromNode(n)),\n perc: cell.perc,\n status: cell.status,\n quotaCellID: cell.quotaCellID,\n __typename: \"QuotaCell\"\n});\n\nexport const inputFromNode = (node: QuotaNode): QuotaNodeInput => ({\n attributeId: node.attributeId,\n options: node.options,\n __typename: \"Node\"\n});\n\nconst BlankStat: Stat = {\n floatValue: 0.0,\n intValue: 0,\n percentageValue: 0,\n percentageValueRounded: 0,\n status: \"Error\",\n statusMessage: \"\"\n};\n\nexport const BlankReport: Report = {\n attempts: BlankStat,\n completes: BlankStat,\n screenouts: BlankStat,\n overquotas: BlankStat,\n incompletes: BlankStat,\n completesRefused: BlankStat,\n conversion: BlankStat,\n incidence: BlankStat,\n progress: BlankStat,\n remainingCompletes: BlankStat,\n actualMedianLOI: BlankStat\n};\n\nexport const cellReport = (\n cellInput: QuotaCellInput,\n cells: Array\n): Report => {\n const expectedCell = cells.find(c => cellsEqual(inputFromCell(c), cellInput));\n return expectedCell ? expectedCell.quotaCellReport : BlankReport;\n};\n\nexport const isQuotaPlanNull = (quota: QuotaPlan) => {\n if (quota.filters.length === 0 && quota.quotaGroups.length === 0) return true;\n return false;\n};\n\nexport const getAttributeFormPlanFilter = (\n attributeId: string,\n quotaPlan: QuotaPlan,\n allAttrMap: AttributeMap\n): Attribute => {\n const id = quotaPlan.filters.filter(n => n.attributeId === attributeId)[0]\n .attributeId;\n return allAttrMap[id];\n};\n\nexport const getAttributesFormPlan = (\n quotaPlan: QuotaPlan,\n allAttrMap: AttributeMap\n): AttributeMap => {\n const attributes = {} as AttributeMap;\n\n (quotaPlan.filters || []).forEach(\n f => (attributes[f.attributeId] = allAttrMap[f.attributeId])\n );\n\n (quotaPlan.quotaGroups || []).forEach(g =>\n (g.quotaCells || []).forEach(c =>\n (c.quotaNodes || []).forEach(\n n => (attributes[n.attributeId] = allAttrMap[n.attributeId])\n )\n )\n );\n\n return attributes;\n};\n\nexport const getOptionMapping = (options: string): AttributeOptionMap => {\n if (!options) return {};\n if (typeof options === \"object\") return options;\n return JSON.parse(options);\n};\n\nexport const getOptionText = ({\n optionString,\n optionMap,\n attributeType\n}: OptionTextArgs) => {\n if (!optionMap) {\n return optionString;\n }\n\n if (!optionMap[optionString]) {\n return optionString;\n }\n\n switch (attributeType) {\n case \"LIST\":\n return optionMap[optionString].text;\n default:\n return optionString;\n }\n};\n\nexport const sortOptionList = (\n attributeType: AttributeType,\n attributeOptions: string,\n selectedOptions: string[]\n): string[] => {\n const optionMap = getOptionMapping(attributeOptions);\n const selectedOptionsText: string[] = selectedOptions.map(o =>\n getOptionText({ optionString: o, optionMap, attributeType })\n );\n const sortedOptionsText = selectedOptionsText.sort();\n return sortedOptionsText;\n};\n\nexport const attrSorter = (a: Attribute, b: Attribute) => {\n const attrNameA = a.name.toUpperCase();\n const attrNameB = b.name.toUpperCase();\n if (attrNameA < attrNameB) return -1;\n if (attrNameA > attrNameB) return 1;\n return 0;\n};\n\nexport const makeNodeSorter = (attributeMap: AttributeMap) => (\n a: QuotaNodeInput,\n b: QuotaNodeInput\n) => {\n const attrA = attributeMap[a.attributeId];\n const attrB = attributeMap[b.attributeId];\n return attrSorter(attrA, attrB);\n};\n\nexport const buildGroupLikeFromQuotaGroup = (group: QuotaGroup): GroupLike => {\n const x = {\n quotaCells: group.quotaCells.map(c => ({\n quotaNodes: c.quotaNodes.map(n => ({\n attributeId: n.attributeId,\n options: n.options\n }))\n }))\n };\n return x;\n};\n\nexport const buildGroupLikeFromFeasibilityGroup = (\n group: FeasibilityQuotaGroup\n): GroupLike => {\n const x = {\n quotaCells: group.quotaCells.map(c => ({\n quotaNodes: c.quotaNodes.map(n => ({\n attributeId: n.attributeId,\n options: n.options\n }))\n }))\n };\n return x;\n};\n\nexport const buildCellLikeFromFeasibilityCell = (\n cell: FeasibilityQuotaCell\n): CellLike => {\n return {\n quotaNodes: cell.quotaNodes.map(n => ({\n attributeId: n.attributeId,\n options: n.options\n }))\n };\n};\n\nexport const buildCellLikeFromQuotaGroupCell = (\n cell: QuotaCellInput\n): CellLike => {\n return {\n quotaNodes: cell.quotaNodes.map(n => ({\n attributeId: n.attributeId,\n options: n.options\n }))\n };\n};\n\nexport const sortOptionMapKeys = (\n optionMap: AttributeOptionMap,\n list: string[]\n): string[] => {\n let optionTextMap: OptionTextIdMap = {};\n for (let i = 0; i < list.length; i++) {\n const k = list[i];\n optionTextMap[optionMap[k].text.toUpperCase()] = optionMap[k].id;\n }\n const sortedOptionTexts = Object.keys(optionTextMap).sort();\n const sortedOptionKeys = sortedOptionTexts.map(s => {\n return optionTextMap[s];\n });\n return sortedOptionKeys;\n};\n\nexport const getGroupedOptionMap = (\n quotaCells: QuotaCellInput[]\n): Map => {\n const groupedOptionMap = new Map();\n\n quotaCells.forEach(c => {\n c.quotaNodes.forEach(n => {\n if (n.options.length >= 2) {\n n.options.forEach(o => {\n groupedOptionMap.set(o, n.options);\n });\n }\n });\n });\n\n return groupedOptionMap;\n};\n\nexport const groupFromOptionsAndGroup = (\n attributeId: string,\n selectedOptions: string[],\n quotaGroupInput: QuotaGroupInput,\n requiredCompletes: number\n): QuotaGroupInput => {\n const selectedOptionsSet = new Set(selectedOptions);\n\n const quotaOptions = new Array();\n const quotaCellsWithSelectedOptions = new Array();\n\n quotaGroupInput.quotaCells.forEach(c =>\n c.quotaNodes.forEach(n => {\n quotaOptions.push(...n.options);\n if (n.options.some(o => selectedOptionsSet.has(o))) {\n quotaCellsWithSelectedOptions.push(c);\n }\n })\n );\n const quotaOptionSet = new Set(quotaOptions);\n\n const newFilterOptions = selectedOptions.filter(o => !quotaOptionSet.has(o));\n const groupFromExistingFilter: QuotaGroupInput =\n newFilterOptions.length > 0\n ? groupFromFilter(\n {\n attributeId: attributeId,\n options: newFilterOptions\n },\n requiredCompletes,\n quotaGroupInput.name\n )\n : {\n name: \"\",\n quotaCells: []\n };\n\n return {\n name: quotaGroupInput.name,\n quotaCells: [\n ...quotaCellsWithSelectedOptions,\n ...groupFromExistingFilter.quotaCells\n ]\n };\n};\n\nexport const groupWithOnlyAttribute = (\n attributeId: string,\n quotaGroup: QuotaGroupInput\n): QuotaGroupInput => {\n const quotaMap = new Map();\n\n quotaGroup.quotaCells.forEach(c => {\n c.quotaNodes.forEach(n => {\n if (n.attributeId === attributeId) {\n const key = hash(n.options);\n const node = [{ attributeId: attributeId, options: n.options }];\n\n const cell: QuotaCellInput = quotaMap.get(key) || {\n quotaNodes: node,\n count: 0,\n perc: 0\n };\n\n quotaMap.set(key, {\n quotaNodes: node,\n count: cell.count + c.count,\n perc: cell.perc + c.perc\n });\n }\n });\n });\n\n return {\n name: \"\",\n quotaCells: Array.from(quotaMap.values())\n };\n};\n\n//groupsWithoutAttribute will return all the groups without the one that has `attributeId`\nexport const groupsWithoutAttribute = (\n attributeId: string,\n quotaGroups: Array\n): Array =>\n quotaGroups.filter(\n g =>\n g.quotaCells.length >= 1 &&\n g.quotaCells[0].quotaNodes[0].attributeId !== attributeId\n );\n\nexport const getPieChartData = (\n attempts: Stat,\n completes: Stat,\n incompletes: Stat,\n screenouts: Stat,\n overquotas: Stat,\n completesRefused: Stat\n) => {\n return attempts.intValue > 0\n ? [\n {\n title: \"Completes\",\n value: completes.intValue,\n color: COMPLETES_COLOR\n },\n {\n title: \"Incompletes\",\n value: incompletes.intValue,\n color: INCOMPLETES_COLOR\n },\n {\n title: \"Screenouts\",\n value: screenouts.intValue,\n color: SCREENOUTS_COLOR\n },\n {\n title: \"Over Quota\",\n value: overquotas.intValue,\n color: OVERQUOTAS_COLOR\n },\n {\n title: \"Completes Refused\",\n value: completesRefused.intValue,\n color: COMPLETES_REFUSED_COLOR\n }\n ]\n : null;\n};\n\nexport const numberWithCommas = (x: number) => {\n return x.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n};\n\nexport const getCategoryName = (category: AttributeCategory) => {\n return category.subCategory && category.subCategory.text.length > 0\n ? category.subCategory.text\n : category.mainCategory.text;\n};\n\ntype FilterAndInvalidOps = {\n invalidOpts: string[];\n filter: QuotaFilterInput;\n};\n\nexport const getInvalidFilterDataFromJSON = (\n msg: string\n): FilterAndInvalidOps | null => {\n try {\n const result = JSON.parse(msg.substring(msg.indexOf(\"{\")));\n const attrIds = Object.keys(result);\n if (attrIds.length < 1) {\n console.log(\"error message is blank\");\n return null;\n }\n\n const message = result[attrIds[0]];\n if (\n message === undefined ||\n message.InvalidOpts === undefined ||\n message.Filter === undefined ||\n message.Filter.AttributeID === undefined ||\n message.Filter.Operator === undefined ||\n message.Filter.Options === undefined\n ) {\n console.log(\"error message is not as expected\");\n return null;\n }\n\n return {\n filter: {\n attributeId: message.Filter.AttributeID,\n operator: message.Filter.Operator,\n options: message.Filter.Options\n },\n invalidOpts: message.InvalidOpts\n };\n } catch (e) {\n console.error(e);\n return null;\n }\n};\n\nexport const arrayFromString = (s: string) => {\n return uniq(\n s\n .trim()\n .replace(/\\n/g, \",\")\n .split(\",\")\n .filter(s => s !== undefined && s !== null && s !== \"\")\n .map(s => s.trim())\n );\n};\n\nexport const scanInvalidOptions = (\n s: string,\n invalidOptions: string[],\n format: Attribute[\"format\"]\n): string[] => {\n const currTextsArr = arrayFromString(s);\n const currTextsSet = new Set(currTextsArr);\n\n const invalidOps = invalidOptions.filter(i => currTextsSet.has(i));\n\n const invalidFormatOps = currTextsArr.filter(c => c.match(format) === null);\n\n return Array.from(new Set([...invalidOps, ...invalidFormatOps]));\n};\n\nexport const isAttributeInQuotaPlan = (\n attribute: Attribute,\n quotaPlanInput: QuotaPlanInput\n): boolean => {\n const { filters, quotaGroups } = quotaPlanInput;\n return (\n !!filters.find(f => f.attributeId === attribute.id) ||\n !!quotaGroups.find(\n qg =>\n !!qg.quotaCells.find(\n qc => !!qc.quotaNodes.find(qn => qn.attributeId === attribute.id)\n )\n )\n );\n};\n\nexport const emptyTooltipOverlayStyle = { display: \"none\" };\n\nexport const allocExceededText =\n \"Number of allocations need to be less than 100,000.\";\nexport const needMoreAllocText = \"Allocation needs two or more options.\";\nexport const finishAllocText = \"Finish allocating your completes to save.\";\nexport const finishFilterText = \"Filter needs one or more options.\";\nexport const selectOneFilterText = \"Select at least one filter option to save.\";\nexport const completesErrorText =\n \"Make sure the number of completes allocated is greater than the number of completes already delivered.\";\n\nexport const convertToTemplateQP = (\n quotaPlan: QuotaPlan,\n requiredCompletes: number\n) => {\n const { filters, quotaGroups } = quotaPlan;\n const qGroups = quotaGroups.map(group => {\n const cells = group.quotaCells.map(cell => {\n return {\n perc: getPerc(cell.count, requiredCompletes),\n count: 0,\n quotaNodes: cell.quotaNodes,\n __typename: \"QuotaCell\"\n };\n });\n return {\n name: group.name,\n quotaCells: cells,\n __typename: \"QuotaGroup\"\n };\n });\n const newQuotaPlan: QuotaPlanInput = {\n filters,\n quotaGroups: qGroups,\n __typename: \"QuotaPlan\"\n };\n\n return newQuotaPlan;\n};\n\nexport const getInitialAllocationEditModeMap = (\n groups: Array\n): Map => {\n const map = new Map();\n\n groups.forEach(g => {\n const key = hash(g);\n map.set(key, false);\n });\n\n return map;\n};\n\nexport const hasAnyAllocEditOpen = (map: Map): boolean => {\n let hasEditOpen = false;\n\n map.forEach(b => {\n if (b) {\n hasEditOpen = true;\n return;\n }\n });\n\n return hasEditOpen;\n};\n\nexport const filterRetiredAttributes = (\n quotaPlan: QuotaPlanInput,\n attributes: AttributeMap\n): Attribute[] => {\n const { filters, quotaGroups } = quotaPlan;\n const quotaGroupsAttributeIds = quotaGroups\n .map(qg => groupAttributeIds(qg))\n .flat(1);\n const filterAttributes = filters.map(f => attributes[f.attributeId]);\n const groupAttributes = quotaGroupsAttributeIds.map(v => attributes[v]);\n return [...filterAttributes, ...groupAttributes].filter(\n attr => attr.state === \"DEPRECATED\"\n );\n};\n","import styled from \"styled-components\";\n\nconst LinkAsButton = styled.a`\n display: flex;\n align-items: center;\n text-decoration: none;\n color: var(--light-color-6);\n height: 3.6rem;\n padding: 0 2rem;\n font: normal 600 1.2rem/1.8rem ${props => props.theme.fontFamily};\n background-color: var(--primary-color-2);\n border-radius: 0.54rem;\n &:hover {\n background-color: var(--primary-color-0);\n cursor: pointer;\n }\n`;\n\nexport default LinkAsButton;\n","import React, { useState, useEffect } from \"react\";\nimport isEqual from \"lodash/isEqual\";\nimport styled, { StyledComponentProps } from \"styled-components\";\nimport { TextInput, Tooltip } from \"samplify-design\";\nimport Popover from \"react-popover\";\nimport FocusTrap from \"focus-trap-react\";\nimport usePopover from \"../../hooks/usePopover\";\nimport AllocationGroupPopover from \"./AllocationGroupPopover\";\nimport { QuotaCellInput, QuotaGroupInput, AttributeMap } from \"../../types\";\nimport NumberUnit from \"../NumberUnit\";\nimport {\n StyledInterlockButton,\n StyledGroupButton,\n StyledIcon\n} from \"./AttributeEditStyles\";\nimport {\n getPerc,\n getCount,\n AllocVal,\n AllocationValue\n} from \"../../quotaHelpers\";\n\nconst disabledTooltip = \"Add another option to enable grouping!\";\n\nconst StyledPopover = styled(Popover)`\n z-index: 99999;\n`;\n\nconst StyledTooltip = styled(Tooltip)`\n z-index: 99999;\n`;\n\nconst StyledNumberUnit = styled(NumberUnit)`\n padding-right: 0.2rem;\n right: 9px;\n`;\n\nconst InputWrap = styled.div`\n position: relative;\n`;\n\nconst Outer = styled.div`\n white-space: nowrap;\n display: flex;\n align-items: center;\n margin: auto -0.3em;\n transform: translateY(0.3em);\n > * {\n margin: auto 0.3em;\n }\n`;\n\nconst BaseStyledInput = styled(TextInput).attrs({ type: \"number\" })`\n text-align: center;\n height: 2.4rem;\n width: 4.5rem;\n padding: 0.3rem 1.5rem 0.3rem 0.5rem;\n font: normal 400 1.2rem/1.7rem ${props => props.theme.fontFamily};\n color: #696e7b;\n margin-right: 0;\n box-sizing: border-box;\n &:focus {\n border-width: 0.1rem;\n }\n &::-webkit-inner-spin-button,\n &::-webkit-outer-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n &::placeholder {\n color: #9599a4;\n }\n`;\ntype CustomTextInputProps = {\n showError: boolean;\n} & StyledComponentProps<\n any,\n any,\n object & {\n type: string;\n },\n string | number | symbol\n>;\n\nconst CustomTextInput = ({ showError, ...rest }: CustomTextInputProps) => (\n \n);\n\nconst PercInput = styled(CustomTextInput)`\n margin: 0 0.3em;\n border-color: ${props => (props.showError ? \"#f76e5c\" : \"#dddddd\")};\n`;\n\nconst CountInput = styled(CustomTextInput)`\n padding: 0.3rem 0.5rem;\n &::-webkit-inner-spin-button,\n &::-webkit-outer-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n border-color: ${props => (props.showError ? \"#f76e5c\" : \"#dddddd\")};\n`;\n\nconst BracketSpan = styled.span`\n color: #cbcbcb;\n font: normal 400 1.2rem/1.7rem ${props => props.theme.fontFamily};\n`;\n\nconst Count = (props: CustomTextInputProps) => (\n
\n \n
\n);\n\nconst Perc = (props: CustomTextInputProps) => (\n
\n (\n \n )\n
\n);\n\ntype Props = {\n count: AllocVal;\n updateCell: (v: AllocationValue) => void;\n requiredCompletes: number;\n quotaCell: QuotaCellInput;\n quotaGroup: QuotaGroupInput;\n updateTempQuotaGroupInput: (g: QuotaGroupInput) => void;\n attributeCount: number;\n isLineItemLaunched: boolean;\n attributes: AttributeMap;\n showAllocationError?: boolean;\n disableGrouping: boolean;\n calculatedNestingListHeight: string;\n completes?: number;\n toggleRangeGroupingChange?: () => void;\n changeShowCompletesError?: (b: boolean) => void;\n toggleUpdateAllocRowVal?: (b: boolean) => void;\n shouldUpdateAllocRowVal?: boolean;\n};\n\nconst AllocationRow = ({\n count,\n updateCell,\n requiredCompletes,\n quotaCell,\n quotaGroup,\n updateTempQuotaGroupInput,\n attributeCount,\n isLineItemLaunched,\n attributes,\n showAllocationError = false,\n disableGrouping,\n calculatedNestingListHeight,\n toggleRangeGroupingChange,\n completes,\n changeShowCompletesError,\n shouldUpdateAllocRowVal = false,\n toggleUpdateAllocRowVal\n}: Props) => {\n const numCnt = count ? count : 0;\n const { popoverOpen, togglePopover, setPopover } = usePopover();\n const [stateCount, setStateCount] = useState(numCnt);\n const numPerc = getPerc(numCnt, requiredCompletes);\n const [statePerc, setStatePerc] = useState(numPerc);\n\n useEffect(() => {\n if (shouldUpdateAllocRowVal) {\n if (toggleUpdateAllocRowVal) {\n toggleUpdateAllocRowVal(false);\n }\n setStateCount(numCnt);\n setStatePerc(numPerc);\n }\n }, [\n shouldUpdateAllocRowVal,\n numCnt,\n requiredCompletes,\n toggleUpdateAllocRowVal,\n numPerc\n ]);\n\n const updateWithPerc = (e: React.FormEvent) => {\n const perc = isNaN(e.currentTarget.valueAsNumber)\n ? 0\n : e.currentTarget.valueAsNumber;\n setStatePerc(perc);\n const count = getCount(perc, requiredCompletes);\n setStateCount(count);\n\n return updateCell({ perc, count });\n };\n\n const updateWithCount = (e: React.FormEvent) => {\n const count = isNaN(e.currentTarget.valueAsNumber)\n ? 0\n : e.currentTarget.valueAsNumber;\n setStateCount(count);\n const perc = getPerc(count, requiredCompletes);\n setStatePerc(perc);\n\n if (completes && changeShowCompletesError) {\n const val = count < completes;\n changeShowCompletesError(val);\n }\n\n return updateCell({ perc, count });\n };\n\n const groupEnabled =\n !disableGrouping && attributeCount === 1 && !isLineItemLaunched;\n const groupedOptionsCount = quotaCell.quotaNodes[0].options.length;\n const groupButtonText =\n groupedOptionsCount > 1 ? groupedOptionsCount + \" Grouped\" : \"Group\";\n const preSelectedOption =\n groupedOptionsCount === 1 ? quotaCell.quotaNodes[0].options[0] : \"\";\n\n const interlockingDisabled =\n groupedOptionsCount <= 1 &&\n quotaGroup.quotaCells.filter(\n c => !isEqual(c.quotaNodes, quotaCell.quotaNodes)\n ).length <= 0;\n\n const maybeGroup = groupEnabled ? (\n interlockingDisabled ? (\n \n \n {groupButtonText}\n \n \n \n ) : (\n {\n setPopover(false);\n }\n }}\n >\n \n \n }\n >\n \n \n )\n ) : null;\n\n return (\n \n \n \n \n %\n \n {maybeGroup}\n \n );\n};\n\nexport default AllocationRow;\n","import { AllocationValue, getPerc } from \"../../quotaHelpers\";\n\ntype Props = {\n allocationMap: Map;\n requiredCompletes: number;\n};\n\nconst useAllocationReview = ({ allocationMap, requiredCompletes }: Props) => {\n const allocationMapArr = Array.from(allocationMap.values());\n\n const counts = allocationMapArr.map(v =>\n typeof v.count === \"number\" ? v.count : 0\n );\n const totalCount = counts.reduce((acc, val) => {\n return acc + val;\n }, 0);\n\n const totalPerc = getPerc(totalCount, requiredCompletes);\n const remainingCount = requiredCompletes - totalCount;\n const imperative = remainingCount > 0 ? \"Allocate\" : \"Remove\";\n\n return {\n totalPerc,\n totalCount,\n remainingCount,\n imperative\n };\n};\n\nexport default useAllocationReview;\n","import styled from \"styled-components\";\n\nconst Subheader = styled.div`\n padding-top: 4rem;\n height: 100%;\n`;\n\nexport default Subheader;\n","import { useMutation } from \"react-apollo-hooks\";\nimport { closeProject } from \"../../lib/queries/project\";\n\nconst useCloseProject = (extProjectId: string) =>\n useMutation(closeProject, { variables: { extProjectId } });\n\nexport default useCloseProject;\n","module.exports = __webpack_public_path__ + \"static/media/iconClear.70d130d1.svg\";","module.exports = __webpack_public_path__ + \"static/media/filter.09e2a8b6.svg\";","module.exports = __webpack_public_path__ + \"static/media/allocation.94b0e693.svg\";","import React, { Fragment } from \"react\";\nimport { getOptionText } from \"../../quotaHelpers\";\nimport { AttributeType, AttributeOptionMap } from \"../../types\";\n\ntype Props = {\n optionString: string;\n optionMap: AttributeOptionMap;\n attributeType: AttributeType;\n};\n\nconst Option = (props: Props) => (\n {getOptionText(props) || null}\n);\n\nexport default Option;\n","module.exports = __webpack_public_path__ + \"static/media/iconWarning.d3a69615.svg\";","module.exports = __webpack_public_path__ + \"static/media/iconInfoBlue.3d208cf7.svg\";","import React from \"react\";\nimport styled from \"styled-components\";\n\ntype CustomDivProps = {\n open: boolean;\n disabled: boolean;\n} & React.HTMLProps;\nconst CustomDiv = ({ open, disabled, ...rest }: CustomDivProps) => {\n return
;\n};\nconst StyledTriangle = styled(CustomDiv)`\n width: 0;\n height: 0;\n padding: 0 0 0 0.3rem;\n border-left: 8px solid ${props => (props.disabled ? \"#b9bcc4\" : \"#696e7b\")};\n border-top: 6px solid #fff;\n border-bottom: 6px solid #fff;\n border-right: none;\n margin-right: 4px;\n transform: ${props => (props.open ? \"rotate(90deg)\" : \"rotate(0deg)\")};\n -webkit-transition: -webkit-transform 2s;\n transition: transform 0.4s ease;\n`;\n\ntype CustomTitleProps = {\n disabled: boolean;\n} & React.HTMLProps;\nconst CustomTitle = ({ disabled, ...rest }: CustomTitleProps) => {\n return
;\n};\nexport const StyledTitle = styled(CustomTitle)`\n margin: 0 0 0 1rem;\n color: ${props => (props.disabled ? \"#b9bcc4\" : \"#696e7b\")};\n width: 100%;\n text-align: left;\n font: normal 600 1.4rem/1.9rem ${props => props.theme.fontFamily};\n display: flex;\n align-items: center;\n`;\n\ntype CustomButtonProps = {\n minHeight: string;\n} & React.HTMLProps;\nconst CustomButton = ({ minHeight, ...rest }: CustomButtonProps) => {\n return \n \n );\n const footerSection = (\n
\n Cancel\n \n
\n );\n\n const allocatedTopicsSet = new Set(allocatedTopics);\n\n return (\n
\n {!edit ? Choose Your Topics : null}\n \n Get accurate feasibilities for your target respondents by selecting the\n topics that apply to this project.\n \n \n {surveyTopics.map(t => (\n \n \n \n {t.name}\n \n \n ))}\n \n {!edit ? buttonSection : footerSection}\n
\n );\n};\n\nexport default ProjectTopicsSelector;\n","import React from \"react\";\nimport partition from \"lodash/partition\";\nimport isEqual from \"lodash/isEqual\";\nimport { onlyGroupAttributeId } from \"../../quotaHelpers\";\nimport { QuotaCellInput, QuotaGroupInput } from \"../../types\";\n\nconst getRowMap = (\n quotaGroup: QuotaGroupInput,\n quotaCell: QuotaCellInput\n): Map => {\n const stateMap = new Map();\n\n const nonNullNodes = quotaCell.quotaNodes || [];\n nonNullNodes.forEach(node => {\n const nonNullOptions = node.options || [];\n nonNullOptions.forEach(o => {\n stateMap.set([o], true);\n });\n });\n\n const nonNullCells = quotaGroup.quotaCells || [];\n const otherCells = nonNullCells.filter(\n c => !isEqual(c.quotaNodes, nonNullNodes)\n );\n otherCells.forEach(cell => {\n const cellOpts = new Array();\n const nonNullNodes = cell.quotaNodes || [];\n nonNullNodes.forEach(node => {\n const nonNullOptions = node.options || [];\n cellOpts.push(...nonNullOptions);\n });\n stateMap.set(cellOpts, false);\n });\n\n return stateMap;\n};\n\nconst getNextCells = (\n attributeId: string,\n rowMap: Map\n): Array => {\n const mapKeys = Array.from(rowMap.keys());\n\n const [checkedRows, uncheckedRows] = partition(mapKeys, row =>\n rowMap.get(row)\n );\n\n const checkedOptions = new Array();\n checkedRows.forEach(row => {\n checkedOptions.push(...row);\n });\n\n const checkedCell: QuotaCellInput = {\n quotaNodes: [{ attributeId, options: checkedOptions }],\n count: 0,\n perc: 0\n };\n\n const uncheckedCells = uncheckedRows.map(row => ({\n quotaNodes: [{ attributeId, options: row }],\n count: 0,\n perc: 0\n }));\n\n return [checkedCell, ...uncheckedCells];\n};\n\ntype StateProps = {\n rowMap: Map;\n};\n\nexport type RenderProps = {\n toggleRow: (row: string[]) => void;\n updateGroupings: () => void;\n} & StateProps;\n\ntype ContainerProps = {\n quotaCell: QuotaCellInput;\n quotaGroup: QuotaGroupInput;\n updateTempQuotaGroupInput: (g: QuotaGroupInput) => void;\n togglePopover: () => void;\n toggleRangeGroupingChange?: () => void;\n children: (result: RenderProps) => React.ReactNode;\n};\n\nclass AllocationGroupContainer extends React.Component<\n ContainerProps,\n StateProps\n> {\n constructor(props: ContainerProps) {\n super(props);\n const { quotaGroup, quotaCell } = this.props;\n this.state = { rowMap: getRowMap(quotaGroup, quotaCell) };\n this.toggleRow = this.toggleRow.bind(this);\n this.updateGroupings = this.updateGroupings.bind(this);\n }\n\n toggleRow(row: string[]) {\n this.setState(prevState => {\n const nextMap = new Map(prevState.rowMap);\n nextMap.set(row, !prevState.rowMap.get(row));\n return { rowMap: nextMap };\n });\n }\n\n updateGroupings() {\n const {\n quotaGroup,\n updateTempQuotaGroupInput,\n togglePopover,\n toggleRangeGroupingChange\n } = this.props;\n const { rowMap } = this.state;\n const attributeId = onlyGroupAttributeId(quotaGroup);\n const quotaCells = getNextCells(attributeId, rowMap);\n updateTempQuotaGroupInput({ ...quotaGroup, quotaCells });\n if (toggleRangeGroupingChange) {\n toggleRangeGroupingChange();\n }\n togglePopover();\n }\n\n render() {\n const { children } = this.props;\n const { rowMap } = this.state;\n const { toggleRow, updateGroupings } = this;\n return children({ rowMap, toggleRow, updateGroupings });\n }\n}\n\nexport default AllocationGroupContainer;\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport PopoverStyle from \"../PopoverStyle\";\nimport OptionList from \"./OptionList\";\nimport { onlyGroupAttributeId, getOptionMapping } from \"../../quotaHelpers\";\nimport AllocationGroupContainer from \"../../containers/lineitem/AllocationGroupContainer\";\nimport { QuotaCellInput, QuotaGroupInput, AttributeMap } from \"../../types\";\nimport { StyledCheckbox } from \"./AttributeEditStyles\";\nimport AttributeEditButtonGroup from \"./AttributeEditButtonGroup\";\n\ntype CustomProps = {\n maxHeight: string;\n} & React.HTMLProps;\n\nconst CustomDiv = ({ maxHeight, ...rest }: CustomProps) => {\n return
;\n};\n\nexport const StyledOptionList = styled(CustomDiv)`\n height: 100%;\n max-height: ${props => props.maxHeight};\n overflow-y: scroll;\n`;\n\nexport const Row = styled.label`\n color: #696e7b;\n font: normal 400 1.2rem/1.7rem ${props => props.theme.fontFamily};\n display: grid;\n grid-template-columns: auto 1fr;\n align-items: center;\n margin-bottom: 0.8rem;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n cursor: pointer;\n`;\n\nexport const Title = styled.h1`\n margin: 0 0 0.8rem;\n color: #696e7b;\n font: normal 400 1.3rem/1.8rem ${props => props.theme.fontFamily};\n`;\n\nconst StyledOptionContainer = styled.div`\n overflow: hidden;\n text-overflow: ellipsis;\n`;\n\ntype Props = {\n quotaCell: QuotaCellInput;\n quotaGroup: QuotaGroupInput;\n updateTempQuotaGroupInput: (g: QuotaGroupInput) => void;\n attributes: AttributeMap;\n togglePopover: () => void;\n preSelectedOption: string;\n calculatedNestingListHeight: string;\n toggleRangeGroupingChange?: () => void;\n};\n\nconst AllocationGroupPopover = ({\n quotaGroup,\n quotaCell,\n updateTempQuotaGroupInput,\n attributes,\n togglePopover,\n preSelectedOption,\n calculatedNestingListHeight,\n toggleRangeGroupingChange\n}: Props) => {\n return (\n \n {({ rowMap, toggleRow, updateGroupings }) => {\n const onlyAttrId = onlyGroupAttributeId(quotaGroup);\n const attribute = attributes[onlyAttrId];\n const attributeType = attribute.type;\n const rowKeys = Array.from(rowMap.keys());\n const checkedKeys = rowKeys.filter(key => rowMap.get(key));\n const updateDisabled = checkedKeys.length < 1;\n const optionMap = getOptionMapping(attribute.options);\n return (\n \n Group with\n\n \n {rowKeys.map((row, i) => {\n if (row.length === 1 && row[0] === preSelectedOption) {\n return null;\n }\n return (\n \n toggleRow(row)}\n />\n \n \n \n \n );\n })}\n \n\n {}}\n />\n \n );\n }}\n \n );\n};\n\nexport default AllocationGroupPopover;\n","import gql from \"graphql-tag\";\n\nexport const statFragment = gql`\n fragment StatFragment on Stat {\n intValue\n floatValue\n percentageValue\n percentageValueRounded\n status\n statusMessage\n }\n`;\n\nconst attributeFragment = gql`\n fragment AttributeFragment on Attribute {\n id\n countryISOCode\n languageISOCode\n name\n text\n type\n isAllowedInFilters\n isAllowedInQuotas\n options\n format\n state\n tier\n }\n`;\n\nconst quoteFragment = gql`\n fragment QuoteFragment on LineItem {\n quote {\n costPerUnit\n estimatedCost\n detailedQuote {\n costPerUnit\n estimatedCost\n title\n type\n units\n }\n }\n }\n`;\n\nconst actionsFragment = gql`\n fragment ActionsFragment on LineItem {\n actions {\n kind\n metadata {\n label\n enabled\n visible\n description\n }\n }\n }\n`;\n\nconst projectActionsFragment = gql`\n fragment ProjectActionsFragment on Project {\n actions {\n kind\n metadata {\n label\n enabled\n visible\n description\n }\n }\n }\n`;\n\nconst costFragment = gql`\n fragment CostFragment on Cost {\n costPerUnit\n estimatedCost\n incurredCost\n detailedCost {\n costPerUnit\n estimatedCost\n incurredCost\n title\n type\n deliveredUnits\n requestedUnits\n }\n currency\n }\n`;\n\nconst reportFragment = gql`\n fragment ReportFragment on Report {\n attempts {\n ...StatFragment\n }\n completes {\n ...StatFragment\n }\n screenouts {\n ...StatFragment\n }\n overquotas {\n ...StatFragment\n }\n incompletes {\n ...StatFragment\n }\n completesRefused {\n ...StatFragment\n }\n conversion {\n ...StatFragment\n }\n incidence {\n ...StatFragment\n }\n progress {\n ...StatFragment\n }\n remainingCompletes {\n ...StatFragment\n }\n actualMedianLOI {\n ...StatFragment\n }\n }\n ${statFragment}\n`;\n\nconst quotaCellFragment = gql`\n fragment QuotaCellFragment on QuotaCell {\n extProjectId\n extLineItemId\n quotaCellID\n quotaNodes {\n attributeId\n options\n }\n count\n perc\n status\n quotaCellReport {\n ...ReportFragment\n }\n }\n ${reportFragment}\n`;\n\nconst quotaPlanFragment = gql`\n fragment QuotaPlanFragment on LineItem {\n quotaPlan {\n filters {\n attributeId\n options\n operator\n }\n quotaGroups {\n name\n quotaCells {\n ...QuotaCellFragment\n }\n quotaGroupReport {\n ...ReportFragment\n }\n }\n }\n }\n ${quotaCellFragment}\n ${reportFragment}\n`;\n\nconst eventsFragment = gql`\n fragment EventsFragment on LineItem {\n events {\n eventId\n eventType\n extProjectId\n extLineItemId\n createdAt\n details {\n comments\n reasons {\n code\n description\n }\n }\n resource {\n currency\n reason\n indicativeIncidence {\n newValue\n previousValue\n }\n costPerInterview {\n newValue\n previousValue\n }\n estimatedCost {\n newValue\n previousValue\n }\n lengthOfInterview {\n newValue\n previousValue\n }\n incurredCost {\n newValue\n previousValue\n }\n status {\n newValue\n previousValue\n }\n }\n }\n }\n`;\n\nconst lineItemReportFragment = gql`\n fragment LineItemReportFragment on LineItem {\n report {\n extLineItemId\n sources {\n ID\n name\n }\n title\n stats {\n ...ReportFragment\n }\n cost {\n ...CostFragment\n }\n state\n actualIncidence {\n ...StatFragment\n }\n }\n }\n ${statFragment}\n ${costFragment}\n ${reportFragment}\n`;\n\nexport const fragments = {\n stat: statFragment,\n quote: quoteFragment,\n cost: costFragment,\n quotaPlan: quotaPlanFragment,\n events: eventsFragment,\n actions: actionsFragment,\n projectActions: projectActionsFragment,\n report: lineItemReportFragment,\n lineItem: gql`\n fragment LineItemFragment on LineItem {\n title\n extLineItemId\n extProjectId\n lengthOfInterview\n countryISOCode\n languageISOCode\n indicativeIncidence\n daysInField\n fieldSchedule {\n startTime\n endTime\n }\n requiredCompletes\n state\n cpi\n survey {\n surveyId\n countryISOCode\n languageISOCode\n }\n source\n deliveryType\n popularAttributes\n attributes\n ...ActionsFragment\n ...QuotaPlanFragment\n ...EventsFragment\n ...LineItemReportFragment\n ...QuoteFragment\n }\n ${actionsFragment}\n ${quotaPlanFragment}\n ${eventsFragment}\n ${quoteFragment}\n ${lineItemReportFragment}\n `\n};\n\nexport const splitSource = gql`\n mutation splitSource($input: SplitBySampleSource!) {\n splitLineItem(input: $input) {\n extProjectId\n lineItems {\n ...LineItemFragment\n }\n }\n }\n ${fragments.lineItem}\n`;\n\nexport const state = gql`\n query State($extProjectId: ID!, $extLineItemId: ID!) {\n project(extProjectId: $extProjectId) {\n extProjectId\n lineItem(extLineItemId: $extLineItemId) {\n state\n }\n }\n }\n`;\n\nexport const feasibility = gql`\n query Feasibility($extProjectId: ID!, $extLineItemId: ID!) {\n project(extProjectId: $extProjectId) {\n extProjectId\n lineItem(extLineItemId: $extLineItemId) {\n extLineItemId\n extProjectId\n feasibility {\n extLineItemId\n status\n costPerInterview\n currency\n feasible\n errors {\n message\n }\n totalCount\n level\n valueCounts {\n quotaCells {\n quotaNodes {\n attributeId\n options\n }\n feasibilityCount\n level\n }\n }\n }\n ...ActionsFragment\n ...QuoteFragment\n }\n }\n }\n ${actionsFragment}\n ${quoteFragment}\n`;\n\nexport const addLineItem = gql`\n mutation AddLineItem($input: AddLineItemInput!) {\n addLineItem(input: $input) {\n ...LineItemFragment\n }\n }\n ${fragments.lineItem}\n`;\n\nexport const isDuplicatable = gql`\n query IsDuplicatable($extProjectId: ID!, $extLineItemId: ID!) {\n isDuplicatable(extProjectId: $extProjectId, extLineItemId: $extLineItemId) {\n isDuplicatable\n deprecatedAttributes {\n ...AttributeFragment\n }\n }\n }\n ${attributeFragment}\n`;\n\nexport const duplicateLineItem = gql`\n mutation DuplicateLineItem($input: DuplicateLineItemInput!) {\n duplicateLineItem(input: $input) {\n ...LineItemFragment\n }\n }\n ${fragments.lineItem}\n`;\n\nexport const updateLineItemSettings = gql`\n mutation UpdateLineItemSettings($input: UpdateLineItemInput!) {\n updateLineItem(input: $input) {\n extLineItemId\n extProjectId\n survey {\n surveyId\n countryISOCode\n languageISOCode\n }\n countryISOCode\n languageISOCode\n indicativeIncidence\n daysInField\n fieldSchedule {\n startTime\n endTime\n }\n lengthOfInterview\n source\n requiredCompletes\n deliveryType\n title\n popularAttributes\n attributes\n ...QuotaPlanFragment\n ...QuoteFragment\n ...ActionsFragment\n }\n }\n ${actionsFragment}\n ${quotaPlanFragment}\n ${quoteFragment}\n`;\n\nexport const updateQuotaPlan = gql`\n mutation UpdateQuotaPlan($input: UpdateLineItemInput!) {\n updateLineItem(input: $input) {\n extLineItemId\n extProjectId\n attributes\n ...QuotaPlanFragment\n ...QuoteFragment\n ...ActionsFragment\n }\n }\n ${actionsFragment}\n ${quotaPlanFragment}\n ${quoteFragment}\n`;\n\nexport const pauseLineItem = gql`\n mutation PauseLineItem($extProjectId: ID!, $extLineItemId: ID!) {\n pauseLineItem(\n input: { extProjectId: $extProjectId, extLineItemId: $extLineItemId }\n ) {\n extLineItemId\n extProjectId\n state\n ...ActionsFragment\n }\n }\n ${actionsFragment}\n`;\n\nexport const closeLineItem = gql`\n mutation CloseLineItem($extProjectId: ID!, $extLineItemId: ID!) {\n closeLineItem(\n input: { extProjectId: $extProjectId, extLineItemId: $extLineItemId }\n ) {\n extLineItemId\n extProjectId\n state\n ...ActionsFragment\n }\n }\n ${actionsFragment}\n`;\n\nexport const acceptRepricing = gql`\n mutation AcceptRepricing($eventId: ID!) {\n eventAction(input: { action: ACCEPT, eventId: $eventId })\n }\n`;\n\nexport const launchLineItem = gql`\n mutation launchLineItem($extProjectId: ID!, $extLineItemId: ID!) {\n launchLineItem(\n input: { extProjectId: $extProjectId, extLineItemId: $extLineItemId }\n ) {\n extProjectId\n extLineItemId\n state\n stateLastUpdatedAt\n updatedAt\n ...ActionsFragment\n ...LineItemReportFragment\n ...QuotaPlanFragment\n }\n }\n ${actionsFragment}\n ${lineItemReportFragment}\n ${quotaPlanFragment}\n`;\n\nexport const lineItemReport = gql`\n query lineItemReport($extProjectId: ID!, $extLineItemId: ID!) {\n project(extProjectId: $extProjectId) {\n extProjectId\n lineItem(extLineItemId: $extLineItemId) {\n extProjectId\n extLineItemId\n ...LineItemReportFragment\n ...QuotaPlanFragment\n }\n }\n }\n ${quotaPlanFragment}\n ${lineItemReportFragment}\n`;\n\nexport const lineItemStatus = gql`\n query LineItemStatus($extProjectId: ID!) {\n project(extProjectId: $extProjectId) {\n extProjectId\n state\n lineItems {\n title\n extLineItemId\n extProjectId\n state\n ...ActionsFragment\n ...QuotaPlanFragment\n ...QuoteFragment\n ...LineItemReportFragment\n }\n }\n }\n ${actionsFragment}\n ${quotaPlanFragment}\n ${quoteFragment}\n ${lineItemReportFragment}\n`;\n\nexport const targetingTemplates = gql`\n query TargetingTemplates(\n $countryISOCode: String!\n $languageISOCode: String!\n ) {\n targetingTemplates(\n countryISOCode: $countryISOCode\n languageISOCode: $languageISOCode\n ) {\n countryISOCode\n createdAt\n description\n id\n languageISOCode\n name\n state\n tags\n updatedAt\n editable\n quotaPlan {\n filters {\n attributeId\n options\n operator\n }\n quotaGroups {\n name\n quotaCells {\n quotaNodes {\n attributeId\n options\n }\n perc\n count\n }\n }\n }\n }\n }\n`;\n\nexport const createTargetingTemplate = gql`\n mutation createTargetingTemplate($input: CreateTargetingTemplateInput!) {\n createTargetingTemplate(input: $input) {\n id\n }\n }\n`;\n\nexport const deleteTargetingTemplate = gql`\n mutation deleteTargetingTemplate($templateID: String!) {\n deleteTargetingTemplate(input: { templateID: $templateID })\n }\n`;\n\nexport const updateQuotaCellStatus = gql`\n mutation UpdateQuotaCellStatus($input: UpdateQuotaCellStatusInput!) {\n updateQuotaCellStatus(input: $input) {\n ...QuotaCellFragment\n }\n }\n ${quotaCellFragment}\n`;\n","module.exports = __webpack_public_path__ + \"static/media/Error.e92ac87a.svg\";","module.exports = __webpack_public_path__ + \"static/media/CreateProject.a9d2c5b3.svg\";","module.exports = __webpack_public_path__ + \"static/media/upload.4f630d3b.svg\";","module.exports = __webpack_public_path__ + \"static/media/alert.ddb89c23.svg\";","module.exports = __webpack_public_path__ + \"static/media/calculator.31aa26a2.svg\";","module.exports = __webpack_public_path__ + \"static/media/LaunchProject.5fa15d59.svg\";","module.exports = __webpack_public_path__ + \"static/media/filterActive.a16793bc.svg\";","module.exports = __webpack_public_path__ + \"static/media/filterDisabled.14c35ab2.svg\";","module.exports = __webpack_public_path__ + \"static/media/allocationActive.1c178db1.svg\";","module.exports = __webpack_public_path__ + \"static/media/allocationDisabled.8ad93579.svg\";","module.exports = __webpack_public_path__ + \"static/media/splitEvenly.c4edb487.svg\";","module.exports = __webpack_public_path__ + \"static/media/arrowWhite.9b4d281f.svg\";","module.exports = __webpack_public_path__ + \"static/media/iconOrangeInfo.6a5c0e48.svg\";","module.exports = __webpack_public_path__ + \"static/media/iconRefresh.65f48a56.svg\";","module.exports = __webpack_public_path__ + \"static/media/live.c57dea85.svg\";","module.exports = __webpack_public_path__ + \"static/media/closed.b3617c21.svg\";","module.exports = __webpack_public_path__ + \"static/media/testing.f06216b5.svg\";","module.exports = __webpack_public_path__ + \"static/media/design.a63bc18a.svg\";","module.exports = __webpack_public_path__ + \"static/media/iconFile.f692ae56.svg\";","module.exports = __webpack_public_path__ + \"static/media/openLinkBlue.c27ab1fd.svg\";","module.exports = __webpack_public_path__ + \"static/media/arrow.a08c7cd4.svg\";","module.exports = __webpack_public_path__ + \"static/media/samplifyTitle.544bc12d.svg\";","module.exports = __webpack_public_path__ + \"static/media/pipeDark.02dcfa28.svg\";","module.exports = __webpack_public_path__ + \"static/media/accessKey.c46b580c.svg\";","module.exports = __webpack_public_path__ + \"static/media/padlock.ed763625.svg\";","export const SAMPLIFY = \"Samplify\";\nexport const CMIX = \"Cmix\";\n","import { LineItemAction, LineItemActionKind } from \"../../types\";\n\nexport const MIN_COMPLETES = 1;\nexport const MAX_COMPLETES = 999999;\n\nexport const MIN_DURATION = 1;\nexport const MAX_DURATION = 60;\n\nexport const MIN_DAYS_IN_FIELD = 1;\nexport const MAX_DAYS_IN_FIELD = 1000;\n\nexport const MIN_INCIDENCE = 1;\nexport const MAX_INCIDENCE = 100;\n\nexport const MAX_NUMBER_OF_ZIP_CODES_OR_RESPONDENT_IDS = 100000;\n\nexport const MAX_ATTRIBUTE_OPTIONS = 10000;\nexport const MAX_ATTRIBUTE_OPTIONS_ERROR_MESSAGE = (\n maxAttributeOptions = MAX_ATTRIBUTE_OPTIONS\n) => \"Maximum number of values allowed are \" + maxAttributeOptions;\n\nexport const TIER_PREMIUM = \"PREMIUM\";\nexport const TIER_STANDARD = \"STANDARD\";\n\nexport const COST_TYPE_PREMIUM = \"PREMIUM\";\nexport const COST_TYPE_BASE = \"BASE\";\n\nexport const PERFORMANCE = \"Performance\";\nexport const AVAIL_AFTER_LAUNCH = \" (Available after launch)\";\nexport const TARGETING_ATTRIBUTES = \"Targeting Attributes\";\nexport const NONE_SELECTED = \" (none selected)\";\n\nexport const GET_ESTIMATES_MSG = \"Get estimates to continue.\";\nexport const GETTING_ESTIMATES_MSG = \"Getting estimates...\";\nexport const EDIT_OPEN_MSG = \"Cancel or Save changes.\";\n\nconst defaultActionWith = (kind: LineItemActionKind): LineItemAction => ({\n metadata: {\n label: \"\",\n enabled: false,\n visible: false,\n description: \"\"\n },\n kind\n});\n\nexport const DEFAULT_LAUNCH_ACTION = defaultActionWith(\n LineItemActionKind.LAUNCH\n);\nexport const DEFAULT_PAUSE_ACTION = defaultActionWith(LineItemActionKind.PAUSE);\nexport const DEFAULT_DUPLICATE_ACTION = defaultActionWith(\n LineItemActionKind.DUPLICATE\n);\nexport const DEFAULT_CLOSE_ACTION = defaultActionWith(LineItemActionKind.CLOSE);\nexport const DEFAULT_EDIT_ACTION = defaultActionWith(LineItemActionKind.EDIT);\nexport const DEFAULT_SPLIT_SOURCE_ACTION = defaultActionWith(\n LineItemActionKind.SPLIT_SOURCE\n);\nexport const DEFAULT_REJECT_REPRICE_ACTION = defaultActionWith(\n LineItemActionKind.DECLINE_REPRICE\n);\nexport const DEFAULT_APPROVE_REPRICE_ACTION = defaultActionWith(\n LineItemActionKind.APPROVE_REPRICE\n);\nexport const DEFAULT_ESTIMATES_ACTION = defaultActionWith(\n LineItemActionKind.ESTIMATES\n);\n","import { createGlobalStyle } from \"styled-components\";\n\nconst GlobalStyle = createGlobalStyle`\n html {\n font-size: 10px; /* for em scaling */\n height: 100%;\n }\n\n #root {\n height: 100%;\n position: relative;\n }\n\n body {\n color: ${({ theme }) => theme.neutralDark[\"4\"]};\n margin: 0;\n padding: 0;\n font-family: ${({ theme }) => theme.fontFamily};\n background-color: ${({ theme }) => theme.neutralLight[\"5\"]};\n height: 100%;\n font-size: 1.2rem;\n }\n\n .__GA_RENDER__ {\n display: none;\n }\n`;\n\nexport default GlobalStyle;\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport panda from \"../art/Error.svg\";\n\nconst Outer = styled.div`\n height: 100vh;\n width: 100%;\n background: linear-gradient(white 92%, #eeeeee);\n`;\nconst Inner = styled.div`\n padding-top: 3.8rem 0 1rem;\n margin: 0 auto;\n text-align: center;\n background-color: white;\n`;\nconst Blurb = styled.p`\n font-weight: 600;\n font-size: 1.8rem;\n margin: 0;\n padding: 2rem 0 1rem;\n`;\n\nconst ErrorArt = styled.img`\n max-width: 100rem;\n margin: 0 auto;\n`;\n\nconst Page404 = () => (\n \n \n Sorry! we couldn't find the page you're looking for.\n \n \n \n);\n\nexport default Page404;\n","import React from \"react\";\nimport { login } from \"../networkHelpers\";\n\n/**\n * LoginCallback should be rendered at the /callback route.\n * It plucks a Keycloak code from the query string and calls fetch to get a session ID.\n */\nclass LoginCallback extends React.Component {\n componentDidMount() {\n const queryParams = new URLSearchParams(window.location.search);\n const code = queryParams.get(\"code\");\n if (code) login(code);\n }\n\n render() {\n return null;\n }\n}\n\nexport default LoginCallback;\n","import React from \"react\";\nimport Modal from \"react-modal\";\nimport styled from \"styled-components\";\n\ninterface PropTypes {\n className?: string;\n children?: any;\n appElement: HTMLElement | undefined;\n closeTimeoutMS: number;\n isOpen: boolean;\n contentLabel: string;\n onRequestClose: () => void;\n}\n\nconst ModalRenderer = ({ className, children, ...props }: PropTypes) => {\n const contentClassName = `${className}__content`;\n const overlayClassName = `${className}__overlay`;\n return (\n \n {children}\n \n );\n};\n\nconst StyledModal = styled(ModalRenderer)`\n &__overlay {\n overflow-y: auto;\n position: fixed;\n top: 0px;\n left: 0px;\n right: 0px;\n bottom: 0px;\n background-color: rgba(0, 0, 0, 0.5);\n opacity: 0;\n transition: opacity 150ms linear;\n z-index: 999;\n &.ReactModal__Overlay--after-open {\n opacity: 1;\n }\n &.ReactModal__Overlay--before-close {\n opacity: 0;\n }\n }\n &__content {\n display: flex;\n font-size: 14px;\n flex-direction: column;\n max-width: 700px;\n margin: 40px auto;\n outline: none;\n transform: translate(0, -25%);\n transition: transform 150ms ease-out;\n &.ReactModal__Content--after-open {\n transform: translate(0, 0);\n }\n &.ReactModal__Content--before-close {\n transform: translate(0, -25%);\n }\n }\n`;\n\nexport default StyledModal;\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport { ModalBody, TextInputLine, Button, icons } from \"samplify-design\";\nimport art from \"../../art/CreateProject.svg\";\nconst { Alert } = icons;\n\nconst StyledInput = styled(TextInputLine)`\n text-align: center;\n width: 20rem;\n &:focus {\n outline: none;\n border-color: transparent;\n box-shadow: 0 0 0 2px ${props => props.theme.primary[\"2\"]};\n border-radius: 0.4rem;\n }\n`;\n\nconst StyledBody = styled(ModalBody)`\n border-radius: 1rem;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n flex-grow: unset;\n justify-content: space-between;\n text-align: center;\n max-width: min-content;\n max-height: fit-content;\n ${TextInputLine} {\n text-align: center;\n font-size: 1.4rem;\n }\n padding: 3rem 4rem;\n flex-grow: unset;\n`;\n\nconst StyledButton = styled(Button)`\n width: 15rem;\n height: 4rem;\n padding: 0;\n`;\n\nconst ButtonsFlex = styled.div`\n display: flex;\n justify-content: space-between;\n margin-top: 4rem;\n`;\n\nconst ErrorText = styled.div`\n color: ${({ theme }) => theme.danger[\"2\"]};\n margin-top: 1em;\n display: flex;\n justify-content: center;\n align-items: center;\n > svg {\n fill: ${({ theme }) => theme.danger[\"2\"]};\n height: 1em;\n width: auto;\n margin-right: 0.5em;\n }\n`;\n\nconst StyledImage = styled.img`\n width: 32rem;\n height: auto;\n margin-bottom: 5rem;\n`;\n\nconst StyledHeader = styled.h1`\n font: normal 400 1.8rem/2.4rem ${props => props.theme.fontFamily};\n text-align: center;\n margin-bottom: 4.3rem;\n color: #696e7b;\n`;\n\nconst TextLine = styled.p`\n font: normal 400 1.2rem/1.7rem ${props => props.theme.fontFamily};\n color: #696e7b;\n text-align: left;\n margin-top: 2.4rem;\n display: none;\n`;\n\nconst LinkButton = styled.button`\n text-decoration: underline;\n color: #50a5e0;\n border: 0 none;\n background: none;\n cursor: pointer;\n padding: 0;\n &:focus {\n outline: none;\n border-color: transparent;\n box-shadow: 0 0 0 2px ${props => props.theme.primary[\"2\"]};\n border-radius: 0.4rem;\n }\n`;\n\nconst StyledAnchor = LinkButton.withComponent(\"a\");\n\nclass CreateProject extends React.Component {\n constructor(props) {\n super(props);\n this.state = { title: \"\", error: false };\n this.createProject = this.createProject.bind(this);\n }\n\n setTitle = title => {\n this.setState({ title, error: false });\n };\n\n onSubmit = path => {\n if (this.state.title.length === 0) {\n return this.setState({ error: true });\n }\n this.createProject(path);\n };\n\n createProject = path => {\n const { setPath, createProject } = this.props;\n const { title } = this.state;\n if (title === \"\") return;\n setPath(path);\n createProject(title);\n };\n\n render() {\n const error = this.state.error ? (\n \n \n Please give your project a name\n \n ) : null;\n return (\n \n Begin Your Journey\n \n this.setTitle(e.target.value)}\n placeholder=\"Give your project a name\"\n autoFocus=\"autofocus\"\n />\n {error}\n \n this.onSubmit(\"surveys\")}\n swatch=\"neutralDark\"\n >\n Set Up Surveys\n \n this.onSubmit(\"respondents\")}>\n Set Up Respondents\n \n \n \n This project's respondents will be automatically deduped using{\" \"}\n \n RelevantID\n \n .\n \n \n );\n }\n}\n\nexport default CreateProject;\n","import React from \"react\";\nimport { Mutation } from \"react-apollo\";\nimport { Route } from \"react-router\";\nimport CreateProject from \"../../components/modal/CreateProject\";\nimport { createProject } from \"../../lib/queries/project\";\n\nclass CreateProjectContainer extends React.Component {\n constructor(props) {\n super(props);\n this.state = { path: \"surveys\" };\n this.setPath = this.setPath.bind(this);\n this.redirect = this.redirect.bind(this);\n }\n\n setPath(path) {\n if (path !== \"surveys\" && path !== \"respondents\")\n throw new Error(\"Invalid project redirect\");\n this.setState({ path });\n }\n\n redirect(data) {\n const { extProjectId } = data.createProject;\n const { path } = this.state;\n const { history, clearModal } = this.props;\n const location = `/project/${extProjectId}/${path}`;\n clearModal();\n history.push(location);\n }\n\n render() {\n return (\n \n {mutateCreateProject => {\n const createProject = title =>\n mutateCreateProject({ variables: { title } });\n\n return (\n \n );\n }}\n \n );\n }\n}\n\nconst CreateProjectContainerWithLocation = props => (\n (\n \n )}\n />\n);\n\nexport default CreateProjectContainerWithLocation;\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport {\n ModalHeader,\n ModalBody,\n ModalFooter,\n TextInputLine,\n Button\n} from \"samplify-design\";\n\nconst StyledFooter = styled(ModalFooter)`\n height: auto;\n`;\n\nconst StyledButton = styled(Button)`\n width: 15rem;\n height: 4rem;\n padding: 0;\n`;\n\nconst StyledCancelButton = styled(Button)`\n color: ${({ theme }) => theme.neutralDark[\"2\"]};\n background-color: transparent;\n text-decoration: underline;\n &:hover,\n &:active,\n &:focus {\n background: transparent;\n box-shadow: none;\n }\n`;\n\nconst ButtonsFlex = styled.div`\n display: flex;\n justify-content: flex-end;\n padding: 15px;\n`;\n\nconst CreateReport = ({ clearModal }) => (\n
\n Create new report\n \n \n \n \n \n clearModal()}>\n Cancel\n \n Create Report\n \n \n
\n);\n\nexport default CreateReport;\n","import styled from \"styled-components\";\n\nexport const Wrapper = styled.div`\n align-items: center;\n display: flex;\n justify-content: center;\n flex-wrap: wrap;\n padding: 0.5em 3em 2em;\n`;\n","import React, { useState } from \"react\";\nimport styled from \"styled-components\";\nimport { Wrapper } from \"./Wrapper\";\nimport ClearFilter from \"./ClearFilter\";\n\nconst StyledTextArea = styled.textarea`\n border: 1px solid ${({ theme }) => theme.neutralLight[\"3\"]};\n border-radius: 0.5em;\n color: inherit;\n font-size: 14px;\n line-height: 1.5;\n overflow: auto;\n padding: 0.5rem;\n resize: none;\n width: 100%;\n &:focus {\n outline: none;\n border-color: transparent;\n box-shadow: 0 0 0 2px #3ea8dd;\n }\n`;\n\nconst StyledP = styled.p`\n margin: 0 0 1em;\n position: relative;\n text-align: left;\n width: 100%;\n > svg {\n position: absolute;\n right: 0;\n top: -2px;\n }\n`;\n\nconst RespondentId = ({ respondentID, setRespondentID }) => {\n const [ids, setIds] = useState(respondentID ? respondentID.join(\"\\n\") : \"\");\n const clearFilter = () => {\n setRespondentID(null);\n setIds(\"\");\n };\n\n const handleOnChange = e => {\n const idString = e.target.value;\n const idArray = idString.length ? idString.trim().split(/\\s+/) : null;\n setIds(idString);\n setRespondentID(idArray);\n };\n\n return (\n \n \n Enter IDs here in new line format\n \n \n \n \n );\n};\n\nexport default RespondentId;\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport { Wrapper } from \"./Wrapper\";\nimport { Datepicker } from \"samplify-design\";\nimport ClearFilter from \"./ClearFilter\";\n\nconst Separator = styled.span`\n margin: 0 1em;\n`;\n\nconst StyledDatePicker = styled(Datepicker)`\n margin-right: 1em;\n`;\n\nconst DateRange = ({ filterDate, setFilterDate }) => {\n const startDate =\n filterDate && filterDate.startDate ? filterDate.startDate : \"\";\n const endDate = filterDate && filterDate.endDate ? filterDate.endDate : \"\";\n const setStartDate = startDate => setFilterDate({ startDate, endDate });\n const setEndDate = endDate => setFilterDate({ startDate, endDate });\n const clearFilter = () => setFilterDate(null);\n const today = new Date();\n return (\n \n \n -\n \n \n \n );\n};\n\nexport default DateRange;\n","import React from \"react\";\nimport { Wrapper } from \"./Wrapper\";\nimport { TextInput } from \"samplify-design\";\nimport styled from \"styled-components\";\nimport NumberUnit from \"../../NumberUnit\";\nimport ClearFilter from \"./ClearFilter\";\n\nconst InputWrap = styled.div`\n position: relative;\n margin-right: 2em;\n`;\n\nconst StyledWrapper = styled(Wrapper)`\n > svg {\n margin-left: -1em;\n position: relative;\n top: 0.75em;\n }\n`;\n\nconst StyledInput = styled(TextInput)`\n padding-right: 3em;\n width: 120px;\n &:focus {\n box-shadow: 0 0 0 2px\n ${({ invalid, theme }) =>\n invalid ? theme.danger[\"2\"] : theme.primary[\"2\"]};\n }\n`;\n\nconst StyledNumberUnit = styled(NumberUnit)`\n right: 6px;\n top: 70%;\n`;\n\nconst StyledLabel = styled.p`\n margin: 0 0 0.5em;\n`;\n\nconst SurveyDuration = ({\n duration,\n setDuration,\n moreThanError,\n setMoreThanError,\n lessThanError,\n setLessThanError\n}) => {\n const moreThan = duration && duration.moreThan ? duration.moreThan : \"\";\n const lessThan = duration && duration.lessThan ? duration.lessThan : \"\";\n\n const setMoreThan = e => {\n const value = e.target.value;\n setMoreThanError(Number(value) < 0);\n setLessThanError(Number(lessThan) && Number(lessThan) < Number(value));\n setDuration({\n moreThan: value ? Number(value) : null,\n lessThan: lessThan ? lessThan : null\n });\n };\n\n const setLessThan = e => {\n const value = e.target.value;\n setLessThanError(\n Number(value) < 0 || (value && Number(value) < Number(moreThan))\n );\n setDuration({\n moreThan: moreThan ? moreThan : null,\n lessThan: value ? Number(value) : null\n });\n };\n const clearFilter = () => setDuration(null);\n return (\n \n \n Greater than\n \n sec\n \n \n Less than\n \n sec\n \n \n \n );\n};\n\nexport default SurveyDuration;\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport { icons } from \"samplify-design\";\n\nconst { Caret, Check } = icons;\n\nconst StyledBlockHeader = styled.div`\n padding: 2rem 2.5rem;\n position: relative;\n text-align: left;\n :hover {\n cursor: pointer;\n }\n > svg:first-child {\n transform: ${props => (props.isOpen ? \"rotate(180deg)\" : \"rotate(360deg)\")};\n }\n > svg {\n fill: ${({ theme }) => theme.neutralDark[\"3\"]};\n }\n`;\n\nconst StyledCaret = styled(Caret)`\n height: 0.5rem;\n margin-right: 1rem;\n position: relative;\n top: -2px;\n`;\n\nconst StyledCheck = styled(Check)`\n height: 1.25em;\n position: absolute;\n right: 1.5em;\n`;\n\nconst BlockHeader = ({ isOpen, label, setOpenBlock, data }) => {\n const toggleOpenBlock = () =>\n !isOpen ? setOpenBlock(label) : setOpenBlock(\"\");\n\n return (\n toggleOpenBlock()}>\n \n {label}\n {data ? : null}\n \n );\n};\n\nexport default BlockHeader;\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport BlockHeader from \"./BlockHeader\";\n\nconst StyledFilterBlock = styled.div`\n border-bottom: 1px solid ${({ theme }) => theme.neutralLight[\"5\"]};\n`;\n\nconst FilterBlock = ({ content, data, label, openBlock, setOpenBlock }) => {\n const isOpen = label === openBlock;\n return (\n \n \n {isOpen && content}\n \n );\n};\n\nexport default FilterBlock;\n","import React, { useState, useContext } from \"react\";\nimport styled from \"styled-components\";\nimport { ModalHeader, ModalBody, ModalFooter, Button } from \"samplify-design\";\nimport RespondentId from \"./ReportFilter/RespondentId\";\nimport DateRange from \"./ReportFilter/DateRange\";\nimport SurveyDuration from \"./ReportFilter/SurveyDuration\";\nimport ModalPropsContext from \"../../containers/ModalPropsContext\";\nimport FilterBlock from \"./ReportFilter/FilterBlock\";\n\nconst StyledButton = styled(Button)`\n width: 15rem;\n height: 4rem;\n padding: 0;\n`;\n\nconst StyledCancelButton = styled(Button)`\n color: ${({ theme }) => theme.neutralDark[\"2\"]};\n background-color: transparent;\n text-decoration: underline;\n &:hover,\n &:active,\n &:focus {\n background: transparent;\n box-shadow: none;\n }\n`;\n\nconst StyledModalBody = styled(ModalBody)`\n padding: 0;\n flex-grow: unset;\n`;\n\nconst CreateFilter = ({ clearModal }) => {\n const { modalProps } = useContext(ModalPropsContext);\n const { usedReportFilter } = modalProps;\n const { reportFilter, setReportFilter, block } = usedReportFilter;\n const [openBlock, setOpenBlock] = useState(block);\n const [respondentID, setRespondentID] = useState(reportFilter.respondentID);\n const [duration, setDuration] = useState(reportFilter.duration);\n const [filterDate, setFilterDate] = useState(reportFilter.filterDate);\n const [moreThanError, setMoreThanError] = useState(false);\n const [lessThanError, setLessThanError] = useState(false);\n\n const saveFilters = () => {\n setReportFilter({\n respondentID: respondentID ? [...new Set(respondentID)] : null,\n duration:\n duration && (!duration.lessThan && !duration.moreThan)\n ? null\n : duration,\n filterDate\n });\n };\n\n const onSave = () => {\n saveFilters();\n clearModal();\n };\n\n return (\n
\n Report Filters\n \n \n }\n data={respondentID}\n label=\"Respondent ID\"\n openBlock={openBlock}\n setOpenBlock={setOpenBlock}\n />\n \n }\n data={duration}\n label=\"Duration\"\n openBlock={openBlock}\n setOpenBlock={setOpenBlock}\n />\n \n }\n data={filterDate}\n label=\"Date Range\"\n openBlock={openBlock}\n setOpenBlock={setOpenBlock}\n />\n \n \n clearModal()}>\n Cancel\n \n onSave()}\n >\n Save\n \n \n
\n );\n};\n\nexport default CreateFilter;\n","import React from \"react\";\nimport {\n ModalHeader,\n ModalBody,\n ModalFooter,\n ModalCancel,\n Button,\n TextInput\n} from \"samplify-design\";\nimport Select from \"../../components/design/Select\";\n\nconst CreateCrosstab = ({ clearModal }) => (\n
\n New Crosstab\n \n \n \n \n \n clearModal()}>Cancel\n \n \n
\n);\n\nexport default CreateCrosstab;\n","import React from \"react\";\n\nconst ColumnSelect = ({ columns, update }) => (\n \n

Columns

\n \n \n
\n);\n\nexport default ColumnSelect;\n","import React from \"react\";\n\nconst CellSelect = ({ cells, update }) => (\n \n

Cells

\n \n \n
\n);\n\nexport default CellSelect;\n","import React from \"react\";\n\nconst OpenEnd = ({ includeOpen, update }) => (\n \n

Open End

\n \n
\n);\n\nexport default OpenEnd;\n","import styled from \"styled-components\";\nimport { ModalBody, ModalFooter, Button } from \"samplify-design\";\n\nexport const StyledFooter = styled(ModalFooter)`\n height: auto;\n`;\n\nexport const Section = styled.div`\n text-align: left;\n padding: 6px 0;\n > label {\n padding: 0 10px 0 0;\n }\n`;\n\nexport const StyledButton = styled(Button)`\n width: 15rem;\n height: 4rem;\n padding: 0;\n`;\n\nexport const StyledCancelButton = styled(Button)`\n color: ${({ theme }) => theme.neutralDark[\"2\"]};\n background-color: transparent;\n text-decoration: underline;\n &:hover,\n &:active,\n &:focus {\n background: transparent;\n box-shadow: none;\n }\n`;\n\nexport const StyledModal = styled(ModalBody)`\n padding: 20px 30px;\n flex-grow: unset;\n h1 {\n font-size: 1.4rem;\n font-weight: 600;\n line-height: 1.25;\n margin-right: 0.5em;\n text-align: left;\n height: auto;\n }\n flex-grow: unset;\n`;\n","import React, { useContext, useState } from \"react\";\nimport ColumnSelect from \"./ExportColumnSelect\";\nimport CellSelect from \"./ExportCellSelect\";\nimport OpenEnd from \"./ExportOpenEnd\";\nimport { Mutation } from \"react-apollo\";\nimport gql from \"graphql-tag\";\nimport {\n StyledFooter,\n Section,\n StyledButton,\n StyledCancelButton,\n StyledModal\n} from \"./ExportStyles\";\nimport {\n ModalHeader,\n TextInputLine,\n ButtonGroup,\n GroupedButton\n} from \"samplify-design\";\nimport Select from \"../../design/Select\";\nimport ModalPropsContext from \"../../../containers/ModalPropsContext\";\n\nconst CREATE_EXPORT = gql`\n mutation CREATE_EXPORT($input: CreateExportInput!) {\n createExport(input: $input) {\n token\n }\n }\n`;\ntype Format = {\n value: string;\n label: string;\n};\ntype State = {\n format: Format;\n aggregate: string;\n cells: string;\n includeOpen: boolean;\n columns: string;\n title: string;\n};\n\ntype Props = {\n clearModal: () => void;\n};\n\nconst ExportData = ({ clearModal }: Props) => {\n const context = useContext(ModalPropsContext);\n const { surveyKey } = context.modalProps;\n\n const [state, setState] = useState({\n format: { value: \"excel\", label: \"Excel\" },\n aggregate: \"individual\",\n cells: \"text\",\n includeOpen: true,\n columns: \"condensed\",\n title: \"Internal Survey Title\"\n });\n\n const updateAggregate = (e: React.MouseEvent) => {\n const individual = state.aggregate === \"summary\";\n const format = state.format.label;\n let newFormat = { value: \"\", label: \"\" };\n switch (format) {\n case \"Excel\":\n newFormat = individual\n ? { value: \"excel\", label: \"Excel\" }\n : { value: \"aggregate_excel\", label: \"Excel\" };\n break;\n case \"CSV\":\n newFormat = individual\n ? { value: \"csv\", label: \"CSV\" }\n : { value: \"aggregate_csv\", label: \"CSV\" };\n break;\n case \"SPSS\":\n newFormat = individual\n ? { value: \"spss\", label: \"SPSS\" }\n : { value: \"aggregate_excel\", label: \"Excel\" };\n break;\n default:\n break;\n }\n\n const target = e.currentTarget;\n setState(s => ({ ...s, aggregate: target.value, format: newFormat }));\n };\n\n const update = (field: any) => {\n return (e: React.FormEvent) => {\n const target = e.currentTarget;\n const value = target.type === \"checkbox\" ? target.checked : target.value;\n setState(s => ({ ...s, [field]: value }));\n };\n };\n\n const handleSelectChange = (selectedOption: Format) => {\n setState(s => ({ ...s, format: selectedOption }));\n };\n\n const aggregate = state.aggregate === \"individual\";\n const options: Array = aggregate\n ? [\n { value: \"excel\", label: \"Excel\" },\n { value: \"csv\", label: \"CSV\" },\n { value: \"spss\", label: \"SPSS\" }\n ]\n : [\n { value: \"aggregate_excel\", label: \"Excel\" },\n { value: \"aggregate_csv\", label: \"CSV\" }\n ];\n\n const input = {\n input: {\n surveyKey: surveyKey,\n format: state.format.value,\n options: {\n condensed: state.columns === \"condensed\",\n noOpened: !state.includeOpen,\n actualText: state.cells === \"text\",\n mapResponses: false // could implement\n }\n }\n };\n\n return (\n \n {createExport => (\n \n All Data Report (Unfiltered)\n \n \n \n Individual\n \n \n Summary\n \n \n\n
\n

File Format

\n \n
\n\n
\n {aggregate && (\n \n )}\n
\n\n
\n {aggregate && }\n
\n\n
\n {aggregate && (\n \n )}\n
\n\n
\n \n
\n
\n \n {\n clearModal();\n }}\n >\n Cancel\n \n {\n createExport();\n clearModal();\n }}\n >\n Export\n \n \n
\n )}\n
\n );\n};\n\nexport default ExportData;\n","import React, { Fragment } from \"react\";\nimport styled from \"styled-components\";\nimport { ModalHeader, ModalBody, ModalFooter, Button } from \"samplify-design\";\nimport { Mutation } from \"react-apollo\";\nimport gql from \"graphql-tag\";\nimport { logout } from \"../../networkHelpers\";\n\nconst DECLINE_TOS_MUTATION = gql`\n mutation DECLINE_TOS_MUTATION {\n declineTermsAndConditions\n }\n`;\n\nconst StyledBody = styled(ModalBody)`\n height: auto;\n flex-grow: unset;\n height: 110px;\n padding: 20px 30px 40px;\n flex-grow: unset;\n`;\n\nconst StyledFooter = styled(ModalFooter)`\n height: auto;\n`;\n\nconst ButtonsFlex = styled.div`\n display: flex;\n justify-content: space-evenly;\n padding: 15px;\n`;\n\nconst StyledDecline = styled(Button)`\n width: 15rem;\n height: 4rem;\n padding: 0;\n background-color: var(--danger-color-2);\n &:hover {\n background-color: var(--danger-color-1);\n }\n &:active {\n background-color: var(--danger-color-0);\n }\n`;\n\nconst StyledReturn = styled(Button)`\n width: 15rem;\n height: 4rem;\n padding: 0;\n margin: 0 0 0 4rem;\n`;\n\nconst DeclineTosConfirm = ({ clearModal }) => (\n \n {declineTermsAndConditions => (\n \n Decline Terms and Conditions\n \n

\n You are about to decline the Terms and Conditions. You cannot access\n the platform if you do not accept. Are you sure you would like to\n decline?\n

\n

\n If you have any questions or concerns regarding these terms, please\n contact us at samplify-support@researchnow.com\n

\n
\n \n \n {\n declineTermsAndConditions();\n logout();\n }}\n >\n I Decline\n \n {\n clearModal();\n }}\n >\n Return to Agreement\n \n \n \n
\n )}\n
\n);\n\nexport default DeclineTosConfirm;\n","import React, { useContext } from \"react\";\nimport ModalPropsContext from \"../../../containers/ModalPropsContext\";\nimport ViewReport from \"./ViewReport\";\n\ninterface PropTypes {\n clearModal: () => void;\n}\n\nconst ViewReportOnModal = ({ clearModal }: PropTypes) => {\n const { project, status, fromRespondent } = useContext(\n ModalPropsContext\n ).modalProps;\n\n return (\n \n );\n};\n\nViewReportOnModal.contextType = ModalPropsContext;\n\nexport default ViewReportOnModal;\n","import { useMutation } from \"react-apollo-hooks\";\nimport { splitSource as mutation } from \"../../lib/queries/lineitem\";\nimport respondentsQuery from \"../../lib/queries/respondentsQuery\";\nimport { LineItem } from \"../../types\";\nimport { MutationUpdaterFn } from \"apollo-client\";\nimport { DataProxy } from \"apollo-cache\";\n\nexport type InputSource = {\n id: string;\n requiredCompletes: number;\n};\n\ntype Result = {\n data?: {\n splitLineItem: {\n lineItems: Array;\n };\n };\n};\ntype RespondentsData = {\n project: {\n lineItems: Array;\n };\n};\n\nconst useSplitSource = (extProjectId: string, extLineItemId: string) => {\n const [mutate, mutationResult] = useMutation(mutation);\n const updateRespondents: MutationUpdaterFn = (\n cache: DataProxy,\n mutationResult: Result\n ) => {\n const resultData = mutationResult.data;\n const data: RespondentsData | null = cache.readQuery({\n query: respondentsQuery,\n variables: { extProjectId }\n });\n if (data !== null && resultData)\n data.project.lineItems = resultData.splitLineItem.lineItems;\n cache.writeQuery({ query: respondentsQuery, data });\n };\n const splitSource = (inputSources: Array) =>\n mutate({\n variables: {\n input: {\n extProjectId,\n extLineItemId,\n sources: inputSources\n }\n },\n update: updateRespondents\n });\n return {\n splitSource,\n mutationResult\n };\n};\n\nexport default useSplitSource;\n","import { useState, useCallback, ChangeEvent } from \"react\";\nimport { SampleSource, LineItem } from \"../../types\";\n\ntype Props = {\n sampleSources: Array;\n lineItem: LineItem;\n};\n\nexport type SourceState = {\n source: SampleSource;\n checked: boolean;\n requiredCompletes: string;\n};\n\nexport type IdToStateMap = {\n [id: string]: SourceState;\n};\n\nconst coerceVal = (n: number): string => {\n if (Number.isNaN(n)) return \"\";\n return Math.abs(n).toString();\n};\n\nconst parseVal = (val: string): number => {\n const n = parseInt(val, 10);\n if (Number.isNaN(n)) return 0;\n return n;\n};\n\nconst valueFromEvent = (e: ChangeEvent) =>\n coerceVal(parseInt(e.currentTarget.value, 10));\n\nconst getInitialSourceState = (\n lineItem: LineItem,\n source: SampleSource\n): SourceState => {\n const n = source.ID === lineItem.source ? lineItem.requiredCompletes : 0;\n const checked = source.ID === lineItem.source;\n const requiredCompletes = n.toString();\n return { source, checked, requiredCompletes };\n};\n\nconst getInitialState = ({ sampleSources, lineItem }: Props): IdToStateMap => {\n const getInitial = (s: SampleSource) => getInitialSourceState(lineItem, s);\n const states = sampleSources.map(getInitial);\n const idToStateMap = {} as IdToStateMap;\n states.forEach(s => {\n idToStateMap[s.source.ID] = s;\n });\n return idToStateMap;\n};\n\nconst sourceIsValid = (s: SourceState) => parseVal(s.requiredCompletes) > 0;\n\nconst sourcesAreValid = (sources: Array) => {\n const activeSources = sources.filter(src => src.checked);\n const countValid = activeSources.length > 1;\n const completesValid = activeSources.every(sourceIsValid);\n return countValid && completesValid;\n};\n\nconst totalRequiredCompletes = (sources: Array) =>\n sources\n .filter(s => s.checked)\n .map(src => parseVal(src.requiredCompletes))\n .reduce((sum, req) => sum + req, 0);\n\nconst useSplitSourceState = ({ sampleSources, lineItem }: Props) => {\n const initialState = getInitialState({ sampleSources, lineItem });\n const [state, setState] = useState(initialState);\n const sourceStates = Object.values(state);\n const makeTextChangeHandler = useCallback(\n (sourceId: string) => (e: ChangeEvent) => {\n const requiredCompletes = valueFromEvent(e);\n return setState(prevState => ({\n ...prevState,\n [sourceId]: { ...prevState[sourceId], requiredCompletes }\n }));\n },\n []\n );\n const makeCheckedChangeHandler = useCallback(\n (sourceId: string) => () =>\n setState(prevState => {\n const prevSource = prevState[sourceId];\n const checked = !prevSource.checked;\n const requiredCompletes = prevSource.checked\n ? \"0\"\n : prevSource.requiredCompletes;\n return {\n ...prevState,\n [sourceId]: { ...prevSource, checked, requiredCompletes }\n };\n }),\n []\n );\n // Formatted inputs for use with the SplitSource mutation.\n const inputSources = Object.keys(state)\n .map(key => state[key])\n .filter(\n srcState => srcState.source.visibility === \"VISIBLE\" && srcState.checked\n )\n .map(srcState => ({\n id: srcState.source.ID.toString(),\n requiredCompletes: parseVal(srcState.requiredCompletes)\n }))\n .filter(input => input.requiredCompletes > 0);\n return {\n state,\n makeTextChangeHandler,\n makeCheckedChangeHandler,\n inputSources,\n totalRequired: totalRequiredCompletes(sourceStates),\n sourcesValid: sourcesAreValid(sourceStates)\n };\n};\n\nexport default useSplitSourceState;\n","import styled from \"styled-components\";\nimport { ModalCancel } from \"samplify-design\";\n\nconst ModalCancelButton = styled(ModalCancel.withComponent(\"button\"))`\n background: none;\n border: 0 none;\n font-family: inherit;\n margin-right: 2.5em;\n text-decoration: none;\n &:disabled {\n color: #999999;\n cursor: default;\n }\n`;\n\nexport default ModalCancelButton;\n","import React, { ChangeEvent } from \"react\";\nimport styled from \"styled-components\";\nimport {\n ModalBody,\n ModalFooter,\n Checkbox,\n TextInput,\n Button,\n Tooltip\n} from \"samplify-design\";\nimport FocusTrap from \"focus-trap-react\";\nimport ModalPropsContext from \"../../containers/ModalPropsContext\";\nimport { Country, SampleSource, SourcesForCountry } from \"../../types\";\nimport useSplitSource from \"../../hooks/lineitem/useSplitSource\";\nimport useSplitSourceState from \"../../hooks/lineitem/useSplitSourceState\";\nimport StyledSpinner from \"../StyledSpinner\";\nimport ModalCancelButton from \"../ModalCancelButton\";\nimport { disabledSourceTooltipText } from \"../../lineItemHelpers\";\n\nconst ErrorBody = styled.div`\n margin-top: 1em;\n text-align: left;\n color: ${({ theme }) => theme.danger[\"2\"]};\n`;\n\nconst StyledBody = styled(ModalBody)`\n border-radius: 1rem 1rem 0 0;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n text-align: center;\n font-size: 1.2rem;\n flex-grow: unset;\n`;\nconst Outer = styled.div`\n max-width: 37rem;\n`;\nconst H1 = styled.h1`\n font-weight: 600;\n margin-top: 0;\n margin-bottom: 2rem;\n font-size: 1.6rem;\n`;\n\nconst StyledCheckbox = styled(Checkbox)`\n margin-right: 1.3rem;\n input {\n width: 1px;\n }\n`;\nconst StyledTextInput = styled(TextInput)`\n width: 6rem;\n font-size: 1.2rem;\n`;\n\nconst StyledTooltip = styled(Tooltip)`\n z-index: 99999;\n`;\n\ntype RowProps = {\n country: Country;\n language: string;\n sourceId: string;\n sourcesForCountry: SourcesForCountry | null;\n name: string;\n requiredCompletes: string;\n checked: boolean;\n checkDisabled: boolean;\n textDisabled: boolean;\n className?: string;\n onTextChange: (e: ChangeEvent) => void;\n onCheckedChange: () => void;\n};\nconst SourceRow = ({\n country,\n language,\n sourceId,\n sourcesForCountry,\n name,\n requiredCompletes,\n checked,\n checkDisabled,\n textDisabled,\n className,\n onTextChange,\n onCheckedChange\n}: RowProps) => {\n const row = (\n
\n \n \n
\n );\n if (checkDisabled) {\n const tooltipText = disabledSourceTooltipText(\n country,\n language,\n sourceId,\n sourcesForCountry\n );\n return (\n \n {row}\n \n );\n }\n return row;\n};\n\nconst StyledSourceRow = styled(SourceRow)`\n background-color: ${({ checked }: RowProps) =>\n checked ? \"rgba(80, 165, 224, 0.1)\" : \"transparent\"};\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 0.5rem 2rem;\n font-size: 1.4rem;\n margin-bottom: 0.5rem;\n position: relative;\n`;\nconst Strong = styled.strong`\n font-weight: 600;\n`;\nconst Total = styled.span`\n margin-top: 2rem;\n`;\n\nconst StyledDisabledSourceRow = styled(StyledSourceRow)`\n color: var(--light-color-3);\n cursor: not-allowed;\n * {\n cursor: not-allowed;\n }\n`;\n\ntype Props = {\n country: Country;\n sampleSources: Array;\n sourcesForCountry: SourcesForCountry | null;\n lineItem: any;\n clearModal: () => void;\n};\n\ntype ModalPropsContextArg = {\n modalProps: {\n project: Props;\n };\n};\n\nconst SplitSource = ({\n country,\n sampleSources,\n sourcesForCountry,\n lineItem,\n clearModal\n}: Props) => {\n const { extProjectId, extLineItemId, languageISOCode } = lineItem;\n const { splitSource, mutationResult } = useSplitSource(\n extProjectId,\n extLineItemId\n );\n const { loading, error } = mutationResult;\n const {\n state,\n totalRequired,\n sourcesValid,\n inputSources,\n makeTextChangeHandler,\n makeCheckedChangeHandler\n } = useSplitSourceState({ sampleSources, lineItem });\n const rowStates = Object.values(state);\n const onConfirm = () => {\n splitSource(inputSources).then(result => {\n if (result.data !== undefined) clearModal();\n });\n };\n const maybeError =\n error !== undefined ? (\n Splitting source failed. Please try again.\n ) : null;\n const buttonChild = loading ? : \"Split\";\n return (\n \n \n \n

Split Source

\n {rowStates.map(srcState => {\n const checked = srcState.checked;\n const visible = srcState.source.visibility === \"VISIBLE\";\n return visible ? (\n \n ) : (\n \n );\n })}\n \n {totalRequired} total completes\n \n {maybeError}\n
\n \n \n Cancel\n \n \n \n
\n
\n );\n};\n\nconst SplitSourceOuter = ({ clearModal }: { clearModal: () => void }) => (\n \n {({ modalProps }: ModalPropsContextArg) => {\n const {\n country,\n sampleSources,\n sourcesForCountry,\n lineItem\n } = modalProps.project;\n return (\n \n );\n }}\n \n);\n\nexport default SplitSourceOuter;\n","import React, { ReactNode } from \"react\";\nimport styled from \"styled-components\";\nimport { ModalBody, Button } from \"samplify-design\";\n\nconst Buttons = styled.div`\n display: flex;\n justify-content: flex-end;\n margin-top: 2.5em;\n`;\n\nconst Cancel = styled(Button)`\n background-color: #ffffff;\n color: ${({ theme }) => theme.neutralDark[\"4\"]};\n text-decoration: underline;\n &:hover {\n background-color: #ffffff;\n }\n &:focus {\n box-shadow: none;\n }\n`;\n\nconst StyledModal = styled(ModalBody)`\n border-radius: 1rem;\n max-height: fit-content;\n text-align: left;\n flex-grow: unset;\n`;\n\ntype Props = {\n confirmation: ReactNode;\n onCancel: () => void;\n onConfirm: () => void;\n cancelLabel?: ReactNode;\n confirmLabel?: ReactNode;\n};\n\nconst ConfirmationModal = ({\n confirmation,\n onCancel,\n onConfirm,\n cancelLabel = \"Cancel\",\n confirmLabel = \"Close\"\n}: Props) => {\n return (\n \n {confirmation}\n \n {cancelLabel}\n \n \n \n );\n};\n\nexport default ConfirmationModal;\n","import React, { useContext } from \"react\";\nimport ModalPropsContext from \"../../containers/ModalPropsContext\";\nimport ConfirmationModal from \"./ConfirmationModal\";\n\ntype Props = {\n clearModal: () => void;\n};\n\nconst ConfirmCloseLineItem = ({ clearModal }: Props) => {\n const { modalProps } = useContext(ModalPropsContext);\n const closeLineItem = () => {\n modalProps.closeLineItem();\n clearModal();\n };\n\n return (\n Are you sure you want to close {modalProps.title}?

}\n onCancel={clearModal}\n onConfirm={closeLineItem}\n confirmLabel={\"Close\"}\n />\n );\n};\n\nexport default ConfirmCloseLineItem;\n","import React, { useContext } from \"react\";\nimport ModalPropsContext from \"../../containers/ModalPropsContext\";\nimport useCloseProject from \"../../hooks/project/useCloseProject\";\nimport ConfirmationModal from \"./ConfirmationModal\";\n\ntype Props = {\n clearModal: () => void;\n};\n\nconst ConfirmCloseProject = ({ clearModal }: Props) => {\n const { modalProps } = useContext(ModalPropsContext);\n const [closeProject] = useCloseProject(modalProps.extProjectId);\n\n const closeProj = () => {\n closeProject();\n clearModal();\n };\n\n return (\n Are you sure you want to close and bill this project?

\n }\n onCancel={clearModal}\n onConfirm={closeProj}\n confirmLabel={\"Close\"}\n />\n );\n};\n\nexport default ConfirmCloseProject;\n","import React from \"react\";\nimport { ModalHeader, ModalBody, ModalFooter, Button } from \"samplify-design\";\nimport styled from \"styled-components\";\n\nexport const StyledModal = styled(ModalBody)`\n flex-grow: unset;\n`;\n\nconst UpdateFound = () => (\n
\n Update Found\n \n

\n Samplify has been updated. To ensure you're using the latest version,\n please refresh the page.\n

\n
\n \n \n \n
\n);\n\nexport default UpdateFound;\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport art from \"../art/LaunchProject.svg\";\n\nconst StyledImg = styled.img`\n max-width: 30rem;\n height: auto;\n padding: 2rem;\n margin: 0 auto;\n`;\nconst Gong = (props: any) => ;\n\nexport default Gong;\n","import React, { useContext } from \"react\";\nimport styled from \"styled-components\";\nimport { ModalBody, Button } from \"samplify-design\";\nimport Flag from \"../Flag\";\nimport Gong from \"../Gong\";\nimport ModalPropsContext from \"../../containers/ModalPropsContext\";\nimport ModalCancelButton from \"../ModalCancelButton\";\n\nconst Footer = styled.div`\n text-align: right;\n`;\nconst StyledButton = styled(Button)`\n width: 15rem;\n`;\n\nconst StyledBody = styled(ModalBody)`\n border-radius: 1rem;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n text-align: left;\n flex-grow: unset;\n`;\n\ntype SurveyLineItem = {\n extLineItemId: string;\n extProjectId: string;\n title: string;\n countryISOCode: string;\n surveyId: string;\n};\n\ntype Props = {\n clearModal: () => void;\n};\n\ntype ModalProps = {\n lineItems: SurveyLineItem[];\n deleteSurvey: () => void;\n};\ntype ModalPropsContextArg = {\n modalProps: ModalProps;\n};\n\nconst Outer = styled.div``;\n\nconst LineItemRow = (props: SurveyLineItem) => (\n
\n \n {props.title}\n
\n);\n\nconst ConfirmDeleteSurvey = ({ clearModal }: Props) => {\n const context: ModalPropsContextArg = useContext(ModalPropsContext);\n const { lineItems, deleteSurvey } = context.modalProps;\n const onClickDelete = () => {\n clearModal();\n deleteSurvey();\n };\n return (\n \n \n \n
\n

\n You are about to delete a survey that is attached to the following\n target groups:\n

\n {lineItems.map(li => (\n \n ))}\n

Are you sure you would like to delete this survey?

\n

\n You will need to assign a new survey to these target groups before\n launching.\n

\n
\n
\n Cancel\n \n Delete\n \n
\n
\n
\n );\n};\n\nexport default ConfirmDeleteSurvey;\n","import React, { useContext } from \"react\";\nimport { withRouter } from \"react-router-dom\";\nimport styled from \"styled-components\";\nimport { ModalBody, Button } from \"samplify-design\";\nimport ModalPropsContext from \"../../containers/ModalPropsContext\";\n\nconst Buttons = styled.div`\n display: flex;\n justify-content: flex-end;\n margin-top: 2.5em;\n`;\n\nconst Cancel = styled(Button)`\n background-color: #ffffff;\n color: ${({ theme }) => theme.neutralDark[\"4\"]};\n text-decoration: underline;\n &:hover {\n background-color: #ffffff;\n }\n &:focus {\n box-shadow: none;\n }\n`;\n\nconst StyledModal = styled(ModalBody)`\n border-radius: 1rem;\n max-height: 100px;\n text-align: left;\n flex-grow: unset;\n`;\n\nconst ConfirmButton = ({\n nextLocation,\n history,\n clearModal,\n setBlockNavigateAway\n}: any) => {\n return (\n {\n history.push(nextLocation.pathname, []);\n setBlockNavigateAway(true);\n clearModal();\n }}\n >\n Yes\n \n );\n};\n\nconst RoutingButton = withRouter(ConfirmButton);\n\ntype ModalProps = {\n nextLocation: any;\n setBlockNavigateAway: any;\n};\n\ntype ModalPropsContextArg = {\n modalProps: ModalProps;\n};\n\ninterface Props {\n clearModal: any;\n}\n\nconst ConfirmClose = ({ clearModal }: Props) => {\n const context: ModalPropsContextArg = useContext(ModalPropsContext);\n const { nextLocation, setBlockNavigateAway } = context.modalProps;\n\n return (\n \n

\n Are you sure you want to leave this page? You may lose any unsaved\n changes.\n

\n \n {\n setBlockNavigateAway(true);\n clearModal();\n }}\n >\n Cancel\n \n \n Yes\n \n \n
\n );\n};\n\nexport default ConfirmClose;\n","import React, { useContext } from \"react\";\nimport ModalPropsContext from \"../../containers/ModalPropsContext\";\nimport ConfirmationModal from \"./ConfirmationModal\";\nimport { Attribute } from \"../../types\";\nimport { commaSeparatedString } from \"../../generalHelpers\";\n\ntype Props = {\n clearModal: () => void;\n};\n\ntype ModalProps = {\n deprecatedAttributes: Attribute[];\n duplicateLineItem: () => void;\n};\n\ntype ModalPropsContextArg = {\n modalProps: ModalProps;\n};\n\nconst ConfirmDuplicateLineItemDeprecatedAttribute = ({ clearModal }: Props) => {\n const context: ModalPropsContextArg = useContext(ModalPropsContext);\n const { deprecatedAttributes, duplicateLineItem } = context.modalProps;\n const deprecatedAttributeList = commaSeparatedString(\n deprecatedAttributes.map(a => a.name),\n true\n );\n const confirmModal = () => {\n duplicateLineItem();\n clearModal();\n };\n\n return (\n \n

\n The targeting attributes {deprecatedAttributeList} have been\n retired.\n

\n

\n When duplicating the group, all targeting attributes will be\n removed. Only the settings will be duplicated.\n

\n \n }\n onCancel={clearModal}\n onConfirm={confirmModal}\n confirmLabel={\"Accept & Duplicate\"}\n />\n );\n};\n\nexport default ConfirmDuplicateLineItemDeprecatedAttribute;\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport {\n TextInput,\n Checkbox,\n Tooltip,\n Button,\n ButtonGroup,\n GroupedButton,\n Select\n} from \"samplify-design\";\nimport search from \"../../art/search.svg\";\nimport iconInfo from \"../../art/iconInfo.svg\";\nimport iconClear from \"../../art/iconClear.svg\";\nimport filter from \"../../art/attribute_edit_modal/filter.svg\";\nimport filterActive from \"../../art/attribute_edit_modal/filterActive.svg\";\nimport filterDisabled from \"../../art/attribute_edit_modal/filterDisabled.svg\";\nimport allocation from \"../../art/attribute_edit_modal/allocation.svg\";\nimport allocationActive from \"../../art/attribute_edit_modal/allocationActive.svg\";\nimport allocationDisabled from \"../../art/attribute_edit_modal/allocationDisabled.svg\";\nimport splitEvenly from \"../../art/attribute_edit_modal/splitEvenly.svg\";\nimport {\n EditMode,\n EDIT_MODE_ALLOCATION,\n EDIT_MODE_FILTER,\n FILTER_TYPE_INCLUDE,\n FILTER_TYPE_EXCLUDE\n} from \"../../quotaHelpers\";\nimport { OperatorType } from \"../../types\";\nimport { StyledGrid } from \"./AttributeEditStyles\";\n\nconst FILTER_TOOLTIP =\n \"You can choose to include or exclude respondents that match that condition but not set an allocation for it.\";\n\nconst ALLOC_TOOLTIP =\n \"You can choose the percentage of respondents that match that condition.\";\n\nconst StyledSelectAllLabel = styled.label`\n display: inline-flex;\n align-items: center;\n font-size: 1.2rem;\n > * {\n margin: 0 1.2rem 0 0;\n }\n`;\n\nconst StyledFlex = styled.div`\n display: flex;\n margin-bottom: 1.5rem;\n`;\n\nconst StyledSearchIcon = styled.img`\n width: 1.5rem;\n height: auto;\n position: absolute;\n right: 0px;\n pointer-events: none;\n margin: 0.9rem 1rem;\n`;\n\nconst StyledClearButton = styled(Button)`\n width: 6rem;\n height: 1.7rem;\n position: absolute;\n right: 28px;\n color: #696e7b;\n padding: 0;\n margin: 0.8rem 0;\n border: none;\n background: none;\n font: normal 400 1.2rem/1.7rem ${props => props.theme.fontFamily};\n &:hover {\n border: none;\n background: none;\n }\n &:active {\n border: none;\n background: none;\n }\n`;\n\nconst StyledSplitEvenlyButton = styled(Button)`\n height: auto;\n padding: 0;\n margin: 0 0 0 1.6rem;\n color: #3ea8dd;\n border: none;\n background: none;\n font: normal 400 1.2rem/1.7rem ${props => props.theme.fontFamily};\n &:hover {\n border: none;\n background: none;\n }\n &:active {\n border: none;\n background: none;\n }\n`;\n\nconst StyledSplitEvenlyIcon = styled.img`\n width: auto;\n height: auto;\n margin-right: 0.8rem;\n`;\n\nconst StyledSplitEvenlySpan = styled.span`\n display: flex;\n align-items: center;\n width: fit-content;\n margin: auto;\n`;\n\nconst StyledClearIcon = styled.img`\n width: 1rem;\n height: auto;\n margin: 0;\n`;\n\nconst StyledSearchLabel = styled.label`\n position: relative;\n font-size: 1.2rem;\n flex-direction: column;\n justify-content: flex-start;\n width: -webkit-fill-available;\n`;\n\nconst StyledTextInput = styled(TextInput)`\n border-radius: 0.4rem;\n width: -webkit-fill-available;\n margin: 0;\n padding-right: 9rem;\n &::placeholder {\n color: #9599a4;\n }\n`;\n\nconst StyledCheckbox = styled(Checkbox)``;\n\nconst StyledHeaderSeparator = styled.div`\n margin-bottom: 1rem;\n border-bottom: 1px solid ${({ theme }) => theme.neutralLight[\"4\"]};\n`;\n\nconst StyledHeader = styled.div`\n justify-content: flex-start;\n`;\n\nconst StyledTypeLabel = styled.label`\n display: inline-flex;\n align-items: center;\n color: #696e7b;\n font: normal 600 1.4rem/1.9rem ${props => props.theme.fontFamily};\n`;\n\nconst StyledTooltip = styled(Tooltip)`\n z-index: 99999;\n`;\n\nconst StyledInfoIcon = styled.img`\n width: 1.3rem;\n height: auto;\n fill: #5d6068;\n margin: auto 0.4rem;\n`;\n\nconst StyledButtonGroup = styled(ButtonGroup)`\n height: 3.4rem;\n border-radius: 0.4rem;\n display: flex;\n margin: auto 1.5rem;\n`;\n\nconst StyledGroupedButton = styled(GroupedButton)`\n align-items: center;\n padding-right: 1.5rem;\n padding-left: 1.5rem;\n width: 11.5rem;\n height: inherit;\n line-height: inherit;\n font: normal 400 1.2rem/1.7rem ${props => props.theme.fontFamily};\n background-color: #ffffff;\n border: solid 0.2rem #3ea8dd;\n color: #3ea8dd;\n &.active {\n color: #ffffff;\n background-color: #3ea8dd;\n svg,\n path,\n g {\n stroke: #ffffff;\n color: #ffffff;\n }\n }\n &:not(:first-child) {\n border-left-width: 0;\n }\n &:disabled {\n pointer-events: none;\n cursor: default;\n color: #9599a4;\n background-color: #e7e8eb;\n border-color: #e7e8eb;\n }\n &:hover {\n background-color: ${({ theme }) => theme.neutralLight[\"7\"]};\n color: #3ea8dd;\n }\n`;\n\nconst StyledGroupButtonIcon = styled.img`\n width: auto;\n height: auto;\n margin-right: 0.8rem;\n`;\n\nconst StyledGroupButtonSpan = styled.span`\n display: flex;\n align-items: center;\n width: fit-content;\n margin: auto;\n`;\n\nconst StyledFilterTypeSelect = styled(Select)`\n > * {\n min-height: 3.4rem !important;\n }\n width: 9rem;\n padding: 0;\n margin: 0 0 0 2.4rem;\n background: none;\n font: normal 400 1.2rem/1.7rem ${props => props.theme.fontFamily};\n`;\ntype FilterTypeOption = {\n label: React.ReactNode;\n value: OperatorType;\n};\n\nconst filterTypeOptions = [\n {\n label: Include,\n value: FILTER_TYPE_INCLUDE\n },\n {\n label: Exclude,\n value: FILTER_TYPE_EXCLUDE\n }\n];\n\nconst StyledAllocationSpan = styled.span`\n font: normal 600 1.3rem/1.8rem ${props => props.theme.fontFamily};\n`;\n\ntype ButtonProps = {\n children: React.ReactNode;\n active: boolean;\n onClick: () => void;\n disabled?: boolean;\n};\n\nconst EditTypeButton = ({\n children,\n onClick,\n active,\n disabled\n}: ButtonProps) => {\n const className = active ? \"active\" : \"\";\n return (\n \n {children}\n \n );\n};\n\ntype Props = {\n toggleAll?: () => void;\n handleSearch?: (e: React.FormEvent) => void;\n value?: string;\n toggleAllValue?: boolean;\n clearSearch?: () => void;\n allocationAllowed: boolean;\n filterAllowed: boolean;\n editMode: EditMode;\n toggleEditMode: (f: EditMode) => void;\n showSplitEvenly?: boolean;\n onSplitEvenlyClick?: () => void;\n filterType: OperatorType;\n toggleFilterType: (filterType: OperatorType) => void;\n allowSearch: boolean;\n allowSelectAll: boolean;\n filterDisableMessage?: string;\n};\n\nconst AttributeEditHeader = ({\n toggleAll,\n handleSearch,\n value,\n toggleAllValue,\n clearSearch,\n allocationAllowed,\n filterAllowed,\n editMode,\n toggleEditMode,\n showSplitEvenly,\n onSplitEvenlyClick,\n filterType,\n toggleFilterType,\n allowSearch,\n allowSelectAll,\n filterDisableMessage\n}: Props) => {\n const showAllocation = editMode === EDIT_MODE_ALLOCATION;\n const showFilter = editMode === EDIT_MODE_FILTER;\n\n const maybeClearSearchButton =\n value === \"\" ? null : (\n \n Clear\n \n );\n\n const tooltipInfo = showFilter ? FILTER_TOOLTIP : ALLOC_TOOLTIP;\n\n return (\n \n \n \n Use as \n \n \n \n \n\n \n {\n toggleEditMode(EDIT_MODE_ALLOCATION);\n }}\n >\n \n \n Allocation\n \n \n\n {\n toggleEditMode(EDIT_MODE_FILTER);\n }}\n >\n \n \n Filter\n \n \n \n\n {showFilter ? (\n toggleFilterType(o.value)}\n value={\n filterType === FILTER_TYPE_EXCLUDE\n ? filterTypeOptions[1]\n : filterTypeOptions[0]\n }\n />\n ) : null}\n \n\n {allowSearch ? (\n \n \n \n {maybeClearSearchButton}\n \n \n \n ) : null}\n\n \n \n
\n {allowSelectAll ? (\n \n \n Select All\n \n ) : null}\n
\n\n {showAllocation ? (\n
\n Allocation\n {showSplitEvenly ? (\n \n \n \n Split Evenly\n \n \n ) : null}\n
\n ) : null}\n
\n
\n\n \n
\n );\n};\n\nexport default AttributeEditHeader;\n","import React, { Fragment } from \"react\";\nimport styled from \"styled-components\";\nimport { Toggle } from \"samplify-design\";\nimport { StyledGrid } from \"./AttributeEditStyles\";\n\nconst StyledSelectView = styled.div`\n display: flex;\n align-items: center;\n justify-content: flex-start;\n`;\n\nconst Flex = styled.div`\n display: flex;\n align-items: center;\n height: 20px;\n`;\n\nconst StyledSpan = styled.span`\n font: normal 600 1.2rem/1.7rem ${props => props.theme.fontFamily};\n color: #696e7b;\n`;\n\nconst StyledToggle = styled(Toggle)`\n padding-left: 0.8rem;\n color: white;\n &.react-toggle--checked .react-toggle-track {\n background-color: #3ea8dd;\n }\n .react-toggle-track {\n font-size: 0.9rem;\n font-weight: 400;\n width: 40px;\n height: 20px;\n }\n .react-toggle-thumb {\n left: 10px;\n width: 16px;\n height: 16px;\n }\n &.react-toggle--checked .react-toggle-thumb {\n left: 30px;\n }\n .react-toggle-track-x {\n top: 10px;\n }\n .react-toggle-track-check {\n opacity: 1;\n left: 12px;\n top: 10px;\n }\n`;\n\ntype CustomSpanProps = {\n showAllocationError: boolean;\n} & React.HTMLProps;\n\nconst CustomSpan = ({ showAllocationError, ...rest }: CustomSpanProps) => (\n \n);\n\nconst StyledAllocSpan = styled(CustomSpan)`\n font-weight: 600;\n color: ${props => (props.showAllocationError ? \"#f76e5c\" : \"#696E7B\")};\n`;\n\nconst StyledCompletesSpan = styled(CustomSpan)`\n color: ${props => (props.showAllocationError ? \"#f76e5c\" : \"#696E7B\")};\n`;\n\ntype Props = {\n showSelectedOnlyToggle: boolean;\n allocationOn: boolean;\n showAllocationError: boolean;\n totalPerc: number;\n totalCount: number;\n requiredCompletes: number;\n toggleViewSelectedOptions?: () => void;\n};\n\nconst AttributeEditFooter = ({\n showSelectedOnlyToggle,\n allocationOn,\n showAllocationError,\n totalPerc,\n totalCount,\n requiredCompletes,\n toggleViewSelectedOptions\n}: Props) => {\n return (\n \n \n \n {showSelectedOnlyToggle ? (\n \n View Selected Only\n \n \n ) : null}\n \n {allocationOn ? (\n \n \n {totalPerc}%\n \n \n (\n \n {totalCount}\n {\" \"}\n out of {requiredCompletes})\n \n \n ) : null}\n \n \n );\n};\n\nexport default AttributeEditFooter;\n","import React from \"react\";\nimport styled from \"styled-components\";\n\nconst HiddenInput = styled.input`\n position: absolute;\n opacity: 0;\n height: 0;\n width: 0;\n margin: 0;\n`;\n\nconst BaseCheckbox = (props: any) => {\n const { children, className, ...rest } = props;\n return (\n \n );\n};\n\nexport const RedCheckbox = styled(BaseCheckbox)`\n > ${HiddenInput}:first-child {\n &:active + svg rect.sd-check-rect {\n fill: ${props => props.theme.neutralLight[\"5\"]};\n }\n &:focus + svg rect.sd-check-focus-rect {\n transform: scale(1);\n }\n }\n > ${HiddenInput}:checked + svg polyline {\n transform: scale(1);\n }\n > ${HiddenInput}:checked + svg rect.sd-check-rect {\n fill: #f76e5c;\n }\n > svg {\n font-size: 1em;\n height: 1.5em;\n width: 1.5em;\n vertical-align: middle;\n &:not(:last-child) {\n margin-right: 0.5em;\n }\n rect.sd-check-rect {\n fill: ${props => props.theme.neutralLight[\"7\"]};\n stroke: #dddddd;\n }\n rect.sd-check-focus-rect {\n fill: ${props => props.theme.focusA};\n transform: scale(0.8);\n transform-origin: center;\n transition: transform 0.125s;\n }\n polyline {\n stroke: #ffffff;\n fill: none;\n transform: scale(0);\n transform-origin: center;\n transition: transform 0.125s;\n }\n }\n`;\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport { Checkbox } from \"samplify-design\";\nimport { CustomGridProps, StyledGrid, Flex } from \"./AttributeEditStyles\";\nimport {\n QuotaGroupInput,\n QuotaCellInput,\n AttributeMap,\n LineItemState\n} from \"../../types\";\nimport AllocationRow from \"./AllocationRow\";\nimport { RedCheckbox } from \"../design/Checkbox\";\nimport { AllocationValue, AllocVal } from \"../../quotaHelpers\";\n\ntype CustomStyledGridProps = {\n hoverColor: string;\n} & CustomGridProps;\n\nconst optionHighlight = ({ hoverColor, ...rest }: CustomStyledGridProps) => {\n //@ts-ignore: not able to recognize `ref` for
\n return ;\n};\n\ntype CustomCheckboxProps = {\n fillColor: string;\n} & React.HTMLProps;\n\nconst optionCheckbox = ({ fillColor, ...rest }: CustomCheckboxProps) => {\n return ;\n};\n\nconst StyledCheckbox = styled(optionCheckbox)`\n > svg rect.sd-check-rect {\n fill: ${props => (props.checked ? props.fillColor : \"#ffffff\")};\n stroke: #dddddd;\n }\n > svg polyline {\n stroke: #ffffff;\n }\n cursor: pointer;\n`;\n\nconst StyledOptionGrid = styled(optionHighlight)`\n &:hover {\n background-color: ${props => props.hoverColor};\n }\n`;\n\nconst StyledOptionLabel = styled.label`\n display: inline-flex;\n align-items: center;\n font: normal 400 1.2rem/1.7rem ${props => props.theme.fontFamily};\n color: #696e7b;\n margin: 0.6rem 0;\n > * {\n margin: 0 1.2rem 0 0;\n }\n cursor: pointer;\n`;\n\ntype Props = {\n text: React.ReactNode;\n optionChecked: boolean;\n onChange: () => void;\n allocationOn: boolean;\n count: AllocVal;\n updateCell: (v: AllocationValue) => void;\n requiredCompletes: number;\n quotaCell: QuotaCellInput;\n quotaGroupInput: QuotaGroupInput;\n updateGroup: (g: QuotaGroupInput) => void;\n attributeCount: number;\n lineItemState: LineItemState;\n attributes: AttributeMap;\n hoverColor: string;\n fillColor: string;\n filterIsExclude: boolean;\n showAllocationError: boolean;\n calculatedNestingListHeight: string;\n shouldUpdateAllocRowVal: boolean;\n toggleUpdateAllocRowVal: (b: boolean) => void;\n};\n\nconst AttributeOptionList = ({\n text,\n optionChecked,\n onChange,\n allocationOn,\n count,\n updateCell,\n requiredCompletes,\n quotaCell,\n quotaGroupInput,\n updateGroup,\n attributeCount,\n lineItemState,\n attributes,\n hoverColor,\n fillColor,\n filterIsExclude,\n showAllocationError,\n calculatedNestingListHeight,\n shouldUpdateAllocRowVal,\n toggleUpdateAllocRowVal\n}: Props) => {\n const checkbox =\n !allocationOn && filterIsExclude ? (\n \n ) : (\n \n );\n\n return (\n \n \n \n {checkbox}\n {text}\n \n \n {allocationOn && optionChecked ? (\n \n \n \n ) : null}\n \n );\n};\n\nexport default AttributeOptionList;\n","import { useState } from \"react\";\nimport hash from \"object-hash\";\nimport {\n EditMode,\n AllocationValue,\n EDIT_MODE_FILTER,\n FILTER_TYPE_INCLUDE,\n groupFromFilter,\n groupFromOptionsAndGroup,\n flattenAllocation,\n parseAllocations,\n getPerc\n} from \"../../quotaHelpers\";\nimport {\n QuotaGroupInput,\n AttributeOptionMap,\n Attribute,\n QuotaCellInput,\n OperatorType\n} from \"../../types\";\n\nexport const getSelectedOptions = (oList: OptionCheck) =>\n Object.keys(oList).filter(k => oList[k]);\n\nexport const getQuotaGroupInputWithAllocations = (\n map: Map,\n quotaCells: Array,\n name: string\n) => {\n const parsedMap = parseAllocations(map);\n const nextCells = quotaCells.map(c => {\n const allocationValue = parsedMap.get(hash(c.quotaNodes[0].options));\n return {\n ...c,\n count: (allocationValue && allocationValue.count) || 0,\n perc: (allocationValue && allocationValue.perc) || 0\n };\n });\n const nextGroup: QuotaGroupInput = {\n quotaCells: nextCells,\n name\n };\n return nextGroup;\n};\n\nconst mapAllocations = (\n draft: boolean,\n cells: Array,\n evenly: boolean,\n requiredCompletes: number\n): Map => {\n let cellsToMap = cells;\n if (evenly) {\n cellsToMap = flattenAllocation(cells, requiredCompletes);\n }\n\n return new Map(\n cellsToMap.map(c => [\n hash(c.quotaNodes[0].options),\n {\n count: draft ? \"\" : c.count,\n perc: draft ? \"\" : getPerc(c.count, requiredCompletes)\n }\n ])\n );\n};\n\nexport const getCurrQuotaGroup = (\n attribute: Attribute,\n quotaGroupInput: QuotaGroupInput,\n selectedOptions: string[],\n requiredCompletes: number\n) =>\n quotaGroupInput.quotaCells.length\n ? groupFromOptionsAndGroup(\n attribute.id,\n selectedOptions,\n quotaGroupInput,\n requiredCompletes\n )\n : groupFromFilter(\n {\n attributeId: attribute.id,\n options: selectedOptions\n },\n requiredCompletes,\n quotaGroupInput.name\n );\n\nconst unGroupOptions = (\n attribute: Attribute,\n quotaGroupInput: QuotaGroupInput,\n nodeOptions: string[],\n requiredCompletes: number\n): QuotaGroupInput => {\n const quotaCellsWithoutOptions = quotaGroupInput.quotaCells.filter(\n c => c.quotaNodes[0].options !== nodeOptions\n );\n const groupWithoutOptions = {\n name: quotaGroupInput.name,\n quotaCells: quotaCellsWithoutOptions\n };\n\n const groupWithSegregateOptions = groupFromFilter(\n {\n attributeId: attribute.id,\n options: nodeOptions\n },\n requiredCompletes,\n quotaGroupInput.name\n );\n\n return { ...groupWithoutOptions, ...groupWithSegregateOptions };\n};\n\nconst updateQuotaGroupInput = (\n prevGroup: QuotaGroupInput,\n allocationMap: Map\n): QuotaGroupInput => {\n const newQuotaCells = prevGroup.quotaCells.map(c => {\n const allocationMapKey = hash(c.quotaNodes[0].options);\n const allocationValue = allocationMap.get(allocationMapKey);\n const perc = (allocationValue && allocationValue.perc) || 0;\n const count = (allocationValue && allocationValue.count) || 0;\n return { ...c, perc, count };\n });\n return { ...prevGroup, quotaCells: newQuotaCells };\n};\n\ntype OptionCheck = {\n [id: string]: boolean;\n};\n\ntype AttributeEditState = {\n optionsCheckList: OptionCheck;\n search: string;\n showSelectedOptions: boolean;\n editMode: EditMode;\n allocationMap: Map;\n filterType: OperatorType;\n quotaGroupInput: QuotaGroupInput;\n};\n\nconst initialState = (\n draft: boolean,\n options: AttributeOptionMap,\n initialSelectedOptions: string[],\n initialQuotaGroupInput: QuotaGroupInput,\n editMode: EditMode,\n filterType: OperatorType,\n requiredCompletes: number\n): AttributeEditState => {\n const nonNullOptionKeys = Object.keys(options) || [];\n\n let initialOptionsMap: { [key: string]: boolean } = {};\n initialSelectedOptions.forEach(option => (initialOptionsMap[option] = true));\n\n let optionsCheckList: { [key: string]: boolean } = {};\n for (let i = 0; i < nonNullOptionKeys.length; i++) {\n const key = nonNullOptionKeys[i].toString();\n optionsCheckList[key] = initialOptionsMap[key];\n }\n\n const allocationMap = mapAllocations(\n draft,\n initialQuotaGroupInput.quotaCells,\n false,\n requiredCompletes\n );\n\n return {\n optionsCheckList: optionsCheckList,\n search: \"\",\n showSelectedOptions: false,\n editMode: editMode || EDIT_MODE_FILTER,\n allocationMap: allocationMap,\n filterType: filterType || FILTER_TYPE_INCLUDE,\n quotaGroupInput: initialQuotaGroupInput\n };\n};\n\ntype Props = {\n attribute: Attribute;\n draft: boolean;\n options: AttributeOptionMap;\n initialSelectedOptions: string[];\n initialQuotaGroupInput: QuotaGroupInput;\n initialEditMode: EditMode;\n initialOperatorType: OperatorType;\n requiredCompletes: number;\n};\n\nconst useAttributeEdit = ({\n attribute,\n draft,\n options,\n initialSelectedOptions,\n initialQuotaGroupInput,\n initialEditMode,\n initialOperatorType,\n requiredCompletes\n}: Props) => {\n const [state, setState] = useState(\n initialState(\n draft,\n options,\n initialSelectedOptions,\n initialQuotaGroupInput,\n initialEditMode,\n initialOperatorType,\n requiredCompletes\n )\n );\n const [showAllocationErrors, setShowAllocationErrors] = useState(\n false\n );\n const [shouldUpdateAllocRowVal, setShouldUpdateAllocRowVal] = useState(false);\n\n const toggleUpdateAllocRowVal = (b: boolean) => setShouldUpdateAllocRowVal(b);\n\n const toggleEditMode = (editMode: EditMode) => {\n setState(prevState => {\n return {\n ...prevState,\n editMode: editMode\n };\n });\n };\n\n const toggleOption = (\n optionId: string,\n allocationMapKey: string,\n nodeOptions: string[]\n ) => {\n const { optionsCheckList, quotaGroupInput, allocationMap } = state;\n const optionCheck = !optionsCheckList[optionId];\n\n const newQuotaGroupInput =\n !optionCheck && nodeOptions.length > 1\n ? unGroupOptions(\n attribute,\n quotaGroupInput,\n nodeOptions,\n requiredCompletes\n )\n : quotaGroupInput;\n\n const newAllocationMap = new Map(allocationMap);\n if (optionCheck) {\n newAllocationMap.set(allocationMapKey, { count: \"\", perc: \"\" });\n } else {\n newAllocationMap.delete(allocationMapKey);\n }\n\n setState(prevState => {\n return {\n ...prevState,\n optionsCheckList: {\n ...optionsCheckList,\n [optionId]: optionCheck\n },\n quotaGroupInput: newQuotaGroupInput,\n allocationMap: newAllocationMap\n };\n });\n };\n\n const handleSearch = (e: React.FormEvent) => {\n const { value } = e.currentTarget;\n setState(prevState => {\n return { ...prevState, search: value };\n });\n };\n\n const clearSearch = () => {\n setState(prevState => {\n return { ...prevState, search: \"\" };\n });\n };\n\n const toggleAll = (filteredOptions: string[]) => {\n // filteredOptions is an array of ids matching filtered state.optionsCheckList\n const { optionsCheckList, quotaGroupInput } = state;\n const allSelected = filteredOptions.every(key => optionsCheckList[key]);\n\n const newOptions = {} as OptionCheck;\n filteredOptions.forEach(val => {\n newOptions[val] = !allSelected;\n });\n\n const newQuotaGroupInput = getCurrQuotaGroup(\n attribute,\n quotaGroupInput,\n filteredOptions,\n requiredCompletes\n );\n\n const allocationMap = mapAllocations(\n true,\n newQuotaGroupInput.quotaCells,\n false,\n requiredCompletes\n );\n\n setState(prevState => {\n return {\n ...prevState,\n optionsCheckList: {\n ...state.optionsCheckList,\n ...newOptions\n },\n allocationMap: allocationMap\n };\n });\n };\n\n const toggleViewSelectedOptions = () => {\n setState(prevState => {\n return {\n ...prevState,\n showSelectedOptions: !state.showSelectedOptions\n };\n });\n };\n\n const handleSplitEvenly = (\n selectedQuotaGroupInput: QuotaGroupInput,\n isRange = false\n ) => {\n const newAllocationMap = mapAllocations(\n false,\n selectedQuotaGroupInput.quotaCells,\n true,\n requiredCompletes\n );\n\n setState(prevState => {\n const { quotaGroupInput } = prevState;\n return {\n ...prevState,\n allocationMap: newAllocationMap,\n quotaGroupInput: isRange\n ? updateQuotaGroupInput(quotaGroupInput, newAllocationMap)\n : quotaGroupInput\n };\n });\n setShouldUpdateAllocRowVal(true);\n };\n\n const toggleFilterType = (filterType: OperatorType) => {\n setState(prevState => {\n return {\n ...prevState,\n filterType: filterType\n };\n });\n };\n\n const updateAllocationCell = (index: string, value: AllocationValue) => {\n setState(prevState => {\n const { allocationMap } = prevState;\n const newAllocationMap = new Map(allocationMap);\n newAllocationMap.set(index, { count: value.count, perc: value.perc });\n\n return {\n ...prevState,\n allocationMap: newAllocationMap\n };\n });\n };\n\n const deleteAllocationCell = (index: string) => {\n setState(prevState => {\n const newAllocationMap = new Map(prevState.allocationMap);\n newAllocationMap.delete(index);\n\n return {\n ...prevState,\n allocationMap: newAllocationMap\n };\n });\n };\n\n const updateGroup = (newQuotaGroupInput: QuotaGroupInput) => {\n setState(prevState => {\n return {\n ...prevState,\n quotaGroupInput: newQuotaGroupInput\n };\n });\n };\n\n const updateGroupWithAllocations = (newQuotaGroupInput: QuotaGroupInput) => {\n const newAllocationMap = mapAllocations(\n draft,\n newQuotaGroupInput.quotaCells,\n false,\n requiredCompletes\n );\n\n setState(prevState => {\n return {\n ...prevState,\n quotaGroupInput: newQuotaGroupInput,\n allocationMap: newAllocationMap\n };\n });\n };\n\n return {\n state,\n toggleEditMode,\n toggleOption,\n handleSearch,\n clearSearch,\n toggleAll,\n toggleViewSelectedOptions,\n handleSplitEvenly,\n toggleFilterType,\n updateAllocationCell,\n updateGroup,\n updateGroupWithAllocations,\n setShowAllocationErrors,\n showAllocationErrors,\n deleteAllocationCell,\n shouldUpdateAllocRowVal,\n toggleUpdateAllocRowVal\n };\n};\n\nexport default useAttributeEdit;\n","import React, { Fragment, useEffect } from \"react\";\nimport styled from \"styled-components\";\nimport Header from \"./AttributeEditHeader\";\nimport Footer from \"./AttributeEditFooter\";\nimport {\n AttributeOptionMap,\n QuotaNodeInput,\n QuotaGroupInput,\n QuotaCellInput,\n Attribute\n} from \"../../types\";\nimport {\n AttributeEditorProps,\n EDIT_MODE_ALLOCATION,\n groupAttributeIds,\n sortOptionMapKeys,\n getGroupedOptionMap,\n FILTER_TYPE_INCLUDE,\n FILTER_TYPE_EXCLUDE,\n EDIT_MODE_FILTER,\n allocExceededText,\n needMoreAllocText,\n finishFilterText,\n finishAllocText,\n selectOneFilterText\n} from \"../../quotaHelpers\";\nimport AttributeOptionList from \"./AttributeOptionList\";\nimport AttributeEditButtonGroup from \"./AttributeEditButtonGroup\";\nimport useAllocationReview from \"../../hooks/quota/useAllocationReview\";\nimport hash from \"object-hash\";\nimport Option from \"./Option\";\nimport useAttributeEdit, {\n getSelectedOptions,\n getCurrQuotaGroup,\n getQuotaGroupInputWithAllocations\n} from \"../../hooks/quota/useAttributeEdit\";\nimport AttributeEditorOuter, { StyledSeparator } from \"./AttributeEditStyles\";\nimport { MAX_COMPLETES } from \"../lineitem/Constants\";\nimport { getIncompleteAllocMsg } from \"./GridStyles\";\nimport { getSafeTextToMatch } from \"../../generalHelpers\";\n\nconst INCLUDE_HIGHLIGHT_COLOR = \"#dcf2ec\";\nconst INCLUDE_FILL_COLOR = \"#52c1a3\";\nconst EXCLUDE_HIGHLIGHT_COLOR = \"#fef0ee\";\nconst EXCLUDE_FILL_COLOR = \"#f76e5c\";\nconst ALLOC_HIGHLIGHT_COLOR = \"#ebf6fb\";\nconst ALLOC_FILL_COLOR = \"#3ea8dd\";\n\ntype CustomProps = {\n maxHeight: string;\n} & React.HTMLProps;\n\nconst CustomDiv = ({ maxHeight, ...rest }: CustomProps) => {\n return
;\n};\n\nconst OptionsList = styled(CustomDiv)`\n height: 100%;\n min-height: 25rem;\n max-height: ${props => props.maxHeight};\n min-width: 54rem;\n overflow-y: scroll;\n overflow-x: hidden;\n`;\n\nconst findMatches = (wordToMatch: string, options: AttributeOptionMap) => {\n const optionKeys = Object.keys(options) || [];\n const safeWordToMatch = getSafeTextToMatch(wordToMatch);\n\n return optionKeys.filter(key => {\n const regex = new RegExp(safeWordToMatch, \"gi\");\n return options[key].text.match(regex);\n });\n};\n\nconst findSelectedMatches = (\n wordToMatch: string,\n options: AttributeOptionMap,\n selectedOptions: string[]\n) => {\n const safeWordToMatch = getSafeTextToMatch(wordToMatch);\n\n return selectedOptions.filter(key => {\n const regex = new RegExp(safeWordToMatch, \"gi\");\n return options[key].text.match(regex);\n });\n};\n\nconst getCurrentSortedList = (\n maybeGroupedOptions: Map,\n currSortedOptionList: string[]\n): string[] => {\n let sortedAllOptionsMap = new Map();\n currSortedOptionList.forEach(o => sortedAllOptionsMap.set(o, true));\n\n maybeGroupedOptions.forEach(k => {\n k.forEach((o, i) => {\n if (i !== 0) {\n sortedAllOptionsMap.set(o, false);\n }\n });\n });\n\n let sortedList = new Array(0);\n currSortedOptionList.forEach(o => {\n if (sortedAllOptionsMap.get(o)) {\n sortedList.push(o);\n }\n });\n\n return sortedList;\n};\n\nconst Or = styled.span.attrs({ children: \" or \" })`\n font-weight: 600;\n color: #696e7b;\n margin: 0 0.4rem;\n`;\n\nconst getGroupedOptionText = (\n optionMap: AttributeOptionMap,\n optionKeys: string[],\n attribute: Attribute\n) => {\n const sortedOptionKeys = sortOptionMapKeys(optionMap, optionKeys);\n return (\n \n {sortedOptionKeys.map((o, idx) => (\n \n \n {idx === sortedOptionKeys.length - 1 ? null : }\n \n ))}\n \n );\n};\n\nconst AttributeOptionEditor = ({\n draft,\n attribute,\n onCancel,\n onSave,\n options,\n initialSelectedOptions = [],\n initialOperatorType,\n initialQuotaGroupInput,\n requiredCompletes,\n lineItemState,\n attributeMap,\n editMode,\n calculatedListHeight,\n calculatedNestingListHeight\n}: AttributeEditorProps) => {\n const allocationAllowed = attribute.isAllowedInQuotas;\n const filterAllowed = attribute.isAllowedInFilters;\n\n if (editMode === EDIT_MODE_FILTER && !filterAllowed && !allocationAllowed) {\n throw new Error(\"attribute does not allow edit as filter OR allocation!\");\n }\n\n const {\n state,\n toggleEditMode,\n toggleOption,\n handleSearch,\n clearSearch,\n toggleAll,\n toggleViewSelectedOptions,\n handleSplitEvenly,\n toggleFilterType,\n updateAllocationCell,\n updateGroupWithAllocations,\n setShowAllocationErrors,\n showAllocationErrors,\n shouldUpdateAllocRowVal,\n toggleUpdateAllocRowVal\n } = useAttributeEdit({\n attribute,\n draft,\n options,\n initialSelectedOptions,\n initialQuotaGroupInput,\n initialEditMode: editMode,\n initialOperatorType,\n requiredCompletes\n });\n\n const toggleVals = state.optionsCheckList;\n const allocationOn = state.editMode === EDIT_MODE_ALLOCATION;\n const filterOn = state.editMode === EDIT_MODE_FILTER;\n const filterIsInclude = state.filterType === FILTER_TYPE_INCLUDE;\n const filterIsExclude = state.filterType === FILTER_TYPE_EXCLUDE;\n const filteredOptions = findMatches(state.search, options);\n const toggleAllValue = filteredOptions.every(key => toggleVals[key]);\n const selectedOptions = getSelectedOptions(state.optionsCheckList);\n const selectedFilteredOptions = findSelectedMatches(\n state.search,\n options,\n selectedOptions\n );\n const currOptionList = state.showSelectedOptions\n ? state.search !== \"\"\n ? selectedFilteredOptions\n : selectedOptions\n : filteredOptions;\n\n const currSortedUnGroupedOptionList = sortOptionMapKeys(\n options,\n currOptionList\n );\n\n const selectedQuotaGroupInput = getCurrQuotaGroup(\n attribute,\n state.quotaGroupInput,\n selectedOptions,\n requiredCompletes\n );\n\n const groupAttrIds = groupAttributeIds(selectedQuotaGroupInput);\n\n const nonNullGroupedOptionMap: Map =\n allocationOn && selectedQuotaGroupInput\n ? getGroupedOptionMap(selectedQuotaGroupInput.quotaCells)\n : new Map();\n\n const currList =\n allocationOn && nonNullGroupedOptionMap\n ? getCurrentSortedList(\n nonNullGroupedOptionMap,\n currSortedUnGroupedOptionList\n )\n : currSortedUnGroupedOptionList;\n\n const hoverColor = allocationOn\n ? ALLOC_HIGHLIGHT_COLOR\n : filterIsInclude\n ? INCLUDE_HIGHLIGHT_COLOR\n : EXCLUDE_HIGHLIGHT_COLOR;\n\n const fillColor = allocationOn\n ? ALLOC_FILL_COLOR\n : filterIsInclude\n ? INCLUDE_FILL_COLOR\n : EXCLUDE_FILL_COLOR;\n\n const optionList = currList.map((key, i) => {\n const o = options[key];\n const quotaNodeOptions = nonNullGroupedOptionMap.get(key) || new Array(key);\n const text =\n allocationOn && nonNullGroupedOptionMap.has(key) ? (\n getGroupedOptionText(options, quotaNodeOptions, attribute)\n ) : (\n {o.text}\n );\n const quotaNodeInput: QuotaNodeInput = {\n attributeId: attribute.id,\n options: quotaNodeOptions\n };\n const allocationMapKey = hash(quotaNodeOptions);\n const allocationValue = state.allocationMap.get(allocationMapKey);\n const quotaCellCount = (allocationValue && allocationValue.count) || \"\";\n const quotaCellPerc = (allocationValue && allocationValue.perc) || \"\";\n const quotaCell: QuotaCellInput = {\n count: quotaCellCount === \"\" ? 0 : quotaCellCount,\n quotaNodes: [quotaNodeInput],\n perc: quotaCellPerc === \"\" ? 0 : quotaCellPerc\n };\n\n return (\n toggleOption(o.id, allocationMapKey, quotaNodeOptions)}\n text={text}\n allocationOn={allocationOn}\n quotaCell={quotaCell}\n quotaGroupInput={selectedQuotaGroupInput}\n count={quotaCellCount}\n updateCell={v => updateAllocationCell(allocationMapKey, v)}\n updateGroup={updateGroupWithAllocations}\n requiredCompletes={requiredCompletes}\n attributeCount={groupAttrIds.length}\n lineItemState={lineItemState}\n attributes={attributeMap}\n hoverColor={hoverColor}\n fillColor={fillColor}\n filterIsExclude={filterIsExclude}\n showAllocationError={showAllocationErrors}\n calculatedNestingListHeight={calculatedNestingListHeight}\n shouldUpdateAllocRowVal={shouldUpdateAllocRowVal}\n toggleUpdateAllocRowVal={toggleUpdateAllocRowVal}\n />\n );\n });\n\n const {\n totalPerc,\n totalCount,\n remainingCount,\n imperative\n } = useAllocationReview({\n allocationMap: state.allocationMap,\n requiredCompletes\n });\n\n useEffect(() => {\n if (remainingCount === 0) {\n setShowAllocationErrors(false);\n }\n }, [remainingCount, setShowAllocationErrors]);\n\n const selectedQuotaGroupWithAlloc: QuotaGroupInput = allocationOn\n ? getQuotaGroupInputWithAllocations(\n state.allocationMap,\n selectedQuotaGroupInput.quotaCells,\n selectedQuotaGroupInput.name\n )\n : {\n name: \"\",\n quotaCells: []\n };\n\n const isAllocationIncomplete = remainingCount !== 0;\n const isSelectedAllocationOptionsLess =\n allocationOn && selectedQuotaGroupWithAlloc.quotaCells.length <= 1;\n const isSelectedFilterOptionsLess =\n filterOn && selectedFilteredOptions.length < 1;\n const saveDisabled =\n (allocationOn &&\n (isAllocationIncomplete || isSelectedAllocationOptionsLess)) ||\n (filterOn && isSelectedFilterOptionsLess);\n\n const onSaveClick = () => {\n onSave({\n asAllocation: allocationOn,\n quotaFilterInput: {\n attributeId: attribute.id,\n operator: state.filterType,\n options: selectedOptions\n },\n quotaGroupInput: selectedQuotaGroupWithAlloc\n });\n onCancel();\n };\n\n const disabledMessage =\n isSelectedAllocationOptionsLess || isSelectedFilterOptionsLess\n ? (allocationOn && needMoreAllocText) || (filterOn && finishFilterText)\n : totalCount > MAX_COMPLETES\n ? allocExceededText\n : isAllocationIncomplete\n ? getIncompleteAllocMsg(imperative, remainingCount)\n : \"\";\n\n const showAllocationError =\n (allocationOn && isAllocationIncomplete && showAllocationErrors) ||\n (filterOn && isSelectedFilterOptionsLess);\n\n const errorMsg = allocationOn ? finishAllocText : selectOneFilterText;\n\n return (\n \n toggleAll(filteredOptions)}\n toggleAllValue={toggleAllValue}\n handleSearch={handleSearch}\n value={state.search}\n clearSearch={clearSearch}\n allocationAllowed={allocationAllowed}\n filterAllowed={filterAllowed}\n editMode={state.editMode}\n toggleEditMode={toggleEditMode}\n showSplitEvenly={!isSelectedAllocationOptionsLess}\n onSplitEvenlyClick={() => handleSplitEvenly(selectedQuotaGroupInput)}\n filterType={state.filterType}\n toggleFilterType={toggleFilterType}\n allowSearch={true}\n allowSelectAll={true}\n />\n\n {optionList}\n\n \n\n \n\n \n \n );\n};\n\nexport default AttributeOptionEditor;\n","import { useEffect, useState } from \"react\";\nimport sortBy from \"lodash/sortBy\";\nimport orderBy from \"lodash/orderBy\";\nimport {\n Attribute,\n QuotaCellInput,\n QuotaGroupInput,\n QuotaNodeInput\n} from \"../../types\";\nimport {\n AllocationValue,\n EDIT_MODE_ALLOCATION,\n EditMode\n} from \"../../quotaHelpers\";\nimport hash from \"object-hash\";\n\nexport type Range = {\n min: string;\n max: string;\n};\n\nconst parseRangeStrings = (rangeStrings: string[]): Range[] =>\n rangeStrings.map(s => {\n const match = s.match(/(\\d+)-(\\d+)/);\n const min = match ? match[1] : \"\";\n const max = match ? match[2] : \"\";\n return { min, max };\n });\n\nconst stringifyRanges = (ranges: Range[][]) =>\n ranges.map(r => r.map(({ min, max }) => `${min}-${max}`));\n\nconst rangeProper = (value: Range, index: number, array: Range[]) => {\n const { min, max } = value;\n const minInt = parseInt(min, 10);\n const maxInt = parseInt(max, 10);\n if (isNaN(minInt)) return false;\n if (isNaN(maxInt)) return false;\n return minInt <= maxInt;\n};\n\nconst rangesProper = (ranges: Range[]) => ranges.every(rangeProper);\n\nconst rangesOverlap = (ranges: Range[]) => {\n const sortedRanges = sortBy(ranges, r => parseInt(r.min, 10));\n return sortedRanges.some((r, i) =>\n i === 0\n ? false\n : parseInt(r.min, 10) <= parseInt(sortedRanges[i - 1].max, 10)\n );\n};\n\nconst rangesMatch = (ranges: Range[], format: string) => {\n const regex = RegExp(format);\n return ranges.every(r => {\n const rn = r.min + \"-\" + r.max;\n return regex.test(rn);\n });\n};\n\nconst findQuotaNode = (quotaNodes: QuotaNodeInput[], attributeId: string) =>\n quotaNodes.find(n => n.attributeId === attributeId);\n\nconst validateRanges = (singleRanges: Range[], attribute: Attribute): boolean =>\n rangesProper(singleRanges) &&\n !rangesOverlap(singleRanges) &&\n rangesMatch(singleRanges, attribute.format);\n\nconst getDisabledMessage = (singleRanges: Range[], format: string) =>\n !rangesProper(singleRanges) || !rangesMatch(singleRanges, format)\n ? \"Invalid value(s)!\"\n : \"The ranges are overlapping!\";\n\nexport const getOptionFromRangeArray = (rangeArray: Range[]) =>\n rangeArray.map(({ min, max }) => `${min}-${max}`);\n\nconst findPrevCellCount = (\n allocationMap: Map,\n quotaCells: Array,\n option: Array,\n i: number\n): number => {\n const allocationKey = hash(option);\n const allocatedCount = allocationMap.get(allocationKey);\n if (allocatedCount) {\n return allocatedCount.count || 0;\n }\n if (quotaCells[i]) {\n return quotaCells[i].count;\n }\n return 0;\n};\n\nconst groupFromRangesAndGroup = (\n allocationMap: Map,\n attributeId: string,\n rangeArrays: Range[][],\n quotaGroupInput: QuotaGroupInput\n): QuotaGroupInput => {\n const prevCells = quotaGroupInput.quotaCells;\n const updatedQuotaCells = rangeArrays.map((rangeArray, i) => {\n const options = getOptionFromRangeArray(rangeArray);\n return {\n quotaNodes: [\n {\n attributeId,\n options\n }\n ],\n count: findPrevCellCount(allocationMap, prevCells, options, i),\n perc: 0\n };\n });\n\n return {\n name: quotaGroupInput.name,\n quotaCells: updatedQuotaCells\n };\n};\n\nconst sortQuotaCells = (attribute: Attribute, quotaCells: QuotaCellInput[]) => {\n const cellText = (cell: QuotaCellInput) => {\n if (!attribute) return \"\";\n const foundNode = findQuotaNode(cell.quotaNodes, attribute.id);\n if (!foundNode || !foundNode.options || !foundNode.options[0]) return \"\";\n return foundNode.options[0];\n };\n return orderBy(quotaCells, cellText, \"asc\");\n};\n\nconst getSingleRangesArray = (ranges: Range[][]): Range[] =>\n ranges.reduce((acc, val) => acc.concat(val), []);\n\nconst getInitialRanges = (\n attribute: Attribute,\n initialOptions: string[],\n quotaGroupInput: QuotaGroupInput\n) => {\n if (initialOptions.length && !quotaGroupInput.quotaCells.length) {\n return [parseRangeStrings(initialOptions)];\n }\n const sortedCells = sortQuotaCells(attribute, quotaGroupInput.quotaCells);\n const options = sortedCells.map(c => {\n const foundNode = findQuotaNode(c.quotaNodes, attribute.id);\n return foundNode ? foundNode.options : [];\n });\n return options.length\n ? options.map(o => parseRangeStrings(o))\n : [[{ min: \"\", max: \"\" }]];\n};\n\ntype StateProps = {\n ranges: Range[][];\n};\n\ntype Props = {\n allocationMap: Map;\n attribute: Attribute;\n initialOptions: string[];\n quotaGroupInput: QuotaGroupInput;\n updateGroup: (g: QuotaGroupInput) => void;\n toggleEditMode: (editMode: EditMode) => void;\n updateAllocationCell: (index: string, value: AllocationValue) => void;\n deleteAllocationCell: (index: string) => void;\n toggleUpdateAllocRowVal: (b: boolean) => void;\n};\n\nconst useAttributeRange = ({\n allocationMap,\n attribute,\n initialOptions,\n quotaGroupInput,\n updateGroup,\n toggleEditMode,\n updateAllocationCell,\n deleteAllocationCell,\n toggleUpdateAllocRowVal\n}: Props) => {\n const [state, setState] = useState({\n ranges: getInitialRanges(attribute, initialOptions, quotaGroupInput)\n });\n const [rangeGroupingChange, setRangeGroupingChange] = useState(\n false\n );\n const { ranges } = state;\n const singleRangesArray = getSingleRangesArray(ranges);\n\n useEffect(() => {\n if (rangeGroupingChange) {\n setState({\n ranges: getInitialRanges(attribute, initialOptions, quotaGroupInput)\n });\n setRangeGroupingChange(false);\n }\n }, [attribute, initialOptions, quotaGroupInput, rangeGroupingChange]);\n\n const toggleRangeGroupingChange = () =>\n setRangeGroupingChange(!rangeGroupingChange);\n\n const setValue = (\n arrayIndex: number,\n index: number,\n type: string,\n value: string\n ) => {\n setState(prevState => {\n const { ranges } = prevState;\n const prevRangeArray = ranges[arrayIndex];\n const prevQuotaNodeOptions = getOptionFromRangeArray(prevRangeArray);\n const prevAllocationMapKey = hash(prevQuotaNodeOptions);\n const allocationValue = allocationMap.get(prevAllocationMapKey);\n const prevAllocationCount =\n (allocationValue && allocationValue.count) || \"\";\n const prevAllocationPerc =\n (allocationValue && allocationValue.perc) || \"\";\n deleteAllocationCell(prevAllocationMapKey);\n\n const newRange = { ...prevRangeArray[index], [type]: value };\n const newRangeArray = [\n ...prevRangeArray.slice(0, index),\n newRange,\n ...prevRangeArray.slice(index + 1, prevRangeArray.length)\n ];\n const newQuotaNodeOptions = newRangeArray.map(r => `${r.min}-${r.max}`);\n const newAllocationMapKey = hash(newQuotaNodeOptions);\n updateAllocationCell(newAllocationMapKey, {\n count: prevAllocationCount,\n perc: prevAllocationPerc\n });\n\n const newRanges = [\n ...ranges.slice(0, arrayIndex),\n newRangeArray,\n ...ranges.slice(arrayIndex + 1, ranges.length)\n ];\n\n const newGroupInput = groupFromRangesAndGroup(\n allocationMap,\n attribute.id,\n newRanges,\n quotaGroupInput\n );\n updateGroup(newGroupInput);\n toggleUpdateAllocRowVal(true);\n\n return {\n ranges: newRanges\n };\n });\n };\n\n const removeRange = (arrayIndex: number, index: number) => {\n return setState(prevState => {\n const { ranges } = prevState;\n const prevRangeArray = ranges[arrayIndex];\n const prevQuotaNodeOptions = prevRangeArray.map(r => `${r.min}-${r.max}`);\n const prevAllocationMapKey = hash(prevQuotaNodeOptions);\n\n const newRange = [\n ...prevRangeArray.slice(0, index),\n ...prevRangeArray.slice(index + 1, prevRangeArray.length)\n ];\n const newRanges = newRange.length\n ? [\n ...ranges.slice(0, arrayIndex),\n newRange,\n ...ranges.slice(arrayIndex + 1, ranges.length)\n ]\n : [\n ...ranges.slice(0, arrayIndex),\n ...ranges.slice(arrayIndex + 1, ranges.length)\n ];\n\n const newGroupInput = groupFromRangesAndGroup(\n allocationMap,\n attribute.id,\n newRanges,\n quotaGroupInput\n );\n updateGroup(newGroupInput);\n\n deleteAllocationCell(prevAllocationMapKey);\n toggleUpdateAllocRowVal(true);\n\n return {\n ranges: newRanges\n };\n });\n };\n\n const addRange = (after: number) => {\n return setState(prevState => {\n const { ranges } = prevState;\n const newRanges = [\n ...ranges.slice(0, after + 1),\n [{ min: \"\", max: \"\" }],\n ...ranges.slice(after + 1, ranges.length)\n ];\n\n if (newRanges.length >= 2) {\n toggleEditMode(EDIT_MODE_ALLOCATION);\n }\n\n const newGroupInput = groupFromRangesAndGroup(\n allocationMap,\n attribute.id,\n newRanges,\n quotaGroupInput\n );\n updateGroup(newGroupInput);\n toggleUpdateAllocRowVal(true);\n\n return {\n ranges: newRanges\n };\n });\n };\n\n const getUpdatedRanges = () => stringifyRanges(ranges);\n\n const rangesValid = validateRanges(singleRangesArray, attribute);\n\n const disabledMessage = getDisabledMessage(\n singleRangesArray,\n attribute.format\n );\n\n return {\n ranges,\n setValue,\n removeRange,\n addRange,\n getUpdatedRanges,\n toggleRangeGroupingChange,\n rangesValid,\n disabledMessage\n };\n};\n\nexport default useAttributeRange;\n","import React from \"react\";\nimport styled, { StyledComponentProps } from \"styled-components\";\nimport { icons, TextInput } from \"samplify-design\";\nimport DeleteIcon from \"../../art/iconDelete.svg\";\nimport IconButton from \"../IconButton\";\nimport { Range } from \"../../hooks/quota/useAttributeRange\";\n\nconst { Add } = icons;\n\ntype CustomTextInputProps = {\n highlightBorder: boolean;\n currValue: string;\n} & StyledComponentProps<\n any,\n any,\n object & {\n type: string;\n },\n string | number | symbol\n>;\n\nconst CustomTextInput = ({\n highlightBorder,\n currValue,\n ...rest\n}: CustomTextInputProps) => ;\n\nconst StyledTextInput = styled(CustomTextInput)`\n box-sizing: border-box;\n height: 2.4rem;\n width: 6rem;\n text-align: center;\n margin: 0;\n border-color: ${props =>\n props.highlightBorder && props.currValue === \"\" ? \"#f76e5c\" : \"#dddddd\"};\n`;\n\nconst RangeRowOuter = styled.div`\n display: flex;\n align-items: center;\n :not(:last-child) {\n margin: 0 -0.5rem 1rem;\n }\n > * {\n margin: 0.4rem 0.5rem;\n }\n`;\n\nconst StyledIconButton = styled(IconButton)`\n height: auto;\n width: 2rem;\n`;\n\nconst StyledAddIconButton = styled(StyledIconButton)`\n > svg {\n fill: #3ea8dd;\n }\n :disabled {\n cursor: not-allowed;\n > svg {\n fill: #b0b3bc;\n }\n }\n`;\n\nconst StyledDeleteIcon = styled.img`\n height: 20px;\n`;\n\ntype AttributeRangeRowProps = {\n addDisabled: boolean;\n arrayIndex: number;\n range: Range;\n index: number;\n deleteDisabled: boolean;\n setValue: (\n arrayIndex: number,\n i: number,\n type: string,\n value: string\n ) => void;\n addRange: (i: number) => void;\n removeRange: (arrayIndex: number, i: number) => void;\n highlightErrorRanges: boolean;\n minInput: number;\n maxInput: number;\n};\n\nconst AttributeRangeRow = ({\n addDisabled,\n arrayIndex,\n range,\n setValue,\n index,\n addRange,\n removeRange,\n deleteDisabled,\n highlightErrorRanges,\n minInput,\n maxInput\n}: AttributeRangeRowProps) => {\n const handleMinBlur = (e: React.FormEvent) => {\n const min = parseFloat(e.currentTarget.value);\n if (min < minInput || min > maxInput) {\n setValue(arrayIndex, index, \"min\", minInput.toString());\n }\n };\n const handleMaxBlur = (e: React.FormEvent) => {\n const max = parseFloat(e.currentTarget.value);\n if (max < minInput || max > maxInput) {\n setValue(arrayIndex, index, \"max\", maxInput.toString());\n }\n };\n\n return (\n \n ) =>\n setValue(arrayIndex, index, \"min\", e.currentTarget.value)\n }\n min={minInput.toString()}\n max={maxInput.toString()}\n onBlur={handleMinBlur}\n highlightBorder={highlightErrorRanges}\n />\n {\" - \"}\n ) =>\n setValue(arrayIndex, index, \"max\", e.currentTarget.value)\n }\n min={minInput.toString()}\n max={maxInput.toString()}\n onBlur={handleMaxBlur}\n highlightBorder={highlightErrorRanges}\n />\n addRange(arrayIndex)}\n >\n \n \n removeRange(arrayIndex, index)}\n >\n \n \n \n );\n};\n\nexport default AttributeRangeRow;\n","import React, { useEffect, useState } from \"react\";\nimport styled from \"styled-components\";\nimport {\n AttributeEditorProps,\n EDIT_MODE_ALLOCATION,\n AllocationValue,\n finishAllocText,\n selectOneFilterText,\n AllocVal\n} from \"../../quotaHelpers\";\nimport AttributeEditButtonGroup from \"./AttributeEditButtonGroup\";\nimport AttributeEditorOuter, { StyledSeparator } from \"./AttributeEditStyles\";\nimport Header from \"./AttributeEditHeader\";\nimport Footer from \"./AttributeEditFooter\";\nimport useAttributeEdit, {\n getQuotaGroupInputWithAllocations\n} from \"../../hooks/quota/useAttributeEdit\";\nimport useAttributeRange, {\n Range,\n getOptionFromRangeArray\n} from \"../../hooks/quota/useAttributeRange\";\nimport { StyledGrid, Flex } from \"./AttributeEditStyles\";\nimport AllocationRow from \"./AllocationRow\";\nimport { QuotaCellInput, QuotaNodeInput } from \"../../types\";\nimport hash from \"object-hash\";\nimport useAllocationReview from \"../../hooks/quota/useAllocationReview\";\nimport RangeRow from \"./AttributeRangeRow\";\n\nconst MIN_VAL = 13;\nconst MAX_VAL = 99;\n\nconst AGE_ALLOCATION_WARNING =\n \"To turn off Allocation, you need to have only one age range. Delete the remaining age ranges to set as Filter\";\n\nconst Index = styled.div`\n align-items: center;\n display: flex;\n justify-content: center;\n margin-right: 0.8rem;\n > span {\n color: #9599a4;\n }\n`;\n\ntype CustomProps = {\n maxHeight: string;\n} & React.HTMLProps;\n\nconst CustomDiv = ({ maxHeight, ...rest }: CustomProps) => {\n return
;\n};\n\nconst StyledRangeList = styled(CustomDiv)`\n min-height: 25rem;\n max-height: ${props => props.maxHeight};\n overflow-y: scroll;\n`;\n\nconst StyledGroupGrid = styled(StyledGrid)`\n display: grid;\n max-height: inherit;\n margin-top: 1rem;\n &:first-child {\n margin-top: 0;\n }\n`;\n\nconst StyledRangeGrid = styled.div`\n display: grid;\n grid-template-columns: 2rem auto;\n`;\n\nconst StyledFlex = styled(Flex)`\n flex-wrap: wrap;\n height: fit-content;\n`;\n\nconst getMinRangeInput = (regex: RegExp): number => {\n let min = MIN_VAL;\n let rnToTest = min.toString() + \"-\" + (min + 1).toString();\n while (!regex.test(rnToTest)) {\n min = min + 1;\n if (min > MAX_VAL) {\n return 0;\n }\n rnToTest = min.toString() + \"-\" + (min + 1).toString();\n }\n return min;\n};\n\nconst getMaxRangeInput = (regex: RegExp): number => {\n let max = MAX_VAL;\n let rnToTest = (max - 1).toString() + \"-\" + max.toString();\n while (!regex.test(rnToTest)) {\n max = max - 1;\n if (max < MIN_VAL) {\n return 0;\n }\n rnToTest = (max - 1).toString() + \"-\" + max.toString();\n }\n return max;\n};\n\nconst getCountFromMapViaIndex = (\n allocationMap: Map,\n index: number\n): AllocVal => {\n const key = Array.from(allocationMap.keys())[index];\n const allocationValue = allocationMap.get(key);\n return (allocationValue && allocationValue.count) || \"\";\n};\n\nconst getSingleArray = (arr: string[][]): string[] =>\n arr.reduce((acc, val) => acc.concat(val), []);\n\nconst AttributeRangeEditor = ({\n draft,\n options,\n initialSelectedOptions,\n initialQuotaGroupInput,\n editMode,\n onCancel,\n onSave,\n attribute,\n initialOperatorType,\n attributeMap,\n lineItemState,\n requiredCompletes,\n calculatedListHeight,\n calculatedNestingListHeight\n}: AttributeEditorProps) => {\n const allocationAllowed = attribute.isAllowedInQuotas;\n const filterAllowed = attribute.isAllowedInFilters;\n const regex = RegExp(attribute.format);\n\n const minInput = getMinRangeInput(regex);\n const maxInput = getMaxRangeInput(regex);\n\n const {\n state: attributeEditState,\n toggleEditMode,\n handleSplitEvenly,\n toggleFilterType,\n updateAllocationCell,\n updateGroup,\n updateGroupWithAllocations,\n setShowAllocationErrors,\n showAllocationErrors,\n deleteAllocationCell,\n toggleUpdateAllocRowVal,\n shouldUpdateAllocRowVal\n } = useAttributeEdit({\n attribute,\n draft,\n options,\n initialSelectedOptions,\n initialQuotaGroupInput,\n initialEditMode: editMode,\n initialOperatorType,\n requiredCompletes\n });\n\n const allocationOn = attributeEditState.editMode === EDIT_MODE_ALLOCATION;\n\n const {\n ranges,\n setValue,\n removeRange,\n addRange,\n getUpdatedRanges,\n toggleRangeGroupingChange,\n rangesValid,\n disabledMessage: rangesErrorMessage\n } = useAttributeRange({\n allocationMap: attributeEditState.allocationMap,\n attribute,\n initialOptions: initialSelectedOptions,\n quotaGroupInput: attributeEditState.quotaGroupInput,\n updateGroup,\n toggleEditMode,\n updateAllocationCell,\n deleteAllocationCell,\n toggleUpdateAllocRowVal\n });\n\n const onSaveClick = () => {\n const rangeStrings = getUpdatedRanges();\n const selectedQuotaGroup = allocationOn\n ? getQuotaGroupInputWithAllocations(\n attributeEditState.allocationMap,\n attributeEditState.quotaGroupInput.quotaCells,\n attributeEditState.quotaGroupInput.name\n )\n : {\n name: \"\",\n quotaCells: []\n };\n\n onSave({\n asAllocation: allocationOn,\n quotaFilterInput: {\n attributeId: attribute.id,\n operator: attributeEditState.filterType,\n options: getSingleArray(rangeStrings)\n },\n quotaGroupInput: selectedQuotaGroup\n });\n\n onCancel();\n };\n\n const {\n totalPerc,\n totalCount,\n remainingCount,\n imperative\n } = useAllocationReview({\n allocationMap: attributeEditState.allocationMap,\n requiredCompletes\n });\n\n useEffect(() => {\n if (remainingCount === 0) {\n setShowAllocationErrors(false);\n }\n }, [remainingCount, setShowAllocationErrors]);\n\n const isAllocationIncomplete = remainingCount !== 0;\n const isSelectedOptionsLess = ranges.length <= 1;\n\n const saveDisabled =\n !rangesValid ||\n (allocationOn && (isAllocationIncomplete || isSelectedOptionsLess));\n\n const saveDisabledMessage = !rangesValid ? (\n rangesErrorMessage\n ) : allocationOn ? (\n isSelectedOptionsLess ? (\n Allocation needs two or more ranges.\n ) : isAllocationIncomplete ? (\n \n {imperative} the remaining {Math.abs(remainingCount)} complete(s)\n to continue.\n \n ) : (\n \"\"\n )\n ) : null;\n\n const isRangeGroupEmpty = (range: string[]) => range.join(\"\") === \"-\";\n\n const hasEmptyRangeGroup = () => getUpdatedRanges().some(isRangeGroupEmpty);\n\n const showAllocationError =\n allocationOn && isAllocationIncomplete && showAllocationErrors;\n\n const [rangeError, setRangeError] = useState(false);\n\n const toggleErrorHighlight = (b: boolean) => {\n setRangeError(b);\n setShowAllocationErrors(b);\n };\n\n const errorMsg = allocationOn ? finishAllocText : selectOneFilterText;\n\n return (\n \n = 2}\n onSplitEvenlyClick={() =>\n handleSplitEvenly(attributeEditState.quotaGroupInput, true)\n }\n filterType={attributeEditState.filterType}\n toggleFilterType={toggleFilterType}\n allowSearch={false}\n allowSelectAll={false}\n />\n\n \n {ranges.map((rangeArray: Range[], arrayIndex: number) => {\n const quotaNodeOptions = getOptionFromRangeArray(rangeArray);\n const quotaNodeInput: QuotaNodeInput = {\n attributeId: attribute.id,\n options: quotaNodeOptions\n };\n const allocationMapKey = hash(quotaNodeOptions);\n const allocationValue = attributeEditState.allocationMap.get(\n allocationMapKey\n );\n const quotaCellCount =\n (allocationValue && allocationValue.count) ||\n getCountFromMapViaIndex(\n attributeEditState.allocationMap,\n arrayIndex\n );\n const quotaCellPerc = (allocationValue && allocationValue.perc) || 0;\n\n const quotaCell: QuotaCellInput = {\n count: quotaCellCount === \"\" ? 0 : quotaCellCount,\n quotaNodes: [quotaNodeInput],\n perc: quotaCellPerc\n };\n\n return (\n \n \n {rangeArray.map((r, i) => (\n \n \n {i === 0 ? `${arrayIndex + 1}.` : or}\n \n \n \n ))}\n \n {allocationOn ? (\n \n updateAllocationCell(allocationMapKey, v)}\n updateTempQuotaGroupInput={updateGroupWithAllocations}\n requiredCompletes={requiredCompletes}\n attributeCount={1}\n isLineItemLaunched={false}\n attributes={attributeMap}\n showAllocationError={showAllocationErrors}\n disableGrouping={false}\n calculatedNestingListHeight={calculatedNestingListHeight}\n toggleRangeGroupingChange={toggleRangeGroupingChange}\n shouldUpdateAllocRowVal={shouldUpdateAllocRowVal}\n toggleUpdateAllocRowVal={toggleUpdateAllocRowVal}\n />\n \n ) : (\n
\n )}\n \n );\n })}\n \n\n \n\n \n\n \n \n );\n};\n\nexport default AttributeRangeEditor;\n","import React, { useState } from \"react\";\nimport styled from \"styled-components\";\nimport {\n AttributeEditorProps,\n arrayFromString,\n scanInvalidOptions\n} from \"../../quotaHelpers\";\nimport AttributeEditButtonGroup from \"./AttributeEditButtonGroup\";\nimport AttributeEditorOuter, {\n StyledUploadGroup,\n StyledSeparator,\n StyledTextarea\n} from \"./AttributeEditStyles\";\nimport Header from \"./AttributeEditHeader\";\nimport useAttributeEdit from \"../../hooks/quota/useAttributeEdit\";\nimport { commaSeparatedString } from \"../../generalHelpers\";\nimport {\n MAX_ATTRIBUTE_OPTIONS,\n MAX_ATTRIBUTE_OPTIONS_ERROR_MESSAGE,\n MAX_NUMBER_OF_ZIP_CODES_OR_RESPONDENT_IDS\n} from \"../lineitem/Constants\";\nimport { ZIP_CODE_ATTRIBUTE_ID } from \"../../constants/attributeIds\";\n\nconst StyledOuter = styled(AttributeEditorOuter)`\n position: relative;\n`;\n\nconst Blurb = styled.div`\n margin-bottom: 1rem;\n`;\n\ntype State = {\n saveDisabled: boolean;\n text: string;\n invalidOptions: string[];\n tooManyOptions: boolean;\n};\n\nconst AttributeStringEditor = ({\n draft,\n attribute,\n onCancel,\n onSave,\n options,\n initialSelectedOptions = [],\n initialOperatorType,\n initialQuotaGroupInput,\n editMode,\n invalidOptions = [],\n requiredCompletes\n}: AttributeEditorProps) => {\n const { id: attributeId } = attribute;\n const maxAttributeOptions =\n attributeId !== ZIP_CODE_ATTRIBUTE_ID\n ? MAX_ATTRIBUTE_OPTIONS\n : MAX_NUMBER_OF_ZIP_CODES_OR_RESPONDENT_IDS;\n const text = initialSelectedOptions ? initialSelectedOptions.join(\", \") : \"\";\n const invalidOps = scanInvalidOptions(text, invalidOptions, attribute.format);\n const tooManyOptions = arrayFromString(text).length > maxAttributeOptions;\n const saveDisabled = text === \"\" || invalidOps.length >= 1 || tooManyOptions;\n\n const [state, setState] = useState({\n text,\n saveDisabled,\n invalidOptions: invalidOps,\n tooManyOptions\n });\n const fileReader = new FileReader();\n\n const {\n state: attributeEditState,\n toggleEditMode,\n toggleFilterType\n } = useAttributeEdit({\n attribute,\n draft,\n options,\n initialSelectedOptions,\n initialQuotaGroupInput,\n initialEditMode: editMode,\n initialOperatorType,\n requiredCompletes\n });\n\n const onTextareaChange = (e: React.FormEvent) => {\n const text = e.currentTarget.value;\n const invalidOpts = scanInvalidOptions(\n text,\n invalidOptions,\n attribute.format\n );\n const tooManyOptions = arrayFromString(text).length > maxAttributeOptions;\n const saveDisabled =\n text === \"\" || invalidOpts.length >= 1 || tooManyOptions;\n\n setState({\n tooManyOptions,\n saveDisabled,\n text,\n invalidOptions: invalidOpts\n });\n };\n\n const onFileInputChange = (e: React.FormEvent) => {\n const { files } = e.currentTarget;\n if (files && files.length) fileReader.readAsText(files[0]);\n };\n\n const onReaderLoad = () => {\n const t = fileReader.result;\n const text = t === null ? \"\" : t.toString();\n const invalidOpts = scanInvalidOptions(\n text,\n invalidOptions,\n attribute.format\n );\n const tooManyOptions = arrayFromString(text).length > maxAttributeOptions;\n const saveDisabled =\n text === \"\" || invalidOpts.length >= 1 || tooManyOptions;\n\n setState({\n tooManyOptions,\n saveDisabled,\n text,\n invalidOptions: invalidOpts\n });\n };\n\n const onFileDrop = (e: React.DragEvent) => {\n if (e.dataTransfer.items) {\n e.preventDefault();\n const files = Array.from(e.dataTransfer.items)\n .filter(i => i.kind === \"file\")\n .map(i => i.getAsFile());\n if (files && files.length && files[0]) {\n const file = files[0];\n if (file !== null) fileReader.readAsText(file);\n }\n }\n };\n\n const saveClick = () => {\n onSave({\n asAllocation: false,\n quotaFilterInput: {\n attributeId: attribute.id,\n operator: attributeEditState.filterType,\n options: arrayFromString(state.text)\n },\n quotaGroupInput: {\n name: \"\",\n quotaCells: []\n }\n });\n onCancel();\n };\n\n const disabledMessage = !state.text.length\n ? \"Text field is empty.\"\n : state.tooManyOptions\n ? MAX_ATTRIBUTE_OPTIONS_ERROR_MESSAGE(maxAttributeOptions)\n : \"Invalid value(s).\";\n\n fileReader.onload = onReaderLoad;\n\n const invalidOptionString = commaSeparatedString(state.invalidOptions, false);\n\n const errorMessage = \"Invalid entries: \" + invalidOptionString;\n\n return (\n \n \n\n Values must be valid and comma or new line delimited.\n\n \n\n \n\n \n\n 0}\n errorMsg={errorMessage}\n toggleErrorHighlight={() => {}}\n />\n \n );\n};\n\nexport default AttributeStringEditor;\n","export const ZIP_CODE_ATTRIBUTE_ID = \"12371860\";\nexport const RESPONDENT_ID_ATTRIBUTE_ID = \"1500\";\n","import React, { useState } from \"react\";\nimport styled from \"styled-components\";\nimport {\n AttributeEditorProps,\n arrayFromString,\n scanInvalidOptions\n} from \"../../quotaHelpers\";\nimport AttributeEditButtonGroup from \"./AttributeEditButtonGroup\";\nimport AttributeEditorOuter, {\n StyledSeparator,\n StyledUploadGroup,\n StyledTextarea\n} from \"./AttributeEditStyles\";\nimport Header from \"./AttributeEditHeader\";\nimport useAttributeEdit from \"../../hooks/quota/useAttributeEdit\";\nimport { commaSeparatedString } from \"../../generalHelpers\";\nimport {\n MAX_ATTRIBUTE_OPTIONS,\n MAX_ATTRIBUTE_OPTIONS_ERROR_MESSAGE,\n MAX_NUMBER_OF_ZIP_CODES_OR_RESPONDENT_IDS\n} from \"../lineitem/Constants\";\nimport { RESPONDENT_ID_ATTRIBUTE_ID } from \"../../constants/attributeIds\";\n\nconst StyledOuter = styled(AttributeEditorOuter)`\n position: relative;\n`;\n\nconst Blurb = styled.div`\n margin-bottom: 1rem;\n`;\n\ntype State = {\n saveDisabled: boolean;\n text: string;\n invalidOptions: string[];\n tooManyOptions: boolean;\n};\n\nconst AttributeStringEditor = ({\n draft,\n attribute,\n onCancel,\n onSave,\n options,\n initialSelectedOptions = [],\n initialOperatorType,\n initialQuotaGroupInput,\n editMode,\n invalidOptions = [],\n requiredCompletes\n}: AttributeEditorProps) => {\n const { id: attributeId } = attribute;\n const maxAttributeOptions =\n attributeId !== RESPONDENT_ID_ATTRIBUTE_ID\n ? MAX_ATTRIBUTE_OPTIONS\n : MAX_NUMBER_OF_ZIP_CODES_OR_RESPONDENT_IDS;\n const text = initialSelectedOptions ? initialSelectedOptions.join(\", \") : \"\";\n const invalidOps = scanInvalidOptions(text, invalidOptions, attribute.format);\n const tooManyOptions = arrayFromString(text).length > maxAttributeOptions;\n const saveDisabled = text === \"\" || invalidOps.length >= 1 || tooManyOptions;\n\n const [state, setState] = useState({\n text,\n saveDisabled,\n invalidOptions: invalidOps,\n tooManyOptions\n });\n const fileReader = new FileReader();\n\n const {\n state: attributeEditState,\n toggleEditMode,\n toggleFilterType\n } = useAttributeEdit({\n attribute,\n draft,\n options,\n initialSelectedOptions,\n initialQuotaGroupInput,\n initialEditMode: editMode,\n initialOperatorType,\n requiredCompletes\n });\n\n const onTextareaChange = (e: React.FormEvent) => {\n const text = e.currentTarget.value;\n const invalidOpts = scanInvalidOptions(\n text,\n invalidOptions,\n attribute.format\n );\n const tooManyOptions = arrayFromString(text).length > maxAttributeOptions;\n const saveDisabled =\n text === \"\" || invalidOpts.length >= 1 || tooManyOptions;\n\n setState({\n saveDisabled,\n text,\n invalidOptions: invalidOpts,\n tooManyOptions\n });\n };\n\n const onFileInputChange = (e: React.FormEvent) => {\n const { files } = e.currentTarget;\n if (files && files.length) fileReader.readAsText(files[0]);\n };\n\n const onReaderLoad = () => {\n const t = fileReader.result;\n const text = t === null ? \"\" : t.toString();\n const invalidOpts = scanInvalidOptions(\n text,\n invalidOptions,\n attribute.format\n );\n const tooManyOptions = arrayFromString(text).length > maxAttributeOptions;\n const saveDisabled =\n text === \"\" || invalidOpts.length >= 1 || tooManyOptions;\n\n setState({\n saveDisabled,\n text,\n invalidOptions: invalidOpts,\n tooManyOptions\n });\n };\n\n const onFileDrop = (e: React.DragEvent) => {\n if (e.dataTransfer.items) {\n e.preventDefault();\n const files = Array.from(e.dataTransfer.items)\n .filter(i => i.kind === \"file\")\n .map(i => i.getAsFile());\n if (files && files.length && files[0]) {\n const file = files[0];\n if (file !== null) fileReader.readAsText(file);\n }\n }\n };\n\n const saveClick = () => {\n onSave({\n asAllocation: false,\n quotaFilterInput: {\n attributeId: attribute.id,\n operator: attributeEditState.filterType,\n options: arrayFromString(state.text)\n },\n quotaGroupInput: {\n name: \"\",\n quotaCells: []\n }\n });\n onCancel();\n };\n\n const disabledMessage = !state.text.length\n ? \"Text field is empty.\"\n : state.tooManyOptions\n ? MAX_ATTRIBUTE_OPTIONS_ERROR_MESSAGE(maxAttributeOptions)\n : \"Invalid value(s).\";\n\n fileReader.onload = onReaderLoad;\n\n const invalidOptionString = commaSeparatedString(state.invalidOptions, false);\n\n const errorMessage = \"Invalid entries: \" + invalidOptionString;\n\n return (\n \n \n\n Values must be valid and comma or new line delimited.\n\n \n\n \n\n \n\n 0}\n errorMsg={errorMessage}\n toggleErrorHighlight={() => {}}\n />\n \n );\n};\n\nexport default AttributeStringEditor;\n","import React from \"react\";\nimport AttributeOptionEditor from \"./AttributeOptionEditor\";\nimport AttributeRangeEditor from \"./AttributeRangeEditor\";\nimport AttributeStringEditor from \"./AttributeStringEditor\";\nimport AttributeIntegerEditor from \"./AttributeIntegerEditor\";\nimport { AttributeEditorProps } from \"../../quotaHelpers\";\n\nconst AttributeEditorSwitch = (props: AttributeEditorProps) => {\n const { attribute } = props;\n\n switch (attribute.type) {\n case \"LIST\":\n return ;\n\n case \"INTEGER_RANGE\":\n return ;\n\n case \"STRING\":\n return ;\n\n case \"INTEGER\":\n return ;\n\n default:\n return null;\n }\n};\n\nexport default AttributeEditorSwitch;\n","import React, { useContext } from \"react\";\nimport ModalPropsContext from \"../../containers/ModalPropsContext\";\nimport styled from \"styled-components\";\nimport { ModalBody, Tooltip } from \"samplify-design\";\nimport AttributeEditorSwitch from \"../quota/AttributeEditorSwitch\";\nimport {\n getOptionMapping,\n AttributeEditorModalProps\n} from \"../../quotaHelpers\";\nimport { TIER_PREMIUM } from \"../lineitem/Constants\";\nimport premiumTagSmall from \"../../art/premiumTagSmall.svg\";\n\nconst PremiumIcon = styled.img`\n margin: auto 0.8rem;\n height: 1.8rem;\n width: auto;\n`;\n\nconst StyledTooltip = styled(Tooltip)`\n z-index: 99999;\n`;\n\nconst StyledModal = styled(ModalBody)`\n border-radius: 0.4rem;\n text-align: left;\n background-color: #f5f5f5;\n padding: 1.2rem 1.6rem 1.6rem 1.6rem;\n max-width: 57rem;\n max-height: fit-content;\n margin: 0 auto;\n flex-grow: unset;\n`;\n\nconst StyledTitle = styled.div`\n display: flex;\n font: normal 600 1.4rem/1.9rem ${props => props.theme.fontFamily};\n margin-bottom: 0.6rem;\n`;\n\ntype Props = {\n clearModal: () => void;\n};\n\ntype ModalPropsContextArg = {\n modalProps: AttributeEditorModalProps;\n};\n\nconst AttributeEditorModal = ({ clearModal }: Props) => {\n const context: ModalPropsContextArg = useContext(ModalPropsContext);\n const {\n draft,\n attribute,\n onCancel,\n onSave,\n initialSelectedOptions,\n initialOperatorType,\n initialQuotaGroupInput,\n requiredCompletes,\n lineItemState,\n attributeMap,\n editMode,\n invalidOptions\n } = context.modalProps;\n\n const optionMap = getOptionMapping(attribute.options);\n\n const cancelModel = () => {\n if (onCancel) {\n onCancel();\n }\n clearModal();\n };\n\n const maybePremiumIcon =\n attribute.tier === TIER_PREMIUM ? (\n \n \n \n ) : null;\n\n const calculatedListHeight = window.innerHeight / 30 + \"rem\";\n const calculatedNestingListHeight = window.innerHeight / 35 + \"rem\";\n\n return (\n \n \n {attribute.name}\n {maybePremiumIcon}\n \n\n \n \n );\n};\n\nexport default AttributeEditorModal;\n","import React, { useContext } from \"react\";\nimport styled from \"styled-components\";\nimport { ModalBody } from \"samplify-design\";\nimport ModalPropsContext from \"../../containers/ModalPropsContext\";\nimport { MetaDataItem } from \"../../types\";\nimport ProjectTopicsSelector from \"../respondents/ProjectTopicsSelector\";\n\nconst StyledModalBody = styled(ModalBody)`\n align-items: center;\n border: 1px solid #d5d7db;\n border-radius: 10px;\n box-sizing: border-box;\n max-height: fit-content;\n max-width: 656px;\n padding: 24px;\n text-align: left;\n flex-grow: unset;\n`;\n\ntype Props = {\n clearModal: () => void;\n};\n\ntype ProjectTopicSelectorModalProps = {\n extProjectId: string;\n surveyTopics: Array;\n selectedTopics: Array;\n resetFeasibility: () => void;\n};\n\ntype ModalPropsContextArg = {\n modalProps: ProjectTopicSelectorModalProps;\n};\n\nconst ProjectTopicSelectorModal = ({ clearModal }: Props) => {\n const context: ModalPropsContextArg = useContext(ModalPropsContext);\n const {\n extProjectId,\n surveyTopics,\n selectedTopics,\n resetFeasibility\n } = context.modalProps;\n\n return (\n \n \n \n );\n};\n\nexport default ProjectTopicSelectorModal;\n","import React, { useContext } from \"react\";\nimport ModalPropsContext from \"../../containers/ModalPropsContext\";\nimport styled from \"styled-components\";\nimport { ModalBody, Button } from \"samplify-design\";\nimport iconOrangeInfo from \"../../art/iconOrangeInfo.svg\";\n\nconst StyledModal = styled(ModalBody)`\n border-radius: 1rem;\n max-height: fit-content;\n text-align: left;\n color: #696e7b;\n margin: auto;\n flex-grow: unset;\n`;\n\nconst Header = styled.div`\n display: flex;\n align-items: center;\n`;\n\nconst ModalIcon = styled.img`\n height: 3.2rem;\n width: auto;\n margin-right: 1.6rem;\n`;\n\nconst Title = styled.h3`\n font: normal 600 1.6rem/2.4rem ${props => props.theme.fontFamily};\n margin: auto 0;\n`;\n\nconst Message = styled.p`\n margin: 3rem 0 2.5rem 0;\n`;\n\nconst Buttons = styled.div`\n display: flex;\n justify-content: flex-end;\n margin-top: 2.5em;\n font: normal 400 1.4rem/2.2rem ${props => props.theme.fontFamily};\n`;\n\nconst EditButton = styled(Button)`\n background-color: ${({ theme }) => theme.neutralLight[\"7\"]};\n color: ${({ theme }) => theme.primary[\"2\"]};\n &:hover {\n background-color: ${({ theme }) => theme.neutralLight[\"7\"]};\n }\n &:focus {\n box-shadow: none;\n }\n`;\n\ntype Props = {\n clearModal: () => void;\n};\n\ntype ModalProps = {\n invalidOpts: string;\n attributeName: string;\n onEdit: () => void;\n onProceed: () => void;\n};\n\ntype ModalPropsContextArg = {\n modalProps: ModalProps;\n};\n\nconst InvalidInputModal = ({ clearModal }: Props) => {\n const context: ModalPropsContextArg = useContext(ModalPropsContext);\n const { invalidOpts, attributeName, onEdit, onProceed } = context.modalProps;\n\n return (\n \n
\n \n Invalid Inputs Found\n
\n\n \n {invalidOpts} are invalid inputs for {attributeName}, which would be\n omitted if you want to proceed with saving the attribute.\n \n\n \n {\n onEdit();\n }}\n >\n Go Back to Editing\n \n\n {\n onProceed();\n clearModal();\n }}\n >\n Proceed\n \n \n
\n );\n};\n\nexport default InvalidInputModal;\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport { Button } from \"samplify-design\";\nimport svgClear from \"../../art/iconClear.svg\";\n\nconst StyledButton = styled(Button)`\n position: absolute;\n right: 3.5rem;\n top: 2rem;\n width: fit-content;\n height: fit-content;\n border: none;\n background: none;\n border-radius: 0;\n margin: 0;\n padding: 0;\n &:hover {\n border: none;\n background: none;\n }\n &:active {\n border: none;\n background: none;\n }\n`;\n\nconst ClearIcon = styled.img`\n height: 1rem;\n width: auto;\n`;\n\ntype Props = {\n clearModal: () => void;\n};\n\nexport default ({ clearModal }: Props) => {\n return (\n \n \n \n );\n};\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport svgLive from \"../../art/cmixStatus/live.svg\";\nimport svgClosed from \"../../art/cmixStatus/closed.svg\";\nimport svgTesting from \"../../art/cmixStatus/testing.svg\";\nimport svgDesign from \"../../art/cmixStatus/design.svg\";\nimport { ExternalSurveyStatus } from \"../../types\";\n\nconst getStatusText = (s: ExternalSurveyStatus) => {\n const l = s.toLowerCase();\n return l.charAt(0).toUpperCase() + l.slice(1);\n};\n\nconst getStatusIcon = (s: ExternalSurveyStatus): string => {\n switch (s) {\n case ExternalSurveyStatus.DESIGN:\n return svgDesign;\n\n case ExternalSurveyStatus.LIVE:\n return svgLive;\n\n case ExternalSurveyStatus.CLOSED:\n return svgClosed;\n\n case ExternalSurveyStatus.TEST:\n return svgTesting;\n\n default:\n return \"\";\n }\n};\n\ntype StatusData = {\n statusText: string;\n statusIcon: string;\n};\n\nconst getStatusData = (s: ExternalSurveyStatus): StatusData => {\n return {\n statusText: getStatusText(s),\n statusIcon: getStatusIcon(s)\n };\n};\n\ntype CustomDivProps = {\n isLive: boolean;\n} & React.HTMLProps;\n\nconst CustomDiv = ({ isLive, ...rest }: CustomDivProps) =>
;\n\nconst Box = styled(CustomDiv)`\n display: flex;\n width: fit-content;\n height: 2.1rem;\n background: ${props => (props.isLive ? \"#DCF2EC\" : \"#f1f2f3\")};\n border-radius: 5rem;\n align-items: center;\n padding: 0.3rem 1.5rem;\n`;\n\nconst StyledStatusIcon = styled.img`\n width: 1.4rem;\n height: auto;\n margin: 0 1rem 0 0;\n`;\n\nconst StyledSurveyName = styled.span`\n font: normal 400 1.2rem/1.8rem ${props => props.theme.fontFamily};\n color: #373941;\n`;\n\ntype Props = {\n status: ExternalSurveyStatus;\n};\n\nconst CmixSurveyStatus = ({ status }: Props) => {\n const { statusText, statusIcon } = getStatusData(status);\n\n return (\n \n \n {statusText}\n \n );\n};\n\nexport default CmixSurveyStatus;\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport { Button } from \"samplify-design\";\nimport { ExternalSurvey } from \"../../types\";\nimport CmixSurveyStatus from \"./CmixSurveyStatus\";\n\nconst OuterDiv = styled.div`\n &:not(:first-child) {\n margin-top: 1.2rem;\n }\n &:last-child {\n margin-bottom: 1.2rem;\n }\n`;\n\ntype CustomButtonProps = {\n activeSectionOpen: boolean;\n} & React.HTMLProps;\n\nconst CustomButton = ({ activeSectionOpen, ...rest }: CustomButtonProps) => {\n return \n \n \n );\n};\n\nexport default SaveTargetingTemplate;\n","import React from \"react\";\nimport { Mutation } from \"react-apollo\";\nimport SaveTemplate from \"../../components/modal/SaveTargetingTemplate\";\nimport { createTargetingTemplate } from \"../../lib/queries/lineitem\";\nimport { CreateTargetingTemplateInput } from \"../../types\";\n\ntype Data = {\n createTargetingTemplate: { id: string };\n};\n\ntype Props = {\n clearModal: () => void;\n};\n\nconst CreateTargetingTemplateContainer = ({ clearModal }: Props) => {\n return (\n \n {mutateCreateTargetingTemplate => {\n const createTemplate = (input: CreateTargetingTemplateInput) =>\n mutateCreateTargetingTemplate({ variables: { input } });\n\n return (\n \n );\n }}\n \n );\n};\n\nexport default CreateTargetingTemplateContainer;\n","import React, { useContext, useState } from \"react\";\nimport ModalPropsContext from \"../../containers/ModalPropsContext\";\nimport styled from \"styled-components\";\nimport { ModalBody, Button, Checkbox } from \"samplify-design\";\nimport { MetaDataItem } from \"../../types\";\n\nconst StyledAcceptSection = styled.div`\n align-items: center;\n display: flex;\n justify-content: space-between;\n margin-top: 3.2rem;\n`;\n\nconst StyledCheckbox = styled(Checkbox)`\n margin-right: 8px;\n`;\n\nconst StyledModalBody = styled(ModalBody)`\n border-radius: 1rem;\n flex-grow: unset;\n padding: 4rem 4rem 2.5rem;\n text-align: left;\n > p {\n margin: 0;\n margin-bottom: 2.4rem;\n }\n`;\n\nconst StyledLabel = styled.label`\n align-items: center;\n display: inline-flex;\n font-size: 12px;\n`;\n\nconst StyledRestriction = styled.div`\n margin: 8px 0;\n > span:first-child {\n color: #f76e5c;\n margin-right: 11px;\n }\n`;\n\ntype ProjectRestrictionsModalProps = {\n restrictions: Array;\n openCreateProjectModal: () => void;\n};\n\ntype ModalPropsContextArg = {\n modalProps: ProjectRestrictionsModalProps;\n};\n\nconst ProjectRestrictionsModal = () => {\n const [checked, setChecked] = useState(false);\n const context: ModalPropsContextArg = useContext(ModalPropsContext);\n const { restrictions, openCreateProjectModal } = context.modalProps;\n const onAccept = () => {\n if (checked) {\n localStorage.setItem(\"showProjectRestrictionModal\", \"false\");\n }\n openCreateProjectModal();\n };\n const onChange = () => setChecked(!checked);\n\n return (\n \n

\n Before you begin, note that the following features are not allowed in\n your surveys:\n

\n {restrictions.map(r => (\n \n \n {r.name}\n \n ))}\n \n \n \n Don’t show this again\n \n \n \n
\n );\n};\n\nexport default ProjectRestrictionsModal;\n","import React, { useContext } from \"react\";\nimport styled from \"styled-components\";\nimport { ModalBody, Button } from \"samplify-design\";\nimport ModalPropsContext from \"../../containers/ModalPropsContext\";\nimport ModalCancelButton from \"../ModalCancelButton\";\nimport iconWarning from \"../../art/iconWarning.svg\";\n\nconst Footer = styled.div`\n text-align: right;\n margin-top: 40px;\n`;\n\nconst StyledBody = styled(ModalBody)`\n padding: 30px 40px;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n text-align: left;\n font-size: 13px;\n color: #696e7b;\n width: 370px;\n margin: 0 auto;\n flex-grow: unset;\n`;\n\nconst StyledHeader = styled.p`\n font-size: 16px;\n`;\n\nconst StyledIcon = styled.img`\n float: left;\n margin-right: 10px;\n width: 25px;\n`;\n\nconst StyledP = styled.p`\n line-height: 20px;\n`;\n\ntype Props = {\n clearModal: () => void;\n};\n\ntype ModalProps = {\n loadTemplate: () => void;\n};\ntype ModalPropsContextArg = {\n modalProps: ModalProps;\n};\n\nconst Outer = styled.div``;\n\nconst ConfirmLoadTemplate = ({ clearModal }: Props) => {\n const context: ModalPropsContextArg = useContext(ModalPropsContext);\n const { loadTemplate } = context.modalProps;\n const useTemplate = () => {\n clearModal();\n loadTemplate();\n };\n return (\n \n \n \n \n Template vs. Existing Attributes\n \n \n When adding a template, existing attributes will be removed\n automatically. Are you sure you want to add the template?\n \n
\n Cancel\n \n
\n
\n
\n );\n};\n\nexport default ConfirmLoadTemplate;\n","import React, { useContext, Fragment } from \"react\";\nimport styled from \"styled-components\";\nimport ModalPropsContext from \"../../containers/ModalPropsContext\";\nimport ConfirmationModal from \"./ConfirmationModal\";\nimport { CMIX } from \"../../constants/titles\";\nimport svgInfo from \"../../art/iconInfoBlue.svg\";\n\nconst StyledHeader = styled.div`\n color: #696e7b;\n display: flex;\n align-items: center;\n`;\nconst StyledInfoIcon = styled.img`\n width: 3.2rem;\n height: auto;\n`;\nconst StyledTitle = styled.div`\n margin-left: 0.9rem;\n font: normal 600 1.6rem/2.4rem ${props => props.theme.fontFamily};\n`;\n\nconst StyledBlurb = styled.p`\n color: #696e7b;\n font: normal 400 1.4rem/2.1rem ${props => props.theme.fontFamily};\n`;\n\ntype Props = {\n clearModal: () => void;\n};\n\ntype ModalProps = {\n duplicateProject: () => void;\n};\n\ntype ModalPropsContextArg = {\n modalProps: ModalProps;\n};\n\nconst ConfirmDuplicateProjectInternalSurveys = ({ clearModal }: Props) => {\n const context: ModalPropsContextArg = useContext(ModalPropsContext);\n const { duplicateProject } = context.modalProps;\n\n const confirmModal = () => {\n duplicateProject();\n clearModal();\n };\n\n return (\n \n \n \n Survey(s) Will Not Be Duplicated\n \n\n \n Your project contains survey(s) associations from {CMIX} or an\n external link, which cannot be duplicated. Duplicating this project\n will not duplicate the associated survey(s).\n \n \n }\n onCancel={clearModal}\n onConfirm={confirmModal}\n confirmLabel={\"Accept & Duplicate\"}\n />\n );\n};\n\nexport default ConfirmDuplicateProjectInternalSurveys;\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport { Modal as BaseModal } from \"samplify-design\";\nimport InvoiceReportModal from \"../invoices/InvoiceReportModal\";\nimport modalTypes from \"../../constants/modalTypes\";\nimport CreateProjectContainer from \"../../containers/project/CreateProjectContainer\";\nimport CreateReport from \"./CreateReport\";\nimport CreateFilter from \"./CreateFilter\";\nimport CreateCrosstab from \"./CreateCrosstab\";\nimport ExportData from \"./ExportData/ExportData\";\nimport DeclineTosConfirm from \"./DeclineTosConfirm\";\nimport ViewReportOnModal from \"./ViewReport/ViewReportOnModal\";\nimport SplitSource from \"./SplitSource\";\nimport ConfirmCloseLineItem from \"./ConfirmCloseLineItem\";\nimport ConfirmCloseProject from \"./ConfirmCloseProject\";\nimport UpdateFound from \"./UpdateFound\";\nimport ConfirmDeleteSurvey from \"./ConfirmDeleteSurvey\";\nimport ConfirmNavigation from \"./ConfirmNavigation\";\nimport ConfirmDuplicateLineItemDeprecatedAttribute from \"./ConfirmDuplicateLineItemDeprecatedAttribute\";\nimport AttributeEditorModal from \"./AttributeEditorModal\";\nimport ProjectTopicSelectorModal from \"./ProjectTopicSelectorModal\";\nimport InvalidInputModal from \"./InvalidInputModal\";\nimport ConnectCmixSurveyModal from \"./ConnectCmixSurveyModal\";\nimport ConfirmDeleteTargetingTemplate from \"./ConfirmDeleteTargetingTemplate\";\nimport CreateTemplateContainer from \"../../containers/lineitem/CreateTargetingTemplateContainer\";\nimport ProjectRestrictionsModal from \"./ProjectRestrictionsModal\";\nimport ConfirmLoadTargetingTemplate from \"./ConfirmLoadTargetingTemplate\";\nimport ConfirmDuplicateProjectInternalSurveys from \"./ConfirmDuplicateProjectInternalSurveys\";\n\nconst closeable = (modalType: string | null) =>\n modalType !== modalTypes.UPDATE_FOUND;\n\nconst StyledBaseModal = styled(BaseModal)`\n max-height: initial;\n`;\n\ntype Props = {\n clearModalType: () => void;\n modalType: string | null;\n};\nconst Modal = ({ modalType, clearModalType }: Props) => {\n const clearModal = () => {\n if (!closeable(modalType)) return;\n clearModalType();\n };\n\n const Content = (function() {\n switch (modalType) {\n case modalTypes.CREATE_PROJECT:\n return CreateProjectContainer;\n case modalTypes.CREATE_REPORT:\n return CreateReport;\n case modalTypes.CREATE_FILTER:\n return CreateFilter;\n case modalTypes.CREATE_CROSSTAB:\n return CreateCrosstab;\n case modalTypes.EXPORT_DATA:\n return ExportData;\n case modalTypes.DECLINE_TOS:\n return DeclineTosConfirm;\n case modalTypes.INVOICE_REPORT:\n return ViewReportOnModal;\n case modalTypes.SPLIT_SOURCE:\n return SplitSource;\n case modalTypes.CONFIRM_CLOSE_LINEITEM:\n return ConfirmCloseLineItem;\n case modalTypes.CONFIRM_CLOSE_PROJECT:\n return ConfirmCloseProject;\n case modalTypes.UPDATE_FOUND:\n return UpdateFound;\n case modalTypes.CONFIRM_DELETE_SURVEY:\n return ConfirmDeleteSurvey;\n case modalTypes.CONFIRM_NAVIGATION:\n return ConfirmNavigation;\n case modalTypes.DUPLICATE_LINEITEM_WITH_DEPRECATED_ATTRIBUTES:\n return ConfirmDuplicateLineItemDeprecatedAttribute;\n case modalTypes.ATTRIBUTE_EDITOR:\n return AttributeEditorModal;\n case modalTypes.PROJECT_TOPIC_SELECTOR:\n return ProjectTopicSelectorModal;\n case modalTypes.INVALID_INPUT:\n return InvalidInputModal;\n case modalTypes.CONNECT_CMIX_SURVEY:\n return ConnectCmixSurveyModal;\n case modalTypes.CONFIRM_DELETE_TARGETING_TEMPLATE:\n return ConfirmDeleteTargetingTemplate;\n case modalTypes.SAVE_TARGETING_TEMPLATE:\n return CreateTemplateContainer;\n case modalTypes.PROJECT_RESTRICTIONS:\n return ProjectRestrictionsModal;\n case modalTypes.CONFIRM_LOAD_TARGETING_TEMPLATE:\n return ConfirmLoadTargetingTemplate;\n case modalTypes.DUPLICATE_PROJECT_WITH_INTERNAL_SURVEYS:\n return ConfirmDuplicateProjectInternalSurveys;\n default:\n return null;\n }\n })();\n const renderModalContent = () =>\n Content === null ? null : ;\n const appElement = document.getElementById(\"root\");\n\n let modalSize = \"\";\n if (modalType === modalTypes.CREATE_FILTER) {\n modalSize = \"lg\";\n }\n if (modalType === modalTypes.PROJECT_TOPIC_SELECTOR) {\n modalSize = \"xl\";\n }\n\n if (modalType === modalTypes.INVOICE_REPORT) {\n return (\n \n {renderModalContent()}\n \n );\n }\n if (\n modalType === modalTypes.ATTRIBUTE_EDITOR ||\n modalType === modalTypes.CONNECT_CMIX_SURVEY\n ) {\n return (\n \n {renderModalContent()}\n \n );\n }\n\n return (\n \n {renderModalContent()}\n \n );\n};\n\nexport default Modal;\n","import React from \"react\";\nimport { Route } from \"react-router-dom\";\nimport Modal from \"../components/modal/Modal\";\nimport { Modal as ModalType } from \"./ModalPropsContext\";\n\ntype Props = {\n modalData: ModalType;\n clearModalType: () => void;\n};\n\nconst ModalContainer = ({ modalData, clearModalType }: Props) => {\n return (\n \n \n \n );\n};\n\nexport default ModalContainer;\n","import styled from \"styled-components\";\n\nconst AppOuter = styled.div`\n display: grid;\n margin-bottom: 2em;\n`;\n\nexport default AppOuter;\n","import gql from \"graphql-tag\";\n\nexport const userQuery = gql`\n query User {\n userInfo {\n id\n userName\n userTermsInfo {\n termsAccepted\n signedVersion\n currentVersion\n }\n fullName\n firstName\n initials\n email\n companies {\n isDefault\n isEffective\n id\n name\n }\n settings {\n allowSurveyBuilder\n applications {\n id\n title\n description\n icon\n url\n }\n }\n helpScoutSignature\n hsDashboardMessage\n hsRespondentsMessage\n hsSurveysMessage\n hsInvoicesMessage\n actions {\n kind\n metadata {\n label\n enabled\n visible\n description\n }\n }\n }\n }\n`;\n\nexport default userQuery;\n","import React from \"react\";\nimport { Button } from \"samplify-design\";\nimport styled from \"styled-components\";\nimport modalTypes from \"../../constants/modalTypes\";\nimport useSetModal from \"../../hooks/useSetModal\";\n\nconst Decline = styled(Button)``;\n\nconst TosDecline = () => {\n const setDeclineToSModal = useSetModal(modalTypes.DECLINE_TOS);\n\n return (\n \n I Decline\n \n );\n};\n\nexport default TosDecline;\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport { Button, Spinner } from \"samplify-design\";\n\nconst Accept = styled(Button)`\n background-color: ${props =>\n props.agree\n ? ({ theme }) => theme.primary[\"2\"]\n : ({ theme }) => theme.neutralLight[\"2\"]};\n &:hover {\n background-color: ${props =>\n props.agree\n ? ({ theme }) => theme.primary[\"1\"]\n : ({ theme }) => theme.neutralLight[\"2\"]};\n }\n &:active {\n background-color: ${props =>\n props.agree\n ? ({ theme }) => theme.primary[\"3\"]\n : ({ theme }) => theme.neutralLight[\"2\"]};\n }\n`;\n\nconst StyledSpnner = styled(Spinner)`\n stroke: white;\n`;\n\nconst TosAccept = ({ agree, showRedText, loading, acceptTos }) => {\n const buttonContent = loading ? : \"I Accept\";\n return (\n
\n {\n if (agree) {\n acceptTos();\n } else {\n showRedText();\n }\n }}\n >\n {buttonContent}\n \n
\n );\n};\n\nexport default TosAccept;\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport { Button, icons } from \"samplify-design\";\n\nconst { Download } = icons;\n\nconst DownloadButton = styled(Button)`\n background-color: ${({ theme }) => theme.neutralLight[\"7\"]};\n color: ${({ theme }) => theme.neutralDark[\"1\"]};\n > svg {\n height: 1.4rem;\n width: auto;\n margin-right: 0.5rem;\n }\n &:hover {\n background-color: ${({ theme }) => theme.neutralLight[\"6\"]};\n }\n &:active {\n background-color: ${({ theme }) => theme.neutralLight[\"5\"]};\n }\n`;\n\nconst DownloadPdf = ({ downloadLink }) => {\n return (\n \n \n \n Download\n \n \n );\n};\n\nexport default DownloadPdf;\n","import React, { Component } from \"react\";\nimport { Checkbox } from \"samplify-design\";\nimport { Query, Mutation } from \"react-apollo\";\nimport gql from \"graphql-tag\";\nimport GenericErrorBoundary from \"../GenericErrorBoundary\";\nimport DashboardStyler from \"../dashboard/DashboardStyler\";\nimport styled from \"styled-components\";\nimport { userQuery } from \"../../lib/queries/user\";\nimport TosDecline from \"./TosDecline\";\nimport TosAccept from \"./TosAccept\";\nimport DownloadPdf from \"./DownloadPdf\";\nimport PageLoading from \"../PageLoading\";\nimport PageError from \"../PageError\";\n\nconst TosStyler = styled.div`\n background-color: ${({ theme }) => theme.neutralLight[\"5\"]};\n color: ${({ theme }) => theme.neutralDark[\"1\"]};\n height: 100%;\n font-size: 1.4rem;\n`;\n\nconst Flex = styled.div`\n display: flex;\n align-items: center;\n height: 2.5rem;\n`;\n\nconst ToCText = styled.ol`\n padding: 2rem 3.5rem;\n background-color: #ffffff;\n max-height: 350px;\n overflow: scroll;\n list-style: decimal;\n .extrastrong {\n font-weight: 700;\n text-decoration: underline;\n }\n ul {\n list-style: decimal;\n line-height: 1.5;\n }\n\n ol {\n list-style: lower-roman;\n ol {\n list-style: lower-alpha;\n }\n }\n`;\n\nconst Header = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n`;\n\nconst StyledCheckbox = styled(Checkbox)`\n margin-right: 0.4rem;\n`;\n\nconst Buttons = styled.div`\n display: flex;\n justify-content: flex-end;\n margin-top: 1rem;\n button {\n margin-left: 1rem;\n width: 18rem;\n }\n`;\n\nconst SmallText = styled.p`\n font-size: 1.2rem;\n`;\n\nconst RedText = styled(SmallText)`\n color: ${({ theme }) => theme.danger[\"1\"]};\n text-align: right;\n display: ${props => props.display || \"none\"};\n flex-grow: 1;\n padding-top: 5px;\n margin-right: 0.4rem;\n`;\n\nconst TOS_QUERY = gql`\n query TermsTemplate {\n termsTemplate {\n version\n template\n downloadLink\n }\n }\n`;\n\nconst ACCEPT_TOS_MUTATION = gql`\n mutation ACCEPT_TOS_MUTATION {\n acceptTermsAndConditions\n }\n`;\n\nclass Tos extends Component {\n state = {\n agree: false,\n redText: \"none\",\n errors: []\n };\n\n handleChange = () => {\n this.setState({ agree: !this.state.agree, redText: \"none\" });\n };\n\n showRedText = () => {\n this.setState({ redText: \"block\" });\n };\n\n hideRedText = () => {\n this.setState({ redText: \"none\" });\n };\n\n clearErrors = () => {\n this.setState({ errors: [] });\n };\n\n htmlEntities = str => {\n return String(str)\n .replace(/&/g, \"&\")\n .replace(//g, \">\")\n .replace(/\"/g, \""\");\n };\n\n render() {\n return (\n \n \n {({ data, error, loading }) => {\n if (loading) return ;\n if (error) return ;\n\n const { termsTemplate } = data;\n const { template, downloadLink } = termsTemplate;\n const parser = new DOMParser();\n const HTMLdoc = parser.parseFromString(template, \"text/xml\");\n const text = HTMLdoc.firstChild.innerHTML;\n\n return (\n \n {(acceptTermsAndConditions, { loading }) => {\n const maybeErrors = this.state.errors.length\n ? this.state.errors.map((message, i) => (\n \n {message}\n \n ))\n : null;\n\n const acceptTos = () => {\n this.clearErrors();\n acceptTermsAndConditions().catch(e => {\n const errorMsgs = e.graphQLErrors.map(e => e.message);\n this.setState({ errors: errorMsgs });\n });\n };\n return (\n \n \n
\n

SAMPLIFY USAGE TERMS

\n \n
\n

\n By clicking on the “I Accept” button below you hereby\n agree to the following terms and conditions for your\n use of the Samplify Service.\n

\n \n \n By clicking “I ACCEPT” below you represent that you\n are an authorized representative of your company and\n are empowered to commit your company to the terms\n contained herein.\n \n \n \n {maybeErrors}\n \n Please check the box to indicate that you have read\n and agree to the terms of service before accepting\n \n \n \n \n \n \n
\n
\n );\n }}\n \n );\n }}\n
\n
\n );\n }\n}\n\nexport default Tos;\n","import React, { Fragment } from \"react\";\nimport styled from \"styled-components\";\nimport arrowLogo from \"../../art/header/arrow.svg\";\nimport samplifyTitle from \"../../art/header/samplifyTitle.svg\";\nimport { SAMPLIFY_LOGO_LINK, getEnv } from \"../../networkHelpers\";\n\nconst StyledLogo = styled.img`\n height: 3rem;\n width: auto;\n margin: auto 0.4rem auto 2rem;\n`;\n\nconst StyledTitle = styled.img`\n height: 1.5rem;\n width: auto;\n margin: 2.1rem 0 auto 0.2rem;\n`;\n\nconst StyledArrow = styled.img`\n height: 100%;\n width: auto;\n margin-right: 1.3rem;\n`;\n\nconst StyledIdentifier = styled.div`\n display: flex;\n flex-direction: row;\n width: 2.1rem;\n`;\n\nconst StyledEnv = styled.div`\n background: #e7eaed;\n border-radius: 1px;\n color: #696e7b;\n font-size: 8px;\n text-transform: uppercase;\n align-self: flex-start;\n padding: 2px 3px;\n margin-top: 7px;\n`;\n\nconst Title = () => {\n const env = getEnv().toUpperCase();\n return (\n \n \n \n \n {env === \"UAT\" && {env}}\n \n \n \n );\n};\n\nexport default Title;\n","import React from \"react\";\nimport { NavLink } from \"react-router-dom\";\nimport styled from \"styled-components\";\nimport HEADER, { DASHBOARD, INVOICES } from \"../../idHelpers\";\n\nconst StyledNav = styled.nav`\n align-items: center;\n display: flex;\n`;\n\nconst StyledButton = styled.button`\n background: none;\n text-decoration: none;\n border: 0 none;\n cursor: pointer;\n display: flex;\n position: relative;\n margin: auto;\n padding: 1.6rem 1.6rem 1.3rem;\n font: normal 400 1.4rem/2.2rem ${props => props.theme.fontFamily};\n color: #85858b;\n &.active {\n color: #3ea8dd;\n font-weight: 600;\n\n span {\n left: 0.6rem;\n right: 0.6rem;\n position: absolute;\n display: block;\n bottom: 0;\n border: 0.2rem solid;\n border-radius: 0.4rem;\n }\n }\n`;\n\nconst StyledNavLink = StyledButton.withComponent(NavLink);\n\nconst Nav = () => {\n return (\n \n \n Dashboard \n \n \n Invoices \n \n \n );\n};\n\nexport default Nav;\n","import React from \"react\";\nimport styled from \"styled-components\";\n\nimport HELP_URL from \"../../networkHelpers\";\nimport HEADER, { HELP } from \"../../idHelpers\";\n\nconst StyledButton = styled.button`\n background: none;\n border: none;\n justify-content: center;\n cursor: pointer;\n height: fit-content;\n padding: 0;\n margin: auto;\n &:focus {\n outline: none;\n border-color: transparent;\n box-shadow: none;\n }\n`;\nconst StyledHelpIcon = styled.i`\n color: #85858b;\n font-size: 2.4rem;\n ${StyledButton}:hover & {\n color: #3ea8dd;\n }\n`;\n\nconst Apps = () => {\n const openHelp = () => {\n window.open(HELP_URL, \"_blank\");\n };\n\n return (\n \n \n \n );\n};\n\nexport default Apps;\n","import { useState, useEffect, useRef } from \"react\";\n\nconst useComponentVisible = (initialIsVisible: boolean) => {\n const [isVisible, setIsVisible] = useState(initialIsVisible);\n const ref = useRef(null);\n\n const toggleIsVisible = () => setIsVisible(!isVisible);\n\n const handlePressEscape = (event: KeyboardEvent) => {\n if (event.key === \"Escape\") {\n setIsVisible(false);\n }\n };\n\n const handleClickOutside = (event: MouseEvent) => {\n // @ts-ignore\n if (ref.current && !ref.current.contains(event.target)) {\n setIsVisible(false);\n }\n };\n\n useEffect(() => {\n document.addEventListener(\"keydown\", handlePressEscape, true);\n document.addEventListener(\"click\", handleClickOutside, true);\n return () => {\n document.removeEventListener(\"keydown\", handlePressEscape, true);\n document.removeEventListener(\"click\", handleClickOutside, true);\n };\n });\n\n return { ref, isVisible, setIsVisible, toggleIsVisible };\n};\n\nexport default useComponentVisible;\n","import styled from \"styled-components\";\n\nexport const AccountMenuCommonStyles = `\n background: #ffffff;\n border: 0.1rem solid #e7eaed;\n border-radius: 0.4rem;\n box-sizing: border-box;\n filter: drop-shadow(0px 5px 10px rgba(19, 21, 46, 0.16));\n width: 30rem;\n z-index: 100 !important;\n`;\n\nexport const StyledMenuHeader = styled.div`\n display: flex;\n background: #e7eaed;\n justify-content: center;\n padding: 1.4rem 1.6rem;\n`;\n\nexport const StyledMenuHeaderLabel = styled.span`\n color: #4e525c;\n font: normal 600 1.4rem/2.2rem ${props => props.theme.fontFamily};\n text-overflow: ellipsis;\n overflow: hidden;\n`;\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport { getPasswordURL, logout } from \"../../networkHelpers\";\nimport HEADER, { ACCOUNT, CHANGE_PWD, LOGOUT } from \"../../idHelpers\";\nimport useComponentVisible from \"../../hooks/useComponentVisible\";\nimport { UserInfo } from \"../../types\";\nimport {\n AccountMenuCommonStyles,\n StyledMenuHeader,\n StyledMenuHeaderLabel\n} from \"./AccountMenuStyles\";\n\nconst StyledAccount = styled.div`\n display: flex;\n margin-left: 2.7rem;\n`;\n\nconst StyledAccountButton = styled.button`\n background: none;\n border: none;\n justify-content: center;\n cursor: pointer;\n height: fit-content;\n margin: auto;\n padding: 0;\n &:focus {\n outline: none;\n border-color: transparent;\n box-shadow: none;\n }\n`;\n\nconst StyledAccountMenu = styled.div`\n ${AccountMenuCommonStyles}\n position: absolute;\n top: 4.2rem !important;\n right: 0 !important;\n`;\n\nconst StyledSpan = styled.span`\n background: #85858b;\n border-radius: 0.4rem;\n height: 2.4rem;\n width: 2.4rem;\n color: #ffffff;\n font: normal 600 1.2rem/2.4rem ${props => props.theme.fontFamily};\n text-align: center;\n display: inline-block;\n ${StyledAccountButton}:hover & {\n background: #3ea8dd;\n }\n`;\n\nconst StyledMenuWrapper = styled.div`\n display: flex;\n flex-direction: column;\n border-radius: inherit;\n`;\n\nconst StyledSectionHeader = styled.div`\n font: normal 400 1.1rem/1.4rem ${props => props.theme.fontFamily};\n padding: 1.6rem 1.6rem 1.8rem;\n color: #85858b;\n`;\n\nconst StyledLink = styled.a`\n color: var(--dark-color-3);\n text-align: left;\n text-decoration: none;\n font: normal 400 1.4rem/2.2rem ${props => props.theme.fontFamily};\n padding: 0 1.6rem 0.7rem;\n :hover {\n color: #3ea8dd;\n }\n`;\nconst StyledButton = styled.button`\n font: normal 400 1.4rem/2.2rem ${props => props.theme.fontFamily};\n text-decoration: none;\n border: 0 none;\n text-align: left;\n background: none;\n color: var(--dark-color-3);\n cursor: pointer;\n outline: none;\n padding: 0.7rem 1.6rem;\n &:focus {\n outline: none;\n border-color: transparent;\n box-shadow: none;\n }\n :hover {\n color: #3ea8dd;\n }\n`;\n\ntype Props = {\n userInfo?: UserInfo;\n};\n\nconst Account = ({ userInfo }: Props) => {\n const { ref, isVisible, toggleIsVisible } = useComponentVisible(false);\n const firstName = userInfo ? userInfo.firstName : \"?\";\n const initials = userInfo ? userInfo.initials : \"?\";\n\n const maybeAccountMenu = isVisible && (\n \n \n \n Welcome, {firstName}\n \n User\n \n Change Password\n \n \n Logout\n \n \n \n );\n\n return (\n \n \n {initials}\n \n {maybeAccountMenu}\n \n );\n};\n\nexport default Account;\n","import React, { useState } from \"react\";\nimport { TextInput } from \"samplify-design\";\nimport styled from \"styled-components\";\nimport search from \"../../art/search.svg\";\nimport pipe from \"../../art/pipeDark.svg\";\nimport { StyledMenuHeaderLabel, StyledMenuHeader } from \"./AccountMenuStyles\";\nimport { Company } from \"../../types\";\nimport { sortCompanies } from \"../../generalHelpers\";\n\ntype CustomDivProps = {\n isEffective: boolean;\n} & React.HTMLProps;\n\nconst CustomDiv = ({ isEffective, ...rest }: CustomDivProps) => (\n
\n);\n\nconst StyledCompanyLabel = styled(CustomDiv)`\n align-items: center;\n background-color: ${props =>\n props.isEffective ? \"#EDF8FC\" : \"var(--light-color-6)\"};\n color: ${props => (props.isEffective ? \"#373941\" : \"inherit\")};\n display: flex;\n justify-content: space-between;\n padding: 0.7rem 1.6rem;\n :hover {\n background-color: #edf8fc;\n color: #373941;\n cursor: pointer;\n }\n`;\n\nconst StyledCompanyList = styled.div`\n font: normal 400 1.4rem/2.2rem ${props => props.theme.fontFamily};\n max-height: 18rem;\n overflow-y: scroll;\n`;\n\nconst StyledInput = styled(TextInput)`\n margin: 0;\n padding-left: 3.8rem;\n width: 100%;\n ::placeholder {\n color: #9599a4;\n }\n`;\n\nconst StyledInputWrapper = styled.div`\n display: flex;\n font: normal 400 1.4rem/2.2rem ${props => props.theme.fontFamily};\n padding: 1.2rem 1.6rem;\n position: relative;\n`;\n\nconst StyledSearchIcon = styled.img`\n left: 3.3rem;\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n`;\n\ntype Props = {\n companies: Array;\n onCompanySelect: (c: Company) => void;\n};\n\nconst CompanySwitcherMenu = ({ companies, onCompanySelect }: Props) => {\n const [searchText, setSearchText] = useState(\"\");\n\n const onInputChange = (e: React.FormEvent) =>\n setSearchText(e.currentTarget.value);\n\n const sortedCompanies = sortCompanies(companies);\n\n return (\n \n \n Switch Company\n \n \n \n \n \n \n {sortedCompanies\n .filter((c: Company) =>\n c.name.toLowerCase().includes(searchText.toLowerCase())\n )\n .map((c: Company) => {\n return (\n onCompanySelect(c)}\n >\n {c.name}\n {c.isEffective && \"\"}\n \n );\n })}\n \n \n );\n};\n\nexport default CompanySwitcherMenu;\n","import gql from \"graphql-tag\";\n\nexport const switchCompany = gql`\n mutation switchCompany($companyID: Int!) {\n switchCompany(input: { companyID: $companyID })\n }\n`;\n","import { useMutation } from \"react-apollo-hooks\";\nimport { switchCompany } from \"../lib/queries/companySwitch\";\nimport { Company } from \"../types\";\n\ntype Data = {\n switchCompany: boolean;\n};\n\nconst useSwitchCompany = () => {\n const [mutate, mutationStatus] = useMutation(switchCompany);\n\n const switching = (c: Company) => {\n return mutate({\n variables: { companyID: c.id }\n });\n };\n return { switchCompany: switching, mutationStatus };\n};\n\nexport default useSwitchCompany;\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport caret from \"../../art/Caret.svg\";\nimport CompanySwitcherMenu from \"./CompanySwitcherMenu\";\nimport Popover from \"react-popover\";\nimport { AccountMenuCommonStyles } from \"./AccountMenuStyles\";\nimport { Company } from \"../../types\";\nimport useSwitchCompany from \"../../hooks/useCompanySwitch\";\nimport HEADER, { SWITCH_COMPANY } from \"../../idHelpers\";\n\nconst CaretIcon = styled.img`\n width: 0.9rem;\n margin-left: 0.7rem;\n`;\n\nconst StyledCompanySwitcher = styled.button`\n align-items: center;\n font: normal 400 1.2rem/2.4rem ${props => props.theme.fontFamily};\n color: var(--dark-color-3);\n background: none;\n border: none;\n justify-content: center;\n cursor: pointer;\n height: fit-content;\n padding: 0;\n margin: auto 0.9rem auto 2.1rem;\n &:focus {\n outline: none;\n border-color: transparent;\n box-shadow: none;\n }\n`;\n\nconst StyledSpan = styled.span`\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 14rem;\n`;\n\nconst StyledPopover = styled(Popover)`\n ${AccountMenuCommonStyles}\n transform: translate(-1.2rem, 0.5rem) !important;\n`;\n\ntype Props = {\n effectiveCompany: Company;\n companies: Array;\n companySwitcherOpen: boolean;\n toggleCompanySwitcher: () => void;\n onSwitchSuccess: (c: Company) => void;\n onSwitchFailure: () => void;\n};\n\nconst CompanySwitcher = ({\n effectiveCompany,\n companies,\n companySwitcherOpen,\n toggleCompanySwitcher,\n onSwitchSuccess,\n onSwitchFailure\n}: Props) => {\n const { switchCompany } = useSwitchCompany();\n\n const onCompanySelect = (c: Company) => {\n switchCompany(c)\n .then(res => {\n if (res && res.data && res.data.switchCompany) {\n onSwitchSuccess(c);\n } else {\n onSwitchFailure();\n }\n })\n .finally(() => toggleCompanySwitcher());\n };\n\n return (\n \n }\n enterExitTransitionDurationMs={0}\n tipSize={0.1}\n place=\"below\"\n onOuterAction={toggleCompanySwitcher}\n >\n \n {effectiveCompany.name}\n \n \n \n );\n};\n\nexport default CompanySwitcher;\n","import React, { useEffect } from \"react\";\nimport styled from \"styled-components\";\nimport { keyframes } from \"styled-components\";\nimport { Company } from \"../../types\";\n\nconst animation = keyframes`\n from {\n transform: translate(-50%, -100%);\n }\n to {\n transform: translate(-50%, 0);\n }\n`;\n\nconst Message = styled.div`\n animation-duration: 0.25s;\n animation-name: ${animation};\n border-radius: 4px;\n box-shadow: 0px 5px 10px rgba(19, 21, 46, 0.16);\n left: 50%;\n padding: 1.2rem 1.6rem;\n position: fixed;\n top: 5;\n transform: translateX(-50%);\n`;\n\nconst SuccessMessage = styled(Message)`\n background-color: var(--accent-color-4);\n color: var(--accent-color-1);\n`;\n\nconst ErrorMessage = styled(Message)`\n background-color: var(--danger-color-4);\n color: var(--danger-color-1);\n`;\n\ntype Props = {\n effectiveCompany: Company;\n showCompanySwitchErrMsg: boolean;\n removeCompanySwitchMsgs: () => void;\n};\n\nconst successMsg = \"Your company is now switched to\";\nconst errorMsg = \"Error while switching company\";\n\nconst CompanySwitchSuccess = ({\n effectiveCompany,\n showCompanySwitchErrMsg,\n removeCompanySwitchMsgs\n}: Props) => {\n useEffect(() => {\n const interval = setInterval(() => {\n removeCompanySwitchMsgs();\n }, 5000);\n\n return () => {\n clearInterval(interval);\n };\n });\n\n if (showCompanySwitchErrMsg) {\n return {`${errorMsg}.`};\n }\n\n return (\n {`${successMsg} ${effectiveCompany.name}.`}\n );\n};\n\nexport default CompanySwitchSuccess;\n","import React, { useEffect, useState } from \"react\";\nimport styled from \"styled-components\";\nimport Title from \"./Title\";\nimport Nav from \"./Nav\";\nimport Help from \"./Help\";\nimport Account from \"./Account\";\nimport CompanySwitcher from \"./CompanySwitcher\";\nimport { Application, UserInfo, Company } from \"../../types\";\nimport HEADER from \"../../idHelpers\";\nimport CompanySwitchSuccess from \"./CompanySwitchSuccess\";\nimport usePopover from \"../../hooks/usePopover\";\nimport { getEffectiveCompany } from \"../../generalHelpers\";\n\nconst StyledHeader = styled.header`\n position: fixed;\n left: 0;\n right: 0;\n z-index: 50;\n justify-content: space-between;\n height: 5rem;\n border-bottom: 1px solid #dde1e7;\n padding: 0 1.3em;\n background-color: ${({ theme }) => theme.neutralLight[\"7\"]};\n display: flex;\n align-items: center;\n`;\n\nconst StyledLeftDiv = styled.div`\n display: flex;\n height: 100%;\n`;\n\nconst StyledAppsButton = styled.button`\n background: none;\n border: none;\n justify-content: center;\n cursor: pointer;\n height: fit-content;\n padding: 0;\n margin: auto;\n &:focus {\n outline: none;\n border-color: transparent;\n box-shadow: none;\n }\n`;\nconst StyledGridIcon = styled.i`\n color: #85858b;\n font-size: 2.4rem;\n ${StyledAppsButton}:hover & {\n color: #3ea8dd;\n }\n`;\n\nconst StyledRightDiv = styled.div`\n align-items: center;\n position: relative;\n display: flex;\n height: 100%;\n border-left: 1px solid #f1f2f3;\n padding-left: 2.3rem;\n`;\n\ntype Props = {\n termsAccepted: boolean;\n userInfo?: UserInfo;\n apps?: Array;\n doesUserHaveAccess: boolean;\n toggleLauncherOpen?: () => void;\n resetDashboard?: () => void;\n resetInProgress?: boolean;\n setResetInProgress?: () => void;\n};\n\nconst Header = ({\n termsAccepted,\n userInfo,\n apps,\n doesUserHaveAccess,\n toggleLauncherOpen,\n resetDashboard,\n resetInProgress,\n setResetInProgress\n}: Props) => {\n const companies = userInfo ? userInfo.companies : [];\n const nav = termsAccepted && doesUserHaveAccess ?
\n \n );\n};\n\nexport default ToastChild;\n","import React, { useEffect } from \"react\";\nimport { useQuery, useApolloClient } from \"react-apollo-hooks\";\nimport { getGraphQLError, getNetworkError } from \"../lib/queries/error\";\nimport { useToasts } from \"react-toast-notifications\";\nimport ToastChild from \"../components/ToastChild\";\nimport { filterErrors, graphQlErrorTitle, capitalize } from \"../generalHelpers\";\nimport { ErrorResponse } from \"apollo-link-error\";\nimport { ErrorCode, Error } from \"../types\";\n\nconst graphQlErrorMessage = \"Encountered internal system error\";\nconst networkErrorTitle = \"Network Error\";\nconst networkErrorMessage = \"Encountered network connectivity issue\";\nconst defaultSystemErr: Error = {\n id: \"\",\n title: graphQlErrorTitle,\n code: ErrorCode.CUSTOM_MESSAGE,\n message: graphQlErrorMessage\n};\n\nconst getErrorsToDisplay = (errors: Error[]): Error[] => {\n if (!errors.length) {\n return [defaultSystemErr];\n }\n\n const customErrors = errors.filter(e => e.code === ErrorCode.CUSTOM_MESSAGE);\n\n if (customErrors.length) {\n return customErrors;\n }\n\n return [];\n};\n\ntype Props = {\n children: (gqlError: any) => JSX.Element;\n};\n\nconst GraphQLErrorHandlerContainer = ({ children }: Props) => {\n const client = useApolloClient();\n const { data: gqlError } = useQuery(getGraphQLError);\n const { data: networkError } = useQuery(getNetworkError);\n const { addToast } = useToasts();\n\n useEffect(() => {\n if (gqlError && gqlError.graphQLErrors && gqlError.graphQLErrors.length) {\n const errors = filterErrors([...gqlError.graphQLErrors]);\n const errorsToDisplay = getErrorsToDisplay(errors);\n\n errorsToDisplay.map(err => {\n const message = capitalize(err.message);\n\n return addToast(\n ,\n {\n appearance: \"error\",\n autoDismiss: false,\n onDismiss: () =>\n client.writeQuery({\n query: getGraphQLError,\n data: {\n graphQLErrors: []\n }\n })\n }\n );\n });\n }\n if (networkError && networkError.networkError) {\n addToast(\n ,\n {\n appearance: \"error\",\n autoDismiss: false,\n onDismiss: () =>\n client.writeQuery({\n query: getNetworkError,\n data: {\n networkError: []\n }\n })\n }\n );\n }\n }, [gqlError, networkError, addToast, client]);\n\n return children(\n gqlError && gqlError.graphQLErrors && gqlError.graphQLErrors.length\n ? gqlError.graphQLErrors\n : null\n );\n};\n\nexport default GraphQLErrorHandlerContainer;\n","import { useQuery } from \"react-apollo-hooks\";\nimport userQuery from \"../lib/queries/user\";\nimport { UserInfo } from \"../types\";\n\nexport type UserData = {\n userInfo: UserInfo;\n};\n\nconst useFetchUserInfo = () => {\n return useQuery(userQuery);\n};\n\nexport default useFetchUserInfo;\n","import { useEffect, useState } from \"react\";\nimport { ApolloError, ApolloQueryResult } from \"apollo-client\";\nimport { isEqual } from \"lodash\";\nimport useFetchUserInfo, { UserData } from \"./useFetchUserInfo\";\nimport {\n localEffCompIDKey,\n getEffectiveCompany,\n setLocalEffCompID\n} from \"../generalHelpers\";\n\ntype Data = UserData | undefined | null;\n\ntype ReturnProps = {\n data: Data;\n error?: ApolloError;\n loading: boolean;\n refetch: () => Promise>;\n};\n\ntype Props = {\n resetDashboard: () => void;\n resetInProgress: boolean;\n setResetInProgress: () => void;\n};\n\nconst useUserInfo = ({\n resetDashboard,\n resetInProgress,\n setResetInProgress\n}: Props): ReturnProps => {\n // use custom userData state to avoid re-render of whole samplify\n const [userData, setUserData] = useState(null);\n const { data, error, loading, refetch } = useFetchUserInfo();\n\n const effComp =\n data && data.userInfo && getEffectiveCompany(data.userInfo.companies);\n\n useEffect(() => {\n if (!loading && !isEqual(userData, data)) {\n setUserData(data);\n if (effComp) {\n setLocalEffCompID(effComp.id);\n }\n }\n }, [loading, data, userData, effComp]);\n\n window.onstorage = (storageEvent: StorageEvent) => {\n if (!resetInProgress && !loading && !error) {\n if (\n storageEvent.key === localEffCompIDKey &&\n storageEvent.oldValue !== storageEvent.newValue\n ) {\n setResetInProgress();\n resetDashboard();\n }\n }\n };\n\n return {\n data: loading || !data ? userData : data,\n error,\n loading: loading || userData === null,\n refetch\n };\n};\n\nexport default useUserInfo;\n","import { useQuery } from \"react-apollo-hooks\";\nimport metaQuery from \"../lib/queries/metaData\";\nimport { StudyMetadata, Country } from \"../types\";\n\nexport type Data = {\n studyMetadata: StudyMetadata;\n countries: Array;\n};\n\nconst useStudyMetaData = () => useQuery(metaQuery);\n\nexport default useStudyMetaData;\n","import useFetchMetaData, { Data } from \"./useFetchMetaData\";\nimport { Country, MetaDataItem } from \"../types\";\nimport { ApolloError, ApolloQueryResult } from \"apollo-client\";\n\ntype ReturnProps = {\n countries: Array;\n deliveryModes: Array;\n studyRequirements: Array;\n surveyTopics: Array;\n refetch: () => Promise>;\n};\n\nconst validateData = (\n loading: boolean,\n error: ApolloError | undefined,\n data: Data | undefined\n): {\n countries: Array;\n deliveryModes: Array;\n studyRequirements: Array;\n surveyTopics: Array;\n} => {\n const metaData =\n !loading &&\n !error &&\n data &&\n data.countries &&\n data.studyMetadata &&\n data.studyMetadata.deliveryTypes &&\n data.studyMetadata.category &&\n data.studyMetadata.category.studyTypes &&\n data.studyMetadata.category.surveyTopics &&\n data.studyMetadata.category.studyRequirements\n ? data\n : undefined;\n\n return {\n countries: metaData ? metaData.countries : [],\n deliveryModes: metaData ? metaData.studyMetadata.deliveryTypes : [],\n studyRequirements: metaData\n ? metaData.studyMetadata.category.studyRequirements\n : [],\n surveyTopics: metaData ? metaData.studyMetadata.category.surveyTopics : []\n };\n};\n\nconst useMetaData = (): ReturnProps => {\n const { loading, error, data, refetch } = useFetchMetaData();\n\n return { ...validateData(loading, error, data), refetch };\n};\n\nexport default useMetaData;\n","import { useState } from \"react\";\nimport { ProjectFilters, PartialProjectFilters } from \"../types/ProjectFilters\";\n\nconst useFilters = () => {\n const startDate: Date = new Date();\n startDate.setDate(startDate.getDate() - 30);\n startDate.setHours(0, 0, 0, 0);\n const endDate: Date = new Date();\n endDate.setDate(endDate.getDate());\n endDate.setHours(23, 59, 59, 999);\n\n const initialState: ProjectFilters = {\n startDate: startDate,\n endDate: endDate,\n searchQuery: \"\",\n statuses: [],\n scope: \"user\"\n };\n const [filters, setFilters] = useState(initialState);\n const mergeFilters = (partial: PartialProjectFilters): ProjectFilters => ({\n ...filters,\n ...partial\n });\n const setPartialFilters = (partial: PartialProjectFilters) =>\n setFilters(mergeFilters(partial));\n\n return {\n initialFilters: initialState,\n filters,\n setFilters: setPartialFilters\n };\n};\n\nexport default useFilters;\n","import { useQuery, QueryHookOptions } from \"react-apollo-hooks\";\nimport { dashboardTableQuery } from \"../lib/queries/project\";\nimport { formatFilters } from \"../projectHelpers\";\nimport { ProjectFilters, FormattedFilters } from \"../types/ProjectFilters\";\nimport { Project } from \"../types\";\n\ntype Data = {\n projects: {\n projectsList: Array;\n hasNext: boolean;\n totalProjects: number;\n };\n};\ntype Variables = { pageNumber: number } & FormattedFilters;\ntype Options = QueryHookOptions;\n\nconst useGetDashboardProjects = (filters: ProjectFilters) => {\n const formattedFilters: FormattedFilters = formatFilters(filters);\n const variables: Variables = { pageNumber: 0, ...formattedFilters };\n const options: Options = {\n variables,\n fetchPolicy: \"cache-and-network\",\n notifyOnNetworkStatusChange: true\n };\n return useQuery(dashboardTableQuery, options);\n};\n\nexport default useGetDashboardProjects;\n","import { useState, useEffect } from \"react\";\nimport useGetDashboardProjects from \"./useGetDashboardProjects\";\nimport { formatFilters } from \"../projectHelpers\";\nimport { ProjectFilters } from \"../types/ProjectFilters\";\nimport { NetworkStatus } from \"apollo-client\";\n\nconst useDashboardPaging = (filters: ProjectFilters) => {\n const formattedFilters = formatFilters(filters);\n const [pageNumber, setPageNumber] = useState(1);\n useEffect(() => {\n setPageNumber(1);\n }, [filters]);\n const {\n data,\n fetchMore,\n error,\n loading,\n refetch,\n networkStatus\n } = useGetDashboardProjects(filters);\n\n const hasNext = data && data.projects ? data.projects.hasNext : false;\n const projectsList = data && data.projects ? data.projects.projectsList : [];\n const addMoreProjects = () => {\n fetchMore({\n variables: { pageNumber },\n updateQuery: (prev, { fetchMoreResult }) => {\n if (!fetchMoreResult) return prev;\n if (!prev) return prev;\n if (\n fetchMoreResult.projects.projectsList.every(np =>\n prev.projects.projectsList.find(\n pp => np.extProjectId === pp.extProjectId\n )\n ? true\n : false\n )\n )\n return prev;\n\n const newProjects = fetchMoreResult.projects.projectsList;\n const previousProjects = prev.projects.projectsList;\n const projects = [...previousProjects, ...newProjects];\n\n const newProjectList = {\n ...prev,\n projects: {\n totalProjects: fetchMoreResult.projects.totalProjects,\n hasNext: fetchMoreResult.projects.hasNext,\n projectsList: projects,\n __typename: \"Projects\"\n }\n };\n setPageNumber(pageNumber + 1);\n return newProjectList;\n }\n });\n };\n const refetchProjects = () => {\n setPageNumber(1);\n return refetch();\n };\n\n return {\n projectsList,\n error,\n hasNext,\n addMoreProjects,\n formattedFilters,\n pageNumber,\n loading: loading || networkStatus === NetworkStatus.refetch,\n refetchProjects\n };\n};\n\nexport default useDashboardPaging;\n","import { InMemoryCache, defaultDataIdFromObject } from \"apollo-cache-inmemory\";\nimport { ApolloClient } from \"apollo-client\";\nimport { HttpLink } from \"apollo-link-http\";\nimport { onError } from \"apollo-link-error\";\nimport { setContext } from \"apollo-link-context\";\nimport { withClientState } from \"apollo-link-state\";\nimport { ApolloLink } from \"apollo-link\";\nimport {\n getLoginURL,\n getGQLURL,\n appendLoginParams,\n getSessionId,\n clearSessionId\n} from \"./networkHelpers\";\nimport { getGraphQLError, getNetworkError } from \"./lib/queries/error\";\nimport { hasNoAccess } from \"./generalHelpers\";\n\n// omitTypenameLink strips out the __typename field from GraphQL operations.\n// Apollo client adds __typename on queries, but does not expect it in mutations.\n// See https://github.com/apollographql/apollo-client/issues/3616\nconst omitTypenameLink = new ApolloLink((operation, forward) => {\n if (operation.variables) {\n operation.variables = JSON.parse(\n JSON.stringify(operation.variables),\n (key, value) => (key === \"__typename\" ? undefined : value)\n );\n }\n return forward(operation);\n});\n\nconst hasUnauthError = ({ networkError, graphQLErrors }) =>\n (networkError &&\n (networkError.statusCode === 401 || networkError.statusCode === 402)) ||\n (graphQLErrors && graphQLErrors.some(e => e.message === \"401 Unauthorized\"));\n\n// errorLink logs graphQL errors and network errors to the console.\nconst errorLink = onError(({ graphQLErrors, networkError, response }) => {\n if (graphQLErrors) {\n graphQLErrors.map(({ message, locations, path, extensions }) =>\n console.log(\n `[GraphQL error]: Message: ${message}, Location: ${locations}, Path: ${path}, Extensions: ${extensions}`\n )\n );\n if (!hasNoAccess(graphQLErrors)) {\n cache.writeQuery({\n query: getGraphQLError,\n data: {\n graphQLErrors\n }\n });\n }\n }\n\n if (networkError) {\n console.log(`[Network error]: ${networkError}`);\n cache.writeQuery({\n query: getNetworkError,\n data: {\n networkError\n }\n });\n }\n\n if (hasUnauthError({ graphQLErrors, networkError }) && response) {\n response.errors = null;\n }\n});\n\nconst authHeaderLink = setContext((_, { headers }) => {\n const sessionId = getSessionId();\n return {\n headers: {\n ...headers,\n authorization: sessionId ? sessionId : \"\"\n }\n };\n});\n\nconst clientHttpLink = new HttpLink({ uri: getGQLURL() });\n\nconst dataIdFromObject = object => {\n switch (object.__typename) {\n case \"Project\":\n return object.extProjectId; // use `extProjectId` as the primary key\n case \"LineItem\":\n // ! extProjectId is undefined and could mess up caching\n return `LineItem:${object.extProjectId}_${object.extLineItemId}`; // use `extLineItemId` as the primary key\n case \"Attribute\":\n return `Attribute:${object.id}_${object.countryISOCode}_${\n object.languageISOCode\n }`; // use combo of lineitemID, countryISOCode and languageISOCode as the primary key\n default:\n return defaultDataIdFromObject(object); // fall back to default handling\n }\n};\n\nconst cache = new InMemoryCache({ dataIdFromObject });\n\n// keeping this to avoid undefined Network errors\nconst resolvers = {\n Mutation: {}\n};\n\nconst clientStateLink = withClientState({\n resolvers,\n cache\n});\n\nexport const stateLinkWriteDefault = async () => {\n clientStateLink.writeDefaults();\n};\n\nconst unauthorizedLink = onError(\n ({ operation, networkError, graphQLErrors, forward }) => {\n if (hasUnauthError({ networkError, graphQLErrors })) {\n clearSessionId();\n const redirect = appendLoginParams(getLoginURL());\n window.location.replace(redirect);\n }\n //if (forward) return forward(operation);\n }\n);\n\nfunction getClient() {\n return new ApolloClient({\n link: ApolloLink.from([\n unauthorizedLink,\n authHeaderLink,\n omitTypenameLink,\n errorLink,\n clientStateLink,\n clientHttpLink\n ]),\n cache\n });\n}\n\nexport default getClient;\n","import React, { Fragment, useState } from \"react\";\nimport { ApolloProvider } from \"react-apollo\";\nimport { ApolloProvider as ApolloHooksProvider } from \"react-apollo-hooks\";\nimport { DefaultThemeProvider } from \"samplify-design\";\nimport { BrowserRouter, useHistory } from \"react-router-dom\";\nimport { withDragDropContext } from \"react-surveytool\";\nimport { ToastProvider } from \"react-toast-notifications\";\nimport GlobalStyle from \"./components/GlobalStyle\";\nimport AppLayout from \"./components/AppLayout\";\nimport LoginContainer from \"./containers/LoginContainer\";\nimport FullStoryIdentifier from \"./components/FullStoryIdentifier\";\nimport IdleLogoutContainer from \"./containers/IdleLogoutContainer\";\nimport AppStatusContainer from \"./containers/AppStatusContainer\";\nimport OutageNotice from \"./components/OutageNotice\";\nimport UpdateFoundContainer from \"./containers/UpdateFoundContainer\";\nimport HealthyContainer from \"./containers/HealthyContainer\";\nimport MaintenanceMessage from \"./components/MaintenanceMessage\";\nimport AppStatus from \"./types/AppStatus\";\nimport Toast from \"./components/Toast\";\nimport GraphQLErrorHandlerContainer from \"./containers/GraphQLErrorHandlerContainer\";\nimport useUserInfo from \"./hooks/useUserInfo\";\nimport PageError from \"./components/PageError\";\nimport PageLoading from \"./components/PageLoading\";\nimport ApolloClient from \"apollo-client\";\nimport { NormalizedCacheObject } from \"apollo-cache-inmemory\";\nimport useMetaData from \"./hooks/useMetaData\";\nimport useProjectFilters from \"./hooks/useProjectFilters\";\nimport useDashboardPaging from \"./hooks/useDashboardPaging\";\nimport ModalPropsContext, { Modal } from \"./containers/ModalPropsContext\";\nimport getClient, { stateLinkWriteDefault } from \"./apolloClient\";\n\ntype AppStatusSwitchProps = {\n appStatus: AppStatus;\n healthy: AppStatus;\n client: ApolloClient;\n};\n\nconst AppStatusSwitch = ({\n appStatus,\n healthy,\n client\n}: AppStatusSwitchProps) => {\n const [modalData, setModalData] = useState({\n modalType: null,\n modalProps: null\n });\n const clearModalType = () => {\n setModalData(s => ({ ...s, modalType: null }));\n };\n\n if (appStatus === AppStatus.Blank || healthy === AppStatus.Blank) {\n return null;\n }\n\n if (appStatus === AppStatus.NotOK) {\n return ;\n }\n if (healthy === AppStatus.NotOK) {\n return ;\n }\n\n return (\n \n \n \n \n \n \n \n );\n};\n\ntype AppContainerProps = {\n client: ApolloClient;\n modalData: Modal;\n clearModalType: () => void;\n};\n\nconst AppContainer = ({\n client,\n modalData,\n clearModalType\n}: AppContainerProps) => {\n const history = useHistory();\n\n // using `resetInProgress` to avoid multiple calls for `resetDashboard` from checking effectiveCompany\n const [resetInProgress, setStateResetInProgress] = useState(false);\n const setResetInProgress = () => setStateResetInProgress(true);\n const resetDashboard = () => {\n // reset store to avoid stale cache data\n history.push(\"/\");\n client.clearStore().finally(() => {\n refetchUserData().then(() =>\n refetchMetaData().then(() =>\n refetchProjects().finally(() => setStateResetInProgress(false))\n )\n );\n });\n };\n // on reset of store write default cache and resolver to state-link\n client.onClearStore(stateLinkWriteDefault);\n\n const { data, error, loading, refetch: refetchUserData } = useUserInfo({\n resetDashboard,\n resetInProgress,\n setResetInProgress\n });\n\n const {\n countries,\n deliveryModes,\n studyRequirements,\n surveyTopics,\n refetch: refetchMetaData\n } = useMetaData();\n\n const { filters, setFilters } = useProjectFilters();\n const {\n projectsList,\n error: dashboardError,\n hasNext,\n addMoreProjects,\n formattedFilters,\n loading: dashboardLoading,\n refetchProjects\n } = useDashboardPaging(filters);\n\n if (loading) {\n return ;\n }\n if (error || !(data && data.userInfo)) {\n return ;\n }\n\n return (\n \n \n \n \n );\n};\n\nconst App = () => {\n const client = getClient();\n\n return (\n \n \n \n \n \n \n \n \n {gqlError => (\n \n {appStatus => (\n \n {healthy => (\n \n )}\n \n )}\n \n )}\n \n \n \n \n \n \n \n );\n};\n\nexport default withDragDropContext(App);\n","// In production, we register a service worker to serve assets from local cache.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on the \"N+1\" visit to a page, since previously\n// cached resources are updated in the background.\n\n// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.\n// This link also includes instructions on opting out of this behavior.\n\nconst isLocalhost = Boolean(\n window.location.hostname === \"localhost\" ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === \"[::1]\" ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport default function register() {\n if (process.env.NODE_ENV === \"production\" && \"serviceWorker\" in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener(\"load\", () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Lets check if a service worker still exists or not.\n checkValidServiceWorker(swUrl);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n \"This web app is being served cache-first by a service \" +\n \"worker. To learn more, visit https://goo.gl/SC7cgQ\"\n );\n });\n } else {\n // Is not local host. Just register service worker\n registerValidSW(swUrl);\n }\n });\n }\n}\n\n// Check and update the service worker per minute\nconst SW_UPDATE_INTERVAL = 60000;\n\nfunction registerValidSW(swUrl) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n const updateTick = () => {\n if (registration.installing) return;\n registration\n .update()\n .catch(e => console.error(\"Error during service worker update: \", e));\n };\n setInterval(updateTick, SW_UPDATE_INTERVAL);\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker === null) return;\n installingWorker.onstatechange = () => {\n if (installingWorker.state === \"installed\") {\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and\n // the fresh content will have been added to the cache.\n // It's the perfect time to display a \"New content is\n // available; please refresh.\" message in your web app.\n console.log(\"New content is available; please refresh.\");\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log(\"Content is cached for offline use.\");\n }\n }\n };\n };\n })\n .catch(error => {\n console.error(\"Error during service worker registration:\", error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n if (\n response.status === 404 ||\n response.headers.get(\"content-type\").indexOf(\"javascript\") === -1\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl);\n }\n })\n .catch(() => {\n console.log(\n \"No internet connection found. App is running in offline mode.\"\n );\n });\n}\n\nexport function unregister() {\n if (\"serviceWorker\" in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport App from \"./App\";\nimport register from \"./registerServiceWorker\";\nimport \"./react-virtualized-styles.css\";\nimport \"samplify-design/bundle.css\";\nimport \"./styles/globalStyle.css\";\nimport \"./index.css\";\nimport * as Sentry from \"@sentry/browser\";\nimport * as FullStory from \"@fullstory/browser\";\n\nregister();\n\ntry {\n if (process.env.NODE_ENV === \"production\") {\n // FullStory initialization ...\n FullStory.init({ orgId: \"HCGKS\" });\n\n // Sentry initialization ...\n const sentry_dsn =\n window.__SERVER_VARS__.attributes.sentryDSN ||\n process.env.REACT_APP_SENTRY_DSN;\n Sentry.init({ dsn: sentry_dsn });\n }\n} catch (e) {\n console.error(e);\n}\n\nReactDOM.render(, document.getElementById(\"root\"));\n","import {\n LineItemState,\n ProjectState,\n LineItem,\n Device as DeviceEnum,\n RespondentFilterDispositions,\n ExclusionType\n} from \"./types\";\nimport { ProjectFilters, FormattedFilters } from \"./types/ProjectFilters\";\n\nexport const bubbleStateLabelMap = {\n PROVISIONED: \"Draft\",\n CLOSED: \"Closed\",\n INVOICED: \"Invoiced\",\n LAUNCHED: \"Launched\",\n COMPLETED: \"Completed\",\n AWAITING_APPROVAL: \"Launched\",\n CANCELLED: \"Closed\",\n DRAFT: \"Draft\"\n};\n\nexport const isDraft = (state: ProjectState): boolean =>\n state === ProjectState.PROVISIONED ||\n state === ProjectState.REJECTED ||\n state === ProjectState.REJECTED_PAUSED;\n\nexport const isCloseable = (state: ProjectState): boolean =>\n state !== ProjectState.DRAFT && !isClosed(state);\n\nexport const isClosed = (state: ProjectState): boolean =>\n state === ProjectState.CLOSED ||\n state === ProjectState.CANCELLED ||\n state === ProjectState.INVOICED;\n\n// no new surveys in these states\nexport const isLocked = (state: ProjectState): boolean =>\n state === ProjectState.CLOSED ||\n state === ProjectState.INVOICED ||\n state === ProjectState.CANCELLED;\n\nexport const isLaunched = (state: ProjectState): boolean =>\n isLive(state) ||\n state === ProjectState.CLOSED ||\n state === ProjectState.INVOICED ||\n state === ProjectState.CANCELLED;\n\nexport const isLive = (state: ProjectState): boolean =>\n state === ProjectState.LAUNCHED ||\n state === ProjectState.QA_APPROVED ||\n state === ProjectState.AWAITING_APPROVAL ||\n isPaused(state);\n\nexport const isPaused = (state: ProjectState): boolean =>\n state === ProjectState.PAUSED ||\n state === ProjectState.AWAITING_APPROVAL_PAUSED ||\n state === ProjectState.AWAITING_CLIENT_APPROVAL;\n\nconst isEditable = (\n projectState: ProjectState,\n lineitems: Array\n): boolean => {\n if (\n projectState === ProjectState.PROVISIONED ||\n projectState === ProjectState.DRAFT\n ) {\n return !lineitems.some(\n li =>\n li.state === LineItemState.AWAITING_APPROVAL ||\n li.state === LineItemState.QA_APPROVED\n );\n }\n return false;\n};\n\nexport const isTitleUpdatable = (state: ProjectState): boolean => {\n if (state === ProjectState.CANCELLED || state === ProjectState.INVOICED) {\n return false;\n }\n return true;\n};\n\nexport const areProjectSettingsUpdatable = (\n projectState: ProjectState,\n lineitems: Array\n): boolean => {\n if (projectState === ProjectState.LAUNCHED) {\n return true;\n }\n return isEditable(projectState, lineitems);\n};\n\nexport const areProjectCategoriesUpdatable = (\n projectState: ProjectState,\n lineitems: Array\n): boolean => isEditable(projectState, lineitems);\n\n// Date format: \"2006-01-02\"\nexport const explicitDateString = (d: Date) => {\n const dateNumber = (num: number) => {\n if (num < 10) return `0${num}`;\n return num;\n };\n\n return `${d.getFullYear()}-${dateNumber(d.getMonth() + 1)}-${dateNumber(\n d.getDate()\n )}`;\n};\n\nexport const multiSelectValuesStyle = (\n background: string,\n textColor: string,\n canChangeTopics = false\n) => {\n const padding = canChangeTopics ? \"2px\" : \"8px\";\n const display = canChangeTopics ? \"flex\" : \"none\";\n return {\n indicatorsContainer: (styles: any) => ({\n ...styles,\n display: `${display}`\n }),\n multiValue: (styles: any) => ({\n ...styles,\n backgroundColor: `${background}`,\n borderRadius: \"12px\",\n color: `${textColor}`\n }),\n multiValueLabel: (styles: any) => ({\n ...styles,\n color: `${textColor}`,\n padding: \"4px\",\n paddingLeft: \"8px\",\n paddingRight: `${padding}`\n }),\n multiValueRemove: (styles: any) => ({\n ...styles,\n color: `${textColor}`,\n paddingLeft: 0,\n display: `${display}`,\n \":hover\": {\n backgroundColor: `${background}`,\n borderRadius: \"12px\",\n color: `${textColor}`,\n cursor: \"pointer\"\n },\n \"> svg\": {\n height: \"12px\"\n }\n })\n };\n};\n\nexport const formatFilters = (filters: ProjectFilters): FormattedFilters => {\n const startDate = filters.startDate\n ? explicitDateString(new Date(filters.startDate))\n : \"\";\n const endDate = filters.endDate\n ? explicitDateString(new Date(filters.endDate))\n : \"\";\n const searchQuery = filters.searchQuery || null;\n const statuses = filters.statuses || [];\n const scope = filters.scope || \"\";\n\n return {\n startDate,\n endDate,\n searchQuery,\n statuses,\n scope\n };\n};\n\nexport enum ReasonCode {\n DEVICE = \"DEVICE\",\n CATEGORY = \"CATEGORY\"\n}\nexport const foundDeviceOrCategoryError = (\n lineItems: Array,\n type: ReasonCode\n) =>\n lineItems.some(lineItem =>\n lineItem.events.some(\n event =>\n event.eventType === \"LineItem:StateChange:Rejected\" &&\n event.details.reasons.some(reason => reason.code.includes(type))\n )\n );\n\nexport const route = (extProjectId: string, extLineItemId?: string) =>\n `/project/${extProjectId}/respondents#${extLineItemId ? extLineItemId : \"\"}`;\n\nexport const getDeviceType = (s: string): DeviceEnum => {\n switch (s) {\n case DeviceEnum.mobile:\n return DeviceEnum.mobile;\n\n case DeviceEnum.tablet:\n return DeviceEnum.tablet;\n\n default:\n return DeviceEnum.desktop;\n }\n};\n\nexport const respondentStatuses: RespondentFilterDispositions = [\n \"COMPLETED\",\n \"SCREENOUT\",\n \"INCOMPLETE\",\n \"OVERQUOTA\"\n];\n\nexport const respondentStatusLabelMap: { [key: string]: string } = {\n COMPLETED: \"Completed\",\n SCREENOUT: \"Screen Out\",\n INCOMPLETE: \"Incomplete\",\n OVERQUOTA: \"Over Quota\"\n};\n\nexport const respondentEntryDateTypeLabelMap: { [key: string]: string } = {\n ALL_DATES: \"All Dates\",\n LAST_DAYS: \"Last day(s)\",\n LAST_MONTHS: \"Last month(s)\",\n CUSTOM: \"Custom\"\n};\n\nexport const timeBasedProjectExclusionsTypes: Array = [\n \"THIS_MONTH\",\n \"LAST_MONTH\",\n \"LAST_THREE_MONTHS\"\n];\n\nexport const timeBasedProjectExclusionsTypeLabelMap: {\n [key: string]: string;\n} = {\n THIS_MONTH: \"This month\",\n LAST_MONTH: \"Last month\",\n LAST_THREE_MONTHS: \"Last 3 months\"\n};\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport { Button, Tooltip, ModalCancel } from \"samplify-design\";\nimport iconError from \"../../art/iconError.svg\";\n\nconst StyledGrid = styled.div`\n display: grid;\n grid-template-columns: auto auto;\n margin-top: 2.5rem;\n`;\n\nconst StyledErrorCell = styled.div`\n display: flex;\n align-items: center;\n justify-content: flex-start;\n`;\nconst StyledErrorSpan = styled.span`\n font: normal 400 1.2rem/1.7rem ${props => props.theme.fontFamily};\n color: #f76e5c;\n`;\nconst StyledErrorIcon = styled.img`\n width: 1rem;\n height: auto;\n margin-right: 0.8rem;\n`;\n\nconst StyledButtons = styled.div`\n display: flex;\n align-items: center;\n justify-content: flex-end;\n`;\n\nconst StyledCancelButton = styled(ModalCancel)`\n font: normal 400 1.2rem/1.7rem ${props => props.theme.fontFamily};\n color: #696e7b;\n margin-right: 1.5rem;\n`;\n\nconst StyledSaveButton = styled(Button)`\n font: normal 400 1.2rem/2rem ${props => props.theme.fontFamily};\n color: #ffffff;\n max-height: 3rem;\n width: 8.5rem;\n`;\n\nconst StyledTooltip = styled(Tooltip)`\n z-index: 99999;\n`;\n\nconst StyledDisabledButton = styled(StyledSaveButton)`\n background-color: #b0b3bc;\n cursor: default;\n :hover {\n cursor: default;\n background-color: #b0b3bc;\n }\n`;\n\ntype Props = {\n onSave: () => void;\n onCancel: () => void;\n saveDisabled: boolean;\n tooltipOverlay: React.ReactNode;\n saveButtonName: string;\n showError: boolean;\n errorMsg?: string;\n toggleErrorHighlight: (b: boolean) => void;\n};\n\nconst AttributeEditButtonGroup = ({\n onSave,\n onCancel,\n saveDisabled,\n tooltipOverlay,\n saveButtonName,\n showError,\n errorMsg,\n toggleErrorHighlight\n}: Props) => {\n const saveButton = saveDisabled ? (\n \n toggleErrorHighlight(true)}>\n {saveButtonName}\n \n \n ) : (\n toggleErrorHighlight(false)}\n onClick={onSave}\n >\n {saveButtonName}\n \n );\n\n const maybeError = showError ? (\n \n \n {errorMsg}\n \n ) : null;\n\n return (\n \n {maybeError}\n \n Cancel\n {saveButton}\n \n \n );\n};\n\nexport default AttributeEditButtonGroup;\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport { Spinner } from \"samplify-design\";\n\nconst Outer = styled.div`\n\ttext-align: center;\n\tfont-size: 5rem;\n\tmargin-top: 2rem;\n`;\n\ninterface Props {\n\terror?: Error;\n}\n\nconst PageLoading = ({ error }: Props) => {\n\tif (error) throw error;\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default PageLoading;","export type Partial = { [P in keyof T]?: T[P] };\n\nexport type Country = {\n ID: string;\n isoCode: string;\n name: string;\n supportedLanguages: Array;\n};\n\nexport type Language = {\n ID: string;\n isoCode: string;\n name: string;\n};\n\nexport type SourcesForCountry = {\n [languageISOCode: string]: Array;\n};\n\nexport type SampleSourceMap = {\n [countryISOCode: string]: SourcesForCountry;\n};\n\nexport type Attributes = {\n countryISOCode: string;\n languageISOCode: string;\n list: string;\n};\n\nexport enum Device {\n mobile = \"mobile\",\n desktop = \"desktop\",\n tablet = \"tablet\"\n}\n\nexport interface Category {\n surveyTopic: Array;\n studyType: Array;\n studyRequirements: Array;\n}\n\nexport type ProjectHeader = {\n extProjectId: string;\n title: string;\n state: ProjectState;\n stateLastUpdatedAt: string;\n createdAt: string;\n updatedAt: string;\n};\n\nexport enum ProjectState {\n PROVISIONED = \"PROVISIONED\",\n AWAITING_APPROVAL = \"AWAITING_APPROVAL\",\n LAUNCHED = \"LAUNCHED\",\n PAUSED = \"PAUSED\",\n CLOSED = \"CLOSED\",\n INVOICED = \"INVOICED\",\n REJECTED = \"REJECTED\",\n QA_APPROVED = \"QA_APPROVED\",\n CANCELLED = \"CANCELLED\",\n COMPLETED = \"COMPLETED\",\n AWAITING_APPROVAL_PAUSED = \"AWAITING_APPROVAL_PAUSED\",\n AWAITING_CLIENT_APPROVAL = \"AWAITING_CLIENT_APPROVAL\",\n REJECTED_PAUSED = \"REJECTED_PAUSED\",\n DRAFT = \"DRAFT\"\n}\n\nexport type SampleSource = {\n ID: string;\n name: string;\n default: boolean;\n visibility: \"VISIBLE\" | \"DISABLED\";\n};\n\nexport enum AuthoringPlatform {\n MACADAMIA = \"macadamia\",\n EXTERNAL = \"external\",\n CMIX = \"cmix\"\n}\n\nexport type Survey = {\n id: string;\n name: string;\n liveLink: string;\n testLink: string;\n exitLinks: SurveyExitLinks;\n tests: Array;\n entryLink: EntryLink;\n surveyKey: string;\n hasCustomParams: boolean;\n customParams: CustomParams | null;\n formattedTestLink: string;\n formattedLiveLink: string;\n liveLinkErrors: Array;\n testLinkErrors: Array;\n authoringPlatform: AuthoringPlatform;\n dataAppends: DataAppends[];\n testingNotes: string;\n editLink: string | null;\n actions: SurveyAction[];\n localeLinks: Array | null;\n};\n\nexport type LocaleLink = {\n localeName: string;\n countryISOCode: string;\n languageISOCode: string;\n liveLink: string;\n testLink: string;\n entryLink: string;\n};\n\nexport type LinkError = {\n error: Error;\n paramList: Array;\n};\n\nexport type SurveyExitLinks = {\n complete: string;\n disqualified: string;\n overQuota: string;\n};\n\nexport type CustomParams = {\n psid: string;\n pid: string;\n securityKey: string;\n};\n\nexport type SurveyTest = {\n ID: string;\n status: TestStatus;\n latest: boolean;\n disposition: Disposition;\n testedAt: string;\n};\n\nexport type Security = {\n securityLevel: SecurityLevel;\n securitykey1: string;\n securitykey2: string;\n};\n\nexport enum SecurityLevel {\n NONE = \"NONE\",\n BASIC = \"BASIC\",\n MEDIUM = \"MEDIUM\",\n HIGH = \"HIGH\",\n SIGNED_URL = \"SIGNED_URL\"\n}\n\nexport type Append = {\n attributeId: string;\n attributeName: string;\n customKey: string;\n};\n\nexport type DataAppends = {\n countryISOCode: string;\n appends: Append[];\n __typename?: string;\n};\n\nexport type DataAppendAttributes = {\n country: Country;\n attributes: Attribute[];\n};\n\nexport type CountryEntryLink = {\n countryISOCode: string;\n entryLink: string;\n};\n\nexport type EntryLink = {\n baseLink: string;\n countryEntryLinks: CountryEntryLink[];\n};\n\nexport type Schedule = {\n startTime: string;\n endTime: string;\n __typename?: string;\n};\n\nexport enum LineItemState {\n PROVISIONED = \"PROVISIONED\",\n AWAITING_APPROVAL = \"AWAITING_APPROVAL\",\n LAUNCHED = \"LAUNCHED\",\n PAUSED = \"PAUSED\",\n CLOSED = \"CLOSED\",\n INVOICED = \"INVOICED\",\n REJECTED = \"REJECTED\",\n REJECTED_PAUSED = \"REJECTED_PAUSED\",\n QA_APPROVED = \"QA_APPROVED\",\n CANCELLED = \"CANCELLED\",\n COMPLETED = \"COMPLETED\",\n AWAITING_APPROVAL_PAUSED = \"AWAITING_APPROVAL_PAUSED\",\n AWAITING_CLIENT_APPROVAL = \"AWAITING_CLIENT_APPROVAL\",\n AWAITING_AUTO_APPROVAL = \"AWAITING_AUTO_APPROVAL\"\n}\n\nexport type SurveyLocale = {\n surveyId: string | null;\n countryISOCode: string | null;\n languageISOCode: string | null;\n __typename?: string;\n};\n\nexport type LineItem = {\n extProjectId: string;\n countryISOCode: string;\n createdAt: string;\n daysInField: number | null;\n fieldSchedule: Schedule | null;\n deliveryType: DeliveryType;\n events: [LineItemEvent];\n extLineItemId: string;\n indicativeIncidence: number;\n languageISOCode: string;\n launchedAt: string;\n lengthOfInterview: number;\n quotaPlan: QuotaPlan;\n report: LineItemReport | null;\n requiredCompletes: number;\n cpi: string;\n state: LineItemState;\n stateLastUpdatedAt: string;\n stateReason: string;\n survey: SurveyLocale | null;\n title: string;\n feasibility: Feasibility;\n updatedAt: string;\n source: string;\n actions: [LineItemAction];\n quote: Quote;\n rejectionResolution: RejectionResolution | null;\n popularAttributes: [string];\n attributes: string;\n};\n\nexport type Quote = {\n costPerUnit: string;\n detailedQuote: [DetailedQuote];\n estimatedCost: string;\n};\n\nexport type DetailedQuote = {\n costPerUnit: string;\n estimatedCost: string;\n title: string;\n type: QuoteType;\n units: number;\n};\n\nexport type QuoteType = \"BASE\" | \"PREMIUM\";\n\nexport type Attribute = {\n id: string;\n countryISOCode: string;\n languageISOCode: string;\n name: string;\n text: string;\n type: AttributeType;\n isAllowedInFilters: boolean;\n isAllowedInQuotas: boolean;\n options: string;\n format: string;\n state: AttributeState;\n category: AttributeCategory;\n tier: AttributeTier;\n};\n\nexport type AttributeTier = \"STANDARD\" | \"PREMIUM\";\n\nexport type AttributeCategory = {\n mainCategory: AttrCategory;\n subCategory: AttrCategory;\n};\n\ntype AttrCategory = {\n id: string;\n text: string;\n localizedText: string;\n};\n\nexport type AttributeOption = {\n id: string;\n text: string;\n localizedText: string;\n};\n\nexport type AttributeState = \"ACTIVE\" | \"DEPRECATED\" | \"INACTIVE\";\n\nexport type AttributeType = \"LIST\" | \"INTEGER_RANGE\" | \"STRING\" | \"INTEGER\";\n\nexport type AttributeMap = {\n [id: string]: Attribute;\n};\n\nexport type AttributeOptionMap = {\n [id: string]: AttributeOption;\n};\n\nexport type QuotaGroup = {\n __typename?: string;\n name: string;\n quotaCells: Array;\n quotaGroupReport: Report;\n};\n\nexport type QuotaGroupInput = {\n __typename?: string;\n name: string;\n quotaCells: Array;\n};\n\nexport type QuotaCell = {\n __typename?: string;\n quotaCellID: string;\n count: number;\n perc: number;\n status: string;\n quotaNodes: Array;\n quotaCellReport: Report;\n extProjectId: string;\n extLineItemId: string;\n};\n\nexport type UpdateQuotaCellStatusData = {\n updateQuotaCellStatus: QuotaCell;\n};\n\nexport type QuotaNode = {\n __typename?: string;\n attributeId: string;\n options: Array;\n};\n\nexport type QuotaCellInput = {\n __typename?: string;\n quotaCellID?: string;\n count: number;\n perc: number;\n status?: string;\n quotaNodes: Array;\n};\n\nexport type QuotaFilter = {\n __typename?: string;\n attributeId: string;\n options: Array;\n operator: OperatorType;\n};\n\nexport type QuotaNodeInput = {\n __typename?: string;\n attributeId: string;\n options: Array;\n};\n\nexport type OperatorType = \"EXCLUDE\" | \"INCLUDE\";\n\nexport type QuotaFilterInput = {\n __typename?: string;\n attributeId: string;\n options: Array;\n operator: OperatorType;\n};\n\nexport type QuotaPlan = {\n __typename?: string;\n filters: Array;\n quotaGroups: Array;\n};\n\nexport type QuotaPlanInput = {\n __typename?: string;\n filters: Array;\n quotaGroups: Array;\n};\n\ntype EventValues = {\n newValue: string;\n previousValue: string;\n};\n\ntype EventStatusValues = {\n newValue: string;\n previousValue: string;\n};\n\ntype EventResource = {\n costPerInterview: EventValues;\n estimatedCost: EventValues;\n lengthOfInterview: EventValues;\n indicativeIncidence: EventValues;\n incurredCost: EventValues;\n currency: string;\n status: EventStatusValues;\n reason: string;\n};\n\nexport type LineItemEvent = {\n eventId: string;\n eventType: string;\n extProjectId: string;\n extLineItemId: string;\n resource: EventResource;\n createdAt: string;\n details: EventDetails;\n};\n\nexport type EventDetails = {\n comments: string;\n reasons: Array;\n};\n\nexport type EventReasons = {\n code: string;\n description: string;\n};\n\nexport type ActionMetadata = {\n label: string;\n enabled: boolean;\n visible: boolean;\n description: string;\n};\n\nexport type ActionType = {\n kind:\n | LineItemActionKind\n | UserActionKind\n | ProjectActionKind\n | SurveyActionKind;\n metadata: ActionMetadata;\n};\n\nexport type LineItemAction = {\n kind: LineItemActionKind;\n metadata: ActionMetadata;\n};\n\nexport type UserAction = {\n kind: UserActionKind;\n metadata: ActionMetadata;\n};\n\nexport type ProjectAction = {\n kind: ProjectActionKind;\n metadata: ActionMetadata;\n};\n\nexport type SurveyAction = {\n kind: SurveyActionKind;\n metadata: ActionMetadata;\n};\n\nexport type ActionStateMap = { [key in LineItemActionKind]: LineItemAction };\n\nexport enum LineItemActionKind {\n PAUSE = \"PAUSE\",\n LAUNCH = \"LAUNCH\",\n CLOSE = \"CLOSE\",\n APPROVE_REPRICE = \"APPROVE_REPRICE\",\n DECLINE_REPRICE = \"DECLINE_REPRICE\",\n DUPLICATE = \"DUPLICATE\",\n EDIT = \"EDIT\",\n SPLIT_SOURCE = \"SPLIT_SOURCE\",\n ESTIMATES = \"ESTIMATES\",\n EDIT_TITLE = \"EDIT_TITLE\",\n EDIT_REQUIRED_COMPLETES = \"EDIT_REQUIRED_COMPLETES\",\n EDIT_FIELDING_DAYS = \"EDIT_FIELDING_DAYS\",\n EDIT_DELIVERY_TYPE = \"EDIT_DELIVERY_TYPE\",\n EDIT_SURVEY_ID = \"EDIT_SURVEY_ID\",\n EDIT_LENGTH_OF_INTERVIEW = \"EDIT_LENGTH_OF_INTERVIEW\",\n EDIT_COUNTRY_ISO = \"EDIT_COUNTRY_ISO\",\n EDIT_LANGUAGE_ISO = \"EDIT_LANGUAGE_ISO\",\n EDIT_SOURCE_ID = \"EDIT_SOURCE_ID\",\n EDIT_INDICTIVE_INCIDENCE = \"EDIT_INDICTIVE_INCIDENCE\",\n EDIT_ATTRIBUTES = \"EDIT_ATTRIBUTES\",\n EDIT_QUOTA_PLAN = \"EDIT_QUOTA_PLAN\",\n EDIT_QUOTA_CELL = \"EDIT_QUOTA_CELL\"\n}\n\nexport enum UserActionKind {\n CREATE_NEW_PROJECT = \"CREATE_NEW_PROJECT\"\n}\n\nexport enum ProjectActionKind {\n CREATE_NEW_LINE_ITEM = \"CREATE_NEW_LINE_ITEM\",\n CREATE_NEW_SURVEY = \"CREATE_NEW_SURVEY\",\n DOWNLOAD_INVOICE = \"DOWNLOAD_INVOICE\",\n REQUEST_RECONCILIATION = \"REQUEST_RECONCILIATION\",\n CLOSE_OR_SUMMARY = \"CLOSE_OR_SUMMARY\",\n EDIT_TOPICS = \"EDIT_TOPICS\",\n EDIT_DEVICES = \"EDIT_DEVICES\",\n EDIT_EXCLUSIONS = \"EDIT_EXCLUSIONS\",\n EDIT_RESTRICTIONS = \"EDIT_RESTRICTIONS\",\n EDIT_PO_NUMBER = \"EDIT_PO_NUMBER\",\n EDIT_TITLE = \"EDIT_TITLE\",\n DUPLICATE = \"DUPLICATE\",\n EDIT = \"EDIT\"\n}\n\nexport enum SurveyActionKind {\n EDIT_TITLE = \"EDIT_TITLE\",\n EDIT_LIVE_LINK = \"EDIT_LIVE_LINK\",\n EDIT_IDENTIFIERS = \"EDIT_IDENTIFIERS\",\n EDIT_DATA_APPENDS = \"EDIT_DATA_APPENDS\",\n EDIT_TEST_LINK = \"EDIT_TEST_LINK\",\n EDIT_NOTES = \"EDIT_NOTES\",\n EDIT = \"EDIT\",\n DELETE = \"DELETE\",\n TEST = \"TEST\"\n}\n\nexport enum ResourceType {\n USER = \"User\",\n SURVEY = \"Survey\",\n PROJECT = \"Project\",\n LINEITEM = \"LineItem\"\n}\n\nexport type Disposition =\n | \"COMPLETE\"\n | \"DISQUALIFICATION\"\n | \"OVERQUOTA\"\n | \"IN_PROGRESS\"\n | \"FAILED\";\n\nexport type TestStatus = \"SUCCESS\" | \"FAILURE\" | \"IN_PROGRESS\";\n\nexport enum DeliveryType {\n SLOW = \"SLOW\",\n BALANCED = \"BALANCED\",\n FAST = \"FAST\",\n BURST = \"BURST\",\n UNLIMITED = \"UNLIMITED\"\n}\n\ntype StatStatus = \"OK\" | \"Info\" | \"Warning\" | \"Error\" | \"Critical\";\n\nexport type Stat = {\n intValue: number;\n floatValue: number;\n percentageValue: number;\n percentageValueRounded: number;\n status: StatStatus;\n statusMessage: string;\n};\n\nexport type Source = {\n ID: string;\n name: string;\n};\n\nexport interface LineItemReport {\n extLineItemId: string;\n state: LineItemState;\n title: string;\n stats: Report;\n cost: Cost;\n sources: Source[];\n actualIncidence: Stat;\n}\n\nexport type Report = {\n attempts: Stat;\n completes: Stat;\n screenouts: Stat;\n overquotas: Stat;\n incompletes: Stat;\n completesRefused: Stat;\n conversion: Stat;\n incidence: Stat;\n progress: Stat;\n remainingCompletes: Stat;\n actualMedianLOI: Stat;\n};\n\nexport type Cost = {\n costPerUnit: string;\n estimatedCost: string;\n incurredCost: string;\n detailedCost: Array;\n};\n\nexport type DetailedCost = {\n costPerUnit: string;\n estimatedCost: string;\n incurredCost: string;\n title: string;\n type: CostType;\n deliveredUnits: number;\n requestedUnits: number;\n};\n\nexport type CostType = \"BASE\" | \"PREMIUM\";\n\nexport type LineItemSettingsInput = {\n title: string;\n survey: SurveyLocale | null;\n lengthOfInterview: number;\n countryISOCode: string;\n languageISOCode: string;\n source: string;\n indicativeIncidence: number;\n daysInField: number | null;\n requiredCompletes: number;\n deliveryType: string;\n fieldSchedule: Schedule | null;\n};\n\nexport type AddLineItemInput = {\n extProjectId: string;\n quotaPlan?: QuotaPlanInput;\n} & LineItemSettingsInput;\n\nexport type UpdateLineItemInput = {\n extProjectId: string;\n extLineItemId: string;\n quotaPlan?: QuotaPlanInput;\n templateID: number | null;\n} & LineItemSettingsInput;\n\nexport type DuplicateLineItemInput = {\n extProjectId: string;\n extLineItemId: string;\n};\n\nexport type FeasibilityStatus =\n | \"READY\"\n | \"PROCESSING\"\n | \"NOT_SUPPORTED\"\n | \"FAILED\";\n\nexport type FeasibilityQuotaNode = {\n __typename?: string;\n attributeId: string;\n options: Array;\n};\n\nexport type FeasibilityQuotaCell = {\n quotaNodes: Array;\n feasibilityCount: number;\n level: FeasibilityLevel;\n};\n\nexport type FeasibilityQuotaGroup = {\n quotaCells: Array;\n};\n\nexport type FeasibilityState = {\n feasibility: Feasibility | null;\n isPolling: boolean;\n timedOut: boolean;\n};\n\nexport type Feasibility = {\n extLineItemId: string;\n status: FeasibilityStatus;\n costPerInterview: string;\n currency: string;\n feasible: boolean;\n errors: Array;\n totalCount: number;\n level: FeasibilityLevel;\n valueCounts: Array;\n};\n\nexport type FeasibilityLevel = \"OK\" | \"LOW\" | \"CRITICAL\";\n\nexport enum ErrorCode {\n UNKNOWN = \"UNKNOWN\",\n CUSTOM_MESSAGE = \"CUSTOM_MESSAGE\",\n INVALID_URL = \"INVALID_URL\",\n INVALID_IDENTIFIERS = \"INVALID_IDENTIFIERS\",\n INVALID_ATTRIBUTE_OPTIONS = \"INVALID_ATTRIBUTE_OPTIONS\"\n}\n\nexport type Error = {\n id: string;\n code: ErrorCode;\n title: string;\n message: string;\n};\n\nexport type BasicGraphQLError = {\n message: string;\n};\n\nexport type RejectionResolution = {\n comments: string;\n reasons: Reason[];\n rejectionType: string;\n};\n\nexport type Reason = {\n code: string;\n};\n\nexport enum AppID {\n CMIX = \"CMIX\",\n SAMPLIFY = \"SAMPLIFY\",\n MARKET_SIGHT = \"MARKET_SIGHT\",\n INSTANT_INSIGHTS = \"INSTANT_INSIGHTS\"\n}\n\nexport type Application = {\n id: AppID;\n title: string;\n description: string;\n icon: string;\n url: string;\n};\n\nexport type UserTermsInfo = {\n termsAccepted: boolean;\n signedVersion: number;\n currentVersion: number;\n};\n\nexport type UserSettings = {\n allowSurveyBuilder: boolean;\n applications: Array;\n};\n\nexport type UserInfo = {\n id: string | null;\n userName: string | null;\n userTermsInfo: UserTermsInfo;\n roles: Array;\n firstName: string;\n fullName: string;\n initials: string;\n settings: UserSettings;\n email: string;\n companies: Array;\n helpScoutSignature: string;\n hsDashboardMessage: string;\n hsRespondentsMessage: string;\n hsSurveysMessage: string;\n hsInvoicesMessage: string;\n actions: Array;\n};\n\nexport type Company = {\n isDefault: boolean;\n isEffective: boolean;\n id: number;\n name: string;\n};\n\nexport type ProjectReport = {\n extProjectId: string;\n state: string;\n avgCpi: string;\n stats: Report;\n cost: Cost;\n lineitemReport: LineItemReport[];\n};\n\nexport enum BillingType {\n AGGREGATED_MONTHLY = \"AGGREGATED_MONTHLY\",\n PER_PROJECT = \"PER_PROJECT\"\n}\n\nexport type Billing = {\n ID: string;\n type: BillingType;\n billingDate: string;\n};\n\nexport type Project = {\n extProjectId: string;\n title: string;\n jobNumber: string;\n userName: string;\n notificationEmails: string[];\n devices: Device[];\n category: Category;\n respondentFilters: RespondentFilters;\n report: ProjectReport;\n state: ProjectState;\n stateLastUpdatedAt: string;\n createdAt: string;\n updatedAt: string;\n launchedAt: string;\n closedAt: string;\n securitykey1: string;\n securitykey2: string;\n securityLevel: string;\n lineItems: LineItem[];\n lineItem: LineItem;\n surveys: Survey[];\n billing: Billing;\n viewOnly: boolean;\n dynataManaged: boolean;\n actions: ProjectAction[];\n};\n\nexport type Invoice = {\n name: string;\n type: BillingType;\n projects: Project[];\n status: string;\n cost: string;\n};\nexport type ExclusionType =\n | \"PROJECT\"\n | \"TAG\"\n | \"THIS_MONTH\"\n | \"LAST_MONTH\"\n | \"LAST_THREE_MONTHS\"\n | \"CUSTOM_TIME_PERIOD\";\n\nexport type ExcludableProject = {\n extProjectId: string;\n title: string;\n};\n\nexport type ExcludableProjects = Array;\n\nexport type Duplicatable = {\n isDuplicatable: {\n isDuplicatable: boolean;\n deprecatedAttributes: Attribute[];\n };\n};\n\nexport type TargetingTemplate = {\n id: string;\n name: string;\n description: string;\n state: string;\n countryISOCode: string;\n languageISOCode: string;\n tags: string[];\n createdAt: string;\n updatedAt: string;\n editable: boolean;\n quotaPlan: QuotaPlan;\n};\n\nexport type CreateTargetingTemplateInput = {\n name: string;\n description: string;\n countryISOCode: string;\n languageISOCode: string;\n quotaPlan: QuotaPlanInput;\n tags: string[];\n};\nexport type MetaDataItem = {\n name: string;\n id: string;\n description: string;\n allowed: boolean;\n};\n\nexport type CategoryMetadata = {\n studyTypes: Array;\n studyRequirements: Array;\n surveyTopics: Array;\n};\n\nexport type StudyMetadata = {\n category: CategoryMetadata;\n deliveryTypes: Array;\n};\n\nexport type CreateSurveyInput = {\n input: {\n extProjectId: string;\n name: string;\n authoringPlatform: AuthoringPlatform;\n extSurveyId?: string;\n };\n};\n\nexport type UpdateSurveyInput = {\n input: {\n id: string;\n extProjectId: string;\n liveLink?: string;\n testLink?: string;\n customParams?: CustomParamsInput;\n dataAppends?: DataAppends[];\n testingNotes?: string;\n };\n};\n\ntype CustomParamsInput = {\n psid: string;\n pid: string;\n securityKey?: string;\n};\n\nexport type ExternalSurveys = {\n authoringPlatform: AuthoringPlatform;\n totalSurveys: number;\n nextPage: number;\n hasNext: boolean;\n surveys: Array;\n __typename?: string;\n};\n\nexport enum ExternalSurveyStatus {\n LIVE = \"LIVE\",\n DESIGN = \"DESIGN\",\n TEST = \"TEST\",\n CLOSED = \"CLOSED\"\n}\n\nexport type ExternalSurvey = {\n id: string;\n name: string;\n createdAt: string;\n modifiedAt: string;\n status: ExternalSurveyStatus;\n mappedProject: MappedProject | null;\n};\n\nexport type MappedProject = {\n projectID: string;\n projectName: string;\n surveyID: string;\n};\n\nexport enum QuotaCellAction {\n PAUSE = \"pause\",\n LAUNCH = \"launch\"\n}\n\nexport type UpdateQuotaCellStatusInput = {\n input: {\n extProjectID: string;\n extLineItemID: string;\n quotaCellID: string;\n action: QuotaCellAction;\n };\n};\n\nexport type RespondentFilterDispositionType =\n | \"COMPLETED\"\n | \"SCREENOUT\"\n | \"INCOMPLETE\"\n | \"OVERQUOTA\";\n\nexport type RespondentFilterScheduleType =\n | \"ALL_DATES\"\n | \"THIS_MONTH\"\n | \"LAST_DAYS\"\n | \"LAST_MONTHS\"\n | \"CUSTOM\";\n\nexport type RespondentFilterDispositions = Array<\n RespondentFilterDispositionType\n>;\n\nexport type RespondentFilterSchedule = {\n type: RespondentFilterScheduleType;\n value: number;\n startDate: string | null;\n endDate: string | null;\n};\n\nexport type RespondentFilterProjects = {\n type: ExclusionType;\n list: Array;\n startDate?: string | null | undefined;\n endDate?: string | null | undefined;\n};\n\nexport type RespondentFilter = {\n projects: RespondentFilterProjects;\n dispositions: RespondentFilterDispositions;\n schedule: RespondentFilterSchedule;\n};\n\nexport type UpdateRespondentFilterInput = {\n projects: {\n list: Array;\n type: ExclusionType;\n startDate?: string | null;\n endDate?: string | null;\n };\n dispositions: RespondentFilterDispositions;\n schedule: RespondentFilterSchedule;\n};\n\nexport type RespondentFilters = Array;\n","export const intro = \"Summary of Costs\";\n\nexport const approveSummary =\n \"If this looks accurate, please approve the summary below.\";\n\nexport const mainText = `\n If you need any changes made, you can request a correction below, and we will follow up with you as soon as possible.\n`;\n\nexport const footnote =\n \"Taxes, if applicable, will appear on the final invoice.\";\n\nexport const tableHeaders = [\n \"Target Group\",\n \"Source\",\n \"Completes\",\n \"CPI\",\n \"Cost\"\n];\n\nexport const correctionDescriptionPlaceholder = \"Describe the correction here\";\n\nexport const uploadFileText =\n \"Please upload the Excel file with the correction:\";\n\nexport const sampleFileLink =\n \"https://s3.amazonaws.com/rnssi-api-resources/Data+Quality+Request+Template.xlsx\";\n\nexport const sampleFileLinkText = \"Download Template\";\n","import gql from \"graphql-tag\";\nimport { fragments as lineItemFragments } from \"./lineitem\";\nimport { fragments as surveyFragments } from \"./surveys\";\n\nexport const fragments = {\n tableRow: gql`\n fragment TableRow on Project {\n extProjectId\n title\n jobNumber\n state\n stateLastUpdatedAt\n createdAt\n updatedAt\n report {\n avgCpi\n stats {\n completes {\n intValue\n }\n remainingCompletes {\n intValue\n }\n }\n cost {\n incurredCost\n estimatedCost\n currency\n }\n }\n lineItems {\n extProjectId\n extLineItemId\n title\n indicativeIncidence\n countryISOCode\n state\n report {\n sources {\n ID\n name\n }\n stats {\n conversion {\n ...StatFragment\n }\n completes {\n ...StatFragment\n }\n remainingCompletes {\n ...StatFragment\n }\n attempts {\n ...StatFragment\n }\n }\n cost {\n estimatedCost\n costPerUnit\n incurredCost\n }\n }\n ...ActionsFragment\n }\n surveys {\n id\n authoringPlatform\n }\n billing {\n ID\n type\n billingDate\n }\n ...ProjectActionsFragment\n viewOnly\n }\n ${lineItemFragments.stat}\n ${lineItemFragments.actions}\n ${lineItemFragments.projectActions}\n `\n};\n\nexport const dashboardTableQuery = gql`\n query projects(\n $startDate: String\n $endDate: String\n $searchQuery: String\n $pageNumber: Int\n $statuses: [ProjectState!]\n $scope: String\n ) {\n projects(\n startDate: $startDate\n endDate: $endDate\n searchQuery: $searchQuery\n pageNumber: $pageNumber\n statuses: $statuses\n scope: $scope\n )\n @connection(\n key: \"dashboardProjects\"\n filter: [\"searchQuery\", \"startDate\", \"endDate\", \"statuses\", \"scope\"]\n ) {\n totalProjects\n hasNext\n projectsList {\n ...TableRow\n }\n }\n }\n ${fragments.tableRow}\n`;\n\nexport const invoicesTableQuery = gql`\n query invoicingProjects(\n $startDate: String\n $endDate: String\n $searchQuery: String\n $pageNumber: Int\n $statuses: [ProjectState!]\n $scope: String\n ) {\n invoicingProjects(\n startDate: $startDate\n endDate: $endDate\n searchQuery: $searchQuery\n pageNumber: $pageNumber\n statuses: $statuses\n scope: $scope\n )\n @connection(\n key: \"invoiceProjects\"\n filter: [\"searchQuery\", \"startDate\", \"endDate\", \"statuses\", \"scope\"]\n ) {\n totalInvoices\n hasNext\n invoices {\n name\n type\n projects {\n extProjectId\n title\n jobNumber\n state\n stateLastUpdatedAt\n createdAt\n updatedAt\n report {\n avgCpi\n stats {\n completes {\n intValue\n }\n remainingCompletes {\n intValue\n }\n }\n cost {\n incurredCost\n estimatedCost\n currency\n }\n }\n lineItems {\n extProjectId\n extLineItemId\n title\n indicativeIncidence\n countryISOCode\n state\n report {\n sources {\n ID\n name\n }\n stats {\n conversion {\n ...StatFragment\n }\n completes {\n ...StatFragment\n }\n remainingCompletes {\n ...StatFragment\n }\n attempts {\n ...StatFragment\n }\n }\n cost {\n estimatedCost\n costPerUnit\n incurredCost\n }\n }\n }\n surveys {\n id\n authoringPlatform\n }\n billing {\n ID\n type\n billingDate\n }\n ...ProjectActionsFragment\n viewOnly\n }\n status\n cost\n }\n }\n }\n ${lineItemFragments.stat}\n ${lineItemFragments.projectActions}\n`;\n\nexport const projectReport = gql`\n query projectReport($extProjectId: ID!) {\n project(extProjectId: $extProjectId) {\n extProjectId\n report {\n estimatedCost\n completes\n remainingCompletes\n avgCpi\n }\n }\n }\n`;\n\nexport const exclusions = gql`\n query Exclusions {\n projectExclusionList {\n extProjectId\n title\n }\n }\n`;\n\nexport const updateRespondentFilters = gql`\n mutation UpdateRespondentFilters($input: UpdateProjectInput!) {\n updateProject(input: $input) {\n extProjectId\n respondentFilters {\n projects {\n list {\n extProjectId\n title\n }\n type\n startDate\n endDate\n }\n dispositions\n schedule {\n startDate\n endDate\n type\n value\n }\n }\n }\n }\n`;\n\nexport const updateDevices = gql`\n mutation UpdateProject($input: UpdateProjectInput!) {\n updateProject(input: $input) {\n extProjectId\n devices\n }\n }\n`;\n\nexport const createProject = gql`\n mutation createProject($title: String!) {\n createProject(input: { title: $title }) {\n extProjectId\n }\n }\n`;\n\nexport const buyProject = gql`\n mutation buyProject($extProjectId: ID!) {\n buyProject(input: { extProjectId: $extProjectId }) {\n extProjectId\n state\n updatedAt\n lineItems {\n extProjectId\n extLineItemId\n state\n ...ActionsFragment\n }\n }\n }\n ${lineItemFragments.actions}\n`;\n\nexport const closeProject = gql`\n mutation closeProject($extProjectId: ID!) {\n closeProject(input: { extProjectId: $extProjectId }) {\n extProjectId\n state\n updatedAt\n lineItems {\n extProjectId\n extLineItemId\n state\n ...ActionsFragment\n }\n ...ProjectActionsFragment\n }\n }\n ${lineItemFragments.actions}\n ${lineItemFragments.projectActions}\n`;\n\nexport const sampleSources = gql`\n query sampleSources($surveyTopics: [String!]!) {\n sampleSources(surveyTopics: $surveyTopics)\n }\n`;\n\nexport const duplicateProject = gql`\n mutation duplicateProject($input: DuplicateProjectInput!) {\n duplicateProject(input: $input) {\n ...TableRow\n }\n }\n ${fragments.tableRow}\n`;\n\nexport const updateProjectTopics = gql`\n mutation UpdateProject($input: UpdateProjectInput!) {\n updateProject(input: $input) {\n extProjectId\n category {\n surveyTopic\n }\n ...ProjectActionsFragment\n }\n }\n ${lineItemFragments.projectActions}\n`;\n\nexport const projectActions = gql`\n query projectActions($extProjectId: ID!) {\n project(extProjectId: $extProjectId) {\n extProjectId\n state\n ...ProjectActionsFragment\n lineItems {\n extProjectId\n extLineItemId\n state\n ...ActionsFragment\n ...QuoteFragment\n ...LineItemReportFragment\n }\n surveys {\n id\n ...SurveyActionsFragment\n }\n }\n }\n ${lineItemFragments.projectActions}\n ${lineItemFragments.actions}\n ${lineItemFragments.quote}\n ${lineItemFragments.report}\n ${surveyFragments.actions}\n`;\n","import gql from \"graphql-tag\";\nimport { fragments as lineItemFragments } from \"./lineitem\";\n\nconst actionsFragment = gql`\n fragment SurveyActionsFragment on Survey {\n actions {\n kind\n metadata {\n label\n visible\n enabled\n description\n }\n }\n }\n`;\n\nconst localeLinksFragment = gql`\n fragment SurveyLocaleLinksFragment on Survey {\n localeLinks {\n localeName\n countryISOCode\n languageISOCode\n liveLink\n testLink\n entryLink\n }\n }\n`;\n\nexport const fragments = {\n actions: actionsFragment,\n localeLinks: localeLinksFragment,\n survey: gql`\n fragment SurveyFragment on Survey {\n name\n id\n liveLink\n liveLinkErrors {\n error {\n code\n message\n }\n paramList\n }\n testLink\n testLinkErrors {\n error {\n code\n message\n }\n paramList\n }\n authoringPlatform\n entryLink {\n baseLink\n countryEntryLinks {\n countryISOCode\n entryLink\n }\n }\n surveyKey\n hasCustomParams\n customParams {\n psid\n pid\n securityKey\n }\n testingNotes\n dataAppends {\n countryISOCode\n appends {\n attributeId\n attributeName\n customKey\n }\n }\n formattedTestLink\n formattedLiveLink\n tests {\n ID\n status\n latest\n disposition\n testedAt\n }\n exitLinks {\n complete\n disqualified\n overQuota\n }\n editLink\n ...SurveyLocaleLinksFragment\n ...SurveyActionsFragment\n }\n ${localeLinksFragment}\n ${actionsFragment}\n `,\n surveyLineItem: gql`\n fragment SurveyLineItem on LineItem {\n state\n extLineItemId\n extProjectId\n title\n survey {\n surveyId\n countryISOCode\n languageISOCode\n }\n countryISOCode\n }\n `\n};\n\nexport const refreshLocaleLinks = gql`\n query SurveyLocaleLinks($extProjectId: ID!, $surveyID: ID!) {\n project(extProjectId: $extProjectId) {\n extProjectId\n survey(id: $surveyID) {\n id\n ...SurveyLocaleLinksFragment\n }\n }\n }\n ${localeLinksFragment}\n`;\n\nexport const surveysQuery = gql`\n query SurveysData($extProjectId: ID!) {\n project(extProjectId: $extProjectId) {\n extProjectId\n title\n state\n surveys {\n ...SurveyFragment\n }\n lineItems {\n ...SurveyLineItem\n }\n securitykey1\n securitykey2\n securityLevel\n ...ProjectActionsFragment\n }\n }\n ${fragments.survey}\n ${fragments.surveyLineItem}\n ${lineItemFragments.projectActions}\n`;\n\nexport const dataAppendAttributes = gql`\n query DataAppendVariables {\n dataAppendAttributes {\n country {\n ID\n isoCode\n name\n supportedLanguages {\n ID\n isoCode\n name\n }\n }\n attributes {\n id\n countryISOCode\n name\n }\n }\n }\n`;\n\nexport const createSurvey = gql`\n mutation createSurvey($input: CreateSurveyInput!) {\n createSurvey(input: $input) {\n extProjectId\n securitykey1\n securitykey2\n securityLevel\n state\n title\n lineItems {\n ...SurveyLineItem\n }\n surveys {\n ...SurveyFragment\n }\n ...ProjectActionsFragment\n }\n }\n ${fragments.survey}\n ${fragments.surveyLineItem}\n ${lineItemFragments.projectActions}\n`;\n\nexport const updateSurvey = gql`\n mutation updateSurvey($input: UpdateSurveyInput!) {\n updateSurvey(input: $input) {\n extProjectId\n surveys {\n ...SurveyFragment\n }\n }\n }\n ${fragments.survey}\n`;\n\nexport const deleteSurvey = gql`\n mutation deleteSurvey($input: DeleteSurveyInput!) {\n deleteSurvey(input: $input) {\n extProjectId\n title\n surveys {\n ...SurveyFragment\n }\n }\n }\n ${fragments.survey}\n`;\n\nexport const externalSurveysQuery = gql`\n query externalSurveys(\n $authoringPlatform: AuthoringPlatform!\n $pageNumber: Int!\n $active: Boolean!\n $searchQuery: String\n ) {\n externalSurveys(\n authoringPlatform: $authoringPlatform\n pageNumber: $pageNumber\n active: $active\n searchQuery: $searchQuery\n ) {\n authoringPlatform\n totalSurveys\n hasNext\n nextPage\n surveys {\n id\n name\n createdAt\n modifiedAt\n status\n mappedProject {\n projectID\n projectName\n surveyID\n }\n }\n }\n }\n`;\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport { ErrorSplash } from \"samplify-design\";\n\nconst Godzilla = styled(ErrorSplash)`\n width: 100vw;\n height: auto;\n margin: 0 auto;\n max-width: 120rem;\n`;\n\nconst Outer = styled.div`\n height: 100vh;\n width: 100%;\n background-color: white;\n`;\nconst Inner = styled.div`\n padding-top: 3.8rem;\n margin: 0 auto;\n text-align: center;\n background-color: white;\n`;\nconst Blurb = styled.p`\n font-weight: 600;\n font-size: 1.8rem;\n`;\n\nconst PageError = () => (\n \n \n \n Uh oh! It appears we're experiencing issues. Please try again in a few\n moments.\n \n \n \n \n);\n\nexport default PageError;\n","module.exports = __webpack_public_path__ + \"static/media/search.6463dc93.svg\";","import React from \"react\";\nimport styled from \"styled-components\";\nimport { icons } from \"samplify-design\";\n\nconst { Delete } = icons;\n\nconst StyledDelete = styled(Delete)`\n fill: ${({ theme }) => theme.neutralDark[\"4\"]};\n height: 1.25em;\n &:hover {\n cursor: pointer;\n }\n`;\n\nconst ClearFilter = ({ clearFilter, setPopover }) => {\n const handleOnClick = e => {\n clearFilter();\n if (setPopover) setPopover(false);\n e.stopPropagation();\n };\n\n return ;\n};\n\nexport default ClearFilter;\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport Select from \"react-select\";\nimport caret from \"../../art/Caret.svg\";\n\ntype CustomSpanProps = {\n menuIsOpen: boolean;\n} & React.HTMLProps;\n\nconst CustomSpan = ({ menuIsOpen, ...rest }: CustomSpanProps) => (\n \n);\n\nconst StyledCaret = styled(CustomSpan)`\n margin-right: 0.5em;\n margin-bottom: 0.5rem;\n`;\n\nconst StyledSelect = styled(Select)``;\n\nconst StyledCaretIcon = styled.img`\n width: 0.7em;\n height: auto;\n`;\n\nconst DropdownIndicator = (menuIsOpen: boolean) => (\n \n \n \n);\n\nexport default (props: any) => {\n const { components = {}, styles = {}, invalid, ...rest } = props;\n const customStyles = {\n indicatorSeparator: () => ({ display: \"none\" }),\n control: (base: any, state: any) =>\n invalid\n ? {\n ...base,\n boxShadow: \"0 0 0 2px #f76e5c\",\n borderColor: \"transparent\"\n }\n : state.isFocused\n ? {\n ...base,\n outline: \"none\",\n boxShadow: \"0 0 0 2px #3ea8dd\",\n borderColor: \"transparent\",\n \"&:hover\": {\n borderColor: \"transparent\",\n outline: \"none\"\n }\n }\n : {\n ...base,\n borderRadius: \"0.5em\",\n border: \"1px solid #d5d7db\",\n \"&:hover\": {\n outline: \"none\"\n }\n }\n };\n\n return (\n \n );\n};\n","export const FIELD_SCHEDULE_API_ACCEPTED_DATE_FORMAT = \"YYYY/MM/DD HH:mm:ss\";\nexport const FIELD_SCHEDULE_API_DATE_FORMAT = \"YYYY/MM/DD\";\nexport const FIELD_SCHEDULE_API_TIME_FORMAT = \"HH:mm:ss\";\nexport const FIELD_SCHEDULE_DEFAULT_API_DATE_FORMAT = \"YYYY/MM/DD HH:mm:00\";\nexport const FIELD_SCHEDULE_UI_DATE_FORMAT = \"MMM DD\";\nexport const FIELD_SCHEDULE_UI_TIME_FORMAT = \"hh:mm A\";\nexport const RESPONDENT_FILTERS_API_DATE_FORMAT = \"YYYY/MM/DD\";\nexport const RESPONDENT_FILTERS_UI_DATE_FORMAT = \"MM/DD/YYYY\";\n","import { useContext } from \"react\";\nimport ModalPropsContext from \"../containers/ModalPropsContext\";\n\nconst useSetModal = (modalType: string) => {\n const { setModalData } = useContext(ModalPropsContext);\n const setModal = (modalProps?: any) => {\n setModalData({ modalProps, modalType });\n };\n return setModal;\n};\n\nexport default useSetModal;\n","import { useState } from \"react\";\n\nconst usePopover = () => {\n const [open, setOpen] = useState(false);\n const toggleOpen = () => setOpen(!open);\n return {\n popoverOpen: open,\n togglePopover: toggleOpen,\n setPopover: setOpen\n };\n};\n\nexport default usePopover;\n","import React from \"react\";\nimport Godzilla from \"./PageError\";\n\nclass GenericErrorBoundary extends React.Component {\n constructor(props) {\n super(props);\n this.state = { error: null, errorInfo: null };\n }\n\n componentDidCatch(error, errorInfo) {\n this.setState({ error, errorInfo });\n }\n render() {\n const errorRender =\n this.props.errorRender === undefined ? (\n \n ) : (\n this.props.errorRender\n );\n if (this.state.error) return errorRender;\n return React.Children.only(this.props.children);\n }\n}\n\nexport default GenericErrorBoundary;\n","import styled from \"styled-components\";\nimport { SITE_MAX_WIDTH } from \"../constants/styles\";\n\nconst Wrap = styled.div`\n max-width: ${SITE_MAX_WIDTH};\n margin: 0 auto;\n padding: 0 1em;\n height: 100%;\n`;\n\nexport default Wrap;\n","export const SITE_MAX_WIDTH = \"1166px\";\n","import styled from \"styled-components\";\n\nconst NumberUnit = styled.span`\n position: absolute;\n right: 0;\n top: 50%;\n transform: translateY(-50%);\n padding-right: 0.8rem;\n color: #9b9b9b;\n pointer-events: none;\n`;\n\nexport default NumberUnit;\n","module.exports = __webpack_public_path__ + \"static/media/iconError.e5a03c90.svg\";","module.exports = __webpack_public_path__ + \"static/media/Caret.4bc68876.svg\";"],"sourceRoot":""}