{"version":3,"sources":["axios.js","redux/actions/actionTypes.js","redux/utility.js","redux/reducers/auth.js","redux/reducers/navigation.js","redux/reducers/packages.js","redux/reducers/invoices.js","redux/reducers/reports/sales.js","redux/reducers/reports/salesReport.js","redux/reducers/reports/summaryReport.js","redux/reducers/reports/massReport.js","redux/reducers/profile.js","redux/reducers/dashboard.js","redux/reducers/notifications.js","redux/reducers/reports/importSalesReport.js","redux/actions/alerts.js","util/Alerts.js","redux/reducers/alerts.js","redux/reducers/general.js","redux/reducers/partner/packagesInTest.js","redux/reducers/partner/packagesInRetest.js","redux/reducers/partner/packagesUnconfirmed.js","redux/reducers/partner/packagesTested.js","redux/reducers/partner/packagesTestingAll.js","redux/reducers/partner/index.js","util/Errors.js","config/Api.js","config/envVariables.js","util/General.js","redux/actions/general.js","redux/reducers/admin/applications.js","redux/reducers/admin/testing.js","redux/reducers/admin/retesting.js","redux/reducers/admin/allPackages.js","redux/reducers/admin/debts.js","redux/reducers/admin/users.js","redux/reducers/admin/salesReports.js","redux/reducers/admin/unsubmittedSalesReports.js","redux/reducers/admin/unconfirmedSalesReports.js","redux/reducers/admin/settings.js","redux/reducers/admin/index.js","util/Access.js","redux/reducers/language.js","components/ReturnReports/redux.js","components/AdditionalDepositReports/redux.js","redux/reducers/index.js","redux/store.js","config/urls.js","redux/actions/auth.js","util/Auth.js","assets/icons/logo.svg","assets/icons/sidebar/inactive/1. overview.svg","assets/icons/sidebar/inactive/2. tickets.svg","assets/icons/sidebar/inactive/3. ideas.svg","assets/icons/sidebar/inactive/4. contacts.svg","assets/icons/sidebar/inactive/5. agents.svg","assets/icons/sidebar/inactive/6. articles.svg","assets/icons/sidebar/inactive/a_2. subscription.svg","assets/icons/sidebar/inactive/a_1. settings.svg","assets/icons/logout.svg","assets/icons/menu-collapsed.svg","assets/icons/menu-open.svg","assets/icons/person.svg","components/UserModeSelection/UserModeSelection.jsx","components/Navbar/LanguageMode.jsx","redux/actions/language.js","util/Notifications.js","redux/actions/notifications.js","components/Profile/Notifications/NotificationDropdown/NotificationDropdownItems.js","assets/icons/notifications.svg","components/Profile/Notifications/NotificationDropdown/NotificationDropdown.jsx","components/Navbar/Navbar.jsx","assets/icons/info-default.svg","assets/icons/success-default.svg","assets/icons/alert-default.svg","components/Alerts/Alert/Alert.jsx","components/Alerts/Alerts.jsx","components/Layout/Footer/Footer.jsx","components/Misc/CookieConsent.jsx","components/Layout/Layout.jsx","components/Layout/PublicLayout.jsx","assets/icons/plus.svg","components/Table/Cell/Status/StatusCell.jsx","components/Reports/Sales/helpers/Options.jsx","components/Loader/WrappedLoader.jsx","util/DateTime.js","components/Dashboard/Dashboard.jsx","util/Dashboard.js","redux/actions/dashboard.js","views/Dashboard.jsx","components/Form/Input.jsx","components/Form/Select.jsx","redux/actions/partner/packagesInTest.js","util/Partner.js","redux/actions/partner/packagesInRetest.js","redux/actions/partner/packagesUnconfirmed.js","redux/actions/partner/packagesTested.js","redux/actions/partner/packagesTestingAll.js","util/excel/ExportClientPackagesTable.js","redux/actions/packages.js","util/Packages.js","components/Packages/PackagesTable/PackagesTable.jsx","views/Packages.jsx","views/Reports/Reports.jsx","assets/icons/left.svg","assets/icons/delete.svg","components/Misc/LeftText.jsx","components/Misc/DeleteText.jsx","components/Loader/WrappedPulseLoader.jsx","i18n.js","redux/actions/navigation.js","redux/actions/reports/sales.js","redux/actions/reports/salesReport.js","redux/actions/reports/importSalesReport.js","util/Files.js","util/SalesReports.js","util/admin/SalesReports.js","redux/actions/admin/salesReports.js","redux/actions/admin/unsubmittedSalesReports.js","redux/actions/admin/unconfirmedSalesReports.js","assets/icons/more-vertical.svg","assets/icons/hide-inactive.svg","components/Reports/Sales/cells/MenuCell.jsx","assets/icons/diagonal-plus-close.svg","components/Misc/CloseTextIcon.jsx","components/Form/Modals/ConfirmationModal.jsx","util/excel/SalesReportDetailsExcel.js","components/Reports/Sales/Details/DetailsExcelDownload/DetailsExcelDownload.jsx","components/Form/Files/FileUpload.jsx","assets/icons/close-inactive.svg","components/Reports/Sales/Modal/ImportSalesReport.jsx","assets/icons/info.svg","util/Navigation.js","components/Reports/Sales/Details/SalesReportDetails.jsx","views/Reports/OriginalSalesReport.jsx","views/Reports/RepairSalesReport.jsx","components/Table/Cell/DateCell.jsx","assets/icons/download.svg","components/Table/Cell/DocumentCell.jsx","components/Invoices/Table/Options.jsx","util/Everypay.js","components/Invoices/Table/Table.jsx","util/Invoices.js","redux/actions/invoices.js","views/Invoices.jsx","components/Misc/CenteredRowCol.jsx","components/Invoices/Preview/PreviewModal.jsx","views/Profile.jsx","redux/actions/profile.js","util/Profile.js","assets/icons/active.svg","assets/icons/inactive.svg","assets/icons/delete-row.svg","components/Form/CheckboxButton/CheckboxButton.jsx","redux/actions/admin/users.js","util/admin/Users.js","components/Profile/Users/AddUserModal/AddUserModal.jsx","config/userRoles.js","components/Profile/Users/UserDetailsModal/UserDetailsModal.jsx","components/Profile/Users/UsersTable/UsersTable.jsx","components/Profile/Profile/PersonalProfileForm/PersonalProfileForm.jsx","assets/icons/unchecked.svg","assets/icons/checked.svg","components/Form/Checkbox.jsx","components/Profile/Profile/UserSettingsForm/UserSettingsForm.jsx","components/Profile/Profile/CompanyProfileForm/CompanyProfileForm.jsx","util/BusinessRegister.js","components/Profile/Profile/WarrantedUserForm/WarrantedUserForm.jsx","components/Profile/Profile/Profile.jsx","components/Routing/RouteWithSubRoutes.jsx","components/Packages/AddPackageModal/AddPackageModal.jsx","assets/icons/arrow-down.svg","assets/icons/arrow-up.svg","components/ContractModal/PersonalCollapse/PersonalCollapse.jsx","components/ContractModal/CompanyCollapse/CompanyCollapse.jsx","util/signing/IdCardManager.js","util/dokobit/Dokobit.js","components/ContractModal/ContractModal.jsx","util/Contracts.js","assets/icons/document-correction.svg","components/Reports/Sales/Search/SalesSearch.jsx","components/Reports/Sales/cells/MonthPeriodCell.jsx","components/Reports/Sales/SalesTable/SalesTable.jsx","util/SummaryReport.js","components/Reports/Summary/Search/SummarySearch.jsx","redux/actions/reports/summaryReport.js","components/Reports/Summary/Table/SummaryTable.jsx","views/Reports/SummaryReport.jsx","util/MassReport.js","components/Reports/Mass/Search/MassSearch.jsx","redux/actions/reports/massReport.js","components/Reports/Mass/Table/MassTable.jsx","views/Reports/MassReport.jsx","components/Admin/Contract/helpers/Options.jsx","components/Profile/Contracts/Contracts.jsx","assets/icons/close.svg","components/Misc/BrandLogoText.jsx","views/public/PrivacyPolicy.jsx","views/public/CookiePolicy.jsx","assets/icons/arrow-left.svg","assets/icons/arrow-right.svg","components/Table/Pagination/CustomPagination.jsx","components/Form/SelectionHeader/SelectionHeader.jsx","components/ReturnReports/utils.js","components/ReturnReports/ListSearch.jsx","components/ReturnReports/ConfirmDetailsModal.jsx","components/ReturnReports/ImportModal.jsx","components/ReturnReports/ListActions.jsx","components/ReturnReports/ActionsMenu.jsx","components/ReturnReports/ListView.jsx","components/Comments/utils.js","components/Comments/icons/arrow-down.svg","components/Alerts/index.js","components/Comments/icons/arrow-up.svg","components/Comments/icons/refresh.svg","components/Comments/icons/delete.svg","components/Comments/Comment.jsx","components/Comments/icons/arrow-down-circle.svg","components/Comments/CommentList.jsx","components/Comments/icons/submit.svg","components/Comments/CommentCreate.jsx","components/Comments/Comments.jsx","assets/icons/circle-question.svg","components/Comments/index.js","assets/icons/comment-solid.svg","assets/icons/comments-solid.svg","components/ReturnReports/ReportLineList.jsx","components/ReturnReports/DetailsView.jsx","components/AdditionalDepositReports/utils.js","components/AdditionalDepositReports/ListSearch.jsx","components/AdditionalDepositReports/SyncModal.jsx","components/AdditionalDepositReports/ListActions.jsx","components/AdditionalDepositReports/ActionsMenu.jsx","components/AdditionalDepositReports/ListView.jsx","components/AdditionalDepositReports/ReportLineList.jsx","components/AdditionalDepositReports/DetailsView.jsx","client_routes.js","components/Profile/Notifications/Notifications.jsx","views/Partner/ProfileView.jsx","views/Partner/PackagesView.jsx","components/Partner/Profile/Profile.jsx","components/Partner/TestingCompletedConfirmation.jsx","components/Partner/Search/Search.jsx","redux/actions/admin/applications.js","util/admin/PackageDetails.js","components/Form/PackageConditions/options.js","util/admin/Testing.js","redux/actions/admin/testing.js","components/PackageTest/PackageTest.jsx","components/PackageTest/PackageTestList.jsx","components/Partner/Table/Table.jsx","util/excel/PartnerExcels.js","components/Partner/ExcelDownload/ExcelDownload.jsx","components/Partner/PackagesInTest/PackagesInTest.jsx","components/Partner/PackagesInRetest/PackagesInRetest.jsx","components/Partner/PackagesUnconfirmed/PackagesUnconfirmed.jsx","components/Partner/PackagesTested/PackagesTested.jsx","components/Partner/PackagesTestingAll/PackagesTestingAll.jsx","partner_routes.js","views/admin/PackageRegistry.jsx","assets/icons/raport.svg","util/admin/Applications.js","assets/icons/sync.svg","assets/icons/debt.svg","components/Form/PackageConditions/PackageConditionsIcons.jsx","components/Admin/Registry/Applications/Table/Table.jsx","components/Form/PackageConditions/PackageConditionsSelect.jsx","components/Admin/Registry/Applications/Search/Search.jsx","components/Admin/Registry/Applications/Modal/SelectedApplications.jsx","util/Audio.js","components/Admin/Registry/Applications/ApplicationsView.jsx","components/Admin/Registry/Testing/Table/Table.jsx","components/Admin/Registry/Testing/Search/Search.jsx","components/Admin/Registry/Testing/TestingView.jsx","util/admin/Retesting.js","redux/actions/admin/retesting.js","components/Admin/Registry/Retesting/Table/Table.jsx","components/Admin/Registry/Retesting/Search/Search.jsx","components/Admin/Registry/Retesting/RetestingView.jsx","util/admin/AllPackages.js","redux/actions/admin/allPackages.js","components/Admin/Registry/Packages/Search/Search.jsx","components/Admin/Registry/Packages/Table/Table.jsx","components/Admin/Registry/Packages/PackagesView.jsx","components/Form/Modals/DeleteModal.jsx","components/Admin/Registry/PackageDetails/PackageDetails.jsx","components/Admin/Debts/Search/DebtsSearch.jsx","util/admin/Debts.js","redux/actions/admin/debts.js","components/Admin/Debts/Table/DebtsTable.jsx","views/admin/Debts.jsx","util/admin/General.js","components/Admin/Debts/Invoices/Invoices.jsx","util/admin/Invoices.js","views/admin/Invoices.jsx","views/admin/Users.jsx","components/Admin/Users/Clients/ClientsView.jsx","components/Admin/Users/Clients/Client/ClientView.jsx","components/Admin/Users/Clients/Client/CompanyProfileFormAdmin.jsx","components/Admin/Users/Clients/Client/SynchronizeButton.jsx","components/Admin/Contract/ContractModal.jsx","components/Admin/Contract/Contract.jsx","components/Admin/Users/Clients/Client/Profile.jsx","components/Admin/Users/Partners/PartnersView.jsx","components/Admin/Users/EPP/Users.jsx","components/Admin/Users/Clients/Client/Users.jsx","views/admin/Reports.jsx","components/Admin/Reports/Search/Search.jsx","components/Admin/Reports/cells/MenuCell.jsx","components/Admin/Reports/Table/Table.jsx","views/admin/SalesReports.jsx","views/admin/UnconfirmedRepairReports.jsx","views/admin/UnsubmittedSalesReports.jsx","redux/actions/admin/settings.js","util/admin/Settings.js","views/admin/Settings.jsx","components/Admin/Settings/Categories.jsx","components/Admin/Settings/Types.jsx","components/Admin/Settings/Colors.jsx","components/Admin/Settings/Volumes.jsx","components/Admin/Settings/ProcessFees.jsx","admin_routes.js","components/Login/MidForm/MidForm.jsx","components/Login/SmartIdForm/SmartIdForm.jsx","components/Login/IdCardForm/IdCardForm.jsx","components/Login/EmailForm/EmailForm.jsx","components/Login/LoginCard/LoginCard.jsx","views/public/Login.jsx","views/public/ForgotPassword.jsx","views/public/ChangePassword.jsx","public_routes.js","util/User.js","App.js","serviceWorker.js","index.js"],"names":["baseURL","process","axiosInstance","require","create","headers","module","exports","GET_AUTH_USER","updateObject","oldObject","updatedProperties","initialState","token","error","loading","user","personal_code","key","first_name","last_name","is_admin","is_superuser","email","phone","faxes","user_type","client_name","profession","user_settings","is_debt","language","is_package_registration","is_sales_report","is_email_notification","is_push_notification","clients","name","active_client","is_valid_contract","is_unapproved_contract","users","authType","registerStart","state","action","errorMessage","successMessage","registerSuccess","registerFail","authStart","authSuccess","authFail","logOut","getUser","cert","localStorage","getItem","phoneNumberMID","auth","type","actionTypes","companyProfile","headerSuffix","updateHeaderSuffix","text","packagesList","packagesListLoading","eanTypes","categories","packageTypes","packageColors","packageVolumes","packageStatuses","packageTestResults","resetUserSpecificData","resetLanguageDependentOptions","packagesFetchStart","packagesFetchSuccess","packages","packagesFetchFail","err","eanTypesFetchStart","eanTypesFetchSuccess","eanTypesFetchFail","categoriesFetchStart","categoriesFetchSuccess","categoriesFetchFail","packageTypesFetchStart","packageTypesFetchSuccess","packageTypesFetchFail","packageColorsFetchStart","packageColorsFetchSuccess","packageColorsFetchFail","packageVolumesFetchStart","packageVolumesFetchSuccess","packageVolumesFetchFail","packageStatusesFetchStart","packageStatusesFetchSuccess","packageStatusesFetchFail","packageTestResultsFetchStart","packageTestResultsFetchSuccess","packageTestResultsFetchFail","packagePostStart","packagePostSuccess","packagePostFail","message","invoices","invoicesLoading","balance","invoice","invoiceLoading","invoiceErrorMessage","invoicesFetchStart","invoicesFetchSuccess","invoicesData","invoices_balance","invoicesFetchFail","invoiceDataFetchStart","invoiceDataFetchSuccess","invoiceDataFetchFail","data","errorMesage","initialFilters","fromDate","toDate","filters","salesList","salesListFromDate","salesListToDate","salesListLoading","createRepairLoading","salesFetchStart","salesFetchSuccess","sales","salesReport","compositeKey","id","period","is_repair","compositePeriodIsRepair","moment","format","salesFetchFail","updateSearchFilter","value","clearFilters","salesCreateRepairStart","salesCreateRepairSuccess","salesCreateRepairFail","header","details","salesReportLoading","submitLoading","exportLoading","deleteOriginalReportLoading","deleteOriginalReportError","deleteRepairReportLoading","deleteRepairReportError","quantityLoading","salesReportFetchStart","salesReportFetchSuccess","report","content","report_details","salesReportFetchFail","salesLineUpdateStart","map","pkg","updatedPackage","salesLineUpdateSuccess","salesLineUpdateFail","salesReportSubmitStart","submitError","salesReportSubmitSuccess","salesReportSubmitFail","salesReportDeleteOriginalStart","salesReportDeleteOriginalSuccess","salesReportDeleteOriginalFail","salesReportDeleteRepairStart","salesReportDeleteRepairSuccess","salesReportDeleteRepairFail","salesReportExportStart","exportError","salesReportExportSuccess","salesReportExportFail","salesReportPackagesFieldChange","newPackage","row","field","salesReportHeaderFieldChange","salesReportHeaderTotalsUpdate","deposit_total","process_fee_total","process_fee_vat","to_be_paid","subtract","startOf","packageType","packageCategory","showEANCode","showEANType","showPackageType","showName","showPackageCategory","showVolume","showDeposit","summaryList","summaryListFromDate","summaryListToDate","summaryListLoading","exportFile","summaryReportSearchStart","summaryReportSearchSuccess","summaryReportSearchFail","summaryReportSearchFilterUpdate","summaryReportExportStart","summaryReportExportSuccess","summaryReportExportFail","formatOptions","label","massList","massListFromDate","massListToDate","massListLoading","htmlValue","excelValue","massReportUpdateOutputFormat","massReportSearchStart","massReportSearchSuccess","massReportSearchFail","massReportSearchFilterUpdate","massReportExportStart","massReportExportSuccess","massReportExportFail","initialCompanyProfile","reg_number","iban","kmkr","full_address","basis","initialPersonalProfile","initialUserSettings","companyProfileLoading","personalProfile","personalProfileLoading","contracts","contractsLoading","usersLoading","representationOptions","userSettings","userSettingsLoading","userSettingsError","companyProfileUpdate","companyProfileFetchStart","companyProfileFetchSuccess","profile","companyProfileFetchFail","personalProfileUpdate","personalProfileFetchStart","personalProfileFetchSuccess","personalProfileFetchFail","representationOptionsFetchStart","representationOptionsFetchSuccess","options","representationOptionsFetchFail","contractsFetchStart","contractsFetchSuccess","contractsFetchFail","fetchUsersStart","fetchUsersSuccess","fetchUsersFail","updateUserStart","updateUserSuccess","updatedUser","updateUserFail","userSettingsFetchStart","userSettingsFetchSuccess","userSettingsFetchFail","userSettingsPutStart","userSettingsPutSuccess","userSettingsPutFail","lastPackages","not_registered_packages","all_packages_count","lastReports","not_submitted_reports_count","all_reports_count","latest_reports","statistics","months","packages_total","best_month","month","overdue_invoices","invoice_balance","lastPackagesLoading","lastReportsLoading","statisticsLoading","lastPackagesFetchStart","lastPackagesFetchSuccess","lastPackagesFetchFail","lastReportsFetchStart","lastReportsFetchSuccess","reports","lastReportsFetchFail","statisticsFetchStart","statisticsFetchSuccess","statisticsFetchFail","notifications","fetchNotificationsStart","fetchNotificationsSuccess","fetchNotificationsFail","open","file","errors","salesReportImportOpen","salesReportImportFileChange","salesReportImportStart","salesReportImportSuccess","salesReportImportFail","salesReportImportClose","alertsAddLocal","alertType","group","alertContext","LOCAL","context","alertsClearLocal","alertsClearIncludedGroups","groups","alertsUpdateActiveGroups","GLOBAL","DEFAULT","createAlertClassName","DEFAULT_ICON","SUCCESS","SUCCESS_ICON","INFO","INFO_ICON","WARNING","WARNING_ICON","ERROR","ERROR_ICON","createAlertObject","_","uniqueId","className","isGlobal","alert","addNewGlobalAlert","store","dispatch","alertsAddGlobal","addNewLocalAlert","addNewGlobalWarningAlert","showIcon","addNewLocalSuccessAlert","addNewLocalInfoAlert","addNewLocalWarningAlert","addNewLocalErrorAlert","clearLocalAlerts","clearAllAlerts","clearIncludedGroups","updateActiveAlertGroups","alertsList","activeGroups","alertsAddNew","newAlert","alertsClearAll","filteredList","filter","includes","alertsClearUnincludedGroups","alerts","allClients","allClientsLoading","standardComments","standardCommentsLoading","locations","locationsLoading","allClientsFetchStart","allClientsFetchSuccess","allClientsFetchFail","onStandardCommentsFetchStart","onStandardCommentsFetchSuccess","onStandardCommentsFetchFail","onLocationsFetchStart","onLocationsFetchSuccess","onLocationsFetchFail","ean","client","category","volume","testResult","startDate","endDate","sorting","dataField","order","pagination","page","sizePerPage","dataSize","sizePerPageList","unfilteredPackagesList","packagesListFiltersUsed","onPackagesInTestFetchStart","onPackagesInTestFetchSuccess","length","onPackagesInTestFetchFail","onPackagesInTestFilterUpdate","onPackagesInTestFilterClear","onPackagesInTestSortingUpdate","onPackagesInTestPaginationUpdate","onPackagesInRetestFetchStart","onPackagesInRetestFetchSuccess","onPackagesInRetestFetchFail","onPackagesInRetestFilterUpdate","onPackagesInRetestFilterClear","onPackagesInRetestSortingUpdate","onPackagesInRetestPaginationUpdate","onPackagesUnconfirmedFetchStart","onPackagesUnconfirmedFetchSuccess","onPackagesUnconfirmedFetchFail","onPackagesUnconfirmedFilterUpdate","onPackagesUnconfirmedFilterClear","onPackagesUnconfirmedSortingUpdate","onPackagesUnconfirmedPaginationUpdate","onPackagesTestedFetchStart","onPackagesTestedFetchSuccess","onPackagesTestedFetchFail","onPackagesTestedFilterUpdate","onPackagesTestedFilterClear","onPackagesTestedSortingUpdate","onPackagesTestedPaginationUpdate","onPackagesTestingAllFetchStart","onPackagesTestingAllFetchSuccess","onPackagesTestingAllFetchFail","onPackagesTestingAllFilterUpdate","onPackagesTestingAllFilterClear","onPackagesTestingAllSortingUpdate","onPackagesTestingAllPaginationUpdate","partnerReducer","combineReducers","packagesInTest","packagesInRetest","packagesUnconfirmed","packagesTested","packagesTestingAll","getServerErrorMessage","getState","languageTypes","EN","response","request","code","join","detail","getErrorMessageList","contentFunc","topText","keyFunc","e","i","getIdCardErrorMessage","defaultMessage","genericErrorMessage","Trans","i18nKey","getIdCardSpecificErrorMessage","ADMIN_PACKAGE_DETAILS","ENABLE_REDUX_DEVTOOLS","REACT_APP_ENABLE_REDUX_DEVTOOLS","ENABLE_TEST_VAT_PERCENTAGE","REACT_APP_TEST_VAT_PERCENTAGE","currencyBaseOptions","style","currency","currencyFormatter","Intl","NumberFormat","minimumFractionDigits","depositCurrencyFormatter","processFeeCostCurrencyFormatter","ET","testStatuses","isNumeric","n","isNaN","parseFloat","isFinite","normalizeStringNumber","strNum","replace","fetchAllClients","axios","get","then","catch","Error","getPageCount","Math","ceil","eanType","conditions","weight","selectedIds","sendToTestingLoading","filterIdsInList","ids","packageIds","onAdminApplicationsFetchStart","onAdminApplicationsFetchSuccess","areFilterSame","isEqual","newDataSize","currentPage","isCurrentPageValid","onAdminApplicationsFetchFail","onAdminApplicationsFilterUpdate","onAdminApplicationsFilterClear","onAdminApplicationsSortingUpdate","onAdminApplicationsPaginationUpdate","onAdminApplicationsUpdateSelected","selected","onAdminSendToTestingStart","onAdminSendToTestingSuccess","idsToRemove","newPackagesList","onAdminSendToTestingFail","sendToRetestingLoading","activatePackagesLoading","confirmPackageTestingLoading","onAdminTestingPackagesFetchStart","onAdminTestingPackagesFetchSuccess","onAdminTestingPackagesFetchFail","onAdminTestingPackagesFilterUpdate","onAdminTestingPackagesSortingUpdate","onAdminTestingPackagesPaginationUpdate","onAdminTestingPackagesFilterClear","onAdminTestingUpdateSelected","updatePackageListFieldValues","onAdminTestingSendToRetestingStart","onAdminTestingSendToRetestingSuccess","onAdminTestingSendToRetestingFail","onAdminTestingConfirmPackageTestStart","onAdminTestingConfirmPackageTestSuccess","onAdminTestingConfirmPackageTestFail","onAdminTestingActivatePackagesStart","onAdminTestingActivatePackagesSuccess","onAdminTestingActivatePackagesFail","confirmPackageRetestingLoading","onAdminRetestingPackagesFetchStart","onAdminRetestingPackagesFetchSuccess","onAdminRetestingPackagesFetchFail","onAdminRetestingPackagesFilterUpdate","onAdminRetestingPackagesSortingUpdate","onAdminRetestingPackagesPaginationUpdate","onAdminRetestingPackagesFilterClear","onAdminRetestingConfirmPackageTestStart","onAdminRetestingConfirmPackageTestSuccess","onAdminRetestingConfirmPackageTestFail","onAdminRetestingUpdateSelected","status","onAdminAllPackagesFetchStart","onAdminAllPackagesFetchSuccess","onAdminAllPackagesFetchFail","onAdminAllPackagesFilterUpdate","onAdminAllPackagesFilterClear","onAdminAllPackagesSortingUpdate","onAdminAllPackagesPaginationUpdate","daysOverdueMin","daysOverdueMax","debtsList","onAdminDebtsFetchStart","onAdminDebtsFetchSuccess","debts","onAdminDebtsFetchFail","onAdminDebtsFilterUpdate","onAdminDebtsFilterClear","updateClientsFilteredData","clientsFilters","clientsFilteredPagination","clientsFiltered","contractStatus","contract_status","toLowerCase","filterClient","partners","epp","clientsSorting","loadingPartners","loadingEpp","onAdminClientsFetchStart","onAdminClientsFetchSuccess","onAdminClientsFetchFail","onAdminClientsPaginationUpdate","onAdminClientsFilterUpdate","onAdminClientsSortingUpdate","onAdminPartnersFetchStart","onAdminPartnersFetchSuccess","onAdminPartnersFetchFail","onAdminPartnersUserUpdate","updatedPartners","onAdminEppUsersFetchStart","loadingEppUsers","onAdminEppUsersFetchSuccess","eppUsers","onAdminEppUsersFetchFail","onAdminEppUserUpdate","Date","unfilteredSalesReportsList","salesReportsList","salesReportsListFiltersUsed","salesReportsListLoading","onAdminSalesReportsFetchStart","onAdminSalesReportsFetchSuccess","onAdminSalesReportsFetchFail","onAdminSalesReportsFilterUpdate","onAdminSalesReportsFilterClear","onFetchStart","onFetchSuccess","onFetchFail","onFilterUpdate","onFilterClear","types","colors","volumes","prices","processFees","onAdminCategoriesFetchStart","onAdminCategoriesFetchSuccess","onAdminCategoriesFetchFail","onAdminTypesFetchStart","onAdminTypesFetchSuccess","onAdminTypesFetchFail","onAdminColorsFetchStart","onAdminColorsFetchSuccess","onAdminColorsFetchFail","onAdminVolumesFetchStart","onAdminVolumesFetchSuccess","onAdminVolumesFetchFail","onAdminProcessFeesFetchStart","onAdminProcessFeesFetchSuccess","onAdminProcessFeesFetchFail","adminReducer","applications","testing","retesting","allPackages","salesReports","unsubmittedSalesReports","unconfirmedSalesReports","settings","contractStates","ACTIVE","PENDING","ACTIVE_OR_PENDING","NONE","userTypes","isConnectedToClientWithActiveContract","isConnectedToClientWithContractState","isConnectedToClientWithPendingOrActiveContract","isVerifiedUser","isClientMode","is_verified","isPartnerMode","partner_user_type","isAdminMode","isVerified","contractState","clientId","active_client_id","isNotConnectedToClientPartnerOrEpp","in_partner_mode","in_epp_mode","isUserClientAdmin","updateLanguage","newLanguage","updateLanguageFromUserObject","currentUserType","active_profile_user_type","languageObjectKey","activeLanguage","localActionTypes","filterConfirmedOptions","getInitialListFilters","confirmed","rows","listOfIds","list","listSorting","listPagination","listFiltersUsed","listLoading","listError","listFilters","listSelectedIds","onResetUserSpecificData","onListFetchStart","onListFetchSuccess","period_start","period_end","onListFetchFail","ListSelectedIds","onUpdateSearchFilter","onClearFilters","onListSortingUpdate","onListPaginationUpdate","onListSelectedUpdate","actions","listFetchStart","listFetchSuccess","listFetchFail","listUpdateFilters","listClearFilters","listSortingUpdate","listPaginationUpdate","listSelectedUpdate","reducer","STATUSES","POSTED_FALSE","POSTED_TRUE","filterNavStatusOptions","is_posted","appReducer","admin","partner","general","navigation","summaryReport","massReport","importSalesReport","dashboard","returnReports","additionalDepositReports","rootReducer","undefined","logger","createLogger","collapsed","diff","configureStore","createStore","composeWithDevTools","applyMiddleware","thunk","persistStore","urls","DOMAIN","ANY","DASHBOARD","CONTRACT","PACKAGES","ADD_PACKAGES","APPLICATIONS","REPORTS","REPORTS_SALES","REPORTS_SALE","REPORTS_SALE_FIX","REPORTS_SUMMARY","REPORTS_MASS","REPORTS_RETURN_LIST","REPORTS_RETURN_DETAILS","REPORTS_ADDITIONAL_DEPOSIT_LIST","REPORTS_ADDITIONAL_DEPOSIT_DETAILS","INVOICES","INVOICES_PREVIEW","PROFILE","PROFILE_EDIT","PROFILE_CONTRACT","PROFILE_USERS","PROFILE_NOTIFICATIONS","LOGIN","LOGIN_WITH_EMAIL","FORGOT_PASSWORD","CHANGE_PASSWORD","PRIVACY_POLICY","COOKIE_POLICY","PARTNER_PACKAGES","PARTNER_PACKAGES_IN_TESTING","PARTNER_PACKAGES_IN_RETESTING","PARTNER_PACKAGES_UNCONFIRMED","PARTNER_PACKAGES_CONFIRMED","PARTNER_PACKAGES_ALL","EPP_REGISTRY","EPP_REGISTRY_APPLICATIONS","EPP_REGISTRY_TESTING","EPP_REGISTRY_RETESTING","EPP_REGISTRY_PACKAGES","EPP_REGISTRY_PACKAGE_DETAILS","EPP_REPORTS","EPP_REPORTS_SALES","EPP_REPORTS_SALES_UNSUBMITTED","EPP_REPORTS_RETURN_LIST","EPP_REPORTS_RETURN_DETAILS","EPP_REPORTS_ADDITIONAL_DEPOSIT_LIST","EPP_REPORTS_ADDITIONAL_DEPOSIT_DETAILS","EPP_UNCONFIRMED_REPAIR_REPORTS","EPP_DEBTS","EPP_DEBTS_INVOICES","EPP_USERS","EPP_PROFILE","EPP_USERS_CLIENTS","EPP_USERS_CLIENTS_CLIENT","EPP_USERS_CLIENTS_CLIENT_PROFILE","EPP_USERS_CLIENTS_CLIENT_USERS","EPP_USERS_PARTNERS","EPP_USERS_EPP","EPP_SETTINGS","EPP_SETTINGS_CATEGORIES","EPP_SETTINGS_TYPES","EPP_SETTINGS_COLORS","EPP_SETTINGS_VOLUMES","EPP_SETTINGS_PROCESS_FEES","getAdminClientUsersUrl","getSaleReportUrl","getSaleReportFixUrl","getAdminPackageDetailsUrl","getAdminDebtsClientInvoicesUrl","resetStore","authTypes","digitalSignStatus","mode","signature_value","contractId","post","contract_id","resp","logout","clear","defaults","common","setAuthUser","getAuthUser","sendPasswordResetLink","_circle","_path","_extends","Object","assign","target","arguments","source","prototype","hasOwnProperty","call","apply","this","SvgLogo","_ref","svgRef","title","props","createElement","width","height","viewBox","fill","ref","cx","cy","r","d","ForwardRef","forwardRef","Svg1Overview","opacity","Svg2Tickets","_g","_defs","Svg3Ideas","clipPath","Svg4Contacts","Svg5Agents","Svg6Articles","SvgA2Subscription","SvgA1Settings","_path2","SvgLogout","_rect","_rect2","_rect3","SvgMenuCollapsed","x","y","SvgMenuOpen","SvgPerson","UserModeSelection","React","Component","onChangeActiveClient","put","onChangeActivePartner","partnerId","onChangeActiveEPP","onCreateNewClient","getUserFirstName","getUserModeName","t","getAdminName","getPartnerName","getClientName","getClients","getPartners","render","tooltipTargetId","inNavbar","maxWidth","selectedRoleText","UncontrolledButtonDropdown","direction","DropdownToggle","tag","UncontrolledTooltip","placement","DropdownMenu","modifiers","setMaxHeight","enabled","fn","styles","overflow","maxHeight","renderAdminOptions","renderPartnerOptions","renderClientOptions","epp_user_type","hasAdminMode","DropdownItem","disabled","onClick","isInPartnerMode","partnerOptions","active_partner","isInClientMode","clientOptions","connect","withTranslation","LanguageMode","languageCode","userTypeId","lngCode","endpoint","changeLanguage","languageUpdate","NavLink","mapActionsToProps","fetchNotifications","notificationsFetchFail","NotificationDropdownItems","useTranslation","history","useHistory","slice","notification","push","Row","Col","created_at","SvgNotifications","NotificationDropdown","useSelector","useEffect","unseenNotificationsCount","reduce","total","obj","is_seen","baseClasses","renderNotificationsCount","count","TopNavbar","activeClientId","getRouteComponent","routes","pathname","location","route","routeLabelComponentOrText","labelComponent","subRoute","matchPath","path","subrouteLabelComponentOrText","exact","routeComponent","Navbar","light","expand","menuOpen","onSidebarToggle","Nav","NavItem","to","withRouter","clientName","SvgInfoDefault","rx","fillRule","clipRule","SvgSuccessDefault","stroke","strokeWidth","strokeLinecap","SvgAlertDefault","AlertIcon","Alert","Card","CardBody","filteredAlerts","manualAlerts","hideGlobal","filterGroups","filteredAlertsList","index","children","xs","href","rel","CustomCookieConsent","buttonText","buttonClasses","containerClasses","cookieName","background","buttonStyle","color","fontSize","expires","onAccept","console","log","overlay","minimizedSidebarListener","window","matchMedia","mobileSidebarListener","Layout","constructor","super","toggleSidebar","setState","minimizedSidebar","matches","sidebarOpen","hideMenuOnClick","sidebarDocked","checkActive","match","mediaQueryChanged","bind","onSetSidebarOpen","componentDidMount","componentWillMount","addListener","componentWillUnmount","removeListener","componentDidUpdate","prevProps","sidebar","renderLinks","navbar","docked","onSetOpen","shadow","sidebarClassName","zIndex","dragHandle","CookieConsent","renderAdminLinks","renderPartnerLinks","renderClientLinks","isActive","adminLinks","toUrl","isActiveUrl","logo","renderNavItem","PublicLayout","SvgPlus","statusTypes","StatusCell","getStatusTypeStyle","String","defaultProps","saleStatuses","UNSUBMITTED","SUBMITTED","UNCONFIRMED","CONFIRMED","REJECTED","saleStatusTypes","client_type","admin_type","getSaleStatusType","statusValue","adminMode","typeField","WrappedLoader","extraProps","parseSalesReportPeriodDate","secondDateIsSameOrAfterFirstDate","firstDate","secondDate","precision","firstMoment","isValid","secondMoment","isSameOrAfter","getFromAndToDatePeriodAsString","fromMoment","toMoment","fromStr","toStr","Dashboard","isClientWithActiveContract","sm","md","CardHeader","Link","item","margin","top","right","left","bottom","vertical","dataKey","cursor","verticalAlign","stackId","barSize","entry","current_year","DashboardView","CustomInput","valueOrDefault","isNil","defaultValue","onChange","event","valueChanged","onFocus","active_css","ACTIVE_CSS","onBlur","trimOnBlur","trim","getLabelClassName","addClassName","REQUIRED_CSS","required","VALID_CSS","valid","INVALID_CSS","invalid","LABEL_DISABLED_CSS","getInputClassName","condition","prevState","FormGroup","labelText","Label","hidden","labelHidden","Input","placeholder","validText","invalidText","CustomSelect","getSelectClassName","isDisabled","classNamePrefix","packageTestStatuses","OK","NOK","NA","getTestStatusType","fetchPackagesInTestAndOrRetest","params","fetchPackagesInTest","alertGroup","filtersToUse","unfilteredPackages","filteredPackages","filterPackages","packagesInTestFetchSuccess","packagesInTestFetchFail","fetchPackagesInRetest","packagesInRetestFetchSuccess","packagesInRetestFetchFail","fetchPackagesUnconfirmed","packagesUnconfirmedFetchSuccess","packagesUnconfirmedFetchFail","fetchPackagesTested","packagesTestedFetchSuccess","packagesTestedFetchFail","fetchPackagesTestingAll","packagesTestingAllFetchSuccess","packagesTestingAllFetchFail","dateFilterField","filterStringIncludes","str","substr","exportClientPackagesTable","fileName","filtersUsed","wb","XLSX","utils","book_new","packagesSheet","packagesHeaders","packagesDataRows","EAN","EAN_type","package_category","package_type","combined_at","package_test","getPackagesDataRows","packagesRows","ws","aoa_to_sheet","dateNF","sheet_add_aoa","origin","c","s","getPackagesSheet","book_append_sheet","extraInfoSheet","extraInfoRows","filterEan","filterEanType","filterProductName","filterCategory","description","filterPackageType","filterCapacity","filterStatus","filterTestResult","getExtraInfoSheet","writeFile","compression","packageStatusTypes","packageStatusTypeLists","TESTING_STATUSES","RETESTING_STATUSES","fetchEanTypes","fetchCategories","fetchPackageTypes","fetchColors","fetchPackageVolumes","fetchPackageVolume","packageTypeId","fetchPackageStatuses","fetchPackageTestResults","removePackage","packageId","delete","package_id","fetchPendingApplication","isValidColorForPackageType","colorId","NoDataIndication","PackagesTable","packagesTableNode","handleChange","handleDateChange","date","handleSelectChange","selectedObject","filterDates","startMoment","endMoment","dateFieldMoment","isSameOrBefore","clearSearchFields","onExport","table","strict","snapshot","lg","Button","block","isClearable","getOptionLabel","option","getOptionValue","placeholderText","minDate","outline","renderTable","columns","sort","classes","headerClasses","textFilter","getFilter","selectFilter","headerStyle","column","colIndex","filterValue","cell","formatter","statusLabel","sortValue","test_status","bootstrap4","bordered","wrapperClasses","keyField","filterFactory","filterPosition","noDataIndication","defaultSorted","packagesErrorMessage","PackageView","ReportsView","RouteWithSubRoutes","component","SvgLeft","LeftText","SvgDelete","DeleteText","WrapperPulseLoader","size","i18n","use","initReactI18next","init","interpolation","escapeValue","lng","ns","defaultNS","keySeparator","returnEmptyString","resources","et","common_et","en","common_en","navigationUpdateHeaderSuffix","b64toBlob","b64Data","contentType","sliceSize","byteCharacters","atob","byteArrays","offset","byteNumbers","Array","charCodeAt","byteArray","Uint8Array","blob","Blob","SaleStatus","fetchSalesList","filterByToDate","filterByFromDate","isSuccess","fetchSalesReport","fetchRepairSalesReport","fetchSalesReportExportFile","isRepair","url","filename","FileSaver","saveAs","isRecent","periodDate","isAfter","reportDetails","calculateSalesReportPackageTotals","is_vat_free","totalPackages","totalDeposits","totalProcessFeesByType","totalProcessFees","quantity","Number","processFeeType","process_fee_type","previousProcessFeeTotal","process_fee","values","round","rounded_process_fee_total","rounded_process_fee_vat","rounded_deposit_total","fromDateMoment","toDateMoment","isSalesReportHasRepairReport","repair_report","fetchSalesReports","formattedFromDate","formattedToDate","endOf","client_id","unfilteredSalesReports","filteredSalesReports","filterSalesReports","adminSalesReportsFetchSuccess","fetchUnsubmittedSalesReports","adminUnsubmittedSalesReportsFetchSuccess","fetchUnconfirmedSalesReports","adminUnconfirmedSalesReportsFetchSuccess","last_test","adminFetchSalesReport","adminFetchRepairSalesReport","adminRepairSalesReportApproval","isApprove","comment","repair_report_id","is_approve","SvgMoreVertical","SvgHideInactive","StyledDropdownItem","ActionsCell","renderActionViewOriginal","isDetailsViewMode","createOriginalText","viewOriginalText","viewOriginalInDetailsText","viewText","onView","onViewTab","isOriginalSubmitted","hasRepair","renderItem","renderActionViewRepair","viewRepairText","viewRepairInDetailsText","editRepairText","onViewRepair","onViewRepairTab","hasEditableRepair","renderActionCreateRepair","isRecentPeriod","isSubmittedOriginalWithoutRepair","onCreateRepairReport","renderActionUpdateOriginalFromFile","onImportFromFile","renderActionUpdateRepairFromFile","onImportRepairFromFile","renderActionExportExcelTemplate","onGetExcelTemplate","isOpenInTab","repairReport","onSuccess","sales_report_id","createRepairReport","onCreateRepairReportSuccess","result","repairSalesReportId","isSubmittedOriginalWithEditableRepair","submitted_at","isRepairReportClientEditable","isOldWithoutRepair","renderDetailsViewMode","renderViewOriginal","renderDropdownMenu","renderActions","stopPropagation","renderAction","defaultsDeep","reduxActions","SvgDiagonalPlusClose","CloseTextIcon","ConfirmationModal","confirmButtonText","cancelButtonText","isOpen","onToggle","onCancel","onConfirm","isLoading","alertGroups","Modal","toggle","centered","backdrop","ModalBody","exportExcelSalesReportDetails","getFormattedSalesReportPeriod","firstSheetName","firstSheet","depositTotal","processFeeTotal","processFeeTotalVAT","toBePaid","client_code","deposit","process_fee_base","getPackagesRows","formattedPeriod","periodMoment","getFileName","DownloadSalesReportDetailsExcel","onError","Translation","FileUpload","getContainerClassName","isDragActive","isDragAccept","isDragReject","onDrop","onDropRejected","onDropAccepted","accept","multiple","maxSize","getRootProps","getInputProps","isFocused","dropzoneText","dropZoneText","SvgCloseInactive","ImportSalesReport","clearModalAlerts","updateSalesReportFromFile","async","isDetailsView","fetchData","formdata","FormData","append","endpointStatic","isArray","importSalesReportFromExcelFile","importFile","getSalesReportOrRepairUrl","errorContentFunc","eanErrorText","files","rejectedFiles","rejectedFile","fileMaxSize","maxSizeMB","fileTypes","acceptedFiles","acceptedFile","onRemoveSelectedFile","SvgInfo","updateNavigationHeaderSuffix","clearNavigationHeaderSuffix","confirmationTypes","CONFIRM_MODAL_ALERT_GROUP","SalesReportDetails","isConfirmationModalOpen","isConfirmationLoading","confirmationType","disapproveComment","isDisapproveCommentInvalid","updatePackageQuantity","newQuantity","oldquantity","salesReportId","oldPackage","package","isQuantityUpdateLoading","isQuantityUpdated","updateSalesLine","onSubmit","submitSalesReport","onSubmitSuccess","onSubmitFail","routeAndGroup","mainMessage","onPrint","onOpenConfirmationDialog","isConfirmRepairMode","onToggleAcceptConfirmation","onRepairReportApproval","onApproveRepairReport","onDisapproveRepairReport","periodFormatted","setSalesReportHeaderSuffix","isSubmitted","renderHeader","renderExtraActions","renderConfirmationModal","menuCellSalesReport","menuCellRepairReport","renderButtons","renderButton","DetailsExcelDownload","onConfirmFunc","footer","align","headerAlign","columnData","footerClasses","min","step","footerAlign","packageRow","extraFeeIconId","hasExtraFee","extra_fee","tooltipMessage","extraFee","innerClassName","arrowClassName","salesReportErrorMessage","updateSalesReportHeaderTotals","original_report","localHeaderTotals","OriginalSalesReport","deleteModalOpen","getReturnRoute","locationState","previousViewRoute","isDeletable","onOpenDeleteModal","onCancelDelete","onDelete","adminDeleteSalesReport","document","body","classList","remove","redirectToSalesReportsList","refreshList","renderDeleteModal","RepairSalesReport","isInfoModalConfirmed","isInfoModalCancelled","infoModalOpen","isInfoModalOpen","isRejected","onConfirmInfo","onCancelInfo","deleteRepairSalesReport","renderInfoModal","DateCell","momentDate","valueFormat","formatedDate","_path3","SvgDownload","strokeLinejoin","DocumentCell","invoiceStatuses","UNPAID_STATUS","PAID_STATUS","OVERDUE_STATUS","invoiceStatus","STATUS_LIST_FINAL_SUCCESS","STATUS_LIST_FINAL_FAILED","checkPaymentState","paymentReference","initiatePayment","amount","customer_url","order_reference","invoiceId","invoice_id","getPaymentStateAlertContent","paymentState","InvoicesTable","onClickPay","skipMountFetchInvoices","onClickPayAll","initiatePaymentLoading","Everypay","payment_link","finally","showReturnFromPaymentAlert","PAYMENT_ALERT_GROUP","URLSearchParams","search","replaceState","is_payable","toUpperCase","activeAlertGroups","InvoiceView","CenteredRowCol","InvoicePreviewModal","modal","onClickPayManually","getReferenceNumber","invoice_receiver","reference_number","onClickPayByLink","totalWithVAT","getCombinedAddress","invoiceReceiver","street","zipCode","county","dividerA","dividerB","totalWithoutVAT","totals","withoutVAT","without_VAT","totalVAT","VAT","with_VAT","fetchInvoiceData","renderContent","isInvoiceLoading","renderLoading","renderReceiverSection","renderTableSection","renderFooterSection","renderNoPreview","invoiceSum","invoiceRows","salesPeriod","footerAttrs","colSpan","rowClasses","ProfileView","updateCompanyProfile","fetchUsers","usersFetchFail","fetchUserSettings","removeUser","SvgActive","SvgInactive","SvgDeleteRow","CustomCheckbox","isSelected","adminClientsFetchSuccess","adminClientsFetchFail","adminPartnersFetchSuccess","adminPartnersFetchFail","adminEppUsersFetchSuccess","adminEppUsersFetchFail","adminfetchAllClients","fetchOnlyIfNull","adminfetchUsers","fetchClients","fetchPartners","fetchEpp","adminfetchClientUsers","AddUserModal","getInitialState","isAdmin","userRole","firstName","lastName","personalCode","onClickAddUser","preventDefault","userData","is_client_admin","partner_id","addUser","ALERT_GROUP","isShowUserRoles","Form","userRoles","CLIENT_ADMIN","CLIENT_USER","PARTNER","EPP","UserDetailsModal","userDetails","setStateUserDetails","oldUserDetails","saveUpdate","newUserDetails","user_type_id","position","userUpdateSuccess","userUpdateFail","onSave","disableFields","isShowUserRoleSelection","isUserRoleSelectionDisabled","UsersTable","isAddUserModalOpen","isUserDetailsModalOpen","selectedUser","showAddUserButton","showRemoveUserButton","toggleAddUserModal","toggleUserDetailsModal","onOpenUserDetails","onRemoveUser","user_id","dropdownFormatter","invalidated_at","rowEvents","rowIndex","PersonalProfileForm","getAlertGroupOrDefault","oldValue","hasAllProperties","isInvalid","invalidFields","object","every","contractMode","SvgUnchecked","SvgChecked","readonly","getAdditionalIconClasses","DISABLED_CSS","READONLY_CSS","check","inline","UserSettingsForm","newUserSettings","isEmailNotifications","is_contract","CompanyProfileForm","companies","disableBasisOption","handleSelectInputChange","fetchCompanies","handleCompanyChanged","company","regCode","reg_code","newBasis","updatesBasisDisabledOptionAndReturnNewBasis","board_members","address","zip_code","boardMembers","boardMembersPersonalCodes","member","ssid","handleBasisChange","handleInputChange","getBasisLabel","basisOptions","getBasisValueObject","isFieldsDisabled","getIsReadOnly","readOnly","renderSelectBasis","basisValue","isNotContractMode","isReadOnly","isOptionDisabled","isNotPartnerMode","onInputChange","noOptionsMessage","city","WarrantedUserForm","fetchShowWarrantComponent","showComponent","fetchClientWarrantedUsers","fetchLoading","warrantedUsers","warrantedUser","hasLoadedOnce","createWarrantedUser","createLoading","deleteWarrantedUser","warrantedUserId","deleteLoading","fieldErrors","getFieldErrors","updateWarrantedUser","previousUserState","newUserState","updateLoading","uploadWarrantFile","uploadFileLoading","onFileUpload","getInvalidText","mainContent","renderWarrantedUserForm","renderCreateWarrantedUserButton","renderClientMode","company_name","Textcompany_name","getElementById","click","marginTop","Profile","role","AddPackageModal","getDefaultEanType","find","INTERNATIONAL_EAN_TYPE_ID","checkIfEanTypeNeedsDefaultValue","currentEanType","defaultEanType","checkIfPackageVolumeValidOption","packageVolume","selectedVolumeId","getColorOptionById","colorOptions","isColorOptionDisabled","ONLY_COLORLESS_PACKAGE_TYPE_IDS","COLOR_COLORLESS_ID","validateAddPackage","clearPreviousAlerts","inputFields","addPackageInputFields","selectFields","addPackageSelectFields","validatedOnce","addPackage","addPackageLoading","packageWeight","packageColor","productName","ean_type","addNewPackage","packageName","clearFormFields","pendingApplicationLoading","application","pendingApplication","onRemovePackage","submitPackageApplication","errorAlertGroup","submitApplicationLoading","pendingPackage","packages_list","failed_products","fp","failedIds","isConfirmApplicationOpen","addPackageFieldsChanged","addPackageFields","checkIfPackageColorValidOption","newPackageColor","ModalHeader","renderInvoiceInfoAlert","renderForm","CardFooter","renderConfirmApplicationModal","packageCount","formattedInvoiceSum","sum","SvgArrowDown","SvgArrowUp","PersonalCollapse","collapse","setCollapse","useState","Collapse","CompanyCollapse","LANGUAGES","errorMessages","user_cancel","no_certificates","invalid_argument","no_implementation","technical_error","not_allowed","IdCardManager","_cert","initializeIdCard","Promise","resolve","reject","hwcrypto","getCertificate","lParam","lang","rCert","getAuthCertificate","signHexData","hexData","sign","hex","_signature","getCertFromManager","signWithIdCard","signatureId","signatureDigest","idCardManager","finalizeSignatureData","tokenId","certData","signature","_language","l","indexOf","getError","error_code","axiosFormConfig","Dokobit","kwargs","idEndpoints","mobileidEndpoints","digitalAuthStatus","smartidEndpoints","midEndpoints","authWithIdCard","certificate","idCardAuth","btoa","unescape","encodeURIComponent","Uint8ToBase64","encoded","success","dtbs_hash","userJson","user_json","convertedSignature","hexToBase64","idCardAuthVerify","convertedCert","phone_number","signAdminWithIdCard","checkAuthStatus","extraData","doRequest","res","ok","pending","setTimeout","fromCharCode","split","u8Arr","subarray","ContractModal","selectedAuth","contractUrl","contract","acceptContractTerms","isSigning","invalidPersonalFields","invalidCompanyFields","acceptContractTermsInvalid","selectedAuthInvalid","isValidatedAtleastOnce","dokobit","signContract","validateSignContract","new_company","new_reg_code","new_address","new_phone","new_email","new_iban","new_kmkr","signWithMid","signWithSmart","setIsSigning","mobileNumber","signMobileId","controlCode","control_code","checkSignStatus","signSmartId","onSignSuccess","identifier","ms","signMID","changeLoginMode","authOption","isSignWithSmartIdDisabled","isSignWithMIDDisabled","isSubmitDisabled","renderContractTermsCheckbox","transLabelText","_path4","_path5","_path6","SvgDocumentCorrection","SalesReportsSearch","onSearch","getSalesList","salesSearchFilterUpdate","dateFormat","showMonthYearPicker","maxDate","salesClearFilters","SalesTable","getDefaultSorted","periodColumnFormatter","onRowClick","reportUrl","submittedAtColumnFormatter","statusColumnFormatter","invoicesColumnFormatter","invoicesToComponents","salesReportInvoices","salesReportRepairInvoices","actionColumnFormatter","alignHeader","salesErrorMessage","createSummaryReportQueryParameters","SummaryReportsSearch","handleFilterUpdate","packageCategories","SummaryReportsTable","renderCenteredContent","getDynamicPeriodColumns","dynamicColumns","periods","summaryReportItemHasField","has","SummaryReport","createMassReportQueryParameters","MassReportsSearch","file_base64","file_name","handleReportFormatSelectChange","massReportUpdateFormat","MassReportTable","MassReport","contractStatuses","SIGNED","NOT_SIGNED","INVALID","contractStatusTypes","getContractStatusType","Contracts","bdoc","approved_at","SvgClose","PrivacyPolicyContent","Container","CookiePolicyContent","SvgArrowLeft","SvgArrowRight","CustomPagination","getPageFirstIndex","totalSize","getPageLastIndex","getSizePerPageText","unknownSizePerPageText","isPrevPageDisabled","isNextPageDisabled","onPrevPage","onPageChange","onNextPage","onSizePerPageChange","newSelected","newSizePerPage","currentStartingIndex","newPage","max","renderSizePerPageList","renderTotals","firstPageRowIndex","lastPageRowIndex","selectedAndDropdown","UncontrolledDropdown","caret","CustomSelectionHeader","checked","indeterminate","createSortingQueryParameter","asc","desc","createFilteringQueryParameters","addFilteringFieldToParams","queryParameter","selectedValue","getDetailsViewUrl","getListViewUrl","fetchReportsList","ordering","page_size","results","fetchDetails","confirmDetailsBulk","errorContent","deleteDetails","periodStart","periodEnd","fetchExportFile","base64","downloadFileBase64","ReturnReportStatus","inlineStyle","confirmed_at","ReturnReportImportSuccess","reports_created","lines_created","reports_updated","lines_updated","lines_deleted","ReturnReportsListSearch","updateFilters","isSearchable","reportUtils","listState","ConfirmReturnReportModal","groupId","ImportReturnReportModal","importReturnReportsFromFile","reportId","isUpdateSpecificReport","isPeriodFieldsFilled","isFileSelected","canSubmit","period_formatted","ReturnReportListActions","isAllSelectedConfirmable","selectedRows","is_confirmable","isConfirmDetailsOpen","isImportOpen","updateSelected","renderConfirmReportsButtonAndModal","renderImportButtonAndModal","onConfirmDetailsSuccess","isButtonDisabled","ConfirmDetailsModal","onImportSuccess","ReturnReportActionsMenu","onToggleConfirmationModal","renderImportModal","onToggleImportModal","renderActionOpenDetails","renderActionExport","onGetExportFile","renderConfirmDetails","renderImportFile","ReturnReportsClientListView","periodDateColumnFormatter","fetchList","config","onPaginationChange","updatePagination","newPagination","onTableChange","newState","updateSorting","sortOrder","sortField","newSorting","onSelect","isSelect","onSelectAll","newSelectedIds","possibleDuplicateIds","Set","onBulkImportSuccess","onSpecificImportSuccess","alertMessage","getImportFileSuccessMessage","detailsRoute","isValidClient","isAdminNowActive","isValidClientModeNowActive","ListActions","show","confirmedAt","line","col","selectRow","hideSelectAll","selectionRenderer","selectionHeaderRenderer","remote","stat","mapActionsToTops","API_COMMENT_CREATE_POST","VISIBILITY","PUBLIC","TYPE","MESSAGE","NOTIFICATION","ROLE","CLIENT","SYSTEM","ruleTrimmedStringLengthAtleast","minLength","sortCommentsByCreatedAt","comments","comment1","comment2","getLatestComment","latestComment","fetchInstanceComments","contentTypeId","objectId","method","createInstanceComment","visibility","removeComment","commentId","Alerts","SvgRefresh","Comment","deleteComment","canDelete","currentDate","currentDateIntervalId","setInterval","clearInterval","getCommentClassNames","renderDelete","renderInfo","created_by","createdAt","formattedCreatedAt","can_delete","fromNow","getCommentRoleClass","commentUtils","SvgArrowDownCircle","CommentsListEmpty","CommentsListLoading","CommentList","scrollToBottom","scrollHeight","listWrapperRef","current","scrollTo","behavior","handleScroll","element","clientHeight","scrollTop","hasScrolledUp","isShowScrollBottom","createRef","delayedScrollTimeoutId","addEventListener","clearTimeout","removeEventListener","prevLatestComment","currentLatestComment","prevLatestCreatedAt","delayScrollBottom","renderList","renderScrollBottom","sortedComments","listPrependContent","SvgSubmit","getInitialCommentData","CommentCreate","onBodyChange","handleTextareaKeyDown","isEnterDown","isModifierDown","altKey","shiftKey","ctrlKey","submitComment","pasteIntoInput","updateHeight","isBodyValid","isSubmitLoading","inputRef","blur","newComment","onInput","onKeyDown","el","parentNode","dataset","replicatedValue","focus","selectionStart","selectionEnd","val","selStart","selection","textRange","createRange","select","CommentsInvalidProps","Comments","fetchLatestComments","isLatestCommentsLoading","fetchComments","loadingField","fetchOlderComments","canFetchOlder","isOlderCommentsLoading","link","olderLink","createComment","isValidProps","isCreateCommentLoading","commentsErrorMessage","confirmDeleteComment","deleteCommentId","isDeleteLoading","emitCommentCountUpdate","onCommentCountUpdate","isCollapsed","isCollapsible","startCollapsed","lastUpdateAt","renderLoadOlder","renderLastUpdate","renderConfirmDeleteModal","hideHeader","toggleCollapse","headerContent","formattedDate","localizedText","classNames","latestCreatedAt","oldestCreatedAt","oldestComment","toISOString","addUniqueComments","newComments","existingCommentIds","uniqueNewComments","_isInitial","older","some","olderCommentsLink","SvgCircleQuestion","SvgCommentSolid","SvgCommentsSolid","customTooltipHeaderFormatter","sortElement","filterElement","minWidth","ReportLineList","lines","noLinesText","marginLeft","headerFormatter","headerTitle","mainClass","Icon","ReadCommentsIcon","AddCommentIcon","expandRow","parentClassName","renderer","content_type","hover","ReturnReportsDetailsView","onConfirmSuccess","isDetailsLoading","updateDetails","redirectToListView","currentLine","comments_count","getPeriodFormatted","marginBottom","display","alignContent","justifyContent","periodStartFormatted","periodEndFormatted","_COMMON_PATH","syncReports","ReportStatus","ReportSyncSuccess","client_count","filter_historic","report_count","invalid_contract","client_request_error","report_request_error","report_unexpected","report_is_posted","AdditionalDepositReportsListSearch","updateValue","getFullYear","showYearPicker","SyncAdditionalDepositReportModal","AdditionalDepositReportListActions","isSyncOpen","renderSyncButtonAndModal","onSyncSuccess","AdditionalDepositReportActionsMenu","renderSyncModal","onToggleSyncModal","renderSyncFile","AdditionalDepositReportListView","onSyncAllSuccess","top-text","onSpecificReportSyncSuccess","getSyncSuccessMessage","total_fee","base_fee","return_threshold_total_fee","return_threshold_base_fee","AdditionalDepositReportsDetailsView","additional_deposit_fees","return_threshold_fees","vat","RepairSalesReportView","OriginalSalesReportView","SummaryReportsView","MassReportView","ReturnReportListView","showUnreadNotifications","setShowUnreadNotifications","notificationsToggle","useRef","onNotificationRead","NOTIFICATIONS","onRemoveNotification","PrivacyPolicyView","CookiePolicyView","PartnerProfileView","PartnerProfile","TestingCompletedConfirmation","confirmationModalOpen","confirmationIsLoading","onOpenConfirmationModal","onCancelConfirmation","is_retest","isRetest","renderConfirmModal","PackagesSearch","updateFilter","exportButton","adminSendToTestingSuccess","adminSendToTestingFail","updatePackageDetails","packageDetails","activateInNav","activate_in_nav","start_date","package_status","deletePackage","PackageConditionValues","fetchTestingPackages","debt","skip_migration","unsubmitted_sales_reports","has_comment","has_standard_comments","filterApplications","adminTestingPackagesFetchSuccess","adminTestingPackagesFetchFail","confirmPackageTests","successIds","is_success","adminTestingConfirmPackageTestFail","ValueContainer","getValue","textMessage","selectProps","inputValue","Children","child","components","PackageTest","packageTest","packageTestLoading","confirmLoading","confirmPackageTestStartDate","isConfirmPackageTestOpen","getStickerSelectValue","is_sticker","showConfirmButton","tested_at","showUnconfirmedText","showSubmitButton","getSubmitButtonText","getTestedAt","testedAtMoment","uncollapse","updateStatePackageTest","propsPackageTest","onChangeNumber","removePeriodsAfterFirst","first","substring","onRemoveStandardComment","commentOption","standard_comments","sc","validateOnSubmit","notEmptyFields","emptyFields","notEmptyValidNumberFields","getAlertGroup","test_id","width_percentage","height_percentage","pv","vv","submitPackageTest","toggleCollapsed","isCollapsedOnMount","isWidthRequirementsFilled","getIsEAN8","getDefaultWidth","EAN8_WIDTH_AT_100","EAN13_WIDTH_AT_100","getDefaultHeight","EAN8_HEIGHT_AT_100","EAN13_HEIGHT_AT_100","getMinValidWidth","percentage","MIN_WIDTH_VERTICAL_SCALE_PERCENTAGE","MIN_WIDTH_HORIZONTAL_SCALE_PERCENTAGE","getMinValidHeight","MIN_HEIGHT_SCALE_PERCENTAGE","getMaxValidWidth","MAX_WIDTH_SCALE_PERCENTAGE","getMaxValidHeight","MAX_HEIGHT_SCALE_PERCENTAGE","isWidthValid","HORIZONTAL_LOCATION_VALUE","VERTICAL_LOCATION_VALUE","calculateWidthPercentage","toString","isWidthPercentageValidationRequirementsFilled","isWidthPercentageValid","widthPercentage","isHeightValidationRequirementsFilled","isHeightValid","EAN13_MIN_HEIGHT_VERTICAL","EAN13_MIN_HEIGHT_HORIZONTAL","calculateHeightPercentage","isHeightPercentageValidationRequirementsFilled","isHeightPercentageValid","heightPercentage","setDefaultLocation","renderTested","renderConfirmPackageTestButtonAndModal","renderStatus","tabSelectsValue","selectedOption","isMulti","closeMenuOnSelect","hideSelectedOptions","multiValue","base","renderComments","packageResult","updatedPackageTest","PackageTestList","packageTests","packageTestsLoading","hasOpenTest","test","getPackageTests","fetchPackageTests","handleError","pkgTest","onPackageTestSubmitSuccess","onPackageTestConfirmSuccess","onSendToTesting","packageIdsToTest","sendToTestingFromDetails","onSendToTestingSuccess","standardCommentsFetchSuccess","standardCommentsFetchFail","fetchStandardComments","locationsFetchSuccess","locationsFetchFail","fetchLocations","noPackagesText","packageTestElements","renderAddNewTest","showSendToTestingButton","PartnerPackagesTable","onSort","dateField","emptyTableIndication","expanded","onExpand","paginationOptions","custom","showTotal","paginationFactory","paginationProps","paginationTableProps","node","getDatatableNode","dateColumnHeader","Download","getPackages","sheetName","exportExcelPartnerTesting","packagesListFunc","PackagesInTestView","onScan","sCode","iQty","packagesInTestFilterClear","packagesInTestFilterUpdate","updateDatatableNode","datatableNodeRef","getPackagesForExport","paginationContext","onExcelError","isExpand","packagesInTestPaginationUpdate","packagesInTestSortingUpdate","attachTo","suffixKeyCodes","detachFrom","ExcelDownload","PackagesInRetestView","packagesInRetestFilterClear","packagesInRetestFilterUpdate","onPackageRetestSubmitSuccess","packagesInRetestPaginationUpdate","packagesInRetestSortingUpdate","PackagesUnconfirmedView","packagesUnconfirmedFilterClear","packagesUnconfirmedFilterUpdate","packagesUnconfirmedPaginationUpdate","packagesUnconfirmedSortingUpdate","PackagesTestedView","packagesTestedFilterClear","packagesTestedFilterUpdate","packagesTestedPaginationUpdate","packagesTestedSortingUpdate","PackagesTestingAllView","packagesTestingAllFilterClear","packagesTestingAllFilterUpdate","packagesTestingAllPaginationUpdate","packagesTestingAllSortingUpdate","PartnerPackagesView","PackageRegistryView","fetchApplications","adminApplicationsFetchSuccess","adminApplicationsFetchFail","generatePackageApplicationInvoice","findPackageEANById","SvgRaport","SvgSync","SvgDebt","PackageConditionsColors","TestConditionCircle","svgMode","circle","PackageConditionsIconsForTestComments","idSuffix","hasTestComment","hasTestStandardComments","sizeStyle","standardCommentsColor","commentColor","getBaseId","PackageClientConditions","debtAmount","unsubmittedReportsAmount","isUnsynced","hasDebt","hasUnsubmittedReports","ApplicationsTable","getSelectedIndices","selectedIndices","idx","pkgId","packageConditionsFormatter","CustomMultiValueContainer","icon","MultiValueContainer","IconOption","Option","LastTestHasStandardCommentIcon","LastTestHasCommentIcon","PackageConditionsSelect","hideTestConditions","SyncStatusIcon","ReportsStatusIcon","DebtStatusIcon","AdminApplicationsSearch","SelectedApplicationsModal","onGenerateInvoice","isGenerateInvoiceDisabled","isGenerateInvoiceLoading","selectedPackages","beepSound","Audio","ApplicationsView","isSelectedApplicationsModalOpen","applicationsWithEan","play","alreadySelectedApplications","unselectedApplications","applicationPlurarityText","descriptionFunc","adminApplicationsUpdateSelected","onToggleSelectedApplicationsModal","adminApplicationsPaginationUpdate","currentSorting","adminApplicationsSortingUpdate","onPackageSelect","onPackageSelectAll","sendToTestingIdsData","sentToTestingIds","reason","sendToTesting","packageDetailsUrl","firstClient","onKeyDetect","iKeyCode","adminApplicationsFilterUpdate","adminApplicationsFilterClear","TestingTable","AdminTestingSearch","getFilteredPackageStatuses","DATE_FORMAT","ProblemTypes","AdminTestingView","adminTestingPackagesFilterClear","adminTestingPackagesFilterUpdate","getPossibleGenericProblems","problemTypes","problems","noPackageProblem","parametersUnsyncedProblemsEAN","debtProblemsEAN","unsubmittedReportsProblemsEAN","unconfirmedTestProblemsEAN","failedTestProblemsEAN","inTestingProblemsEAN","findPackageById","lastTestValue","getPossibleActivateProblems","getIdsInWaiting","getConfirmTestResultIds","adminTestingPackagesPaginationUpdate","adminTestingPackagesSortingUpdate","adminTestingUpdateSelected","isConfirmRetestOpen","isConfirmActivateOpen","activateStartDate","activateLocation","confirmPackageTestsStartDate","isRefreshList","renderConfirmRetestButtonAndModal","renderConfirmPackageTestsButtonAndConfirmModal","renderConfirmActivateButtonAndModal","problem","adminTestingSendToRetestingSuccess","adminTestingSendToRetestingFail","sendToRetesting","successGroup","getPossibleConfirmPackageTestsProblems","successResults","errorResults","errorCount","successAlertGroup","successfulEANs","newLocation","hasValidationErrors","adminTestingActivatePackagesSuccess","adminTestingActivatePackagesFail","activatePackages","missingProductEANs","missing_product","missingTestEANs","missing_test","wrongStatusEANs","wrong_status","navErrors","nav_error","fetchAdminRetestingPackages","adminRetestingPackagesFetchSuccess","adminRetestingPackagesFetchFail","RetestingTable","AdminRetestingSearch","adminRetestingPackagesFilterClear","adminRetestingPackagesFilterUpdate","adminRetestingPackagesPaginationUpdate","adminRetestingPackagesSortingUpdate","adminRetestingUpdateSelected","adminRetestingConfirmPackageTestFail","confirmRetestingPackageTests","fetchAdminAllPackages","createAllPackagesEndpoint","adminAllPackagesFetchSuccess","mapSortingFieldToQuery","mapSortingOrderToQuery","mapFilterFieldsToQuery","AdminAllPackagesSearch","lastTestStatus","PackagesView","adminAllPackagesFilterClear","adminAllPackagesFilterUpdate","currentPagination","adminAllPackagesPaginationUpdate","adminAllPackagesSortingUpdate","DeleteModal","toggleButtonText","AdminPackageDetails","packageTypeVolumeOptions","packageDetailsLoading","packageUpdateLoading","packageApproveLoading","newPackageTestLoading","isConfirmUpdateOpen","isConfirmApproveOpen","approvalStartDate","validatePackage","FIELD_VALIDATION_ALERT_GROUP","onGetPossibleProblems","newStatus","goBack","showDeletePackage","deleteableStatuses","showUpdateButton","getEditableFields","showApproveButton","approvableStatuses","isPackageStatusIdOneOf","is_testable","onFieldUpdate","updateColorValueIfNecessary","isAnythingLoading","isUpdateDisabled","editableFields","isFieldDisabled","isApproveDisabled","updateVolumeOptionsAndValue","prevPackageType","currentPackageType","newVolumeOptionsIds","currentVolumeOption","currentPackageTypeId","previousState","onUpdate","getStatusOptionById","statusId","getPackageDetails","renderDeletePackageModal","renderUnsyncedParametersAlert","renderDebtAlert","renderUnsubmittedSalesReportsAlert","renderTesting","renderGenerateMissingApplicationInvoiceModal","renderConfirmUpdateButtonAndModal","renderConfirmApproveButtonAndModal","clientInvoicesUrl","filterClientOptionObject","confirmationText","deleteEndpointFunc","isConfirmGenerateApplicationInvoiceOpen","is_application_invoice","generatePackageApplicationInvoiceLoading","packagesApprovedLoading","fetchPackageDetails","DebtsSearch","getDebtsList","from_date","to_date","overdueMinNum","overdue","overdueMaxNum","fetchDebts","adminDebtsFilterUpdate","debtsListLoadng","adminDebtsFilterClear","DebtsTable","due_date","dueMoment","daysOverdue","AdminDebtsView","fetchClient","onClickSendInvoiceReminder","alertUrl","sendInvoiceReminder","onClickSendInvoicesSummary","sendInvoicesSummary","fetchAdminInvoices","invoices_balance_nav","AdminInvoicesView","AdminUsersView","clientsLoading","Clients","companyFilter","contractStatusFilter","contractStatusOptions","adminClientsPaginationUpdate","adminClientsSortingUpdate","adminClientsFilterUpdate","loadingMessage","filteredClients","Client","CompanyProfileFormAdmin","latest_basis","invoice_email","SynchronizeButton","synchronizeModalOpen","synchronizeIsLoading","onOpenSynchronizeModal","onCancelSynchronize","onSynchronize","migrate_all","renderSynchronizeModal","modalOpen","isMobileIdDisabled","isSmartIdDisabled","signAdminMobileId","signAdminSmartId","clientDetail","contractSigned","toggleModal","ContractForm","latestContract","number","isDocumentSignerVerified","isContractsLoading","isConfirmFileUploadModalOpen","fileUploadEvent","fileUploadLoading","isConfirmTerminateContractOpen","terminateContractLoading","getContracts","fetchContracts","signedBy","userVerifiedAt","latest","olderContracts","older_contracts","fetchIsUserVerified","onVerifyContractSigner","userId","userid","verifyContractSigner","renderLatestContract","signed_document","latestDocument","renderConfirmContractFileUpload","renderConfirmTerminateContract","onCancelFunc","htmlFor","persist","uploadContract","terminateContract","Partners","toggleConfirmationModal","onSendPasswordReset","adminRemovePartnerUser","adminPartnersUserUpdate","EppUsers","adminRemoveEppUser","adminEppUserUpdate","adminRemoveClientUser","AdminReportsView","AdminSalesReportsSearch","filtersUpdate","filtersClear","isGetRepair","AdminSalesReportsTable","AdminSalesReportsView","getSalesReportsList","isRedirectToSpecificClientReports","adminSalesReportsFilterUpdate","adminSalesReportsFilterClear","AdminUnconfirmedRepairReportsView","filterUnconfirmedSalesReports","isSalesReportHasUnconfirmedRepairReport","adminUnconfirmedSalesReportsFilterUpdate","adminUnconfirmedSalesReportsFilterClear","AdminUnsubmittedOrRejectedRepairReportsView","statuses","isSalesReportOrItsRepairReportHasStatuses","adminUnsubmittedSalesReportsFilterUpdate","adminUnsubmittedSalesReportsFilterClear","fetchAdminSettingsCategories","fetchAdminSettingsTypes","fetchAdminSettingsColors","fetchAdminSettingsVolumes","fetchAdminSettingsProcessFees","SettingsView","fetchSettingsFromNav","Categories","Types","Colors","Volumes","ProcessFees","cost","TestingView","RetestingView","PackageDetailsView","UnsubmittedRepairReports","UnconfirmedRepairReports","DebtsView","UsersView","ClientsView","ClientView","Users","PartnersView","EppUsersView","EppProfile","MidForm","handleChanged","SmartIdForm","IdCardForm","isAuthenticating","EmailForm","LoginCard","setIsAuthenticating","authenticateUser","logInCredentials","username","password","logInMid","logInId","logInSmart","Authorization","expirationDate","setHours","getHours","setItem","login","mobileIdAuth","showAuthStartErrorMessage","user_object","showAuthStatusErrorMessage","country","smartIdAuth","authenticationFrameLoadedSuccessfully","idCardAuthenticationStarted","idCardAuthenticationKey","logInIdCertificateAuthenticatedResolve","dokobitAuthToken","userObject","idCardAuthSuccess","onAuthenticationFrameLoad","defaultAuth","Isign","PostMessage","warn","emailEnabled","renderControlCode","src","onLoad","class","LoginView","ForgotPasswordView","passwordResetSuccess","resetAlerts","addAlert","resetPassword","new_password1","renderAlerts","form","ChangePasswordView","passwordOne","passwordTwo","passwordChangeSuccess","fetchKeyFailed","changePassword","getKey","uid","new_password2","publicRoutes","showMissingContractAlert","CreateContractAlertContent","App","updateLocalLanguage","locale","registerLocale","setDefaultLocale","checkAuthState","showNotVerifiedAlert","getRoutes","isAuthenticatedWithUser","from","isAuthenticatedWithoutUser","backgroundColor","css","public_routes","admin_routes","partner_routes","client_routes","getTime","Boolean","hostname","interceptors","app","I18nextProvider","i18next","ReactDOM","navigator","serviceWorker","ready","registration","unregister"],"mappings":"6QAAA,IAGIA,EAAUC,gDAKd,IAAIC,EARQC,EAAQ,KAQMC,OAAO,CAC7BJ,QAASA,EACTK,QAAS,CACL,kBAAmB,QAmB3BC,EAAOC,QAAUL,G,iw+CC9BV,MAYMM,EAAgB,gBCZhBC,EAAe,CAACC,EAAWC,KAC7B,IACAD,KACAC,ICALC,EAAe,CACjBC,MAAO,KACPC,MAAO,KACPC,SAAS,EACTC,KAAM,CACFA,KAAM,GACNC,cAAe,GACfC,IAAK,GACLC,WAAY,GACZC,UAAW,GACXC,UAAU,EACVC,cAAc,EACdC,MAAO,GACPC,MAAO,GACPC,MAAO,GACPC,UAAW,CACPC,YAAa,GACbC,WAAY,GACZF,UAAW,IAEfG,cAAe,CACXC,SAAS,EACTC,SAAU,KACVC,yBAAyB,EACzBC,iBAAiB,EACjBC,uBAAuB,EACvBC,sBAAsB,GAE1BC,QAAS,CACL,CACIC,KAAM,GACNC,eAAe,EACfC,mBAAmB,EACnBC,wBAAwB,KAIpCC,MAAO,GACPC,SAAU,MAGRC,EAAgB,CAACC,EAAOC,IACnBpC,EAAamC,EAAO,CACvBE,aAAc,KACdC,eAAgB,KAChBhC,SAAS,IAIXiC,EAAkB,CAACJ,EAAOC,IACrBpC,EAAamC,EAAO,CACvBG,eAAgB,gCAChBhC,SAAS,IAIXkC,EAAe,CAACL,EAAOC,IAClBpC,EAAamC,EAAO,CACvBE,aAAcD,EAAO/B,MACrBC,SAAS,IAIXmC,EAAY,CAACN,EAAOC,IACfpC,EAAamC,EAAO,CACvB9B,MAAO,KACPC,SAAS,IAIXoC,EAAc,CAACP,EAAOC,IACjBpC,EAAamC,EAAO,CACvB/B,MAAOgC,EAAOhC,MACdC,MAAO,KACPC,SAAS,IAIXqC,EAAW,CAACR,EAAOC,IACdpC,EAAamC,EAAO,CACvB/B,MAAO,KACPC,MAAO+B,EAAO/B,MACdC,SAAS,IAIXsC,EAAS,CAACT,EAAOC,IACZpC,EAAamC,EAAO,CACvB/B,MAAO,OAITyC,EAAU,CAACV,EAAOC,IACfA,EAAO7B,KAKLP,EAAamC,EAAO,CACvB5B,KAAM,IACC6B,EAAO7B,KACVuC,KAAMV,EAAO7B,KAAKuC,MAAQC,aAAaC,QAAQ,SAEnDf,SAAUc,aAAaC,QAAQ,YAC/BC,eAAgBF,aAAaC,QAAQ,oBAV9BhD,EAAamC,EAAO,CACvB5B,KAAM6B,EAAO7B,OAqCV2C,MAvBF,WAAmC,IAAlCf,EAAiC,uDAAzBhC,EAAciC,EAAW,uCAC3C,OAAQA,EAAOe,MACX,IF/GsB,iBEgHlB,OAAOjB,EAAcC,GACzB,IFhHwB,mBEiHpB,OAAOI,EAAgBJ,GAC3B,IFjHqB,gBEkHjB,OAAOK,EAAaL,EAAOC,GAC/B,IFlHkB,aEmHd,OAAOK,EAAUN,GACrB,IFnHoB,eEoHhB,OAAOO,EAAYP,EAAOC,GAC9B,IFpHiB,YEqHb,OAAOO,EAASR,EAAOC,GAC3B,IFrHe,UEsHX,OAAOQ,EAAOT,GAClB,KAAKiB,EACD,OAAOP,EAAQV,EAAOC,GAC1B,QACI,OAAOD,IC/HnB,MAIMhC,EAAe,CACjBkD,eAL0B,CAC1BC,aAAc,KAOZC,EAAqB,CAACpB,EAAOqB,IACxBxD,EAAamC,EAAO,CACvBmB,aAAcE,GAAc,KCX9BrD,EAAe,CACjBsD,aAAc,GACdC,qBAAqB,EACrBC,SAAU,GACVC,WAAY,GACZC,aAAc,GACdC,cAAe,GACfC,eAAgB,GAChBC,gBAAiB,GACjBC,mBAAoB,IAGlBC,EAAwB,CAAC/B,EAAOC,IAC3BpC,EAAamC,EAAO,CACvBsB,aAAc,GACdO,gBAAiB,KAInBG,EAAiChC,GAC5BnC,EAAamC,EAAO,CACvBwB,SAAU,GACVC,WAAY,GACZC,aAAc,GACdC,cAAe,GACfE,gBAAiB,KAInBI,EAAsBjC,GACjBnC,EAAamC,EAAO,CACvB7B,SAAS,EACTmD,aAAc,GACdC,qBAAqB,IAIvBW,EAAuB,CAAClC,EAAOmC,IAC1BtE,EAAamC,EAAO,CACvBsB,aAAca,EACdhE,SAAS,EACToD,qBAAqB,IAIvBa,EAAoB,CAACpC,EAAOqC,IACvBxE,EAAamC,EAAO,CACvBsB,aAAc,GACdpD,MAAOmE,EACPlE,SAAS,EACToD,qBAAqB,IAIvBe,EAAsBtC,GACjBnC,EAAamC,EAAO,CACvB7B,SAAS,IAIXoE,EAAuB,CAACvC,EAAOwB,IAC1B3D,EAAamC,EAAO,CACvBwB,SAAUA,IAIZgB,EAAoB,CAACxC,EAAOqC,IACvBxE,EAAamC,EAAO,CACvBwB,SAAU,GACVtD,MAAOmE,IAITI,EAAwBzC,GACnBnC,EAAamC,EAAO,CACvB7B,SAAS,IAIXuE,EAAyB,CAAC1C,EAAOyB,IAC5B5D,EAAamC,EAAO,CACvByB,WAAYA,EACZtD,SAAS,IAIXwE,EAAsB,CAAC3C,EAAOqC,IACzBxE,EAAamC,EAAO,CACvByB,WAAY,GACZtD,SAAS,EACTD,MAAOmE,IAITO,EAA0B5C,GACrBnC,EAAamC,EAAO,CACvB7B,SAAS,IAIX0E,EAA2B,CAAC7C,EAAO0B,IAC9B7D,EAAamC,EAAO,CACvB0B,aAAcA,EACdvD,SAAS,IAIX2E,EAAwB,CAAC9C,EAAOqC,IAC3BxE,EAAamC,EAAO,CACvB0B,aAAc,GACdvD,SAAS,EACTD,MAAOmE,IAITU,EAA2B/C,GACtBnC,EAAamC,EAAO,CACvB7B,SAAS,IAIX6E,EAA4B,CAAChD,EAAO2B,IAC/B9D,EAAamC,EAAO,CACvB2B,cAAeA,EACfxD,SAAS,IAIX8E,EAAyB,CAACjD,EAAOqC,IAC5BxE,EAAamC,EAAO,CACvB2B,cAAe,GACfxD,SAAS,EACTD,MAAOmE,IAITa,EAA4BlD,GACvBnC,EAAamC,EAAO,CACvB7B,SAAS,IAIXgF,EAA6B,CAACnD,EAAO4B,IAChC/D,EAAamC,EAAO,CACvB4B,eAAgBA,EAChBzD,SAAS,IAIXiF,EAA0B,CAACpD,EAAOqC,IAC7BxE,EAAamC,EAAO,CACvB4B,eAAgB,GAChBzD,SAAS,EACTD,MAAOmE,IAITgB,EAA6BrD,GACxBnC,EAAamC,EAAO,CACvB7B,SAAS,IAIXmF,EAA8B,CAACtD,EAAO6B,IACjChE,EAAamC,EAAO,CACvB6B,gBAAiBA,EACjB1D,SAAS,IAIXoF,EAA2B,CAACvD,EAAOqC,IAC9BxE,EAAamC,EAAO,CACvB6B,gBAAiB,GACjB1D,SAAS,EACTD,MAAOmE,IAITmB,EAAgCxD,GAC3BnC,EAAamC,EAAO,CACvB7B,SAAS,IAIXsF,EAAiC,CAACzD,EAAO8B,IACpCjE,EAAamC,EAAO,CACvB8B,mBAAoBA,EACpB3D,SAAS,IAIXuF,EAA8B,CAAC1D,EAAOqC,IACjCxE,EAAamC,EAAO,CACvB7B,SAAS,EACTD,MAAOmE,IAITsB,EAAoB3D,GACfnC,EAAamC,EAAO,CACvB7B,SAAS,IAIXyF,EAAsB5D,GACjBnC,EAAamC,EAAO,CACvB9B,MAAO,KACPC,SAAS,IAIX0F,GAAkB,CAAC7D,EAAOqC,IACrBxE,EAAamC,EAAO,CACvB7B,SAAS,EACTD,MAAOmE,IA4FAF,OAxFE,WAAmC,IAAlCnC,EAAiC,uDAAzBhC,EAAciC,EAAW,uCAC/C,OAAQA,EAAOe,MAEX,IJ7K4B,uBI8KxB,OAAOiB,EAAmBjC,GAC9B,IJ9K8B,yBI+K1B,OAAOkC,EAAqBlC,EAAOC,EAAOqB,cAC9C,IJ/K2B,sBIgLvB,OAAOc,EAAkBpC,EAAOC,GAGpC,IJjL6B,wBIkLzB,OAAOqC,EAAmBtC,GAC9B,IJlL+B,0BImL3B,OAAOuC,EAAqBvC,EAAOC,EAAOuB,UAC9C,IJnL4B,uBIoLxB,OAAOgB,EAAkBxC,EAAOC,GAGpC,IJrLsC,iCIsLlC,OAAOwC,EAAqBzC,GAChC,IJrLJ,mCIsLQ,OAAO0C,EAAuB1C,EAAOC,EAAOwB,YAChD,IJtLqC,gCIuLjC,OAAOkB,EAAoB3C,EAAOC,GAGtC,IJxLiC,4BIyL7B,OAAO2C,EAAuB5C,GAClC,IJzLmC,8BI0L/B,OAAO6C,EAAyB7C,EAAOC,EAAOyB,cAClD,IJ1LgC,2BI2L5B,OAAOoB,EAAsB9C,EAAOC,GAGxC,IJ5LkC,6BI6L9B,OAAO8C,EAAwB/C,GACnC,IJ7LoC,+BI8LhC,OAAOgD,EAA0BhD,EAAOC,EAAO0B,eACnD,IJ9LiC,4BI+L7B,OAAOsB,EAAuBjD,EAAOC,GAGzC,IJhMmC,8BIiM/B,OAAOiD,EAAyBlD,GACpC,IJjMqC,gCIkMjC,OAAOmD,EAA2BnD,EAAOC,EAAO2B,gBACpD,IJlMkC,6BImM9B,OAAOwB,EAAwBpD,EAAOC,GAG1C,IJpMoC,+BIqMhC,OAAOoD,EAA0BrD,GACrC,IJrMsC,iCIsMlC,OAAOsD,EAA4BtD,EAAOC,EAAO4B,iBACrD,IJtMmC,8BIuM/B,OAAO0B,EAAyBvD,EAAOC,GAG3C,IJvMJ,mCIwMQ,OAAOuD,EAA6BxD,GACxC,IJvMJ,qCIwMQ,OAAOyD,EACHzD,EACAC,EAAO6B,oBAEf,IJ1MJ,kCI2MQ,OAAO4B,EAA4B1D,EAAOC,GAG9C,IJ5M0B,qBI6MtB,OAAO0D,EAAiB3D,GAC5B,IJ7M4B,uBI8MxB,OAAO4D,EAAmB5D,GAC9B,IJ9MyB,oBI+MrB,OAAO6D,GAAgB7D,EAAOC,EAAO/B,MAAM4F,SAE/C,IJxQuB,kBIyQnB,OAAO9B,EAA8BhC,GAEzC,KAAKiB,EACD,OAAOc,EAAsB/B,GAEjC,QACI,OAAOA,IC9SnB,MAAMhC,GAAe,CACjB+F,SAAU,GACVC,iBAAiB,EACjBC,QAAS,KAETC,QAAS,KACTC,gBAAgB,EAChBC,oBAAqB,MAGnBrC,GAAwB,CAAC/B,EAAOC,IAC3BpC,EAAamC,EAAO,CACvB+D,SAAU,GACVE,QAAS,KACTC,QAAS,OAIXG,GAAsBrE,GACjBnC,EAAamC,EAAO,CACvB7B,SAAS,EACT4F,SAAU,GACVC,iBAAiB,EACjBC,QAAS,OAIXK,GAAuB,CAACtE,EAAOuE,IAC1B1G,EAAamC,EAAO,CACvB7B,SAAS,EACT4F,SAAUQ,EAAaR,SACvBC,iBAAiB,EACjBC,QAASM,EAAaC,mBAIxBC,GAAoB,CAACzE,EAAOqC,IACvBxE,EAAamC,EAAO,CACvB7B,SAAS,EACT6F,iBAAiB,EACjB9F,MAAOmE,IAITqC,GAAyB1E,GACpBnC,EAAamC,EAAO,CACvB7B,SAAS,EACT+F,QAAS,KACTC,gBAAgB,EAChBC,oBAAqB,OAIvBO,GAA0B,CAAC3E,EAAOkE,IAC7BrG,EAAamC,EAAO,CACvB7B,SAAS,EACT+F,QAASA,EACTC,gBAAgB,IAIlBS,GAAuB,CAAC5E,EAAOE,IAC1BrC,EAAamC,EAAO,CACvB7B,SAAS,EACTgG,gBAAgB,EAChBC,oBAAqBlE,IA2Bd6D,OAvBE,WAAmC,IAAlC/D,EAAiC,uDAAzBhC,GAAciC,EAAW,uCAC/C,OAAQA,EAAOe,MACX,ILkB4B,uBKjBxB,OAAOqD,GAAmBrE,GAC9B,ILiB8B,yBKhB1B,OAAOsE,GAAqBtE,EAAOC,EAAO4E,MAC9C,ILgB2B,sBKfvB,OAAOJ,GAAkBzE,EAAOC,EAAO/B,OAE3C,ILegC,4BKd5B,OAAOwG,GAAsB1E,GACjC,ILckC,8BKb9B,OAAO2E,GAAwB3E,EAAOC,EAAOiE,SACjD,ILa+B,2BKZ3B,OAAOU,GAAqB5E,EAAOC,EAAO6E,aAE1C,KAAK7D,EACL,OAAOc,GAAsB/B,GACjC,QACI,OAAOA,I,mBCvFnB,MAAM+E,GAAiB,CACnBC,SAAU,KACVC,OAAQ,MAGNjH,GAAe,CACjBkH,QAASH,GACTI,UAAW,GACXC,kBAAmB,KACnBC,gBAAiB,KACjBlH,SAAS,EACTmH,kBAAkB,EAClBC,qBAAqB,EACrBrH,MAAO,MAGL6D,GAAwB,CAAC/B,EAAOC,IAC3BjC,GAGLwH,GAAmBxF,GACdnC,EAAamC,EAAO,CACvB7B,SAAS,EACTmH,kBAAkB,EAClBH,UAAW,GACXC,kBAAmB,KACnBC,gBAAiB,OAInBI,GAAoB,CAACzF,EAAO0F,EAAOV,EAAUC,KAC/C,GAAIS,EACA,IAAK,MAAMC,KAAeD,EACtBC,EAAYC,aAAeD,EAAYE,GAAKF,EAAYG,OAASH,EAAYI,UAC7EJ,EAAYK,wBAA0BC,KAAON,EAAYG,QAAQI,OAAO,WAAaP,EAAYI,UAGzG,OAAOlI,EAAamC,EAAO,CACvBmF,UAAWO,EACXN,kBAAmBJ,EACnBK,gBAAiBJ,EACjB9G,SAAS,EACTmH,kBAAkB,KAIpBa,GAAiB,CAACnG,EAAOC,IACpBpC,EAAamC,EAAO,CACvBmF,UAAW,GACXhH,SAAS,EACTmH,kBAAkB,EAClBpH,MAAO+B,EAAOoC,MAIT+D,GAAqB,CAACpG,EAAO1B,EAAK+H,IACpCxI,EAAamC,EAAO,CACvBkF,QAAS,IACFlF,EAAMkF,QACT,CAAC5G,GAAM+H,KAKNC,GAAgBtG,GAClBnC,EAAamC,EAAO,CACvBkF,QAAS,IACFH,MAKTwB,GAAyB,CAACvG,EAAOC,IAC5BpC,EAAamC,EAAO,CACvBuF,qBAAqB,IAGvBiB,GAA4BxG,GACvBnC,EAAamC,EAAO,CACvBuF,qBAAqB,IAGvBkB,GAAyBzG,GACpBnC,EAAamC,EAAO,CACvBuF,qBAAqB,ICrFvBvH,GAAe,CACjBmE,SAAU,GACVuE,OAAQ,GACRC,QAAS,GACTxI,SAAS,EACTyI,oBAAoB,EACpBC,eAAe,EACfC,eAAe,EACf5I,MAAO,KACP6I,6BAA6B,EAC7BC,0BAA2B,KAC3BC,2BAA2B,EAC3BC,wBAAyB,KACzBC,iBAAiB,GAGfpF,GAAwB,CAAC/B,EAAOC,IAC3BjC,GAGLoJ,GAAyBpH,GACpBnC,EAAamC,EAAO,IACpBhC,GACHG,SAAS,EACTyI,oBAAoB,IAItBS,GAA0B,CAACrH,EAAOsH,IAC7BzJ,EAAamC,EAAO,CACvB0G,OAAQY,EAAOZ,OACfvE,SAAUmF,EAAOC,QACjBZ,QAASW,EAAOE,eAChBrJ,SAAS,EACTyI,oBAAoB,IAItBa,GAAuB,CAACzH,EAAOC,IAC1BpC,EAAamC,EAAO,CACvB2G,QAAS,GACTD,OAAQ,GACRvE,SAAU,GACVhE,SAAS,EACTyI,oBAAoB,EACpB1I,MAAO+B,EAAOoC,MAIhBqF,GAAuB,CAAC1H,EAAOC,IAC1BpC,EAAamC,EAAO,CACvBmH,iBAAiB,EACjBhF,SAAUnC,EAAMmC,SAASwF,IAAIC,GAAOA,EAAI/B,KAAO5F,EAAO4H,eAAehC,GAAK5F,EAAO4H,eAAiBD,KAIpGE,GAAyB,CAAC9H,EAAOC,IAC5BpC,EAAamC,EAAO,CACvBmC,SAAUnC,EAAMmC,SAASwF,IAAIC,GAAOA,EAAI/B,KAAO5F,EAAO4H,eAAehC,GAAK5F,EAAO4H,eAAiBD,GAClGT,iBAAiB,IAInBY,GAAsB,CAAC/H,EAAOC,IACzBpC,EAAamC,EAAO,CACvBmH,iBAAiB,EACjBhF,SAAUnC,EAAMmC,SAASwF,IAAIC,GAAOA,EAAI/B,KAAO5F,EAAO4H,eAAehC,GAAK5F,EAAO4H,eAAiBD,GAClG1J,MAAO+B,EAAOoC,MAIhB2F,GAA0BhI,GACrBnC,EAAamC,EAAO,CACvB7B,SAAS,EACT0I,eAAe,EACfoB,YAAa,OAIfC,GAA4BlI,GACvBnC,EAAamC,EAAO,CACvB7B,SAAS,EACT0I,eAAe,IAIjBsB,GAAwB,CAACnI,EAAOqC,IAC3BxE,EAAamC,EAAO,CACvB7B,SAAS,EACT0I,eAAe,EACfoB,YAAa5F,IAIf+F,GAAiC,CAACpI,EAAOC,IACpCpC,EAAamC,EAAO,CACvB7B,SAAS,EACT4I,6BAA6B,EAC7BC,0BAA2B,OAI7BqB,GAAmC,CAACrI,EAAOC,IACtCpC,EAAamC,EAAO,CACvB7B,SAAS,EACT4I,6BAA6B,IAI/BuB,GAAgC,CAACtI,EAAOC,IACnCpC,EAAamC,EAAO,CACvB7B,SAAS,EACT4I,6BAA6B,EAC7BC,0BAA2B/G,EAAO/B,QAIpCqK,GAA+B,CAACvI,EAAOC,IAClCpC,EAAamC,EAAO,CACvB7B,SAAS,EACT8I,2BAA2B,EAC3BC,wBAAyB,OAI3BsB,GAAiC,CAACxI,EAAOC,IACpCpC,EAAamC,EAAO,CACvB7B,SAAS,EACT8I,2BAA2B,IAI7BwB,GAA8B,CAACzI,EAAOC,IACjCpC,EAAamC,EAAO,CACvB7B,SAAS,EACT8I,2BAA2B,EAC3BC,wBAAyBjH,EAAO/B,QAIlCwK,GAA0B1I,GACrBnC,EAAamC,EAAO,CACvB7B,SAAS,EACT2I,eAAe,EACf6B,YAAa,OAIfC,GAA4B5I,GACvBnC,EAAamC,EAAO,CACvB7B,SAAS,EACT2I,eAAe,IAIjB+B,GAAwB,CAAC7I,EAAOqC,IAC3BxE,EAAamC,EAAO,CACvB7B,SAAS,EACT2I,eAAe,EACf6B,YAAatG,IAIfyG,GAAiC,CAAC9I,EAAOC,KAC3C,MAAMkC,EAAW,IAAInC,EAAMmC,UAC3B,IAAI4G,EACJ,IAAK,MAAMC,KAAO7G,EACV6G,EAAInD,KAAO5F,EAAO4F,KAClBkD,EAAa,IACNC,EACH,CAAC/I,EAAOgJ,OAAQhJ,EAAOoG,QAKnC,OAAOxI,EAAamC,EAAO,CACvBmC,SAAUA,EAASwF,IAAIqB,GAAOA,EAAInD,KAAOkD,EAAWlD,GAAKkD,EAAaC,MAIxEE,GAA+B,CAAClJ,EAAOC,KACzC,MAAMyG,EAAS,IAAI1G,EAAM0G,QAEzB,OADAA,EAAOzG,EAAOgJ,OAAShJ,EAAOoG,MACvBxI,EAAamC,EAAO,CACvB0G,OAAQA,KAIVyC,GAAgC,CAACnJ,EAAOC,KAC1C,MAAMyG,EAAS,IAAI1G,EAAM0G,QAKzB,OAJAA,EAAO0C,cAAgBnJ,EAAOmJ,cAC9B1C,EAAO2C,kBAAoBpJ,EAAOoJ,kBAClC3C,EAAO4C,gBAAkBrJ,EAAOqJ,gBAChC5C,EAAO6C,WAAatJ,EAAOsJ,WACpB1L,EAAamC,EAAO,CACvB0G,OAAQA,KCpLV1I,GAAe,CACjBkH,QAfmB,CACnBF,SAAUiB,OAASuD,SAAS,EAAG,QAAQC,QAAQ,SAASxE,SACxDA,OAAQgB,OAASwD,QAAQ,SAASxE,SAClCyE,YAAa,KACbC,gBAAiB,KACjBC,aAAa,EACbC,aAAa,EACbC,iBAAiB,EACjBC,UAAU,EACVC,qBAAqB,EACrBC,YAAY,EACZC,aAAa,GAKbC,YAAa,KACbC,oBAAqB,KACrBC,kBAAmB,KACnBC,oBAAoB,EACpBC,WAAY,KACZzD,eAAe,EACf3I,SAAS,EACTD,MAAO,MAGL6D,GAAwB,CAAC/B,EAAOC,IAC3BjC,GAGLwM,GAA4BxK,GACvBnC,EAAamC,EAAO,CACvB7B,SAAS,EACTmM,oBAAoB,EACpBF,oBAAqB,KACrBC,kBAAmB,KACnBnM,OAAO,EACPiM,YAAa,OAIfM,GAA6B,CAACzK,EAAOC,IAChCpC,EAAamC,EAAO,CACvB7B,SAAS,EACTmM,oBAAoB,EACpBpM,OAAO,EACPiM,YAAalK,EAAOkK,YACpBC,oBAAqBnK,EAAO+E,SAC5BqF,kBAAmBpK,EAAOgF,SAI5ByF,GAA0B,CAAC1K,EAAOC,IAC7BpC,EAAamC,EAAO,CACvB9B,MAAO+B,EAAOoC,IACdlE,SAAS,EACTmM,oBAAoB,IAItBK,GAAkC,CAAC3K,EAAOC,IACrCpC,EAAamC,EAAO,CACvBkF,QAAS,IACFlF,EAAMkF,QACT,CAACjF,EAAO3B,KAAM2B,EAAOoG,SAK3BuE,GAA4B5K,GACvBnC,EAAamC,EAAO,CACvB7B,SAAS,EACT2I,eAAe,EACf5I,OAAO,IAIT2M,GAA6B,CAAC7K,EAAOC,IAChCpC,EAAamC,EAAO,CACvB7B,SAAS,EACT2I,eAAe,EACf5I,OAAO,EACPqM,WAAYtK,EAAOsK,aAIrBO,GAA0B,CAAC9K,EAAOC,IAC7BpC,EAAamC,EAAO,CACvB7B,SAAS,EACT2I,eAAe,EACf5I,MAAO+B,EAAOoC,MClFhB0I,GAAgB,CAClB,CAAC1E,MAHc,OAGK2E,MAAO,QAC3B,CAAC3E,MAHe,QAGK2E,MAAO,UAK1BhN,GAAe,CACjBkH,QAfmB,CACnBF,SAAU,KACVC,OAAQ,MAcRgG,SAAU,KACVC,iBAAkB,KAClBC,eAAgB,KAChBC,iBAAiB,EACjBb,WAAY,KACZpM,SAAS,EACT2I,eAAe,EACf5I,MAAO,KACP6M,iBACA7E,OAZkB6E,GAAc,GAahCM,UArBe,OAsBfC,WArBgB,SAwBdvJ,GAAwB,CAAC/B,EAAOC,IAC3BjC,GAGLuN,GAA+B,CAACvL,EAAOkG,IAClCrI,EAAamC,EAAO,CACvBkG,WAKFsF,GAAyBxL,GACpBnC,EAAamC,EAAO,CACvB7B,SAAS,EACTiN,iBAAiB,EACjBlN,OAAO,EACP+M,SAAU,KACVC,iBAAkB,KAClBC,eAAgB,OAIlBM,GAA0B,CAACzL,EAAOC,IAC7BpC,EAAamC,EAAO,CACvB7B,SAAS,EACTiN,iBAAiB,EACjBlN,OAAO,EACP+M,SAAUhL,EAAOgL,SACjBC,iBAAkBjL,EAAO+E,SACzBmG,eAAgBlL,EAAOgF,SAIzByG,GAAuB,CAAC1L,EAAOC,IAC1BpC,EAAamC,EAAO,CACvB9B,MAAO+B,EAAOoC,IACdlE,SAAS,EACTiN,iBAAiB,IAInBO,GAA+B,CAAC3L,EAAOC,IAClCpC,EAAamC,EAAO,CACvBkF,QAAS,IACFlF,EAAMkF,QACT,CAACjF,EAAO3B,KAAM2B,EAAOoG,SAK3BuF,GAAyB5L,GACpBnC,EAAamC,EAAO,CACvB7B,SAAS,EACT2I,eAAe,EACf5I,OAAO,IAIT2N,GAA0B,CAAC7L,EAAOC,IAC7BpC,EAAamC,EAAO,CACvB7B,SAAS,EACT2I,eAAe,EACf5I,OAAO,EACPqM,WAAYtK,EAAOsK,aAIrBuB,GAAuB,CAAC9L,EAAOC,IAC1BpC,EAAamC,EAAO,CACvB7B,SAAS,EACT2I,eAAe,EACf5I,MAAO+B,EAAOoC,MCtGhB0J,GAAwB,CAC1BtM,KAAM,GACNuM,WAAY,GACZrN,MAAO,GACPsN,KAAM,GACNC,KAAM,GACNC,aAAc,GACdC,MAAO,IAGLC,GAAyB,CAC3B9N,WAAY,GACZC,UAAW,GACXI,MAAO,GACPD,MAAO,GACPK,WAAY,IAGVsN,GAAsB,GAEtBtO,GAAe,CACjBkD,eAAgB6K,GAChBQ,uBAAuB,EACvBC,gBAAiBH,GACjBI,wBAAwB,EACxBC,UAAW,GACXC,kBAAkB,EAClB9M,MAAO,GACP+M,cAAc,EACdC,sBAAuB,GACvBC,aAAcR,GACdS,qBAAqB,EACrB5O,SAAS,EACT6O,kBAAmB,MAGjBjL,GAAwB,CAAC/B,EAAOC,IAC3BpC,EAAamC,EAAO,CACvBkB,eAAgB6K,GAChBS,gBAAiBH,GACjBK,UAAW,GACX7M,MAAO,GACPiN,aAAcR,KAIhBW,GAAuB,CAACjN,EAAOC,IAC1BpC,EAAamC,EAAO,CACvBkB,eAAgB,IACTlB,EAAMkB,eACT,CAACjB,EAAO3B,KAAM2B,EAAOoG,SAK3B6G,GAA2B,CAAClN,EAAOC,IAC9BpC,EAAamC,EAAO,CACvB7B,SAAS,EACToO,uBAAuB,EACvBrL,eAAgB6K,KAIlBoB,GAA6B,CAACnN,EAAOoN,IAChCvP,EAAamC,EAAO,CACvBkB,eAAgBkM,EAChBjP,SAAS,EACToO,uBAAuB,IAIzBc,GAA0B,CAACrN,EAAOC,IAC7BpC,EAAamC,EAAO,CACvBE,aAAcD,EAAO/B,MACrBC,SAAS,EACToO,uBAAuB,IAIzBe,GAAwB,CAACtN,EAAOC,IAC3BpC,EAAamC,EAAO,CACvBwM,gBAAiB,IACVxM,EAAMwM,gBACT,CAACvM,EAAO3B,KAAM2B,EAAOoG,SAK3BkH,GAA4B,CAACvN,EAAOC,IAC/BpC,EAAamC,EAAO,CACvB7B,SAAS,EACTsO,wBAAwB,EACxBD,gBAAiBH,KAInBmB,GAA8B,CAACxN,EAAOoN,IACjCvP,EAAamC,EAAO,CACvBwM,gBAAiBY,EACjBjP,SAAS,EACTsO,wBAAwB,IAI1BgB,GAA2B,CAACzN,EAAOC,IAC9BpC,EAAamC,EAAO,CACvBE,aAAcD,EAAO/B,MACrBC,SAAS,EACTsO,wBAAwB,IAI1BiB,GAAkC,CAAC1N,EAAOC,IACrCpC,EAAamC,EAAO,CACvB7B,SAAS,IAIXwP,GAAoC,CAAC3N,EAAO4N,IACvC/P,EAAamC,EAAO,CACvB6M,sBAAuBe,EACvBzP,SAAS,IAIX0P,GAAiC,CAAC7N,EAAOC,IACpCpC,EAAamC,EAAO,CACvBE,aAAcD,EAAO/B,MACrBC,SAAS,IAIX2P,GAAsB,CAAC9N,EAAOC,IACzBpC,EAAamC,EAAO,CACvB7B,SAAS,EACTuO,UAAW,GACXC,kBAAkB,IAIpBoB,GAAwB,CAAC/N,EAAO0M,IAC3B7O,EAAamC,EAAO,CACvB0M,UAAWA,EACXvO,SAAS,EACTwO,kBAAkB,IAIpBqB,GAAqB,CAAChO,EAAOC,IACxBpC,EAAamC,EAAO,CACvBE,aAAcD,EAAO/B,MACrBC,SAAS,EACTwO,kBAAkB,IAIpBsB,GAAmBjO,GACdnC,EAAamC,EAAO,CACvB7B,SAAS,EACT0B,MAAO,GACP+M,cAAc,IAIhBsB,GAAoB,CAAClO,EAAOC,IACvBpC,EAAamC,EAAO,CACvBH,MAAOI,EAAOJ,MACd1B,SAAS,EACTD,MAAO,KACP0O,cAAc,IAIhBuB,GAAiB,CAACnO,EAAOC,IACpBpC,EAAamC,EAAO,CACvB9B,MAAO+B,EAAO/B,MACdC,SAAS,EACTyO,cAAc,IAIhBwB,GAAmBpO,GACdnC,EAAamC,EAAO,CACvB7B,SAAS,IAIXkQ,GAAoB,CAACrO,EAAOsO,IACvBzQ,EAAamC,EAAO,CACvBH,MAAOG,EAAMH,MAAM8H,IAAIvJ,GAAQA,EAAKyH,KAAOyI,EAAYzI,GAAKyI,EAAclQ,KAI5EmQ,GAAiB,CAACvO,EAAOC,IACpBpC,EAAamC,EAAO,CACvB9B,MAAO+B,EAAO/B,MACdC,SAAS,IAIXqQ,GAAyB,CAACxO,EAAOC,IAC5BpC,EAAamC,EAAO,CACvB7B,SAAS,EACT6O,kBAAmB,KACnBF,aAAcR,GACdS,qBAAqB,IAIvB0B,GAA2B,CAACzO,EAAOC,IAC9BpC,EAAamC,EAAO,CACvB7B,SAAS,EACT2O,aAAc7M,EAAO6M,aACrBC,qBAAqB,IAIvB2B,GAAwB,CAAC1O,EAAOC,IAC3BpC,EAAamC,EAAO,CACvB7B,SAAS,EACT6O,kBAAmB/M,EAAO/B,MAC1B6O,qBAAqB,IAIvB4B,GAAuB,CAAC3O,EAAOC,IAC1BpC,EAAamC,EAAO,CACvB7B,SAAS,EACT6O,kBAAmB,OAKrB4B,GAAyB,CAAC5O,EAAOC,IAC5BpC,EAAamC,EAAO,CACvB7B,SAAS,EACT2O,aAAc7M,EAAO6M,eAIvB+B,GAAsB,CAAC7O,EAAOC,IACzBpC,EAAamC,EAAO,CACvB7B,SAAS,EACT6O,kBAAmB/M,EAAO/B,QC9N5BF,GAAe,CACjB8Q,aAvB6B,CAC7BC,wBAAyB,EACzBC,mBAAoB,EACpB7M,SAAU,IAqBV8M,YAlB4B,CAC5BC,4BAA6B,EAC7BC,kBAAmB,EACnBC,eAAgB,IAgBhBC,WAb2B,CAC3BC,OAAQ,GACRC,eAAgB,IAChBC,WAAY,CACRC,MAAO,KAEXC,iBAAkB,KAClBC,gBAAiB,MAOjBC,qBAAqB,EACrBC,oBAAoB,EACpBC,mBAAmB,GAGjB/N,GAAwB,CAAC/B,EAAOC,IAC3BjC,GAGL+R,GAA0B/P,GACrBnC,EAAamC,EAAO,CACvB7B,SAAS,EACTyR,qBAAqB,IAIvBI,GAA2B,CAAChQ,EAAOmC,IAC9BtE,EAAamC,EAAO,CACvB8O,aAAc3M,EACdhE,SAAS,EACTyR,qBAAqB,IAIvBK,GAAwB,CAACjQ,EAAOC,IAC3BpC,EAAamC,EAAO,CACvBE,aAAcD,EAAO/B,MACrBC,SAAS,EACTyR,qBAAqB,IAIvBM,GAAyBlQ,GACpBnC,EAAamC,EAAO,CACvB7B,SAAS,EACT0R,oBAAoB,IAItBM,GAA0B,CAACnQ,EAAOoQ,IAC7BvS,EAAamC,EAAO,CACvBiP,YAAamB,EACbjS,SAAS,EACT0R,oBAAoB,IAItBQ,GAAuB,CAACrQ,EAAOC,IAC1BpC,EAAamC,EAAO,CACvBE,aAAcD,EAAO/B,MACrBC,SAAS,EACT0R,oBAAoB,IAItBS,GAAwBtQ,GACnBnC,EAAamC,EAAO,CACvB7B,SAAS,EACT2R,mBAAmB,IAIrBS,GAAyB,CAACvQ,EAAOqP,IAC5BxR,EAAamC,EAAO,CACvBqP,WAAYA,EACZlR,SAAS,EACT2R,mBAAmB,IAIrBU,GAAsB,CAACxQ,EAAOC,IACzBpC,EAAamC,EAAO,CACvBE,aAAcD,EAAO/B,MACrBC,SAAS,EACT2R,mBAAmB,ICpGrB9R,GAAe,CACjByS,cAAe,GACftS,SAAS,EACTD,MAAO,MAGLwS,GAA2B1Q,GACtBnC,EAAamC,EAAO,CACvB7B,SAAS,EACTsS,cAAe,KAIjBE,GAA4B,CAAC3Q,EAAOyQ,IAC/B5S,EAAamC,EAAO,CACvB7B,SAAS,EACTsS,cAAeA,IAIjBG,GAAyB,CAAC5Q,EAAOqC,IAC5BxE,EAAamC,EAAO,CACvB7B,SAAS,EACTD,MAAOmE,ICvBTrE,GAAe,CACjB6S,MAAM,EACNlK,QAAS,GACTmK,KAAM,KACN3S,SAAS,EACT4S,OAAQ,IAGNC,GAAwB,CAAChR,EAAOC,KAC3B,IACAjC,GACH6S,MAAM,EACNlK,QAAS1G,EAAO0G,UAIlBsK,GAA8B,CAACjR,EAAOC,IACjCpC,EAAamC,EAAO,CACvB8Q,KAAM7Q,EAAO6Q,OAIfI,GAA0BlR,GACrBnC,EAAamC,EAAO,CACvB7B,SAAS,EACT4S,OAAQ,KAIVI,GAA4BnR,GACvBnC,EAAamC,EAAO,CACvB7B,SAAS,IAIXiT,GAAwB,CAACpR,EAAOC,IAC3BpC,EAAamC,EAAO,CACvB7B,SAAS,EACT4S,OAAQ9Q,EAAO8Q,SAIjBM,GAA0BrR,IACrB,IAAIhC,K,wBC3CR,MAUMsT,GAAiB,SAACC,EAAWhK,GAAuC,IAA9BiK,EAA6B,uDAAvBC,GAAaC,MAClE,MAAO,CACH1Q,Kd2BwB,mBc1BxB2Q,QAASF,GAAaC,MACtBF,MAAOA,EACPD,UAAWA,EACXhK,QAASA,IAiBJqK,GAAmB,KACrB,CACH5Q,KdO0B,uBcHrB6Q,GAA4B,WAAgB,IAAD,uBAAXC,EAAW,yBAAXA,EAAW,gBACpD,MAAO,CACH9Q,KdEoC,+BcDpC8Q,WAWKC,GAA2B,WAAgB,IAAD,uBAAXD,EAAW,yBAAXA,EAAW,gBACnD,MAAO,CACH9Q,KdVmC,8BcWnC8Q,WC3CKL,GAAe,CACxBO,OAAQ,SACRN,MAAO,SAGEH,GAAY,CACrBU,QAASC,GAAqB,WAC9BC,aAAcD,GAAqB,gBACnCE,QAASF,GAAqB,WAC9BG,aAAcH,GAAqB,gBACnCI,KAAMJ,GAAqB,QAC3BK,UAAWL,GAAqB,aAChCM,QAASN,GAAqB,WAC9BO,aAAcP,GAAqB,gBACnCQ,MAAOR,GAAqB,SAC5BS,WAAYT,GAAqB,eAIxBU,GAAoB,CAACjB,EAAS3Q,EAAMwQ,EAAOjK,KAC7C,CACH1B,GAAIgN,KAAEC,SAAS,UACfnB,UACA3Q,OACAwQ,QACAuB,UAAW/R,EACXuG,YAID,SAAS2K,GAAqBa,GACjC,OAAKA,GAA2B,KAAdA,EAGZ,GAAN,OApCyB,eAoCzB,YAAkCA,GApCT,eAuCtB,SAASC,GAASC,GACrB,OAAOA,EAAMtB,UAAYF,GAAaO,OAGnC,SAASkB,GAAkBlS,EAAM8C,GACpCqP,GAAMC,SDvDqB,SAAC7B,EAAWhK,GAAwC,IAA/BiK,EAA8B,uDAAxBC,GAAaO,OACnE,MAAO,CACHhR,KdoCyB,oBcnCzB2Q,QAASF,GAAaO,OACtBR,MAAOA,EACPD,UAAWA,EACXhK,QAASA,GCiDE8L,CAAgBrS,EAAM8C,IAGlC,SAASwP,GAAiBtS,EAAM8C,EAAS0N,GAC5C2B,GAAMC,SAAS9B,GAAetQ,EAAM8C,EAAS0N,IAW1C,SAAS+B,GAAyBzP,GAA0B,IAAjB0P,EAAgB,wDAC9DN,GAAkBM,EAAWjC,GAAUkB,aAAelB,GAAUiB,QAAS1O,GAOtE,SAAS2P,GAAwB3P,EAAS0N,GAAwB,IAAjBgC,EAAgB,wDACpEF,GAAiBE,EAAWjC,GAAUc,aAAed,GAAUa,QAAStO,EAAS0N,GAG9E,SAASkC,GAAqB5P,EAAS0N,GAAwB,IAAjBgC,EAAgB,wDACjEF,GAAiBE,EAAWjC,GAAUgB,UAAYhB,GAAUe,KAAMxO,EAAS0N,GAGxE,SAASmC,GAAwB7P,EAAS0N,GAAwB,IAAjBgC,EAAgB,wDACpEF,GAAiBE,EAAWjC,GAAUkB,aAAelB,GAAUiB,QAAS1O,EAAS0N,GAG9E,SAASoC,GAAsB9P,EAAS0N,GAAwB,IAAjBgC,EAAgB,wDAClEF,GAAiBE,EAAWjC,GAAUoB,WAAapB,GAAUmB,MAAO5O,EAAS0N,GAG1E,SAASqC,KACZV,GAAMC,SD7DC,CACHpS,KdO0B,uBe4D3B,SAAS8S,KACZX,GAAMC,SDjFC,CACHpS,KdiBwB,qBekEzB,SAAS+S,KACZZ,GAAMC,SAASvB,MAA6B,YAGzC,SAASmC,KACZb,GAAMC,SAASrB,MAA4B,YC9G/C,MAAM/T,GAAe,CACnBiW,WAAY,GAcZC,aAAc,CAACzC,GAAaO,SAGxBD,GAA2B,CAAC/R,EAAO8R,IAC9BjU,EAAamC,EAAO,CACvBkU,aAAc,CAACzC,GAAaO,UAAWF,KAIzCqC,GAAe,CAACnU,EAAOC,KACzB,MAAMmU,EAAWxB,GAAkB3S,EAAO0R,QAAS1R,EAAOsR,UAAWtR,EAAOuR,MAAOvR,EAAOsH,SAC1F,OAAO1J,EAAamC,EAAO,CACvBiU,WAAY,IAAIjU,EAAMiU,WAAYG,MAWpCC,GAAiB,CAACrU,EAAOC,IACpBpC,EAAamC,EAAO,CACvBiU,WAAY,KAIdrC,GAAoB5R,IACtB,MAAMsU,EAAetU,EAAMiU,WACtBM,OAAOtB,GAASA,EAAMtB,UAAYF,GAAaO,QACpD,OAAOnU,EAAamC,EAAO,CACvBiU,WAAYK,KAIdzC,GAA4B,CAAC7R,EAAO8R,KACtC,MAAMwC,EAAetU,EAAMiU,WACtBM,OAAOtB,GAASA,EAAMtB,UAAYF,GAAaO,SAAWF,EAAO0C,SAASvB,EAAMzB,QACrF,OAAO3T,EAAamC,EAAO,CACvBiU,WAAYK,KAIdG,GAA8B,CAACzU,EAAO8R,KACxC,MAAMwC,EAAetU,EAAMiU,WACtBM,OAAOtB,GAASA,EAAMtB,UAAYF,GAAaO,QAAUF,EAAO0C,SAASvB,EAAMzB,QACpF,OAAO3T,EAAamC,EAAO,CACvBiU,WAAYK,KA0BLI,OArBA,WAAmC,IAAlC1U,EAAiC,uDAAzBhC,GAAciC,EAAW,uCAC7C,OAAQA,EAAOe,MACX,IhBlCyB,oBgBmCzB,IhBlCwB,mBgBmCpB,OAAOmT,GAAanU,EAAOC,GAC/B,IhBnCwB,mBgBoCpB,OAAOoU,GAAerU,GAC1B,IhBnC0B,qBgBoCtB,OAAO4R,GAAiB5R,GAC5B,IhBpCoC,+BgBqChC,OAAO6R,GAA0B7R,EAAOC,EAAO6R,QACnD,IhBrCsC,iCgBsClC,OAAO2C,GAA4BzU,EAAOC,EAAO6R,QACrD,IhBtCmC,8BgBuC/B,OAAOC,GAAyB/R,EAAOC,EAAO6R,QAElD,QACI,OAAO9R,ICtFnB,MAAMhC,GAAe,CACjB2W,WAAY,GACZC,mBAAmB,EAEnBC,iBAAkB,GAClBC,yBAAyB,EAEzBC,UAAW,GACXC,kBAAkB,GAGhBC,GAAwBjV,GACnBnC,EAAamC,EAAO,CACvB2U,WAAY,GACZC,mBAAmB,IAIrBM,GAAyB,CAAClV,EAAOC,IAC5BpC,EAAamC,EAAO,CACvB2U,WAAY1U,EAAOT,QACnBoV,mBAAmB,IAIrBO,GAAsB,CAACnV,EAAOC,IACzBpC,EAAamC,EAAO,CACvB4U,mBAAmB,IAIrBQ,GAAgCpV,GAC3BnC,EAAamC,EAAO,CACvB6U,iBAAkB,GAClBC,yBAAyB,IAI3BO,GAAiC,CAACrV,EAAOC,IACpCpC,EAAamC,EAAO,CACvB6U,iBAAkB5U,EAAO4U,iBACzBC,yBAAyB,IAI3BQ,GAA8B,CAACtV,EAAOC,IACjCpC,EAAamC,EAAO,CACvB8U,yBAAyB,IAI3BS,GAAyBvV,GACpBnC,EAAamC,EAAO,CACvB+U,UAAW,GACXC,kBAAkB,IAIpBQ,GAA0B,CAACxV,EAAOC,IAC7BpC,EAAamC,EAAO,CACvB+U,UAAW9U,EAAO8U,UAClBC,kBAAkB,IAIpBS,GAAuB,CAACzV,EAAOC,IAC1BpC,EAAamC,EAAO,CACvBgV,kBAAkB,ICpEpBjQ,GAAiB,CACnB2Q,IAAK,GACLC,OAAQ,KACRlW,KAAM,GACNmW,SAAU,KACV5U,KAAM,KACN6U,OAAQ,KACRC,WAAY,KACZC,UAAW,KACXC,QAAS,MAwBPhY,GAAe,CACjBkH,QAASH,GACTkR,QAvBmB,CACnBC,UAAW,YACXC,MAAO,QAsBPC,WAVsB,CACtBC,KAAM,EACNC,YAAa,GACbC,SAAU,EACVC,gBAZO,CACH,CAAEnQ,MAAO,GAAIhF,KAAM,MACnB,CAAEgF,MAAO,GAAIhF,KAAM,MACnB,CAAEgF,MAAO,GAAIhF,KAAM,MACnB,CAAEgF,MAAO,EAAGhF,KAAM,aAetBoV,uBAAwB,KACxBnV,aAAc,KACdoV,wBAAyB3R,GACzBxD,qBAAqB,EACrBpD,SAAS,EACTD,MAAO,MAGL6D,GAAwB,CAAC/B,EAAOC,IAC3BjC,GAGL2Y,GAA8B3W,GACzBnC,EAAamC,EAAO,CACvB7B,SAAS,EACToD,qBAAqB,EACrBrD,MAAO,KACPoD,aAAc,KACdmV,uBAAwB,OAI1BG,GAA+B,CAAC5W,EAAOC,IAClCpC,EAAamC,EAAO,CACvB7B,SAAS,EACToD,qBAAqB,EACrBrD,MAAO,KACPoD,aAAcrB,EAAOqB,aACrB8U,WAAY,IACLpW,EAAMoW,WACTG,SAAUtW,EAAOqB,aAAauV,QAElCH,wBAAyBzW,EAAOiF,QAChCuR,uBAAwBxW,EAAOwW,yBAIjCK,GAA4B,CAAC9W,EAAOC,IAC/BpC,EAAamC,EAAO,CACvB9B,MAAO+B,EAAO/B,MACdC,SAAS,EACToD,qBAAqB,IAIvBwV,GAA+B,CAAC/W,EAAOC,IAClCpC,EAAamC,EAAO,CACvBkF,QAAS,IACFlF,EAAMkF,QACT,CAACjF,EAAO3B,KAAM2B,EAAOoG,OAEzB+P,WAAY,IACLpW,EAAMoW,WACTC,KAAM,KAKZW,GAA8B,CAAChX,EAAOC,IACjCpC,EAAamC,EAAO,CACvBkF,QAAS,IACFH,IAEPqR,WAAY,IACLpW,EAAMoW,WACTC,KAAM,KAKZY,GAAgC,CAACjX,EAAOC,IACnCpC,EAAamC,EAAO,CACvBiW,QAAShW,EAAOgW,UAIlBiB,GAAmC,CAAClX,EAAOC,IACtCpC,EAAamC,EAAO,CACvBoW,WAAYnW,EAAOmW,aCnHrBrR,GAAiB,CACnB2Q,IAAK,GACLC,OAAQ,KACRlW,KAAM,GACNmW,SAAU,KACV5U,KAAM,KACN6U,OAAQ,KACRC,WAAY,KACZC,UAAW,KACXC,QAAS,MAwBPhY,GAAe,CACjBkH,QAASH,GACTkR,QAvBmB,CACnBC,UAAW,YACXC,MAAO,QAsBPC,WAVsB,CACtBC,KAAM,EACNC,YAAa,GACbC,SAAU,EACVC,gBAZO,CACH,CAAEnQ,MAAO,GAAIhF,KAAM,MACnB,CAAEgF,MAAO,GAAIhF,KAAM,MACnB,CAAEgF,MAAO,GAAIhF,KAAM,MACnB,CAAEgF,MAAO,EAAGhF,KAAM,aAetBoV,uBAAwB,KACxBnV,aAAc,KACdoV,wBAAyB3R,GACzBxD,qBAAqB,EACrBpD,SAAS,EACTD,MAAO,MAGL6D,GAAwB,CAAC/B,EAAOC,IAC3BjC,GAGLmZ,GAAgCnX,GAC3BnC,EAAamC,EAAO,CACvB7B,SAAS,EACToD,qBAAqB,EACrBrD,MAAO,KACPoD,aAAc,KACdmV,uBAAwB,OAI1BW,GAAiC,CAACpX,EAAOC,IACpCpC,EAAamC,EAAO,CACvB7B,SAAS,EACToD,qBAAqB,EACrBrD,MAAO,KACPoD,aAAcrB,EAAOqB,aACrB8U,WAAY,IACLpW,EAAMoW,WACTG,SAAUtW,EAAOqB,aAAauV,QAElCH,wBAAyBzW,EAAOiF,QAChCuR,uBAAwBxW,EAAOwW,yBAIjCY,GAA8B,CAACrX,EAAOC,IACjCpC,EAAamC,EAAO,CACvB9B,MAAO+B,EAAO/B,MACdC,SAAS,EACToD,qBAAqB,IAIvB+V,GAAiC,CAACtX,EAAOC,IACpCpC,EAAamC,EAAO,CACvBkF,QAAS,IACFlF,EAAMkF,QACT,CAACjF,EAAO3B,KAAM2B,EAAOoG,OAEzB+P,WAAY,IACLpW,EAAMoW,WACTC,KAAM,KAKZkB,GAAgC,CAACvX,EAAOC,IACnCpC,EAAamC,EAAO,CACvBkF,QAAS,IACFH,IAEPqR,WAAY,IACLpW,EAAMoW,WACTC,KAAM,KAKZmB,GAAkC,CAACxX,EAAOC,IACrCpC,EAAamC,EAAO,CACvBiW,QAAShW,EAAOgW,UAIlBwB,GAAqC,CAACzX,EAAOC,IACxCpC,EAAamC,EAAO,CACvBoW,WAAYnW,EAAOmW,aCnHrBrR,GAAiB,CACnB2Q,IAAK,GACLC,OAAQ,KACRlW,KAAM,GACNmW,SAAU,KACV5U,KAAM,KACN6U,OAAQ,KACRC,WAAY,KACZC,UAAW,KACXC,QAAS,MAwBPhY,GAAe,CACjBkH,QAASH,GACTkR,QAvBmB,CACnBC,UAAW,YACXC,MAAO,QAsBPC,WAVsB,CACtBC,KAAM,EACNC,YAAa,GACbC,SAAU,EACVC,gBAZO,CACH,CAAEnQ,MAAO,GAAIhF,KAAM,MACnB,CAAEgF,MAAO,GAAIhF,KAAM,MACnB,CAAEgF,MAAO,GAAIhF,KAAM,MACnB,CAAEgF,MAAO,EAAGhF,KAAM,aAetBoV,uBAAwB,KACxBnV,aAAc,KACdoV,wBAAyB3R,GACzBxD,qBAAqB,EACrBpD,SAAS,EACTD,MAAO,MAGL6D,GAAwB,CAAC/B,EAAOC,IAC3BjC,GAGL0Z,GAAmC1X,GAC9BnC,EAAamC,EAAO,CACvB7B,SAAS,EACToD,qBAAqB,EACrBrD,MAAO,KACPoD,aAAc,KACdmV,uBAAwB,OAI1BkB,GAAoC,CAAC3X,EAAOC,IACvCpC,EAAamC,EAAO,CACvB7B,SAAS,EACToD,qBAAqB,EACrBrD,MAAO,KACPoD,aAAcrB,EAAOqB,aACrB8U,WAAY,IACLpW,EAAMoW,WACTG,SAAUtW,EAAOqB,aAAauV,QAElCH,wBAAyBzW,EAAOiF,QAChCuR,uBAAwBxW,EAAOwW,yBAIjCmB,GAAiC,CAAC5X,EAAOC,IACpCpC,EAAamC,EAAO,CACvB9B,MAAO+B,EAAO/B,MACdC,SAAS,EACToD,qBAAqB,IAIvBsW,GAAoC,CAAC7X,EAAOC,IACvCpC,EAAamC,EAAO,CACvBkF,QAAS,IACFlF,EAAMkF,QACT,CAACjF,EAAO3B,KAAM2B,EAAOoG,OAEzB+P,WAAY,IACLpW,EAAMoW,WACTC,KAAM,KAKZyB,GAAmC,CAAC9X,EAAOC,IACtCpC,EAAamC,EAAO,CACvBkF,QAAS,IACFH,IAEPqR,WAAY,IACLpW,EAAMoW,WACTC,KAAM,KAKZ0B,GAAqC,CAAC/X,EAAOC,IACxCpC,EAAamC,EAAO,CACvBiW,QAAShW,EAAOgW,UAIlB+B,GAAwC,CAAChY,EAAOC,IAC3CpC,EAAamC,EAAO,CACvBoW,WAAYnW,EAAOmW,aCnHrBrR,GAAiB,CACnB2Q,IAAK,GACLC,OAAQ,KACRlW,KAAM,GACNmW,SAAU,KACV5U,KAAM,KACN6U,OAAQ,KACRC,WAAY,KACZC,UAAW,KACXC,QAAS,MAwBPhY,GAAe,CACjBkH,QAASH,GACTkR,QAvBmB,CACnBC,UAAW,YACXC,MAAO,QAsBPC,WAVsB,CACtBC,KAAM,EACNC,YAAa,GACbC,SAAU,EACVC,gBAZO,CACH,CAAEnQ,MAAO,GAAIhF,KAAM,MACnB,CAAEgF,MAAO,GAAIhF,KAAM,MACnB,CAAEgF,MAAO,GAAIhF,KAAM,MACnB,CAAEgF,MAAO,EAAGhF,KAAM,aAetBoV,uBAAwB,KACxBnV,aAAc,KACdoV,wBAAyB3R,GACzBxD,qBAAqB,EACrBpD,SAAS,EACTD,MAAO,MAGL6D,GAAwB,CAAC/B,EAAOC,IAC3BjC,GAGLia,GAA8BjY,GACzBnC,EAAamC,EAAO,CACvB7B,SAAS,EACToD,qBAAqB,EACrBrD,MAAO,KACPoD,aAAc,KACdmV,uBAAwB,OAI1ByB,GAA+B,CAAClY,EAAOC,IAClCpC,EAAamC,EAAO,CACvB7B,SAAS,EACToD,qBAAqB,EACrBrD,MAAO,KACPoD,aAAcrB,EAAOqB,aACrB8U,WAAY,IACLpW,EAAMoW,WACTG,SAAUtW,EAAOqB,aAAauV,QAElCH,wBAAyBzW,EAAOiF,QAChCuR,uBAAwBxW,EAAOwW,yBAIjC0B,GAA4B,CAACnY,EAAOC,IAC/BpC,EAAamC,EAAO,CACvB9B,MAAO+B,EAAO/B,MACdC,SAAS,EACToD,qBAAqB,IAIvB6W,GAA+B,CAACpY,EAAOC,IAClCpC,EAAamC,EAAO,CACvBkF,QAAS,IACFlF,EAAMkF,QACT,CAACjF,EAAO3B,KAAM2B,EAAOoG,OAEzB+P,WAAY,IACLpW,EAAMoW,WACTC,KAAM,KAKZgC,GAA8B,CAACrY,EAAOC,IACjCpC,EAAamC,EAAO,CACvBkF,QAAS,IACFH,IAEPqR,WAAY,IACLpW,EAAMoW,WACTC,KAAM,KAKZiC,GAAgC,CAACtY,EAAOC,IACnCpC,EAAamC,EAAO,CACvBiW,QAAShW,EAAOgW,UAIlBsC,GAAmC,CAACvY,EAAOC,IACtCpC,EAAamC,EAAO,CACvBoW,WAAYnW,EAAOmW,aCnHrBrR,GAAiB,CACnB2Q,IAAK,GACLC,OAAQ,KACRlW,KAAM,GACNmW,SAAU,KACV5U,KAAM,KACN6U,OAAQ,KACRC,WAAY,KACZC,UAAW,KACXC,QAAS,MAwBPhY,GAAe,CACjBkH,QAASH,GACTkR,QAvBmB,CACnBC,UAAW,YACXC,MAAO,QAsBPC,WAVsB,CACtBC,KAAM,EACNC,YAAa,GACbC,SAAU,EACVC,gBAZO,CACH,CAAEnQ,MAAO,GAAIhF,KAAM,MACnB,CAAEgF,MAAO,GAAIhF,KAAM,MACnB,CAAEgF,MAAO,GAAIhF,KAAM,MACnB,CAAEgF,MAAO,EAAGhF,KAAM,aAetBoV,uBAAwB,KACxBnV,aAAc,KACdoV,wBAAyB3R,GACzBxD,qBAAqB,EACrBpD,SAAS,EACTD,MAAO,MAGL6D,GAAwB,CAAC/B,EAAOC,IAC3BjC,GAGLwa,GAAkCxY,GAC7BnC,EAAamC,EAAO,CACvB7B,SAAS,EACToD,qBAAqB,EACrBrD,MAAO,KACPoD,aAAc,KACdmV,uBAAwB,OAI1BgC,GAAmC,CAACzY,EAAOC,IACtCpC,EAAamC,EAAO,CACvB7B,SAAS,EACToD,qBAAqB,EACrBrD,MAAO,KACPoD,aAAcrB,EAAOqB,aACrB8U,WAAY,IACLpW,EAAMoW,WACTG,SAAUtW,EAAOqB,aAAauV,QAElCH,wBAAyBzW,EAAOiF,QAChCuR,uBAAwBxW,EAAOwW,yBAIjCiC,GAAgC,CAAC1Y,EAAOC,IACnCpC,EAAamC,EAAO,CACvB9B,MAAO+B,EAAO/B,MACdC,SAAS,EACToD,qBAAqB,IAIvBoX,GAAmC,CAAC3Y,EAAOC,IACtCpC,EAAamC,EAAO,CACvBkF,QAAS,IACFlF,EAAMkF,QACT,CAACjF,EAAO3B,KAAM2B,EAAOoG,OAEzB+P,WAAY,IACLpW,EAAMoW,WACTC,KAAM,KAKZuC,GAAkC,CAAC5Y,EAAOC,IACrCpC,EAAamC,EAAO,CACvBkF,QAAS,IACFH,IAEPqR,WAAY,IACLpW,EAAMoW,WACTC,KAAM,KAKZwC,GAAoC,CAAC7Y,EAAOC,IACvCpC,EAAamC,EAAO,CACvBiW,QAAShW,EAAOgW,UAIlB6C,GAAuC,CAAC9Y,EAAOC,IAC1CpC,EAAamC,EAAO,CACvBoW,WAAYnW,EAAOmW,aCvGZ2C,OARQC,0BAAgB,CACnCC,eL4I0B,WAAmC,IAAlCjZ,EAAiC,uDAAzBhC,GAAciC,EAAW,uCAC5D,OAAQA,EAAOe,MAEX,IlBkEoC,+BkBjEhC,OAAO2V,GAA2B3W,GACtC,IlBiEsC,iCkBhElC,OAAO4W,GAA6B5W,EAAOC,GAC/C,IlBgEmC,8BkB/D/B,OAAO6W,GAA0B9W,EAAOC,GAE5C,IlB8DsC,iCkB7DlC,OAAO8W,GAA6B/W,EAAOC,GAC/C,IlB6DqC,gCkB5DjC,OAAO+W,GAA4BhX,GAEvC,IlB2DuC,kCkB1DnC,OAAOiX,GAA8BjX,EAAOC,GAEhD,IlByD0C,qCkBxDtC,OAAOiX,GAAiClX,EAAOC,GAWnD,KAAKgB,EACD,OAAOc,KACX,QACI,OAAO/B,IK5KfkZ,iBJiH4B,WAAmC,IAAlClZ,EAAiC,uDAAzBhC,GAAciC,EAAW,uCAC9D,OAAQA,EAAOe,MAEX,InBuGsC,iCmBtGlC,OAAOmW,GAA6BnX,GACxC,InBsGwC,mCmBrGpC,OAAOoX,GAA+BpX,EAAOC,GACjD,InBqGqC,gCmBpGjC,OAAOoX,GAA4BrX,EAAOC,GAE9C,InBmGwC,mCmBlGpC,OAAOqX,GAA+BtX,EAAOC,GACjD,InBkGuC,kCmBjGnC,OAAOsX,GAA8BvX,GAEzC,InBgGyC,oCmB/FrC,OAAOwX,GAAgCxX,EAAOC,GAElD,InB8F4C,uCmB7FxC,OAAOwX,GAAmCzX,EAAOC,GAErD,KAAKgB,EACD,OAAOc,KACX,QACI,OAAO/B,IIxIfmZ,oBHgH+B,WAAmC,IAAlCnZ,EAAiC,uDAAzBhC,GAAciC,EAAW,uCACjE,OAAQA,EAAOe,MAEX,IpBgHJ,mCoB/GQ,OAAO0W,GAAgC1X,GAC3C,IpBgHJ,qCoB/GQ,OAAO2X,GAAkC3X,EAAOC,GACpD,IpBgHJ,kCoB/GQ,OAAO2X,GAA+B5X,EAAOC,GAEjD,IpB+GJ,qCoB9GQ,OAAO4X,GAAkC7X,EAAOC,GACpD,IpB+GJ,oCoB9GQ,OAAO6X,GAAiC9X,GAE5C,IpB6G2C,sCoB5GvC,OAAO+X,GAAmC/X,EAAOC,GAErD,IpB2G8C,yCoB1G1C,OAAO+X,GAAsChY,EAAOC,GAExD,KAAKgB,EACD,OAAOc,KACX,QACI,OAAO/B,IGvIfoZ,eF+G0B,WAAmC,IAAlCpZ,EAAiC,uDAAzBhC,GAAciC,EAAW,uCAC5D,OAAQA,EAAOe,MAEX,IrB4HmC,8BqB3H/B,OAAOiX,GAA2BjY,GACtC,IrB2HqC,gCqB1HjC,OAAOkY,GAA6BlY,EAAOC,GAC/C,IrB0HkC,6BqBzH9B,OAAOkY,GAA0BnY,EAAOC,GAE5C,IrBwHqC,gCqBvHjC,OAAOmY,GAA6BpY,EAAOC,GAC/C,IrBuHoC,+BqBtHhC,OAAOoY,GAA4BrY,GAEvC,IrBqHsC,iCqBpHlC,OAAOsY,GAA8BtY,EAAOC,GAEhD,IrBmHyC,oCqBlHrC,OAAOsY,GAAiCvY,EAAOC,GAEnD,KAAKgB,EACD,OAAOc,KACX,QACI,OAAO/B,IEtIfqZ,mBD8G8B,WAAmC,IAAlCrZ,EAAiC,uDAAzBhC,GAAciC,EAAW,uCAChE,OAAQA,EAAOe,MAEX,ItBqIJ,mCsBpIQ,OAAOwX,GAA+BxY,GAC1C,ItBqIJ,qCsBpIQ,OAAOyY,GAAiCzY,EAAOC,GACnD,ItBqIJ,kCsBpIQ,OAAOyY,GAA8B1Y,EAAOC,GAEhD,ItBoIJ,qCsBnIQ,OAAO0Y,GAAiC3Y,EAAOC,GACnD,ItBoIJ,oCsBnIQ,OAAO2Y,GAAgC5Y,GAE3C,ItBkI+C,sCsBjI3C,OAAO6Y,GAAkC7Y,EAAOC,GAEpD,ItBgIkD,yCsB/H9C,OAAO6Y,GAAqC9Y,EAAOC,GAEvD,KAAKgB,EACD,OAAOc,KACX,QACI,OAAO/B,M,6BE5IZ,SAASsZ,GAAsBpb,GAAQ,IAAD,EAGzC,IAAIgC,EAFaiT,GAAMoG,WAAWpa,WAGjBqa,GAAcC,GAAK,iBAAmB,iBACvD,IAAKvb,EACD,OAAOgC,EACJ,eAAIhC,EAAMwb,gBAAV,aAAI,EAAgB7U,MAYpB,OAAI3G,EAAMyb,QACNzb,EAAMyb,QAAQ3Y,MAAQd,EAEtBhC,EAAM4F,SAAW5D,EAfK,CAC7B,MAAM2E,EAAO3G,EAAMwb,SAAS7U,KAC5B,GAAIA,EAAKkM,OACL,OAAOlM,EAAKkM,OAAOpJ,IAAKzJ,GAAUA,EAAM0b,MAAMC,KAAK,KAEvD,GAAIhV,EAAK+U,KACL,OAAO/U,EAAK+U,KAGhB,GAAI/U,EAAKiV,OACL,OAAOjV,EAAKiV,OAQpB,OAAO5Z,EAGJ,SAAS6Z,KAKb,IAJChJ,EAIF,uDAJW,GACTiJ,EAGF,uCAFEC,EAEF,uDAFY,GACVC,EACF,uCACE,MAAMpW,EACF,oCACKmW,GAAW,2BAAIA,GAChB,wBAAIlH,UAAU,QACThC,EAAOpJ,IAAI,CAACwS,EAAGC,IACZ,wBAAI9b,IAAK4b,EAAUA,EAAQC,EAAGC,GAAKA,GAAIJ,EAAYG,OAMnE,OAAOrW,EAwDJ,SAASuW,GAAsBnc,EAAOoc,GACzC,MAAMC,EACF,kBAACC,GAAA,EAAD,CAAOC,QAAQ,oCAAf,kJAKJ,OACI,yBAAK1H,UAAU,aACX,6BA9DL,SAAuC7U,EAAOoc,GACjD,MAAMpa,EAAgC,kBAAVhC,GAAgC,OAAVA,EAAiBA,EAAM4F,QAAU,KACnF,MAAqB,sBAAjB5D,EAGI,kBAACsa,GAAA,EAAD,CAAOC,QAAQ,kCAAf,iCAIoB,oBAAjBva,EAGH,kBAACsa,GAAA,EAAD,CAAOC,QAAQ,sCAAf,iHAKoB,gBAAjBva,EAGH,kBAACsa,GAAA,EAAD,CAAOC,QAAQ,yCAAf,gEAIoB,8BAAjBva,EAEH,kBAACsa,GAAA,EAAD,CAAOC,QAAQ,iDAAf,iDAIoB,6BAAjBva,EAEH,kBAACsa,GAAA,EAAD,CAAOC,QAAQ,kDAAf,6CAkBDH,EAaMI,CAA8Bxc,EAAOoc,IAE1C,6BACKC,ICxHV,MA+IMI,GAAwB,sCCzI9B,MAAMC,GACuC,SAAhDvd,iHAAYwd,gCAEHC,GACiC,SAA9Czd,iHAAY0d,8BCeNC,GAAsB,CAAEC,MAAO,WAAYC,SAAU,OAE9CC,GAAoBC,KAAKC,aAHX,KAG4C,IAChEL,GACHM,sBAAuB,IAGdC,GAA2BH,KAAKC,aARlB,KAQmD,IACvEL,GACHM,sBAAuB,IAGdE,GAAkCJ,KAAKC,aAbzB,KAevB,IAAKL,GAAqBM,sBAAuB,IAGxC9B,GAAgB,CACzBiC,GAAI,KACJhC,GAAI,MAGKiC,GAGL,CAAErV,MAAO,EAAG2E,MAAO,OAIpB,SAAS2Q,GAAUC,GACtB,OAAQC,MAAMC,WAAWF,KAAOG,SAASH,GAGtC,SAASI,GAAsBC,GAClC,OAAOA,EAAOC,QAAQ,IAAK,KAAKA,QAAQ,YAAa,IA2BlD,SAASC,GAAgBxH,GAC5B,IAAIA,IAAcA,EAAWkC,OAI7B,OADA1D,GAAMC,SCvFC,CACHpS,K5BiB+B,4B2BsE5Bob,KACFC,IF5EkB,gBE6ElBC,KAAM5C,IACHvG,GAAMC,SCrFP,CACHpS,K5BYiC,4B4BXjCxB,QDmF0Cka,EAAS7U,OACxC6U,EAAS7U,OAEnB0X,MAAOre,IACJ,MAAMgC,EAAeoZ,GAAsBpb,GAE3C,MADAiV,GAAMC,SCpFkBlV,KACzB,CACH8C,K5BM8B,yB4BL9B9C,UDiFmBiX,CAAoBjV,IAC7Bsc,MAAMtc,KAwCjB,SAASuc,GAAalG,EAAUD,GACnC,OAAoB,IAAhBA,EACO,EAGJoG,KAAKC,KAAKpG,EAAWD,GE3IhC,MAAMvR,GAAiB,CACnB2Q,IAAK,GACLkH,QAAS,KAETnd,KAAM,GACNmW,SAAU,KACV5U,KAAM,KACN6b,WAAY,GACZhH,OAAQ,KACRiH,OAAQ,KAER/G,UAAW,KACXC,QAAS,MAoBPhY,GAAe,CACjBkH,QAASH,GACTkR,QAnBmB,CACnBC,UAAW,OACXC,MAAO,QAkBPC,WAfsB,CACtBC,KAAM,EACNC,YAAa,GACbC,SAAU,EACVC,gBAAiB,CACb,CAAEnQ,MAAO,GAAIhF,KAAM,MACnB,CAAEgF,MAAO,GAAIhF,KAAM,MACnB,CAAEgF,MAAO,GAAIhF,KAAM,MACnB,CAAEgF,MAAO,EAAGhF,KAAM,aAStBC,aAAc,KACdmV,uBAAwB,KACxBC,wBAAyB3R,GACzBxD,qBAAqB,EACrBpD,SAAS,EACTD,MAAO,KACP6e,YAAa,GACbC,sBAAsB,GAGpBC,GAAkB,CAACC,EAAK/a,KAC1B,MAAMgb,EAAahb,EAASwF,IAAKC,GAAQA,EAAI/B,IAC7C,OAAOqX,EAAI3I,OAAQ1O,GAAOsX,EAAW3I,SAAS3O,KAG5C9D,GAAwB,CAAC/B,EAAOC,IAC3BjC,GAGLof,GAAiCpd,GAC5BnC,EAAamC,EAAO,CACvB7B,SAAS,EACToD,qBAAqB,EACrBrD,MAAO,KACPoD,aAAc,OAIhB+b,GAAkC,CAACrd,EAAOC,KAC5C,MAAMqd,EAAgBzK,KAAE0K,QACpBvd,EAAM0W,wBACNzW,EAAOiF,SAGLsY,EAAcvd,EAAOqB,aAAauV,OAClC4G,EAAczd,EAAMoW,WAAWC,KAE/BqH,EACFD,GAAehB,GAAae,EAFZxd,EAAMoW,WAAWE,aAIrC,OAAOzY,EAAamC,EAAO,CACvB7B,SAAS,EACToD,qBAAqB,EACrBrD,MAAO,KACPoD,aAAcrB,EAAOqB,aACrBmV,uBAAwBxW,EAAOwW,uBAC/BC,wBAAyBzW,EAAOiF,QAChCkR,WAAY,IACLpW,EAAMoW,WACTC,KAAMiH,GAAiBI,EAAqBD,EAAc,EAC1DlH,SAAUiH,GAEdT,YAAaE,GACTjd,EAAM+c,YACN9c,EAAOwW,2BAKbkH,GAA+B,CAAC3d,EAAOC,IAClCpC,EAAamC,EAAO,CACvB9B,MAAO+B,EAAO/B,MACdC,SAAS,EACToD,qBAAqB,EACrBwb,YAAa,KAIfa,GAAkC,CAAC5d,EAAOC,IACrCpC,EAAamC,EAAO,CACvBkF,QAAS,IACFlF,EAAMkF,QACT,CAACjF,EAAO3B,KAAM2B,EAAOoG,SAK3BwX,GAAiC,CAAC7d,EAAOC,IACpCpC,EAAamC,EAAO,CACvBkF,QAAS,IACFH,MAKT+Y,GAAmC,CAAC9d,EAAOC,IACtCpC,EAAamC,EAAO,CACvBiW,QAAShW,EAAOgW,UAIlB8H,GAAsC,CAAC/d,EAAOC,IACzCpC,EAAamC,EAAO,CACvBoW,WAAYnW,EAAOmW,aAIrB4H,GAAoC,CAAChe,EAAOC,IACvCpC,EAAamC,EAAO,CACvB+c,YAAa9c,EAAOge,WAItBC,GAA6Ble,GACxBnC,EAAamC,EAAO,CACvBgd,sBAAsB,IAIxBmB,GAA8B,CAACne,EAAOC,KACxC,MAAMme,EAAcne,EAAOid,IAE3B,IAAImB,EAAkB,KAClBb,EAAc,EACdxd,EAAMsB,eACN+c,EAAkBre,EAAMsB,aAAaiT,OAChC3M,IAASwW,EAAY5J,SAAS5M,EAAI/B,KAEvC2X,EAAca,EAAgBxH,QAGlC,MAAM4G,EAAczd,EAAMoW,WAAWC,KAE/BqH,EACFD,GAAehB,GAAae,EAFZxd,EAAMoW,WAAWE,aAIrC,OAAOzY,EAAamC,EAAO,CACvBgd,sBAAsB,EACtB1b,aAAc+c,EACdtB,YAAa/c,EAAM+c,YAAYxI,OAC1B1O,IAAQuY,EAAY5J,SAAS3O,IAElCuQ,WAAY,IACLpW,EAAMoW,WACTC,KAAMqH,EAAqBD,EAAc,EACzClH,SAAUiH,MAKhBc,GAA2B,CAACte,EAAOC,IAC9BpC,EAAamC,EAAO,CACvBgd,sBAAsB,ICnLxBjY,GAAiB,CACnB2Q,IAAK,GACLjW,KAAM,GACNkW,OAAQ,KACRC,SAAU,KACV5U,KAAM,KACN6b,WAAY,GACZ/G,WAAY,MAuBV9X,GAAe,CACjBkH,QAASH,GACTkR,QApBmB,CACnBC,UAAW,OACXC,MAAO,QAmBPC,WAhBsB,CACtBC,KAAM,EACNC,YAAa,GACbC,SAAU,EACVC,gBAAiB,CACb,CAAEnQ,MAAO,EAAGhF,KAAM,KAClB,CAAEgF,MAAO,GAAIhF,KAAM,MACnB,CAAEgF,MAAO,GAAIhF,KAAM,MACnB,CAAEgF,MAAO,GAAIhF,KAAM,MACnB,CAAEgF,MAAO,EAAGhF,KAAM,aAStBoV,uBAAwB,KACxBnV,aAAc,KACdoV,wBAAyB3R,GACzBxD,qBAAqB,EACrBpD,SAAS,EACTD,MAAO,KACPqgB,wBAAwB,EACxBxB,YAAa,GACbyB,yBAAyB,EACzBC,8BAA8B,GAG5BxB,GAAkB,CAACC,EAAK/a,KAC1B,MAAMgb,EAAahb,EAASwF,IAAKC,GAAQA,EAAI/B,IAC7C,OAAOqX,EAAI3I,OAAQ1O,GAAOsX,EAAW3I,SAAS3O,KAG5C9D,GAAwB,CAAC/B,EAAOC,IAC3BjC,GAGL0gB,GAAoC1e,GAC/BnC,EAAamC,EAAO,CACvB7B,SAAS,EACToD,qBAAqB,EACrBrD,MAAO,KACPoD,aAAc,OAIhBqd,GAAqC,CAAC3e,EAAOC,KAC/C,MAAMqd,EAAgBzK,KAAE0K,QACpBvd,EAAM0W,wBACNzW,EAAOiF,SAGLsY,EAAcvd,EAAOqB,aAAauV,OAClC4G,EAAczd,EAAMoW,WAAWC,KAE/BqH,EACFD,GAAehB,GAAae,EAFZxd,EAAMoW,WAAWE,aAIrC,OAAOzY,EAAamC,EAAO,CACvB7B,SAAS,EACToD,qBAAqB,EACrBrD,MAAO,KACPoD,aAAcrB,EAAOqB,aACrBmV,uBAAwBxW,EAAOwW,uBAC/BC,wBAAyBzW,EAAOiF,QAChCkR,WAAY,IACLpW,EAAMoW,WACTC,KAAMiH,GAAiBI,EAAqBD,EAAc,EAC1DlH,SAAUiH,GAEdT,YAAaE,GACTjd,EAAM+c,YACN9c,EAAOwW,2BAKbmI,GAAkC,CAAC5e,EAAOC,IACrCpC,EAAamC,EAAO,CACvB9B,MAAO+B,EAAO/B,MACdC,SAAS,EACToD,qBAAqB,EACrBwb,YAAa,KAIf8B,GAAqC,CAAC7e,EAAOC,IACxCpC,EAAamC,EAAO,CACvBkF,QAAS,IACFlF,EAAMkF,QACT,CAACjF,EAAO3B,KAAM2B,EAAOoG,SAK3ByY,GAAsC,CAAC9e,EAAOC,IACzCpC,EAAamC,EAAO,CACvBiW,QAAShW,EAAOgW,UAIlB8I,GAAyC,CAAC/e,EAAOC,IAC5CpC,EAAamC,EAAO,CACvBoW,WAAYnW,EAAOmW,aAIrB4I,GAAoC,CAAChf,EAAOC,IACvCpC,EAAamC,EAAO,CACvBkF,QAAS,IACFH,MAKTka,GAA+B,CAACjf,EAAOC,IAClCpC,EAAamC,EAAO,CACvB+c,YAAa9c,EAAOge,WAItBiB,GAA+B,CAAC5d,EAAc4b,EAAKjU,EAAO5C,KAC5D,IAAK,MAAMuB,KAAOtG,EACV4b,EAAI1I,SAAS5M,EAAI/B,MACjB+B,EAAIqB,GAAS5C,GAIrB,OAAO/E,GAGL6c,GAA8B,CAACne,EAAOC,KACxC,MAAMme,EAAcne,EAAOid,IAC3B,GAAIld,EAAMsB,aAAc,CACpB,IAAI+c,EAAkB,IAAIre,EAAMsB,cAEhC,OAAOzD,EAAamC,EAAO,CACvBsB,aAAc4d,GACVb,EACAD,EACA,YACA1C,MAIR,OAAO1b,GAITmf,GAAsCnf,GACjCnC,EAAamC,EAAO,CACvBue,wBAAwB,IAI1Ba,GAAuC,CAACpf,EAAOC,KACjD,MAAMme,EAAcne,EAAOid,IAC3B,IAAImB,EAAkB,IAAIre,EAAMsB,cAEhC,OAAOzD,EAAamC,EAAO,CACvBue,wBAAwB,EACxBjd,aAAc4d,GACVb,EACAD,EACA,YACA1C,IAEJqB,YAAa/c,EAAM+c,YAAYxI,OAC1B1O,IAAQuY,EAAY5J,SAAS3O,OAKpCwZ,GAAoC,CAACrf,EAAOC,IACvCpC,EAAamC,EAAO,CACvBue,wBAAwB,IAI1Be,GAAyCtf,GACpCnC,EAAamC,EAAO,CACvBye,8BAA8B,IAIhCc,GAA0C,CAACvf,EAAOC,KACpD,MAAMme,EAAcne,EAAOid,IAE3B,OAAOrf,EAAamC,EAAO,CACvBye,8BAA8B,EAC9B1B,YAAa/c,EAAM+c,YAAYxI,OAC1B1O,IAAQuY,EAAY5J,SAAS3O,OAKpC2Z,GAAuC,CAACxf,EAAOC,IAC1CpC,EAAamC,EAAO,CACvBye,8BAA8B,IAIhCgB,GAAuCzf,GAClCnC,EAAamC,EAAO,CACvBwe,yBAAyB,IAI3BkB,GAAwC,CAAC1f,EAAOC,KAClD,MAAMme,EAAcne,EAAOid,IAE3B,IAAImB,EAAkB,KAClBb,EAAc,EACdxd,EAAMsB,eACN+c,EAAkBre,EAAMsB,aAAaiT,OAChC3M,IAASwW,EAAY5J,SAAS5M,EAAI/B,KAEvC2X,EAAca,EAAgBxH,QAGlC,MAAM4G,EAAczd,EAAMoW,WAAWC,KAE/BqH,EACFD,GAAehB,GAAae,EAFZxd,EAAMoW,WAAWE,aAIrC,OAAOzY,EAAamC,EAAO,CACvBwe,yBAAyB,EACzBld,aAAc+c,EACdtB,YAAa/c,EAAM+c,YAAYxI,OAC1B1O,IAAQuY,EAAY5J,SAAS3O,IAElCuQ,WAAY,IACLpW,EAAMoW,WACTC,KAAMqH,EAAqBD,EAAc,EACzClH,SAAUiH,MAKhBmC,GAAqC,CAAC3f,EAAOC,IACxCpC,EAAamC,EAAO,CACvBwe,yBAAyB,ICpQ3BzZ,GAAiB,CACnB2Q,IAAK,GACLjW,KAAM,GACNkW,OAAQ,KACRC,SAAU,KACV5U,KAAM,KACN6b,WAAY,GACZ/G,WAAY,MAuBV9X,GAAe,CACjBkH,QAASH,GACTkR,QApBmB,CACnBC,UAAW,OACXC,MAAO,QAmBPC,WAhBsB,CACtBC,KAAM,EACNC,YAAa,GACbC,SAAU,EACVC,gBAAiB,CACb,CAAEnQ,MAAO,EAAGhF,KAAM,KAClB,CAAEgF,MAAO,GAAIhF,KAAM,MACnB,CAAEgF,MAAO,GAAIhF,KAAM,MACnB,CAAEgF,MAAO,GAAIhF,KAAM,MACnB,CAAEgF,MAAO,EAAGhF,KAAM,aAStBoV,uBAAwB,KACxBnV,aAAc,KACdoV,wBAAyB3R,GACzBxD,qBAAqB,EACrBpD,SAAS,EACTD,MAAO,KACP6e,YAAa,GACb6C,gCAAgC,GAG9B3C,GAAkB,CAACC,EAAK/a,KAC1B,MAAMgb,EAAahb,EAASwF,IAAKC,GAAQA,EAAI/B,IAC7C,OAAOqX,EAAI3I,OAAQ1O,GAAOsX,EAAW3I,SAAS3O,KAG5C9D,GAAwB,IACnB/D,GAGL6hB,GAAsC7f,GACjCnC,EAAamC,EAAO,CACvB7B,SAAS,EACToD,qBAAqB,EACrBrD,MAAO,KACPoD,aAAc,OAIhBwe,GAAuC,CAAC9f,EAAOC,KACjD,MAAMqd,EAAgBzK,KAAE0K,QACpBvd,EAAM0W,wBACNzW,EAAOiF,SAGLsY,EAAcvd,EAAOqB,aAAauV,OAClC4G,EAAczd,EAAMoW,WAAWC,KAE/BqH,EACFD,GAAehB,GAAae,EAFZxd,EAAMoW,WAAWE,aAIrC,OAAOzY,EAAamC,EAAO,CACvB7B,SAAS,EACToD,qBAAqB,EACrBrD,MAAO,KACPoD,aAAcrB,EAAOqB,aACrBmV,uBAAwBxW,EAAOwW,uBAC/BC,wBAAyBzW,EAAOiF,QAChCkR,WAAY,IACLpW,EAAMoW,WACTC,KAAMiH,GAAiBI,EAAqBD,EAAc,EAC1DlH,SAAUiH,GAEdT,YAAaE,GACTjd,EAAM+c,YACN9c,EAAOwW,2BAKbsJ,GAAoC,CAAC/f,EAAOC,IACvCpC,EAAamC,EAAO,CACvB9B,MAAO+B,EAAO/B,MACdC,SAAS,EACToD,qBAAqB,EACrBwb,YAAa,KAIfiD,GAAuC,CAAChgB,EAAOC,IAC1CpC,EAAamC,EAAO,CACvBkF,QAAS,IACFlF,EAAMkF,QACT,CAACjF,EAAO3B,KAAM2B,EAAOoG,SAK3B4Z,GAAwC,CAACjgB,EAAOC,IAC3CpC,EAAamC,EAAO,CACvBiW,QAAShW,EAAOgW,UAIlBiK,GAA2C,CAAClgB,EAAOC,IAC9CpC,EAAamC,EAAO,CACvBoW,WAAYnW,EAAOmW,aAIrB+J,GAAsC,CAACngB,EAAOC,IACzCpC,EAAamC,EAAO,CACvBkF,QAAS,IACFH,MAKTqb,GAA2CpgB,GACtCnC,EAAamC,EAAO,CACvB4f,gCAAgC,IAIlCS,GAA4C,CAACrgB,EAAOC,KACtD,MAAMme,EAAcne,EAAOid,IAE3B,OAAOrf,EAAamC,EAAO,CACvB4f,gCAAgC,EAChC7C,YAAa/c,EAAM+c,YAAYxI,OAC1B1O,IAAQuY,EAAY5J,SAAS3O,OAKpCya,GAAyC,CAACtgB,EAAOC,IAC5CpC,EAAamC,EAAO,CACvB4f,gCAAgC,IAIlCW,GAAiC,CAACvgB,EAAOC,IACpCpC,EAAamC,EAAO,CACvB+c,YAAa9c,EAAOge,WChKtBlZ,GAAiB,CACnB2Q,IAAK,GACLkH,QAAS,KACTnd,KAAM,GACNkW,OAAQ,KACRC,SAAU,KACV5U,KAAM,KACN6U,OAAQ,KACRiH,OAAQ,KACR0D,OAAQ,KACR1K,WAAY,KACZC,UAAW,KACXC,QAAS,MAwBPhY,GAAe,CACjBkH,QAASH,GACTkR,QAvBmB,CACnBC,UAAW,aACXC,MAAO,QAsBPC,WAVsB,CACtBC,KAAM,EACNC,YAAa,GACbC,SAAU,EACVC,gBAZO,CACH,CAAEnQ,MAAO,GAAIhF,KAAM,MACnB,CAAEgF,MAAO,GAAIhF,KAAM,MACnB,CAAEgF,MAAO,GAAIhF,KAAM,MACnB,CAAEgF,MAAO,EAAGhF,KAAM,aAgBtBC,aAAc,GACdoV,wBAAyB3R,GACzBxD,qBAAqB,GAGnBQ,GAAwB,CAAC/B,EAAOC,IAC3BjC,GAGLyiB,GAAgCzgB,GAC3BnC,EAAamC,EAAO,CACvBuB,qBAAqB,EACrBD,aAAc,KAIhBof,GAAiC,CAAC1gB,EAAOC,EAAQiF,IAC5CrH,EAAamC,EAAO,CACvBuB,qBAAqB,EACrBD,aAAcrB,EAAOqB,aACrB8U,WAAY,IACLpW,EAAMoW,WACTG,SACItW,EAAOsW,UAEfG,wBAAyBzW,EAAOiF,UAIlCyb,GAA8B,CAAC3gB,EAAOC,IACjCpC,EAAamC,EAAO,CACvB7B,SAAS,EACTmD,aAAc,GACdC,qBAAqB,IAIvBqf,GAAiC,CAAC5gB,EAAOC,IACpCpC,EAAamC,EAAO,CACvBkF,QAAS,IACFlF,EAAMkF,QACT,CAACjF,EAAO3B,KAAM2B,EAAOoG,OAEzB+P,WAAY,IACLpW,EAAMoW,WACTC,KAAM,KAKZwK,GAAgC,CAAC7gB,EAAOC,IACnCpC,EAAamC,EAAO,CACvBkF,QAAS,IACFH,IAEPqR,WAAY,IACLpW,EAAMoW,WACTC,KAAM,KAKZyK,GAAkC,CAAC9gB,EAAOC,IACrCpC,EAAamC,EAAO,CACvBiW,QAAShW,EAAOgW,UAIlB8K,GAAqC,CAAC/gB,EAAOC,IACxCpC,EAAamC,EAAO,CACvBoW,WAAYnW,EAAOmW,aC9GrBrR,GAAiB,CAEnBC,SAAUiB,OAASuD,SAAS,EAAG,UAAUvE,SACzCA,OAAQgB,OAAShB,SACjB0Q,OAAQ,KACRqL,eAAgB,GAChBC,eAAgB,IAGdjjB,GAAe,CACjBkjB,UAAW,KACXhc,QAASH,GACT5G,SAAS,EACTD,MAAO,MAGLijB,GAA0BnhB,GACrBnC,EAAamC,EAAO,CACvB7B,SAAS,EACTD,MAAO,KACPgjB,UAAW,KAIbE,GAA2B,CAACphB,EAAOC,IAC9BpC,EAAamC,EAAO,CACvB7B,SAAS,EACTD,MAAO,KACPgjB,UAAWjhB,EAAOohB,QAIpBC,GAAwB,CAACthB,EAAOC,IAC3BpC,EAAamC,EAAO,CACvB7B,SAAS,EACTD,MAAO+B,EAAO/B,MACdgjB,UAAW,OAIbK,GAA2B,CAACvhB,EAAOC,IAC9BpC,EAAamC,EAAO,CACvBkF,QAAS,IACFlF,EAAMkF,QACT,CAACjF,EAAO3B,KAAM2B,EAAOoG,SAK3Bmb,GAA0B,CAACxhB,EAAOC,IAC7BpC,EAAamC,EAAO,CACvBkF,QAAS,IACFH,MCrCT0c,GAA4B,IAI3B,IAJ4B,QAC/BjiB,EAD+B,eAE/BkiB,EAF+B,0BAG/BC,GACE,EACF,IAAKniB,EACD,MAAO,CACHoiB,gBAAiB,KACjBD,0BAA2B,IACpBA,EACHpL,SAAU,EACVF,KAAM,IAKlB,MAAMuL,EAAkBpiB,EAAQ+U,OAAQoB,GA/BvB,EAACA,EAAQzQ,MACtBA,EAAQyQ,SAAWA,EAAOlW,KAAK+U,SAAStP,EAAQyQ,OAAOlW,UAIvDyF,EAAQ2c,iBACR3c,EAAQ2c,eAAe7W,OACvB2K,EAAOmM,gBAAgB9W,MAAM+W,gBACzB7c,EAAQ2c,eAAe7W,MAAM+W,eAwBjCC,CAAarM,EAAQ+L,IAGnBlE,EAAcoE,EAAgB/K,OAC9B4G,EAAckE,EAA0BtL,KAExCqH,EACFD,GAAehB,GAAae,EAFZmE,EAA0BrL,aAI9C,MAAO,CACHsL,gBAAiBA,EACjBD,0BAA2B,IACpBA,EACHtL,KAAMqH,EAAqBD,EAAc,EACzClH,SAAUiH,KA4BhBxf,GAAe,CACjBwB,QAAS,KACTyiB,SAAU,GACVC,IAAK,GACLP,0BA3BsB,CACtBtL,KAAM,EACNC,YAAa,GACbC,SAAU,EACVC,gBAAiB,CACb,CAAEnQ,MAAO,EAAGhF,KAAM,KAClB,CAAEgF,MAAO,GAAIhF,KAAM,MACnB,CAAEgF,MAAO,GAAIhF,KAAM,MACnB,CAAEgF,MAAO,GAAIhF,KAAM,MACnB,CAAEgF,MAAO,EAAGhF,KAAM,aAmBtBqgB,eAfmB,CACnB/L,OAAQ,KACRkM,eAAgB,MAchBM,eAXmB,CACnBjM,UAAW,gBACXC,MAAO,QAUPyL,gBAAiB,KACjBzjB,SAAS,EACTikB,iBAAiB,EACjBC,YAAY,EACZnkB,MAAO,MAGLokB,GAA4BtiB,GACvBnC,EAAamC,EAAO,CACvB7B,SAAS,EACTD,MAAO,KACPsB,QAAS,QACNiiB,GAA0BzhB,KAI/BuiB,GAA6B,CAACviB,EAAOC,IAChCpC,EAAamC,EAAO,CACvB7B,SAAS,EACTD,MAAO,KACPsB,QAASS,EAAOT,WACbiiB,GAA0B,IAAKzhB,EAAOR,QAASS,EAAOT,YAI3DgjB,GAA0B,CAACxiB,EAAOC,IAC7BpC,EAAamC,EAAO,CACvB7B,SAAS,EACTD,MAAO+B,EAAO/B,MACdsB,QAAS,QACNiiB,GAA0BzhB,KAI/ByiB,GAAiC,CAACziB,EAAOC,IACpCpC,EAAamC,EAAO,CACvB2hB,0BAA2B1hB,EAAOmW,aAIpCsM,GAA6B,CAAC1iB,EAAOC,KACvC,MAAMyhB,EAAiB,IAChB1hB,EAAM0hB,eACT,CAACzhB,EAAO3B,KAAM2B,EAAOoG,OAGzB,OAAOxI,EAAamC,EAAO,CACvB0hB,oBACGD,GAA0B,IAAKzhB,EAAO0hB,sBAI3CiB,GAA8B,CAAC3iB,EAAOC,IACjCpC,EAAamC,EAAO,CACvBmiB,eAAgBliB,EAAOgW,UAIzB2M,GAA6B5iB,GACxBnC,EAAamC,EAAO,CACvBoiB,iBAAiB,EACjBlkB,MAAO,KACP+jB,SAAU,KAIZY,GAA8B,CAAC7iB,EAAOC,IACjCpC,EAAamC,EAAO,CACvBoiB,iBAAiB,EACjBlkB,MAAO,KACP+jB,SAAUhiB,EAAOgiB,WAInBa,GAA2B,CAAC9iB,EAAOC,IAC9BpC,EAAamC,EAAO,CACvBoiB,iBAAiB,EACjBlkB,MAAO+B,EAAO/B,MACd+jB,SAAU,KAIZc,GAA4B,CAAC/iB,EAAOC,KACtC,MAAMqO,EAAcrO,EAAO7B,KACrB4kB,EAAkBhjB,EAAMiiB,SAASta,IAAKvJ,GACxCA,EAAKyH,KAAOyI,EAAYzI,GAAKyI,EAAclQ,GAE/C,OAAOP,EAAamC,EAAO,CACvBiiB,SAAUe,KAIZC,GAA6BjjB,GACxBnC,EAAamC,EAAO,CACvBkjB,iBAAiB,EACjBhlB,MAAO,KACPgkB,IAAK,KAIPiB,GAA8B,CAACnjB,EAAOC,IACjCpC,EAAamC,EAAO,CACvBoiB,iBAAiB,EACjBlkB,MAAO,KACPgkB,IAAKjiB,EAAOmjB,WAIdC,GAA2B,CAACrjB,EAAOC,IAC9BpC,EAAamC,EAAO,CACvBkjB,iBAAiB,EACjBhlB,MAAO+B,EAAO/B,MACdgkB,IAAK,KAIPoB,GAAuB,CAACtjB,EAAOC,KACjC,MAAMqO,EAAcrO,EAAO7B,KAE3B,OAAOP,EAAamC,EAAO,CACvBkiB,IAAKliB,EAAMkiB,IAAIva,IAAKvJ,GAChBA,EAAKyH,KAAOyI,EAAYzI,GAAKyI,EAAclQ,MC1MjD2G,GAAiB,CACnB4Q,OAAQ,KACRI,UAAW9P,OAASuD,SAAS,GAAI,UAAUvE,SAC3C+Q,QAAS,IAAIuN,MAGXvlB,GAAe,CACjBkH,QAASH,GAETye,2BAA4B,KAC5BC,iBAAkB,KAClBC,4BAA6B3e,GAC7B4e,yBAAyB,EACzBxlB,SAAS,EACTD,MAAO,MAGL6D,GAAwB,CAAC/B,EAAOC,IAC3BjC,GAGL4lB,GAAiC5jB,GAC5BnC,EAAamC,EAAO,CACvB7B,SAAS,EACTwlB,yBAAyB,EACzBzlB,MAAO,KACPulB,iBAAkB,OAIpBI,GAAkC,CAAC7jB,EAAOC,IACrCpC,EAAamC,EAAO,CACvB7B,SAAS,EACTwlB,yBAAyB,EACzBzlB,MAAO,KACPulB,iBAAkBxjB,EAAOwjB,iBACzBD,2BAA4BvjB,EAAOujB,2BACnCE,4BAA6BzjB,EAAOiF,UAItC4e,GAA+B,CAAC9jB,EAAOC,IAClCpC,EAAamC,EAAO,CACvB9B,MAAO+B,EAAO/B,MACdC,SAAS,EACTwlB,yBAAyB,IAI3BI,GAAkC,CAAC/jB,EAAOC,IACrCpC,EAAamC,EAAO,CACvBkF,QAAS,IACFlF,EAAMkF,QACT,CAACjF,EAAO3B,KAAM2B,EAAOoG,SAI3B2d,GAAiC,CAAChkB,EAAOC,IACpCpC,EAAamC,EAAO,CACvBkF,QAAS,IACFH,MC5DTA,GAAiB,CACnB4Q,OAAQ,KACRI,UAAW9P,OAASuD,SAAS,EAAG,UAAUvE,SAC1C+Q,QAAS,IAAIuN,MAGXvlB,GAAe,CACjBkH,QAASH,GAETye,2BAA4B,KAC5BC,iBAAkB,KAClBC,4BAA6B3e,GAC7B4e,yBAAyB,EACzBxlB,SAAS,EACTD,MAAO,MAGL6D,GAAwB,CAAC/B,EAAOC,IAC3BjC,GAGLimB,GAAgBjkB,GACXnC,EAAamC,EAAO,CACvB7B,SAAS,EACTwlB,yBAAyB,EACzBzlB,MAAO,KACPulB,iBAAkB,OAIpBS,GAAiB,CAAClkB,EAAOC,IACpBpC,EAAamC,EAAO,CACvB7B,SAAS,EACTwlB,yBAAyB,EACzBzlB,MAAO,KACPulB,iBAAkBxjB,EAAOwjB,iBACzBD,2BAA4BvjB,EAAOujB,2BACnCE,4BAA6BzjB,EAAOiF,UAItCif,GAAc,CAACnkB,EAAOC,IACjBpC,EAAamC,EAAO,CACvB9B,MAAO+B,EAAO/B,MACdC,SAAS,EACTwlB,yBAAyB,IAI3BS,GAAiB,CAACpkB,EAAOC,IACpBpC,EAAamC,EAAO,CACvBkF,QAAS,IACFlF,EAAMkF,QACT,CAACjF,EAAO3B,KAAM2B,EAAOoG,SAI3Bge,GAAgB,CAACrkB,EAAOC,IACnBpC,EAAamC,EAAO,CACvBkF,QAAS,IACFH,MC5DTA,GAAiB,CACnB4Q,OAAQ,KACRI,UAAW9P,OAASuD,SAAS,EAAG,UAAUvE,SAC1C+Q,QAAS,IAAIuN,MAGXvlB,GAAe,CACjBkH,QAASH,GAETye,2BAA4B,KAC5BC,iBAAkB,KAClBC,4BAA6B3e,GAC7B4e,yBAAyB,EACzBxlB,SAAS,EACTD,MAAO,MAGL6D,GAAwB,CAAC/B,EAAOC,IAC3BjC,GAGLimB,GAAgBjkB,GACXnC,EAAamC,EAAO,CACvB7B,SAAS,EACTwlB,yBAAyB,EACzBzlB,MAAO,KACPulB,iBAAkB,OAIpBS,GAAiB,CAAClkB,EAAOC,IACpBpC,EAAamC,EAAO,CACvB7B,SAAS,EACTwlB,yBAAyB,EACzBzlB,MAAO,KACPulB,iBAAkBxjB,EAAOwjB,iBACzBD,2BAA4BvjB,EAAOujB,2BACnCE,4BAA6BzjB,EAAOiF,UAItCif,GAAc,CAACnkB,EAAOC,IACjBpC,EAAamC,EAAO,CACvB9B,MAAO+B,EAAO/B,MACdC,SAAS,EACTwlB,yBAAyB,IAI3BS,GAAiB,CAACpkB,EAAOC,IACpBpC,EAAamC,EAAO,CACvBkF,QAAS,IACFlF,EAAMkF,QACT,CAACjF,EAAO3B,KAAM2B,EAAOoG,SAI3Bge,GAAgB,CAACrkB,EAAOC,IACnBpC,EAAamC,EAAO,CACvBkF,QAAS,IACFH,MC7DT/G,GAAe,CACjByD,WAAY,GACZ6iB,MAAO,GACPC,OAAQ,GACRC,QAAS,GACTC,OAAQ,GACRC,YAAa,IAGXC,GAA+B3kB,GAC1BnC,EAAamC,EAAO,CACvB7B,SAAS,EACTD,MAAO,KACPuD,WAAY,KAIdmjB,GAAgC,CAAC5kB,EAAOC,IACnCpC,EAAamC,EAAO,CACvB7B,SAAS,EACTD,MAAO,KACPuD,WAAYxB,EAAOwB,aAIrBojB,GAA6B,CAAC7kB,EAAOC,IAChCpC,EAAamC,EAAO,CACvB7B,SAAS,EACTD,MAAO+B,EAAO/B,MACduD,WAAY,KAIdqjB,GAA0B9kB,GACrBnC,EAAamC,EAAO,CACvB7B,SAAS,EACTD,MAAO,KACPomB,MAAO,KAITS,GAA2B,CAAC/kB,EAAOC,IAC9BpC,EAAamC,EAAO,CACvB7B,SAAS,EACTD,MAAO,KACPomB,MAAOrkB,EAAOqkB,QAIhBU,GAAwB,CAAChlB,EAAOC,IAC3BpC,EAAamC,EAAO,CACvB7B,SAAS,EACTD,MAAO+B,EAAO/B,MACdomB,MAAO,KAITW,GAA2BjlB,GACtBnC,EAAamC,EAAO,CACvB7B,SAAS,EACTD,MAAO,KACPqmB,OAAQ,KAIVW,GAA4B,CAACllB,EAAOC,IAC/BpC,EAAamC,EAAO,CACvB7B,SAAS,EACTD,MAAO,KACPqmB,OAAQtkB,EAAOskB,SAIjBY,GAAyB,CAACnlB,EAAOC,IAC5BpC,EAAamC,EAAO,CACvB7B,SAAS,EACTD,MAAO+B,EAAO/B,MACdqmB,OAAQ,KAIVa,GAA4BplB,GACvBnC,EAAamC,EAAO,CACvB7B,SAAS,EACTD,MAAO,KACPsmB,QAAS,KAIXa,GAA6B,CAACrlB,EAAOC,IAChCpC,EAAamC,EAAO,CACvB7B,SAAS,EACTD,MAAO,KACPsmB,QAASvkB,EAAOukB,UAIlBc,GAA0B,CAACtlB,EAAOC,IAC7BpC,EAAamC,EAAO,CACvB7B,SAAS,EACTD,MAAO+B,EAAO/B,MACdsmB,QAAS,KAIXe,GAAgCvlB,GAC3BnC,EAAamC,EAAO,CACvB7B,SAAS,EACTD,MAAO,KACPwmB,YAAa,KAIfc,GAAiC,CAACxlB,EAAOC,IACpCpC,EAAamC,EAAO,CACvB7B,SAAS,EACTD,MAAO,KACPwmB,YAAazkB,EAAOykB,cAItBe,GAA8B,CAACzlB,EAAOC,IACjCpC,EAAamC,EAAO,CACvB7B,SAAS,EACTD,MAAO+B,EAAO/B,MACdwmB,YAAa,KCvGNgB,OAbM1M,0BAAgB,CACjC2M,aVgLwB,WAAmC,IAAlC3lB,EAAiC,uDAAzBhC,GAAciC,EAAW,uCAC1D,OAAQA,EAAOe,MAEX,I7BgFsC,iC6B/ElC,OAAOoc,GAA8Bpd,GACzC,I7BgFJ,mC6B/EQ,OAAOqd,GAAgCrd,EAAOC,GAClD,I7B+EqC,gC6B9EjC,OAAO0d,GAA6B3d,EAAOC,GAE/C,I7BkFJ,mC6BjFQ,OAAO2d,GAAgC5d,EAAOC,GAClD,I7BkFJ,kC6BjFQ,OAAO4d,GAA+B7d,GAE1C,I7BiFJ,oC6BhFQ,OAAO8d,GAAiC9d,EAAOC,GAEnD,I7BgFJ,uC6B/EQ,OAAO8d,GAAoC/d,EAAOC,GAEtD,I7BoEJ,qC6BnEQ,OAAO+d,GAAkChe,EAAOC,GAEpD,I7B4EmC,8B6B3E/B,OAAOie,GAA0Ble,GACrC,I7B2EqC,gC6B1EjC,OAAOme,GAA4Bne,EAAOC,GAC9C,I7B0EkC,6B6BzE9B,OAAOqe,GAAyBte,GAEpC,KAAKiB,EACD,OAAOc,KACX,QACI,OAAO/B,IUjNf4lB,QTgQmB,WAAmC,IAAlC5lB,EAAiC,uDAAzBhC,GAAciC,EAAW,uCACrD,OAAQA,EAAOe,MAEX,I9BsBJ,qC8BrBQ,OAAO0d,GAAiC1e,GAC5C,I9BsBJ,uC8BrBQ,OAAO2e,GAAmC3e,EAAOC,GACrD,I9BsBJ,oC8BrBQ,OAAO2e,GAAgC5e,EAAOC,GAElD,I9BsBJ,uC8BrBQ,OAAO4e,GAAmC7e,EAAOC,GACrD,I9BsBJ,sC8BrBQ,OAAO+e,GAAkChf,GAE7C,I9BqBJ,wC8BpBQ,OAAO8e,GAAoC9e,EAAOC,GAEtD,I9BoBJ,2C8BnBQ,OAAO8e,GAAuC/e,EAAOC,GAEzD,I9BmBqC,gC8BlBjC,OAAOgf,GAA6Bjf,EAAOC,GAE/C,I9BJqC,gC8BKjC,OAAOke,GAA4Bne,EAAOC,GAE9C,I9BgBJ,wC8BfQ,OAAOkf,GAAmCnf,GAC9C,I9BgBJ,0C8BfQ,OAAOof,GAAqCpf,EAAOC,GACvD,I9BgBJ,uC8BfQ,OAAOof,GAAkCrf,GAE7C,I9BgBJ,2C8BfQ,OAAOsf,GAAsCtf,GACjD,I9BgBJ,6C8BfQ,OAAOuf,GAAwCvf,EAAOC,GAC1D,I9BgBJ,0C8BfQ,OAAOuf,GAAqCxf,GAEhD,I9BgBJ,wC8BfQ,OAAOyf,GAAoCzf,GAC/C,I9BgBJ,0C8BfQ,OAAO0f,GAAsC1f,EAAOC,GACxD,I9BgBJ,uC8BfQ,OAAO0f,GAAmC3f,GAE9C,KAAKiB,EACD,OAAOc,KACX,QACI,OAAO/B,ISlTf6lB,URwJqB,WAAmC,IAAlC7lB,EAAiC,uDAAzBhC,GAAciC,EAAW,uCACvD,OAAQA,EAAOe,MAEX,I/BuKJ,6C+BtKQ,OAAOof,GAAwCpgB,GACnD,I/BuKJ,+C+BtKQ,OAAOqgB,GAA0CrgB,EAAOC,GAC5D,I/BuKJ,4C+BtKQ,OAAOqgB,GAAuCtgB,GAElD,I/B6JuC,kC+B5JnC,OAAOugB,GAA+BvgB,EAAOC,GAEjD,I/BoKJ,uC+BnKQ,OAAO4f,GAAmC7f,GAC9C,I/BoKJ,yC+BnKQ,OAAO8f,GAAqC9f,EAAOC,GACvD,I/BoKJ,sC+BnKQ,OAAO8f,GAAkC/f,EAAOC,GAEpD,I/BoKJ,yC+BnKQ,OAAO+f,GAAqChgB,EAAOC,GACvD,I/BoKJ,wC+BnKQ,OAAOkgB,GAAoCngB,GAE/C,I/BmKJ,0C+BlKQ,OAAOigB,GAAsCjgB,EAAOC,GAExD,I/BkKJ,6C+BjKQ,OAAOigB,GAAyClgB,EAAOC,GAC3D,KAAKgB,EACD,OAAOc,KACX,QACI,OAAO/B,IQxLf8lB,YPsGuB,WAAmC,IAAlC9lB,EAAiC,uDAAzBhC,GAAciC,EAAW,uCACzD,OAAQA,EAAOe,MAEX,IhC+OsC,iCgC9OlC,OAAOyf,GAA6BzgB,GACxC,IhC+OJ,mCgC9OQ,OAAO0gB,GAA+B1gB,EAAOC,GACjD,IhC8OqC,gCgC7OjC,OAAO0gB,GAA4B3gB,GAEvC,IhC8OJ,mCgC7OQ,OAAO4gB,GAA+B5gB,EAAOC,GACjD,IhC8OJ,kCgC7OQ,OAAO4gB,GAA8B7gB,GAEzC,IhC6OJ,oCgC5OQ,OAAO8gB,GAAgC9gB,EAAOC,GAElD,IhC4OJ,uCgC3OQ,OAAO8gB,GAAmC/gB,EAAOC,GAGrD,KAAKgB,EACD,OAAOc,KACX,QACI,OAAO/B,IO9Hf+lB,aJoDwB,WAAmC,IAAlC/lB,EAAiC,uDAAzBhC,GAAciC,EAAW,uCAC1D,OAAQA,EAAOe,MAEX,InC2UJ,kCmC1UQ,OAAO4iB,GAA8B5jB,GACzC,InC2UJ,oCmC1UQ,OAAO6jB,GAAgC7jB,EAAOC,GAClD,InC0UsC,iCmCzUlC,OAAO6jB,GAA6B9jB,EAAOC,GAE/C,InC0UJ,oCmCzUQ,OAAO8jB,GAAgC/jB,EAAOC,GAClD,InC0UJ,mCmCzUQ,OAAO+jB,GAA+BhkB,GAE1C,KAAKiB,EACD,OAAOc,KACX,QACI,OAAO/B,IIrEfgmB,wBHmDmC,WAAmC,IAAlChmB,EAAiC,uDAAzBhC,GAAciC,EAAW,uCACrE,OAAQA,EAAOe,MAEX,IpCsVJ,8CoCrVQ,OAAOijB,GAAajkB,GACxB,IpCsVJ,gDoCrVQ,OAAOkkB,GAAelkB,EAAOC,GACjC,IpCsVJ,6CoCrVQ,OAAOkkB,GAAYnkB,EAAOC,GAE9B,IpCsVJ,gDoCrVQ,OAAOmkB,GAAepkB,EAAOC,GACjC,IpCsVJ,+CoCrVQ,OAAOokB,GAAcrkB,GAEzB,KAAKiB,EACD,OAAOc,KACX,QACI,OAAO/B,IGpEfimB,wBFkDmC,WAAmC,IAAlCjmB,EAAiC,uDAAzBhC,GAAciC,EAAW,uCACrE,OAAQA,EAAOe,MAEX,IrCkWJ,8CqCjWQ,OAAOijB,GAAajkB,GACxB,IrCkWJ,gDqCjWQ,OAAOkkB,GAAelkB,EAAOC,GACjC,IrCkWJ,6CqCjWQ,OAAOkkB,GAAYnkB,EAAOC,GAE9B,IrCkWJ,gDqCjWQ,OAAOmkB,GAAepkB,EAAOC,GACjC,IrCkWJ,+CqCjWQ,OAAOokB,GAAcrkB,GAEzB,KAAKiB,EACD,OAAOc,KACX,QACI,OAAO/B,IEnEfqhB,MNyCiB,WAAmC,IAAlCrhB,EAAiC,uDAAzBhC,GAAciC,EAAW,uCACnD,OAAQA,EAAOe,MACX,IjCuT+B,0BiCtT3B,OAAOmgB,GAAuBnhB,GAClC,IjCsTiC,4BiCrT7B,OAAOohB,GAAyBphB,EAAOC,GAC3C,IjCqT8B,yBiCpT1B,OAAOqhB,GAAsBthB,EAAOC,GACxC,IjCoTiC,4BiCnT7B,OAAOshB,GAAyBvhB,EAAOC,GAC3C,IjCmTgC,2BiClT5B,OAAOuhB,GAAwBxhB,GAEnC,QACI,OAAOA,IMtDfH,ML8LiB,WAAmC,IAAlCG,EAAiC,uDAAzBhC,GAAciC,EAAW,uCACnD,OAAQA,EAAOe,MACX,IlCuKiC,4BkCtK7B,OAAOshB,GAAyBtiB,GACpC,IlCsKmC,8BkCrK/B,OAAOuiB,GAA2BviB,EAAOC,GAC7C,IlCqKgC,2BkCpK5B,OAAOuiB,GAAwBxiB,EAAOC,GAC1C,IlCqKJ,kCkCpKQ,OAAOwiB,GAA+BziB,EAAOC,GACjD,IlCoKoC,+BkCnKhC,OAAO0iB,GAA4B3iB,EAAOC,GAC9C,IlCmKmC,8BkClK/B,OAAOyiB,GAA2B1iB,EAAOC,GAE7C,IlCkKkC,6BkCjK9B,OAAO2iB,GAA0B5iB,GACrC,IlCiKoC,+BkChKhC,OAAO6iB,GAA4B7iB,EAAOC,GAC9C,IlCgKiC,4BkC/J7B,OAAO6iB,GAAyB9iB,EAAOC,GAC3C,IlCgKiC,4BkC/J7B,OAAO8iB,GAA0B/iB,EAAOC,GAE5C,IlC+JmC,8BkC9J/B,OAAOgjB,GAA0BjjB,GACrC,IlC8JqC,gCkC7JjC,OAAOmjB,GAA4BnjB,EAAOC,GAC9C,IlC6JkC,6BkC5J9B,OAAOojB,GAAyBrjB,EAAOC,GAC3C,IlC6J6B,wBkC5JzB,OAAOqjB,GAAqBtjB,EAAOC,GAEvC,QACI,OAAOD,IK/NfkmB,SD8GoB,WAAmC,IAAlClmB,EAAiC,uDAAzBhC,GAAciC,EAAW,uCACtD,OAAQA,EAAOe,MAEX,ItC+SoC,+BsC9ShC,OAAO2jB,GAA4B3kB,GACvC,ItC8SsC,iCsC7SlC,OAAO4kB,GAA8B5kB,EAAOC,GAChD,ItC6SmC,8BsC5S/B,OAAO4kB,GAA2B7kB,EAAOC,GAG7C,ItCoT+B,0BsCnT3B,OAAO6kB,GAAuB9kB,GAClC,ItCmTiC,4BsClT7B,OAAO+kB,GAAyB/kB,EAAOC,GAC3C,ItCkT8B,yBsCjT1B,OAAO+kB,GAAsBhlB,EAAOC,GAGxC,ItCmSgC,2BsClS5B,OAAOglB,GAAwBjlB,GACnC,ItCkSkC,6BsCjS9B,OAAOklB,GAA0BllB,EAAOC,GAC5C,ItCiS+B,0BsChS3B,OAAOklB,GAAuBnlB,EAAOC,GAGzC,ItCwSiC,4BsCvS7B,OAAOmlB,GAAyBplB,GACpC,ItCuSmC,8BsCtS/B,OAAOqlB,GAA2BrlB,EAAOC,GAC7C,ItCsSgC,2BsCrS5B,OAAOqlB,GAAwBtlB,EAAOC,GAG1C,ItCuRsC,iCsCtRlC,OAAOslB,GAA6BvlB,GACxC,ItCuRJ,mCsCtRQ,OAAOwlB,GAA+BxlB,EAAOC,GACjD,ItCsRqC,gCsCrRjC,OAAOwlB,GAA4BzlB,EAAOC,GAE9C,QACI,OAAOD,ME7KnB,MAAMmmB,GAAiB,CACnBC,OAAQ,SACRC,QAAS,UACTC,kBAAmB,SACnBC,KAAM,QAGGC,GAGJ,MAHIA,GAIA,UA8BN,SAASC,KACZ,OAAOC,GAAqCP,GAAeC,QAGxD,SAASO,KACZ,OAAOD,GACHP,GAAeG,mBAQhB,SAASM,KACZ,OAGJ,WACI,MACMxoB,EAAOsC,GADCyS,GAAMoG,YAGpB,GAAIsN,KACA,OAAOzoB,EAAKU,WAAaV,EAAKU,UAAUgoB,YACrC,GAAIC,KACP,OAAO3oB,EAAK4oB,mBAAqB5oB,EAAK4oB,kBAAkBF,YACrD,GAAIG,KACP,OAAO,EAZJC,GAgBX,SAASR,GAAqCS,GAC1C,MAAMnnB,EAAQmT,GAAMoG,WAEpB,IAAKsN,KACD,OAAO,EAGX,MAAMzoB,EAAOsC,GAAQV,GACrB,IAAK5B,EACD,OAAO,EAEX,MAAMgpB,EAAWhpB,EAAKipB,iBAEtB,IAAKD,IAAahpB,EAAKoB,UAAYpB,EAAKoB,QAAQqX,OAC5C,OAAO,EAGX,IAAK,MAAMlB,KAAUvX,EAAKoB,QACtB,GAAImW,EAAO9P,KAAOuhB,GAAYzR,EAAOjW,cAAe,CAChD,GAAIynB,IAAkBhB,GAAeC,OACjC,OACIzQ,EAAOhW,oBAAsBgW,EAAO/V,uBAErC,GAAIunB,IAAkBhB,GAAeE,QACxC,OACI1Q,EAAO/V,yBAA2B+V,EAAOhW,kBAE1C,GAAIwnB,IAAkBhB,GAAeG,kBACxC,OACI3Q,EAAO/V,wBAA0B+V,EAAOhW,kBAEzC,GAAIwmB,KAAmBA,GAAeI,KACzC,OACK5Q,EAAO/V,yBAA2B+V,EAAOhW,kBAM1D,OAAO,EAGJ,SAAS2nB,KACZ,MAEMlpB,EAAOsC,GAFCyS,GAAMoG,YAGpB,QAAKnb,KAIGA,EAAKipB,mBAAqBjpB,EAAKmpB,kBAAoBnpB,EAAKopB,aAG7D,SAASC,KACZ,MAEMrpB,EAAOsC,GAFCyS,GAAMoG,YAGpB,QAAKnb,IAKDyoB,MACAzoB,EAAKipB,kBACLjpB,EAAKU,WACwB,UAA7BV,EAAKU,UAAUA,WAIhB,SAAS4B,KAAuB,IAAfV,EAAc,uDAAN,KAE5B,OADAA,EAAQA,GAASmT,GAAMoG,WAClBvZ,GAAUA,EAAMe,MAASf,EAAMe,KAAK3C,MAAS4B,EAAMe,KAAK3C,KAAKA,KAG3D4B,EAAMe,KAAK3C,KAFP,KAKR,SAASyoB,KACZ,MACMzoB,EAAOsC,GADCyS,GAAMoG,YAEpB,QAAKnb,KAIGA,EAAKmpB,kBAAoBnpB,EAAKopB,aAGnC,SAAST,KACZ,MAEM3oB,EAAOsC,GAFCyS,GAAMoG,YAGpB,QAAKnb,IAIEA,EAAKmpB,kBAAoBnpB,EAAKopB,aAGlC,SAASP,KACZ,MAEM7oB,EAAOsC,GAFCyS,GAAMoG,YAGpB,QAAKnb,IAIEA,EAAKopB,cAAgBppB,EAAKmpB,iBC9KrC,MAAMvpB,GAAewb,GAAciC,GAE7BiM,GAAiB,CAAC1nB,EAAO2nB,IACpBA,EAGLC,GAA+B,CAAC5nB,EAAO5B,KACzC,IAAKA,EACD,OAAO4B,EAGX,MAAM6nB,EAAkBzpB,EAAK0pB,yBAE7B,IAAIC,EAAoB,gBACpBF,IAAoBrB,GACpBuB,EAAoB,oBACbF,IAAoBrB,KAC3BuB,EAAoB,yBAGxB,IAAIC,EAAiBnV,KAAEwJ,IACnBje,EADiB,UAEd2pB,EAFc,aAGjBvO,GAAciC,IASlB,OANAuM,EAAiBA,EAAejG,cAE3B,CAACvI,GAAciC,GAAIjC,GAAcC,IAAIjF,SAASwT,KAC/CA,EAAiBxO,GAAciC,IAG5BiM,GAAe1nB,EAAOgoB,ICjC3BC,GACgB,iCADhBA,GAEkB,mCAFlBA,GAGe,gCAHfA,GAIyB,0CAJzBA,GAKkB,mCALlBA,GAMmB,oCANnBA,GAOsB,uCAPtBA,GAQoB,qCAGbC,GAAyB,CAClC,CACI7hB,MAAO,KAAM2E,MAAO,WAExB,CACI3E,OAAO,EAAM2E,MAAO,cAExB,CACI3E,OAAO,EAAO2E,MAAO,gBAIvBmd,GAAwB,KACnB,CACHnjB,SAAU,KACVC,OAAQ,KACR0Q,OAAQ,KAGRyS,UAAWF,GAAuB,KA6BpCjL,GAAkB,CAACC,EAAKmL,KAC1B,MAAMC,EAAYD,EAAK1gB,IAAKqB,GAAQA,EAAInD,IACxC,OAAOqX,EAAI3I,OAAQ1O,GAAOyiB,EAAU9T,SAAS3O,KAG3C7H,GAAe,CACjBuqB,KAAM,GACNC,YA/BO,CACHtS,UAAW,aACXC,MAAO,QA8BXsS,eAhBO,CACHpS,KAAM,EACNC,YAAa,GACbC,SAAU,EACVC,gBAbG,CACH,CAAEnQ,MAAO,GAAIhF,KAAM,MACnB,CAAEgF,MAAO,GAAIhF,KAAM,MACnB,CAAEgF,MAAO,GAAIhF,KAAM,MACnB,CAAEgF,MAAO,IAAKhF,KAAM,SAsBxBqnB,gBAAiBP,KACjBQ,aAAa,EACbC,UAAW,KACXC,YAAaV,KACbW,gBAAiB,IAGfC,GAA0B,CAAC/oB,EAAOC,IAC7BjC,GAGLgrB,GAAoBhpB,GACfnC,EAAamC,EAAO,CACvBuoB,KAAM,GACNI,aAAa,EACbC,UAAW,OAIbK,GAAqB,CAACjpB,EAAD,KAAuC,IAA/B,KAACuoB,EAAD,SAAOhS,EAAP,QAAiBrR,GAAa,EAC7D,GAAIqjB,EACA,IAAK,MAAMvf,KAAOuf,EACdvf,EAAIpD,aAAJ,UAAsBoD,EAAInD,GAA1B,YAAgCmD,EAAIkgB,aAApC,YAAoDlgB,EAAImgB,YAGhE,OAAOtrB,EAAamC,EAAO,CACvBuoB,OACAI,aAAa,EACbF,eAAgB,IACTzoB,EAAMyoB,eACTlS,YAEJmS,gBAAiBxjB,EACjB4jB,gBAAiB7L,GAAgBjd,EAAM8oB,gBAAiBP,MAI1Da,GAAkB,CAACppB,EAAD,KAAqB,IAAb,MAAC9B,GAAW,EACxC,OAAOL,EAAamC,EAAO,CACvBuoB,KAAM,GACNI,aAAa,EACbC,UAAW1qB,EACXmrB,gBAAiB,MAIZC,GAAuB,CAACtpB,EAAO1B,EAAK+H,IACtCxI,EAAamC,EAAO,CACvB6oB,YAAa,IACN7oB,EAAM6oB,YACT,CAACvqB,GAAM+H,GAEXoiB,eAAgB,IACTzoB,EAAMyoB,eACTpS,KAAM,KAKLkT,GAAkBvpB,GACpBnC,EAAamC,EAAO,CACvB6oB,YAAa,IACNV,MAEPM,eAAgB,IACTzoB,EAAMyoB,eACTpS,KAAM,KAKZmT,GAAsB,CAACxpB,EAAD,KAAuB,IAAf,QAACiW,GAAa,EAC9C,OAAOpY,EAAamC,EAAO,CACvBwoB,YAAavS,KAIfwT,GAAyB,CAACzpB,EAAOC,IAC5BpC,EAAamC,EAAO,CACvByoB,eAAgBxoB,EAAOmW,aAIzBsT,GAAuB,CAAC1pB,EAAD,KAA2B,IAAnB,YAAC+c,GAAiB,EACnD,OAAOlf,EAAamC,EAAO,CACvB8oB,gBAAiB/L,KA4DZ4M,GAAU,CACnBC,eA1C0B,KACnB,CACH5oB,KAAMinB,KAyCV4B,iBArC4B,CAACtB,EAAMhS,EAAUrR,KACtC,CACHlE,KAAMinB,GACNM,OAAMhS,WAAUrR,YAmCpB4kB,cA/B0B5rB,IACnB,CACH8C,KAAMinB,GACN/pB,UA6BJ6rB,kBA3D6B,CAACzrB,EAAK+H,KAC5B,CACHrF,KAAMinB,GACN3pB,IAAKA,EACL+H,MAAOA,IAwDX2jB,iBApD4B,KACrB,CACHhpB,KAAMinB,KAmDVgC,kBA3B8BhU,IACvB,CACHjV,KAAMinB,GACNhS,YAyBJiU,qBArBiC9T,IAC1B,CACHpV,KAAMinB,GACN7R,eAmBJ+T,mBAf+BpN,IACxB,CACH/b,KAAMinB,GACNlL,iBA+COqN,OA/BC,WAAmC,IAAlCpqB,EAAiC,uDAAzBhC,GAAciC,EAAW,uCAC9C,OAAQA,EAAOe,MAEX,KAAKinB,GACD,OAAOe,GAAiBhpB,GAC5B,KAAKioB,GACD,OAAOgB,GAAmBjpB,EAAOC,GACrC,KAAKgoB,GACD,OAAOmB,GAAgBppB,EAAOC,GAElC,KAAKgoB,GACD,OAAOqB,GAAqBtpB,EAAOC,EAAO3B,IAAK2B,EAAOoG,OAC1D,KAAK4hB,GACD,OAAOsB,GAAevpB,GAE1B,KAAKioB,GACD,OAAOuB,GAAoBxpB,EAAOC,GAEtC,KAAKgoB,GACD,OAAOwB,GAAuBzpB,EAAOC,GAEzC,KAAKgoB,GACD,OAAOyB,GAAqB1pB,EAAOC,GAEvC,KAAKgB,EACD,OAAO8nB,KACX,QACI,OAAO/oB,IC1PnB,MAAMioB,GACgB,6CADhBA,GAEkB,+CAFlBA,GAGe,4CAHfA,GAIyB,sDAJzBA,GAKkB,+CALlBA,GAMmB,gDANnBA,GAOsB,mDAPtBA,GAQoB,iDAGboC,GAAW,CACpBC,cAAc,EACdC,aAAa,GAGJC,GAAyB,CAClC,CACInkB,MAAO,KAAM2E,MAAO,kBAACwP,GAAA,EAAD,CAAOC,QAAQ,wBAEvC,CACIpU,MAAOgkB,GAASC,aAActf,MAAO,kBAACwP,GAAA,EAAD,CAAOC,QAAQ,kDAExD,CACIpU,MAAOgkB,GAASE,YAAavf,MAAO,kBAACwP,GAAA,EAAD,CAAOC,QAAQ,kDAKrD0N,GAAwB,KACnB,CACHnjB,SAAU,KACVC,OAAQ,KACR0Q,OAAQ,KAGR8U,UAAWD,GAAuB,KA6BpCvN,GAAkB,CAACC,EAAKmL,KAC1B,MAAMC,EAAYD,EAAK1gB,IAAKqB,GAAQA,EAAInD,IACxC,OAAOqX,EAAI3I,OAAQ1O,GAAOyiB,EAAU9T,SAAS3O,KAG3C7H,GAAe,CACjBuqB,KAAM,GACNC,YA/BO,CACHtS,UAAW,aACXC,MAAO,QA8BXsS,eAhBO,CACHpS,KAAM,EACNC,YAAa,GACbC,SAAU,EACVC,gBAbG,CACH,CAAEnQ,MAAO,GAAIhF,KAAM,MACnB,CAAEgF,MAAO,GAAIhF,KAAM,MACnB,CAAEgF,MAAO,GAAIhF,KAAM,MACnB,CAAEgF,MAAO,IAAKhF,KAAM,SAsBxBqnB,gBAAiBP,KACjBQ,aAAa,EACbC,UAAW,KACXC,YAAaV,KACbW,gBAAiB,IAGfC,GAA0B,CAAC/oB,EAAOC,IAC7BjC,GAGLgrB,GAAoBhpB,GACfnC,EAAamC,EAAO,CACvBuoB,KAAM,GACNI,aAAa,EACbC,UAAW,OAIbK,GAAqB,CAACjpB,EAAD,KAAuC,IAA/B,KAACuoB,EAAD,SAAOhS,EAAP,QAAiBrR,GAAa,EAC7D,GAAIqjB,EACA,IAAK,MAAMvf,KAAOuf,EACdvf,EAAIpD,aAAJ,UAAsBoD,EAAInD,GAA1B,YAAgCmD,EAAIkgB,aAApC,YAAoDlgB,EAAImgB,YAGhE,OAAOtrB,EAAamC,EAAO,CACvBuoB,OACAI,aAAa,EACbF,eAAgB,IACTzoB,EAAMyoB,eACTlS,YAEJmS,gBAAiBxjB,EACjB4jB,gBAAiB7L,GAAgBjd,EAAM8oB,gBAAiBP,MAI1Da,GAAkB,CAACppB,EAAD,KAAqB,IAAb,MAAC9B,GAAW,EACxC,OAAOL,EAAamC,EAAO,CACvBuoB,KAAM,GACNI,aAAa,EACbC,UAAW1qB,EACXmrB,gBAAiB,MAIZC,GAAuB,CAACtpB,EAAO1B,EAAK+H,IACtCxI,EAAamC,EAAO,CACvB6oB,YAAa,IACN7oB,EAAM6oB,YACT,CAACvqB,GAAM+H,GAEXoiB,eAAgB,IACTzoB,EAAMyoB,eACTpS,KAAM,KAKLkT,GAAkBvpB,GACpBnC,EAAamC,EAAO,CACvB6oB,YAAa,IACNV,MAEPM,eAAgB,IACTzoB,EAAMyoB,eACTpS,KAAM,KAKZmT,GAAsB,CAACxpB,EAAD,KAAuB,IAAf,QAACiW,GAAa,EAC9C,OAAOpY,EAAamC,EAAO,CACvBwoB,YAAavS,KAIfwT,GAAyB,CAACzpB,EAAOC,IAC5BpC,EAAamC,EAAO,CACvByoB,eAAgBxoB,EAAOmW,aAIzBsT,GAAuB,CAAC1pB,EAAD,KAA2B,IAAnB,YAAC+c,GAAiB,EACnD,OAAOlf,EAAamC,EAAO,CACvB8oB,gBAAiB/L,KA4DZ4M,GAAU,CACnBC,eA1C0B,KACnB,CACH5oB,KAAMinB,KAyCV4B,iBArC4B,CAACtB,EAAMhS,EAAUrR,KACtC,CACHlE,KAAMinB,GACNM,OAAMhS,WAAUrR,YAmCpB4kB,cA/B0B5rB,IACnB,CACH8C,KAAMinB,GACN/pB,UA6BJ6rB,kBA3D6B,CAACzrB,EAAK+H,KAC5B,CACHrF,KAAMinB,GACN3pB,IAAKA,EACL+H,MAAOA,IAwDX2jB,iBApD4B,KACrB,CACHhpB,KAAMinB,KAmDVgC,kBA3B8BhU,IACvB,CACHjV,KAAMinB,GACNhS,YAyBJiU,qBArBiC9T,IAC1B,CACHpV,KAAMinB,GACN7R,eAmBJ+T,mBAf+BpN,IACxB,CACH/b,KAAMinB,GACNlL,iBA+COqN,OA/BC,WAAmC,IAAlCpqB,EAAiC,uDAAzBhC,GAAciC,EAAW,uCAC9C,OAAQA,EAAOe,MAEX,KAAKinB,GACD,OAAOe,GAAiBhpB,GAC5B,KAAKioB,GACD,OAAOgB,GAAmBjpB,EAAOC,GACrC,KAAKgoB,GACD,OAAOmB,GAAgBppB,EAAOC,GAElC,KAAKgoB,GACD,OAAOqB,GAAqBtpB,EAAOC,EAAO3B,IAAK2B,EAAOoG,OAC1D,KAAK4hB,GACD,OAAOsB,GAAevpB,GAE1B,KAAKioB,GACD,OAAOuB,GAAoBxpB,EAAOC,GAEtC,KAAKgoB,GACD,OAAOwB,GAAuBzpB,EAAOC,GAEzC,KAAKgoB,GACD,OAAOyB,GAAqB1pB,EAAOC,GAEvC,KAAKgB,EACD,OAAO8nB,KACX,QACI,OAAO/oB,ICnPnB,MAAM0qB,GAAa1R,0BAAgB,CAC/BjY,OACA4pB,SACAC,WACAC,Q3BiDmB,WAAmC,IAAlC7qB,EAAiC,uDAAzBhC,GAAciC,EAAW,uCACrD,OAAQA,EAAOe,MAEX,IjBzD+B,0BiB0D3B,OAAOiU,GAAqBjV,GAChC,IjB1DiC,4BiB2D7B,OAAOkV,GAAuBlV,EAAOC,GACzC,IjB3D8B,yBiB4D1B,OAAOkV,GAAoBnV,GAG/B,IjB7DqC,gCiB8DjC,OAAOoV,GAA6BpV,GACxC,IjB7DJ,kCiB8DQ,OAAOqV,GAA+BrV,EAAOC,GACjD,IjB9DoC,+BiB+DhC,OAAOqV,GAA4BtV,GAGvC,IjBhE6B,wBiBiEzB,OAAOuV,GAAsBvV,GACjC,IjBjE+B,0BiBkE3B,OAAOwV,GAAwBxV,EAAOC,GAC1C,IjBlE4B,uBiBmExB,OAAOwV,GAAqBzV,GAEhC,QACI,OAAOA,I2B3Efb,SHcoB,WAAmC,IAAlCa,EAAiC,uDAAzBhC,GAAciC,EAAW,uCACtD,OAAQA,EAAOe,MACX,IzCTuB,kByCUnB,OAAO0mB,GAAe1nB,EAAOC,EAAOd,UACxC,KAAK8B,EACD,OAAO2mB,GAA6B5nB,EAAOC,EAAO7B,MACtD,IzCtCe,UyCuCX,OAAOJ,GACX,QACI,OAAOgC,IGtBf8qB,WzCVsB,WAAmC,IAAlC9qB,EAAiC,uDAAzBhC,EAAciC,EAAW,uCACxD,OAAQA,EAAOe,MACX,IHkBJ,kCGjBQ,OAAOI,EAAmBpB,EAAOC,EAAOoB,MAC5C,QACI,OAAOrB,IyCMfmC,YACA4B,YACA2B,MtC6DiB,WAAmC,IAAlC1F,EAAiC,uDAAzBhC,GAAciC,EAAW,uCACnD,OAAQA,EAAOe,MAGX,INOyB,oBMNrB,OAAOwE,GAAgBxF,GAC3B,INM2B,sBMLvB,OAAOyF,GAAkBzF,EAAOC,EAAOkF,UAAWlF,EAAO+E,SAAU/E,EAAOgF,QAC9E,INKwB,mBMJpB,OAAOkB,GAAenG,EAAOC,GAEjC,INIkC,6BMH9B,OAAOmG,GAAmBpG,EAAOC,EAAO3B,IAAK2B,EAAOoG,OACxD,ING2B,sBMFvB,OAAOC,GAAatG,GAExB,INEiC,4BMD7B,OAAOuG,GAAuBvG,GAClC,INCmC,8BMA/B,OAAOwG,GAAyBxG,EAAOC,EAAOkF,WAClD,INAgC,2BMC5B,OAAOsB,GAAsBzG,GAEjC,KAAKiB,EACD,OAAOc,KACX,QACI,OAAO/B,IsCtFf2F,YrC0KuB,WAAmC,IAAlC3F,EAAiC,uDAAzBhC,GAAciC,EAAW,uCACzD,OAAQA,EAAOe,MACX,IPzFgC,2BO0F5B,OAAOoG,GAAsBpH,GACjC,IP1FkC,6BO2F9B,OAAOqH,GAAwBrH,EAAOC,EAAOqH,QACjD,IP3F+B,0BO4F3B,OAAOG,GAAqBzH,EAAOC,GACvC,IPzFJ,mCO2FQ,OAAOiJ,GAA6BlJ,EAAOC,GAC/C,IP1FJ,oCO2FQ,OAAOkJ,GAA8BnJ,EAAOC,GAChD,IPhGJ,qCOiGQ,OAAO6I,GAA+B9I,EAAOC,GAEjD,IP9F+B,0BO+F3B,OAAOyH,GAAqB1H,EAAOC,GACvC,IP/FiC,4BOgG7B,OAAO6H,GAAuB9H,EAAOC,GACzC,IPhG8B,yBOiG1B,OAAO8H,GAAoB/H,EAAOC,GAElC,IPlG6B,4BOmG7B,OAAO+H,GAAuBhI,GAClC,IPnGmC,8BOoG/B,OAAOkI,GAAyBlI,GACpC,IPpGgC,2BOqG5B,OAAOmI,GAAsBnI,EAAOC,GAExC,IPrGJ,qCOsGQ,OAAOmI,GAA+BpI,GAC1C,IPrGJ,uCOsGQ,OAAOqI,GAAiCrI,GAC5C,IPrGJ,oCOsGQ,OAAOsI,GAA8BtI,EAAOC,GAEhD,IPtGJ,mCOuGQ,OAAOsI,GAA6BvI,GACxC,IPtGJ,qCOuGQ,OAAOwI,GAA+BxI,GAC1C,IPtGJ,kCOuGQ,OAAOyI,GAA4BzI,EAAOC,GAE9C,IPxGiC,4BOyG7B,OAAOyI,GAAuB1I,GAClC,IPzGmC,8BO0G/B,OAAO4I,GAAyB5I,GACpC,IP1GgC,2BO2G5B,OAAO6I,GAAsB7I,EAAOC,GAExC,KAAKgB,EACD,OAAOc,KACX,QACI,OAAO/B,IqC/Nf+qB,cpCiEyB,WAAmC,IAAlC/qB,EAAiC,uDAAzBhC,GAAciC,EAAW,uCAC3D,OAAQA,EAAOe,MAEX,IR8CmC,8BQ7C/B,OAAOwJ,GAAyBxK,GACpC,IR6CqC,gCQ5CjC,OAAOyK,GAA2BzK,EAAOC,GAC7C,IR4CkC,6BQ3C9B,OAAOyK,GAAwB1K,EAAOC,GAE1C,IR4CJ,sCQ3CQ,OAAO0K,GAAgC3K,EAAOC,GAElD,IR2CmC,8BQ1C/B,OAAO2K,GAAyB5K,GACpC,IR0CqC,gCQzCjC,OAAO6K,GAA2B7K,EAAOC,GAC7C,IRyCkC,6BQxC9B,OAAO6K,GAAwB9K,EAAOC,GAE1C,KAAKgB,EACD,OAAOc,KACX,QACI,OAAO/B,IoCvFfgrB,WnC4EsB,WAAmC,IAAlChrB,EAAiC,uDAAzBhC,GAAciC,EAAW,uCACxD,OAAQA,EAAOe,MACX,IT6DiC,4BS5D7B,OAAOuK,GAA6BvL,EAAOC,EAAOiG,QAEtD,IToDgC,2BSnD5B,OAAOsF,GAAsBxL,GACjC,ITmDkC,6BSlD9B,OAAOyL,GAAwBzL,EAAOC,GAC1C,ITkD+B,0BSjD3B,OAAOyL,GAAqB1L,EAAOC,GAEvC,ITkDJ,mCSjDQ,OAAO0L,GAA6B3L,EAAOC,GAE/C,ITkDgC,2BSjD5B,OAAO2L,GAAsB5L,GACjC,ITiDkC,6BShD9B,OAAO6L,GAAwB7L,EAAOC,GAC1C,ITgD+B,0BS/C3B,OAAO6L,GAAqB9L,EAAOC,GAEvC,KAAKgB,EACD,OAAOc,KACX,QACI,OAAO/B,ImCpGfoN,QlCwNmB,WAAmC,IAAlCpN,EAAiC,uDAAzBhC,GAAciC,EAAW,uCACrD,OAAQA,EAAOe,MAEX,IVtEmC,8BUuE/B,OAAOkM,GAAyBlN,GACpC,IVvEqC,gCUwEjC,OAAOmN,GAA2BnN,EAAOC,EAAOmN,SACpD,IVxEkC,6BUyE9B,OAAOC,GAAwBrN,EAAOC,GAC1C,IVzE8B,yBU0E1B,OAAOgN,GAAqBjN,EAAOC,GAEvC,IVnFoC,+BUoFhC,OAAOsN,GAA0BvN,GACrC,IVpFsC,iCUqFlC,OAAOwN,GAA4BxN,EAAOC,EAAOmN,SACrD,IVrFmC,8BUsF/B,OAAOK,GAAyBzN,EAAOC,GAC3C,IVtF+B,0BUuF3B,OAAOqN,GAAsBtN,EAAOC,GAExC,IVpF6B,wBUqFzB,OAAO6N,GAAoB9N,GAC/B,IVrF+B,0BUsF3B,OAAO+N,GAAsB/N,EAAOC,EAAOyM,WAC/C,IVtF4B,uBUuFxB,OAAOsB,GAAmBhO,EAAOC,GACrC,IVzQyB,oBU0QrB,OAAOgO,GAAgBjO,GAC3B,IV1Q2B,sBU2QvB,OAAOkO,GAAkBlO,EAAOC,GACpC,IV3QwB,mBU4QpB,OAAOkO,GAAenO,EAAOC,GACjC,IV5QyB,oBU6QrB,OAAOmO,GAAgBpO,GAC3B,IV7Q2B,sBU8QvB,OAAOqO,GAAkBrO,EAAOC,EAAO7B,MAC3C,IV9QwB,mBU+QpB,OAAOmQ,GAAevO,EAAOC,GACjC,IVlGJ,qCUmGQ,OAAOyN,GAAgC1N,GAC3C,IVlGJ,uCUmGQ,OAAO2N,GAAkC3N,EAAOC,EAAO4M,uBAC3D,IVlGJ,oCUmGQ,OAAOgB,GAA+B7N,EAAOC,GAEjD,IVnGiC,4BUoG7B,OAAOuO,GAAuBxO,GAClC,IVpGmC,8BUqG/B,OAAOyO,GAAyBzO,EAAOC,GAC3C,IVrGgC,2BUsG5B,OAAOyO,GAAsB1O,EAAOC,GACxC,IVtG+B,0BUuG3B,OAAO0O,GAAqB3O,GAChC,IVvGiC,4BUwG7B,OAAO4O,GAAuB5O,EAAOC,GACzC,IVxG8B,yBUyG1B,OAAO4O,GAAoB7O,EAAOC,GAEtC,KAAKgB,EACD,OAAOc,GAAsB/B,GACjC,QACI,OAAOA,IkCrRfirB,kB/Ba6B,WAAwC,IAAvCjrB,EAAsC,uDAA9B,IAAIhC,IAAeiC,EAAW,uCACpE,OAAQA,EAAOe,MACX,Ib2GgC,2Ba1G5B,OAAOgQ,GAAsBhR,EAAOC,GACxC,Ib2GJ,kCa1GQ,OAAOgR,GAA4BjR,EAAOC,GAC9C,Ib0GiC,4BazG7B,OAAOiR,GAAuBlR,GAClC,IbyGmC,8BaxG/B,OAAOmR,GAAyBnR,GACpC,IbwGgC,2BavG5B,OAAOoR,GAAsBpR,EAAOC,GACxC,IbuGiC,4BatG7B,OAAOoR,GAAuBrR,GAElC,QACI,OAAOA,I+B5Bf0U,UACAwW,UjCqEqB,WAAmC,IAAlClrB,EAAiC,uDAAzBhC,GAAciC,EAAW,uCACvD,OAAQA,EAAOe,MACX,IXiGiC,4BWhG7B,OAAO+O,GAAuB/P,GAClC,IXgGmC,8BW/F/B,OAAOgQ,GAAyBhQ,EAAOC,EAAOkC,UAClD,IX+FgC,2BW9F5B,OAAO8N,GAAsBjQ,EAAOC,GACxC,IX8FgC,2BW7F5B,OAAOiQ,GAAsBlQ,GACjC,IX6FkC,6BW5F9B,OAAOmQ,GAAwBnQ,EAAOC,EAAOmQ,SACjD,IX4F+B,0BW3F3B,OAAOC,GAAqBrQ,EAAOC,GACvC,IX2F8B,yBW1F1B,OAAOqQ,GAAqBtQ,GAChC,IX0FgC,2BWzF5B,OAAOuQ,GAAuBvQ,EAAOC,EAAOoP,YAChD,IXyF6B,wBWxFzB,OAAOmB,GAAoBxQ,EAAOC,GAEtC,KAAKgB,EACD,OAAOc,KACX,QACI,OAAO/B,IiC5FfyQ,chCTyB,WAAmC,IAAlCzQ,EAAiC,uDAAzBhC,GAAciC,EAAW,uCAC3D,OAAQA,EAAOe,MACX,IZ4aiC,4BY3a7B,OAAO0P,GAAwB1Q,GACnC,IZ2amC,8BY1a/B,OAAO2Q,GAA0B3Q,EAAOC,EAAO4E,MACnD,IZ0agC,2BYza5B,OAAO+L,GAAuB5Q,EAAOC,EAAO4E,MAChD,QACI,OAAO7E,IgCCfmrB,iBACAC,8BAaWC,OAVK,CAACrrB,EAAOC,K5CnCL,Y4CqCfA,EAAOe,M5C9CY,gB4C+CnBf,EAAOe,OAEPhB,OAAQsrB,GAELZ,GAAW1qB,EAAOC,I,oBCzC7B,MAAMsrB,GAASC,uBAAa,CAExBC,WAAW,EACXC,MAAM,IAGV,IAAIC,GAEAA,GADA/Q,GACiBgR,sBACbP,GACAQ,+BAEIC,0BAAgBC,KAAOR,MAIdK,sBAAYP,IAGjCW,YAAaL,IACEA,U,qFC5BR,MAQDM,GAAO,CACTC,OAAQ,IACRC,IAAK,KACLC,UAAW,aACXC,SAAU,sBACVC,SAAU,YACVC,aAAc,wBACdC,aAAc,gBACdC,QAAS,WACTC,cAAe,iBACfC,aAAa,iBAAD,OAlBc,aAmB1BC,iBAAiB,iBAAD,OAnBU,YAmBV,WAChBC,gBAAiB,mBACjBC,aAAc,gBACdC,oBAAqB,mBACrBC,uBAAuB,oBAAD,OAvBI,aAwB1BC,gCAAiC,+BACjCC,mCAAmC,+BAAD,OAzBR,aA0B1BC,SAvBa,YAwBbC,iBAAiB,GAAD,OAxBH,YAwBG,YA3BU,aA4B1BC,QAAS,WACTC,aAAc,gBACdC,iBAAkB,oBAClBC,cAAe,iBACfC,sBAAuB,yBAGvBC,MAAO,SACPC,iBAAkB,eAClBC,gBAAiB,mBACjBC,gBAAiB,+BACjBC,eAAgB,kBAChBC,cAAe,WAGfC,iBAzCqB,YA0CrBC,4BAA4B,GAAD,OA1CN,YA0CM,YAC3BC,8BAA8B,GAAD,OA3CR,YA2CQ,cAC7BC,6BAA6B,GAAD,OA5CP,YA4CO,gBAC5BC,2BAA2B,GAAD,OA7CL,YA6CK,cAC1BC,qBAAqB,GAAD,OA9CC,YA8CD,QAGpBC,aA/CiB,YAgDjBC,0BAA0B,GAAD,OAhDR,YAgDQ,iBACzBC,qBAAqB,GAAD,OAjDH,YAiDG,YACpBC,uBAAuB,GAAD,OAlDL,YAkDK,cACtBC,sBAAsB,GAAD,OAnDJ,YAmDI,aACrBC,6BAA6B,GAAD,OApDX,YAoDW,oBAxDF,aAyD1BC,YAAa,WACbC,kBAAmB,iBACnBC,8BAA+B,uBAC/BC,wBAAyB,oBACzBC,2BAA2B,oBAAD,OA7DA,aA8D1BC,oCAAqC,+BACrCC,uCAAuC,+BAAD,OA/DZ,aAgE1BC,+BAAgC,uBAChCC,UAAU,GAAD,OA3DK,UA4DdC,mBAAmB,oBAAD,OAlEQ,aAmE1BC,UA9Dc,SA+DdC,YAAa,eACbC,kBAAkB,GAAD,OAhEH,SAgEG,YACjBC,yBAAyB,GAAD,OAjEV,SAiEU,gBACxBC,iCAAiC,GAAD,OAlElB,SAkEkB,wBAChCC,+BAA+B,GAAD,OAnEhB,SAmEgB,sBAC9BC,mBAAmB,GAAD,OApEJ,SAoEI,aAClBC,cAAc,GAAD,OArEC,SAqED,QACbC,aAAc,YACdC,wBAAyB,uBACzBC,mBAAoB,kBACpBC,oBAAqB,mBACrBC,qBAAsB,oBACtBC,0BAA2B,0BAMxB,SAASC,GAAuBvqB,GACnC,OAAOomB,GAAK0D,+BAA+BzT,QAAQ,MAAOrW,GAGvD,SAASwqB,GAAiBxqB,GAC7B,OAAOomB,GAAKU,aAAazQ,QA3FC,YA2FuBrW,GAG9C,SAASyqB,GAAoBzqB,GAChC,OAAOomB,GAAKW,iBAAiB1Q,QA/FH,YA+F2BrW,GAclD,SAAS0qB,GAA0B1qB,GACtC,OAAOomB,GAAK0C,6BAA6BzS,QA9Gf,YA8GuCrW,GAG9D,SAAS2qB,GAA+B3qB,GAC3C,OAAOomB,GAAKoD,mBAAmBnT,QAlHL,YAkH6BrW,GAe5ComB,UC/HR,MAyBM1rB,GAActC,IAChB,CACH+C,K/CxBoB,e+CyBpB/C,MAAOA,IAIFuC,GAAWtC,IACb,CACH8C,K/C9BiB,Y+C+BjB9C,MAAOA,IAIFwC,GAAUtC,IACZ,CACH4C,KAAMC,EACN7C,KAAMA,IAwCDqyB,GAAa,KACf,CACHzvB,K/CxFmB,gBgD4Bd0vB,GACL,UADKA,GAEJ,YAFIA,GAGF,WAHEA,GAIF,QAyRJ,SAASC,GACZ1yB,EACA2yB,EACAC,GAED,IADCC,EACF,uDADe,GAEb,OAAO1U,KACF2U,KvBpQ0B,gCuBoQA,CACvB9yB,QACA2yB,OACAC,gBAAiBA,EACjBG,YAAaF,IAEhBxU,KAAM2U,GACIA,EAAKpsB,MAEf0X,MAAOla,IACJ,MAAMma,MAAMlD,GAAsBjX,MA+CvC,SAAS6uB,KACZ,OAAO9U,KACF2U,KvBtXuB,qBuBuXvBzU,KAAM2U,IACH9d,GAAMC,SD1UP,CACHpS,K/C3Ce,YgDqXXJ,aAAauwB,QACb/U,KAAMgV,SAAS3zB,QAAQ4zB,OAAvB,cAAiD,OAEpD9U,MAAOla,IACJ,MAAMA,IAwBX,SAASivB,GAAYlzB,GACxB+U,GAAMC,SAAS1S,GAAQtC,IAGpB,SAASmzB,KACZ,OAAOnV,KACFC,IvB1ZqB,mBuB2ZrBC,KAAM2U,IACH9d,GAAMC,SAAS1S,GAAQuwB,EAAKpsB,OACrBosB,EAAKpsB,OAEf0X,MAAOla,IACJ,MAAMA,IAIX,MAAMmvB,GAAyB7yB,GAC3Byd,KACF2U,KvBlaqB,4BuBkaA,CAClBpyB,UAEH2d,KAAM2U,GACIA,EAAKpsB,MAEf0X,MAAOla,IACJ,MAAMA,ICnblB,IAAIovB,GAASC,GAEb,SAASC,KAA2Q,OAA9PA,GAAWC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAI1X,EAAI,EAAGA,EAAI2X,UAAUlb,OAAQuD,IAAK,CAAE,IAAI4X,EAASD,UAAU3X,GAAI,IAAK,IAAI9b,KAAO0zB,EAAcJ,OAAOK,UAAUC,eAAeC,KAAKH,EAAQ1zB,KAAQwzB,EAAOxzB,GAAO0zB,EAAO1zB,IAAY,OAAOwzB,IAA2BM,MAAMC,KAAMN,WAIhT,MAAMO,GAAUC,IACd,IAAI,OACFC,EAAM,MACNC,KACGC,GACDH,EACJ,OAAoB,IAAMI,cAAc,MAAOhB,GAAS,CACtDiB,MAAO,GACPC,OAAQ,GACRC,QAAS,YACTC,KAAM,OACNC,IAAKR,GACJE,GAAQD,EAAqB,IAAME,cAAc,QAAS,KAAMF,GAAS,KAAMhB,KAAYA,GAAuB,IAAMkB,cAAc,SAAU,CACjJM,GAAI,GACJC,GAAI,GACJC,EAAG,GACHJ,KAAM,WACHrB,KAAUA,GAAqB,IAAMiB,cAAc,OAAQ,CAC9DS,EAAG,y2mBACHL,KAAM,eAIJM,GAA0B,IAAMC,WAAW,CAACZ,EAAOM,IAAqB,IAAML,cAAcL,GAASX,GAAS,CAClHa,OAAQQ,GACPN,KACY,IChCX,GDgCW,IC9Bf,SAAS,KAA2Q,OAA9P,GAAWd,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAI1X,EAAI,EAAGA,EAAI2X,UAAUlb,OAAQuD,IAAK,CAAE,IAAI4X,EAASD,UAAU3X,GAAI,IAAK,IAAI9b,KAAO0zB,EAAcJ,OAAOK,UAAUC,eAAeC,KAAKH,EAAQ1zB,KAAQwzB,EAAOxzB,GAAO0zB,EAAO1zB,IAAY,OAAOwzB,IAA2BM,MAAMC,KAAMN,WAIhT,MAAMwB,GAAehB,IACnB,IAAI,OACFC,EAAM,MACNC,KACGC,GACDH,EACJ,OAAoB,IAAMI,cAAc,MAAO,GAAS,CACtDC,MAAO,GACPC,OAAQ,GACRC,QAAS,YACTC,KAAM,OACNC,IAAKR,GACJE,GAAQD,EAAqB,IAAME,cAAc,QAAS,KAAMF,GAAS,KAAM,KAAU,GAAqB,IAAME,cAAc,OAAQ,CAC3Ia,QAAS,GACTJ,EAAG,woBACHL,KAAM,eAIJ,GAA0B,IAAMO,WAAW,CAACZ,EAAOM,IAAqB,IAAML,cAAcY,GAAc,GAAS,CACvHf,OAAQQ,GACPN,KACY,IC5BX,GD4BW,IC1Bf,SAAS,KAA2Q,OAA9P,GAAWd,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAI1X,EAAI,EAAGA,EAAI2X,UAAUlb,OAAQuD,IAAK,CAAE,IAAI4X,EAASD,UAAU3X,GAAI,IAAK,IAAI9b,KAAO0zB,EAAcJ,OAAOK,UAAUC,eAAeC,KAAKH,EAAQ1zB,KAAQwzB,EAAOxzB,GAAO0zB,EAAO1zB,IAAY,OAAOwzB,IAA2BM,MAAMC,KAAMN,WAIhT,MAAM0B,GAAclB,IAClB,IAAI,OACFC,EAAM,MACNC,KACGC,GACDH,EACJ,OAAoB,IAAMI,cAAc,MAAO,GAAS,CACtDC,MAAO,GACPC,OAAQ,GACRC,QAAS,YACTC,KAAM,OACNC,IAAKR,GACJE,GAAQD,EAAqB,IAAME,cAAc,QAAS,KAAMF,GAAS,KAAM,KAAU,GAAqB,IAAME,cAAc,OAAQ,CAC3Ia,QAAS,GACTJ,EAAG,6rBACHL,KAAM,eAIJ,GAA0B,IAAMO,WAAW,CAACZ,EAAOM,IAAqB,IAAML,cAAcc,GAAa,GAAS,CACtHjB,OAAQQ,GACPN,KACY,IC5BXgB,GAAIC,GD4BO,IC1Bf,SAAS,KAA2Q,OAA9P,GAAW/B,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAI1X,EAAI,EAAGA,EAAI2X,UAAUlb,OAAQuD,IAAK,CAAE,IAAI4X,EAASD,UAAU3X,GAAI,IAAK,IAAI9b,KAAO0zB,EAAcJ,OAAOK,UAAUC,eAAeC,KAAKH,EAAQ1zB,KAAQwzB,EAAOxzB,GAAO0zB,EAAO1zB,IAAY,OAAOwzB,IAA2BM,MAAMC,KAAMN,WAIhT,MAAM6B,GAAYrB,IAChB,IAAI,OACFC,EAAM,MACNC,KACGC,GACDH,EACJ,OAAoB,IAAMI,cAAc,MAAO,GAAS,CACtDC,MAAO,GACPC,OAAQ,GACRC,QAAS,YACTC,KAAM,OACNC,IAAKR,GACJE,GAAQD,EAAqB,IAAME,cAAc,QAAS,KAAMF,GAAS,KAAMiB,KAAOA,GAAkB,IAAMf,cAAc,IAAK,CAClIkB,SAAU,eACI,IAAMlB,cAAc,OAAQ,CAC1Ca,QAAS,GACTJ,EAAG,4+BACHL,KAAM,cACFY,KAAUA,GAAqB,IAAMhB,cAAc,OAAQ,KAAmB,IAAMA,cAAc,WAAY,CAClH9sB,GAAI,SACU,IAAM8sB,cAAc,OAAQ,CAC1CS,EAAG,kBACHL,KAAM,eAIJ,GAA0B,IAAMO,WAAW,CAACZ,EAAOM,IAAqB,IAAML,cAAciB,GAAW,GAAS,CACpHpB,OAAQQ,GACPN,KACY,ICnCX,GDmCW,ICjCf,SAAS,KAA2Q,OAA9P,GAAWd,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAI1X,EAAI,EAAGA,EAAI2X,UAAUlb,OAAQuD,IAAK,CAAE,IAAI4X,EAASD,UAAU3X,GAAI,IAAK,IAAI9b,KAAO0zB,EAAcJ,OAAOK,UAAUC,eAAeC,KAAKH,EAAQ1zB,KAAQwzB,EAAOxzB,GAAO0zB,EAAO1zB,IAAY,OAAOwzB,IAA2BM,MAAMC,KAAMN,WAIhT,MAAM+B,GAAevB,IACnB,IAAI,OACFC,EAAM,MACNC,KACGC,GACDH,EACJ,OAAoB,IAAMI,cAAc,MAAO,GAAS,CACtDC,MAAO,GACPC,OAAQ,GACRC,QAAS,YACTC,KAAM,OACNC,IAAKR,GACJE,GAAQD,EAAqB,IAAME,cAAc,QAAS,KAAMF,GAAS,KAAM,KAAU,GAAqB,IAAME,cAAc,OAAQ,CAC3Ia,QAAS,GACTJ,EAAG,8pCACHL,KAAM,eAIJ,GAA0B,IAAMO,WAAW,CAACZ,EAAOM,IAAqB,IAAML,cAAcmB,GAAc,GAAS,CACvHtB,OAAQQ,GACPN,KACY,IC5BX,GD4BW,IC1Bf,SAAS,KAA2Q,OAA9P,GAAWd,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAI1X,EAAI,EAAGA,EAAI2X,UAAUlb,OAAQuD,IAAK,CAAE,IAAI4X,EAASD,UAAU3X,GAAI,IAAK,IAAI9b,KAAO0zB,EAAcJ,OAAOK,UAAUC,eAAeC,KAAKH,EAAQ1zB,KAAQwzB,EAAOxzB,GAAO0zB,EAAO1zB,IAAY,OAAOwzB,IAA2BM,MAAMC,KAAMN,WAIhT,MAAMgC,GAAaxB,IACjB,IAAI,OACFC,EAAM,MACNC,KACGC,GACDH,EACJ,OAAoB,IAAMI,cAAc,MAAO,GAAS,CACtDC,MAAO,GACPC,OAAQ,GACRC,QAAS,YACTC,KAAM,OACNC,IAAKR,GACJE,GAAQD,EAAqB,IAAME,cAAc,QAAS,KAAMF,GAAS,KAAM,KAAU,GAAqB,IAAME,cAAc,OAAQ,CAC3Ia,QAAS,GACTJ,EAAG,yUACHL,KAAM,eAIJ,GAA0B,IAAMO,WAAW,CAACZ,EAAOM,IAAqB,IAAML,cAAcoB,GAAY,GAAS,CACrHvB,OAAQQ,GACPN,KACY,IC5BX,GD4BW,IC1Bf,SAAS,KAA2Q,OAA9P,GAAWd,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAI1X,EAAI,EAAGA,EAAI2X,UAAUlb,OAAQuD,IAAK,CAAE,IAAI4X,EAASD,UAAU3X,GAAI,IAAK,IAAI9b,KAAO0zB,EAAcJ,OAAOK,UAAUC,eAAeC,KAAKH,EAAQ1zB,KAAQwzB,EAAOxzB,GAAO0zB,EAAO1zB,IAAY,OAAOwzB,IAA2BM,MAAMC,KAAMN,WAIhT,MAAMiC,GAAezB,IACnB,IAAI,OACFC,EAAM,MACNC,KACGC,GACDH,EACJ,OAAoB,IAAMI,cAAc,MAAO,GAAS,CACtDC,MAAO,GACPC,OAAQ,GACRC,QAAS,YACTC,KAAM,OACNC,IAAKR,GACJE,GAAQD,EAAqB,IAAME,cAAc,QAAS,KAAMF,GAAS,KAAM,KAAU,GAAqB,IAAME,cAAc,OAAQ,CAC3Ia,QAAS,GACTJ,EAAG,+rBACHL,KAAM,eAIJ,GAA0B,IAAMO,WAAW,CAACZ,EAAOM,IAAqB,IAAML,cAAcqB,GAAc,GAAS,CACvHxB,OAAQQ,GACPN,KACY,IC5BX,GAAI,GD4BO,IC1Bf,SAAS,KAA2Q,OAA9P,GAAWd,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAI1X,EAAI,EAAGA,EAAI2X,UAAUlb,OAAQuD,IAAK,CAAE,IAAI4X,EAASD,UAAU3X,GAAI,IAAK,IAAI9b,KAAO0zB,EAAcJ,OAAOK,UAAUC,eAAeC,KAAKH,EAAQ1zB,KAAQwzB,EAAOxzB,GAAO0zB,EAAO1zB,IAAY,OAAOwzB,IAA2BM,MAAMC,KAAMN,WAIhT,MAAMkC,GAAoB1B,IACxB,IAAI,OACFC,EAAM,MACNC,KACGC,GACDH,EACJ,OAAoB,IAAMI,cAAc,MAAO,GAAS,CACtDC,MAAO,GACPC,OAAQ,GACRC,QAAS,YACTC,KAAM,OACNC,IAAKR,GACJE,GAAQD,EAAqB,IAAME,cAAc,QAAS,KAAMF,GAAS,KAAM,KAAO,GAAkB,IAAME,cAAc,IAAK,CAClIkB,SAAU,eACI,IAAMlB,cAAc,OAAQ,CAC1Ca,QAAS,GACTJ,EAAG,olEACHL,KAAM,cACF,KAAU,GAAqB,IAAMJ,cAAc,OAAQ,KAAmB,IAAMA,cAAc,WAAY,CAClH9sB,GAAI,SACU,IAAM8sB,cAAc,OAAQ,CAC1CS,EAAG,kBACHL,KAAM,eAIJ,GAA0B,IAAMO,WAAW,CAACZ,EAAOM,IAAqB,IAAML,cAAcsB,GAAmB,GAAS,CAC5HzB,OAAQQ,GACPN,KACY,ICnCX,GDmCW,ICjCf,SAAS,KAA2Q,OAA9P,GAAWd,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAI1X,EAAI,EAAGA,EAAI2X,UAAUlb,OAAQuD,IAAK,CAAE,IAAI4X,EAASD,UAAU3X,GAAI,IAAK,IAAI9b,KAAO0zB,EAAcJ,OAAOK,UAAUC,eAAeC,KAAKH,EAAQ1zB,KAAQwzB,EAAOxzB,GAAO0zB,EAAO1zB,IAAY,OAAOwzB,IAA2BM,MAAMC,KAAMN,WAIhT,MAAMmC,GAAgB3B,IACpB,IAAI,OACFC,EAAM,MACNC,KACGC,GACDH,EACJ,OAAoB,IAAMI,cAAc,MAAO,GAAS,CACtDC,MAAO,GACPC,OAAQ,GACRC,QAAS,YACTC,KAAM,OACNC,IAAKR,GACJE,GAAQD,EAAqB,IAAME,cAAc,QAAS,KAAMF,GAAS,KAAM,KAAU,GAAqB,IAAME,cAAc,OAAQ,CAC3Ia,QAAS,GACTJ,EAAG,ogDACHL,KAAM,eAIJ,GAA0B,IAAMO,WAAW,CAACZ,EAAOM,IAAqB,IAAML,cAAcuB,GAAe,GAAS,CACxH1B,OAAQQ,GACPN,KACY,IC5BX,GAAOyB,GD4BI,IC1Bf,SAAS,KAA2Q,OAA9P,GAAWvC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAI1X,EAAI,EAAGA,EAAI2X,UAAUlb,OAAQuD,IAAK,CAAE,IAAI4X,EAASD,UAAU3X,GAAI,IAAK,IAAI9b,KAAO0zB,EAAcJ,OAAOK,UAAUC,eAAeC,KAAKH,EAAQ1zB,KAAQwzB,EAAOxzB,GAAO0zB,EAAO1zB,IAAY,OAAOwzB,IAA2BM,MAAMC,KAAMN,WAIhT,MAAMqC,GAAY7B,IAChB,IAAI,OACFC,EAAM,MACNC,KACGC,GACDH,EACJ,OAAoB,IAAMI,cAAc,MAAO,GAAS,CACtDC,MAAO,GACPC,OAAQ,GACRC,QAAS,YACTC,KAAM,OACNC,IAAKR,GACJE,GAAQD,EAAqB,IAAME,cAAc,QAAS,KAAMF,GAAS,KAAM,KAAU,GAAqB,IAAME,cAAc,OAAQ,CAC3IS,EAAG,4yBACHL,KAAM,aACHoB,KAAWA,GAAsB,IAAMxB,cAAc,OAAQ,CAChES,EAAG,iaACHL,KAAM,eAIJ,GAA0B,IAAMO,WAAW,CAACZ,EAAOM,IAAqB,IAAML,cAAcyB,GAAW,GAAS,CACpH5B,OAAQQ,GACPN,KACY,QC9BX2B,GAAOC,GAAQC,G,kDAEnB,SAAS,KAA2Q,OAA9P,GAAW3C,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAI1X,EAAI,EAAGA,EAAI2X,UAAUlb,OAAQuD,IAAK,CAAE,IAAI4X,EAASD,UAAU3X,GAAI,IAAK,IAAI9b,KAAO0zB,EAAcJ,OAAOK,UAAUC,eAAeC,KAAKH,EAAQ1zB,KAAQwzB,EAAOxzB,GAAO0zB,EAAO1zB,IAAY,OAAOwzB,IAA2BM,MAAMC,KAAMN,WAIhT,MAAMyC,GAAmBjC,IACvB,IAAI,OACFC,EAAM,MACNC,KACGC,GACDH,EACJ,OAAoB,IAAMI,cAAc,MAAO,GAAS,CACtDC,MAAO,GACPC,OAAQ,GACRC,QAAS,YACTC,KAAM,OACNC,IAAKR,GACJE,GAAQD,EAAqB,IAAME,cAAc,QAAS,KAAMF,GAAS,KAAM4B,KAAUA,GAAqB,IAAM1B,cAAc,OAAQ,CAC3I8B,EAAG,EACHC,EAAG,EACH9B,MAAO,GACPC,OAAQ,EACRE,KAAM,aACHuB,KAAWA,GAAsB,IAAM3B,cAAc,OAAQ,CAChE8B,EAAG,EACHC,EAAG,EACH9B,MAAO,EACPC,OAAQ,EACRE,KAAM,aACHwB,KAAWA,GAAsB,IAAM5B,cAAc,OAAQ,CAChE8B,EAAG,EACHC,EAAG,GACH9B,MAAO,EACPC,OAAQ,EACRE,KAAM,eAIJ,GAA0B,IAAMO,WAAW,CAACZ,EAAOM,IAAqB,IAAML,cAAc6B,GAAkB,GAAS,CAC3HhC,OAAQQ,GACPN,KACY,IC1CX,GAAO,GAAQ,GD0CJ,ICxCf,SAAS,KAA2Q,OAA9P,GAAWd,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAI1X,EAAI,EAAGA,EAAI2X,UAAUlb,OAAQuD,IAAK,CAAE,IAAI4X,EAASD,UAAU3X,GAAI,IAAK,IAAI9b,KAAO0zB,EAAcJ,OAAOK,UAAUC,eAAeC,KAAKH,EAAQ1zB,KAAQwzB,EAAOxzB,GAAO0zB,EAAO1zB,IAAY,OAAOwzB,IAA2BM,MAAMC,KAAMN,WAIhT,MAAM4C,GAAcpC,IAClB,IAAI,OACFC,EAAM,MACNC,KACGC,GACDH,EACJ,OAAoB,IAAMI,cAAc,MAAO,GAAS,CACtDC,MAAO,GACPC,OAAQ,GACRC,QAAS,YACTC,KAAM,OACNC,IAAKR,GACJE,GAAQD,EAAqB,IAAME,cAAc,QAAS,KAAMF,GAAS,KAAM,KAAU,GAAqB,IAAME,cAAc,OAAQ,CAC3I8B,EAAG,EACHC,EAAG,EACH9B,MAAO,GACPC,OAAQ,EACRE,KAAM,aACH,KAAW,GAAsB,IAAMJ,cAAc,OAAQ,CAChE8B,EAAG,EACHC,EAAG,EACH9B,MAAO,GACPC,OAAQ,EACRE,KAAM,aACH,KAAW,GAAsB,IAAMJ,cAAc,OAAQ,CAChE8B,EAAG,EACHC,EAAG,GACH9B,MAAO,GACPC,OAAQ,EACRE,KAAM,eAIJ,GAA0B,IAAMO,WAAW,CAACZ,EAAOM,IAAqB,IAAML,cAAcgC,GAAa,GAAS,CACtHnC,OAAQQ,GACPN,KACY,QC1CX,G,wCAEJ,SAAS,KAA2Q,OAA9P,GAAWd,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAI1X,EAAI,EAAGA,EAAI2X,UAAUlb,OAAQuD,IAAK,CAAE,IAAI4X,EAASD,UAAU3X,GAAI,IAAK,IAAI9b,KAAO0zB,EAAcJ,OAAOK,UAAUC,eAAeC,KAAKH,EAAQ1zB,KAAQwzB,EAAOxzB,GAAO0zB,EAAO1zB,IAAY,OAAOwzB,IAA2BM,MAAMC,KAAMN,WAIhT,MAAM6C,GAAYrC,IAChB,IAAI,OACFC,EAAM,MACNC,KACGC,GACDH,EACJ,OAAoB,IAAMI,cAAc,MAAO,GAAS,CACtDC,MAAO,GACPC,OAAQ,GACRC,QAAS,YACTC,KAAM,OACNC,IAAKR,GACJE,GAAQD,EAAqB,IAAME,cAAc,QAAS,KAAMF,GAAS,KAAM,KAAU,GAAqB,IAAME,cAAc,OAAQ,CAC3IS,EAAG,0bACHL,KAAM,eAIJ,GAA0B,IAAMO,WAAW,CAACZ,EAAOM,IAAqB,IAAML,cAAciC,GAAW,GAAS,CACpHpC,OAAQQ,GACPN,KACY,I,OAAA,I,UCIf,MAAMmC,WAA0BC,IAAMC,UAAW,cAAD,yBAgL5CC,qBAAwB5N,IACpBhL,KACK6Y,IrCtMuB,iBqCsMG,CAAEtf,OAAQyR,IACpC9K,KAAM5C,IACH5F,KACAyd,OAEHhV,MAAOre,QAvL4B,KA0L5Cg3B,sBAAyBC,IACrB/Y,KACK6Y,IrC/MwB,kBqC+MG,CAAErK,QAASuK,IACtC7Y,KAAM5C,IACH5F,KACAyd,OAEHhV,MAAOre,QAjM4B,KAoM5Ck3B,kBAAoB,KAChBhZ,KACK6Y,IrCxNoB,eqCyNpB3Y,KAAM5C,IACH5F,KACAyd,OAEHhV,MAAOre,QA3M4B,KA8M5Cm3B,kBAAoB,OA9MwB,KAgN5CC,iBAAmB,IACRjD,KAAKK,MAAMt0B,KAAOi0B,KAAKK,MAAMt0B,KAAKG,WAAa,GAjNd,KAoN5Cg3B,gBAAkB,IACVjO,KACO+K,KAAKK,MAAM8C,EAAE,8BAA+B,cAC5CvO,KACAoL,KAAKoD,eACL1O,KACAsL,KAAKqD,iBACL7O,KACAwL,KAAKsD,gBAGT,GA/NiC,KAkO5CA,cAAgB,IACL9iB,KAAEwJ,IAAIgW,KAAKK,MAAO,6BAA8B,IAnOf,KAsO5CgD,eAAiB,IACN7iB,KAAEwJ,IAAIgW,KAAKK,MAAO,sCAAuC,IAvOxB,KA0O5C+C,aAAe,IACJ5iB,KAAEwJ,IAAIgW,KAAKK,MAAO,gCAAiC,IA3OlB,KA8O5CkD,WAAa,IACFvD,KAAKK,MAAMt0B,MAAOi0B,KAAKK,MAAMt0B,KAAKoB,SAAgB,GA/OjB,KAkP5Cq2B,YAAc,IACHxD,KAAKK,MAAMt0B,MAAOi0B,KAAKK,MAAMt0B,KAAK6jB,UAAiB,GAlP9D6T,SACI,MAAM,EAAEN,EAAF,gBAAKO,EAAL,SAAsBC,EAAtB,SAAgCC,GAAa5D,KAAKK,MAElDwD,EAAgB,UAAM7D,KAAKiD,mBAAX,cAAmCjD,KAAKkD,mBAE9D,OACI,kBAACY,GAAA,EAAD,CACIC,UAAW/D,KAAKK,MAAM0D,WAAa,OACnCrjB,UAAS,iDAA4Csf,KAAKK,MAAM3f,WAChEijB,SAAUA,GAEV,kBAACK,GAAA,EAAD,CAAgBC,IAAI,OACfN,EACG,6BACI,kBAAC,GAAD,CAAYjjB,UAAU,YAAYlN,GAAIkwB,IACtC,0BAAMhjB,UAAU,6DAA6DkI,MAAO,CAAEgb,SAAUA,IAC5F,kBAAC,GAAD,CAAYljB,UAAU,SAAUmjB,IAIxC,0BAAMnjB,UAAU,mDAAmDkI,MAAO,CAAEgb,SAAUA,IAClF,kBAAC,GAAD,CAAYljB,UAAU,SAAUmjB,GAIvCH,GACG,kBAACQ,GAAA,EAAD,CAAqBC,UAAU,SAAS1E,OAAQiE,GAAkBP,EAAE,wBAAyB,iBAGrG,kBAACiB,GAAA,EAAD,CACIC,UAAW,CACPC,aAAc,CACVC,SAAUZ,EACV7f,MAAO,IACP0gB,GAAKhyB,IACM,IACAA,EACHiyB,OAAQ,IACDjyB,EAAKiyB,OACRC,SAAU,OACVC,UAAW,cAO9B3E,KAAK4E,qBACL5E,KAAK6E,uBACL7E,KAAK8E,wBAMtBF,qBACI,ItB+FD,WACH,MAEM74B,EAAOsC,GAFCyS,GAAMoG,YAGpB,QAAKnb,GAIyB,OAAvBA,EAAKg5B,csBvGHC,GACD,OAAO,qCAGX,MAAM,EAAE7B,GAAMnD,KAAKK,MAEnB,OACI,oCACI,kBAAC4E,GAAA,EAAD,CACI5wB,QAAM,EACN6wB,UAAQ,EACRxkB,UAAU,4BAETyiB,EAAE,gBAAiB,QAExB,kBAAC8B,GAAA,EAAD,CACIE,QAASnF,KAAK+C,kBACdriB,UAAS,gCACLkU,KAAgB,cAAgB,eAGnCoL,KAAKoD,iBAMtByB,uBAEI,IADiB7E,KAAKwD,cACRhf,OACV,OAAO,qCAGX,MAAM4gB,EAAkB1Q,KAElB2Q,EAAiBrF,KAAKwD,cAAcluB,IAAI,CAACijB,EAASxQ,IACpD,kBAACkd,GAAA,EAAD,CACIh5B,IAAK,iBAAmB8b,EACxBod,QAAS,IAAMnF,KAAK6C,sBAAsBtK,EAAQ/kB,IAClDkN,UAAU,yBAEV,0BACIA,UACI0kB,GAAmB7M,EAAQ+M,eACrB,cACA,cAGT/M,EAAQnrB,SAKf,EAAE+1B,GAAMnD,KAAKK,MAEnB,OACI,oCACI,kBAAC4E,GAAA,EAAD,CACI5wB,QAAM,EACN6wB,UAAQ,EACRxkB,UAAU,4BAETyiB,EAAE,qBAAsB,cAE5BkC,GAKbP,sBACI,MAAMS,EAAiB/Q,KAEjBgR,EAAgBxF,KAAKuD,aAAajuB,IAAI,CAACgO,EAAQyE,IACjD,kBAACkd,GAAA,EAAD,CACIh5B,IAAK,UAAYqX,EAAO9P,GACxB2xB,QAAS,IAAMnF,KAAK2C,qBAAqBrf,EAAO9P,IAChDkN,UAAU,yBAEV,0BACIA,UACI6kB,GAAkBjiB,EAAOjW,cACnB,cACA,cAGTiW,EAAOlW,SAKd,EAAE+1B,GAAMnD,KAAKK,MAEnB,OACI,oCACI,kBAAC4E,GAAA,EAAD,CACI5wB,QAAM,EACN6wB,UAAQ,EACRxkB,UAAU,4BAETyiB,EAAE,oBAAqB,aAE3BqC,EAEG,kBAACP,GAAA,EAAD,CACIh5B,IAAI,WACJyU,UAAS,gCACLuU,KACM,cACA,cAEVkQ,QAAS,IAAMnF,KAAK2C,qBAAqB,IAP7C,KASOQ,EAAE,4BAA6B,qBAoF3CsC,mBANU93B,IACd,CACH5B,KAAM4B,EAAMe,KAAK3C,OAIV05B,CACXC,aAAgB,SAAhBA,CAA0BlD,KCnR9B,MAAMmD,WAAqBlD,IAAMC,UAAW,cAAD,yBAMvCrN,eAAkBuQ,IACT5F,KAAKK,MAAMwF,cpC6CjB,SAAwBA,EAAYC,GACvC,MAAMC,EF5Cc,mCE4CMlc,QAAQ,iBAAkBgc,GAC9CrzB,EAAO,CAAE1F,SAAUg5B,GAClB/b,KACF6Y,IAAImD,EAAUvzB,GACdyX,KAAM2U,GACIA,EAAKpsB,MAEf0X,MAAOla,IACJ,MAAMA,IoClDVg2B,CAAehG,KAAKK,MAAMwF,WAAYD,GAGtC5F,KAAKK,MAAM4F,eAAeL,KAG9BnC,SACI,MAAM9N,EAAiBqK,KAAKK,MAAMvzB,SAClC,OACI,oCACI,kBAACo5B,GAAA,EAAD,CAASxlB,UAAU,0BACf,0BACIA,UACIiV,IAAmBxO,GAAciC,GAC3B,qBACA,cAEV+b,QAAS,IAAMnF,KAAK3K,eAAelO,GAAciC,KANrD,OAWJ,kBAAC8c,GAAA,EAAD,CAASxlB,UAAU,0BACf,0BACIA,UACIiV,IAAmBxO,GAAcC,GAC3B,qBACA,cAEV+d,QAAS,IAAMnF,KAAK3K,eAAelO,GAAcC,KANrD,UAgBpB,MAOM+e,GAAoB,CACtBF,eClE2Bn5B,IACpB,CACH6B,KhE8BuB,kBgE7BvB7B,cDkEO24B,mBAXU93B,IACd,CACHk4B,WAAYrlB,KAAEwJ,IAAIrc,EAAO,wCAAyC,MAClEb,SAAUa,EAAMb,WAQgBq5B,GAAzBV,CAA4CC,eAAkBC,K,8BE5DtE,SAASS,KAEZ,OADAtlB,GAAMC,SCTC,CACHpS,KlEwciC,8BiE/b9Bob,KACFC,IxC6GoB,kBwC5GpBC,KAAM2U,IACH9d,GAAMC,SCPP,CACHpS,KlEmcmC,8BkElcnC6D,KDK6CosB,EAAKpsB,OACvCosB,EAAKpsB,OAEf0X,MAAOla,IACJ,MAAMnC,EAAeoZ,GAAsBjX,GAE3C,MADA8Q,GAAMC,SCNqB/Q,KAC5B,CACHrB,KlE6bgC,2BkE5bhC9C,MAAOmE,IDGYq2B,CAAuBx4B,IAChCsc,MAAMtc,KEbT,SAASy4B,GAA0BjG,GAC9C,MAAM,EAAE8C,GAAMoD,eACRC,EAAUC,eAOhB,OALsBpG,EAAMjiB,cAAcsoB,MACtC,EAF8B,GAMbpxB,IAAI,CAACqxB,EAAc5e,IACpC,yBACI9b,IAAK,+BAAiC06B,EAAanzB,GACnDkN,UAAU,OAEV,kBAACukB,GAAA,EAAD,CACIE,QAAS,IACLqB,EAAQI,KAAKJ,EAAQI,KAAKhN,GAAKwB,wBAEnC1a,UAAU,mCAEV,kBAACmmB,GAAA,EAAD,CAAKnmB,UAAU,QACX,kBAAComB,GAAA,EAAD,KACI,0BAAMpmB,UAAU,0CACXimB,EAAal1B,WAI1B,kBAACo1B,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,CAAKpmB,UAAU,gCACV9M,KAAO+yB,EAAaI,YAAYlzB,OAAO,eAE5C,kBAACizB,GAAA,EAAD,CAAKpmB,UAAU,uDACVyiB,EAAE,oCAAqC,aAIpD,wBAAIl3B,IAAK,YAAc8b,M,IC7C/B,G,OAEJ,SAAS,KAA2Q,OAA9P,GAAWwX,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAI1X,EAAI,EAAGA,EAAI2X,UAAUlb,OAAQuD,IAAK,CAAE,IAAI4X,EAASD,UAAU3X,GAAI,IAAK,IAAI9b,KAAO0zB,EAAcJ,OAAOK,UAAUC,eAAeC,KAAKH,EAAQ1zB,KAAQwzB,EAAOxzB,GAAO0zB,EAAO1zB,IAAY,OAAOwzB,IAA2BM,MAAMC,KAAMN,WAIhT,MAAMsH,GAAmB9G,IACvB,IAAI,OACFC,EAAM,MACNC,KACGC,GACDH,EACJ,OAAoB,IAAMI,cAAc,MAAO,GAAS,CACtDC,MAAO,GACPC,OAAQ,GACRC,QAAS,YACTC,KAAM,OACNC,IAAKR,GACJE,GAAQD,EAAqB,IAAME,cAAc,QAAS,KAAMF,GAAS,KAAM,KAAU,GAAqB,IAAME,cAAc,OAAQ,CAC3IS,EAAG,ojBACHL,KAAM,eAIJ,GAA0B,IAAMO,WAAW,CAACZ,EAAOM,IAAqB,IAAML,cAAc0G,GAAkB,GAAS,CAC3H7G,OAAQQ,GACPN,KACY,ICLA,SAAS4G,GAAqB5G,GACzC,MAAM,EAAE8C,GAAMoD,eACRnoB,EAAgB8oB,YACjBv5B,GAAUA,EAAMyQ,cAAcA,eAE7BooB,EAAUC,eAEhBU,oBAAU,KACNf,MAED,IA0BH,OACI,kBAACtC,GAAA,EAAD,CACIC,UAAW,OACXrjB,UAAS,0CACTijB,UAAQ,GAER,kBAACK,GAAA,EAAD,CAAgBC,IAAI,OAChB,kBAAC4C,GAAA,EAAD,CAAKnmB,UAAU,sBACX,kBAAComB,GAAA,EAAD,CAAKpmB,UAAU,sBACX,yBAAKA,UAAU,8BACX,kBAAC,GAAD,MAzBUtC,KAC9B,MAAMgpB,EAAuChpB,EATlCipB,OAAO,CAACC,EAAOC,KACF,IAAhBA,EAAIC,QACGF,EAAQ,EAEZA,EACR,GAKH,GAAIF,EAA2B,EAC3B,OAAO,KAKX,OAAIA,EAA2B,GACpB,0BAAM1mB,UAAW+mB,uDAAjB,OAGJ,0BAAM/mB,UANO,6BAMkB0mB,IAcjBM,CAAyBtpB,OAK1C,kBAACgmB,GAAA,EAAD,CACI1jB,UAAU,8BAEV,kBAACukB,GAAA,EAAD,CAAcvkB,UAAU,uBACpB,0BAAMA,UAAU,WAAWyiB,EAAE,gCAAiC,gBAElE,6BACC/kB,GAA0C,IAAzBA,EAAcoG,QAC5B,kBAACygB,GAAA,EAAD,CAAcvkB,UAAU,8BACpB,8BAAOyiB,EAAE,6CAA8C,0BAG/D,kBAACmD,GAAD,CAA2BloB,cAAeA,IAC1C,kBAAC6mB,GAAA,EAAD,CAAcvkB,UAAU,yDACpB,0BACIykB,QAAS,IAAMqB,EAAQI,KAAKhN,GAAKwB,uBACjC1a,UAAU,wCAETtC,EAAcoG,OAAS,GACpB,kBAAC2D,GAAA,EAAD,CAAOC,QAAQ,uCAAf,kBAAkE,CAAEuf,MAAOvpB,EAAcoG,a,OCzErH,MAAMojB,WAAkBnF,IAAMC,UAAW,cAAD,yBACpC/0B,MAAQ,CACJ2V,OAAQ0c,KAAKK,MAAMt0B,KACbi0B,KAAKK,MAAMt0B,KAAKoB,QAAQmI,IAAKgO,GACpBA,EAAOlW,KACRkW,EAAO9P,KAAOwsB,KAAKK,MAAMwH,eACzB,MAER,MAR0B,KAWpCz5B,OAAS,KACL4xB,KAAKK,MAAMjyB,SACX4xB,KAAKK,MAAMmG,QAAQI,KAAKhN,GAAKC,SAbG,KAgBpCiO,kBAAqBC,IACjB,MAAMC,EAAWhI,KAAKK,MAAM4H,SAASD,SAErC,IAAK,MAAME,KAASH,EAAQ,CACxB,MAAMI,EAA4BD,EAAME,eAAiB,kBAACF,EAAME,eAAP,MAA2BF,EAAMvvB,MAC1F,GAAIuvB,EAAMH,OAEN,IAAK,MAAMM,KAAYH,EAAMH,OACzB,GAAIO,aAAUN,EAAU,CAAEO,KAAMF,EAASE,OAAS,CAC9C,MAAMC,EAA+BH,EAASD,eAAiB,kBAACC,EAASD,eAAV,MAA8BC,EAAS1vB,MAEtG,OACI,8BACKwvB,EACCA,GAA6BK,EAAgC,SAAQ,GACtEA,GAMrB,GAAIF,aAAUN,EAAU,CAAEO,KAAML,EAAMK,KAAME,OAAO,IAC/C,OAAON,EAIf,MAAO,IAGX1E,SACI,MAAM,EAAEN,GAAMnD,KAAKK,MACnB,IAAIqI,EAAiB1I,KAAK8H,kBAAkB9H,KAAKK,MAAM0H,QACnD1zB,EAAU,8BACTq0B,GAUL,OARI1I,KAAKK,MAAMvxB,eACXuF,EAAU,8BACLq0B,EACA,SACA1I,KAAKK,MAAMvxB,eAKhB,kBAAC65B,GAAA,EAAD,CAAQC,OAAK,EAACC,OAAO,MACjB,yBAAKnoB,UAAU,6CACTsf,KAAKK,MAAMyI,SAML,kBAAC,GAAD,CACIpoB,UAAU,GACVykB,QAASnF,KAAKK,MAAM0I,kBAP5B,kBAAC,GAAD,CACIroB,UAAU,GACVykB,QAASnF,KAAKK,MAAM0I,mBAUhC,yBAAKroB,UAAU,oBACVrM,GAEL,kBAAC20B,GAAA,EAAD,CAAKtoB,UAAU,mDACV8T,MACG,kBAACyU,GAAA,EAAD,CAASvoB,UAAU,QACf,kBAAC,GAAD,OAGR,kBAACuoB,GAAA,EAAD,CAASvoB,UAAU,IACf,kBAAC,GAAD,CAAmBijB,UAAQ,EAACC,SAAS,QAAQljB,UAAU,6BAA6BgjB,gBAAgB,2BAEvGlP,MACG,kBAACyU,GAAA,EAAD,CAASvoB,UAAU,gBACf,kBAAC,GAAD,OAGR,kBAACuoB,GAAA,EAAD,KACI,kBAAC/C,GAAA,EAAD,CACIgD,GAAItP,GAAKC,OACTsL,QAAStG,GACTne,UAAU,qDAEV,kBAAC,GAAD,CAAQlN,GAAG,uBAAuB,0BAAMkN,UAAU,0BAA0ByiB,EAAE,gBAAiB,kBAC/F,kBAACe,GAAA,EAAD,CAAqBC,UAAU,SAAS1E,OAAO,sBAAsB0D,EAAE,gBAAiB,uBAyBrGgG,IChJX,GAAO,GDgJIA,gBACX1D,YAjBqB93B,IACd,CACH5B,KAAM4B,EAAMe,KAAK3C,KAAO4B,EAAMe,KAAK3C,KAAO,GAC1C87B,eAAgBl6B,EAAMe,KAAK3C,KACrB4B,EAAMe,KAAK3C,KAAKipB,iBAChB,KACNoU,WAAYz7B,EAAMe,KAAK3C,KAEnB4B,EAAMe,KAAK3C,KAAKoB,QAAQmI,IAAKgO,IACzB,GAAIA,EAAOjW,cAAe,OAAOiW,EAAOlW,OAE1C,KACN0B,aAAcnB,EAAM8qB,WAAW3pB,eAKnC22B,CAAyBC,aAAgB,SAAhBA,CAA0BkC,M,oBC/IvD,SAAS,KAA2Q,OAA9P,GAAWrI,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAI1X,EAAI,EAAGA,EAAI2X,UAAUlb,OAAQuD,IAAK,CAAE,IAAI4X,EAASD,UAAU3X,GAAI,IAAK,IAAI9b,KAAO0zB,EAAcJ,OAAOK,UAAUC,eAAeC,KAAKH,EAAQ1zB,KAAQwzB,EAAOxzB,GAAO0zB,EAAO1zB,IAAY,OAAOwzB,IAA2BM,MAAMC,KAAMN,WAIhT,MAAM2J,GAAiBnJ,IACrB,IAAI,OACFC,EAAM,MACNC,KACGC,GACDH,EACJ,OAAoB,IAAMI,cAAc,MAAO,GAAS,CACtDC,MAAO,GACPC,OAAQ,GACRC,QAAS,YACTC,KAAM,OACNC,IAAKR,GACJE,GAAQD,EAAqB,IAAME,cAAc,QAAS,KAAMF,GAAS,KAAM,KAAU,GAAqB,IAAME,cAAc,OAAQ,CAC3IC,MAAO,GACPC,OAAQ,GACR8I,GAAI,EACJ5I,KAAM,aACH,KAAU,GAAqB,IAAMJ,cAAc,OAAQ,CAC9DiJ,SAAU,UACVC,SAAU,UACVzI,EAAG,2ZACHL,KAAM,eAIJ,GAA0B,IAAMO,WAAW,CAACZ,EAAOM,IAAqB,IAAML,cAAc+I,GAAgB,GAAS,CACzHlJ,OAAQQ,GACPN,KACY,IClCX,GAAO,GDkCI,IChCf,SAAS,KAA2Q,OAA9P,GAAWd,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAI1X,EAAI,EAAGA,EAAI2X,UAAUlb,OAAQuD,IAAK,CAAE,IAAI4X,EAASD,UAAU3X,GAAI,IAAK,IAAI9b,KAAO0zB,EAAcJ,OAAOK,UAAUC,eAAeC,KAAKH,EAAQ1zB,KAAQwzB,EAAOxzB,GAAO0zB,EAAO1zB,IAAY,OAAOwzB,IAA2BM,MAAMC,KAAMN,WAIhT,MAAM+J,GAAoBvJ,IACxB,IAAI,OACFC,EAAM,MACNC,KACGC,GACDH,EACJ,OAAoB,IAAMI,cAAc,MAAO,GAAS,CACtDC,MAAO,GACPC,OAAQ,GACRC,QAAS,YACTC,KAAM,OACNC,IAAKR,GACJE,GAAQD,EAAqB,IAAME,cAAc,QAAS,KAAMF,GAAS,KAAM,KAAU,GAAqB,IAAME,cAAc,OAAQ,CAC3IC,MAAO,GACPC,OAAQ,GACR8I,GAAI,EACJ5I,KAAM,aACH,KAAU,GAAqB,IAAMJ,cAAc,OAAQ,CAC9DS,EAAG,iFACH2I,OAAQ,UACRC,YAAa,IACbC,cAAe,aAIb,GAA0B,IAAM3I,WAAW,CAACZ,EAAOM,IAAqB,IAAML,cAAcmJ,GAAmB,GAAS,CAC5HtJ,OAAQQ,GACPN,KACY,IClCX,GAAO,GDkCI,IChCf,SAAS,KAA2Q,OAA9P,GAAWd,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAI1X,EAAI,EAAGA,EAAI2X,UAAUlb,OAAQuD,IAAK,CAAE,IAAI4X,EAASD,UAAU3X,GAAI,IAAK,IAAI9b,KAAO0zB,EAAcJ,OAAOK,UAAUC,eAAeC,KAAKH,EAAQ1zB,KAAQwzB,EAAOxzB,GAAO0zB,EAAO1zB,IAAY,OAAOwzB,IAA2BM,MAAMC,KAAMN,WAIhT,MAAMmK,GAAkB3J,IACtB,IAAI,OACFC,EAAM,MACNC,KACGC,GACDH,EACJ,OAAoB,IAAMI,cAAc,MAAO,GAAS,CACtDC,MAAO,GACPC,OAAQ,GACRC,QAAS,YACTC,KAAM,OACNC,IAAKR,GACJE,GAAQD,EAAqB,IAAME,cAAc,QAAS,KAAMF,GAAS,KAAM,KAAU,GAAqB,IAAME,cAAc,OAAQ,CAC3IC,MAAO,GACPC,OAAQ,GACR8I,GAAI,EACJ5I,KAAM,aACH,KAAU,GAAqB,IAAMJ,cAAc,OAAQ,CAC9DiJ,SAAU,UACVC,SAAU,UACVzI,EAAG,6ZACHL,KAAM,eAIJ,GAA0B,IAAMO,WAAW,CAACZ,EAAOM,IAAqB,IAAML,cAAcuJ,GAAiB,GAAS,CAC1H1J,OAAQQ,GACPN,KACY,I,OCtBf,MAAMyJ,GAAYzJ,IACd,OAAQA,EAAMnhB,WACV,KAAKA,GAAUc,aACX,OAAO,kBAAC,GAAD,CAAaU,UAAW2f,EAAM3f,YACzC,KAAKxB,GAAUoB,WACX,OAAO,kBAAC,GAAD,CAAWI,UAAW2f,EAAM3f,YACvC,QACI,OAAO,kBAAC,GAAD,CAAUA,UAAW2f,EAAM3f,cAI9C,MAAMqpB,WAActH,IAAMC,UAOtBe,SACI,OACI,oCAEI,kBAACuG,GAAA,EAAD,CAAMtpB,UAAS,qBAAgBb,KAAhB,YAA0CmgB,KAAKK,MAAM3f,YAChE,kBAACupB,GAAA,EAAD,CAAUvpB,UAAU,wCAChB,kBAACmmB,GAAA,EAAD,CAAKnmB,UAAU,4BACX,kBAAComB,GAAA,EAAD,CAAKpmB,UAAU,uBACX,kBAACopB,GAAD,CAAW5qB,UAAW8gB,KAAKK,MAAM1xB,QAErC,kBAACm4B,GAAA,EAAD,CAAKpmB,UAAU,iBACVsf,KAAKK,MAAMnrB,cAU7B60B,U,OCYAtE,mBANS93B,IACb,CACH0U,OAAQ1U,EAAM0U,OAAOT,aAId6jB,CApDCpF,IACZ,IAAI6J,EAAiB,GACrB,MAAM7nB,EAASge,EAAM8J,aAAe9J,EAAM8J,aAAe9J,EAAMhe,OAE/D,IAAK,MAAMzB,KAASyB,EACZge,EAAM+J,YAAczpB,GAASC,IAI7Byf,EAAMgK,cACNhK,EAAMgK,aAAa7lB,SAClB6b,EAAMgK,aAAaloB,SAASvB,EAAMzB,QAIvC+qB,EAAetD,KAAKhmB,GAGxB,MAAM0pB,EAAqBJ,EAAe50B,IAAI,CAACsL,EAAO2pB,IAE9C,kBAAC,GAAD,eACIt+B,IAAKs+B,GACD3pB,KAOhB,OACI,kBAACimB,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,CAAKpmB,UAAS,sBAAiB2f,EAAM3f,WAAa,KAC7C4pB,M,iBCEF5E,uBAjCf,YAAkC,IAAlB,SAAE8E,EAAF,EAAYrH,GAAK,EAC7B,MAAMjuB,EACF,kBAAC2xB,GAAA,EAAD,CAAKnmB,UAAU,6CACX,kBAAComB,GAAA,EAAD,CAAK2D,GAAG,OAAO/pB,UAAU,QACrB,uBACIgqB,KAAMvH,EAAE,iCAAkC,6DAC1C1D,OAAO,SACPkL,IAAI,uBAEJ,kBAAC,GAAD,MACCxH,EAAE,iCAAkC,oCAG7C,kBAAC2D,GAAA,EAAD,CAAK2D,GAAG,OAAO/pB,UAAU,QACrB,kBAAC,KAAD,CAASwoB,GAAItP,GAAK6B,gBAAgB,kBAAC,GAAD,MAAwB0H,EAAE,4BAA6B,0BAOrG,OACI,oCACI,4BAAQziB,UAAU,kBACbxL,GAEL,4BAAQwL,UAAU,iBACbxL,O,qBCVF01B,OAxBa,IAEpB,kBAAC,KAAD,CACI3C,SAAS,SACT4C,WAAW,aACXC,cAAc,oBACdC,iBAAiB,qBACjBC,WAAW,iBACXpiB,MAAO,CAAEqiB,WAAY,WACrBC,YAAa,CAAEC,MAAO,QAASF,WAAY,UAAWG,SAAU,QAChEC,QAAS,GACTC,SAAU,IAAMC,QAAQC,IAAI,0BAC5BC,SAAS,GAET,yBAAK/qB,UAAU,0BAAf,gFAC4E,IACxE,0BAAMA,UAAU,0BAAhB,oFACyE,kBAAC,KAAD,CAAMwoB,GAAItP,GAAK8B,eAAf,sBADzE,OCchB,MAAMgQ,GAA2BC,OAAOC,WAAP,uBAC3BC,GAAwBF,OAAOC,WAAP,sBAE9B,MAAME,WAAerJ,IAAMC,UACvBqJ,YAAY1L,GACR2L,MAAM3L,GADS,KAiDnB4L,cAAgB,KACZjM,KAAKkM,SAAS,CACVC,mBAAmBN,GAAsBO,UAElCpM,KAAKryB,MAAMw+B,iBAClBE,aAAcrM,KAAKryB,MAAM0+B,eAtDd,KA0DnBC,gBAAkB,MACmB,IAA7BtM,KAAKryB,MAAM4+B,eACXvM,KAAKkM,SAAS,CAAEG,aAAa,KA5DlB,KAgEnBG,YAAeC,IACX,MAAM,SAAEzE,GAAahI,KAAKK,MAAM4H,SAChC,QAAKD,IACEA,IAAayE,GAASzE,EAAS7lB,SAASsqB,KAjE/CzM,KAAKryB,MAAQ,CACT4+B,cAAeb,GAAyBU,QACxCC,aAAa,EACbF,kBAAkB,GAGtBnM,KAAK0M,kBAAoB1M,KAAK0M,kBAAkBC,KAAK3M,MACrDA,KAAK4M,iBAAmB5M,KAAK4M,iBAAiBD,KAAK3M,MAGvD6M,oBACIlrB,GAAwBqe,KAAKK,MAAM4H,SAASD,UAGhD8E,qBACIpB,GAAyBqB,YAAY/M,KAAK0M,mBAC1Cb,GAAsBkB,YAAY/M,KAAK0M,mBAG3CM,uBACItB,GAAyBuB,eAAejN,KAAK0M,mBAC7Cb,GAAsBoB,eAAejN,KAAK0M,mBAG9CE,iBAAiBpuB,GACbwhB,KAAKkM,SAAS,CAAEG,YAAa7tB,IAGjCkuB,oBACI1M,KAAKkM,SAAS,CACVG,aAAa,EACbF,mBAAmBN,GAAsBO,UAElCpM,KAAKryB,MAAMw+B,iBAClBI,cAAeV,GAAsBO,UAI7Cc,mBAAmBC,GACXA,EAAUlF,SAASD,WAAahI,KAAKK,MAAM4H,SAASD,WACpDrmB,GAAwBqe,KAAKK,MAAM4H,SAASD,UAC5ChI,KAAKK,MAAMje,4BACP4d,KAAKK,MAAM4H,SAASD,WA0BhCvE,SACI,MAAM,EAAEN,GAAMnD,KAAKK,MACnB,OACI,6BACI,kBAAC,KAAD,CACI+M,QACI,oCACI,4BACI1sB,UACIsf,KAAKryB,MAAMw+B,iBACL,6BACA,MAGV,kBAAC,GAAD,MACEnM,KAAKryB,MAAMw+B,iBAIT,KAHA,8BACKhJ,EAAE,gBAAiB,qBAK/BnD,KAAKqN,cAEN,kBAACrE,GAAA,EAAD,CAAKtoB,UAAU,2BAA2B4sB,QAAM,GAC5C,kBAACrE,GAAA,EAAD,CAASvoB,UAAU,mCACf,kBAAC,GAAD,CAAmBqjB,UAAU,QAAQH,SAAS,WAEjDpP,MACG,kBAACyU,GAAA,EAAD,CAASvoB,UAAU,iDACf,kBAAC,GAAD,OAGR,kBAACuoB,GAAA,EAAD,CAASvoB,UAAU,cACf,kBAAC,KAAD,CACIwoB,GAAItP,GAAKC,OACTsL,QAAStG,GACTne,UAAU,0BAEV,kBAAC,GAAD,MACA,0BAAMA,UAAU,aACXyiB,EAAE,gBAAiB,sBAO5C3kB,KAAMwhB,KAAKryB,MAAM0+B,YACjBkB,OAAQvN,KAAKryB,MAAM4+B,cACnBiB,UAAWxN,KAAK4M,iBAChBa,QAAQ,EACRC,iBACI1N,KAAKryB,MAAMw+B,iBACL,4BACA,UAEV1H,OAAQ,CACJ2I,QAAS,CAAEO,OAAQ,KACnBlC,QAAS,CAAEkC,OAAQ,KACnBC,WAAY,CAAED,OAAQ,OAG1B,yBAAKn6B,GAAG,WACJ,kBAAC,GAAD,CACIu1B,gBAAiB/I,KAAKiM,cACtBnD,SAAU9I,KAAKryB,MAAM0+B,YACrBtE,OAAQ/H,KAAKK,MAAM0H,SAEvB,yBAAKrnB,UAAU,gCACX,kBAAC,GAAD,CAAQ2pB,aAAcrK,KAAKK,MAAMxe,eAEhC2S,MACGwL,KAAKK,MAAMt0B,MACXi0B,KAAKK,MAAMt0B,KAAKU,WAChBuzB,KAAKK,MAAMt0B,KAAKU,UAAUgoB,aAC1B,oCACKuL,KAAKK,MAAMmK,SACZ,kBAAC,GAAD,OAKP9V,MACGsL,KAAKK,MAAMt0B,MACXi0B,KAAKK,MAAMt0B,KAAK4oB,mBAChBqL,KAAKK,MAAMt0B,KAAK4oB,kBAAkBF,aAClCuL,KAAKK,MAAMmK,SAEd5V,MAAiBoL,KAAKK,MAAMmK,YAIzC,kBAACqD,GAAD,OAKZR,cACI,OAAIzY,KACOoL,KAAK8N,mBAEZpZ,KACOsL,KAAK+N,sBAEZvZ,KACOwL,KAAKgO,qBAMpBA,oBACI,MAAM,EAAE7K,GAAMnD,KAAKK,MACnB,OACI,kBAAC2I,GAAA,EAAD,CAAKtoB,UAAU,cAAc4sB,QAAM,GAC/B,kBAACrE,GAAA,EAAD,KACI,kBAAC,KAAD,CACIR,OAAK,EACLS,GAAItP,GAAKG,UACToL,QAASnF,KAAKsM,gBACd5rB,UAAU,gBAEV,kBAAC,GAAD,MACCsf,KAAKryB,MAAMw+B,iBAAmB,KAC3B,0BAAMzrB,UAAU,aACXyiB,EAAE,oBAAqB,cAKxC,kBAAC8F,GAAA,EAAD,KACI,kBAAC,KAAD,CACIC,GAAItP,GAAKK,SACTkL,QAASnF,KAAKsM,gBACd5rB,UAAU,gBAEV,kBAAC,GAAD,MACCsf,KAAKryB,MAAMw+B,iBAAmB,KAC3B,0BAAMzrB,UAAU,aACXyiB,EAAE,mBAAoB,eAKvC,kBAAC8F,GAAA,EAAD,KACI,kBAAC,KAAD,CACIC,GAAItP,GAAKS,cACT8K,QAASnF,KAAKsM,gBACd2B,SAAU,IAAMjO,KAAKwM,YAAY5S,GAAKQ,SACtC1Z,UAAU,gBAEV,kBAAC,GAAD,MACCsf,KAAKryB,MAAMw+B,iBAAmB,KAC3B,0BAAMzrB,UAAU,aACXyiB,EAAE,sBAKnB,kBAAC8F,GAAA,EAAD,KACI,kBAAC,KAAD,CACIC,GAAItP,GAAKkB,SACTqK,QAASnF,KAAKsM,gBACd5rB,UAAU,gBAEV,kBAAC,GAAD,MACCsf,KAAKryB,MAAMw+B,iBAAmB,KAC3B,0BAAMzrB,UAAU,aACXyiB,EAAE,mBAAoB,YAKvC,kBAAC8F,GAAA,EAAD,KACI,kBAAC,KAAD,CACIC,GAAItP,GAAKqB,aACTkK,QAASnF,KAAKsM,gBACd2B,SAAU,IAAMjO,KAAKwM,YAAY5S,GAAKoB,SACtCta,UAAU,gBAEV,kBAAC,GAAD,MACCsf,KAAKryB,MAAMw+B,iBAAmB,KAC3B,0BAAMzrB,UAAU,aACXyiB,EAAE,kBAAmB,eASlD4K,qBACI,MAAM,EAAE5K,GAAMnD,KAAKK,MACnB,OACI,kBAAC2I,GAAA,EAAD,CAAKtoB,UAAU,cAAc4sB,QAAM,GAC/B,kBAACrE,GAAA,EAAD,KACI,kBAAC,KAAD,CACIC,GAAItP,GAAKgC,4BACTuJ,QAASnF,KAAKsM,gBACd2B,SAAU,IAAMjO,KAAKwM,YAAY5S,GAAK+B,kBACtCjb,UAAU,gBAEV,kBAAC,GAAD,MACCsf,KAAKryB,MAAMw+B,iBAAmB,KAC3B,0BAAMzrB,UAAU,aACXyiB,EACG,0BACA,0BAMpB,kBAAC8F,GAAA,EAAD,KACI,kBAAC,KAAD,CACIC,GAAItP,GAAKqB,aACTkK,QAASnF,KAAKsM,gBACd2B,SAAU,IAAMjO,KAAKwM,YAAY5S,GAAKoB,SACtCta,UAAU,gBAEV,kBAAC,GAAD,MACCsf,KAAKryB,MAAMw+B,iBAAmB,KAC3B,0BAAMzrB,UAAU,aACXyiB,EAAE,kBAAmB,eASlD2K,mBACI,MAAM,EAAE3K,GAAMnD,KAAKK,MACb6N,EAAa,CACf,CACIC,MAAOvU,GAAKsC,0BACZkS,YAAaxU,GAAKqC,aAClBjtB,KAAMm0B,EAAE,2BAA4B,uBACpCkL,KAAM,kBAAC,GAAD,OAEV,CACIF,MAAOvU,GAAK4C,kBACZ4R,YAAaxU,GAAK2C,YAClBvtB,KAAMm0B,EAAE,mBACRkL,KAAM,kBAAC,GAAD,OAEV,CACIF,MAAOvU,GAAKmD,UACZqR,YAAaxU,GAAKmD,UAClB/tB,KAAMm0B,EAAE,gBAAiB,kBACzBkL,KAAM,kBAAC,GAAD,OAEV,CACIF,MAAOvU,GAAKuD,kBACZiR,YAAaxU,GAAKqD,UAClBjuB,KAAMm0B,EAAE,gBAAiB,aACzBkL,KAAM,kBAAC,GAAD,OAEV,CACIF,MAAOvU,GAAKsD,YACZkR,YAAaxU,GAAKsD,YAClBluB,KAAMm0B,EAAE,kBAAmB,WAC3BkL,KAAM,kBAAC,GAAD,OAEV,CACIF,MAAOvU,GAAK8D,wBACZ0Q,YAAaxU,GAAK6D,aAClBzuB,KAAMm0B,EAAE,mBAAoB,UAC5BkL,KAAM,kBAAC,GAAD,QAGd,OACI,kBAACrF,GAAA,EAAD,CAAKtoB,UAAU,cAAc4sB,QAAM,GAC9BY,EAAW54B,IAAI,CAAC,EAAoCi1B,KAArC,IAAC,MAAE4D,EAAF,YAASC,EAAT,KAAsBp/B,EAAtB,KAA4Bq/B,GAA7B,SACZrO,KAAKsO,cAAcH,EAAOC,EAAap/B,EAAMq/B,MAM7DC,cAAcH,EAAOC,EAAap/B,EAAMq/B,GACpC,OACI,kBAACpF,GAAA,EAAD,CAASh9B,IAAKkiC,EAAQn/B,GAClB,kBAAC,KAAD,CACIk6B,GAAIiF,EACJhJ,QAASnF,KAAKsM,gBACd2B,SAAU,IAAMjO,KAAKwM,YAAY4B,GACjC1tB,UAAU,gBAET2tB,GAAc,kBAAC,GAAD,MACdrO,KAAKryB,MAAMw+B,iBAAmB,KAC3B,0BAAMzrB,UAAU,aAAa1R,MAetCm6B,oBACX1D,YARqB93B,IACd,CACHkU,aAAclU,EAAM0U,OAAOR,aAC3B9V,KAAM4B,EAAMe,KAAK3C,OAKI,CAAEqW,4BhElXY,WAAgB,IAAD,uBAAX3C,EAAW,yBAAXA,EAAW,gBACtD,MAAO,CACH9Q,KdJsC,iCcKtC8Q,YgE+WJgmB,CACIC,aAAgB,SAAhBA,CAA0BoG,MC7ZlC,MAAMyC,WAAqB9L,IAAMC,UAC7Be,SACI,OACI,yBAAKjwB,GAAG,UAAUkN,UAAU,gBACxB,yBAAKA,UAAU,0CACX,oCACKsf,KAAKK,MAAMmK,SACZ,kBAAC,GAAD,MACA,kBAACqD,GAAD,UAQTU,ICvBX,GAAO,GAAO,GDuBHA,M,iBCrBf,SAAS,KAA2Q,OAA9P,GAAWhP,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAI1X,EAAI,EAAGA,EAAI2X,UAAUlb,OAAQuD,IAAK,CAAE,IAAI4X,EAASD,UAAU3X,GAAI,IAAK,IAAI9b,KAAO0zB,EAAcJ,OAAOK,UAAUC,eAAeC,KAAKH,EAAQ1zB,KAAQwzB,EAAOxzB,GAAO0zB,EAAO1zB,IAAY,OAAOwzB,IAA2BM,MAAMC,KAAMN,WAIhT,MAAM8O,GAAUtO,IACd,IAAI,OACFC,EAAM,MACNC,KACGC,GACDH,EACJ,OAAoB,IAAMI,cAAc,MAAO,GAAS,CACtDC,MAAO,GACPC,OAAQ,GACRC,QAAS,YACTC,KAAM,OACNC,IAAKR,GACJE,GAAQD,EAAqB,IAAME,cAAc,QAAS,KAAMF,GAAS,KAAM,KAAU,GAAqB,IAAME,cAAc,OAAQ,CAC3IC,MAAO,GACPC,OAAQ,GACR8I,GAAI,EACJ5I,KAAM,aACH,KAAU,GAAqB,IAAMJ,cAAc,OAAQ,CAC9DS,EAAG,WACH2I,OAAQ,UACRC,YAAa,EACbC,cAAe,WACZ,KAAW,GAAsB,IAAMtJ,cAAc,OAAQ,CAChES,EAAG,cACH2I,OAAQ,UACRC,YAAa,EACbC,cAAe,aAIb,GAA0B,IAAM3I,WAAW,CAACZ,EAAOM,IAAqB,IAAML,cAAckO,GAAS,GAAS,CAClHrO,OAAQQ,GACPN,KACY,Q,gBClCR,MAAMoO,GACA,UADAA,GAEH,OAFGA,GAGA,UAHAA,GAIA,UAJAA,GAKF,QAGX,MAAMC,WAAmBjM,IAAMC,UAa3BiM,qBACI,MAAMhgC,EAAOqxB,KAAKK,MAAM1xB,KACxB,MAAM,eAAN,OAAsBigC,OAAOjgC,GAAM+gB,cAAnC,oBAA4DsQ,KAAKK,MAAM3f,WAG3E+iB,SACI,QAAKzD,KAAKK,MAAMlS,QAKZ,yBAAKzN,UAAWsf,KAAK2O,qBAAsB/lB,MAAOoX,KAAKK,MAAMzX,OACzD,8BACKoX,KAAKK,MAAMlS,UA1B1BugB,GAQKG,aAAe,CAClB1gB,OAAQ,GACRvF,MAAO,IAuBA8lB,UC9CR,MAAMI,GAAe,CACxBC,YAAa,cACbC,UAAW,YACXC,YAAa,cACbC,UAAW,YACXC,SAAU,YAGDC,GAAkB,CAC3B,CAACN,GAAaC,aAAc,CACxBM,YAAa,UACbC,WAAY,QAEhB,CAACR,GAAaE,WAAY,CACtBK,YAAa,UACbC,WAAY,WAEhB,CAACR,GAAaG,aAAc,CACxBI,YAAa,OACbC,WAAY,WAEhB,CAACR,GAAaI,WAAY,CACtBG,YAAa,UACbC,WAAY,WAEhB,CAACR,GAAaK,UAAW,CACrBE,YAAa,QACbC,WAAY,SAIb,SAASC,GAAkBC,GAAiC,IAApBC,EAAmB,wDAC9D,MAAMC,EAAYD,EAAY,aAAe,cAC7C,OAAOL,GAAgBI,IAAgBJ,GAAgBI,GAAaE,G,cC5BxE,SAASC,GAActP,GACnB,OACI,kBAACwG,GAAA,EAAD,CAAKnmB,UAAU,0CACX,kBAAComB,GAAA,EAAD,CAAKpmB,UAAU,YACX,kBAAC,cAAD,eACIyqB,MAAO,UACPr/B,QAASu0B,EAAMv0B,SACXu0B,EAAMuP,eAa9BD,GAAcd,aAAe,CAEzBe,WAAY,GACZ9jC,SAAS,GAGE6jC,UCXR,SAASE,GAA2Bp8B,GACvC,OAAOG,KAAOH,EAjB2B,WAoBtC,SAASq8B,GACZC,EACAC,GAED,IADCC,EACF,uDADc,QAEZ,MAAMC,EAAct8B,KAAOm8B,GAC3B,IAAKG,EAAYC,UACb,MAAMhmB,MAAM,yCAEhB,MAAMimB,EAAex8B,KAAOo8B,GAC5B,IAAKI,EAAaD,UACd,MAAMhmB,MAAM,0CAGhB,OAAOimB,EAAaC,cAAcH,EAAaD,GAG5C,SAASK,GACZ39B,EACAC,GAED,IADCiB,EACF,uDAxC+B,YAyC7B,MAAM08B,EAAa38B,KAAOjB,GACpB69B,EAAW58B,KAAOhB,GAElB69B,EAAUF,EAAWJ,UACvBI,EAAW18B,OAAOA,GAElB,kBAACsU,GAAA,EAAD,CAAOC,QAAQ,mCAAf,SAEEsoB,EAAQF,EAASL,UACnBK,EAAS38B,OAAOA,GAEhB,kBAACsU,GAAA,EAAD,CAAOC,QAAQ,iCAAf,SAGJ,OACI,6BACKqoB,EADL,MACiBC,GC7BzB,MAAMC,WAAkBlO,IAAMC,UAC1BmK,oBAEQzY,OCzBRtT,GAAMC,SCRC,CACHpS,KvF0MiC,4BuFzMjC7C,SAAS,IDONie,KACFC,I7DyGsB,8B6DxGtBC,KAAK2U,IACF9d,GAAMC,SCLP,CACHpS,KvFoMmC,8BuFnMnCmB,SDG4C8uB,EAAKpsB,SAEhD0X,MAAMla,IACH8Q,GAAMC,SCFoB/Q,KAC3B,CACHrB,KvF8LgC,2BuF7LhC9C,MAAOmE,IDDY4N,CAAsB5N,MAK7C8Q,GAAMC,SCCC,CACHpS,KvFwLgC,2BuFvLhC7C,SAAS,IDFNie,KACFC,I7D8FqB,6B6D7FrBC,KAAK2U,IACF9d,GAAMC,SCIP,CACHpS,KvFkLkC,6BuFjLlCoP,QDN2C6gB,EAAKpsB,SAE/C0X,MAAMla,IACH8Q,GAAMC,SCOmB/Q,KAC1B,CACHrB,KvF4K+B,0BuF3K/B9C,MAAOmE,IDVYgO,CAAqBhO,MAK5C8Q,GAAMC,SCUC,CACHpS,KvFsK8B,yBuFrK9B7C,SAAS,IDXNie,KACFC,I7DmFiB,yB6DlFjBC,KAAK2U,IACF9d,GAAMC,SCaP,CACHpS,KvFgKgC,2BuF/JhCqO,WDf0C4hB,EAAKpsB,SAE9C0X,MAAMla,IACH8Q,GAAMC,SCgBkB/Q,KACzB,CACHrB,KvF0J6B,wBuFzJ7B9C,MAAOmE,IDnBYmO,CAAoBnO,ODC3CyzB,SACI,MAAM,EAAEN,GAAMnD,KAAKK,MAEbuQ,EAA6Bxc,KAEnC,OACI,oCACI,kBAACyS,GAAA,EAAD,CAAKnmB,UAAU,QACX,kBAAComB,GAAA,EAAD,CAAK+J,GAAI,GAAIC,GAAI,GACb,kBAAC9G,GAAA,EAAD,CAAMtpB,UAAU,uBACXsf,KAAKK,MAAM9iB,oBACR,kBAAC,GAAD,MAEI,oCACI,kBAACwzB,GAAA,EAAD,CAAYrwB,UAAU,oBAClB,kBAACmmB,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,CAAKgK,GAAI,IACL,0BAAMpwB,UAAU,WACXyiB,EACG,oCACA,6BAGR,kBAAC,KAAD,CACI+F,GAAItP,GAAKK,SACTgK,IAAK+M,KACLtwB,UAAU,qCAETyiB,EACG,iCACA,oBACD,IARP,IASE,IAEMnD,KAAKK,MAAM5jB,aACNE,sBAKrB,kBAACkqB,GAAA,EAAD,CAAKnmB,UAAU,QACX,kBAAComB,GAAA,EAAD,CAAKgK,GAAI,IACL,uBAAGpwB,UAAU,eACRyiB,EACG,2CACA,4BACD,IAJP,IAKE,IAEMnD,KAAKK,MAAM5jB,aACNC,4BAMzB,kBAACutB,GAAA,EAAD,CAAUvpB,UAAU,kBACfkwB,GACG,kBAAC/J,GAAA,EAAD,CAAKnmB,UAAU,mBACX,kBAAComB,GAAA,EAAD,KACI,0BAAMpmB,UAAU,oBACXyiB,EACG,wCACA,2BAGR,kBAAC,KAAD,CACI+F,GAAItP,GAAKM,aACT+J,IAAK+M,MAEL,kBAAC,GAAD,CAAMtwB,UAAU,mBAMhC,6BACKsf,KAAKK,MAAM5jB,aAAa3M,SAASwF,IAC9B,CAAC27B,EAAM1G,IAEC,kBAAC1D,GAAA,EAAD,CACI56B,IAAKs+B,EACL7pB,UAAU,eAEV,kBAAComB,GAAA,EAAD,CAAKgK,GAAI,IACL,0BAAMpwB,UAAU,eACXuwB,EAAK7jC,KAAM,IADhB,IAEE,IACGwG,KACGq9B,EAAKlK,YACPlzB,OD5H/C,uBC2IP,kBAACizB,GAAA,EAAD,CAAK+J,GAAI,GAAIC,GAAI,GACb,kBAAC9G,GAAA,EAAD,CAAMtpB,UAAU,uBACXsf,KAAKK,MAAM7iB,mBACR,kBAAC,GAAD,MAEI,oCACI,kBAACuzB,GAAA,EAAD,CAAYrwB,UAAU,oBAClB,kBAACmmB,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,CAAKgK,GAAI,IACL,0BAAMpwB,UAAU,WACXyiB,EACG,uCACA,wCAGR,kBAAC,KAAD,CACI+F,GAAItP,GAAKS,cACT4J,IAAK+M,KACLtwB,UAAU,qCAETyiB,EACG,oCACA,+BACD,IARP,IASE,IAEMnD,KAAKK,MAAMzjB,YACNE,qBAKrB,kBAAC+pB,GAAA,EAAD,CAAKnmB,UAAU,QACX,kBAAComB,GAAA,EAAD,CAAKgK,GAAI,IACL,uBAAGpwB,UAAU,eACRyiB,EACG,6CACA,iCACD,IAJP,IAKE,IACGnD,KAAKK,MAAMzjB,YACPC,4BACD,EACI,0BAAM6D,UAAU,eAERsf,KAAKK,MACAzjB,YACAC,6BAIb,8BAEQmjB,KAAKK,MACAzjB,YACAC,iCAQrC,kBAACotB,GAAA,EAAD,CAAUvpB,UAAU,kBACfkwB,GACG,kBAAC/J,GAAA,EAAD,CAAKnmB,UAAU,6BACX,kBAAComB,GAAA,EAAD,KACI,kBAAC,KAAD,CACIoC,GAAItP,GAAKS,cACT4J,IAAK+M,MAEL,kBAAC,GAAD,CAAMtwB,UAAU,mBAKhC,6BACKsf,KAAKK,MAAMzjB,YAAYG,eAAezH,IACnC,CAACL,EAAQ8S,IAED,kBAAC8e,GAAA,EAAD,CACI56B,IACI8b,EACA,IACA9S,EAAOxB,OAEXiN,UAAU,oBACVykB,QAAS,IAAMnF,KAAKK,MAAMmG,QAAQI,KAAK5I,GAAiB/oB,EAAOzB,MAE/D,kBAACszB,GAAA,EAAD,CAAKgK,GAAI,IACL,0BAAMpwB,UAAU,eAERzL,EAAOxB,QAGf,kBAAC,GAAD,CACI0a,OACIlZ,EAAOkZ,OAAOxV,MAElBhK,KAAM4gC,GACFt6B,EAAOkZ,OAAOna,OAElB0M,UAAU,yBAclE,kBAACmmB,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,CAAKgK,GAAI,IACL,kBAAC9G,GAAA,EAAD,CAAMtpB,UAAU,kBACZ,kBAACupB,GAAA,EAAD,CAAUvpB,UAAU,OACfsf,KAAKK,MAAM5iB,kBACR,kBAAC,GAAD,MAEI,kBAACopB,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,CAAKgK,GAAI,EAAGpwB,UAAU,gBAClB,kBAAC,KAAD,CAAqBA,UAAU,sBAC3B,kBAAC,KAAD,CACIlO,KACIwtB,KAAKK,MAAMrjB,WACNC,OAETi0B,OAAQ,CACJC,IAAK,GACLC,MAAO,GACPC,KAAM,GACNC,OAAQ,IAGZ,kBAAC,KAAD,CACIC,UAAU,IAEd,kBAAC,KAAD,CAAOC,QAAQ,SACf,kBAAC,KAAD,MACA,kBAAC,KAAD,CAASC,QAAQ,IACjB,kBAAC,KAAD,CACIC,cAAc,MACdlR,OAAQ,KAEZ,kBAAC,KAAD,CACIpzB,KAAM+1B,EACF,oCACA,qBAEJqO,QAAQ,gBACRG,QAAQ,IACRjR,KAAK,UACLkR,QAAS,IAER5R,KAAKK,MAAMrjB,WAAWC,OAAO3H,IAC1B,CAACu8B,EAAOtH,IACJ,kBAAC,KAAD,CACIt+B,IAAKs+B,EACL7J,KACImR,EAAMC,aACA,UACA,6BAO1B,kBAAC,KAAD,CACI1kC,KAAM+1B,EACF,uCACA,kBAEJqO,QAAQ,oBACRG,QAAQ,IACRjR,KAAK,UACLkR,QAAS,IAER5R,KAAKK,MAAMrjB,WAAWC,OAAO3H,IAC1B,CAACu8B,EAAOtH,IACJ,kBAAC,KAAD,CACIt+B,IAAKs+B,EACL7J,KACImR,EAAMC,aACA,UACA,gCAStC,kBAAChL,GAAA,EAAD,CAAKgK,GAAI,GACL,kBAACjK,GAAA,EAAD,CAAKnmB,UAAU,gCACX,kBAAComB,GAAA,EAAD,CACIgK,GAAI,GACJpwB,UAAU,2BAEV,6BACI,0BAAMA,UAAU,0BACXyiB,EACG,uCACA,6BAIZ,6BACI,0BAAMziB,UAAU,2BAEmC,OAA3Csf,KAAKK,MAAMrjB,WAAWK,iBAClB,IAEAyL,GAAkBjV,OAAOmsB,KAAKK,MAAMrjB,WAAWK,qBAKnE,kBAACypB,GAAA,EAAD,CACIgK,GAAI,GACJpwB,UAAU,2BAEV,6BACI,0BAAMA,UAAU,0BACXyiB,EACG,sCACA,0BAIZ,6BACI,0BAAMziB,UAAU,2BAEkC,OAA1Csf,KAAKK,MAAMrjB,WAAWM,gBAClB,IAEAwL,GAAkBjV,OAAOmsB,KAAKK,MAAMrjB,WAAWM,oBAKnE,kBAACwpB,GAAA,EAAD,CACIgK,GAAI,GACJpwB,UAAU,2BAEV,6BACI,0BAAMA,UAAU,0BACXyiB,EACG,wCACA,8BAIZ,6BACI,0BAAMziB,UAAU,2BAERsf,KAAKK,MACArjB,WACAE,kBAKrB,kBAAC4pB,GAAA,EAAD,CACIgK,GAAI,GACJpwB,UAAU,2BAEV,6BACI,0BAAMA,UAAU,0BACXyiB,EACG,mCACA,uBAIZ,6BACI,0BAAMziB,UAAU,2BAERsf,KAAKK,MACArjB,WACAG,WACAC,kBA8B1D+rB,oBAAW1D,YAZD93B,IACd,CACH0M,UAAW1M,EAAMoN,QAAQV,UACzBoC,aAAc9O,EAAMkrB,UAAUpc,aAC9BG,YAAajP,EAAMkrB,UAAUjc,YAC7BI,WAAYrP,EAAMkrB,UAAU7b,WAC5BO,oBAAqB5P,EAAMkrB,UAAUtb,oBACrCC,mBAAoB7P,EAAMkrB,UAAUrb,mBACpCC,kBAAmB9P,EAAMkrB,UAAUpb,oBAIjBgoB,CAAyBC,aAAgB,SAAhBA,CAA0BiL,MG7c7E,MAAMoB,WAAsBtP,IAAMC,UAE9Be,SACI,OACI,kBAAC,GAAD,OAKGsO,U,uGCJf,MAAMC,WAAoBvP,IAAMC,UA6C5BqJ,YAAY1L,GACR2L,MAAM3L,GADS,KAmBnB4R,eAAkBj+B,GACPwM,KAAE0xB,MAAMl+B,IAAUwM,KAAEgJ,MAAMxV,GAC3BgsB,KAAKK,MAAM8R,aACXn+B,EAtBS,KAyBnBo+B,SAAYC,IACR,GAAIA,EAAM5S,OAAOzrB,QAAUgsB,KAAKryB,MAAMqG,MAAO,EAExB,IADAgsB,KAAKK,MAAM+R,SAASC,EAAM5S,OAAOzrB,QAE9CgsB,KAAKkM,SAAS,CAAEl4B,MAAOq+B,EAAM5S,OAAOzrB,MAAOs+B,cAAc,MA7BlD,KAkCnBC,QAAWF,IACPrS,KAAKkM,SAAS,CAAEsG,WAAYR,GAAYS,cAnCzB,KAsCnBC,OAAUL,IAGN,GAFArS,KAAKkM,SAAS,CAAEsG,WAAY,KAExBxS,KAAKryB,MAAM2kC,aAAc,CACzB,IAAIt+B,EAAQq+B,EAAM5S,OAAOzrB,MAErBgsB,KAAKK,MAAMsS,aACX3+B,EAAQA,EAAM4+B,QAElB5S,KAAKkM,SAAS,CAAEl4B,UAEhBgsB,KAAKK,MAAMqS,OAAO1+B,KAjDP,KAqDnB6+B,kBAAoB,KAChB,IAAInyB,EAAY,eAkBhB,OAjBAA,GAAasf,KAAK8S,aACd9S,KAAKryB,MAAM6kC,WACXxS,KAAKryB,MAAM6kC,YAEf9xB,GAAasf,KAAK8S,aACdd,GAAYe,aACZ/S,KAAKK,MAAM2S,UAEftyB,GAAasf,KAAK8S,aAAad,GAAYiB,UAAWjT,KAAKK,MAAM6S,OACjExyB,GAAasf,KAAK8S,aACdd,GAAYmB,YACZnT,KAAKK,MAAM+S,SAEf1yB,GAAasf,KAAK8S,aACdd,GAAYqB,mBACZrT,KAAKK,MAAM6E,UAERxkB,GAxEQ,KA2EnB4yB,kBAAoB,KAChB,IAAI5yB,EAAY,eAchB,OAbAA,GAAasf,KAAK8S,aACd9S,KAAKryB,MAAM6kC,WACXxS,KAAKryB,MAAM6kC,YAEf9xB,GAAasf,KAAK8S,aAAad,GAAYiB,UAAWjT,KAAKK,MAAM6S,OACjExyB,GAAasf,KAAK8S,aACdd,GAAYmB,YACZnT,KAAKK,MAAM+S,SAEf1yB,GAAasf,KAAK8S,aACd9S,KAAKK,MAAM3f,UACXsf,KAAKK,MAAM3f,WAERA,GA1FQ,KA6FnBoyB,aAAe,CAACpyB,EAAW6yB,IAClB7yB,GAAc6yB,EAGZ,IAAM7yB,EAFF,GA5FXsf,KAAKryB,MAAQ,CACT6kC,WAAY,GACZx+B,MAAOgsB,KAAKiS,eAAe5R,EAAMrsB,OACjCs+B,cAAc,GAItBpF,mBAAmBC,EAAWqG,GACrBhzB,KAAE0K,QAAQiiB,EAAUn5B,MAAOgsB,KAAKK,MAAMrsB,QACvCgsB,KAAKkM,SAAS,CACVl4B,MAAOgsB,KAAKiS,eAAejS,KAAKK,MAAMrsB,OACtCs+B,cAAc,IAsF1B7O,SACI,OACI,kBAACgQ,GAAA,EAAD,CAAW/yB,UAAU,sBAChBsf,KAAKK,MAAMqT,WACR,kBAACC,GAAA,EAAD,CACIjzB,UAAWsf,KAAK6S,oBAChBe,OAAQ5T,KAAKK,MAAMwT,YACnB3O,SAAUlF,KAAKK,MAAM6E,UAEpBlF,KAAKK,MAAMqT,WAGpB,kBAACI,GAAA,EAAD,iBACQ9T,KAAKK,MAAMuP,WADnB,CAEI57B,MAAOgsB,KAAKryB,MAAMqG,MAClBrF,KAAMqxB,KAAKK,MAAM1xB,KACjBolC,YAAa/T,KAAKK,MAAM0T,YACxBrzB,UAAWsf,KAAKsT,oBAChBlB,SAAUpS,KAAKoS,SACfG,QAASvS,KAAKuS,QACdG,OAAQ1S,KAAK0S,OACbxN,SAAUlF,KAAKK,MAAM6E,YAExBlF,KAAKK,MAAM6S,OAASlT,KAAKK,MAAM2T,WAC5B,yBAAKtzB,UAAU,yBACVsf,KAAKK,MAAM2T,WAGnBhU,KAAKK,MAAM+S,SAAWpT,KAAKK,MAAM4T,aAC9B,yBAAKvzB,UAAU,2BACVsf,KAAKK,MAAM4T,eA/K9BjC,GAqBKnD,aAAe,CAClBsD,aAAc,GACdxjC,KAAM,GACN+kC,UAAW,GACXG,aAAa,EACbnzB,UAAW,GACXqzB,YAAa,GACb7O,UAAU,EACVkN,SAAU,aACVM,OAAQ,aACR9C,WAAY,GACZsD,OAAO,EACPc,UAAW,GACXZ,SAAS,EACTa,YAAa,GACbtB,YAAY,GApCdX,GAuCKqB,mBAAqB,cAvC1BrB,GAwCKS,WAAa,YAxClBT,GAyCKiB,UAAY,kBAzCjBjB,GA0CKmB,YAAc,oBA1CnBnB,GA2CKe,aAAe,kBA4IXf,U,iBCtLf,MAAMkC,WAAqBzR,IAAMC,UAgC7BqJ,YAAY1L,GACR2L,MAAM3L,GADS,KAQnBkS,QAAWF,IACPrS,KAAKkM,SAAS,CAAEsG,WAAY0B,GAAazB,cAT1B,KAYnBC,OAAUL,IACNrS,KAAKkM,SAAS,CAAEsG,WAAY,MAbb,KAgBnBK,kBAAoB,KAChB,IAAInyB,EAAY,eAMhB,OALAA,GAAasf,KAAK8S,aAAa9S,KAAKryB,MAAM6kC,WAAYxS,KAAKryB,MAAM6kC,YACjE9xB,GAAasf,KAAK8S,aAAaoB,GAAanB,aAAc/S,KAAKK,MAAM2S,UACrEtyB,GAAasf,KAAK8S,aAAaoB,GAAajB,UAAWjT,KAAKK,MAAM6S,OAClExyB,GAAasf,KAAK8S,aAAaoB,GAAaf,YAAanT,KAAKK,MAAM+S,SACpE1yB,GAAasf,KAAK8S,aAAaoB,GAAab,mBAAoBrT,KAAKK,MAAM6E,UACpExkB,GAvBQ,KA0BnByzB,mBAAqB,KACjB,IAAIzzB,EAAY,uBAKhB,OAJAA,GAAasf,KAAK8S,aAAa9S,KAAKryB,MAAM6kC,WAAYxS,KAAKryB,MAAM6kC,YACjE9xB,GAAasf,KAAK8S,aAAaoB,GAAajB,UAAWjT,KAAKK,MAAM6S,OAClExyB,GAAasf,KAAK8S,aAAaoB,GAAaf,YAAanT,KAAKK,MAAM+S,SACpE1yB,GAAasf,KAAK8S,aAAa9S,KAAKK,MAAM3f,UAAWsf,KAAKK,MAAM3f,WACzDA,GAhCQ,KAmCnBoyB,aAAe,CAACpyB,EAAW6yB,IAClB7yB,GAAc6yB,EAGZ,IAAM7yB,EAFF,GAlCXsf,KAAKryB,MAAQ,CACT6kC,WAAY,IAsCpB/O,SACI,OACI,kBAACgQ,GAAA,EAAD,CAAW/yB,UAAU,uBAChBsf,KAAKK,MAAMqT,WACR,kBAACC,GAAA,EAAD,CACIjzB,UAAWsf,KAAK6S,oBAChBe,OAAQ5T,KAAKK,MAAMwT,YACnB3O,SAAUlF,KAAKK,MAAM6E,UAEpBlF,KAAKK,MAAMqT,WAGpB,kBAAC,KAAD,iBACQ1T,KAAKK,MADb,CAEI+T,WAAYpU,KAAKK,MAAM6E,SACvBxkB,UAAWsf,KAAKmU,qBAChBE,gBAAgB,aAChB9B,QAASvS,KAAKuS,QACdG,OAAQ1S,KAAK0S,UAEhB1S,KAAKK,MAAM6S,OAASlT,KAAKK,MAAM2T,WAAa,yBAAKtzB,UAAU,yBAAyBsf,KAAKK,MAAM2T,WAC/FhU,KAAKK,MAAM+S,SAAWpT,KAAKK,MAAM4T,aAAe,yBAAKvzB,UAAU,2BAA2Bsf,KAAKK,MAAM4T,eA/FhHC,GAeKrF,aAAe,CAClB6E,UAAW,GACXG,aAAa,EACbnzB,UAAW,GACXwkB,UAAU,EACVgO,OAAO,EACPc,UAAW,GACXZ,SAAS,EACTa,YAAa,IAvBfC,GA0BKb,mBAAqB,cA1B1Ba,GA2BKzB,WAAa,YA3BlByB,GA4BKjB,UAAY,kBA5BjBiB,GA6BKf,YAAc,oBA7BnBe,GA8BKnB,aAAe,kBAwEXmB,UC7GR,MCsCMI,GAAsB,CAC/BC,GAAI,CAAC,EAAG,IAAK,MACbC,IAAK,CAAC,EAAG,IAAK,OACdC,GAAI,CAAC,EAAG,IAAK,KAAM,QAEhB,SAASC,GAAkBvmB,GAC9B,OAAImmB,GAAoBC,GAAGpyB,SAASgM,GACzBsgB,GACA6F,GAAoBE,IAAIryB,SAASgM,GACjCsgB,IACA6F,GAAoBG,GAAGtyB,SAASgM,GAChCsgB,IAMf,SAASkG,KAA4C,IAAbhmC,EAAY,uDAAP,MAOzC,OAAOob,KAAMC,InEiEyB,4BmEjEO,CAAC4qB,OAAQ,CAAEjmC,UAIrD,SAASkmC,GAAoBhiC,EAASiiC,GACzC,MAAMC,EAAe,IAAKliC,GAE1B,OADAiO,GAAMC,SDnEC,CACHpS,K3FqNoC,iC4FlJjCgmC,GAA+B,WACjC1qB,KAAM5C,IACH,MAAM2tB,EAAqB3tB,EAAS7U,KAC9ByiC,EAAmBC,GACrBF,EACAD,EACA,cASJ,OAPAj0B,GAAMC,SDvEwB,EACtC9R,EACA4D,EACAuR,KAEO,CACHzV,K3F4MsC,iC2F3MtCM,eACA4D,UACAuR,2BC+DQ+wB,CACIF,EACAF,EACAC,IAGD3tB,EAAS7U,OAEnB0X,MAAOre,IACJ,MAAMgC,EAAeoZ,GAAsBpb,GAC3CiV,GAAMC,SDrEsBlV,KAC7B,CACH8C,K3FoMmC,8B2FnMnC9C,UCkEmBupC,CAAwBvnC,IAEvC2T,KACAD,GAAsB1T,EAAcinC,KAKzC,SAASO,GAAsBxiC,EAASiiC,GAC3C,MAAMC,EAAe,IAAKliC,GAE1B,OADAiO,GAAMC,SCjGC,CACHpS,K7FgOsC,mC4F/HnCgmC,GAA+B,aACjC1qB,KAAM5C,IACH,MAAM2tB,EAAqB3tB,EAAS7U,KAC9ByiC,EAAmBC,GACrBF,EACAD,EACA,cASJ,OAPAj0B,GAAMC,SCrG0B,EACxC9R,EACA4D,EACAuR,KAEO,CACHzV,K7FuNwC,mC6FtNxCM,eACA4D,UACAuR,2BD6FQkxB,CACIL,EACAF,EACAC,IAGD3tB,EAAS7U,OAEnB0X,MAAOre,IACJ,MAAMgC,EAAeoZ,GAAsBpb,GAC3CiV,GAAMC,SCnGwBlV,KAC/B,CACH8C,K7F+MqC,gC6F9MrC9C,UDgGmB0pC,CAA0B1nC,IAEzC2T,KACAD,GAAsB1T,EAAcinC,KAKzC,SAASU,GAAyB3iC,EAASiiC,GAC9C,MAAMC,EAAe,IAAKliC,GAE1B,OADAiO,GAAMC,SE/HC,CACHpS,K9FyOJ,qC4F1GOob,KACFC,InEF2B,iCmEG3BC,KAAM5C,IACH,MAAM2tB,EAAqB3tB,EAAS7U,KAC9ByiC,EAAmBC,GACrBF,EACAD,EACA,cASJ,OAPAj0B,GAAMC,SEpI6B,EAC3C9R,EACA4D,EACAuR,KAEO,CACHzV,K9FiOJ,qC8FhOIM,eACA4D,UACAuR,2BF4HQqxB,CACIR,EACAF,EACAC,IAGD3tB,EAAS7U,OAEnB0X,MAAOre,IACJ,MAAMgC,EAAeoZ,GAAsBpb,GAC3CiV,GAAMC,SElI2BlV,KAClC,CACH8C,K9F0NJ,kC8FzNI9C,UF+HmB6pC,CAA6B7nC,IAE5C2T,KACAD,GAAsB1T,EAAcinC,KAKzC,SAASa,GAAoB9iC,EAASiiC,GACzC,MAAMC,EAAe,IAAKliC,GAE1B,OADAiO,GAAMC,SG9JC,CACHpS,K/FqPmC,gC4FvFhCob,KACFC,InE/BsB,+BmEgCtBC,KAAM5C,IACH,MAAM2tB,EAAqB3tB,EAAS7U,KAC9ByiC,EAAmBC,GACrBF,EACAD,EACA,aASJ,OAPAj0B,GAAMC,SGnKwB,EACtC9R,EACA4D,EACAuR,KAEO,CACHzV,K/F4OqC,gC+F3OrCM,eACA4D,UACAuR,2BH2JQwxB,CACIX,EACAF,EACAC,IAGD3tB,EAAS7U,OAEnB0X,MAAOre,IACJ,MAAMgC,EAAeoZ,GAAsBpb,GAC3CiV,GAAMC,SGjKsBlV,KAC7B,CACH8C,K/FoOkC,6B+FnOlC9C,UH8JmBgqC,CAAwBhoC,IAEvC2T,KACAD,GAAsB1T,EAAcinC,KAKzC,SAASgB,GAAwBjjC,EAASiiC,GAC7C,MAAMC,EAAe,IAAKliC,GAE1B,OADAiO,GAAMC,SI7LC,CACHpS,KhG8PJ,qC4FjEOob,KACFC,InE7D2B,yBmE8D3BC,KAAM5C,IACH,MAAM2tB,EAAqB3tB,EAAS7U,KAC9ByiC,EAAmBC,GACrBF,EACAD,EACA,aASJ,OAPAj0B,GAAMC,SIlM4B,EAC1C9R,EACA4D,EACAuR,KAEO,CACHzV,KhGsPJ,qCgGrPIM,eACA4D,UACAuR,2BJ0LQ2xB,CACId,EACAF,EACAC,IAGD3tB,EAAS7U,OAEnB0X,MAAOre,IACJ,MAAMgC,EAAeoZ,GAAsBpb,GAC3CiV,GAAMC,SIhM0BlV,KACjC,CACH8C,KhG+OJ,kCgG9OI9C,UJ6LmBmqC,CAA4BnoC,IAE3C2T,KACAD,GAAsB1T,EAAcinC,KAqDhD,SAASI,GAAeplC,EAAU+C,EAASojC,GACvC,OAAKnmC,GAAaA,EAAS0U,QAAW3R,EAI/B/C,EAASoS,OAAQ3M,KAChB1C,EAAQwQ,MAAQ6yB,GAAqB3gC,EAAI8N,IAAKxQ,EAAQwQ,UAEtDxQ,EAAQzF,OAAS8oC,GAAqB3gC,EAAInI,KAAMyF,EAAQzF,WAExDyF,EAAQyQ,QAAU/N,EAAI+N,OAAOtP,QAAUnB,EAAQyQ,OAAOtP,WAEtDnB,EAAQ0Q,UAAYhO,EAAIgO,SAASvP,QAAUnB,EAAQ0Q,SAAS/P,QAE5DX,EAAQlE,MAAQ4G,EAAI5G,OAASkE,EAAQlE,KAAKqF,WAC1CnB,EAAQ2Q,QAAUjO,EAAIiO,SAAW3Q,EAAQ2Q,OAAOxP,WAEhDnB,EAAQ4Q,YAAclO,EAAI4Y,OAAOna,QAAUnB,EAAQ4Q,WAAWzP,aAG9DnB,EAAQ6Q,WACNnO,EAAI0gC,IACDnG,GACGj9B,EAAQ6Q,UACRnO,EAAI0gC,GACJ,aAMRpjC,EAAQ8Q,SACNpO,EAAI0gC,IACDnG,GACGv6B,EAAI0gC,GACJpjC,EAAQ8Q,QACR,gBAlCL7T,EA4Cf,SAASomC,GAAqBC,EAAKC,GAC/B,OAAOD,EAAIvD,OAAOljB,cAAcvN,SAASi0B,EAAOxD,OAAOljB,e,wBK1TpD,MAAM2mB,GAA4B,CACrCC,EACAxmC,EACAymC,EACAjzB,KAGA,MAAMkzB,EAAKC,KAAKC,MAAMC,WAEhBC,EA8CV,SAA0B9mC,GACtB,MAAM+mC,EAAkB,CACpB,MACA,iBACA,UACA,aACA,aACA,OACA,UACA,aACA,eAEEC,EAqBV,SAA6BhnC,GACzB,OAAOA,EAASwF,IAAKC,GAAQ,CACzBA,EAAIwhC,IACJxhC,EAAIyhC,SACJzhC,EAAInI,KACJmI,EAAI0hC,iBACJ1hC,EAAI2hC,aACJ3hC,EAAIiO,OACJjO,EAAI4Y,OAAOxV,MACXpD,EAAI4hC,YACJ5hC,EAAI6hC,aAAe7hC,EAAI6hC,aAAe,KA/BjBC,CAAoBvnC,GACvCwnC,EAAe,CAACT,KAAoBC,GACpCS,EAAKd,KAAKC,MAAMc,aAAaF,EAAc,CAAEG,OAAQ,eAE3B,IAA5BX,EAAiBtyB,SACjBiyB,KAAKC,MAAMgB,cACPH,EACA,CAAC,CAAC,kDACF,CAAEI,OAAQ,CAAE7W,EAAG,EAAG8W,EAAG,KAEzBL,EAAG,WAAa,CACZ,CAAEM,EAAG,CAAE/W,EAAG,EAAG8W,EAAG,GAAK9vB,EAAG,CAAEgZ,EAAG,EAAG8W,EAAGf,EAAgBryB,OAAS,MAOpE,OAFA+yB,EAAG,SADe,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,IAC1BjiC,IAAK8sB,IAAD,CAAU7B,MAAO6B,KAEtCmV,EA5EeO,CAAiBhoC,GACvC2mC,KAAKC,MAAMqB,kBAAkBvB,EAAII,EAAe,YAEhD,MAAMoB,EAOV,SAA2BnlC,EAASyQ,GAChC,MAAM20B,EAAgB,CAClB,CAAC,SAAU30B,GACX,CAAC,YAAa,IAAI4N,MAClB,GACA,CAAC,WACD,CAAC,MAAOre,EAAQqlC,WAChB,CAAC,iBAAYrlC,EAAQslC,cAAgBtlC,EAAQslC,cAAcnkC,MAAQ,IACnE,CAAC,gBAAiBnB,EAAQulC,mBAC1B,CACI,aACAvlC,EAAQwlC,eAAiBxlC,EAAQwlC,eAAeC,YAAc,IAElE,CACI,qBACAzlC,EAAQ0lC,kBAAoB1lC,EAAQ0lC,kBAAkBvkC,MAAQ,IAElE,CAAC,OAAQnB,EAAQ2lC,eAAiB3lC,EAAQ2lC,eAAexkC,MAAQ,IACjE,CAAC,UAAWnB,EAAQ4lC,aAAe5lC,EAAQ4lC,aAAazkC,MAAQ,IAChE,CACI,eACAnB,EAAQ6lC,iBAAmB7lC,EAAQ6lC,iBAAiB//B,MAAQ,IAEhE,CAAC,SAAU9F,EAAQ6Q,WACnB,CAAC,OAAQ7Q,EAAQ8Q,UAGf4zB,EAAKd,KAAKC,MAAMc,aAAaS,EAAe,CAAER,OAAQ,eAM5D,OAFAF,EAAG,SADe,CAAC,GAAI,IACCjiC,IAAK8sB,IAAD,CAAU7B,MAAO6B,KAEtCmV,EAxCgBoB,CAAkBpC,EAAajzB,GACtDmzB,KAAKC,MAAMqB,kBAAkBvB,EAAIwB,EAAgB,YAGjDvB,KAAKmC,UAAUpC,EAAIF,EAAW,QAAS,CAAEuC,aAAa,K,OChBnD,MA+KMrnC,GAAmBxB,IACrB,CACHrB,KlG1FyB,oBkG2FzB9C,MAAOmE,IClIFkiB,GACE,EAGF1iB,GACW,EADXA,GAEO,EAFPA,GAGU,EAHVA,GAIO,EAJPA,GAKI,GALJA,GAMQ,EANRA,GAOK,EAPLA,GASG,EATHA,GAWK,GAGLspC,GAAqB,CAC9B,CAACtpC,IAAqCi/B,GACtC,CAACj/B,IAAiCi/B,GAClC,CAACj/B,IAAoCi/B,GACrC,CAACj/B,IAA8Bi/B,GAC/B,CAACj/B,IAAiCi/B,GAClC,CAACj/B,IAAkCi/B,GACnC,CAACj/B,IAA+Bi/B,GAChC,CAde,GAckBA,GACjC,CAACj/B,IAA6Bi/B,GAC9B,CAACj/B,IAA+Bi/B,IAGvBsK,GAAyB,CAClCC,iBAAkB,CACdxpC,GACAA,GACAA,IAEJypC,mBAAoB,CAChBzpC,GACAA,GACAA,KAgBD,SAAS0pC,GAAc/pC,GAC1B,IAAIA,IAAYA,EAASqV,OAKzB,OADA1D,GAAMC,SDxFC,CACHpS,KlG+B6B,0BmGyD1Bob,KACFC,I1EjDgB,sB0EkDhBC,KAAM2U,IACH9d,GAAMC,SDvFmB5R,KAC1B,CACHR,KlG0B+B,0BkGzB/BQ,SAAUA,ICoFSe,CAAqB0uB,EAAKpsB,SAE5C0X,MAAOla,IACJ8Q,GAAMC,SDnFgB/Q,KACvB,CACHrB,KlGoB4B,uBkGnB5B9C,MAAOmE,ICgFYG,CAAkBH,MAItC,SAASmpC,GAAgB/pC,GAC5B,IAAIA,IAAcA,EAAWoV,OAI7B,OADA1D,GAAMC,SDnFC,CACHpS,KlGesC,mCmGoEnCob,KACFC,I1E/DyB,uB0EgEzBC,KAAM2U,IACH9d,GAAMC,SDlFqB3R,KAC5B,CACHT,KlGWJ,mCkGVIS,WAAYA,IC+EOiB,CAAuBuuB,EAAKpsB,SAE9C0X,MAAOla,IACJ8Q,GAAMC,SD9EkB/Q,KACzB,CACHrB,KlGKqC,gCkGJrC9C,MAAOmE,IC2EYM,CAAoBN,MAIxC,SAASopC,GAAkB/pC,GAC9B,IAAIA,IAAgBA,EAAamV,OAIjC,OADA1D,GAAMC,SD9EC,CACHpS,KlGAiC,8BmG8E9Bob,KACFC,I1E5EoB,kB0E6EpBC,KAAM2U,IACH9d,GAAMC,SD7EuB1R,KAC9B,CACHV,KlGLmC,8BkGMnCU,aAAcA,IC0EKmB,CAAyBouB,EAAKpsB,SAEhD0X,MAAOla,IACJ8Q,GAAMC,SDzEoB/Q,KAC3B,CACHrB,KlGXgC,2BkGYhC9C,MAAOmE,ICsEYS,CAAsBT,MAI1C,SAASqpC,GAAYnnB,GACxB,IAAIA,IAAUA,EAAO1N,OAIrB,OADA1D,GAAMC,SDzEC,CACHpS,KlGhBkC,+BmGyF/Bob,KACFC,I1E5FqB,mB0E6FrBC,KAAM2U,IACH9d,GAAMC,SDvEP,CACHpS,KlGrBoC,+BkGsBpCW,cCqE6CsvB,EAAKpsB,SAEjD0X,MAAOla,IACJ8Q,GAAMC,SDpEqB/Q,KAC5B,CACHrB,KlG3BiC,4BkG4BjC9C,MAAOmE,ICiEYY,CAAuBZ,MAI3C,SAASspC,GAAoB/pC,GAChC,IAAIA,IAAkBA,EAAeiV,OAIrC,OADA1D,GAAMC,SDpEC,CACHpS,KlGhCmC,gCmGoGhCob,KACFC,I1EzGsB,oB0E0GtBC,KAAM2U,IACH9d,GAAMC,SDnEyBxR,KAChC,CACHZ,KlGrCqC,gCkGsCrCY,eAAgBA,ICgEGuB,CAA2B8tB,EAAKpsB,SAElD0X,MAAOla,IACJ8Q,GAAMC,SD/DsB/Q,KAC7B,CACHrB,KlG3CkC,6BkG4ClC9C,MAAOmE,IC4DYe,MAIpB,SAASwoC,GAAmBC,GAC/B,OAAOzvB,KACFC,I1EpHsB,mB0EoHAwvB,EAAgB,KACtCvvB,KAAM2U,GACIA,EAAKpsB,MAEf0X,MAAOla,IACJ,MAAMma,MAAMlD,GAAsBjX,MAIvC,SAASypC,GAAqBjqC,GACjC,IAAIA,IAAmBA,EAAgBgV,OAIvC,OADA1D,GAAMC,SD1EC,CACHpS,KlGhDoC,iCmG0HjCob,KACFC,I1ElIuB,qB0EmIvBC,KAAM2U,IACH9d,GAAMC,SDzE0BvR,KACjC,CACHb,KlGrDsC,iCkGsDtCa,gBAAiBA,ICsEEyB,CAA4B2tB,EAAKpsB,SAEnD0X,MAAOla,IACJ8Q,GAAMC,SDrEuB/Q,KAC9B,CACHrB,KlG3DmC,8BkG4DnC9C,MAAOmE,ICkEYkB,MAIpB,SAASwoC,GAAwBjqC,GACpC,IAAIA,IAAsBA,EAAmB+U,OAI7C,OADA1D,GAAMC,SDnEC,CACHpS,KlGjEJ,qCmGoIOob,KACFC,I1EhJ2B,wB0EiJ3BC,KAAM2U,IACH9d,GAAMC,SDlE6BtR,KACpC,CACHd,KlGrEJ,qCkGsEIc,mBAAoBA,IC+DD2B,CAA+BwtB,EAAKpsB,SAEtD0X,MAAOla,IACJ8Q,GAAMC,SD9D0B/Q,KACjC,CACHrB,KlG1EJ,kCkG2EI9C,MAAOmE,IC2DYqB,CAA4BrB,MAqDhD,SAAS2pC,GAAcC,GAC1B,OAAO7vB,KACF8vB,O1E3Mc,W0E2MGD,EAAY,IAAK,CAC/BE,WAAYF,IAEf3vB,KAAM2U,GACIA,EAAKpsB,MAEf0X,MAAOla,IACJ,MAAMA,IAIX,SAAS+pC,KACZ,OAAOhwB,KACFC,I1EjN8B,4B0EkN9BC,KAAM2U,GACIA,EAAKpsB,MAEf0X,MAAOla,IACJ,MAAMA,IAIX,SAASgqC,GAA2BC,EAAST,GAGhD,OAFwC,CAAC,EAAG,GAGRr3B,SAASq3B,IACzCS,IAAY/nB,GCxPpB,SAASgoB,GAAiB7Z,GACtB,IAAInrB,EAAUmrB,EAAM8C,EAAE,0BAA2B,iDAKjD,OAJI9C,EAAMv0B,UACNoJ,EAAU,kBAAC,GAAD,OAGP,yBAAKwL,UAAU,eAAexL,GAGzC,MAAMilC,WAAsB1X,IAAMC,UAG9BqJ,YAAY1L,GACR2L,MAAM3L,GADS,KAFnB+Z,kBAAoB,KAED,KAiEnBC,aAAgBjtC,GAAU4G,IACtBgsB,KAAKkM,SAAS,CAAE,CAAC9+B,GAAO4G,KAlET,KAqEnBsmC,iBAAmB,CAACltC,EAAMmtC,KACtBva,KAAKkM,SAAS,CACV,CAAC9+B,GAAOmtC,KAvEG,KA2EnBC,mBAAsBptC,GAAUqtC,IAC5Bza,KAAKkM,SAAS,CACV,CAAC9+B,GAAOqtC,GAAkC,QA7E/B,KAiFnBC,YAAc,IACH1a,KAAKK,MAAMpxB,aAAaiT,OAAQ3M,IACnC,MAAMolC,EAAc/mC,KAAOosB,KAAKryB,MAAM+V,WAChCk3B,EAAYhnC,KAAOosB,KAAKryB,MAAMgW,SAC9Bk3B,EAAkBjnC,KAAO2B,EAAI4hC,YAAa,cAEhD,OAAIwD,EAAYxK,WAAayK,EAAUzK,UAE/B0K,EAAgBxK,cAAcsK,IAC9BE,EAAgBC,eAAeF,GAE5BD,EAAYxK,UACZ0K,EAAgBxK,cAAcsK,IAC9BC,EAAUzK,WACV0K,EAAgBC,eAAeF,KA/F/B,KAsGnBG,kBAAoB,KAChB/a,KAAKkM,SAAS,CACVgM,UAAW,GACXE,kBAAmB,GACnBD,cAAe,GACfE,eAAgB,GAChBE,kBAAmB,GACnBC,eAAgB,GAChBC,aAAc,GACdC,iBAAkB,GAClBh1B,UAAW,KACXC,QAAS,QAjHE,KAqHnBq3B,SAAW,KACP,IACI13B,EADAgzB,EAAW,WAEf,IACIhzB,EAAS0c,KAAKK,MAAMt0B,KAAKU,UAAUC,YACnC4pC,GAAY,MAAQhzB,EACtB,MAAOtT,GAELsT,EAAS,GAGb,IAAI2xB,EAAmB,GACvB,IACIA,EAAmBjV,KAAKoa,kBAAkBa,MAAM5a,MAAM7tB,KACxD,MAAOxC,GACLilC,EAAmB,GAGvB,IACIoB,GACIC,EACArB,EACA,IAAKjV,KAAKryB,OACV2V,GAEN,MAAOtT,GACLwR,KACAD,GACIye,KAAKK,MAAM8C,EACP,mCACA,uCAEJnD,KAAKK,MAAM4H,SAASD,UACpB,KAnJRhI,KAAKryB,MAAQ,CACTuqC,UAAW,GACXE,kBAAmB,GACnBD,cAAe,KACfE,eAAgB,GAChBE,kBAAmB,GACnBC,eAAgB,GAChBC,aAAc,GACdC,iBAAkB,GAClBh1B,UAAW,KACXC,QAAS,MAIjBkpB,oBAGQvE,aAAUtI,KAAKK,MAAM4H,SAASD,SAAU,CACpCO,KAAM3O,GAAKK,SACXwO,OAAO,EACPyS,QAAQ,MDOpBp6B,GAAMC,SD5FC,CACHpS,KlG+C4B,yBmG6CzBob,KACFC,I1ElCmB,iB0EmCnBC,KAAM2U,IACH9d,GAAMC,SD1FP,CACHpS,KlG0C8B,yBkGzC9BM,aCwFwC2vB,EAAKpsB,SAE5C0X,MAAOla,IACJ8Q,GAAMC,SDvFgB/Q,KACvB,CACHrB,KlGoC2B,sBkGnC3B9C,MAAOmE,ICoFYD,CAAkBC,OCRrCypC,GAAqBzZ,KAAKK,MAAM7wB,iBAChC8pC,GAAoBtZ,KAAKK,MAAM9wB,gBAC/B8pC,GAAYrZ,KAAKK,MAAM/wB,eACvB6pC,GAAgBnZ,KAAKK,MAAMjxB,YAC3BgqC,GAAkBpZ,KAAKK,MAAMhxB,cAC7B6pC,GAAclZ,KAAKK,MAAMlxB,UACzBuqC,GAAwB1Z,KAAKK,MAAM5wB,oBAGvCy9B,mBAAmBC,EAAWqG,EAAW2H,GACrCnb,KAAKkY,UAAUlY,KAAKryB,MAAMuqC,WAC1BlY,KAAKoY,kBAAkBpY,KAAKryB,MAAMyqC,mBAClCpY,KAAKmY,cACDnY,KAAKryB,MAAMwqC,cAAgBnY,KAAKryB,MAAMwqC,cAAcnkC,MAAQ,IAEhEgsB,KAAKqY,eACDrY,KAAKryB,MAAM0qC,eACLrY,KAAKryB,MAAM0qC,eAAeC,YAC1B,IAEVtY,KAAKuY,kBACDvY,KAAKryB,MAAM4qC,kBACLvY,KAAKryB,MAAM4qC,kBAAkBvkC,MAC7B,IAEVgsB,KAAKwY,eACDxY,KAAKryB,MAAM6qC,eAAiBxY,KAAKryB,MAAM6qC,eAAexkC,MAAQ,IAElEgsB,KAAKyY,aACDzY,KAAKryB,MAAM8qC,aAAezY,KAAKryB,MAAM8qC,aAAajlC,GAAK,IAE3DwsB,KAAK0Y,iBACD1Y,KAAKryB,MAAM+qC,iBAAmB1Y,KAAKryB,MAAM+qC,iBAAiB//B,MAAQ,IA8F1E8qB,SACI,MAAM,EAAEN,GAAMnD,KAAKK,MACnB,OACI,kBAAC2J,GAAA,EAAD,CAAMtpB,UAAU,iBACZ,kBAACqwB,GAAA,EAAD,CAAYrwB,UAAU,IAClB,kBAACmmB,GAAA,EAAD,CAAKnmB,UAAU,wDACX,kBAAComB,GAAA,EAAD,CAAKpmB,UAAU,aACX,0BAAMA,UAAU,WACXyiB,EACG,gCACA,oBAIX/O,MACG,kBAAC0S,GAAA,EAAD,CAAKsU,GAAI,EAAGtK,GAAI,EAAGpwB,UAAU,mBACzB,kBAAC26B,GAAA,EAAD,CACIC,OAAK,EACLnQ,MAAM,YACNhG,QAAS,IACLnF,KAAKK,MAAMmG,QAAQI,KACfhN,GAAKM,eAIZiJ,EACG,qCACA,6BAMpB,kBAAC0D,GAAA,EAAD,CAAKnmB,UAAU,2BACX,kBAAComB,GAAA,EAAD,CAAKsU,GAAI,EAAGtK,GAAI,IACZ,kBAACjK,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,CAAKgK,GAAI,EAAGpwB,UAAU,QAClB,kBAAC,GAAD,CACIqzB,YAAa5Q,EACT,sBACA,OAEJ/1B,KAAK,YACL4G,MAAOgsB,KAAKryB,MAAMuqC,UAClBx3B,UAAU,cACV0xB,SAAUpS,KAAKqa,aACX,eAGR,kBAAC,GAAD,CACI9+B,QAASykB,KAAKK,MAAMlxB,SACpBosC,aAAW,EACXvnC,MAAOgsB,KAAKryB,MAAMwqC,cAClBpE,YAAa5Q,EACT,0BACA,kBAEJ/1B,KAAK,gBACLouC,eAAiBC,GACbA,EAAOznC,MAEX0nC,eAAiBD,GACbA,EAAOznC,MAEXo+B,SAAUpS,KAAKwa,mBACX,iBAEJ95B,UAAU,UAGlB,kBAAComB,GAAA,EAAD,CAAKgK,GAAI,EAAGpwB,UAAU,QAClB,kBAAC,GAAD,CACIqzB,YAAa5Q,EACT,8BACA,WAEJ/1B,KAAK,oBACL4G,MAAOgsB,KAAKryB,MAAMyqC,kBAClB13B,UAAU,OACV0xB,SAAUpS,KAAKqa,aACX,uBAGR,kBAAC,GAAD,CACI9+B,QAASykB,KAAKK,MAAMjxB,WACpBmsC,aAAW,EACXnuC,KAAK,iBACL4G,MAAOgsB,KAAKryB,MAAM0qC,eAClBtE,YAAa5Q,EACT,2BACA,cAEJziB,UAAU,cACV86B,eAAiBC,GACbA,EAAOnD,YAEXoD,eAAiBD,GACbA,EAAOznC,MAEXo+B,SAAUpS,KAAKwa,mBACX,qBAIZ,kBAAC1T,GAAA,EAAD,CAAKgK,GAAI,EAAGpwB,UAAU,aAClB,kBAAC,GAAD,CACInF,QAASykB,KAAKK,MAAMhxB,aACpBksC,aAAW,EACXnuC,KAAK,oBACL4G,MAAOgsB,KAAKryB,MAAM4qC,kBAClBxE,YAAa5Q,EACT,uBACA,cAEJziB,UAAU,cACV86B,eAAiBC,GACbA,EAAOznC,MAEX0nC,eAAiBD,GACbA,EAAOznC,MAEXo+B,SAAUpS,KAAKwa,mBACX,uBAGR,kBAAC,GAAD,CACIj/B,QAASykB,KAAKK,MAAM9wB,eACpBgsC,aAAW,EACXvnC,MAAOgsB,KAAKryB,MAAM6qC,eAClBprC,KAAK,iBACL2mC,YAAa5Q,EACT,yBACA,QAEJqY,eAAiBC,GACbA,EAAOznC,MAAQ,KAEnB0nC,eAAiBD,GACbA,EAAOznC,MAEX0M,UAAU,cACV0xB,SAAUpS,KAAKwa,mBACX,uBAMpB,kBAAC1T,GAAA,EAAD,CAAKsU,GAAI,EAAGtK,GAAI,EAAGpwB,UAAU,QACzB,kBAACmmB,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,CAAKgK,GAAG,IAAIpwB,UAAU,WAClB,kBAAC,GAAD,CACInF,QAASykB,KAAKK,MAAM7wB,gBACpB+rC,aAAW,EACXvnC,MAAOgsB,KAAKryB,MAAM8qC,aAClB+C,eAAiBC,GACbA,EAAOznC,MAEX0nC,eAAiBD,GACbA,EAAOznC,MAEX5G,KAAK,eACL2mC,YAAa5Q,EACT,yBACA,WAEJiP,SAAUpS,KAAKwa,mBACX,gBAEJ95B,UAAU,iBAGlB,kBAAComB,GAAA,EAAD,CAAKgK,GAAG,IAAIpwB,UAAU,WAClB,kBAAC,GAAD,CACInF,QAASykB,KAAKK,MAAM5wB,mBACpB8rC,aAAW,EACXvnC,MAAOgsB,KAAKryB,MAAM+qC,iBAClB8C,eAAiBC,GACbA,EAAO9iC,MAEX+iC,eAAiBD,GACbA,EAAO9iC,MAEXvL,KAAK,mBACL2mC,YAAa5Q,EACT,6BACA,gBAEJiP,SAAUpS,KAAKwa,mBACX,oBAEJ95B,UAAU,kBAItB,kBAACmmB,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,CAAKgK,GAAG,IAAIpwB,UAAU,WAClB,kBAAC,KAAD,CACIA,UAAU,cACVi7B,gBAAiBxY,EACb,uBACA,UAEJvX,SAAUoU,KAAKryB,MAAM+V,UACrB0uB,SAAWmI,GACPva,KAAKsa,iBACD,YACAC,MAKhB,kBAACzT,GAAA,EAAD,CAAKgK,GAAG,IAAIpwB,UAAU,WAClB,kBAAC,KAAD,CACIi7B,gBAAiBxY,EACb,qBACA,QAEJziB,UAAU,cACVkL,SAAUoU,KAAKryB,MAAMgW,QACrBi4B,QAAS5b,KAAKryB,MAAM+V,UACpB0uB,SAAWmI,GACPva,KAAKsa,iBACD,UACAC,QAOxB,kBAACzT,GAAA,EAAD,CAAKsU,GAAI,EAAGtK,GAAI,EAAGpwB,UAAU,QACzB,kBAAC26B,GAAA,EAAD,CACIQ,SAAO,EACPP,OAAK,EACLnQ,MAAM,UACNzqB,UAAU,YACVykB,QAASnF,KAAK+a,mBAEb5X,EACG,8BACA,uBAGR,kBAACkY,GAAA,EAAD,CACIC,OAAK,EACLnQ,MAAM,UACNzqB,UAAU,YACVykB,QAASnF,KAAKgb,UAEb7X,EAAE,yBAA0B,gBAK7C,kBAAC8G,GAAA,EAAD,CAAUvpB,UAAU,qCACfsf,KAAK8b,gBAMtBA,cACI,MAAM,EAAE3Y,GAAMnD,KAAKK,MAWbvwB,EAAWkwB,KAAK0a,cAEhBqB,EAAU,CACZ,CACIl4B,UAAW,MACX7U,KAAMm0B,EAAE,sBAAuB,OAC/B6Y,MAAM,EACNC,QAAS,sBACTC,cAAe,sBACfh6B,OAAQi6B,sBAAW,CACfz7B,UAAW,SACX07B,UAAYl6B,IACR8d,KAAKkY,UAAYh2B,MAI7B,CACI2B,UAAW,WACX7U,KAAMm0B,EAAE,0BAA2B,kBACnC6Y,MAAM,EACN95B,OAAQm6B,wBAAa,CACjB37B,UAAW,SACXnF,QAASykB,KAAKK,MAAMlxB,SACpBitC,UAAYl6B,IACR8d,KAAKmY,cAAgBj2B,MAIjC,CACI2B,UAAW,OACX7U,KAAMm0B,EAAE,8BAA+B,WACvC6Y,MAAM,EACN95B,OAAQi6B,sBAAW,CACfz7B,UAAW,SACX07B,UAAYl6B,IACR8d,KAAKoY,kBAAoBl2B,MAIrC,CACI2B,UAAW,QACX7U,KAAMm0B,EAAE,iBAAkB,WAC1B6Y,MAAM,GAEV,CACIn4B,UAAW,mBACX7U,KAAMm0B,EAAE,2BAA4B,cACpC6Y,MAAM,EACN95B,OAAQm6B,wBAAa,CACjB37B,UAAW,SACXnF,QAASykB,KAAKK,MAAMjxB,WACpBgtC,UAAYl6B,IACR8d,KAAKqY,eAAiBn2B,MAIlC,CACI2B,UAAW,eACX7U,KAAMm0B,EAAE,uBAAwB,cAChC6Y,MAAM,EACN95B,OAAQm6B,wBAAa,CACjB37B,UAAW,SACXnF,QAASykB,KAAKK,MAAMhxB,aACpB+sC,UAAYl6B,IACR8d,KAAKuY,kBAAoBr2B,MAIrC,CACI2B,UAAW,SACX7U,KAAMm0B,EAAE,yBAA0B,QAClC6Y,MAAM,EACNM,YAAa,CAACC,EAAQC,KACX,CAAEjc,MAAO,UAEpBre,OAAQm6B,wBAAa,CACjB37B,UAAW,SACXnF,QAASykB,KAAKK,MAAM9wB,eACpB6sC,UAAYl6B,IACR8d,KAAKwY,eAAiBt2B,MAIlC,CACI2B,UAAW,SACX7U,KAAMm0B,EAAE,yBAA0B,QAClC6Y,MAAM,EACNM,YAAa,CAACC,EAAQC,KACX,CAAEjc,MAAO,WAGxB,CACI1c,UAAW,eACX44B,YAAa,CAACC,EAAM/lC,IAAQA,EAAIwX,OAAOna,MACvChF,KAAMm0B,EAAE,yBAA0B,WAClC6Y,MAAM,EACNW,UA1GgB,CAACC,EAAajmC,IAE9B,kBAAC,GAAD,CACIwX,OAAQxX,EAAIwX,OAAOxV,MACnBhK,KAAMmqC,GAAmBniC,EAAIwX,OAAOna,OACpC0M,UAAU,kBAsGdwB,OAAQm6B,wBAAa,CACjB37B,UAAW,SACXnF,QAASykB,KAAKK,MAAM7wB,gBACpB4sC,UAAYl6B,IACR8d,KAAKyY,aAAev2B,MAIhC,CACI2B,UAAW,cACX7U,KAAMm0B,EAAE,uBAAwB,cAChC6Y,MAAM,EACNa,UAAYH,GAAS9oC,KAAO8oC,EAAM,eAEtC,CACI74B,UAAW,eACX7U,KAAMm0B,EAAE,6BAA8B,gBACtC6Y,MAAM,EACN95B,OAAQm6B,wBAAa,CACjB37B,UAAW,SACXnF,QAASykB,KAAKK,MAAM5wB,mBACpB2sC,UAAYl6B,IACR8d,KAAK0Y,iBAAmBx2B,KAGhCy6B,UAAYG,GACHA,EAIG,kBAAC,GAAD,CACI3uB,OAAQ2uB,EACRnuC,KAAM+lC,GAAkBoI,KALzB,KAavB,OACI,kBAAC,KAAD,CACInc,IAAMpX,GAAOyW,KAAKoa,kBAAoB7wB,EACtCwzB,YAAU,EACVC,UAAU,EACVf,QAAQ,wEACRgB,eAAe,yBACfC,SAAS,KACT1qC,KAAM1C,EACNisC,QAASA,EACT75B,OAAQi7B,OACRC,eAAe,SACfC,iBACI,kBAACnD,GAAD,CACIpuC,QAASk0B,KAAKK,MAAMnxB,oBACpBi0B,EAAGA,IAGXma,cAAe,CAAC,CACZz5B,UAAW,cACXC,MAAO,YA2BZqlB,oBACX1D,YApBqB93B,IACd,CACH5B,KAAM4B,EAAMe,KAAK3C,KACjB87B,eAAgBl6B,EAAMe,KAAK3C,KACrB4B,EAAMe,KAAK3C,KAAKipB,iBAChB,KACN/lB,aAActB,EAAMmC,SAASb,aAC7BC,oBAAqBvB,EAAMmC,SAASZ,oBACpCquC,qBAAsB5vC,EAAMmC,SAASjE,OAAS,GAC9CsD,SAAUxB,EAAMmC,SAASX,SACzBC,WAAYzB,EAAMmC,SAASV,WAC3BC,aAAc1B,EAAMmC,SAAST,aAC7BE,eAAgB5B,EAAMmC,SAASP,eAC/BD,cAAe3B,EAAMmC,SAASR,cAC9BE,gBAAiB7B,EAAMmC,SAASN,gBAChCC,mBAAoB9B,EAAMmC,SAASL,qBAKvCg2B,CAAyBC,aAAgB,SAAhBA,CAA0ByU,MCnqBvD,MAAMqD,WAAoB/a,IAAMC,UAE5Be,SACI,OACI,kBAAC,GAAD,OAKG+Z,UCLf,MAAMC,WAAoBhb,IAAMC,UAC5Be,SACI,SAASia,EAAmBxV,GACxB,OACI,kBAAC,KAAD,CACIK,KAAML,EAAMK,KACZ9E,OAASpD,GAEL,kBAAC6H,EAAMyV,UAAP,iBAAqBtd,EAArB,CAA4B0H,OAAQG,EAAMH,YAM1D,MAAM,EAAE5E,GAAMnD,KAAKK,MAEnB,OACI,oCACI,yBAAK3f,UAAU,2BACX,kBAAC,KAAD,CACIwoB,GAAItP,GAAKS,cACT3Z,UAAU,6BAETyiB,EAAE,4BAA6B,wBAEpC,kBAAC,KAAD,CACI+F,GAAItP,GAAKY,gBACT9Z,UAAU,kCAETyiB,EAAE,8BAA+B,iBAEtC,kBAAC,KAAD,CACI+F,GAAItP,GAAKa,aACT/Z,UAAU,6BAETyiB,EAAE,2BAA4B,kBAEnC,kBAAC,KAAD,CACI+F,GAAItP,GAAKc,oBACTha,UAAU,6BAETyiB,EAAE,yBAEP,kBAAC,KAAD,CACI+F,GAAItP,GAAKgB,gCACTla,UAAU,6BAETyiB,EAAE,oCAIX,kBAAC,KAAD,KACKnD,KAAKK,MAAM0H,OAAOzyB,IAAI,CAAC4yB,EAAOngB,IAC3B,kBAAC21B,EAAD,eAAoBzxC,IAAK8b,GAAOmgB,QAQzCxC,ICrEX,GDqEWA,gBAAgB,SAAhBA,CAA0B+X,I,oBCnEzC,SAAS,KAA2Q,OAA9P,GAAWle,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAI1X,EAAI,EAAGA,EAAI2X,UAAUlb,OAAQuD,IAAK,CAAE,IAAI4X,EAASD,UAAU3X,GAAI,IAAK,IAAI9b,KAAO0zB,EAAcJ,OAAOK,UAAUC,eAAeC,KAAKH,EAAQ1zB,KAAQwzB,EAAOxzB,GAAO0zB,EAAO1zB,IAAY,OAAOwzB,IAA2BM,MAAMC,KAAMN,WAIhT,MAAMke,GAAU1d,IACd,IAAI,OACFC,EAAM,MACNC,KACGC,GACDH,EACJ,OAAoB,IAAMI,cAAc,MAAO,GAAS,CACtDC,MAAO,EACPC,OAAQ,GACRC,QAAS,WACTC,KAAM,OACNC,IAAKR,GACJE,GAAQD,EAAqB,IAAME,cAAc,QAAS,KAAMF,GAAS,KAAM,KAAU,GAAqB,IAAME,cAAc,OAAQ,CAC3IS,EAAG,4EACH2I,OAAQ,UACRC,YAAa,EACbC,cAAe,aAIb,GAA0B,IAAM3I,WAAW,CAACZ,EAAOM,IAAqB,IAAML,cAAcsd,GAAS,GAAS,CAClHzd,OAAQQ,GACPN,KACY,IC7BX,GAAO,GD6BI,IEzBA,SAASwd,GAASxd,GAC7B,OACI,yBAAK8E,QAAS9E,EAAM8E,QAASzkB,UAAU,8BACnC,kBAAC,GAAD,CAAUA,UAAU,cACpB,0BAAMA,UAAU,gCAAgC2f,EAAMrxB,ODNlE,SAAS,KAA2Q,OAA9P,GAAWuwB,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAI1X,EAAI,EAAGA,EAAI2X,UAAUlb,OAAQuD,IAAK,CAAE,IAAI4X,EAASD,UAAU3X,GAAI,IAAK,IAAI9b,KAAO0zB,EAAcJ,OAAOK,UAAUC,eAAeC,KAAKH,EAAQ1zB,KAAQwzB,EAAOxzB,GAAO0zB,EAAO1zB,IAAY,OAAOwzB,IAA2BM,MAAMC,KAAMN,WAIhT,MAAMoe,GAAY5d,IAChB,IAAI,OACFC,EAAM,MACNC,KACGC,GACDH,EACJ,OAAoB,IAAMI,cAAc,MAAO,GAAS,CACtDC,MAAO,GACPC,OAAQ,GACRC,QAAS,YACTC,KAAM,OACNC,IAAKR,GACJE,GAAQD,EAAqB,IAAME,cAAc,QAAS,KAAMF,GAAS,KAAM,KAAU,GAAqB,IAAME,cAAc,OAAQ,CAC3IS,EAAG,6cACHL,KAAM,aACH,KAAW,GAAsB,IAAMJ,cAAc,OAAQ,CAChES,EAAG,w7BACHL,KAAM,eAIJ,GAA0B,IAAMO,WAAW,CAACZ,EAAOM,IAAqB,IAAML,cAAcwd,GAAW,GAAS,CACpH3d,OAAQQ,GACPN,KACY,I,OExBA,SAAS0d,GAAT,GAAgD,IAA5B,KAAC/uC,EAAD,QAAOm2B,EAAP,SAAgBD,GAAW,EAC1D,OACI,yBACIxkB,UAAU,6BACVykB,QAASA,EACTD,SAAUA,GAEV,0BAAMxkB,UAAU,4BAA4B1R,GAC5C,kBAAC,GAAD,CAAY0R,UAAU,2BCVlC,SAASs9B,GAAmB3d,GACxB,OACI,kBAAC,eAAD,eACI8K,MAAO,UACP8S,KAAM5d,EAAM4d,KACZnyC,QAASu0B,EAAMv0B,SACXu0B,EAAMuP,aAWtBoO,GAAmBnP,aAAe,CAC9BoP,KAAM,EACNrO,WAAY,GACZ9jC,SAAS,GAGEkyC,U,sCCrBfE,KAAKC,IAAIC,MAAkBC,KAAK,CAC5BC,cAAe,CAAEC,aAAa,GAC9BC,IAAK,KACLC,GAAI,CAAC,UACLC,UAAW,SACXC,aAAc,IACdC,mBAAmB,EACnBC,UAAW,CACPC,GAAI,CACA9f,OAAQ+f,IAEZC,GAAI,CACAhgB,OAAQigB,OAKLf,UAAf,ECpBO,MAAMgB,GAAgClwC,IAClC,CACHL,K7GiCJ,kC6GhCIK,KAAMA,ICgBDoE,GAAoB,SAACN,GAA2C,IAAhCH,EAA+B,uDAAtB,KAAMC,EAAgB,uDAAT,KAC/D,MAAO,CACHjE,K9GgF2B,sB8G/E3BmE,YAAUH,WAAUC,WAIfkB,GAAkB9D,IACpB,CACHrB,K9G0EwB,mB8GzExB9C,MAAOmE,ICxBFgF,GAA2BC,IAC7B,CACHtG,K/G0GkC,6B+GzGlCsG,OAAQA,IAIHG,GAAwBpF,IAC1B,CACHrB,K/GoG+B,0B+GnG/B9C,MAAOmE,IChBF2O,GAAyBrK,IAC3B,CACH3F,KhH0JgC,2BgHzJhC2F,QAASA,I,wBCHV,MAAM6qC,GAAY,SAACC,GAA4C,IAAnCC,EAAkC,uDAAtB,GAAIC,EAAkB,uDAAR,IACzD,MAAMC,EAAiBC,KAAKJ,GACtBK,EAAa,GAEnB,IAAK,IAAIC,EAAS,EAAGA,EAASH,EAAe/6B,OAAQk7B,GAAUJ,EAAW,CACxE,MAAM5Y,EAAQ6Y,EAAe7Y,MAAMgZ,EAAQA,EAASJ,GAE9CK,EAAc,IAAIC,MAAMlZ,EAAMliB,QACpC,IAAK,IAAIuD,EAAI,EAAGA,EAAI2e,EAAMliB,OAAQuD,IAChC43B,EAAY53B,GAAK2e,EAAMmZ,WAAW93B,GAGpC,MAAM+3B,EAAY,IAAIC,WAAWJ,GACjCF,EAAW7Y,KAAKkZ,GAGlB,MAAME,EAAO,IAAIC,KAAKR,EAAY,CAAC9wC,KAAM0wC,IACzC,OAAOW,GCiDJ,MAAME,GAAapR,GAEnB,SAASqR,GAAextC,EAAUC,GAA4B,IAApBkiC,EAAmB,uDAAN,KAG1D,OAFAh0B,GAAMC,SJtDC,CACHpS,K9GqFyB,sBkH9BtBob,KACFC,IzFOiB,kByFNjBC,KAAM2U,IAGH,MACMlL,EAAe0sB,GADAC,GAAiBzhB,EAAKpsB,KAAMG,GACCC,GAGlD,OAFAkO,GAAMC,SAAS3N,GAAkBsgB,EAAc/gB,EAAUC,IAElD,CAAE0tC,WAAW,KAEvBp2B,MAAOla,IACJ,MAAMnC,EAAeoZ,GAAsBjX,GAc3C,OAbA8Q,GAAMC,SAASjN,GAAejG,IAE1BinC,IACAtzB,KACAD,GACI,kBAAC4G,GAAA,EAAD,CAAOC,QAAQ,mDAAf,kDAC2C,CAAEva,iBAE7CinC,GACA,IAID,CAAEwL,WAAW,EAAOzyC,kBAyBhC,SAAS0yC,GAAiB/sC,GAE7B,OADAsN,GAAMC,SH1HC,CACHpS,K/G+GgC,6BkHW7Bob,KACFC,IADE,UzF5CqB,+ByF4CrB,OACwBxW,EADxB,MAEFyW,KAAM2U,IACH9d,GAAMC,SAAS/L,GAAwB4pB,EAAKpsB,OAErC,CAAE8tC,WAAW,KAEvBp2B,MAAOla,IACJ,MAAMnC,EAAeoZ,GAAsBjX,GAG3C,OAFA8Q,GAAMC,SAAS3L,GAAqBvH,IAE7B,CAAEyyC,WAAW,EAAOzyC,kBAIhC,SAAS2yC,GAAuBhtC,GAEnC,OADAsN,GAAMC,SH3IC,CACHpS,K/G+GgC,6BkH4B7Bob,KACFC,IADE,UzF5D4B,sCyF4D5B,OAC+BxW,EAD/B,MAEFyW,KAAM2U,IACH9d,GAAMC,SAAS/L,GAAwB4pB,EAAKpsB,OAErC,CAAE8tC,WAAW,KAEvBp2B,MAAOla,IACJ,MAAMnC,EAAeoZ,GAAsBjX,GAG3C,OAFA8Q,GAAMC,SAAS3L,GAAqBvH,IAE7B,CAAEyyC,WAAW,EAAOzyC,kBA8FhC,SAAS4yC,GAA2BjtC,EAAIktC,EAAUjtC,GACrD,MAAMktC,EAAMD,EAAQ,UzFhKkB,iCyFgKlB,OACkBltC,EADlB,ezFjKW,yByFiKX,OAEWA,EAFX,KAIpB,OADAsN,GAAMC,SH3HC,CACHpS,K/GYiC,8BkH+G9Bob,KACFC,IAAI22B,EAAK,IAIT12B,KAAM2U,IACH,MAAMohB,EAAOb,GAAUvgB,EAAKpsB,MAC5B,IAAIouC,EASJ,OAPIA,EADAF,EACWxC,GAAK/a,EAAE,2CAA4C,CAAC1vB,WAEpDyqC,GAAK/a,EAAE,qCAAsC,CAAC1vB,WAE7DotC,KAAUC,OAAOd,EAAMY,GACvB9/B,GAAMC,SHpIP,CACHpS,K/GOmC,gCkH8HxB,CAAE2xC,WAAW,KAEvBp2B,MAAOla,IACJ,MAAMnC,EAAeoZ,GAAsBjX,GAG3C,OAFA8Q,GAAMC,SHrIoB/Q,KAC3B,CACHrB,K/GEgC,2B+GDhC9C,MAAOmE,IGkIYwG,CAAsB3I,IAE9B,CAAEyyC,WAAW,EAAOzyC,kBAqChC,SAASkzC,GAASttC,GAErB,GAAI+M,KAAE0xB,MAAMz+B,GACR,OAAO,EAEX,MAAMutC,EAAaptC,KAAOH,GAC1B,OACIutC,EAAW7Q,WACX6Q,EAAWC,QAAQrtC,OAASuD,SAPa,GAOkC,UAAW,UAIvF,SAAS82B,GAASiT,GACrB,IAAKA,EACD,OAAO,EAGX,OACIH,GAFiBlR,GAA2BqR,EAAcztC,UAG1D,CAACysC,GAAWnR,YAAamR,GAAW/Q,UAAUhtB,SAC1C++B,EAAc/yB,OAAOna,OAK1B,SAASmtC,GAAkCrxC,EAA3C,GAA+E,IAA1B,YAAEsxC,EAAF,OAAe3tC,GAAU,EAC5E3D,IACDA,EAAW,IAGf,IAAIuxC,EAAgB,EAChBC,EAAgB,EAChBC,EAAyB,GACzBC,EAAmB,EAEvB,IAAK,MAAMjsC,KAAOzF,EAAU,CACxB,IAAKyF,EAAIksC,SACL,SAEJJ,GAAiBK,OAAOnsC,EAAIksC,UAC5BH,GAAiBI,OAAOnsC,EAAIwB,eAC5B,MAAM4qC,EAAiBpsC,EAAIqsC,iBACrBC,EAA0BN,EAAuBI,IAAmB,EAC1EJ,EAAuBI,GAAkBE,EAA0BH,OAAOnsC,EAAIusC,aAElFN,EAAmBjiB,OACdwiB,OAAOR,GACPjsC,IAAI8sB,GAAK5hB,KAAEwhC,MAAM5f,EAAG,IACpBiF,OAAO,CAACC,EAAOtzB,IAAUszB,EAAQtzB,EAAO,GAE7C,MAAMiD,EAAkBmqC,EAAc,EAAII,IvFrNLjH,EuFqNiD,IAAIrpB,KAAKzd,KvFnNnF,IAAIyd,KAAK,cACV,IAGPzI,IACI8xB,EAAO,IAAIrpB,KAAK,cACT,GAGR,IAXJ,IAAkCqpB,EuFuNrC,MAAM0H,EAA4BzhC,KAAEwhC,MAAMR,EAAkB,GACtDU,EAA0B1hC,KAAEwhC,MAAM/qC,EAAiB,GACnDkrC,EAAwB3hC,KAAEwhC,MAAMV,EAAe,GAarD,MAPe,CACXpkC,eAAgBmkC,EAChBrqC,kBAAmBirC,EACnBhrC,gBAAiBirC,EACjBnrC,cAAeorC,EACfjrC,WATA+qC,EACAC,EACAC,GAqCR,SAAS9B,GAAiB7tC,GAAwB,IAAlBG,EAAiB,uDAAN,KACvC,IAAKH,EACD,OAAOA,EAEX,MAAM4vC,EAAiBxuC,KAAOjB,GAC9B,OAAIH,GAAQ4vC,EAAejS,UAChB39B,EAAK0P,OAAQ6e,GAChBqhB,EAAetH,eAAe,IAAIlnC,KAAOmtB,EAAEttB,QAAS,UAGrDjB,EAGX,SAAS4tC,GAAe5tC,GAAsB,IAAhBI,EAAe,uDAAN,KACnC,IAAKJ,EACD,OAAOA,EAEX,MAAM6vC,EAAezuC,KAAOhB,GAC5B,OAAIJ,GAAQ6vC,EAAalS,UACd39B,EAAK0P,OAAQ6e,GAChBshB,EAAahS,cAAc,IAAIz8B,KAAOmtB,EAAEttB,QAAS,UAGlDjB,EAGJ,SAAS8vC,GAA6BhvC,GACzC,OAAOA,KAAiBA,EAAYivC,cCpYjC,SAASC,GAAkB3vC,EAASiiC,GACvCh0B,GAAMC,SC5CC,CACHpS,KpH+YJ,oCmHlWA,MAAMomC,EAAe,IAAKliC,GAGpB4vC,EAAoB7uC,KAAOmhC,EAAarxB,WACzCtM,QAAQ,SACRvD,OAHc,cAIb6uC,EAAkB9uC,KAAOmhC,EAAapxB,SACvCg/B,MAAM,SACN9uC,OANc,cAObkyB,E1F+GN,qD0F/GyClc,QACrC,cACA44B,GACF54B,QAAQ,YAAa64B,GAEvB,IAAI9N,EAAS,GAOb,OANIG,EAAazxB,SACbsxB,EAAS,CACLgO,UAAW7N,EAAazxB,OAAOtP,QAIhC+V,KACFC,IAAI+b,EAAU,CACX6O,WAEH3qB,KAAM2U,IACH,MAAMikB,EAAyBjkB,EAAKpsB,KAC9BswC,EAAuBC,GACzBF,EACA9N,GAUJ,OARAj0B,GAAMC,SCxE2B,EACzCoQ,EACAC,EACAve,KAEO,CACHlE,KpHuYJ,oCoHtYIwiB,6BACAC,mBACAve,YDgEQmwC,CACIH,EACAC,EACA/N,IAID,CAAEuL,WAAW,KAEvBp2B,MAAOla,IACJ,MAAMnC,EAAeoZ,GAAsBjX,GAY3C,OAXA8Q,GAAMC,SCtEP,CACHpS,KpH+XsC,iCoH9XtC9C,MDoE8CgC,IAEtCinC,IACAtzB,KACAD,GAAsB,kDAAD,OACwB1T,GACzCinC,GACA,IAID,CAAEwL,WAAW,EAAOzyC,kBAIhC,SAASo1C,GAA6BpwC,EAASiiC,GAClDh0B,GAAMC,SEzGC,CACHpS,KrH0ZJ,gDmHhTA,MAAMomC,EAAe,IAAKliC,GAGpB4vC,EAAoB7uC,KAAOmhC,EAAarxB,WACzCtM,QAAQ,SACRvD,OAHc,cAIb6uC,EAAkB9uC,KAAOmhC,EAAapxB,SACvCg/B,MAAM,SACN9uC,OANc,cAObkyB,E1FoDN,mE0FpDiDlc,QAC7C,cACA44B,GACF54B,QAAQ,YAAa64B,GAEvB,IAAI9N,EAAS,GAOb,OANIG,EAAazxB,SACbsxB,EAAS,CACLgO,UAAW7N,EAAazxB,OAAOtP,QAIhC+V,KACFC,IAAI+b,EAAU,CACX6O,WAEH3qB,KAAM2U,IACH,MAAMikB,EAAyBjkB,EAAKpsB,KAC9BswC,EAAuBC,GACzBF,EACA9N,GAUJ,OARAj0B,GAAMC,SErIsC,EACpDoQ,EACAC,EACAve,KAEO,CACHlE,KrHkZJ,gDqHjZIwiB,6BACAC,mBACAve,YF6HQqwC,CACIL,EACAC,EACA/N,IAID,CAAEuL,WAAW,KAEvBp2B,MAAOla,IACJ,MAAMnC,EAAeoZ,GAAsBjX,GAY3C,OAXA8Q,GAAMC,SEnIP,CACHpS,KrH2YJ,6CqH1YI9C,MFiIyDgC,IAEjDinC,IACAtzB,KACAD,GAAsB,kDAAD,OACwB1T,GACzCinC,GACA,IAID,CAAEwL,WAAW,EAAOzyC,kBAIhC,SAASs1C,GAA6BtwC,EAASiiC,GAClDh0B,GAAMC,SGtKC,CACHpS,KtHsaJ,gDmH/PA,MAAMomC,EAAe,IAAKliC,GAGpB4vC,EAAoB7uC,KAAOmhC,EAAarxB,WACzCtM,QAAQ,SACRvD,OAHc,cAIb6uC,EAAkB9uC,KAAOmhC,EAAapxB,SACvCg/B,MAAM,SACN9uC,OANc,cAObkyB,E1FPN,mE0FOiDlc,QAC7C,cACA44B,GACF54B,QAAQ,YAAa64B,GAEvB,IAAI9N,EAAS,GAOb,OANIG,EAAazxB,SACbsxB,EAAS,CACLgO,UAAW7N,EAAazxB,OAAOtP,QAIhC+V,KACFC,IAAI+b,EAAU,CACX6O,WAEH3qB,KAAM2U,IACH,MAAMikB,EAAyBjkB,EAAKpsB,KAC9BswC,EAAuBC,GACzBF,EACA9N,GAUJ,OARAj0B,GAAMC,SGlMsC,EACpDoQ,EACAC,EACAve,KAEO,CACHlE,KtH8ZJ,gDsH7ZIwiB,6BACAC,mBACAve,YH0LQuwC,CACIP,EACAC,EACA/N,IAID,CAAEuL,WAAW,KAEvBp2B,MAAOla,IACJ,MAAMnC,EAAeoZ,GAAsBjX,GAY3C,OAXA8Q,GAAMC,SGhMP,CACHpS,KtHuZJ,6CsHtZI9C,MH8LyDgC,IAEjDinC,IACAtzB,KACAD,GAAsB,kDAAD,OACwB1T,GACzCinC,GACA,IAID,CAAEwL,WAAW,EAAOzyC,kBAIvC,SAASk1C,GAAmBrvB,EAAc7gB,GACtC,OAAK6gB,GAAiBA,EAAalP,QAAW3R,EAIvC6gB,EAAaxR,OAAQjN,KACpBpC,EAAQyQ,QAAUrO,EAAOqO,OAAOtP,QAAUnB,EAAQyQ,OAAOtP,WAIzDnB,EAAQ4Q,YACRxO,EAAOouC,UAAUrvC,QAAUnB,EAAQ4Q,WAAWzP,WAK9CnB,EAAQ6Q,YACPosB,GACGj9B,EAAQ6Q,UACRzO,EAAOxB,OACP,aAMJZ,EAAQ8Q,UACPmsB,GACG76B,EAAOxB,OACPZ,EAAQ8Q,QACR,aA5BD+P,EAsCR,SAAS4vB,GAAsB9vC,GAElC,OADAsN,GAAMC,SJ3QC,CACHpS,K/G+GgC,6BmH4J7Bob,KACFC,I1F/FL,gD0F+FgCH,QAAQ,oBAAqBrW,IACxDyW,KAAM2U,IACH9d,GAAMC,SAAS/L,GAAwB4pB,EAAKpsB,OAErC,CAAE8tC,WAAW,KAEvBp2B,MAAOla,IACJ,MAAMnC,EAAeoZ,GAAsBjX,GAG3C,OAFA8Q,GAAMC,SAAS3L,GAAqBvH,IAE7B,CAAEyyC,WAAW,EAAOzyC,kBAIhC,SAAS01C,GAA4B/vC,GAExC,OADAsN,GAAMC,SJ5RC,CACHpS,K/G+GgC,6BmH6K7Bob,KACFC,I1F9GL,uD0F8GuCH,QAAQ,oBAAqBrW,IAC/DyW,KAAM2U,IACH9d,GAAMC,SAAS/L,GAAwB4pB,EAAKpsB,OAErC,CAAE8tC,WAAW,KAEvBp2B,MAAOla,IACJ,MAAMnC,EAAeoZ,GAAsBjX,GAG3C,OAFA8Q,GAAMC,SAAS3L,GAAqBvH,IAE7B,CAAEyyC,WAAW,EAAOzyC,kBAIhC,SAAS21C,GAA+BhwC,EAAIiwC,GAA0B,IAAfC,EAAc,uDAAJ,GACpE,MAAMlxC,EAAO,CACTmxC,iBAAkBnwC,EAClBowC,WAAYH,EACZC,QAASA,GAGb,OAAO35B,KACF6Y,I1FjIL,wC0FiI6CpwB,GACxCyX,KAAM2U,IACH9d,GAAMC,SAAS/L,GAAwB4pB,EAAKpsB,OACrCosB,EAAKpsB,OAEf0X,MAAOla,IACJ,MAAMnC,EAAeoZ,GAAsBjX,GAE3C,MAAMma,MAAMtc,K,II/TpB,G,OAEJ,SAAS,KAA2Q,OAA9P,GAAW0xB,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAI1X,EAAI,EAAGA,EAAI2X,UAAUlb,OAAQuD,IAAK,CAAE,IAAI4X,EAASD,UAAU3X,GAAI,IAAK,IAAI9b,KAAO0zB,EAAcJ,OAAOK,UAAUC,eAAeC,KAAKH,EAAQ1zB,KAAQwzB,EAAOxzB,GAAO0zB,EAAO1zB,IAAY,OAAOwzB,IAA2BM,MAAMC,KAAMN,WAIhT,MAAMmkB,GAAkB3jB,IACtB,IAAI,OACFC,EAAM,MACNC,KACGC,GACDH,EACJ,OAAoB,IAAMI,cAAc,MAAO,GAAS,CACtDC,MAAO,EACPC,OAAQ,GACRC,QAAS,WACTC,KAAM,OACNC,IAAKR,GACJE,GAAQD,EAAqB,IAAME,cAAc,QAAS,KAAMF,GAAS,KAAM,KAAU,GAAqB,IAAME,cAAc,OAAQ,CAC3IS,EAAG,kOACHL,KAAM,eAIJ,GAA0B,IAAMO,WAAW,CAACZ,EAAOM,IAAqB,IAAML,cAAcujB,GAAiB,GAAS,CAC1H1jB,OAAQQ,GACPN,KACY,IC3BX,GD2BW,ICzBf,SAAS,KAA2Q,OAA9P,GAAWd,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAI1X,EAAI,EAAGA,EAAI2X,UAAUlb,OAAQuD,IAAK,CAAE,IAAI4X,EAASD,UAAU3X,GAAI,IAAK,IAAI9b,KAAO0zB,EAAcJ,OAAOK,UAAUC,eAAeC,KAAKH,EAAQ1zB,KAAQwzB,EAAOxzB,GAAO0zB,EAAO1zB,IAAY,OAAOwzB,IAA2BM,MAAMC,KAAMN,WAIhT,MAAMokB,GAAkB5jB,IACtB,IAAI,OACFC,EAAM,MACNC,KACGC,GACDH,EACJ,OAAoB,IAAMI,cAAc,MAAO,GAAS,CACtDC,MAAO,GACPC,OAAQ,GACRC,QAAS,YACTC,KAAM,OACNC,IAAKR,GACJE,GAAQD,EAAqB,IAAME,cAAc,QAAS,KAAMF,GAAS,KAAM,KAAU,GAAqB,IAAME,cAAc,OAAQ,CAC3IS,EAAG,m/CACHL,KAAM,eAIJ,GAA0B,IAAMO,WAAW,CAACZ,EAAOM,IAAqB,IAAML,cAAcwjB,GAAiB,GAAS,CAC1H3jB,OAAQQ,GACPN,KACY,I,OCEf,MAAM0jB,GAAsB1jB,GAAU,kBAAC4E,GAAA,EAAD,iBAAkB5E,EAAlB,CAAyB3f,UAAU,2BAA0B2f,EAAMmK,UAEzG,MAAMwZ,WAAoBvhB,IAAMC,UAAW,cAAD,sCA8EtCuhB,yBAA4B1lB,IACxB,MAAM,EAAE4E,EAAF,kBAAK+gB,EAAL,SAAwBxD,GAAa1gB,KAAKK,MAChD,GAAI6jB,IAAsBxD,EAAU,OAEpC,MAAMyD,EAAqBhhB,EAAE,6CAA8C,gBACrEihB,EAAmBjhB,EAAE,qDAAsD,oBAC3EkhB,EAA4BlhB,EAAE,8DAA+D,4BAC7FmhB,EAAWnhB,EAAE,2CAA4C,SAE/D,IAAIv1B,EAASoyB,KAAKukB,OACdv1C,EAAOm1C,EAcX,OAbID,GACAl1C,EAAOq1C,EACPz2C,EAASoyB,KAAKwkB,WAETxkB,KAAKykB,wBAENz1C,EADAgxB,KAAK0kB,YACEN,EAGAE,GAIRtkB,KAAK2kB,WAAW31C,EAAMpB,EAAQ,CAAE2wB,UAtGL,KAyGtCqmB,uBAA0BrmB,IACtB,MAAM,EAAE4E,EAAF,kBAAK+gB,EAAL,SAAwBxD,GAAa1gB,KAAKK,MAE1CwkB,EAAiB1hB,EAAE,+CAAgD,mBACnE2hB,EAA0B3hB,EAAE,wDAAyD,0BACrF4hB,EAAiB5hB,EAAE,8CAA+C,mBAExE,IAAIv1B,EAASoyB,KAAKglB,aACdh2C,EAAO61C,EACX,GAAIX,EAAmB,CACnB,GAAIxD,IAAa1gB,KAAK0kB,YAAa,OACnC92C,EAASoyB,KAAKilB,gBACdj2C,EAAO81C,MACJ,KAAI9kB,KAAK0kB,YAGZ,OAFA11C,EAAOgxB,KAAKklB,oBAAsBH,EAAiBF,EAKvD,OAAO7kB,KAAK2kB,WAAW31C,EAAMpB,EAAQ,CAAE2wB,OAAMkB,OAAQ,YA5HnB,KA+HtC0lB,yBAA2B5mB,IACvB,MAAM,EAAE4E,GAAMnD,KAAKK,MAEnB,IAAKL,KAAKolB,iBAAkB,OAC5B,IAAKplB,KAAKqlB,mCAAoC,OAE9C,MAAMr2C,EAAOm0B,EAAE,wCAAyC,iBACxD,OAAOnD,KAAK2kB,WAAW31C,EAAMgxB,KAAKslB,qBAAsB,CAAE/mB,UAtIxB,KAyItCgnB,mCAAqChnB,IACjC,MAAM,EAAE4E,EAAF,kBAAK+gB,GAAsBlkB,KAAKK,MAEtC,GAAI6jB,GAAqBlkB,KAAK0gB,SAAU,OACxC,IAAK1gB,KAAKolB,kBAAoBplB,KAAKykB,sBAAuB,OAE1D,MAAMz1C,EAAOm0B,EAAE,0CAA2C,wBAC1D,OAAOnD,KAAK2kB,WAAW31C,EAAMgxB,KAAKwlB,iBAAkB,CAAEjnB,UAhJpB,KAmJtCknB,iCAAmClnB,IAC/B,MAAM,EAAE4E,EAAF,kBAAK+gB,EAAL,SAAwBxD,GAAa1gB,KAAKK,MAEhD,IAAK6jB,EAAmB,OACxB,GAAIA,IAAsBxD,EAAU,OACpC,IAAK1gB,KAAKolB,iBAAkB,OAC5B,IAAKplB,KAAKklB,oBAAqB,OAE/B,MAAMl2C,EAAOm0B,EAAE,wCAAyC,2BACxD,OAAOnD,KAAK2kB,WAAW31C,EAAMgxB,KAAK0lB,uBAAwB,CAAEnnB,UA5J1B,KA+JtConB,gCAAkCpnB,IAC9B,MAAM,EAAE4E,EAAF,kBAAK+gB,EAAL,SAAwBxD,GAAa1gB,KAAKK,MAChD,IAAK6jB,EAAmB,OACxB,GAAIA,IAAsBxD,GAAY1gB,KAAKykB,sBAAuB,OAClE,IAAKzkB,KAAKolB,iBAAkB,OAC5B,GAAIplB,KAAKykB,wBAA0BzkB,KAAKklB,oBAAqB,OAE7D,MAAMl2C,EAAOm0B,EAAE,yCAA0C,2BACzD,OAAOnD,KAAK2kB,WAAW31C,EAAMgxB,KAAK4lB,mBAAoB,CAAErnB,UAvKtB,KAsLtCgmB,OAAS,WAA0B,IAAzBsB,EAAwB,wDAC9B,MAAM,QAAErf,EAAF,YAAWlzB,GAAgB,EAAK+sB,MAChC7sB,EAAKF,EAAYE,GACjB00B,EAAQlK,GAAiBxqB,GAC3BqyC,EACAla,OAAOntB,KAAK0pB,EAAO,UAEnB1B,EAAQI,KAAKsB,IA7LiB,KAiMtCsc,UAAY,KACRxkB,KAAKukB,QAAO,IAlMsB,KAqMtCS,aAAe,WAA0B,IAAzBa,EAAwB,wDACpC,MAAM,QAAErf,EAAF,aAAWsf,GAAiB,EAAKzlB,MACjC7sB,EAAKsyC,EAAatyC,GAClB00B,EAAQjK,GAAoBzqB,GAC9BqyC,EACAla,OAAOntB,KAAK0pB,EAAO,UAEnB1B,EAAQI,KAAKsB,IA5MiB,KAgNtC+c,gBAAkB,KACdjlB,KAAKglB,cAAa,IAjNgB,KAoNtCM,qBAAuB,KACnB,MAAM,EAAEniB,EAAF,SAAK8E,EAAL,YAAe30B,EAAf,iBAA4BiM,GAAqBygB,KAAKK,MAC5D9gB,IP9ID,SAA4B/L,EAAIuyC,GACnCjlC,GAAMC,SJnEC,CACHpS,K9GwEiC,8BkHLrC,MAAM6D,EAAO,CACTwzC,gBAAiBxyC,GAErB,OAAOuW,KACF2U,KzFzBiC,wByFyBAlsB,GACjCyX,KAAM2U,IACH9d,GAAMC,SJpEP,CACHpS,K9GmEmC,gCkHC/Bo3C,EAAUnnB,EAAKpsB,KAAKgB,IAEb,CAAE8sC,WAAW,KAEvBp2B,MAAOla,IACJ,MAAMnC,EAAeoZ,GAAsBjX,GAG3C,OAFA8Q,GAAMC,SJtEoB/Q,KAC3B,CACHrB,K9G8DgC,2B8G7DhC9C,MAAOmE,IImEYoE,CAAsBvG,IAE9B,CAAEyyC,WAAW,EAAOzyC,kBO8H/Bo4C,CAAmB3yC,EAAYE,GAAIwsB,KAAKkmB,6BAA6Bj8B,KACjEk8B,IACSA,EAAO7F,WACR/+B,GACI4hB,EAAE,wDAAyD,yDAAkDgjB,EAAOt4C,aACpHo6B,EAASD,UACT,MA7NkB,KAoOtCke,4BAA+BE,IAC3BpmB,KAAKK,MAAMmG,QAAQI,KAAK3I,GAAoBmoB,KArOV,KAwOtCZ,iBAAmB,KACfxlB,KAAKK,MAAM1hB,sBAAsBqhB,KAAKK,MAAM/sB,cAzOV,KA4OtCoyC,uBAAyB,KACrB1lB,KAAKK,MAAM1hB,sBAAsBqhB,KAAKK,MAAMylB,eA7OV,KAgPtCF,mBAAqB,KACjB,MAAM,EAAEziB,EAAF,SAAK8E,EAAL,YAAe30B,EAAf,aAA4BwyC,EAA5B,kBAA0C5B,EAA1C,SAA6DxD,GAAa1gB,KAAKK,MAErF,IAAIprB,EAAS3B,EACT4wC,EACcjvC,EAAVyrC,EAAmBoF,EACTxyC,EACP0sB,KAAKqmB,0CACZpxC,EAAS6wC,GAGb9lB,KAAKK,MAAM9gB,mBACXkhC,GAA2BxrC,EAAOzB,GAAIyB,EAAOvB,UAAWuB,EAAOxB,QAAQwW,KACnEk8B,IACSA,EAAO7F,WACR/+B,GACI4hB,EAAE,+CAAgD,uDAAmDgjB,EAAOt4C,aAC5Go6B,EAASD,aAjQS,KAwQtCod,eAAiB,IACNrE,GAAS/gB,KAAKK,MAAM/sB,YAAYG,QAzQL,KA4QtCgxC,oBAAsB,IAC4B,MAAvCzkB,KAAKK,MAAM/sB,YAAYgzC,aA7QI,KAgRtC5B,UAAY,MACC1kB,KAAKK,MAAMylB,aAjRc,KAoRtCO,sCAAwC,IAC7BrmB,KAAKykB,uBAAyBzkB,KAAKklB,oBArRR,KAwRtCA,kBAAoB,IPqKjB,SAAsCY,GAAe,IAAD,EACvD,QAAKA,IAGD/E,GAAS+E,EAAaryC,SACtB,CAACysC,GAAWnR,YAAamR,GAAW/Q,UAAUhtB,SAA9C,UACI2jC,EAAa33B,cADjB,aACI,EAAqBna,QO1KlBuyC,CAA6BvmB,KAAKK,MAAMylB,cAzRb,KA4RtCT,iCAAmC,IACxBrlB,KAAKykB,uBAAqD,OAA5BzkB,KAAKK,MAAMylB,aA7Rd,KAgStCU,mBAAqB,KACTxmB,KAAK0kB,cAAgB1kB,KAAKolB,iBAvRtC3hB,SACI,OAAIzD,KAAKK,MAAM6jB,kBACJlkB,KAAKymB,wBAEZzmB,KAAKwmB,qBACExmB,KAAK0mB,qBAGT1mB,KAAK2mB,qBAGhBF,wBACI,OACI,kBAAC5f,GAAA,EAAD,KACK7G,KAAK4mB,cAAc,eAKhCD,qBACI,OACI,kBAAC7iB,GAAA,EAAD,CAA4BC,UAAU,OAAOrjB,UAAU,gBAAgBykB,QAASrd,IAAOA,EAAE++B,oBACrF,kBAAC7iB,GAAA,EAAD,CAAgBC,IAAI,OAChB,kBAACoX,GAAA,EAAD,CAAQlQ,MAAM,OAAOzqB,UAAU,0CAC3B,kBAAC,GAAD,QAGR,kBAAC0jB,GAAA,EAAD,KACKpE,KAAK4mB,cAAc,cAMpCA,cAAcroB,GASV,MARyB,CACrByB,KAAKikB,yBACLjkB,KAAKulB,mCACLvlB,KAAKmlB,yBACLnlB,KAAK4kB,uBACL5kB,KAAKylB,iCACLzlB,KAAK2lB,iCAEerwC,IAAI,CAACwxC,EAAcvc,IAAUuc,EAAavoB,IAGtEomB,WAAW31C,EAAMm2B,EAAS5pB,GAItB,MAAoB,eAHLiF,KAAEumC,aAAaxrC,EAAS,CACnCgjB,KAAM,aAECA,KAEH,kBAACuI,GAAA,EAAD,CAAK76B,IAAK+C,EAAMy7B,GAAG,OAAO/pB,UAAU,aAChC,kBAAC26B,GAAA,EAAD,CAAQlQ,MAAM,UAAU0Q,SAAO,EAAC1W,QAAS,IAAMA,KAAYn2B,IAMnE,kBAAC,GAAD,CACIm2B,QAAS,IAAMA,IACfl5B,IAAK+C,GAEJA,GAiGb03C,qBACI,OACI,kBAACrL,GAAA,EAAD,CACIlQ,MAAM,OACNzqB,UAAU,yCACVykB,QAASnF,KAAKukB,QAEd,kBAAC,GAAD,CAAc7jC,UAAU,OAoHxC,MAAMsmC,GAAe,CACjBroC,yBACAY,qBAGW4pB,ICzUX,GAAO,GDyUIA,gBAAW1D,YAAQ,KAAMuhB,GAAdvhB,CAA4BC,eAAkBse,MCvUxE,SAAS,KAA2Q,OAA9P,GAAWzkB,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAI1X,EAAI,EAAGA,EAAI2X,UAAUlb,OAAQuD,IAAK,CAAE,IAAI4X,EAASD,UAAU3X,GAAI,IAAK,IAAI9b,KAAO0zB,EAAcJ,OAAOK,UAAUC,eAAeC,KAAKH,EAAQ1zB,KAAQwzB,EAAOxzB,GAAO0zB,EAAO1zB,IAAY,OAAOwzB,IAA2BM,MAAMC,KAAMN,WAIhT,MAAMunB,GAAuB/mB,IAC3B,IAAI,OACFC,EAAM,MACNC,KACGC,GACDH,EACJ,OAAoB,IAAMI,cAAc,MAAO,GAAS,CACtDC,MAAO,GACPC,OAAQ,GACRC,QAAS,YACTC,KAAM,OACNC,IAAKR,GACJE,GAAQD,EAAqB,IAAME,cAAc,QAAS,KAAMF,GAAS,KAAM,KAAU,GAAqB,IAAME,cAAc,OAAQ,CAC3IS,EAAG,mCACH2I,OAAQ,UACRC,YAAa,IACbC,cAAe,WACZ,KAAW,GAAsB,IAAMtJ,cAAc,OAAQ,CAChES,EAAG,kCACH2I,OAAQ,UACRC,YAAa,IACbC,cAAe,aAIb,GAA0B,IAAM3I,WAAW,CAACZ,EAAOM,IAAqB,IAAML,cAAc2mB,GAAsB,GAAS,CAC/H9mB,OAAQQ,GACPN,KACY,I,OC7BA,SAAS6mB,GAAT,GAA2C,IAApB,KAAEl4C,EAAF,QAAQm2B,GAAW,EAErD,OACI,0BAAMA,QAASA,EAASzkB,UAAU,mBAC9B,0BAAMA,UAAU,yBAAyB1R,EAAzC,KACA,kBAAC,GAAD,CAAW0R,UAAU,gBCAjC,MAAMymC,GAAoB,IAInB,IAJoB,SACvB3c,EADuB,MACbpK,EADa,kBACNgnB,EADM,iBACaC,EADb,OAEvBC,EAFuB,SAEfC,EAFe,SAELC,EAFK,UAEKC,EAFL,WAGvBrT,EAHuB,UAGXsT,EAHW,YAGAC,GACrB,EACF,OACI,oCACI,kBAACC,GAAA,EAAD,CACIN,OAAQA,EACRO,OAAQN,EACRO,UAAQ,EACRC,SAAS,SACTrnC,UAAU,sBAEV,kBAACsnC,GAAA,EAAD,CAAWtnC,UAAU,OACjB,kBAACmmB,GAAA,EAAD,CAAKnmB,UAAU,QACX,kBAAComB,GAAA,EAAD,KACI,0BAAMpmB,UAAU,WAAW0f,IAE/B,kBAAC0G,GAAA,EAAD,CAAKpmB,UAAU,mCACX,kBAAC,GAAD,CACI1R,KAAM,kBAACmZ,GAAA,EAAD,CAAOC,QAAQ,iCAAf,SACN+c,QAASoiB,MAIrB,kBAAC1gB,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,KACI,kBAAC,GAAD,CAAQsD,YAAY,EAAMC,aAAcsd,MAGhD,kBAAC9gB,GAAA,EAAD,CAAKnmB,UAAU,QACX,kBAAComB,GAAA,EAAD,KACK0D,IAGT,kBAAC3D,GAAA,EAAD,CAAKnmB,UAAU,cACX,kBAAComB,GAAA,EAAD,CAAKgK,GAAG,IAAIpwB,UAAU,QAClB,kBAAC26B,GAAA,EAAD,CACIlQ,MAAM,UACN0Q,SAAO,EACPP,OAAK,EACLnW,QAASqiB,EACTtiB,SAAUkP,GAETiT,IAGT,kBAACvgB,GAAA,EAAD,CAAKgK,GAAG,IAAIpwB,UAAU,QAClB,kBAAC26B,GAAA,EAAD,CACIlQ,MAAM,UACNmQ,OAAK,EACLnW,QAASsiB,EACTviB,SAAUkP,GAETsT,EAAY,kBAAC,GAAD,MAAuBN,SAUpED,GAAkBtY,aAAe,CAC7BrE,SAAU,0BAAM9pB,UAAU,cAAa,kBAACyH,GAAA,EAAD,CAAOs2B,GAAG,SAASr2B,QAAQ,yCAA3B,qBACvCgY,MAAO,kBAACjY,GAAA,EAAD,CAAOC,QAAQ,mCAAf,WACPg/B,kBAAmB,kBAACj/B,GAAA,EAAD,CAAOC,QAAQ,2CAAf,WACnBi/B,iBAAkB,kBAACl/B,GAAA,EAAD,CAAOC,QAAQ,0CAAf,YAClBgsB,YAAY,EACZsT,WAAW,EACXC,YAAa,IAIFR,U,UCzER,MAAMc,GAAiCz1C,IAC1C,MAAM,OAAE6B,EAAF,QAAUC,EAAV,SAAmBxE,GAAa0C,EAEhCgkC,EAAKC,KAAKC,MAAMC,WAEhBljC,EAASy0C,GAA8B7zC,EAAOZ,QACpD,IAAI00C,EAAiB10C,EACjBa,EAAQZ,YACRy0C,EAAiBjK,GAAK/a,EAAE,0CAA2C,CAAC1vB,YAGxE,MAAM20C,EAuBV,SAA2B/zC,GACvB,MAAMZ,EAASy0C,GAA8B7zC,EAAOZ,QAC9C40C,EAAev/B,GAAkBjV,OAAOQ,EAAO0C,eAC/CuxC,EAAkBx/B,GAAkBjV,OAAOQ,EAAO2C,mBAClDuxC,EAAqBz/B,GAAkBjV,OAAOQ,EAAO4C,iBACrDuxC,EAAW1/B,GAAkBjV,OAAOQ,EAAO6C,YAE3C+gC,EAAgB,CAClB,CACIiG,GAAK/a,EAAE,sBACP+a,GAAK/a,EAAE,kBACP+a,GAAK/a,EAAE,mBACP+a,GAAK/a,EAAE,yBACP+a,GAAK/a,EAAE,2BACP+a,GAAK/a,EAAE,2BACP+a,GAAK/a,EAAE,2BACP+a,GAAK/a,EAAE,6BAEX,CACI9uB,EAAOo0C,YACPh1C,EACAY,EAAO3H,YACP2H,EAAO6I,eACPmrC,EACAC,EACAC,EACAC,IAIFjR,EAAKd,KAAKC,MAAMc,aAAaS,GAMnC,OAFAV,EAAG,SADe,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAC3BjiC,IAAK8sB,IAAD,CAAU7B,MAAO6B,KAEtCmV,EA3DYoB,CAAkBtkC,GACrCoiC,KAAKC,MAAMgB,cAAc0Q,EAmF7B,SAAyBt4C,GACrB,MAAM+mC,EAAkB,CACpBqH,GAAK/a,EAAE,sBACP+a,GAAK/a,EAAE,0BACP+a,GAAK/a,EAAE,8BACP+a,GAAK/a,EAAE,gCACP+a,GAAK/a,EAAE,0BACP+a,GAAK/a,EAAE,6BACP+a,GAAK/a,EAAE,2BACP+a,GAAK/a,EAAE,+BACP+a,GAAK/a,EAAE,mCAGL2T,EAuBV,SAA6BhnC,GACzB,OAAOA,EAASwF,IAAKC,GAAQ,CACzBA,EAAIwhC,IACJxhC,EAAInI,KACJmI,EAAI2hC,aACJ3hC,EAAIiO,OACJ0F,GAAyBrV,OAAO0B,EAAImzC,SACpCv/B,GAAgCtV,OAAO0B,EAAIozC,kBAC3CpzC,EAAIksC,SACJ34B,GAAkBjV,OAAO0B,EAAIwB,eAC7B+R,GAAkBjV,OAAO0B,EAAIusC,eAjCRzK,CAAoBvnC,GAE7C,MADqB,CAAC+mC,KAAoBC,GAjGL8R,CAAgB94C,GAAW,CAC5D6nC,OAAQ,OAGY,IAApB7nC,EAAS0U,SACTiyB,KAAKC,MAAMgB,cACP0Q,EACA,CAAC,CAAClK,GAAK/a,EAAE,kDACT,CAAEwU,OAAQ,CAAE7W,EAAG,EAAG8W,EAAG,KAEzBwQ,EAAW,WAAa,CAAC,CAAEvQ,EAAG,CAAE/W,EAAG,EAAG8W,EAAG,GAAK9vB,EAAG,CAAEgZ,EAAG,EAAG8W,EAAG,MAGhEnB,KAAKC,MAAMqB,kBAAkBvB,EAAI4R,EAAYD,GAG7C,MAAM7R,EAqDV,SAAqB7iC,EAAQitC,GACzB,IAAImI,EAAkBp1C,EACtB,MAAMq1C,EAAejZ,GAA2Bp8B,GAC5Cq1C,EAAa3Y,YACb0Y,EAAkBC,EAAaj1C,OAAO,YAG1C,OAAI6sC,EACOxC,GAAK/a,EAAE,0CAA2C,CAAC1vB,OAAQo1C,IAE3D3K,GAAK/a,EAAE,oCAAqC,CAAC1vB,OAAQo1C,IA/D/CE,CAAY10C,EAAOZ,OAAQa,EAAQZ,WACpD+iC,KAAKmC,UAAUpC,EAAIF,EAAU,CACzBuC,aAAa,KA2CrB,SAASqP,GAA8Bz0C,GACnC,MAAMq1C,EAAejZ,GAA2Bp8B,GAChD,OAAIq1C,EAAa3Y,UACN2Y,EAAaj1C,OzCnFU,ayCqF3B,GChFX,MAAMm1C,WAAwCtmB,YAAW,cAAD,yBA4BpDsY,SAAW,KACPx5B,KACA,IACIymC,GAA8BjoB,KAAKK,MAAM7tB,MAC3C,MAAOxC,GACDgwB,KAAKK,MAAM4oB,QACXjpB,KAAKK,MAAM4oB,QAAQj5C,GAEnBu7B,QAAQ1/B,MAAMmE,KA1B1ByzB,SACI,OACI,kBAAC4X,GAAA,EAAD,CACIQ,SAAO,EACPP,OAAK,EACLnQ,MAAM,UACNhG,QAASnF,KAAKgb,SACd9V,SAAUlF,KAAKK,MAAMv0B,SAAWk0B,KAAKK,MAAM6E,UAE1ClF,KAAKK,MAAMv0B,QACR,kBAAC,GAAD,MAEA,kBAACo9C,GAAA,EAAD,KAAc/lB,GAAKA,EAAE,sBAAuB,qBAoBjD6lB,U,qCC1Cf,MAAMG,WAAmB1mB,IAAMC,UAAW,cAAD,yBAiBrC0mB,sBAAyB/oB,IACrB,IAAI3f,EAAY,qBAiBhB,OAJI2f,EAAMgpB,cAAgBhpB,EAAMipB,cAAgBjpB,EAAMkpB,gBAClD7oC,GAAa,mBAGVA,GAGX+iB,SACI,OACI,oCACI,kBAACoD,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,KACI,kBAAC,KAAD,CACI0iB,OAAQxpB,KAAKK,MAAMmpB,OACnBC,eAAgBzpB,KAAKK,MAAMopB,eAC3BC,eAAgB1pB,KAAKK,MAAMqpB,eAC3BC,OAAQ3pB,KAAKK,MAAMspB,OACnBC,UAAU,EACVlpC,UAAU,OACVmpC,QAAS7pB,KAAKK,MAAMwpB,SAEnB,QAAC,aAACC,EAAD,cAAeC,EAAf,UAA8BC,EAA9B,aAAyCX,EAAzC,aAAuDC,EAAvD,aAAqEC,GAAtE,SACG,iCACI,yCACQO,IADR,CAEIppC,UAAWsf,KAAKopB,sBAAsB,CAACY,YAAWV,eAAcC,eAAcF,mBAE9E,0BAAWU,KACX,2BAAI/pB,KAAKK,MAAM4pB,sBA3DjDd,GAWKta,aAAe,CAClB8a,OAAQ,GACRO,aAAc,0DACdL,QAAS,KAyDFV,IClFX,GAAO,GAAO,GDkFHA,MChFf,SAAS,KAA2Q,OAA9P,GAAW5pB,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAI1X,EAAI,EAAGA,EAAI2X,UAAUlb,OAAQuD,IAAK,CAAE,IAAI4X,EAASD,UAAU3X,GAAI,IAAK,IAAI9b,KAAO0zB,EAAcJ,OAAOK,UAAUC,eAAeC,KAAKH,EAAQ1zB,KAAQwzB,EAAOxzB,GAAO0zB,EAAO1zB,IAAY,OAAOwzB,IAA2BM,MAAMC,KAAMN,WAIhT,MAAMyqB,GAAmBjqB,IACvB,IAAI,OACFC,EAAM,MACNC,KACGC,GACDH,EACJ,OAAoB,IAAMI,cAAc,MAAO,GAAS,CACtDC,MAAO,GACPC,OAAQ,GACRC,QAAS,YACTC,KAAM,OACNC,IAAKR,GACJE,GAAQD,EAAqB,IAAME,cAAc,QAAS,KAAMF,GAAS,KAAM,KAAU,GAAqB,IAAME,cAAc,OAAQ,CAC3IC,MAAO,GACPC,OAAQ,GACR8I,GAAI,EACJ5I,KAAM,aACH,KAAU,GAAqB,IAAMJ,cAAc,OAAQ,CAC9DS,EAAG,mCACH2I,OAAQ,UACRC,YAAa,IACbC,cAAe,WACZ,KAAW,GAAsB,IAAMtJ,cAAc,OAAQ,CAChES,EAAG,mCACH2I,OAAQ,UACRC,YAAa,IACbC,cAAe,aAIb,GAA0B,IAAM3I,WAAW,CAACZ,EAAOM,IAAqB,IAAML,cAAc6pB,GAAkB,GAAS,CAC3HhqB,OAAQQ,GACPN,KACY,I,OCLf,MAAM+pB,WAA0B3nB,IAAMC,UAAW,cAAD,yBAsB5C2nB,iBAAmB,KACf3oC,GAAoBse,KAAKK,MAAMyU,aAvBS,KA0B5CwV,0BAA4BC,UACxB,MAAM,EAAEpnB,EAAF,QAAKqD,EAAL,cAAcgkB,EAAd,UAA6BC,GAAczqB,KAAKK,MACtDL,KAAKqqB,mBfyNiCE,OAAO/2C,EAAIktC,EAAUjiC,KAC/D,IAAIisC,EAAW,IAAIC,SACnBD,EAASE,OAAO,OAAQnsC,GACxBisC,EAASE,OAAO,OAAQnsC,EAAKrR,MAE7B,MAAMy9C,EAAiBnK,EzFjMe,+BADP,wByFsM/B,OADA5/B,GAAMC,SF9QC,CACHpS,KhH+IiC,8BkH+H9Bob,KACF6Y,IADE,UACKioB,GADL,OACsBr3C,EADtB,KAC6Bk3C,GAC/BzgC,KAAM5C,IACHvG,GAAMC,SF5QP,CACHpS,KhH0ImC,gCkHkIxB,CAAE2xC,WAAW,KAEvBp2B,MAAOla,IACJ,IAAI0O,EAAS,GACb,GAAI1O,EAAIqX,UAAYrX,EAAIqX,SAAS7U,KAAM,CACnC,MAAMA,EAAOxC,EAAIqX,SAAS7U,KAEtBkM,EADA8B,KAAEsqC,QAAQt4C,GACDA,EAEA,CAACA,GAOlB,OAFAsO,GAAMC,SFtRoBrC,KAC3B,CACH/P,KhHqIgC,2BgHpIhC+P,OAAQA,IEmRWK,CAAsBL,IAE9B,CAAE4hC,WAAW,EAAO5hC,aenP/BqsC,CAFW/qB,KAAKK,MAAM/rB,QAAQd,GACbwsB,KAAKK,MAAM/rB,QAAQZ,UACSssB,KAAKK,MAAM2qB,YAAY/gC,KAChEk8B,IACI,GAAIA,EAAO7F,UAAW,CAClB,MAAM9sC,EAAKwsB,KAAKK,MAAM/rB,QAAQd,GACxBktC,EAAW1gB,KAAKK,MAAM/rB,QAAQZ,UACpCssB,KAAKK,MAAMrhB,yBACX,MAAMkpB,EnF6BnB,SAAmC10B,EAAIktC,GAC1C,OAAIA,EACO9mB,GAAKW,iBAAiB1Q,QApGP,YAoG+BrW,GAElDomB,GAAKU,aAAazQ,QAtGC,YAsGuBrW,GmFjCnBy3C,CAA0Bz3C,EAAIktC,GAC5Ct/B,GAAwB+hB,EAAE,sDAAuD,oDAA4C+E,GAAO,GAChIsiB,EACyB,oBAAdC,GACPA,IAGJjkB,EAAQI,KAAKsB,OAEd,CACH,MAAMgjB,EAAoBr/C,IACtB,IAAIgC,EAAehC,EAAM0b,MAAQ4b,EAAE,yEAA0E,8CAI7G,OAHIt3B,EAAMkrC,MACNlpC,EAAe,kBAACsa,GAAA,EAAD,CAAOC,QAAQ,+DAA+D,CAAE/E,IAAKxX,EAAMkrC,KAA3F,MAAqG,CAAEoU,aAAct9C,KAEjIA,GAEL+Z,EAAUub,EAAE,0DAA2D,+CAE7E5hB,GADqBmG,GAAoBy+B,EAAOznC,OAAQwsC,EAAkBtjC,GACtCoY,KAAKK,MAAMyU,gBAxDnB,KA+D5C0S,SAAW,KACHxnB,KAAKK,MAAMqnB,YAGf1nB,KAAKqqB,mBACLrqB,KAAKK,MAAMrhB,2BApE6B,KAuE5CwqC,OAAS4B,IACLprB,KAAKqqB,oBAxEmC,KA2E5CZ,eAAkB4B,IACd,MAAM,EAAEloB,GAAMnD,KAAKK,MACnB,GAAIgrB,EAAc7mC,OAAS,EAEvB,YADAlD,GAAwB6hB,EAAE,mEAAoE,+CAA0CnD,KAAKK,MAAMyU,YAGvJ,MAAMwW,EAAeD,EAAc,GACnC,GAAIC,EAAarN,KAAOje,KAAKK,MAAMkrB,YAAa,CAC5C,MAAMC,EAAYhrC,KAAEwhC,MAAMhiB,KAAKK,MAAMkrB,YAAc,IAAK,GAExDjqC,GADgB,kBAAC6G,GAAA,EAAD,CAAOC,QAAQ,6DAAf,4BAAqG,CAAEojC,aAAvG,QACiBxrB,KAAKK,MAAMyU,YAE3C9U,KAAKK,MAAMorB,UAAUtpC,SAASmpC,EAAa38C,MAGbg7C,KAC/B,CACIv8C,KAAMk+C,EAAal+C,KACnBuB,KAAM28C,EAAa38C,MAEvBqxB,KAAKK,MAAMorB,YAIXnqC,GAAwB6hB,EAAE,mEAAoE,2CAAsCnD,KAAKK,MAAMyU,aAnG3G,KAuG5C4U,eAAiBgC,IACb,MAAMC,EAAeD,EAAc,GACnC1rB,KAAKK,MAAMzhB,4BAA4B+sC,GAEvCtqC,GADgB,kBAAC8G,GAAA,EAAD,CAAOC,QAAQ,wDAAf,SAA6E,CAAEkuB,SAAUqV,EAAav+C,MAAtG,0BACc4yB,KAAKK,MAAMyU,aA3GD,KA+G5C8W,qBAAuB,KACnB5rB,KAAKqqB,mBACLrqB,KAAKK,MAAMzhB,4BAA4B,OAjHC,KAoH5CgnC,mBAAqB,KACjB,IAAI1E,EAAgBlhB,KAAKK,MAAM/rB,QAE/B0rB,KAAKqqB,mBACL5J,GAA2BS,EAAc1tC,GAAI0tC,EAAcxtC,UAAWwtC,EAAcztC,QAAQwW,KACxFk8B,IACI,IAAKA,EAAO7F,UAAW,CAEnB/+B,GADgB,kBAAC4G,GAAA,EAAD,CAAOC,QAAQ,sEAAf,sDAAkI,CAAEva,aAAcs4C,EAAOt4C,eAC1ImyB,KAAKK,MAAMyU,gBAM1DrR,SACI,IAAKzD,KAAKK,MAAMinB,OACZ,OAAO,EAEX,MAAM,EAAEnkB,GAAMnD,KAAKK,MACbwoB,EAAkBhZ,GAA2B7P,KAAKK,MAAM/rB,QAAQb,QAAQI,O7CpKrD,a6CqKzB,IAAIusB,EAAQ,kBAACjY,GAAA,EAAD,CAAOC,QAAQ,uDAAuD,CAAE3U,OAAQo1C,IAK5F,OAJI7oB,KAAKK,MAAM/rB,QAAQZ,YACnB0sB,EAAQ,kBAACjY,GAAA,EAAD,CAAOC,QAAQ,qDAAqD,CAAE3U,OAAQo1C,GAA9E,gBAIR,kBAACjB,GAAA,EAAD,CACIN,OAAQtnB,KAAKK,MAAMinB,OACnBC,SAAUvnB,KAAKwnB,SACfO,SAAS,SACTrnC,UAAU,6BAEV,kBAACsnC,GAAA,EAAD,CAAWtnC,UAAU,IACjB,kBAACmmB,GAAA,EAAD,CAAKnmB,UAAU,uBACX,kBAAComB,GAAA,EAAD,KACI,0BAAMpmB,UAAU,eAAe0f,IAEnC,kBAAC0G,GAAA,EAAD,CAAKpmB,UAAU,mCACX,kBAAC,GAAD,CACI1R,KAAMm0B,EAAE,gBAAiB,SACzBgC,QAASnF,KAAKwnB,aAI1B,kBAAC3gB,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,KACI,kBAAC,GAAD,CAAQzkB,OAAQ2d,KAAKK,MAAMze,WAAYwoB,YAAY,EAAMC,aAAc,CAACrK,KAAKK,MAAMyU,gBAG3F,kBAACjO,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,KACI,kBAACuU,GAAA,EAAD,CACIlQ,MAAM,OACNhG,QAASnF,KAAK4lB,mBACdllC,UAAU,QAETyiB,EAAE,wDAAyD,gCAIxE,kBAAC,GAAD,CACI1kB,KAAMuhB,KAAKK,MAAM2qB,WACjBxB,OAAQxpB,KAAKwpB,OACbC,eAAgBzpB,KAAKypB,eACrBC,eAAgB1pB,KAAK0pB,eACrBC,OAAQ3pB,KAAKK,MAAMorB,UACnB5B,QAAS7pB,KAAKK,MAAMkrB,YAEpBtB,aAAc9mB,EAAE,8CAA+C,6FAGnE,kBAAC0D,GAAA,EAAD,CAAKnmB,UAAU,yBACX,kBAAComB,GAAA,EAAD,CAAKpmB,UAAU,+BACX,0BAAMA,UAAU,IAAIyiB,EAAE,oDAAqD,mBAG/E,kBAAC2D,GAAA,EAAD,KACI,kBAACD,GAAA,EAAD,CAAKnmB,UAAS,wBAAmBsf,KAAKK,MAAM2qB,WAAa,GAAK,cAC1D,kBAAClkB,GAAA,EAAD,KACI,8BAAO9G,KAAKK,MAAM2qB,WAAahrB,KAAKK,MAAM2qB,WAAWziB,KAAOpF,EAAE,mDAAoD,qCAEtH,kBAAC2D,GAAA,EAAD,CAAKpmB,UAAS,mBAAcsf,KAAKK,MAAM2qB,WAAa,GAAK,cACrD,kBAAC,GAAD,CACItqC,UAAU,0BACVykB,QAASnF,KAAK4rB,2BAMlC,kBAAC/kB,GAAA,EAAD,CAAKnmB,UAAU,QACX,kBAAComB,GAAA,EAAD,KACI,kBAACuU,GAAA,EAAD,CACIlQ,MAAM,OACNjG,SAAUlF,KAAKK,MAAMqnB,UACrBviB,QAASnF,KAAKwnB,SACd9mC,UAAU,qCAETyiB,EAAE,8CAA+C,gBAG1D,kBAAC2D,GAAA,EAAD,CAAKpmB,UAAU,cACX,kBAAC26B,GAAA,EAAD,CACIlQ,MAAM,UACNjG,SAAUlF,KAAKK,MAAMqnB,YAAc1nB,KAAKK,MAAM2qB,WAC9C7lB,QAASnF,KAAKsqB,0BACd5pC,UAAU,qCAETsf,KAAKK,MAAMqnB,UAAY,kBAAC,GAAD,MAAkBvkB,EAAE,8CAA+C,gBAhOrHinB,GAeKvb,aAAe,CAClB0c,YAAa,IACbE,UAAW,CAAC,QAAS,qEACrB3W,WAAY,4BACZ0V,eAAe,GAuNvB,MAUMxD,GAAe,CACjBhoC,uBjBpPkC,KAC3B,CACHrQ,KhH+HiC,8BiIoHrCiQ,4BjB/QwCH,IACjC,CACH9P,KhHqJJ,kCgHpJI8P,KAAMA,KiB+QC0qB,IC3RX,GAAO,GD2RIA,gBAAW1D,YAfF93B,IACb,CACH2G,QAAS3G,EAAMirB,kBAAkBtkB,QACjCozC,UAAW/5C,EAAMirB,kBAAkB9sB,QACnCw7C,OAAQ35C,EAAMirB,kBAAkBpa,KAChCwsC,WAAYr9C,EAAMirB,kBAAkBna,KACpCmD,WAAYjU,EAAM0U,OAAOT,aASkBolC,GAAzBvhB,CAAuCC,eAAkB0kB,MCzRnF,SAAS,KAA2Q,OAA9P,GAAW7qB,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAI1X,EAAI,EAAGA,EAAI2X,UAAUlb,OAAQuD,IAAK,CAAE,IAAI4X,EAASD,UAAU3X,GAAI,IAAK,IAAI9b,KAAO0zB,EAAcJ,OAAOK,UAAUC,eAAeC,KAAKH,EAAQ1zB,KAAQwzB,EAAOxzB,GAAO0zB,EAAO1zB,IAAY,OAAOwzB,IAA2BM,MAAMC,KAAMN,WAIhT,MAAMmsB,GAAU3rB,IACd,IAAI,OACFC,EAAM,MACNC,KACGC,GACDH,EACJ,OAAoB,IAAMI,cAAc,MAAO,GAAS,CACtDC,MAAO,GACPC,OAAQ,GACRC,QAAS,YACTC,KAAM,OACNC,IAAKR,GACJE,GAAQD,EAAqB,IAAME,cAAc,QAAS,KAAMF,GAAS,KAAM,KAAU,GAAqB,IAAME,cAAc,OAAQ,CAC3IC,MAAO,GACPC,OAAQ,GACR8I,GAAI,EACJ5I,KAAM,kBACH,KAAU,GAAqB,IAAMJ,cAAc,OAAQ,CAC9DiJ,SAAU,UACVC,SAAU,UACVzI,EAAG,2ZACHL,KAAM,eAIJ,GAA0B,IAAMO,WAAW,CAACZ,EAAOM,IAAqB,IAAML,cAAcurB,GAAS,GAAS,CAClH1rB,OAAQQ,GACPN,KACY,IC3BR,SAASyrB,GAA6B98C,GACzC8R,GAAMC,SAASm+B,GAA6BlwC,IAGzC,SAAS+8C,KACZjrC,GAAMC,SAASm+B,GAA6B,KCwDhD,MAAM8M,GACa,gBADbA,GAEc,iBAFdA,GAGiB,oBAEjBC,GAA4B,8CAElC,MAAMC,WAA2BzpB,IAAMC,UAAW,cAAD,sCAsB7C/0B,MAAQ,CACJw+C,yBAAyB,EACzBC,uBAAuB,EACvBC,iBAAkB,KAClBC,kBAAmB,GACnBC,4BAA4B,GA3Ba,KAyC7CC,sBAAwBjC,MAAO5zC,EAAK81C,KAChC,MAAMC,EAAc/1C,EAAI8qC,SACxB,GAAIjhC,KAAE0K,QAAQwhC,EAAaD,GACvB,OAKJzsB,KAAKK,MAAM5pB,+BACPE,EAAInD,GACJ,WACAi5C,GAEJjrC,KACA,MAAM2kC,QlB4BP,SACHwG,EACAjM,EACAkM,EACAH,GAEA,MAAMj6C,EAAO,CACTq6C,QAASD,EAAWp5C,GACpBiuC,SAAUgL,EAAc/K,OAAO+K,GAAe,GAK5C9L,EAAG,UAHOD,EzF1E2B,4BADP,eyF8E3B,OAAgBiM,EAAhB,KAQT,OAPA7rC,GAAMC,SH1HC,CACHpS,K/GyE+B,0B+GxE/B6G,eGyHqB,IACdo3C,EACHE,yBAAyB,EACzBC,kBAAmB,QAGpBhjC,KACF2U,KAAKiiB,EAAKnuC,GACVyX,KAAM2U,IACH9d,GAAMC,SH9HqBvL,KAC5B,CACH7G,K/GmEiC,4B+GlEjC6G,mBG4HQC,CAAuB,IAChBmpB,EAAKpsB,KACRs6C,yBAAyB,EACzBC,mBAAmB,KAIpB,CAAEzM,WAAW,KAEvBp2B,MAAOla,IACJ,MAAMnC,EAAeoZ,GAAsBjX,GAY3C,OAXA8Q,GAAMC,SHnIiB,EAACvL,EAAgB3J,KACzC,CACH8C,K/G6D8B,yB+G5D9B6G,iBACA3J,MAAOA,IGgIC6J,CACI,IACOk3C,EACHE,yBAAyB,EACzBC,mBAAmB,GAEvBl/C,IAID,CAAEyyC,WAAW,EAAOzyC,kBkB3EVm/C,CACjBhtB,KAAKK,MAAM/rB,QAAQd,GACnBwsB,KAAKK,MAAM/rB,QAAQZ,UACnBiD,EACA81C,GAGAtG,EAAO7F,YAGPtgB,KAAKK,MAAM5pB,+BACPE,EAAInD,GACJ,WACAk5C,GAEJ1sB,KAAKK,MAAMphB,eACPC,GAAUoB,WACV,kBAAC6H,GAAA,EAAD,CAAOC,QAAQ,gDAAf,mCAA4F,CAAEva,aAAcs4C,EAAOt4C,eACnHmyB,KAAKK,MAAM4H,SAASD,YAzEa,KA8E7CilB,SAAW,KACP,GAAIjtB,KAAKK,MAAM7rB,cACX,OAEJ,MAAMF,EAAU0rB,KAAKK,MAAM/rB,QAC3BkN,KlBmDD,SAA2BhO,EAAIktC,EAAUqF,EAAWkD,GACvD,MAAMz2C,EAAO,CACTkB,UAAWgtC,EACXsF,gBAAiBxyC,GAIrB,OADAsN,GAAMC,SH/IC,CACHpS,K/GsDiC,8BkHyF9Bob,KACF6Y,IzFpI0B,wByFoIDpwB,GACzByX,KAAM2U,IACH9d,GAAMC,SH7IP,CACHpS,K/GiDmC,gCkH6FxB,CAAE2xC,WAAW,KAEvBp2B,MAAOla,IACJ,MAAMnC,EAAeoZ,GAAsBjX,GAG3C,OAFA8Q,GAAMC,SH9IoB/Q,KAC3B,CACHrB,K/G4CgC,2B+G3ChC9C,MAAOmE,IG2IY8F,CAAsBjI,IAE9B,CAAEyyC,WAAW,EAAOzyC,kBkBpE/Bq/C,CAAkB54C,EAAQd,GAAIc,EAAQZ,WAAWuW,KAAMk8B,IAC/CA,EAAO7F,UACPtgB,KAAKmtB,kBAELntB,KAAKotB,aAAajH,EAAOt4C,iBAxFQ,KA6F7Cs/C,gBAAkB,KACd,MAAM,EAAEhqB,GAAMnD,KAAKK,MACbgtB,EAAgBzzB,GAAKS,cAErBwuB,EAAkBhZ,GACpB7P,KAAKK,MAAM/rB,QAAQb,QACrBI,OhDzKuB,agD2KzB,IAAIy5C,EAAc,kBAACnlC,GAAA,EAAD,CAAOC,QAAQ,8DAAf,cACF,CAAE3U,OAAQo1C,GADR,6CAId7oB,KAAKK,MAAM/rB,QAAQZ,YACnB45C,EAAc,kBAACnlC,GAAA,EAAD,CAAOC,QAAQ,4DAAf,cACE,CAAE3U,OAAQo1C,GADZ,uDAKlB,IAAIp3C,EACA,yBAAKiP,UAAU,mCACX,8BAAO4sC,GACP,kBAAC,KAAD,CACIpkB,GAAItP,GAAKkB,SACTpa,UAAU,kFAETyiB,EAAE,mEAAoE,kBAKnFnD,KAAKK,MAAMphB,eACPC,GAAUc,aACVvO,EACA47C,GAEJrtB,KAAKK,MAAMmG,QAAQI,KAAKymB,IAhIiB,KAmI7CD,aAAgBv/C,IACZ,MAAM4D,EAAU,kBAAC0W,GAAA,EAAD,CAAOC,QAAQ,0CAAf,gDAA6F,CAAEva,iBAC/GmyB,KAAKK,MAAMphB,eACPC,GAAUoB,WACV7O,EACAw6C,KAxIqC,KA4I7CsB,QAAU,KACFvtB,KAAKK,MAAM5rB,gBAGf+M,KACAi/B,GACIzgB,KAAKK,MAAM/rB,QAAQd,GACnBwsB,KAAKK,MAAM/rB,QAAQZ,UACnBssB,KAAKK,MAAM/rB,QAAQb,QACrBwW,KAAMk8B,IACCA,EAAO7F,WACRtgB,KAAKK,MAAMphB,eACPC,GAAUoB,WACV,kBAAC6H,GAAA,EAAD,CAAOC,QAAQ,0CAAf,sCAAyF,CAAEva,aAAcs4C,EAAOt4C,eAChHmyB,KAAKK,MAAM4H,SAASD,cA1JS,KAgK7CwlB,yBAA4BnB,IACxBrsB,KAAKkM,SAAS,CACVigB,yBAAyB,EACzBE,iBAAkBA,KAnKmB,KAuK7CoB,oBAAsB,OACbztB,KAAKK,MAAMoP,YAAczP,KAAKK,MAAM/rB,WAIrC0rB,KAAKK,MAAM/rB,QAAQ6Z,QACnB6R,KAAKK,MAAM/rB,QAAQ6Z,OAAOna,QAAU86B,GAAaG,aA7KZ,KAiL7Cye,2BAA6B,KACzB1tB,KAAKkM,SAAUsH,IACJ,CACH2Y,yBAA0B3Y,EAAU2Y,4BApLH,KAyL7CwB,uBAAyB,SAAClK,GAA6B,IAAlBC,EAAiB,uDAAP,GAC3C,EAAKxX,SAAS,CAAEkgB,uBAAuB,IACvC5qC,KACAgiC,GACI,EAAKnjB,MAAM/rB,QAAQd,GACnBiwC,EACAC,GAECz5B,KAAMzX,IACH,EAAK05B,SAAS,CACVigB,yBAAyB,EACzBC,uBAAuB,IAI3BhrC,GAFU,0BAAsBqiC,EAAY,cAAgB,iBAAlD,wBAEoB,EAAKpjB,MAAM4H,SAASD,YAErD9d,MAAOre,IACJ,EAAKqgC,SAAS,CAAEkgB,uBAAuB,IACvC7qC,GAAsB1V,EAAM4F,QAASw6C,OA5MJ,KAgN7C2B,sBAAwB,KACpB5tB,KAAK2tB,wBAAuB,IAjNa,KAoN7CE,yBAA2B,KACvBrsC,KACA,MAAMkiC,EAAU1jB,KAAKryB,MAAM2+C,kBAC3B,IAAK5I,EAMD,OALA1jB,KAAKkM,SAAS,CAAEqgB,4BAA4B,SAC5ChrC,GACI,wDACA0qC,IAIJjsB,KAAKkM,SAAS,CAAEqgB,4BAA4B,IAGhDvsB,KAAK2tB,wBAAuB,EAAOjK,IApMvCxW,mBAAmBC,GAEXA,EAAU74B,UAAY0rB,KAAKK,MAAM/rB,SlBmRtC,SAAoCA,GACvC,IAAKA,IAAYA,EAAQb,OACrB,OAEJ,MAAMA,EAASa,EAAQb,OACjBitC,EAAWpsC,EAAQZ,UAEnBo6C,EAAkBje,GAA2Bp8B,GAAQI,O9BhY9B,a8BmY7B,IAAI7E,EACA,kBAACmZ,GAAA,EAAD,CAAOC,QAAQ,sCACV,CAAE0lC,oBAGPpN,IACA1xC,EACI,kBAACmZ,GAAA,EAAD,CAAOC,QAAQ,oCACV,CAAE0lC,mBADP,gBAKRhtC,GAAMC,SAASm+B,GAA6BlwC,IkBxSpC++C,CAA2B/tB,KAAKK,MAAM/rB,SAI9C04B,qBAAqBG,GACjB4e,KA+LJ7R,iBAAiB,GAAqC,IAArC,QAAEpuC,EAAF,MAAWD,EAAX,YAAkBmiD,EAAlB,EAA+B7qB,GAAK,EAC7CjuB,EAAU,qCAYd,OATIA,EADApJ,EACU,kBAAC,GAAD,MACHD,EACG,0BAAM6U,UAAU,eAAe7U,GAE/Bs3B,EADH6qB,EACK,+CAEA,kDAGT,6BAAM94C,GAGjBuuB,SACI,OACI,oCACI,kBAACuG,GAAA,EAAD,CAAMtpB,UAAU,sBACZ,kBAACqwB,GAAA,EAAD,KAAa/Q,KAAKiuB,gBAClB,kBAAChkB,GAAA,EAAD,CAAUvpB,UAAU,OACfsf,KAAKkuB,qBACLluB,KAAK8b,gBAGd,kBAAC,GAAD,CAAa0O,eAAe,EAAMC,UAAWzqB,KAAKK,MAAMoqB,YACvDzqB,KAAKmuB,2BAKlBD,qBACI,MAAM,QAAE55C,EAAF,UAAWm7B,EAAX,oBAAsB2e,EAAtB,qBAA2CC,GAAyBruB,KAAKK,MAC/E,IAAI,OAAC/rB,QAAD,IAACA,OAAD,EAACA,EAASd,MAAMi8B,EAIpB,OACI,yBAAK/uB,UAAU,wBACX,yBAAKA,UAAU,aACX,kBAAC,GAAD,CACIggC,SAAUpsC,EAAQZ,UAClBJ,YAAa86C,EAAqBtI,aAAcuI,EAAsBnK,mBAAmB,EACzFxjC,UAAU,WAO9B4tC,gBACI,MAAM,EAAEnrB,GAAMnD,KAAKK,MACnB,OAAIL,KAAKytB,sBAED,oCACI,kBAAC3mB,GAAA,EAAD,CAAKsU,GAAG,IAAI16B,UAAU,QAClB,kBAAC+yB,GAAA,EAAD,CAAW/yB,UAAU,QACjB,kBAAC26B,GAAA,EAAD,CACIlQ,MAAM,SACNmQ,OAAK,EACLnW,QAAS,IACLnF,KAAKwtB,yBACDxB,IAGR9mB,SACIlF,KAAKK,MAAMvrB,iBACX0L,KAAE0xB,MAAMlS,KAAKK,MAAM/rB,QAAQd,KAC3BwsB,KAAKK,MAAM7rB,eAGdwrB,KAAKK,MAAM7rB,cACR,kBAAC,GAAD,MAEA2uB,EAAE,iBAAkB,iBAKpC,kBAAC2D,GAAA,EAAD,CAAKsU,GAAG,IAAI16B,UAAU,QAClB,kBAAC+yB,GAAA,EAAD,CAAW/yB,UAAU,QACjB,kBAAC26B,GAAA,EAAD,CACIlQ,MAAM,UACNmQ,OAAK,EACLnW,QAAS,IACLnF,KAAKwtB,yBACDxB,IAGR9mB,SACIlF,KAAKK,MAAMvrB,iBACX0L,KAAE0xB,MAAMlS,KAAKK,MAAM/rB,QAAQd,KAC3BwsB,KAAKK,MAAM7rB,eAGdwrB,KAAKK,MAAM7rB,cACR,kBAAC,GAAD,MAEA2uB,EAAE,iBAAkB,eASzCnD,KAAKuuB,eAGhBA,eACI,MAAM,EAAEprB,GAAMnD,KAAKK,MACnB,OAAI4N,GAASjO,KAAKK,MAAM/rB,WAAa0rB,KAAKK,MAAMoP,UAExC,kBAAC3I,GAAA,EAAD,CAAKsU,GAAG,IAAI16B,UAAU,QAClB,kBAAC+yB,GAAA,EAAD,CAAW/yB,UAAU,QACjB,kBAAC26B,GAAA,EAAD,CACIlQ,MAAM,UACNmQ,OAAK,EACLnW,QAAS,IACLnF,KAAKwtB,yBACDxB,IAGR9mB,SACIlF,KAAKK,MAAMvrB,iBACX0L,KAAE0xB,MAAMlS,KAAKK,MAAM/rB,QAAQd,KAC3BwsB,KAAKK,MAAM7rB,eAGdwrB,KAAKK,MAAM7rB,cACR,kBAAC,GAAD,MAEA2uB,EAAE,iBAAkB,YAQpC,kBAAC2D,GAAA,EAAD,CAAKsU,GAAG,IAAI16B,UAAU,QAClB,kBAAC+yB,GAAA,EAAD,CAAW/yB,UAAU,QACjB,kBAAC8tC,GAAD,CACI1iD,QAASk0B,KAAKK,MAAM5rB,cACpBywB,SAAU1kB,KAAE0xB,MAAMlS,KAAKK,MAAM/rB,QAAQd,IACrChB,KAAM,CACF6B,OAAQ2rB,KAAKK,MAAMhsB,OACnBC,QAAS0rB,KAAKK,MAAM/rB,QACpBxE,SAAUkwB,KAAKK,MAAMpxB,cAEzBg6C,QAAS,IAAMjpB,KAAKotB,aAAa,QAQzDa,eACI,MAAM,EAAE9qB,GAAMnD,KAAKK,MACbhsB,EAAS2rB,KAAKK,MAAMhsB,OAG1B,OACI,oCACI,kBAACwyB,GAAA,EAAD,CAAKnmB,UAAU,wBACX,kBAAComB,GAAA,EAAD,CAAKsU,GAAG,IAAI16B,UAAU,QAClB,kBAACmmB,GAAA,EAAD,CAAKnmB,UAAU,QACX,kBAAComB,GAAA,EAAD,CAAKpmB,UAAU,QACX,kBAAC,GAAD,CACIwkB,UAAQ,EACRwO,UAAWvQ,EAAE,sBACbnvB,MAAOK,EAAOo0C,eAGtB,kBAAC3hB,GAAA,EAAD,CAAKpmB,UAAU,QACX,kBAAC,GAAD,CACIwkB,UAAQ,EACRwO,UAAWvQ,EAAE,kBACbnvB,MACIK,EAAOZ,OACDo8B,GACEx7B,EAAOZ,QACTI,OhDpeb,agDuea,QAM1B,kBAACizB,GAAA,EAAD,CAAKsU,GAAG,IAAI16B,UAAU,QAClB,kBAACmmB,GAAA,EAAD,CAAKnmB,UAAU,wBACX,kBAAComB,GAAA,EAAD,CAAKsU,GAAG,IAAI16B,UAAU,QAClB,kBAAC,GAAD,CACIwkB,UAAQ,EACRwO,UAAWvQ,EAAE,yBACbnvB,MAAOK,EAAO6I,kBAItB,kBAAC4pB,GAAA,EAAD,CAAKsU,GAAG,IAAI16B,UAAU,QAClB,kBAAC,GAAD,CACIwkB,UAAQ,EACRwO,UAAWvQ,EAAE,2BACbnvB,MAAO8U,GAAkBjV,OAAOQ,EAAO2C,sBAI/C,kBAAC8vB,GAAA,EAAD,CAAKsU,GAAG,IAAI16B,UAAU,QAClB,kBAAC,GAAD,CACIwkB,UAAQ,EACRwO,UAAWvQ,EAAE,4BACbnvB,MAAO8U,GAAkBjV,OAAOQ,EAAO6C,kBAO3D,kBAAC2vB,GAAA,EAAD,CAAKnmB,UAAU,wBACX,kBAAComB,GAAA,EAAD,CAAKsU,GAAG,IAAI16B,UAAU,QAClB,kBAAC,GAAD,CACIwkB,UAAQ,EACRwO,UAAWvQ,EAAE,mBACbnvB,MAAOK,EAAO3H,eAGtB,kBAACo6B,GAAA,EAAD,CAAKsU,GAAG,IAAI16B,UAAU,IAClB,kBAACmmB,GAAA,EAAD,CAAKnmB,UAAU,mBACX,kBAAComB,GAAA,EAAD,CAAKsU,GAAG,IAAI16B,UAAU,QAClB,kBAAC,GAAD,CACIwkB,UAAQ,EACRwO,UAAWvQ,EACP,2BAEJnvB,MAAO8U,GAAkBjV,OAAOQ,EAAO0C,kBAI/C,kBAAC+vB,GAAA,EAAD,CAAKsU,GAAG,IAAI16B,UAAU,QAClB,kBAAC,GAAD,CACIwkB,UAAQ,EACRwO,UAAWvQ,EAAE,2BACbnvB,MAAO8U,GAAkBjV,OAAOQ,EAAO4C,oBAI9C+oB,KAAKsuB,oBAQ9BH,0BACI,MAAM,EAAEhrB,GAAMnD,KAAKK,MACbgsB,EAAmBrsB,KAAKryB,MAAM0+C,iBACpC,IAAIjsB,EAAQ,GACRgnB,EAAoB,GACpBqH,EAAgB,OAChB/G,EAAY1nB,KAAKryB,MAAMy+C,sBAkB3B,OAjBIC,IAAqBL,KACrB5rB,EAAQ+C,EAAE,8BAA+B,2BACzCikB,EAAoBjkB,EAAE,kBAAmB,WACzCsrB,EAAgBzuB,KAAK4tB,uBAErBvB,IAAqBL,KACrB5rB,EAAQ+C,EAAE,6BAA8B,8BACxCikB,EAAoBjkB,EAAE,iBAAkB,cACxCsrB,EAAgBzuB,KAAK6tB,0BAErBxB,IAAqBL,KACrB5rB,EAAQ+C,EAAE,wCAAyC,iBACnDikB,EAAoBjkB,EAAE,kBAAmB,WACzCsrB,EAAgBzuB,KAAKitB,SACrBvF,EAAY1nB,KAAKryB,MAAMy+C,uBAAyBpsB,KAAKK,MAAM7rB,eAI3D,kBAAC,GAAD,CACI8yC,OAAQtnB,KAAKryB,MAAMw+C,wBACnB5E,SAAUvnB,KAAK0tB,2BACflG,SAAUxnB,KAAK0tB,2BACfjG,UAAWgH,EACXrH,kBAAmBA,EACnBhnB,MAAOA,EACPgU,WAAYsT,EACZA,UAAWA,EACXC,YAAa,CAACsE,KAEbI,IAAqBL,IAClB,uBAAGtrC,UAAU,cACRyiB,EACG,wDACA,uDAIXkpB,IAAqBL,IAClB,oCACI,uBAAGtrC,UAAU,cACRyiB,EACG,uDACA,0DAGR,uBAAGziB,UAAU,cACRyiB,EACG,iEACA,mFAGR,kBAAC,GAAD,CACI6P,UAAQ,EACRU,UAAWvQ,EAAE,oCAAqC,gBAClD4Q,YAAa5Q,EAAE,oCAAqC,gBACpDnvB,MAAOgsB,KAAKryB,MAAM2+C,kBAClBla,SAAWp+B,GACPgsB,KAAKkM,SAAS,CACVogB,kBAAmB9rC,KAAEoyB,KAAK5+B,KAGlCo/B,QAASpT,KAAKryB,MAAM4+C,8BAI/BF,IAAqBL,IAClB,uBAAGtrC,UAAU,cACRyiB,EACG,iDACA,8CAQxB2Y,cACI,MAAM,EAAE3Y,GAAMnD,KAAKK,MAGb0b,EAAU,CACZ,CACIl4B,UAAW,MACX7U,KAAMm0B,EAAE,sBACR8Y,QAAS,cACTD,MAAM,EACN0S,OAAQ,IAEZ,CACI7qC,UAAW,OACX7U,KAAMm0B,EAAE,0BACR8Y,QAAS,cACTD,MAAM,EACN0S,OAAQ,IAEZ,CACI7qC,UAAW,eACX7U,KAAMm0B,EAAE,8BACR8Y,QAAS,aACTD,MAAM,EACN0S,OAAQ,IAEZ,CACI7qC,UAAW,SACX7U,KAAMm0B,EAAE,gCACR8Y,QAAS,aACTD,MAAM,EACN0S,OAAQ,IAEZ,CACI7qC,UAAW,UACX7U,KAAMm0B,EAAE,0BACR8Y,QAAS,aACTD,MAAM,EACN2S,MAAO,QACPC,YAAa,QACbjS,UAAY+L,GAAYx/B,GAAyBrV,OAAO60C,GACxDgG,OAASG,GACJ7uB,KAAKK,MAAM9rB,mBAA+B,GAAV,QACrCu6C,cAAe,WAEnB,CACIjrC,UAAW,WACX7U,KAAMm0B,EAAE,2BACR8Y,QAAS,GACTD,MAAM,EACNW,UAAW,CAAC8E,EAAU9qC,IACdA,EAAIm2C,wBACG,kBAAC,GAAD,MAGP,kBAAC,GAAD,CACI94C,MAAOytC,EACP/O,OAAS1+B,GACLgsB,KAAKwsB,sBAAsB71C,EAAK3C,GAEpCkxB,SACIlF,KAAKK,MAAMoP,YACVxB,GAASjO,KAAKK,MAAM/rB,SAEzB3F,KAAK,SACL+R,UAAU,iBACVkvB,WAAY,CACRmf,IAAK,IACLC,KAAM,KAEV9b,OAAiC,IAA1Bv8B,EAAIo2C,kBACX3Z,SAAmC,IAA1Bz8B,EAAIo2C,oBAIzB2B,OAASG,GACJ7uB,KAAKK,MAAM9rB,mBAEN,GADAyrB,KAAKK,MAAMhsB,OAAO6I,eAE5B4xC,cAAe,gBAEnB,CACIjrC,UAAW,gBACX7U,KAAMm0B,EAAE,+BACR8Y,QAAS,aACTD,MAAM,EACN2S,MAAO,QACPC,YAAa,QACbK,YAAa,QACbtS,UAAW,CAAC5lC,EAAeJ,IAAQmS,GAAkBjV,OAAOkD,GAC5D23C,OAASG,GACJ7uB,KAAKK,MAAM9rB,mBAEN,GADAuU,GAAkBjV,OAAOmsB,KAAKK,MAAMhsB,OAAO0C,eAErD+3C,cAAe,WAEnB,CACIjrC,UAAW,cACX7U,KAAMm0B,EAAE,kCACR8Y,QAAS,aACTD,MAAM,EACN2S,MAAO,QACPC,YAAa,QACbK,YAAa,QACbtS,UAAW,CAACmF,EAAaoN,KACrB,MAAMC,EAAc,yBAAqBD,EAAW17C,IAC9C47C,EAA+C,IAAjC1N,OAAOwN,EAAWG,WAChCC,EAAiB,kBAACnnC,GAAA,EAAD,CAAOC,QAAQ,kCAAf,oCAAkF,CAAEmnC,SAAUpmC,GAAgCtV,OAAOq7C,EAAWG,YAAhJ,qCACvB,OACI,6BACI,yBAAK3uC,UAAU,eACVoI,GAAkBjV,OAAOiuC,GAEtBsN,GACI,0BAAM1uC,UAAU,QACZ,kBAAE,GAAF,CACIlN,GAAI27C,EACJzuC,UAAU,aACVkI,MAAO,CAAE8oB,cAAe,SAE5B,kBAACxN,GAAA,EAAD,CACIC,UAAU,SACV1E,OAAQ0vB,EACRK,eAAe,mCACfC,eAAe,oCAEdH,KAMrB,6BACA,kCAAQnmC,GAAgCtV,OAAOq7C,EAAWvG,kBAA1D,OAIZ+F,OAASG,GACJ7uB,KAAKK,MAAM9rB,mBAEN,GADAuU,GAAkBjV,OAAOmsB,KAAKK,MAAMhsB,OAAO2C,mBAErD83C,cAAe,YAIvB,OACI,kBAAC,KAAD,CACI/R,YAAU,EACVC,UAAU,EACVf,QAAQ,wCACRgB,eAAe,mBACfC,SAAS,KACT1qC,KAAMwtB,KAAKK,MAAMpxB,aACjB8sC,QAASA,EACTsB,iBACI,uBAAMnD,iBAAN,CACIruC,MAAOm0B,KAAKK,MAAMqvB,wBAClB5jD,QAASk0B,KAAKK,MAAM9rB,mBACpBy5C,YACIhuB,KAAKK,MAAM/rB,SACX0rB,KAAKK,MAAM/rB,QAAQgyC,aAEvBnjB,EAAGA,OAQ3B,MAsCM6jB,GAAe,CACjBnwC,6BrBl0BwC,CAACD,EAAO5C,KACzC,CACHrF,K/GiGJ,mC+GhGIiI,MAAOA,EACP5C,MAAOA,IqB+zBX27C,8BrB3zByC,CAAC54C,EAAeC,EAAmBC,EAAiBC,KACtF,CACHvI,K/G2FJ,oC+G1FIoI,gBACAC,oBACAC,kBACAC,eqBszBJT,+BrBlzB0C,CAACjD,EAAIoD,EAAO5C,KAC/C,CACHrF,K/G6EJ,qC+G5EI6E,GAAIA,EACJoD,MAAOA,EACP5C,MAAOA,IqB8yBXiL,mBAGWkqB,oBACX1D,YA9CqB93B,IACrB,MAAM2G,EAAU3G,EAAM2F,YAAYgB,QAC5BosC,EAAQ,OAAGpsC,QAAH,IAAGA,OAAH,EAAGA,EAASZ,UAE1B,IAAI06C,EAAsB1N,EAAWpsC,EAAQs7C,gBAAkBt7C,EAC3D+5C,EAAuB3N,EAAWpsC,EAAUA,EAAQiuC,cAExD,MAAO,CACHx2C,KAAM4B,EAAMe,KAAK3C,KACjBuI,UACA85C,sBACAC,uBACAh6C,OAAQ,IACD1G,EAAM2F,YAAYe,UAClB8sC,GACCxzC,EAAM2F,YAAYxD,SAClB,CACIsxC,YAAazzC,EAAM2F,YAAYe,OAAO+sC,YACtC3tC,OAAQ9F,EAAM2F,YAAYe,OAAOZ,UAI7CxE,aAActB,EAAM2F,YAAYxD,SAChCyE,mBAAoB5G,EAAM2F,YAAYiB,mBACtCm7C,wBAAyB/hD,EAAM2F,YAAYzH,MAC3C2I,cAAe7G,EAAM2F,YAAYkB,cACjCC,cAAe9G,EAAM2F,YAAYmB,cACjCK,gBAAiBnH,EAAM2F,YAAYwB,gBACnC+6C,kBAAmB1O,GACfxzC,EAAM2F,YAAYxD,SAClB,CACIsxC,YAAazzC,EAAM2F,YAAYe,OAAO+sC,YACtC3tC,OAAQ9F,EAAM2F,YAAYe,OAAOZ,WAgBzCuzC,GAFJvhB,CAGEC,aAAgB,SAAhBA,CAA0BwmB,MCh0BhC,MAAM4D,WAA4BrtB,IAAMC,UAAW,cAAD,yBAC9C/0B,MAAQ,CAAEg/C,cAAe,KAAMoD,iBAAiB,GADF,KA6H9CC,eAAiB,KACb,MAAMC,EAAgBjwB,KAAKK,MAAM4H,SAASt6B,MAC1C,OAAIsiD,GAAiBA,EAAcC,kBACxBD,EAAcC,kBAElBt7B,KAAgBgF,GAAK4C,kBAAoB5C,GAAKS,eAlIX,KAqI9CowB,UAAY,KACR,MAAMj3C,EAAKwsB,KAAKK,MAAMoM,MAAMmI,OAAOphC,IAEbohB,KAChB0uB,GACA/C,IACQ/sC,GAAIyW,KAAMk8B,IACfA,EAAO7F,WACR/+B,GACI,kBAAC4G,GAAA,EAAD,CAAOC,QAAQ,yCAAf,+CACwC,IACnC,CAAEva,aAAcs4C,EAAOt4C,eAE5BmyB,KAAKK,MAAM4H,SAASD,UACpB,MAnJ8B,KAyJ9CmoB,YAAc,IAENv7B,MACAoL,KAAKK,MAAM/rB,QAAQd,IACnB,CAAC0sC,GAAWnR,aAAa5sB,SAAS6d,KAAKK,MAAM/rB,QAAQ6Z,OAAOna,OA7JtB,KAiK9Co8C,kBAAoB,KAChBpwB,KAAKkM,SAAS,CACV6jB,iBAAiB,KAnKqB,KAuK9CM,eAAiB,KACTrwB,KAAKK,MAAM3rB,8BAGfsrB,KAAKkM,SAAS,CACV6jB,iBAAiB,IAErBvuC,OA9K0C,KAiL9C8uC,SAAW,KACP,GAAItwB,KAAKK,MAAM3rB,4BACX,OAEJ,MAAMlB,EAAKwsB,KAAKK,MAAM/rB,QAAQd,GAC9BgO,KlB2GD,SAAgChO,GAKnC,OADAsN,GAAMC,SJ5OC,CACHpS,K/GuCJ,uCmHqMOob,KACF8vB,OADE,U1FhJP,sC0FgJO,OACoCrmC,EADpC,MAEFyW,KAAM2U,IACH9d,GAAMC,SJ1OP,CACHpS,K/GmCJ,yCmHwMe,CAAE2xC,WAAW,KAEvBp2B,MAAOla,IACJ,MAAMnC,EAAeoZ,GAAsBjX,GAG3C,OAFA8Q,GAAMC,SJ3O4B/Q,KACnC,CACHrB,K/G+BJ,oC+G9BI9C,MAAOmE,IIwOYiG,CAA8BpI,IAEtC,CAAEyyC,WAAW,EAAOzyC,kBkB1H/B0iD,CAAuB/8C,GAAIyW,KAAMk8B,IAC7B,GAAIA,EAAO7F,UACPl/B,GACI,8CACAwY,GAAKS,eACL,GAEJm2B,SAASC,KAAKC,UAAUC,OAAO,cAC/B3wB,KAAK4wB,iCACF,CAEHrvC,GADa,yDAA4C4kC,EAAOt4C,cAlM/C,yBAmMwC,OAlMvB,KAuM9C+iD,2BAA6B,KACzB5wB,KAAKK,MAAMmG,QAAQI,KAAKhN,GAAKS,cAAe,CACxCw2B,aAAa,KAtMrBhkB,oBACI7M,KAAKyqB,YAGThnB,SACI,MAAM,EAAEN,GAAMnD,KAAKK,MACnB,OACI,oCACI,kBAACwG,GAAA,EAAD,CAAKnmB,UAAU,2BACX,kBAAComB,GAAA,EAAD,CAAK2D,GAAG,QACJ,kBAACoT,GAAD,CACI1Y,QAAS,IACLnF,KAAKK,MAAMmG,QAAQI,KAAK5G,KAAKgwB,kBAEjChhD,KAAMm0B,EAAE,eAAgB,aAG/BnD,KAAKmwB,eACF,kBAACrpB,GAAA,EAAD,CAAKpmB,UAAU,YACX,kBAAC,GAAD,CACI1R,KAAK,kBACLm2B,QAASnF,KAAKowB,kBACdlrB,SACIlF,KAAKK,MAAM3rB,gCAM/B,kBAACmyB,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,KACI,kBAAC,GAAD,CACI2I,UAAW7a,KACX61B,UAAWzqB,KAAKyqB,cAK3BzqB,KAAK8wB,qBAKlBA,oBACI,MAAM,EAAE3tB,GAAMnD,KAAKK,MACnB,IAAIwoB,EAAkBhZ,GAClB7P,KAAKK,MAAM/rB,QAAQb,QACrBI,OjD/EuB,aiDiFzB,OACI,kBAAC+zC,GAAA,EAAD,CACIN,OAAQtnB,KAAKryB,MAAMoiD,gBACnBxI,SAAUvnB,KAAKqwB,eACftI,SAAS,SACTrnC,UAAU,yBAEV,kBAACsnC,GAAA,EAAD,CAAWtnC,UAAU,OACjB,kBAACmmB,GAAA,EAAD,CAAKnmB,UAAU,QACX,kBAAComB,GAAA,EAAD,KACI,0BAAMpmB,UAAU,WAAhB,mCAIJ,kBAAComB,GAAA,EAAD,CAAKpmB,UAAU,mCACX,kBAAC,GAAD,CACI1R,KAAMm0B,EAAE,gBAAiB,SACzBgC,QAASnF,KAAKqwB,mBAI1B,kBAACxpB,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,KACI,kBAAC,GAAD,CACIsD,YAAY,EACZC,aAAc,CA9Eb,6BAkFb,kBAACxD,GAAA,EAAD,CAAKnmB,UAAU,QACX,kBAAComB,GAAA,EAAD,KACI,uBAAGpmB,UAAU,cAAb,2CACuC,IACnC,2BAAImoC,GAFR,OAMR,kBAAChiB,GAAA,EAAD,CAAKnmB,UAAU,cACX,kBAAComB,GAAA,EAAD,CAAKgK,GAAG,IAAIpwB,UAAU,QAClB,kBAAC26B,GAAA,EAAD,CACIlQ,MAAM,UACN0Q,SAAO,EACPP,OAAK,EACLnW,QAASnF,KAAKqwB,eACdnrB,SACIlF,KAAKK,MAAM3rB,6BAGdyuB,EAAE,iBAAkB,gBAG7B,kBAAC2D,GAAA,EAAD,CAAKgK,GAAG,IAAIpwB,UAAU,QAClB,kBAAC26B,GAAA,EAAD,CACIlQ,MAAM,UACNmQ,OAAK,EACLnW,QAASnF,KAAKswB,SACdprB,SACIlF,KAAKK,MAAM3rB,6BAGdsrB,KAAKK,MAAM3rB,4BACR,kBAAC,GAAD,MAEA,mCAmGrBy0B,oBACX1D,YATqB93B,IACd,CACH2G,QAAS3G,EAAM2F,YAAYgB,QAC3BI,4BACI/G,EAAM2F,YAAYoB,8BAK1B+wB,CAAyBC,eAAkBoqB,M,OC3N/C,MAAMiB,WAA0BtuB,IAAMC,UAAW,cAAD,yBAC5C/0B,MAAQ,CACJqjD,sBAAsB,EACtBC,sBAAsB,EACtBC,eAAe,EAEfnB,iBAAiB,GANuB,KAiL5CC,eAAiB,KACb,MAAMC,EAAgBjwB,KAAKK,MAAM4H,SAASt6B,MAC1C,OAAIsiD,GAAiBA,EAAcC,kBACxBD,EAAcC,kBAElBt7B,KAAgBgF,GAAK4C,kBAAoB5C,GAAKS,eAtLb,KAyL5C81B,YAAe1gB,IACHA,GAAazP,KAAKK,MAAM/rB,QAAQZ,WAAassB,KAAKK,MAAM/rB,QAAQd,IAAM,CAAC0sC,GAAWnR,YAAamR,GAAW/Q,UAAUhtB,SAAS6d,KAAKK,MAAM/rB,QAAQ6Z,OAAOna,OA1LvH,KA6L5Cm9C,gBAAkB,KACNnxB,KAAKryB,MAAMqjD,uBACdhxB,KAAKryB,MAAMsjD,sBACZjxB,KAAKK,MAAM3sB,aACTssB,KAAKK,MAAMimB,cAAgBtmB,KAAKK,MAAM+wB,YAjMJ,KAoM5CC,cAAgB,KACZrxB,KAAKkM,SAAS,CACV8kB,sBAAsB,KAtMc,KA0M5CM,aAAe,KACXtxB,KAAKkM,SAAS,CACV+kB,sBAAsB,GAEtB,IAAMjxB,KAAK4wB,+BA9MyB,KAiN5CR,kBAAoB,KAChBpwB,KAAKkM,SAAS,CACV6jB,iBAAiB,KAnNmB,KAuN5CO,SAAW,KACP,MAAM,EAAEntB,GAAMnD,KAAKK,MACnB,GAAIL,KAAKK,MAAMzrB,0BACX,OAEJ,MAAMpB,EAAKwsB,KAAKK,MAAM/rB,QAAQd,GAC9BgO,KpBpBD,SAAiChO,GAEpC,OADAsN,GAAMC,SH1HC,CACHpS,K/G0BJ,qCkHgGOob,KACF8vB,OADE,UzFnJ+B,uCyFmJ/B,OACqCrmC,EADrC,MAEFyW,KAAM2U,IACH9d,GAAMC,SHxHP,CACHpS,K/GsBJ,uCkHmGe,CAAE2xC,WAAW,KAEvBp2B,MAAOla,IACJ,MAAMnC,EAAeoZ,GAAsBjX,GAG3C,OAFA8Q,GAAMC,SHzH0B/Q,KACjC,CACHrB,K/GkBJ,kC+GjBI9C,MAAOmE,IGsHYoG,CAA4BvI,IAEpC,CAAEyyC,WAAW,EAAOzyC,kBoBQ/B0jD,CAAwB/9C,GAAIyW,KAAKk8B,IACzBA,EAAO7F,WACPl/B,GACI+hB,EAAE,2CAA4C,+CAC9CvJ,GAAKS,eACL,GAEJm2B,SAASC,KAAKC,UAAUC,OAAO,cAC/B3wB,KAAK4wB,8BAELrvC,GACI,kBAAC4G,GAAA,EAAD,CAAOC,QAAQ,2CAAf,kDAAgG,CAAEva,aAAcs4C,EAAOt4C,eA1O5G,uBA4OX,MA3O4B,KAiP5CwiD,eAAiB,KACTrwB,KAAKK,MAAMzrB,4BAGforB,KAAKkM,SAAS,CACV6jB,iBAAiB,IAErBvuC,OAxPwC,KA2P5CovC,2BAA6B,KACzB5wB,KAAKK,MAAMmG,QAAQI,KAAKhN,GAAKS,gBA5PW,KA+P5CowB,UAAY,KACR,MAAMj3C,EAAKwsB,KAAKK,MAAMoM,MAAMmI,OAAOphC,IAEbohB,KAAgB2uB,GAA8B/C,IACtDhtC,GAAIyW,KACdk8B,IACSA,EAAO7F,WACR/+B,GACI,kBAAC4G,GAAA,EAAD,CAAOC,QAAQ,+CAAf,gDAAkG,CAAEva,aAAcs4C,EAAOt4C,eACzHmyB,KAAKK,MAAM4H,SAASD,UACpB,MAhQpB6E,oBACI7M,KAAKyqB,YAGTvd,mBAAmBC,EAAWqG,GACtBA,EAAUwd,uBAAyBhxB,KAAKryB,MAAMqjD,sBAC9C7jB,EAAUz5B,YAAcssB,KAAKK,MAAM3sB,WACnCy5B,EAAUmZ,eAAiBtmB,KAAKK,MAAMimB,cACtCtmB,KAAKkM,SAAS,CACVglB,cAAelxB,KAAKmxB,oBAKhC1tB,SACI,MAAM,EAAEN,GAAMnD,KAAKK,MACboP,EAAY7a,KAClB,OACI,yBAAKlU,UAAU,4BACX,kBAACmmB,GAAA,EAAD,CAAKnmB,UAAU,2BACX,kBAAComB,GAAA,EAAD,CAAK2D,GAAG,QACJ,kBAACoT,GAAD,CACI1Y,QAAS,IAAMnF,KAAKK,MAAMmG,QAAQI,KAAK5G,KAAKgwB,kBAC5ChhD,KAAMm0B,EAAE,eAAgB,aAG/BnD,KAAKmwB,YAAY1gB,IACd,kBAAC3I,GAAA,EAAD,CAAKpmB,UAAU,YACX,kBAAC,GAAD,CACI1R,KAAMm0B,EAAE,mCAAoC,mBAC5CgC,QAASnF,KAAKowB,kBACdlrB,SAAUlF,KAAKK,MAAMzrB,8BAKrC,kBAACiyB,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,KACI,kBAAC,GAAD,CACI2I,UAAWA,EACXgb,UAAWzqB,KAAKyqB,eAK1Bhb,IAAczP,KAAKryB,MAAMqjD,sBAAwBhxB,KAAKwxB,kBACvDxxB,KAAK8wB,qBAKlBU,kBACI,MAAM,EAAEruB,GAAMnD,KAAKK,MACnB,OACI,kBAACunB,GAAA,EAAD,CACIN,OAAQtnB,KAAKryB,MAAMujD,cACnB3J,SAAUvnB,KAAKsxB,aACfvJ,SAAS,SACTrnC,UAAU,qBAEV,kBAACsnC,GAAA,EAAD,CAAWtnC,UAAU,OACjB,kBAACmmB,GAAA,EAAD,CAAKnmB,UAAU,QACX,kBAAComB,GAAA,EAAD,KACI,0BAAMpmB,UAAU,WAAWyiB,EAAE,sCAAuC,qBAExE,kBAAC2D,GAAA,EAAD,CAAKpmB,UAAU,mCACX,kBAAC,GAAD,CACI1R,KAAMm0B,EAAE,gBAAiB,SACzBgC,QAASnF,KAAKqxB,kBAI1B,kBAACxqB,GAAA,EAAD,CAAKnmB,UAAU,QACX,kBAAComB,GAAA,EAAD,KACI,uBAAGpmB,UAAU,cACRyiB,EAAE,wCAAyC,iPAIxD,kBAAC0D,GAAA,EAAD,CAAKnmB,UAAU,cACX,kBAAComB,GAAA,EAAD,CAAKgK,GAAG,IAAIpwB,UAAU,QAClB,kBAAC26B,GAAA,EAAD,CACIlQ,MAAM,UACNmQ,OAAK,EACLnW,QAASnF,KAAKqxB,eAEbluB,EAAE,8CAA+C,QAG1D,kBAAC2D,GAAA,EAAD,CAAKgK,GAAG,IAAIpwB,UAAU,QAClB,kBAAC26B,GAAA,EAAD,CACIlQ,MAAM,UACN0Q,SAAO,EACPP,OAAK,EACLnW,QAASnF,KAAKsxB,cAEbnuB,EAAE,iBAAkB,mBASjD2tB,oBACI,MAAM,EAAE3tB,GAAMnD,KAAKK,MACnB,IAAIwoB,EAAkBhZ,GAA2B7P,KAAKK,MAAM/rB,QAAQb,QAAQI,OlD7InD,akD+IzB,OACI,kBAAC+zC,GAAA,EAAD,CACIN,OAAQtnB,KAAKryB,MAAMoiD,gBACnBxI,SAAUvnB,KAAKqwB,eACftI,SAAS,SACTrnC,UAAU,uBAEV,kBAACsnC,GAAA,EAAD,CAAWtnC,UAAU,OACjB,kBAACmmB,GAAA,EAAD,CAAKnmB,UAAU,QACX,kBAAComB,GAAA,EAAD,KACI,0BAAMpmB,UAAU,WAAWyiB,EAAE,wCAAyC,oCAE1E,kBAAC2D,GAAA,EAAD,CAAKpmB,UAAU,mCACX,kBAAC,GAAD,CACI1R,KAAMm0B,EAAE,gBAAiB,SACzBgC,QAASnF,KAAKqwB,mBAI1B,kBAACxpB,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,KACI,kBAAC,GAAD,CAAQzkB,OAAQ2d,KAAKK,MAAMze,WAAYwoB,YAAY,EAAMC,aAAc,CA5IpE,2BA+IX,kBAACxD,GAAA,EAAD,CAAKnmB,UAAU,QACX,kBAAComB,GAAA,EAAD,KACI,uBAAGpmB,UAAU,cACT,kBAACyH,GAAA,EAAD,CAAOC,QAAQ,2CAAf,uDAAuG,2BAAI,CAAEygC,oBAA7G,QAIZ,kBAAChiB,GAAA,EAAD,CAAKnmB,UAAU,cACX,kBAAComB,GAAA,EAAD,CAAKgK,GAAG,IAAIpwB,UAAU,QAClB,kBAAC26B,GAAA,EAAD,CACIlQ,MAAM,UACN0Q,SAAO,EACPP,OAAK,EACLnW,QAASnF,KAAKqwB,eACdnrB,SAAUlF,KAAKK,MAAMzrB,2BAEpBuuB,EAAE,iBAAkB,gBAG7B,kBAAC2D,GAAA,EAAD,CAAKgK,GAAG,IAAIpwB,UAAU,QAClB,kBAAC26B,GAAA,EAAD,CACIlQ,MAAM,UACNmQ,OAAK,EACLnW,QAASnF,KAAKswB,SACdprB,SAAUlF,KAAKK,MAAMzrB,2BAEpBorB,KAAKK,MAAMzrB,0BAA4B,kBAAC,GAAD,MAAuBuuB,EAAE,gDAAiD,oCAoHnIgG,oBAAW1D,YAXF93B,IACb,CACH2G,QAAS3G,EAAM2F,YAAYgB,QAC3BM,0BAA2BjH,EAAM2F,YAAYsB,0BAC7ClB,UAAW/F,EAAM2F,YAAYgB,QAAU3G,EAAM2F,YAAYgB,QAAQZ,UAAY,KAC7E4yC,aAAc34C,EAAM2F,YAAYgB,QAAU3G,EAAM2F,YAAYgB,QAAQgyC,aAAe,KACnF8K,WAAYzjD,EAAM2F,YAAYgB,SAAW3G,EAAM2F,YAAYgB,QAAQ6Z,QAAUxgB,EAAM2F,YAAYgB,QAAQ6Z,OAAOna,QAAUksC,GAAW/Q,SACnIvtB,WAAYjU,EAAM0U,OAAOT,aAIP6jB,CAAyBC,eAAkBqrB,M,iBCrTrE,MAAMU,WAAiBhvB,IAAMC,UA4BzBe,SACI,MAAMiuB,EAAa1xB,KAAKK,MAAMsxB,YAAc/9C,KAAOosB,KAAKK,MAAMrsB,MAAOgsB,KAAKK,MAAMsxB,aAAe/9C,KAAOosB,KAAKK,MAAMrsB,OACjH,IAAK09C,EAAWvhB,UACZ,OACI,0BACIzvB,UAAWsf,KAAKK,MAAM0T,YAAYrzB,UAClCykB,QAASnF,KAAKK,MAAM8E,SAEnBnF,KAAKK,MAAM0T,YAAY/kC,MAKpC,MAAM4iD,EAAeF,EAAW79C,OAAOmsB,KAAKK,MAAMxsB,QAClD,OACI,0BACI6M,UAAWsf,KAAKK,MAAM3f,UACtBykB,QAASnF,KAAKK,MAAM8E,SAEnBysB,IA/CXH,GAiBK5iB,aAAe,CAClB76B,MAAO,KACPH,OnDfmB,amDgBnB89C,YAAa,KACbjxC,UAAW,aACXqzB,YAAa,CACTrzB,UAAW,yBACX1R,KAAM,eA6BHyiD,IC1DX,GAAO,GAAQI,GD0DJJ,MCxDf,SAAS,KAA2Q,OAA9P,GAAWlyB,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAI1X,EAAI,EAAGA,EAAI2X,UAAUlb,OAAQuD,IAAK,CAAE,IAAI4X,EAASD,UAAU3X,GAAI,IAAK,IAAI9b,KAAO0zB,EAAcJ,OAAOK,UAAUC,eAAeC,KAAKH,EAAQ1zB,KAAQwzB,EAAOxzB,GAAO0zB,EAAO1zB,IAAY,OAAOwzB,IAA2BM,MAAMC,KAAMN,WAIhT,MAAMoyB,GAAc5xB,IAClB,IAAI,OACFC,EAAM,MACNC,KACGC,GACDH,EACJ,OAAoB,IAAMI,cAAc,MAAO,GAAS,CACtDC,MAAO,GACPC,OAAQ,GACRC,QAAS,YACTC,KAAM,OACNC,IAAKR,GACJE,GAAQD,EAAqB,IAAME,cAAc,QAAS,KAAMF,GAAS,KAAM,KAAU,GAAqB,IAAME,cAAc,OAAQ,CAC3IS,EAAG,oEACH2I,OAAQ,UACRC,YAAa,IACbC,cAAe,WACZ,KAAW,GAAsB,IAAMtJ,cAAc,OAAQ,CAChES,EAAG,YACH2I,OAAQ,UACRC,YAAa,IACbC,cAAe,WACZioB,KAAWA,GAAsB,IAAMvxB,cAAc,OAAQ,CAChES,EAAG,oBACH2I,OAAQ,UACRC,YAAa,IACbC,cAAe,QACfmoB,eAAgB,aAId,GAA0B,IAAM9wB,WAAW,CAACZ,EAAOM,IAAqB,IAAML,cAAcwxB,GAAa,GAAS,CACtH3xB,OAAQQ,GACPN,KACY,I,OCjCf,MAAM2xB,WAAqBvvB,IAAMC,UAO7Be,SACI,MAAM,KAAEr2B,EAAF,IAAQuzC,GAAQ3gB,KAAKK,MAC3B,OAAKjzB,GAASuzC,EAGLvzC,IAASuzC,EAEV,0BAAMjgC,UAAU,6BAA6BtT,GAMjD,yBAAKsT,UAAU,6BACX,uBACI+e,OAAO,SACPkL,IAAI,sBACJjqB,UAAU,2BACVgqB,KAAMiW,EACNxb,QAASrd,GAAKA,EAAE++B,mBAEfz5C,EACD,kBAAC,GAAD,CAAcsT,UAAU,mCAnBzB,MA0BJsxC,UC3CR,MAAMC,GAAkB,CAC3BC,cAAe,CACX/jC,OAAQ,SACR4zB,OAAQ,CAAC,WAAY,UACrBpzC,KAAM,WAEVwjD,YAAa,CACThkC,OAAQ,OACR4zB,OAAQ,CAAC,UAAW,QACpBpzC,KAAM,WAEVyjD,eAAgB,CACZjkC,OAAQ,UACR4zB,OAAQ,CAAC,oBAAe,WACxBpzC,KAAM,UAIP,SAAS4gC,GAAkBC,GAC9B,IAAK,MAAM6iB,KAAiB9yB,OAAOwiB,OAAOkQ,IACtC,GAAII,EAActQ,OAAO5/B,SAASqtB,GAC9B,OAAO6iB,EAAc1jD,KAI7B,MAAO,UCZX,MAaM2jD,GAA4B,CARrB,WAYPC,GAA2B,CAVlB,YADH,SAEA,UAiCZ,SAASC,GAAkBC,GACvB,OAAO1oC,KAAMC,IAAN,2BAA8ByoC,EAA9B,MAAmDxoC,KAAK2U,GAAQA,EAAKpsB,MAwCjE,QACXkgD,gBArDG,SAAyBC,EAAQ59B,GAAoE,IAA1D69B,EAAyD,uDAA5C,KAAMC,EAAsC,uDAAtB,KAAMC,EAAgB,uDAAN,KACjG,OAAO/oC,KAAM2U,KAAK,oBAAqB,CACnCi0B,SACA/P,UAAW7tB,EACX69B,eACAC,kBACAE,WAAYD,IAEb7oC,KAAK2U,GAAQA,EAAKpsB,OA8CrBggD,qBACAQ,4BAxCG,SAAqCP,GAOxC,OAAOD,GAAkBC,GACxBxoC,KAAKgpC,IACF,IAAIxhD,EAAS9C,EAwBb,OAvBI2jD,GAA0BnwC,SAAS8wC,IACnCxhD,EACI,kBAACy3C,GAAA,EAAD,KACM/lB,GAAMA,EAAE,6BAA8B,iFAGhDx0B,EAAOuQ,GAAUa,SAEVwyC,GAAyBpwC,SAAS8wC,IACzCxhD,EACI,kBAACy3C,GAAA,EAAD,KACM/lB,GAAMA,EAAE,+BAAgC,yBAGlDx0B,EAAOuQ,GAAUmB,QAEjB5O,EACI,kBAACy3C,GAAA,EAAD,KACM/lB,GAAMA,EAAE,6BAA8B,gHAGhDx0B,EAAOuQ,GAAUe,MAEd,CAACxO,UAAS9C,YCnDzB,MAAMukD,WAAsBzwB,IAAMC,UAM9BqJ,YAAY1L,GACR2L,MAAM3L,GADS,KAqPnB8yB,WAAcL,I9FxLX,IAA8Bt/C,E8FyL7BwsB,KAAKK,MAAMmG,QAAQI,M9FzLUpzB,E8FyLgBs/C,E9FxL1Cl5B,GAAKmB,iBAAiBlR,QA1GH,YA0G2BrW,I8FwLQ,CAAE4/C,wBAAwB,KAtPpE,KAyPnBC,cAAgB,KACRrzB,KAAKryB,MAAM2lD,yBACf9xC,KACAwe,KAAKkM,SAAS,CACVonB,wBAAwB,IAE5BC,GAASb,gBAAgB1yB,KAAKK,MAAMzuB,QAASouB,KAAKK,MAAMwH,gBACnD5d,KAAKupC,IACF7nB,OAAO1D,SAASyC,KAAO8oB,IAE1BtpC,MAAMre,IACH0V,GACI0F,GAAsBpb,GACtBm0B,KAAKK,MAAM4H,SAASD,YAG3ByrB,QAAQ,KACLzzB,KAAKkM,SAAS,CACVonB,wBAAwB,QA3QrB,KAgRnBI,2BAA6B,KACzBhyC,GAAoBse,KAAK2zB,qBACzB,MACMlB,EADe,IAAImB,KAAgBjoB,OAAO1D,SAAS4rB,QACnB7pC,IAAI,qBACrCyoC,GAGLc,GAASP,4BAA4BP,GAChCxoC,KAAKzX,IACF,MAAM,QAAEf,EAAF,KAAW9C,GAAS6D,EAC1ByO,GAAiBtS,EAAM8C,EAASuuB,KAAK2zB,uBAExCzpC,MAAMre,IACH0V,GACI0F,GAAsBpb,GACtBm0B,KAAK2zB,wBA5RjB3zB,KAAKryB,MAAQ,CACT2lD,wBAAwB,GAG5BtzB,KAAK2zB,oBAAsBlzC,oBAAS,mCAGxCosB,oBACI,MAAMojB,EAAgBjwB,KAAKK,MAAM4H,SAASt6B,MACrCqyB,KAAKK,MAAM3uB,UAAasuB,KAAKK,MAAM3uB,SAAS8S,QAAWyrC,IAA0D,IAAzCA,EAAcmD,yBCzC/FtyC,GAAMC,SCbC,CACHpS,K9IuF4B,yB6I1EzBob,KACFC,IpHuDe,aoHtDfC,KAAM2U,IACH9d,GAAMC,SCXP,CACHpS,K9IkF8B,yB8IjF9B6D,KDSwCosB,EAAKpsB,SAE5C0X,MAAOla,IACJ8Q,GAAMC,SCRgB/Q,KACvB,CACHrB,K9I4E2B,sB8I3E3B9C,MAAOmE,IDKYoC,CAAkBpC,ODsCjCigD,IAA0D,IAAzCA,EAAcmD,wBAE/BznB,OAAOnF,QAAQstB,aACX,IACO7D,EACHmD,wBAAwB,GAE5B,IAGRpzB,KAAK0zB,6BAGTxmB,mBAAmBC,IAGnB1J,SACI,MAAM,EAAEN,GAAMnD,KAAKK,MACnB,OACI,oCACI,kBAAC,GAAD,CACIgK,aAAc,CAACrK,KAAK2zB,uBAGxB,kBAAC3pB,GAAA,EAAD,CAAMtpB,UAAU,sBACZ,kBAACqwB,GAAA,EAAD,CAAYrwB,UAAU,wBAClB,kBAACmmB,GAAA,EAAD,CAAKnmB,UAAU,uBACX,kBAAComB,GAAA,EAAD,CAAK2D,GAAG,OAAO/pB,UAAU,QACrB,0BAAMA,UAAU,WACXyiB,EAAE,iBAAkB,kBAG7B,kBAAC2D,GAAA,EAAD,CAAK2D,GAAG,OAAO/pB,UAAU,gBACrB,kBAACmmB,GAAA,EAAD,CAAKnmB,UAAU,sBACX,kBAAComB,GAAA,EAAD,CAAK2D,GAAG,OAAO/pB,UAAU,cACrB,0BAAMA,UAAU,WACY,OAAvBsf,KAAKK,MAAMzuB,QACN,IACAkX,GAAkBjV,OAAOmsB,KAAKK,MAAMzuB,WAGlD,kBAACk1B,GAAA,EAAD,CAAK2D,GAAG,OAAO/pB,UAAU,IACrB,kBAAC26B,GAAA,EAAD,CACIlQ,MAAM,YACNhG,QAASnF,KAAKqzB,cACd3yC,UAAU,uCACVwkB,UACKlF,KAAKK,MAAMzuB,SACZouB,KAAKK,MAAMzuB,SAAW,GAGzBouB,KAAKryB,MAAM2lD,uBACR,kBAAC,GAAD,MACEnwB,EAAE,iBAAkB,uBAQlD,kBAAC8G,GAAA,EAAD,CAAUvpB,UAAU,aACfsf,KAAK8b,iBAO1BA,cACI,MAAM,EAAE3Y,GAAMnD,KAAKK,MACnB,GAAIL,KAAKK,MAAM1uB,gBACX,OAAO,kBAAC,GAAD,MAGX,MAuBMoqC,EAAU,CACZ,CACIl4B,UAAW,SACX7U,KAAMm0B,EAAE,yBAA0B,eAClC6Y,MAAM,EACNa,UAAW7oC,GAASA,EAAM5G,KAC1BuvC,UAAY3oC,GACR,kBAAC,GAAD,CAAc5G,KAAM4G,EAAM5G,KAAMuzC,IAAK3sC,EAAM2sC,OAGnD,CACI98B,UAAW,OACX7U,KAAMm0B,EAAE,uBAAwB,mBAChC6Y,MAAM,EACNW,UAAY3oC,GACR,kBAAC,GAAD,CAAUA,MAAOA,EAAO29C,YAjBD,eAmB3B9U,UAAY7oC,GAAUJ,KAAOI,EAnBF,eAqB/B,CACI6P,UAAW,SACX7U,KAAMm0B,EAAE,yBAA0B,gBAClC6Y,MAAM,EACNE,cAAe,oBACfD,QAAS,aACTU,UAAY3oC,GACR,kBAAC,GAAD,CACIma,OAAQna,EACRrF,KAAM4gC,GAAkBv7B,MAIpC,CACI6P,UAAW,WACX7U,KAAMm0B,EAAE,0BAA2B,uBACnC6Y,MAAM,EACNM,YAAa,CAACC,EAAQC,KACX,IAIXG,UAAY3oC,GACR,kBAAC,GAAD,CAAUA,MAAOA,EAAO29C,YA5CD,eA8C3B9U,UAAY7oC,GAAUJ,KAAOI,EA9CF,eAgD/B,CACI6P,UAAW,SACX7U,KAAMm0B,EAAE,yBAA0B,cAClC8Y,QAAS,aACTD,MAAM,EACNa,UAAW7oC,GAAS0tC,OAAO1tC,GAC3BsoC,YAAa,CAACC,EAAQC,KACX,IAIXmS,MAAO,QACPC,YAAa,SACbjS,UAAY3oC,GAAU8U,GAAkBjV,OAAOG,IAEnD,CACI6P,UAAW,cACX7U,KAAMm0B,EAAE,6BAA8B,WACtC8Y,QAAS,aACTD,MAAM,EACNa,UAAW7oC,GAAS0tC,OAAO1tC,GAC3BsoC,YAAa,CAACC,EAAQC,KACX,IAIXmS,MAAO,QACPC,YAAa,QACbjS,UAAY3oC,GAAU8U,GAAkBjV,OAAOG,IAEnD,CACI6P,UAAW,GACX7U,KAAMm0B,EAAE,qBAAsB,WAC9BwrB,MAAO,SACPC,YAAa,SACbtS,YAAa,CAACC,EAAQC,KACX,IAIXG,UA7GgB,CAACD,EAAM/lC,KAC3B,MAAM07C,EAAgB17C,EAAIwX,QAAU,GACpC,OAAuB,IAAnBxX,EAAIo9C,YAAwB,CAAC,UAAW,QAAQ5xC,SAASkwC,EAAc2B,eAEnE,kBAAC3Y,GAAA,EAAD,CAAQlQ,MAAM,YAAYzqB,UAAU,aAAawkB,UAAQ,GACpD/B,EAAE,gBAAiB,YAKxB,kBAACkY,GAAA,EAAD,CACIlQ,MAAM,UACNhG,QAAS,IAAMnF,KAAKmzB,WAAWx8C,EAAInD,IACnCkN,UAAU,cAETyiB,EAAE,eAAgB,cAkGnC,OACI,kBAAC,KAAD,CACI4Z,YAAU,EACVC,UAAU,EACVf,QAAQ,iBACRiB,SAAS,KACT1qC,KAAMwtB,KAAKK,MAAM3uB,SACjBqqC,QAASA,EACT75B,OAAQi7B,OACRC,eAAe,SACfC,iBACI,kBAAC,GAAcnD,iBAAf,CACIpuC,QAASk0B,KAAKK,MAAM1uB,gBACpBwxB,EAAGA,IAGXma,cAAe,CACX,CACIz5B,UAAW,OACXC,MAAO,WAOJ,wBAACuc,GAOpB,IAAInrB,EAAUmrB,EAAM8C,EAAE,0BAA2B,8BAKjD,OAJI9C,EAAMv0B,UACNoJ,EAAU,kBAAC,GAAD,OAGP,yBAAKwL,UAAU,eAAexL,IA6D9Bi0B,oBACX1D,YAXqB93B,IAAW,IAAD,IAC/B,MAAO,CACH+D,SAAU/D,EAAM+D,SAASA,SACzBC,gBAAiBhE,EAAM+D,SAASC,gBAChCC,QAASjE,EAAM+D,SAASE,QACxBqiD,kBAAmBtmD,EAAM0U,OAAOR,aAChCgmB,gBAAgB,UAAAl6B,EAAMe,YAAN,mBAAY3C,YAAZ,eAAkBipB,mBAAoB,OAK1DyQ,CAAyBC,aAAgB,SAAhBA,CAA0BwtB,MG3VvD,MAAMgB,WAAoBzxB,IAAMC,UAC5Be,SACI,OACI,kBAAC,GAAD,OAKGywB,UCRA,SAASC,GAAe9zB,GACnC,OACI,kBAACwG,GAAA,EAAD,CAAKnmB,UAAU,sCACX,kBAAComB,GAAA,EAAD,CAAKpmB,UAAU,YACV2f,EAAMmK,W,OC4BvB,MAAM4pB,WAA4B1xB,YAAW,cAAD,yBAQxC/0B,MAAQ,CACJ0mD,OAAO,EACPf,wBAAwB,GAVY,KA2BxCzL,OAAS,KACL7nB,KAAKkM,SACD,CAAEmoB,OAAQr0B,KAAKryB,MAAM0mD,OACrBr0B,KAAKK,MAAMmG,QAAQI,KAAKhN,GAAKkB,SAAU,CAAEs4B,wBAAwB,MA9BjC,KAwSxCkB,mBAAqB,KACjBjzC,GACI2e,KAAKK,MAAM8C,EACP,uBACA,8DAEJvJ,GAAKkB,UACL,GAEJkF,KAAK6nB,UAjT+B,KAoTxC0M,mBAAqB,IACbv0B,KAAKK,MAAMxuB,SAAWmuB,KAAKK,MAAMxuB,QAAQ2iD,iBAClCx0B,KAAKK,MAAMxuB,QAAQ2iD,iBAAiBC,iBAGxC,KAzT6B,KA4TxCC,iBAAmB,KAAO,IAAD,EACrB,GAAI10B,KAAKryB,MAAM2lD,uBAAwB,OACvC,MAAMX,EAAS3yB,KAAK20B,eACpBnzC,KACAwe,KAAKkM,SAAS,CACVonB,wBAAwB,IAE5BC,GAASb,gBAAgBC,EAAQ3yB,KAAKK,MAAMwH,eAAgB,KAAM,KAAlE,UAAwE7H,KAAKK,MAAMxuB,eAAnF,aAAwE,EAAoB2B,IACvFyW,KAAKupC,IACF7nB,OAAO1D,SAASyC,KAAO8oB,IAE1BtpC,MAAOre,IACJ0V,GACI0F,GAAsBpb,GACtBm0B,KAAKK,MAAMyU,YACX,KAGP2e,QAAQ,KACLzzB,KAAKkM,SAAS,CACVonB,wBAAwB,OAhVA,KAqVxCsB,mBAAqB,WAA2B,IAA1BC,EAAyB,uDAAP,GACpC,MAAM,OAAEC,EAAF,QAAUC,EAAV,OAAmBC,GAAWH,EACpC,IAAKC,IAAWC,IAAYC,EACxB,MAAO,GAEX,MAAMC,EAAWH,IAAWC,GAAWC,GAAU,KAAO,GAClDE,EAAWH,GAAWC,EAAS,IAAM,GAE3C,MAAM,GAAN,OAAUF,GAAU,IAApB,OAAyBG,GAAzB,OAAoCF,GAAW,IAA/C,OAAoDG,GAApD,OAA+DF,GAAU,KA7VrC,KAiWxCG,gBAAkB,KACd,MAAMtjD,EAAUmuB,KAAKK,MAAMxuB,QAC3B,GAAIA,GAAWA,EAAQujD,OAAQ,CAC3B,MAAMC,EAAaxjD,EAAQujD,OAAOE,YAClC,OAAKD,GAA6B,IAAfA,EAGZA,EAFI,GAIf,MAAO,IA1W6B,KA6WxCE,SAAW,KACP,MAAM1jD,EAAUmuB,KAAKK,MAAMxuB,QAC3B,GAAIA,GAAWA,EAAQujD,OAAQ,CAC3B,MAAMI,EAAM3jD,EAAQujD,OAAOI,IAC3B,OAAKA,GAAe,IAARA,EAGLA,EAFI,GAIf,MAAO,IAtX6B,KAyXxCb,aAAe,KACX,MAAM9iD,EAAUmuB,KAAKK,MAAMxuB,QAC3B,GAAIA,GAAWA,EAAQujD,OAAQ,CAC3B,MAAMK,EAAW5jD,EAAQujD,OAAOK,SAChC,OAAKA,GAAyB,IAAbA,EAGVA,EAFI,GAIf,MAAO,IArXX5oB,oBACIrrB,MJrBD,SAA0BhO,GAE7B,OADAsN,GAAMC,SCLC,CACHpS,K9IuEgC,8B6IlE7Bob,KACFC,IpH2Ce,YoH3CAxW,EAAK,KACpByW,KAAM2U,IACH9d,GAAMC,SCHP,CACHpS,K9IkEkC,8B8IjElCkD,QDC2C+sB,EAAKpsB,OACrCosB,EAAKpsB,OAEf0X,MAAOla,IACJ,MAAMnC,EAAeoZ,GAAsBjX,GAE3C,MADA8Q,GAAMC,SCFmBlT,KAC1B,CACHc,K9I4D+B,2B8I3D/Bd,iBDDmB0E,CAAqB1E,IAC9Bsc,MAAMtc,MIYhB6nD,CADW11B,KAAKK,MAAMoM,MAAMmI,OAAOphC,IAE9ByW,KAAMzX,OACN0X,MAAOre,IACJ0V,GACI1V,EAAM4F,QACNuuB,KAAKK,MAAMyU,YACX,KAYhBrR,SACI,MAAM,EAAEN,GAAMnD,KAAKK,MACnB,OACI,6BACI,kBAACunB,GAAA,EAAD,CACIN,OAAQtnB,KAAKryB,MAAM0mD,MACnBxM,OAAQ7nB,KAAK6nB,OACbC,UAAQ,EACR7J,KAAK,KACLv9B,UAAU,yBAEV,kBAACsnC,GAAA,EAAD,CAAWtnC,UAAU,IACjB,kBAACmmB,GAAA,EAAD,CAAKnmB,UAAU,uBACX,kBAAComB,GAAA,EAAD,KACI,0BAAMpmB,UAAU,eACXyiB,EAAE,mBAAoB,mBAG/B,kBAAC2D,GAAA,EAAD,CAAKpmB,UAAU,mCACX,0BACIykB,QAASnF,KAAK6nB,OACd3iB,SAAUlF,KAAKK,MAAMqnB,UACrBhnC,UAAU,sBAEV,8BAAOyiB,EAAE,gBAAiB,SAA1B,KACA,kBAAC,GAAD,CAAWziB,UAAU,kBAIjC,kBAAC,GAAD,CACI2B,OAAQ2d,KAAKK,MAAMhe,OACnB+nB,YAAY,EACZC,aAAc,CAACrK,KAAKK,MAAMyU,cAE7B9U,KAAK21B,mBAO1BA,gBACI,GAAI31B,KAAKK,MAAMu1B,iBACX,OAAO51B,KAAK61B,gBACT,IAAK71B,KAAKK,MAAMxuB,QACnB,OAKJ,OAFoB2O,KAAEwJ,IAAIgW,KAAKK,MAAO,uCAAuC,GAIrE,oCACKL,KAAK81B,wBACL91B,KAAK+1B,qBACL/1B,KAAKg2B,uBAMV,oCAEKh2B,KAAKi2B,kBACLj2B,KAAKg2B,uBAMtBC,kBACI,MAAMC,EAAaptC,GAAkBjV,OAAO2M,KAAEwJ,IAAIgW,KAAKK,MAAO,0BAA2B,IACzF,OACI,oCACI,uBAAG3f,UAAU,cAAcsf,KAAKK,MAAM8C,EAAE,iCAAkC,yCAC1E,uBAAGziB,UAAU,cAAa,kBAACyH,GAAA,EAAD,CAAOC,QAAQ,iCAAf,iBAA8D,CAAE8tC,cAAhE,4BAKtCJ,wBACI,MAAM,EAAE3yB,GAAMnD,KAAKK,MACbw0B,EAAkBr0C,KAAEwJ,IAAIgW,KAAKK,MAAO,2BAA4B,IACtE,OACI,kBAACwG,GAAA,EAAD,CAAKnmB,UAAU,oCACX,kBAAComB,GAAA,EAAD,KACI,kBAACD,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,CAAKpmB,UAAU,gBACVyiB,EAAE,oBAAqB,WAGhC,kBAAC0D,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,CAAKpmB,UAAU,eACVm0C,EAAgBznD,OAGzB,kBAACy5B,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,CAAKpmB,UAAU,eACVsf,KAAK40B,mBAAmBC,KAGjC,kBAAChuB,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,CAAKpmB,UAAU,eACVm0C,EAAgBl7C,eAQzCo8C,qBACI,MAAM,EAAE5yB,GAAMnD,KAAKK,MACb81B,EAAc31C,KAAEwJ,IAAIgW,KAAKK,MAAO,eAAgB,IAChD+1B,EAAc51C,KAAEwJ,IAAIgW,KAAKK,MAAO,iBAAkB,IAElD0b,EAAU,CACZ,CACIl4B,UAAW,QACX7U,KAAMm0B,EAAE,uBAAwB,cAAgBizB,EAAW,YAAQA,EAAR,KAAyB,IACpFla,cAAe,UACfD,QAAS,aACTyS,OAAQ,IAEZ,CACI7qC,UAAW,WACX7U,KAAMm0B,EAAE,oBAAqB,cAC7B+Y,cAAe,UACfD,QAAS,aACT0S,MAAO,QACPC,YAAa,SAEjB,CACI/qC,UAAW,aACX7U,KAAMm0B,EAAE,iBAAkB,iBAC1B+Y,cAAe,UACfD,QAAS,aACT0S,MAAO,QACPC,YAAa,SAEjB,CACI/qC,UAAW,SACX7U,KAAMm0B,EAAE,iBAAkB,SAC1B+Y,cAAe,UACfD,QAAS,aACT0S,MAAO,QACPC,YAAa,QACbE,cAAe,cACfG,YAAa,QACboH,YAAa,CAAEC,QAAS,KACxB5H,OAAQ,IAEA,oCACI,yBAAKhuC,UAAU,mBACVyiB,EAAE,kBAAmB,UAE1B,yBAAKziB,UAAU,+BACVyiB,EAAE,eAAgB,iBAEvB,yBAAKziB,UAAU,gBACVyiB,EACG,yBACA,iCAOxB,CACItf,UAAW,QACX7U,KAAMm0B,EAAE,iDAAkD,kBAC1D+Y,cAAe,UACfD,QAAS,aACT0S,MAAO,QACPC,YAAa,QACbK,YAAa,QACbP,OAAQ,IAEA,oCACI,yBAAKhuC,UAAU,mBACVsf,KAAKm1B,mBAEV,yBAAKz0C,UAAU,+BACVsf,KAAKu1B,YAEV,yBAAK70C,UAAU,gBACVsf,KAAK20B,mBAQ9B,OACI,kBAAC9tB,GAAA,EAAD,CAAKnmB,UAAU,oCACX,kBAAComB,GAAA,EAAD,KACI,kBAAC,KAAD,CACIiW,YAAU,EACVC,UAAU,EACVf,QAAQ,wBACRC,cAAc,+BACdqa,WAAW,4BACXrZ,SAAS,QACT1qC,KAAM2jD,EACNpa,QAASA,MAO7Bia,sBACI,MAAM,EAAE7yB,GAAMnD,KAAKK,MACnB,OACI,kBAACwG,GAAA,EAAD,CAAKnmB,UAAU,sBACX,kBAAComB,GAAA,EAAD,CAAKsU,GAAG,IAAI16B,UAAU,gBAClB,0BAAMA,UAAU,eACXyiB,EACG,uBACA,gEAIZ,kBAAC2D,GAAA,EAAD,CAAKgK,GAAG,IAAIsK,GAAG,IAAI16B,UAAU,gBACzB,kBAAC26B,GAAA,EAAD,CACIQ,SAAO,EACPP,OAAK,EACLnQ,MAAM,UACNhG,QAASnF,KAAKs0B,oBAEbnxB,EAAE,+BAAgC,yBAG3C,kBAAC2D,GAAA,EAAD,CAAKgK,GAAG,IAAIsK,GAAG,IAAI16B,UAAU,gBACzB,kBAAC26B,GAAA,EAAD,CACI36B,UAAU,cACVyqB,MAAM,UACNmQ,OAAK,EACLnW,QAASnF,KAAK00B,iBACdxvB,UAAWlF,KAAKu0B,sBAEfv0B,KAAKryB,MAAM2lD,uBACR,kBAAC,GAAD,MAEAnwB,EAAE,2BAA4B,yBAQtD0yB,gBACI,OACI,kBAAC1B,GAAD,KACI,kBAAC,GAAD,QA6GDhrB,oBACX1D,YAXqB93B,IAAW,IAAD,IAC/B,MAAO,CACHioD,iBAAkBjoD,EAAM+D,SAASI,eACjCD,QAASlE,EAAM+D,SAASG,QACxBwQ,OAAQ1U,EAAM0U,OAAOT,WACrBkzB,WJhamC,sBIianCjN,gBAAgB,UAAAl6B,EAAMe,YAAN,mBAAY3C,YAAZ,eAAkBipB,mBAAoB,OAK1DyQ,CAAyBC,aAAgB,SAAhBA,CAA0B0uB,MC9avD,MAAMoC,WAAoB/zB,IAAMC,UAC5Be,SACI,SAASia,EAAmBxV,GACxB,OACI,kBAAC,KAAD,CACIK,KAAML,EAAMK,KACZ9E,OAASpD,GAEL,kBAAC6H,EAAMyV,UAAP,iBAAqBtd,EAArB,CAA4B0H,OAAQG,EAAMH,YAM1D,MAAM,EAAE5E,GAAMnD,KAAKK,MAEnB,OACI,oCACI,yBAAK3f,UAAU,2BACX,kBAAC,KAAD,CACIwoB,GAAItP,GAAKqB,aACTva,UAAU,wBAETyiB,EAAE,uBAAwB,YAE/B,kBAAC,KAAD,CACI+F,GAAItP,GAAKsB,iBACTxa,UAAU,6BAETyiB,EAAE,wBAAyB,WAEhC,kBAAC,KAAD,CACI+F,GAAItP,GAAKuB,cACTza,UAAU,wBAETyiB,EAAE,qBAAsB,cAE7B,kBAAC,KAAD,CACI+F,GAAItP,GAAKwB,sBACT1a,UAAU,wBAETyiB,EAAE,6BAA8B,gBAIzC,kBAAC,KAAD,KACKnD,KAAKK,MAAM0H,OAAOzyB,IAAI,CAAC4yB,EAAOngB,IAC3B,kBAAC21B,EAAD,eAAoBzxC,IAAK8b,GAAOmgB,QAQzCxC,oBAAgB,SAAhBA,CAA0B8wB,I,UC1DlC,MAMM17C,GAA8BC,IAChC,CACHpM,KnJ8KqC,gCmJ7KrCoM,QAASA,IAWJH,GAAuB,CAAC3O,EAAK+H,KAC/B,CACHrF,KnJkK8B,yBmJjK9B1C,IAAKA,EACL+H,MAAOA,IAUFmH,GAA+BJ,IACjC,CACHpM,KnJ8IsC,iCmJ7ItCoM,QAASA,ICuDV,SAAS07C,GAAqB17C,GACjC,OAAOgP,KACF6Y,I3HzEmB,yB2HyED7nB,GAClBkP,KAAM2U,IACH9d,GAAMC,SAASjG,GAA2B8jB,EAAKpsB,OACxCosB,EAAKpsB,OAEf0X,MAAOla,IACJ,MAAMma,MAAMlD,GAAsBjX,MAgBvC,SAAS0mD,KAEZ,OADA51C,GAAMC,SDpBC,CACHpS,KnJxFyB,sBoJ4GtBob,KACFC,I3HnHY,U2HoHZC,KAAM2U,IACH9d,GAAMC,SDlBP,CACHpS,KnJ7F2B,sBmJ8F3BnB,MCgBqCoxB,EAAKpsB,SAEzC0X,MAAOla,IACJ8Q,GAAMC,SDfa/Q,KACpB,CACHrB,KnJnGwB,mBmJoGxB9C,MAAOmE,ICYY2mD,CAAe3mD,MA4BnC,SAAS4mD,KAEZ,OADA91C,GAAMC,SDhBC,CACHpS,KnJyDiC,8BoJzC9Bob,KACFC,I3HvIoB,2B2HwIpBC,KAAM2U,IACH9d,GAAMC,SDfP,CACHpS,KnJqDmC,8BmJpDnC8L,aCa4CmkB,EAAKpsB,OACtCosB,EAAKpsB,OAEf0X,MAAOla,IAEJ,MADA8Q,GAAMC,SDbP,CACHpS,KnJgDgC,2BmJ/ChC9C,MCWyCmE,IAC/Bma,MAAMlD,GAAsBjX,MAyCvC,SAAS6mD,GAAWrjD,GACvB,OAAOuW,KACF8vB,O3HpLkB,S2HoLGrmC,EAAK,KAC1ByW,KAAM2U,GACIA,GAEV1U,MAAOla,IACJ,MAAMma,MAAMlD,GAAsBjX,M,ICrN1C,GAAS,G,OAEb,SAAS,KAA2Q,OAA9P,GAAWuvB,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAI1X,EAAI,EAAGA,EAAI2X,UAAUlb,OAAQuD,IAAK,CAAE,IAAI4X,EAASD,UAAU3X,GAAI,IAAK,IAAI9b,KAAO0zB,EAAcJ,OAAOK,UAAUC,eAAeC,KAAKH,EAAQ1zB,KAAQwzB,EAAOxzB,GAAO0zB,EAAO1zB,IAAY,OAAOwzB,IAA2BM,MAAMC,KAAMN,WAIhT,MAAMo3B,GAAY52B,IAChB,IAAI,OACFC,EAAM,MACNC,KACGC,GACDH,EACJ,OAAoB,IAAMI,cAAc,MAAO,GAAS,CACtDC,MAAO,GACPC,OAAQ,GACRC,QAAS,YACTC,KAAM,OACNC,IAAKR,GACJE,GAAQD,EAAqB,IAAME,cAAc,QAAS,KAAMF,GAAS,KAAM,KAAY,GAAuB,IAAME,cAAc,SAAU,CACjJM,GAAI,EACJC,GAAI,EACJC,EAAG,EACHJ,KAAM,aACH,KAAU,GAAqB,IAAMJ,cAAc,OAAQ,CAC9DS,EAAG,wFACH2I,OAAQ,QACRC,YAAa,IACbC,cAAe,aAIb,GAA0B,IAAM3I,WAAW,CAACZ,EAAOM,IAAqB,IAAML,cAAcw2B,GAAW,GAAS,CACpH32B,OAAQQ,GACPN,KACY,IClCX,GDkCW,IChCf,SAAS,KAA2Q,OAA9P,GAAWd,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAI1X,EAAI,EAAGA,EAAI2X,UAAUlb,OAAQuD,IAAK,CAAE,IAAI4X,EAASD,UAAU3X,GAAI,IAAK,IAAI9b,KAAO0zB,EAAcJ,OAAOK,UAAUC,eAAeC,KAAKH,EAAQ1zB,KAAQwzB,EAAOxzB,GAAO0zB,EAAO1zB,IAAY,OAAOwzB,IAA2BM,MAAMC,KAAMN,WAIhT,MAAMq3B,GAAc72B,IAClB,IAAI,OACFC,EAAM,MACNC,KACGC,GACDH,EACJ,OAAoB,IAAMI,cAAc,MAAO,GAAS,CACtDC,MAAO,GACPC,OAAQ,GACRC,QAAS,YACTC,KAAM,OACNC,IAAKR,GACJE,GAAQD,EAAqB,IAAME,cAAc,QAAS,KAAMF,GAAS,KAAM,KAAY,GAAuB,IAAME,cAAc,SAAU,CACjJM,GAAI,EACJC,GAAI,EACJC,EAAG,IACH4I,OAAQ,eAIN,GAA0B,IAAMzI,WAAW,CAACZ,EAAOM,IAAqB,IAAML,cAAcy2B,GAAa,GAAS,CACtH52B,OAAQQ,GACPN,KACY,IC7BX,GAAO,GAAO,GD6BH,IC3Bf,SAAS,KAA2Q,OAA9P,GAAWd,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAI1X,EAAI,EAAGA,EAAI2X,UAAUlb,OAAQuD,IAAK,CAAE,IAAI4X,EAASD,UAAU3X,GAAI,IAAK,IAAI9b,KAAO0zB,EAAcJ,OAAOK,UAAUC,eAAeC,KAAKH,EAAQ1zB,KAAQwzB,EAAOxzB,GAAO0zB,EAAO1zB,IAAY,OAAOwzB,IAA2BM,MAAMC,KAAMN,WAIhT,MAAMs3B,GAAe92B,IACnB,IAAI,OACFC,EAAM,MACNC,KACGC,GACDH,EACJ,OAAoB,IAAMI,cAAc,MAAO,GAAS,CACtDC,MAAO,GACPC,OAAQ,GACRC,QAAS,YACTC,KAAM,OACNC,IAAKR,GACJE,GAAQD,EAAqB,IAAME,cAAc,QAAS,KAAMF,GAAS,KAAM,KAAU,GAAqB,IAAME,cAAc,OAAQ,CAC3IC,MAAO,GACPC,OAAQ,GACR8I,GAAI,EACJ5I,KAAM,aACH,KAAU,GAAqB,IAAMJ,cAAc,OAAQ,CAC9DS,EAAG,mCACH2I,OAAQ,UACRC,YAAa,IACbC,cAAe,WACZ,KAAW,GAAsB,IAAMtJ,cAAc,OAAQ,CAChES,EAAG,mCACH2I,OAAQ,UACRC,YAAa,IACbC,cAAe,aAIb,GAA0B,IAAM3I,WAAW,CAACZ,EAAOM,IAAqB,IAAML,cAAc02B,GAAc,GAAS,CACvH72B,OAAQQ,GACPN,KACY,IC3Bf,MAAM42B,WAAuBx0B,IAAMC,UAAW,cAAD,yBAoBzCyC,QAAWkN,IACPrS,KAAKK,MAAM8E,SAASnF,KAAKK,MAAMrsB,QAGnCyvB,SACI,OACI,kBAAC4X,GAAA,EAAD,iBACQrb,KAAKK,MAAMuP,WADnB,CAEIzE,MAAM,GACNzqB,UAAS,yBAAoBsf,KAAKK,MAAM62B,WAAa,4BAA8B,IAA1E,OAA+El3B,KAAKK,MAAM+S,QAAU,qBAAuB,GAA3H,YAAiIpT,KAAKK,MAAM3f,WACrJykB,QAASnF,KAAKmF,QACdD,SAAUlF,KAAKK,MAAM6E,WAEpBlF,KAAKK,MAAMqT,UACX1T,KAAKK,MAAM62B,WACR,kBAAC,GAAD,CAAUx2C,UAAU,iBAEpBsf,KAAKK,MAAM6E,SACP,kBAAC,GAAD,CAAoBxkB,UAAU,4BAE9B,kBAAC,GAAD,CAAYA,UAAU,qBAxCxCu2C,GAWKpoB,aAAe,CAClBqoB,YAAY,EACZxjB,UAAW,GACXvO,QAAS,OACTzkB,UAAW,GACXwkB,UAAU,EACV0K,WAAY,IA8BLqnB,U,OCzDR,MAMME,GAA4BhqD,IAC9B,CACHwB,KzJmXmC,8ByJlXnCxB,YAIKiqD,GAAyBvrD,IAC3B,CACH8C,KzJ6WgC,2ByJ5WhC9C,UAgCKwrD,GAA6BznC,IAC/B,CACHjhB,KzJiVoC,+ByJhVpCihB,aAIK0nC,GAA0BzrD,IAC5B,CACH8C,KzJ2UiC,4ByJ1UjC9C,UAqCK0rD,GAA6BxmC,IAC/B,CACHpiB,KzJwSqC,gCyJvSrCoiB,aAIKymC,GAA0B3rD,IAC5B,CACH8C,KzJkSkC,6ByJjSlC9C,UCjFK4rD,GAAwBC,IACjC,GAAMA,EAAiB,CAEnB,GAAkC,OADpB52C,GAAMoG,WACVoR,MAAM9qB,MAAML,QAClB,OAKR,OADA2T,GAAMC,SD/BC,CACHpS,KzJwXiC,8B0JzV9Bob,KACFC,IjIoHwB,8BiInHxBC,KAAM5C,IACHvG,GAAMC,SAASo2C,GAAyB9vC,EAAS7U,OAC1C6U,EAAS7U,OAEnB0X,MAAOre,IACJ,MAAMgC,EAAeoZ,GAAsBpb,GAE3C,MADAiV,GAAMC,SAASq2C,GAAsBvpD,IAC/Bsc,MAAMtc,MAkCX8pD,GAAkB,WAIzB,IAHFC,EAGC,uDAHc,KACfC,EAEC,uDAFe,KAChBC,EACC,uDADU,KAWX,OATIF,GACA92C,GAAMC,SDjFH,CACHpS,KzJwXiC,8B0JtSjCkpD,GACA/2C,GAAMC,SD1CH,CACHpS,KzJsVkC,+B0J3SlCmpD,GACAh3C,GAAMC,SDEH,CACHpS,KzJ6SmC,gC0J9ShCob,KACFC,IjI6DsB,uBiI7DD,CAClB4qB,OAAQ,CACJznC,QAASyqD,EACThoC,SAAUioC,EACVhoC,IAAKioC,KAGZ7tC,KAAM5C,IACCuwC,GACA92C,GAAMC,SAASo2C,GAAyB9vC,EAAS7U,OAEjDqlD,GACA/2C,GAAMC,SAASs2C,GAA0BhwC,EAAS7U,OAElDslD,GACAh3C,GAAMC,SAASw2C,GAA0BlwC,EAAS7U,OAE/C6U,EAAS7U,OAEnB0X,MAAOre,IACA+rD,GACA92C,GAAMC,SAASq2C,MAEfS,GACA/2C,GAAMC,SAASu2C,MAEfQ,GACAh3C,GAAMC,SAASy2C,SAKlBO,GAAyBhjC,IAClC,MAAMgR,EjI6BwB,mCiI7BMlc,QAAQ,cAAekL,GAE3D,OAAOhL,KACFC,IAAI+b,GACJ9b,KAAM5C,GACIA,EAAS7U,MAEnB0X,MAAOre,IACJ,MAAMgC,EAAeoZ,GAAsBpb,GAC3C,MAAMse,MAAMtc,MC5GxB,MAAMmqD,WAAqBt1B,YAAW,cAAD,yBASjCu1B,gBAAkB,KACP,CACHC,WAAStjC,MAAyC,WAAxBoL,KAAKK,MAAM83B,UACrCC,UAAW,GACXC,SAAU,GACVC,aAAc,GACd/rD,MAAO,GACPD,MAAO,GACPK,WAAY,GACZb,SAAS,IAlBgB,KAsBjC6B,MAAQqyB,KAAKi4B,kBAtBoB,KAuCjCpQ,OAAS,IACL7nB,KAAKkM,SAAS,CAAEmoB,OAAQr0B,KAAKryB,MAAM0mD,OAAS,KACxCr0B,KAAKK,MAAMmG,QAAQI,KAAKhN,GAAKkB,YAzCJ,KAuOjCy9B,eAAkBzwC,IACdA,EAAE0wC,iBACF,MAAM,EAAEr1B,GAAMnD,KAAKK,MACnB7e,KACAwe,KAAKkM,SAAS,CAAEpgC,SAAS,GAAQ,IP/ElC,SAAiB2sD,GACpB,MAAM1sD,EAAO,CACT2sD,gBAAiBD,EAASP,QAC1BhsD,WAAYusD,EAASL,UACrBjsD,UAAWssD,EAASJ,SACpBrsD,cAAeysD,EAASH,aACxB/rD,MAAOksD,EAASlsD,MAChBD,MAAOmsD,EAASnsD,MAChBK,WAAY8rD,EAAS9rD,WACrBgsD,WAAYF,EAAS31B,UACrB8f,UAAW6V,EAAS1jC,UAGxB,OAAOhL,KACF2U,K3H1Ke,oB2H0KA3yB,GACfke,KAAM2U,GACIA,GAEV1U,MAAOla,IACJ,MAAMma,MAAMlD,GAAsBjX,MO6DlC4oD,CAAQ54B,KAAKryB,OACRsc,KAAM5C,GACqB,MAApBA,EAAS8G,QACT9M,GACI8hB,EAAE,8DAA+D,mCACjE60B,GAAaa,kBAEjB74B,KAAKkM,SAAS,CAAEpgC,SAAS,KAEE,MAApBub,EAAS8G,QAChB7M,GACI+F,EAAS7U,KAAK+U,KACdywC,GAAaa,aAEjB74B,KAAKkM,SAAS,CAAEpgC,SAAS,SACzBk0B,KAAKkM,SAAS,CAAE5/B,MAAO+a,EAAS7U,KAAKlG,UAGzC0zB,KAAKK,MAAMwnB,SACPrzB,KACAkiC,KACO9hC,KACP+iC,GAAgB,MAAM,EAAM,MAC5BA,GAAgB,KAAM,MAAM,IAEhCv2C,GACI+hB,EAAE,8CAA+C,qBACjDnD,KAAKK,MAAM4H,SAASD,eAExBhI,KAAKkM,SAAS,CAAEpgC,SAAS,MAE5Boe,MAAOre,IACJ0V,GACI1V,EAAM4F,QACNumD,GAAaa,aAEjB74B,KAAKkM,SAAS,CAAEpgC,SAAS,QAxPzC+gC,oBACI7M,KAAKkM,SAAS,CACVpJ,UAAmC,YAAxB9C,KAAKK,MAAM83B,SAAyB,EAAI,KACnDpjC,SAC4B,WAAxBiL,KAAKK,MAAM83B,SAAwBn4B,KAAKK,MAAMtL,SAAW,OAIrEmY,mBAAmBC,GACXA,EAAUma,SAAWtnB,KAAKK,MAAMinB,SAChC9lC,KACAwe,KAAKkM,SAASlM,KAAKi4B,oBAS3Bx0B,SACI,MAAM,EAAEN,GAAMnD,KAAKK,MACnB,OACI,6BACI,kBAACunB,GAAA,EAAD,CACIE,UAAQ,EACRR,OAAQtnB,KAAKK,MAAMinB,OACnBO,OAAQ7nB,KAAKK,MAAMwnB,OACnB5J,KAAK,KACLv9B,UAAU,kBAEV,kBAACsnC,GAAA,EAAD,CAAWtnC,UAAU,IACjB,kBAACmmB,GAAA,EAAD,CAAKnmB,UAAU,uBACX,kBAAComB,GAAA,EAAD,KACI,0BAAMpmB,UAAU,uBACXyiB,EAAE,4BAA6B,uBAGxC,kBAAC2D,GAAA,EAAD,CAAKpmB,UAAU,mCACX,kBAAC,GAAD,CACI1R,KAAMm0B,EAAE,gBAAiB,SACzBgC,QAASnF,KAAKK,MAAMwnB,WAIhC,kBAAChhB,GAAA,EAAD,CAAKnmB,UAAU,mBACX,kBAAComB,GAAA,EAAD,KAAM9G,KAAK21B,qBAQnCA,gBACI,GAAI31B,KAAKK,MAAMv0B,QACX,OAAO,kBAAC,GAAD,MAEX,MAAM,EAAEq3B,GAAMnD,KAAKK,MAEby4B,EAA0C,WAAxB94B,KAAKK,MAAM83B,WAA0B3jC,MAAkBI,MAE/E,OACI,kBAACmkC,GAAA,EAAD,CAAMvlD,GAAG,gBAAgBy5C,SAAUjtB,KAAKu4B,gBACnCO,GACG,kBAACjyB,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,CAAKpmB,UAAU,QACX,kBAAC,GAAD,CACIw2C,YAAal3B,KAAKryB,MAAMuqD,QACxBhzB,UAAU,EACVwO,UAAWvQ,EAAE,kCAAmC,YAChDgC,QAAS,IACLnF,KAAKkM,SAAS,CAAEgsB,SAAS,IAE7BtoB,WAAY,CAAE0L,OAAO,MAG7B,kBAACxU,GAAA,EAAD,CAAKpmB,UAAU,QACX,kBAAC,GAAD,CACIw2C,WAAYl3B,KAAKryB,MAAMuqD,QACvBhzB,UAAU,EACVwO,UAAWvQ,EAAE,mCAAoC,SACjDgC,QAAS,IAAMnF,KAAKkM,SAAS,CAAEgsB,SAAS,IACxCtoB,WAAY,CAAE0L,OAAO,OAKrC,kBAACzU,GAAA,EAAD,CAAKnmB,UAAU,QACX,kBAAComB,GAAA,EAAD,KACI,kBAAC,GAAD,CACI9yB,MAAOgsB,KAAKryB,MAAMyqD,UAClB1kB,UAAWvQ,EAAE,8BAA+B,WAC5C4Q,YAAa5Q,EAAE,oCAAqC,QACpDziB,UAAU,kBACV0xB,SAAWp+B,GACPgsB,KAAKkM,SAAS,CAAEksB,UAAWpkD,IAE/B47B,WAAY,CACRoD,UAAU,OAK1B,kBAACnM,GAAA,EAAD,CAAKnmB,UAAU,QACX,kBAAComB,GAAA,EAAD,KACI,kBAAC,GAAD,CACI9yB,MAAOgsB,KAAKryB,MAAM0qD,SAClB3kB,UAAWvQ,EAAE,6BAA8B,iBAC3C4Q,YAAa5Q,EAAE,mCAAoC,iBACnDziB,UAAU,eACV0xB,SAAWp+B,GACPgsB,KAAKkM,SAAS,CAAEmsB,SAAUrkD,IAE9B47B,WAAY,CACRoD,UAAU,OAK1B,kBAACnM,GAAA,EAAD,CAAKnmB,UAAU,QACX,kBAAComB,GAAA,EAAD,KACI,kBAAC,GAAD,CACI9yB,MAAOgsB,KAAKryB,MAAM2qD,aAClB3pD,KAAK,SACL+kC,UAAWvQ,EAAE,iCAAkC,aAC/C4Q,YAAa5Q,EAAE,uCAAwC,aACvDziB,UAAU,qBACV0xB,SAAWp+B,GACPgsB,KAAKkM,SAAS,CAAEosB,aAActkD,IAElC47B,WAAY,CACRoD,UAAU,OAK1B,kBAACnM,GAAA,EAAD,CAAKnmB,UAAU,QACX,kBAAComB,GAAA,EAAD,KACI,kBAAC,GAAD,CACI9yB,MAAOgsB,KAAKryB,MAAMpB,MAClBoC,KAAK,MACL+kC,UAAWvQ,EAAE,0BAA2B,kBACxC4Q,YAAa5Q,EAAE,gCAAiC,kBAChDziB,UAAU,aACV0xB,SAAWp+B,GACPgsB,KAAKkM,SAAS,CAAE3/B,MAAOyH,IAE3B47B,WAAY,CACRoD,UAAU,OAK1B,kBAACnM,GAAA,EAAD,CAAKnmB,UAAU,QACX,kBAAComB,GAAA,EAAD,KACI,kBAAC,GAAD,CACI9yB,MAAOgsB,KAAKryB,MAAMrB,MAClBqC,KAAK,QACL+kC,UAAWvQ,EAAE,0BAA2B,UACxC4Q,YAAa5Q,EAAE,gCAAiC,UAChDziB,UAAU,aACV0xB,SAAWp+B,GACPgsB,KAAKkM,SAAS,CAAE5/B,MAAO0H,IAE3B47B,WAAY,CACRoD,UAAU,OAK1B,kBAACnM,GAAA,EAAD,CAAKnmB,UAAU,QACX,kBAAComB,GAAA,EAAD,KACI,kBAAC,GAAD,CACI9yB,MAAOgsB,KAAKryB,MAAMhB,WAClB+mC,UAAWvQ,EAAE,+BAAgC,gBAC7C4Q,YAAa5Q,EAAE,qCAAsC,gBACrDziB,UAAU,kBACV0xB,SAAWp+B,GACPgsB,KAAKkM,SAAS,CAAEv/B,WAAYqH,IAEhC47B,WAAY,CACRoD,UAAU,OAK1B,kBAAC,GAAD,CACI3wB,OAAQ2d,KAAKK,MAAMhe,OACnB+nB,YAAY,EACZC,aAAc,CAAC2tB,GAAaa,eAEhC,kBAAChyB,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,KACI,kBAACuU,GAAA,EAAD,CACIC,OAAK,EACLnQ,MAAM,UACNjG,SAAUlF,KAAKryB,MAAM7B,SAEpBk0B,KAAKryB,MAAM7B,QAAU,kBAAC,GAAD,MAAuBq3B,EAAE,+BAAgC,aA/NrG60B,GAOKa,YAAc,eA+QV1vB,oBAAWzD,eAAkBsyB,KC1S7BgB,OAPG,CACdC,aAAc,QACdC,YAAa,WACbC,QAAS,UACTC,IAAK,O,OCoBT,MAAMC,WAAyB32B,YAAW,cAAD,yBAiBrC/0B,MAAQ,CACJ2rD,YAAa,IAlBoB,KAoPrCC,oBAAuBD,IACnBt5B,KAAKkM,SAAS,CACVotB,iBAtP6B,KA0PrCllB,WAAa,IAELpU,KAAKK,MAAM6E,YACT9P,MAAuBV,MAAmBE,MA7Pf,KAiQrCwd,SAAYx7B,GAAW5C,IAEnBwN,KACA,MAAMg4C,EAAiB,IAAKx5B,KAAKryB,MAAM2rD,aACvCt5B,KAAKkM,SACAsH,IACU,CACH8lB,YAAa,IACN9lB,EAAU8lB,YACb,CAAC1iD,GAAQ5C,KAIrB,IAAMgsB,KAAKy5B,WAAWD,EAAgBx5B,KAAKryB,MAAM2rD,eA9QpB,KAkRrCG,WAAa,CAACD,EAAgBE,KTvK3B,IAAwB3tD,KSwKR2tD,ETvKnB54C,GAAMC,SDZC,CACHpS,KnJzGyB,sBoJqHtBob,KACF6Y,I3H/HY,S2H+HD,CACR+2B,aAAc5tD,EAAKyH,GACnB7E,KAAM5C,EAAK4C,KACXvB,KAAMrB,EAAKqB,KACXwsD,SAAU7tD,EAAK6tD,SACfttD,MAAOP,EAAKO,MACZH,UAAWJ,EAAKI,UAChBH,cAAeD,EAAKC,cACpBO,MAAOR,EAAKQ,MACZkoB,YAAa1oB,EAAK0oB,cAErBxK,KAAM2U,IACH9d,GAAMC,SDrBgBhV,KACvB,CACH4C,KnJ9G2B,sBmJ+G3B5C,KAAMA,ICkBa8tD,CAAkBj7B,EAAKpsB,OAC/BosB,EAAKpsB,OAEf0X,MAAOla,IAEJ,MADA8Q,GAAMC,SDlBa/Q,KACpB,CACHrB,KnJpHwB,mBmJqHxB9C,MAAOmE,ICeY8pD,CAAe9pD,IACxBma,MAAMlD,GAAsBjX,OSqJjCia,KAAMzX,IACHwtB,KAAKu5B,oBAAoB/mD,GACzBwtB,KAAKK,MAAM05B,OAAOvnD,KAErB0X,MAAOla,IACJwR,KACAwe,KAAKu5B,oBAAoBC,GACzBj4C,GACIvR,EAAIyB,QACJ4nD,GAAiBR,gBAxQjChsB,oBACIrrB,KACAwe,KAAKu5B,oBAAoBv5B,KAAKK,MAAMt0B,MAGxCmhC,mBAAmBC,GACXA,EAAUphC,OAASi0B,KAAKK,MAAMt0B,OAC9Bi0B,KAAKkM,SAAS,CAAEotB,YAAat5B,KAAKK,MAAMt0B,OACxCi0B,KAAKu5B,oBAAoBv5B,KAAKK,MAAMt0B,OAI5C03B,SACI,MAAM,EAAEN,GAAMnD,KAAKK,MACnB,OACI,6BACI,kBAACunB,GAAA,EAAD,CACIE,UAAQ,EACRR,OAAQtnB,KAAKK,MAAMinB,OACnBO,OAAQ7nB,KAAKK,MAAMwnB,OACnB5J,KAAK,KACLv9B,UAAU,6BAEV,kBAACsnC,GAAA,EAAD,CAAWtnC,UAAU,IACjB,kBAACmmB,GAAA,EAAD,CAAKnmB,UAAU,uBACX,kBAAComB,GAAA,EAAD,KACI,0BAAMpmB,UAAU,uBACXyiB,EAAE,gCAAiC,mBAG5C,kBAAC2D,GAAA,EAAD,CAAKpmB,UAAU,mCACX,kBAAC,GAAD,CACI1R,KAAMm0B,EAAE,gBAAiB,SACzBgC,QAASnF,KAAKK,MAAMwnB,WAIhC,kBAAChhB,GAAA,EAAD,CAAKnmB,UAAU,mBACX,kBAAComB,GAAA,EAAD,KAAM9G,KAAK21B,qBAQnCA,gBACI,GAAI31B,KAAKK,MAAMv0B,QACX,OAAO,kBAAC,GAAD,MAEX,MAAM,EAAEq3B,GAAMnD,KAAKK,MAEb25B,EAAgBh6B,KAAKoU,aACrB6lB,EAAkD,WAAxBj6B,KAAKK,MAAM83B,WAA0B3jC,MAAkBI,MACjFslC,EAA8BF,IAAmBplC,OAAkBQ,KAEzE,OACI,kBAAC2jC,GAAA,EAAD,CAAMvlD,GAAG,gBAAgBy5C,SAAUjtB,KAAKu4B,gBACnC0B,GACG,kBAACpzB,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,CAAKpmB,UAAU,QACX,kBAAC,GAAD,CACIw2C,WACIl3B,KAAKryB,MAAM2rD,YAAY3qD,OACvBqqD,GAAUE,YAEdh0B,SAAUg1B,EACVxmB,UAAWvQ,EAAE,kCAAmC,YAChDgC,QAAS,IACLnF,KAAKoS,SAAS,OAAdpS,CAAsBg5B,GAAUE,aAEpCtpB,WAAY,CAAE0L,OAAO,MAG7B,kBAACxU,GAAA,EAAD,CAAKpmB,UAAU,QACX,kBAAC,GAAD,CACIw2C,WACIl3B,KAAKryB,MAAM2rD,YAAY3qD,OACvBqqD,GAAUC,aAEd/zB,SAAUg1B,EACVxmB,UAAWvQ,EAAE,mCAAoC,SACjDgC,QAAS,IACLnF,KAAKoS,SAAS,OAAdpS,CACIg5B,GAAUC,cAGlBrpB,WAAY,CAAE0L,OAAO,OAKrC,kBAACzU,GAAA,EAAD,CAAKnmB,UAAU,QACX,kBAAComB,GAAA,EAAD,KACI,kBAAC,GAAD,CACI9yB,MAAOgsB,KAAKryB,MAAM2rD,YAAYlsD,KAC9BsmC,UAAWvQ,EAAE,8BAA+B,WAC5C4Q,YAAa5Q,EAAE,oCAAqC,QACpDziB,UAAU,kBACVgyB,OAAQ1S,KAAKoS,SAAS,QACtBlN,SAAU80B,EACVpqB,WAAY,CACRoD,UAAU,OAK1B,kBAACnM,GAAA,EAAD,CAAKnmB,UAAU,QACX,kBAAComB,GAAA,EAAD,KACI,kBAAC,GAAD,CACI9yB,MAAOgsB,KAAKryB,MAAM2rD,YAAYntD,UAC9BunC,UAAWvQ,EAAE,6BAA8B,iBAC3C4Q,YAAa5Q,EAAE,mCAAoC,iBACnDziB,UAAU,eACVgyB,OAAQ1S,KAAKoS,SAAS,aACtBlN,SAAU80B,EACVpqB,WAAY,CACRoD,UAAU,OAK1B,kBAACnM,GAAA,EAAD,CAAKnmB,UAAU,QACX,kBAAComB,GAAA,EAAD,KACI,kBAAC,GAAD,CACI9yB,MAAOgsB,KAAKryB,MAAM2rD,YAAYttD,cAC9B2C,KAAK,SACL+kC,UAAWvQ,EAAE,iCAAkC,aAC/C4Q,YAAa5Q,EAAE,uCAAwC,aACvDziB,UAAU,qBACVgyB,OAAQ1S,KAAKoS,SAAS,iBACtBlN,SAAU80B,EACVpqB,WAAY,CACRoD,UAAU,OAK1B,kBAACnM,GAAA,EAAD,CAAKnmB,UAAU,QACX,kBAAComB,GAAA,EAAD,KACI,kBAAC,GAAD,CACI9yB,MAAOgsB,KAAKryB,MAAM2rD,YAAY/sD,MAC9BoC,KAAK,MACL+kC,UAAWvQ,EAAE,0BAA2B,kBACxC4Q,YAAa5Q,EAAE,gCAAiC,kBAChDziB,UAAU,aACVgyB,OAAQ1S,KAAKoS,SAAS,SACtBlN,SAAU80B,EACVpqB,WAAY,CACRoD,UAAU,OAK1B,kBAACnM,GAAA,EAAD,CAAKnmB,UAAU,QACX,kBAAComB,GAAA,EAAD,KACI,kBAAC,GAAD,CACI9yB,MAAOgsB,KAAKryB,MAAM2rD,YAAYhtD,MAC9BqC,KAAK,QACL+kC,UAAWvQ,EAAE,0BAA2B,UACxC4Q,YAAa5Q,EAAE,gCAAiC,UAChDziB,UAAU,aACVgyB,OAAQ1S,KAAKoS,SAAS,SACtBlN,SAAU80B,EACVpqB,WAAY,CACRoD,UAAU,OAK1B,kBAACnM,GAAA,EAAD,CAAKnmB,UAAU,QACX,kBAAComB,GAAA,EAAD,KACI,kBAAC,GAAD,CACIowB,WAAYl3B,KAAKryB,MAAM2rD,YAAY7kC,YACnCyQ,SAAU80B,EACVtmB,UACI1T,KAAKryB,MAAM2rD,YAAY7kC,YACjB0O,EAAE,+BAAgC,cAClCA,EAAE,gCAAiC,eAE7CgC,QAAS,IACLnF,KAAKoS,SAAS,cAAdpS,EACKA,KAAKryB,MAAM2rD,YAAY7kC,aAGhCmb,WAAY,CAAE0L,OAAO,QAI/B1mB,MACE,oCACI,kBAACiS,GAAA,EAAD,CAAKnmB,UAAU,QACX,kBAAComB,GAAA,EAAD,KACI,kBAAC,GAAD,CACI9yB,MAAOgsB,KAAKryB,MAAM2rD,YAAYM,SAC9BlmB,UAAWvQ,EAAE,+BAAgC,gBAC7C4Q,YAAa5Q,EAAE,qCAAsC,gBACrDziB,UAAU,kBACVgyB,OAAQ1S,KAAKoS,SAAS,YACtBlN,SAAU80B,EACVpqB,WAAY,CACRoD,UAAU,QAOlC,kBAAC,GAAD,CACI5I,YAAY,EACZC,aACIrK,KAAKK,MAAMyU,WACL,CACEukB,GAAiBR,YACjB74B,KAAKK,MAAMyU,YAEb,CAACukB,GAAiBR,iBA7O1CQ,GAWKxqB,aAAe,CAClBkrB,OAAQ,QAZVV,GAeKR,YAAc,6BAoRVnzB,sBAAkB2zB,I,OCjRjC,MAAMc,WAAmB13B,IAAMC,UAAW,cAAD,yBACrC/0B,MAAQ,CACJysD,oBAAoB,EACpBC,wBAAwB,EACxBC,aAAc,IAJmB,KA6LrCC,kBAAoB,IACTnlC,MAAuBV,KA9LG,KAiMrC8lC,qBAAuB,IACZplC,MAAuBV,KAlMG,KAqMrC+lC,mBAAqB,KACjBz6B,KAAKkM,SAAUsH,IACJ,CACH4mB,oBAAqB5mB,EAAU4mB,uBAxMN,KA6MrCM,uBAAyB,KACrB16B,KAAKkM,SAAUsH,IACJ,CACH6mB,wBAAyB7mB,EAAU6mB,2BAhNV,KAqNrCM,kBAAqB5uD,IACjByV,KACAwe,KAAKkM,SAAS,CACVmuB,wBAAwB,EACxBC,aAAcvuD,KAzNe,KA6NrC6uD,aAAgB7uD,IACZyV,KACAq1C,GAAW9qD,EAAK8uD,SACX5wC,KAAM2U,IACH83B,KACAr1C,GACI2e,KAAKK,MAAM8C,EAAE,oBAAqB,wBAClCnD,KAAKK,MAAM4H,SAASD,YAG3B9d,MAAOre,IACJ0V,GACI1V,EAAM4F,QACNuuB,KAAKK,MAAM4H,SAASD,aAnOpC6E,oBACI6pB,KAGmB,wBAACr2B,GACpB,IAAInrB,EAAUmrB,EAAM8C,EAAE,uBAAwB,8BAK9C,OAJI9C,EAAMv0B,UACNoJ,EAAU,kBAAC,GAAD,OAGP,yBAAKwL,UAAU,eAAexL,GAGzCuuB,SACI,MAAM,EAAEN,GAAMnD,KAAKK,MACnB,OACI,kBAAC2J,GAAA,EAAD,CAAMtpB,UAAU,cACZ,kBAACqwB,GAAA,EAAD,KACI,kBAAClK,GAAA,EAAD,CAAKnmB,UAAU,sBACX,kBAAComB,GAAA,EAAD,KACI,0BAAMpmB,UAAU,WACXyiB,EAAE,iBAAkB,uBAG5BnD,KAAKu6B,qBACF,kBAACzzB,GAAA,EAAD,CAAKpmB,UAAU,mCACX,kBAAC26B,GAAA,EAAD,CACIlQ,MAAM,UACNhG,QAASnF,KAAKy6B,oBAEbt3B,EAAE,kBAAmB,qBAM1C,kBAAC8G,GAAA,EAAD,CAAUvpB,UAAU,OAAOsf,KAAK8b,eAChC,kBAAC,GAAD,CACIqc,SAAS,SACT7Q,OAAQtnB,KAAKryB,MAAMysD,mBACnBvS,OAAQ7nB,KAAKy6B,qBAEjB,kBAAC,GAAD,CACItC,SAAS,SACTpsD,KAAMi0B,KAAKryB,MAAM2sD,aACjBhT,OAAQtnB,KAAKryB,MAAM0sD,uBACnBxS,OAAQ7nB,KAAK06B,0BAM7B5e,cACI,MAAM,EAAE3Y,GAAMnD,KAAKK,MACnB,GAAIL,KAAKK,MAAM9lB,aACX,OAAO,kBAAC,GAAD,MAGX,MAAMwpC,EAAsB1jB,GACxB,kBAAC4E,GAAA,EAAD,iBAAkB5E,EAAlB,CAAyB3f,UAAU,2BAC9B2f,EAAMmK,UAITswB,EAAqB/uD,GAEnB,kBAAC+3B,GAAA,EAAD,CACIC,UAAU,OACVrjB,UAAU,gBACVykB,QAAUrd,GAAMA,EAAE++B,mBAElB,kBAAC7iB,GAAA,EAAD,CAAgBC,IAAI,OAChB,kBAACoX,GAAA,EAAD,CACIlQ,MAAM,OACNzqB,UAAU,0CAEV,kBAAC,GAAD,QAGR,kBAAC0jB,GAAA,EAAD,KACI,kBAAC2f,EAAD,CACI5e,QAAS,IAAMnF,KAAK26B,kBAAkB5uD,IAErCo3B,EAAE,aAAc,UAEpBnD,KAAKw6B,wBACF,kBAACzW,EAAD,CACI5e,QAAS,IAAMnF,KAAK46B,aAAa7uD,IAEhCo3B,EAAE,mBAAoB,uBAUzC4Y,EAAU,CACZ,CACIl4B,UAAW,YACX7U,KAAMm0B,EAAE,aAAc,QACtB6Y,MAAM,EACNC,QAAS,cACTU,UAAW,CAACxwC,EAAWJ,IAAZ,UACJA,EAAKqB,KADD,YACSrB,EAAKI,YAE7B,CACI0X,UAAW,OACX7U,KAAMm0B,EAAE,aAAc,QACtB6Y,MAAM,GAEV,CACIn4B,UAAW,WACX7U,KAAMm0B,EAAE,mBAAoB,gBAC5B6Y,MAAM,GAEV,CACIn4B,UAAW,cACX7U,KAAMm0B,EAAE,mBAAoB,UAC5B6Y,MAAM,EACNW,UAAWoe,GAAkBnnD,KAAOmnD,EAzBZ,cAyBqDlnD,O1ElKlE,c0EmKXgpC,UAAWke,GAAkBnnD,KAAOmnD,EA1BZ,eA4B5B,CACIl3C,UAAW,QACX7U,KAAMm0B,EAAE,cAAe,SACvB6Y,MAAM,GAEV,CACIn4B,UAAW,cACX7U,KAAMm0B,EAAE,iBAAkB,cAC1B6Y,MAAM,EACNW,UAAYloB,GACR,kBAAC,GAAD,CACItG,OACIsG,EACM0O,EAAE,iBAAkB,cACpBA,EAAE,oBAAqB,eAEjCx0B,KACI8lB,EACMga,GACAA,MAKtB,CACI5qB,UAAW,GACX7U,KAAM,GACN2/C,MAAO,QACPhS,UAAW,CAAC/lC,EAAOD,IAAQmkD,EAAkBnkD,KAI/CqkD,EAAY,CACd71B,QAAS,CAACrd,EAAGnR,EAAKskD,KACdj7B,KAAK26B,kBAAkBhkD,KAI/B,OACI,kBAAC,KAAD,CACIomC,YAAU,EACVC,UAAU,EACVf,QAAQ,4BACRiB,SAAS,KACT1qC,KAAMwtB,KAAKK,MAAM7yB,MACjBuuC,QAASA,EACTif,UAAWA,EACX3d,iBACI,kBAAC,GAAWnD,iBAAZ,CACIpuC,QAASk0B,KAAKK,MAAM9lB,aACpB4oB,EAAGA,OAiEZgG,oBACX1D,YARqB93B,IACd,CACHH,MAAOG,EAAMoN,QAAQvN,MACrB+M,aAAc5M,EAAMoN,QAAQR,eAKhCkrB,CAAyBC,aAAgB,SAAhBA,CAA0By0B,M,OChRvD,MAAMe,WAA4Bx4B,YAAW,cAAD,yBAkBxCy4B,uBAAyB,IACdn7B,KAAKK,MAAMyU,YAAc9U,KAAKK,MAAM4H,SAASD,SAnBhB,KAsBxCqS,aAAgBjtC,GAASm9C,UACrB/oC,KACA,MAAM45C,EAAWp7B,KAAKK,MAAMlmB,gBAAgB/M,GXiE7C,IAA+B2N,SW/DxBilB,KAAKK,MAAMplB,sBAAsB7N,EAAM4G,GAExCgsB,KAAKq7B,iBAAiBr7B,KAAKK,MAAMlmB,oBX6DRY,EWzDRilB,KAAKK,MAAMlmB,gBX0D9B4P,KACF6Y,I3HvFgB,qB2HuFD7nB,GACfkP,KAAM2U,IACH9d,GAAMC,SAAS5F,GAA4ByjB,EAAKpsB,OACzCosB,EAAKpsB,OAEf0X,MAAOla,IACJ,MAAMma,MAAMlD,GAAsBjX,OWjEYka,MAAOla,IACrDwR,KAEAwe,KAAKK,MAAMplB,sBAAsB7N,EAAMguD,GAEvC75C,GAAsBvR,EAAIyB,QAASuuB,KAAKm7B,6BArCR,KAyCxCG,UAAa1kD,GACFopB,KAAKK,MAAMk7B,cAAcp5C,SAASvL,GA1CL,KAwHxCykD,iBAAoBG,GACTj8B,OAAOwiB,OAAOyZ,GAAQC,MAAOr5B,GAAY,KAANA,GA7G9CyK,qBXaA/rB,GAAMC,SDXC,CACHpS,KnJmJoC,iCoJxIjCob,KACFC,I3HvBgB,sB2HwBhBC,KAAM2U,IACH9d,GAAMC,SAAS5F,GAA4ByjB,EAAKpsB,OACzCosB,EAAKpsB,OAEf0X,MAAOla,IACJ,MAAMnC,EAAeoZ,GAAsBjX,GAC3C8Q,GAAMC,SDRuB/Q,KAC9B,CACHrB,KnJwImC,8BmJvInC9C,MAAOmE,ICKYoL,CAAyBvN,OWrBrBoc,KAAMlP,IACzBilB,KAAKkM,SAAS,CAAEnxB,QAASA,MA+BjC0oB,SACI,MAAM,EAAEN,GAAMnD,KAAKK,MACnB,OAAIL,KAAKK,MAAMjmB,uBAEP,kBAAC+5C,GAAD,KACI,kBAAC,GAAD,OAMR,kBAACttB,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,CAAKgK,GAAI,GACL,kBAAC,GAAD,CACIniC,KAAK,OACLvB,KAAK,aACL2mC,YAAa5Q,EAAE,oBAAqB,WACpCuP,OAAQ1S,KAAKqa,aAAa,cAC1BrmC,MAAOgsB,KAAKK,MAAMlmB,gBAAgBjO,WAClCwU,UAAU,WACVgzB,UAAWvQ,EAAE,oBAAqB,WAClC6P,SAAUhT,KAAKK,MAAMq7B,aACrBtoB,QAASpT,KAAKs7B,UAAU,gBAE5B,kBAAC,GAAD,CACI3sD,KAAK,OACLvB,KAAK,QACLslC,OAAQ1S,KAAKqa,aAAa,SAC1BtG,YAAa5Q,EAAE,gBAAiB,kBAChCnvB,MAAOgsB,KAAKK,MAAMlmB,gBAAgB5N,MAClCmU,UAAU,WACVgzB,UAAWvQ,EAAE,gBAAiB,kBAC9B6P,SAAUhT,KAAKK,MAAMq7B,aACrBtoB,QAASpT,KAAKs7B,UAAU,WAE5B,kBAAC,GAAD,CACI3sD,KAAK,OACLvB,KAAK,aACLslC,OAAQ1S,KAAKqa,aAAa,cAC1BtG,YAAa5Q,EAAE,qBAAsB,gBACrCnvB,MAAOgsB,KAAKK,MAAMlmB,gBAAgBxN,WAClC+T,UAAU,WACVgzB,UAAWvQ,EAAE,qBAAsB,gBACnC6P,SAAUhT,KAAKK,MAAMq7B,aACrBtoB,QAASpT,KAAKs7B,UAAU,iBAGhC,kBAACx0B,GAAA,EAAD,CAAKgK,GAAI,GACL,kBAAC,GAAD,CACIniC,KAAK,OACLvB,KAAK,YACLslC,OAAQ1S,KAAKqa,aAAa,aAC1BtG,YAAa5Q,EAAE,mBAAoB,iBACnCnvB,MAAOgsB,KAAKK,MAAMlmB,gBAAgBhO,UAClCuU,UAAU,WACVgzB,UAAWvQ,EAAE,mBAAoB,iBACjC6P,SAAUhT,KAAKK,MAAMq7B,aACrBtoB,QAASpT,KAAKs7B,UAAU,eAE5B,kBAAC,GAAD,CACI3sD,KAAK,QACLvB,KAAK,QACLslC,OAAQ1S,KAAKqa,aAAa,SAC1BtG,YAAa5Q,EAAE,gBAAiB,UAChCnvB,MAAOgsB,KAAKK,MAAMlmB,gBAAgB7N,MAClCoU,UAAU,WACVgzB,UAAWvQ,EAAE,gBAAiB,UAC9B6P,SAAUhT,KAAKK,MAAMq7B,aACrBtoB,QAASpT,KAAKs7B,UAAU,cAjH1CJ,GAOKrsB,aAAe,CAClB0sB,cAAe,GACfG,cAAc,GA4HPvyB,ICvJX,GDuJWA,gBACX1D,YATqB93B,IACd,CACH5B,KAAM4B,EAAMe,KAAK3C,KACjBoO,gBAAiBxM,EAAMoN,QAAQZ,gBAC/BC,uBAAwBzM,EAAMoN,QAAQX,yBAKjB,CAAEa,sBZrGM,CAAChP,EAAK+H,KAChC,CACHrF,KnJkI+B,0BmJjI/B1C,IAAKA,EACL+H,MAAOA,KYiGXyxB,CACIC,aAAgB,SAAhBA,CAA0Bw1B,M,OCvJlC,SAAS,KAA2Q,OAA9P,GAAW37B,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAI1X,EAAI,EAAGA,EAAI2X,UAAUlb,OAAQuD,IAAK,CAAE,IAAI4X,EAASD,UAAU3X,GAAI,IAAK,IAAI9b,KAAO0zB,EAAcJ,OAAOK,UAAUC,eAAeC,KAAKH,EAAQ1zB,KAAQwzB,EAAOxzB,GAAO0zB,EAAO1zB,IAAY,OAAOwzB,IAA2BM,MAAMC,KAAMN,WAIhT,MAAMi8B,GAAez7B,IACnB,IAAI,OACFC,EAAM,MACNC,KACGC,GACDH,EACJ,OAAoB,IAAMI,cAAc,MAAO,GAAS,CACtDC,MAAO,GACPC,OAAQ,GACRC,QAAS,YACTC,KAAM,OACNC,IAAKR,GACJE,GAAQD,EAAqB,IAAME,cAAc,QAAS,KAAMF,GAAS,KAAM,KAAY,GAAuB,IAAME,cAAc,SAAU,CACjJM,GAAI,GACJC,GAAI,GACJC,EAAG,EACH4I,OAAQ,UACRC,YAAa,OAIX,GAA0B,IAAM1I,WAAW,CAACZ,EAAOM,IAAqB,IAAML,cAAcq7B,GAAc,GAAS,CACvHx7B,OAAQQ,GACPN,KACY,IC9BX,GAAS,GD8BE,IC5Bf,SAAS,KAA2Q,OAA9P,GAAWd,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAI1X,EAAI,EAAGA,EAAI2X,UAAUlb,OAAQuD,IAAK,CAAE,IAAI4X,EAASD,UAAU3X,GAAI,IAAK,IAAI9b,KAAO0zB,EAAcJ,OAAOK,UAAUC,eAAeC,KAAKH,EAAQ1zB,KAAQwzB,EAAOxzB,GAAO0zB,EAAO1zB,IAAY,OAAOwzB,IAA2BM,MAAMC,KAAMN,WAIhT,MAAMk8B,GAAa17B,IACjB,IAAI,OACFC,EAAM,MACNC,KACGC,GACDH,EACJ,OAAoB,IAAMI,cAAc,MAAO,GAAS,CACtDC,MAAO,GACPC,OAAQ,GACRC,QAAS,YACTC,KAAM,OACNC,IAAKR,GACJE,GAAQD,EAAqB,IAAME,cAAc,QAAS,KAAMF,GAAS,KAAM,KAAY,GAAuB,IAAME,cAAc,SAAU,CACjJM,GAAI,GACJC,GAAI,GACJC,EAAG,GACHJ,KAAM,aACH,KAAU,GAAqB,IAAMJ,cAAc,OAAQ,CAC9DS,EAAG,6EACH2I,OAAQ,QACRC,YAAa,IACbC,cAAe,aAIb,GAA0B,IAAM3I,WAAW,CAACZ,EAAOM,IAAqB,IAAML,cAAcs7B,GAAY,GAAS,CACrHz7B,OAAQQ,GACPN,KACY,ICxBf,MAAM42B,WAAuBx0B,IAAMC,UAAW,cAAD,yBAqBzCyC,QAAWkN,IACHrS,KAAKK,MAAM6E,UAAYlF,KAAKK,MAAMw7B,UAGtC77B,KAAKK,MAAM8E,SAASnF,KAAKK,MAAMrsB,QAzBM,KA4BzC8nD,yBAA2B,IACnB97B,KAAKK,MAAM6E,SACJ+xB,GAAe8E,aAEtB/7B,KAAKK,MAAM+S,QACJ6jB,GAAe9jB,YAEjBnT,KAAKK,MAAM6S,MACT+jB,GAAehkB,UAEjBjT,KAAKK,MAAMw7B,SACT5E,GAAe+E,aAGnB,GAGXv4B,SACI,OACI,kBAACgQ,GAAA,EAAD,CACIwoB,OAAK,EACLC,OAAQl8B,KAAKK,MAAM67B,OACnBx7C,UAAS,0BAAqBsf,KAAK87B,2BAA1B,YAAwD97B,KAAKK,MAAM3f,WAAa,KAExFsf,KAAKK,MAAMrsB,MACR,kBAAC,GAAD,CACI0M,UAAS,8CACTykB,QAASnF,KAAKmF,UAGlB,kBAAC,GAAD,CACIzkB,UAAS,gDACTykB,QAASnF,KAAKmF,UAGrBnF,KAAKK,MAAMqT,WACR,0BAAMhzB,UAAS,+BAA0Bsf,KAAKK,MAAM2S,SAAW,IAAMikB,GAAelkB,aAAe,KAC9F/S,KAAKK,MAAMqT,aAjE9BujB,GAcK8E,aAAe,qBAdpB9E,GAeK+E,aAAe,qBAfpB/E,GAgBKxkB,WAAa,YAhBlBwkB,GAiBKhkB,UAAY,kBAjBjBgkB,GAkBK9jB,YAAc,oBAlBnB8jB,GAmBKlkB,aAAe,kBAsDXkkB,UCrEf,MAAMkF,WAAyBz5B,YAAW,cAAD,yBAYrC2X,aAAgBpuC,GAAS+H,IACrBwN,KACA,MAAM46C,EAAkB,IACjBp8B,KAAKK,MAAM5lB,aACd,CAACxO,GAAM+H,Gf2IZ,IAA4ByG,KezIR2hD,Ef0IvBt7C,GAAMC,SDbC,CACHpS,KnJ2C+B,4BoJ9B5Bob,KACF6Y,IADE,U3HpJkB,2B2HoJlB,OACqBnoB,EAAajH,GADlC,KACyCiH,GAC3CwP,KAAM2U,IACH9d,GAAMC,SDbqBtG,KAC5B,CACH9L,KnJuCiC,4BmJtCjC8L,iBCUmB8B,CAAuBqiB,EAAKpsB,OACpCosB,EAAKpsB,OAEf0X,MAAOla,IAEJ,MADA8Q,GAAMC,SDVP,CACHpS,KnJkC8B,yBmJjC9B9C,MCQuCmE,IAC7Bma,MAAMlD,GAAsBjX,OenJFka,MAAOre,IACvC2V,KACAD,GACIye,KAAKK,MAAM8C,EACP,0CACA,kDACAt3B,EAAM4F,QACVuuB,KAAKK,MAAM4H,SAASD,aAxBhC6E,oBACIrrB,KACAo1C,KAAoB1sC,MAAOre,IACvB0V,GACI,yDACA1V,EAAM4F,QACNuuB,KAAKK,MAAM4H,SAASD,YAuBhCvE,SACI,MAAM,EAAEN,GAAMnD,KAAKK,MACnB,GAAIL,KAAKK,MAAM3lB,oBACX,OACI,kBAACy5C,GAAD,KACI,kBAAC,GAAD,OAKZ,MAAMkI,EAAuBr8B,KAAKK,MAAM5lB,aAAaxN,sBACrD,OACI,kBAAC45B,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,CAAKpmB,UAAU,eACVkU,MACG,kBAAC,GAAD,CACIsnC,QAAM,EACNloD,MAAOqoD,EACP3oB,UAAS,gCAA2B2oB,EAAuB,QAAU,WAA5D,iBACTl3B,QAASnF,KAAKqa,aAAa,4BAIvC,kBAACvT,GAAA,EAAD,KACI,kBAAC2M,GAAA,EAAD,KACK7e,MACG,kBAAC,GAAD,CACIsnC,QAAM,EACNloD,MAAOgsB,KAAKK,MAAM5lB,aAAa6hD,YAC/B5oB,UAAU,WACVvO,QAASnF,KAAKqa,aAAa,eAC3BnV,UAAWm3B,IAGnB,kBAAC,GAAD,CACIH,QAAM,EACNloD,MAAOgsB,KAAKK,MAAM5lB,aAAa5N,QAC/B6mC,UAAWvQ,EACP,mCACA,YAEJgC,QAASnF,KAAKqa,aAAa,WAC3BnV,UAAWm3B,IAEf,kBAAC,GAAD,CACIH,QAAM,EACNloD,MACIgsB,KAAKK,MAAM5lB,aAAa1N,wBAE5B2mC,UAAWvQ,EACP,yCACA,mBAEJgC,QAASnF,KAAKqa,aACV,2BAEJnV,UAAWm3B,IAEf,kBAAC,GAAD,CACIH,QAAM,EACNloD,MAAOgsB,KAAKK,MAAM5lB,aAAazN,gBAC/B0mC,UAAWvQ,EACP,qCACA,uBAEJgC,QAASnF,KAAKqa,aAAa,mBAC3BnV,UAAWm3B,QAiBxBlzB,oBACX1D,YATqB93B,IACd,CACH5B,KAAM4B,EAAMe,KAAK3C,KACjB0O,aAAc9M,EAAMoN,QAAQN,aAC5BC,oBAAqB/M,EAAMoN,QAAQL,sBAKvC+qB,CAAyBC,aAAgB,SAAhBA,CAA0By2B,MClGvD,MAAMI,WAA2B75B,YAAW,cAAD,yBAcvC/0B,MAAQ,CACJ6uD,UAAW,GACXC,oBAAoB,GAhBe,KAwBvCC,wBAA2BtvD,IACnBA,EAAKoX,OAAS,GzIoBnB,SAAwBpX,GAC3B,OAAO2c,KACFC,IF4BgB,aE5BA5c,GAChB6c,KAAM2U,GACIA,EAAKpsB,MAEf0X,MAAOla,IACJ,MAAMA,IyI1BN2sD,CAAevvD,GAAM6c,KAAMuyC,IACvBx8B,KAAKkM,SAAS,CAAEswB,UAAWA,OA3BA,KAgCvCrB,uBAAyB,IACdn7B,KAAKK,MAAMyU,YAAc9U,KAAKK,MAAM4H,SAASD,SAjCjB,KAoCvC40B,qBAAwBC,IC/DrB,IAAyCC,EDgEpCD,EAAQljD,aChE4BmjD,EDiEJD,EAAQljD,WChEzCoQ,KACF2U,K5IuGa,sC4IvGA,CACVq+B,SAAUD,IAEb7yC,KAAK2U,GACKA,EAAKpsB,MAEf0X,MAAMla,IACH,MAAMA,KDwD8Cia,KAChDsgC,gBACUvqB,KAAKK,MAAMzlB,qBAAqB,OAAQgkB,EAAKxxB,MAEnD,MAAM4vD,EAAWh9B,KAAKi9B,4CAClBr+B,EAAKs+B,eAIJ5oC,aACK0L,KAAKK,MAAMzlB,qBACb,aACAgkB,EAAKm+B,gBAEH/8B,KAAKK,MAAMzlB,qBACb,OACAgkB,EAAK/kB,YAEHmmB,KAAKK,MAAMzlB,qBACb,eACAgkB,EAAKu+B,eAEHn9B,KAAKK,MAAMzlB,qBACb,WACAgkB,EAAKw+B,gBAEHp9B,KAAKK,MAAMzlB,qBACb,OACAgkB,EAAKo2B,cAEHh1B,KAAKK,MAAMzlB,qBACb,QACAoiD,KAKHh9B,KAAKK,MAAMq7B,cACZ17B,KAAKq7B,iBAAiBr7B,KAAKK,MAAMxxB,kBAEjC2S,KACAi1C,GAAqBz2B,KAAKK,MAAMxxB,gBAAgBqb,MAC3Cla,IACGuR,GACI0F,GAAsBjX,GACtBgwB,KAAKm7B,gCAnFE,KA6FvC8B,4CAA+CI,IAC3C,GAAIA,GAAgBA,EAAa74C,OAAQ,CACrC,MAAM8zC,EAAet4B,KAAKK,MAAMt0B,KAC1Bi0B,KAAKK,MAAMt0B,KAAKC,cAChB,KACAsxD,EAA4BD,EAAa/nD,IAC1CioD,GAAWA,EAAOC,MAEvB,GACIlF,GACAgF,EAA0Bn7C,SAASm2C,GAGnC,OADAt4B,KAAKkM,SAAS,CAAEuwB,oBAAoB,IAC7B,EAKf,OADAz8B,KAAKkM,SAAS,CAAEuwB,oBAAoB,IAC7B,GA/G4B,KAkHvCpB,iBAAoBG,GACTj8B,OAAOwiB,OAAOyZ,GAAQC,MACxBr5B,GAAY,KAANA,QAAkBnJ,IAANmJ,GAAyB,OAANA,GApHP,KAwHvCq7B,kBAAoBlT,gBAEVvqB,KAAKK,MAAMzlB,qBADJ,QAGT6/B,EAAiBA,EAAezmC,MAAQ,MAIvCgsB,KAAKK,MAAMq7B,eACZ17B,KAAKq7B,iBAAiBr7B,KAAKK,MAAMxxB,iBAChCylB,OAED9S,KACAi1C,GAAqBz2B,KAAKK,MAAMxxB,gBAAgBqb,MAAOla,IACnDuR,GACI0F,GAAsBjX,GACtBgwB,KAAKm7B,8BAxIkB,KA8IvCuC,kBAAqBtwD,GAASm9C,gBACpBvqB,KAAKK,MAAMzlB,qBAAqBxN,EAAM4G,IAGvCgsB,KAAKK,MAAMq7B,cACZ17B,KAAKq7B,iBAAiBr7B,KAAKK,MAAMxxB,kBAEjC2S,KACAi1C,GAAqBz2B,KAAKK,MAAMxxB,gBAAgBqb,MAAOla,IACnDuR,GACI0F,GAAsBjX,GACtBgwB,KAAKm7B,8BAzJkB,KA+JvCwC,cAAiBnqD,IACb,MAAMoqD,EAAe59B,KAAKK,MAAMtlB,QAAQP,uBAAyB,GACjE,IAAK,MAAMihC,KAAUmiB,EACjB,GAAIniB,EAAOznC,QAAUR,EACjB,OAAOioC,EAAO9iC,MAGtB,OAAO,MAtK4B,KAyKvCklD,oBAAsB,KAClB,MAAM7pD,EAAQgsB,KAAKK,MAAMxxB,eAAekL,MACxC,IAAK/F,GAAmB,IAAVA,EACV,OAAO,KAIX,MAAO,CACHA,QACA2E,MAJUqnB,KAAK29B,cAAc3pD,KA9KE,KAsLvC8pD,iBAAmB,KACX99B,KAAKK,MAAMq7B,eAAgB9mC,QAI1BN,MAAoDI,MA3LtB,KA+LvC4mC,UAAa1kD,GACFopB,KAAKK,MAAMk7B,cAAcp5C,SAASvL,GAhMN,KAmMvCmnD,cAAgB,IACL/9B,KAAKK,MAAM29B,SAjLtBnxB,oBhBSA/rB,GAAMC,SDtDC,CACHpS,KnJmLmC,gCoJ7HhCob,KACFC,I3HpCmB,0B2HqCnBC,KAAM2U,IACH9d,GAAMC,SAASjG,GAA2B8jB,EAAKpsB,SAElD0X,MAAOla,IACJ,MAAMnC,EAAeoZ,GAAsBjX,GAC3C8Q,GAAMC,SDlDsB/Q,KAC7B,CACHrB,KnJwKkC,6BmJvKlC9C,MAAOmE,IC+CYgL,CAAwBnN,MAM/CiT,GAAMC,SDZC,CACHpS,KnJmIJ,uCoJvHOob,KACFC,I3HwC6B,mB2HvC7BC,KAAM2U,IACH9d,GAAMC,SDVP,CACHpS,KnJ+HJ,uCmJ9HI6L,sBCQqDokB,EAAKpsB,SAEzD0X,MAAOla,IACJ8Q,GAAMC,SDP6B/Q,KACpC,CACHrB,KnJ0HJ,oCmJzHI9C,MAAOmE,ICIYwL,CAA+BxL,MgBsJtDiuD,oBACI,MAAM,EAAE96B,GAAMnD,KAAKK,MACb69B,EAAal+B,KAAK69B,sBAElBM,GAAqBn+B,KAAKK,MAAMq7B,aAChC0C,EAAap+B,KAAK+9B,gBAExB,OACI,kBAAC,GAAD,CACI74B,SAAUi5B,GAAqBC,EAC/B1qB,UAAWvQ,EACP,8BACA,gCAEJ5nB,QAASykB,KAAKK,MAAMtlB,QAAQP,sBAC5BghC,eAAiBC,GAAWA,EAAO9iC,MACnC+iC,eAAiBD,GAAWA,EAAOznC,MACnC+/B,YAAa5Q,EACT,8BACA,gCAEJ/1B,KAAK,QACL4G,MAAOkqD,EACP9rB,SAAUpS,KAAKy9B,kBACf/8C,UAAU,SACVsyB,SAAUhT,KAAKK,MAAMq7B,aACrBtoB,QAASpT,KAAKs7B,UAAU,SACxB+C,iBAAmB5iB,GACE,IAAjBA,EAAOznC,QAAiD,IAAlCgsB,KAAKryB,MAAM8uD,qBAMjDh5B,SACI,GAAIzD,KAAKK,MAAMnmB,sBACX,OACI,kBAACi6C,GAAD,KACI,kBAAC,GAAD,OAKZ,MAAM,EAAEhxB,GAAMnD,KAAKK,MACb+T,EAAapU,KAAK89B,mBAClBM,EAAap+B,KAAK+9B,gBAClBO,GAAoB5pC,KACpBypC,GAAqBn+B,KAAKK,MAAMq7B,aACtC,OACI,kBAAC70B,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,CAAKgK,GAAI,GACL,kBAAC,GAAD,CACI5L,SAAUi5B,GAAqBC,EAC/B1qB,UAAWvQ,EAAE,sBAAuB,qBACpC5nB,QAASykB,KAAKryB,MAAM6uD,UACpBxoD,MACIgsB,KAAKK,MAAMxxB,eAAezB,KACpB,CAAEA,KAAM4yB,KAAKK,MAAMxxB,eAAezB,MAClC,KAEV2mC,YAAa5Q,EAAE,sBAAuB,qBACtC/1B,KAAK,OACLouC,eAAiBC,GAAWA,EAAOruC,KACnCsuC,eAAiBD,GAAWA,EAAOruC,KACnCglC,SAAUpS,KAAK48B,qBACf2B,cAAev+B,KAAK08B,wBACpBh8C,UAAU,SACV89C,iBAAkB,IACdr7B,EAAE,sCAAuC,4CAE7C6P,SAAUhT,KAAKK,MAAMq7B,aACrBtoB,QAASpT,KAAKs7B,UAAU,UAG5B,kBAAC,GAAD,CACIp2B,UAAQ,EACRv2B,KAAK,OACLvB,KAAK,UACL4G,MAAOgsB,KAAKK,MAAMxxB,eAAe8K,WACjCo6B,YAAa5Q,EAAE,kBAAmB,gBAClCziB,UAAU,WACVsyB,SAAUhT,KAAKK,MAAMq7B,aACrBhoB,UAAWvQ,EAAE,kBAAmB,gBAChCiQ,QAASpT,KAAKs7B,UAAU,gBAE3BgD,GACG,kBAAC,GAAD,CACIp5B,UAAQ,EACRv2B,KAAK,OACLvB,KAAK,OACL4G,MAAOgsB,KAAKK,MAAMxxB,eAAegL,KACjCk6B,YAAa5Q,EAAE,eAAgB,QAC/BziB,UAAU,WACVsyB,SAAUhT,KAAKK,MAAMq7B,aACrBhoB,UAAWvQ,EAAE,eAAgB,QAC7BiQ,QAASpT,KAAKs7B,UAAU,UAG/Bt7B,KAAKi+B,qBAEV,kBAACn3B,GAAA,EAAD,CAAKgK,GAAI,GACL,kBAAC,GAAD,CACIniC,KAAK,QACLvB,KAAK,QACL4G,MAAOgsB,KAAKK,MAAMxxB,eAAevC,MACjCynC,YAAa5Q,EACT,uBACA,sBAEJziB,UAAU,WACVgyB,OAAQ1S,KAAK09B,kBAAkB,SAC/B1qB,SAAUhT,KAAKK,MAAMq7B,aACrBhoB,UAAWvQ,EACP,uBACA,sBAEJiQ,QAASpT,KAAKs7B,UAAU,SACxBp2B,SAAUkP,GAAcgqB,IAE3BE,GACG,oCACI,kBAAC,GAAD,CACI3vD,KAAK,OACLvB,KAAK,OACL4G,MAAOgsB,KAAKK,MAAMxxB,eAAe+K,KACjCm6B,YAAa5Q,EACT,4BACA,eAEJziB,UAAU,WACVgyB,OAAQ1S,KAAK09B,kBAAkB,QAC/B1qB,SAAUhT,KAAKK,MAAMq7B,aACrBhoB,UAAWvQ,EACP,4BACA,eAEJiQ,QAASpT,KAAKs7B,UAAU,QACxBp2B,SAAUkP,GAAcgqB,IAE5B,kBAAC,GAAD,CACIzvD,KAAK,OACLvB,KAAK,eACL4G,MAAOgsB,KAAKK,MAAMxxB,eAAeiL,aACjCi6B,YAAa5Q,EAAE,kBAAmB,WAClCziB,UAAU,WACVgyB,OAAQ1S,KAAK09B,kBAAkB,gBAC/B1qB,SAAUhT,KAAKK,MAAMq7B,aACrBhoB,UAAWvQ,EAAE,kBAAmB,WAChCiQ,QAASpT,KAAKs7B,UAAU,gBACxBp2B,SAAUkP,GAAcgqB,IAE5B,kBAAC,GAAD,CACIzvD,KAAK,OACLvB,KAAK,OACL4G,MAAOgsB,KAAKK,MAAMxxB,eAAe4vD,KACjC1qB,YAAa5Q,EAAE,eAAgB,kBAC/BziB,UAAU,WACVgyB,OAAQ1S,KAAK09B,kBAAkB,QAC/B1qB,SAAUhT,KAAKK,MAAMq7B,aACrBhoB,UAAWvQ,EAAE,eAAgB,kBAC7BiQ,QAASpT,KAAKs7B,UAAU,QACxBp2B,SAAUkP,GAAcgqB,IAE5B,kBAAC,GAAD,CACIzvD,KAAK,OACLvB,KAAK,WACL4G,MAAOgsB,KAAKK,MAAMxxB,eAAeuuD,SACjCrpB,YAAa5Q,EACT,qBACA,eAEJziB,UAAU,WACVgyB,OAAQ1S,KAAK09B,kBAAkB,YAC/B1qB,SAAUhT,KAAKK,MAAMq7B,aACrBhoB,UAAWvQ,EACP,qBACA,eAEJiQ,QAASpT,KAAKs7B,UAAU,YACxBp2B,SAAUkP,GAAcgqB,QA1XlD7B,GASK1tB,aAAe,CAClB6sB,cAAc,EACdH,cAAe,IAwYRpyB,oBACX1D,YAXqB93B,IACd,CACHkB,eAAgBlB,EAAMoN,QAAQlM,eAC9BqL,sBAAuBvM,EAAMoN,QAAQb,sBACrC/M,QAASQ,EAAMe,KAAK3C,KAAO4B,EAAMe,KAAK3C,KAAKoB,QAAU,GACrD4N,QAASpN,EAAMoN,QACfhP,KAAM4B,EAAMe,KAAK3C,OAKI,CAAE6O,yBAA3B6qB,CACIC,aAAgB,SAAhBA,CAA0B62B,MEnZlC,MAAMmC,WAA0Bh8B,YAa5BqJ,YAAY1L,GACR2L,MAAM3L,GADS,KAmBnBs+B,0BAA4B,KACxB,MAAM,SAAE5pC,EAAF,SAAYkT,GAAajI,KAAKK,MACpC,IAAI0F,EAAWnR,K7IiGkB,2DA1IN,yC6I6C3B,OAHAmR,EAAWA,EAASlc,QAAQ,cAAekL,GAE3CvT,KACOuI,KACFC,IAAI+b,GACJ9b,KAAM2U,KACe,IAAdA,EAAKpsB,OACLwtB,KAAKkM,SAAS,CAAE0yB,eAAe,IAC/B5+B,KAAK6+B,+BAIZ30C,MAAOla,IACJ,MAAMnC,EAAeoZ,GAAsBjX,GAC3CuR,GAAsB,6DAAD,OACyC1T,GAC1Do6B,EAASD,UACT,MAvCG,KA4CnB62B,0BAA4B,KACxB,MAAM,SAAE9pC,GAAaiL,KAAKK,MAC1B,IAAI0F,EAAWnR,K7IyEmB,oDA1IN,yB6IsE5B,OAJAmR,EAAWA,EAASlc,QAAQ,cAAekL,GAE3CvT,KACAwe,KAAKkM,SAAS,CAAE4yB,cAAc,IACvB/0C,KACFC,IAAI+b,GACJ9b,KAAM2U,IACH,MAAMmgC,EAAiBngC,EAAKpsB,KAC5B,GAAIusD,GAAkBA,EAAev6C,OAAS,EAAG,CAC7C,MAAMw6C,EAAgBD,EAAe,GACrC/+B,KAAKkM,SAAS,CAAE8yB,qBAIvB90C,MAAOla,IACJ,MAAMnC,EAAeoZ,GAAsBjX,GAC3CuR,GAAsB,6CAAD,OACyB1T,GAC1CmyB,KAAKm7B,0BACL,KAGP1H,QAAQ,IAAMzzB,KAAKkM,SAAS,CAAE4yB,cAAc,EAAOG,eAAe,MArExD,KAwEnBC,oBAAsB,KAClB,MAAM,SAAEnqC,GAAaiL,KAAKK,MAC1B,IAAKzL,KAAe,OACpB,MAAMmR,E7I4C4B,oD6I5CUlc,QAAQ,cAAekL,GAInE,OAFAvT,KACAwe,KAAKkM,SAAS,CAAEizB,eAAe,IACxBp1C,KAAM2U,KAAKqH,EAAU,IACvB9b,KAAM2U,IACH,MAAMogC,EAAgBpgC,EAAKpsB,KAC3BwtB,KAAKkM,SAAS,CACV8yB,oBAGP90C,MAAOla,IACJ,MAAMnC,EAAeoZ,GAAsBjX,GAC3CuR,GAAsB,2CAAD,OACuB1T,GACxCmyB,KAAKm7B,0BACL,KAGP1H,QAAQ,IAAMzzB,KAAKkM,SAAS,CAAEizB,eAAe,MA9FnC,KAiGnBC,oBAAsB,KAClB,MAAM,SAAErqC,GAAaiL,KAAKK,OACpB,cAAE2+B,GAAkBh/B,KAAKryB,MACzB0xD,EAAe,OAAGL,QAAH,IAAGA,OAAH,EAAGA,EAAexrD,GAEvC,IAAKohB,OAAkByqC,EAAiB,OAExC,MAAMt5B,E7IgB2B,iE6IhBUlc,QAAQ,cAAekL,GAAUlL,QAAQ,eAAgBw1C,GAIpG,OAFA79C,KACAwe,KAAKkM,SAAS,CAAEozB,eAAe,EAAM/D,cAAe,KAC7CxxC,KAAM8vB,OAAO9T,GACf9b,KAAK,KACF+V,KAAKkM,SAAS,KACH,CACH8yB,cAAe,UAI1B90C,MAAOla,IACJ,MAAMnC,EAAeoZ,GAAsBjX,GACrCuvD,EAAcv/B,KAAKw/B,eAAexvD,GAEnCuvD,GACDh+C,GAAsB,+CAAD,OAC2B1T,GAC5CmyB,KAAKm7B,0BACL,GAIRn7B,KAAKkM,SAAS,KACH,CACHqvB,cAAegE,GAAe,QAIzC9L,QAAQ,IAAMzzB,KAAKkM,SAAS,CAAEozB,eAAe,MAtInC,KAyInBG,oBAAsB,CAACryD,EAAM4G,KACzB,MAAM,SAAE+gB,GAAaiL,KAAKK,OACpB,cAAE2+B,GAAkBh/B,KAAKryB,MACzB0xD,EAAe,OAAGL,QAAH,IAAGA,OAAH,EAAGA,EAAexrD,GAEvC,IAAKohB,OAAkByqC,EAAiB,OAExC,MAAMK,EAAoB,IAAKV,GACzBW,EAAe,IAAKX,EAAe,CAAC5xD,GAAO4G,GAE3C+xB,E7I3B2B,iE6I2BUlc,QAAQ,cAAekL,GAAUlL,QAAQ,eAAgBw1C,GAIpG,OAFA79C,KACAwe,KAAKkM,SAAS,CAAE0zB,eAAe,EAAMZ,cAAeW,EAAcpE,cAAe,KAC1ExxC,KAAM6Y,IAAImD,EAAU45B,GACtB11C,KAAM2U,IACHoB,KAAKkM,SAAS,KACH,CACH8yB,cAAepgC,EAAKpsB,UAI/B0X,MAAOla,IACJ,MAAMnC,EAAeoZ,GAAsBjX,GACrCuvD,EAAcv/B,KAAKw/B,eAAexvD,GAEnCuvD,GACDh+C,GAAsB,8CAAD,OAC0B1T,GAC3CmyB,KAAKm7B,0BACL,GAIRn7B,KAAKkM,SAAS,KACH,CACH8yB,cAAeU,EACfnE,cAAegE,GAAe,QAIzC9L,QAAQ,IAAMzzB,KAAKkM,SAAS,CAAE0zB,eAAe,MAlLnC,KAqLnBC,kBAAoBphD,IAChB,MAAM,cAAEugD,GAAkBh/B,KAAKryB,MACzB0xD,EAAe,OAAGL,QAAH,IAAGA,OAAH,EAAGA,EAAexrD,GAEvC,IAAKohB,OAAkByqC,EAAiB,OACxC,MAAMt5B,E7IjEuC,kD6IiEUlc,QAAQ,eAAgBw1C,GACzE3U,EAAW,IAAIC,SAKrB,OAJAD,EAASE,OAAO,OAAQnsC,GAExB+C,KACAwe,KAAKkM,SAAS,CAAE4zB,mBAAmB,EAAMvE,cAAe,KACjDxxC,KAAM2U,KAAKqH,EAAU2kB,GACvBzgC,KAAM2U,IACHoB,KAAKkM,SAAS,KACH,CACH8yB,cAAepgC,EAAKpsB,UAI/B0X,MAAOla,IACJ,MAAMnC,EAAeoZ,GAAsBjX,GAC3C,IAAIuvD,EAAcv/B,KAAKw/B,eAAexvD,GAEjCuvD,GACDh+C,GAAsB,uDAAD,OACgC1T,GACjDmyB,KAAKm7B,0BACL,GAIRn7B,KAAKkM,SAAS,KACH,CACHqvB,cAAegE,GAAe,QAIzC9L,QAAQ,IAAMzzB,KAAKkM,SAAS,CAAE4zB,mBAAmB,MA1NvC,KA6NnBN,eAAiB3zD,IAAU,IAAD,EACtB,MAAM2G,EAAI,OAAG3G,QAAH,IAAGA,GAAH,UAAGA,EAAOwb,gBAAV,aAAG,EAAiB7U,KAE9B,OAAIA,IAASA,EAAK+U,KACP/U,EAEJ,MAnOQ,KAsOnButD,aAAgBj4C,IACZ,MAAMrJ,EAAOqJ,EAAE2X,OAAO2rB,MAAM,GACvB3sC,GAILuhB,KAAK6/B,kBAAkBphD,IA5OR,KA+OnB08C,uBAAyB,IACdn7B,KAAKK,MAAMyU,YAAc4pB,GAAkB7F,YAhPnC,KAoPnBwC,iBAAoBG,GACTj8B,OAAOwiB,OAAOyZ,GAAQC,MACxBr5B,GAAY,KAANA,QAAkBnJ,IAANmJ,GAAyB,OAANA,GAtP3B,KA2PnBs7B,kBAAqBtwD,GAAU4G,IAC3BgsB,KAAKy/B,oBAAoBryD,EAAM4G,IA5PhB,KA+PnB8pD,iBAAmB,KACPlpC,MAAiBoL,KAAKg+B,SAhQf,KAmQnB1C,UAAa1kD,GACFA,KAASopB,KAAKryB,MAAM4tD,cApQZ,KAuQnByE,eAAiBppD,GACNopB,KAAKryB,MAAM4tD,cAAc3kD,GAxQjB,KA2QnBzL,OAAS,OAxQL60B,KAAKryB,MAAQ,CACTixD,eAAe,EACfrD,cAAe,GACf0D,eAAe,EACfH,cAAc,EACdc,eAAe,EACfT,eAAe,EACfW,mBAAmB,EACnBd,cAAe,MAIvBnyB,oBACI7M,KAAK2+B,4BA+PTl7B,SACI,MAAM,EAAEN,GAAMnD,KAAKK,OACb,cAAEu+B,EAAF,aAAiBE,EAAjB,cAA+BE,GAAkBh/B,KAAKryB,MAE5D,IAAsB,IAAlBixD,EACA,OAAO,KAGX,IAAIqB,OAAchnC,EAelB,OAbIgnC,EADAnB,EAEI,kBAAC3K,GAAD,KACI,kBAAC,GAAD,OAGAv/B,MAED,OAACoqC,QAAD,IAACA,OAAD,EAACA,EAAexrD,IAGTwsB,KAAKkgC,0BAFLlgC,KAAKmgC,kCAFLngC,KAAKogC,mBAQnB,oCACI,yBAAK1/C,UAAU,gBACX,8BAAOyiB,EAAE,8BAA+B,oBAE5C,kBAAC,GAAD,CAAQiH,YAAY,EAAMC,aAAc,CAACq0B,GAAkB7F,eAC1DoH,GAKbG,mBACI,MAAM,EAAEj9B,GAAMnD,KAAKK,OACb,cAAE2+B,GAAkBh/B,KAAKryB,MAE/B,OAAI,OAACqxD,QAAD,IAACA,OAAD,EAACA,EAAexrD,IAUbwsB,KAAKkgC,0BARJ,kBAAC/L,GAAD,KACI,uBAAGzzC,UAAU,mBACRyiB,EAAE,4CAA6C,2BASpEg9B,kCACI,MAAM,EAAEh9B,GAAMnD,KAAKK,OACb,cAAE8+B,GAAkBn/B,KAAKryB,MAE/B,OACI,kBAACwmD,GAAD,KACI,kBAAC9Y,GAAA,EAAD,CAAQlQ,MAAM,UAAUhG,QAASnF,KAAKk/B,oBAAqBh6B,UAAWtQ,MACjEuqC,EAAgB,kBAAC,GAAD,MAAkBh8B,EAAE,yCAA0C,yBAO/F+8B,0BACI,MAAM,EAAE/8B,GAAMnD,KAAKK,OACb,cAAEk7B,EAAF,cAAiB+D,EAAjB,kBAAgCQ,GAAsB9/B,KAAKryB,MAE3DymC,EAAapU,KAAK89B,mBAElBkB,EAAgBh/B,KAAKryB,MAAMqxD,cAEjC,OACI,kBAACjG,GAAA,EAAD,KACI,kBAAClyB,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,CAAKgK,GAAI,GACL,kBAAC,GAAD,CACIniC,KAAK,OACLvB,KAAK,eACL4G,MAAK,OAAEgrD,QAAF,IAAEA,OAAF,EAAEA,EAAeqB,aACtB3tB,OAAQ1S,KAAK09B,kBAAkB,gBAC/B3pB,YAAa5Q,EAAE,sBAAuB,qBACtCuQ,UAAWvQ,EAAE,sBAAuB,qBACpCziB,UAAU,WACVwkB,SAAUkP,EACVpB,UAhBD,EAiBCI,QAASmoB,EAAc+E,iBACvBN,eAAgBzE,EAAc8E,gBAGtC,kBAACv5B,GAAA,EAAD,CAAKgK,GAAI,GACL,kBAAC,GAAD,CACIniC,KAAK,OACLvB,KAAK,UACL4G,MAAK,OAAEgrD,QAAF,IAAEA,OAAF,EAAEA,EAAejC,SACtBrqB,OAAQ1S,KAAK09B,kBAAkB,YAC/B3pB,YAAa5Q,EAAE,kBAAmB,gBAClCuQ,UAAWvQ,EAAE,kBAAmB,gBAChCziB,UAAU,WACVwkB,SAAUkP,EACVpB,UA/BD,EAgCCI,QAASpT,KAAKs7B,UAAU,YACxBrnB,YAAajU,KAAKggC,eAAe,eAGzC,kBAACl5B,GAAA,EAAD,CAAKgK,GAAI,GACL,kBAAC,GAAD,CACIniC,KAAK,OACLvB,KAAK,aACL4G,MAAK,OAAEgrD,QAAF,IAAEA,OAAF,EAAEA,EAAe9yD,WACtBwmC,OAAQ1S,KAAK09B,kBAAkB,cAC/B3pB,YAAa5Q,EAAE,oBAAqB,WACpCuQ,UAAWvQ,EAAE,oBAAqB,WAClCziB,UAAU,WACVwkB,SAAUkP,EACVpB,UA9CD,EA+CCI,QAASpT,KAAKs7B,UAAU,cACxBrnB,YAAajU,KAAKggC,eAAe,iBAGzC,kBAACl5B,GAAA,EAAD,CAAKgK,GAAI,GACL,kBAAC,GAAD,CACIniC,KAAK,OACLvB,KAAK,YACL4G,MAAK,OAAEgrD,QAAF,IAAEA,OAAF,EAAEA,EAAe7yD,UACtBumC,OAAQ1S,KAAK09B,kBAAkB,aAC/B3pB,YAAa5Q,EAAE,mBAAoB,iBACnCuQ,UAAWvQ,EAAE,mBAAoB,iBACjCziB,UAAU,WACVwkB,SAAUkP,EACVpB,UA7DD,EA8DCI,QAASpT,KAAKs7B,UAAU,aACxBrnB,YAAajU,KAAKggC,eAAe,gBAGzC,kBAACl5B,GAAA,EAAD,CAAKgK,GAAI,GACL,kBAAC,GAAD,CACIniC,KAAK,OACLvB,KAAK,gBACL4G,MAAK,OAAEgrD,QAAF,IAAEA,OAAF,EAAEA,EAAehzD,cACtB0mC,OAAQ1S,KAAK09B,kBAAkB,iBAC/B3pB,YAAa5Q,EAAE,uBAAwB,aACvCuQ,UAAWvQ,EAAE,uBAAwB,aACrCziB,UAAU,WACVwkB,SAAUkP,EACVpB,UA5ED,EA6ECI,QAASpT,KAAKs7B,UAAU,iBACxBrnB,YAAajU,KAAKggC,eAAe,oBAGzC,kBAACl5B,GAAA,EAAD,CAAKgK,GAAI,GACL,kBAAC,GAAD,CACIniC,KAAK,QACLvB,KAAK,QACL4G,MAAK,OAAEgrD,QAAF,IAAEA,OAAF,EAAEA,EAAe1yD,MACtBomC,OAAQ1S,KAAK09B,kBAAkB,SAC/B3pB,YAAa5Q,EAAE,gBAAiB,UAChCuQ,UAAWvQ,EAAE,gBAAiB,UAC9BziB,UAAU,WACVwkB,SAAUkP,EACVpB,UA3FD,EA4FCI,QAASpT,KAAKs7B,UAAU,SACxBrnB,YAAajU,KAAKggC,eAAe,YAGzC,kBAACl5B,GAAA,EAAD,CAAKgK,GAAI,GACL,kBAAC,GAAD,CACIniC,KAAK,OACLvB,KAAK,QACL4G,MAAK,OAAEgrD,QAAF,IAAEA,OAAF,EAAEA,EAAezyD,MACtBmmC,OAAQ1S,KAAK09B,kBAAkB,SAC/B3pB,YAAa5Q,EAAE,gBAAiB,kBAChCuQ,UAAWvQ,EAAE,gBAAiB,kBAC9BziB,UAAU,WACVwkB,SAAUkP,EACVpB,UA1GD,EA2GCI,QAASpT,KAAKs7B,UAAU,SACxBrnB,YAAajU,KAAKggC,eAAe,YAGzC,kBAACl5B,GAAA,EAAD,CAAKgK,GAAG,KACJ,kBAAC2C,GAAA,EAAD,CAAW/yB,UAAU,+BACjB,kBAACizB,GAAA,EAAD,CACIjzB,UAAS,uBAAkBkU,KAAgB,GAAK,gBAE/CuO,EAAE,yCAA0C,kBAEjD,kBAAC0D,GAAA,EAAD,CAAKnmB,UAAU,sBACX,kBAAComB,GAAA,EAAD,KACKk4B,EAAcxO,SACX,uBACI/wB,OAAO,SACPkL,IAAI,sBACJjqB,UAAU,6BACVgqB,KAAMs0B,EAAcxO,UAEnBrtB,EAAE,qCAAsC,aAG7C,kBAAC,GAAD,CACI+B,UAAQ,EACRv2B,KAAK,OACLolC,YAAa5Q,EAAE,0CACfnvB,MAAO,GACP0M,UAAU,cAKlBkU,MACA,kBAACkS,GAAA,EAAD,CAAK2D,GAAG,OAAO/pB,UAAU,QACrB,kBAAC26B,GAAA,EAAD,CACIlQ,MAAM,UACN0Q,SAAS,EACTP,OAAO,EACPpW,SAAU46B,EACV36B,QAAS,IAAMqrB,SAAS+P,eAAe,mCAAmCC,SAEzEV,EAAoB,kBAAC,GAAD,MAAkBd,EAAcxO,SAAWrtB,EAAE,6CAA8C,eAAiBA,EAAE,0CAA2C,cAElL,2BACI3vB,GAAG,kCACH7E,KAAK,OACLyjC,SAAUpS,KAAK+/B,aACfr/C,UAAU,SACVipC,OAAO,0CAQ3B/0B,MACA,kBAACkS,GAAA,EAAD,CAAKgK,GAAI,EAAGsK,GAAI,GACZ,kBAACC,GAAA,EAAD,CAAQlQ,MAAM,SAASmQ,OAAO,EAAMnW,QAASnF,KAAKo/B,oBAAqBl6B,UAAWtQ,KAAehM,MAAO,CAAE63C,UAAW,SAChHnB,EAAgB,kBAAC,GAAD,MAAkBn8B,EAAE,yCAA0C,+BAzgBzGu7B,GAQK7vB,aAAe,GARpB6vB,GAWK7F,YAAc,8BA8gBV1vB,oBACX1D,YAPqB93B,IACd,CACH5B,KAAM4B,EAAMe,KAAK3C,OAKI,GAAzB05B,CACIC,aAAgB,SAAhBA,CAA0Bg5B,MC7iBlC,MAAMgC,WAAgBj+B,IAAMC,UACxBe,SACI,MAAM,EAAEN,GAAMnD,KAAKK,MACnB,OACI,kBAAC2J,GAAA,EAAD,CAAMtpB,UAAU,gBACZ,kBAACupB,GAAA,EAAD,CAAUvpB,UAAU,IAChB,kBAACmmB,GAAA,EAAD,CAAKnmB,UAAU,gCACX,kBAAComB,GAAA,EAAD,KACI,0BAAMpmB,UAAU,WACXyiB,EAAE,uBAAwB,sBAGnC,kBAAC2D,GAAA,EAAD,CAAKpmB,UAAU,wCACVsf,KAAKK,MAAM83B,UACR,kBAAC,GAAD,CACIjB,YAAU,EACVhyB,UAAQ,EACRwO,UAAW1T,KAAKK,MAAM83B,SACtBz3C,UAAU,gCAK1B,kBAACq4C,GAAA,EAAD,CAAMr4C,UAAU,gBACZ,kBAAC,GAAD,QAEF8T,MAAkBI,OAChB,oCACI,wBAAIlU,UAAU,SACd,yBAAKA,UAAU,gBACX,8BACKyiB,EACG,6BACA,wBAIZ,kBAAC41B,GAAA,EAAD,CAAMr4C,UAAU,gBACZ,kBAAC,GAAD,QAIX8T,MACG,oCACI,wBAAI9T,UAAU,SACd,yBAAKA,UAAU,gBACX,8BACKyiB,EACG,uBACA,2BAIZ,kBAAC41B,GAAA,EAAD,CAAMr4C,UAAU,gBACZ,kBAAC,GAAD,CACIs9C,SAAUxpC,OAAmBY,SAK5CZ,MACG,kBAAC,GAAD,CAAmBO,SAAUiL,KAAKK,MAAMoM,MAAMmI,OAAOphC,QAkB9DiyB,mBATU93B,IACd,CACHwqD,SACIxqD,EAAMoN,SACNpN,EAAMoN,QAAQN,cACd9M,EAAMoN,QAAQN,aAAakmD,OAIxBl7B,CAAyBC,aAAgB,SAAhBA,CAA0Bg7B,KCtFlE,MAAMhjB,WAA2Bhb,YAE7Be,SAII,SAASia,EAAmBxV,GACxB,OACI,kBAAC,KAAD,CACIK,KAAML,EAAMK,KACZ9E,OAAQpD,GAEJ,kBAAC6H,EAAMyV,UAAP,iBAAqBtd,EAArB,CAA4B0H,OAAQG,EAAMH,YAM1D,OACI,oCACK/H,KAAKK,MAAM0H,OAAOzyB,IAAI,CAAC4yB,EAAOngB,IAC3B,kBAAC21B,EAAD,eAAoBzxC,IAAK+zB,KAAKK,MAAM4H,SAASh8B,IAAM8b,GAAOmgB,OAO/DiB,oBAAWuU,I,2BCkB1B,MAAMkjB,WAAwBl+B,YAa1BqJ,YAAY1L,GAAQ,IAAD,EACf2L,MAAM3L,GADS,YAiEnBwnB,OAAS,IACL7nB,KAAKkM,SACD,CAAEmoB,OAAQr0B,KAAKryB,MAAM0mD,OACrBr0B,KAAKK,MAAMmG,QAAQI,KAAKhN,GAAKK,WApElB,KAuEnBogB,aAAgBjtC,GAAU4G,IACtBgsB,KAAKkM,SAAS,CAAE,CAAC9+B,GAAO4G,KAxET,KA2EnBwmC,mBAAsBptC,GAAUqtC,IAC5Bza,KAAKkM,SACD,CACI,CAAC9+B,GAAOqtC,GAEZ,KAEiB,gBAATrtC,GAEAmsC,GAAmBkB,EAAejnC,IAC7ByW,KAAM1a,IACHywB,KAAKkM,SAAS,CACV38B,eAAgBA,MAGvB2a,MAAOla,IACJuR,GACIvR,EAAIyB,QtE9GG,6BsEkBhB,KAqGnBovD,kBAAoB,KAChB,MAAM,SAAE1xD,GAAa6wB,KAAKK,MAC1B,OAAKlxB,GAEEA,EAAS2xD,KAAKnyD,GAAQA,EAAK6E,KAAOotD,GAAgBG,4BAFnC,MAvGP,KA4GnBC,gCAAmC7zB,IAC/B,MAAM,SAAEh+B,GAAa6wB,KAAKK,MACpB4gC,EAAiBjhC,KAAKryB,MAAM4c,QAElC,IAAKpb,GAAYA,IAAag+B,EAAUh+B,SAAU,OAClD,IAAK,CAAC,UAAM8pB,EAAW2nC,GAAgBG,2BAA2B5+C,SAA7D,OAAsE8+C,QAAtE,IAAsEA,OAAtE,EAAsEA,EAAgBztD,IAAK,OAEhG,MAAM0tD,EAAiBlhC,KAAK6gC,oBACvBK,GAELlhC,KAAKkM,SAAS,CAAE3hB,QAAS22C,KAtHV,KAyHnBC,gCAAmC3tB,IAC/B,IACKxT,KAAKryB,MAAMyzD,eACZ5tB,EAAUjkC,iBAAmBywB,KAAKryB,MAAM4B,eAExC,OAGJ,MAAM8xD,EAAmBrhC,KAAKryB,MAAMyzD,cAAc5tD,GAElD,GAAIwsB,KAAKryB,MAAM4B,gBAAkBywB,KAAKryB,MAAM4B,eAAeiV,OAAS,EAChE,IAAK,MAAMi3B,KAAUzb,KAAKryB,MAAM4B,eAC5B,GAAIksC,EAAOjoC,KAAO6tD,EACd,OAKZrhC,KAAKkM,SAAS,CAAEk1B,cAAe,QA3IhB,KAgKnBE,mBAAsB9tD,IAClB,MAAM+tD,EAAevhC,KAAKK,MAAM/wB,eAAiB,GAEjD,IAAK,MAAMmsC,KAAU8lB,EACjB,GAAI9lB,EAAOjoC,KAAOA,EACd,OAAOioC,EAIf,OAAO,MAzKQ,KA4KnB+lB,sBAAyB/lB,IACrB,MAAMpkC,EAAc2oB,KAAKryB,MAAM0J,YAC/B,IAAKA,EACD,OAAO,EAMX,OAJ2BupD,GAAgBa,gCAAgCt/C,SACvE9K,EAAY7D,IAILioC,EAAOjoC,KAAOotD,GAAgBc,mBAE9BjmB,EAAOjoC,KAAOotD,GAAgBc,oBAxL1B,KA4LnBC,mBAAqB,WAAiC,IAAhCC,IAA+B,yDAC7CA,GACApgD,KAEJ,MAAMqgD,EAAcjB,GAAgBkB,sBAC9BC,EAAenB,GAAgBoB,uBAC/BzG,EAAgB,GAEtB,IAAK,MAAM3kD,KAASirD,EACX,EAAKl0D,MAAMiJ,IACZ2kD,EAAc30B,KAAKhwB,GAG3B,IAAK,MAAMA,KAASmrD,EACX,EAAKp0D,MAAMiJ,IAAW,EAAKjJ,MAAMiJ,GAAOpD,IACzC+nD,EAAc30B,KAAKhwB,GAoB3B,OAfK2kD,EAAcp5C,SAAS,kBACnBmH,GAAU,EAAK3b,MAAL,iBACX4tD,EAAc30B,KAAK,iBACnBrlB,GACI,EAAK8e,MAAM8C,EAAE,6DAA8D,mCtEtOxD,yBsE4O/B,EAAK+I,SAAS,CACVqvB,gBACA0G,eAAe,IAGU,IAAzB1G,EAAc/2C,SAGdjD,GACI,EAAK8e,MAAM8C,EAAE,uDAAwD,oEtErP9C,yBsEwPpB,IAtOI,KA4OnBm4B,UAAa1kD,GACFopB,KAAKryB,MAAM4tD,cAAcp5C,SAASvL,GA7O1B,KAgPnBsrD,WAAa,KACT1gD,KACKwe,KAAK2hC,uBAGV3hC,KAAKkM,SAAS,CAAEi2B,mBAAmB,ItExFpC,SACH7+C,EACAD,EACAkH,EACAjT,EACAD,EACA+pD,EACAgB,EACAC,EACAC,GAED,IADC5e,EACF,uDADY,GAGV,OADA5iC,GAAMC,SDtEC,CACHpS,KlG/E0B,uBmGqJvBob,KACF2U,K1EtKc,W0EsKA,CACXpb,OAAQA,EACRD,IAAKA,EACLk/C,SAAUh4C,GAAW,GACrB0sB,iBAAkB3/B,GAAmB,GACrC4/B,aAAc7/B,GAAe,GAC7BmM,OAAQ49C,GAAiB,GACzB32C,OAAQd,GAAsBy4C,GAC9Bj3B,MAAOk3B,GAAgB,GACvBj1D,KAAMk1D,EACN5e,QAASA,IAEZz5B,KAAK,KACFnJ,GAAMC,SD/EP,CACHpS,KlGpF4B,uBkGqF5B9C,MAAO,SC+ENqe,MAAOla,IAGJ,MAFA8Q,GAAMC,SAASvP,GAAgBxB,IAEzBA,IsEyDVwyD,CACIxiC,KAAKK,MAAMwH,eACX7H,KAAKryB,MAAM0V,IACX2c,KAAKryB,MAAM4c,QAAQ/W,GACnBwsB,KAAKryB,MAAM2J,gBAAgB9D,GAC3BwsB,KAAKryB,MAAM0J,YAAY7D,GACvBwsB,KAAKryB,MAAMyzD,cAAc5tD,GACzBwsB,KAAKryB,MAAMy0D,cACXpiC,KAAKryB,MAAM00D,aAAa7uD,GACxBwsB,KAAKryB,MAAM80D,aAEVx4C,KAAK,KAEF+V,KAAK0iC,kBACL1iC,KAAKkM,SAAS,CACVy2B,2BAA2B,EAC3BR,mBAAmB,IAEvBpoB,KACK9vB,KAAM24C,IACH5iC,KAAKkM,SAAS,CACV22B,mBAAoBD,EACpBD,2BAA2B,MAGlC14C,KAAK,UAKbC,MAAOla,IACJgwB,KAAKkM,SAAS,CACVy2B,2BAA2B,EAC3BR,mBAAmB,IAEvB5gD,GACI0F,GAAsBjX,GtE5SH,4BsEkBhB,KAgSnB0yD,gBAAkB,KACd1iC,KAAKkM,SAAS,CACV7oB,IAAK,GACLkH,QAASyV,KAAK6gC,oBACdxpD,YAAa,KACb+qD,cAAe,GACf9qD,gBAAiB,KACjB8pD,cAAe,KACfiB,aAAc,KACdI,YAAa,GACblH,cAAe,GACf0G,eAAe,KA3SJ,KA+SnBa,gBAAmBlpB,IACfp4B,KACAm4B,GAAcC,GACT3vB,KAAK,KAEF+V,KAAKkM,SAAS,CAAEy2B,2BAA2B,IAC3C5oB,KAA0B9vB,KAAM24C,IAC5B5iC,KAAKkM,SAAS,CACV22B,mBAAoBD,EACpBD,2BAA2B,QAItCz4C,MAAOla,IACJgwB,KAAKkM,SAAS,CAAEy2B,2BAA2B,IAC3CphD,GACI0F,GAAsBjX,GtEjVH,2BsEkBhB,KAqUnB+yD,yBAA4BC,IAExBxhD,KACA,MAAM,EAAE2hB,GAAMnD,KAAKK,MACnB,IAAInrB,EACA,yBAAKwL,UAAU,mCACX,8BAAOyiB,EAAE,+DAAgE,2EACzE,kBAAC,KAAD,CACI+F,GAAItP,GAAKkB,SACTpa,UAAU,kFAETyiB,EAAE,mFAAoF,kBtE/IpG,IAAqCrzB,EsEoJpCkwB,KAAKkM,SAAS,CAAE+2B,0BAA0B,KtEpJNnzD,EsEsJhCkwB,KAAKryB,MAAMk1D,mBAAmBvtD,IAAK4tD,GACxBA,EAAe1vD,ItEtJ3BuW,KACF2U,K1ExLkB,e0EwLA,CACfykC,cAAerzD,IAElBma,KAAM2U,GACIA,EAAKpsB,MAEf0X,MAAOla,IACJ,MAAMA,KsEiJLia,KAAM2U,IAGH,GAFApd,KAEIod,EAAKwkC,iBAAmBxkC,EAAKwkC,gBAAgB5+C,OAAS,EAAG,CACzD,GAAIoa,EAAKwkC,gBAAgB5+C,OAASwb,KAAKryB,MAAMk1D,mBAAmBr+C,OAAQ,CAYpEpD,GAVI,yBAAKV,UAAU,mCACX,8BAAOyiB,EAAE,sEAAuE,kFAChF,kBAAC,KAAD,CACI+F,GAAItP,GAAKkB,SACTpa,UAAU,kFAETyiB,EAAE,0FAA2F,kBtEzX3F,wBsE6X8C,GAGjE,MAAMvb,EAAUub,EAAE,yEAA0E,sEAM5F5hB,GALqBmG,GACjBkX,EAAKwkC,gBACJC,GAAD,eAAgBA,EAAGhgD,IAAnB,cAA4BggD,EAAGh8C,UAAY,IAC3CO,GtEpYe,wBsE2YnB,MAAM07C,EAAY1kC,EAAKwkC,gBAAgB9tD,IAAK+tD,GAAOA,EAAG7vD,IACtDwsB,KAAKkM,SAAUsH,IACJ,CACHqvB,mBAAoBrvB,EAAUqvB,mBAAmB3gD,OAC5C0gD,GACGU,EAAUnhD,SAASygD,EAAYpvD,KAEvCyvD,0BAA0B,EAC1BM,0BAA0B,UAIlCniD,GAAwBlM,EAAS0kB,GAAKK,UAAU,GAChD+F,KAAK6nB,WAGZ39B,MAAOla,IACJwR,KAEAwe,KAAKkM,SAAS,CAAE+2B,0BAA0B,EAAOM,0BAA0B,IAC3EhiD,GACI0F,GAAsBjX,GtEhaH,2BsEoB/BgwB,KAAKryB,MAAQ,CACT0mD,OAAO,EACPwO,mBAAoB,GACpBF,0BAA2B,GAC3B1zD,aAAc,GACdM,eAAgB,GAChB8T,IAAK,GACLkH,QAASyV,KAAK6gC,oBACduB,cAAe,GACf9qD,gBAAiB,KACjB8pD,cAAe,KACfiB,aAAc,KACdI,YAAa,GACbN,mBAAmB,EACnBoB,0BAA0B,EAC1BN,0BAA0B,EAC1B1H,cAAe,GACf0G,eAAe,GAIvBp1B,oBACIrrB,KACAwe,KAAKkM,SAAS,CAAEy2B,2BAA2B,IAC3C5oB,KACK9vB,KAAM24C,IACH5iC,KAAKkM,SAAS,CACV22B,mBAAoBD,EACpBD,2BAA2B,MAGlCz4C,MAAOla,IACJgwB,KAAKkM,SAAS,CAAEy2B,2BAA2B,IAC3CphD,GACI0F,GAAsBjX,GtEtDH,0BsE4DnCk9B,mBAAmBC,EAAWqG,GAC1B,GAAIxT,KAAKryB,MAAMs0D,cAAe,CAC1B,IAAIuB,GAA0B,EAC9B,MAAMC,EAAmB,IAClB7C,GAAgBkB,yBAChBlB,GAAgBoB,wBAEvB,IAAK,MAAMprD,KAAS6sD,EAChB,GAAIjwB,EAAU58B,KAAWopB,KAAKryB,MAAMiJ,GAAQ,CACxC4sD,GAA0B,EAC1B,MAGJA,GACAxjC,KAAK2hC,qBAIb3hC,KAAKmhC,gCAAgC3tB,GACrCxT,KAAK0jC,+BAA+BlwB,GACpCxT,KAAKghC,gCAAgC7zB,GAgFzCu2B,+BAA+BlwB,GAC3B,MAAM6uB,EAAeriC,KAAKryB,MAAM00D,aAChC,GAAKA,GAAgB7uB,EAAUn8B,cAAgB2oB,KAAKryB,MAAM0J,aAItD2oB,KAAKwhC,sBAAsBa,GAAe,CAC1C,IAAIsB,EAAkB,KAClBtB,EAAa7uD,KAAOotD,GAAgBc,qBACpCiC,EAAkB3jC,KAAKshC,mBAAmBV,GAAgBc,qBAG9D1hC,KAAKkM,SAAS,CACVm2B,aAAcsB,KAyP1BlgC,SACI,MAAM,EAAEN,GAAMnD,KAAKK,MACnB,OACI,6BACI,kBAACunB,GAAA,EAAD,CACIE,UAAQ,EACR7J,KAAK,KACLqJ,OAAQtnB,KAAKryB,MAAM0mD,MACnBxM,OAAQ7nB,KAAK6nB,OACbnnC,UAAU,qBAEV,kBAACkjD,GAAA,EAAD,CAAa/b,OAAQ7nB,KAAK6nB,OAAQnnC,UAAU,gBACvCyiB,EAAE,2BAA4B,mBAEnC,kBAAC6kB,GAAA,EAAD,CAAWtnC,UAAU,sBACjB,kBAACspB,GAAA,EAAD,CAAMtpB,UAAU,gBACZ,kBAACqwB,GAAA,EAAD,CAAYrwB,UAAU,6BAClB,kBAAC,GAAD,CACI0pB,YAAU,EACVC,aAAc,CtEzbX,0BsE2bNrK,KAAK6jC,yBACL7jC,KAAK8jC,cAEV,kBAAC75B,GAAA,EAAD,CAAUvpB,UAAU,OACfsf,KAAK8b,eAEV,kBAACioB,GAAA,EAAD,CAAYrjD,UAAU,eACjBsf,KAAKgkC,qCASlCF,aACI,MAAM,EAAE3gC,GAAMnD,KAAKK,MACnB,OACI,kBAAC04B,GAAA,EAAD,KACI,kBAAClyB,GAAA,EAAD,CAAKnmB,UAAU,aACX,kBAAComB,GAAA,EAAD,CAAK2D,GAAI,EAAG2Q,GAAI,EAAG16B,UAAU,aACzB,kBAAC,GAAD,CACI1M,MAAOgsB,KAAKryB,MAAM0V,IAClB0wB,YAAa5Q,EACT,sBACA,QAEJuQ,UAAWvQ,EACP,sBACA,OAEJ/1B,KAAK,MACLslC,OAAQ1S,KAAKqa,aACT,OAEJ1H,YAAU,EACVK,UAAQ,EACRI,QAASpT,KAAKs7B,UACV,UAIZ,kBAACx0B,GAAA,EAAD,CAAK2D,GAAI,EAAG2Q,GAAI,EAAG16B,UAAU,aACzB,kBAAC,GAAD,CACI1M,MAAOgsB,KAAKryB,MAAM4c,QAClBhP,QACIykB,KAAKK,MAAMlxB,SAEf4kC,YAAa5Q,EACT,yBACA,QAEJuQ,UAAWvQ,EACP,0BACA,wBAEJ/1B,KAAK,UACLouC,eAAiBC,GACbA,EAAOznC,MAEX0nC,eAAiBD,GACbA,EAAOznC,MAEXo+B,SAAUpS,KAAKwa,mBACX,WAEJxH,UAAQ,EACRI,QAASpT,KAAKs7B,UACV,cAIZ,kBAACx0B,GAAA,EAAD,CAAK+J,GAAI,EAAGuK,GAAI,EAAG16B,UAAU,aACzB,kBAAC,GAAD,CACI1M,MACIgsB,KAAKryB,MACA80D,YAET1uB,YAAa5Q,EACT,yBACA,QAEJuQ,UAAWvQ,EACP,8BACA,iBAEJ/1B,KAAK,cACLslC,OAAQ1S,KAAKqa,aACT,eAEJ1H,YAAU,EACVK,UAAQ,EACRI,QAASpT,KAAKs7B,UACV,kBAIZ,kBAACx0B,GAAA,EAAD,CAAK+J,GAAI,EAAGuK,GAAI,EAAG16B,UAAU,aACzB,kBAAC,GAAD,CACI1M,MACIgsB,KAAKryB,MACA0J,YAETkE,QACIykB,KAAKK,MACAhxB,aAETqkC,UAAWvQ,EACP,uBACA,sBAEJ4Q,YAAa5Q,EACT,yBACA,QAEJ/1B,KAAK,cACLouC,eACIC,GACCA,EAAOznC,MACZ0nC,eACID,GACCA,EAAOznC,MACZo+B,SAAUpS,KAAKwa,mBACX,eAEJxH,UAAQ,EACRI,QAASpT,KAAKs7B,UACV,kBAIZ,kBAACx0B,GAAA,EAAD,CAAK2D,GAAI,EAAG2Q,GAAI,EAAG16B,UAAU,aACzB,kBAAC,GAAD,CACI1M,MACIgsB,KAAKryB,MACAyzD,cAET7lD,QACIykB,KAAKryB,MACA4B,eAETmkC,UAAWvQ,EACP,yBACA,QAEJ4Q,YAAa5Q,EACT,yBACA,QAEJiR,WAII,IAHApU,KAAKryB,MACA4B,eACAiV,OAGTpX,KAAK,gBACLouC,eACIC,GAEAA,EAAOznC,MACP,KAEJ0nC,eACID,GACCA,EAAOznC,MACZo+B,SAAUpS,KAAKwa,mBACX,iBAEJxH,UAAQ,EACRI,QAASpT,KAAKs7B,UACV,oBAIZ,kBAACx0B,GAAA,EAAD,CAAK2D,GAAI,EAAG2Q,GAAI,EAAG16B,UAAU,aACzB,kBAAC,GAAD,CACI1M,MACIgsB,KAAKryB,MACA00D,aAET9mD,QACIykB,KAAKK,MACA/wB,cAETokC,UAAWvQ,EACP,iBACA,WAEJ4Q,YAAa5Q,EACT,yBACA,QAEJ/1B,KAAK,eACLouC,eACIC,GACCA,EAAOznC,MACZ0nC,eACID,GACCA,EAAOznC,MACZqqD,iBACI5iB,GAEAzb,KAAKwhC,sBACD/lB,GAGRrJ,SAAUpS,KAAKwa,mBACX,gBAEJxH,UAAQ,EACRI,QAASpT,KAAKs7B,UACV,mBAIZ,kBAACx0B,GAAA,EAAD,CAAK+J,GAAI,EAAGuK,GAAI,EAAG16B,UAAU,aACzB,kBAAC,GAAD,CACI1M,MACIgsB,KAAKryB,MACA2J,gBAETiE,QACIykB,KAAKK,MACAjxB,WAET2kC,YAAa5Q,EACT,yBACA,QAEJuQ,UAAWvQ,EACP,2BACA,oBAEJ/1B,KAAK,kBACLouC,eACIC,GAEAA,EAAOnD,YAEXoD,eACID,GACCA,EAAOznC,MACZo+B,SAAUpS,KAAKwa,mBACX,mBAEJxH,UAAQ,EACRI,QAASpT,KAAKs7B,UACV,sBAIZ,kBAACx0B,GAAA,EAAD,CAAK+J,GAAI,EAAGuK,GAAI,EAAG16B,UAAU,aACzB,kBAAC,GAAD,CACI1M,MACIgsB,KAAKryB,MACAy0D,cAETruB,YAAa5Q,EACT,sBACA,QAEJuQ,UAAWvQ,EACP,gCACA,YAEJ/1B,KAAK,gBACLslC,OAAQ1S,KAAKqa,aACT,iBAEJ1H,YAAU,EACVK,UAAQ,EACRI,QAASpT,KAAKs7B,UACV,oBAIZ,kBAACx0B,GAAA,EAAD,CAAK+J,GAAI,GAAIuK,GAAI,EAAG16B,UAAU,aAC1B,kBAAC+yB,GAAA,EAAD,CAAW/yB,UAAU,QACjB,kBAAC26B,GAAA,EAAD,CACIC,OAAK,EACL3sC,KAAK,SACLw2B,QAASrd,IAAOA,EAAE0wC,iBAAkBx4B,KAAKkiC,cACzC/2B,MAAM,UACNzqB,UAAU,kBACVwkB,SACIlF,KAAKryB,MACAw0D,mBAGRniC,KAAKryB,MACDw0D,kBACD,kBAAC,GAAD,MAEAh/B,EACI,eACA,aAWpC2Y,cACI,MAAM,EAAE3Y,GAAMnD,KAAKK,MACnB,GAAIL,KAAKryB,MAAMg1D,0BACX,OAAO,kBAAC,GAAD,MAGX,MAUM5mB,EAAU,CACZ,CACIl4B,UAAW,MACX7U,KAAMm0B,EAAE,sBAAuB,QAEnC,CACItf,UAAW,WACX7U,KAAMm0B,EAAE,0BAA2B,mBAEvC,CACItf,UAAW,OACX7U,KAAMm0B,EAAE,8BAA+B,kBAE3C,CACItf,UAAW,mBACX7U,KAAMm0B,EAAE,2BAA4B,qBAExC,CACItf,UAAW,eACX7U,KAAMm0B,EAAE,uBAAwB,uBAEpC,CACItf,UAAW,SACX7U,KAAMm0B,EAAE,yBAA0B,QAClCmZ,YAAa,CAACC,EAAQC,KACX,CAAEjc,MAAO,UAGxB,CACI1c,UAAW,SACX7U,KAAMm0B,EAAE,yBAA0B,QAClCmZ,YAAa,CAACC,EAAQC,KACX,CAAEjc,MAAO,UAGxB,CACI1c,UAAW,QACX7U,KAAMm0B,EAAE,iBAAkB,YAE9B,CACItf,UAAW,KACX7U,KAAM,GACN2tC,UApDiB,CAAC/C,EAAWjjC,IAE7B,yBAAK+J,UAAU,qCACX,kBAAC,GAAD,CACIykB,QAAS,IAAMnF,KAAK8iC,gBAAgBlpB,MAiD5C0C,YAAa,CAACC,EAAQC,KACX,CAAEjc,MAAO,WAK5B,OACI,kBAAC,KAAD,CACIwc,YAAU,EACVC,UAAU,EACVf,QAAQ,qBACRiB,SAAS,MACT1qC,KAAMwtB,KAAKryB,MAAMk1D,mBACjB9mB,QAASA,EACTqB,eAAe,SACfC,iBACI,kBAAC,GAAgBnD,iBAAjB,CACIpuC,QAASk0B,KAAKryB,MAAMg1D,0BACpBx/B,EAAGA,MAQvB0gC,yBACI,MAAM,EAAE1gC,GAAMnD,KAAKK,MACnB,IAAI1xB,EAAOuQ,GAAUgB,UACjBhL,EACA,yBAAKwL,UAAU,mCACX,0BAAMA,UAAU,cAAcyiB,EAAE,4CAA6C,+GAIrF,OACI,kBAAC0D,GAAA,EAAD,CAAKnmB,UAAU,mBACX,kBAAComB,GAAA,EAAD,KACI,kBAAC,GAAD,CACIn4B,KAAMA,EACN+R,UAAW/R,EACXuG,QAASA,MAO7B8uD,gCACI,MAAM,EAAE7gC,GAAMnD,KAAKK,MACnB,IAAIyU,EAAa,oCAEjB,MAAMyS,EAAW,KACb/lC,KACAwe,KAAKkM,SAASsH,IAAsB,CAAE+vB,0BAA2B/vB,EAAU+vB,6BAM/E,MAAMU,EAAejkC,KAAKryB,MAAMk1D,mBAAmBr+C,OAEnD,IAAI0xC,EAAa11C,KAAEwhC,MADQ,GACDiiB,EAAoC,GAC9D,MAAMC,EAAsBp7C,GAAkBjV,OAAOqiD,GACrD,IAAIhhD,EACA,6BACI,uBAAGwL,UAAU,cAAcyiB,EAAE,2EAA4E,kFACzG,uBAAGziB,UAAU,cACT,kBAACyH,GAAA,EAAD,CAAOgb,EAAGA,EAAG/a,QAAQ,6EAA6Euf,MAAOs8B,GACpG,CAAEA,aAAcA,GADrB,qDACuF,CAAEE,IAAKD,GAD9F,WAIJ,6BAKR,OACI,oCACI,kBAAC7oB,GAAA,EAAD,CACIlW,QAASoiB,EACTpc,MAAM,UACNjG,SACIlF,KAAKryB,MAAMs1D,0BAC8B,IAAzCjjC,KAAKryB,MAAMk1D,mBAAmBr+C,OAElC9D,UAAU,iBAGNyiB,EACI,qCACA,8BAIZ,kBAAC,GAAD,CACImkB,OAAQtnB,KAAKryB,MAAM41D,yBACnBhc,SAAUA,EACVC,SAAUD,EACVE,UA3CQ,KAChBznB,KAAK+iC,yBAAyBjuB,IA2CtBsS,kBAAmBjkB,EAAE,4EAA6E,WAClG/C,MAAO+C,EAAE,oEAAqE,mBAC9EiR,WAAYpU,KAAKryB,MAAMs1D,yBACvBvb,UAAW1nB,KAAKryB,MAAMs1D,yBACtBtb,YAAa,CAAC7S,IAEb5/B,IAOM,wBAACmrB,GACpB,IAAInrB,EAAUmrB,EAAM8C,EAAE,2CAA4C,0CAKlE,OAJI9C,EAAMv0B,UACNoJ,EAAU,kBAAC,GAAD,OAGP,yBAAKwL,UAAU,eAAexL,IA35BvC0rD,GACKkB,sBAAwB,CAAC,MAAO,cAAe,iBADpDlB,GAEKoB,uBAAyB,CAC5B,UACA,kBACA,gBACA,eACA,eAPFpB,GASKa,gCAAkC,CAAC,EAAG,GAT3Cb,GAUKc,mBAAqB,EAV1Bd,GAWKG,0BAA4B,EAm6BxB53B,ICn+BX,GDm+BWA,gBACX1D,YAhBqB93B,IACd,CACH5B,KAAM4B,EAAMe,KAAK3C,KACjB87B,eAAgBl6B,EAAMe,KAAK3C,KACrB4B,EAAMe,KAAK3C,KAAKipB,iBAChB,KACN7lB,SAAUxB,EAAMmC,SAASX,SACzBC,WAAYzB,EAAMmC,SAASV,WAC3BC,aAAc1B,EAAMmC,SAAST,aAC7BE,eAAgB5B,EAAMmC,SAASP,eAC/BD,cAAe3B,EAAMmC,SAASR,cAC9BzD,MAAO8B,EAAMmC,SAASjE,QAK1B45B,CAAyBC,aAAgB,SAAhBA,CAA0Bk7B,M,6BCl+BvD,SAAS,KAA2Q,OAA9P,GAAWrhC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAI1X,EAAI,EAAGA,EAAI2X,UAAUlb,OAAQuD,IAAK,CAAE,IAAI4X,EAASD,UAAU3X,GAAI,IAAK,IAAI9b,KAAO0zB,EAAcJ,OAAOK,UAAUC,eAAeC,KAAKH,EAAQ1zB,KAAQwzB,EAAOxzB,GAAO0zB,EAAO1zB,IAAY,OAAOwzB,IAA2BM,MAAMC,KAAMN,WAIhT,MAAM0kC,GAAelkC,IACnB,IAAI,OACFC,EAAM,MACNC,KACGC,GACDH,EACJ,OAAoB,IAAMI,cAAc,MAAO,GAAS,CACtDC,MAAO,GACPC,OAAQ,GACRC,QAAS,YACTC,KAAM,OACNC,IAAKR,GACJE,GAAQD,EAAqB,IAAME,cAAc,QAAS,KAAMF,GAAS,KAAM,KAAU,GAAqB,IAAME,cAAc,OAAQ,CAC3IS,EAAG,4EACH2I,OAAQ,UACRC,YAAa,EACbC,cAAe,aAIb,GAA0B,IAAM3I,WAAW,CAACZ,EAAOM,IAAqB,IAAML,cAAc8jC,GAAc,GAAS,CACvHjkC,OAAQQ,GACPN,KACY,IC7BX,GD6BW,IC3Bf,SAAS,KAA2Q,OAA9P,GAAWd,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAI1X,EAAI,EAAGA,EAAI2X,UAAUlb,OAAQuD,IAAK,CAAE,IAAI4X,EAASD,UAAU3X,GAAI,IAAK,IAAI9b,KAAO0zB,EAAcJ,OAAOK,UAAUC,eAAeC,KAAKH,EAAQ1zB,KAAQwzB,EAAOxzB,GAAO0zB,EAAO1zB,IAAY,OAAOwzB,IAA2BM,MAAMC,KAAMN,WAIhT,MAAM2kC,GAAankC,IACjB,IAAI,OACFC,EAAM,MACNC,KACGC,GACDH,EACJ,OAAoB,IAAMI,cAAc,MAAO,GAAS,CACtDC,MAAO,GACPC,OAAQ,GACRC,QAAS,YACTC,KAAM,OACNC,IAAKR,GACJE,GAAQD,EAAqB,IAAME,cAAc,QAAS,KAAMF,GAAS,KAAM,KAAU,GAAqB,IAAME,cAAc,OAAQ,CAC3IS,EAAG,8EACH2I,OAAQ,UACRC,YAAa,EACbC,cAAe,aAIb,GAA0B,IAAM3I,WAAW,CAACZ,EAAOM,IAAqB,IAAML,cAAc+jC,GAAY,GAAS,CACrHlkC,OAAQQ,GACPN,KACY,ICOAikC,OAzBf,SAA0BjkC,GACtB,MAAOkkC,EAAUC,GAAeC,oBAAS,GAGzC,OACI,kBAAC59B,GAAA,EAAD,CAAKnmB,UAAU,gBACX,kBAAComB,GAAA,EAAD,CAAKgK,GAAI,IACL,kBAACjK,GAAA,EAAD,CAAK1B,QALF,IAAMq/B,GAAaD,IAMlB,kBAACz9B,GAAA,EAAD,CAAKgK,GAAI,IACL,0BAAMpwB,UAAU,WAAU,kBAACwoC,GAAA,EAAD,KAAc/lB,GAAKA,EAAE,uCAAwC,iBACtFohC,EAAW,kBAAC,GAAD,CAAS7jD,UAAU,gBAAmB,kBAAC,GAAD,CAAWA,UAAU,kBAG/E,kBAACgkD,GAAA,EAAD,CAAUpd,OAAQid,EAAU7jD,UAAU,QAClC,kBAAC,GAAD,CACIo0B,W5HSW,e4HRX4mB,cAAc,EACdH,cAAel7B,EAAMk7B,oBCS9BoJ,OA1Bf,SAAyBtkC,GACrB,MAAOkkC,EAAUC,GAAeC,oBAAS,GAGzC,OACI,kBAAC59B,GAAA,EAAD,CAAKnmB,UAAU,gBACX,kBAAComB,GAAA,EAAD,CAAKgK,GAAI,IACL,kBAACjK,GAAA,EAAD,CAAK1B,QALF,IAAMq/B,GAAaD,IAMlB,kBAACz9B,GAAA,EAAD,CAAKgK,GAAI,IACL,0BAAMpwB,UAAU,WAAU,kBAACwoC,GAAA,EAAD,KAAc/lB,GAAKA,EAAE,sCAAuC,2BACrFohC,EAAW,kBAAC,GAAD,CAAS7jD,UAAU,gBAC3B,kBAAC,GAAD,CAAWA,UAAU,kBAGjC,kBAACgkD,GAAA,EAAD,CAAUpd,OAAQid,EAAU7jD,UAAU,QAClC,kBAAC,GAAD,CACIg7C,cAAc,EACd5mB,W7HOW,e6HNXymB,cAAel7B,EAAMk7B,oBC5BtC,MAKDqJ,GAAY,CALS,MACA,MACA,MACA,OAS3B,IAAIC,GAAgB,CAChBC,YAAa,CACT,IAAe,6BACf,IAAe,wBACf,IAAe,8BACf,IAAe,wHAGnBC,gBAAiB,CACb,IAAe,yBACf,IAAe,wBACf,IAAe,wBACf,IAAe,kHAGnBC,iBAAkB,CACd,IAAe,qCACf,IAAe,iCACf,IAAe,2CACf,IAAe,sMAGnBC,kBAAmB,CACf,IAAe,4BACf,IAAe,0BACf,IAAe,uCACf,IAAe,+QAGnBC,gBAAiB,CACb,IAAe,iBACf,IAAe,kBACf,IAAe,uBACf,IAAe,2GAGnBC,YAAa,CACT,IAAe,6EACf,IAAe,gDACf,IAAe,gDACf,IAAe,qTA2HRC,OAtHf,MACIr5B,YAAYj/B,GACRkzB,KAAKlzB,SAAWA,GA3DG,MA6DnBkzB,KAAKqlC,MAAQ,KAGjBC,mBACI,OAAO,IAAIC,SAAQ,SAAUC,EAASC,GAC9B95B,OAAO+5B,SAASvnB,IAAI,QACpBqnB,IAIAC,EAAO,+BAKnBE,iBACI,OAAO,IAAIJ,QAAQ,CAACC,EAASC,KACzB,IAAIG,EAAS,CAACC,KAAM7lC,KAAKlzB,UAEzB6+B,OAAO+5B,SAASC,eAAeC,GAAQ37C,KAAM67C,IACzC9lC,KAAKqlC,MAAQS,EACbN,KAGHx1D,IACGy1D,EAAOz1D,OAKnB+1D,qBACI,OAAO,IAAIR,QAAQ,CAACC,EAASC,KACzB,IAAI7wB,EAAS,CACTixB,KAAM7lC,KAAKlzB,SACXoV,OAAQ,QAGZypB,OAAO+5B,SAASC,eAAe/wB,GAAQ3qB,KAAM67C,IACzC9lC,KAAKqlC,MAAQS,EACbN,KAGHx1D,IACGy1D,EAAOz1D,OAKnBg2D,YAAYC,GACR,OAAO,IAAIV,QAAQ,CAACC,EAASC,KACzB,IAAIG,EAAS,CAACC,KAAM7lC,KAAKlzB,UAEzB6+B,OAAO+5B,SAASQ,KAAKlmC,KAAKqlC,MAAO,CAAC12D,KAAM,UAAWw3D,IAAKF,GAAUL,GAC7D37C,KAAM5C,IACH2Y,KAAKomC,WAAa/+C,EAClBm+C,KAEAx1D,IACAy1D,EAAOz1D,OAKvBq2D,qBACI,OAAOrmC,KAAKqlC,MAGhBiB,eAAeC,EAAaC,GACxBxmC,KAAKymC,cAAcT,YAAYQ,GAAiBv8C,KAAK,IAC9B+V,KAAKymC,cAAcC,uBAOtB,2BACpB,MAAO,CACHC,QAAS,KACTC,SAAU5mC,KAAKqlC,MAAMc,KAIJ,4BACrB,MAAO,CACHQ,QAAS,KACTE,UAAW7mC,KAAKomC,WAAWD,KAMvB,eACR,OAAOnmC,KAAK8mC,UAGJ,aAACC,IACqB,IAA1BnC,GAAUoC,QAAQD,KAClB/mC,KAAK8mC,UAAYC,GAKzBE,SAASj3D,GACL,MAAkC,qBAAvB60D,GAAc70D,GACd,CAACk3D,WAAYl3D,EAAKyB,QAASozD,GAAc70D,GAAKgwB,KAAKlzB,WAInD,CAACo6D,WAAY,kBAAmBz1D,QAASozD,GAAcK,gBAAgBllC,KAAKlzB,aChK/F,MAAMq6D,GAAkB,CACpB/7D,QAAS,IAME,MAAMg8D,GACjBr7B,YAAYs7B,GACR,MAAM70D,EAAO,CACT1F,SAAU,KAEVw6D,YAAa,CACT54D,KAAM,KACNw3D,KAAM,KACN5nC,kBAAmB,MAGvBipC,kBAAmB,CACf74D,KAAM,KACNw3D,KAAM,KACNsB,kBAAmB,KACnBlpC,kBAAmB,MAGvBmpC,iBAAkB,CACd/4D,KAAM,KACNw3D,KAAM,KACNsB,kBAAmB,KACnBlpC,kBAAmB,SAGpB+oC,GAIPrnC,KAAKymC,cAAgB,IAAIrB,GAAc,OAEvCplC,KAAKsnC,YAAc90D,EAAK80D,YACxBtnC,KAAKunC,kBAAoB/0D,EAAKk1D,aAC9B1nC,KAAKynC,iBAAmBj1D,EAAKi1D,iBAGjCE,eAAenC,EAASC,GAEpBzlC,KAAKymC,cAAcnB,mBAAmBr7C,KAAK,KACvC+V,KAAKymC,cAAcV,qBAAqB97C,KAAK,KACzC,MAAM29C,EAAc5nC,KAAKymC,cAAcJ,sB/HrBhD,SAAoBuB,GAIvB,OAFApmD,KAEOuI,KACF2U,KvBImB,yBuBJA,CAAEkpC,YAAaA,IAClC39C,KAAM2U,GAMIA,EAAKpsB,MAEf0X,MAAOla,IACJ,IAAInC,EAAeoZ,GAAsBjX,GACzC,MAAMma,MAAMtc,M+HSRg6D,CAFsBC,KAAKC,SAASC,mBAAmBC,GAAcL,EAAYM,aAGhFj+C,KAAK5C,IACF,IAAKA,EAAS8gD,QACV,MAAMh+C,MAAM,6BAGhB,MAAMve,EAAQyb,EAASzb,MACjBw8D,EAAY/gD,EAAS+gD,UACrBC,EAAWhhD,EAASihD,UAE1BtoC,KAAKymC,cAAcT,YAAYoC,GAC9Bn+C,KAAM48C,IACH,MACM0B,EAAqBC,GADNxoC,KAAKymC,cAAcC,sBACYG,Y/HlBrE,SAA0Bj7D,EAAOi7D,EAAWwB,GAI/C,OAFA7mD,KAEOuI,KACF2U,KvBf0B,gCuBeA,CACvB9yB,MAAOA,EACP4yB,gBAAiBqoC,EACjByB,UAAWD,IAEdp+C,KAAM2U,GAoBIA,EAAKpsB,MAEf0X,MAAOla,IACJ,IAAInC,EAAeoZ,GAAsBjX,GACzC,MAAMma,MAAMtc,M+HdA46D,CAAiB78D,EAAO28D,EAAoBF,GAC3Cp+C,KAAK5C,IACF,IAAKA,EAAS8gD,QACV,MAAMh+C,MAAM,4BAGhBq7C,EAAQn+C,KAEX6C,MAAMre,IACH45D,EAAO55D,OAGdqe,MAAMre,GAAS45D,EAAO55D,MAE1Bqe,MAAMre,GAAS45D,EAAO55D,MAE1Bqe,MAAMre,GAAS45D,EAAO55D,MAE1Bqe,MAAMre,GAAS45D,EAAO55D,IAG3By6D,eAAehO,EAAckN,EAASC,GAClCzlC,KAAKymC,cAAcnB,mBAAmBr7C,KAAK,KACvC+V,KAAKymC,cAAcd,iBAAiB17C,KAAK,KACrC,MAAM29C,EAAc5nC,KAAKymC,cAAcJ,qBAEjCqC,EAAgBZ,KAAKC,SAASC,mBAAmBC,GAAcL,EAAYM,Y/HmL1F,IAAoBl8D,EAAesC,GAAftC,E+HlLAssD,E/HkLehqD,E+HlLDo6D,E/HmL9B3+C,KACF2U,KvBxOmB,wBuBwOA,CAChBiqC,aAAc,GACd38D,cAAeA,EACfsC,KAAMA,IAET2b,KAAM2U,GACIA,EAAKpsB,MAEf0X,MAAOla,IACJ,MAAMma,MAAMlD,GAAsBjX,O+H5L7Bia,KAAK5C,IACF,IAAKA,EAAS8gD,QACV,MAAMh+C,MAAM,4BAGhB,MAAMve,EAAQyb,EAASzb,MACjBw8D,EAAY/gD,EAAS+gD,UAE3BpoC,KAAKymC,cAAcT,YAAYoC,GAC9Bn+C,KAAM48C,IACH,MACM0B,EAAqBC,GADNxoC,KAAKymC,cAAcC,sBACYG,WAEpDvoC,GAAkB1yB,EAAO,UAAW28D,GACnCt+C,KAAK5C,IACF,IAAKA,EAAS8gD,QACV,MAAMh+C,MAAM,2BAEhBq7C,EAAQn+C,KAEX6C,MAAMre,IACH45D,EAAO55D,OAGdqe,MAAMre,GAAS45D,EAAO55D,MAE1Bqe,MAAMre,GAAS45D,EAAO55D,MAE1Bqe,MAAMre,GAAS45D,EAAO55D,MAE1Bqe,MAAMre,GAAS45D,EAAO55D,IAG3B+8D,oBAAoBtQ,EAAckN,EAASC,EAAQhnC,GAC/CuB,KAAKymC,cAAcnB,mBAAmBr7C,KAAK,KACvC+V,KAAKymC,cAAcd,iBAAiB17C,KAAK,KACrC,MAAM29C,EAAc5nC,KAAKymC,cAAcJ,qBAEjCqC,EAAgBZ,KAAKC,SAASC,mBAAmBC,GAAcL,EAAYM,Y/H0J1F,IAAyBl8D,EAAesC,EAAMqwB,GAArB3yB,E+HzJAssD,E/HyJehqD,E+HzJDo6D,E/HyJO/pC,E+HzJQF,E/H0JlD1U,KACF2U,KvBnPyB,kCuBmPA,CACtBiqC,aAAc,GACd38D,cAAeA,EACfsC,KAAMA,EACNqwB,YAAaA,IAEhB1U,KAAM2U,GACIA,EAAKpsB,MAEf0X,MAAOla,IACJ,MAAMma,MAAMlD,GAAsBjX,O+HpK7Bia,KAAK5C,IACF,IAAKA,EAAS8gD,QACV,MAAMh+C,MAAM,4BAGhB,MAAMve,EAAQyb,EAASzb,MACjBw8D,EAAY/gD,EAAS+gD,UAE3BpoC,KAAKymC,cAAcT,YAAYoC,GAC9Bn+C,KAAM48C,IACH,MACM0B,EAAqBC,GADNxoC,KAAKymC,cAAcC,sBACYG,WAEpDvoC,GAAkB1yB,EAAO,UAAW28D,EAAoB9pC,GACvDxU,KAAK5C,IACF,IAAKA,EAAS8gD,QACV,MAAMh+C,MAAM,2BAEhBq7C,EAAQn+C,KAEX6C,MAAMre,IACH45D,EAAO55D,OAGdqe,MAAMre,GAAS45D,EAAO55D,MAE1Bqe,MAAMre,GAAS45D,EAAO55D,MAE1Bqe,MAAMre,GAAS45D,EAAO55D,MAE1Bqe,MAAMre,GAAS45D,EAAO55D,IAI3Bg9D,gBAAgB9iC,EAAU+iC,EAAWtD,EAASC,GAC1C,MAAMsD,EAAY,KAEdh/C,KACK2U,KAAKqH,EAAU+iC,EAAW3B,IAC1Bl9C,KAAK++C,IACEA,EAAIC,GACCD,EAAIx2D,KAAK21D,QAUV3C,EAAQwD,EAAIx2D,MATRw2D,EAAIx2D,KAAK02D,QAETC,WAAW,IAAMJ,IAAa,KAG9BtD,EAAOuD,EAAIx2D,MASnBizD,EAAOuD,EAAIx2D,QAGlB0X,MAAMla,IACHy1D,EAAOz1D,MAGnB,OAAO+4D,GAIf,SAASP,GAAYryB,GACjB,OAAO2xB,KAAKl5B,OAAOw6B,aAAarpC,MAAM,KAClCoW,EAAItsB,QAAQ,SAAU,IAAIA,QAAQ,qBAAsB,SAASA,QAAQ,MAAO,IAAIw/C,MAAM,OAIlG,SAASpB,GAAcqB,GAMnB,IALA,IAII5iC,EAHA6D,EAAQ,EACR/lB,EAAS8kD,EAAM9kD,OACf2hC,EAAS,GAEN5b,EAAQ/lB,GACXkiB,EAAQ4iC,EAAMC,SAASh/B,EAAOlgB,KAAK0kC,IAAIxkB,EAN1B,MAM8C/lB,IAC3D2hC,GAAUvX,OAAOw6B,aAAarpC,MAAM,KAAM2G,GAC1C6D,GARa,MAUjB,OAAOu9B,KAAK3hB,GC7LhB,MAAMqjB,WAAsB9mC,YAAW,cAAD,yBAClC/0B,MAAQ,CACJ0mD,OAAO,EACPoV,aAAc,KACdC,YAAa,KACbC,SAAU,KACVC,qBAAqB,EACrBC,WAAW,EACXC,sBAAuB,GACvBC,qBAAsB,GACtBC,4BAA4B,EAC5BC,qBAAqB,EACrBC,wBAAwB,GAZM,KAelCC,QAAU,IAAI/C,GAfoB,KA0KlCgD,aAAe,KCzKZ,IACHh9D,EACA0vD,EACAjjD,EACAu3B,EACA7kC,EACAD,EACAsN,EACAujD,EACAC,EACAqB,EACA9d,GD+JIn/B,KACKwe,KAAKqqC,wBASLrqC,KAAKryB,MAAM87D,cCnLpBr8D,ED6LQ4yB,KAAKK,MAAMxxB,eAAezB,KC5LlC0vD,ED6LQ98B,KAAKK,MAAMxxB,eAAe8K,WC5LlCE,ED6LQmmB,KAAKK,MAAMxxB,eAAegL,KC5LlCu3B,ED6LQpR,KAAKK,MAAMxxB,eAAekL,MC5LlCxN,ED6LQyzB,KAAKK,MAAMlmB,gBAAgB5N,MC5LnCD,ED6LQ0zB,KAAKK,MAAMxxB,eAAevC,MC5LlCsN,ED6LQomB,KAAKK,MAAMxxB,eAAe+K,KC5LlCujD,ED6LQn9B,KAAKK,MAAMxxB,eAAeiL,aC5LlCsjD,ED6LQp9B,KAAKK,MAAMxxB,eAAeuuD,SC5LlCqB,ED6LQz+B,KAAKK,MAAMxxB,eAAe4vD,KC5LlC9d,ED6LQ3gB,KAAKryB,MAAM+7D,YC3LZ3/C,KACF2U,KxJyDoB,0BwJzDA,CACjB4rC,YAAal9D,EACbm9D,aAAczN,EACd0N,YAAarN,EACbpjD,MAAOq3B,EACPq5B,UAAWl+D,EACXm+D,UAAWp+D,EACXq+D,SAAU/wD,EACVgxD,SAAU/wD,EACVujD,SAAUA,EACVqB,KAAMA,EACN9d,IAAKA,IAER12B,KAAM2U,GACIA,EAAKpsB,MAEf0X,MAAOla,IACJ,MAAMma,MAAMlD,GAAsBjX,OD2KjCia,KAAK,KAC8B,MAA5B+V,KAAKryB,MAAM87D,aACXzpC,KAAK6qC,cAC8B,MAA5B7qC,KAAKryB,MAAM87D,aAClBzpC,KAAK8qC,gBAC8B,MAA5B9qC,KAAKryB,MAAM87D,cAClBzpC,KAAKsmC,mBAGZp8C,MAAOre,IACJ2V,KACAD,GACI,kBAAC4G,GAAA,EAAD,CAAOC,QAAQ,mDAAf,2CAAuG,CAAEva,aAAchC,EAAM4F,SAA7H,KhI5Ne,gBgI+NnBuuB,KAAK+qC,cAAa,KApCtBxpD,GACI,kBAAC4G,GAAA,EAAD,CAAOC,QAAQ,4CAAf,qChI5LmB,gBgI8LnB,GAZJ7G,GACI,kBAAC4G,GAAA,EAAD,CAAOC,QAAQ,yCAAf,gHhInLmB,gBgIqLnB,IAhLsB,KA8NlCyiD,YAAc,KACV7qC,KAAK+qC,cAAa,GAClBvpD,KAEA,MAAMwpD,EAAehrC,KAAKK,MAAM5xB,eAC1B6pD,EAAet4B,KAAKK,MAAMt0B,KAAKC,cAC/BsC,EAAO0xB,KAAKK,MAAMt0B,KAAKuC,MhIrD9B,SAAsB08D,EAAch/D,EAAesC,GACtD,OAAOyb,KACF2U,KvBpKqB,uBuBoKA,CAClBiqC,aAAcqC,EACdh/D,cAAeA,EACfsC,KAAMA,IAET2b,KAAM2U,GACIA,EAAKpsB,MAEf0X,MAAOla,IACJ,MAAMma,MAAMlD,GAAsBjX,OgI4CtCi7D,CAAaD,EAAc1S,EAAchqD,GACpC2b,KAAKsgC,UAEF,GADA/oC,MACqB,IAAjBhP,EAAK21D,QAAkB,CAEvB9mD,GADgB,kBAAC8G,GAAA,EAAD,CAAOC,QAAQ,8DAAf,gBAA0F,CAAE8iD,YAAa14D,EAAK24D,cAA9G,qBAAgJ,CAAEH,gBAAlJ,+EhI/OD,gBgIoPfhrC,KAAKorC,gBAAgB54D,EAAK5G,MAAO,YAAa,UAE9C2V,GACI,kBAAC4G,GAAA,EAAD,CAAOC,QAAQ,2DAAf,+ChIvPW,gBgIyPX,GAEJ4X,KAAK+qC,cAAa,KAGzB7gD,MAAOla,IACJwR,KACA,MAAM3T,EAAeoZ,GAAsBjX,GAE3CuR,GADgB,kBAAC4G,GAAA,EAAD,CAAOC,QAAQ,mDAAf,6CAA4G,CAAEva,iBhIjQ3G,gBgIqQf,GAEJmyB,KAAK+qC,cAAa,MAlQI,KAsQlCD,cAAgB,KACZ9qC,KAAK+qC,cAAa,GAClBvpD,MhIrDD,SAAqBxV,EAAesC,GACvC,OAAOyb,KACF2U,KvBvMoB,sBuBuMA,CACjBiqC,aAAc,GACd38D,cAAeA,EACfsC,KAAMA,IAET2b,KAAM2U,GACIA,EAAKpsB,MAEf0X,MAAOla,IACJ,MAAMma,MAAMlD,GAAsBjX,OgI8CtCq7D,CAFqBrrC,KAAKK,MAAMt0B,KAAKC,cACxBg0B,KAAKK,MAAMt0B,KAAKuC,MAExB2b,KAAKsgC,UAEF,GADA/oC,MACqB,IAAjBhP,EAAK21D,QAAkB,CAEvB9mD,GADgB,kBAAC8G,GAAA,EAAD,CAAOC,QAAQ,6DAAf,gBAAyF,CAAE8iD,YAAa14D,EAAK24D,cAA7G,qGhIrRD,gBgI0RfnrC,KAAKorC,gBAAgB54D,EAAK5G,MAAO,WAAY,UAE7C2V,GACI,kBAAC4G,GAAA,EAAD,CAAOC,QAAQ,0DAAf,8ChI7RW,gBgI+RX,GAEJ4X,KAAK+qC,cAAa,KAGzB7gD,MAAOla,IACJgwB,KAAK+qC,cAAa,GAClBvpD,KACAD,GACI,kBAAC4G,GAAA,EAAD,CAAOC,QAAQ,mDAAf,4ChIxSe,gBgI0Sf,MArSkB,KA0SlCk+C,eAAiB,KACb,MAAM,EAAEnjC,GAAMnD,KAAKK,MACnBL,KAAK+qC,cAAa,GAClB,MAAMzS,EAAet4B,KAAKK,MAAMt0B,KAAKC,cA+BrCqV,GACI8hB,EAAE,iEAAkE,6GhIlV7C,gBgIoVvB,GAEJnD,KAAKmqC,QAAQ7D,eAAehO,EAlCX9lD,IACbwtB,KAAK+qC,cAAa,GAElBvpD,MACqB,IAAjBhP,EAAK21D,SACL/mD,GACI+hB,EAAE,sDAAuD,kCACzDvJ,GAAKG,WAETiG,KAAKsrC,iBAEL/pD,GACI4hB,EAAE,6EAA8E,wChIhUjE,gBgIkUf,IAKIt3B,IACZm0B,KAAK+qC,cAAa,GAClBvpD,KAKAD,GAJqByG,GACjBnc,EACAs3B,EAAE,wDAAyD,oChI5UxC,gBgI8UkC,MAzU/B,KAoVlCioC,gBAAkB7gB,MAAO3+C,EAAO2yB,EAAMgtC,KAClC,MAAM,EAAEpoC,GAAMnD,KAAKK,MAzV3B,IAAemrC,UA0VK,IAzVT,IAAIjG,QAASC,GAAY2D,WAAW3D,EAASgG,KA2VhDltC,GAAkB1yB,EAAO2yB,EAAMgtC,GAC1BthD,KAAMzX,KACkB,IAAjBA,EAAK21D,SACL3mD,KAEAJ,GACI+hB,EAAE,4CAA6C,kCAC/CvJ,GAAKG,WAETiG,KAAKsrC,iBACgB,YAAd94D,EAAK+U,KACZyY,KAAKorC,gBAAgBx/D,EAAO2yB,EAAMgtC,GACb,aAAd/4D,EAAK+U,MACZ/F,KACAwe,KAAK+qC,cAAa,GAClBxpD,GACI4hB,EAAE,uDAAwD,+BhI7W/C,gBgI+WX,KAEG3wB,EAAK+U,KACZ/F,KACAwe,KAAK+qC,cAAa,GAClBxpD,GACI4hB,EAAE,wDAAyD,mChIrXhD,gBgIuXX,MAYXjZ,MAAOre,IACJ2V,KACAwe,KAAK+qC,cAAa,GAClBxpD,GACI1V,EAAM4F,QhIvYS,mBgIKG,KA6YlC4pD,iBAAoBG,GACTj8B,OAAOwiB,OAAOyZ,GAAQC,MACxBr5B,GAAY,KAANA,GAAkB,OAANA,QAAoBnJ,IAANmJ,GA/YP,KAmZlC2oC,aAAgB/2D,IACZgsB,KAAKkM,SAAS,CAAE29B,UAAW71D,KApZG,KAuZlCy3D,QAAU,KACNzrC,KAAKkM,SAAS,CAAEu9B,aAAc,OAxZA,KA2ZlC6B,cAAgB,KACZ,MAAM,EAAEnoC,GAAMnD,KAAKK,MACnB5e,KACAL,GAAwB+hB,EAAE,4CAA6C,kCAAmCvJ,GAAKG,WAAW,GAE1H08B,GAAqBz2B,KAAKK,MAAMxxB,gBAAgBqb,MAAOla,GACnDuR,GACI0F,GAAsBjX,GACtB4pB,GAAKG,WACL,IAGRmF,KAAchV,MAAOla,GACjBuR,GACI0F,GAAsBjX,GACtB4pB,GAAKG,WACL,IAGRiG,KAAKK,MAAMmG,QAAQI,KAAKhN,GAAKkB,WA9aC,KAiblC+sB,OAAS,IACL7nB,KAAKkM,SACD,CAAEmoB,OAAQr0B,KAAKryB,MAAM0mD,OACrBr0B,KAAKK,MAAMmG,QAAQI,KAAKhN,GAAKG,YApbH,KAublC2xC,gBAAmBC,IAEf3rC,KAAKkM,SAAS,CAAEu9B,aAAckC,KAzbA,KA4blCC,0BAA4B,KACxB,GAAI5rC,KAAKryB,MAAMk8D,UACX,OAAO,EAGX,MAAMp8D,EAAWuyB,KAAKK,MAAM5yB,SAC5B,OAAIA,IAAa4wB,IAAmB5wB,IAAa4wB,MAIzC2B,KAAKK,MAAMt0B,OAASi0B,KAAKK,MAAMt0B,KAAKuC,OAtcd,KAyclCu9D,sBAAwB,KACpB,GAAI7rC,KAAKryB,MAAMk8D,UACX,OAAO,EAGX,MAAMp8D,EAAWuyB,KAAKK,MAAM5yB,SACtBgB,EAAiBuxB,KAAKK,MAAM5xB,eAClC,OAAIhB,IAAa4wB,KAAkB5vB,KAI3BuxB,KAAKK,MAAMt0B,OAASi0B,KAAKK,MAAMt0B,KAAKuC,OApdd,KAudlCw9D,iBAAmB,IACR9rC,KAAKryB,MACPk8D,UAxcT38B,mBAAmBC,EAAWqG,EAAW2H,GCjDtC,IACH/tC,EACA0vD,EACAjjD,EACAu3B,EACA7kC,EACAD,EACAsN,EACAujD,EACAC,EACAqB,EDwCQz+B,KAAKryB,MAAMu8D,yBAEPlqC,KAAKK,QAAU8M,GACfqG,EAAUi2B,eAAiBzpC,KAAKryB,MAAM87D,cACtCj2B,EAAUo2B,sBAAwB5pC,KAAKryB,MAAMi8D,qBAE7C5pC,KAAKqqC,wBAGTrqC,KAAKK,QAAU8M,GAEXnN,KAAKq7B,iBAAiBr7B,KAAKK,MAAMlmB,kBACjC6lB,KAAKq7B,iBAAiBr7B,KAAKK,MAAMxxB,kBAEjC2S,MC/DZpU,EDiEgB4yB,KAAKK,MAAMxxB,eAAezB,KChE1C0vD,EDiEgB98B,KAAKK,MAAMxxB,eAAe8K,WChE1CE,EDiEgBmmB,KAAKK,MAAMxxB,eAAegL,KChE1Cu3B,EDiEgBpR,KAAKK,MAAMxxB,eAAekL,MChE1CxN,EDiEgByzB,KAAKK,MAAMlmB,gBAAgB5N,MChE3CD,EDiEgB0zB,KAAKK,MAAMxxB,eAAevC,MChE1CsN,EDiEgBomB,KAAKK,MAAMxxB,eAAe+K,KChE1CujD,EDiEgBn9B,KAAKK,MAAMxxB,eAAeiL,aChE1CsjD,EDiEgBp9B,KAAKK,MAAMxxB,eAAeuuD,SChE1CqB,EDiEgBz+B,KAAKK,MAAMxxB,eAAe4vD,KC/DnC10C,KACF2U,KxJ0FsB,4BwJ1FA,CACnB4rC,YAAal9D,EACbm9D,aAAczN,EACd0N,YAAarN,EACbpjD,MAAOq3B,EACPq5B,UAAWl+D,EACXm+D,UAAWp+D,EACXq+D,SAAU/wD,EACVgxD,SAAU/wD,EACVujD,SAAUA,EACVqB,KAAMA,IAETx0C,KAAM2U,GACIA,GAEV1U,MAAOla,IACJ,MAAMma,MAAMlD,GAAsBjX,ODgDzBia,KAAM5C,IACH,MAAM7U,EAAO6U,EAAS7U,KACE,MAApB6U,EAAS8G,QACT1M,KACAJ,GACI7O,EAAK+U,KACLqS,GAAKG,WACL,GAGJ08B,GAAqBz2B,KAAKK,MAAMxxB,gBAAgBqb,MAAOla,GACnDuR,GACI0F,GAAsBjX,GACtB4pB,GAAKG,WACL,IAIRmF,KAAchV,MAAOla,GACjBuR,GACI0F,GAAsBjX,GACtB4pB,GAAKG,WACL,IAGRiG,KAAKK,MAAMmG,QAAQI,KAAKhN,GAAKG,YAEzBvnB,EAAKmuC,KACL3gB,KAAKkM,SAAS,CACVw9B,YAAal3D,EAAKmuC,IAClBgpB,SAAUn3D,MAMzB0X,MAAOla,IACJwR,KAGAD,GAFgB,kBAAC4G,GAAA,EAAD,CAAOC,QAAQ,6CAAf,sCAA4F,CAAEva,aAAcoZ,GAAsBjX,KhIxFvI,gBgI6FP,MAOxBq6D,uBACI,MAAMlwD,EAAkB6lB,KAAKK,MAAMlmB,gBAC7BtL,EAAiBmxB,KAAKK,MAAMxxB,eAC5Bi7D,EAAwB,GACxBC,EAAuB,GAExB5vD,EAAgBjO,YACjB49D,EAAsBljC,KAAK,cAE1BzsB,EAAgB5N,OACjBu9D,EAAsBljC,KAAK,SAE1BzsB,EAAgBxN,YACjBm9D,EAAsBljC,KAAK,cAE1BzsB,EAAgBhO,WACjB29D,EAAsBljC,KAAK,aAE1BzsB,EAAgB7N,OACjBw9D,EAAsBljC,KAAK,SAG1B/3B,EAAezB,MAChB28D,EAAqBnjC,KAAK,QAEzB/3B,EAAe8K,YAChBowD,EAAqBnjC,KAAK,cAEzB/3B,EAAegL,MAChBkwD,EAAqBnjC,KAAK,QAEzB/3B,EAAekL,OAChBgwD,EAAqBnjC,KAAK,SAEzB/3B,EAAevC,OAChBy9D,EAAqBnjC,KAAK,SAEzB/3B,EAAe+K,MAChBmwD,EAAqBnjC,KAAK,QAEzB/3B,EAAeiL,cAChBiwD,EAAqBnjC,KAAK,gBAEzB/3B,EAAeuuD,UAChB2M,EAAqBnjC,KAAK,YAEzB/3B,EAAe4vD,MAChBsL,EAAqBnjC,KAAK,QAG9B,MAAMojC,GAA8BhqC,KAAKryB,MAAMi8D,oBAEzCK,GAAuBjqC,KAAKryB,MAAM87D,aAUxC,OARAzpC,KAAKkM,SAAS,CACV49B,wBACAC,uBACAC,6BACAC,sBACAC,wBAAwB,MAIxBJ,EAAsBtlD,QACtBulD,EAAqBvlD,QACrBwlD,GACAC,IACCjqC,KAAKryB,MAAM87D,cA0TpBsC,8BACI,MAAM,EAAE5oC,GAAMnD,KAAKK,MACb2rC,EACF,kBAAC7jD,GAAA,EAAD,CAAOC,QAAQ,oCAAf,cACY,uBACJqX,OAAO,SACPkL,IAAI,sBACJjqB,UAAWsf,KAAKryB,MAAM+7D,YAAc,KAAO,WAC3Ch/B,KAAM1K,KAAKryB,MAAM+7D,aAJb,WADZ,IAQS,uBACDjqC,OAAO,SACPkL,IAAI,sBACJD,KAAMvH,EAAE,kCAAmC,8DAH1C,iBASb,OACI,kBAAC,GAAD,CACInvB,MAAOgsB,KAAKryB,MAAMi8D,oBAClBzkC,QAAS,IACLnF,KAAKkM,SAAS,CACV09B,qBAAsB5pC,KAAKryB,MAAMi8D,sBAGzCl2B,UAAWs4B,EACX54B,QAASpT,KAAKryB,MAAMq8D,2BACpBh3B,UAAU,IAKtBvP,SACI,MAAM,EAAEN,GAAMnD,KAAKK,MACnB,OACI,6BACI,kBAACunB,GAAA,EAAD,CACIN,OAAQtnB,KAAKryB,MAAM0mD,MACnBxM,OAAQ7nB,KAAK6nB,OACbnnC,UAAU,kBAEV,kBAACkjD,GAAA,EAAD,CAAa/b,OAAQ7nB,KAAK6nB,OAAQnnC,UAAU,gBACxC,uBAAGA,UAAU,SAASyiB,EAAE,sBAAuB,WAC/C,uBAAGziB,UAAU,cACRyiB,EAAE,2BAA4B,0OAGvC,kBAAC6kB,GAAA,EAAD,KACI,6BACI,kBAAC,GAAD,CACIuT,cAAev7B,KAAKryB,MAAMm8D,wBAE9B,kBAAC,GAAD,CACIvO,cAAev7B,KAAKryB,MAAMo8D,wBAIlC,kBAAC,KAAD,CAAKrpD,UAAU,WACX,kBAAComB,GAAA,EAAD,CAAKgK,GAAI,GAAIpwB,UAAU,eACnB,uBAAGA,UAAU,WACRyiB,EAAE,qCAAsC,4BAE5CnD,KAAK+rC,gCAId,kBAAC,KAAD,CAAKrrD,UAAU,0BACX,kBAAComB,GAAA,EAAD,CAAKpmB,UAAU,iBACX,kBAAC,GAAD,CACIykB,QAAS,IAAMnF,KAAK0rC,gBAAgB,KACpCxU,WAAwC,MAA5Bl3B,KAAKryB,MAAM87D,aACvB/1B,UAAWvQ,EAAE,0BAA2B,aACxC+B,SAAUlF,KAAK6rC,wBACfnrD,UAAU,cACV0yB,QAASpT,KAAKryB,MAAMs8D,oBACpBr6B,WAAY,CAAE0L,OAAO,MAG7B,kBAACxU,GAAA,EAAD,CAAKpmB,UAAU,iBACX,kBAAC,GAAD,CACIykB,QAAS,IAAMnF,KAAK0rC,gBAAgB,KACpCxU,WAAwC,MAA5Bl3B,KAAKryB,MAAM87D,aACvB/1B,UAAWvQ,EAAE,yBAA0B,YACvC+B,SAAUlF,KAAK4rC,4BACflrD,UAAU,cACV0yB,QAASpT,KAAKryB,MAAMs8D,oBACpBr6B,WAAY,CAAE0L,OAAO,MAG7B,kBAACxU,GAAA,EAAD,CAAKpmB,UAAU,iBACX,kBAAC,GAAD,CACIykB,QAAS,IAAMnF,KAAK0rC,gBAAgB,KACpCxU,WAAwC,MAA5Bl3B,KAAKryB,MAAM87D,aACvB/1B,UAAWvQ,EAAE,wBAAyB,YACtC+B,SAAUlF,KAAKryB,MAAMk8D,UACrBnpD,UAAU,cACV0yB,QAASpT,KAAKryB,MAAMs8D,oBACpBr6B,WAAY,CAAE0L,OAAO,OAIjC,kBAAC,KAAD,CAAK56B,UAAU,iBACX,kBAAComB,GAAA,EAAD,CAAKgK,GAAI,IACL,kBAAC,GAAD,CACI1G,YAAY,EACZC,aAAc,ChI7kBf,qBgIilBTrK,KAAKryB,MAAMk8D,WACT,kBAAC,KAAD,CAAKnpD,UAAU,WACX,kBAAComB,GAAA,EAAD,CAAKgK,GAAI,GAAIpwB,UAAU,eACnB,kBAAC26B,GAAA,EAAD,CACInW,SAAUlF,KAAK8rC,mBACf3gC,MAAM,UACNhG,QAAS,IAAMnF,KAAKoqC,gBAEnBjnC,EAAE,mCAAoC,sBAsBhEgG,IElpBX,GAAO,GAAQ,GAAQ8iC,GAAQC,GAAQC,GFkpB5BhjC,gBAAW1D,YAVD93B,IACd,CACH5B,KAAM4B,EAAMe,KAAK3C,KACjB0B,SAAUE,EAAMe,KAAKjB,SACrBgB,eAAgBd,EAAMe,KAAKD,eAC3BI,eAAgBlB,EAAMoN,QAAQlM,eAC9BsL,gBAAiBxM,EAAMoN,QAAQZ,kBAIbsrB,CAAyBC,eAAkB8jC,M,OEhpBrE,SAAS,KAA2Q,OAA9P,GAAWjqC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAI1X,EAAI,EAAGA,EAAI2X,UAAUlb,OAAQuD,IAAK,CAAE,IAAI4X,EAASD,UAAU3X,GAAI,IAAK,IAAI9b,KAAO0zB,EAAcJ,OAAOK,UAAUC,eAAeC,KAAKH,EAAQ1zB,KAAQwzB,EAAOxzB,GAAO0zB,EAAO1zB,IAAY,OAAOwzB,IAA2BM,MAAMC,KAAMN,WAIhT,MAAM0sC,GAAwBlsC,IAC5B,IAAI,OACFC,EAAM,MACNC,KACGC,GACDH,EACJ,OAAoB,IAAMI,cAAc,MAAO,GAAS,CACtDC,MAAO,GACPC,OAAQ,GACRC,QAAS,YACTC,KAAM,OACNC,IAAKR,GACJE,GAAQD,EAAqB,IAAME,cAAc,QAAS,KAAMF,GAAS,KAAM,KAAU,GAAqB,IAAME,cAAc,OAAQ,CAC3IS,EAAG,4+CACHL,KAAM,aACH,KAAW,GAAsB,IAAMJ,cAAc,OAAQ,CAChES,EAAG,wNACHL,KAAM,aACH,KAAW,GAAsB,IAAMJ,cAAc,OAAQ,CAChES,EAAG,kNACHL,KAAM,aACHurC,KAAWA,GAAsB,IAAM3rC,cAAc,OAAQ,CAChES,EAAG,wNACHL,KAAM,aACHwrC,KAAWA,GAAsB,IAAM5rC,cAAc,OAAQ,CAChES,EAAG,4NACHL,KAAM,aACHyrC,KAAWA,GAAsB,IAAM7rC,cAAc,OAAQ,CAChES,EAAG,+NACHL,KAAM,eAIJ,GAA0B,IAAMO,WAAW,CAACZ,EAAOM,IAAqB,IAAML,cAAc8rC,GAAuB,GAAS,CAChIjsC,OAAQQ,GACPN,KACY,I,OCXf,MAAMgsC,WAA2B5pC,IAAMC,UAAW,cAAD,yBA0H7C4pC,SAAW,KACP9qD,KACAwe,KAAKusC,gBA5HoC,KA+H7CA,aAAe,KACXpsB,GACIngB,KAAKK,MAAMxtB,QAAQF,SACnBqtB,KAAKK,MAAMxtB,QAAQD,OACnBotB,KAAKK,MAAM4H,SAASD,WAlI5B6E,oBACQ7M,KAAKK,MAAMvtB,WACXg5C,GACIxb,GACItQ,KAAKK,MAAMttB,kBACXitB,KAAKK,MAAMrtB,kBAM3Bk6B,mBAAmBC,GAEXnN,KAAKK,MAAMvtB,WACXktB,KAAKK,MAAMvtB,YAAcq6B,EAAUr6B,WAEnCg5C,GACIxb,GACItQ,KAAKK,MAAMttB,kBACXitB,KAAKK,MAAMrtB,kBAM3Bg6B,uBACI+e,KAGJtoB,SACI,MAAM,EAAEN,GAAMnD,KAAKK,MAEnB,OACI,kBAAC04B,GAAA,EAAD,KACI,kBAAC/uB,GAAA,EAAD,CAAMtpB,UAAU,0BACZ,kBAACupB,GAAA,EAAD,CAAUvpB,UAAU,IAChB,kBAACmmB,GAAA,EAAD,CAAKnmB,UAAU,2BACX,kBAAComB,GAAA,EAAD,CAAKpmB,UAAU,8DACX,0BAAMA,UAAU,IACXyiB,EAAE,wBAAyB,aAGpC,kBAAC2D,GAAA,EAAD,CAAKsU,GAAG,IAAItK,GAAG,IAAIpwB,UAAU,aACzB,kBAAC,KAAD,CACIA,UAAU,eACVkL,SAAUoU,KAAKK,MAAMxtB,QAAQF,SAC7By/B,SAAWmI,GACPva,KAAKK,MAAMmsC,wBACP,WACAjyB,GAGRoB,gBAAiBxY,EACb,sBACA,UAEJspC,W/FjFK,Y+FkFLC,qBAAmB,EACnBC,QACI3sC,KAAKK,MAAMxtB,QAAQD,OACbgB,KACEosB,KAAKK,MAAMxtB,QAAQD,QACrBA,SACA,IAAIse,QAItB,kBAAC4V,GAAA,EAAD,CAAKsU,GAAG,IAAItK,GAAG,IAAIpwB,UAAU,aACzB,kBAAC,KAAD,CACIA,UAAU,eACVkL,SAAUoU,KAAKK,MAAMxtB,QAAQD,OAC7Bw/B,SAAWmI,GACPva,KAAKK,MAAMmsC,wBACP,SACAjyB,GAGRoB,gBAAiBxY,EAAE,oBAAqB,QACxCspC,W/FvGK,Y+FwGLC,qBAAmB,EACnB9wB,QACI5b,KAAKK,MAAMxtB,QAAQF,UACnBiB,KAAOosB,KAAKK,MAAMxtB,QAAQF,UAAUC,SAExC+5D,QAAS,IAAIz7C,QAGrB,kBAAC4V,GAAA,EAAD,CAAKsU,GAAG,IAAItK,GAAG,IAAIpwB,UAAU,aACzB,kBAAC26B,GAAA,EAAD,CACIC,OAAK,EACLnQ,MAAM,UACNzqB,UAAU,gBACV/R,KAAK,SACLw2B,QAASrd,IAAOA,EAAE0wC,iBAAkBx4B,KAAKssC,YACzCpnC,SAAUlF,KAAKK,MAAMptB,kBAEpB+sB,KAAKK,MAAMptB,iBACR,kBAAC,GAAD,MAEIkwB,EAAE,iBAAkB,UAIpC,kBAAC2D,GAAA,EAAD,CAAKsU,GAAG,IAAItK,GAAG,IAAIpwB,UAAU,wBACzB,kBAAC26B,GAAA,EAAD,CACIQ,SAAO,EACPP,OAAK,EACLnQ,MAAM,UACNzqB,UAAU,gBACVykB,QAASnF,KAAKK,MAAMusC,mBAEnBzpC,EAAE,sBAAuB,6BAwB9D,MAaM6jB,GAAe,CACjBwlB,wBrEnLmC,CAACvgE,EAAK+H,KAClC,CACHrF,K9GuGkC,6B8GtGlC1C,IAAKA,EACL+H,MAAOA,IqEgLX44D,kBrE5K6B,KACtB,CACHj+D,K9GgG2B,yBmL6EpBw6B,oBACX1D,YAnBqB93B,IACd,CACHk6B,eAAgBl6B,EAAMe,KAAK3C,KACrB4B,EAAMe,KAAK3C,KAAKipB,iBAChB,KACN/hB,iBAAkBtF,EAAM0F,MAAMJ,iBAC9BH,UAAWnF,EAAM0F,MAAMP,UACvBC,kBAAmBpF,EAAM0F,MAAMN,kBAC/BC,gBAAiBrF,EAAM0F,MAAML,gBAC7BH,QAASlF,EAAM0F,MAAMR,UAYrBm0C,GAFJvhB,CAGEC,aAAgB,SAAhBA,CAA0B2mC,M,OC3JjBljC,qBA1Bf,SAAyB9I,GACrB,MAAM7sB,EAAK6sB,EAAM/sB,YAAYE,GAC7B,IAAI00B,EAOJ,OALIA,EADA7H,EAAM/sB,YAAYI,UACVuqB,GAAoBzqB,GAEpBwqB,GAAiBxqB,GAIzB,oCACI,kBAAC,GAAD,CACIK,OhGfiB,YgGgBjB6M,UAAU,sCACVykB,QACKrd,IACGA,EAAE++B,kBACFxmB,EAAMmG,QAAQI,KAAKsB,IAG3Bl0B,MAAO67B,GAA2BxP,EAAM/sB,YAAYG,cCSpE,SAASymC,GAAiB7Z,GACtB,IAAInrB,EACAmrB,EAAM8C,EAAE,mCAAoC,6EAOhD,OANI9C,EAAMv0B,QACNoJ,EAAU,kBAAC,GAAD,MACHmrB,EAAMx0B,QACbqJ,EAAU,0BAAMwL,UAAU,eAAe2f,EAAMx0B,QAG5C,yBAAK6U,UAAU,eAAexL,GAGzC,MAAM23D,WAAmBpqC,IAAMC,UAAW,cAAD,yBAiBrC6pC,aAAe,KACXpsB,GACIngB,KAAKK,MAAMxtB,QAAQF,SACnBqtB,KAAKK,MAAMxtB,QAAQD,OACnBotB,KAAKK,MAAM4H,SAASD,WArBS,KAyBrC8kC,iBAAmB,IACR,CACH,CACIjpD,UAAW,SACXC,MAAO,SA7BkB,KAuJrCipD,sBAAyBp2D,GAChBA,EAAI4rC,cAKL,oCACI,kBAAC1b,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,KACI,kBAAC,GAAD,CAAiBxzB,YAAaqD,MAGrCA,EAAI4rC,eACD,kBAAC1b,GAAA,EAAD,CAAKnmB,UAAU,QACX,kBAAComB,GAAA,EAAD,KACI,kBAAC,GAAD,CAAiBxzB,YAAaqD,EAAI4rC,gBAClC,kBAAC,GAAD,CAAY7hC,UAAU,wBAd/B,kBAAC,GAAD,CAAiBpN,YAAaqD,IAzJR,KA+KrCq2D,WAAa,CAAC36B,EAAO17B,KACjB,IAAIs2D,EAAYjvC,GAAiBrnB,EAAInD,IACjC8uC,GAA6B3rC,KAC7Bs2D,EAAYhvC,GAAoBtnB,EAAI4rC,cAAc/uC,KAEtDwsB,KAAKK,MAAMmG,QAAQI,KAAKqmC,IApLS,KAuLrCC,2BAA6B,CAAC5mB,EAAc3vC,IAEpC,oCACI,kBAACkwB,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,KACI,kBAAC,GAAD,CAAU9yB,MAAOsyC,MAGxB3vC,EAAI4rC,eACD,kBAAC1b,GAAA,EAAD,CAAKnmB,UAAU,QACX,kBAAComB,GAAA,EAAD,KACI,kBAAC,GAAD,CAAU9yB,MAAO2C,EAAI4rC,cAAc+D,kBAlMtB,KA0MrC6mB,sBAAyBx2D,GAEjB,oCACI,kBAACkwB,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,KACI,kBAAC,GAAD,CACI3Y,OAAQxX,EAAIwX,OAAOxV,MACnBhK,KAAM4gC,GAAkB54B,EAAIwX,OAAOna,OACnC0M,UAAU,kBAIrB/J,EAAI4rC,eACD,kBAAC1b,GAAA,EAAD,CAAKnmB,UAAU,QACX,kBAAComB,GAAA,EAAD,KACI,kBAAC,GAAD,CACI3Y,OAAQxX,EAAI4rC,cAAcp0B,OAAOxV,MACjChK,KAAM4gC,GACF54B,EAAI4rC,cAAcp0B,OAAOna,OAE7B0M,UAAU,mBA9ND,KAuOrC0sD,wBAA2Bz2D,IACvB,MAAM02D,EAAuB,CAAC37D,EAAUgvC,KAC5BhvC,GAAY,IAAIwQ,OAAOrQ,GAAWA,EAAQzE,MAAMkI,IAAI,CAACzD,EAAS04B,IAClE,kBAACzD,GAAA,EAAD,CAAK2D,GAAG,KAAKx+B,IAAG,WAAMy0C,EAAW,iBAAmB,UAApC,YAAiD7uC,EAAQzE,KAAzD,YAAiEm9B,IAC7E,kBAAC,GAAD,CACIn9B,KAAMyE,EAAQzE,KACduzC,IAAK9uC,EAAQ8uC,IACbxb,QAAS,WAMnBmoC,EAAsBD,EAAqB12D,EAAI9E,SAAS,GAC9D,IAAI07D,EAA4B,GAKhC,OAJI52D,EAAI4rC,eAAiB5rC,EAAI4rC,cAAc1wC,UACvC07D,EAA4BF,EAAqB12D,EAAI4rC,cAAc1wC,SAAS,IAI5E,oCACI,kBAACg1B,GAAA,EAAD,KACKymC,EACAC,KA9PoB,KAoQrCC,sBAAyBl6D,GACd,kBAAC,GAAD,CAAUA,YAAaA,EAAawyC,aAAcxyC,EAAYivC,gBAhQzE1V,oBACQ7M,KAAKK,MAAMuQ,4BACX5Q,KAAKusC,eAIbr/B,mBAAmBC,GACXA,EAAUtF,iBAAmB7H,KAAKK,MAAMwH,gBACxC7H,KAAKusC,eAqBb9oC,SACI,OACI,oCACI,kBAAC,GAAD,MACCzD,KAAK8b,cACN,kBAAC,GAAD,OAKZA,cACI,MAAM,EAAE3Y,GAAMnD,KAAKK,MACnB,GAAIL,KAAKK,MAAMptB,iBACX,OACI,kBAACkhD,GAAD,KACI,kBAAC,GAAD,OAIZ,GAC6B,OAAzBn0B,KAAKK,MAAMvtB,gBACcmmB,IAAzB+G,KAAKK,MAAMvtB,UAEX,OAAO,qCAGX,MAAMipC,EAAU,CACZ,CACIl4B,UAAW,SACX7U,KAAMm0B,EAAE,uBAAwB,WAChC6Y,MAAM,EACNC,QAAS,aACTC,cAAe,oBACfS,UAAW,CAAClpC,EAAQkD,IAAQqpB,KAAK+sC,sBAAsBp2D,IAE3D,CACIkN,UAAW,eACX7U,KAAMm0B,EAAE,0BAA2B,YACnC6Y,MAAM,EACN2S,MAAO,OACPC,YAAa,OACb3S,QAAS,2BACTC,cAAe,uBACfS,UAAW,CAAC3oC,EAAO2C,IACfqpB,KAAKktC,2BAA2Bl5D,EAAO2C,IAE/C,CACIkN,UAAW,eACX7U,KAAMm0B,EAAE,uBAAwB,WAChC6Y,MAAM,EACNC,QAAS,aACTC,cAAe,oBACfS,UAAW,CAACC,EAAajmC,IACrBqpB,KAAKmtC,sBAAsBx2D,IAEnC,CACIkN,UAAW,UACX7U,KAAMm0B,EAAE,wBAAyB,QACjC6Y,MAAM,EACNa,UAAWhrC,GAAWA,GAAWA,EAAQ2S,OAAS,EAAI3S,EAAQ,GAAGzE,KAAO,GACxEuhD,MAAO,OACPC,YAAa,OACb3S,QAAS,cACTC,cAAe,qBACfS,UAAW,CAACjrC,EAAUiF,IAClBqpB,KAAKotC,wBAAwBz2D,IAErC,CACIkN,UAAW,KACX7U,KAAM,GACN2/C,MAAO,QACP8e,YAAa,QACbxxB,QAAS,aACTC,cAAe,oBACfS,UAAW,CAACnpC,EAAIF,IACZ0sB,KAAKwtC,sBAAsBl6D,KAQjC0nD,EAAY,CACd71B,QAAS,CAACrd,EAAGnR,EAAKskD,KACdj7B,KAAKgtC,WAAWllD,EAAGnR,KAI3B,OACI,kBAACqzB,GAAA,EAAD,CAAMtpB,UAAU,cACZ,kBAACupB,GAAA,EAAD,CAAUvpB,UAAU,mBAChB,kBAAC,KAAD,CACIq8B,YAAU,EACVC,UAAU,EACVf,QAAQ,4BACRiB,SAAS,KACT1qC,KAAMwtB,KAAKK,MAAMvtB,UACjBipC,QAASA,EACT75B,OAAQi7B,OACRC,eAAe,SACfE,cAAetd,KAAK8sC,mBACpBzvB,iBACI,kBAAC,GAAD,CACIxxC,MAAOm0B,KAAKK,MAAMqtC,kBAClB5hE,QAASk0B,KAAKK,MAAMptB,iBACpBkwB,EAAGA,IAGXozB,WA9BG,CAAC5/C,EAAKskD,IACd,UA8BKD,UAAWA,OAsIpBv1B,mBAbU93B,IACd,CACH5B,KAAM4B,EAAMe,KAAK3C,KACjB+G,UAAWnF,EAAM0F,MAAMP,UACvB46D,kBAAmB//D,EAAM0F,MAAMxH,OAAS,GACxCoH,iBAAkBtF,EAAM0F,MAAMJ,iBAC9BJ,QAASlF,EAAM0F,MAAMR,QACrB+9B,2BAA4Bxc,OAMrBqR,CAAyBC,aAAgB,SAAhBA,CAA0BmnC,K,OCpQlE,SAASc,GAAmC96D,GACxC,MAAO,CACHF,SAAUE,EAAQF,SAAWiB,KAAOf,EAAQF,UAAUkB,OlGjEjB,WkGiE0D,GAC/FjB,OAAQC,EAAQD,OAASgB,KAAOf,EAAQD,QAAQiB,OlGlEX,WkGkEoD,GACzFwD,YAAaxE,EAAQwE,YAAcxE,EAAQwE,YAAYrD,MAAQ,GAC/DsD,gBAAiBzE,EAAQyE,gBAAkBzE,EAAQyE,gBAAgBtD,MAAQ,GAC3EuD,YAAa1E,EAAQ0E,YACrBC,YAAa3E,EAAQ2E,YACrBC,gBAAiB5E,EAAQ4E,gBACzBC,SAAU7E,EAAQ6E,SAClBC,oBAAqB9E,EAAQ8E,oBAC7BC,WAAY/E,EAAQ+E,WACpBC,YAAahF,EAAQgF,aChD7B,MAAM+1D,WAA6BnrC,IAAMC,UAAW,cAAD,yBAyS/C4pC,SAAW,KD7SR,IAA4Bz5D,EC8SvBmtB,KAAKK,MAAMpoB,qBAGf+nB,KAAKK,MAAM9gB,mBACXwsC,MDlT2Bl5C,ECmTRmtB,KAAKK,MAAMxtB,QDlTlCiO,GAAMC,SEzBC,CACHpS,KxL+ImC,gCsLtHhCob,KACFC,I7JmEyB,yB6JnED,CACrB4qB,OAAQ+4B,GAAmC96D,KAE9CoX,KAAK2U,IEzB4B,IAAC9mB,EAAanF,EAAUC,EF2BtD,OADAkO,GAAMC,UE1ByBjJ,EF0BW8mB,EAAKpsB,KE1BHG,EF0BSE,EAAQF,SE1BPC,EF0BiBC,EAAQD,OEzBhF,CACHjE,KxL0IqC,gCwLzIrCmJ,cAAanF,WAAUC,YFwBZ,CAAC0tC,WAAW,KAEtBp2B,MAAMla,IACH,MAAMnC,EAAeoZ,GAAsBjX,GAG3C,OAFA8Q,GAAMC,SExBsB/Q,KAC7B,CACHrB,KxLoIkC,6BwLnIlC9C,MAAOmE,IFqBYqI,CAAwBxK,IAEhC,CAACyyC,WAAW,EAAOzyC,mBCqSSoc,KAAMk8B,IACpCA,EAAO7F,WACR/+B,GACIye,KAAKK,MAAM8C,EACP,wCACA,2CACAgjB,EAAOt4C,aACXmyB,KAAKK,MAAM4H,SAASD,UACpB,OAvT+B,KA6T/CgT,SAAW,KD/SR,IAAsCnoC,ECgTjCmtB,KAAKK,MAAM5rB,gBAGfurB,KAAKK,MAAM9gB,oBDnT0B1M,ECoTRmtB,KAAKK,MAAMxtB,QDnT5CiO,GAAMC,SEfC,CACHpS,KxL0HmC,gCsL3GhCob,KACFC,I7JkD4B,gC6JlDD,CACxB4qB,OAAQ+4B,GAAmC96D,KAE9CoX,KAAK2U,IACF,MAAMohB,EAAOb,GAAUvgB,EAAKpsB,MACtBouC,EAAW1C,GAAK/a,EAAE,8BAA+B,CAACoX,KAAM3mC,OAASC,OAAO,gBEjB/CqE,MFqB/B,OAHA2oC,KAAUC,OAAOd,EAAMY,GACvB9/B,GAAMC,SElBP,CACHpS,KxLqHqC,gCwLpHrCuJ,WAAYA,IFkBD,CAACooC,WAAW,KAEtBp2B,MAAMla,IACH,MAAMnC,EAAeoZ,GAAsBjX,GAG3C,OAFA8Q,GAAMC,SElBsB/Q,KAC7B,CACHrB,KxL+GkC,6BwL9GlC9C,MAAOmE,IFeYyI,CAAwB5K,IAEhC,CAACyyC,WAAW,EAAOzyC,mBCkSmBoc,KAAMk8B,IAC9CA,EAAO7F,WACR/+B,GACIye,KAAKK,MAAM8C,EACP,uCACA,8CACAgjB,EAAOt4C,aACXmyB,KAAKK,MAAM4H,SAASD,UACpB,OA1U+B,KAgV/C6lC,mBAAsBzgE,GAAU4G,IAC5BgsB,KAAKK,MAAM/nB,gCAAgClL,EAAM4G,IAjVN,KAoV/CwmC,mBAAsBptC,GAAUqtC,IAC5Bza,KAAK6tC,mBAAmBzgE,EAAxB4yB,CAA8Bya,IAvUlC5N,oBACQ7M,KAAKK,MAAMvoB,aACXg0C,GACIxb,GACItQ,KAAKK,MAAMtoB,oBACXioB,KAAKK,MAAMroB,oBAKvBohC,GAAkBpZ,KAAKK,MAAMhxB,cAC7B8pC,GAAgBnZ,KAAKK,MAAMytC,mBAG/B5gC,mBAAmBC,GAEXnN,KAAKK,MAAMvoB,aACXkoB,KAAKK,MAAMvoB,cAAgBq1B,EAAUr1B,aAErCg0C,GACIxb,GACItQ,KAAKK,MAAMtoB,oBACXioB,KAAKK,MAAMroB,oBAM3Bg1B,uBACI+e,KAGJtoB,SACI,MAAM,EAAEN,GAAMnD,KAAKK,MACbxtB,EAAUmtB,KAAKK,MAAMxtB,QAC3B,OACI,kBAACkmD,GAAA,EAAD,KACI,kBAAC/uB,GAAA,EAAD,CAAMtpB,UAAU,uBACZ,kBAACupB,GAAA,EAAD,KACI,kBAACpD,GAAA,EAAD,CAAKnmB,UAAU,yBACX,kBAAComB,GAAA,EAAD,CAAKsU,GAAG,KAAK16B,UAAU,WACnB,kBAACmmB,GAAA,EAAD,CAAKnmB,UAAU,mBACX,kBAAComB,GAAA,EAAD,CAAKgK,GAAG,IAAIsK,GAAG,KACX,kBAAC3H,GAAA,EAAD,KACI,kBAACE,GAAA,EAAD,CAAOjzB,UAAU,sBACZyiB,EACG,wBACA,YAGR,kBAAC,KAAD,CACIvX,SAAU/Y,EAAQF,SAClBy/B,SAAUpS,KAAK6tC,mBACX,YAEJlyB,gBAAiBxY,EACb,sBACA,UAEJspC,WnGjGP,YmGoGOC,qBAAmB,EACnBC,QACI95D,EAAQD,OACFgB,KACEf,EAAQD,QACVA,SACA,IAAIse,KAEdxQ,UAAU,6BAItB,kBAAComB,GAAA,EAAD,CAAKgK,GAAG,IAAIsK,GAAG,KACX,kBAAC3H,GAAA,EAAD,KACI,kBAAC,KAAD,CACI7nB,SAAU/Y,EAAQD,OAClBw/B,SAAUpS,KAAK6tC,mBACX,UAEJlyB,gBAAiBxY,EACb,oBACA,QAEJspC,WnG3HP,YmG8HOC,qBAAmB,EACnB9wB,QACI/oC,EAAQF,UACRiB,KACIf,EAAQF,UACVC,SAEN+5D,QAAS,IAAIz7C,KACbxQ,UAAU,6BAItB,kBAAComB,GAAA,EAAD,CAAKgK,GAAG,IAAIsK,GAAG,KACX,kBAAC3H,GAAA,EAAD,KACI,kBAACE,GAAA,EAAD,CAAOjzB,UAAU,sBACZyiB,EACG,iCACA,oBAGR,kBAAC,GAAD,CACInvB,MAAOnB,EAAQyE,gBACfy8B,YAAa5Q,EACT,qBACA,WAEJ/1B,KAAK,wBACLglC,SAAUpS,KAAKwa,mBACX,mBAEJj/B,QACIykB,KAAKK,MAAMytC,kBAEfpyB,eAAiBD,GACbA,EAAOznC,MAEXwnC,eAAiBC,GACbA,EAAOnD,YAEXiD,aAAW,MAIvB,kBAACzU,GAAA,EAAD,CAAKgK,GAAG,IAAIsK,GAAG,KACX,kBAAC3H,GAAA,EAAD,KACI,kBAACE,GAAA,EAAD,CAAOjzB,UAAU,sBACZyiB,EACG,6BACA,sBAGR,kBAAC,GAAD,CACInvB,MAAOnB,EAAQwE,YACf08B,YAAa5Q,EACT,qBACA,WAEJ/1B,KAAK,oBACLglC,SAAUpS,KAAKwa,mBACX,eAEJj/B,QAASykB,KAAKK,MAAMhxB,aACpBqsC,eAAiBD,GACbA,EAAOznC,MAEXwnC,eAAiBC,GACbA,EAAOznC,MAEXunC,aAAW,QAM/B,kBAACzU,GAAA,EAAD,CAAKgK,GAAG,IAAIsK,GAAG,IAAI16B,UAAU,sBACzB,kBAAC+yB,GAAA,EAAD,KACI,kBAAC4H,GAAA,EAAD,CACIC,OAAK,EACLnQ,MAAM,UACNzqB,UAAU,gBACV/R,KAAK,SACLw2B,QAASrd,IAAOA,EAAE0wC,iBAAkBx4B,KAAKssC,YACzCpnC,SAAUlF,KAAKK,MAAMpoB,oBAEpB+nB,KAAKK,MAAMpoB,mBACR,kBAAC,GAAD,MAEAkrB,EAAE,iBAAkB,WAKpC,kBAAC2D,GAAA,EAAD,CAAKsU,GAAG,KAAK16B,UAAU,sBACnB,kBAAC+yB,GAAA,EAAD,KASI,kBAAC,GAAD,CACIyoB,QAAM,EACNloD,MAAOnB,EAAQ2E,YACfk8B,UAAWvQ,EACP,yBACA,kBAEJgC,QAASnF,KAAK6tC,mBACV,iBAGR,kBAAC,GAAD,CACI3R,QAAM,EACNloD,MAAOnB,EAAQ4E,gBACfi8B,UAAWvQ,EACP,6BACA,sBAEJgC,QAASnF,KAAK6tC,mBACV,qBAGR,kBAAC,GAAD,CACI3R,QAAM,EACNloD,MAAOnB,EAAQ6E,SACfg8B,UAAWvQ,EACP,6BACA,iBAEJgC,QAASnF,KAAK6tC,mBACV,cAGR,kBAAC,GAAD,CACI3R,QAAM,EACNloD,MAAOnB,EAAQ8E,oBACf+7B,UAAWvQ,EACP,iCACA,oBAEJgC,QAASnF,KAAK6tC,mBACV,yBAGR,kBAAC,GAAD,CACI3R,QAAM,EACNloD,MAAOnB,EAAQ+E,WACf87B,UAAWvQ,EACP,+BACA,gBAEJgC,QAASnF,KAAK6tC,mBACV,gBAGR,kBAAC,GAAD,CACI3R,QAAM,EACNloD,MAAOnB,EAAQgF,YACf67B,UAAWvQ,EACP,yBACA,eAEJgC,QAASnF,KAAK6tC,mBACV,mBAKhB,kBAAC/mC,GAAA,EAAD,CAAKgK,GAAG,IAAIsK,GAAG,IAAI16B,UAAU,WACzB,kBAAC+yB,GAAA,EAAD,KACI,kBAAC4H,GAAA,EAAD,CACIQ,SAAO,EACPP,OAAK,EACLnQ,MAAM,UACNzqB,UAAU,gBACVykB,QAASnF,KAAKgb,SACd9V,SAAUlF,KAAKK,MAAM5rB,eAEpBurB,KAAKK,MAAM5rB,cACR,kBAAC,GAAD,MAEA0uB,EAAE,iBAAkB,oBAyEjDgG,oBACX1D,YAdqB93B,IACd,CACHkF,QAASlF,EAAM+qB,cAAc7lB,QAC7BiF,YAAanK,EAAM+qB,cAAc5gB,YACjCC,oBAAqBpK,EAAM+qB,cAAc3gB,oBACzCC,kBAAmBrK,EAAM+qB,cAAc1gB,kBACvCC,mBAAoBtK,EAAM+qB,cAAczgB,mBACxCxD,cAAe9G,EAAM+qB,cAAcjkB,cACnCpF,aAAc1B,EAAMmC,SAAST,aAC7By+D,kBAAmBngE,EAAMmC,SAASV,aAKb,CACrBkJ,gCCjXuC,CAACrM,EAAK+H,KAC1C,CACHrF,KxLgIJ,sCwL/HI1C,IAAKA,EACL+H,MAAOA,ID8WPuL,qBAFJkmB,CAGGC,aAAgB,SAAhBA,CAA0BkoC,M,OEtXjC,MAAMG,WAA4BtrC,IAAMC,UAAW,cAAD,yBAuC9CsrC,sBAAyB94D,GACd,kBAACi/C,GAAD,KAAiBj/C,GAxCkB,KA2I9C+4D,wBAA2Bz7D,IACvB,MAAM07D,EAAiB,GAEvB,IAAK17D,GAAwB,IAAhBA,EAAKgS,SAAiBhS,EAAK,GAAG27D,QACvC,OAAOD,EAGX,MAAMC,EAAU37D,EAAK,GAAG27D,QACxB,IAAK,IAAIpmD,EAAI,EAAGA,EAAIomD,EAAQ3pD,OAAQuD,IAAK,CACrC,MAAM+lC,EAAkBje,GACpBs+B,EAAQpmD,GAAGtU,QACbI,OrGpKmB,aqGqKf0oC,EAAS,CACX14B,UAAU,WAAD,OAAakE,EAAb,cACT/Y,KAAM8+C,EACN7R,QAAS,aACTD,MAAM,GAEVkyB,EAAetnC,KAAK2V,GAExB,OAAO2xB,GA/JmC,KAgL9CE,0BAA6Bx3D,MACpBopB,KAAKK,MAAMvoB,cAAgBkoB,KAAKK,MAAMvoB,YAAY0M,SAGhDhE,KAAE6tD,IAAIruC,KAAKK,MAAMvoB,YAAY,GAAIlB,GA5K5C6sB,SACI,MAAM,EAAEN,GAAMnD,KAAKK,MACnB,IAAInrB,EACJ,OAAI8qB,KAAKK,MAAMpoB,mBACJ,kBAAC,GAAD,CAAenM,QAASk0B,KAAKK,MAAMpoB,uBAClC+nB,KAAKK,MAAMvoB,cAYnB5C,EAVQ8qB,KAAKK,MAAMvoB,YAAY0M,OAUrBwb,KAAK8b,cATL9b,KAAKguC,sBACX,uBAAGttD,UAAU,mBACRyiB,EACG,qCACA,oEASZ,oCACI,kBAAC6G,GAAA,EAAD,CAAMtpB,UAAU,uBACZ,kBAACupB,GAAA,EAAD,CAAUvpB,UAAU,oCACfxL,MAWrB4mC,cACI,MAAM,EAAE3Y,GAAMnD,KAAKK,MACb7tB,EAAOwtB,KAAKK,MAAMvoB,YAyElBikC,EAAU,IAnEM,CAClB,CACIl4B,UAAW,KACX7U,KAAMm0B,EAAE,oBAAqB,MAC7B8Y,QAAS,cACTrI,QAAQ,GAEZ,CACI/vB,UAAW,MACX7U,KAAMm0B,EAAE,qBAAsB,OAC9B8Y,QAAS,cACTD,MAAM,GAEV,CACIn4B,UAAW,WACX7U,KAAMm0B,EAAE,yBAA0B,kBAClC8Y,QAAS,aACTD,MAAM,EAENpI,QAAS5T,KAAKouC,0BAA0B,aAE5C,CACIvqD,UAAW,eACX7U,KAAMm0B,EAAE,6BAA8B,sBACtC8Y,QAAS,aACTD,MAAM,EAENpI,QAAS5T,KAAKouC,0BAA0B,iBAE5C,CACIvqD,UAAW,OACX7U,KAAMm0B,EAAE,6BAA8B,iBACtC8Y,QAAS,mCACTC,cAAe,sBACfF,MAAM,EAENpI,QAAS5T,KAAKouC,0BAA0B,SAE5C,CACIvqD,UAAW,mBACX7U,KAAMm0B,EAAE,iCAAkC,oBAC1C8Y,QAAS,aACTD,MAAM,EAENpI,QAAS5T,KAAKouC,0BAA0B,qBAE5C,CACIvqD,UAAW,SACX7U,KAAMm0B,EAAE,+BAAgC,gBACxC8Y,QAAS,aACTD,MAAM,EAENpI,QAAS5T,KAAKouC,0BAA0B,WAE5C,CACIvqD,UAAW,UACX7U,KAAMm0B,EAAE,yBAA0B,eAClC8Y,QAAS,aACTD,MAAM,EACN2S,MAAO,QACPC,YAAa,QACbjS,UAAY+L,GAAYx/B,GAAyBrV,OAAO60C,GAExD9U,QAAS5T,KAAKouC,0BAA0B,gBAGzBpuC,KAAKiuC,wBAAwBz7D,IAGpD,OACI,kBAAC,KAAD,CACIuqC,YAAU,EACVC,UAAU,EACVf,QAAQ,sCACRiB,SAAS,KACT1qC,KAAMA,EACNupC,QAASA,EACTsB,iBACI,uBAAMnD,iBAAN,CACIpuC,QAASk0B,KAAKK,MAAMpoB,mBACpBpM,MAAOm0B,KAAKK,MAAMx0B,MAClBs3B,EAAGA,MA8BvB+W,iBAAiB7Z,GACb,IAAInrB,EAAUmrB,EAAM8C,EAChB,qCACA,kEAQJ,OANI9C,EAAMv0B,QACNoJ,EAAU,kBAAC,GAAD,MACHmrB,EAAMx0B,QACbqJ,EAAU,0BAAMwL,UAAU,eAAe2f,EAAMx0B,QAG5C,6BAAMqJ,IAoBNuwB,mBATU93B,IACd,CACHkF,QAASlF,EAAM+qB,cAAc7lB,QAC7BiF,YAAanK,EAAM+qB,cAAc5gB,YACjCG,mBAAoBtK,EAAM+qB,cAAczgB,mBACxCpM,MAAO8B,EAAM+qB,cAAc7sB,QAIpB45B,CACXC,aAAgB,SAAhBA,CAA0BqoC,KChN9B,MAAMO,WAAsB7rC,IAAMC,UAE9Be,SACI,OACI,oCACI,kBAAC,GAAD,MACA,yBAAK/iB,UAAU,QACX,kBAAC,GAAD,SAOL4tD,U,OC8Cf,SAASC,GAAgC17D,GACrC,MAAO,CACHF,SAAUE,EAAQF,SAAWiB,KAAOf,EAAQF,UAAUkB,OvG/DjB,WuG+D0D,GAC/FjB,OAAQC,EAAQD,OAASgB,KAAOf,EAAQD,QAAQiB,OvGhEX,WuGgEoD,IC1CjG,MAAM26D,WAA0B/rC,IAAMC,UAAW,cAAD,yBA+H5C4pC,SAAW,KDjIR,IAAyBz5D,ECkIpBmtB,KAAKK,MAAMtnB,kBAGfyI,MDrIwB3O,ECsIRmtB,KAAKK,MAAMxtB,QDrI/BiO,GAAMC,SEtBC,CACHpS,K7LmKgC,6B2L7I7Bob,KACFC,IlK0EsB,sBkK1ED,CAClB4qB,OAAQ25B,GAAgC17D,KAE3CoX,KAAK2U,IEtByB,IAAChmB,EAAUjG,EAAUC,EFwBhD,OADAkO,GAAMC,UEvBsBnI,EFuBWgmB,EAAKpsB,KEvBNG,EFuBYE,EAAQF,SEvBVC,EFuBoBC,EAAQD,OEtB7E,CACHjE,K7L8JkC,6B6L7JlCiK,WAAUjG,WAAUC,YFqBT,CAAC0tC,WAAW,KAEtBp2B,MAAMla,IACH,MAAMnC,EAAeoZ,GAAsBjX,GAG3C,OAFA8Q,GAAMC,SErBmB/Q,KAC1B,CACHrB,K7LwJ+B,0B6LvJ/B9C,MAAOmE,IFkBYqJ,CAAqBxL,IAE7B,CAACyyC,WAAW,EAAOzyC,mBCwHMoc,KAAMk8B,IACjCA,EAAO7F,WACR/+B,GACIye,KAAKK,MAAM8C,EACP,kCACA,2CACAgjB,EAAOt4C,aACXmyB,KAAKK,MAAM4H,SAASD,UACpB,OA5I4B,KAkJ5CgT,SAAW,KDlIR,IAAmCnoC,ECmI9BmtB,KAAKK,MAAM5rB,gBAGf+M,MDtIkC3O,ECuIRmtB,KAAKK,MAAMxtB,QDtIzCiO,GAAMC,SELC,CACHpS,K7LwIgC,6B2LnI7Bob,KACFC,IlKyDyB,6BkKzDD,CACrB4qB,OAAQ25B,GAAgC17D,KAE3CoX,KAAK2U,IACF,MAAMohB,EAAOb,GAAUvgB,EAAKpsB,KAAKi8D,aAE3BC,EAAY9vC,EAAKpsB,KAAKk8D,UERAx2D,MFY5B,OAHA2oC,KAAUC,OAAOd,EAAM0uB,GACvB5tD,GAAMC,SETP,CACHpS,K7LmIkC,6B6LlIlCuJ,WAAYA,IFSD,CAACooC,WAAW,KAEtBp2B,MAAMla,IACH,MAAMnC,EAAeoZ,GAAsBjX,GAG3C,OAFA8Q,GAAMC,SETmB/Q,KAC1B,CACHrB,K7L6H+B,0B6L5H/B9C,MAAOmE,IFMYyJ,CAAqB5L,IAE7B,CAACyyC,WAAW,EAAOzyC,mBCoHgBoc,KAAMk8B,IAC3CA,EAAO7F,WACR/+B,GACIye,KAAKK,MAAM8C,EACP,iCACA,6CACAgjB,EAAOt4C,aACXmyB,KAAKK,MAAM4H,SAASD,UACpB,OA/J4B,KAqK5C6lC,mBAAsBzgE,GAAU4G,IAC5BgsB,KAAKK,MAAM/mB,6BAA6BlM,EAAM4G,IAtKN,KAyK5CwmC,mBAAsBptC,GAAUqtC,IAC5Bza,KAAK6tC,mBAAmBzgE,EAAxB4yB,CAA8Bya,IA1KU,KA6K5Ck0B,+BAAkCl0B,IAC9Bza,KAAKK,MAAMuuC,uBAAuBn0B,IAnKtC5N,oBACQ7M,KAAKK,MAAMznB,UACXkzC,GACIxb,GACItQ,KAAKK,MAAMxnB,iBACXmnB,KAAKK,MAAMvnB,iBAM3Bo0B,mBAAmBC,GACXnN,KAAKK,MAAMznB,UAAYonB,KAAKK,MAAMznB,WAAau0B,EAAUv0B,UACzDkzC,GACIxb,GACItQ,KAAKK,MAAMxnB,iBACXmnB,KAAKK,MAAMvnB,iBAM3Bk0B,uBACI+e,KAGJtoB,SACI,MAAM,EAAEN,GAAMnD,KAAKK,MACbxtB,EAAUmtB,KAAKK,MAAMxtB,QAC3B,OACI,kBAACkmD,GAAA,EAAD,KACI,kBAAC/uB,GAAA,EAAD,CAAMtpB,UAAU,oBACZ,kBAACupB,GAAA,EAAD,KACI,kBAACpD,GAAA,EAAD,CAAKnmB,UAAU,yBACX,kBAAComB,GAAA,EAAD,CAAKgK,GAAG,IAAIsK,GAAG,KACX,kBAAC3H,GAAA,EAAD,KACI,kBAACE,GAAA,EAAD,CAAOjzB,UAAU,sBACZyiB,EAAE,0BAEP,kBAAC,KAAD,CACIvX,SAAU/Y,EAAQF,SAClBy/B,SAAUpS,KAAK6tC,mBACX,YAEJlyB,gBAAiBxY,EAAE,uBACnBspC,WxG3EC,YwG4EDC,qBAAmB,EACnBC,QACI95D,EAAQD,OACFgB,KAAOf,EAAQD,QAAQA,SACvB,IAAIse,KAEdxQ,UAAU,6BAItB,kBAAComB,GAAA,EAAD,CAAKgK,GAAG,IAAIsK,GAAG,KACX,kBAAC3H,GAAA,EAAD,KACI,kBAAC,KAAD,CACI7nB,SAAU/Y,EAAQD,OAClBw/B,SAAUpS,KAAK6tC,mBAAmB,UAClClyB,gBAAiBxY,EAAE,qBACnBspC,WxG5FC,YwG6FDC,qBAAmB,EACnB9wB,QACI/oC,EAAQF,UACRiB,KAAOf,EAAQF,UAAUC,SAE7B+5D,QAAS,IAAIz7C,KACbxQ,UAAU,6BAItB,kBAAComB,GAAA,EAAD,CAAKgK,GAAG,IAAIsK,GAAG,KACX,kBAAC3H,GAAA,EAAD,KACI,kBAAC4H,GAAA,EAAD,CACIC,OAAK,EACLnQ,MAAM,UACNzqB,UAAU,gBACV/R,KAAK,SACLw2B,QAASrd,IAAOA,EAAE0wC,iBAAkBx4B,KAAKssC,YACzCpnC,SAAUlF,KAAKK,MAAMtnB,iBAEpBinB,KAAKK,MAAMtnB,gBACR,kBAAC,GAAD,MAEIoqB,EAAE,qBAKtB,kBAAC2D,GAAA,EAAD,CAAKgK,GAAG,KAAKsK,GAAG,KACZ,kBAAC3H,GAAA,EAAD,KACI,kBAAC4H,GAAA,EAAD,CACIQ,SAAO,EACPP,OAAK,EACLnQ,MAAM,UACNzqB,UAAU,gBACVykB,QAASnF,KAAKgb,SACd9V,SAAUlF,KAAKK,MAAM5rB,eAEpBurB,KAAKK,MAAM5rB,cACR,kBAAC,GAAD,MAEI0uB,EAAE,0BA+DlD,MAWM6jB,GAAe,CACjB1tC,6BClMwC,CAACrN,EAAK+H,KACvC,CACHrF,K7LoJJ,mC6LnJI1C,IAAKA,EACL+H,MAAOA,KDiMAm1B,oBACX1D,YAhBqB93B,IACd,CACHkF,QAASlF,EAAMgrB,WAAW9lB,QAC1B+F,SAAUjL,EAAMgrB,WAAW/f,SAC3BC,iBAAkBlL,EAAMgrB,WAAW9f,iBACnCC,eAAgBnL,EAAMgrB,WAAW7f,eACjCC,gBAAiBpL,EAAMgrB,WAAW5f,gBAClCtE,cAAe9G,EAAMgrB,WAAWlkB,gBAWhCuyC,GAFJvhB,CAGEC,aAAgB,SAAhBA,CAA0B8oC,M,OE/MhC,MAAMK,WAAwBpsC,IAAMC,UAAW,cAAD,yBA2B1CsrC,sBAAyB94D,GACd,kBAACi/C,GAAD,KAAiBj/C,GApB5BuuB,SACI,IAAIvuB,EACJ,OAAI8qB,KAAKK,MAAMtnB,gBACJ,kBAAC,GAAD,QACCinB,KAAKK,MAAMznB,WAGnB1D,EAAU8qB,KAAK8b,cAIf,oCACI,kBAAC9R,GAAA,EAAD,CAAMtpB,UAAU,oBACZ,kBAACupB,GAAA,EAAD,CAAUvpB,UAAU,OAAOxL,MAU3C4mC,cACI,MAAM,EAAE3Y,GAAMnD,KAAKK,MACb7tB,EAAOwtB,KAAKK,MAAMznB,SAMlBmjC,EAAU,CACZ,CACIl4B,UAAW,KACX7U,KAAMm0B,EAAE,oBAAqB,MAC7B8Y,QAAS,cACTrI,QAAQ,GAEZ,CACI/vB,UAAW,MACX7U,KAAMm0B,EAAE,qBAAsB,OAC9B8Y,QAAS,cACTD,MAAM,GAEV,CACIn4B,UAAW,OACX7U,KAAMm0B,EAAE,6BAA8B,WACtC8Y,QAAS,aACTD,MAAM,GAEV,CACIn4B,UAAW,eACX7U,KAAMm0B,EAAE,6BAA8B,sBACtC8Y,QAAS,aACTD,MAAM,GAEV,CACIn4B,UAAW,SACX7U,KAAMm0B,EAAE,wBAAyB,gBACjC8Y,QAAS,cACTD,MAAM,GAEV,CACIn4B,UAAW,SACX7U,KAAMm0B,EAAE,wBAAyB,QACjC8Y,QAAS,aACTD,MAAM,GAEV,CACIn4B,UAAW,iBACX7U,KAAMm0B,EAAE,0BAA2B,qBACnC8Y,QAAS,aACTD,MAAM,GAEV,CACIn4B,UAAW,eACX7U,KAAMm0B,EAAE,6BAA8B,eACtC8Y,QAAS,aACTD,MAAM,IAGd,OACI,kBAAC,KAAD,CACIe,YAAU,EACVC,UAAU,EACVf,QAAQ,oCACRiB,SAAS,KACT1qC,KAAMA,EACNupC,QAASA,EACTsB,iBACI,uBAAMnD,iBAAN,CACIpuC,QAASk0B,KAAKK,MAAMtnB,gBACpBlN,MAAOm0B,KAAKK,MAAMx0B,MAClBs3B,EAAGA,MAOvB+W,iBAAiB7Z,GACb,IAAInrB,EAAUmrB,EAAM8C,EAChB,2CACA,kEAQJ,OANI9C,EAAMv0B,QACNoJ,EAAU,kBAAC,GAAD,MACHmrB,EAAMx0B,QACbqJ,EAAU,0BAAMwL,UAAU,eAAe2f,EAAMx0B,QAG5C,6BAAMqJ,IAaNuwB,mBATU93B,IACd,CACHkF,QAASlF,EAAMgrB,WAAW9lB,QAC1B+F,SAAUjL,EAAMgrB,WAAW/f,SAC3BG,gBAAiBpL,EAAMgrB,WAAW5f,gBAClClN,MAAO8B,EAAMgrB,WAAW9sB,QAIjB45B,CACXC,aAAgB,SAAhBA,CAA0BmpC,KChJ9B,MAAMC,WAAmBrsC,IAAMC,UAE3Be,SACI,OACI,oCACI,kBAAC,GAAD,MACA,yBAAK/iB,UAAU,QACX,kBAAC,GAAD,SAOLouD,UCnBR,MAAMC,GAAmB,CAC5BC,OAAQ,SACRC,WAAY,aACZC,QAAS,WAGAC,GAAsB,CAC/B,CAACJ,GAAiBG,SAAU,CACxB7/B,YAAa,OACbC,WAAY,QAEhB,CAACy/B,GAAiBE,YAAa,CAC3B5/B,YAAa,QACbC,WAAY,WAEhB,CAACy/B,GAAiBC,QAAS,CACvB3/B,YAAa,UACbC,WAAY,YAIb,SAAS8/B,GAAsB5/B,GAAiC,IAApBC,EAAmB,wDAClE,MAAMC,EAAYD,EAAY,aAAe,cAC7C,OACIs/B,GAAiBv/B,IACjB2/B,GAAoB3/B,GAAaE,GCPzC,MAAM2/B,WAAkB5sC,IAAMC,UAC1BmK,oB7CiEA/rB,GAAMC,SDJC,CACHpS,KnJ2G6B,0BoJvG1Bob,KACFC,I3HvDgB,uB2HwDhBC,KAAM2U,IACH9d,GAAMC,SDFP,CACHpS,KnJsG+B,0BmJrG/B0L,UCAyCukB,EAAKpsB,SAE7C0X,MAAOla,IACJ8Q,GAAMC,SDCiB/Q,KACxB,CACHrB,KnJgG4B,uBmJ/F5B9C,MAAOmE,ICJY2L,CAAmB3L,M6CpE1CyzB,SACI,MAAM,EAAEN,GAAMnD,KAAKK,MACnB,OACI,kBAAC2J,GAAA,EAAD,CAAMtpB,UAAU,cACZ,kBAACqwB,GAAA,EAAD,CAAYrwB,UAAU,6BAClB,0BAAMA,UAAU,WACXyiB,EAAE,kBAAmB,sBAG9B,kBAAC8G,GAAA,EAAD,CAAUvpB,UAAU,QAAQsf,KAAK8b,gBAK7CA,cACI,MAAM,EAAE3Y,GAAMnD,KAAKK,MACnB,GAAIL,KAAKK,MAAM/lB,iBACX,OAAO,kBAAC,GAAD,MAGX,MAEMyhC,EAAU,CACZ,CACIl4B,UAAW,SACXo4B,QAAS,UACTjtC,KAAMm0B,EAAE,mBAAoB,kBAC5B6Y,MAAM,EACNW,UAAW,CAACD,EAAM/lC,IACd,kBAAC,GAAD,CACIvJ,KAAMsvC,EACNiE,IAAKhqC,EAAI24D,KAAO34D,EAAI24D,KAAO34D,EAAIgqC,IAC/Bxb,QAAS,UAIrB,CACIthB,UAAW,SACX7U,KAAMm0B,EAAE,mBAAoB,WAC5B6Y,MAAM,EACNW,UAAYpV,GACR,kBAAC,GAAD,CACIpZ,OAAQoZ,EAAI5uB,MACZhK,KAAMygE,GAAsB7nC,EAAIvzB,UAI5C,CACI6P,UAAW,aACX7U,KAAMm0B,EAAE,sBAAuB,YAC/B6Y,MAAM,EACNW,UAAW5V,GAAcA,EAAanzB,KAAOmzB,EA/BjB,cA+B0DlzB,O7GjE3E,c6GiEiG,GAC5GgpC,UAAW9V,GAAcnzB,KAAOmzB,EAhCJ,eAkChC,CACIljB,UAAW,cACX7U,KAAMm0B,EAAE,8BAA+B,uBACvC6Y,MAAM,EACNW,UAAW4yB,GAAeA,EAAc37D,KAAO27D,EAtCnB,cAsC6D17D,O7GxE9E,c6GwEoG,GAC/GgpC,UAAW0yB,GAAe37D,KAAO27D,EAvCL,eAyChC,CACI1rD,UAAW,iBACX7U,KAAMm0B,EAAE,0BAA2B,wBACnC6Y,MAAM,EACNW,UAAWoe,GAAkBA,EAAiBnnD,KAAOmnD,EA7CzB,cA6CsElnD,O7G/EvF,c6G+E6G,GACxHgpC,UAAWke,GAAkBnnD,KAAOmnD,EA9CR,gBAkDpC,OACI,kBAAC,KAAD,CACIhe,YAAU,EACVC,UAAU,EACVf,QAAQ,4BACRiB,SAAS,KACT1qC,KAAMwtB,KAAKK,MAAMhmB,UACjB0hC,QAASA,EACTsB,iBACI,kBAAC,GAAUnD,iBAAX,CACIpuC,QAASk0B,KAAKK,MAAM/lB,iBACpB6oB,EAAGA,MAOA,wBAAC9C,GACpB,IAAInrB,EAAUmrB,EAAM8C,EAAE,iCAAkC,iCAKxD,OAJI9C,EAAMv0B,UACNoJ,EAAU,kBAAC,GAAD,OAGP,yBAAKwL,UAAU,eAAexL,IAW9BuwB,IChIX,GAAO,GAAO,GDgIHA,eAPU93B,IACd,CACH0M,UAAW1M,EAAMoN,QAAQV,UACzBC,iBAAkB3M,EAAMoN,QAAQT,mBAIzBmrB,CAAyBC,aAAgB,SAAhBA,CAA0B2pC,KC9HlE,SAAS,KAA2Q,OAA9P,GAAW9vC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAI1X,EAAI,EAAGA,EAAI2X,UAAUlb,OAAQuD,IAAK,CAAE,IAAI4X,EAASD,UAAU3X,GAAI,IAAK,IAAI9b,KAAO0zB,EAAcJ,OAAOK,UAAUC,eAAeC,KAAKH,EAAQ1zB,KAAQwzB,EAAOxzB,GAAO0zB,EAAO1zB,IAAY,OAAOwzB,IAA2BM,MAAMC,KAAMN,WAIhT,MAAM8vC,GAAWtvC,IACf,IAAI,OACFC,EAAM,MACNC,KACGC,GACDH,EACJ,OAAoB,IAAMI,cAAc,MAAO,GAAS,CACtDC,MAAO,GACPC,OAAQ,GACRC,QAAS,YACTC,KAAM,OACNC,IAAKR,GACJE,GAAQD,EAAqB,IAAME,cAAc,QAAS,KAAMF,GAAS,KAAM,KAAU,GAAqB,IAAME,cAAc,OAAQ,CAC3IC,MAAO,GACPC,OAAQ,GACR8I,GAAI,EACJ5I,KAAM,aACH,KAAU,GAAqB,IAAMJ,cAAc,OAAQ,CAC9DS,EAAG,mCACH2I,OAAQ,QACRC,YAAa,IACbC,cAAe,WACZ,KAAW,GAAsB,IAAMtJ,cAAc,OAAQ,CAChES,EAAG,mCACH2I,OAAQ,QACRC,YAAa,IACbC,cAAe,aAIb,GAA0B,IAAM3I,WAAW,CAACZ,EAAOM,IAAqB,IAAML,cAAckvC,GAAU,GAAS,CACnHrvC,OAAQQ,GACPN,KACY,I,qBChBA8I,qBAff,YAAqC,IAAd,QAAE3C,GAAW,EAChC,OACI,yBACI9lB,UAAU,kCACVykB,QAAUrd,IACNA,EAAE0wC,iBACFhyB,EAAQI,KAAKhN,GAAKC,UAGtB,kBAAC,GAAD,CAAMnZ,UAAU,eAChB,uBAAGA,UAAU,cAAb,yBCZZ,SAAS+uD,GAAqBpvC,GAC1B,OACI,6BAAS3f,UAAU,wBACf,wBAAIA,UAAU,uBAAd,uBACA,uBAAGA,UAAU,eAAb,sBACA,wTACA,mLACA,2JACA,2WAEA,uBAAGA,UAAU,eAAb,gEACA,qLACA,uUACA,gUACA,yLAEA,uBAAGA,UAAU,eAAb,8CACA,wHACA,4DACA,yDACA,qDACA,sDACA,qDACA,2DACA,2DACA,kKACA,oKACA,qJACA,qOACA,wIACA,wVACA,+DACA,uMACA,0KACA,wIACA,4bACA,qUACA,uKAEA,uBAAGA,UAAU,eAAb,+BACA,4HACA,6HACA,mHACA,8MACA,uJACA,qIAEA,uBAAGA,UAAU,eAAb,uBACA,8dACA,wNA0BGyoB,qBArBf,SAAuB9I,GACnB,OACI,kBAACqvC,GAAA,EAAD,CAAWhvD,UAAU,gBACjB,kBAACmmB,GAAA,EAAD,CAAKnmB,UAAU,sCACX,kBAAComB,GAAA,EAAD,KACI,kBAACkD,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,CAAUvpB,UAAU,eAAekI,MAAO,CAAE,WAAc,SACtD,kBAAC,GAAD,MACA,kBAACie,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,KACI,kBAAC2oC,GAAD,gBC5DpC,SAASE,GAAoBtvC,GA+BzB,OACI,6BAAS3f,UAAU,wBACf,wBAAIA,UAAU,uBAAd,eACA,yCACA,wOAEA,uBAAGA,UAAU,eAAb,kCACA,kBAAC,KAAD,CACIq8B,YAAU,EACVC,UAAU,EACVf,QAAQ,gBACRiB,SAAS,OACT1qC,KA1CI,CACZ,CACIpF,KAAM,iBACNkrC,YAAa,wLAEjB,CACIlrC,KAAM,wBACNkrC,YAAa,wLAEjB,CACIlrC,KAAM,YACNkrC,YAAa,yEAEjB,CACIlrC,KAAM,YACNkrC,YAAa,yGA4BTyD,QAxBI,CACZ,CACIl4B,UAAW,OACX7U,KAAM,QAEV,CACI6U,UAAW,cACX7U,KAAM,iBA4CHm6B,ICjFX,GDiFWA,iBArBf,SAAsB9I,GAClB,OACI,kBAACqvC,GAAA,EAAD,CAAWhvD,UAAU,gBACjB,kBAACmmB,GAAA,EAAD,CAAKnmB,UAAU,sCACX,kBAAComB,GAAA,EAAD,KACI,kBAACkD,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,CAAUvpB,UAAU,eAAekI,MAAO,CAAE,WAAc,SACtD,kBAAC,GAAD,MACA,kBAACie,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,KACI,kBAAC6oC,GAAD,gB,UCpEpC,SAAS,KAA2Q,OAA9P,GAAWpwC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAI1X,EAAI,EAAGA,EAAI2X,UAAUlb,OAAQuD,IAAK,CAAE,IAAI4X,EAASD,UAAU3X,GAAI,IAAK,IAAI9b,KAAO0zB,EAAcJ,OAAOK,UAAUC,eAAeC,KAAKH,EAAQ1zB,KAAQwzB,EAAOxzB,GAAO0zB,EAAO1zB,IAAY,OAAOwzB,IAA2BM,MAAMC,KAAMN,WAIhT,MAAMkwC,GAAe1vC,IACnB,IAAI,OACFC,EAAM,MACNC,KACGC,GACDH,EACJ,OAAoB,IAAMI,cAAc,MAAO,GAAS,CACtDC,MAAO,GACPC,OAAQ,GACRC,QAAS,YACTC,KAAM,OACNC,IAAKR,GACJE,GAAQD,EAAqB,IAAME,cAAc,QAAS,KAAMF,GAAS,KAAM,KAAU,GAAqB,IAAME,cAAc,OAAQ,CAC3IS,EAAG,8EACH2I,OAAQ,UACRC,YAAa,EACbC,cAAe,aAIb,GAA0B,IAAM3I,WAAW,CAACZ,EAAOM,IAAqB,IAAML,cAAcsvC,GAAc,GAAS,CACvHzvC,OAAQQ,GACPN,KACY,IC7BX,GD6BW,IC3Bf,SAAS,KAA2Q,OAA9P,GAAWd,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAI1X,EAAI,EAAGA,EAAI2X,UAAUlb,OAAQuD,IAAK,CAAE,IAAI4X,EAASD,UAAU3X,GAAI,IAAK,IAAI9b,KAAO0zB,EAAcJ,OAAOK,UAAUC,eAAeC,KAAKH,EAAQ1zB,KAAQwzB,EAAOxzB,GAAO0zB,EAAO1zB,IAAY,OAAOwzB,IAA2BM,MAAMC,KAAMN,WAIhT,MAAMmwC,GAAgB3vC,IACpB,IAAI,OACFC,EAAM,MACNC,KACGC,GACDH,EACJ,OAAoB,IAAMI,cAAc,MAAO,GAAS,CACtDC,MAAO,GACPC,OAAQ,GACRC,QAAS,YACTC,KAAM,OACNC,IAAKR,GACJE,GAAQD,EAAqB,IAAME,cAAc,QAAS,KAAMF,GAAS,KAAM,KAAU,GAAqB,IAAME,cAAc,OAAQ,CAC3IS,EAAG,4EACH2I,OAAQ,UACRC,YAAa,EACbC,cAAe,aAIb,GAA0B,IAAM3I,WAAW,CAACZ,EAAOM,IAAqB,IAAML,cAAcuvC,GAAe,GAAS,CACxH1vC,OAAQQ,GACPN,KACY,I,OCVf,MAAMyvC,WAAyBrtC,IAAMC,UAAW,cAAD,yBAuF3CqtC,kBAAoB,KAChB,MAAMC,EAAYhwC,KAAKK,MAAMnc,UAAY,EACnCkH,EAAc4U,KAAKK,MAAMrc,KACzBC,EAAc+b,KAAKK,MAAMpc,aAAe+rD,EAI9C,OADkB,IAAdA,EAAkB,EAAI,EAAI/rD,GAAemH,EAAc,IA7FpB,KAiG3C6kD,iBAAmB,KACf,MAAMD,EAAYhwC,KAAKK,MAAMnc,UAAY,EACnCkH,EAAc4U,KAAKK,MAAMrc,KACzBC,EAAc+b,KAAKK,MAAMpc,aAAe+rD,EAG9C,OADyB3lD,KAAK0kC,IAAI3jC,EAAcnH,EAAa+rD,IAtGtB,KA0G3CE,mBAAqB,KACjB,MAAMjsD,EAAc+b,KAAKK,MAAMpc,YAC/B,IAAK,MAAMw3B,KAAUzb,KAAKK,MAAMlc,gBAC5B,GAAIF,IAAgBw3B,EAAOznC,MACvB,OAAOynC,EAAOzsC,KAItB,OAAOgxB,KAAKK,MAAM8vC,wBAA0BlsD,GAlHL,KAqH3CmsD,mBAAqB,IACVpwC,KAAKK,MAAMrc,MAAQ,EAtHa,KAyH3CqsD,mBAAqB,IAEc,IAA3BrwC,KAAKK,MAAMpc,aACX+b,KAAKK,MAAMnc,UAAY8b,KAAKK,MAAMrc,KAAOgc,KAAKK,MAAMpc,YA5HjB,KAgI3CqsD,WAAa,KACTtwC,KAAKK,MAAMkwC,aAAavwC,KAAKK,MAAMrc,KAAO,EAAGgc,KAAKK,MAAMpc,cAjIjB,KAoI3CusD,WAAa,KACTxwC,KAAKK,MAAMkwC,aAAavwC,KAAKK,MAAMrc,KAAO,EAAGgc,KAAKK,MAAMpc,cArIjB,KAwI3CwsD,oBAAuBC,IACnB,MAAMC,EAAiBD,EAAY18D,MACnC,GAAuB,IAAnB28D,EACA3wC,KAAKK,MAAMowC,oBAAoBE,EAAgB,OAC5C,CACH,MAAMC,EAAuB5wC,KAAK+vC,oBAC5Bc,EAAUxmD,KAAKymD,IACjB,EACAzmD,KAAKC,KAAKsmD,EAAuBD,IAErC3wC,KAAKK,MAAMowC,oBAAoBC,EAAY18D,MAAO68D,KAvI1DptC,SACI,OACI,kBAACoD,GAAA,EAAD,CAAKnmB,UAAU,2BACX,kBAAComB,GAAA,EAAD,CAAKpmB,UAAU,mBACVsf,KAAK+wC,yBAEV,kBAACjqC,GAAA,EAAD,CAAKpmB,UAAU,iBAAiBsf,KAAKgxC,gBACrC,kBAAClqC,GAAA,EAAD,CAAKpmB,UAAU,iBACX,kBAAC26B,GAAA,EAAD,CACIlQ,MAAM,OACNzqB,UAAU,gCACVykB,QAASnF,KAAKswC,WACdprC,SAAUlF,KAAKowC,sBAEf,kBAAC,GAAD,CAAU1vD,UAAU,4BAExB,kBAAC26B,GAAA,EAAD,CACIlQ,MAAM,OACNzqB,UAAU,gCACVykB,QAASnF,KAAKwwC,WACdtrC,SAAUlF,KAAKqwC,sBAEf,kBAAC,GAAD,CAAW3vD,UAAU,8BAOzCswD,eACI,MAAMhB,EAAYhwC,KAAKK,MAAMnc,UAAY,EACnC+sD,EAAoBjxC,KAAK+vC,oBACzBmB,EAAmBlxC,KAAKiwC,mBAE9B,OACI,0BAAMvvD,UAAU,yBAAhB,UACQuwD,EADR,YAC6BC,EAD7B,eACoDlB,IAK5De,wBACI,MAAMI,EACF,kBAACC,GAAA,EAAD,CAAsB1wD,UAAU,0BAC5B,kBAACsjB,GAAA,EAAD,CACIqtC,OAAK,EACLptC,IAAI,OACJvjB,UAAU,qCAETsf,KAAKkwC,sBAEV,kBAAC9rC,GAAA,EAAD,KACKpE,KAAKK,MAAMlc,gBAAgB7O,IAAI,CAACmmC,EAAQlR,IACrC,kBAACtF,GAAA,EAAD,CACIh5B,IAAKs+B,EACLtG,IAAI,OACJvjB,UAAU,aACVykB,QAAS,IAAMnF,KAAKywC,oBAAoBh1B,IAEvCA,EAAOzsC,SAO5B,OACI,oCACI,0BAAM0R,UAAU,8BACXsf,KAAKK,MAAM8C,EAAE,eADlB,KAGA,yBAAKziB,UAAU,eAAeywD,KAqE/BzrC,sBAAkBoqC,I,OCpKlB,SAASwB,GAAT,GAA4D,IAA7B,QAAEC,EAAF,cAAWC,GAAiB,EAEtE,OAAIA,EACO,kBAAC,GAAD,CAAUx9D,MAAOw9D,EAAersC,QAAS,IAAe,KAASzkB,UAAU,uCAG/E,kBAAC,GAAD,CAAU1M,MAAOu9D,EAASpsC,QAAS,MAAeosC,EAA2B7wD,UAAU,SC4NlG,MAAM+wD,GAA+B7tD,IACjC,MAAM,MAACE,EAAD,UAAQD,GAAaD,EAY3B,MAAM,GAAN,OAXqB,CACjB8tD,IAAK,GACLC,KAAM,KASa7tD,IAAvB,OAPqB,CACjB,cAAe,eACf,aAAgB,eAChB,WAAc,aACd,aAAgB,gBAGyBD,IAAcA,IA0C/D,MAAM+tD,GAAkC/+D,IACpC,MAAMg/D,EAA4B,CAACj9B,EAAQk9B,EAAgB99D,KAChD,IACA4gC,EACH,CAACk9B,GAAiB99D,IAG1B,IAAI4gC,EAAS,GACb,GAAI/hC,EAAQyQ,OAAQ,CAEhBsxB,EAASi9B,EAA0Bj9B,EAAQ,SAD7B/hC,EAAQyQ,OAAOtP,OAGjC,GAAInB,EAAQF,SAAU,CAElBiiC,EAASi9B,EAA0Bj9B,EAAQ,eAD7BhhC,KAAOf,EAAQF,UAAUkB,OAAO,YAGlD,GAAIhB,EAAQD,OAAQ,CAEhBgiC,EAASi9B,EAA0Bj9B,EAAQ,aAD7BhhC,KAAOf,EAAQD,QAAQiB,OAAO,YAGhD,GAAIhB,EAAQkjB,UAAW,CACnB,MAAMg8C,EAAgBl/D,EAAQkjB,UAAU/hB,MACxC,IAAIyoC,EACwBA,GAAN,IAAlBs1B,EAAsC,QACf,IAAlBA,EAAuC,QAC7B,MACnBn9B,EAASi9B,EAA0Bj9B,EAAQ,YAAa6H,GAG5D,OAAO7H,GAGI,QAEXo9B,kBA9SG,SAA2Bx+D,GAC9B,IAAI+0B,EAMJ,OAJIA,EADA3T,KACOgF,GAAK+C,2BAEL/C,GAAKe,uBAET4N,EAAK1e,Q5JxBc,Y4JwBUrW,IAwSpCy+D,eArSG,WACH,OAAIr9C,KACOgF,GAAK8C,wBAEL9C,GAAKc,qBAkShBw3C,iBA9RG,SAA0Br/D,EAAS+Q,EAASG,GAAgC,IAApB+wB,EAAmB,uDAAN,KACxEh0B,GAAMC,SAASuW,GAAQC,kBACvB,MAAMqd,EAAS,CACXu9B,SAAUV,GAA4B7tD,GACtCI,KAAMD,EAAWC,KACjBouD,UAAWruD,EAAWE,eACnB2tD,GAA+B/+D,IAEtC,OAAOkX,KACFC,IAAI,kBAAmB,CAAC4qB,WACxB3qB,KAAM2U,IACH,MAAM,KAACpsB,GAAQosB,EACT1I,EAAO1jB,EAAK6/D,QACZnuD,EAAW1R,EAAKm1B,MAMtB,OAJA7mB,GAAMC,SACFuW,GAAQE,iBAAiBtB,EAAMhS,EAAUrR,IAGtC,CAAEytC,WAAW,EAAMpqB,UAE7BhM,MAAOla,IACJ,MAAMnC,EAAeoZ,GAAsBjX,GAc3C,OAbA8Q,GAAMC,SAASuW,GAAQG,cAAc5pB,IAEjCinC,IACAtzB,KACAD,GACI,kBAAC4G,GAAA,EAAD,CAAOC,QAAQ,yCAAf,uCACsC,CAAEva,iBAExCinC,GACA,IAID,CAAEwL,WAAW,EAAOzyC,mBA2PnCykE,aAvPG,SAAsB9+D,GAAwB,IAApBshC,EAAmB,uDAAN,KAE1C,OAAO/qB,KACFC,IADE,yBACoBxW,EADpB,MAEFyW,KAAM2U,IACI,CAAE0hB,WAAW,EAAMhsC,QAASsqB,EAAKpsB,QAE3C0X,MAAOla,IACJ,MAAMnC,EAAeoZ,GAAsBjX,GAa3C,OAXI8kC,IACAtzB,KACAD,GACI,kBAAC4G,GAAA,EAAD,CAAOC,QAAQ,yCAAf,uCACsC,CAAEva,iBAExCinC,GACA,IAID,CAAEwL,WAAW,EAAOzyC,mBAmOnC0kE,mBA/NG,SAA4B1nD,GAAyB,IAApBiqB,EAAmB,uDAAN,KACjD,MAAM2b,EAAO,CACT5lC,OAEJ,OAAOd,KACF2U,KAAK,+BAAgC+xB,GAAMxmC,KAAM2U,IACvC,CAAE0hB,WAAW,EAAMpqB,KAAM0I,EAAKpsB,QAExC0X,MAAOla,IAAS,IAAD,IACZ,IAAInC,EAAc2kE,EAElB,GAD2D,OAAvB,OAAHxiE,QAAG,IAAHA,GAAA,UAAAA,EAAKqX,gBAAL,eAAe8G,SAAkByxB,MAAMkL,QAAN,OAAc96C,QAAd,IAAcA,GAAd,UAAcA,EAAKqX,gBAAnB,aAAc,EAAe7U,MACjE,CAC1B,MAAM04C,EAAoBr/C,IACV,OAALA,QAAK,IAALA,OAAA,EAAAA,EAAO0b,OAAQ,mCAEpBK,EAAU,kBAACO,GAAA,EAAD,CAAOC,QAAQ,2CAAf,gDAChBva,EAAe6Z,GAAoB1X,EAAIqX,SAAS7U,KAAM04C,EAAkBtjC,GACxE4qD,EAAe3kE,OAEfA,EAAeoZ,GAAsBjX,GACjCwiE,EACA,kBAACrqD,GAAA,EAAD,CAAOC,QAAQ,2CAAf,iDACgD,CAAEva,iBAa1D,OAVIinC,IACAtzB,KAEAD,GACIixD,EACA19B,GACA,IAID,CAAEwL,WAAW,EAAOzyC,mBA6LnC4kE,cAzLG,SAAuBj/D,GAAwB,IAApBshC,EAAmB,uDAAN,KAC3C,OAAO/qB,KACF8vB,OADE,gCAC8BrmC,EAD9B,MAEFyW,KAAM2U,IACI,CAAE0hB,WAAW,EAAMpqB,KAAM0I,EAAKpsB,QAExC0X,MAAOla,IACJ,MAAMnC,EAAeoZ,GAAsBjX,GAa3C,OAXI8kC,IACAtzB,KACAD,GACI,kBAAC4G,GAAA,EAAD,CAAOC,QAAQ,0CAAf,yCACwC,CAAEva,iBAE1CinC,GACA,IAID,CAAEwL,WAAW,EAAOzyC,mBAsKnCm9C,WAlKG,SAAoBvsC,EAAMjL,EAAIk/D,EAAaC,GAA+B,IACzE5sC,EADqD+O,EAAmB,uDAAN,KAElE4V,EAAW,IAAIC,SAYnB,OAXAD,EAASE,OAAO,OAAQnsC,GACxBisC,EAASE,OAAO,OAAQnsC,EAAKrR,MACzBoG,EACAuyB,EAAQ,gCAA4BvyB,EAA5B,MAERuyB,EAAW,yBAEX2kB,EAASE,OAAO,eAAgBh3C,KAAO8+D,GAAat7D,QAAQ,SAASvD,OAAO,eAC5E62C,EAASE,OAAO,aAAch3C,KAAO++D,GAAWv7D,QAAQ,SAASvD,OAAO,gBAGrEkW,KACF2U,KAAKqH,EAAU2kB,GACfzgC,KAAM2U,IACI,CAAE0hB,WAAW,EAAMtjC,WAAY4hB,EAAKpsB,KAAM3E,kBAAcorB,KAElE/O,MAAOla,IAAS,IAAD,IACZ,IAAInC,EAAc2kE,EAGlB,GAA8B,OAAvB,OAAHxiE,QAAG,IAAHA,GAAA,UAAAA,EAAKqX,gBAAL,eAAe8G,SAAkByxB,MAAMkL,QAAN,OAAc96C,QAAd,IAAcA,GAAd,UAAcA,EAAKqX,gBAAnB,aAAc,EAAe7U,MAAO,CACrE,MAAM04C,EAAoBr/C,IACV,OAALA,QAAK,IAALA,OAAA,EAAAA,EAAO0b,OAAQ,mCAEpBK,EAAU,kBAACO,GAAA,EAAD,CAAOC,QAAQ,0CAAf,+CAChBva,EAAe6Z,GAAoB1X,EAAIqX,SAAS7U,KAAM04C,EAAkBtjC,GACxE4qD,EAAe3kE,OAEfA,EAAeoZ,GAAsBjX,GACrCwiE,EACI,kBAACrqD,GAAA,EAAD,CAAOC,QAAQ,sCAAf,+CAC8C,CAAEva,iBAcxD,OATIinC,IACAtzB,KACAD,GACIixD,EACA19B,GACA,IAID,CAAEwL,WAAW,EAAOzyC,eAAcmP,gBAAYic,MAmH7D25C,gBA/GG,SAAyBp/D,GAC5B,MAAMmtC,EAAG,gCAA4BntC,EAA5B,KACT,OAAOuW,KACFC,IAAI22B,GACJ12B,KAAM2U,IACH,MAAM,SAACgiB,EAAD,OAAWiyB,GAAUj0C,EAAKpsB,KAEhC,OzF1ML,SAA4BqgE,EAAQjyB,GACzCC,KAAUC,OAAO3B,GAAU0zB,GAASjyB,GyFwM1BkyB,CAAmBD,EAAQjyB,GACpB,CAAEN,WAAW,KAEvBp2B,MAAOla,IACJ,MAAMnC,EAAeoZ,GAAsBjX,GAC3C,MAAMma,MAAMtc,MAsGpBklE,mBAhEJ,SAA4B1yC,GACxB,MAAM,QAAC/rB,EAAD,YAAU0+D,GAAe3yC,EAC/B,IAAI1xB,EAAMgK,EACV,OAAI,OAACrE,QAAD,IAACA,OAAD,EAACA,EAASd,KACe,OAAzBc,EAAQ2+D,cACRtkE,EAAO8/B,GACP91B,EAAQ,kBAACwP,GAAA,EAAD,CAAOC,QAAQ,qCAAf,iBAERzZ,EAAO8/B,GACP91B,EAAQ,kBAACwP,GAAA,EAAD,CAAOC,QAAQ,mCAAf,eAGR,kBAAC,GAAD,CACIQ,MAAOoqD,EACP7kD,OAAQxV,EACRhK,KAAMA,EACN+R,UAAU,iBAbO,MA8DzBwyD,0BAnFJ,YAA2D,IAAxB,WAACl2D,EAAD,QAAa4K,GAAU,EAetD,OAdKA,IACDA,EACA,kBAACO,GAAA,EAAD,CAAOC,QAAQ,2CAAf,8CAYGV,GAPmB,CAAC,SAAD,OACb1K,EAAWm2D,gBADE,qCAEbn2D,EAAWo2D,cAFE,mCAGVp2D,EAAWq2D,gBAHD,wCAIVr2D,EAAWs2D,cAJD,oCAKTt2D,EAAWu2D,cALF,kBAOoB9hE,GAAWA,EAASmW,IAsElE0P,WACAzB,2B,OClTJ,MAAM29C,WAAgC/wC,IAAMC,UAAW,cAAD,yBAwHlD4pC,SAAW,KACPtsC,KAAKK,MAAMisC,SAAStsC,KAAKK,MAAMxtB,UAzGnCg6B,oBACI/iB,GAAgBkW,KAAKK,MAAM/d,YAG/BmhB,SACI,MAAM,EAAEN,EAAF,QAAKtwB,EAAL,cAAc4gE,EAAd,aAA6Bx/D,EAA7B,WAA2CqO,EAA3C,QAAuD41C,GAAYl4B,KAAKK,MAC9E,OACI,kBAAC04B,GAAA,EAAD,CAAMr4C,UAAU,kCACZ,kBAACmmB,GAAA,EAAD,CAAKnmB,UAAU,+BACVw3C,EACG,kBAACpxB,GAAA,EAAD,CAAK+J,GAAG,KAAKnwB,UAAU,wCACnB,0BAAMA,UAAU,IACXyiB,EAAE,2CAIX,kBAAC2D,GAAA,EAAD,CAAKpmB,UAAU,8DACX,0BAAMA,UAAU,IACXyiB,EAAE,2BAKX+0B,GACA,kBAACpxB,GAAA,EAAD,CAAKsU,GAAG,GAAGtK,GAAG,IAAIpwB,UAAU,QACxB,kBAAC,GAAD,CACInF,QAAS+G,EACTi5B,aAAW,EACXm4B,cAAY,EACZ1/D,MAAOnB,EAAQyQ,OACfywB,YAAY,cACZyH,eAAiBC,GAAWA,EAAO9iC,MACnC+iC,eAAiBD,GAAWA,EAAOznC,MACnCo+B,SAAUp+B,GAASy/D,EAAc,SAAUz/D,GAC3C0M,UAAU,UAKlBw3C,GACA,kBAACpxB,GAAA,EAAD,CAAKsU,GAAG,GAAGtK,GAAG,IAAIpwB,UAAU,QACxB,kBAAC,GAAD,CACInF,QAASo4D,GAAY99C,uBACrB7hB,MAAOnB,EAAQkjB,UACfoc,aAAcwhC,GAAY99C,uBAAuB,GACjDke,YAAY,aACZyH,eAAiBC,GAAWA,EAAO9iC,MACnC+iC,eAAiBD,GAAWA,EAAOznC,MACnCo+B,SAAUp+B,GAASy/D,EAAc,YAAaz/D,GAC9C0M,UAAU,UAItB,kBAAComB,GAAA,EAAD,CAAKsU,GAAG,IAAItK,GAAG,IAAIpwB,UAAU,aACzB,kBAAC,KAAD,CACIi7B,gBAAiBxY,EAAE,uBACnBvX,SAAU/Y,EAAQF,SAClBy/B,SAAUp+B,GAASy/D,EAAc,WAAYz/D,GAASnB,EAAQF,UAC9D+5D,qBAAmB,EACnBC,QAAS95D,EAAQD,QAAU,IAAIse,KAC/Bu7C,WvHjGa,euHoGrB,kBAAC3lC,GAAA,EAAD,CAAKsU,GAAG,IAAItK,GAAG,IAAIpwB,UAAU,aACzB,kBAAC,KAAD,CACIgsD,qBAAmB,EACnB/wB,gBAAiBxY,EAAE,qBACnBvX,SAAU/Y,EAAQD,OAClBw/B,SAAUp+B,GAASy/D,EAAc,SAAUz/D,GAASnB,EAAQD,QAC5DgpC,QAAS/oC,EAAQF,SACjBg6D,QAAS,IAAIz7C,KACbu7C,WvH5Ga,euH+GrB,kBAAC3lC,GAAA,EAAD,CAAKsU,GAAG,IAAItK,GAAG,IAAIpwB,UAAU,aACzB,kBAAC26B,GAAA,EAAD,CACI1sC,KAAK,SACL2sC,OAAK,EACLnQ,MAAM,UACNzqB,UAAU,gBACVykB,QAAUrd,IACNA,EAAE0wC,iBACFx4B,KAAKssC,YAETpnC,SAAUlF,KAAKK,MAAMv0B,SAEpBk0B,KAAKK,MAAMv0B,QAAU,kBAAC,GAAD,MAAkBq3B,EAAE,oBAGlD,kBAAC2D,GAAA,EAAD,CAAKsU,GAAG,IAAItK,GAAG,IAAIpwB,UAAU,wBACzB,kBAAC26B,GAAA,EAAD,CACIQ,SAAO,EAACP,OAAK,EACbnQ,MAAM,UACNzqB,UAAU,gBACVykB,QAASlxB,GAERkvB,EAAE,4BAc/B,MAWM6jB,GAAe,CACjBysB,cAAen8C,GAAQI,kBACvBzjB,aAAcqjB,GAAQK,kBAGXwR,oBAAW1D,YAhBF93B,IAEpB,MAAMimE,EAAYjmE,EAAMmrB,cACxB,MAAO,CACHhtB,QAAS8nE,EAAUt9C,YACnBzjB,QAAS+gE,EAAUp9C,YACnBlU,WAAY3U,EAAM6qB,QAAQlW,WAC1B41C,QAAStjC,OASkCoyB,GAAzBvhB,CAAuCC,eAAkB8tC,M,oBChKnF,MAAMK,WAAiCpxC,IAAMC,UAQzCqJ,YAAY1L,GACR2L,MAAM3L,GADS,KAuCnBwnB,OAAS,KACL,MAAM,OAAEP,EAAF,SAAUC,EAAV,UAAoBG,GAAc1nB,KAAKK,MACzCqnB,IACJhmC,GAAoBse,KAAKryB,MAAMmmE,SAC/BvsB,GAAUD,KA3CK,KA8CnBG,UAAY,KACR,MAAM,IAAE58B,EAAF,UAAOk7B,GAAc/lB,KAAKK,OAC1B,QAAEyzC,GAAY9zC,KAAKryB,MACzB+T,GAAoBoyD,GACpB9zC,KAAKkM,SAAS,CAAEwb,WAAW,IAC3BisB,GAAYpB,mBAAmB1nD,EAAKipD,GAC/B7pD,KAAK,IAA0B,IAAzB,UAAEq2B,EAAF,KAAapqB,GAAW,EACvBoqB,GAAeyF,GACfA,EAAU7vB,KAGjBu9B,QAAQ,KACLzzB,KAAKkM,SAAS,CAAEwb,WAAW,OAvDnC1nB,KAAKryB,MAAQ,CACTmmE,QAASrzD,KAAS,iCAClBinC,WAAW,GAInBjkB,SACI,MAAM,EAAEN,EAAF,OAAKmkB,EAAL,IAAaz8B,GAAQmV,KAAKK,OAC1B,UAAEqnB,EAAF,QAAaosB,GAAY9zC,KAAKryB,MAEpC,OACI,oCACI,kBAAC,GAAD,CACI25C,OAAQA,EACRC,SAAUvnB,KAAK6nB,OACfL,SAAUxnB,KAAK6nB,OACfJ,UAAWznB,KAAKynB,UAChBL,kBAAmBjkB,EAAE,kBAAmB,WACxC/C,MAAO+C,EAAE,+BAAgC,2BACzCiR,WAAYsT,EACZA,UAAWA,EACXC,YAAa,CAACmsB,IAEd,uBAAGpzD,UAAU,cACRyiB,EACG,gDACA,iEACA,CAAEwE,MAAO9c,EAAIrG,aAiC1BkhB,sBAAkBmuC,I,OChDjC,MAAME,WAAgCtxC,IAAMC,UAmBxCqJ,YAAY1L,GAAQ,IAAD,EACf2L,MAAM3L,GADS,KA8JnBgqB,iBAAmB,KACf3oC,GAAoBse,KAAKryB,MAAMmmE,UA/JhB,KAkKnBE,4BAA8B,KAC1B,MAAM,UAAEjuB,EAAF,QAAazxC,GAAY0rB,KAAKK,OAC9B,SAAE4zC,EAAF,YAAYvB,EAAZ,UAAyBC,EAAzB,WAAoC3nB,EAApC,QAAgD8oB,GAAY9zC,KAAKryB,MACvE6T,KACAwe,KAAKkM,SAAS,CAAEwb,WAAW,IAC3BisB,GAAY3oB,WAAWA,EAAYipB,EAAUvB,EAAaC,EAAWmB,GAChE7pD,KACG,IAA8C,IAA7C,UAAEq2B,EAAF,WAAatjC,EAAb,aAAyBnP,GAAmB,EACrCyyC,GACAyF,EAAU/oC,EAAY1I,KAIjCm/C,QAAQ,KACLzzB,KAAKkM,SAAS,CAAEwb,WAAW,OAhLpB,KAqLnBF,SAAW,KACHxnB,KAAKryB,MAAM+5C,YAGf1nB,KAAKqqB,mBACLrqB,KAAKK,MAAMknB,UAAS,KA1LL,KA6LnBiC,OAAS4B,IACLprB,KAAKqqB,oBA9LU,KAiMnBZ,eAAkB4B,IACd,MAAM,EAAEloB,GAAMnD,KAAKK,MACnB,GAAIgrB,EAAc7mC,OAAS,EAEvB,YADAlD,GAAwB6hB,EAAE,mEAAoE,+CAA0CnD,KAAKryB,MAAMmmE,SAGvJ,MAAMxoB,EAAeD,EAAc,GACnC,GAAIC,EAAarN,KAAOje,KAAKK,MAAMkrB,YAAa,CAC5C,MAAMC,EAAYhrC,KAAEwhC,MAAMhiB,KAAKK,MAAMkrB,YAAc,IAAK,GAExDjqC,GADgB,kBAAC6G,GAAA,EAAD,CAAOC,QAAQ,6DAAf,4BAAqG,CAAEojC,aAAvG,QACiBxrB,KAAKryB,MAAMmmE,SAE3C9zC,KAAKK,MAAMorB,UAAUtpC,SAASmpC,EAAa38C,MAGbg7C,KAC/B,CACIv8C,KAAMk+C,EAAal+C,KACnBuB,KAAM28C,EAAa38C,MAEvBqxB,KAAKK,MAAMorB,YAIXnqC,GAAwB6hB,EAAE,mEAAoE,2CAAsCnD,KAAKryB,MAAMmmE,UAzNpI,KA6NnBpqB,eAAiBgC,IACb,MAAMC,EAAeD,EAAc,GACnC1rB,KAAKkM,SAAS,CACV8e,WAAYW,IAGhBtqC,GADgB,kBAAC8G,GAAA,EAAD,CAAOC,QAAQ,wDAAf,SAA6E,CAAEkuB,SAAUqV,EAAav+C,MAAtG,0BACc4yB,KAAKryB,MAAMmmE,UAnO1B,KAuOnBloB,qBAAuB,KACnB5rB,KAAKqqB,mBACLrqB,KAAKkM,SAAS,CACV8e,WAAY,QAxOhBhrB,KAAKryB,MAAQ,CACTmmE,QAASrzD,KAAS,gCAClBuqC,WAAY,KACZtD,WAAW,EACXusB,UAAU,UAAA5zC,EAAM/rB,eAAN,eAAed,KAAM,KAC/Bk/D,YAAa,KACbC,UAAW,MAInBzlC,mBAAmBC,GACXA,EAAUma,SAAWtnB,KAAKK,MAAMinB,QAChCtnB,KAAKkM,SAAS,CACVwmC,YAAa,KACbC,UAAW,KACX3nB,WAAY,OAKxBvnB,SAAU,IAAD,EACL,MAAM,EAAEN,EAAF,OAAKmkB,EAAL,QAAahzC,EAAb,UAAsBm3C,EAAtB,YAAiCF,GAAgBvrB,KAAKK,OACtD,WAAE2qB,EAAF,YAAc0nB,EAAd,UAA2BC,EAA3B,QAAsCmB,EAAtC,UAA+CpsB,GAAc1nB,KAAKryB,MACxE,IAAK25C,EACD,OAAO,EAGX,MAAM4sB,KAA0B,OAAC5/D,QAAD,IAACA,OAAD,EAACA,EAASd,IACpC2gE,IAAyBzB,KAAiBC,EAC1CyB,IAAmBppB,EACnB5qB,EAAQ+C,EAAE,8BAA+B,4BACzCkxC,EAAYD,IAAmBF,GAA0BC,GAE/D,OACI,kBAACvsB,GAAA,EAAD,CACIN,OAAQA,EACRC,SAAUvnB,KAAKwnB,SACfO,SAAS,SACTrnC,UAAU,8BAEV,kBAACsnC,GAAA,EAAD,CAAWtnC,UAAU,IACjB,kBAACmmB,GAAA,EAAD,CAAKnmB,UAAU,uBACX,kBAAComB,GAAA,EAAD,KACI,0BAAMpmB,UAAU,eAAe0f,IAEnC,kBAAC0G,GAAA,EAAD,CAAKpmB,UAAU,mCACX,kBAAC,GAAD,CACI1R,KAAMm0B,EAAE,gBAAiB,SACzBgC,QAASnF,KAAKwnB,aAI1B,kBAAC3gB,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,KACI,kBAAC,GAAD,CAAQsD,YAAY,EAAMC,aAAc,CAACypC,OAI7CI,GACA,kBAACrtC,GAAA,EAAD,CAAKnmB,UAAU,QACX,kBAAComB,GAAA,EAAD,KACI,kBAACgN,GAAA,EAAD,CACI5O,UAAQ,EACRv2B,KAAK,OACLqF,MAAK,oBAAKM,EAAQgP,cAAb,aAAK,EAAgBlW,KAArB,aAA8BkH,EAAQggE,iBAAtC,KACL5zD,UAAU,gBAMrBwzD,GACD,kBAACrtC,GAAA,EAAD,CAAKnmB,UAAU,cACX,kBAAComB,GAAA,EAAD,CAAK+J,GAAG,IAAInwB,UAAU,aAClB,kBAAC,KAAD,CACIwkB,SAAUgvC,EACVv4B,gBAAiBxY,EAAE,uBACnBvX,SAAU8mD,EACVtgC,SAAUp+B,GAASgsB,KAAKkM,SAAS,CAAEwmC,YAAa1+D,IAChD04D,qBAAmB,EACnBC,QAASgG,GAAa,IAAIzhD,KAC1Bu7C,WzHhIK,eyHmIb,kBAAC3lC,GAAA,EAAD,CAAK+J,GAAG,IAAInwB,UAAU,aAClB,kBAAC,KAAD,CACIwkB,SAAUgvC,EACVxH,qBAAmB,EACnB/wB,gBAAiBxY,EAAE,qBACnBvX,SAAU+mD,EACVvgC,SAAUp+B,GAASgsB,KAAKkM,SAAS,CAAEymC,UAAW3+D,IAC9C4nC,QAAS82B,EACT/F,QAAS,IAAIz7C,KACbu7C,WzH5IK,gByHkJrB,kBAAC,GAAD,CACIhuD,KAAMusC,EACNxB,OAAQxpB,KAAKwpB,OACbC,eAAgBzpB,KAAKypB,eACrBC,eAAgB1pB,KAAK0pB,eACrBC,OAAQ8B,EACR5B,QAAS0B,EAETtB,aAAc9mB,EAAE,8CAA+C,6FAGnE,kBAAC0D,GAAA,EAAD,CAAKnmB,UAAU,yBACX,kBAAComB,GAAA,EAAD,CAAKpmB,UAAU,+BACX,0BAAMA,UAAU,IAAIyiB,EAAE,oDAAqD,mBAG/E,kBAAC2D,GAAA,EAAD,KACI,kBAACD,GAAA,EAAD,CAAKnmB,UAAS,wBAAmBsqC,EAAa,GAAK,cAC/C,kBAAClkB,GAAA,EAAD,KACI,8BAAOkkB,EAAaA,EAAWziB,KAAOpF,EAAE,mDAAoD,qCAEhG,kBAAC2D,GAAA,EAAD,CAAKpmB,UAAS,mBAAcsqC,EAAa,GAAK,cAC1C,kBAAC,GAAD,CACItqC,UAAU,0BACVykB,QAASnF,KAAK4rB,2BAMlC,kBAAC/kB,GAAA,EAAD,CAAKnmB,UAAU,QACX,kBAAComB,GAAA,EAAD,KACI,kBAACuU,GAAA,EAAD,CACIlQ,MAAM,OACNjG,SAAUwiB,EACVviB,QAASnF,KAAKwnB,SACd9mC,UAAU,qCAETyiB,EAAE,8CAA+C,gBAG1D,kBAAC2D,GAAA,EAAD,CAAKpmB,UAAU,cACX,kBAAC26B,GAAA,EAAD,CACIlQ,MAAM,UACNjG,SAAUwiB,IAAc2sB,EACxBlvC,QAASnF,KAAKg0C,4BACdtzD,UAAU,qCAETgnC,EAAY,kBAAC,GAAD,MAAkBvkB,EAAE,8CAA+C,gBAxK1G4wC,GAaKllC,aAAe,CAClB0c,YAAa,IACbE,UAAW,CAAC,QAAS,sEA2PdtiB,oBAAW1D,YARF93B,IACb,IAIU,GAGK83B,CAAuCC,eAAkBquC,MCnRnF,MAAMQ,WAAgC9xC,IAAMC,UAaxCqJ,YAAY1L,GACR2L,MAAM3L,GADS,KA+GnBm0C,yBAA2B,KACvB,MAAM,aAAEC,EAAF,YAAgB/pD,GAAgBsV,KAAKK,MAC3C,OAA2B,IAAvB3V,EAAYlG,SAEZiwD,EAAajwD,SAAWkG,EAAYlG,QACjCiwD,EAAahZ,MAAM9kD,IAA8B,IAAvBA,EAAI+9D,kBAjHrC10C,KAAKryB,MAAQ,CACTgnE,sBAAsB,EACtBC,cAAc,GAItB/nC,qBAGApJ,SACI,MAAM,QAAEy0B,EAAF,YAAWxtC,EAAX,eAAwBmqD,GAAmB70C,KAAKK,MACtD,OAAK63B,EAED,kBAACrxB,GAAA,EAAD,CAAKnmB,UAAU,mCACX,kBAAComB,GAAA,EAAD,KACI,kBAACD,GAAA,EAAD,CAAKnmB,UAAU,8DACX,kBAAComB,GAAA,EAAD,CAAK2D,GAAI,CAAEwT,KAAM,GAAIn6B,MAAO,GAAKgtB,GAAI,CAAEmN,KAAM,EAAGn6B,MAAO,GAAKs3B,GAAG,GAAG16B,UAAU,aACxE,kBAAC26B,GAAA,EAAD,CACIlQ,MAAM,OACNjG,UAAWxa,EAAYlG,OACvB2gB,QAAS,IAAM0vC,EAAe,KAHlC,qBAKoBnqD,EAAYlG,OALhC,MAQJ,kBAACsiB,GAAA,EAAD,CAAK2D,GAAI,CAAEwT,KAAM,GAAIn6B,MAAO,GAAKgtB,GAAI,CAAEmN,KAAM,EAAGn6B,MAAO,GAAKs3B,GAAI,EAAG16B,UAAU,aACxEsf,KAAK80C,sCAEV,kBAAChuC,GAAA,EAAD,CAAK2D,GAAI,CAAEwT,KAAM,GAAIn6B,MAAO,GAAKgtB,GAAI,CAAEmN,KAAM,EAAGn6B,MAAO,GAAKs3B,GAAI,EAAG16B,UAAU,aACxEsf,KAAK+0C,iCAlBL,KA0BzBD,qCACI,MAAM,YAAEpqD,EAAF,wBAAesqD,EAAf,QAAwC9c,GAAYl4B,KAAKK,OACzD,qBAAEs0C,GAAyB30C,KAAKryB,MAEtC,IAAKuqD,EAAS,OAAO,KAErB,MAAM3Q,EAAW,KACbvnB,KAAKkM,SAASsH,IAAsB,CAAEmhC,sBAAuBnhC,EAAUmhC,yBAUrEM,GAAoBj1C,KAAKw0C,2BAC/B,OACI,oCACI,kBAACn5B,GAAA,EAAD,CACIC,OAAK,EACLnQ,MAAM,YACNjG,SAAU+vC,EACV9vC,QAASoiB,GAJb,kBAOmB78B,EAAYlG,OAP/B,YAOgE,IAAvBkG,EAAYlG,OAAe,UAAY,aAGhF,kBAAC0wD,GAAD,CAAqBrqD,IAAKH,EAAa48B,OAAQqtB,EAAsBptB,SAAUA,EAAUxB,UArB/EzxC,IACd0rB,KAAKkM,SAAS,CACVyoC,sBAAsB,IAEtBK,GACAA,EAAwB1gE,OAsBpCygE,6BACI,MAAM,gBAAEI,EAAF,QAAmBjd,GAAYl4B,KAAKK,OACpC,aAAEu0C,GAAiB50C,KAAKryB,MAE9B,IAAKuqD,EAAS,OAAO,KAErB,MAAM3Q,EAAW,KACbvnB,KAAKkM,SAASsH,IAAsB,CAAEohC,cAAephC,EAAUohC,iBAW7DttB,EAASstB,EACf,OACI,oCACI,kBAACv5B,GAAA,EAAD,CACIC,OAAK,EACLnQ,MAAM,YACNjG,UAPa,EAQbC,QAASoiB,GAJb,oBAQA,kBAAC,GAAD,CAAaD,OAAQA,EAAQC,SAAUA,EAAUxB,UApBvCvzC,IACdwtB,KAAKkM,SAAS,CACV0oC,cAAc,IAEdO,GACAA,EAAgB3iE,IAeuD8B,QAAS,KAAMk2C,eAAe,MAgBrH,MAWMxD,GAAe,CACjB6tB,eAAgBv9C,GAAQQ,oBAGbqR,oBAAW1D,YAfF93B,IAEpB,MAAMimE,EAAYjmE,EAAMmrB,cACxB,MAAO,CACHo/B,QAAStjC,KACTsB,KAAM09C,EAAU19C,KAChBxL,YAAakpD,EAAUn9C,gBACvBg+C,aAAcb,EAAU19C,KAAKhU,OAAOvL,GAAOi9D,EAAUn9C,gBAAgBtU,SAASxL,EAAInD,OAQvCwzC,GAAzBvhB,CAAuC8uC,K,OC1JjE,MAAMxwB,GAAsB1jB,GAAU,kBAAC4E,GAAA,EAAD,iBAAkB5E,EAAlB,CAAyB3f,UAAU,2BAA0B2f,EAAMmK,UAEzG,MAAM4qC,WAAgC3yC,IAAMC,UAUxCqJ,YAAY1L,GAAQ,IAAD,EACf2L,MAAM3L,GADS,YAgDnB8tB,wBAA0B,KACtB,MAAM,QAAE75C,EAAF,wBAAW0gE,GAA4Bh1C,KAAKK,OAC5C,qBAAEs0C,GAAyB30C,KAAKryB,MAUtC,OACI,kBAACunE,GAAD,CAAqBrqD,IAAK,QAACvW,QAAD,IAACA,OAAD,EAACA,EAASd,IAAK8zC,OAAQqtB,EAAsBptB,SAAUvnB,KAAKq1C,0BAA2BtvB,UATnG7vB,IACd8J,KAAKkM,SAAS,CACVyoC,sBAAsB,IAEtBK,GACAA,EAAwB9+C,OAzDjB,KAiEnBo/C,kBAAoB,KAChB,MAAM,QAAEhhE,EAAF,gBAAW6gE,GAAoBn1C,KAAKK,OACpC,aAAEu0C,GAAiB50C,KAAKryB,MAU9B,OACI,kBAAC,GAAD,CAAa2G,QAASA,EAASgzC,OAAQstB,EAAcrtB,SAAUvnB,KAAKu1C,oBAAqBxvB,UAT3E,CAACvzC,EAAM8B,KACrB0rB,KAAKkM,SAAS,CACV0oC,cAAc,IAEdO,GACAA,EAAgB3iE,EAAM8B,OA1Ef,KAmHnBkhE,wBAA2Bj3C,IACvB,MAAM,EAAE4E,EAAF,kBAAK+gB,GAAsBlkB,KAAKK,MAEtC,GAAI6jB,EAAmB,OAAO,KAC9B,MAAMvrC,EAAQwqB,EAAE,kCAAmC,mBACnD,OAAOnD,KAAK2kB,WAAWhsC,EAAOqnB,KAAKukB,OAAQ,CAAEhmB,UAxH9B,KA2HnBk3C,mBAAqBl3C,IACjB,MAAM,EAAE4E,GAAMnD,KAAKK,MAEbrxB,EAAOm0B,EAAE,kCAAmC,oBAClD,OAAOnD,KAAK2kB,WAAW31C,EAAMgxB,KAAK01C,gBAAiB,CAAEn3C,UA/HtC,KAkInBo3C,qBAAuBp3C,IACnB,MAAM,EAAE4E,EAAF,QAAK7uB,EAAL,QAAc4jD,GAAYl4B,KAAKK,MACrC,IAAK63B,EAAS,OACd,KAAI,OAAC5jD,QAAD,IAACA,OAAD,EAACA,EAASogE,gBAAgB,OAC9B,MAAM1lE,EAAOm0B,EAAE,0CAA2C,2BAC1D,OAAOnD,KAAK2kB,WAAW31C,EAAMgxB,KAAKq1C,0BAA2B,CAAE92C,UAvIhD,KA0InBq3C,iBAAmBr3C,IACf,MAAM,EAAE4E,EAAF,QAAK+0B,GAAYl4B,KAAKK,MAC5B,IAAK63B,EAAS,OACd,MAAMlpD,EAAOm0B,EAAE,kCAAmC,kBAClD,OAAOnD,KAAK2kB,WAAW31C,EAAMgxB,KAAKu1C,oBAAqB,CAAEh3C,UA9I1C,KAiJnBgmB,OAAS,WAA0B,IAAzBsB,EAAwB,wDAC9B,MAAM,QAAErf,EAAF,QAAWlyB,GAAY,EAAK+rB,MAC5B6H,EAAQyrC,GAAY3B,kBAAkB19D,EAAQd,IAChDqyC,EACAla,OAAOntB,KAAK0pB,EAAO,UAEnB1B,EAAQI,KAAKsB,IAvJF,KA2JnBmtC,0BAA6BrhE,IACzBgsB,KAAKkM,SAASsH,IAAS,CACnBmhC,sBAAuBnhC,EAAUmhC,yBA7JtB,KAiKnBY,oBAAuBvhE,IACnBgsB,KAAKkM,SAASsH,IAAS,CACnBohC,cAAephC,EAAUohC,iBAnKd,KAuKnBc,gBAAkB,KACd,MAAM,EAAEvyC,EAAF,SAAK8E,EAAL,QAAe3zB,GAAY0rB,KAAKK,MACtC7e,KACAmyD,GAAYf,gBAAgBt+D,EAAQd,IAC/B0W,MAAMre,IAEH0V,GACI4hB,EAAE,gDAAiD,mDAAkDt3B,EAAM4F,QAC3Gw2B,EAASD,aA7KrBhI,KAAKryB,MAAQ,CACTgnE,sBAAsB,EACtBC,cAAc,GAItBnxC,SACI,MAAM,kBAAEygB,GAAsBlkB,KAAKK,MAEnC,OACI,yBAAK3f,UAAU,yBAEPwjC,EACIlkB,KAAKymB,wBAELzmB,KAAK2mB,qBAEZ3mB,KAAKmuB,0BACLnuB,KAAKs1C,qBAKlB7uB,wBACI,OACI,kBAAC5f,GAAA,EAAD,KACK7G,KAAK4mB,cAAc,eAKhCD,qBACI,OACI,kBAAC7iB,GAAA,EAAD,CAA4BC,UAAU,OAAOoB,QAASrd,IAAOA,EAAE++B,oBAC3D,kBAAC7iB,GAAA,EAAD,CAAgBC,IAAI,OAChB,kBAACoX,GAAA,EAAD,CAAQlQ,MAAM,OAAOzqB,UAAU,0CAC3B,kBAAC,GAAD,QAGR,kBAAC0jB,GAAA,EAAD,KACKpE,KAAK4mB,cAAc,cAwCpCA,cAAcroB,GAQV,MAPyB,CACrByB,KAAKw1C,wBACLx1C,KAAKy1C,mBACLz1C,KAAK21C,qBACL31C,KAAK41C,kBAGetgE,IAAKwxC,GAAiBA,EAAavoB,IAG/DomB,WAAW31C,EAAMm2B,EAAS5pB,GAItB,MAAoB,eAHLiF,KAAEumC,aAAaxrC,EAAS,CACnCgjB,KAAM,aAECA,KAEH,kBAACuI,GAAA,EAAD,CAAK76B,IAAK+C,EAAMy7B,GAAG,OAAO/pB,UAAU,aAChC,kBAAC26B,GAAA,EAAD,CAAQlQ,MAAM,UAAUzqB,UAAU,iBAAiBm7B,SAAO,EAAC1W,QAAS,IAAMA,KAAYn2B,IAM9F,kBAAC,GAAD,CACIm2B,QAAS,IAAMA,IACfl5B,IAAK+C,GAEJA,IA8EFm6B,oBAAW1D,YAPD93B,IAEd,CACHuqD,QAAStjC,OAIkC,KAAzB6Q,CAA+BC,eAAkB0vC,M,OCtL3E,SAASl7B,GAAiB7Z,GACtB,IAAInrB,EACAmrB,EAAM8C,EAAE,6BAOZ,OANI9C,EAAMv0B,QACNoJ,EAAU,kBAAC,GAAD,MACHmrB,EAAMx0B,QACbqJ,EAAU,0BAAMwL,UAAU,eAAe2f,EAAMx0B,QAG5C,yBAAK6U,UAAU,eAAexL,GAGzC,MAAM2gE,WAAoCpzC,IAAMC,UAAW,cAAD,yBA0NtDozC,0BAA6B90B,GAErB,oCACI,kBAACna,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,KACI,kBAAC,GAAD,CAAU9yB,MAAOgtC,EAAYntC,O5H3QpB,iB4H4CyB,KAsOtDs5D,sBAAyBx2D,GAEjB,kBAACkwB,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,KAEQ,kBAAC,GAAYisC,mBAAb,CAAgCz+D,QAASqC,MA3OP,KAkPtDo/D,UAAaC,IACT,MAAM,YAAEz/B,EAAF,QAAe3yB,EAAf,WAAwBG,EAAxB,SAAoCkkB,GAAajI,KAAKK,MAC5D21C,EAASjvB,wBAAaivB,EAAQ,CAC1BnjE,QAAS0jC,EACT3yB,UACAG,aACA+wB,WAAY7M,EAASD,WAGzB2rC,GAAYzB,iBAAiB8D,EAAOnjE,QAASmjE,EAAOpyD,QAASoyD,EAAOjyD,WAAYiyD,EAAOlhC,aA3PrC,KA8PtDw3B,SAAW,KACPtsC,KAAK+1C,UAAU,CACXljE,QAASmtB,KAAKK,MAAMxtB,WAhQ0B,KAoQtDojE,mBAAqB,CAACjyD,EAAMC,KACxB,MAAM,WAAEF,EAAF,iBAAcmyD,GAAqBl2C,KAAKK,MAC9C,GAAIrc,IAASD,EAAWC,MAAQC,IAAgBF,EAAWE,YAAa,CACpE,MAAMkyD,EAAgB,IAAKpyD,EAAYC,OAAMC,eAC7CiyD,EAAiBC,GACjBn2C,KAAK+1C,UAAU,CACXhyD,WAAYoyD,MA1Q8B,KA+QtDC,cAAgB,CAACznE,EAAM0nE,KACnB,MAAM,QAAEzyD,EAAF,cAAW0yD,GAAkBt2C,KAAKK,OAClC,UAAEk2C,EAAF,UAAaC,GAAcH,EACjC,GAAIE,IAAc3yD,EAAQE,OAAS0yD,IAAc5yD,EAAQC,UAAW,CAChE,MAAM4yD,EAAa,CACf5yD,UAAW2yD,EACX1yD,MAAOyyD,GAEXD,EAAcG,GACdz2C,KAAK+1C,UAAU,CACXnyD,QAAS6yD,MAzRiC,KA8RtDC,SAAW,CAAC//D,EAAKggE,EAAU1b,EAAUnzC,KACjC,MAAMkO,EAAO,CAACrf,GACdqpB,KAAK42C,YAAYD,EAAU3gD,IAhSuB,KAmStD4gD,YAAc,CAACD,EAAU3gD,KACrB,MAAM,YAAEtL,EAAF,eAAemqD,GAAmB70C,KAAKK,MACvCxV,EAAMmL,EAAK1gB,IAAIqB,GAAOA,EAAInD,IAChC,IAAIqjE,EACJ,GAAIF,EAAU,CACV,MAAMG,EAAuB,IAAIpsD,KAAgBG,GAEjDgsD,EAAiB,IADM,IAAIE,IAAID,SAG/BD,EAAiBnsD,EAAYxI,OAAO1O,IAAOqX,EAAI1I,SAAS3O,IAE5DqhE,EAAegC,IA9SmC,KAiTtD7J,WAAa,CAAC36B,EAAO17B,KACjB,IAAIgqC,EAAMgzB,GAAY3B,kBAAkBr7D,EAAInD,IAC5CwsB,KAAKK,MAAMmG,QAAQI,KAAK+Z,IAnT0B,KAsTtDq0B,wBAA0B1gE,IACtB0rB,KAAKK,MAAMw0C,eAAe,IAC1B70C,KAAK+1C,aAxT6C,KAqUtDiB,oBAAsBh6D,IAClB,MAAM,WAAE+G,EAAF,SAAckkB,EAAd,EAAwB9E,GAAMnD,KAAKK,MACzCL,KAAKi2C,mBAAmB,EAAGlyD,EAAWE,aAEtC+b,KAAKK,MAAM61C,iBAAiB,IACrBnyD,EACHC,KAAM,IAEVgc,KAAK+1C,YAGL30D,GADqBuyD,GAAYT,0BAA0Bl2D,GACrBirB,EAASD,WAhVG,KAmVtDivC,wBAA0B,CAACj6D,EAAY1I,KACnC,MAAM,WAAEyP,EAAF,QAAcyiB,EAAd,EAAuBrD,GAAMnD,KAAKK,MAExCL,KAAKK,MAAM61C,iBAAiB,IACrBnyD,EACHC,KAAM,IAEVgc,KAAK+1C,YAEL,MAAMnuD,EAAUub,EAAE,8CAA+C,2CAC3D+zC,EAAel3C,KAAKm3C,4BAA4Bn6D,EAAY4K,GAC5DwvD,EAAezD,GAAY3B,kBAAkB19D,EAAQd,IAC3D4N,GAAwB81D,EAAcE,GACtC5wC,EAAQI,KAAKwwC,IAhWqC,KAmWtD5J,sBAAyB72D,GACd,kBAAC,GAAD,CAAarC,QAASqC,EAAKq+D,wBAAyBh1C,KAAKg1C,wBAAyBG,gBAAiBn1C,KAAKi3C,0BA9UnHpqC,oBACI,MAAM,QAAEqrB,EAAF,2BAAWtnB,GAA+B5Q,KAAKK,OACjD63B,GAAWtnB,IACX5Q,KAAK+1C,YAIb7oC,mBAAmBC,GACf,MAAM,QAAE+qB,EAAF,2BAAWtnB,GAA+B5Q,KAAKK,MAC/Cg3C,EAAgBzmC,EAChB0mC,EAAmBpf,GAAWA,IAAY/qB,EAAU+qB,QACpDqf,EAA6BF,GAAiBA,IAAkBlqC,EAAUyD,4BAC5E0mC,GAAoBC,IACpBv3C,KAAK+1C,YAIbtyC,SACI,OACI,kBAACuG,GAAA,EAAD,CAAMtpB,UAAU,kBACZ,kBAACupB,GAAA,EAAD,CAAUvpB,UAAU,QAChB,kBAAC,GAAD,CAAY4rD,SAAUtsC,KAAKssC,WAC1BtsC,KAAK4mB,gBACL5mB,KAAK8b,gBAMtB8K,gBACI,OACI,kBAAC4wB,GAAD,CACIxC,wBAAyBh1C,KAAKg1C,wBAC9BG,gBAAiBn1C,KAAKg3C,sBAKlCl7B,cACI,MAAM,EAAE3Y,EAAF,KAAKjN,EAAL,QAAWpqB,EAAX,QAAoBosD,EAApB,WAA6Bn0C,EAA7B,QAAyCH,EAAzC,YAAkD8G,GAAgBsV,KAAKK,MAC7E,GAAIv0B,EACA,OACI,kBAACqoD,GAAD,KACI,kBAAC,GAAD,OAIZ,GAAa,OAATj+B,QAA0B+C,IAAT/C,EACjB,OAAO,qCAGX,MAAM6lB,EAAU,CACZ,CACIl4B,UAAW,cACX7U,KAAM,cACNgtC,MAAM,EACNC,QAAS,yBACTC,cAAe,oBACfu7B,KAAMvf,GAEV,CACIr0C,UAAW,eACX7U,KAAMm0B,EAAE,6BAA8B,kBACtC6Y,MAAM,EACNC,QAAS,aACTC,cAAe,oBACfS,UAAW,CAAC+1B,EAAa/7D,IAAQqpB,KAAK81C,0BAA0BpD,GAChE+E,MAAM,GAEV,CACI5zD,UAAW,aACX7U,KAAMm0B,EAAE,2BAA4B,oBACpCwrB,MAAO,OACP8e,YAAa,OACbzxB,MAAM,EACNC,QAAS,aACTC,cAAe,oBACfS,UAAW,CAACg2B,EAAWh8D,IAAQqpB,KAAK81C,0BAA0BnD,GAC9D8E,MAAM,GAEV,CACI5zD,UAAW,eACX7U,KAAMm0B,EAAE,2BACRwrB,MAAO,SACP8e,YAAa,SACbzxB,MAAM,EACNC,QAAS,aACTC,cAAe,oBACfS,UAAW,CAAC+6B,EAAa/gE,IAAQqpB,KAAKmtC,sBAAsBx2D,GAC5D8gE,KAAMvf,GAEV,CACIr0C,UAAW,0BACX7U,KAAMm0B,EAAE,4BACR8Y,QAAS,aACTD,MAAM,EACNpzB,MAAO,CACH2X,MAAO,SAEXoc,UAAW,CAAC3oC,EAAO2jE,IACV3jE,EACEJ,KAAOI,GAAOH,OAAO,cADT,KAGvB4jE,MAAM,GAEV,CACI5zD,UAAW,KACX7U,KAAM,GACN2/C,MAAO,QACP8e,YAAa,QACbxxB,QAAS,aACTC,cAAe,oBACfS,UAAW,CAACnpC,EAAImD,IACZqpB,KAAKwtC,sBAAsB72D,GAC/B8gE,MAAM,IAEZv1D,OAAO01D,IAAoB,IAAbA,EAAIH,MAEdn6B,EAAgB,CAAC15B,GACvB,IAAIi0D,EACA3f,IACA2f,EAAY,CACRt5C,KAAM,WACN3S,SAAUlB,EACVotD,eAAe,EACfC,kBAAmB,QAAC,KAAEx5C,EAAF,QAAQgzC,EAAR,SAAiBrsC,GAAlB,SACf,kBAAC,GAAD,CAAUlxB,MAAOu9D,EAASpsC,QAAS,OAAWzkB,UAAU,UAE5Dg2D,SAAU,CAAC//D,EAAKggE,EAAU1b,EAAUnzC,KAChCkY,KAAK02C,SAAS//D,EAAKggE,EAAU1b,EAAUnzC,IAE3C8uD,YAAa,CAACD,EAAU3gD,KACpBgK,KAAK42C,YAAYD,EAAU3gD,IAE/BgiD,wBAAyB,IAAuC,IAAtC,KAAEz5C,EAAF,QAAQgzC,EAAR,cAAiBC,GAAoB,EAC3D,OAAO,kBAAC,GAAD,CAAiBD,QAASA,EAASC,cAAeA,OAKrE,MAIMxW,EAAY,CACd71B,QAAS,CAACrd,EAAGnR,EAAKskD,KACdj7B,KAAKgtC,WAAWllD,EAAGnR,KAI3B,OACI,kBAACkwB,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,KACI,kBAAC,KAAD,CACImxC,QAAM,EACNl7B,YAAU,EACVC,UAAU,EACVf,QAAQ,0CACRgB,eAAe,8EACfC,SAAS,KACT1qC,KAAM0jB,EACN6lB,QAASA,EACT75B,OAAQi7B,OACRC,eAAe,SACfE,cAAeA,EACf84B,cAAep2C,KAAKo2C,cACpByB,UAAWA,EACXx6B,iBACI,kBAAC,GAAD,CACIvxC,QAASA,EACTq3B,EAAGA,IAGXozB,WAjCG,CAAC5/C,EAAKskD,IACd,UAiCKD,UAAWA,KAEbh7B,KAAKK,MAAMv0B,SACT,kBAAC+6B,GAAA,EAAD,CAAKnmB,UAAU,QACX,kBAAComB,GAAA,EAAD,KACI,kBAAC,GAAD,CACI9iB,KAAMD,EAAWC,KACjBC,YAAaF,EAAWE,YACxBC,SAAUH,EAAWG,SACrBC,gBAAiBJ,EAAWI,gBAC5BssD,oBAAqB,CAACxsD,EAAaD,IAASgc,KAAKi2C,mBAAmBjyD,EAAMC,GAC1EssD,aAAcvwC,KAAKi2C,yBA4GnDkB,4BAA4Bn6D,EAAY4K,GAOpC,OAAOF,GANO,CAAC,SAAD,OACD1K,EAAWm2D,gBADV,qCAEDn2D,EAAWo2D,cAFV,mCAGEp2D,EAAWq2D,gBAHb,wCAIEr2D,EAAWs2D,cAJb,iBAMoB4E,GAAQA,EAAMtwD,IAsCxD,MAoBMuwD,GAAmB,CACrB1E,cAAen8C,GAAQI,kBACvBzjB,aAAcqjB,GAAQK,iBACtB2+C,cAAeh/C,GAAQM,kBACvBs+C,iBAAkB5+C,GAAQO,qBAC1Bg9C,eAAgBv9C,GAAQQ,oBAGb2N,mBA5BU93B,IAErB,MAAMimE,EAAYjmE,EAAMmrB,cACxB,MAAO,CACH5C,KAAM09C,EAAU19C,KAChBpqB,QAAS8nE,EAAUt9C,YACnBzjB,QAAS+gE,EAAUp9C,YACnB+f,YAAaq9B,EAAUv9C,gBACvBzS,QAASgwD,EAAUz9C,YACnBpS,WAAY6vD,EAAUx9C,eACtB1L,YAAakpD,EAAUn9C,gBAEvB1qB,KAAM4B,EAAMe,KAAK3C,KACjB6kC,2BAA4Bxc,KAG5B8jC,QAAStjC,OAYuBujD,GAAzB1yC,CAA2CC,aAAgB,SAAhBA,CAA0BmwC,K,qBClbpF,MACMuC,GADuB,0CAIhBC,GAAa,CACxBC,OAAQ,SACRlf,IAAK,OAUMmf,GAAO,CAClBC,QAAS,UACTC,aAAc,gBA6GD,IClIX,GDkIW,IACbJ,cACAK,KAxHkB,CAClBtf,IAAK,MACLD,QAAS,UACTwf,OAAQ,SACRC,OAAQ,UAqHRL,QACAM,+BAZ4C,SAAC7kE,GAA0B,IAAnB8kE,EAAkB,uDAAN,EAChE,MAAqB,kBAAV9kE,GACFA,EAAM4+B,OAAOpuB,QAAUs0D,GAWhCC,wBAzCK,SAAiCC,GAEtC,MADuB,IAAIA,GACLh9B,KAAK,CAACi9B,EAAUC,IAChCD,EAASlyC,WAAamyC,EAASnyC,WAC1B,EACEkyC,EAASlyC,aAAemyC,EAASnyC,WACtCkyC,EAASzlE,GAAK0lE,EAAS1lE,GAClB,EACEylE,EAASzlE,KAAO0lE,EAAS1lE,GAC3B,GAED,GAEF,IA6BV2lE,iBAzBK,SAA0BH,GAE/B,IAAII,GADJJ,EAAWA,GAAY,IACM,IAAM,KACnC,IAAK,MAAMt1B,KAAWs1B,EAChBt1B,EAAQ3c,WAAaqyC,EAAcryC,aACrCqyC,EAAgB11B,GAGpB,OAAO01B,GAkBPC,sBAjHK,SACLC,EACAC,GAcA,MAEMxzC,EAvCqB,0CAwCxBlc,QAAQ,oBAAqByvD,GAC7BzvD,QAAQ,cAAe0vD,GAE1B,OAAOxvD,KAAM,CACXyvD,OAAQ,MACR74B,IAAK5a,EACL6O,OATa,CAAEw9B,UAAW,OAkG5BqH,sBArFK,SACLH,EACAC,EACA/mE,GAEAA,EAAOu0C,KAAav0C,EAAM,CACxBi+C,KAAM,GACN9hD,KAAM4pE,GAAKC,QACXkB,WAAYrB,GAAWC,SAKzB,MAAMvyC,EAAWqyC,GACdvuD,QAAQ,oBAAqByvD,GAC7BzvD,QAAQ,cAAe0vD,GAE1B,OAAOxvD,KAAM,CACXyvD,OAAQ,OACR74B,IAAK5a,EACLvzB,UAkEFmnE,cA9DK,SACLL,EACAC,EACAK,GAGA,MAAM7zC,EA9E0B,+CA+E7Blc,QAAQ,oBAAqByvD,GAC7BzvD,QAAQ,cAAe0vD,GACvB1vD,QAAQ,OAAQ+vD,GAEnB,OAAO7vD,KAAM,CACXyvD,OAAQ,SACR74B,IAAK5a,MExFM8zC,MDAf,SAAS,KAA2Q,OAA9P,GAAWt6C,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAI1X,EAAI,EAAGA,EAAI2X,UAAUlb,OAAQuD,IAAK,CAAE,IAAI4X,EAASD,UAAU3X,GAAI,IAAK,IAAI9b,KAAO0zB,EAAcJ,OAAOK,UAAUC,eAAeC,KAAKH,EAAQ1zB,KAAQwzB,EAAOxzB,GAAO0zB,EAAO1zB,IAAY,OAAOwzB,IAA2BM,MAAMC,KAAMN,WAIhT,MAAM,GAAeQ,IACnB,IAAI,OACFC,EAAM,MACNC,KACGC,GACDH,EACJ,OAAoB,IAAMI,cAAc,MAAO,GAAS,CACtDC,MAAO,GACPC,OAAQ,GACRC,QAAS,YACTC,KAAM,OACNC,IAAKR,GACJE,GAAQD,EAAqB,IAAME,cAAc,QAAS,KAAMF,GAAS,KAAM,KAAU,GAAqB,IAAME,cAAc,OAAQ,CAC3IS,EAAG,4EACH2I,OAAQ,eACRC,YAAa,EACbC,cAAe,aAIb,GAA0B,IAAM3I,WAAW,CAACZ,EAAOM,IAAqB,IAAML,cAAc,GAAc,GAAS,CACvHH,OAAQQ,GACPN,KACY,IE7BX,GF6BW,IE3Bf,SAAS,KAA2Q,OAA9P,GAAWd,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAI1X,EAAI,EAAGA,EAAI2X,UAAUlb,OAAQuD,IAAK,CAAE,IAAI4X,EAASD,UAAU3X,GAAI,IAAK,IAAI9b,KAAO0zB,EAAcJ,OAAOK,UAAUC,eAAeC,KAAKH,EAAQ1zB,KAAQwzB,EAAOxzB,GAAO0zB,EAAO1zB,IAAY,OAAOwzB,IAA2BM,MAAMC,KAAMN,WAIhT,MAAM,GAAaQ,IACjB,IAAI,OACFC,EAAM,MACNC,KACGC,GACDH,EACJ,OAAoB,IAAMI,cAAc,MAAO,GAAS,CACtDC,MAAO,GACPC,OAAQ,GACRC,QAAS,YACTC,KAAM,OACNC,IAAKR,GACJE,GAAQD,EAAqB,IAAME,cAAc,QAAS,KAAMF,GAAS,KAAM,KAAU,GAAqB,IAAME,cAAc,OAAQ,CAC3IS,EAAG,8EACH2I,OAAQ,eACRC,YAAa,EACbC,cAAe,aAIb,GAA0B,IAAM3I,WAAW,CAACZ,EAAOM,IAAqB,IAAML,cAAc,GAAY,GAAS,CACrHH,OAAQQ,GACPN,KACY,IC7BX,GD6BW,IC3Bf,SAAS,KAA2Q,OAA9P,GAAWd,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAI1X,EAAI,EAAGA,EAAI2X,UAAUlb,OAAQuD,IAAK,CAAE,IAAI4X,EAASD,UAAU3X,GAAI,IAAK,IAAI9b,KAAO0zB,EAAcJ,OAAOK,UAAUC,eAAeC,KAAKH,EAAQ1zB,KAAQwzB,EAAOxzB,GAAO0zB,EAAO1zB,IAAY,OAAOwzB,IAA2BM,MAAMC,KAAMN,WAIhT,MAAMo6C,GAAa55C,IACjB,IAAI,OACFC,EAAM,MACNC,KACGC,GACDH,EACJ,OAAoB,IAAMI,cAAc,MAAO,GAAS,CACtD1X,MAAO,CACL2X,MAAO,GACPC,OAAQ,IAEVC,QAAS,YACTE,IAAKR,GACJE,GAAQD,EAAqB,IAAME,cAAc,QAAS,KAAMF,GAAS,KAAM,KAAU,GAAqB,IAAME,cAAc,OAAQ,CAC3II,KAAM,eACNK,EAAG,0NAID,GAA0B,IAAME,WAAW,CAACZ,EAAOM,IAAqB,IAAML,cAAcw5C,GAAY,GAAS,CACrH35C,OAAQQ,GACPN,KACY,IC5BX,GAAO,GD4BI,IC1Bf,SAAS,KAA2Q,OAA9P,GAAWd,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAI1X,EAAI,EAAGA,EAAI2X,UAAUlb,OAAQuD,IAAK,CAAE,IAAI4X,EAASD,UAAU3X,GAAI,IAAK,IAAI9b,KAAO0zB,EAAcJ,OAAOK,UAAUC,eAAeC,KAAKH,EAAQ1zB,KAAQwzB,EAAOxzB,GAAO0zB,EAAO1zB,IAAY,OAAOwzB,IAA2BM,MAAMC,KAAMN,WAIhT,MAAM,GAAYQ,IAChB,IAAI,OACFC,EAAM,MACNC,KACGC,GACDH,EACJ,OAAoB,IAAMI,cAAc,MAAO,GAAS,CACtDC,MAAO,GACPC,OAAQ,GACRC,QAAS,YACTC,KAAM,OACNC,IAAKR,GACJE,GAAQD,EAAqB,IAAME,cAAc,QAAS,KAAMF,GAAS,KAAM,KAAU,GAAqB,IAAME,cAAc,OAAQ,CAC3IS,EAAG,6cACHL,KAAM,kBACH,KAAW,GAAsB,IAAMJ,cAAc,OAAQ,CAChES,EAAG,w7BACHL,KAAM,oBAIJ,GAA0B,IAAMO,WAAW,CAACZ,EAAOM,IAAqB,IAAML,cAAc,GAAW,GAAS,CACpHH,OAAQQ,GACPN,KACY,I,OCnBf,MAAM05C,WAAgBt3C,IAAMC,UAmB1BqJ,YAAY1L,GACV2L,MAAM3L,GADW,KAuEnB25C,cAAgB,KACTh6C,KAAKi6C,aACVj6C,KAAKK,MAAMiwB,SAAStwB,KAAKK,MAAM7sB,KAvE/BwsB,KAAKryB,MAAQ,CACXusE,YAAa,IAAIhpD,MAEnB8O,KAAKm6C,sBAAwB,KAG/BttC,oBAKE7M,KAAKm6C,sBAAwBC,YAJb,KACdp6C,KAAKkM,SAAS,CAAEguC,YAAa,IAAIhpD,QAErB,KAIhB8b,uBACEqtC,cAAcr6C,KAAKm6C,uBAGrBjtC,mBAAmBC,EAAWqG,IAG9B/P,SACE,OACE,yBAAK/iB,UAAWsf,KAAKs6C,wBAClBt6C,KAAKu6C,eACN,yBAAK75D,UAAU,oBACb,yBAAKA,UAAU,iBACb,yBAAKA,UAAU,oBACZsf,KAAKK,MAAMowB,OAGhB,yBAAK/vC,UAAU,iBACZsf,KAAKw6C,gBAOhBA,aACE,MAAM,WAAEC,GAAez6C,KAAKK,MACtBq6C,EAAY16C,KAAK26C,qBACvB,OAAIF,EACI,GAAN,OAAUA,EAAV,aAAyBC,GAGpBA,EAGTH,eACE,OAAKv6C,KAAKi6C,YAGR,yBAAKv5D,UAAU,2BACb,4BACEA,UAAU,yBACVykB,QAASnF,KAAKg6C,eAEd,kBAAC,GAAD,QARwB,KAchCC,YACE,QAAKj6C,KAAKK,MAAMiwB,UACTtwB,KAAKK,MAAMu6C,WAQpBD,qBACE,MAAM,WAAE5zC,GAAe/G,KAAKK,MAE5B,OADkBzsB,KAAOmzB,GACR8zC,UAGnBC,sBACE,MAAM,KAAEna,GAAS3gC,KAAKK,MAEtB,GAAIsgC,IADSoa,GAAarC,KACRE,OAChB,MAAO,kBAQT,MALqB,CACnB,CAACmC,GAAarC,KAAKtf,KAAMxkC,KACzB,CAACmmD,GAAarC,KAAKC,QAASnkD,KAC5B,CAACumD,GAAarC,KAAKvf,SAAUzkC,MAEXsL,KAAKK,MAAMsgC,MAAQ,kBAAoB,mBAG7D2Z,uBACE,MAAM,WAAN,OAAkBt6C,KAAK86C,wBArHrBf,GAeGlrC,aAAe,CACpB+rC,YAAY,GAyGDb,ICpIX,GDoIWA,MClIf,SAAS,KAA2Q,OAA9P,GAAWx6C,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAI1X,EAAI,EAAGA,EAAI2X,UAAUlb,OAAQuD,IAAK,CAAE,IAAI4X,EAASD,UAAU3X,GAAI,IAAK,IAAI9b,KAAO0zB,EAAcJ,OAAOK,UAAUC,eAAeC,KAAKH,EAAQ1zB,KAAQwzB,EAAOxzB,GAAO0zB,EAAO1zB,IAAY,OAAOwzB,IAA2BM,MAAMC,KAAMN,WAIhT,MAAMs7C,GAAqB96C,IACzB,IAAI,OACFC,EAAM,MACNC,KACGC,GACDH,EACJ,OAAoB,IAAMI,cAAc,MAAO,GAAS,CACtD1X,MAAO,CACL2X,MAAO,GACPC,OAAQ,IAEVC,QAAS,YACTE,IAAKR,GACJE,GAAQD,EAAqB,IAAME,cAAc,QAAS,KAAMF,GAAS,KAAM,KAAU,GAAqB,IAAME,cAAc,OAAQ,CAC3II,KAAM,eACNK,EAAG,2JAID,GAA0B,IAAME,WAAW,CAACZ,EAAOM,IAAqB,IAAML,cAAc06C,GAAoB,GAAS,CAC7H76C,OAAQQ,GACPN,KACY,I,OChBf,SAAS46C,GAAT,GAAmD,IAAxB,SAAEjC,EAAF,QAAYltE,GAAW,EAChD,OAAIA,GAAWktE,EAASx0D,OAAS,EACxB,KAGP,yBAAK9D,UAAU,uBAEXw9B,KAAK/a,EAAE,4BAA6B,0BAM5C,SAAS+3C,GAAT,GAA2C,IAAd,QAAEpvE,GAAW,EACxC,OAAKA,EAIH,yBAAK4U,UAAU,yBACb,kBAAC,GAAD,OAJK,KASX,MAAMy6D,WAAoB14C,IAAMC,UAc9BqJ,YAAY1L,GACV2L,MAAM3L,GADW,KA0FnB+6C,eAAiB,KACf,MAAMC,EAAer7C,KAAKs7C,eAAeC,QAAQF,aACjDr7C,KAAKs7C,eAAeC,QAAQC,SAAS,CAAErqC,IAAKkqC,EAAcI,SAAU,YA5FnD,KAqGnBC,aAAgBrpC,IACd,MAAMspC,EAAUtpC,EAAM5S,OACtB,IAAKk8C,EAAS,OAAO,EAErB,MAAM,aAAEC,EAAF,aAAgBP,EAAhB,UAA8BQ,GAAcF,EAM5CG,EAAiBD,EADG,GAJLR,EAAeO,EAMpC57C,KAAKkM,SAAS,CAAE6vC,mBAAoBD,KA9GpC97C,KAAKryB,MAAQ,CACXouE,oBAAoB,GAGtB/7C,KAAKs7C,eAAiB74C,IAAMu5C,YAC5Bh8C,KAAKi8C,uBAAyB,KAGhCpvC,oBACE7M,KAAKs7C,eAAeC,QAAQW,iBAAiB,SAAUl8C,KAAK07C,cAC5D17C,KAAKo7C,iBAGPpuC,uBACEmvC,aAAan8C,KAAKi8C,wBAClBj8C,KAAKs7C,eAAeC,QAAQa,oBAAoB,SAAUp8C,KAAK07C,cAGjExuC,mBAAmBC,EAAWqG,GAE5B,MAAM6oC,EAAoBtB,GAAa5B,iBAAiBhsC,EAAU6rC,UAC5DsD,EAAuBvB,GAAa5B,iBAAiBn5C,KAAKK,MAAM24C,UAGhEuD,GAAuC,OAAjBF,QAAiB,IAAjBA,OAAA,EAAAA,EAAmBt1C,aAAc,KACV,OAApBu1C,QAAoB,IAApBA,OAAA,EAAAA,EAAsBv1C,aAAc,IACtCw1C,GAC3Bv8C,KAAKw8C,oBAGHx8C,KAAKK,MAAMv0B,UAAYqhC,EAAUrhC,SACnCk0B,KAAKo7C,iBAIT33C,SACE,OACE,oCACE,yBACE9C,IAAKX,KAAKs7C,eACV56D,UAAU,gBAEV,yBAAKA,UAAU,yBACZsf,KAAKy8C,cAEPz8C,KAAK08C,uBAMdD,aACE,MAAM,SAAEzD,EAAF,QAAYltE,EAAZ,SAAqBwkD,GAAatwB,KAAKK,MAEvCs8C,EAAiB5B,GAAahC,wBAAwBC,GAC5D,OACE,oCACGh5C,KAAKK,MAAMu8C,mBAEVD,EAAernE,IAAIouC,GACjB,kBAAC,GAAD,eACEz3C,IAAKy3C,EAAQlwC,GACb88C,SAAUA,GACN5M,KAIV,kBAACu3B,GAAD,CAAmBjC,SAAU2D,EAAgB7wE,QAASA,IACtD,kBAACovE,GAAD,CAAqBpvE,QAASA,KAKpC4wE,qBACE,OAAK18C,KAAKryB,MAAMouE,mBAGd,yBAAKr7D,UAAU,+BACb,4BACEykB,QAASnF,KAAKo7C,gBAEd,kBAAC,GAAD,QAPqC,KAmB7CoB,oBAEEL,aAAan8C,KAAKi8C,wBAClBj8C,KAAKi8C,uBAAyB9S,WAAW,IAAMnpC,KAAKo7C,iBAAkB,MAhHpED,GAQGtsC,aAAe,CACpBmqC,SAAU,GACVltE,SAAS,EACT8wE,mBAAoB,MAuHTzB,ICtKX,GDsKWA,MCpKf,SAAS,KAA2Q,OAA9P,GAAW57C,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAI1X,EAAI,EAAGA,EAAI2X,UAAUlb,OAAQuD,IAAK,CAAE,IAAI4X,EAASD,UAAU3X,GAAI,IAAK,IAAI9b,KAAO0zB,EAAcJ,OAAOK,UAAUC,eAAeC,KAAKH,EAAQ1zB,KAAQwzB,EAAOxzB,GAAO0zB,EAAO1zB,IAAY,OAAOwzB,IAA2BM,MAAMC,KAAMN,WAIhT,MAAMm9C,GAAY38C,IAChB,IAAI,OACFC,EAAM,MACNC,KACGC,GACDH,EACJ,OAAoB,IAAMI,cAAc,MAAO,GAAS,CACtD1X,MAAO,CACL2X,MAAO,GACPC,OAAQ,IAEVC,QAAS,YACTE,IAAKR,GACJE,GAAQD,EAAqB,IAAME,cAAc,QAAS,KAAMF,GAAS,KAAM,KAAU,GAAqB,IAAME,cAAc,OAAQ,CAC3II,KAAM,eACNK,EAAG,yCAID,GAA0B,IAAME,WAAW,CAACZ,EAAOM,IAAqB,IAAML,cAAcu8C,GAAW,GAAS,CACpH18C,OAAQQ,GACPN,KACY,I,OClBf,MAAMy8C,GAAwB,KACtB,CACNrsB,KAAM,GACNipB,WAAYqB,GAAa1C,WAAWC,SAItC,MAAMyE,WAAsBt6C,IAAMC,UAQjCqJ,YAAY1L,GACX2L,MAAM3L,GADY,KAmDnB28C,aAAe3qC,IACdrS,KAAKkM,SAAS,CACbukB,KAAMpe,EAAM5S,OAAOzrB,SArDF,KA8EnBipE,sBAAwBn1D,IACvB,MAAMo1D,EAAwB,UAAVp1D,EAAE7b,IAChBkxE,EAAiBr1D,EAAEs1D,QAAUt1D,EAAEu1D,UAAYv1D,EAAEw1D,QAC/CJ,IAAgBC,GACnBr1D,EAAE0wC,iBACFx4B,KAAKu9C,iBACKL,GAAeC,IAEpBr1D,EAAEu1D,UACNr9C,KAAKw9C,eAAe11D,EAAE2X,OAAQ,OAIhCO,KAAKy9C,aAAa31D,EAAE2X,SA3FF,KA8FnBi+C,YAAc,IACN3C,GAAalC,+BAA+B74C,KAAKryB,MAAM8iD,MA/F5C,KAkGnB4jB,UAAY,MACNr0C,KAAKK,MAAM4sB,YACZjtB,KAAKryB,MAAMgwE,iBACR39C,KAAK09C,eArGM,KAwGnBH,cAAgB,KACf,MAAM,SAAEtwB,GAAajtB,KAAKK,OACpB,KAAEowB,GAASzwB,KAAKryB,MACtB,IAAKqyB,KAAKq0C,YACT,OAEDr0C,KAAK49C,SAASrC,QAAQsC,OACtB,MAAMC,EAAa,CAClBrtB,OACAipB,WAAYqB,GAAa1C,WAAWC,QAOrCt4C,KAAKkM,SAAS,CACbyxC,iBAAiB,IAElB1wB,EAAS6wB,GAAY7zD,KACpB2U,SACc3F,IAAT2F,GAEHoB,KAAKkM,SAAS4wC,QAGfrpB,QAAQ,IAAMzzB,KAAKkM,SAAS,CAAEyxC,iBAAiB,MAhIjD39C,KAAKryB,MAAQ,CACZgwE,iBAAiB,KACdb,MAEJ98C,KAAK49C,SAAWn7C,IAAMu5C,YAGvBnvC,qBAGAK,mBAAmBC,EAAWqG,IAG9B/P,SACC,MAAM,KAAEgtB,EAAF,gBAAQktB,GAAoB39C,KAAKryB,MACvC,OACC,yBAAK+S,UAAU,kBACd,yBAAKA,UAAU,yBACd,yBAAKA,UAAU,aACd,8BACCigB,IAAKX,KAAK49C,SACVjvE,KAAK,WACLqF,MAAOy8C,EACPre,SAAUpS,KAAKg9C,aACfhnD,KAAK,IACL+d,YAAY,KACZgqC,QAAUj2D,GAAMkY,KAAKy9C,aAAa31D,EAAE2X,QACpCu+C,UAAWh+C,KAAKi9C,sBAChB/3C,SAAUy4C,IAEX,yBAAKj9D,UAAU,0BACbi9D,EACA,kBAAC,GAAD,MAEA,4BACCj9D,UAAU,gCACVykB,QAASnF,KAAKu9C,cACdr4C,UAAWlF,KAAKq0C,aAEhB,kBAAC,GAAD,WAgBRoJ,aAAaQ,GAEZA,EAAGC,WAAWC,QAAQC,gBAAkBH,EAAGjqE,MAG5CwpE,eAAeS,EAAIjvE,GAElB,GADAivE,EAAGI,QAC6B,iBAArBJ,EAAGK,gBACgB,iBAAnBL,EAAGM,aAA0B,CACvC,IAAIC,EAAMP,EAAGjqE,MACTyqE,EAAWR,EAAGK,eAClBL,EAAGjqE,MAAQwqE,EAAI93C,MAAM,EAAG+3C,GAAYzvE,EAAOwvE,EAAI93C,MAAMu3C,EAAGM,cACxDN,EAAGM,aAAeN,EAAGK,eAAiBG,EAAWzvE,EAAKwV,YAChD,GAAiC,oBAAtBgsC,SAASkuB,UAA0B,CACpD,IAAIC,EAAYnuB,SAASkuB,UAAUE,cACnCD,EAAU3vE,KAAOA,EACjB2vE,EAAUpa,UAAS,GACnBoa,EAAUE,WAlFP9B,GAKEluC,aAAe,GA2IRkuC,U,OCxIf,SAAS+B,KACP,OACE,yBAAKp+D,UAAU,2BACb,2BACGw9B,KAAK/a,EAAE,yCAMhB,MAAM47C,WAAiBt8C,IAAMC,UAqB3BqJ,YAAY1L,GACV2L,MAAM3L,GADW,KA4TnB2+C,oBAAsB,KAChBh/C,KAAKryB,MAAMsxE,yBACfj/C,KAAKk/C,cAAc,CACjB9F,cAAe2B,GAAa5B,iBAAiBn5C,KAAKryB,MAAMqrE,UACxDmG,aAAc,6BAhUC,KAoUnBC,mBAAqB,KACdp/C,KAAKq/C,kBACNr/C,KAAKryB,MAAM2xE,wBAEft/C,KAAKk/C,cAAc,CACjBK,KAAMv/C,KAAKryB,MAAM6xE,UACjBL,aAAc,6BA1UC,KAkVnBM,cAAiBjtE,IAOf,IAAKwtB,KAAK0/C,eAAgB,OAAOna,QAAQC,aAAQvsC,GAEjDzX,KAEA,MAAM,YAAE69B,EAAF,SAAek6B,GAAav5C,KAAKK,MACjC/Y,EAAUyzD,GAAatB,sBAC3Bp6B,EACAk6B,EACA/mE,GAGF,OADAwtB,KAAKkM,SAAS,CAAEyzC,wBAAwB,IACjCr4D,EACJ2C,KAAK2U,IACJoB,KAAKg/C,sBACEpgD,IAER1U,MAAMre,IACL,MAAMu0B,EAAQ8d,KAAK/a,EAAE,8CACrBnD,KAAK4/C,qBAAqB/zE,EAAOu0B,KAGlCqzB,QAAQ,KACPzzB,KAAKkM,SAAS,CAAEyzC,wBAAwB,OA/W3B,KAmXnBE,qBAAuBjG,IAEc,OAA/B55C,KAAKryB,MAAMmyE,iBAA6BlG,GAE5C55C,KAAKkM,SAAS,CACZ4zC,gBAAiBlG,KAxXF,KA4XnBI,cAAiBJ,IAOf,IAAK55C,KAAK0/C,eAAgB,OAAOna,QAAQC,aAAQvsC,GAEjDzX,KAEA,MAAM,YAAE69B,EAAF,SAAek6B,GAAav5C,KAAKK,MAEvC,OADgB06C,GAAapB,cAAct6B,EAAak6B,EAAUK,GAE/D3vD,KAAK2U,IACJoB,KAAKkM,SAASsH,IACL,CACLssC,gBAAiB,KACjB9G,SAAUxlC,EAAUwlC,SAAS92D,OAAO01B,GAAKA,EAAEpkC,KAAOomE,MAItD55C,KAAKg/C,sBAEEpgD,IAER1U,MAAMre,IACL,MAAMu0B,EAAQ8d,KAAK/a,EAAE,8CACrBnD,KAAK4/C,qBAAqB/zE,EAAOu0B,KAGlCqzB,QAAQ,KACPzzB,KAAKkM,SAAS,CACZ6zC,iBAAiB,OA7ZN,KAkanBC,uBAAyB,KACnBhgD,KAAKK,MAAM4/C,sBACbjgD,KAAKK,MAAM4/C,qBAAqBjgD,KAAKryB,MAAMqrE,SAASx0D,SAlatDwb,KAAKryB,MAAQ,CACXmmE,QAASrzD,KAAS,qBAClBu4D,SAAU,GACVwG,UAAW,KACXP,yBAAyB,EACzBK,wBAAwB,EACxBK,wBAAwB,EACxBG,gBAAiB,KACjBC,iBAAiB,EACjBG,YAAa7/C,EAAM8/C,eAAiB9/C,EAAM+/C,eAC1CC,aAAc,MAIlBxzC,oBACE7M,KAAKg/C,sBAGPv7C,SACE,IAAKzD,KAAK0/C,eACR,OACE,kBAACZ,GAAD,MAGJ,MAAM,UAAEn6C,GAAc3E,KAAKK,MAC3B,OACE,oCACE,yBAAK3f,UAAU,WAAWkI,MAAO,CAAE+b,cAChC3E,KAAKiuB,eACLjuB,KAAK21B,kBAMdA,gBACE,MAAM,QAAEme,EAAF,SAAWkF,EAAX,wBAAqBiG,EAArB,YAA8CiB,GAAgBlgD,KAAKryB,MACzE,OAAIuyE,EACK,KAELA,EAEA,yBAAKx/D,UAAU,+BACZw9B,KAAK/a,EAAE,+BAMZ,oCACE,kBAAC,GAAD,CACE61C,SAAU,IAAIA,GACdltE,QAASmzE,EACT3uB,SAAUtwB,KAAK6/C,qBACfjD,mBAAoB58C,KAAKsgD,oBAE3B,kBAAC,GAAD,CACEl2C,YAAY,EACZC,aAAc,CAACypC,KAEjB,wBAAIpzD,UAAU,sBACd,yBAAKA,UAAU,oBACb,kBAAC,GAAD,CAAeusC,SAAUjtB,KAAKy/C,iBAE/Bz/C,KAAKugD,mBACLvgD,KAAKwgD,4BAKZvyB,eACE,MAAM,WAAEwyB,EAAF,cAAcN,GAAkBngD,KAAKK,OACrC,YAAE6/C,GAAgBlgD,KAAKryB,MAC7B,GAAI8yE,EACF,OAAO,KAET,MAAMC,EAAiB,KACrB1gD,KAAKkM,SAASsH,IACL,CACL0sC,aAAc1sC,EAAU0sC,gBAK9B,IAAIS,EAwBJ,OAtBEA,EADER,EAEA,yBAAKh7C,QAASu7C,EAAgBhgE,UAAU,WACtC,8BACGw9B,KAAK/a,EAAE,4BAET+8C,EACC,kBAAC,GAAD,MAEA,kBAAC,GAAD,OAMJ,oCACE,8BACGhiC,KAAK/a,EAAE,6BAOd,oCACE,4BAAQziB,UAAU,oBACfigE,IAEDT,GACA,wBAAIx/D,UAAU,uBAMtB4/D,kBACE,IAAKtgD,KAAKq/C,gBAAiB,OAAO,KAElC,IAAInqE,EAaJ,OAXEA,EADE8qB,KAAKryB,MAAM2xE,uBACH,kBAAC,GAAD,MAGR,4BACEn6C,QAASnF,KAAKo/C,oBAEblhC,KAAK/a,EAAE,8BAMZ,yBAAKziB,UAAU,uBACZxL,GAKPqrE,mBACE,MAAM,aAAEF,EAAF,wBAAgBpB,GAA4Bj/C,KAAKryB,MACvD,IAAK0yE,EAAc,OAAO,KAE1B,MAAMO,EAAgBhtE,KAAOysE,GAAcxsE,OAAO,YAC5CgtE,EAAgB3iC,KAAK/a,EAAE,2BAA4B,CAAEoX,KAAMqmC,IAG3DE,EAAa,CADD,yBAMlB,OAJI7B,GACF6B,EAAWl6C,KAAX,UAHgB,wBAGhB,cAIA,yBAAKlmB,UAAWogE,EAAWt5D,KAAK,KAAM2d,QAASnF,KAAKg/C,qBAClD,8BACG6B,GAEH,kBAAC,GAAD,OAKNL,2BACE,MAAM,gBAAEV,EAAF,gBAAmBC,GAAoB//C,KAAKryB,MAC5C25C,EAA6B,OAApBw4B,EACTt4B,EAAW,KACfxnB,KAAKkM,SAAS,CACZ4zC,gBAAiB,OAEnBt+D,MAGF,OACE,kBAAC,GAAD,CACE4e,MAAO8d,KAAK/a,EAAE,8CACdmkB,OAAQA,EACRC,SAAUC,EACVA,SAAUA,EACVC,UAAW,IAAMznB,KAAKg6C,cAAc8F,GACpCp4B,UAAWq4B,EACXp4B,YAAa,IAEb,0BAAMjnC,UAAU,cACbw9B,KAAK/a,EAAE,+CAOhBu8C,eACE,MAAM,YAAErgC,EAAF,SAAek6B,GAAav5C,KAAKK,MACvC,QAASgf,KAAiBk6B,EAG5BwH,kBACE,MAAM/H,EAAWh5C,KAAK28C,iBAChBvD,EAAgBJ,EAASA,EAASx0D,OAAS,GACjD,OAAoB,OAAb40D,QAAa,IAAbA,OAAA,EAAAA,EAAeryC,aAAc,KAGtCi6C,kBACE,MAAMC,EAAgBjhD,KAAK28C,iBAAiB,GAC5C,OAAIsE,EACKA,EAAcl6C,YAEd,IAAI7V,MAAOgwD,cAItBtB,qBAAqB/zE,EAAOu0B,GAC1B,IAAI3uB,EAAUwV,GAAsBpb,GAChCu0B,IACF3uB,EAAO,UAAM2uB,EAAN,aAAgB3uB,IAEzB8P,GAAsB9P,EAASuuB,KAAKryB,MAAMmmE,SAG5C6I,iBACE,OAAO5B,GAAahC,wBAAwB/4C,KAAKryB,MAAMqrE,UAGzDmI,kBAAkBC,GAChB,MAAM,SAAEpI,GAAah5C,KAAKryB,MACpB0zE,EAAqBrI,EAAS1jE,IAAIouC,GAAWA,EAAQlwC,IACrD8tE,EAAoBF,EAAYl/D,OAAOwhC,IAAY29B,EAAmBl/D,SAASuhC,EAAQlwC,KACvFmpE,EAAiB5B,GAAahC,wBAAwB,IAAIC,KAAasI,IAC7EthD,KAAKkM,SAAS,CAAE8sC,SAAU2D,IAG5BuC,cAAclJ,GACZ,IAAKh2C,KAAK0/C,eAAgB,OAe1B,IAAIp4D,EACJ,GAfA9F,MACAw0D,EAASjvB,KAAaivB,EAAQ,CAC5BoD,cAAe,KACfmG,KAAM,KACNJ,aAAc,0BACdoC,YAAY,KAGHA,YACTvhD,KAAKkM,SAAS,CACZ,CAAC8pC,EAAOmJ,eAAe,IAKvBnJ,EAAOuJ,KACTj4D,EAAUyC,KAAMC,IAAIgsD,EAAOuJ,UACtB,CACL,MAAM,YAAElgC,EAAF,SAAek6B,GAAav5C,KAAKK,MACvC/Y,EAAUyzD,GAAa1B,sBAAsBh6B,EAAak6B,GAG5D,OAAOjyD,EACJ2C,KAAK2U,IACJ,MAAMwiD,EAAcxiD,EAAKpsB,KAAK6/D,QAI9B,GAHAryC,KAAKmhD,kBAAkBC,GACvBphD,KAAKggD,yBAEwB,OAAzBhK,EAAOoD,cAKT,OAHAp5C,KAAKkM,SAAS,CACZszC,UAAW5gD,EAAKpsB,KAAKgvE,QAEhB5iD,EAMP,GADsCwiD,EAAYK,KAAK/9B,GAAWA,EAAQlwC,KAAOwiE,EAAOoD,cAAc5lE,IAEpG,OAAOorB,EAKX,MAAM8iD,EAAoB9iD,EAAKpsB,KAAKgvE,MACpC,OAA0B,OAAtBE,EACK1hD,KAAKk/C,cAAc,IACrBlJ,EACHuL,YAAY,EACZhC,KAAMmC,IAIH9iD,IAER1U,MAAMre,IACL,GAAImqE,EAAOuL,WAAY,CACrB,MAAMnhD,EAAQ8d,KAAK/a,EAAE,8CACrBnD,KAAK4/C,qBAAqB/zE,EAAOu0B,GAEnC,MAAMv0B,IAEP4nD,QAAQ,KACHuiB,EAAOuL,YACTvhD,KAAKkM,SAAS,CACZ,CAAC8pC,EAAOmJ,eAAe,IAGtBnJ,EAAOuJ,MAEVv/C,KAAKkM,SAAS,CACZm0C,aAAc,IAAInvD,SAwB5BmuD,gBACE,OAAgC,OAAzBr/C,KAAKryB,MAAM6xE,WApWhBT,GAaGlwC,aAAe,CACpBlK,UAAW,QACX87C,YAAY,EACZN,eAAe,EACfC,gBAAgB,EAChBH,qBAAsBt4C,OA4aXwB,ICjeX,GCEW41C,GF+dA51C,aAAW41C,IC/d1B,SAAS,KAA2Q,OAA9P,GAAWx/C,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAI1X,EAAI,EAAGA,EAAI2X,UAAUlb,OAAQuD,IAAK,CAAE,IAAI4X,EAASD,UAAU3X,GAAI,IAAK,IAAI9b,KAAO0zB,EAAcJ,OAAOK,UAAUC,eAAeC,KAAKH,EAAQ1zB,KAAQwzB,EAAOxzB,GAAO0zB,EAAO1zB,IAAY,OAAOwzB,IAA2BM,MAAMC,KAAMN,WAIhT,MAAMiiD,GAAoBzhD,IACxB,IAAI,OACFC,EAAM,MACNC,KACGC,GACDH,EACJ,OAAoB,IAAMI,cAAc,MAAO,GAAS,CACtDG,QAAS,cACTD,OAAQ,GACRD,MAAO,GACPI,IAAKR,GACJE,GAAQD,EAAqB,IAAME,cAAc,QAAS,KAAMF,GAAS,KAAM,KAAU,GAAqB,IAAME,cAAc,OAAQ,CAC3II,KAAM,eACNK,EAAG,ybAID,GAA0B,IAAME,WAAW,CAACZ,EAAOM,IAAqB,IAAML,cAAcqhD,GAAmB,GAAS,CAC5HxhD,OAAQQ,GACPN,KACY,IE1BX,GF0BW,IExBf,SAAS,KAA2Q,OAA9P,GAAWd,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAI1X,EAAI,EAAGA,EAAI2X,UAAUlb,OAAQuD,IAAK,CAAE,IAAI4X,EAASD,UAAU3X,GAAI,IAAK,IAAI9b,KAAO0zB,EAAcJ,OAAOK,UAAUC,eAAeC,KAAKH,EAAQ1zB,KAAQwzB,EAAOxzB,GAAO0zB,EAAO1zB,IAAY,OAAOwzB,IAA2BM,MAAMC,KAAMN,WAIhT,MAAMkiD,GAAkB1hD,IACtB,IAAI,OACFC,EAAM,MACNC,KACGC,GACDH,EACJ,OAAoB,IAAMI,cAAc,MAAO,GAAS,CACtDG,QAAS,cACTF,MAAO,GACPC,OAAQ,GACRE,KAAM,eACNC,IAAKR,GACJE,GAAQD,EAAqB,IAAME,cAAc,QAAS,KAAMF,GAAS,KAAM,KAAU,GAAqB,IAAME,cAAc,OAAQ,CAC3IS,EAAG,2RAID,GAA0B,IAAME,WAAW,CAACZ,EAAOM,IAAqB,IAAML,cAAcshD,GAAiB,GAAS,CAC1HzhD,OAAQQ,GACPN,KACY,IC1BX,GD0BW,ICxBf,SAAS,KAA2Q,OAA9P,GAAWd,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAI1X,EAAI,EAAGA,EAAI2X,UAAUlb,OAAQuD,IAAK,CAAE,IAAI4X,EAASD,UAAU3X,GAAI,IAAK,IAAI9b,KAAO0zB,EAAcJ,OAAOK,UAAUC,eAAeC,KAAKH,EAAQ1zB,KAAQwzB,EAAOxzB,GAAO0zB,EAAO1zB,IAAY,OAAOwzB,IAA2BM,MAAMC,KAAMN,WAIhT,MAAMmiD,GAAmB3hD,IACvB,IAAI,OACFC,EAAM,MACNC,KACGC,GACDH,EACJ,OAAoB,IAAMI,cAAc,MAAO,GAAS,CACtDG,QAAS,cACTF,MAAO,GACPC,OAAQ,GACRE,KAAM,eACNC,IAAKR,GACJE,GAAQD,EAAqB,IAAME,cAAc,QAAS,KAAMF,GAAS,KAAM,KAAU,GAAqB,IAAME,cAAc,OAAQ,CAC3IS,EAAG,unBAID,GAA0B,IAAME,WAAW,CAACZ,EAAOM,IAAqB,IAAML,cAAcuhD,GAAkB,GAAS,CAC3H1hD,OAAQQ,GACPN,KACY,I,OCFf,SAASyhD,GAA6BvlC,EAAQC,EAA9C,GAAyF,IAAjC,YAAEulC,EAAF,cAAeC,GAAiB,EACpF,OACI,yBAAKp5D,MAAO,CAAEq5D,SAAU,gBACnBD,EACAzlC,EAAOvtC,KAFZ,IAEkB,kBAAC,GAAD,CAAoB0R,UAAU,qBAC3CqhE,GAMb,SAAS7nC,GAAiB7Z,GACtB,IAAInrB,EACA,kBAACiT,GAAA,EAAD,CAAOC,QAAQ,4BASnB,OANIiY,EAAMv0B,QACNoJ,EAAU,kBAAC,GAAD,MACHmrB,EAAMx0B,QACbqJ,EAAU,0BAAMwL,UAAU,eAAe2f,EAAMx0B,QAG5C,yBAAK6U,UAAU,eAAexL,GAGzC,MAAMgtE,WAAuBz/C,IAAMC,UAW/BqJ,YAAY1L,GACR2L,MAAM3L,GADS,KAMnB1yB,MAAQ,GAJJqyB,KAAKryB,MAAQ,GAQjBk/B,qBAGApJ,SACI,MAAM,EAAEN,EAAF,UAAKukB,EAAL,MAAgBy6B,GAAUniD,KAAKK,MACrC,GAAIqnB,EACA,OAAO,kBAAC,GAAD,MAEX,IAAI06B,EAAc,qCAClB,OAAKD,EAKD,yBAAKzhE,UAAU,2BACV0hE,EACApiD,KAAK8b,eANH,qCAWfA,cACI,MAAM,EAAE3Y,EAAF,MAAKg/C,EAAL,UAAYz6B,GAAc1nB,KAAKK,MAE/B63B,EAAUtjC,KACVpiB,EAAO2vE,EACPpmC,EAAU,CACZ,CACIl4B,UAAW,cACX7U,KAAMm0B,EAAE,qBAAsB,OAC9B8Y,QAAS,cACTD,MAAM,EACN0S,OAAQ,GACRxsC,OAAQi6B,sBAAW,CACfpI,YAAa5Q,EAAE,qBAAsB,OACrCva,MAAO,CACHy5D,WAAY,WAIxB,CACIx+D,UAAW,eACX7U,KAAMm0B,EAAE,0BACR8Y,QAAS,cACTD,MAAM,EACN0S,OAAQ,GACRxsC,OAAQi6B,sBAAW,CACfpI,YAAa5Q,EAAE,0BACfva,MAAO,CACHq5D,SAAU,YAItB,CACIp+D,UAAW,uBACX7U,KAAMm0B,EAAE,8BACR8Y,QAAS,aACTD,MAAM,EACN0S,OAAQ,IAEZ,CACI7qC,UAAW,iBACX7U,KAAMm0B,EAAE,gCACR8Y,QAAS,aACTD,MAAM,EACN0S,OAAQ,IAEZ,CACI7qC,UAAW,gBACX7U,KAAMm0B,EAAE,+BACR8Y,QAAS,aACTD,MAAM,EACN0S,OAAQ,GACR4zB,gBAAiBR,GACjBS,YAAa,IAAMp/C,EAAE,yCAEzB,CACItf,UAAW,oBACX7U,KAAMm0B,EAAE,mCACR8Y,QAAS,aACTD,MAAM,EACN0S,OAAQ,GACR4zB,gBAAiBR,GACjBS,YAAa,IAAMp/C,EAAE,4CAEzB,CACItf,UAAW,sBACX7U,KAAMm0B,EAAE,qCACR8Y,QAAS,aACTD,MAAM,EACN0S,OAAQ,GACR4zB,gBAAiBR,GACjBS,YAAa,IAAMp/C,EAAE,8CAEzB,CACItf,UAAW,yBACX7U,KAAMm0B,EAAE,uCACR8Y,QAAS,aACTD,MAAM,EACN0S,OAAQ,GACR+oB,KAAMvf,GAEV,CACIr0C,UAAW,0BACX7U,KAAMm0B,EAAE,uCACR8Y,QAAS,aACTD,MAAM,EACN0S,OAAQ,GACRC,MAAO,SACPhS,UAAY3oC,GACHA,EAED,kBAAC,GAAD,CAAW0M,UAAU,oDAFN,KAKvB4hE,gBAAiBR,GACjBS,YAAa,IAAMp/C,EAAE,gDAEzB,CACItf,UAAW,aACX7U,KAAMm0B,EAAE,4BACR8Y,QAAS,aACTD,MAAM,EACN0S,OAAQ,GACR9lC,MAAO,CACH2X,MAAO,SAEXoc,UAAW,CAAC3oC,EAAO2jE,IACR/jE,KAAOI,GAAOH,OAAO,oBAEhC4jE,MAAM,GAEV,CACI5zD,UAAW,aACX7U,KAAMm0B,EAAE,4BACR8Y,QAAS,aACTD,MAAM,EACN0S,OAAQ,GACR9lC,MAAO,CACH2X,MAAO,SAEXoc,UAAW,CAAC3oC,EAAO2jE,IACV3jE,EACEJ,KAAOI,GAAOH,OAAO,oBADT,KAGvB4jE,MAAM,GAEV,CACI5zD,UAAW,iBACX7U,KAAMm0B,EAAE,0BACR8Y,QAAS,cACTD,MAAM,EACN0S,OAAQ,GACRC,MAAO,SACPhS,UAAW,CAAC3oC,EAAOi9B,KACf,MAAMuxC,EAAY,mCACZ1B,EAAa,CAAC0B,GACpB,IAAIC,EAAMzzE,EASV,OARIgF,EAAQ,GACRyuE,EAAOC,GACP1zE,EAAOm0B,EAAE,+BAAgC,CAAEwE,MAAO3zB,IAClD8sE,EAAWl6C,KAAX,UAAmB47C,EAAnB,qBAEAC,EAAOE,GACP3zE,EAAOm0B,EAAE,+BAGT,yBAAKziB,UAAWogE,EAAWt5D,KAAK,MAC5B,kBAACi7D,EAAD,MAAS,IACRzzE,MAKnBkT,OAAO7N,IAA0B,IAAhBA,EAAOojE,MAOpBmL,EAAY,CACdC,gBAAiB,wCACjBC,SAAUnsE,GACN,6BACI,kBAAC,GAAD,CACI0oC,YAAa1oC,EAAIosE,aACjBxJ,SAAU5iE,EAAInD,GACdmxB,UAAU,QACVw7C,eAAe,EACfC,gBAAgB,EAChBK,YAAY,EACZR,qBAAuBt4C,GAAU3H,KAAKK,MAAM4/C,qBAAqBtpE,EAAKgxB,OAMhF0V,EAAmB,kBAAC,GAAD,CAAkBvxC,QAAS47C,IAEpD,OACI,oCACI,kBAAC,KAAD,CACI3K,YAAU,EACVimC,OAAK,EACLhmC,UAAU,EACVf,QAAQ,4CACRgB,eAAe,gFACfsZ,WAAW,iBACXrZ,SAAS,KACT1qC,KAAMA,EACNupC,QAASA,EACT6mC,UAAWA,EACX1gE,OAAQi7B,OACRC,eAAe,MACfE,cAvCU,CAAC,CACnBz5B,UAAW,aACXC,MAAO,SAsCCu5B,iBAAkBA,MA7OhC6kC,GAOKrzC,aAAe,CAClBoxC,qBAAsB,CAACtpE,EAAKgxB,QA4OrBjC,sBAAkBw8C,I,OCjQjC,MAAMe,WAAiCxgD,IAAMC,UAKzCqJ,YAAY1L,GAAQ,IAAD,EACf2L,MAAM3L,GADS,YAqMnB6iD,iBAAoBhtD,IAChB8J,KAAKyqB,WAAU,IAtMA,KAyMnB0qB,gBAAmBn4D,IAEfoE,GADgB,kBAAC,GAAY8xD,0BAAb,CAAuCl2D,WAAYA,IAClCgjB,KAAKK,MAAM4H,SAASD,UACrDhI,KAAKyqB,WAAU,IA5MA,KA+MnBA,UAAY,WAAqB,IAApB3+C,IAAmB,yDAC5B,MAAM,GAAE0H,GAAO,EAAK6sB,MACpB,IAAK7sB,EACD,OAEJ,MAAMshC,EAAa,EAAKzU,MAAM4H,SAASD,SACnCl8B,GACA,EAAKogC,SAAS,CAAEi3C,kBAAkB,IAEtCxP,GACKrB,aAAa9+D,EAAIshC,GACjB7qB,KAAMk8B,IACCA,EAAO7F,WACP,EAAK8iC,cAAcj9B,EAAO7xC,WAGjCm/C,QAAQ,KACD3nD,GACA,EAAKogC,SAAS,CAAEi3C,kBAAkB,OAjO/B,KAsOnBC,cAAgB9uE,IACZ0rB,KAAKkM,SAAS,CAAE53B,aAvOD,KA0OnB67C,YAAc,KAAO,IAAD,EAChB,OACIv7B,SAAkB,UAACoL,KAAKryB,MAAM2G,eAAZ,aAAC,EAAoBd,KA5O5B,KAgPnB48C,kBAAoB,KAChBpwB,KAAKkM,SAAS,CACV6jB,iBAAiB,KAlPN,KAsPnBM,eAAiB,KACTrwB,KAAKryB,MAAMoyE,kBAGf//C,KAAKkM,SAAS,CACV6jB,iBAAiB,IAErBvuC,OA7Pe,KAgQnB8uC,SAAW,KAAO,IAAD,EACb,MAAM98C,EAAE,UAAGwsB,KAAKryB,MAAM2G,eAAd,aAAG,EAAoBd,GAC1BA,IAAMwsB,KAAKryB,MAAMoyE,kBAGtB//C,KAAKkM,SAAS,CACV6zC,iBAAiB,IAErBv+D,KACAmyD,GAAYlB,cAAcj/D,EAhRT,yBAgR+ByW,KAAMk8B,IAC9CA,EAAO7F,YACPl/B,GACI,2CACAwY,GAAKS,eACL,GAEJm2B,SAASC,KAAKC,UAAUC,OAAO,cAC/B3wB,KAAKqjD,wBAGR5vB,QAAQ,KACLzzB,KAAKkM,SAAS,CAAE6zC,iBAAiB,QArR1B,KAyRnBsD,mBAAqB,KACjB,MAAMn7C,EAAQyrC,GAAY1B,iBAC1BjyC,KAAKK,MAAMmG,QAAQI,KAAKsB,IA3RT,KA0SnB+3C,qBAAuB,CAACtI,EAAMhwC,KAC1B3H,KAAKkM,SAAUsH,IACJ,CACHl/B,QAAS,IACFk/B,EAAUl/B,QACb6tE,MAAO3uC,EAAUl/B,QAAQ6tE,MAAM7sE,IAAIguE,GAAeA,EAAY9vE,KAAOmkE,EAAKnkE,GAAK,IACxE8vE,EACHC,eAAgB57C,GAChB27C,QA/ShBtjD,KAAKryB,MAAQ,CACT2G,QAAS,GACT6uE,kBAAkB,EAClBpzB,iBAAiB,EACjBgwB,iBAAiB,GAIzBlzC,oBACI7M,KAAKyqB,YAGThnB,SACI,MAAM,EAAEN,GAAMnD,KAAKK,OACb,QAAE/rB,EAAF,iBAAW6uE,GAAqBnjD,KAAKryB,MAC3C,OACI,yBAAK+S,UAAU,sBACX,kBAACmmB,GAAA,EAAD,CAAKnmB,UAAU,2BACX,kBAAComB,GAAA,EAAD,CAAK2D,GAAG,QACJ,kBAACoT,GAAD,CACI1Y,QAASnF,KAAKqjD,mBACdr0E,KAAMm0B,EAAE,eAAgB,aAG/BnD,KAAKmwB,eACF,kBAACrpB,GAAA,EAAD,CAAKpmB,UAAU,YACX,kBAAC,GAAD,CACI1R,KAAK,kBACLm2B,QAASnF,KAAKowB,kBACdlrB,SACIlF,KAAKK,MAAM0/C,oBAM/B,kBAACl5C,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,KACI,kBAACkD,GAAA,EAAD,CAAMtpB,UAAU,4BACZ,kBAACqwB,GAAA,EAAD,KACK/Q,KAAKiuB,gBAEV,kBAAChkB,GAAA,EAAD,CAAUvpB,UAAU,QACfsf,KAAKkuB,qBACN,kBAAC,GAAD,CAAgBi0B,MAAK,OAAE7tE,QAAF,IAAEA,OAAF,EAAEA,EAAS6tE,MAAOz6B,UAAWy7B,EAAkBlD,qBAAsBjgD,KAAKigD,2BAM9GjgD,KAAK8wB,qBAKlB7C,eAAgB,IAAD,IACX,MAAM,EAAE9qB,GAAMnD,KAAKK,OACb,QAAE/rB,GAAY0rB,KAAKryB,MACnBuqD,EAAUtjC,KAEhB,OACI,kBAACiS,GAAA,EAAD,CAAKnmB,UAAU,wBACX,kBAAComB,GAAA,EAAD,CAAKgK,GAAG,IAAIpwB,UAAU,QAClB,kBAAC,GAAD,CACIwkB,UAAQ,EACRwO,UAAWvQ,EAAE,sBACbnvB,MAAK,UAAEM,EAAQgP,cAAV,aAAE,EAAgBs/B,aAG/B,kBAAC9b,GAAA,EAAD,CAAKgK,GAAG,IAAIpwB,UAAU,QAClB,kBAAC,GAAD,CACIwkB,UAAQ,EACRwO,UAAWvQ,EAAE,iBAAkB,WAC/BnvB,MAAOgsB,KAAKwjD,wBAGpB,kBAAC18C,GAAA,EAAD,CAAKgK,GAAIonB,EAAU,IAAM,GAAIx3C,UAAU,QACnC,kBAAC,GAAD,CACIwkB,UAAQ,EACRwO,UAAWvQ,EAAE,kBAAmB,SAChCnvB,MAAK,UAAEM,EAAQgP,cAAV,aAAE,EAAgBlW,QAI3B8qD,GACA,kBAACpxB,GAAA,EAAD,CAAKgK,GAAG,IAAIpwB,UAAU,aAClB,kBAAC,GAAYqyD,mBAAb,CAAgCz+D,QAASA,EAAS0+D,YAAa,CAC3DxyC,OAAQ,OACRijD,aAAc,MACdC,QAAS,OACTC,aAAc,SACdC,eAAgB,SAChB3B,SAAU,YAQlCnxB,oBACI,MAAM,EAAE3tB,GAAMnD,KAAKK,OACb,QAAE/rB,EAAF,gBAAWyrE,GAAoB//C,KAAKryB,MAE1C,OACI,kBAACi6C,GAAA,EAAD,CACIN,OAAQtnB,KAAKryB,MAAMoiD,gBACnBxI,SAAUvnB,KAAKqwB,eACftI,SAAS,SACTrnC,UAAU,uCAEV,kBAACsnC,GAAA,EAAD,CAAWtnC,UAAU,OACjB,kBAACmmB,GAAA,EAAD,CAAKnmB,UAAU,QACX,kBAAComB,GAAA,EAAD,KACI,0BAAMpmB,UAAU,WAAhB,gCAIJ,kBAAComB,GAAA,EAAD,CAAKpmB,UAAU,mCACX,kBAAC,GAAD,CACI1R,KAAMm0B,EAAE,gBAAiB,SACzBgC,QAASnF,KAAKqwB,mBAI1B,kBAACxpB,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,KACI,kBAAC,GAAD,CACIsD,YAAY,EACZC,aAAc,CA3IrB,6BA+IL,kBAACxD,GAAA,EAAD,CAAKnmB,UAAU,QACX,kBAAComB,GAAA,EAAD,KACI,uBAAGpmB,UAAU,cAAb,wCAC0C,IACtC,2BAAIsf,KAAKwjD,sBAFb,OAMR,kBAAC38C,GAAA,EAAD,CAAKnmB,UAAU,cACX,kBAAComB,GAAA,EAAD,CAAKgK,GAAG,IAAIpwB,UAAU,QAClB,kBAAC26B,GAAA,EAAD,CACIlQ,MAAM,UACN0Q,SAAO,EACPP,OAAK,EACLnW,QAASnF,KAAKqwB,eACdnrB,SAAU66C,GAET58C,EAAE,iBAAkB,gBAG7B,kBAAC2D,GAAA,EAAD,CAAKgK,GAAG,IAAIpwB,UAAU,QAClB,kBAAC26B,GAAA,EAAD,CACIlQ,MAAM,UACNmQ,OAAK,EACLnW,QAASnF,KAAKswB,SACdprB,SAAU66C,GAETA,EACG,kBAAC,GAAD,MAEA,+BAUhC7xB,qBACI,MAAM,QAAE55C,GAAY0rB,KAAKryB,MACzB,GAAI,OAAC2G,QAAD,IAACA,OAAD,EAACA,EAASd,GAId,OACI,yBAAKkN,UAAU,wBACX,yBAAKA,UAAU,aACX,kBAAC,GAAD,CACIpM,QAASA,EACT4vC,mBAAmB,EACnB8wB,wBAAyBh1C,KAAKkjD,iBAC9B/N,gBAAiBn1C,KAAKm1C,gBACtBz0D,UAAU,WAgG9B8iE,qBAEI,MAAM,QAAElvE,GAAY0rB,KAAKryB,MACzB,IAAW,OAAP2G,QAAO,IAAPA,OAAA,EAAAA,EAASuiB,gBAAT,OAAyBviB,QAAzB,IAAyBA,OAAzB,EAAyBA,EAASwiB,YAAY,CAC9C,MAAM+sD,EAAuBjwE,KAAOU,EAAQuiB,cAAchjB,OAAO,aAC3DiwE,EAAqBlwE,KAAOU,EAAQwiB,YAAYjjB,OAAO,aAC7D,MAAM,GAAN,OAAUgwE,EAAV,cAAoCC,GAEpC,OAAO,MAwBJ36C,oBACX1D,YANqB93B,IACd,IAKP83B,CAAyBC,eAAkBu9C,MCtV/C,MAAMc,GAAe,6BA2JrB,MAAMtS,GAA+B7tD,IACjC,MAAM,MAACE,EAAD,UAAQD,GAAaD,EAW3B,MAAM,GAAN,OAVqB,CACjB8tD,IAAK,GACLC,KAAM,KAQa7tD,IAAvB,OANqB,CACjB,cAAe,eACf,OAAU,SACV,UAAa,aAG4BD,IAAcA,IAoD/D,MAAM+tD,GAAkC/+D,IACpC,MAAMg/D,EAA4B,CAACj9B,EAAQk9B,EAAgB99D,KAChD,IACA4gC,EACH,CAACk9B,GAAiB99D,IAG1B,IAAI4gC,EAAS,GACb,GAAI/hC,EAAQyQ,OAAQ,CAEhBsxB,EAASi9B,EAA0Bj9B,EAAQ,SAD7B/hC,EAAQyQ,OAAOtP,OAGjC,GAAInB,EAAQF,SAAU,CAElBiiC,EAASi9B,EAA0Bj9B,EAAQ,eAD7BhhC,KAAOf,EAAQF,UAAUkB,OAAO,YAGlD,GAAIhB,EAAQD,OAAQ,CAEhBgiC,EAASi9B,EAA0Bj9B,EAAQ,aAD7BhhC,KAAOf,EAAQD,QAAQiB,OAAO,YAGhD,GAAIhB,EAAQulB,UAAW,CACnB,MAAM25C,EAAgBl/D,EAAQulB,UAAUpkB,MACpCurB,OAAOwiB,OAAO/pB,IAAU7V,SAAS4vD,KACjCn9B,EAASi9B,EAA0Bj9B,EAAQ,YAAam9B,IAGhE,OAAOn9B,GAGI,QAEXo9B,kBAxPG,SAA2Bx+D,GAC9B,IAAI+0B,EAMJ,OAJIA,EADA3T,KACOgF,GAAKiD,uCAELjD,GAAKiB,mCAET0N,EAAK1e,QrLzBc,YqLyBUrW,IAkPpCy+D,eA/OG,WACH,OAAIr9C,KACOgF,GAAKgD,oCAELhD,GAAKgB,iCA4OhBs3C,iBAxOG,SAA0Br/D,EAAS+Q,EAASG,GAAgC,IAApB+wB,EAAmB,uDAAN,KACxEh0B,GAAMC,SAASuW,GAAQC,kBACvB,MAAMqd,EAAS,CACXu9B,SAAUV,GAA4B7tD,GACtCI,KAAMD,EAAWC,KACjBouD,UAAWruD,EAAWE,eACnB2tD,GAA+B/+D,IAEtC,OAAOkX,KACFC,IADE,UACK+5D,GADL,KACsB,CAACnvC,WACzB3qB,KAAM2U,IACH,MAAM,KAACpsB,GAAQosB,EACT1I,EAAO1jB,EAAK6/D,QACZnuD,EAAW1R,EAAKm1B,MAMtB,OAJA7mB,GAAMC,SACFuW,GAAQE,iBAAiBtB,EAAMhS,EAAUrR,IAGtC,CAAEytC,WAAW,EAAMpqB,UAE7BhM,MAAOla,IACJ,MAAMnC,EAAeoZ,GAAsBjX,GAc3C,OAbA8Q,GAAMC,SAASuW,GAAQG,cAAc5pB,IAEjCinC,IACAtzB,KACAD,GACI,kBAAC4G,GAAA,EAAD,CAAOC,QAAQ,oDAAf,uCACsC,CAAEva,iBAExCinC,GACA,IAID,CAAEwL,WAAW,EAAOzyC,mBAqMnCykE,aAjMG,SAAsB9+D,GAAwB,IAApBshC,EAAmB,uDAAN,KAE1C,OAAO/qB,KACFC,IADE,UACK+5D,GADL,YACqBvwE,EADrB,MAEFyW,KAAM2U,IACI,CAAE0hB,WAAW,EAAMhsC,QAASsqB,EAAKpsB,QAE3C0X,MAAOla,IACJ,MAAMnC,EAAeoZ,GAAsBjX,GAa3C,OAXI8kC,IACAtzB,KACAD,GACI,kBAAC4G,GAAA,EAAD,CAAOC,QAAQ,oDAAf,uCACsC,CAAEva,iBAExCinC,GACA,IAID,CAAEwL,WAAW,EAAOzyC,mBA6KnC4kE,cAzKG,SAAuBj/D,GAAwB,IAApBshC,EAAmB,uDAAN,KAC3C,OAAO/qB,KACF8vB,OADE,UACQkqC,GADR,mBAC+BvwE,EAD/B,MAEFyW,KAAM2U,IACI,CAAE0hB,WAAW,EAAMpqB,KAAM0I,EAAKpsB,QAExC0X,MAAOla,IACJ,MAAMnC,EAAeoZ,GAAsBjX,GAa3C,OAXI8kC,IACAtzB,KACAD,GACI,kBAAC4G,GAAA,EAAD,CAAOC,QAAQ,qDAAf,yCACwC,CAAEva,iBAE1CinC,GACA,IAID,CAAEwL,WAAW,EAAOzyC,mBAsJnCm2E,YAlJG,SAAqBxwE,GAAwB,IAC5CuyB,EADwB+O,EAAmB,uDAAN,KAQzC,OALI/O,EADAvyB,EACQ,UAAMuwE,GAAN,iBAA2BvwE,EAA3B,KAEA,UAAMuwE,GAAN,UAGLh6D,KACF2U,KAAKqH,GACL9b,KAAM2U,IACI,CAAE0hB,WAAW,EAAMtjC,WAAY4hB,EAAKpsB,KAAM3E,kBAAcorB,KAElE/O,MAAOla,IAAS,IAAD,IACZ,IAAInC,EAAc2kE,EAGlB,GAA8B,OAAvB,OAAHxiE,QAAG,IAAHA,GAAA,UAAAA,EAAKqX,gBAAL,eAAe8G,SAAkByxB,MAAMkL,QAAN,OAAc96C,QAAd,IAAcA,GAAd,UAAcA,EAAKqX,gBAAnB,aAAc,EAAe7U,MAAO,CACrE,MAAM04C,EAAoBr/C,IACV,OAALA,QAAK,IAALA,OAAA,EAAAA,EAAO0b,OAAQ,mCAEpBK,EAAU,kBAACO,GAAA,EAAD,CAAOC,QAAQ,mDAAf,gDAChBva,EAAe6Z,GAAoB1X,EAAIqX,SAAS7U,KAAM04C,EAAkBtjC,GACxE4qD,EAAe3kE,OAEfA,EAAeoZ,GAAsBjX,GACrCwiE,EACI,kBAACrqD,GAAA,EAAD,CAAOC,QAAQ,+CAAf,gDAC4C,CAAEva,iBActD,OATIinC,IACAtzB,KACAD,GACIixD,EACA19B,GACA,IAID,CAAEwL,WAAW,EAAOzyC,eAAcmP,gBAAYic,MA0G7DgrD,aAvFJ,SAAsB5jD,GAClB,MAAM,QAAC/rB,EAAD,YAAU0+D,GAAe3yC,EAC/B,IAAI1xB,EAAMgK,EACV,OAAI,OAACrE,QAAD,IAACA,OAAD,EAACA,EAASd,KACVc,EAAQ8jB,YAAcJ,GAASC,cAC/BtpB,EAAO8/B,GACP91B,EAAQ,kBAACwP,GAAA,EAAD,CAAOC,QAAQ,kDAElB9T,EAAQ8jB,YAAcJ,GAASE,aACpCvpB,EAAO8/B,GACP91B,EAAQ,kBAACwP,GAAA,EAAD,CAAOC,QAAQ,kDAGvBzZ,EAAO8/B,GACP91B,EAAQ,KAGR,kBAAC,GAAD,CACIiQ,MAAOoqD,EACP7kD,OAAQxV,EACRhK,KAAMA,EACN+R,UAAU,iBAlBO,MAqFzBwjE,kBA9DJ,YAAmD,IAAxB,WAAClnE,EAAD,QAAa4K,GAAU,EAoB9C,OAnBKA,IACDA,EACA,kBAACO,GAAA,EAAD,CAAOC,QAAQ,oDAAf,sCAiBGV,GAZmB,CAAC,GAAD,OACnB1K,EAAWmnE,aADQ,sCAEnBnnE,EAAWonE,gBAFQ,mEAGnBpnE,EAAWqnE,aAHQ,kDAInBrnE,EAAWsnE,iBAJQ,kEAKnBtnE,EAAWunE,qBALQ,qHAMnBvnE,EAAWwnE,qBANQ,wFAOnBxnE,EAAWynE,kBAPQ,wGAQnBznE,EAAW0nE,iBARQ,yEAUnB1nE,EAAWmlE,MAVQ,+EAYoB1wE,GAAWA,EAASmW,IA4ClEoQ,YACAV,WACAa,2B,OC7PJ,MAAMwsD,WAA2CliD,IAAMC,UAAW,cAAD,yBAgI7D4pC,SAAW,KACPtsC,KAAKK,MAAMisC,SAAStsC,KAAKK,MAAMxtB,UAjHnCg6B,oBACI/iB,GAAgBkW,KAAKK,MAAM/d,YAG/BmhB,SACI,MAAM,EAAEN,EAAF,QAAKtwB,EAAL,cAAc4gE,EAAd,aAA6Bx/D,EAA7B,WAA2CqO,EAA3C,QAAuD41C,GAAYl4B,KAAKK,MAC9E,OACI,kBAAC04B,GAAA,EAAD,CAAMr4C,UAAU,8CACZ,kBAACmmB,GAAA,EAAD,CAAKnmB,UAAU,+BACVw3C,EACG,kBAACpxB,GAAA,EAAD,CAAK+J,GAAG,KAAKnwB,UAAU,wCACnB,0BAAMA,UAAU,IAAIyiB,EAAE,gDAG1B,kBAAC2D,GAAA,EAAD,CAAKpmB,UAAU,8DACX,0BAAMA,UAAU,IACXyiB,EAAE,2BAKX+0B,GACA,kBAACpxB,GAAA,EAAD,CAAKsU,GAAG,GAAGtK,GAAG,IAAIpwB,UAAU,QACxB,kBAAC,GAAD,CACInF,QAAS+G,EACTi5B,aAAW,EACXm4B,cAAY,EACZ1/D,MAAOnB,EAAQyQ,OACfywB,YAAY,cACZyH,eAAiBC,GAAWA,EAAO9iC,MACnC+iC,eAAiBD,GAAWA,EAAOznC,MACnCo+B,SAAUp+B,GAASy/D,EAAc,SAAUz/D,GAC3C0M,UAAU,UAKlBw3C,GACA,kBAACpxB,GAAA,EAAD,CAAKsU,GAAG,GAAGtK,GAAG,IAAIpwB,UAAU,QACxB,kBAAC,GAAD,CACInF,QAASo4D,GAAYx7C,uBACrBnkB,MAAOnB,EAAQulB,UACfojB,eAAiBC,GAAWA,EAAO9iC,MACnC+iC,eAAiBD,GAAWA,EAAOznC,MACnCo+B,SAAUp+B,GAASy/D,EAAc,YAAaz/D,GAC9C0M,UAAU,UAItB,kBAAComB,GAAA,EAAD,CAAKsU,GAAG,IAAItK,GAAG,IAAIpwB,UAAU,aACzB,kBAAC,KAAD,CACIi7B,gBAAiBxY,EAAE,uBACnBvX,SAAU/Y,EAAQF,SAClBy/B,SAAUp+B,IACN,IAAI4wE,EAAc5wE,GAASnB,EAAQF,SAC/BiyE,aAAuB1zD,OACvB0zD,EAAc,IAAI1zD,KAAK0zD,EAAYC,cAAe,IAEtDpR,EAAc,WAAYmR,IAE9BjY,QAAS95D,EAAQD,QAAU,IAAIse,KAC/B4zD,gBAAc,EACdrY,WAAW,UAGnB,kBAAC3lC,GAAA,EAAD,CAAKsU,GAAG,IAAItK,GAAG,IAAIpwB,UAAU,aACzB,kBAAC,KAAD,CACIi7B,gBAAiBxY,EAAE,qBACnBvX,SAAU/Y,EAAQD,OAClBw/B,SAAUp+B,IACN,IAAI4wE,EAAc5wE,GAASnB,EAAQD,OAC/BgyE,aAAuB1zD,OACvB0zD,EAAc,IAAI1zD,KAAK0zD,EAAYC,cAAe,KAEtDpR,EAAc,SAAUmR,IAE5BhpC,QAAS/oC,EAAQF,SACjBg6D,QAAS,IAAIz7C,KACb4zD,gBAAc,EACdrY,WAAW,UAGnB,kBAAC3lC,GAAA,EAAD,CAAKsU,GAAG,IAAItK,GAAG,IAAIpwB,UAAU,aACzB,kBAAC26B,GAAA,EAAD,CACI1sC,KAAK,SACL2sC,OAAK,EACLnQ,MAAM,UACNzqB,UAAU,gBACVykB,QAAUrd,IACNA,EAAE0wC,iBACFx4B,KAAKssC,YAETpnC,SAAUlF,KAAKK,MAAMv0B,SAEpBk0B,KAAKK,MAAMv0B,QAAU,kBAAC,GAAD,MAAkBq3B,EAAE,oBAGlD,kBAAC2D,GAAA,EAAD,CAAKsU,GAAG,IAAItK,GAAG,IAAIpwB,UAAU,wBACzB,kBAAC26B,GAAA,EAAD,CACIQ,SAAO,EAACP,OAAK,EACbnQ,MAAM,UACNzqB,UAAU,gBACVykB,QAASlxB,GAERkvB,EAAE,4BAc/B,MAWM6jB,GAAe,CACjBysB,cAAen8C,GAAQI,kBACvBzjB,aAAcqjB,GAAQK,kBAGXwR,oBAAW1D,YAhBF93B,IAEpB,MAAMimE,EAAYjmE,EAAMorB,yBACxB,MAAO,CACHjtB,QAAS8nE,EAAUt9C,YACnBzjB,QAAS+gE,EAAUp9C,YACnBlU,WAAY3U,EAAM6qB,QAAQlW,WAC1B41C,QAAStjC,OASkCoyB,GAAzBvhB,CAAuCC,eAAkBi/C,M,OCpJnF,MAAMI,WAAyCtiD,IAAMC,UAmBjDqJ,YAAY1L,GAAQ,IAAD,EACf2L,MAAM3L,GADS,KA0GnBgqB,iBAAmB,KACf3oC,GAAoBse,KAAKryB,MAAMmmE,UA3GhB,KA8GnBrsB,UAAY,KACR,MAAM,UAAE1B,EAAF,QAAazxC,GAAY0rB,KAAKK,OAC9B,SAAE4zC,EAAF,QAAYH,GAAY9zC,KAAKryB,MACnC6T,KACAwe,KAAKkM,SAAS,CAAEwb,WAAW,IAC3Bnc,QAAQC,IAAI,mBAAoByoC,EAAUH,GAC1CH,GAAYqQ,YAAY/P,EAAUH,GAC7B7pD,KACG,IAA8C,IAA7C,UAAEq2B,EAAF,WAAatjC,EAAb,aAAyBnP,GAAmB,EACrCyyC,GACAyF,EAAU/oC,EAAY1I,KAIjCm/C,QAAQ,KACLzzB,KAAKkM,SAAS,CAAEwb,WAAW,OA7HpB,KAkInBF,SAAW,KACHxnB,KAAKryB,MAAM+5C,YAGf1nB,KAAKqqB,mBACLrqB,KAAKK,MAAMknB,UAAS,KArIpBvnB,KAAKryB,MAAQ,CACTmmE,QAASrzD,KAAS,0CAClBinC,WAAW,EACXusB,UAAU,UAAA5zC,EAAM/rB,eAAN,eAAed,KAAM,MAIvC05B,mBAAmBC,GACXA,EAAUma,SAAWtnB,KAAKK,MAAMinB,QAChCtnB,KAAKkM,SAAS,IAKtBzI,SAAU,IAAD,EACL,MAAM,EAAEN,EAAF,OAAKmkB,EAAL,QAAahzC,GAAY0rB,KAAKK,OAC9B,QAAEyzC,EAAF,UAAWpsB,GAAc1nB,KAAKryB,MACpC,IAAK25C,EACD,OAAO,EAGX,MAAM4sB,KAA0B,OAAC5/D,QAAD,IAACA,OAAD,EAACA,EAASd,IACpC4sB,EAAQ+C,EAAE,wCACVkxC,GAAa3sB,EAEnB,OACI,kBAACE,GAAA,EAAD,CACIN,OAAQA,EACRC,SAAUvnB,KAAKwnB,SACfO,SAAS,SACTrnC,UAAU,wCAEV,kBAACsnC,GAAA,EAAD,CAAWtnC,UAAU,IACjB,kBAACmmB,GAAA,EAAD,CAAKnmB,UAAU,kBACX,kBAAComB,GAAA,EAAD,KACI,0BAAMpmB,UAAU,eAAe0f,IAEnC,kBAAC0G,GAAA,EAAD,CAAKpmB,UAAU,mCACX,kBAAC,GAAD,CACI1R,KAAMm0B,EAAE,gBAAiB,SACzBgC,QAASnF,KAAKwnB,aAI1B,kBAAC3gB,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,KACI,kBAAC,GAAD,CAAQsD,YAAY,EAAMC,aAAc,CAACypC,OAI7CI,GACA,kBAACrtC,GAAA,EAAD,CAAKnmB,UAAU,QACX,kBAAComB,GAAA,EAAD,KACI,kBAACgN,GAAA,EAAD,CACI5O,UAAQ,EACRv2B,KAAK,OACLqF,MAAK,oBAAKM,EAAQgP,cAAb,aAAK,EAAgBlW,KAArB,aAA8BkH,EAAQggE,iBAAtC,KACL5zD,UAAU,eAK1B,kBAACmmB,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,KACI,2BAEQotC,EACI,sGAEA,uIAGZ,8HAEA,8EAGR,kBAACrtC,GAAA,EAAD,CAAKnmB,UAAU,QACX,kBAAComB,GAAA,EAAD,KACI,kBAACuU,GAAA,EAAD,CACIlQ,MAAM,OACNjG,SAAUwiB,EACVviB,QAASnF,KAAKwnB,SACd9mC,UAAU,qCAETyiB,EAAE,iDAGX,kBAAC2D,GAAA,EAAD,CAAKpmB,UAAU,cACX,kBAAC26B,GAAA,EAAD,CACIlQ,MAAM,UACNjG,SAAUwiB,IAAc2sB,EACxBlvC,QAASnF,KAAKynB,UACd/mC,UAAU,sCAETgnC,EAAY,kBAAC,GAAD,MAAkB,yBApHzDq9B,GAaKl2C,aAAe,CAClB0c,YAAa,IACbE,UAAW,CAAC,QAAS,sEAuJdtiB,oBAAW1D,YARF93B,IACb,IAIU,GAGK83B,CAAuCC,eAAkBq/C,MC5KnF,MAAMC,WAA2CviD,IAAMC,UAYnDqJ,YAAY1L,GACR2L,MAAM3L,GAENL,KAAKryB,MAAQ,CACTs3E,YAAY,GAIpBp4C,qBAGApJ,SACI,MAAM,QAAEy0B,GAAYl4B,KAAKK,MACzB,OAAK63B,EAED,kBAACrxB,GAAA,EAAD,CAAKnmB,UAAU,mCACX,kBAAComB,GAAA,EAAD,KACI,kBAACD,GAAA,EAAD,CAAKnmB,UAAU,0DACX,kBAAComB,GAAA,EAAD,CAAK2D,GAAI,CAAEwT,KAAM,GAAIn6B,MAAO,GAAKgtB,GAAI,CAAEmN,KAAM,EAAGn6B,MAAO,GAAKs3B,GAAI,EAAG16B,UAAU,aACxEsf,KAAKklD,+BANL,KAczBA,2BACI,MAAM,cAAEC,EAAF,QAAiBjtB,GAAYl4B,KAAKK,OAClC,WAAE4kD,GAAejlD,KAAKryB,MAE5B,IAAKuqD,EAAS,OAAO,KAErB,MAAM3Q,EAAW,KACbvnB,KAAKkM,SAASsH,IAAsB,CAAEyxC,YAAazxC,EAAUyxC,eAW3D39B,EAAS29B,EACf,OACI,oCACI,kBAAC5pC,GAAA,EAAD,CACIC,OAAK,EACLnQ,MAAM,YACNjG,UAPa,EAQbC,QAASoiB,GAJb,6BAQA,kBAAC,GAAD,CAAWD,OAAQA,EAAQC,SAAUA,EAAUxB,UApBrCvzC,IACdwtB,KAAKkM,SAAS,CACV+4C,YAAY,IAEZE,GACAA,EAAc3yE,IAeuD8B,QAAS,KAAMk2C,eAAe,MAQnH,MAWMxD,GAAe,CACjB6tB,eAAgBv9C,GAAQQ,oBAGbqR,oBAAW1D,YAfF93B,IAEpB,MAAMimE,EAAYjmE,EAAMorB,yBACxB,MAAO,CACHm/B,QAAStjC,KACTsB,KAAM09C,EAAU19C,KAChBxL,YAAakpD,EAAUn9C,gBACvBg+C,aAAcb,EAAU19C,KAAKhU,OAAOvL,GAAOi9D,EAAUn9C,gBAAgBtU,SAASxL,EAAInD,OAQvCwzC,GAAzBvhB,CAAuCu/C,K,OChGjE,MAAMjhC,GAAsB1jB,GAAU,kBAAC4E,GAAA,EAAD,iBAAkB5E,EAAlB,CAAyB3f,UAAU,2BAA0B2f,EAAMmK,UAEzG,MAAM46C,WAA2C3iD,IAAMC,UASnDqJ,YAAY1L,GAAQ,IAAD,EACf2L,MAAM3L,GADS,YA8CnBglD,gBAAkB,KACd,MAAM,QAAE/wE,EAAF,cAAW6wE,GAAkBnlD,KAAKK,OAClC,WAAE4kD,GAAejlD,KAAKryB,MAU5B,OACI,kBAAC,GAAD,CAAW2G,QAASA,EAASgzC,OAAQ29B,EAAY19B,SAAUvnB,KAAKslD,kBAAmBv/B,UATrE,CAACvzC,EAAM8B,KACrB0rB,KAAKkM,SAAS,CACV+4C,YAAY,IAEZE,GACAA,EAAc3yE,EAAM8B,OAvDb,KA8FnBkhE,wBAA2Bj3C,IACvB,MAAM,EAAE4E,EAAF,kBAAK+gB,GAAsBlkB,KAAKK,MAEtC,GAAI6jB,EAAmB,OAAO,KAC9B,MAAMvrC,EAAQwqB,EAAE,8CAChB,OAAOnD,KAAK2kB,WAAWhsC,EAAOqnB,KAAKukB,OAAQ,CAAEhmB,UAnG9B,KAsGnBgnD,eAAiBhnD,IACb,MAAM,EAAE4E,EAAF,QAAK+0B,GAAYl4B,KAAKK,MAC5B,IAAK63B,EAAS,OACd,MAAMlpD,EAAOm0B,EAAE,4CACf,OAAOnD,KAAK2kB,WAAW31C,EAAMgxB,KAAKslD,kBAAmB,CAAE/mD,UA1GxC,KA6GnBgmB,OAAS,WAA0B,IAAzBsB,EAAwB,wDAC9B,MAAM,QAAErf,EAAF,QAAWlyB,GAAY,EAAK+rB,MAC5B6H,EAAQyrC,GAAY3B,kBAAkB19D,EAAQd,IAChDqyC,EACAla,OAAOntB,KAAK0pB,EAAO,UAEnB1B,EAAQI,KAAKsB,IAnHF,KAuHnBo9C,kBAAqBtxE,IACjBgsB,KAAKkM,SAASsH,IAAS,CACnByxC,YAAazxC,EAAUyxC,eAvH3BjlD,KAAKryB,MAAQ,CACTs3E,YAAY,GAIpBxhD,SACI,MAAM,kBAAEygB,GAAsBlkB,KAAKK,MAEnC,OACI,yBAAK3f,UAAU,qCAEPwjC,EACIlkB,KAAKymB,wBAELzmB,KAAK2mB,qBAEZ3mB,KAAKqlD,mBAKlB5+B,wBACI,OACI,kBAAC5f,GAAA,EAAD,KACK7G,KAAK4mB,cAAc,eAKhCD,qBACI,OACI,kBAAC7iB,GAAA,EAAD,CAA4BC,UAAU,OAAOoB,QAASrd,IAAOA,EAAE++B,oBAC3D,kBAAC7iB,GAAA,EAAD,CAAgBC,IAAI,OAChB,kBAACoX,GAAA,EAAD,CAAQlQ,MAAM,OAAOzqB,UAAU,sDAC3B,kBAAC,GAAD,QAGR,kBAAC0jB,GAAA,EAAD,KACKpE,KAAK4mB,cAAc,cAuBpCA,cAAcroB,GAMV,MALyB,CACrByB,KAAKw1C,wBACLx1C,KAAKulD,gBAGejwE,IAAKwxC,GAAiBA,EAAavoB,IAG/DomB,WAAW31C,EAAMm2B,EAAS5pB,GAItB,MAAoB,eAHLiF,KAAEumC,aAAaxrC,EAAS,CACnCgjB,KAAM,aAECA,KAEH,kBAACuI,GAAA,EAAD,CAAK76B,IAAK+C,EAAMy7B,GAAG,OAAO/pB,UAAU,aAChC,kBAAC26B,GAAA,EAAD,CAAQlQ,MAAM,UAAUzqB,UAAU,iBAAiBm7B,SAAO,EAAC1W,QAAS,IAAMA,KAAYn2B,IAM9F,kBAAC,GAAD,CACIm2B,QAAS,IAAMA,IACfl5B,IAAK+C,GAEJA,IA4CFm6B,oBAAW1D,YAPD93B,IAEd,CACHuqD,QAAStjC,OAIkC,KAAzB6Q,CAA+BC,eAAkB0/C,M,OC5H3E,SAASlrC,GAAiB7Z,GACtB,IAAInrB,EACAmrB,EAAM8C,EAAE,wCAOZ,OANI9C,EAAMv0B,QACNoJ,EAAU,kBAAC,GAAD,MACHmrB,EAAMx0B,QACbqJ,EAAU,0BAAMwL,UAAU,eAAe2f,EAAMx0B,QAG5C,yBAAK6U,UAAU,eAAexL,GAGzC,MAAMswE,WAAwC/iD,IAAMC,UAAW,cAAD,yBA4N1DozC,0BAA6B90B,GAErB,oCACI,kBAACna,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,KACI,kBAAC,GAAD,CAAU9yB,MAAOgtC,EAAYntC,OAAQ,YAjOC,KAwO1Ds5D,sBAAyBx2D,GAEjB,kBAACkwB,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,KAEQ,kBAAC,GAAYm9C,aAAb,CAA0B3vE,QAASqC,MA7OG,KAoP1Dy2D,wBAA2B17D,GAChBA,EAASwQ,OAAOrQ,GAAWA,EAAQzE,MAAMkI,IAAI,CAACzD,EAAS04B,IAC1D,yBAAKt+B,IAAG,kBAAa4F,EAAQzE,KAArB,YAA6Bm9B,IACjC,kBAAC,GAAD,CACIn9B,KAAMyE,EAAQzE,KACduzC,IAAK9uC,EAAQ8uC,IACbxb,QAAS,WA1PiC,KAgQ1D4wC,UAAaC,IACT,MAAM,YAAEz/B,EAAF,QAAe3yB,EAAf,WAAwBG,EAAxB,SAAoCkkB,GAAajI,KAAKK,MAC5D21C,EAASjvB,wBAAaivB,EAAQ,CAC1BnjE,QAAS0jC,EACT3yB,UACAG,aACA+wB,WAAY7M,EAASD,WAGzB2rC,GAAYzB,iBAAiB8D,EAAOnjE,QAASmjE,EAAOpyD,QAASoyD,EAAOjyD,WAAYiyD,EAAOlhC,aAzQjC,KA4Q1Dw3B,SAAW,KACPtsC,KAAK+1C,UAAU,CACXljE,QAASmtB,KAAKK,MAAMxtB,WA9Q8B,KAkR1DojE,mBAAqB,CAACjyD,EAAMC,KACxB,MAAM,WAAEF,EAAF,iBAAcmyD,GAAqBl2C,KAAKK,MAC9C,GAAIrc,IAASD,EAAWC,MAAQC,IAAgBF,EAAWE,YAAa,CACpE,MAAMkyD,EAAgB,IAAKpyD,EAAYC,OAAMC,eAC7CiyD,EAAiBC,GACjBn2C,KAAK+1C,UAAU,CACXhyD,WAAYoyD,MAxRkC,KA6R1DC,cAAgB,CAACznE,EAAM0nE,KACnB,MAAM,QAAEzyD,EAAF,cAAW0yD,GAAkBt2C,KAAKK,OAClC,UAAEk2C,EAAF,UAAaC,GAAcH,EACjC,GAAIE,IAAc3yD,EAAQE,OAAS0yD,IAAc5yD,EAAQC,UAAW,CAChE,MAAM4yD,EAAa,CACf5yD,UAAW2yD,EACX1yD,MAAOyyD,GAEXD,EAAcG,GACdz2C,KAAK+1C,UAAU,CACXnyD,QAAS6yD,MAvSqC,KA4S1DC,SAAW,CAAC//D,EAAKggE,EAAU1b,EAAUnzC,KACjC,MAAMkO,EAAO,CAACrf,GACdqpB,KAAK42C,YAAYD,EAAU3gD,IA9S2B,KAiT1D4gD,YAAc,CAACD,EAAU3gD,KACrB,MAAM,YAAEtL,EAAF,eAAemqD,GAAmB70C,KAAKK,MACvCxV,EAAMmL,EAAK1gB,IAAIqB,GAAOA,EAAInD,IAChC,IAAIqjE,EACJ,GAAIF,EAAU,CACV,MAAMG,EAAuB,IAAIpsD,KAAgBG,GAEjDgsD,EAAiB,IADM,IAAIE,IAAID,SAG/BD,EAAiBnsD,EAAYxI,OAAO1O,IAAOqX,EAAI1I,SAAS3O,IAE5DqhE,EAAegC,IA5TuC,KA+T1D7J,WAAa,CAAC36B,EAAO17B,KACjB,IAAIgqC,EAAMgzB,GAAY3B,kBAAkBr7D,EAAInD,IAC5CwsB,KAAKK,MAAMmG,QAAQI,KAAK+Z,IAjU8B,KA8U1D8kC,iBAAmBzoE,IACf,MAAM,WAAE+G,EAAF,SAAckkB,EAAd,EAAwB9E,GAAMnD,KAAKK,MACzCL,KAAKi2C,mBAAmB,EAAGlyD,EAAWE,aAEtC+b,KAAKK,MAAM61C,iBAAiB,IACrBnyD,EACHC,KAAM,IAEVgc,KAAK+1C,YAEL,MAAMnuD,EAAUub,EAAE,oDAElB/hB,GADqB,kBAAC,GAAY8iE,kBAAb,CAA+BlnE,WAAYA,EAAY0oE,WAAU99D,IAChDqgB,EAASD,WA1VO,KA6V1D29C,4BAA8B,CAAC3oE,EAAY1I,KACvC,MAAM,WAAEyP,EAAF,QAAcyiB,EAAd,EAAuBrD,GAAMnD,KAAKK,MAExCL,KAAKK,MAAM61C,iBAAiB,IACrBnyD,EACHC,KAAM,IAEVgc,KAAK+1C,YAEL,MAAMnuD,EAAUub,EAAE,wDACZ+zC,EAAe,kBAAC,GAAYgN,kBAAb,CAA+BlnE,WAAYA,EAAY0oE,WAAU99D,IAChFwvD,EAAezD,GAAY3B,kBAAkB19D,EAAQd,IAC3D4N,GAAwB81D,EAAcE,GACtC5wC,EAAQI,KAAKwwC,IA1WyC,KA6W1D5J,sBAAyB72D,GACd,kBAAC,GAAD,CAAarC,QAASqC,EAAKwuE,cAAenlD,KAAK2lD,8BAxV1D94C,oBACI,MAAM,QAAEqrB,EAAF,2BAAWtnB,GAA+B5Q,KAAKK,OACjD63B,GAAWtnB,IACX5Q,KAAK+1C,YAIb7oC,mBAAmBC,GACf,MAAM,QAAE+qB,EAAF,2BAAWtnB,GAA+B5Q,KAAKK,MAC/Cg3C,EAAgBzmC,EAChB0mC,EAAmBpf,GAAWA,IAAY/qB,EAAU+qB,QACpDqf,EAA6BF,GAAiBA,IAAkBlqC,EAAUyD,4BAC5E0mC,GAAoBC,IACpBv3C,KAAK+1C,YAIbtyC,SACI,OACI,kBAACuG,GAAA,EAAD,CAAMtpB,UAAU,8BACZ,kBAACupB,GAAA,EAAD,CAAUvpB,UAAU,QAChB,kBAAC,GAAD,CAAY4rD,SAAUtsC,KAAKssC,WAC1BtsC,KAAK4mB,gBACL5mB,KAAK8b,gBAMtB8K,gBACI,OACI,kBAAC,GAAD,CACIu+B,cAAenlD,KAAKylD,mBAKhC3pC,cACI,MAAM,EAAE3Y,EAAF,KAAKjN,EAAL,QAAWpqB,EAAX,QAAoBosD,EAApB,WAA6Bn0C,EAA7B,QAAyCH,EAAzC,YAAkD8G,GAAgBsV,KAAKK,MAC7E,GAAIv0B,EACA,OACI,kBAACqoD,GAAD,KACI,kBAAC,GAAD,OAIZ,GAAa,OAATj+B,QAA0B+C,IAAT/C,EACjB,OAAO,qCAGX,MAAM6lB,EAAU,CACZ,CACIl4B,UAAW,cACX7U,KAAM,cACNgtC,MAAM,EACNC,QAAS,yBACTC,cAAe,oBACfu7B,KAAMvf,GAEV,CACIr0C,UAAW,SACX7U,KAAMm0B,EAAE,wBACR6Y,MAAM,EACNC,QAAS,aACTC,cAAe,oBACfS,UAAW,CAAC+1B,EAAa/7D,IAAQqpB,KAAK81C,0BAA0BpD,GAChE+E,MAAM,GAEV,CACI5zD,UAAW,WACX7U,KAAMm0B,EAAE,yBACR6Y,MAAM,EACNa,UAAWnrC,IAAoB,OAARA,QAAQ,IAARA,OAAA,EAAAA,EAAU8S,QAAS,EAAI9S,EAAS,GAAGtE,KAAO,GACjEuhD,MAAO,OACPC,YAAa,OACb3S,QAAS,cACTC,cAAe,qBACfS,UAAW,CAACjrC,EAAUiF,IAAQqpB,KAAKotC,wBAAwB17D,GAC3D+lE,MAAM,GAEV,CACI5zD,UAAW,YACX7U,KAAMm0B,EAAE,wBACRwrB,MAAO,SACP8e,YAAa,SACbzxB,MAAM,EACNC,QAAS,aACTC,cAAe,oBACfS,UAAW,CAAC3oC,EAAO2C,IAAQqpB,KAAKmtC,sBAAsBx2D,GACtD8gE,KAAMvf,GAEV,CACIr0C,UAAW,iBACX7U,KAAMm0B,EAAE,4BACR8Y,QAAS,aACTD,MAAM,EACNpzB,MAAO,CACH2X,MAAO,SAEXoc,UAAW,CAAC3oC,EAAO2jE,IACV3jE,EACEJ,KAAOI,GAAOH,OAAO,cADT,KAGvB4jE,MAAM,GAEV,CACI5zD,UAAW,KACX7U,KAAM,GACN2/C,MAAO,QACP8e,YAAa,QACbxxB,QAAS,aACTC,cAAe,oBACfS,UAAW,CAACnpC,EAAImD,IACZqpB,KAAKwtC,sBAAsB72D,GAC/B8gE,MAAM,IAEZv1D,OAAO01D,IAAoB,IAAbA,EAAIH,MAEdn6B,EAAgB,CAAC15B,GAwBvB,MAIMo3C,EAAY,CACd71B,QAAS,CAACrd,EAAGnR,EAAKskD,KACdj7B,KAAKgtC,WAAWllD,EAAGnR,KAI3B,OACI,kBAACkwB,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,KACI,kBAAC,KAAD,CACImxC,QAAM,EACNl7B,YAAU,EACVC,UAAU,EACVf,QAAQ,sDACRgB,eAAe,0FACfC,SAAS,KACT1qC,KAAM0jB,EACN6lB,QAASA,EACT75B,OAAQi7B,OACRC,eAAe,SACfE,cAAeA,EACf84B,cAAep2C,KAAKo2C,cACpByB,eAjDZA,EAkDYx6B,iBACI,kBAAC,GAAD,CACIvxC,QAASA,EACTq3B,EAAGA,IAGXozB,WAjCG,CAAC5/C,EAAKskD,IACd,UAiCKD,UAAWA,KAEbh7B,KAAKK,MAAMv0B,SACT,kBAAC+6B,GAAA,EAAD,CAAKnmB,UAAU,QACX,kBAAComB,GAAA,EAAD,KACI,kBAAC,GAAD,CACI9iB,KAAMD,EAAWC,KACjBC,YAAaF,EAAWE,YACxBC,SAAUH,EAAWG,SACrBC,gBAAiBJ,EAAWI,gBAC5BssD,oBAAqB,CAACxsD,EAAaD,IAASgc,KAAKi2C,mBAAmBjyD,EAAMC,GAC1EssD,aAAcvwC,KAAKi2C,yBAmHnD2P,sBAAsB5oE,EAAY4K,GAO9B,OAAOF,GANO,CAAC,SAAD,OACD1K,EAAWm2D,gBADV,6BAEDn2D,EAAWo2D,cAFV,mCAGEp2D,EAAWq2D,gBAHb,gCAIEr2D,EAAWs2D,cAJb,iBAMoB4E,GAAQA,EAAMtwD,IAuCxD,MAoBMuwD,GAAmB,CACrB1E,cAAen8C,GAAQI,kBACvBzjB,aAAcqjB,GAAQK,iBACtB2+C,cAAeh/C,GAAQM,kBACvBs+C,iBAAkB5+C,GAAQO,qBAC1Bg9C,eAAgBv9C,GAAQQ,oBAGb2N,mBA5BU93B,IAErB,MAAMimE,EAAYjmE,EAAMorB,yBACxB,MAAO,CACH7C,KAAM09C,EAAU19C,KAChBpqB,QAAS8nE,EAAUt9C,YACnBzjB,QAAS+gE,EAAUp9C,YACnB+f,YAAaq9B,EAAUv9C,gBACvBzS,QAASgwD,EAAUz9C,YACnBpS,WAAY6vD,EAAUx9C,eACtB1L,YAAakpD,EAAUn9C,gBAEvB1qB,KAAM4B,EAAMe,KAAK3C,KACjB6kC,2BAA4Bxc,KAG5B8jC,QAAStjC,OAYuBujD,GAAzB1yC,CAA2CC,eAAkB8/C,K,OC5a5E,SAAStrC,GAAiB7Z,GACtB,IAAInrB,EACA,kBAACiT,GAAA,EAAD,CAAOC,QAAQ,4BASnB,OANIiY,EAAMv0B,QACNoJ,EAAU,kBAAC,GAAD,MACHmrB,EAAMx0B,QACbqJ,EAAU,0BAAMwL,UAAU,eAAe2f,EAAMx0B,QAG5C,yBAAK6U,UAAU,eAAexL,GAGzC,MAAMgtE,WAAuBz/C,IAAMC,UAM/BqJ,YAAY1L,GACR2L,MAAM3L,GADS,KAMnB1yB,MAAQ,GAJJqyB,KAAKryB,MAAQ,GAQjBk/B,qBAGApJ,SACI,MAAM,EAAEN,EAAF,UAAKukB,EAAL,MAAgBy6B,GAAUniD,KAAKK,MACrC,GAAIqnB,EACA,OAAO,kBAAC,GAAD,MAEX,IAAI06B,EAAc,qCAClB,OAAKD,EAKD,yBAAKzhE,UAAU,uCACV0hE,EACApiD,KAAK8b,eANH,qCAWfA,cACI,MAAM,EAAE3Y,EAAF,MAAKg/C,EAAL,UAAYz6B,GAAc1nB,KAAKK,MAG/B7tB,GADUoiB,KACHutD,GACPpmC,EAAU,CACZ,CACIl4B,UAAW,cACX7U,KAAMm0B,EAAE,sBACR8Y,QAAS,cACTD,MAAM,EACN0S,OAAQ,GACRxsC,OAAQi6B,sBAAW,CACfpI,YAAa5Q,EAAE,sBACfva,MAAO,CACHy5D,WAAY,WAIxB,CACIx+D,UAAW,eACX7U,KAAMm0B,EAAE,0BACR8Y,QAAS,cACTD,MAAM,EACN0S,OAAQ,GACRxsC,OAAQi6B,sBAAW,CACfpI,YAAa5Q,EAAE,0BACfva,MAAO,CACHq5D,SAAU,YAItB,CACIp+D,UAAW,uBACX7U,KAAMm0B,EAAE,8BACR8Y,QAAS,aACTD,MAAM,EACN0S,OAAQ,IAEZ,CACI7qC,UAAW,iBACX7U,KAAMm0B,EAAE,gCACR8Y,QAAS,aACTD,MAAM,EACN0S,OAAQ,IAEZ,CACI7qC,UAAW,WACX7U,KAAMm0B,EAAE,qCACR8Y,QAAS,aACTD,MAAM,EACN4S,YAAa,QACbD,MAAO,QACPD,OAAQ,IAEZ,CACI7qC,UAAW,YACX7U,KAAMm0B,EAAE,oDACR8Y,QAAS,aACTD,MAAM,EACN4S,YAAa,QACbD,MAAO,QACPhS,UAAW,CAAC3oC,EAAO2C,IACf,yBAAK+J,UAAU,eACVoI,GAAkBjV,OAAO8C,EAAIkvE,WAC9B,6BACA,kCAAQ38D,GAAyBrV,OAAO8C,EAAImvE,UAA5C,MAGRp3B,OAAQ,IAEZ,CACI7qC,UAAW,6BACX7U,KAAMm0B,EAAE,qDACR8Y,QAAS,aACTD,MAAM,EACN4S,YAAa,QACbD,MAAO,QACPhS,UAAW,CAAC3oC,EAAO2C,IACf,yBAAK+J,UAAU,eACVoI,GAAkBjV,OAAO8C,EAAIovE,4BAC9B,6BACA,kCAAQ58D,GAAgCtV,OAAO8C,EAAIqvE,2BAAnD,MAGRt3B,OAAQ,KAEdxsC,OAAO7N,IAA0B,IAAhBA,EAAOojE,MAOpBp6B,EAAmB,kBAAC,GAAD,CAAkBvxC,QAAS47C,IAEpD,OACI,oCACI,kBAAC,KAAD,CACI3K,YAAU,EACVimC,OAAK,EACLhmC,UAAU,EACVf,QAAQ,4CACRgB,eAAe,gFACfC,SAAS,KACT1qC,KAAMA,EACNupC,QAASA,EACT75B,OAAQi7B,OACRC,eAAe,MACfE,cApBU,CAAC,CACnBz5B,UAAW,aACXC,MAAO,SAmBCu5B,iBAAkBA,MAOvB3X,sBAAkBw8C,I,OCvJjC,MAAM+D,WAA4CxjD,IAAMC,UAKpDqJ,YAAY1L,GAAQ,IAAD,EACf2L,MAAM3L,GADS,YAsPnB8kD,cAAiBnoE,IAEboE,GADgB,kBAAC,GAAY8iE,kBAAb,CAA+BlnE,WAAYA,IAC1BgjB,KAAKK,MAAM4H,SAASD,UACrDhI,KAAKyqB,WAAU,IAzPA,KA4PnBA,UAAY,WAAqB,IAApB3+C,IAAmB,yDAC5B,MAAM,GAAE0H,GAAO,EAAK6sB,MACpB,IAAK7sB,EACD,OAEJ,MAAMshC,EAAa,EAAKzU,MAAM4H,SAASD,SACnCl8B,GACA,EAAKogC,SAAS,CAAEi3C,kBAAkB,IAEtCxP,GACKrB,aAAa9+D,EAAIshC,GACjB7qB,KAAMk8B,IACCA,EAAO7F,WACP,EAAK8iC,cAAcj9B,EAAO7xC,WAGjCm/C,QAAQ,KACD3nD,GACA,EAAKogC,SAAS,CAAEi3C,kBAAkB,OA9Q/B,KAmRnBC,cAAgB9uE,IACZ0rB,KAAKkM,SAAS,CAAE53B,aApRD,KAuRnB67C,YAAc,KAAO,IAAD,EAChB,OACIv7B,SAAkB,UAACoL,KAAKryB,MAAM2G,eAAZ,aAAC,EAAoBd,KAzR5B,KA6RnB48C,kBAAoB,KAChBpwB,KAAKkM,SAAS,CACV6jB,iBAAiB,KA/RN,KAmSnBM,eAAiB,KACTrwB,KAAKryB,MAAMoyE,kBAGf//C,KAAKkM,SAAS,CACV6jB,iBAAiB,IAErBvuC,OA1Se,KA6SnB8uC,SAAW,KAAO,IAAD,EACb,MAAM98C,EAAE,UAAGwsB,KAAKryB,MAAM2G,eAAd,aAAG,EAAoBd,GAC1BA,IAAMwsB,KAAKryB,MAAMoyE,kBAGtB//C,KAAKkM,SAAS,CACV6zC,iBAAiB,IAErBv+D,KACAmyD,GAAYlB,cAAcj/D,EA7TT,yBA6T+ByW,KAAMk8B,IAC9CA,EAAO7F,YACPl/B,GACI,mCACAwY,GAAKS,eACL,GAEJm2B,SAASC,KAAKC,UAAUC,OAAO,cAC/B3wB,KAAKqjD,wBAGR5vB,QAAQ,KACLzzB,KAAKkM,SAAS,CAAE6zC,iBAAiB,QAlU1B,KAsUnBsD,mBAAqB,KACjB,MAAMn7C,EAAQyrC,GAAY1B,iBAC1BjyC,KAAKK,MAAMmG,QAAQI,KAAKsB,IArUxBlI,KAAKryB,MAAQ,CACT2G,QAAS,GACT6uE,kBAAkB,EAClBpzB,iBAAiB,EACjBgwB,iBAAiB,GAIzBlzC,oBACI7M,KAAKyqB,YAGThnB,SACI,MAAM,EAAEN,GAAMnD,KAAKK,OACb,QAAE/rB,EAAF,iBAAW6uE,GAAqBnjD,KAAKryB,MAC3C,OACI,yBAAK+S,UAAU,kCACX,kBAACmmB,GAAA,EAAD,CAAKnmB,UAAU,2BACX,kBAAComB,GAAA,EAAD,CAAK2D,GAAG,QACJ,kBAACoT,GAAD,CACI1Y,QAASnF,KAAKqjD,mBACdr0E,KAAMm0B,EAAE,eAAgB,aAG/BnD,KAAKmwB,eACF,kBAACrpB,GAAA,EAAD,CAAKpmB,UAAU,YACX,kBAAC,GAAD,CACI1R,KAAK,kBACLm2B,QAASnF,KAAKowB,kBACdlrB,SACIlF,KAAKK,MAAM0/C,oBAM/B,kBAACl5C,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,KACI,kBAACkD,GAAA,EAAD,CAAMtpB,UAAU,wCACZ,kBAACqwB,GAAA,EAAD,KACK/Q,KAAKiuB,gBAEV,kBAAChkB,GAAA,EAAD,CAAUvpB,UAAU,QACfsf,KAAKkuB,qBACN,kBAAC,GAAD,CAAgBi0B,MAAK,OAAE7tE,QAAF,IAAEA,OAAF,EAAEA,EAAS6tE,MAAOz6B,UAAWy7B,QAMjEnjD,KAAK8wB,qBAKlB7C,eAAgB,IAAD,sBACX,MAAM,EAAE9qB,GAAMnD,KAAKK,OACb,QAAE/rB,GAAY0rB,KAAKryB,MACnBuqD,EAAUtjC,KAEhB,OACI,oCACI,kBAACiS,GAAA,EAAD,CAAKnmB,UAAU,wBACX,kBAAComB,GAAA,EAAD,CAAKgK,GAAIonB,EAAU,GAAK,IACpB,kBAACrxB,GAAA,EAAD,CAAKnmB,UAAU,mBACX,kBAAComB,GAAA,EAAD,CAAKgK,GAAG,IAAIpwB,UAAU,QAClB,kBAAC,GAAD,CACIwkB,UAAQ,EACRwO,UAAWvQ,EACP,qBACA,eAEJnvB,MAAK,UAAEM,EAAQgP,cAAV,aAAE,EAAgBs/B,aAG/B,kBAAC9b,GAAA,EAAD,CAAKgK,GAAG,IAAIpwB,UAAU,QAClB,kBAAC,GAAD,CACIwkB,UAAQ,EACRwO,UAAWvQ,EAAE,iBAAkB,WAC/BnvB,MAAOgsB,KAAKwjD,wBAGpB,kBAAC18C,GAAA,EAAD,CAAKpmB,UAAU,QACX,kBAAC,GAAD,CACIwkB,UAAQ,EACRwO,UAAWvQ,EAAE,kBAAmB,SAChCnvB,MAAK,UAAEM,EAAQgP,cAAV,aAAE,EAAgBlW,UAOnC8qD,GACI,kBAACpxB,GAAA,EAAD,CAAK2D,GAAI,CAAEwT,KAAM,GAAIn6B,MAAO,QAAUgtB,GAAI,CAAEmN,KAAM,EAAGn6B,MAAO,GAAKpD,UAAU,aACvE,kBAAC,GAAYujE,aAAb,CAA0B3vE,QAASA,EAAS0+D,YAAa,CACrDxyC,OAAQ,OACRijD,aAAc,MACdC,QAAS,OACTC,aAAc,SACdC,eAAgB,SAChB3B,SAAU,WAK1B,kBAACn7C,GAAA,EAAD,CAAK2D,GAAG,MACJ,kBAAC5D,GAAA,EAAD,CAAKnmB,UAAU,mBACX,kBAAComB,GAAA,EAAD,CAAKgK,GAAG,IAAIpwB,UAAU,QAClB,kBAAC,GAAD,CACIwkB,UAAQ,EACRwO,UAAWvQ,EAAE,yBACbnvB,MAAK,UAAEM,EAAQ8gD,cAAV,aAAE,EAAgBtlD,YAG/B,kBAACg3B,GAAA,EAAD,CAAKgK,GAAG,IAAIpwB,UAAU,QAClB,kBAAC,GAAD,CACIwkB,UAAQ,EACRwO,UAAWvQ,EAAE,oDACbnvB,OAAO,UAAAM,EAAQ8gD,cAAR,eAAgB8wB,yBAA0Bp9D,GAAkBjV,OAAlB,UAAyBS,EAAQ8gD,cAAjC,aAAyB,EAAgB8wB,yBAA2B,MAG7H,kBAACp/C,GAAA,EAAD,CAAKgK,GAAG,IAAIpwB,UAAU,QAClB,kBAAC,GAAD,CACIwkB,UAAQ,EACRwO,UAAWvQ,EAAE,qDACbnvB,OAAO,UAAAM,EAAQ8gD,cAAR,eAAgB+wB,uBAAwBr9D,GAAkBjV,OAAlB,UAAyBS,EAAQ8gD,cAAjC,aAAyB,EAAgB+wB,uBAAyB,MAGzH,kBAACr/C,GAAA,EAAD,CAAKgK,GAAG,IAAIpwB,UAAU,QAClB,kBAAC,GAAD,CACIwkB,UAAQ,EACRwO,UAAWvQ,EAAE,2BACbnvB,OAAO,UAAAM,EAAQ8gD,cAAR,eAAgBgxB,KAAMt9D,GAAkBjV,OAAlB,UAAyBS,EAAQ8gD,cAAjC,aAAyB,EAAgBgxB,KAAO,MAGrF,kBAACt/C,GAAA,EAAD,CAAKgK,GAAG,IAAIpwB,UAAU,QAClB,kBAAC,GAAD,CACIwkB,UAAQ,EACRwO,UAAWvQ,EAAE,4BACbnvB,OAAO,UAAAM,EAAQ8gD,cAAR,eAAgBl+C,YAAa4R,GAAkBjV,OAAlB,UAAyBS,EAAQ8gD,cAAjC,aAAyB,EAAgBl+C,YAAc,UAU3H45C,oBACI,MAAM,EAAE3tB,GAAMnD,KAAKK,OACb,QAAE/rB,EAAF,gBAAWyrE,GAAoB//C,KAAKryB,MAE1C,OACI,kBAACi6C,GAAA,EAAD,CACIN,OAAQtnB,KAAKryB,MAAMoiD,gBACnBxI,SAAUvnB,KAAKqwB,eACftI,SAAS,SACTrnC,UAAU,uCAEV,kBAACsnC,GAAA,EAAD,CAAWtnC,UAAU,OACjB,kBAACmmB,GAAA,EAAD,CAAKnmB,UAAU,QACX,kBAAComB,GAAA,EAAD,KACI,0BAAMpmB,UAAU,WAAhB,wBAIJ,kBAAComB,GAAA,EAAD,CAAKpmB,UAAU,mCACX,kBAAC,GAAD,CACI1R,KAAMm0B,EAAE,iBACRgC,QAASnF,KAAKqwB,mBAI1B,kBAACxpB,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,KACI,kBAAC,GAAD,CACIsD,YAAY,EACZC,aAAc,CA7LrB,6BAiML,kBAACxD,GAAA,EAAD,CAAKnmB,UAAU,QACX,kBAAComB,GAAA,EAAD,KACI,uBAAGpmB,UAAU,cAAb,gCACkC,IAC9B,2BAAIsf,KAAKwjD,sBAFb,OAMR,kBAAC38C,GAAA,EAAD,CAAKnmB,UAAU,cACX,kBAAComB,GAAA,EAAD,CAAKgK,GAAG,IAAIpwB,UAAU,QAClB,kBAAC26B,GAAA,EAAD,CACIlQ,MAAM,UACN0Q,SAAO,EACPP,OAAK,EACLnW,QAASnF,KAAKqwB,eACdnrB,SAAU66C,GAET58C,EAAE,oBAGX,kBAAC2D,GAAA,EAAD,CAAKgK,GAAG,IAAIpwB,UAAU,QAClB,kBAAC26B,GAAA,EAAD,CACIlQ,MAAM,UACNmQ,OAAK,EACLnW,QAASnF,KAAKswB,SACdprB,SAAU66C,GAETA,EACG,kBAAC,GAAD,MAEA,uBAUhC7xB,qBACI,MAAM,QAAE55C,GAAY0rB,KAAKryB,MACzB,GAAI,OAAC2G,QAAD,IAACA,OAAD,EAACA,EAASd,GAId,OACI,yBAAKkN,UAAU,wBACX,yBAAKA,UAAU,aACX,kBAAC,GAAD,CACIpM,QAASA,EACT4vC,mBAAmB,EACnBihC,cAAenlD,KAAKmlD,cACpBzkE,UAAU,WA4F9B8iE,qBAEI,MAAM,QAAElvE,GAAY0rB,KAAKryB,MACzB,cAAI2G,QAAJ,IAAIA,OAAJ,EAAIA,EAASb,QACFG,KAAOU,EAAQb,QAAQI,OAAO,QAE9B,MAUJs1B,oBACX1D,YANqB93B,IACd,IAKP83B,CAAyBC,eAAkBugD,MC9EhCl+C,OAvRA,CACX,CACIQ,KAAM3O,GAAKG,UACXphB,MAAOulC,GAAK/a,EAAE,mBAAoB,WAClCiF,eAAgB,IAER,kBAAC8gB,GAAA,EAAD,KACM/lB,GAAMA,EAAE,mBAAoB,YAI1Cwa,UAAWD,GACX3V,OAAQ,CACJ,CACIQ,KAAM3O,GAAKG,UACXphB,MAAO,GACPglC,UAAW5L,IAEf,CACIxJ,KAAM3O,GAAKI,SACXrhB,MAAO,GACPglC,UAAW6rB,MAIvB,CACIjhC,KAAM3O,GAAKK,SACXthB,MAAOulC,GAAK/a,EAAE,kBAAmB,YACjCiF,eAAgB,IAER,kBAAC8gB,GAAA,EAAD,KACM/lB,GAAMA,EAAE,kBAAmB,aAIzCwa,UAAWD,GACX3V,OAAQ,CACJ,CACIQ,KAAM3O,GAAKK,SACXthB,MAAO,GACPglC,UAAWH,IAEf,CACIjV,KAAM3O,GAAKM,aACXvhB,MAAO,GACPglC,UAAWijB,MAIvB,CACIn4B,OAAO,EACPF,KAAM3O,GAAKW,iBACX5hB,MAAOulC,GAAK/a,EAAE,sBAAuB,sBACrCiF,eAAgB,IAER,kBAAC8gB,GAAA,EAAD,KACM/lB,GAAMA,EAAE,sBAAuB,uBAI7Cwa,UAAW0oC,IAEf,CACI59C,OAAO,EACPF,KAAM3O,GAAKU,aACX3hB,MAAOulC,GAAK/a,EAAE,sBAAuB,sBACrCiF,eAAgB,IAER,kBAAC8gB,GAAA,EAAD,KACM/lB,GAAMA,EAAE,sBAAuB,uBAI7Cwa,UAAW2oC,IAEf,CACI/9C,KAAM3O,GAAKQ,QACXzhB,MAAO,GACPglC,UAAWF,GACX1V,OAAQ,CACJ,CACIQ,KAAM3O,GAAKS,cACX1hB,MAAOulC,GAAK/a,EAAE,yBAA0B,uBACxCiF,eAAgB,IAER,kBAAC8gB,GAAA,EAAD,KACM/lB,GACEA,EAAE,yBAA0B,wBAK5Cwa,UAAWkvB,IAEf,CACItkC,KAAM3O,GAAKY,gBACX7hB,MAAOulC,GAAK/a,EAAE,wBAAyB,gBACvCiF,eAAgB,IAER,kBAAC8gB,GAAA,EAAD,KACM/lB,GAAMA,EAAE,wBAAyB,iBAI/Cwa,UAAW4oC,IAEf,CACIh+C,KAAM3O,GAAKa,aACX9hB,MAAOulC,GAAK/a,EAAE,qBAAsB,gBACpCiF,eAAgB,IAER,kBAAC8gB,GAAA,EAAD,KACM/lB,GAAMA,EAAE,qBAAsB,iBAI5Cwa,UAAW6oC,IAEf,CACI/9C,OAAO,EACPF,KAAM3O,GAAKc,oBACX/hB,MAAOulC,GAAK/a,EAAE,wBACdiF,eAAgB,IAER,kBAAC8gB,GAAA,EAAD,KACM/lB,GAAMA,EAAE,yBAItBwa,UAAW8oC,IAEf,CACIh+C,OAAO,EACPF,KAAM3O,GAAKe,uBACXhiB,MAAOulC,GAAK/a,EAAE,+BACdiF,eAAgB,IAER,kBAAC8gB,GAAA,EAAD,KACM/lB,GAAMA,EAAE,gCAItBwa,UAAW,QAAC,MAAClR,GAAF,SAAa,kBAAC,GAAD,CAAyBj5B,GAAIkuC,OAAOjV,EAAMmI,OAAOphC,QAE7E,CACIi1B,OAAO,EACPF,KAAM3O,GAAKgB,gCACXjiB,MAAOulC,GAAK/a,EAAE,mCACdiF,eAAgB,IAER,kBAAC8gB,GAAA,EAAD,KACM/lB,GAAMA,EAAE,oCAItBwa,UAAW6nC,IAEf,CACI/8C,OAAO,EACPF,KAAM3O,GAAKiB,mCACXliB,MAAOulC,GAAK/a,EAAE,0CACdiF,eAAgB,IAER,kBAAC8gB,GAAA,EAAD,KACM/lB,GAAMA,EAAE,2CAItBwa,UAAW,QAAC,MAAClR,GAAF,SAAa,kBAAC,GAAD,CAAoCj5B,GAAIkuC,OAAOjV,EAAMmI,OAAOphC,UAIhG,CACI+0B,KAAM3O,GAAKkB,SACXniB,MAAOulC,GAAK/a,EAAE,kBAAmB,SACjCiF,eAAgB,IAER,kBAAC8gB,GAAA,EAAD,KACM/lB,GAAMA,EAAE,kBAAmB,UAIzCwa,UAAWD,GACX3V,OAAQ,CACJ,CACIQ,KAAM3O,GAAKkB,SACXniB,MAAO,GACPglC,UAAWuW,GACXjoD,IAAK,eAET,CACIs8B,KAAM3O,GAAKmB,iBACXpiB,MAAO,GACPglC,UAAWyW,GACXnoD,IAAK,wBAIjB,CACIs8B,KAAM3O,GAAKoB,QACXriB,MAAO,GACPglC,UAAW6Y,GACXzuB,OAAQ,CACJ,CACIQ,KAAM3O,GAAKqB,aACXtiB,MAAOulC,GAAK/a,EAAE,iBAAkB,WAChCiF,eAAgB,IAER,kBAAC8gB,GAAA,EAAD,KACM/lB,GAAMA,EAAE,iBAAkB,YAIxCwa,UAAW+iB,IAEf,CACIn4B,KAAM3O,GAAKsB,iBACXviB,MAAOulC,GAAK/a,EAAE,kBAAmB,YACjCiF,eAAgB,IAER,kBAAC8gB,GAAA,EAAD,KACM/lB,GAAMA,EAAE,kBAAmB,aAIzCwa,UAAW0xB,IAEf,CACI9mC,KAAM3O,GAAKuB,cACXxiB,MAAOulC,GAAK/a,EAAE,eAAgB,aAC9BiF,eAAgB,IAER,kBAAC8gB,GAAA,EAAD,KACM/lB,GAAMA,EAAE,eAAgB,cAItCwa,UAAWwc,IAEf,CACI5xB,KAAM3O,GAAKwB,sBACXziB,MAAOulC,GAAK/a,EAAE,uBAAwB,cACtCiF,eAAgB,IAER,kBAAC8gB,GAAA,EAAD,KACM/lB,GAAMA,EAAE,uBAAwB,eAI9Cwa,UC3QD,SAAuBtd,GAClC,MAAM,EAAE8C,GAAMoD,gBAEPmgD,EAAyBC,GAA8BliB,oBAC1D,GAEEmiB,EAAsBC,iBAAOH,GAEnC,IAAItoE,EAAgB8oB,YACfv5B,GAAUA,EAAMyQ,cAAcA,eAE/BtS,EAAUo7B,YAAav5B,GAAUA,EAAMyQ,cAActS,SAErD46E,IACAtoE,EAAgBA,EAAc8D,OACzBykB,GAAiBA,EAAaa,WAAak/C,IAIpDv/C,oBAAU,KACNf,MAED,IAEH,MAAM0gD,EAAsBngD,I3KbzB,IAA8BnzB,K2KcRmzB,EAAanzB,G3Kb/BuW,KACF6Y,IAAImkD,8BAAkCvzE,EAAK,KAC3CyW,KAAM2U,GACIA,EAAKpsB,MAEf0X,MAAOla,IACJ,MAAMnC,EAAeoZ,GAAsBjX,GAC3C,MAAMma,MAAMtc,M2KOXoc,KAAK,KACFmc,OAEHlc,MAAOla,IACJuR,GACI4hB,EAAE,wDAAyD,sCAC3DvJ,GAAKwB,0BAKf4rD,EAAwBrgD,I3Kd3B,IAA4BnzB,K2KeRmzB,EAAanzB,G3Kd7BuW,KACF8vB,OAAOktC,8BAAkCvzE,EAAK,KAC9CyW,KAAM2U,GACIA,EAAKpsB,MAEf0X,MAAOla,IACJ,MAAMnC,EAAeoZ,GAAsBjX,GAC3C,MAAMma,MAAMtc,M2KQXoc,KAAK,KACFmc,OAEHlc,MAAOla,IACJuR,GACI4hB,EAAE,sDAAuD,sCACzDvJ,GAAKwB,0BASrB,OAAItvB,EACO,kBAAC,GAAD,MAIP,kBAACk+B,GAAA,EAAD,CAAMtpB,UAAU,cACZ,kBAACqwB,GAAA,EAAD,KACI,kBAAClK,GAAA,EAAD,CAAKnmB,UAAU,sBACX,kBAAComB,GAAA,EAAD,KACI,0BAAMpmB,UAAU,WAAWyiB,EAAE,uBAAwB,gBAEzD,kBAAC2D,GAAA,EAAD,CAAKpmB,UAAU,mCACX,kBAAC,GAAD,CACIw7C,QAAM,EACNloD,MAAO0yE,EACPhzC,UAAWvQ,EAAE,+BAAgC,YAC7CxC,IAAKimD,EACLzhD,QArBU,KAC9BwhD,GAA4BD,SAyBxB,kBAACz8C,GAAA,EAAD,CAAUvpB,UAAU,QACU,IAAzBtC,EAAcoG,QACX,yBAAK9D,UAAU,QAAQyiB,EAAE,oCAAqC,yBAEjE/kB,EAAc9I,IAAKqxB,GAEZ,yBAAK16B,IAAK,gBAAkB06B,EAAanzB,IACrC,6BACA,kBAACqzB,GAAA,EAAD,CAAKnmB,UAAU,aACX,kBAAComB,GAAA,EAAD,KACI,kBAACD,GAAA,EAAD,CAAKnmB,UAAU,QACX,kBAAComB,GAAA,EAAD,KACI,0BAAMpmB,UAAU,+BACXimB,EAAal1B,UAEhBk1B,EAAaa,SACX,0BACI9mB,UAAU,kCACVykB,QAAS,IACL2hD,EACIngD,IAIPxD,EAAE,iCAAkC,uBAKrD,kBAAC0D,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,CAAKpmB,UAAU,gCACV9M,KACG+yB,EAAaI,YACflzB,OAAO,iBAIrB,kBAACizB,GAAA,EAAD,CACI2D,GAAG,OACH/pB,UAAU,+DAEV,0BACIA,UAAU,MACVykB,QAAS,IACL6hD,EAAqBrgD,IAGzB,kBAAC,GAAD,iBDoJpC,CACI4B,KAAM3O,GAAK6B,eACX9iB,MAAO,sBACPyvB,eAAgB,IAER,kBAAC8gB,GAAA,EAAD,KACM/lB,GAAMA,EAAE,uBAAwB,wBAI9Cwa,UAAWspC,IAEf,CACI1+C,KAAM3O,GAAK8B,cACX/iB,MAAO,cACPyvB,eAAgB,IAER,kBAAC8gB,GAAA,EAAD,KACM/lB,GAAMA,EAAE,iBAAkB,gBAIxCwa,UAAWupC,KE/SnB,MAAMC,WAA2B1kD,IAAMC,UACnCe,SACI,SAASia,EAAmBxV,GACxB,OACI,kBAAC,KAAD,CACIK,KAAML,EAAMK,KACZ9E,OAAQpD,GAEJ,kBAAC6H,EAAMyV,UAAP,iBAAqBtd,EAArB,CAA4B0H,OAAQG,EAAMH,YAM1D,OACI,oCACI,yBAAKrnB,UAAU,2BACX,kBAAC,KAAD,CAASwoB,GAAItP,GAAKqB,aAAcva,UAAU,wBAA1C,WACA,kBAAC,KAAD,CAASwoB,GAAItP,GAAKuB,cAAeza,UAAU,wBAA3C,cAGJ,kBAAC,KAAD,KACKsf,KAAKK,MAAM0H,OAAOzyB,IAAI,CAAC4yB,EAAOngB,IAC3B,kBAAC21B,EAAD,eAAoBzxC,IAAK8b,GAAOmgB,QASzCi/C,UC9Bf,MAAM1pC,WAAoBhb,IAAMC,UAC5Be,SACI,SAASia,EAAmBxV,GACxB,OACI,kBAAC,KAAD,CACIK,KAAML,EAAMK,KACZ9E,OAAQpD,GAEJ,kBAAC6H,EAAMyV,UAAP,iBAAqBtd,EAArB,CAA4B0H,OAAQG,EAAMH,YAM1D,OACI,oCACI,yBAAKrnB,UAAU,2BACX,kBAAC,KAAD,CAASwoB,GAAItP,GAAKgC,4BAA6Blb,UAAU,wBAAzD,mBACA,kBAAC,KAAD,CAASwoB,GAAItP,GAAKiC,8BAA+Bnb,UAAU,wBAA3D,yBACA,kBAAC,KAAD,CAASwoB,GAAItP,GAAKkC,6BAA8Bpb,UAAU,wBAA1D,eACA,kBAAC,KAAD,CAASwoB,GAAItP,GAAKmC,2BAA4Brb,UAAU,6BAAxD,cACA,kBAAC,KAAD,CAAS+nB,OAAK,EAACS,GAAItP,GAAK+B,iBAAkBjb,UAAU,wBAApD,mBAGJ,kBAAC,KAAD,KACKsf,KAAKK,MAAM0H,OAAOzyB,IAAI,CAAC4yB,EAAOngB,IAC3B,kBAAC21B,EAAD,eAAoBzxC,IAAK8b,GAAOmgB,QASzCuV,U,OChCf,MAAM2pC,WAAuB3kD,IAAMC,UAC/BmK,oBACIrrB,KACAo1C,KAAoB1sC,MAAMre,IACtB0V,GAAsB,8CAA4Cye,KAAKK,MAAM4H,SAASD,YAI9FvE,SACI,OACI,kBAACuG,GAAA,EAAD,CAAMtpB,UAAU,gBACZ,kBAACupB,GAAA,EAAD,CAAUvpB,UAAU,IAChB,kBAACmmB,GAAA,EAAD,CAAKnmB,UAAU,gCACX,kBAAComB,GAAA,EAAD,KACI,0BAAMpmB,UAAU,WAAhB,qBAEJ,kBAAComB,GAAA,EAAD,CAAKpmB,UAAU,wCACVsf,KAAKK,MAAM83B,UACR,kBAAC,GAAD,CACIjB,YAAU,EACVhyB,UAAQ,EACRwO,UAAW1T,KAAKK,MAAM83B,SACtBz3C,UAAU,gCAK1B,kBAACq4C,GAAA,EAAD,CAAMr4C,UAAU,gBACZ,kBAAC,GAAD,UAcT+kB,mBANS93B,IACb,CACHwqD,SAAUxqD,EAAMoN,SAAWpN,EAAMoN,QAAQN,cAAgB9M,EAAMoN,QAAQN,aAAakmD,OAI7El7B,CAAyB2hD,I,oBChCxC,MAAMC,WAAqC5kD,IAAMC,UAAW,cAAD,yBASvD/0B,MAAQ,CAAE25E,uBAAuB,EAAOC,uBAAuB,GATR,KA6CvDC,wBAA0B,KACtBxnD,KAAKkM,SAAS,CACVo7C,uBAAuB,KA/CwB,KAmDvDG,qBAAuB,KACnBznD,KAAKkM,SAAS,CACVo7C,uBAAuB,IAE3B9lE,MAvDmD,KA0DvDimC,UAAY,KACRjmC,KAEAwe,KAAKkM,SAAS,CACVq7C,uBAAuB,IAGpBx9D,KACF2U,KvNgD4B,qCuNhDI,CAAEgpD,UAAW1nD,KAAKK,MAAMsnD,WACxD19D,KAAK,KACF7I,GACI,kBACA4e,KAAKK,MAAM4H,SAASD,UAExBhI,KAAKkM,SAAS,CACVo7C,uBAAuB,MAG9Bp9D,MAAOre,IAEJ0V,GADa,0CAAmC0F,GAAsBpb,IACvCw7E,GAA6BvyC,YAAY,KAE3E2e,QAAQ,KACLzzB,KAAKkM,SAAS,CACVq7C,uBAAuB,OAtEvC9jD,SACI,OACI,oCACI,kBAAC4X,GAAA,EAAD,CACIQ,SAAO,EACPP,OAAK,EACLnQ,MAAM,YACNhG,QAASnF,KAAKwnD,yBAEbxnD,KAAKK,MAAMsnD,SAAW,4BAA2B,uBAGrD3nD,KAAK4nD,sBAKlBA,qBACI,OACI,kBAAC,GAAD,CACIxnD,MAAOJ,KAAKK,MAAMsnD,SAAW,4BAA2B,sBACxDrgC,OAAQtnB,KAAKryB,MAAM25E,sBACnB//B,SAAUvnB,KAAKynD,qBACfjgC,SAAUxnB,KAAKynD,qBACfhgC,UAAWznB,KAAKynB,UAChBC,UAAW1nB,KAAKryB,MAAM45E,sBACtB5/B,YAAa,CAAC0/B,GAA6BvyC,aAE3C,0BAAMp0B,UAAU,cAAcsf,KAAKK,MAAMsnD,SAAW,kBAAoB,YAAxE,sGAxCVN,GAKKx4C,aAAe,CAClB84C,UAAU,GANZN,GAUKvyC,WAAa,+BA8ET3L,oBAAWk+C,I,OCnF1B,MAAMQ,WAAuBplD,IAAMC,UAAW,cAAD,yBA+JzColD,aAAe77E,GAAO+H,IAClBgsB,KAAKK,MAAMtO,eAAe9lB,EAAK+H,IA/InC64B,oBACI/iB,GAAgBkW,KAAKK,MAAM/d,YAC3B62B,GAAgBnZ,KAAKK,MAAMjxB,YAC3BgqC,GAAkBpZ,KAAKK,MAAMhxB,cAC7BiqC,GAAoBtZ,KAAKK,MAAM9wB,gBAC/BmqC,GAAwB1Z,KAAKK,MAAM5wB,oBAGvCg0B,SACI,OACI,kBAACs1B,GAAA,EAAD,KACI,kBAAC/uB,GAAA,EAAD,CAAMtpB,UAAU,qCACZ,kBAACupB,GAAA,EAAD,CAAUvpB,UAAU,IAChB,kBAACmmB,GAAA,EAAD,CAAKnmB,UAAU,wDACX,kBAAComB,GAAA,EAAD,CAAKpmB,UAAU,aACX,0BAAMA,UAAU,WAAhB,WAEHsf,KAAKK,MAAM0nD,cACR,kBAACjhD,GAAA,EAAD,CAAKsU,GAAI,EAAGtK,GAAI,EAAGpwB,UAAU,mBACxBsf,KAAKK,MAAM0nD,eAIxB,kBAAClhD,GAAA,EAAD,CAAKnmB,UAAU,2BACX,kBAAComB,GAAA,EAAD,CAAKsU,GAAI,EAAGtK,GAAI,IACZ,kBAACjK,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,CAAKgK,GAAI,EAAGpwB,UAAU,QAClB,kBAAC,GAAD,CAAaqzB,YAAY,MACrB//B,MAAOgsB,KAAKK,MAAMxtB,QAAQwQ,IAC1B3C,UAAU,OACV0xB,SAAUpS,KAAK8nD,aAAa,SAEhC,kBAAC,GAAD,CAAQvsE,QAASykB,KAAKK,MAAM/d,WACxBi5B,aAAW,EACXm4B,cAAY,EACZ1/D,MAAOgsB,KAAKK,MAAMxtB,QAAQyQ,OAC1BywB,YAAY,cACZyH,eAAiBC,GAAWA,EAAO9iC,MACnC+iC,eAAiBD,GAAWA,EAAOznC,MACnCo+B,SAAUpS,KAAK8nD,aAAa,UAC5BpnE,UAAU,UAGlB,kBAAComB,GAAA,EAAD,CAAKgK,GAAI,EAAGpwB,UAAU,QAClB,kBAAC,GAAD,CAAaqzB,YAAY,eACrB//B,MAAOgsB,KAAKK,MAAMxtB,QAAQzF,KAC1BsT,UAAU,OACV0xB,SAAUpS,KAAK8nD,aAAa,UAEhC,kBAAC,GAAD,CAAQvsE,QAASykB,KAAKK,MAAMjxB,WACxBmsC,aAAW,EACXvnC,MAAOgsB,KAAKK,MAAMxtB,QAAQ0Q,SAC1BwwB,YAAY,aACZrzB,UAAU,OACV86B,eAAiBC,GAAWA,EAAOnD,YACnCoD,eAAiBD,GAAWA,EAAOznC,MACnCo+B,SAAUpS,KAAK8nD,aAAa,eAGpC,kBAAChhD,GAAA,EAAD,CAAKgK,GAAI,EAAGpwB,UAAU,aAClB,kBAAC,GAAD,CAAQnF,QAASykB,KAAKK,MAAMhxB,aACxBksC,aAAW,EACXvnC,MAAOgsB,KAAKK,MAAMxtB,QAAQlE,KAC1BolC,YAAY,oBACZrzB,UAAU,OACV86B,eAAiBC,GAAWA,EAAOznC,MACnC0nC,eAAiBD,GAAWA,EAAOznC,MACnCo+B,SAAUpS,KAAK8nD,aAAa,UAEhC,kBAAC,GAAD,CAAQvsE,QAASykB,KAAKK,MAAM9wB,eACxBgsC,aAAW,EACXvnC,MAAOgsB,KAAKK,MAAMxtB,QAAQ2Q,OAC1BuwB,YAAY,OACZyH,eAAiBC,GAAWA,EAAOznC,MAAQ,KAC3C0nC,eAAiBD,GAAWA,EAAOznC,MACnC0M,UAAU,OACV0xB,SAAUpS,KAAK8nD,aAAa,eAK5C,kBAAChhD,GAAA,EAAD,CAAKsU,GAAI,EAAGtK,GAAI,EAAGpwB,UAAU,QACzB,kBAACmmB,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,CAAKgK,GAAG,KAAKpwB,UAAU,mBACnB,kBAAC,GAAD,CAAQnF,QAASykB,KAAKK,MAAM5wB,mBACxB8rC,aAAW,EACXvnC,MAAOgsB,KAAKK,MAAMxtB,QAAQ4Q,WAC1BswB,YAAY,eACZ3B,SAAUpS,KAAK8nD,aAAa,cAC5BpnE,UAAU,WAGtB,kBAACmmB,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,CAAKgK,GAAG,IAAIpwB,UAAU,WAClB,kBAAC,KAAD,CACIA,UAAU,OACVi7B,gBAAgB,SAChB/vB,SAAUoU,KAAKK,MAAMxtB,QAAQ6Q,UAC7B0uB,SAAUpS,KAAK8nD,aAAa,aAC5Bnb,QAAS3sC,KAAKK,MAAMxtB,QAAQ8Q,SAAW,IAAIuN,KAC3Cu7C,W7JpIT,gB6JuIC,kBAAC3lC,GAAA,EAAD,CAAKgK,GAAG,IAAIpwB,UAAU,WAClB,kBAAC,KAAD,CACIi7B,gBAAgB,OAChBj7B,UAAU,OACVkL,SAAUoU,KAAKK,MAAMxtB,QAAQ8Q,QAC7Bi4B,QAAS5b,KAAKK,MAAMxtB,QAAQ6Q,UAC5B0uB,SAAUpS,KAAK8nD,aAAa,WAC5Brb,W7J9IT,kB6JmJP,kBAAC3lC,GAAA,EAAD,CAAKsU,GAAI,EAAGtK,GAAI,EAAGpwB,UAAU,QACzB,kBAAC26B,GAAA,EAAD,CACIQ,SAAO,EACPP,OAAK,EACLnQ,MAAM,UACNzqB,UAAU,YACVykB,QAASnF,KAAKK,MAAMnJ,gBALxB,sBASA,kBAACmkB,GAAA,EAAD,CACIC,OAAK,EACLnQ,MAAM,UACNzqB,UAAU,YACV/R,KAAK,SACLw2B,QAASrd,IAAOA,EAAE0wC,iBAAkBx4B,KAAKK,MAAMisC,aALnD,cAiCjB7mC,mBAVS93B,IACb,CACH2U,WAAY3U,EAAM6qB,QAAQlW,WAC1BlT,WAAYzB,EAAMmC,SAASV,WAC3BC,aAAc1B,EAAMmC,SAAST,aAC7BE,eAAgB5B,EAAMmC,SAASP,eAC/BE,mBAAoB9B,EAAMmC,SAASL,qBAI5Bg2B,CAAyBoiD,I,oBCtMjC,MA6DMG,GAA6Bn9D,IAC/B,CACHlc,KlPiOqC,gCkPhOrCkc,QAIKo9D,GAA0Bp8E,IAC5B,CACH8C,KlP2NkC,6BkP1NlC9C,UCrCD,SAASq8E,GACZC,GAGD,IAFCC,EAEF,wDADE1kE,EACF,uDADc,KAEZ,MAAMqiB,EAAWzd,GAAsBuB,QACnC,eACAs+D,EAAe30E,IAEbhB,EAAO,CACT61E,gBAAiBD,EACjBE,WAAY10E,KAAO8P,GAAW7P,OAAO,cACrCzG,KAAM+6E,EAAe/6E,KACrBiW,IAAK8kE,EAAe9kE,IACpBk/C,SAAU4lB,EAAe5lB,SAAS/uD,GAClC+0E,eAAgBJ,EAAeh6D,OAAO3a,GACtCkwC,QAAS,GACTzM,iBAAkBkxC,EAAelxC,iBAAiBzjC,GAClDgQ,OAAQ2kE,EAAe3kE,OAAOhQ,GAC9BiX,OAAQ09D,EAAe19D,OACvB0gB,MAAOg9C,EAAeh9C,MAAM33B,GAC5B0jC,aAAcixC,EAAejxC,aAAa1jC,GAC1Cy0B,SAAUkgD,EAAelgD,UAG7B,OAAOle,KACF6Y,IAAImD,EAAUvzB,GACdyX,KAAM5C,GACIA,EAAS7U,MAEnB0X,MAAOre,IACJ,MAAMgC,EAAeoZ,GAAsBpb,GAC3C,MAAMse,MAAMtc,KAIjB,SAAS26E,GAAc5uC,GAC1B,MAAM7T,EAAWzd,GAAsBuB,QAAQ,eAAgB+vB,GAE/D,OAAO7vB,KACF8vB,OAAO9T,GACP9b,KAAM5C,GACIA,EAAS7U,MAEnB0X,MAAOre,IACJ,MAAMgC,EAAeoZ,GAAsBpb,GAC3C,MAAMse,MAAMtc,K,aClFjB,MAAM46E,GACH,OADGA,GAEY,sBAFZA,GAGC,WAHDA,GAIc,wBAJdA,GAKuB,iCC0B7B,SAASC,GAAqBhxB,EAAiB7kD,EAASiiC,GAC3D,GAAM4iB,EAAiB,CAEnB,GAAyC,OAD3B52C,GAAMoG,WACVoR,MAAM/E,QAAQtkB,aACpB,OAGR,MAAM8lC,EAAe,IAAKliC,GAE1B,OADAiO,GAAMC,SCpCC,CACHpS,KtPmSJ,uCqP/POob,KACFC,I5NmG6B,mC4NlG7BC,KAAM5C,IACH,MAAM4tB,EA+ElB,SAA4BnlC,EAAU+C,GAClC,IAAK/C,IAAaA,EAAS0U,SAAW3R,EAClC,OAAO/C,EAGX,OAAOA,EAASoS,OAAQ3M,IACpB,GAAI1C,EAAQwQ,MAAQ6yB,GAAqB3gC,EAAI8N,IAAKxQ,EAAQwQ,KACtD,OAAO,EAEX,GAAIxQ,EAAQzF,OAAS8oC,GAAqB3gC,EAAInI,KAAMyF,EAAQzF,MACxD,OAAO,EAEX,GAAIyF,EAAQyQ,QAAU/N,EAAI+N,OAAO9P,KAAOX,EAAQyQ,OAAOtP,MACnD,OAAO,EAEX,GAAInB,EAAQ0Q,UAAYhO,EAAIgO,SAASvP,QAAUnB,EAAQ0Q,SAAS/P,GAC5D,OAAO,EAEX,GAAIX,EAAQlE,MAAQ4G,EAAI5G,KAAKqF,QAAUnB,EAAQlE,KAAK6E,GAChD,OAAO,EAEX,GAAIX,EAAQsb,QAAU5Y,EAAI4Y,OAAOna,QAAUnB,EAAQsb,OAAO3a,GACtD,OAAO,EAEX,GAAIX,EAAQ81E,MAAQpzE,EAAIozE,OAAS91E,EAAQ81E,KAAK30E,MAC1C,OAAO,EAGX,GACInB,EAAQ4Q,YACRlO,EAAI8tC,UAAUrvC,QAAUnB,EAAQ4Q,WAAWzP,MAE3C,OAAO,EAIX,GAAInB,EAAQ2X,YAAc3X,EAAQ2X,WAAWhG,OAAQ,CAAC,IAAD,IACjD,MAAMgG,EAAa3X,EAAQ2X,WAAWlV,IACjCi+B,GAAcA,EAAUv/B,OAE7B,GACIwW,EAAWrI,SAASsmE,MACG,IAAvBlzE,EAAIqzE,eAEJ,OAAO,EAEX,GACIp+D,EAAWrI,SACPsmE,KAE8B,IAAlClzE,EAAIszE,0BAEJ,OAAO,EAEX,GACIr+D,EAAWrI,SAASsmE,KACpB/mC,OAAOnsC,EAAIozE,OAAS,EAEpB,OAAO,EAEX,GACIn+D,EAAWrI,SAASsmE,OAAiD,UAAClzE,EAAI8tC,iBAAL,aAAC,EAAeylC,aAErF,OAAO,EAGX,GACIt+D,EAAWrI,SAASsmE,OAA0D,UAAClzE,EAAI8tC,iBAAL,aAAC,EAAe0lC,uBAE9F,OAAO,EAKf,OAAO,IAzJsBC,CACrB3hE,EAAS7U,KACTuiC,GASJ,OAPAj0B,GAAMC,SCvC8B,EAC5CqD,EACAnV,EACA4D,KAEO,CACHlE,KtP2RJ,uCsP1RIM,eACA4D,UACAuR,2BD+BQ6kE,CACI5hE,EAAS7U,KACTyiC,EACAF,IAGD1tB,EAAS7U,OAEnB0X,MAAOre,IACJ,MAAMgC,EAAeoZ,GAAsBpb,GAC3CiV,GAAMC,SCrC4BlV,KACnC,CACH8C,KtPoRJ,oCsPnRI9C,UDkCmBq9E,CAA8Br7E,IAE7C2T,KACAD,GAAsB1T,EAAcinC,KA2IhD,SAASoB,GAAqBC,EAAKC,GAC/B,OAAOD,EAAIvD,OAAOljB,cAAcvN,SAASi0B,EAAOxD,OAAOljB,eAGpD,SAASy5D,GAAoBr+D,EAAYpH,GAC5C5C,GAAMC,SCzHC,CACHpS,KtP2OJ,6CqPlHA,MAAM6D,EAAO,CACTqY,IAAKC,EACLw9D,WAAY5kE,GAAa9P,KAAO8P,GAAW7P,OAAO,eAGtD,OAAOkW,KACF2U,K5NpEiC,+B4NoEAlsB,GACjCyX,KAAM5C,IACH,MAAM7U,EAAO6U,EAAS7U,KAEhB42E,EAAa52E,EACd0P,OAAQikC,GAAWA,EAAOkjC,YAC1B/zE,IAAK6wC,GAAWA,EAAO3yC,IAG5B,OAFAsN,GAAMC,SCjIP,CACHpS,KtPuOJ,6CsPtOIkc,ID+HyDu+D,IAE9C52E,IAEV0X,MAAOre,IACJ,MAAMgC,EAAeoZ,GAAsBpb,GAG3C,MAFAiV,GAAMC,SCjIiClV,KACxC,CACH8C,KtPkOJ,0CsPjOI9C,UD8HmBy9E,CAAmCz7E,IAE5Csc,MAAMtc,K,OExLxB,MAAM07E,GAAiB,IAAuC,IAAtC,SAAE/+C,EAAF,SAAYg/C,KAAanpD,GAAY,EACzD,IAAI7b,EAASglE,IAAWhlE,OACxB,IAAIilE,EAAc,GAWlB,OAVe,IAAXjlE,EACAilE,EAAc,cAEE,IAAXjlE,EACLilE,EAAc,uBAEE,IAAXjlE,GAA2B,IAAXA,IACrBilE,EAAW,oBAAgB,EAAIjlE,EAApB,UAIX,kBAAC,KAAW+kE,eAAmBlpD,GACzBA,EAAMqpD,YAAYC,YAChBF,EAEHhnD,IAAMmnD,SAASt0E,IAAIk1B,EAAUq/C,GACnBA,GAASA,EAAMl7E,OAASm7E,KAAWh2C,MAAQ+1C,EAAQ,QAM1E,MAAME,WAAoBtnD,IAAMC,UAAW,cAAD,sCA2BtC/0B,MAAQ,CACJq8E,YAAa,KACbC,oBAAoB,EACpB7wD,WAAW,EACX8wD,gBAAgB,EAChBC,4BAA6B,KAC7BC,0BAA0B,GAjCQ,KA4dtCC,sBAAyBC,IACF,IAAfA,EACO,CAAEt2E,OAAO,IAEI,IAAfs2E,EACE,CAAEt2E,OAAO,GAEb,KAne2B,KAsetCu2E,kBAAoB,KACRvqD,KAAKo+B,cAAgBp+B,KAAKK,MAAMzL,aAAeoL,KAAKK,MAAM2pD,YAAYQ,UAve5C,KA0etCC,oBAAsB,IACXzqD,KAAKK,MAAM2pD,YAAYQ,YAAcxqD,KAAKK,MAAM2pD,YAAY/W,aA3ejC,KA8etCyX,iBAAmB,KACP1qD,KAAKo+B,aA/eqB,KAkftCusB,oBAAsB,KAClB,IAAI37E,EAAO,qBAMX,OAJIgxB,KAAKK,MAAM2pD,YAAYQ,YACvBx7E,EAAO,wBAGJA,GAzf2B,KA4ftC47E,YAAc,KACV,MAAMC,EAAiBj3E,KAAOosB,KAAKryB,MAAMq8E,YAAYQ,WACrD,OAAOK,EAAe16C,UAAY06C,EAAeh3E,OnKzjB9B,cmKyjBoD,aA9frC,KAigBtCi3E,WAAa,KACT9qD,KAAKkM,SAAS,CAAE9S,WAAW,KAlgBO,KAqgBtC2xD,uBAA0BC,IACtBhrD,KAAKkM,SAAS,CACV89C,YAAa,IAAKgB,MAvgBY,KA2gBtC54C,SAAWhlC,GAAQ4G,IACF,sBAAT5G,GAA0C,OAAV4G,IAChCA,EAAQ,IAEZgsB,KAAKkM,SAAUsH,IACJ,CACHw2C,YAAa,IACNx2C,EAAUw2C,YACb,CAAC58E,GAAO4G,OAnhBc,KAyhBtCi3E,eAAiB79E,GAAQ4G,IAIrB,GAHAA,EAAQA,EAAM6V,QAAQ,IAAK,KAAKA,QAAQ,YAAa,IAGjDmW,KAAKryB,MAAMq8E,YAAY58E,KAAU4G,EACjC,OAAO,EAGXgsB,KAAKoS,SAAShlC,EAAd4yB,CAAoBhsB,IAjiBc,KAoiBtCk3E,wBAA2B/0C,IACvB,MAAMg1C,EAAQh1C,EAAI6wB,QAAQ,KAC1B,OAAO7wB,EAAIi1C,UAAU,EAAGD,EAAQ,GAAKh1C,EAAIi1C,UAAUD,EAAQ,GAAGthE,QAAQ,MAAO,KAtiB3C,KAyiBtCwhE,wBAA0BC,IACtB,MAAM9oE,EAAmBwd,KAAKryB,MAAMq8E,YAAYuB,kBAAkBrpE,OAC9DspE,GAAMA,EAAGx3E,QAAUs3E,EAAct3E,OAGrCgsB,KAAKoS,SAAS,oBAAdpS,CAAmCxd,IA9iBD,KAijBtCipE,iBAAmB,KACfjqE,KAEA,MAAM9C,EAAS,GACTsrE,EAAchqD,KAAKryB,MAAMq8E,YAEzB77D,EAAS67D,EAAY77D,OACtBA,EAGKmmB,GAAoBC,GAAGpyB,SAASgM,EAAOna,QAAWsgC,GAAoBE,IAAIryB,SAASgM,EAAOna,QAChG0K,EAAOkoB,KAAK,CAAErf,KAAM,0CAHpB7I,EAAOkoB,KAAK,CAAErf,KAAM,sBAMxB,MAAMmkE,EAAiB,CACnB,CAAE90E,MAAO,QAAS+B,MAAO,SACzB,CAAE/B,MAAO,SAAU+B,MAAO,aAC1B,CAAE/B,MAAO,mBAAoB+B,MAAO,YACpC,CAAE/B,MAAO,oBAAqB+B,MAAO,gBACrC,CAAE/B,MAAO,WAAY+B,MAAO,iBAC5B,CAAE/B,MAAO,KAAM+B,MAAO,MACtB,CAAE/B,MAAO,KAAM+B,MAAO,MACtB,CAAE/B,MAAO,aAAc+B,MAAO,YAGlC,IAAK,MAAMypB,KAAKspD,EAAgB,CAC5B,MAAM13E,EAAQg2E,EAAY5nD,EAAExrB,YACdqiB,IAAVjlB,GAAiC,OAAVA,GAA4B,KAAVA,GACzC0K,EAAOkoB,KAAK,CAAEhwB,MAAOwrB,EAAExrB,MAAO2Q,KAAK,GAAD,OAAK6a,EAAEzpB,MAAP,gBAI1C,MAOMgzE,EAAcjtE,EAAOpJ,IAAIzJ,GAASA,EAAM+K,OACxCg1E,EARoB,CACtB,CAAEh1E,MAAO,QAAS+B,MAAO,SACzB,CAAE/B,MAAO,SAAU+B,MAAO,aAC1B,CAAE/B,MAAO,KAAM+B,MAAO,MACtB,CAAE/B,MAAO,KAAM+B,MAAO,OAI0BuJ,OAAOkgB,IAAMupD,EAAYxpE,SAASigB,EAAExrB,QAExF,IAAK,MAAMwrB,KAAKwpD,EAA2B,CACvC,MAAM53E,EAAQ0tC,OAAOsoC,EAAY5nD,EAAExrB,QAC9B8S,SAAS1V,IACV0K,EAAOkoB,KAAK,CAAEhwB,MAAOwrB,EAAExrB,MAAO2Q,KAAK,GAAD,OAAK6a,EAAEzpB,MAAP,+BAI1C,GAAI+F,EAAO8F,OAAS,EAAG,CAGnB,OADAjD,GADgBmG,GAAoBhJ,EAASoJ,GAAMA,EAAEP,MACtByY,KAAK6rD,kBAC7B,EAGP,OAAO,GAxmBuB,KA6mBtC5+B,SAAW,KACP,IAAKjtB,KAAKyrD,mBACN,OAEJjqE,KACA,MAAMwoE,EAAc,IACbhqD,KAAKryB,MAAMq8E,YACd77D,OAAQ6R,KAAKryB,MAAMq8E,YAAY77D,OAAOna,MACtCu3E,kBAAmBvrD,KAAKryB,MAAMq8E,YAAYuB,kBAAkBj2E,IAAIk2E,GAAMA,EAAGx3E,OACzEi0B,SAAUjI,KAAKryB,MAAMq8E,YAAY/hD,SAAWjI,KAAKryB,MAAMq8E,YAAY/hD,SAASj0B,MAAQ,O3JjdzF,SAA2Bg2E,GAC9B,MAAMrpC,EnEvGkB,gBmEuGGqpC,EAAY8B,QAEjCt5E,EAAO,CACT+tB,MAAOypD,EAAYzpD,MACnBwrD,iBAAkB/B,EAAY+B,iBAC9BvrD,OAAQwpD,EAAYxpD,OACpBwrD,kBAAmBhC,EAAYgC,kBAC/B/jD,SAAU+hD,EAAY/hD,SACtBgkD,GAAIjC,EAAYiC,GAChBC,GAAIlC,EAAYkC,GAChB5B,WAAYN,EAAYM,WACxB5mC,QAASsmC,EAAYtmC,QACrBv1B,OAAQ67D,EAAY77D,OACpBo9D,kBAAmBvB,EAAYuB,mBAGnC,OAAOxhE,KACF6Y,IAAI+d,EAAKnuC,GACTyX,KAAM5C,GACIA,EAAS7U,MAEnB0X,MAAOre,IAEJ,GACIA,EAAMwb,UACNxb,EAAMwb,SAAS7U,MACf3G,EAAMwb,SAAS7U,KAAKkM,OAEpB,OAAO7S,EAAMwb,SAAS7U,KAE1B,MAAM3E,EAAeoZ,GAAsBpb,GAC3C,MAAMse,MAAMtc,M2JmbhBs+E,CAAkBnC,GACb//D,KAAKzX,IAEF,GADAgP,KACIhP,EAAKkM,QAAUlM,EAAKkM,OAAO8F,OAAQ,CAEnCjD,GADgBmG,GAAoBlV,EAAKkM,OAASoJ,GAAMA,EAAEP,MAC3ByY,KAAK6rD,qBACjC,CACH,IAAI/9E,EAAiB,iCACjBk8E,EAAYQ,YAEZ18E,EAAiB,mCAErBsT,GAAwBtT,EAAgBkyB,KAAK6rD,iBAC7C7rD,KAAKkM,SAAS,CACV89C,YAAax3E,EAAKA,OAEtBwtB,KAAKK,MAAM8sB,gBAAgB36C,EAAKA,SAGvC0X,MAAMre,IACH2V,KACAD,GAAsB1V,EAAM4F,QAASuuB,KAAK6rD,oBA7oBhB,KAipBtCO,gBAAkB,KACdpsD,KAAKkM,SAAUsH,IACJ,CACHpa,WAAYoa,EAAUpa,cAppBI,KA6pBtCglC,WAAa,KACsB,IAAxBp+B,KAAKK,MAAM29B,UAA4D,MAAvCh+B,KAAKK,MAAM2pD,YAAY/W,aA9pB5B,KAiqBtCoZ,mBAAqB,IAEVrsD,KAAKK,MAAM2pD,YAAYQ,WAAaxqD,KAAKK,MAAM2pD,YAAY/W,aAnqBhC,KAsqBtCqZ,0BAA4B,MAEftsD,KAAKryB,MAAMq8E,YAAYzpD,OAASP,KAAKryB,MAAMq8E,YAAY/hD,SAxqB9B,KA2qBtCskD,UAAY,IACDvsD,KAAKryB,MAAMq8E,aAAqD,IAAtChqD,KAAKryB,MAAMq8E,YAAY3mE,IAAImB,OA5qB1B,KA+qBtCgoE,gBAAkB,IACPxsD,KAAKusD,YAAcxC,GAAY0C,kBAAoB1C,GAAY2C,mBAhrBpC,KAmrBtCC,iBAAmB,IACR3sD,KAAKusD,YAAcxC,GAAY6C,mBAAqB7C,GAAY8C,oBAprBrC,KAurBtCC,iBAAmB,WAAsB,IAArBv7C,IAAoB,yDACpC,MAAMw7C,EAAax7C,EAAWw4C,GAAYiD,oCAAsCjD,GAAYkD,sCAC5F,OAAO,EAAKT,kBAAoBO,EAAa,KAzrBX,KA4rBtCG,kBAAoB,IACTltD,KAAK2sD,mBAAqB5C,GAAYoD,4BAA8B,IA7rBzC,KAgsBtCC,iBAAmB,IACRptD,KAAKwsD,kBAAoBzC,GAAYsD,2BAA6B,IAjsBvC,KAosBtCC,kBAAoB,IACTttD,KAAK2sD,mBAAqB5C,GAAYwD,4BAA8B,IArsBzC,KAwsBtCC,aAAe,KACX,IAAKxtD,KAAKssD,4BACN,OAAO,EAEX,MAAM/rD,EAAQmhB,OAAO1hB,KAAKryB,MAAMq8E,YAAYzpD,OACtC0H,EAAWjI,KAAKryB,MAAMq8E,YAAY/hD,SACxC,OAAIA,EAASj0B,QAAU+1E,GAAY0D,0BACxBltD,GAASP,KAAK8sD,kBAAiB,GAGtC7kD,EAASj0B,QAAU+1E,GAAY2D,yBACxBntD,GAASP,KAAK8sD,kBAAiB,IAntBR,KAytBtCa,yBAA2B,KACvB,IAAK3tD,KAAKssD,4BACN,MAAO,GAEX,MAAM/rD,EAAQP,KAAKryB,MAAMq8E,YAAYzpD,MAC/BwsD,EAA6B,IAAhBrrC,OAAOnhB,GAAeP,KAAKwsD,kBAC9C,OAAOhsE,KAAEwhC,MAAM+qC,EAAY,GAAGa,YA/tBI,KAkuBtCC,8CAAgD,MACnC7tD,KAAKryB,MAAMq8E,YAAY+B,kBAAoB/rD,KAAKryB,MAAMq8E,YAAY/hD,SAnuBzC,KAsuBtC6lD,uBAAyB,KACrB,IAAK9tD,KAAK6tD,gDACN,OAAO,EAEX,MAAME,EAAkBrsC,OAAO1hB,KAAKryB,MAAMq8E,YAAY+B,kBAChD9jD,EAAWjI,KAAKryB,MAAMq8E,YAAY/hD,SACxC,OAAIA,EAASj0B,QAAU+1E,GAAY0D,0BACxB1D,GAAYkD,uCAAyCc,GAAmBA,GAAmBhE,GAAYsD,2BAG9GplD,EAASj0B,QAAU+1E,GAAY2D,0BACxB3D,GAAYiD,qCAAuCe,GAAmBA,GAAmBhE,GAAYsD,6BAjvB9E,KAuvBtCW,qCAAuC,MAE1BhuD,KAAKryB,MAAMq8E,YAAYxpD,QAAUR,KAAKryB,MAAMq8E,YAAY/hD,SAzvB/B,KA4vBtCgmD,cAAgB,KACZ,IAAKjuD,KAAKguD,uCACN,OAAO,EAGX,MAAMxtD,EAASkhB,OAAO1hB,KAAKryB,MAAMq8E,YAAYxpD,QAC7C,OAAIR,KAAKryB,MAAMq8E,YAAY/hD,SAASj0B,QAAU+1E,GAAY2D,wBAC/CltD,GAAUupD,GAAYmE,0BAEtB1tD,GAAUupD,GAAYoE,6BArwBC,KA0wBtCC,0BAA4B,KACxB,MAAM5tD,EAASR,KAAKryB,MAAMq8E,YAAYxpD,OACtC,IAAKA,EACD,MAAO,GAEX,MAAMusD,EAA8B,IAAjBrrC,OAAOlhB,GAAgBR,KAAK2sD,mBAC/C,OAAOnsE,KAAEwhC,MAAM+qC,EAAY,GAAGa,YAhxBI,KAmxBtCS,+CAAiD,MACpCruD,KAAKryB,MAAMq8E,YAAYgC,mBAAqBhsD,KAAKryB,MAAMq8E,YAAY/hD,SApxB1C,KAuxBtCqmD,wBAA0B,KACtB,IAAKtuD,KAAKquD,iDACN,OAAO,EAEX,MAAM7tD,EAASkhB,OAAO1hB,KAAKryB,MAAMq8E,YAAYxpD,QACvC+tD,EAAmB7sC,OAAO1hB,KAAKryB,MAAMq8E,YAAYgC,mBACjD/jD,EAAWjI,KAAKryB,MAAMq8E,YAAY/hD,SAExC,OAAIA,EAASj0B,QAAU+1E,GAAY0D,0BACxBjtD,GAAUupD,GAAYoE,6BAA+BI,GAAoBxE,GAAYwD,4BAG5FtlD,EAASj0B,QAAU+1E,GAAY2D,0BACxBltD,GAAUupD,GAAYmE,2BAA6BK,GAAoB,MApyBhD,KA0yBtCvgB,sBAAwB94D,GAEhB,kBAACi/C,GAAD,KACKj/C,GA7yByB,KAkzBtCs5E,mBAAqB,KACjB,GAAIxuD,KAAKryB,MAAMq8E,aAAmD,OAApChqD,KAAKryB,MAAMq8E,YAAY/hD,SAAmB,CACpE,MAAMvlB,EAAYsd,KAAKK,MAAM3d,WAAa,GAC1C,IAAK,MAAMulB,KAAYvlB,EACnB,GAAIulB,EAASj0B,QAAU+1E,GAAY2D,wBAE/B,YADA1tD,KAAKoS,SAAS,WAAdpS,CAA0BiI,KAnxB1C4E,oBACI7M,KAAK+qD,uBAAuB/qD,KAAKK,MAAM2pD,aACvChqD,KAAKkM,SAAS,CACV9S,UAAW4G,KAAKqsD,uBAEpBrsD,KAAKwuD,qBAGTthD,mBAAmBC,EAAWqG,GACtBrG,EAAU68C,cAAgBhqD,KAAKK,MAAM2pD,aACrChqD,KAAK+qD,uBAAuB/qD,KAAKK,MAAM2pD,aAGvCx2C,EAAUw2C,cAAgBhqD,KAAKryB,MAAMq8E,aAAehqD,KAAKryB,MAAMq8E,cAC3Dx2C,EAAUw2C,aAAex2C,EAAUw2C,YAAYzpD,QAAUP,KAAKryB,MAAMq8E,YAAYzpD,OAChFP,KAAKoS,SAAS,mBAAdpS,CAAkCA,KAAK2tD,4BAEvCn6C,EAAUw2C,aAAex2C,EAAUw2C,YAAYxpD,SAAWR,KAAKryB,MAAMq8E,YAAYxpD,QACjFR,KAAKoS,SAAS,oBAAdpS,CAAmCA,KAAKouD,8BAG5CpuD,KAAKryB,MAAMq8E,aAAmD,OAApChqD,KAAKryB,MAAMq8E,YAAY/hD,UAAqBjI,KAAKK,MAAM3d,WAAasd,KAAKK,MAAM3d,UAAU8B,QACnHwb,KAAKwuD,qBAIb/qD,SACI,OAAIzD,KAAKryB,MAAMs8E,mBAEP,kBAAC,GAAD,MAGHjqD,KAAKryB,MAAMq8E,aAIZhqD,KAAKo+B,aAEFp+B,KAAKyuD,gBALD,qCAUfA,eAEI,OACI,kBAAC5nD,GAAA,EAAD,CAAKnmB,UAAU,6BACX,kBAAComB,GAAA,EAAD,CAAKpmB,UAAU,QACX,kBAACmmB,GAAA,EAAD,CAAK1B,QAASnF,KAAKosD,gBAAiB1rE,UAAU,uCAC1C,kBAAComB,GAAA,EAAD,CAAKpmB,UAAU,QACX,0BAAMA,UAAU,0BAAhB,gBAAuDsf,KAAK4qD,cAAe5qD,KAAKyqD,uBAAyB,kBACxGzqD,KAAKryB,MAAMyrB,UACR,kBAAC,GAAD,CAAW1Y,UAAU,gCAErB,kBAAC,GAAD,CAASA,UAAU,iCAG1Bsf,KAAKuqD,qBACF,kBAACzjD,GAAA,EAAD,CAAKpmB,UAAU,YACVsf,KAAK0uD,0CAGd,kBAAC5nD,GAAA,EAAD,CAAKpmB,UAAU,iBACVsf,KAAK2uD,iBAGd,kBAACjqB,GAAA,EAAD,CAAUpd,QAAStnB,KAAKryB,MAAMyrB,UAAW1Y,UAAU,IAC9Csf,KAAK21B,mBAO1Bg5B,eACI,MAAMxgE,EAAS6R,KAAKK,MAAM2pD,YAAY77D,OACtC,OAAIA,EAEI,kBAAC,GAAD,CACIA,OAAQA,EAAOxV,MACfhK,KAAM+lC,GAAkBvmB,EAAOna,OAC/B0M,UAAU,gBAKf,qCAGXi1C,gBACI,MAAMyI,EAAap+B,KAAKo+B,aAExB,OACI,yBAAK19C,UAAU,qBACX,kBAACmmB,GAAA,EAAD,CAAKnmB,UAAU,kCACX,kBAAComB,GAAA,EAAD,CAAKsU,GAAG,KACJ,kBAACvU,GAAA,EAAD,CAAKnmB,UAAU,mBACX,kBAAComB,GAAA,EAAD,CAAK+J,GAAG,IAAIC,IAAI,EAAMpwB,UAAU,QAC5B,kBAAC,GAAD,CACI/R,KAAK,OACL+kC,UAAU,aACVK,YAAY,OACZrzB,UAAU,OACV1M,MAAOgsB,KAAKryB,MAAMq8E,YAAYzpD,MAC9B6R,SAAUpS,KAAKirD,eAAe,SAC9B/lD,SAAUk5B,EACVlrB,MAAOlT,KAAKssD,6BAA+BtsD,KAAKwtD,eAChDp6C,QAASpT,KAAKssD,8BAAgCtsD,KAAKwtD,eACnDx6C,UAAWorB,KAGnB,kBAACt3B,GAAA,EAAD,CAAK+J,GAAG,IAAIC,IAAI,EAAMpwB,UAAU,QAC5B,kBAAC,GAAD,CACIwkB,UAAQ,EACRv2B,KAAK,SACL+kC,UAAU,YACVK,YAAY,GACZrzB,UAAU,OACV1M,MAAOgsB,KAAKryB,MAAMq8E,YAAY+B,iBAC9B35C,SAAUpS,KAAKoS,SAAS,oBACxBc,MAAOlT,KAAK6tD,iDAAmD7tD,KAAK8tD,yBACpE16C,QAASpT,KAAK6tD,kDAAoD7tD,KAAK8tD,yBACvE96C,UAAWorB,KAGnB,kBAACt3B,GAAA,EAAD,CAAK+J,GAAG,IAAIC,IAAI,EAAMpwB,UAAU,QAC5B,kBAAC,GAAD,CACI/R,KAAK,SACL+kC,UAAU,gBACVK,YAAY,GACZrzB,UAAU,OACV1M,MAAOgsB,KAAKryB,MAAMq8E,YAAYgC,kBAC9B55C,SAAUpS,KAAKoS,SAAS,qBACxBlN,UAAQ,EACRgO,MAAOlT,KAAKquD,kDAAoDruD,KAAKsuD,0BACrEl7C,QAASpT,KAAKquD,mDAAqDruD,KAAKsuD,0BACxEt7C,UAAWorB,KAGnB,kBAACt3B,GAAA,EAAD,CAAK+J,GAAG,IAAIC,IAAI,EAAMpwB,UAAU,QAC5B,kBAAC,GAAD,CACI/R,KAAK,OACL+kC,UAAU,UACVK,YAAY,OACZrzB,UAAU,OACV1M,MAAOgsB,KAAKryB,MAAMq8E,YAAYkC,GAC9B95C,SAAUpS,KAAKirD,eAAe,MAC9B/lD,SAAUk5B,EACVprB,UAAWorB,KAGnB,kBAACt3B,GAAA,EAAD,CAAK+J,GAAG,IAAIC,IAAI,EAAMpwB,UAAU,QAC5B,kBAAC,GAAD,CACI/R,KAAK,OACL+kC,UAAU,UACVK,YAAY,OACZrzB,UAAU,OACV1M,MAAOgsB,KAAKryB,MAAMq8E,YAAYiC,GAC9B75C,SAAUpS,KAAKirD,eAAe,MAC9B/lD,SAAUk5B,EACVprB,UAAWorB,KAGnB,kBAACt3B,GAAA,EAAD,CAAK+J,GAAG,IAAIC,IAAI,EAAMpwB,UAAU,QAC5B,kBAAC,GAAD,CACI/R,KAAK,OACL+kC,UAAU,iBACVK,YAAY,OACZrzB,UAAU,OACV1M,MAAOgsB,KAAKryB,MAAMq8E,YAAYxpD,OAC9B4R,SAAUpS,KAAKirD,eAAe,UAC9B/lD,SAAUk5B,EACVlrB,MAAOlT,KAAKguD,wCAA0ChuD,KAAKiuD,gBAC3D76C,QAASpT,KAAKguD,yCAA2ChuD,KAAKiuD,gBAC9Dj7C,UAAWorB,KAGnB,kBAACt3B,GAAA,EAAD,CAAK+J,GAAG,IAAIC,IAAI,EAAMpwB,UAAU,QAC5B,kBAAC,GAAD,CACIgzB,UAAU,gBACVK,YAAY,OACZrzB,UAAU,OACVnF,QAASykB,KAAKK,MAAM3d,UACpB1O,MAAOgsB,KAAKryB,MAAMq8E,YAAY/hD,SAC9BmK,SAAUpS,KAAKoS,SAAS,YACxBlN,SAAUk5B,EACVprB,UAAWorB,EACXwwB,iBAAiB,KAGzB,kBAAC9nD,GAAA,EAAD,CAAK+J,GAAG,IAAIC,IAAI,EAAMpwB,UAAU,QAC5B,kBAAC,GAAD,CACIgzB,UAAU,UACVK,YAAY,OACZrzB,UAAU,OACV1M,MAAOgsB,KAAKqqD,sBAAsBrqD,KAAKryB,MAAMq8E,YAAYM,YACzD/uE,QAAS,CAAC,CAAEvH,OAAO,GAAQ,CAAEA,OAAO,IACpCwnC,eAAgBC,GAAUA,EAAOznC,MAAQ,MAAQ,KACjDo+B,SAAUy8C,GAAkB7uD,KAAKoS,SAAS,aAAdpS,CAA4B6uD,EAAiBA,EAAe76E,MAAQ,MAChGkxB,SAAUk5B,EACVprB,UAAWorB,EACXwwB,iBAAiB,OAKjC,kBAAC9nD,GAAA,EAAD,CAAKsU,GAAG,IAAI16B,UAAU,QAClB,kBAAC,GAAD,CACIouE,SAAO,EACPp7C,UAAU,2BACVK,YAAY,cACZrzB,UAAU,OACVnF,QAASykB,KAAKK,MAAM7d,iBACpBxO,MAAOgsB,KAAKryB,MAAMq8E,YAAYuB,kBAC9Bn5C,SAAUpS,KAAKoS,SAAS,qBACxBlN,SAAUk5B,EACV2wB,mBAAmB,EACnBC,qBAAqB,EACrB3wB,iBAAkB5iB,GACdzb,KAAKryB,MAAMq8E,YAAYuB,kBAAkB/mE,QAAU,IAElDwb,KAAKryB,MAAMq8E,YAAYuB,kBAAkBppE,SAASs5B,GAEvDhX,OAAQ,CACJwqD,WAAYC,IAAI,CAEZxL,QAAS,UAGjBnoC,aAAa,EACbuuC,WAAY,CAAEP,mBACdqF,iBAAiB,MAI7B,kBAAC/nD,GAAA,EAAD,CAAKnmB,UAAU,QACVsf,KAAKryB,MAAMq8E,YAAYuB,kBAAkB/mE,OAAS,GAC/C,kBAACsiB,GAAA,EAAD,CAAKsU,GAAG,IAAI16B,UAAU,uCACjBsf,KAAKryB,MAAMq8E,YAAYuB,kBAAkBj2E,IAAI,CAACk2E,EAAIzjE,IAC/C,kBAAC8e,GAAA,EAAD,CAAK56B,IAAKu/E,EAAGx3E,MAAO0M,UAAU,oBAC1B,kBAAComB,GAAA,EAAD,CAAKpmB,UAAU,8BACX,0BAAMA,UAAU,cAAc8qE,EAAG7yE,SAGnCylD,GACE,kBAACt3B,GAAA,EAAD,CAAKpmB,UAAU,mCACX,kBAAC,GAAD,CACIA,UAAU,0BACVykB,QAAS,IAAMnF,KAAKqrD,wBAAwBG,SAQxE,kBAAC1kD,GAAA,EAAD,CAAKpmB,UAAU,QACX,kBAAC,GAAD,CACIgzB,UAAU,2CACVK,YAAY,GACZrzB,UAAU,OACV1M,MAAOgsB,KAAKryB,MAAMq8E,YAAYtmC,QAC9BtR,SAAUpS,KAAKoS,SAAS,WACxBlN,SAAUk5B,MAItB,kBAACv3B,GAAA,EAAD,CAAKnmB,UAAU,QACX,kBAAComB,GAAA,EAAD,KACI,kBAAC,GAAD,CACIsD,YAAU,EACVC,aAAc,CAACrK,KAAK6rD,sBAI/B,EAqBA7rD,KAAK0qD,oBACF,kBAAC7jD,GAAA,EAAD,CAAKnmB,UAAU,sDACX,kBAAComB,GAAA,EAAD,CAAKpmB,UAAU,iBACX,kBAAC,GAAD,CACIqzB,YAAY,UACZrzB,UAAU,6BACVnF,QAAS,CACL,CAAEvH,MAAO,EAAG2E,MAAO,MACnB,CAAE3E,MAAO,EAAG2E,MAAO,QAEvB3E,MAAOgsB,KAAKryB,MAAMq8E,YAAY77D,OAC9BikB,SAAUpS,KAAKoS,SAAS,UACxBY,UAAQ,KAGhB,kBAAClM,GAAA,EAAD,CAAKpmB,UAAU,YACX,kBAAC26B,GAAA,EAAD,CACIlQ,MAAM,UACNzqB,UAAU,GACVykB,QAAS,IAAMnF,KAAKitB,YAEnBjtB,KAAK2qD,yBAKrB3qD,KAAKmvD,kBAKlBA,iBACI,OAAInvD,KAAKryB,MAAMyrB,UAAkB,KAE7B,yBAAK1Y,UAAU,SACX,kBAAC,GAAD,CACI2+B,YAAarf,KAAKryB,MAAMq8E,YAAYjH,aACpCxJ,SAAUv5C,KAAKryB,MAAMq8E,YAAY8B,QACjCnnD,UAAU,QACVw7C,eAAe,EACfC,gBAAgB,KAMhCsO,yCACI,IAAI55C,EAAa,+BAEjB,MAAMyS,EAAW,KACb/lC,KACAwe,KAAKkM,SAASsH,IAAsB,CAAE42C,0BAA2B52C,EAAU42C,yBAA0BD,4BAA6B,SAoDtI,OACI,oCACI,kBAAC9uC,GAAA,EAAD,CACIQ,SAAO,EACP1Q,MAAM,UACNhG,QAAUrd,IACNA,EAAE++B,kBACFU,KAEJriB,SAAUlF,KAAKryB,MAAMu8E,gBAEpBlqD,KAAKryB,MAAMu8E,eAAiB,kBAAC,GAAD,MAAuB,WAExD,kBAAC,GAAD,CACI5iC,OAAQtnB,KAAKryB,MAAMy8E,yBACnB7iC,SAAUA,EACVC,SAAUD,EACVE,UAnEQ,KAChBjmC,KAEA,MAAMkC,EAAYsc,KAAKryB,MAAMw8E,4BAC7B,GAAiB,MAAbzmE,EAEA,YADAnC,GAAsB,wCAAgCuzB,GAI1D,MAAM8E,EAAY5Z,KAAKryB,MAAMq8E,YAAYlwC,WACzC9Z,KAAKkM,SAASsH,IACH,CACH02C,gBAAgB,KAGxBf,GAAoB,CAACvvC,GAAYl2B,GAC5BuG,KAAKzX,IAEFgP,KAEA,MAAM4tE,EAAgB58E,EAAKsuD,KAAK3a,GAAUA,EAAO3yC,KAAOomC,GACxD,GAAIw1C,GAAiBA,EAAc/F,WAAY,CAC3CjoE,GAAwB,mCAAoC4e,KAAK6rD,iBACjE,MAAMwD,EAAqB,IACpBrvD,KAAKryB,MAAMq8E,YACd/W,aAAcmc,EAAcnc,cAEhCjzC,KAAKkM,SAAS,CAAE89C,YAAaqF,EAAoBjF,0BAA0B,IACvEpqD,KAAKK,MAAM6iD,kBACXljD,KAAKK,MAAM6iD,iBAAiBmM,QAIhC9tE,GAAsB,4CAA0CuzB,KAGvE5qB,MAAMre,IAEH2V,KACAD,GAAsB1V,EAAM4F,QAASqjC,KAExC2e,QAAQ,KACLzzB,KAAKkM,SAASsH,IACH,CACH02C,gBAAgB,QAwBxB9iC,kBAAkB,UAClBhnB,MAAM,uBACNgU,WAAYpU,KAAKryB,MAAMu8E,eACvBxiC,UAAW1nB,KAAKryB,MAAMu8E,eACtBviC,YAAa,CAAC7S,IAEd,kBAACjO,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,CAAKpmB,UAAU,IACX,kBAACizB,GAAA,EAAD,CAAOjzB,UAAU,sBAAjB,+BACA,kBAAC,KAAD,CACIi7B,gBAAgB,8BAChBj7B,UAAU,OACVkL,SAAUoU,KAAKryB,MAAMw8E,4BACrB/3C,SAAUp+B,GAASgsB,KAAKkM,SAAS,CAAEi+C,4BAA6Bn2E,IAChEy4D,WnK7gBG,mBmKmtB/Bof,gBACI,MAAO,gBAAkB7rD,KAAKryB,MAAMq8E,YAAY8B,QAAU,gBA1pB5D/B,GAYKkD,sCAAwC,IAZ7ClD,GAaKiD,oCAAsC,GAb3CjD,GAcKsD,2BAA6B,IAdlCtD,GAeKoD,4BAA8B,GAfnCpD,GAgBKwD,4BAA8B,IAhBnCxD,GAiBK0C,kBAAoB,MAjBzB1C,GAkBK6C,mBAAqB,MAlB1B7C,GAoBK2C,mBAAqB,MApB1B3C,GAqBK8C,oBAAsB,MArB3B9C,GAsBKmE,0BAA4B,GAtBjCnE,GAuBKoE,4BAA8B,GAvBnCpE,GAwBK0D,0BAA4B,EAxBjC1D,GAyBK2D,wBAA0B,EAsyBtBvkD,oBAAW4gD,I,OCr2B1B,MAAMuF,WAAwB7sD,IAAMC,UAAW,cAAD,yBAmB1C/0B,MAAQ,CACJ4hF,aAAc,GACdC,qBAAqB,EACrB7kE,sBAAsB,GAtBgB,KAuF1C8kE,YAAc,KACV,MAAMF,EAAevvD,KAAKryB,MAAM4hF,aAChC,IAAKA,IAAiBA,EAAa/qE,OAC/B,OAAO,EAGX,IAAK,MAAMkrE,KAAQH,EACf,IAAKG,EAAKlF,YAAckF,EAAKzc,aACzB,OAAO,EAIf,OAAO,GAnG+B,KAsG1C0c,gBAAkB/1C,IACd5Z,KAAKkM,SAAS,CACVsjD,qBAAqB,GACtB,I5JsFJ,SAA2B51C,EAAW9E,GACzC,OAAO/qB,KACFC,InE9FiC,4BmE8FA4vB,EAAY,KAC7C3vB,KAAM5C,GACIA,EAAS7U,MAEnB0X,MAAOre,IACJ,MAAMgC,EAAeoZ,GAAsBpb,GAC3C,MAAMse,MAAMtc,K4J9FP+hF,CAAkBh2C,GACtB3vB,KAAKslE,IACFvvD,KAAKkM,SAAS,CACVqjD,eACAC,qBAAqB,MAG5BtlE,MAAMre,IACHm0B,KAAK6vD,YAAYhkF,GACjBm0B,KAAKkM,SAAS,CACVsjD,qBAAqB,QAnHK,KAyH1CriC,gBAAkBkiC,IACdrvD,KAAKkM,SAASsH,IACH,CACH+7C,aAAc/7C,EAAU+7C,aAAaj6E,IAAIw6E,GAAWA,EAAQhE,UAAYuD,EAAmBvD,QAAUuD,EAAqBS,MAGlI9vD,KAAKK,MAAM0vD,2BAA2BV,IA/HA,KAkI1CnM,iBAAmBmM,IACfrvD,KAAKkM,SAASsH,IACH,CACH+7C,aAAc/7C,EAAU+7C,aAAaj6E,IAAIw6E,GAAWA,EAAQhE,UAAYuD,EAAmBvD,QAAUuD,EAAqBS,MAGlI9vD,KAAKK,MAAM2vD,4BAA4BX,IAxID,KA2I1CY,gBAAkB,KACdzuE,KAEAwe,KAAKkM,SAAS,CACVvhB,sBAAsB,ILvF3B,SAAkCivB,GACrC94B,GAAMC,SD7BC,CACHpS,KlPsOmC,gCmPzMvC,MAAMuhF,EAAmB,CACrBrlE,IAAK,CAAC,CAAErX,GAAIomC,KAGhB,OAAO7vB,KACF6Y,I1N6C4B,iC0N7CDstD,GAC3BjmE,KAAM5C,IACH,MAAM3I,EAAS2I,EAAS7U,KAAKkM,OAQ7B,OANIA,GAAUA,EAAO8F,OACjB1D,GAAMC,SAASinE,GAA0B,KAEzClnE,GAAMC,SAASinE,GAA0B,CAACpuC,KAGvCvyB,EAAS7U,OAEnB0X,MAAOre,IACJ,MAAMgC,EAAeoZ,GAAsBpb,GAG3C,MAFAiV,GAAMC,SAASknE,GAAuBp6E,IAEhCsc,MAAMtc,KKmEhBsiF,CAAyBnwD,KAAKK,MAAMuZ,WAC/B3vB,KAAKzX,IACFwtB,KAAKkM,SAAS,CACVvhB,sBAAsB,IAG1BqV,KAAKK,MAAM+vD,uBAAuB59E,GAClCwtB,KAAK2vD,gBAAgB3vD,KAAKK,MAAMuZ,aAEnC1vB,MAAMre,IACHm0B,KAAKkM,SAAS,CACVvhB,sBAAsB,IAE1BpJ,GAAsB1V,EAAM4F,QAASuuB,KAAKK,MAAM4H,SAASD,aA/J3B,KAmK1C6nD,YAAchkF,IACV0V,GAAsB1V,EAAM4F,QAASuuB,KAAKK,MAAM4H,SAASD,WA3I7D6E,qB7NiDG,SAA+BrqB,GAClC,IAAIA,IAAoBA,EAAiBgC,OAGzC1D,GAAMC,SCrFC,CACHpS,K5BCqC,kC2BoFlCob,KACFC,IF7FwB,6BE8FxBC,KAAM5C,IACHvG,GAAMC,SCpF2ByB,KAClC,CACH7T,K5BHJ,kC4BII6T,qBDiFmB6tE,CAA6BhpE,EAAS7U,OAC9C6U,EAAS7U,OAEnB0X,MAAOre,IACJ,MAAMgC,EAAeoZ,GAAsBpb,GAE3C,MADAiV,GAAMC,SClFwBlV,KAC/B,CACH8C,K5BToC,+B4BUpC9C,UD+EmBykF,CAA0BziF,IACnCsc,MAAMtc,K6N9DhB0iF,CAAsBvwD,KAAKK,MAAM7d,kB7NkElC,SAAwBE,GAC3B,IAAIA,IAAaA,EAAU8B,OAG3B1D,GAAMC,SCnFC,CACHpS,K5Bd6B,0B2BiG1Bob,KACFC,IF9GgB,qBE+GhBC,KAAM5C,IACHvG,GAAMC,SClFoB2B,KAC3B,CACH/T,K5BnB+B,0B4BoB/B+T,cD+EmB8tE,CAAsBnpE,EAAS7U,OACvC6U,EAAS7U,OAEnB0X,MAAOre,IACJ,MAAMgC,EAAeoZ,GAAsBpb,GAE3C,MADAiV,GAAMC,SChFiBlV,KACxB,CACH8C,K5BzB4B,uB4B0B5B9C,UD6EmB4kF,CAAmB5iF,IAC5Bsc,MAAMtc,K6N/EhB6iF,CAAe1wD,KAAKK,MAAM3d,WAE1Bsd,KAAK2vD,gBAAgB3vD,KAAKK,MAAMuZ,WAGpCnW,SACI,GAAIzD,KAAKryB,MAAM6hF,oBACX,OAAO,kBAAC,GAAD,MAEX,IAAImB,EAAiB,qCAIrB,GAHI3wD,KAAKryB,MAAM4hF,eAAiBvvD,KAAKryB,MAAM4hF,aAAa/qE,SACpDmsE,EAAiB,yBAAKjwE,UAAU,+BAAf,sCAEhBsf,KAAKryB,MAAM4hF,aACZ,OAAO,qCAGX,MAAMqB,EAAsB5wD,KAAKryB,MAAM4hF,aAAaj6E,IAAK00E,GACrD,kBAAC,GAAD,CACIhsB,SAAUh+B,KAAKK,MAAM29B,SACrB/xD,IAAK+9E,EAAY8B,QACjB9B,YAAaA,EACb78B,gBAAiBntB,KAAKmtB,gBACtB+1B,iBAAkBljD,KAAKkjD,iBACvBxgE,UAAWsd,KAAKK,MAAM3d,UACtBF,iBAAkBwd,KAAKK,MAAM7d,iBAC7BoS,YAAaoL,KAAKK,MAAMzL,eAIhC,OACI,yBAAKlU,UAAU,qBACVkwE,EACAD,EACA3wD,KAAK6wD,oBAKlBA,mBACI,OAAK7wD,KAAKK,MAAMywD,yBAA4B9wD,KAAKK,MAAMzL,aAAgBoL,KAAKryB,MAAM4hF,eAAgBvvD,KAAKyvD,cAKnG,kBAAC5oD,GAAA,EAAD,CAAKnmB,UAAU,cACX,kBAAComB,GAAA,EAAD,CAAKpmB,UAAU,oBACX,kBAAC26B,GAAA,EAAD,CACIQ,SAAO,EACP1Q,MAAM,YACNhG,QAASnF,KAAKiwD,gBACd/qD,SAAUlF,KAAKryB,MAAMgd,sBAEpBqV,KAAKryB,MAAMgd,qBAAuB,kBAAC,GAAD,MAAuB,sBAZ/D,sCApEb2kE,GAcKzgD,aAAe,CAClBmvB,UAAU,EACVppC,aAAa,GA+JNuU,oBAAW1D,YAPF93B,IACb,CACH6U,iBAAkB7U,EAAM6qB,QAAQhW,iBAChCE,UAAW/U,EAAM6qB,QAAQ9V,YAIP+iB,CAAyB6pD,K,OCvLnD,MAAMyB,WAA6BtuD,IAAMC,UAAW,cAAD,yBAgB/C/0B,MAAQ,GAhBuC,KA6N/CqgE,sBAAwB94D,GAEhB,kBAACi/C,GAAD,KACKj/C,GA7MbuuB,SACI,OAAIzD,KAAKK,MAAMnxB,oBAEP,kBAAC,GAAD,MAGH8wB,KAAKK,MAAMpxB,aAKZ,kBAAC+6B,GAAA,EAAD,CAAMtpB,UAAU,yBACZ,kBAACupB,GAAA,EAAD,CAAUvpB,UAAU,OACfsf,KAAK8b,gBANP,qCAYfA,cACI,MAAMtpC,EAAOwtB,KAAKK,MAAMpxB,aAElB8sC,EAAU,CACZ,CACIl4B,UAAW,aACX7U,KAAM,KACNitC,QAAS,cACTD,MAAM,EACNg1C,OAAQhxD,KAAKK,MAAM2wD,OACnBp9C,QAAQ,GAEZ,CACI/vB,UAAW,MACX7U,KAAM,WACNitC,QAAS,cACTD,MAAM,EACNg1C,OAAQhxD,KAAKK,MAAM2wD,QAEvB,CACIntE,UAAW,OACX7U,KAAM,gBACNitC,QAAS,cACTD,MAAM,EACNg1C,OAAQhxD,KAAKK,MAAM2wD,QAEvB,CACIntE,UAAW,eACX7U,KAAM,cACNitC,QAAS,cACTD,MAAM,EACNg1C,OAAQhxD,KAAKK,MAAM2wD,QAEvB,CACIntE,UAAW,iBACX7U,KAAM,mBACNitC,QAAS,aACTD,MAAM,EACNg1C,OAAQhxD,KAAKK,MAAM2wD,QAEvB,CACIntE,UAAW,OACX7U,KAAM,qBACNitC,QAAS,aACTD,MAAM,EACNg1C,OAAQhxD,KAAKK,MAAM2wD,QAEvB,CACIntE,UAAW,SACX7U,KAAM,OACNitC,QAAS,aACTD,MAAM,EACNg1C,OAAQhxD,KAAKK,MAAM2wD,QAEvB,CACIntE,UAAW,aACX7U,KAAM,sBACNitC,QAAS,aACTD,MAAM,EACNg1C,OAAQhxD,KAAKK,MAAM2wD,OACnBr0C,UAAYpC,GAASA,EAAO3mC,KAAO2mC,GAAM1mC,OrK/G9B,cqK+GoD,GAC/D86C,MAAO,QACPC,YAAa,QACbhb,OAAiC,eAAzB5T,KAAKK,MAAM4wD,WAEvB,CACIptE,UAAW,YACX7U,KAAM,mBACNitC,QAAS,aACTD,MAAM,EACNg1C,OAAQhxD,KAAKK,MAAM2wD,OACnBr0C,UAAYpC,GAASA,EAAO3mC,KAAO2mC,GAAM1mC,OrK1H9B,cqK0HoD,GAC/D86C,MAAO,QACPC,YAAa,QACbhb,OAAiC,cAAzB5T,KAAKK,MAAM4wD,WAEvB,CACIptE,UAAW,SACX7U,KAAM,UACNitC,QAAS,aACT0S,MAAO,QACPC,YAAa,QACb5S,MAAM,EACNg1C,OAAQhxD,KAAKK,MAAM2wD,OACnBn0C,UAAW,CAACH,EAAM/lC,IAAQ+lC,EAAOA,EAAK/jC,MAAQ,GAC9CgkC,UAAWxuB,GACP,kBAAC,GAAD,CACIA,OAAQA,EAAOxV,MACfhK,KAAM+lC,GAAkBvmB,EAAOna,OAC/B0M,UAAU,oBAMpB61C,EAAa,CAAC5/C,EAAKskD,IACd,6BAGLi2B,EAAuBlxD,KAAKguC,sBAAsB,uBAAGttD,UAAU,mBAAb,qDAExD,IAAIkiE,EAAY,CACZE,SAAUnsE,GACN,kBAAC,GAAD,CACIqnD,SAAUh+B,KAAKK,MAAM29B,SACrBpkB,UAAWjjC,EAAImjC,WACfi2C,2BAA4B/vD,KAAKK,MAAM0vD,8BAI/C/vD,KAAKK,MAAM8wD,UAAYnxD,KAAKK,MAAM+wD,WAClCxO,EAAY,IACLA,EACHuO,SAAUnxD,KAAKK,MAAM8wD,SACrBC,SAAUpxD,KAAKK,MAAM+wD,WAI7B,MAAMrtE,EAAaic,KAAKK,MAAMtc,WACxBstE,EAAoB,CACtBC,QAAQ,EACRttE,KAAMD,EAAWC,KACjBC,YAAaF,EAAWE,aAAeF,EAAWG,SAClDqtE,WAAW,EACXvhB,UAAWjsD,EAAWG,SACtBC,gBAAiBJ,EAAWI,gBAC5BssD,oBAAqB,CAACxsD,EAAaD,KAC/Bgc,KAAKK,MAAM41C,mBAAmBjyD,EAAMC,IAExCssD,aAAc,CAACvsD,EAAMC,KACjB+b,KAAKK,MAAM41C,mBAAmBjyD,EAAMC,KAItCq5B,EAAgB,CAACtd,KAAKK,MAAMzc,SAElC,OACI,kBAAC,sBAAD,CACIG,WAAYytE,KAAkBH,IAG1B,QAAC,gBACGI,EADH,qBAEGC,GAFJ,SAII,oCACI,kBAAC7qD,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,KACI,kBAAC,KAAD,eACInG,IAAKgxD,IACG3xD,KAAKK,MAAMuxD,kBACX5xD,KAAKK,MAAMuxD,iBAAiBD,IAGpC50C,YAAU,EACVC,UAAU,EACVf,QAAQ,uCACRiB,SAAS,aACT1qC,KAAMA,EACNupC,QAASA,EACT6mC,UAAWA,EACXvlC,iBAAkB6zC,EAClB36B,WAAYA,EACZjZ,cAAeA,GACXo0C,MAIhB,kBAAC7qD,GAAA,EAAD,CAAKnmB,UAAU,QACX,kBAAComB,GAAA,EAAD,CAAKpmB,UAAU,aACX,kBAAC,GAAD,eACIyvD,uBAAuB,WACnBshB,UAoB7BV,UCtOf,SAASp4C,GAAkB9lC,GACvB,MAAMolC,EAAgB,CAClB,CAAC,YAAa,IAAI/mB,MAClB,GACA,CAAC,WACD,CAAC,MAAOre,EAAQwQ,KAChB,CAAC,gBAAiBxQ,EAAQzF,MAC1B,CAAC,cAAYyF,EAAQyQ,OAASzQ,EAAQyQ,OAAO3K,MAAQ,IACrD,CAAC,aAAc9F,EAAQ0Q,SAAW1Q,EAAQ0Q,SAAS+0B,YAAc,IACjE,CAAC,qBAAgBzlC,EAAQlE,KAAOkE,EAAQlE,KAAKqF,MAAQ,IACrD,CAAC,OAAQnB,EAAQ2Q,OAAS3Q,EAAQ2Q,OAAOxP,MAAQ,IACjD,CAAC,UAAWnB,EAAQ4Q,WAAa5Q,EAAQ4Q,WAAW9K,MAAQ,IAC5D,CAAC,SAAU9F,EAAQ6Q,WACnB,CAAC,OAAQ7Q,EAAQ8Q,UAGf4zB,EAAKd,KAAKC,MAAMc,aAAaS,EAAe,CAC9CR,OtK5BwB,mBsKmC5B,OAFAF,EAAG,SADe,CAAC,GAAI,IACCjiC,IAAK8sB,IAAD,CAAU7B,MAAO6B,KAEtCmV,EAGX,SAASO,GAAiBhoC,EAAUmhF,GAChC,IAAIY,EAAmB,GACL,cAAdZ,EACAY,EAAmB,mBACE,eAAdZ,IACPY,EAAmB,uBAGvB,MAAMh7C,EAAkB,CACpB,MACA,eACA,cACA,aACA,qBACA,OACAg7C,EACA,WAEE/6C,EAuBV,SAA6BhnC,EAAUmhF,GACnC,OAAOnhF,EAASwF,IAAKC,GAAQ,CACzBA,EAAI8N,IACJ9N,EAAInI,KACJmI,EAAI+N,OAAO3K,MACXpD,EAAIgO,SAAS5K,MACbpD,EAAI5G,KACJ4G,EAAIiO,OACJjO,EAAI07E,GAAa,IAAI//D,KAAK3b,EAAI07E,IAAc,GAC5C17E,EAAI4Y,OAAOxV,QAhCU0+B,CAAoBvnC,EAAUmhF,GACjD35C,EAAe,CAACT,KAAoBC,GACpCS,EAAKd,KAAKC,MAAMc,aAAaF,EAAc,CAC7CG,OtK3DwB,mBsK8DI,IAA5BX,EAAiBtyB,SACjBiyB,KAAKC,MAAMgB,cACPH,EACA,CAAC,CAAC,kDACF,CAAEI,OAAQ,CAAE7W,EAAG,EAAG8W,EAAG,KAEzBL,EAAG,WAAa,CACZ,CAAEM,EAAG,CAAE/W,EAAG,EAAG8W,EAAG,GAAK9vB,EAAG,CAAEgZ,EAAG,EAAG8W,EAAGf,EAAgBryB,OAAS,MAOpE,OAFA+yB,EAAG,SADe,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvBjiC,IAAK8sB,IAAD,CAAU7B,MAAO6B,KAEtCmV,EC9EX,MAAMu6C,WAAiBpvD,YAAW,cAAD,yBAyB7BsY,SAAW,KACP,MAAMlrC,EAAWkwB,KAAK+xD,cAChBx7C,EAAcvW,KAAKK,MAAMkW,aAAe,GAC9C/0B,KACA,KDnCiC,SACrC80B,EACA07C,EACAliF,EACAymC,GAEE,IADF06C,EACC,uDADW,YAEZ,MAAMz6C,EAAKC,KAAKC,MAAMC,WAEhBC,EAAgBkB,GAAiBhoC,EAAUmhF,GACjDx6C,KAAKC,MAAMqB,kBAAkBvB,EAAII,EAAeo7C,GAEhD,MAAMh6C,EAAiBW,GAAkBpC,GACzCE,KAAKC,MAAMqB,kBAAkBvB,EAAIwB,EAAgB,YAGjDvB,KAAKmC,UAAUpC,EAAIF,EAAW,QAAS,CAAEuC,aAAa,ICoB9Co5C,CAA0BjyD,KAAKK,MAAMiW,SAAUtW,KAAKK,MAAM2xD,UAAWliF,EAAUymC,EAAavW,KAAKK,MAAM4wD,WACzG,MAAOjhF,GACDgwB,KAAKK,MAAM4oB,QACXjpB,KAAKK,MAAM4oB,QAAQj5C,GAEnBu7B,QAAQ1/B,MAAMmE,KAnCG,KAwC7B+hF,YAAc,IACN/xD,KAAKK,MAAMpxB,aACJ+wB,KAAKK,MAAMpxB,aAEb+wB,KAAKK,MAAM6xD,iBACTlyD,KAAKK,MAAM6xD,mBAGf,GArCXzuD,SAEI,OACI,kBAAC4X,GAAA,EAAD,CACIQ,SAAO,EACPP,OAAK,EACLnQ,MAAM,YACNhG,QAASnF,KAAKgb,UAJlB,aAsCG82C,U,OC5Bf,MAAMK,WAA2B1vD,IAAMC,UAgBnCqJ,YAAY1L,GACR2L,MAAM3L,GADS,KAuBnB+xD,OAAS,CAACC,EAAOC,KACb9wE,KACA,MAAM6B,EAAMgvE,EAEZryD,KAAKK,MAAMkyD,4BACXvyD,KAAKK,MAAMmyD,2BAA2B,MAAOnvE,GAC7CwxB,GAAoB7U,KAAKK,MAAMxtB,QAASmtB,KAAKK,MAAM4H,SAASD,UACvD/d,KAAKzX,IACF,MAAM1C,EAAWkwB,KAAKK,MAAMpxB,aAE5B+wB,KAAKkM,SAAS,CACVilD,SAAUrhF,EAASwF,IAAIC,GAAOA,EAAIukC,cAGlChqC,EAAS0U,SAMrBnD,GADc,mDAAqB,+BAAKgC,EAAL,KAArB,KACgB2c,KAAKK,MAAM4H,SAASD,WA3CnC,KA0FnByqD,oBAAsBd,IAClB3xD,KAAK0yD,iBAAmBf,GA3FT,KA8FnBgB,qBAAuB,KACnB,IAEI,OAAO3yD,KAAK0yD,iBAAiBE,kBAAkBvyD,MAAM7tB,KACvD,MAAOxC,GACL,MAAO,KAnGI,KAuGnB6iF,aAAe,KACXrxE,KACAD,GAAsB,sCAAoCye,KAAKK,MAAM4H,SAASD,UAAU,IAzGzE,KA4GnB+nD,2BAA6B/F,IACzBxoE,KACAJ,GAAwB,iCAAD,OAAkC4oE,EAAY77D,OAAOxV,MAArD,gBAA0EqnB,KAAKK,MAAM4H,SAASD,UACrH6M,GAAoB7U,KAAKK,MAAMhc,wBAAyB2b,KAAKK,MAAM4H,SAASD,WA/G7D,KAkHnBjW,eAAiB,CAAC9lB,EAAK+H,KACnBgsB,KAAKK,MAAMmyD,2BAA2BvmF,EAAK+H,IAnH5B,KAsHnBkjB,eAAiB,KAEb8I,KAAKK,MAAMkyD,6BAxHI,KA2HnBjmB,SAAW,KACP9qD,KACAqzB,GAAoB7U,KAAKK,MAAMxtB,QAASmtB,KAAKK,MAAM4H,SAASD,WA7H7C,KAgInBopD,SAAW,CAACz6E,EAAKm8E,EAAU73B,EAAUnzC,KAC7BgrE,EACA9yD,KAAKkM,SAAS,MACVilD,SAAU,IAAInxD,KAAKryB,MAAMwjF,SAAUx6E,EAAImjC,eAG3C9Z,KAAKkM,SAAS,MACVilD,SAAUnxD,KAAKryB,MAAMwjF,SAASjvE,OAAOkgB,GAAKA,IAAMzrB,EAAImjC,gBAvI7C,KA4InBm8B,mBAAqB,CAACjyD,EAAMC,KACxB,MACMkyD,EAAgB,IADIn2C,KAAKK,MAAMtc,WACSC,OAAMC,eACpD+b,KAAKK,MAAM0yD,+BAA+B5c,IA/I3B,KAkJnB6a,OAAS,CAACntE,EAAWC,IAAUkc,KAAKK,MAAM2yD,4BAA4B,CAAEnvE,YAAWC,UA/I/Ekc,KAAK0yD,iBAAmB,KAExB1yD,KAAKryB,MAAQ,CACTwjF,SAAU,IAIlBtkD,oBACIgI,GAAoB7U,KAAKK,MAAMhc,wBAAyB2b,KAAKK,MAAM4H,SAASD,UAE5EoqD,KAAOa,SAASziC,SAAU,CACtB0iC,eAAgB,CAAC,IACjBd,OAAQpyD,KAAKoyD,SAIrBplD,uBACIolD,KAAOe,WAAW3iC,UA0BtB/sB,SACI,OACI,oCACI,kBAAC,GAAD,CACI5wB,QAASmtB,KAAKK,MAAMxtB,QACpB3D,oBAAqB8wB,KAAKK,MAAMnxB,oBAChC6iB,eAAgBiO,KAAKjO,eACrBmF,eAAgB8I,KAAK9I,eACrBo1C,SAAUtsC,KAAKssC,SACfyb,aACI,kBAACqL,GAAD,CACIlB,iBAAkBlyD,KAAK2yD,qBACvBp8C,YAAavW,KAAKK,MAAMhc,wBACxBiyB,SAAS,gCACT07C,UAAU,aACV/oC,QAASjpB,KAAK6yD,aACd5B,UAAU,iBAKtB,kBAACpqD,GAAA,EAAD,CAAKnmB,UAAU,yDACX,kBAAComB,GAAA,EAAD,CAAKsU,GAAI,EAAGtK,GAAI,EAAGpwB,UAAU,mBACzB,kBAAC,GAAD,CAA8BinE,UAAU,MAIhD,kBAAC,GAAD,CACI14E,aAAc+wB,KAAKK,MAAMpxB,aACzBC,oBAAqB8wB,KAAKK,MAAMnxB,oBAChC6gF,2BAA4B/vD,KAAK+vD,2BACjC6B,iBAAkB5xD,KAAKyyD,oBACvBxB,UAAU,aACVE,SAAUnxD,KAAKryB,MAAMwjF,SACrBC,SAAUpxD,KAAKoxD,SACfxtE,QAASoc,KAAKK,MAAMzc,QACpBG,WAAYic,KAAKK,MAAMtc,WACvBkyD,mBAAoBj2C,KAAKi2C,mBACzB+a,OAAQhxD,KAAKgxD,WAiEjC,MAWMhqC,GAAe,CACjBwrC,2BjKtLsC,CAACvmF,EAAK+H,KACrC,CACHrF,K3F8LsC,iC2F7LtC1C,IAAKA,EACL+H,MAAOA,IiKmLXu+E,0BjK/KsC1+E,IAC/B,CACHlF,K3FuLqC,gC2FtLrCkF,WiK6KJm/E,4BjKzKwCpvE,IACjC,CACHjV,K3FiLuC,kC2FhLvCiV,YiKuKJmvE,+BjKnK2ChvE,IACpC,CACHpV,K3F2K0C,qC2F1K1CoV,gBiKmKOolB,oBAAW1D,YAlBF93B,IACb,CACHsB,aAActB,EAAM4qB,QAAQ3R,eAAe3X,aAC3CC,oBAAqBvB,EAAM4qB,QAAQ3R,eAAe1X,oBAClDmV,wBAAyB1W,EAAM4qB,QAAQ3R,eAAevC,wBACtDxR,QAASlF,EAAM4qB,QAAQ3R,eAAe/T,QACtC+Q,QAASjW,EAAM4qB,QAAQ3R,eAAehD,QACtCG,WAAYpW,EAAM4qB,QAAQ3R,eAAe7C,aAWEijC,GAAzBvhB,CAAuC0sD,K,OCvLjE,MAAMkB,WAA6B5wD,IAAMC,UAgBrCqJ,YAAY1L,GACR2L,MAAM3L,GADS,KAuBnB+xD,OAAS,CAACC,EAAOC,KACb9wE,KACA,MAAM6B,EAAMgvE,EAEZryD,KAAKK,MAAMizD,8BACXtzD,KAAKK,MAAMkzD,6BAA6B,MAAOlwE,GAC/CgyB,GAAsBrV,KAAKK,MAAMxtB,QAASmtB,KAAKK,MAAM4H,SAASD,UACzD/d,KAAKzX,IACF,MAAM1C,EAAWkwB,KAAKK,MAAMpxB,aAE5B+wB,KAAKkM,SAAS,CACVilD,SAAUrhF,EAASwF,IAAIC,GAAOA,EAAIukC,cAGlChqC,EAAS0U,SAMrBnD,GADc,mDAAqB,+BAAKgC,EAAL,KAArB,KACgB2c,KAAKK,MAAM4H,SAASD,WA3CnC,KAyFnByqD,oBAAsBd,IAClB3xD,KAAK0yD,iBAAmBf,GA1FT,KA6FnBgB,qBAAuB,KACnB,IAEI,OAAO3yD,KAAK0yD,iBAAiBE,kBAAkBvyD,MAAM7tB,KACvD,MAAOxC,GACL,MAAO,KAlGI,KAsGnB6iF,aAAe,KACXrxE,KACAD,GAAsB,sCAAoCye,KAAKK,MAAM4H,SAASD,UAAU,IAxGzE,KA2GnBwrD,6BAA+BxJ,IAC3BxoE,KACAJ,GAAwB,uCAAD,OAAwC4oE,EAAY77D,OAAOxV,MAA3D,gBAAgFqnB,KAAKK,MAAM4H,SAASD,UAC3HqN,GAAsBrV,KAAKK,MAAMhc,wBAAyB2b,KAAKK,MAAM4H,SAASD,WA9G/D,KAiHnBjW,eAAiB,CAAC9lB,EAAK+H,KACnBgsB,KAAKK,MAAMkzD,6BAA6BtnF,EAAK+H,IAlH9B,KAqHnBkjB,eAAiB,KAEb8I,KAAKK,MAAMizD,+BAvHI,KA0HnBhnB,SAAW,KACP9qD,KACA6zB,GAAsBrV,KAAKK,MAAMxtB,QAASmtB,KAAKK,MAAM4H,SAASD,WA5H/C,KA+HnBopD,SAAW,CAACz6E,EAAKm8E,EAAU73B,EAAUnzC,KAC7BgrE,EACA9yD,KAAKkM,SAAS,MACVilD,SAAU,IAAInxD,KAAKryB,MAAMwjF,SAAUx6E,EAAImjC,eAG3C9Z,KAAKkM,SAAS,MACVilD,SAAUnxD,KAAKryB,MAAMwjF,SAASjvE,OAAOkgB,GAAKA,IAAMzrB,EAAImjC,gBAtI7C,KA2InBm8B,mBAAqB,CAACjyD,EAAMC,KACxB,MACMkyD,EAAgB,IADIn2C,KAAKK,MAAMtc,WACSC,OAAMC,eACpD+b,KAAKK,MAAMozD,iCAAiCtd,IA9I7B,KAiJnB6a,OAAS,CAACntE,EAAWC,IAAUkc,KAAKK,MAAMqzD,8BAA8B,CAAE7vE,YAAWC,UA9IjFkc,KAAK0yD,iBAAmB,KAExB1yD,KAAKryB,MAAQ,CACTwjF,SAAU,IAIlBtkD,oBACIwI,GAAsBrV,KAAKK,MAAMhc,wBAAyB2b,KAAKK,MAAM4H,SAASD,UAE9EoqD,KAAOa,SAASziC,SAAU,CACtB0iC,eAAgB,CAAC,IACjBd,OAAQpyD,KAAKoyD,SAIrBplD,uBACIolD,KAAOe,WAAW3iC,UA0BtB/sB,SACI,OACI,oCACI,kBAAC,GAAD,CACI5wB,QAASmtB,KAAKK,MAAMxtB,QACpB3D,oBAAqB8wB,KAAKK,MAAMnxB,oBAChC6iB,eAAgBiO,KAAKjO,eACrBmF,eAAgB8I,KAAK9I,eACrBo1C,SAAUtsC,KAAKssC,SACfyb,aACI,kBAACqL,GAAD,CACIlB,iBAAkBlyD,KAAK2yD,qBACvBp8C,YAAavW,KAAKK,MAAMhc,wBACxBiyB,SAAS,sCACT07C,UAAU,mBACV/oC,QAASjpB,KAAK6yD,aACd5B,UAAU,iBAItB,kBAACpqD,GAAA,EAAD,CAAKnmB,UAAU,yDACX,kBAAComB,GAAA,EAAD,CAAKsU,GAAI,EAAGtK,GAAI,EAAGpwB,UAAU,mBACzB,kBAAC,GAAD,CAA8BinE,UAAU,MAIhD,kBAAC,GAAD,CACI14E,aAAc+wB,KAAKK,MAAMpxB,aACzBC,oBAAqB8wB,KAAKK,MAAMnxB,oBAChC6gF,2BAA4B/vD,KAAKwzD,6BACjC5B,iBAAkB5xD,KAAKyyD,oBACvBxB,UAAU,aACVE,SAAUnxD,KAAKryB,MAAMwjF,SACrBC,SAAUpxD,KAAKoxD,SACfxtE,QAASoc,KAAKK,MAAMzc,QACpBG,WAAYic,KAAKK,MAAMtc,WACvBkyD,mBAAoBj2C,KAAKi2C,mBACzB+a,OAAQhxD,KAAKgxD,WAiEjC,MAWMhqC,GAAe,CACjBusC,6BhKrLwC,CAACtnF,EAAK+H,KACvC,CACHrF,K7FyMwC,mC6FxMxC1C,IAAKA,EACL+H,MAAOA,IgKkLXs/E,4BhK9KwCz/E,IACjC,CACHlF,K7FkMuC,kC6FjMvCkF,WgK4KJ6/E,8BhKxK0C9vE,IACnC,CACHjV,K7F4LyC,oC6F3LzCiV,YgKsKJ6vE,iChKlK6C1vE,IACtC,CACHpV,K7FsL4C,uC6FrL5CoV,gBgKkKOolB,oBAAW1D,YAlBF93B,IACb,CACHsB,aAActB,EAAM4qB,QAAQ1R,iBAAiB5X,aAC7CC,oBAAqBvB,EAAM4qB,QAAQ1R,iBAAiB3X,oBACpDmV,wBAAyB1W,EAAM4qB,QAAQ1R,iBAAiBxC,wBACxDxR,QAASlF,EAAM4qB,QAAQ1R,iBAAiBhU,QACxC+Q,QAASjW,EAAM4qB,QAAQ1R,iBAAiBjD,QACxCG,WAAYpW,EAAM4qB,QAAQ1R,iBAAiB9C,aAWAijC,GAAzBvhB,CAAuC4tD,K,OCzLjE,MAAMM,WAAgClxD,IAAMC,UAgBxCqJ,YAAY1L,GACR2L,MAAM3L,GADS,KAuBnB+xD,OAAS,CAACC,EAAOC,KACb9wE,KACA,MAAM6B,EAAMgvE,EAEZryD,KAAKK,MAAMuzD,iCACX5zD,KAAKK,MAAMwzD,gCAAgC,MAAOxwE,GAClDmyB,GAAyBxV,KAAKK,MAAMxtB,QAASmtB,KAAKK,MAAM4H,SAASD,UAC5D/d,KAAKzX,IACF,MAAM1C,EAAWkwB,KAAKK,MAAMpxB,aAE5B+wB,KAAKkM,SAAS,CACVilD,SAAUrhF,EAASwF,IAAIC,GAAOA,EAAIukC,cAGlChqC,EAAS0U,SAMrBnD,GADc,mDAAqB,+BAAKgC,EAAL,KAArB,KACgB2c,KAAKK,MAAM4H,SAASD,WA3CnC,KAoFnByqD,oBAAsBd,IAClB3xD,KAAK0yD,iBAAmBf,GArFT,KAwFnBgB,qBAAuB,KACnB,IAEI,OAAO3yD,KAAK0yD,iBAAiBE,kBAAkBvyD,MAAM7tB,KACvD,MAAOxC,GACL,MAAO,KA7FI,KAiGnB6iF,aAAe,KACXrxE,KACAD,GAAsB,sCAAoCye,KAAKK,MAAM4H,SAASD,UAAU,IAnGzE,KAsGnB+nD,2BAA6B/F,IACzBxoE,KACAJ,GAAwB,kCAAD,OAAmC4oE,EAAY77D,OAAOxV,MAAtD,gBAA2EqnB,KAAKK,MAAM4H,SAASD,UACtHwN,GAAyBxV,KAAKK,MAAMhc,wBAAyB2b,KAAKK,MAAM4H,SAASD,WAzGlE,KA4GnBjW,eAAiB,CAAC9lB,EAAK+H,KACnBgsB,KAAKK,MAAMwzD,gCAAgC5nF,EAAK+H,IA7GjC,KAgHnBkjB,eAAiB,KAEb8I,KAAKK,MAAMuzD,kCAlHI,KAqHnBtnB,SAAW,KACP9qD,KACAg0B,GAAyBxV,KAAKK,MAAMxtB,QAASmtB,KAAKK,MAAM4H,SAASD,WAvHlD,KA0HnBopD,SAAW,CAACz6E,EAAKm8E,EAAU73B,EAAUnzC,KAC7BgrE,EACA9yD,KAAKkM,SAAS,MACVilD,SAAU,IAAInxD,KAAKryB,MAAMwjF,SAAUx6E,EAAImjC,eAG3C9Z,KAAKkM,SAAS,MACVilD,SAAUnxD,KAAKryB,MAAMwjF,SAASjvE,OAAOkgB,GAAKA,IAAMzrB,EAAImjC,gBAjI7C,KAsInBm8B,mBAAqB,CAACjyD,EAAMC,KACxB,MACMkyD,EAAgB,IADIn2C,KAAKK,MAAMtc,WACSC,OAAMC,eACpD+b,KAAKK,MAAMyzD,oCAAoC3d,IAzIhC,KA4InB6a,OAAS,CAACntE,EAAWC,IAAUkc,KAAKK,MAAM0zD,iCAAiC,CAAElwE,YAAWC,UAzIpFkc,KAAK0yD,iBAAmB,KAExB1yD,KAAKryB,MAAQ,CACTwjF,SAAU,IAIlBtkD,oBACI2I,GAAyBxV,KAAKK,MAAMhc,wBAAyB2b,KAAKK,MAAM4H,SAASD,UAEjFoqD,KAAOa,SAASziC,SAAU,CACtB0iC,eAAgB,CAAC,IACjBd,OAAQpyD,KAAKoyD,SAIrBplD,uBACIolD,KAAOe,WAAW3iC,UA0BtB/sB,SACI,OACI,oCACI,kBAAC,GAAD,CACI5wB,QAASmtB,KAAKK,MAAMxtB,QACpB3D,oBAAqB8wB,KAAKK,MAAMnxB,oBAChC6iB,eAAgBiO,KAAKjO,eACrBmF,eAAgB8I,KAAK9I,eACrBo1C,SAAUtsC,KAAKssC,SACfyb,aACI,kBAACqL,GAAD,CACIlB,iBAAkBlyD,KAAK2yD,qBACvBp8C,YAAavW,KAAKK,MAAMhc,wBACxBiyB,SAAS,4BACT07C,UAAU,aACV/oC,QAASjpB,KAAK6yD,aACd5B,UAAU,iBAKtB,kBAAC,GAAD,CACIhiF,aAAc+wB,KAAKK,MAAMpxB,aACzBC,oBAAqB8wB,KAAKK,MAAMnxB,oBAChC6gF,2BAA4B/vD,KAAK+vD,2BACjC6B,iBAAkB5xD,KAAKyyD,oBACvBxB,UAAU,aACVE,SAAUnxD,KAAKryB,MAAMwjF,SACrBC,SAAUpxD,KAAKoxD,SACfxtE,QAASoc,KAAKK,MAAMzc,QACpBG,WAAYic,KAAKK,MAAMtc,WACvBkyD,mBAAoBj2C,KAAKi2C,mBACzB+a,OAAQhxD,KAAKgxD,WAiEjC,MAWMhqC,GAAe,CACjB6sC,gChK7K2C,CAAC5nF,EAAK+H,KAC1C,CACHrF,K9FqNJ,qC8FpNI1C,IAAKA,EACL+H,MAAOA,IgK0KX4/E,+BhKtK2C//E,IACpC,CACHlF,K9F+MJ,oC8F9MIkF,WgKoKJkgF,iChKhK6CnwE,IACtC,CACHjV,K9FyM2C,sC8FxM3CiV,YgK8JJkwE,oChK1JgD/vE,IACzC,CACHpV,K9FmM8C,yC8FlM9CoV,gBgK0JOolB,oBAAW1D,YAlBF93B,IACb,CACHsB,aAActB,EAAM4qB,QAAQzR,oBAAoB7X,aAChDC,oBAAqBvB,EAAM4qB,QAAQzR,oBAAoB5X,oBACvDmV,wBAAyB1W,EAAM4qB,QAAQzR,oBAAoBzC,wBAC3DxR,QAASlF,EAAM4qB,QAAQzR,oBAAoBjU,QAC3C+Q,QAASjW,EAAM4qB,QAAQzR,oBAAoBlD,QAC3CG,WAAYpW,EAAM4qB,QAAQzR,oBAAoB/C,aAWHijC,GAAzBvhB,CAAuCkuD,K,OClLjE,MAAMK,WAA2BvxD,IAAMC,UAAW,cAAD,yBAe7CgwD,iBAAmB,KAf0B,KA8B7CN,OAAS,CAACC,EAAOC,KACb9wE,KACA,MAAM6B,EAAMgvE,EAEZryD,KAAKK,MAAM4zD,4BACXj0D,KAAKK,MAAM6zD,2BAA2B,MAAO7wE,GAC7CsyB,GAAoB3V,KAAKK,MAAMxtB,QAASmtB,KAAKK,MAAM4H,SAASD,UAG5D3mB,GADc,mDAAqB,+BAAKgC,EAAL,KAArB,KACgB2c,KAAKK,MAAM4H,SAASD,WAvCT,KA8E7CyqD,oBAAsBd,IAClB3xD,KAAK0yD,iBAAmBf,GA/EiB,KAkF7CgB,qBAAuB,KACnB,IAEI,OAAO3yD,KAAK0yD,iBAAiBE,kBAAkBvyD,MAAM7tB,KACvD,MAAOxC,GACL,MAAO,KAvF8B,KA2F7C6iF,aAAe,KACXrxE,KACAD,GAAsB,sCAAoCye,KAAKK,MAAM4H,SAASD,UAAU,IA7F/C,KAgG7C+nD,2BAA6B/F,IACzBxoE,KACAJ,GAAwB,iCAAD,OAAkC4oE,EAAY77D,OAAOxV,MAArD,gBAA0EqnB,KAAKK,MAAM4H,SAASD,UACrH2N,GAAoB3V,KAAKK,MAAMhc,wBAAyB2b,KAAKK,MAAM4H,SAASD,WAnGnC,KAsG7CjW,eAAiB,CAAC9lB,EAAK+H,KACnBgsB,KAAKK,MAAM6zD,2BAA2BjoF,EAAK+H,IAvGF,KA0G7CkjB,eAAiB,KAEb8I,KAAKK,MAAM4zD,6BA5G8B,KA+G7C3nB,SAAW,KACP9qD,KACAm0B,GAAoB3V,KAAKK,MAAMxtB,QAASmtB,KAAKK,MAAM4H,SAASD,WAjHnB,KAoH7CiuC,mBAAqB,CAACjyD,EAAMC,KACxB,MACMkyD,EAAgB,IADIn2C,KAAKK,MAAMtc,WACSC,OAAMC,eACpD+b,KAAKK,MAAM8zD,+BAA+Bhe,IAvHD,KA2H7C6a,OAAS,CAACntE,EAAWC,IAAUkc,KAAKK,MAAM+zD,4BAA4B,CAAEvwE,YAAWC,UA1GnF+oB,oBACI8I,GAAoB3V,KAAKK,MAAMhc,wBAAyB2b,KAAKK,MAAM4H,SAASD,UAE5EoqD,KAAOa,SAASziC,SAAU,CACtB0iC,eAAgB,CAAC,IACjBd,OAAQpyD,KAAKoyD,SAIrBplD,uBACIolD,KAAOe,WAAW3iC,UActB/sB,SACI,OACI,oCACI,kBAAC,GAAD,CACI5wB,QAASmtB,KAAKK,MAAMxtB,QACpB3D,oBAAqB8wB,KAAKK,MAAMnxB,oBAChC6iB,eAAgBiO,KAAKjO,eACrBmF,eAAgB8I,KAAK9I,eACrBo1C,SAAUtsC,KAAKssC,SACfyb,aACI,kBAACqL,GAAD,CACIlB,iBAAkBlyD,KAAK2yD,qBACvBp8C,YAAavW,KAAKK,MAAMhc,wBACxBiyB,SAAS,2BACT07C,UAAU,aACV/oC,QAASjpB,KAAK6yD,aACd5B,UAAU,gBAKtB,kBAAC,GAAD,CACIjzB,UAAQ,EACR/uD,aAAc+wB,KAAKK,MAAMpxB,aACzBC,oBAAqB8wB,KAAKK,MAAMnxB,oBAChC6gF,2BAA4B/vD,KAAK+vD,2BACjC6B,iBAAkB5xD,KAAKyyD,oBACvBxB,UAAU,YACVrtE,QAASoc,KAAKK,MAAMzc,QACpBG,WAAYic,KAAKK,MAAMtc,WACvBkyD,mBAAoBj2C,KAAKi2C,mBACzB+a,OAAQhxD,KAAKgxD,WAsDjC,MAWMhqC,GAAe,CACjBktC,2BhK3IsC,CAACjoF,EAAK+H,KACrC,CACHrF,K/F8NqC,gC+F7NrC1C,IAAKA,EACL+H,MAAOA,IgKwIXigF,0BhKpIsCpgF,IAC/B,CACHlF,K/FuNoC,+B+FtNpCkF,WgKkIJugF,4BhK9HwCxwE,IACjC,CACHjV,K/FiNsC,iC+FhNtCiV,YgK4HJuwE,+BhKxH2CpwE,IACpC,CACHpV,K/F2MyC,oC+F1MzCoV,gBgKwHO0hB,mBAlBS93B,IACb,CACHsB,aAActB,EAAM4qB,QAAQxR,eAAe9X,aAC3CC,oBAAqBvB,EAAM4qB,QAAQxR,eAAe7X,oBAClDmV,wBAAyB1W,EAAM4qB,QAAQxR,eAAe1C,wBACtDxR,QAASlF,EAAM4qB,QAAQxR,eAAelU,QACtC+Q,QAASjW,EAAM4qB,QAAQxR,eAAenD,QACtCG,WAAYpW,EAAM4qB,QAAQxR,eAAehD,aAWTijC,GAAzBvhB,CAAuCuuD,I,OChJtD,MAAMK,WAA+B5xD,IAAMC,UAAW,cAAD,yBAejDgwD,iBAAmB,KAf8B,KA8BjDN,OAAS,CAACC,EAAOC,KACb9wE,KACA,MAAM6B,EAAMgvE,EAEZryD,KAAKK,MAAMi0D,gCACXt0D,KAAKK,MAAMk0D,+BAA+B,MAAOlxE,GAGjDhC,GADc,mDAAqB,+BAAKgC,EAAL,KAArB,KACgB2c,KAAKK,MAAM4H,SAASD,UAClD8N,GAAwB9V,KAAKK,MAAMxtB,QAASmtB,KAAKK,MAAM4H,SAASD,WAvCnB,KAgFjDyqD,oBAAsBd,IAClB3xD,KAAK0yD,iBAAmBf,GAjFqB,KAoFjDgB,qBAAuB,KACnB,IAEI,OAAO3yD,KAAK0yD,iBAAiBE,kBAAkBvyD,MAAM7tB,KACvD,MAAOxC,GACL,MAAO,KAzFkC,KA6FjD6iF,aAAe,KACXrxE,KACAD,GAAsB,sCAAoCye,KAAKK,MAAM4H,SAASD,UAAU,IA/F3C,KAkGjD+nD,2BAA6B/F,IACzBxoE,KACAJ,GAAwB,iCAAD,OAAkC4oE,EAAY77D,OAAOxV,MAArD,gBAA0EqnB,KAAKK,MAAM4H,SAASD,UACrH8N,GAAwB9V,KAAKK,MAAMhc,wBAAyB2b,KAAKK,MAAM4H,SAASD,WArGnC,KAwGjDjW,eAAiB,CAAC9lB,EAAK+H,KACnBgsB,KAAKK,MAAMk0D,+BAA+BtoF,EAAK+H,IAzGF,KA4GjDkjB,eAAiB,KAEb8I,KAAKK,MAAMi0D,iCA9GkC,KAiHjDhoB,SAAW,KACP9qD,KACAs0B,GAAwB9V,KAAKK,MAAMxtB,QAASmtB,KAAKK,MAAM4H,SAASD,WAnHnB,KAsHjDiuC,mBAAqB,CAACjyD,EAAMC,KACxB,MACMkyD,EAAgB,IADIn2C,KAAKK,MAAMtc,WACSC,OAAMC,eACpD+b,KAAKK,MAAMm0D,mCAAmCre,IAzHD,KA6HjD6a,OAAS,CAACntE,EAAWC,IAAUkc,KAAKK,MAAMo0D,gCAAgC,CAAE5wE,YAAWC,UA5GvF+oB,oBACIiJ,GAAwB9V,KAAKK,MAAMhc,wBAAyB2b,KAAKK,MAAM4H,SAASD,UAEhFoqD,KAAOa,SAASziC,SAAU,CACtB0iC,eAAgB,CAAC,IACjBd,OAAQpyD,KAAKoyD,SAIrBplD,uBACIolD,KAAOe,WAAW3iC,UAetB/sB,SACI,OACI,oCACI,kBAAC,GAAD,CACI5wB,QAASmtB,KAAKK,MAAMxtB,QACpB3D,oBAAqB8wB,KAAKK,MAAMnxB,oBAChC6iB,eAAgBiO,KAAKjO,eACrBmF,eAAgB8I,KAAK9I,eACrBo1C,SAAUtsC,KAAKssC,SACfyb,aACI,kBAACqL,GAAD,CACIlB,iBAAkBlyD,KAAK2yD,qBACvBp8C,YAAavW,KAAKK,MAAMhc,wBACxBiyB,SAAS,+BACT07C,UAAU,iBACV/oC,QAASjpB,KAAK6yD,aACd5B,UAAU,gBAMtB,kBAAC,GAAD,CACIjzB,UAAQ,EACR/uD,aAAc+wB,KAAKK,MAAMpxB,aACzBC,oBAAqB8wB,KAAKK,MAAMnxB,oBAChC6gF,2BAA4B/vD,KAAK+vD,2BACjC6B,iBAAkB5xD,KAAKyyD,oBACvBxB,UAAU,YACVrtE,QAASoc,KAAKK,MAAMzc,QACpBG,WAAYic,KAAKK,MAAMtc,WACvBkyD,mBAAoBj2C,KAAKi2C,mBACzB+a,OAAQhxD,KAAKgxD,WAsDjC,MAWMhqC,GAAe,CACjButC,+BhK7I0C,CAACtoF,EAAK+H,KACzC,CACHrF,KhG0OJ,qCgGzOI1C,IAAKA,EACL+H,MAAOA,IgK0IXsgF,8BhKtI0CzgF,IACnC,CACHlF,KhGoOJ,oCgGnOIkF,WgKoIJ4gF,gChKhI4C7wE,IACrC,CACHjV,KhG8N+C,sCgG7N/CiV,YgK8HJ4wE,mChK1H+CzwE,IACxC,CACHpV,KhGwNkD,yCgGvNlDoV,gBgK0HO0hB,mBAlBS93B,IACb,CACHsB,aAActB,EAAM4qB,QAAQvR,mBAAmB/X,aAC/CC,oBAAqBvB,EAAM4qB,QAAQvR,mBAAmB9X,oBACtDmV,wBAAyB1W,EAAM4qB,QAAQvR,mBAAmB3C,wBAC1DxR,QAASlF,EAAM4qB,QAAQvR,mBAAmBnU,QAC1C+Q,QAASjW,EAAM4qB,QAAQvR,mBAAmBpD,QAC1CG,WAAYpW,EAAM4qB,QAAQvR,mBAAmBjD,aAWbijC,GAAzBvhB,CAAuC4uD,IC7FvCtsD,OA9DA,CACX,CACIQ,KAAM3O,GAAKoB,QACXriB,MAAO,GACPglC,UAAWwpC,GACXp/C,OAAQ,CACJ,CACIQ,KAAM3O,GAAKqB,aACXtiB,MAAO,UACPglC,UAAWypC,IAEf,CACI7+C,KAAM3O,GAAKuB,cACXxiB,MAAO,YACPglC,UAAWwc,MAIvB,CACI5xB,KAAM3O,GAAK+B,iBACXhjB,MAAO,GACPglC,UAAW+2C,GACX3sD,OAAQ,CACJ,CACIQ,KAAM3O,GAAKgC,4BACXjjB,MAAO,kBACPglC,UAAWw0C,IAEf,CACI5pD,KAAM3O,GAAKiC,8BACXljB,MAAO,wBACPglC,UAAW01C,IAEf,CACI9qD,KAAM3O,GAAKkC,6BACXnjB,MAAO,uBACPglC,UAAWg2C,IAEf,CACIprD,KAAM3O,GAAKmC,2BACXpjB,MAAO,sBACPglC,UAAWq2C,IAEf,CACIzrD,KAAM3O,GAAK+B,iBACXhjB,MAAO,mBACPglC,UAAW02C,MAIvB,CACI9rD,KAAM3O,GAAK6B,eACX9iB,MAAO,sBACPglC,UAAWspC,IAEf,CACI1+C,KAAM3O,GAAK8B,cACX/iB,MAAO,cACPglC,UAAWupC,KCvEnB,MAAMyN,WAA4BlyD,IAAMC,UACpCe,SACI,SAASia,EAAmBxV,GACxB,OACI,kBAAC,KAAD,CACIK,KAAML,EAAMK,KACZ9E,OAAQpD,GAEJ,kBAAC6H,EAAMyV,UAAP,iBAAqBtd,EAArB,CAA4B0H,OAAQG,EAAMH,YAM1D,OACI,oCACI,yBAAKrnB,UAAU,2BACX,kBAAC,KAAD,CAASwoB,GAAItP,GAAKsC,0BAA2Bxb,UAAU,6BAAvD,aACA,kBAAC,KAAD,CAASwoB,GAAItP,GAAKuC,qBAAsBzb,UAAU,kCAAlD,aACA,kBAAC,KAAD,CAASwoB,GAAItP,GAAKwC,uBAAwB1b,UAAU,kCAApD,mBACA,kBAAC,KAAD,CAAS+nB,OAAK,EAACS,GAAItP,GAAKyC,sBAAuB3b,UAAU,6BAAzD,qBAGJ,kBAAC,KAAD,KACKsf,KAAKK,MAAM0H,OAAOzyB,IAAI,CAAC4yB,EAAOngB,IAC3B,kBAAC21B,EAAD,eAAoBzxC,IAAK8b,GAAOmgB,QASzCysD,ICzCX,GAAO,GAAQ,GAAQ,GDyCZA,MEbR,SAASC,GAAkBl9B,EAAiB7kD,EAASiiC,GACxD,GAAM4iB,EAAiB,CAEnB,GAA8C,OADhC52C,GAAMoG,WACVoR,MAAMhF,aAAarkB,aACzB,OAGR,MAAM8lC,EAAe,IAAKliC,GAE1B,OADAiO,GAAMC,SlBjCC,CACHpS,KlP4QsC,mCoQ3OnCob,KACFC,I3OmGyB,+B2OlGzBC,KAAM5C,IACH,MAAM4tB,EAuFlB,SAA4BnlC,EAAU+C,GAClC,IAAK/C,IAAaA,EAAS0U,SAAW3R,EAClC,OAAO/C,EAGX,OAAOA,EAASoS,OAAQ3M,IACpB,GAAI1C,EAAQwQ,MAAQ6yB,GAAqB3gC,EAAI8N,IAAKxQ,EAAQwQ,KACtD,OAAO,EAEX,GAAIxQ,EAAQ0X,SAAWhV,EAAIgtD,SAASvuD,QAAUnB,EAAQ0X,QAAQ/W,GAC1D,OAAO,EAEX,GAAIX,EAAQzF,OAAS8oC,GAAqB3gC,EAAInI,KAAMyF,EAAQzF,MACxD,OAAO,EAGX,GAAIyF,EAAQ0Q,UAAYhO,EAAIgO,SAASvP,QAAUnB,EAAQ0Q,SAAS/P,GAC5D,OAAO,EAEX,GAAIX,EAAQlE,MAAQ4G,EAAI5G,KAAKqF,QAAUnB,EAAQlE,KAAK6E,GAChD,OAAO,EAGX,GAAIX,EAAQ2Q,QAAUjO,EAAIiO,SAAW3Q,EAAQ2Q,OAAOxP,MAChD,OAAO,EAEX,GAAInB,EAAQ4X,QAAUlV,EAAIkV,SAAWi3B,OAAO7uC,EAAQ4X,QAChD,OAAO,EAGX,GACI5X,EAAQ6Q,YACPosB,GACGj9B,EAAQ6Q,UACRnO,EAAIglC,KACJ,OAGJ,OAAO,EAEX,GACI1nC,EAAQ8Q,UACPmsB,GAAiCv6B,EAAIglC,KAAM1nC,EAAQ8Q,QAAS,OAE7D,OAAO,EAGX,GAAI9Q,EAAQ2X,YAAc3X,EAAQ2X,WAAWhG,OAAQ,CACjD,MAAMgG,EAAa3X,EAAQ2X,WAAWlV,IACjCi+B,GAAcA,EAAUv/B,OAE7B,GACIwW,EAAWrI,SAASsmE,MACG,IAAvBlzE,EAAIqzE,eAEJ,OAAO,EAEX,GACIp+D,EAAWrI,SACPsmE,KAE8B,IAAlClzE,EAAIszE,0BAEJ,OAAO,EAEX,GACIr+D,EAAWrI,SAASsmE,KACpB/mC,OAAOnsC,EAAIozE,OAAS,EAEpB,OAAO,EAIf,OAAO,IAhKsBK,CACrB3hE,EAAS7U,KACTuiC,GASJ,OAPAj0B,GAAMC,SlBpC2B,EAACqD,EAAwBnV,EAAc4D,KACzE,CACHlE,KlPwQJ,mCkPvQIyV,yBAAwBnV,eAAc4D,YkBkC9BgiF,CACIxtE,EAAS7U,KACTyiC,EACAF,IAGD1tB,EAAS7U,OAEnB0X,MAAOre,IACJ,MAAMgC,EAAeoZ,GAAsBpb,GAC3CiV,GAAMC,SlBxCyBlV,KAChC,CACH8C,KlPkQqC,gCkPjQrC9C,UkBqCmBipF,CAA2BjnF,IAE1C2T,KACAD,GAAsB1T,EAAcinC,KAsDzC,SAASigD,GAAkCjqE,GAC9C,MACMtY,EAAO,CAAEqY,IAAKC,GAEpB,OAAOf,KACF2U,K3OsEL,yC2OtEoBlsB,GACfyX,KAAM5C,GACIA,EAAS7U,MAEnB0X,MAAOre,IACJ,MAAMgC,EAAeoZ,GAAsBpb,GAC3C,MAAMse,MAAMtc,KAiFxB,SAASqoC,GAAqBC,EAAKC,GAC/B,OAAOD,EAAIvD,OAAOljB,cAAcvN,SAASi0B,EAAOxD,OAAOljB,eAG3D,SAASslE,GAAmBllF,EAAU0D,GAClC,IAAK,MAAM+B,KAAOzF,EACd,GAAIyF,EAAI/B,KAAOA,EACX,OAAO+B,EAAI8N,IAGnB,MAAM,sBAAN,OAA6B7P,EAA7B,KDpNJ,SAAS,KAA2Q,OAA9P,GAAW+rB,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAI1X,EAAI,EAAGA,EAAI2X,UAAUlb,OAAQuD,IAAK,CAAE,IAAI4X,EAASD,UAAU3X,GAAI,IAAK,IAAI9b,KAAO0zB,EAAcJ,OAAOK,UAAUC,eAAeC,KAAKH,EAAQ1zB,KAAQwzB,EAAOxzB,GAAO0zB,EAAO1zB,IAAY,OAAOwzB,IAA2BM,MAAMC,KAAMN,WAIhT,MAAMu1D,GAAY/0D,IAChB,IAAI,OACFC,EAAM,MACNC,KACGC,GACDH,EACJ,OAAoB,IAAMI,cAAc,MAAO,GAAS,CACtDC,MAAO,GACPC,OAAQ,GACRC,QAAS,YACTC,KAAM,OACNC,IAAKR,GACJE,GAAQD,EAAqB,IAAME,cAAc,QAAS,KAAMF,GAAS,KAAM,KAAU,GAAqB,IAAME,cAAc,OAAQ,CAC3IS,EAAG,+iDACHL,KAAM,aACH,KAAW,GAAsB,IAAMJ,cAAc,OAAQ,CAChES,EAAG,mDACHL,KAAM,aACH,KAAW,GAAsB,IAAMJ,cAAc,OAAQ,CAChES,EAAG,mDACHL,KAAM,aACH,KAAW,GAAsB,IAAMJ,cAAc,OAAQ,CAChES,EAAG,saACHL,KAAM,eAIJ,GAA0B,IAAMO,WAAW,CAACZ,EAAOM,IAAqB,IAAML,cAAc20D,GAAW,GAAS,CACpH90D,OAAQQ,GACPN,KACY,IEpCX,GFoCW,IElCf,SAAS,KAA2Q,OAA9P,GAAWd,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAI1X,EAAI,EAAGA,EAAI2X,UAAUlb,OAAQuD,IAAK,CAAE,IAAI4X,EAASD,UAAU3X,GAAI,IAAK,IAAI9b,KAAO0zB,EAAcJ,OAAOK,UAAUC,eAAeC,KAAKH,EAAQ1zB,KAAQwzB,EAAOxzB,GAAO0zB,EAAO1zB,IAAY,OAAOwzB,IAA2BM,MAAMC,KAAMN,WAIhT,MAAMw1D,GAAUh1D,IACd,IAAI,OACFC,EAAM,MACNC,KACGC,GACDH,EACJ,OAAoB,IAAMI,cAAc,MAAO,GAAS,CACtDC,MAAO,GACPC,OAAQ,GACRC,QAAS,YACTC,KAAM,OACNC,IAAKR,GACJE,GAAQD,EAAqB,IAAME,cAAc,QAAS,KAAMF,GAAS,KAAM,KAAU,GAAqB,IAAME,cAAc,OAAQ,CAC3IS,EAAG,43CACHL,KAAM,eAIJ,GAA0B,IAAMO,WAAW,CAACZ,EAAOM,IAAqB,IAAML,cAAc40D,GAAS,GAAS,CAClH/0D,OAAQQ,GACPN,KACY,IC3BX,GD2BW,ICzBf,SAAS,KAA2Q,OAA9P,GAAWd,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAI1X,EAAI,EAAGA,EAAI2X,UAAUlb,OAAQuD,IAAK,CAAE,IAAI4X,EAASD,UAAU3X,GAAI,IAAK,IAAI9b,KAAO0zB,EAAcJ,OAAOK,UAAUC,eAAeC,KAAKH,EAAQ1zB,KAAQwzB,EAAOxzB,GAAO0zB,EAAO1zB,IAAY,OAAOwzB,IAA2BM,MAAMC,KAAMN,WAIhT,MAAMy1D,GAAUj1D,IACd,IAAI,OACFC,EAAM,MACNC,KACGC,GACDH,EACJ,OAAoB,IAAMI,cAAc,MAAO,GAAS,CACtDC,MAAO,GACPC,OAAQ,GACRC,QAAS,YACTC,KAAM,OACNC,IAAKR,GACJE,GAAQD,EAAqB,IAAME,cAAc,QAAS,KAAMF,GAAS,KAAM,KAAU,GAAqB,IAAME,cAAc,OAAQ,CAC3IiJ,SAAU,UACVC,SAAU,UACVzI,EAAG,u4GACHL,KAAM,eAIJ,GAA0B,IAAMO,WAAW,CAACZ,EAAOM,IAAqB,IAAML,cAAc60D,GAAS,GAAS,CAClHh1D,OAAQQ,GACPN,KACY,I,OChBf,MAGa+0D,GAA0B,CAOnC,CAAC3M,IAA+C,UAChD,CAACA,IAAwD,WAItD,SAAS4M,GAAT,GAAqD,IAAxB,KAAE30D,EAAF,GAAQE,EAAR,QAAY00D,GAAW,EACvD,MAAMC,EACF,4BAAQ30D,GAAIA,EAAIC,GAAG,IAAIC,EAAE,IAAIJ,KAAMA,EAAMgJ,OAAO,UAAUC,YAAY,MAG1E,OAAI2rD,EAEI,yBAAK90D,OAAO,OAAOD,MAAM,QACpBg1D,GAKNA,EAQX,SAASC,GAAT,GAAuG,IAAxD,SAAEC,EAAF,eAAYC,EAAZ,wBAA4BC,GAA2B,EAIlG,KAFiE,mBAApBD,GAAsE,mBAA7BC,GAEnD,OAAO,KAE1C,MAAMC,EAAY,CAAEp1D,OAAQ,OAAQD,MAAO,QAC3C,IAAIs1D,EAAuBC,EAO3B,OANIH,IACAE,EAAwBT,GAAwB3M,KAEhDiN,IACAI,EAAeV,GAAwB3M,KAGvC,kBAAC3hD,GAAA,EAAD,CAAKpmB,UAAU,iBACX,yBAAKlN,GAAIuiF,GAAUN,GAAY,sBAAuB7sE,MAAOgtE,GACzD,yBAAKhtE,MAAOgtE,GACR,kBAACP,GAAD,CAAqB30D,KAAMo1D,EAAcl1D,GAAG,OAC5C,kBAACy0D,GAAD,CAAqB30D,KAAMm1D,MAGnC,kBAAC3xD,GAAA,EAAD,CACIzE,OAAQs2D,GAAUN,GAAY,sBAC9BjmC,eA5Dc,mCA6DdC,eA5Dc,oCA8Dd,mDAAwB,2BAAIkmC,EAA0B,KAAO,UAA7D,YAAmF,qDACnF,6BACA,mDAAwB,2BAAID,EAAiB,KAAO,UAApD,YAA0E,4CAM3E,SAASM,GAAT,GAA2I,IAA1G,SAAEP,EAAF,WAAYQ,EAAZ,yBAAwBC,EAAxB,WAAkDC,EAAlD,eAA8DT,EAA9D,wBAA8EC,GAA2B,EACrJ,MAAMS,EAAUH,EAAa,EACvBI,EAAwBH,EAA2B,EAEzD,OACI,kBAACrvD,GAAA,EAAD,CAAKnmB,UAAU,6DACX,kBAAC80E,GAAD,CACIC,SAAUA,EACVC,eAAgBA,EAChBC,wBAAyBA,IAE7B,kBAAC7uD,GAAA,EAAD,CAAKpmB,UAAU,YACX,kBAAC,GAAD,CACIlN,GAAIuiF,GAAUN,GAAY,QAC1B/0E,UAAWy1E,EAAa,eAAiB,KAE7C,kBAACjyD,GAAA,EAAD,CACIC,UAAU,QACV1E,OAAQs2D,GAAUN,GAAY,QAC9BjmC,eA1FU,mCA2FVC,eA1FU,oCA4FT0mC,EAAa,mCAAkC,oCAGxD,kBAACrvD,GAAA,EAAD,CAAKpmB,UAAU,iBACX,kBAAC,GAAD,CACIlN,GAAIuiF,GAAUN,GAAY,QAC1B/0E,UAAW01E,EAAU,eAAiB,KAE1C,kBAAClyD,GAAA,EAAD,CACIzE,OAAQs2D,GAAUN,GAAY,QAC9BjmC,eAvGU,mCAwGVC,eAvGU,oCAoGd,uBAKkB3mC,GAAkBjV,OAAOoiF,MAG/C,kBAACnvD,GAAA,EAAD,CAAKpmB,UAAU,YACX,kBAAC,GAAD,CACIlN,GAAIuiF,GAAUN,GAAY,WAC1B/0E,UAAW21E,EAAwB,eAAiB,KAExD,kBAACnyD,GAAA,EAAD,CACIzE,OAAQs2D,GAAUN,GAAY,WAC9BjmC,eApHU,mCAqHVC,eApHU,oCAiHd,UAKQymC,EALR,0BApFhBb,GAAoBxmD,aAAe,CAC/BnO,KAAM,UACNE,GAAI,IACJ00D,SAAS,GA6Fb,MAAMS,GAAY,WAAoB,IAAnBN,EAAkB,uDAAP,GAC1B,MAAO,sBAAwBA,GAGnCO,GAAwBnnD,aAAe,CACnC4mD,SAAU,GACVC,oBAAgBz8D,EAChB08D,6BAAyB18D,G,OC1H7B,MAAMq9D,WAA0B7zD,IAAMC,UAAW,cAAD,yBAyK5CsrC,sBAAwB94D,GAEhB,kBAACi/C,GAAD,KACKj/C,GA5K+B,KAiL5CqhF,mBAAqB,CAACzmF,EAAU4a,KAC5B,IAAI8rE,EAAkB,GAEtB,IAAK,IAAIC,EAAM,EAAGA,EAAM3mF,EAAS0U,OAAQiyE,IAAO,CAC5C,MAAMC,EAAQ5mF,EAAS2mF,GAAKjjF,GACxBkX,EAAYvI,SAASu0E,IACrBF,EAAgB5vD,KAAK6vD,GAI7B,OAAOD,GA3LiC,KA8L5CG,2BAA8BhgF,GAEtB,kBAAC,GAAD,CACI8+E,SAAU,gBAAkB9+E,EAAInD,GAChCyiF,WAAYv0C,OAAO/qC,EAAIgyE,MACvBwN,WAAYx/E,EAAIiyE,eAChBsN,yBAA0Bv/E,EAAIkyE,4BAtL1CplD,SACI,GAAIzD,KAAKK,MAAMnxB,oBACX,OACI,kBAACilD,GAAD,KACI,kBAAC,GAAD,OAIZ,IAAKn0B,KAAKK,MAAMpxB,aACZ,OAAO,qCAGX,MAAM8sC,EAAU,CACZ,CACIl4B,UAAW,KACX7U,KAAM,KACNitC,QAAS,cACTD,MAAM,EACNpI,QAAQ,GAEZ,CACI/vB,UAAW,MACX7U,KAAM,WACNitC,QAAS,cACTD,MAAM,EACNg1C,OAAQ,CAACp6E,EAAOkN,IAAUkc,KAAKK,MAAM2wD,OAAOp6E,EAAOkN,IAEvD,CACID,UAAW,OACX7U,KAAM,gBACNitC,QAAS,cACTD,MAAM,EACNg1C,OAAQ,CAACp6E,EAAOkN,IAAUkc,KAAKK,MAAM2wD,OAAOp6E,EAAOkN,IAEvD,CACID,UAAW,SACX7U,KAAM,cACNitC,QAAS,cACTD,MAAM,EACNg1C,OAAQ,CAACp6E,EAAOkN,IAAUkc,KAAKK,MAAM2wD,OAAOp6E,EAAOkN,IAEvD,CACID,UAAW,OACX7U,KAAM,WACNitC,QAAS,aACTD,MAAM,EACNg1C,OAAQ,CAACp6E,EAAOkN,IAAUkc,KAAKK,MAAM2wD,OAAOp6E,EAAOkN,GACnD64B,UAAYpC,GAAS3mC,KAAO2mC,GAAM1mC,OpL5EvB,coL6EX86C,MAAO,QACPC,YAAa,SAEjB,CACI/qC,UAAW,GACX7U,KAAM,UACNitC,QAAS,mCACT0S,MAAO,QACPC,YAAa,QAGbjS,UAAW,CAACD,EAAM/lC,IAAQqpB,KAAK22D,2BAA2BhgF,KAI5DkhE,EAAY,CACdt5C,KAAM,WACN3S,SAAUoU,KAAKK,MAAM3V,YAErBotD,eAAe,EACfC,kBAAmB,QAAC,KAAEx5C,EAAF,QAAQgzC,EAAR,SAAiBrsC,GAAlB,SACf,kBAAC,GAAD,CAAUlxB,MAAOu9D,EAASpsC,QAAS,OAAWzkB,UAAU,UAE5Dg2D,SAAU,CAAC//D,EAAKggE,EAAU1b,EAAUnzC,KAChCkY,KAAKK,MAAMq2C,SAAS//D,EAAKggE,EAAU1b,EAAUnzC,IAEjD8uD,YAAa,CAACD,EAAU3gD,KACpBgK,KAAKK,MAAMu2C,YAAYD,EAAU3gD,IAErCgiD,wBAAyB,IAAuC,IAAtC,KAAEz5C,EAAF,QAAQgzC,EAAR,cAAiBC,GAAoB,EAC3D,OAAO,kBAAC,GAAD,CAAiBD,QAASA,EAASC,cAAeA,MAI3Djb,EAAa,CAAC5/C,EAAKskD,IACd,UAGLD,EAAY,CACd71B,QAAS,CAACrd,EAAGnR,EAAKskD,KACdj7B,KAAKK,MAAM2sC,WAAWllD,EAAGnR,KAI3B06E,EAAoB,CACtBC,QAAQ,EACRttE,KAAMgc,KAAKK,MAAMtc,WAAWC,KAC5BC,YAAa+b,KAAKK,MAAMtc,WAAWE,aAAe+b,KAAKK,MAAMtc,WAAWG,SACxE8rD,UAAWhwC,KAAKK,MAAMtc,WAAWG,SACjCC,gBAAiB6b,KAAKK,MAAMtc,WAAWI,gBACvCssD,oBAAqB,CAACxsD,EAAaD,KAC/Bgc,KAAKK,MAAM41C,mBAAmBjyD,EAAMC,IAExCssD,aAAc,CAACvsD,EAAMC,KACjB+b,KAAKK,MAAM41C,mBAAmBjyD,EAAMC,KAKtCq5B,EAAgB,CAACtd,KAAKK,MAAMzc,SAE5BstE,EAAuBlxD,KAAKguC,sBAAsB,uBAAGttD,UAAU,mBAAb,sDAExD,OACI,kBAAC,sBAAD,CACIqD,WAAYytE,KAAkBH,IAG1B,QAAC,gBACGI,EADH,qBAEGC,GAFJ,SAIQ,oCACI,kBAAC7qD,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,KACI,kBAAC,KAAD,eACIiW,YAAU,EACVC,UAAU,EACVf,QAAQ,6CACRgB,eAAe,gDACfC,SAAS,KACT1qC,KAAMwtB,KAAKK,MAAMpxB,aACjB8sC,QAASA,EACTsB,iBAAkB6zC,EAClBrZ,UAAWA,EACXthB,WAAYA,EACZyE,UAAWA,EACX1d,cAAeA,GACXo0C,MAIhB,kBAAC7qD,GAAA,EAAD,CAAKnmB,UAAU,QACX,kBAAComB,GAAA,EAAD,CAAKpmB,UAAU,aACX,kBAAC,GAAD,eACIyvD,uBAAuB,WACnBshB,UA4CjC6E,U,OCrNf,MAEMM,GAA6Bv2D,GAC3BA,EAAM7tB,KAAKqkF,KAEP,kBAACx2D,EAAM7tB,KAAKqkF,KAAZ,CAAiBn2E,UALL,gCAShB,kBAAC,KAAWo2E,oBAAwBz2D,EAC/BA,EAAMmK,UAKbusD,GAAc12D,GAChB,kBAAC,KAAW22D,OAAW32D,EACnB,kBAACA,EAAM7tB,KAAKqkF,KAAZ,CAAiBn2E,UAjBD,gCAkBf2f,EAAM7tB,KAAKmG,OAIds+E,GAAiC,IAAM,kBAAC5B,GAAD,CAAqBC,SAAS,EAAM50D,KAAM00D,GAAwB3M,MACzGyO,GAAyB,IAAM,kBAAC7B,GAAD,CAAqBC,SAAS,EAAM50D,KAAM00D,GAAwB3M,MAExF,SAAS0O,GAAT,GAA2E,IAA1C,MAAEnjF,EAAF,SAASo+B,EAAT,mBAAmBglD,GAAsB,EACjF77E,EAAU,CACV,CAAEvH,MAAOy0E,GAAiC9vE,MAAO,uBAAqBk+E,KAAMQ,IAC5E,CAAErjF,MAAOy0E,GAA4C9vE,MAAO,qBAAsBk+E,KAAMS,IACxF,CAAEtjF,MAAOy0E,GAA6B9vE,MAAO,eAAak+E,KAAMU,KAUpE,OARKH,IACD77E,EAAU,IACHA,EACH,CAAEvH,MAAOy0E,GAAuD9vE,MAAO,+BAA0Bk+E,KAAMI,IACvG,CAAEjjF,MAAOy0E,GAA8C9vE,MAAO,wBAAyBk+E,KAAMK,MAKjG,yBAAMx2E,UAAU,qCACZ,kBAAC,GAAD,CACIouE,SAAO,EACP/6C,YAAY,YACZrzB,UAAU,OACVnF,QAASA,EACTvH,MAAOA,EACPo+B,SAAUA,EACV28C,mBAAmB,EACnBC,qBAAqB,EACrBzzC,aAAa,EACbuuC,WAAY,CAAEgN,oBAAqBF,GAA2BI,OAAQD,OAMtFI,GAAwBtoD,aAAe,CACnC76B,WAAOilB,EACPmZ,cAAUnZ,EACVm+D,oBAAoB,GC/CxB,MAAMI,WAAgC/0D,IAAMC,UAAW,cAAD,yBA0KlDolD,aAAe77E,GAAO+H,IAClBgsB,KAAKK,MAAMtO,eAAe9lB,EAAK+H,IAzJnC64B,oBACIqM,GAAclZ,KAAKK,MAAMlxB,UACzB2a,GAAgBkW,KAAKK,MAAM/d,YAC3B62B,GAAgBnZ,KAAKK,MAAMjxB,YAC3BgqC,GAAkBpZ,KAAKK,MAAMhxB,cAC7BiqC,GAAoBtZ,KAAKK,MAAM9wB,gBAC/BkqC,GAAqBzZ,KAAKK,MAAM7wB,iBAChCkqC,GAAwB1Z,KAAKK,MAAM5wB,oBAGvCg0B,SACI,OACI,kBAACs1B,GAAA,EAAD,KACI,kBAAClyB,GAAA,EAAD,CAAKnmB,UAAU,yCACX,kBAAComB,GAAA,EAAD,CAAKpmB,UAAU,IACX,kBAACmmB,GAAA,EAAD,CAAKnmB,UAAU,wDACX,kBAAComB,GAAA,EAAD,CAAKpmB,UAAU,aACX,0BAAMA,UAAU,WAAhB,mBAEHsf,KAAKK,MAAM0nD,cACR,kBAACjhD,GAAA,EAAD,CAAKsU,GAAI,EAAGtK,GAAI,EAAGpwB,UAAU,mBACxBsf,KAAKK,MAAM0nD,eAIxB,kBAAClhD,GAAA,EAAD,CAAKnmB,UAAU,2BACX,kBAAComB,GAAA,EAAD,CAAKgK,GAAI,CAAEmN,KAAM,EAAGn6B,MAAO,GAAKpD,UAAU,QACtC,kBAAC,GAAD,CAAaqzB,YAAY,MACrBplC,KAAK,SACLqF,MAAOgsB,KAAKK,MAAMxtB,QAAQwQ,IAC1B3C,UAAU,OACV0xB,SAAUpS,KAAK8nD,aAAa,UAGpC,kBAAChhD,GAAA,EAAD,CAAKgK,GAAI,CAAEmN,KAAM,EAAGn6B,MAAO,GAAKpD,UAAU,QACtC,kBAAC,GAAD,CAAaqzB,YAAY,eACrB//B,MAAOgsB,KAAKK,MAAMxtB,QAAQzF,KAC1BsT,UAAU,OACV0xB,SAAUpS,KAAK8nD,aAAa,WAGpC,kBAAChhD,GAAA,EAAD,CAAKgK,GAAI,CAAEmN,KAAM,EAAGn6B,MAAO,GAAKpD,UAAU,QACtC,kBAAC,GAAD,CAAQnF,QAASykB,KAAKK,MAAMlxB,SACxBosC,aAAW,EACXvnC,MAAOgsB,KAAKK,MAAMxtB,QAAQ0X,QAC1BwpB,YAAY,iBACZrzB,UAAU,OACV86B,eAAiBC,GAAWA,EAAOznC,MACnCo+B,SAAUpS,KAAK8nD,aAAa,cAGpC,kBAAChhD,GAAA,EAAD,CAAKgK,GAAI,CAAEmN,KAAM,EAAGn6B,MAAO,GAAKpD,UAAU,QACtC,kBAAC,GAAD,CAAQnF,QAASykB,KAAKK,MAAMjxB,WACxBmsC,aAAW,EACXvnC,MAAOgsB,KAAKK,MAAMxtB,QAAQ0Q,SAC1BwwB,YAAY,aACZrzB,UAAU,OACV86B,eAAiBC,GAAWA,EAAOnD,YACnCoD,eAAiBD,GAAWA,EAAOznC,MACnCo+B,SAAUpS,KAAK8nD,aAAa,eAGpC,kBAAChhD,GAAA,EAAD,CAAKgK,GAAI,CAAEmN,KAAM,EAAGn6B,MAAO,GAAKpD,UAAU,QACtC,kBAAC,GAAD,CAAQnF,QAASykB,KAAKK,MAAMhxB,aACxBksC,aAAW,EACXvnC,MAAOgsB,KAAKK,MAAMxtB,QAAQlE,KAC1BolC,YAAY,oBACZrzB,UAAU,OACV86B,eAAiBC,GAAWA,EAAOznC,MACnC0nC,eAAiBD,GAAWA,EAAOznC,MACnCo+B,SAAUpS,KAAK8nD,aAAa,WAGpC,kBAAChhD,GAAA,EAAD,CAAKgK,GAAI,CAAEmN,KAAM,EAAGn6B,MAAO,GAAKpD,UAAU,aACtC,kBAAC,GAAD,CAAaqzB,YAAY,OACrBplC,KAAK,SACLqF,MAAOgsB,KAAKK,MAAMxtB,QAAQ4X,OAC1B/J,UAAU,OACV0xB,SAAUpS,KAAK8nD,aAAa,aAGpC,kBAAChhD,GAAA,EAAD,CAAKgK,GAAI,CAAEmN,KAAM,EAAGn6B,MAAO,GAAKpD,UAAU,QACtC,kBAAC,GAAD,CAAQnF,QAASykB,KAAKK,MAAM9wB,eACxBgsC,aAAW,EACXvnC,MAAOgsB,KAAKK,MAAMxtB,QAAQ2Q,OAC1BuwB,YAAY,OACZyH,eAAiBC,GAAWA,EAAOznC,MAAQ,KAC3C0nC,eAAiBD,GAAWA,EAAOznC,MACnC0M,UAAU,OACV0xB,SAAUpS,KAAK8nD,aAAa,aAGpC,kBAAChhD,GAAA,EAAD,CAAKgK,GAAI,CAAEmN,KAAM,EAAGn6B,MAAO,GAAKpD,UAAU,QACtC,kBAAC,GAAD,CACI1M,MAAOgsB,KAAKK,MAAMxtB,QAAQ2X,WAC1B4nB,SAAUp+B,GAASgsB,KAAK8nD,aAAa,aAAlB9nD,CAAgChsB,GAAS,IAC5DojF,oBAAoB,KAG5B,kBAACtwD,GAAA,EAAD,CAAKgK,GAAI,CAAEmN,KAAM,EAAGn6B,MAAO,IAAMpD,UAAU,QACvC,kBAAC,KAAD,CACIA,UAAU,OACVi7B,gBAAgB,SAChB/vB,SAAUoU,KAAKK,MAAMxtB,QAAQ6Q,UAC7B0uB,SAAUpS,KAAK8nD,aAAa,aAC5Bnb,QAAS3sC,KAAKK,MAAMxtB,QAAQ8Q,SAAW,IAAIuN,KAC3Cu7C,WtL5ID,gBsL+IP,kBAAC3lC,GAAA,EAAD,CAAKgK,GAAI,CAAEmN,KAAM,EAAGn6B,MAAO,IAAMpD,UAAU,QACvC,kBAAC,KAAD,CACIi7B,gBAAgB,OAChBj7B,UAAU,OACVkL,SAAUoU,KAAKK,MAAMxtB,QAAQ8Q,QAC7Bi4B,QAAS5b,KAAKK,MAAMxtB,QAAQ6Q,UAC5B0uB,SAAUpS,KAAK8nD,aAAa,WAC5Brb,WtLtJD,gBsLyJP,kBAAC3lC,GAAA,EAAD,CAAKgK,GAAI,CAAEmN,KAAM,EAAGn6B,MAAO,GAAKpD,UAAU,QACtC,kBAAC26B,GAAA,EAAD,CACIQ,SAAO,EACPP,OAAK,EACLnQ,MAAM,UACNzqB,UAAU,YACVykB,QAASnF,KAAKK,MAAMnJ,gBALxB,uBAUJ,kBAAC4P,GAAA,EAAD,CAAKgK,GAAI,CAAEmN,KAAM,EAAGn6B,MAAO,IAAMpD,UAAU,QACvC,kBAAC26B,GAAA,EAAD,CACI1sC,KAAK,SACL2sC,OAAK,EACLnQ,MAAM,UACNzqB,UAAU,YACVykB,QAAUrd,IACNA,EAAE0wC,iBACFx4B,KAAKK,MAAMisC,YAEfpnC,SAAUlF,KAAKK,MAAMnxB,qBAEpB8wB,KAAKK,MAAMnxB,oBAAsB,kBAAC,GAAD,MAAuB,cA4B9Eu2B,mBAZS93B,IACb,CACH2U,WAAY3U,EAAM6qB,QAAQlW,WAC1BnT,SAAUxB,EAAMmC,SAASX,SACzBC,WAAYzB,EAAMmC,SAASV,WAC3BC,aAAc1B,EAAMmC,SAAST,aAC7BE,eAAgB5B,EAAMmC,SAASP,eAC/BC,gBAAiB7B,EAAMmC,SAASN,gBAChCC,mBAAoB9B,EAAMmC,SAASL,qBAI5Bg2B,CAAyB+xD,I,OCjMxC,MAAMC,WAAkC/0D,YAAW,cAAD,yBAiL9C6kB,SAAW,KACPvnB,KAAKkM,SAASsH,IACH,CACH8T,QAAS9T,EAAU8T,WApLe,KAyL9CqvC,2BAA8BhgF,GAEtB,kBAAC,GAAD,CACI8+E,SAAU,8BAAgC9+E,EAAInD,GAC9CyiF,WAAYv0C,OAAO/qC,EAAIgyE,MACvBwN,WAAYx/E,EAAIiyE,eAChBsN,yBAA0Bv/E,EAAIkyE,4BA3K1CplD,SACI,OACI,oCACI,kBAACmkB,GAAA,EAAD,CACIN,OAAQtnB,KAAKK,MAAMinB,OACnBO,OAAQ7nB,KAAKK,MAAMknB,SACnBO,UAAQ,EACR7J,KAAK,KACLv9B,UAAU,+BAEV,kBAACsnC,GAAA,EAAD,CAAWtnC,UAAU,OACjB,kBAACmmB,GAAA,EAAD,CAAKnmB,UAAU,QACX,kBAAComB,GAAA,EAAD,KACI,0BAAMpmB,UAAU,WAAhB,wBAEJ,kBAAComB,GAAA,EAAD,CAAKpmB,UAAU,mCACX,kBAAC,GAAD,CACI1R,KAAK,QACLm2B,QAASnF,KAAKK,MAAMknB,aAIhC,kBAAC1gB,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,KACI,kBAAC,GAAD,CAAQsD,YAAY,EAAMC,aAAcrK,KAAKK,MAAMsnB,gBAG3D,kBAAC9gB,GAAA,EAAD,CAAKnmB,UAAU,yBACX,kBAAComB,GAAA,EAAD,KACK9G,KAAK8b,gBAGd,kBAACjV,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,CAAKgK,GAAG,IAAIpwB,UAAU,QAClB,kBAAC26B,GAAA,EAAD,CACIlQ,MAAM,UACN0Q,SAAO,EACPP,OAAK,EACLnW,QAASnF,KAAKK,MAAMmnB,SACpBtiB,SAAUlF,KAAKK,MAAM+T,YALzB,eAUJ,kBAACtN,GAAA,EAAD,CAAKgK,GAAG,IAAIpwB,UAAU,QAClB,kBAAC26B,GAAA,EAAD,CACIC,OAAK,EAACO,SAAO,EACb1Q,MAAM,YACNhG,QAASnF,KAAKK,MAAMq3D,kBACpBxyD,SAAUlF,KAAKK,MAAM+T,YAAcpU,KAAKK,MAAMs3D,2BAE7C33D,KAAKK,MAAMu3D,yBAA2B,kBAAC,GAAD,MAAuB,4BAGtE,kBAAC9wD,GAAA,EAAD,CAAKgK,GAAG,IAAIpwB,UAAU,QAClB,kBAAC26B,GAAA,EAAD,CACIlQ,MAAM,UACNmQ,OAAK,EACLnW,QAASnF,KAAKK,MAAMonB,UACpBviB,SAAUlF,KAAKK,MAAM+T,YAEpBpU,KAAKK,MAAMqnB,UAAY,kBAAC,GAAD,MAAvB,wCAA4E1nB,KAAKK,MAAM3V,YAAYlG,OAAnG,sBAUjCs3B,cACI,MAAM+7C,EAAmB73D,KAAKK,MAAMpxB,aAAaiT,OAAO3M,GAAOyqB,KAAKK,MAAM3V,YAAYvI,SAAS5M,EAAI/B,KAE7FuoC,EAAU,CACZ,CACIl4B,UAAW,KACX7U,KAAM,KACNitC,QAAS,cACTD,MAAM,EACNpI,QAAQ,GAEZ,CACI/vB,UAAW,MACX7U,KAAM,WACNitC,QAAS,cACTD,MAAM,GAEV,CACIn4B,UAAW,OACX7U,KAAM,gBACNitC,QAAS,cACTD,MAAM,GAEV,CACIn4B,UAAW,SACX7U,KAAM,cACNitC,QAAS,cACTD,MAAM,GAEV,CACIn4B,UAAW,OACX7U,KAAM,WACNitC,QAAS,aACTD,MAAM,EACNW,UAAYpC,GAAS3mC,KAAO2mC,GAAM1mC,OvLzIvB,cuL0IX86C,MAAO,QACPC,YAAa,SAEjB,CACI/qC,UAAW,GACX7U,KAAM,UACNitC,QAAS,mCACT0S,MAAO,QACPC,YAAa,QAEbjS,UAAW,CAACD,EAAM/lC,IAAQqpB,KAAK22D,2BAA2BhgF,KAI5DkhE,EAAY,CACdt5C,KAAM,WACN3S,SAAUoU,KAAKK,MAAM3V,YACrBotD,eAAe,EACfC,kBAAmB,QAAC,KAAEx5C,EAAF,QAAQgzC,EAAR,SAAiBrsC,GAAlB,SACf,kBAAC,GAAD,CAAUlxB,MAAOu9D,EAASpsC,QAAS,OAAWzkB,UAAU,UAE5Dg2D,SAAU,CAAC//D,EAAKggE,EAAU1b,EAAUnzC,KAChCkY,KAAKK,MAAMq2C,SAAS//D,EAAKggE,EAAU1b,EAAUnzC,IAEjD8uD,YAAa,CAACD,EAAU3gD,KACpBgK,KAAKK,MAAMu2C,YAAYD,EAAU3gD,IAErCgiD,wBAAyB,IAAuC,IAAtC,KAAEz5C,EAAF,QAAQgzC,EAAR,cAAiBC,GAAoB,EAC3D,OAAO,kBAAC,GAAD,CAAiBD,QAASA,EAASC,cAAeA,MAI3D0f,EAAwB,uBAAGxwE,UAAU,0BAAb,wCAE9B,OACI,oCACI,kBAAC,KAAD,CACIq8B,YAAU,EACVC,UAAU,EACVf,QAAQ,6DACRgB,eAAe,wDACfC,SAAS,KACT1qC,KAAMqlF,EACN97C,QAASA,EACTsB,iBAAkB6zC,EAClBrZ,UAAWA,MA3KzB4f,GAkBK5+B,YAAc,6BAoLV4+B,UC1NR,MAAMK,GAAY,IAAIC,MACzB,kqVC8BJ,MAAMC,WAAyBv1D,IAAMC,UAkBjCqJ,YAAY1L,GACR2L,MAAM3L,GADS,KAwFnB+xD,OAAS,CAACC,EAAOC,KACb9wE,KACA,MAAM6B,EAAMgvE,EAENv9C,EAAa9U,KAAKryB,MAAMsqF,gCAAkCR,GAA0B5+B,YAAc74B,KAAKK,MAAM4H,SAASD,SAGtHkwD,EAFkBl4D,KAAKK,MAAMjc,uBAESlC,OAAO0gD,GAAeA,EAAYv/C,MAAQA,GAEtF,GAAmC,IAA/B60E,EAAoB1zE,OAAc,CAIlC,OAFAjD,GADc,kFAAoD,+BAAK8B,EAAL,KAApD,KACiByxB,QAC/BgjD,GAAUK,OAId,IAAIthB,EAAiB,IAAI72C,KAAKK,MAAM3V,aACpC,MAAM0tE,EAA8B,GAC9BC,EAAyB,GAC/B,IAAK,MAAMz1B,KAAes1B,EAAqB,CAC3C,MAAM1kF,EAAKovD,EAAYpvD,GAEnBqjE,EAAe10D,SAAS3O,GACxB4kF,EAA4BxxD,KAAKg8B,GAGjCy1B,EAAuBzxD,KAAKg8B,GAIpC,MAAM01B,EAA6D,IAAlCD,EAAuB7zE,OAAe,uBAAmB,2BACpF+zE,EAAkB31B,GAAW,UAAOA,EAAYx1D,KAAnB,aAA4Bw1D,EAAYt/C,OAAxC,KACnC,GAAI80E,EAA4B5zE,OAAQ,CAGpCnD,GADgBqG,GAAoB0wE,EAA6BG,EADpD,UAAMD,EAAN,qCAAwDj1E,EAAxD,uBAEiByxB,GAGlC,GAAIujD,EAAuB7zE,OAAQ,CAG/BpD,GADgBsG,GAAoB2wE,EAAwBE,EAD/C,UAAMD,EAAN,qCAAwDj1E,EAAxD,6BAEoByxB,GAEjC+hC,EAAiB,IAAIA,KAAmBwhB,EAAuB/iF,IAAIstD,GAAeA,EAAYpvD,KAC9FwsB,KAAKK,MAAMm4D,gCAAgC3hB,KApIhC,KAwInB4hB,kCAAoC,KAChCz4D,KAAKkM,SAASsH,IAAsB,CAAEykD,iCAAkCzkD,EAAUykD,kCAC9E,KACQj4D,KAAKryB,MAAMsqF,iCACXz2E,QA5IG,KAiJnB8qD,SAAW,KACP9qD,KACAozE,IAAkB,EAAO50D,KAAKK,MAAMxtB,QAASmtB,KAAKK,MAAM4H,SAASD,WAnJlD,KAsJnBiuC,mBAAqB,CAACjyD,EAAMC,KACxB,MACMkyD,EAAgB,IADIn2C,KAAKK,MAAMtc,WACSC,OAAMC,eACpD+b,KAAKK,MAAMq4D,kCAAkCviB,IAzJ9B,KA4JnB6a,OAAS,CAACp6E,EAAOkN,KACb,MAAM60E,EAAiB34D,KAAKK,MAAMzc,QAClC,GAAI+0E,EAAe90E,YAAcjN,GAAS+hF,EAAe70E,QAAUA,EAAO,CACtE,MAAM2yD,EAAa,CACf5yD,UAAWjN,EACXkN,MAAOA,GAGXkc,KAAKK,MAAMu4D,+BAA+BniB,KApK/B,KAwKnBoiB,gBAAkB,CAACliF,EAAKggE,EAAU1b,EAAUnzC,KACxC,IAAI+uD,EAAiB,IAAI72C,KAAKK,MAAM3V,aAE/BisD,EAGIA,IAAaE,EAAe10D,SAASxL,EAAInD,KAC9CqjE,EAAejwC,KAAKjwB,EAAInD,IAHxBqjE,EAAiBA,EAAe30D,OAAO1O,GAAMA,IAAOmD,EAAInD,IAM5DwsB,KAAKK,MAAMm4D,gCAAgC3hB,IAlL5B,KAqLnBiiB,mBAAqB,CAACniB,EAAU3gD,KAC5B,IAAI6gD,EAAiB,IAAI72C,KAAKK,MAAM3V,aACpC,MAAMG,EAAMmL,EAAK1gB,IAAIqB,GAAOA,EAAInD,IAG5BqjE,EADAF,EACiB,IAAIE,KAAmBhsD,EAAI3I,OAAO1O,IAAOqjE,EAAe10D,SAAS3O,KAGjEqjE,EAAe30D,OAAO1O,IAAOqX,EAAI1I,SAAS3O,IAE/DwsB,KAAKK,MAAMm4D,gCAAgC3hB,IA/L5B,KAkMnBoZ,gBAAmBn7C,KTrLhB,SAAuBjqB,EAAKiqB,EAAY7lC,GAC3C6R,GAAMC,SlBNC,CACHpS,KlPsOmC,gCoQhOvC,MAAMoqF,EAAuB,CACzBluE,IAAKA,EAAIvV,IAAK9B,IAAD,CAAWA,GAAIA,MAGzBuW,KACF6Y,I3OoE4B,iC2OpEDm2D,GAC3B9uE,KAAM5C,IACH7F,KACA,MAAM9C,EAAS2I,EAAS7U,KAAKkM,OAC7B,IAAIs6E,EAAmB,IAAInuE,GACvBy4C,EAAY,GAQhB,GAPI5kD,GAAUA,EAAO8F,SACjB8+C,EAAY5kD,EAAOpJ,IAAKzJ,GAAUA,EAAM2H,IACxCwlF,EAAmBA,EAAiB92E,OAC/B1O,IAAQ8vD,EAAUnhD,SAAS3O,KAIhCwlF,EAAiBx0E,OAAQ,CAIzBpD,GAHkB,+BAA2B43E,EACxC1jF,IAAK9B,GAAOwhF,GAAmB/lF,EAAcuE,IAC7CgU,KAAK,MAFQ,KAGsBstB,GAE5C,GAAIwuB,EAAU9+C,OAAQ,CAUlBjD,GATsBmG,GAClBhJ,EACC1O,GAAD,UACOglF,GAAmB/lF,EAAce,EAAIwD,IAD5C,cAEQxD,EAAIipF,QAEZ,gEACCjpF,GAAQA,EAAIwD,IAEoBshC,GAEzCh0B,GAAMC,SAASinE,GAA0BgR,MAE5C9uE,MAAOre,IACJ,MAAMgC,EAAeoZ,GAAsBpb,GAC3CiV,GAAMC,SAASknE,GAAuBp6E,IAEtC2T,KACAD,GAAsB1T,EAAcinC,KSyIxCokD,CAAcl5D,KAAKK,MAAM3V,YAAaoqB,EAAY9U,KAAKK,MAAMjc,yBAnM9C,KAsMnB4oD,WAAa,CAAC36B,EAAO17B,KACjB,MAAMwiF,EAAoBj7D,GAA0BvnB,EAAInD,IACxDwsB,KAAKK,MAAMmG,QAAQI,KAAKuyD,EAAmB,CAAEjpC,kBAAmBt2B,GAAKsC,6BAxMtD,KA2MnBw7D,kBAAqB5iD,IACjB9U,KAAKkM,SAAS,CACV0rD,0BAA0B,IAE9Bp2E,KACAuzE,GAAkC/0D,KAAKK,MAAM3V,aACxCT,KAAKzX,IACFwtB,KAAKkM,SAAS,CACV0rD,0BAA0B,IAE9Bp2E,KACAJ,GAAwB,yEAA0E0zB,KACnG5qB,MAAMre,IACLm0B,KAAKkM,SAAS,CACV0rD,0BAA0B,IAE9Bp2E,KACAD,GAAsB1V,EAAM4F,QAASqjC,MA5N9B,KAgOnB6iD,0BAA4B,KACxB,MAAMjtE,EAAcsV,KAAKK,MAAM3V,YAC/B,GAA2B,IAAvBA,EAAYlG,QAAgBwb,KAAKryB,MAAMiqF,0BAA4B53D,KAAKK,MAAM1V,qBAC9E,OAAO,EAGX,MACMktE,EADc73D,KAAKK,MAAMjc,uBACMlC,OAAO3M,GAAOmV,EAAYvI,SAAS5M,EAAI/B,KAE5E,GAAIkX,EAAYlG,SAAWqzE,EAAiBrzE,OACxC,OAAO,EAGX,MAAM40E,EAAcvB,EAAiB,GAAGv0E,OAGxC,OAFwBu0E,EAAiBp8B,MAAMlmD,GAAOA,EAAI+N,SAAW81E,IA3OrEp5D,KAAKryB,MAAQ,CACTsqF,iCAAiC,EACjCL,0BAA0B,GAIlC/qD,oBACIulD,KAAOa,SAASziC,SAAU,CACtB0iC,eAAgB,CAAC,IACjBd,OAAQpyD,KAAKoyD,OACbiH,YAAa,SAAUC,OAK3B1E,IAAkB,EAAO50D,KAAKK,MAAMhc,wBAAyB2b,KAAKK,MAAM4H,SAASD,UAGrFgF,uBACIolD,KAAOe,WAAW3iC,UAGtB/sB,SACI,OACI,kBAACuG,GAAA,EAAD,CAAMtpB,UAAU,qBACZ,kBAACupB,GAAA,EAAD,CAAUvpB,UAAU,+BAChB,kBAAC,GAAD,CACI7N,QAASmtB,KAAKK,MAAMxtB,QACpBkf,eAAgBiO,KAAKK,MAAMk5D,8BAC3BriE,eAAgB8I,KAAKK,MAAMm5D,6BAC3BtqF,oBAAqB8wB,KAAKK,MAAMnxB,oBAChCo9D,SAAUtsC,KAAKssC,WAEnB,kBAACzlC,GAAA,EAAD,CAAKnmB,UAAU,mCACX,kBAAComB,GAAA,EAAD,KACI,kBAACD,GAAA,EAAD,CAAKnmB,UAAU,0DACX,kBAAComB,GAAA,EAAD,CAAKgK,GAAI,EAAGsK,GAAI,CAAE6C,KAAM,EAAGyB,OAAQ,IAAMh/B,UAAU,aAC/C,kBAAC26B,GAAA,EAAD,CACIC,OAAK,EACLnQ,MAAM,YACNhG,QAASnF,KAAKy4D,mCAHlB,kCAK0Bz4D,KAAKK,MAAM3V,YAAYlG,OALjD,MAOA,kBAAC,GAAD,CACI8iC,OAAQtnB,KAAKryB,MAAMsqF,gCACnBhpF,aAAc+wB,KAAKK,MAAMjc,uBACzBsG,YAAasV,KAAKK,MAAM3V,YACxBgsD,SAAU12C,KAAK64D,gBACfjiB,YAAa52C,KAAK84D,mBAClBtxC,SAAU,IAAMxnB,KAAKK,MAAMm4D,gCAAgC,IAC3D/wC,UAAW,IAAMznB,KAAKiwD,gBAAgBwH,GAA0B5+B,aAChEtR,SAAUvnB,KAAKy4D,kCACf9wC,YAAa,CAAC8vC,GAA0B5+B,aACxCzkB,WAAYpU,KAAKK,MAAM1V,uBAAyBqV,KAAKK,MAAM3V,YAAYlG,QAAUwb,KAAKryB,MAAMiqF,yBAC5FlwC,UAAW1nB,KAAKK,MAAM1V,qBACtB+sE,kBAAmB,IAAM13D,KAAK03D,kBAAkBD,GAA0B5+B,aAC1E8+B,0BAA2B33D,KAAK23D,4BAChCC,yBAA0B53D,KAAKryB,MAAMiqF,+BAMzD,kBAAC/wD,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,KACI,kBAAC,GAAD,CACI73B,aAAc+wB,KAAKK,MAAMpxB,aACzBC,oBAAqB8wB,KAAKK,MAAMnxB,oBAChCwb,YAAasV,KAAKK,MAAM3V,YACxBgsD,SAAU12C,KAAK64D,gBACfjiB,YAAa52C,KAAK84D,mBAClB9rB,WAAYhtC,KAAKgtC,WACjBppD,QAASoc,KAAKK,MAAMzc,QACpBotE,OAAQhxD,KAAKgxD,OACbjtE,WAAYic,KAAKK,MAAMtc,WACvBkyD,mBAAoBj2C,KAAKi2C,0BAqKzD,MAcM9vC,GAAoB,CACtBozD,8B3B/RyC,CAACttF,EAAK+H,KACxC,CACHrF,KlPiQJ,mCkPhQI1C,IAAKA,EACL+H,MAAOA,I2B4RXwlF,6B3BxRwC,KACjC,CACH7qF,KlP2PJ,oC6Q4BA6pF,gC3BrQ4C5sE,IACrC,CACHjd,KlPkOJ,qCkPjOIid,a2BmQJgtE,+B3BpR2Ch1E,IACpC,CACHjV,KlPuPJ,oCkPtPIiV,Y2BkRJ80E,kC3B9Q8C30E,IACvC,CACHpV,KlPkPJ,uCkPjPIoV,gB2B8QOolB,oBAAW1D,YAtBF93B,IACb,CACHyW,uBAAwBzW,EAAM2qB,MAAMhF,aAAalP,wBAA0B,GAC3EnV,aAActB,EAAM2qB,MAAMhF,aAAarkB,aACvCC,oBAAqBvB,EAAM2qB,MAAMhF,aAAapkB,oBAC9CmV,wBAAyB1W,EAAM2qB,MAAMhF,aAAajP,wBAClDxR,QAASlF,EAAM2qB,MAAMhF,aAAazgB,QAClC+Q,QAASjW,EAAM2qB,MAAMhF,aAAa1P,QAClCG,WAAYpW,EAAM2qB,MAAMhF,aAAavP,WACrC2G,YAAa/c,EAAM2qB,MAAMhF,aAAa5I,YACtCC,qBAAsBhd,EAAM2qB,MAAMhF,aAAa3I,uBAYJwb,GAAzBV,CAA4CuyD,K,OCjStE,MAAMyB,WAAqBh3D,IAAMC,UAAW,cAAD,yBAgOvCsrC,sBAAwB94D,GAEhB,kBAACi/C,GAAD,KACKj/C,GAnO0B,KAwOvCqhF,mBAAqB,CAACzmF,EAAU4a,KAC5B,IAAI8rE,EAAkB,GAEtB,IAAK,IAAIC,EAAM,EAAGA,EAAM3mF,EAAS0U,OAAQiyE,IAAO,CAC5C,MAAMC,EAAQ5mF,EAAS2mF,GAAKjjF,GACxBkX,EAAYvI,SAASu0E,IACrBF,EAAgB5vD,KAAK6vD,GAI7B,OAAOD,GAlP4B,KAqPvCG,2BAA8BhgF,IAAS,IAAD,IAClC,OACI,kBAAC,GAAD,CACI8+E,SAAU,gBAAkB9+E,EAAInD,GAChCyiF,WAAYv0C,OAAO/qC,EAAIgyE,MACvBwN,WAAYx/E,EAAIiyE,eAChBsN,yBAA0Bv/E,EAAIkyE,0BAC9B6M,eAAc,UAAE/+E,EAAI0sC,iBAAN,aAAE,EAAeylC,YAC/B6M,wBAAuB,UAAEh/E,EAAI0sC,iBAAN,aAAE,EAAe0lC,yBA/OpDtlD,SACI,GAAIzD,KAAKK,MAAMnxB,oBACX,OACI,kBAAC,GAAD,MAGR,IAAK8wB,KAAKK,MAAMpxB,aACZ,OAAO,qCAGX,MAAM8sC,EAAU,CACZ,CACIl4B,UAAW,KACX7U,KAAM,KACNitC,QAAS,cACTD,MAAM,EACNg1C,OAAQ,CAACp6E,EAAOkN,IAAUkc,KAAKK,MAAM2wD,OAAOp6E,EAAOkN,GACnD8vB,QAAQ,GAEZ,CACI/vB,UAAW,YACX7U,KAAM,qBACNitC,QAAS,4BACTD,MAAM,EACNW,UAAYpC,GAASA,EAAO3mC,KAAO2mC,GAAM1mC,O1LxD9B,c0LwDoD,GAC/D86C,MAAO,QACPC,YAAa,SAEjB,CACI/qC,UAAW,MACX7U,KAAM,WACNitC,QAAS,cACTD,MAAM,EACNg1C,OAAQ,CAACp6E,EAAOkN,IAAUkc,KAAKK,MAAM2wD,OAAOp6E,EAAOkN,IAEvD,CACID,UAAW,OACX7U,KAAM,gBACNitC,QAAS,cACTD,MAAM,EACNg1C,OAAQ,CAACp6E,EAAOkN,IAAUkc,KAAKK,MAAM2wD,OAAOp6E,EAAOkN,IAEvD,CACID,UAAW,cACX7U,KAAM,cACNitC,QAAS,cACTD,MAAM,EACNg1C,OAAQ,CAACp6E,EAAOkN,IAAUkc,KAAKK,MAAM2wD,OAAOp6E,EAAOkN,IAEvD,CACID,UAAW,QACX7U,KAAM,UACNitC,QAAS,cACTD,MAAM,EACNg1C,OAAQ,CAACp6E,EAAOkN,IAAUkc,KAAKK,MAAM2wD,OAAOp6E,EAAOkN,IAEvD,CACID,UAAW,iBACX7U,KAAM,mBACNitC,QAAS,cACTD,MAAM,EACNg1C,OAAQ,CAACp6E,EAAOkN,IAAUkc,KAAKK,MAAM2wD,OAAOp6E,EAAOkN,IAEvD,CACID,UAAW,aACX7U,KAAM,qBACNitC,QAAS,aACTD,MAAM,EACNg1C,OAAQ,CAACp6E,EAAOkN,IAAUkc,KAAKK,MAAM2wD,OAAOp6E,EAAOkN,IAEvD,CACID,UAAW,SACX7U,KAAM,OACNitC,QAAS,aACTD,MAAM,EACNg1C,OAAQ,CAACp6E,EAAOkN,IAAUkc,KAAKK,MAAM2wD,OAAOp6E,EAAOkN,IAEvD,CACID,UAAW,eACX7U,KAAM,UACNitC,QAAS,aACT0S,MAAO,SACPC,YAAa,SACb5S,MAAM,EACNW,UAAW,CAACC,EAAajmC,IACrB,kBAAC,GAAD,CACIwX,OAAQxX,EAAIwX,OAAOxV,MACnBhK,KAAMmqC,GAAmBniC,EAAIwX,OAAOna,OACpC0M,UAAU,mBAItB,CACImD,UAAW,kBACX7U,KAAM,gBACNitC,QAAS,aACT0S,MAAO,QACPC,YAAa,QACb5S,MAAM,EACNg1C,OAAQ,CAACp6E,EAAOkN,IAAUkc,KAAKK,MAAM2wD,OAAOp6E,EAAOkN,GACnD64B,UAAW0G,GACP,kBAAC,GAAD,CACIl1B,OAAQk1B,EACR10C,KAAM+lC,GAAkB2O,GACxB3iC,UAAU,mBAItB,CACImD,UAAW,GACX7U,KAAM,UACNitC,QAAS,mCAGTU,UAAW,CAACD,EAAM/lC,IAAQqpB,KAAK22D,2BAA2BhgF,KAI5DkhE,EAAY,CACdt5C,KAAM,WACN3S,SAAUoU,KAAKK,MAAM3V,YAErBotD,eAAe,EACfC,kBAAmB,QAAC,KAAEx5C,EAAF,QAAQgzC,EAAR,SAAiBrsC,GAAlB,SACf,kBAAC,GAAD,CAAUlxB,MAAOu9D,EAASpsC,QAAS,OAAWzkB,UAAU,UAE5Dg2D,SAAU,CAAC//D,EAAKggE,EAAU1b,EAAUnzC,KAChCkY,KAAKK,MAAMq2C,SAAS//D,EAAKggE,EAAU1b,EAAUnzC,IAEjD8uD,YAAa,CAACD,EAAU3gD,KACpBgK,KAAKK,MAAMu2C,YAAYD,EAAU3gD,IAErCgiD,wBAAyB,IAAuC,IAAtC,KAAEz5C,EAAF,QAAQgzC,EAAR,cAAiBC,GAAoB,EAC3D,OAAO,kBAAC,GAAD,CAAiBD,QAASA,EAASC,cAAeA,MAI3Djb,EAAa,CAAC5/C,EAAKskD,IACd,UAGLD,EAAY,CACd71B,QAAS,CAACrd,EAAGnR,EAAKskD,KACdj7B,KAAKK,MAAM2sC,WAAWllD,EAAGnR,KAI3B06E,EAAoB,CACtBC,QAAQ,EACRttE,KAAMgc,KAAKK,MAAMtc,WAAWC,KAC5BC,YAAa+b,KAAKK,MAAMtc,WAAWE,aAAe+b,KAAKK,MAAMtc,WAAWG,SACxE8rD,UAAWhwC,KAAKK,MAAMtc,WAAWG,SACjCC,gBAAiB6b,KAAKK,MAAMtc,WAAWI,gBACvCssD,oBAAqB,CAACxsD,EAAaD,KAC/Bgc,KAAKK,MAAM41C,mBAAmBjyD,EAAMC,IAExCssD,aAAc,CAACvsD,EAAMC,KACjB+b,KAAKK,MAAM41C,mBAAmBjyD,EAAMC,KAKtCq5B,EAAgB,CAACtd,KAAKK,MAAMzc,SAE5BstE,EAAuBlxD,KAAKguC,sBAAsB,uBAAGttD,UAAU,mBAAb,sDAExD,OACI,kBAAC,sBAAD,CACIqD,WAAYytE,KAAkBH,IAG1B,QAAC,gBACGI,EADH,qBAEGC,GAFJ,SAII,oCACI,kBAAC7qD,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,KACI,kBAAC,KAAD,eACIiW,YAAU,EACVC,UAAU,EACVf,QAAQ,wCACRgB,eAAe,gDACfC,SAAS,KACT1qC,KAAMwtB,KAAKK,MAAMpxB,aACjB8sC,QAASA,EACTsB,iBAAkB6zC,EAClBrZ,UAAWA,EACXthB,WAAYA,EACZyE,UAAWA,EACX1d,cAAeA,GACXo0C,MAIhB,kBAAC7qD,GAAA,EAAD,CAAKnmB,UAAU,QACX,kBAAComB,GAAA,EAAD,CAAKpmB,UAAU,aACX,kBAAC,GAAD,eACIyvD,uBAAuB,WACnBshB,UA8C7BgI,UCnQf,MAAMC,WAA2Bj3D,IAAMC,UAAW,cAAD,yBAkN7ColD,aAAe77E,GAAO+H,IAClBgsB,KAAKK,MAAMtO,eAAe9lB,EAAK+H,IAnNU,KAsN7C2lF,2BAA6B,KACR35D,KAAKK,MAAM7wB,iBAAmB,IAC/B0S,OAAOiM,GAAU4qB,GAAuBC,iBAAiB72B,SAASgM,EAAO3a,KAtM7Fq5B,oBAEI/iB,GAAgBkW,KAAKK,MAAM/d,YAC3B62B,GAAgBnZ,KAAKK,MAAMjxB,YAC3BgqC,GAAkBpZ,KAAKK,MAAMhxB,cAE7BoqC,GAAqBzZ,KAAKK,MAAM7wB,iBAChCkqC,GAAwB1Z,KAAKK,MAAM5wB,oBAKvCg0B,SACI,OACI,kBAACs1B,GAAA,EAAD,KACI,kBAAClyB,GAAA,EAAD,CAAKnmB,UAAU,yCACX,kBAAComB,GAAA,EAAD,CAAKpmB,UAAU,IACX,kBAACmmB,GAAA,EAAD,CAAKnmB,UAAU,wDACX,kBAAComB,GAAA,EAAD,CAAKpmB,UAAU,aACX,0BAAMA,UAAU,WAAhB,mBAEHsf,KAAKK,MAAM0nD,cACR,kBAACjhD,GAAA,EAAD,CAAKsU,GAAI,EAAGtK,GAAI,EAAGpwB,UAAU,mBACxBsf,KAAKK,MAAM0nD,eAIxB,kBAAClhD,GAAA,EAAD,CAAKnmB,UAAU,2BACX,kBAAComB,GAAA,EAAD,CAAKgK,GAAI,CAAEmN,KAAM,EAAGn6B,MAAO,GAAKpD,UAAU,QACtC,kBAAC,GAAD,CAAaqzB,YAAY,MACrBplC,KAAK,SACLqF,MAAOgsB,KAAKK,MAAMxtB,QAAQwQ,IAC1B3C,UAAU,OACV0xB,SAAUpS,KAAK8nD,aAAa,UAGpC,kBAAChhD,GAAA,EAAD,CAAKgK,GAAI,CAAEmN,KAAM,EAAGn6B,MAAO,GAAKpD,UAAU,QACtC,kBAAC,GAAD,CAAaqzB,YAAY,eACrB//B,MAAOgsB,KAAKK,MAAMxtB,QAAQzF,KAC1BsT,UAAU,OACV0xB,SAAUpS,KAAK8nD,aAAa,WAepC,kBAAChhD,GAAA,EAAD,CAAKgK,GAAI,CAAEmN,KAAM,EAAGn6B,MAAO,GAAKpD,UAAU,QACtC,kBAAC,GAAD,CAAQnF,QAASykB,KAAKK,MAAMjxB,WACxBmsC,aAAW,EACXvnC,MAAOgsB,KAAKK,MAAMxtB,QAAQ0Q,SAC1BwwB,YAAY,aACZrzB,UAAU,OACV86B,eAAiBC,GAAWA,EAAOnD,YACnCoD,eAAiBD,GAAWA,EAAOznC,MACnCo+B,SAAUpS,KAAK8nD,aAAa,eAGpC,kBAAChhD,GAAA,EAAD,CAAKgK,GAAI,CAAEmN,KAAM,EAAGn6B,MAAO,GAAKpD,UAAU,QACtC,kBAAC,GAAD,CAAQnF,QAASykB,KAAK25D,6BAClBp+C,aAAW,EACXvnC,MAAOgsB,KAAKK,MAAMxtB,QAAQsb,OAC1BqtB,eAAiBC,GAAWA,EAAOznC,MACnC+/B,YAAY,YACZ3B,SAAUpS,KAAK8nD,aAAa,UAC5BpnE,UAAU,UAGlB,kBAAComB,GAAA,EAAD,CAAKgK,GAAI,CAAEmN,KAAM,EAAGn6B,MAAO,GAAKpD,UAAU,QACtC,kBAAC,GAAD,CACInF,QAASykB,KAAKK,MAAM/d,WACpBi5B,aAAW,EACXm4B,cAAY,EACZ1/D,MAAOgsB,KAAKK,MAAMxtB,QAAQyQ,OAC1BywB,YAAY,cACZyH,eAAiBC,GAAWA,EAAO9iC,MACnC+iC,eAAiBD,GAAWA,EAAOznC,MACnCo+B,SAAUpS,KAAK8nD,aAAa,UAC5BpnE,UAAU,UAGlB,kBAAComB,GAAA,EAAD,CAAKgK,GAAI,CAAEmN,KAAM,EAAGn6B,MAAO,GAAKpD,UAAU,QACtC,kBAAC,GAAD,CAAQnF,QAASykB,KAAKK,MAAMhxB,aACxBksC,aAAW,EACXvnC,MAAOgsB,KAAKK,MAAMxtB,QAAQlE,KAC1BolC,YAAY,oBACZrzB,UAAU,OACV86B,eAAiBC,GAAWA,EAAOznC,MACnC0nC,eAAiBD,GAAWA,EAAOznC,MACnCo+B,SAAUpS,KAAK8nD,aAAa,WAwBpC,kBAAChhD,GAAA,EAAD,CAAKgK,GAAI,CAAEmN,KAAM,EAAGn6B,MAAO,GAAKpD,UAAU,QACtC,kBAAC,GAAD,CACI1M,MAAOgsB,KAAKK,MAAMxtB,QAAQ2X,WAC1B4nB,SAAUp+B,GAASgsB,KAAK8nD,aAAa,aAAlB9nD,CAAgChsB,GAAS,OAGpE,kBAAC8yB,GAAA,EAAD,CAAKgK,GAAI,CAAEmN,KAAM,EAAGn6B,MAAO,GAAKpD,UAAU,QACtC,kBAAC,GAAD,CACInF,QAASykB,KAAKK,MAAM5wB,mBACpB8rC,aAAW,EACXvnC,MAAOgsB,KAAKK,MAAMxtB,QAAQ4Q,WAC1BswB,YAAY,eACZ3B,SAAUpS,KAAK8nD,aAAa,cAC5BpnE,UAAU,UAyBlB,kBAAComB,GAAA,EAAD,CAAKgK,GAAI,CAAEmN,KAAM,EAAGn6B,MAAO,GAAKpD,UAAU,QACtC,kBAAC26B,GAAA,EAAD,CACIQ,SAAO,EACPP,OAAK,EACLnQ,MAAM,UACNzqB,UAAU,YACVykB,QAASnF,KAAKK,MAAMnJ,gBALxB,uBAUJ,kBAAC4P,GAAA,EAAD,CAAKgK,GAAI,CAAEmN,KAAM,EAAGn6B,MAAO,IAAMpD,UAAU,QACvC,kBAAC26B,GAAA,EAAD,CACI1sC,KAAK,SACL2sC,OAAK,EACLnQ,MAAM,UACNzqB,UAAU,YACVykB,QAAUrd,IACNA,EAAE0wC,iBACFx4B,KAAKK,MAAMisC,YAEfpnC,SAAUlF,KAAKK,MAAMnxB,qBAEpB8wB,KAAKK,MAAMnxB,oBAAsB,kBAAC,GAAD,MAAuB,cAxMvFwqF,GA4BKE,YAAc,aA6MVn0D,mBAZS93B,IACb,CACH2U,WAAY3U,EAAM6qB,QAAQlW,WAE1BlT,WAAYzB,EAAMmC,SAASV,WAC3BC,aAAc1B,EAAMmC,SAAST,aAE7BG,gBAAiB7B,EAAMmC,SAASN,gBAChCC,mBAAoB9B,EAAMmC,SAASL,qBAI5Bg2B,CAAyBi0D,IC5NjC,MAAMG,GACG,aADHA,GAEC,WAFDA,GAGH,OAHGA,GAIY,sBAJZA,GAKG,aALHA,GAMS,mBANTA,GAOI,cAGjB,MAAMC,WAAyBr3D,IAAMC,UAsBjCqJ,YAAY1L,GAAQ,IAAD,EACf2L,MAAM3L,GADS,YA2BnB+xD,OAAS,CAACC,EAAOC,KACb9wE,KACA,MAAM6B,EAAMgvE,EAEZryD,KAAKK,MAAM05D,kCACX/5D,KAAKK,MAAM25D,iCAAiC,MAAO32E,GAGnDhC,GADc,mDAAqB,+BAAKgC,EAAL,KAArB,KACgB2c,KAAKK,MAAM4H,SAASD,UAClD0gD,IAAqB,EAAO1oD,KAAKK,MAAMxtB,QAASmtB,KAAKK,MAAM4H,SAASD,WApCrD,KAogBnBiyD,2BAA6B,SAACpvE,GAA8B,IAAzBqvE,EAAwB,uDAAT,KAC9C,MAAMzmE,EAAc,EAAK4M,MAAMjc,wBAA0B,GACnD+1E,EAAW,GACjB,IAAKtvE,GAAsB,IAAfA,EAAIrG,SAAiBiP,EAC7B,OAAO0mE,EAGND,IACDA,EAAe,CAACL,GAAyBA,GAAuBA,GAAmBA,GAAkCA,GAAyBA,GAA+BA,KAEjL,MAAMO,EAAmB,GACnBC,EAAgC,GAChCC,EAAkB,GAClBC,EAAgC,GAChCC,EAA6B,GAC7BC,EAAwB,GACxBC,EAAuB,GAE7B,IAAK,MAAMlnF,KAAMqX,EAAK,CAClB,MAAMtV,EAAM,EAAKolF,gBAAgBlnE,EAAajgB,GAC9C,GAAK+B,EAIE,CACH,MAAM8N,EAAM9N,EAAI8N,IACVmsB,EAAcj6B,EAAI4Y,QAAU5Y,EAAI4Y,OAAOna,MACvC4mF,EAAgBrlF,EAAI8tC,WAAa9tC,EAAI8tC,UAAUrvC,MACjDkmF,EAAa/3E,SAAS03E,MAAiD,IAAvBtkF,EAAIqzE,gBACpDyR,EAA8BzzD,KAAKvjB,GAEnC62E,EAAa/3E,SAAS03E,KAAqCtkF,EAAIszE,0BAA4B,GAC3F0R,EAA8B3zD,KAAKvjB,GAEnC62E,EAAa/3E,SAAS03E,KAAsBn4C,OAAOnsC,EAAIozE,MAAQ,GAC/D2R,EAAgB1zD,KAAKvjB,GAErB62E,EAAa/3E,SAAS03E,KAA4BvlD,GAAoBG,GAAGtyB,SAASy4E,IAClFF,EAAqB9zD,KAAKvjB,GAE1B62E,EAAa/3E,SAAS03E,KAAkCrqF,KAAgCggC,GACxFgrD,EAA2B5zD,KAAKvjB,GAEhC62E,EAAa/3E,SAAS03E,KAA6BrqF,KAAmCggC,GAAe8E,GAAoBE,IAAIryB,SAASy4E,IACtIH,EAAsB7zD,KAAKvjB,QAvB3B62E,EAAa/3E,SAAS03E,KACtBO,EAAiBxzD,KAAKpzB,GAiDlC,OAtBI4mF,EAAiB51E,QACjB21E,EAASvzD,KAAK,8BAAM,2BAAIwzD,EAAiB51E,QAA3B,4CAEd61E,EAA8B71E,QAC9B21E,EAASvzD,KAAK,iGAAmE,2BAAIyzD,EAA8B7yE,KAAK,OAA1G,MAEd+yE,EAA8B/1E,QAC9B21E,EAASvzD,KAAK,+FAA8D,2BAAI2zD,EAA8B/yE,KAAK,OAArG,MAEd8yE,EAAgB91E,QAChB21E,EAASvzD,KAAK,8EAAgD,2BAAI0zD,EAAgB9yE,KAAK,OAAzE,MAEdkzE,EAAqBl2E,QACrB21E,EAASvzD,KAAK,+DAAoC,2BAAI8zD,EAAqBlzE,KAAK,OAAlE,MAEdgzE,EAA2Bh2E,QAC3B21E,EAASvzD,KAAK,2EAAgD,2BAAI4zD,EAA2BhzE,KAAK,OAApF,MAEdizE,EAAsBj2E,QACtB21E,EAASvzD,KAAK,8EAAgD,2BAAI6zD,EAAsBjzE,KAAK,OAA/E,MAGX2yE,GA3kBQ,KA8kBnBU,4BAA+BhwE,GACpBmV,KAAKi6D,2BAA2BpvE,EAAK,MA/kB7B,KAwlBnBiwE,gBAAmBjwE,IACf,MAAM4I,EAAcuM,KAAKK,MAAMjc,uBAC/B,IAAKyG,GAAsB,IAAfA,EAAIrG,SAAiBiP,EAC7B,MAAO,GAMX,OAHmBA,EAAYvR,OAAO3M,GAAOsV,EAAI1I,SAAS5M,EAAI/B,KACrB0O,OAAO3M,GAAOA,EAAI4Y,QAAU5Y,EAAI4Y,OAAOna,QAAUxE,KA/lB3E,KAomBnBurF,wBAA2BlwE,IACvB,MAAM4I,EAAcuM,KAAKK,MAAMjc,uBAC/B,IAAKyG,GAAsB,IAAfA,EAAIrG,SAAiBiP,EAC7B,MAAO,GAMX,OAHmBA,EAAYvR,OAAO3M,GAAOsV,EAAI1I,SAAS5M,EAAI/B,KAChB0O,OAAO3M,GAAOA,EAAI4Y,QAAU5Y,EAAI4Y,OAAOna,QAAUxE,KA3mBhF,KAgnBnBmrF,gBAAkB,CAAC1rF,EAAcuE,KAC7B,IAAK,MAAM+B,KAAOtG,EACd,GAAIsG,EAAI/B,KAAOA,EACX,OAAO+B,EAGf,OAAO,MAtnBQ,KAynBnBy/E,mBAAqB,CAAC/lF,EAAcuE,KAChC,MAAM+B,EAAMyqB,KAAK26D,gBAAgB1rF,EAAcuE,GAC/C,OAAO+B,EAAMA,EAAI8N,IAAP,UAAgB7P,EAAhB,UA3nBK,KA8nBnB84D,SAAW,KACP9qD,KACAknE,IAAqB,EAAO1oD,KAAKK,MAAMxtB,QAASmtB,KAAKK,MAAM4H,SAASD,WAhoBrD,KAmoBnBiuC,mBAAqB,CAACjyD,EAAMC,KACxB,MACMkyD,EAAgB,IADIn2C,KAAKK,MAAMtc,WACSC,OAAMC,eACpD+b,KAAKK,MAAM26D,qCAAqC7kB,IAtoBjC,KAyoBnB6a,OAAS,CAACp6E,EAAOkN,KACb,MAAM60E,EAAiB34D,KAAKK,MAAMzc,QAClC,GAAI+0E,EAAe90E,YAAcjN,GAAS+hF,EAAe70E,QAAUA,EAAO,CACtE,MAAM2yD,EAAa,CACf5yD,UAAWjN,EACXkN,MAAOA,GAGXkc,KAAKK,MAAM46D,kCAAkCxkB,KAjpBlC,KAqpBnBoiB,gBAAkB,CAACliF,EAAKggE,EAAU1b,EAAUnzC,KACxC,IAAI+uD,EAAiB,IAAI72C,KAAKK,MAAM3V,aAE/BisD,EAGIA,IAAaE,EAAe10D,SAASxL,EAAInD,KAC9CqjE,EAAejwC,KAAKjwB,EAAInD,IAHxBqjE,EAAiBA,EAAe30D,OAAO1O,GAAMA,IAAOmD,EAAInD,IAM5DwsB,KAAKK,MAAM66D,2BAA2BrkB,IA/pBvB,KAkqBnBiiB,mBAAqB,CAACniB,EAAU3gD,KAC5B,IAAI6gD,EAAiB,IAAI72C,KAAKK,MAAM3V,aACpC,MAAMG,EAAMmL,EAAK1gB,IAAIqB,GAAOA,EAAInD,IAG5BqjE,EADAF,EACiB,IAAIE,KAAmBhsD,EAAI3I,OAAO1O,IAAOqjE,EAAe10D,SAAS3O,KAGjEqjE,EAAe30D,OAAO1O,IAAOqX,EAAI1I,SAAS3O,IAE/DwsB,KAAKK,MAAM66D,2BAA2BrkB,IA5qBvB,KA+qBnB7J,WAAa,CAAC36B,EAAO17B,KACjB,MAAMwiF,EAAoBj7D,GAA0BvnB,EAAInD,IACxDwsB,KAAKK,MAAMmG,QAAQI,KAAKuyD,EAAmB,CAAEjpC,kBAAmBt2B,GAAKuC,wBA9qBrE6D,KAAKryB,MAAQ,CACTwtF,qBAAqB,EACrBC,uBAAuB,EACvBC,kBAAmB,KACnBC,iBAAkB,GAClBC,6BAA8B,KAC9BnR,0BAA0B,EAC1BoR,eAAe,GAIvB3uD,oBACI67C,IAAqB,EAAO1oD,KAAKK,MAAMhc,wBAAyB2b,KAAKK,MAAM4H,SAASD,UAEpFoqD,KAAOa,SAASziC,SAAU,CACtB0iC,eAAgB,CAAC,IACjBd,OAAQpyD,KAAKoyD,SAIrBplD,uBACIolD,KAAOe,WAAW3iC,UAetB/sB,SACI,OACI,kBAACuG,GAAA,EAAD,CAAMtpB,UAAU,sBACZ,kBAACupB,GAAA,EAAD,CAAUvpB,UAAU,gCAChB,kBAAC,GAAD,CACI7N,QAASmtB,KAAKK,MAAMxtB,QACpBkf,eAAgBiO,KAAKK,MAAM25D,iCAC3B9iE,eAAgB8I,KAAKK,MAAM05D,gCAC3B7qF,oBAAqB8wB,KAAKK,MAAMnxB,oBAChCo9D,SAAUtsC,KAAKssC,WAEnB,kBAACzlC,GAAA,EAAD,CAAKnmB,UAAU,mCACX,kBAAComB,GAAA,EAAD,KACI,kBAACD,GAAA,EAAD,CAAKnmB,UAAU,0DACX,kBAAComB,GAAA,EAAD,CAAK2D,GAAI,CAAEwT,KAAM,GAAIn6B,MAAO,GAAKgtB,GAAI,CAAEmN,KAAM,EAAGn6B,MAAO,GAAKs3B,GAAI,CAAE6C,KAAM,EAAGn6B,MAAO,GAAKpD,UAAU,aAC7F,kBAAC26B,GAAA,EAAD,CACIlQ,MAAM,OACNjG,UAAWlF,KAAKK,MAAM3V,YAAYlG,QAAUwb,KAAKK,MAAMnU,wBAA0B8T,KAAKK,MAAMjU,8BAAgC4T,KAAKK,MAAMlU,wBACvIgZ,QAAS,IAAMnF,KAAKK,MAAM66D,2BAA2B,KAHzD,qBAKoBl7D,KAAKK,MAAM3V,YAAYlG,OAL3C,MAQJ,kBAACsiB,GAAA,EAAD,CAAK2D,GAAI,CAAEwT,KAAM,GAAIn6B,MAAO,GAAKgtB,GAAI,CAAEmN,KAAM,EAAGn6B,MAAO,GAAKs3B,GAAI,CAAE6C,KAAM,EAAGyB,OAAQ,GAAKh/B,UAAU,aAC7Fsf,KAAKy7D,qCAEV,kBAAC30D,GAAA,EAAD,CAAK2D,GAAI,CAAEwT,KAAM,GAAIn6B,MAAO,GAAKgtB,GAAI,CAAEmN,KAAM,EAAGn6B,MAAO,GAAKs3B,GAAI,EAAG16B,UAAU,aACxEsf,KAAK07D,kDAEV,kBAAC50D,GAAA,EAAD,CAAK2D,GAAI,CAAEwT,KAAM,GAAIn6B,MAAO,GAAKgtB,GAAI,CAAEmN,KAAM,EAAGn6B,MAAO,GAAKs3B,GAAI,EAAG16B,UAAU,aACxEsf,KAAK27D,0CAKtB,kBAAC90D,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,KACI,kBAAC,GAAD,CACI73B,aAAc+wB,KAAKK,MAAMpxB,aACzBC,oBAAqB8wB,KAAKK,MAAMnxB,oBAChCwb,YAAasV,KAAKK,MAAM3V,YACxBgsD,SAAU12C,KAAK64D,gBACfjiB,YAAa52C,KAAK84D,mBAClB9rB,WAAYhtC,KAAKgtC,WACjBppD,QAASoc,KAAKK,MAAMzc,QACpBotE,OAAQhxD,KAAKgxD,OACbjtE,WAAYic,KAAKK,MAAMtc,WACvBkyD,mBAAoBj2C,KAAKi2C,yBASrDwlB,oCACI,IAAI3mD,EAAa,iCACjB,MAAMpqB,EAAcsV,KAAKK,MAAM3V,YACzB+I,EAAcuM,KAAKK,MAAMjc,wBAA0B,GACnDmjC,EAAW,KACb/lC,KAEIwe,KAAKryB,MAAM6tF,gBACX9S,IAAqB,EAAO1oD,KAAKK,MAAMhc,wBAAyB2b,KAAKK,MAAM4H,SAASD,UACpFhI,KAAKkM,SAAS,CAAEsvD,eAAe,KAGnCx7D,KAAKkM,SAASsH,IAAsB,CAAE2nD,qBAAsB3nD,EAAU2nD,wBAwD1E,IAAIjmF,EAAU,uBAAGwL,UAAU,cAAb,WAAkC,2BAAIgK,EAAYlG,QAAlD,iCACd,MAAM21E,EAAWn6D,KAAKi6D,2BAA2BvvE,GAC7CyvE,EAAS31E,SACTtP,EACI,oCACKA,EACD,uBAAGwL,UAAU,cAAb,6BAGA,4BACKy5E,EAAS7kF,IAAI,CAACsmF,EAAS7zE,IAAM,wBAAIrH,UAAU,aAAazU,IAAK8b,GAAI6zE,OAMlF,MACM3mB,EADuBj1C,KAAK86D,gBAAgBpwE,GACJlG,SAAWkG,EAAYlG,SAAWkG,EAAYlG,QAAUwb,KAAKK,MAAMnU,wBAA0B8T,KAAKK,MAAMlU,wBAEtJ,OACI,oCACI,kBAACkvB,GAAA,EAAD,CACIC,OAAK,EACLnQ,MAAM,YACNjG,SAAU+vC,EACV9vC,QAASoiB,GAERvnB,KAAKK,MAAMnU,uBACR,kBAAC,GAAD,MADH,gBAGY8T,KAAKK,MAAM3V,YAAYlG,OAHnC,kCAML,kBAAC,GAAD,CACI8iC,OAAQtnB,KAAKryB,MAAMwtF,oBACnB5zC,SAAUA,EACVC,SAAUD,EACVE,UA3FU,KAClBjmC,K3BpHL,SAAyBqJ,GAC5B/J,GAAMC,SCHC,CACHpS,KtPwPJ,0CqPrPA,MAAMoqF,EAAuB,CACzBluE,IAAKA,EAAIvV,IAAK9B,IAAD,CAAWA,GAAIA,MAGhC,OAAOuW,KACF6Y,I5NiE4B,iC4NjEDm2D,GAC3B9uE,KAAM5C,IACH,MAAM3I,EAAS2I,EAAS7U,KAAKkM,OAC7B,IAAIs6E,EAAmB,IAAInuE,GACvBy4C,EAAY,GAUhB,OATI5kD,GAAUA,EAAO8F,SACjB8+C,EAAY5kD,EAAOpJ,IAAKzJ,GAAUA,EAAM2H,IACxCwlF,EAAmBA,EAAiB92E,OAC/B1O,IAAQ8vD,EAAUnhD,SAAS3O,KAGpCsN,GAAMC,SCfiC8J,KACxC,CACHlc,KtPoPJ,0CsPnPIkc,QDaQgxE,CAAmC7C,IAEhC3xE,IAEV6C,MAAOre,IACJ,MAAMgC,EAAeoZ,GAAsBpb,GAE3C,MADAiV,GAAMC,SCf8BlV,KACrC,CACH8C,KtP+OJ,uCsP9OI9C,UDYmBiwF,CAAgCjuF,IACzCsc,MAAMtc,K2B2FZkuF,CAAgBrxE,GACXT,KAAK5C,IACF7F,KACA,MAAM9C,EAAS2I,EAAS7U,KAAKkM,OAC7B,IAAIs6E,EAAmB,IAAItuE,GACvB44C,EAAY,GAEZ5kD,GAAUA,EAAO8F,SACjB8+C,EAAY5kD,EAAOpJ,IAAKzJ,GAAUA,EAAM2H,IACxCwlF,EAAmBA,EAAiB92E,OAC/B1O,IAAQ8vD,EAAUnhD,SAAS3O,KAGpC,MAAMwoF,EACF14B,EAAU9+C,OAAS,EAAIswB,EAAa9U,KAAKK,MAAM4H,SAASD,UAAY8M,EAExE,GAAIkkD,EAAiBx0E,OAAQ,CAKzBpD,GAJkB,+BAA2B43E,EACxC1jF,IAAK9B,GAAOwsB,KAAKg1D,mBAAmBvhE,EAAajgB,IACjDgU,KAAK,MAFQ,KAIsBw0E,GAG5C,GAAI14B,EAAU9+C,OAAQ,CAQlBjD,GAPsBmG,GAClBhJ,EACC1O,GAAD,UACOgwB,KAAKg1D,mBAAmBvhE,EAAazjB,EAAIwD,IADhD,cACyDxD,EAAIipF,QAC7D,gEACCjpF,GAAQA,EAAIwD,IAEoBwoF,GAGrChD,EAAiBx0E,SAAWkG,EAAYlG,QACxCwb,KAAKkM,SAAS,CAAEivD,qBAAqB,EAAOK,eAAe,IAC3D9S,IAAqB,EAAO1oD,KAAKK,MAAMhc,wBAAyB2b,KAAKK,MAAM4H,SAASD,WAE/EgxD,EAAiBx0E,QACtBwb,KAAKkM,SAAS,CACVsvD,eAAe,MAI1BtxE,MAAMre,IACH2V,KACAD,GAAsB1V,EAAM4F,QAASqjC,MA2CrCsS,kBAAkB,UAClBhnB,MAAM,+BACNgU,WAAYpU,KAAKK,MAAMnU,uBACvBw7B,UAAW1nB,KAAKK,MAAMnU,uBACtBy7B,YAAa,CAAC7S,IAEb5/B,IAOjBwmF,iDACI,IAAI5mD,EAAa,sCACjB,MAAMpqB,EAAcsV,KAAKK,MAAM3V,YAEzB68B,EAAW,KACb/lC,KAEIwe,KAAKryB,MAAM6tF,gBACX9S,IAAqB,EAAO1oD,KAAKK,MAAMhc,wBAAyB2b,KAAKK,MAAM4H,SAASD,UACpFhI,KAAKkM,SAAS,CAAEsvD,eAAe,KAEnCx7D,KAAKkM,SAASsH,IAAsB,CAAE42C,0BAA2B52C,EAAU42C,6BAE/E,IA6CIl1E,EAAU,uBAAGwL,UAAU,cAAb,WAAkC,2BAAIgK,EAAYlG,QAAlD,oBACd,MAAM21E,EAAWn6D,KAAKi8D,uCAAuCj8D,KAAKK,MAAM3V,aACpEyvE,EAAS31E,SACTtP,EACI,oCACKA,EACD,uBAAGwL,UAAU,cAAb,6BAGA,4BACKy5E,EAAS7kF,IAAI,CAACsmF,EAAS7zE,IAAM,wBAAIrH,UAAU,aAAazU,IAAK8b,GAAI6zE,OAMlF,MACM3mB,EADgCj1C,KAAK+6D,wBAAwBrwE,GACZlG,SAAWkG,EAAYlG,SAAWkG,EAAYlG,QAAUwb,KAAKK,MAAMjU,8BAAgC4T,KAAKK,MAAMnU,wBAA0B8T,KAAKK,MAAMlU,wBAE1M,OACI,oCACI,kBAACkvB,GAAA,EAAD,CACIC,OAAK,EACLnQ,MAAM,YACNjG,SAAU+vC,EACV9vC,QAASoiB,GAERvnB,KAAKK,MAAMjU,6BACR,kBAAC,GAAD,MADH,kBAGc1B,EAAYlG,OAH1B,YAG2D,IAAvBkG,EAAYlG,OAAe,eAAiB,kBAGrF,kBAAC,GAAD,CACI8iC,OAAQtnB,KAAKryB,MAAMy8E,yBACnB7iC,SAAUA,EACVC,SAAUD,EACVE,UAlFQ,KAChBjmC,KAEA,MAAMkC,EAAYsc,KAAKryB,MAAM4tF,6BACZ,MAAb73E,EAKJylE,GAAoBz+D,EAAahH,GAC5BuG,KAAKooD,IACF7wD,KAEA,MAAMiS,EAAcuM,KAAKK,MAAMjc,wBAA0B,GACnD83E,EAAiB7pB,EAAQnwD,OAAQkgB,GAAMA,EAAEinD,YACzC8S,EAAe9pB,EAAQnwD,OAAOkgB,IAAMA,EAAEinD,YAEtC+S,EAAaD,EAAa33E,OAE1B63E,EAAoBD,EAAa,EAAItnD,EAAa9U,KAAKK,MAAM4H,SAASD,SAC5E,GAAIk0D,EAAe13E,OAAQ,CACvB,MAAM83E,EAAiBJ,EAAe5mF,IAAI6wC,GAAUnmB,KAAKg1D,mBAAmBvhE,EAAa0yB,EAAO3yC,KAEhG4N,GADkB,6CAAyCk7E,EAAe90E,KAAK,MAA7D,KACsB60E,GACxCr8D,KAAKkM,SAAS,CAAEsvD,eAAe,IAGnC,GAAIY,EAAa,EAAG,CAIhB76E,GADqBmG,GAAoBy0E,EADhBh2C,GAAM,UAAOnmB,KAAKg1D,mBAAmBvhE,EAAa0yB,EAAO3yC,IAAnD,cAA4D2yC,EAAOt6C,OADlF,2DAGoBwwF,QAEpCr8D,KAAKkM,SAAS,CAAEk+C,0BAA0B,EAAOoR,eAAe,IAChE9S,IAAqB,EAAO1oD,KAAKK,MAAMhc,wBAAyB2b,KAAKK,MAAM4H,SAASD,YAI3F9d,MAAMre,IACH2V,KACAD,GAAsB1V,EAAM4F,QAASqjC,KAnCzCvzB,GAAsB,wCAAgCuzB,IA8ElDsS,kBAAkB,UAClBhnB,MAAM,yBACNgU,WAAYpU,KAAKK,MAAMjU,6BACvBs7B,UAAW1nB,KAAKK,MAAMjU,6BACtBu7B,YAAa,CAAC7S,IAEd,kBAACjO,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,KACK5xB,IAGT,kBAAC2xB,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,CAAKpmB,UAAU,IACX,kBAACizB,GAAA,EAAD,CAAOjzB,UAAU,sBAAjB,+BACA,kBAAC,KAAD,CACIi7B,gBAAgB,8BAChBj7B,UAAU,OACVkL,SAAUoU,KAAKryB,MAAM4tF,6BACrBnpD,SAAUp+B,GAASgsB,KAAKkM,SAAS,CAAEqvD,6BAA8BvnF,IACjEy4D,W5LvYG,mB4LiZ/BkvB,sCACI,IAAI7mD,EAAa,mCACjB,MAAMpqB,EAAcsV,KAAKK,MAAM3V,YAEzB68B,EAAW,KACbvnB,KAAKkM,SAASsH,IAAsB,CAAE4nD,uBAAwB5nD,EAAU4nD,yBACxE55E,MAEJ,IA+FItM,EAAU,uBAAGwL,UAAU,cAAb,WAAkC,2BAAIgK,EAAYlG,QAAlD,6BACd,MAAM21E,EAAWn6D,KAAK66D,4BAA4BnwE,GAelD,OAdIyvE,EAAS31E,SACTtP,EACI,oCACKA,EACD,uBAAGwL,UAAU,cAAb,6BAGA,4BACKy5E,EAAS7kF,IAAI,CAACsmF,EAAS7zE,IAAM,wBAAIrH,UAAU,aAAazU,IAAK8b,GAAI6zE,OAO9E,oCACI,kBAACvgD,GAAA,EAAD,CACIC,OAAK,EACLnQ,MAAM,YACNjG,UAAWxa,EAAYlG,QAAUwb,KAAKK,MAAMnU,wBAA0B8T,KAAKK,MAAMlU,wBACjFgZ,QAASoiB,GAERvnB,KAAKK,MAAMlU,wBACR,kBAAC,GAAD,MADH,sBAGkBzB,EAAYlG,OAH9B,gBAML,kBAAC,GAAD,CACI8iC,OAAQtnB,KAAKryB,MAAMytF,sBACnB7zC,SAAUA,EACVC,SAAUD,EACVE,UAjIQ,KAChBjmC,KACA,MAAMkC,EAAYsc,KAAKryB,MAAM0tF,kBACvBkB,EAAcv8D,KAAKryB,MAAM2tF,kBAAoB,GAEnD,IAAIkB,GAAsB,EACT,MAAb94E,IACAnC,GAAsB,wCAAgCuzB,GACtD0nD,GAAsB,GAErBD,GAAsC,KAAvBA,EAAY3pD,SAC5BrxB,GAAsB,+BAA6BuzB,GACnD0nD,GAAsB,GAGtBA,G3BlVT,SAA0B3xE,EAAKnH,EAAW64E,GAC7C,MAAM/pF,EAAO,CACTqY,IAAKA,EACLy9D,WAAY5kE,GAAa9P,KAAO8P,GAAW7P,OAAO,cAClDo0B,SAAUs0D,GAId,OADAz7E,GAAMC,SCCC,CACHpS,KtP8NJ,0CqP/NOob,KACF2U,K5NqC8B,0B4NrCAlsB,GAC9ByX,KAAM5C,IACH7F,KAEA,MAAM4nE,EAAa/hE,EAAS7U,KAAK21D,QAAQ7yD,IAAK8sB,GAAMA,EAAE5uB,IAGtD,OADAsN,GAAMC,SCFkC8J,KACzC,CACHlc,KtP0NJ,0CsPzNIkc,QDDmB4xE,CAAoCrT,IAC5C/hE,IAEV6C,MAAOre,IACJ,MAAMgC,EAAeoZ,GAAsBpb,GAG3C,MAFAiV,GAAMC,SCA+BlV,KACtC,CACH8C,KtPqNJ,uCsPpNI9C,UDHmB6wF,CAAiC7uF,IAE1Csc,MAAMtc,K2BgUZ8uF,CAAiBjyE,EAAahH,EAAW64E,GACpCtyE,KAAK5C,IACF7F,KAEA,MAAMiS,EAAcuM,KAAKK,MAAMjc,wBAA0B,GAEnDglE,EAAa/hE,EAAS7U,KAAK21D,QAAQ7yD,IAAK8sB,GAAMA,EAAE5uB,IAEhDopF,EAAqBv1E,EAAS7U,KAAKqqF,gBAAgBvnF,IAAItF,GAAOgwB,KAAKg1D,mBAAmBvhE,EAAazjB,EAAIwD,KACvGspF,EAAkBz1E,EAAS7U,KAAKuqF,aAAaznF,IAAItF,GAAOgwB,KAAKg1D,mBAAmBvhE,EAAazjB,EAAIwD,KACjGwpF,EAAkB31E,EAAS7U,KAAKyqF,aAAa3nF,IAAItF,GAAOgwB,KAAKg1D,mBAAmBvhE,EAAazjB,EAAIwD,KACjG0pF,EAAY71E,EAAS7U,KAAK2qF,UAE1Bf,EACFQ,EAAmBp4E,OACnBs4E,EAAgBt4E,OAChBw4E,EAAgBx4E,OAChB04E,EAAU14E,OAER63E,EAAoBD,EAAa,EAAItnD,EAAa9U,KAAKK,MAAM4H,SAASD,SAE5E,GAAIohD,EAAW5kE,OAAQ,CACnB,MAAM83E,EAAiBlT,EAAW9zE,IAAI9B,GAAMwsB,KAAKg1D,mBAAmBvhE,EAAajgB,IAEjF4N,GADkB,kCAA8Bk7E,EAAe90E,KAAK,MAAlD,KACsB60E,GAG5C,GAAID,EAAa,EAAG,CAqChB76E,GAnCI,oCACKq7E,EAAmBp4E,OAAS,GACzB,uBAAG9D,UAAU,QAAb,kCAC6Bk8E,EAAmBp1E,KAAK,MADrD,MAIHs1E,EAAgBt4E,OAAS,GACtB,uBAAG9D,UAAU,QAAb,0BACwBo8E,EAAgBt1E,KAAK,MAD7C,MAIHw1E,EAAgBx4E,OAAS,GACtB,uBAAG9D,UAAU,QAAb,2BACyBs8E,EAAgBx1E,KAAK,MAD9C,MAIH01E,EAAU14E,OAAS,GAChB,oCACI,uBAAG9D,UAAU,QAAb,kBACA,4BACKw8E,EAAU5nF,IAAI,CAACtF,EAAK+X,IACjB,wBAAI9b,IAAK8b,GAMD/X,OAQIqsF,QAEpCr8D,KAAKkM,SAAS,CAAEkvD,uBAAuB,MAG9ClxE,MAAMre,IACH2V,KACAD,GAAsB1V,EAAM4F,QAASqjC,MAwCrCsS,kBAAkB,UAClBhnB,MAAM,0BACNgU,WAAYpU,KAAKK,MAAMlU,wBACvBu7B,UAAW1nB,KAAKK,MAAMlU,wBACtBw7B,YAAa,CAAC7S,IAEd,kBAACjO,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,KACK5xB,IAGT,kBAAC2xB,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,CAAKpmB,UAAU,IACX,kBAACizB,GAAA,EAAD,CAAOjzB,UAAU,sBAAjB,+BACA,kBAAC,KAAD,CACIi7B,gBAAgB,8BAChBj7B,UAAU,OACVkL,SAAUoU,KAAKryB,MAAM0tF,kBACrBjpD,SAAUp+B,GAASgsB,KAAKkM,SAAS,CAAEmvD,kBAAmBrnF,IACtDy4D,W5L9iBG,iB4LkjBf,kBAAC5lC,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,KACI,kBAAC,GAAD,CACIpmB,UAAU,OACVgzB,UAAU,kBACVK,YAAY,kBACZ//B,MAAOgsB,KAAKryB,MAAM2tF,iBAClBlpD,SAAUp+B,GAASgsB,KAAKkM,SAAS,CAAEovD,iBAAkBtnF,UAuFjFioF,uCAAuCpxE,GACnC,MAAMsvE,EAAW,CAACN,GAAyBA,GAAuBA,GAAmBA,GAAkCA,GAAyBA,IAEhJ,OAAO75D,KAAKi6D,2BAA2BpvE,EAAKsvE,IAgGpD,MAgBMh0D,GAAoB,CACtB6zD,iC1BlvB4C,CAAC/tF,EAAK+H,KAC3C,CACHrF,KtPgRJ,uCsP/QI1C,IAAKA,EACL+H,MAAOA,I0B+uBX+lF,gC1B3uB2C,KACpC,CACHprF,KtP0QJ,wCgRgeAqsF,qC1B/tBiDj3E,IAC1C,CACHpV,KtPiQJ,2CsPhQIoV,e0B6tBJk3E,kC1BvuB8Cr3E,IACvC,CACHjV,KtPsQJ,wCsPrQIiV,Y0BquBJs3E,2B1B1tBuCtvE,IAChC,CACHjd,KtP4PqC,gCsP3PrCid,c0B0tBOud,oBAAW1D,YAxBF93B,IACb,CACHsB,aAActB,EAAM2qB,MAAM/E,QAAQtkB,aAClCmV,uBAAwBzW,EAAM2qB,MAAM/E,QAAQnP,uBAC5ClV,oBAAqBvB,EAAM2qB,MAAM/E,QAAQrkB,oBACzCmV,wBAAyB1W,EAAM2qB,MAAM/E,QAAQlP,wBAC7CxR,QAASlF,EAAM2qB,MAAM/E,QAAQ1gB,QAC7B+Q,QAASjW,EAAM2qB,MAAM/E,QAAQ3P,QAC7BG,WAAYpW,EAAM2qB,MAAM/E,QAAQxP,WAChC2G,YAAa/c,EAAM2qB,MAAM/E,QAAQ7I,YACjCwB,uBAAwBve,EAAM2qB,MAAM/E,QAAQrH,uBAC5CE,6BAA8Bze,EAAM2qB,MAAM/E,QAAQnH,6BAClDD,wBAAyBxe,EAAM2qB,MAAM/E,QAAQpH,0BAYFga,GAAzBV,CAA4Cq0D,KC9vB/D,SAASsD,GAA4B1lC,EAAiB7kD,EAASiiC,GAElE,GAAM4iB,EAAiB,CAEnB,GAA2C,OAD7B52C,GAAMoG,WACVoR,MAAM9E,UAAUvkB,aACtB,OAGR,MAAM8lC,EAAe,IAAKliC,GAE1B,OADAiO,GAAMC,SCFC,CACHpS,KlRyTJ,yCiRvTOob,KACFC,IxP2G+B,qCwP1G/BC,KAAM5C,IACH,MAAM4tB,EAuBlB,SAA4BnlC,EAAU+C,GAClC,IAAK/C,IAAaA,EAAS0U,SAAW3R,EAClC,OAAO/C,EAGX,OAAOA,EAASoS,OAAQ3M,IACpB,GAAI1C,EAAQwQ,MAAQ6yB,GAAqB3gC,EAAI8N,IAAKxQ,EAAQwQ,KACtD,OAAO,EAEX,GAAIxQ,EAAQzF,OAAS8oC,GAAqB3gC,EAAInI,KAAMyF,EAAQzF,MACxD,OAAO,EAEX,GAAIyF,EAAQyQ,QAAU/N,EAAI+N,OAAO9P,KAAOX,EAAQyQ,OAAOtP,MACnD,OAAO,EAEX,GAAInB,EAAQ0Q,UAAYhO,EAAIgO,SAASvP,QAAUnB,EAAQ0Q,SAAS/P,GAC5D,OAAO,EAEX,GAAIX,EAAQlE,MAAQ4G,EAAI5G,KAAKqF,QAAUnB,EAAQlE,KAAK6E,GAChD,OAAO,EAEX,GAAIX,EAAQsb,QAAU5Y,EAAI4Y,OAAOna,QAAUnB,EAAQsb,OAAO3a,GACtD,OAAO,EAEX,GAAIX,EAAQ81E,MAAQpzE,EAAIozE,OAAS91E,EAAQ81E,KAAK30E,MAC1C,OAAO,EAGX,GACInB,EAAQ4Q,YACRlO,EAAI8tC,UAAUrvC,QAAUnB,EAAQ4Q,WAAWzP,MAE3C,OAAO,EAIX,GAAInB,EAAQ2X,YAAc3X,EAAQ2X,WAAWhG,OAAQ,CAAC,IAAD,IACjD,MAAMgG,EAAa3X,EAAQ2X,WAAWlV,IACjCi+B,GAAcA,EAAUv/B,OAE7B,GACIwW,EAAWrI,SAASsmE,MACG,IAAvBlzE,EAAIqzE,eAEJ,OAAO,EAEX,GACIp+D,EAAWrI,SACPsmE,KAE8B,IAAlClzE,EAAIszE,0BAEJ,OAAO,EAEX,GACIr+D,EAAWrI,SAASsmE,KACpB/mC,OAAOnsC,EAAIozE,OAAS,EAEpB,OAAO,EAEX,GACIn+D,EAAWrI,SAASsmE,OAAiD,UAAClzE,EAAI8tC,iBAAL,aAAC,EAAeylC,aAErF,OAAO,EAGX,GACIt+D,EAAWrI,SAASsmE,OAA0D,UAAClzE,EAAI8tC,iBAAL,aAAC,EAAe0lC,uBAE9F,OAAO,EAIf,OAAO,IAhGsBC,CACrB3hE,EAAS7U,KACTuiC,GASJ,OAPAj0B,GAAMC,SCLgC,EAC9CqD,EACAnV,EACA4D,KAEO,CACHlE,KlRiTJ,yCkRhTIM,eACA4D,UACAuR,2BDHQi5E,CACIh2E,EAAS7U,KACTyiC,EACAF,IAGD1tB,EAAS7U,OAEnB0X,MAAOre,IACJ,MAAMgC,EAAeoZ,GAAsBpb,GAC3CiV,GAAMC,SCH8BlV,KACrC,CACH8C,KlR0SJ,sCkRzSI9C,UDAmByxF,CAAgCzvF,IAE/C2T,KACAD,GAAsB1T,EAAcinC,KAkFhD,SAASoB,GAAqBC,EAAKC,GAC/B,OAAOD,EAAIvD,OAAOljB,cAAcvN,SAASi0B,EAAOxD,OAAOljB,e,OE9G3D,MAAM6tE,WAAuB96D,IAAMC,UAAW,cAAD,yBA6NzCsrC,sBAAwB94D,GAEhB,kBAACi/C,GAAD,KACKj/C,GAhO4B,KAqOzCyhF,2BAA8BhgF,IAAS,IAAD,IAClC,OACI,kBAAC,GAAD,CACI8+E,SAAU,gBAAkB9+E,EAAInD,GAChCyiF,WAAYv0C,OAAO/qC,EAAIgyE,MACvBwN,WAAYx/E,EAAIiyE,eAChBsN,yBAA0Bv/E,EAAIkyE,0BAC9B6M,eAAc,UAAE/+E,EAAI0sC,iBAAN,aAAE,EAAeylC,YAC/B6M,wBAAuB,UAAEh/E,EAAI0sC,iBAAN,aAAE,EAAe0lC,yBAlOpDtlD,SACI,GAAIzD,KAAKK,MAAMnxB,oBACX,OACI,kBAAC,GAAD,MAGR,IAAK8wB,KAAKK,MAAMpxB,aACZ,OAAO,qCAGX,MAAM8sC,EAAU,CACZ,CACIl4B,UAAW,KACX7U,KAAM,KACNitC,QAAS,cACTD,MAAM,EACNg1C,OAAQ,CAACp6E,EAAOkN,IAAUkc,KAAKK,MAAM2wD,OAAOp6E,EAAOkN,GACnD8vB,QAAQ,GAEZ,CACI/vB,UAAW,YACX7U,KAAM,qBACNitC,QAAS,4BACTD,MAAM,EACNW,UAAYpC,GAASA,EAAO3mC,KAAO2mC,GAAM1mC,O/LrD9B,c+LqDoD,GAC/D86C,MAAO,QACPC,YAAa,SAEjB,CACI/qC,UAAW,MACX7U,KAAM,WACNitC,QAAS,cACTD,MAAM,EACNg1C,OAAQ,CAACp6E,EAAOkN,IAAUkc,KAAKK,MAAM2wD,OAAOp6E,EAAOkN,IAEvD,CACID,UAAW,OACX7U,KAAM,gBACNitC,QAAS,cACTD,MAAM,EACNg1C,OAAQ,CAACp6E,EAAOkN,IAAUkc,KAAKK,MAAM2wD,OAAOp6E,EAAOkN,IAEvD,CACID,UAAW,cACX7U,KAAM,cACNitC,QAAS,cACTD,MAAM,EACNg1C,OAAQ,CAACp6E,EAAOkN,IAAUkc,KAAKK,MAAM2wD,OAAOp6E,EAAOkN,IAEvD,CACID,UAAW,QACX7U,KAAM,UACNitC,QAAS,cACTD,MAAM,EACNg1C,OAAQ,CAACp6E,EAAOkN,IAAUkc,KAAKK,MAAM2wD,OAAOp6E,EAAOkN,IAEvD,CACID,UAAW,iBACX7U,KAAM,mBACNitC,QAAS,cACTD,MAAM,EACNg1C,OAAQ,CAACp6E,EAAOkN,IAAUkc,KAAKK,MAAM2wD,OAAOp6E,EAAOkN,IAEvD,CACID,UAAW,aACX7U,KAAM,qBACNitC,QAAS,aACTD,MAAM,EACNg1C,OAAQ,CAACp6E,EAAOkN,IAAUkc,KAAKK,MAAM2wD,OAAOp6E,EAAOkN,IAEvD,CACID,UAAW,SACX7U,KAAM,OACNitC,QAAS,aACTD,MAAM,EACNg1C,OAAQ,CAACp6E,EAAOkN,IAAUkc,KAAKK,MAAM2wD,OAAOp6E,EAAOkN,IAEvD,CACID,UAAW,eACX7U,KAAM,UACNitC,QAAS,aACT0S,MAAO,SACPC,YAAa,SACb5S,MAAM,EACNW,UAAW,CAACC,EAAajmC,IACrB,kBAAC,GAAD,CACIwX,OAAQxX,EAAIwX,OAAOxV,MACnBhK,KAAMmqC,GAAmBniC,EAAIwX,OAAOna,OACpC0M,UAAU,mBAItB,CACImD,UAAW,kBACX7U,KAAM,gBACNitC,QAAS,aACT0S,MAAO,QACPC,YAAa,QACb5S,MAAM,EACNg1C,OAAQ,CAACp6E,EAAOkN,IAAUkc,KAAKK,MAAM2wD,OAAOp6E,EAAOkN,GACnD64B,UAAW0G,GACP,kBAAC,GAAD,CACIl1B,OAAQk1B,EACR10C,KAAM+lC,GAAkB2O,GACxB3iC,UAAU,mBAItB,CACImD,UAAW,GACX7U,KAAM,UACNitC,QAAS,mCAGTU,UAAW,CAACD,EAAM/lC,IAAQqpB,KAAK22D,2BAA2BhgF,KAI5DkhE,EAAY,CACdt5C,KAAM,WACN3S,SAAUoU,KAAKK,MAAM3V,YAErBotD,eAAe,EACfC,kBAAmB,QAAC,KAAEx5C,EAAF,QAAQgzC,EAAR,SAAiBrsC,GAAlB,SACf,kBAAC,GAAD,CAAUlxB,MAAOu9D,EAASpsC,QAAS,OAAWzkB,UAAU,UAE5Dg2D,SAAU,CAAC//D,EAAKggE,EAAU1b,EAAUnzC,KAChCkY,KAAKK,MAAMq2C,SAAS//D,EAAKggE,EAAU1b,EAAUnzC,IAEjD8uD,YAAa,CAACD,EAAU3gD,KACpBgK,KAAKK,MAAMu2C,YAAYD,EAAU3gD,IAErCgiD,wBAAyB,IAAuC,IAAtC,KAAEz5C,EAAF,QAAQgzC,EAAR,cAAiBC,GAAoB,EAC3D,OAAO,kBAAC,GAAD,CAAiBD,QAASA,EAASC,cAAeA,MAI3Djb,EAAa,CAAC5/C,EAAKskD,IACd,UAGLD,EAAY,CACd71B,QAAS,CAACrd,EAAGnR,EAAKskD,KACdj7B,KAAKK,MAAM2sC,WAAWllD,EAAGnR,KAI3B06E,EAAoB,CACtBC,QAAQ,EACRttE,KAAMgc,KAAKK,MAAMtc,WAAWC,KAC5BC,YAAa+b,KAAKK,MAAMtc,WAAWE,aAAe+b,KAAKK,MAAMtc,WAAWG,SACxE8rD,UAAWhwC,KAAKK,MAAMtc,WAAWG,SACjCC,gBAAiB6b,KAAKK,MAAMtc,WAAWI,gBACvCssD,oBAAqB,CAACxsD,EAAaD,KAC/Bgc,KAAKK,MAAM41C,mBAAmBjyD,EAAMC,IAExCssD,aAAc,CAACvsD,EAAMC,KACjB+b,KAAKK,MAAM41C,mBAAmBjyD,EAAMC,KAKtCq5B,EAAgB,CAACtd,KAAKK,MAAMzc,SAE5BstE,EAAuBlxD,KAAKguC,sBAAsB,uBAAGttD,UAAU,mBAAb,yDAExD,OACI,kBAAC,sBAAD,CACIqD,WAAYytE,KAAkBH,IAG1B,QAAC,gBACGI,EADH,qBAEGC,GAFJ,SAII,oCACI,kBAAC7qD,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,KACI,kBAAC,KAAD,eACIiW,YAAU,EACVC,UAAU,EACVf,QAAQ,0CACRgB,eAAe,gDACfC,SAAS,KACT1qC,KAAMwtB,KAAKK,MAAMpxB,aACjB8sC,QAASA,EACTsB,iBAAkB6zC,EAClBrZ,UAAWA,EACXthB,WAAYA,EACZyE,UAAWA,EACX1d,cAAeA,GACXo0C,MAIhB,kBAAC7qD,GAAA,EAAD,CAAKnmB,UAAU,QACX,kBAAComB,GAAA,EAAD,CAAKpmB,UAAU,aACX,kBAAC,GAAD,eACIyvD,uBAAuB,WACnBshB,UAiC7B8L,UCnPf,MAAMC,WAA6B/6D,IAAMC,UAAW,cAAD,yBAkN/ColD,aAAe77E,GAAO+H,IAClBgsB,KAAKK,MAAMtO,eAAe9lB,EAAK+H,IAnNY,KAsN/C2lF,2BAA6B,KACR35D,KAAKK,MAAM7wB,iBAAmB,IAC/B0S,OAAOiM,GAAU4qB,GAAuBE,mBAAmB92B,SAASgM,EAAO3a,KAtM/Fq5B,oBAEI/iB,GAAgBkW,KAAKK,MAAM/d,YAC3B62B,GAAgBnZ,KAAKK,MAAMjxB,YAC3BgqC,GAAkBpZ,KAAKK,MAAMhxB,cAE7BoqC,GAAqBzZ,KAAKK,MAAM7wB,iBAChCkqC,GAAwB1Z,KAAKK,MAAM5wB,oBAKvCg0B,SACI,OACI,kBAACs1B,GAAA,EAAD,KACI,kBAAClyB,GAAA,EAAD,CAAKnmB,UAAU,yCACX,kBAAComB,GAAA,EAAD,CAAKpmB,UAAU,IACX,kBAACmmB,GAAA,EAAD,CAAKnmB,UAAU,wDACX,kBAAComB,GAAA,EAAD,CAAKpmB,UAAU,aACX,0BAAMA,UAAU,WAAhB,mBAEHsf,KAAKK,MAAM0nD,cACR,kBAACjhD,GAAA,EAAD,CAAKsU,GAAI,EAAGtK,GAAI,EAAGpwB,UAAU,mBACxBsf,KAAKK,MAAM0nD,eAIxB,kBAAClhD,GAAA,EAAD,CAAKnmB,UAAU,2BACX,kBAAComB,GAAA,EAAD,CAAKgK,GAAI,CAAEmN,KAAM,EAAGn6B,MAAO,GAAKpD,UAAU,QACtC,kBAAC,GAAD,CAAaqzB,YAAY,MACrBplC,KAAK,SACLqF,MAAOgsB,KAAKK,MAAMxtB,QAAQwQ,IAC1B3C,UAAU,OACV0xB,SAAUpS,KAAK8nD,aAAa,UAGpC,kBAAChhD,GAAA,EAAD,CAAKgK,GAAI,CAAEmN,KAAM,EAAGn6B,MAAO,GAAKpD,UAAU,QACtC,kBAAC,GAAD,CAAaqzB,YAAY,eACrB//B,MAAOgsB,KAAKK,MAAMxtB,QAAQzF,KAC1BsT,UAAU,OACV0xB,SAAUpS,KAAK8nD,aAAa,WAepC,kBAAChhD,GAAA,EAAD,CAAKgK,GAAI,CAAEmN,KAAM,EAAGn6B,MAAO,GAAKpD,UAAU,QACtC,kBAAC,GAAD,CAAQnF,QAASykB,KAAKK,MAAMjxB,WACxBmsC,aAAW,EACXvnC,MAAOgsB,KAAKK,MAAMxtB,QAAQ0Q,SAC1BwwB,YAAY,aACZrzB,UAAU,OACV86B,eAAiBC,GAAWA,EAAOnD,YACnCoD,eAAiBD,GAAWA,EAAOznC,MACnCo+B,SAAUpS,KAAK8nD,aAAa,eAGpC,kBAAChhD,GAAA,EAAD,CAAKgK,GAAI,CAAEmN,KAAM,EAAGn6B,MAAO,GAAKpD,UAAU,QACtC,kBAAC,GAAD,CAAQnF,QAASykB,KAAK25D,6BAClBp+C,aAAW,EACXvnC,MAAOgsB,KAAKK,MAAMxtB,QAAQsb,OAC1BqtB,eAAiBC,GAAWA,EAAOznC,MACnC+/B,YAAY,YACZ3B,SAAUpS,KAAK8nD,aAAa,UAC5BpnE,UAAU,UAGlB,kBAAComB,GAAA,EAAD,CAAKgK,GAAI,CAAEmN,KAAM,EAAGn6B,MAAO,GAAKpD,UAAU,QACtC,kBAAC,GAAD,CACInF,QAASykB,KAAKK,MAAM/d,WACpBi5B,aAAW,EACXm4B,cAAY,EACZ1/D,MAAOgsB,KAAKK,MAAMxtB,QAAQyQ,OAC1BywB,YAAY,cACZyH,eAAiBC,GAAWA,EAAO9iC,MACnC+iC,eAAiBD,GAAWA,EAAOznC,MACnCo+B,SAAUpS,KAAK8nD,aAAa,UAC5BpnE,UAAU,UAGlB,kBAAComB,GAAA,EAAD,CAAKgK,GAAI,CAAEmN,KAAM,EAAGn6B,MAAO,GAAKpD,UAAU,QACtC,kBAAC,GAAD,CAAQnF,QAASykB,KAAKK,MAAMhxB,aACxBksC,aAAW,EACXvnC,MAAOgsB,KAAKK,MAAMxtB,QAAQlE,KAC1BolC,YAAY,oBACZrzB,UAAU,OACV86B,eAAiBC,GAAWA,EAAOznC,MACnC0nC,eAAiBD,GAAWA,EAAOznC,MACnCo+B,SAAUpS,KAAK8nD,aAAa,WAwBpC,kBAAChhD,GAAA,EAAD,CAAKgK,GAAI,CAAEmN,KAAM,EAAGn6B,MAAO,GAAKpD,UAAU,QACtC,kBAAC,GAAD,CACI1M,MAAOgsB,KAAKK,MAAMxtB,QAAQ2X,WAC1B4nB,SAAUp+B,GAASgsB,KAAK8nD,aAAa,aAAlB9nD,CAAgChsB,GAAS,OAGpE,kBAAC8yB,GAAA,EAAD,CAAKgK,GAAI,CAAEmN,KAAM,EAAGn6B,MAAO,GAAKpD,UAAU,QACtC,kBAAC,GAAD,CACInF,QAASykB,KAAKK,MAAM5wB,mBACpB8rC,aAAW,EACXvnC,MAAOgsB,KAAKK,MAAMxtB,QAAQ4Q,WAC1BswB,YAAY,eACZ3B,SAAUpS,KAAK8nD,aAAa,cAC5BpnE,UAAU,UAyBlB,kBAAComB,GAAA,EAAD,CAAKgK,GAAI,CAAEmN,KAAM,EAAGn6B,MAAO,GAAKpD,UAAU,QACtC,kBAAC26B,GAAA,EAAD,CACIQ,SAAO,EACPP,OAAK,EACLnQ,MAAM,UACNzqB,UAAU,YACVykB,QAASnF,KAAKK,MAAMnJ,gBALxB,uBAUJ,kBAAC4P,GAAA,EAAD,CAAKgK,GAAI,CAAEmN,KAAM,EAAGn6B,MAAO,IAAMpD,UAAU,QACvC,kBAAC26B,GAAA,EAAD,CACI1sC,KAAK,SACL2sC,OAAK,EACLnQ,MAAM,UACNzqB,UAAU,YACVykB,QAAUrd,IACNA,EAAE0wC,iBACFx4B,KAAKK,MAAMisC,YAEfpnC,SAAUlF,KAAKK,MAAMnxB,qBAEpB8wB,KAAKK,MAAMnxB,oBAAsB,kBAAC,GAAD,MAAuB,cAxMvFsuF,GA4BK5D,YAAc,aA6MVn0D,mBAZS93B,IACb,CACH2U,WAAY3U,EAAM6qB,QAAQlW,WAE1BlT,WAAYzB,EAAMmC,SAASV,WAC3BC,aAAc1B,EAAMmC,SAAST,aAE7BG,gBAAiB7B,EAAMmC,SAASN,gBAChCC,mBAAoB9B,EAAMmC,SAASL,qBAI5Bg2B,CAAyB+3D,IC3NxC,MAAM1D,WAAyBr3D,IAAMC,UAoBjCqJ,YAAY1L,GAAQ,IAAD,EACf2L,MAAM3L,GADS,YAuBnB+xD,OAAS,CAACC,EAAOC,KACb9wE,KACA,MAAM6B,EAAMgvE,EAEZryD,KAAKK,MAAMo9D,oCACXz9D,KAAKK,MAAMq9D,mCAAmC,MAAOr6E,GAGrDhC,GADc,mDAAqB,+BAAKgC,EAAL,KAArB,KACgB2c,KAAKK,MAAM4H,SAASD,UAClDo1D,IAA4B,EAAOp9D,KAAKK,MAAMxtB,QAASmtB,KAAKK,MAAM4H,SAASD,WAhC5D,KAkNnBiyD,2BAA6B,SAACpvE,GAA8B,IAAzBqvE,EAAwB,uDAAT,KAC9C,MAAMzmE,EAAc,EAAK4M,MAAMjc,wBAA0B,GACnD+1E,EAAW,GACjB,IAAKtvE,GAAsB,IAAfA,EAAIrG,SAAiBiP,EAC7B,OAAO0mE,EAGND,IACDA,EAAe,CAACL,GAAyBA,GAAuBA,GAAmBA,GAAkCA,GAAyBA,GAA+BA,KAEjL,MAAMO,EAAmB,GACnBC,EAAgC,GAChCC,EAAkB,GAClBC,EAAgC,GAChCC,EAA6B,GAC7BC,EAAwB,GACxBC,EAAuB,GAE7B,IAAK,MAAMlnF,KAAMqX,EAAK,CAClB,MAAMtV,EAAM,EAAKolF,gBAAgBlnE,EAAajgB,GAC9C,GAAK+B,EAIE,CACH,MAAM8N,EAAM9N,EAAI8N,IACVmsB,EAAcj6B,EAAI4Y,QAAU5Y,EAAI4Y,OAAOna,MACvC4mF,EAAgBrlF,EAAI8tC,WAAa9tC,EAAI8tC,UAAUrvC,MACjDkmF,EAAa/3E,SAAS03E,MAAiD,IAAvBtkF,EAAIqzE,gBACpDyR,EAA8BzzD,KAAKvjB,GAEnC62E,EAAa/3E,SAAS03E,KAAqCtkF,EAAIszE,0BAA4B,GAC3F0R,EAA8B3zD,KAAKvjB,GAEnC62E,EAAa/3E,SAAS03E,KAAsBn4C,OAAOnsC,EAAIozE,MAAQ,GAC/D2R,EAAgB1zD,KAAKvjB,GAErB62E,EAAa/3E,SAAS03E,KAA4BvlD,GAAoBG,GAAGtyB,SAASy4E,IAClFF,EAAqB9zD,KAAKvjB,GAE1B62E,EAAa/3E,SAAS03E,KAAkCrqF,KAAgCggC,GACxFgrD,EAA2B5zD,KAAKvjB,GAEhC62E,EAAa/3E,SAAS03E,KAA6BrqF,KAAmCggC,GAAe8E,GAAoBE,IAAIryB,SAASy4E,IACtIH,EAAsB7zD,KAAKvjB,QAvB3B62E,EAAa/3E,SAAS03E,KACtBO,EAAiBxzD,KAAKpzB,GAiDlC,OAtBI4mF,EAAiB51E,QACjB21E,EAASvzD,KAAK,8BAAM,2BAAIwzD,EAAiB51E,QAA3B,4CAEd61E,EAA8B71E,QAC9B21E,EAASvzD,KAAK,iGAAmE,2BAAIyzD,EAA8B7yE,KAAK,OAA1G,MAEd+yE,EAA8B/1E,QAC9B21E,EAASvzD,KAAK,+FAA8D,2BAAI2zD,EAA8B/yE,KAAK,OAArG,MAEd8yE,EAAgB91E,QAChB21E,EAASvzD,KAAK,8EAAgD,2BAAI0zD,EAAgB9yE,KAAK,OAAzE,MAEdkzE,EAAqBl2E,QACrB21E,EAASvzD,KAAK,+DAAoC,2BAAI8zD,EAAqBlzE,KAAK,OAAlE,MAEdgzE,EAA2Bh2E,QAC3B21E,EAASvzD,KAAK,2EAAgD,2BAAI4zD,EAA2BhzE,KAAK,OAApF,MAEdizE,EAAsBj2E,QACtB21E,EAASvzD,KAAK,8EAAgD,2BAAI6zD,EAAsBjzE,KAAK,OAA/E,MAGX2yE,GAzRQ,KA4RnBQ,gBAAkB,CAAC1rF,EAAcuE,KAC7B,IAAK,MAAM+B,KAAOtG,EACd,GAAIsG,EAAI/B,KAAOA,EACX,OAAO+B,EAGf,OAAO,MAlSQ,KAqSnBy/E,mBAAqB,CAAC/lF,EAAcuE,KAChC,MAAM+B,EAAMyqB,KAAK26D,gBAAgB1rF,EAAcuE,GAC/C,OAAO+B,EAAMA,EAAI8N,IAAP,UAAgB7P,EAAhB,UAvSK,KAgTnBunF,wBAA2BlwE,IACvB,MAAM4I,EAAcuM,KAAKK,MAAMjc,uBAC/B,IAAKyG,GAAsB,IAAfA,EAAIrG,SAAiBiP,EAC7B,MAAO,GAOX,OAJmBA,EAAYvR,OAAO3M,GAAOsV,EAAI1I,SAAS5M,EAAI/B,KAEhB0O,OAAO3M,GAAyB,OAAlBA,EAAIi1E,YAxTjD,KA6TnBle,SAAW,KACP9qD,KACA47E,IAA4B,EAAOp9D,KAAKK,MAAMxtB,QAASmtB,KAAKK,MAAM4H,SAASD,WA/T5D,KAkUnBiuC,mBAAqB,CAACjyD,EAAMC,KACxB,MACMkyD,EAAgB,IADIn2C,KAAKK,MAAMtc,WACSC,OAAMC,eACpD+b,KAAKK,MAAMs9D,uCAAuCxnB,IArUnC,KAwUnB6a,OAAS,CAACp6E,EAAOkN,KACb,MAAM60E,EAAiB34D,KAAKK,MAAMzc,QAClC,GAAI+0E,EAAe90E,YAAcjN,GAAS+hF,EAAe70E,QAAUA,EAAO,CACtE,MAAM2yD,EAAa,CACf5yD,UAAWjN,EACXkN,MAAOA,GAGXkc,KAAKK,MAAMu9D,oCAAoCnnB,KAhVpC,KAoVnBoiB,gBAAkB,CAACliF,EAAKggE,EAAU1b,EAAUnzC,KACxC,IAAI+uD,EAAiB,IAAI72C,KAAKK,MAAM3V,aAE/BisD,EAGIA,IAAaE,EAAe10D,SAASxL,EAAInD,KAC9CqjE,EAAejwC,KAAKjwB,EAAInD,IAHxBqjE,EAAiBA,EAAe30D,OAAO1O,GAAMA,IAAOmD,EAAInD,IAM5DwsB,KAAKK,MAAMw9D,6BAA6BhnB,IA9VzB,KAiWnBiiB,mBAAqB,CAACniB,EAAU3gD,KAC5B,IAAI6gD,EAAiB,IAAI72C,KAAKK,MAAM3V,aACpC,MAAMG,EAAMmL,EAAK1gB,IAAIqB,GAAOA,EAAInD,IAG5BqjE,EADAF,EACiB,IAAIE,KAAmBhsD,EAAI3I,OAAO1O,IAAOqjE,EAAe10D,SAAS3O,KAGjEqjE,EAAe30D,OAAO1O,IAAOqX,EAAI1I,SAAS3O,IAE/DwsB,KAAKK,MAAMw9D,6BAA6BhnB,IA3WzB,KA8WnB7J,WAAa,CAAC36B,EAAO17B,KACjB,MAAMwiF,EAAoBj7D,GAA0BvnB,EAAInD,IACxDwsB,KAAKK,MAAMmG,QAAQI,KAAKuyD,EAAmB,CAAEjpC,kBAAmBt2B,GAAKwC,0BA7WrE4D,KAAKryB,MAAQ,CACT4tF,6BAA8B,KAC9BnR,0BAA0B,EAC1BoR,eAAe,GAIvB3uD,oBACIuwD,IAA4B,EAAOp9D,KAAKK,MAAMhc,wBAAyB2b,KAAKK,MAAM4H,SAASD,UAE3FoqD,KAAOa,SAASziC,SAAU,CACtB0iC,eAAgB,CAAC,IACjBd,OAAQpyD,KAAKoyD,SAIrBplD,uBACIolD,KAAOe,WAAW3iC,UAetB/sB,SACI,OACI,kBAACuG,GAAA,EAAD,CAAMtpB,UAAU,wBACZ,kBAACupB,GAAA,EAAD,CAAUvpB,UAAU,kCAChB,kBAAC,GAAD,CACI7N,QAASmtB,KAAKK,MAAMxtB,QACpBkf,eAAgBiO,KAAKK,MAAMq9D,mCAC3BxmE,eAAgB8I,KAAKK,MAAMo9D,kCAC3BvuF,oBAAqB8wB,KAAKK,MAAMnxB,oBAChCo9D,SAAUtsC,KAAKssC,WAEnB,kBAACzlC,GAAA,EAAD,CAAKnmB,UAAU,mCACX,kBAAComB,GAAA,EAAD,KACI,kBAACD,GAAA,EAAD,CAAKnmB,UAAU,8DACX,kBAAComB,GAAA,EAAD,CAAK2D,GAAI,CAAEwT,KAAM,GAAIn6B,MAAO,GAAKgtB,GAAI,CAAEmN,KAAM,EAAGn6B,MAAO,GAAKs3B,GAAI,CAAE6C,KAAM,EAAGn6B,MAAO,GAAKpD,UAAU,aAC7F,kBAAC26B,GAAA,EAAD,CACIlQ,MAAM,OACNjG,UAAWlF,KAAKK,MAAM3V,YAAYlG,QAAUwb,KAAKK,MAAM9S,+BACvD4X,QAAS,IAAMnF,KAAKK,MAAMw9D,6BAA6B,KAH3D,qBAKoB79D,KAAKK,MAAM3V,YAAYlG,OAL3C,MAQJ,kBAACsiB,GAAA,EAAD,CAAK2D,GAAI,CAAEwT,KAAM,GAAIn6B,MAAO,GAAKgtB,GAAI,CAAEmN,KAAM,EAAGn6B,MAAO,GAAKs3B,GAAI,EAAG16B,UAAU,aACxEsf,KAAK07D,qDAKtB,kBAAC70D,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,KACI,kBAAC,GAAD,CACI73B,aAAc+wB,KAAKK,MAAMpxB,aACzBC,oBAAqB8wB,KAAKK,MAAMnxB,oBAChCwb,YAAasV,KAAKK,MAAM3V,YACxBgsD,SAAU12C,KAAK64D,gBACfjiB,YAAa52C,KAAK84D,mBAClB9rB,WAAYhtC,KAAKgtC,WACjBppD,QAASoc,KAAKK,MAAMzc,QACpBotE,OAAQhxD,KAAKgxD,OACbjtE,WAAYic,KAAKK,MAAMtc,WACvBkyD,mBAAoBj2C,KAAKi2C,yBASrDylB,iDACI,IAAI5mD,EAAa,wCACjB,MAAMpqB,EAAcsV,KAAKK,MAAM3V,YAEzB68B,EAAW,KACb/lC,KAEIwe,KAAKryB,MAAM6tF,gBACX4B,IAA4B,EAAOp9D,KAAKK,MAAMhc,wBAAyB2b,KAAKK,MAAM4H,SAASD,UAC3FhI,KAAKkM,SAAS,CAAEsvD,eAAe,KAEnCx7D,KAAKkM,SAASsH,IAAsB,CAAE42C,0BAA2B52C,EAAU42C,6BAG/E,IA4CIl1E,EAAU,uBAAGwL,UAAU,cAAb,WAAkC,2BAAIgK,EAAYlG,QAAlD,oBACd,MAAM21E,EAAWn6D,KAAKi8D,uCAAuCj8D,KAAKK,MAAM3V,aACpEyvE,EAAS31E,SACTtP,EACI,oCACKA,EACD,uBAAGwL,UAAU,cAAb,6BAGA,4BACKy5E,EAAS7kF,IAAI,CAACsmF,EAAS7zE,IAAM,wBAAIrH,UAAU,aAAazU,IAAK8b,GAAI6zE,OAMlF,MACM3mB,EADgCj1C,KAAK+6D,wBAAwBrwE,GACZlG,SAAWkG,EAAYlG,SAAWkG,EAAYlG,QAAUwb,KAAKK,MAAM9S,+BAE1H,OACI,oCACI,kBAAC8tB,GAAA,EAAD,CACIC,OAAK,EACLnQ,MAAM,YACNjG,SAAU+vC,EACV9vC,QAASoiB,GAERvnB,KAAKK,MAAM9S,+BACR,kBAAC,GAAD,MADH,kBAGc7C,EAAYlG,OAH1B,YAG2D,IAAvBkG,EAAYlG,OAAe,eAAiB,kBAGrF,kBAAC,GAAD,CACI8iC,OAAQtnB,KAAKryB,MAAMy8E,yBACnB7iC,SAAUA,EACVC,SAAUD,EACVE,UAjFQ,KAChBjmC,KAEA,MAAMkC,EAAYsc,KAAKryB,MAAM4tF,6BACZ,MAAb73E,EJxBT,SAAsCoH,EAAYpH,GACrD5C,GAAMC,SC1IC,CACHpS,KlR6UJ,+CiRnMA,MAAM6D,EAAO,CACTqY,IAAKC,EACLw9D,WAAY5kE,GAAa9P,KAAO8P,GAAW7P,OAAO,eAGtD,OAAOkW,KACF2U,KxPJiC,+BwPIAlsB,GACjCyX,KAAM5C,IACH,MAAM7U,EAAO6U,EAAS7U,KAEhB42E,EAAa52E,EACd0P,OAAQikC,GAAWA,EAAOkjC,YAC1B/zE,IAAK6wC,GAAWA,EAAO3yC,IAG5B,OAFAsN,GAAMC,SClJP,CACHpS,KlRyUJ,+CkRxUIkc,IDgJ2Du+D,IAEhD52E,IAEV0X,MAAOre,IACJ,MAAMgC,EAAeoZ,GAAsBpb,GAG3C,MAFAiV,GAAMC,SClJmClV,KAC1C,CACH8C,KlRoUJ,4CkRnUI9C,UD+ImBiyF,CAAqCjwF,IAE9Csc,MAAMtc,KIMZkwF,CAA6BrzE,EAAahH,GACrCuG,KAAKooD,IACF7wD,KAEA,MAAMiS,EAAcuM,KAAKK,MAAMjc,wBAA0B,GACnD83E,EAAiB7pB,EAAQnwD,OAAQkgB,GAAMA,EAAEinD,YACzC8S,EAAe9pB,EAAQnwD,OAAOkgB,IAAMA,EAAEinD,YAEtC+S,EAAaD,EAAa33E,OAE1B63E,EAAoBD,EAAa,EAAItnD,EAAa9U,KAAKK,MAAM4H,SAASD,SAC5E,GAAIk0D,EAAe13E,OAAQ,CACvB,MAAM83E,EAAiBJ,EAAe5mF,IAAI6wC,GAAUnmB,KAAKg1D,mBAAmBvhE,EAAa0yB,EAAO3yC,KAEhG4N,GADkB,6CAAyCk7E,EAAe90E,KAAK,MAA7D,KACsB60E,GACxCr8D,KAAKkM,SAAS,CAAEsvD,eAAe,IAGnC,GAAIY,EAAa,EAAG,CAIhB76E,GADqBmG,GAAoBy0E,EADhBh2C,GAAM,UAAOnmB,KAAKg1D,mBAAmBvhE,EAAa0yB,EAAO3yC,IAAnD,cAA4D2yC,EAAOt6C,OADlF,2DAGoBwwF,QAEpCr8D,KAAKkM,SAAS,CAAEk+C,0BAA0B,EAAOoR,eAAe,IAChE4B,IAA4B,EAAOp9D,KAAKK,MAAMhc,wBAAyB2b,KAAKK,MAAM4H,SAASD,YAIlG9d,MAAMre,IACH2V,KACAD,GAAsB1V,EAAM4F,QAASqjC,KAnCzCvzB,GAAsB,wCAAgCuzB,IA6ElDsS,kBAAkB,UAClBhnB,MAAM,yBACNgU,WAAYpU,KAAKK,MAAM9S,+BACvBm6B,UAAW1nB,KAAKK,MAAM9S,+BACtBo6B,YAAa,CAAC7S,IAEd,kBAACjO,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,KACK5xB,IAGT,kBAAC2xB,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,CAAKpmB,UAAU,IACX,kBAACizB,GAAA,EAAD,CAAOjzB,UAAU,sBAAjB,+BACA,kBAAC,KAAD,CACIi7B,gBAAgB,8BAChBj7B,UAAU,OACVkL,SAAUoU,KAAKryB,MAAM4tF,6BACrBnpD,SAAUp+B,GAASgsB,KAAKkM,SAAS,CAAEqvD,6BAA8BvnF,IACjEy4D,WjM3PG,mBiM6V/BwvB,uCAAuCpxE,GACnC,MAAMsvE,EAAW,CAACN,GAAyBA,GAAuBA,GAAmBA,GAAkCA,GAAyBA,IAEhJ,OAAO75D,KAAKi6D,2BAA2BpvE,EAAKsvE,IAuEpD,MAcMh0D,GAAoB,CACtBu3D,mCHzY8C,CAACzxF,EAAK+H,KAC7C,CACHrF,KlRsSJ,yCkRrSI1C,IAAKA,EACL+H,MAAOA,IGsYXypF,kCHlY6C,KACtC,CACH9uF,KlRgSJ,0CqRiGAgvF,uCHtXmD55E,IAC5C,CACHpV,KlRuRJ,6CkRtRIoV,eGoXJ65E,oCH9XgDh6E,IACzC,CACHjV,KlR4RJ,0CkR3RIiV,YG4XJi6E,6BH9ayCjyE,IAClC,CACHjd,KlRsTuC,kCkRrTvCid,cG8aOud,oBAAW1D,YAtBF93B,IACb,CACHsB,aAActB,EAAM2qB,MAAM9E,UAAUvkB,aACpCmV,uBAAwBzW,EAAM2qB,MAAM9E,UAAUpP,uBAC9ClV,oBAAqBvB,EAAM2qB,MAAM9E,UAAUtkB,oBAC3CmV,wBAAyB1W,EAAM2qB,MAAM9E,UAAUnP,wBAC/CxR,QAASlF,EAAM2qB,MAAM9E,UAAU3gB,QAC/B+Q,QAASjW,EAAM2qB,MAAM9E,UAAU5P,QAC/BG,WAAYpW,EAAM2qB,MAAM9E,UAAUzP,WAClC2G,YAAa/c,EAAM2qB,MAAM9E,UAAU9I,YACnC6C,+BAAgC5f,EAAM2qB,MAAM9E,UAAUjG,iCAYX4Y,GAAzBV,CAA4Cq0D,KCvb/D,SAASkE,GACZnrF,EACA+Q,EACAG,EACA+wB,GAEA,MAAM/O,EA8BV,SAAmClzB,EAAS+Q,EAASG,GACjD,MAAM,GAAN,O7PsF8B,2B6PtF9B,OAA+BA,EAAWC,KAA1C,YAAkDD,EAAWE,YAA7D,KA/BiBg6E,CAA0BprF,EAAS+Q,EAASG,GAE7D,OADAjD,GAAMC,SCpBC,CACHpS,KvRoWsC,mCsRhVnCob,KACFC,IAAI+b,EAAU,CACX6O,OAAQ,CACJu9B,SAAUV,GAA4B7tD,MACnCguD,GAA+B/+D,MAGzCoX,KAAM5C,IACH,MAAM7U,EAAO6U,EAAS7U,KAChB1C,EAAW0C,EAAK6/D,QAChBnuD,EAAW1R,EAAKm1B,MAMtB,OAHA7mB,GAAMC,SC7B0B,EACxC9R,EACAiV,EACArR,KAEO,CACHlE,KvR4VJ,mCuR3VIM,eACAiV,WACArR,YDqBQqrF,CAA6BpuF,EAAUoU,EAAUrR,IAE9CwU,EAAS7U,OAEnB0X,MAAOre,IACJ,MAAMgC,EAAeoZ,GAAsBpb,GAC3CiV,GAAMC,SCtBP,CACHpS,KvRoVqC,kCsR7TjC6S,KACAD,GAAsB1T,EAAcinC,KAShD,MAAMqpD,GAAyB,CAC3BrkD,WAAY,GACZz2B,IAAK,MACL,iBAAkB,WAClBjW,KAAM,OACN,eAAgB,eAChB+9B,MAAO,+CACP,iBAAkB,gCAClB,aAAc,+CACd3nB,OAAQ,yCACRiH,OAAQ,iCACRsc,WAAY,aACZ,eAAgB,SAChB,mBAAoB,aAGlBq3D,GAAyB,CAC3B1sB,IAAK,GACLC,KAAM,KAGJF,GAA+B7tD,GAE7Bw6E,GAAuBx6E,EAAQE,OAC/Bq6E,GAAuBv6E,EAAQC,WAIjCw6E,GAAyB,CAC3Bh7E,IAAK,MACLkH,QAAS,WACTnd,KAAM,eACNkW,OAAQ,SACRC,SAAU,mBACV5U,KAAM,eACN6U,OAAQ,SACRiH,OAAQ,SACR0D,OAAQ,iBACR1K,WAAY,YACZC,UAAW,YACXC,QAAS,WAGPkuD,GAA4B,CAACj9B,EAAQ3oC,EAAK+H,KACrC,IACA4gC,EACH,CAACypD,GAAuBpyF,IAAO+H,IAIjC49D,GAAkC/+D,IACpC,IAAI+hC,EAAS,GAmEb,OAjEI/hC,EAAQwQ,MACRuxB,EAASi9B,GAA0Bj9B,EAAQ,MAAO/hC,EAAQwQ,MAE1DxQ,EAAQ0X,UACRqqB,EAASi9B,GACLj9B,EACA,UACA/hC,EAAQ0X,QAAQ/W,KAGpBX,EAAQzF,OACRwnC,EAASi9B,GAA0Bj9B,EAAQ,OAAQ/hC,EAAQzF,OAE3DyF,EAAQyQ,SACRsxB,EAASi9B,GACLj9B,EACA,SACA/hC,EAAQyQ,OAAOtP,QAGnBnB,EAAQ0Q,WACRqxB,EAASi9B,GACLj9B,EACA,WACA/hC,EAAQ0Q,SAAS/P,KAGrBX,EAAQlE,OACRimC,EAASi9B,GAA0Bj9B,EAAQ,OAAQ/hC,EAAQlE,KAAK6E,KAEhEX,EAAQ2Q,SACRoxB,EAASi9B,GACLj9B,EACA,SACA/hC,EAAQ2Q,OAAOxP,QAGnBnB,EAAQ4X,SACRmqB,EAASi9B,GAA0Bj9B,EAAQ,SAAU/hC,EAAQ4X,SAE7D5X,EAAQsb,SACRymB,EAASi9B,GAA0Bj9B,EAAQ,SAAU/hC,EAAQsb,OAAO3a,KAEpEX,EAAQ4Q,aACRmxB,EAASi9B,GACLj9B,EACA,aACA/hC,EAAQ4Q,WAAW9K,QAGvB9F,EAAQ6Q,YACRkxB,EAASi9B,GACLj9B,EACA,YACAhhC,KAAOf,EAAQ6Q,WAAW7P,OAAO,gBAGrChB,EAAQ8Q,UACRixB,EAASi9B,GACLj9B,EACA,UACAhhC,KAAOf,EAAQ8Q,SAAS9P,OAAO,gBAIhC+gC,GErJX,MAAM0pD,WAA+B77D,IAAMC,UAAW,cAAD,yBA+LjDolD,aAAe77E,GAAO+H,IAClBgsB,KAAKK,MAAMtO,eAAe9lB,EAAK+H,IA9KnC64B,oBACIqM,GAAclZ,KAAKK,MAAMlxB,UACzB2a,GAAgBkW,KAAKK,MAAM/d,YAC3B62B,GAAgBnZ,KAAKK,MAAMjxB,YAC3BgqC,GAAkBpZ,KAAKK,MAAMhxB,cAC7BiqC,GAAoBtZ,KAAKK,MAAM9wB,gBAC/BkqC,GAAqBzZ,KAAKK,MAAM7wB,iBAChCkqC,GAAwB1Z,KAAKK,MAAM5wB,oBAIvCg0B,SACI,OACI,kBAACs1B,GAAA,EAAD,KACI,kBAAClyB,GAAA,EAAD,CAAKnmB,UAAU,qCACX,kBAAComB,GAAA,EAAD,CAAKpmB,UAAU,IACX,kBAACmmB,GAAA,EAAD,CAAKnmB,UAAU,wDACX,kBAAComB,GAAA,EAAD,CAAKpmB,UAAU,aACX,0BAAMA,UAAU,WAAhB,mBAEHsf,KAAKK,MAAM0nD,cACR,kBAACjhD,GAAA,EAAD,CAAKsU,GAAI,EAAGtK,GAAI,EAAGpwB,UAAU,mBACxBsf,KAAKK,MAAM0nD,eAIxB,kBAAClhD,GAAA,EAAD,CAAKnmB,UAAU,2BACX,kBAAComB,GAAA,EAAD,CAAKsU,GAAI,EAAGtK,GAAI,IACZ,kBAACjK,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,CAAKgK,GAAI,EAAGpwB,UAAU,QAClB,kBAAC,GAAD,CAAaqzB,YAAY,MACrB//B,MAAOgsB,KAAKK,MAAMxtB,QAAQwQ,IAC1B3C,UAAU,OACV0xB,SAAUpS,KAAK8nD,aAAa,SAEhC,kBAAC,GAAD,CAAQvsE,QAASykB,KAAKK,MAAM/d,WACxBi5B,aAAW,EACXm4B,cAAY,EACZ1/D,MAAOgsB,KAAKK,MAAMxtB,QAAQyQ,OAC1BywB,YAAY,cACZyH,eAAiBC,GAAWA,EAAO9iC,MACnC+iC,eAAiBD,GAAWA,EAAOznC,MACnCo+B,SAAUpS,KAAK8nD,aAAa,UAC5BpnE,UAAU,UAGlB,kBAAComB,GAAA,EAAD,CAAKgK,GAAI,EAAGpwB,UAAU,QAClB,kBAAC,GAAD,CAAaqzB,YAAY,eACrB//B,MAAOgsB,KAAKK,MAAMxtB,QAAQzF,KAC1BsT,UAAU,OACV0xB,SAAUpS,KAAK8nD,aAAa,UAEhC,kBAAC,GAAD,CAAQvsE,QAASykB,KAAKK,MAAMlxB,SACxBosC,aAAW,EACXvnC,MAAOgsB,KAAKK,MAAMxtB,QAAQ0X,QAC1BwpB,YAAY,iBACZrzB,UAAU,OACV86B,eAAiBC,GAAWA,EAAOznC,MACnCo+B,SAAUpS,KAAK8nD,aAAa,cAGpC,kBAAChhD,GAAA,EAAD,CAAKgK,GAAI,EAAGpwB,UAAU,QAClB,kBAAC,GAAD,CAAQnF,QAASykB,KAAKK,MAAMjxB,WACxBmsC,aAAW,EACXvnC,MAAOgsB,KAAKK,MAAMxtB,QAAQ0Q,SAC1BwwB,YAAY,aACZrzB,UAAU,OACV86B,eAAiBC,GAAWA,EAAOnD,YACnCoD,eAAiBD,GAAWA,EAAOznC,MACnCo+B,SAAUpS,KAAK8nD,aAAa,cAEhC,kBAAC,GAAD,CAAQvsE,QAASykB,KAAKK,MAAMhxB,aACxBksC,aAAW,EACXvnC,MAAOgsB,KAAKK,MAAMxtB,QAAQlE,KAC1BolC,YAAY,oBACZrzB,UAAU,OACV86B,eAAiBC,GAAWA,EAAOznC,MACnC0nC,eAAiBD,GAAWA,EAAOznC,MACnCo+B,SAAUpS,KAAK8nD,aAAa,WAGpC,kBAAChhD,GAAA,EAAD,CAAKgK,GAAI,EAAGpwB,UAAU,aAClB,kBAAC,GAAD,CAAaqzB,YAAY,OACrB//B,MAAOgsB,KAAKK,MAAMxtB,QAAQ4X,OAC1B/J,UAAU,OACV0xB,SAAUpS,KAAK8nD,aAAa,YAEhC,kBAAC,GAAD,CAAQvsE,QAASykB,KAAKK,MAAM9wB,eACxBgsC,aAAW,EACXvnC,MAAOgsB,KAAKK,MAAMxtB,QAAQ2Q,OAC1BuwB,YAAY,OACZyH,eAAiBC,GAAWA,EAAOznC,MAAQ,KAC3C0nC,eAAiBD,GAAWA,EAAOznC,MACnC0M,UAAU,OACV0xB,SAAUpS,KAAK8nD,aAAa,eAK5C,kBAAChhD,GAAA,EAAD,CAAKsU,GAAI,EAAGtK,GAAI,EAAGpwB,UAAU,QACzB,kBAACmmB,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,CAAKgK,GAAG,IAAIpwB,UAAU,WAClB,kBAAC,GAAD,CAAQnF,QAASykB,KAAKK,MAAM7wB,gBACxB+rC,aAAW,EACXvnC,MAAOgsB,KAAKK,MAAMxtB,QAAQsb,OAC1BqtB,eAAiBC,GAAWA,EAAOznC,MACnC+/B,YAAY,YACZ3B,SAAUpS,KAAK8nD,aAAa,UAC5BpnE,UAAU,UAElB,kBAAComB,GAAA,EAAD,CAAKgK,GAAG,IAAIpwB,UAAU,WAClB,kBAAC,GAAD,CAAQnF,QAASykB,KAAKK,MAAM5wB,mBACxB8rC,aAAW,EACXvnC,MAAOgsB,KAAKK,MAAMxtB,QAAQ4Q,WAC1BswB,YAAY,eACZ3B,SAAUpS,KAAK8nD,aAAa,cAC5BpnE,UAAU,WAGtB,kBAACmmB,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,CAAKgK,GAAG,IAAIpwB,UAAU,WAClB,kBAAC,KAAD,CACIA,UAAU,OACVi7B,gBAAgB,SAChB/vB,SAAUoU,KAAKK,MAAMxtB,QAAQ6Q,UAC7B0uB,SAAUpS,KAAK8nD,aAAa,aAC5Bnb,QAAS3sC,KAAKK,MAAMxtB,QAAQ8Q,SAAW,IAAIuN,KAC3Cu7C,WpMhKT,gBoMmKC,kBAAC3lC,GAAA,EAAD,CAAKgK,GAAG,IAAIpwB,UAAU,WAClB,kBAAC,KAAD,CACIi7B,gBAAgB,OAChBj7B,UAAU,OACVkL,SAAUoU,KAAKK,MAAMxtB,QAAQ8Q,QAC7Bi4B,QAAS5b,KAAKK,MAAMxtB,QAAQ6Q,UAC5B0uB,SAAUpS,KAAK8nD,aAAa,WAC5Brb,WpM1KT,kBoM+KP,kBAAC3lC,GAAA,EAAD,CAAKsU,GAAI,EAAGtK,GAAI,EAAGpwB,UAAU,QACzB,kBAAC26B,GAAA,EAAD,CACIQ,SAAO,EACPP,OAAK,EACLnQ,MAAM,UACNzqB,UAAU,YACVykB,QAASnF,KAAKK,MAAMnJ,gBALxB,sBASA,kBAACmkB,GAAA,EAAD,CACI1sC,KAAK,SACL2sC,OAAK,EACLnQ,MAAM,UACNzqB,UAAU,YACVykB,QAAUrd,IACNA,EAAE0wC,iBACFx4B,KAAKK,MAAMisC,YAEfpnC,SAAUlF,KAAKK,MAAMnxB,qBAEpB8wB,KAAKK,MAAMnxB,oBAAsB,kBAAC,GAAD,MAAuB,cA4B9Eu2B,mBAZS93B,IACb,CACH2U,WAAY3U,EAAM6qB,QAAQlW,WAC1BnT,SAAUxB,EAAMmC,SAASX,SACzBC,WAAYzB,EAAMmC,SAASV,WAC3BC,aAAc1B,EAAMmC,SAAST,aAC7BE,eAAgB5B,EAAMmC,SAASP,eAC/BC,gBAAiB7B,EAAMmC,SAASN,gBAChCC,mBAAoB9B,EAAMmC,SAASL,qBAI5Bg2B,CAAyB64D,I,OCxNxC,MAAMnkD,WAAsB1X,IAAMC,UAAW,cAAD,yBAgKxCsrC,sBAAwB94D,GAEhB,kBAACi/C,GAAD,KACKj/C,GA1JbuuB,SACI,GAAIzD,KAAKK,MAAMnxB,oBACX,OACI,kBAAC,GAAD,MAGR,IAAK8wB,KAAKK,MAAMpxB,aACZ,OAAO,qCAGX,MAAMiiF,EAAuBlxD,KAAKguC,sBAAsB,uBAAGttD,UAAU,mBAAb,qDAElDq7B,EAAU,CACZ,CACIl4B,UAAW,aACX7U,KAAM,KACNitC,QAAS,cACTD,MAAM,EACNpI,QAAQ,GAEZ,CACI/vB,UAAW,MACX7U,KAAM,WACNitC,QAAS,cACTD,MAAM,GAEV,CACIn4B,UAAW,iBACX7U,KAAM,iBACNitC,QAAS,aACTD,MAAM,GAEV,CACIn4B,UAAW,OACX7U,KAAM,gBACNitC,QAAS,cACTD,MAAM,GAEV,CACIn4B,UAAW,eACX7U,KAAM,SACNitC,QAAS,cACTD,MAAM,GAEV,CACIn4B,UAAW,QACX7U,KAAM,UACNitC,QAAS,cACTD,MAAM,GAEV,CACIn4B,UAAW,iBACX7U,KAAM,aACNitC,QAAS,aACTD,MAAM,GAEV,CACIn4B,UAAW,aACX7U,KAAM,aACNitC,QAAS,aACTD,MAAM,GAEV,CACIn4B,UAAW,SACX7U,KAAM,OACNitC,QAAS,aACTD,MAAM,GAEV,CACIn4B,UAAW,SACX7U,KAAM,OACNitC,QAAS,aACTD,MAAM,GAEV,CACIn4B,UAAW,eACX7U,KAAM,UACNitC,QAAS,aACT0S,MAAO,SACPC,YAAa,SACb5S,MAAM,EACNW,UAAW,CAACC,EAAajmC,IACrB,kBAAC,GAAD,CACIwX,OAAQxX,EAAIwX,OAAOxV,MACnBhK,KAAMmqC,GAAmBniC,EAAIwX,OAAOna,OACpC0M,UAAU,mBAItB,CACImD,UAAW,aACX7U,KAAM,SACNitC,QAAS,4BACTD,MAAM,EACNW,UAAYpC,GAAS3mC,KAAO2mC,GAAM1mC,OrMhHvB,cqMiHX86C,MAAO,QACPC,YAAa,SAEjB,CACI/qC,UAAW,mBACX7U,KAAM,eACN2/C,MAAO,SACPC,YAAa,SACb5S,MAAM,EACNW,UAAY4hD,GACR,kBAAC,GAAD,CACIpwE,OAAQowE,EACR5vF,KAAM+lC,GAAkB6pD,GACxB79E,UAAU,kCAcpBs6C,EAAY,CACd71B,QAAS,CAACrd,EAAGnR,EAAKskD,KACdj7B,KAAKK,MAAM2sC,WAAWllD,EAAGnR,KAI3B2mC,EAAgB,CAClBtd,KAAKK,MAAMzc,SAGf,OACI,kBAAC,KAAD,CACIq0D,QAAM,EACNl7B,YAAU,EACVC,UAAU,EACVf,QAAQ,yCACRiB,SAAS,aACT1qC,KAAMwtB,KAAKK,MAAMpxB,aACjB8sC,QAASA,EACTsB,iBAAkB6zC,EAClB5zC,cAAeA,EACf84B,cAAep2C,KAAKK,MAAM+1C,cAC1Bn5B,eAAe,gDACfsZ,WA/BW,CAAC5/C,EAAKskD,KACrB,MAAMhf,EAAU,CAAC,WAIjB,OAHItlC,EAAIwX,OAAOna,QAAUxE,IACrBysC,EAAQrV,KAAK,0BAEVqV,EAAQz0B,KAAK,MA2BhBwzC,UAAWA,KAcZ7gB,UChKf,MAAMqkD,WAAqB/7D,IAAMC,UAAW,cAAD,yBA8BvC0vD,OAAS,CAACC,EAAOC,KACb9wE,KACA,MAAM6B,EAAMgvE,EAEZryD,KAAKK,MAAMo+D,8BACXz+D,KAAKK,MAAMq+D,6BAA6B,MAAOr7E,GAG/ChC,GADc,mDAAqB,+BAAKgC,EAAL,KAArB,KACgB2c,KAAKK,MAAM4H,SAASD,UAClDg2D,GAAsBh+D,KAAKK,MAAMxtB,QAASmtB,KAAKK,MAAMzc,QAASoc,KAAKK,MAAMtc,WAAYic,KAAKK,MAAM4H,SAASD,WAvCtE,KA+FvCskC,SAAW,KACP0xB,GAAsBh+D,KAAKK,MAAMxtB,QAASmtB,KAAKK,MAAMzc,QAASoc,KAAKK,MAAMtc,WAAYic,KAAKK,MAAM4H,SAASD,WAhGtE,KAmGvCiuC,mBAAqB,CAACjyD,EAAMC,KACxB,MAAM06E,EAAoB3+D,KAAKK,MAAMtc,WACrC,GAAIC,IAAS26E,EAAkB36E,MAAQC,IAAgB06E,EAAkB16E,YAAa,CAClF,MAAMkyD,EAAgB,IAAKwoB,EAAmB36E,OAAMC,eACpD+b,KAAKK,MAAMu+D,iCAAiCzoB,GAC5C6nB,GAAsBh+D,KAAKK,MAAMhc,wBAAyB2b,KAAKK,MAAMzc,QAASuyD,EAAen2C,KAAKK,MAAM4H,SAASD,YAxGlF,KA4GvCouC,cAAgB,CAACznE,EAAM0nE,KACnB,MAAM,UAAEE,EAAF,UAAaC,GAAcH,EAC3BzyD,EAAUoc,KAAKK,MAAMzc,QAC3B,GAAI2yD,IAAc3yD,EAAQE,OAAS0yD,IAAc5yD,EAAQC,UAAW,CAChE,MAAM4yD,EAAa,CACf5yD,UAAW2yD,EACX1yD,MAAOyyD,GAEXv2C,KAAKK,MAAMw+D,8BAA8BpoB,GACzCunB,GAAsBh+D,KAAKK,MAAMhc,wBAAyBoyD,EAAYz2C,KAAKK,MAAMtc,WAAYic,KAAKK,MAAM4H,SAASD,YArHlF,KAyHvCglC,WAAa,CAAC36B,EAAO17B,KACjB,MAAMwiF,EAAoBj7D,GAA0BvnB,EAAImjC,YACxD9Z,KAAKK,MAAMmG,QAAQI,KAAKuyD,EAAmB,CAAEjpC,kBAAmBt2B,GAAKyC,yBA1GzEwQ,oBACImxD,GAAsBh+D,KAAKK,MAAMhc,wBAAyB2b,KAAKK,MAAMzc,QAASoc,KAAKK,MAAMtc,WAAYic,KAAKK,MAAM4H,SAASD,UAEzHoqD,KAAOa,SAASziC,SAAU,CACtB0iC,eAAgB,CAAC,IACjBd,OAAQpyD,KAAKoyD,SAIrBplD,uBACIolD,KAAOe,WAAW3iC,UAuBtB/sB,SACI,MAAM1f,EAAaic,KAAKK,MAAMtc,WAC9B,OACI,kBAACimB,GAAA,EAAD,CAAMtpB,UAAU,qBACZ,kBAACupB,GAAA,EAAD,CAAUvpB,UAAU,mCAChB,kBAAC,GAAD,CACI7N,QAASmtB,KAAKK,MAAMxtB,QACpBkf,eAAgBiO,KAAKK,MAAMq+D,6BAC3BxnE,eAAgB8I,KAAKK,MAAMo+D,4BAC3BvvF,oBAAqB8wB,KAAKK,MAAMnxB,oBAChCo9D,SAAUtsC,KAAKssC,WAGnB,kBAACzlC,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,KACI,kBAAC,GAAD,CACI73B,aAAc+wB,KAAKK,MAAMpxB,aACzBC,oBAAqB8wB,KAAKK,MAAMnxB,oBAChC0U,QAASoc,KAAKK,MAAMzc,QACpBwyD,cAAep2C,KAAKo2C,cACpB11D,UAAU,+BACVssD,WAAYhtC,KAAKgtC,gBAI3BhtC,KAAKK,MAAMnxB,qBACT,kBAAC23B,GAAA,EAAD,CAAKnmB,UAAU,QACX,kBAAComB,GAAA,EAAD,KACI,kBAAC,GAAD,CACI9iB,KAAMD,EAAWC,KACjBC,YAAaF,EAAWE,YACxBC,SAAUH,EAAWG,SACrBC,gBAAiBJ,EAAWI,gBAE5BssD,oBAAqB,CAACxsD,EAAaD,IAASgc,KAAKi2C,mBAAmBjyD,EAAMC,GAC1EssD,aAAcvwC,KAAKi2C,0BA0CvD,MAWM9vC,GAAoB,CACtBu4D,6BH3IwC,CAACzyF,EAAK+H,KACvC,CACHrF,KvRiVJ,mCuRhVI1C,IAAKA,EACL+H,MAAOA,IGwIXyqF,4BHpIuC,KAChC,CACH9vF,KvR2UJ,oC0RxMAkwF,8BH/H0Cj7E,IACnC,CACHjV,KvRuUJ,oCuRtUIiV,YG6HJg7E,iCHzH6C76E,IACtC,CACHpV,KvRkUJ,uCuRjUIoV,gBGyHOolB,oBAAW1D,YAlBF93B,IACb,CACHsB,aAActB,EAAM2qB,MAAM7E,YAAYxkB,aACtCC,oBAAqBvB,EAAM2qB,MAAM7E,YAAYvkB,oBAC7CmV,wBAAyB1W,EAAM2qB,MAAM7E,YAAYpP,wBACjDxR,QAASlF,EAAM2qB,MAAM7E,YAAY5gB,QACjC+Q,QAASjW,EAAM2qB,MAAM7E,YAAY7P,QACjCG,WAAYpW,EAAM2qB,MAAM7E,YAAY1P,aAWOoiB,GAAzBV,CAA4C+4D,K,oBClKtE,MAAMM,GAAc,IAKb,IALc,iBACbC,EADa,SAEbv0D,EAFa,MAEHpK,EAFG,kBAEIgnB,EAFJ,OAGbE,EAHa,SAGLC,EAHK,SAGKC,EAHL,UAGeC,EAHf,WAIbrT,EAJa,UAIDsT,EAJC,YAIUC,GACzB,EACF,OACI,oCACI,kBAAC,GAAD,CACI34C,KAAM+vF,EACN55D,QAASoiB,EACTriB,SAAUkP,IAEd,kBAACwT,GAAA,EAAD,CACIN,OAAQA,EACRO,OAAQN,EACRO,UAAQ,EACRC,SAAS,SACTrnC,UAAU,wBAEV,kBAACsnC,GAAA,EAAD,CAAWtnC,UAAU,OACjB,kBAACmmB,GAAA,EAAD,CAAKnmB,UAAU,QACX,kBAAComB,GAAA,EAAD,KACI,0BAAMpmB,UAAU,WAAW0f,IAE/B,kBAAC0G,GAAA,EAAD,CAAKpmB,UAAU,mCACX,kBAAC,GAAD,CACI1R,KAAK,QACLm2B,QAASoiB,MAIrB,kBAAC1gB,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,KACI,kBAAC,GAAD,CAAQsD,YAAY,EAAMC,aAAcsd,MAGhD,kBAAC9gB,GAAA,EAAD,CAAKnmB,UAAU,QACX,kBAAComB,GAAA,EAAD,KACK0D,IAGT,kBAAC3D,GAAA,EAAD,CAAKnmB,UAAU,cACX,kBAAComB,GAAA,EAAD,CAAKgK,GAAG,KACJ,kBAACuK,GAAA,EAAD,CACIlQ,MAAM,UACN0Q,SAAO,EACPP,OAAK,EACLnW,QAASqiB,EACTtiB,SAAUkP,GALd,aAUJ,kBAACtN,GAAA,EAAD,CAAKgK,GAAG,KACJ,kBAACuK,GAAA,EAAD,CACIlQ,MAAM,UACNmQ,OAAK,EACLnW,QAASsiB,EACTviB,SAAUkP,GAETsT,EAAY,kBAAC,GAAD,MAAuBN,SAUpE03C,GAAYjwD,aAAe,CACvBkwD,iBAAkB,UAClBv0D,SAAU,0BAAM9pB,UAAU,cAAhB,wCACV0f,MAAO,sBACPgnB,kBAAmB,UACnBhT,YAAY,EACZsT,WAAW,EACXC,YAAa,IAIFm3C,U,OCtCf,MAAME,WAA4Bv8D,IAAMC,UAAW,cAAD,sCAW9C/0B,MAAQ,CACJw6E,eAAgB,GAChB8W,yBAA0B,GAE1BC,uBAAuB,EACvBC,sBAAsB,EACtBC,uBAAuB,EAEvBrvC,iBAAiB,EACjBuP,eAAe,EACf+/B,uBAAuB,EAEvBC,qBAAqB,EACrBC,sBAAsB,EACtBC,kBAAmB,KAEnBjkC,cAAe,IA3B2B,KAirB9CD,UAAa1kD,GACFopB,KAAKryB,MAAM4tD,cAAcp5C,SAASvL,GAlrBC,KAqrB9C6oF,gBAAkB,KACdj+E,KACA,MAAM+lB,EAAMvH,KAAKryB,MAAMw6E,eACjBrzC,EAAakqD,GAAoBU,6BACjC79B,EAAc,CAAC,MAAO,OAAQ,UAC9BE,EAAe,CACjB,WACA,mBACA,SACA,QACA,gBAEExG,EAAgB,GAEtB,IAAK,MAAM3kD,KAASirD,EACXt6B,EAAI3wB,IACL2kD,EAAc30B,KAAKhwB,GAG3B,IAAK,MAAMA,KAASmrD,EACXx6B,EAAI3wB,IAAW2wB,EAAI3wB,GAAOpD,IAC3B+nD,EAAc30B,KAAKhwB,GAmB3B,OAdK2kD,EAAcp5C,SAAS,WACnBmH,GAAUie,EAAG,UACdg0B,EAAc30B,KAAK,UACnBrlB,GACIye,KAAKK,MAAM8C,EAAE,6DAA8D,mCAC3E2R,IAKZ9U,KAAKkM,SAAS,CACVqvB,kBAGyB,IAAzBA,EAAc/2C,SAGdjD,GACIye,KAAKK,MAAM8C,EAAE,uDAAwD,oEACrE2R,IAEG,IApuB+B,KAwuB9C6qD,sBAAwB,KACpB,MAAMxX,EAAiBnoD,KAAKryB,MAAMw6E,eAC5BgS,EAAW,GAEEz4C,OAAOymC,EAAeS,iBAErCuR,EAASvzD,KAAT,gEAGJ,MAAM+hD,EAAOjnC,OAAOymC,EAAeQ,MAC/BA,EAAO,GACPwR,EAASvzD,KAAT,0CAA8C9d,GAAkBjV,OAAO80E,GAAvE,MAGJ,MAAMh1D,EAA0B+tB,OAAOymC,EAAeU,2BAStD,OARIl1D,EAA0B,GAC1BwmE,EAASvzD,KAAT,sDAAuDjT,EAAvD,OAGCw0D,EAAelgD,UAChBkyD,EAASvzD,KAAK,+BAGXuzD,GA/vBmC,KAowB9CpK,2BAA6B/F,IACzB,MAAM4V,EAAY,CACdpsF,GAAIw2E,EAAYzB,eAAev0E,MAC/BA,MAAOg2E,EAAYzB,eAAe5vE,OAEtCqnB,KAAKkM,SAASsH,IACH,CACH20C,eAAgB,IACT30C,EAAU20C,eACbh6D,OAAQyxE,MAIpBx+E,GAAwB,iCAAD,OAAkC4oE,EAAY77D,OAAOxV,MAArD,gBAA0EqnB,KAAKK,MAAM4H,SAASD,WAjxB3E,KAoxB9C63D,OAAS,KACL7/D,KAAKK,MAAMmG,QAAQI,KAAK5G,KAAKgwB,mBArxBa,KAwxB9C8vC,kBAAoB,KAChB,GAAI9/D,KAAKoU,aACL,OAAO,EAGX,MAAM2rD,EAAqB,CAACvwF,GAAoCA,GAAgCA,GAAmCA,GAA6BA,GAAgCA,IAChM,OAAOwwB,KAAKryB,MAAMw6E,eAAeh6D,QAAU4xE,EAAmB59E,SAAS6d,KAAKryB,MAAMw6E,eAAeh6D,OAAO3a,KA9xB9D,KAiyB9CwsF,iBAAmB,KACPhgE,KAAKoU,cAAgBpU,KAAKigE,oBAAoBz7E,OAAS,EAlyBrB,KAqyB9C07E,kBAAoB,KAChB,MAAMC,EAAqB,CAAC3wF,GAAgCA,GAAmCA,GAA6BA,IAC5H,OAAQwwB,KAAKoU,cAAgBpU,KAAKogE,uBAAuBD,IAvyBf,KA0yB9CrP,wBAA0B,IACf9wD,KAAKryB,MAAMw6E,eAAekY,YA3yBS,KA8yB9CrwC,eAAiB,KACb,MAAMC,EAAgBjwB,KAAKK,MAAM4H,SAASt6B,MAC1C,OAAIsiD,GAAiBA,EAAcC,kBACxBD,EAAcC,kBAElBt2B,GAAKsC,2BAnzB8B,KAszB9CokE,cAAgB1pF,GAAS5C,IACrBgsB,KAAKkM,SAAUsH,IACJ,CACH20C,eAAgB,IACT30C,EAAU20C,eACb,CAACvxE,GAAQ5C,KAGlB,KACe,iBAAV4C,GACAopB,KAAKugE,iCAh0B6B,KAq0B9CnsD,WAAa,KACDpU,KAAKryB,MAAMw6E,iBAAmBnoD,KAAKryB,MAAMw6E,eAAe30E,GAt0BtB,KAy0B9CgtF,kBAAoB,IACTxgE,KAAKryB,MAAMyxF,uBAAyBp/D,KAAKryB,MAAMwxF,sBAAwBn/D,KAAKryB,MAAMuxF,sBA10B/C,KAi1B9CuB,iBAAmB,KACf,MAAMC,EAAiB1gE,KAAKigE,oBAC5B,OAAOjgE,KAAKwgE,qBAAuBxgE,KAAKoU,cAA0C,IAA1BssD,EAAel8E,QAn1B7B,KAs1B9Cm8E,gBAAmB/pF,KACXopB,KAAKygE,qBACDzgE,KAAKigE,oBAAoB99E,SAASvL,GAx1BA,KA21B9CgqF,kBAAoB,IACT5gE,KAAKwgE,qBAAuBxgE,KAAKoU,aA51BE,KA+1B9CgsD,uBAAyB7kF,IACrB,MAAM/H,EAAKwsB,KAAKryB,MAAMw6E,gBAAkBnoD,KAAKryB,MAAMw6E,eAAeh6D,OAAS6R,KAAKryB,MAAMw6E,eAAeh6D,OAAO3a,GAAK,KACjH,OAAO+H,EAAQ4G,SAAS3O,IAj2BkB,KAo2B9CqtF,4BAA8BrtD,IAC1B,MAAMstD,EAAkBttD,EAAU20C,eAAiB30C,EAAU20C,eAAejxC,aAAe,KACrF6pD,EAAqB/gE,KAAKryB,MAAMw6E,eAAiBnoD,KAAKryB,MAAMw6E,eAAejxC,aAAe,KAE3F6pD,GAAsBD,IAAoBC,GAI/CxnD,GAAmBwnD,EAAmBvtF,IACjCyW,KAAKzX,IACFwtB,KAAKkM,SAAS,CACV+yD,yBAA0BzsF,IAK9B,MAAMwuF,EAAsBxuF,EAAK8C,IAAImmC,GAAUA,EAAOznC,OAChDitF,EAAsBjhE,KAAKryB,MAAMw6E,eAAe3kE,OAClDy9E,IAAwBD,EAAoB7+E,SAAS8+E,EAAoBjtF,QACzEgsB,KAAKkM,SAASsH,IACH,CACH20C,eAAgB,IACT30C,EAAU20C,eACb3kE,OAAQ,WAM3B0G,MAAMre,IACH0V,GAAsB1V,EAAM4F,QAASuuB,KAAKK,MAAM4H,SAASD,aAl4BvB,KAs4B9Cu4D,4BAA8B,KAC1B,MAAMpY,EAAiBnoD,KAAKryB,MAAMw6E,eAE5B4Y,EAAqB5Y,EAAiBA,EAAejxC,aAAe,KAE1E,IAAK6pD,EACD,OAGJ,MAAMG,EAAuBH,EAAqBA,EAAmBvtF,GAAK,KAGrEwmC,GAFkBmuC,GAAkBA,EAAeh9C,MAAQg9C,EAAeh9C,MAAM33B,GAAK,KAE1C0tF,IAC5ClhE,KAAKkM,SAASi1D,IACH,CACHhZ,eAAgB,IACTgZ,EAAchZ,eACjBh9C,MAAO,UAv5BmB,KA85B9Ci2D,SAAW,SAAChZ,GAAwD,IAAzC1kE,EAAwC,uDAA5B,KAAMoxB,EAAsB,uDAAT,KACtD,IAAI,EAAK2rD,mBAkBT,OAfIrY,EACA,EAAKl8C,SAAS,CACVkzD,uBAAuB,IAG3B,EAAKlzD,SAAS,CACVizD,sBAAsB,IAIZ,MAAdrqD,IACAA,EAAa,EAAKzU,MAAM4H,SAASD,UAGrCxmB,KACO0mE,GAAqB,EAAKv6E,MAAMw6E,eAAgBC,EAAe1kE,GACjEuG,KAAKzX,IACF,EAAK05B,SAAS,CACVi8C,eAAgB31E,IAEhB41E,EACA,EAAKl8C,SAAS,CACVkzD,uBAAuB,IAI3B,EAAKlzD,SAAS,CACVizD,sBAAsB,KAIvB,IAEVj1E,MAAMre,IACH2V,KACAD,GAAsB1V,EAAM4F,QAASqjC,GACjCszC,EACA,EAAKl8C,SAAS,CACVkzD,uBAAuB,IAG3B,EAAKlzD,SAAS,CACVizD,sBAAsB,KAGvB,KA/8B2B,KAy+B9C/O,uBAA0B59E,IAClBA,EAAKkM,QAAUlM,EAAKkM,OAAO8F,OAC3BjD,GAAsB/O,EAAKkM,OAAO,GAAGu6E,OAAQj5D,KAAKK,MAAM4H,SAASD,WAEjE5mB,GAAwB,8BAA+B4e,KAAKK,MAAM4H,SAASD,UAC3EhI,KAAKkM,SAASsH,IACH,CACH20C,eAAgB,IACT30C,EAAU20C,eACbh6D,OAAQ6R,KAAKqhE,oBAAoB7xF,KAAsCgkC,EAAU20C,eAAeh6D,aAl/BtE,KAy/B9C6hE,4BAA+BhG,IAE3BhqD,KAAKkM,SAASsH,IACH,CACH20C,eAAgB,IACT30C,EAAU20C,eACbh6D,OAAQ6R,KAAKqhE,oBAAoB7xF,KAAmCgkC,EAAU20C,eAAeh6D,YA//B/D,KAqgC9CkzE,oBAAsBC,IAClB,GAAIthE,KAAKK,MAAM7wB,gBACX,IAAK,MAAMisC,KAAUzb,KAAKK,MAAM7wB,gBAC5B,GAAIisC,EAAOjoC,KAAO8tF,EACd,OAAO7lD,EAKnB,OAAO,MA/+BX5O,oBACI,MAAMr5B,EAAKwsB,KAAKK,MAAMoM,MAAMmI,OAAOphC,GACnCwsB,KAAKuhE,kBAAkB/tF,GAEvB0lC,GAAclZ,KAAKK,MAAMlxB,UACzBgqC,GAAgBnZ,KAAKK,MAAMjxB,YAC3BgqC,GAAkBpZ,KAAKK,MAAMhxB,cAC7BoqC,GAAqBzZ,KAAKK,MAAM7wB,iBAChC6pC,GAAYrZ,KAAKK,MAAM/wB,eAG3B09B,qBAAqBG,GACjB4e,KAGJ7e,mBAAmBC,EAAWqG,GAC1BxT,KAAK6gE,4BAA4BrtD,GAGrC/P,SACI,GAAIzD,KAAKryB,MAAMuxF,sBACX,OAAO,kBAAC,GAAD,MAEX,MAAM/W,EAAiBnoD,KAAKryB,MAAMw6E,eAClC,OACI,kBAACn+C,GAAA,EAAD,CAAMtpB,UAAU,wBACZ,kBAACmmB,GAAA,EAAD,CAAKnmB,UAAU,2CACX,kBAAComB,GAAA,EAAD,KACI,0BAAMpmB,UAAU,WAAWynE,EAAe7kE,OAAS6kE,EAAe7kE,OAAOlW,KAAO,OAEnF4yB,KAAKwhE,4BAETxhE,KAAKyhE,gCACLzhE,KAAK0hE,kBACL1hE,KAAK2hE,qCACN,kBAAC96D,GAAA,EAAD,CAAKnmB,UAAU,yDACX,kBAAComB,GAAA,EAAD,KACI,0BAAMpmB,UAAU,WAAhB,uBAGR,kBAACmmB,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,KACI,kBAAC,GAAD,CACI4M,UAAU,WACVK,YAAY,WACZ//B,MAAOm0E,EAAe9kE,IACtB+uB,SAAUpS,KAAKsgE,cAAc,OAC7BltD,QAASpT,KAAKs7B,UAAU,OACxBp2B,SAAUlF,KAAK2gE,gBAAgB,UAGvC,kBAAC75D,GAAA,EAAD,KACI,kBAAC,GAAD,CACI4M,UAAU,cACVK,YAAY,cACZ//B,MAAOm0E,EAAe7kE,OAAS6kE,EAAe7kE,OAAOlW,KAAO,KAE5D83B,UAAQ,MAIpB,kBAAC2B,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,KACI,kBAAC,GAAD,CACI4M,UAAU,eACVK,YAAY,eACZ//B,MAAOm0E,EAAe/6E,KACtBglC,SAAUpS,KAAKsgE,cAAc,QAC7BltD,QAASpT,KAAKs7B,UAAU,QACxBp2B,SAAUlF,KAAK2gE,gBAAgB,WAGvC,kBAAC75D,GAAA,EAAD,KACI,kBAAC,GAAD,CACI4M,UAAU,iBACVK,YAAY,iBACZx4B,QAASykB,KAAKK,MAAMlxB,SACpBqsC,eAAiBC,GAAWA,EAAOznC,MACnC0nC,eAAiBD,GAAWA,EAAOjoC,GACnCQ,MAAOm0E,EAAe5lB,SACtBnwB,SAAUpS,KAAKsgE,cAAc,YAC7BltD,QAASpT,KAAKs7B,UAAU,YACxBp2B,SAAUlF,KAAK2gE,gBAAgB,gBAI3C,kBAAC95D,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,KACI,kBAAC,GAAD,CACI4M,UAAU,mBACVK,YAAY,mBACZx4B,QAASykB,KAAKK,MAAMjxB,WACpBosC,eAAiBC,GAAWA,EAAOnD,aAAemD,EAAOznC,MACzD0nC,eAAiBD,GAAWA,EAAOjoC,GACnCQ,MAAOm0E,EAAelxC,iBACtB7E,SAAUpS,KAAKsgE,cAAc,oBAC7BltD,QAASpT,KAAKs7B,UAAU,oBACxBp2B,SAAUlF,KAAK2gE,gBAAgB,uBAGvC,kBAAC75D,GAAA,EAAD,KACI,kBAAC,GAAD,CACI4M,UAAU,oBACVK,YAAY,oBACZx4B,QAASykB,KAAKK,MAAMhxB,aACpBmsC,eAAiBC,GAAWA,EAAOznC,MACnC0nC,eAAiBD,GAAWA,EAAOjoC,GACnCQ,MAAOm0E,EAAejxC,aACtB9E,SAAUpS,KAAKsgE,cAAc,gBAC7BltD,QAASpT,KAAKs7B,UAAU,gBACxBp2B,SAAUlF,KAAK2gE,gBAAgB,mBAGvC,kBAAC75D,GAAA,EAAD,KACI,kBAAC,GAAD,CACI4M,UAAU,kBACVK,YAAY,kBACZ//B,MAAOm0E,EAAelgD,SACtBmK,SAAUpS,KAAKsgE,cAAc,YAC7Bp7D,SAAUlF,KAAK2gE,gBAAgB,gBAI3C,kBAAC95D,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,KACI,kBAAC,GAAD,CACI4M,UAAU,YACVK,YAAY,YACZx4B,QAASykB,KAAKK,MAAM/wB,cACpBksC,eAAiBC,GAAWA,EAAOznC,MACnC0nC,eAAiBD,GAAWA,EAAOjoC,GACnC6qD,iBAAmB5iB,IAAYzB,GAA2ByB,EAAOjoC,GAAI20E,EAAejxC,aAAeixC,EAAejxC,aAAa1jC,GAAK,MACpIQ,MAAOm0E,EAAeh9C,MACtBiH,SAAUpS,KAAKsgE,cAAc,SAC7BltD,QAASpT,KAAKs7B,UAAU,SACxBp2B,SAAUlF,KAAK2gE,gBAAgB,YAGvC,kBAAC75D,GAAA,EAAD,KACI,kBAAC,GAAD,CACI4M,UAAU,OACVK,YAAY,OACZx4B,QAASykB,KAAKryB,MAAMsxF,yBACpBzjD,eAAiBC,GAAWA,EAAOznC,MACnC0nC,eAAiBD,GAAWA,EAAOjoC,GACnCQ,MAAOm0E,EAAe3kE,OACtB4uB,SAAUpS,KAAKsgE,cAAc,UAC7BltD,QAASpT,KAAKs7B,UAAU,UACxBp2B,SAAUlF,KAAK2gE,gBAAgB,aAGvC,kBAAC75D,GAAA,EAAD,KACI,kBAAC,GAAD,CACI4M,UAAU,OACVK,YAAY,OACZ//B,MAAOm0E,EAAe19D,OACtB2nB,SAAUpS,KAAKsgE,cAAc,UAC7BltD,QAASpT,KAAKs7B,UAAU,UACxBp2B,SAAUlF,KAAK2gE,gBAAgB,aAGvC,kBAAC75D,GAAA,EAAD,KACI,kBAAC,GAAD,CACI4M,UAAU,UACVK,YAAY,UACZx4B,QAASykB,KAAKK,MAAM7wB,gBACpBgsC,eAAiBC,GAAWA,EAAOznC,MACnC0nC,eAAiBD,GAAWA,EAAOjoC,GACnCQ,MAAOgsB,KAAKryB,MAAMw6E,eAAeh6D,OACjCikB,SAAUpS,KAAKsgE,cAAc,UAC7Bp7D,UAAQ,KAGhB,kBAAC4B,GAAA,EAAD,CAAK2D,GAAG,MACJ,kBAAC,GAAD,CAAQL,YAAY,EAAMC,aAAc,CAAC20D,GAAoBU,kCAGpE1/D,KAAK4hE,gBACN,kBAAC/6D,GAAA,EAAD,CAAKnmB,UAAU,2BACVsf,KAAK6hE,+CACL7hE,KAAK8hE,oCACL9hE,KAAK+hE,qCACN,kBAACj7D,GAAA,EAAD,CAAKgK,GAAI,CAAEmN,KAAM,GAAIn6B,MAAO,SAAWpD,UAAU,QAC7C,kBAACmmB,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,CAAK2D,GAAG,QACJ,kBAACoT,GAAD,CACI7uC,KAAK,oBACLm2B,QAASnF,KAAK6/D,cAU9C6B,kBACI,MAAMvZ,EAAiBnoD,KAAKryB,MAAMw6E,eAClC,IAAKA,IAAmBA,EAAe7kE,OACnC,OAAO,qCAEX,MAAMqlE,EAAOjnC,OAAOymC,EAAeQ,MACnC,GAAIA,GAAQ,EACR,OACI,qCAIR,IAAIh6E,EAAOuQ,GAAUoB,WAErB,MAAM0hF,EAAoB7jE,GAA+BgqD,EAAe7kE,OAAO9P,IAC/E,IAAI0B,EACA,yBAAKwL,UAAU,mCACX,wEAAuCoI,GAAkBjV,OAAO80E,GAAhE,MACA,kBAAC,KAAD,CAASz/C,GAAI84D,EAAmBthF,UAAU,gFAA1C,gCAMR,OACI,kBAACmmB,GAAA,EAAD,CAAKnmB,UAAU,mBACX,kBAAComB,GAAA,EAAD,KACI,kBAAC,GAAD,CACIn4B,KAAMA,EACN+R,UAAW/R,EACXuG,QAASA,MAO7BysF,qCACI,MAAMxZ,EAAiBnoD,KAAKryB,MAAMw6E,eAClC,IAAKA,IAAmBA,EAAe7kE,OACnC,OAAO,qCAEX,MAAMqQ,EAA0B+tB,OAAOymC,EAAeU,2BACtD,GAAIl1D,GAA2B,EAC3B,OACI,qCAIR,IAAIhlB,EAAOuQ,GAAUoB,WAEjBpL,EACA,yBAAKwL,UAAU,mCACX,oDAAsBiT,EAAtB,oCACA,kBAAC,KAAD,CACIuV,GAAI,CACAlB,SAAUpO,GAAK4C,kBACf7uB,MAAO,CACHs0F,yBAA0B,CAAEjuF,MAAOm0E,EAAe7kE,OAAO9P,GAAImF,MAAOwvE,EAAe7kE,OAAOlW,QAGlGsT,UAAU,gFAPd,uCAaR,OACI,kBAACmmB,GAAA,EAAD,CAAKnmB,UAAU,mBACX,kBAAComB,GAAA,EAAD,KACI,kBAAC,GAAD,CACIn4B,KAAMA,EACN+R,UAAW/R,EACXuG,QAASA,MAO7BusF,gCACI,MAAMtZ,EAAiBnoD,KAAKryB,MAAMw6E,eAClC,IAAKA,IAAmBA,EAAe7kE,OACnC,OAAO,qCAGX,IADmBo+B,OAAOymC,EAAeS,gBAErC,OACI,qCAIR,IAAI1zE,EACA,yBAAKwL,UAAU,mCACX,yHAEI,6BAFJ,6FAQR,OACI,kBAACmmB,GAAA,EAAD,CAAKnmB,UAAU,mBACX,kBAAComB,GAAA,EAAD,KACI,kBAAC,GAAD,CACIn4B,KAAMuQ,GAAUoB,WAChBI,UAAWxB,GAAUoB,WACrBpL,QAASA,MAO7B0sF,gBACI,OAAI5hE,KAAKoU,aACE,qCAIP,oCACI,kBAACvN,GAAA,EAAD,CAAKnmB,UAAU,yDACX,kBAAComB,GAAA,EAAD,KACI,0BAAMpmB,UAAU,WAAhB,eAGR,kBAACmmB,GAAA,EAAD,CAAKnmB,UAAU,mBACX,kBAAComB,GAAA,EAAD,KACI,kBAAC,GAAD,CACI76B,IAAG,0BAAqB+zB,KAAKryB,MAAMw6E,eAAeh6D,QAAU6R,KAAKryB,MAAMw6E,eAAeh6D,OAAO3a,IAC7FomC,UAAW5Z,KAAKryB,MAAMw6E,eAAe30E,GACrCu8E,2BAA4B/vD,KAAK+vD,2BACjCC,4BAA6BhwD,KAAKgwD,4BAClCp7D,aAAa,EACbk8D,wBAAyB9wD,KAAK8wD,0BAC9BV,uBAAwBpwD,KAAKowD,4BAQrDoR,2BACI,IAAKxhE,KAAK8/D,oBACN,OAAO,qCAKX,IAAIoC,EAAmB,gFACnBC,EAAqB3Z,GACrBxoD,KAAKryB,MAAMw6E,eAAeh6D,OAAO3a,KAAOhE,KACxC2yF,EAAqBxoD,GACrBuoD,EAAmB,yEAGvB,MAAM36C,EAAW,KACbvnB,KAAKkM,SAASsH,IAAsB,CAAEuc,iBAAkBvc,EAAUuc,mBAClEvuC,MAkCJ,OACI,kBAACslB,GAAA,EAAD,CAAKpmB,UAAU,YACX,kBAAC,GAAD,CACI4mC,OAAQtnB,KAAKryB,MAAMoiD,gBACnBxI,SAAUA,EACVC,SAAUD,EACVE,UAtCK,KACTznB,KAAKoU,cAAgBpU,KAAKryB,MAAM2xD,gBAGpC99C,KAEAwe,KAAKkM,SAAS,CACVozB,eAAe,IAGnB6iC,EAAmBniE,KAAKryB,MAAMw6E,eAAe30E,IACxCyW,KAAK,KACF+V,KAAKkM,SAAS,CACVozB,eAAe,EACfvP,iBAAiB,IAGrB,MAAM7nB,EAAQlI,KAAKgwB,iBACnBxuC,KACAJ,GAAwB,UAAD,OAAW4e,KAAKryB,MAAMw6E,eAAe/6E,KAArC,aAA8C4yB,KAAKryB,MAAMw6E,eAAe9kE,IAAxE,yBAAoG6kB,GAC3HsoB,SAASC,KAAKC,UAAUC,OAAO,cAC/B3wB,KAAK6/D,WAER31E,MAAMre,IACH2V,KACAD,GAAsB1V,EAAM4F,QAvCR,2BAwCpBuuB,KAAKkM,SAAS,CACVozB,eAAe,QAYnBlrB,WAAYpU,KAAKryB,MAAM2xD,cACvB5X,UAAW1nB,KAAKryB,MAAM2xD,cACtB3X,YAAa,CAvDO,2BAwDpBo3C,iBAAiB,iBACjB33C,kBAAkB,kBAElB,uBAAG1mC,UAAU,cAAcwhF,GAC3B,uBAAGxhF,UAAU,cAAb,6CAMhBmhF,+CACI,IAAI/sD,EAAa,uDACjB,MAAMyS,EAAW,KACbvnB,KAAKkM,SAASsH,IAAsB,CAAE4uD,yCAA0C5uD,EAAU4uD,2CAC1F5gF,MA8BJ,MAAM24E,EAAWn6D,KAAK2/D,wBAClB3/D,KAAKryB,MAAMw6E,eAAeh6D,QAAU6R,KAAKryB,MAAMw6E,eAAeh6D,OAAO3a,KAAOhE,IAC5E2qF,EAASvzD,KAAK,6BAGlB,IAAI1xB,EAAU,uBAAGwL,UAAU,cAAb,gIAEd,OACI,oCACI,kBAAComB,GAAA,EAAD,CAAKgK,GAAG,IAAIpwB,UAAU,QAClB,kBAAC26B,GAAA,EAAD,CACIC,OAAK,EAACO,SAAO,EACb1Q,MAAM,YACNhG,QAASoiB,EACTriB,UAA+D,IAArDlF,KAAKryB,MAAMw6E,eAAeka,wBAEnCriE,KAAKryB,MAAM20F,yCAA2C,kBAAC,GAAD,MAAuB,4BAGtF,kBAAC,GAAD,CACIh7C,OAAQtnB,KAAKryB,MAAMy0F,wCACnB76C,SAAUA,EACVC,SAAUD,EACVE,UAnDQ,KAChBznB,KAAKkM,SAAS,CACVo2D,0CAA0C,IAE9CvN,GAAkC,CAAC/0D,KAAKryB,MAAMw6E,eAAe30E,KACxDyW,KAAKzX,IACFwtB,KAAKkM,SAASsH,IACH,CACH8uD,0CAA0C,EAC1CF,yCAAyC,EACzCja,eAAgB,IACT30C,EAAU20C,eACbka,wBAAwB,MAIpC7gF,KACAH,GAAqB,kEAAmE2e,KAAKK,MAAM4H,SAASD,YAE7G9d,MAAMre,IACLm0B,KAAKkM,SAAS,CACVo2D,0CAA0C,IAE9C9gF,KACAD,GAAsB1V,EAAM4F,QAASqjC,MA4BrCsS,kBAAkB,UAClBhnB,MAAM,uBACNgU,WAAYpU,KAAKryB,MAAM20F,yCACvB56C,UAAW1nB,KAAKryB,MAAM20F,yCACtB36C,YAAa,CAAC7S,IAEb5/B,IAOjB4sF,oCACI,IAAIhtD,EAAa,mCACjB,MAAMyS,EAAW,MACRvnB,KAAKryB,MAAM2xF,qBAAwBt/D,KAAKy/D,qBAGzCz/D,KAAKkM,SAASsH,IAAsB,CAAE8rD,qBAAsB9rD,EAAU8rD,uBACtE99E,OAkBR,MAAM24E,EAAWn6D,KAAK2/D,wBAClB3/D,KAAKryB,MAAMw6E,eAAeh6D,QAAU6R,KAAKryB,MAAMw6E,eAAeh6D,OAAO3a,KAAOhE,IAC5E2qF,EAASvzD,KAAK,6BAGlB,IAAI1xB,EAAU,uBAAGwL,UAAU,cAAb,8CAcd,OAbIy5E,EAAS31E,SACTtP,EACI,oCACI,uBAAGwL,UAAU,cAAb,6BAGA,4BACKy5E,EAAS7kF,IAAI,CAACsmF,EAAS7zE,IAAM,wBAAIrH,UAAU,aAAazU,IAAK8b,GAAI6zE,OAO9E,oCACK57D,KAAKggE,oBACF,kBAACl5D,GAAA,EAAD,CAAKgK,GAAG,IAAIpwB,UAAU,QAClB,kBAAC26B,GAAA,EAAD,CACIC,OAAK,EAACO,SAAO,EACb1Q,MAAM,UACNhG,QAASoiB,EACTriB,SAAUlF,KAAKygE,oBAEdzgE,KAAKryB,MAAMwxF,qBAAuB,kBAAC,GAAD,MAAuB,aAItE,kBAAC,GAAD,CACI73C,OAAQtnB,KAAKryB,MAAM2xF,oBACnB/3C,SAAUA,EACVC,SAAUD,EACVE,UApDQ,KAChBjmC,KACAwe,KAAKohE,UAAS,EAAO,KAAMtsD,GACtB7qB,KAAKq2B,IACEA,IACA9+B,KACAwe,KAAKkM,SAAS,CAAEozD,qBAAqB,IACrCl+E,GAAwB,8BAA+B4e,KAAKK,MAAM4H,SAASD,cA8C/Eof,kBAAkB,WAClBhnB,MAAM,uBACNgU,WAAYpU,KAAKryB,MAAMwxF,qBACvBz3C,UAAW1nB,KAAKryB,MAAMwxF,qBACtBx3C,YAAa,CAAC7S,IAEb5/B,IAOjB6sF,qCACI,IAAIjtD,EAAa,oCACjB,MAAMyS,EAAW,MACRvnB,KAAKryB,MAAM4xF,sBAAyBv/D,KAAKy/D,qBAG1Cz/D,KAAKkM,SAASsH,IACH,CACH+rD,sBAAuB/rD,EAAU+rD,qBACjCC,kBAAmB,QAG3Bh+E,OAwBR,MAAM24E,EAAWn6D,KAAK2/D,wBAEtB,IAAIzqF,EAAU,uBAAGwL,UAAU,cAAb,oCAcd,OAbIy5E,EAAS31E,SACTtP,EACI,oCACI,uBAAGwL,UAAU,cAAb,6BAGA,4BACKy5E,EAAS7kF,IAAI,CAACsmF,EAAS7zE,IAAM,wBAAIrH,UAAU,aAAazU,IAAK8b,GAAI6zE,OAO9E,oCACK57D,KAAKkgE,qBACF,kBAACp5D,GAAA,EAAD,CAAKgK,GAAG,IAAIpwB,UAAU,QAClB,kBAAC26B,GAAA,EAAD,CACIC,OAAK,EACLnQ,MAAM,UACNhG,QAASoiB,EACTriB,SAAUlF,KAAK4gE,qBAEd5gE,KAAKryB,MAAM40F,wBAA0B,kBAAC,GAAD,MAAuB,gBAIzE,kBAAC,GAAD,CACIj7C,OAAQtnB,KAAKryB,MAAM4xF,qBACnBh4C,SAAUA,EACVC,SAAUD,EACVE,UAvDQ,KAChBjmC,KACA,MAAMkC,EAAYsc,KAAKryB,MAAM6xF,kBAEZ,MAAb97E,EAKJsc,KAAKohE,UAAS,EAAM19E,EAAWoxB,GAC1B7qB,KAAKq2B,IACEA,IACAtgB,KAAKkM,SAAS,CAAEqzD,sBAAsB,IACtCn+E,GAAwB,iCAAkC4e,KAAKK,MAAM4H,SAASD,aARtFzmB,GAAsB,wCAAgCuzB,IAmDlDsS,kBAAkB,cAClBhnB,MAAM,0BACNgU,WAAYpU,KAAKryB,MAAMyxF,sBACvB13C,UAAW1nB,KAAKryB,MAAMyxF,sBACtBz3C,YAAa,CAAC7S,IAEd,kBAACjO,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,KACK5xB,IAGT,kBAAC2xB,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,CAAKpmB,UAAU,IACX,kBAACizB,GAAA,EAAD,CAAOjzB,UAAU,sBAAjB,+BACA,kBAAC,KAAD,CACIi7B,gBAAgB,8BAChBj7B,UAAU,OACVkL,SAAUoU,KAAKryB,MAAM6xF,kBACrBptD,SAAUp+B,GAASgsB,KAAKkM,SAAS,CAAEszD,kBAAmBxrF,IACtDy4D,WxMntBG,mBwMy3B/BwzB,oBACI,OAAOj2E,KAAIgW,KAAKryB,MAAO,iCAAkC,IAqI7D4zF,kBAAkB3nD,GACd5Z,KAAKkM,SAAS,CACVgzD,uBAAuB,IzCr/B5B,SAA6BtlD,GAChC,MAAM7T,EAAWzd,GAAsBuB,QAAQ,eAAgB+vB,GAE/D,OAAO7vB,KACFC,IAAI+b,GACJ9b,KAAM5C,GACIA,EAAS7U,MAEnB0X,MAAOre,IACJ,MAAMgC,EAAeoZ,GAAsBpb,GAC3C,MAAMse,MAAMtc,KyC8+BhB20F,CAAoB5oD,GACf3vB,KAAKzX,IACFwtB,KAAKkM,SAAS,CACVi8C,eAAgB31E,EAChB0sF,uBAAuB,IAE3BpzC,GAA6Bt5C,EAAK6Q,OAErC6G,MAAMre,IACH2V,KACAD,GAAsB,iDAA6C1V,EAAM4F,QAASuuB,KAAKK,MAAM4H,SAASD,UACtGhI,KAAKkM,SAAS,CACVgzD,uBAAuB,OAp+BrCF,GASKU,6BAA+B,+BAuhC3Bv2D,oBAAW1D,YAdF93B,IACb,CACHwB,SAAUxB,EAAMmC,SAASX,SACzBC,WAAYzB,EAAMmC,SAASV,WAC3BC,aAAc1B,EAAMmC,SAAST,aAC7BG,gBAAiB7B,EAAMmC,SAASN,gBAChCF,cAAe3B,EAAMmC,SAASR,gBAIZ,GAIAm2B,CAA4CC,eAAkBs5D,M,OC9jCxF,MAAMyD,WAAoBhgE,IAAMC,UAAW,cAAD,yBA8HtC4pC,SAAW,KACP9qD,KACAwe,KAAK0iE,gBAhI6B,KAmItCA,aAAe,KC5IO,EAAC7vF,EAASiiC,KAChC,IAAI,SAAEniC,EAAF,OAAYC,EAAZ,OAAoB0Q,EAApB,eAA4BqL,EAA5B,eAA4CC,GAAmB/b,EACnEF,EAAWiB,KAAOjB,GAAUkB,OAAO,cACnCjB,EAASgB,KAAOhB,GAAQ+vC,MAAM,SAAS9uC,OAAO,cAE9CiN,GAAMC,SCjBC,CACHpS,K/RkX+B,4B8RjWnCob,KACKC,IrQ2HkB,uBqQ3HD,CACd4qB,OAAQ,CACJ+tD,UAAWhwF,EACXiwF,QAAShwF,KAGhBqX,KAAM2U,IACH,IAAIpsB,EAAOosB,EAAKpsB,KAIhB,GAHI8Q,IACA9Q,EAAOA,EAAK0P,OAAQymE,GAASA,EAAKn1E,KAAO8P,EAAOtP,QAE7B,KAAnB2a,EAAuB,CACvB,IAAIk0E,EAAgBnhD,OAAO/yB,GAC3Bnc,EAAOA,EAAK0P,OAAQymE,GAASA,EAAKma,SAAWD,GAEjD,GAAuB,KAAnBj0E,EAAuB,CACvB,IAAIm0E,EAAgBrhD,OAAO9yB,GAC3Bpc,EAAOA,EAAK0P,OAAQymE,GAASA,EAAKma,SAAWC,GAGjDjiF,GAAMC,SCjCP,CACHpS,K/R6WiC,4B+R5WjCqgB,MD+B0Cxc,MAEzC0X,MAAOla,IACJ,MAAMnC,EAAeoZ,GAAsBjX,GAC3C8Q,GAAMC,SC9BP,CACHpS,K/RuW8B,yB+RtW9B9C,MD4BuCgC,IAE/BinC,IACAtzB,KACAD,GAAsB,4CAAD,OACqB1T,GACtCinC,GACA,ODuGZkuD,CAAWhjE,KAAKK,MAAMxtB,QAASmtB,KAAKK,MAAM4H,SAASD,WAnIvD6E,oBACI/iB,GAAgBkW,KAAKK,MAAM/d,YAG/BmhB,SACI,OACI,kBAACuG,GAAA,EAAD,CAAMtpB,UAAU,0BACZ,kBAACupB,GAAA,EAAD,CAAUvpB,UAAU,IAChB,kBAACmmB,GAAA,EAAD,CAAKnmB,UAAU,2BACX,kBAAComB,GAAA,EAAD,CAAKpmB,UAAU,8DACX,0BAAMA,UAAU,IAAhB,YAEJ,kBAAComB,GAAA,EAAD,CAAKsU,GAAG,IAAItK,GAAG,MACX,kBAACjK,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,CAAKsU,GAAG,IAAItK,GAAG,IAAIpwB,UAAU,aACzB,kBAAC,KAAD,CACIA,UAAU,eACVkL,SAAUoU,KAAKK,MAAMxtB,QAAQF,SAC7By/B,SAAWmI,GACPva,KAAKK,MAAM4iE,uBACP,WACA1oD,GAGRoB,gBAAgB,SAChB8wB,WzM3CC,YyM4CDC,qBAAmB,EACnBC,QACI3sC,KAAKK,MAAMxtB,QAAQD,OACbgB,KACEosB,KAAKK,MAAMxtB,QAAQD,QACrBA,SACA,IAAIse,QAItB,kBAAC4V,GAAA,EAAD,CAAKsU,GAAG,IAAItK,GAAG,IAAIpwB,UAAU,aACzB,kBAAC,KAAD,CACIA,UAAU,eACVkL,SAAUoU,KAAKK,MAAMxtB,QAAQD,OAC7Bw/B,SAAWmI,GACPva,KAAKK,MAAM4iE,uBACP,SACA1oD,GAGRoB,gBAAgB,OAChB8wB,WzMjEC,YyMkEDC,qBAAmB,EACnB9wB,QACI5b,KAAKK,MAAMxtB,QAAQF,UACnBiB,KAAOosB,KAAKK,MAAMxtB,QAAQF,UAAUC,SAExC+5D,QAAS,IAAIz7C,UAK7B,kBAAC4V,GAAA,EAAD,CAAKsU,GAAG,IAAItK,GAAG,IAAIpwB,UAAU,QACzB,kBAAC,GAAD,CACInF,QAASykB,KAAKK,MAAM/d,WACpBtO,MAAOgsB,KAAKK,MAAMxtB,QAAQyQ,OAC1BowD,cAAY,EACZn4B,aAAW,EACXxH,YAAY,oBACZyH,eAAiBC,GAAWA,EAAO9iC,MACnC+iC,eAAiBD,GAAWA,EAAOznC,MACnC0M,UAAU,GACV0xB,SAAW9uB,GAAW0c,KAAKK,MAAM4iE,uBAAuB,SAAU3/E,MAG1E,kBAACwjB,GAAA,EAAD,CAAKsU,GAAG,IAAItK,GAAG,KACX,kBAACjK,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,CAAKsU,GAAG,IAAI3Q,GAAG,IAAI/pB,UAAU,QACzB,kBAAC,GAAD,CACI1M,MAAOgsB,KAAKK,MAAMxtB,QAAQ8b,eAC1BolB,YAAY,0BACZplC,KAAK,SACL+jC,OAAQ1+B,IACJgsB,KAAKK,MAAM4iE,uBAAuB,iBAAkBjvF,OAIhE,kBAAC8yB,GAAA,EAAD,CAAKsU,GAAG,IAAI3Q,GAAG,IAAI/pB,UAAU,QACzB,kBAAC,GAAD,CACI1M,MAAOgsB,KAAKK,MAAMxtB,QAAQ+b,eAC1BmlB,YAAY,4BACZplC,KAAK,SACL+jC,OAAQ1+B,IACJgsB,KAAKK,MAAM4iE,uBAAuB,iBAAkBjvF,SAOxE,kBAAC8yB,GAAA,EAAD,CAAKsU,GAAG,GAAGtK,GAAG,IAAIpwB,UAAU,aACxB,kBAAC26B,GAAA,EAAD,CACIC,OAAK,EACLnQ,MAAM,UACNzqB,UAAU,gBACVykB,QAASnF,KAAKssC,SACdpnC,SAAUlF,KAAKK,MAAM6iE,iBALzB,SAWJ,kBAACp8D,GAAA,EAAD,CAAKsU,GAAG,GAAGtK,GAAG,IAAIpwB,UAAU,wBACxB,kBAAC26B,GAAA,EAAD,CACIQ,SAAO,EACPP,OAAK,EACLnQ,MAAM,UACNzqB,UAAU,gBACVykB,QAASnF,KAAKK,MAAM8iE,uBALxB,2BA0B5B,MAQMn8C,GAAe,CACjBi8C,uBEnJkC,CAACh3F,EAAK+H,KACjC,CACHrF,K/RiWiC,4B+RhWjC1C,IAAKA,EACL+H,MAAOA,IFgJXmvF,sBE5IiC,KAC1B,CACHx0F,K/R0VgC,8B6R7MzBw6B,oBAAW1D,YAbD93B,IACd,CACH2U,WAAY3U,EAAM6qB,QAAQlW,WAC1BzP,QAASlF,EAAM2qB,MAAMtJ,MAAMnc,QAC3BqwF,gBAAiBv1F,EAAM2qB,MAAMtJ,MAAMljB,UASQk7C,GAAzBvhB,CAAuCg9D,K,OGvJjE,MAAMvoD,GAAoB7Z,IACtB,IAAInrB,EAAU,0CAId,OAHImrB,EAAMv0B,UACNoJ,EAAU,kBAAC,GAAD,OAEP,yBAAKwL,UAAU,eAAexL,IAGzC,MAAMkuF,WAAmB3gE,IAAMC,UAAW,cAAD,yBAgBrCsqC,WAAa,CAACllD,EAAGnR,KACb,MAAMgqC,EAAMxiB,GAA+BxnB,EAAInD,IAC/CwsB,KAAKK,MAAMmG,QAAQI,KAAK+Z,IAb5B9T,qBACQ7M,KAAKK,MAAMrR,OAASgR,KAAKK,MAAMrR,MAAMxK,OAe7Cif,SACI,OAAyB,OAArBzD,KAAKK,MAAMrR,MACJ,KAGPgR,KAAKK,MAAMv0B,QACJ,kBAAC,GAAD,MAIP,kBAACk+B,GAAA,EAAD,CAAMtpB,UAAU,iBACZ,kBAACupB,GAAA,EAAD,CAAUvpB,UAAU,oCACfsf,KAAK8b,gBAMtBA,cACI,MAAMC,EAAU,CACZ,CACIl4B,UAAW,OACX7U,KAAM,SACNgtC,MAAM,EACNC,QAAS,kCACTC,cAAe,uBAEnB,CACIr4B,UAAW,4BACX7U,KAAM,gCACNgtC,MAAM,GAEV,CACIn4B,UAAW,WACX7U,KAAM,sBACN2tC,UAAW0mD,IACP,MAAMC,EAAY1vF,KAAOyvF,EAAU,cACnC,OAAOC,EAAUnzD,UAAYmzD,EAAUzvF,O5M/EhC,c4M+EsDwvF,GAEjExmD,UAAWwmD,GAAYzvF,KAAOyvF,EAAU,cAAcxvF,OAAO,cAC7DmoC,MAAM,GAEV,CACIn4B,UAAW,UACX7U,KAAM,yBACN2tC,UAAY4mD,GAAD,UAAoBA,EAApB,aACXvnD,MAAM,GAEV,CACIn4B,UAAW,OACX7U,KAAM,eACN2tC,UAAYgW,GAAW7pC,GAAkBjV,OAAO8+C,GAChD3W,MAAM,EACNa,UAAW,CAACH,EAAM/lC,IAAQ+qC,OAAOhF,GACjCiS,MAAO,QACPC,YAAa,UAQfoM,EAAY,CACd71B,QAAS,CAACrd,EAAGnR,EAAKskD,KACdj7B,KAAKgtC,WAAWllD,EAAGnR,KAI3B,OACI,kBAAC,KAAD,CACIomC,YAAU,EACVC,UAAU,EACVf,QAAQ,oBACRgB,eAAe,mBACfC,SAAS,KACT1qC,KAAMwtB,KAAKK,MAAMrR,MACjB+sB,QAASA,EACTwa,WAnBW,CAAC5/C,EAAKskD,IACd,UAmBHD,UAAWA,EACX3d,iBACI,kBAAC,GAAD,CAAkBvxC,QAASk0B,KAAKK,MAAMv0B,aAgB3Cq9B,oBAAW1D,YATD93B,IACd,CACH5B,KAAM4B,EAAMe,KAAK3C,KACjBijB,MAAOrhB,EAAM2qB,MAAMtJ,MAAMH,UACzBhc,QAASlF,EAAM2qB,MAAMtJ,MAAMnc,QAC3B/G,QAAS6B,EAAM2qB,MAAMtJ,MAAMljB,UAIT25B,CAAyB29D,KC/InD,MAAMI,WAAuB/gE,IAAMC,UACjCe,SACE,OACE,oCACE,kBAAC,GAAD,MACA,kBAAC,GAAD,QAMO+/D,U,OCPR,MAAMC,GAAe1uE,IACxB,MAAMgR,EzQ4IkB,oCyQ5IMlc,QAAQ,cAAekL,GACrD,OAAOhL,KACFC,IAAI+b,GACJ9b,KAAM2U,GACIA,EAAKpsB,MAEf0X,MAAOla,IACJ,MAAMA,KC6BlB,MAAMkjD,WAAsBzwB,IAAMC,UAAW,cAAD,yBAMxC/0B,MAAQ,CACJ+D,SAAU,GACVC,iBAAiB,EACjBojB,SAAUiL,KAAKK,MAAMoM,MAAMmI,OAAOphC,GAClC5B,QAAS,MAV2B,KAwOxC8xF,2BAA8B5wC,IAC1BtxC,KACA,MAAMmiF,EAAW3jE,KAAKK,MAAM4H,SAASD,SCzQT8qB,KAClC,MAAM/sB,E3QoIJ,4C2QpIsClc,QAAQ,eAAgBipC,GAChE,OAAO/oC,KACJC,IAAI+b,GACJ9b,KAAM2U,GACEA,EAAKpsB,MAEb0X,MAAOla,IACN,MAAMA,KDkQJ4zF,CAAoB9wC,GACf7oC,KAAK,KACF5I,GACI,wCACAsiF,GACA,KAGPz5E,MAAOla,IACJuR,GAAsB,8CAAD,OAC6B0F,GAAsBjX,IACpE2zF,GACA,MAvPwB,KA4PxCE,2BAA6B,KACzBriF,KACA,MAAMmiF,EAAW3jE,KAAKK,MAAM4H,SAASD,SCjRTjT,KAClC,MAAMgR,E3QyH8B,0C2QzHIlc,QAAQ,cAAekL,GAC/D,OAAOhL,KACJC,IAAI+b,GACJ9b,KAAM2U,GACEA,EAAKpsB,MAEb0X,MAAOla,IACN,MAAMA,KD0QJ8zF,CAAoB9jE,KAAKryB,MAAMonB,UAC1B9K,KAAK,KACF5I,GACI,6CACAsiF,GACA,KAGPz5E,MAAOla,IACJuR,GAAsB,oCAAD,OACmB0F,GAAsBjX,IAC1D2zF,GACA,MA9PhB92D,oBACIrrB,KACAiiF,GAAYzjE,KAAKryB,MAAMonB,UAAU9K,KAAM3G,IACnCwoC,GAA6BxoC,EAAOlW,QC3Db2nB,KACjC,MAAMgR,E3Q8IsB,6C2Q9IIlc,QAAQ,cAAekL,GACvD,OAAOhL,KACJC,IAAI+b,GACJ9b,KAAM2U,GACEA,EAAKpsB,MAEb0X,MAAOla,IACN,MAAMA,KDqDJ+zF,CAAmB/jE,KAAKryB,MAAMonB,UAAU9K,KAAMvY,IAC1CsuB,KAAKkM,SAAS,CACVx6B,SAAUA,EAASA,SACnBE,QAASF,EAASsyF,qBAClBryF,iBAAiB,MAK7Bq7B,uBACI+e,KAGJtoB,SACI,OACI,oCACI,kBAACoD,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,CAAK2D,GAAG,QACJ,kBAACoT,GAAD,CACI1Y,QAAS,IACLnF,KAAKK,MAAMmG,QAAQI,KAAKhN,GAAKmD,WAEjC/tB,KAAK,aAIjB,kBAACg7B,GAAA,EAAD,CAAMtpB,UAAU,sBACZ,kBAACqwB,GAAA,EAAD,CAAYrwB,UAAU,wBAClB,kBAACmmB,GAAA,EAAD,CAAKnmB,UAAU,uBACX,kBAAComB,GAAA,EAAD,KACI,0BAAMpmB,UAAU,WAAhB,iBAEJ,kBAAComB,GAAA,EAAD,CAAKpmB,UAAU,mCACX,kBAACmmB,GAAA,EAAD,CAAKnmB,UAAU,sBACX,kBAAComB,GAAA,EAAD,CAAKpmB,UAAU,cACX,0BAAMA,UAAU,WACY,OAAvBsf,KAAKryB,MAAMiE,QACN,IACAkX,GAAkBjV,OAAOmsB,KAAKryB,MAAMiE,WAGlD,kBAACk1B,GAAA,EAAD,CAAKpmB,UAAU,IACX,kBAAC26B,GAAA,EAAD,CACIlQ,MAAM,YACNhG,QACInF,KAAK6jE,2BAETn5D,KAAK,IACLhqB,UAAU,uCACVwkB,UACKlF,KAAKryB,MAAMiE,SACZouB,KAAKryB,MAAMiE,SAAW,GAT9B,wBAmBpB,kBAACq4B,GAAA,EAAD,CAAUvpB,UAAU,kBACfsf,KAAK8b,iBAO1BA,cACI,GAAI9b,KAAKryB,MAAMgE,gBACX,OAAO,kBAAC,GAAD,MAGX,MAsBMoqC,EAAU,CACZ,CACIl4B,UAAW,SACX7U,KAAM,cACNgtC,MAAM,EACNW,UAAY3oC,GACR,kBAAC,GAAD,CAAc5G,KAAM4G,EAAM5G,KAAMuzC,IAAK3sC,EAAM2sC,MAE/C9D,UAAY7oC,GAAUA,EAAM5G,MAAQ,IAExC,CACIyW,UAAW,OACX7U,KAAM,kBACNgtC,MAAM,EACNW,UAAY3oC,GACR,kBAAC,GAAD,CAAUA,MAAOA,EAAO29C,YArCD,eAuC3B9U,UAAY7oC,GAAUJ,KAAOI,EAvCF,eAyC/B,CACI6P,UAAW,SACX7U,KAAM,UACNgtC,MAAM,EACNE,cAAe,oBACfD,QAAS,aAETU,UAAY3oC,GACR,kBAAC,GAAD,CACIma,OAAQna,EACRrF,KAAM4gC,GAAkBv7B,MAIpC,CACI6P,UAAW,WACX7U,KAAM,sBACNgtC,MAAM,EACNM,YAAa,CAACC,EAAQC,KACX,IAIXG,UAAY3oC,GACR,kBAAC,GAAD,CAAUA,MAAOA,EAAO29C,YAjED,eAmE3B9U,UAAY7oC,GAAUJ,KAAOI,EAnEF,eAqE/B,CACI6P,UAAW,SACX7U,KAAM,aACNitC,QAAS,aACTD,MAAM,EACNa,UAAW,CAACH,EAAM/lC,IAAQ+qC,OAAOhF,GACjCJ,YAAa,CAACC,EAAQC,KACX,IAIXmS,MAAO,QACPC,YAAa,QACbjS,UAAY3oC,GAAU8U,GAAkBjV,OAAOG,IAEnD,CACI6P,UAAW,cACX7U,KAAM,UACNitC,QAAS,aACTD,MAAM,EACNa,UAAW,CAACH,EAAM/lC,IAAQ+qC,OAAOhF,GACjCJ,YAAa,CAACC,EAAQC,KACX,IAIXmS,MAAO,QACPC,YAAa,QACbjS,UAAY3oC,GAAU8U,GAAkBjV,OAAOG,IAEnD,CACI6P,UAAW,GACX7U,KAAM,UACN2/C,MAAO,SACPC,YAAa,SACbtS,YAAa,CAACC,EAAQC,KACX,IAIXG,UA3GgB,CAACD,EAAM/lC,IACR,YAAfA,EAAIwX,OAEA,kBAACktB,GAAA,EAAD,CAAQlQ,MAAM,YAAYzqB,UAAU,aAAawkB,UAAQ,GAAzD,WAMA,kBAACmW,GAAA,EAAD,CACIlQ,MAAM,UACNhG,QAAS,IAAMnF,KAAK0jE,2BAA2B/sF,EAAInD,IACnDkN,UAAU,cAHd,kBAsGZ,OACI,kBAAC,KAAD,CACIq8B,YAAU,EACVC,UAAU,EACVf,QAAQ,oBACRgB,eAAe,gDACfC,SAAS,KACT1qC,KAAMwtB,KAAKryB,MAAM+D,SACjBqqC,QAASA,EACTsB,iBACI,kBAAC,GAAcnD,iBAAf,CACIpuC,QAASk0B,KAAKK,MAAM1uB,oBAOjB,wBAAC0uB,GACpB,IAAInrB,EAAU,6BAKd,OAJImrB,EAAMv0B,UACNoJ,EAAU,kBAAC,GAAD,OAGP,yBAAKwL,UAAU,eAAexL,IAqD9Bi0B,oBAAW1D,YATD93B,IACd,CACH+D,SAAU/D,EAAM+D,SAASA,SACzBC,gBAAiBhE,EAAM+D,SAASC,gBAChCC,QAASjE,EAAM+D,SAASE,QACxBqiD,kBAAmBtmD,EAAM0U,OAAOR,eAId4jB,CAAyBytB,KEpUnD,MAAM+wC,WAA0BxhE,IAAMC,UACpCe,SACE,OACI,kBAAC,GAAD,OAKOwgE,UCPf,MAAMC,WAAuBzhE,IAAMC,UAC/Be,SACI,SAASia,EAAmBxV,GACxB,OACI,kBAAC,KAAD,CACIK,KAAML,EAAMK,KACZ9E,OAAQpD,GAEJ,kBAAC6H,EAAMyV,UAAP,iBAAqBtd,EAArB,CAA4B0H,OAAQG,EAAMH,YAM1D,OACI,oCACI,kBAAC,KAAD,KACK/H,KAAKK,MAAM0H,OAAOzyB,IAAI,CAAC4yB,EAAOngB,IAC3B,kBAAC21B,EAAD,eAAoBzxC,IAAK8b,GAAOmgB,QASzCg8D,UCUf,MAAMhqD,GAAoB7Z,IACtB,IAAInrB,EAAU,8BAId,OAHImrB,EAAM8jE,iBACNjvF,EAAU,kBAAC,GAAD,OAEP,yBAAKwL,UAAU,eAAexL,IAGzC,MAAMkvF,WAAgB3hE,IAAMC,UAAW,cAAD,yBAClC/0B,MAAQ,CACJysD,oBAAoB,EACpBC,wBAAwB,EACxBC,aAAc,GACd+pC,cAAe,GACfC,qBAAsB,GACtBC,sBAAuB,CACnB,CACI/wF,GAAI,IACJmF,MAAO,gBAEX,CACInF,GAAI,IACJmF,MAAO,UAEX,CACInF,GAAI,IACJmF,MAAO,aAlBe,KA2BlCq0D,WAAa,CAACllD,EAAGnR,KACb,MAAMgqC,EAAM/mB,GAAKyD,iCAAiCxT,QAC9C,MACAlT,EAAInD,IAERwsB,KAAKK,MAAMmG,QAAQI,KAAK+Z,IAhCM,KAmClCs1B,mBAAqB,CAACjyD,EAAMC,KACxB,MACMkyD,EAAgB,IADIn2C,KAAKK,MAAMtc,WACSC,OAAMC,eACpD+b,KAAKK,MAAMmkE,6BAA6BruB,IAtCV,KA2QlC6a,OAAS,CAACntE,EAAWC,KACjBkc,KAAKK,MAAMokE,0BAA0B,CAAE5gF,YAAWC,WA5QpB,KA+QlCy2C,kBAAoB,IACTnlC,MAAuBV,KAhRA,KAmRlC8lC,qBAAuB,IACZplC,MAAuBV,KApRA,KAuRlC+lC,mBAAqB,KACjBz6B,KAAKkM,SAAUsH,IACJ,CACH4mB,oBAAqB5mB,EAAU4mB,uBA1RT,KA+RlCM,uBAAyB,KACrB16B,KAAKkM,SAAUsH,IACJ,CACH6mB,wBAAyB7mB,EAAU6mB,2BAlSb,KAuSlCM,kBAAqB5uD,IACjByV,KACAwe,KAAKkM,SAAS,CACVmuB,wBAAwB,EACxBC,aAAcvuD,KA3SY,KA+SlC6uD,aAAgB7uD,IACZyV,KACAq1C,GAAW9qD,EAAK8uD,SACX5wC,KAAM2U,IACH83B,KACAr1C,GACI,uBACA2e,KAAKK,MAAM4H,SAASD,YAG3B9d,MAAOre,IACJ0V,GACI1V,EAAM4F,QACNuuB,KAAKK,MAAM4H,SAASD,aArSpC6E,oBACI4qB,IAAqB,GAiBzBh0B,SACI,OACI,oCACI,yBAAK/iB,UAAU,2BACX,kBAAC,KAAD,CACIwoB,GAAItP,GAAKuD,kBACTzc,UAAU,wBAFd,YAMA,kBAAC,KAAD,CACIwoB,GAAItP,GAAK2D,mBACT7c,UAAU,6BAFd,aAMA,kBAAC,KAAD,CACIwoB,GAAItP,GAAK4D,cACT9c,UAAU,6BAFd,QAOJ,kBAACspB,GAAA,EAAD,CAAMtpB,UAAU,mBACZ,kBAACqwB,GAAA,EAAD,KACI,kBAAClK,GAAA,EAAD,CAAKnmB,UAAU,sBACX,kBAAComB,GAAA,EAAD,CAAKpmB,UAAU,wCACX,0BAAMA,UAAU,WAAhB,WAEJ,kBAAComB,GAAA,EAAD,CAAKpmB,UAAU,+BACX,kBAAC,GAAD,CACI1M,MAAOgsB,KAAKK,MAAMxtB,QAAQyQ,OAC1B/H,QAASykB,KAAKK,MAAMlzB,SAAW,GAC/BumE,cAAY,EACZn4B,aAAW,EACXxH,YAAY,oBACZyH,eAAiBC,GAAWA,EAAOruC,KACnCsuC,eAAiBD,GAAWA,EAAOjoC,GACnCkN,UAAU,OACV0xB,SAAW9uB,GACP0c,KAAKK,MAAMqkE,yBAAyB,SAAUphF,GAElDokC,UAAW1nB,KAAKK,MAAM8jE,eACtBQ,eAAgB,IAAM,aAG9B,kBAAC79D,GAAA,EAAD,CAAKpmB,UAAU,6DACX,kBAAC,GAAD,CACInF,QAASykB,KAAKryB,MAAM42F,sBACpBhpD,aAAW,EACXvnC,MAAOgsB,KAAKK,MAAMxtB,QAAQ2c,eAC1BgsB,eAAiBC,GAAWA,EAAO9iC,MACnC+iC,eAAiBD,GAAWA,EAAOjoC,GACnCugC,YAAY,kBACZ3B,SAAWjkB,GACP6R,KAAKK,MAAMqkE,yBAAyB,iBAAkBv2E,MAIlE,kBAAC2Y,GAAA,EAAD,CAAKpmB,UAAU,yCACX,kBAAC26B,GAAA,EAAD,CACIC,OAAK,EACLnQ,MAAM,UACNzqB,UAAU,OACVykB,QAAUrd,IACNA,EAAE0wC,iBACFf,IAAqB,IAEzBvyB,SAAUlF,KAAKK,MAAM8jE,eACrBv7E,MAAO,CAAEq5D,SAAU,UAElBjiD,KAAKK,MAAM8jE,eAAiB,kBAAC,GAAD,MAAuB,aAKpE,kBAACl6D,GAAA,EAAD,CAAUvpB,UAAU,OAAOsf,KAAK8b,eAChC,kBAAC,GAAD,CACIqc,SAAS,SACT7Q,OAAQtnB,KAAKryB,MAAMysD,mBACnBvS,OAAQ7nB,KAAKy6B,qBAEjB,kBAAC,GAAD,CACItC,SAAS,SACTpsD,KAAMi0B,KAAKryB,MAAM2sD,aACjBhT,OAAQtnB,KAAKryB,MAAM0sD,uBACnBxS,OAAQ7nB,KAAK06B,2BAOjC5e,cACI,GAAI9b,KAAKK,MAAM8jE,eACX,OAAO,kBAAC,GAAD,MAEX,IAAIS,EAAkB5kE,KAAKK,MAAMukE,gBAEjC,IAAKA,EACD,OAAO,KAGX,MAAM7oD,EAAU,CACZ,CACIl4B,UAAW,OACX7U,KAAM,SACNgtC,MAAM,EACNg1C,OAAQhxD,KAAKgxD,OACb/0C,QAAS,eAEb,CACIp4B,UAAW,QACX7U,KAAM,YACNgtC,MAAM,EACNg1C,OAAQhxD,KAAKgxD,QAEjB,CACIntE,UAAW,gBACX7U,KAAM,iBACN2tC,UAAYpC,GAAS3mC,KAAO2mC,GAAM1mC,OnN1MvB,cmN2MXmoC,MAAM,EACNg1C,OAAQhxD,KAAKgxD,QAEjB,CACIntE,UAAW,kBACX7U,KAAM,kBACNgtC,MAAM,EACNg1C,OAAQhxD,KAAKgxD,OACbn0C,UAAW,CAACH,EAAM/lC,IAAQ+lC,EAAK/jC,MAC/BgkC,UAAYpV,GACR,kBAAC,GAAD,CACIpZ,OAAQoZ,EAAI5uB,MACZhK,KAAMygE,GAAsB7nC,EAAIvzB,UAI5C,CACI6P,UAAW,YACX7U,KAAM,wBACN2tC,UAAYpC,GACRA,EAAO3mC,KAAO2mC,GAAM1mC,OnN/Nb,cmN+NmC,GAC9CmoC,MAAM,EACNg1C,OAAQhxD,KAAKgxD,SAUfz6B,EAAa,CAAC5/C,EAAKskD,IACd,UAGLD,EAAY,CACd71B,QAAS,CAACrd,EAAGnR,EAAKskD,KACdj7B,KAAKgtC,WAAWllD,EAAGnR,KAIrB06E,EAAoB,CACtBC,QAAQ,EACRttE,KAAMgc,KAAKK,MAAMtc,WAAWC,KAC5BC,YACI+b,KAAKK,MAAMtc,WAAWE,aACtB+b,KAAKK,MAAMtc,WAAWG,SAC1B8rD,UAAWhwC,KAAKK,MAAMtc,WAAWG,SACjCC,gBAAiB6b,KAAKK,MAAMtc,WAAWI,gBACvCssD,oBAAqB,CAACxsD,EAAaD,KAC/Bgc,KAAKi2C,mBAAmBjyD,EAAMC,IAElCssD,aAAc,CAACvsD,EAAMC,KACjB+b,KAAKi2C,mBAAmBjyD,EAAMC,KAIhCq5B,EAAgB,CAClBtd,KAAKK,MAAMzc,SAGf,OACI,kBAAC,sBAAD,CACIG,WAAYytE,KAAkBH,IAE7B,QAAC,gBAAEI,EAAF,qBAAmBC,GAApB,SACG,oCACI,kBAAC7qD,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,KACI,kBAAC,KAAD,eACIiW,YAAU,EACVC,UAAU,EACVf,QAAQ,kCACRgB,eAAe,gDACfC,SAAS,KACT1qC,KAAMoyF,EACN7oD,QAASA,EACTwa,WAAYA,EACZyE,UAAWA,EACX1d,cAAeA,EACf84B,cAAep2C,KAAKo2C,eAChBsb,EAZR,CAaIr0C,iBACI,kBAAC,GAAD,CACIvxC,QAASk0B,KAAKK,MAAM8jE,sBAMxC,kBAACt9D,GAAA,EAAD,CAAKnmB,UAAU,QACX,kBAAComB,GAAA,EAAD,CAAKpmB,UAAU,aACX,kBAAC,GAAD,eACIyvD,uBAAuB,WACnBshB,UAiExC,MAWMtrD,GAAoB,CACtBq+D,6B9I1WyCzgF,IAClC,CACHpV,KzJwWJ,kCyJvWIoV,e8IuW0B2gF,yB9InWM,CAACz4F,EAAK+H,KACnC,CACHrF,KzJmWmC,8ByJlWnC1C,IAAKA,EACL+H,MAAOA,I8I+V6CywF,0B9I3VlB7gF,IAC/B,CACHjV,KzJ0VoC,+ByJzVpCiV,a8I2VOulB,oBAAW1D,YAfD93B,IACd,CACHR,QAASQ,EAAM2qB,MAAM9qB,MAAML,QAC3Bg3F,eAAgBx2F,EAAM2qB,MAAM9qB,MAAM1B,QAClC84F,gBAAiBj3F,EAAM2qB,MAAM9qB,MAAM+hB,gBACnCxL,WAAYpW,EAAM2qB,MAAM9qB,MAAM8hB,0BAC9Bzc,QAASlF,EAAM2qB,MAAM9qB,MAAM6hB,eAC3BzL,QAASjW,EAAM2qB,MAAM9qB,MAAMsiB,iBAQgBqW,GAAzBV,CAA4C2+D,KCjXtE,MAAMS,WAAepiE,IAAMC,UAAW,cAAD,yBACjC/0B,MAAQ,CACJonB,SAAUiL,KAAKK,MAAMoM,MAAMmI,OAAOphC,IAGtCq5B,oBACI42D,GAAYzjE,KAAKryB,MAAMonB,UAAU9K,KAAM3G,IACnCwoC,GAA6BxoC,EAAOlW,QAI5C4/B,uBACI+e,KAGJtoB,SACI,SAASia,EAAmBxV,GACxB,OACI,kBAAC,KAAD,CACIK,KAAML,EAAMK,KACZ9E,OAASpD,GAEL,kBAAC6H,EAAMyV,UAAP,iBAAqBtd,EAArB,CAA4B0H,OAAQG,EAAMH,YAM1D,OACI,oCACI,kBAAClB,GAAA,EAAD,CAAKnmB,UAAU,QACX,kBAAComB,GAAA,EAAD,CAAK2D,GAAG,QACJ,kBAACoT,GAAD,CACI1Y,QAAS,IACLnF,KAAKK,MAAMmG,QAAQI,KAAKhN,GAAKuD,mBAEjCnuB,KAAK,aAIjB,yBAAK0R,UAAU,2BACX,kBAAC,KAAD,CACIwoB,I1PyBiB11B,E0PzBYwsB,KAAKryB,MAAMonB,S1P0BrD6E,GAAKyD,iCAAiCxT,QAAQ,MAAOrW,I0PzBxCkN,UAAU,wBAFd,WAMA,kBAAC,KAAD,CACIwoB,GAAInL,GAAuBiC,KAAKryB,MAAMonB,UACtCrU,UAAU,6BAFd,cAQJ,kBAAC,KAAD,KACKsf,KAAKK,MAAM0H,OAAOzyB,IAAI,CAAC4yB,EAAOngB,IAC3B,kBAAC21B,EAAD,eAAoBzxC,IAAK8b,GAAOmgB,O1PUjD,IAAkC10B,G0PF1BqxF,UC/Df,MAAMC,WAAgCpiE,YAAW,cAAD,yBAc5C/0B,MAAQ,CACJ6uD,UAAW,GACXC,oBAAoB,EACpB1nC,SAAUiL,KAAKK,MAAMoM,MAAMmI,OAAOphC,GAClC8P,OAAQ,CACJlW,KAAM,GACN+vD,QAAS,CACLrjD,aAAc,GACd2kD,KAAM,GACNrB,SAAU,MAvBsB,KA4C5CjC,uBAAyB,IACdn7B,KAAKK,MAAMyU,YAAc9U,KAAKK,MAAM4H,SAASD,SA7CZ,KAgD5CqzB,iBAAoBG,GACTj8B,OAAOwiB,OAAOyZ,GAAQC,MACxBr5B,GAAY,KAANA,QAAkBnJ,IAANmJ,GAAyB,OAANA,GAlDF,KAuE5C07B,iBAAmB,KACX99B,KAAKK,MAAMq7B,gBAIVpnC,MACDI,MACAE,MA9EoC,KAkF5C0mC,UAAa1kD,GACFopB,KAAKK,MAAMk7B,cAAcp5C,SAASvL,GAvD7Ci2B,oBACI42D,GAAYzjE,KAAKryB,MAAMonB,UAAU9K,KAAM3G,IACnC0c,KAAKkM,SAAS,CACV5oB,OAAQA,MAuDpB26C,oBACI,MAAME,GAAqBn+B,KAAKK,MAAMq7B,aAEtC,OACI,kBAAC,GAAD,CACIx2B,SAAUi5B,EACVzqB,UAAU,+BAEV8H,eAAiBC,GAAWA,EAAO9iC,MACnC+iC,eAAiBD,GAAWA,EAAOznC,MACnC+/B,YAAY,+BACZ3mC,KAAK,QACL4G,MAAOgsB,KAAKryB,MAAM2V,OAAOyhF,aAEzBrkF,UAAU,SACVsyB,SAAUhT,KAAKK,MAAMq7B,aACrBtoB,QAASpT,KAAKs7B,UAAU,SACxB+C,iBAAmB5iB,GACE,IAAjBA,EAAOznC,QAAiD,IAAlCgsB,KAAKryB,MAAM8uD,qBAMjDh5B,SACI,GAAIzD,KAAKK,MAAMnmB,sBACX,OACI,kBAACi6C,GAAD,KACI,kBAAC,GAAD,OAKZ,MAAM/f,EAAapU,KAAK89B,mBAClBQ,GAAoB5pC,KACpBypC,GAAqBn+B,KAAKK,MAAMq7B,aACtC,OACI,kBAAC70B,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,CAAKgK,GAAI,GACL,kBAAC,GAAD,CACI5L,SAAUi5B,EACVzqB,UAAU,mBACVn4B,QAASykB,KAAKryB,MAAM6uD,UACpBxoD,MAAOgsB,KAAKryB,MAAM2V,OAClBywB,YAAY,oBACZ3mC,KAAK,OACLouC,eAAiBC,GAAWA,EAAOruC,KACnCsuC,eAAiBD,GAAWA,EAAOruC,KAGnCsT,UAAU,SACV89C,iBAAkB,IACd,mCAEJxrB,SAAUhT,KAAKK,MAAMq7B,aACrBtoB,QAASpT,KAAKs7B,UAAU,UAG5B,kBAAC,GAAD,CACIp2B,UAAQ,EACRv2B,KAAK,OACLvB,KAAK,UACL4G,MAAOgsB,KAAKryB,MAAM2V,OAAO3J,WACzBo6B,YAAY,eACZrzB,UAAU,WACVsyB,SAAUhT,KAAKK,MAAMq7B,aACrBhoB,UAAU,eACVN,QAASpT,KAAKs7B,UAAU,gBAE3BgD,GACG,kBAAC,GAAD,CACIp5B,UAAQ,EACRv2B,KAAK,OACLvB,KAAK,OACL4G,MAAOgsB,KAAKryB,MAAM2V,OAAOzJ,KACzBk6B,YAAY,OACZrzB,UAAU,WACVsyB,SAAUhT,KAAKK,MAAMq7B,aACrBhoB,UAAU,OACVN,QAASpT,KAAKs7B,UAAU,UAG/Bt7B,KAAKi+B,qBAEV,kBAACn3B,GAAA,EAAD,CAAKgK,GAAI,GACL,kBAAC,GAAD,CACIniC,KAAK,QACLvB,KAAK,QACL4G,MAAOgsB,KAAKryB,MAAM2V,OAAO0hF,cACzBjxD,YAAY,sBACZrzB,UAAU,WAEVsyB,SAAUhT,KAAKK,MAAMq7B,aACrBhoB,UAAU,sBACVN,QAASpT,KAAKs7B,UAAU,SACxBp2B,SAAUkP,IAEbkqB,GACG,oCACI,kBAAC,GAAD,CACI3vD,KAAK,OACLvB,KAAK,OACL4G,MAAOgsB,KAAKryB,MAAM2V,OAAO1J,KACzBm6B,YAAY,OACZrzB,UAAU,WAEVsyB,SAAUhT,KAAKK,MAAMq7B,aACrBhoB,UAAU,cACVN,QAASpT,KAAKs7B,UAAU,QACxBp2B,SAAUkP,IAEd,kBAAC,GAAD,CACIzlC,KAAK,OACLvB,KAAK,eACL4G,MAAOgsB,KAAKryB,MAAM2V,OAAO65C,QAAQrjD,aACjCi6B,YAAY,UACZrzB,UAAU,WAEVsyB,SAAUhT,KAAKK,MAAMq7B,aACrBhoB,UAAU,UACVN,QAASpT,KAAKs7B,UAAU,gBACxBp2B,SAAUkP,IAEd,kBAAC,GAAD,CACIzlC,KAAK,OACLvB,KAAK,OACL4G,MAAOgsB,KAAKryB,MAAM2V,OAAO65C,QAAQsB,KACjC1qB,YAAY,iBACZrzB,UAAU,WAEVsyB,SAAUhT,KAAKK,MAAMq7B,aACrBhoB,UAAU,iBACVN,QAASpT,KAAKs7B,UAAU,QACxBp2B,SAAUkP,IAEd,kBAAC,GAAD,CACIzlC,KAAK,OACLvB,KAAK,WACL4G,MAAOgsB,KAAKryB,MAAM2V,OAAO65C,QAAQC,SACjCrpB,YAAY,cACZrzB,UAAU,WAEVsyB,SAAUhT,KAAKK,MAAMq7B,aACrBhoB,UAAU,cACVN,QAASpT,KAAKs7B,UAAU,YACxBp2B,SAAUkP,QAvOpC0wD,GASKj2D,aAAe,CAClB6sB,cAAc,EACdH,cAAe,IAgPRpyB,oBACX1D,YAXqB93B,IACd,IAUkB,CAAEiN,yBAA3B6qB,CAAmDq/D,KC5PvD,MAAMG,WAA0BxiE,IAAMC,UAAW,cAAD,yBAQ5C/0B,MAAQ,CAAEu3F,sBAAsB,EAAOC,sBAAsB,GARjB,KA8C5CC,uBAAyB,KACrBplE,KAAKkM,SAAS,CACVg5D,sBAAsB,KAhDc,KAoD5CG,oBAAsB,KAClBrlE,KAAKkM,SAAS,CACVg5D,sBAAsB,IAE1B1jF,MAxDwC,KA2D5C8jF,cAAgB,KACZ9jF,KAEAwe,KAAKkM,SAAS,CACVi5D,sBAAsB,IAG1B,MAAMp/D,EjRiEmC,kDiRjEUlc,QAAQ,cAAemW,KAAKK,MAAMtL,UAIrF,OAAOhL,KACF2U,KAAKqH,EAJG,CACTw/D,aAAa,IAIZt7E,KAAM2U,IACHxd,GACIwd,EAAKpsB,KACLwtB,KAAKK,MAAM4H,SAASD,UAExBhI,KAAKkM,SAAS,CACVg5D,sBAAsB,MAG7Bh7E,MAAOre,IAEJ0V,GADa,+CAAqC0F,GAAsBpb,IACzCo5F,GAAkBnwD,YAAY,KAEhE2e,QAAQ,KACLzzB,KAAKkM,SAAS,CACVi5D,sBAAsB,OA5EtC1hE,SACI,OACI,oCACI,kBAAC4X,GAAA,EAAD,CACIQ,SAAO,EACPn7B,UAAU,OACVyqB,MAAM,UACNhG,QAASnF,KAAKolE,wBAJlB,6BASCplE,KAAKwlE,0BAKlBA,yBACI,OACI,kBAAC,GAAD,CACIplE,MAAO,uBACPknB,OAAQtnB,KAAKryB,MAAMu3F,qBACnB39C,SAAUvnB,KAAKqlE,oBACf79C,SAAUxnB,KAAKqlE,oBACf59C,UAAWznB,KAAKslE,cAChB59C,UAAW1nB,KAAKryB,MAAMw3F,qBACtB/wD,WAAYpU,KAAKryB,MAAMw3F,qBACvBx9C,YAAa,CAACs9C,GAAkBnwD,aAEhC,uBAAGp0B,UAAU,cAAb,+HACA,uBAAGA,UAAU,cAAb,iDAzCVukF,GAKKp2D,aAAe,GALpBo2D,GASKnwD,WAAa,oBAoFT3L,oBAAW87D,I,cChF1B,MAAMz7B,WAAsB9mC,YAAW,cAAD,yBAClC/0B,MAAQ,CACJ0mD,MAAOr0B,KAAKK,MAAMolE,UAClBh8B,aAAc,KACdI,WAAW,EACXprC,WAAY,GACZinE,oBAAoB,EACpBC,mBAAmB,GAPW,KA8BlCx7B,QAAU,IAAI/C,GA9BoB,KAgClCgD,aAAe,KACX5oD,KAEKwe,KAAKryB,MAAM87D,aASgB,MAA5BzpC,KAAKryB,MAAM87D,aACXzpC,KAAK6qC,cAC8B,MAA5B7qC,KAAKryB,MAAM87D,aAClBzpC,KAAK8qC,gBAC8B,MAA5B9qC,KAAKryB,MAAM87D,cAClBzpC,KAAKsmC,iBAbL/kD,GACI,oC3PnCmB,gB2PqCnB,IAvCsB,KAqDlCspD,YAAc,KACV7qC,KAAK+qC,cAAa,GAClBvpD,KAEA,MAAMwpD,EAAehrC,KAAKK,MAAMt0B,KAAKQ,MAC/B+rD,EAAet4B,KAAKK,MAAMt0B,KAAKC,cAC/BsC,EAAO0xB,KAAKK,MAAMt0B,KAAKuC,M3P0I9B,SACH08D,EACAh/D,EACAsC,EACAqwB,GAEA,OAAO5U,KACF2U,KvBpL2B,iCuBoLA,CACxBiqC,aAAcqC,EACdh/D,cAAeA,EACfsC,KAAMA,EACNqwB,YAAaA,IAEhB1U,KAAM2U,GACIA,EAAKpsB,MAEf0X,MAAOla,IACJ,MAAMma,MAAMlD,GAAsBjX,O2PzJtC41F,CACI56B,EACA1S,EACAhqD,EACA0xB,KAAKK,MAAM5B,YAEVxU,KAAKsgC,UACF/oC,MACqB,IAAjBhP,EAAK21D,SACL9mD,GAAqB,gBAAD,OACA7O,EAAK24D,aADL,6BACsCH,EADtC,+E3PpEL,gB2PwEfhrC,KAAKorC,gBACD54D,EAAK5G,MACLyyB,GACA,IACA2B,KAAKK,MAAM5B,cAGfld,GACI,8C3PhFW,gB2PkFX,GAEJye,KAAK+qC,cAAa,MAGzB7gD,MAAOla,IACJwR,KACAD,GACI,6CACA0F,GAAsBjX,G3P3FP,gB2P6Ff,GAEJgwB,KAAK+qC,cAAa,MAjGI,KAqGlCD,cAAgB,KACZ9qC,KAAK+qC,cAAa,GAClBvpD,M3PkID,SAA0BxV,EAAesC,EAAMqwB,GAClD,OAAO5U,KACF2U,KvBlN0B,gCuBkNA,CACvBiqC,aAAc,GACd38D,cAAeA,EACfsC,KAAMA,EACNqwB,YAAaA,IAEhB1U,KAAM2U,GACIA,EAAKpsB,MAEf0X,MAAOla,IACJ,MAAMma,MAAMlD,GAAsBjX,O2P1ItC61F,CAFqB7lE,KAAKK,MAAMt0B,KAAKC,cACxBg0B,KAAKK,MAAMt0B,KAAKuC,KACQ0xB,KAAKK,MAAM5B,YAC3CxU,KAAKsgC,UACF/oC,MACqB,IAAjBhP,EAAK21D,SACL9mD,GAAqB,gBAAD,OACA7O,EAAK24D,aADL,qG3P7GL,gB2PiHfnrC,KAAKorC,gBACD54D,EAAK5G,MACLyyB,GACA,IACA2B,KAAKK,MAAM5B,cAGfld,GACI,6C3PzHW,gB2P2HX,GAEJye,KAAK+qC,cAAa,MAGzB7gD,MAAOla,IACJgwB,KAAK+qC,cAAa,GAClBvpD,KACAD,GACI,2C3PpIe,gB2PsIf,MAxIkB,KA6IlC+kD,eAAiB,KACbtmC,KAAK+qC,cAAa,GAClB,MAAMzS,EAAet4B,KAAKK,MAAMt0B,KAAKC,cA+BrCqV,GACI,4G3P7KuB,gB2P+KvB,GAEJ2e,KAAKmqC,QAAQvB,oBACTtQ,EAnCa9lD,IACbwtB,KAAK+qC,cAAa,GAElBvpD,MACqB,IAAjBhP,EAAK21D,SACL/mD,GACI,iCACAwY,GAAKuD,mBAET6C,KAAKsrC,iBAEL/pD,GACI,uC3P3Je,gB2P6Jf,IAKI1V,IACZm0B,KAAK+qC,cAAa,GAClBvpD,KAKAD,GAJqByG,GACjBnc,EACA,mC3PvKmB,gB2PyKkC,IAYzDm0B,KAAKK,MAAM5B,aAvLe,KA2LlC2sC,gBAAkB7gB,MAAO3+C,EAAO2yB,EAAMgtC,EAAY9sC,KA/LtD,IAAe+sC,UAgMK,IA/LT,IAAIjG,QAASC,GAAY2D,WAAW3D,EAASgG,KAiMhDltC,GAAkB1yB,EAAO2yB,EAAMgtC,EAAY9sC,GACtCxU,KAAMzX,KACkB,IAAjBA,EAAK21D,SACL3mD,KAEAwe,KAAKsrC,iBACgB,YAAd94D,EAAK+U,KACZyY,KAAKorC,gBAAgBx/D,EAAO2yB,EAAMgtC,EAAY9sC,GACzB,UAAdjsB,EAAK+U,OACZ/F,KACAwe,KAAK+qC,cAAa,GAClBxpD,GACI,kC3PxMW,gB2P0MX,MAIX2I,MAAOre,IACJ2V,KACAwe,KAAK+qC,cAAa,GAClBxpD,GACI,gC3PlNe,mB2PFG,KA0NlCwpD,aAAgB/2D,IACZgsB,KAAKkM,SAAS,CAAE29B,UAAW71D,KA3NG,KA8NlCy3D,QAAU,KACNzrC,KAAKkM,SAAS,CAAEu9B,aAAc,OA/NA,KAkOlC6B,cAAgB,KACZ7pD,KACA,MAAMqkF,EAAelsE,GAAKyD,iCAAiCxT,QACvD,MACAmW,KAAKK,MAAMtL,UAEf3T,GAAwB,iCAAkC0kF,GAC1DruC,IAAqB,GAAOvtC,MAAM,QAClC8V,KAAKK,MAAMmG,QAAQI,KAAKk/D,EAAc,CAAEC,gBAAgB,KA1O1B,KA6OlCr6B,gBAAmBC,IACf3rC,KAAKkM,SAAS,CAAEu9B,aAAckC,KA9OA,KAiPlCG,iBAAmB,IACR9rC,KAAKryB,MACPk8D,UAzOTh9B,oBACQ7M,KAAKK,MAAM5yB,WAAa4wB,GACxB2B,KAAKkM,SAAS,CACVu9B,aAAc,IACdi8B,oBAAoB,IAGnB1lE,KAAKK,MAAM5yB,WAAa4wB,GAC7B2B,KAAKkM,SAAS,CACVu9B,aAAc,IACdk8B,mBAAmB,IAIvB3lE,KAAKkM,SAAS,CACVu9B,aAAc,MA6N1BhmC,SACI,OACI,6BACI,kBAACmkB,GAAA,EAAD,CACIN,OAAQtnB,KAAKK,MAAMolE,UACnB59C,OAAQ7nB,KAAKK,MAAM2lE,YACnBtlF,UAAU,kBAEV,kBAACkjD,GAAA,EAAD,CACI/b,OAAQ7nB,KAAKK,MAAM2lE,YACnBtlF,UAAU,gBAEV,uBAAGA,UAAU,SAAb,2BACA,uBAAGA,UAAU,cAAb,gFAKJ,kBAACsnC,GAAA,EAAD,KACI,kBAAC,KAAD,CAAKtnC,UAAU,WACX,kBAAComB,GAAA,EAAD,CAAKgK,GAAI,GAAIpwB,UAAU,eACnB,uBAAGA,UAAU,WAAb,+BAMR,kBAAC,KAAD,CAAKA,UAAU,0BACX,kBAAComB,GAAA,EAAD,CAAKpmB,UAAU,iBACX,kBAAC,GAAD,CACIykB,QAAS,IAAMnF,KAAK0rC,gBAAgB,KACpCxU,WAAwC,MAA5Bl3B,KAAKryB,MAAM87D,aACvB/1B,UAAU,YACVxO,SAAUlF,KAAKryB,MAAMk8D,WAAa7pC,KAAKryB,MAAM+3F,mBAC7ChlF,UAAU,cACV0yB,QAASpT,KAAKryB,MAAMs8D,oBACpBr6B,WAAY,CAAE0L,OAAO,MAG7B,kBAACxU,GAAA,EAAD,CAAKpmB,UAAU,iBACX,kBAAC,GAAD,CACIykB,QAAS,IAAMnF,KAAK0rC,gBAAgB,KACpCxU,WAAwC,MAA5Bl3B,KAAKryB,MAAM87D,aACvB/1B,UAAU,WACVxO,SAAUlF,KAAKryB,MAAMk8D,WAAa7pC,KAAKryB,MAAMg4F,kBAC7CjlF,UAAU,cACV0yB,QAASpT,KAAKryB,MAAMs8D,oBACpBr6B,WAAY,CAAE0L,OAAO,MAG7B,kBAACxU,GAAA,EAAD,CAAKpmB,UAAU,iBACX,kBAAC,GAAD,CACIykB,QAAS,IAAMnF,KAAK0rC,gBAAgB,KACpCxU,WAAwC,MAA5Bl3B,KAAKryB,MAAM87D,aACvB/1B,UAAU,WACVxO,SAAUlF,KAAKryB,MAAMk8D,UACrBnpD,UAAU,cACV0yB,QAASpT,KAAKryB,MAAMs8D,oBACpBr6B,WAAY,CAAE0L,OAAO,OAIjC,kBAAC,KAAD,CAAK56B,UAAU,iBACX,kBAAComB,GAAA,EAAD,CAAKgK,GAAI,IACL,kBAAC,GAAD,CACI1G,YAAY,EACZC,aAAc,C3PtTf,qB2P0TTrK,KAAKryB,MAAMk8D,WACT,kBAAC,KAAD,CAAKnpD,UAAU,WACX,kBAAComB,GAAA,EAAD,CAAKgK,GAAI,GAAIpwB,UAAU,eACnB,kBAAC26B,GAAA,EAAD,CACInW,SAAUlF,KAAK8rC,mBACf3gC,MAAM,UACNhG,QAAS,IAAMnF,KAAKoqC,gBAHxB,qBAwBrBjhC,oBAAW1D,YAPD93B,IACd,CACH5B,KAAM4B,EAAMe,KAAK3C,KACjB0B,SAAUE,EAAMe,KAAKjB,WAIHg4B,CAAyB+jC,KC7UnD,MAAMy8B,WAAqBvjE,YAAW,cAAD,yBAYjC/0B,MAAQ,CACJonB,SAAUiL,KAAKK,MAAMoM,MAAMmI,OAAOphC,GAClC0yF,eAAgB,CACZ1yF,GAAI,GACJ2yF,OAAQ,IAEZV,WAAW,EACXW,0BAA0B,EAC1BC,oBAAoB,EACpBC,8BAA8B,EAC9B7nF,KAAM,KACN8nF,gBAAiB,KACjBC,mBAAmB,EACnBC,gCAAgC,EAChCC,0BAA0B,GA1BG,KA0CjCC,aAAe,KVhEY5xE,KAC3B,MAAMgR,EzQ2IN,8CyQ3IwClc,QAAQ,cAAekL,GAC/D,OAAOhL,KACFC,IAAI+b,GACJ9b,KAAM2U,GACIA,EAAKpsB,MAEf0X,MAAOla,IACJ,MAAMA,KUyDV42F,CAAe5mE,KAAKryB,MAAMonB,UAAU9K,KAAM5P,IACtC2lB,KAAKkM,SACD,CACI26D,SAAUrmF,KAAEwJ,IAAI3P,EAAW,qBAC3BN,MAAOyG,KAAEwJ,IAAI3P,EAAW,gBACxBysF,eAAgBtmF,KAAEwJ,IAAI3P,EAAW,2BACjC6rF,eAAgB7rF,EAAU0sF,OAC1BC,eAAgB3sF,EAAU4sF,gBAC1BZ,oBAAoB,GAExB,KACQrmE,KAAKryB,MAAMoM,OAAoC,IAA3BimB,KAAKryB,MAAMoM,MAAM/F,OACrCgsB,KAAKknE,oBAAoBlnE,KAAKryB,MAAMonB,cAK/C7K,MAAMre,IACHm0B,KAAKkM,SAAS,CACVm6D,oBAAoB,IAGxB9kF,GACI,qCAAuC0F,GAAsBpb,GAC7D,oBAnEiB,KAyEjCs7F,uBAAyB,CAACtyE,EAAYuyE,EAAQryE,M3HxC3C,SAA8BF,EAAYwyE,EAAQtyE,GACrD,OAAOhL,KACF2U,KxJqC6B,wCwJrCA,CAC1BjK,YAAaI,EACbgmC,QAASwsC,EACTzkD,UAAWlB,OAAO3sB,KAErB9K,KAAM2U,GACIA,EAAKpsB,MAEf0X,MAAOla,IACJ,MAAMma,MAAMlD,GAAsBjX,O2H8BtCs3F,CAAqBzyE,EAAYuyE,EAAQryE,GACpC9K,KAAK,KACF+V,KAAKkM,SAAS,CACV46D,eAAgBlzF,SAEpBwN,GACI,8BACA,mBAGP8I,MAAOla,IACJgwB,KAAKkM,SAAS,CACV46D,eAAgBlzF,SAEpB2N,GACI,sCAAwC0F,GAAsBjX,GAC9D,oBA1FiB,KA+FjCk3F,oBAAuBnyE,IACnBgjC,GAAsBhjC,GAAU9K,KAAMzc,IAElCA,EAAM8H,IAAKvJ,IACHA,EAAK8uD,UAAY76B,KAAKryB,MAAMk5F,UAAa96F,EAAK0oB,aAC9CuL,KAAKkM,SAAS,CACVk6D,0BAA0B,SArGb,KA4GjCJ,YAAc,IAAMhmE,KAAKkM,SAAS,CAAEu5D,WAAYzlE,KAAKryB,MAAM83F,YA5G1B,KAmmBjCpqC,iBAAoBG,GACTj8B,OAAOwiB,OAAOyZ,GAAQC,MAAOr5B,GAAY,KAANA,GAvkB9CyK,oBAEQ7M,KAAKK,MAAM4H,SAASt6B,QACnBqyB,KAAKK,MAAM4H,SAASt6B,MAAMo4F,gBAE3BvkF,KAEJwe,KAAKkM,SAAS,CACVm6D,oBAAoB,IAExBrmE,KAAK2mE,eAuETljE,SACI,OAAIzD,KAAKK,MAAMjmB,uBAEP,kBAAC+5C,GAAD,KACI,kBAAC,GAAD,OAMR,oCACI,kBAACttB,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,KACK,IACD,kBAAC,GAAD,CACIsD,YAAY,EACZC,aAAc,CAAC,qBAK1BrK,KAAKunE,uBAELvnE,KAAKryB,MAAMq5F,gBACRhnE,KAAKryB,MAAMq5F,eAAexiF,OAAS,GAC/B,yBAAK9D,UAAU,gBACX,oDAGXsf,KAAKryB,MAAMq5F,gBACRhnE,KAAKryB,MAAMq5F,eAAexiF,OAAS,GACnCwb,KAAKryB,MAAMq5F,eAAe1xF,IAAKq0D,GAEvB,kBAAC9iC,GAAA,EAAD,CAAK56B,IAAK09D,EAASn2D,IACf,kBAACszB,GAAA,EAAD,KACI,kBAAC,GAAD,CACI5B,UAAQ,EACRv2B,KAAK,OACLolC,YAAY,iBACZ//B,MAAO21D,EAASw8B,OAChBzlF,UAAU,WACVgzB,UAAU,oBAGlB,kBAAC5M,GAAA,EAAD,KACI,kBAAC,GAAD,CACI5B,UAAQ,EACRv2B,KAAK,OACLolC,YAAY,UACZ//B,MAAO21D,EAASx7C,OAChBzN,UAAU,WACVgzB,UAAU,aAGlB,kBAAC5M,GAAA,EAAD,KACI,kBAAC,GAAD,CACI5B,UAAQ,EACRv2B,KAAK,OACLolC,YAAY,WACZ//B,MAAOJ,KACH+1D,EAAS5iC,YACXlzB,OxNzMV,oBwN0MQ6M,UAAU,WACVgzB,UAAU,cAGlB,kBAAC5M,GAAA,EAAD,KACI,kBAAC,GAAD,CACI5B,UAAQ,EACRv2B,KAAK,OACLqF,MAAO21D,EAAS5O,eAAiBnnD,KAC7B+1D,EAAS5O,gBACXlnD,OxNpNV,oBwNoNqC,GAC7B6M,UAAU,WACVgzB,UAAU,kBAGlB,kBAAC5M,GAAA,EAAD,KACK6iC,EAAS69B,gBACN,kBAAC/zD,GAAA,EAAD,CAAW/yB,UAAU,sBACjB,kBAACizB,GAAA,EAAD,CAAOjzB,UAAU,gBAAjB,gBAGA,uBACI+e,OAAO,SACPkL,IAAI,sBACJjqB,UAAU,6BACVgqB,KAAMi/B,EAAS69B,iBAEd79B,EAASw8B,SAIlB,kBAAC,GAAD,CACIjhE,UAAQ,EACRv2B,KAAK,OACLolC,YAAY,eACZ//B,MAAO21D,EAASw8B,OAChBzlF,UAAU,WACVgzB,UAAU,qBAWlD6zD,uBACI,GAAIvnE,KAAKryB,MAAM04F,mBACX,OACI,kBAAC,GAAD,MAIR,IAAK7lF,KAAEwJ,IAAIgW,KAAKryB,MAAO,qBACnB,OAAO,uBAAG+S,UAAU,cAAb,uBAGX,MAAMwlF,EAAiBlmE,KAAKryB,MAAMu4F,eAC5BuB,EAAiBvB,EAAesB,iBAAmBtB,EAAe11C,SAExE,OACI,oCACI,kBAAC,GAAD,CACIi1C,UAAWzlE,KAAKryB,MAAM83F,UACtBO,YAAahmE,KAAKgmE,YAClBjxE,SAAUiL,KAAKryB,MAAMonB,SACrB0J,WACIuB,KAAKryB,MAAMu4F,gBACXlmE,KAAKryB,MAAMu4F,eAAe1yF,KAGlC,kBAACqzB,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,CAAKgK,GAAI,GACL,kBAAC,GAAD,CACI5L,UAAQ,EACRv2B,KAAK,OACLolC,YAAY,iBACZ//B,MACIgsB,KAAKryB,MAAMu4F,gBACXlmE,KAAKryB,MAAMu4F,eAAeC,OAE9BzlF,UAAU,WACVgzB,UAAU,oBAGlB,kBAAC5M,GAAA,EAAD,CAAKgK,GAAI,GACL,kBAAC,GAAD,CACI5L,UAAQ,EACRv2B,KAAK,OACLolC,YAAY,UACZ//B,MACIgsB,KAAKryB,MAAMu4F,eACLlmE,KAAKryB,MAAMu4F,eAAe/3E,OAC1B,YAEVzN,UAAU,WACVgzB,UAAU,aAGlB,kBAAC5M,GAAA,EAAD,CAAKgK,GAAI,GACL,kBAAC,GAAD,CACI5L,UAAQ,EACRv2B,KAAK,OACLolC,YAAY,WACZ//B,MACIgsB,KAAKryB,MAAMu4F,gBACXtyF,KACIosB,KAAKryB,MAAMu4F,eAAen/D,YAC5BlzB,OxNxTF,oBwN0TJ6M,UAAU,WACVgzB,UAAU,cAGlB,kBAAC5M,GAAA,EAAD,CAAKgK,GAAI,GACL,kBAAC,GAAD,CACI5L,UAAQ,EACRv2B,KAAK,OACLolC,YAAY,GACZ//B,MACIgsB,KAAKryB,MAAMu4F,gBAAkBlmE,KAAKryB,MAAMu4F,eAAe32B,aACvD37D,KACIosB,KAAKryB,MAAMu4F,eAAe32B,aAC5B17D,OxNvUF,oBwNyUJ6M,UAAU,WACVgzB,UAAU,qBAItB,kBAAC7M,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,CAAKgK,GAAI,GACL,kBAAC2C,GAAA,EAAD,CAAW/yB,UAAU,sBACjB,kBAACizB,GAAA,EAAD,CAAOjzB,UAAU,gBAAjB,gBACC+mF,EACG,uBACIhoE,OAAO,SACPkL,IAAI,sBACJjqB,UAAU,6BACVgqB,KAAM+8D,GAELznE,KAAKryB,MAAMu4F,gBACRlmE,KAAKryB,MAAMu4F,eAAeC,QAGlC,kBAAC,GAAD,CACIjhE,UAAQ,EACRv2B,KAAK,OACLolC,YAAY,eACZ//B,MAAOgsB,KAAKryB,MAAMu4F,gBAAkBlmE,KAAKryB,MAAMu4F,eAAeC,OAC9DzlF,UAAU,eAK1B,kBAAComB,GAAA,EAAD,CAAKgK,GAAI,GACL,kBAAC2C,GAAA,EAAD,CAAW/yB,UAAU,sBAChBsf,KAAKryB,MAAMm5F,eACR,oCACI,kBAACnzD,GAAA,EAAD,CAAOjzB,UAAU,gBAAjB,oBAGA,kBAAC,GAAD,CACIwkB,UAAQ,EACRv2B,KAAK,OACLqF,MAAM,aACN0M,UAAU,cAIlB,oCACI,kBAACizB,GAAA,EAAD,CAAOjzB,UAAU,gBAAjB,oBAGA,6BACI,kBAAC26B,GAAA,EAAD,CACIlQ,MAAM,UACNzqB,UAAU,OACVykB,QAAS,IACLnF,KAAKmnE,wBACD,EACAnnE,KAAKryB,MAAMk5F,SACX7mE,KAAKryB,MAAMonB,WAPvB,WAaA,kBAACsmB,GAAA,EAAD,CACIlQ,MAAM,SACNzqB,UAAU,GACVykB,QAAS,IACLnF,KAAKmnE,wBACD,EACAnnE,KAAKryB,MAAMk5F,SACX7mE,KAAKryB,MAAMonB,WAPvB,uBAkBpB,kBAAC+R,GAAA,EAAD,CAAKgK,GAAI,GACJ9Q,KAAK0nE,mCAEV,kBAAC5gE,GAAA,EAAD,CAAKgK,GAAI,GACJ9Q,KAAKryB,MAAMu4F,gBACRlmE,KAAKryB,MAAMu4F,eAAe32B,YAC1BvvC,KAAK2nE,iCAEL,kBAACtsD,GAAA,EAAD,CACInW,aACKlF,KAAKryB,MAAMu4F,gBACPlmE,KAAKryB,MAAMu4F,gBACRlmE,KAAKryB,MAAMu4F,eAAe32B,aAItCj0B,OAAK,EACLnQ,MAAM,UACNzqB,UAAU,eACVykB,QAASnF,KAAKgmE,aAXlB,gCAsBxB0B,kCAGI,MAAMngD,EAAW,KACbvnB,KAAKkM,SAASsH,IACH,CACH8yD,8BAA+B9yD,EAAU8yD,iCAyB/CsB,EAAe,KACO5nE,KAAKryB,MAAM44F,gBACnB9mE,OAAOzrB,MAAQ,GAC/BgsB,KAAKkM,SAAS,CACVztB,KAAM,KACN8nF,gBAAiB,OAGrBh/C,KAyCJ,OACI,oCACI,kBAAC9T,GAAA,EAAD,CAAW/yB,UAAU,+BACjB,kBAACizB,GAAA,EAAD,CACIjzB,UAAU,eACVmnF,QAAQ,oBAFZ,iBAMA,kBAAC,KAAD,CACIr0F,GAAG,mBACH7E,KAAK,OACLyjC,SAjFMtqB,IAElB,GADAyjB,QAAQC,IAAI,eAAgB1jB,GACE,IAA1BA,EAAE2X,OAAO2rB,MAAM5mC,OACf,OAEJsD,EAAEggF,UAEF,MAAMrpF,EAAO,CACTA,KAAMqJ,EAAE2X,OAAO2rB,MAAM,IAGzBprB,KAAKkM,SAAS,CACVztB,OACA8nF,gBAAiBz+E,IAGrBy/B,IACA/lC,MAiEYd,UAAU,WACVipC,OAAO,uCAGf,kBAAC,GAAD,CACIrC,OAAQtnB,KAAKryB,MAAM24F,6BACnB/+C,SAAUqgD,EACVpgD,SAAUogD,EACVngD,UA3DQ,KAChBjmC,KAEAwe,KAAKkM,SAAS,CACVs6D,mBAAmB,IVldL,EAAC/nE,EAAYkrC,KACvC,MAAM5jC,EzQgI2B,2CyQhIMlc,QAAQ,gBAAiB4U,GAEhE,IAAIisB,EAAW,IAAIC,SAGnB,OAFAD,EAASE,OAAO,OAAQ+e,EAASlrD,MAE1BsL,KACF2U,KAAKqH,EAAU2kB,GACfzgC,KAAM2U,GACIA,EAAKpsB,MAEf0X,MAAOla,IACJ,MAAMA,KUycN+3F,CAAe/nE,KAAKryB,MAAMu4F,eAAe1yF,GAAIwsB,KAAKryB,MAAM8Q,MACnDwL,KAAK,KACF7I,GACI,wDACA,iBAGoB4e,KAAKryB,MAAM44F,gBACnB9mE,OAAOzrB,MAAQ,GAC/BgsB,KAAKkM,SAAS,CACVztB,KAAM,KACN8nF,gBAAiB,OAGrBh/C,IACAkQ,IAAqB,GAAOvtC,MAAM,QAClC8V,KAAK2mE,iBAERz8E,MAAOla,IACJuR,GACI,6CAA4C0F,GAAsBjX,GApEjE,0BAwERyjD,QAAQ,KACLzzB,KAAKkM,SAAS,CACVs6D,mBAAmB,OA2BvBp/C,kBAAkB,UAClBhnB,MAAM,iBACNgU,WAAYpU,KAAKryB,MAAM64F,kBACvB9+C,UAAW1nB,KAAKryB,MAAM64F,kBACtB7+C,YAAa,CAzGR,yBA2GL,kBAAC9gB,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,KACI,uBAAGpmB,UAAU,cAAb,oDAQxBinF,iCAGI,MAAMpgD,EAAW,KACbvnB,KAAKkM,SAASsH,IACH,CACHizD,gCAAiCjzD,EAAUizD,mCAKjDmB,EAAe,KACjBrgD,KA+BJ,OACI,oCACI,kBAAClM,GAAA,EAAD,CACInW,aACKlF,KAAKryB,MAAMu4F,gBACPlmE,KAAKryB,MAAMu4F,gBACRlmE,KAAKryB,MAAMu4F,eACNnrC,gBAIjBzf,OAAK,EACLnQ,MAAM,SACNzqB,UAAU,eACVykB,QAASoiB,GAZb,oBAgBA,kBAAC,GAAD,CACID,OAAQtnB,KAAKryB,MAAM84F,+BACnBl/C,SAAUqgD,EACVpgD,SAAUogD,EACVngD,UAlDQ,KAChBjmC,KACAwe,KAAKkM,SAAS,CACVw6D,0BAA0B,IV5hBRjoE,KAC9B,MAAMsH,EzQ+DwB,uCyQ/DMlc,QAAQ,gBAAiB4U,GAC7D,OAAO1U,KACF6Y,IAAImD,GACJ9b,KAAM2U,GACIA,EAAKpsB,MAEf0X,MAAOla,IACJ,MAAMA,KUuhBNg4F,CAAkBhoE,KAAKryB,MAAMu4F,eAAe1yF,IAAIyW,KAAK,KACjD5I,GACI,8EACA,iBAEJkmC,IACAkQ,IAAqB,GAAOvtC,MAAM,QAClC8V,KAAK2mE,iBAEJz8E,MAAOla,IACJuR,GACI,uCAAsC0F,GAAsBjX,GAC5D,mBAGPyjD,QAAQ,KACLzzB,KAAKkM,SAAS,CACVw6D,0BAA0B,OA4B9Bt/C,kBAAkB,UAClBhnB,MAAM,iBACNgU,WAAYpU,KAAKryB,MAAM+4F,yBACvBh/C,UAAW1nB,KAAKryB,MAAM+4F,yBACtB/+C,YAAa,CArER,2BAuEL,kBAAC9gB,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,KACI,uBAAGpmB,UAAU,cAAb,uCACA,uBAAGA,UAAU,cAAb,uFA3lBtBulF,GAOKp3D,aAAe,CAClB0sB,cAAe,GACfG,cAAc,GA+lBPvyB,oBAAW88D,IC5oB1B,MAAMvlC,WAAgBj+B,IAAMC,UACxBe,SACI,OACI,kBAACuG,GAAA,EAAD,CAAMtpB,UAAU,gBACZ,kBAACupB,GAAA,EAAD,CAAUvpB,UAAU,IAChB,yBAAKA,UAAU,+CACX,uDACA,kBAAC,GAAD,CAAmBqU,SAAUiL,KAAKK,MAAMoM,MAAMmI,OAAOphC,MAEzD,kBAACulD,GAAA,EAAD,CAAMr4C,UAAU,gBACZ,kBAAC,GAAD,OAEJ,wBAAIA,UAAU,SACd,yBAAKA,UAAU,gBACX,2CAEJ,kBAACq4C,GAAA,EAAD,CAAMr4C,UAAU,gBACZ,kBAAC,GAAD,OAEJ,kBAAC,GAAD,CAAmBqU,SAAUiL,KAAKK,MAAMoM,MAAMmI,OAAOphC,QAO1DktD,UCYf,MAAMunC,WAAiBxlE,IAAMC,UAAW,cAAD,yBACnC/0B,MAAQ,CACJysD,oBAAoB,EACpBC,wBAAwB,EACxBlO,yBAAyB,EACzBmO,aAAc,GACdvuD,KAAM,KACNgpB,SAAUiL,KAAKK,MAAMoM,MAAMmI,OAAOphC,IAPH,KAcnC00F,wBAA2Bn8F,IACvBi0B,KAAKkM,SAAS,CACVngC,KAAMA,EACNogD,yBAA0BnsB,KAAKryB,MAAMw+C,2BAjBV,KAsOnCoO,kBAAoB,IACT3lC,KAvOwB,KA0OnC4lC,qBAAuB,IACZ5lC,KA3OwB,KA8OnC6lC,mBAAqB,KACjBz6B,KAAKkM,SAAUsH,IACJ,CACH4mB,oBAAqB5mB,EAAU4mB,uBAjPR,KAsPnCM,uBAAyB,KACrB16B,KAAKkM,SAAUsH,IACJ,CACH6mB,wBAAyB7mB,EAAU6mB,2BAzPZ,KA8PnCM,kBAAqB5uD,IACjByV,KACAwe,KAAKkM,SAAS,CACVmuB,wBAAwB,EACxBC,aAAcvuD,KAlQa,KAsQnCo8F,oBAAuBp8F,IACnBozB,GAAsBpzB,EAAKO,OAAO2d,KAAK,KACnC5I,GACI,gDACA2e,KAAKK,MAAM4H,SAASD,YAG5BxmB,MA7Q+B,KAgRnCo5C,aAAgB7uD,IACZyV,KpJpJ+BqkB,KACnC,MAAME,EjIZN,wCiIY2Clc,QACvC,iBACAgc,GAGJ,OAAO9b,KACF8vB,OAAO9T,GACP9b,KAAM5C,GACIA,EAAS7U,MAEnB0X,MAAOre,IACJ,MAAMgC,EAAeoZ,GAAsBpb,GAC3C,MAAMse,MAAMtc,MoJwIhBu6F,CAAuBr8F,EAAKyH,IACvByW,KAAM2U,IACHoB,KAAKkoE,wBAAwBloE,KAAKryB,MAAM5B,MACxC4rD,GAAgB,MAAM,EAAM,MAC5Bt2C,GACI,uBACA2e,KAAKK,MAAM4H,SAASD,YAG3B9d,MAAOre,IACJ0V,GACI1V,EAAM4F,QACNuuB,KAAKK,MAAM4H,SAASD,aApRpC6E,oBACI8qB,GAAgB,MAAM,EAAM,MAUT,wBAACt3B,GACpB,IAAInrB,EAAU,wBAKd,OAJImrB,EAAMv0B,UACNoJ,EAAU,kBAAC,GAAD,OAGP,yBAAKwL,UAAU,eAAexL,GAGzCuuB,SACI,OACI,oCACI,yBAAK/iB,UAAU,2BACX,kBAAC,KAAD,CACIwoB,GAAItP,GAAKuD,kBACTzc,UAAU,wBAFd,YAMA,kBAAC,KAAD,CACIwoB,GAAItP,GAAK2D,mBACT7c,UAAU,6BAFd,aAMA,kBAAC,KAAD,CACIwoB,GAAItP,GAAK4D,cACT9c,UAAU,6BAFd,QAOJ,kBAACspB,GAAA,EAAD,CAAMtpB,UAAU,cACZ,kBAACqwB,GAAA,EAAD,KACI,kBAAClK,GAAA,EAAD,CAAKnmB,UAAU,sBACX,kBAAComB,GAAA,EAAD,KACI,0BAAMpmB,UAAU,WAAhB,sBAEHsf,KAAKu6B,qBACF,kBAACzzB,GAAA,EAAD,CAAKpmB,UAAU,mCACX,kBAAC26B,GAAA,EAAD,CACIlQ,MAAM,UACNhG,QAASnF,KAAKy6B,oBAFlB,oBAUhB,kBAACxwB,GAAA,EAAD,CAAUvpB,UAAU,OAAOsf,KAAK8b,eAChC,kBAAC,GAAD,CACIwL,OAAQtnB,KAAKryB,MAAMw+C,wBACnB5E,SAAU,IACNvnB,KAAKkoE,wBAAwBloE,KAAKryB,MAAM5B,MAE5C07C,UAAW,IAAMznB,KAAK46B,aAAa56B,KAAKryB,MAAM5B,MAC9Cy7C,SAAU,IACNxnB,KAAKkoE,wBAAwBloE,KAAKryB,MAAM5B,MAE5Cq7C,kBAAmB,0BAEvB,kBAAC,GAAD,CACI+Q,SAAS,UACT7Q,OAAQtnB,KAAKryB,MAAMysD,mBACnBvS,OAAQ7nB,KAAKy6B,qBAEjB,kBAAC,GAAD,CACItC,SAAS,UACTpsD,KAAMi0B,KAAKryB,MAAM2sD,aACjBhT,OAAQtnB,KAAKryB,MAAM0sD,uBACnBxS,OAAQ7nB,KAAK06B,uBACbX,OAAS99C,GAAgB+jB,KAAKK,MAAMgoE,wBAAwBpsF,OAOhF6/B,cACI,GAAI9b,KAAKK,MAAMtQ,gBACX,OAAO,kBAAC,GAAD,MAGX,MAAMg0B,EAAsB1jB,GACxB,kBAAC4E,GAAA,EAAD,iBAAkB5E,EAAlB,CAAyB3f,UAAU,2BAC9B2f,EAAMmK,UAITswB,EAAqB/uD,GAEnB,kBAAC+3B,GAAA,EAAD,CACIC,UAAU,OACVrjB,UAAU,gBACVykB,QAAUrd,GAAMA,EAAE++B,mBAElB,kBAAC7iB,GAAA,EAAD,CAAgBC,IAAI,OAChB,kBAACoX,GAAA,EAAD,CACIlQ,MAAM,OACNzqB,UAAU,0CAEV,kBAAC,GAAD,QAGR,kBAAC0jB,GAAA,EAAD,KACI,kBAAC2f,EAAD,CACI5e,QAAS,IAAMnF,KAAK26B,kBAAkB5uD,IAD1C,iBAKA,kBAACg4C,EAAD,CACI5e,QAAS,IAAMnF,KAAKmoE,oBAAoBp8F,IAD5C,oBAKA,kBAACg4C,EAAD,CACI5e,QAAS,IAAMnF,KAAKkoE,wBAAwBn8F,IADhD,sBAUVgwC,EAAU,CACZ,CACIl4B,UAAW,YACX7U,KAAM,OACNgtC,MAAM,EACNC,QAAS,cACTU,UAAW,CAACxwC,EAAWJ,IAAZ,UACJA,EAAKqB,KADD,YACSrB,EAAKI,YAE7B,CACI0X,UAAW,QACX7U,KAAM,UACNgtC,MAAM,GAEV,CACIn4B,UAAW,QACX7U,KAAM,QACNgtC,MAAM,GAEV,CACIn4B,UAAW,gBACX7U,KAAM,YACNgtC,MAAM,GAEV,CACIn4B,UAAW,cACX7U,KAAM,SACN2tC,UAAYpC,GAAS3mC,KAAO2mC,EAAM,cAAc1mC,O1NlNrC,c0NmNXmoC,MAAM,GAEV,CACIn4B,UAAW,cACX7U,KAAM,aACNgtC,MAAM,EACNW,UAAYloB,GACR,kBAAC,GAAD,CACItG,OAAQsG,EAAc,aAAe,cACrC9lB,KACI8lB,EACMga,GACAA,MAKtB,CACI5qB,UAAW,GACX7U,KAAM,GACN2/C,MAAO,QACPhS,UAAW,CAAC/lC,EAAOD,IAAQmkD,EAAkBnkD,KAQ/CqkD,EAAY,CACd71B,QAAS,CAACrd,EAAGnR,EAAKskD,KACdj7B,KAAK26B,kBAAkBhkD,KAI/B,OACI,kBAAC,KAAD,CACIomC,YAAU,EACVC,UAAU,EACVf,QAAQ,kCACRgB,eAAe,gDACfC,SAAS,UACT1qC,KAAMwtB,KAAKK,MAAMzQ,SACjBmsB,QAASA,EACTif,UAAWA,EACXzE,WApBW,CAAC5/C,EAAKskD,IACd,UAoBH5d,iBACI,kBAAC,GAASnD,iBAAV,CACIpuC,QAASk0B,KAAKK,MAAMtQ,qBAqE5C,MAOMoW,GAAoB,CACtBkiE,wBrJzRoCt8F,IAC7B,CACH4C,KzJsUiC,4ByJrUjC5C,UqJyROo9B,oBAAW1D,YAXD93B,IACd,CACHiiB,SAAUjiB,EAAM2qB,MAAM9qB,MAAMoiB,SAC5BG,gBAAiBpiB,EAAM2qB,MAAM9qB,MAAMuiB,kBAQQoW,GAAzBV,CAA4CwiE,KC/StE,MAAMK,WAAiB7lE,IAAMC,UAAW,cAAD,yBACnC/0B,MAAQ,CACJysD,oBAAoB,EACpBC,wBAAwB,EACxBlO,yBAAyB,EACzBmO,aAAc,GACdvuD,KAAM,KACNgpB,SAAUiL,KAAKK,MAAMoM,MAAMmI,OAAOphC,IAPH,KAcnC00F,wBAA2Bn8F,IACvBi0B,KAAKkM,SAAS,CACVngC,KAAMA,EACNogD,yBAA0BnsB,KAAKryB,MAAMw+C,2BAjBV,KAsOnCoO,kBAAoB,IACT3lC,KAvOwB,KA0OnC4lC,qBAAuB,IACZ5lC,KA3OwB,KA8OnC6lC,mBAAqB,KACjBz6B,KAAKkM,SAAUsH,IACJ,CACH4mB,oBAAqB5mB,EAAU4mB,uBAjPR,KAsPnCM,uBAAyB,KACrB16B,KAAKkM,SAAUsH,IACJ,CACH6mB,wBAAyB7mB,EAAU6mB,2BAzPZ,KA8PnCM,kBAAqB5uD,IACjByV,KACAwe,KAAKkM,SAAS,CACVmuB,wBAAwB,EACxBC,aAAcvuD,KAlQa,KAsQnCo8F,oBAAuBp8F,IACnBozB,GAAsBpzB,EAAKO,OAAO2d,KAAK,KACnC5I,GACI,gDACA2e,KAAKK,MAAM4H,SAASD,YAG5BxmB,MA7Q+B,KAgRnCo5C,aAAgB7uD,IACZyV,KrJrK2BqkB,KAC/B,MAAME,EjIG2B,oCiIHMlc,QACnC,iBACAgc,GAGJ,OAAO9b,KACF8vB,OAAO9T,GACP9b,KAAM5C,GACIA,EAAS7U,MAEnB0X,MAAOre,IACJ,MAAMgC,EAAeoZ,GAAsBpb,GAC3C,MAAMse,MAAMtc,MqJyJhB06F,CAAmBx8F,EAAKyH,IACnByW,KAAM2U,IACHoB,KAAKkoE,wBAAwBn8F,GAC7B4rD,GAAgB,KAAM,MAAM,GAC5Bt2C,GACI,uBACA2e,KAAKK,MAAM4H,SAASD,YAG3B9d,MAAOre,IACJ0V,GACI1V,EAAM4F,QACNuuB,KAAKK,MAAM4H,SAASD,aApRpC6E,oBACI8qB,GAAgB,KAAM,MAAM,GAUT,wBAACt3B,GACpB,IAAInrB,EAAU,wBAKd,OAJImrB,EAAMv0B,UACNoJ,EAAU,kBAAC,GAAD,OAGP,yBAAKwL,UAAU,eAAexL,GAGzCuuB,SACI,OACI,oCACI,yBAAK/iB,UAAU,2BACX,kBAAC,KAAD,CACIwoB,GAAItP,GAAKuD,kBACTzc,UAAU,wBAFd,YAMA,kBAAC,KAAD,CACIwoB,GAAItP,GAAK2D,mBACT7c,UAAU,6BAFd,aAMA,kBAAC,KAAD,CACIwoB,GAAItP,GAAK4D,cACT9c,UAAU,6BAFd,QAOJ,kBAACspB,GAAA,EAAD,CAAMtpB,UAAU,cACZ,kBAACqwB,GAAA,EAAD,KACI,kBAAClK,GAAA,EAAD,CAAKnmB,UAAU,sBACX,kBAAComB,GAAA,EAAD,KACI,0BAAMpmB,UAAU,WAAhB,sBAEHsf,KAAKu6B,qBACF,kBAACzzB,GAAA,EAAD,CAAKpmB,UAAU,mCACX,kBAAC26B,GAAA,EAAD,CACIlQ,MAAM,UACNhG,QAASnF,KAAKy6B,oBAFlB,oBAUhB,kBAACxwB,GAAA,EAAD,CAAUvpB,UAAU,OAAOsf,KAAK8b,eAChC,kBAAC,GAAD,CACIwL,OAAQtnB,KAAKryB,MAAMw+C,wBACnB5E,SAAU,IACNvnB,KAAKkoE,wBAAwBloE,KAAKryB,MAAM5B,MAE5C07C,UAAW,IAAMznB,KAAK46B,aAAa56B,KAAKryB,MAAM5B,MAC9Cy7C,SAAU,IACNxnB,KAAKkoE,wBAAwBloE,KAAKryB,MAAM5B,MAE5Cq7C,kBAAmB,0BAEvB,kBAAC,GAAD,CACI+Q,SAAU,MACV7Q,OAAQtnB,KAAKryB,MAAMysD,mBACnBvS,OAAQ7nB,KAAKy6B,qBAEjB,kBAAC,GAAD,CACItC,SAAS,MACTpsD,KAAMi0B,KAAKryB,MAAM2sD,aACjBhT,OAAQtnB,KAAKryB,MAAM0sD,uBACnBxS,OAAQ7nB,KAAK06B,uBACbX,OAAQ99C,GAAe+jB,KAAKK,MAAMmoE,mBAAmBvsF,OAOzE6/B,cACI,GAAI9b,KAAKK,MAAMtQ,gBACX,OAAO,kBAAC,GAAD,MAGX,MAAMg0B,EAAsB1jB,GACxB,kBAAC4E,GAAA,EAAD,iBAAkB5E,EAAlB,CAAyB3f,UAAU,2BAC9B2f,EAAMmK,UAITswB,EAAqB/uD,GAEnB,kBAAC+3B,GAAA,EAAD,CACIC,UAAU,OACVrjB,UAAU,gBACVykB,QAAUrd,GAAMA,EAAE++B,mBAElB,kBAAC7iB,GAAA,EAAD,CAAgBC,IAAI,OAChB,kBAACoX,GAAA,EAAD,CACIlQ,MAAM,OACNzqB,UAAU,0CAEV,kBAAC,GAAD,QAGR,kBAAC0jB,GAAA,EAAD,KACI,kBAAC2f,EAAD,CACI5e,QAAS,IAAMnF,KAAK26B,kBAAkB5uD,IAD1C,iBAKA,kBAACg4C,EAAD,CACI5e,QAAS,IAAMnF,KAAKmoE,oBAAoBp8F,IAD5C,oBAKA,kBAACg4C,EAAD,CACI5e,QAAS,IAAMnF,KAAKkoE,wBAAwBn8F,IADhD,sBAUVgwC,EAAU,CACZ,CACIl4B,UAAW,YACX7U,KAAM,OACNgtC,MAAM,EACNC,QAAS,cACTU,UAAW,CAACxwC,EAAWJ,IAAZ,UACJA,EAAKqB,KADD,YACSrB,EAAKI,YAE7B,CACI0X,UAAW,QACX7U,KAAM,UACNgtC,MAAM,GAEV,CACIn4B,UAAW,QACX7U,KAAM,QACNgtC,MAAM,GAEV,CACIn4B,UAAW,gBACX7U,KAAM,YACNgtC,MAAM,GAEV,CACIn4B,UAAW,cACX7U,KAAM,SACN2tC,UAAYpC,GAAS3mC,KAAO2mC,EAAM,cAAc1mC,O3NlNrC,c2NmNXmoC,MAAM,GAEV,CACIn4B,UAAW,cACX7U,KAAM,aACNgtC,MAAM,EACNW,UAAYloB,GACR,kBAAC,GAAD,CACItG,OAAQsG,EAAc,aAAe,cACrC9lB,KACI8lB,EACMga,GACAA,MAKtB,CACI5qB,UAAW,GACX7U,KAAM,GACN2/C,MAAO,QACPhS,UAAW,CAAC/lC,EAAOD,IAAQmkD,EAAkBnkD,KAQ/CqkD,EAAY,CACd71B,QAAS,CAACrd,EAAGnR,EAAKskD,KACdj7B,KAAK26B,kBAAkBhkD,KAI/B,OACI,kBAAC,KAAD,CACIomC,YAAU,EACVC,UAAU,EACVf,QAAQ,kCACRgB,eAAe,gDACfC,SAAS,UACT1qC,KAAMwtB,KAAKK,MAAMxQ,IACjBksB,QAASA,EACTif,UAAWA,EACXzE,WApBW,CAAC5/C,EAAKskD,IACd,UAoBH5d,iBACI,kBAAC,GAASnD,iBAAV,CACIpuC,QAASk0B,KAAKK,MAAMtQ,qBAqE5C,MAOMoW,GAAoB,CACtBqiE,mBtJ1O+Bz8F,IACxB,CACH4C,KzJ6R6B,wByJ5R7B5C,UsJ0OOo9B,oBAAW1D,YAXD93B,IACd,CACHkiB,IAAKliB,EAAM2qB,MAAM9qB,MAAMqiB,IACvBG,WAAYriB,EAAM2qB,MAAM9qB,MAAMwiB,aAQamW,GAAzBV,CAA4C6iE,K,OCpTtE,MAAMnuC,WAAmB13B,IAAMC,UAAW,cAAD,yBACrC/0B,MAAQ,CACJysD,oBAAoB,EACpBC,wBAAwB,EACxBlO,yBAAyB,EACzBmO,aAAc,GACd9sD,MAAO,GACPunB,SAAUiL,KAAKK,MAAMoM,MAAMmI,OAAOphC,GAClC1H,SAAS,GARwB,KAkCrCo8F,wBAA2Bn8F,IACvBi0B,KAAKkM,SAAS,CACVngC,KAAMA,EACNogD,yBAA0BnsB,KAAKryB,MAAMw+C,2BArCR,KA0OrCoO,kBAAoB,IACT3lC,KA3O0B,KA8OrC4lC,qBAAuB,IACZ5lC,KA/O0B,KAkPrC6lC,mBAAqB,KACjBz6B,KAAKkM,SAAUsH,IACJ,CACH4mB,oBAAqB5mB,EAAU4mB,uBArPN,KA0PrCM,uBAAyB,KACrB16B,KAAKkM,SAAUsH,IACJ,CACH6mB,wBAAyB7mB,EAAU6mB,2BA7PV,KAkQrCM,kBAAqB5uD,IACjByV,KACAwe,KAAKkM,SAAS,CACVmuB,wBAAwB,EACxBC,aAAcvuD,KAtQe,KA0QrCo8F,oBAAuBp8F,IACnBozB,GAAsBpzB,EAAKO,OAAO2d,KAAK,KACnC5I,GACI,gDACA2e,KAAKK,MAAM4H,SAASD,YAG5BxmB,MAjRiC,KAoRrCo5C,aAAgB7uD,IACZyV,KtJlL8BqkB,KAClC,MAAME,EjIgBuB,qCiIhBMlc,QAAQ,iBAAkBgc,GAE7D,OAAO9b,KACF8vB,OAAO9T,GACP9b,KAAM5C,GACIA,EAAS7U,MAEnB0X,MAAOre,IACJ,MAAMgC,EAAeoZ,GAAsBpb,GAC3C,MAAMse,MAAMtc,MsJyKhB46F,CAAsB18F,EAAKyH,IACtByW,KAAM2U,IACHoB,KAAKkoE,wBAAwBloE,KAAKryB,MAAM5B,MACxCgsD,GAAsB/3B,KAAKryB,MAAMonB,UAAU9K,KAAMzc,IAC7CwyB,KAAKkM,SAAS,CAAE1+B,MAAOA,MAE3B6T,GACI,uBACA2e,KAAKK,MAAM4H,SAASD,YAG3B9d,MAAOre,IACJ0V,GACI1V,EAAM4F,QACNuuB,KAAKK,MAAM4H,SAASD,aAzRpC6E,oBACIkrB,GAAsB/3B,KAAKryB,MAAMonB,UAAU9K,KAAMzc,IAC7CwyB,KAAKkM,SAAS,CACV1+B,MAAOA,EACP1B,SAAS,MAKrBohC,mBAAmBC,EAAWqG,EAAW2H,GAEhCnb,KAAKryB,MAAMysD,oBACZp6B,KAAKryB,MAAMysD,qBAAuB5mB,EAAU4mB,oBAE5CrC,GAAsB/3B,KAAKryB,MAAMonB,UAAU9K,KAAMzc,IAC7CwyB,KAAKkM,SAAS,CACV1+B,MAAOA,EACP1B,SAAS,MAaF,wBAACu0B,GACpB,IAAInrB,EAAU,wBAKd,OAJImrB,EAAMv0B,UACNoJ,EAAU,kBAAC,GAAD,OAGP,yBAAKwL,UAAU,eAAexL,GAGzCuuB,SACI,OACI,kBAACuG,GAAA,EAAD,CAAMtpB,UAAU,cACZ,kBAACqwB,GAAA,EAAD,KACI,kBAAClK,GAAA,EAAD,CAAKnmB,UAAU,sBACX,kBAAComB,GAAA,EAAD,KACI,0BAAMpmB,UAAU,WAAhB,sBAEHsf,KAAKu6B,qBACF,kBAACzzB,GAAA,EAAD,CAAKpmB,UAAU,mCACX,kBAAC26B,GAAA,EAAD,CACIlQ,MAAM,UACNhG,QAASnF,KAAKy6B,oBAFlB,oBAUhB,kBAACxwB,GAAA,EAAD,CAAUvpB,UAAU,OAAOsf,KAAK8b,eAChC,kBAAC,GAAD,CACIwL,OAAQtnB,KAAKryB,MAAMw+C,wBACnB5E,SAAU,IACNvnB,KAAKkoE,wBAAwBloE,KAAKryB,MAAM5B,MAE5C07C,UAAW,IAAMznB,KAAK46B,aAAa56B,KAAKryB,MAAM5B,MAC9Cy7C,SAAU,IACNxnB,KAAKkoE,wBAAwBloE,KAAKryB,MAAM5B,MAE5Cq7C,kBAAmB,0BAEvB,kBAAC,GAAD,CACI+Q,SAAS,SACTpjC,SAAUiL,KAAKryB,MAAMonB,SACrBuyB,OAAQtnB,KAAKryB,MAAMysD,mBACnBvS,OAAQ7nB,KAAKy6B,qBAEjB,kBAAC,GAAD,CACItC,SAAS,SACTpsD,KAAMi0B,KAAKryB,MAAM2sD,aACjBhT,OAAQtnB,KAAKryB,MAAM0sD,uBACnBxS,OAAQ7nB,KAAK06B,uBACbX,OAAS99C,IACL+jB,KAAKkM,SAAUsH,IACJ,CACHhmC,MAAOgmC,EAAUhmC,MAAM8H,IAAIvJ,GAAQA,EAAKyH,KAAOyI,EAAYzI,GAAKyI,EAAclQ,UAS1G+vC,cACI,GAAI9b,KAAKryB,MAAM7B,QACX,OAAO,kBAAC,GAAD,MAGX,MAAMi4C,EAAsB1jB,GACxB,kBAAC4E,GAAA,EAAD,iBAAkB5E,EAAlB,CAAyB3f,UAAU,2BAC9B2f,EAAMmK,UAITswB,EAAqB/uD,GAEnB,kBAAC+3B,GAAA,EAAD,CACIC,UAAU,OACVrjB,UAAU,gBACVykB,QAAUrd,GAAMA,EAAE++B,mBAElB,kBAAC7iB,GAAA,EAAD,CAAgBC,IAAI,OAChB,kBAACoX,GAAA,EAAD,CACIlQ,MAAM,OACNzqB,UAAU,0CAEV,kBAAC,GAAD,QAGR,kBAAC0jB,GAAA,EAAD,KACI,kBAAC2f,EAAD,CACI5e,QAAS,IAAMnF,KAAK26B,kBAAkB5uD,IAD1C,iBAKA,kBAACg4C,EAAD,CACI5e,QAAS,IAAMnF,KAAKmoE,oBAAoBp8F,IAD5C,oBAKCi0B,KAAKw6B,wBACF,kBAACzW,EAAD,CACI5e,QAAS,IACLnF,KAAKkoE,wBAAwBn8F,IAFrC,sBAadgwC,EAAU,CACZ,CACIl4B,UAAW,YACX7U,KAAM,OACNgtC,MAAM,EACNC,QAAS,cACTU,UAAW,CAACxwC,EAAWJ,IAAZ,UACJA,EAAKqB,KADD,YACSrB,EAAKI,YAE7B,CACI0X,UAAW,OACX7U,KAAM,OACNgtC,MAAM,GAEV,CACIn4B,UAAW,WACX7U,KAAM,eACNgtC,MAAM,GAEV,CACIn4B,UAAW,cACX7U,KAAM,SACNgtC,MAAM,GAEV,CACIn4B,UAAW,QACX7U,KAAM,QACNgtC,MAAM,GAEV,CACIn4B,UAAW,cACX7U,KAAM,aACNgtC,MAAM,EACNW,UAAYloB,GACR,kBAAC,GAAD,CACItG,OAAQsG,EAAc,aAAe,cACrC9lB,KAAM8lB,EAAcga,GAAsBA,MAItD,CACI5qB,UAAW,GACX7U,KAAM,GACN2/C,MAAO,QACPhS,UAAW,CAAC/lC,EAAOD,IAAQmkD,EAAkBnkD,KAQ/CqkD,EAAY,CACd71B,QAAS,CAACrd,EAAGnR,EAAKskD,KACdj7B,KAAK26B,kBAAkBhkD,KAI/B,OACI,kBAAC,KAAD,CACIomC,YAAU,EACVC,UAAU,EACVf,QAAQ,kCACRgB,eAAe,gDACfC,SAAS,KACT1qC,KAAMwtB,KAAKryB,MAAMH,MACjBuuC,QAASA,EACTif,UAAWA,EACXzE,WApBW,CAAC5/C,EAAKskD,IACd,UAoBH5d,iBACI,kBAAC,GAAWnD,iBAAZ,CACIpuC,QAASk0B,KAAKK,MAAM9lB,kBA6E7B4uB,oBAAW1D,YAND93B,IACd,CACH4M,aAAc5M,EAAMoN,QAAQR,eAIVkrB,CAAyB00B,KChVnD,MAAMuuC,WAAyBjmE,IAAMC,UACjCe,SACI,SAASia,EAAmBxV,GACxB,OACI,kBAAC,KAAD,CACIK,KAAML,EAAMK,KACZ9E,OAASpD,GAEL,kBAAC6H,EAAMyV,UAAP,iBAAqBtd,EAArB,CAA4B0H,OAAQG,EAAMH,YAM1D,MAAM,EAAE5E,GAAMnD,KAAKK,MAEnB,OACI,oCACI,yBAAK3f,UAAU,2BACX,kBAAC,KAAD,CACIwoB,GAAItP,GAAK4C,kBACT9b,UAAU,6BAETyiB,EAAE,4BAA6B,wBAEpC,kBAAC,KAAD,CACI+F,GAAItP,GAAK6C,8BACT/b,UAAU,kCAETyiB,EAAE,4BAA6B,cAEpC,kBAAC,KAAD,CACI+F,GAAItP,GAAKkD,+BACTpc,UAAU,kCAETyiB,EAAE,4BAA6B,gBAEpC,kBAAC,KAAD,CACI+F,GAAItP,GAAK8C,wBACThc,UAAU,kCAETyiB,EAAE,yBAEP,kBAAC,KAAD,CACI+F,GAAItP,GAAKgD,oCACTlc,UAAU,6BAETyiB,EAAE,oCAIX,kBAAC,KAAD,KACKnD,KAAKK,MAAM0H,OAAOzyB,IAAI,CAAC4yB,EAAOngB,IAC3B,kBAAC21B,EAAD,eAAoBzxC,IAAK8b,GAAOmgB,QAQzCxC,oBAAgB,SAAhBA,CAA0BgjE,I,OC9CzC,MAAMC,WAAgClmE,IAAMC,UAAW,cAAD,yBA4FlDolD,aAAe77E,GAAO+H,IAClBgsB,KAAKK,MAAMuoE,cAAc38F,EAAK+H,IA7FgB,KAgGlDkjB,eAAiB,KACb8I,KAAKK,MAAMwoE,gBAjGmC,KAoGlDv8B,SAAW,KACPtsC,KAAKK,MAAMisC,SAAStsC,KAAKK,MAAMxtB,UAxFnCg6B,oBACI/iB,GAAgBkW,KAAKK,MAAM/d,YAG/BmhB,SACI,OACI,kBAACuG,GAAA,EAAD,CAAMtpB,UAAU,wCACZ,kBAACupB,GAAA,EAAD,CAAUvpB,UAAU,QAChB,kBAACq4C,GAAA,EAAD,KACI,kBAAClyB,GAAA,EAAD,CAAKnmB,UAAU,2BACX,kBAAComB,GAAA,EAAD,CAAKpmB,UAAU,8DACX,0BAAMA,UAAU,IAAhB,YAEJ,kBAAComB,GAAA,EAAD,CAAKsU,GAAG,GAAGtK,GAAG,KAAKpwB,UAAU,QACzB,kBAAC,GAAD,CACInF,QAASykB,KAAKK,MAAM/d,WACpBi5B,aAAW,EACXm4B,cAAY,EACZ1/D,MAAOgsB,KAAKK,MAAMxtB,QAAQyQ,OAC1BywB,YAAY,cACZyH,eAAiBC,GAAWA,EAAO9iC,MACnC+iC,eAAiBD,GAAWA,EAAOznC,MACnCo+B,SAAUpS,KAAK8nD,aAAa,UAC5BpnE,UAAU,UAGlB,kBAAComB,GAAA,EAAD,CAAKsU,GAAG,IAAItK,GAAG,IAAIpwB,UAAU,aACzB,kBAAC,KAAD,CACIi7B,gBAAgB,SAChB/vB,SAAUoU,KAAKK,MAAMxtB,QAAQ6Q,UAC7B0uB,SAAUp+B,GAASgsB,KAAK8nD,aAAa,YAAlB9nD,CAA+BhsB,GAASgsB,KAAKK,MAAMxtB,QAAQ6Q,WAC9EgpD,qBAAmB,EACnBC,QAAS3sC,KAAKK,MAAMxtB,QAAQ8Q,SAAW,IAAIuN,KAC3Cu7C,W9N9DK,e8NiEb,kBAAC3lC,GAAA,EAAD,CAAKsU,GAAG,IAAItK,GAAG,IAAIpwB,UAAU,aACzB,kBAAC,KAAD,CACIgsD,qBAAmB,EACnB/wB,gBAAgB,OAChB/vB,SAAUoU,KAAKK,MAAMxtB,QAAQ8Q,QAC7ByuB,SAAUp+B,GAASgsB,KAAK8nD,aAAa,UAAlB9nD,CAA6BhsB,GAASgsB,KAAKK,MAAMxtB,QAAQ8Q,SAC5Ei4B,QAAS5b,KAAKK,MAAMxtB,QAAQ6Q,UAC5BipD,QAAS,IAAIz7C,KACbu7C,W9NzEK,e8N4Eb,kBAAC3lC,GAAA,EAAD,CAAKsU,GAAG,IAAItK,GAAG,IAAIpwB,UAAU,aACzB,kBAAC26B,GAAA,EAAD,CACI1sC,KAAK,SACL2sC,OAAK,EACLnQ,MAAM,UACNzqB,UAAU,gBACVykB,QAAUrd,IACNA,EAAE0wC,iBACFx4B,KAAKssC,YAETpnC,SAAUlF,KAAKK,MAAM/O,yBAEpB0O,KAAKK,MAAM/O,wBAA0B,kBAAC,GAAD,MAAkB,SAGhE,kBAACwV,GAAA,EAAD,CAAKsU,GAAG,IAAItK,GAAG,IAAIpwB,UAAU,aACzB,kBAAC26B,GAAA,EAAD,CACIQ,SAAO,EAACP,OAAK,EACbnQ,MAAM,UACNzqB,UAAU,gBACVykB,QAASnF,KAAK9I,gBAJlB,4BAuCjBiS,oBAAW1D,YATF93B,IACb,CACH2U,WAAY3U,EAAM6qB,QAAQlW,aAIb,GAGKmjB,CAAuCkjE,K,OCrHjE,MAAM5kD,GAAsB1jB,GAAU,kBAAC4E,GAAA,EAAD,iBAAkB5E,EAAlB,CAAyB3f,UAAU,2BAA0B2f,EAAMmK,UAEzG,MAAMwZ,WAAoBvhB,IAAMC,UAAW,cAAD,yBA6CtC6hB,OAAS,KACL,MACMrc,EAAQlK,GADHgC,KAAKK,MAAM/sB,YAAYE,IAElCwsB,KAAKK,MAAMmG,QAAQI,KAAKsB,EAAO,CAAEgoB,kBAAmBlwB,KAAKK,MAAM4H,SAASD,YAhDtC,KAmDtCgd,aAAe,KACX,MACM9c,EAAQjK,GADH+B,KAAKK,MAAM/sB,YAAYivC,cAAc/uC,IAEhDwsB,KAAKK,MAAMmG,QAAQI,KAAKsB,EAAO,CAAEgoB,kBAAmBlwB,KAAKK,MAAM4H,SAASD,YAtDtC,KAyDtC4d,mBAAsBkjD,IAClB,IAAI7zF,EAAS+qB,KAAKK,MAAM/sB,YAEpBw1F,IACA7zF,EAAS+qB,KAAKK,MAAM/sB,YAAYivC,eAGpCviB,KAAKK,MAAM9gB,mBACXkhC,GAA2BxrC,EAAOzB,GAAIyB,EAAOvB,UAAWuB,EAAOxB,QAAQwW,KACnEk8B,IACSA,EAAO7F,WACR/+B,GACI,sDAAkD4kC,EAAOt4C,aACzDmyB,KAAKK,MAAM4H,SAASD,aAtEF,KA6EtC0c,UAAY,IACDpC,GAA6BtiB,KAAKK,MAAM/sB,aAvEnDmwB,SACI,OACI,kBAACK,GAAA,EAAD,CAA4BC,UAAU,OAAOrjB,UAAU,wBAAwBykB,QAASrd,IAAOA,EAAE++B,oBAC7F,kBAAC7iB,GAAA,EAAD,CAAgBC,IAAI,OAChB,kBAACoX,GAAA,EAAD,CAAQlQ,MAAM,OAAOzqB,UAAU,kDAC3B,kBAAC,GAAD,QAGR,kBAAC0jB,GAAA,EAAD,KACI,kBAAC,GAAD,CACIe,QAASnF,KAAKukB,QAEbvkB,KAAK0kB,UAAY,mBAAqB,SAE3C,kBAAC,GAAD,CACIvf,QAAS,IAAMnF,KAAK4lB,oBAAmB,IAD3C,oBAKC5lB,KAAK0kB,aACF,kBAAC,GAAD,CACIvf,QAASnF,KAAKglB,cADlB,mBAMHhlB,KAAK0kB,aACF,kBAAC,GAAD,CACIvf,QAAS,IAAMnF,KAAK4lB,oBAAmB,IAD3C,wBAgDxB,MAAMoB,GAAe,CACjBroC,yBACAY,qBAGW4pB,oBAAW1D,YAAQ,KAAMuhB,GAAdvhB,CAA4Bue,K,OC5EtD,SAAS9J,GAAiB7Z,GACtB,GAAIA,EAAMv0B,QACN,OAAO,kBAAC,GAAD,MAGX,IAAIoJ,EAAU,4EAKd,OAJImrB,EAAMx0B,QACNqJ,EAAU,0BAAMwL,UAAU,eAAe2f,EAAMx0B,QAI/C,yBAAK6U,UAAU,eACVxL,GAMb,MAAM6zF,WAA+BtmE,IAAMC,UAAW,cAAD,yBAMjDoqC,iBAAmB,IACR,CACH,CACIjpD,UAAW,SACXC,MAAO,SAV8B,KAgIjDipD,sBAAwBp2D,GACfA,EAAI4rC,cAKL,oCACI,kBAAC1b,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,KACI,kBAAC,GAAD,CAAiBxzB,YAAaqD,MAGrCA,EAAI4rC,eACD,kBAAC1b,GAAA,EAAD,CAAKnmB,UAAU,QACX,kBAAComB,GAAA,EAAD,KACI,kBAAC,GAAD,CAAYpmB,UAAU,qBAAqB,kBAAC,GAAD,CAAiBpN,YAAaqD,EAAI4rC,mBAbtF,kBAAC,GAAD,CAAiBjvC,YAAaqD,IAlII,KAuJjDq2D,WAAa,CAAC36B,EAAO17B,KACjB,IAAIs2D,EAAYjvC,GAAiBrnB,EAAInD,IACjC8uC,GAA6B3rC,KAC7Bs2D,EAAYhvC,GAAoBtnB,EAAI4rC,cAAc/uC,KAEtDwsB,KAAKK,MAAMmG,QAAQI,KAAKqmC,EAAW,CAAE/c,kBAAmBlwB,KAAKK,MAAM4H,SAASD,YA5J/B,KA+JjDklC,2BAA6B,CAAC5mB,EAAc3vC,IAEpC,oCACI,kBAACkwB,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,KACI,kBAAC,GAAD,CAAU9yB,MAAOsyC,MAGxB3vC,EAAI4rC,eACD,kBAAC1b,GAAA,EAAD,CAAKnmB,UAAU,QACX,kBAAComB,GAAA,EAAD,KACI,kBAAC,GAAD,CAAU9yB,MAAO2C,EAAI4rC,cAAc+D,kBA1KV,KAkLjD6mB,sBAAyBx2D,GAEjB,oCACI,kBAACkwB,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,KACI,kBAAC,GAAD,CACI3Y,OAAQxX,EAAIwX,OAAOxV,MACnBhK,KAAM4gC,GAAkB54B,EAAIwX,OAAOna,OAAO,GAC1C0M,UAAU,kBAIrB/J,EAAI4rC,eACD,kBAAC1b,GAAA,EAAD,CAAKnmB,UAAU,QACX,kBAAComB,GAAA,EAAD,KACI,kBAAC,GAAD,CACI3Y,OAAQxX,EAAI4rC,cAAcp0B,OAAOxV,MACjChK,KAAM4gC,GAAkB54B,EAAI4rC,cAAcp0B,OAAOna,OAAO,GACxD0M,UAAU,mBApMW,KA6MjD0sD,wBAA2Bz2D,IACvB,MAAM02D,EAAuB,CAAC37D,EAAUgvC,KAC5BhvC,GAAY,IAAIwQ,OAAOrQ,GAAWA,EAAQzE,MAAMkI,IAAI,CAACzD,EAAS04B,IAClE,kBAACzD,GAAA,EAAD,CAAK2D,GAAG,KAAKx+B,IAAG,WAAMy0C,EAAW,iBAAmB,UAApC,YAAiD7uC,EAAQzE,KAAzD,YAAiEm9B,IAC7E,kBAAC,GAAD,CACIn9B,KAAMyE,EAAQzE,KACduzC,IAAK9uC,EAAQ8uC,IACbxb,QAAS,WAMnBmoC,EAAsBD,EAAqB12D,EAAI9E,SAAS,GAC9D,IAAI07D,EAA4B,GAKhC,OAJI52D,EAAI4rC,eAAiB5rC,EAAI4rC,cAAc1wC,UACvC07D,EAA4BF,EAAqB12D,EAAI4rC,cAAc1wC,SAAS,IAI5E,oCACI,kBAACg1B,GAAA,EAAD,KACKymC,EACAC,KApOgC,KA2OjDC,sBAAwBl6D,GACb,kBAAC,GAAD,CAAeA,YAAaA,IA7NvCmwB,SACI,OACI,oCACKzD,KAAK8b,eAKlBA,cACI,GAAI9b,KAAKK,MAAM/O,wBACX,OACI,kBAAC6iC,GAAD,KACI,kBAAC,GAAD,OAIZ,GAAoC,OAAhCn0B,KAAKK,MAAMjP,uBAA6D6H,IAAhC+G,KAAKK,MAAMjP,iBACnD,OAAO,qCAGX,MAAM2qB,EAAU,CACZ,CACIl4B,UAAW,eACX7U,KAAM,cACNgtC,MAAM,EACNC,QAAS,yBACTC,cAAe,qBAEnB,CACIr4B,UAAW,SACX7U,KAAM,UACNgtC,MAAM,EACNC,QAAS,aACTC,cAAe,oBACfS,UAAW,CAAClpC,EAAQkD,IAAQqpB,KAAK+sC,sBAAsBp2D,GACvDkmC,UAAWppC,GAAUo8B,GAA2Bp8B,IAEpD,CACIoQ,UAAW,eACX7U,KAAM,aACNgtC,MAAM,EACN2S,MAAO,OACPC,YAAa,OACb3S,QAAS,2BACTC,cAAe,uBACfS,UAAW,CAAC3oC,EAAO2C,IAAQqpB,KAAKktC,2BAA2Bl5D,EAAO2C,IAEtE,CACIkN,UAAW,eACX7U,KAAM,UACNgtC,MAAM,EACNC,QAAS,aACTC,cAAe,oBACfS,UAAW,CAACC,EAAajmC,IAAQqpB,KAAKmtC,sBAAsBx2D,IAC7D,CACCkN,UAAW,UACX7U,KAAM,OACNgtC,MAAM,EACN2S,MAAO,SACPC,YAAa,SACb3S,QAAS,cACTC,cAAe,qBACfS,UAAW,CAACjrC,EAAUiF,IAAQqpB,KAAKotC,wBAAwBz2D,IAE/D,CACIkN,UAAW,KACX7U,KAAM,GACN2/C,MAAO,QACP8e,YAAa,QACbxxB,QAAS,aACTC,cAAe,oBACfS,UAAW,CAACnpC,EAAIF,IAAgB0sB,KAAKwtC,sBAAsBl6D,KAQ7D0nD,EAAY,CACd71B,QAAS,CAACrd,EAAGnR,EAAKskD,KACdj7B,KAAKgtC,WAAWllD,EAAGnR,KAI3B,OACI,kBAACqzB,GAAA,EAAD,CAAMtpB,UAAU,4BACZ,kBAACupB,GAAA,EAAD,CAAUvpB,UAAU,iCAChB,kBAAC,KAAD,CACIq8B,YAAU,EACVC,UAAU,EACVf,QAAQ,4DACRgB,eAAe,qDACfC,SAAS,KACT1qC,KAAMwtB,KAAKK,MAAMjP,iBACjB2qB,QAASA,EACT75B,OAAQi7B,OACRC,eAAe,SACfE,cAAetd,KAAK8sC,mBACpBzvB,iBACI,kBAAC,GAAD,CACIxxC,OAAO,EACPC,QAASk0B,KAAKK,MAAM/O,0BAG5BilC,WA9BG,CAAC5/C,EAAKskD,IACd,UA8BKD,UAAWA,OAwHpB7xB,oBAAW4/D,ICrR1B,MAAMC,WAA8BvmE,IAAMC,UAUtCqJ,YAAY1L,GAAQ,IAAD,EACf2L,MAAM3L,GADS,YA4BnB4oE,oBAAsB,WAAqB,IAApBp2F,EAAmB,uDAAT,KACd,MAAXA,IACAA,EAAU,EAAKwtB,MAAMhP,6BAEzBmxB,GAAkB3vC,EAAS,EAAKwtB,MAAM4H,SAASD,WA7B/ChI,KAAKryB,MAAQ,CACTu7F,mCAAmC,GAI3Cr8D,oBAAqB,IAAD,EAChB,MAAMojB,EAAgBjwB,KAAKK,MAAM4H,SAASt6B,MACtCsiD,GAAiBA,EAAcgyC,2BAC/BjiE,KAAKkM,SAAS,CAAEg9D,mCAAmC,IACnDlpE,KAAKK,MAAM8oE,8BAA8B,SAAUl5C,EAAcgyC,4BAItB,KAA3C,UAAAjiE,KAAKK,MAAM4H,SAASt6B,aAApB,eAA2BkjD,cAC3B7wB,KAAKipE,sBAIb/7D,mBAAmBC,EAAWqG,GACtBxT,KAAKryB,MAAMu7F,mCAAqC/7D,EAAUt6B,QAAQyQ,SAAW0c,KAAKK,MAAMxtB,QAAQyQ,SAChG0c,KAAKkM,SAAS,CAAEg9D,mCAAmC,IACnDlpE,KAAKipE,oBAAoBjpE,KAAKK,MAAMxtB,UAY5C4wB,SACI,OACI,oCACI,kBAAC,GAAD,CACI6oC,SAAUtsC,KAAKipE,oBACfp2F,QAASmtB,KAAKK,MAAMxtB,QACpB+1F,cAAe5oE,KAAKK,MAAM8oE,8BAC1BN,aAAc7oE,KAAKK,MAAM+oE,+BAE7B,kBAAC,GAAD,CACIh4E,iBAAkB4O,KAAKK,MAAMjP,iBAC7BE,wBAAyB0O,KAAKK,MAAM/O,4BAOxD,MAAM01B,GAAe,CACjBmiD,8BjMrDyC,CAACl9F,EAAK+H,KACxC,CACHrF,KpH2XJ,oCoH1XI1C,IAAKA,EACL+H,MAAOA,IiMkDXo1F,6BjM9CwC,KACjC,CACHz6F,KpHqXJ,sCqT7TWw6B,oBAAW1D,YATF93B,IACb,CACHyjB,iBAAkBzjB,EAAM2qB,MAAM5E,aAAatC,iBAC3CE,wBAAyB3jB,EAAM2qB,MAAM5E,aAAapC,wBAClDD,4BAA6B1jB,EAAM2qB,MAAM5E,aAAarC,4BACtDxe,QAASlF,EAAM2qB,MAAM5E,aAAa7gB,UAISm0C,GAAzBvhB,CAAuCujE,KC9EjE,MAAMK,WAA0C5mE,IAAMC,UAAW,cAAD,sCAc5DumE,oBAAsB,WAAqB,IAApBp2F,EAAmB,uDAAT,KACd,MAAXA,IACAA,EAAU,EAAKwtB,MAAMhP,6BAEzB8xB,GAA6BtwC,EAAS,EAAKwtB,MAAM4H,SAASD,WAlBF,KAuC5DshE,8BAAiC51E,GACxBA,GAAiBA,EAAalP,OAI5BkP,EAAaxR,OAAOjN,IAAUs0F,OpM2XrCjnD,GAFgDhvC,EoMzX6B2B,IpM4X7E3B,EAAYivC,cAAcp0B,OAAOna,QAAUksC,GAAWjR,YAHvD,IAAiD37B,IoM5XrCogB,EA/BfmZ,oBACI7M,KAAKipE,sBAWTxlE,SACI,OACI,oCACI,kBAAC,GAAD,CACI6oC,SAAUtsC,KAAKipE,oBACfp2F,QAASmtB,KAAKK,MAAMxtB,QACpB+1F,cAAe5oE,KAAKK,MAAMmpE,yCAC1BX,aAAc7oE,KAAKK,MAAMopE,0CAE7B,kBAAC,GAAD,CACIr4E,iBAAkB4O,KAAKspE,8BAA8BtpE,KAAKK,MAAMjP,kBAChEE,wBAAyB0O,KAAKK,MAAM/O,4BAexD,MAAM01B,GAAe,CACjBwiD,yChMrCoD,CAACv9F,EAAK+H,KACnD,CACHrF,KtHmZJ,gDsHlZI1C,IAAKA,EACL+H,MAAOA,IgMkCXy1F,wChM9BmD,KAC5C,CACH96F,KtH6YJ,kDsTrWWw6B,oBAAW1D,YATF93B,IACb,CACHyjB,iBAAkBzjB,EAAM2qB,MAAM1E,wBAAwBxC,iBACtDE,wBAAyB3jB,EAAM2qB,MAAM1E,wBAAwBtC,wBAC7DD,4BAA6B1jB,EAAM2qB,MAAM1E,wBAAwBvC,4BACjExe,QAASlF,EAAM2qB,MAAM1E,wBAAwB/gB,UAIFm0C,GAAzBvhB,CAAuC4jE,KC9DjE,MAAMK,WAAoDjnE,IAAMC,UAAW,cAAD,sCActEumE,oBAAsB,WAAqB,IAApBp2F,EAAmB,uDAAT,KACd,MAAXA,IACAA,EAAU,EAAKwtB,MAAMhP,6BAEzB4xB,GAA6BpwC,EAAS,EAAKwtB,MAAM4H,SAASD,WAlBQ,KAuCtEshE,8BAAiC51E,GACxBA,GAAiBA,EAAalP,OAI5BkP,EAAaxR,OAAOjN,GrMgY5B,SACH3B,EACAq2F,GAEA,IAAKr2F,IAAgBq2F,IAAaA,EAASnlF,OACvC,OAAO,EAGX,GAAImlF,EAASxnF,SAAS7O,EAAY6a,OAAOna,OACrC,OAAO,EAGX,GAAIsuC,GAA6BhvC,GAAc,CAC3C,MAAMwyC,EAAexyC,EAAYivC,cACjC,GAAIonD,EAASxnF,SAAS2jC,EAAa33B,OAAOna,OACtC,OAAO,EAIf,OAAO,EqMnZkC41F,CAA0C30F,EAAQ,CAACirC,GAAWnR,YAAamR,GAAW/Q,YAHhHzb,EA/BfmZ,oBACI7M,KAAKipE,sBAWTxlE,SACI,OACI,oCACI,kBAAC,GAAD,CACI6oC,SAAUtsC,KAAKipE,oBACfp2F,QAASmtB,KAAKK,MAAMxtB,QACpB+1F,cAAe5oE,KAAKK,MAAMwpE,yCAC1BhB,aAAc7oE,KAAKK,MAAMypE,0CAE7B,kBAAC,GAAD,CACI14E,iBAAkB4O,KAAKspE,8BAA8BtpE,KAAKK,MAAMjP,kBAChEE,wBAAyB0O,KAAKK,MAAM/O,4BAexD,MAAM01B,GAAe,CACjB6iD,yClMrCoD,CAAC59F,EAAK+H,KACnD,CACHrF,KrHuYJ,gDqHtYI1C,IAAKA,EACL+H,MAAOA,IkMkCX81F,wClM9BmD,KAC5C,CACHn7F,KrHiYJ,kDuTzVWw6B,oBAAW1D,YATF93B,IACb,CACHyjB,iBAAkBzjB,EAAM2qB,MAAM3E,wBAAwBvC,iBACtDE,wBAAyB3jB,EAAM2qB,MAAM3E,wBAAwBrC,wBAC7DD,4BAA6B1jB,EAAM2qB,MAAM3E,wBAAwBtC,4BACjExe,QAASlF,EAAM2qB,MAAM3E,wBAAwB9gB,UAIFm0C,GAAzBvhB,CAAuCikE,KC3E1D,MC2BMK,GAA+B,KACxCjpF,GAAMC,SD3BC,CACHpS,KxTiboC,iCyTtZxCob,KACKC,IhS6JgC,uBgS5JhCC,KAAM2U,IACH9d,GAAMC,SDzBP,CACHpS,KxT4asC,iCwT3atCS,WCuB+CwvB,EAAKpsB,SAEnD0X,MAAOla,IACJ8Q,GAAMC,SDrBP,CACHpS,KxTsamC,8BwTranC9C,MCmB4CmE,OAevCg6F,GAA0B,KACnClpF,GAAMC,SD7BC,CACHpS,KxTya+B,4ByT5YnCob,KACKC,IhSuI2B,kBgStI3BC,KAAM2U,IACH9d,GAAMC,SD3BP,CACHpS,KxToaiC,4BwTnajCsjB,MCyB0C2M,EAAKpsB,SAE9C0X,MAAOla,IACJ8Q,GAAMC,SDvBP,CACHpS,KxT8Z8B,yBwT7Z9B9C,MCqBuCmE,OAIlCi6F,GAA2B,KACpCnpF,GAAMC,SDpBC,CACHpS,KxT2YgC,6ByTvXpCob,KACKC,IhS4H4B,mBgS3H5BC,KAAM2U,IACH9d,GAAMC,SDlBP,CACHpS,KxTsYkC,6BwTrYlCujB,OCgB2C0M,EAAKpsB,SAE/C0X,MAAOla,IACJ8Q,GAAMC,SDdP,CACHpS,KxTgY+B,0BwT/X/B9C,MCYwCmE,OAInCk6F,GAA4B,KACrCppF,GAAMC,SDXC,CACHpS,KxTmYiC,8ByTxXrCob,KACKC,IhSiH6B,oBgShH7BC,KAAM2U,IACH9d,GAAMC,SDTP,CACHpS,KxT8XmC,8BwT7XnCwjB,QCO4CyM,EAAKpsB,SAEhD0X,MAAOla,IACJ8Q,GAAMC,SDLP,CACHpS,KxTwXgC,2BwTvXhC9C,MCGyCmE,OAIpCm6F,GAAgC,KACzCrpF,GAAMC,SDFC,CACHpS,KxTqWsC,mCyTnW1Cob,KACKC,IhSsGkC,yBgSrGlCC,KAAM2U,IACH9d,GAAMC,SDAP,CACHpS,KxTiWJ,mCwThWI0jB,YCFgDuM,EAAKpsB,SAEpD0X,MAAOla,IACJ8Q,GAAMC,SDIP,CACHpS,KxT2VqC,gCwT1VrC9C,MCN6CmE,OC/ErD,MAAMo6F,WAAqB3nE,IAAMC,UAAW,cAAD,yBACvC/0B,MAAQ,CACJ7B,SAAS,GAF0B,KAKvCu+F,qBAAuB,KACnBrqE,KAAKkM,SAAS,CACVpgC,SAAS,IDkBVie,KACFC,IhSiJ+B,mCgShJ/BC,KAAM2U,GACIA,EAAKpsB,MAEf0X,MAAOla,GACGA,GCrBNia,KAAK,KACF8/E,KACAE,KACAE,KACAH,KACAE,KACAlqE,KAAKkM,SAAS,CACVpgC,SAAS,MAGhBoe,MAAOla,IACJgwB,KAAKkM,SAAS,CACVpgC,SAAS,OAKzB23B,SACI,SAASia,EAAmBxV,GACxB,OACI,kBAAC,KAAD,CACIK,KAAML,EAAMK,KACZ9E,OAASpD,GAEL,kBAAC6H,EAAMyV,UAAP,iBAAqBtd,EAArB,CAA4B0H,OAAQG,EAAMH,YAM1D,OACI,oCACI,yBAAKrnB,UAAU,2BACX,kBAAC,KAAD,CACIwoB,GAAItP,GAAK8D,wBACThd,UAAU,6BAFd,eAMA,kBAAC,KAAD,CACIwoB,GAAItP,GAAK+D,mBACTjd,UAAU,kCAFd,gBAMA,kBAAC,KAAD,CACIwoB,GAAItP,GAAKgE,oBACTld,UAAU,kCAFd,aAMA,kBAAC,KAAD,CACIwoB,GAAItP,GAAKiE,qBACTnd,UAAU,kCAFd,SAMA,kBAAC,KAAD,CACIwoB,GAAItP,GAAKkE,0BACTpd,UAAU,kCAFd,oBAOJ,6BACI,8BACI,kBAAC26B,GAAA,EAAD,CACIQ,SAAO,EACPn7B,UAAU,OACVyqB,MAAM,UACNhG,QAASnF,KAAKqqE,sBAEbrqE,KAAKryB,MAAM7B,QACR,kBAAC,GAAD,CACIA,QAASk0B,KAAKryB,MAAM7B,UAGpB,8BAMpB,kBAAC,KAAD,KACKk0B,KAAKK,MAAM0H,OAAOzyB,IAAI,CAAC4yB,EAAOngB,IAC3B,kBAAC21B,EAAD,eAAoBzxC,IAAK8b,GAAOmgB,QAQzCkiE,UC9GR,MAAME,WAAmB5nE,YAC5BmK,oBACyC,IAAjC7M,KAAKK,MAAMjxB,WAAWoV,QACtBulF,KAIe,wBAAC1pE,GACpB,IAAInrB,EAAU,yBAKd,OAJImrB,EAAMv0B,UACNoJ,EAAU,kBAAC,GAAD,OAGP,yBAAKwL,UAAU,eAAexL,GAGzCuuB,SAeI,OACI,kBAACuG,GAAA,EAAD,KACI,kBAAC+G,GAAA,EAAD,KACI,kBAAClK,GAAA,EAAD,CAAKnmB,UAAU,sBACX,kBAAComB,GAAA,EAAD,KACI,0BAAMpmB,UAAU,WAAhB,4BAMZ,kBAACupB,GAAA,EAAD,CAAUvpB,UAAU,OAChB,kBAAC,KAAD,CACIq8B,YAAU,EACVC,UAAU,EACVf,QAAQ,kCACRgB,eAAe,gDACfC,SAAS,KACT1qC,KAAMwtB,KAAKK,MAAMjxB,WACjB2sC,QAjCA,CACZ,CACIl4B,UAAW,QACX7U,KAAM,WACNgtC,MAAM,EACNC,QAAS,eAEb,CACIp4B,UAAW,cACX7U,KAAM,YACNgtC,MAAM,IAwBEqB,iBACI,kBAAC,GAAWnD,iBAAZ,CACIpuC,QAASk0B,KAAKK,MAAMv0B,eAiBrC25B,mBAPU93B,IACd,CACHyB,WAAYzB,EAAM2qB,MAAMzE,SAASzkB,WACjCtD,QAAS6B,EAAM2qB,MAAMzE,SAAS/nB,UAIvB25B,CAAyB6kE,ICrEjC,MAAMC,WAAc7nE,YACvBmK,oBACoC,IAA5B7M,KAAKK,MAAMpO,MAAMzN,QACjBwlF,KAIe,wBAAC3pE,GACpB,IAAInrB,EAAU,wBAKd,OAJImrB,EAAMv0B,UACNoJ,EAAU,kBAAC,GAAD,OAGP,yBAAKwL,UAAU,eAAexL,GAGzCuuB,SACI,MAAMsY,EAAU,CACZ,CACIl4B,UAAW,QACX7U,KAAM,WACNgtC,MAAM,EACNC,QAAS,eAEb,CACIp4B,UAAW,OACX7U,KAAM,OACNgtC,MAAM,EACN2S,MAAO,QACPC,YAAa,QACbjS,UAAY3oC,GAAU8U,GAAkBjV,OAAOG,KAIvD,OACI,kBAACg2B,GAAA,EAAD,KACI,kBAAC+G,GAAA,EAAD,KACI,kBAAClK,GAAA,EAAD,CAAKnmB,UAAU,sBACX,kBAAComB,GAAA,EAAD,KACI,0BAAMpmB,UAAU,WAAhB,6BAIZ,kBAACupB,GAAA,EAAD,CAAUvpB,UAAU,OAChB,kBAAC,KAAD,CACIq8B,YAAU,EACVC,UAAU,EACVf,QAAQ,kCACRgB,eAAe,gDACfC,SAAS,KACT1qC,KAAMwtB,KAAKK,MAAMpO,MACjB8pB,QAASA,EACTsB,iBACI,kBAAC,GAAMnD,iBAAP,CACIpuC,QAASk0B,KAAKK,MAAMv0B,eAiBrC25B,mBAPU93B,IACd,CACHskB,MAAOtkB,EAAM2qB,MAAMzE,SAAS5B,MAC5BnmB,QAAS6B,EAAM2qB,MAAMzE,SAAS/nB,UAIvB25B,CAAyB8kE,ICzExC,SAASrwD,GAAiB7Z,GACtB,IAAInrB,EAAU,wBAKd,OAJImrB,EAAMv0B,UACNoJ,EAAU,kBAAC,GAAD,OAGP,yBAAKwL,UAAU,eAAexL,GAkD1Bs1F,OA/CQnqE,IAEnB,MAAMnO,EAASgV,YAAav5B,GAAUA,EAAM2qB,MAAMzE,SAAS3B,QACrDpmB,EAAUo7B,YAAav5B,GAAUA,EAAM2qB,MAAMzE,SAAS/nB,SAmB5D,OANAq7B,oBAAU,KACgB,IAAlBjV,EAAO1N,QACPylF,MAEL,CAAC/3E,EAAO1N,SAGP,kBAACwlB,GAAA,EAAD,KACI,kBAAC+G,GAAA,EAAD,KACI,kBAAClK,GAAA,EAAD,CAAKnmB,UAAU,sBACX,kBAAComB,GAAA,EAAD,KACI,0BAAMpmB,UAAU,WAAhB,4BAIZ,kBAACupB,GAAA,EAAD,CAAUvpB,UAAU,OAChB,kBAAC,KAAD,CACIq8B,YAAU,EACVC,UAAU,EACVf,QAAQ,kCACRgB,eAAe,gDACfC,SAAS,KACT1qC,KAAM0f,EACN6pB,QAlCA,CACZ,CACIl4B,UAAW,QACX7U,KAAM,YACNgtC,MAAM,EACNC,QAAS,gBA8BDoB,iBAAkB,kBAAC,GAAD,CAAkBvxC,QAASA,SChD1D,MAAM2+F,WAAgB/nE,YACzBmK,oBACsC,IAA9B7M,KAAKK,MAAMlO,QAAQ3N,QACnB0lF,KAIe,wBAAC7pE,GACpB,IAAInrB,EAAU,6BAKd,OAJImrB,EAAMv0B,UACNoJ,EAAU,kBAAC,GAAD,OAGP,yBAAKwL,UAAU,eAAexL,GAGzCuuB,SAaI,OACI,kBAACuG,GAAA,EAAD,KACI,kBAAC+G,GAAA,EAAD,KACI,kBAAClK,GAAA,EAAD,CAAKnmB,UAAU,sBACX,kBAAComB,GAAA,EAAD,KACI,0BAAMpmB,UAAU,WAAhB,sBAIZ,kBAACupB,GAAA,EAAD,CAAUvpB,UAAU,OAChB,kBAAC,KAAD,CACIq8B,YAAU,EACVC,UAAU,EACVf,QAAQ,kCACRgB,eAAe,gDACfC,SAAS,QACT1qC,KAAMwtB,KAAKK,MAAMlO,QACjB4pB,QA7BA,CACZ,CACIl4B,UAAW,QACX7U,KAAM,QACNgtC,MAAM,EACNC,QAAS,cACTU,UAAY3oC,GACDA,EAAQ,QAuBXqpC,iBACI,kBAAC,GAAQnD,iBAAT,CACIpuC,QAASk0B,KAAKK,MAAMv0B,eAiBrC25B,mBAPU93B,IACd,CACHwkB,QAASxkB,EAAM2qB,MAAMzE,SAAS1B,QAC9BrmB,QAAS6B,EAAM2qB,MAAMzE,SAAS/nB,UAIvB25B,CAAyBglE,IC/DjC,MAAMC,WAAoBhoE,YAC7BmK,oBAC0C,IAAlC7M,KAAKK,MAAMhO,YAAY7N,QACvB2lF,KAIe,wBAAC9pE,GACpB,IAAInrB,EAAU,+BAKd,OAJImrB,EAAMv0B,UACNoJ,EAAU,kBAAC,GAAD,OAGP,yBAAKwL,UAAU,eAAexL,GAGzCuuB,SACI,MAAMsY,EAAU,CACZ,CACIl4B,UAAW,+BACX7U,KAAM,YACNgtC,MAAM,EACNC,QAAS,eAEb,CACIp4B,UAAW,yBACX7U,KAAM,OACNgtC,MAAM,EACNC,QAAS,eAEb,CACIp4B,UAAW,OACX7U,KAAM,iBACN2tC,UAAYguD,GAASxhF,GAAgCtV,OAAO82F,GAC5D3uD,MAAM,EACNC,QAAS,cACT0S,MAAO,QACPC,YAAa,SAEjB,CACI/qC,UAAW,WACX7U,KAAM,kBACNgtC,MAAM,EACNC,QAAS,cACTU,UAAYpC,GACD3mC,KAAO2mC,GAAM1mC,OAAO,cAE/B86C,MAAO,QACPC,YAAa,UAIrB,OACI,kBAAC5kB,GAAA,EAAD,KACI,kBAAC+G,GAAA,EAAD,KACI,kBAAClK,GAAA,EAAD,CAAKnmB,UAAU,sBACX,kBAAComB,GAAA,EAAD,KACI,0BAAMpmB,UAAU,WAAhB,gCAMZ,kBAACupB,GAAA,EAAD,CAAUvpB,UAAU,OAChB,kBAAC,KAAD,CACIq8B,YAAU,EACVC,UAAU,EACVf,QAAQ,kCACRgB,eAAe,gDACfC,SAAS,KACT1qC,KAAMwtB,KAAKK,MAAMhO,YACjB0pB,QAASA,EACTsB,iBACI,kBAAC,GAAYnD,iBAAb,CACIpuC,QAASk0B,KAAKK,MAAMv0B,eAiBrC25B,mBAPU93B,IACd,CACH0kB,YAAa1kB,EAAM2qB,MAAMzE,SAASxB,YAClCvmB,QAAS6B,EAAM2qB,MAAMzE,SAAS/nB,UAIvB25B,CAAyBilE,ICoIzB3iE,OArMA,CACX,CACIQ,KAAM3O,GAAKqC,aACXtjB,MAAO,GACPglC,UAAWg3C,GACX5sD,OAAQ,CACJ,CACIQ,KAAM3O,GAAKsC,0BACXvjB,MAAO,YACPglC,UAAWq6C,IAEf,CACIzvD,KAAM3O,GAAKuC,qBACXxjB,MAAO,YACPglC,UAAWitD,IAEf,CACIriE,KAAM3O,GAAKwC,uBACXzjB,MAAO,kBACPglC,UAAWktD,IAEf,CACItiE,KAAM3O,GAAKyC,sBACX1jB,MAAO,mBACPglC,UAAW6gD,IAEf,CACIj2D,KAAM3O,GAAK0C,6BACX3jB,MAAO,kBACPglC,UAAWmtD,MAIvB,CACIriE,OAAO,EACPF,KAAM3O,GAAKW,iBACX5hB,MAAO,qBACPglC,UAAW0oC,IAEf,CACI59C,OAAO,EACPF,KAAM3O,GAAKU,aACX3hB,MAAO,qBACPglC,UAAW2oC,IAEf,CACI/9C,KAAM3O,GAAK2C,YACX5jB,MAAO,sBACPglC,UAAW+qD,GACX3gE,OAAQ,CACJ,CACIQ,KAAM3O,GAAK4C,kBACX7jB,MAAO,GACP8vB,OAAO,EACPkV,UAAWqrD,IAEf,CACIzgE,KAAM3O,GAAK6C,8BACX9jB,MAAO,YACP8vB,OAAO,EACPkV,UAAWotD,IAEf,CACIxiE,KAAM3O,GAAKkD,+BACXnkB,MAAO,cACP8vB,OAAO,EACPkV,UAAWqtD,IAEf,CACIviE,OAAO,EACPF,KAAM3O,GAAK+C,2BACXhkB,MAAO,kBACPglC,UAAW,QAAC,MAAClR,GAAF,SAAa,kBAAC,GAAD,CAAyBj5B,GAAIkuC,OAAOjV,EAAMmI,OAAOphC,QAE7E,CACI+0B,KAAM3O,GAAK8C,wBACX+L,OAAO,EACP9vB,MAAO,mBACPglC,UAAW8oC,IAEf,CACIh+C,OAAO,EACPF,KAAM3O,GAAKiD,uCACXlkB,MAAO,6BACPglC,UAAW,QAAC,MAAClR,GAAF,SAAa,kBAAC,GAAD,CAAoCj5B,GAAIkuC,OAAOjV,EAAMmI,OAAOphC,QAExF,CACI+0B,KAAM3O,GAAKgD,oCACX6L,OAAO,EACP9vB,MAAO,8BACPglC,UAAW6nC,MAIvB,CACIj9C,KAAM3O,GAAKmD,UACX0L,OAAO,EACP9vB,MAAO,iBACPglC,UAAWstD,IAEf,CACI1iE,KAAM3O,GAAKoD,mBACXyL,OAAO,EACP9vB,MAAO,eACPglC,UAAWsmD,IAEf,CACI17D,KAAM3O,GAAKqD,UACXtkB,MAAO,GACPglC,UAAWutD,GACXnjE,OAAQ,CACJ,CACIQ,KAAM3O,GAAKuD,kBACXxkB,MAAO,WACP8vB,OAAO,EACPkV,UAAWwtD,IAEf,CACI5iE,KAAM3O,GAAKwD,yBACXzkB,MAAO,SACPglC,UAAWytD,GACXrjE,OAAQ,CACJ,CACIQ,KAAM3O,GAAKyD,iCACXoL,OAAO,EACPkV,UAAW+iB,IAEf,CACIn4B,KAAM3O,GAAK0D,+BACXmL,OAAO,EACPkV,UAAW0tD,MAIvB,CACI9iE,KAAM3O,GAAK2D,mBACX5kB,MAAO,YACP8vB,OAAO,EACPkV,UAAW2tD,IAEf,CACI/iE,KAAM3O,GAAK4D,cACX7kB,MAAO,gBACP8vB,OAAO,EACPkV,UAAW4tD,MAIvB,CACIhjE,KAAM3O,GAAKsD,YACXvkB,MAAO,UACPglC,UAAW6tD,IAEf,CACIjjE,KAAM3O,GAAK6D,aACX9kB,MAAO,SACPglC,UAAWysD,GACXriE,OAAQ,CACJ,CACIQ,KAAM3O,GAAK8D,wBACX/kB,MAAO,cACPglC,UAAW2sD,IAEf,CACI/hE,KAAM3O,GAAK+D,mBACXhlB,MAAO,eACPglC,UAAW4sD,IAEf,CACIhiE,KAAM3O,GAAKgE,oBACXjlB,MAAO,YACPglC,UAAW6sD,IAEf,CACIjiE,KAAM3O,GAAKiE,qBACXllB,MAAO,QACPglC,UAAW8sD,IAEf,CACIliE,KAAM3O,GAAKkE,0BACXnlB,MAAO,kBACPglC,UAAW+sD,MAIvB,CACIniE,KAAM3O,GAAK6B,eACX9iB,MAAO,sBACPglC,UAAWspC,IAEf,CACI1+C,KAAM3O,GAAK8B,cACX/iB,MAAO,cACPglC,UAAWupC,K,OCpOnB,MAAMukB,WAAgB/oE,YAIlBe,SACI,MAAM,cAAEioE,GAAkB1rE,KAAKK,MAC/B,OACI,oCACI,uBAAG3f,UAAU,oBAAb,iBACA,kBAACozB,GAAA,EAAD,CACId,UAAQ,EACRrkC,KAAK,MACL+R,UAAU,cACVtT,KAAK,eACLglC,SAAUs5D,EACV33D,YAAY,kBAEhB,uBAAGrzB,UAAU,oBAAb,aACA,kBAACozB,GAAA,EAAD,CACId,UAAQ,EACRtyB,UAAU,cACV/R,KAAK,SACLvB,KAAK,eACLglC,SAAUs5D,EACV33D,YAAY,gBAOjB03D,U,OC7Bf,MAAME,WAAoBjpE,YAKtBe,SACI,MAAM,cAAEioE,GAAkB1rE,KAAKK,MAE/B,OACI,oCACI,uBAAG3f,UAAU,oBAAb,aACA,kBAACozB,GAAA,EAAD,CACId,UAAQ,EACRtyB,UAAU,cACVtT,KAAK,eACLglC,SAAUs5D,EACV33D,YAAY,gBAOjB43D,UCzBf,MAAMC,WAAmBlpE,YACrBe,SACI,OACI,oCACKzD,KAAKK,MAAMwrE,kBACR,kBAAC,GAAD,CACIl9F,KAAMuQ,GAAUgB,UAChBQ,UAAWxB,GAAUgB,UACrBhL,QAAQ,8GAQjB02F,UCZf,MAAME,WAAkBppE,YACpBe,SACI,OACI,oCACI,kBAACoD,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,KACI,kBAAC,GAAD,CACIn4B,KAAMuQ,GAAUgB,UAChBQ,UAAS,UAAKxB,GAAUgB,UAAf,SACThL,QAAQ,6IAKpB,uBAAGwL,UAAU,oBAAb,kBACA,kBAACozB,GAAA,EAAD,CAAO1mC,KAAK,WAAWglC,SAAUpS,KAAKK,MAAMqrE,cAAehrF,UAAU,cACjEqzB,YAAY,mBAChB,kBAAClN,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,KACI,0BAAMpmB,UAAU,oBAAhB,WAEJ,kBAAComB,GAAA,EAAD,CAAKpmB,UAAU,mCACX,kBAAC,KAAD,CAAMA,UAAU,wBAAwBwoB,GAAItP,GAAK2B,iBAAjD,wBAGR,kBAACuY,GAAA,EAAD,CAAO1mC,KAAK,WAAWuB,KAAK,WAAWyjC,SAAUpS,KAAKK,MAAMqrE,cAAehrF,UAAU,cACjFqzB,YAAY,aAMjB+3D,UCCf,MAAMC,WAAkBtpE,IAAMC,UAM1BqJ,YAAY1L,GACR2L,MAAM3L,GADS,KAiBnB8pC,QAAU,IAAI/C,GAjBK,KAmBnB/sB,aAAekQ,UACX,MAAM,OAAE9qB,GAAW4S,EACbr+B,EAAQyrB,EAAOzrB,OACf,KAAE5G,GAASqyB,QACXO,KAAKkM,SAAS,CAAE,CAAC9+B,GAAO4G,KAvBf,KA0BnBg4F,oBAAuBh4F,IACnBgsB,KAAKkM,SAAS,CACV2/D,iBAAkB73F,EAClBk3D,YAAa,MA7BF,KAiCnB+gC,iBAAoB55D,IAChBA,EAAMmmB,iBACNh3C,KAGgC,MAA5Bwe,KAAKryB,MAAM87D,cACXzpC,KAAKksE,iBAAiBlsE,KAAKryB,MAAMw+F,SAAUnsE,KAAKryB,MAAMy+F,UAI1B,MAA5BpsE,KAAKryB,MAAM87D,cACXzpC,KAAKqsE,SAASrsE,KAAKryB,MAAMq9D,aAAchrC,KAAKryB,MAAM2qD,cAItB,MAA5Bt4B,KAAKryB,MAAM87D,cACXzpC,KAAKssE,UAGuB,MAA5BtsE,KAAKryB,MAAM87D,cACXzpC,KAAKusE,WAAWvsE,KAAKryB,MAAM2qD,aAAc,OArD9B,KAyDnB4zC,iBAAmB,CAACC,EAAUC,KAC1BpsE,KAAKgsE,qBAAoB,GrRoO1B,SAAeG,EAAUC,GAG5B,OAFA5qF,KAEOuI,KACF2U,KvB9UsB,mBuBgVnB,CACIpyB,MAAO6/F,EACPC,SAAUA,GAEd,CACIhhG,QAAS,CACLohG,cAAc,MAIzBviF,KAAM2U,IACH7U,KAAMgV,SAAS3zB,QAAQ4zB,OAAvB,8BAEaJ,EAAKpsB,KAAKvG,KACvB6U,GAAMC,SAAS7S,GAAY,SAAD,OAAU0wB,EAAKpsB,KAAKvG,OAC9C,MAAMwgG,EAAiB,IAAIv7E,KAO3B,OANAu7E,EAAeC,SAASD,EAAeE,WAAa,IAEpDp+F,aAAauwB,QACbvwB,aAAaq+F,QAAQ,QAArB,gBAAuChuE,EAAKpsB,KAAKvG,MACjDsC,aAAaq+F,QAAQ,iBAAkBH,GACvCl+F,aAAaq+F,QAAQ,WAAYvuE,KAC1B,IAEVnU,MAAOla,IACJ8Q,GAAMC,SAAS5S,GAAS6B,IACxBuR,GACI,kBAAC4G,GAAA,EAAD,CAAOC,QAAQ,sBAAf,0DA7UiB,eAmVd,IqR1QXykF,CAAMV,EAAUC,GAAUniF,KAAMq2B,IACxBA,GACAphB,KAGJc,KAAKgsE,qBAAoB,MAhEd,KAoEnBK,SAAW,CAACrhC,EAAc1S,KACtBt4B,KAAKgsE,qBAAoB,GACzBxqF,KrRoBD,SAAsBwpD,EAAch/D,GACvC,OAAO+d,KACF2U,KvB5FqB,wBuB4FA,CAClBiqC,aAAcqC,EACdh/D,cAAeA,IAElBie,KAAM2U,GACIA,EAAKpsB,MAEf0X,MAAOla,IACJ,MAAMma,MAAMlD,GAAsBjX,MqR5BtC88F,CAAa9hC,EAAc1S,GACtBruC,KAAKsgC,UAEF,GADA/oC,MACKod,IAASA,EAAKupC,SAAyB,UAAdvpC,EAAKrX,KAG/B,OAFAyY,KAAK+sE,iCACL/sE,KAAKgsE,qBAAoB,GAG7BhsE,KAAKkM,SAAS,CACVg/B,YAAatsC,EAAKusC,eAGtB9pD,GAAqB,wBAAD,OACQud,EAAKusC,aADb,gIrRlGH,cqRwGjB,IAAIv/D,EAAQgzB,EAAKhzB,MACjBo0B,KAAK6oC,gBAAgBj9D,EAAOyyB,GAAe2sC,KAE9C9gD,MAAOla,IACJwR,KACAwe,KAAK+sE,4BACL/sE,KAAKgsE,qBAAoB,MAhGlB,KAoGnBnjC,gBAAkBte,MAAO3+C,EAAO2yB,EAAMysC,KA9G1C,IAAeQ,UA+GK,IA9GT,IAAIjG,QAASC,GAAY2D,WAAW3D,EAASgG,KrRmIjD,SAA2B5/D,EAAO2yB,EAAMgtC,GAC3C,OAAOxhD,KACFC,IvB1H0B,gCuB4HnBpe,EACA,IACA2yB,EACA,IACAypC,mBAAmBuD,IAE1BthD,KAAM2U,IACH,GAAuB,OAAnBA,EAAKpsB,KAAK+U,KAAe,CACzBwC,KAAMgV,SAAS3zB,QAAQ4zB,OAAvB,8BAEaJ,EAAKpsB,KAAKw6F,YAAY/gG,KACnC6U,GAAMC,SACF7S,GAAY,SAAD,OAAU0wB,EAAKpsB,KAAKw6F,YAAY/gG,OAE/C,MAAMwgG,EAAiB,IAAIv7E,KAC3Bu7E,EAAeC,SAASD,EAAeE,WAAa,IAEpDp+F,aAAauwB,QACbvwB,aAAaq+F,QAAQ,OAAQhuE,EAAKpsB,KAAKw6F,YAAY1+F,MACnDC,aAAaq+F,QACT,gBACAhuE,EAAKpsB,KAAKw6F,YAAYhhG,eAEtBuyB,IAASF,IACT9vB,aAAaq+F,QAAQ,iBAAkBrhC,GAE3Ch9D,aAAaq+F,QACT,QADJ,gBAEahuE,EAAKpsB,KAAKw6F,YAAY/gG,MAEnCsC,aAAaq+F,QAAQ,iBAAkBH,QAChC7tE,EAAKpsB,KAAK21D,QAGrB,OAAOvpC,EAAKpsB,OAEf0X,MAAOla,IACJ,MAAMma,MAAMlD,GAAsBjX,MqR7DtCw3D,CAAkB57D,EAAO2yB,EAAMysC,GAC1B/gD,KAAM2U,IACH,GAAkB,YAAdA,EAAKrX,KACLyY,KAAK6oC,gBAAgBj9D,EAAO2yB,EAAMysC,QAC/B,GAAkB,OAAdpsC,EAAKrX,KACS,0BAAjBqX,EAAKntB,SACL+P,KACAD,GACI,sDrR5HK,cqR+HTye,KAAKgsE,qBAAoB,KAEzBz9F,aAAaq+F,QAAQ,WAAYruE,GACjCU,GAAYL,EAAKouE,kBAElB,IAAkB,aAAdpuE,EAAKrX,KAQZ,MAAM4C,MAAM,oCAPZ3I,KACAD,GACI,kDrRvIS,cqR0Ibye,KAAKgsE,qBAAoB,MAKhC9hF,MAAOla,IACJwR,KACAwe,KAAKgsE,qBAAoB,GACzBhsE,KAAKitE,gCApIE,KAwInBF,0BAA4B,KACxBxrF,GACI,2DrRxJqB,eqRcV,KA+InB0rF,2BAA6B,KACzB1rF,GACI,uDrR/JqB,eqRcV,KAsJnBgrF,WAAa,CAACj0C,EAAc40C,KACxBltE,KAAKgsE,qBAAoB,GACzBxqF,KrRzED,SAAqBxV,EAAekhG,GACvC,OAAOnjF,KACF2U,KvBhFoB,uBuBgFA,CAAE1yB,cAAeA,EAAekhG,QAASA,IAC7DjjF,KAAM2U,GACIA,EAAKpsB,MAEf0X,MAAOla,IACJ,MAAMma,MAAMlD,GAAsBjX,MqRoEtCm9F,CAAY70C,EAAc40C,GACrBjjF,KAAKsgC,UACF,IAAI/3C,IAAyB,IAAjBA,EAAK21D,QAab,MAAMh+C,MAAM,2BAZZ3I,KACAwe,KAAKkM,SAAS,CACVg/B,YAAa14D,EAAK24D,eAEtB9pD,GAAqB,wBAAD,OACQ7O,EAAK24D,aADb,wIrR/KP,cqRqLbnrC,KAAK6oC,gBAAgBr2D,EAAK5G,MAAOyyB,GAAiB,OAKzDnU,MAAOla,IACJwR,KACAwe,KAAK+sE,4BACL/sE,KAAKgsE,qBAAoB,MA/KlB,KAmLnBM,QAAU,KACNtsE,KAAKgsE,qBAAoB,GACzBxqF,KAkCAwe,KAAKkM,SAASv+B,IAAK,CACfy/F,uCAAuC,EACvCC,4BAA6B1/F,EAAM2/F,yBAA2B,MAzNnD,KA6NnBC,uCAAyClmF,IrR9KtC,IAAsCmmF,EqRgLrCxtE,KAAKkM,SAAS,CACVkhE,uCAAuC,IAGnB,OAApB/lF,EAAS8G,QrRpLwBq/E,EqRqLJnmF,EAASzb,MrRpL9C4V,KAEOuI,KACF2U,KvBtDsB,4BuBsDA,CACnB9yB,MAAO4hG,IAEVvjF,KAAM2U,GACIA,EAAKpsB,MAEf0X,MAAOla,IACJ,IAAInC,EAAeoZ,GAAsBjX,GACzC,MAAMma,MAAMtc,MqR0KPoc,KAAKzX,IACF,IAAKA,EAAK21D,QACN,MAAMh+C,MAAM,4BAEZ,IAAK3X,EAAKw6F,YASN,OARAxrF,UACAD,GACIyG,GACI,KACA,4BrR5PH,eA6E1B,SAA2BxV,GAC9B,MAAMi7F,EAAaj7F,EACnBgP,KACAuI,KAAMgV,SAAS3zB,QAAQ4zB,OAAvB,8BAA0DyuE,EAAWxhG,KACrE6U,GAAMC,SAAS7S,GAAY,SAAD,OAAUu/F,EAAWxhG,OAC/C,MAAMwgG,EAAiB,IAAIv7E,KAC3Bu7E,EAAeC,SAASD,EAAeE,WAAa,IAEpDp+F,aAAauwB,QACbvwB,aAAaq+F,QAAQ,QAArB,gBAAuCa,EAAWxhG,MAClDsC,aAAaq+F,QAAQ,iBAAkBH,GACvCl+F,aAAaq+F,QAAQ,WAAYvuE,IAEjCY,GAAYwuE,GqRyKQC,CAAkBl7F,EAAKw6F,eAI9B9iF,MAAMre,IAKH0V,GAJqByG,GACjBnc,EACA,iCrR1QS,gBqR8QhB4nD,QAAQ,KACLzzB,KAAKgsE,qBAAoB,MAGjCzqF,GAAsByG,GAAsB,KAAM,iCrRlR7B,cqRmRrBgY,KAAKgsE,qBAAoB,KArQd,KAyQnBtgC,gBAAmBC,IACfnqD,KACAwe,KAAKkM,SAAS,CAAEu9B,aAAckC,KA3Qf,KA8QnBgiC,0BAA4B,KASxBxkC,WAR8B,KACrBnpC,KAAKryB,MAAMy/F,wCACZptE,KAAKgsE,qBAAoB,GACzBxqF,KACAD,GAAsByG,GAAsB,KAAM,iCrRjSjC,gBqRqSS,MApRlCgY,KAAKryB,MAAQ,CACTw+F,SAAU,GACVC,SAAU,GACVphC,aAAc,GACdvB,aAAcppC,EAAMutE,YACpBt1C,aAAc,GACduzC,kBAAkB,EAClByB,wBAAyB,EACzBF,uCAAuC,EACvCliC,YAAa,IA8QrBh+B,mBAAmBC,EAAWqG,GACtBxT,KAAKryB,MAAM2/F,wBAA0B,GAA2C,IAAtC95D,EAAU85D,0BACxB,qBAAjB3hE,OAAOkiE,MACdliE,OAAOkiE,MAAMC,YAAYzvD,KAAKre,KAAKutE,wCAEnChiE,QAAQwiE,KAAK,yCAKzBtqE,SACI,OACI,kBAACuG,GAAA,EAAD,CAAMtpB,UAAU,cACZ,kBAACupB,GAAA,EAAD,CAAUvpB,UAAU,gCAChB,kBAAC,GAAD,MACA,uBAAGA,UAAU,qBAAb,uBACA,kBAACmmB,GAAA,EAAD,CAAKnmB,UAAU,gCACX,kBAAComB,GAAA,EAAD,CAAKpmB,UAAU,oBACX,kBAAC,GAAD,CACIA,UAAU,eACVykB,QAAS,IAAMnF,KAAK0rC,gBAAgB,KACpCxU,WAAwC,MAA5Bl3B,KAAKryB,MAAM87D,aACvB/1B,UAAU,YACVxO,SAAUlF,KAAKryB,MAAMk+F,iBACrBj8D,WAAY,CAAE0L,OAAO,MAG7B,kBAACxU,GAAA,EAAD,CAAKpmB,UAAU,oBACX,kBAAC,GAAD,CACIA,UAAU,eACVykB,QAAS,IAAMnF,KAAK0rC,gBAAgB,KACpCxU,WAAwC,MAA5Bl3B,KAAKryB,MAAM87D,aACvB/1B,UAAU,WACVxO,SAAUlF,KAAKryB,MAAMk+F,iBACrBj8D,WAAY,CAAE0L,OAAO,MAG7B,kBAACxU,GAAA,EAAD,CAAKpmB,UAAU,qBACX,kBAAC,GAAD,CACIA,UAAU,eACVykB,QAAS,IAAMnF,KAAK0rC,gBAAgB,KACpCxU,WAAwC,MAA5Bl3B,KAAKryB,MAAM87D,aACvB/1B,UAAU,WACVxO,SAAUlF,KAAKryB,MAAMk+F,iBACrBj8D,WAAY,CAAE0L,OAAO,MAIzBtb,KAAKK,MAAM2tE,cACX,kBAAClnE,GAAA,EAAD,CAAKpmB,UAAU,oBACX,kBAAC,GAAD,CACIA,UAAU,eACVykB,QAAS,IAAMnF,KAAK0rC,gBAAgB,KACpCxU,WAAwC,MAA5Bl3B,KAAKryB,MAAM87D,aACvB/1B,UAAU,SACVxO,SAAUlF,KAAKryB,MAAMk+F,iBACrBj8D,WAAY,CAAE0L,OAAO,OAKrC,kBAACyd,GAAA,EAAD,CAAM9L,SAAUjtB,KAAKisE,kBACjB,yBAAKvrF,UAAU,qBACkB,MAA5Bsf,KAAKryB,MAAM87D,aACR,kBAAC,GAAD,CAASiiC,cAAe1rE,KAAKqa,eACD,MAA5Bra,KAAKryB,MAAM87D,aACX,kBAAC,GAAD,CACIiiC,cAAe1rE,KAAKqa,eAEI,MAA5Bra,KAAKryB,MAAM87D,aACX,kBAAC,GAAD,CACIiiC,cAAe1rE,KAAKqa,aACpBwxD,iBACI7rE,KAAKryB,MAAMk+F,mBAGS,MAA5B7rE,KAAKryB,MAAM87D,aACX,kBAAC,GAAD,CAAWiiC,cAAe1rE,KAAKqa,eAC/B,MAEPra,KAAKiuE,oBACN,kBAAC,GAAD,CACI5rF,OAAQ2d,KAAKK,MAAMze,WACnBwoB,YAAY,EACZC,aAAc,CrR5XT,kBqR8XNrK,KAAKryB,MAAMk+F,kBAAgD,MAA5B7rE,KAAKryB,MAAM87D,eACzC,6BACI,kBAACpuB,GAAA,EAAD,CACIC,OAAK,EACL3sC,KAAK,SACLw8B,MAAM,UACNzqB,UAAU,GACVwkB,SAAUlF,KAAKryB,MAAMk+F,kBAGpB7rE,KAAKryB,MAAMk+F,iBAAmB,kBAAC,GAAD,MAAuB,WAIhE7rE,KAAKryB,MAAM2/F,wBAA0B,GACnC,4BACIrhG,IAAK+zB,KAAKryB,MAAM2/F,wBAChBY,IAAI,2BACJC,OAAQnuE,KAAK2tE,0BACb/kF,MAAO,CAAE86D,QAAS,QAClBlwE,GAAG,uBACH4sB,MAAM,sCAQlC6tE,oBACI,MAAM,YAAE/iC,GAAgBlrC,KAAKryB,MAC7B,GAAKu9D,EAIL,OACI,yBAAKkjC,MAAM,qCACP,0BAAMA,MAAM,WAAZ,kBACA,0BAAMA,MAAM,WAAWljC,KAMxB6gC,UClcf,MAAMsC,WAAkB5rE,IAAMC,UAC1Be,SACI,IAAImqE,EAAc,IAQlB,OAPItlE,aAAUtI,KAAKK,MAAM4H,SAASD,SAAU,CACxCO,KAAM3O,GAAK0B,iBACXmN,OAAO,EACPyS,QAAQ,MAER0yD,EAAc,KAGd,kBAACl+B,GAAA,EAAD,CAAWhvD,UAAU,gBACjB,kBAACmmB,GAAA,EAAD,CAAKnmB,UAAU,sCACX,kBAAComB,GAAA,EAAD,KACI,kBAAC,GAAD,CACIj7B,MAAOm0B,KAAKK,MAAMx0B,MAClBmiG,cAAc,EACdJ,YAAaA,QAe1BzkE,oBAAW1D,YANF93B,IACb,CACH9B,MAAO8B,EAAMe,KAAK7C,QAIyB,CAAEoC,UvRnB5B,KACd,CACHU,K/CnBkB,esUoCsCR,YAAUD,gBAAhDu3B,CAA+D4oE,K,OCxBzF,MAAMC,WAA2B7rE,IAAMC,UAAW,cAAD,yBAC7C/0B,MAAQ,CACJrB,MAAO,GACPiiG,sBAAsB,EACtBlsF,OAAQ,IAJiC,KAgG7CmsF,YAAc,KACVxuE,KAAKkM,SAAS,CAAE7pB,OAAQ,MAjGiB,KAoG7CosF,SAAY7tF,IACRof,KAAKkM,SAAUsH,IACJ,CACHnxB,OAAQ,IAAImxB,EAAUnxB,OAAQzB,OAvGG,KA4G7CqsC,SAAYnlC,IACRA,EAAE0wC,iBACFx4B,KAAKwuE,cAELxuE,KAAK0uE,cAAc1uE,KAAKryB,MAAMrB,QAhHW,KAmH7CoiG,cAAiBpiG,IACb,MAAMkG,EAAO,CAAElG,SAEfyd,KACK2U,K9S/HiB,4B8S+HIlsB,GACrByX,KAAM5C,IACH2Y,KAAKkM,SAAS,CAAEpgC,SAAS,EAAOyiG,sBAAsB,IACtD,MAAM98F,EACF,iHAKJuuB,KAAKyuE,SACDluF,GACInB,GAAaC,MACbH,GAAUa,QArIC,qBAuIXtO,MAIXyY,MAAOre,IACJ,MAAMgC,EAAeoZ,GAAsBpb,GAC3C,GAAIA,EAAMwb,UAAYxb,EAAMwb,SAAS7U,KAAM,CACvC,MAAMA,EAAO3G,EAAMwb,SAAS7U,KACxBA,EAAKiV,QACLuY,KAAKyuE,SACDluF,GACInB,GAAaC,MACbH,GAAUmB,MAnJP,qBAqJH7N,EAAKiV,SAIbjV,EAAKlG,OACL0zB,KAAKyuE,SACDluF,GACInB,GAAaC,MACbH,GAAUmB,MA7JP,qBA+JH7N,EAAKm8F,cAAcnnF,KAAK,OAI/BhV,EAAKiV,QAAWjV,EAAKlG,OACtB0zB,KAAKyuE,SACDluF,GACInB,GAAaC,MACbH,GAAUmB,MAvKP,qBAyKHxS,SAKZmyB,KAAKyuE,SACDluF,GACInB,GAAaC,MACbH,GAAUmB,MAjLH,qBAmLPxS,OA1KxB41B,SACI,OACI,kBAACisC,GAAA,EAAD,CAAWhvD,UAAU,gBACjB,kBAACmmB,GAAA,EAAD,CAAKnmB,UAAU,sCACX,kBAAComB,GAAA,EAAD,KACI,kBAACkD,GAAA,EAAD,CAAMtpB,UAAU,wBACZ,kBAACupB,GAAA,EAAD,KACI,6BACI,kBAAC,GAAD,MACA,uBAAGvpB,UAAU,2BAAb,oBAGA,uBAAGA,UAAU,sCAAb,mBAIHsf,KAAK21B,gBACN,kBAAC9uB,GAAA,EAAD,CAAKnmB,UAAU,eACX,kBAAComB,GAAA,EAAD,KACI,kBAAC,KAAD,CAAMoC,GAAItP,GAAK0B,kBAAf,qBAWpCq6B,gBACI,OAAI31B,KAAKryB,MAAM4gG,qBACJvuE,KAAK4uE,eAGT5uE,KAAK8jC,aAGhB8qC,eACI,OACI,kBAAC,GAAD,CACIzkE,aAAcnK,KAAKryB,MAAM0U,OACzB+nB,YAAY,EACZC,aAAc,CApDK,sBAqDnB3pB,UAAS,oBAAesf,KAAKryB,MAAM0U,OAAOmC,OAAS,OAAS,UAMxEs/C,aACI,OACI,kBAAC/K,GAAA,EAAD,CACI9L,SAAUjtB,KAAKitB,SACfz5C,GAAG,uBACHkN,UAAU,aAEV,kBAACmmB,GAAA,EAAD,CAAKnmB,UAAU,QACX,kBAAComB,GAAA,EAAD,KACI,kBAAC,GAAD,CACI9yB,MAAOgsB,KAAKryB,MAAMrB,MAClB8lC,SAAWp+B,GACPgsB,KAAKkM,SAAS,CAAE5/B,MAAO0H,IAE3BrF,KAAK,QACL+kC,UAAU,QACVK,YAAY,QACZnE,WAAY,CACRoD,UAAU,OAKzBhT,KAAK4uE,eACN,kBAAC/nE,GAAA,EAAD,CAAKnmB,UAAU,QACX,kBAAComB,GAAA,EAAD,KACI,kBAACuU,GAAA,EAAD,CACIC,OAAK,EACLnQ,MAAM,UACN0jE,KAAK,wBAHT,4BAsGT1lE,oBAAWmlE,I,OCzL1B,MAAMQ,WAA2BrsE,IAAMC,UAAW,cAAD,yBAC7C/0B,MAAQ,CACJohG,YAAa,GACbC,YAAa,GACb/iG,IAAK,KACLoW,OAAQ,GACR4sF,uBAAuB,EACvBC,gBAAgB,GAPyB,KA0H7CV,YAAc,KACVxuE,KAAKkM,SAAS,CAAE7pB,OAAQ,MA3HiB,KA8H7CosF,SAAY7tF,IACRof,KAAKkM,SAAUsH,IACJ,CACHnxB,OAAQ,IAAImxB,EAAUnxB,OAAQzB,OAjIG,KAsI7CqsC,SAAYnlC,IACRA,EAAE0wC,iBACFx4B,KAAKwuE,cAEDxuE,KAAKryB,MAAMohG,cAAgB/uE,KAAKryB,MAAMqhG,YAY1ChvE,KAAKmvE,eACDnvE,KAAKryB,MAAM1B,IACX+zB,KAAKryB,MAAMohG,YACX/uE,KAAKryB,MAAMqhG,aAdXhvE,KAAKyuE,SACDluF,GACInB,GAAaC,MACbH,GAAUmB,MAhJM,sBAkJhB,0BAhJ6B,KA6J7C+uF,OAAS,CAACC,EAAKzjG,KACX,MAAMm6B,EAAQ,U/SxKe,U+SwKf,OAA8BspE,EAA9B,YAAqCzjG,GACnDo0B,KAAKkM,SAAS,CAAEpgC,SAAS,IACzBie,KACKC,IAAI+b,GACJ9b,KAAM5C,IACH2Y,KAAKkM,SAAS,CACVpgC,SAAS,EACTG,IAAKob,EAAS7U,KAAKvG,QAG1Bie,MAAOre,IAEJm0B,KAAKkM,SAAS,CACVpgC,SAAS,EACTojG,gBAAgB,IAGpBlvE,KAAKyuE,SACDluF,GACInB,GAAaC,MACbH,GAAUmB,MApLE,sBAgLJ,kCA9KiB,KA0L7C8uF,eAAiB,CAACljG,EAAK0iG,EAAeW,KAClC,MAAM98F,EAAO,CAAEm8F,gBAAeW,iBACxBt5B,EAAS,CACX5qE,QAAS,CACLohG,cAAc,SAAD,OAAWvgG,KAIhC8d,KACK2U,K/S5MkB,6B+S4MIlsB,EAAMwjE,GAC5B/rD,KAAM5C,IACH2Y,KAAKkM,SAAS,CAAEpgC,SAAS,EAAOmjG,uBAAuB,IACvD,MAAMx9F,EACF,6EAC2C,IACvC,kBAAC,KAAD,CAAMy3B,GAAItP,GAAK0B,kBAAf,aAFJ,sBAKJ0E,KAAKyuE,SACDluF,GACInB,GAAaC,MACbH,GAAUa,QAjNE,sBAmNZtO,MAIXyY,MAAOre,IACJ,MAAMgC,EAAeoZ,GAAsBpb,GAC3C,GAAIA,EAAMwb,UAAYxb,EAAMwb,SAAS7U,KAAM,CACvC,MAAMA,EAAO3G,EAAMwb,SAAS7U,KACxBA,EAAKiV,QACLuY,KAAKyuE,SACDluF,GACInB,GAAaC,MACbH,GAAUmB,MA/NN,sBAiOJ7N,EAAKiV,SAIbjV,EAAKm8F,eACL3uE,KAAKyuE,SACDluF,GACInB,GAAaC,MACbH,GAAUmB,MAzON,sBAuOS,kBAIF7N,EAAKm8F,cAAcnnF,KAAK,QAI3ChV,EAAK88F,eACLtvE,KAAKyuE,SACDluF,GACInB,GAAaC,MACbH,GAAUmB,MAnPN,sBAiPS,wBAII7N,EAAK88F,cAAc9nF,KAAK,QAKhDhV,EAAKiV,QACLjV,EAAKm8F,eACLn8F,EAAK88F,eAENtvE,KAAKyuE,SACDluF,GACInB,GAAaC,MACbH,GAAUmB,MAjQN,sBAmQJxS,SAKZmyB,KAAKyuE,SACDluF,GACInB,GAAaC,MACbH,GAAUmB,MA3QF,sBA6QRxS,OAjQxBg/B,oBACI,MAAMwiE,EAAMrvE,KAAKK,MAAMoM,MAAMmI,OAAOy6D,IAC9BzjG,EAAQo0B,KAAKK,MAAMoM,MAAMmI,OAAOhpC,MAEtCo0B,KAAKovE,OAAOC,EAAKzjG,GAGrB63B,SACI,OACI,kBAACisC,GAAA,EAAD,CAAWhvD,UAAU,gBACjB,kBAACmmB,GAAA,EAAD,CAAKnmB,UAAU,sCACX,kBAAComB,GAAA,EAAD,KACI,kBAACkD,GAAA,EAAD,CAAMtpB,UAAU,wBACZ,kBAACupB,GAAA,EAAD,KACI,6BACI,kBAAC,GAAD,MACA,uBAAGvpB,UAAU,2BAAb,iBAGA,uBAAGA,UAAU,sCAAb,uBAIHsf,KAAK21B,gBACN,kBAAC9uB,GAAA,EAAD,CAAKnmB,UAAU,eACX,kBAAComB,GAAA,EAAD,KACI,kBAAC,KAAD,CAAMoC,GAAItP,GAAKyB,OAAf,qBAWpCs6B,gBACI,OAAI31B,KAAKryB,MAAMuhG,gBAAkBlvE,KAAKryB,MAAMshG,sBACjCjvE,KAAK4uE,eAGT5uE,KAAK8jC,aAGhB8qC,eACI,OACI,kBAAC,GAAD,CACIzkE,aAAcnK,KAAKryB,MAAM0U,OACzB+nB,YAAY,EACZC,aAAc,CA9DM,uBA+DpB3pB,UAAS,oBAAesf,KAAKryB,MAAM0U,OAAOmC,OAAS,OAAS,UAMxEs/C,aACI,OACI,kBAAC/K,GAAA,EAAD,CACI9L,SAAUjtB,KAAKitB,SACfz5C,GAAG,uBACHkN,UAAU,aAEV,kBAACmmB,GAAA,EAAD,CAAKnmB,UAAU,QACX,kBAAComB,GAAA,EAAD,KACI,kBAAC,GAAD,CACI9yB,MAAOgsB,KAAKryB,MAAMohG,YAClB38D,SAAWp+B,GACPgsB,KAAKkM,SAAS,CAAE6iE,YAAa/6F,IAEjCrF,KAAK,WACL+kC,UAAU,aACVK,YAAY,aACZnE,WAAY,CACRoD,UAAU,OAK1B,kBAACnM,GAAA,EAAD,CAAKnmB,UAAU,QACX,kBAAComB,GAAA,EAAD,KACI,kBAAC,GAAD,CACI9yB,MAAOgsB,KAAKryB,MAAMqhG,YAClB58D,SAAWp+B,GACPgsB,KAAKkM,SAAS,CAAE8iE,YAAah7F,IAEjCrF,KAAK,WACL+kC,UAAU,gBACVK,YAAY,gBACZnE,WAAY,CACRoD,UAAU,OAKzBhT,KAAK4uE,eACN,kBAAC/nE,GAAA,EAAD,CAAKnmB,UAAU,QACX,kBAAComB,GAAA,EAAD,KACI,kBAACuU,GAAA,EAAD,CACIC,OAAK,EACLnQ,MAAM,UACN0jE,KAAK,wBAHT,aAsKT1lE,oBAAW2lE,ICpPXS,OAvCM,CACjB,CACI9mE,OAAO,EACPF,KAAM3O,GAAK2B,gBACX5iB,MAAO,oBACPglC,UAAW2wD,IAEf,CACI/lE,KAAM3O,GAAK4B,gBACX7iB,MAAO,gBACPglC,UAAWmxD,IAEf,CACIvmE,KAAM3O,GAAK6B,eACX9iB,MAAO,sBACPglC,UAAWspC,IAEf,CACI1+C,KAAM3O,GAAK8B,cACX/iB,MAAO,cACPglC,UAAWupC,IAEf,CACI3+C,KAAM3O,GAAKyB,MACX1iB,MAAO,aACPglC,UAAW0wD,IAEf,CACI9lE,KAAM3O,GAAK0B,iBACX3iB,MAAO,aACPglC,UAAW0wD,IAEf,CACI9lE,KAAM3O,GAAKC,OACXlhB,MAAO,aACPglC,UAAW0wD,KC/BZ,SAASmB,KACZ,GAAKh7E,KAIL,GAAKF,MAGE,GlSgCAD,GAAqCP,GAAeE,SkShCN,CAejD9S,GAbI,yBAAKR,UAAU,mCACX,8BACI,kBAACwoC,GAAA,EAAD,KACM/lB,GACEA,EACI,uCACA,qGAOU,QAlBiB,CAEnDjiB,GADgB,kBAACuuF,GAAD,OACkB,IAuC1C,SAASA,GAA2BpvE,GAChC,MAAM,EAAE8C,GAAMoD,eACd,OACI,yBAAK7lB,UAAU,mCACX,8BACKyiB,EACG,6BACA,0FAIR,kBAAC,KAAD,CACI+F,GAAItP,GAAKI,SACTiK,IAAK+M,KACLtwB,UAAU,iDAETyiB,EAAE,+BAAgC,yB,cCpCnD,MAAMusE,WAAYhtE,YAAW,cAAD,yBAiBxBitE,oBAAuBr6E,IAEnB4oB,KAAKlY,eAAe1Q,GAEpB1hB,KAAOg8F,OAAOt6E,GACdu6E,0BAAev6E,EAAaA,IAAgBnO,GAAcC,GAAK43B,KAAKF,MACpEgxD,4BAAiBx6E,GACjBvL,KAAMgV,SAAS3zB,QAAQ,mBAAqBkqB,GAvBhDuX,oBACI7M,KAAKK,MAAMjC,aACX4B,KAAKK,MAAM0vE,iBACX/vE,KAAK2vE,oBAAoB3vE,KAAKK,MAAMvzB,UAGxCogC,mBAAmBC,EAAWqG,EAAW2H,GACjChO,EAAUphC,OAASi0B,KAAKK,MAAMt0B,MAAQsC,OACtCmhG,KDRL,WACH,IAAKj7E,KAAkB,CAenBrT,GAbI,yBAAKR,UAAU,mCACX,8BACI,kBAACwoC,GAAA,EAAD,KACM/lB,GACEA,EACI,oCACA,sGAOU,ICP9B6sE,IAEAhwE,KAAKK,MAAMvzB,UAAYkzB,KAAKK,MAAMvzB,WAAaqgC,EAAUrgC,UACzDkzB,KAAK2vE,oBAAoB3vE,KAAKK,MAAMvzB,UAc5C22B,SAII,SAASia,EAAmBxV,GACxB,OACI,kBAAC,KAAD,CACIK,KAAML,EAAMK,KACZ9E,OAASpD,GAEL,kBAAC6H,EAAMyV,UAAP,iBAAqBtd,EAArB,CAA4B0H,OAAQG,EAAMH,YAM1D,MAAMA,EAAS/H,KAAKiwE,UAAUjwE,KAAKK,MAAMt0B,MAEzC,OACI,kBAAC,KAAD,KnStEL,WACH,MAAM4B,EAAQmT,GAAMoG,WAGpB,QADa7Y,GAAQV,MAKhBA,EAAMe,KAAK9C,MmS+DHskG,GACG,kBAAC,GAAD,iBAAkBlwE,KAAKK,MAAvB,CAA8B0H,OAAQA,IAClC,kBAAC,KAAD,KACKA,EAAOzyB,IAAI,CAAC4yB,EAAOngB,IAEZ,kBAAC21B,EAAD,eAAoBzxC,IAAK8b,GAAOmgB,KAGxC,kBAAC,KAAD,CACIioE,KAAMv2E,GAAKE,IACXoP,IAAkBlJ,KAAKK,MAAMt0B,K7RuBrD6oB,KACOgF,GAAKsC,0BACLxH,KACAkF,GAAKgC,4BACLpH,KACAoF,GAAKG,UAGTH,GAAKC,YNjGT,WACH,MAAMlsB,EAAQmT,GAAMoG,WAEdnb,EAAOsC,GAAQV,GAErB,SAAIA,EAAMe,KAAK9C,OAAUG,GmSiETqkG,GACA,yBACI1vF,UAAU,8DACVkI,MAAO,CAAEynF,gBAAiB,YAE1B,kBAAC,cAAD,CACIC,IAAI,GACJryD,KAAM,IACN9S,MAAO,UACPr/B,SAAS,KAIjB,kBAAC,GAAiBk0B,KAAKK,MACnB,kBAAC,KAAD,KACKkwE,GAAcj7F,IAAI,CAAC4yB,EAAOngB,IAEnB,kBAAC21B,EAAD,eAAoBzxC,IAAK8b,GAAOmgB,QAUhE+nE,YACI,OAAIr7E,KACO47E,GAEP97E,KACO+7E,GACAj8E,KACAk8E,GAEJ,IAYAjrE,mBARU93B,IACd,CACH5B,KAAM4B,EAAMe,KAAK3C,KACjBH,MAAO+B,EAAMe,KAAK9C,MAClBkB,SAAUa,EAAMb,WAIgB,CAAEijG,e5RjFZ,KACtB,MAAMnkG,EAAQ2C,aAAaC,QAAQ,SACnC,GAAI5C,EAAO,CACP,MAAM6gG,EAAiB,IAAIv7E,KAAK3iB,aAAaC,QAAQ,mBAGrD,OAFAub,KAAMgV,SAAS3zB,QAAQ4zB,OAAvB,cAAiDpzB,EAE7C6gG,GAAkB,IAAIv7E,KAvB3B,CACHviB,K/C3Ce,Y+CoEPuwB,KACkButE,EAAekE,WAAY,IAAIz/E,MAAOy/E,UACjDziG,GAAYtC,IAGvB,OAAOuC,M4RmEuCiwB,eAA3CqH,CACXC,eAAkBgqE,KC1IFkB,QACW,cAA7BjlE,OAAO1D,SAAS4oE,UAEe,UAA7BllE,OAAO1D,SAAS4oE,UAEhBllE,OAAO1D,SAAS4oE,SAASpkE,MACvB,2D,cCUN74B,KAAOg8F,OAAO,MACdC,0BAAe,KAAM/wD,MACrBgxD,4BAAiB,MAEjB7kG,KAAc6lG,aAAazpF,SAAS82B,IAC/B92B,GACUA,GAEX,SAAUxb,GACN,OAAKA,EAAMwb,UAAsC,MAA1Bxb,EAAMwb,SAAS8G,SAClC5f,aAAauwB,QACb7zB,KAAc8zB,SAAS3zB,QAAQ4zB,OAA/B,cAAyD,K7RgWjEle,GAAMC,SDhTC,CACHpS,K/CxFmB,gBgDwYvBJ,aAAauwB,QACbvd,GACI,kBAAC4G,GAAA,EAAD,CAAOC,QAAQ,oCAAf,8CAxWyB,e6RWlBm9C,QAAQE,OAAO55D,MAsB9B,MAAMklG,GACF,kBAAC,IAAD,CAAUjwF,MAAOA,IACb,kBAACkwF,GAAA,EAAD,CAAiB9yD,KAAM+yD,MACnB,kBAAC,GAAD,QAKZC,IAASztE,OAAOstE,GAAKvgD,SAAS+P,eAAe,SDwDvC,kBAAmB4wC,WACrBA,UAAUC,cAAcC,MAAMpnF,KAAKqnF,IACjCA,EAAaC,iB","file":"static/js/main.5abce438.chunk.js","sourcesContent":["let axios = require('axios');\n\n\nlet baseURL = process.env.REACT_APP_API_HOST;\nif (!baseURL) {\n console.error(\"API Base url (REACT_APP_API_HOST) is not set!\");\n}\n\nlet axiosInstance = axios.create({\n baseURL: baseURL,\n headers: {\n \"Accept-Language\": \"et\",\n }\n});\n/*\naxiosInstance.interceptors.response.use((response) => {\n return response\n}, function (error) {\n\n if (error.response.status === 401) {\n localStorage.removeItem('token');\n localStorage.removeItem('expirationDate');\n //window.location.href = '/';\n return Promise.reject(error);\n }\n\n return Promise.reject(error);\n});\n*/\n\nmodule.exports = axiosInstance;","export const RESET_STORE = \"RESET_STORE\";\n\n// AUTHENTICATION\nexport const REGISTER_START = \"REGISTER_START\";\nexport const REGISTER_SUCCESS = \"REGISTER_SUCCESS\";\nexport const REGISTER_FAIL = \"REGISTER_FAIL\";\nexport const AUTH_START = \"AUTH_START\";\nexport const AUTH_SUCCESS = \"AUTH_SUCCESS\";\nexport const AUTH_FAIL = \"AUTH_FAIL\";\nexport const LOG_OUT = \"LOG_OUT\";\n\n// USER\nexport const GET_AUTH_USER = \"GET_AUTH_USER\";\nexport const FETCH_USERS_START = \"FETCH_USERS_START\";\nexport const FETCH_USERS_SUCCESS = \"FETCH_USERS_SUCCESS\";\nexport const FETCH_USERS_FAIL = \"FETCH_USERS_FAIL\";\nexport const UPDATE_USER_START = \"UPDATE_USER_START\";\nexport const UPDATE_USER_SUCCESS = \"UPDATE_USER_SUCCESS\";\nexport const UPDATE_USER_FAIL = \"UPDATE_USER_FAIL\";\n\n// GENERAL\nexport const ALL_CLIENTS_FETCH_START = \"ALL_CLIENTS_FETCH_START\";\nexport const ALL_CLIENTS_FETCH_SUCCESS = \"ALL_CLIENTS_FETCH_SUCCESS\";\nexport const ALL_CLIENTS_FETCH_FAIL = \"ALL_CLIENTS_FETCH_FAIL\";\n\nexport const STANDARD_COMMENTS_FETCH_START = \"STANDARD_COMMENTS_FETCH_START\";\nexport const STANDARD_COMMENTS_FETCH_SUCCESS =\n \"STANDARD_COMMENTS_FETCH_SUCCESS\";\nexport const STANDARD_COMMENTS_FETCH_FAIL = \"STANDARD_COMMENTS_FETCH_FAIL\";\n\nexport const LOCATIONS_FETCH_START = \"LOCATIONS_FETCH_START\";\nexport const LOCATIONS_FETCH_SUCCESS = \"LOCATIONS_FETCH_SUCCESS\";\nexport const LOCATIONS_FETCH_FAIL = \"LOCATIONS_FETCH_FAIL\";\n\nexport const LANGUAGE_UPDATE = \"LANGUAGE_UPDATE\";\n\n// NAVIGATION\nexport const NAVIGATION_UPDATE_HEADER_SUFFIX =\n \"NAVIGATION_UPDATE_HEADER_SUFFIX\";\n\n// ALERTS\nexport const ALERTS_ADD_GLOBAL = \"ALERTS_ADD_GLOBAL\";\nexport const ALERTS_ADD_LOCAL = \"ALERTS_ADD_LOCAL\";\nexport const ALERTS_CLEAR_ALL = \"ALERTS_CLEAR_ALL\";\nexport const ALERTS_CLEAR_GLOBAL = \"ALERTS_CLEAR_GLOBAL\";\nexport const ALERTS_CLEAR_LOCAL = \"ALERTS_CLEAR_LOCAL\";\nexport const ALERTS_CLEAR_INCLUDED_GROUPS = \"ALERTS_CLEAR_INCLUDED_GROUPS\";\nexport const ALERTS_CLEAR_UNINCLUDED_GROUPS = \"ALERTS_CLEAR_UNINCLUDED_GROUPS\";\nexport const ALERTS_UPDATE_ACTIVE_GROUPS = \"ALERTS_UPDATE_ACTIVE_GROUPS\";\n\n// PACKAGES\nexport const PACKAGES_FETCH_START = \"PACKAGES_FETCH_START\";\nexport const PACKAGES_FETCH_SUCCESS = \"PACKAGES_FETCH_SUCCESS\";\nexport const PACKAGES_FETCH_FAIL = \"PACKAGES_FETCH_FAIL\";\n\nexport const EAN_TYPES_FETCH_START = \"EAN_TYPES_FETCH_START\";\nexport const EAN_TYPES_FETCH_SUCCESS = \"EAN_TYPES_FETCH_SUCCESS\";\nexport const EAN_TYPES_FETCH_FAIL = \"EAN_TYPES_FETCH_FAIL\";\n\nexport const PRODUCT_CATEGORIES_FETCH_START = \"PRODUCT_CATEGORIES_FETCH_START\";\nexport const PRODUCT_CATEGORIES_FETCH_SUCCESS =\n \"PRODUCT_CATEGORIES_FETCH_SUCCESS\";\nexport const PRODUCT_CATEGORIES_FETCH_FAIL = \"PRODUCT_CATEGORIES_FETCH_FAIL\";\n\nexport const PACKAGE_TYPES_FETCH_START = \"PACKAGE_TYPES_FETCH_START\";\nexport const PACKAGE_TYPES_FETCH_SUCCESS = \"PACKAGE_TYPES_FETCH_SUCCESS\";\nexport const PACKAGE_TYPES_FETCH_FAIL = \"PACKAGE_TYPES_FETCH_FAIL\";\n\nexport const PACKAGE_COLORS_FETCH_START = \"PACKAGE_COLORS_FETCH_START\";\nexport const PACKAGE_COLORS_FETCH_SUCCESS = \"PACKAGE_COLORS_FETCH_SUCCESS\";\nexport const PACKAGE_COLORS_FETCH_FAIL = \"PACKAGE_COLORS_FETCH_FAIL\";\n\nexport const PACKAGE_VOLUMES_FETCH_START = \"PACKAGE_VOLUMES_FETCH_START\";\nexport const PACKAGE_VOLUMES_FETCH_SUCCESS = \"PACKAGE_VOLUMES_FETCH_SUCCESS\";\nexport const PACKAGE_VOLUMES_FETCH_FAIL = \"PACKAGE_VOLUMES_FETCH_FAIL\";\n\nexport const PACKAGE_STATUSES_FETCH_START = \"PACKAGE_STATUSES_FETCH_START\";\nexport const PACKAGE_STATUSES_FETCH_SUCCESS = \"PACKAGE_STATUSES_FETCH_SUCCESS\";\nexport const PACKAGE_STATUSES_FETCH_FAIL = \"PACKAGE_STATUSES_FETCH_FAIL\";\n\nexport const PACKAGE_TEST_RESULTS_FETCH_START =\n \"PACKAGE_TEST_RESULTS_FETCH_START\";\nexport const PACKAGE_TEST_RESULTS_FETCH_SUCCESS =\n \"PACKAGE_TEST_RESULTS_FETCH_SUCCESS\";\nexport const PACKAGE_TEST_RESULTS_FETCH_FAIL =\n \"PACKAGE_TEST_RESULTS_FETCH_FAIL\";\n\nexport const PACKAGE_POST_START = \"PACKAGE_POST_START\";\nexport const PACKAGE_POST_SUCCESS = \"PACKAGE_POST_SUCCESS\";\nexport const PACKAGE_POST_FAIL = \"PACKAGE_POST_FAIL\";\n\n// INVOICES\nexport const INVOICES_FETCH_START = \"INVOICES_FETCH_START\";\nexport const INVOICES_FETCH_SUCCESS = \"INVOICES_FETCH_SUCCESS\";\nexport const INVOICES_FETCH_FAIL = \"INVOICES_FETCH_FAIL\";\n\nexport const INVOICE_DATA_FETCH_START = \"INVOICES_DATA_FETCH_START\";\nexport const INVOICE_DATA_FETCH_SUCCESS = \"INVOICES_DATA_FETCH_SUCCESS\";\nexport const INVOICE_DATA_FETCH_FAIL = \"INVOICES_DATA_FETCH_FAIL\";\n\n// REPORTS\n\n// SALES REPORTS\nexport const SALES_FETCH_START = \"SALES_FETCH_START\";\nexport const SALES_FETCH_SUCCESS = \"SALES_FETCH_SUCCESS\";\nexport const SALES_FETCH_FAIL = \"SALES_FETCH_FAIL\";\n\nexport const SALES_SEARCH_FILTER_UPDATE = \"SALES_SEARCH_FILTER_UPDATE\";\nexport const SALES_CLEAR_FILTERS = \"SALES_CLEAR_FILTERS\";\n\nexport const SALES_CREATE_REPAIR_START = \"SALES_CREATE_REPAIR_START\";\nexport const SALES_CREATE_REPAIR_SUCCESS = \"SALES_CREATE_REPAIR_SUCCESS\";\nexport const SALES_CREATE_REPAIR_FAIL = \"SALES_CREATE_REPAIR_FAIL\";\n\n// SALES REPORT DETAILS\nexport const SALES_REPORT_FETCH_START = \"SALES_REPORT_FETCH_START\";\nexport const SALES_REPORT_FETCH_SUCCESS = \"SALES_REPORT_FETCH_SUCCESS\";\nexport const SALES_REPORT_FETCH_FAIL = \"SALES_REPORT_FETCH_FAIL\";\nexport const SALES_REPORT_PACKAGES_FIELD_CHANGE =\n \"SALES_REPORT_PACKAGES_FIELD_CHANGE\";\nexport const SALES_REPORT_HEADER_FIELD_CHANGE =\n \"SALES_REPORT_HEADER_FIELD_CHANGE\";\nexport const SALES_REPORT_HEADER_TOTALS_UPDATE =\n \"SALES_REPORT_HEADER_TOTALS_UPDATE\";\nexport const SALES_LINE_UPDATE_START = \"SALES_LINE_UPDATE_START\";\nexport const SALES_LINE_UPDATE_SUCCESS = \"SALES_LINE_UPDATE_SUCCESS\";\nexport const SALES_LINE_UPDATE_FAIL = \"SALES_LINE_UPDATE_FAIL\";\nexport const SALES_REPORT_SUBMIT_START = \"SALES_REPORT_SUBMIT_START\";\nexport const SALES_REPORT_SUBMIT_SUCCESS = \"SALES_REPORT_SUBMIT_SUCCESS\";\nexport const SALES_REPORT_SUBMIT_FAIL = \"SALES_REPORT_SUBMIT_FAIL\";\nexport const SALES_REPORT_DELETE_ORIGINAL_START =\n \"SALES_REPORT_DELETE_ORIGINAL_START\";\nexport const SALES_REPORT_DELETE_ORIGINAL_SUCCESS =\n \"SALES_REPORT_DELETE_ORIGINAL_SUCCESS\";\nexport const SALES_REPORT_DELETE_ORIGINAL_FAIL =\n \"SALES_REPORT_DELETE_ORIGINAL_FAIL\";\nexport const SALES_REPORT_DELETE_REPAIR_START =\n \"SALES_REPORT_DELETE_REPAIR_START\";\nexport const SALES_REPORT_DELETE_REPAIR_SUCCESS =\n \"SALES_REPORT_DELETE_REPAIR_SUCCESS\";\nexport const SALES_REPORT_DELETE_REPAIR_FAIL =\n \"SALES_REPORT_DELETE_REPAIR_FAIL\";\nexport const SALES_REPORT_EXPORT_START = \"SALES_REPORT_EXPORT_START\";\nexport const SALES_REPORT_EXPORT_SUCCESS = \"SALES_REPORT_EXPORT_SUCCESS\";\nexport const SALES_REPORT_EXPORT_FAIL = \"SALES_REPORT_EXPORT_FAIL\";\n\n// SUMMARY REPORT\nexport const SUMMARY_REPORT_SEARCH_START = \"SUMMARY_REPORT_SEARCH_START\";\nexport const SUMMARY_REPORT_SEARCH_SUCCESS = \"SUMMARY_REPORT_SEARCH_SUCCESS\";\nexport const SUMMARY_REPORT_SEARCH_FAIL = \"SUMMARY_REPORT_SEARCH_FAIL\";\n\nexport const SUMMARY_REPORT_SEARCH_FILTER_UPDATE =\n \"SUMMARY_REPORT_SEARCH_FILTER_UPDATE\";\n\nexport const SUMMARY_REPORT_EXPORT_START = \"SUMMARY_REPORT_EXPORT_START\";\nexport const SUMMARY_REPORT_EXPORT_SUCCESS = \"SUMMARY_REPORT_EXPORT_SUCCESS\";\nexport const SUMMARY_REPORT_EXPORT_FAIL = \"SUMMARY_REPORT_EXPORT_FAIL\";\n\nexport const SALES_REPORT_IMPORT_OPEN = \"SALES_REPORT_IMPORT_OPEN\";\nexport const SALES_REPORT_IMPORT_FILE_CHANGE =\n \"SALES_REPORT_IMPORT_FILE_CHANGE\";\nexport const SALES_REPORT_IMPORT_START = \"SALES_REPORT_IMPORT_START\";\nexport const SALES_REPORT_IMPORT_SUCCESS = \"SALES_REPORT_IMPORT_SUCCESS\";\nexport const SALES_REPORT_IMPORT_FAIL = \"SALES_REPORT_IMPORT_FAIL\";\nexport const SALES_REPORT_IMPORT_CLOSE = \"SALES_REPORT_IMPORT_CLOSE\";\n\n// MASS REPORT\nexport const MASS_REPORT_SEARCH_START = \"MASS_REPORT_SEARCH_START\";\nexport const MASS_REPORT_SEARCH_SUCCESS = \"MASS_REPORT_SEARCH_SUCCESS\";\nexport const MASS_REPORT_SEARCH_FAIL = \"MASS_REPORT_SEARCH_FAIL\";\n\nexport const MASS_REPORT_SEARCH_FILTER_UPDATE =\n \"MASS_REPORT_SEARCH_FILTER_UPDATE\";\nexport const MASS_REPORT_UPDATE_FORMAT = \"MASS_REPORT_UPDATE_FORMAT\";\n\nexport const MASS_REPORT_EXPORT_START = \"MASS_REPORT_EXPORT_START\";\nexport const MASS_REPORT_EXPORT_SUCCESS = \"MASS_REPORT_EXPORT_SUCCESS\";\nexport const MASS_REPORT_EXPORT_FAIL = \"MASS_REPORT_EXPORT_FAIL\";\n\n// PROFILE\nexport const PERSONAL_PROFILE_FETCH_START = \"PERSONAL_PROFILE_FETCH_START\";\nexport const PERSONAL_PROFILE_FETCH_SUCCESS = \"PERSONAL_PROFILE_FETCH_SUCCESS\";\nexport const PERSONAL_PROFILE_FETCH_FAIL = \"PERSONAL_PROFILE_FETCH_FAIL\";\nexport const PERSONAL_PROFILE_UPDATE = \"PERSONAL_PROFILE_UPDATE\";\nexport const COMPANY_PROFILE_FETCH_START = \"COMPANY_PROFILE_FETCH_START\";\nexport const COMPANY_PROFILE_FETCH_SUCCESS = \"COMPANY_PROFILE_FETCH_SUCCESS\";\nexport const COMPANY_PROFILE_FETCH_FAIL = \"COMPANY_PROFILE_FETCH_FAIL\";\nexport const COMPANY_PROFILE_UPDATE = \"COMPANY_PROFILE_UPDATE\";\nexport const CONTRACTS_FETCH_START = \"CONTRACTS_FETCH_START\";\nexport const CONTRACTS_FETCH_SUCCESS = \"CONTRACTS_FETCH_SUCCESS\";\nexport const CONTRACTS_FETCH_FAIL = \"CONTRACTS_FETCH_FAIL\";\nexport const REPRESENTATION_OPTIONS_FETCH_START =\n \"REPRESENTATION_OPTIONS_FETCH_START\";\nexport const REPRESENTATION_OPTIONS_FETCH_SUCCESS =\n \"REPRESENTATION_OPTIONS_FETCH_SUCCESS\";\nexport const REPRESENTATION_OPTIONS_FETCH_FAIL =\n \"REPRESENTATION_OPTIONS_FETCH_FAIL\";\n\nexport const USER_SETTINGS_FETCH_START = \"USER_SETTINGS_FETCH_START\";\nexport const USER_SETTINGS_FETCH_SUCCESS = \"USER_SETTINGS_FETCH_SUCCESS\";\nexport const USER_SETTINGS_FETCH_FAIL = \"USER_SETTINGS_FETCH_FAIL\";\nexport const USER_SETTINGS_PUT_START = \"USER_SETTINGS_PUT_START\";\nexport const USER_SETTINGS_PUT_SUCCESS = \"USER_SETTINGS_PUT_SUCCESS\";\nexport const USER_SETTINGS_PUT_FAIL = \"USER_SETTINGS_PUT_FAIL\";\n\n//DASHBOARD\nexport const LAST_PACKAGES_FETCH_START = \"LAST_PACKAGES_FETCH_START\";\nexport const LAST_PACKAGES_FETCH_SUCCESS = \"LAST_PACKAGES_FETCH_SUCCESS\";\nexport const LAST_PACKAGES_FETCH_FAIL = \"LAST_PACKAGES_FETCH_FAIL\";\nexport const LAST_REPORTS_FETCH_START = \"LAST_REPORTS_FETCH_START\";\nexport const LAST_REPORTS_FETCH_SUCCESS = \"LAST_REPORTS_FETCH_SUCCESS\";\nexport const LAST_REPORTS_FETCH_FAIL = \"LAST_REPORTS_FETCH_FAIL\";\nexport const STATISTICS_FETCH_START = \"STATISTICS_FETCH_START\";\nexport const STATISTICS_FETCH_SUCCESS = \"STATISTICS_FETCH_SUCCESS\";\nexport const STATISTICS_FETCH_FAIL = \"STATISTICS_FETCH_FAIL\";\n\n// PARTNER\nexport const PACKAGES_IN_TEST_FETCH_START = \"PACKAGES_IN_TEST_FETCH_START\";\nexport const PACKAGES_IN_TEST_FETCH_SUCCESS = \"PACKAGES_IN_TEST_FETCH_SUCCESS\";\nexport const PACKAGES_IN_TEST_FETCH_FAIL = \"PACKAGES_IN_TEST_FETCH_FAIL\";\nexport const PACKAGES_IN_TEST_FILTER_UPDATE = \"PACKAGES_IN_TEST_FILTER_UPDATE\";\nexport const PACKAGES_IN_TEST_FILTER_CLEAR = \"PACKAGES_IN_TEST_FILTER_CLEAR\";\nexport const PACKAGES_IN_TEST_SORTING_UPDATE = \"PACKAGES_IN_TEST_SORTING_UPDATE\";\nexport const PACKAGES_IN_TEST_PAGINATION_UPDATE = \"PACKAGES_IN_TEST_PAGINATION_UPDATE\";\n// export const PACKAGES_IN_TEST_EXPORT_START = \"PACKAGES_IN_TEST_EXPORT_START\";\n// export const PACKAGES_IN_TEST_EXPORT_SUCCESS = \"PACKAGES_IN_TEST_EXPORT_SUCCESS\";\n// export const PACKAGES_IN_TEST_EXPORT_FAIL = \"PACKAGES_IN_TEST_EXPORT_FAIL\";\n\nexport const PACKAGES_IN_RETEST_FETCH_START = \"PACKAGES_IN_RETEST_FETCH_START\";\nexport const PACKAGES_IN_RETEST_FETCH_SUCCESS = \"PACKAGES_IN_RETEST_FETCH_SUCCESS\";\nexport const PACKAGES_IN_RETEST_FETCH_FAIL = \"PACKAGES_IN_RETEST_FETCH_FAIL\";\nexport const PACKAGES_IN_RETEST_FILTER_UPDATE = \"PACKAGES_IN_RETEST_FILTER_UPDATE\";\nexport const PACKAGES_IN_RETEST_FILTER_CLEAR = \"PACKAGES_IN_RETEST_FILTER_CLEAR\";\nexport const PACKAGES_IN_RETEST_SORTING_UPDATE = \"PACKAGES_IN_RETEST_SORTING_UPDATE\";\nexport const PACKAGES_IN_RETEST_PAGINATION_UPDATE = \"PACKAGES_IN_RETEST_PAGINATION_UPDATE\";\n\nexport const PACKAGES_UNCONFIRMED_FETCH_START =\n \"PACKAGES_UNCONFIRMED_FETCH_START\";\nexport const PACKAGES_UNCONFIRMED_FETCH_SUCCESS =\n \"PACKAGES_UNCONFIRMED_FETCH_SUCCESS\";\nexport const PACKAGES_UNCONFIRMED_FETCH_FAIL =\n \"PACKAGES_UNCONFIRMED_FETCH_FAIL\";\nexport const PACKAGES_UNCONFIRMED_FILTER_UPDATE =\n \"PACKAGES_UNCONFIRMED_FILTER_UPDATE\";\nexport const PACKAGES_UNCONFIRMED_FILTER_CLEAR =\n \"PACKAGES_UNCONFIRMED_FILTER_CLEAR\";\nexport const PACKAGES_UNCONFIRMED_SORTING_UPDATE = \"PACKAGES_UNCONFIRMED_SORTING_UPDATE\";\nexport const PACKAGES_UNCONFIRMED_PAGINATION_UPDATE = \"PACKAGES_UNCONFIRMED_PAGINATION_UPDATE\";\n\nexport const PACKAGES_TESTED_FETCH_START = \"PACKAGES_TESTED_FETCH_START\";\nexport const PACKAGES_TESTED_FETCH_SUCCESS = \"PACKAGES_TESTED_FETCH_SUCCESS\";\nexport const PACKAGES_TESTED_FETCH_FAIL = \"PACKAGES_TESTED_FETCH_FAIL\";\nexport const PACKAGES_TESTED_FILTER_UPDATE = \"PACKAGES_TESTED_FILTER_UPDATE\";\nexport const PACKAGES_TESTED_FILTER_CLEAR = \"PACKAGES_TESTED_FILTER_CLEAR\";\nexport const PACKAGES_TESTED_SORTING_UPDATE = \"PACKAGES_TESTED_SORTING_UPDATE\";\nexport const PACKAGES_TESTED_PAGINATION_UPDATE = \"PACKAGES_TESTED_PAGINATION_UPDATE\";\n\nexport const PACKAGES_TESTING_ALL_FETCH_START =\n \"PACKAGES_TESTING_ALL_FETCH_START\";\nexport const PACKAGES_TESTING_ALL_FETCH_SUCCESS =\n \"PACKAGES_TESTING_ALL_FETCH_SUCCESS\";\nexport const PACKAGES_TESTING_ALL_FETCH_FAIL =\n \"PACKAGES_TESTING_ALL_FETCH_FAIL\";\nexport const PACKAGES_TESTING_ALL_FILTER_UPDATE =\n \"PACKAGES_TESTING_ALL_FILTER_UPDATE\";\nexport const PACKAGES_TESTING_ALL_FILTER_CLEAR =\n \"PACKAGES_TESTING_ALL_FILTER_CLEAR\";\n export const PACKAGES_TESTING_ALL_SORTING_UPDATE = \"PACKAGES_TESTING_ALL_SORTING_UPDATE\";\n export const PACKAGES_TESTING_ALL_PAGINATION_UPDATE = \"PACKAGES_TESTING_ALL_PAGINATION_UPDATE\";\n\n// ADMIN\n//ADMIN APPLICATIONS\nexport const ADMIN_APPLICATIONS_FETCH_START = \"ADMIN_APPLICATIONS_FETCH_START\";\nexport const ADMIN_APPLICATIONS_FETCH_SUCCESS =\n \"ADMIN_APPLICATIONS_FETCH_SUCCESS\";\nexport const ADMIN_APPLICATIONS_FETCH_FAIL = \"ADMIN_APPLICATIONS_FETCH_FAIL\";\n\nexport const ADMIN_APPLICATIONS_UPDATE_SELECTED =\n \"ADMIN_APPLICATIONS_UPDATE_SELECTED\";\n\nexport const ADMIN_APPLICATIONS_FILTER_UPDATE =\n \"ADMIN_APPLICATIONS_FILTER_UPDATE\";\nexport const ADMIN_APPLICATIONS_FILTER_CLEAR =\n \"ADMIN_APPLICATIONS_FILTER_CLEAR\";\nexport const ADMIN_APPLICATIONS_SORTING_UPDATE =\n \"ADMIN_APPLICATIONS_SORTING_UPDATE\";\nexport const ADMIN_APPLICATIONS_PAGINATION_UPDATE =\n \"ADMIN_APPLICATIONS_PAGINATION_UPDATE\";\n\nexport const ADMIN_SEND_TO_TESTING_START = \"ADMIN_SEND_TO_TESTING_START\";\nexport const ADMIN_SEND_TO_TESTING_SUCCESS = \"ADMIN_SEND_TO_TESTING_SUCCESS\";\nexport const ADMIN_SEND_TO_TESTING_FAIL = \"ADMIN_SEND_TO_TESTING_FAIL\";\n\n// ADMIN TESTING\nexport const ADMIN_TESTING_PACKAGES_FETCH_START =\n \"ADMIN_TESTING_PACKAGES_FETCH_START\";\nexport const ADMIN_TESTING_PACKAGES_FETCH_SUCCESS =\n \"ADMIN_TESTING_PACKAGES_FETCH_SUCCESS\";\nexport const ADMIN_TESTING_PACKAGES_FETCH_FAIL =\n \"ADMIN_TESTING_PACKAGES_FETCH_FAIL\";\n\nexport const ADMIN_TESTING_PACKAGES_FILTER_UPDATE =\n \"ADMIN_TESTING_PACKAGES_FILTER_UPDATE\";\nexport const ADMIN_TESTING_PACKAGES_FILTER_CLEAR =\n \"ADMIN_TESTING_PACKAGES_FILTER_CLEAR\";\nexport const ADMIN_TESTING_PACKAGES_SORTING_UPDATE =\n \"ADMIN_TESTING_PACKAGES_SORTING_UPDATE\";\nexport const ADMIN_TESTING_PACKAGES_PAGINATION_UPDATE =\n \"ADMIN_TESTING_PACKAGES_PAGINATION_UPDATE\";\n\nexport const ADMIN_TESTING_UPDATE_SELECTED = \"ADMIN_TESTING_UPDATE_SELECTED\";\n\nexport const ADMIN_TESTING_SEND_TO_RETESTING_START =\n \"ADMIN_TESTING_SEND_TO_RETESTING_START\";\nexport const ADMIN_TESTING_SEND_TO_RETESTING_SUCCESS =\n \"ADMIN_TESTING_SEND_TO_RETESTING_SUCCESS\";\nexport const ADMIN_TESTING_SEND_TO_RETESTING_FAIL =\n \"ADMIN_TESTING_SEND_TO_RETESTING_FAIL\";\n\nexport const ADMIN_TESTING_CONFIRM_PACKAGE_TEST_START =\n \"ADMIN_TESTING_CONFIRM_PACKAGE_TEST_START\";\nexport const ADMIN_TESTING_CONFIRM_PACKAGE_TEST_SUCCESS =\n \"ADMIN_TESTING_CONFIRM_PACKAGE_TEST_SUCCESS\";\nexport const ADMIN_TESTING_CONFIRM_PACKAGE_TEST_FAIL =\n \"ADMIN_TESTING_CONFIRM_PACKAGE_TEST_FAIL\";\n\nexport const ADMIN_TESTING_ACTIVATE_PACKAGES_START =\n \"ADMIN_TESTING_ACTIVATE_PACKAGES_START\";\nexport const ADMIN_TESTING_ACTIVATE_PACKAGES_SUCCESS =\n \"ADMIN_TESTING_ACTIVATE_PACKAGES_SUCCESS\";\nexport const ADMIN_TESTING_ACTIVATE_PACKAGES_FAIL =\n \"ADMIN_TESTING_ACTIVATE_PACKAGES_FAIL\";\n\n// ADMIN RETESTING\nexport const ADMIN_RETESTING_UPDATE_SELECTED = \"ADMIN_RETESTING_UPDATE_SELECTED\";\n\nexport const ADMIN_RETESTING_CONFIRM_PACKAGE_TEST_START =\n \"ADMIN_RETESTING_CONFIRM_PACKAGE_TEST_START\";\nexport const ADMIN_RETESTING_CONFIRM_PACKAGE_TEST_SUCCESS =\n \"ADMIN_RETESTING_CONFIRM_PACKAGE_TEST_SUCCESS\";\nexport const ADMIN_RETESTING_CONFIRM_PACKAGE_TEST_FAIL =\n \"ADMIN_RETESTING_CONFIRM_PACKAGE_TEST_FAIL\";\n\nexport const ADMIN_RETESTING_PACKAGES_FETCH_START =\n \"ADMIN_RETESTING_PACKAGES_FETCH_START\";\nexport const ADMIN_RETESTING_PACKAGES_FETCH_SUCCESS =\n \"ADMIN_RETESTING_PACKAGES_FETCH_SUCCESS\";\nexport const ADMIN_RETESTING_PACKAGES_FETCH_FAIL =\n \"ADMIN_RETESTING_PACKAGES_FETCH_FAIL\";\n\nexport const ADMIN_RETESTING_PACKAGES_FILTER_UPDATE =\n \"ADMIN_RETESTING_PACKAGES_FILTER_UPDATE\";\nexport const ADMIN_RETESTING_PACKAGES_FILTER_CLEAR =\n \"ADMIN_RETESTING_PACKAGES_FILTER_CLEAR\";\nexport const ADMIN_RETESTING_PACKAGES_SORTING_UPDATE =\n \"ADMIN_RETESTING_PACKAGES_SORTING_UPDATE\";\nexport const ADMIN_RETESTING_PACKAGES_PAGINATION_UPDATE =\n \"ADMIN_RETESTING_PACKAGES_PAGINATION_UPDATE\";\n\n// ADMIN ALL PACKAGES\nexport const ADMIN_ALL_PACKAGES_FETCH_START = \"ADMIN_ALL_PACKAGES_FETCH_START\";\nexport const ADMIN_ALL_PACKAGES_FETCH_SUCCESS =\n \"ADMIN_ALL_PACKAGES_FETCH_SUCCESS\";\nexport const ADMIN_ALL_PACKAGES_FETCH_FAIL = \"ADMIN_ALL_PACKAGES_FETCH_FAIL\";\n\nexport const ADMIN_ALL_PACKAGES_FILTER_UPDATE =\n \"ADMIN_ALL_PACKAGES_FILTER_UPDATE\";\nexport const ADMIN_ALL_PACKAGES_FILTER_CLEAR =\n \"ADMIN_ALL_PACKAGES_FILTER_CLEAR\";\nexport const ADMIN_ALL_PACKAGES_SORTING_UPDATE =\n \"ADMIN_ALL_PACKAGES_SORTING_UPDATE\";\nexport const ADMIN_ALL_PACKAGES_PAGINATION_UPDATE =\n \"ADMIN_ALL_PACKAGES_PAGINATION_UPDATE\";\n\nexport const ADMIN_DEBTS_FETCH_START = \"ADMIN_DEBTS_FETCH_START\";\nexport const ADMIN_DEBTS_FETCH_SUCCESS = \"ADMIN_DEBTS_FETCH_SUCCESS\";\nexport const ADMIN_DEBTS_FETCH_FAIL = \"ADMIN_DEBTS_FETCH_FAIL\";\nexport const ADMIN_DEBTS_FILTER_UPDATE = \"ADMIN_DEBTS_FILTER_UPDATE\";\nexport const ADMIN_DEBTS_FILTER_CLEAR = \"ADMIN_DEBTS_FILTER_CLEAR\";\n\nexport const ADMIN_CLIENTS_FETCH_START = \"ADMIN_CLIENTS_FETCH_START\";\nexport const ADMIN_CLIENTS_FETCH_SUCCESS = \"ADMIN_CLIENTS_FETCH_SUCCESS\";\nexport const ADMIN_CLIENTS_FETCH_FAIL = \"ADMIN_CLIENTS_FETCH_FAIL\";\nexport const ADMIN_CLIENTS_PAGINATION_UPDATE =\n \"ADMIN_CLIENTS_PAGINATION_UPDATE\";\nexport const ADMIN_CLIENTS_SORTING_UPDATE = \"ADMIN_CLIENTS_SORTING_UPDATE\";\nexport const ADMIN_CLIENTS_FILTER_UPDATE = \"ADMIN_CLIENTS_FILTER_UPDATE\";\n\nexport const ADMIN_PARTNERS_FETCH_START = \"ADMIN_PARTNERS_FETCH_START\";\nexport const ADMIN_PARTNERS_FETCH_SUCCESS = \"ADMIN_PARTNERS_FETCH_SUCCESS\";\nexport const ADMIN_PARTNERS_FETCH_FAIL = \"ADMIN_PARTNERS_FETCH_FAIL\";\n\nexport const ADMIN_PARTNER_USER_UPDATE = \"ADMIN_PARTNER_USER_UPDATE\";\n\nexport const ADMIN_EPP_USERS_FETCH_START = \"ADMIN_EPP_USERS_FETCH_START\";\nexport const ADMIN_EPP_USERS_FETCH_SUCCESS = \"ADMIN_EPP_USERS_FETCH_SUCCESS\";\nexport const ADMIN_EPP_USERS_FETCH_FAIL = \"ADMIN_EPP_USERS_FETCH_FAIL\";\n\nexport const ADMIN_EPP_USER_UPDATE = \"ADMIN_EPP_USER_UPDATE\";\n\n// ADMIN SALES REPORTS\n\nexport const ADMIN_SALES_REPORTS_FETCH_START =\n \"ADMIN_SALES_REPORTS_FETCH_START\";\nexport const ADMIN_SALES_REPORTS_FETCH_SUCCESS =\n \"ADMIN_SALES_REPORTS_FETCH_SUCCESS\";\nexport const ADMIN_SALES_REPORTS_FETCH_FAIL = \"ADMIN_SALES_REPORTS_FETCH_FAIL\";\n\nexport const ADMIN_SALES_REPORTS_FILTER_UPDATE =\n \"ADMIN_SALES_REPORTS_FILTER_UPDATE\";\nexport const ADMIN_SALES_REPORTS_FILTER_CLEAR =\n \"ADMIN_SALES_REPORTS_FILTER_CLEAR\";\n\nexport const ADMIN_UNSUBMITTED_SALES_REPORTS_FETCH_START =\n \"ADMIN_UNSUBMITTED_SALES_REPORTS_FETCH_START\";\nexport const ADMIN_UNSUBMITTED_SALES_REPORTS_FETCH_SUCCESS =\n \"ADMIN_UNSUBMITTED_SALES_REPORTS_FETCH_SUCCESS\";\nexport const ADMIN_UNSUBMITTED_SALES_REPORTS_FETCH_FAIL =\n \"ADMIN_UNSUBMITTED_SALES_REPORTS_FETCH_FAIL\";\n\nexport const ADMIN_UNSUBMITTED_SALES_REPORTS_FILTER_UPDATE =\n \"ADMIN_UNSUBMITTED_SALES_REPORTS_FILTER_UPDATE\";\nexport const ADMIN_UNSUBMITTED_SALES_REPORTS_FILTER_CLEAR =\n \"ADMIN_UNSUBMITTED_SALES_REPORTS_FILTER_CLEAR\";\n\nexport const ADMIN_UNCONFIRMED_SALES_REPORTS_FETCH_START =\n \"ADMIN_UNCONFIRMED_SALES_REPORTS_FETCH_START\";\nexport const ADMIN_UNCONFIRMED_SALES_REPORTS_FETCH_SUCCESS =\n \"ADMIN_UNCONFIRMED_SALES_REPORTS_FETCH_SUCCESS\";\nexport const ADMIN_UNCONFIRMED_SALES_REPORTS_FETCH_FAIL =\n \"ADMIN_UNCONFIRMED_SALES_REPORTS_FETCH_FAIL\";\n\nexport const ADMIN_UNCONFIRMED_SALES_REPORTS_FILTER_UPDATE =\n \"ADMIN_UNCONFIRMED_SALES_REPORTS_FILTER_UPDATE\";\nexport const ADMIN_UNCONFIRMED_SALES_REPORTS_FILTER_CLEAR =\n \"ADMIN_UNCONFIRMED_SALES_REPORTS_FILTER_CLEAR\";\n\n// ADMIN SETTINGS\nexport const ADMIN_CATEGORIES_FETCH_START = \"ADMIN_CATEGORIES_FETCH_START\";\nexport const ADMIN_CATEGORIES_FETCH_SUCCESS = \"ADMIN_CATEGORIES_FETCH_SUCCESS\";\nexport const ADMIN_CATEGORIES_FETCH_FAIL = \"ADMIN_CATEGORIES_FETCH_FAIL\";\n\nexport const ADMIN_COLORS_FETCH_START = \"ADMIN_COLORS_FETCH_START\";\nexport const ADMIN_COLORS_FETCH_SUCCESS = \"ADMIN_COLORS_FETCH_SUCCESS\";\nexport const ADMIN_COLORS_FETCH_FAIL = \"ADMIN_COLORS_FETCH_FAIL\";\n\nexport const ADMIN_PROCESS_FEES_FETCH_START = \"ADMIN_PROCESS_FEES_FETCH_START\";\nexport const ADMIN_PROCESS_FEES_FETCH_SUCCESS =\n \"ADMIN_PROCESS_FEES_FETCH_SUCCESS\";\nexport const ADMIN_PROCESS_FEES_FETCH_FAIL = \"ADMIN_PROCESS_FEES_FETCH_FAIL\";\n\nexport const ADMIN_TYPES_FETCH_START = \"ADMIN_TYPES_FETCH_START\";\nexport const ADMIN_TYPES_FETCH_SUCCESS = \"ADMIN_TYPES_FETCH_SUCCESS\";\nexport const ADMIN_TYPES_FETCH_FAIL = \"ADMIN_TYPES_FETCH_FAIL\";\n\nexport const ADMIN_VOLUMES_FETCH_START = \"ADMIN_VOLUMES_FETCH_START\";\nexport const ADMIN_VOLUMES_FETCH_SUCCESS = \"ADMIN_VOLUMES_FETCH_SUCCESS\";\nexport const ADMIN_VOLUMES_FETCH_FAIL = \"ADMIN_VOLUMES_FETCH_FAIL\";\n\n// NOTIFICATIONS\nexport const NOTIFICATIONS_FETCH_START = \"NOTIFICATIONS_FETCH_START\";\nexport const NOTIFICATIONS_FETCH_SUCCESS = \"NOTIFICATIONS_FETCH_SUCCESS\";\nexport const NOTIFICATIONS_FETCH_FAIL = \"NOTIFICATIONS_FETCH_FAIL\";\n","export const updateObject = (oldObject, updatedProperties) => {\n return {\n ...oldObject,\n ...updatedProperties\n }\n};","import * as actionTypes from '../actions/actionTypes';\nimport {updateObject} from '../utility';\n\nconst initialState = {\n token: null, // TODO switch back to null\n error: null,\n loading: false,\n user: {\n user: '',\n personal_code: '',\n key: '',\n first_name: '',\n last_name: '',\n is_admin: false,\n is_superuser: false,\n email: \"\",\n phone: \"\",\n faxes: [],\n user_type: {\n client_name: '',\n profession: '',\n user_type: ''\n },\n user_settings: {\n is_debt: false,\n language: 'ee',\n is_package_registration: false,\n is_sales_report: false,\n is_email_notification: false,\n is_push_notification: false\n },\n clients: [\n {\n name: '',\n active_client: false,\n is_valid_contract: false,\n is_unapproved_contract: false\n }\n ],\n },\n users: [],\n authType: null,\n};\n\nconst registerStart = (state, action) => {\n return updateObject(state, {\n errorMessage: null,\n successMessage: null,\n loading: true\n })\n};\n\nconst registerSuccess = (state, action) => {\n return updateObject(state, {\n successMessage: \"User successfully registered!\",\n loading: false\n })\n};\n\nconst registerFail = (state, action) => {\n return updateObject(state, {\n errorMessage: action.error,\n loading: false\n })\n};\n\nconst authStart = (state, action) => {\n return updateObject(state, {\n error: null,\n loading: true\n })\n};\n\nconst authSuccess = (state, action) => {\n return updateObject(state, {\n token: action.token,\n error: null,\n loading: false\n })\n};\n\nconst authFail = (state, action) => {\n return updateObject(state, {\n token: null,\n error: action.error,\n loading: false\n })\n};\n\nconst logOut = (state, action) => {\n return updateObject(state, {\n token: null,\n })\n};\n\nconst getUser = (state, action) => {\n if (!action.user) {\n return updateObject(state, {\n user: action.user,\n })\n }\n return updateObject(state, {\n user: {\n ...action.user,\n cert: action.user.cert || localStorage.getItem(\"cert\"),\n },\n authType: localStorage.getItem(\"authType\"),\n phoneNumberMID: localStorage.getItem(\"phoneNumberMID\"),\n })\n};\n\n\nconst auth = (state = initialState, action) => {\n switch (action.type) {\n case actionTypes.REGISTER_START:\n return registerStart(state, action);\n case actionTypes.REGISTER_SUCCESS:\n return registerSuccess(state, action);\n case actionTypes.REGISTER_FAIL:\n return registerFail(state, action);\n case actionTypes.AUTH_START:\n return authStart(state, action);\n case actionTypes.AUTH_SUCCESS:\n return authSuccess(state, action);\n case actionTypes.AUTH_FAIL:\n return authFail(state, action);\n case actionTypes.LOG_OUT:\n return logOut(state, action);\n case actionTypes.GET_AUTH_USER:\n return getUser(state, action);\n default:\n return state;\n }\n};\n\nexport default auth;","import {updateObject} from \"../utility\";\nimport * as actionTypes from \"../actions/actionTypes\";\n\n\nconst initialCompanyProfile = {\n headerSuffix: \"\",\n};\n\nconst initialState = {\n companyProfile: initialCompanyProfile,\n};\n\nconst updateHeaderSuffix = (state, text) => {\n return updateObject(state, {\n headerSuffix: text ? text : \"\",\n });\n};\n\nexport const navigation = (state = initialState, action) => {\n switch (action.type) {\n case actionTypes.NAVIGATION_UPDATE_HEADER_SUFFIX:\n return updateHeaderSuffix(state, action.text);\n default:\n return state;\n }\n};","import * as actionTypes from \"../actions/actionTypes\";\nimport { updateObject } from \"../utility\";\n\nconst initialState = {\n packagesList: [],\n packagesListLoading: false,\n eanTypes: [],\n categories: [],\n packageTypes: [],\n packageColors: [],\n packageVolumes: [],\n packageStatuses: [],\n packageTestResults: [],\n};\n\nconst resetUserSpecificData = (state, action) => {\n return updateObject(state, {\n packagesList: [],\n packageStatuses: [],\n });\n};\n\nconst resetLanguageDependentOptions = (state) => {\n return updateObject(state, {\n eanTypes: [],\n categories: [],\n packageTypes: [],\n packageColors: [],\n packageStatuses: [],\n });\n};\n\nconst packagesFetchStart = (state) => {\n return updateObject(state, {\n loading: true,\n packagesList: [],\n packagesListLoading: true,\n });\n};\n\nconst packagesFetchSuccess = (state, packages) => {\n return updateObject(state, {\n packagesList: packages,\n loading: false,\n packagesListLoading: false,\n });\n};\n\nconst packagesFetchFail = (state, err) => {\n return updateObject(state, {\n packagesList: [],\n error: err,\n loading: false,\n packagesListLoading: false,\n });\n};\n\nconst eanTypesFetchStart = (state) => {\n return updateObject(state, {\n loading: true,\n });\n};\n\nconst eanTypesFetchSuccess = (state, eanTypes) => {\n return updateObject(state, {\n eanTypes: eanTypes,\n });\n};\n\nconst eanTypesFetchFail = (state, err) => {\n return updateObject(state, {\n eanTypes: [],\n error: err,\n });\n};\n\nconst categoriesFetchStart = (state) => {\n return updateObject(state, {\n loading: true,\n });\n};\n\nconst categoriesFetchSuccess = (state, categories) => {\n return updateObject(state, {\n categories: categories,\n loading: false,\n });\n};\n\nconst categoriesFetchFail = (state, err) => {\n return updateObject(state, {\n categories: [],\n loading: false,\n error: err,\n });\n};\n\nconst packageTypesFetchStart = (state) => {\n return updateObject(state, {\n loading: true,\n });\n};\n\nconst packageTypesFetchSuccess = (state, packageTypes) => {\n return updateObject(state, {\n packageTypes: packageTypes,\n loading: false,\n });\n};\n\nconst packageTypesFetchFail = (state, err) => {\n return updateObject(state, {\n packageTypes: [],\n loading: false,\n error: err,\n });\n};\n\nconst packageColorsFetchStart = (state) => {\n return updateObject(state, {\n loading: true,\n });\n};\n\nconst packageColorsFetchSuccess = (state, packageColors) => {\n return updateObject(state, {\n packageColors: packageColors,\n loading: false,\n });\n};\n\nconst packageColorsFetchFail = (state, err) => {\n return updateObject(state, {\n packageColors: [],\n loading: false,\n error: err,\n });\n};\n\nconst packageVolumesFetchStart = (state) => {\n return updateObject(state, {\n loading: true,\n });\n};\n\nconst packageVolumesFetchSuccess = (state, packageVolumes) => {\n return updateObject(state, {\n packageVolumes: packageVolumes,\n loading: false,\n });\n};\n\nconst packageVolumesFetchFail = (state, err) => {\n return updateObject(state, {\n packageVolumes: [],\n loading: false,\n error: err,\n });\n};\n\nconst packageStatusesFetchStart = (state) => {\n return updateObject(state, {\n loading: true,\n });\n};\n\nconst packageStatusesFetchSuccess = (state, packageStatuses) => {\n return updateObject(state, {\n packageStatuses: packageStatuses,\n loading: false,\n });\n};\n\nconst packageStatusesFetchFail = (state, err) => {\n return updateObject(state, {\n packageStatuses: [],\n loading: false,\n error: err,\n });\n};\n\nconst packageTestResultsFetchStart = (state) => {\n return updateObject(state, {\n loading: true,\n });\n};\n\nconst packageTestResultsFetchSuccess = (state, packageTestResults) => {\n return updateObject(state, {\n packageTestResults: packageTestResults,\n loading: false,\n });\n};\n\nconst packageTestResultsFetchFail = (state, err) => {\n return updateObject(state, {\n loading: false,\n error: err,\n });\n};\n\nconst packagePostStart = (state) => {\n return updateObject(state, {\n loading: true,\n });\n};\n\nconst packagePostSuccess = (state) => {\n return updateObject(state, {\n error: null,\n loading: false,\n });\n};\n\nconst packagePostFail = (state, err) => {\n return updateObject(state, {\n loading: false,\n error: err,\n });\n};\n\nconst packages = (state = initialState, action) => {\n switch (action.type) {\n // PACKAGES\n case actionTypes.PACKAGES_FETCH_START:\n return packagesFetchStart(state, action);\n case actionTypes.PACKAGES_FETCH_SUCCESS:\n return packagesFetchSuccess(state, action.packagesList);\n case actionTypes.PACKAGES_FETCH_FAIL:\n return packagesFetchFail(state, action);\n\n // EAN TYPES\n case actionTypes.EAN_TYPES_FETCH_START:\n return eanTypesFetchStart(state, action);\n case actionTypes.EAN_TYPES_FETCH_SUCCESS:\n return eanTypesFetchSuccess(state, action.eanTypes);\n case actionTypes.EAN_TYPES_FETCH_FAIL:\n return eanTypesFetchFail(state, action);\n\n // CATEGORIES\n case actionTypes.PRODUCT_CATEGORIES_FETCH_START:\n return categoriesFetchStart(state, action);\n case actionTypes.PRODUCT_CATEGORIES_FETCH_SUCCESS:\n return categoriesFetchSuccess(state, action.categories);\n case actionTypes.PRODUCT_CATEGORIES_FETCH_FAIL:\n return categoriesFetchFail(state, action);\n\n // PACKAGE TYPES\n case actionTypes.PACKAGE_TYPES_FETCH_START:\n return packageTypesFetchStart(state, action);\n case actionTypes.PACKAGE_TYPES_FETCH_SUCCESS:\n return packageTypesFetchSuccess(state, action.packageTypes);\n case actionTypes.PACKAGE_TYPES_FETCH_FAIL:\n return packageTypesFetchFail(state, action);\n\n // COLORS\n case actionTypes.PACKAGE_COLORS_FETCH_START:\n return packageColorsFetchStart(state, action);\n case actionTypes.PACKAGE_COLORS_FETCH_SUCCESS:\n return packageColorsFetchSuccess(state, action.packageColors);\n case actionTypes.PACKAGE_COLORS_FETCH_FAIL:\n return packageColorsFetchFail(state, action);\n\n // VOLUMES\n case actionTypes.PACKAGE_VOLUMES_FETCH_START:\n return packageVolumesFetchStart(state, action);\n case actionTypes.PACKAGE_VOLUMES_FETCH_SUCCESS:\n return packageVolumesFetchSuccess(state, action.packageVolumes);\n case actionTypes.PACKAGE_VOLUMES_FETCH_FAIL:\n return packageVolumesFetchFail(state, action);\n\n // STATUSES\n case actionTypes.PACKAGE_STATUSES_FETCH_START:\n return packageStatusesFetchStart(state, action);\n case actionTypes.PACKAGE_STATUSES_FETCH_SUCCESS:\n return packageStatusesFetchSuccess(state, action.packageStatuses);\n case actionTypes.PACKAGE_STATUSES_FETCH_FAIL:\n return packageStatusesFetchFail(state, action);\n\n // TEST RESULTS\n case actionTypes.PACKAGE_TEST_RESULTS_FETCH_START:\n return packageTestResultsFetchStart(state, action);\n case actionTypes.PACKAGE_TEST_RESULTS_FETCH_SUCCESS:\n return packageTestResultsFetchSuccess(\n state,\n action.packageTestResults\n );\n case actionTypes.PACKAGE_TEST_RESULTS_FETCH_FAIL:\n return packageTestResultsFetchFail(state, action);\n\n // POST PACKAGE\n case actionTypes.PACKAGE_POST_START:\n return packagePostStart(state);\n case actionTypes.PACKAGE_POST_SUCCESS:\n return packagePostSuccess(state);\n case actionTypes.PACKAGE_POST_FAIL:\n return packagePostFail(state, action.error.message);\n\n case actionTypes.LANGUAGE_UPDATE:\n return resetLanguageDependentOptions(state);\n\n case actionTypes.GET_AUTH_USER:\n return resetUserSpecificData(state, action);\n\n default:\n return state;\n }\n};\n\nexport default packages;\n","import * as actionTypes from '../actions/actionTypes';\nimport {updateObject} from '../utility';\n\nconst initialState = {\n invoices: [],\n invoicesLoading: false,\n balance: null,\n // Invoice preview\n invoice: null,\n invoiceLoading: false,\n invoiceErrorMessage: null,\n};\n\nconst resetUserSpecificData = (state, action) => {\n return updateObject(state, {\n invoices: [],\n balance: null,\n invoice: null,\n });\n}\n\nconst invoicesFetchStart = (state) => {\n return updateObject(state, {\n loading: true,\n invoices: [],\n invoicesLoading: true,\n balance: null,\n })\n};\n\nconst invoicesFetchSuccess = (state, invoicesData) => {\n return updateObject(state, {\n loading: false,\n invoices: invoicesData.invoices, \n invoicesLoading: false,\n balance: invoicesData.invoices_balance,\n })\n};\n\nconst invoicesFetchFail = (state, err) => {\n return updateObject(state, {\n loading: false,\n invoicesLoading: false,\n error: err\n })\n};\n\nconst invoiceDataFetchStart = (state) => {\n return updateObject(state, {\n loading: true,\n invoice: null,\n invoiceLoading: true,\n invoiceErrorMessage: null,\n })\n};\n\nconst invoiceDataFetchSuccess = (state, invoice) => {\n return updateObject(state, {\n loading: false,\n invoice: invoice,\n invoiceLoading: false,\n })\n};\n\nconst invoiceDataFetchFail = (state, errorMessage) => {\n return updateObject(state, {\n loading: false,\n invoiceLoading: false,\n invoiceErrorMessage: errorMessage,\n })\n};\n\nconst invoices = (state = initialState, action) => {\n switch (action.type) {\n case actionTypes.INVOICES_FETCH_START:\n return invoicesFetchStart(state, action);\n case actionTypes.INVOICES_FETCH_SUCCESS:\n return invoicesFetchSuccess(state, action.data);\n case actionTypes.INVOICES_FETCH_FAIL:\n return invoicesFetchFail(state, action.error);\n\n case actionTypes.INVOICE_DATA_FETCH_START:\n return invoiceDataFetchStart(state);\n case actionTypes.INVOICE_DATA_FETCH_SUCCESS:\n return invoiceDataFetchSuccess(state, action.invoice);\n case actionTypes.INVOICE_DATA_FETCH_FAIL:\n return invoiceDataFetchFail(state, action.errorMesage);\n \n case actionTypes.GET_AUTH_USER:\n return resetUserSpecificData(state, action);\n default:\n return state;\n }\n};\n\nexport default invoices;","import * as actionTypes from 'redux/actions/actionTypes';\nimport {updateObject} from 'redux/utility';\nimport moment from \"moment\";\n\nconst initialFilters = {\n fromDate: null,\n toDate: null\n}\n\nconst initialState = {\n filters: initialFilters,\n salesList: [],\n salesListFromDate: null,\n salesListToDate: null,\n loading: false,\n salesListLoading: false,\n createRepairLoading: false,\n error: null,\n};\n\nconst resetUserSpecificData = (state, action) => {\n return initialState;\n}\n\nconst salesFetchStart = (state) => {\n return updateObject(state, {\n loading: true,\n salesListLoading: true,\n salesList: [],\n salesListFromDate: null,\n salesListToDate: null,\n });\n};\n\nconst salesFetchSuccess = (state, sales, fromDate, toDate) => {\n if (sales) {\n for (const salesReport of sales) {\n salesReport.compositeKey = salesReport.id + salesReport.period + salesReport.is_repair;\n salesReport.compositePeriodIsRepair = moment(salesReport.period).format(\"YYYY-MM\") + salesReport.is_repair;\n }\n }\n return updateObject(state, {\n salesList: sales,\n salesListFromDate: fromDate,\n salesListToDate: toDate,\n loading: false,\n salesListLoading: false,\n });\n};\n\nconst salesFetchFail = (state, action) => {\n return updateObject(state, {\n salesList: [],\n loading: false,\n salesListLoading: false,\n error: action.err,\n });\n};\n\nexport const updateSearchFilter = (state, key, value) => {\n return updateObject(state, {\n filters: {\n ...state.filters,\n [key]: value,\n }\n });\n};\n\nexport const clearFilters = (state) => {\n return updateObject(state, {\n filters: {\n ...initialFilters\n }\n });\n}\n\nconst salesCreateRepairStart = (state, action) => {\n return updateObject(state, {\n createRepairLoading: true,\n });\n}\nconst salesCreateRepairSuccess = (state) => {\n return updateObject(state, {\n createRepairLoading: false,\n });\n}\nconst salesCreateRepairFail = (state) => {\n return updateObject(state, {\n createRepairLoading: false,\n });\n}\n\nexport const sales = (state = initialState, action) => {\n switch (action.type) {\n\n // SALES\n case actionTypes.SALES_FETCH_START:\n return salesFetchStart(state, action);\n case actionTypes.SALES_FETCH_SUCCESS:\n return salesFetchSuccess(state, action.salesList, action.fromDate, action.toDate);\n case actionTypes.SALES_FETCH_FAIL:\n return salesFetchFail(state, action);\n // UPDATE FILTER\n case actionTypes.SALES_SEARCH_FILTER_UPDATE:\n return updateSearchFilter(state, action.key, action.value);\n case actionTypes.SALES_CLEAR_FILTERS:\n return clearFilters(state);\n // CREATE REPAIR REPORT\n case actionTypes.SALES_CREATE_REPAIR_START:\n return salesCreateRepairStart(state, action);\n case actionTypes.SALES_CREATE_REPAIR_SUCCESS:\n return salesCreateRepairSuccess(state, action.salesList);\n case actionTypes.SALES_CREATE_REPAIR_FAIL:\n return salesCreateRepairFail(state, action);\n\n case actionTypes.GET_AUTH_USER:\n return resetUserSpecificData(state, action);\n default:\n return state;\n }\n};","import * as actionTypes from 'redux/actions/actionTypes';\nimport {updateObject} from 'redux/utility';\n\nconst initialState = {\n packages: [],\n header: {},\n details: {},\n loading: false,\n salesReportLoading: false,\n submitLoading: false,\n exportLoading: false,\n error: null,\n deleteOriginalReportLoading: false,\n deleteOriginalReportError: null,\n deleteRepairReportLoading: false,\n deleteRepairReportError: null,\n quantityLoading: false,\n};\n\nconst resetUserSpecificData = (state, action) => {\n return initialState;\n}\n\nconst salesReportFetchStart = (state) => {\n return updateObject(state, {\n ...initialState,\n loading: true,\n salesReportLoading: true,\n })\n};\n\nconst salesReportFetchSuccess = (state, report) => {\n return updateObject(state, {\n header: report.header,\n packages: report.content,\n details: report.report_details,\n loading: false,\n salesReportLoading: false,\n })\n};\n\nconst salesReportFetchFail = (state, action) => {\n return updateObject(state, {\n details: {},\n header: {},\n packages: [],\n loading: false,\n salesReportLoading: false,\n error: action.err,\n })\n};\n\nconst salesLineUpdateStart = (state, action) => {\n return updateObject(state, {\n quantityLoading: true,\n packages: state.packages.map(pkg => pkg.id === action.updatedPackage.id ? action.updatedPackage : pkg),\n })\n};\n\nconst salesLineUpdateSuccess = (state, action) => {\n return updateObject(state, {\n packages: state.packages.map(pkg => pkg.id === action.updatedPackage.id ? action.updatedPackage : pkg),\n quantityLoading: false,\n })\n};\n\nconst salesLineUpdateFail = (state, action) => {\n return updateObject(state, {\n quantityLoading: false,\n packages: state.packages.map(pkg => pkg.id === action.updatedPackage.id ? action.updatedPackage : pkg),\n error: action.err,\n })\n};\n\nconst salesReportSubmitStart = (state) => {\n return updateObject(state, {\n loading: true,\n submitLoading: true,\n submitError: null,\n });\n};\n\nconst salesReportSubmitSuccess = (state) => {\n return updateObject(state, {\n loading: false,\n submitLoading: false,\n });\n};\n\nconst salesReportSubmitFail = (state, err) => {\n return updateObject(state, {\n loading: false,\n submitLoading: false,\n submitError: err,\n });\n};\n\nconst salesReportDeleteOriginalStart = (state, action) => {\n return updateObject(state, {\n loading: true,\n deleteOriginalReportLoading: true,\n deleteOriginalReportError: null,\n });\n};\n\nconst salesReportDeleteOriginalSuccess = (state, action) => {\n return updateObject(state, {\n loading: false,\n deleteOriginalReportLoading: false,\n });\n};\n\nconst salesReportDeleteOriginalFail = (state, action) => {\n return updateObject(state, {\n loading: false,\n deleteOriginalReportLoading: false,\n deleteOriginalReportError: action.error,\n });\n};\n\nconst salesReportDeleteRepairStart = (state, action) => {\n return updateObject(state, {\n loading: true,\n deleteRepairReportLoading: true,\n deleteRepairReportError: null,\n });\n};\n\nconst salesReportDeleteRepairSuccess = (state, action) => {\n return updateObject(state, {\n loading: false,\n deleteRepairReportLoading: false,\n });\n};\n\nconst salesReportDeleteRepairFail = (state, action) => {\n return updateObject(state, {\n loading: false,\n deleteRepairReportLoading: false,\n deleteRepairReportError: action.error\n });\n};\n\nconst salesReportExportStart = (state) => {\n return updateObject(state, {\n loading: true,\n exportLoading: true,\n exportError: null,\n });\n};\n\nconst salesReportExportSuccess = (state) => {\n return updateObject(state, {\n loading: false,\n exportLoading: false,\n });\n};\n\nconst salesReportExportFail = (state, err) => {\n return updateObject(state, {\n loading: false,\n exportLoading: false,\n exportError: err,\n });\n};\n\nconst salesReportPackagesFieldChange = (state, action) => {\n const packages = [...state.packages];\n let newPackage;\n for (const row of packages) {\n if (row.id === action.id) {\n newPackage = {\n ...row,\n [action.field]: action.value,\n }\n }\n }\n\n return updateObject(state, {\n packages: packages.map(row => row.id === newPackage.id ? newPackage : row)\n });\n}\n\nconst salesReportHeaderFieldChange = (state, action) => {\n const header = {...state.header};\n header[action.field] = action.value;\n return updateObject(state, {\n header: header,\n });\n};\n\nconst salesReportHeaderTotalsUpdate = (state, action) => {\n const header = {...state.header};\n header.deposit_total = action.deposit_total;\n header.process_fee_total = action.process_fee_total;\n header.process_fee_vat = action.process_fee_vat;\n header.to_be_paid = action.to_be_paid;\n return updateObject(state, {\n header: header,\n });\n};\n\nexport const salesReport = (state = initialState, action) => {\n switch (action.type) {\n case actionTypes.SALES_REPORT_FETCH_START:\n return salesReportFetchStart(state, action);\n case actionTypes.SALES_REPORT_FETCH_SUCCESS:\n return salesReportFetchSuccess(state, action.report);\n case actionTypes.SALES_REPORT_FETCH_FAIL:\n return salesReportFetchFail(state, action);\n case actionTypes.SALES_REPORT_HEADER_FIELD_CHANGE:\n\n return salesReportHeaderFieldChange(state, action);\n case actionTypes.SALES_REPORT_HEADER_TOTALS_UPDATE:\n return salesReportHeaderTotalsUpdate(state, action);\n case actionTypes.SALES_REPORT_PACKAGES_FIELD_CHANGE:\n return salesReportPackagesFieldChange(state, action);\n\n case actionTypes.SALES_LINE_UPDATE_START:\n return salesLineUpdateStart(state, action);\n case actionTypes.SALES_LINE_UPDATE_SUCCESS:\n return salesLineUpdateSuccess(state, action);\n case actionTypes.SALES_LINE_UPDATE_FAIL:\n return salesLineUpdateFail(state, action);\n \n case actionTypes.SALES_REPORT_SUBMIT_START:\n return salesReportSubmitStart(state, action);\n case actionTypes.SALES_REPORT_SUBMIT_SUCCESS:\n return salesReportSubmitSuccess(state, action);\n case actionTypes.SALES_REPORT_SUBMIT_FAIL:\n return salesReportSubmitFail(state, action);\n\n case actionTypes.SALES_REPORT_DELETE_ORIGINAL_START:\n return salesReportDeleteOriginalStart(state, action);\n case actionTypes.SALES_REPORT_DELETE_ORIGINAL_SUCCESS:\n return salesReportDeleteOriginalSuccess(state, action);\n case actionTypes.SALES_REPORT_DELETE_ORIGINAL_FAIL:\n return salesReportDeleteOriginalFail(state, action);\n\n case actionTypes.SALES_REPORT_DELETE_REPAIR_START:\n return salesReportDeleteRepairStart(state, action);\n case actionTypes.SALES_REPORT_DELETE_REPAIR_SUCCESS:\n return salesReportDeleteRepairSuccess(state, action);\n case actionTypes.SALES_REPORT_DELETE_REPAIR_FAIL:\n return salesReportDeleteRepairFail(state, action);\n\n case actionTypes.SALES_REPORT_EXPORT_START:\n return salesReportExportStart(state, action);\n case actionTypes.SALES_REPORT_EXPORT_SUCCESS:\n return salesReportExportSuccess(state, action);\n case actionTypes.SALES_REPORT_EXPORT_FAIL:\n return salesReportExportFail(state, action);\n \n case actionTypes.GET_AUTH_USER:\n return resetUserSpecificData(state, action);\n default:\n return state;\n }\n};","import * as actionTypes from 'redux/actions/actionTypes';\nimport {updateObject} from 'redux/utility';\nimport moment from \"moment\";\n\nconst initialFilters = {\n fromDate: moment().subtract(1, \"year\").startOf(\"month\").toDate(), // react-datepicker wants native date\n toDate: moment().startOf(\"month\").toDate(),\n packageType: null,\n packageCategory: null,\n showEANCode: true,\n showEANType: true,\n showPackageType: true,\n showName: true,\n showPackageCategory: true,\n showVolume: true,\n showDeposit: true,\n}\n\nconst initialState = {\n filters: initialFilters,\n summaryList: null,\n summaryListFromDate: null, // filter.fromDate of last successful summary list update\n summaryListToDate: null, // filter.toDate of last successful summary list update\n summaryListLoading: false,\n exportFile: null,\n exportLoading: false,\n loading: false,\n error: null,\n};\n\nconst resetUserSpecificData = (state, action) => {\n return initialState;\n}\n\nconst summaryReportSearchStart = (state) => {\n return updateObject(state, {\n loading: true,\n summaryListLoading: true,\n summaryListFromDate: null,\n summaryListToDate: null,\n error: false,\n summaryList: null,\n });\n};\n\nconst summaryReportSearchSuccess = (state, action) => {\n return updateObject(state, {\n loading: false,\n summaryListLoading: false,\n error: false,\n summaryList: action.summaryList,\n summaryListFromDate: action.fromDate,\n summaryListToDate: action.toDate,\n });\n};\n\nconst summaryReportSearchFail = (state, action) => {\n return updateObject(state, {\n error: action.err,\n loading: false,\n summaryListLoading: false,\n });\n};\n\nconst summaryReportSearchFilterUpdate = (state, action) => {\n return updateObject(state, {\n filters: {\n ...state.filters,\n [action.key]: action.value,\n }\n });\n};\n\nconst summaryReportExportStart = (state) => {\n return updateObject(state, {\n loading: true,\n exportLoading: true,\n error: false,\n });\n};\n\nconst summaryReportExportSuccess = (state, action) => {\n return updateObject(state, {\n loading: false,\n exportLoading: false,\n error: false,\n exportFile: action.exportFile,\n });\n};\n\nconst summaryReportExportFail = (state, action) => {\n return updateObject(state, {\n loading: false,\n exportLoading: false,\n error: action.err,\n });\n};\n\nexport const summaryReport = (state = initialState, action) => {\n switch (action.type) {\n // SEARCH\n case actionTypes.SUMMARY_REPORT_SEARCH_START:\n return summaryReportSearchStart(state, action);\n case actionTypes.SUMMARY_REPORT_SEARCH_SUCCESS:\n return summaryReportSearchSuccess(state, action);\n case actionTypes.SUMMARY_REPORT_SEARCH_FAIL:\n return summaryReportSearchFail(state, action);\n // UPDATE FILTER\n case actionTypes.SUMMARY_REPORT_SEARCH_FILTER_UPDATE:\n return summaryReportSearchFilterUpdate(state, action);\n // EXPORT\n case actionTypes.SUMMARY_REPORT_EXPORT_START:\n return summaryReportExportStart(state, action);\n case actionTypes.SUMMARY_REPORT_EXPORT_SUCCESS:\n return summaryReportExportSuccess(state, action);\n case actionTypes.SUMMARY_REPORT_EXPORT_FAIL:\n return summaryReportExportFail(state, action);\n\n case actionTypes.GET_AUTH_USER:\n return resetUserSpecificData(state, action);\n default:\n return state;\n }\n};","import * as actionTypes from 'redux/actions/actionTypes';\nimport {updateObject} from 'redux/utility';\n\n// TODO remove reportFormat functionality as it is not used anymore.\n\nconst initialFilters = {\n fromDate: null,\n toDate: null,\n}\n\nconst HTML_VALUE = \"HTML\";\nconst EXCEL_VALUE = \"EXCEL\";\nconst formatOptions = [\n {value: HTML_VALUE, label: \"HTML\"}, \n {value: EXCEL_VALUE, label: \"EXCEL\"},\n];\n\n\nconst initialFormat = formatOptions[0];\nconst initialState = {\n filters: initialFilters,\n massList: null,\n massListFromDate: null,\n massListToDate: null,\n massListLoading: false,\n exportFile: null,\n loading: false,\n exportLoading: false,\n error: null,\n formatOptions,\n format: initialFormat,\n htmlValue: HTML_VALUE,\n excelValue: EXCEL_VALUE,\n};\n\nconst resetUserSpecificData = (state, action) => {\n return initialState;\n}\n\nconst massReportUpdateOutputFormat = (state, format) => {\n return updateObject(state, {\n format,\n });\n};\n\n\nconst massReportSearchStart = (state) => {\n return updateObject(state, {\n loading: true,\n massListLoading: true,\n error: false,\n massList: null,\n massListFromDate: null,\n massListToDate: null,\n });\n};\n\nconst massReportSearchSuccess = (state, action) => {\n return updateObject(state, {\n loading: false,\n massListLoading: false,\n error: false,\n massList: action.massList,\n massListFromDate: action.fromDate,\n massListToDate: action.toDate,\n });\n};\n\nconst massReportSearchFail = (state, action) => {\n return updateObject(state, {\n error: action.err,\n loading: false,\n massListLoading: false,\n });\n};\n\nconst massReportSearchFilterUpdate = (state, action) => {\n return updateObject(state, {\n filters: {\n ...state.filters,\n [action.key]: action.value,\n }\n });\n};\n\nconst massReportExportStart = (state) => {\n return updateObject(state, {\n loading: true,\n exportLoading: true,\n error: false,\n });\n};\n\nconst massReportExportSuccess = (state, action) => {\n return updateObject(state, {\n loading: false,\n exportLoading: false,\n error: false,\n exportFile: action.exportFile,\n });\n};\n\nconst massReportExportFail = (state, action) => {\n return updateObject(state, {\n loading: false,\n exportLoading: false,\n error: action.err,\n });\n};\n\nexport const massReport = (state = initialState, action) => {\n switch (action.type) {\n case actionTypes.MASS_REPORT_UPDATE_FORMAT:\n return massReportUpdateOutputFormat(state, action.format);\n // SEARCH\n case actionTypes.MASS_REPORT_SEARCH_START:\n return massReportSearchStart(state, action);\n case actionTypes.MASS_REPORT_SEARCH_SUCCESS:\n return massReportSearchSuccess(state, action);\n case actionTypes.MASS_REPORT_SEARCH_FAIL:\n return massReportSearchFail(state, action);\n // UPDATE FILTER\n case actionTypes.MASS_REPORT_SEARCH_FILTER_UPDATE:\n return massReportSearchFilterUpdate(state, action);\n // EXPORT\n case actionTypes.MASS_REPORT_EXPORT_START:\n return massReportExportStart(state, action);\n case actionTypes.MASS_REPORT_EXPORT_SUCCESS:\n return massReportExportSuccess(state, action);\n case actionTypes.MASS_REPORT_EXPORT_FAIL:\n return massReportExportFail(state, action);\n \n case actionTypes.GET_AUTH_USER:\n return resetUserSpecificData(state, action);\n default:\n return state;\n }\n};","import {updateObject} from \"../utility\";\nimport * as actionTypes from \"../actions/actionTypes\";\n\n\nconst initialCompanyProfile = {\n name: \"\",\n reg_number: \"\",\n email: \"\",\n iban: \"\",\n kmkr: \"\",\n full_address: \"\",\n basis: \"\"\n};\n\nconst initialPersonalProfile = {\n first_name: \"\",\n last_name: \"\",\n phone: \"\",\n email: \"\",\n profession: \"\",\n};\n\nconst initialUserSettings = {};\n\nconst initialState = {\n companyProfile: initialCompanyProfile,\n companyProfileLoading: false,\n personalProfile: initialPersonalProfile,\n personalProfileLoading: false,\n contracts: [],\n contractsLoading: false,\n users: [],\n usersLoading: false,\n representationOptions: [],\n userSettings: initialUserSettings,\n userSettingsLoading: false,\n loading: false,\n userSettingsError: null,\n};\n\nconst resetUserSpecificData = (state, action) => {\n return updateObject(state, { \n companyProfile: initialCompanyProfile,\n personalProfile: initialPersonalProfile,\n contracts: [],\n users: [],\n userSettings: initialUserSettings,\n });\n}\n\nconst companyProfileUpdate = (state, action) => {\n return updateObject(state, {\n companyProfile: {\n ...state.companyProfile,\n [action.key]: action.value\n }\n });\n};\n\nconst companyProfileFetchStart = (state, action) => {\n return updateObject(state, {\n loading: true,\n companyProfileLoading: true,\n companyProfile: initialCompanyProfile,\n })\n};\n\nconst companyProfileFetchSuccess = (state, profile) => {\n return updateObject(state, {\n companyProfile: profile,\n loading: false,\n companyProfileLoading: false,\n })\n};\n\nconst companyProfileFetchFail = (state, action) => {\n return updateObject(state, {\n errorMessage: action.error,\n loading: false,\n companyProfileLoading: false,\n })\n};\n\nconst personalProfileUpdate = (state, action) => {\n return updateObject(state, {\n personalProfile: {\n ...state.personalProfile,\n [action.key]: action.value\n }\n });\n};\n\nconst personalProfileFetchStart = (state, action) => {\n return updateObject(state, {\n loading: true,\n personalProfileLoading: true,\n personalProfile: initialPersonalProfile,\n })\n};\n\nconst personalProfileFetchSuccess = (state, profile) => {\n return updateObject(state, {\n personalProfile: profile,\n loading: false,\n personalProfileLoading: false,\n })\n};\n\nconst personalProfileFetchFail = (state, action) => {\n return updateObject(state, {\n errorMessage: action.error,\n loading: false,\n personalProfileLoading: false,\n })\n};\n\nconst representationOptionsFetchStart = (state, action) => {\n return updateObject(state, {\n loading: true\n })\n};\n\nconst representationOptionsFetchSuccess = (state, options) => {\n return updateObject(state, {\n representationOptions: options,\n loading: false\n })\n};\n\nconst representationOptionsFetchFail = (state, action) => {\n return updateObject(state, {\n errorMessage: action.error,\n loading: false\n })\n};\n\nconst contractsFetchStart = (state, action) => {\n return updateObject(state, {\n loading: true,\n contracts: [],\n contractsLoading: true,\n })\n};\n\nconst contractsFetchSuccess = (state, contracts) => {\n return updateObject(state, {\n contracts: contracts,\n loading: false,\n contractsLoading: false,\n })\n};\n\nconst contractsFetchFail = (state, action) => {\n return updateObject(state, {\n errorMessage: action.error,\n loading: false,\n contractsLoading: false,\n })\n};\n\nconst fetchUsersStart = (state) => {\n return updateObject(state, {\n loading: true,\n users: [],\n usersLoading: true,\n })\n};\n\nconst fetchUsersSuccess = (state, action) => {\n return updateObject(state, {\n users: action.users,\n loading: false,\n error: null,\n usersLoading: false,\n })\n};\n\nconst fetchUsersFail = (state, action) => {\n return updateObject(state, {\n error: action.error,\n loading: false,\n usersLoading: false,\n })\n};\n\nconst updateUserStart = (state) => {\n return updateObject(state, {\n loading: true,\n })\n};\n\nconst updateUserSuccess = (state, updatedUser) => {\n return updateObject(state, {\n users: state.users.map(user => user.id === updatedUser.id ? updatedUser : user)\n });\n};\n\nconst updateUserFail = (state, action) => {\n return updateObject(state, {\n error: action.error,\n loading: false\n })\n};\n\nconst userSettingsFetchStart = (state, action) => {\n return updateObject(state, {\n loading: true,\n userSettingsError: null,\n userSettings: initialUserSettings,\n userSettingsLoading: true,\n });\n}\n\nconst userSettingsFetchSuccess = (state, action) => {\n return updateObject(state, {\n loading: false,\n userSettings: action.userSettings,\n userSettingsLoading: false,\n });\n}\n\nconst userSettingsFetchFail = (state, action) => {\n return updateObject(state, {\n loading: false,\n userSettingsError: action.error,\n userSettingsLoading: false,\n });\n}\n\nconst userSettingsPutStart = (state, action) => {\n return updateObject(state, {\n loading: true,\n userSettingsError: null,\n //userSettings: initialUserSettings,\n });\n}\n\nconst userSettingsPutSuccess = (state, action) => {\n return updateObject(state, {\n loading: false,\n userSettings: action.userSettings,\n });\n}\n\nconst userSettingsPutFail = (state, action) => {\n return updateObject(state, {\n loading: false,\n userSettingsError: action.error,\n });\n}\n\nexport const profile = (state = initialState, action) => {\n switch (action.type) {\n // COMPANY PROFILE\n case actionTypes.COMPANY_PROFILE_FETCH_START:\n return companyProfileFetchStart(state, action);\n case actionTypes.COMPANY_PROFILE_FETCH_SUCCESS:\n return companyProfileFetchSuccess(state, action.profile);\n case actionTypes.COMPANY_PROFILE_FETCH_FAIL:\n return companyProfileFetchFail(state, action);\n case actionTypes.COMPANY_PROFILE_UPDATE:\n return companyProfileUpdate(state, action);\n // PERSONAL PROFILE\n case actionTypes.PERSONAL_PROFILE_FETCH_START:\n return personalProfileFetchStart(state, action);\n case actionTypes.PERSONAL_PROFILE_FETCH_SUCCESS:\n return personalProfileFetchSuccess(state, action.profile);\n case actionTypes.PERSONAL_PROFILE_FETCH_FAIL:\n return personalProfileFetchFail(state, action);\n case actionTypes.PERSONAL_PROFILE_UPDATE:\n return personalProfileUpdate(state, action);\n // CONTRACTS\n case actionTypes.CONTRACTS_FETCH_START:\n return contractsFetchStart(state, action);\n case actionTypes.CONTRACTS_FETCH_SUCCESS:\n return contractsFetchSuccess(state, action.contracts);\n case actionTypes.CONTRACTS_FETCH_FAIL:\n return contractsFetchFail(state, action);\n case actionTypes.FETCH_USERS_START:\n return fetchUsersStart(state, action);\n case actionTypes.FETCH_USERS_SUCCESS:\n return fetchUsersSuccess(state, action);\n case actionTypes.FETCH_USERS_FAIL:\n return fetchUsersFail(state, action);\n case actionTypes.UPDATE_USER_START:\n return updateUserStart(state, action);\n case actionTypes.UPDATE_USER_SUCCESS:\n return updateUserSuccess(state, action.user);\n case actionTypes.UPDATE_USER_FAIL:\n return updateUserFail(state, action);\n case actionTypes.REPRESENTATION_OPTIONS_FETCH_START:\n return representationOptionsFetchStart(state, action);\n case actionTypes.REPRESENTATION_OPTIONS_FETCH_SUCCESS:\n return representationOptionsFetchSuccess(state, action.representationOptions);\n case actionTypes.REPRESENTATION_OPTIONS_FETCH_FAIL:\n return representationOptionsFetchFail(state, action);\n // USER SETTINGS\n case actionTypes.USER_SETTINGS_FETCH_START:\n return userSettingsFetchStart(state, action);\n case actionTypes.USER_SETTINGS_FETCH_SUCCESS:\n return userSettingsFetchSuccess(state, action);\n case actionTypes.USER_SETTINGS_FETCH_FAIL:\n return userSettingsFetchFail(state, action);\n case actionTypes.USER_SETTINGS_PUT_START:\n return userSettingsPutStart(state, action);\n case actionTypes.USER_SETTINGS_PUT_SUCCESS:\n return userSettingsPutSuccess(state, action);\n case actionTypes.USER_SETTINGS_PUT_FAIL:\n return userSettingsPutFail(state, action);\n\n case actionTypes.GET_AUTH_USER:\n return resetUserSpecificData(state, action);\n default:\n return state;\n }\n};","import { updateObject } from \"../utility\";\nimport * as actionTypes from \"../actions/actionTypes\";\n\nconst lastPackagesInitialState = {\n not_registered_packages: 0,\n all_packages_count: 0,\n packages: [],\n};\n\nconst lastReportsInitialState = {\n not_submitted_reports_count: 0,\n all_reports_count: 0,\n latest_reports: [],\n};\n\nconst statisticsInitialState = {\n months: [],\n packages_total: \"-\",\n best_month: {\n month: \"-\",\n },\n overdue_invoices: null,\n invoice_balance: null,\n};\n\nconst initialState = {\n lastPackages: lastPackagesInitialState,\n lastReports: lastReportsInitialState,\n statistics: statisticsInitialState,\n lastPackagesLoading: false,\n lastReportsLoading: false,\n statisticsLoading: false,\n};\n\nconst resetUserSpecificData = (state, action) => {\n return initialState;\n};\n\nconst lastPackagesFetchStart = (state) => {\n return updateObject(state, {\n loading: true,\n lastPackagesLoading: true,\n });\n};\n\nconst lastPackagesFetchSuccess = (state, packages) => {\n return updateObject(state, {\n lastPackages: packages,\n loading: false,\n lastPackagesLoading: false,\n });\n};\n\nconst lastPackagesFetchFail = (state, action) => {\n return updateObject(state, {\n errorMessage: action.error,\n loading: false,\n lastPackagesLoading: false,\n });\n};\n\nconst lastReportsFetchStart = (state) => {\n return updateObject(state, {\n loading: true,\n lastReportsLoading: true,\n });\n};\n\nconst lastReportsFetchSuccess = (state, reports) => {\n return updateObject(state, {\n lastReports: reports,\n loading: false,\n lastReportsLoading: false,\n });\n};\n\nconst lastReportsFetchFail = (state, action) => {\n return updateObject(state, {\n errorMessage: action.error,\n loading: false,\n lastReportsLoading: false,\n });\n};\n\nconst statisticsFetchStart = (state) => {\n return updateObject(state, {\n loading: true,\n statisticsLoading: true,\n });\n};\n\nconst statisticsFetchSuccess = (state, statistics) => {\n return updateObject(state, {\n statistics: statistics,\n loading: false,\n statisticsLoading: false,\n });\n};\n\nconst statisticsFetchFail = (state, action) => {\n return updateObject(state, {\n errorMessage: action.error,\n loading: false,\n statisticsLoading: false,\n });\n};\n\nexport const dashboard = (state = initialState, action) => {\n switch (action.type) {\n case actionTypes.LAST_PACKAGES_FETCH_START:\n return lastPackagesFetchStart(state);\n case actionTypes.LAST_PACKAGES_FETCH_SUCCESS:\n return lastPackagesFetchSuccess(state, action.packages);\n case actionTypes.LAST_PACKAGES_FETCH_FAIL:\n return lastPackagesFetchFail(state, action);\n case actionTypes.LAST_REPORTS_FETCH_START:\n return lastReportsFetchStart(state);\n case actionTypes.LAST_REPORTS_FETCH_SUCCESS:\n return lastReportsFetchSuccess(state, action.reports);\n case actionTypes.LAST_REPORTS_FETCH_FAIL:\n return lastReportsFetchFail(state, action);\n case actionTypes.STATISTICS_FETCH_START:\n return statisticsFetchStart(state);\n case actionTypes.STATISTICS_FETCH_SUCCESS:\n return statisticsFetchSuccess(state, action.statistics);\n case actionTypes.STATISTICS_FETCH_FAIL:\n return statisticsFetchFail(state, action);\n\n case actionTypes.GET_AUTH_USER:\n return resetUserSpecificData(state, action);\n default:\n return state;\n }\n};\n","import { updateObject } from \"../utility\";\nimport * as actionTypes from \"../actions/actionTypes\";\n\nconst initialState = {\n notifications: [],\n loading: false,\n error: null,\n};\n\nconst fetchNotificationsStart = (state) => {\n return updateObject(state, {\n loading: true,\n notifications: [],\n });\n};\n\nconst fetchNotificationsSuccess = (state, notifications) => {\n return updateObject(state, {\n loading: false,\n notifications: notifications,\n });\n};\n\nconst fetchNotificationsFail = (state, err) => {\n return updateObject(state, {\n loading: false,\n error: err,\n });\n};\n\nexport const notifications = (state = initialState, action) => {\n switch (action.type) {\n case actionTypes.NOTIFICATIONS_FETCH_START:\n return fetchNotificationsStart(state);\n case actionTypes.NOTIFICATIONS_FETCH_SUCCESS:\n return fetchNotificationsSuccess(state, action.data);\n case actionTypes.NOTIFICATIONS_FETCH_FAIL:\n return fetchNotificationsFail(state, action.data);\n default:\n return state;\n }\n};\n","import * as actionTypes from 'redux/actions/actionTypes';\nimport {updateObject} from 'redux/utility';\n\nconst initialState = {\n open: false,\n details: {},\n file: null,\n loading: false, \n errors: [],\n};\n\nconst salesReportImportOpen = (state, action) => {\n return {\n ...initialState,\n open: true,\n details: action.details,\n };\n};\n\nconst salesReportImportFileChange = (state, action) => {\n return updateObject(state, {\n file: action.file,\n });\n}\n\nconst salesReportImportStart = (state) => {\n return updateObject(state, {\n loading: true,\n errors: [],\n });\n};\n\nconst salesReportImportSuccess = (state) => {\n return updateObject(state, {\n loading: false,\n });\n};\n\nconst salesReportImportFail = (state, action) => {\n return updateObject(state, {\n loading: false,\n errors: action.errors,\n });\n};\n\nconst salesReportImportClose = (state) => {\n return {...initialState};\n};\n\nexport const importSalesReport = (state = {...initialState}, action) => {\n switch (action.type) {\n case actionTypes.SALES_REPORT_IMPORT_OPEN:\n return salesReportImportOpen(state, action);\n case actionTypes.SALES_REPORT_IMPORT_FILE_CHANGE:\n return salesReportImportFileChange(state, action);\n case actionTypes.SALES_REPORT_IMPORT_START:\n return salesReportImportStart(state, action);\n case actionTypes.SALES_REPORT_IMPORT_SUCCESS:\n return salesReportImportSuccess(state, action);\n case actionTypes.SALES_REPORT_IMPORT_FAIL:\n return salesReportImportFail(state, action);\n case actionTypes.SALES_REPORT_IMPORT_CLOSE:\n return salesReportImportClose(state, action);\n \n default:\n return state;\n }\n};","import * as actionTypes from './actionTypes';\nimport {alertContext} from \"util/Alerts\";\n\nexport const alertsAddGlobal = (alertType, content, group=alertContext.GLOBAL) => {\n return {\n type: actionTypes.ALERTS_ADD_GLOBAL,\n context: alertContext.GLOBAL,\n group: group,\n alertType: alertType,\n content: content,\n }\n};\n\nexport const alertsAddLocal = (alertType, content, group=alertContext.LOCAL) => {\n return {\n type: actionTypes.ALERTS_ADD_LOCAL,\n context: alertContext.LOCAL,\n group: group,\n alertType: alertType,\n content: content,\n }\n};\n\n\nexport const alertsClearAll = () => {\n return {\n type: actionTypes.ALERTS_CLEAR_ALL\n }\n};\n\nexport const alertsClearGlobal = () => {\n return {\n type: actionTypes.ALERTS_CLEAR_GLOBAL\n }\n};\n\nexport const alertsClearLocal = () => {\n return {\n type: actionTypes.ALERTS_CLEAR_LOCAL\n }\n};\n\nexport const alertsClearIncludedGroups = (...groups) => {\n return {\n type: actionTypes.ALERTS_CLEAR_INCLUDED_GROUPS,\n groups,\n }\n};\n\nexport const alertsClearUnincludedGroups = (...groups) => {\n return {\n type: actionTypes.ALERTS_CLEAR_UNINCLUDED_GROUPS,\n groups,\n }\n};\n\nexport const alertsUpdateActiveGroups = (...groups) => {\n return {\n type: actionTypes.ALERTS_UPDATE_ACTIVE_GROUPS,\n groups,\n }\n}","import _ from \"lodash\";\nimport store from \"redux/store\";\n\nimport {\n alertsClearLocal, \n alertsAddLocal, \n alertsClearIncludedGroups,\n alertsUpdateActiveGroups,\n alertsAddGlobal,\n alertsClearAll,\n} from \"redux/actions/alerts\";\nimport {alertsClearGlobal} from \"../redux/actions/alerts\";\n\n\nconst alertClassNamePrefix = \"custom-alert\";\n\nexport const alertContext = {\n GLOBAL: \"GLOBAL\",\n LOCAL: \"LOCAL\",\n};\n\nexport const alertType = {\n DEFAULT: createAlertClassName(\"default\"),\n DEFAULT_ICON: createAlertClassName(\"default-icon\"),\n SUCCESS: createAlertClassName(\"success\"),\n SUCCESS_ICON: createAlertClassName(\"success-icon\"),\n INFO: createAlertClassName(\"info\"),\n INFO_ICON: createAlertClassName(\"info-icon\"),\n WARNING: createAlertClassName(\"warning\"),\n WARNING_ICON: createAlertClassName(\"warning-icon\"),\n ERROR: createAlertClassName(\"error\"),\n ERROR_ICON: createAlertClassName(\"error-icon\"),\n};\n\n\nexport const createAlertObject = (context, type, group, content) => {\n return {\n id: _.uniqueId(\"alert-\"),\n context,\n type,\n group,\n className: type,\n content,\n };\n};\n\nexport function createAlertClassName(className) {\n if (!className || className === \"\") {\n return alertClassNamePrefix;\n }\n return `${alertClassNamePrefix}-${className}`;\n}\n\nexport function isGlobal(alert) {\n return alert.context === alertContext.GLOBAL;\n}\n\nexport function addNewGlobalAlert(type, message) {\n store.dispatch(alertsAddGlobal(type, message));\n}\n\nexport function addNewLocalAlert(type, message, group) {\n store.dispatch(alertsAddLocal(type, message, group));\n}\n\nexport function addNewGlobalSuccessAlert(message, showIcon=false) {\n addNewGlobalAlert(showIcon ? alertType.SUCCESS_ICON : alertType.SUCCESS, message);\n}\n\nexport function addNewGlobalInfoAlert(message, showIcon=false) {\n addNewGlobalAlert(showIcon ? alertType.INFO_ICON : alertType.INFO, message);\n}\n\nexport function addNewGlobalWarningAlert(message, showIcon=false) {\n addNewGlobalAlert(showIcon ? alertType.WARNING_ICON : alertType.WARNING, message);\n}\n\nexport function addNewGlobalErrorAlert(message, showIcon=false) {\n addNewGlobalAlert(showIcon ? alertType.ERROR_ICON : alertType.ERROR, message);\n}\n\nexport function addNewLocalSuccessAlert(message, group, showIcon=false) {\n addNewLocalAlert(showIcon ? alertType.SUCCESS_ICON : alertType.SUCCESS, message, group);\n}\n\nexport function addNewLocalInfoAlert(message, group, showIcon=false) {\n addNewLocalAlert(showIcon ? alertType.INFO_ICON : alertType.INFO, message, group);\n}\n\nexport function addNewLocalWarningAlert(message, group, showIcon=false) {\n addNewLocalAlert(showIcon ? alertType.WARNING_ICON : alertType.WARNING, message, group);\n}\n\nexport function addNewLocalErrorAlert(message, group, showIcon=false) {\n addNewLocalAlert(showIcon ? alertType.ERROR_ICON : alertType.ERROR, message, group);\n}\n\nexport function clearLocalAlerts() {\n store.dispatch(alertsClearLocal());\n}\n\nexport function clearGlobalAlerts() {\n store.dispatch(alertsClearGlobal());\n}\n\nexport function clearAllAlerts() {\n store.dispatch(alertsClearAll());\n}\n\nexport function clearIncludedGroups(...groups) {\n store.dispatch(alertsClearIncludedGroups(...groups));\n}\n\nexport function updateActiveAlertGroups(...groups) {\n store.dispatch(alertsUpdateActiveGroups(...groups));\n}","import * as actionTypes from '../actions/actionTypes';\nimport {updateObject} from '../utility';\nimport {alertContext, createAlertObject} from \"util/Alerts\";\n// import {alertType} from \"util/Alerts\";\nconst initialState = {\n alertsList: [\n /*\n createAlertObject(alertContext.GLOBAL, alertType.DEFAULT, \"TEST_GROUP\", \"GLOBAL - Test DEFAULT\"),\n createAlertObject(alertContext.GLOBAL, alertType.DEFAULT_ICON, \"TEST_GROUP_ICON\", \"GLOBAL - Test DEFAULT\"),\n createAlertObject(alertContext.LOCAL, alertType.SUCCESS, \"/reports/sales\", \"LOCAL - Test SUCCESS, group /reports/sales\"),\n createAlertObject(alertContext.LOCAL, alertType.SUCCESS_ICON, \"TEST_GROUP_ICON\", \"LOCAL - Test SUCCESS\"),\n createAlertObject(alertContext.LOCAL, alertType.INFO, \"TEST_GROUP\", \"LOCAL - Test INFO\"),\n createAlertObject(alertContext.LOCAL, alertType.INFO_ICON, \"TEST_GROUP_ICON\", \"LOCAL - Test INFO\"),\n createAlertObject(alertContext.LOCAL, alertType.WARNING, \"TEST_GROUP\", \"LOCAL - Test WARNING\"),\n createAlertObject(alertContext.LOCAL, alertType.WARNING_ICON, \"TEST_GROUP_ICON\", \"LOCAL - Test WARNING\"),\n createAlertObject(alertContext.LOCAL, alertType.ERROR, \"TEST_GROUP\", \"LOCAL - Test ERROR\"),\n createAlertObject(alertContext.LOCAL, alertType.ERROR_ICON, \"TEST_GROUP_ICON\", \"LOCAL - Test ERROR\"),\n */\n ],\n activeGroups: [alertContext.GLOBAL],\n};\n\nconst alertsUpdateActiveGroups = (state, groups) => {\n return updateObject(state, {\n activeGroups: [alertContext.GLOBAL, ...groups],\n })\n};\n\nconst alertsAddNew = (state, action) => {\n const newAlert = createAlertObject(action.context, action.alertType, action.group, action.content);\n return updateObject(state, {\n alertsList: [...state.alertsList, newAlert]\n })\n};\n/*\nconst alertsAddLocal = (state, action) => {\n const newAlert = createAlertObject(action.alertContext, action.alertType, action.content);\n return updateObject(state, {\n local: [...state.global, newAlert]\n })\n};\n*/\nconst alertsClearAll = (state, action) => {\n return updateObject(state, {\n alertsList: [],\n })\n};\n\nconst alertsClearLocal = (state) => {\n const filteredList = state.alertsList\n .filter(alert => alert.context === alertContext.GLOBAL);\n return updateObject(state, {\n alertsList: filteredList,\n })\n};\n\nconst alertsClearIncludedGroups = (state, groups) => {\n const filteredList = state.alertsList\n .filter(alert => alert.context === alertContext.GLOBAL || !groups.includes(alert.group));\n return updateObject(state, {\n alertsList: filteredList,\n })\n};\n\nconst alertsClearUnincludedGroups = (state, groups) => {\n const filteredList = state.alertsList\n .filter(alert => alert.context === alertContext.GLOBAL || groups.includes(alert.group));\n return updateObject(state, {\n alertsList: filteredList,\n })\n};\n\n\nconst alerts = (state = initialState, action) => {\n switch (action.type) {\n case actionTypes.ALERTS_ADD_GLOBAL:\n case actionTypes.ALERTS_ADD_LOCAL:\n return alertsAddNew(state, action);\n case actionTypes.ALERTS_CLEAR_ALL:\n return alertsClearAll(state);\n case actionTypes.ALERTS_CLEAR_LOCAL:\n return alertsClearLocal(state);\n case actionTypes.ALERTS_CLEAR_INCLUDED_GROUPS:\n return alertsClearIncludedGroups(state, action.groups);\n case actionTypes.ALERTS_CLEAR_UNINCLUDED_GROUPS:\n return alertsClearUnincludedGroups(state, action.groups);\n case actionTypes.ALERTS_UPDATE_ACTIVE_GROUPS:\n return alertsUpdateActiveGroups(state, action.groups);\n\n default:\n return state;\n }\n};\n\nexport default alerts;","import * as actionTypes from 'redux/actions/actionTypes';\nimport {updateObject} from 'redux/utility';\n\n\nconst initialState = {\n allClients: [],\n allClientsLoading: false,\n \n standardComments: [],\n standardCommentsLoading: false,\n\n locations: [],\n locationsLoading: false,\n};\n\nconst allClientsFetchStart = (state) => {\n return updateObject(state, {\n allClients: [],\n allClientsLoading: false,\n });\n};\n\nconst allClientsFetchSuccess = (state, action) => {\n return updateObject(state, {\n allClients: action.clients,\n allClientsLoading: false,\n });\n};\n\nconst allClientsFetchFail = (state, action) => {\n return updateObject(state, {\n allClientsLoading: false,\n });\n};\n\nconst onStandardCommentsFetchStart = (state) => {\n return updateObject(state, {\n standardComments: [],\n standardCommentsLoading: false,\n });\n};\n\nconst onStandardCommentsFetchSuccess = (state, action) => {\n return updateObject(state, {\n standardComments: action.standardComments,\n standardCommentsLoading: false,\n });\n};\n\nconst onStandardCommentsFetchFail = (state, action) => {\n return updateObject(state, {\n standardCommentsLoading: false,\n });\n};\n\nconst onLocationsFetchStart = (state) => {\n return updateObject(state, {\n locations: [],\n locationsLoading: false,\n });\n};\n\nconst onLocationsFetchSuccess = (state, action) => {\n return updateObject(state, {\n locations: action.locations,\n locationsLoading: false,\n });\n};\n\nconst onLocationsFetchFail = (state, action) => {\n return updateObject(state, {\n locationsLoading: false,\n });\n};\n\nexport const general = (state = initialState, action) => {\n switch (action.type) {\n // ALL CLIENTS OPTIONS\n case actionTypes.ALL_CLIENTS_FETCH_START:\n return allClientsFetchStart(state, action);\n case actionTypes.ALL_CLIENTS_FETCH_SUCCESS:\n return allClientsFetchSuccess(state, action);\n case actionTypes.ALL_CLIENTS_FETCH_FAIL:\n return allClientsFetchFail(state, action);\n\n // STANDARD COMMENTS OPTIONS\n case actionTypes.STANDARD_COMMENTS_FETCH_START:\n return onStandardCommentsFetchStart(state, action);\n case actionTypes.STANDARD_COMMENTS_FETCH_SUCCESS:\n return onStandardCommentsFetchSuccess(state, action);\n case actionTypes.STANDARD_COMMENTS_FETCH_FAIL:\n return onStandardCommentsFetchFail(state, action);\n\n // LOCATION OPTIONS\n case actionTypes.LOCATIONS_FETCH_START:\n return onLocationsFetchStart(state, action);\n case actionTypes.LOCATIONS_FETCH_SUCCESS:\n return onLocationsFetchSuccess(state, action);\n case actionTypes.LOCATIONS_FETCH_FAIL:\n return onLocationsFetchFail(state, action);\n \n default:\n return state;\n }\n};","import * as actionTypes from \"redux/actions/actionTypes\";\nimport { updateObject } from \"redux/utility\";\n\nconst initialFilters = {\n ean: \"\",\n client: null,\n name: \"\",\n category: null,\n type: null,\n volume: null,\n testResult: null,\n startDate: null,\n endDate: null,\n};\n\nconst initialSorting = {\n dataField: \"tested_at\",\n order: \"desc\",\n};\n\nconst getSizePerPageList = (dataSize) => {\n return [\n { value: 10, text: \"10\" },\n { value: 25, text: \"25\" },\n { value: 50, text: \"50\" },\n { value: 0, text: \"Kõik\" },\n ];\n};\n\nconst initialPagination = {\n page: 1,\n sizePerPage: 25,\n dataSize: 0,\n sizePerPageList: getSizePerPageList(0),\n};\n\nconst initialState = {\n filters: initialFilters,\n sorting: initialSorting,\n pagination: initialPagination,\n unfilteredPackagesList: null,\n packagesList: null,\n packagesListFiltersUsed: initialFilters,\n packagesListLoading: false,\n loading: false,\n error: null,\n};\n\nconst resetUserSpecificData = (state, action) => {\n return initialState;\n};\n\nconst onPackagesInTestFetchStart = (state) => {\n return updateObject(state, {\n loading: true,\n packagesListLoading: true,\n error: null,\n packagesList: null,\n unfilteredPackagesList: null,\n });\n};\n\nconst onPackagesInTestFetchSuccess = (state, action) => {\n return updateObject(state, {\n loading: false,\n packagesListLoading: false,\n error: null,\n packagesList: action.packagesList,\n pagination: {\n ...state.pagination,\n dataSize: action.packagesList.length,\n },\n packagesListFiltersUsed: action.filters,\n unfilteredPackagesList: action.unfilteredPackagesList,\n });\n};\n\nconst onPackagesInTestFetchFail = (state, action) => {\n return updateObject(state, {\n error: action.error,\n loading: false,\n packagesListLoading: false,\n });\n};\n\nconst onPackagesInTestFilterUpdate = (state, action) => {\n return updateObject(state, {\n filters: {\n ...state.filters,\n [action.key]: action.value,\n },\n pagination: {\n ...state.pagination,\n page: 1,\n },\n });\n};\n\nconst onPackagesInTestFilterClear = (state, action) => {\n return updateObject(state, {\n filters: {\n ...initialFilters,\n },\n pagination: {\n ...state.pagination,\n page: 1,\n },\n });\n};\n\nconst onPackagesInTestSortingUpdate = (state, action) => {\n return updateObject(state, {\n sorting: action.sorting,\n });\n};\n\nconst onPackagesInTestPaginationUpdate = (state, action) => {\n return updateObject(state, {\n pagination: action.pagination,\n });\n};\n\n/*\nexport const onPackagesInTestExportStart = (state) => {\n return updateObject(state, {\n loading: true,\n exportLoading: true,\n error: null,\n });\n};\n\nexport const onPackagesInTestExportSuccess = (state, action) => {\n return updateObject(state, {\n loading: false,\n exportLoading: false,\n error: null,\n });\n};\n\nexport const onPackagesInTestExportFail = (state, action) => {\n return updateObject(state, {\n loading: false,\n exportLoading: false,\n error: action.error,\n });\n};\n*/\n\nexport const packagesInTest = (state = initialState, action) => {\n switch (action.type) {\n // SEARCH\n case actionTypes.PACKAGES_IN_TEST_FETCH_START:\n return onPackagesInTestFetchStart(state, action);\n case actionTypes.PACKAGES_IN_TEST_FETCH_SUCCESS:\n return onPackagesInTestFetchSuccess(state, action);\n case actionTypes.PACKAGES_IN_TEST_FETCH_FAIL:\n return onPackagesInTestFetchFail(state, action);\n // FILTER\n case actionTypes.PACKAGES_IN_TEST_FILTER_UPDATE:\n return onPackagesInTestFilterUpdate(state, action);\n case actionTypes.PACKAGES_IN_TEST_FILTER_CLEAR:\n return onPackagesInTestFilterClear(state, action);\n // SORT\n case actionTypes.PACKAGES_IN_TEST_SORTING_UPDATE:\n return onPackagesInTestSortingUpdate(state, action);\n // PAGINATION\n case actionTypes.PACKAGES_IN_TEST_PAGINATION_UPDATE:\n return onPackagesInTestPaginationUpdate(state, action);\n /*\n // EXPORT\n case actionTypes.PACKAGES_IN_TEST_EXPORT_START:\n return onPackagesInTestExportStart(state, action);\n case actionTypes.PACKAGES_IN_TEST_EXPORT_SUCCESS:\n return onPackagesInTestExportSuccess(state, action);\n case actionTypes.PACKAGES_IN_TEST_EXPORT_FAIL:\n return onPackagesInTestExportFail(state, action);\n */\n\n case actionTypes.GET_AUTH_USER:\n return resetUserSpecificData(state, action);\n default:\n return state;\n }\n};\n","import * as actionTypes from \"redux/actions/actionTypes\";\nimport { updateObject } from \"redux/utility\";\n\nconst initialFilters = {\n ean: \"\",\n client: null,\n name: \"\",\n category: null,\n type: null,\n volume: null,\n testResult: null,\n startDate: null,\n endDate: null,\n};\n\nconst initialSorting = {\n dataField: \"tested_at\",\n order: \"desc\",\n};\n\nconst getSizePerPageList = (dataSize) => {\n return [\n { value: 10, text: \"10\" },\n { value: 25, text: \"25\" },\n { value: 50, text: \"50\" },\n { value: 0, text: \"Kõik\" },\n ];\n};\n\nconst initialPagination = {\n page: 1,\n sizePerPage: 25,\n dataSize: 0,\n sizePerPageList: getSizePerPageList(0),\n};\n\nconst initialState = {\n filters: initialFilters,\n sorting: initialSorting,\n pagination: initialPagination,\n unfilteredPackagesList: null,\n packagesList: null,\n packagesListFiltersUsed: initialFilters,\n packagesListLoading: false,\n loading: false,\n error: null,\n};\n\nconst resetUserSpecificData = (state, action) => {\n return initialState;\n};\n\nconst onPackagesInRetestFetchStart = (state) => {\n return updateObject(state, {\n loading: true,\n packagesListLoading: true,\n error: null,\n packagesList: null,\n unfilteredPackagesList: null,\n });\n};\n\nconst onPackagesInRetestFetchSuccess = (state, action) => {\n return updateObject(state, {\n loading: false,\n packagesListLoading: false,\n error: null,\n packagesList: action.packagesList,\n pagination: {\n ...state.pagination,\n dataSize: action.packagesList.length,\n },\n packagesListFiltersUsed: action.filters,\n unfilteredPackagesList: action.unfilteredPackagesList,\n });\n};\n\nconst onPackagesInRetestFetchFail = (state, action) => {\n return updateObject(state, {\n error: action.error,\n loading: false,\n packagesListLoading: false,\n });\n};\n\nconst onPackagesInRetestFilterUpdate = (state, action) => {\n return updateObject(state, {\n filters: {\n ...state.filters,\n [action.key]: action.value,\n },\n pagination: {\n ...state.pagination,\n page: 1,\n },\n });\n};\n\nconst onPackagesInRetestFilterClear = (state, action) => {\n return updateObject(state, {\n filters: {\n ...initialFilters,\n },\n pagination: {\n ...state.pagination,\n page: 1,\n },\n });\n};\n\nconst onPackagesInRetestSortingUpdate = (state, action) => {\n return updateObject(state, {\n sorting: action.sorting,\n });\n};\n\nconst onPackagesInRetestPaginationUpdate = (state, action) => {\n return updateObject(state, {\n pagination: action.pagination,\n });\n};\n\nexport const packagesInRetest = (state = initialState, action) => {\n switch (action.type) {\n // SEARCH\n case actionTypes.PACKAGES_IN_RETEST_FETCH_START:\n return onPackagesInRetestFetchStart(state, action);\n case actionTypes.PACKAGES_IN_RETEST_FETCH_SUCCESS:\n return onPackagesInRetestFetchSuccess(state, action);\n case actionTypes.PACKAGES_IN_RETEST_FETCH_FAIL:\n return onPackagesInRetestFetchFail(state, action);\n // FILTER\n case actionTypes.PACKAGES_IN_RETEST_FILTER_UPDATE:\n return onPackagesInRetestFilterUpdate(state, action);\n case actionTypes.PACKAGES_IN_RETEST_FILTER_CLEAR:\n return onPackagesInRetestFilterClear(state, action);\n // SORT\n case actionTypes.PACKAGES_IN_RETEST_SORTING_UPDATE:\n return onPackagesInRetestSortingUpdate(state, action);\n // PAGINATION\n case actionTypes.PACKAGES_IN_RETEST_PAGINATION_UPDATE:\n return onPackagesInRetestPaginationUpdate(state, action);\n\n case actionTypes.GET_AUTH_USER:\n return resetUserSpecificData(state, action);\n default:\n return state;\n }\n};\n","import * as actionTypes from \"redux/actions/actionTypes\";\nimport { updateObject } from \"redux/utility\";\n\nconst initialFilters = {\n ean: \"\",\n client: null,\n name: \"\",\n category: null,\n type: null,\n volume: null,\n testResult: null,\n startDate: null,\n endDate: null,\n};\n\nconst initialSorting = {\n dataField: \"tested_at\",\n order: \"desc\",\n};\n\nconst getSizePerPageList = (dataSize) => {\n return [\n { value: 10, text: \"10\" },\n { value: 25, text: \"25\" },\n { value: 50, text: \"50\" },\n { value: 0, text: \"Kõik\" },\n ];\n};\n\nconst initialPagination = {\n page: 1,\n sizePerPage: 25,\n dataSize: 0,\n sizePerPageList: getSizePerPageList(0),\n};\n\nconst initialState = {\n filters: initialFilters,\n sorting: initialSorting,\n pagination: initialPagination,\n unfilteredPackagesList: null,\n packagesList: null,\n packagesListFiltersUsed: initialFilters,\n packagesListLoading: false,\n loading: false,\n error: null,\n};\n\nconst resetUserSpecificData = (state, action) => {\n return initialState;\n};\n\nconst onPackagesUnconfirmedFetchStart = (state) => {\n return updateObject(state, {\n loading: true,\n packagesListLoading: true,\n error: null,\n packagesList: null,\n unfilteredPackagesList: null,\n });\n};\n\nconst onPackagesUnconfirmedFetchSuccess = (state, action) => {\n return updateObject(state, {\n loading: false,\n packagesListLoading: false,\n error: null,\n packagesList: action.packagesList,\n pagination: {\n ...state.pagination,\n dataSize: action.packagesList.length,\n },\n packagesListFiltersUsed: action.filters,\n unfilteredPackagesList: action.unfilteredPackagesList,\n });\n};\n\nconst onPackagesUnconfirmedFetchFail = (state, action) => {\n return updateObject(state, {\n error: action.error,\n loading: false,\n packagesListLoading: false,\n });\n};\n\nconst onPackagesUnconfirmedFilterUpdate = (state, action) => {\n return updateObject(state, {\n filters: {\n ...state.filters,\n [action.key]: action.value,\n },\n pagination: {\n ...state.pagination,\n page: 1,\n },\n });\n};\n\nconst onPackagesUnconfirmedFilterClear = (state, action) => {\n return updateObject(state, {\n filters: {\n ...initialFilters,\n },\n pagination: {\n ...state.pagination,\n page: 1,\n },\n });\n};\n\nconst onPackagesUnconfirmedSortingUpdate = (state, action) => {\n return updateObject(state, {\n sorting: action.sorting,\n });\n};\n\nconst onPackagesUnconfirmedPaginationUpdate = (state, action) => {\n return updateObject(state, {\n pagination: action.pagination,\n });\n};\n\nexport const packagesUnconfirmed = (state = initialState, action) => {\n switch (action.type) {\n // SEARCH\n case actionTypes.PACKAGES_UNCONFIRMED_FETCH_START:\n return onPackagesUnconfirmedFetchStart(state, action);\n case actionTypes.PACKAGES_UNCONFIRMED_FETCH_SUCCESS:\n return onPackagesUnconfirmedFetchSuccess(state, action);\n case actionTypes.PACKAGES_UNCONFIRMED_FETCH_FAIL:\n return onPackagesUnconfirmedFetchFail(state, action);\n // FILTER\n case actionTypes.PACKAGES_UNCONFIRMED_FILTER_UPDATE:\n return onPackagesUnconfirmedFilterUpdate(state, action);\n case actionTypes.PACKAGES_UNCONFIRMED_FILTER_CLEAR:\n return onPackagesUnconfirmedFilterClear(state, action);\n // SORT\n case actionTypes.PACKAGES_UNCONFIRMED_SORTING_UPDATE:\n return onPackagesUnconfirmedSortingUpdate(state, action);\n // PAGINATION\n case actionTypes.PACKAGES_UNCONFIRMED_PAGINATION_UPDATE:\n return onPackagesUnconfirmedPaginationUpdate(state, action);\n\n case actionTypes.GET_AUTH_USER:\n return resetUserSpecificData(state, action);\n default:\n return state;\n }\n};\n","import * as actionTypes from \"redux/actions/actionTypes\";\nimport { updateObject } from \"redux/utility\";\n\nconst initialFilters = {\n ean: \"\",\n client: null,\n name: \"\",\n category: null,\n type: null,\n volume: null,\n testResult: null,\n startDate: null,\n endDate: null,\n};\n\nconst initialSorting = {\n dataField: \"tested_at\",\n order: \"desc\",\n};\n\nconst getSizePerPageList = (dataSize) => {\n return [\n { value: 10, text: \"10\" },\n { value: 25, text: \"25\" },\n { value: 50, text: \"50\" },\n { value: 0, text: \"Kõik\" },\n ];\n};\n\nconst initialPagination = {\n page: 1,\n sizePerPage: 25,\n dataSize: 0,\n sizePerPageList: getSizePerPageList(0),\n};\n\nconst initialState = {\n filters: initialFilters,\n sorting: initialSorting,\n pagination: initialPagination,\n unfilteredPackagesList: null,\n packagesList: null,\n packagesListFiltersUsed: initialFilters,\n packagesListLoading: false,\n loading: false,\n error: null,\n};\n\nconst resetUserSpecificData = (state, action) => {\n return initialState;\n};\n\nconst onPackagesTestedFetchStart = (state) => {\n return updateObject(state, {\n loading: true,\n packagesListLoading: true,\n error: null,\n packagesList: null,\n unfilteredPackagesList: null,\n });\n};\n\nconst onPackagesTestedFetchSuccess = (state, action) => {\n return updateObject(state, {\n loading: false,\n packagesListLoading: false,\n error: null,\n packagesList: action.packagesList,\n pagination: {\n ...state.pagination,\n dataSize: action.packagesList.length,\n },\n packagesListFiltersUsed: action.filters,\n unfilteredPackagesList: action.unfilteredPackagesList,\n });\n};\n\nconst onPackagesTestedFetchFail = (state, action) => {\n return updateObject(state, {\n error: action.error,\n loading: false,\n packagesListLoading: false,\n });\n};\n\nconst onPackagesTestedFilterUpdate = (state, action) => {\n return updateObject(state, {\n filters: {\n ...state.filters,\n [action.key]: action.value,\n },\n pagination: {\n ...state.pagination,\n page: 1,\n },\n });\n};\n\nconst onPackagesTestedFilterClear = (state, action) => {\n return updateObject(state, {\n filters: {\n ...initialFilters,\n },\n pagination: {\n ...state.pagination,\n page: 1,\n },\n });\n};\n\nconst onPackagesTestedSortingUpdate = (state, action) => {\n return updateObject(state, {\n sorting: action.sorting,\n });\n};\n\nconst onPackagesTestedPaginationUpdate = (state, action) => {\n return updateObject(state, {\n pagination: action.pagination,\n });\n};\n\nexport const packagesTested = (state = initialState, action) => {\n switch (action.type) {\n // SEARCH\n case actionTypes.PACKAGES_TESTED_FETCH_START:\n return onPackagesTestedFetchStart(state, action);\n case actionTypes.PACKAGES_TESTED_FETCH_SUCCESS:\n return onPackagesTestedFetchSuccess(state, action);\n case actionTypes.PACKAGES_TESTED_FETCH_FAIL:\n return onPackagesTestedFetchFail(state, action);\n // FILTER\n case actionTypes.PACKAGES_TESTED_FILTER_UPDATE:\n return onPackagesTestedFilterUpdate(state, action);\n case actionTypes.PACKAGES_TESTED_FILTER_CLEAR:\n return onPackagesTestedFilterClear(state, action);\n // SORT\n case actionTypes.PACKAGES_TESTED_SORTING_UPDATE:\n return onPackagesTestedSortingUpdate(state, action);\n // PAGINATION\n case actionTypes.PACKAGES_TESTED_PAGINATION_UPDATE:\n return onPackagesTestedPaginationUpdate(state, action);\n\n case actionTypes.GET_AUTH_USER:\n return resetUserSpecificData(state, action);\n default:\n return state;\n }\n};\n","import * as actionTypes from \"redux/actions/actionTypes\";\nimport { updateObject } from \"redux/utility\";\n\nconst initialFilters = {\n ean: \"\",\n client: null,\n name: \"\",\n category: null,\n type: null,\n volume: null,\n testResult: null,\n startDate: null,\n endDate: null,\n};\n\nconst initialSorting = {\n dataField: \"tested_at\",\n order: \"desc\",\n};\n\nconst getSizePerPageList = (dataSize) => {\n return [\n { value: 10, text: \"10\" },\n { value: 25, text: \"25\" },\n { value: 50, text: \"50\" },\n { value: 0, text: \"Kõik\" },\n ];\n};\n\nconst initialPagination = {\n page: 1,\n sizePerPage: 25,\n dataSize: 0,\n sizePerPageList: getSizePerPageList(0),\n};\n\nconst initialState = {\n filters: initialFilters,\n sorting: initialSorting,\n pagination: initialPagination,\n unfilteredPackagesList: null,\n packagesList: null,\n packagesListFiltersUsed: initialFilters,\n packagesListLoading: false,\n loading: false,\n error: null,\n};\n\nconst resetUserSpecificData = (state, action) => {\n return initialState;\n};\n\nconst onPackagesTestingAllFetchStart = (state) => {\n return updateObject(state, {\n loading: true,\n packagesListLoading: true,\n error: null,\n packagesList: null,\n unfilteredPackagesList: null,\n });\n};\n\nconst onPackagesTestingAllFetchSuccess = (state, action) => {\n return updateObject(state, {\n loading: false,\n packagesListLoading: false,\n error: null,\n packagesList: action.packagesList,\n pagination: {\n ...state.pagination,\n dataSize: action.packagesList.length,\n },\n packagesListFiltersUsed: action.filters,\n unfilteredPackagesList: action.unfilteredPackagesList,\n });\n};\n\nconst onPackagesTestingAllFetchFail = (state, action) => {\n return updateObject(state, {\n error: action.error,\n loading: false,\n packagesListLoading: false,\n });\n};\n\nconst onPackagesTestingAllFilterUpdate = (state, action) => {\n return updateObject(state, {\n filters: {\n ...state.filters,\n [action.key]: action.value,\n },\n pagination: {\n ...state.pagination,\n page: 1,\n },\n });\n};\n\nconst onPackagesTestingAllFilterClear = (state, action) => {\n return updateObject(state, {\n filters: {\n ...initialFilters,\n },\n pagination: {\n ...state.pagination,\n page: 1,\n },\n });\n};\n\nconst onPackagesTestingAllSortingUpdate = (state, action) => {\n return updateObject(state, {\n sorting: action.sorting,\n });\n};\n\nconst onPackagesTestingAllPaginationUpdate = (state, action) => {\n return updateObject(state, {\n pagination: action.pagination,\n });\n};\n\nexport const packagesTestingAll = (state = initialState, action) => {\n switch (action.type) {\n // SEARCH\n case actionTypes.PACKAGES_TESTING_ALL_FETCH_START:\n return onPackagesTestingAllFetchStart(state, action);\n case actionTypes.PACKAGES_TESTING_ALL_FETCH_SUCCESS:\n return onPackagesTestingAllFetchSuccess(state, action);\n case actionTypes.PACKAGES_TESTING_ALL_FETCH_FAIL:\n return onPackagesTestingAllFetchFail(state, action);\n // FILTER\n case actionTypes.PACKAGES_TESTING_ALL_FILTER_UPDATE:\n return onPackagesTestingAllFilterUpdate(state, action);\n case actionTypes.PACKAGES_TESTING_ALL_FILTER_CLEAR:\n return onPackagesTestingAllFilterClear(state, action);\n // SORT\n case actionTypes.PACKAGES_TESTING_ALL_SORTING_UPDATE:\n return onPackagesTestingAllSortingUpdate(state, action);\n // PAGINATION\n case actionTypes.PACKAGES_TESTING_ALL_PAGINATION_UPDATE:\n return onPackagesTestingAllPaginationUpdate(state, action);\n\n case actionTypes.GET_AUTH_USER:\n return resetUserSpecificData(state, action);\n default:\n return state;\n }\n};\n","import { combineReducers } from \"redux\";\nimport { packagesInTest } from \"./packagesInTest\";\nimport { packagesInRetest } from \"./packagesInRetest\";\nimport { packagesUnconfirmed } from \"./packagesUnconfirmed\";\nimport { packagesTested } from \"./packagesTested\";\nimport { packagesTestingAll } from \"./packagesTestingAll\";\n\nconst partnerReducer = combineReducers({\n packagesInTest,\n packagesInRetest,\n packagesUnconfirmed,\n packagesTested,\n packagesTestingAll,\n});\n\nexport default partnerReducer;\n","import React from \"react\";\nimport store from \"redux/store\";\n\nimport { Trans } from \"react-i18next\";\nimport { languageTypes } from \"util/General\";\n\nexport function getServerErrorMessage(error) {\n const language = store.getState().language;\n\n let errorMessage =\n language === languageTypes.EN ? \"Unknown error!\" : \"Tundmatu viga!\";\n if (!error) {\n return errorMessage;\n } else if (error.response?.data) {\n const data = error.response.data;\n if (data.errors) {\n return data.errors.map((error) => error.code).join(\" \");\n }\n if (data.code) {\n return data.code;\n }\n\n if (data.detail) {\n return data.detail;\n }\n } else if (error.request) {\n return error.request.type || errorMessage;\n } else {\n return error.message || errorMessage;\n }\n\n return errorMessage;\n}\n\nexport function getErrorMessageList(\n errors = [],\n contentFunc,\n topText = \"\",\n keyFunc\n) {\n const message = (\n <>\n {topText &&

{topText}

}\n \n \n );\n\n return message;\n}\n\nexport function getIdCardSpecificErrorMessage(error, defaultMessage) {\n const errorMessage = typeof error === \"object\" && error !== null ? error.message : null;\n if (errorMessage === \"no_implementation\") {\n //hwcrypto error\n return (\n \n ID-kaardi tarkvara ei leitud.\n \n );\n } else if (errorMessage === \"no_certificates\") {\n // hwcrypto error\n return (\n \n Sertifikaate ei leitud. Palun kontrollige, et ID-kaardi lugeja\n on seadme küljes ja ID-kaart on sisestatud.\n \n );\n } else if (errorMessage === \"user_cancel\") {\n // hwcrypto error\n return (\n \n Sisselogimine ebaõnnestus. Kasutaja lõpetas protsessi.\n \n );\n } else if (errorMessage === \"login_prepare_not_success\") {\n return (\n \n Sisselogimise ettevalmistamine ebaõnnestus\n \n );\n } else if (errorMessage === \"login_verify_not_success\") {\n return (\n \n Sisselogimise kinnitamine ebaõnnestus.\n \n );\n } else if (\"errorMessage\" === \"sign_prepare_not_success\") {\n return (\n \n Allkirjastamise ettevalmistamine ebaõnnestus.\n \n );\n } else if (\"errorMessage\" === \"sign_verify_not_success\") {\n return (\n \n Allkirjastamise kinnitamine ebaõnnestus\n \n );\n }\n\n return defaultMessage;\n}\n\nexport function getIdCardErrorMessage(error, defaultMessage) {\n const genericErrorMessage = (\n \n Ilmnes viga, palun veenduge, et teie tarkvara on uuendatud ning teie brauser toetab keskkonda. Samuti palume veenduda sertifikaadi kehtivuses.\n \n );\n\n return (\n
\n
\n {getIdCardSpecificErrorMessage(error, defaultMessage)}\n
\n
\n {genericErrorMessage}\n
\n
\n );\n}\n","export const BASE_URL_API_CLIENT_CERTIFICATE =\n \"https://epp-test-id-auth.flowit.ee/api/v1/\";\n\n// User\nexport const REST_AUTH_LOGIN = \"rest-auth/login/\";\nexport const REST_AUTH_LOGOUT = \"rest-auth/logout/\";\nexport const REST_AUTH_USER = \"rest-auth/user/\";\nexport const USERS = \"users/\";\nexport const CHANGE_PASSWORD_TOKEN = \"token/\"; // \"token///\"\nexport const CHANGE_PASSWORD = \"rest-auth/password/change/\";\nexport const RESET_PASSWORD = \"rest-auth/password/reset/\";\nexport const CHANGE_ACTIVE_CLIENT = \"active-client/\";\nexport const CHANGE_ACTIVE_PARTNER = \"active-partner/\";\nexport const CHANGE_ACTIVE_EPP = \"active-epp/\";\n\n// General\nexport const ALL_CLIENTS = \"all-clients/\";\nexport const STANDARD_COMMENTS = \"partner/standard-comment/\";\nexport const LOCATIONS = \"partner/location/\";\nexport const LANGUAGE = \"profile/language//\";\n\n// Profile\nexport const USER_DATA = \"profile/user-data/\";\nexport const USER_SETTINGS = \"/profile/user-settings/\"; // PUT: /profile/user-settings/{usertype.id}\nexport const COMPANY_DATA = \"profile/business-data/\";\nexport const CLIENT_WARRANT_SHOW = \"profile/show-warranted-info-to-client/\";\nexport const CLIENT_WARRANT_USERS = \"profile/warrant-users/\"; // GET\nexport const ADD_USER = \"profile/add-user/\";\nexport const REMOVE_USER = \"users/\"; // DELETE \"users/\"\n\n// Contracts\nexport const CONTRACTS = \"document/contracts/\";\n\n// Authentication\nexport const ID_CARD_AUTH = \"authentication/id/\";\nexport const MID_AUTH_START = \"authentication/mid/start/\";\nexport const MID_AUTH_STATUS = \"authentication/mid/status/\";\n\n// Signing\nexport const MID_SIGN_START = \"sign/mid/start/\";\nexport const MID_SIGN_STATUS = \"sign/mid/status/\";\nexport const ID_SIGN_START = \"sign/id/start/\";\nexport const ID_SIGN_FINISH = \"sign/id/finish/\";\n\n//dokobit\nexport const AUTH_ID_CARD_V2 = \"/dokobit/auth/id-card-v2/\";\nexport const AUTH_ID_CARD = \"/dokobit/auth/id-card/\"; // Deprecated\nexport const AUTH_ID_CARD_VERIFY = \"/dokobit/id-card-auth/status/\"; // Deprecated\nexport const AUTH_MOBILE_ID = \"/dokobit/auth/mobile/\";\nexport const AUTH_SMART_ID = \"/dokobit/auth/smart/\";\nexport const DIGITAL_AUTH_STATUS = \"/dokobit/digital-auth/status/\";\n\nexport const SIGN_ID_CARD = \"/dokobit/sign/id-card\";\nexport const SIGN_MOBILE_ID = \"/dokobit/sign/mobile\";\nexport const SIGN_SMART_ID = \"/dokobit/sign/smart\";\n\nexport const SIGN_ADMIN_ID_CARD = \"/dokobit/sign-container/id-card\";\nexport const SIGN_ADMIN_MOBILE_ID = \"/dokobit/sign-container/mobile\";\nexport const SIGN_ADMIN_SMART_ID = \"/dokobit/sign-container/smart\";\n\nexport const DIGITAL_SIGN_STATUS = \"/dokobit/digital-sign/status/\";\n\n// Package\nexport const PACKAGE_LIST = \"package/list/\"; // + client_id\nexport const EAN_TYPES = \"package/ean-types/\";\nexport const PACKAGE_CATEGORIES = \"package/categories/\";\nexport const PACKAGE_COLORS = \"package/colors/\";\nexport const PACKAGE_TYPES = \"package/types/\";\nexport const PACKAGE_VOLUMES = \"package/volumes/\";\nexport const PACKAGE_STATUSES = \"package/statuses/\";\nexport const PACKAGE_TEST_RESULTS = \"partner/test-status/\";\nexport const PACKAGE = \"package/\";\n\n// Invoices\nexport const INVOICES = \"invoices/\";\n\n// Application\nexport const APPLICATION = \"application/\";\nexport const APPLICATION_IN_PROGRESS = \"application-in-progress/\";\n\n// Reports\nexport const SALES_LIST = \"sales-reports/\";\nexport const GET_SALES_REPORT = \"sales-reports/package-list/\"; // \"sales-reports/package-list/sales_report_id}/\"\nexport const GET_REPAIR_SALES_REPORT = \"sales-reports/package-list-repair/\"; // \"sales-reports/package-list-repair/{sales_report_id}/\"\"\nexport const CREATE_REPAIR_SALES_REPORT = \"sales-reports/repair/\";\nexport const SUBMIT_SALES_REPORT = \"sales-reports/submit/\";\nexport const DELETE_REPAIR_SALES_REPORT = \"sales-reports/delete-repair-report/\"; // delete-repair-report//\n\nexport const EXPORT_SALES_REPORT = \"sales-reports/export/\"; // `sales-reports/export/${id}/`\nexport const EXPORT_SALES_REPORT_REPAIR = \"/sales-reports/export-repair/\"; // `/sales-report/export-repair/${id}/`\nexport const IMPORT_SALES_REPORT = \"sales-reports/import/\"; // '\"sales-reports/import//'\nexport const IMPORT_SALES_REPORT_REPAIR = \"sales-reports/import-repair/\"; // 'sales-reports/import-repair//'\n\nexport const UPDATE_SALES_REPORT_LINE = \"sales-line/\"; // `sale-line/${sale_report_id}`\nexport const UPDATE_REPAIR_SALES_REPORT_LINE = \"sales-line/repair-report/\"; // `sales-line/repair-report/{sale_report_id}/`\n\n// Summary report\nexport const GET_SUMMARY_REPORT = \"sales-reports/summary/\"; // \"sales-reports/summary/&...\"\nexport const EXPORT_SUMMARY_REPORT = \"sales-reports/summary-export/\"; // \"sales-reports/summary-export/&...\"\n\n// Mass report\nexport const GET_MASS_REPORT = \"sales-reports/mass/\"; // \"sales-reports/summary/&...\"\nexport const EXPORT_MASS_REPORT = \"sales-reports/mass-export/\"; // \"sales-reports/mass-export/&...\"\n\n// Companies\nexport const COMPANIES = \"companies/\"; // {name}\n\n// Business register\nexport const DETAIL = \"/business-register/company-details/\";\n\n// Contracts\nexport const CREATE_CONTRACT = \"document/create-contract/\";\nexport const SIGN_CONTRACT = \"document/sign-contract/\";\nexport const TERMINATE_CONTRACT = \"document/end-contract//\";\nexport const REPRESENTATION_OPTIONS = \"document/basis/\";\nexport const VERIFY_CONTRACT_SIGNER = \"administrator/client-user-connection/\";\n\n// Dashboard\nexport const LATEST_PACKAGES = \"dashboard/latest-packages/\";\nexport const LATEST_REPORTS = \"dashboard/latest-reports/\";\nexport const STATISTICS = \"dashboard/statistics/\";\n\n// Notifications\nexport const NOTIFICATIONS = \"notifications/\";\n\n// Everypay\n// Defined directly in src/util/Everypay\n\n// Partner\nexport const PACKAGES_IN_TEST_OR_RETEST = \"partner/packages-in-test/\"; // Used also for retesting view. suffix \"/\" to get specific instead of the overall list.\nexport const PACKAGES_UNCONFIRMED = \"partner/packages-unconfirmed/\";\nexport const PACKAGE_TEST = \"partner/test/\"; // PUT \"partner/test/\";\nexport const PACKAGES_TESTED = \"partner/packages-confirmed/\";\nexport const PACKAGES_TESTING_ALL = \"partner/packages-all/\";\nexport const PARTNER_TESTING_COMPLETED = \"partner/confirm-testing-completed/\";\n\n// Admin\nexport const ADMIN_APPLICATIONS = \"administrator/applications/\";\nexport const ADMIN_SEND_TO_TESTING = \"administrator/send-to-testing/\";\nexport const ADMIN_ALL_PACKAGES = \"administrator/packages/\";\nexport const ADMIN_TESTING_PACKAGES = \"administrator/packages-in-test/\";\nexport const ADMIN_RETESTING_PACKAGES = \"administrator/packages-in-retest/\";\nexport const ADMIN_ACTIVATE_PACKAGES = \"administrator/activate/\";\nexport const ADMIN_PACKAGE_DETAILS = \"administrator/package//\";\nexport const ADMIN_CONFIRM_PACKAGE_TEST = \"administrator/confirm-tests/\";\nexport const ADMIN_DEBTS = \"administrator/debts/\";\nexport const ADMIN_INVOICES = \"administrator/client-invoices//\";\nexport const ADMIN_INVOICE_REMINDER =\n \"administrator/send-reminder//\";\nexport const ADMIN_INVOICES_SUMMARY = \"administrator/send-summary//\";\nexport const ADMIN_CLIENT = \"administrator/client//\";\nexport const ADMIN_CLIENT_PACKAGES_SYNCHRONIZE = \"administrator/client//sync-packages/\";\nexport const ADMIN_ALL_CLIENTS = \"administrator/all-clients/\";\nexport const ADMIN_ALL_PARTNERS = \"administrator/all-partners/\";\nexport const ADMIN_ALL_USERS = \"administrator/users/\";\nexport const ADMIN_CLIENT_USERS = \"administrator/users//\";\nexport const ADMIN_REMOVE_USER = \"administrator/user//\";\nexport const ADMIN_REMOVE_EPP_USER = \"administrator/epp//\";\nexport const ADMIN_REMOVE_PARTNER_USER =\n \"administrator/partner//\";\nexport const ADMIN_CLIENT_CONTRACTS =\n \"administrator/client-contracts//\";\nexport const ADMIN_CONTRACT_UPLOAD = \"administrator/file-upload//\";\nexport const ADMIN_CLIENT_WARRANT_SHOW = \"administrator/show-warranted-info-to-client//\";\nexport const ADMIN_CLIENT_WARRANT_USERS = \"administrator/client//warranted-users/\"; // GET list, POST create\nexport const ADMIN_CLIENT_WARRANT_USER = \"administrator/client//warranted-users//\"; // GET, PUT, DELETE\nexport const ADMIN_CLIENT_WARRANT_USER_FILE_UPLOAD = \"administrator/warrant-file-upload//\";\n// Admin - sales reports\nexport const ADMIN_ALL_SALES_REPORTS =\n \"administrator/sales-reports///\"; // YYYY-MM-DD ?client_id=\nexport const ADMIN_UNSUBMITTED_SALES_REPORTS =\n \"administrator/not-submitted-sales-reports///\"; // YYYY-MM-DD ?client_id=\nexport const ADMIN_UNCONFIRMED_SALES_REPORTS =\n \"administrator/not-confirmed-sales-reports///\"; // YYYY-MM-DD ?client_id=\nexport const ADMIN_CLIENT_SALES_REPORTS =\n \"administrator/sales-reports//\";\nexport const ADMIN_GET_SALES_REPORT =\n \"administrator/package-list//\";\nexport const ADMIN_GET_REPAIR_SALES_REPORT =\n \"administrator/package-list-repair//\";\nexport const ADMIN_APPROVE_REPAIR_SALES_REPORT = \"administrator/unapprove/\"; // PUT {sales_report_id,}\nexport const ADMIN_REPAIR_SALES_REPORT_APPROVAL =\n \"administrator/repair-report-approval/\"; // PUT {repair_report_id, is_approve}\nexport const ADMIN_DELETE_SALES_REPORT =\n \"administrator/delete-sales-report/\"; // delete-sales-report//\n//\nexport const ADMING_GENERATE_PACKAGE_APPLICATION_INVOICE =\n \"administrator/generate-invoice-in-nav/\"; // POST {ids: []}\n// Admin - settings\nexport const ADMIN_SETTINGS_FETCH_NAV = \"administrator/sync-classifiers/\";\nexport const ADMIN_SETTINGS_CATEGORIES = \"package/categories/\";\nexport const ADMIN_SETTINGS_TYPES = \"package/types/\";\nexport const ADMIN_SETTINGS_COLORS = \"package/colors/\";\nexport const ADMIN_SETTINGS_VOLUMES = \"package/volumes/\";\nexport const ADMIN_SETTINGS_PROCESS_FEES = \"package/process-fees/\";\n","// This one is directly used in src/axios.js because importing threw errors.\n//export const API_BASE_URL = process.env.REACT_APP_API_HOST;\nif (!process.env.REACT_APP_API_HOST) {\n throw Error(\"Environment variable REACT_APP_API_HOST is not defined!\");\n}\n\nexport const ENABLE_REDUX_DEVTOOLS =\n process.env.REACT_APP_ENABLE_REDUX_DEVTOOLS === \"true\";\n\nexport const ENABLE_TEST_VAT_PERCENTAGE = \nprocess.env.REACT_APP_TEST_VAT_PERCENTAGE === \"true\";","import axios from \"../axios\";\nimport store from \"redux/store\";\n\nimport { getServerErrorMessage } from \"util/Errors\";\nimport {\n COMPANIES,\n ALL_CLIENTS,\n STANDARD_COMMENTS,\n LOCATIONS,\n LANGUAGE,\n} from \"../config/Api\";\nimport {\n allClientsFetchStart,\n allClientsFetchSuccess,\n allClientsFetchFail,\n standardCommentsFetchStart,\n standardCommentsFetchSuccess,\n standardCommentsFetchFail,\n locationsFetchStart,\n locationsFetchSuccess,\n locationsFetchFail,\n} from \"../redux/actions/general\";\nimport { ENABLE_TEST_VAT_PERCENTAGE } from \"config/envVariables\";\n\nconst numberFormatLocale = \"et\";\nconst currencyBaseOptions = { style: \"currency\", currency: \"EUR\" };\n\nexport const currencyFormatter = Intl.NumberFormat(numberFormatLocale, {\n ...currencyBaseOptions,\n minimumFractionDigits: 2,\n});\n\nexport const depositCurrencyFormatter = Intl.NumberFormat(numberFormatLocale, {\n ...currencyBaseOptions,\n minimumFractionDigits: 2,\n});\n\nexport const processFeeCostCurrencyFormatter = Intl.NumberFormat(\n numberFormatLocale,\n { ...currencyBaseOptions, minimumFractionDigits: 4 }\n);\n\nexport const languageTypes = {\n ET: \"et\",\n EN: \"en\",\n};\n\nexport const testStatuses = {\n OK: { value: 1, label: \"OK\" },\n NOK: { value: 2, label: \"NOK\" },\n NA: { value: 3, label: \"N/A\" },\n};\n\n\nexport function isNumeric(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n}\n\nexport function normalizeStringNumber(strNum) {\n return strNum.replace(\",\", \".\").replace(/[^0-9.-]/g, \"\");\n}\n\nexport function changeLanguage(userTypeId, lngCode) {\n const endpoint = LANGUAGE.replace(\"\", userTypeId);\n const data = { language: lngCode };\n return axios\n .put(endpoint, data)\n .then((resp) => {\n return resp.data;\n })\n .catch((err) => {\n throw err;\n });\n}\n\nexport function fetchCompanies(name) {\n return axios\n .get(COMPANIES + name)\n .then((resp) => {\n return resp.data;\n })\n .catch((err) => {\n throw err;\n });\n}\n\nexport function fetchAllClients(allClients) {\n if (allClients && allClients.length) {\n return;\n }\n store.dispatch(allClientsFetchStart());\n return axios\n .get(ALL_CLIENTS)\n .then((response) => {\n store.dispatch(allClientsFetchSuccess(response.data));\n return response.data;\n })\n .catch((error) => {\n const errorMessage = getServerErrorMessage(error);\n store.dispatch(allClientsFetchFail(errorMessage));\n throw Error(errorMessage);\n });\n}\n\nexport function fetchStandardComments(standardComments) {\n if (standardComments && standardComments.length) {\n return;\n }\n store.dispatch(standardCommentsFetchStart());\n return axios\n .get(STANDARD_COMMENTS)\n .then((response) => {\n store.dispatch(standardCommentsFetchSuccess(response.data));\n return response.data;\n })\n .catch((error) => {\n const errorMessage = getServerErrorMessage(error);\n store.dispatch(standardCommentsFetchFail(errorMessage));\n throw Error(errorMessage);\n });\n}\n\nexport function fetchLocations(locations) {\n if (locations && locations.length) {\n return;\n }\n store.dispatch(locationsFetchStart());\n return axios\n .get(LOCATIONS)\n .then((response) => {\n store.dispatch(locationsFetchSuccess(response.data));\n return response.data;\n })\n .catch((error) => {\n const errorMessage = getServerErrorMessage(error);\n store.dispatch(locationsFetchFail(errorMessage));\n throw Error(errorMessage);\n });\n}\n\nexport function getPageCount(dataSize, sizePerPage) {\n if (sizePerPage === 0) {\n return 1;\n }\n\n return Math.ceil(dataSize / sizePerPage);\n}\n\n\nexport function getVatPercentageFraction(date) {\n // Mirroring backend get_vat_amount dates logic\n if (date >= new Date(\"2024-01-01\")) {\n return 0.22\n }\n // Should not run in production\n if (ENABLE_TEST_VAT_PERCENTAGE) {\n if (date > new Date(\"2023-10-01\")) {\n return 0.5\n }\n }\n return 0.2\n}","import * as actionTypes from 'redux/actions/actionTypes';\n\nexport const allClientsFetchStart = () => {\n return {\n type: actionTypes.ALL_CLIENTS_FETCH_START,\n }\n};\n\nexport const allClientsFetchSuccess = (clients) => {\n return {\n type: actionTypes.ALL_CLIENTS_FETCH_SUCCESS,\n clients,\n }\n};\n\nexport const allClientsFetchFail = (error) => {\n return {\n type: actionTypes.ALL_CLIENTS_FETCH_FAIL,\n error,\n }\n};\n\nexport const standardCommentsFetchStart = () => {\n return {\n type: actionTypes.STANDARD_COMMENTS_FETCH_START,\n }\n};\n\nexport const standardCommentsFetchSuccess = (standardComments) => {\n return {\n type: actionTypes.STANDARD_COMMENTS_FETCH_SUCCESS,\n standardComments,\n }\n};\n\nexport const standardCommentsFetchFail = (error) => {\n return {\n type: actionTypes.STANDARD_COMMENTS_FETCH_FAIL,\n error,\n }\n};\n\nexport const locationsFetchStart = () => {\n return {\n type: actionTypes.LOCATIONS_FETCH_START,\n }\n};\n\nexport const locationsFetchSuccess = (locations) => {\n return {\n type: actionTypes.LOCATIONS_FETCH_SUCCESS,\n locations,\n }\n};\n\nexport const locationsFetchFail = (error) => {\n return {\n type: actionTypes.LOCATIONS_FETCH_FAIL,\n error,\n }\n};","import * as actionTypes from \"redux/actions/actionTypes\";\nimport { updateObject } from \"redux/utility\";\nimport _ from \"lodash\";\n\nimport { getPageCount } from \"util/General\";\n\nconst initialFilters = {\n ean: \"\",\n eanType: null,\n //client: null,\n name: \"\",\n category: null,\n type: null,\n conditions: [],\n volume: null,\n weight: null,\n //testResult: null,\n startDate: null,\n endDate: null,\n};\n\nconst initialSorting = {\n dataField: \"date\",\n order: \"desc\",\n};\n\nconst initialPagination = {\n page: 1,\n sizePerPage: 25,\n dataSize: 0,\n sizePerPageList: [\n { value: 10, text: \"10\" },\n { value: 25, text: \"25\" },\n { value: 50, text: \"50\" },\n { value: 0, text: \"Kõik\" },\n ],\n};\n\nconst initialState = {\n filters: initialFilters,\n sorting: initialSorting,\n pagination: initialPagination,\n\n packagesList: null,\n unfilteredPackagesList: null,\n packagesListFiltersUsed: initialFilters,\n packagesListLoading: false,\n loading: false,\n error: null,\n selectedIds: [],\n sendToTestingLoading: false,\n};\n\nconst filterIdsInList = (ids, packages) => {\n const packageIds = packages.map((pkg) => pkg.id);\n return ids.filter((id) => packageIds.includes(id));\n};\n\nconst resetUserSpecificData = (state, action) => {\n return initialState;\n};\n\nconst onAdminApplicationsFetchStart = (state) => {\n return updateObject(state, {\n loading: true,\n packagesListLoading: true,\n error: null,\n packagesList: null,\n });\n};\n\nconst onAdminApplicationsFetchSuccess = (state, action) => {\n const areFilterSame = _.isEqual(\n state.packagesListFiltersUsed,\n action.filters\n );\n\n const newDataSize = action.packagesList.length;\n const currentPage = state.pagination.page;\n const sizePerPage = state.pagination.sizePerPage;\n const isCurrentPageValid =\n currentPage <= getPageCount(newDataSize, sizePerPage);\n\n return updateObject(state, {\n loading: false,\n packagesListLoading: false,\n error: null,\n packagesList: action.packagesList,\n unfilteredPackagesList: action.unfilteredPackagesList,\n packagesListFiltersUsed: action.filters,\n pagination: {\n ...state.pagination,\n page: areFilterSame && isCurrentPageValid ? currentPage : 1,\n dataSize: newDataSize,\n },\n selectedIds: filterIdsInList(\n state.selectedIds,\n action.unfilteredPackagesList\n ),\n });\n};\n\nconst onAdminApplicationsFetchFail = (state, action) => {\n return updateObject(state, {\n error: action.error,\n loading: false,\n packagesListLoading: false,\n selectedIds: [],\n });\n};\n\nconst onAdminApplicationsFilterUpdate = (state, action) => {\n return updateObject(state, {\n filters: {\n ...state.filters,\n [action.key]: action.value,\n },\n });\n};\n\nconst onAdminApplicationsFilterClear = (state, action) => {\n return updateObject(state, {\n filters: {\n ...initialFilters,\n },\n });\n};\n\nconst onAdminApplicationsSortingUpdate = (state, action) => {\n return updateObject(state, {\n sorting: action.sorting,\n });\n};\n\nconst onAdminApplicationsPaginationUpdate = (state, action) => {\n return updateObject(state, {\n pagination: action.pagination,\n });\n};\n\nconst onAdminApplicationsUpdateSelected = (state, action) => {\n return updateObject(state, {\n selectedIds: action.selected,\n });\n};\n\nconst onAdminSendToTestingStart = (state) => {\n return updateObject(state, {\n sendToTestingLoading: true,\n });\n};\n\nconst onAdminSendToTestingSuccess = (state, action) => {\n const idsToRemove = action.ids;\n\n let newPackagesList = null;\n let newDataSize = 0;\n if (state.packagesList) {\n newPackagesList = state.packagesList.filter(\n (pkg) => !idsToRemove.includes(pkg.id)\n );\n newDataSize = newPackagesList.length;\n }\n\n const currentPage = state.pagination.page;\n const sizePerPage = state.pagination.sizePerPage;\n const isCurrentPageValid =\n currentPage <= getPageCount(newDataSize, sizePerPage);\n\n return updateObject(state, {\n sendToTestingLoading: false,\n packagesList: newPackagesList,\n selectedIds: state.selectedIds.filter(\n (id) => !idsToRemove.includes(id)\n ),\n pagination: {\n ...state.pagination,\n page: isCurrentPageValid ? currentPage : 1,\n dataSize: newDataSize,\n },\n });\n};\n\nconst onAdminSendToTestingFail = (state, action) => {\n return updateObject(state, {\n sendToTestingLoading: false,\n });\n};\n\nexport const applications = (state = initialState, action) => {\n switch (action.type) {\n // SEARCH\n case actionTypes.ADMIN_APPLICATIONS_FETCH_START:\n return onAdminApplicationsFetchStart(state, action);\n case actionTypes.ADMIN_APPLICATIONS_FETCH_SUCCESS:\n return onAdminApplicationsFetchSuccess(state, action);\n case actionTypes.ADMIN_APPLICATIONS_FETCH_FAIL:\n return onAdminApplicationsFetchFail(state, action);\n // FILTER\n case actionTypes.ADMIN_APPLICATIONS_FILTER_UPDATE:\n return onAdminApplicationsFilterUpdate(state, action);\n case actionTypes.ADMIN_APPLICATIONS_FILTER_CLEAR:\n return onAdminApplicationsFilterClear(state, action);\n // SORT\n case actionTypes.ADMIN_APPLICATIONS_SORTING_UPDATE:\n return onAdminApplicationsSortingUpdate(state, action);\n // PAGINATION\n case actionTypes.ADMIN_APPLICATIONS_PAGINATION_UPDATE:\n return onAdminApplicationsPaginationUpdate(state, action);\n // UPDATE SELECTED\n case actionTypes.ADMIN_APPLICATIONS_UPDATE_SELECTED:\n return onAdminApplicationsUpdateSelected(state, action);\n // SEND TO TESTING\n case actionTypes.ADMIN_SEND_TO_TESTING_START:\n return onAdminSendToTestingStart(state, action);\n case actionTypes.ADMIN_SEND_TO_TESTING_SUCCESS:\n return onAdminSendToTestingSuccess(state, action);\n case actionTypes.ADMIN_SEND_TO_TESTING_FAIL:\n return onAdminSendToTestingFail(state, action);\n\n case actionTypes.GET_AUTH_USER:\n return resetUserSpecificData(state, action);\n default:\n return state;\n }\n};\n","import * as actionTypes from \"redux/actions/actionTypes\";\nimport _ from \"lodash\";\nimport { updateObject } from \"redux/utility\";\n\nimport { testStatuses, getPageCount } from \"util/General\";\n\nconst initialFilters = {\n ean: \"\",\n name: \"\",\n client: null,\n category: null,\n type: null,\n conditions: [],\n testResult: null,\n //startDate: null,\n //endDate: null,\n};\n\nconst initialSorting = {\n dataField: \"date\",\n order: \"desc\",\n};\n\nconst initialPagination = {\n page: 1,\n sizePerPage: 25,\n dataSize: 0,\n sizePerPageList: [\n { value: 5, text: \"5\" },\n { value: 10, text: \"10\" },\n { value: 25, text: \"25\" },\n { value: 50, text: \"50\" },\n { value: 0, text: \"Kõik\" },\n ],\n};\n\nconst initialState = {\n filters: initialFilters,\n sorting: initialSorting,\n pagination: initialPagination,\n\n unfilteredPackagesList: null,\n packagesList: null,\n packagesListFiltersUsed: initialFilters,\n packagesListLoading: false,\n loading: false,\n error: null,\n sendToRetestingLoading: false,\n selectedIds: [],\n activatePackagesLoading: false,\n confirmPackageTestingLoading: false,\n};\n\nconst filterIdsInList = (ids, packages) => {\n const packageIds = packages.map((pkg) => pkg.id);\n return ids.filter((id) => packageIds.includes(id));\n};\n\nconst resetUserSpecificData = (state, action) => {\n return initialState;\n};\n\nconst onAdminTestingPackagesFetchStart = (state) => {\n return updateObject(state, {\n loading: true,\n packagesListLoading: true,\n error: null,\n packagesList: null,\n });\n};\n\nconst onAdminTestingPackagesFetchSuccess = (state, action) => {\n const areFilterSame = _.isEqual(\n state.packagesListFiltersUsed,\n action.filters\n );\n\n const newDataSize = action.packagesList.length;\n const currentPage = state.pagination.page;\n const sizePerPage = state.pagination.sizePerPage;\n const isCurrentPageValid =\n currentPage <= getPageCount(newDataSize, sizePerPage);\n\n return updateObject(state, {\n loading: false,\n packagesListLoading: false,\n error: null,\n packagesList: action.packagesList,\n unfilteredPackagesList: action.unfilteredPackagesList,\n packagesListFiltersUsed: action.filters,\n pagination: {\n ...state.pagination,\n page: areFilterSame && isCurrentPageValid ? currentPage : 1,\n dataSize: newDataSize,\n },\n selectedIds: filterIdsInList(\n state.selectedIds,\n action.unfilteredPackagesList\n ),\n });\n};\n\nconst onAdminTestingPackagesFetchFail = (state, action) => {\n return updateObject(state, {\n error: action.error,\n loading: false,\n packagesListLoading: false,\n selectedIds: [],\n });\n};\n\nconst onAdminTestingPackagesFilterUpdate = (state, action) => {\n return updateObject(state, {\n filters: {\n ...state.filters,\n [action.key]: action.value,\n },\n });\n};\n\nconst onAdminTestingPackagesSortingUpdate = (state, action) => {\n return updateObject(state, {\n sorting: action.sorting,\n });\n};\n\nconst onAdminTestingPackagesPaginationUpdate = (state, action) => {\n return updateObject(state, {\n pagination: action.pagination,\n });\n};\n\nconst onAdminTestingPackagesFilterClear = (state, action) => {\n return updateObject(state, {\n filters: {\n ...initialFilters,\n },\n });\n};\n\nconst onAdminTestingUpdateSelected = (state, action) => {\n return updateObject(state, {\n selectedIds: action.selected,\n });\n};\n\nconst updatePackageListFieldValues = (packagesList, ids, field, value) => {\n for (const pkg of packagesList) {\n if (ids.includes(pkg.id)) {\n pkg[field] = value;\n }\n }\n\n return packagesList;\n};\n\nconst onAdminSendToTestingSuccess = (state, action) => {\n const idsToRemove = action.ids;\n if (state.packagesList) {\n let newPackagesList = [...state.packagesList];\n\n return updateObject(state, {\n packagesList: updatePackageListFieldValues(\n newPackagesList,\n idsToRemove,\n \"last_test\",\n testStatuses.NA\n ),\n });\n } else {\n return state;\n }\n};\n\nconst onAdminTestingSendToRetestingStart = (state) => {\n return updateObject(state, {\n sendToRetestingLoading: true,\n });\n};\n\nconst onAdminTestingSendToRetestingSuccess = (state, action) => {\n const idsToRemove = action.ids;\n let newPackagesList = [...state.packagesList];\n\n return updateObject(state, {\n sendToRetestingLoading: false,\n packagesList: updatePackageListFieldValues(\n newPackagesList,\n idsToRemove,\n \"last_test\",\n testStatuses.NA\n ),\n selectedIds: state.selectedIds.filter(\n (id) => !idsToRemove.includes(id)\n ),\n });\n};\n\nconst onAdminTestingSendToRetestingFail = (state, action) => {\n return updateObject(state, {\n sendToRetestingLoading: false,\n });\n};\n\nconst onAdminTestingConfirmPackageTestStart = (state) => {\n return updateObject(state, {\n confirmPackageTestingLoading: true,\n });\n};\n\nconst onAdminTestingConfirmPackageTestSuccess = (state, action) => {\n const idsToRemove = action.ids;\n\n return updateObject(state, {\n confirmPackageTestingLoading: false,\n selectedIds: state.selectedIds.filter(\n (id) => !idsToRemove.includes(id)\n ),\n });\n};\n\nconst onAdminTestingConfirmPackageTestFail = (state, action) => {\n return updateObject(state, {\n confirmPackageTestingLoading: false,\n });\n};\n\nconst onAdminTestingActivatePackagesStart = (state) => {\n return updateObject(state, {\n activatePackagesLoading: true,\n });\n};\n\nconst onAdminTestingActivatePackagesSuccess = (state, action) => {\n const idsToRemove = action.ids;\n\n let newPackagesList = null;\n let newDataSize = 0;\n if (state.packagesList) {\n newPackagesList = state.packagesList.filter(\n (pkg) => !idsToRemove.includes(pkg.id)\n );\n newDataSize = newPackagesList.length;\n }\n\n const currentPage = state.pagination.page;\n const sizePerPage = state.pagination.sizePerPage;\n const isCurrentPageValid =\n currentPage <= getPageCount(newDataSize, sizePerPage);\n\n return updateObject(state, {\n activatePackagesLoading: false,\n packagesList: newPackagesList,\n selectedIds: state.selectedIds.filter(\n (id) => !idsToRemove.includes(id)\n ),\n pagination: {\n ...state.pagination,\n page: isCurrentPageValid ? currentPage : 1,\n dataSize: newDataSize,\n },\n });\n};\n\nconst onAdminTestingActivatePackagesFail = (state, action) => {\n return updateObject(state, {\n activatePackagesLoading: false,\n });\n};\n\nexport const testing = (state = initialState, action) => {\n switch (action.type) {\n // SEARCH\n case actionTypes.ADMIN_TESTING_PACKAGES_FETCH_START:\n return onAdminTestingPackagesFetchStart(state, action);\n case actionTypes.ADMIN_TESTING_PACKAGES_FETCH_SUCCESS:\n return onAdminTestingPackagesFetchSuccess(state, action);\n case actionTypes.ADMIN_TESTING_PACKAGES_FETCH_FAIL:\n return onAdminTestingPackagesFetchFail(state, action);\n // FILTER\n case actionTypes.ADMIN_TESTING_PACKAGES_FILTER_UPDATE:\n return onAdminTestingPackagesFilterUpdate(state, action);\n case actionTypes.ADMIN_TESTING_PACKAGES_FILTER_CLEAR:\n return onAdminTestingPackagesFilterClear(state, action);\n // SORT\n case actionTypes.ADMIN_TESTING_PACKAGES_SORTING_UPDATE:\n return onAdminTestingPackagesSortingUpdate(state, action);\n // PAGINATION\n case actionTypes.ADMIN_TESTING_PACKAGES_PAGINATION_UPDATE:\n return onAdminTestingPackagesPaginationUpdate(state, action);\n // UPDATE SELECTED\n case actionTypes.ADMIN_TESTING_UPDATE_SELECTED:\n return onAdminTestingUpdateSelected(state, action);\n // SEND TO TESTING (send to retesting in package details and go back to testing list)\n case actionTypes.ADMIN_SEND_TO_TESTING_SUCCESS:\n return onAdminSendToTestingSuccess(state, action);\n // SEND TO RETESTING\n case actionTypes.ADMIN_TESTING_SEND_TO_RETESTING_START:\n return onAdminTestingSendToRetestingStart(state, action);\n case actionTypes.ADMIN_TESTING_SEND_TO_RETESTING_SUCCESS:\n return onAdminTestingSendToRetestingSuccess(state, action);\n case actionTypes.ADMIN_TESTING_SEND_TO_RETESTING_FAIL:\n return onAdminTestingSendToRetestingFail(state, action);\n // CONFIRM PACKAGE TESTS\n case actionTypes.ADMIN_TESTING_CONFIRM_PACKAGE_TEST_START:\n return onAdminTestingConfirmPackageTestStart(state, action);\n case actionTypes.ADMIN_TESTING_CONFIRM_PACKAGE_TEST_SUCCESS:\n return onAdminTestingConfirmPackageTestSuccess(state, action);\n case actionTypes.ADMIN_TESTING_CONFIRM_PACKAGE_TEST_FAIL:\n return onAdminTestingConfirmPackageTestFail(state, action);\n // ACTIVATE PACKAGES\n case actionTypes.ADMIN_TESTING_ACTIVATE_PACKAGES_START:\n return onAdminTestingActivatePackagesStart(state, action);\n case actionTypes.ADMIN_TESTING_ACTIVATE_PACKAGES_SUCCESS:\n return onAdminTestingActivatePackagesSuccess(state, action);\n case actionTypes.ADMIN_TESTING_ACTIVATE_PACKAGES_FAIL:\n return onAdminTestingActivatePackagesFail(state, action);\n\n case actionTypes.GET_AUTH_USER:\n return resetUserSpecificData(state, action);\n default:\n return state;\n }\n};\n","import * as actionTypes from \"redux/actions/actionTypes\";\nimport _ from \"lodash\";\nimport { updateObject } from \"redux/utility\";\n\nimport { getPageCount } from \"util/General\";\n\nconst initialFilters = {\n ean: \"\",\n name: \"\",\n client: null,\n category: null,\n type: null,\n conditions: [],\n testResult: null,\n //startDate: null,\n //endDate: null,\n};\n\nconst initialSorting = {\n dataField: \"date\",\n order: \"desc\",\n};\n\nconst initialPagination = {\n page: 1,\n sizePerPage: 25,\n dataSize: 0,\n sizePerPageList: [\n { value: 5, text: \"5\" },\n { value: 10, text: \"10\" },\n { value: 25, text: \"25\" },\n { value: 50, text: \"50\" },\n { value: 0, text: \"Kõik\" },\n ],\n};\n\nconst initialState = {\n filters: initialFilters,\n sorting: initialSorting,\n pagination: initialPagination,\n\n unfilteredPackagesList: null,\n packagesList: null,\n packagesListFiltersUsed: initialFilters,\n packagesListLoading: false,\n loading: false,\n error: null,\n selectedIds: [],\n confirmPackageRetestingLoading: false,\n};\n\nconst filterIdsInList = (ids, packages) => {\n const packageIds = packages.map((pkg) => pkg.id);\n return ids.filter((id) => packageIds.includes(id));\n};\n\nconst resetUserSpecificData = () => {\n return initialState;\n};\n\nconst onAdminRetestingPackagesFetchStart = (state) => {\n return updateObject(state, {\n loading: true,\n packagesListLoading: true,\n error: null,\n packagesList: null,\n });\n};\n\nconst onAdminRetestingPackagesFetchSuccess = (state, action) => {\n const areFilterSame = _.isEqual(\n state.packagesListFiltersUsed,\n action.filters\n );\n\n const newDataSize = action.packagesList.length;\n const currentPage = state.pagination.page;\n const sizePerPage = state.pagination.sizePerPage;\n const isCurrentPageValid =\n currentPage <= getPageCount(newDataSize, sizePerPage);\n\n return updateObject(state, {\n loading: false,\n packagesListLoading: false,\n error: null,\n packagesList: action.packagesList,\n unfilteredPackagesList: action.unfilteredPackagesList,\n packagesListFiltersUsed: action.filters,\n pagination: {\n ...state.pagination,\n page: areFilterSame && isCurrentPageValid ? currentPage : 1,\n dataSize: newDataSize,\n },\n selectedIds: filterIdsInList(\n state.selectedIds,\n action.unfilteredPackagesList\n ),\n });\n};\n\nconst onAdminRetestingPackagesFetchFail = (state, action) => {\n return updateObject(state, {\n error: action.error,\n loading: false,\n packagesListLoading: false,\n selectedIds: [],\n });\n};\n\nconst onAdminRetestingPackagesFilterUpdate = (state, action) => {\n return updateObject(state, {\n filters: {\n ...state.filters,\n [action.key]: action.value,\n },\n });\n};\n\nconst onAdminRetestingPackagesSortingUpdate = (state, action) => {\n return updateObject(state, {\n sorting: action.sorting,\n });\n};\n\nconst onAdminRetestingPackagesPaginationUpdate = (state, action) => {\n return updateObject(state, {\n pagination: action.pagination,\n });\n};\n\nconst onAdminRetestingPackagesFilterClear = (state, action) => {\n return updateObject(state, {\n filters: {\n ...initialFilters,\n },\n });\n};\n\nconst onAdminRetestingConfirmPackageTestStart = (state) => {\n return updateObject(state, {\n confirmPackageRetestingLoading: true,\n });\n};\n\nconst onAdminRetestingConfirmPackageTestSuccess = (state, action) => {\n const idsToRemove = action.ids;\n\n return updateObject(state, {\n confirmPackageRetestingLoading: false,\n selectedIds: state.selectedIds.filter(\n (id) => !idsToRemove.includes(id)\n ),\n });\n};\n\nconst onAdminRetestingConfirmPackageTestFail = (state, action) => {\n return updateObject(state, {\n confirmPackageRetestingLoading: false,\n });\n};\n\nconst onAdminRetestingUpdateSelected = (state, action) => {\n return updateObject(state, {\n selectedIds: action.selected,\n });\n};\n\nexport const retesting = (state = initialState, action) => {\n switch (action.type) {\n // CONFIRM PACKAGE TESTS\n case actionTypes.ADMIN_RETESTING_CONFIRM_PACKAGE_TEST_START:\n return onAdminRetestingConfirmPackageTestStart(state, action);\n case actionTypes.ADMIN_RETESTING_CONFIRM_PACKAGE_TEST_SUCCESS:\n return onAdminRetestingConfirmPackageTestSuccess(state, action);\n case actionTypes.ADMIN_RETESTING_CONFIRM_PACKAGE_TEST_FAIL:\n return onAdminRetestingConfirmPackageTestFail(state, action);\n // UPDATE SELECTED\n case actionTypes.ADMIN_RETESTING_UPDATE_SELECTED:\n return onAdminRetestingUpdateSelected(state, action);\n // SEARCH\n case actionTypes.ADMIN_RETESTING_PACKAGES_FETCH_START:\n return onAdminRetestingPackagesFetchStart(state, action);\n case actionTypes.ADMIN_RETESTING_PACKAGES_FETCH_SUCCESS:\n return onAdminRetestingPackagesFetchSuccess(state, action);\n case actionTypes.ADMIN_RETESTING_PACKAGES_FETCH_FAIL:\n return onAdminRetestingPackagesFetchFail(state, action);\n // FILTER\n case actionTypes.ADMIN_RETESTING_PACKAGES_FILTER_UPDATE:\n return onAdminRetestingPackagesFilterUpdate(state, action);\n case actionTypes.ADMIN_RETESTING_PACKAGES_FILTER_CLEAR:\n return onAdminRetestingPackagesFilterClear(state, action);\n // SORT\n case actionTypes.ADMIN_RETESTING_PACKAGES_SORTING_UPDATE:\n return onAdminRetestingPackagesSortingUpdate(state, action);\n // PAGINATION\n case actionTypes.ADMIN_RETESTING_PACKAGES_PAGINATION_UPDATE:\n return onAdminRetestingPackagesPaginationUpdate(state, action);\n case actionTypes.GET_AUTH_USER:\n return resetUserSpecificData(state, action);\n default:\n return state;\n }\n};\n","import * as actionTypes from \"redux/actions/actionTypes\";\nimport { updateObject } from \"redux/utility\";\n\nconst initialFilters = {\n ean: \"\",\n eanType: null,\n name: \"\",\n client: null,\n category: null,\n type: null,\n volume: null,\n weight: null,\n status: null,\n testResult: null,\n startDate: null,\n endDate: null,\n};\n\nconst initialSorting = {\n dataField: \"package_id\",\n order: \"desc\",\n};\n\nconst getSizePerPageList = (dataSize) => {\n return [\n { value: 10, text: \"10\" },\n { value: 25, text: \"25\" },\n { value: 50, text: \"50\" },\n { value: 0, text: \"Kõik\" },\n ];\n};\n\nconst initialPagination = {\n page: 1,\n sizePerPage: 25,\n dataSize: 0,\n sizePerPageList: getSizePerPageList(0),\n};\n\nconst initialState = {\n filters: initialFilters,\n sorting: initialSorting,\n pagination: initialPagination,\n\n packagesList: [],\n packagesListFiltersUsed: initialFilters,\n packagesListLoading: false,\n};\n\nconst resetUserSpecificData = (state, action) => {\n return initialState;\n};\n\nconst onAdminAllPackagesFetchStart = (state) => {\n return updateObject(state, {\n packagesListLoading: true,\n packagesList: [],\n });\n};\n\nconst onAdminAllPackagesFetchSuccess = (state, action, filters) => {\n return updateObject(state, {\n packagesListLoading: false,\n packagesList: action.packagesList,\n pagination: {\n ...state.pagination,\n dataSize:\n action.dataSize /*sizePerPageList: getSizePerPageList(action.dataSize)*/,\n },\n packagesListFiltersUsed: action.filters,\n });\n};\n\nconst onAdminAllPackagesFetchFail = (state, action) => {\n return updateObject(state, {\n loading: false,\n packagesList: [],\n packagesListLoading: false,\n });\n};\n\nconst onAdminAllPackagesFilterUpdate = (state, action) => {\n return updateObject(state, {\n filters: {\n ...state.filters,\n [action.key]: action.value,\n },\n pagination: {\n ...state.pagination,\n page: 1,\n },\n });\n};\n\nconst onAdminAllPackagesFilterClear = (state, action) => {\n return updateObject(state, {\n filters: {\n ...initialFilters,\n },\n pagination: {\n ...state.pagination,\n page: 1,\n },\n });\n};\n\nconst onAdminAllPackagesSortingUpdate = (state, action) => {\n return updateObject(state, {\n sorting: action.sorting,\n });\n};\n\nconst onAdminAllPackagesPaginationUpdate = (state, action) => {\n return updateObject(state, {\n pagination: action.pagination,\n });\n};\n\nexport const allPackages = (state = initialState, action) => {\n switch (action.type) {\n // SEARCH\n case actionTypes.ADMIN_ALL_PACKAGES_FETCH_START:\n return onAdminAllPackagesFetchStart(state, action);\n case actionTypes.ADMIN_ALL_PACKAGES_FETCH_SUCCESS:\n return onAdminAllPackagesFetchSuccess(state, action);\n case actionTypes.ADMIN_ALL_PACKAGES_FETCH_FAIL:\n return onAdminAllPackagesFetchFail(state, action);\n // FILTER\n case actionTypes.ADMIN_ALL_PACKAGES_FILTER_UPDATE:\n return onAdminAllPackagesFilterUpdate(state, action);\n case actionTypes.ADMIN_ALL_PACKAGES_FILTER_CLEAR:\n return onAdminAllPackagesFilterClear(state, action);\n // SORT\n case actionTypes.ADMIN_ALL_PACKAGES_SORTING_UPDATE:\n return onAdminAllPackagesSortingUpdate(state, action);\n // PAGINATION\n case actionTypes.ADMIN_ALL_PACKAGES_PAGINATION_UPDATE:\n return onAdminAllPackagesPaginationUpdate(state, action);\n\n // GENERIC\n case actionTypes.GET_AUTH_USER:\n return resetUserSpecificData(state, action);\n default:\n return state;\n }\n};\n","import * as actionTypes from \"redux/actions/actionTypes\";\nimport { updateObject } from \"redux/utility\";\nimport moment from \"moment\";\n\nconst initialFilters = {\n // fromDate: moment(\"2019-12-31T22:00:00.000Z\").toDate(),\n fromDate: moment().subtract(6, \"months\").toDate(),\n toDate: moment().toDate(),\n client: null,\n daysOverdueMin: \"\",\n daysOverdueMax: \"\",\n};\n\nconst initialState = {\n debtsList: null,\n filters: initialFilters,\n loading: false,\n error: null,\n};\n\nconst onAdminDebtsFetchStart = (state) => {\n return updateObject(state, {\n loading: true,\n error: null,\n debtsList: [],\n });\n};\n\nconst onAdminDebtsFetchSuccess = (state, action) => {\n return updateObject(state, {\n loading: false,\n error: null,\n debtsList: action.debts,\n });\n};\n\nconst onAdminDebtsFetchFail = (state, action) => {\n return updateObject(state, {\n loading: false,\n error: action.error,\n debtsList: null,\n });\n};\n\nconst onAdminDebtsFilterUpdate = (state, action) => {\n return updateObject(state, {\n filters: {\n ...state.filters,\n [action.key]: action.value,\n },\n });\n};\n\nconst onAdminDebtsFilterClear = (state, action) => {\n return updateObject(state, {\n filters: {\n ...initialFilters,\n },\n });\n};\n\nexport const debts = (state = initialState, action) => {\n switch (action.type) {\n case actionTypes.ADMIN_DEBTS_FETCH_START:\n return onAdminDebtsFetchStart(state, action);\n case actionTypes.ADMIN_DEBTS_FETCH_SUCCESS:\n return onAdminDebtsFetchSuccess(state, action);\n case actionTypes.ADMIN_DEBTS_FETCH_FAIL:\n return onAdminDebtsFetchFail(state, action);\n case actionTypes.ADMIN_DEBTS_FILTER_UPDATE:\n return onAdminDebtsFilterUpdate(state, action);\n case actionTypes.ADMIN_DEBTS_FILTER_CLEAR:\n return onAdminDebtsFilterClear(state, action);\n\n default:\n return state;\n }\n};\n","import * as actionTypes from \"redux/actions/actionTypes\";\nimport { updateObject } from \"redux/utility\";\nimport { getPageCount } from \"util/General\";\n\nconst filterClient = (client, filters) => {\n if (filters.client && !client.name.includes(filters.client.name)) {\n return false;\n }\n if (\n filters.contractStatus &&\n filters.contractStatus.label &&\n client.contract_status.label.toLowerCase() !==\n filters.contractStatus.label.toLowerCase()\n ) {\n return false;\n }\n return true;\n};\n\nconst updateClientsFilteredData = ({\n clients,\n clientsFilters,\n clientsFilteredPagination,\n}) => {\n if (!clients) {\n return {\n clientsFiltered: null,\n clientsFilteredPagination: {\n ...clientsFilteredPagination,\n dataSize: 0,\n page: 1,\n },\n };\n }\n\n const clientsFiltered = clients.filter((client) =>\n filterClient(client, clientsFilters)\n );\n\n const newDataSize = clientsFiltered.length;\n const currentPage = clientsFilteredPagination.page;\n const sizePerPage = clientsFilteredPagination.sizePerPage;\n const isCurrentPageValid =\n currentPage <= getPageCount(newDataSize, sizePerPage);\n\n return {\n clientsFiltered: clientsFiltered,\n clientsFilteredPagination: {\n ...clientsFilteredPagination,\n page: isCurrentPageValid ? currentPage : 1,\n dataSize: newDataSize,\n },\n };\n};\n\nconst initialPagination = {\n page: 1,\n sizePerPage: 25,\n dataSize: 0,\n sizePerPageList: [\n { value: 5, text: \"5\" },\n { value: 10, text: \"10\" },\n { value: 25, text: \"25\" },\n { value: 50, text: \"50\" },\n { value: 0, text: \"Kõik\" },\n ],\n};\n\nconst initialFilters = {\n client: null,\n contractStatus: null,\n};\n\nconst initialSorting = {\n dataField: \"registered_at\",\n order: \"desc\",\n};\n\nconst initialState = {\n clients: null,\n partners: [],\n epp: [],\n clientsFilteredPagination: initialPagination,\n clientsFilters: initialFilters,\n clientsSorting: initialSorting,\n clientsFiltered: null,\n loading: true,\n loadingPartners: true,\n loadingEpp: true,\n error: null,\n};\n\nconst onAdminClientsFetchStart = (state) => {\n return updateObject(state, {\n loading: true,\n error: null,\n clients: null,\n ...updateClientsFilteredData(state),\n });\n};\n\nconst onAdminClientsFetchSuccess = (state, action) => {\n return updateObject(state, {\n loading: false,\n error: null,\n clients: action.clients,\n ...updateClientsFilteredData({ ...state, clients: action.clients }),\n });\n};\n\nconst onAdminClientsFetchFail = (state, action) => {\n return updateObject(state, {\n loading: false,\n error: action.error,\n clients: null,\n ...updateClientsFilteredData(state),\n });\n};\n\nconst onAdminClientsPaginationUpdate = (state, action) => {\n return updateObject(state, {\n clientsFilteredPagination: action.pagination,\n });\n};\n\nconst onAdminClientsFilterUpdate = (state, action) => {\n const clientsFilters = {\n ...state.clientsFilters,\n [action.key]: action.value,\n };\n\n return updateObject(state, {\n clientsFilters,\n ...updateClientsFilteredData({ ...state, clientsFilters }),\n });\n};\n\nconst onAdminClientsSortingUpdate = (state, action) => {\n return updateObject(state, {\n clientsSorting: action.sorting,\n });\n};\n\nconst onAdminPartnersFetchStart = (state) => {\n return updateObject(state, {\n loadingPartners: true,\n error: null,\n partners: [],\n });\n};\n\nconst onAdminPartnersFetchSuccess = (state, action) => {\n return updateObject(state, {\n loadingPartners: false,\n error: null,\n partners: action.partners,\n });\n};\n\nconst onAdminPartnersFetchFail = (state, action) => {\n return updateObject(state, {\n loadingPartners: false,\n error: action.error,\n partners: [],\n });\n};\n\nconst onAdminPartnersUserUpdate = (state, action) => {\n const updatedUser = action.user;\n const updatedPartners = state.partners.map((user) =>\n user.id === updatedUser.id ? updatedUser : user\n );\n return updateObject(state, {\n partners: updatedPartners,\n });\n};\n\nconst onAdminEppUsersFetchStart = (state) => {\n return updateObject(state, {\n loadingEppUsers: true,\n error: null,\n epp: [],\n });\n};\n\nconst onAdminEppUsersFetchSuccess = (state, action) => {\n return updateObject(state, {\n loadingPartners: false,\n error: null,\n epp: action.eppUsers,\n });\n};\n\nconst onAdminEppUsersFetchFail = (state, action) => {\n return updateObject(state, {\n loadingEppUsers: false,\n error: action.error,\n epp: [],\n });\n};\n\nconst onAdminEppUserUpdate = (state, action) => {\n const updatedUser = action.user;\n\n return updateObject(state, {\n epp: state.epp.map((user) =>\n user.id === updatedUser.id ? updatedUser : user\n ),\n });\n};\n\nexport const users = (state = initialState, action) => {\n switch (action.type) {\n case actionTypes.ADMIN_CLIENTS_FETCH_START:\n return onAdminClientsFetchStart(state, action);\n case actionTypes.ADMIN_CLIENTS_FETCH_SUCCESS:\n return onAdminClientsFetchSuccess(state, action);\n case actionTypes.ADMIN_CLIENTS_FETCH_FAIL:\n return onAdminClientsFetchFail(state, action);\n case actionTypes.ADMIN_CLIENTS_PAGINATION_UPDATE:\n return onAdminClientsPaginationUpdate(state, action);\n case actionTypes.ADMIN_CLIENTS_SORTING_UPDATE:\n return onAdminClientsSortingUpdate(state, action);\n case actionTypes.ADMIN_CLIENTS_FILTER_UPDATE:\n return onAdminClientsFilterUpdate(state, action);\n\n case actionTypes.ADMIN_PARTNERS_FETCH_START:\n return onAdminPartnersFetchStart(state, action);\n case actionTypes.ADMIN_PARTNERS_FETCH_SUCCESS:\n return onAdminPartnersFetchSuccess(state, action);\n case actionTypes.ADMIN_PARTNERS_FETCH_FAIL:\n return onAdminPartnersFetchFail(state, action);\n case actionTypes.ADMIN_PARTNER_USER_UPDATE:\n return onAdminPartnersUserUpdate(state, action);\n\n case actionTypes.ADMIN_EPP_USERS_FETCH_START:\n return onAdminEppUsersFetchStart(state, action);\n case actionTypes.ADMIN_EPP_USERS_FETCH_SUCCESS:\n return onAdminEppUsersFetchSuccess(state, action);\n case actionTypes.ADMIN_EPP_USERS_FETCH_FAIL:\n return onAdminEppUsersFetchFail(state, action);\n case actionTypes.ADMIN_EPP_USER_UPDATE:\n return onAdminEppUserUpdate(state, action);\n\n default:\n return state;\n }\n};\n","import * as actionTypes from \"redux/actions/actionTypes\";\nimport { updateObject } from \"redux/utility\";\nimport moment from \"moment\";\n\nconst initialFilters = {\n client: null,\n startDate: moment().subtract(12, \"months\").toDate(),\n endDate: new Date(),\n};\n\nconst initialState = {\n filters: initialFilters,\n\n unfilteredSalesReportsList: null,\n salesReportsList: null,\n salesReportsListFiltersUsed: initialFilters,\n salesReportsListLoading: false,\n loading: false,\n error: null,\n};\n\nconst resetUserSpecificData = (state, action) => {\n return initialState;\n};\n\nconst onAdminSalesReportsFetchStart = (state) => {\n return updateObject(state, {\n loading: true,\n salesReportsListLoading: true,\n error: null,\n salesReportsList: null,\n });\n};\n\nconst onAdminSalesReportsFetchSuccess = (state, action) => {\n return updateObject(state, {\n loading: false,\n salesReportsListLoading: false,\n error: null,\n salesReportsList: action.salesReportsList,\n unfilteredSalesReportsList: action.unfilteredSalesReportsList,\n salesReportsListFiltersUsed: action.filters,\n });\n};\n\nconst onAdminSalesReportsFetchFail = (state, action) => {\n return updateObject(state, {\n error: action.error,\n loading: false,\n salesReportsListLoading: false,\n });\n};\n\nconst onAdminSalesReportsFilterUpdate = (state, action) => {\n return updateObject(state, {\n filters: {\n ...state.filters,\n [action.key]: action.value,\n },\n });\n};\nconst onAdminSalesReportsFilterClear = (state, action) => {\n return updateObject(state, {\n filters: {\n ...initialFilters,\n },\n });\n};\n\nexport const salesReports = (state = initialState, action) => {\n switch (action.type) {\n // SEARCH\n case actionTypes.ADMIN_SALES_REPORTS_FETCH_START:\n return onAdminSalesReportsFetchStart(state, action);\n case actionTypes.ADMIN_SALES_REPORTS_FETCH_SUCCESS:\n return onAdminSalesReportsFetchSuccess(state, action);\n case actionTypes.ADMIN_SALES_REPORTS_FETCH_FAIL:\n return onAdminSalesReportsFetchFail(state, action);\n // FILTER\n case actionTypes.ADMIN_SALES_REPORTS_FILTER_UPDATE:\n return onAdminSalesReportsFilterUpdate(state, action);\n case actionTypes.ADMIN_SALES_REPORTS_FILTER_CLEAR:\n return onAdminSalesReportsFilterClear(state, action);\n\n case actionTypes.GET_AUTH_USER:\n return resetUserSpecificData(state, action);\n default:\n return state;\n }\n};\n","import * as actionTypes from \"redux/actions/actionTypes\";\nimport { updateObject } from \"redux/utility\";\nimport moment from \"moment\";\n\nconst initialFilters = {\n client: null,\n startDate: moment().subtract(6, \"months\").toDate(),\n endDate: new Date(),\n};\n\nconst initialState = {\n filters: initialFilters,\n\n unfilteredSalesReportsList: null,\n salesReportsList: null,\n salesReportsListFiltersUsed: initialFilters,\n salesReportsListLoading: false,\n loading: false,\n error: null,\n};\n\nconst resetUserSpecificData = (state, action) => {\n return initialState;\n};\n\nconst onFetchStart = (state) => {\n return updateObject(state, {\n loading: true,\n salesReportsListLoading: true,\n error: null,\n salesReportsList: null,\n });\n};\n\nconst onFetchSuccess = (state, action) => {\n return updateObject(state, {\n loading: false,\n salesReportsListLoading: false,\n error: null,\n salesReportsList: action.salesReportsList,\n unfilteredSalesReportsList: action.unfilteredSalesReportsList,\n salesReportsListFiltersUsed: action.filters,\n });\n};\n\nconst onFetchFail = (state, action) => {\n return updateObject(state, {\n error: action.error,\n loading: false,\n salesReportsListLoading: false,\n });\n};\n\nconst onFilterUpdate = (state, action) => {\n return updateObject(state, {\n filters: {\n ...state.filters,\n [action.key]: action.value,\n },\n });\n};\nconst onFilterClear = (state, action) => {\n return updateObject(state, {\n filters: {\n ...initialFilters,\n },\n });\n};\n\nexport const unsubmittedSalesReports = (state = initialState, action) => {\n switch (action.type) {\n // SEARCH\n case actionTypes.ADMIN_UNSUBMITTED_SALES_REPORTS_FETCH_START:\n return onFetchStart(state, action);\n case actionTypes.ADMIN_UNSUBMITTED_SALES_REPORTS_FETCH_SUCCESS:\n return onFetchSuccess(state, action);\n case actionTypes.ADMIN_UNSUBMITTED_SALES_REPORTS_FETCH_FAIL:\n return onFetchFail(state, action);\n // FILTER\n case actionTypes.ADMIN_UNSUBMITTED_SALES_REPORTS_FILTER_UPDATE:\n return onFilterUpdate(state, action);\n case actionTypes.ADMIN_UNSUBMITTED_SALES_REPORTS_FILTER_CLEAR:\n return onFilterClear(state, action);\n\n case actionTypes.GET_AUTH_USER:\n return resetUserSpecificData(state, action);\n default:\n return state;\n }\n};\n","import * as actionTypes from \"redux/actions/actionTypes\";\nimport { updateObject } from \"redux/utility\";\nimport moment from \"moment\";\n\nconst initialFilters = {\n client: null,\n startDate: moment().subtract(6, \"months\").toDate(),\n endDate: new Date(),\n};\n\nconst initialState = {\n filters: initialFilters,\n\n unfilteredSalesReportsList: null,\n salesReportsList: null,\n salesReportsListFiltersUsed: initialFilters,\n salesReportsListLoading: false,\n loading: false,\n error: null,\n};\n\nconst resetUserSpecificData = (state, action) => {\n return initialState;\n};\n\nconst onFetchStart = (state) => {\n return updateObject(state, {\n loading: true,\n salesReportsListLoading: true,\n error: null,\n salesReportsList: null,\n });\n};\n\nconst onFetchSuccess = (state, action) => {\n return updateObject(state, {\n loading: false,\n salesReportsListLoading: false,\n error: null,\n salesReportsList: action.salesReportsList,\n unfilteredSalesReportsList: action.unfilteredSalesReportsList,\n salesReportsListFiltersUsed: action.filters,\n });\n};\n\nconst onFetchFail = (state, action) => {\n return updateObject(state, {\n error: action.error,\n loading: false,\n salesReportsListLoading: false,\n });\n};\n\nconst onFilterUpdate = (state, action) => {\n return updateObject(state, {\n filters: {\n ...state.filters,\n [action.key]: action.value,\n },\n });\n};\nconst onFilterClear = (state, action) => {\n return updateObject(state, {\n filters: {\n ...initialFilters,\n },\n });\n};\n\nexport const unconfirmedSalesReports = (state = initialState, action) => {\n switch (action.type) {\n // SEARCH\n case actionTypes.ADMIN_UNCONFIRMED_SALES_REPORTS_FETCH_START:\n return onFetchStart(state, action);\n case actionTypes.ADMIN_UNCONFIRMED_SALES_REPORTS_FETCH_SUCCESS:\n return onFetchSuccess(state, action);\n case actionTypes.ADMIN_UNCONFIRMED_SALES_REPORTS_FETCH_FAIL:\n return onFetchFail(state, action);\n // FILTER\n case actionTypes.ADMIN_UNCONFIRMED_SALES_REPORTS_FILTER_UPDATE:\n return onFilterUpdate(state, action);\n case actionTypes.ADMIN_UNCONFIRMED_SALES_REPORTS_FILTER_CLEAR:\n return onFilterClear(state, action);\n\n case actionTypes.GET_AUTH_USER:\n return resetUserSpecificData(state, action);\n default:\n return state;\n }\n};\n","import * as actionTypes from \"redux/actions/actionTypes\";\nimport { updateObject } from \"redux/utility\";\n\nconst initialState = {\n categories: [],\n types: [],\n colors: [],\n volumes: [],\n prices: [],\n processFees: [],\n};\n\nconst onAdminCategoriesFetchStart = (state) => {\n return updateObject(state, {\n loading: true,\n error: null,\n categories: [],\n });\n};\n\nconst onAdminCategoriesFetchSuccess = (state, action) => {\n return updateObject(state, {\n loading: false,\n error: null,\n categories: action.categories,\n });\n};\n\nconst onAdminCategoriesFetchFail = (state, action) => {\n return updateObject(state, {\n loading: false,\n error: action.error,\n categories: [],\n });\n};\n\nconst onAdminTypesFetchStart = (state) => {\n return updateObject(state, {\n loading: true,\n error: null,\n types: [],\n });\n};\n\nconst onAdminTypesFetchSuccess = (state, action) => {\n return updateObject(state, {\n loading: false,\n error: null,\n types: action.types,\n });\n};\n\nconst onAdminTypesFetchFail = (state, action) => {\n return updateObject(state, {\n loading: false,\n error: action.error,\n types: [],\n });\n};\n\nconst onAdminColorsFetchStart = (state) => {\n return updateObject(state, {\n loading: true,\n error: null,\n colors: [],\n });\n};\n\nconst onAdminColorsFetchSuccess = (state, action) => {\n return updateObject(state, {\n loading: false,\n error: null,\n colors: action.colors,\n });\n};\n\nconst onAdminColorsFetchFail = (state, action) => {\n return updateObject(state, {\n loading: false,\n error: action.error,\n colors: [],\n });\n};\n\nconst onAdminVolumesFetchStart = (state) => {\n return updateObject(state, {\n loading: true,\n error: null,\n volumes: [],\n });\n};\n\nconst onAdminVolumesFetchSuccess = (state, action) => {\n return updateObject(state, {\n loading: false,\n error: null,\n volumes: action.volumes,\n });\n};\n\nconst onAdminVolumesFetchFail = (state, action) => {\n return updateObject(state, {\n loading: false,\n error: action.error,\n volumes: [],\n });\n};\n\nconst onAdminProcessFeesFetchStart = (state) => {\n return updateObject(state, {\n loading: true,\n error: null,\n processFees: [],\n });\n};\n\nconst onAdminProcessFeesFetchSuccess = (state, action) => {\n return updateObject(state, {\n loading: false,\n error: null,\n processFees: action.processFees,\n });\n};\n\nconst onAdminProcessFeesFetchFail = (state, action) => {\n return updateObject(state, {\n loading: false,\n error: action.error,\n processFees: [],\n });\n};\n\nexport const settings = (state = initialState, action) => {\n switch (action.type) {\n // Categories\n case actionTypes.ADMIN_CATEGORIES_FETCH_START:\n return onAdminCategoriesFetchStart(state, action);\n case actionTypes.ADMIN_CATEGORIES_FETCH_SUCCESS:\n return onAdminCategoriesFetchSuccess(state, action);\n case actionTypes.ADMIN_CATEGORIES_FETCH_FAIL:\n return onAdminCategoriesFetchFail(state, action);\n\n // Types\n case actionTypes.ADMIN_TYPES_FETCH_START:\n return onAdminTypesFetchStart(state, action);\n case actionTypes.ADMIN_TYPES_FETCH_SUCCESS:\n return onAdminTypesFetchSuccess(state, action);\n case actionTypes.ADMIN_TYPES_FETCH_FAIL:\n return onAdminTypesFetchFail(state, action);\n\n // Colors\n case actionTypes.ADMIN_COLORS_FETCH_START:\n return onAdminColorsFetchStart(state, action);\n case actionTypes.ADMIN_COLORS_FETCH_SUCCESS:\n return onAdminColorsFetchSuccess(state, action);\n case actionTypes.ADMIN_COLORS_FETCH_FAIL:\n return onAdminColorsFetchFail(state, action);\n\n // Volumes\n case actionTypes.ADMIN_VOLUMES_FETCH_START:\n return onAdminVolumesFetchStart(state, action);\n case actionTypes.ADMIN_VOLUMES_FETCH_SUCCESS:\n return onAdminVolumesFetchSuccess(state, action);\n case actionTypes.ADMIN_VOLUMES_FETCH_FAIL:\n return onAdminVolumesFetchFail(state, action);\n\n // Package fees\n case actionTypes.ADMIN_PROCESS_FEES_FETCH_START:\n return onAdminProcessFeesFetchStart(state, action);\n case actionTypes.ADMIN_PROCESS_FEES_FETCH_SUCCESS:\n return onAdminProcessFeesFetchSuccess(state, action);\n case actionTypes.ADMIN_PROCESS_FEES_FETCH_FAIL:\n return onAdminProcessFeesFetchFail(state, action);\n\n default:\n return state;\n }\n};\n","import { combineReducers } from \"redux\";\nimport { applications } from \"./applications\";\nimport { testing } from \"./testing\";\nimport { retesting } from \"./retesting\";\nimport { allPackages } from \"./allPackages\";\nimport { debts } from \"./debts\";\nimport { users } from \"./users\";\nimport { salesReports } from \"./salesReports\";\nimport { unsubmittedSalesReports } from \"./unsubmittedSalesReports\";\nimport { unconfirmedSalesReports } from \"./unconfirmedSalesReports\";\nimport { settings } from \"./settings\";\n\nconst adminReducer = combineReducers({\n applications,\n testing,\n retesting,\n allPackages,\n salesReports,\n unsubmittedSalesReports,\n unconfirmedSalesReports,\n debts,\n users,\n settings,\n});\n\nexport default adminReducer;\n","import store from \"redux/store\";\n\nconst contractStates = {\n ACTIVE: \"ACTIVE\",\n PENDING: \"PENDING\",\n ACTIVE_OR_PENDING: \"EITHER\",\n NONE: \"NONE\",\n};\n\nexport const userTypes = {\n CLIENT_ADMIN: \"ADMIN\",\n CLIENT_USER: \"KASUTAJA\",\n EPP: \"EPP\",\n PARTNER: \"PARTNER\",\n};\n\nexport function isAuthenticatedWithUser() {\n const state = store.getState();\n\n const user = getUser(state);\n if (!user) {\n return false;\n }\n\n if (!state.auth.token) {\n return false;\n }\n\n return true;\n}\n\nexport function isAuthenticatedWithoutUser() {\n const state = store.getState();\n\n const user = getUser(state);\n\n if (state.auth.token && !user) {\n return true;\n } else {\n return false;\n }\n}\n\nexport function isConnectedToClientWithActiveContract() {\n return isConnectedToClientWithContractState(contractStates.ACTIVE);\n}\n\nexport function isConnectedToClientWithPendingOrActiveContract() {\n return isConnectedToClientWithContractState(\n contractStates.ACTIVE_OR_PENDING\n );\n}\n\nexport function isConnectedToClientWithPendingContract() {\n return isConnectedToClientWithContractState(contractStates.PENDING);\n}\n\nexport function isVerifiedUser() {\n return isVerified();\n}\n\nfunction isVerified() {\n const state = store.getState();\n const user = getUser(state);\n\n if (isClientMode()) {\n return user.user_type && user.user_type.is_verified;\n } else if (isPartnerMode()) {\n return user.partner_user_type && user.partner_user_type.is_verified;\n } else if (isAdminMode()) {\n return true;\n }\n}\n\nfunction isConnectedToClientWithContractState(contractState) {\n const state = store.getState();\n\n if (!isClientMode()) {\n return false;\n }\n\n const user = getUser(state);\n if (!user) {\n return false;\n }\n const clientId = user.active_client_id;\n\n if (!clientId || !user.clients || !user.clients.length) {\n return false;\n }\n\n for (const client of user.clients) {\n if (client.id === clientId && client.active_client) {\n if (contractState === contractStates.ACTIVE) {\n return (\n client.is_valid_contract && !client.is_unapproved_contract\n );\n } else if (contractState === contractStates.PENDING) {\n return (\n client.is_unapproved_contract && !client.is_valid_contract\n );\n } else if (contractState === contractStates.ACTIVE_OR_PENDING) {\n return (\n client.is_unapproved_contract || client.is_valid_contract\n );\n } else if (contractStates === contractStates.NONE) {\n return (\n !client.is_unapproved_contract && !client.is_valid_contract\n );\n }\n }\n }\n\n return false;\n}\n\nexport function isNotConnectedToClientPartnerOrEpp() {\n const state = store.getState();\n\n const user = getUser(state);\n if (!user) {\n return false;\n }\n\n return !user.active_client_id && !user.in_partner_mode && !user.in_epp_mode;\n}\n\nexport function isUserClientAdmin() {\n const state = store.getState();\n\n const user = getUser(state);\n if (!user) {\n return false;\n }\n\n return (\n isClientMode() &&\n user.active_client_id &&\n user.user_type &&\n user.user_type.user_type === \"ADMIN\"\n );\n}\n\nexport function getUser(state = null) {\n state = state || store.getState();\n if (!state || !state.auth || !state.auth.user || !state.auth.user.user) {\n return null;\n }\n return state.auth.user;\n}\n\nexport function isClientMode() {\n const state = store.getState();\n const user = getUser(state);\n if (!user) {\n return false;\n }\n\n return !user.in_partner_mode && !user.in_epp_mode;\n}\n\nexport function isPartnerMode() {\n const state = store.getState();\n\n const user = getUser(state);\n if (!user) {\n return false;\n }\n\n return user.in_partner_mode && !user.in_epp_mode;\n}\n\nexport function isAdminMode() {\n const state = store.getState();\n\n const user = getUser(state);\n if (!user) {\n return false;\n }\n\n return user.in_epp_mode && !user.in_partner_mode;\n}\n\nexport function hasAdminMode() {\n const state = store.getState();\n\n const user = getUser(state);\n if (!user) {\n return false;\n }\n\n return user.epp_user_type !== null;\n}\n","import _ from \"lodash\";\nimport * as actionTypes from \"redux/actions/actionTypes\";\n//import { updateObject } from \"redux/utility\";\nimport { userTypes } from \"util/Access\";\nimport { languageTypes } from \"util/General\";\n\nconst initialState = languageTypes.ET;\n\nconst updateLanguage = (state, newLanguage) => {\n return newLanguage;\n};\n\nconst updateLanguageFromUserObject = (state, user) => {\n if (!user) {\n return state;\n }\n\n const currentUserType = user.active_profile_user_type;\n\n let languageObjectKey = \"user_settings\";\n if (currentUserType === userTypes.EPP) {\n languageObjectKey = \"epp_user_settings\";\n } else if (currentUserType === userTypes.PARTNER) {\n languageObjectKey = \"partner_user_settings\";\n }\n\n let activeLanguage = _.get(\n user,\n `${languageObjectKey}.language`,\n languageTypes.ET\n );\n\n activeLanguage = activeLanguage.toLowerCase();\n\n if (![languageTypes.ET, languageTypes.EN].includes(activeLanguage)) {\n activeLanguage = languageTypes.ET;\n }\n\n return updateLanguage(state, activeLanguage);\n};\n\nexport const language = (state = initialState, action) => {\n switch (action.type) {\n case actionTypes.LANGUAGE_UPDATE:\n return updateLanguage(state, action.language);\n case actionTypes.GET_AUTH_USER:\n return updateLanguageFromUserObject(state, action.user);\n case actionTypes.LOG_OUT:\n return initialState;\n default:\n return state;\n }\n};\n","// Must be added to combineReducer in src/redux/reducers/index.js\n\nimport {updateObject} from 'redux/utility';\nimport * as actionTypes from 'redux/actions/actionTypes';\n\nconst localActionTypes = {\n LIST_FETCH_START: \"RETURN_REPORT_LIST_FETCH_START\",\n LIST_FETCH_SUCCESS: \"RETURN_REPORT_LIST_FETCH_SUCCESS\",\n LIST_FETCH_FAIL: \"RETURN_REPORT_LIST_FETCH_FAIL\",\n LIST_SEARCH_FILTER_UPDATE: \"RETURN_REPORT_LIST_SEARCH_FILTER_UPDATE\",\n LIST_CLEAR_FILTERS: \"RETURN_REPORT_LIST_CLEAR_FILTERS\",\n LIST_SORTING_UPDATE: \"RETURN_REPORT_LIST_SORTING_UPDATE\",\n LIST_PAGINATION_UPDATE: \"RETURN_REPORT_LIST_PAGINATION_UPDATE\",\n LIST_SELECTED_UPDATE: \"RETURN_REPORT_LIST_SELECTED_UPDATE\"\n}\n\nexport const filterConfirmedOptions = [\n {\n value: null, label: \"Kõik\"\n },\n {\n value: true, label: \"Kinnitatud\"\n },\n {\n value: false, label: \"Kinnitamata\"\n },\n]\n\nconst getInitialListFilters = () => {\n return {\n fromDate: null, // use it for period start from\n toDate: null, // use it for period end to\n client: null, // EPP specific\n // EPP specific filter. True shows only confirmed ones, \n // False unconfirmed ones and Null shows all.\n confirmed: filterConfirmedOptions[0], \n }\n};\n\nconst getInitialSorting = () => {\n return {\n dataField: \"period_end\",\n order: \"desc\",\n };\n};\n\nconst getSizePerPageList = (dataSize) => {\n return [\n { value: 10, text: \"10\" },\n { value: 25, text: \"25\" },\n { value: 50, text: \"50\" },\n { value: 100, text: \"100\" },\n ];\n};\n\nconst getInitialPagination = () => {\n return {\n page: 1,\n sizePerPage: 25,\n dataSize: 0,\n sizePerPageList: getSizePerPageList(0)\n }\n};\n\nconst filterIdsInList = (ids, rows) => {\n const listOfIds = rows.map((row) => row.id);\n return ids.filter((id) => listOfIds.includes(id));\n};\n\nconst initialState = {\n list: [],\n listSorting: getInitialSorting(),\n listPagination: getInitialPagination(),\n listFiltersUsed: getInitialListFilters(), // Filters that were used in latest successful request\n listLoading: false,\n listError: null,\n listFilters: getInitialListFilters(), // component value, on success will overwrite listFiltersUsed,\n listSelectedIds: []\n};\n\nconst onResetUserSpecificData = (state, action) => {\n return initialState;\n}\n\nconst onListFetchStart = (state) => {\n return updateObject(state, {\n list: [],\n listLoading: true,\n listError: null\n });\n};\n\nconst onListFetchSuccess = (state, {list, dataSize, filters}) => {\n if (list) {\n for (const row of list) {\n row.compositeKey = `${row.id}-${row.period_start}-${row.period_end}`;\n }\n }\n return updateObject(state, {\n list,\n listLoading: false,\n listPagination: {\n ...state.listPagination,\n dataSize\n },\n listFiltersUsed: filters,\n listSelectedIds: filterIdsInList(state.listSelectedIds, list)\n });\n};\n\nconst onListFetchFail = (state, {error}) => {\n return updateObject(state, {\n list: [],\n listLoading: false,\n listError: error,\n ListSelectedIds: []\n });\n};\n\nexport const onUpdateSearchFilter = (state, key, value) => {\n return updateObject(state, {\n listFilters: {\n ...state.listFilters,\n [key]: value,\n },\n listPagination: {\n ...state.listPagination,\n page: 1\n }\n });\n};\n\nexport const onClearFilters = (state) => {\n return updateObject(state, {\n listFilters: {\n ...getInitialListFilters()\n },\n listPagination: {\n ...state.listPagination,\n page: 1\n }\n });\n}\n\nconst onListSortingUpdate = (state, {sorting}) => {\n return updateObject(state, {\n listSorting: sorting,\n });\n};\n\nconst onListPaginationUpdate = (state, action) => {\n return updateObject(state, {\n listPagination: action.pagination,\n });\n};\n\nconst onListSelectedUpdate = (state, {selectedIds}) => {\n return updateObject(state, {\n listSelectedIds: selectedIds,\n });\n};\n\n// --- ACTIONS ---\nexport const listUpdateFilters = (key, value) => {\n return {\n type: localActionTypes.LIST_SEARCH_FILTER_UPDATE,\n key: key,\n value: value,\n }\n}\n\nexport const listClearFilters = () => {\n return {\n type: localActionTypes.LIST_CLEAR_FILTERS,\n }\n}\n\nexport const listFetchStart = () => {\n return {\n type: localActionTypes.LIST_FETCH_START\n }\n};\n\nexport const listFetchSuccess = (list, dataSize, filters) => {\n return {\n type: localActionTypes.LIST_FETCH_SUCCESS,\n list, dataSize, filters\n }\n};\n\nexport const listFetchFail = (error) => {\n return {\n type: localActionTypes.LIST_FETCH_FAIL,\n error\n }\n};\n\nexport const listSortingUpdate = (sorting) => {\n return {\n type: localActionTypes.LIST_SORTING_UPDATE,\n sorting,\n };\n};\n\nexport const listPaginationUpdate = (pagination) => {\n return {\n type: localActionTypes.LIST_PAGINATION_UPDATE,\n pagination,\n };\n};\n\nexport const listSelectedUpdate = (selectedIds) => {\n return {\n type: localActionTypes.LIST_SELECTED_UPDATE,\n selectedIds,\n };\n};\n\nexport const actions = {\n listFetchStart,\n listFetchSuccess,\n listFetchFail,\n listUpdateFilters,\n listClearFilters,\n listSortingUpdate,\n listPaginationUpdate,\n listSelectedUpdate\n}\n\n// --- REDUCER ---\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n // SALES\n case localActionTypes.LIST_FETCH_START:\n return onListFetchStart(state, action);\n case localActionTypes.LIST_FETCH_SUCCESS:\n return onListFetchSuccess(state, action);\n case localActionTypes.LIST_FETCH_FAIL:\n return onListFetchFail(state, action);\n // FILTER\n case localActionTypes.LIST_SEARCH_FILTER_UPDATE:\n return onUpdateSearchFilter(state, action.key, action.value);\n case localActionTypes.LIST_CLEAR_FILTERS:\n return onClearFilters(state);\n // SORT\n case localActionTypes.LIST_SORTING_UPDATE:\n return onListSortingUpdate(state, action);\n // PAGINATION\n case localActionTypes.LIST_PAGINATION_UPDATE:\n return onListPaginationUpdate(state, action);\n // SELECTION\n case localActionTypes.LIST_SELECTED_UPDATE:\n return onListSelectedUpdate(state, action);\n // GENERIC\n case actionTypes.GET_AUTH_USER:\n return onResetUserSpecificData(state, action);\n default:\n return state;\n }\n};\n\nexport default reducer\n","// Must be added to combineReducer in src/redux/reducers/index.js\nimport React from \"react\";\nimport { Trans } from \"react-i18next\";\n\nimport {updateObject} from 'redux/utility';\nimport * as actionTypes from 'redux/actions/actionTypes';\n\nconst localActionTypes = {\n LIST_FETCH_START: \"ADDITIONAL_DEPOSIT_REPORT_LIST_FETCH_START\",\n LIST_FETCH_SUCCESS: \"ADDITIONAL_DEPOSIT_REPORT_LIST_FETCH_SUCCESS\",\n LIST_FETCH_FAIL: \"ADDITIONAL_DEPOSIT_REPORT_LIST_FETCH_FAIL\",\n LIST_SEARCH_FILTER_UPDATE: \"ADDITIONAL_DEPOSIT_REPORT_LIST_SEARCH_FILTER_UPDATE\",\n LIST_CLEAR_FILTERS: \"ADDITIONAL_DEPOSIT_REPORT_LIST_CLEAR_FILTERS\",\n LIST_SORTING_UPDATE: \"ADDITIONAL_DEPOSIT_REPORT_LIST_SORTING_UPDATE\",\n LIST_PAGINATION_UPDATE: \"ADDITIONAL_DEPOSIT_REPORT_LIST_PAGINATION_UPDATE\",\n LIST_SELECTED_UPDATE: \"ADDITIONAL_DEPOSIT_REPORT_LIST_SELECTED_UPDATE\"\n}\n\nexport const STATUSES = {\n POSTED_FALSE: false, // Sisestatud\n POSTED_TRUE: true // Kinnitatud\n}\n\nexport const filterNavStatusOptions = [\n {\n value: null, label: ,\n },\n {\n value: STATUSES.POSTED_FALSE, label: \n },\n {\n value: STATUSES.POSTED_TRUE, label: \n },\n]\n\n\nconst getInitialListFilters = () => {\n return {\n fromDate: null, // use it for period start from\n toDate: null, // use it for period end to\n client: null, // EPP specific\n // EPP specific filter. True shows only confirmed ones, \n // False unconfirmed ones and Null shows all.\n is_posted: filterNavStatusOptions[0], \n }\n};\n\nconst getInitialSorting = () => {\n return {\n dataField: \"period_end\",\n order: \"desc\",\n };\n};\n\nconst getSizePerPageList = (dataSize) => {\n return [\n { value: 10, text: \"10\" },\n { value: 25, text: \"25\" },\n { value: 50, text: \"50\" },\n { value: 100, text: \"100\" },\n ];\n};\n\nconst getInitialPagination = () => {\n return {\n page: 1,\n sizePerPage: 25,\n dataSize: 0,\n sizePerPageList: getSizePerPageList(0)\n }\n};\n\nconst filterIdsInList = (ids, rows) => {\n const listOfIds = rows.map((row) => row.id);\n return ids.filter((id) => listOfIds.includes(id));\n};\n\nconst initialState = {\n list: [],\n listSorting: getInitialSorting(),\n listPagination: getInitialPagination(),\n listFiltersUsed: getInitialListFilters(), // Filters that were used in latest successful request\n listLoading: false,\n listError: null,\n listFilters: getInitialListFilters(), // component value, on success will overwrite listFiltersUsed,\n listSelectedIds: []\n};\n\nconst onResetUserSpecificData = (state, action) => {\n return initialState;\n}\n\nconst onListFetchStart = (state) => {\n return updateObject(state, {\n list: [],\n listLoading: true,\n listError: null\n });\n};\n\nconst onListFetchSuccess = (state, {list, dataSize, filters}) => {\n if (list) {\n for (const row of list) {\n row.compositeKey = `${row.id}-${row.period_start}-${row.period_end}`;\n }\n }\n return updateObject(state, {\n list,\n listLoading: false,\n listPagination: {\n ...state.listPagination,\n dataSize\n },\n listFiltersUsed: filters,\n listSelectedIds: filterIdsInList(state.listSelectedIds, list)\n });\n};\n\nconst onListFetchFail = (state, {error}) => {\n return updateObject(state, {\n list: [],\n listLoading: false,\n listError: error,\n ListSelectedIds: []\n });\n};\n\nexport const onUpdateSearchFilter = (state, key, value) => {\n return updateObject(state, {\n listFilters: {\n ...state.listFilters,\n [key]: value,\n },\n listPagination: {\n ...state.listPagination,\n page: 1\n }\n });\n};\n\nexport const onClearFilters = (state) => {\n return updateObject(state, {\n listFilters: {\n ...getInitialListFilters()\n },\n listPagination: {\n ...state.listPagination,\n page: 1\n }\n });\n}\n\nconst onListSortingUpdate = (state, {sorting}) => {\n return updateObject(state, {\n listSorting: sorting,\n });\n};\n\nconst onListPaginationUpdate = (state, action) => {\n return updateObject(state, {\n listPagination: action.pagination,\n });\n};\n\nconst onListSelectedUpdate = (state, {selectedIds}) => {\n return updateObject(state, {\n listSelectedIds: selectedIds,\n });\n};\n\n// --- ACTIONS ---\nexport const listUpdateFilters = (key, value) => {\n return {\n type: localActionTypes.LIST_SEARCH_FILTER_UPDATE,\n key: key,\n value: value,\n }\n}\n\nexport const listClearFilters = () => {\n return {\n type: localActionTypes.LIST_CLEAR_FILTERS,\n }\n}\n\nexport const listFetchStart = () => {\n return {\n type: localActionTypes.LIST_FETCH_START\n }\n};\n\nexport const listFetchSuccess = (list, dataSize, filters) => {\n return {\n type: localActionTypes.LIST_FETCH_SUCCESS,\n list, dataSize, filters\n }\n};\n\nexport const listFetchFail = (error) => {\n return {\n type: localActionTypes.LIST_FETCH_FAIL,\n error\n }\n};\n\nexport const listSortingUpdate = (sorting) => {\n return {\n type: localActionTypes.LIST_SORTING_UPDATE,\n sorting,\n };\n};\n\nexport const listPaginationUpdate = (pagination) => {\n return {\n type: localActionTypes.LIST_PAGINATION_UPDATE,\n pagination,\n };\n};\n\nexport const listSelectedUpdate = (selectedIds) => {\n return {\n type: localActionTypes.LIST_SELECTED_UPDATE,\n selectedIds,\n };\n};\n\nexport const actions = {\n listFetchStart,\n listFetchSuccess,\n listFetchFail,\n listUpdateFilters,\n listClearFilters,\n listSortingUpdate,\n listPaginationUpdate,\n listSelectedUpdate\n}\n\n// --- REDUCER ---\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n // SALES\n case localActionTypes.LIST_FETCH_START:\n return onListFetchStart(state, action);\n case localActionTypes.LIST_FETCH_SUCCESS:\n return onListFetchSuccess(state, action);\n case localActionTypes.LIST_FETCH_FAIL:\n return onListFetchFail(state, action);\n // FILTER\n case localActionTypes.LIST_SEARCH_FILTER_UPDATE:\n return onUpdateSearchFilter(state, action.key, action.value);\n case localActionTypes.LIST_CLEAR_FILTERS:\n return onClearFilters(state);\n // SORT\n case localActionTypes.LIST_SORTING_UPDATE:\n return onListSortingUpdate(state, action);\n // PAGINATION\n case localActionTypes.LIST_PAGINATION_UPDATE:\n return onListPaginationUpdate(state, action);\n // SELECTION\n case localActionTypes.LIST_SELECTED_UPDATE:\n return onListSelectedUpdate(state, action);\n // GENERIC\n case actionTypes.GET_AUTH_USER:\n return onResetUserSpecificData(state, action);\n default:\n return state;\n }\n};\n\nexport default reducer\n","import { combineReducers } from \"redux\";\nimport * as actionTypes from \"redux/actions/actionTypes\";\nimport auth from \"./auth\";\nimport { navigation } from \"./navigation\";\nimport packages from \"./packages\";\nimport invoices from \"./invoices\";\nimport { sales } from \"./reports/sales\";\nimport { salesReport } from \"./reports/salesReport\";\nimport { summaryReport } from \"./reports/summaryReport\";\nimport { massReport } from \"./reports/massReport\";\nimport { profile } from \"./profile\";\nimport { dashboard } from \"./dashboard\";\nimport { notifications } from \"./notifications\";\nimport { importSalesReport } from \"./reports/importSalesReport\";\nimport alerts from \"./alerts\";\nimport { general } from \"./general\";\nimport partner from \"./partner/index\";\nimport admin from \"./admin/index\";\nimport { language } from \"./language\";\nimport returnReports from \"components/ReturnReports/redux\";\nimport additionalDepositReports from \"components/AdditionalDepositReports/redux\";\n\nconst appReducer = combineReducers({\n auth,\n admin,\n partner,\n general,\n language,\n navigation,\n packages,\n invoices,\n sales,\n salesReport,\n summaryReport,\n massReport,\n profile,\n importSalesReport,\n alerts,\n dashboard,\n notifications,\n returnReports,\n additionalDepositReports\n});\n\nconst rootReducer = (state, action) => {\n if (\n action.type === actionTypes.LOG_OUT ||\n action.type === actionTypes.RESET_STORE\n ) {\n state = undefined;\n }\n return appReducer(state, action);\n};\n\nexport default rootReducer;\n","import { createStore, applyMiddleware } from \"redux\";\nimport { createLogger } from \"redux-logger\";\nimport { persistStore } from \"redux-persist\";\nimport rootReducer from \"redux/reducers/index\";\nimport thunk from \"redux-thunk\";\nimport { composeWithDevTools } from \"redux-devtools-extension/developmentOnly\";\nimport { ENABLE_REDUX_DEVTOOLS } from \"config/envVariables\";\n\n// import Session from \"util/Session\";\n\nconst logger = createLogger({\n /* https://github.com/evgenyrodionov/redux-logger */\n collapsed: true,\n diff: true,\n});\n\nlet configureStore;\nif (ENABLE_REDUX_DEVTOOLS) {\n configureStore = createStore(\n rootReducer,\n composeWithDevTools(\n /* logger must be the last middleware in chain to log actions */\n applyMiddleware(thunk, logger)\n )\n );\n} else {\n configureStore = createStore(rootReducer);\n}\n\npersistStore(configureStore);\nexport default configureStore;\n\n// Session.read();\n// store.subscribe(() => {\n// Session.write();\n// });\n","import { isClientMode, isPartnerMode, isAdminMode } from \"util/Access\";\n\nexport const ID_PLACEHOLDER = \":id(\\\\d+)\";\n\nconst PARTNER_PACKAGES = \"/packages\";\nconst INVOICES = \"/invoices\";\nconst EPP_REGISTRY = \"/registry\";\nconst EPP_USERS = \"/users\";\nconst EPP_DEBTS = \"/debts\";\n\nconst urls = {\n DOMAIN: \"/\",\n ANY: \"/*\",\n DASHBOARD: \"/dashboard\",\n CONTRACT: \"/dashboard/contract\",\n PACKAGES: \"/packages\",\n ADD_PACKAGES: \"/packages/add-package\",\n APPLICATIONS: \"/applications\",\n REPORTS: \"/reports\",\n REPORTS_SALES: \"/reports/sales\",\n REPORTS_SALE: `/reports/sale/${ID_PLACEHOLDER}`,\n REPORTS_SALE_FIX: `/reports/sale/${ID_PLACEHOLDER}/repair`,\n REPORTS_SUMMARY: \"/reports/summary\",\n REPORTS_MASS: \"/reports/mass\",\n REPORTS_RETURN_LIST: \"/reports/returns\",\n REPORTS_RETURN_DETAILS: `/reports/returns/${ID_PLACEHOLDER}`,\n REPORTS_ADDITIONAL_DEPOSIT_LIST: \"/reports/additional-deposit/\",\n REPORTS_ADDITIONAL_DEPOSIT_DETAILS: `/reports/additional-deposit/${ID_PLACEHOLDER}`,\n INVOICES: INVOICES,\n INVOICES_PREVIEW: `${INVOICES}/${ID_PLACEHOLDER}`,\n PROFILE: \"/profile\",\n PROFILE_EDIT: \"/profile/edit\",\n PROFILE_CONTRACT: \"/profile/contract\",\n PROFILE_USERS: \"/profile/users\",\n PROFILE_NOTIFICATIONS: \"/profile/notifications\",\n\n //Public\n LOGIN: \"/login\",\n LOGIN_WITH_EMAIL: \"/login/email\",\n FORGOT_PASSWORD: \"/forgot-password\",\n CHANGE_PASSWORD: \"/change-password/:uid/:token\",\n PRIVACY_POLICY: \"/privacy-policy\",\n COOKIE_POLICY: \"/cookies\",\n\n // Partner specific\n PARTNER_PACKAGES,\n PARTNER_PACKAGES_IN_TESTING: `${PARTNER_PACKAGES}/testing`,\n PARTNER_PACKAGES_IN_RETESTING: `${PARTNER_PACKAGES}/retesting`,\n PARTNER_PACKAGES_UNCONFIRMED: `${PARTNER_PACKAGES}/unconfirmed`,\n PARTNER_PACKAGES_CONFIRMED: `${PARTNER_PACKAGES}/confirmed`,\n PARTNER_PACKAGES_ALL: `${PARTNER_PACKAGES}/all`,\n\n // EPP Admin specific\n EPP_REGISTRY,\n EPP_REGISTRY_APPLICATIONS: `${EPP_REGISTRY}/applications`,\n EPP_REGISTRY_TESTING: `${EPP_REGISTRY}/testing`,\n EPP_REGISTRY_RETESTING: `${EPP_REGISTRY}/retesting`,\n EPP_REGISTRY_PACKAGES: `${EPP_REGISTRY}/packages`,\n EPP_REGISTRY_PACKAGE_DETAILS: `${EPP_REGISTRY}/package/${ID_PLACEHOLDER}`,\n EPP_REPORTS: \"/reports\",\n EPP_REPORTS_SALES: \"/reports/sales\",\n EPP_REPORTS_SALES_UNSUBMITTED: \"/reports/unsubmitted\",\n EPP_REPORTS_RETURN_LIST: \"/reports/returns/\",\n EPP_REPORTS_RETURN_DETAILS: `/reports/returns/${ID_PLACEHOLDER}`,\n EPP_REPORTS_ADDITIONAL_DEPOSIT_LIST: \"/reports/additional-deposit/\",\n EPP_REPORTS_ADDITIONAL_DEPOSIT_DETAILS: `/reports/additional-deposit/${ID_PLACEHOLDER}`,\n EPP_UNCONFIRMED_REPAIR_REPORTS: \"/reports/unconfirmed\",\n EPP_DEBTS: `${EPP_DEBTS}`,\n EPP_DEBTS_INVOICES: `/client-invoices/${ID_PLACEHOLDER}`,\n EPP_USERS,\n EPP_PROFILE: \"/epp-profile\",\n EPP_USERS_CLIENTS: `${EPP_USERS}/clients`,\n EPP_USERS_CLIENTS_CLIENT: `${EPP_USERS}/clients/:id`,\n EPP_USERS_CLIENTS_CLIENT_PROFILE: `${EPP_USERS}/clients/:id/profile`,\n EPP_USERS_CLIENTS_CLIENT_USERS: `${EPP_USERS}/clients/:id/users`,\n EPP_USERS_PARTNERS: `${EPP_USERS}/partners`,\n EPP_USERS_EPP: `${EPP_USERS}/epp`,\n EPP_SETTINGS: \"/settings\",\n EPP_SETTINGS_CATEGORIES: \"/settings/categories\",\n EPP_SETTINGS_TYPES: \"/settings/types\",\n EPP_SETTINGS_COLORS: \"/settings/colors\",\n EPP_SETTINGS_VOLUMES: \"/settings/volumes\",\n EPP_SETTINGS_PROCESS_FEES: \"/settings/process-fees\",\n};\n\nexport function getAdminClientProfileUrl(id) {\n return urls.EPP_USERS_CLIENTS_CLIENT_PROFILE.replace(\":id\", id);\n}\nexport function getAdminClientUsersUrl(id) {\n return urls.EPP_USERS_CLIENTS_CLIENT_USERS.replace(\":id\", id);\n}\n\nexport function getSaleReportUrl(id) {\n return urls.REPORTS_SALE.replace(ID_PLACEHOLDER, id);\n}\n\nexport function getSaleReportFixUrl(id) {\n return urls.REPORTS_SALE_FIX.replace(ID_PLACEHOLDER, id);\n}\n\nexport function getSalesReportOrRepairUrl(id, isRepair) {\n if (isRepair) {\n return urls.REPORTS_SALE_FIX.replace(ID_PLACEHOLDER, id);\n }\n return urls.REPORTS_SALE.replace(ID_PLACEHOLDER, id);\n}\n\nexport function getInvoicePreviewUrl(id) {\n return urls.INVOICES_PREVIEW.replace(ID_PLACEHOLDER, id);\n}\n\nexport function getAdminPackageDetailsUrl(id) {\n return urls.EPP_REGISTRY_PACKAGE_DETAILS.replace(ID_PLACEHOLDER, id);\n}\n\nexport function getAdminDebtsClientInvoicesUrl(id) {\n return urls.EPP_DEBTS_INVOICES.replace(ID_PLACEHOLDER, id);\n}\n\nexport function getDefaultUrl(user) {\n if (isAdminMode()) {\n return urls.EPP_REGISTRY_APPLICATIONS;\n } else if (isPartnerMode()) {\n return urls.PARTNER_PACKAGES_IN_TESTING;\n } else if (isClientMode()) {\n return urls.DASHBOARD;\n }\n\n return urls.DOMAIN;\n}\n\nexport default urls;\n","import * as actionTypes from './actionTypes';\nimport {getAuthUser} from \"../../util/Auth\";\nimport axios from \"../../axios\";\n\nexport const registerStart = () => {\n return {\n type: actionTypes.REGISTER_START\n }\n};\n\nexport const registerSuccess = () => {\n return {\n type: actionTypes.REGISTER_SUCCESS\n }\n};\n\nexport const registerFail = err => {\n return {\n type: actionTypes.REGISTER_FAIL,\n error: err\n }\n};\n\nexport const authStart = () => {\n return {\n type: actionTypes.AUTH_START\n }\n};\n\nexport const authSuccess = token => {\n return {\n type: actionTypes.AUTH_SUCCESS,\n token: token\n }\n};\n\nexport const authFail = error => {\n return {\n type: actionTypes.AUTH_FAIL,\n error: error\n }\n};\n\nexport const getUser = user => {\n return {\n type: actionTypes.GET_AUTH_USER,\n user: user\n }\n};\n\nexport const logOut = () => {\n return {\n type: actionTypes.LOG_OUT,\n }\n};\n\nexport const checkAuthTimeout = expirationDate => {\n return dispatch => {\n setTimeout(() => {\n dispatch(logOut());\n }, expirationDate * 1000)\n }\n};\n\nexport const getTokenFromLocalStorage = async () => {\n return localStorage.getItem('token');\n};\n\nexport const checkAuthState = () => {\n const token = localStorage.getItem('token');\n if (token) {\n const expirationDate = new Date(localStorage.getItem('expirationDate'));\n axios.defaults.headers.common['Authorization'] = token;\n\n if (expirationDate <= new Date()) {\n return logOut();\n } else {\n getAuthUser();\n checkAuthTimeout((expirationDate.getTime() - new Date().getTime()) / 1000);\n return authSuccess(token);\n }\n } else {\n return authFail()\n }\n};\n\nexport const resetStore = () => {\n return {\n type: actionTypes.RESET_STORE,\n }\n}","import React from \"react\";\nimport axios from \"../axios\";\nimport store from \"redux/store\";\nimport { Trans } from \"react-i18next\";\nimport {\n REST_AUTH_LOGIN,\n REST_AUTH_USER,\n REST_AUTH_LOGOUT,\n AUTH_ID_CARD_V2,\n AUTH_ID_CARD,\n AUTH_ID_CARD_VERIFY,\n AUTH_MOBILE_ID,\n AUTH_SMART_ID,\n SIGN_ID_CARD,\n SIGN_MOBILE_ID,\n SIGN_SMART_ID,\n DIGITAL_AUTH_STATUS,\n DIGITAL_SIGN_STATUS,\n RESET_PASSWORD,\n SIGN_ADMIN_SMART_ID,\n SIGN_ADMIN_MOBILE_ID,\n SIGN_ADMIN_ID_CARD,\n} from \"config/Api\";\nimport { authFail, authSuccess, getUser, resetStore } from \"redux/actions/auth\";\nimport { logOut } from \"../redux/actions/auth\";\nimport { addNewLocalErrorAlert, clearLocalAlerts } from \"./Alerts\";\nimport { getServerErrorMessage } from \"util/Errors\";\n\nexport const authTypes = {\n ID: \"id_card\",\n MID: \"mobile_id\",\n SMART: \"smart_id\",\n EMAIL: \"email\",\n};\nexport const LOGIN_ALERT_GROUP = \"loginAlert\";\nexport const SIGNING_ALERT_GROUP = \"signingAlert\";\n\nexport function idCardAuth(certificate) {\n // Deprecated\n clearLocalAlerts();\n\n return axios\n .post(AUTH_ID_CARD, { certificate: certificate })\n .then((resp) => {\n /*if (resp.data.code) {\n throw Error(\"Did not receive user object\");\n }\n */\n\n return resp.data;\n })\n .catch((err) => {\n let errorMessage = getServerErrorMessage(err);\n throw Error(errorMessage);\n });\n}\n\nexport function idCardAuthVerify(token, signature, userJson) {\n // Deprecated\n clearLocalAlerts();\n\n return axios\n .post(AUTH_ID_CARD_VERIFY, {\n token: token,\n signature_value: signature,\n user_json: userJson,\n })\n .then((resp) => {\n /*\n if (resp.data.code) {\n throw Error(\"Did not receive user object\");\n }\n \n const userObject = resp.data;\n clearLocalAlerts();\n axios.defaults.headers.common['Authorization'] = `Token ${userObject.key}`;\n store.dispatch(authSuccess(`Token ${userObject.key}`));\n const expirationDate = new Date();\n expirationDate.setHours(expirationDate.getHours() + 24);\n //localStorage.removeItem('token');\n localStorage.clear();\n localStorage.setItem('token', `Token ${userObject.key}`);\n localStorage.setItem('expirationDate', expirationDate);\n\n setAuthUser(userObject);\n */\n\n return resp.data;\n })\n .catch((err) => {\n let errorMessage = getServerErrorMessage(err);\n throw Error(errorMessage);\n });\n}\n\nexport function idCardAuthDokobitTokenVerify(dokobitAuthToken) {\n clearLocalAlerts();\n\n return axios\n .post(AUTH_ID_CARD_V2, {\n token: dokobitAuthToken\n })\n .then((resp) => {\n return resp.data;\n })\n .catch((err) => {\n let errorMessage = getServerErrorMessage(err);\n throw Error(errorMessage);\n });\n}\n\nexport function idCardAuthSuccess(data) {\n const userObject = data;\n clearLocalAlerts();\n axios.defaults.headers.common[\"Authorization\"] = `Token ${userObject.key}`;\n store.dispatch(authSuccess(`Token ${userObject.key}`));\n const expirationDate = new Date();\n expirationDate.setHours(expirationDate.getHours() + 24);\n //localStorage.removeItem('token');\n localStorage.clear();\n localStorage.setItem(\"token\", `Token ${userObject.key}`);\n localStorage.setItem(\"expirationDate\", expirationDate);\n localStorage.setItem(\"authType\", authTypes.ID);\n\n setAuthUser(userObject);\n}\n\nexport function smartIdAuth(personal_code, country) {\n return axios\n .post(AUTH_SMART_ID, { personal_code: personal_code, country: country })\n .then((resp) => {\n return resp.data;\n })\n .catch((err) => {\n throw Error(getServerErrorMessage(err));\n });\n}\n\nexport function mobileIdAuth(mobileNumber, personal_code) {\n return axios\n .post(AUTH_MOBILE_ID, {\n phone_number: mobileNumber,\n personal_code: personal_code,\n })\n .then((resp) => {\n return resp.data;\n })\n .catch((err) => {\n throw Error(getServerErrorMessage(err));\n });\n}\n//\n// export function midAuthStart(mobileNumber) {\n// return axios\n// .post(MID_AUTH_START, {phone_nr: mobileNumber})\n// .then(resp => {\n// if (resp.data.success === true) {\n// clearLocalAlerts()\n// addNewLocalInfoAlert(`Teie kontrollkood on ${resp.data.challenge}. Veenduge, et näete mobiiltelefoni ekraanil täpselt sama numbrit.\n// Seejärel sisestage M-ID PIN 1 kood.`, LOGIN_ALERT_GROUP);\n// return resp.data\n// } else if (resp.data.success === false) {\n// addNewLocalErrorAlert(`${resp.data.message}`, LOGIN_ALERT_GROUP);\n// }\n// })\n// .catch(err => {\n// throw err;\n// });\n// }\n\nexport function digitalAuthStatus(token, mode, identifier) {\n return axios\n .get(\n DIGITAL_AUTH_STATUS +\n token +\n \"/\" +\n mode +\n \"/\" +\n encodeURIComponent(identifier)\n )\n .then((resp) => {\n if (resp.data.code === \"ok\") {\n axios.defaults.headers.common[\n \"Authorization\"\n ] = `Token ${resp.data.user_object.key}`;\n store.dispatch(\n authSuccess(`Token ${resp.data.user_object.key}`)\n );\n const expirationDate = new Date();\n expirationDate.setHours(expirationDate.getHours() + 24);\n\n localStorage.clear();\n localStorage.setItem(\"cert\", resp.data.user_object.cert);\n localStorage.setItem(\n \"personal_code\",\n resp.data.user_object.personal_code\n );\n if (mode === authTypes.MID) {\n localStorage.setItem(\"phoneNumberMID\", identifier);\n }\n localStorage.setItem(\n \"token\",\n `Token ${resp.data.user_object.key}`\n );\n localStorage.setItem(\"expirationDate\", expirationDate);\n } else if (resp.data.success === false) {\n //addNewLocalErrorAlert(\"Sisse logimisel ilmnes viga. Palun proovi uuesti.\", LOGIN_ALERT_GROUP);\n }\n return resp.data;\n })\n .catch((err) => {\n throw Error(getServerErrorMessage(err));\n });\n}\n\nexport function signMobileId(mobileNumber, personal_code, cert) {\n return axios\n .post(SIGN_MOBILE_ID, {\n phone_number: mobileNumber,\n personal_code: personal_code,\n cert: cert,\n })\n .then((resp) => {\n return resp.data;\n })\n .catch((err) => {\n throw Error(getServerErrorMessage(err));\n });\n}\n\nexport function signAdminMobileId(\n mobileNumber,\n personal_code,\n cert,\n contract_id\n) {\n return axios\n .post(SIGN_ADMIN_MOBILE_ID, {\n phone_number: mobileNumber,\n personal_code: personal_code,\n cert: cert,\n contract_id: contract_id,\n })\n .then((resp) => {\n return resp.data;\n })\n .catch((err) => {\n throw Error(getServerErrorMessage(err));\n });\n}\n\nexport function signSmartId(personal_code, cert) {\n return axios\n .post(SIGN_SMART_ID, {\n phone_number: \"\",\n personal_code: personal_code,\n cert: cert,\n })\n .then((resp) => {\n return resp.data;\n })\n .catch((err) => {\n throw Error(getServerErrorMessage(err));\n });\n}\n\nexport function signAdminSmartId(personal_code, cert, contract_id) {\n return axios\n .post(SIGN_ADMIN_SMART_ID, {\n phone_number: \"\",\n personal_code: personal_code,\n cert: cert,\n contract_id: contract_id,\n })\n .then((resp) => {\n return resp.data;\n })\n .catch((err) => {\n throw Error(getServerErrorMessage(err));\n });\n}\n\nexport function signIdCard(personal_code, cert) {\n return axios\n .post(SIGN_ID_CARD, {\n phone_number: \"\",\n personal_code: personal_code,\n cert: cert,\n })\n .then((resp) => {\n return resp.data;\n })\n .catch((err) => {\n throw Error(getServerErrorMessage(err));\n });\n}\n\nexport function signAdminIdCard(personal_code, cert, contract_id) {\n return axios\n .post(SIGN_ADMIN_ID_CARD, {\n phone_number: \"\",\n personal_code: personal_code,\n cert: cert,\n contract_id: contract_id,\n })\n .then((resp) => {\n return resp.data;\n })\n .catch((err) => {\n throw Error(getServerErrorMessage(err));\n });\n}\n\nexport function digitalSignStatus(\n token,\n mode,\n signature_value,\n contractId = \"\"\n) {\n return axios\n .post(DIGITAL_SIGN_STATUS, {\n token,\n mode,\n signature_value: signature_value,\n contract_id: contractId,\n })\n .then((resp) => {\n return resp.data;\n })\n .catch((err) => {\n throw Error(getServerErrorMessage(err));\n });\n}\n\nexport function login(username, password) {\n clearLocalAlerts();\n\n return axios\n .post(\n REST_AUTH_LOGIN,\n {\n email: username,\n password: password,\n },\n {\n headers: {\n Authorization: ``,\n },\n }\n )\n .then((resp) => {\n axios.defaults.headers.common[\n \"Authorization\"\n ] = `Token ${resp.data.key}`;\n store.dispatch(authSuccess(`Token ${resp.data.key}`));\n const expirationDate = new Date();\n expirationDate.setHours(expirationDate.getHours() + 24);\n //localStorage.removeItem('token');\n localStorage.clear();\n localStorage.setItem(\"token\", `Token ${resp.data.key}`);\n localStorage.setItem(\"expirationDate\", expirationDate);\n localStorage.setItem(\"authType\", authTypes.EMAIL);\n return true;\n })\n .catch((err) => {\n store.dispatch(authFail(err));\n addNewLocalErrorAlert(\n \n Sisselogimine ebaõnnestus! Palun kontrolli andmeid.\n ,\n LOGIN_ALERT_GROUP\n );\n\n return false;\n });\n}\n\nexport function logout() {\n return axios\n .post(REST_AUTH_LOGOUT)\n .then((resp) => {\n store.dispatch(logOut());\n localStorage.clear();\n axios.defaults.headers.common[\"Authorization\"] = null;\n })\n .catch((err) => {\n throw err;\n });\n}\n\nexport function requestFailed401() {\n store.dispatch(resetStore());\n localStorage.clear();\n addNewLocalErrorAlert(\n \n Ootamatu viga serverile päringut tehes.\n ,\n LOGIN_ALERT_GROUP\n );\n}\n\nexport function errorClearData(errorMessage) {\n store.dispatch(resetStore());\n localStorage.clear();\n\n if (errorMessage) {\n addNewLocalErrorAlert(errorMessage, LOGIN_ALERT_GROUP);\n }\n}\n\nexport function setAuthUser(user) {\n store.dispatch(getUser(user));\n}\n\nexport function getAuthUser() {\n return axios\n .get(REST_AUTH_USER)\n .then((resp) => {\n store.dispatch(getUser(resp.data));\n return resp.data;\n })\n .catch((err) => {\n throw err;\n });\n}\n\nexport const sendPasswordResetLink = (email) => {\n return axios\n .post(RESET_PASSWORD, {\n email,\n })\n .then((resp) => {\n return resp.data;\n })\n .catch((err) => {\n throw err;\n });\n};\n","var _circle, _path;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nconst SvgLogo = _ref => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 32,\n height: 32,\n viewBox: \"0 0 32 32\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 16,\n cy: 16,\n r: 16,\n fill: \"white\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M30.0862 12.1344C30.0475 12.1651 29.9107 12.053 29.7175 11.8582L29.6934 11.8404L29.71 11.851C29.5266 11.6548 29.2883 11.3979 29.0451 11.1503C29.072 11.1649 29.0957 11.1799 29.1314 11.199C29.2723 11.3175 29.5473 11.5253 29.7528 11.6998C29.528 11.4824 29.2696 11.2382 29.0034 10.9909C29.3786 11.1898 29.7222 11.6728 30.11 11.3751C30.347 11.6023 30.5457 11.8476 30.601 12.1079L31.1728 12.3971C31.2078 12.4247 31.2418 12.4598 31.2798 12.4914L31.3263 12.7146L31.218 12.69L31.2635 12.9653C30.8373 12.6515 30.4971 12.4431 30.0862 12.1344ZM29.6801 10.9871C29.6438 11.0065 29.5867 10.996 29.4791 10.922C29.5205 10.9234 29.5473 10.9101 29.566 10.891C29.6034 10.922 29.6394 10.9541 29.6801 10.9871ZM28.3378 10.3726C28.419 10.3351 28.4794 10.2084 28.4115 10.1099L28.6927 10.1719L28.6441 10.2343C28.9939 10.3453 29.4754 10.2779 29.8934 10.592C29.7677 10.6291 29.7548 10.7667 29.7361 10.8723C29.692 10.8389 29.6499 10.8045 29.6078 10.7759C29.617 10.7125 29.6169 10.6454 29.638 10.6035C29.5538 10.4499 29.2614 10.531 29.1891 10.5017L29.1864 10.5044C29.1864 10.5044 29.184 10.5017 29.1803 10.5017C29.1823 10.5017 29.184 10.5044 29.1864 10.5071C29.1446 10.6069 28.9905 10.7422 28.8373 10.8362C28.6719 10.6839 28.5028 10.5255 28.3378 10.3726ZM27.9137 8.07963C27.9904 8.02138 28.0604 8.05783 28.1494 8.0769L28.5066 8.3978C28.4804 8.40529 28.4584 8.41313 28.4224 8.41654C28.3993 8.41892 28.3677 8.43561 28.3348 8.45707C28.1986 8.3375 28.0577 8.21282 27.9137 8.07963ZM28.1028 10.1566C28.1049 10.1392 28.1117 10.127 28.13 10.127C28.1629 10.1597 28.1826 10.1958 28.1932 10.2384C28.1629 10.2138 28.1327 10.1838 28.1028 10.1566ZM27.8682 8.03671C27.5521 7.75294 27.2373 7.46679 27.0156 7.27058C27.0156 7.23072 27.0145 7.19325 27.0237 7.15578C26.9802 7.03927 26.9334 7.02871 26.8811 7.05869C26.8142 6.96058 26.7286 6.84135 26.6461 6.72519L27.7901 7.7543C27.6027 7.81051 27.9314 7.92225 27.8682 8.03671ZM27.5731 9.30394C27.4573 9.18914 27.3385 9.08047 27.2183 8.97657C27.3769 8.98883 27.5317 9.03346 27.6519 9.16291C27.6305 9.2089 27.6033 9.25557 27.5731 9.30394ZM26.5768 8.44924C26.5541 8.43255 26.5354 8.41892 26.5161 8.40257C26.5891 8.38451 26.6611 8.37532 26.7212 8.39473C26.6268 8.38451 26.586 8.40529 26.5768 8.44924ZM25.9551 7.76486C25.8217 7.45419 25.656 7.84083 25.5055 7.63201L25.551 7.57205C25.5174 7.60476 25.4868 7.61464 25.4536 7.61464C25.3191 7.51755 25.186 7.41331 25.0492 7.30941C25.1048 7.04949 25.4583 7.2641 25.4987 7.20687L25.2043 7.03587C25.4094 7.01475 25.4257 6.8325 25.6352 6.82636C25.7279 6.92004 25.8244 7.01475 25.9205 7.10706C25.9032 7.1166 25.8875 7.13159 25.8692 7.14556L25.7218 6.9381C25.3697 7.10979 25.8998 7.18712 25.839 7.35335C25.7161 7.67936 25.6284 7.30669 25.5626 7.50222C25.7256 7.60816 25.8509 7.49541 25.9565 7.52096C26.0546 7.57512 26.0414 7.67936 25.9551 7.76486ZM24.8641 7.16123C24.714 7.03927 24.5615 6.91016 24.4111 6.77901C24.4665 6.61959 24.4634 6.39203 24.7154 6.4714C24.5194 6.003 24.5483 6.70509 24.3194 6.45164C24.366 6.53953 24.366 6.63934 24.3493 6.72791C24.2257 6.61822 24.1058 6.50479 23.9822 6.38522C24.1249 6.36716 24.2729 6.32322 24.4216 6.26837C23.9656 6.17435 24.5632 6.05308 24.4882 5.82995C24.6264 5.79078 24.6359 5.89025 24.6216 5.96894C24.6685 5.94475 24.7694 5.98529 24.8492 5.97473C24.8641 5.99006 24.8763 6.00641 24.8913 6.0231C24.7259 6.4186 25.0576 6.85975 24.8641 7.16123ZM23.8142 6.21182C23.7928 6.19479 23.7748 6.17435 23.7547 6.15357C23.7381 6.13177 23.7232 6.11031 23.7024 6.08987C23.7171 6.03945 23.6736 5.95293 23.5941 5.84187L23.8366 5.83302C23.7412 5.83574 23.6335 5.79963 23.5283 5.75569C23.4552 5.66371 23.368 5.5639 23.2814 5.46307C23.368 5.49032 23.4403 5.51689 23.4868 5.51553C22.8685 5.25322 23.2084 4.96265 22.6597 4.72794C22.6491 4.72044 22.6342 4.70579 22.6223 4.69728C22.7238 4.67582 22.8114 4.66662 22.8895 4.65946L23.008 4.73305L22.9228 4.65946C23.0118 4.6547 23.099 4.65197 23.1846 4.65197C23.3833 4.81548 23.5907 4.99944 23.7822 5.16295C23.6872 5.14387 23.5941 5.15648 23.549 5.35269L23.7738 5.2941C23.8682 5.38574 23.7412 5.49781 23.6766 5.44978C23.8468 5.51996 23.7738 5.5404 23.9279 5.46579C24.443 5.88752 23.603 5.71515 23.9911 6.24964C23.933 6.25475 23.8715 6.22238 23.8142 6.21182ZM21.1153 16.0945L21.1041 15.8636C21.0471 14.7844 20.6491 13.8248 18.2572 12.9118C18.0766 12.4315 17.5917 9.89497 17.5469 8.99054C17.4949 7.96858 17.2025 7.3864 17.5557 6.92481C17.6552 6.7923 18.0837 6.76573 18.3621 6.76573C18.3621 6.74461 18.371 5.57344 18.371 5.57344C18.3503 5.15001 18.3075 5.10913 17.7217 4.94425C17.445 4.8659 16.2256 4.6036 15.0497 4.94425C14.4657 5.11356 14.4215 5.15001 14.4011 5.57344C14.4011 5.57344 14.4093 6.74461 14.4093 6.76573C14.6881 6.76573 15.1166 6.7923 15.2158 6.92481C15.5689 7.3864 15.2772 7.96858 15.2246 8.99054C15.1346 10.7963 14.646 12.3586 14.5923 12.5235C14.5899 12.5408 14.4684 13.1492 14.4684 13.1492L14.318 13.1744C12.9264 13.5291 11.792 14.1348 11.0751 14.8784C11.5865 14.7251 12.0819 14.6413 12.5336 14.6519L12.7641 14.6553L12.6269 16.5721L12.3964 16.5677C11.6049 16.5513 10.485 17.0766 9.9033 17.575L8.39225 18.8637L8.33792 16.4958C8.30566 15.1523 8.27408 13.7624 8.11313 12.4703L8.08461 12.2431L9.75322 11.9522L9.99091 11.9024C9.99091 11.9024 10.07 12.7875 10.1111 13.2381C10.8096 12.624 11.688 12.1004 12.6989 11.7154C13.0612 10.6938 13.2616 9.76587 13.3061 8.88698C13.3275 8.45367 13.3556 8.29152 13.3278 8.17024C13.1342 8.18625 12.5274 8.17024 12.5274 8.17024L12.4952 6.51943C12.4582 5.20689 12.4174 3.72062 14.6188 3.09859C16.4925 2.64143 17.1431 2.89624 18.153 3.09859C20.354 3.72062 20.3133 5.20689 20.2759 6.51943L20.2443 8.17024C20.2443 8.17024 19.6372 8.18625 19.443 8.17024C19.4161 8.29152 19.4443 8.45367 19.465 8.88698C19.4926 9.43475 19.5812 10.0013 19.7313 10.5974C19.8223 10.9588 19.936 11.3308 20.0725 11.7154C20.1404 11.741 20.2053 11.7686 20.2722 11.7962C20.2732 11.7985 20.2746 11.8013 20.2756 11.8043C22.1768 12.6802 23.1106 14.2322 23.1856 15.6674L23.1982 16.0945H21.1153ZM17.4297 24.8602C17.3092 24.7233 17.1825 24.5768 17.0545 24.4334C17.1584 24.4733 17.2997 24.5509 17.4694 24.6555C17.4779 24.7533 17.463 24.8231 17.4297 24.8602ZM17.2755 24.9042L16.9377 24.4048C16.9635 24.4048 16.9974 24.4133 17.0372 24.4242L17.4267 24.8681C17.39 24.9042 17.3394 24.9086 17.2755 24.9042ZM15.8035 23.0153C15.7957 23.0047 15.7866 22.9962 15.7791 22.9849C15.6205 22.7485 15.4643 22.5125 15.3047 22.2825L15.4317 22.276C15.7159 22.3861 15.9652 22.4682 16.1472 22.4975C15.7397 22.2423 15.4399 22.0972 15.173 21.9889C15.1034 21.9241 15.0307 21.8516 14.9601 21.7766C14.8894 21.6768 14.8215 21.577 14.7526 21.4755C14.7251 21.4046 14.7071 21.3416 14.6996 21.3014L14.8711 21.3866L14.6996 21.2428C14.7071 21.2204 14.7237 21.2142 14.7604 21.236C14.7509 21.2204 14.7421 21.2105 14.7332 21.1965L15.5214 21.4527C15.5244 21.4564 15.5271 21.4592 15.5302 21.4626C15.9305 22.1231 16.299 22.7243 16.647 23.2016C16.6232 23.1198 16.626 23.0851 16.647 23.0745C16.6725 23.066 16.7268 23.1018 16.7944 23.1699C16.7465 23.1372 16.6996 23.1079 16.647 23.0745C16.7102 23.1198 16.7699 23.1604 16.8277 23.1999C17.0236 23.3968 17.2986 23.7422 17.3394 23.7565C17.5998 24.183 17.3845 24.1197 17.1533 23.7906C17.1825 23.8478 17.2042 23.9023 17.2307 23.9565C16.8141 23.6993 16.2905 23.331 15.8035 23.0153ZM15.7927 23.0088C15.7896 23.0023 15.7866 22.9962 15.7832 22.9914L15.8015 23.0139C15.7981 23.0115 15.7957 23.0088 15.7927 23.0088ZM19.0365 2.03473L18.8593 1.95876C18.8657 1.91652 18.8715 1.86508 18.8715 1.7898C18.9856 1.81092 19.0403 1.91482 19.0365 2.03473ZM18.0243 0.968139C18.1238 1.02264 18.3116 0.95281 18.2861 1.12246L18.1727 1.16947C18.3988 1.26723 18.4396 1.13438 18.5224 1.1463C18.5418 1.1572 18.5615 1.16606 18.5829 1.17628C18.5975 1.18956 18.6127 1.20081 18.6304 1.22329C18.6484 1.22601 18.6552 1.22329 18.6684 1.22329C18.7873 1.28495 18.899 1.33843 19.0104 1.39259L19.0657 1.68726C18.7601 1.55986 18.9282 1.66273 18.6667 1.47367C18.4922 1.53873 18.3856 1.61879 18.2752 1.69271C18.134 1.54827 17.9438 1.38953 17.7367 1.22772C17.8596 1.0952 17.9608 0.956216 18.0243 0.968139ZM18.7285 1.03457C18.9085 1.27609 19.2321 0.753867 19.4158 1.23691C19.3744 1.26723 19.3262 1.34081 19.2538 1.38442C19.0549 1.26144 18.8616 1.15311 18.682 1.05092C18.6925 1.04206 18.7061 1.03797 18.7285 1.03457ZM19.5459 1.65933C19.5968 1.73188 19.4464 1.76561 19.4036 1.82454C20.0437 2.12159 19.6192 2.59135 20.1177 2.83288C19.9611 2.83288 19.8437 2.57023 19.6032 2.4878C19.4464 2.36073 19.3275 2.25615 19.3051 2.21255V2.19279C19.3136 2.17882 19.3618 2.18836 19.465 2.22481L19.299 2.15225C19.2871 2.03473 19.2294 1.95263 19.0705 1.89812C19.2355 1.84089 19.2688 1.57484 19.443 1.6055C19.4763 1.62219 19.5112 1.64195 19.5459 1.65933ZM19.7954 0.950084L20.1269 1.20081C20.0814 1.20694 20.0345 1.2209 19.9866 1.24271C19.8844 1.25804 19.6538 1.05875 19.7954 0.950084ZM20.1839 0.913975L20.2715 0.994029C20.2715 1.01992 20.2715 1.04853 20.2617 1.08839C20.2864 1.06761 20.3011 1.05467 20.319 1.03457L20.4878 1.18684C20.3975 1.21034 20.3027 1.1957 20.208 1.1957C20.1893 1.14937 20.1353 1.0734 20.0345 0.971205C20.0888 0.950084 20.1418 0.925898 20.1839 0.913975ZM20.9449 3.52304C20.9272 3.54144 20.9068 3.54995 20.8865 3.55881C20.7303 3.46888 20.5734 3.38406 20.4155 3.28527C20.4094 3.21475 20.314 3.10302 20.1727 2.97255C20.4552 3.03352 20.7544 3.22804 20.9449 3.52304ZM22.9442 3.89674C22.8508 3.83713 22.7591 3.77683 22.6624 3.77036C22.6308 3.74174 22.5945 3.71006 22.5602 3.68111C22.5204 3.62286 22.5068 3.56494 22.5085 3.50771C22.6746 3.66203 22.8148 3.78535 22.9442 3.89674ZM23.7171 4.78823C23.7714 4.8843 23.859 5.02022 23.7534 5.05053C23.6736 4.93267 23.5429 4.79096 23.3894 4.64345C23.4512 4.63937 23.5096 4.63698 23.585 4.62676C23.6434 4.70579 23.6335 4.77733 23.5894 4.83831C23.6301 4.82775 23.6736 4.80697 23.7171 4.78823ZM21.936 2.89045L21.9568 2.74056C22.0712 2.80665 22.1676 2.86183 22.206 2.86183C22.1279 2.79507 22.0467 2.7317 21.9683 2.66528L21.9802 2.58693C21.9995 2.60055 22.0318 2.60532 22.0712 2.61043L22.1748 2.70411C22.1656 2.71944 22.152 2.73749 22.1343 2.75589C22.1479 2.74397 22.1676 2.72864 22.1853 2.71535L22.4726 2.97084C22.5164 3.05907 22.586 3.11085 22.6549 3.13674L23.1245 3.55881C23.1218 3.56188 23.1201 3.56188 23.117 3.56494C23.1266 3.56494 23.131 3.56869 23.1361 3.56869L23.9279 4.28066C23.8318 4.26669 23.7255 4.26124 23.6199 4.28951C23.5262 4.23228 23.4288 4.16279 23.3245 4.09466C23.3052 4.01461 23.317 3.93898 23.3649 3.91684C23.3052 3.97884 23.2481 4.00064 23.1907 4.00064C22.9833 3.85212 22.7605 3.68111 22.5085 3.47399C22.5225 3.31422 22.6087 3.17694 22.372 3.0853L22.3394 3.32035C22.3282 3.31422 22.3177 3.3115 22.3085 3.30673C22.2352 3.242 22.1642 3.18443 22.0858 3.11698C22.1489 3.17353 22.2036 3.22225 22.2603 3.27811C22.0199 3.14355 21.8865 3.06248 21.7028 2.77258C21.8413 2.55661 21.788 2.93065 21.936 2.89045ZM23.8016 3.4171C23.7204 3.34318 23.6396 3.26892 23.5568 3.19397C23.6512 3.15446 23.7463 3.27948 23.8016 3.4171ZM24.2352 5.01C24.0318 4.8751 23.8977 4.79096 23.8142 4.73918C23.8403 4.72794 23.8682 4.72317 23.895 4.71261C23.9374 4.74803 23.985 4.79096 24.0308 4.83184C24.0688 4.89554 24.1177 4.93028 24.1656 4.94936C24.1907 4.97219 24.2077 4.98751 24.2352 5.01ZM24.2444 3.41403L24.5306 3.56665C24.4189 3.72778 24.3313 3.83951 24.2821 3.85211C24.1673 3.74787 24.0542 3.64329 23.9395 3.54076C23.9469 3.48659 23.9344 3.42323 23.9126 3.36873L24.2624 3.44095L24.2444 3.41403ZM25.3561 6.54226H25.352L25.3544 6.53953C25.3544 6.54226 25.3561 6.54226 25.3561 6.54226ZM25.5004 4.06502L25.8091 4.21423L25.674 4.3958C26.0139 4.81548 26.6838 4.6489 27.0115 5.10811C26.8176 5.20451 26.7426 4.97661 26.694 5.07268C26.9066 5.33192 27.2631 4.8843 27.3066 5.31352C26.912 5.05462 27.4471 5.58843 26.9952 5.45557C27.6604 5.60342 27.7959 6.37329 28.1239 6.58756C28.1511 6.41553 28.386 6.54226 28.4278 6.51228C28.4865 6.59642 28.3653 6.67682 28.3011 6.62674C28.3619 6.85362 28.259 7.01475 28.1086 7.12171L27.7932 6.8652C27.8213 6.93469 27.8213 7.01236 27.823 7.08322C27.6699 6.94082 27.5157 6.80184 27.3653 6.66353C27.3667 6.60732 27.3836 6.56338 27.4271 6.54226C27.2784 6.49252 27.2573 6.21796 27.1728 6.20092C27.2132 6.36137 27.1544 6.39203 27.0611 6.38351C27.002 6.33207 26.9487 6.27961 26.8933 6.22818C26.9381 6.18423 27.0074 6.16039 26.9728 6.08987L26.7154 5.88752L26.8967 6.10452L26.8091 6.15119C26.3059 5.68926 25.8003 5.22904 25.2947 4.76984C25.2919 4.54024 25.3884 4.30791 25.5004 4.06502ZM28.1028 8.03671C28.0553 8.02138 28.0112 8.004 27.9854 7.96755L28.0091 7.95222L28.1028 8.03671ZM30.1918 10.8345C30.0927 10.8256 30.0173 10.8216 30.002 10.8314C29.9956 10.6945 29.9012 10.5994 29.8832 10.4891C29.9871 10.5981 30.0896 10.718 30.1918 10.8345ZM30.0862 10.3811L30.1844 10.4829L30.1494 10.5797L30.2475 10.5497L30.3361 10.6454C30.3304 10.6584 30.3222 10.67 30.3158 10.6914L30.3966 10.7095L30.5406 10.8614C30.4502 10.859 30.3545 10.8485 30.2638 10.8423L29.9813 10.3777L30.0862 10.3811ZM30.4064 10.5044C30.5083 10.6124 30.6102 10.7214 30.7151 10.8314L30.7229 10.859C30.6825 10.8652 30.6234 10.8652 30.5606 10.8614L30.4645 10.7272L30.4862 10.7306C30.4655 10.7272 30.4282 10.6291 30.3864 10.6155L30.3243 10.5276L30.4064 10.5044ZM10.0646 24.9042C9.94982 24.7972 9.83267 24.6858 9.7213 24.5744C9.74031 24.5165 9.85576 24.5611 10.2167 24.8316C10.0629 24.7686 10.0401 24.817 10.0646 24.9042ZM14.9641 30.2923C14.9838 30.3155 15.0042 30.3427 15.0236 30.372C14.9974 30.3461 14.9737 30.3155 14.9502 30.2923H14.9641ZM31.165 10.9064C31.162 10.9169 31.1603 10.9302 31.1548 10.9387C30.9864 10.7667 30.8102 10.5885 30.6102 10.4032C30.4693 10.2779 30.8149 10.6155 31.1154 10.9415C30.9399 10.8556 30.6166 10.6124 30.5996 10.5085L30.691 10.764C30.58 10.6427 30.4815 10.5276 30.3901 10.4165C30.3569 10.3021 30.3188 10.1597 30.309 10.0152L31.0047 10.6427C30.9776 10.6505 30.9504 10.6638 30.9317 10.6945C30.964 10.67 30.9908 10.6584 31.0159 10.6546L31.1086 10.7378C30.9253 10.2114 30.7168 9.69739 30.4822 9.19765C30.3314 9.15507 30.2248 9.18948 30.1765 9.26851C30.0682 9.16904 29.9599 9.06957 29.8546 8.9701C29.8669 8.94591 29.8726 8.91082 29.8849 8.85087C29.8 8.85087 29.728 8.82226 29.656 8.78921C29.4964 8.64137 29.3355 8.48978 29.1755 8.33989C29.2254 8.31809 29.2869 8.31196 29.3484 8.30616L28.6264 7.82891C28.4461 7.65926 28.2658 7.49064 28.0818 7.32133C28.1269 7.30328 28.1494 7.27228 28.2006 7.21675C28.3976 7.19768 28.6387 7.17962 28.9456 7.15816L28.9049 7.18098L29.2648 7.44261L29.1504 7.48383L29.4696 7.52096C29.2978 7.69605 29.4495 7.65722 29.3232 7.77168C29.1504 8.19102 29.8645 8.03398 29.9871 8.41313L29.8726 8.4598C30.0136 8.44038 30.1263 8.54224 30.2258 8.68054C28.5803 5.48385 25.8947 2.91566 22.6165 1.42462C22.6148 1.43586 22.6135 1.44608 22.6087 1.46038C22.5829 1.49649 22.1656 1.57076 21.8033 1.62833C21.7547 1.58132 21.7051 1.53873 21.6559 1.49377C21.6997 1.39975 21.7075 1.23862 21.698 1.04036C20.7428 0.676539 19.7435 0.402994 18.7102 0.228239C18.736 0.244249 18.7598 0.257535 18.7812 0.27014L18.083 0.744329C17.9112 0.666319 17.7547 0.601936 17.6314 0.566508C17.7557 0.660188 17.8725 0.738538 17.9835 0.81246L17.5669 1.09861C17.2341 0.844141 16.8728 0.589672 16.5784 0.365863C16.5808 0.349171 16.5835 0.337249 16.5835 0.309996C16.6606 0.531421 17.0504 0.537553 17.1801 0.632595C17.0769 0.462949 17.0779 0.211887 17.1557 0.0436044C17.0368 0.0350881 16.9187 0.0248688 16.7991 0.0194183C16.6891 0.138306 16.6029 0.276611 16.4334 0.25549C16.337 0.181569 16.2528 0.113779 16.1839 0.0500772L16.1479 0.00272633C16.1105 0.00272633 16.0735 0 16.0361 0C8.24963 0 1.76534 5.5932 0.35582 12.9929L0.293681 13.3986C3.69576 17.3015 7.43604 20.8855 10.8249 24.8711C10.5458 24.6627 10.2571 24.4365 9.97699 24.2195L10.0167 24.2236C9.95356 24.1725 9.62045 23.8897 9.43538 23.8277C9.17834 23.6591 8.94438 23.5307 8.7583 23.4973C8.45099 23.2258 8.04046 22.8058 8.02484 23.017C8.09853 22.9383 8.38478 23.2452 8.6184 23.4946C8.57188 23.4973 8.52773 23.5157 8.48733 23.5365C8.34844 23.4101 8.1953 23.2769 8.0391 23.1467C7.86117 22.941 7.66592 22.7485 7.41804 22.6095L7.45234 22.664C6.79155 22.1299 6.08254 21.5596 5.51581 20.9461C5.53585 21.0034 5.57626 21.1182 5.52227 21.1345L5.44756 21.0214C5.50121 21.0299 5.49238 20.9666 5.34807 20.7649C5.30529 20.7267 5.24722 20.677 5.18202 20.6228L4.98745 20.3268C5.42889 20.5578 6.36268 21.6612 6.25708 21.1965C6.14265 21.0844 6.0401 20.988 5.94672 20.8995L6.26149 20.9822L6.03399 20.8582L5.93755 20.8886C5.45062 20.4147 5.24994 20.1963 4.89917 19.9555L4.71377 19.6533C4.73142 19.5195 5.00783 19.6322 5.24722 19.8165C5.39561 19.9034 5.45062 20.0761 5.30257 19.9885C6.02176 20.3575 4.89611 19.4725 5.42787 19.638C5.5406 19.8015 5.7603 19.9248 5.85911 20.0219C5.31106 19.2987 4.73142 19.3304 4.58202 18.6873C4.13176 18.5752 3.37181 18.1919 2.837 17.4309C3.18675 17.5454 2.13615 16.8184 2.65092 16.8896C2.30491 16.7792 1.88012 16.0935 1.65804 16.1538C1.79013 16.1845 2.0611 16.443 2.20542 16.6726C1.8954 16.4856 1.75142 16.583 1.45227 16.2717C1.42884 16.2144 1.48589 16.1991 1.48589 16.1991C1.45634 16.1868 1.42544 16.1749 1.40167 16.1657C1.41118 16.1538 1.42782 16.1504 1.45906 16.1719C0.576536 15.4705 0.0206719 15.278 0.0206719 15.278C-0.101231 16.5806 0.35582 19.0374 0.35582 19.0374C1.70524 26.1227 7.70837 31.5517 15.0514 32H17.0209C18.4854 31.9107 19.8946 31.6188 21.2267 31.16C20.6518 30.2964 20.0691 29.442 19.4861 28.5911C18.6654 28.9328 17.6301 29.1879 16.3638 29.1879C13.5366 29.1879 9.52197 28.4095 9.53623 25.4724L9.53284 25.3573L9.26662 25.253L9.20992 24.944L8.7583 24.8895C9.01365 25.2217 9.54676 25.8829 9.61298 26.2089C9.58276 26.2004 9.55287 26.1908 9.52571 26.1816C9.0167 25.7432 8.30193 25.2305 7.38545 24.7114C5.59765 23.174 3.94262 21.7245 2.50933 20.3752L2.60271 20.3994C2.80712 20.4433 3.00916 20.5298 3.21086 20.6712C3.09337 20.5929 2.97622 20.4733 2.86213 20.2682L4.10052 20.7046C3.70493 20.2423 3.31477 20.5319 2.8258 19.9647C2.91103 19.8976 2.97419 19.8397 3.05602 19.8063C3.15382 19.9248 3.23803 20.0352 3.29813 20.1364C3.05704 19.5491 3.39219 19.8976 3.37521 19.8029C3.49643 19.8346 3.65161 19.8949 3.86656 20.0066C4.33651 20.5142 3.72055 20.1122 3.89101 20.4433C4.43227 20.5142 4.26147 20.9666 4.63159 21.1345C4.79085 21.2633 4.97795 21.4019 5.18542 21.591C5.19017 21.6646 5.15825 21.7187 5.16165 21.7913C4.98032 21.6482 4.75621 21.421 4.58303 21.2023C4.963 21.8424 3.77963 20.6981 4.3922 21.5273C4.54976 21.6823 4.69713 21.8243 4.84857 21.9694C4.79662 21.9694 4.70358 21.9286 4.53686 21.8001C4.72973 22.09 4.8737 22.1173 5.01088 22.1265C5.14637 22.2563 5.28016 22.3847 5.41123 22.507L5.33856 22.664C5.67303 23.0865 6.42822 23.9687 7.10632 24.2808C6.92228 23.9776 7.06626 24.0321 7.23807 24.1084C7.62518 24.4133 8.01024 24.696 8.415 24.9621C8.04046 24.5656 7.63197 24.167 7.23807 23.7613C7.69275 24.0992 8.27917 24.571 8.39055 24.7393L8.1953 24.4971C8.25201 24.5635 8.31007 24.6283 8.37018 24.6991C8.19191 24.4661 8.0082 24.2396 7.82484 24.011C8.09853 24.0893 8.73351 24.3888 9.0639 24.5305C9.26662 24.7785 9.41637 25.0043 9.52741 25.2043L9.52197 25.0486H11.6049L11.6191 25.2608C11.7105 26.7958 13.9719 27.4451 16.3638 27.4451C17.2436 27.4451 17.9574 27.3249 18.5367 27.1419C18.1689 26.5788 17.8002 26.0178 17.4307 25.4598C17.5438 25.5429 17.5591 25.4891 17.6314 25.4485C18.045 25.8325 18.5414 26.3114 19.1503 26.9048C19.7713 26.6156 20.1836 26.2576 20.4464 25.9541C20.4226 25.9197 20.3968 25.8836 20.3734 25.8498C20.3948 25.875 20.4257 25.9057 20.46 25.9381C20.4953 25.8972 20.5282 25.8573 20.5578 25.8192C20.371 25.7551 20.3211 25.7623 20.3462 25.81C20.2623 25.6887 20.1842 25.5708 20.1112 25.4564C19.9092 25.4843 19.6844 25.5071 19.4627 25.5116L19.2318 25.5082L19.3642 23.5896L19.5931 23.5937C20.4182 23.6111 21.5754 23.1038 22.1741 22.6252L23.2933 21.73L23.6505 21.4442C23.6505 21.4442 23.7133 23.6935 23.7133 23.7007C23.7503 24.9767 23.7867 26.2961 23.9551 27.5218L23.987 27.75L22.1714 28.09C22.5051 28.4739 22.8515 28.8564 23.2084 29.2315C23.368 29.4625 23.5941 29.7299 23.8091 30.0014C28.694 27.2636 32 22.0277 32 16.0152C32 14.2281 31.7036 12.5109 31.165 10.9064Z\",\n fill: \"#4E9D2D\"\n })));\n};\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgLogo, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/logo.d30e00a9.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nconst Svg1Overview = _ref => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.4,\n d: \"M15.5233 8.94116H8.54418L13.1921 13.5891C13.3698 13.7667 13.6621 13.7812 13.8448 13.6091C14.983 12.5367 15.7659 11.0912 15.9957 9.46616C16.0351 9.18793 15.8042 8.94116 15.5233 8.94116ZM15.0577 7.03528C14.8154 3.52176 12.0077 0.714119 8.49418 0.471767C8.22595 0.453237 8.00006 0.679413 8.00006 0.948236V7.5294H14.5815C14.8504 7.5294 15.0762 7.30352 15.0577 7.03528ZM6.5883 8.94116V1.96206C6.5883 1.68118 6.34153 1.45029 6.06359 1.48971C2.55859 1.985 -0.120524 5.04705 0.00418193 8.71675C0.132417 12.4856 3.37742 15.5761 7.14801 15.5288C8.63036 15.5103 10.0001 15.0326 11.1262 14.2338C11.3586 14.0691 11.3739 13.727 11.1724 13.5256L6.5883 8.94116Z\",\n fill: \"#9FA2B4\"\n })));\n};\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(Svg1Overview, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/1. overview.1b1cfbb0.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nconst Svg2Tickets = _ref => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.4,\n d: \"M3.55556 5.33366H12.4444V10.667H3.55556V5.33366ZM14.6667 8.00033C14.6667 8.73671 15.2636 9.33366 16 9.33366V12.0003C16 12.7367 15.4031 13.3337 14.6667 13.3337H1.33333C0.596944 13.3337 0 12.7367 0 12.0003V9.33366C0.736389 9.33366 1.33333 8.73671 1.33333 8.00033C1.33333 7.26394 0.736389 6.66699 0 6.66699V4.00033C0 3.26394 0.596944 2.66699 1.33333 2.66699H14.6667C15.4031 2.66699 16 3.26394 16 4.00033V6.66699C15.2636 6.66699 14.6667 7.26394 14.6667 8.00033ZM13.3333 5.11144C13.3333 4.74324 13.0349 4.44477 12.6667 4.44477H3.33333C2.96514 4.44477 2.66667 4.74324 2.66667 5.11144V10.8892C2.66667 11.2574 2.96514 11.5559 3.33333 11.5559H12.6667C13.0349 11.5559 13.3333 11.2574 13.3333 10.8892V5.11144Z\",\n fill: \"#9FA2B4\"\n })));\n};\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(Svg2Tickets, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/2. tickets.36295275.svg\";\nexport { ForwardRef as ReactComponent };","var _g, _defs;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nconst Svg3Ideas = _ref => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.4,\n d: \"M5.50187 14.1985C5.50219 14.395 5.56031 14.5875 5.66937 14.7513L6.20344 15.5541C6.29467 15.6913 6.41841 15.8039 6.56366 15.8817C6.7089 15.9596 6.87114 16.0003 7.03594 16.0003H8.96438C9.12917 16.0003 9.29141 15.9596 9.43665 15.8817C9.5819 15.8039 9.70564 15.6913 9.79688 15.5541L10.3309 14.7513C10.44 14.5875 10.4982 14.3952 10.4984 14.1985L10.4997 13H5.50031L5.50187 14.1985ZM2.5 5.50003C2.5 6.88659 3.01406 8.15159 3.86125 9.11815C4.3775 9.70721 5.185 10.9378 5.49281 11.976C5.49406 11.9841 5.495 11.9922 5.49625 12.0003H10.5037C10.505 11.9922 10.5059 11.9844 10.5072 11.976C10.815 10.9378 11.6225 9.70721 12.1388 9.11815C12.9859 8.15159 13.5 6.88659 13.5 5.50003C13.5 2.45659 11.0284 -0.00934836 7.98281 2.66431e-05C4.795 0.00971414 2.5 2.59284 2.5 5.50003ZM8 3.00003C6.62156 3.00003 5.5 4.12159 5.5 5.50003C5.5 5.77628 5.27625 6.00003 5 6.00003C4.72375 6.00003 4.5 5.77628 4.5 5.50003C4.5 3.57003 6.07 2.00003 8 2.00003C8.27625 2.00003 8.5 2.22378 8.5 2.50003C8.5 2.77628 8.27625 3.00003 8 3.00003Z\",\n fill: \"#9FA2B4\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0H16V16H0V0Z\",\n fill: \"white\"\n })))));\n};\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(Svg3Ideas, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/3. ideas.78d6473a.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nconst Svg4Contacts = _ref => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.4,\n d: \"M2.4 7.20039C3.2825 7.20039 4 6.48289 4 5.60039C4 4.71789 3.2825 4.00039 2.4 4.00039C1.5175 4.00039 0.8 4.71789 0.8 5.60039C0.8 6.48289 1.5175 7.20039 2.4 7.20039ZM13.6 7.20039C14.4825 7.20039 15.2 6.48289 15.2 5.60039C15.2 4.71789 14.4825 4.00039 13.6 4.00039C12.7175 4.00039 12 4.71789 12 5.60039C12 6.48289 12.7175 7.20039 13.6 7.20039ZM14.4 8.00039H12.8C12.36 8.00039 11.9625 8.17789 11.6725 8.46539C12.68 9.01789 13.395 10.0154 13.55 11.2004H15.2C15.6425 11.2004 16 10.8429 16 10.4004V9.60039C16 8.71789 15.2825 8.00039 14.4 8.00039ZM8 8.00039C9.5475 8.00039 10.8 6.74789 10.8 5.20039C10.8 3.65289 9.5475 2.40039 8 2.40039C6.4525 2.40039 5.2 3.65289 5.2 5.20039C5.2 6.74789 6.4525 8.00039 8 8.00039ZM9.92 8.80039H9.7125C9.1925 9.05039 8.615 9.20039 8 9.20039C7.385 9.20039 6.81 9.05039 6.2875 8.80039H6.08C4.49 8.80039 3.2 10.0904 3.2 11.6804V12.4004C3.2 13.0629 3.7375 13.6004 4.4 13.6004H11.6C12.2625 13.6004 12.8 13.0629 12.8 12.4004V11.6804C12.8 10.0904 11.51 8.80039 9.92 8.80039ZM4.3275 8.46539C4.0375 8.17789 3.64 8.00039 3.2 8.00039H1.6C0.7175 8.00039 0 8.71789 0 9.60039V10.4004C0 10.8429 0.3575 11.2004 0.8 11.2004H2.4475C2.605 10.0154 3.32 9.01789 4.3275 8.46539Z\",\n fill: \"#9FA2B4\"\n })));\n};\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(Svg4Contacts, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/4. contacts.9ff32aae.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nconst Svg5Agents = _ref => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.4,\n d: \"M8 8C10.2094 8 12 6.20937 12 4C12 1.79063 10.2094 0 8 0C5.79063 0 4 1.79063 4 4C4 6.20937 5.79063 8 8 8ZM10.9937 9.01875L9.5 15L8.5 10.75L9.5 9H6.5L7.5 10.75L6.5 15L5.00625 9.01875C2.77812 9.125 1 10.9469 1 13.2V14.5C1 15.3281 1.67188 16 2.5 16H13.5C14.3281 16 15 15.3281 15 14.5V13.2C15 10.9469 13.2219 9.125 10.9937 9.01875Z\",\n fill: \"#9FA2B4\"\n })));\n};\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(Svg5Agents, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/5. agents.93764e43.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nconst Svg6Articles = _ref => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.4,\n d: \"M15 11.25V0.75C15 0.334375 14.6656 0 14.25 0H4C2.34375 0 1 1.34375 1 3V13C1 14.6562 2.34375 16 4 16H14.25C14.6656 16 15 15.6656 15 15.25V14.75C15 14.5156 14.8906 14.3031 14.7219 14.1656C14.5906 13.6844 14.5906 12.3125 14.7219 11.8313C14.8906 11.6969 15 11.4844 15 11.25ZM5 4.1875C5 4.08437 5.08437 4 5.1875 4H11.8125C11.9156 4 12 4.08437 12 4.1875V4.8125C12 4.91563 11.9156 5 11.8125 5H5.1875C5.08437 5 5 4.91563 5 4.8125V4.1875ZM5 6.1875C5 6.08437 5.08437 6 5.1875 6H11.8125C11.9156 6 12 6.08437 12 6.1875V6.8125C12 6.91563 11.9156 7 11.8125 7H5.1875C5.08437 7 5 6.91563 5 6.8125V6.1875ZM12.9187 14H4C3.44688 14 3 13.5531 3 13C3 12.45 3.45 12 4 12H12.9187C12.8594 12.5344 12.8594 13.4656 12.9187 14Z\",\n fill: \"#9FA2B4\"\n })));\n};\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(Svg6Articles, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/6. articles.4e4b0582.svg\";\nexport { ForwardRef as ReactComponent };","var _g, _defs;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nconst SvgA2Subscription = _ref => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.4,\n d: \"M5.03506 11.3324C4.7635 11.0609 4.90506 11.1374 4.25006 10.9621C3.95287 10.8824 3.69162 10.7293 3.45537 10.5459L2.03756 14.0221C1.90037 14.3587 2.15662 14.7243 2.51975 14.7106L4.16631 14.6478L5.29881 15.844C5.54881 16.1078 5.98756 16.0256 6.12475 15.689L7.75131 11.7009C7.41256 11.8896 7.03662 12.0003 6.64787 12.0003C6.0385 12.0003 5.466 11.7631 5.03506 11.3324ZM13.9626 14.0221L12.5447 10.5459C12.3085 10.7296 12.0472 10.8824 11.7501 10.9621C11.0916 11.1384 11.236 11.0615 10.9651 11.3324C10.5341 11.7631 9.96131 12.0003 9.35194 12.0003C8.96319 12.0003 8.58725 11.8893 8.2485 11.7009L9.87506 15.689C10.0122 16.0256 10.4513 16.1078 10.701 15.844L11.8338 14.6478L13.4804 14.7106C13.8435 14.7243 14.0997 14.3584 13.9626 14.0221ZM10.2188 10.6253C10.6963 10.1393 10.751 10.1812 11.431 9.99588C11.8651 9.87744 12.2044 9.53213 12.3207 9.09025C12.5544 8.20275 12.4938 8.30994 13.1316 7.66056C13.4494 7.33713 13.5735 6.86556 13.4572 6.42369C13.2238 5.53681 13.2235 5.66056 13.4572 4.77275C13.5735 4.33088 13.4494 3.85931 13.1316 3.53588C12.4938 2.8865 12.5544 2.99338 12.3207 2.10619C12.2044 1.66431 11.8651 1.319 11.431 1.20056C10.5597 0.962752 10.6647 1.02494 10.0263 0.375252C9.7085 0.0518145 9.24506 -0.074748 8.811 0.0436895C7.94006 0.281189 8.06162 0.281502 7.18912 0.0436895C6.75506 -0.074748 6.29162 0.051502 5.97381 0.375252C5.336 1.02463 5.441 0.962752 4.56944 1.20056C4.13537 1.319 3.796 1.66431 3.67975 2.10619C3.44631 2.99338 3.50662 2.8865 2.86881 3.53588C2.551 3.85931 2.42662 4.33088 2.54319 4.77275C2.77662 5.659 2.77694 5.53525 2.54319 6.42338C2.42694 6.86525 2.551 7.33681 2.86881 7.66056C3.50662 8.30994 3.446 8.20275 3.67975 9.09025C3.796 9.53213 4.13537 9.87744 4.56944 9.99588C5.26881 10.1865 5.321 10.1565 5.78131 10.6253C6.19475 11.0462 6.83881 11.1215 7.33569 10.8071C7.53438 10.681 7.76487 10.614 8.00022 10.614C8.23557 10.614 8.46606 10.681 8.66475 10.8071C9.16131 11.1215 9.80537 11.0462 10.2188 10.6253ZM5.05194 5.499C5.05194 3.84181 6.37194 2.49838 8.00006 2.49838C9.62819 2.49838 10.9482 3.84181 10.9482 5.499C10.9482 7.15619 9.62819 8.49963 8.00006 8.49963C6.37194 8.49963 5.05194 7.15619 5.05194 5.499Z\",\n fill: \"#9FA2B4\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0H16V16H0V0Z\",\n fill: \"white\"\n })))));\n};\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgA2Subscription, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/a_2. subscription.d6957eaf.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nconst SvgA1Settings = _ref => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.4,\n d: \"M15.2311 9.86546L13.8999 9.09671C14.0343 8.37171 14.0343 7.62796 13.8999 6.90296L15.2311 6.13421C15.3843 6.04671 15.453 5.86546 15.403 5.69671C15.0561 4.58421 14.4655 3.57796 13.6936 2.74046C13.5749 2.61233 13.3811 2.58108 13.2311 2.66858L11.8999 3.43733C11.3405 2.95608 10.6968 2.58421 9.99989 2.34046V0.806084C9.99989 0.631084 9.87802 0.477959 9.70614 0.440459C8.55927 0.184209 7.38427 0.196709 6.29365 0.440459C6.12177 0.477959 5.9999 0.631084 5.9999 0.806084V2.34358C5.30615 2.59046 4.6624 2.96233 4.0999 3.44046L2.77177 2.67171C2.61865 2.58421 2.42802 2.61233 2.30927 2.74358C1.5374 3.57796 0.946773 4.58421 0.599898 5.69983C0.546773 5.86858 0.618648 6.04983 0.771773 6.13733L2.10302 6.90608C1.96865 7.63108 1.96865 8.37483 2.10302 9.09983L0.771773 9.86858C0.618648 9.95608 0.549898 10.1373 0.599898 10.3061C0.946773 11.4186 1.5374 12.4248 2.30927 13.2623C2.42802 13.3905 2.62177 13.4217 2.77177 13.3342L4.10302 12.5655C4.6624 13.0467 5.30615 13.4186 6.00302 13.6623V15.1998C6.00302 15.3748 6.1249 15.528 6.29677 15.5655C7.44365 15.8217 8.61864 15.8092 9.70927 15.5655C9.88114 15.528 10.003 15.3748 10.003 15.1998V13.6623C10.6968 13.4155 11.3405 13.0436 11.903 12.5655L13.2343 13.3342C13.3874 13.4217 13.578 13.3936 13.6968 13.2623C14.4686 12.428 15.0593 11.4217 15.4061 10.3061C15.453 10.1342 15.3843 9.95296 15.2311 9.86546ZM7.99989 10.4998C6.62177 10.4998 5.4999 9.37796 5.4999 7.99983C5.4999 6.62171 6.62177 5.49983 7.99989 5.49983C9.37802 5.49983 10.4999 6.62171 10.4999 7.99983C10.4999 9.37796 9.37802 10.4998 7.99989 10.4998Z\",\n fill: \"#9FA2B4\"\n })));\n};\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgA1Settings, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/a_1. settings.ae230a31.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nconst SvgLogout = _ref => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.9999 8.66655C9.63125 8.66655 9.33328 8.96525 9.33328 9.33317V11.9999C9.33328 12.3672 9.03457 12.6665 8.66654 12.6665H6.66656V2.6666C6.66656 2.09727 6.30389 1.58861 5.75861 1.39928L5.56122 1.33324H8.66654C9.03457 1.33324 9.33328 1.63255 9.33328 1.99998V3.99996C9.33328 4.36788 9.63125 4.66658 9.9999 4.66658C10.3685 4.66658 10.6665 4.36788 10.6665 3.99996V1.99998C10.6665 0.897331 9.76919 0 8.66654 0H1.49998C1.47459 0 1.45335 0.0113525 1.4287 0.0146483C1.39659 0.0119628 1.36595 0 1.33336 0C0.598016 0 0 0.597895 0 1.33324V13.3331C0 13.9025 0.362667 14.4111 0.907949 14.6005L4.91999 15.9378C5.05598 15.9798 5.19123 15.9999 5.33332 15.9999C6.06866 15.9999 6.66656 15.4018 6.66656 14.6665V13.9999H8.66654C9.76919 13.9999 10.6665 13.1025 10.6665 11.9999V9.33317C10.6665 8.96525 10.3685 8.66655 9.9999 8.66655Z\",\n fill: \"#C5C7CD\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.8045 6.19512L13.1378 3.52852C12.9472 3.33785 12.6605 3.28048 12.4112 3.38375C12.1626 3.48714 11.9998 3.73042 11.9998 3.99983V5.99981H9.33324C8.96521 5.99981 8.6665 6.29839 8.6665 6.66643C8.6665 7.03447 8.96521 7.33305 9.33324 7.33305H11.9998V9.33303C11.9998 9.60243 12.1626 9.84572 12.4112 9.94911C12.6605 10.0524 12.9472 9.99501 13.1378 9.80446L15.8045 7.13774C16.0651 6.87712 16.0651 6.45574 15.8045 6.19512Z\",\n fill: \"#C5C7CD\"\n })));\n};\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgLogout, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/logout.dc2f646a.svg\";\nexport { ForwardRef as ReactComponent };","var _rect, _rect2, _rect3;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nconst SvgMenuCollapsed = _ref => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n x: 2,\n y: 2,\n width: 12,\n height: 2,\n fill: \"#4B506D\"\n })), _rect2 || (_rect2 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 2,\n y: 7,\n width: 6,\n height: 2,\n fill: \"#4B506D\"\n })), _rect3 || (_rect3 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 2,\n y: 12,\n width: 6,\n height: 2,\n fill: \"#4B506D\"\n })));\n};\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgMenuCollapsed, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/menu-collapsed.6bdeacc9.svg\";\nexport { ForwardRef as ReactComponent };","var _rect, _rect2, _rect3;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nconst SvgMenuOpen = _ref => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n x: 2,\n y: 2,\n width: 12,\n height: 2,\n fill: \"#4B506D\"\n })), _rect2 || (_rect2 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 2,\n y: 7,\n width: 12,\n height: 2,\n fill: \"#4B506D\"\n })), _rect3 || (_rect3 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 2,\n y: 12,\n width: 12,\n height: 2,\n fill: \"#4B506D\"\n })));\n};\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgMenuOpen, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/menu-open.b3ca73d2.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nconst SvgPerson = _ref => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 17,\n height: 16,\n viewBox: \"0 0 17 16\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.35705 8C10.5927 8 12.4047 6.20937 12.4047 4C12.4047 1.79063 10.5927 0 8.35705 0C6.12136 0 4.30941 1.79063 4.30941 4C4.30941 6.20937 6.12136 8 8.35705 8ZM11.3865 9.01875L9.87491 15L8.863 10.75L9.87491 9H6.83918L7.85109 10.75L6.83918 15L5.32764 9.01875C3.07298 9.125 1.27368 10.9469 1.27368 13.2V14.5C1.27368 15.3281 1.95356 16 2.79155 16H13.9226C14.7605 16 15.4404 15.3281 15.4404 14.5V13.2C15.4404 10.9469 13.6411 9.125 11.3865 9.01875Z\",\n fill: \"#46A72A\"\n })));\n};\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgPerson, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/person.44912e88.svg\";\nexport { ForwardRef as ReactComponent };","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport axios from \"../../axios\";\nimport _ from \"lodash\";\n\nimport {\n UncontrolledButtonDropdown,\n DropdownMenu,\n DropdownItem,\n DropdownToggle,\n UncontrolledTooltip\n} from \"reactstrap\";\nimport { ReactComponent as PersonLogo } from \"assets/icons/person.svg\";\n\nimport {\n isNotConnectedToClientPartnerOrEpp,\n isClientMode,\n isPartnerMode,\n isAdminMode,\n hasAdminMode,\n} from \"util/Access\";\nimport { getAuthUser } from \"util/Auth\";\nimport { clearAllAlerts } from \"util/Alerts\";\nimport {\n CHANGE_ACTIVE_CLIENT,\n CHANGE_ACTIVE_PARTNER,\n CHANGE_ACTIVE_EPP,\n} from \"config/Api\";\nimport \"./UserModeSelection.scss\";\nimport { withTranslation } from \"react-i18next\";\n\nclass UserModeSelection extends React.Component {\n render() {\n const { t, tooltipTargetId, inNavbar, maxWidth } = this.props;\n\n const selectedRoleText = `${this.getUserFirstName()} - ${this.getUserModeName()}`;\n\n return (\n \n \n {inNavbar ?\n
\n \n \n {selectedRoleText}\n \n
\n :\n \n {selectedRoleText}\n \n\n }\n {tooltipTargetId &&\n {t(\"contracts.iconTooltip\", \"Rolli valik\")}\n }\n
\n {\n return {\n ...data,\n styles: {\n ...data.styles,\n overflow: 'auto',\n maxHeight: '400px',\n },\n };\n },\n },\n }}\n >\n {this.renderAdminOptions()}\n {this.renderPartnerOptions()}\n {this.renderClientOptions()}\n \n \n );\n }\n\n renderAdminOptions() {\n if (!hasAdminMode()) {\n return <>;\n }\n\n const { t } = this.props;\n\n return (\n <>\n \n {t(\"contracts.epp\", \"EPP\")}\n \n \n {this.getAdminName()}\n \n \n );\n }\n\n renderPartnerOptions() {\n const partners = this.getPartners();\n if (!partners.length) {\n return <>;\n }\n\n const isInPartnerMode = isPartnerMode();\n\n const partnerOptions = this.getPartners().map((partner, i) => (\n this.onChangeActivePartner(partner.id)}\n className=\"user-selection-option\"\n >\n \n {partner.name}\n \n \n ));\n\n const { t } = this.props;\n\n return (\n <>\n \n {t(\"contracts.partners\", \"Partnerid\")}\n \n {partnerOptions}\n \n );\n }\n\n renderClientOptions() {\n const isInClientMode = isClientMode();\n\n const clientOptions = this.getClients().map((client, i) => (\n this.onChangeActiveClient(client.id)}\n className=\"user-selection-option\"\n >\n \n {client.name}\n \n \n ));\n\n const { t } = this.props;\n\n return (\n <>\n \n {t(\"contracts.clients\", \"Kliendid\")}\n \n {clientOptions}\n {\n this.onChangeActiveClient(0)}\n >\n + {t(\"contracts.createNewClient\", \"Loo uus klient\")}\n \n }\n \n );\n }\n\n onChangeActiveClient = (clientId) => {\n axios\n .put(CHANGE_ACTIVE_CLIENT, { client: clientId })\n .then((response) => {\n clearAllAlerts();\n getAuthUser();\n })\n .catch((error) => { });\n };\n\n onChangeActivePartner = (partnerId) => {\n axios\n .put(CHANGE_ACTIVE_PARTNER, { partner: partnerId })\n .then((response) => {\n clearAllAlerts();\n getAuthUser();\n })\n .catch((error) => { });\n };\n\n onChangeActiveEPP = () => {\n axios\n .put(CHANGE_ACTIVE_EPP)\n .then((response) => {\n clearAllAlerts();\n getAuthUser();\n })\n .catch((error) => { });\n };\n\n onCreateNewClient = () => { };\n\n getUserFirstName = () => {\n return this.props.user ? this.props.user.first_name : \"\";\n };\n\n getUserModeName = () => {\n if (isNotConnectedToClientPartnerOrEpp()) {\n return this.props.t(\"contracts.userModeNewClient\", \"Uus klient\");\n } else if (isAdminMode()) {\n return this.getAdminName();\n } else if (isPartnerMode()) {\n return this.getPartnerName();\n } else if (isClientMode()) {\n return this.getClientName();\n }\n\n return \"\";\n };\n\n getClientName = () => {\n return _.get(this.props, \"user.user_type.client_name\", \"\");\n };\n\n getPartnerName = () => {\n return _.get(this.props, \"user.partner_user_type.partner_name\", \"\");\n };\n\n getAdminName = () => {\n return _.get(this.props, \"user.epp_user_type.profession\", \"\");\n };\n\n getClients = () => {\n return this.props.user ? this.props.user.clients || [] : [];\n };\n\n getPartners = () => {\n return this.props.user ? this.props.user.partners || [] : [];\n };\n}\n\nconst mapStateToProps = (state) => {\n return {\n user: state.auth.user,\n };\n};\n\nexport default connect(mapStateToProps)(\n withTranslation(\"common\")(UserModeSelection)\n);\n","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport PropTypes from \"prop-types\";\nimport { NavLink } from \"reactstrap\";\nimport { withTranslation } from \"react-i18next\";\nimport { changeLanguage } from \"util/General\";\nimport { languageTypes } from \"util/General\";\nimport { languageUpdate } from \"redux/actions/language\";\nimport _ from \"lodash\";\n\nclass LanguageMode extends React.Component {\n static propTypes = {\n userTypeId: PropTypes.number.isRequired,\n languageUpdate: PropTypes.func.isRequired,\n }\n\n updateLanguage = (languageCode) => {\n if (!this.props.userTypeId) {\n return;\n }\n // change backend language\n changeLanguage(this.props.userTypeId, languageCode);\n\n // change redux language\n this.props.languageUpdate(languageCode);\n }\n\n render() {\n const activeLanguage = this.props.language;\n return (\n <>\n \n this.updateLanguage(languageTypes.ET)}\n >\n ET\n \n \n \n this.updateLanguage(languageTypes.EN)}\n >\n ENG\n \n \n \n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n userTypeId: _.get(state, \"auth.user.active_profile_user_type_id\", null),\n language: state.language,\n };\n};\n\nconst mapActionsToProps = {\n languageUpdate,\n}\n\nexport default connect(mapStateToProps, mapActionsToProps)(withTranslation()(LanguageMode));\n","import * as actionTypes from \"./actionTypes\";\n\nexport const languageUpdate = (language) => {\n return {\n type: actionTypes.LANGUAGE_UPDATE,\n language,\n };\n};\n","import axios from \"../axios\";\nimport store from \"redux/store\";\n\nimport { NOTIFICATIONS } from \"../config/Api\";\nimport {\n notificationsFetchStart,\n notificationsFetchSuccess,\n notificationsFetchFail,\n} from \"../redux/actions/notifications\";\nimport { getServerErrorMessage } from \"util/Errors\";\n\nexport function fetchNotifications() {\n store.dispatch(notificationsFetchStart());\n return axios\n .get(NOTIFICATIONS)\n .then((resp) => {\n store.dispatch(notificationsFetchSuccess(resp.data));\n return resp.data;\n })\n .catch((err) => {\n const errorMessage = getServerErrorMessage(err);\n store.dispatch(notificationsFetchFail(errorMessage));\n throw Error(errorMessage);\n });\n}\n\nexport function markNotificationSeen(id) {\n return axios\n .put(NOTIFICATIONS + \"notification/\" + id + \"/\")\n .then((resp) => {\n return resp.data;\n })\n .catch((err) => {\n const errorMessage = getServerErrorMessage(err);\n throw Error(errorMessage);\n });\n}\n\nexport function removeNotification(id) {\n return axios\n .delete(NOTIFICATIONS + \"notification/\" + id + \"/\")\n .then((resp) => {\n return resp.data;\n })\n .catch((err) => {\n const errorMessage = getServerErrorMessage(err);\n throw Error(errorMessage);\n });\n}\n","import * as actionTypes from \"./actionTypes\";\n\nexport const notificationsFetchStart = () => {\n return {\n type: actionTypes.NOTIFICATIONS_FETCH_START,\n };\n};\n\nexport const notificationsFetchSuccess = (data) => {\n return {\n type: actionTypes.NOTIFICATIONS_FETCH_SUCCESS,\n data,\n };\n};\n\nexport const notificationsFetchFail = (err) => {\n return {\n type: actionTypes.NOTIFICATIONS_FETCH_FAIL,\n error: err,\n };\n};\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { useHistory } from \"react-router\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { Row, Col, DropdownItem } from \"reactstrap\";\nimport moment from \"moment\";\nimport urls from \"config/urls\";\n\nexport default function NotificationDropdownItems(props) {\n const { t } = useTranslation();\n const history = useHistory();\n const visibleNotificationsCount = 3;\n const notifications = props.notifications.slice(\n 0,\n visibleNotificationsCount\n );\n\n return notifications.map((notification, i) => (\n \n \n history.push(history.push(urls.PROFILE_NOTIFICATIONS))\n }\n className=\"notification-option text-nowrap\"\n >\n \n \n \n {notification.message}\n \n \n \n \n \n {moment(notification.created_at).format(\"DD.MM.YYYY\")}\n \n \n {t(\"notifications.dropdown.viewButton\", \"Vaatan\")}\n \n \n \n
\n \n ));\n}\n\nNotificationDropdownItems.propTypes = {\n notifications: PropTypes.array,\n};\n","var _path;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nconst SvgNotifications = _ref => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 14,\n height: 16,\n viewBox: \"0 0 14 16\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.00002 16C8.10377 16 8.99908 15.1047 8.99908 14H5.00096C5.00096 15.1047 5.89627 16 7.00002 16ZM13.731 11.3216C13.1272 10.6728 11.9975 9.69687 11.9975 6.5C11.9975 4.07188 10.295 2.12812 7.9994 1.65125V1C7.9994 0.447812 7.5519 0 7.00002 0C6.44815 0 6.00065 0.447812 6.00065 1V1.65125C3.70502 2.12812 2.00252 4.07188 2.00252 6.5C2.00252 9.69687 0.872834 10.6728 0.269084 11.3216C0.0815841 11.5231 -0.00154089 11.7641 2.16059e-05 12C0.00345911 12.5125 0.405647 13 1.00315 13H12.9969C13.5944 13 13.9969 12.5125 14 12C14.0016 11.7641 13.9185 11.5228 13.731 11.3216Z\",\n fill: \"#C5C7CD\"\n })));\n};\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgNotifications, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/notifications.f91d827c.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useEffect } from \"react\";\nimport { useTranslation, Trans } from 'react-i18next';\n\nimport {\n UncontrolledButtonDropdown,\n DropdownMenu,\n DropdownItem,\n DropdownToggle,\n Row,\n Col,\n} from \"reactstrap\";\n\nimport { fetchNotifications } from \"util/Notifications\";\nimport { useSelector } from \"react-redux\";\nimport NotificationDropdownItems from \"components/Profile/Notifications/NotificationDropdown/NotificationDropdownItems\";\n\nimport \"./NotificationDropdown.scss\";\n\nimport { ReactComponent as NotificationsIcon } from \"assets/icons/notifications.svg\";\nimport { useHistory } from \"react-router\";\nimport urls from \"config/urls\";\n\nexport default function NotificationDropdown(props) {\n const { t } = useTranslation();\n const notifications = useSelector(\n (state) => state.notifications.notifications\n );\n const history = useHistory();\n\n useEffect(() => {\n fetchNotifications();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const sumProperty = (arr) => {\n return arr.reduce((total, obj) => {\n if (obj.is_seen === false) {\n return total + 1;\n }\n return total;\n }, 0);\n };\n\n const renderNotificationsCount = (notifications) => {\n const unseenNotificationsCount = sumProperty(notifications);\n if (unseenNotificationsCount < 0) {\n return null;\n }\n\n const baseClasses = \"badge notification-number\";\n\n if (unseenNotificationsCount > 99) {\n return 99+;\n }\n\n return {unseenNotificationsCount};\n };\n\n return (\n \n \n \n \n
\n \n {renderNotificationsCount(notifications)}\n
\n \n
\n
\n \n \n {t(\"notifications.dropdown.header\", \"Teavitused\")}\n \n
\n {notifications && notifications.length === 0 && (\n \n {t(\"notifications.dropdown.noNotificationsText\", \"Teavitused puuduvad!\")}\n \n )}\n \n \n history.push(urls.PROFILE_NOTIFICATIONS)}\n className=\"bold-12 color-info notification-link\"\n >\n {notifications.length > 3 &&\n Vaata kõiki {{ count: notifications.length }}\n }\n \n \n \n \n );\n}\n","import { Nav, Navbar, NavItem, NavLink, UncontrolledTooltip } from \"reactstrap\";\nimport React from \"react\";\nimport { withRouter, matchPath } from \"react-router\";\nimport { connect } from \"react-redux\";\n\nimport urls from \"config/urls\";\nimport { logout } from \"../../util/Auth\";\n\nimport { ReactComponent as MenuCollapsed } from \"../../assets/icons/menu-collapsed.svg\";\nimport { ReactComponent as MenuOpen } from \"../../assets/icons/menu-open.svg\";\nimport { ReactComponent as LogOut } from \"../../assets/icons/logout.svg\";\n\nimport UserModeSelection from \"components/UserModeSelection/UserModeSelection\";\nimport LanguageMode from \"components/Navbar/LanguageMode\";\nimport NotificationDropdown from \"components/Profile/Notifications/NotificationDropdown/NotificationDropdown\";\nimport { withTranslation } from \"react-i18next\";\nimport { isClientMode } from \"util/Access\";\n\nimport \"./Navbar.scss\"\n\nclass TopNavbar extends React.Component {\n state = {\n client: this.props.user\n ? this.props.user.clients.map((client) => {\n return client.name\n ? client.id === this.props.activeClientId\n : null;\n })\n : null,\n };\n\n logOut = () => {\n this.props.logOut();\n this.props.history.push(urls.DOMAIN);\n };\n\n getRouteComponent = (routes) => {\n const pathname = this.props.location.pathname;\n // eslint-disable-next-line array-callback-return\n for (const route of routes) {\n const routeLabelComponentOrText = route.labelComponent ? : route.label;\n if (route.routes) {\n // eslint-disable-next-line array-callback-return\n for (const subRoute of route.routes) {\n if (matchPath(pathname, { path: subRoute.path })) {\n const subrouteLabelComponentOrText = subRoute.labelComponent ? : subRoute.label;\n\n return (\n \n {routeLabelComponentOrText}\n {(routeLabelComponentOrText && subrouteLabelComponentOrText) ? \" · \" : \"\"}\n {subrouteLabelComponentOrText}\n \n );\n }\n }\n }\n if (matchPath(pathname, { path: route.path, exact: true })) {\n return routeLabelComponentOrText;\n }\n }\n\n return \"\";\n };\n\n render() {\n const { t } = this.props;\n let routeComponent = this.getRouteComponent(this.props.routes);\n let header = (\n {routeComponent}\n );\n if (this.props.headerSuffix) {\n header = (\n {routeComponent}\n {\" · \"}\n {this.props.headerSuffix}\n );\n }\n\n return (\n \n
\n {!this.props.menuOpen ? (\n \n ) : (\n \n )}\n
\n\n
\n {header}\n
\n \n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n user: state.auth.user ? state.auth.user : \"\",\n activeClientId: state.auth.user\n ? state.auth.user.active_client_id\n : null,\n clientName: state.auth.user\n ? // eslint-disable-next-line array-callback-return\n state.auth.user.clients.map((client) => {\n if (client.active_client) return client.name;\n })\n : null,\n headerSuffix: state.navigation.headerSuffix,\n };\n};\n\nexport default withRouter(\n connect(mapStateToProps)(withTranslation(\"common\")(TopNavbar))\n);\n","var _rect, _path;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nconst SvgInfoDefault = _ref => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 16,\n height: 16,\n rx: 8,\n fill: \"#9FA2B4\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M8.05037 4.7C8.51981 4.7 8.90037 4.31944 8.90037 3.85C8.90037 3.38056 8.51981 3 8.05037 3C7.58092 3 7.20037 3.38056 7.20037 3.85C7.20037 4.31944 7.58092 4.7 8.05037 4.7ZM7.15039 12.0884C7.15039 12.5088 7.53095 12.8496 8.00039 12.8496C8.46983 12.8496 8.85039 12.5088 8.85039 12.0884L8.85039 7.6108C8.85039 7.19041 8.46983 6.84961 8.00039 6.84961C7.53095 6.84961 7.15039 7.19041 7.15039 7.6108L7.15039 12.0884Z\",\n fill: \"#F0F1F7\"\n })));\n};\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgInfoDefault, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/info-default.bebde736.svg\";\nexport { ForwardRef as ReactComponent };","var _rect, _path;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nconst SvgSuccessDefault = _ref => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 16,\n height: 16,\n rx: 8,\n fill: \"#9FA2B4\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5 7.77778L7.07087 9.92535C7.1102 9.96613 7.17552 9.96613 7.21484 9.92535L11 6\",\n stroke: \"#F0F1F7\",\n strokeWidth: 1.7,\n strokeLinecap: \"round\"\n })));\n};\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgSuccessDefault, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/success-default.4d78e5b3.svg\";\nexport { ForwardRef as ReactComponent };","var _rect, _path;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nconst SvgAlertDefault = _ref => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 16,\n height: 16,\n rx: 8,\n fill: \"#9FA2B4\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M8.00042 11.1496C7.53097 11.1496 7.15042 11.5302 7.15042 11.9996C7.15042 12.4691 7.53097 12.8496 8.00042 12.8496C8.46986 12.8496 8.85042 12.4691 8.85042 11.9996C8.85042 11.5302 8.46986 11.1496 8.00042 11.1496ZM8.90039 3.76119C8.90039 3.3408 8.51983 3 8.05039 3C7.58095 3 7.20039 3.3408 7.20039 3.76119L7.20039 8.23881C7.20039 8.6592 7.58095 9 8.05039 9C8.51983 9 8.90039 8.6592 8.90039 8.23881L8.90039 3.76119Z\",\n fill: \"#F0F1F7\"\n })));\n};\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgAlertDefault, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/alert-default.1c0faafb.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\nimport PropTypes from \"prop-types\";\nimport {Card, CardBody, Row, Col} from \"reactstrap\";\n\nimport {ReactComponent as InfoIcon} from 'assets/icons/info-default.svg';\nimport {ReactComponent as SuccessIcon} from 'assets/icons/success-default.svg';\nimport {ReactComponent as ErrorIcon} from 'assets/icons/alert-default.svg';\n\nimport {alertType, createAlertClassName} from \"util/Alerts\";\n\nimport \"./Alert.scss\";\n\nconst AlertIcon = props => {\n switch (props.alertType) {\n case alertType.SUCCESS_ICON:\n return ; \n case alertType.ERROR_ICON:\n return ;\n default:\n return ;\n }\n}\n\nclass Alert extends React.Component {\n static propTypes = {\n className: PropTypes.string.isRequired,\n type: PropTypes.string.isRequired,\n content: PropTypes.any,\n }\n\n render() {\n return (\n <>\n {/* eslint-disable-next-line react/jsx-no-duplicate-props */}\n \n \n \n \n \n \n \n {this.props.content}\n \n \n \n \n \n );\n }\n}\n\nexport default Alert;","import React from \"react\";\nimport {connect} from \"react-redux\";\nimport PropTypes from \"prop-types\";\n\nimport {Row, Col} from \"reactstrap\";\n\nimport Alert from \"components/Alerts/Alert/Alert\";\nimport {isGlobal} from \"util/Alerts\";\n\nimport \"./Alerts.scss\";\n\nconst Alerts = (props) => {\n let filteredAlerts = [];\n const alerts = props.manualAlerts ? props.manualAlerts : props.alerts;\n\n for (const alert of alerts) {\n if (props.hideGlobal && isGlobal(alert)) {\n continue;\n }\n else if (\n props.filterGroups && \n props.filterGroups.length && \n !props.filterGroups.includes(alert.group)\n ) {\n continue;\n }\n filteredAlerts.push(alert);\n }\n\n const filteredAlertsList = filteredAlerts.map((alert, index) => {\n return (\n \n );\n }\n \n );\n\n return (\n \n \n {filteredAlertsList}\n \n \n );\n};\n\nAlerts.propTypes = {\n alerts: PropTypes.array.isRequired,\n manualAlerts: PropTypes.array,\n hideGlobal: PropTypes.bool,\n filterGroups: PropTypes.array,\n className: PropTypes.string,\n}\n\nconst mapStateToProps = state => {\n return {\n alerts: state.alerts.alertsList,\n }\n}\n\nexport default connect(mapStateToProps)(Alerts);","import React from \"react\";\nimport { NavLink } from \"react-router-dom\";\nimport { Row, Col } from \"reactstrap\";\nimport { withTranslation } from \"react-i18next\";\n\nimport { ReactComponent as InactiveOverviewLogo } from \"assets/icons/sidebar/inactive/1. overview.svg\";\nimport { ReactComponent as InactiveTicketsLogo } from \"assets/icons/sidebar/inactive/2. tickets.svg\";\n\nimport urls from \"config/urls\";\n\nimport \"components/Layout/Layout.scss\";\n\nfunction Footer({ children, t }) {\n const content = (\n \n \n \n \n {t(\"footer.termsAndConditions.text\", \"Pakendiettevõtja tingimused\")}\n \n \n \n {t(\"footer.privacyPolicy.text\", \"Privaatsuspoliitika\")}\n \n \n );\n\n // invisible part quick hack to reduce overlap with content.\n\n return (\n <>\n
\n {content}\n
\n
\n {content}\n
\n \n )\n}\n\nexport default withTranslation()(Footer);\n","import React from \"react\";\nimport CookieConsent from \"react-cookie-consent\";\nimport { Link } from \"react-router-dom\";\nimport urls from \"config/urls\";\n\nconst CustomCookieConsent = () => {\n return (\n console.log(\"User accepted cookies.\")}\n overlay={false}\n >\n
\n See veebileht kasutab parima võimaliku kogemuse kasutamiseks küpsiseid.{\" \"}\n \n Jätkates kodulehe kasutamist, nõustute küpsistega vastavalt küpsiste kasutuspoliitikale.\n \n
\n \n );\n}\n\nexport default CustomCookieConsent;\n","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport { withRouter, NavLink } from \"react-router-dom\";\n\nimport { alertsClearUnincludedGroups } from \"redux/actions/alerts\";\n\nimport { updateActiveAlertGroups } from \"util/Alerts\";\nimport urls from \"../../config/urls\";\nimport { logout } from \"../../util/Auth\";\nimport { isClientMode, isPartnerMode, isAdminMode } from \"util/Access\";\n\nimport { ReactComponent as Logo } from \"../../assets/icons/logo.svg\";\nimport { ReactComponent as InactiveOverviewLogo } from \"../../assets/icons/sidebar/inactive/1. overview.svg\";\nimport { ReactComponent as InactiveTicketsLogo } from \"../../assets/icons/sidebar/inactive/2. tickets.svg\";\nimport { ReactComponent as InactiveIdeasLogo } from \"../../assets/icons/sidebar/inactive/3. ideas.svg\";\nimport { ReactComponent as InactiveContactsLogo } from \"../../assets/icons/sidebar/inactive/4. contacts.svg\";\nimport { ReactComponent as InactiveAgentsLogo } from \"../../assets/icons/sidebar/inactive/5. agents.svg\";\nimport { ReactComponent as InactiveArticlesLogo } from \"../../assets/icons/sidebar/inactive/6. articles.svg\";\nimport { ReactComponent as InactiveSubscriptionLogo } from \"../../assets/icons/sidebar/inactive/a_2. subscription.svg\";\nimport { ReactComponent as InactiveSettingsLogo } from \"assets/icons/sidebar/inactive/a_1. settings.svg\";\nimport { ReactComponent as LogOutLogo } from \"assets/icons/logout.svg\";\n\nimport { Nav, NavItem } from \"reactstrap\";\nimport TopNavbar from \"../Navbar/Navbar\";\nimport Alerts from \"components/Alerts/Alerts\";\nimport Sidebar from \"react-sidebar\";\nimport Footer from \"components/Layout/Footer/Footer\";\nimport UserModeSelection from \"components/UserModeSelection/UserModeSelection\";\nimport LanguageMode from \"components/Navbar/LanguageMode\";\nimport CookieConsent from \"components/Misc/CookieConsent\";\n\nimport { withTranslation } from \"react-i18next\";\n\nimport \"./Layout.scss\";\n\nconst minimizedSidebarListener = window.matchMedia(`(min-width: 1200px)`);\nconst mobileSidebarListener = window.matchMedia(`(min-width: 992px)`);\n\nclass Layout extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n sidebarDocked: minimizedSidebarListener.matches,\n sidebarOpen: false,\n minimizedSidebar: false,\n };\n\n this.mediaQueryChanged = this.mediaQueryChanged.bind(this);\n this.onSetSidebarOpen = this.onSetSidebarOpen.bind(this);\n }\n\n componentDidMount() {\n updateActiveAlertGroups(this.props.location.pathname);\n }\n\n componentWillMount() {\n minimizedSidebarListener.addListener(this.mediaQueryChanged);\n mobileSidebarListener.addListener(this.mediaQueryChanged);\n }\n\n componentWillUnmount() {\n minimizedSidebarListener.removeListener(this.mediaQueryChanged);\n mobileSidebarListener.removeListener(this.mediaQueryChanged);\n }\n\n onSetSidebarOpen(open) {\n this.setState({ sidebarOpen: open });\n }\n\n mediaQueryChanged() {\n this.setState({\n sidebarOpen: false,\n minimizedSidebar: !mobileSidebarListener.matches\n ? false\n : !this.state.minimizedSidebar,\n sidebarDocked: mobileSidebarListener.matches,\n });\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.location.pathname !== this.props.location.pathname) {\n updateActiveAlertGroups(this.props.location.pathname);\n this.props.alertsClearUnincludedGroups(\n this.props.location.pathname\n );\n }\n }\n\n toggleSidebar = () => {\n this.setState({\n minimizedSidebar: !mobileSidebarListener.matches\n ? false\n : !this.state.minimizedSidebar,\n sidebarOpen: !this.state.sidebarOpen,\n });\n };\n\n hideMenuOnClick = () => {\n if (this.state.sidebarDocked === false) {\n this.setState({ sidebarOpen: false });\n }\n };\n\n checkActive = (match) => {\n const { pathname } = this.props.location;\n if (!pathname) return false;\n return pathname === match || pathname.includes(match);\n };\n\n render() {\n const { t } = this.props;\n return (\n
\n \n \n \n {!this.state.minimizedSidebar ? (\n \n {t(\"sidebar.title\", \"Pakendiregister\")}\n \n ) : null}\n \n\n {this.renderLinks()}\n\n \n \n }\n open={this.state.sidebarOpen} // open property controls if sidebar is visible or not\n docked={this.state.sidebarDocked} // docked property controls if sidebar is docked to page or on top of the page\n onSetOpen={this.onSetSidebarOpen}\n shadow={false}\n sidebarClassName={\n this.state.minimizedSidebar\n ? \"sidebar minimized-sidebar\"\n : \"sidebar\"\n }\n styles={{\n sidebar: { zIndex: 101 },\n overlay: { zIndex: 100 },\n dragHandle: { zIndex: 100 },\n }}\n >\n
\n \n
\n \n\n {isClientMode() &&\n this.props.user &&\n this.props.user.user_type &&\n this.props.user.user_type.is_verified &&\n <>\n {this.props.children}\n
\n \n\n }\n\n {isPartnerMode() &&\n this.props.user &&\n this.props.user.partner_user_type &&\n this.props.user.partner_user_type.is_verified &&\n this.props.children}\n\n {isAdminMode() && this.props.children}\n
\n
\n \n \n
\n );\n }\n\n renderLinks() {\n if (isAdminMode()) {\n return this.renderAdminLinks();\n }\n if (isPartnerMode()) {\n return this.renderPartnerLinks();\n }\n if (isClientMode()) {\n return this.renderClientLinks();\n }\n\n return this.renderClientLinks();\n }\n\n renderClientLinks() {\n const { t } = this.props;\n return (\n \n );\n }\n\n renderPartnerLinks() {\n const { t } = this.props;\n return (\n \n );\n }\n\n renderAdminLinks() {\n const { t } = this.props;\n const adminLinks = [\n {\n toUrl: urls.EPP_REGISTRY_APPLICATIONS,\n isActiveUrl: urls.EPP_REGISTRY,\n text: t(\"sidebar.packagesRegistry\", \"Pakendite testimine\"),\n logo: ,\n },\n {\n toUrl: urls.EPP_REPORTS_SALES,\n isActiveUrl: urls.EPP_REPORTS,\n text: t(\"sidebar.reports\"),\n logo: ,\n },\n {\n toUrl: urls.EPP_DEBTS,\n isActiveUrl: urls.EPP_DEBTS,\n text: t(\"sidebar.debts\", \"Võlgnevused\"),\n logo: ,\n },\n {\n toUrl: urls.EPP_USERS_CLIENTS,\n isActiveUrl: urls.EPP_USERS,\n text: t(\"sidebar.users\", \"Kasutajad\"),\n logo: ,\n },\n {\n toUrl: urls.EPP_PROFILE,\n isActiveUrl: urls.EPP_PROFILE,\n text: t(\"sidebar.profile\", \"Profiil\"),\n logo: ,\n },\n {\n toUrl: urls.EPP_SETTINGS_CATEGORIES,\n isActiveUrl: urls.EPP_SETTINGS,\n text: t(\"sidebar.settings\", \"Seaded\"),\n logo: ,\n },\n ];\n return (\n \n );\n }\n\n renderNavItem(toUrl, isActiveUrl, text, logo) {\n return (\n \n this.checkActive(isActiveUrl)}\n className=\"sidebar-link\"\n >\n {logo ? logo : }\n {this.state.minimizedSidebar ? null : (\n {text}\n )}\n \n \n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n activeGroups: state.alerts.activeGroups,\n user: state.auth.user,\n };\n};\n\nexport default withRouter(\n connect(mapStateToProps, { alertsClearUnincludedGroups })(\n withTranslation(\"common\")(Layout)\n )\n);\n","import React from \"react\";\nimport Footer from \"components/Layout/Footer/Footer\";\n\n\nimport \"./Layout.scss\";\nimport CookieConsent from \"components/Misc/CookieConsent\";\n\nclass PublicLayout extends React.Component {\n render() {\n return (\n
\n
\n <>\n {this.props.children}\n
\n \n \n
\n
\n );\n }\n}\n\nexport default PublicLayout;\n","var _rect, _path, _path2;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nconst SvgPlus = _ref => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n rx: 8,\n fill: \"#46A72A\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 7V17\",\n stroke: \"#F7F8FC\",\n strokeWidth: 2,\n strokeLinecap: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17 12L7 12\",\n stroke: \"#F7F8FC\",\n strokeWidth: 2,\n strokeLinecap: \"round\"\n })));\n};\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgPlus, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/plus.bbb14feb.svg\";\nexport { ForwardRef as ReactComponent };","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport \"./StatusCell.scss\";\n\nexport const statusTypes = {\n DEFAULT: \"DEFAULT\",\n INFO: \"INFO\",\n SUCCESS: \"SUCCESS\",\n WARNING: \"WARNING\",\n ERROR: \"ERROR\",\n}\n\nclass StatusCell extends React.Component {\n static propTypes = {\n status: PropTypes.oneOfType([PropTypes.string, PropTypes.node]).isRequired,\n type: PropTypes.oneOf(Object.keys(statusTypes)).isRequired,\n className: PropTypes.string,\n style: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n static defaultProps = {\n status: \"\",\n style: {}\n }\n\n getStatusTypeStyle() {\n const type = this.props.type;\n return `status-type-${String(type).toLowerCase()} bold-11 ${this.props.className}`;\n }\n\n render() {\n if (!this.props.status) {\n return false;\n }\n\n return (\n
\n \n {this.props.status}\n \n
\n );\n }\n}\n\nexport default StatusCell;\n","export const saleStatuses = {\n UNSUBMITTED: \"UNSUBMITTED\",\n SUBMITTED: \"SUBMITTED\",\n UNCONFIRMED: \"UNCONFIRMED\",\n CONFIRMED: \"CONFIRMED\",\n REJECTED: \"REJECTED\",\n}\n\nexport const saleStatusTypes = {\n [saleStatuses.UNSUBMITTED]: {\n client_type: \"WARNING\",\n admin_type: \"INFO\",\n },\n [saleStatuses.SUBMITTED]: {\n client_type: \"SUCCESS\",\n admin_type: \"SUCCESS\",\n },\n [saleStatuses.UNCONFIRMED]: {\n client_type: \"INFO\",\n admin_type: \"WARNING\",\n },\n [saleStatuses.CONFIRMED]: {\n client_type: \"SUCCESS\",\n admin_type: \"SUCCESS\",\n },\n [saleStatuses.REJECTED]: {\n client_type: \"ERROR\",\n admin_type: \"INFO\",\n },\n}\n\nexport function getSaleStatusType(statusValue, adminMode = false) {\n const typeField = adminMode ? \"admin_type\" : \"client_type\";\n return saleStatusTypes[statusValue] && saleStatusTypes[statusValue][typeField];\n}\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport {FadeLoader} from \"react-spinners\";\nimport {Row, Col} from \"reactstrap\";\n\nfunction WrappedLoader(props) {\n return (\n \n \n \n \n \n );\n}\n\nWrappedLoader.propTypes = {\n loading: PropTypes.bool,\n //size: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n extraProps: PropTypes.object,\n};\n\nWrappedLoader.defaultProps = {\n //size: 15,\n extraProps: {},\n loading: true,\n}\n\nexport default WrappedLoader;","import React from \"react\";\nimport moment from \"moment\";\nimport { Trans } from \"react-i18next\";\n\nexport const salesReportPeriodServerFormat = \"YYYY-MM\";\nexport const YEAR_MONTH_FORMAT = \"MMMM YYYY\";\nexport const YEAR_MONTH_FORMAT_XLSX = \"MMMM YYYY\";\nexport const YEAR_MONTH_FORMAT_DATE_FN = \"MMMM yyyy\";\n\nexport const DATE_FORMAT = \"DD.MM.YYYY\";\nexport const DATE_FORMAT_DATE_FN = \"dd.MM.yyyy\";\nexport const DATE_FORMAT_XLSX = 'dd\".\"mm\".\"yyyy'; // https://github.com/SheetJS/sheetjs/issues/718#issuecomment-313465344\n\nexport const DATE_TIME_FORMAT = \"DD.MM.YYYY HH:mm\";\n\nexport const salesReportPeriodDetailsFormat = YEAR_MONTH_FORMAT;\nexport const salesReportPeriodSortFormat = YEAR_MONTH_FORMAT;\nexport const salesReportPeriodListFormat = YEAR_MONTH_FORMAT;\nexport const salesReportPeriodSearchFormat = YEAR_MONTH_FORMAT_DATE_FN; // Datepicker needs yyyy. For date-fn, not for moment\n\nexport function parseSalesReportPeriodDate(period) {\n return moment(period, salesReportPeriodServerFormat);\n}\n\nexport function secondDateIsSameOrAfterFirstDate(\n firstDate,\n secondDate,\n precision = \"month\"\n) {\n const firstMoment = moment(firstDate);\n if (!firstMoment.isValid()) {\n throw Error(\"First argument is not a valid moment.\");\n }\n const secondMoment = moment(secondDate);\n if (!secondMoment.isValid()) {\n throw Error(\"Second argument is not a valid moment.\");\n }\n\n return secondMoment.isSameOrAfter(firstMoment, precision);\n}\n\nexport function getFromAndToDatePeriodAsString(\n fromDate,\n toDate,\n format = salesReportPeriodListFormat\n) {\n const fromMoment = moment(fromDate);\n const toMoment = moment(toDate);\n\n const fromStr = fromMoment.isValid() ? (\n fromMoment.format(format)\n ) : (\n Vanim\n );\n const toStr = toMoment.isValid() ? (\n toMoment.format(format)\n ) : (\n Uusim\n );\n\n return (\n
\n {fromStr} - {toStr}\n
\n );\n}\n","import React from \"react\";\nimport { Card, CardBody, CardHeader, Col, Row } from \"reactstrap\";\nimport { withRouter, Link, NavLink } from \"react-router-dom\";\nimport urls, { getSaleReportUrl } from \"config/urls\";\nimport \"./Dashboard.scss\";\nimport { ReactComponent as Plus } from \"assets/icons/plus.svg\";\n\nimport {\n BarChart,\n Bar,\n XAxis,\n YAxis,\n CartesianGrid,\n Tooltip,\n Legend,\n ResponsiveContainer,\n Cell,\n} from \"recharts\";\nimport {\n fetchLastPackages,\n fetchLastReports,\n fetchStatistics,\n} from \"util/Dashboard\";\nimport { isConnectedToClientWithActiveContract } from \"util/Access\";\nimport { connect } from \"react-redux\";\nimport StatusCell from \"../Table/Cell/Status/StatusCell\";\nimport { getSaleStatusType } from \"../Reports/Sales/helpers/Options\";\nimport WrappedLoader from \"components/Loader/WrappedLoader\";\nimport moment from \"moment\";\nimport { DATE_FORMAT } from \"util/DateTime\";\nimport { withTranslation } from \"react-i18next\";\nimport { currencyFormatter } from \"util/General\";\n\nclass Dashboard extends React.Component {\n componentDidMount() {\n // User has contract\n if (isConnectedToClientWithActiveContract()) {\n fetchLastPackages();\n fetchLastReports();\n fetchStatistics();\n }\n }\n\n render() {\n const { t } = this.props;\n\n const isClientWithActiveContract = isConnectedToClientWithActiveContract()\n\n return (\n <>\n \n \n \n {this.props.lastPackagesLoading ? (\n \n ) : (\n <>\n \n \n \n \n {t(\n \"dashboard.packages.latestPackages\",\n \"Viimati lisatud pakendid\"\n )}\n \n \n {t(\n \"dashboard.packages.allPackages\",\n \"Kõik pakendid\"\n )}{\" \"}\n -{\" \"}\n {\n this.props.lastPackages\n .all_packages_count\n }\n \n \n \n \n \n

\n {t(\n \"dashboard.packages.notRegisteredPackages\",\n \"Registreerimata pakendid\"\n )}{\" \"}\n -{\" \"}\n {\n this.props.lastPackages\n .not_registered_packages\n }\n

\n \n
\n
\n \n {isClientWithActiveContract &&\n \n \n \n {t(\n \"dashboard.packages.registerNewPackage\",\n \"Registreeri uus pakend\"\n )}\n \n \n \n \n \n \n }\n\n
\n {this.props.lastPackages.packages.map(\n (item, index) => {\n return (\n \n \n \n {item.name}{\" \"}\n -{\" \"}\n {moment(\n item.created_at\n ).format(\n DATE_FORMAT\n )}\n \n \n \n );\n }\n )}\n
\n
\n \n )}\n
\n \n \n \n {this.props.lastReportsLoading ? (\n \n ) : (\n <>\n \n \n \n \n {t(\n \"dashboard.reports.latestSalesReports\",\n \"Viimati lisatud müügiaruanded\"\n )}\n \n \n {t(\n \"dashboard.reports.allSalesReports\",\n \"Kõik müügiaruanded\"\n )}{\" \"}\n -{\" \"}\n {\n this.props.lastReports\n .all_reports_count\n }\n \n \n \n \n \n

\n {t(\n \"dashboard.reports.notSubmittedSalesReports\",\n \"Esitamata müügiaruanded\"\n )}{\" \"}\n -{\" \"}\n {this.props.lastReports\n .not_submitted_reports_count >\n 0 ? (\n \n {\n this.props\n .lastReports\n .not_submitted_reports_count\n }\n \n ) : (\n \n {\n this.props\n .lastReports\n .not_submitted_reports_count\n }\n \n )}\n

\n \n
\n
\n \n {isClientWithActiveContract &&\n \n \n \n \n \n \n \n }\n
\n {this.props.lastReports.latest_reports.map(\n (report, i) => {\n return (\n this.props.history.push(getSaleReportUrl(report.id))}\n >\n \n \n {\n report.period\n }\n \n \n \n \n );\n }\n )}\n
\n
\n \n )}\n
\n \n
\n \n \n \n \n {this.props.statisticsLoading ? (\n \n ) : (\n \n \n \n \n \n \n \n \n \n \n {this.props.statistics.months.map(\n (entry, index) => (\n \n )\n )}\n \n {/* radius={[30, 30, 0, 0]} */}\n \n {this.props.statistics.months.map(\n (entry, index) => (\n \n )\n )}\n \n \n \n \n \n \n \n
\n \n {t(\n \"dashboard.statistics.overdueInvoices\",\n \"Üle tähtaja arved\"\n )}\n \n
\n
\n \n {\n this.props.statistics.overdue_invoices === null ?\n \"-\"\n :\n currencyFormatter.format(this.props.statistics.overdue_invoices)\n }\n \n
\n \n \n
\n \n {t(\n \"dashboard.statistics.invoiceBalance\",\n \"Jooksev arvete saldo\"\n )}\n \n
\n
\n \n {\n this.props.statistics.invoice_balance === null ?\n \"-\"\n :\n currencyFormatter.format(this.props.statistics.invoice_balance)\n }\n \n
\n \n \n
\n \n {t(\n \"dashboard.statistics.numberOfPackages\",\n \"Aktiivsete pakendite arv\"\n )}\n \n
\n
\n \n {\n this.props\n .statistics\n .packages_total\n }\n \n
\n \n \n
\n \n {t(\n \"dashboard.statistics.biggestSale\",\n \"Suurim müük\"\n )}\n \n
\n
\n \n {\n this.props\n .statistics\n .best_month\n .month\n }\n \n
\n \n
\n \n
\n )}\n
\n
\n \n
\n \n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n contracts: state.profile.contracts,\n lastPackages: state.dashboard.lastPackages,\n lastReports: state.dashboard.lastReports,\n statistics: state.dashboard.statistics,\n lastPackagesLoading: state.dashboard.lastPackagesLoading,\n lastReportsLoading: state.dashboard.lastReportsLoading,\n statisticsLoading: state.dashboard.statisticsLoading,\n };\n};\n\nexport default withRouter(connect(mapStateToProps)(withTranslation(\"common\")(Dashboard)));\n","import axios from \"../axios\";\nimport {LATEST_REPORTS, LATEST_PACKAGES, STATISTICS} from \"../config/Api\";\nimport store from 'redux/store';\nimport {\n lastPackagesFetchFail,\n lastPackagesFetchStart,\n lastPackagesFetchSuccess, lastReportsFetchFail,\n lastReportsFetchStart, lastReportsFetchSuccess, statisticsFetchFail, statisticsFetchStart, statisticsFetchSuccess\n} from \"../redux/actions/dashboard\";\n\nexport function fetchLastPackages() {\n store.dispatch(lastPackagesFetchStart());\n return axios\n .get(LATEST_PACKAGES)\n .then(resp => {\n store.dispatch(lastPackagesFetchSuccess(resp.data));\n })\n .catch(err => {\n store.dispatch(lastPackagesFetchFail(err));\n });\n}\n\nexport function fetchLastReports() {\n store.dispatch(lastReportsFetchStart());\n return axios\n .get(LATEST_REPORTS)\n .then(resp => {\n store.dispatch(lastReportsFetchSuccess(resp.data));\n })\n .catch(err => {\n store.dispatch(lastReportsFetchFail(err));\n });\n}\n\nexport function fetchStatistics() {\n store.dispatch(statisticsFetchStart());\n return axios\n .get(STATISTICS)\n .then(resp => {\n store.dispatch(statisticsFetchSuccess(resp.data));\n })\n .catch(err => {\n store.dispatch(statisticsFetchFail(err));\n });\n}","import * as actionTypes from \"./actionTypes\";\n\nexport const lastPackagesFetchStart = () => {\n return {\n type: actionTypes.LAST_PACKAGES_FETCH_START,\n loading: true,\n };\n};\n\nexport const lastPackagesFetchSuccess = (packages) => {\n return {\n type: actionTypes.LAST_PACKAGES_FETCH_SUCCESS,\n packages: packages,\n };\n};\n\nexport const lastPackagesFetchFail = (err) => {\n return {\n type: actionTypes.LAST_PACKAGES_FETCH_FAIL,\n error: err,\n };\n};\n\nexport const lastReportsFetchStart = () => {\n return {\n type: actionTypes.LAST_REPORTS_FETCH_START,\n loading: true,\n };\n};\n\nexport const lastReportsFetchSuccess = (reports) => {\n return {\n type: actionTypes.LAST_REPORTS_FETCH_SUCCESS,\n reports: reports,\n };\n};\n\nexport const lastReportsFetchFail = (err) => {\n return {\n type: actionTypes.LAST_REPORTS_FETCH_FAIL,\n error: err,\n };\n};\n\nexport const statisticsFetchStart = () => {\n return {\n type: actionTypes.STATISTICS_FETCH_START,\n loading: true,\n };\n};\n\nexport const statisticsFetchSuccess = (statistics) => {\n return {\n type: actionTypes.STATISTICS_FETCH_SUCCESS,\n statistics: statistics,\n };\n};\n\nexport const statisticsFetchFail = (err) => {\n return {\n type: actionTypes.STATISTICS_FETCH_FAIL,\n error: err,\n };\n};\n","import React from 'react';\nimport Dashboard from \"components/Dashboard/Dashboard\";\n\nclass DashboardView extends React.Component {\n\n render() {\n return (\n \n );\n }\n}\n\nexport default DashboardView;","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport _ from \"lodash\";\n\nimport { FormGroup, Label, Input } from \"reactstrap\";\n\nimport \"./Input.scss\";\n\nclass CustomInput extends React.Component {\n static propTypes = {\n value: PropTypes.any,\n defaultValue: PropTypes.any,\n type: PropTypes.string,\n labelText: PropTypes.string,\n onChange: PropTypes.func,\n onBlur: PropTypes.func,\n disabled: PropTypes.bool,\n className: PropTypes.string,\n placeholder: PropTypes.string,\n required: PropTypes.bool,\n extraProps: PropTypes.object,\n trimOnBlur: PropTypes.bool,\n // validation\n valid: PropTypes.bool,\n validText: PropTypes.string,\n invalid: PropTypes.bool,\n invalidText: PropTypes.oneOfType([PropTypes.string, PropTypes.array]),\n };\n\n static defaultProps = {\n defaultValue: \"\",\n type: \"\",\n labelText: \"\",\n labelHidden: false,\n className: \"\",\n placeholder: \"\",\n disabled: false,\n onChange: function () { },\n onBlur: function () { },\n extraProps: {},\n valid: false,\n validText: \"\",\n invalid: false,\n invalidText: \"\",\n trimOnBlur: false,\n };\n\n static LABEL_DISABLED_CSS = \"is-disabled\";\n static ACTIVE_CSS = \"is-active\";\n static VALID_CSS = \"custom-is-valid\";\n static INVALID_CSS = \"custom-is-invalid\";\n static REQUIRED_CSS = \"custom-required\";\n\n constructor(props) {\n super(props);\n\n this.state = {\n active_css: \"\",\n value: this.valueOrDefault(props.value),\n valueChanged: false,\n };\n }\n\n componentDidUpdate(prevProps, prevState) {\n if (!_.isEqual(prevProps.value, this.props.value)) {\n this.setState({\n value: this.valueOrDefault(this.props.value),\n valueChanged: false,\n });\n }\n }\n\n valueOrDefault = (value) => {\n return _.isNil(value) || _.isNaN(value)\n ? this.props.defaultValue\n : value;\n };\n\n onChange = (event) => {\n if (event.target.value !== this.state.value) {\n const isChange = this.props.onChange(event.target.value);\n if (isChange !== false) {\n this.setState({ value: event.target.value, valueChanged: true });\n }\n }\n };\n\n onFocus = (event) => {\n this.setState({ active_css: CustomInput.ACTIVE_CSS });\n };\n\n onBlur = (event) => {\n this.setState({ active_css: \"\" });\n\n if (this.state.valueChanged) {\n let value = event.target.value;\n\n if (this.props.trimOnBlur) {\n value = value.trim();\n }\n this.setState({ value });\n\n this.props.onBlur(value);\n }\n };\n\n getLabelClassName = () => {\n let className = \"custom-label\";\n className += this.addClassName(\n this.state.active_css,\n this.state.active_css\n );\n className += this.addClassName(\n CustomInput.REQUIRED_CSS,\n this.props.required\n );\n className += this.addClassName(CustomInput.VALID_CSS, this.props.valid);\n className += this.addClassName(\n CustomInput.INVALID_CSS,\n this.props.invalid\n );\n className += this.addClassName(\n CustomInput.LABEL_DISABLED_CSS,\n this.props.disabled\n );\n return className;\n };\n\n getInputClassName = () => {\n let className = \"custom-input\";\n className += this.addClassName(\n this.state.active_css,\n this.state.active_css\n );\n className += this.addClassName(CustomInput.VALID_CSS, this.props.valid);\n className += this.addClassName(\n CustomInput.INVALID_CSS,\n this.props.invalid\n );\n className += this.addClassName(\n this.props.className,\n this.props.className\n );\n return className;\n };\n\n addClassName = (className, condition) => {\n if (!className || !condition) {\n return \"\";\n }\n return \" \" + className;\n };\n\n render() {\n return (\n \n {this.props.labelText && (\n \n );\n }\n}\n\nexport default CustomInput;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport ReactSelect from \"react-select\";\n\nimport { FormGroup, Label } from \"reactstrap\";\n\nimport \"./Select.scss\";\n\nclass CustomSelect extends React.Component {\n static propTypes = {\n labelText: PropTypes.string,\n labelHidden: PropTypes.bool,\n disabled: PropTypes.bool,\n className: PropTypes.string,\n required: PropTypes.bool,\n isLoading: PropTypes.bool,\n // validation\n valid: PropTypes.bool,\n validText: PropTypes.string,\n invalid: PropTypes.bool,\n invalidText: PropTypes.string,\n }\n\n static defaultProps = {\n labelText: \"\",\n labelHidden: false,\n className: \"\",\n disabled: false,\n valid: false,\n validText: \"\",\n invalid: false,\n invalidText: \"\",\n }\n\n static LABEL_DISABLED_CSS = \"is-disabled\";\n static ACTIVE_CSS = \"is-active\";\n static VALID_CSS = \"custom-is-valid\";\n static INVALID_CSS = \"custom-is-invalid\";\n static REQUIRED_CSS = \"custom-required\";\n\n constructor(props) {\n super(props);\n\n this.state = {\n active_css: \"\",\n };\n }\n\n onFocus = (event) => {\n this.setState({ active_css: CustomSelect.ACTIVE_CSS });\n }\n\n onBlur = (event) => {\n this.setState({ active_css: \"\" });\n };\n\n getLabelClassName = () => {\n let className = \"custom-label\";\n className += this.addClassName(this.state.active_css, this.state.active_css);\n className += this.addClassName(CustomSelect.REQUIRED_CSS, this.props.required);\n className += this.addClassName(CustomSelect.VALID_CSS, this.props.valid);\n className += this.addClassName(CustomSelect.INVALID_CSS, this.props.invalid);\n className += this.addClassName(CustomSelect.LABEL_DISABLED_CSS, this.props.disabled);\n return className;\n }\n\n getSelectClassName = () => {\n let className = \"ppe-select-container\";\n className += this.addClassName(this.state.active_css, this.state.active_css);\n className += this.addClassName(CustomSelect.VALID_CSS, this.props.valid);\n className += this.addClassName(CustomSelect.INVALID_CSS, this.props.invalid);\n className += this.addClassName(this.props.className, this.props.className);\n return className;\n }\n\n addClassName = (className, condition) => {\n if (!className || !condition) {\n return \"\";\n }\n return \" \" + className;\n }\n\n render() {\n return (\n \n {this.props.labelText &&\n \n );\n }\n}\n\n\nexport default CustomSelect;\n","import * as actionTypes from \"redux/actions/actionTypes\";\n\nexport const packagesInTestFetchStart = () => {\n return {\n type: actionTypes.PACKAGES_IN_TEST_FETCH_START,\n };\n};\n\nexport const packagesInTestFetchSuccess = (\n packagesList,\n filters,\n unfilteredPackagesList\n) => {\n return {\n type: actionTypes.PACKAGES_IN_TEST_FETCH_SUCCESS,\n packagesList,\n filters,\n unfilteredPackagesList,\n };\n};\n\nexport const packagesInTestFetchFail = (error) => {\n return {\n type: actionTypes.PACKAGES_IN_TEST_FETCH_FAIL,\n error,\n };\n};\n\nexport const packagesInTestFilterUpdate = (key, value) => {\n return {\n type: actionTypes.PACKAGES_IN_TEST_FILTER_UPDATE,\n key: key,\n value: value,\n };\n};\n\nexport const packagesInTestFilterClear = (format) => {\n return {\n type: actionTypes.PACKAGES_IN_TEST_FILTER_CLEAR,\n format,\n };\n};\n\nexport const packagesInTestSortingUpdate = (sorting) => {\n return {\n type: actionTypes.PACKAGES_IN_TEST_SORTING_UPDATE,\n sorting,\n };\n};\n\nexport const packagesInTestPaginationUpdate = (pagination) => {\n return {\n type: actionTypes.PACKAGES_IN_TEST_PAGINATION_UPDATE,\n pagination,\n };\n};\n\n/*\nexport const packagesInTestExportStart = () => {\n return {\n type: actionTypes.PACKAGES_IN_TEST_EXPORT_START\n }\n};\n\nexport const packagesInTestExportSuccess = () => {\n return {\n type: actionTypes.PACKAGES_IN_TEST_EXPORT_SUCCESS,\n }\n};\n\nexport const packagesInTestExportFail = (error) => {\n return {\n type: actionTypes.PACKAGES_IN_TEST_EXPORT_FAIL,\n error,\n }\n};\n*/\n","import axios from \"../axios\";\nimport store from \"redux/store\";\n\nimport { getServerErrorMessage } from \"util/Errors\";\nimport {\n PACKAGES_IN_TEST_OR_RETEST,\n PACKAGES_UNCONFIRMED,\n PACKAGES_TESTED,\n PACKAGES_TESTING_ALL,\n PACKAGE_TEST,\n} from \"config/Api\";\nimport { statusTypes } from \"components/Table/Cell/Status/StatusCell\";\nimport {\n packagesInTestFetchStart,\n packagesInTestFetchSuccess,\n packagesInTestFetchFail,\n} from \"redux/actions/partner/packagesInTest\";\nimport {\n packagesInRetestFetchStart,\n packagesInRetestFetchSuccess,\n packagesInRetestFetchFail,\n} from \"redux/actions/partner/packagesInRetest\";\nimport {\n packagesUnconfirmedFetchStart,\n packagesUnconfirmedFetchSuccess,\n packagesUnconfirmedFetchFail,\n} from \"redux/actions/partner/packagesUnconfirmed\";\nimport {\n packagesTestedFetchStart,\n packagesTestedFetchSuccess,\n packagesTestedFetchFail,\n} from \"redux/actions/partner/packagesTested\";\nimport {\n packagesTestingAllFetchStart,\n packagesTestingAllFetchSuccess,\n packagesTestingAllFetchFail,\n} from \"redux/actions/partner/packagesTestingAll\";\nimport { secondDateIsSameOrAfterFirstDate } from \"util/DateTime\";\nimport { clearLocalAlerts, addNewLocalErrorAlert } from \"util/Alerts\";\n\nexport const packageTestStatuses = {\n OK: [1, \"1\", \"OK\"],\n NOK: [2, \"2\", \"NOK\"],\n NA: [3, \"3\", \"NA\", \"N/A\"],\n};\nexport function getTestStatusType(status) {\n if (packageTestStatuses.OK.includes(status)) {\n return statusTypes.SUCCESS;\n } else if (packageTestStatuses.NOK.includes(status)) {\n return statusTypes.ERROR;\n } else if (packageTestStatuses.NA.includes(status)) {\n return statusTypes.DEFAULT;\n }\n\n return statusTypes.DEFAULT;\n}\n\nfunction fetchPackagesInTestAndOrRetest(type=\"ALL\") {\n /**\n * Accepted type values are:\n * \"ALL\" - for all package tests\n * \"TESTING\" - for package tests in testing\n * \"RETESTING\" - for package tests in retesting\n */\n return axios.get(PACKAGES_IN_TEST_OR_RETEST, {params: { type }});\n}\n\n\nexport function fetchPackagesInTest(filters, alertGroup) {\n const filtersToUse = { ...filters };\n store.dispatch(packagesInTestFetchStart());\n return fetchPackagesInTestAndOrRetest(\"TESTING\")\n .then((response) => {\n const unfilteredPackages = response.data;\n const filteredPackages = filterPackages(\n unfilteredPackages,\n filtersToUse,\n \"created_at\"\n );\n store.dispatch(\n packagesInTestFetchSuccess(\n filteredPackages,\n filtersToUse,\n unfilteredPackages\n )\n );\n return response.data;\n })\n .catch((error) => {\n const errorMessage = getServerErrorMessage(error);\n store.dispatch(packagesInTestFetchFail(errorMessage));\n\n clearLocalAlerts();\n addNewLocalErrorAlert(errorMessage, alertGroup);\n //throw Error(errorMessage);\n });\n}\n\nexport function fetchPackagesInRetest(filters, alertGroup) {\n const filtersToUse = { ...filters };\n store.dispatch(packagesInRetestFetchStart());\n return fetchPackagesInTestAndOrRetest(\"RETESTING\")\n .then((response) => {\n const unfilteredPackages = response.data;\n const filteredPackages = filterPackages(\n unfilteredPackages,\n filtersToUse,\n \"created_at\"\n );\n store.dispatch(\n packagesInRetestFetchSuccess(\n filteredPackages,\n filtersToUse,\n unfilteredPackages\n )\n );\n return response.data;\n })\n .catch((error) => {\n const errorMessage = getServerErrorMessage(error);\n store.dispatch(packagesInRetestFetchFail(errorMessage));\n\n clearLocalAlerts();\n addNewLocalErrorAlert(errorMessage, alertGroup);\n //throw Error(errorMessage);\n });\n}\n\nexport function fetchPackagesUnconfirmed(filters, alertGroup) {\n const filtersToUse = { ...filters };\n store.dispatch(packagesUnconfirmedFetchStart());\n return axios\n .get(PACKAGES_UNCONFIRMED)\n .then((response) => {\n const unfilteredPackages = response.data;\n const filteredPackages = filterPackages(\n unfilteredPackages,\n filtersToUse,\n \"created_at\"\n );\n store.dispatch(\n packagesUnconfirmedFetchSuccess(\n filteredPackages,\n filtersToUse,\n unfilteredPackages\n )\n );\n return response.data;\n })\n .catch((error) => {\n const errorMessage = getServerErrorMessage(error);\n store.dispatch(packagesUnconfirmedFetchFail(errorMessage));\n\n clearLocalAlerts();\n addNewLocalErrorAlert(errorMessage, alertGroup);\n //throw Error(errorMessage);\n });\n}\n\nexport function fetchPackagesTested(filters, alertGroup) {\n const filtersToUse = { ...filters };\n store.dispatch(packagesTestedFetchStart());\n return axios\n .get(PACKAGES_TESTED)\n .then((response) => {\n const unfilteredPackages = response.data;\n const filteredPackages = filterPackages(\n unfilteredPackages,\n filtersToUse,\n \"tested_at\"\n );\n store.dispatch(\n packagesTestedFetchSuccess(\n filteredPackages,\n filtersToUse,\n unfilteredPackages\n )\n );\n return response.data;\n })\n .catch((error) => {\n const errorMessage = getServerErrorMessage(error);\n store.dispatch(packagesTestedFetchFail(errorMessage));\n\n clearLocalAlerts();\n addNewLocalErrorAlert(errorMessage, alertGroup);\n //throw Error(errorMessage);\n });\n}\n\nexport function fetchPackagesTestingAll(filters, alertGroup) {\n const filtersToUse = { ...filters };\n store.dispatch(packagesTestingAllFetchStart());\n return axios\n .get(PACKAGES_TESTING_ALL)\n .then((response) => {\n const unfilteredPackages = response.data;\n const filteredPackages = filterPackages(\n unfilteredPackages,\n filtersToUse,\n \"tested_at\"\n );\n store.dispatch(\n packagesTestingAllFetchSuccess(\n filteredPackages,\n filtersToUse,\n unfilteredPackages\n )\n );\n return response.data;\n })\n .catch((error) => {\n const errorMessage = getServerErrorMessage(error);\n store.dispatch(packagesTestingAllFetchFail(errorMessage));\n\n clearLocalAlerts();\n addNewLocalErrorAlert(errorMessage, alertGroup);\n //throw Error(errorMessage);\n });\n}\n\nexport function fetchPackageTests(packageId, alertGroup) {\n return axios\n .get(PACKAGES_IN_TEST_OR_RETEST + packageId + \"/\")\n .then((response) => {\n return response.data;\n })\n .catch((error) => {\n const errorMessage = getServerErrorMessage(error);\n throw Error(errorMessage);\n });\n}\n\nexport function submitPackageTest(packageTest) {\n const url = PACKAGE_TEST + packageTest.test_id;\n\n const data = {\n width: packageTest.width,\n width_percentage: packageTest.width_percentage,\n height: packageTest.height,\n height_percentage: packageTest.height_percentage,\n location: packageTest.location,\n pv: packageTest.pv,\n vv: packageTest.vv,\n is_sticker: packageTest.is_sticker,\n comment: packageTest.comment,\n status: packageTest.status,\n standard_comments: packageTest.standard_comments,\n };\n\n return axios\n .put(url, data)\n .then((response) => {\n return response.data;\n })\n .catch((error) => {\n // returns {errors: [{code}, ...]} instead of {code}\n if (\n error.response &&\n error.response.data &&\n error.response.data.errors\n ) {\n return error.response.data;\n }\n const errorMessage = getServerErrorMessage(error);\n throw Error(errorMessage);\n });\n}\n\nfunction filterPackages(packages, filters, dateFilterField) {\n if (!packages || !packages.length || !filters) {\n return packages;\n }\n\n return packages.filter((pkg) => {\n if (filters.ean && !filterStringIncludes(pkg.ean, filters.ean))\n return false;\n if (filters.name && !filterStringIncludes(pkg.name, filters.name))\n return false;\n if (filters.client && pkg.client.value !== filters.client.value)\n return false;\n if (filters.category && pkg.category.value !== filters.category.id)\n return false;\n if (filters.type && pkg.type !== filters.type.value) return false;\n if (filters.volume && pkg.volume !== filters.volume.value) return false;\n // TODO: pkg should have value which matches filter(option) value.\n if (filters.testResult && pkg.status.value !== filters.testResult.value)\n return false;\n if (\n filters.startDate &&\n (!pkg[dateFilterField] ||\n !secondDateIsSameOrAfterFirstDate(\n filters.startDate,\n pkg[dateFilterField],\n \"day\"\n ))\n ) {\n return false;\n }\n if (\n filters.endDate &&\n (!pkg[dateFilterField] ||\n !secondDateIsSameOrAfterFirstDate(\n pkg[dateFilterField],\n filters.endDate,\n \"day\"\n ))\n ) {\n return false;\n }\n\n return true;\n });\n}\n\nfunction filterStringIncludes(str, substr) {\n return str.trim().toLowerCase().includes(substr.trim().toLowerCase());\n}\n","import * as actionTypes from \"redux/actions/actionTypes\";\n\nexport const packagesInRetestFetchStart = () => {\n return {\n type: actionTypes.PACKAGES_IN_RETEST_FETCH_START,\n };\n};\n\nexport const packagesInRetestFetchSuccess = (\n packagesList,\n filters,\n unfilteredPackagesList\n) => {\n return {\n type: actionTypes.PACKAGES_IN_RETEST_FETCH_SUCCESS,\n packagesList,\n filters,\n unfilteredPackagesList,\n };\n};\n\nexport const packagesInRetestFetchFail = (error) => {\n return {\n type: actionTypes.PACKAGES_IN_RETEST_FETCH_FAIL,\n error,\n };\n};\n\nexport const packagesInRetestFilterUpdate = (key, value) => {\n return {\n type: actionTypes.PACKAGES_IN_RETEST_FILTER_UPDATE,\n key: key,\n value: value,\n };\n};\n\nexport const packagesInRetestFilterClear = (format) => {\n return {\n type: actionTypes.PACKAGES_IN_RETEST_FILTER_CLEAR,\n format,\n };\n};\n\nexport const packagesInRetestSortingUpdate = (sorting) => {\n return {\n type: actionTypes.PACKAGES_IN_RETEST_SORTING_UPDATE,\n sorting,\n };\n};\n\nexport const packagesInRetestPaginationUpdate = (pagination) => {\n return {\n type: actionTypes.PACKAGES_IN_RETEST_PAGINATION_UPDATE,\n pagination,\n };\n};","import * as actionTypes from \"redux/actions/actionTypes\";\n\nexport const packagesUnconfirmedFetchStart = () => {\n return {\n type: actionTypes.PACKAGES_UNCONFIRMED_FETCH_START,\n };\n};\n\nexport const packagesUnconfirmedFetchSuccess = (\n packagesList,\n filters,\n unfilteredPackagesList\n) => {\n return {\n type: actionTypes.PACKAGES_UNCONFIRMED_FETCH_SUCCESS,\n packagesList,\n filters,\n unfilteredPackagesList,\n };\n};\n\nexport const packagesUnconfirmedFetchFail = (error) => {\n return {\n type: actionTypes.PACKAGES_UNCONFIRMED_FETCH_FAIL,\n error,\n };\n};\n\nexport const packagesUnconfirmedFilterUpdate = (key, value) => {\n return {\n type: actionTypes.PACKAGES_UNCONFIRMED_FILTER_UPDATE,\n key: key,\n value: value,\n };\n};\n\nexport const packagesUnconfirmedFilterClear = (format) => {\n return {\n type: actionTypes.PACKAGES_UNCONFIRMED_FILTER_CLEAR,\n format,\n };\n};\n\nexport const packagesUnconfirmedSortingUpdate = (sorting) => {\n return {\n type: actionTypes.PACKAGES_UNCONFIRMED_SORTING_UPDATE,\n sorting,\n };\n};\n\nexport const packagesUnconfirmedPaginationUpdate = (pagination) => {\n return {\n type: actionTypes.PACKAGES_UNCONFIRMED_PAGINATION_UPDATE,\n pagination,\n };\n};\n","import * as actionTypes from \"redux/actions/actionTypes\";\n\nexport const packagesTestedFetchStart = () => {\n return {\n type: actionTypes.PACKAGES_TESTED_FETCH_START,\n };\n};\n\nexport const packagesTestedFetchSuccess = (\n packagesList,\n filters,\n unfilteredPackagesList\n) => {\n return {\n type: actionTypes.PACKAGES_TESTED_FETCH_SUCCESS,\n packagesList,\n filters,\n unfilteredPackagesList,\n };\n};\n\nexport const packagesTestedFetchFail = (error) => {\n return {\n type: actionTypes.PACKAGES_TESTED_FETCH_FAIL,\n error,\n };\n};\n\nexport const packagesTestedFilterUpdate = (key, value) => {\n return {\n type: actionTypes.PACKAGES_TESTED_FILTER_UPDATE,\n key: key,\n value: value,\n };\n};\n\nexport const packagesTestedFilterClear = (format) => {\n return {\n type: actionTypes.PACKAGES_TESTED_FILTER_CLEAR,\n format,\n };\n};\n\nexport const packagesTestedSortingUpdate = (sorting) => {\n return {\n type: actionTypes.PACKAGES_TESTED_SORTING_UPDATE,\n sorting,\n };\n};\n\nexport const packagesTestedPaginationUpdate = (pagination) => {\n return {\n type: actionTypes.PACKAGES_TESTED_PAGINATION_UPDATE,\n pagination,\n };\n};\n","import * as actionTypes from \"redux/actions/actionTypes\";\n\nexport const packagesTestingAllFetchStart = () => {\n return {\n type: actionTypes.PACKAGES_TESTING_ALL_FETCH_START,\n };\n};\n\nexport const packagesTestingAllFetchSuccess = (\n packagesList,\n filters,\n unfilteredPackagesList\n) => {\n return {\n type: actionTypes.PACKAGES_TESTING_ALL_FETCH_SUCCESS,\n packagesList,\n filters,\n unfilteredPackagesList,\n };\n};\n\nexport const packagesTestingAllFetchFail = (error) => {\n return {\n type: actionTypes.PACKAGES_TESTING_ALL_FETCH_FAIL,\n error,\n };\n};\n\nexport const packagesTestingAllFilterUpdate = (key, value) => {\n return {\n type: actionTypes.PACKAGES_TESTING_ALL_FILTER_UPDATE,\n key: key,\n value: value,\n };\n};\n\nexport const packagesTestingAllFilterClear = (format) => {\n return {\n type: actionTypes.PACKAGES_TESTING_ALL_FILTER_CLEAR,\n format,\n };\n};\n\nexport const packagesTestingAllSortingUpdate = (sorting) => {\n return {\n type: actionTypes.PACKAGES_TESTING_ALL_SORTING_UPDATE,\n sorting,\n };\n};\n\nexport const packagesTestingAllPaginationUpdate = (pagination) => {\n return {\n type: actionTypes.PACKAGES_TESTING_ALL_PAGINATION_UPDATE,\n pagination,\n };\n};\n","import XLSX from \"xlsx\";\n\nexport const exportClientPackagesTable = (\n fileName,\n packages,\n filtersUsed,\n client\n) => {\n /* Generate Workbook */\n const wb = XLSX.utils.book_new();\n\n const packagesSheet = getPackagesSheet(packages);\n XLSX.utils.book_append_sheet(wb, packagesSheet, \"Pakendid\");\n\n const extraInfoSheet = getExtraInfoSheet(filtersUsed, client);\n XLSX.utils.book_append_sheet(wb, extraInfoSheet, \"Lisainfo\");\n\n /* Trigger Download with `writeFile` */\n XLSX.writeFile(wb, fileName + \".xlsx\", { compression: true });\n};\n\nfunction getExtraInfoSheet(filters, client) {\n const extraInfoRows = [\n [\"Klient\", client],\n [\"Koostatud\", new Date()],\n [],\n [\"Filtrid\"],\n [\"EAN\", filters.filterEan],\n [\"EAN tüüp\", filters.filterEanType ? filters.filterEanType.value : \"\"],\n [\"Toote nimetus\", filters.filterProductName],\n [\n \"Kategooria\",\n filters.filterCategory ? filters.filterCategory.description : \"\",\n ],\n [\n \"Pakendi tüüp\",\n filters.filterPackageType ? filters.filterPackageType.value : \"\",\n ],\n [\"Maht\", filters.filterCapacity ? filters.filterCapacity.value : \"\"],\n [\"Staatus\", filters.filterStatus ? filters.filterStatus.value : \"\"],\n [\n \"Testitulemus\",\n filters.filterTestResult ? filters.filterTestResult.label : \"\",\n ],\n [\"Alates\", filters.startDate],\n [\"Kuni\", filters.endDate],\n ];\n\n const ws = XLSX.utils.aoa_to_sheet(extraInfoRows, { dateNF: \"DD-MM-YYYY\" });\n\n // Set widths\n const colWidths = [25, 25];\n ws[\"!cols\"] = colWidths.map((x) => ({ width: x }));\n\n return ws;\n}\n\nfunction getPackagesSheet(packages) {\n const packagesHeaders = [\n \"EAN\",\n \"EAN tüüp\",\n \"Nimetus\",\n \"Kategooria\",\n \"Tüüp\",\n \"Maht\",\n \"Staatus\",\n \"Kuupäev\",\n \"Testiulemus\",\n ];\n const packagesDataRows = getPackagesDataRows(packages);\n const packagesRows = [packagesHeaders, ...packagesDataRows];\n const ws = XLSX.utils.aoa_to_sheet(packagesRows, { dateNF: \"DD-MM-YYYY\" });\n\n if (packagesDataRows.length === 0) {\n XLSX.utils.sheet_add_aoa(\n ws,\n [[\"Ükski pakend ei vasta otsingutingimustele.\"]],\n { origin: { r: 1, c: 0 } }\n ); //sheet_add_aoa expects array of arrays.\n ws[\"!merges\"] = [\n { s: { r: 1, c: 0 }, e: { r: 1, c: packagesHeaders.length - 1 } },\n ];\n }\n // Set widths\n const colWidths = [16, 16, 25, 25, 20, 8, 15, 12, 15];\n ws[\"!cols\"] = colWidths.map((x) => ({ width: x }));\n\n return ws;\n}\n\nfunction getPackagesDataRows(packages) {\n return packages.map((pkg) => [\n pkg.EAN,\n pkg.EAN_type,\n pkg.name,\n pkg.package_category,\n pkg.package_type,\n pkg.volume,\n pkg.status.label,\n pkg.combined_at,\n pkg.package_test ? pkg.package_test : \"\",\n ]);\n}\n","import * as actionTypes from './actionTypes';\n\nexport const packagesFetchStart = () => {\n return {\n type: actionTypes.PACKAGES_FETCH_START\n }\n};\n\nexport const packagesFetchSuccess = (packagesList) => {\n return {\n type: actionTypes.PACKAGES_FETCH_SUCCESS,\n packagesList: packagesList\n }\n};\n\nexport const packagesFetchFail = (err) => {\n return {\n type: actionTypes.PACKAGES_FETCH_FAIL,\n error: err\n }\n};\n\nexport const eanTypesFetchStart = () => {\n return {\n type: actionTypes.EAN_TYPES_FETCH_START,\n }\n};\n\nexport const eanTypesFetchSuccess = (eanTypes) => {\n return {\n type: actionTypes.EAN_TYPES_FETCH_SUCCESS,\n eanTypes: eanTypes\n }\n};\n\nexport const eanTypesFetchFail = (err) => {\n return {\n type: actionTypes.EAN_TYPES_FETCH_FAIL,\n error: err\n }\n};\n\nexport const categoriesFetchStart = () => {\n return {\n type: actionTypes.PRODUCT_CATEGORIES_FETCH_START,\n }\n};\n\nexport const categoriesFetchSuccess = (categories) => {\n return {\n type: actionTypes.PRODUCT_CATEGORIES_FETCH_SUCCESS,\n categories: categories\n }\n};\n\nexport const categoriesFetchFail = (err) => {\n return {\n type: actionTypes.PRODUCT_CATEGORIES_FETCH_FAIL,\n error: err\n }\n};\n\nexport const packageTypesFetchStart = () => {\n return {\n type: actionTypes.PACKAGE_TYPES_FETCH_START\n }\n};\n\nexport const packageTypesFetchSuccess = (packageTypes) => {\n return {\n type: actionTypes.PACKAGE_TYPES_FETCH_SUCCESS,\n packageTypes: packageTypes\n }\n};\n\nexport const packageTypesFetchFail = (err) => {\n return {\n type: actionTypes.PACKAGE_TYPES_FETCH_FAIL,\n error: err\n }\n};\n\nexport const packageColorsFetchStart = () => {\n return {\n type: actionTypes.PACKAGE_COLORS_FETCH_START\n }\n};\n\nexport const packageColorsFetchSuccess = (packageColors) => {\n return {\n type: actionTypes.PACKAGE_COLORS_FETCH_SUCCESS,\n packageColors: packageColors\n }\n};\n\nexport const packageColorsFetchFail = (err) => {\n return {\n type: actionTypes.PACKAGE_COLORS_FETCH_FAIL,\n error: err\n }\n};\n\nexport const packageVolumesFetchStart = () => {\n return {\n type: actionTypes.PACKAGE_VOLUMES_FETCH_START\n }\n};\n\nexport const packageVolumesFetchSuccess = (packageVolumes) => {\n return {\n type: actionTypes.PACKAGE_VOLUMES_FETCH_SUCCESS,\n packageVolumes: packageVolumes\n }\n};\n\nexport const packageVolumesFetchFail = (err) => {\n return {\n type: actionTypes.PACKAGE_VOLUMES_FETCH_FAIL,\n error: err\n }\n};\n\nexport const packageStatusesFetchStart = () => {\n return {\n type: actionTypes.PACKAGE_STATUSES_FETCH_START\n }\n};\n\nexport const packageStatusesFetchSuccess = (packageStatuses) => {\n return {\n type: actionTypes.PACKAGE_STATUSES_FETCH_SUCCESS,\n packageStatuses: packageStatuses\n }\n};\n\nexport const packageStatusesFetchFail = (err) => {\n return {\n type: actionTypes.PACKAGE_STATUSES_FETCH_FAIL,\n error: err\n }\n};\n\n\n\nexport const packageTestResultsFetchStart = () => {\n return {\n type: actionTypes.PACKAGE_TEST_RESULTS_FETCH_START\n }\n};\n\nexport const packageTestResultsFetchSuccess = (packageTestResults) => {\n return {\n type: actionTypes.PACKAGE_TEST_RESULTS_FETCH_SUCCESS,\n packageTestResults: packageTestResults\n }\n};\n\nexport const packageTestResultsFetchFail = (err) => {\n return {\n type: actionTypes.PACKAGE_TEST_RESULTS_FETCH_FAIL,\n error: err\n }\n};\n\nexport const packagePostStart = () => {\n return {\n type: actionTypes.PACKAGE_POST_START\n }\n};\n\nexport const packagePostSuccess = () => {\n return {\n type: actionTypes.PACKAGE_POST_SUCCESS,\n error: null\n }\n};\n\nexport const packagePostFail = (err) => {\n return {\n type: actionTypes.PACKAGE_POST_FAIL,\n error: err\n }\n};","import axios from \"../axios\";\nimport store from \"redux/store\";\nimport {\n APPLICATION,\n APPLICATION_IN_PROGRESS,\n EAN_TYPES,\n PACKAGE,\n PACKAGE_CATEGORIES,\n PACKAGE_COLORS,\n PACKAGE_LIST,\n PACKAGE_STATUSES,\n PACKAGE_TYPES,\n PACKAGE_VOLUMES,\n PACKAGE_TEST_RESULTS,\n} from \"../config/Api\";\nimport {\n categoriesFetchFail,\n categoriesFetchStart,\n categoriesFetchSuccess,\n eanTypesFetchFail,\n eanTypesFetchStart,\n eanTypesFetchSuccess,\n packagesFetchFail,\n packagesFetchStart,\n packagesFetchSuccess,\n packageTypesFetchStart,\n packageTypesFetchSuccess,\n packageTypesFetchFail,\n packageColorsFetchStart,\n packageColorsFetchSuccess,\n packageColorsFetchFail,\n packageVolumesFetchStart,\n packageVolumesFetchSuccess,\n packageVolumesFetchFail,\n packageStatusesFetchStart,\n packageStatusesFetchSuccess,\n packageStatusesFetchFail,\n packagePostStart,\n packagePostSuccess,\n packagePostFail,\n packageTestResultsFetchStart,\n packageTestResultsFetchSuccess,\n packageTestResultsFetchFail,\n} from \"../redux/actions/packages\";\nimport { statusTypes } from \"components/Table/Cell/Status/StatusCell\";\nimport { getServerErrorMessage } from \"util/Errors\";\nimport { normalizeStringNumber } from \"util/General\";\n\nexport const ADD_PACKAGE_ALERT_GROUP = \"addPackageModalGroup\";\n\nexport const colors = {\n COLORLESS: 1,\n};\n\nexport const packageStatuses = {\n NOT_APPLIED_STATUS: 1,\n APPLIED_STATUS: 2,\n IN_TESTING_STATUS: 3,\n WAITING_STATUS: 4,\n UNCONFIRMED: 10,\n APPROVED_STATUS: 5,\n NOT_APPROVED: 6,\n TO_BE_DELETED: 7,\n SALE_ENDED: 9,\n PHASE_OUT: 11,\n LOCAL_DELETE: 12\n};\n\nexport const packageStatusTypes = {\n [packageStatuses.NOT_APPLIED_STATUS]: statusTypes.DEFAULT,\n [packageStatuses.APPLIED_STATUS]: statusTypes.WARNING,\n [packageStatuses.IN_TESTING_STATUS]: statusTypes.INFO,\n [packageStatuses.UNCONFIRMED]: statusTypes.WARNING,\n [packageStatuses.WAITING_STATUS]: statusTypes.ERROR,\n [packageStatuses.APPROVED_STATUS]: statusTypes.SUCCESS,\n [packageStatuses.NOT_APPROVED]: statusTypes.ERROR,\n [packageStatuses.TO_BE_DELETED]: statusTypes.ERROR,\n [packageStatuses.SALE_ENDED]: statusTypes.DEFAULT,\n [packageStatuses.LOCAL_DELETE]: statusTypes.DEFAULT\n};\n\nexport const packageStatusTypeLists = {\n TESTING_STATUSES: [\n packageStatuses.IN_TESTING_STATUS,\n packageStatuses.UNCONFIRMED,\n packageStatuses.WAITING_STATUS\n ],\n RETESTING_STATUSES: [\n packageStatuses.APPROVED_STATUS,\n packageStatuses.NOT_APPROVED,\n packageStatuses.SALE_ENDED\n ],\n}\n\nexport function fetchPackagesList(clientId) {\n store.dispatch(packagesFetchStart());\n return axios\n .get(PACKAGE_LIST)\n .then((resp) => {\n store.dispatch(packagesFetchSuccess(resp.data));\n })\n .catch((err) => {\n store.dispatch(packagesFetchFail(err));\n });\n}\n\nexport function fetchEanTypes(eanTypes) {\n if (eanTypes && eanTypes.length) {\n return;\n }\n\n store.dispatch(eanTypesFetchStart());\n return axios\n .get(EAN_TYPES)\n .then((resp) => {\n store.dispatch(eanTypesFetchSuccess(resp.data));\n })\n .catch((err) => {\n store.dispatch(eanTypesFetchFail(err));\n });\n}\n\nexport function fetchCategories(categories) {\n if (categories && categories.length) {\n return;\n }\n store.dispatch(categoriesFetchStart());\n return axios\n .get(PACKAGE_CATEGORIES)\n .then((resp) => {\n store.dispatch(categoriesFetchSuccess(resp.data));\n })\n .catch((err) => {\n store.dispatch(categoriesFetchFail(err));\n });\n}\n\nexport function fetchPackageTypes(packageTypes) {\n if (packageTypes && packageTypes.length) {\n return;\n }\n store.dispatch(packageTypesFetchStart());\n return axios\n .get(PACKAGE_TYPES)\n .then((resp) => {\n store.dispatch(packageTypesFetchSuccess(resp.data));\n })\n .catch((err) => {\n store.dispatch(packageTypesFetchFail(err));\n });\n}\n\nexport function fetchColors(colors) {\n if (colors && colors.length) {\n return;\n }\n store.dispatch(packageColorsFetchStart());\n return axios\n .get(PACKAGE_COLORS)\n .then((resp) => {\n store.dispatch(packageColorsFetchSuccess(resp.data));\n })\n .catch((err) => {\n store.dispatch(packageColorsFetchFail(err));\n });\n}\n\nexport function fetchPackageVolumes(packageVolumes) {\n if (packageVolumes && packageVolumes.length) {\n return;\n }\n store.dispatch(packageVolumesFetchStart());\n return axios\n .get(PACKAGE_VOLUMES)\n .then((resp) => {\n store.dispatch(packageVolumesFetchSuccess(resp.data));\n })\n .catch((err) => {\n store.dispatch(packageVolumesFetchFail());\n });\n}\n\nexport function fetchPackageVolume(packageTypeId) {\n return axios\n .get(PACKAGE_VOLUMES + packageTypeId + \"/\")\n .then((resp) => {\n return resp.data;\n })\n .catch((err) => {\n throw Error(getServerErrorMessage(err));\n });\n}\n\nexport function fetchPackageStatuses(packageStatuses) {\n if (packageStatuses && packageStatuses.length) {\n return;\n }\n store.dispatch(packageStatusesFetchStart());\n return axios\n .get(PACKAGE_STATUSES)\n .then((resp) => {\n store.dispatch(packageStatusesFetchSuccess(resp.data));\n })\n .catch((err) => {\n store.dispatch(packageStatusesFetchFail());\n });\n}\n\nexport function fetchPackageTestResults(packageTestResults) {\n if (packageTestResults && packageTestResults.length) {\n return;\n }\n store.dispatch(packageTestResultsFetchStart());\n return axios\n .get(PACKAGE_TEST_RESULTS)\n .then((resp) => {\n store.dispatch(packageTestResultsFetchSuccess(resp.data));\n })\n .catch((err) => {\n store.dispatch(packageTestResultsFetchFail(err));\n });\n}\n\nexport function addNewPackage(\n client,\n ean,\n eanType,\n packageCategory,\n packageType,\n packageVolume,\n packageWeight,\n packageColor,\n productName,\n comment = \"\"\n) {\n store.dispatch(packagePostStart());\n return axios\n .post(PACKAGE, {\n client: client,\n ean: ean,\n ean_type: eanType || \"\",\n package_category: packageCategory || \"\",\n package_type: packageType || \"\",\n volume: packageVolume || \"\",\n weight: normalizeStringNumber(packageWeight),\n color: packageColor || \"\",\n name: productName,\n comment: comment,\n })\n .then(() => {\n store.dispatch(packagePostSuccess());\n })\n .catch((err) => {\n store.dispatch(packagePostFail(err));\n\n throw err;\n });\n}\n\nexport function submitAddPackageApplication(packages) {\n return axios\n .post(APPLICATION, {\n packages_list: packages,\n })\n .then((resp) => {\n return resp.data;\n })\n .catch((err) => {\n throw err;\n });\n}\n\nexport function removePackage(packageId) {\n return axios\n .delete(PACKAGE + packageId + \"/\", {\n package_id: packageId,\n })\n .then((resp) => {\n return resp.data;\n })\n .catch((err) => {\n throw err;\n });\n}\n\nexport function fetchPendingApplication() {\n return axios\n .get(APPLICATION_IN_PROGRESS)\n .then((resp) => {\n return resp.data;\n })\n .catch((err) => {\n throw err;\n });\n}\n\nexport function isValidColorForPackageType(colorId, packageTypeId) {\n const ONLY_COLORLESS_PACKAGE_TYPE_IDS = [3, 4];\n\n if (\n ONLY_COLORLESS_PACKAGE_TYPE_IDS.includes(packageTypeId) &&\n colorId !== colors.COLORLESS\n ) {\n return false;\n }\n\n return true;\n}\n","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\nimport { matchPath } from \"react-router\";\n\nimport {\n Button,\n Card,\n CardBody,\n CardHeader,\n Col,\n Row,\n} from \"reactstrap\";\n// datatable\nimport BootstrapTable from \"react-bootstrap-table-next\";\nimport \"react-bootstrap-table-next/dist/react-bootstrap-table2.min.css\";\nimport \"react-bootstrap-table2-filter/dist/react-bootstrap-table2-filter.min.css\";\nimport filterFactory, {\n selectFilter,\n textFilter,\n} from \"react-bootstrap-table2-filter\";\n// datepicker\nimport DatePicker from \"react-datepicker\";\nimport \"react-datepicker/dist/react-datepicker.css\";\n\n// custom inputs\nimport Input from \"components/Form/Input\";\nimport Select from \"components/Form/Select\";\nimport WrappedLoader from \"components/Loader/WrappedLoader\";\n\nimport urls from \"config/urls\";\nimport StatusCell from \"components/Table/Cell/Status/StatusCell\";\nimport { getTestStatusType } from \"util/Partner\";\nimport { isConnectedToClientWithActiveContract } from \"util/Access\";\nimport { exportClientPackagesTable } from \"util/excel/ExportClientPackagesTable\";\nimport { clearLocalAlerts, addNewLocalErrorAlert } from \"util/Alerts\";\n\nimport \"./PackagesTable.scss\";\n\nimport {\n fetchCategories,\n fetchColors,\n fetchEanTypes,\n fetchPackagesList,\n fetchPackageStatuses,\n fetchPackageTypes,\n fetchPackageVolumes,\n fetchPackageTestResults,\n packageStatusTypes,\n} from \"util/Packages\";\nimport moment from \"moment\";\nimport { withTranslation } from \"react-i18next\";\n\nfunction NoDataIndication(props) {\n let content = props.t(\"packages.noPackagesText\", \"Ükski pakend ei vasta otsingutingimustele.\");\n if (props.loading) {\n content = ;\n }\n\n return
{content}
;\n}\n\nclass PackagesTable extends React.Component {\n packagesTableNode = null; // Ref into packages bootstrap table.\n\n constructor(props) {\n super(props);\n\n this.state = {\n filterEan: \"\",\n filterProductName: \"\",\n filterEanType: null,\n filterCategory: \"\",\n filterPackageType: \"\",\n filterCapacity: \"\",\n filterStatus: \"\",\n filterTestResult: \"\",\n startDate: null,\n endDate: null,\n };\n }\n\n componentDidMount() {\n // packages are queried only on packages page\n if (\n matchPath(this.props.location.pathname, {\n path: urls.PACKAGES,\n exact: true,\n strict: true,\n })\n ) {\n fetchPackagesList();\n }\n\n fetchPackageStatuses(this.props.packageStatuses);\n fetchPackageVolumes(this.props.packageVolumes);\n fetchColors(this.props.packageColors);\n fetchCategories(this.props.categories);\n fetchPackageTypes(this.props.packageTypes);\n fetchEanTypes(this.props.eanTypes);\n fetchPackageTestResults(this.props.packageTestResults);\n }\n\n componentDidUpdate(prevProps, prevState, snapshot) {\n this.filterEan(this.state.filterEan);\n this.filterProductName(this.state.filterProductName);\n this.filterEanType(\n this.state.filterEanType ? this.state.filterEanType.value : \"\"\n );\n this.filterCategory(\n this.state.filterCategory\n ? this.state.filterCategory.description\n : \"\"\n );\n this.filterPackageType(\n this.state.filterPackageType\n ? this.state.filterPackageType.value\n : \"\"\n );\n this.filterCapacity(\n this.state.filterCapacity ? this.state.filterCapacity.value : \"\"\n );\n this.filterStatus(\n this.state.filterStatus ? this.state.filterStatus.id : \"\"\n );\n this.filterTestResult(\n this.state.filterTestResult ? this.state.filterTestResult.label : \"\"\n );\n }\n\n handleChange = (name) => (value) => {\n this.setState({ [name]: value });\n };\n\n handleDateChange = (name, date) => {\n this.setState({\n [name]: date,\n });\n };\n\n handleSelectChange = (name) => (selectedObject) => {\n this.setState({\n [name]: selectedObject ? selectedObject : null,\n });\n };\n\n filterDates = () => {\n return this.props.packagesList.filter((pkg) => {\n const startMoment = moment(this.state.startDate);\n const endMoment = moment(this.state.endDate);\n const dateFieldMoment = moment(pkg.combined_at, \"DD.MM.YYYY\");\n\n if (startMoment.isValid() && endMoment.isValid()) {\n return (\n dateFieldMoment.isSameOrAfter(startMoment) &&\n dateFieldMoment.isSameOrBefore(endMoment)\n );\n } else if (startMoment.isValid()) {\n return dateFieldMoment.isSameOrAfter(startMoment);\n } else if (endMoment.isValid()) {\n return dateFieldMoment.isSameOrBefore(endMoment);\n } else {\n return true;\n }\n });\n };\n\n clearSearchFields = () => {\n this.setState({\n filterEan: \"\",\n filterProductName: \"\",\n filterEanType: \"\",\n filterCategory: \"\",\n filterPackageType: \"\",\n filterCapacity: \"\",\n filterStatus: \"\",\n filterTestResult: \"\",\n startDate: null,\n endDate: null,\n });\n };\n\n onExport = () => {\n let fileName = \"Pakendid\";\n let client;\n try {\n client = this.props.user.user_type.client_name;\n fileName += \" - \" + client;\n } catch (err) {\n // No user or user.user_type\n client = \"\";\n }\n\n let filteredPackages = [];\n try {\n filteredPackages = this.packagesTableNode.table.props.data; // Currently displayed rows in packages table\n } catch (err) {\n filteredPackages = [];\n }\n\n try {\n exportClientPackagesTable(\n fileName,\n filteredPackages,\n { ...this.state },\n client\n );\n } catch (err) {\n clearLocalAlerts();\n addNewLocalErrorAlert(\n this.props.t(\n \"packages.filter.excelExportError\",\n \"Excel faili loomine ebaõnnestus!\"\n ),\n this.props.location.pathname,\n true\n );\n }\n };\n\n render() {\n const { t } = this.props;\n return (\n \n \n \n \n \n {t(\n \"packages.filter.searchPackage\",\n \"Pakendi otsing\"\n )}\n \n \n {isConnectedToClientWithActiveContract() && (\n \n \n this.props.history.push(\n urls.ADD_PACKAGES\n )\n }\n >\n {t(\n \"packages.filter.registerNewPackage\",\n \"Registreeri uus pakend\"\n )}\n \n \n )}\n \n \n \n \n \n \n \n option.value\n }\n getOptionValue={(option) =>\n option.value\n }\n onChange={this.handleSelectChange(\n \"filterEanType\"\n )}\n className=\"mb-2\"\n />\n \n \n \n \n option.description\n }\n getOptionValue={(option) =>\n option.value\n }\n onChange={this.handleSelectChange(\n \"filterCategory\"\n )}\n />\n \n \n \n option.value\n }\n getOptionValue={(option) =>\n option.value\n }\n onChange={this.handleSelectChange(\n \"filterPackageType\"\n )}\n />\n \n option.value + \"cl\"\n }\n getOptionValue={(option) =>\n option.value\n }\n className=\"select mb-2\"\n onChange={this.handleSelectChange(\n \"filterCapacity\"\n )}\n />\n \n \n \n \n \n \n \n option.value\n }\n getOptionValue={(option) =>\n option.value\n }\n name=\"filterStatus\"\n placeholder={t(\n \"packages.filter.status\",\n \"Staatus\"\n )}\n onChange={this.handleSelectChange(\n \"filterStatus\"\n )}\n className=\"select mb-2\"\n />\n \n \n \n option.label\n }\n getOptionValue={(option) =>\n option.label\n }\n name=\"filterTestResult\"\n placeholder={t(\n \"packages.filter.testResult\",\n \"Testitulemus\"\n )}\n onChange={this.handleSelectChange(\n \"filterTestResult\"\n )}\n className=\"select mb-2\"\n />\n \n \n \n \n \n this.handleDateChange(\n \"startDate\",\n date\n )\n }\n />\n \n \n \n this.handleDateChange(\n \"endDate\",\n date\n )\n }\n />\n \n \n \n \n \n {t(\n \"packages.filter.clearSearch\",\n \"Tühjenda otsing\"\n )}\n \n \n {t(\"packages.filter.export\", \"Ekspordi\")}\n \n \n \n \n \n {this.renderTable()}\n \n \n );\n }\n\n renderTable() {\n const { t } = this.props;\n const statusFormatter = (statusLabel, row) => {\n return (\n \n );\n };\n\n const packages = this.filterDates();\n\n const columns = [\n {\n dataField: \"EAN\",\n text: t(\"packages.filter.ean\", \"EAN\"),\n sort: true,\n classes: \"frozen-first-column\",\n headerClasses: \"frozen-first-column\",\n filter: textFilter({\n className: \"d-none\",\n getFilter: (filter) => {\n this.filterEan = filter;\n },\n }),\n },\n {\n dataField: \"EAN_type\",\n text: t(\"packages.filter.eanType\", \"EAN tüüp\"),\n sort: true,\n filter: selectFilter({\n className: \"d-none\",\n options: this.props.eanTypes,\n getFilter: (filter) => {\n this.filterEanType = filter;\n },\n }),\n },\n {\n dataField: \"name\",\n text: t(\"packages.filter.productName\", \"Nimetus\"),\n sort: true,\n filter: textFilter({\n className: \"d-none\",\n getFilter: (filter) => {\n this.filterProductName = filter;\n },\n }),\n },\n {\n dataField: \"color\",\n text: t(\"packages.color\", \"Värv\"),\n sort: true,\n },\n {\n dataField: \"package_category\",\n text: t(\"packages.filter.category\", \"Kategooria\"),\n sort: true,\n filter: selectFilter({\n className: \"d-none\",\n options: this.props.categories,\n getFilter: (filter) => {\n this.filterCategory = filter;\n },\n }),\n },\n {\n dataField: \"package_type\",\n text: t(\"packages.filter.type\", \"Tüüp\"),\n sort: true,\n filter: selectFilter({\n className: \"d-none\",\n options: this.props.packageTypes,\n getFilter: (filter) => {\n this.filterPackageType = filter;\n },\n }),\n },\n {\n dataField: \"volume\",\n text: t(\"packages.filter.volume\", \"Maht\"),\n sort: true,\n headerStyle: (column, colIndex) => {\n return { width: \"100px\" };\n },\n filter: selectFilter({\n className: \"d-none\",\n options: this.props.packageVolumes,\n getFilter: (filter) => {\n this.filterCapacity = filter;\n },\n }),\n },\n {\n dataField: \"weight\",\n text: t(\"packages.filter.weight\", \"Kaal\"),\n sort: true,\n headerStyle: (column, colIndex) => {\n return { width: \"100px\" };\n }\n },\n {\n dataField: \"status.label\",\n filterValue: (cell, row) => row.status.value,\n text: t(\"packages.filter.status\", \"Staatus\"),\n sort: true,\n formatter: statusFormatter,\n filter: selectFilter({\n className: \"d-none\",\n options: this.props.packageStatuses,\n getFilter: (filter) => {\n this.filterStatus = filter;\n },\n }),\n },\n {\n dataField: \"combined_at\",\n text: t(\"packages.filter.date\", \"Kuupäev\"),\n sort: true,\n sortValue: (cell) => moment(cell, \"DD.MM.YYYY\"),\n },\n {\n dataField: \"package_test\",\n text: t(\"packages.filter.testResult\", \"Testitulemus\"),\n sort: true,\n filter: selectFilter({\n className: \"d-none\",\n options: this.props.packageTestResults,\n getFilter: (filter) => {\n this.filterTestResult = filter;\n },\n }),\n formatter: (test_status) => {\n if (!test_status) {\n return \"\";\n } else {\n return (\n \n );\n }\n },\n },\n ];\n\n return (\n (this.packagesTableNode = n)}\n bootstrap4\n bordered={false}\n classes=\"packages-table fixed-header no-top-border header-bottom-shadow-border\"\n wrapperClasses=\"packages-table-wrapper\"\n keyField=\"id\"\n data={packages}\n columns={columns}\n filter={filterFactory()}\n filterPosition=\"inline\"\n noDataIndication={\n \n }\n defaultSorted={[{\n dataField: \"combined_at\",\n order: \"desc\",\n }]}\n // pagination={paginationFactory()}\n />\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n user: state.auth.user,\n activeClientId: state.auth.user\n ? state.auth.user.active_client_id\n : null,\n packagesList: state.packages.packagesList,\n packagesListLoading: state.packages.packagesListLoading,\n packagesErrorMessage: state.packages.error || \"\",\n eanTypes: state.packages.eanTypes,\n categories: state.packages.categories,\n packageTypes: state.packages.packageTypes,\n packageVolumes: state.packages.packageVolumes,\n packageColors: state.packages.packageColors,\n packageStatuses: state.packages.packageStatuses,\n packageTestResults: state.packages.packageTestResults,\n };\n};\n\nexport default withRouter(\n connect(mapStateToProps)(withTranslation(\"common\")(PackagesTable))\n);\n","import React from \"react\";\nimport PackagesTable from \"../components/Packages/PackagesTable/PackagesTable\";\n\n\nclass PackageView extends React.Component {\n\n render() {\n return (\n \n );\n }\n}\n\nexport default PackageView;","import React from \"react\";\n\nimport { NavLink, Route } from \"react-router-dom\";\nimport { Switch } from \"react-router\";\n\nimport urls from \"config/urls\";\nimport { withTranslation } from \"react-i18next\";\n\nclass ReportsView extends React.Component {\n render() {\n function RouteWithSubRoutes(route) {\n return (\n (\n // pass the sub-routes down to keep nesting\n \n )}\n />\n );\n }\n\n const { t } = this.props;\n\n return (\n <>\n
\n \n {t(\"reports.tabs.salesReports\", \"Müügiaruanded\")}\n \n \n {t(\"reports.tabs.summaryReports\", \"Koondaruanne\")}\n \n \n {t(\"reports.tabs.massReports\", \"Massiaruanded\")}\n \n \n {t(\"routes.returnReports\")}\n \n \n {t(\"reports.tabs.additionalDeposit\")}\n \n
\n\n \n {this.props.routes.map((route, i) => (\n \n ))}\n \n \n );\n }\n}\n\nexport default withTranslation(\"common\")(ReportsView);\n","var _path;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nconst SvgLeft = _ref => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 8,\n height: 14,\n viewBox: \"0 0 8 14\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7 13L1.07071 7.07071C1.03166 7.03166 1.03166 6.96834 1.07071 6.92929L7 1\",\n stroke: \"#9FA2B4\",\n strokeWidth: 2,\n strokeLinecap: \"round\"\n })));\n};\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgLeft, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/left.c90564e2.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nconst SvgDelete = _ref => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.9881 2.58238H11.1389V2.50387C11.1389 1.67461 10.3067 1 9.28379 1H6.71621C5.69328 1 4.86113 1.67461 4.86113 2.50387V2.58238H3.01186C2.4531 2.58238 2 2.94959 2 3.40267V4.02793C2 4.17896 2.15099 4.30136 2.33729 4.30136H13.6627C13.849 4.30136 14 4.17896 14 4.02793V3.40267C14 2.94959 13.547 2.58238 12.9881 2.58238ZM5.87299 2.50387C5.87299 2.12694 6.25125 1.82029 6.71621 1.82029H9.28379C9.74875 1.82029 10.127 2.12694 10.127 2.50387V2.58238H5.87299V2.50387Z\",\n fill: \"#C5C7CD\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2.43701 5.12207L3.25453 14.6185C3.27311 14.8334 3.49353 15.0001 3.75928 15.0001H12.2414C12.5071 15.0001 12.7275 14.8334 12.746 14.6185L13.5634 5.12207H2.43701ZM5.99801 13.6052C5.99077 13.6055 5.98339 13.6056 5.97614 13.6056C5.70671 13.6056 5.4826 13.4332 5.47114 13.2129L5.13385 6.78722C5.12186 6.5609 5.33859 6.3696 5.61778 6.35999C5.89709 6.3507 6.13293 6.52608 6.14478 6.7524L6.48207 13.178C6.49393 13.4044 6.2772 13.5956 5.99801 13.6052ZM8.50618 13.1954C8.50618 13.422 8.2797 13.6056 8.00025 13.6056C7.72081 13.6056 7.49432 13.422 7.49432 13.1954V6.76981C7.49432 6.54327 7.72081 6.35967 8.00025 6.35967C8.2797 6.35967 8.50618 6.54327 8.50618 6.76981V13.1954ZM10.5295 13.2129C10.5179 13.4333 10.2938 13.6056 10.0244 13.6056C10.0171 13.6056 10.0097 13.6055 10.0025 13.6053C9.72331 13.5957 9.50658 13.4044 9.51843 13.178L9.85572 6.7524C9.86771 6.52608 10.1039 6.35048 10.3827 6.36009C10.6619 6.36971 10.8786 6.5609 10.8668 6.78722L10.5295 13.2129Z\",\n fill: \"#C5C7CD\"\n })));\n};\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgDelete, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/delete.113d1978.svg\";\nexport { ForwardRef as ReactComponent };","import React from \"react\";\nimport {ReactComponent as LeftIcon} from \"assets/icons/left.svg\";\n\n\nexport default function LeftText(props) {\n return (\n
\n \n {props.text}\n
\n );\n}","import React from \"react\";\n\nimport {ReactComponent as DeleteIcon} from \"assets/icons/delete.svg\";\n\nimport \"./DeleteText.scss\";\n\nexport default function DeleteText({text, onClick, disabled}) {\n return (\n
\n {text}\n \n
\n );\n}","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport {PulseLoader} from \"react-spinners\";\n\nfunction WrapperPulseLoader(props) {\n return (\n \n );\n}\n\nWrapperPulseLoader.propTypes = {\n loading: PropTypes.bool,\n //size: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n extraProps: PropTypes.object,\n};\n\nWrapperPulseLoader.defaultProps = {\n size: 5,\n extraProps: {},\n loading: true,\n}\n\nexport default WrapperPulseLoader;","import i18n from \"i18next\";\n\nimport common_et from \"./i18n/et.json\";\nimport common_en from \"./i18n/en.json\";\nimport { initReactI18next } from \"react-i18next\";\n\ni18n.use(initReactI18next).init({\n interpolation: { escapeValue: false },\n lng: \"et\",\n ns: [\"common\"],\n defaultNS: \"common\",\n keySeparator: \".\",\n returnEmptyString: false,\n resources: {\n et: {\n common: common_et,\n },\n en: {\n common: common_en,\n },\n },\n});\n\nexport default i18n;\n","import * as actionTypes from \"./actionTypes\";\n\n\nexport const navigationUpdateHeaderSuffix = (text) => {\n return {\n type: actionTypes.NAVIGATION_UPDATE_HEADER_SUFFIX,\n text: text\n }\n};","import * as actionTypes from 'redux/actions/actionTypes';\n\nexport const salesSearchFilterUpdate = (key, value) => {\n return {\n type: actionTypes.SALES_SEARCH_FILTER_UPDATE,\n key: key,\n value: value,\n }\n}\n\nexport const salesClearFilters = () => {\n return {\n type: actionTypes.SALES_CLEAR_FILTERS,\n }\n}\n\nexport const salesFetchStart = () => {\n return {\n type: actionTypes.SALES_FETCH_START\n }\n};\n\nexport const salesFetchSuccess = (salesList, fromDate=null, toDate=null) => {\n return {\n type: actionTypes.SALES_FETCH_SUCCESS,\n salesList,fromDate, toDate,\n }\n};\n\nexport const salesFetchFail = (err) => {\n return {\n type: actionTypes.SALES_FETCH_FAIL,\n error: err\n }\n};\n\nexport const salesCreateRepairStart = () => {\n return {\n type: actionTypes.SALES_CREATE_REPAIR_START\n }\n};\n\nexport const salesCreateRepairSuccess = () => {\n return {\n type: actionTypes.SALES_CREATE_REPAIR_SUCCESS,\n }\n};\n\nexport const salesCreateRepairFail = (err) => {\n return {\n type: actionTypes.SALES_CREATE_REPAIR_FAIL,\n error: err\n }\n};","import * as actionTypes from 'redux/actions/actionTypes';\n\nexport const salesReportFetchStart = () => {\n return {\n type: actionTypes.SALES_REPORT_FETCH_START\n }\n};\n\nexport const salesReportFetchSuccess = (report) => {\n return {\n type: actionTypes.SALES_REPORT_FETCH_SUCCESS,\n report: report\n }\n};\n\nexport const salesReportFetchFail = (err) => {\n return {\n type: actionTypes.SALES_REPORT_FETCH_FAIL,\n error: err\n }\n};\n\nexport const salesReportHeaderFieldChange = (field, value) => {\n return {\n type: actionTypes.SALES_REPORT_HEADER_FIELD_CHANGE,\n field: field,\n value: value,\n }\n};\n\nexport const updateSalesReportHeaderTotals = (deposit_total, process_fee_total, process_fee_vat, to_be_paid) => {\n return {\n type: actionTypes.SALES_REPORT_HEADER_TOTALS_UPDATE,\n deposit_total, \n process_fee_total, \n process_fee_vat, \n to_be_paid\n }\n};\n\nexport const salesReportPackagesFieldChange = (id, field, value) => {\n return {\n type: actionTypes.SALES_REPORT_PACKAGES_FIELD_CHANGE,\n id: id,\n field: field,\n value: value,\n }\n};\n\nexport const salesLineUpdateStart = (updatedPackage) => {\n return {\n type: actionTypes.SALES_LINE_UPDATE_START,\n updatedPackage,\n }\n};\n\nexport const salesLineUpdateSuccess = (updatedPackage) => {\n return {\n type: actionTypes.SALES_LINE_UPDATE_SUCCESS,\n updatedPackage,\n }\n};\n\nexport const salesLineUpdateFail = (updatedPackage, error) => {\n return {\n type: actionTypes.SALES_LINE_UPDATE_FAIL,\n updatedPackage,\n error: error,\n }\n};\n\nexport const salesReportSubmitStart = () => {\n return {\n type: actionTypes.SALES_REPORT_SUBMIT_START\n }\n};\n\nexport const salesReportSubmitSuccess = () => {\n return {\n type: actionTypes.SALES_REPORT_SUBMIT_SUCCESS,\n }\n};\n\nexport const salesReportSubmitFail = (err) => {\n return {\n type: actionTypes.SALES_REPORT_SUBMIT_FAIL,\n error: err\n }\n};\n\nexport const salesReportDeleteOriginalStart = () => {\n return {\n type: actionTypes.SALES_REPORT_DELETE_ORIGINAL_START,\n }\n};\n\nexport const salesReportDeleteOriginalSuccess = () => {\n return {\n type: actionTypes.SALES_REPORT_DELETE_ORIGINAL_SUCCESS,\n }\n};\n\nexport const salesReportDeleteOriginalFail = (err) => {\n return {\n type: actionTypes.SALES_REPORT_DELETE_ORIGINAL_FAIL,\n error: err,\n }\n};\n\nexport const salesReportDeleteRepairStart = () => {\n return {\n type: actionTypes.SALES_REPORT_DELETE_REPAIR_START,\n }\n};\n\nexport const salesReportDeleteRepairSuccess = () => {\n return {\n type: actionTypes.SALES_REPORT_DELETE_REPAIR_SUCCESS,\n }\n};\n\nexport const salesReportDeleteRepairFail = (err) => {\n return {\n type: actionTypes.SALES_REPORT_DELETE_REPAIR_FAIL,\n error: err\n }\n};\n\nexport const salesReportExportStart = () => {\n return {\n type: actionTypes.SALES_REPORT_EXPORT_START\n }\n};\n\nexport const salesReportExportSuccess = () => {\n return {\n type: actionTypes.SALES_REPORT_EXPORT_SUCCESS,\n }\n};\n\nexport const salesReportExportFail = (err) => {\n return {\n type: actionTypes.SALES_REPORT_EXPORT_FAIL,\n error: err\n }\n};","import * as actionTypes from 'redux/actions/actionTypes';\n\nexport const salesReportImportOpen = (details) => {\n return {\n type: actionTypes.SALES_REPORT_IMPORT_OPEN,\n details: details\n }\n};\n\nexport const salesReportImportFileChange = (file) => {\n return {\n type: actionTypes.SALES_REPORT_IMPORT_FILE_CHANGE,\n file: file\n }\n};\n\nexport const salesReportImportStart = () => {\n return {\n type: actionTypes.SALES_REPORT_IMPORT_START\n }\n};\n\nexport const salesReportImportSuccess = () => {\n return {\n type: actionTypes.SALES_REPORT_IMPORT_SUCCESS,\n }\n};\n\nexport const salesReportImportFail = (errors) => {\n return {\n type: actionTypes.SALES_REPORT_IMPORT_FAIL,\n errors: errors\n }\n};\n\nexport const salesReportImportClose = () => {\n return {\n type: actionTypes.SALES_REPORT_IMPORT_CLOSE\n }\n};","import FileSaver from \"file-saver\";\n\nexport const b64toBlob = (b64Data, contentType='', sliceSize=512) => {\n const byteCharacters = atob(b64Data);\n const byteArrays = [];\n \n for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {\n const slice = byteCharacters.slice(offset, offset + sliceSize);\n \n const byteNumbers = new Array(slice.length);\n for (let i = 0; i < slice.length; i++) {\n byteNumbers[i] = slice.charCodeAt(i);\n }\n \n const byteArray = new Uint8Array(byteNumbers);\n byteArrays.push(byteArray);\n }\n \n const blob = new Blob(byteArrays, {type: contentType});\n return blob;\n}\n\nexport function downloadFileBase64(base64, filename) {\n FileSaver.saveAs(b64toBlob(base64), filename);\n}\n","import React from \"react\";\nimport axios from \"../axios\";\nimport store from \"redux/store\";\nimport moment from \"moment\";\nimport _ from \"lodash\";\nimport i18n from \"i18n\";\n\nimport { getServerErrorMessage } from \"util/Errors\";\nimport { addNewLocalErrorAlert, clearLocalAlerts } from \"util/Alerts\";\n\nimport {\n SALES_LIST,\n GET_SALES_REPORT,\n CREATE_REPAIR_SALES_REPORT,\n GET_REPAIR_SALES_REPORT,\n DELETE_REPAIR_SALES_REPORT,\n UPDATE_SALES_REPORT_LINE,\n UPDATE_REPAIR_SALES_REPORT_LINE,\n SUBMIT_SALES_REPORT,\n EXPORT_SALES_REPORT,\n EXPORT_SALES_REPORT_REPAIR,\n IMPORT_SALES_REPORT,\n IMPORT_SALES_REPORT_REPAIR,\n} from \"config/Api\";\nimport { navigationUpdateHeaderSuffix } from \"redux/actions/navigation\";\nimport {\n salesFetchStart,\n salesFetchFail,\n salesFetchSuccess,\n salesCreateRepairStart,\n salesCreateRepairSuccess,\n salesCreateRepairFail,\n} from \"redux/actions/reports/sales\";\nimport {\n salesReportFetchStart,\n salesReportFetchFail,\n salesReportFetchSuccess,\n salesLineUpdateStart,\n salesLineUpdateSuccess,\n salesLineUpdateFail,\n salesReportSubmitStart,\n salesReportSubmitSuccess,\n salesReportSubmitFail,\n salesReportExportStart,\n salesReportExportSuccess,\n salesReportExportFail,\n salesReportDeleteRepairStart,\n salesReportDeleteRepairSuccess,\n salesReportDeleteRepairFail,\n} from \"redux/actions/reports/salesReport\";\n\nimport {\n salesReportImportStart,\n salesReportImportSuccess,\n salesReportImportFail,\n} from \"redux/actions/reports/importSalesReport\";\n\nimport { saleStatuses } from \"components/Reports/Sales/helpers/Options\";\n\nimport {\n parseSalesReportPeriodDate,\n salesReportPeriodListFormat,\n} from \"util/DateTime\";\nimport { b64toBlob } from \"util/Files\";\nimport FileSaver from \"file-saver\";\nimport { Trans } from \"react-i18next\";\nimport { getVatPercentageFraction } from \"./General\";\n\nexport const SaleStatus = saleStatuses;\n\nexport function fetchSalesList(fromDate, toDate, alertGroup = null) {\n store.dispatch(salesFetchStart());\n // TODO implement endpoint\n return axios\n .get(SALES_LIST)\n .then((resp) => {\n // TODO remove mock data part.\n //const unfilteredData = [...mockSales, ...resp.data];\n const filteredData = filterByFromDate(resp.data, fromDate);\n const salesReports = filterByToDate(filteredData, toDate);\n store.dispatch(salesFetchSuccess(salesReports, fromDate, toDate));\n\n return { isSuccess: true };\n })\n .catch((err) => {\n const errorMessage = getServerErrorMessage(err);\n store.dispatch(salesFetchFail(errorMessage));\n\n if (alertGroup) {\n clearLocalAlerts();\n addNewLocalErrorAlert(\n \n Müügiaruannete laadimine ebaõnnestus: {{ errorMessage }}\n ,\n alertGroup,\n true\n );\n }\n\n return { isSuccess: false, errorMessage };\n });\n}\n\nexport function createRepairReport(id, onSuccess) {\n store.dispatch(salesCreateRepairStart());\n const data = {\n sales_report_id: id,\n };\n return axios\n .post(CREATE_REPAIR_SALES_REPORT, data)\n .then((resp) => {\n store.dispatch(salesCreateRepairSuccess());\n onSuccess(resp.data.id);\n\n return { isSuccess: true };\n })\n .catch((err) => {\n const errorMessage = getServerErrorMessage(err);\n store.dispatch(salesCreateRepairFail(errorMessage));\n\n return { isSuccess: false, errorMessage };\n });\n}\n\nexport function fetchSalesReport(id) {\n store.dispatch(salesReportFetchStart());\n return axios\n .get(`${GET_SALES_REPORT}${id}/`)\n .then((resp) => {\n store.dispatch(salesReportFetchSuccess(resp.data));\n\n return { isSuccess: true };\n })\n .catch((err) => {\n const errorMessage = getServerErrorMessage(err);\n store.dispatch(salesReportFetchFail(errorMessage));\n\n return { isSuccess: false, errorMessage };\n });\n}\n\nexport function fetchRepairSalesReport(id) {\n store.dispatch(salesReportFetchStart());\n return axios\n .get(`${GET_REPAIR_SALES_REPORT}${id}/`)\n .then((resp) => {\n store.dispatch(salesReportFetchSuccess(resp.data));\n\n return { isSuccess: true };\n })\n .catch((err) => {\n const errorMessage = getServerErrorMessage(err);\n store.dispatch(salesReportFetchFail(errorMessage));\n\n return { isSuccess: false, errorMessage };\n });\n}\n\nexport function updateSalesLine(\n salesReportId,\n isRepair,\n oldPackage,\n newQuantity\n) {\n const data = {\n package: oldPackage.id,\n quantity: newQuantity ? Number(newQuantity) : 0,\n };\n const urlBase = isRepair\n ? UPDATE_REPAIR_SALES_REPORT_LINE\n : UPDATE_SALES_REPORT_LINE;\n const url = `${urlBase}${salesReportId}/`;\n store.dispatch(\n salesLineUpdateStart({\n ...oldPackage,\n isQuantityUpdateLoading: true,\n isQuantityUpdated: null,\n })\n );\n return axios\n .post(url, data)\n .then((resp) => {\n store.dispatch(\n salesLineUpdateSuccess({\n ...resp.data,\n isQuantityUpdateLoading: false,\n isQuantityUpdated: true,\n })\n );\n\n return { isSuccess: true };\n })\n .catch((err) => {\n const errorMessage = getServerErrorMessage(err);\n store.dispatch(\n salesLineUpdateFail(\n {\n ...oldPackage,\n isQuantityUpdateLoading: false,\n isQuantityUpdated: false,\n },\n errorMessage\n )\n );\n\n return { isSuccess: false, errorMessage };\n });\n}\n\nexport function submitSalesReport(id, isRepair, onSuccess, onError) {\n const data = {\n is_repair: isRepair,\n sales_report_id: id,\n };\n\n store.dispatch(salesReportSubmitStart());\n return axios\n .put(SUBMIT_SALES_REPORT, data)\n .then((resp) => {\n store.dispatch(salesReportSubmitSuccess());\n\n return { isSuccess: true };\n })\n .catch((err) => {\n const errorMessage = getServerErrorMessage(err);\n store.dispatch(salesReportSubmitFail(errorMessage));\n\n return { isSuccess: false, errorMessage };\n });\n}\n\nexport function deleteRepairSalesReport(id) {\n store.dispatch(salesReportDeleteRepairStart());\n return axios\n .delete(`${DELETE_REPAIR_SALES_REPORT}${id}/`)\n .then((resp) => {\n store.dispatch(salesReportDeleteRepairSuccess());\n\n return { isSuccess: true };\n })\n .catch((err) => {\n const errorMessage = getServerErrorMessage(err);\n store.dispatch(salesReportDeleteRepairFail(errorMessage));\n\n return { isSuccess: false, errorMessage };\n });\n}\n\nexport function fetchSalesReportExportFile(id, isRepair, period) {\n const url = isRepair\n ? `${EXPORT_SALES_REPORT_REPAIR}${id}/`\n : `${EXPORT_SALES_REPORT}${id}/`;\n store.dispatch(salesReportExportStart());\n return axios\n .get(url, {\n //reponseType: \"arraybuffer\",\n //headers: {'Content-Type': \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\"},\n })\n .then((resp) => {\n const blob = b64toBlob(resp.data);\n let filename;\n if (isRepair) {\n filename = i18n.t(\"filename.repairSalesReportTemplateExport\", {period});\n } else {\n filename = i18n.t(\"filename.salesReportTemplateExport\", {period})\n }\n FileSaver.saveAs(blob, filename);\n store.dispatch(salesReportExportSuccess());\n\n return { isSuccess: true };\n })\n .catch((err) => {\n const errorMessage = getServerErrorMessage(err);\n store.dispatch(salesReportExportFail(errorMessage));\n\n return { isSuccess: false, errorMessage };\n });\n}\n\nexport const importSalesReportFromExcelFile = async (id, isRepair, file) => {\n let formdata = new FormData();\n formdata.append(\"file\", file);\n formdata.append(\"name\", file.name);\n\n const endpointStatic = isRepair\n ? IMPORT_SALES_REPORT_REPAIR\n : IMPORT_SALES_REPORT;\n store.dispatch(salesReportImportStart());\n return axios\n .put(`${endpointStatic}${id}/`, formdata)\n .then((response) => {\n store.dispatch(salesReportImportSuccess());\n return { isSuccess: true };\n })\n .catch((err) => {\n let errors = [];\n if (err.response && err.response.data) {\n const data = err.response.data;\n if (_.isArray(data)) {\n errors = data;\n } else {\n errors = [data];\n }\n }\n\n // const errorMessage = getServerErrorMessage(err);\n store.dispatch(salesReportImportFail(errors));\n\n return { isSuccess: false, errors };\n });\n};\n\nexport function isRecent(period) {\n const SALES_REPORTS_RECENT_MONTHS_EDITABLE = 12\n if (_.isNil(period)) {\n return false;\n }\n const periodDate = moment(period);\n return (\n periodDate.isValid() &&\n periodDate.isAfter(moment().subtract(SALES_REPORTS_RECENT_MONTHS_EDITABLE, \"months\"), \"months\")\n );\n}\n\nexport function isActive(reportDetails) {\n if (!reportDetails) {\n return false;\n }\n const reportPeriod = parseSalesReportPeriodDate(reportDetails.period);\n return (\n isRecent(reportPeriod) &&\n [SaleStatus.UNSUBMITTED, SaleStatus.REJECTED].includes(\n reportDetails.status.value\n )\n );\n}\n\nexport function calculateSalesReportPackageTotals(packages, { is_vat_free, period }) {\n if (!packages) {\n packages = [];\n }\n\n let totalPackages = 0;\n let totalDeposits = 0;\n let totalProcessFeesByType = {};\n let totalProcessFees = 0;\n\n for (const pkg of packages) {\n if (!pkg.quantity) {\n continue;\n }\n totalPackages += Number(pkg.quantity);\n totalDeposits += Number(pkg.deposit_total);\n const processFeeType = pkg.process_fee_type;\n const previousProcessFeeTotal = totalProcessFeesByType[processFeeType] || 0;\n totalProcessFeesByType[processFeeType] = previousProcessFeeTotal + Number(pkg.process_fee);\n }\n totalProcessFees = Object\n .values(totalProcessFeesByType)\n .map(x => _.round(x, 2))\n .reduce((total, value) => total + value, 0);\n \n const process_fee_vat = is_vat_free ? 0 : totalProcessFees * getVatPercentageFraction(new Date(period));\n\n const rounded_process_fee_total = _.round(totalProcessFees, 2);\n const rounded_process_fee_vat = _.round(process_fee_vat, 2);\n const rounded_deposit_total = _.round(totalDeposits, 2);\n const rounded_to_be_paid =\n rounded_process_fee_total +\n rounded_process_fee_vat +\n rounded_deposit_total;\n\n const totals = {\n packages_total: totalPackages,\n process_fee_total: rounded_process_fee_total,\n process_fee_vat: rounded_process_fee_vat,\n deposit_total: rounded_deposit_total,\n to_be_paid: rounded_to_be_paid,\n };\n return totals;\n}\n\nexport function setSalesReportHeaderSuffix(details) {\n if (!details || !details.period) {\n return;\n }\n const period = details.period;\n const isRepair = details.is_repair;\n\n const periodFormatted = parseSalesReportPeriodDate(period).format(\n salesReportPeriodListFormat\n );\n let text = (\n \n {{ periodFormatted }}\n \n );\n if (isRepair) {\n text = (\n \n {{ periodFormatted }} - Parandus\n \n );\n }\n store.dispatch(navigationUpdateHeaderSuffix(text));\n}\n\nfunction filterByFromDate(data, fromDate = null) {\n if (!data) {\n return data;\n }\n const fromDateMoment = moment(fromDate);\n if (data && fromDateMoment.isValid()) {\n return data.filter((d) =>\n fromDateMoment.isSameOrBefore(new moment(d.period), \"month\")\n );\n }\n return data;\n}\n\nfunction filterByToDate(data, toDate = null) {\n if (!data) {\n return data;\n }\n const toDateMoment = moment(toDate);\n if (data && toDateMoment.isValid()) {\n return data.filter((d) =>\n toDateMoment.isSameOrAfter(new moment(d.period), \"month\")\n );\n }\n return data;\n}\n\nexport function isSalesReportHasRepairReport(salesReport) {\n return salesReport && !!salesReport.repair_report;\n}\n\nexport function isSalesReportHasUnconfirmedRepairReport(salesReport) {\n return (\n isSalesReportHasRepairReport(salesReport) &&\n salesReport.repair_report.status.value === SaleStatus.UNCONFIRMED\n );\n}\n\nexport function isSalesReportOrItsRepairReportHasStatuses(\n salesReport,\n statuses\n) {\n if (!salesReport || !statuses || !statuses.length) {\n return false;\n }\n\n if (statuses.includes(salesReport.status.value)) {\n return true;\n }\n\n if (isSalesReportHasRepairReport(salesReport)) {\n const repairReport = salesReport.repair_report;\n if (statuses.includes(repairReport.status.value)) {\n return true;\n }\n }\n\n return false;\n}\n\nexport function isSalesReportHasClientEditableRepair(salesReport) {\n return (\n isSalesReportHasRepairReport(salesReport) &&\n isRecent(salesReport.period) &&\n [SaleStatus.UNSUBMITTED, SaleStatus.REJECTED].includes(\n salesReport.repair_report.status.value\n )\n );\n}\n\nexport function isRepairReportClientEditable(repairReport) {\n if (!repairReport) return false;\n\n return (\n isRecent(repairReport.period) && \n [SaleStatus.UNSUBMITTED, SaleStatus.REJECTED].includes(\n repairReport.status?.value\n )\n )\n}\n","import axios from \"../../axios\";\nimport store from \"redux/store\";\nimport moment from \"moment\";\n//import _ from \"lodash\";\n\nimport { secondDateIsSameOrAfterFirstDate } from \"util/DateTime\";\n\nimport { getServerErrorMessage } from \"util/Errors\";\nimport { addNewLocalErrorAlert, clearLocalAlerts } from \"util/Alerts\";\n\nimport {\n ADMIN_ALL_SALES_REPORTS,\n ADMIN_UNSUBMITTED_SALES_REPORTS,\n ADMIN_UNCONFIRMED_SALES_REPORTS,\n ADMIN_GET_SALES_REPORT,\n ADMIN_GET_REPAIR_SALES_REPORT,\n //ADMIN_CLIENT_SALES_REPORTS,\n ADMIN_REPAIR_SALES_REPORT_APPROVAL,\n ADMIN_DELETE_SALES_REPORT,\n} from \"config/Api\";\nimport {\n adminSalesReportsFetchStart,\n adminSalesReportsFetchSuccess,\n adminSalesReportsFetchFail,\n} from \"redux/actions/admin/salesReports\";\nimport {\n adminUnsubmittedSalesReportsFetchStart,\n adminUnsubmittedSalesReportsFetchSuccess,\n adminUnsubmittedSalesReportsFetchFail,\n} from \"redux/actions/admin/unsubmittedSalesReports\";\nimport {\n adminUnconfirmedSalesReportsFetchStart,\n adminUnconfirmedSalesReportsFetchSuccess,\n adminUnconfirmedSalesReportsFetchFail,\n} from \"redux/actions/admin/unconfirmedSalesReports\";\nimport {\n salesReportFetchStart,\n salesReportFetchFail,\n salesReportFetchSuccess,\n salesReportDeleteOriginalStart,\n salesReportDeleteOriginalSuccess,\n salesReportDeleteOriginalFail,\n} from \"redux/actions/reports/salesReport\";\n//import { b64toBlob } from \"util/Files\";\n//import FileSaver from \"file-saver\";\n\nexport function fetchSalesReports(filters, alertGroup) {\n store.dispatch(adminSalesReportsFetchStart());\n\n const filtersToUse = { ...filters };\n\n const dateFormat = \"YYYY-MM-DD\";\n const formattedFromDate = moment(filtersToUse.startDate)\n .startOf(\"month\")\n .format(dateFormat);\n const formattedToDate = moment(filtersToUse.endDate)\n .endOf(\"month\")\n .format(dateFormat);\n const endpoint = ADMIN_ALL_SALES_REPORTS.replace(\n \"\",\n formattedFromDate\n ).replace(\"\", formattedToDate);\n\n let params = {};\n if (filtersToUse.client) {\n params = {\n client_id: filtersToUse.client.value,\n };\n }\n\n return axios\n .get(endpoint, {\n params,\n })\n .then((resp) => {\n const unfilteredSalesReports = resp.data;\n const filteredSalesReports = filterSalesReports(\n unfilteredSalesReports,\n filtersToUse\n );\n store.dispatch(\n adminSalesReportsFetchSuccess(\n unfilteredSalesReports,\n filteredSalesReports,\n filtersToUse\n )\n );\n\n return { isSuccess: true };\n })\n .catch((err) => {\n const errorMessage = getServerErrorMessage(err);\n store.dispatch(adminSalesReportsFetchFail(errorMessage));\n\n if (alertGroup) {\n clearLocalAlerts();\n addNewLocalErrorAlert(\n `Müügiaruannete laadimine ebaõnnestus: ${errorMessage}`,\n alertGroup,\n true\n );\n }\n\n return { isSuccess: false, errorMessage };\n });\n}\n\nexport function fetchUnsubmittedSalesReports(filters, alertGroup) {\n store.dispatch(adminUnsubmittedSalesReportsFetchStart());\n\n const filtersToUse = { ...filters };\n\n const dateFormat = \"YYYY-MM-DD\";\n const formattedFromDate = moment(filtersToUse.startDate)\n .startOf(\"month\")\n .format(dateFormat);\n const formattedToDate = moment(filtersToUse.endDate)\n .endOf(\"month\")\n .format(dateFormat);\n const endpoint = ADMIN_UNSUBMITTED_SALES_REPORTS.replace(\n \"\",\n formattedFromDate\n ).replace(\"\", formattedToDate);\n\n let params = {};\n if (filtersToUse.client) {\n params = {\n client_id: filtersToUse.client.value,\n };\n }\n\n return axios\n .get(endpoint, {\n params,\n })\n .then((resp) => {\n const unfilteredSalesReports = resp.data;\n const filteredSalesReports = filterSalesReports(\n unfilteredSalesReports,\n filtersToUse\n );\n store.dispatch(\n adminUnsubmittedSalesReportsFetchSuccess(\n unfilteredSalesReports,\n filteredSalesReports,\n filtersToUse\n )\n );\n\n return { isSuccess: true };\n })\n .catch((err) => {\n const errorMessage = getServerErrorMessage(err);\n store.dispatch(adminUnsubmittedSalesReportsFetchFail(errorMessage));\n\n if (alertGroup) {\n clearLocalAlerts();\n addNewLocalErrorAlert(\n `Müügiaruannete laadimine ebaõnnestus: ${errorMessage}`,\n alertGroup,\n true\n );\n }\n\n return { isSuccess: false, errorMessage };\n });\n}\n\nexport function fetchUnconfirmedSalesReports(filters, alertGroup) {\n store.dispatch(adminUnconfirmedSalesReportsFetchStart());\n\n const filtersToUse = { ...filters };\n\n const dateFormat = \"YYYY-MM-DD\";\n const formattedFromDate = moment(filtersToUse.startDate)\n .startOf(\"month\")\n .format(dateFormat);\n const formattedToDate = moment(filtersToUse.endDate)\n .endOf(\"month\")\n .format(dateFormat);\n const endpoint = ADMIN_UNCONFIRMED_SALES_REPORTS.replace(\n \"\",\n formattedFromDate\n ).replace(\"\", formattedToDate);\n\n let params = {};\n if (filtersToUse.client) {\n params = {\n client_id: filtersToUse.client.value,\n };\n }\n\n return axios\n .get(endpoint, {\n params,\n })\n .then((resp) => {\n const unfilteredSalesReports = resp.data;\n const filteredSalesReports = filterSalesReports(\n unfilteredSalesReports,\n filtersToUse\n );\n store.dispatch(\n adminUnconfirmedSalesReportsFetchSuccess(\n unfilteredSalesReports,\n filteredSalesReports,\n filtersToUse\n )\n );\n\n return { isSuccess: true };\n })\n .catch((err) => {\n const errorMessage = getServerErrorMessage(err);\n store.dispatch(adminUnconfirmedSalesReportsFetchFail(errorMessage));\n\n if (alertGroup) {\n clearLocalAlerts();\n addNewLocalErrorAlert(\n `Müügiaruannete laadimine ebaõnnestus: ${errorMessage}`,\n alertGroup,\n true\n );\n }\n\n return { isSuccess: false, errorMessage };\n });\n}\n\nfunction filterSalesReports(salesReports, filters) {\n if (!salesReports || !salesReports.length || !filters) {\n return salesReports;\n }\n\n return salesReports.filter((report) => {\n if (filters.client && report.client.value !== filters.client.value) {\n return false;\n }\n if (\n filters.testResult &&\n report.last_test.value !== filters.testResult.value\n ) {\n return false;\n }\n if (\n filters.startDate &&\n !secondDateIsSameOrAfterFirstDate(\n filters.startDate,\n report.period,\n \"month\"\n )\n ) {\n return false;\n }\n if (\n filters.endDate &&\n !secondDateIsSameOrAfterFirstDate(\n report.period,\n filters.endDate,\n \"month\"\n )\n ) {\n return false;\n }\n\n return true;\n });\n}\n\nexport function adminFetchSalesReport(id) {\n store.dispatch(salesReportFetchStart());\n return axios\n .get(ADMIN_GET_SALES_REPORT.replace(\"\", id))\n .then((resp) => {\n store.dispatch(salesReportFetchSuccess(resp.data));\n\n return { isSuccess: true };\n })\n .catch((err) => {\n const errorMessage = getServerErrorMessage(err);\n store.dispatch(salesReportFetchFail(errorMessage));\n\n return { isSuccess: false, errorMessage };\n });\n}\n\nexport function adminFetchRepairSalesReport(id) {\n store.dispatch(salesReportFetchStart());\n return axios\n .get(ADMIN_GET_REPAIR_SALES_REPORT.replace(\"\", id))\n .then((resp) => {\n store.dispatch(salesReportFetchSuccess(resp.data));\n\n return { isSuccess: true };\n })\n .catch((err) => {\n const errorMessage = getServerErrorMessage(err);\n store.dispatch(salesReportFetchFail(errorMessage));\n\n return { isSuccess: false, errorMessage };\n });\n}\n\nexport function adminRepairSalesReportApproval(id, isApprove, comment = \"\") {\n const data = {\n repair_report_id: id,\n is_approve: isApprove,\n comment: comment,\n };\n\n return axios\n .put(ADMIN_REPAIR_SALES_REPORT_APPROVAL, data)\n .then((resp) => {\n store.dispatch(salesReportFetchSuccess(resp.data));\n return resp.data;\n })\n .catch((err) => {\n const errorMessage = getServerErrorMessage(err);\n\n throw Error(errorMessage);\n });\n}\n\nexport function adminDeleteSalesReport(id) {\n /**\n * Used to delete an unsubmitted sales report as EPP admin\n */\n store.dispatch(salesReportDeleteOriginalStart());\n return axios\n .delete(`${ADMIN_DELETE_SALES_REPORT}${id}/`)\n .then((resp) => {\n store.dispatch(salesReportDeleteOriginalSuccess());\n\n return { isSuccess: true };\n })\n .catch((err) => {\n const errorMessage = getServerErrorMessage(err);\n store.dispatch(salesReportDeleteOriginalFail(errorMessage));\n\n return { isSuccess: false, errorMessage };\n });\n}\n","import * as actionTypes from \"redux/actions/actionTypes\";\n\nexport const adminSalesReportsFetchStart = () => {\n return {\n type: actionTypes.ADMIN_SALES_REPORTS_FETCH_START,\n };\n};\n\nexport const adminSalesReportsFetchSuccess = (\n unfilteredSalesReportsList,\n salesReportsList,\n filters\n) => {\n return {\n type: actionTypes.ADMIN_SALES_REPORTS_FETCH_SUCCESS,\n unfilteredSalesReportsList,\n salesReportsList,\n filters,\n };\n};\n\nexport const adminSalesReportsFetchFail = (error) => {\n return {\n type: actionTypes.ADMIN_SALES_REPORTS_FETCH_FAIL,\n error,\n };\n};\n\nexport const adminSalesReportsFilterUpdate = (key, value) => {\n return {\n type: actionTypes.ADMIN_SALES_REPORTS_FILTER_UPDATE,\n key: key,\n value: value,\n };\n};\n\nexport const adminSalesReportsFilterClear = () => {\n return {\n type: actionTypes.ADMIN_SALES_REPORTS_FILTER_CLEAR,\n };\n};\n","import * as actionTypes from \"redux/actions/actionTypes\";\n\nexport const adminUnsubmittedSalesReportsFetchStart = () => {\n return {\n type: actionTypes.ADMIN_UNSUBMITTED_SALES_REPORTS_FETCH_START,\n };\n};\n\nexport const adminUnsubmittedSalesReportsFetchSuccess = (\n unfilteredSalesReportsList,\n salesReportsList,\n filters\n) => {\n return {\n type: actionTypes.ADMIN_UNSUBMITTED_SALES_REPORTS_FETCH_SUCCESS,\n unfilteredSalesReportsList,\n salesReportsList,\n filters,\n };\n};\n\nexport const adminUnsubmittedSalesReportsFetchFail = (error) => {\n return {\n type: actionTypes.ADMIN_UNSUBMITTED_SALES_REPORTS_FETCH_FAIL,\n error,\n };\n};\n\nexport const adminUnsubmittedSalesReportsFilterUpdate = (key, value) => {\n return {\n type: actionTypes.ADMIN_UNSUBMITTED_SALES_REPORTS_FILTER_UPDATE,\n key: key,\n value: value,\n };\n};\n\nexport const adminUnsubmittedSalesReportsFilterClear = () => {\n return {\n type: actionTypes.ADMIN_UNSUBMITTED_SALES_REPORTS_FILTER_CLEAR,\n };\n};\n","import * as actionTypes from \"redux/actions/actionTypes\";\n\nexport const adminUnconfirmedSalesReportsFetchStart = () => {\n return {\n type: actionTypes.ADMIN_UNCONFIRMED_SALES_REPORTS_FETCH_START,\n };\n};\n\nexport const adminUnconfirmedSalesReportsFetchSuccess = (\n unfilteredSalesReportsList,\n salesReportsList,\n filters\n) => {\n return {\n type: actionTypes.ADMIN_UNCONFIRMED_SALES_REPORTS_FETCH_SUCCESS,\n unfilteredSalesReportsList,\n salesReportsList,\n filters,\n };\n};\n\nexport const adminUnconfirmedSalesReportsFetchFail = (error) => {\n return {\n type: actionTypes.ADMIN_UNCONFIRMED_SALES_REPORTS_FETCH_FAIL,\n error,\n };\n};\n\nexport const adminUnconfirmedSalesReportsFilterUpdate = (key, value) => {\n return {\n type: actionTypes.ADMIN_UNCONFIRMED_SALES_REPORTS_FILTER_UPDATE,\n key: key,\n value: value,\n };\n};\n\nexport const adminUnconfirmedSalesReportsFilterClear = () => {\n return {\n type: actionTypes.ADMIN_UNCONFIRMED_SALES_REPORTS_FILTER_CLEAR,\n };\n};\n","var _path;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nconst SvgMoreVertical = _ref => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 4,\n height: 16,\n viewBox: \"0 0 4 16\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2 4C3.1 4 4 3.1 4 2C4 0.9 3.1 0 2 0C0.9 0 0 0.9 0 2C0 3.1 0.9 4 2 4ZM2 6C0.9 6 0 6.9 0 8C0 9.1 0.9 10 2 10C3.1 10 4 9.1 4 8C4 6.9 3.1 6 2 6ZM2 12C0.9 12 0 12.9 0 14C0 15.1 0.9 16 2 16C3.1 16 4 15.1 4 14C4 12.9 3.1 12 2 12Z\",\n fill: \"#C5C7CD\"\n })));\n};\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgMoreVertical, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/more-vertical.a457b5bf.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nconst SvgHideInactive = _ref => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 18,\n height: 12,\n viewBox: \"0 0 18 12\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.8912 5.54375C16.1965 2.23719 12.8415 0 8.99998 0C5.15842 0 1.80248 2.23875 0.108733 5.54406C0.037246 5.68547 0 5.8417 0 6.00016C0 6.15861 0.037246 6.31484 0.108733 6.45625C1.80342 9.76281 5.15842 12 8.99998 12C12.8415 12 16.1975 9.76125 17.8912 6.45594C17.9627 6.31453 18 6.1583 18 5.99984C18 5.84139 17.9627 5.68516 17.8912 5.54375ZM8.99998 10.5C8.10997 10.5 7.23994 10.2361 6.49992 9.74161C5.7599 9.24715 5.18312 8.54434 4.84253 7.72208C4.50193 6.89981 4.41282 5.99501 4.58645 5.12209C4.76008 4.24918 5.18867 3.44736 5.818 2.81802C6.44734 2.18868 7.24916 1.7601 8.12208 1.58647C8.99499 1.41283 9.89979 1.50195 10.7221 1.84254C11.5443 2.18314 12.2471 2.75991 12.7416 3.49993C13.2361 4.23995 13.5 5.10998 13.5 6C13.5003 6.59103 13.3841 7.17632 13.158 7.72242C12.932 8.26851 12.6005 8.7647 12.1826 9.18262C11.7647 9.60054 11.2685 9.932 10.7224 10.158C10.1763 10.3841 9.59101 10.5003 8.99998 10.5ZM8.99998 3C8.73221 3.00374 8.46617 3.04358 8.20905 3.11844C8.42099 3.40646 8.5227 3.7609 8.49572 4.11748C8.46875 4.47406 8.31487 4.80917 8.06201 5.06203C7.80915 5.31489 7.47405 5.46876 7.11747 5.49574C6.76088 5.52271 6.40644 5.42101 6.11842 5.20906C5.95441 5.81331 5.98402 6.45377 6.20307 7.04031C6.42213 7.62685 6.8196 8.12993 7.33955 8.47874C7.8595 8.82754 8.47574 9.00452 9.10153 8.98475C9.72733 8.96498 10.3312 8.74946 10.8281 8.36853C11.325 7.9876 11.6899 7.46044 11.8715 6.86125C12.0531 6.26205 12.0422 5.62099 11.8404 5.0283C11.6386 4.43561 11.256 3.92114 10.7464 3.55728C10.2369 3.19343 9.62609 2.99853 8.99998 3Z\",\n fill: \"#C5C7CD\"\n })));\n};\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgHideInactive, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/hide-inactive.3e3f0841.svg\";\nexport { ForwardRef as ReactComponent };","import React from \"react\";\nimport { withRouter } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport PropTypes from \"prop-types\";\nimport _ from \"lodash\";\n\nimport { Button, UncontrolledButtonDropdown, DropdownMenu, DropdownItem, DropdownToggle, Row, Col } from 'reactstrap';\n\nimport { ReactComponent as MoreVerticalIcon } from 'assets/icons/more-vertical.svg';\n// import {ReactComponent as HideActive} from \"assets/icons/hide-active.svg\";\nimport { ReactComponent as HideInactive } from \"assets/icons/hide-inactive.svg\";\n\nimport { getSaleReportUrl, getSaleReportFixUrl } from \"config/urls\";\nimport {\n createRepairReport,\n fetchSalesReportExportFile,\n isRepairReportClientEditable,\n isRecent,\n} from \"util/SalesReports\";\n\nimport \"./MenuCell.scss\";\n\nimport {\n salesReportImportOpen,\n} from \"redux/actions/reports/importSalesReport\";\nimport { alertsClearLocal } from \"redux/actions/alerts\";\nimport { addNewLocalErrorAlert } from \"util/Alerts\";\nimport { withTranslation } from \"react-i18next\";\n\nconst StyledDropdownItem = (props) => {props.children};\n\nclass ActionsCell extends React.Component {\n static propTypes = {\n isDetailsViewMode: PropTypes.bool, // requires isRepair \n isRepair: PropTypes.bool, // needed specifically when used in report details view. Specifices which type of report is open\n salesReport: PropTypes.object.isRequired,\n repairReport: PropTypes.object,\n salesReportImportOpen: PropTypes.func.isRequired,\n alertsClearLocal: PropTypes.func.isRequired,\n }\n\n render() {\n if (this.props.isDetailsViewMode) {\n return this.renderDetailsViewMode();\n }\n if (this.isOldWithoutRepair()) {\n return this.renderViewOriginal();\n }\n\n return this.renderDropdownMenu();\n }\n\n renderDetailsViewMode() {\n return (\n \n {this.renderActions(\"button-col\")}\n \n )\n }\n\n renderDropdownMenu() {\n return (\n { e.stopPropagation(); }}>\n \n \n \n \n {this.renderActions(\"dropdown\")}\n \n \n );\n }\n\n renderActions(mode) {\n const renderActionList = [\n this.renderActionViewOriginal,\n this.renderActionUpdateOriginalFromFile,\n this.renderActionCreateRepair,\n this.renderActionViewRepair,\n this.renderActionUpdateRepairFromFile,\n this.renderActionExportExcelTemplate]\n\n return renderActionList.map((renderAction, index) => renderAction(mode))\n }\n\n renderItem(text, onClick, options) {\n const config = _.defaultsDeep(options, {\n mode: \"dropdown\", // \"dropdown\" or \"button-col\"\n });\n if (config.mode === \"button-col\") {\n return (\n \n \n \n );\n }\n\n return (\n onClick()}\n key={text}\n >\n {text}\n \n );\n }\n\n renderActionViewOriginal = (mode) => {\n const { t, isDetailsViewMode, isRepair } = this.props;\n if (isDetailsViewMode && !isRepair) return;\n\n const createOriginalText = t(\"reports.sales.menu.openUnsubmittedOriginal\", \"Lisa aruanne\");\n const viewOriginalText = t(\"reports.sales.menu.openSubmittedOriginalWithRepair\", \"Vaata originaali\");\n const viewOriginalInDetailsText = t(\"reports.sales.menu.openSubmittedOriginalWithRepairInDetails\", \"Vaata esialgset aruannet\");\n const viewText = t(\"reports.sales.menu.openSubmittedOriginal\", \"Vaata\");\n\n let action = this.onView;\n let text = createOriginalText;\n if (isDetailsViewMode) {\n text = viewOriginalInDetailsText;\n action = this.onViewTab;\n }\n else if (this.isOriginalSubmitted()) {\n if (this.hasRepair()) {\n text = viewOriginalText;\n\n } else {\n text = viewText;\n }\n }\n\n return this.renderItem(text, action, { mode });\n }\n\n renderActionViewRepair = (mode) => {\n const { t, isDetailsViewMode, isRepair } = this.props;\n\n const viewRepairText = t(\"reports.sales.menu.openSubmittedRepairReport\", \"Vaata parandust\");\n const viewRepairInDetailsText = t(\"reports.sales.menu.openSubmittedRepairReportInDetails\", \"Vaata parandusaruannet\");\n const editRepairText = t(\"reports.sales.menu.openEditableRepairReport\", \"Paranda aruanne\");\n\n let action = this.onViewRepair;\n let text = viewRepairText;\n if (isDetailsViewMode) {\n if (isRepair || !this.hasRepair()) return;\n action = this.onViewRepairTab;\n text = viewRepairInDetailsText;\n } else if (this.hasRepair()) {\n text = this.hasEditableRepair() ? editRepairText : viewRepairText;\n } else {\n return;\n }\n\n return this.renderItem(text, action, { mode, target: \"_blank\" });\n }\n\n renderActionCreateRepair = mode => {\n const { t } = this.props;\n\n if (!this.isRecentPeriod()) return;\n if (!this.isSubmittedOriginalWithoutRepair()) return;\n\n const text = t(\"reports.sales.menu.createRepairReport\", \"Lisa parandus\");\n return this.renderItem(text, this.onCreateRepairReport, { mode });\n }\n\n renderActionUpdateOriginalFromFile = mode => {\n const { t, isDetailsViewMode } = this.props;\n\n if (isDetailsViewMode && this.isRepair) return;\n if (!this.isRecentPeriod() || this.isOriginalSubmitted()) return;\n\n const text = t(\"reports.sales.menu.importOriginalReport\", \"Lisa aruanne failist\");\n return this.renderItem(text, this.onImportFromFile, { mode });\n }\n\n renderActionUpdateRepairFromFile = mode => {\n const { t, isDetailsViewMode, isRepair } = this.props;\n\n if (!isDetailsViewMode) return;\n if (isDetailsViewMode && !isRepair) return;\n if (!this.isRecentPeriod()) return;\n if (!this.hasEditableRepair()) return;\n\n const text = t(\"reports.sales.menu.importRepairReport\", \"Paranda aruanne failist\")\n return this.renderItem(text, this.onImportRepairFromFile, { mode });\n }\n\n renderActionExportExcelTemplate = mode => {\n const { t, isDetailsViewMode, isRepair } = this.props;\n if (!isDetailsViewMode) return;\n if (isDetailsViewMode && !isRepair && this.isOriginalSubmitted()) return;\n if (!this.isRecentPeriod()) return;\n if (this.isOriginalSubmitted() && !this.hasEditableRepair()) return;\n\n const text = t(\"reports.sales.menu.exportExcelTemplate\", \"Ekspordi excel templaat\");\n return this.renderItem(text, this.onGetExcelTemplate, { mode });\n }\n\n renderViewOriginal() {\n return (\n \n \n \n );\n }\n\n onView = (isOpenInTab = false) => {\n const { history, salesReport } = this.props;\n const id = salesReport.id;\n const route = getSaleReportUrl(id);\n if (isOpenInTab) {\n window.open(route, '_blank');\n } else {\n history.push(route);\n }\n }\n\n onViewTab = () => {\n this.onView(true);\n }\n\n onViewRepair = (isOpenInTab = false) => {\n const { history, repairReport } = this.props;\n const id = repairReport.id;\n const route = getSaleReportFixUrl(id);\n if (isOpenInTab) {\n window.open(route, '_blank');\n } else {\n history.push(route);\n }\n }\n\n onViewRepairTab = () => {\n this.onViewRepair(true);\n }\n\n onCreateRepairReport = () => {\n const { t, location, salesReport, alertsClearLocal } = this.props;\n alertsClearLocal();\n createRepairReport(salesReport.id, this.onCreateRepairReportSuccess).then(\n result => {\n if (!result.isSuccess) {\n addNewLocalErrorAlert(\n t(\"reports.sales.menu.alert.createRepairReportFailedText\", \"Müügiaruande paranduse loomine ebaõnnestus: \") + result.errorMessage,\n location.pathname,\n true\n );\n }\n }\n );\n }\n\n onCreateRepairReportSuccess = (repairSalesReportId) => {\n this.props.history.push(getSaleReportFixUrl(repairSalesReportId));\n }\n\n onImportFromFile = () => {\n this.props.salesReportImportOpen(this.props.salesReport);\n }\n\n onImportRepairFromFile = () => {\n this.props.salesReportImportOpen(this.props.repairReport);\n }\n\n onGetExcelTemplate = () => {\n const { t, location, salesReport, repairReport, isDetailsViewMode, isRepair } = this.props;\n\n let report = salesReport;\n if (isDetailsViewMode) {\n if (isRepair) report = repairReport\n else report = salesReport;\n } else if (this.isSubmittedOriginalWithEditableRepair()) {\n report = repairReport;\n }\n\n this.props.alertsClearLocal();\n fetchSalesReportExportFile(report.id, report.is_repair, report.period).then(\n result => {\n if (!result.isSuccess) {\n addNewLocalErrorAlert(\n t(\"reports.sales.menu.exportExcelTemplateFailed\", \"Aruande templaadi allatõmbamine ebaõnnestus: \") + result.errorMessage,\n location.pathname\n );\n }\n }\n );\n }\n\n isRecentPeriod = () => {\n return isRecent(this.props.salesReport.period);\n }\n\n isOriginalSubmitted = () => {\n return this.props.salesReport.submitted_at != null;\n }\n\n hasRepair = () => {\n return !!this.props.repairReport;\n }\n\n isSubmittedOriginalWithEditableRepair = () => {\n return this.isOriginalSubmitted() && this.hasEditableRepair();\n }\n\n hasEditableRepair = () => {\n return isRepairReportClientEditable(this.props.repairReport);\n }\n\n isSubmittedOriginalWithoutRepair = () => {\n return this.isOriginalSubmitted() && this.props.repairReport === null;\n }\n\n isOldWithoutRepair = () => {\n return !this.hasRepair() && !this.isRecentPeriod();\n }\n}\n\nconst reduxActions = {\n salesReportImportOpen,\n alertsClearLocal,\n}\n\nexport default withRouter(connect(null, reduxActions)(withTranslation()(ActionsCell)));\n","var _path, _path2;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nconst SvgDiagonalPlusClose = _ref => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 10,\n height: 10,\n viewBox: \"0 0 10 10\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.82812 2.17188L2.17127 7.82873\",\n stroke: \"#F0F1F7\",\n strokeWidth: 1.7,\n strokeLinecap: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.82812 7.8291L2.17127 2.17225\",\n stroke: \"#F0F1F7\",\n strokeWidth: 1.7,\n strokeLinecap: \"round\"\n })));\n};\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgDiagonalPlusClose, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/diagonal-plus-close.a66ebab5.svg\";\nexport { ForwardRef as ReactComponent };","import React from \"react\";\n\nimport { ReactComponent as CloseIcon } from \"assets/icons/diagonal-plus-close.svg\";\nimport \"./CloseTextIcon.scss\";\n\nexport default function CloseTextIcon({ text, onClick }) {\n\n return (\n \n {text} \n \n \n );\n}\n","import React from \"react\";\n//import PropTypes from \"prop-types\";\nimport { Row, Col, Button, Modal, ModalBody } from \"reactstrap\";\n\nimport CloseTextIcon from \"components/Misc/CloseTextIcon\";\nimport Alerts from \"components/Alerts/Alerts\";\nimport LoadingAnimation from \"components/Loader/WrappedPulseLoader\";\n\nimport { Trans } from \"react-i18next\";\n\nconst ConfirmationModal = ({\n children, title, confirmButtonText, cancelButtonText,\n isOpen, onToggle, onCancel, onConfirm,\n isDisabled, isLoading, alertGroups,\n}) => {\n return (\n <>\n \n \n \n \n {title}\n \n \n Sulge}\n onClick={onToggle}\n />\n \n \n \n \n \n \n \n \n \n {children}\n \n \n \n \n \n {cancelButtonText}\n \n \n \n \n {isLoading ? : confirmButtonText}\n \n \n \n \n \n \n );\n}\n\nConfirmationModal.defaultProps = {\n children: Kas oled kindel?,\n title: Kinnita,\n confirmButtonText: Kinnita,\n cancelButtonText: Katkesta,\n isDisabled: false,\n isLoading: false,\n alertGroups: [],\n //onToggle, onCancel, onConfirm,\n};\n\nexport default ConfirmationModal;\n","import XLSX from \"xlsx\";\nimport i18n from \"i18n\";\n\nimport {\n parseSalesReportPeriodDate,\n YEAR_MONTH_FORMAT_XLSX,\n} from \"util/DateTime\";\nimport {\n currencyFormatter,\n depositCurrencyFormatter,\n processFeeCostCurrencyFormatter,\n} from \"util/General\";\n\nexport const exportExcelSalesReportDetails = (data) => {\n const { header, details, packages } = data;\n\n const wb = XLSX.utils.book_new();\n\n const period = getFormattedSalesReportPeriod(header.period);\n let firstSheetName = period;\n if (details.is_repair) {\n firstSheetName = i18n.t(\"export.repairSalesReport.firstSheetName\", {period});\n }\n\n const firstSheet = getExtraInfoSheet(header);\n XLSX.utils.sheet_add_aoa(firstSheet, getPackagesRows(packages), {\n origin: \"A4\",\n });\n\n if (packages.length === 0) {\n XLSX.utils.sheet_add_aoa(\n firstSheet,\n [[i18n.t(\"reports.salesReportSubmittedNoDataIndication\")]],\n { origin: { r: 4, c: 0 } }\n ); //sheet_add_aoa expects array of arrays.\n firstSheet[\"!merges\"] = [{ s: { r: 4, c: 0 }, e: { r: 4, c: 8 } }]; // e: { r: 4, c: 8 } 8 is headers - 1\n }\n\n XLSX.utils.book_append_sheet(wb, firstSheet, firstSheetName);\n\n /* Trigger Download with `writeFile` */\n const fileName = getFileName(header.period, details.is_repair);\n XLSX.writeFile(wb, fileName, {\n compression: true,\n });\n};\n\nfunction getExtraInfoSheet(header) {\n const period = getFormattedSalesReportPeriod(header.period);\n const depositTotal = currencyFormatter.format(header.deposit_total);\n const processFeeTotal = currencyFormatter.format(header.process_fee_total);\n const processFeeTotalVAT = currencyFormatter.format(header.process_fee_vat);\n const toBePaid = currencyFormatter.format(header.to_be_paid);\n\n const extraInfoRows = [\n [\n i18n.t(\"reports.clientCode\"),\n i18n.t(\"reports.period\"),\n i18n.t(\"reports.company\"),\n i18n.t(\"reports.packagesTotal\"),\n i18n.t(\"reports.depositFeeTotal\"),\n i18n.t(\"reports.serviceFeeTotal\"),\n i18n.t(\"reports.serviceFeeTaxes\"),\n i18n.t(\"reports.totalAmountToPay\"),\n ],\n [\n header.client_code,\n period,\n header.client_name,\n header.packages_total,\n depositTotal,\n processFeeTotal,\n processFeeTotalVAT,\n toBePaid,\n ],\n ];\n\n const ws = XLSX.utils.aoa_to_sheet(extraInfoRows);\n\n // Set widths\n const colWidths = [15, 25, 25, 15, 17, 17, 17, 14, 17];\n ws[\"!cols\"] = colWidths.map((x) => ({ width: x }));\n\n return ws;\n}\n\nfunction getFormattedSalesReportPeriod(period) {\n const periodMoment = parseSalesReportPeriodDate(period);\n if (periodMoment.isValid()) {\n return periodMoment.format(YEAR_MONTH_FORMAT_XLSX);\n }\n return \"\";\n}\n\nfunction getFileName(period, isRepair) {\n let formattedPeriod = period;\n const periodMoment = parseSalesReportPeriodDate(period);\n if (periodMoment.isValid()) {\n formattedPeriod = periodMoment.format(\"MM.YYYY\");\n }\n\n if (isRepair) {\n return i18n.t(\"filename.repairSalesReportDetailsExport\", {period: formattedPeriod});\n } else {\n return i18n.t(\"filename.salesReportDetailsExport\", {period: formattedPeriod});\n }\n}\n\nfunction getPackagesRows(packages) {\n const packagesHeaders = [\n i18n.t(\"reports.filter.ean\"),\n i18n.t(\"reports.filter.product\"),\n i18n.t(\"reports.filter.packageType\"),\n i18n.t(\"reports.filter.packageVolume\"),\n i18n.t(\"reports.filter.deposit\"),\n i18n.t(\"reports.filter.serviceFee\"),\n i18n.t(\"reports.filter.quantity\"),\n i18n.t(\"reports.filter.depositTotal\"),\n i18n.t(\"reports.filter.serviceFeeTotal\"),\n ];\n\n const packagesDataRows = getPackagesDataRows(packages);\n const packagesRows = [packagesHeaders, ...packagesDataRows];\n return packagesRows;\n /*\n const ws = XLSX.utils.aoa_to_sheet(packagesRows, { dateNF: \"DD-MM-YYYY\" });\n if (packagesDataRows.length === 0) {\n XLSX.utils.sheet_add_aoa(\n ws,\n [[\"Ei leitud kogustega pakendeid antud perioodile.\"]],\n { origin: { r: 1, c: 0 } }\n ); //sheet_add_aoa expects array of arrays.\n ws[\"!merges\"] = [\n { s: { r: 1, c: 0 }, e: { r: 1, c: packagesHeaders.length - 1 } },\n ];\n }\n // Set widths\n const colWidths = [18, 25, 25, 20, 20, 10, 15, 10];\n ws[\"!cols\"] = colWidths.map((x) => ({ width: x }));\n\n return ws;\n */\n}\n\nfunction getPackagesDataRows(packages) {\n return packages.map((pkg) => [\n pkg.EAN,\n pkg.name,\n pkg.package_type,\n pkg.volume,\n depositCurrencyFormatter.format(pkg.deposit),\n processFeeCostCurrencyFormatter.format(pkg.process_fee_base),\n pkg.quantity,\n currencyFormatter.format(pkg.deposit_total),\n currencyFormatter.format(pkg.process_fee),\n ]);\n}\n","import React, { Component } from 'react';\nimport PropTypes from \"prop-types\";\nimport { Translation } from \"react-i18next\";\n\nimport { Button } from \"reactstrap\";\nimport SmallLoader from \"components/Loader/WrappedPulseLoader\";\n\nimport { clearLocalAlerts } from \"util/Alerts\";\nimport { exportExcelSalesReportDetails } from \"util/excel/SalesReportDetailsExcel\";\n\n\nclass DownloadSalesReportDetailsExcel extends Component {\n static propTypes = {\n data: PropTypes.object.isRequired,\n packagesList: PropTypes.array,\n packagesListFunc: PropTypes.func,\n onError: PropTypes.func,\n loading: PropTypes.bool,\n disabled: PropTypes.bool,\n }\n\n render() {\n return (\n \n {this.props.loading ?\n \n :\n {t => t(\"reports.printReport\", \"Prindi aruanne\")}\n }\n \n );\n }\n\n onExport = () => {\n clearLocalAlerts();\n try {\n exportExcelSalesReportDetails(this.props.data)\n } catch (err) {\n if (this.props.onError) {\n this.props.onError(err);\n } else {\n console.error(err);\n }\n }\n }\n}\n\nexport default DownloadSalesReportDetailsExcel;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport {\n Row,\n Col,\n} from \"reactstrap\";\nimport Dropzone from \"react-dropzone\";\n\nimport \"./FileUpload.scss\";\n\n\nclass FileUpload extends React.Component {\n static propTypes = {\n file: PropTypes.object,\n onDrop: PropTypes.func.isRequired,\n onDropRejected: PropTypes.func,\n onDropAccepted: PropTypes.func,\n accept: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\n maxSize: PropTypes.number,\n dropzoneText: PropTypes.string,\n }\n\n static defaultProps = {\n accept: \"\",\n dropZoneText: \"Drag 'n' drop some files here, or click to select files\",\n maxSize: 5e6,\n }\n\n getContainerClassName = (props) => {\n let className = \"dropzone-container\";\n \n /* isDragReject and isDragAccept not reliable.\n if (props.isDragReject) {\n className += \" is-drag-reject\";\n }\n else if (props.isDragAccept) {\n className += \" is-drag-accept\";\n }\n else if (props.isDragActive) {\n className += \" is-drag-active\";\n }\n */\n if (props.isDragActive || props.isDragAccept || props.isDragReject) {\n className += \" is-drag-active\";\n }\n\n return className;\n }\n\n render() {\n return (\n <>\n \n \n \n {({getRootProps, getInputProps, isFocused, isDragActive, isDragAccept, isDragReject}) => (\n
\n
\n \n

{this.props.dropzoneText}

\n
\n
\n )}\n
\n \n
\n \n );\n }\n}\n\nexport default FileUpload;\n","var _rect, _path, _path2;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nconst SvgCloseInactive = _ref => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 16,\n height: 16,\n rx: 8,\n fill: \"#9FA2B4\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.8281 5.17188L5.17127 10.8287\",\n stroke: \"#F0F1F7\",\n strokeWidth: 1.7,\n strokeLinecap: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.8281 10.8291L5.17127 5.17225\",\n stroke: \"#F0F1F7\",\n strokeWidth: 1.7,\n strokeLinecap: \"round\"\n })));\n};\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgCloseInactive, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/close-inactive.76516e87.svg\";\nexport { ForwardRef as ReactComponent };","import React from \"react\";\nimport { withRouter } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport PropTypes from \"prop-types\";\nimport _ from \"lodash\";\nimport accept from \"attr-accept\";\nimport { withTranslation, Trans } from \"react-i18next\";\n\nimport { Row, Col, Button, Modal, ModalBody } from \"reactstrap\";\nimport FileUpload from \"components/Form/Files/FileUpload\";\nimport SmallLoader from \"components/Loader/WrappedPulseLoader\";\nimport { ReactComponent as RemoveIcon } from \"assets/icons/close-inactive.svg\";\nimport CloseTextIcon from \"components/Misc/CloseTextIcon\";\n\nimport { getSalesReportOrRepairUrl } from \"config/urls\";\nimport { importSalesReportFromExcelFile, fetchSalesReportExportFile } from \"util/SalesReports\";\nimport { parseSalesReportPeriodDate, salesReportPeriodListFormat } from \"util/DateTime\";\n\nimport {\n salesReportImportClose,\n salesReportImportFileChange,\n} from \"redux/actions/reports/importSalesReport\";\nimport Alerts from \"components/Alerts/Alerts\";\nimport {\n clearIncludedGroups,\n addNewLocalErrorAlert,\n addNewLocalWarningAlert,\n addNewLocalInfoAlert,\n addNewLocalSuccessAlert\n} from \"util/Alerts\";\nimport { getErrorMessageList } from \"util/Errors\";\n\nimport \"./ImportSalesReport.scss\";\n\nclass ImportSalesReport extends React.Component {\n static propTypes = {\n importFile: PropTypes.object,\n details: PropTypes.object.isRequired,\n isOpen: PropTypes.bool.isRequired,\n isLoading: PropTypes.bool.isRequired,\n salesReportImportClose: PropTypes.func.isRequired,\n salesReportImportFileChange: PropTypes.func.isRequired,\n fileMaxSize: PropTypes.number,\n fileTypes: PropTypes.arrayOf(PropTypes.string), // Only array version because using [].includes\n alertGroup: PropTypes.string,\n isDetailsView: PropTypes.bool, // required fetchData\n fetchData: PropTypes.func // required if isDetailsView is true\n }\n\n static defaultProps = {\n fileMaxSize: 5e6,\n fileTypes: [\".xlsx\", \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\"],\n alertGroup: \"IMPORT_SALES_REPORT_MODAL\",\n isDetailsView: false\n }\n\n clearModalAlerts = () => {\n clearIncludedGroups(this.props.alertGroup);\n }\n\n updateSalesReportFromFile = async () => {\n const { t, history, isDetailsView, fetchData } = this.props;\n this.clearModalAlerts();\n const id = this.props.details.id;\n const isRepair = this.props.details.is_repair;\n importSalesReportFromExcelFile(id, isRepair, this.props.importFile).then(\n result => {\n if (result.isSuccess) {\n const id = this.props.details.id;\n const isRepair = this.props.details.is_repair;\n this.props.salesReportImportClose();\n const route = getSalesReportOrRepairUrl(id, isRepair);\n addNewLocalSuccessAlert(t(\"reports.importSalesReportModal.alerts.importSuccess\", \"Müügiaruande lisamine failist õnnestus.\"), route, true);\n if (isDetailsView) {\n if (typeof fetchData === 'function') {\n fetchData();\n }\n } else {\n history.push(route);\n }\n } else {\n const errorContentFunc = (error) => {\n let errorMessage = error.code || t(\"reports.importSalesReportModal.alerts.importFailed.eanErrorDefaultText\", \"Müügiaruande lisamine ebaõnnestus\");\n if (error.EAN) {\n errorMessage = {{ ean: error.EAN }} - {{ eanErrorText: errorMessage }};\n }\n return errorMessage;\n }\n const topText = t(\"reports.importSalesReportModal.alerts.importFailed.text\", \"Müügiaruande lisamine ebaõnnestus:\");\n const errorMessage = getErrorMessageList(result.errors, errorContentFunc, topText);\n addNewLocalErrorAlert(errorMessage, this.props.alertGroup);\n }\n }\n );\n\n };\n\n onCancel = () => {\n if (this.props.isLoading) {\n return;\n }\n this.clearModalAlerts();\n this.props.salesReportImportClose();\n }\n\n onDrop = files => {\n this.clearModalAlerts();\n }\n\n onDropRejected = (rejectedFiles) => {\n const { t } = this.props;\n if (rejectedFiles.length > 1) {\n addNewLocalWarningAlert(t(\"reports.importSalesReportModal.alerts.warning.canOnlyDragOneFile\", \"Korraga võib tirida ainult ühe faili.\"), this.props.alertGroup);\n return;\n }\n const rejectedFile = rejectedFiles[0];\n if (rejectedFile.size > this.props.fileMaxSize) {\n const maxSizeMB = _.round(this.props.fileMaxSize / 1e6, 1);\n const message = Maksimaalne failimaht on {{ maxSizeMB }} MB.\n addNewLocalWarningAlert(message, this.props.alertGroup);\n }\n if (!this.props.fileTypes.includes(rejectedFile.type)) {\n }\n\n const isValidMimeTypeOrExtension = accept(\n {\n name: rejectedFile.name,\n type: rejectedFile.type\n },\n this.props.fileTypes\n );\n\n if (!isValidMimeTypeOrExtension) {\n addNewLocalWarningAlert(t(\"reports.importSalesReportModal.alerts.warning.fileTypeMustBeXLSX\", \"Fail peab olema .xlsx failitüüpi.\"), this.props.alertGroup);\n }\n }\n\n onDropAccepted = acceptedFiles => {\n const acceptedFile = acceptedFiles[0];\n this.props.salesReportImportFileChange(acceptedFile);\n const message = Faili {{ fileName: acceptedFile.name }} lisamine õnnestus.\n addNewLocalInfoAlert(message, this.props.alertGroup);\n\n }\n\n onRemoveSelectedFile = () => {\n this.clearModalAlerts();\n this.props.salesReportImportFileChange(null);\n }\n\n onGetExcelTemplate = () => {\n let reportDetails = this.props.details;\n\n this.clearModalAlerts();\n fetchSalesReportExportFile(reportDetails.id, reportDetails.is_repair, reportDetails.period).then(\n result => {\n if (!result.isSuccess) {\n const message = Aruande templaadi allatõmbamine ebaõnnestus: {{ errorMessage: result.errorMessage }}\n addNewLocalErrorAlert(message, this.props.alertGroup);\n }\n }\n );\n }\n\n render() {\n if (!this.props.isOpen) {\n return false;\n }\n const { t } = this.props;\n const formattedPeriod = parseSalesReportPeriodDate(this.props.details.period).format(salesReportPeriodListFormat);\n let title = {{ period: formattedPeriod }}\n if (this.props.details.is_repair) {\n title = {{ period: formattedPeriod }} - Parandus\n }\n\n return (\n \n \n \n \n {title}\n \n \n \n \n \n \n \n \n \n \n \n \n \n {t(\"reports.importSalesReportModal.downloadTemplateButton\", \"Tõmba aruande templaat\")}\n \n \n \n \n \n \n {t(\"reports.importSalesReportModal.selectedFileHeader\", \"Valitud fail:\")}\n \n\n \n \n \n {this.props.importFile ? this.props.importFile.path : t(\"reports.importSalesReportModal.noFilePlaceholder\", \"Ühtegi faili ei ole valitud.\")}\n \n \n \n \n \n \n \n \n \n \n {t(\"reports.importSalesReportModal.cancelButton\", \"Tühista\")}\n \n \n \n \n {this.props.isLoading ? : t(\"reports.importSalesReportModal.importButton\", \"Import\")}\n \n \n \n \n \n );\n }\n}\n\nconst mapStateToProps = state => {\n return {\n details: state.importSalesReport.details,\n isLoading: state.importSalesReport.loading,\n isOpen: state.importSalesReport.open,\n importFile: state.importSalesReport.file,\n alertsList: state.alerts.alertsList,\n }\n};\n\nconst reduxActions = {\n salesReportImportClose,\n salesReportImportFileChange\n};\n\nexport default withRouter(connect(mapStateToProps, reduxActions)(withTranslation()(ImportSalesReport)));\n","var _rect, _path;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nconst SvgInfo = _ref => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 16,\n height: 16,\n rx: 8,\n fill: \"currentColor\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M8.05037 4.7C8.51981 4.7 8.90037 4.31944 8.90037 3.85C8.90037 3.38056 8.51981 3 8.05037 3C7.58092 3 7.20037 3.38056 7.20037 3.85C7.20037 4.31944 7.58092 4.7 8.05037 4.7ZM7.15039 12.0884C7.15039 12.5088 7.53095 12.8496 8.00039 12.8496C8.46983 12.8496 8.85039 12.5088 8.85039 12.0884L8.85039 7.6108C8.85039 7.19041 8.46983 6.84961 8.00039 6.84961C7.53095 6.84961 7.15039 7.19041 7.15039 7.6108L7.15039 12.0884Z\",\n fill: \"#F0F1F7\"\n })));\n};\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgInfo, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/info.3a8c2664.svg\";\nexport { ForwardRef as ReactComponent };","import store from \"redux/store\";\n\nimport {\n navigationUpdateHeaderSuffix, \n} from \"redux/actions/navigation\";\n\n\nexport function updateNavigationHeaderSuffix(text) {\n store.dispatch(navigationUpdateHeaderSuffix(text));\n}\n\nexport function clearNavigationHeaderSuffix() {\n store.dispatch(navigationUpdateHeaderSuffix(\"\"));\n}","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport { withRouter, NavLink } from \"react-router-dom\";\nimport PropTypes from \"prop-types\";\nimport { Trans, withTranslation } from \"react-i18next\";\nimport _ from \"lodash\";\nimport {\n Card,\n CardHeader,\n CardBody,\n Row,\n Col,\n Button,\n FormGroup,\n UncontrolledTooltip\n} from \"reactstrap\";\n\n// ajax\nimport {\n updateSalesLine,\n submitSalesReport,\n isActive,\n fetchSalesReportExportFile,\n setSalesReportHeaderSuffix,\n calculateSalesReportPackageTotals,\n} from \"util/SalesReports\";\nimport { adminRepairSalesReportApproval } from \"util/admin/SalesReports\";\n\n// css\nimport \"./SalesReportDetails.scss\";\n\n// redux\nimport {\n salesReportHeaderFieldChange,\n updateSalesReportHeaderTotals,\n salesReportPackagesFieldChange,\n} from \"redux/actions/reports/salesReport\";\nimport { alertsAddLocal } from \"redux/actions/alerts\";\n\n// datatable\nimport BootstrapTable from \"react-bootstrap-table-next\";\nimport \"react-bootstrap-table-next/dist/react-bootstrap-table2.min.css\";\nimport \"react-bootstrap-table2-filter/dist/react-bootstrap-table2-filter.min.css\";\n\nimport MenuCell from \"components/Reports/Sales/cells/MenuCell\";\nimport InputField from \"components/Form/Input\";\nimport WrappedLoader from \"components/Loader/WrappedLoader\";\nimport SmallLoader from \"components/Loader/WrappedPulseLoader\";\nimport ConfirmationModal from \"components/Form/Modals/ConfirmationModal\";\nimport DetailsExcelDownload from \"./DetailsExcelDownload/DetailsExcelDownload\";\nimport ImportModal from \"components/Reports/Sales/Modal/ImportSalesReport\";\nimport { ReactComponent as InfoIcon } from \"assets/icons/info.svg\";\n\nimport { clearNavigationHeaderSuffix } from \"util/Navigation\";\nimport {\n parseSalesReportPeriodDate,\n salesReportPeriodDetailsFormat,\n} from \"util/DateTime\";\nimport urls from \"config/urls\";\nimport {\n alertType,\n clearLocalAlerts,\n addNewLocalErrorAlert,\n addNewLocalSuccessAlert,\n} from \"util/Alerts\";\nimport { currencyFormatter, depositCurrencyFormatter, processFeeCostCurrencyFormatter } from \"util/General\";\nimport { saleStatuses } from \"components/Reports/Sales/helpers/Options\";\n\nconst confirmationTypes = {\n SUBMIT_REPORT: \"SUBMIT_REPORT\",\n APPROVE_REPAIR: \"APPROVE_REPAIR\",\n DISAPPROVE_REPAIR: \"DISAPPROVE_REPAIR\",\n};\nconst CONFIRM_MODAL_ALERT_GROUP = \"ADMIN_SALES_REPORT_CONFIRMATION_ALERT_GROUP\";\n\nclass SalesReportDetails extends React.Component {\n static propTypes = {\n // manual props\n adminMode: PropTypes.bool,\n fetchData: PropTypes.func.isRequired,\n // redux state\n user: PropTypes.object,\n menuCellDetails: PropTypes.object,\n details: PropTypes.object,\n header: PropTypes.object.isRequired,\n packagesList: PropTypes.array.isRequired,\n salesReportLoading: PropTypes.bool,\n salesReportErrorMessage: PropTypes.string,\n // redux actions\n salesReportHeaderFieldChange: PropTypes.func.isRequired,\n updateSalesReportHeaderTotals: PropTypes.func.isRequired,\n salesReportPackagesFieldChange: PropTypes.func.isRequired,\n alertsAddLocal: PropTypes.func.isRequired,\n submitLoading: PropTypes.bool,\n exportLoading: PropTypes.bool,\n };\n\n state = {\n isConfirmationModalOpen: false,\n isConfirmationLoading: false,\n confirmationType: null,\n disapproveComment: \"\",\n isDisapproveCommentInvalid: false,\n };\n\n componentDidUpdate(prevProps) {\n // TODO: Remove all functions that are not used anymore\n if (prevProps.details !== this.props.details) {\n setSalesReportHeaderSuffix(this.props.details);\n }\n }\n\n componentWillUnmount(prevProps) {\n clearNavigationHeaderSuffix();\n }\n\n updatePackageQuantity = async (row, newQuantity) => {\n const oldquantity = row.quantity;\n if (_.isEqual(oldquantity, newQuantity)) {\n return;\n }\n\n // Setting it before actual success so that I could set it back to oldQuantity when it fails.\n // This is necessary because the quantity input only synchronizes when quantity prop has a different value.\n this.props.salesReportPackagesFieldChange(\n row.id,\n \"quantity\",\n newQuantity\n );\n clearLocalAlerts();\n const result = await updateSalesLine(\n this.props.details.id,\n this.props.details.is_repair,\n row,\n newQuantity\n );\n\n if (result.isSuccess) {\n //this.props.alertsAddLocal(alertType.SUCCESS_ICON, \"Kogus edukalt muudetud\", this.props.location.pathname);\n } else {\n this.props.salesReportPackagesFieldChange(\n row.id,\n \"quantity\",\n oldquantity\n );\n this.props.alertsAddLocal(\n alertType.ERROR_ICON,\n Koguse muutmine ebaõnnestus: {{ errorMessage: result.errorMessage }},\n this.props.location.pathname\n );\n }\n };\n\n onSubmit = () => {\n if (this.props.submitLoading) {\n return;\n }\n const details = this.props.details;\n clearLocalAlerts();\n submitSalesReport(details.id, details.is_repair).then((result) => {\n if (result.isSuccess) {\n this.onSubmitSuccess();\n } else {\n this.onSubmitFail(result.errorMessage);\n }\n });\n };\n\n onSubmitSuccess = () => {\n const { t } = this.props;\n const routeAndGroup = urls.REPORTS_SALES;\n\n const formattedPeriod = parseSalesReportPeriodDate(\n this.props.details.period\n ).format(salesReportPeriodDetailsFormat);\n\n let mainMessage = \n Teie poolt {{ period: formattedPeriod }} müügiaruanne on EPP-sse edastatud.\n ;\n\n if (this.props.details.is_repair) {\n mainMessage = \n Teie poolt {{ period: formattedPeriod }} müügiaruande parandus on EPP-sse edastatud.\n ;\n }\n\n let message = (\n
\n {mainMessage}\n \n {t(\"reports.alerts.submitSalesReportSuccess.redirectToInvoicesButton\", \"Arvet tasuma\")}\n \n
\n );\n\n this.props.alertsAddLocal(\n alertType.SUCCESS_ICON,\n message,\n routeAndGroup\n );\n this.props.history.push(routeAndGroup);\n };\n\n onSubmitFail = (errorMessage) => {\n const message = Müügiaruande esitamine ebaõnnestus: {{ errorMessage }};\n this.props.alertsAddLocal(\n alertType.ERROR_ICON,\n message,\n CONFIRM_MODAL_ALERT_GROUP\n );\n };\n\n onPrint = () => {\n if (this.props.exportLoading) {\n return;\n }\n clearLocalAlerts();\n fetchSalesReportExportFile(\n this.props.details.id,\n this.props.details.is_repair,\n this.props.details.period\n ).then((result) => {\n if (!result.isSuccess) {\n this.props.alertsAddLocal(\n alertType.ERROR_ICON,\n Aruande printimine ebaõnnestus: {{ errorMessage: result.errorMessage }},\n this.props.location.pathname\n );\n }\n });\n };\n\n onOpenConfirmationDialog = (confirmationType) => {\n this.setState({\n isConfirmationModalOpen: true,\n confirmationType: confirmationType,\n });\n };\n\n isConfirmRepairMode = () => {\n if (!this.props.adminMode || !this.props.details) {\n return false;\n }\n return (\n this.props.details.status &&\n this.props.details.status.value === saleStatuses.UNCONFIRMED\n );\n };\n\n onToggleAcceptConfirmation = () => {\n this.setState((prevState) => {\n return {\n isConfirmationModalOpen: !prevState.isConfirmationModalOpen,\n };\n });\n };\n\n onRepairReportApproval = (isApprove, comment = \"\") => {\n this.setState({ isConfirmationLoading: true });\n clearLocalAlerts();\n adminRepairSalesReportApproval(\n this.props.details.id,\n isApprove,\n comment\n )\n .then((data) => {\n this.setState({\n isConfirmationModalOpen: false,\n isConfirmationLoading: false,\n });\n const text = `Parandusaruande ${isApprove ? \"kinnitamine\" : \"tühistamine\"\n } edukalt sooritatud.`;\n addNewLocalSuccessAlert(text, this.props.location.pathname);\n })\n .catch((error) => {\n this.setState({ isConfirmationLoading: false });\n addNewLocalErrorAlert(error.message, CONFIRM_MODAL_ALERT_GROUP);\n });\n };\n\n onApproveRepairReport = () => {\n this.onRepairReportApproval(true);\n };\n\n onDisapproveRepairReport = () => {\n clearLocalAlerts();\n const comment = this.state.disapproveComment;\n if (!comment) {\n this.setState({ isDisapproveCommentInvalid: true });\n addNewLocalErrorAlert(\n \"Tühistamise põhjendus kliendile on täitmata.\",\n CONFIRM_MODAL_ALERT_GROUP\n );\n return;\n } else {\n this.setState({ isDisapproveCommentInvalid: false });\n }\n\n this.onRepairReportApproval(false, comment);\n };\n\n NoDataIndication({ loading, error, isSubmitted, t }) {\n let content = <>;\n\n if (loading) {\n content = ;\n } else if (error) {\n content = {error};\n } else if (isSubmitted) {\n content = t(\"reports.salesReportSubmittedNoDataIndication\");\n } else {\n content = t(\"reports.salesReportUnsubmittedNoDataIndication\");\n }\n\n return
{content}
;\n }\n\n render() {\n return (\n <>\n \n {this.renderHeader()}\n \n {this.renderExtraActions()}\n {this.renderTable()}\n \n \n \n {this.renderConfirmationModal()}\n \n );\n }\n\n renderExtraActions() {\n const { details, adminMode, menuCellSalesReport, menuCellRepairReport } = this.props;\n if (!details?.id || adminMode) {\n return;\n }\n\n return (\n
\n
\n \n
\n
\n )\n }\n\n renderButtons() {\n const { t } = this.props;\n if (this.isConfirmRepairMode()) {\n return (\n <>\n \n \n \n this.onOpenConfirmationDialog(\n confirmationTypes.DISAPPROVE_REPAIR\n )\n }\n disabled={\n this.props.quantityLoading ||\n _.isNil(this.props.details.id) ||\n this.props.submitLoading\n }\n >\n {this.props.submitLoading ? (\n \n ) : (\n t(\"buttons.cancel\", \"Tühista\")\n )}\n \n \n \n \n \n \n this.onOpenConfirmationDialog(\n confirmationTypes.APPROVE_REPAIR\n )\n }\n disabled={\n this.props.quantityLoading ||\n _.isNil(this.props.details.id) ||\n this.props.submitLoading\n }\n >\n {this.props.submitLoading ? (\n \n ) : (\n t(\"buttons.submit\", \"Kinnita\")\n )}\n \n \n \n \n );\n }\n\n return this.renderButton();\n }\n\n renderButton() {\n const { t } = this.props;\n if (isActive(this.props.details) && !this.props.adminMode) {\n return (\n \n \n \n this.onOpenConfirmationDialog(\n confirmationTypes.SUBMIT_REPORT\n )\n }\n disabled={\n this.props.quantityLoading ||\n _.isNil(this.props.details.id) ||\n this.props.submitLoading\n }\n >\n {this.props.submitLoading ? (\n \n ) : (\n t(\"reports.submit\", \"Esita\")\n )}\n \n \n \n );\n } else {\n return (\n \n \n this.onSubmitFail(\"\")}\n />\n \n \n );\n }\n }\n\n renderHeader() {\n const { t } = this.props;\n const header = this.props.header;\n //const localTotals = this.props.localHeaderTotals;\n\n return (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {this.renderButtons()}\n \n \n \n \n );\n }\n\n renderConfirmationModal() {\n const { t } = this.props;\n const confirmationType = this.state.confirmationType;\n let title = \"\";\n let confirmButtonText = \"\";\n let onConfirmFunc = () => { };\n let isLoading = this.state.isConfirmationLoading;\n if (confirmationType === confirmationTypes.APPROVE_REPAIR) {\n title = t(\"reports.confirmRepairReport\", \"Kinnita parandusaruanne\");\n confirmButtonText = t(\"buttons.confirm\", \"Kinnita\");\n onConfirmFunc = this.onApproveRepairReport;\n }\n if (confirmationType === confirmationTypes.DISAPPROVE_REPAIR) {\n title = t(\"reports.cancelRepairReport\", \"Tühista parandusaruanne\");\n confirmButtonText = t(\"buttons.cancel\", \"Tühista\");\n onConfirmFunc = this.onDisapproveRepairReport;\n }\n if (confirmationType === confirmationTypes.SUBMIT_REPORT) {\n title = t(\"reports.submitReportConfirmationTitle\", \"Esita aruanne\");\n confirmButtonText = t(\"buttons.confirm\", \"Kinnita\");\n onConfirmFunc = this.onSubmit;\n isLoading = this.state.isConfirmationLoading || this.props.submitLoading;\n }\n\n return (\n \n {confirmationType === confirmationTypes.APPROVE_REPAIR && (\n

\n {t(\n \"reports.confirmationDialog.repairReportConfirmMessage\",\n \"Oled kindel, et soovid parandusaruannet kinnitada?\"\n )}\n

\n )}\n {confirmationType === confirmationTypes.DISAPPROVE_REPAIR && (\n <>\n

\n {t(\n \"reports.confirmationDialog.repairReportCancelMessage\",\n \"Oled kindel, et soovid parandusaruannet tühistada?\"\n )}\n

\n

\n {t(\n \"reports.confirmationDialog.repairReportCancelAdditionalMessage\",\n \"Tühistamiseks tuleb lisada põhjendus, mida kuvatakse kliendile e-mailis.\"\n )}\n

\n \n this.setState({\n disapproveComment: _.trim(value),\n })\n }\n invalid={this.state.isDisapproveCommentInvalid}\n />\n \n )}\n {confirmationType === confirmationTypes.SUBMIT_REPORT && (\n

\n {t(\n \"reports.confirmationDialog.submitReportMessage\",\n \"Oled kindel, et soovid aruannet esitada?\"\n )}\n

\n )}\n \n );\n }\n\n renderTable() {\n const { t } = this.props;\n //const localTotals = this.props.localHeaderTotals;\n\n const columns = [\n {\n dataField: \"EAN\",\n text: t(\"reports.filter.ean\"),\n classes: \"semibold-14\",\n sort: true,\n footer: \"\",\n },\n {\n dataField: \"name\",\n text: t(\"reports.filter.product\"),\n classes: \"semibold-14\",\n sort: true,\n footer: \"\",\n },\n {\n dataField: \"package_type\",\n text: t(\"reports.filter.packageType\"),\n classes: \"regular-14\",\n sort: true,\n footer: \"\",\n },\n {\n dataField: \"volume\",\n text: t(\"reports.filter.packageVolume\"),\n classes: \"regular-14\",\n sort: true,\n footer: \"\",\n },\n {\n dataField: \"deposit\",\n text: t(\"reports.filter.deposit\"),\n classes: \"regular-14\",\n sort: true,\n align: \"right\",\n headerAlign: \"right\",\n formatter: (deposit) => depositCurrencyFormatter.format(deposit),\n footer: (columnData) =>\n !this.props.salesReportLoading ? \"Kokku\" : \"\",\n footerClasses: \"bold-14\",\n },\n {\n dataField: \"quantity\",\n text: t(\"reports.filter.quantity\"),\n classes: \"\",\n sort: true,\n formatter: (quantity, row) => {\n if (row.isQuantityUpdateLoading) {\n return ;\n }\n return (\n \n this.updatePackageQuantity(row, value)\n }\n disabled={\n this.props.adminMode ||\n !isActive(this.props.details)\n }\n type=\"number\"\n className=\"field-quantity\"\n extraProps={{\n min: \"1\",\n step: \"1\",\n }}\n valid={row.isQuantityUpdated === true}\n invalid={row.isQuantityUpdated === false}\n />\n );\n },\n footer: (columnData) =>\n !this.props.salesReportLoading\n ? this.props.header.packages_total\n : \"\",\n footerClasses: \"bold-14 pl-4\",\n },\n {\n dataField: \"deposit_total\",\n text: t(\"reports.filter.depositTotal\"),\n classes: \"regular-14\",\n sort: true,\n align: \"right\",\n headerAlign: \"right\",\n footerAlign: \"right\",\n formatter: (deposit_total, row) => currencyFormatter.format(deposit_total),\n footer: (columnData) =>\n !this.props.salesReportLoading\n ? currencyFormatter.format(this.props.header.deposit_total)\n : \"\",\n footerClasses: \"bold-14\",\n },\n {\n dataField: \"process_fee\",\n text: t(\"reports.filter.serviceFeeTotal\"),\n classes: \"regular-14\",\n sort: true,\n align: \"right\",\n headerAlign: \"right\",\n footerAlign: \"right\",\n formatter: (process_fee, packageRow) => {\n const extraFeeIconId = `extra-fee-icon-${packageRow.id}`;\n const hasExtraFee = Number(packageRow.extra_fee) !== 0;\n const tooltipMessage = Summa sisaldab ka eripakenditasu {{ extraFee: processFeeCostCurrencyFormatter.format(packageRow.extra_fee) }} iga deklareeritud pakendi kohta.;\n return (\n
\n
\n {currencyFormatter.format(process_fee)}\n {\n hasExtraFee && (\n \n < InfoIcon\n id={extraFeeIconId}\n className=\"color-info\"\n style={{ verticalAlign: \"sub\" }}\n />\n \n {tooltipMessage}\n \n \n )\n }\n
\n
\n ({processFeeCostCurrencyFormatter.format(packageRow.process_fee_base)})\n
\n )\n },\n footer: (columnData) =>\n !this.props.salesReportLoading\n ? currencyFormatter.format(this.props.header.process_fee_total)\n : \"\",\n footerClasses: \"bold-14\",\n },\n ];\n\n return (\n \n }\n />\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n const details = state.salesReport.details;\n const isRepair = details?.is_repair;\n\n let menuCellSalesReport = isRepair ? details.original_report : details;\n let menuCellRepairReport = isRepair ? details : details.repair_report;\n\n return {\n user: state.auth.user,\n details,\n menuCellSalesReport,\n menuCellRepairReport,\n header: {\n ...state.salesReport.header,\n ...calculateSalesReportPackageTotals(\n state.salesReport.packages,\n { \n is_vat_free: state.salesReport.header.is_vat_free,\n period: state.salesReport.header.period, \n }\n )\n },\n packagesList: state.salesReport.packages,\n salesReportLoading: state.salesReport.salesReportLoading,\n salesReportErrorMessage: state.salesReport.error,\n submitLoading: state.salesReport.submitLoading,\n exportLoading: state.salesReport.exportLoading,\n quantityLoading: state.salesReport.quantityLoading,\n localHeaderTotals: calculateSalesReportPackageTotals(\n state.salesReport.packages,\n { \n is_vat_free: state.salesReport.header.is_vat_free,\n period: state.salesReport.header.period,\n }\n ),\n };\n};\n\nconst reduxActions = {\n salesReportHeaderFieldChange,\n updateSalesReportHeaderTotals,\n salesReportPackagesFieldChange,\n alertsAddLocal,\n};\n\nexport default withRouter(\n connect(\n mapStateToProps,\n reduxActions\n )(withTranslation(\"common\")(SalesReportDetails))\n);\n","import React from \"react\";\nimport { withRouter } from \"react-router-dom\";\nimport { Row, Col, Button, Modal, ModalBody } from \"reactstrap\";\nimport { connect } from \"react-redux\";\n\nimport urls from \"config/urls\";\n\nimport LeftText from \"components/Misc/LeftText\";\nimport DeleteText from \"components/Misc/DeleteText\";\nimport LoadingAnimation from \"components/Loader/WrappedPulseLoader\";\nimport SalesReportDetails from \"components/Reports/Sales/Details/SalesReportDetails\";\n\nimport {\n fetchSalesReport,\n SaleStatus,\n} from \"util/SalesReports\";\nimport { adminFetchSalesReport, adminDeleteSalesReport } from \"util/admin/SalesReports\";\nimport {\n addNewLocalSuccessAlert,\n addNewLocalErrorAlert,\n clearLocalAlerts,\n} from \"util/Alerts\";\nimport { isAdminMode } from \"util/Access\";\nimport { Trans, withTranslation } from \"react-i18next\";\n\nimport {\n parseSalesReportPeriodDate,\n salesReportPeriodListFormat,\n} from \"util/DateTime\";\n\nimport CloseTextIcon from \"components/Misc/CloseTextIcon\";\nimport Alerts from \"components/Alerts/Alerts\";\n\nconst deleteOriginalAlertGroup = \"delete-original-modal\";\nclass OriginalSalesReport extends React.Component {\n state = { salesReportId: null, deleteModalOpen: false };\n\n componentDidMount() {\n this.fetchData();\n }\n\n render() {\n const { t } = this.props;\n return (\n <>\n \n \n \n this.props.history.push(this.getReturnRoute())\n }\n text={t(\"buttons.back\", \"Tagasi\")}\n />\n \n {this.isDeletable() && (\n \n \n \n )}\n \n \n \n \n \n \n\n {this.renderDeleteModal()}\n \n );\n }\n\n renderDeleteModal() {\n const { t } = this.props;\n let formattedPeriod = parseSalesReportPeriodDate(\n this.props.details.period\n ).format(salesReportPeriodListFormat);\n\n return (\n \n \n \n \n \n Müügiaruande kustutamine\n \n \n \n \n \n \n \n \n \n \n \n \n \n

\n Kas soovite kustutada müügiaruande{\" \"}\n {formattedPeriod}?\n

\n \n
\n \n \n \n {t(\"buttons.cancel\", \"Tühista\")}\n \n \n \n \n {this.props.deleteOriginalReportLoading ? (\n \n ) : (\n \"Kustuta müügiaruanne\"\n )}\n \n \n \n
\n \n );\n }\n\n getReturnRoute = () => {\n const locationState = this.props.location.state;\n if (locationState && locationState.previousViewRoute) {\n return locationState.previousViewRoute;\n }\n return isAdminMode() ? urls.EPP_REPORTS_SALES : urls.REPORTS_SALES;\n }\n\n fetchData = () => {\n const id = this.props.match.params.id;\n\n const fetchEndpoint = isAdminMode()\n ? adminFetchSalesReport\n : fetchSalesReport;\n fetchEndpoint(id).then((result) => {\n if (!result.isSuccess) {\n addNewLocalErrorAlert(\n \n Müügiaruande laadimine ebaõnnestus:{\" \"}\n {{ errorMessage: result.errorMessage }}\n ,\n this.props.location.pathname,\n true\n );\n }\n });\n };\n\n isDeletable = () => {\n return (\n isAdminMode() &&\n this.props.details.id &&\n [SaleStatus.UNSUBMITTED].includes(this.props.details.status.value)\n );\n };\n\n onOpenDeleteModal = () => {\n this.setState({\n deleteModalOpen: true,\n });\n };\n\n onCancelDelete = () => {\n if (this.props.deleteOriginalReportLoading) {\n return;\n }\n this.setState({\n deleteModalOpen: false,\n });\n clearLocalAlerts();\n };\n\n onDelete = () => {\n if (this.props.deleteOriginalReportLoading) {\n return;\n }\n const id = this.props.details.id;\n clearLocalAlerts();\n adminDeleteSalesReport(id).then((result) => {\n if (result.isSuccess) {\n addNewLocalSuccessAlert(\n \"Müügiaruande kustutamine õnnestus.\",\n urls.REPORTS_SALES,\n false\n );\n document.body.classList.remove(\"modal-open\");\n this.redirectToSalesReportsList();\n } else {\n const message = `Müügiaruande kustutamine ebaõnnestus: ${result.errorMessage}`;\n addNewLocalErrorAlert(message, deleteOriginalAlertGroup, false);\n }\n });\n };\n\n redirectToSalesReportsList = () => {\n this.props.history.push(urls.REPORTS_SALES, {\n refreshList: true // admin sales reports list does not refresh by default but it does with this set on mount\n });\n };\n}\n\nconst mapStateToProps = (state) => {\n return {\n details: state.salesReport.details,\n deleteOriginalReportLoading:\n state.salesReport.deleteOriginalReportLoading,\n };\n};\n\nexport default withRouter(\n connect(mapStateToProps)(withTranslation()(OriginalSalesReport))\n);\n","import React from \"react\";\nimport { withRouter } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport { Row, Col, Button, Modal, ModalBody } from \"reactstrap\";\n\nimport urls from \"config/urls\";\nimport { fetchRepairSalesReport, deleteRepairSalesReport, SaleStatus } from \"util/SalesReports\";\nimport { adminFetchRepairSalesReport } from \"util/admin/SalesReports\";\nimport { isAdminMode } from \"util/Access\";\n\nimport {\n parseSalesReportPeriodDate,\n salesReportPeriodListFormat\n} from \"util/DateTime\";\nimport { addNewLocalSuccessAlert, addNewLocalErrorAlert, clearLocalAlerts } from \"util/Alerts\";\n\nimport \"views/Reports/RepairSalesReport.scss\";\n\nimport LeftText from \"components/Misc/LeftText\";\nimport DeleteText from \"components/Misc/DeleteText\";\n\nimport SalesReportDetails from \"components/Reports/Sales/Details/SalesReportDetails\";\nimport Alerts from \"components/Alerts/Alerts\";\nimport LoadingAnimation from \"components/Loader/WrappedPulseLoader\";\n\nimport CloseTextIcon from \"components/Misc/CloseTextIcon\";\nimport { withTranslation, Trans } from \"react-i18next\";\n\n\nconst deleteRepairAlertGroup = \"delete-repair-modal\";\nclass RepairSalesReport extends React.Component {\n state = {\n isInfoModalConfirmed: false,\n isInfoModalCancelled: false,\n infoModalOpen: false,\n\n deleteModalOpen: false,\n }\n\n componentDidMount() {\n this.fetchData();\n }\n\n componentDidUpdate(prevProps, prevState) {\n if (prevState.isInfoModalConfirmed !== this.state.isInfoModalConfirmed ||\n prevProps.is_repair !== this.props.is_repair ||\n prevProps.submitted_at !== this.props.submitted_at) {\n this.setState({\n infoModalOpen: this.isInfoModalOpen(),\n });\n }\n }\n\n render() {\n const { t } = this.props;\n const adminMode = isAdminMode();\n return (\n
\n \n \n this.props.history.push(this.getReturnRoute())}\n text={t(\"buttons.back\", \"Tagasi\")}\n />\n \n {this.isDeletable(adminMode) &&\n \n \n \n }\n \n \n \n \n \n \n\n {!adminMode && !this.state.isInfoModalConfirmed && this.renderInfoModal()}\n {this.renderDeleteModal()}\n
\n );\n }\n\n renderInfoModal() {\n const { t } = this.props;\n return (\n \n \n \n \n {t(\"reports.repairReportInfoModal.title\", \"Parandusaruanne\")}\n \n \n \n \n \n \n \n

\n {t(\"reports.repairReportInfoModal.content\", \"Parandusaruandes esitatakse ainult muudatused, mida tehakse kinnitatud aruandele. Kui müügiaruandes kinnitati pakendi müügikogus 1000 tk, tegelik turule lisatud kogus oli 1250 tk, siis paranduses kajastatakse kogus 250 tk.\")}\n

\n \n
\n \n \n \n {t(\"reports.repairReportInfoModal.confirmButton\", \"OK\")}\n \n \n \n \n {t(\"buttons.cancel\", \"Tühista\")}\n \n \n \n
\n \n );\n }\n\n renderDeleteModal() {\n const { t } = this.props;\n let formattedPeriod = parseSalesReportPeriodDate(this.props.details.period).format(salesReportPeriodListFormat);\n\n return (\n \n \n \n \n {t(\"reports.repairReportDeleteModal.title\", \"Müügiaruande kustutamine\")}\n \n \n \n \n \n \n \n \n \n \n \n \n

\n Kas soovite kustutada parandatud müügiaruande {{ formattedPeriod }}?\n

\n \n
\n \n \n \n {t(\"buttons.cancel\", \"Tühista\")}\n \n \n \n \n {this.props.deleteRepairReportLoading ? : t(\"reports.repairReportDeleteModal.confirmButton\", \"Kustuta müügiaruanne\")}\n \n \n \n
\n \n );\n }\n\n getReturnRoute = () => {\n const locationState = this.props.location.state;\n if (locationState && locationState.previousViewRoute) {\n return locationState.previousViewRoute;\n }\n return isAdminMode() ? urls.EPP_REPORTS_SALES : urls.REPORTS_SALES;\n }\n\n isDeletable = (adminMode) => {\n return !adminMode && this.props.details.is_repair && this.props.details.id && [SaleStatus.UNSUBMITTED, SaleStatus.REJECTED].includes(this.props.details.status.value);\n }\n\n isInfoModalOpen = () => {\n return !this.state.isInfoModalConfirmed &&\n !this.state.isInfoModalCancelled &&\n this.props.is_repair &&\n (!this.props.submitted_at || this.props.isRejected);\n }\n\n onConfirmInfo = () => {\n this.setState({\n isInfoModalConfirmed: true,\n });\n }\n\n onCancelInfo = () => {\n this.setState({\n isInfoModalCancelled: true,\n },\n () => this.redirectToSalesReportsList());\n }\n\n onOpenDeleteModal = () => {\n this.setState({\n deleteModalOpen: true,\n })\n }\n\n onDelete = () => {\n const { t } = this.props;\n if (this.props.deleteRepairReportLoading) {\n return;\n }\n const id = this.props.details.id;\n clearLocalAlerts();\n deleteRepairSalesReport(id).then(result => {\n if (result.isSuccess) {\n addNewLocalSuccessAlert(\n t(\"reports.alerts.deleteRepairReportSuccess\", \"Müügiaruande kustutamine õnnestus.\"),\n urls.REPORTS_SALES,\n false\n );\n document.body.classList.remove(\"modal-open\");\n this.redirectToSalesReportsList();\n } else {\n addNewLocalErrorAlert(\n Müügiaruande kustutamine ebaõnnestus: {{ errorMessage: result.errorMessage }},\n deleteRepairAlertGroup,\n false\n );\n }\n })\n }\n\n onCancelDelete = () => {\n if (this.props.deleteRepairReportLoading) {\n return;\n }\n this.setState({\n deleteModalOpen: false,\n });\n clearLocalAlerts();\n }\n\n redirectToSalesReportsList = () => {\n this.props.history.push(urls.REPORTS_SALES);\n }\n\n fetchData = () => {\n const id = this.props.match.params.id;\n\n const fetchEndpoint = isAdminMode() ? adminFetchRepairSalesReport : fetchRepairSalesReport;\n fetchEndpoint(id).then(\n result => {\n if (!result.isSuccess) {\n addNewLocalErrorAlert(\n Müügiaruande laadimine ebaõnnestus: {{ errorMessage: result.errorMessage }},\n this.props.location.pathname,\n false\n );\n }\n }\n );\n }\n}\n\nconst mapStateToProps = state => {\n return {\n details: state.salesReport.details,\n deleteRepairReportLoading: state.salesReport.deleteRepairReportLoading,\n is_repair: state.salesReport.details ? state.salesReport.details.is_repair : null,\n submitted_at: state.salesReport.details ? state.salesReport.details.submitted_at : null,\n isRejected: state.salesReport.details && state.salesReport.details.status && state.salesReport.details.status.value === SaleStatus.REJECTED,\n alertsList: state.alerts.alertsList,\n }\n};\n\nexport default withRouter(connect(mapStateToProps)(withTranslation()(RepairSalesReport)));\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport moment from \"moment\";\nimport { DATE_FORMAT } from \"util/DateTime\";\n\nclass DateCell extends React.Component {\n static propTypes = {\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.instanceOf(Date),\n PropTypes.instanceOf(moment)\n ]),\n format: PropTypes.string,\n className: PropTypes.string,\n placeholder: PropTypes.exact({\n className: PropTypes.string,\n text: PropTypes.string,\n }),\n onClick: PropTypes.func,\n };\n\n static defaultProps = {\n value: null,\n format: DATE_FORMAT,\n valueFormat: null,\n className: \"regular-14\",\n placeholder: {\n className: \"regular-14 empty-value\",\n text: \"00.00.0000\",\n },\n }\n\n render() {\n const momentDate = this.props.valueFormat ? moment(this.props.value, this.props.valueFormat) : moment(this.props.value);\n if (!momentDate.isValid()) {\n return (\n \n {this.props.placeholder.text}\n \n )\n }\n\n const formatedDate = momentDate.format(this.props.format);\n return (\n \n {formatedDate}\n \n );\n }\n}\n\nexport default DateCell;\n","var _path, _path2, _path3;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nconst SvgDownload = _ref => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 8L8.06 10.955C8.02444 10.9817 7.97556 10.9817 7.94 10.955L4 8\",\n stroke: \"#C5C7CD\",\n strokeWidth: 1.7,\n strokeLinecap: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8 11L8 1\",\n stroke: \"#C5C7CD\",\n strokeWidth: 1.7,\n strokeLinecap: \"round\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14 13L14 15H2V13\",\n stroke: \"#C5C7CD\",\n strokeWidth: 1.7,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n};\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgDownload, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/download.dcad3a99.svg\";\nexport { ForwardRef as ReactComponent };","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport { ReactComponent as DownloadIcon } from \"assets/icons/download.svg\";\nimport \"./DocumentCell.scss\";\n\n\nclass DocumentCell extends React.Component {\n static propTypes = {\n name: PropTypes.string.isRequired,\n url: PropTypes.string,\n onClick: PropTypes.func,\n };\n\n render() {\n const { name, url } = this.props;\n if (!name && !url) {\n return null;\n }\n else if (name && !url) {\n return (\n {name}\n );\n }\n\n\n return (\n
\n e.stopPropagation()}\n >\n {name}\n \n \n
\n );\n }\n}\n\nexport default DocumentCell;\n","export const invoiceStatuses = {\n UNPAID_STATUS: {\n status: \"UNPAID\",\n values: [\"Tasumata\", \"Unpaid\"],\n type: \"WARNING\"\n },\n PAID_STATUS: {\n status: \"PAID\",\n values: [\"Tasutud\", \"Paid\"],\n type: \"SUCCESS\"\n },\n OVERDUE_STATUS: {\n status: \"OVERDUE\",\n values: [\"Üle tähtaja\", \"Overdue\"],\n type: \"ERROR\"\n },\n}\n\nexport function getSaleStatusType(statusValue) {\n for (const invoiceStatus of Object.values(invoiceStatuses)) {\n if (invoiceStatus.values.includes(statusValue)) {\n return invoiceStatus.type;\n }\n }\n\n return \"UNKNOWN\";\n}\n","\nimport React from \"react\";\nimport { Translation } from \"react-i18next\";\n\nimport axios from \"../axios\";\nimport {alertType} from \"util/Alerts\";\n\n/*\n Based on Everypay APIv4\n https://support.every-pay.com/downloads/everypay_apiv4_integration_documentation.pdf\n*/\n\n// Exhaustive list of statuses in api documentation (2.7 Payment Statuses)\nconst STATUS = {\n INITIAL: \"initial\",\n WAITING_FOR_SCA: \"waiting_for_sca\",\n SENT_FOR_PROCESSING: \"sent_for_processing\", // Confirmed by user but not yet by bank. Usually goes to \"settled\" final status\n WAITING_FOR_3DS_RESPONSE: 'waiting_for_3ds_response',\n SETTLED: \"settled\", // FINAL STATUS, Success\n FAILED: \"failed\", // FINAL STATUS, failed for technical reasons\n ABANDONED: \"abandoned\", // FINAL STATUS, happens when customer does not complete payment\n VOIDED: \"voided\", // FINAL STATUS, authorization cancelled\n REFUNDED: \"refunded\",\n CHARGEBACKED: \"chargebacked\"\n}\n\nconst STATUS_LIST_FINAL_SUCCESS = [\n STATUS.SETTLED,\n];\n\nconst STATUS_LIST_FINAL_FAILED = [\n STATUS.ABANDONED,\n STATUS.FAILED,\n STATUS.VOIDED\n];\n\nexport const STATUS_LISTS = {\n FINAL_SUCCESS: STATUS_LIST_FINAL_SUCCESS,\n FINAL_FAILED: STATUS_LIST_FINAL_FAILED,\n FINAL: [...STATUS_LIST_FINAL_SUCCESS, ...STATUS_LIST_FINAL_FAILED]\n // IN_PROGRESS: Everything that is not a FINAL status?\n}\n\nexport function initiatePayment(amount, clientId, customer_url=null, order_reference=null, invoiceId=null) {\n return axios.post(\"everypay/payment/\", {\n amount,\n client_id: clientId,\n customer_url,\n order_reference,\n invoice_id: invoiceId\n\n }).then(resp => resp.data)\n}\n\nfunction checkPaymentState(paymentReference) {\n return axios.get(`everypay/payment/${paymentReference}/`).then(resp => resp.data)\n}\n\nexport function getPaymentStateAlertContent(paymentReference) {\n /**\n * Should be used only after customer is redirected back from payment gateway which usually happens in a final status.\n * \n * @Returns Promise that resolves into {message: Component, type: alertType} on successful call.\n */\n\n return checkPaymentState(paymentReference)\n .then(paymentState => {\n let message, type;\n if (STATUS_LIST_FINAL_SUCCESS.includes(paymentState)) {\n message = (\n \n {(t) => t(\"invoices.paymentSuccessful\", \"Makse sooritatud. Lõplik arve saadetakse Teie e-mailile 24 tunni jooksul!\")}\n \n )\n type = alertType.SUCCESS;\n \n } else if (STATUS_LIST_FINAL_FAILED.includes(paymentState)) {\n message = (\n \n {(t) => t(\"invoices.paymentUnsuccessful\", \"Makse tühistatud.\")}\n \n )\n type = alertType.ERROR\n } else {\n message = (\n \n {(t) => t(\"invoices.paymentInProgress\", \"Makse ei ole veel kinnitatud. Eduka makse korral saadetakse lõplik arve Teie e-mailile 24 tunni jooksul!\")}\n \n )\n type = alertType.INFO\n }\n return {message, type};\n })\n}\n\nexport default {\n initiatePayment,\n checkPaymentState,\n getPaymentStateAlertContent\n}\n","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\nimport moment from \"moment\";\nimport PropTypes from \"prop-types\";\nimport { Button, Card, CardBody, CardHeader, Row, Col } from \"reactstrap\";\nimport URLSearchParams from \"@ungap/url-search-params\";\nimport { uniqueId } from \"lodash\";\n\nimport { fetchInvoices } from \"util/Invoices\";\nimport { getInvoicePreviewUrl } from \"config/urls\";\n\n// css\nimport \"./Table.scss\";\n\n// datatable\nimport BootstrapTable from \"react-bootstrap-table-next\";\nimport \"react-bootstrap-table-next/dist/react-bootstrap-table2.min.css\";\nimport \"react-bootstrap-table2-filter/dist/react-bootstrap-table2-filter.min.css\";\nimport filterFactory from \"react-bootstrap-table2-filter\";\n\n// cells\nimport DateCell from \"components/Table/Cell/DateCell\";\nimport StatusCell from \"components/Table/Cell/Status/StatusCell\";\nimport DocumentCell from \"components/Table/Cell/DocumentCell\";\n\nimport WrappedLoader from \"components/Loader/WrappedLoader\";\nimport SmallLoader from \"components/Loader/WrappedPulseLoader\";\n\nimport { getSaleStatusType } from \"components/Invoices/Table/Options\";\nimport {\n clearLocalAlerts,\n addNewLocalErrorAlert, addNewLocalAlert, clearIncludedGroups\n} from \"util/Alerts\";\nimport Alerts from \"components/Alerts/Alerts\";\nimport { getServerErrorMessage } from \"util/Errors\";\nimport { currencyFormatter } from \"util/General\";\nimport Everypay from \"util/Everypay\";\nimport { withTranslation } from \"react-i18next\";\n\nclass InvoicesTable extends React.Component {\n static propTypes = {\n invoices: PropTypes.array.isRequired,\n activeAlertGroups: PropTypes.array.isRequired,\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n initiatePaymentLoading: false,\n }\n\n this.PAYMENT_ALERT_GROUP = uniqueId(\"InvoicesTablePaymentAlertGroup-\");\n }\n\n componentDidMount() {\n const locationState = this.props.location.state;\n if (!this.props.invoices || !this.props.invoices.length || !locationState || locationState.skipMountFetchInvoices !== true) {\n fetchInvoices();\n }\n\n if (locationState && locationState.skipMountFetchInvoices === true) {\n // Have to remove state so that invoices would fetch on page refresh.\n window.history.replaceState(\n {\n ...locationState,\n skipMountFetchInvoices: false,\n },\n \"\"\n );\n }\n this.showReturnFromPaymentAlert();\n }\n\n componentDidUpdate(prevProps) {\n }\n\n render() {\n const { t } = this.props;\n return (\n <>\n \n \n \n \n \n \n {t(\"invoices.title\", \"Arvete saldo\")}\n \n \n \n \n \n \n {this.props.balance === null\n ? \"-\"\n : currencyFormatter.format(this.props.balance)}\n \n \n \n \n {this.state.initiatePaymentLoading ?\n \n : t(\"buttons.payAll\", \"Maksa kõik\")\n }\n \n \n \n \n \n \n \n {this.renderTable()}\n \n \n \n );\n }\n\n renderTable() {\n const { t } = this.props;\n if (this.props.invoicesLoading) {\n return ;\n }\n\n const ButtonFormatter = (cell, row) => {\n const invoiceStatus = row.status || \"\";\n if (row.is_payable === false || [\"TASUTUD\", \"PAID\"].includes(invoiceStatus.toUpperCase())) {\n return (\n \n );\n } else {\n return (\n this.onClickPay(row.id)}\n className=\"status-btn\"\n >\n {t(\"invoices.pay\", \"Maksma\")}\n \n );\n }\n };\n\n const invoicesEndpointDateFormat = \"DD-MM-YYYY\";\n\n const columns = [\n {\n dataField: \"number\",\n text: t(\"invoices.invoiceNumber\", \"Arve number\"),\n sort: true,\n sortValue: value => value.name,\n formatter: (value) => (\n \n ),\n },\n {\n dataField: \"date\",\n text: t(\"invoices.invoiceDate\", \"Arve kuupäev\"),\n sort: true,\n formatter: (value) => (\n \n ),\n sortValue: (value) => moment(value, invoicesEndpointDateFormat),\n },\n {\n dataField: \"status\",\n text: t(\"invoices.invoiceStatus\", \"Arve staatus\"),\n sort: true,\n headerClasses: \"status-col-header\",\n classes: \"status-col\",\n formatter: (value) => (\n \n ),\n },\n {\n dataField: \"due_date\",\n text: t(\"invoices.invoiceDueDate\", \"Tasumise tähtaeg\"),\n sort: true,\n headerStyle: (column, colIndex) => {\n return {\n /*width: '150px'*/\n };\n },\n formatter: (value) => (\n \n ),\n sortValue: (value) => moment(value, invoicesEndpointDateFormat),\n },\n {\n dataField: \"amount\",\n text: t(\"invoices.invoiceAmount\", \"Arve summa\"),\n classes: \"regular-14\",\n sort: true,\n sortValue: value => Number(value),\n headerStyle: (column, colIndex) => {\n return {\n /*width: '150px'*/\n };\n },\n align: \"right\",\n headerAlign: \" right\",\n formatter: (value) => currencyFormatter.format(value),\n },\n {\n dataField: \"amount_paid\",\n text: t(\"invoices.invoicePaidAmount\", \"Tasutud\"),\n classes: \"regular-14\",\n sort: true,\n sortValue: value => Number(value),\n headerStyle: (column, colIndex) => {\n return {\n /*width: '150px'*/\n };\n },\n align: \"right\",\n headerAlign: \"right\",\n formatter: (value) => currencyFormatter.format(value),\n },\n {\n dataField: \"\",\n text: t(\"invoices.operation\", \"Toiming\"),\n align: \"center\",\n headerAlign: \"center\",\n headerStyle: (column, colIndex) => {\n return {\n /*width: '200px'*/\n };\n },\n formatter: ButtonFormatter,\n },\n ];\n\n return (\n \n }\n defaultSorted={[\n {\n dataField: \"date\",\n order: \"desc\",\n },\n ]}\n />\n );\n }\n\n static NoDataIndication(props) {\n // const { t } = props;\n // let content = t(\n // \"invoices.noInvoicesMessage\",\n // \"Ei leitud ühtegi arvet.\"\n // );\n\n let content = props.t(\"invoices.noInvoicesText\", \"Ei leitud ühtegi arvet.\");\n if (props.loading) {\n content = ;\n }\n\n return
{content}
;\n }\n\n onClickPay = (invoiceId) => {\n this.props.history.push(getInvoicePreviewUrl(invoiceId), { skipMountFetchInvoices: true });\n };\n\n onClickPayAll = () => {\n if (this.state.initiatePaymentLoading) return;\n clearLocalAlerts();\n this.setState({\n initiatePaymentLoading: true\n });\n Everypay.initiatePayment(this.props.balance, this.props.activeClientId)\n .then(payment_link => {\n window.location.href = payment_link;\n })\n .catch(error => {\n addNewLocalErrorAlert(\n getServerErrorMessage(error),\n this.props.location.pathname\n );\n })\n .finally(() => {\n this.setState({\n initiatePaymentLoading: false\n });\n });\n };\n\n showReturnFromPaymentAlert = () => {\n clearIncludedGroups(this.PAYMENT_ALERT_GROUP);\n const searchParams = new URLSearchParams(window.location.search);\n const paymentReference = searchParams.get(\"payment_reference\");\n if (!paymentReference) {\n return;\n }\n Everypay.getPaymentStateAlertContent(paymentReference)\n .then(data => {\n const { message, type } = data;\n addNewLocalAlert(type, message, this.PAYMENT_ALERT_GROUP);\n })\n .catch(error => {\n addNewLocalErrorAlert(\n getServerErrorMessage(error),\n this.PAYMENT_ALERT_GROUP\n );\n })\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n invoices: state.invoices.invoices,\n invoicesLoading: state.invoices.invoicesLoading,\n balance: state.invoices.balance,\n activeAlertGroups: state.alerts.activeGroups,\n activeClientId: state.auth?.user?.active_client_id || null,\n };\n};\n\nexport default withRouter(\n connect(mapStateToProps)(withTranslation(\"common\")(InvoicesTable))\n);\n","import axios from \"../axios\";\nimport store from \"redux/store\";\n\nimport { INVOICES } from \"../config/Api\";\nimport {\n invoicesFetchStart,\n invoicesFetchSuccess,\n invoicesFetchFail,\n invoiceDataFetchStart,\n invoiceDataFetchSuccess,\n invoiceDataFetchFail,\n} from \"../redux/actions/invoices\";\nimport { getServerErrorMessage } from \"util/Errors\";\n\nexport const INVOICE_PREVIEW_ALERT_GROUP = \"invoicePreviewGroup\";\n\nexport function fetchInvoices() {\n store.dispatch(invoicesFetchStart());\n return axios\n .get(INVOICES)\n .then((resp) => {\n store.dispatch(invoicesFetchSuccess(resp.data));\n })\n .catch((err) => {\n store.dispatch(invoicesFetchFail(err));\n });\n}\n\nexport function fetchInvoiceData(id) {\n store.dispatch(invoiceDataFetchStart());\n return axios\n .get(INVOICES + id + \"/\")\n .then((resp) => {\n store.dispatch(invoiceDataFetchSuccess(resp.data));\n return resp.data;\n })\n .catch((err) => {\n const errorMessage = getServerErrorMessage(err);\n store.dispatch(invoiceDataFetchFail(errorMessage));\n throw Error(errorMessage);\n });\n}\n","import * as actionTypes from './actionTypes';\n\n\nexport const invoicesFetchStart = () => {\n return {\n type: actionTypes.INVOICES_FETCH_START\n }\n};\n\nexport const invoicesFetchSuccess = (data) => {\n return {\n type: actionTypes.INVOICES_FETCH_SUCCESS,\n data,\n }\n};\n\nexport const invoicesFetchFail = (err) => {\n return {\n type: actionTypes.INVOICES_FETCH_FAIL,\n error: err\n }\n};\n\nexport const invoiceDataFetchStart = () => {\n return {\n type: actionTypes.INVOICE_DATA_FETCH_START,\n }\n};\n\nexport const invoiceDataFetchSuccess = (invoice) => {\n return {\n type: actionTypes.INVOICE_DATA_FETCH_SUCCESS,\n invoice: invoice,\n }\n};\n\nexport const invoiceDataFetchFail = (errorMessage) => {\n return {\n type: actionTypes.INVOICE_DATA_FETCH_FAIL,\n errorMessage,\n }\n};\n","import React from 'react';\nimport Invoices from \"../components/Invoices/Table/Table\";\n\nclass InvoiceView extends React.Component {\n render() {\n return (\n \n );\n }\n}\n\nexport default InvoiceView;","import React from \"react\";\nimport {Row, Col} from \"reactstrap\";\n\nexport default function CenteredRowCol(props) {\n return (\n \n \n {props.children}\n \n \n );\n}","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router\";\nimport _ from \"lodash\";\nimport { Modal, ModalBody, Row, Col, Button } from \"reactstrap\";\n\n// datatable\nimport BootstrapTable from \"react-bootstrap-table-next\";\nimport \"react-bootstrap-table-next/dist/react-bootstrap-table2.min.css\";\nimport \"react-bootstrap-table2-filter/dist/react-bootstrap-table2-filter.min.css\";\n\nimport urls from \"config/urls\";\nimport { INVOICE_PREVIEW_ALERT_GROUP, fetchInvoiceData } from \"util/Invoices\";\nimport Everypay from \"util/Everypay\";\nimport Alerts from \"components/Alerts/Alerts\";\nimport {\n clearLocalAlerts,\n addNewLocalErrorAlert,\n addNewLocalInfoAlert,\n} from \"util/Alerts\";\nimport { getServerErrorMessage } from \"util/Errors\";\n\nimport { currencyFormatter } from \"util/General\";\n\nimport { ReactComponent as CloseIcon } from \"assets/icons/diagonal-plus-close.svg\";\n\nimport WrapperLoader from \"components/Loader/WrappedLoader\";\nimport SmallLoader from \"components/Loader/WrappedPulseLoader\";\n\nimport CenteredRowCol from \"components/Misc/CenteredRowCol\";\n\nimport \"./PreviewModal.scss\";\nimport { withTranslation, Trans } from \"react-i18next\";\n\nclass InvoicePreviewModal extends Component {\n static propTypes = {\n invoice: PropTypes.object,\n isInvoiceLoading: PropTypes.bool,\n alerts: PropTypes.array,\n alertGroup: PropTypes.string,\n };\n\n state = {\n modal: true,\n initiatePaymentLoading: false\n };\n\n componentDidMount() {\n clearLocalAlerts();\n const id = this.props.match.params.id;\n fetchInvoiceData(id)\n .then((data) => { })\n .catch((error) => {\n addNewLocalErrorAlert(\n error.message,\n this.props.alertGroup,\n false\n );\n });\n }\n\n toggle = () => {\n this.setState(\n { modal: !this.state.modal },\n this.props.history.push(urls.INVOICES, { skipMountFetchInvoices: true })\n );\n }\n\n render() {\n const { t } = this.props;\n return (\n
\n \n \n \n \n \n {t(\"invoices.preview\", \"Arve eelvaade\")}\n \n \n \n \n {t(\"buttons.close\", \"Sulge\")} \n \n \n \n \n \n {this.renderContent()}\n \n \n
\n );\n }\n\n renderContent() {\n if (this.props.isInvoiceLoading) {\n return this.renderLoading();\n } else if (!this.props.invoice) {\n return;\n }\n\n const showPreview = _.get(this.props, \"invoice.totals.show_invoice_preview\", false);\n\n if (showPreview) {\n return (\n <>\n {this.renderReceiverSection()}\n {this.renderTableSection()}\n {this.renderFooterSection()}\n \n );\n }\n else {\n return (\n <>\n {/*this.renderReceiverSection()*/}\n {this.renderNoPreview()}\n {this.renderFooterSection()}\n \n );\n }\n }\n\n renderNoPreview() {\n const invoiceSum = currencyFormatter.format(_.get(this.props, \"invoice.totals.with_VAT\", 0));\n return (\n <>\n

{this.props.t(\"invoices.noPreview.explanation\", \"Eelvaadet ei ole võimalik kuvada.\")}

\n

Arve summa on {{ invoiceSum }} koos käibemaksuga.

\n \n );\n }\n\n renderReceiverSection() {\n const { t } = this.props;\n const invoiceReceiver = _.get(this.props, \"invoice.invoice_receiver\", {});\n return (\n \n \n \n \n {t(\"invoices.receiver\", \"Saaja\")}\n \n \n \n \n {invoiceReceiver.name}\n \n \n \n \n {this.getCombinedAddress(invoiceReceiver)}\n \n \n \n \n {invoiceReceiver.reg_number}\n \n \n \n \n );\n }\n\n renderTableSection() {\n const { t } = this.props;\n const invoiceRows = _.get(this.props, \"invoice.rows\", []);\n const salesPeriod = _.get(this.props, \"invoice.period\", \"\");\n\n const columns = [\n {\n dataField: \"value\",\n text: t(\"invoices.description\", \"KIRJELDUS\") + (salesPeriod ? ` (${salesPeriod})` : \"\"),\n headerClasses: \"bold-12\",\n classes: \"regular-14\",\n footer: \"\",\n },\n {\n dataField: \"quantity\",\n text: t(\"invoices.quantity\", \"KOGUS (TK)\"),\n headerClasses: \"bold-12\",\n classes: \"regular-14\",\n align: \"right\",\n headerAlign: \"right\",\n },\n {\n dataField: \"unit_price\",\n text: t(\"invoices.price\", \"HIND (€)\"),\n headerClasses: \"bold-12\",\n classes: \"regular-14\",\n align: \"right\",\n headerAlign: \"right\",\n },\n {\n dataField: \"vat_id\",\n text: t(\"invoices.vatId\", \"KM ID\"),\n headerClasses: \"bold-12\",\n classes: \"regular-14\",\n align: \"right\",\n headerAlign: \"right\",\n footerClasses: \"semibold-14\",\n footerAlign: \"right\",\n footerAttrs: { colSpan: \"3\" },\n footer: () => {\n return (\n <>\n
\n {t(\"invoices.amount\", \"Summa\")}\n
\n
\n {t(\"invoices.vat\", \"Käibemaks\")}\n
\n
\n {t(\n \"invoices.amountWithVat\",\n \"Summa koos käibemaksuga\"\n )}\n
\n \n );\n },\n },\n {\n dataField: \"total\",\n text: t(\"invoices.invoicePreviewModal.amountTableHeader\", \"SUMMA (€)\"),\n headerClasses: \"bold-12\",\n classes: \"regular-14\",\n align: \"right\",\n headerAlign: \"right\",\n footerAlign: \"right\",\n footer: () => {\n return (\n <>\n
\n {this.totalWithoutVAT()}\n
\n
\n {this.totalVAT()}\n
\n
\n {this.totalWithVAT()}\n
\n \n );\n },\n },\n ];\n\n return (\n \n \n \n \n \n );\n }\n\n renderFooterSection() {\n const { t } = this.props;\n return (\n \n \n \n {t(\n \"invoices.paymentInfo\",\n \"Lõplik arve saadetakse Teie e-mailile 24 tunni jooksul!\"\n )}\n \n \n \n \n {t(\"invoices.payWithBankTransfer\", \"Tasun ülekandega\")}\n \n \n \n \n {this.state.initiatePaymentLoading ?\n \n :\n t(\"invoices.payWithBankLink\", \"Tasun pangalingiga\")\n }\n \n \n \n );\n }\n\n renderLoading() {\n return (\n \n \n \n );\n }\n\n onClickPayManually = () => {\n addNewLocalInfoAlert(\n this.props.t(\n \"invoices.paymentInfo\",\n \"Lõplik arve saadetakse Teie e-mailile 24 tunni jooksul!\"\n ),\n urls.INVOICES,\n false\n );\n this.toggle();\n };\n\n getReferenceNumber = () => {\n if (this.props.invoice && this.props.invoice.invoice_receiver) {\n return this.props.invoice.invoice_receiver.reference_number;\n }\n\n return null;\n };\n\n onClickPayByLink = () => {\n if (this.state.initiatePaymentLoading) return;\n const amount = this.totalWithVAT();\n clearLocalAlerts()\n this.setState({\n initiatePaymentLoading: true\n })\n Everypay.initiatePayment(amount, this.props.activeClientId, null, null, this.props.invoice?.id)\n .then(payment_link => {\n window.location.href = payment_link;\n })\n .catch((error) => {\n addNewLocalErrorAlert(\n getServerErrorMessage(error),\n this.props.alertGroup,\n false\n );\n })\n .finally(() => {\n this.setState({\n initiatePaymentLoading: false\n })\n });\n };\n\n getCombinedAddress = (invoiceReceiver = {}) => {\n const { street, zipCode, county } = invoiceReceiver;\n if (!street && !zipCode && !county) {\n return \"\";\n }\n const dividerA = street && (zipCode || county) ? \", \" : \"\";\n const dividerB = zipCode && county ? \" \" : \"\";\n\n return `${street || \"\"}${dividerA}${zipCode || \"\"}${dividerB}${county || \"\"\n }`;\n };\n\n totalWithoutVAT = () => {\n const invoice = this.props.invoice;\n if (invoice && invoice.totals) {\n const withoutVAT = invoice.totals.without_VAT;\n if (!withoutVAT && withoutVAT !== 0) {\n return \"\";\n }\n return withoutVAT;\n }\n return \"\";\n };\n\n totalVAT = () => {\n const invoice = this.props.invoice;\n if (invoice && invoice.totals) {\n const VAT = invoice.totals.VAT;\n if (!VAT && VAT !== 0) {\n return \"\";\n }\n return VAT;\n }\n return \"\";\n };\n\n totalWithVAT = () => {\n const invoice = this.props.invoice;\n if (invoice && invoice.totals) {\n const with_VAT = invoice.totals.with_VAT;\n if (!with_VAT && with_VAT !== 0) {\n return \"\";\n }\n return with_VAT;\n }\n return \"\";\n };\n}\n\nconst mapStateToProps = (state) => {\n return {\n isInvoiceLoading: state.invoices.invoiceLoading,\n invoice: state.invoices.invoice,\n alerts: state.alerts.alertsList,\n alertGroup: INVOICE_PREVIEW_ALERT_GROUP,\n activeClientId: state.auth?.user?.active_client_id || null,\n };\n};\n\nexport default withRouter(\n connect(mapStateToProps)(withTranslation(\"common\")(InvoicePreviewModal))\n);\n","import React from \"react\";\n\nimport { Switch, NavLink, Route } from \"react-router-dom\";\nimport urls from \"config/urls\";\nimport { withTranslation } from \"react-i18next\";\n\nclass ProfileView extends React.Component {\n render() {\n function RouteWithSubRoutes(route) {\n return (\n (\n // pass the sub-routes down to keep nesting\n \n )}\n />\n );\n }\n\n const { t } = this.props;\n\n return (\n <>\n
\n \n {t(\"profile.tabs.profile\", \"Profiil\")}\n \n \n {t(\"profile.tabs.contract\", \"Leping\")}\n \n \n {t(\"profile.tabs.users\", \"Kasutajad\")}\n \n \n {t(\"profile.tabs.notifications\", \"Teavitused\")}\n \n
\n\n \n {this.props.routes.map((route, i) => (\n \n ))}\n \n \n );\n }\n}\n\nexport default withTranslation(\"common\")(ProfileView);\n","import * as actionTypes from \"./actionTypes\";\n\n\nexport const companyProfileFetchStart = () => {\n return {\n type: actionTypes.COMPANY_PROFILE_FETCH_START,\n }\n};\n\nexport const companyProfileFetchSuccess = (profile) => {\n return {\n type: actionTypes.COMPANY_PROFILE_FETCH_SUCCESS,\n profile: profile\n }\n};\n\nexport const companyProfileFetchFail = (err) => {\n return {\n type: actionTypes.COMPANY_PROFILE_FETCH_FAIL,\n error: err\n }\n};\n\nexport const companyProfileUpdate = (key, value) => {\n return {\n type: actionTypes.COMPANY_PROFILE_UPDATE,\n key: key,\n value: value,\n }\n};\n\nexport const personalProfileFetchStart = () => {\n return {\n type: actionTypes.PERSONAL_PROFILE_FETCH_START,\n }\n};\n\nexport const personalProfileFetchSuccess = (profile) => {\n return {\n type: actionTypes.PERSONAL_PROFILE_FETCH_SUCCESS,\n profile: profile\n }\n};\n\nexport const personalProfileFetchFail = (err) => {\n return {\n type: actionTypes.PERSONAL_PROFILE_FETCH_FAIL,\n error: err\n }\n};\n\nexport const personalProfileUpdate = (key, value) => {\n return {\n type: actionTypes.PERSONAL_PROFILE_UPDATE,\n key: key,\n value: value,\n }\n};\n\nexport const representationOptionsFetchStart = () => {\n return {\n type: actionTypes.REPRESENTATION_OPTIONS_FETCH_START,\n }\n};\n\nexport const representationOptionsFetchSuccess = (options) => {\n return {\n type: actionTypes.REPRESENTATION_OPTIONS_FETCH_SUCCESS,\n representationOptions: options\n }\n};\n\nexport const representationOptionsFetchFail = (err) => {\n return {\n type: actionTypes.REPRESENTATION_OPTIONS_FETCH_FAIL,\n error: err\n }\n};\n\nexport const contractsFetchStart = () => {\n return {\n type: actionTypes.CONTRACTS_FETCH_START,\n }\n};\n\nexport const contractsFetchSuccess = (contracts) => {\n return {\n type: actionTypes.CONTRACTS_FETCH_SUCCESS,\n contracts: contracts\n }\n};\n\nexport const contractsFetchFail = (err) => {\n return {\n type: actionTypes.CONTRACTS_FETCH_FAIL,\n error: err\n }\n};\n\nexport const usersFetchStart = () => {\n return {\n type: actionTypes.FETCH_USERS_START\n }\n};\n\nexport const usersFetchSuccess = (users) => {\n return {\n type: actionTypes.FETCH_USERS_SUCCESS,\n users: users\n }\n};\n\nexport const usersFetchFail = (err) => {\n return {\n type: actionTypes.FETCH_USERS_FAIL,\n error: err\n }\n};\n\nexport const userUpdateStart = () => {\n return {\n type: actionTypes.UPDATE_USER_START\n }\n};\n\nexport const userUpdateSuccess = (user) => {\n return {\n type: actionTypes.UPDATE_USER_SUCCESS,\n user: user\n }\n};\n\nexport const userUpdateFail = (err) => {\n return {\n type: actionTypes.UPDATE_USER_FAIL,\n error: err\n }\n};\n\nexport const userSettingsFetchStart = () => {\n return {\n type: actionTypes.USER_SETTINGS_FETCH_START,\n }\n}\nexport const userSettingsFetchSuccess = (userSettings) => {\n return {\n type: actionTypes.USER_SETTINGS_FETCH_SUCCESS,\n userSettings,\n }\n}\nexport const userSettingsFetchFail = (error) => {\n return {\n type: actionTypes.USER_SETTINGS_FETCH_FAIL,\n error\n }\n}\nexport const userSettingsPutStart = () => {\n return {\n type: actionTypes.USER_SETTINGS_PUT_START,\n }\n}\nexport const userSettingsPutSuccess = (userSettings) => {\n return {\n type: actionTypes.USER_SETTINGS_PUT_SUCCESS,\n userSettings,\n }\n}\nexport const userSettingsPutFail = (error) => {\n return {\n type: actionTypes.USER_SETTINGS_PUT_FAIL,\n error,\n }\n}\n","import axios from \"../axios\";\nimport {\n COMPANY_DATA,\n CONTRACTS,\n REPRESENTATION_OPTIONS,\n USER_DATA,\n USER_SETTINGS,\n USERS,\n ADD_USER,\n REMOVE_USER,\n} from \"../config/Api\";\nimport store from \"../redux/store\";\nimport {\n companyProfileFetchFail,\n companyProfileFetchStart,\n companyProfileFetchSuccess,\n personalProfileFetchFail,\n personalProfileFetchStart,\n personalProfileFetchSuccess,\n contractsFetchFail,\n contractsFetchStart,\n contractsFetchSuccess,\n usersFetchFail,\n usersFetchStart,\n usersFetchSuccess,\n userUpdateFail,\n userUpdateStart,\n userUpdateSuccess,\n userSettingsFetchStart,\n userSettingsFetchSuccess,\n userSettingsFetchFail,\n userSettingsPutStart,\n userSettingsPutSuccess,\n userSettingsPutFail,\n} from \"redux/actions/profile\";\nimport {\n representationOptionsFetchFail,\n representationOptionsFetchStart,\n representationOptionsFetchSuccess,\n} from \"../redux/actions/profile\";\nimport { getServerErrorMessage } from \"util/Errors\";\n\nexport function fetchPersonalProfile() {\n store.dispatch(personalProfileFetchStart());\n return axios\n .get(USER_DATA)\n .then((resp) => {\n store.dispatch(personalProfileFetchSuccess(resp.data));\n return resp.data;\n })\n .catch((err) => {\n const errorMessage = getServerErrorMessage(err);\n store.dispatch(personalProfileFetchFail(errorMessage));\n //throw Error(errorMessage); // Not handled yet\n });\n}\n\nexport function fetchCompanyProfile() {\n store.dispatch(companyProfileFetchStart());\n return axios\n .get(COMPANY_DATA)\n .then((resp) => {\n store.dispatch(companyProfileFetchSuccess(resp.data));\n })\n .catch((err) => {\n const errorMessage = getServerErrorMessage(err);\n store.dispatch(companyProfileFetchFail(errorMessage));\n // throw Error(errorMessage); // Not handled yet\n });\n}\n\nexport function fetchRepresentationOptions() {\n store.dispatch(representationOptionsFetchStart());\n return axios\n .get(REPRESENTATION_OPTIONS)\n .then((resp) => {\n store.dispatch(representationOptionsFetchSuccess(resp.data));\n })\n .catch((err) => {\n store.dispatch(representationOptionsFetchFail(err));\n });\n}\n\nexport function fetchContracts() {\n store.dispatch(contractsFetchStart());\n return axios\n .get(CONTRACTS)\n .then((resp) => {\n store.dispatch(contractsFetchSuccess(resp.data));\n })\n .catch((err) => {\n store.dispatch(contractsFetchFail(err));\n });\n}\n\nexport function updateCompanyProfile(profile) {\n return axios\n .put(COMPANY_DATA, profile)\n .then((resp) => {\n store.dispatch(companyProfileFetchSuccess(resp.data));\n return resp.data;\n })\n .catch((err) => {\n throw Error(getServerErrorMessage(err));\n });\n}\n\nexport function updatePersonalProfile(profile) {\n return axios\n .put(USER_DATA, profile)\n .then((resp) => {\n store.dispatch(personalProfileFetchSuccess(resp.data));\n return resp.data;\n })\n .catch((err) => {\n throw Error(getServerErrorMessage(err));\n });\n}\n\nexport function fetchUsers() {\n store.dispatch(usersFetchStart());\n return axios\n .get(USERS)\n .then((resp) => {\n store.dispatch(usersFetchSuccess(resp.data));\n })\n .catch((err) => {\n store.dispatch(usersFetchFail(err));\n });\n}\n\nexport function updateUserInfo(user) {\n store.dispatch(userUpdateStart());\n return axios\n .put(USERS, {\n user_type_id: user.id,\n type: user.type,\n name: user.name,\n position: user.position,\n email: user.email,\n last_name: user.last_name,\n personal_code: user.personal_code,\n phone: user.phone,\n is_verified: user.is_verified,\n })\n .then((resp) => {\n store.dispatch(userUpdateSuccess(resp.data));\n return resp.data;\n })\n .catch((err) => {\n store.dispatch(userUpdateFail(err));\n throw Error(getServerErrorMessage(err));\n });\n}\n\nexport function fetchUserSettings() {\n store.dispatch(userSettingsFetchStart());\n return axios\n .get(USER_SETTINGS)\n .then((resp) => {\n store.dispatch(userSettingsFetchSuccess(resp.data));\n return resp.data;\n })\n .catch((err) => {\n store.dispatch(userSettingsFetchFail(err));\n throw Error(getServerErrorMessage(err));\n });\n}\n\nexport function updateUserSettings(userSettings) {\n store.dispatch(userSettingsPutStart());\n return axios\n .put(`${USER_SETTINGS}${userSettings.id}/`, userSettings)\n .then((resp) => {\n store.dispatch(userSettingsPutSuccess(resp.data));\n return resp.data;\n })\n .catch((err) => {\n store.dispatch(userSettingsPutFail(err));\n throw Error(getServerErrorMessage(err));\n });\n}\n\nexport function addUser(userData) {\n const user = {\n is_client_admin: userData.isAdmin,\n first_name: userData.firstName,\n last_name: userData.lastName,\n personal_code: userData.personalCode,\n phone: userData.phone,\n email: userData.email,\n profession: userData.profession,\n partner_id: userData.partnerId,\n client_id: userData.clientId,\n };\n\n return axios\n .post(ADD_USER, user)\n .then((resp) => {\n return resp;\n })\n .catch((err) => {\n throw Error(getServerErrorMessage(err));\n });\n}\n\nexport function removeUser(id) {\n return axios\n .delete(REMOVE_USER + id + \"/\")\n .then((resp) => {\n return resp;\n })\n .catch((err) => {\n throw Error(getServerErrorMessage(err));\n });\n}\n","var _circle, _path;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nconst SvgActive = _ref => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 8,\n cy: 8,\n r: 8,\n fill: \"#46A72A\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4 8.80001L6.32929 11.1293C6.36834 11.1683 6.43166 11.1683 6.47071 11.1293L12 5.60001\",\n stroke: \"white\",\n strokeWidth: 1.7,\n strokeLinecap: \"round\"\n })));\n};\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgActive, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/active.3b1e6b3b.svg\";\nexport { ForwardRef as ReactComponent };","var _circle;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nconst SvgInactive = _ref => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 8,\n cy: 8,\n r: 7.5,\n stroke: \"#C5C7CD\"\n })));\n};\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgInactive, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/inactive.b60d8826.svg\";\nexport { ForwardRef as ReactComponent };","var _rect, _path, _path2;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nconst SvgDeleteRow = _ref => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 16,\n height: 16,\n rx: 8,\n fill: \"#FFEDED\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.8281 5.17163L5.17127 10.8285\",\n stroke: \"#FB4F39\",\n strokeWidth: 1.7,\n strokeLinecap: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.8281 10.8286L5.17127 5.17176\",\n stroke: \"#FB4F39\",\n strokeWidth: 1.7,\n strokeLinecap: \"round\"\n })));\n};\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgDeleteRow, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/delete-row.11d1d5c0.svg\";\nexport { ForwardRef as ReactComponent };","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport \"./CheckboxButton.scss\";\nimport {Button} from \"reactstrap\";\n\nimport {ReactComponent as Selected} from 'assets/icons/active.svg';\nimport {ReactComponent as Unselected} from 'assets/icons/inactive.svg';\nimport {ReactComponent as DisabledUnselected} from 'assets/icons/delete-row.svg';\n\n\n\nclass CustomCheckbox extends React.Component {\n static propTypes = {\n isSelected: PropTypes.any,\n labelText: PropTypes.any,\n onClick: PropTypes.func.isRequired,\n className: PropTypes.string,\n disabled: PropTypes.bool,\n invalid: PropTypes.bool,\n extraProps: PropTypes.object,\n }\n\n static defaultProps = {\n isSelected: false,\n labelText: \"\",\n onClick: () => {},\n className: \"\",\n disabled: false,\n extraProps: {},\n }\n\n onClick = (event) => {\n this.props.onClick(!this.props.value);\n }\n\n render() {\n return (\n \n {this.props.labelText}\n {this.props.isSelected ? \n \n : \n this.props.disabled ? \n \n : \n \n }\n \n )\n }\n}\n\nexport default CustomCheckbox;\n\n","import * as actionTypes from \"redux/actions/actionTypes\";\n\nexport const adminClientsFetchStart = () => {\n return {\n type: actionTypes.ADMIN_CLIENTS_FETCH_START,\n };\n};\n\nexport const adminClientsFetchSuccess = (clients) => {\n return {\n type: actionTypes.ADMIN_CLIENTS_FETCH_SUCCESS,\n clients,\n };\n};\n\nexport const adminClientsFetchFail = (error) => {\n return {\n type: actionTypes.ADMIN_CLIENTS_FETCH_FAIL,\n error,\n };\n};\n\nexport const adminClientsPaginationUpdate = (pagination) => {\n return {\n type: actionTypes.ADMIN_CLIENTS_PAGINATION_UPDATE,\n pagination,\n };\n};\n\nexport const adminClientsFilterUpdate = (key, value) => {\n return {\n type: actionTypes.ADMIN_CLIENTS_FILTER_UPDATE,\n key: key,\n value: value,\n };\n};\n\nexport const adminClientsSortingUpdate = (sorting) => {\n return {\n type: actionTypes.ADMIN_CLIENTS_SORTING_UPDATE,\n sorting,\n };\n};\n\nexport const adminPartnersFetchStart = () => {\n return {\n type: actionTypes.ADMIN_PARTNERS_FETCH_START,\n };\n};\n\nexport const adminPartnersFetchSuccess = (partners) => {\n return {\n type: actionTypes.ADMIN_PARTNERS_FETCH_SUCCESS,\n partners,\n };\n};\n\nexport const adminPartnersFetchFail = (error) => {\n return {\n type: actionTypes.ADMIN_PARTNERS_FETCH_FAIL,\n error,\n };\n};\n\nexport const adminPartnersUserUpdate = (user) => {\n return {\n type: actionTypes.ADMIN_PARTNER_USER_UPDATE,\n user,\n };\n};\n\nexport const adminClientUsersFetchStart = () => {\n return {\n type: actionTypes.ADMIN_CLIENTS_FETCH_START,\n };\n};\n\nexport const adminlientUsersFetchSuccess = (clients) => {\n return {\n type: actionTypes.ADMIN_CLIENTS_FETCH_SUCCESS,\n clients,\n };\n};\n\nexport const adminlientUsersFetchFail = (error) => {\n return {\n type: actionTypes.ADMIN_CLIENTS_FETCH_FAIL,\n error,\n };\n};\n\nexport const adminEppUsersFetchStart = () => {\n return {\n type: actionTypes.ADMIN_EPP_USERS_FETCH_START,\n };\n};\n\nexport const adminEppUsersFetchSuccess = (eppUsers) => {\n return {\n type: actionTypes.ADMIN_EPP_USERS_FETCH_SUCCESS,\n eppUsers,\n };\n};\n\nexport const adminEppUsersFetchFail = (error) => {\n return {\n type: actionTypes.ADMIN_EPP_USERS_FETCH_FAIL,\n error,\n };\n};\n\nexport const adminEppUserUpdate = (user) => {\n return {\n type: actionTypes.ADMIN_EPP_USER_UPDATE,\n user,\n };\n};\n","import axios from \"../../axios\";\nimport store from \"redux/store\";\n\nimport { getServerErrorMessage } from \"util/Errors\";\nimport {\n ADMIN_ALL_CLIENTS,\n ADMIN_ALL_PARTNERS,\n ADMIN_CLIENT_USERS,\n ADMIN_REMOVE_USER,\n ADMIN_ALL_USERS,\n ADMIN_REMOVE_EPP_USER,\n ADMIN_REMOVE_PARTNER_USER,\n} from \"config/Api\";\n\nimport {\n adminClientsFetchStart,\n adminClientsFetchSuccess,\n adminClientsFetchFail,\n adminPartnersFetchStart,\n adminPartnersFetchSuccess,\n adminPartnersFetchFail,\n adminEppUsersFetchStart,\n adminEppUsersFetchSuccess,\n adminEppUsersFetchFail,\n} from \"redux/actions/admin/users\";\n\nexport const adminfetchAllClients = (fetchOnlyIfNull) => {\n if (!!fetchOnlyIfNull) {\n const state = store.getState();\n if (state.admin.users.clients !== null) {\n return;\n }\n }\n\n store.dispatch(adminClientsFetchStart());\n return axios\n .get(ADMIN_ALL_CLIENTS)\n .then((response) => {\n store.dispatch(adminClientsFetchSuccess(response.data));\n return response.data;\n })\n .catch((error) => {\n const errorMessage = getServerErrorMessage(error);\n store.dispatch(adminClientsFetchFail(errorMessage));\n throw Error(errorMessage);\n });\n};\n\nexport const adminfetchAllPartners = (allPartners) => {\n if (allPartners && allPartners.length) {\n return;\n }\n store.dispatch(adminPartnersFetchStart());\n return axios\n .get(ADMIN_ALL_PARTNERS)\n .then((response) => {\n store.dispatch(adminPartnersFetchSuccess(response.data));\n return response.data;\n })\n .catch((error) => {\n const errorMessage = getServerErrorMessage(error);\n store.dispatch(adminPartnersFetchFail(errorMessage));\n throw Error(errorMessage);\n });\n};\n\nexport const adminfetchAllUsers = () => {\n return axios\n .get(ADMIN_ALL_CLIENTS)\n .then((response) => {\n return response.data;\n })\n .catch((error) => {\n const errorMessage = getServerErrorMessage(error);\n throw Error(errorMessage);\n });\n};\n\nexport const adminfetchUsers = (\n fetchClients = null,\n fetchPartners = null,\n fetchEpp = null\n) => {\n if (fetchClients) {\n store.dispatch(adminClientsFetchStart());\n }\n if (fetchPartners) {\n store.dispatch(adminPartnersFetchStart());\n }\n if (fetchEpp) {\n store.dispatch(adminEppUsersFetchStart());\n }\n return axios\n .get(ADMIN_ALL_USERS, {\n params: {\n clients: fetchClients,\n partners: fetchPartners,\n epp: fetchEpp,\n },\n })\n .then((response) => {\n if (fetchClients) {\n store.dispatch(adminClientsFetchSuccess(response.data));\n }\n if (fetchPartners) {\n store.dispatch(adminPartnersFetchSuccess(response.data));\n }\n if (fetchEpp) {\n store.dispatch(adminEppUsersFetchSuccess(response.data));\n }\n return response.data;\n })\n .catch((error) => {\n if (fetchClients) {\n store.dispatch(adminClientsFetchFail());\n }\n if (fetchPartners) {\n store.dispatch(adminPartnersFetchFail());\n }\n if (fetchEpp) {\n store.dispatch(adminEppUsersFetchFail());\n }\n });\n};\n\nexport const adminfetchClientUsers = (clientId) => {\n const endpoint = ADMIN_CLIENT_USERS.replace(\"\", clientId);\n\n return axios\n .get(endpoint)\n .then((response) => {\n return response.data;\n })\n .catch((error) => {\n const errorMessage = getServerErrorMessage(error);\n throw Error(errorMessage);\n });\n};\n\nexport const adminRemoveClientUser = (userTypeId) => {\n const endpoint = ADMIN_REMOVE_USER.replace(\"\", userTypeId);\n\n return axios\n .delete(endpoint)\n .then((response) => {\n return response.data;\n })\n .catch((error) => {\n const errorMessage = getServerErrorMessage(error);\n throw Error(errorMessage);\n });\n};\n\nexport const adminRemoveEppUser = (userTypeId) => {\n const endpoint = ADMIN_REMOVE_EPP_USER.replace(\n \"\",\n userTypeId\n );\n\n return axios\n .delete(endpoint)\n .then((response) => {\n return response.data;\n })\n .catch((error) => {\n const errorMessage = getServerErrorMessage(error);\n throw Error(errorMessage);\n });\n};\n\nexport const adminRemovePartnerUser = (userTypeId) => {\n const endpoint = ADMIN_REMOVE_PARTNER_USER.replace(\n \"\",\n userTypeId\n );\n\n return axios\n .delete(endpoint)\n .then((response) => {\n return response.data;\n })\n .catch((error) => {\n const errorMessage = getServerErrorMessage(error);\n throw Error(errorMessage);\n });\n};\n","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { withRouter } from \"react-router\";\nimport { Modal, ModalBody, Row, Col, Button, Form } from \"reactstrap\";\nimport { withTranslation } from \"react-i18next\";\n\nimport urls from \"config/urls\";\nimport {\n clearLocalAlerts,\n addNewLocalErrorAlert,\n addNewLocalSuccessAlert,\n addNewLocalWarningAlert,\n addNewLocalInfoAlert,\n} from \"util/Alerts\";\nimport { isClientMode, isAdminMode } from \"util/Access\";\nimport { addUser, fetchUsers } from \"util/Profile\";\n\nimport CloseTextIcon from \"components/Misc/CloseTextIcon\";\nimport Alerts from \"components/Alerts/Alerts\";\nimport WrapperLoader from \"components/Loader/WrappedLoader\";\nimport LoadingAnimation from \"components/Loader/WrappedPulseLoader\";\nimport Input from \"components/Form/Input\";\nimport CheckboxButton from \"components/Form/CheckboxButton/CheckboxButton\";\n\nimport \"./AddUserModal.scss\";\nimport { adminfetchUsers } from \"util/admin/Users\";\n\nclass AddUserModal extends Component {\n static propTypes = {\n userRole: PropTypes.string.isRequired,\n isOpen: PropTypes.bool,\n toggle: PropTypes.func.isRequired,\n };\n\n static ALERT_GROUP = \"addUserGroup\";\n\n getInitialState = () => {\n return {\n isAdmin: isAdminMode() && this.props.userRole === \"CLIENT\" ? true : false,\n firstName: \"\",\n lastName: \"\",\n personalCode: \"\",\n phone: \"\",\n email: \"\",\n profession: \"\",\n loading: false,\n };\n };\n\n state = this.getInitialState();\n\n componentDidMount() {\n this.setState({\n partnerId: this.props.userRole === \"PARTNER\" ? 1 : null,\n clientId:\n this.props.userRole === \"CLIENT\" ? this.props.clientId : null,\n });\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.isOpen !== this.props.isOpen) {\n clearLocalAlerts();\n this.setState(this.getInitialState());\n }\n }\n\n toggle = () =>\n this.setState({ modal: !this.state.modal }, () => {\n this.props.history.push(urls.INVOICES);\n });\n\n render() {\n const { t } = this.props;\n return (\n
\n \n \n \n \n \n {t(\"users.addUserModal.header\", \"Lisa uus kasutaja\")}\n \n \n \n \n \n \n \n {this.renderContent()}\n \n \n \n
\n );\n }\n\n renderContent() {\n if (this.props.loading) {\n return ;\n }\n const { t } = this.props;\n\n const isShowUserRoles = this.props.userRole === \"CLIENT\" && (isClientMode() || isAdminMode());\n\n return (\n
\n {isShowUserRoles && (\n \n \n \n this.setState({ isAdmin: false })\n }\n extraProps={{ block: true }}\n />\n \n \n this.setState({ isAdmin: true })}\n extraProps={{ block: true }}\n />\n \n \n )}\n \n \n \n this.setState({ firstName: value })\n }\n extraProps={{\n required: true,\n }}\n />\n \n \n \n \n \n this.setState({ lastName: value })\n }\n extraProps={{\n required: true,\n }}\n />\n \n \n \n \n \n this.setState({ personalCode: value })\n }\n extraProps={{\n required: true,\n }}\n />\n \n \n \n \n \n this.setState({ phone: value })\n }\n extraProps={{\n required: true,\n }}\n />\n \n \n \n \n \n this.setState({ email: value })\n }\n extraProps={{\n required: true,\n }}\n />\n \n \n \n \n \n this.setState({ profession: value })\n }\n extraProps={{\n required: true,\n }}\n />\n \n \n \n \n \n \n {this.state.loading ? : t(\"users.addUserModal.addButton\", \"Lisa\")}\n \n \n \n \n );\n }\n\n onClickAddUser = (e) => {\n e.preventDefault();\n const { t } = this.props;\n clearLocalAlerts();\n this.setState({ loading: true }, () =>\n addUser(this.state)\n .then((response) => {\n if (response.status === 208) {\n addNewLocalInfoAlert(\n t(\"users.addUserModal.alerts.info.userAlreadyConnectedToClient\", \"Kasutaja juba kliendiga seotud.\"),\n AddUserModal.ALERT_GROUP\n );\n this.setState({ loading: false });\n return;\n } else if (response.status === 226) {\n addNewLocalWarningAlert(\n response.data.code,\n AddUserModal.ALERT_GROUP\n );\n this.setState({ loading: false });\n this.setState({ email: response.data.email });\n return;\n }\n this.props.toggle();\n if (isClientMode()) {\n fetchUsers();\n } else if (isAdminMode) {\n adminfetchUsers(null, true, null);\n adminfetchUsers(null, null, true);\n }\n addNewLocalSuccessAlert(\n t(\"users.addUserModal.alerts.success.userAdded\", \"Kasutaja lisatud.\"),\n this.props.location.pathname\n );\n this.setState({ loading: false });\n })\n .catch((error) => {\n addNewLocalErrorAlert(\n error.message,\n AddUserModal.ALERT_GROUP\n );\n this.setState({ loading: false });\n })\n );\n };\n}\n\nexport default withRouter(withTranslation()(AddUserModal));\n","const userRoles = {\n CLIENT_ADMIN: \"Admin\",\n CLIENT_USER: \"Kasutaja\",\n PARTNER: \"Partner\",\n EPP: \"EPP\",\n}\n\nexport default userRoles;","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { withTranslation } from \"react-i18next\";\n\nimport { Modal, ModalBody, Row, Col, Form } from \"reactstrap\";\n\nimport { clearLocalAlerts, addNewLocalErrorAlert } from \"util/Alerts\";\nimport {\n isClientMode,\n isUserClientAdmin,\n isPartnerMode,\n isAdminMode,\n} from \"util/Access\";\nimport { updateUserInfo } from \"util/Profile\";\nimport userRoles from \"config/userRoles\";\n\nimport CloseTextIcon from \"components/Misc/CloseTextIcon\";\nimport Alerts from \"components/Alerts/Alerts\";\nimport WrapperLoader from \"components/Loader/WrappedLoader\";\nimport Input from \"components/Form/Input\";\nimport CheckboxButton from \"components/Form/CheckboxButton/CheckboxButton\";\n\nimport \"./UserDetailsModal.scss\";\n\nclass UserDetailsModal extends Component {\n static propTypes = {\n user: PropTypes.object.isRequired,\n userRole: PropTypes.string.isRequired,\n isOpen: PropTypes.bool,\n alertGroup: PropTypes.string,\n toggle: PropTypes.func.isRequired,\n disabled: PropTypes.bool,\n onSave: PropTypes.func,\n };\n\n static defaultProps = {\n onSave: () => { },\n }\n\n static ALERT_GROUP = \"userDetailsModalAlertGroup\";\n\n state = {\n userDetails: {},\n };\n\n componentDidMount() {\n clearLocalAlerts();\n this.setStateUserDetails(this.props.user);\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.user !== this.props.user) {\n this.setState({ userDetails: this.props.user });\n this.setStateUserDetails(this.props.user);\n }\n }\n\n render() {\n const { t } = this.props;\n return (\n
\n \n \n \n \n \n {t(\"users.userDetailsModal.header\", \"Muuda andmeid\")}\n \n \n \n \n \n \n \n {this.renderContent()}\n \n \n \n
\n );\n }\n\n renderContent() {\n if (this.props.loading) {\n return ;\n }\n const { t } = this.props;\n\n const disableFields = this.isDisabled();\n const isShowUserRoleSelection = this.props.userRole === \"CLIENT\" && (isClientMode() || isAdminMode());\n const isUserRoleSelectionDisabled = disableFields || (!isAdminMode() && !isUserClientAdmin());\n\n return (\n
\n {isShowUserRoleSelection && (\n \n \n \n this.onChange(\"type\")(userRoles.CLIENT_USER)\n }\n extraProps={{ block: true }}\n />\n \n \n \n this.onChange(\"type\")(\n userRoles.CLIENT_ADMIN\n )\n }\n extraProps={{ block: true }}\n />\n \n \n )}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n this.onChange(\"is_verified\")(\n !this.state.userDetails.is_verified\n )\n }\n extraProps={{ block: true }}\n />\n \n \n {!isAdminMode() && (\n <>\n \n \n \n \n \n \n )}\n \n \n );\n }\n\n setStateUserDetails = (userDetails) => {\n this.setState({\n userDetails,\n });\n };\n\n isDisabled = () => {\n return (\n this.props.disabled ||\n !(isUserClientAdmin() || isPartnerMode() || isAdminMode())\n );\n };\n\n onChange = (field) => (value) => {\n //this.props.onChange(field, value);\n clearLocalAlerts();\n const oldUserDetails = { ...this.state.userDetails };\n this.setState(\n (prevState) => {\n return {\n userDetails: {\n ...prevState.userDetails,\n [field]: value,\n },\n };\n },\n () => this.saveUpdate(oldUserDetails, this.state.userDetails)\n );\n };\n\n saveUpdate = (oldUserDetails, newUserDetails) => {\n updateUserInfo(newUserDetails)\n .then((data) => {\n this.setStateUserDetails(data);\n this.props.onSave(data);\n })\n .catch((err) => {\n clearLocalAlerts();\n this.setStateUserDetails(oldUserDetails);\n addNewLocalErrorAlert(\n err.message,\n UserDetailsModal.ALERT_GROUP\n );\n });\n };\n}\n\nexport default withTranslation()(UserDetailsModal);\n","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\n\nimport BootstrapTable from \"react-bootstrap-table-next\";\nimport \"react-bootstrap-table-next/dist/react-bootstrap-table2.min.css\";\n\nimport {\n Button,\n Card,\n CardBody,\n CardHeader,\n DropdownItem,\n DropdownMenu,\n DropdownToggle,\n UncontrolledButtonDropdown,\n Row,\n Col,\n} from \"reactstrap\";\n\nimport WrappedLoader from \"components/Loader/WrappedLoader\";\nimport { ReactComponent as MoreVerticalIcon } from \"assets/icons/more-vertical.svg\";\nimport AddUserModal from \"components/Profile/Users/AddUserModal/AddUserModal\";\nimport UserDetailsModal from \"components/Profile/Users/UserDetailsModal/UserDetailsModal\";\n\nimport { fetchUsers, removeUser } from \"util/Profile\";\nimport {\n clearLocalAlerts,\n addNewLocalInfoAlert,\n addNewLocalErrorAlert,\n} from \"util/Alerts\";\nimport { isUserClientAdmin, isPartnerMode } from \"util/Access\";\n\nimport \"./UsersTable.scss\";\nimport StatusCell, {\n statusTypes,\n} from \"components/Table/Cell/Status/StatusCell\";\nimport { withTranslation } from \"react-i18next\";\n\nimport moment from \"moment\";\nimport { DATE_FORMAT } from \"util/DateTime\";\n\nclass UsersTable extends React.Component {\n state = {\n isAddUserModalOpen: false,\n isUserDetailsModalOpen: false,\n selectedUser: {},\n };\n\n componentDidMount() {\n fetchUsers();\n }\n\n static NoDataIndication(props) {\n let content = props.t(\"users.emptyTableText\", \"Ei leitud teisi kasutajat.\");\n if (props.loading) {\n content = ;\n }\n\n return
{content}
;\n }\n\n render() {\n const { t } = this.props;\n return (\n \n \n \n \n \n {t(\"users.allUsers\", \"Kõik kasutajad\")}\n \n \n {this.showAddUserButton() && (\n \n \n {t(\"buttons.addUser\", \"Lisa kasutaja\")}\n \n \n )}\n \n \n {this.renderTable()}\n \n \n \n );\n }\n\n renderTable() {\n const { t } = this.props;\n if (this.props.usersLoading) {\n return ;\n }\n\n const StyledDropdownItem = (props) => (\n \n {props.children}\n \n );\n\n const dropdownFormatter = (user) => {\n return (\n e.stopPropagation()}\n >\n \n \n \n \n \n \n this.onOpenUserDetails(user)}\n >\n {t(\"users.look\", \"Vaata\")}\n \n {this.showRemoveUserButton() && (\n this.onRemoveUser(user)}\n >\n {t(\"users.removeUser\", \"Eemalda kasutaja\")}\n \n )}\n \n \n );\n };\n\n const usersEndpointDateFormat = \"DD.MM.YYYY\";\n\n const columns = [\n {\n dataField: \"last_name\",\n text: t(\"users.name\", \"Nimi\"),\n sort: true,\n classes: \"semibold-14\",\n formatter: (last_name, user) =>\n `${user.name} ${user.last_name}`,\n },\n {\n dataField: \"type\",\n text: t(\"users.role\", \"Roll\"),\n sort: true,\n },\n {\n dataField: \"position\",\n text: t(\"users.profession\", \"Ametinimetus\"),\n sort: true,\n },\n {\n dataField: \"date_joined\",\n text: t(\"users.dateJoined\", \"Liitus\"),\n sort: true,\n formatter: invalidated_at => moment(invalidated_at, usersEndpointDateFormat).format(DATE_FORMAT),\n sortValue: invalidated_at => moment(invalidated_at, usersEndpointDateFormat),\n },\n {\n dataField: \"email\",\n text: t(\"users.email\", \"Email\"),\n sort: true,\n },\n {\n dataField: \"is_verified\",\n text: t(\"users.verified\", \"Kinnitatud\"),\n sort: true,\n formatter: (is_verified) => (\n \n ),\n },\n {\n dataField: \"\",\n text: \"\",\n align: \"right\",\n formatter: (field, row) => dropdownFormatter(row),\n },\n ];\n\n const rowEvents = {\n onClick: (e, row, rowIndex) => {\n this.onOpenUserDetails(row);\n },\n };\n\n return (\n \n }\n />\n );\n }\n\n showAddUserButton = () => {\n return isUserClientAdmin() || isPartnerMode();\n };\n\n showRemoveUserButton = () => {\n return isUserClientAdmin() || isPartnerMode();\n };\n\n toggleAddUserModal = () => {\n this.setState((prevState) => {\n return {\n isAddUserModalOpen: !prevState.isAddUserModalOpen,\n };\n });\n };\n\n toggleUserDetailsModal = () => {\n this.setState((prevState) => {\n return {\n isUserDetailsModalOpen: !prevState.isUserDetailsModalOpen,\n };\n });\n };\n\n onOpenUserDetails = (user) => {\n clearLocalAlerts();\n this.setState({\n isUserDetailsModalOpen: true,\n selectedUser: user,\n });\n };\n\n onRemoveUser = (user) => {\n clearLocalAlerts();\n removeUser(user.user_id)\n .then((resp) => {\n fetchUsers();\n addNewLocalInfoAlert(\n this.props.t(\"users.userRemoved\", \"Kasutaja eemaldatud!\"),\n this.props.location.pathname\n );\n })\n .catch((error) => {\n addNewLocalErrorAlert(\n error.message,\n this.props.location.pathname\n );\n });\n };\n}\n\nconst mapStateToProps = (state) => {\n return {\n users: state.profile.users,\n usersLoading: state.profile.usersLoading,\n };\n};\n\nexport default withRouter(\n connect(mapStateToProps)(withTranslation(\"common\")(UsersTable))\n);\n","import React, { Component } from \"react\";\nimport { withRouter } from \"react-router\";\nimport { connect } from \"react-redux\";\nimport PropTypes from \"prop-types\";\n\nimport { Row, Col } from \"reactstrap\";\nimport Input from \"../../../Form/Input\";\nimport WrapperLoader from \"components/Loader/WrappedLoader\";\nimport CenteredRowCol from \"components/Misc/CenteredRowCol\";\n\nimport { personalProfileUpdate } from \"redux/actions/profile\";\nimport { fetchPersonalProfile, updatePersonalProfile } from \"util/Profile\";\nimport {\n addNewLocalErrorAlert,\n clearLocalAlerts,\n} from \"../../../../util/Alerts\";\nimport { withTranslation } from \"react-i18next\";\n\nclass PersonalProfileForm extends Component {\n static propTypes = {\n alertGroup: PropTypes.string,\n contractMode: PropTypes.bool,\n invalidFields: PropTypes.array.isRequired,\n };\n\n static defaultProps = {\n invalidFields: [],\n contractMode: false,\n };\n\n componentDidMount() {\n fetchPersonalProfile().then((profile) => {\n this.setState({ profile: profile });\n });\n }\n\n getAlertGroupOrDefault = () => {\n return this.props.alertGroup || this.props.location.pathname;\n };\n\n handleChange = (name) => async (value) => {\n clearLocalAlerts();\n const oldValue = this.props.personalProfile[name];\n\n await this.props.personalProfileUpdate(name, value);\n\n if (!this.hasAllProperties(this.props.personalProfile)) {\n return;\n }\n\n updatePersonalProfile(this.props.personalProfile).catch((err) => {\n clearLocalAlerts();\n\n this.props.personalProfileUpdate(name, oldValue);\n\n addNewLocalErrorAlert(err.message, this.getAlertGroupOrDefault());\n });\n };\n\n isInvalid = (field) => {\n return this.props.invalidFields.includes(field);\n };\n\n render() {\n const { t } = this.props;\n if (this.props.personalProfileLoading) {\n return (\n \n \n \n );\n }\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n );\n }\n\n hasAllProperties = (object) => {\n return Object.values(object).every((x) => x !== \"\");\n };\n}\n\nconst mapStateToProps = (state) => {\n return {\n user: state.auth.user,\n personalProfile: state.profile.personalProfile,\n personalProfileLoading: state.profile.personalProfileLoading,\n };\n};\n\nexport default withRouter(\n connect(mapStateToProps, { personalProfileUpdate })(\n withTranslation(\"common\")(PersonalProfileForm)\n )\n);\n","var _circle;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nconst SvgUnchecked = _ref => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 10,\n cy: 10,\n r: 9,\n stroke: \"#C5C7CD\",\n strokeWidth: 2\n })));\n};\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgUnchecked, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/unchecked.540442dc.svg\";\nexport { ForwardRef as ReactComponent };","var _circle, _path;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nconst SvgChecked = _ref => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 10,\n cy: 10,\n r: 10,\n fill: \"#46A72A\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5 11L7.92929 13.9293C7.96834 13.9683 8.03166 13.9683 8.07071 13.9293L15 7\",\n stroke: \"white\",\n strokeWidth: 1.7,\n strokeLinecap: \"round\"\n })));\n};\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgChecked, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/checked.70798fe8.svg\";\nexport { ForwardRef as ReactComponent };","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport \"./Checkbox.scss\"\nimport { FormGroup } from \"reactstrap\";\n\nimport { ReactComponent as UncheckedIcon } from \"assets/icons/unchecked.svg\";\nimport { ReactComponent as CheckedIcon } from \"assets/icons/checked.svg\";\n\n\nclass CustomCheckbox extends React.Component {\n static propTypes = {\n value: PropTypes.bool,\n labelText: PropTypes.any,\n onClick: PropTypes.func.isRequired,\n className: PropTypes.string,\n inline: PropTypes.bool,\n valid: PropTypes.bool,\n invalid: PropTypes.bool,\n required: PropTypes.bool,\n disabled: PropTypes.bool,\n readonly: PropTypes.bool\n }\n\n static DISABLED_CSS = \"custom-is-disabled\";\n static READONLY_CSS = \"custom-is-readonly\";\n static ACTIVE_CSS = \"is-active\";\n static VALID_CSS = \"custom-is-valid\";\n static INVALID_CSS = \"custom-is-invalid\";\n static REQUIRED_CSS = \"custom-required\";\n\n onClick = (event) => {\n if (this.props.disabled || this.props.readonly) {\n return;\n }\n this.props.onClick(!this.props.value);\n }\n\n getAdditionalIconClasses = () => {\n if (this.props.disabled) {\n return CustomCheckbox.DISABLED_CSS;\n }\n if (this.props.invalid) {\n return CustomCheckbox.INVALID_CSS;\n }\n else if (this.props.valid) {\n return CustomCheckbox.VALID_CSS;\n }\n else if (this.props.readonly) {\n return CustomCheckbox.READONLY_CSS;\n }\n\n return \"\";\n }\n\n render() {\n return (\n \n {this.props.value ?\n \n :\n \n }\n {this.props.labelText &&\n \n {this.props.labelText}\n \n }\n \n )\n }\n}\n\nexport default CustomCheckbox;\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router\";\n\nimport { Row, Col, FormGroup } from \"reactstrap\";\nimport CustomCheckbox from \"../../../Form/Checkbox\";\nimport WrapperLoader from \"components/Loader/WrappedLoader\";\nimport CenteredRowCol from \"components/Misc/CenteredRowCol\";\nimport { fetchUserSettings, updateUserSettings } from \"util/Profile\";\n\nimport { addNewLocalErrorAlert, clearLocalAlerts } from \"util/Alerts\";\nimport { withTranslation } from \"react-i18next\";\nimport { isAdminMode } from \"util/Access\";\n\nclass UserSettingsForm extends Component {\n componentDidMount() {\n clearLocalAlerts();\n fetchUserSettings().catch((error) => {\n addNewLocalErrorAlert(\n \"E-maili teavituste seadmete laadimine ebaõnnestus! \" +\n error.message,\n this.props.location.pathname\n );\n });\n }\n\n handleChange = (key) => (value) => {\n clearLocalAlerts();\n const newUserSettings = {\n ...this.props.userSettings,\n [key]: value,\n };\n updateUserSettings(newUserSettings).catch((error) => {\n clearLocalAlerts();\n addNewLocalErrorAlert(\n this.props.t(\n \"profile.failedLoadingEmailNotifications\",\n \"E-maili teavituste uuendamine ebaõnnestus! \"\n ) + error.message,\n this.props.location.pathname\n );\n });\n };\n\n render() {\n const { t } = this.props;\n if (this.props.userSettingsLoading) {\n return (\n \n \n \n );\n }\n\n const isEmailNotifications = this.props.userSettings.is_email_notification;\n return (\n \n \n {isAdminMode() &&\n \n }\n \n \n \n {isAdminMode() &&\n \n }\n \n \n \n \n \n \n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n user: state.auth.user,\n userSettings: state.profile.userSettings,\n userSettingsLoading: state.profile.userSettingsLoading,\n };\n};\n\nexport default withRouter(\n connect(mapStateToProps)(withTranslation(\"common\")(UserSettingsForm))\n);\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\nimport PropTypes from \"prop-types\";\n\nimport { Row, Col } from \"reactstrap\";\n\nimport { fetchCompanies } from \"util/General\";\nimport { fetchCompanyDetailedInformation } from \"util/BusinessRegister\";\nimport { companyProfileUpdate } from \"redux/actions/profile\";\nimport {\n fetchCompanyProfile,\n updateCompanyProfile,\n fetchRepresentationOptions,\n} from \"util/Profile\";\nimport {\n isConnectedToClientWithPendingOrActiveContract,\n isPartnerMode,\n isAdminMode,\n} from \"util/Access\";\nimport { getServerErrorMessage } from \"util/Errors\";\nimport { clearLocalAlerts, addNewLocalErrorAlert } from \"util/Alerts\";\n// Custom inputs\nimport Input from \"../../../Form/Input\";\nimport Select from \"../../../Form/Select\";\n\nimport CenteredRowCol from \"components/Misc/CenteredRowCol\";\nimport WrapperLoader from \"components/Loader/WrappedLoader\";\nimport { withTranslation } from \"react-i18next\";\n\nclass CompanyProfileForm extends Component {\n static propTypes = {\n alertGroup: PropTypes.string,\n contractMode: PropTypes.bool,\n invalidFields: PropTypes.array.isRequired,\n user: PropTypes.object,\n readOnly: PropTypes.bool,\n };\n\n static defaultProps = {\n contractMode: false,\n invalidFields: [],\n };\n\n state = {\n companies: [],\n disableBasisOption: true,\n };\n\n componentDidMount() {\n fetchCompanyProfile();\n fetchRepresentationOptions();\n }\n\n handleSelectInputChange = (name) => {\n if (name.length > 2) {\n fetchCompanies(name).then((companies) => {\n this.setState({ companies: companies });\n });\n }\n };\n\n getAlertGroupOrDefault = () => {\n return this.props.alertGroup || this.props.location.pathname;\n };\n\n handleCompanyChanged = (company) => {\n if (company.reg_number) {\n fetchCompanyDetailedInformation(company.reg_number).then(\n async (resp) => {\n await this.props.companyProfileUpdate(\"name\", resp.name);\n\n const newBasis = this.updatesBasisDisabledOptionAndReturnNewBasis(\n resp.board_members\n );\n\n // Update kmkr and reg nr only when client does not have active contract\n if (!isConnectedToClientWithPendingOrActiveContract()) {\n await this.props.companyProfileUpdate(\n \"reg_number\",\n resp.reg_code //company.reg_number\n );\n await this.props.companyProfileUpdate(\n \"kmkr\",\n resp.kmkr\n );\n await this.props.companyProfileUpdate(\n \"full_address\",\n resp.address\n );\n await this.props.companyProfileUpdate(\n \"zip_code\",\n resp.zip_code\n );\n await this.props.companyProfileUpdate(\n \"city\",\n resp.county\n );\n await this.props.companyProfileUpdate(\n \"basis\",\n newBasis\n );\n }\n\n if (\n !this.props.contractMode &&\n this.hasAllProperties(this.props.companyProfile)\n ) {\n clearLocalAlerts();\n updateCompanyProfile(this.props.companyProfile).catch(\n (err) => {\n addNewLocalErrorAlert(\n getServerErrorMessage(err),\n this.getAlertGroupOrDefault()\n );\n }\n );\n }\n }\n );\n }\n };\n\n updatesBasisDisabledOptionAndReturnNewBasis = (boardMembers) => {\n if (boardMembers && boardMembers.length) {\n const personalCode = this.props.user\n ? this.props.user.personal_code\n : null;\n const boardMembersPersonalCodes = boardMembers.map(\n (member) => member.ssid\n );\n if (\n personalCode &&\n boardMembersPersonalCodes.includes(personalCode)\n ) {\n this.setState({ disableBasisOption: false });\n return 1;\n }\n }\n\n this.setState({ disableBasisOption: true });\n return 2;\n };\n\n hasAllProperties = (object) => {\n return Object.values(object).every(\n (x) => x !== \"\" && x !== undefined && x !== null\n );\n };\n\n handleBasisChange = async (selectedObject) => {\n const name = \"basis\";\n await this.props.companyProfileUpdate(\n name,\n selectedObject ? selectedObject.value : null\n );\n\n if (\n !this.props.contractMode &&\n this.hasAllProperties(this.props.companyProfile) &&\n !isConnectedToClientWithPendingOrActiveContract()\n ) {\n clearLocalAlerts();\n updateCompanyProfile(this.props.companyProfile).catch((err) => {\n addNewLocalErrorAlert(\n getServerErrorMessage(err),\n this.getAlertGroupOrDefault()\n );\n });\n }\n };\n\n handleInputChange = (name) => async (value) => {\n await this.props.companyProfileUpdate(name, value);\n\n if (\n !this.props.contractMode &&\n this.hasAllProperties(this.props.companyProfile)\n ) {\n clearLocalAlerts();\n updateCompanyProfile(this.props.companyProfile).catch((err) => {\n addNewLocalErrorAlert(\n getServerErrorMessage(err),\n this.getAlertGroupOrDefault()\n );\n });\n }\n };\n\n getBasisLabel = (id) => {\n const basisOptions = this.props.profile.representationOptions || [];\n for (const option of basisOptions) {\n if (option.value === id) {\n return option.label;\n }\n }\n return null;\n };\n\n getBasisValueObject = () => {\n const value = this.props.companyProfile.basis;\n if (!value && value !== 0) {\n return null;\n }\n const label = this.getBasisLabel(value);\n\n return {\n value,\n label,\n };\n };\n\n isFieldsDisabled = () => {\n if (this.props.contractMode || isAdminMode()) {\n return false;\n }\n return (\n !isConnectedToClientWithPendingOrActiveContract() || isPartnerMode()\n );\n };\n\n isInvalid = (field) => {\n return this.props.invalidFields.includes(field);\n };\n\n getIsReadOnly = () => {\n return this.props.readOnly;\n }\n\n renderSelectBasis() {\n const { t } = this.props;\n const basisValue = this.getBasisValueObject();\n //const isDisabled = this.isFieldsDisabled();\n const isNotContractMode = !this.props.contractMode;\n const isReadOnly = this.getIsReadOnly();\n\n return (\n option.label}\n getOptionValue={(option) => option.value}\n placeholder={t(\n \"profile.representationBasis\",\n \"Allkirjaõiguslikkuse alus\"\n )}\n name=\"basis\"\n value={basisValue}\n onChange={this.handleBasisChange}\n className=\"select\"\n required={this.props.contractMode}\n invalid={this.isInvalid(\"basis\")}\n isOptionDisabled={(option) =>\n option.value === 1 && this.state.disableBasisOption === true\n }\n />\n );\n }\n\n render() {\n if (this.props.companyProfileLoading) {\n return (\n \n \n \n );\n }\n\n const { t } = this.props;\n const isDisabled = this.isFieldsDisabled();\n const isReadOnly = this.getIsReadOnly();\n const isNotPartnerMode = !isPartnerMode();\n const isNotContractMode = !this.props.contractMode;\n return (\n \n \n option.name}\n getOptionValue={(option) => option.name}\n onChange={this.handleCompanyChanged}\n onInputChange={this.handleSelectInputChange}\n className=\"select\"\n noOptionsMessage={() =>\n t(\"profile.companyNameNoOptionsMessage\", \"Sisesta vähemalt kolm tähemärki\")\n }\n required={this.props.contractMode}\n invalid={this.isInvalid(\"name\")}\n />\n\n \n {isNotPartnerMode && (\n \n )}\n {this.renderSelectBasis()}\n \n \n \n {isNotPartnerMode && (\n <>\n \n \n \n \n \n )}\n {/*\n {isNotPartnerMode &&\n this.renderSelectBasis()\n }\n */}\n \n \n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n companyProfile: state.profile.companyProfile,\n companyProfileLoading: state.profile.companyProfileLoading,\n clients: state.auth.user ? state.auth.user.clients : [],\n profile: state.profile,\n user: state.auth.user,\n };\n};\n\nexport default withRouter(\n connect(mapStateToProps, { companyProfileUpdate })(\n withTranslation(\"common\")(CompanyProfileForm)\n )\n);\n","import axios from \"../axios\";\nimport {DETAIL} from \"../config/Api\";\n\nexport function fetchCompanyDetailedInformation(regCode) {\n return axios\n .post(DETAIL, {\n reg_code: regCode\n })\n .then(resp => {\n return resp.data\n })\n .catch(err => {\n throw err;\n });\n}","import React, { Component } from \"react\";\nimport axios from \"../../../../axios\"\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\nimport PropTypes from \"prop-types\";\n\nimport { Row, Col, Button, Form, FormGroup, Label } from \"reactstrap\";\n\nimport {\n CLIENT_WARRANT_SHOW,\n ADMIN_CLIENT_WARRANT_SHOW,\n CLIENT_WARRANT_USERS,\n ADMIN_CLIENT_WARRANT_USERS,\n ADMIN_CLIENT_WARRANT_USER,\n ADMIN_CLIENT_WARRANT_USER_FILE_UPLOAD\n} from \"config/Api\";\n\nimport {\n isAdminMode,\n} from \"util/Access\";\nimport { getServerErrorMessage } from \"util/Errors\";\nimport { clearLocalAlerts, addNewLocalErrorAlert } from \"util/Alerts\";\n// Custom inputs\nimport Input from \"components/Form/Input\";\nimport Alerts from \"components/Alerts/Alerts\";\n\nimport CenteredRowCol from \"components/Misc/CenteredRowCol\";\nimport WrapperLoader from \"components/Loader/WrappedLoader\";\nimport SmallLoader from \"components/Loader/WrappedPulseLoader\";\nimport { withTranslation } from \"react-i18next\";\n\n\nclass WarrantedUserForm extends Component {\n static propTypes = {\n clientId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), // Only required if isAdminMode\n alertGroup: PropTypes.string,\n user: PropTypes.object,\n readOnly: PropTypes.bool,\n };\n\n static defaultProps = {\n };\n\n static ALERT_GROUP = \"WarrantedUserFormAlertGroup\";\n\n constructor(props) {\n super(props);\n\n this.state = {\n showComponent: false,\n invalidFields: {},\n hasLoadedOnce: false,\n fetchLoading: false,\n updateLoading: false,\n createLoading: false,\n uploadFileLoading: false,\n warrantedUser: null\n };\n }\n\n componentDidMount() {\n this.fetchShowWarrantComponent();\n }\n\n fetchShowWarrantComponent = () => {\n const { clientId, location } = this.props;\n let endpoint = isAdminMode() ? ADMIN_CLIENT_WARRANT_SHOW : CLIENT_WARRANT_SHOW;\n endpoint = endpoint.replace(\"\", clientId);\n\n clearLocalAlerts();\n return axios\n .get(endpoint)\n .then((resp) => {\n if (resp.data === true) {\n this.setState({ showComponent: true });\n this.fetchClientWarrantedUsers();\n }\n\n })\n .catch((err) => {\n const errorMessage = getServerErrorMessage(err);\n addNewLocalErrorAlert(\n `Volitatud isiku funktsionaalsuse kontroll ebaõnnestus: ${errorMessage}`,\n location.pathname,\n true\n );\n })\n }\n\n fetchClientWarrantedUsers = () => {\n const { clientId } = this.props;\n let endpoint = isAdminMode() ? ADMIN_CLIENT_WARRANT_USERS : CLIENT_WARRANT_USERS;\n endpoint = endpoint.replace(\"\", clientId);\n\n clearLocalAlerts();\n this.setState({ fetchLoading: true });\n return axios\n .get(endpoint)\n .then((resp) => {\n const warrantedUsers = resp.data;\n if (warrantedUsers && warrantedUsers.length > 0) {\n const warrantedUser = warrantedUsers[0];\n this.setState({ warrantedUser });\n }\n\n })\n .catch((err) => {\n const errorMessage = getServerErrorMessage(err);\n addNewLocalErrorAlert(\n `Volitatud isiku laadimine ebaõnnestus: ${errorMessage}`,\n this.getAlertGroupOrDefault(),\n true\n );\n })\n .finally(() => this.setState({ fetchLoading: false, hasLoadedOnce: true }));\n }\n\n createWarrantedUser = () => {\n const { clientId } = this.props;\n if (!isAdminMode()) return;\n const endpoint = ADMIN_CLIENT_WARRANT_USERS.replace(\"\", clientId);\n\n clearLocalAlerts();\n this.setState({ createLoading: true });\n return axios.post(endpoint, {})\n .then((resp) => {\n const warrantedUser = resp.data;\n this.setState({\n warrantedUser\n })\n })\n .catch((err) => {\n const errorMessage = getServerErrorMessage(err);\n addNewLocalErrorAlert(\n `Volitatud isiku loomine ebaõnnestus: ${errorMessage}`,\n this.getAlertGroupOrDefault(),\n true\n );\n })\n .finally(() => this.setState({ createLoading: false }));\n }\n\n deleteWarrantedUser = () => {\n const { clientId } = this.props;\n const { warrantedUser } = this.state;\n const warrantedUserId = warrantedUser?.id;\n\n if (!isAdminMode() || !warrantedUserId) return;\n\n const endpoint = ADMIN_CLIENT_WARRANT_USER.replace(\"\", clientId).replace(\"\", warrantedUserId);\n\n clearLocalAlerts();\n this.setState({ deleteLoading: true, invalidFields: {} });\n return axios.delete(endpoint)\n .then(() => {\n this.setState(() => {\n return {\n warrantedUser: null,\n }\n })\n })\n .catch((err) => {\n const errorMessage = getServerErrorMessage(err);\n const fieldErrors = this.getFieldErrors(err);\n\n if (!fieldErrors) {\n addNewLocalErrorAlert(\n `Volitatud isiku kustutamine ebaõnnestus: ${errorMessage}`,\n this.getAlertGroupOrDefault(),\n true\n );\n }\n\n this.setState(() => {\n return {\n invalidFields: fieldErrors || {}\n }\n })\n })\n .finally(() => this.setState({ deleteLoading: false }));\n }\n\n updateWarrantedUser = (name, value) => {\n const { clientId } = this.props;\n const { warrantedUser } = this.state;\n const warrantedUserId = warrantedUser?.id;\n\n if (!isAdminMode() || !warrantedUserId) return;\n\n const previousUserState = { ...warrantedUser };\n const newUserState = { ...warrantedUser, [name]: value };\n\n const endpoint = ADMIN_CLIENT_WARRANT_USER.replace(\"\", clientId).replace(\"\", warrantedUserId);\n\n clearLocalAlerts();\n this.setState({ updateLoading: true, warrantedUser: newUserState, invalidFields: {} });\n return axios.put(endpoint, newUserState)\n .then((resp) => {\n this.setState(() => {\n return {\n warrantedUser: resp.data,\n }\n })\n })\n .catch((err) => {\n const errorMessage = getServerErrorMessage(err);\n const fieldErrors = this.getFieldErrors(err);\n\n if (!fieldErrors) {\n addNewLocalErrorAlert(\n `Volitatud isiku uuendamine ebaõnnestus: ${errorMessage}`,\n this.getAlertGroupOrDefault(),\n true\n );\n }\n\n this.setState(() => {\n return {\n warrantedUser: previousUserState,\n invalidFields: fieldErrors || {}\n }\n })\n })\n .finally(() => this.setState({ updateLoading: false }));\n }\n\n uploadWarrantFile = file => {\n const { warrantedUser } = this.state;\n const warrantedUserId = warrantedUser?.id;\n\n if (!isAdminMode() || !warrantedUserId) return;\n const endpoint = ADMIN_CLIENT_WARRANT_USER_FILE_UPLOAD.replace(\"\", warrantedUserId);\n const formdata = new FormData();\n formdata.append(\"file\", file);\n\n clearLocalAlerts();\n this.setState({ uploadFileLoading: true, invalidFields: {} });\n return axios.post(endpoint, formdata)\n .then((resp) => {\n this.setState(() => {\n return {\n warrantedUser: resp.data,\n }\n })\n })\n .catch((err) => {\n const errorMessage = getServerErrorMessage(err);\n let fieldErrors = this.getFieldErrors(err);\n\n if (!fieldErrors) {\n addNewLocalErrorAlert(\n `Volituse dokumendi üleslaadimine ebaõnnestus: ${errorMessage}`,\n this.getAlertGroupOrDefault(),\n true\n );\n }\n\n this.setState(() => {\n return {\n invalidFields: fieldErrors || {}\n }\n })\n })\n .finally(() => this.setState({ uploadFileLoading: false }));\n }\n\n getFieldErrors = error => {\n const data = error?.response?.data;\n // If data contains code then it is a BE error not specific to a field.\n if (data && !data.code) {\n return data;\n }\n return null;\n }\n\n onFileUpload = (e) => {\n const file = e.target.files[0];\n if (!file) {\n return;\n }\n\n this.uploadWarrantFile(file);\n }\n\n getAlertGroupOrDefault = () => {\n return this.props.alertGroup || WarrantedUserForm.ALERT_GROUP;\n };\n\n\n hasAllProperties = (object) => {\n return Object.values(object).every(\n (x) => x !== \"\" && x !== undefined && x !== null\n );\n };\n\n\n handleInputChange = (name) => (value) => {\n this.updateWarrantedUser(name, value);\n };\n\n isFieldsDisabled = () => {\n return !isAdminMode() || this.readOnly;\n };\n\n isInvalid = (field) => {\n return field in this.state.invalidFields;\n };\n\n getInvalidText = field => {\n return this.state.invalidFields[field];\n }\n\n create = () => {\n\n }\n\n render() {\n const { t } = this.props;\n const { showComponent, fetchLoading, warrantedUser } = this.state;\n\n if (showComponent === false) {\n return null;\n }\n\n let mainContent = undefined;\n if (fetchLoading) {\n mainContent = (\n \n \n \n );\n } else if (!isAdminMode()) {\n mainContent = this.renderClientMode();\n } else if (!warrantedUser?.id) {\n mainContent = this.renderCreateWarrantedUserButton();\n } else {\n mainContent = this.renderWarrantedUserForm();\n }\n\n return (\n <>\n
\n {t(\"profile.warrantedUser.title\", \"Volitatud isik\")}\n
\n \n {mainContent}\n \n )\n }\n\n renderClientMode() {\n const { t } = this.props;\n const { warrantedUser } = this.state;\n\n if (!warrantedUser?.id) {\n return (\n \n

\n {t(\"profile.warrantedUser.noWarrantedUserText\", \"Volitatud isik puudub\")}\n

\n
\n )\n }\n\n return this.renderWarrantedUserForm();\n }\n\n renderCreateWarrantedUserButton() {\n const { t } = this.props;\n const { createLoading } = this.state;\n\n return (\n \n \n \n )\n }\n\n renderWarrantedUserForm() {\n const { t } = this.props;\n const { invalidFields, deleteLoading, uploadFileLoading } = this.state;\n //const isDisabled = this.isFieldsDisabled();\n const isDisabled = this.isFieldsDisabled();\n const isRequired = false;\n const warrantedUser = this.state.warrantedUser\n\n return (\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {t(\"profile.warrantedUser.warrantFileLabel\", \"Volituse fail\")}\n \n \n \n {warrantedUser.document ?\n \n {t(\"profile.warrantedUser.documentName\", \"Dokument\")}\n \n :\n \n }\n \n {\n isAdminMode() &&\n \n document.getElementById('warrant-file-upload-input-field').click()}\n >\n {uploadFileLoading ? : warrantedUser.document ? t(\"profile.warrantedUser.changeFileButtonText\", \"Muuda faili\") : t(\"profile.warrantedUser.addFileButtonText\", \"Lisa fail\")}\n \n \n \n }\n \n \n \n {\n isAdminMode() &&\n \n \n \n }\n \n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n user: state.auth.user,\n };\n};\n\nexport default withRouter(\n connect(mapStateToProps, {})(\n withTranslation(\"common\")(WarrantedUserForm)\n )\n);\n","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Card, CardBody, Form, Row, Col } from \"reactstrap\";\nimport \"./Profile.scss\";\nimport PersonalProfileForm from \"./PersonalProfileForm/PersonalProfileForm\";\nimport UserSettingsForm from \"./UserSettingsForm/UserSettingsForm\";\nimport CompanyProfileForm from \"./CompanyProfileForm/CompanyProfileForm\";\nimport WarrantedUserForm from \"components/Profile/Profile/WarrantedUserForm/WarrantedUserForm\";\n\nimport { isClientMode, isUserClientAdmin, isAdminMode } from \"util/Access\";\n\nimport CheckboxButton from \"components/Form/CheckboxButton/CheckboxButton\";\nimport { withTranslation } from \"react-i18next\";\n\nclass Profile extends React.Component {\n render() {\n const { t } = this.props;\n return (\n \n \n \n \n \n {t(\"profile.personalData\", \"Isiklikud andmed\")}\n \n \n \n {this.props.userRole && (\n \n )}\n \n \n
\n \n \n {(isClientMode() || isAdminMode()) && (\n <>\n
\n
\n \n {t(\n \"profile.emailNotifications\",\n \"E-maili teavitused\"\n )}\n \n
\n
\n \n \n \n )}\n {isClientMode() && (\n <>\n
\n
\n \n {t(\n \"profile.businessData\",\n \"Äriregistri andmed\"\n )}\n \n
\n
\n \n \n \n )}\n {isClientMode() &&\n \n }\n\n
\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n userRole:\n state.profile &&\n state.profile.userSettings &&\n state.profile.userSettings.role,\n };\n};\n\nexport default connect(mapStateToProps)(withTranslation(\"common\")(Profile));\n","import React, {Component} from 'react';\nimport {Route} from \"react-router-dom\";\n\n// routes\nimport {withRouter} from \"react-router\";\n\n\nclass RouteWithSubRoutes extends Component {\n\n render() {\n // A special wrapper for that knows how to\n // handle \"sub\"-routes by passing them in a `routes`\n // prop to the component it renders.\n function RouteWithSubRoutes(route) {\n return (\n (\n // pass the sub-routes down to keep nesting\n \n )}\n />\n );\n }\n\n return (\n <>\n {this.props.routes.map((route, i) => (\n \n ))}\n \n );\n }\n}\n\nexport default withRouter(RouteWithSubRoutes);","import React, { Component } from \"react\";\nimport { withRouter } from \"react-router\";\nimport { NavLink } from \"react-router-dom\";\nimport _ from \"lodash\";\nimport {\n Form,\n Button,\n Modal,\n ModalHeader,\n ModalBody,\n CardHeader,\n Row,\n Col,\n CardBody,\n Card,\n FormGroup,\n CardFooter,\n} from \"reactstrap\";\n\nimport Input from \"../../Form/Input\";\nimport Select from \"../../Form/Select\";\n\nimport BootstrapTable from \"react-bootstrap-table-next\";\n\nimport { ReactComponent as DeleteIcon } from \"assets/icons/delete-row.svg\";\nimport WrappedLoader from \"components/Loader/WrappedLoader\";\nimport LoadingAnimation from \"components/Loader/WrappedPulseLoader\";\nimport ConfirmationModal from \"components/Form/Modals/ConfirmationModal\";\nimport Alert from \"components/Alerts/Alert/Alert\";\n\nimport \"./AddPackageModal.scss\";\nimport { connect } from \"react-redux\";\nimport {\n addNewPackage,\n fetchPackageVolume,\n fetchPendingApplication,\n removePackage,\n submitAddPackageApplication,\n ADD_PACKAGE_ALERT_GROUP,\n} from \"util/Packages\";\nimport urls from \"config/urls\";\n\nimport Alerts from \"components/Alerts/Alerts\";\nimport {\n clearLocalAlerts,\n addNewLocalSuccessAlert,\n addNewLocalErrorAlert,\n alertType,\n} from \"util/Alerts\";\nimport { getServerErrorMessage, getErrorMessageList } from \"util/Errors\";\nimport { currencyFormatter, isNumeric } from \"util/General\";\nimport { withTranslation, Trans } from \"react-i18next\";\n\nclass AddPackageModal extends Component {\n static addPackageInputFields = [\"ean\", \"packageName\", \"packageWeight\"];\n static addPackageSelectFields = [\n \"eanType\",\n \"packageCategory\",\n \"packageVolume\",\n \"packageColor\",\n \"packageType\",\n ];\n static ONLY_COLORLESS_PACKAGE_TYPE_IDS = [3, 4];\n static COLOR_COLORLESS_ID = 1;\n static INTERNATIONAL_EAN_TYPE_ID = 2;\n\n constructor(props) {\n super(props);\n this.state = {\n modal: true,\n pendingApplication: [],\n pendingApplicationLoading: [],\n packagesList: [],\n packageVolumes: [],\n ean: \"\",\n eanType: this.getDefaultEanType(),\n packageWeight: \"\",\n packageCategory: null,\n packageVolume: null,\n packageColor: null,\n packageName: \"\",\n addPackageLoading: false,\n isConfirmApplicationOpen: false,\n submitApplicationLoading: false,\n invalidFields: [],\n validatedOnce: false,\n };\n }\n\n componentDidMount() {\n clearLocalAlerts();\n this.setState({ pendingApplicationLoading: true });\n fetchPendingApplication()\n .then((application) => {\n this.setState({\n pendingApplication: application,\n pendingApplicationLoading: false,\n });\n })\n .catch((err) => {\n this.setState({ pendingApplicationLoading: false });\n addNewLocalErrorAlert(\n getServerErrorMessage(err),\n ADD_PACKAGE_ALERT_GROUP\n );\n });\n }\n\n componentDidUpdate(prevProps, prevState) {\n if (this.state.validatedOnce) {\n let addPackageFieldsChanged = false;\n const addPackageFields = [\n ...AddPackageModal.addPackageInputFields,\n ...AddPackageModal.addPackageSelectFields,\n ];\n for (const field of addPackageFields) {\n if (prevState[field] !== this.state[field]) {\n addPackageFieldsChanged = true;\n break;\n }\n }\n if (addPackageFieldsChanged) {\n this.validateAddPackage();\n }\n }\n\n this.checkIfPackageVolumeValidOption(prevState);\n this.checkIfPackageColorValidOption(prevState);\n this.checkIfEanTypeNeedsDefaultValue(prevProps);\n }\n\n toggle = () =>\n this.setState(\n { modal: !this.state.modal },\n this.props.history.push(urls.PACKAGES)\n );\n\n handleChange = (name) => (value) => {\n this.setState({ [name]: value });\n };\n\n handleSelectChange = (name) => (selectedObject) => {\n this.setState(\n {\n [name]: selectedObject,\n },\n () => {\n // Update volume options when package type is selected\n if (name === \"packageType\") {\n //clearLocalAlerts();\n fetchPackageVolume(selectedObject.id)\n .then((packageVolumes) => {\n this.setState({\n packageVolumes: packageVolumes,\n });\n })\n .catch((err) => {\n addNewLocalErrorAlert(\n err.message,\n ADD_PACKAGE_ALERT_GROUP\n );\n });\n }\n }\n );\n };\n\n getDefaultEanType = () => {\n const { eanTypes } = this.props;\n if (!eanTypes) return null;\n\n return eanTypes.find(type => type.id === AddPackageModal.INTERNATIONAL_EAN_TYPE_ID) || null;\n }\n\n checkIfEanTypeNeedsDefaultValue = (prevProps) => {\n const { eanTypes } = this.props;\n const currentEanType = this.state.eanType;\n\n if (!eanTypes || eanTypes === prevProps.eanTypes) return;\n if (![null, undefined, AddPackageModal.INTERNATIONAL_EAN_TYPE_ID].includes(currentEanType?.id)) return;\n\n const defaultEanType = this.getDefaultEanType();\n if (!defaultEanType) return;\n\n this.setState({ eanType: defaultEanType });\n }\n\n checkIfPackageVolumeValidOption = (prevState) => {\n if (\n !this.state.packageVolume ||\n prevState.packageVolumes === this.state.packageVolumes\n ) {\n return;\n }\n\n const selectedVolumeId = this.state.packageVolume.id;\n\n if (this.state.packageVolumes || this.state.packageVolumes.length > 0) {\n for (const option of this.state.packageVolumes) {\n if (option.id === selectedVolumeId) {\n return;\n }\n }\n }\n\n this.setState({ packageVolume: null });\n };\n\n checkIfPackageColorValidOption(prevState) {\n const packageColor = this.state.packageColor;\n if (!packageColor || prevState.packageType === this.state.packageType) {\n return;\n }\n\n if (this.isColorOptionDisabled(packageColor)) {\n let newPackageColor = null;\n if (packageColor.id !== AddPackageModal.COLOR_COLORLESS_ID) {\n newPackageColor = this.getColorOptionById(AddPackageModal.COLOR_COLORLESS_ID);\n }\n\n this.setState({\n packageColor: newPackageColor,\n });\n }\n }\n\n getColorOptionById = (id) => {\n const colorOptions = this.props.packageColors || [];\n\n for (const option of colorOptions) {\n if (option.id === id) {\n return option;\n }\n }\n\n return null;\n };\n\n isColorOptionDisabled = (option) => {\n const packageType = this.state.packageType;\n if (!packageType) {\n return false;\n }\n const onlyColorlessValid = AddPackageModal.ONLY_COLORLESS_PACKAGE_TYPE_IDS.includes(\n packageType.id\n );\n\n if (onlyColorlessValid) {\n return option.id !== AddPackageModal.COLOR_COLORLESS_ID;\n } else {\n return option.id === AddPackageModal.COLOR_COLORLESS_ID;\n }\n };\n\n validateAddPackage = (clearPreviousAlerts = true) => {\n if (clearPreviousAlerts) {\n clearLocalAlerts();\n }\n const inputFields = AddPackageModal.addPackageInputFields;\n const selectFields = AddPackageModal.addPackageSelectFields;\n const invalidFields = [];\n\n for (const field of inputFields) {\n if (!this.state[field]) {\n invalidFields.push(field);\n }\n }\n for (const field of selectFields) {\n if (!this.state[field] || !this.state[field].id) {\n invalidFields.push(field);\n }\n }\n\n // If package weight has value, make sure it is numeric.\n if (!invalidFields.includes(\"packageWeight\")) {\n if (!isNumeric(this.state[\"packageWeight\"])) {\n invalidFields.push(\"packageWeight\");\n addNewLocalErrorAlert(\n this.props.t(\"packages.addPackageModal.alert.weightNumericValidationText\", \"Pakendi kaal peab olema number.\"),\n ADD_PACKAGE_ALERT_GROUP\n );\n }\n }\n\n this.setState({\n invalidFields,\n validatedOnce: true,\n });\n\n if (invalidFields.length === 0) {\n return true;\n } else {\n addNewLocalErrorAlert(\n this.props.t(\"packages.addPackageModal.alert.genericValidationText\", \"Kõik punasega märgitud väljad peavad olema täidetud.\"),\n ADD_PACKAGE_ALERT_GROUP\n );\n return false;\n }\n\n //return invalidFields.length === 0;\n };\n\n isInvalid = (field) => {\n return this.state.invalidFields.includes(field);\n };\n\n addPackage = () => {\n clearLocalAlerts();\n if (!this.validateAddPackage()) {\n return;\n }\n this.setState({ addPackageLoading: true });\n addNewPackage(\n this.props.activeClientId,\n this.state.ean,\n this.state.eanType.id,\n this.state.packageCategory.id,\n this.state.packageType.id,\n this.state.packageVolume.id,\n this.state.packageWeight,\n this.state.packageColor.id,\n this.state.packageName\n )\n .then(() => {\n // Update pending packages list\n this.clearFormFields();\n this.setState({\n pendingApplicationLoading: true,\n addPackageLoading: false,\n });\n fetchPendingApplication()\n .then((application) => {\n this.setState({\n pendingApplication: application,\n pendingApplicationLoading: false,\n });\n })\n .then(() => {\n // Update packageList in store\n //fetchPackagesList(this.props.activeClientId);\n });\n })\n .catch((err) => {\n this.setState({\n pendingApplicationLoading: false,\n addPackageLoading: false,\n });\n addNewLocalErrorAlert(\n getServerErrorMessage(err),\n ADD_PACKAGE_ALERT_GROUP\n );\n });\n };\n\n clearFormFields = () => {\n this.setState({\n ean: \"\",\n eanType: this.getDefaultEanType(),\n packageType: null,\n packageWeight: \"\",\n packageCategory: null,\n packageVolume: null,\n packageColor: null,\n packageName: \"\",\n invalidFields: [],\n validatedOnce: false,\n });\n };\n\n onRemovePackage = (packageId) => {\n clearLocalAlerts();\n removePackage(packageId)\n .then(() => {\n // Remove package from database\n this.setState({ pendingApplicationLoading: true });\n fetchPendingApplication().then((application) => {\n this.setState({\n pendingApplication: application,\n pendingApplicationLoading: false,\n });\n });\n })\n .catch((err) => {\n this.setState({ pendingApplicationLoading: true });\n addNewLocalErrorAlert(\n getServerErrorMessage(err),\n ADD_PACKAGE_ALERT_GROUP\n );\n });\n };\n\n submitPackageApplication = (errorAlertGroup) => {\n errorAlertGroup = ADD_PACKAGE_ALERT_GROUP; // errorAlertGroup || ADD_PACKAGE_ALERT_GROUP;\n clearLocalAlerts();\n const { t } = this.props;\n let content = (\n
\n {t(\"packages.addPackageModal.alert.submitApplicationSuccess.text\", \"Taotlus edukalt esitatud! Palun tasuge loodud arve 5 päeva jooksul.\")}\n \n {t(\"packages.addPackageModal.alert.submitApplicationSuccess.redirectToInvoicesButton\", \"Arvet tasuma\")}\n \n
\n );\n\n this.setState({ submitApplicationLoading: true });\n submitAddPackageApplication(\n this.state.pendingApplication.map((pendingPackage) => {\n return pendingPackage.id;\n })\n )\n .then((resp) => {\n clearLocalAlerts();\n\n if (resp.failed_products && resp.failed_products.length > 0) {\n if (resp.failed_products.length < this.state.pendingApplication.length) {\n const someSuccessContent = (\n
\n {t(\"packages.addPackageModal.alert.submitApplicationPartialSuccess.text\", \"Taotlus loodi osade pakenditega! Palun tasuge loodud arve 5 päeva jooksul.\")}\n \n {t(\"packages.addPackageModal.alert.submitApplicationPartialSuccess.redirectToInvoicesButton\", \"Arvet tasuma\")}\n \n
\n );\n addNewLocalSuccessAlert(someSuccessContent, errorAlertGroup, false);\n }\n // const allProductsFailed = resp.failed_products.length === this.state.pendingApplication.length;\n const topText = t(\"packages.addPackageModal.alert.submitApplicationFailure.textBeforeList\", \"Osad pakendid jäid registreerimata järgnevatel põhjustel:\");\n const errorMessage = getErrorMessageList(\n resp.failed_products,\n (fp) => `EAN: ${fp.ean} - ${fp.response || \"\"}`,\n topText\n );\n addNewLocalErrorAlert(\n errorMessage,\n errorAlertGroup\n );\n\n const failedIds = resp.failed_products.map((fp) => fp.id);\n this.setState((prevState) => {\n return {\n pendingApplication: prevState.pendingApplication.filter(\n (application) =>\n failedIds.includes(application.id)\n ),\n submitApplicationLoading: false,\n isConfirmApplicationOpen: false,\n };\n });\n } else {\n addNewLocalSuccessAlert(content, urls.PACKAGES, false);\n this.toggle();\n }\n })\n .catch((err) => {\n clearLocalAlerts();\n\n this.setState({ submitApplicationLoading: false, isConfirmApplicationOpen: false });\n addNewLocalErrorAlert(\n getServerErrorMessage(err),\n errorAlertGroup\n );\n });\n };\n\n render() {\n const { t } = this.props;\n return (\n
\n \n \n {t(\"packages.addPackageTitle\", \"Toote lisamine\")}\n \n \n \n \n \n {this.renderInvoiceInfoAlert()}\n {this.renderForm()}\n \n \n {this.renderTable()}\n \n \n {this.renderConfirmApplicationModal()}\n \n \n \n \n
\n );\n }\n\n renderForm() {\n const { t } = this.props;\n return (\n
\n \n \n \n \n \n \n option.value\n }\n getOptionValue={(option) =>\n option.value\n }\n onChange={this.handleSelectChange(\n \"eanType\"\n )}\n required\n invalid={this.isInvalid(\n \"eanType\"\n )}\n />\n \n \n \n \n \n option.value}\n getOptionValue={(\n option\n ) => option.value}\n onChange={this.handleSelectChange(\n \"packageType\"\n )}\n required\n invalid={this.isInvalid(\n \"packageType\"\n )}\n />\n \n \n \n option.value +\n \"cl\"\n }\n getOptionValue={(\n option\n ) => option.value}\n onChange={this.handleSelectChange(\n \"packageVolume\"\n )}\n required\n invalid={this.isInvalid(\n \"packageVolume\"\n )}\n />\n \n \n option.value}\n getOptionValue={(\n option\n ) => option.value}\n isOptionDisabled={(\n option\n ) =>\n this.isColorOptionDisabled(\n option\n )\n }\n onChange={this.handleSelectChange(\n \"packageColor\"\n )}\n required\n invalid={this.isInvalid(\n \"packageColor\"\n )}\n />\n \n \n \n option.description\n }\n getOptionValue={(\n option\n ) => option.value}\n onChange={this.handleSelectChange(\n \"packageCategory\"\n )}\n required\n invalid={this.isInvalid(\n \"packageCategory\"\n )}\n />\n \n \n \n \n \n \n { e.preventDefault(); this.addPackage(); }}\n color=\"success\"\n className=\"add-package-btn\"\n disabled={\n this.state\n .addPackageLoading\n }\n >\n {this.state\n .addPackageLoading ? (\n \n ) : (\n t(\n \"packages.add\",\n \"Lisa\"\n )\n )}\n \n \n \n \n
\n )\n }\n\n renderTable() {\n const { t } = this.props;\n if (this.state.pendingApplicationLoading) {\n return ;\n }\n\n const renderDeleteIcon = (packageId, row) => {\n return (\n
\n this.onRemovePackage(packageId)}\n />\n
\n );\n };\n\n const columns = [\n {\n dataField: \"EAN\",\n text: t(\"packages.filter.ean\", \"EAN\"),\n },\n {\n dataField: \"EAN_type\",\n text: t(\"packages.filter.eanType\", \"EAN tüüp\"),\n },\n {\n dataField: \"name\",\n text: t(\"packages.filter.productName\", \"Toote nimetus\"),\n },\n {\n dataField: \"package_category\",\n text: t(\"packages.filter.category\", \"Toote kategooria\"),\n },\n {\n dataField: \"package_type\",\n text: t(\"packages.filter.type\", \"Pakendi tüüp\"),\n },\n {\n dataField: \"volume\",\n text: t(\"packages.filter.volume\", \"Maht\"),\n headerStyle: (column, colIndex) => {\n return { width: \"70px\" };\n },\n },\n {\n dataField: \"weight\",\n text: t(\"packages.filter.weight\", \"Kaal\"),\n headerStyle: (column, colIndex) => {\n return { width: \"70px\" };\n },\n },\n {\n dataField: \"color\",\n text: t(\"packages.color\", \"Värv\"),\n },\n {\n dataField: \"id\",\n text: \"\",\n formatter: renderDeleteIcon,\n headerStyle: (column, colIndex) => {\n return { width: \"60px\" };\n },\n },\n ];\n\n return (\n \n }\n // pagination={paginationFactory()}\n />\n );\n }\n\n renderInvoiceInfoAlert() {\n const { t } = this.props;\n let type = alertType.INFO_ICON;\n let content = (\n
\n {t(\"packages.addPackageModal.invoiceAlertText\", \"Taotluse esitamise kinnitamisel esitatakse arve ning ühe pakendi registreerimistasu on 52 € + KM.\")}\n
\n );\n\n return (\n \n \n \n \n \n );\n }\n\n renderConfirmApplicationModal() {\n const { t } = this.props;\n let alertGroup = \"confirmApplicationModalAlertGroup\";\n\n const onToggle = () => {\n clearLocalAlerts();\n this.setState(prevState => { return { isConfirmApplicationOpen: !prevState.isConfirmApplicationOpen } });\n };\n let onConfirmFunc = () => {\n this.submitPackageApplication(alertGroup);\n };\n\n const packageCount = this.state.pendingApplication.length;\n const costPerApplication = 52;\n let invoiceSum = _.round((packageCount * costPerApplication), 2);\n const formattedInvoiceSum = currencyFormatter.format(invoiceSum);\n let content = (\n
\n

{t(\"packages.addPackageModal.submitApplicationConfirmationModal.questionText\", \"Kas olete veendunud esitatud andmete õigsuses ja soovite esitada taotluse?\")}

\n

\n \n {{ packageCount: packageCount }} pakendi taotluse esitamise registreerimistasu on {{ sum: formattedInvoiceSum }} + KM.\n \n

\n

\n

\n
\n );\n\n return (\n <>\n \n {\n t(\n \"packages.submitPackagesApplication\",\n \"Esita pakendi(te) taotlus\"\n )\n }\n \n \n {content}\n\n \n \n );\n }\n\n static NoDataIndication(props) {\n let content = props.t(\"packages.addPackageModal.tableNoPackages\", \"Ei leitud ühtegi esitamat pakendit.\");\n if (props.loading) {\n content = ;\n }\n\n return
{content}
;\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n user: state.auth.user,\n activeClientId: state.auth.user\n ? state.auth.user.active_client_id\n : null,\n eanTypes: state.packages.eanTypes,\n categories: state.packages.categories,\n packageTypes: state.packages.packageTypes,\n packageVolumes: state.packages.packageVolumes,\n packageColors: state.packages.packageColors,\n error: state.packages.error,\n };\n};\n\nexport default withRouter(\n connect(mapStateToProps)(withTranslation(\"common\")(AddPackageModal))\n);\n","var _path;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nconst SvgArrowDown = _ref => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6 9L11.9293 14.9293C11.9683 14.9683 12.0317 14.9683 12.0707 14.9293L18 9\",\n stroke: \"#9FA2B4\",\n strokeWidth: 2,\n strokeLinecap: \"round\"\n })));\n};\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgArrowDown, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/arrow-down.377027ce.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nconst SvgArrowUp = _ref => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6 15L11.9293 9.07071C11.9683 9.03166 12.0317 9.03166 12.0707 9.07071L18 15\",\n stroke: \"#9FA2B4\",\n strokeWidth: 2,\n strokeLinecap: \"round\"\n })));\n};\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgArrowUp, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/arrow-up.b38d44d5.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useState } from \"react\";\nimport { Row, Col, Collapse } from \"reactstrap\";\nimport { Translation } from \"react-i18next\";\n\nimport \"../ContractModal.scss\";\nimport { ReactComponent as ArrowDown } from \"../../../assets/icons/arrow-down.svg\";\nimport { ReactComponent as ArrowUp } from \"../../../assets/icons/arrow-up.svg\";\nimport PersonalProfileForm from \"../../Profile/Profile/PersonalProfileForm/PersonalProfileForm\";\nimport { SIGNING_ALERT_GROUP } from \"util/Auth\";\n\n\nfunction PersonalCollapse(props) {\n const [collapse, setCollapse] = useState(true);\n const toggle = () => setCollapse(!collapse);\n\n return (\n \n \n \n \n {t => t(\"contractModal.personalInfoFormHeader\", \"Isikuandmed\")}\n {collapse ? : }\n \n \n \n \n \n \n \n )\n}\n\nexport default PersonalCollapse;\n","import React, { useState } from \"react\";\nimport { Translation } from \"react-i18next\";\n\nimport { Row, Col, Collapse } from \"reactstrap\";\nimport { ReactComponent as ArrowDown } from \"../../../assets/icons/arrow-down.svg\";\nimport { ReactComponent as ArrowUp } from \"../../../assets/icons/arrow-up.svg\";\nimport CompanyProfileForm from \"components/Profile/Profile/CompanyProfileForm/CompanyProfileForm\";\nimport { SIGNING_ALERT_GROUP } from \"util/Auth\";\nimport \"../ContractModal.scss\";\n\n\nfunction CompanyCollapse(props) {\n const [collapse, setCollapse] = useState(true);\n const toggle = () => setCollapse(!collapse);\n\n return (\n \n \n \n \n {t => t(\"contractModal.companyInfoFormHeader\", \"Äriregistri andmed\")}\n {collapse ? :\n }\n \n \n \n \n \n \n \n )\n}\n\nexport default CompanyCollapse;\n","// From https://github.com/thorgate/esteid-helper/blob/master/IdentificationManager.js\nexport const LANGUAGE_ET = 'EST';\nexport const LANGUAGE_EN = 'ENG';\nexport const LANGUAGE_RU = 'RUS';\nexport const LANGUAGE_LT = 'LIT';\n\nconst LANGUAGES = [\n LANGUAGE_ET,\n LANGUAGE_EN,\n LANGUAGE_RU,\n LANGUAGE_LT\n];\n\nlet errorMessages = {\n user_cancel: {\n [LANGUAGE_ET]: 'Allkirjastamine katkestati',\n [LANGUAGE_EN]: 'Signing was cancelled',\n [LANGUAGE_LT]: 'Pasirašymas nutrauktas',\n [LANGUAGE_RU]: 'Подпись была отменена'\n },\n\n no_certificates: {\n [LANGUAGE_ET]: 'Sertifikaate ei leitud',\n [LANGUAGE_EN]: 'Certificate not found',\n [LANGUAGE_LT]: 'Nerastas sertifikatas',\n [LANGUAGE_RU]: 'Сертификат не найден'\n },\n\n invalid_argument: {\n [LANGUAGE_ET]: 'Vigane sertifikaadi identifikaator',\n [LANGUAGE_EN]: 'Invalid certificate identifier',\n [LANGUAGE_LT]: 'Neteisingas sertifikato identifikatorius',\n [LANGUAGE_RU]: 'Неверный идентификатор сертификата',\n },\n\n no_implementation: {\n [LANGUAGE_ET]: 'Vajalik tarkvara on puudu',\n [LANGUAGE_EN]: 'Unable to find software',\n [LANGUAGE_LT]: 'Nerasta programinės įranga',\n [LANGUAGE_RU]: 'Отсутствует необходимое программное обеспечение'\n },\n\n technical_error: {\n [LANGUAGE_ET]: 'Tehniline viga',\n [LANGUAGE_EN]: 'Technical error',\n [LANGUAGE_LT]: 'Techninė klaida',\n [LANGUAGE_RU]: 'Техническая ошибка'\n },\n\n not_allowed: {\n [LANGUAGE_ET]: 'Veebis allkirjastamise käivitamine on võimalik vaid https aadressilt',\n [LANGUAGE_EN]: 'Web signing is allowed only from https:// URL',\n [LANGUAGE_LT]: 'Web signing is allowed only from https:// URL',\n [LANGUAGE_RU]: 'Подпись в интернете возможна только с URL-ов, начинающихся с https://'\n },\n};\n\n\nclass IdCardManager {\n constructor(language) {\n this.language = language || LANGUAGE_ET;\n\n this._cert = null;\n }\n\n initializeIdCard() {\n return new Promise(function (resolve, reject) {\n if (window.hwcrypto.use(\"auto\")) {\n resolve();\n }\n\n else {\n reject(\"Backend selection failed\");\n }\n });\n }\n\n getCertificate() {\n return new Promise((resolve, reject) => {\n let lParam = {lang: this.language};\n\n window.hwcrypto.getCertificate(lParam).then((rCert) => {\n this._cert = rCert;\n resolve();\n },\n\n (err) => {\n reject(err);\n });\n });\n }\n\n getAuthCertificate() {\n return new Promise((resolve, reject) => {\n let params = {\n lang: this.language,\n filter: \"AUTH\",\n };\n\n window.hwcrypto.getCertificate(params).then((rCert) => {\n this._cert = rCert;\n resolve();\n },\n\n (err) => {\n reject(err);\n });\n });\n }\n\n signHexData(hexData) {\n return new Promise((resolve, reject) => {\n let lParam = {lang: this.language};\n\n window.hwcrypto.sign(this._cert, {type: 'SHA-256', hex: hexData}, lParam)\n .then((response) => {\n this._signature = response;\n resolve();\n\n }, (err) => {\n reject(err);\n });\n });\n }\n\n getCertFromManager(){\n return this._cert;\n }\n\n signWithIdCard(signatureId, signatureDigest) {\n this.idCardManager.signHexData(signatureDigest).then(() => {\n let finalizeData = this.idCardManager.finalizeSignatureData;\n return finalizeData\n });\n }\n\n /* Sig data */\n\n get prepareSignatureData() {\n return {\n tokenId: null,\n certData: this._cert.hex\n };\n }\n\n get finalizeSignatureData() {\n return {\n tokenId: null,\n signature: this._signature.hex\n };\n }\n\n /* Language */\n\n get language() {\n return this._language;\n }\n\n set language(l) {\n if (LANGUAGES.indexOf(l) !== -1) {\n this._language = l;\n }\n }\n\n /* Errors */\n getError(err) {\n if (typeof errorMessages[err] !== \"undefined\") {\n return {error_code: err, message: errorMessages[err][this.language]};\n }\n\n else {\n return {error_code: 'technical_error', message: errorMessages.technical_error[this.language]};\n }\n }\n}\n\nexport default IdCardManager;","import axios from '../../axios';\n\nimport {\n idCardAuth,\n idCardAuthVerify,\n signIdCard,\n digitalSignStatus,\n signAdminIdCard,\n} from \"util/Auth\";\nimport IdCardManager from \"../signing/IdCardManager\";\n\nconst axiosFormConfig = {\n headers: {\n //'Content-Type': 'application/x-www-form-urlencoded'\n }\n};\n\n\nexport default class Dokobit {\n constructor(kwargs) {\n const data = {\n language: null,\n\n idEndpoints: {\n auth: null,\n sign: null,\n digitalSignStatus: null\n },\n\n mobileidEndpoints: {\n auth: null,\n sign: null,\n digitalAuthStatus: null,\n digitalSignStatus: null\n },\n\n smartidEndpoints: {\n auth: null,\n sign: null,\n digitalAuthStatus: null,\n digitalSignStatus: null\n },\n\n ...kwargs\n };\n\n // construct the idCardManager\n this.idCardManager = new IdCardManager(\"EST\");\n\n this.idEndpoints = data.idEndpoints;\n this.mobileidEndpoints = data.midEndpoints;\n this.smartidEndpoints = data.smartidEndpoints;\n }\n\n authWithIdCard(resolve, reject) {\n // This is deprecated, now using dokobit server side auth in LoginCard component.\n this.idCardManager.initializeIdCard().then(() => {\n this.idCardManager.getAuthCertificate().then(() => {\n const certificate = this.idCardManager.getCertFromManager();\n // Convert cert to format dokobit expects - base64 encoded PEM cert\n const convertedCert = btoa(unescape(encodeURIComponent(Uint8ToBase64(certificate.encoded)))); \n\n idCardAuth(convertedCert)\n .then(response => {\n if (!response.success) {\n throw Error(\"login_prepare_not_success\");\n }\n\n const token = response.token;\n const dtbs_hash = response.dtbs_hash;\n const userJson = response.user_json;\n \n this.idCardManager.signHexData(dtbs_hash)\n .then((signature) => {\n const finalizeData = this.idCardManager.finalizeSignatureData;\n const convertedSignature = hexToBase64(finalizeData.signature);\n \n idCardAuthVerify(token, convertedSignature, userJson)\n .then(response => {\n if (!response.success) {\n throw Error(\"login_verify_not_success\");\n }\n \n resolve(response);\n })\n .catch(error=> {\n reject(error);\n })\n })\n .catch(error => reject(error));\n })\n .catch(error => reject(error));\n })\n .catch(error => reject(error));\n })\n .catch(error => reject(error));\n }\n\n signWithIdCard(personalCode, resolve, reject) {\n this.idCardManager.initializeIdCard().then(() => {\n this.idCardManager.getCertificate().then(() => {\n const certificate = this.idCardManager.getCertFromManager();\n // Convert cert to format dokobit expects - base64 encoded PEM cert\n const convertedCert = btoa(unescape(encodeURIComponent(Uint8ToBase64(certificate.encoded)))); \n signIdCard(personalCode, convertedCert)\n .then(response => {\n if (!response.success) {\n throw Error(\"sign_prepare_not_success\");\n }\n\n const token = response.token;\n const dtbs_hash = response.dtbs_hash;\n \n this.idCardManager.signHexData(dtbs_hash)\n .then((signature) => {\n const finalizeData = this.idCardManager.finalizeSignatureData;\n const convertedSignature = hexToBase64(finalizeData.signature);\n\n digitalSignStatus(token, \"id_card\", convertedSignature)\n .then(response => {\n if (!response.success) {\n throw Error(\"sign_verify_not_success\");\n }\n resolve(response);\n })\n .catch(error=> {\n reject(error);\n })\n })\n .catch(error => reject(error));\n })\n .catch(error => reject(error));\n })\n .catch(error => reject(error));\n })\n .catch(error => reject(error));\n }\n\n signAdminWithIdCard(personalCode, resolve, reject, contractId) {\n this.idCardManager.initializeIdCard().then(() => {\n this.idCardManager.getCertificate().then(() => {\n const certificate = this.idCardManager.getCertFromManager();\n // Convert cert to format dokobit expects - base64 encoded PEM cert\n const convertedCert = btoa(unescape(encodeURIComponent(Uint8ToBase64(certificate.encoded)))); \n signAdminIdCard(personalCode, convertedCert, contractId)\n .then(response => {\n if (!response.success) {\n throw Error(\"sign_prepare_not_success\");\n }\n\n const token = response.token;\n const dtbs_hash = response.dtbs_hash;\n \n this.idCardManager.signHexData(dtbs_hash)\n .then((signature) => {\n const finalizeData = this.idCardManager.finalizeSignatureData;\n const convertedSignature = hexToBase64(finalizeData.signature);\n\n digitalSignStatus(token, \"id_card\", convertedSignature, contractId)\n .then(response => {\n if (!response.success) {\n throw Error(\"sign_verify_not_success\");\n }\n resolve(response);\n })\n .catch(error=> {\n reject(error);\n })\n })\n .catch(error => reject(error));\n })\n .catch(error => reject(error));\n })\n .catch(error => reject(error));\n })\n .catch(error => reject(error));\n }\n\n\n checkAuthStatus(endpoint, extraData, resolve, reject) {\n const doRequest = () => {\n // Not sure if superagent request.end converted correctly to axios request.then/catch\n axios\n .post(endpoint, extraData, axiosFormConfig)\n .then(res => {\n if (res.ok) {\n if (!res.data.success) {\n if (res.data.pending) {\n // Still pending, try again in 1s\n setTimeout(() => doRequest(), 1000);\n } else {\n // Got a failure, lets notify the requester\n reject(res.data);\n }\n } else {\n // Process complete\n resolve(res.data);\n }\n\n } else {\n // Got a failure, lets notify the requester\n reject(res.data);\n }\n })\n .catch(err => {\n reject(err);\n });\n };\n return doRequest;\n };\n}\n\nfunction hexToBase64(str) {\n return btoa(String.fromCharCode.apply(null,\n str.replace(/\\r|\\n/g, \"\").replace(/([\\da-fA-F]{2}) ?/g, \"0x$1 \").replace(/ +$/, \"\").split(\" \"))\n );\n}\n\nfunction Uint8ToBase64(u8Arr){\n var CHUNK_SIZE = 0x8000; //arbitrary number\n var index = 0;\n var length = u8Arr.length;\n var result = '';\n var slice;\n while (index < length) {\n slice = u8Arr.subarray(index, Math.min(index + CHUNK_SIZE, length)); \n result += String.fromCharCode.apply(null, slice);\n index += CHUNK_SIZE;\n }\n return btoa(result);\n}\n","import React, { Component } from \"react\";\nimport { withRouter } from \"react-router\";\nimport { connect } from \"react-redux\";\nimport { withTranslation, Trans } from \"react-i18next\";\n\nimport { Button, Modal, ModalHeader, ModalBody, Col } from \"reactstrap\";\nimport \"./ContractModal.scss\";\nimport { Row } from \"react-bootstrap\";\nimport urls from \"../../config/urls\";\nimport PersonalCollapse from \"./PersonalCollapse/PersonalCollapse\";\nimport CompanyCollapse from \"./CompanyCollapse/CompanyCollapse\";\nimport CheckboxButton from \"components/Form/CheckboxButton/CheckboxButton\";\nimport CustomCheckbox from \"components/Form/Checkbox\";\n\nimport { createContract, signContract } from \"util/Contracts\";\nimport {\n getAuthUser,\n signMobileId,\n digitalSignStatus,\n SIGNING_ALERT_GROUP,\n signSmartId,\n} from \"util/Auth\";\nimport { getServerErrorMessage, getIdCardErrorMessage } from \"util/Errors\";\nimport { updateCompanyProfile } from \"util/Profile\";\nimport {\n addNewLocalErrorAlert,\n addNewLocalSuccessAlert,\n addNewLocalInfoAlert,\n clearLocalAlerts,\n clearAllAlerts,\n} from \"util/Alerts\";\nimport { authTypes } from \"util/Auth\";\n\nimport Alerts from \"../Alerts/Alerts\";\nimport Dokobit from \"../../util/dokobit/Dokobit\";\n\nfunction sleep(ms) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nclass ContractModal extends Component {\n state = {\n modal: true,\n selectedAuth: null,\n contractUrl: null,\n contract: null,\n acceptContractTerms: false,\n isSigning: false,\n invalidPersonalFields: [],\n invalidCompanyFields: [],\n acceptContractTermsInvalid: false,\n selectedAuthInvalid: false,\n isValidatedAtleastOnce: false,\n };\n\n dokobit = new Dokobit();\n\n componentDidUpdate(prevProps, prevState, snapshot) {\n if (this.state.isValidatedAtleastOnce) {\n if (\n this.props !== prevProps ||\n prevState.selectedAuth !== this.state.selectedAuth ||\n prevState.acceptContractTerms !== this.state.acceptContractTerms\n ) {\n this.validateSignContract();\n }\n }\n if (this.props !== prevProps) {\n if (\n this.hasAllProperties(this.props.personalProfile) &&\n this.hasAllProperties(this.props.companyProfile)\n ) {\n clearLocalAlerts();\n createContract(\n this.props.companyProfile.name,\n this.props.companyProfile.reg_number,\n this.props.companyProfile.kmkr,\n this.props.companyProfile.basis,\n this.props.personalProfile.phone,\n this.props.companyProfile.email,\n this.props.companyProfile.iban,\n this.props.companyProfile.full_address,\n this.props.companyProfile.zip_code,\n this.props.companyProfile.city\n )\n .then((response) => {\n const data = response.data;\n if (response.status === 208) {\n clearAllAlerts();\n addNewLocalInfoAlert(\n data.code,\n urls.DASHBOARD,\n true\n );\n\n updateCompanyProfile(this.props.companyProfile).catch((err) =>\n addNewLocalErrorAlert(\n getServerErrorMessage(err),\n urls.DASHBOARD,\n true\n )\n );\n\n getAuthUser().catch((err) =>\n addNewLocalErrorAlert(\n getServerErrorMessage(err),\n urls.DASHBOARD,\n true\n )\n );\n this.props.history.push(urls.DASHBOARD);\n } else {\n if (data.url) {\n this.setState({\n contractUrl: data.url,\n contract: data,\n });\n }\n }\n\n })\n .catch((err) => {\n clearLocalAlerts();\n const message = Lepingu koostamine ebaõnnestus: {{ errorMessage: getServerErrorMessage(err) }};\n\n addNewLocalErrorAlert(\n message,\n SIGNING_ALERT_GROUP,\n true\n );\n });\n }\n }\n }\n\n validateSignContract() {\n const personalProfile = this.props.personalProfile;\n const companyProfile = this.props.companyProfile;\n const invalidPersonalFields = [];\n const invalidCompanyFields = [];\n\n if (!personalProfile.first_name) {\n invalidPersonalFields.push(\"first_name\");\n }\n if (!personalProfile.phone) {\n invalidPersonalFields.push(\"phone\");\n }\n if (!personalProfile.profession) {\n invalidPersonalFields.push(\"profession\");\n }\n if (!personalProfile.last_name) {\n invalidPersonalFields.push(\"last_name\");\n }\n if (!personalProfile.email) {\n invalidPersonalFields.push(\"email\");\n }\n\n if (!companyProfile.name) {\n invalidCompanyFields.push(\"name\");\n }\n if (!companyProfile.reg_number) {\n invalidCompanyFields.push(\"reg_number\");\n }\n if (!companyProfile.kmkr) {\n invalidCompanyFields.push(\"kmkr\");\n }\n if (!companyProfile.basis) {\n invalidCompanyFields.push(\"basis\");\n }\n if (!companyProfile.email) {\n invalidCompanyFields.push(\"email\");\n }\n if (!companyProfile.iban) {\n invalidCompanyFields.push(\"iban\");\n }\n if (!companyProfile.full_address) {\n invalidCompanyFields.push(\"full_address\");\n }\n if (!companyProfile.zip_code) {\n invalidCompanyFields.push(\"zip_code\");\n }\n if (!companyProfile.city) {\n invalidCompanyFields.push(\"city\");\n }\n\n const acceptContractTermsInvalid = !this.state.acceptContractTerms;\n\n const selectedAuthInvalid = !this.state.selectedAuth;\n\n this.setState({\n invalidPersonalFields,\n invalidCompanyFields,\n acceptContractTermsInvalid,\n selectedAuthInvalid,\n isValidatedAtleastOnce: true,\n });\n\n if (\n invalidPersonalFields.length ||\n invalidCompanyFields.length ||\n acceptContractTermsInvalid ||\n selectedAuthInvalid ||\n !this.state.selectedAuth\n ) {\n return false;\n }\n\n return true;\n }\n\n signContract = () => {\n clearLocalAlerts();\n if (!this.validateSignContract()) {\n addNewLocalErrorAlert(\n Lepingu allkirjastamiseks on vaja täita kõik vormil esitatud väljad ja valida allkirjastamismeetod!,\n SIGNING_ALERT_GROUP,\n true\n );\n return;\n }\n\n if (!this.state.selectedAuth) {\n addNewLocalErrorAlert(\n Allkirjastamismeetod on valimata!,\n SIGNING_ALERT_GROUP,\n true\n );\n return;\n }\n\n signContract(\n this.props.companyProfile.name,\n this.props.companyProfile.reg_number,\n this.props.companyProfile.kmkr,\n this.props.companyProfile.basis,\n this.props.personalProfile.phone,\n this.props.companyProfile.email,\n this.props.companyProfile.iban,\n this.props.companyProfile.full_address,\n this.props.companyProfile.zip_code,\n this.props.companyProfile.city,\n this.state.contractUrl\n )\n .then(() => {\n if (this.state.selectedAuth === \"1\") {\n this.signWithMid();\n } else if (this.state.selectedAuth === \"2\") {\n this.signWithSmart();\n } else if (this.state.selectedAuth === \"3\") {\n this.signWithIdCard();\n }\n })\n .catch((error) => {\n clearLocalAlerts();\n addNewLocalErrorAlert(\n Lepingu allkirjastamine ebaõnnestus: {{ errorMessage: error.message }} ,\n SIGNING_ALERT_GROUP\n );\n this.setIsSigning(false);\n });\n };\n\n signWithMid = () => {\n this.setIsSigning(true);\n clearLocalAlerts();\n\n const mobileNumber = this.props.phoneNumberMID;\n const personalCode = this.props.user.personal_code;\n const cert = this.props.user.cert;\n\n signMobileId(mobileNumber, personalCode, cert)\n .then(async (data) => {\n clearLocalAlerts();\n if (data.success === true) {\n const message = Kontrollkood {{ controlCode: data.control_code }} saadeti numbrile {{ mobileNumber }}. Veendu, et telefonile ilmuv kontrollkood ühtib brauseris nähtavaga.;\n addNewLocalInfoAlert(\n message,\n SIGNING_ALERT_GROUP\n );\n this.checkSignStatus(data.token, \"mobile_id\", \"-\");\n } else {\n addNewLocalErrorAlert(\n Mobiil-IDga allkirjastamine ebaõnnestus!,\n SIGNING_ALERT_GROUP,\n true\n );\n this.setIsSigning(false);\n }\n })\n .catch((err) => {\n clearLocalAlerts();\n const errorMessage = getServerErrorMessage(err);\n const message = Mobiil-IDga allkirjastamisel ilmnes viga: {{ errorMessage }};\n addNewLocalErrorAlert(\n message,\n SIGNING_ALERT_GROUP,\n true\n );\n this.setIsSigning(false);\n });\n };\n\n signWithSmart = () => {\n this.setIsSigning(true);\n clearLocalAlerts();\n\n const personalCode = this.props.user.personal_code;\n const cert = this.props.user.cert;\n signSmartId(personalCode, cert)\n .then(async (data) => {\n clearLocalAlerts();\n if (data.success === true) {\n const message = Kontrollkood {{ controlCode: data.control_code }} saadeti teie telefoni. Veendu, et telefonile ilmuv kontrollkood ühtib brauseris nähtavaga.;\n addNewLocalInfoAlert(\n message,\n SIGNING_ALERT_GROUP\n );\n this.checkSignStatus(data.token, \"smart_id\", \"-\");\n } else {\n addNewLocalErrorAlert(\n Smart-IDga allkirjastamine ebaõnnestus!,\n SIGNING_ALERT_GROUP,\n true\n );\n this.setIsSigning(false);\n }\n })\n .catch((err) => {\n this.setIsSigning(false);\n clearLocalAlerts();\n addNewLocalErrorAlert(\n Smart-IDga allkirjastamisel ilmnes viga!,\n SIGNING_ALERT_GROUP,\n true\n );\n });\n };\n\n signWithIdCard = () => {\n const { t } = this.props;\n this.setIsSigning(true);\n const personalCode = this.props.user.personal_code;\n\n const resolve = (data) => {\n this.setIsSigning(false);\n\n clearLocalAlerts();\n if (data.success === true) {\n addNewLocalSuccessAlert(\n t(\"contractModal.alerts.signContract.IdCard.successful\", \"Leping edukalt allkirjastatud!\"),\n urls.DASHBOARD\n );\n this.onSignSuccess();\n } else {\n addNewLocalErrorAlert(\n t(\"contractModal.alerts.signContract.IdCard.signatureVerificationUnsuccessful\", \"Allkirja kinnitamine ebaõnnestus!\"),\n SIGNING_ALERT_GROUP,\n true\n );\n }\n };\n\n const reject = (error) => {\n this.setIsSigning(false);\n clearLocalAlerts();\n const errorMessage = getIdCardErrorMessage(\n error,\n t(\"contractModal.alerts.signContract.defaultErrorMessage\", \"Allkirjastamine ebaõnnestus!\")\n );\n addNewLocalErrorAlert(errorMessage, SIGNING_ALERT_GROUP, true);\n };\n\n addNewLocalInfoAlert(\n t(\"contractModal.alerts.signContract.idCard.selectCertificateInfo\", \"Toimub ID-kaardiga allkirjastamine. Kontrollige oma tegumiriba, kui sertifikaadi valimine ei kerki esile.\"),\n SIGNING_ALERT_GROUP,\n true\n );\n this.dokobit.signWithIdCard(personalCode, resolve, reject);\n };\n\n checkSignStatus = async (token, mode, identifier) => {\n const { t } = this.props;\n await sleep(1000);\n\n digitalSignStatus(token, mode, identifier)\n .then((data) => {\n if (data.success === true) {\n clearLocalAlerts();\n //this.setIsSigning(false);\n addNewLocalSuccessAlert(\n t(\"contractModal.alerts.signContract.success\", \"Leping edukalt allkirjastatud!\"),\n urls.DASHBOARD\n );\n this.onSignSuccess();\n } else if (data.code === \"waiting\") {\n this.checkSignStatus(token, mode, identifier);\n } else if (data.code === \"canceled\") {\n clearLocalAlerts();\n this.setIsSigning(false);\n addNewLocalErrorAlert(\n t(\"contractModal.alerts.signContract.userCancelledError\", \"Allkirjastamine katkestati!\"),\n SIGNING_ALERT_GROUP,\n true\n );\n } else if (data.code === \"error\") {\n clearLocalAlerts();\n this.setIsSigning(false);\n addNewLocalErrorAlert(\n t(\"contractModal.alerts.signContract.defaultErrorMessage\", \"Allkirjastamine ebaõnnestus!\"),\n SIGNING_ALERT_GROUP,\n true\n );\n } else {\n clearLocalAlerts();\n this.setIsSigning(false);\n addNewLocalErrorAlert(\n t(\"contractModal.alerts.signContract.defaultErrorMessage\", \"Allkirjastamine ebaõnnestus!\"),\n SIGNING_ALERT_GROUP,\n true\n );\n }\n })\n .catch((error) => {\n clearLocalAlerts();\n this.setIsSigning(false);\n addNewLocalErrorAlert(\n error.message,\n SIGNING_ALERT_GROUP\n );\n /*addNewLocalErrorAlert(\n t(\"contractModal.alerts.signContract.defaultErrorMessage\", \"Allkirjastamine ebaõnnestus!\"),\n SIGNING_ALERT_GROUP\n );*/\n\n });\n };\n\n hasAllProperties = (object) => {\n return Object.values(object).every(\n (x) => x !== \"\" && x !== null && x !== undefined\n );\n };\n\n setIsSigning = (value) => {\n this.setState({ isSigning: value });\n };\n\n signMID = () => {\n this.setState({ selectedAuth: \"1\" });\n };\n\n onSignSuccess = () => {\n const { t } = this.props;\n clearAllAlerts();\n addNewLocalSuccessAlert(t(\"contractModal.alerts.signContract.success\", \"Leping edukalt allkirjastatud.\"), urls.DASHBOARD, true);\n\n updateCompanyProfile(this.props.companyProfile).catch((err) =>\n addNewLocalErrorAlert(\n getServerErrorMessage(err),\n urls.DASHBOARD,\n true\n )\n );\n getAuthUser().catch((err) =>\n addNewLocalErrorAlert(\n getServerErrorMessage(err),\n urls.DASHBOARD,\n true\n )\n );\n this.props.history.push(urls.INVOICES);\n };\n\n toggle = () =>\n this.setState(\n { modal: !this.state.modal },\n this.props.history.push(urls.DASHBOARD)\n );\n\n changeLoginMode = (authOption) => {\n //clearLocalAlerts();\n this.setState({ selectedAuth: authOption });\n };\n\n isSignWithSmartIdDisabled = () => {\n if (this.state.isSigning) {\n return true;\n }\n\n const authType = this.props.authType;\n if (authType !== authTypes.SMART && authType !== authTypes.MID) {\n return true;\n }\n\n return !this.props.user || !this.props.user.cert;\n };\n\n isSignWithMIDDisabled = () => {\n if (this.state.isSigning) {\n return true;\n }\n\n const authType = this.props.authType;\n const phoneNumberMID = this.props.phoneNumberMID;\n if (authType !== authTypes.MID || !phoneNumberMID) {\n return true;\n }\n\n return !this.props.user || !this.props.user.cert;\n };\n\n isSubmitDisabled = () => {\n return this.state\n .isSigning /* || !this.state.contract || !this.state.contractUrl || !this.state.acceptContractTerms || !this.state.selectedAuth*/;\n };\n\n renderContractTermsCheckbox() {\n const { t } = this.props;\n const transLabelText = (\n \n Nõustun \n lepingu\n \n tingimustega\n \n \n );\n return (\n \n this.setState({\n acceptContractTerms: !this.state.acceptContractTerms,\n })\n }\n labelText={transLabelText}\n invalid={this.state.acceptContractTermsInvalid}\n required={true}\n />\n );\n }\n\n render() {\n const { t } = this.props;\n return (\n
\n \n \n

{t(\"contractModal.title\", \"Leping\")}

\n

\n {t(\"contractModal.headerInfo\", \"Uute pakendite registreerimiseks on vajalik Teie ettevõttega sõlmida leping. Täitke/kontrollige allolevad väljad ning allkirjastage leping digitaalselt. Lepingu jõustumisest teavitatakse automaatselt e-maili teel.\")}\n

\n
\n \n
\n \n \n
\n\n \n \n

\n {t(\"contractModal.signingSectionHeader\", \"Lepingu allkirjastamine\")}\n

\n {this.renderContractTermsCheckbox()}\n \n
\n\n \n \n this.changeLoginMode(\"1\")}\n isSelected={this.state.selectedAuth === \"1\"}\n labelText={t(\"authSignMethod.mobileId\", \"Mobiil-ID\")}\n disabled={this.isSignWithMIDDisabled()}\n className=\"auth-option\"\n invalid={this.state.selectedAuthInvalid}\n extraProps={{ block: true }}\n />\n \n \n this.changeLoginMode(\"2\")}\n isSelected={this.state.selectedAuth === \"2\"}\n labelText={t(\"authSignMethod.smartId\", \"Smart-ID\")}\n disabled={this.isSignWithSmartIdDisabled()}\n className=\"auth-option\"\n invalid={this.state.selectedAuthInvalid}\n extraProps={{ block: true }}\n />\n \n \n this.changeLoginMode(\"3\")}\n isSelected={this.state.selectedAuth === \"3\"}\n labelText={t(\"authSignMethod.idCard\", \"ID-kaart\")}\n disabled={this.state.isSigning}\n className=\"auth-option\"\n invalid={this.state.selectedAuthInvalid}\n extraProps={{ block: true }}\n />\n \n \n \n \n \n \n \n {!this.state.isSigning && (\n \n \n this.signContract()}\n >\n {t(\"contractModal.signContractButton\", \"Allkirjasta\")}\n \n \n \n )}\n
\n \n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n user: state.auth.user,\n authType: state.auth.authType,\n phoneNumberMID: state.auth.phoneNumberMID,\n companyProfile: state.profile.companyProfile,\n personalProfile: state.profile.personalProfile,\n };\n};\n\nexport default withRouter(connect(mapStateToProps)(withTranslation()(ContractModal)));\n","import axios from \"../axios\";\nimport {\n CREATE_CONTRACT,\n SIGN_CONTRACT,\n VERIFY_CONTRACT_SIGNER,\n} from \"../config/Api\";\nimport { getServerErrorMessage } from \"./Errors\";\n\nexport function createContract(\n name,\n regCode,\n kmkr,\n right,\n phone,\n email,\n iban,\n address,\n zip_code,\n city\n) {\n return axios\n .post(CREATE_CONTRACT, {\n new_company: name,\n new_reg_code: regCode,\n new_address: address,\n basis: right,\n new_phone: phone,\n new_email: email,\n new_iban: iban,\n new_kmkr: kmkr,\n zip_code: zip_code,\n city: city,\n })\n .then((resp) => {\n return resp;\n })\n .catch((err) => {\n throw Error(getServerErrorMessage(err));\n });\n}\n\nexport function signContract(\n name,\n regCode,\n kmkr,\n right,\n phone,\n email,\n iban,\n address,\n zip_code,\n city,\n url\n) {\n return axios\n .post(SIGN_CONTRACT, {\n new_company: name,\n new_reg_code: regCode,\n new_address: address,\n basis: right,\n new_phone: phone,\n new_email: email,\n new_iban: iban,\n new_kmkr: kmkr,\n zip_code: zip_code,\n city: city,\n url: url,\n })\n .then((resp) => {\n return resp.data;\n })\n .catch((err) => {\n throw Error(getServerErrorMessage(err));\n });\n}\n\nexport function verifyContractSigner(isVerified, userid, clientId) {\n return axios\n .post(VERIFY_CONTRACT_SIGNER, {\n is_verified: isVerified,\n user_id: userid,\n client_id: Number(clientId),\n })\n .then((resp) => {\n return resp.data;\n })\n .catch((err) => {\n throw Error(getServerErrorMessage(err));\n });\n}\n","var _path, _path2, _path3, _path4, _path5, _path6;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nconst SvgDocumentCorrection = _ref => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.5876 5.03522C15.0394 4.48691 14.1472 4.48694 13.5987 5.03534C13.43 5.20419 12.353 6.28209 12.1885 6.44678V2.73206C12.1885 2.35644 12.0422 2.00331 11.7766 1.73772L10.4508 0.411875C10.1852 0.14625 9.83204 0 9.45641 0H1.40723C0.63182 0 0.000976562 0.630844 0.000976562 1.40625V14.5938C0.000976562 15.3692 0.63182 16 1.40723 16H10.7822C11.5576 16 12.1885 15.3692 12.1885 14.5938V10.426L15.5876 7.02397C16.1372 6.47441 16.1373 5.58484 15.5876 5.03522ZM9.37601 0.9375C9.46457 0.9375 9.63523 0.922156 9.78788 1.07478L11.1137 2.40062C11.2624 2.54941 11.251 2.71244 11.251 2.8125H9.37601V0.9375ZM11.251 14.5938C11.251 14.8522 11.0407 15.0625 10.7822 15.0625H1.40723C1.14876 15.0625 0.938477 14.8522 0.938477 14.5938V1.40625C0.938477 1.14778 1.14876 0.9375 1.40723 0.9375H8.43848V3.28125C8.43848 3.54012 8.64835 3.75 8.90723 3.75H11.251V7.38509C11.251 7.38509 9.86804 8.76922 9.86798 8.76925L9.20538 9.43188C9.15394 9.48331 9.11513 9.54606 9.09213 9.61509L8.4292 11.6038C8.37304 11.7723 8.41688 11.958 8.54245 12.0835C8.66816 12.2093 8.85395 12.2529 9.02213 12.1968L11.0109 11.5339C11.0799 11.5109 11.1427 11.4721 11.1941 11.4206L11.251 11.3638V14.5938ZM10.1997 9.76334L10.8626 10.4263L10.6094 10.6795L9.61507 11.0109L9.94651 10.0165L10.1997 9.76334ZM11.5254 9.76319L10.8625 9.10028C11.2155 8.747 12.7833 7.17788 13.1158 6.84509L13.7787 7.508L11.5254 9.76319ZM14.9246 6.36119L14.4414 6.84481L13.7784 6.18191L14.2618 5.69812C14.4447 5.51534 14.742 5.51537 14.9248 5.69812C15.1075 5.88094 15.1084 6.17728 14.9246 6.36119Z\",\n fill: \"#C5C7CD\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.90723 4.6875H2.34473C2.08585 4.6875 1.87598 4.89737 1.87598 5.15625C1.87598 5.41513 2.08585 5.625 2.34473 5.625H8.90723C9.1661 5.625 9.37598 5.41513 9.37598 5.15625C9.37598 4.89737 9.1661 4.6875 8.90723 4.6875Z\",\n fill: \"#C5C7CD\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.03223 6.5625H2.34473C2.08585 6.5625 1.87598 6.77237 1.87598 7.03125C1.87598 7.29013 2.08585 7.5 2.34473 7.5H7.03223C7.2911 7.5 7.50098 7.29013 7.50098 7.03125C7.50098 6.77237 7.2911 6.5625 7.03223 6.5625Z\",\n fill: \"#C5C7CD\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.03223 8.4375H2.34473C2.08585 8.4375 1.87598 8.64737 1.87598 8.90625C1.87598 9.16513 2.08585 9.375 2.34473 9.375H7.03223C7.2911 9.375 7.50098 9.16513 7.50098 8.90625C7.50098 8.64737 7.2911 8.4375 7.03223 8.4375Z\",\n fill: \"#C5C7CD\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.03223 10.3125H2.34473C2.08585 10.3125 1.87598 10.5224 1.87598 10.7812C1.87598 11.0401 2.08585 11.25 2.34473 11.25H7.03223C7.2911 11.25 7.50098 11.0401 7.50098 10.7812C7.50098 10.5224 7.2911 10.3125 7.03223 10.3125Z\",\n fill: \"#C5C7CD\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.90723 13.1875H6.09473C5.83585 13.1875 5.62598 13.3974 5.62598 13.6562C5.62598 13.9151 5.83585 14.125 6.09473 14.125H8.90723C9.1661 14.125 9.37598 13.9151 9.37598 13.6562C9.37598 13.3974 9.1661 13.1875 8.90723 13.1875Z\",\n fill: \"#C5C7CD\"\n })));\n};\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgDocumentCorrection, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/document-correction.60260d6b.svg\";\nexport { ForwardRef as ReactComponent };","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\nimport moment from \"moment\";\n\nimport { Form, Card, CardBody, Row, Col, Button } from \"reactstrap\";\n\n// css\nimport \"./SalesSearch.scss\";\nimport SmallLoader from \"components/Loader/WrappedPulseLoader\";\n\n// datepicker\nimport DatePicker from \"react-datepicker\";\nimport \"react-datepicker/dist/react-datepicker.css\";\n\nimport {\n salesSearchFilterUpdate,\n salesClearFilters,\n} from \"redux/actions/reports/sales\";\n\nimport { fetchSalesList } from \"util/SalesReports\";\nimport { clearLocalAlerts } from \"util/Alerts\";\n\nimport { salesReportPeriodSearchFormat, getFromAndToDatePeriodAsString } from \"util/DateTime\";\n\nimport {\n clearNavigationHeaderSuffix,\n updateNavigationHeaderSuffix,\n} from \"util/Navigation\";\nimport { withTranslation } from \"react-i18next\";\n\nclass SalesReportsSearch extends React.Component {\n componentDidMount() {\n if (this.props.salesList) {\n updateNavigationHeaderSuffix(\n getFromAndToDatePeriodAsString(\n this.props.salesListFromDate,\n this.props.salesListToDate\n )\n );\n }\n }\n\n componentDidUpdate(prevProps) {\n if (\n this.props.salesList &&\n this.props.salesList !== prevProps.salesList\n ) {\n updateNavigationHeaderSuffix(\n getFromAndToDatePeriodAsString(\n this.props.salesListFromDate,\n this.props.salesListToDate\n )\n );\n }\n }\n\n componentWillUnmount() {\n clearNavigationHeaderSuffix();\n }\n\n render() {\n const { t } = this.props;\n // https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n return (\n
\n \n \n \n \n \n {t(\"reports.filter.period\", \"Periood\")}\n \n \n \n \n this.props.salesSearchFilterUpdate(\n \"fromDate\",\n date\n )\n }\n placeholderText={t(\n \"reports.filter.from\",\n \"Alates\"\n )}\n dateFormat={salesReportPeriodSearchFormat}\n showMonthYearPicker\n maxDate={\n this.props.filters.toDate\n ? moment(\n this.props.filters.toDate\n ).toDate()\n : new Date()\n }\n />\n \n \n \n this.props.salesSearchFilterUpdate(\n \"toDate\",\n date\n )\n }\n placeholderText={t(\"reports.filter.to\", \"Kuni\")}\n dateFormat={salesReportPeriodSearchFormat}\n showMonthYearPicker\n minDate={\n this.props.filters.fromDate &&\n moment(this.props.filters.fromDate).toDate()\n }\n maxDate={new Date()}\n />\n \n \n { e.preventDefault(); this.onSearch(); }}\n disabled={this.props.salesListLoading}\n >\n {this.props.salesListLoading ? (\n \n ) : (\n t(\"buttons.search\", \"Otsi\")\n )}\n \n \n \n \n {t(\"buttons.clearSearch\", \"Tühjenda otsing\")}\n \n \n \n \n \n
\n );\n }\n\n onSearch = () => {\n clearLocalAlerts();\n this.getSalesList();\n };\n\n getSalesList = () => {\n fetchSalesList(\n this.props.filters.fromDate,\n this.props.filters.toDate,\n this.props.location.pathname\n );\n };\n}\n\nconst mapStateToProps = (state) => {\n return {\n activeClientId: state.auth.user\n ? state.auth.user.active_client_id\n : null,\n salesListLoading: state.sales.salesListLoading,\n salesList: state.sales.salesList,\n salesListFromDate: state.sales.salesListFromDate,\n salesListToDate: state.sales.salesListToDate,\n filters: state.sales.filters,\n };\n};\n\nconst reduxActions = {\n salesSearchFilterUpdate,\n salesClearFilters,\n};\n\nexport default withRouter(\n connect(\n mapStateToProps,\n reduxActions\n )(withTranslation(\"common\")(SalesReportsSearch))\n);\n","import React from \"react\";\nimport { withRouter } from \"react-router-dom\";\n\nimport DateCell from \"components/Table/Cell/DateCell\";\nimport \"./MonthPeriodCell.scss\";\nimport { getSaleReportUrl, getSaleReportFixUrl } from \"config/urls\";\nimport { parseSalesReportPeriodDate, salesReportPeriodListFormat } from \"util/DateTime\";\n\nfunction MonthPeriodCell(props) {\n const id = props.salesReport.id;\n let route;\n if (props.salesReport.is_repair) {\n route = getSaleReportFixUrl(id);\n } else {\n route = getSaleReportUrl(id);\n }\n\n return (\n <>\n {\n e.stopPropagation();\n props.history.push(route);\n }\n }\n value={parseSalesReportPeriodDate(props.salesReport.period)}\n />\n \n );\n}\n\nexport default withRouter(MonthPeriodCell);\n","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport PropTypes from \"prop-types\";\nimport { Card, CardBody, Row, Col } from \"reactstrap\";\n\n// datatable\nimport BootstrapTable from \"react-bootstrap-table-next\";\nimport \"react-bootstrap-table-next/dist/react-bootstrap-table2.min.css\";\nimport \"react-bootstrap-table2-filter/dist/react-bootstrap-table2-filter.min.css\";\nimport filterFactory from \"react-bootstrap-table2-filter\";\n\n// css\nimport \"./SalesTable.scss\";\n\nimport { ReactComponent as ExpandIcon } from \"assets/icons/document-correction.svg\";\n\n// search\nimport SalesSearch from \"components/Reports/Sales/Search/SalesSearch\";\n\n// cells\nimport DateCell from \"components/Table/Cell/DateCell\";\nimport StatusCell from \"components/Table/Cell/Status/StatusCell\";\nimport DocumentCell from \"components/Table/Cell/DocumentCell\";\nimport MonthPeriodCell from \"../cells/MonthPeriodCell\";\nimport MenuCell from \"../cells/MenuCell\";\nimport ImportModal from \"components/Reports/Sales/Modal/ImportSalesReport\";\nimport WrappedLoader from \"components/Loader/WrappedLoader\";\nimport CenteredRowCol from \"components/Misc/CenteredRowCol\";\n\nimport { getSaleStatusType } from \"../helpers/Options\";\n\nimport { fetchSalesList } from \"util/SalesReports\";\nimport { isConnectedToClientWithActiveContract } from \"util/Access\";\nimport { getSaleReportUrl, getSaleReportFixUrl } from \"config/urls\";\nimport { isSalesReportHasRepairReport } from \"util/SalesReports\";\nimport { withTranslation } from \"react-i18next\";\n\nfunction NoDataIndication(props) {\n let content =\n props.t(\"reports.sales.noSalesReportsText\", \"Ei leitud ühtegi müügiaruannet, mis vastaks otsingutingimustele.\");\n if (props.loading) {\n content = ;\n } else if (props.error) {\n content = {props.error};\n }\n\n return
{content}
;\n}\n\nclass SalesTable extends React.Component {\n static propTypes = {\n salesList: PropTypes.array.isRequired,\n };\n\n componentDidMount() {\n if (this.props.isClientWithActiveContract) {\n this.getSalesList();\n }\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.activeClientId !== this.props.activeClientId) {\n this.getSalesList();\n }\n }\n\n getSalesList = () => {\n fetchSalesList(\n this.props.filters.fromDate,\n this.props.filters.toDate,\n this.props.location.pathname\n );\n };\n\n getDefaultSorted = () => {\n return [\n {\n dataField: \"period\",\n order: \"desc\",\n },\n ];\n };\n\n render() {\n return (\n <>\n \n {this.renderTable()}\n \n \n );\n }\n\n renderTable() {\n const { t } = this.props;\n if (this.props.salesListLoading) {\n return (\n \n \n \n );\n }\n if (\n this.props.salesList === null ||\n this.props.salesList === undefined\n ) {\n return <>;\n }\n\n const columns = [\n {\n dataField: \"period\",\n text: t(\"reports.table.period\", \"Periood\"),\n sort: true,\n classes: \"period-col\",\n headerClasses: \"period-col-header\",\n formatter: (period, row) => this.periodColumnFormatter(row),\n },\n {\n dataField: \"submitted_at\",\n text: t(\"reports.table.submitted\", \"Esitatud\"),\n sort: true,\n align: \"left\",\n headerAlign: \"left\",\n classes: \"submitted-col regular-14\",\n headerClasses: \"submitted-col-header\",\n formatter: (value, row) =>\n this.submittedAtColumnFormatter(value, row),\n },\n {\n dataField: \"status.label\",\n text: t(\"reports.table.status\", \"Staatus\"),\n sort: true,\n classes: \"status-col\",\n headerClasses: \"status-col-header\",\n formatter: (statusLabel, row) =>\n this.statusColumnFormatter(row),\n },\n {\n dataField: \"invoice\",\n text: t(\"reports.table.invoice\", \"Arve\"),\n sort: true,\n sortValue: invoice => invoice && invoice.length > 0 ? invoice[0].name : \"\",\n align: \"left\",\n headerAlign: \"left\",\n classes: \"invoice-col\",\n headerClasses: \"invoice-col-header\",\n formatter: (invoices, row) =>\n this.invoicesColumnFormatter(row),\n },\n {\n dataField: \"id\",\n text: \"\",\n align: \"right\",\n alignHeader: \"right\",\n classes: \"action-col\",\n headerClasses: \"action-col-header\",\n formatter: (id, salesReport) =>\n this.actionColumnFormatter(salesReport),\n },\n ];\n\n const rowClasses = (row, rowIndex) => {\n return \"pointer\";\n };\n\n const rowEvents = {\n onClick: (e, row, rowIndex) => {\n this.onRowClick(e, row);\n },\n };\n\n return (\n \n \n \n }\n rowClasses={rowClasses}\n rowEvents={rowEvents}\n />\n \n \n );\n }\n\n periodColumnFormatter = (row) => {\n if (!row.repair_report) {\n return ;\n }\n\n return (\n <>\n \n \n \n \n \n {row.repair_report && (\n \n \n \n \n \n \n )}\n \n );\n };\n\n onRowClick = (event, row) => {\n let reportUrl = getSaleReportUrl(row.id);\n if (isSalesReportHasRepairReport(row)) {\n reportUrl = getSaleReportFixUrl(row.repair_report.id);\n }\n this.props.history.push(reportUrl);\n };\n\n submittedAtColumnFormatter = (submitted_at, row) => {\n return (\n <>\n \n \n \n \n \n {row.repair_report && (\n \n \n \n \n \n )}\n \n );\n };\n\n statusColumnFormatter = (row) => {\n return (\n <>\n \n \n \n \n \n {row.repair_report && (\n \n \n \n \n \n )}\n \n );\n };\n\n invoicesColumnFormatter = (row) => {\n const invoicesToComponents = (invoices, isRepair) => {\n return (invoices || []).filter(invoice => invoice.name).map((invoice, index) => (\n \n { }}\n />\n \n ))\n }\n\n const salesReportInvoices = invoicesToComponents(row.invoice, false);\n let salesReportRepairInvoices = [];\n if (row.repair_report && row.repair_report.invoice) {\n salesReportRepairInvoices = invoicesToComponents(row.repair_report.invoice, true);\n }\n\n return (\n <>\n \n {salesReportInvoices}\n {salesReportRepairInvoices}\n \n \n );\n };\n\n actionColumnFormatter = (salesReport) => {\n return ;\n };\n}\n\nconst mapStateToProps = (state) => {\n return {\n user: state.auth.user,\n salesList: state.sales.salesList,\n salesErrorMessage: state.sales.error || \"\",\n salesListLoading: state.sales.salesListLoading,\n filters: state.sales.filters,\n isClientWithActiveContract: isConnectedToClientWithActiveContract(\n state\n ),\n };\n};\n\nexport default connect(mapStateToProps)(withTranslation(\"common\")(SalesTable));\n","import axios from '../axios';\nimport store from 'redux/store';\nimport moment from \"moment\";\nimport i18n from \"i18n\";\n\nimport {getServerErrorMessage} from \"util/Errors\";\nimport {b64toBlob} from \"util/Files\";\nimport FileSaver from \"file-saver\";\n\nimport {\n GET_SUMMARY_REPORT,\n EXPORT_SUMMARY_REPORT\n} from \"../config/Api\";\n\nimport {\n summaryReportSearchStart,\n summaryReportSearchSuccess,\n summaryReportSearchFail,\n summaryReportExportStart,\n summaryReportExportSuccess,\n summaryReportExportFail,\n} from \"../redux/actions/reports/summaryReport\";\nimport {\n salesReportPeriodServerFormat,\n} from \"util/DateTime\";\n\n\nexport function fetchSummaryReport(filters) {\n store.dispatch(summaryReportSearchStart());\n return axios\n .get(GET_SUMMARY_REPORT, {\n params: createSummaryReportQueryParameters(filters)\n })\n .then(resp => {\n store.dispatch(summaryReportSearchSuccess(resp.data, filters.fromDate, filters.toDate));\n return {isSuccess: true};\n })\n .catch(err => {\n const errorMessage = getServerErrorMessage(err);\n store.dispatch(summaryReportSearchFail(errorMessage));\n\n return {isSuccess: false, errorMessage};\n });\n}\n\nexport function fetchSummaryReportExportFile(filters) {\n store.dispatch(summaryReportExportStart());\n return axios\n .get(EXPORT_SUMMARY_REPORT, {\n params: createSummaryReportQueryParameters(filters) \n })\n .then(resp => {\n const blob = b64toBlob(resp.data);\n const filename = i18n.t(\"filename.summaryReportExcel\", {date: moment().format(\"YYYY-MM-DD\")})\n FileSaver.saveAs(blob, filename);\n store.dispatch(summaryReportExportSuccess());\n\n return {isSuccess: true};\n })\n .catch(err => {\n const errorMessage = getServerErrorMessage(err);\n store.dispatch(summaryReportExportFail(errorMessage));\n\n return {isSuccess: false, errorMessage};\n });\n}\n\nfunction createSummaryReportQueryParameters(filters) {\n return {\n fromDate: filters.fromDate ? moment(filters.fromDate).format(salesReportPeriodServerFormat) : \"\",\n toDate: filters.toDate ? moment(filters.toDate).format(salesReportPeriodServerFormat) : \"\",\n packageType: filters.packageType ? filters.packageType.value : \"\",\n packageCategory: filters.packageCategory ? filters.packageCategory.value : \"\",\n showEANCode: filters.showEANCode,\n showEANType: filters.showEANType,\n showPackageType: filters.showPackageType,\n showName: filters.showName,\n showPackageCategory: filters.showPackageCategory,\n showVolume: filters.showVolume,\n showDeposit: filters.showDeposit,\n }\n}\n\nexport function findAndSortPeriods(summaryList, filters) {\n if (!summaryList) {\n return [];\n }\n const uniquePeriodsSet = new Set();\n for (const item of summaryList) {\n Object.keys(item.periods).forEach(period => {\n uniquePeriodsSet.add(period); \n });\n }\n\n let periods = [...uniquePeriodsSet.values()];\n /*\n const fromDate = filters.fromDate;\n if (fromDate) {\n periods = periods\n .filter(period => secondDateIsSameOrAfterFirstDate(fromDate, parseSalesReportPeriodDate(period)));\n }\n const toDate = filters.toDate;\n if (toDate) {\n periods = periods\n .filter(period => secondDateIsSameOrAfterFirstDate(parseSalesReportPeriodDate(period), toDate));\n }\n */\n return periods.sort();\n}\n","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\nimport PropTypes from \"prop-types\";\nimport moment from \"moment\";\n\nimport { Form, Card, CardBody, Row, Col, Button, FormGroup, Label } from \"reactstrap\";\nimport DatePicker from \"react-datepicker\";\nimport Select from \"components/Form/Select\";\nimport SmallLoader from \"components/Loader/WrappedPulseLoader\";\nimport \"./SummarySearch.scss\";\nimport {\n salesReportPeriodSearchFormat,\n getFromAndToDatePeriodAsString,\n} from \"util/DateTime\";\nimport CustomCheckbox from \"components/Form/Checkbox\";\n\nimport { summaryReportSearchFilterUpdate } from \"redux/actions/reports/summaryReport\";\nimport {\n fetchSummaryReport,\n fetchSummaryReportExportFile,\n} from \"util/SummaryReport\";\nimport {\n clearNavigationHeaderSuffix,\n updateNavigationHeaderSuffix,\n} from \"util/Navigation\";\nimport { fetchCategories, fetchPackageTypes } from \"util/Packages\";\nimport { addNewLocalErrorAlert } from \"util/Alerts\";\nimport { alertsClearLocal } from \"redux/actions/alerts\";\nimport { withTranslation } from \"react-i18next\";\n\nclass SummaryReportsSearch extends React.Component {\n static propTypes = {\n filters: PropTypes.object.isRequired,\n summaryList: PropTypes.array,\n summaryListFromDate: PropTypes.object,\n summaryListToDate: PropTypes.object,\n summaryListLoading: PropTypes.bool,\n exportLoading: PropTypes.bool,\n summaryReportSearchFilterUpdate: PropTypes.func.isRequired,\n packageTypes: PropTypes.array.isRequired,\n packageCategories: PropTypes.array.isRequired,\n alertsClearLocal: PropTypes.func.isRequired,\n };\n\n componentDidMount() {\n if (this.props.summaryList) {\n updateNavigationHeaderSuffix(\n getFromAndToDatePeriodAsString(\n this.props.summaryListFromDate,\n this.props.summaryListToDate\n )\n );\n }\n\n fetchPackageTypes(this.props.packageTypes);\n fetchCategories(this.props.packageCategories);\n }\n\n componentDidUpdate(prevProps) {\n if (\n this.props.summaryList &&\n this.props.summaryList !== prevProps.summaryList\n ) {\n updateNavigationHeaderSuffix(\n getFromAndToDatePeriodAsString(\n this.props.summaryListFromDate,\n this.props.summaryListToDate\n )\n );\n }\n }\n\n componentWillUnmount() {\n clearNavigationHeaderSuffix();\n }\n\n render() {\n const { t } = this.props;\n const filters = this.props.filters;\n return (\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n option.value\n }\n getOptionLabel={(option) =>\n option.description\n }\n isClearable\n />\n \n \n \n \n \n \n option.value\n }\n getOptionLabel={(option) =>\n option.value\n }\n isClearable\n />\n \n \n \n \n \n \n { e.preventDefault(); this.onSearch(); }}\n disabled={this.props.summaryListLoading}\n >\n {this.props.summaryListLoading ? (\n \n ) : (\n t(\"buttons.search\", \"Otsi\")\n )}\n \n \n \n \n \n {/*\n \n */}\n \n \n \n \n \n \n \n \n \n \n \n {this.props.exportLoading ? (\n \n ) : (\n t(\"buttons.export\", \"Ekspordi\")\n )}\n \n \n \n \n \n \n
\n );\n }\n\n onSearch = () => {\n if (this.props.summaryListLoading) {\n return;\n }\n this.props.alertsClearLocal();\n clearNavigationHeaderSuffix();\n fetchSummaryReport(this.props.filters).then((result) => {\n if (!result.isSuccess) {\n addNewLocalErrorAlert(\n this.props.t(\n \"reports.massReportLoadingErrorMessage\",\n \"Koondaruande laadimine ebaõnnestus: \"\n ) + result.errorMessage,\n this.props.location.pathname,\n true\n );\n }\n });\n };\n\n onExport = () => {\n if (this.props.exportLoading) {\n return;\n }\n this.props.alertsClearLocal();\n fetchSummaryReportExportFile(this.props.filters).then((result) => {\n if (!result.isSuccess) {\n addNewLocalErrorAlert(\n this.props.t(\n \"reports.massReportExportErrorMessage\",\n \"Koondaruande eksportimine ebaõnnestus: \"\n ) + result.errorMessage,\n this.props.location.pathname,\n true\n );\n }\n });\n };\n\n handleFilterUpdate = (name) => (value) => {\n this.props.summaryReportSearchFilterUpdate(name, value);\n };\n\n handleSelectChange = (name) => (selectedObject) => {\n this.handleFilterUpdate(name)(selectedObject);\n };\n}\n\nconst mapStateToProps = (state) => {\n return {\n filters: state.summaryReport.filters,\n summaryList: state.summaryReport.summaryList,\n summaryListFromDate: state.summaryReport.summaryListFromDate,\n summaryListToDate: state.summaryReport.summaryListToDate,\n summaryListLoading: state.summaryReport.summaryListLoading,\n exportLoading: state.summaryReport.exportLoading,\n packageTypes: state.packages.packageTypes,\n packageCategories: state.packages.categories,\n };\n};\n\nexport default withRouter(\n connect(mapStateToProps, {\n summaryReportSearchFilterUpdate,\n alertsClearLocal,\n })(withTranslation(\"common\")(SummaryReportsSearch))\n);\n","import * as actionTypes from 'redux/actions/actionTypes';\n\nexport const summaryReportSearchStart = () => {\n return {\n type: actionTypes.SUMMARY_REPORT_SEARCH_START\n }\n};\n\nexport const summaryReportSearchSuccess = (summaryList, fromDate, toDate) => {\n return {\n type: actionTypes.SUMMARY_REPORT_SEARCH_SUCCESS,\n summaryList, fromDate, toDate,\n }\n};\n\nexport const summaryReportSearchFail = (err) => {\n return {\n type: actionTypes.SUMMARY_REPORT_SEARCH_FAIL,\n error: err\n }\n};\n\nexport const summaryReportSearchFilterUpdate = (key, value) => {\n return {\n type: actionTypes.SUMMARY_REPORT_SEARCH_FILTER_UPDATE,\n key: key,\n value: value,\n }\n}\n\nexport const summaryReportExportStart = () => {\n return {\n type: actionTypes.SUMMARY_REPORT_EXPORT_START\n }\n};\n\nexport const summaryReportExportSuccess = (exportFile) => {\n return {\n type: actionTypes.SUMMARY_REPORT_EXPORT_SUCCESS,\n exportFile: exportFile\n }\n};\n\nexport const summaryReportExportFail = (err) => {\n return {\n type: actionTypes.SUMMARY_REPORT_EXPORT_FAIL,\n error: err\n }\n};","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { connect } from \"react-redux\";\nimport _ from \"lodash\";\n\nimport { Card, CardBody } from \"reactstrap\";\n// datatable\nimport BootstrapTable from \"react-bootstrap-table-next\";\nimport \"react-bootstrap-table-next/dist/react-bootstrap-table2.min.css\";\nimport \"react-bootstrap-table2-filter/dist/react-bootstrap-table2-filter.min.css\";\n\nimport WrappedLoader from \"components/Loader/WrappedLoader\";\nimport CenteredRowCol from \"components/Misc/CenteredRowCol\";\n\nimport \"./SummaryTable.scss\";\nimport { parseSalesReportPeriodDate, YEAR_MONTH_FORMAT } from \"util/DateTime\";\nimport { depositCurrencyFormatter } from \"util/General\";\nimport { withTranslation } from \"react-i18next\";\n\nclass SummaryReportsTable extends React.Component {\n static propTypes = {\n filters: PropTypes.object.isRequired,\n summaryList: PropTypes.array,\n summaryListLoading: PropTypes.bool,\n error: PropTypes.any,\n };\n\n render() {\n const { t } = this.props;\n let content;\n if (this.props.summaryListLoading) {\n return ;\n } else if (!this.props.summaryList) {\n return false;\n } else if (!this.props.summaryList.length) {\n content = this.renderCenteredContent(\n

\n {t(\n \"reports.massReportNoDataIndication\",\n \"Ei leitud ühtegi pakendit, mis vastaks otsingutingimustele.\"\n )}\n

\n );\n } else {\n content = this.renderTable();\n }\n\n return (\n <>\n \n \n {content}\n \n \n \n );\n }\n\n renderCenteredContent = (content) => {\n return {content};\n };\n\n renderTable() {\n const { t } = this.props;\n const data = this.props.summaryList;\n\n /* Had to add the first id column with hidden: true, \n because it didn't work correctly with all other columns being\n negative filter (!filter...) values.\n */\n const staticColumns = [\n {\n dataField: \"id\",\n text: t(\"reports.filter.id\", \"ID\"),\n classes: \"semibold-14\",\n hidden: true,\n },\n {\n dataField: \"EAN\",\n text: t(\"reports.filter.ean\", \"EAN\"),\n classes: \"semibold-14\",\n sort: true,\n },\n {\n dataField: \"EAN_type\",\n text: t(\"reports.filter.eanType\", \"EAN tüüp\"),\n classes: \"regular-14\",\n sort: true,\n //hidden: !this.props.filters.showEANType,\n hidden: !this.summaryReportItemHasField(\"EAN_type\"),\n },\n {\n dataField: \"package_type\",\n text: t(\"reports.filter.packageType\", \"Pakendi tüüp\"),\n classes: \"regular-14\",\n sort: true,\n //hidden: !this.props.filters.showPackageType,\n hidden: !this.summaryReportItemHasField(\"package_type\"),\n },\n {\n dataField: \"name\",\n text: t(\"reports.filter.packageName\", \"Toote nimetus\"),\n classes: \"semibold-14 frozen-first-column\",\n headerClasses: \"frozen-first-column\",\n sort: true,\n //hidden: !this.props.filters.showName,\n hidden: !this.summaryReportItemHasField(\"name\"),\n },\n {\n dataField: \"package_category\",\n text: t(\"reports.filter.packageCategory\", \"Toote kategooria\"),\n classes: \"regular-14\",\n sort: true,\n //hidden: !this.props.filters.showPackageCategory,\n hidden: !this.summaryReportItemHasField(\"package_category\"),\n },\n {\n dataField: \"volume\",\n text: t(\"reports.filter.packageVolume\", \"Pakendi maht\"),\n classes: \"regular-14\",\n sort: true,\n //hidden: !this.props.filters.showVolume,\n hidden: !this.summaryReportItemHasField(\"volume\"),\n },\n {\n dataField: \"deposit\",\n text: t(\"reports.filter.deposit\", \"Tagatisraha\"),\n classes: \"regular-14\",\n sort: true,\n align: \"right\",\n headerAlign: \"right\",\n formatter: (deposit) => depositCurrencyFormatter.format(deposit),\n //hidden: !this.props.filters.showDeposit,\n hidden: !this.summaryReportItemHasField(\"deposit\"),\n },\n ];\n const dynamicColumns = this.getDynamicPeriodColumns(data);\n const columns = [...staticColumns, ...dynamicColumns];\n\n return (\n \n }\n />\n );\n }\n\n getDynamicPeriodColumns = (data) => {\n const dynamicColumns = [];\n\n if (!data || data.length === 0 || !data[0].periods) {\n return dynamicColumns;\n }\n //const periods = findAndSortPeriods(data, this.props.filters);\n const periods = data[0].periods;\n for (var i = 0; i < periods.length; i++) {\n const periodFormatted = parseSalesReportPeriodDate(\n periods[i].period\n ).format(YEAR_MONTH_FORMAT);\n const column = {\n dataField: `periods[${i}].quantity`,\n text: periodFormatted,\n classes: \"regular-14\",\n sort: true,\n };\n dynamicColumns.push(column);\n }\n return dynamicColumns;\n };\n\n NoDataIndication(props) {\n let content = props.t(\n \"reports.massReportNoDataIndication\",\n \"Ei leitud ühtegi pakendit, mis vastaks otsingutingimustele.\"\n );\n if (props.loading) {\n content = ;\n } else if (props.error) {\n content = {props.error};\n }\n\n return
{content}
;\n }\n\n summaryReportItemHasField = (field) => {\n if (!this.props.summaryList || !this.props.summaryList.length) {\n return false;\n }\n return _.has(this.props.summaryList[0], field);\n };\n}\n\nconst mapStateToProps = (state) => {\n return {\n filters: state.summaryReport.filters,\n summaryList: state.summaryReport.summaryList,\n summaryListLoading: state.summaryReport.summaryListLoading,\n error: state.summaryReport.error,\n };\n};\n\nexport default connect(mapStateToProps)(\n withTranslation(\"common\")(SummaryReportsTable)\n);\n","import React from \"react\";\n\nimport SummarySearch from \"../../components/Reports/Summary/Search/SummarySearch\";\nimport SummaryTable from \"../../components/Reports/Summary/Table/SummaryTable\";\n\nclass SummaryReport extends React.Component {\n\n render() {\n return (\n <>\n \n
\n \n
\n \n );\n }\n}\n\nexport default SummaryReport;","import axios from \"../axios\";\nimport store from \"redux/store\";\nimport moment from \"moment\";\n\nimport {getServerErrorMessage} from \"util/Errors\";\nimport {b64toBlob} from \"util/Files\";\nimport FileSaver from \"file-saver\";\n\nimport {\n salesReportPeriodServerFormat,\n} from \"util/DateTime\";\nimport {\n GET_MASS_REPORT,\n EXPORT_MASS_REPORT\n} from \"../config/Api\";\nimport {\n massReportSearchStart,\n massReportSearchSuccess,\n massReportSearchFail,\n massReportExportStart,\n massReportExportSuccess,\n massReportExportFail,\n} from \"../redux/actions/reports/massReport\";\n\nexport function fetchMassReport(filters) {\n store.dispatch(massReportSearchStart()); \n return axios\n .get(GET_MASS_REPORT, {\n params: createMassReportQueryParameters(filters) \n })\n .then(resp => {\n store.dispatch(massReportSearchSuccess(resp.data, filters.fromDate, filters.toDate));\n return {isSuccess: true};\n })\n .catch(err => {\n const errorMessage = getServerErrorMessage(err);\n store.dispatch(massReportSearchFail(errorMessage));\n\n return {isSuccess: false, errorMessage};\n });\n}\n\nexport function fetchMassReportExportFile(filters) {\n store.dispatch(massReportExportStart());\n return axios\n .get(EXPORT_MASS_REPORT, {\n params: createMassReportQueryParameters(filters) \n })\n .then(resp => {\n const blob = b64toBlob(resp.data.file_base64);\n //const file_name = `Massiaruanne (${moment().format(\"YYYY-MM-DD\")}).xlsx`;\n const file_name = resp.data.file_name;\n FileSaver.saveAs(blob, file_name);\n store.dispatch(massReportExportSuccess());\n\n return {isSuccess: true};\n })\n .catch(err => {\n const errorMessage = getServerErrorMessage(err);\n store.dispatch(massReportExportFail(errorMessage));\n\n return {isSuccess: false, errorMessage};\n });\n}\n\nfunction createMassReportQueryParameters(filters) {\n return {\n fromDate: filters.fromDate ? moment(filters.fromDate).format(salesReportPeriodServerFormat) : \"\",\n toDate: filters.toDate ? moment(filters.toDate).format(salesReportPeriodServerFormat) : \"\",\n }\n}\n","import React from \"react\";\nimport { withRouter } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport PropTypes from \"prop-types\";\nimport moment from \"moment\";\n\nimport { Form, Card, CardBody, Row, Col, Button, FormGroup, Label } from \"reactstrap\";\nimport DatePicker from \"react-datepicker\";\n\nimport \"./MassSearch.scss\";\nimport {\n salesReportPeriodSearchFormat,\n getFromAndToDatePeriodAsString,\n} from \"util/DateTime\";\n\nimport { massReportSearchFilterUpdate } from \"redux/actions/reports/massReport\";\nimport {\n clearNavigationHeaderSuffix,\n updateNavigationHeaderSuffix,\n} from \"util/Navigation\";\nimport { fetchMassReport, fetchMassReportExportFile } from \"util/MassReport\";\nimport { clearLocalAlerts, addNewLocalErrorAlert } from \"util/Alerts\";\n\nimport SmallLoader from \"components/Loader/WrappedPulseLoader\";\nimport { withTranslation } from \"react-i18next\";\n\nclass MassReportsSearch extends React.Component {\n static propTypes = {\n filters: PropTypes.object.isRequired,\n massList: PropTypes.array,\n massListFromDate: PropTypes.object,\n massListToDate: PropTypes.object,\n massReportSearchFilterUpdate: PropTypes.func.isRequired,\n massListLoading: PropTypes.bool,\n exportLoading: PropTypes.bool,\n };\n\n componentDidMount() {\n if (this.props.massList) {\n updateNavigationHeaderSuffix(\n getFromAndToDatePeriodAsString(\n this.props.massListFromDate,\n this.props.massListToDate\n )\n );\n }\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.massList && this.props.massList !== prevProps.massList) {\n updateNavigationHeaderSuffix(\n getFromAndToDatePeriodAsString(\n this.props.massListFromDate,\n this.props.massListToDate\n )\n );\n }\n }\n\n componentWillUnmount() {\n clearNavigationHeaderSuffix();\n }\n\n render() {\n const { t } = this.props;\n const filters = this.props.filters;\n return (\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n { e.preventDefault(); this.onSearch(); }}\n disabled={this.props.massListLoading}\n >\n {this.props.massListLoading ? (\n \n ) : (\n t(\"buttons.search\")\n )}\n \n \n \n \n \n \n {this.props.exportLoading ? (\n \n ) : (\n t(\"buttons.export\")\n )}\n \n \n \n \n \n \n
\n );\n }\n\n onSearch = () => {\n if (this.props.massListLoading) {\n return;\n }\n clearLocalAlerts();\n fetchMassReport(this.props.filters).then((result) => {\n if (!result.isSuccess) {\n addNewLocalErrorAlert(\n this.props.t(\n \"reports.massReportLoadingFailed\",\n \"Massiaruande laadimine ebaõnnestus: \"\n ) + result.errorMessage,\n this.props.location.pathname,\n true\n );\n }\n });\n };\n\n onExport = () => {\n if (this.props.exportLoading) {\n return;\n }\n clearLocalAlerts();\n fetchMassReportExportFile(this.props.filters).then((result) => {\n if (!result.isSuccess) {\n addNewLocalErrorAlert(\n this.props.t(\n \"reports.massReportExportFailed\",\n \"Massiaruande ekportimine ebaõnnestus: \"\n ) + result.errorMessage,\n this.props.location.pathname,\n true\n );\n }\n });\n };\n\n handleFilterUpdate = (name) => (value) => {\n this.props.massReportSearchFilterUpdate(name, value);\n };\n\n handleSelectChange = (name) => (selectedObject) => {\n this.handleFilterUpdate(name)(selectedObject);\n };\n\n handleReportFormatSelectChange = (selectedObject) => {\n this.props.massReportUpdateFormat(selectedObject);\n };\n}\n\nconst mapStateToProps = (state) => {\n return {\n filters: state.massReport.filters,\n massList: state.massReport.massList,\n massListFromDate: state.massReport.massListFromDate,\n massListToDate: state.massReport.massListToDate,\n massListLoading: state.massReport.massListLoading,\n exportLoading: state.massReport.exportLoading,\n };\n};\n\nconst reduxActions = {\n massReportSearchFilterUpdate,\n};\n\nexport default withRouter(\n connect(\n mapStateToProps,\n reduxActions\n )(withTranslation(\"common\")(MassReportsSearch))\n);\n","import * as actionTypes from 'redux/actions/actionTypes';\n\nexport const massReportSearchStart = () => {\n return {\n type: actionTypes.MASS_REPORT_SEARCH_START\n }\n};\n\nexport const massReportSearchSuccess = (massList, fromDate, toDate) => {\n return {\n type: actionTypes.MASS_REPORT_SEARCH_SUCCESS,\n massList, fromDate, toDate,\n }\n};\n\nexport const massReportSearchFail = (err) => {\n return {\n type: actionTypes.MASS_REPORT_SEARCH_FAIL,\n error: err\n }\n};\n\nexport const massReportSearchFilterUpdate = (key, value) => {\n return {\n type: actionTypes.MASS_REPORT_SEARCH_FILTER_UPDATE,\n key: key,\n value: value,\n }\n}\n\nexport const massReportUpdateFormat = (format) => {\n return {\n type: actionTypes.MASS_REPORT_UPDATE_FORMAT,\n format,\n }\n}\n\nexport const massReportExportStart = () => {\n return {\n type: actionTypes.MASS_REPORT_EXPORT_START\n }\n};\n\nexport const massReportExportSuccess = (exportFile) => {\n return {\n type: actionTypes.MASS_REPORT_EXPORT_SUCCESS,\n exportFile: exportFile\n }\n};\n\nexport const massReportExportFail = (err) => {\n return {\n type: actionTypes.MASS_REPORT_EXPORT_FAIL,\n error: err\n }\n};","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { connect } from \"react-redux\";\n\nimport { Card, CardBody } from \"reactstrap\";\n// datatable\nimport BootstrapTable from \"react-bootstrap-table-next\";\nimport \"react-bootstrap-table-next/dist/react-bootstrap-table2.min.css\";\nimport \"react-bootstrap-table2-filter/dist/react-bootstrap-table2-filter.min.css\";\n\nimport WrappedLoader from \"components/Loader/WrappedLoader\";\nimport CenteredRowCol from \"components/Misc/CenteredRowCol\";\n\nimport \"./MassTable.scss\";\nimport { withTranslation } from \"react-i18next\";\n\nclass MassReportTable extends React.Component {\n static propTypes = {\n filters: PropTypes.object.isRequired,\n massList: PropTypes.array,\n massListLoading: PropTypes.bool,\n error: PropTypes.any,\n };\n\n render() {\n let content;\n if (this.props.massListLoading) {\n return ;\n } else if (!this.props.massList) {\n return false; //content = this.renderText(Otsi.);\n } else {\n content = this.renderTable();\n }\n\n return (\n <>\n \n {content}\n \n \n );\n }\n\n renderCenteredContent = (content) => {\n return {content};\n };\n\n renderTable() {\n const { t } = this.props;\n const data = this.props.massList;\n\n /* Had to add the first id column with hidden: true, \n because it didn't work correctly with all other columns being\n negative filter (!filter...) values.\n */\n const columns = [\n {\n dataField: \"id\",\n text: t(\"reports.filter.id\", \"ID\"),\n classes: \"semibold-14\",\n hidden: true,\n },\n {\n dataField: \"EAN\",\n text: t(\"reports.filter.ean\", \"EAN\"),\n classes: \"semibold-14\",\n sort: true,\n },\n {\n dataField: \"name\",\n text: t(\"reports.filter.packageName\", \"Nimetus\"),\n classes: \"regular-14\",\n sort: true,\n },\n {\n dataField: \"package_type\",\n text: t(\"reports.filter.packageType\", \"Pakendi tüüp\"),\n classes: \"regular-14\",\n sort: true,\n },\n {\n dataField: \"weight\",\n text: t(\"reports.filter.weight\", \"kaal(grammi)\"),\n classes: \"semibold-14\",\n sort: true,\n },\n {\n dataField: \"volume\",\n text: t(\"reports.filter.volume\", \"Maht\"),\n classes: \"regular-14\",\n sort: true,\n },\n {\n dataField: \"total_quantity\",\n text: t(\"reports.filter.quantity\", \"Deklareeritud(tk)\"),\n classes: \"regular-14\",\n sort: true,\n },\n {\n dataField: \"total_weight\",\n text: t(\"reports.filter.totalWeight\", \"Kaal(tonni)\"),\n classes: \"regular-14\",\n sort: true,\n },\n ];\n return (\n \n }\n />\n );\n }\n\n NoDataIndication(props) {\n let content = props.t(\n \"reports.massReportNoPackagesErrorMessage\",\n \"Ei leitud ühtegi pakendit, mis vastaks otsingutingimustele.\"\n );\n if (props.loading) {\n content = ;\n } else if (props.error) {\n content = {props.error};\n }\n\n return
{content}
;\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n filters: state.massReport.filters,\n massList: state.massReport.massList,\n massListLoading: state.massReport.massListLoading,\n error: state.massReport.error,\n };\n};\n\nexport default connect(mapStateToProps)(\n withTranslation(\"common\")(MassReportTable)\n);\n","import React from \"react\";\n\nimport MassSearch from \"../../components/Reports/Mass/Search/MassSearch\";\nimport MassTable from \"../../components/Reports/Mass/Table/MassTable\";\n\nclass MassReport extends React.Component {\n\n render() {\n return (\n <>\n \n
\n \n
\n \n );\n }\n}\n\nexport default MassReport;","export const contractStatuses = {\n SIGNED: \"SIGNED\",\n NOT_SIGNED: \"NOT_SIGNED\",\n INVALID: \"INVALID\",\n};\n\nexport const contractStatusTypes = {\n [contractStatuses.INVALID]: {\n client_type: \"INFO\",\n admin_type: \"INFO\",\n },\n [contractStatuses.NOT_SIGNED]: {\n client_type: \"ERROR\",\n admin_type: \"WARNING\",\n },\n [contractStatuses.SIGNED]: {\n client_type: \"SUCCESS\",\n admin_type: \"SUCCESS\",\n },\n};\n\nexport function getContractStatusType(statusValue, adminMode = false) {\n const typeField = adminMode ? \"admin_type\" : \"client_type\";\n return (\n contractStatuses[statusValue] &&\n contractStatusTypes[statusValue][typeField]\n );\n}\n","import React from \"react\";\nimport BootstrapTable from \"react-bootstrap-table-next\";\nimport \"react-bootstrap-table-next/dist/react-bootstrap-table2.min.css\";\nimport \"components/Packages/PackagesTable/PackagesTable.scss\";\nimport \"components/Profile/Users/UsersTable/UsersTable.scss\";\n\nimport { Card, CardBody, CardHeader } from \"reactstrap\";\nimport { connect } from \"react-redux\";\nimport { fetchContracts } from \"util/Profile\";\nimport DocumentCell from \"../../Table/Cell/DocumentCell\";\nimport StatusCell from \"../../Table/Cell/Status/StatusCell\";\nimport WrappedLoader from \"components/Loader/WrappedLoader\";\nimport { getContractStatusType } from \"components/Admin/Contract/helpers/Options\";\nimport { withTranslation } from \"react-i18next\";\n\nimport moment from \"moment\";\nimport { DATE_FORMAT } from \"util/DateTime\";\n\nclass Contracts extends React.Component {\n componentDidMount() {\n fetchContracts();\n }\n\n render() {\n const { t } = this.props;\n return (\n \n \n \n {t(\"contracts.title\", \"Kõik lepingud\")}\n \n \n {this.renderTable()}\n \n );\n }\n\n renderTable() {\n const { t } = this.props;\n if (this.props.contractsLoading) {\n return ;\n }\n\n const contractsEndpointDateFormat = \"DD-MM-YYYY\";\n\n const columns = [\n {\n dataField: \"number\",\n classes: \"pointer\",\n text: t(\"contracts.number\", \"Lepingu number\"),\n sort: true,\n formatter: (cell, row) => (\n { }}\n />\n ),\n },\n {\n dataField: \"status\",\n text: t(\"contracts.status\", \"Staatus\"),\n sort: true,\n formatter: (obj) => (\n \n ),\n },\n {\n dataField: \"created_at\",\n text: t(\"contracts.submitted\", \"Esitatud\"),\n sort: true,\n formatter: created_at => created_at ? moment(created_at, contractsEndpointDateFormat).format(DATE_FORMAT) : \"\",\n sortValue: created_at => moment(created_at, contractsEndpointDateFormat),\n },\n {\n dataField: \"approved_at\",\n text: t(\"contracts.contractConcluded\", \"Lepingu sõlmitud\"),\n sort: true,\n formatter: approved_at => approved_at ? moment(approved_at, contractsEndpointDateFormat).format(DATE_FORMAT) : \"\",\n sortValue: approved_at => moment(approved_at, contractsEndpointDateFormat),\n },\n {\n dataField: \"invalidated_at\",\n text: t(\"contracts.contractEnded\", \"Lepingu lõpetatud\"),\n sort: true,\n formatter: invalidated_at => invalidated_at ? moment(invalidated_at, contractsEndpointDateFormat).format(DATE_FORMAT) : \"\",\n sortValue: invalidated_at => moment(invalidated_at, contractsEndpointDateFormat),\n },\n ];\n\n return (\n \n }\n />\n );\n }\n\n static NoDataIndication(props) {\n let content = props.t(\"contracts.tableNoContractsText\", \"Ei leitud ühtegi lepingut.\");\n if (props.loading) {\n content = ;\n }\n\n return
{content}
;\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n contracts: state.profile.contracts,\n contractsLoading: state.profile.contractsLoading,\n };\n};\n\nexport default connect(mapStateToProps)(withTranslation(\"common\")(Contracts));\n","var _rect, _path, _path2;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nconst SvgClose = _ref => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 16,\n height: 16,\n rx: 8,\n fill: \"#FB4F39\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.8281 5.17154L5.17127 10.8284\",\n stroke: \"white\",\n strokeWidth: 1.7,\n strokeLinecap: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.8281 10.8286L5.17127 5.17176\",\n stroke: \"white\",\n strokeWidth: 1.7,\n strokeLinecap: \"round\"\n })));\n};\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgClose, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/close.7c351a4a.svg\";\nexport { ForwardRef as ReactComponent };","import React from \"react\";\nimport { withRouter } from \"react-router-dom\";\n\nimport { ReactComponent as Logo } from \"assets/icons/logo.svg\";\nimport urls from \"config/urls\";\n\nimport \"./BrandLogoText.scss\";\n\nfunction BrandLogoText({ history }) {\n return (\n {\n e.preventDefault();\n history.push(urls.DOMAIN)\n }}\n >\n \n

Eesti Pandipakend

\n \n );\n}\n\nexport default withRouter(BrandLogoText);\n","import React from \"react\";\nimport { withRouter } from \"react-router-dom\";\nimport { Col, Container, Row, Card, CardBody } from \"reactstrap\";\n\nimport BrandLogoText from \"components/Misc/BrandLogoText\";\n\nfunction PrivacyPolicyContent(props) {\n return (\n
\n

Privaatsuspoliitika

\n

1. Üldsätted

\n

1.1. Käesolev privaatsuspoliitika reguleerib isikuandmete kogumist, töötlemist ja säilitamist käsitlevaid põhimõtteid. Isikuandmeid kogub, töötleb ja säilitab isikuandmete vastutav töötleja Eesti Pandipakend OÜ (edaspidi andmetöötleja).

\n

1.2. Andmesubjekt privaatsuspoliitika tähenduses on klient või muu füüsiline isik, kelle isikuandmeid andmetöötleja töötleb.

\n

1.3. Klient privaatsuspoliitika tähenduses on igaüks, kes ostab andmetöötleja kodulehelt kaupu või teenuseid.

\n

1.4. Andmetöötleja järgib õigusaktides sätestatud andmete töötlemise põhimõtteid, muuhulgas töötleb andmetöötleja isikuandmeid seaduslikult, õiglaselt ja turvaliselt. Andmetöötleja on võimeline kinnitama, et isikuandmeid on töödeldud vastavalt õigusaktides sätestatule.

\n\n

2. Isikuandmete kogumine, töötlemine ja säilitamine

\n

2.1. Isikuandmed, mida andmetöötleja kogub, töötleb ja säilitab, on kogutud elektrooniliselt, peamiselt kodulehe ja e-posti vahendusel.

\n

2.2. Oma isikuandmete jagamisega annab andmesubjekt andmetöötlejale õiguse koguda, korraldada, kasutada ja hallata privaatsuspoliitikas määratletud eesmärgil isikuandmeid, mida andmesubjekt otse või kaudselt kodulehel kaupu või teenuseid ostes andmetöötlejale jagab.

\n

2.3. Andmesubjekt vastutab selle eest, et tema poolt esitatud andmed oleksid täpsed, õiged ja terviklikud. Teadlikult valeandmete esitamist peetakse privaatsuspoliitika rikkumiseks. Andmesubjekt on kohustatud andmetöötlejat viivitamatult teavitama esitatud andmete muutumisest.

\n

2.4. Andmetöötleja ei vastuta andmesubjekti poolt valeandmete esitamisest põhjustatud kahju eest andmesubjektile või kolmandatele osapooltele.

\n\n

3. Klientide isikuandmete töötlemine

\n

3.1. Andmetöötleja võib töödelda järgnevaid andmesubjekti isikuandmeid:

\n

3.1.1. Ees- ja perekonnanimi;

\n

3.1.2. Sünnikuupäev;

\n

3.1.3. Telefoninumber;

\n

3.1.4. E-posti aadress;

\n

3.1.5. Kontaktaadress;

\n

3.1.6. Arvelduskonto number;

\n

3.1.7. Maksekaardi detailid;

\n

3.2. Lisaks eeltoodule on andmetöötlejal õigus koguda kliendi kohta andmeid, mis on kättesaadavad avalikes registrites.

\n

3.3. Isikuandmete töötlemise õiguslik alus on isikuandmete kaitse üldmääruse paragrahv 6 lg 1 p-d a), b), c) ja f):

\n

a) andmesubjekt on andnud nõusoleku töödelda oma isikuandmeid ühel või mitmel konkreetsel eesmärgil;

\n

b) isikuandmete töötlemine on vajalik andmesubjekti osalusel sõlmitud lepingu täitmiseks või lepingu sõlmimisele eelnevate meetmete võtmiseks vastavalt andmesubjekti taotlusele;

\n

c) isikuandmete töötlemine on vajalik vastutava töötleja juriidilise kohustuse täitmiseks;

\n

f) isikuandmete töötlemine on vajalik vastutava töötleja või kolmanda isiku õigustatud huvi korral, välja arvatud juhul, kui sellise huvi kaaluvad üles andmesubjekti huvid või põhiõigused ja -vabadused, mille nimel tuleb kaitsta isikuandmeid, eriti juhul kui andmesubjekt on laps.

\n

3.4. Isikuandmete säilitamine

\n

E-keskkonna kliendikonto sulgemisel kustutatakse isikuandmed, v.a juhul kui selliseid andmeid on vaja säilitada raamatupidamise jaoks või vaidluste lahendamiseks.

\n

Maksetega seotud vaidluste korral säilitatakse isikuandmed kuni nõude täitmiseni või aegumistähtaja lõpuni (kolm aastat).

\n

Raamatupidamise jaoks vajalikud isikuandmed säilitatakse vastavalt seaduses nimetatud tähtaegadele.

\n

3.5. Andmetöötlejal on õigus klientide isikuandmeid jagada kolmandate isikutega, kelleks on näiteks volitatud andmetöötlejad, raamatupidajad, transpordi- ja kullerettevõtted, ülekandeteenuseid pakkuvad ettevõtted Andmetöötleja on isikuandmete vastutav töötleja. Andmetöötleja edastab maksete teostamiseks vajalikud isikuandmed volitatud töötleja EveryPay AS-ile.

\n

3.6. Andmesubjekti isikuandmete töötlemisel ja säilitamisel rakendab andmetöötleja organisatoorseid ja tehnilisi meetmeid, mis tagavad isikuandmete kaitse juhusliku või ebaseadusliku hävitamise, muutmise, avalikustamise ja mis tahes muu ebaseadusliku töötlemise eest.

\n

3.7. Andmetöötleja säilitab andmesubjektide andmeid sõltuvalt töötlemise eesmärgist, kuid mitte kauem kui 7 aastat.

\n\n

4. Andmesubjekti õigused

\n

4.1. Andmesubjektil on õigus saada ligipääs oma isikuandmetele ning nendega tutvuda.

\n

4.2. Andmesubjektil on õigus saada informatsiooni tema isikuandmete töötlemise kohta.

\n

4.3. Andmesubjektil on õigus täiendada või parandada ebatäpseid andmeid.

\n

4.4. Kui andmetöötleja töötleb andmesubjekti isikuandmeid andmesubjekti nõusoleku alusel, siis on andmesubjektil õigus igal ajal nõusolek tagasi võtta.

\n

4.5. Andmesubjekt saab õiguste teostamiseks pöörduda e-poe klienditoe poole aadressil info@eestipandipakend.ee.

\n

4.6. Andmesubjektil on oma õiguste kaitseks võimalik esitada kaebus Andmekaitse Inspektsioonile.

\n\n

5. Lõppsätted

\n

5.1. Käesolevad andmekaitsetingimused on koostatud kooskõlas Euroopa Parlamendi ja nõukogu määrusega (EL) nr 2016/679 füüsiliste isikute kaitse kohta isikuandmete töötlemisel ja selliste andmete vaba liikumise ning direktiivi 95/46 / EÜ kehtetuks tunnistamise kohta / EÜ (isikuandmete kaitse üldmäärus), Eesti Vabariigi isikuandmete kaitse seadusega ning Eesti Vabariigi ja Euroopa Liidu õigusaktidega.

\n

5.2. Andmetöötlejal on õigus andmekaitsetingimusi osaliselt või täielikult muuta, teavitades andmesubjekte muudatustest kodulehe www.ekeskkond.eestipandipakend.ee kaudu.

\n
\n );\n}\n\nfunction PrivacyPolicy(props) {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n\nexport default withRouter(PrivacyPolicy);\n","import React from \"react\";\nimport { withRouter } from \"react-router-dom\";\nimport { Col, Container, Row, Card, CardBody } from \"reactstrap\";\n\n// datatable\nimport BootstrapTable from \"react-bootstrap-table-next\";\nimport \"react-bootstrap-table-next/dist/react-bootstrap-table2.min.css\";\n\nimport BrandLogoText from \"components/Misc/BrandLogoText\";\n\nfunction CookiePolicyContent(props) {\n const cookies = [\n {\n name: \"cookie_consent\",\n description: \"Kasutatakse meeldejätmiseks, kas külastaja on nõustunud küpsiste kasutustingimustega, või tuleks näidata vastavat teadet. Aegub peale 30 päeva möödumist.\"\n },\n {\n name: \"cookie_consent-legacy\",\n description: \"Kasutatakse meeldejätmiseks, kas külastaja on nõustunud küpsiste kasutustingimustega, või tuleks näidata vastavat teadet. Aegub peale 30 päeva möödumist.\"\n },\n {\n name: \"csrftoken\",\n description: \"Kaitseb CSRF rünnakute vastu. Aegub peale 1 aasta möödumist.\"\n },\n {\n name: \"sessionid\",\n description: \"Sessiooniküpsis, mis aegub peale kasutaja sessiooni lõppemist või veebilehitseja sulgemist.\"\n },\n ];\n\n const columns = [\n {\n dataField: \"name\",\n text: \"Nimi\",\n },\n {\n dataField: \"description\",\n text: \"Kirjeldus\",\n },\n ];\n\n return (\n
\n

Küpsised

\n

18.08.2020

\n

Eesti Pandipakendi e-keskkonna võrgulehel kasutatatakse küpsiseid. Küpsistest saate loobuda igal ajal, muutes kasutatava seadme veebilehitseja seadistusi ja kustutades salvestatud küpsised.

\n\n

Veebis kasutatavad küpsised

\n \n
\n );\n}\n\nfunction CookiePolicy(props) {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n\nexport default withRouter(CookiePolicy);\n","var _path;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nconst SvgArrowLeft = _ref => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15 18L9.07071 12.0707C9.03166 12.0317 9.03166 11.9683 9.07071 11.9293L15 6\",\n stroke: \"#9FA2B4\",\n strokeWidth: 2,\n strokeLinecap: \"round\"\n })));\n};\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgArrowLeft, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/arrow-left.81bc5d21.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nconst SvgArrowRight = _ref => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9 18L14.9293 12.0707C14.9683 12.0317 14.9683 11.9683 14.9293 11.9293L9 6\",\n stroke: \"#9FA2B4\",\n strokeWidth: 2,\n strokeLinecap: \"round\"\n })));\n};\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgArrowRight, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/arrow-right.3648e9ca.svg\";\nexport { ForwardRef as ReactComponent };","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { withTranslation } from \"react-i18next\";\n\nimport {\n Row,\n Col,\n Button,\n UncontrolledDropdown,\n DropdownToggle,\n DropdownMenu,\n DropdownItem,\n} from \"reactstrap\";\n\nimport { ReactComponent as LeftIcon } from \"assets/icons/arrow-left.svg\";\nimport { ReactComponent as RightIcon } from \"assets/icons/arrow-right.svg\";\n\nimport \"./CustomPagination.scss\";\n\nclass CustomPagination extends React.Component {\n static propTypes = {\n page: PropTypes.number.isRequired,\n sizePerPage: PropTypes.number.isRequired,\n dataSize: PropTypes.number.isRequired,\n sizePerPageList: PropTypes.array.isRequired,\n onSizePerPageChange: PropTypes.func.isRequired,\n onPageChange: PropTypes.func.isRequired,\n unknownSizePerPageText: PropTypes.string,\n };\n\n render() {\n return (\n \n \n {this.renderSizePerPageList()}\n \n {this.renderTotals()}\n \n \n \n \n \n \n \n \n \n );\n }\n\n renderTotals() {\n const totalSize = this.props.dataSize || 0;\n const firstPageRowIndex = this.getPageFirstIndex();\n const lastPageRowIndex = this.getPageLastIndex();\n\n return (\n \n {`${firstPageRowIndex}-${lastPageRowIndex} of ${totalSize}`}\n \n );\n }\n\n renderSizePerPageList() {\n const selectedAndDropdown = (\n \n \n {this.getSizePerPageText()}\n \n \n {this.props.sizePerPageList.map((option, index) => (\n this.onSizePerPageChange(option)}\n >\n {option.text}\n \n ))}\n \n \n );\n\n return (\n <>\n \n {this.props.t(\"sizePerPage\")}:\n \n
{selectedAndDropdown}
\n \n );\n }\n\n getPageFirstIndex = () => {\n const totalSize = this.props.dataSize || 0;\n const currentPage = this.props.page;\n const sizePerPage = this.props.sizePerPage || totalSize;\n\n const firstPageRowIndex =\n totalSize === 0 ? 0 : 1 + sizePerPage * (currentPage - 1);\n return firstPageRowIndex;\n };\n\n getPageLastIndex = () => {\n const totalSize = this.props.dataSize || 0;\n const currentPage = this.props.page;\n const sizePerPage = this.props.sizePerPage || totalSize;\n\n const lastPageRowIndex = Math.min(currentPage * sizePerPage, totalSize);\n return lastPageRowIndex;\n };\n\n getSizePerPageText = () => {\n const sizePerPage = this.props.sizePerPage;\n for (const option of this.props.sizePerPageList) {\n if (sizePerPage === option.value) {\n return option.text;\n }\n }\n\n return this.props.unknownSizePerPageText || sizePerPage;\n };\n\n isPrevPageDisabled = () => {\n return this.props.page <= 1;\n };\n\n isNextPageDisabled = () => {\n return (\n this.props.sizePerPage === 0 ||\n this.props.dataSize <= this.props.page * this.props.sizePerPage\n );\n };\n\n onPrevPage = () => {\n this.props.onPageChange(this.props.page - 1, this.props.sizePerPage);\n };\n\n onNextPage = () => {\n this.props.onPageChange(this.props.page + 1, this.props.sizePerPage);\n };\n\n onSizePerPageChange = (newSelected) => {\n const newSizePerPage = newSelected.value;\n if (newSizePerPage === 0) {\n this.props.onSizePerPageChange(newSizePerPage, 1);\n } else {\n const currentStartingIndex = this.getPageFirstIndex();\n const newPage = Math.max(\n 1,\n Math.ceil(currentStartingIndex / newSizePerPage)\n );\n this.props.onSizePerPageChange(newSelected.value, newPage);\n }\n };\n}\n\nexport default withTranslation()(CustomPagination);\n","import React from \"react\";\n\nimport Checkbox from \"components/Form/Checkbox\";\n\nimport \"./SelectionHeader.scss\";\n\nexport default function CustomSelectionHeader({ checked, indeterminate }) {\n\n if (indeterminate) {\n return { return null; }} className=\"custom-checkbox-indeterminate px-0\" />;\n }\n\n return { return checked ? true : false; }} className=\"px-0\" />;\n}\n","import React from \"react\";\nimport axios from \"../../axios\";\nimport store from \"redux/store\";\nimport moment from \"moment\";\nimport { Trans } from \"react-i18next\";\n\nimport urls, {ID_PLACEHOLDER} from \"config/urls\";\nimport { getServerErrorMessage, getErrorMessageList } from \"util/Errors\";\nimport { addNewLocalErrorAlert, addNewLocalSuccessAlert, clearLocalAlerts } from \"util/Alerts\";\n\nimport { downloadFileBase64 } from \"util/Files\";\nimport { isAdminMode } from \"util/Access\";\n\nimport StatusCell, {statusTypes} from \"components/Table/Cell/Status/StatusCell\";\n\nimport {\n actions, filterConfirmedOptions\n} from \"./redux\";\n\nexport function getDetailsViewUrl(id) {\n let path;\n if (isAdminMode()) {\n path = urls.EPP_REPORTS_RETURN_DETAILS;\n } else {\n path = urls.REPORTS_RETURN_DETAILS;\n }\n return path.replace(ID_PLACEHOLDER, id);\n}\n\nexport function getListViewUrl() {\n if (isAdminMode()) {\n return urls.EPP_REPORTS_RETURN_LIST;\n } else {\n return urls.REPORTS_RETURN_LIST;\n }\n}\n\nexport function fetchReportsList(filters, sorting, pagination, alertGroup = null) {\n store.dispatch(actions.listFetchStart());\n const params = {\n ordering: createSortingQueryParameter(sorting),\n page: pagination.page,\n page_size: pagination.sizePerPage,\n ...createFilteringQueryParameters(filters),\n };\n return axios\n .get(\"return-reports/\", {params})\n .then((resp) => {\n const {data} = resp;\n const list = data.results;\n const dataSize = data.count;\n \n store.dispatch(\n actions.listFetchSuccess(list, dataSize, filters)\n );\n\n return { isSuccess: true, list };\n })\n .catch((err) => {\n const errorMessage = getServerErrorMessage(err);\n store.dispatch(actions.listFetchFail(errorMessage));\n\n if (alertGroup) {\n clearLocalAlerts();\n addNewLocalErrorAlert(\n \n Aruannete laadimine ebaõnnestus: {{ errorMessage }}\n ,\n alertGroup,\n true\n );\n }\n\n return { isSuccess: false, errorMessage };\n });\n}\n\nexport function fetchDetails(id, alertGroup = null) {\n // Details view data managed in component instead of through redux.\n return axios\n .get(`return-reports/${id}/`)\n .then((resp) => {\n return { isSuccess: true, details: resp.data };\n })\n .catch((err) => {\n const errorMessage = getServerErrorMessage(err);\n\n if (alertGroup) {\n clearLocalAlerts();\n addNewLocalErrorAlert(\n \n Aruannete laadimine ebaõnnestus: {{ errorMessage }}\n ,\n alertGroup,\n true\n );\n }\n\n return { isSuccess: false, errorMessage };\n });\n}\n\nexport function confirmDetailsBulk(ids, alertGroup = null) {\n const body = {\n ids\n };\n return axios\n .post(\"return-reports/bulk-confirm/\", body).then((resp) => {\n return { isSuccess: true, list: resp.data };\n })\n .catch((err) => {\n let errorMessage, errorContent;\n const isListOfValidationErrors = err?.response?.status === 400 && Array.isArray(err?.response?.data);\n if (isListOfValidationErrors) {\n const errorContentFunc = (error) => {\n return error?.code || \"Unexpected error (Ootamatu viga)\";\n }\n const topText = Tagastuaruannete kinnitamine ebaõnnestus:\n errorMessage = getErrorMessageList(err.response.data, errorContentFunc, topText);\n errorContent = errorMessage;\n } else {\n errorMessage = getServerErrorMessage(err);\n errorContent = \n \n Tagastusaruannete kinnitamine ebaõnnestus: {{ errorMessage }}\n ;\n }\n if (alertGroup) {\n clearLocalAlerts();\n \n addNewLocalErrorAlert(\n errorContent,\n alertGroup,\n true\n );\n }\n\n return { isSuccess: false, errorMessage };\n });\n}\n\nexport function deleteDetails(id, alertGroup = null) {\n return axios\n .delete(`return-reports/delete/${id}/`)\n .then((resp) => {\n return { isSuccess: true, list: resp.data };\n })\n .catch((err) => {\n const errorMessage = getServerErrorMessage(err);\n\n if (alertGroup) {\n clearLocalAlerts();\n addNewLocalErrorAlert(\n \n Aruannete kustutamine ebaõnnestus: {{ errorMessage }}\n ,\n alertGroup,\n true\n );\n }\n\n return { isSuccess: false, errorMessage };\n });\n}\n\nexport function importFile(file, id, periodStart, periodEnd, alertGroup = null) {\n let endpoint;\n let formdata = new FormData();\n formdata.append(\"file\", file);\n formdata.append(\"name\", file.name);\n if (id) {\n endpoint = `return-reports/import/${id}/`;\n } else {\n endpoint = \"return-reports/import/\";\n // toJSON would timezone it to last month\n formdata.append(\"period_start\", moment(periodStart).startOf(\"month\").format(\"YYYY-MM-DD\"));\n formdata.append(\"period_end\", moment(periodEnd).startOf(\"month\").format(\"YYYY-MM-DD\"));\n }\n \n return axios\n .post(endpoint, formdata)\n .then((resp) => {\n return { isSuccess: true, statistics: resp.data, errorMessage: undefined };\n })\n .catch((err) => {\n let errorMessage, errorContent;\n \n //Can expect a list of validation errors if failing to parse specific rows.\n if (err?.response?.status === 400 && Array.isArray(err?.response?.data)) {\n const errorContentFunc = (error) => {\n return error?.code || \"Unexpected error (Ootamatu viga)\"\n }\n const topText = Tagastusaruande importimine ebaõnnestus:\n errorMessage = getErrorMessageList(err.response.data, errorContentFunc, topText);\n errorContent = errorMessage;\n } else {\n errorMessage = getServerErrorMessage(err);\n errorContent = (\n \n Tagastusaruande importimine ebaõnnestus: {{ errorMessage }}\n \n );\n \n }\n if (alertGroup) {\n clearLocalAlerts();\n addNewLocalErrorAlert(\n errorContent,\n alertGroup,\n true\n );\n }\n\n return { isSuccess: false, errorMessage, statistics: undefined };\n });\n}\n\nexport function fetchExportFile(id) {\n const url = `return-reports/export/${id}/`;\n return axios\n .get(url)\n .then((resp) => {\n const {filename, base64} = resp.data;\n downloadFileBase64(base64, filename);\n return { isSuccess: true };\n })\n .catch((err) => {\n const errorMessage = getServerErrorMessage(err);\n throw Error(errorMessage);\n });\n}\n\nconst createSortingQueryParameter = (sorting) => {\n const {order, dataField} = sorting;\n const orderMapping = {\n asc: \"\",\n desc: \"-\"\n };\n const fieldMapping = {\n \"client.name\": \"client__name\",\n \"period_start\": \"period_start\",\n \"period_end\": \"period_end\",\n \"confirmed_at\": \"confirmed_at\"\n };\n\n return `${orderMapping[order]}${fieldMapping[dataField] || dataField}`;\n};\n\nfunction ReturnReportImportSuccess({statistics, topText}) {\n if (!topText) {\n topText = (\n \n Tagastusaruannete importimine õnnestus\n \n );\n }\n const statisticsMessage = [\n `Loodi ${statistics.reports_created} tagastusaruannet`,\n `Loodi ${statistics.lines_created} aruanderida`,\n `Uuendati ${statistics.reports_updated} tagastusaruannet`,\n `Uuendati ${statistics.lines_updated} aruanderida`,\n `Kustutati ${statistics.lines_deleted} aruanderida.`,\n ]\n return getErrorMessageList(statisticsMessage, message => message, topText);\n}\n\nfunction ReturnReportStatus(props) {\n const {details, inlineStyle} = props;\n let type, label;\n if (!details?.id) return null;\n if (details.confirmed_at === null) {\n type = statusTypes.WARNING;\n label = Kinnitamata;\n } else {\n type = statusTypes.SUCCESS;\n label = Kinnitatud;\n }\n return (\n \n )\n}\n\nconst createFilteringQueryParameters = (filters) => {\n const addFilteringFieldToParams = (params, queryParameter, value) => {\n return {\n ...params,\n [queryParameter]: value,\n };\n };\n let params = {};\n if (filters.client) {\n const value = filters.client.value;\n params = addFilteringFieldToParams(params, \"client\", value);\n }\n if (filters.fromDate) {\n const value = moment(filters.fromDate).format(\"YYYY-MM\")\n params = addFilteringFieldToParams(params, \"period_start\", value);\n }\n if (filters.toDate) {\n const value = moment(filters.toDate).format(\"YYYY-MM\")\n params = addFilteringFieldToParams(params, \"period_end\", value);\n }\n if (filters.confirmed) {\n const selectedValue = filters.confirmed.value;\n let filterValue;\n if (selectedValue === true) filterValue = \"true\";\n else if (selectedValue === false) filterValue = \"false\";\n else filterValue = \"all\";\n params = addFilteringFieldToParams(params, \"confirmed\", filterValue);\n }\n\n return params;\n};\n\nexport default {\n //endpoints\n getDetailsViewUrl,\n getListViewUrl,\n fetchReportsList,\n fetchDetails,\n confirmDetailsBulk,\n deleteDetails,\n importFile,\n fetchExportFile,\n // components\n ReturnReportStatus,\n ReturnReportImportSuccess,\n // other\n actions,\n filterConfirmedOptions,\n}\n","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\nimport { PropTypes } from \"prop-types\";\nimport { withTranslation } from \"react-i18next\";\n\nimport { Card, CardBody, Form, Row, Col, Button } from \"reactstrap\";\n\n// datepicker\nimport DatePicker from \"react-datepicker\";\nimport \"react-datepicker/dist/react-datepicker.css\";\n\n// generic\nimport SmallLoader from \"components/Loader/WrappedPulseLoader\";\nimport Select from \"components/Form/Select\";\nimport {\n fetchAllClients,\n} from \"util/General\";\nimport { YEAR_MONTH_FORMAT_DATE_FN } from \"util/DateTime\";\nimport { isAdminMode } from \"util/Access\";\n\n// module specific\nimport { actions } from \"./redux\";\nimport reportUtils from \"./utils\";\n// css\nimport \"./ListSearch.scss\";\n\n\nclass ReturnReportsListSearch extends React.Component {\n static propTypes = {\n // manual\n onSearch: PropTypes.func.isRequired,\n // automatic\n loading: PropTypes.bool,\n filters: PropTypes.object.isRequired,\n isAdmin: PropTypes.bool,\n // actions\n updateFilters: PropTypes.func.isRequired,\n clearFilters: PropTypes.func.isRequired,\n // Taken from redux\n allClients: PropTypes.array,\n\n }\n\n componentDidMount() {\n fetchAllClients(this.props.allClients);\n }\n\n render() {\n const { t, filters, updateFilters, clearFilters, allClients, isAdmin } = this.props;\n return (\n
\n \n {isAdmin ?\n \n \n {t(\"reports.returnReport.listSearchHeader\")}\n \n \n :\n \n \n {t(\"reports.filter.period\")}\n \n \n }\n {\n isAdmin &&\n \n option.label}\n getOptionValue={(option) => option.value}\n onChange={value => updateFilters('client', value)}\n className=\"mb-2\"\n />\n \n }\n {\n isAdmin &&\n \n option.label}\n getOptionValue={(option) => option.value}\n onChange={value => updateFilters('confirmed', value)}\n className=\"mb-2\"\n />\n \n }\n \n updateFilters(\"fromDate\", value || filters.fromDate)}\n showMonthYearPicker\n maxDate={filters.toDate || new Date()}\n dateFormat={YEAR_MONTH_FORMAT_DATE_FN}\n />\n \n \n updateFilters(\"toDate\", value || filters.toDate)}\n minDate={filters.fromDate}\n maxDate={new Date()}\n dateFormat={YEAR_MONTH_FORMAT_DATE_FN}\n />\n \n \n {\n e.preventDefault();\n this.onSearch();\n }}\n disabled={this.props.loading}\n >\n {this.props.loading ? : t(\"buttons.search\")}\n \n \n \n \n {t(\"buttons.clearSearch\")}\n \n \n \n
\n );\n }\n\n onSearch = () => {\n this.props.onSearch(this.props.filters);\n }\n\n}\n\nconst mapStateToProps = state => {\n // Module state reducer\n const listState = state.returnReports;\n return {\n loading: listState.listLoading,\n filters: listState.listFilters,\n allClients: state.general.allClients,\n isAdmin: isAdminMode()\n }\n};\n\nconst reduxActions = {\n updateFilters: actions.listUpdateFilters,\n clearFilters: actions.listClearFilters,\n}\n\nexport default withRouter(connect(mapStateToProps, reduxActions)(withTranslation()(ReturnReportsListSearch)));\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { withTranslation } from \"react-i18next\";\nimport uniqueId from \"lodash/uniqueId\";\n\nimport ConfirmationModal from \"components/Form/Modals/ConfirmationModal\";\nimport { clearIncludedGroups } from \"util/Alerts\";\n\nimport reportUtils from \"./utils\";\n\nclass ConfirmReturnReportModal extends React.Component {\n static propTypes = {\n ids: PropTypes.array.isRequired,\n onSuccess: PropTypes.func,\n isOpen: PropTypes.bool,\n onToggle: PropTypes.func.isRequired,\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n groupId: uniqueId(\"confirm-return-report-modal__\"),\n isLoading: false,\n };\n }\n\n render() {\n const { t, isOpen, ids } = this.props;\n const { isLoading, groupId } = this.state;\n\n return (\n <>\n \n

\n {t(\n \"reports.return.confirmationDialog.confirmText\",\n \"Oled kindel, et soovid {{ count }} tagastusaruannet kinnitada?\",\n { count: ids.length }\n )}\n

\n\n \n \n );\n }\n\n toggle = () => {\n const { isOpen, onToggle, isLoading } = this.props;\n if (isLoading) return;\n clearIncludedGroups(this.state.groupId);\n onToggle(!isOpen);\n }\n\n onConfirm = () => {\n const { ids, onSuccess } = this.props;\n const { groupId } = this.state;\n clearIncludedGroups(groupId);\n this.setState({ isLoading: true });\n reportUtils.confirmDetailsBulk(ids, groupId)\n .then(({ isSuccess, list }) => {\n if (isSuccess && !!onSuccess) {\n onSuccess(list);\n }\n })\n .finally(() => {\n this.setState({ isLoading: false })\n });\n }\n}\n\nexport default withTranslation()(ConfirmReturnReportModal)\n","import React from \"react\";\nimport { withRouter } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport PropTypes from \"prop-types\";\nimport _ from \"lodash\";\nimport uniqueId from \"lodash/uniqueId\";\nimport accept from \"attr-accept\";\nimport { withTranslation, Trans } from \"react-i18next\";\n\nimport { Row, Col, Button, Input, Modal, ModalBody } from \"reactstrap\";\n\n// datepicker\nimport DatePicker from \"react-datepicker\";\nimport \"react-datepicker/dist/react-datepicker.css\";\n\nimport FileUpload from \"components/Form/Files/FileUpload\";\nimport SmallLoader from \"components/Loader/WrappedPulseLoader\";\nimport { ReactComponent as RemoveIcon } from \"assets/icons/close-inactive.svg\";\nimport CloseTextIcon from \"components/Misc/CloseTextIcon\";\n\nimport Alerts from \"components/Alerts/Alerts\";\nimport { YEAR_MONTH_FORMAT_DATE_FN } from \"util/DateTime\";\nimport {\n clearIncludedGroups,\n addNewLocalWarningAlert,\n addNewLocalInfoAlert,\n clearLocalAlerts\n} from \"util/Alerts\";\n\nimport reportUtils from \"./utils\";\n\nimport \"./ImportModal.scss\";\n\nclass ImportReturnReportModal extends React.Component {\n static propTypes = {\n // manual\n isOpen: PropTypes.bool.isRequired,\n details: PropTypes.object, // If given we update a specific report (only client's rows), if not we add/update bulk, need period\n onToggle: PropTypes.func.isRequired,\n onSuccess: PropTypes.func.isRequired,\n isDetailsView: PropTypes.bool,\n // defaults exist\n fileMaxSize: PropTypes.number,\n fileTypes: PropTypes.arrayOf(PropTypes.string), // Only array version because using [].includes\n }\n\n static defaultProps = {\n fileMaxSize: 5e6,\n fileTypes: [\".xlsx\", \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\"],\n }\n\n\n constructor(props) {\n super(props);\n this.state = {\n groupId: uniqueId(\"import-return-report-modal__\"),\n importFile: null,\n isLoading: false,\n reportId: props.details?.id || null,\n periodStart: null,\n periodEnd: null,\n }\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.isOpen !== this.props.isOpen) {\n this.setState({\n periodStart: null,\n periodEnd: null,\n importFile: null\n })\n }\n }\n\n render() {\n const { t, isOpen, details, fileTypes, fileMaxSize } = this.props;\n const { importFile, periodStart, periodEnd, groupId, isLoading } = this.state;\n if (!isOpen) {\n return false;\n }\n\n const isUpdateSpecificReport = !!details?.id;\n const isPeriodFieldsFilled = !!periodStart && !!periodEnd;\n const isFileSelected = !!importFile;\n const title = t(\"reports.return.import.title\", \"Tagastusaruannete import\");\n const canSubmit = isFileSelected && (isUpdateSpecificReport || isPeriodFieldsFilled);\n\n return (\n \n \n \n \n {title}\n \n \n \n \n \n \n \n \n \n \n {\n isUpdateSpecificReport &&\n \n \n \n \n \n }\n {\n !isUpdateSpecificReport &&\n \n \n this.setState({ periodStart: value })}\n showMonthYearPicker\n maxDate={periodEnd || new Date()}\n dateFormat={YEAR_MONTH_FORMAT_DATE_FN}\n />\n \n \n this.setState({ periodEnd: value })}\n minDate={periodStart}\n maxDate={new Date()}\n dateFormat={YEAR_MONTH_FORMAT_DATE_FN}\n />\n \n \n }\n\n \n \n \n {t(\"reports.importSalesReportModal.selectedFileHeader\", \"Valitud fail:\")}\n \n\n \n \n \n {importFile ? importFile.path : t(\"reports.importSalesReportModal.noFilePlaceholder\", \"Ühtegi faili ei ole valitud.\")}\n \n \n \n \n \n \n \n \n \n \n {t(\"reports.importSalesReportModal.cancelButton\", \"Tühista\")}\n \n \n \n \n {isLoading ? : t(\"reports.importSalesReportModal.importButton\", \"Import\")}\n \n \n \n \n \n );\n }\n\n clearModalAlerts = () => {\n clearIncludedGroups(this.state.groupId);\n }\n\n importReturnReportsFromFile = () => {\n const { onSuccess, details } = this.props;\n const { reportId, periodStart, periodEnd, importFile, groupId } = this.state;\n clearLocalAlerts();\n this.setState({ isLoading: true });\n reportUtils.importFile(importFile, reportId, periodStart, periodEnd, groupId)\n .then(\n ({ isSuccess, statistics, errorMessage }) => {\n if (isSuccess) {\n onSuccess(statistics, details);\n }\n }\n )\n .finally(() => {\n this.setState({ isLoading: false });\n });\n\n };\n\n onCancel = () => {\n if (this.state.isLoading) {\n return;\n }\n this.clearModalAlerts();\n this.props.onToggle(false);\n }\n\n onDrop = files => {\n this.clearModalAlerts();\n }\n\n onDropRejected = (rejectedFiles) => {\n const { t } = this.props;\n if (rejectedFiles.length > 1) {\n addNewLocalWarningAlert(t(\"reports.importSalesReportModal.alerts.warning.canOnlyDragOneFile\", \"Korraga võib tirida ainult ühe faili.\"), this.state.groupId);\n return;\n }\n const rejectedFile = rejectedFiles[0];\n if (rejectedFile.size > this.props.fileMaxSize) {\n const maxSizeMB = _.round(this.props.fileMaxSize / 1e6, 1);\n const message = Maksimaalne failimaht on {{ maxSizeMB }} MB.\n addNewLocalWarningAlert(message, this.state.groupId);\n }\n if (!this.props.fileTypes.includes(rejectedFile.type)) {\n }\n\n const isValidMimeTypeOrExtension = accept(\n {\n name: rejectedFile.name,\n type: rejectedFile.type\n },\n this.props.fileTypes\n );\n\n if (!isValidMimeTypeOrExtension) {\n addNewLocalWarningAlert(t(\"reports.importSalesReportModal.alerts.warning.fileTypeMustBeXLSX\", \"Fail peab olema .xlsx failitüüpi.\"), this.state.groupId);\n }\n }\n\n onDropAccepted = acceptedFiles => {\n const acceptedFile = acceptedFiles[0];\n this.setState({\n importFile: acceptedFile\n });\n const message = Faili {{ fileName: acceptedFile.name }} lisamine õnnestus.\n addNewLocalInfoAlert(message, this.state.groupId);\n\n }\n\n onRemoveSelectedFile = () => {\n this.clearModalAlerts();\n this.setState({\n importFile: null\n });\n }\n}\n\nconst mapStateToProps = state => {\n return {\n }\n};\n\nconst reduxActions = {\n};\n\nexport default withRouter(connect(mapStateToProps, reduxActions)(withTranslation()(ImportReturnReportModal)));\n","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\nimport { PropTypes } from \"prop-types\";\n\nimport { Row, Col, Button } from \"reactstrap\";\n\n// datepicker\nimport \"react-datepicker/dist/react-datepicker.css\";\n\n// generic\nimport LoadingAnimation from \"components/Loader/WrappedPulseLoader\";\nimport { isAdminMode } from \"util/Access\";\n\n// module specific\nimport { actions } from \"./redux\";\n//import reportUtils from \"./utils\";\nimport ConfirmDetailsModal from \"./ConfirmDetailsModal\";\nimport ImportModal from \"./ImportModal\";\n\n// css\n//import \"./ListActions.scss\";\n\n\nclass ReturnReportListActions extends React.Component {\n static propTypes = {\n // manual\n onConfirmDetailsSuccess: PropTypes.func.isRequired,\n onImportSuccess: PropTypes.func.isRequired,\n // automatic\n list: PropTypes.array.isRequired,\n selectedIds: PropTypes.array.isRequired,\n selectedRows: PropTypes.array.isRequired,\n isAdmin: PropTypes.bool,\n updateSelected: PropTypes.func.isRequired,\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n isConfirmDetailsOpen: false,\n isImportOpen: false\n }\n }\n\n componentDidMount() {\n }\n\n render() {\n const { isAdmin, selectedIds, updateSelected } = this.props;\n if (!isAdmin) return null;\n return (\n \n \n \n \n updateSelected([])}\n >\n Tühista valik ({selectedIds.length})\n \n \n \n {this.renderConfirmReportsButtonAndModal()}\n \n \n {this.renderImportButtonAndModal()}\n \n \n \n \n )\n }\n\n renderConfirmReportsButtonAndModal() {\n const { selectedIds, onConfirmDetailsSuccess, isAdmin } = this.props;\n const { isConfirmDetailsOpen } = this.state;\n\n if (!isAdmin) return null;\n\n const onToggle = () => {\n this.setState(prevState => { return { isConfirmDetailsOpen: !prevState.isConfirmDetailsOpen } });\n };\n const onSuccess = details => {\n this.setState({\n isConfirmDetailsOpen: false\n })\n if (onConfirmDetailsSuccess) {\n onConfirmDetailsSuccess(details);\n }\n }\n const isButtonDisabled = !this.isAllSelectedConfirmable();\n return (\n <>\n \n {\n `Kinnita ${selectedIds.length} ${selectedIds.length === 1 ? \"aruanne\" : \"aruannet\"}`\n }\n \n \n\n \n );\n }\n\n renderImportButtonAndModal() {\n const { onImportSuccess, isAdmin } = this.props;\n const { isImportOpen } = this.state;\n\n if (!isAdmin) return null;\n\n const onToggle = () => {\n this.setState(prevState => { return { isImportOpen: !prevState.isImportOpen } });\n };\n const onSuccess = data => {\n this.setState({\n isImportOpen: false\n })\n if (onImportSuccess) {\n onImportSuccess(data);\n }\n }\n const isButtonDisabled = false;\n const isOpen = isImportOpen;\n return (\n <>\n \n Impordi aruanded\n \n \n\n \n );\n }\n\n isAllSelectedConfirmable = () => {\n const { selectedRows, selectedIds } = this.props;\n if (selectedIds.length === 0) return false;\n // If these two do not match, something has gone wrong somewhere\n if (selectedRows.length !== selectedIds.length) return false;\n return selectedRows.every(row => row.is_confirmable === true);\n }\n\n}\n\nconst mapStateToProps = state => {\n // Module state reducer\n const listState = state.returnReports;\n return {\n isAdmin: isAdminMode(),\n list: listState.list,\n selectedIds: listState.listSelectedIds,\n selectedRows: listState.list.filter(row => listState.listSelectedIds.includes(row.id))\n }\n};\n\nconst reduxActions = {\n updateSelected: actions.listSelectedUpdate\n}\n\nexport default withRouter(connect(mapStateToProps, reduxActions)(ReturnReportListActions));\n","import React from \"react\";\nimport { withRouter } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport PropTypes from \"prop-types\";\nimport _ from \"lodash\";\nimport { withTranslation } from \"react-i18next\";\nimport { Button, UncontrolledButtonDropdown, DropdownMenu, DropdownItem, DropdownToggle, Row, Col } from 'reactstrap';\n\n\nimport { ReactComponent as MoreVerticalIcon } from 'assets/icons/more-vertical.svg';\nimport { clearLocalAlerts, addNewLocalErrorAlert } from \"util/Alerts\";\nimport { isAdminMode } from \"util/Access\";\n\nimport ConfirmDetailsModal from \"./ConfirmDetailsModal\";\nimport ImportModal from \"./ImportModal\";\nimport reportUtils from \"./utils\";\n\nimport \"./ActionsMenu.scss\";\n\nconst StyledDropdownItem = (props) => {props.children};\n\nclass ReturnReportActionsMenu extends React.Component {\n static propTypes = {\n details: PropTypes.object.isRequired,\n onConfirmDetailsSuccess: PropTypes.func.isRequired,\n onImportSuccess: PropTypes.func.isRequired,\n isDetailsViewMode: PropTypes.bool,\n // automatic\n isAdmin: PropTypes.bool\n }\n\n constructor(props) {\n super(props);\n this.state = {\n isConfirmDetailsOpen: false,\n isImportOpen: false\n }\n }\n\n render() {\n const { isDetailsViewMode } = this.props;\n\n return (\n
\n {\n isDetailsViewMode ?\n this.renderDetailsViewMode()\n :\n this.renderDropdownMenu()\n }\n {this.renderConfirmationModal()}\n {this.renderImportModal()}\n
\n )\n }\n\n renderDetailsViewMode() {\n return (\n \n {this.renderActions(\"button-col\")}\n \n )\n }\n\n renderDropdownMenu() {\n return (\n { e.stopPropagation(); }}>\n \n \n \n \n {this.renderActions(\"dropdown\")}\n \n \n );\n }\n\n renderConfirmationModal = () => {\n const { details, onConfirmDetailsSuccess } = this.props;\n const { isConfirmDetailsOpen } = this.state;\n\n const onSuccess = list => {\n this.setState({\n isConfirmDetailsOpen: false\n })\n if (onConfirmDetailsSuccess) {\n onConfirmDetailsSuccess(list);\n }\n }\n return (\n \n )\n }\n\n renderImportModal = () => {\n const { details, onImportSuccess } = this.props;\n const { isImportOpen } = this.state;\n\n const onSuccess = (data, details) => {\n this.setState({\n isImportOpen: false\n })\n if (onImportSuccess) {\n onImportSuccess(data, details);\n }\n }\n return (\n \n )\n }\n\n renderActions(mode) {\n const renderActionList = [\n this.renderActionOpenDetails,\n this.renderActionExport,\n this.renderConfirmDetails,\n this.renderImportFile\n ]\n\n return renderActionList.map((renderAction) => renderAction(mode))\n }\n\n renderItem(text, onClick, options) {\n const config = _.defaultsDeep(options, {\n mode: \"dropdown\", // \"dropdown\" or \"button-col\"\n });\n if (config.mode === \"button-col\") {\n return (\n \n \n \n );\n }\n\n return (\n onClick()}\n key={text}\n >\n {text}\n \n );\n }\n\n renderActionOpenDetails = (mode) => {\n const { t, isDetailsViewMode } = this.props;\n\n if (isDetailsViewMode) return null;\n const label = t(\"reports.return.menu.openDetails\", \"Ava detailvaade\");\n return this.renderItem(label, this.onView, { mode });\n }\n\n renderActionExport = mode => {\n const { t } = this.props;\n\n const text = t(\"reports.return.menu.exportLabel\", \"Ekspordi aruanne\");\n return this.renderItem(text, this.onGetExportFile, { mode });\n }\n\n renderConfirmDetails = mode => {\n const { t, details, isAdmin } = this.props;\n if (!isAdmin) return;\n if (!details?.is_confirmable) return;\n const text = t(\"reports.return.menu.confirmDetailsLabel\", \"Kinnita tagastusaruanne\")\n return this.renderItem(text, this.onToggleConfirmationModal, { mode })\n }\n\n renderImportFile = mode => {\n const { t, isAdmin } = this.props;\n if (!isAdmin) return;\n const text = t(\"reports.return.menu.importLabel\", \"Uuenda failist\")\n return this.renderItem(text, this.onToggleImportModal, { mode })\n }\n\n onView = (isOpenInTab = false) => {\n const { history, details } = this.props;\n const route = reportUtils.getDetailsViewUrl(details.id);\n if (isOpenInTab) {\n window.open(route, '_blank');\n } else {\n history.push(route);\n }\n }\n\n onToggleConfirmationModal = (value) => {\n this.setState(prevState => ({\n isConfirmDetailsOpen: !prevState.isConfirmDetailsOpen\n }));\n }\n\n onToggleImportModal = (value) => {\n this.setState(prevState => ({\n isImportOpen: !prevState.isImportOpen\n }));\n }\n\n onGetExportFile = () => {\n const { t, location, details } = this.props;\n clearLocalAlerts();\n reportUtils.fetchExportFile(details.id)\n .catch(error => {\n // can use error.message because error is already parsed\n addNewLocalErrorAlert(\n t(\"reports.return.menu.exportExcelTemplateFailed\", \"Aruande ekspordi allalaadimine ebaõnnestus: \") + error.message,\n location.pathname\n );\n })\n }\n}\n\nconst mapStateToProps = (state) => {\n // Module state reducer\n return {\n isAdmin: isAdminMode()\n };\n};\n\nexport default withRouter(connect(mapStateToProps, null)(withTranslation()(ReturnReportActionsMenu)));\n","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport PropTypes from \"prop-types\";\nimport { withTranslation } from \"react-i18next\";\nimport { Card, CardBody, Row, Col } from \"reactstrap\";\nimport moment from \"moment\";\n\n// datatable\nimport BootstrapTable from \"react-bootstrap-table-next\";\nimport \"react-bootstrap-table-next/dist/react-bootstrap-table2.min.css\";\nimport \"react-bootstrap-table2-filter/dist/react-bootstrap-table2-filter.min.css\";\nimport filterFactory from \"react-bootstrap-table2-filter\";\n\n// generic\nimport DateCell from \"components/Table/Cell/DateCell\";\nimport WrappedLoader from \"components/Loader/WrappedLoader\";\nimport CenteredRowCol from \"components/Misc/CenteredRowCol\";\nimport { isConnectedToClientWithActiveContract, isAdminMode } from \"util/Access\";\nimport { YEAR_MONTH_FORMAT } from \"util/DateTime\";\nimport { addNewLocalSuccessAlert } from \"util/Alerts\";\nimport { getErrorMessageList } from \"util/Errors\";\nimport CustomPagination from \"components/Table/Pagination/CustomPagination\";\n// generic - selection\nimport Checkbox from \"components/Form/Checkbox\";\nimport SelectionHeader from \"components/Form/SelectionHeader/SelectionHeader\";\n\n// module specific\nimport ListSearch from \"./ListSearch\";\nimport ListActions from \"./ListActions\";\nimport ActionsMenu from \"./ActionsMenu\";\nimport reportUtils from \"./utils\";\nimport { actions } from \"./redux\";\n\n// css\nimport \"./ListView.scss\";\nimport { defaultsDeep } from \"lodash\";\n\nfunction NoDataIndication(props) {\n let content =\n props.t(\"reports.return.noDataText\");\n if (props.loading) {\n content = ;\n } else if (props.error) {\n content = {props.error};\n }\n\n return
{content}
;\n}\n\nclass ReturnReportsClientListView extends React.Component {\n static propTypes = {\n // automatic\n list: PropTypes.array.isRequired,\n loading: PropTypes.bool,\n filters: PropTypes.object.isRequired,\n filtersUsed: PropTypes.object.isRequired,\n pagination: PropTypes.object.isRequired,\n sorting: PropTypes.object.isRequired,\n selectedIds: PropTypes.array.isRequired,\n // general\n user: PropTypes.object.isRequired,\n isClientWithActiveContract: PropTypes.bool,\n isAdmin: PropTypes.bool,\n // actions\n updateFilters: PropTypes.func.isRequired,\n clearFilters: PropTypes.func.isRequired,\n updateSorting: PropTypes.func.isRequired,\n updatePagination: PropTypes.func.isRequired,\n updateSelected: PropTypes.func.isRequired,\n };\n\n componentDidMount() {\n const { isAdmin, isClientWithActiveContract } = this.props;\n if (isAdmin || isClientWithActiveContract) {\n this.fetchList();\n }\n }\n\n componentDidUpdate(prevProps) {\n const { isAdmin, isClientWithActiveContract } = this.props;\n const isValidClient = isClientWithActiveContract\n const isAdminNowActive = isAdmin && isAdmin !== prevProps.isAdmin;\n const isValidClientModeNowActive = isValidClient && isValidClient !== prevProps.isClientWithActiveContract;\n if (isAdminNowActive || isValidClientModeNowActive) {\n this.fetchList();\n }\n }\n\n render() {\n return (\n \n \n \n {this.renderActions()}\n {this.renderTable()}\n \n \n );\n }\n\n renderActions() {\n return (\n \n )\n }\n\n renderTable() {\n const { t, list, loading, isAdmin, pagination, sorting, selectedIds } = this.props;\n if (loading) {\n return (\n \n \n \n );\n }\n if (list === null || list === undefined) {\n return <>;\n }\n\n const columns = [\n {\n dataField: \"client.name\",\n text: \"Ettevõte\",\n sort: true,\n classes: \"client-col semibold-14\",\n headerClasses: \"client-col-header\",\n show: isAdmin\n },\n {\n dataField: \"period_start\",\n text: t(\"reports.table.period_start\", \"Perioodi algus\"),\n sort: true,\n classes: \"period-col\",\n headerClasses: \"period-col-header\",\n formatter: (periodStart, row) => this.periodDateColumnFormatter(periodStart),\n show: true\n },\n {\n dataField: \"period_end\",\n text: t(\"reports.table.period_end\", \"Perioodi lõpp\"),\n align: \"left\",\n alignHeader: \"left\",\n sort: true,\n classes: \"period-col\",\n headerClasses: \"period-col-header\",\n formatter: (periodEnd, row) => this.periodDateColumnFormatter(periodEnd),\n show: true\n },\n {\n dataField: \"confirmed_at\",\n text: t(\"reports.table.confirmed\"),\n align: \"center\",\n alignHeader: \"center\",\n sort: true,\n classes: \"status-col\",\n headerClasses: \"status-col-header\",\n formatter: (confirmedAt, row) => this.statusColumnFormatter(row),\n show: isAdmin\n },\n {\n dataField: \"last_modified_by_import\", // updates on imports, even if nothing changed\n text: t(\"reports.filter.createdAt\"), // name is what they wanted, last_modified_by_import has the logic they expected for the column\n classes: \"regular-14\",\n sort: true,\n style: {\n width: \"120px\"\n },\n formatter: (value, line) => {\n if (!value) return null;\n return moment(value).format(\"DD.MM.YYYY\")\n },\n show: true\n },\n {\n dataField: \"id\",\n text: \"\",\n align: \"right\",\n alignHeader: \"right\",\n classes: \"action-col\",\n headerClasses: \"action-col-header\",\n formatter: (id, row) =>\n this.actionColumnFormatter(row),\n show: true\n },\n ].filter(col => col.show === true);\n\n const defaultSorted = [sorting];\n let selectRow;\n if (isAdmin) {\n selectRow = {\n mode: \"checkbox\",\n selected: selectedIds,\n hideSelectAll: false,\n selectionRenderer: ({ mode, checked, disabled }) => (\n { }} className=\"px-0\" />\n ),\n onSelect: (row, isSelect, rowIndex, e) => {\n this.onSelect(row, isSelect, rowIndex, e);\n },\n onSelectAll: (isSelect, rows) => {\n this.onSelectAll(isSelect, rows);\n },\n selectionHeaderRenderer: ({ mode, checked, indeterminate }) => {\n return \n }\n }\n }\n\n const rowClasses = (row, rowIndex) => {\n return \"pointer\";\n };\n\n const rowEvents = {\n onClick: (e, row, rowIndex) => {\n this.onRowClick(e, row);\n },\n };\n\n return (\n \n \n \n }\n rowClasses={rowClasses}\n rowEvents={rowEvents}\n />\n {!this.props.loading &&\n \n \n this.onPaginationChange(page, sizePerPage)}\n onPageChange={this.onPaginationChange}\n />\n \n \n }\n\n \n \n );\n }\n\n periodDateColumnFormatter = (periodDate) => {\n return (\n <>\n \n \n \n \n \n \n );\n };\n\n statusColumnFormatter = (row) => {\n return (\n \n \n {\n \n }\n \n \n );\n }\n\n fetchList = (config) => {\n const { filtersUsed, sorting, pagination, location } = this.props;\n config = defaultsDeep(config, {\n filters: filtersUsed,\n sorting,\n pagination,\n alertGroup: location.pathname\n });\n\n reportUtils.fetchReportsList(config.filters, config.sorting, config.pagination, config.alertGroup);\n }\n\n onSearch = () => {\n this.fetchList({\n filters: this.props.filters\n });\n }\n\n onPaginationChange = (page, sizePerPage) => {\n const { pagination, updatePagination } = this.props;\n if (page !== pagination.page || sizePerPage !== pagination.sizePerPage) {\n const newPagination = { ...pagination, page, sizePerPage };\n updatePagination(newPagination);\n this.fetchList({\n pagination: newPagination\n });\n }\n }\n\n onTableChange = (type, newState) => {\n const { sorting, updateSorting } = this.props;\n const { sortOrder, sortField } = newState;\n if (sortOrder !== sorting.order || sortField !== sorting.dataField) {\n const newSorting = {\n dataField: sortField,\n order: sortOrder,\n };\n updateSorting(newSorting);\n this.fetchList({\n sorting: newSorting\n });\n }\n }\n\n onSelect = (row, isSelect, rowIndex, e) => {\n const rows = [row];\n this.onSelectAll(isSelect, rows)\n }\n\n onSelectAll = (isSelect, rows) => {\n const { selectedIds, updateSelected } = this.props;\n const ids = rows.map(row => row.id);\n let newSelectedIds;\n if (isSelect) {\n const possibleDuplicateIds = [...selectedIds, ...ids];\n const setOfUniqueIds = new Set(possibleDuplicateIds);\n newSelectedIds = [...setOfUniqueIds];\n } else {\n newSelectedIds = selectedIds.filter(id => !ids.includes(id));\n }\n updateSelected(newSelectedIds)\n }\n\n onRowClick = (event, row) => {\n let url = reportUtils.getDetailsViewUrl(row.id);\n this.props.history.push(url);\n };\n\n onConfirmDetailsSuccess = details => {\n this.props.updateSelected([]);\n this.fetchList();\n }\n\n getImportFileSuccessMessage(statistics, topText) {\n const stats = [\n `Loodi ${statistics.reports_created} tagastusaruannet`,\n `Loodi ${statistics.lines_created} aruanderida`,\n `Uuendati ${statistics.reports_updated} tagastusaruannet`,\n `Uuendati ${statistics.lines_updated} aruanderida`,\n ]\n return getErrorMessageList(stats, stat => stat, topText)\n }\n\n onBulkImportSuccess = statistics => {\n const { pagination, location, t } = this.props;\n this.onPaginationChange(1, pagination.sizePerPage);\n\n this.props.updatePagination({\n ...pagination,\n page: 1\n });\n this.fetchList();\n\n const alertMessage = reportUtils.ReturnReportImportSuccess(statistics)\n addNewLocalSuccessAlert(alertMessage, location.pathname);\n }\n\n onSpecificImportSuccess = (statistics, details) => {\n const { pagination, history, t } = this.props;\n\n this.props.updatePagination({\n ...pagination,\n page: 1\n });\n this.fetchList();\n\n const topText = t(\"reports.return.alerts.importSpecificSuccess\", \"Tagastusaruande uuendamine õnnestus.\");\n const alertMessage = this.getImportFileSuccessMessage(statistics, topText)\n const detailsRoute = reportUtils.getDetailsViewUrl(details.id);\n addNewLocalSuccessAlert(alertMessage, detailsRoute);\n history.push(detailsRoute);\n }\n\n actionColumnFormatter = (row) => {\n return ;\n };\n}\n\nconst mapStateToProps = (state) => {\n // Module state reducer\n const listState = state.returnReports;\n return {\n list: listState.list,\n loading: listState.listLoading,\n filters: listState.listFilters,\n filtersUsed: listState.listFiltersUsed,\n sorting: listState.listSorting,\n pagination: listState.listPagination,\n selectedIds: listState.listSelectedIds,\n // general\n user: state.auth.user,\n isClientWithActiveContract: isConnectedToClientWithActiveContract(\n state\n ),\n isAdmin: isAdminMode()\n };\n};\n\nconst mapActionsToTops = {\n updateFilters: actions.listUpdateFilters,\n clearFilters: actions.listClearFilters,\n updateSorting: actions.listSortingUpdate,\n updatePagination: actions.listPaginationUpdate,\n updateSelected: actions.listSelectedUpdate\n}\n\nexport default connect(mapStateToProps, mapActionsToTops)(withTranslation(\"common\")(ReturnReportsClientListView));\n","import defaultsDeep from \"lodash/defaultsDeep\";\nimport axios from \"../../axios\";\n\nconst API_COMMENT_LIST_GET = \"comments/{content_type_id}/{object_id}/\";\nconst API_COMMENT_CREATE_POST = API_COMMENT_LIST_GET; // same endpoint, different method\nconst API_COMMENT_REMOVE_DELETE = \"comments/{content_type_id}/{object_id}/{id}/\";\n\nexport const VISIBILITY = {\n PUBLIC: \"PUBLIC\",\n EPP: \"EPP\"\n};\n\nexport const ROLE = {\n EPP: \"EPP\",\n PARTNER: \"PARTNER\",\n CLIENT: \"CLIENT\",\n SYSTEM: \"SYSTEM\"\n};\n\nexport const TYPE = {\n MESSAGE: \"MESSAGE\",\n NOTIFICATION: \"NOTIFICATION\"\n};\n\nexport function fetchInstanceComments(\n contentTypeId,\n objectId\n) {\n /**\n * Endpoint returns latest comments in a descending order by created at date.\n * By default it returns last 10 comments but it can be changed with page_size query parameter.\n * \n * Response is { older, newer, results } format, where:\n * - older: Link to older comments or null if none \n * - newer: Link to newer comments or null if none\n * - results: Comment objects\n * \n * \"older\" link must be chosen to fetch such comments.\n */\n // By default fetches 10 latest comments\n const params = { page_size: 10 };\n\n const endpoint = API_COMMENT_LIST_GET\n .replace(\"{content_type_id}\", contentTypeId)\n .replace(\"{object_id}\", objectId);\n\n return axios({\n method: \"get\",\n url: endpoint,\n params: params\n });\n}\n\nexport function createInstanceComment(\n contentTypeId,\n objectId,\n data\n) {\n data = defaultsDeep(data, {\n body: \"\",\n type: TYPE.MESSAGE,\n visibility: VISIBILITY.PUBLIC\n // created_by: server adds request user as creator\n // created_at: Server adds current moment\n });\n\n const endpoint = API_COMMENT_CREATE_POST\n .replace(\"{content_type_id}\", contentTypeId)\n .replace(\"{object_id}\", objectId);\n\n return axios({\n method: \"post\",\n url: endpoint,\n data\n });\n}\n\nexport function removeComment(\n contentTypeId,\n objectId,\n commentId\n) {\n\n const endpoint = API_COMMENT_REMOVE_DELETE\n .replace(\"{content_type_id}\", contentTypeId)\n .replace(\"{object_id}\", objectId)\n .replace(\"{id}\", commentId);\n\n return axios({\n method: \"delete\",\n url: endpoint,\n });\n}\n\nexport function sortCommentsByCreatedAt(comments) {\n const returnComments = [...comments];\n return returnComments.sort((comment1, comment2) => {\n if (comment1.created_at > comment2.created_at) {\n return 1;\n } else if (comment1.created_at === comment2.created_at) {\n if (comment1.id > comment2.id) {\n return 1;\n } else if (comment1.id === comment2.id) {\n return 0;\n }\n return -1;\n }\n return -1;\n });\n}\n\nexport function getLatestComment(comments) {\n comments = comments || [];\n let latestComment = comments[0] || null;\n for (const comment of comments) {\n if (comment.created_at > latestComment.created_at) {\n latestComment = comment;\n }\n }\n return latestComment;\n}\n\nexport const ruleTrimmedStringLengthAtleast = (value, minLength = 1) => {\n if (typeof value === \"string\") {\n return value.trim().length >= minLength;\n } else {\n return false;\n }\n};\n\nexport default {\n VISIBILITY,\n ROLE,\n TYPE,\n ruleTrimmedStringLengthAtleast,\n sortCommentsByCreatedAt,\n getLatestComment,\n fetchInstanceComments,\n createInstanceComment,\n removeComment\n};\n","var _path;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nconst SvgArrowDown = _ref => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6 9L11.9293 14.9293C11.9683 14.9683 12.0317 14.9683 12.0707 14.9293L18 9\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\"\n })));\n};\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgArrowDown, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/arrow-down.a4adc1f1.svg\";\nexport { ForwardRef as ReactComponent };","import Alerts from \"./Alerts\";\n\nexport default Alerts;\n","var _path;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nconst SvgArrowUp = _ref => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6 15L11.9293 9.07071C11.9683 9.03166 12.0317 9.03166 12.0707 9.07071L18 15\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\"\n })));\n};\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgArrowUp, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/arrow-up.afb40992.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nconst SvgRefresh = _ref => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n style: {\n width: 24,\n height: 24\n },\n viewBox: \"0 0 24 24\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M17.65,6.35C16.2,4.9 14.21,4 12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20C15.73,20 18.84,17.45 19.73,14H17.65C16.83,16.33 14.61,18 12,18A6,6 0 0,1 6,12A6,6 0 0,1 12,6C13.66,6 15.14,6.69 16.22,7.78L13,11H20V4L17.65,6.35Z\"\n })));\n};\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgRefresh, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/refresh.8a6922ab.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nconst SvgDelete = _ref => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.9881 2.58238H11.1389V2.50387C11.1389 1.67461 10.3067 1 9.28379 1H6.71621C5.69328 1 4.86113 1.67461 4.86113 2.50387V2.58238H3.01186C2.4531 2.58238 2 2.94959 2 3.40267V4.02793C2 4.17896 2.15099 4.30136 2.33729 4.30136H13.6627C13.849 4.30136 14 4.17896 14 4.02793V3.40267C14 2.94959 13.547 2.58238 12.9881 2.58238ZM5.87299 2.50387C5.87299 2.12694 6.25125 1.82029 6.71621 1.82029H9.28379C9.74875 1.82029 10.127 2.12694 10.127 2.50387V2.58238H5.87299V2.50387Z\",\n fill: \"currentColor\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2.43701 5.12207L3.25453 14.6185C3.27311 14.8334 3.49353 15.0001 3.75928 15.0001H12.2414C12.5071 15.0001 12.7275 14.8334 12.746 14.6185L13.5634 5.12207H2.43701ZM5.99801 13.6052C5.99077 13.6055 5.98339 13.6056 5.97614 13.6056C5.70671 13.6056 5.4826 13.4332 5.47114 13.2129L5.13385 6.78722C5.12186 6.5609 5.33859 6.3696 5.61778 6.35999C5.89709 6.3507 6.13293 6.52608 6.14478 6.7524L6.48207 13.178C6.49393 13.4044 6.2772 13.5956 5.99801 13.6052ZM8.50618 13.1954C8.50618 13.422 8.2797 13.6056 8.00025 13.6056C7.72081 13.6056 7.49432 13.422 7.49432 13.1954V6.76981C7.49432 6.54327 7.72081 6.35967 8.00025 6.35967C8.2797 6.35967 8.50618 6.54327 8.50618 6.76981V13.1954ZM10.5295 13.2129C10.5179 13.4333 10.2938 13.6056 10.0244 13.6056C10.0171 13.6056 10.0097 13.6055 10.0025 13.6053C9.72331 13.5957 9.50658 13.4044 9.51843 13.178L9.85572 6.7524C9.86771 6.52608 10.1039 6.35048 10.3827 6.36009C10.6619 6.36971 10.8786 6.5609 10.8668 6.78722L10.5295 13.2129Z\",\n fill: \"currentColor\"\n })));\n};\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgDelete, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/delete.3d124529.svg\";\nexport { ForwardRef as ReactComponent };","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport { isAdminMode, isPartnerMode, isClientMode } from \"util/Access\";\nimport commentUtils from \"./utils\";\nimport moment from \"moment\";\n\nimport { ReactComponent as DeleteIcon } from \"./icons/delete.svg\";\n\nimport \"./Comment.scss\";\n\nclass Comment extends React.Component {\n static propTypes = {\n // comment data\n id: PropTypes.number.isRequired, // Comment ID\n body: PropTypes.string.isRequired, // Content\n created_at: PropTypes.string.isRequired, // ISO-8601\n created_by: PropTypes.string.isRequired,\n role: PropTypes.string.isRequired, // commentUtils.TYPE\n type: PropTypes.string.isRequired, // commentUtils.TYPE\n visibility: PropTypes.string.isRequired, // commentUtils.VISIBILITY\n can_delete: PropTypes.bool,\n // functionality\n onDelete: PropTypes.func // Expect to return a Promise\n }\n\n static defaultProps = {\n can_delete: false\n }\n\n constructor(props) {\n super(props);\n this.state = {\n currentDate: new Date(), // Updating this in interval is enough to cause rerender, don't need to use it actual logic.\n }\n this.currentDateIntervalId = null;\n }\n\n componentDidMount() {\n const handler = () => {\n this.setState({ currentDate: new Date() });\n };\n const delay = 1000 * 60; // 1 minute\n this.currentDateIntervalId = setInterval(handler, delay);\n }\n\n componentWillUnmount() {\n clearInterval(this.currentDateIntervalId);\n }\n\n componentDidUpdate(prevProps, prevState) {\n }\n\n render() {\n return (\n
\n {this.renderDelete()}\n
\n
\n
\n {this.props.body}\n
\n
\n
\n {this.renderInfo()}\n
\n
\n
\n )\n }\n\n renderInfo() {\n const { created_by } = this.props;\n const createdAt = this.formattedCreatedAt();\n if (created_by) {\n return `${created_by}, ${createdAt}`;\n }\n\n return createdAt;\n }\n\n renderDelete() {\n if (!this.canDelete()) return null;\n\n return (\n
\n \n \n \n
\n )\n }\n\n canDelete() {\n if (!this.props.onDelete) return false;\n return this.props.can_delete;\n }\n\n deleteComment = () => {\n if (!this.canDelete()) return\n this.props.onDelete(this.props.id)\n }\n\n formattedCreatedAt() {\n const { created_at } = this.props;\n const createdAt = moment(created_at);\n return createdAt.fromNow();\n }\n\n getCommentRoleClass() {\n const { role } = this.props;\n const ROLE = commentUtils.ROLE;\n if (role === ROLE.SYSTEM) {\n return \"comment--system\";\n }\n\n const isActiveRole = {\n [commentUtils.ROLE.EPP]: isAdminMode(),\n [commentUtils.ROLE.CLIENT]: isClientMode(),\n [commentUtils.ROLE.PARTNER]: isPartnerMode()\n };\n return isActiveRole[this.props.role] ? \"comment--active\" : \"comment--default\";\n }\n\n getCommentClassNames() {\n return `comment ${this.getCommentRoleClass()}`;\n }\n}\n\nexport default Comment;\n","var _path;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nconst SvgArrowDownCircle = _ref => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n style: {\n width: 24,\n height: 24\n },\n viewBox: \"0 0 24 24\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M11,6V14L7.5,10.5L6.08,11.92L12,17.84L17.92,11.92L16.5,10.5L13,14V6H11M12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22Z\"\n })));\n};\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgArrowDownCircle, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/arrow-down-circle.db96ac78.svg\";\nexport { ForwardRef as ReactComponent };","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport i18n from \"i18next\";\n\nimport commentUtils from \"./utils\";\n\nimport Comment from \"./Comment.jsx\";\nimport LoadingAnimation from \"components/Loader/WrappedPulseLoader\";\nimport { ReactComponent as ScrollBottomIcon } from \"./icons/arrow-down-circle.svg\";\n\nimport \"./CommentList.scss\";\n\nfunction CommentsListEmpty({ comments, loading }) {\n if (loading || comments.length > 0) {\n return null;\n }\n return (\n
\n {\n i18n.t(\"comments.no_comments_text\", \"Kommentaarid puuduvad\")\n }\n
\n )\n}\n\nfunction CommentsListLoading({ loading }) {\n if (!loading) {\n return null;\n }\n return (\n
\n \n
\n )\n}\n\nclass CommentList extends React.Component {\n static propTypes = {\n comments: PropTypes.array.isRequired, // convert to sorted state.comments\n onDelete: PropTypes.func.isRequired,\n loading: PropTypes.bool,\n listPrependContent: PropTypes.node\n }\n\n static defaultProps = {\n comments: [],\n loading: false,\n listPrependContent: null\n }\n\n constructor(props) {\n super(props);\n this.state = {\n isShowScrollBottom: false\n }\n\n this.listWrapperRef = React.createRef();\n this.delayedScrollTimeoutId = null;\n }\n\n componentDidMount() {\n this.listWrapperRef.current.addEventListener(\"scroll\", this.handleScroll);\n this.scrollToBottom();\n }\n\n componentWillUnmount() {\n clearTimeout(this.delayedScrollTimeoutId);\n this.listWrapperRef.current.removeEventListener(\"scroll\", this.handleScroll);\n }\n\n componentDidUpdate(prevProps, prevState) {\n // We should scroll to bottom when there is a newer comment loaded\n const prevLatestComment = commentUtils.getLatestComment(prevProps.comments)\n const currentLatestComment = commentUtils.getLatestComment(this.props.comments)\n // Make sure to default to empty string for str comparison sake.\n // Otherwise check would be \"2022-...\" > undefined which would be false.\n const prevLatestCreatedAt = prevLatestComment?.created_at || \"\";\n const currentLatestCreatedAt = currentLatestComment?.created_at || \"\";\n if (currentLatestCreatedAt > prevLatestCreatedAt) {\n this.delayScrollBottom();\n }\n\n if (this.props.loading && !prevProps.loading) {\n this.scrollToBottom();\n }\n }\n\n render() {\n return (\n <>\n \n
\n {this.renderList()}\n
\n {this.renderScrollBottom()}\n \n \n )\n }\n\n renderList() {\n const { comments, loading, onDelete } = this.props;\n\n const sortedComments = commentUtils.sortCommentsByCreatedAt(comments);\n return (\n <>\n {this.props.listPrependContent}\n {\n sortedComments.map(comment =>\n \n )\n }\n \n \n \n )\n }\n\n renderScrollBottom() {\n if (!this.state.isShowScrollBottom) return null;\n\n return (\n
\n \n \n \n\n
\n );\n }\n\n scrollToBottom = () => {\n const scrollHeight = this.listWrapperRef.current.scrollHeight;\n this.listWrapperRef.current.scrollTo({ top: scrollHeight, behavior: \"smooth\" });\n }\n\n delayScrollBottom() {\n // Calling from componentDidUpdate did not scroll down without delay.\n clearTimeout(this.delayedScrollTimeoutId);\n this.delayedScrollTimeoutId = setTimeout(() => this.scrollToBottom(), 500);\n }\n\n handleScroll = (event) => {\n const element = event.target;\n if (!element) return false;\n\n const { clientHeight, scrollHeight, scrollTop } = element;\n const hiddenHeight = scrollHeight - clientHeight;\n // Minimum pixels from bottom that need to be scrolled up.\n // Used to fix some calculation edge cases when there would be no minimum scrolled set.\n // Also helps with not showing the element when some pixels scrolled only.\n const scrollHeightDelay = 50;\n const hasScrolledUp = (scrollTop + scrollHeightDelay) < hiddenHeight;\n this.setState({ isShowScrollBottom: hasScrolledUp });\n }\n}\n\nexport default CommentList;\n","var _path;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nconst SvgSubmit = _ref => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n style: {\n width: 24,\n height: 24\n },\n viewBox: \"0 0 24 24\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M2,21L23,12L2,3V10L17,12L2,14V21Z\"\n })));\n};\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgSubmit, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/submit.010f5e43.svg\";\nexport { ForwardRef as ReactComponent };","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport commentUtils from \"./utils\";\n\nimport { ReactComponent as SubmitIcon } from \"./icons/submit.svg\";\nimport LoadingAnimation from \"components/Loader/WrappedPulseLoader\";\n\nimport \"./CommentCreate.scss\";\n\nconst getInitialCommentData = () => {\n\treturn {\n\t\tbody: \"\",\n\t\tvisibility: commentUtils.VISIBILITY.PUBLIC\n\t}\n}\n\nclass CommentCreate extends React.Component {\n\tstatic propTypes = {\n\t\tonSubmit: PropTypes.func.isRequired, // We expect it to return a promise\n\t}\n\n\tstatic defaultProps = {\n\t}\n\n\tconstructor(props) {\n\t\tsuper(props)\n\t\tthis.state = {\n\t\t\tisSubmitLoading: false,\n\t\t\t...getInitialCommentData()\n\t\t}\n\t\tthis.inputRef = React.createRef()\n\t}\n\n\tcomponentDidMount() {\n\t}\n\n\tcomponentDidUpdate(prevProps, prevState) {\n\t}\n\n\trender() {\n\t\tconst { body, isSubmitLoading } = this.state\n\t\treturn (\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t this.updateHeight(e.target)}\n\t\t\t\t\t\t\tonKeyDown={this.handleTextareaKeyDown}\n\t\t\t\t\t\t\tdisabled={isSubmitLoading}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{isSubmitLoading ?\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t:\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t)\n\t}\n\n\tonBodyChange = event => {\n\t\tthis.setState({\n\t\t\tbody: event.target.value\n\t\t})\n\t}\n\n\tupdateHeight(el) {\n\t\t/* Specific to this component solution for textarea */\n\t\tel.parentNode.dataset.replicatedValue = el.value\n\t}\n\n\tpasteIntoInput(el, text) {\n\t\tel.focus();\n\t\tif (typeof el.selectionStart == \"number\"\n\t\t\t&& typeof el.selectionEnd == \"number\") {\n\t\t\tvar val = el.value;\n\t\t\tvar selStart = el.selectionStart;\n\t\t\tel.value = val.slice(0, selStart) + text + val.slice(el.selectionEnd);\n\t\t\tel.selectionEnd = el.selectionStart = selStart + text.length;\n\t\t} else if (typeof document.selection != \"undefined\") {\n\t\t\tvar textRange = document.selection.createRange();\n\t\t\ttextRange.text = text;\n\t\t\ttextRange.collapse(false);\n\t\t\ttextRange.select();\n\t\t}\n\t}\n\n\thandleTextareaKeyDown = e => {\n\t\tconst isEnterDown = e.key === \"Enter\"\n\t\tconst isModifierDown = e.altKey || e.shiftKey || e.ctrlKey\n\t\tif (isEnterDown && !isModifierDown) {\n\t\t\te.preventDefault()\n\t\t\tthis.submitComment()\n\t\t} else if (isEnterDown && isModifierDown) {\n\t\t\t// shift + enter already adds a newline\n\t\t\tif (!e.shiftKey) {\n\t\t\t\tthis.pasteIntoInput(e.target, \"\\n\")\n\t\t\t}\n\t\t}\n\t\t// Make sure textarea height is up to state with any changes made here.\n\t\tthis.updateHeight(e.target);\n\t}\n\n\tisBodyValid = () => {\n\t\treturn commentUtils.ruleTrimmedStringLengthAtleast(this.state.body)\n\t}\n\n\tcanSubmit = () => {\n\t\tif (!this.props.onSubmit) return false;\n\t\tif (this.state.isSubmitLoading) return false;\n\t\treturn this.isBodyValid()\n\t}\n\n\tsubmitComment = () => {\n\t\tconst { onSubmit } = this.props;\n\t\tconst { body } = this.state\n\t\tif (!this.canSubmit()) {\n\t\t\treturn;\n\t\t}\n\t\tthis.inputRef.current.blur()\n\t\tconst newComment = {\n\t\t\tbody,\n\t\t\tvisibility: commentUtils.VISIBILITY.PUBLIC,\n\t\t\t// type // Users can only create message type, set in endpoint\n\t\t\t// role // set in server\n\t\t\t// created_at // set in server\n\t\t\t// created_by // set in server\n\t\t}\n\n\t\tthis.setState({\n\t\t\tisSubmitLoading: true\n\t\t})\n\t\tonSubmit(newComment).then(\n\t\t\tresp => {\n\t\t\t\tif (resp !== undefined) {\n\t\t\t\t\t// Reset comment\n\t\t\t\t\tthis.setState(getInitialCommentData())\n\t\t\t\t}\n\t\t\t}\n\t\t).finally(() => this.setState({ isSubmitLoading: false }))\n\t}\n\n\n}\n\nexport default CommentCreate;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { withRouter } from \"react-router\";\nimport i18n from \"i18next\";\nimport defaultsDeep from \"lodash/defaultsDeep\";\nimport uniqueId from \"lodash/uniqueId\";\nimport moment from \"moment\";\n\nimport axios from \"../../axios\";\nimport commentUtils from \"./utils\";\nimport { addNewLocalErrorAlert, clearLocalAlerts } from \"util/Alerts\";\nimport { getServerErrorMessage } from \"util/Errors\";\n\nimport Alerts from \"components/Alerts\";\nimport ConfirmationModal from \"components/Form/Modals/ConfirmationModal\";\nimport LoadingAnimation from \"components/Loader/WrappedPulseLoader\";\nimport { ReactComponent as CollapsedIcon } from \"./icons/arrow-down.svg\";\nimport { ReactComponent as UncollapsedIcon } from \"./icons/arrow-up.svg\";\nimport { ReactComponent as RefreshIcon } from \"./icons/refresh.svg\";\n\nimport CommentList from \"./CommentList.jsx\";\nimport CommentCreate from \"./CommentCreate.jsx\";\n\nimport \"./Comments.scss\";\n\nfunction CommentsInvalidProps() {\n return (\n
\n

\n {i18n.t(\"comments.properties_not_initialized\")}\n

\n
\n )\n}\n\nclass Comments extends React.Component {\n static propTypes = {\n contentType: PropTypes.number.isRequired,\n objectId: PropTypes.number.isRequired,\n maxHeight: PropTypes.string,\n hideHeader: PropTypes.bool,\n isCollapsible: PropTypes.bool,\n startCollapsed: PropTypes.bool,\n onCommentCountUpdate: PropTypes.func,\n // automatic\n location: PropTypes.object.isRequired\n }\n\n static defaultProps = {\n maxHeight: \"650px\",\n hideHeader: false,\n isCollapsible: true,\n startCollapsed: true,\n onCommentCountUpdate: count => { }\n }\n\n constructor(props) {\n super(props)\n this.state = {\n groupId: uniqueId(\"comments__group__\"),\n comments: [],\n olderLink: null,\n isLatestCommentsLoading: false,\n isOlderCommentsLoading: false,\n isCreateCommentLoading: false,\n deleteCommentId: null,\n isDeleteLoading: false,\n isCollapsed: props.isCollapsible && props.startCollapsed,\n lastUpdateAt: null // Should only track update of latest comments, not older.\n }\n }\n\n componentDidMount() {\n this.fetchLatestComments();\n }\n\n render() {\n if (!this.isValidProps()) {\n return (\n \n );\n }\n const { maxHeight } = this.props;\n return (\n <>\n
\n {this.renderHeader()}\n {this.renderContent()}\n
\n \n )\n }\n\n renderContent() {\n const { groupId, comments, isLatestCommentsLoading, isCollapsed } = this.state;\n if (isCollapsed) {\n return null;\n }\n if (isCollapsed) {\n return (\n
\n {i18n.t(\"comments.content_collapsed\")}\n
\n )\n };\n\n return (\n <>\n \n \n
\n
\n \n
\n {this.renderLastUpdate()}\n {this.renderConfirmDeleteModal()}\n \n )\n }\n\n renderHeader() {\n const { hideHeader, isCollapsible } = this.props;\n const { isCollapsed } = this.state;\n if (hideHeader) {\n return null;\n }\n const toggleCollapse = () => {\n this.setState(prevState => {\n return {\n isCollapsed: !prevState.isCollapsed\n }\n })\n }\n\n let headerContent;\n if (isCollapsible) {\n headerContent = (\n
\n \n {i18n.t(\"comments.default_header\")}\n \n {isCollapsed ?\n \n :\n \n }\n
\n );\n } else {\n headerContent = (\n <>\n \n {i18n.t(\"comments.default_header\")}\n \n \n );\n }\n\n return (\n <>\n
\n {headerContent}\n
\n {!isCollapsed &&\n
\n }\n \n )\n }\n\n renderLoadOlder() {\n if (!this.canFetchOlder()) return null;\n\n let content;\n if (this.state.isOlderCommentsLoading) {\n content = ;\n } else {\n content = (\n \n {i18n.t(\"comments.load_more_button\")}\n \n );\n }\n\n return (\n
\n {content}\n
\n );\n }\n\n renderLastUpdate() {\n const { lastUpdateAt, isLatestCommentsLoading } = this.state;\n if (!lastUpdateAt) return null;\n\n const formattedDate = moment(lastUpdateAt).format(\"HH:mm:ss\");\n const localizedText = i18n.t(\"comments.last_updated_at\", { date: formattedDate });\n\n const baseClass = \"comments__last-update\"\n const classNames = [baseClass];\n if (isLatestCommentsLoading) {\n classNames.push(`${baseClass}--loading`)\n }\n\n return (\n
\n \n {localizedText}\n \n \n
\n );\n }\n\n renderConfirmDeleteModal() {\n const { deleteCommentId, isDeleteLoading } = this.state;\n const isOpen = deleteCommentId !== null;\n const onCancel = () => {\n this.setState({\n deleteCommentId: null\n });\n clearLocalAlerts();\n };\n\n return (\n this.deleteComment(deleteCommentId)}\n isLoading={isDeleteLoading}\n alertGroups={[]}\n >\n \n {i18n.t(\"comments.delete_comment_confirmation_text\")}\n \n \n );\n }\n\n\n isValidProps() {\n const { contentType, objectId } = this.props;\n return !!contentType && !!objectId;\n }\n\n latestCreatedAt() {\n const comments = this.sortedComments();\n const latestComment = comments[comments.length - 1];\n return latestComment?.created_at || null;\n }\n\n oldestCreatedAt() {\n const oldestComment = this.sortedComments()[0];\n if (oldestComment) {\n return oldestComment.created_at;\n } else {\n return new Date().toISOString();\n }\n }\n\n commentsErrorMessage(error, title) {\n let message = getServerErrorMessage(error);\n if (title) {\n message = `${title}: ${message}`\n }\n addNewLocalErrorAlert(message, this.state.groupId);\n }\n\n sortedComments() {\n return commentUtils.sortCommentsByCreatedAt(this.state.comments);\n }\n\n addUniqueComments(newComments) {\n const { comments } = this.state;\n const existingCommentIds = comments.map(comment => comment.id);\n const uniqueNewComments = newComments.filter(comment => !existingCommentIds.includes(comment.id));\n const sortedComments = commentUtils.sortCommentsByCreatedAt([...comments, ...uniqueNewComments]);\n this.setState({ comments: sortedComments });\n }\n\n fetchComments(config) {\n if (!this.isValidProps()) return;\n clearLocalAlerts();\n config = defaultsDeep(config, {\n latestComment: null,\n link: null,\n loadingField: \"isLatestCommentsLoading\",\n _isInitial: true // Should not be set manually\n });\n\n if (config._isInitial) {\n this.setState({\n [config.loadingField]: true\n })\n }\n\n let request;\n if (config.link) {\n request = axios.get(config.link);\n } else {\n const { contentType, objectId } = this.props;\n request = commentUtils.fetchInstanceComments(contentType, objectId);\n }\n\n return request\n .then(resp => {\n const newComments = resp.data.results;\n this.addUniqueComments(newComments);\n this.emitCommentCountUpdate()\n\n if (config.latestComment === null) {\n // If we don't have to reach some previous latest comment we can just return after first fetch.\n this.setState({\n olderLink: resp.data.older\n });\n return resp;\n } else {\n // If new comments include latest comment from before initial fetch it means\n // that we have fetched all the newer comments since last latest fetch.\n // Check needed if there are more newer comments than one fetch returns at a time.\n const isInitialLatestCommentReached = newComments.some(comment => comment.id === config.latestComment.id);\n if (isInitialLatestCommentReached) {\n return resp;\n }\n }\n\n // check if there is more comments to fetch.\n const olderCommentsLink = resp.data.older;\n if (olderCommentsLink !== null) {\n return this.fetchComments({\n ...config,\n _isInitial: false,\n link: olderCommentsLink\n });\n }\n\n return resp;\n })\n .catch(error => {\n if (config._isInitial) {\n const title = i18n.t(\"comments.errors.fetch_comments_error_title\");\n this.commentsErrorMessage(error, title);\n }\n throw error;\n })\n .finally(() => {\n if (config._isInitial) {\n this.setState({\n [config.loadingField]: false\n })\n }\n if (!config.link) {\n // If no link given we know we tried to fetch the latest comments\n this.setState({\n lastUpdateAt: new Date()\n })\n }\n })\n }\n\n fetchLatestComments = () => {\n if (this.state.isLatestCommentsLoading) return;\n this.fetchComments({\n latestComment: commentUtils.getLatestComment(this.state.comments),\n loadingField: \"isLatestCommentsLoading\"\n })\n }\n\n fetchOlderComments = () => {\n if (!this.canFetchOlder()) return;\n if (this.state.isOlderCommentsLoading) return;\n\n this.fetchComments({\n link: this.state.olderLink,\n loadingField: \"isOlderCommentsLoading\"\n })\n }\n\n canFetchOlder() {\n return this.state.olderLink !== null;\n }\n\n createComment = (data) => {\n /*\n Method for creating comment in server.\n\n Returns a promise, which resolves to server response on success.\n Promise resolves to undefined if comment creation fails for some reason.\n */\n if (!this.isValidProps()) return Promise.resolve(undefined);\n\n clearLocalAlerts();\n\n const { contentType, objectId } = this.props;\n const request = commentUtils.createInstanceComment(\n contentType,\n objectId,\n data\n );\n this.setState({ isCreateCommentLoading: true });\n return request\n .then(resp => {\n this.fetchLatestComments();\n return resp;\n })\n .catch(error => {\n const title = i18n.t(\"comments.errors.create_comment_error_title\");\n this.commentsErrorMessage(error, title);\n return undefined;\n })\n .finally(() => {\n this.setState({ isCreateCommentLoading: false });\n });\n }\n\n confirmDeleteComment = commentId => {\n // Already deleting some comment\n if (this.state.deleteCommentId !== null || !commentId) return;\n\n this.setState({\n deleteCommentId: commentId\n });\n }\n\n deleteComment = (commentId) => {\n /*\n Method for creating comment in server.\n \n Returns a promise, which resolves to server response on success.\n Promise resolves to undefined if comment creation fails for some reason.\n */\n if (!this.isValidProps()) return Promise.resolve(undefined);\n\n clearLocalAlerts();\n\n const { contentType, objectId } = this.props;\n const request = commentUtils.removeComment(contentType, objectId, commentId);\n return request\n .then(resp => {\n this.setState(prevState => {\n return {\n deleteCommentId: null,\n comments: prevState.comments.filter(c => c.id !== commentId)\n }\n })\n\n this.fetchLatestComments();\n\n return resp;\n })\n .catch(error => {\n const title = i18n.t(\"comments.errors.delete_comment_error_title\");\n this.commentsErrorMessage(error, title);\n return undefined;\n })\n .finally(() => {\n this.setState({\n isDeleteLoading: false\n });\n });\n }\n\n emitCommentCountUpdate = () => {\n if (this.props.onCommentCountUpdate) {\n this.props.onCommentCountUpdate(this.state.comments.length)\n }\n }\n}\n\nexport default withRouter(Comments);\n","var _path;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nconst SvgCircleQuestion = _ref => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 512 512\",\n height: 16,\n width: 16,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 400c-18 0-32-14-32-32s13.1-32 32-32c17.1 0 32 14 32 32S273.1 400 256 400zM325.1 258L280 286V288c0 13-11 24-24 24S232 301 232 288V272c0-8 4-16 12-21l57-34C308 213 312 206 312 198C312 186 301.1 176 289.1 176h-51.1C225.1 176 216 186 216 198c0 13-11 24-24 24s-24-11-24-24C168 159 199 128 237.1 128h51.1C329 128 360 159 360 198C360 222 347 245 325.1 258z\"\n })));\n};\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgCircleQuestion, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/circle-question.ed5dc55d.svg\";\nexport { ForwardRef as ReactComponent };","import Comments from \"./Comments.jsx\";\n\nexport default Comments;\n","var _path;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nconst SvgCommentSolid = _ref => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 512 512\",\n width: 16,\n height: 16,\n fill: \"currentColor\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M256 32C114.6 32 .0272 125.1 .0272 240c0 49.63 21.35 94.98 56.97 130.7c-12.5 50.37-54.27 95.27-54.77 95.77c-2.25 2.25-2.875 5.734-1.5 8.734C1.979 478.2 4.75 480 8 480c66.25 0 115.1-31.76 140.6-51.39C181.2 440.9 217.6 448 256 448c141.4 0 255.1-93.13 255.1-208S397.4 32 256 32z\"\n })));\n};\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgCommentSolid, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/comment-solid.1e1c606b.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nconst SvgCommentsSolid = _ref => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 640 512\",\n width: 16,\n height: 16,\n fill: \"currentColor\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M416 176C416 78.8 322.9 0 208 0S0 78.8 0 176c0 39.57 15.62 75.96 41.67 105.4c-16.39 32.76-39.23 57.32-39.59 57.68c-2.1 2.205-2.67 5.475-1.441 8.354C1.9 350.3 4.602 352 7.66 352c38.35 0 70.76-11.12 95.74-24.04C134.2 343.1 169.8 352 208 352C322.9 352 416 273.2 416 176zM599.6 443.7C624.8 413.9 640 376.6 640 336C640 238.8 554 160 448 160c-.3145 0-.6191 .041-.9336 .043C447.5 165.3 448 170.6 448 176c0 98.62-79.68 181.2-186.1 202.5C282.7 455.1 357.1 512 448 512c33.69 0 65.32-8.008 92.85-21.98C565.2 502 596.1 512 632.3 512c3.059 0 5.76-1.725 7.02-4.605c1.229-2.879 .6582-6.148-1.441-8.354C637.6 498.7 615.9 475.3 599.6 443.7z\"\n })));\n};\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgCommentsSolid, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/comments-solid.f767ba8c.svg\";\nexport { ForwardRef as ReactComponent };","\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { withTranslation, Trans } from \"react-i18next\";\nimport moment from \"moment\";\n\n// datatable\nimport BootstrapTable from \"react-bootstrap-table-next\";\nimport \"react-bootstrap-table-next/dist/react-bootstrap-table2.min.css\";\nimport \"react-bootstrap-table2-filter/dist/react-bootstrap-table2-filter.min.css\"\nimport filterFactory, { textFilter } from \"react-bootstrap-table2-filter\";\n\nimport { isAdminMode } from \"util/Access\";\n\nimport WrappedLoader from \"components/Loader/WrappedLoader\";\nimport Comments from \"components/Comments\";\nimport { ReactComponent as ErrorIcon } from 'assets/icons/alert-default.svg';\nimport { ReactComponent as CircleQuestionIcon } from \"assets/icons/circle-question.svg\";\nimport { ReactComponent as AddCommentIcon } from \"assets/icons/comment-solid.svg\";\nimport { ReactComponent as ReadCommentsIcon } from \"assets/icons/comments-solid.svg\";\n\n\nimport \"./ReportLineList.scss\";\n\nfunction customTooltipHeaderFormatter(column, colIndex, { sortElement, filterElement }) {\n return (\n
\n {filterElement}\n {column.text} \n {sortElement}\n
\n );\n}\n\n\nfunction NoDataIndication(props) {\n let content =\n \n\n \n if (props.loading) {\n content = ;\n } else if (props.error) {\n content = {props.error};\n }\n\n return
{content}
;\n}\n\nclass ReportLineList extends React.Component {\n static propTypes = {\n lines: PropTypes.array,\n isLoading: PropTypes.bool,\n onCommentCountUpdate: PropTypes.func.isRequired\n }\n\n static defaultProps = {\n onCommentCountUpdate: (row, count) => { }\n }\n\n constructor(props) {\n super(props);\n this.state = {\n\n };\n }\n state = {\n\n }\n\n componentDidMount() {\n }\n\n render() {\n const { t, isLoading, lines } = this.props;\n if (isLoading) {\n return ;\n }\n let noLinesText = <>;\n if (!lines) {\n return <>;\n }\n\n return (\n
\n {noLinesText}\n {this.renderTable()}\n
\n );\n }\n\n renderTable() {\n const { t, lines, isLoading } = this.props;\n\n const isAdmin = isAdminMode();\n const data = lines;\n const columns = [\n {\n dataField: \"package.ean\",\n text: t(\"reports.filter.ean\", \"EAN\"),\n classes: \"semibold-14\",\n sort: true,\n footer: \"\",\n filter: textFilter({\n placeholder: t(\"reports.filter.ean\", \"EAN\"),\n style: {\n marginLeft: \"18px\"\n }\n })\n },\n {\n dataField: \"package.name\",\n text: t(\"reports.filter.product\"),\n classes: \"semibold-14\",\n sort: true,\n footer: \"\",\n filter: textFilter({\n placeholder: t(\"reports.filter.product\"),\n style: {\n minWidth: \"150px\"\n }\n })\n },\n {\n dataField: \"package.package_type\",\n text: t(\"reports.filter.packageType\"),\n classes: \"regular-14\",\n sort: true,\n footer: \"\",\n },\n {\n dataField: \"package.volume\",\n text: t(\"reports.filter.packageVolume\"),\n classes: \"regular-14\",\n sort: true,\n footer: \"\",\n },\n {\n dataField: \"quantity_sold\",\n text: t(\"reports.filter.quantitySold\"),\n classes: \"regular-14\",\n sort: true,\n footer: \"\",\n headerFormatter: customTooltipHeaderFormatter,\n headerTitle: () => t(\"reports.return.tooltip.quantity_sold\")\n },\n {\n dataField: \"quantity_returned\",\n text: t(\"reports.filter.quantityReturned\"),\n classes: \"regular-14\",\n sort: true,\n footer: \"\",\n headerFormatter: customTooltipHeaderFormatter,\n headerTitle: () => t(\"reports.return.tooltip.quantityReturned\")\n },\n {\n dataField: \"returned_percentage\",\n text: t(\"reports.filter.returnedPercentage\"),\n classes: \"regular-14\",\n sort: true,\n footer: \"\",\n headerFormatter: customTooltipHeaderFormatter,\n headerTitle: () => t(\"reports.return.tooltip.returnedPercentage\")\n },\n {\n dataField: \"client_sale_percentage\",\n text: t(\"reports.filter.clientSalePercentage\"),\n classes: \"regular-14\",\n sort: true,\n footer: \"\",\n show: isAdmin\n },\n {\n dataField: \"returned_more_than_sold\",\n text: t(\"reports.filter.returnedMoreThanSold\"),\n classes: \"regular-14\",\n sort: true,\n footer: \"\",\n align: \"center\",\n formatter: (value) => {\n if (!value) return null;\n return (\n \n )\n },\n headerFormatter: customTooltipHeaderFormatter,\n headerTitle: () => t(\"reports.return.tooltip.returnedMoreThanSold\")\n },\n {\n dataField: \"updated_at\", // updates on import changes and new comments\n text: t(\"reports.filter.updatedAt\"),\n classes: \"regular-14\",\n sort: true,\n footer: \"\",\n style: {\n width: \"170px\"\n },\n formatter: (value, line) => {\n return moment(value).format(\"DD.MM.YYYY HH:mm\")\n },\n show: false // Hidden as they do not want it to be shown\n },\n {\n dataField: \"created_at\", // updates only on import changes\n text: t(\"reports.filter.createdAt\"),\n classes: \"regular-14\",\n sort: true,\n footer: \"\",\n style: {\n width: \"170px\"\n },\n formatter: (value, line) => {\n if (!value) return null;\n return moment(value).format(\"DD.MM.YYYY HH:mm\")\n },\n show: false // Hidden as they wanted such a field on report list level not line\n },\n {\n dataField: \"comments_count\",\n text: t(\"comments.column.header\"),\n classes: \"semibold-14\",\n sort: true,\n footer: \"\",\n align: \"center\",\n formatter: (value, item) => {\n const mainClass = \"report-line-list__comment-button\";\n const classNames = [mainClass];\n let Icon, text;\n if (value > 0) {\n Icon = ReadCommentsIcon;\n text = t(\"comments.column.readComments\", { count: value });\n classNames.push(`${mainClass}--has-comments`)\n } else {\n Icon = AddCommentIcon;\n text = t(\"comments.column.addComment\");\n };\n return (\n
\n {\" \"}\n {text}\n
\n )\n },\n },\n ].filter(header => header.show !== false); // Show if explicitly not set to false\n\n const defaultSorted = [{\n dataField: \"created_at\",\n order: \"desc\"\n }]\n\n const expandRow = {\n parentClassName: \"report-line-list__expanded-parent-row\",\n renderer: row => (\n
\n this.props.onCommentCountUpdate(row, count)}\n />\n
\n )\n };\n\n const noDataIndication = ;\n\n return (\n <>\n \n \n );\n }\n}\n\nexport default withTranslation()(ReportLineList);\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { withRouter } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport moment from \"moment\";\n\nimport { Row, Col, Button, Modal, ModalBody, Card, CardHeader, CardBody } from \"reactstrap\";\n\nimport LeftText from \"components/Misc/LeftText\";\nimport DeleteText from \"components/Misc/DeleteText\";\nimport LoadingAnimation from \"components/Loader/WrappedPulseLoader\";\n\nimport CloseTextIcon from \"components/Misc/CloseTextIcon\";\nimport Alerts from \"components/Alerts/Alerts\";\nimport InputField from \"components/Form/Input\";\n\nimport urls from \"config/urls\";\nimport {\n addNewLocalSuccessAlert,\n clearLocalAlerts,\n} from \"util/Alerts\";\nimport { isAdminMode } from \"util/Access\";\nimport { withTranslation } from \"react-i18next\";\nimport {\n} from \"util/DateTime\";\n\n// Module specific\nimport reportUtils from \"./utils\";\nimport ActionsMenu from \"./ActionsMenu\";\nimport ReportLineList from \"./ReportLineList\";\n\n// css\nimport \"./DetailsView.scss\";\n\nconst deleteAlertGroup = \"delete-original-modal\";\n\nclass ReturnReportsDetailsView extends React.Component {\n static propTypes = {\n id: PropTypes.number.isRequired\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n details: {},\n isDetailsLoading: false,\n deleteModalOpen: false,\n isDeleteLoading: false\n };\n }\n\n componentDidMount() {\n this.fetchData();\n }\n\n render() {\n const { t } = this.props;\n const { details, isDetailsLoading } = this.state;\n return (\n
\n \n \n \n \n {this.isDeletable() && (\n \n \n \n )}\n \n \n \n \n \n {this.renderHeader()}\n \n \n {this.renderExtraActions()}\n \n \n \n \n \n\n {this.renderDeleteModal()}\n
\n );\n }\n\n renderHeader() {\n const { t } = this.props;\n const { details } = this.state;\n const isAdmin = isAdminMode();\n\n return (\n \n \n \n \n \n \n \n \n \n \n {\n isAdmin &&\n \n \n \n }\n \n )\n }\n\n renderDeleteModal() {\n const { t } = this.props;\n const { details, isDeleteLoading } = this.state;\n\n return (\n \n \n \n \n \n Tagastusaruande kustutamine\n \n \n \n \n \n \n \n \n \n \n \n \n \n

\n Kas soovite kustutada tagastusaruande{\" \"}\n {this.getPeriodFormatted()}?\n

\n \n
\n \n \n \n {t(\"buttons.cancel\", \"Tühista\")}\n \n \n \n \n {isDeleteLoading ? (\n \n ) : (\n \"Kustuta tagastusaruanne\"\n )}\n \n \n \n
\n \n );\n }\n\n renderExtraActions() {\n const { details } = this.state;\n if (!details?.id) {\n return;\n }\n\n return (\n
\n
\n \n
\n
\n )\n }\n\n onConfirmSuccess = (list) => {\n this.fetchData(false);\n }\n\n onImportSuccess = (statistics) => {\n const content = \n addNewLocalSuccessAlert(content, this.props.location.pathname)\n this.fetchData(false);\n }\n\n fetchData = (loading = true) => {\n const { id } = this.props;\n if (!id) {\n return;\n }\n const alertGroup = this.props.location.pathname;\n if (loading) {\n this.setState({ isDetailsLoading: true });\n }\n reportUtils\n .fetchDetails(id, alertGroup)\n .then((result) => {\n if (result.isSuccess) {\n this.updateDetails(result.details)\n }\n })\n .finally(() => {\n if (loading) {\n this.setState({ isDetailsLoading: false });\n }\n });\n };\n\n updateDetails = details => {\n this.setState({ details });\n }\n\n isDeletable = () => {\n return (\n isAdminMode() && !!this.state.details?.id\n );\n };\n\n onOpenDeleteModal = () => {\n this.setState({\n deleteModalOpen: true,\n });\n };\n\n onCancelDelete = () => {\n if (this.state.isDeleteLoading) {\n return;\n }\n this.setState({\n deleteModalOpen: false,\n });\n clearLocalAlerts();\n };\n\n onDelete = () => {\n const id = this.state.details?.id;\n if (!id || this.state.isDeleteLoading) {\n return;\n }\n this.setState({\n isDeleteLoading: true\n });\n clearLocalAlerts();\n reportUtils.deleteDetails(id, deleteAlertGroup).then((result) => {\n if (result.isSuccess) {\n addNewLocalSuccessAlert(\n \"Tagastusaruande kustutamine õnnestus.\",\n urls.REPORTS_SALES,\n false\n );\n document.body.classList.remove(\"modal-open\");\n this.redirectToListView();\n }\n })\n .finally(() => {\n this.setState({ isDeleteLoading: false });\n });\n };\n\n redirectToListView = () => {\n const route = reportUtils.getListViewUrl();\n this.props.history.push(route);\n };\n\n getPeriodFormatted() {\n // Frontend should show localized months instead of numeric period from backend\n const { details } = this.state;\n if (details?.period_start && details?.period_end) {\n const periodStartFormatted = moment(details.period_start).format(\"MMMM YYYY\");\n const periodEndFormatted = moment(details.period_end).format(\"MMMM YYYY\");\n return `${periodStartFormatted} - ${periodEndFormatted}`;\n } else {\n return null;\n }\n }\n\n onCommentCountUpdate = (line, count) => {\n this.setState((prevState) => {\n return {\n details: {\n ...prevState.details,\n lines: prevState.details.lines.map(currentLine => currentLine.id === line.id ? {\n ...currentLine,\n comments_count: count\n } : currentLine),\n }\n }\n })\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n };\n};\n\nexport default withRouter(\n connect(mapStateToProps)(withTranslation()(ReturnReportsDetailsView))\n);\n","import React from \"react\";\nimport axios from \"../../axios\";\nimport store from \"redux/store\";\nimport moment from \"moment\";\nimport { Trans } from \"react-i18next\";\n\nimport urls, {ID_PLACEHOLDER} from \"config/urls\";\nimport { getServerErrorMessage, getErrorMessageList } from \"util/Errors\";\nimport { addNewLocalErrorAlert, addNewLocalSuccessAlert, clearLocalAlerts } from \"util/Alerts\";\n\nimport { isAdminMode } from \"util/Access\";\n\nimport StatusCell, {statusTypes} from \"components/Table/Cell/Status/StatusCell\";\n\nimport {\n actions, STATUSES, filterNavStatusOptions\n} from \"./redux\";\n\nconst _COMMON_PATH = \"additional-deposit-reports\";\n\nexport function getDetailsViewUrl(id) {\n let path;\n if (isAdminMode()) {\n path = urls.EPP_REPORTS_ADDITIONAL_DEPOSIT_DETAILS;\n } else {\n path = urls.REPORTS_ADDITIONAL_DEPOSIT_DETAILS;\n }\n return path.replace(ID_PLACEHOLDER, id);\n}\n\nexport function getListViewUrl() {\n if (isAdminMode()) {\n return urls.EPP_REPORTS_ADDITIONAL_DEPOSIT_LIST;\n } else {\n return urls.REPORTS_ADDITIONAL_DEPOSIT_LIST;\n }\n}\n\nexport function fetchReportsList(filters, sorting, pagination, alertGroup = null) {\n store.dispatch(actions.listFetchStart());\n const params = {\n ordering: createSortingQueryParameter(sorting),\n page: pagination.page,\n page_size: pagination.sizePerPage,\n ...createFilteringQueryParameters(filters),\n };\n return axios\n .get(`${_COMMON_PATH}/`, {params})\n .then((resp) => {\n const {data} = resp;\n const list = data.results;\n const dataSize = data.count;\n \n store.dispatch(\n actions.listFetchSuccess(list, dataSize, filters)\n );\n\n return { isSuccess: true, list };\n })\n .catch((err) => {\n const errorMessage = getServerErrorMessage(err);\n store.dispatch(actions.listFetchFail(errorMessage));\n\n if (alertGroup) {\n clearLocalAlerts();\n addNewLocalErrorAlert(\n \n Aruannete laadimine ebaõnnestus: {{ errorMessage }}\n ,\n alertGroup,\n true\n );\n }\n\n return { isSuccess: false, errorMessage };\n });\n}\n\nexport function fetchDetails(id, alertGroup = null) {\n // Details view data managed in component instead of through redux.\n return axios\n .get(`${_COMMON_PATH}/${id}/`)\n .then((resp) => {\n return { isSuccess: true, details: resp.data };\n })\n .catch((err) => {\n const errorMessage = getServerErrorMessage(err);\n\n if (alertGroup) {\n clearLocalAlerts();\n addNewLocalErrorAlert(\n \n Aruannete laadimine ebaõnnestus: {{ errorMessage }}\n ,\n alertGroup,\n true\n );\n }\n\n return { isSuccess: false, errorMessage };\n });\n}\n\nexport function deleteDetails(id, alertGroup = null) {\n return axios\n .delete(`${_COMMON_PATH}/delete/${id}/`)\n .then((resp) => {\n return { isSuccess: true, list: resp.data };\n })\n .catch((err) => {\n const errorMessage = getServerErrorMessage(err);\n\n if (alertGroup) {\n clearLocalAlerts();\n addNewLocalErrorAlert(\n \n Aruannete kustutamine ebaõnnestus: {{ errorMessage }}\n ,\n alertGroup,\n true\n );\n }\n\n return { isSuccess: false, errorMessage };\n });\n}\n\nexport function syncReports(id, alertGroup = null) {\n let endpoint;\n if (id) {\n endpoint = `${_COMMON_PATH}/sync/${id}/`;\n } else {\n endpoint = `${_COMMON_PATH}/sync/`;\n }\n \n return axios\n .post(endpoint)\n .then((resp) => {\n return { isSuccess: true, statistics: resp.data, errorMessage: undefined };\n })\n .catch((err) => {\n let errorMessage, errorContent;\n \n //Can expect a list of validation errors if failing to parse specific rows.\n if (err?.response?.status === 400 && Array.isArray(err?.response?.data)) {\n const errorContentFunc = (error) => {\n return error?.code || \"Unexpected error (Ootamatu viga)\"\n }\n const topText = Aruande sünkroniseerimine ebaõnnestus:\n errorMessage = getErrorMessageList(err.response.data, errorContentFunc, topText);\n errorContent = errorMessage;\n } else {\n errorMessage = getServerErrorMessage(err);\n errorContent = (\n \n Aruande sünkroniseerimine ebaõnnestus: {{ errorMessage }}\n \n );\n \n }\n if (alertGroup) {\n clearLocalAlerts();\n addNewLocalErrorAlert(\n errorContent,\n alertGroup,\n true\n );\n }\n\n return { isSuccess: false, errorMessage, statistics: undefined };\n });\n}\n\nconst createSortingQueryParameter = (sorting) => {\n const {order, dataField} = sorting;\n const orderMapping = {\n asc: \"\",\n desc: \"-\"\n };\n const fieldMapping = {\n \"client.name\": \"client__name\",\n \"period\": \"period\",\n \"is_posted\": \"is_posted\"\n };\n\n return `${orderMapping[order]}${fieldMapping[dataField] || dataField}`;\n};\n\nfunction ReportStatus(props) {\n const {details, inlineStyle} = props;\n let type, label;\n if (!details?.id) return null;\n if (details.is_posted === STATUSES.POSTED_FALSE) {\n type = statusTypes.WARNING;\n label = ;\n } \n else if (details.is_posted === STATUSES.POSTED_TRUE) {\n type = statusTypes.SUCCESS;\n label = ;\n } else {\n // Shouldn't happen\n type = statusTypes.DEFAULT;\n label = \"-\";\n }\n return (\n \n )\n}\n\nfunction ReportSyncSuccess({statistics, topText}) {\n if (!topText) {\n topText = (\n \n Aruannete importimine õnnestus\n \n );\n }\n const statisticsMessage = [\n `${statistics.client_count} klienti läbiti kokku`,\n `${statistics.filter_historic} aruannet jäeti vahele, sest need olid liiga vanad`,\n `${statistics.report_count} aruannet läbiti klientidel kokku`,\n `${statistics.invalid_contract} klienti jäeti vahele kuna leping ei ole aktiivne`,\n `${statistics.client_request_error} kliendi aruanded jäid uuendamata, sest kliendi aruannete nimekirja päring NAV-ist ebaõnnestus`,\n `${statistics.report_request_error} aruannet jäi uuendamata, sest aruande päring NAV-ist ebaõnnestus`,\n `${statistics.report_unexpected} aruannet jäi uuendamata aruande päringu ootamatute väljaväärtuste tõttu`,\n `${statistics.report_is_posted} aruannet jäi sünkroniseerimata, sest juba kinnitatud`,\n //`${statistics.report_invoice}`,\n `${statistics.lines} aruanderida jäeti vahele, sest pakendit ei leitud (nav_id + client_id)`\n ]\n return getErrorMessageList(statisticsMessage, message => message, topText);\n}\n\nconst createFilteringQueryParameters = (filters) => {\n const addFilteringFieldToParams = (params, queryParameter, value) => {\n return {\n ...params,\n [queryParameter]: value,\n };\n };\n let params = {};\n if (filters.client) {\n const value = filters.client.value;\n params = addFilteringFieldToParams(params, \"client\", value);\n }\n if (filters.fromDate) {\n const value = moment(filters.fromDate).format(\"YYYY-MM\")\n params = addFilteringFieldToParams(params, \"period_start\", value);\n }\n if (filters.toDate) {\n const value = moment(filters.toDate).format(\"YYYY-MM\")\n params = addFilteringFieldToParams(params, \"period_end\", value);\n }\n if (filters.is_posted) {\n const selectedValue = filters.is_posted.value;\n if (Object.values(STATUSES).includes(selectedValue))\n params = addFilteringFieldToParams(params, \"is_posted\", selectedValue);\n }\n\n return params;\n};\n\nexport default {\n //endpoints\n getDetailsViewUrl,\n getListViewUrl,\n fetchReportsList,\n fetchDetails,\n deleteDetails,\n syncReports,\n // components\n ReportStatus,\n ReportSyncSuccess,\n // other\n STATUSES,\n actions,\n filterNavStatusOptions,\n}\n","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\nimport { PropTypes } from \"prop-types\";\nimport { withTranslation } from \"react-i18next\";\n\nimport { Card, CardBody, Form, Row, Col, Button } from \"reactstrap\";\n\n// datepicker\nimport DatePicker from \"react-datepicker\";\nimport \"react-datepicker/dist/react-datepicker.css\";\n\n// generic\nimport SmallLoader from \"components/Loader/WrappedPulseLoader\";\nimport Select from \"components/Form/Select\";\nimport {\n fetchAllClients,\n} from \"util/General\";\nimport { isAdminMode } from \"util/Access\";\n\n// module specific\nimport { actions } from \"./redux\";\nimport reportUtils from \"./utils\";\n// css\nimport \"./ListSearch.scss\";\n\n\nclass AdditionalDepositReportsListSearch extends React.Component {\n static propTypes = {\n // manual\n onSearch: PropTypes.func.isRequired,\n // automatic\n loading: PropTypes.bool,\n filters: PropTypes.object.isRequired,\n isAdmin: PropTypes.bool,\n // actions\n updateFilters: PropTypes.func.isRequired,\n clearFilters: PropTypes.func.isRequired,\n // Taken from redux\n allClients: PropTypes.array,\n\n }\n\n componentDidMount() {\n fetchAllClients(this.props.allClients);\n }\n\n render() {\n const { t, filters, updateFilters, clearFilters, allClients, isAdmin } = this.props;\n return (\n
\n \n {isAdmin ?\n \n {t(\"reports.additionalDeposit.listSearchHeader\")}\n \n :\n \n \n {t(\"reports.filter.period\")}\n \n \n }\n {\n isAdmin &&\n \n option.label}\n getOptionValue={(option) => option.value}\n onChange={value => updateFilters('client', value)}\n className=\"mb-2\"\n />\n \n }\n {\n isAdmin &&\n \n option.label}\n getOptionValue={(option) => option.value}\n onChange={value => updateFilters('is_posted', value)}\n className=\"mb-2\"\n />\n \n }\n \n {\n let updateValue = value || filters.fromDate\n if (updateValue instanceof Date) {\n updateValue = new Date(updateValue.getFullYear(), 0)\n }\n updateFilters(\"fromDate\", updateValue)\n }}\n maxDate={filters.toDate || new Date()}\n showYearPicker\n dateFormat=\"yyyy\"\n />\n \n \n {\n let updateValue = value || filters.toDate\n if (updateValue instanceof Date) {\n updateValue = new Date(updateValue.getFullYear(), 11,)\n }\n updateFilters(\"toDate\", updateValue)\n }}\n minDate={filters.fromDate}\n maxDate={new Date()}\n showYearPicker\n dateFormat=\"yyyy\"\n />\n \n \n {\n e.preventDefault();\n this.onSearch();\n }}\n disabled={this.props.loading}\n >\n {this.props.loading ? : t(\"buttons.search\")}\n \n \n \n \n {t(\"buttons.clearSearch\")}\n \n \n \n
\n );\n }\n\n onSearch = () => {\n this.props.onSearch(this.props.filters);\n }\n\n}\n\nconst mapStateToProps = state => {\n // Module state reducer\n const listState = state.additionalDepositReports;\n return {\n loading: listState.listLoading,\n filters: listState.listFilters,\n allClients: state.general.allClients,\n isAdmin: isAdminMode()\n }\n};\n\nconst reduxActions = {\n updateFilters: actions.listUpdateFilters,\n clearFilters: actions.listClearFilters,\n}\n\nexport default withRouter(connect(mapStateToProps, reduxActions)(withTranslation()(AdditionalDepositReportsListSearch)));\n","import React from \"react\";\nimport { withRouter } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport PropTypes from \"prop-types\";\nimport _ from \"lodash\";\nimport uniqueId from \"lodash/uniqueId\";\nimport accept from \"attr-accept\";\nimport { withTranslation, Trans } from \"react-i18next\";\n\nimport { Row, Col, Button, Input, Modal, ModalBody } from \"reactstrap\";\n\n// datepicker\nimport \"react-datepicker/dist/react-datepicker.css\";\n\nimport SmallLoader from \"components/Loader/WrappedPulseLoader\";\nimport CloseTextIcon from \"components/Misc/CloseTextIcon\";\n\nimport Alerts from \"components/Alerts/Alerts\";\nimport {\n clearIncludedGroups,\n addNewLocalWarningAlert,\n addNewLocalInfoAlert,\n clearLocalAlerts\n} from \"util/Alerts\";\n\nimport reportUtils from \"./utils\";\n\nimport \"./SyncModal.scss\";\n\nclass SyncAdditionalDepositReportModal extends React.Component {\n static propTypes = {\n // manual\n isOpen: PropTypes.bool.isRequired,\n details: PropTypes.object, // If given we update a specific report (only client's rows), if not we add/update bulk, need period\n onToggle: PropTypes.func.isRequired,\n onSuccess: PropTypes.func.isRequired,\n isDetailsView: PropTypes.bool,\n // defaults exist\n fileMaxSize: PropTypes.number,\n fileTypes: PropTypes.arrayOf(PropTypes.string), // Only array version because using [].includes\n }\n\n static defaultProps = {\n fileMaxSize: 5e6,\n fileTypes: [\".xlsx\", \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\"],\n }\n\n\n constructor(props) {\n super(props);\n this.state = {\n groupId: uniqueId(\"sync-additional-deposit-report-modal__\"),\n isLoading: false,\n reportId: props.details?.id || null\n }\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.isOpen !== this.props.isOpen) {\n this.setState({\n })\n }\n }\n\n render() {\n const { t, isOpen, details } = this.props;\n const { groupId, isLoading } = this.state;\n if (!isOpen) {\n return false;\n }\n\n const isUpdateSpecificReport = !!details?.id;\n const title = t(\"reports.additionalDeposit.sync.title\");\n const canSubmit = !isLoading;\n\n return (\n \n \n \n \n {title}\n \n \n \n \n \n \n \n \n \n \n {\n isUpdateSpecificReport &&\n \n \n \n \n \n }\n \n \n

\n {\n isUpdateSpecificReport ?\n \"Sünkronisatsiooni käigus uuendatakse ainult välja toodud täiendava pandi aruande seisu.\"\n :\n \"Sünkronisatsiooni käigus päritakse NAV-ist täiendava pandi aruanded ja luuakse/uuendatakse nende seisu veebikeskkonnas.\"\n }\n

\n

Eelduseks on, et tegu on aktiivse lepinguga kliendiga ning aruanne ei ole Kinnitatud staatuses.

\n\n

Päring võib võtta aega mitu minutit.

\n \n
\n \n \n \n {t(\"reports.importSalesReportModal.cancelButton\")}\n \n \n \n \n {isLoading ? : \"Sünkroniseeri\"}\n \n \n \n
\n \n );\n }\n\n clearModalAlerts = () => {\n clearIncludedGroups(this.state.groupId);\n }\n\n onConfirm = () => {\n const { onSuccess, details } = this.props;\n const { reportId, groupId } = this.state;\n clearLocalAlerts();\n this.setState({ isLoading: true });\n console.log(\"on sync confirm:\", reportId, groupId)\n reportUtils.syncReports(reportId, groupId)\n .then(\n ({ isSuccess, statistics, errorMessage }) => {\n if (isSuccess) {\n onSuccess(statistics, details);\n }\n }\n )\n .finally(() => {\n this.setState({ isLoading: false });\n });\n\n };\n\n onCancel = () => {\n if (this.state.isLoading) {\n return;\n }\n this.clearModalAlerts();\n this.props.onToggle(false);\n }\n}\n\nconst mapStateToProps = state => {\n return {\n }\n};\n\nconst reduxActions = {\n};\n\nexport default withRouter(connect(mapStateToProps, reduxActions)(withTranslation()(SyncAdditionalDepositReportModal)));\n","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\nimport { PropTypes } from \"prop-types\";\n\nimport { Row, Col, Button } from \"reactstrap\";\n\n// datepicker\nimport \"react-datepicker/dist/react-datepicker.css\";\n\n// generic\nimport LoadingAnimation from \"components/Loader/WrappedPulseLoader\";\nimport { isAdminMode } from \"util/Access\";\n\n// module specific\nimport { actions } from \"./redux\";\n//import reportUtils from \"./utils\";\nimport SyncModal from \"./SyncModal\";\n\n// css\n//import \"./ListActions.scss\";\n\n\nclass AdditionalDepositReportListActions extends React.Component {\n static propTypes = {\n // manual\n onSyncSuccess: PropTypes.func.isRequired,\n // automatic\n list: PropTypes.array.isRequired,\n selectedIds: PropTypes.array.isRequired,\n selectedRows: PropTypes.array.isRequired,\n isAdmin: PropTypes.bool,\n updateSelected: PropTypes.func.isRequired,\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n isSyncOpen: false\n }\n }\n\n componentDidMount() {\n }\n\n render() {\n const { isAdmin } = this.props;\n if (!isAdmin) return null;\n return (\n \n \n \n \n {this.renderSyncButtonAndModal()}\n \n \n \n \n )\n }\n\n renderSyncButtonAndModal() {\n const { onSyncSuccess, isAdmin } = this.props;\n const { isSyncOpen } = this.state;\n\n if (!isAdmin) return null;\n\n const onToggle = () => {\n this.setState(prevState => { return { isSyncOpen: !prevState.isSyncOpen } });\n };\n const onSuccess = data => {\n this.setState({\n isSyncOpen: false\n })\n if (onSyncSuccess) {\n onSyncSuccess(data);\n }\n }\n const isButtonDisabled = false;\n const isOpen = isSyncOpen;\n return (\n <>\n \n Sünkroniseeri aruanded\n \n \n\n \n );\n }\n\n}\n\nconst mapStateToProps = state => {\n // Module state reducer\n const listState = state.additionalDepositReports;\n return {\n isAdmin: isAdminMode(),\n list: listState.list,\n selectedIds: listState.listSelectedIds,\n selectedRows: listState.list.filter(row => listState.listSelectedIds.includes(row.id))\n }\n};\n\nconst reduxActions = {\n updateSelected: actions.listSelectedUpdate\n}\n\nexport default withRouter(connect(mapStateToProps, reduxActions)(AdditionalDepositReportListActions));\n","import React from \"react\";\nimport { withRouter } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport PropTypes from \"prop-types\";\nimport _ from \"lodash\";\nimport { withTranslation } from \"react-i18next\";\nimport { Button, UncontrolledButtonDropdown, DropdownMenu, DropdownItem, DropdownToggle, Row, Col } from 'reactstrap';\n\n\nimport { ReactComponent as MoreVerticalIcon } from 'assets/icons/more-vertical.svg';\nimport { clearLocalAlerts, addNewLocalErrorAlert } from \"util/Alerts\";\nimport { isAdminMode } from \"util/Access\";\n\nimport SyncModal from \"./SyncModal\";\nimport reportUtils from \"./utils\";\n\nimport \"./ActionsMenu.scss\";\n\nconst StyledDropdownItem = (props) => {props.children};\n\nclass AdditionalDepositReportActionsMenu extends React.Component {\n static propTypes = {\n details: PropTypes.object.isRequired,\n onSyncSuccess: PropTypes.func.isRequired,\n isDetailsViewMode: PropTypes.bool,\n // automatic\n isAdmin: PropTypes.bool\n }\n\n constructor(props) {\n super(props);\n this.state = {\n isSyncOpen: false\n }\n }\n\n render() {\n const { isDetailsViewMode } = this.props;\n\n return (\n
\n {\n isDetailsViewMode ?\n this.renderDetailsViewMode()\n :\n this.renderDropdownMenu()\n }\n {this.renderSyncModal()}\n
\n )\n }\n\n renderDetailsViewMode() {\n return (\n \n {this.renderActions(\"button-col\")}\n \n )\n }\n\n renderDropdownMenu() {\n return (\n { e.stopPropagation(); }}>\n \n \n \n \n {this.renderActions(\"dropdown\")}\n \n \n );\n }\n\n renderSyncModal = () => {\n const { details, onSyncSuccess } = this.props;\n const { isSyncOpen } = this.state;\n\n const onSuccess = (data, details) => {\n this.setState({\n isSyncOpen: false\n })\n if (onSyncSuccess) {\n onSyncSuccess(data, details);\n }\n }\n return (\n \n )\n }\n\n renderActions(mode) {\n const renderActionList = [\n this.renderActionOpenDetails,\n this.renderSyncFile\n ]\n\n return renderActionList.map((renderAction) => renderAction(mode))\n }\n\n renderItem(text, onClick, options) {\n const config = _.defaultsDeep(options, {\n mode: \"dropdown\", // \"dropdown\" or \"button-col\"\n });\n if (config.mode === \"button-col\") {\n return (\n \n \n \n );\n }\n\n return (\n onClick()}\n key={text}\n >\n {text}\n \n );\n }\n\n renderActionOpenDetails = (mode) => {\n const { t, isDetailsViewMode } = this.props;\n\n if (isDetailsViewMode) return null;\n const label = t(\"reports.additionalDeposit.menu.openDetails\");\n return this.renderItem(label, this.onView, { mode });\n }\n\n renderSyncFile = mode => {\n const { t, isAdmin } = this.props;\n if (!isAdmin) return;\n const text = t(\"reports.additionalDeposit.menu.syncLabel\")\n return this.renderItem(text, this.onToggleSyncModal, { mode })\n }\n\n onView = (isOpenInTab = false) => {\n const { history, details } = this.props;\n const route = reportUtils.getDetailsViewUrl(details.id);\n if (isOpenInTab) {\n window.open(route, '_blank');\n } else {\n history.push(route);\n }\n }\n\n onToggleSyncModal = (value) => {\n this.setState(prevState => ({\n isSyncOpen: !prevState.isSyncOpen\n }));\n }\n}\n\nconst mapStateToProps = (state) => {\n // Module state reducer\n return {\n isAdmin: isAdminMode()\n };\n};\n\nexport default withRouter(connect(mapStateToProps, null)(withTranslation()(AdditionalDepositReportActionsMenu)));\n","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport PropTypes from \"prop-types\";\nimport { withTranslation } from \"react-i18next\";\nimport { Card, CardBody, Row, Col } from \"reactstrap\";\nimport moment from \"moment\";\n\n// datatable\nimport BootstrapTable from \"react-bootstrap-table-next\";\nimport \"react-bootstrap-table-next/dist/react-bootstrap-table2.min.css\";\nimport \"react-bootstrap-table2-filter/dist/react-bootstrap-table2-filter.min.css\";\nimport filterFactory from \"react-bootstrap-table2-filter\";\n\n// generic\nimport DateCell from \"components/Table/Cell/DateCell\";\nimport WrappedLoader from \"components/Loader/WrappedLoader\";\nimport CenteredRowCol from \"components/Misc/CenteredRowCol\";\nimport { isConnectedToClientWithActiveContract, isAdminMode } from \"util/Access\";\nimport { YEAR_MONTH_FORMAT } from \"util/DateTime\";\nimport { addNewLocalSuccessAlert } from \"util/Alerts\";\nimport { getErrorMessageList } from \"util/Errors\";\nimport CustomPagination from \"components/Table/Pagination/CustomPagination\";\n// generic - selection\nimport Checkbox from \"components/Form/Checkbox\";\nimport SelectionHeader from \"components/Form/SelectionHeader/SelectionHeader\";\nimport DocumentCell from \"components/Table/Cell/DocumentCell\";\n\n// module specific\nimport ListSearch from \"./ListSearch\";\nimport ListActions from \"./ListActions\";\nimport ActionsMenu from \"./ActionsMenu\";\nimport reportUtils from \"./utils\";\nimport { actions } from \"./redux\";\n\n// css\nimport \"./ListView.scss\";\nimport { defaultsDeep } from \"lodash\";\n\nfunction NoDataIndication(props) {\n let content =\n props.t(\"reports.additionalDeposit.noDataText\");\n if (props.loading) {\n content = ;\n } else if (props.error) {\n content = {props.error};\n }\n\n return
{content}
;\n}\n\nclass AdditionalDepositReportListView extends React.Component {\n static propTypes = {\n // automatic\n list: PropTypes.array.isRequired,\n loading: PropTypes.bool,\n filters: PropTypes.object.isRequired,\n filtersUsed: PropTypes.object.isRequired,\n pagination: PropTypes.object.isRequired,\n sorting: PropTypes.object.isRequired,\n selectedIds: PropTypes.array.isRequired,\n // general\n user: PropTypes.object.isRequired,\n isClientWithActiveContract: PropTypes.bool,\n isAdmin: PropTypes.bool,\n // actions\n updateFilters: PropTypes.func.isRequired,\n clearFilters: PropTypes.func.isRequired,\n updateSorting: PropTypes.func.isRequired,\n updatePagination: PropTypes.func.isRequired,\n updateSelected: PropTypes.func.isRequired,\n };\n\n componentDidMount() {\n const { isAdmin, isClientWithActiveContract } = this.props;\n if (isAdmin || isClientWithActiveContract) {\n this.fetchList();\n }\n }\n\n componentDidUpdate(prevProps) {\n const { isAdmin, isClientWithActiveContract } = this.props;\n const isValidClient = isClientWithActiveContract\n const isAdminNowActive = isAdmin && isAdmin !== prevProps.isAdmin;\n const isValidClientModeNowActive = isValidClient && isValidClient !== prevProps.isClientWithActiveContract;\n if (isAdminNowActive || isValidClientModeNowActive) {\n this.fetchList();\n }\n }\n\n render() {\n return (\n \n \n \n {this.renderActions()}\n {this.renderTable()}\n \n \n );\n }\n\n renderActions() {\n return (\n \n )\n }\n\n renderTable() {\n const { t, list, loading, isAdmin, pagination, sorting, selectedIds } = this.props;\n if (loading) {\n return (\n \n \n \n );\n }\n if (list === null || list === undefined) {\n return <>;\n }\n\n const columns = [\n {\n dataField: \"client.name\",\n text: \"Ettevõte\",\n sort: true,\n classes: \"client-col semibold-14\",\n headerClasses: \"client-col-header\",\n show: isAdmin\n },\n {\n dataField: \"period\",\n text: t(\"reports.table.period\"),\n sort: true,\n classes: \"period-col\",\n headerClasses: \"period-col-header\",\n formatter: (periodStart, row) => this.periodDateColumnFormatter(periodStart),\n show: true\n },\n {\n dataField: \"invoices\",\n text: t(\"reports.table.invoice\"),\n sort: false,\n sortValue: invoices => invoices?.length > 0 ? invoices[0].name : \"\",\n align: \"left\",\n headerAlign: \"left\",\n classes: \"invoice-col\",\n headerClasses: \"invoice-col-header\",\n formatter: (invoices, row) => this.invoicesColumnFormatter(invoices),\n show: true\n },\n {\n dataField: \"is_posted\",\n text: t(\"reports.table.status\"),\n align: \"center\",\n alignHeader: \"center\",\n sort: true,\n classes: \"status-col\",\n headerClasses: \"status-col-header\",\n formatter: (value, row) => this.statusColumnFormatter(row),\n show: isAdmin\n },\n {\n dataField: \"last_synced_at\", // updates on sync, if not already posted\n text: t(\"reports.filter.createdAt\"), // name is what they wanted, last_synced_at has the logic they expected for the column\n classes: \"regular-14\",\n sort: true,\n style: {\n width: \"170px\"\n },\n formatter: (value, line) => {\n if (!value) return null;\n return moment(value).format(\"DD.MM.YYYY\")\n },\n show: true\n },\n {\n dataField: \"id\",\n text: \"\",\n align: \"right\",\n alignHeader: \"right\",\n classes: \"action-col\",\n headerClasses: \"action-col-header\",\n formatter: (id, row) =>\n this.actionColumnFormatter(row),\n show: true\n },\n ].filter(col => col.show === true);\n\n const defaultSorted = [sorting];\n let selectRow;\n /*\n if (isAdmin) {\n selectRow = {\n mode: \"checkbox\",\n selected: selectedIds,\n hideSelectAll: false,\n selectionRenderer: ({ mode, checked, disabled }) => (\n { }} className=\"px-0\" />\n ),\n onSelect: (row, isSelect, rowIndex, e) => {\n this.onSelect(row, isSelect, rowIndex, e);\n },\n onSelectAll: (isSelect, rows) => {\n this.onSelectAll(isSelect, rows);\n },\n selectionHeaderRenderer: ({ mode, checked, indeterminate }) => {\n return \n }\n }\n }\n */\n\n const rowClasses = (row, rowIndex) => {\n return \"pointer\";\n };\n\n const rowEvents = {\n onClick: (e, row, rowIndex) => {\n this.onRowClick(e, row);\n },\n };\n\n return (\n \n \n \n }\n rowClasses={rowClasses}\n rowEvents={rowEvents}\n />\n {!this.props.loading &&\n \n \n this.onPaginationChange(page, sizePerPage)}\n onPageChange={this.onPaginationChange}\n />\n \n \n }\n\n \n \n );\n }\n\n periodDateColumnFormatter = (periodDate) => {\n return (\n <>\n \n \n \n \n \n \n );\n };\n\n statusColumnFormatter = (row) => {\n return (\n \n \n {\n \n }\n \n \n );\n }\n\n invoicesColumnFormatter = (invoices) => {\n return invoices.filter(invoice => invoice.name).map((invoice, index) => (\n
\n { }}\n />\n
\n ));\n };\n\n fetchList = (config) => {\n const { filtersUsed, sorting, pagination, location } = this.props;\n config = defaultsDeep(config, {\n filters: filtersUsed,\n sorting,\n pagination,\n alertGroup: location.pathname\n });\n\n reportUtils.fetchReportsList(config.filters, config.sorting, config.pagination, config.alertGroup);\n }\n\n onSearch = () => {\n this.fetchList({\n filters: this.props.filters\n });\n }\n\n onPaginationChange = (page, sizePerPage) => {\n const { pagination, updatePagination } = this.props;\n if (page !== pagination.page || sizePerPage !== pagination.sizePerPage) {\n const newPagination = { ...pagination, page, sizePerPage };\n updatePagination(newPagination);\n this.fetchList({\n pagination: newPagination\n });\n }\n }\n\n onTableChange = (type, newState) => {\n const { sorting, updateSorting } = this.props;\n const { sortOrder, sortField } = newState;\n if (sortOrder !== sorting.order || sortField !== sorting.dataField) {\n const newSorting = {\n dataField: sortField,\n order: sortOrder,\n };\n updateSorting(newSorting);\n this.fetchList({\n sorting: newSorting\n });\n }\n }\n\n onSelect = (row, isSelect, rowIndex, e) => {\n const rows = [row];\n this.onSelectAll(isSelect, rows)\n }\n\n onSelectAll = (isSelect, rows) => {\n const { selectedIds, updateSelected } = this.props;\n const ids = rows.map(row => row.id);\n let newSelectedIds;\n if (isSelect) {\n const possibleDuplicateIds = [...selectedIds, ...ids];\n const setOfUniqueIds = new Set(possibleDuplicateIds);\n newSelectedIds = [...setOfUniqueIds];\n } else {\n newSelectedIds = selectedIds.filter(id => !ids.includes(id));\n }\n updateSelected(newSelectedIds)\n }\n\n onRowClick = (event, row) => {\n let url = reportUtils.getDetailsViewUrl(row.id);\n this.props.history.push(url);\n };\n\n getSyncSuccessMessage(statistics, topText) {\n const stats = [\n `Loodi ${statistics.reports_created} aruannet`,\n `Loodi ${statistics.lines_created} aruanderida`,\n `Uuendati ${statistics.reports_updated} aruannet`,\n `Uuendati ${statistics.lines_updated} aruanderida`,\n ]\n return getErrorMessageList(stats, stat => stat, topText)\n }\n\n onSyncAllSuccess = statistics => {\n const { pagination, location, t } = this.props;\n this.onPaginationChange(1, pagination.sizePerPage);\n\n this.props.updatePagination({\n ...pagination,\n page: 1\n });\n this.fetchList();\n\n const topText = t(\"reports.additionalDeposit.alerts.syncBulkSuccess\");\n const alertMessage = ;\n addNewLocalSuccessAlert(alertMessage, location.pathname);\n }\n\n onSpecificReportSyncSuccess = (statistics, details) => {\n const { pagination, history, t } = this.props;\n\n this.props.updatePagination({\n ...pagination,\n page: 1\n });\n this.fetchList();\n\n const topText = t(\"reports.additionalDeposit.alerts.syncSpecificSuccess\");\n const alertMessage = ;\n const detailsRoute = reportUtils.getDetailsViewUrl(details.id);\n addNewLocalSuccessAlert(alertMessage, detailsRoute);\n history.push(detailsRoute);\n }\n\n actionColumnFormatter = (row) => {\n return ;\n };\n}\n\nconst mapStateToProps = (state) => {\n // Module state reducer\n const listState = state.additionalDepositReports;\n return {\n list: listState.list,\n loading: listState.listLoading,\n filters: listState.listFilters,\n filtersUsed: listState.listFiltersUsed,\n sorting: listState.listSorting,\n pagination: listState.listPagination,\n selectedIds: listState.listSelectedIds,\n // general\n user: state.auth.user,\n isClientWithActiveContract: isConnectedToClientWithActiveContract(\n state\n ),\n isAdmin: isAdminMode()\n };\n};\n\nconst mapActionsToTops = {\n updateFilters: actions.listUpdateFilters,\n clearFilters: actions.listClearFilters,\n updateSorting: actions.listSortingUpdate,\n updatePagination: actions.listPaginationUpdate,\n updateSelected: actions.listSelectedUpdate\n}\n\nexport default connect(mapStateToProps, mapActionsToTops)(withTranslation()(AdditionalDepositReportListView));\n","\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { withTranslation, Trans } from \"react-i18next\";\nimport moment from \"moment\";\n\n// datatable\nimport BootstrapTable from \"react-bootstrap-table-next\";\nimport \"react-bootstrap-table-next/dist/react-bootstrap-table2.min.css\";\nimport \"react-bootstrap-table2-filter/dist/react-bootstrap-table2-filter.min.css\"\nimport filterFactory, { textFilter } from \"react-bootstrap-table2-filter\";\n\nimport { isAdminMode } from \"util/Access\";\nimport { currencyFormatter, processFeeCostCurrencyFormatter, depositCurrencyFormatter } from \"util/General\";\n\nimport WrappedLoader from \"components/Loader/WrappedLoader\";\n\n\nimport \"./ReportLineList.scss\";\n\nfunction NoDataIndication(props) {\n let content =\n \n\n \n if (props.loading) {\n content = ;\n } else if (props.error) {\n content = {props.error};\n }\n\n return
{content}
;\n}\n\nclass ReportLineList extends React.Component {\n static propTypes = {\n lines: PropTypes.array,\n isLoading: PropTypes.bool\n }\n\n constructor(props) {\n super(props);\n this.state = {\n\n };\n }\n state = {\n\n }\n\n componentDidMount() {\n }\n\n render() {\n const { t, isLoading, lines } = this.props;\n if (isLoading) {\n return ;\n }\n let noLinesText = <>;\n if (!lines) {\n return <>;\n }\n\n return (\n
\n {noLinesText}\n {this.renderTable()}\n
\n );\n }\n\n renderTable() {\n const { t, lines, isLoading } = this.props;\n\n const isAdmin = isAdminMode();\n const data = lines;\n const columns = [\n {\n dataField: \"package.ean\",\n text: t(\"reports.filter.ean\"),\n classes: \"semibold-14\",\n sort: true,\n footer: \"\",\n filter: textFilter({\n placeholder: t(\"reports.filter.ean\"),\n style: {\n marginLeft: \"18px\"\n }\n })\n },\n {\n dataField: \"package.name\",\n text: t(\"reports.filter.product\"),\n classes: \"semibold-14\",\n sort: true,\n footer: \"\",\n filter: textFilter({\n placeholder: t(\"reports.filter.product\"),\n style: {\n minWidth: \"150px\"\n }\n })\n },\n {\n dataField: \"package.package_type\",\n text: t(\"reports.filter.packageType\"),\n classes: \"regular-14\",\n sort: true,\n footer: \"\",\n },\n {\n dataField: \"package.volume\",\n text: t(\"reports.filter.packageVolume\"),\n classes: \"regular-14\",\n sort: true,\n footer: \"\",\n },\n {\n dataField: \"quantity\",\n text: t(\"reports.filter.additionalQuantity\"),\n classes: \"regular-14\",\n sort: true,\n headerAlign: \"right\",\n align: \"right\",\n footer: \"\",\n },\n {\n dataField: \"total_fee\",\n text: t(\"reports.additionalDeposit.additionalDepositTotal\"),\n classes: \"regular-14\",\n sort: true,\n headerAlign: \"right\",\n align: \"right\",\n formatter: (value, row) => (\n
\n {currencyFormatter.format(row.total_fee)}\n
\n ({depositCurrencyFormatter.format(row.base_fee)})\n
\n ),\n footer: \"\",\n },\n {\n dataField: \"return_threshold_total_fee\",\n text: t(\"reports.additionalDeposit.returnThresholdFeeTotal\"),\n classes: \"regular-14\",\n sort: true,\n headerAlign: \"right\",\n align: \"right\",\n formatter: (value, row) => (\n
\n {currencyFormatter.format(row.return_threshold_total_fee)}\n
\n ({processFeeCostCurrencyFormatter.format(row.return_threshold_base_fee)})\n
\n ),\n footer: \"\",\n }\n ].filter(header => header.show !== false); // Show if explicitly not set to false\n\n const defaultSorted = [{\n dataField: \"created_at\",\n order: \"desc\"\n }]\n\n const noDataIndication = ;\n\n return (\n <>\n \n \n );\n }\n}\n\nexport default withTranslation()(ReportLineList);\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { withRouter } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport moment from \"moment\";\n\nimport { Row, Col, Button, Modal, ModalBody, Card, CardHeader, CardBody } from \"reactstrap\";\n\nimport LeftText from \"components/Misc/LeftText\";\nimport DeleteText from \"components/Misc/DeleteText\";\nimport LoadingAnimation from \"components/Loader/WrappedPulseLoader\";\n\nimport CloseTextIcon from \"components/Misc/CloseTextIcon\";\nimport Alerts from \"components/Alerts/Alerts\";\nimport InputField from \"components/Form/Input\";\n\nimport urls from \"config/urls\";\nimport {\n addNewLocalSuccessAlert,\n clearLocalAlerts,\n} from \"util/Alerts\";\nimport { isAdminMode } from \"util/Access\";\nimport { withTranslation } from \"react-i18next\";\nimport {\n} from \"util/DateTime\";\nimport { currencyFormatter } from \"util/General\";\n\n// Module specific\nimport reportUtils from \"./utils\";\nimport ActionsMenu from \"./ActionsMenu\";\nimport ReportLineList from \"./ReportLineList\";\n\n// css\nimport \"./DetailsView.scss\";\n\nconst deleteAlertGroup = \"delete-original-modal\";\n\nclass AdditionalDepositReportsDetailsView extends React.Component {\n static propTypes = {\n id: PropTypes.number.isRequired\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n details: {},\n isDetailsLoading: false,\n deleteModalOpen: false,\n isDeleteLoading: false\n };\n }\n\n componentDidMount() {\n this.fetchData();\n }\n\n render() {\n const { t } = this.props;\n const { details, isDetailsLoading } = this.state;\n return (\n
\n \n \n \n \n {this.isDeletable() && (\n \n \n \n )}\n \n \n \n \n \n {this.renderHeader()}\n \n \n {this.renderExtraActions()}\n \n \n \n \n \n\n {this.renderDeleteModal()}\n
\n );\n }\n\n renderHeader() {\n const { t } = this.props;\n const { details } = this.state;\n const isAdmin = isAdminMode();\n\n return (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {\n /* Will be last column on smaller screens. On larger screens should be last column of first row */\n isAdmin && (\n \n \n \n )\n }\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n }\n\n renderDeleteModal() {\n const { t } = this.props;\n const { details, isDeleteLoading } = this.state;\n\n return (\n \n \n \n \n \n Aruande kustutamine\n \n \n \n \n \n \n \n \n \n \n \n \n \n

\n Kas soovite kustutada aruande{\" \"}\n {this.getPeriodFormatted()}?\n

\n \n
\n \n \n \n {t(\"buttons.cancel\")}\n \n \n \n \n {isDeleteLoading ? (\n \n ) : (\n \"Kustuta aruanne\"\n )}\n \n \n \n
\n \n );\n }\n\n renderExtraActions() {\n const { details } = this.state;\n if (!details?.id) {\n return;\n }\n\n return (\n
\n
\n \n
\n
\n )\n }\n\n onSyncSuccess = (statistics) => {\n const content = \n addNewLocalSuccessAlert(content, this.props.location.pathname)\n this.fetchData(false);\n }\n\n fetchData = (loading = true) => {\n const { id } = this.props;\n if (!id) {\n return;\n }\n const alertGroup = this.props.location.pathname;\n if (loading) {\n this.setState({ isDetailsLoading: true });\n }\n reportUtils\n .fetchDetails(id, alertGroup)\n .then((result) => {\n if (result.isSuccess) {\n this.updateDetails(result.details)\n }\n })\n .finally(() => {\n if (loading) {\n this.setState({ isDetailsLoading: false });\n }\n });\n };\n\n updateDetails = details => {\n this.setState({ details });\n }\n\n isDeletable = () => {\n return (\n isAdminMode() && !!this.state.details?.id\n );\n };\n\n onOpenDeleteModal = () => {\n this.setState({\n deleteModalOpen: true,\n });\n };\n\n onCancelDelete = () => {\n if (this.state.isDeleteLoading) {\n return;\n }\n this.setState({\n deleteModalOpen: false,\n });\n clearLocalAlerts();\n };\n\n onDelete = () => {\n const id = this.state.details?.id;\n if (!id || this.state.isDeleteLoading) {\n return;\n }\n this.setState({\n isDeleteLoading: true\n });\n clearLocalAlerts();\n reportUtils.deleteDetails(id, deleteAlertGroup).then((result) => {\n if (result.isSuccess) {\n addNewLocalSuccessAlert(\n \"Aruande kustutamine õnnestus.\",\n urls.REPORTS_SALES,\n false\n );\n document.body.classList.remove(\"modal-open\");\n this.redirectToListView();\n }\n })\n .finally(() => {\n this.setState({ isDeleteLoading: false });\n });\n };\n\n redirectToListView = () => {\n const route = reportUtils.getListViewUrl();\n this.props.history.push(route);\n };\n\n getPeriodFormatted() {\n // Frontend should show localized months instead of numeric period from backend\n const { details } = this.state;\n if (details?.period) {\n return moment(details.period).format(\"YYYY\");\n } else {\n return null;\n }\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n };\n};\n\nexport default withRouter(\n connect(mapStateToProps)(withTranslation()(AdditionalDepositReportsDetailsView))\n);\n","// Everything about react router (subroutes and so on... ) https://reacttraining.com/react-router/web/example/route-config\n\nimport urls from \"config/urls\";\n\nimport DashboardView from \"./views/Dashboard\";\nimport PackageView from \"./views/Packages\";\nimport ReportsView from \"./views/Reports/Reports\";\nimport OriginalSalesReportView from \"./views/Reports/OriginalSalesReport\";\nimport RepairSalesReportView from \"./views/Reports/RepairSalesReport\";\nimport InvoiceView from \"./views/Invoices\";\nimport InvoicePreviewModal from \"components/Invoices/Preview/PreviewModal\";\nimport ProfileView from \"./views/Profile\";\nimport UsersTable from \"./components/Profile/Users/UsersTable/UsersTable\";\nimport Profile from \"./components/Profile/Profile/Profile\";\nimport RouteWithSubRoutes from \"./components/Routing/RouteWithSubRoutes\";\nimport AddPackageModal from \"./components/Packages/AddPackageModal/AddPackageModal\";\nimport ContractModal from \"./components/ContractModal/ContractModal\";\nimport SalesTable from \"./components/Reports/Sales/SalesTable/SalesTable\";\nimport SummaryReportsView from \"./views/Reports/SummaryReport\";\nimport MassReportView from \"./views/Reports/MassReport\";\nimport Contracts from \"./components/Profile/Contracts/Contracts\";\nimport Notifications from \"./components/Profile/Notifications/Notifications\";\nimport PrivacyPolicyView from \"./views/public/PrivacyPolicy\";\nimport CookiePolicyView from \"./views/public/CookiePolicy\";\nimport ReturnReportListView from \"./components/ReturnReports/ListView\";\nimport ReturnReportDetailsView from \"./components/ReturnReports/DetailsView\";\nimport AdditionalDepositReportListView from \"./components/AdditionalDepositReports/ListView\";\nimport AdditionalDepositReportDetailsView from \"./components/AdditionalDepositReports/DetailsView\";\n\nimport i18n from \"i18n\";\nimport React from \"react\";\nimport { Translation } from \"react-i18next\";\n\nconst routes = [\n {\n path: urls.DASHBOARD,\n label: i18n.t(\"routes.dashboard\", \"Avaleht\"),\n labelComponent: () => {\n return (\n \n {(t) => t(\"routes.dashboard\", \"Avaleht\")}\n \n );\n },\n component: RouteWithSubRoutes,\n routes: [\n {\n path: urls.DASHBOARD,\n label: \"\",\n component: DashboardView,\n },\n {\n path: urls.CONTRACT,\n label: \"\",\n component: ContractModal,\n },\n ],\n },\n {\n path: urls.PACKAGES,\n label: i18n.t(\"routes.packages\", \"Pakendid\"),\n labelComponent: () => {\n return (\n \n {(t) => t(\"routes.packages\", \"Pakendid\")}\n \n );\n },\n component: RouteWithSubRoutes,\n routes: [\n {\n path: urls.PACKAGES,\n label: \"\",\n component: PackageView,\n },\n {\n path: urls.ADD_PACKAGES,\n label: \"\",\n component: AddPackageModal,\n },\n ],\n },\n {\n exact: true,\n path: urls.REPORTS_SALE_FIX,\n label: i18n.t(\"routes.salesReports\", \"Müügiaruanne\"),\n labelComponent: () => {\n return (\n \n {(t) => t(\"routes.salesReports\", \"Müügiaruanne\")}\n \n );\n },\n component: RepairSalesReportView,\n },\n {\n exact: true,\n path: urls.REPORTS_SALE,\n label: i18n.t(\"routes.salesReports\", \"Müügiaruanne\"),\n labelComponent: () => {\n return (\n \n {(t) => t(\"routes.salesReports\", \"Müügiaruanne\")}\n \n );\n },\n component: OriginalSalesReportView,\n },\n {\n path: urls.REPORTS,\n label: \"\",\n component: ReportsView,\n routes: [\n {\n path: urls.REPORTS_SALES,\n label: i18n.t(\"routes.salesReportsSub\", \"Müügiaruanded\"),\n labelComponent: () => {\n return (\n \n {(t) =>\n t(\"routes.salesReportsSub\", \"Müügiaruanded\")\n }\n \n );\n },\n component: SalesTable,\n },\n {\n path: urls.REPORTS_SUMMARY,\n label: i18n.t(\"routes.summaryReports\", \"Koondaruanne\"),\n labelComponent: () => {\n return (\n \n {(t) => t(\"routes.summaryReports\", \"Koondaruanne\")}\n \n );\n },\n component: SummaryReportsView,\n },\n {\n path: urls.REPORTS_MASS,\n label: i18n.t(\"routes.massReports\", \"Massiaruanne\"),\n labelComponent: () => {\n return (\n \n {(t) => t(\"routes.massReports\", \"Massiaruanne\")}\n \n );\n },\n component: MassReportView,\n },\n {\n exact: true,\n path: urls.REPORTS_RETURN_LIST,\n label: i18n.t(\"routes.returnReports\"),\n labelComponent: () => {\n return (\n \n {(t) => t(\"routes.returnReports\")}\n \n );\n },\n component: ReturnReportListView,\n },\n {\n exact: true,\n path: urls.REPORTS_RETURN_DETAILS,\n label: i18n.t(\"routes.returnReportsDetails\"),\n labelComponent: () => {\n return (\n \n {(t) => t(\"routes.returnReportsDetails\")}\n \n );\n },\n component: ({match}) => ,\n },\n {\n exact: true,\n path: urls.REPORTS_ADDITIONAL_DEPOSIT_LIST,\n label: i18n.t(\"routes.additionalDepositReports\"),\n labelComponent: () => {\n return (\n \n {(t) => t(\"routes.additionalDepositReports\")}\n \n );\n },\n component: AdditionalDepositReportListView,\n },\n {\n exact: true,\n path: urls.REPORTS_ADDITIONAL_DEPOSIT_DETAILS,\n label: i18n.t(\"routes.additionalDepositReportsDetails\"),\n labelComponent: () => {\n return (\n \n {(t) => t(\"routes.additionalDepositReportsDetails\")}\n \n );\n },\n component: ({match}) => ,\n },\n ],\n },\n {\n path: urls.INVOICES,\n label: i18n.t(\"routes.invoices\", \"Arved\"),\n labelComponent: () => {\n return (\n \n {(t) => t(\"routes.invoices\", \"Arved\")}\n \n );\n },\n component: RouteWithSubRoutes,\n routes: [\n {\n path: urls.INVOICES,\n label: \"\",\n component: InvoiceView,\n key: \"invoiceView\",\n },\n {\n path: urls.INVOICES_PREVIEW,\n label: \"\",\n component: InvoicePreviewModal,\n key: \"invoicePreviewView\",\n },\n ],\n },\n {\n path: urls.PROFILE,\n label: \"\",\n component: ProfileView,\n routes: [\n {\n path: urls.PROFILE_EDIT,\n label: i18n.t(\"routes.profile\", \"Profiil\"),\n labelComponent: () => {\n return (\n \n {(t) => t(\"routes.profile\", \"Profiil\")}\n \n );\n },\n component: Profile,\n },\n {\n path: urls.PROFILE_CONTRACT,\n label: i18n.t(\"routes.contract\", \"Lepingud\"),\n labelComponent: () => {\n return (\n \n {(t) => t(\"routes.contract\", \"Lepingud\")}\n \n );\n },\n component: Contracts,\n },\n {\n path: urls.PROFILE_USERS,\n label: i18n.t(\"routes.users\", \"Kasutajad\"),\n labelComponent: () => {\n return (\n \n {(t) => t(\"routes.users\", \"Kasutajad\")}\n \n );\n },\n component: UsersTable,\n },\n {\n path: urls.PROFILE_NOTIFICATIONS,\n label: i18n.t(\"routes.notifications\", \"Teavitused\"),\n labelComponent: () => {\n return (\n \n {(t) => t(\"routes.notifications\", \"Teavitused\")}\n \n );\n },\n component: Notifications,\n },\n ],\n },\n {\n path: urls.PRIVACY_POLICY,\n label: \"Privaatsuspoliitika\",\n labelComponent: () => {\n return (\n \n {(t) => t(\"routes.privacyPolicy\", \"Privaatsuspoliitika\")}\n \n );\n },\n component: PrivacyPolicyView,\n },\n {\n path: urls.COOKIE_POLICY,\n label: \"Küpsised\",\n labelComponent: () => {\n return (\n \n {(t) => t(\"routes.cookies\", \"Küpsised\")}\n \n );\n },\n component: CookiePolicyView,\n },\n];\n\nexport default routes;\n","import React, { useEffect, useState, useRef } from \"react\";\nimport { useTranslation } from 'react-i18next';\nimport { Card, CardHeader, CardBody, Row, Col } from \"reactstrap\";\n\nimport \"./NotificationDropdown/NotificationDropdown.scss\";\nimport { fetchNotifications } from \"util/Notifications\";\nimport { useSelector } from \"react-redux\";\nimport moment from \"moment\";\nimport { markNotificationSeen, removeNotification } from \"util/Notifications\";\nimport WrappedLoader from \"components/Loader/WrappedLoader\";\nimport { ReactComponent as RemoveNotificationIcon } from \"assets/icons/close.svg\";\nimport CustomCheckbox from \"components/Form/Checkbox\";\nimport { addNewLocalErrorAlert } from \"util/Alerts\";\nimport urls from \"config/urls\";\n\nexport default function Notifications(props) {\n const { t } = useTranslation();\n\n const [showUnreadNotifications, setShowUnreadNotifications] = useState(\n false\n );\n const notificationsToggle = useRef(showUnreadNotifications);\n\n let notifications = useSelector(\n (state) => state.notifications.notifications\n );\n let loading = useSelector((state) => state.notifications.loading);\n\n if (showUnreadNotifications) {\n notifications = notifications.filter(\n (notification) => notification.is_seen === !showUnreadNotifications\n );\n }\n\n useEffect(() => {\n fetchNotifications();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const onNotificationRead = (notification) => {\n markNotificationSeen(notification.id)\n .then(() => {\n fetchNotifications();\n })\n .catch((err) => {\n addNewLocalErrorAlert(\n t(\"notifications.alerts.error.markNotificationReadFailed\", \"Tekkis viga! Proovi hiljem uuesti.\"),\n urls.PROFILE_NOTIFICATIONS\n );\n });\n };\n\n const onRemoveNotification = (notification) => {\n removeNotification(notification.id)\n .then(() => {\n fetchNotifications();\n })\n .catch((err) => {\n addNewLocalErrorAlert(\n t(\"notifications.alerts.error.removeNotificationFailed\", \"Tekkis viga! Proovi hiljem uuesti.\"),\n urls.PROFILE_NOTIFICATIONS\n );\n });\n };\n\n const onNotificationFilterClick = () => {\n setShowUnreadNotifications(!showUnreadNotifications);\n };\n\n if (loading) {\n return ;\n }\n\n return (\n \n \n \n \n {t(\"notifications.header\", \"Teavitused\")}\n \n \n \n \n \n \n \n {notifications.length === 0 && (\n
{t(\"notifications.noNotificationsText\", \"Teavitused puuduvad!\")}
\n )}\n {notifications.map((notification) => {\n return (\n
\n
\n \n \n \n \n \n {notification.message}\n \n {!notification.is_seen && (\n \n onNotificationRead(\n notification\n )\n }\n >\n {t(\"notifications.markAsReadButton\", \"Märgi loetuks\")}\n \n )}\n \n \n \n \n {moment(\n notification.created_at\n ).format(\"DD.MM.YYYY\")}\n \n \n \n \n \n onRemoveNotification(notification)\n }\n >\n \n \n \n \n
\n );\n })}\n
\n
\n );\n}\n","import React from 'react';\n\nimport { Switch, NavLink, Route } from \"react-router-dom\";\nimport urls from \"config/urls\";\n\nclass PartnerProfileView extends React.Component {\n render() {\n function RouteWithSubRoutes(route) {\n return (\n (\n // pass the sub-routes down to keep nesting\n \n )}\n />\n );\n }\n\n return (\n <>\n
\n Profiil\n Kasutajad\n
\n\n \n {this.props.routes.map((route, i) => (\n \n ))}\n \n\n \n );\n }\n}\n\nexport default PartnerProfileView;","import React from 'react';\n\nimport { NavLink, Route } from \"react-router-dom\";\nimport { Switch } from \"react-router\";\n\nimport urls from \"config/urls\";\n\nclass ReportsView extends React.Component {\n render() {\n function RouteWithSubRoutes(route) {\n return (\n (\n // pass the sub-routes down to keep nesting\n \n )}\n />\n );\n }\n\n return (\n <>\n
\n Testimise ootel\n Kordustestimise ootel\n Kinnitamata\n Kinnitatud\n Testitulemused\n
\n\n \n {this.props.routes.map((route, i) => (\n \n ))}\n \n\n \n );\n }\n}\n\nexport default ReportsView;\n","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Card, CardBody, Form, Row, Col } from \"reactstrap\";\nimport './Profile.scss';\nimport PersonalProfileForm from \"components/Profile/Profile/PersonalProfileForm/PersonalProfileForm\";\nimport { fetchUserSettings } from \"util/Profile\";\nimport { addNewLocalErrorAlert, clearLocalAlerts } from \"util/Alerts\";\n\nimport CheckboxButton from \"components/Form/CheckboxButton/CheckboxButton\";\n\nclass PartnerProfile extends React.Component {\n componentDidMount() {\n clearLocalAlerts();\n fetchUserSettings().catch(error => {\n addNewLocalErrorAlert(\"Kasutaja seadmete laadimine ebaõnnestus!\", this.props.location.pathname);\n });\n }\n\n render() {\n return (\n \n \n \n \n Isiklikud andmed\n \n \n {this.props.userRole &&\n \n }\n \n \n
\n \n \n
\n
\n );\n }\n}\n\nconst mapStateToProps = state => {\n return {\n userRole: state.profile && state.profile.userSettings && state.profile.userSettings.role,\n }\n}\n\nexport default connect(mapStateToProps)(PartnerProfile);\n","import React from \"react\";\nimport axios from \"../../axios\";\nimport PropTypes from \"prop-types\";\nimport { withRouter } from \"react-router-dom\";\n\nimport { Button } from \"reactstrap\";\nimport ConfirmationModal from \"components/Form/Modals/ConfirmationModal\";\nimport { getServerErrorMessage } from \"util/Errors\";\n\nimport {\n clearLocalAlerts,\n addNewLocalSuccessAlert,\n addNewLocalErrorAlert,\n} from \"util/Alerts\";\n\nimport {\n PARTNER_TESTING_COMPLETED,\n} from \"config/Api\";\n\n\nclass TestingCompletedConfirmation extends React.Component {\n static propTypes = {\n isRetest: PropTypes.bool,\n }\n\n static defaultProps = {\n isRetest: false,\n };\n\n state = { confirmationModalOpen: false, confirmationIsLoading: false };\n static alertGroup = \"TestingCompletedConfirmation\";\n\n render() {\n return (\n <>\n \n {this.props.isRetest ? \"Lõpeta kordustestimine\" : \"Lõpeta testimine\"}\n \n\n {this.renderConfirmModal()}\n \n );\n }\n\n renderConfirmModal() {\n return (\n \n {this.props.isRetest ? \"Kordustestimise\" : \"Testimise\"} lõpetamise kinnitamisel saadetakse EPP-le teavitus, et esitatud testitulemused on kinnitatud\n \n );\n }\n\n onOpenConfirmationModal = () => {\n this.setState({\n confirmationModalOpen: true,\n });\n };\n\n onCancelConfirmation = () => {\n this.setState({\n confirmationModalOpen: false,\n });\n clearLocalAlerts();\n };\n\n onConfirm = () => {\n clearLocalAlerts();\n\n this.setState({\n confirmationIsLoading: true,\n });\n\n return axios\n .post(PARTNER_TESTING_COMPLETED, { is_retest: this.props.isRetest })\n .then(() => {\n addNewLocalSuccessAlert(\n \"Email saadetud.\",\n this.props.location.pathname\n );\n this.setState({\n confirmationModalOpen: false,\n });\n })\n .catch((error) => {\n const message = `Emaili saatmine ebaõnnestus: ${getServerErrorMessage(error)}`;\n addNewLocalErrorAlert(message, TestingCompletedConfirmation.alertGroup, false);\n })\n .finally(() => {\n this.setState({\n confirmationIsLoading: false,\n });\n });\n };\n}\n\nexport default withRouter(TestingCompletedConfirmation);\n","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport PropTypes from \"prop-types\";\n\nimport { Form, Card, CardBody, Row, Col, Button } from \"reactstrap\";\n\n// datepicker\nimport DatePicker from \"react-datepicker\";\nimport Select from \"components/Form/Select\";\nimport CustomInput from \"components/Form/Input\";\n\nimport {\n fetchAllClients,\n} from \"util/General\";\nimport {\n fetchCategories,\n fetchPackageTypes,\n fetchPackageVolumes,\n fetchPackageTestResults,\n} from \"util/Packages\";\nimport { DATE_FORMAT_DATE_FN } from \"util/DateTime\";\n\nimport \"./Search.scss\";\n\n\nclass PackagesSearch extends React.Component {\n static propTypes = {\n // Taken from redux\n allClients: PropTypes.array,\n categories: PropTypes.array,\n packageTypes: PropTypes.array,\n packageVolumes: PropTypes.array,\n packageTestResults: PropTypes.array,\n // manual props\n filters: PropTypes.object.isRequired,\n packagesListLoading: PropTypes.bool,\n onFilterUpdate: PropTypes.func.isRequired,\n onClearFilters: PropTypes.func.isRequired,\n onSearch: PropTypes.func.isRequired,\n exportButton: PropTypes.element,\n }\n\n componentDidMount() {\n fetchAllClients(this.props.allClients);\n fetchCategories(this.props.categories);\n fetchPackageTypes(this.props.packageTypes);\n fetchPackageVolumes(this.props.packageVolumes);\n fetchPackageTestResults(this.props.packageTestResults);\n }\n\n render() {\n return (\n
\n \n \n \n \n Otsing\n \n {this.props.exportButton &&\n \n {this.props.exportButton}\n \n }\n \n \n \n \n \n \n option.description}\n getOptionValue={(option) => option.value}\n onChange={this.updateFilter('category')}\n />\n \n \n option.value + \"cl\"}\n getOptionValue={(option) => option.value}\n className=\"mb-2\"\n onChange={this.updateFilter('volume')}\n />\n \n \n \n \n \n \n option.value}\n onChange={this.updateFilter('eanType')}\n />\n \n \n option.value}\n getOptionValue={(option) => option.value}\n onChange={this.updateFilter('type')}\n />\n \n \n \n \n \n option.value}\n onChange={this.updateFilter('eanType')}\n />\n \n */}\n \n option.value}\n placeholder=\"Staatused\"\n onChange={this.updateFilter('status')}\n className=\"mb-2\"\n />\n \n \n option.label}\n getOptionValue={(option) => option.value}\n onChange={this.updateFilter('client')}\n className=\"mb-2\"\n />\n \n \n option.value + \"cl\"}\n getOptionValue={(option) => option.value}\n className=\"mb-2\"\n onChange={this.updateFilter('volume')}\n />\n \n */}\n \n this.updateFilter('conditions')(value || [])}\n />\n \n \n \n \n {/*\n \n \n \n \n \n \n */}\n \n \n Tühjenda otsing\n \n \n \n {\n e.preventDefault();\n this.props.onSearch();\n }}\n disabled={this.props.packagesListLoading}\n >\n {this.props.packagesListLoading ? : \"Otsi\"}\n \n \n \n \n \n \n );\n }\n\n updateFilter = key => value => {\n this.props.onFilterUpdate(key, value);\n }\n\n getFilteredPackageStatuses = () => {\n const statuses = this.props.packageStatuses || [];\n return statuses.filter(status => packageStatusTypeLists.TESTING_STATUSES.includes(status.id));\n }\n\n}\n\nconst mapStateToProps = state => {\n return {\n allClients: state.general.allClients,\n //eanTypes: state.packages.eanTypes,\n categories: state.packages.categories,\n packageTypes: state.packages.packageTypes,\n //packageVolumes: state.packages.packageVolumes,\n packageStatuses: state.packages.packageStatuses,\n packageTestResults: state.packages.packageTestResults,\n }\n};\n\nexport default connect(mapStateToProps)(AdminTestingSearch);\n","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\nimport PropTypes from \"prop-types\";\nimport onScan from \"onscan.js\";\n\nimport {\n fetchTestingPackages,\n sendToRetesting,\n activatePackages,\n confirmPackageTests,\n} from \"util/admin/Testing\";\nimport urls, { getAdminPackageDetailsUrl } from \"config/urls\";\nimport {\n clearLocalAlerts,\n addNewLocalErrorAlert,\n addNewLocalSuccessAlert,\n addNewLocalInfoAlert,\n} from \"util/Alerts\";\nimport { packageTestStatuses } from \"util/Partner\";\nimport { packageStatuses } from \"util/Packages\";\nimport { getErrorMessageList } from \"util/Errors\";\nimport { DATE_FORMAT_DATE_FN } from \"util/DateTime\"\n\nimport {\n adminTestingPackagesFilterUpdate,\n adminTestingPackagesFilterClear,\n adminTestingPackagesPaginationUpdate,\n adminTestingPackagesSortingUpdate,\n adminTestingUpdateSelected,\n} from \"redux/actions/admin/testing\";\n\nimport DatePicker from \"react-datepicker\";\nimport { Card, CardBody, Row, Col, Button, Label } from \"reactstrap\";\nimport Table from \"./Table/Table\";\nimport Search from \"./Search/Search\";\nimport LoadingAnimation from \"components/Loader/WrappedPulseLoader\";\nimport ConfirmationModal from \"components/Form/Modals/ConfirmationModal\";\nimport CustomInput from \"components/Form/Input\";\n\nexport const ProblemTypes = {\n NO_PACKAGE: \"NO_PACKAGE\",\n UNSYNCED: \"UNSYNCED\",\n DEBT: \"DEBT\",\n UNSUBMITTED_REPORTS: \"UNSUBMITTED_REPORTS\",\n IN_TESTING: \"IN_TESTING\",\n TEST_UNCONFIRMED: \"TEST_UNCONFIRMED\",\n FAILED_TEST: \"FAILED_TEST\",\n}\n\nclass AdminTestingView extends React.Component {\n static propTypes = {\n // redux state\n packagesList: PropTypes.array,\n unfilteredPackagesList: PropTypes.array,\n packagesListLoading: PropTypes.bool,\n filters: PropTypes.object.isRequired,\n packagesListFiltersUsed: PropTypes.object.isRequired,\n sorting: PropTypes.object.isRequired,\n pagination: PropTypes.object.isRequired,\n selectedIds: PropTypes.array.isRequired,\n sendToRetestingLoading: PropTypes.bool,\n confirmPackageTestingLoading: PropTypes.bool,\n activatePackagesLoading: PropTypes.bool,\n // redux actions\n adminTestingPackagesFilterUpdate: PropTypes.func.isRequired,\n adminTestingPackagesFilterClear: PropTypes.func.isRequired,\n adminTestingPackagesPaginationUpdate: PropTypes.func.isRequired,\n adminTestingPackagesSortingUpdate: PropTypes.func.isRequired,\n adminTestingUpdateSelected: PropTypes.func.isRequired,\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n isConfirmRetestOpen: false,\n isConfirmActivateOpen: false,\n activateStartDate: null,\n activateLocation: \"\",\n confirmPackageTestsStartDate: null,\n isConfirmPackageTestOpen: false,\n isRefreshList: false,\n }\n }\n\n componentDidMount() {\n fetchTestingPackages(false, this.props.packagesListFiltersUsed, this.props.location.pathname);\n\n onScan.attachTo(document, {\n suffixKeyCodes: [13], // enter-key expected at the end of a scan\n onScan: this.onScan, // Alternative to document.addEventListener('scan')\n });\n }\n\n componentWillUnmount() {\n onScan.detachFrom(document);\n }\n\n onScan = (sCode, iQty) => {\n clearLocalAlerts();\n const ean = sCode;\n\n this.props.adminTestingPackagesFilterClear();\n this.props.adminTestingPackagesFilterUpdate(\"ean\", ean);\n\n let message =
Skänneeriti EAN \"{ean}\".
;\n addNewLocalInfoAlert(message, this.props.location.pathname);\n fetchTestingPackages(false, this.props.filters, this.props.location.pathname);\n }\n\n render() {\n return (\n \n \n \n \n \n \n \n this.props.adminTestingUpdateSelected([])}\n >\n Tühista valik ({this.props.selectedIds.length})\n \n \n \n {this.renderConfirmRetestButtonAndModal()}\n \n \n {this.renderConfirmPackageTestsButtonAndConfirmModal()}\n \n \n {this.renderConfirmActivateButtonAndModal()}\n \n \n \n \n \n \n \n \n \n \n \n );\n }\n\n renderConfirmRetestButtonAndModal() {\n let alertGroup = \"adminTestingConfirmRetestModal\";\n const selectedIds = this.props.selectedIds;\n const allPackages = this.props.unfilteredPackagesList || [];\n const onToggle = () => {\n clearLocalAlerts();\n\n if (this.state.isRefreshList) {\n fetchTestingPackages(false, this.props.packagesListFiltersUsed, this.props.location.pathname);\n this.setState({ isRefreshList: false });\n }\n\n this.setState(prevState => { return { isConfirmRetestOpen: !prevState.isConfirmRetestOpen } });\n };\n const onConfirmFunc = () => {\n clearLocalAlerts();\n sendToRetesting(selectedIds)\n .then(response => {\n clearLocalAlerts();\n const errors = response.data.errors;\n let sentToTestingIds = [...selectedIds];\n let failedIds = [];\n\n if (errors && errors.length) {\n failedIds = errors.map((error) => error.id);\n sentToTestingIds = sentToTestingIds.filter(\n (id) => !failedIds.includes(id)\n );\n }\n const successGroup =\n failedIds.length > 0 ? alertGroup : this.props.location.pathname || alertGroup;\n\n if (sentToTestingIds.length) {\n let successMessage = `Saadetud testimisse: ${sentToTestingIds\n .map((id) => this.findPackageEANById(allPackages, id))\n .join(\", \")}.`;\n\n addNewLocalSuccessAlert(successMessage, successGroup);\n }\n\n if (failedIds.length) {\n const failedMessage = getErrorMessageList(\n errors,\n (err) =>\n `${this.findPackageEANById(allPackages, err.id)} - ${err.reason}`,\n \"Järgnevaid näidiseid ei õnnestunud saata testimisse:\",\n (err) => err.id\n );\n addNewLocalErrorAlert(failedMessage, successGroup);\n }\n\n if (sentToTestingIds.length === selectedIds.length) {\n this.setState({ isConfirmRetestOpen: false, isRefreshList: false });\n fetchTestingPackages(false, this.props.packagesListFiltersUsed, this.props.location.pathname);\n }\n else if (sentToTestingIds.length) {\n this.setState({\n isRefreshList: true,\n })\n }\n })\n .catch(error => {\n clearLocalAlerts();\n addNewLocalErrorAlert(error.message, alertGroup);\n });\n };\n\n\n let content =

Kinnita {selectedIds.length} pakendi testimisse saatmine.

\n const problems = this.getPossibleGenericProblems(selectedIds);\n if (problems.length) {\n content = (\n <>\n {content}\n

\n Võimalikud probleemid:\n

\n
    \n {problems.map((problem, i) =>
  • {problem}
  • )}\n
\n \n );\n }\n\n const selectedIdsInWaiting = this.getIdsInWaiting(selectedIds);\n const isButtonDisabled = selectedIdsInWaiting.length !== selectedIds.length || !selectedIds.length || this.props.sendToRetestingLoading || this.props.activatePackagesLoading;\n\n return (\n <>\n \n {this.props.sendToRetestingLoading ?\n \n :\n `Esita ${this.props.selectedIds.length} näidist uuesti testimisse`\n }\n \n \n {content}\n\n \n \n );\n }\n\n renderConfirmPackageTestsButtonAndConfirmModal() {\n let alertGroup = \"adminTestingConfirmPackageTestModal\";\n const selectedIds = this.props.selectedIds;\n\n const onToggle = () => {\n clearLocalAlerts();\n\n if (this.state.isRefreshList) {\n fetchTestingPackages(false, this.props.packagesListFiltersUsed, this.props.location.pathname);\n this.setState({ isRefreshList: false });\n }\n this.setState(prevState => { return { isConfirmPackageTestOpen: !prevState.isConfirmPackageTestOpen } });\n };\n let onConfirmFunc = () => {\n clearLocalAlerts();\n\n const startDate = this.state.confirmPackageTestsStartDate;\n if (startDate == null) {\n addNewLocalErrorAlert(\"Müügi alguskuupäev valimata.\", alertGroup);\n return;\n }\n\n confirmPackageTests(selectedIds, startDate)\n .then(results => {\n clearLocalAlerts();\n\n const allPackages = this.props.unfilteredPackagesList || [];\n const successResults = results.filter((x) => x.is_success);\n const errorResults = results.filter(x => !x.is_success);\n\n const errorCount = errorResults.length;\n\n const successAlertGroup = errorCount > 0 ? alertGroup : this.props.location.pathname;\n if (successResults.length) {\n const successfulEANs = successResults.map(result => this.findPackageEANById(allPackages, result.id))\n let successMessage = `Testitulemused edukalt kinnitatud: ${successfulEANs.join(\", \")}.`;\n addNewLocalSuccessAlert(successMessage, successAlertGroup);\n this.setState({ isRefreshList: true });\n }\n\n if (errorCount > 0) {\n const topText = \"Esines probleeme järgnevate pakendite kinnitamisega:\"\n const errorContentFunc = result => `${this.findPackageEANById(allPackages, result.id)} - ${result.error}`;\n const errorMessage = getErrorMessageList(errorResults, errorContentFunc, topText);\n addNewLocalErrorAlert(errorMessage, successAlertGroup);\n } else {\n this.setState({ isConfirmPackageTestOpen: false, isRefreshList: false });\n fetchTestingPackages(false, this.props.packagesListFiltersUsed, this.props.location.pathname);\n }\n\n })\n .catch(error => {\n clearLocalAlerts();\n addNewLocalErrorAlert(error.message, alertGroup);\n });\n };\n\n\n let content =

Kinnita {selectedIds.length} testitulemused.

\n const problems = this.getPossibleConfirmPackageTestsProblems(this.props.selectedIds);\n if (problems.length) {\n content = (\n <>\n {content}\n

\n Võimalikud probleemid:\n

\n
    \n {problems.map((problem, i) =>
  • {problem}
  • )}\n
\n \n );\n }\n\n const selectedIdsConfirmTestResults = this.getConfirmTestResultIds(selectedIds);\n const isButtonDisabled = selectedIdsConfirmTestResults.length !== selectedIds.length || !selectedIds.length || this.props.confirmPackageTestingLoading || this.props.sendToRetestingLoading || this.props.activatePackagesLoading;\n\n return (\n <>\n \n {this.props.confirmPackageTestingLoading ?\n \n :\n `Kinnita ${selectedIds.length} ${selectedIds.length === 1 ? \"testitulemus\" : \"testitulemust\"}`\n }\n \n \n \n \n {content}\n \n \n \n \n \n this.setState({ confirmPackageTestsStartDate: value })}\n dateFormat={DATE_FORMAT_DATE_FN}\n />\n \n \n\n \n \n );\n }\n\n renderConfirmActivateButtonAndModal() {\n let alertGroup = \"adminTestingConfirmActivateModal\";\n const selectedIds = this.props.selectedIds;\n\n const onToggle = () => {\n this.setState(prevState => { return { isConfirmActivateOpen: !prevState.isConfirmActivateOpen } });\n clearLocalAlerts();\n };\n let onConfirmFunc = () => {\n clearLocalAlerts();\n const startDate = this.state.activateStartDate;\n const newLocation = this.state.activateLocation || \"\";\n\n let hasValidationErrors = false;\n if (startDate == null) {\n addNewLocalErrorAlert(\"Müügi alguskuupäev valimata.\", alertGroup);\n hasValidationErrors = true;\n }\n if (!newLocation || newLocation.trim() === \"\") {\n addNewLocalErrorAlert(\"Asukohatähis sisestamata.\", alertGroup);\n hasValidationErrors = true;\n }\n\n if (hasValidationErrors) {\n return;\n }\n\n activatePackages(selectedIds, startDate, newLocation)\n .then(response => {\n clearLocalAlerts();\n\n const allPackages = this.props.unfilteredPackagesList || [];\n\n const successIds = response.data.success.map((x) => x.id);\n\n const missingProductEANs = response.data.missing_product.map(err => this.findPackageEANById(allPackages, err.id));\n const missingTestEANs = response.data.missing_test.map(err => this.findPackageEANById(allPackages, err.id));\n const wrongStatusEANs = response.data.wrong_status.map(err => this.findPackageEANById(allPackages, err.id));\n const navErrors = response.data.nav_error;\n\n const errorCount =\n missingProductEANs.length +\n missingTestEANs.length +\n wrongStatusEANs.length +\n navErrors.length;\n\n const successAlertGroup = errorCount > 0 ? alertGroup : this.props.location.pathname;\n\n if (successIds.length) {\n const successfulEANs = successIds.map(id => this.findPackageEANById(allPackages, id))\n let successMessage = `Edukalt registreeritud: ${successfulEANs.join(\", \")}.`;\n addNewLocalSuccessAlert(successMessage, successAlertGroup);\n }\n\n if (errorCount > 0) {\n const errorMessage = (\n <>\n {missingProductEANs.length > 0 && (\n

\n {`Näidiseid ei leitud: ${missingProductEANs.join(\", \")}.`}\n

\n )}\n {missingTestEANs.length > 0 && (\n

\n {`Test esitamata: ${missingTestEANs.join(\", \")}.`}\n

\n )}\n {wrongStatusEANs.length > 0 && (\n

\n {`Vales staatuses: ${wrongStatusEANs.join(\", \")}.`}\n

\n )}\n {navErrors.length > 0 && (\n <>\n

NAV-i errorid:

\n
    \n {navErrors.map((err, i) => (\n
  • \n {/*{`${this.findPackageEANById(\n allPackages,\n err.id\n )} - ${err.response}`}\n */\n err}\n
  • \n ))}\n
\n \n )}\n \n );\n addNewLocalErrorAlert(errorMessage, successAlertGroup);\n } else {\n this.setState({ isConfirmActivateOpen: false });\n }\n })\n .catch(error => {\n clearLocalAlerts();\n addNewLocalErrorAlert(error.message, alertGroup);\n });\n };\n\n\n let content =

Kinnita {selectedIds.length} pakendi registreerimine.

\n const problems = this.getPossibleActivateProblems(selectedIds);\n if (problems.length) {\n content = (\n <>\n {content}\n

\n Võimalikud probleemid:\n

\n
    \n {problems.map((problem, i) =>
  • {problem}
  • )}\n
\n \n );\n }\n\n return (\n <>\n \n {this.props.activatePackagesLoading ?\n \n :\n `Registreeri ${selectedIds.length} näidist`\n }\n \n \n \n \n {content}\n \n \n \n \n \n this.setState({ activateStartDate: value })}\n dateFormat={DATE_FORMAT_DATE_FN}\n />\n \n \n \n \n this.setState({ activateLocation: value })}\n />\n \n \n \n \n );\n }\n\n getPossibleGenericProblems = (ids, problemTypes = null) => {\n const allPackages = this.props.unfilteredPackagesList || [];\n const problems = [];\n if (!ids || ids.length === 0 || !allPackages) {\n return problems;\n }\n\n if (!problemTypes) {\n problemTypes = [ProblemTypes.NO_PACKAGE, ProblemTypes.UNSYNCED, ProblemTypes.DEBT, ProblemTypes.UNSUBMITTED_REPORTS, ProblemTypes.IN_TESTING, ProblemTypes.TEST_UNCONFIRMED, ProblemTypes.FAILED_TEST];\n }\n const noPackageProblem = [];\n const parametersUnsyncedProblemsEAN = [];\n const debtProblemsEAN = [];\n const unsubmittedReportsProblemsEAN = [];\n const unconfirmedTestProblemsEAN = [];\n const failedTestProblemsEAN = [];\n const inTestingProblemsEAN = [];\n\n for (const id of ids) {\n const pkg = this.findPackageById(allPackages, id);\n if (!pkg) {\n if (problemTypes.includes(ProblemTypes.NO_PACKAGE)) {\n noPackageProblem.push(id);\n }\n } else {\n const ean = pkg.ean;\n const statusValue = pkg.status && pkg.status.value;\n const lastTestValue = pkg.last_test && pkg.last_test.value;\n if (problemTypes.includes(ProblemTypes.UNSYNCED) && pkg.skip_migration === true) {\n parametersUnsyncedProblemsEAN.push(ean);\n }\n if (problemTypes.includes(ProblemTypes.UNSUBMITTED_REPORTS) && pkg.unsubmitted_sales_reports > 0) {\n unsubmittedReportsProblemsEAN.push(ean);\n }\n if (problemTypes.includes(ProblemTypes.DEBT) && Number(pkg.debt) > 0) {\n debtProblemsEAN.push(ean);\n }\n if (problemTypes.includes(ProblemTypes.IN_TESTING) && packageTestStatuses.NA.includes(lastTestValue)) {\n inTestingProblemsEAN.push(ean);\n }\n if (problemTypes.includes(ProblemTypes.TEST_UNCONFIRMED) && packageStatuses.UNCONFIRMED === statusValue) {\n unconfirmedTestProblemsEAN.push(ean);\n }\n if (problemTypes.includes(ProblemTypes.FAILED_TEST) && packageStatuses.WAITING_STATUS === statusValue && packageTestStatuses.NOK.includes(lastTestValue)) {\n failedTestProblemsEAN.push(ean);\n }\n }\n }\n\n if (noPackageProblem.length) {\n problems.push({noPackageProblem.length} pakendi andmeid ei leitud nimekirjast.);\n }\n if (parametersUnsyncedProblemsEAN.length) {\n problems.push(Pakendite (EAN) parameetrid ei ole NAV-iga sünkroniseeritud: {parametersUnsyncedProblemsEAN.join(\", \")}.);\n }\n if (unsubmittedReportsProblemsEAN.length) {\n problems.push(Pakendite (EAN) klientidel on esitamata müügiaruandeid: {unsubmittedReportsProblemsEAN.join(\", \")}.);\n }\n if (debtProblemsEAN.length) {\n problems.push(Pakendite (EAN) klientidel on võlgnevusi: {debtProblemsEAN.join(\", \")}.);\n }\n if (inTestingProblemsEAN.length) {\n problems.push(Pakendid (EAN) on testimises: {inTestingProblemsEAN.join(\", \")}.);\n }\n if (unconfirmedTestProblemsEAN.length) {\n problems.push(Pakendite (EAN) testitulemus kinnitamata: {unconfirmedTestProblemsEAN.join(\", \")}.);\n }\n if (failedTestProblemsEAN.length) {\n problems.push(Pakendite (EAN) viimane test ebaõnnestus: {failedTestProblemsEAN.join(\", \")}.);\n }\n\n return problems;\n }\n\n getPossibleActivateProblems = (ids) => {\n return this.getPossibleGenericProblems(ids, null);\n }\n\n getPossibleConfirmPackageTestsProblems(ids) {\n const problems = [ProblemTypes.NO_PACKAGE, ProblemTypes.UNSYNCED, ProblemTypes.DEBT, ProblemTypes.UNSUBMITTED_REPORTS, ProblemTypes.IN_TESTING, ProblemTypes.FAILED_TEST];\n\n return this.getPossibleGenericProblems(ids, problems);\n }\n\n getIdsInWaiting = (ids) => {\n const allPackages = this.props.unfilteredPackagesList;\n if (!ids || ids.length === 0 || !allPackages) {\n return [];\n }\n\n const idPackages = allPackages.filter(pkg => ids.includes(pkg.id));\n const waitingStatusPackages = idPackages.filter(pkg => pkg.status && pkg.status.value === packageStatuses.WAITING_STATUS);\n\n return waitingStatusPackages;\n }\n\n getConfirmTestResultIds = (ids) => {\n const allPackages = this.props.unfilteredPackagesList;\n if (!ids || ids.length === 0 || !allPackages) {\n return [];\n }\n\n const idPackages = allPackages.filter(pkg => ids.includes(pkg.id));\n const confirmTestResultsPackages = idPackages.filter(pkg => pkg.status && pkg.status.value === packageStatuses.UNCONFIRMED);\n\n return confirmTestResultsPackages;\n }\n\n findPackageById = (packagesList, id) => {\n for (const pkg of packagesList) {\n if (pkg.id === id) {\n return pkg;\n }\n }\n return null;\n }\n\n findPackageEANById = (packagesList, id) => {\n const pkg = this.findPackageById(packagesList, id);\n return pkg ? pkg.ean : `${id} (ID)`;\n }\n\n onSearch = () => {\n clearLocalAlerts();\n fetchTestingPackages(false, this.props.filters, this.props.location.pathname);\n }\n\n onPaginationChange = (page, sizePerPage) => {\n const currentPagination = this.props.pagination;\n const newPagination = { ...currentPagination, page, sizePerPage };\n this.props.adminTestingPackagesPaginationUpdate(newPagination);\n }\n\n onSort = (field, order) => {\n const currentSorting = this.props.sorting;\n if (currentSorting.dataField !== field || currentSorting.order !== order) {\n const newSorting = {\n dataField: field,\n order: order,\n };\n\n this.props.adminTestingPackagesSortingUpdate(newSorting);\n }\n }\n\n onPackageSelect = (row, isSelect, rowIndex, e) => {\n let newSelectedIds = [...this.props.selectedIds];\n\n if (!isSelect) {\n newSelectedIds = newSelectedIds.filter(id => id !== row.id);\n }\n else if (isSelect && !newSelectedIds.includes(row.id)) {\n newSelectedIds.push(row.id);\n }\n\n this.props.adminTestingUpdateSelected(newSelectedIds);\n }\n\n onPackageSelectAll = (isSelect, rows) => {\n let newSelectedIds = [...this.props.selectedIds];\n const ids = rows.map(row => row.id);\n\n if (isSelect) {\n newSelectedIds = [...newSelectedIds, ...ids.filter(id => !newSelectedIds.includes(id))];\n }\n else {\n newSelectedIds = newSelectedIds.filter(id => !ids.includes(id));\n }\n this.props.adminTestingUpdateSelected(newSelectedIds);\n }\n\n onRowClick = (event, row) => {\n const packageDetailsUrl = getAdminPackageDetailsUrl(row.id);\n this.props.history.push(packageDetailsUrl, { previousViewRoute: urls.EPP_REGISTRY_TESTING });\n }\n}\n\nconst mapStateToProps = state => {\n return {\n packagesList: state.admin.testing.packagesList,\n unfilteredPackagesList: state.admin.testing.unfilteredPackagesList,\n packagesListLoading: state.admin.testing.packagesListLoading,\n packagesListFiltersUsed: state.admin.testing.packagesListFiltersUsed,\n filters: state.admin.testing.filters,\n sorting: state.admin.testing.sorting,\n pagination: state.admin.testing.pagination,\n selectedIds: state.admin.testing.selectedIds,\n sendToRetestingLoading: state.admin.testing.sendToRetestingLoading,\n confirmPackageTestingLoading: state.admin.testing.confirmPackageTestingLoading,\n activatePackagesLoading: state.admin.testing.activatePackagesLoading,\n }\n};\n\nconst mapActionsToProps = {\n adminTestingPackagesFilterUpdate,\n adminTestingPackagesFilterClear,\n adminTestingPackagesPaginationUpdate,\n adminTestingPackagesSortingUpdate,\n adminTestingUpdateSelected,\n};\n\nexport default withRouter(connect(mapStateToProps, mapActionsToProps)(AdminTestingView));\n","import axios from \"../../axios\";\nimport store from \"redux/store\";\nimport moment from \"moment\";\n\nimport { getServerErrorMessage } from \"util/Errors\";\nimport { PackageConditionValues } from \"components/Form/PackageConditions/options\";\n\nimport { clearLocalAlerts, addNewLocalErrorAlert } from \"util/Alerts\";\n\nimport {\n ADMIN_RETESTING_PACKAGES,\n ADMIN_CONFIRM_PACKAGE_TEST\n} from \"config/Api\";\n\nimport {\n adminRetestingPackagesFetchStart,\n adminRetestingPackagesFetchSuccess,\n adminRetestingPackagesFetchFail,\n adminRetestingConfirmPackageTestStart,\n adminRetestingConfirmPackageTestSuccess,\n adminRetestingConfirmPackageTestFail,\n} from \"redux/actions/admin/retesting\";\n\nexport function fetchAdminRetestingPackages(fetchOnlyIfNull, filters, alertGroup) {\n // Meant for packages sent to testing outside of usual application -> testing or waiting -> testing cycle.\n if (!!fetchOnlyIfNull) {\n const state = store.getState();\n if (state.admin.retesting.packagesList !== null) {\n return;\n }\n }\n const filtersToUse = { ...filters };\n store.dispatch(adminRetestingPackagesFetchStart());\n return axios\n .get(ADMIN_RETESTING_PACKAGES)\n .then((response) => {\n const filteredPackages = filterApplications(\n response.data,\n filtersToUse\n );\n store.dispatch(\n adminRetestingPackagesFetchSuccess(\n response.data,\n filteredPackages,\n filtersToUse\n )\n );\n return response.data;\n })\n .catch((error) => {\n const errorMessage = getServerErrorMessage(error);\n store.dispatch(adminRetestingPackagesFetchFail(errorMessage));\n\n clearLocalAlerts();\n addNewLocalErrorAlert(errorMessage, alertGroup);\n //throw Error(errorMessage);\n });\n}\n\nfunction filterApplications(packages, filters) {\n if (!packages || !packages.length || !filters) {\n return packages;\n }\n\n return packages.filter((pkg) => {\n if (filters.ean && !filterStringIncludes(pkg.ean, filters.ean)) {\n return false;\n }\n if (filters.name && !filterStringIncludes(pkg.name, filters.name)) {\n return false;\n }\n if (filters.client && pkg.client.id !== filters.client.value) {\n return false;\n }\n if (filters.category && pkg.category.value !== filters.category.id) {\n return false;\n }\n if (filters.type && pkg.type.value !== filters.type.id) {\n return false;\n }\n if (filters.status && pkg.status.value !== filters.status.id) {\n return false;\n }\n if (filters.debt && pkg.debt !== filters.debt.value) {\n return false;\n }\n //if (filters.volume && pkg.volume !== filters.volume.value) { return false; }\n if (\n filters.testResult &&\n pkg.last_test.value !== filters.testResult.value\n )\n return false;\n //if (filters.startDate && !secondDateIsSameOrAfterFirstDate(filters.startDate, pkg.created_at, \"day\")) { return false; }\n //if (filters.endDate && !secondDateIsSameOrAfterFirstDate(pkg.created_at, filters.endDate, \"day\")) { return false; }\n\n if (filters.conditions && filters.conditions.length) {\n const conditions = filters.conditions.map(\n (condition) => condition.value\n );\n if (\n conditions.includes(PackageConditionValues.UNSYNCED) &&\n pkg.skip_migration !== true\n ) {\n return false;\n }\n if (\n conditions.includes(\n PackageConditionValues.UNSUBMITTED_REPORTS\n ) &&\n pkg.unsubmitted_sales_reports === 0\n ) {\n return false;\n }\n if (\n conditions.includes(PackageConditionValues.DEBT) &&\n Number(pkg.debt) <= 0\n ) {\n return false;\n }\n if (\n conditions.includes(PackageConditionValues.LAST_TEST_HAS_COMMENT) && !pkg.last_test?.has_comment\n ) {\n return false;\n }\n \n if (\n conditions.includes(PackageConditionValues.LAST_TEST_HAS_STANDARD_COMMENT) && !pkg.last_test?.has_standard_comments\n ) {\n return false;\n }\n }\n\n return true;\n });\n}\n\nfunction filterStringIncludes(str, substr) {\n return str.trim().toLowerCase().includes(substr.trim().toLowerCase());\n}\n\nexport function confirmRetestingPackageTests(packageIds, startDate) {\n store.dispatch(adminRetestingConfirmPackageTestStart());\n const data = {\n ids: packageIds,\n start_date: startDate && moment(startDate).format(\"YYYY-MM-DD\"),\n };\n\n return axios\n .post(ADMIN_CONFIRM_PACKAGE_TEST, data)\n .then((response) => {\n const data = response.data;\n\n const successIds = data\n .filter((result) => result.is_success)\n .map((result) => result.id);\n store.dispatch(adminRetestingConfirmPackageTestSuccess(successIds));\n\n return data;\n })\n .catch((error) => {\n const errorMessage = getServerErrorMessage(error);\n store.dispatch(adminRetestingConfirmPackageTestFail(errorMessage));\n\n throw Error(errorMessage);\n });\n}\n","import * as actionTypes from \"redux/actions/actionTypes\";\n\nexport const adminRetestingConfirmPackageTestStart = () => {\n return {\n type: actionTypes.ADMIN_RETESTING_CONFIRM_PACKAGE_TEST_START,\n };\n};\n\nexport const adminRetestingConfirmPackageTestSuccess = (ids) => {\n return {\n type: actionTypes.ADMIN_RETESTING_CONFIRM_PACKAGE_TEST_SUCCESS,\n ids,\n };\n};\n\nexport const adminRetestingConfirmPackageTestFail = (error) => {\n return {\n type: actionTypes.ADMIN_RETESTING_CONFIRM_PACKAGE_TEST_FAIL,\n error,\n };\n};\n\nexport const adminRetestingUpdateSelected = (selected) => {\n return {\n type: actionTypes.ADMIN_RETESTING_UPDATE_SELECTED,\n selected,\n };\n};\n\nexport const adminRetestingPackagesFetchStart = () => {\n return {\n type: actionTypes.ADMIN_RETESTING_PACKAGES_FETCH_START,\n };\n};\n\nexport const adminRetestingPackagesFetchSuccess = (\n unfilteredPackagesList,\n packagesList,\n filters\n) => {\n return {\n type: actionTypes.ADMIN_RETESTING_PACKAGES_FETCH_SUCCESS,\n packagesList,\n filters,\n unfilteredPackagesList,\n };\n};\n\nexport const adminRetestingPackagesFetchFail = (error) => {\n return {\n type: actionTypes.ADMIN_RETESTING_PACKAGES_FETCH_FAIL,\n error,\n };\n};\n\nexport const adminRetestingPackagesFilterUpdate = (key, value) => {\n return {\n type: actionTypes.ADMIN_RETESTING_PACKAGES_FILTER_UPDATE,\n key: key,\n value: value,\n };\n};\n\nexport const adminRetestingPackagesFilterClear = () => {\n return {\n type: actionTypes.ADMIN_RETESTING_PACKAGES_FILTER_CLEAR,\n };\n};\n\nexport const adminRetestingPackagesSortingUpdate = (sorting) => {\n return {\n type: actionTypes.ADMIN_RETESTING_PACKAGES_SORTING_UPDATE,\n sorting,\n };\n};\n\nexport const adminRetestingPackagesPaginationUpdate = (pagination) => {\n return {\n type: actionTypes.ADMIN_RETESTING_PACKAGES_PAGINATION_UPDATE,\n pagination,\n };\n};\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport moment from \"moment\";\n\nimport { Row, Col } from \"reactstrap\";\n// datatable\nimport BootstrapTable from \"react-bootstrap-table-next\";\nimport \"react-bootstrap-table-next/dist/react-bootstrap-table2.min.css\";\nimport \"react-bootstrap-table2-filter/dist/react-bootstrap-table2-filter.min.css\";\nimport paginationFactory, { PaginationProvider } from 'react-bootstrap-table2-paginator';\n//import 'react-bootstrap-table2-paginator/dist/react-bootstrap-table2-paginator.min.css';\n\nimport CustomPagination from \"components/Table/Pagination/CustomPagination\";\nimport WrapperLoader from \"components/Loader/WrappedLoader\";\nimport CenteredRowCol from \"components/Misc/CenteredRowCol\";\nimport StatusCell from \"components/Table/Cell/Status/StatusCell\";\nimport Checkbox from \"components/Form/Checkbox\";\nimport SelectionHeader from \"components/Form/SelectionHeader/SelectionHeader\";\nimport PackageConditionsIcons from \"components/Form/PackageConditions/PackageConditionsIcons\";\n\nimport { getTestStatusType } from \"util/Partner\";\nimport { packageStatusTypes } from \"util/Packages\";\nimport { DATE_FORMAT } from \"util/DateTime\";\n\nimport \"./Table.scss\";\n\n\nclass RetestingTable extends React.Component {\n static propTypes = {\n packagesList: PropTypes.array,\n packagesListLoading: PropTypes.bool,\n onRowClick: PropTypes.func.isRequired,\n sorting: PropTypes.object.isRequired,\n onSort: PropTypes.func.isRequired,\n pagination: PropTypes.object.isRequired,\n onPaginationChange: PropTypes.func.isRequired,\n }\n\n render() {\n if (this.props.packagesListLoading) {\n return (\n \n );\n }\n if (!this.props.packagesList) {\n return <>;\n }\n\n const columns = [\n {\n dataField: \"id\",\n text: \"ID\",\n classes: \"semibold-14\",\n sort: true,\n onSort: (field, order) => this.props.onSort(field, order),\n hidden: true,\n },\n {\n dataField: \"tested_at\",\n text: \"Testimiskuupäev\",\n classes: \"regular-14 created-at-col\",\n sort: true,\n formatter: (date) => date ? moment(date).format(DATE_FORMAT) : \"\",\n align: \"right\",\n headerAlign: \"right\",\n },\n {\n dataField: \"ean\",\n text: \"EAN kood\",\n classes: \"semibold-14\",\n sort: true,\n onSort: (field, order) => this.props.onSort(field, order),\n },\n {\n dataField: \"name\",\n text: \"Toote nimetus\",\n classes: \"semibold-14\",\n sort: true,\n onSort: (field, order) => this.props.onSort(field, order),\n },\n {\n dataField: \"client.name\",\n text: \"Ettevõte\",\n classes: \"semibold-14\",\n sort: true,\n onSort: (field, order) => this.props.onSort(field, order),\n },\n {\n dataField: \"color\",\n text: \"Värv\",\n classes: \"semibold-14\",\n sort: true,\n onSort: (field, order) => this.props.onSort(field, order),\n },\n {\n dataField: \"category.label\",\n text: \"Toote kategooria\",\n classes: \"semibold-14\",\n sort: true,\n onSort: (field, order) => this.props.onSort(field, order),\n },\n {\n dataField: \"type.label\",\n text: \"Pakendi tüüp\",\n classes: \"regular-14\",\n sort: true,\n onSort: (field, order) => this.props.onSort(field, order),\n },\n {\n dataField: \"weight\",\n text: \"Kaal\",\n classes: \"regular-14\",\n sort: true,\n onSort: (field, order) => this.props.onSort(field, order),\n },\n {\n dataField: \"status.label\",\n text: \"Staatus\",\n classes: \"regular-14\",\n align: \"center\",\n headerAlign: \"center\",\n sort: true,\n formatter: (statusLabel, row) => (\n \n ),\n },\n {\n dataField: \"last_test.label\",\n text: \"Testi tulemus\",\n classes: \"regular-14\",\n align: \"right\",\n headerAlign: \"right\",\n sort: true,\n onSort: (field, order) => this.props.onSort(field, order),\n formatter: last_test => (\n \n ),\n },\n {\n dataField: \"\",\n text: \"Seisund\",\n classes: \"regular-14 package-condition-col\",\n //sort: true,\n //onSort: (field, order) => this.props.onSort(field, order),\n formatter: (cell, row) => this.packageConditionsFormatter(row),\n },\n ];\n\n const selectRow = {\n mode: \"checkbox\",\n selected: this.props.selectedIds,\n //clickToSelect: true,\n hideSelectAll: false,\n selectionRenderer: ({ mode, checked, disabled }) => (\n { }} className=\"px-0\" />\n ),\n onSelect: (row, isSelect, rowIndex, e) => {\n this.props.onSelect(row, isSelect, rowIndex, e);\n },\n onSelectAll: (isSelect, rows) => {\n this.props.onSelectAll(isSelect, rows);\n },\n selectionHeaderRenderer: ({ mode, checked, indeterminate }) => {\n return \n }\n }\n\n const rowClasses = (row, rowIndex) => {\n return \"pointer\";\n };\n\n const rowEvents = {\n onClick: (e, row, rowIndex) => {\n this.props.onRowClick(e, row);\n },\n };\n\n const paginationOptions = {\n custom: true,\n page: this.props.pagination.page,\n sizePerPage: this.props.pagination.sizePerPage || this.props.pagination.dataSize,\n totalSize: this.props.pagination.dataSize,\n sizePerPageList: this.props.pagination.sizePerPageList,\n onSizePerPageChange: (sizePerPage, page) => {\n this.props.onPaginationChange(page, sizePerPage);\n },\n onPageChange: (page, sizePerPage) => {\n this.props.onPaginationChange(page, sizePerPage);\n }\n\n };\n\n const defaultSorted = [this.props.sorting];\n\n const emptyTableIndication = this.renderCenteredContent(

Ükski kordustest ei vastanud otsingutingimustele.

);\n\n return (\n \n {\n ({\n paginationProps,\n paginationTableProps\n }) => (\n <>\n \n \n \n \n \n \n \n \n \n \n \n )\n }\n \n );\n }\n\n renderCenteredContent = content => {\n return (\n \n {content}\n \n );\n }\n\n packageConditionsFormatter = (row) => {\n return (\n \n );\n }\n}\n\nexport default RetestingTable;\n","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport PropTypes from \"prop-types\";\n\nimport { Form, Row, Col, Button } from \"reactstrap\";\n\n// datepicker\n//import DatePicker from \"react-datepicker\";\nimport Select from \"components/Form/Select\";\nimport CustomInput from \"components/Form/Input\";\nimport LoadingAnimation from \"components/Loader/WrappedPulseLoader\";\nimport PackageConditionsSelect from \"components/Form/PackageConditions/PackageConditionsSelect\";\n\nimport {\n fetchAllClients,\n} from \"util/General\";\nimport {\n //fetchEanTypes,\n fetchCategories,\n fetchPackageTypes,\n //fetchPackageVolumes,\n fetchPackageStatuses,\n fetchPackageTestResults,\n packageStatusTypeLists\n} from \"util/Packages\";\n\n\nclass AdminRetestingSearch extends React.Component {\n static propTypes = {\n // Taken from redux\n //eanTypes: PropTypes.array,\n allClients: PropTypes.array,\n categories: PropTypes.array,\n packageTypes: PropTypes.array,\n //packageVolumes: PropTypes.array,\n packageStatuses: PropTypes.array,\n packageTestResults: PropTypes.array,\n // manual props\n filters: PropTypes.object.isRequired,\n packagesListLoading: PropTypes.bool,\n onFilterUpdate: PropTypes.func.isRequired,\n onClearFilters: PropTypes.func.isRequired,\n onSearch: PropTypes.func.isRequired,\n }\n\n componentDidMount() {\n //fetchEanTypes(this.props.eanTypes);\n fetchAllClients(this.props.allClients);\n fetchCategories(this.props.categories);\n fetchPackageTypes(this.props.packageTypes);\n //fetchPackageVolumes(this.props.packageVolumes);\n fetchPackageStatuses(this.props.packageStatuses);\n fetchPackageTestResults(this.props.packageTestResults);\n }\n\n static DATE_FORMAT = \"dd-MM-yyyy\";\n\n render() {\n return (\n
\n \n \n \n \n Pakendi otsing\n \n {this.props.exportButton &&\n \n {this.props.exportButton}\n \n }\n \n \n \n \n \n \n \n \n {/*\n \n option.description}\n getOptionValue={(option) => option.value}\n onChange={this.updateFilter('category')}\n />\n \n \n option.value}\n getOptionValue={(option) => option.value}\n onChange={this.updateFilter('type')}\n />\n \n {/*\n \n \n \n \n option.label}\n getOptionValue={(option) => option.value}\n onChange={this.updateFilter('client')}\n className=\"mb-2\"\n />\n \n \n \n option.description}\n getOptionValue={(option) => option.value}\n onChange={this.updateFilter('category')}\n />\n option.value + \"cl\"}\n getOptionValue={(option) => option.value}\n className=\"mb-2\"\n onChange={this.updateFilter('volume')}\n />\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Tühjenda otsing\n \n {\n e.preventDefault();\n this.props.onSearch();\n }}\n disabled={this.props.packagesListLoading}\n >\n {this.props.packagesListLoading ? : \"Otsi\"}\n \n \n \n \n \n
\n );\n }\n\n updateFilter = key => value => {\n this.props.onFilterUpdate(key, value);\n }\n\n}\n\nconst mapStateToProps = state => {\n return {\n allClients: state.general.allClients,\n eanTypes: state.packages.eanTypes,\n categories: state.packages.categories,\n packageTypes: state.packages.packageTypes,\n packageVolumes: state.packages.packageVolumes,\n packageStatuses: state.packages.packageStatuses,\n packageTestResults: state.packages.packageTestResults,\n }\n};\n\nexport default connect(mapStateToProps)(AdminAllPackagesSearch);\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport moment from \"moment\";\n\n// datatable\nimport BootstrapTable from \"react-bootstrap-table-next\";\nimport \"react-bootstrap-table-next/dist/react-bootstrap-table2.min.css\";\nimport \"react-bootstrap-table2-filter/dist/react-bootstrap-table2-filter.min.css\";\n\nimport WrapperLoader from \"components/Loader/WrappedLoader\";\nimport CenteredRowCol from \"components/Misc/CenteredRowCol\";\nimport StatusCell from \"components/Table/Cell/Status/StatusCell\";\nimport { getTestStatusType } from \"util/Partner\";\nimport { packageStatuses, packageStatusTypes } from \"util/Packages\";\nimport { DATE_FORMAT } from \"util/DateTime\";\nimport \"./Table.scss\";\n\n\nclass PackagesTable extends React.Component {\n static propTypes = {\n packagesList: PropTypes.array,\n packagesListLoading: PropTypes.bool,\n\n sorting: PropTypes.object.isRequired,\n onTableChange: PropTypes.func.isRequired,\n }\n\n render() {\n if (this.props.packagesListLoading) {\n return (\n \n );\n }\n if (!this.props.packagesList) {\n return <>;\n }\n\n const emptyTableIndication = this.renderCenteredContent(

Ükski pakend ei vastanud otsingutingimustele.

);\n\n const columns = [\n {\n dataField: \"package_id\",\n text: \"ID\",\n classes: \"semibold-14\",\n sort: true,\n hidden: true,\n },\n {\n dataField: \"ean\",\n text: \"EAN kood\",\n classes: \"semibold-14\",\n sort: true,\n },\n {\n dataField: \"ean_type.label\",\n text: \"EAN tüüp\",\n classes: \"regular-14\",\n sort: true,\n },\n {\n dataField: \"name\",\n text: \"Toote nimetus\",\n classes: \"semibold-14\",\n sort: true,\n },\n {\n dataField: \"client.label\",\n text: \"Klient\",\n classes: \"semibold-14\",\n sort: true,\n },\n {\n dataField: \"color\",\n text: \"Värv\",\n classes: \"semibold-14\",\n sort: true,\n },\n {\n dataField: \"category.label\",\n text: \"Kategooria\",\n classes: \"regular-14\",\n sort: true,\n },\n {\n dataField: \"type.label\",\n text: \"Tüüp\",\n classes: \"regular-14\",\n sort: true,\n },\n {\n dataField: \"volume\",\n text: \"Maht\",\n classes: \"regular-14\",\n sort: true,\n },\n {\n dataField: \"weight\",\n text: \"Kaal\",\n classes: \"regular-14\",\n sort: true,\n },\n {\n dataField: \"status.label\",\n text: \"Staatus\",\n classes: \"regular-14\",\n align: \"center\",\n headerAlign: \"center\",\n sort: true,\n formatter: (statusLabel, row) => (\n \n ),\n },\n {\n dataField: \"created_at\",\n text: \"Loodud\",\n classes: \"regular-14 created-at-col\",\n sort: true,\n formatter: (date) => moment(date).format(DATE_FORMAT),\n align: \"right\",\n headerAlign: \"right\",\n },\n {\n dataField: \"last_test.status\",\n text: \"Testitulemus\",\n align: \"center\",\n headerAlign: \"center\",\n sort: true,\n formatter: (lastTestStatus) => (\n \n ),\n },\n ];\n\n const rowClasses = (row, rowIndex) => {\n const classes = [\"pointer\"];\n if (row.status.value === packageStatuses.LOCAL_DELETE) {\n classes.push(\"color-gray-lightest-bg\");\n }\n return classes.join(\" \");\n };\n\n const rowEvents = {\n onClick: (e, row, rowIndex) => {\n this.props.onRowClick(e, row);\n },\n };\n\n const defaultSorted = [\n this.props.sorting,\n ];\n\n return (\n \n );\n }\n\n renderCenteredContent = content => {\n return (\n \n {content}\n \n );\n }\n}\n\nexport default PackagesTable;\n","import React from \"react\";\n\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\nimport PropTypes from \"prop-types\";\nimport onScan from \"onscan.js\";\n\nimport {\n fetchAdminAllPackages,\n} from \"util/admin/AllPackages\";\nimport urls, { getAdminPackageDetailsUrl } from \"config/urls\";\n\nimport {\n adminAllPackagesFilterUpdate,\n adminAllPackagesFilterClear,\n adminAllPackagesSortingUpdate,\n adminAllPackagesPaginationUpdate,\n} from \"redux/actions/admin/allPackages\";\n\nimport { Card, CardBody, Row, Col } from \"reactstrap\";\nimport Search from \"./Search/Search\";\nimport Table from \"./Table/Table\";\nimport CustomPagination from \"components/Table/Pagination/CustomPagination\";\n\nimport { clearLocalAlerts, addNewLocalInfoAlert } from \"util/Alerts\";\n\n\nclass PackagesView extends React.Component {\n static propTypes = {\n // redux state\n packagesList: PropTypes.array,\n packagesListLoading: PropTypes.bool,\n packagesListFiltersUsed: PropTypes.object.isRequired,\n filters: PropTypes.object.isRequired,\n sorting: PropTypes.object.isRequired,\n pagination: PropTypes.object.isRequired,\n\n // redux actions\n adminAllPackagesFilterUpdate: PropTypes.func.isRequired,\n adminAllPackagesFilterClear: PropTypes.func.isRequired,\n adminAllPackagesSortingUpdate: PropTypes.func.isRequired,\n adminAllPackagesPaginationUpdate: PropTypes.func.isRequired,\n }\n\n componentDidMount() {\n fetchAdminAllPackages(this.props.packagesListFiltersUsed, this.props.sorting, this.props.pagination, this.props.location.pathname);\n\n onScan.attachTo(document, {\n suffixKeyCodes: [13], // enter-key expected at the end of a scan\n onScan: this.onScan, // Alternative to document.addEventListener('scan')\n });\n }\n\n componentWillUnmount() {\n onScan.detachFrom(document);\n }\n\n onScan = (sCode, iQty) => {\n clearLocalAlerts();\n const ean = sCode;\n\n this.props.adminAllPackagesFilterClear();\n this.props.adminAllPackagesFilterUpdate(\"ean\", ean);\n\n let message =
Skänneeriti EAN \"{ean}\".
;\n addNewLocalInfoAlert(message, this.props.location.pathname);\n fetchAdminAllPackages(this.props.filters, this.props.sorting, this.props.pagination, this.props.location.pathname);\n }\n\n /*\n componentDidUpdate(prevProps) {\n if (prevProps.filters !== this.props.filters) {\n fetchAdminAllPackages(this.props.filters, this.props.sorting, this.props.pagination, this.props.location.pathname);\n }\n }\n */\n\n render() {\n const pagination = this.props.pagination;\n return (\n \n \n \n \n \n \n \n \n {!this.props.packagesListLoading &&\n \n \n this.onPaginationChange(page, sizePerPage)}\n onPageChange={this.onPaginationChange}\n />\n \n \n }\n \n \n );\n }\n\n onSearch = () => {\n fetchAdminAllPackages(this.props.filters, this.props.sorting, this.props.pagination, this.props.location.pathname);\n }\n\n onPaginationChange = (page, sizePerPage) => {\n const currentPagination = this.props.pagination;\n if (page !== currentPagination.page || sizePerPage !== currentPagination.sizePerPage) {\n const newPagination = { ...currentPagination, page, sizePerPage };\n this.props.adminAllPackagesPaginationUpdate(newPagination);\n fetchAdminAllPackages(this.props.packagesListFiltersUsed, this.props.sorting, newPagination, this.props.location.pathname);\n }\n }\n\n onTableChange = (type, newState) => {\n const { sortOrder, sortField } = newState;\n const sorting = this.props.sorting;\n if (sortOrder !== sorting.order || sortField !== sorting.dataField) {\n const newSorting = {\n dataField: sortField,\n order: sortOrder,\n };\n this.props.adminAllPackagesSortingUpdate(newSorting);\n fetchAdminAllPackages(this.props.packagesListFiltersUsed, newSorting, this.props.pagination, this.props.location.pathname);\n }\n }\n\n onRowClick = (event, row) => {\n const packageDetailsUrl = getAdminPackageDetailsUrl(row.package_id);\n this.props.history.push(packageDetailsUrl, { previousViewRoute: urls.EPP_REGISTRY_PACKAGES });\n }\n}\n\nconst mapStateToProps = state => {\n return {\n packagesList: state.admin.allPackages.packagesList,\n packagesListLoading: state.admin.allPackages.packagesListLoading,\n packagesListFiltersUsed: state.admin.allPackages.packagesListFiltersUsed,\n filters: state.admin.allPackages.filters,\n sorting: state.admin.allPackages.sorting,\n pagination: state.admin.allPackages.pagination,\n }\n};\n\nconst mapActionsToProps = {\n adminAllPackagesFilterUpdate,\n adminAllPackagesFilterClear,\n adminAllPackagesSortingUpdate,\n adminAllPackagesPaginationUpdate,\n};\n\nexport default withRouter(connect(mapStateToProps, mapActionsToProps)(PackagesView));\n","import React from \"react\";\n//import PropTypes from \"prop-types\";\nimport {Row, Col, Button, Modal, ModalBody} from \"reactstrap\";\n\nimport CloseTextIcon from \"components/Misc/CloseTextIcon\";\nimport Alerts from \"components/Alerts/Alerts\";\nimport LoadingAnimation from \"components/Loader/WrappedPulseLoader\";\nimport DeleteText from \"components/Misc/DeleteText\";\n\n\nconst DeleteModal = ({\n toggleButtonText, \n children, title, confirmButtonText, \n isOpen, onToggle, onCancel, onConfirm, \n isDisabled, isLoading, alertGroups,\n}) => {\n return (\n <>\n \n \n \n \n \n {title}\n \n \n \n \n \n \n \n \n \n \n \n \n {children}\n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n\nDeleteModal.defaultProps = {\n toggleButtonText: \"Kustuta\",\n children: Kas oled kindel, et tahad kustutada?, \n title: \"Kinnita kustutamine\",\n confirmButtonText: \"Kinnita\", \n isDisabled: false,\n isLoading: false,\n alertGroups: [],\n //onToggle, onCancel, onConfirm,\n};\n\nexport default DeleteModal;","import React from \"react\";\nimport { withRouter, NavLink } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport PropTypes from \"prop-types\";\nimport get from \"lodash/get\";\nimport { withTranslation } from \"react-i18next\";\n\nimport DatePicker from \"react-datepicker\";\nimport { Card, Row, Col, Button, Label } from \"reactstrap\";\nimport CustomInput from \"components/Form/Input\";\nimport CustomSelect from \"components/Form/Select\";\nimport WrappedLoader from \"components/Loader/WrappedLoader\";\nimport LoadingAnimation from \"components/Loader/WrappedPulseLoader\";\nimport LeftText from \"components/Misc/LeftText\";\nimport DeleteModal from \"components/Form/Modals/DeleteModal\";\nimport PackageTestList from \"components/PackageTest/PackageTestList\";\nimport Alert from \"components/Alerts/Alert/Alert\";\nimport Alerts from \"components/Alerts/Alerts\";\nimport ConfirmationModal from \"components/Form/Modals/ConfirmationModal\";\n\nimport \"./PackageDetails.scss\";\n\nimport urls, { getAdminDebtsClientInvoicesUrl } from \"config/urls\";\n\nimport { updateNavigationHeaderSuffix, clearNavigationHeaderSuffix } from \"util/Navigation\";\nimport {\n clearLocalAlerts,\n addNewLocalErrorAlert,\n addNewLocalSuccessAlert,\n alertType,\n addNewLocalInfoAlert,\n} from \"util/Alerts\";\nimport {\n fetchEanTypes,\n fetchCategories,\n fetchPackageTypes,\n fetchPackageStatuses,\n fetchPackageVolume,\n packageStatuses,\n fetchColors,\n isValidColorForPackageType,\n removePackage\n} from \"util/Packages\";\nimport {\n fetchPackageDetails,\n updatePackageDetails,\n deletePackage,\n} from \"util/admin/PackageDetails\";\nimport {\n generatePackageApplicationInvoice\n} from \"util/admin/Applications\";\nimport { currencyFormatter, isNumeric } from \"util/General\";\nimport { DATE_FORMAT_DATE_FN } from \"util/DateTime\";\n\nclass AdminPackageDetails extends React.Component {\n static propTypes = {\n eanTypes: PropTypes.array,\n categories: PropTypes.array,\n packageTypes: PropTypes.array,\n packageStatuses: PropTypes.array,\n packageColors: PropTypes.array,\n }\n\n static FIELD_VALIDATION_ALERT_GROUP = \"FIELD_VALIDATION_ALERT_GROUP\";\n\n state = {\n packageDetails: {},\n packageTypeVolumeOptions: [],\n\n packageDetailsLoading: false,\n packageUpdateLoading: false,\n packageApproveLoading: false,\n\n deleteModalOpen: false,\n deleteLoading: false,\n newPackageTestLoading: false,\n\n isConfirmUpdateOpen: false,\n isConfirmApproveOpen: false,\n approvalStartDate: null,\n\n invalidFields: []\n }\n\n\n componentDidMount() {\n const id = this.props.match.params.id;\n this.getPackageDetails(id);\n\n fetchEanTypes(this.props.eanTypes);\n fetchCategories(this.props.categories);\n fetchPackageTypes(this.props.packageTypes);\n fetchPackageStatuses(this.props.packageStatuses);\n fetchColors(this.props.packageColors);\n }\n\n componentWillUnmount(prevProps) {\n clearNavigationHeaderSuffix();\n }\n\n componentDidUpdate(prevProps, prevState) {\n this.updateVolumeOptionsAndValue(prevState);\n }\n\n render() {\n if (this.state.packageDetailsLoading) {\n return \n }\n const packageDetails = this.state.packageDetails;\n return (\n \n \n \n {packageDetails.client ? packageDetails.client.name : null}\n \n {this.renderDeletePackageModal()}\n \n {this.renderUnsyncedParametersAlert()}\n {this.renderDebtAlert()}\n {this.renderUnsubmittedSalesReportsAlert()}\n \n \n Üldised andmed\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n option.value}\n getOptionValue={(option) => option.id}\n value={packageDetails.ean_type}\n onChange={this.onFieldUpdate(\"ean_type\")}\n invalid={this.isInvalid(\"ean_type\")}\n disabled={this.isFieldDisabled(\"ean_type\")}\n />\n \n \n \n \n option.description || option.value}\n getOptionValue={(option) => option.id}\n value={packageDetails.package_category}\n onChange={this.onFieldUpdate(\"package_category\")}\n invalid={this.isInvalid(\"package_category\")}\n disabled={this.isFieldDisabled(\"package_category\")}\n />\n \n \n option.value}\n getOptionValue={(option) => option.id}\n value={packageDetails.package_type}\n onChange={this.onFieldUpdate(\"package_type\")}\n invalid={this.isInvalid(\"package_type\")}\n disabled={this.isFieldDisabled(\"package_type\")}\n />\n \n \n \n \n \n \n \n option.value}\n getOptionValue={(option) => option.id}\n isOptionDisabled={(option) => !isValidColorForPackageType(option.id, packageDetails.package_type ? packageDetails.package_type.id : null)}\n value={packageDetails.color}\n onChange={this.onFieldUpdate(\"color\")}\n invalid={this.isInvalid(\"color\")}\n disabled={this.isFieldDisabled(\"color\")}\n />\n \n \n option.value}\n getOptionValue={(option) => option.id}\n value={packageDetails.volume}\n onChange={this.onFieldUpdate(\"volume\")}\n invalid={this.isInvalid(\"volume\")}\n disabled={this.isFieldDisabled(\"volume\")}\n />\n \n \n \n \n \n option.value}\n getOptionValue={(option) => option.id}\n value={this.state.packageDetails.status}\n onChange={this.onFieldUpdate(\"status\")}\n disabled\n />\n \n \n \n \n \n {this.renderTesting()}\n \n {this.renderGenerateMissingApplicationInvoiceModal()}\n {this.renderConfirmUpdateButtonAndModal()}\n {this.renderConfirmApproveButtonAndModal()}\n \n \n \n \n \n \n \n \n \n );\n }\n\n renderDebtAlert() {\n const packageDetails = this.state.packageDetails;\n if (!packageDetails || !packageDetails.client) {\n return <>;\n }\n const debt = Number(packageDetails.debt);\n if (debt <= 0) {\n return (\n <>\n );\n }\n\n let type = alertType.ERROR_ICON;\n\n const clientInvoicesUrl = getAdminDebtsClientInvoicesUrl(packageDetails.client.id);\n let content = (\n
\n {`Kliendil on võlgnevus summas ${currencyFormatter.format(debt)}.`}\n \n Halda kliendi võlgnevusi\n \n
\n );\n\n return (\n \n \n \n \n \n );\n }\n\n renderUnsubmittedSalesReportsAlert() {\n const packageDetails = this.state.packageDetails;\n if (!packageDetails || !packageDetails.client) {\n return <>;\n }\n const unsubmittedSalesReports = Number(packageDetails.unsubmitted_sales_reports);\n if (unsubmittedSalesReports <= 0) {\n return (\n <>\n );\n }\n\n let type = alertType.ERROR_ICON;\n\n let content = (\n
\n {`Kliendil on ${unsubmittedSalesReports} esitamata müügiaruannet.`}\n \n Halda kliendi müügiaruandeid\n \n
\n );\n\n return (\n \n \n \n \n \n );\n }\n\n renderUnsyncedParametersAlert() {\n const packageDetails = this.state.packageDetails;\n if (!packageDetails || !packageDetails.client) {\n return <>;\n }\n const isUnsynced = Number(packageDetails.skip_migration);\n if (!isUnsynced) {\n return (\n <>\n );\n }\n\n let content = (\n
\n \n Kliendi pakendi parameetrid on NAV-iga sünkroniseerimata. Kontrolli nende valiidsust.\n

\n Andmed sünkroniseeritakse parameetrite salvestamisel või pakendi registreerimisel.\n
\n
\n );\n\n return (\n \n \n \n \n \n );\n }\n\n renderTesting() {\n if (this.isDisabled()) {\n return <>;\n }\n\n return (\n <>\n \n \n Testimine\n \n \n \n \n \n \n \n \n );\n }\n\n renderDeletePackageModal() {\n if (!this.showDeletePackage()) {\n return <>;\n }\n const deletePackageAlertGroup = \"adminDeletePackageGroup\";\n\n\n let confirmationText = \"Antud tegevus kustutab pakendi ainult veebist. NAV-is tuleb kustutada eraldi.\";\n let deleteEndpointFunc = deletePackage;\n if (this.state.packageDetails.status.id === packageStatuses.NOT_APPLIED_STATUS) {\n deleteEndpointFunc = removePackage;\n confirmationText = \"Antud pakend on kliendi poolt esitamata ja eksisteerib ainult veebis.\";\n }\n\n const onToggle = () => {\n this.setState(prevState => { return { deleteModalOpen: !prevState.deleteModalOpen } })\n clearLocalAlerts();\n };\n const onDelete = () => {\n if (this.isDisabled() || this.state.deleteLoading) {\n return;\n }\n clearLocalAlerts();\n\n this.setState({\n deleteLoading: true,\n });\n\n deleteEndpointFunc(this.state.packageDetails.id)\n .then(() => {\n this.setState({\n deleteLoading: false,\n deleteModalOpen: false,\n });\n\n const route = this.getReturnRoute();\n clearLocalAlerts();\n addNewLocalSuccessAlert(`Pakend ${this.state.packageDetails.name} (${this.state.packageDetails.ean}) edukalt kustutatud.`, route);\n document.body.classList.remove(\"modal-open\");\n this.goBack();\n })\n .catch(error => {\n clearLocalAlerts();\n addNewLocalErrorAlert(error.message, deletePackageAlertGroup);\n this.setState({\n deleteLoading: false,\n });\n });\n }\n\n return (\n \n \n

{confirmationText}

\n

Kas olete kindel, et soovite kustutada?

\n \n \n );\n }\n\n renderGenerateMissingApplicationInvoiceModal() {\n let alertGroup = \"packageDetailsGenerateMissingApplicationInvoiceModal\";\n const onToggle = () => {\n this.setState(prevState => { return { isConfirmGenerateApplicationInvoiceOpen: !prevState.isConfirmGenerateApplicationInvoiceOpen } });\n clearLocalAlerts();\n };\n let onConfirmFunc = () => {\n this.setState({\n generatePackageApplicationInvoiceLoading: true,\n })\n generatePackageApplicationInvoice([this.state.packageDetails.id])\n .then(data => {\n this.setState(prevState => {\n return {\n generatePackageApplicationInvoiceLoading: false,\n isConfirmGenerateApplicationInvoiceOpen: false,\n packageDetails: {\n ...prevState.packageDetails,\n is_application_invoice: true,\n },\n }\n })\n clearLocalAlerts();\n addNewLocalInfoAlert(\"Pakendi puuduva taotluse arve genereerimine edukalt sooritatud.\", this.props.location.pathname);\n\n }).catch(error => {\n this.setState({\n generatePackageApplicationInvoiceLoading: false,\n })\n clearLocalAlerts();\n addNewLocalErrorAlert(error.message, alertGroup);\n });\n };\n\n const problems = this.onGetPossibleProblems();\n if (this.state.packageDetails.status && this.state.packageDetails.status.id === packageStatuses.APPROVED_STATUS) {\n problems.push(\"Pakend on registreeritud.\");\n }\n\n let content =

Pakendile luuakse taotluse arve kui seda ei ole varem automaatselt genereeritud (Tekkis probleem pakendi taotlemise hetkel).

\n\n return (\n <>\n \n \n {this.state.generatePackageApplicationInvoiceLoading ? : \"Genereeri taotluse arve\"}\n \n \n \n {content}\n\n \n \n );\n }\n\n renderConfirmUpdateButtonAndModal() {\n let alertGroup = \"packageDetailsConfirmUpdateModal\";\n const onToggle = () => {\n if (!this.state.isConfirmUpdateOpen && !this.validatePackage()) {\n return;\n } else {\n this.setState(prevState => { return { isConfirmUpdateOpen: !prevState.isConfirmUpdateOpen } });\n clearLocalAlerts();\n }\n };\n let onConfirmFunc = () => {\n clearLocalAlerts();\n this.onUpdate(false, null, alertGroup)\n .then(isSuccess => {\n if (isSuccess) {\n clearLocalAlerts();\n this.setState({ isConfirmUpdateOpen: false });\n addNewLocalSuccessAlert(\"Pakend edukalt salvestatud.\", this.props.location.pathname);\n } else {\n // this.onUpdate creates an alert on error catch.\n //addNewLocalErrorAlert(\"Pakendi salvestamine ebaõnnestus.\", alertGroup);\n }\n });\n };\n\n const problems = this.onGetPossibleProblems();\n if (this.state.packageDetails.status && this.state.packageDetails.status.id === packageStatuses.APPROVED_STATUS) {\n problems.push(\"Pakend on registreeritud.\");\n }\n\n let content =

Kinnita pakendi parameetrite salvestamine.

\n if (problems.length) {\n content = (\n <>\n

\n Võimalikud probleemid:\n

\n
    \n {problems.map((problem, i) =>
  • {problem}
  • )}\n
\n \n );\n }\n\n return (\n <>\n {this.showUpdateButton() &&\n \n \n {this.state.packageUpdateLoading ? : \"Salvesta\"}\n \n \n }\n \n {content}\n\n \n \n );\n }\n\n renderConfirmApproveButtonAndModal() {\n let alertGroup = \"packageDetailsConfirmApproveModal\";\n const onToggle = () => {\n if (!this.state.isConfirmApproveOpen && !this.validatePackage()) {\n return;\n } else {\n this.setState(prevState => {\n return {\n isConfirmApproveOpen: !prevState.isConfirmApproveOpen,\n approvalStartDate: null\n }\n });\n clearLocalAlerts();\n }\n };\n let onConfirmFunc = () => {\n clearLocalAlerts();\n const startDate = this.state.approvalStartDate;\n\n if (startDate == null) {\n addNewLocalErrorAlert(\"Müügi alguskuupäev valimata.\", alertGroup);\n return;\n }\n\n this.onUpdate(true, startDate, alertGroup)\n .then(isSuccess => {\n if (isSuccess) {\n this.setState({ isConfirmApproveOpen: false });\n addNewLocalSuccessAlert(\"Pakend edukalt registreeritud.\", this.props.location.pathname);\n } else {\n // this.onUpdate creates an alert on error catch.\n //addNewLocalErrorAlert(\"Pakendi salvestamine ebaõnnestus.\", alertGroup);\n }\n });\n };\n\n const problems = this.onGetPossibleProblems();\n\n let content =

Kinnita pakendi registreerimine.

\n if (problems.length) {\n content = (\n <>\n

\n Võimalikud probleemid:\n

\n
    \n {problems.map((problem, i) =>
  • {problem}
  • )}\n
\n \n );\n }\n\n return (\n <>\n {this.showApproveButton() &&\n \n \n {this.state.packagesApprovedLoading ? : \"Registreeri\"}\n \n \n }\n \n \n \n {content}\n \n \n \n \n \n this.setState({ approvalStartDate: value })}\n dateFormat={DATE_FORMAT_DATE_FN}\n />\n \n \n\n \n \n );\n }\n\n isInvalid = (field) => {\n return this.state.invalidFields.includes(field);\n };\n\n validatePackage = () => {\n clearLocalAlerts();\n const obj = this.state.packageDetails;\n const alertGroup = AdminPackageDetails.FIELD_VALIDATION_ALERT_GROUP;\n const inputFields = [\"ean\", \"name\", \"weight\"];\n const selectFields = [\n \"ean_type\",\n \"package_category\",\n \"volume\",\n \"color\",\n \"package_type\",\n ];\n const invalidFields = [];\n\n for (const field of inputFields) {\n if (!obj[field]) {\n invalidFields.push(field);\n }\n }\n for (const field of selectFields) {\n if (!obj[field] || !obj[field].id) {\n invalidFields.push(field);\n }\n }\n\n // If package weight has value, make sure it is numeric.\n if (!invalidFields.includes(\"weight\")) {\n if (!isNumeric(obj[\"weight\"])) {\n invalidFields.push(\"weight\");\n addNewLocalErrorAlert(\n this.props.t(\"packages.addPackageModal.alert.weightNumericValidationText\", \"Pakendi kaal peab olema number.\"),\n alertGroup\n );\n }\n }\n\n this.setState({\n invalidFields\n });\n\n if (invalidFields.length === 0) {\n return true;\n } else {\n addNewLocalErrorAlert(\n this.props.t(\"packages.addPackageModal.alert.genericValidationText\", \"Kõik punasega märgitud väljad peavad olema täidetud.\"),\n alertGroup\n );\n return false;\n }\n };\n\n onGetPossibleProblems = () => {\n const packageDetails = this.state.packageDetails;\n const problems = [];\n\n const isUnsynced = Number(packageDetails.skip_migration);\n if (isUnsynced) {\n problems.push(`Kliendi pakendi parameetrid on NAV-iga sünkroniseerimata.`);\n }\n\n const debt = Number(packageDetails.debt);\n if (debt > 0) {\n problems.push(`Kliendil on võlgnevus summas ${currencyFormatter.format(debt)}.`);\n }\n\n const unsubmittedSalesReports = Number(packageDetails.unsubmitted_sales_reports);\n if (unsubmittedSalesReports > 0) {\n problems.push(`Kliendil on esitamata müügiaruandeid (${unsubmittedSalesReports}).`);\n }\n\n if (!packageDetails.location) {\n problems.push(\"Asukohatähis on tühi.\");\n }\n\n return problems;\n }\n\n\n\n onPackageTestSubmitSuccess = packageTest => {\n const newStatus = {\n id: packageTest.package_status.value,\n value: packageTest.package_status.label,\n }\n this.setState(prevState => {\n return {\n packageDetails: {\n ...prevState.packageDetails,\n status: newStatus,\n }\n }\n })\n addNewLocalSuccessAlert(`Pakendi test edukalt esitatud ${packageTest.status.label} staatusega.`, this.props.location.pathname);\n }\n\n goBack = () => {\n this.props.history.push(this.getReturnRoute());\n }\n\n showDeletePackage = () => {\n if (this.isDisabled()) {\n return false;\n }\n\n const deleteableStatuses = [packageStatuses.NOT_APPLIED_STATUS, packageStatuses.APPLIED_STATUS, packageStatuses.IN_TESTING_STATUS, packageStatuses.UNCONFIRMED, packageStatuses.WAITING_STATUS, packageStatuses.APPROVED_STATUS];\n return this.state.packageDetails.status && deleteableStatuses.includes(this.state.packageDetails.status.id);\n }\n\n showUpdateButton = () => {\n return !this.isDisabled() && this.getEditableFields().length > 0;\n }\n\n showApproveButton = () => {\n const approvableStatuses = [packageStatuses.APPLIED_STATUS, packageStatuses.IN_TESTING_STATUS, packageStatuses.UNCONFIRMED, packageStatuses.WAITING_STATUS];\n return !this.isDisabled() && this.isPackageStatusIdOneOf(approvableStatuses);\n }\n\n showSendToTestingButton = () => {\n return this.state.packageDetails.is_testable;\n }\n\n getReturnRoute = () => {\n const locationState = this.props.location.state;\n if (locationState && locationState.previousViewRoute) {\n return locationState.previousViewRoute;\n }\n return urls.EPP_REGISTRY_APPLICATIONS;\n }\n\n onFieldUpdate = field => value => {\n this.setState((prevState) => {\n return {\n packageDetails: {\n ...prevState.packageDetails,\n [field]: value,\n }\n }\n }, () => {\n if (field === \"package_type\") {\n this.updateColorValueIfNecessary();\n }\n });\n }\n\n isDisabled = () => {\n return !this.state.packageDetails || !this.state.packageDetails.id;\n }\n\n isAnythingLoading = () => {\n return this.state.packageApproveLoading || this.state.packageUpdateLoading || this.state.packageDetailsLoading;\n }\n\n getEditableFields() {\n return get(this.state, \"packageDetails.editable_fields\", []);\n }\n\n isUpdateDisabled = () => {\n const editableFields = this.getEditableFields();\n return this.isAnythingLoading() || this.isDisabled() || editableFields.length === 0;\n }\n\n isFieldDisabled = (field) => {\n if (this.isUpdateDisabled()) return true;\n return !this.getEditableFields().includes(field);\n }\n\n isApproveDisabled = () => {\n return this.isAnythingLoading() || this.isDisabled();\n }\n\n isPackageStatusIdOneOf = options => {\n const id = this.state.packageDetails && this.state.packageDetails.status ? this.state.packageDetails.status.id : null;\n return options.includes(id);\n }\n\n updateVolumeOptionsAndValue = prevState => {\n const prevPackageType = prevState.packageDetails ? prevState.packageDetails.package_type : null;\n const currentPackageType = this.state.packageDetails ? this.state.packageDetails.package_type : null;\n\n if (!currentPackageType || prevPackageType === currentPackageType) {\n return;\n }\n\n fetchPackageVolume(currentPackageType.id)\n .then(data => {\n this.setState({\n packageTypeVolumeOptions: data,\n })\n\n // Remove current volume if it is not in new options.\n // volume options id and value are the same now and now it is PackageTypeVolume.volume instead of PackageTypeVolume.id \n const newVolumeOptionsIds = data.map(option => option.value);\n const currentVolumeOption = this.state.packageDetails.volume;\n if (currentVolumeOption && !newVolumeOptionsIds.includes(currentVolumeOption.value)) {\n this.setState(prevState => {\n return {\n packageDetails: {\n ...prevState.packageDetails,\n volume: null,\n }\n }\n })\n }\n })\n .catch(error => {\n addNewLocalErrorAlert(error.message, this.props.location.pathname);\n });\n }\n\n updateColorValueIfNecessary = () => {\n const packageDetails = this.state.packageDetails;\n\n const currentPackageType = packageDetails ? packageDetails.package_type : null;\n\n if (!currentPackageType) {\n return;\n }\n\n const currentPackageTypeId = currentPackageType ? currentPackageType.id : null;\n const currentColorId = packageDetails && packageDetails.color ? packageDetails.color.id : null;\n\n if (!isValidColorForPackageType(currentColorId, currentPackageTypeId)) {\n this.setState(previousState => {\n return {\n packageDetails: {\n ...previousState.packageDetails,\n color: null,\n }\n }\n })\n }\n }\n\n onUpdate = (activateInNav, startDate = null, alertGroup = null) => {\n if (this.isUpdateDisabled()) {\n return;\n }\n if (activateInNav) {\n this.setState({\n packageApproveLoading: true,\n });\n } else {\n this.setState({\n packageUpdateLoading: true,\n });\n }\n\n if (alertGroup == null) {\n alertGroup = this.props.location.pathname;\n }\n\n clearLocalAlerts();\n return updatePackageDetails(this.state.packageDetails, activateInNav, startDate)\n .then(data => {\n this.setState({\n packageDetails: data,\n });\n if (activateInNav) {\n this.setState({\n packageApproveLoading: false,\n });\n //addNewLocalSuccessAlert(\"Pakend edukalt registreeritud.\", alertGroup);\n } else {\n this.setState({\n packageUpdateLoading: false,\n });\n //addNewLocalSuccessAlert(\"Pakend edukalt salvestatud.\", alertGroup);\n }\n return true;\n })\n .catch(error => {\n clearLocalAlerts();\n addNewLocalErrorAlert(error.message, alertGroup);\n if (activateInNav) {\n this.setState({\n packageApproveLoading: false,\n });\n } else {\n this.setState({\n packageUpdateLoading: false,\n });\n }\n return false;\n });\n }\n\n getPackageDetails(packageId) {\n this.setState({\n packageDetailsLoading: true,\n });\n\n fetchPackageDetails(packageId)\n .then(data => {\n this.setState({\n packageDetails: data,\n packageDetailsLoading: false,\n });\n updateNavigationHeaderSuffix(data.ean);\n })\n .catch(error => {\n clearLocalAlerts();\n addNewLocalErrorAlert(\"Pakendi detailide pärimine ebaõnnestus: \" + error.message, this.props.location.pathname);\n this.setState({\n packageDetailsLoading: false,\n });\n });\n }\n\n onSendToTestingSuccess = (data) => {\n if (data.errors && data.errors.length) {\n addNewLocalErrorAlert(data.errors[0].reason, this.props.location.pathname);\n } else {\n addNewLocalSuccessAlert(\"Pakend saadetud testimisse.\", this.props.location.pathname);\n this.setState(prevState => {\n return {\n packageDetails: {\n ...prevState.packageDetails,\n status: this.getStatusOptionById(packageStatuses.IN_TESTING_STATUS) || prevState.packageDetails.status,\n }\n }\n });\n }\n }\n\n onPackageTestConfirmSuccess = (packageTest) => {\n //addNewLocalSuccessAlert(\"Pakendi testitulemus kinnitatud.\", this.props.location.pathname);\n this.setState(prevState => {\n return {\n packageDetails: {\n ...prevState.packageDetails,\n status: this.getStatusOptionById(packageStatuses.WAITING_STATUS) || prevState.packageDetails.status,\n }\n }\n });\n }\n\n getStatusOptionById = statusId => {\n if (this.props.packageStatuses) {\n for (const option of this.props.packageStatuses) {\n if (option.id === statusId) {\n return option;\n }\n }\n }\n\n return null;\n }\n}\n\nconst mapStateToProps = state => {\n return {\n eanTypes: state.packages.eanTypes,\n categories: state.packages.categories,\n packageTypes: state.packages.packageTypes,\n packageStatuses: state.packages.packageStatuses,\n packageColors: state.packages.packageColors,\n };\n}\n\nconst mapActionsToProps = {\n\n};\n\nexport default withRouter(connect(mapStateToProps, mapActionsToProps)(withTranslation()(AdminPackageDetails)));\n","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\nimport moment from \"moment\";\n\nimport { Card, CardBody, Row, Col, Button } from \"reactstrap\";\nimport \"./DebtsSearch.scss\";\n\nimport DatePicker from \"react-datepicker\";\nimport \"react-datepicker/dist/react-datepicker.css\";\n\nimport Select from \"components/Form/Select\";\nimport Input from \"components/Form/Input\";\n\nimport {\n adminDebtsFilterUpdate,\n adminDebtsFilterClear,\n} from \"redux/actions/admin/debts\";\n\nimport { fetchDebts } from \"util/admin/Debts\";\nimport { fetchAllClients } from \"util/General\";\nimport { clearLocalAlerts } from \"util/Alerts\";\nimport { YEAR_MONTH_FORMAT_DATE_FN } from \"util/DateTime\";\n\nclass DebtsSearch extends React.Component {\n componentDidMount() {\n fetchAllClients(this.props.allClients);\n }\n\n render() {\n return (\n \n \n \n \n Periood\n \n \n \n \n \n this.props.adminDebtsFilterUpdate(\n \"fromDate\",\n date\n )\n }\n placeholderText=\"Alates\"\n dateFormat={YEAR_MONTH_FORMAT_DATE_FN}\n showMonthYearPicker\n maxDate={\n this.props.filters.toDate\n ? moment(\n this.props.filters.toDate\n ).toDate()\n : new Date()\n }\n />\n \n \n \n this.props.adminDebtsFilterUpdate(\n \"toDate\",\n date\n )\n }\n placeholderText=\"Kuni\"\n dateFormat={YEAR_MONTH_FORMAT_DATE_FN}\n showMonthYearPicker\n minDate={\n this.props.filters.fromDate &&\n moment(this.props.filters.fromDate).toDate()\n }\n maxDate={new Date()}\n />\n \n \n \n \n option.label}\n getOptionValue={(option) => option.value}\n className=\"\"\n onChange={(client) => this.props.adminDebtsFilterUpdate(\"client\", client)}\n />\n \n \n \n \n {\n this.props.adminDebtsFilterUpdate(\"daysOverdueMin\", value);\n }}\n />\n \n \n {\n this.props.adminDebtsFilterUpdate(\"daysOverdueMax\", value);\n }}\n />\n \n\n \n \n \n \n Otsi\n {/* {this.props.debtsListLoading ? : \"Otsi\"} */}\n \n \n \n \n Tühjenda otsing\n \n \n \n \n \n );\n }\n\n onSearch = () => {\n clearLocalAlerts();\n this.getDebtsList();\n };\n\n getDebtsList = () => {\n fetchDebts(this.props.filters, this.props.location.pathname);\n };\n}\n\nconst mapStateToProps = (state) => {\n return {\n allClients: state.general.allClients,\n filters: state.admin.debts.filters,\n debtsListLoadng: state.admin.debts.loading,\n };\n};\n\nconst reduxActions = {\n adminDebtsFilterUpdate,\n adminDebtsFilterClear,\n};\n\nexport default withRouter(connect(mapStateToProps, reduxActions)(DebtsSearch));\n","import axios from \"../../axios\";\nimport store from \"redux/store\";\nimport moment from \"moment\";\n\nimport {\n adminDebtsFetchStart,\n adminDebtsFetchSuccess,\n adminDebtsFetchFail,\n} from \"redux/actions/admin/debts\";\n\nimport { ADMIN_DEBTS } from \"config/Api\";\n\nimport { getServerErrorMessage } from \"util/Errors\";\nimport { clearLocalAlerts, addNewLocalErrorAlert } from \"util/Alerts\";\n\nexport const fetchDebts = (filters, alertGroup) => {\n let { fromDate, toDate, client, daysOverdueMin, daysOverdueMax } = filters;\n fromDate = moment(fromDate).format(\"YYYY-MM-DD\");\n toDate = moment(toDate).endOf(\"month\").format(\"YYYY-MM-DD\");\n\n store.dispatch(adminDebtsFetchStart());\n axios\n .get(ADMIN_DEBTS, {\n params: {\n from_date: fromDate,\n to_date: toDate,\n },\n })\n .then((resp) => {\n let data = resp.data;\n if (client) {\n data = data.filter((debt) => debt.id === client.value);\n }\n if (daysOverdueMin !== \"\") {\n let overdueMinNum = Number(daysOverdueMin);\n data = data.filter((debt) => debt.overdue >= overdueMinNum);\n }\n if (daysOverdueMax !== \"\") {\n let overdueMaxNum = Number(daysOverdueMax);\n data = data.filter((debt) => debt.overdue <= overdueMaxNum);\n }\n\n store.dispatch(adminDebtsFetchSuccess(data));\n })\n .catch((err) => {\n const errorMessage = getServerErrorMessage(err);\n store.dispatch(adminDebtsFetchFail(errorMessage));\n\n if (alertGroup) {\n clearLocalAlerts();\n addNewLocalErrorAlert(\n `Võlgnevuste laadimine ebaõnnestus: ${errorMessage}`,\n alertGroup,\n true\n );\n }\n });\n};\n","import * as actionTypes from 'redux/actions/actionTypes';\n\nexport const adminDebtsFetchStart = () => {\n return {\n type: actionTypes.ADMIN_DEBTS_FETCH_START\n }\n};\n\nexport const adminDebtsFetchSuccess = (debts) => {\n return {\n type: actionTypes.ADMIN_DEBTS_FETCH_SUCCESS,\n debts\n }\n};\n\nexport const adminDebtsFetchFail = (error) => {\n return {\n type: actionTypes.ADMIN_DEBTS_FETCH_FAIL,\n error,\n }\n};\n\nexport const adminDebtsFilterUpdate = (key, value) => {\n return {\n type: actionTypes.ADMIN_DEBTS_FILTER_UPDATE,\n key: key,\n value: value,\n }\n}\n\nexport const adminDebtsFilterClear = () => {\n return {\n type: actionTypes.ADMIN_DEBTS_FILTER_CLEAR,\n }\n}","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\n\nimport { Card, CardBody } from \"reactstrap\";\n\nimport BootstrapTable from \"react-bootstrap-table-next\";\nimport \"react-bootstrap-table-next/dist/react-bootstrap-table2.min.css\";\n\nimport WrappedLoader from \"components/Loader/WrappedLoader\";\n\nimport { getAdminDebtsClientInvoicesUrl } from \"config/urls\";\n\nimport \"./DebtsTable.scss\";\n\n//import { fetchDebts } from \"util/admin/Debts\";\nimport { currencyFormatter } from \"util/General\";\nimport moment from \"moment\";\nimport { DATE_FORMAT } from \"util/DateTime\";\n\nconst NoDataIndication = (props) => {\n let content = \"Valitud ajavahemikus võlad puuduvad.\";\n if (props.loading) {\n content = ;\n }\n return
{content}
;\n};\n\nclass DebtsTable extends React.Component {\n static propTypes = {\n debts: PropTypes.array,\n };\n\n componentDidMount() {\n if (this.props.debts && this.props.debts.length) {\n return;\n } else {\n /*\n fetchDebts(this.props.filters);\n */\n }\n\n }\n\n onRowClick = (e, row) => {\n const url = getAdminDebtsClientInvoicesUrl(row.id);\n this.props.history.push(url);\n };\n\n render() {\n if (this.props.debts === null) {\n return null;\n }\n\n if (this.props.loading) {\n return ;\n }\n\n return (\n \n \n {this.renderTable()}\n \n \n );\n }\n\n renderTable() {\n const columns = [\n {\n dataField: \"name\",\n text: \"Klient\",\n sort: true,\n classes: \"frozen-first-column semibold-14\",\n headerClasses: \"frozen-first-column\",\n },\n {\n dataField: \"unsubmitted_sales_reports\",\n text: \"Esitamata müügiaruanded\",\n sort: true,\n },\n {\n dataField: \"due_date\",\n text: \"Tasumise tähtaeg\",\n formatter: due_date => {\n const dueMoment = moment(due_date, \"DD-MM-YYYY\");\n return dueMoment.isValid() ? dueMoment.format(DATE_FORMAT) : due_date;\n },\n sortValue: due_date => moment(due_date, \"DD-MM-YYYY\").format(\"YYYY-MM-DD\"),\n sort: true,\n },\n {\n dataField: \"overdue\",\n text: \"Tähtaeg ületatud\",\n formatter: (daysOverdue) => `${daysOverdue} päeva`,\n sort: true,\n },\n {\n dataField: \"debt\",\n text: \"Võlgnevus\",\n formatter: (amount) => currencyFormatter.format(amount),\n sort: true,\n sortValue: (cell, row) => Number(cell),\n align: \"right\",\n headerAlign: \"right\",\n },\n ];\n\n const rowClasses = (row, rowIndex) => {\n return \"pointer\";\n };\n\n const rowEvents = {\n onClick: (e, row, rowIndex) => {\n this.onRowClick(e, row);\n },\n };\n\n return (\n \n }\n />\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n user: state.auth.user,\n debts: state.admin.debts.debtsList,\n filters: state.admin.debts.filters,\n loading: state.admin.debts.loading,\n };\n};\n\nexport default withRouter(connect(mapStateToProps)(DebtsTable));\n","import React from \"react\";\n\nimport DebtsSearch from \"components/Admin/Debts/Search/DebtsSearch\";\nimport DebtsTable from \"components/Admin/Debts/Table/DebtsTable\";\n\nclass AdminDebtsView extends React.Component {\n render() {\n return (\n <>\n \n \n \n );\n }\n}\n\nexport default AdminDebtsView;\n","import axios from \"../../axios\";\n\nimport {\n ADMIN_CLIENT,\n ADMIN_CLIENT_CONTRACTS,\n ADMIN_CONTRACT_UPLOAD,\n TERMINATE_CONTRACT,\n} from \"config/Api\";\n\nexport const fetchClient = (clientId) => {\n const endpoint = ADMIN_CLIENT.replace(\"\", clientId);\n return axios\n .get(endpoint)\n .then((resp) => {\n return resp.data;\n })\n .catch((err) => {\n throw err;\n });\n};\n\nexport const fetchContracts = (clientId) => {\n const endpoint = ADMIN_CLIENT_CONTRACTS.replace(\"\", clientId);\n return axios\n .get(endpoint)\n .then((resp) => {\n return resp.data;\n })\n .catch((err) => {\n throw err;\n });\n};\n\nexport const uploadContract = (contractId, contract) => {\n const endpoint = ADMIN_CONTRACT_UPLOAD.replace(\"\", contractId);\n\n let formdata = new FormData();\n formdata.append(\"file\", contract.file);\n\n return axios\n .post(endpoint, formdata)\n .then((resp) => {\n return resp.data;\n })\n .catch((err) => {\n throw err;\n });\n};\n\nexport const terminateContract = (contractId) => {\n const endpoint = TERMINATE_CONTRACT.replace(\"\", contractId);\n return axios\n .put(endpoint)\n .then((resp) => {\n return resp.data;\n })\n .catch((err) => {\n throw err;\n });\n};\n","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\nimport PropTypes from \"prop-types\";\nimport moment from \"moment\";\nimport LeftText from \"components/Misc/LeftText\";\nimport { Button, Card, CardBody, CardHeader, Row, Col } from \"reactstrap\";\n\nimport {\n clearLocalAlerts,\n addNewLocalErrorAlert,\n addNewLocalInfoAlert,\n} from \"util/Alerts\";\n\nimport urls from \"config/urls\";\n\nimport {\n fetchAdminInvoices,\n sendInvoiceReminder,\n sendInvoicesSummary,\n} from \"util/admin/Invoices\";\n\n// css\nimport \"./Table.scss\";\n\n// datatable\nimport BootstrapTable from \"react-bootstrap-table-next\";\nimport \"react-bootstrap-table-next/dist/react-bootstrap-table2.min.css\";\n\n// cells\nimport DateCell from \"components/Table/Cell/DateCell\";\nimport StatusCell from \"components/Table/Cell/Status/StatusCell\";\nimport DocumentCell from \"components/Table/Cell/DocumentCell\";\n\nimport WrappedLoader from \"components/Loader/WrappedLoader\";\n\nimport { getSaleStatusType } from \"components/Invoices/Table/Options\";\nimport { fetchClient } from \"util/admin/General\";\nimport { currencyFormatter } from \"util/General\";\n\nimport {\n updateNavigationHeaderSuffix,\n clearNavigationHeaderSuffix,\n} from \"util/Navigation\";\nimport { getServerErrorMessage } from \"util/Errors\";\n\nclass InvoicesTable extends React.Component {\n static propTypes = {\n invoices: PropTypes.array.isRequired,\n activeAlertGroups: PropTypes.array.isRequired,\n };\n\n state = {\n invoices: [],\n invoicesLoading: true,\n clientId: this.props.match.params.id,\n balance: null,\n };\n\n componentDidMount() {\n clearLocalAlerts();\n fetchClient(this.state.clientId).then((client) => {\n updateNavigationHeaderSuffix(client.name);\n });\n fetchAdminInvoices(this.state.clientId).then((invoices) => {\n this.setState({\n invoices: invoices.invoices,\n balance: invoices.invoices_balance_nav,\n invoicesLoading: false,\n });\n });\n }\n\n componentWillUnmount() {\n clearNavigationHeaderSuffix();\n }\n\n render() {\n return (\n <>\n \n \n \n this.props.history.push(urls.EPP_DEBTS)\n }\n text=\"Tagasi\"\n />\n \n \n \n \n \n \n Arvete saldo\n \n \n \n \n \n {this.state.balance === null\n ? \"-\"\n : currencyFormatter.format(this.state.balance)}\n \n \n \n \n Saada koondarve\n \n \n \n \n \n \n \n {this.renderTable()}\n \n \n \n );\n }\n\n renderTable() {\n if (this.state.invoicesLoading) {\n return ;\n }\n\n const invoicesEndpointDateFormat = \"DD-MM-YYYY\";\n\n const ButtonFormatter = (cell, row) => {\n if (row.status === \"Tasutud\") {\n return (\n \n );\n } else {\n return (\n this.onClickSendInvoiceReminder(row.id)}\n className=\"status-btn\"\n >\n Saada uuesti\n \n );\n }\n };\n\n const columns = [\n {\n dataField: \"number\",\n text: \"Arve number\",\n sort: true,\n formatter: (value) => (\n \n ),\n sortValue: (value) => value.name || \"\",\n },\n {\n dataField: \"date\",\n text: \"Arve kuupäev\",\n sort: true,\n formatter: (value) => (\n \n ),\n sortValue: (value) => moment(value, invoicesEndpointDateFormat),\n },\n {\n dataField: \"status\",\n text: \"Staatus\",\n sort: true,\n headerClasses: \"status-col-header\",\n classes: \"status-col\",\n\n formatter: (value) => (\n \n ),\n },\n {\n dataField: \"due_date\",\n text: \"Tasumise tähtaeg\",\n sort: true,\n headerStyle: (column, colIndex) => {\n return {\n /*width: '150px'*/\n };\n },\n formatter: (value) => (\n \n ),\n sortValue: (value) => moment(value, invoicesEndpointDateFormat),\n },\n {\n dataField: \"amount\",\n text: \"Arve summa\",\n classes: \"regular-14\",\n sort: true,\n sortValue: (cell, row) => Number(cell),\n headerStyle: (column, colIndex) => {\n return {\n /*width: '150px'*/\n };\n },\n align: \"right\",\n headerAlign: \"right\",\n formatter: (value) => currencyFormatter.format(value),\n },\n {\n dataField: \"amount_paid\",\n text: \"Tasutud\",\n classes: \"regular-14\",\n sort: true,\n sortValue: (cell, row) => Number(cell),\n headerStyle: (column, colIndex) => {\n return {\n /*width: '150px'*/\n };\n },\n align: \"right\",\n headerAlign: \"right\",\n formatter: (value) => currencyFormatter.format(value),\n },\n {\n dataField: \"\",\n text: \"Toiming\",\n align: \"center\",\n headerAlign: \"center\",\n headerStyle: (column, colIndex) => {\n return {\n /*width: '200px'*/\n };\n },\n formatter: ButtonFormatter,\n },\n ];\n\n return (\n \n }\n />\n );\n }\n\n static NoDataIndication(props) {\n let content = \"Ei leitud ühtegi arvet.\";\n if (props.loading) {\n content = ;\n }\n\n return
{content}
;\n }\n\n onClickSendInvoiceReminder = (invoiceId) => {\n clearLocalAlerts();\n const alertUrl = this.props.location.pathname;\n sendInvoiceReminder(invoiceId)\n .then(() => {\n addNewLocalInfoAlert(\n \"Arve meeldetuletus edukalt edastatud!\",\n alertUrl,\n false\n );\n })\n .catch((err) => {\n addNewLocalErrorAlert(\n `Arve meeldetuletuse saatmisel esines viga: ${getServerErrorMessage(err)}`,\n alertUrl,\n false\n );\n });\n };\n\n onClickSendInvoicesSummary = () => {\n clearLocalAlerts();\n const alertUrl = this.props.location.pathname;\n sendInvoicesSummary(this.state.clientId)\n .then(() => {\n addNewLocalInfoAlert(\n \"Koondarve meeldetuletus edukalt edastatud!\",\n alertUrl,\n false\n );\n })\n .catch((err) => {\n addNewLocalErrorAlert(\n `Koondarve saatmisel esines viga: ${getServerErrorMessage(err)}`,\n alertUrl,\n false\n );\n });\n };\n}\n\nconst mapStateToProps = (state) => {\n return {\n invoices: state.invoices.invoices,\n invoicesLoading: state.invoices.invoicesLoading,\n balance: state.invoices.balance,\n activeAlertGroups: state.alerts.activeGroups,\n };\n};\n\nexport default withRouter(connect(mapStateToProps)(InvoicesTable));\n","import axios from \"../../axios\";\nimport { ADMIN_INVOICES, ADMIN_INVOICE_REMINDER, ADMIN_INVOICES_SUMMARY } from \"config/Api\";\n\nexport const fetchAdminInvoices = (clientId) => {\n const endpoint = ADMIN_INVOICES.replace(\"\", clientId);\n return axios\n .get(endpoint)\n .then((resp) => {\n return resp.data;\n })\n .catch((err) => {\n throw err;\n });\n};\n\nexport const sendInvoiceReminder = (invoiceId) => {\n const endpoint = ADMIN_INVOICE_REMINDER.replace(\"\", invoiceId);\n return axios\n .get(endpoint)\n .then((resp) => {\n return resp.data;\n })\n .catch((err) => {\n throw err;\n });\n};\n\nexport const sendInvoicesSummary = (clientId) => {\n const endpoint = ADMIN_INVOICES_SUMMARY.replace(\"\", clientId);\n return axios\n .get(endpoint)\n .then((resp) => {\n return resp.data;\n })\n .catch((err) => {\n throw err;\n });\n};\n\n\n","import React from \"react\";\n\nimport Invoices from \"components/Admin/Debts/Invoices/Invoices\";\n\nclass AdminInvoicesView extends React.Component {\n render() {\n return (\n \n );\n }\n}\n\nexport default AdminInvoicesView;","import React from 'react';\n\nimport {Route} from \"react-router-dom\";\nimport {Switch} from \"react-router\";\n\nclass AdminUsersView extends React.Component {\n render() {\n function RouteWithSubRoutes(route) {\n return (\n (\n // pass the sub-routes down to keep nesting\n \n )}\n />\n );\n }\n\n return (\n <>\n \n {this.props.routes.map((route, i) => (\n \n ))}\n \n\n \n );\n }\n}\n\nexport default AdminUsersView;","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\n\nimport moment from \"moment\";\n\nimport BootstrapTable from \"react-bootstrap-table-next\";\nimport paginationFactory, {\n PaginationProvider,\n} from \"react-bootstrap-table2-paginator\";\nimport CustomPagination from \"components/Table/Pagination/CustomPagination\";\n\nimport \"react-bootstrap-table-next/dist/react-bootstrap-table2.min.css\";\n\nimport { NavLink } from \"react-router-dom\";\n\nimport { Card, CardBody, CardHeader, Row, Col, Button } from \"reactstrap\";\n\nimport Select from \"components/Form/Select\";\n\nimport WrappedLoader from \"components/Loader/WrappedLoader\";\nimport LoadingAnimation from \"components/Loader/WrappedPulseLoader\";\nimport AddUserModal from \"components/Profile/Users/AddUserModal/AddUserModal\";\nimport UserDetailsModal from \"components/Profile/Users/UserDetailsModal/UserDetailsModal\";\n\nimport { fetchUsers, removeUser } from \"util/Profile\";\nimport { adminfetchAllClients } from \"util/admin/Users\";\n\nimport { adminClientsPaginationUpdate, adminClientsFilterUpdate, adminClientsSortingUpdate } from \"redux/actions/admin/users\";\n\nimport {\n clearLocalAlerts,\n addNewLocalInfoAlert,\n addNewLocalErrorAlert,\n} from \"util/Alerts\";\nimport { isUserClientAdmin, isPartnerMode } from \"util/Access\";\n\nimport StatusCell from \"components/Table/Cell/Status/StatusCell\";\nimport urls from \"config/urls\";\nimport { getContractStatusType } from \"components/Admin/Contract/helpers/Options\";\nimport { DATE_FORMAT } from \"util/DateTime\";\n\nconst NoDataIndication = (props) => {\n let content = \"Ei leitud sobivaid kliente.\";\n if (props.clientsLoading) {\n content = ;\n }\n return
{content}
;\n};\n\nclass Clients extends React.Component {\n state = {\n isAddUserModalOpen: false,\n isUserDetailsModalOpen: false,\n selectedUser: {},\n companyFilter: \"\",\n contractStatusFilter: \"\",\n contractStatusOptions: [\n {\n id: \"1\",\n label: \"KINNITAMISEL\",\n },\n {\n id: \"2\",\n label: \"KEHTIV\",\n },\n {\n id: \"3\",\n label: \"KEHTETU\",\n },\n ],\n };\n\n componentDidMount() {\n adminfetchAllClients(true);\n }\n\n onRowClick = (e, row) => {\n const url = urls.EPP_USERS_CLIENTS_CLIENT_PROFILE.replace(\n \":id\",\n row.id\n );\n this.props.history.push(url);\n };\n\n onPaginationChange = (page, sizePerPage) => {\n const currentPagination = this.props.pagination;\n const newPagination = { ...currentPagination, page, sizePerPage };\n this.props.adminClientsPaginationUpdate(newPagination);\n };\n\n render() {\n return (\n <>\n
\n \n Kliendid\n \n \n Partnerid\n \n \n EPP\n \n
\n \n \n \n \n Otsing\n \n \n option.name}\n getOptionValue={(option) => option.id}\n className=\"mb-2\"\n onChange={(client) =>\n this.props.adminClientsFilterUpdate(\"client\", client)\n }\n isLoading={this.props.clientsLoading}\n loadingMessage={() => \"Laeb...\"}\n />\n \n \n option.label}\n getOptionValue={(option) => option.id}\n placeholder=\"Lepingu staatus\"\n onChange={(status) =>\n this.props.adminClientsFilterUpdate(\"contractStatus\", status)\n }\n />\n \n \n {\n e.preventDefault();\n adminfetchAllClients(false);\n }}\n disabled={this.props.clientsLoading}\n style={{ minWidth: \"100px\" }}\n >\n {this.props.clientsLoading ? : \"Uuenda\"}\n \n \n \n \n {this.renderTable()}\n \n \n \n \n );\n }\n\n renderTable() {\n if (this.props.clientsLoading) {\n return ;\n }\n let filteredClients = this.props.filteredClients;\n\n if (!filteredClients) {\n return null;\n }\n\n const columns = [\n {\n dataField: \"name\",\n text: \"Klient\",\n sort: true,\n onSort: this.onSort,\n classes: \"semibold-14\",\n },\n {\n dataField: \"users\",\n text: \"Kasutajad\",\n sort: true,\n onSort: this.onSort,\n },\n {\n dataField: \"registered_at\",\n text: \"Registreeritud\",\n formatter: (date) => moment(date).format(DATE_FORMAT),\n sort: true,\n onSort: this.onSort,\n },\n {\n dataField: \"contract_status\",\n text: \"Lepingu staatus\",\n sort: true,\n onSort: this.onSort,\n sortValue: (cell, row) => cell.label,\n formatter: (obj) => (\n \n ),\n },\n {\n dataField: \"signed_at\",\n text: \"Leping allkirjastatud\",\n formatter: (date) =>\n date ? moment(date).format(DATE_FORMAT) : \"\",\n sort: true,\n onSort: this.onSort,\n },\n // {\n // dataField: \"\",\n // text: \"\",\n // align: \"right\",\n // formatter: (field, row) => dropdownFormatter(row),\n // },\n ];\n\n const rowClasses = (row, rowIndex) => {\n return \"pointer\";\n };\n\n const rowEvents = {\n onClick: (e, row, rowIndex) => {\n this.onRowClick(e, row);\n },\n };\n\n const paginationOptions = {\n custom: true,\n page: this.props.pagination.page,\n sizePerPage:\n this.props.pagination.sizePerPage ||\n this.props.pagination.dataSize,\n totalSize: this.props.pagination.dataSize,\n sizePerPageList: this.props.pagination.sizePerPageList,\n onSizePerPageChange: (sizePerPage, page) => {\n this.onPaginationChange(page, sizePerPage);\n },\n onPageChange: (page, sizePerPage) => {\n this.onPaginationChange(page, sizePerPage);\n },\n };\n\n const defaultSorted = [\n this.props.sorting,\n ];\n\n return (\n \n {({ paginationProps, paginationTableProps }) => (\n <>\n \n \n \n }\n />\n \n \n \n \n \n \n \n \n )}\n \n );\n }\n\n onSort = (dataField, order) => {\n this.props.adminClientsSortingUpdate({ dataField, order });\n }\n\n showAddUserButton = () => {\n return isUserClientAdmin() || isPartnerMode();\n };\n\n showRemoveUserButton = () => {\n return isUserClientAdmin() || isPartnerMode();\n };\n\n toggleAddUserModal = () => {\n this.setState((prevState) => {\n return {\n isAddUserModalOpen: !prevState.isAddUserModalOpen,\n };\n });\n };\n\n toggleUserDetailsModal = () => {\n this.setState((prevState) => {\n return {\n isUserDetailsModalOpen: !prevState.isUserDetailsModalOpen,\n };\n });\n };\n\n onOpenUserDetails = (user) => {\n clearLocalAlerts();\n this.setState({\n isUserDetailsModalOpen: true,\n selectedUser: user,\n });\n };\n\n onRemoveUser = (user) => {\n clearLocalAlerts();\n removeUser(user.user_id)\n .then((resp) => {\n fetchUsers();\n addNewLocalInfoAlert(\n \"Kasutaja eemaldatud.\",\n this.props.location.pathname\n );\n })\n .catch((error) => {\n addNewLocalErrorAlert(\n error.message,\n this.props.location.pathname\n );\n });\n };\n}\n\nconst mapStateToProps = (state) => {\n return {\n clients: state.admin.users.clients,\n clientsLoading: state.admin.users.loading,\n filteredClients: state.admin.users.clientsFiltered,\n pagination: state.admin.users.clientsFilteredPagination,\n filters: state.admin.users.clientsFilters,\n sorting: state.admin.users.clientsSorting,\n };\n};\n\nconst mapActionsToProps = {\n adminClientsPaginationUpdate, adminClientsFilterUpdate, adminClientsSortingUpdate\n};\n\nexport default withRouter(connect(mapStateToProps, mapActionsToProps)(Clients));\n","import React from \"react\";\nimport { fetchClient } from \"util/admin/General\";\nimport {\n updateNavigationHeaderSuffix,\n clearNavigationHeaderSuffix,\n} from \"util/Navigation\";\n\nimport LeftText from \"components/Misc/LeftText\";\nimport { Row, Col } from \"reactstrap\";\n\nimport { NavLink, Route } from \"react-router-dom\";\nimport { Switch } from \"react-router\";\n\nimport urls, {\n getAdminClientProfileUrl,\n getAdminClientUsersUrl,\n} from \"config/urls\";\n\nclass Client extends React.Component {\n state = {\n clientId: this.props.match.params.id,\n };\n\n componentDidMount() {\n fetchClient(this.state.clientId).then((client) => {\n updateNavigationHeaderSuffix(client.name);\n });\n }\n\n componentWillUnmount() {\n clearNavigationHeaderSuffix();\n }\n\n render() {\n function RouteWithSubRoutes(route) {\n return (\n (\n // pass the sub-routes down to keep nesting\n \n )}\n />\n );\n }\n\n return (\n <>\n \n \n \n this.props.history.push(urls.EPP_USERS_CLIENTS)\n }\n text=\"Tagasi\"\n />\n \n \n
\n \n Profiil\n \n \n Kasutajad\n \n
\n\n \n {this.props.routes.map((route, i) => (\n \n ))}\n \n \n );\n }\n}\n\nexport default Client;\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\nimport PropTypes from \"prop-types\";\n\nimport { Row, Col } from \"reactstrap\";\nimport { companyProfileUpdate } from \"redux/actions/profile\";\nimport {\n isConnectedToClientWithPendingOrActiveContract,\n isPartnerMode,\n isAdminMode,\n} from \"util/Access\";\n// Custom inputs\nimport Input from \"../../../../Form/Input\";\nimport Select from \"../../../../Form/Select\";\n\nimport CenteredRowCol from \"components/Misc/CenteredRowCol\";\nimport WrapperLoader from \"components/Loader/WrappedLoader\";\nimport { fetchClient } from \"util/admin/General\";\n\nclass CompanyProfileFormAdmin extends Component {\n static propTypes = {\n alertGroup: PropTypes.string,\n contractMode: PropTypes.bool,\n invalidFields: PropTypes.array.isRequired,\n user: PropTypes.object,\n isDisabled: PropTypes.bool,\n };\n\n static defaultProps = {\n contractMode: false,\n invalidFields: [],\n };\n\n state = {\n companies: [],\n disableBasisOption: true,\n clientId: this.props.match.params.id,\n client: {\n name: \"\",\n address: {\n full_address: \"\",\n city: \"\",\n zip_code: \"\",\n },\n },\n };\n\n componentDidMount() {\n fetchClient(this.state.clientId).then((client) => {\n this.setState({\n client: client,\n });\n });\n }\n\n // handleSelectInputChange = (name) => {\n // if (name.length > 2) {\n // fetchCompanies(name).then((companies) => {\n // this.setState({ companies: companies });\n // });\n // }\n // };\n\n getAlertGroupOrDefault = () => {\n return this.props.alertGroup || this.props.location.pathname;\n };\n\n hasAllProperties = (object) => {\n return Object.values(object).every(\n (x) => x !== \"\" && x !== undefined && x !== null\n );\n };\n\n // handleInputChange = (name) => async (value) => {\n // await this.props.companyProfileUpdate(name, value);\n\n // if (\n // !this.props.contractMode &&\n // this.hasAllProperties(this.props.companyProfile)\n // ) {\n // clearLocalAlerts();\n // updateCompanyProfile(this.props.companyProfile).catch((err) => {\n // addNewLocalErrorAlert(\n // getServerErrorMessage(err),\n // this.getAlertGroupOrDefault()\n // );\n // });\n // }\n // };\n\n isFieldsDisabled = () => {\n if (this.props.contractMode) {\n return false;\n }\n return (\n !isConnectedToClientWithPendingOrActiveContract() ||\n isPartnerMode() ||\n isAdminMode()\n );\n };\n\n isInvalid = (field) => {\n return this.props.invalidFields.includes(field);\n };\n\n renderSelectBasis() {\n const isNotContractMode = !this.props.contractMode;\n\n return (\n option.label}\n getOptionValue={(option) => option.value}\n placeholder=\"Allkirjaõiguslikkuse alus\"\n name=\"basis\"\n value={this.state.client.latest_basis}\n // onChange={this.handleBasisChange}\n className=\"select\"\n required={this.props.contractMode}\n invalid={this.isInvalid(\"basis\")}\n isOptionDisabled={(option) =>\n option.value === 1 && this.state.disableBasisOption === true\n }\n />\n );\n }\n\n render() {\n if (this.props.companyProfileLoading) {\n return (\n \n \n \n );\n }\n\n const isDisabled = this.isFieldsDisabled();\n const isNotPartnerMode = !isPartnerMode();\n const isNotContractMode = !this.props.contractMode;\n return (\n \n \n option.name}\n getOptionValue={(option) => option.name}\n // onChange={this.handleCompanyChanged}\n // onInputChange={this.handleSelectInputChange}\n className=\"select\"\n noOptionsMessage={() =>\n \"Insert at least three characters\"\n }\n required={this.props.contractMode}\n invalid={this.isInvalid(\"name\")}\n />\n\n \n {isNotPartnerMode && (\n \n )}\n {this.renderSelectBasis()}\n \n \n \n {isNotPartnerMode && (\n <>\n \n \n \n \n \n )}\n \n \n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n // companyProfile: state.profile.companyProfile,\n // companyProfileLoading: state.profile.companyProfileLoading,\n // clients: state.auth.user ? state.auth.user.clients : [],\n // profile: state.profile,\n // user: state.auth.user,\n };\n};\n\nexport default withRouter(\n connect(mapStateToProps, { companyProfileUpdate })(CompanyProfileFormAdmin)\n);\n","import React from \"react\";\nimport axios from \"../../../../../axios\";\nimport PropTypes from \"prop-types\";\nimport { withRouter } from \"react-router-dom\";\n\nimport { Button } from \"reactstrap\";\nimport ConfirmationModal from \"components/Form/Modals/ConfirmationModal\";\nimport { getServerErrorMessage } from \"util/Errors\";\n\nimport {\n clearLocalAlerts,\n addNewLocalSuccessAlert,\n addNewLocalErrorAlert,\n} from \"util/Alerts\";\n\nimport {\n ADMIN_CLIENT_PACKAGES_SYNCHRONIZE,\n} from \"config/Api\";\n\n\nclass SynchronizeButton extends React.Component {\n static propTypes = {\n clientId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n }\n\n static defaultProps = {\n };\n\n state = { synchronizeModalOpen: false, synchronizeIsLoading: false };\n static alertGroup = \"SynchronizeButton\";\n\n render() {\n return (\n <>\n \n Sünkroniseeri pakendid\n \n\n {this.renderSynchronizeModal()}\n \n );\n }\n\n renderSynchronizeModal() {\n return (\n \n

Protsess jookseb taustal ja võib võtta kuni paar minutit. Protsessi lõppemisel saadetakse teile teavitusks e-mail.

\n

Olete kindel, et tahate sünkroniseerida?

\n \n );\n }\n\n onOpenSynchronizeModal = () => {\n this.setState({\n synchronizeModalOpen: true,\n });\n };\n\n onCancelSynchronize = () => {\n this.setState({\n synchronizeModalOpen: false,\n });\n clearLocalAlerts();\n };\n\n onSynchronize = () => {\n clearLocalAlerts();\n\n this.setState({\n synchronizeIsLoading: true,\n });\n\n const endpoint = ADMIN_CLIENT_PACKAGES_SYNCHRONIZE.replace(\"\", this.props.clientId);\n const data = {\n migrate_all: true // Always true, because migrating recent does not work quite as expected\n };\n return axios\n .post(endpoint, data)\n .then((resp) => {\n addNewLocalSuccessAlert(\n resp.data,\n this.props.location.pathname\n );\n this.setState({\n synchronizeModalOpen: false,\n });\n })\n .catch((error) => {\n const message = `Sünkroniseerimine ebaõnnestus: ${getServerErrorMessage(error)}`;\n addNewLocalErrorAlert(message, SynchronizeButton.alertGroup, false);\n })\n .finally(() => {\n this.setState({\n synchronizeIsLoading: false,\n });\n });\n };\n}\n\nexport default withRouter(SynchronizeButton);\n","import React, { Component } from \"react\";\nimport { withRouter } from \"react-router\";\nimport { Button, Modal, ModalHeader, ModalBody, Col } from \"reactstrap\";\nimport \"./ContractModal.scss\";\nimport { connect } from \"react-redux\";\nimport { Row } from \"react-bootstrap\";\nimport urls from \"config/urls\";\nimport CheckboxButton from \"components/Form/CheckboxButton/CheckboxButton\";\n\nimport {\n signAdminMobileId,\n digitalSignStatus,\n SIGNING_ALERT_GROUP,\n signAdminSmartId,\n authTypes,\n} from \"util/Auth\";\nimport { getServerErrorMessage, getIdCardErrorMessage } from \"util/Errors\";\nimport {\n addNewLocalErrorAlert,\n addNewLocalSuccessAlert,\n addNewLocalInfoAlert,\n clearLocalAlerts,\n clearAllAlerts,\n} from \"util/Alerts\";\nimport { adminfetchAllClients } from \"util/admin/Users\";\n\nimport Alerts from \"components/Alerts/Alerts\";\nimport Dokobit from \"util/dokobit/Dokobit\";\n\nfunction sleep(ms) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nclass ContractModal extends Component {\n state = {\n modal: this.props.modalOpen,\n selectedAuth: null,\n isSigning: false,\n contractId: \"\",\n isMobileIdDisabled: true,\n isSmartIdDisabled: true,\n };\n\n componentDidMount() {\n if (this.props.authType === authTypes.MID) {\n this.setState({\n selectedAuth: \"1\",\n isMobileIdDisabled: false,\n });\n }\n else if (this.props.authType === authTypes.SMART) {\n this.setState({\n selectedAuth: \"2\",\n isSmartIdDisabled: false,\n });\n }\n else {\n this.setState({\n selectedAuth: \"3\",\n });\n }\n }\n\n dokobit = new Dokobit();\n\n signContract = () => {\n clearLocalAlerts();\n\n if (!this.state.selectedAuth) {\n addNewLocalErrorAlert(\n \"Allkirjastamismeetod on valimata!\",\n SIGNING_ALERT_GROUP,\n true\n );\n return;\n }\n\n if (this.state.selectedAuth === \"1\") {\n this.signWithMid();\n } else if (this.state.selectedAuth === \"2\") {\n this.signWithSmart();\n } else if (this.state.selectedAuth === \"3\") {\n this.signWithIdCard();\n }\n };\n\n signWithMid = () => {\n this.setIsSigning(true);\n clearLocalAlerts();\n\n const mobileNumber = this.props.user.phone;\n const personalCode = this.props.user.personal_code;\n const cert = this.props.user.cert;\n\n signAdminMobileId(\n mobileNumber,\n personalCode,\n cert,\n this.props.contractId\n )\n .then(async (data) => {\n clearLocalAlerts();\n if (data.success === true) {\n addNewLocalInfoAlert(\n `Kontrollkood ${data.control_code} saadeti numbrile ${mobileNumber}. Veendu, et telefonile ilmuv kontrollkood ühtib brauseris nähtavaga.`,\n SIGNING_ALERT_GROUP\n );\n this.checkSignStatus(\n data.token,\n authTypes.MID,\n \"-\",\n this.props.contractId\n );\n } else {\n addNewLocalErrorAlert(\n \"Mobiil-IDga allkirjastamine ebaõnnestus!\",\n SIGNING_ALERT_GROUP,\n true\n );\n this.setIsSigning(false);\n }\n })\n .catch((err) => {\n clearLocalAlerts();\n addNewLocalErrorAlert(\n \"Mobiil-IDga allkirjastamisel ilmnes viga: \" +\n getServerErrorMessage(err),\n SIGNING_ALERT_GROUP,\n true\n );\n this.setIsSigning(false);\n });\n };\n\n signWithSmart = () => {\n this.setIsSigning(true);\n clearLocalAlerts();\n\n const personalCode = this.props.user.personal_code;\n const cert = this.props.user.cert;\n signAdminSmartId(personalCode, cert, this.props.contractId)\n .then(async (data) => {\n clearLocalAlerts();\n if (data.success === true) {\n addNewLocalInfoAlert(\n `Kontrollkood ${data.control_code} saadeti teie telefoni. Veendu, et telefonile ilmuv kontrollkood ühtib brauseris nähtavaga.`,\n SIGNING_ALERT_GROUP\n );\n this.checkSignStatus(\n data.token,\n authTypes.SMART,\n \"-\",\n this.props.contractId\n );\n } else {\n addNewLocalErrorAlert(\n \"Smart-IDga allkirjastamine ebaõnnestus!\",\n SIGNING_ALERT_GROUP,\n true\n );\n this.setIsSigning(false);\n }\n })\n .catch((err) => {\n this.setIsSigning(false);\n clearLocalAlerts();\n addNewLocalErrorAlert(\n \"Smart-IDga allkirjastamisel ilmnes viga!\",\n SIGNING_ALERT_GROUP,\n true\n );\n });\n };\n\n signWithIdCard = () => {\n this.setIsSigning(true);\n const personalCode = this.props.user.personal_code;\n\n const resolve = (data) => {\n this.setIsSigning(false);\n\n clearLocalAlerts();\n if (data.success === true) {\n addNewLocalSuccessAlert(\n \"Leping edukalt allkirjastatud!\",\n urls.EPP_USERS_CLIENTS\n );\n this.onSignSuccess();\n } else {\n addNewLocalErrorAlert(\n \"Allkirja kinnitamine ebaõnnestus!\",\n SIGNING_ALERT_GROUP,\n true\n );\n }\n };\n\n const reject = (error) => {\n this.setIsSigning(false);\n clearLocalAlerts();\n const errorMessage = getIdCardErrorMessage(\n error,\n \"Allkirjastamine ebaõnnestus!\"\n );\n addNewLocalErrorAlert(errorMessage, SIGNING_ALERT_GROUP, true);\n };\n\n addNewLocalInfoAlert(\n \"Toimub ID-kaardiga allkirjastamine. Kontrollige oma tegumiriba, kui sertifikaadi valimine ei kerki esile.\",\n SIGNING_ALERT_GROUP,\n true\n );\n this.dokobit.signAdminWithIdCard(\n personalCode,\n resolve,\n reject,\n this.props.contractId\n );\n };\n\n checkSignStatus = async (token, mode, identifier, contractId) => {\n await sleep(1000);\n\n digitalSignStatus(token, mode, identifier, contractId)\n .then((data) => {\n if (data.success === true) {\n clearLocalAlerts();\n //this.setIsSigning(false);\n this.onSignSuccess();\n } else if (data.code === \"waiting\") {\n this.checkSignStatus(token, mode, identifier, contractId);\n } else if (data.code === \"error\") {\n clearLocalAlerts();\n this.setIsSigning(false);\n addNewLocalErrorAlert(\n \"Allkirjastamine ebaõnnestus!\",\n SIGNING_ALERT_GROUP,\n true\n );\n }\n })\n .catch((error) => {\n clearLocalAlerts();\n this.setIsSigning(false);\n addNewLocalErrorAlert(\n \"Allkirjastamisel ilmnes viga!\",\n SIGNING_ALERT_GROUP\n );\n });\n };\n\n setIsSigning = (value) => {\n this.setState({ isSigning: value });\n };\n\n signMID = () => {\n this.setState({ selectedAuth: \"1\" });\n };\n\n onSignSuccess = () => {\n clearAllAlerts();\n const clientDetail = urls.EPP_USERS_CLIENTS_CLIENT_PROFILE.replace(\n \":id\",\n this.props.clientId\n );\n addNewLocalSuccessAlert(\"Leping edukalt allkirjastatud!\", clientDetail);\n adminfetchAllClients(false).catch(() => { });\n this.props.history.push(clientDetail, { contractSigned: true });\n };\n\n changeLoginMode = (authOption) => {\n this.setState({ selectedAuth: authOption });\n };\n\n isSubmitDisabled = () => {\n return this.state\n .isSigning /* || !this.state.contract || !this.state.contractUrl || !this.state.acceptContractTerms || !this.state.selectedAuth*/;\n };\n\n render() {\n return (\n
\n \n \n

Lepingu allkirjastamine

\n

\n Uute pakendite registreerimiseks on vajalik ka\n Pandipakendi poolne allkiri.\n

\n \n \n \n \n

\n Vali allkirjastamise viis\n

\n \n
\n\n \n \n this.changeLoginMode(\"1\")}\n isSelected={this.state.selectedAuth === \"1\"}\n labelText=\"Mobiil-ID\"\n disabled={this.state.isSigning || this.state.isMobileIdDisabled}\n className=\"auth-option\"\n invalid={this.state.selectedAuthInvalid}\n extraProps={{ block: true }}\n />\n \n \n this.changeLoginMode(\"2\")}\n isSelected={this.state.selectedAuth === \"2\"}\n labelText=\"Smart-ID\"\n disabled={this.state.isSigning || this.state.isSmartIdDisabled}\n className=\"auth-option\"\n invalid={this.state.selectedAuthInvalid}\n extraProps={{ block: true }}\n />\n \n \n this.changeLoginMode(\"3\")}\n isSelected={this.state.selectedAuth === \"3\"}\n labelText=\"ID-kaart\"\n disabled={this.state.isSigning}\n className=\"auth-option\"\n invalid={this.state.selectedAuthInvalid}\n extraProps={{ block: true }}\n />\n \n \n \n \n \n \n \n {!this.state.isSigning && (\n \n \n this.signContract()}\n >\n Allkirjasta\n \n \n \n )}\n
\n \n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n user: state.auth.user,\n authType: state.auth.authType,\n };\n};\n\nexport default withRouter(connect(mapStateToProps)(ContractModal));\n","import React, { Component } from \"react\";\nimport { withRouter } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport _ from \"lodash\";\n\nimport {\n Row,\n Col,\n Button,\n FormGroup,\n Label,\n Input as ReactstrapInput,\n} from \"reactstrap\";\nimport Alerts from \"components/Alerts/Alerts\";\nimport Input from \"components/Form/Input\";\nimport WrappedLoader from \"components/Loader/WrappedLoader\";\nimport CenteredRowCol from \"components/Misc/CenteredRowCol\";\nimport ConfirmationModal from \"components/Form/Modals/ConfirmationModal\";\n\n\nimport {\n clearLocalAlerts,\n addNewLocalErrorAlert,\n addNewLocalSuccessAlert,\n addNewLocalInfoAlert\n} from \"util/Alerts\";\n\nimport {\n fetchContracts,\n uploadContract,\n terminateContract,\n} from \"util/admin/General\";\nimport { adminfetchAllClients } from \"util/admin/Users\";\n\nimport \"./Contract.scss\";\nimport moment from \"moment\";\nimport ContractModal from \"./ContractModal\";\nimport { adminfetchClientUsers } from \"util/admin/Users\";\nimport { verifyContractSigner } from \"util/Contracts\";\nimport { DATE_TIME_FORMAT } from \"util/DateTime\";\n\nimport { getServerErrorMessage } from \"util/Errors\";\n\nclass ContractForm extends Component {\n static propTypes = {\n alertGroup: PropTypes.string,\n contractMode: PropTypes.bool,\n invalidFields: PropTypes.array.isRequired,\n };\n\n static defaultProps = {\n invalidFields: [],\n contractMode: false,\n };\n\n state = {\n clientId: this.props.match.params.id,\n latestContract: {\n id: \"\",\n number: \"\",\n },\n modalOpen: false,\n isDocumentSignerVerified: true,\n isContractsLoading: false,\n isConfirmFileUploadModalOpen: false,\n file: null,\n fileUploadEvent: null,\n fileUploadLoading: false,\n isConfirmTerminateContractOpen: false,\n terminateContractLoading: false,\n };\n\n componentDidMount() {\n if (\n this.props.location.state &&\n !this.props.location.state.contractSigned\n ) {\n clearLocalAlerts();\n }\n this.setState({\n isContractsLoading: true,\n });\n this.getContracts();\n }\n\n getContracts = () => {\n fetchContracts(this.state.clientId).then((contracts) => {\n this.setState(\n {\n signedBy: _.get(contracts, \"latest.created_by\"),\n basis: _.get(contracts, \"latest.basis\"),\n userVerifiedAt: _.get(contracts, \"latest.user_verified_at\"),\n latestContract: contracts.latest,\n olderContracts: contracts.older_contracts,\n isContractsLoading: false,\n },\n () => {\n if (this.state.basis && this.state.basis.value === 2) {\n this.fetchIsUserVerified(this.state.clientId);\n }\n }\n );\n })\n .catch(error => {\n this.setState({\n isContractsLoading: false,\n });\n\n addNewLocalErrorAlert(\n \"Lepingute laadimisel tekkis viga: \" + getServerErrorMessage(error),\n \"contractAlert\"\n );\n });\n\n }\n\n onVerifyContractSigner = (isVerified, userId, clientId) => {\n verifyContractSigner(isVerified, userId, clientId)\n .then(() => {\n this.setState({\n userVerifiedAt: moment(),\n });\n addNewLocalSuccessAlert(\n \"Volitus edukalt kinnitatud!\",\n \"contractAlert\"\n );\n })\n .catch((err) => {\n this.setState({\n userVerifiedAt: moment(),\n });\n addNewLocalErrorAlert(\n \"Volituse kinnitamisel tekkis viga: \" + getServerErrorMessage(err),\n \"contractAlert\"\n );\n });\n };\n\n fetchIsUserVerified = (clientId) => {\n adminfetchClientUsers(clientId).then((users) => {\n // eslint-disable-next-line array-callback-return\n users.map((user) => {\n if (user.user_id === this.state.signedBy && !user.is_verified) {\n this.setState({\n isDocumentSignerVerified: false,\n });\n }\n });\n });\n };\n\n toggleModal = () => this.setState({ modalOpen: !this.state.modalOpen });\n\n render() {\n if (this.props.personalProfileLoading) {\n return (\n \n \n \n );\n }\n\n return (\n <>\n \n \n {\" \"}\n \n \n \n\n {this.renderLatestContract()}\n\n {this.state.olderContracts &&\n this.state.olderContracts.length > 0 && (\n
\n Kehtetud lepingud\n
\n )}\n {this.state.olderContracts &&\n this.state.olderContracts.length > 0 &&\n this.state.olderContracts.map((contract) => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {contract.signed_document ?\n \n \n \n {contract.number}\n \n \n :\n \n }\n \n \n );\n })}\n \n );\n }\n\n renderLatestContract() {\n if (this.state.isContractsLoading) {\n return (\n \n );\n }\n\n if (!_.get(this.state, \"latestContract.id\")) {\n return

Lepingut ei leitud.

\n }\n\n const latestContract = this.state.latestContract;\n const latestDocument = latestContract.signed_document || latestContract.document;\n\n return (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {latestDocument ?\n \n {this.state.latestContract &&\n this.state.latestContract.number}\n \n :\n \n }\n \n \n \n \n {this.state.userVerifiedAt ? (\n <>\n \n \n \n ) : (\n <>\n \n
\n \n this.onVerifyContractSigner(\n true,\n this.state.signedBy,\n this.state.clientId\n )\n }\n >\n Kinnita\n \n \n this.onVerifyContractSigner(\n false,\n this.state.signedBy,\n this.state.clientId\n )\n }\n >\n Lükka tagasi\n \n
\n \n )}\n
\n \n \n {this.renderConfirmContractFileUpload()}\n \n \n {this.state.latestContract &&\n this.state.latestContract.approved_at ? (\n this.renderConfirmTerminateContract()\n ) : (\n \n Allkirjasta kliendileping\n \n )}\n \n
\n \n )\n }\n\n renderConfirmContractFileUpload() {\n let alertGroup = \"fileUploadModalAlert\";\n\n const onToggle = () => {\n this.setState(prevState => {\n return {\n isConfirmFileUploadModalOpen: !prevState.isConfirmFileUploadModalOpen,\n }\n });\n };\n\n const onFileUpload = (e) => {\n console.log(\"onFileUpload\", e);\n if (e.target.files.length !== 1) {\n return;\n }\n e.persist();\n\n const file = {\n file: e.target.files[0],\n };\n\n this.setState({\n file,\n fileUploadEvent: e,\n });\n\n onToggle();\n clearLocalAlerts();\n };\n\n const onCancelFunc = () => {\n const fileUploadEvent = this.state.fileUploadEvent;\n fileUploadEvent.target.value = \"\";\n this.setState({\n file: null,\n fileUploadEvent: null,\n });\n\n onToggle();\n }\n\n let onConfirmFunc = () => {\n clearLocalAlerts();\n\n this.setState({\n fileUploadLoading: true\n })\n\n uploadContract(this.state.latestContract.id, this.state.file)\n .then(() => {\n addNewLocalSuccessAlert(\n \"Dokument edukalt üles laetud ja leping kinnitatud!\",\n \"contractAlert\"\n );\n\n const fileUploadEvent = this.state.fileUploadEvent;\n fileUploadEvent.target.value = \"\";\n this.setState({\n file: null,\n fileUploadEvent: null,\n });\n\n onToggle();\n adminfetchAllClients(false).catch(() => { });\n this.getContracts();\n })\n .catch((err) => {\n addNewLocalErrorAlert(\n \"Dokumendi üles laadimisel tekkis viga: \" + getServerErrorMessage(err),\n alertGroup\n );\n })\n .finally(() => {\n this.setState({\n fileUploadLoading: false\n })\n });\n };\n\n return (\n <>\n \n \n Lisa dokument\n \n \n \n \n \n \n

Soovid kinnitada manuaalselt laetud lepingu?

\n \n
\n \n \n );\n }\n\n renderConfirmTerminateContract() {\n let alertGroup = \"terminateContractAlert\";\n\n const onToggle = () => {\n this.setState(prevState => {\n return {\n isConfirmTerminateContractOpen: !prevState.isConfirmTerminateContractOpen,\n }\n });\n };\n\n const onCancelFunc = () => {\n onToggle();\n }\n\n let onConfirmFunc = () => {\n clearLocalAlerts();\n this.setState({\n terminateContractLoading: true\n })\n\n terminateContract(this.state.latestContract.id).then(() => {\n addNewLocalInfoAlert(\n \"Leping edukalt lõpetatud veebikeskkonnas. NAV-is tuleb seda teha eraldi!\",\n \"contractAlert\"\n );\n onToggle();\n adminfetchAllClients(false).catch(() => { });\n this.getContracts();\n })\n .catch((err) => {\n addNewLocalErrorAlert(\n \"Lepingu lõpetamisel tekkis viga: \" + getServerErrorMessage(err),\n \"contractAlert\"\n );\n })\n .finally(() => {\n this.setState({\n terminateContractLoading: false\n })\n });\n };\n\n return (\n <>\n \n Lõpeta leping\n \n \n \n \n

Soovid lõpetada kehtiva lepingu?

\n

Antud tegevus lõpetab lepingu ainult veebis, NAV-is tuleb seda teha eraldi.

\n \n
\n \n \n );\n }\n\n hasAllProperties = (object) => {\n return Object.values(object).every((x) => x !== \"\");\n };\n}\n\nexport default withRouter(ContractForm);\n","import React from \"react\";\nimport CompanyProfileFormAdmin from \"components/Admin/Users/Clients/Client/CompanyProfileFormAdmin\";\nimport WarrantedUserForm from \"components/Profile/Profile/WarrantedUserForm/WarrantedUserForm\";\nimport SynchronizeButton from \"components/Admin/Users/Clients/Client/SynchronizeButton\";\nimport ContractForm from \"components/Admin/Contract/Contract\";\nimport { Card, CardBody, Form } from \"reactstrap\";\n\nclass Profile extends React.Component {\n render() {\n return (\n \n \n
\n Äriregistri andmed\n \n
\n
\n \n \n
\n
\n Lepingud\n
\n
\n \n \n \n
\n
\n );\n }\n}\n\nexport default Profile;\n","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\n\nimport BootstrapTable from \"react-bootstrap-table-next\";\nimport \"react-bootstrap-table-next/dist/react-bootstrap-table2.min.css\";\n\nimport {\n Button,\n Card,\n CardBody,\n CardHeader,\n DropdownItem,\n DropdownMenu,\n DropdownToggle,\n UncontrolledButtonDropdown,\n Row,\n Col,\n} from \"reactstrap\";\n\nimport { NavLink } from \"react-router-dom\";\n\nimport WrappedLoader from \"components/Loader/WrappedLoader\";\nimport { ReactComponent as MoreVerticalIcon } from \"assets/icons/more-vertical.svg\";\nimport AddUserModal from \"components/Profile/Users/AddUserModal/AddUserModal\";\nimport UserDetailsModal from \"components/Profile/Users/UserDetailsModal/UserDetailsModal\";\nimport ConfirmationModal from \"components/Form/Modals/ConfirmationModal\";\n\nimport { adminfetchUsers, adminRemovePartnerUser } from \"util/admin/Users\";\nimport { adminPartnersUserUpdate } from \"redux/actions/admin/users\";\nimport {\n clearLocalAlerts,\n addNewLocalInfoAlert,\n addNewLocalErrorAlert,\n} from \"util/Alerts\";\nimport { isAdminMode } from \"util/Access\";\n\nimport { sendPasswordResetLink } from \"util/Auth\";\nimport moment from \"moment\";\nimport urls from \"config/urls\";\nimport { DATE_FORMAT } from \"util/DateTime\";\nimport StatusCell, {\n statusTypes,\n} from \"components/Table/Cell/Status/StatusCell\";\n\nclass Partners extends React.Component {\n state = {\n isAddUserModalOpen: false,\n isUserDetailsModalOpen: false,\n isConfirmationModalOpen: false,\n selectedUser: {},\n user: null,\n clientId: this.props.match.params.id,\n };\n\n componentDidMount() {\n adminfetchUsers(null, true, null);\n }\n\n toggleConfirmationModal = (user) => {\n this.setState({\n user: user,\n isConfirmationModalOpen: !this.state.isConfirmationModalOpen,\n });\n };\n\n static NoDataIndication(props) {\n let content = \"Ei leitud kasutajaid.\";\n if (props.loading) {\n content = ;\n }\n\n return
{content}
;\n }\n\n render() {\n return (\n <>\n
\n \n Kliendid\n \n \n Partnerid\n \n \n EPP\n \n
\n \n \n \n \n Kõik kasutajad\n \n {this.showAddUserButton() && (\n \n \n Lisa kasutaja\n \n \n )}\n \n \n {this.renderTable()}\n \n this.toggleConfirmationModal(this.state.user)\n }\n onConfirm={() => this.onRemoveUser(this.state.user)}\n onCancel={() =>\n this.toggleConfirmationModal(this.state.user)\n }\n confirmButtonText={\"Jah, kustuta kasutaja\"}\n />\n \n this.props.adminPartnersUserUpdate(updatedUser)}\n />\n \n \n );\n }\n\n renderTable() {\n if (this.props.loadingPartners) {\n return ;\n }\n\n const StyledDropdownItem = (props) => (\n \n {props.children}\n \n );\n\n const dropdownFormatter = (user) => {\n return (\n e.stopPropagation()}\n >\n \n \n \n \n \n \n this.onOpenUserDetails(user)}\n >\n Muuda andmeid\n \n this.onSendPasswordReset(user)}\n >\n Saada uus parool\n \n this.toggleConfirmationModal(user)}\n >\n Eemalda kasutaja\n \n \n \n );\n };\n\n const columns = [\n {\n dataField: \"last_name\",\n text: \"Nimi\",\n sort: true,\n classes: \"semibold-14\",\n formatter: (last_name, user) =>\n `${user.name} ${user.last_name}`,\n },\n {\n dataField: \"phone\",\n text: \"Telefon\",\n sort: true,\n },\n {\n dataField: \"email\",\n text: \"Email\",\n sort: true,\n },\n {\n dataField: \"personal_code\",\n text: \"Isikukood\",\n sort: true,\n },\n {\n dataField: \"date_joined\",\n text: \"Liitus\",\n formatter: (date) => moment(date, \"DD.MM.YYYY\").format(DATE_FORMAT),\n sort: true,\n },\n {\n dataField: \"is_verified\",\n text: \"Kinnitatud\",\n sort: true,\n formatter: (is_verified) => (\n \n ),\n },\n {\n dataField: \"\",\n text: \"\",\n align: \"right\",\n formatter: (field, row) => dropdownFormatter(row),\n },\n ];\n\n const rowClasses = (row, rowIndex) => {\n return \"pointer\";\n };\n\n const rowEvents = {\n onClick: (e, row, rowIndex) => {\n this.onOpenUserDetails(row);\n },\n };\n\n return (\n \n }\n />\n );\n }\n\n showAddUserButton = () => {\n return isAdminMode();\n };\n\n showRemoveUserButton = () => {\n return isAdminMode();\n };\n\n toggleAddUserModal = () => {\n this.setState((prevState) => {\n return {\n isAddUserModalOpen: !prevState.isAddUserModalOpen,\n };\n });\n };\n\n toggleUserDetailsModal = () => {\n this.setState((prevState) => {\n return {\n isUserDetailsModalOpen: !prevState.isUserDetailsModalOpen,\n };\n });\n };\n\n onOpenUserDetails = (user) => {\n clearLocalAlerts();\n this.setState({\n isUserDetailsModalOpen: true,\n selectedUser: user,\n });\n };\n\n onSendPasswordReset = (user) => {\n sendPasswordResetLink(user.email).then(() => {\n addNewLocalInfoAlert(\n \"Parooli taastamise link kasutajale edastatud.\",\n this.props.location.pathname\n );\n });\n clearLocalAlerts();\n };\n\n onRemoveUser = (user) => {\n clearLocalAlerts();\n adminRemovePartnerUser(user.id)\n .then((resp) => {\n this.toggleConfirmationModal(this.state.user);\n adminfetchUsers(null, true, null);\n addNewLocalInfoAlert(\n \"Kasutaja eemaldatud.\",\n this.props.location.pathname\n );\n })\n .catch((error) => {\n addNewLocalErrorAlert(\n error.message,\n this.props.location.pathname\n );\n });\n };\n}\n\nconst mapStateToProps = (state) => {\n return {\n partners: state.admin.users.partners,\n loadingPartners: state.admin.users.loadingPartners,\n };\n};\n\nconst mapActionsToProps = {\n adminPartnersUserUpdate\n}\n\nexport default withRouter(connect(mapStateToProps, mapActionsToProps)(Partners));\n","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\n\nimport BootstrapTable from \"react-bootstrap-table-next\";\nimport \"react-bootstrap-table-next/dist/react-bootstrap-table2.min.css\";\n\nimport {\n Button,\n Card,\n CardBody,\n CardHeader,\n DropdownItem,\n DropdownMenu,\n DropdownToggle,\n UncontrolledButtonDropdown,\n Row,\n Col,\n} from \"reactstrap\";\n\nimport { NavLink } from \"react-router-dom\";\n\nimport WrappedLoader from \"components/Loader/WrappedLoader\";\nimport { ReactComponent as MoreVerticalIcon } from \"assets/icons/more-vertical.svg\";\nimport AddUserModal from \"components/Profile/Users/AddUserModal/AddUserModal\";\nimport UserDetailsModal from \"components/Profile/Users/UserDetailsModal/UserDetailsModal\";\nimport ConfirmationModal from \"components/Form/Modals/ConfirmationModal\";\n\nimport { adminfetchUsers, adminRemoveEppUser } from \"util/admin/Users\";\nimport { adminEppUserUpdate } from \"redux/actions/admin/users\";\nimport {\n clearLocalAlerts,\n addNewLocalInfoAlert,\n addNewLocalErrorAlert,\n} from \"util/Alerts\";\nimport { isAdminMode } from \"util/Access\";\n\nimport { sendPasswordResetLink } from \"util/Auth\";\nimport moment from \"moment\";\nimport urls from \"config/urls\";\nimport { DATE_FORMAT } from \"util/DateTime\";\nimport StatusCell, {\n statusTypes,\n} from \"components/Table/Cell/Status/StatusCell\";\n\nclass EppUsers extends React.Component {\n state = {\n isAddUserModalOpen: false,\n isUserDetailsModalOpen: false,\n isConfirmationModalOpen: false,\n selectedUser: {},\n user: null,\n clientId: this.props.match.params.id,\n };\n\n componentDidMount() {\n adminfetchUsers(null, null, true);\n }\n\n toggleConfirmationModal = (user) => {\n this.setState({\n user: user,\n isConfirmationModalOpen: !this.state.isConfirmationModalOpen,\n });\n };\n\n static NoDataIndication(props) {\n let content = \"Ei leitud kasutajaid.\";\n if (props.loading) {\n content = ;\n }\n\n return
{content}
;\n }\n\n render() {\n return (\n <>\n
\n \n Kliendid\n \n \n Partnerid\n \n \n EPP\n \n
\n \n \n \n \n Kõik kasutajad\n \n {this.showAddUserButton() && (\n \n \n Lisa kasutaja\n \n \n )}\n \n \n {this.renderTable()}\n \n this.toggleConfirmationModal(this.state.user)\n }\n onConfirm={() => this.onRemoveUser(this.state.user)}\n onCancel={() =>\n this.toggleConfirmationModal(this.state.user)\n }\n confirmButtonText={\"Jah, kustuta kasutaja\"}\n />\n \n this.props.adminEppUserUpdate(updatedUser)}\n />\n \n \n );\n }\n\n renderTable() {\n if (this.props.loadingPartners) {\n return ;\n }\n\n const StyledDropdownItem = (props) => (\n \n {props.children}\n \n );\n\n const dropdownFormatter = (user) => {\n return (\n e.stopPropagation()}\n >\n \n \n \n \n \n \n this.onOpenUserDetails(user)}\n >\n Muuda andmeid\n \n this.onSendPasswordReset(user)}\n >\n Saada uus parool\n \n this.toggleConfirmationModal(user)}\n >\n Eemalda kasutaja\n \n \n \n );\n };\n\n const columns = [\n {\n dataField: \"last_name\",\n text: \"Nimi\",\n sort: true,\n classes: \"semibold-14\",\n formatter: (last_name, user) =>\n `${user.name} ${user.last_name}`,\n },\n {\n dataField: \"phone\",\n text: \"Telefon\",\n sort: true,\n },\n {\n dataField: \"email\",\n text: \"Email\",\n sort: true,\n },\n {\n dataField: \"personal_code\",\n text: \"Isikukood\",\n sort: true,\n },\n {\n dataField: \"date_joined\",\n text: \"Liitus\",\n formatter: (date) => moment(date, \"DD-MM-YYYY\").format(DATE_FORMAT),\n sort: true,\n },\n {\n dataField: \"is_verified\",\n text: \"Kinnitatud\",\n sort: true,\n formatter: (is_verified) => (\n \n ),\n },\n {\n dataField: \"\",\n text: \"\",\n align: \"right\",\n formatter: (field, row) => dropdownFormatter(row),\n },\n ];\n\n const rowClasses = (row, rowIndex) => {\n return \"pointer\";\n };\n\n const rowEvents = {\n onClick: (e, row, rowIndex) => {\n this.onOpenUserDetails(row);\n },\n };\n\n return (\n \n }\n />\n );\n }\n\n showAddUserButton = () => {\n return isAdminMode();\n };\n\n showRemoveUserButton = () => {\n return isAdminMode();\n };\n\n toggleAddUserModal = () => {\n this.setState((prevState) => {\n return {\n isAddUserModalOpen: !prevState.isAddUserModalOpen,\n };\n });\n };\n\n toggleUserDetailsModal = () => {\n this.setState((prevState) => {\n return {\n isUserDetailsModalOpen: !prevState.isUserDetailsModalOpen,\n };\n });\n };\n\n onOpenUserDetails = (user) => {\n clearLocalAlerts();\n this.setState({\n isUserDetailsModalOpen: true,\n selectedUser: user,\n });\n };\n\n onSendPasswordReset = (user) => {\n sendPasswordResetLink(user.email).then(() => {\n addNewLocalInfoAlert(\n \"Parooli taastamise link kasutajale edastatud.\",\n this.props.location.pathname\n );\n });\n clearLocalAlerts();\n };\n\n onRemoveUser = (user) => {\n clearLocalAlerts();\n adminRemoveEppUser(user.id)\n .then((resp) => {\n this.toggleConfirmationModal(user);\n adminfetchUsers(null, null, true);\n addNewLocalInfoAlert(\n \"Kasutaja eemaldatud.\",\n this.props.location.pathname\n );\n })\n .catch((error) => {\n addNewLocalErrorAlert(\n error.message,\n this.props.location.pathname\n );\n });\n };\n}\n\nconst mapStateToProps = (state) => {\n return {\n epp: state.admin.users.epp,\n loadingEpp: state.admin.users.loadingEpp,\n };\n};\n\nconst mapActionsToProps = {\n adminEppUserUpdate\n}\n\nexport default withRouter(connect(mapStateToProps, mapActionsToProps)(EppUsers));\n","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\n\nimport BootstrapTable from \"react-bootstrap-table-next\";\nimport \"react-bootstrap-table-next/dist/react-bootstrap-table2.min.css\";\n\nimport {\n Button,\n Card,\n CardBody,\n CardHeader,\n DropdownItem,\n DropdownMenu,\n DropdownToggle,\n UncontrolledButtonDropdown,\n Row,\n Col,\n} from \"reactstrap\";\n\nimport WrappedLoader from \"components/Loader/WrappedLoader\";\nimport { ReactComponent as MoreVerticalIcon } from \"assets/icons/more-vertical.svg\";\nimport AddUserModal from \"components/Profile/Users/AddUserModal/AddUserModal\";\nimport UserDetailsModal from \"components/Profile/Users/UserDetailsModal/UserDetailsModal\";\nimport ConfirmationModal from \"components/Form/Modals/ConfirmationModal\";\n\nimport { adminfetchClientUsers, adminRemoveClientUser } from \"util/admin/Users\";\nimport {\n clearLocalAlerts,\n addNewLocalInfoAlert,\n addNewLocalErrorAlert,\n} from \"util/Alerts\";\nimport { isAdminMode } from \"util/Access\";\nimport StatusCell, {\n statusTypes,\n} from \"components/Table/Cell/Status/StatusCell\";\n\nimport \"./UsersTable.scss\";\nimport { sendPasswordResetLink } from \"util/Auth\";\n\nclass UsersTable extends React.Component {\n state = {\n isAddUserModalOpen: false,\n isUserDetailsModalOpen: false,\n isConfirmationModalOpen: false,\n selectedUser: {},\n users: [],\n clientId: this.props.match.params.id,\n loading: true,\n };\n\n componentDidMount() {\n adminfetchClientUsers(this.state.clientId).then((users) => {\n this.setState({\n users: users,\n loading: false,\n });\n });\n }\n\n componentDidUpdate(prevProps, prevState, snapshot) {\n if (\n !this.state.isAddUserModalOpen &&\n this.state.isAddUserModalOpen !== prevState.isAddUserModalOpen\n ) {\n adminfetchClientUsers(this.state.clientId).then((users) => {\n this.setState({\n users: users,\n loading: false,\n });\n });\n }\n }\n\n toggleConfirmationModal = (user) => {\n this.setState({\n user: user,\n isConfirmationModalOpen: !this.state.isConfirmationModalOpen,\n });\n };\n\n static NoDataIndication(props) {\n let content = \"Ei leitud kasutajaid.\";\n if (props.loading) {\n content = ;\n }\n\n return
{content}
;\n }\n\n render() {\n return (\n \n \n \n \n Kõik kasutajad\n \n {this.showAddUserButton() && (\n \n \n Lisa kasutaja\n \n \n )}\n \n \n {this.renderTable()}\n \n this.toggleConfirmationModal(this.state.user)\n }\n onConfirm={() => this.onRemoveUser(this.state.user)}\n onCancel={() =>\n this.toggleConfirmationModal(this.state.user)\n }\n confirmButtonText={\"Jah, kustuta kasutaja\"}\n />\n \n {\n this.setState((prevState) => {\n return {\n users: prevState.users.map(user => user.id === updatedUser.id ? updatedUser : user),\n };\n });\n }}\n />\n \n );\n }\n\n renderTable() {\n if (this.state.loading) {\n return ;\n }\n\n const StyledDropdownItem = (props) => (\n \n {props.children}\n \n );\n\n const dropdownFormatter = (user) => {\n return (\n e.stopPropagation()}\n >\n \n \n \n \n \n \n this.onOpenUserDetails(user)}\n >\n Muuda andmeid\n \n this.onSendPasswordReset(user)}\n >\n Saada uus parool\n \n {this.showRemoveUserButton() && (\n \n this.toggleConfirmationModal(user)\n }\n >\n Eemalda kasutaja\n \n )}\n \n \n );\n };\n\n const columns = [\n {\n dataField: \"last_name\",\n text: \"Nimi\",\n sort: true,\n classes: \"semibold-14\",\n formatter: (last_name, user) =>\n `${user.name} ${user.last_name}`,\n },\n {\n dataField: \"type\",\n text: \"Roll\",\n sort: true,\n },\n {\n dataField: \"position\",\n text: \"Ametinimetus\",\n sort: true,\n },\n {\n dataField: \"date_joined\",\n text: \"Liitus\",\n sort: true,\n },\n {\n dataField: \"email\",\n text: \"Email\",\n sort: true,\n },\n {\n dataField: \"is_verified\",\n text: \"Kinnitatud\",\n sort: true,\n formatter: (is_verified) => (\n \n ),\n },\n {\n dataField: \"\",\n text: \"\",\n align: \"right\",\n formatter: (field, row) => dropdownFormatter(row),\n },\n ];\n\n const rowClasses = (row, rowIndex) => {\n return \"pointer\";\n };\n\n const rowEvents = {\n onClick: (e, row, rowIndex) => {\n this.onOpenUserDetails(row);\n },\n };\n\n return (\n \n }\n />\n );\n }\n\n showAddUserButton = () => {\n return isAdminMode();\n };\n\n showRemoveUserButton = () => {\n return isAdminMode();\n };\n\n toggleAddUserModal = () => {\n this.setState((prevState) => {\n return {\n isAddUserModalOpen: !prevState.isAddUserModalOpen,\n };\n });\n };\n\n toggleUserDetailsModal = () => {\n this.setState((prevState) => {\n return {\n isUserDetailsModalOpen: !prevState.isUserDetailsModalOpen,\n };\n });\n };\n\n onOpenUserDetails = (user) => {\n clearLocalAlerts();\n this.setState({\n isUserDetailsModalOpen: true,\n selectedUser: user,\n });\n };\n\n onSendPasswordReset = (user) => {\n sendPasswordResetLink(user.email).then(() => {\n addNewLocalInfoAlert(\n \"Parooli taastamise link kasutajale edastatud.\",\n this.props.location.pathname\n );\n });\n clearLocalAlerts();\n };\n\n onRemoveUser = (user) => {\n clearLocalAlerts();\n adminRemoveClientUser(user.id)\n .then((resp) => {\n this.toggleConfirmationModal(this.state.user);\n adminfetchClientUsers(this.state.clientId).then((users) => {\n this.setState({ users: users });\n });\n addNewLocalInfoAlert(\n \"Kasutaja eemaldatud.\",\n this.props.location.pathname\n );\n })\n .catch((error) => {\n addNewLocalErrorAlert(\n error.message,\n this.props.location.pathname\n );\n });\n };\n}\n\nconst mapStateToProps = (state) => {\n return {\n usersLoading: state.profile.usersLoading,\n };\n};\n\nexport default withRouter(connect(mapStateToProps)(UsersTable));\n","import React from \"react\";\n\nimport { NavLink, Route } from \"react-router-dom\";\nimport { Switch } from \"react-router\";\n\nimport urls from \"config/urls\";\nimport { withTranslation } from \"react-i18next\";\n\nclass AdminReportsView extends React.Component {\n render() {\n function RouteWithSubRoutes(route) {\n return (\n (\n // pass the sub-routes down to keep nesting\n \n )}\n />\n );\n }\n\n const { t } = this.props;\n\n return (\n <>\n
\n \n {t(\"reports.tabs.salesReports\", \"Müügiaruanded\")}\n \n \n {t(\"reports.tabs.notSubmitted\", \"Esitamata\")}\n \n \n {t(\"reports.tabs.notConfirmed\", \"Kinnitamata\")}\n \n \n {t(\"routes.returnReports\")}\n \n \n {t(\"reports.tabs.additionalDeposit\")}\n \n
\n\n \n {this.props.routes.map((route, i) => (\n \n ))}\n \n \n );\n }\n}\n\nexport default withTranslation(\"common\")(AdminReportsView);\n","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\nimport { PropTypes } from \"prop-types\";\n\nimport { Card, CardBody, Form, Row, Col, Button } from \"reactstrap\";\n\n// datepicker\nimport DatePicker from \"react-datepicker\";\nimport \"react-datepicker/dist/react-datepicker.css\";\n\nimport SmallLoader from \"components/Loader/WrappedPulseLoader\";\nimport Select from \"components/Form/Select\";\n\nimport {\n fetchAllClients,\n} from \"util/General\";\nimport { YEAR_MONTH_FORMAT_DATE_FN } from \"util/DateTime\";\n\n// css\nimport \"./Search.scss\";\n\n\nclass AdminSalesReportsSearch extends React.Component {\n static propTypes = {\n // Manual\n salesReportsListLoading: PropTypes.bool,\n onSearch: PropTypes.func.isRequired,\n filters: PropTypes.object.isRequired,\n filtersUpdate: PropTypes.func.isRequired,\n filtersClear: PropTypes.func.isRequired,\n // Taken from redux\n allClients: PropTypes.array,\n\n }\n\n componentDidMount() {\n fetchAllClients(this.props.allClients);\n }\n\n render() {\n return (\n \n \n
\n \n \n Periood\n \n \n option.label}\n getOptionValue={(option) => option.value}\n onChange={this.updateFilter('client')}\n className=\"mb-2\"\n />\n \n \n this.updateFilter(\"startDate\")(value || this.props.filters.startDate)}\n showMonthYearPicker\n maxDate={this.props.filters.endDate || new Date()}\n dateFormat={YEAR_MONTH_FORMAT_DATE_FN}\n />\n \n \n this.updateFilter(\"endDate\")(value || this.props.filters.endDate)}\n minDate={this.props.filters.startDate}\n maxDate={new Date()}\n dateFormat={YEAR_MONTH_FORMAT_DATE_FN}\n />\n \n \n {\n e.preventDefault();\n this.onSearch();\n }}\n disabled={this.props.salesReportsListLoading}\n >\n {this.props.salesReportsListLoading ? : \"Otsi\"}\n \n \n \n \n Tühjenda otsing\n \n \n \n
\n
\n
\n );\n }\n\n updateFilter = key => value => {\n this.props.filtersUpdate(key, value);\n }\n\n onClearFilters = () => {\n this.props.filtersClear();\n }\n\n onSearch = () => {\n this.props.onSearch(this.props.filters);\n }\n\n}\n\nconst mapStateToProps = state => {\n return {\n allClients: state.general.allClients,\n }\n};\n\nconst reduxActions = {\n}\n\nexport default withRouter(connect(mapStateToProps, reduxActions)(AdminSalesReportsSearch));\n","import React from \"react\";\nimport { withRouter } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport PropTypes from \"prop-types\";\n\nimport { Button, UncontrolledButtonDropdown, DropdownMenu, DropdownItem, DropdownToggle } from 'reactstrap';\n\nimport { ReactComponent as MoreVerticalIcon } from 'assets/icons/more-vertical.svg';\n\nimport { getSaleReportUrl, getSaleReportFixUrl } from \"config/urls\";\nimport { fetchSalesReportExportFile, isSalesReportHasRepairReport } from \"util/SalesReports\";\n\nimport \"./MenuCell.scss\";\n\nimport {\n salesReportImportOpen,\n} from \"redux/actions/reports/importSalesReport\";\nimport { alertsClearLocal } from \"redux/actions/alerts\";\nimport { addNewLocalErrorAlert } from \"util/Alerts\";\n\n\nconst StyledDropdownItem = (props) => {props.children};\n\nclass ActionsCell extends React.Component {\n static propTypes = {\n salesReport: PropTypes.object.isRequired,\n salesReportImportOpen: PropTypes.func.isRequired,\n alertsClearLocal: PropTypes.func.isRequired,\n }\n\n render() {\n return (\n { e.stopPropagation(); }}>\n \n \n \n \n \n {this.hasRepair ? \"Vaata originaali\" : \"Vaata\"}\n \n this.onGetExcelTemplate(false)}\n >\n Ekspordi aruanne\n \n {this.hasRepair() &&\n \n Vaata parandust\n \n }\n {this.hasRepair() &&\n this.onGetExcelTemplate(true)}\n >\n Ekspordi parandus\n \n }\n \n \n );\n }\n\n onView = () => {\n const id = this.props.salesReport.id;\n const route = getSaleReportUrl(id);\n this.props.history.push(route, { previousViewRoute: this.props.location.pathname });\n }\n\n onViewRepair = () => {\n const id = this.props.salesReport.repair_report.id;\n const route = getSaleReportFixUrl(id);\n this.props.history.push(route, { previousViewRoute: this.props.location.pathname });\n }\n\n onGetExcelTemplate = (isGetRepair) => {\n let report = this.props.salesReport;\n\n if (isGetRepair) {\n report = this.props.salesReport.repair_report;\n }\n\n this.props.alertsClearLocal();\n fetchSalesReportExportFile(report.id, report.is_repair, report.period).then(\n result => {\n if (!result.isSuccess) {\n addNewLocalErrorAlert(\n \"Aruande templaadi allatõmbamine ebaõnnestus: \" + result.errorMessage,\n this.props.location.pathname\n );\n }\n }\n );\n }\n\n hasRepair = () => {\n return isSalesReportHasRepairReport(this.props.salesReport);\n }\n}\n\nconst reduxActions = {\n salesReportImportOpen,\n alertsClearLocal,\n}\n\nexport default withRouter(connect(null, reduxActions)(ActionsCell));\n","import React from \"react\";\nimport { withRouter } from \"react-router-dom\";\nimport PropTypes from \"prop-types\";\nimport { Card, CardBody, Row, Col } from \"reactstrap\";\n\n// datatable\nimport BootstrapTable from \"react-bootstrap-table-next\";\nimport \"react-bootstrap-table-next/dist/react-bootstrap-table2.min.css\";\nimport \"react-bootstrap-table2-filter/dist/react-bootstrap-table2-filter.min.css\";\nimport filterFactory from \"react-bootstrap-table2-filter\";\n\n\nimport { ReactComponent as ExpandIcon } from 'assets/icons/document-correction.svg';\n\n// cells\nimport DateCell from \"components/Table/Cell/DateCell\";\nimport StatusCell from \"components/Table/Cell/Status/StatusCell\";\nimport DocumentCell from \"components/Table/Cell/DocumentCell\";\nimport MonthPeriodCell from \"components/Reports/Sales/cells/MonthPeriodCell\";\nimport AdminMenuCell from \"components/Admin/Reports/cells/MenuCell\";\nimport WrappedLoader from \"components/Loader/WrappedLoader\";\nimport CenteredRowCol from \"components/Misc/CenteredRowCol\";\n\nimport { getSaleStatusType } from \"components/Reports/Sales/helpers/Options\";\n\nimport { parseSalesReportPeriodDate } from \"util/DateTime\";\nimport { getSaleReportUrl, getSaleReportFixUrl } from \"config/urls\";\nimport { isSalesReportHasRepairReport } from \"util/SalesReports\";\n\n\n// css\nimport \"./Table.scss\";\n\n\nfunction NoDataIndication(props) {\n if (props.loading) {\n return ;\n }\n\n let content = \"Ei leitud ühtegi müügiaruannet, mis vastaks otsingutingimustele.\";\n if (props.error) {\n content = {props.error};\n }\n\n return (\n
\n {content}\n
\n );\n}\n\n\nclass AdminSalesReportsTable extends React.Component {\n static propTypes = {\n salesReportsList: PropTypes.array,\n salesReportsListLoading: PropTypes.bool,\n }\n\n getDefaultSorted = () => {\n return [\n {\n dataField: \"period\",\n order: \"desc\"\n }\n ];\n }\n\n render() {\n return (\n <>\n {this.renderTable()}\n \n );\n }\n\n renderTable() {\n if (this.props.salesReportsListLoading) {\n return (\n \n \n \n );\n }\n if (this.props.salesReportsList === null || this.props.salesReportsList === undefined) {\n return <>;\n }\n\n const columns = [\n {\n dataField: \"client.label\",\n text: \"Ettevõte\",\n sort: true,\n classes: \"client-col semibold-14\",\n headerClasses: \"client-col-header\",\n },\n {\n dataField: \"period\",\n text: \"Periood\",\n sort: true,\n classes: \"period-col\",\n headerClasses: \"period-col-header\",\n formatter: (period, row) => this.periodColumnFormatter(row),\n sortValue: period => parseSalesReportPeriodDate(period)\n },\n {\n dataField: \"submitted_at\",\n text: \"Sisestatud\",\n sort: true,\n align: \"left\",\n headerAlign: \"left\",\n classes: \"submitted-col regular-14\",\n headerClasses: \"submitted-col-header\",\n formatter: (value, row) => this.submittedAtColumnFormatter(value, row),\n },\n {\n dataField: \"status.label\",\n text: \"Staatus\",\n sort: true,\n classes: \"status-col\",\n headerClasses: \"status-col-header\",\n formatter: (statusLabel, row) => this.statusColumnFormatter(row),\n }, {\n dataField: \"invoice\",\n text: \"Arve\",\n sort: true,\n align: \"center\",\n headerAlign: \"center\",\n classes: \"invoice-col\",\n headerClasses: \"invoice-col-header\",\n formatter: (invoices, row) => this.invoicesColumnFormatter(row),\n },\n {\n dataField: \"id\",\n text: \"\",\n align: \"right\",\n alignHeader: \"right\",\n classes: \"action-col\",\n headerClasses: \"action-col-header\",\n formatter: (id, salesReport) => this.actionColumnFormatter(salesReport),\n }\n ];\n\n const rowClasses = (row, rowIndex) => {\n return \"pointer\";\n };\n\n const rowEvents = {\n onClick: (e, row, rowIndex) => {\n this.onRowClick(e, row);\n },\n };\n\n return (\n \n \n \n }\n rowClasses={rowClasses}\n rowEvents={rowEvents}\n />\n \n \n );\n }\n\n periodColumnFormatter = row => {\n if (!row.repair_report) {\n return ;\n }\n\n return (\n <>\n \n \n \n \n \n {row.repair_report &&\n \n \n \n \n \n }\n \n );\n }\n\n onRowClick = (event, row) => {\n let reportUrl = getSaleReportUrl(row.id);\n if (isSalesReportHasRepairReport(row)) {\n reportUrl = getSaleReportFixUrl(row.repair_report.id);\n }\n this.props.history.push(reportUrl, { previousViewRoute: this.props.location.pathname });\n }\n\n submittedAtColumnFormatter = (submitted_at, row) => {\n return (\n <>\n \n \n \n \n \n {row.repair_report &&\n \n \n \n \n \n }\n \n );\n }\n\n statusColumnFormatter = (row) => {\n return (\n <>\n \n \n \n \n \n {row.repair_report &&\n \n \n \n \n \n }\n \n );\n }\n\n invoicesColumnFormatter = (row) => {\n const invoicesToComponents = (invoices, isRepair) => {\n return (invoices || []).filter(invoice => invoice.name).map((invoice, index) => (\n \n { }}\n />\n \n ))\n }\n\n const salesReportInvoices = invoicesToComponents(row.invoice, false);\n let salesReportRepairInvoices = [];\n if (row.repair_report && row.repair_report.invoice) {\n salesReportRepairInvoices = invoicesToComponents(row.repair_report.invoice, true);\n }\n\n return (\n <>\n \n {salesReportInvoices}\n {salesReportRepairInvoices}\n \n \n );\n };\n\n\n actionColumnFormatter = salesReport => {\n return \n }\n\n}\n\nexport default withRouter(AdminSalesReportsTable);\n","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\nimport PropTypes from \"prop-types\";\n\nimport Search from \"components/Admin/Reports/Search/Search\";\nimport Table from \"components/Admin/Reports/Table/Table\";\n\nimport { fetchSalesReports } from \"util/admin/SalesReports\";\n\nimport {\n adminSalesReportsFilterUpdate,\n adminSalesReportsFilterClear,\n} from \"redux/actions/admin/salesReports\";\n\n\nclass AdminSalesReportsView extends React.Component {\n static propTypes = {\n salesReportsList: PropTypes.array,\n salesReportsListLoading: PropTypes.bool,\n salesReportsListFiltersUsed: PropTypes.object.isRequired,\n filters: PropTypes.object.isRequired,\n adminSalesReportsFilterUpdate: PropTypes.func.isRequired,\n adminSalesReportsFilterClear: PropTypes.func.isRequired,\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n isRedirectToSpecificClientReports: false,\n }\n }\n\n componentDidMount() {\n const locationState = this.props.location.state;\n if (locationState && locationState.filterClientOptionObject) {\n this.setState({ isRedirectToSpecificClientReports: true });\n this.props.adminSalesReportsFilterUpdate('client', locationState.filterClientOptionObject);\n }\n\n // Enable refresh on mount if necessary. Used when redirecting after deleting original sales report\n if (this.props.location.state?.refreshList === true) {\n this.getSalesReportsList();\n }\n }\n\n componentDidUpdate(prevProps, prevState) {\n if (this.state.isRedirectToSpecificClientReports && prevProps.filters.client !== this.props.filters.client) {\n this.setState({ isRedirectToSpecificClientReports: false });\n this.getSalesReportsList(this.props.filters);\n }\n }\n\n getSalesReportsList = (filters = null) => {\n if (filters == null) {\n filters = this.props.salesReportsListFiltersUsed;\n }\n fetchSalesReports(filters, this.props.location.pathname);\n }\n\n\n render() {\n return (\n <>\n \n \n \n );\n }\n}\n\nconst reduxActions = {\n adminSalesReportsFilterUpdate,\n adminSalesReportsFilterClear,\n}\n\nconst mapStateToProps = state => {\n return {\n salesReportsList: state.admin.salesReports.salesReportsList,\n salesReportsListLoading: state.admin.salesReports.salesReportsListLoading,\n salesReportsListFiltersUsed: state.admin.salesReports.salesReportsListFiltersUsed,\n filters: state.admin.salesReports.filters,\n }\n};\n\nexport default withRouter(connect(mapStateToProps, reduxActions)(AdminSalesReportsView));\n","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\nimport PropTypes from \"prop-types\";\n\nimport Search from \"components/Admin/Reports/Search/Search\";\nimport Table from \"components/Admin/Reports/Table/Table\";\n\nimport { fetchUnconfirmedSalesReports } from \"util/admin/SalesReports\";\nimport { isSalesReportHasUnconfirmedRepairReport } from \"util/SalesReports\";\n\nimport {\n adminUnconfirmedSalesReportsFilterUpdate,\n adminUnconfirmedSalesReportsFilterClear,\n} from \"redux/actions/admin/unconfirmedSalesReports\";\n\nclass AdminUnconfirmedRepairReportsView extends React.Component {\n static propTypes = {\n salesReportsList: PropTypes.array,\n salesReportsListLoading: PropTypes.bool,\n salesReportsListFiltersUsed: PropTypes.object.isRequired,\n filters: PropTypes.object.isRequired,\n adminUnconfirmedSalesReportsFilterUpdate: PropTypes.func.isRequired,\n adminUnconfirmedSalesReportsFilterClear: PropTypes.func.isRequired,\n }\n\n componentDidMount() {\n this.getSalesReportsList();\n }\n\n getSalesReportsList = (filters = null) => {\n if (filters == null) {\n filters = this.props.salesReportsListFiltersUsed;\n }\n fetchUnconfirmedSalesReports(filters, this.props.location.pathname);\n }\n\n\n render() {\n return (\n <>\n \n \n \n );\n }\n\n filterUnconfirmedSalesReports = (salesReports) => {\n if (!salesReports || !salesReports.length) {\n return salesReports;\n }\n\n return salesReports.filter(report => isSalesReportHasUnconfirmedRepairReport(report));\n }\n}\n\nconst reduxActions = {\n adminUnconfirmedSalesReportsFilterUpdate,\n adminUnconfirmedSalesReportsFilterClear,\n}\n\nconst mapStateToProps = state => {\n return {\n salesReportsList: state.admin.unconfirmedSalesReports.salesReportsList,\n salesReportsListLoading: state.admin.unconfirmedSalesReports.salesReportsListLoading,\n salesReportsListFiltersUsed: state.admin.unconfirmedSalesReports.salesReportsListFiltersUsed,\n filters: state.admin.unconfirmedSalesReports.filters,\n }\n};\n\nexport default withRouter(connect(mapStateToProps, reduxActions)(AdminUnconfirmedRepairReportsView));\n","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\nimport PropTypes from \"prop-types\";\n\nimport Search from \"components/Admin/Reports/Search/Search\";\nimport Table from \"components/Admin/Reports/Table/Table\";\n\nimport { fetchUnsubmittedSalesReports } from \"util/admin/SalesReports\";\nimport { SaleStatus, isSalesReportOrItsRepairReportHasStatuses } from \"util/SalesReports\";\n\nimport {\n adminUnsubmittedSalesReportsFilterUpdate,\n adminUnsubmittedSalesReportsFilterClear,\n} from \"redux/actions/admin/unsubmittedSalesReports\";\n\nclass AdminUnsubmittedOrRejectedRepairReportsView extends React.Component {\n static propTypes = {\n salesReportsList: PropTypes.array,\n salesReportsListLoading: PropTypes.bool,\n salesReportsListFiltersUsed: PropTypes.object.isRequired,\n filters: PropTypes.object.isRequired,\n adminUnsubmittedSalesReportsFilterUpdate: PropTypes.func.isRequired,\n adminUnsubmittedSalesReportsFilterClear: PropTypes.func.isRequired,\n }\n\n componentDidMount() {\n this.getSalesReportsList();\n }\n\n getSalesReportsList = (filters = null) => {\n if (filters == null) {\n filters = this.props.salesReportsListFiltersUsed;\n }\n fetchUnsubmittedSalesReports(filters, this.props.location.pathname);\n }\n\n\n render() {\n return (\n <>\n \n \n \n );\n }\n\n filterUnconfirmedSalesReports = (salesReports) => {\n if (!salesReports || !salesReports.length) {\n return salesReports;\n }\n\n return salesReports.filter(report => isSalesReportOrItsRepairReportHasStatuses(report, [SaleStatus.UNSUBMITTED, SaleStatus.REJECTED]));\n }\n}\n\nconst reduxActions = {\n adminUnsubmittedSalesReportsFilterUpdate,\n adminUnsubmittedSalesReportsFilterClear,\n}\n\nconst mapStateToProps = state => {\n return {\n salesReportsList: state.admin.unsubmittedSalesReports.salesReportsList,\n salesReportsListLoading: state.admin.unsubmittedSalesReports.salesReportsListLoading,\n salesReportsListFiltersUsed: state.admin.unsubmittedSalesReports.salesReportsListFiltersUsed,\n filters: state.admin.unsubmittedSalesReports.filters,\n }\n};\n\nexport default withRouter(connect(mapStateToProps, reduxActions)(AdminUnsubmittedOrRejectedRepairReportsView));\n","import * as actionTypes from \"redux/actions/actionTypes\";\n\n// CATEGORIES\nexport const adminCategoriesFetchStart = () => {\n return {\n type: actionTypes.ADMIN_CATEGORIES_FETCH_START,\n };\n};\n\nexport const adminCategoriesFetchSuccess = (categories) => {\n return {\n type: actionTypes.ADMIN_CATEGORIES_FETCH_SUCCESS,\n categories,\n };\n};\n\nexport const adminCategoriesFetchFail = (error) => {\n return {\n type: actionTypes.ADMIN_CATEGORIES_FETCH_FAIL,\n error,\n };\n};\n\n// MATERIALS\nexport const adminTypesFetchStart = () => {\n return {\n type: actionTypes.ADMIN_TYPES_FETCH_START,\n };\n};\n\nexport const adminTypesFetchSuccess = (types) => {\n return {\n type: actionTypes.ADMIN_TYPES_FETCH_SUCCESS,\n types,\n };\n};\n\nexport const adminTypesFetchFail = (error) => {\n return {\n type: actionTypes.ADMIN_TYPES_FETCH_FAIL,\n error,\n };\n};\n\n// COLORS\nexport const adminColorsFetchStart = () => {\n return {\n type: actionTypes.ADMIN_COLORS_FETCH_START,\n };\n};\n\nexport const adminColorsFetchSuccess = (colors) => {\n return {\n type: actionTypes.ADMIN_COLORS_FETCH_SUCCESS,\n colors,\n };\n};\n\nexport const adminColorsFetchFail = (error) => {\n return {\n type: actionTypes.ADMIN_COLORS_FETCH_FAIL,\n error,\n };\n};\n\n// VOLUMES\nexport const adminVolumesFetchStart = () => {\n return {\n type: actionTypes.ADMIN_VOLUMES_FETCH_START,\n };\n};\n\nexport const adminVolumesFetchSuccess = (volumes) => {\n return {\n type: actionTypes.ADMIN_VOLUMES_FETCH_SUCCESS,\n volumes,\n };\n};\n\nexport const adminVolumesFetchFail = (error) => {\n return {\n type: actionTypes.ADMIN_VOLUMES_FETCH_FAIL,\n error,\n };\n};\n\n// PROCESS FEES\nexport const adminProcessFeesFetchStart = () => {\n return {\n type: actionTypes.ADMIN_PROCESS_FEES_FETCH_START,\n };\n};\n\nexport const adminProcessFeesFetchSuccess = (processFees) => {\n return {\n type: actionTypes.ADMIN_PROCESS_FEES_FETCH_SUCCESS,\n processFees,\n };\n};\n\nexport const adminProcessFeesFetchFail = (error) => {\n return {\n type: actionTypes.ADMIN_PROCESS_FEES_FETCH_FAIL,\n error,\n };\n};\n","import axios from \"../../axios\";\nimport store from \"redux/store\";\n\nimport {\n adminCategoriesFetchStart,\n adminCategoriesFetchSuccess,\n adminCategoriesFetchFail,\n adminTypesFetchStart,\n adminTypesFetchSuccess,\n adminTypesFetchFail,\n adminColorsFetchStart,\n adminColorsFetchSuccess,\n adminColorsFetchFail,\n adminVolumesFetchStart,\n adminVolumesFetchSuccess,\n adminVolumesFetchFail,\n adminProcessFeesFetchStart,\n adminProcessFeesFetchSuccess,\n adminProcessFeesFetchFail,\n} from \"redux/actions/admin/settings\";\n\nimport {\n ADMIN_SETTINGS_CATEGORIES,\n ADMIN_SETTINGS_COLORS,\n ADMIN_SETTINGS_PROCESS_FEES,\n ADMIN_SETTINGS_TYPES,\n ADMIN_SETTINGS_VOLUMES,\n ADMIN_SETTINGS_FETCH_NAV,\n} from \"config/Api\";\n\nexport const fetchAdminSettingsCategories = () => {\n store.dispatch(adminCategoriesFetchStart());\n axios\n .get(ADMIN_SETTINGS_CATEGORIES)\n .then((resp) => {\n store.dispatch(adminCategoriesFetchSuccess(resp.data));\n })\n .catch((err) => {\n store.dispatch(adminCategoriesFetchFail(err));\n });\n};\n\nexport const fetchSettingsFromNav = () => {\n return axios\n .get(ADMIN_SETTINGS_FETCH_NAV)\n .then((resp) => {\n return resp.data;\n })\n .catch((err) => {\n return err;\n });\n};\n\nexport const fetchAdminSettingsTypes = () => {\n store.dispatch(adminTypesFetchStart());\n axios\n .get(ADMIN_SETTINGS_TYPES)\n .then((resp) => {\n store.dispatch(adminTypesFetchSuccess(resp.data));\n })\n .catch((err) => {\n store.dispatch(adminTypesFetchFail(err));\n });\n};\n\nexport const fetchAdminSettingsColors = () => {\n store.dispatch(adminColorsFetchStart());\n axios\n .get(ADMIN_SETTINGS_COLORS)\n .then((resp) => {\n store.dispatch(adminColorsFetchSuccess(resp.data));\n })\n .catch((err) => {\n store.dispatch(adminColorsFetchFail(err));\n });\n};\n\nexport const fetchAdminSettingsVolumes = () => {\n store.dispatch(adminVolumesFetchStart());\n axios\n .get(ADMIN_SETTINGS_VOLUMES)\n .then((resp) => {\n store.dispatch(adminVolumesFetchSuccess(resp.data));\n })\n .catch((err) => {\n store.dispatch(adminVolumesFetchFail(err));\n });\n};\n\nexport const fetchAdminSettingsProcessFees = () => {\n store.dispatch(adminProcessFeesFetchStart());\n axios\n .get(ADMIN_SETTINGS_PROCESS_FEES)\n .then((resp) => {\n store.dispatch(adminProcessFeesFetchSuccess(resp.data));\n })\n .catch((err) => {\n store.dispatch(adminProcessFeesFetchFail(err));\n });\n};\n","import React from \"react\";\n\nimport { NavLink, Route } from \"react-router-dom\";\nimport { Switch } from \"react-router\";\n\nimport urls from \"config/urls\";\nimport { Button } from \"reactstrap\";\nimport {\n fetchSettingsFromNav,\n fetchAdminSettingsCategories,\n fetchAdminSettingsColors,\n fetchAdminSettingsProcessFees,\n fetchAdminSettingsTypes,\n fetchAdminSettingsVolumes,\n} from \"util/admin/Settings\";\n\nimport LoadingAnimation from \"components/Loader/WrappedPulseLoader\";\n\nclass SettingsView extends React.Component {\n state = {\n loading: false,\n };\n\n fetchSettingsFromNav = () => {\n this.setState({\n loading: true,\n });\n fetchSettingsFromNav()\n .then(() => {\n fetchAdminSettingsCategories();\n fetchAdminSettingsColors();\n fetchAdminSettingsProcessFees();\n fetchAdminSettingsTypes();\n fetchAdminSettingsVolumes();\n this.setState({\n loading: false,\n });\n })\n .catch((err) => {\n this.setState({\n loading: false,\n });\n });\n };\n\n render() {\n function RouteWithSubRoutes(route) {\n return (\n (\n // pass the sub-routes down to keep nesting\n \n )}\n />\n );\n }\n\n return (\n <>\n
\n \n Kategooriad\n \n \n Tüübid\n \n \n Värvid\n \n \n Mahud\n \n \n Käitlustasud\n \n
\n
\n \n \n {this.state.loading ? (\n \n ) : (\n \"Uuenda klassifikaatoreid\"\n )}\n \n \n
\n\n \n {this.props.routes.map((route, i) => (\n \n ))}\n \n \n );\n }\n}\n\nexport default SettingsView;\n","import React, { Component } from \"react\";\nimport { fetchAdminSettingsCategories } from \"util/admin/Settings\";\nimport { connect } from \"react-redux\";\n\nimport BootstrapTable from \"react-bootstrap-table-next\";\nimport \"react-bootstrap-table-next/dist/react-bootstrap-table2.min.css\";\n\nimport { Card, CardBody, CardHeader, Row, Col } from \"reactstrap\";\n\nimport WrappedLoader from \"components/Loader/WrappedLoader\";\n\nexport class Categories extends Component {\n componentDidMount() {\n if (this.props.categories.length === 0) {\n fetchAdminSettingsCategories();\n }\n }\n\n static NoDataIndication(props) {\n let content = \"Ei leitud kategooriad.\";\n if (props.loading) {\n content = ;\n }\n\n return
{content}
;\n }\n\n render() {\n const columns = [\n {\n dataField: \"value\",\n text: \"Tähis\",\n sort: true,\n classes: \"semibold-14\",\n },\n {\n dataField: \"description\",\n text: \"Kirjeldus\",\n sort: true,\n },\n ];\n\n return (\n \n \n \n \n \n Pakendite kategooriad\n \n \n \n \n \n \n }\n />\n \n \n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n categories: state.admin.settings.categories,\n loading: state.admin.settings.loading,\n };\n};\n\nexport default connect(mapStateToProps)(Categories);\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\n\nimport { fetchAdminSettingsTypes } from \"util/admin/Settings\";\nimport { currencyFormatter } from \"util/General\";\nimport BootstrapTable from \"react-bootstrap-table-next\";\nimport \"react-bootstrap-table-next/dist/react-bootstrap-table2.min.css\";\n\nimport { Card, CardBody, CardHeader, Row, Col } from \"reactstrap\";\n\nimport WrappedLoader from \"components/Loader/WrappedLoader\";\n\nexport class Types extends Component {\n componentDidMount() {\n if (this.props.types.length === 0) {\n fetchAdminSettingsTypes();\n }\n }\n\n static NoDataIndication(props) {\n let content = \"Ei leitud kasutajaid.\";\n if (props.loading) {\n content = ;\n }\n\n return
{content}
;\n }\n\n render() {\n const columns = [\n {\n dataField: \"value\",\n text: \"Tähis\",\n sort: true,\n classes: \"semibold-14\",\n },\n {\n dataField: \"cost\",\n text: \"Hind\",\n sort: true,\n align: \"right\",\n headerAlign: \"right\",\n formatter: (value) => currencyFormatter.format(value),\n },\n ];\n\n return (\n \n \n \n \n Pakendite tüübid\n \n \n \n \n \n }\n />\n \n \n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n types: state.admin.settings.types,\n loading: state.admin.settings.loading,\n };\n};\n\nexport default connect(mapStateToProps)(Types);\n","import React, { useEffect } from \"react\";\nimport { fetchAdminSettingsColors } from \"util/admin/Settings\";\nimport { useSelector } from \"react-redux\";\n\nimport BootstrapTable from \"react-bootstrap-table-next\";\nimport \"react-bootstrap-table-next/dist/react-bootstrap-table2.min.css\";\nimport { Card, CardBody, CardHeader, Row, Col } from \"reactstrap\";\n\nimport WrappedLoader from \"components/Loader/WrappedLoader\";\n\nfunction NoDataIndication(props) {\n let content = \"Ei leitud kasutajaid.\";\n if (props.loading) {\n content = ;\n }\n\n return
{content}
;\n}\n\nexport const Colors = (props) => {\n // Getting values from redux state\n const colors = useSelector((state) => state.admin.settings.colors);\n const loading = useSelector((state) => state.admin.settings.loading);\n\n const columns = [\n {\n dataField: \"value\",\n text: \"Värvus\",\n sort: true,\n classes: \"semibold-14\",\n },\n ];\n\n // useEffect is used instead of lifecycle hooks\n // if the second argument is [], then content is executed only once on mount\n useEffect(() => {\n if (colors.length === 0) {\n fetchAdminSettingsColors();\n }\n }, [colors.length]);\n\n return (\n \n \n \n \n Pakendite värvused\n \n \n \n \n }\n />\n \n \n );\n};\n\nexport default Colors;\n","import React, { Component } from \"react\";\nimport { fetchAdminSettingsVolumes } from \"util/admin/Settings\";\nimport { connect } from \"react-redux\";\n\nimport BootstrapTable from \"react-bootstrap-table-next\";\nimport \"react-bootstrap-table-next/dist/react-bootstrap-table2.min.css\";\n\nimport { Card, CardBody, CardHeader, Row, Col } from \"reactstrap\";\n\nimport WrappedLoader from \"components/Loader/WrappedLoader\";\n\nexport class Volumes extends Component {\n componentDidMount() {\n if (this.props.volumes.length === 0) {\n fetchAdminSettingsVolumes();\n }\n }\n\n static NoDataIndication(props) {\n let content = \"Ei leitud pakendite mahte.\";\n if (props.loading) {\n content = ;\n }\n\n return
{content}
;\n }\n\n render() {\n const columns = [\n {\n dataField: \"value\",\n text: \"Mahud\",\n sort: true,\n classes: \"semibold-14\",\n formatter: (value) => {\n return value + \" cl\";\n },\n },\n ];\n\n return (\n \n \n \n \n Pakendite mahud\n \n \n \n \n \n }\n />\n \n \n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n volumes: state.admin.settings.volumes,\n loading: state.admin.settings.loading,\n };\n};\n\nexport default connect(mapStateToProps)(Volumes);\n","import React, { Component } from \"react\";\nimport { fetchAdminSettingsProcessFees } from \"util/admin/Settings\";\nimport { connect } from \"react-redux\";\n\nimport BootstrapTable from \"react-bootstrap-table-next\";\nimport \"react-bootstrap-table-next/dist/react-bootstrap-table2.min.css\";\n\nimport { Card, CardBody, CardHeader, Row, Col } from \"reactstrap\";\n\nimport WrappedLoader from \"components/Loader/WrappedLoader\";\nimport moment from \"moment\";\n\nimport { processFeeCostCurrencyFormatter } from \"util/General\";\n\nexport class ProcessFees extends Component {\n componentDidMount() {\n if (this.props.processFees.length === 0) {\n fetchAdminSettingsProcessFees();\n }\n }\n\n static NoDataIndication(props) {\n let content = \"Ei leitud käitlustasusid.\";\n if (props.loading) {\n content = ;\n }\n\n return
{content}
;\n }\n\n render() {\n const columns = [\n {\n dataField: \"process_fee_type.description\",\n text: \"Kirjeldus\",\n sort: true,\n classes: \"semibold-14\",\n },\n {\n dataField: \"process_fee_type.value\",\n text: \"Kood\",\n sort: true,\n classes: \"semibold-14\",\n },\n {\n dataField: \"cost\",\n text: \"Käitlustasu\",\n formatter: (cost) => processFeeCostCurrencyFormatter.format(cost),\n sort: true,\n classes: \"semibold-14\",\n align: \"right\",\n headerAlign: \"right\",\n },\n {\n dataField: \"start_at\",\n text: \"Alguskuupäev\",\n sort: true,\n classes: \"semibold-14\",\n formatter: (date) => {\n return moment(date).format(\"YYYY-MM-DD\");\n },\n align: \"right\",\n headerAlign: \"right\",\n },\n ];\n\n return (\n \n \n \n \n \n Pakendite käitlustasud\n \n \n \n \n \n \n }\n />\n \n \n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n processFees: state.admin.settings.processFees,\n loading: state.admin.settings.loading,\n };\n};\n\nexport default connect(mapStateToProps)(ProcessFees);\n","// Everything about react router (subroutes and so on... ) https://reacttraining.com/react-router/web/example/route-config\nimport React from \"react\";\nimport urls from \"config/urls\";\n\nimport PackageRegistryView from \"views/admin/PackageRegistry\";\nimport ApplicationsView from \"components/Admin/Registry/Applications/ApplicationsView\";\nimport TestingView from \"components/Admin/Registry/Testing/TestingView\";\nimport RetestingView from \"components/Admin/Registry/Retesting/RetestingView\";\nimport PackagesView from \"components/Admin/Registry/Packages/PackagesView\";\nimport PackageDetailsView from \"components/Admin/Registry/PackageDetails/PackageDetails\";\nimport DebtsView from \"views/admin/Debts\";\nimport AdminInvoicesView from \"views/admin/Invoices\";\nimport PrivacyPolicyView from \"./views/public/PrivacyPolicy\";\nimport CookiePolicyView from \"./views/public/CookiePolicy\";\n\nimport UsersView from \"views/admin/Users\";\nimport ClientsView from \"components/Admin/Users/Clients/ClientsView\";\nimport ClientView from \"components/Admin/Users/Clients/Client/ClientView\";\nimport Profile from \"components/Admin/Users/Clients/Client/Profile\";\nimport EppProfile from \"./components/Profile/Profile/Profile\";\nimport PartnersView from \"components/Admin/Users/Partners/PartnersView\";\nimport EppUsersView from \"components/Admin/Users/EPP/Users\";\nimport Users from \"components/Admin/Users/Clients/Client/Users\";\nimport OriginalSalesReportView from \"views/Reports/OriginalSalesReport\";\nimport RepairSalesReportView from \"views/Reports/RepairSalesReport\";\nimport AdminReportsView from \"views/admin/Reports\";\nimport AdminSalesReportsView from \"views/admin/SalesReports\";\nimport UnconfirmedRepairReports from \"views/admin/UnconfirmedRepairReports\";\nimport UnsubmittedRepairReports from \"views/admin/UnsubmittedSalesReports\";\nimport SettingsView from \"views/admin/Settings\";\nimport Categories from \"components/Admin/Settings/Categories\";\nimport Types from \"components/Admin/Settings/Types\";\nimport Colors from \"components/Admin/Settings/Colors\";\nimport Volumes from \"components/Admin/Settings/Volumes\";\nimport ProcessFees from \"components/Admin/Settings/ProcessFees\";\nimport ReturnReportListView from \"./components/ReturnReports/ListView\";\nimport ReturnReportDetailsView from \"./components/ReturnReports/DetailsView\";\nimport AdditionalDepositReportListView from \"./components/AdditionalDepositReports/ListView\";\nimport AdditionalDepositReportDetailsView from \"./components/AdditionalDepositReports/DetailsView\";\n\nconst routes = [\n {\n path: urls.EPP_REGISTRY,\n label: \"\",\n component: PackageRegistryView,\n routes: [\n {\n path: urls.EPP_REGISTRY_APPLICATIONS,\n label: \"Taotlused\",\n component: ApplicationsView,\n },\n {\n path: urls.EPP_REGISTRY_TESTING,\n label: \"Testimine\",\n component: TestingView,\n },\n {\n path: urls.EPP_REGISTRY_RETESTING,\n label: \"Kordustestimine\",\n component: RetestingView,\n },\n {\n path: urls.EPP_REGISTRY_PACKAGES,\n label: \"Kõik pakendid\",\n component: PackagesView,\n },\n {\n path: urls.EPP_REGISTRY_PACKAGE_DETAILS,\n label: \"Pakendiregister\",\n component: PackageDetailsView,\n },\n ],\n },\n {\n exact: true,\n path: urls.REPORTS_SALE_FIX,\n label: \"Müügiaruanne\",\n component: RepairSalesReportView,\n },\n {\n exact: true,\n path: urls.REPORTS_SALE,\n label: \"Müügiaruanne\",\n component: OriginalSalesReportView,\n },\n {\n path: urls.EPP_REPORTS,\n label: \"Müügiaruanded\",\n component: AdminReportsView,\n routes: [\n {\n path: urls.EPP_REPORTS_SALES,\n label: \"\",\n exact: true,\n component: AdminSalesReportsView,\n },\n {\n path: urls.EPP_REPORTS_SALES_UNSUBMITTED,\n label: \"Esitamata\",\n exact: true,\n component: UnsubmittedRepairReports,\n },\n {\n path: urls.EPP_UNCONFIRMED_REPAIR_REPORTS,\n label: \"Kinnitamata\",\n exact: true,\n component: UnconfirmedRepairReports,\n },\n {\n exact: true,\n path: urls.EPP_REPORTS_RETURN_DETAILS,\n label: \"Tagastusaruanne\",\n component: ({match}) => ,\n },\n {\n path: urls.EPP_REPORTS_RETURN_LIST,\n exact: true,\n label: \"Tagastusaruanded\",\n component: ReturnReportListView,\n },\n {\n exact: true,\n path: urls.EPP_REPORTS_ADDITIONAL_DEPOSIT_DETAILS,\n label: \"Täiendava pandi aruanne\",\n component: ({match}) => ,\n },\n {\n path: urls.EPP_REPORTS_ADDITIONAL_DEPOSIT_LIST,\n exact: true,\n label: \"Täiendava pandi aruanded\",\n component: AdditionalDepositReportListView,\n },\n ],\n },\n {\n path: urls.EPP_DEBTS,\n exact: true,\n label: \"Võlgnevused\",\n component: DebtsView,\n },\n {\n path: urls.EPP_DEBTS_INVOICES,\n exact: true,\n label: \"Arvete saldo\",\n component: AdminInvoicesView,\n },\n {\n path: urls.EPP_USERS,\n label: \"\",\n component: UsersView,\n routes: [\n {\n path: urls.EPP_USERS_CLIENTS,\n label: \"Kliendid\",\n exact: true,\n component: ClientsView,\n },\n {\n path: urls.EPP_USERS_CLIENTS_CLIENT,\n label: \"Klient\",\n component: ClientView,\n routes: [\n {\n path: urls.EPP_USERS_CLIENTS_CLIENT_PROFILE,\n exact: true,\n component: Profile,\n },\n {\n path: urls.EPP_USERS_CLIENTS_CLIENT_USERS,\n exact: true,\n component: Users,\n },\n ],\n },\n {\n path: urls.EPP_USERS_PARTNERS,\n label: \"Partnerid\",\n exact: true,\n component: PartnersView,\n },\n {\n path: urls.EPP_USERS_EPP,\n label: \"EPP kasutajad\",\n exact: true,\n component: EppUsersView,\n },\n ],\n },\n {\n path: urls.EPP_PROFILE,\n label: \"Profiil\",\n component: EppProfile,\n },\n {\n path: urls.EPP_SETTINGS,\n label: \"Seaded\",\n component: SettingsView,\n routes: [\n {\n path: urls.EPP_SETTINGS_CATEGORIES,\n label: \"Kategooriad\",\n component: Categories,\n },\n {\n path: urls.EPP_SETTINGS_TYPES,\n label: \"Tüübid\",\n component: Types,\n },\n {\n path: urls.EPP_SETTINGS_COLORS,\n label: \"Värvid\",\n component: Colors,\n },\n {\n path: urls.EPP_SETTINGS_VOLUMES,\n label: \"Mahud\",\n component: Volumes,\n },\n {\n path: urls.EPP_SETTINGS_PROCESS_FEES,\n label: \"Käitlustasud\",\n component: ProcessFees,\n },\n ],\n },\n {\n path: urls.PRIVACY_POLICY,\n label: \"Privaatsuspoliitika\",\n component: PrivacyPolicyView,\n },\n {\n path: urls.COOKIE_POLICY,\n label: \"Küpsised\",\n component: CookiePolicyView,\n },\n];\n\nexport default routes;\n","import React, { Component } from 'react';\nimport PropTypes from \"prop-types\";\nimport { Input } from \"reactstrap\";\n\n\nclass MidForm extends Component {\n static propTypes = {\n handleChanged: PropTypes.func.isRequired\n }\n render() {\n const { handleChanged } = this.props;\n return (\n <>\n

MOBIILINUMBER

\n \n

ISIKUKOOD

\n \n \n );\n }\n}\n\nexport default MidForm;\n","import React, { Component } from 'react';\nimport PropTypes from \"prop-types\";\n\nimport { Input } from \"reactstrap\";\n\nimport \"./SmartIdForm.css\";\n\nclass SmartIdForm extends Component {\n static propTypes = {\n handleChanged: PropTypes.func.isRequired\n }\n\n render() {\n const { handleChanged } = this.props;\n\n return (\n <>\n

ISIKUKOOD

\n \n \n );\n }\n}\n\nexport default SmartIdForm;\n","import React, {Component} from 'react';\n\nimport Alert from \"components/Alerts/Alert/Alert\";\nimport {alertType} from \"util/Alerts\";\n\nclass IdCardForm extends Component { \n render() {\n return (\n <>\n {this.props.isAuthenticating &&\n \n }\n \n );\n }\n}\n\nexport default IdCardForm;","import React, { Component } from 'react';\nimport { Link } from \"react-router-dom\";\nimport { Input, Row, Col } from \"reactstrap\";\n\nimport Alert from \"components/Alerts/Alert/Alert\";\nimport { alertType } from \"util/Alerts\";\nimport urls from \"config/urls\";\n\n\nclass EmailForm extends Component {\n render() {\n return (\n <>\n \n \n \n \n \n\n

KASUTAJATUNNUS

\n \n \n \n PAROOL\n \n \n Unustasid parooli?\n \n \n \n \n );\n }\n}\n\nexport default EmailForm;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport { Card, CardBody, Row, Col, Button, Form } from \"reactstrap\";\nimport Alerts from \"components/Alerts/Alerts\";\nimport {\n getAuthUser,\n setAuthUser,\n login,\n idCardAuthSuccess,\n idCardAuthDokobitTokenVerify,\n mobileIdAuth,\n digitalAuthStatus,\n LOGIN_ALERT_GROUP,\n smartIdAuth,\n authTypes,\n} from \"util/Auth\";\nimport {\n clearLocalAlerts,\n addNewLocalErrorAlert,\n addNewLocalInfoAlert,\n} from \"util/Alerts\";\nimport { getIdCardErrorMessage } from \"util/Errors\";\n\nimport BrandLogoText from \"components/Misc/BrandLogoText\";\n\nimport CheckboxButton from \"components/Form/CheckboxButton/CheckboxButton\";\n\n// css\nimport \"./LoginCard.css\";\nimport MidForm from \"../MidForm/MidForm\";\nimport SmartIdForm from \"../SmartIdForm/SmartIdForm\";\nimport IdCardForm from \"../IdCardForm/IdCardForm\";\nimport EmailForm from \"../EmailForm/EmailForm\";\nimport LoadingAnimation from \"components/Loader/WrappedPulseLoader\";\n\nimport Dokobit from \"../../../util/dokobit/Dokobit\";\n\nfunction sleep(ms) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nclass LoginCard extends React.Component {\n static propTypes = {\n emailEnabled: PropTypes.bool,\n defaultAuth: PropTypes.string,\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n username: \"\",\n password: \"\",\n mobileNumber: \"\",\n selectedAuth: props.defaultAuth,\n personalCode: \"\",\n isAuthenticating: false,\n idCardAuthenticationKey: 0,\n authenticationFrameLoadedSuccessfully: false,\n controlCode: \"\" // Used for both m-id and smart-id\n };\n }\n\n // idCardManager = new IdCardManager(\"EST\");\n dokobit = new Dokobit();\n\n handleChange = async (event) => {\n const { target } = event;\n const value = target.value;\n const { name } = target;\n await this.setState({ [name]: value });\n };\n\n setIsAuthenticating = (value) => {\n this.setState({\n isAuthenticating: value,\n controlCode: \"\"\n });\n };\n\n authenticateUser = (event) => {\n event.preventDefault();\n clearLocalAlerts();\n\n // Credentials\n if (this.state.selectedAuth === \"4\") {\n this.logInCredentials(this.state.username, this.state.password);\n }\n\n // mid\n if (this.state.selectedAuth === \"1\") {\n this.logInMid(this.state.mobileNumber, this.state.personalCode);\n }\n\n // id-card\n if (this.state.selectedAuth === \"3\") {\n this.logInId();\n }\n // smart-id\n if (this.state.selectedAuth === \"2\") {\n this.logInSmart(this.state.personalCode, \"EE\");\n }\n };\n\n logInCredentials = (username, password) => {\n this.setIsAuthenticating(true);\n login(username, password).then((isSuccess) => {\n if (isSuccess) {\n getAuthUser();\n }\n\n this.setIsAuthenticating(false);\n });\n };\n\n logInMid = (mobileNumber, personalCode) => {\n this.setIsAuthenticating(true);\n clearLocalAlerts();\n\n mobileIdAuth(mobileNumber, personalCode)\n .then(async (resp) => {\n clearLocalAlerts();\n if (!resp || !resp.success || resp.code === \"error\") {\n this.showAuthStartErrorMessage();\n this.setIsAuthenticating(false);\n return;\n }\n this.setState({\n controlCode: resp.control_code\n })\n\n addNewLocalInfoAlert(\n `Teie kontrollkood on ${resp.control_code}. Veenduge, et näete mobiiltelefoni ekraanil täpselt sama numbrit.\n Seejärel sisestage M-ID PIN 1 kood.`,\n LOGIN_ALERT_GROUP\n );\n\n let token = resp.token;\n this.checkAuthStatus(token, authTypes.MID, mobileNumber);\n })\n .catch((err) => {\n clearLocalAlerts();\n this.showAuthStartErrorMessage();\n this.setIsAuthenticating(false);\n });\n };\n\n checkAuthStatus = async (token, mode, mobileNumber) => {\n await sleep(1000);\n digitalAuthStatus(token, mode, mobileNumber)\n .then((resp) => {\n if (resp.code === \"waiting\") {\n this.checkAuthStatus(token, mode, mobileNumber);\n } else if (resp.code === \"ok\") {\n if (resp.message === \"Not Estonian national\") {\n clearLocalAlerts();\n addNewLocalErrorAlert(\n \"Sisselogimine ebaõnnestus. Pole Eesti rahvusest.\",\n LOGIN_ALERT_GROUP\n );\n this.setIsAuthenticating(false);\n } else {\n localStorage.setItem(\"authType\", mode);\n setAuthUser(resp.user_object);\n }\n } else if (resp.code === \"canceled\") {\n clearLocalAlerts();\n addNewLocalErrorAlert(\n \"Sisselogimine ebaõnnestus. Kasutaja keeldus.\",\n LOGIN_ALERT_GROUP\n );\n this.setIsAuthenticating(false);\n } else {\n throw Error(\"Response not waiting or success.\");\n }\n })\n .catch((err) => {\n clearLocalAlerts();\n this.setIsAuthenticating(false);\n this.showAuthStatusErrorMessage();\n });\n };\n\n showAuthStartErrorMessage = () => {\n addNewLocalErrorAlert(\n \"Sisselogimine ebaõnnestus. Palun kontrollige andmeid.\",\n LOGIN_ALERT_GROUP\n );\n };\n\n showAuthStatusErrorMessage = () => {\n addNewLocalErrorAlert(\n \"Sisselogimine ebaõnnestus. Palun proovige uuesti.\",\n LOGIN_ALERT_GROUP\n );\n };\n\n logInSmart = (personalCode, country) => {\n this.setIsAuthenticating(true);\n clearLocalAlerts();\n\n smartIdAuth(personalCode, country)\n .then(async (data) => {\n if (data && data.success === true) {\n clearLocalAlerts();\n this.setState({\n controlCode: data.control_code\n })\n addNewLocalInfoAlert(\n `Teie kontrollkood on ${data.control_code}. Veenduge, et näete mobiiltelefoni ekraanil täpselt sama numbrit.\n Seejärel sisestage Smart id pin 1 kood.`,\n LOGIN_ALERT_GROUP\n );\n\n this.checkAuthStatus(data.token, authTypes.SMART, \"-\");\n } else {\n throw Error(\"Response not a success.\");\n }\n })\n .catch((err) => {\n clearLocalAlerts();\n this.showAuthStartErrorMessage();\n this.setIsAuthenticating(false);\n });\n };\n\n logInId = () => {\n this.setIsAuthenticating(true);\n clearLocalAlerts();\n\n /*\n // Hardcoded this alert to IdCardForm because some thing keeps clearing it up after certificate selection.\n //addNewLocalInfoAlert(\"Toimub ID-kaardiga sisselogimine. Kontrollige oma tegumiriba, kui sertifikaadi valimine ei kerki esile.\", LOGIN_ALERT_GROUP, true);\n\n const resolve = (data) => {\n this.setIsAuthenticating(false);\n\n if (!data.user_object) {\n clearLocalAlerts();\n addNewLocalErrorAlert(\n \"Kasutajat ei tagastatud.\",\n LOGIN_ALERT_GROUP\n );\n return;\n }\n\n idCardAuthSuccess(data.user_object);\n };\n\n const reject = (error) => {\n this.setIsAuthenticating(false);\n clearLocalAlerts();\n const errorMessage = getIdCardErrorMessage(\n error,\n \"Sisselogimine ebaõnnestus.\"\n );\n addNewLocalErrorAlert(errorMessage, LOGIN_ALERT_GROUP);\n };\n\n this.dokobit.authWithIdCard(resolve, reject);\n */\n\n this.setState(state => ({\n authenticationFrameLoadedSuccessfully: false,\n idCardAuthenticationStarted: state.idCardAuthenticationKey += 1\n }))\n };\n\n logInIdCertificateAuthenticatedResolve = response => {\n\n this.setState({\n authenticationFrameLoadedSuccessfully: true\n })\n\n if (response.status === \"ok\") {\n idCardAuthDokobitTokenVerify(response.token)\n .then(data => {\n if (!data.success) {\n throw Error(\"login_verify_not_success\");\n } else {\n if (!data.user_object) {\n clearLocalAlerts();\n addNewLocalErrorAlert(\n getIdCardErrorMessage(\n null,\n \"Kasutajat ei tagastatud.\"\n ),\n LOGIN_ALERT_GROUP\n );\n return;\n }\n\n idCardAuthSuccess(data.user_object);\n }\n\n })\n .catch(error => {\n const errorMessage = getIdCardErrorMessage(\n error,\n \"Sisselogimine ebaõnnestus.\"\n );\n addNewLocalErrorAlert(errorMessage, LOGIN_ALERT_GROUP);\n })\n .finally(() => {\n this.setIsAuthenticating(false);\n })\n } else {\n addNewLocalErrorAlert(getIdCardErrorMessage(null, \"Sisselogimine ebaõnnestus.\"), LOGIN_ALERT_GROUP)\n this.setIsAuthenticating(false);\n }\n }\n\n changeLoginMode = (authOption) => {\n clearLocalAlerts();\n this.setState({ selectedAuth: authOption });\n };\n\n onAuthenticationFrameLoad = () => {\n const showErrorIfNotSuccess = () => {\n if (!this.state.authenticationFrameLoadedSuccessfully) {\n this.setIsAuthenticating(false);\n clearLocalAlerts();\n addNewLocalErrorAlert(getIdCardErrorMessage(null, \"Sisselogimine ebaõnnestus.\"), LOGIN_ALERT_GROUP);\n\n }\n }\n setTimeout(showErrorIfNotSuccess, 1000)\n }\n\n componentDidUpdate(prevProps, prevState) {\n if (this.state.idCardAuthenticationKey > 0 && prevState.idCardAuthenticationKey === 0) {\n if (typeof window.Isign !== 'undefined') {\n window.Isign.PostMessage.init(this.logInIdCertificateAuthenticatedResolve)\n } else {\n console.warn(\"Isign for ID-card auth is not setup!\")\n }\n }\n }\n\n render() {\n return (\n \n \n \n

Vali autentimisviis

\n \n \n this.changeLoginMode(\"1\")}\n isSelected={this.state.selectedAuth === \"1\"}\n labelText=\"Mobiil-ID\"\n disabled={this.state.isAuthenticating}\n extraProps={{ block: true }}\n />\n \n \n this.changeLoginMode(\"2\")}\n isSelected={this.state.selectedAuth === \"2\"}\n labelText=\"Smart-ID\"\n disabled={this.state.isAuthenticating}\n extraProps={{ block: true }}\n />\n \n \n this.changeLoginMode(\"3\")}\n isSelected={this.state.selectedAuth === \"3\"}\n labelText=\"ID-kaart\"\n disabled={this.state.isAuthenticating}\n extraProps={{ block: true }}\n />\n \n {\n this.props.emailEnabled &&\n \n this.changeLoginMode(\"4\")}\n isSelected={this.state.selectedAuth === \"4\"}\n labelText=\"E-mail\"\n disabled={this.state.isAuthenticating}\n extraProps={{ block: true }}\n />\n \n }\n \n
\n
\n {this.state.selectedAuth === \"1\" ? (\n \n ) : this.state.selectedAuth === \"2\" ? (\n \n ) : this.state.selectedAuth === \"3\" ? (\n \n ) : this.state.selectedAuth === \"4\" ? (\n \n ) : null}\n
\n {this.renderControlCode()}\n \n {(!this.state.isAuthenticating || this.state.selectedAuth === \"4\") && (\n
\n this.authenticateUser(event)}\n >\n {this.state.isAuthenticating ? : \"Sisene\"}\n \n
\n )}\n {(this.state.idCardAuthenticationKey > 0) &&\n \n }\n \n
\n
\n );\n }\n\n renderControlCode() {\n const { controlCode } = this.state;\n if (!controlCode) {\n return;\n }\n\n return (\n
\n Kontrollkood: \n {controlCode}\n
\n )\n }\n}\n\nexport default LoginCard;\n","import React from 'react';\nimport { withRouter, matchPath } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport { Col, Container, Row } from \"reactstrap\";\n\nimport LoginCard from \"components/Login/LoginCard/LoginCard\";\nimport { authFail, authStart, authSuccess } from \"../../redux/actions/auth\";\nimport urls from \"config/urls\";\n\n\nclass LoginView extends React.Component {\n render() {\n let defaultAuth = \"3\";\n if (matchPath(this.props.location.pathname, {\n path: urls.LOGIN_WITH_EMAIL,\n exact: true,\n strict: true,\n })) {\n defaultAuth = \"4\";\n }\n return (\n \n \n \n \n \n \n \n );\n }\n}\n\nconst mapStateToProps = state => {\n return {\n error: state.auth.error,\n }\n};\n\nexport default withRouter(connect(mapStateToProps, { authStart, authFail, authSuccess })(LoginView));\n","import React from \"react\";\nimport { withRouter, Link } from \"react-router-dom\";\nimport { Col, Container, Row, Card, CardBody, Button, Form } from \"reactstrap\";\n\nimport axios from \"../../axios\";\nimport { RESET_PASSWORD } from \"config/Api\";\nimport urls from \"config/urls\";\n\nimport BrandLogoText from \"components/Misc/BrandLogoText\";\nimport CustomInput from \"components/Form/Input\";\nimport Alerts from \"components/Alerts/Alerts\";\nimport { createAlertObject, alertContext, alertType } from \"util/Alerts\";\n\nimport \"./ForgotPassword.scss\";\nimport { getServerErrorMessage } from \"util/Errors\";\n\nconst RESET_PASSWORD_ALERT_GROUP = \"resetPasswordGroup\";\n\nclass ForgotPasswordView extends React.Component {\n state = {\n email: \"\",\n passwordResetSuccess: false,\n alerts: [],\n };\n\n render() {\n return (\n \n \n \n \n \n
\n \n

\n Telli uus parool\n

\n

\n Sisesta e-mail\n

\n
\n {this.renderContent()}\n \n \n Logi sisse\n \n \n
\n
\n \n
\n
\n );\n }\n\n renderContent() {\n if (this.state.passwordResetSuccess) {\n return this.renderAlerts();\n }\n\n return this.renderForm();\n }\n\n renderAlerts() {\n return (\n \n );\n }\n\n renderForm() {\n return (\n \n \n \n \n this.setState({ email: value })\n }\n type=\"email\"\n labelText=\"Email\"\n placeholder=\"Email\"\n extraProps={{\n required: true,\n }}\n />\n \n \n {this.renderAlerts()}\n \n \n \n Saada link e-mailile\n \n \n \n \n );\n }\n\n resetAlerts = () => {\n this.setState({ alerts: [] });\n };\n\n addAlert = (alert) => {\n this.setState((prevState) => {\n return {\n alerts: [...prevState.alerts, alert],\n };\n });\n };\n\n onSubmit = (e) => {\n e.preventDefault();\n this.resetAlerts();\n\n this.resetPassword(this.state.email);\n };\n\n resetPassword = (email) => {\n const data = { email };\n\n axios\n .post(RESET_PASSWORD, data)\n .then((response) => {\n this.setState({ loading: false, passwordResetSuccess: true });\n const message = (\n \n E-mail lingiga parooli muutmiseks on saadetud. Palun\n kontrollige oma postkasti.\n \n );\n this.addAlert(\n createAlertObject(\n alertContext.LOCAL,\n alertType.SUCCESS,\n RESET_PASSWORD_ALERT_GROUP,\n message\n )\n );\n })\n .catch((error) => {\n const errorMessage = getServerErrorMessage(error);\n if (error.response && error.response.data) {\n const data = error.response.data;\n if (data.detail) {\n this.addAlert(\n createAlertObject(\n alertContext.LOCAL,\n alertType.ERROR,\n RESET_PASSWORD_ALERT_GROUP,\n data.detail\n )\n );\n }\n if (data.email) {\n this.addAlert(\n createAlertObject(\n alertContext.LOCAL,\n alertType.ERROR,\n RESET_PASSWORD_ALERT_GROUP,\n data.new_password1.join(\" \")\n )\n );\n }\n if (!data.detail && !data.email) {\n this.addAlert(\n createAlertObject(\n alertContext.LOCAL,\n alertType.ERROR,\n RESET_PASSWORD_ALERT_GROUP,\n errorMessage\n )\n );\n }\n } else {\n this.addAlert(\n createAlertObject(\n alertContext.LOCAL,\n alertType.ERROR,\n RESET_PASSWORD_ALERT_GROUP,\n errorMessage\n )\n );\n }\n });\n };\n}\n\nexport default withRouter(ForgotPasswordView);\n","import React from \"react\";\nimport { withRouter, Link } from \"react-router-dom\";\nimport { Col, Container, Row, Card, CardBody, Button, Form } from \"reactstrap\";\n\nimport axios from \"../../axios\";\nimport { CHANGE_PASSWORD_TOKEN, CHANGE_PASSWORD } from \"config/Api\";\nimport urls from \"config/urls\";\n\nimport BrandLogoText from \"components/Misc/BrandLogoText\";\nimport CustomInput from \"components/Form/Input\";\nimport Alerts from \"components/Alerts/Alerts\";\nimport { createAlertObject, alertContext, alertType } from \"util/Alerts\";\n\nimport \"./ChangePassword.scss\";\nimport { getServerErrorMessage } from \"util/Errors\";\n\nconst CHANGE_PASSWORD_ALERT_GROUP = \"changePasswordGroup\";\n\nclass ChangePasswordView extends React.Component {\n state = {\n passwordOne: \"\",\n passwordTwo: \"\",\n key: null,\n alerts: [],\n passwordChangeSuccess: false,\n fetchKeyFailed: false,\n };\n\n componentDidMount() {\n const uid = this.props.match.params.uid;\n const token = this.props.match.params.token;\n\n this.getKey(uid, token);\n }\n\n render() {\n return (\n \n \n \n \n \n
\n \n

\n Muuda parooli\n

\n

\n Sisesta uus parool\n

\n
\n {this.renderContent()}\n \n \n Logi sisse\n \n \n
\n
\n \n
\n
\n );\n }\n\n renderContent() {\n if (this.state.fetchKeyFailed || this.state.passwordChangeSuccess) {\n return this.renderAlerts();\n }\n\n return this.renderForm();\n }\n\n renderAlerts() {\n return (\n \n );\n }\n\n renderForm() {\n return (\n \n \n \n \n this.setState({ passwordOne: value })\n }\n type=\"password\"\n labelText=\"Uus parool\"\n placeholder=\"Uus parool\"\n extraProps={{\n required: true,\n }}\n />\n \n \n \n \n \n this.setState({ passwordTwo: value })\n }\n type=\"password\"\n labelText=\"Korda parooli\"\n placeholder=\"Korda parooli\"\n extraProps={{\n required: true,\n }}\n />\n \n \n {this.renderAlerts()}\n \n \n \n Muuda\n \n \n \n \n );\n }\n\n resetAlerts = () => {\n this.setState({ alerts: [] });\n };\n\n addAlert = (alert) => {\n this.setState((prevState) => {\n return {\n alerts: [...prevState.alerts, alert],\n };\n });\n };\n\n onSubmit = (e) => {\n e.preventDefault();\n this.resetAlerts();\n\n if (this.state.passwordOne !== this.state.passwordTwo) {\n this.addAlert(\n createAlertObject(\n alertContext.LOCAL,\n alertType.ERROR,\n CHANGE_PASSWORD_ALERT_GROUP,\n \"Paroolid on erinevad\"\n )\n );\n return;\n }\n\n this.changePassword(\n this.state.key,\n this.state.passwordOne,\n this.state.passwordTwo\n );\n };\n\n getKey = (uid, token) => {\n const endpoint = `${CHANGE_PASSWORD_TOKEN}${uid}/${token}`;\n this.setState({ loading: true });\n axios\n .get(endpoint)\n .then((response) => {\n this.setState({\n loading: false,\n key: response.data.key,\n });\n })\n .catch((error) => {\n //const errorMessage = getServerErrorMessage(error);\n this.setState({\n loading: false,\n fetchKeyFailed: true,\n });\n const message = \"Antud link ei ole aktiivne\";\n this.addAlert(\n createAlertObject(\n alertContext.LOCAL,\n alertType.ERROR,\n CHANGE_PASSWORD_ALERT_GROUP,\n message\n )\n );\n });\n };\n\n changePassword = (key, new_password1, new_password2) => {\n const data = { new_password1, new_password2 };\n const config = {\n headers: {\n Authorization: `Token ${key}`,\n },\n };\n\n axios\n .post(CHANGE_PASSWORD, data, config)\n .then((response) => {\n this.setState({ loading: false, passwordChangeSuccess: true });\n const message = (\n \n Parool edukalt muudetud. Pöördu tagasi{\" \"}\n esilehele, et sisse logida.\n \n );\n this.addAlert(\n createAlertObject(\n alertContext.LOCAL,\n alertType.SUCCESS,\n CHANGE_PASSWORD_ALERT_GROUP,\n message\n )\n );\n })\n .catch((error) => {\n const errorMessage = getServerErrorMessage(error);\n if (error.response && error.response.data) {\n const data = error.response.data;\n if (data.detail) {\n this.addAlert(\n createAlertObject(\n alertContext.LOCAL,\n alertType.ERROR,\n CHANGE_PASSWORD_ALERT_GROUP,\n data.detail\n )\n );\n }\n if (data.new_password1) {\n this.addAlert(\n createAlertObject(\n alertContext.LOCAL,\n alertType.ERROR,\n CHANGE_PASSWORD_ALERT_GROUP,\n `Parool: ${data.new_password1.join(\" \")}`\n )\n );\n }\n if (data.new_password2) {\n this.addAlert(\n createAlertObject(\n alertContext.LOCAL,\n alertType.ERROR,\n CHANGE_PASSWORD_ALERT_GROUP,\n `Kordusparool: ${data.new_password2.join(\" \")}`\n )\n );\n }\n if (\n !data.detail &&\n !data.new_password1 &&\n !data.new_password2\n ) {\n this.addAlert(\n createAlertObject(\n alertContext.LOCAL,\n alertType.ERROR,\n CHANGE_PASSWORD_ALERT_GROUP,\n errorMessage\n )\n );\n }\n } else {\n this.addAlert(\n createAlertObject(\n alertContext.LOCAL,\n alertType.ERROR,\n CHANGE_PASSWORD_ALERT_GROUP,\n errorMessage\n )\n );\n }\n });\n };\n}\n\nexport default withRouter(ChangePasswordView);\n","// Everything about react router (subroutes and so on... ) https://reacttraining.com/react-router/web/example/route-config\n\nimport urls from \"config/urls\";\n\nimport LoginView from \"./views/public/Login\";\nimport ForgotPasswordView from \"./views/public/ForgotPassword\";\nimport ChangePasswordView from \"./views/public/ChangePassword\";\nimport PrivacyPolicyView from \"./views/public/PrivacyPolicy\";\nimport CookiePolicyView from \"./views/public/CookiePolicy\";\n\nconst publicRoutes = [\n {\n exact: true,\n path: urls.FORGOT_PASSWORD,\n label: \"Unustasid parooli\",\n component: ForgotPasswordView,\n },\n {\n path: urls.CHANGE_PASSWORD,\n label: \"Muuda parooli\",\n component: ChangePasswordView,\n },\n {\n path: urls.PRIVACY_POLICY,\n label: \"Privaatsuspoliitika\",\n component: PrivacyPolicyView,\n },\n {\n path: urls.COOKIE_POLICY,\n label: \"Küpsised\",\n component: CookiePolicyView,\n },\n {\n path: urls.LOGIN,\n label: \"Logi sisse\",\n component: LoginView,\n },\n {\n path: urls.LOGIN_WITH_EMAIL,\n label: \"Logi sisse\",\n component: LoginView,\n },\n {\n path: urls.DOMAIN,\n label: \"Logi sisse\",\n component: LoginView,\n },\n];\n\nexport default publicRoutes;\n","import React from \"react\";\nimport { Link, NavLink } from \"react-router-dom\";\n\nimport { addNewGlobalWarningAlert } from \"util/Alerts\";\nimport urls from \"../config/urls\";\nimport {\n isConnectedToClientWithPendingOrActiveContract,\n isConnectedToClientWithPendingContract,\n isClientMode,\n isVerifiedUser,\n} from \"util/Access\";\n\nimport { Translation, useTranslation } from \"react-i18next\";\n\nexport function showMissingContractAlert() {\n if (!isClientMode()) {\n return;\n }\n\n if (!isConnectedToClientWithPendingOrActiveContract()) {\n const message = ;\n addNewGlobalWarningAlert(message, true);\n } else if (isConnectedToClientWithPendingContract()) {\n const message = (\n
\n \n \n {(t) =>\n t(\n \"alerts.contractPendingSignature.text\",\n \"Pakendite registreerimiseks peate ootama kuni Pandipakend allkirjastab omalt poolt liitumise.\"\n )\n }\n \n \n
\n );\n addNewGlobalWarningAlert(message, true);\n }\n}\n\nexport function showNotVerifiedAlert() {\n if (!isVerifiedUser()) {\n const message = (\n
\n \n \n {(t) =>\n t(\n \"alerts.clientUserNotVerified.text\",\n \"Puuduvad õigused antud ettevõtte andmeid näha! Võta ühendust administraatoriga.\"\n )\n }\n \n \n
\n );\n addNewGlobalWarningAlert(message, true);\n }\n}\nfunction CreateContractAlertContent(props) {\n const { t } = useTranslation();\n return (\n
\n \n {t(\n \"alerts.createContract.text\",\n \"Pakendite registreerimiseks on teil tarvis vormistada leping Eesti Pakendiregistriga.\"\n )}\n \n\n \n {t(\"alerts.createContract.button\", \"Lepingut vormistama\")}\n \n
\n );\n}\n","import React, { Component } from \"react\";\nimport { BrowserRouter, Redirect, Route, Switch } from \"react-router-dom\";\n\nimport CustomLayout from \"./components/Layout/Layout\";\nimport PublicLayout from \"./components/Layout/PublicLayout\";\n\nimport \"assets/style.scss\";\n\n// urls\nimport urls, { getDefaultUrl } from \"config/urls\";\n// routes\nimport client_routes from \"./client_routes\";\nimport partner_routes from \"./partner_routes\";\nimport admin_routes from \"./admin_routes\";\nimport public_routes from \"./public_routes\";\n\nimport { connect } from \"react-redux\";\n\nimport { FadeLoader } from \"react-spinners\";\n\nimport {\n isAuthenticatedWithUser,\n isAuthenticatedWithoutUser,\n isClientMode,\n isPartnerMode,\n isAdminMode,\n getUser,\n} from \"util/Access\";\nimport { checkAuthState, resetStore } from \"./redux/actions/auth\";\nimport { showMissingContractAlert, showNotVerifiedAlert } from \"util/User\";\n\nimport { withTranslation } from \"react-i18next\";\nimport i18n from \"i18next\";\nimport moment from \"moment\";\nimport { languageTypes } from \"util/General\";\nimport { registerLocale, setDefaultLocale } from \"react-datepicker\";\nimport et from \"date-fns/locale/et\";\nimport en from \"date-fns/locale/en-GB\";\nimport axios from \"./axios\";\n\nclass App extends Component {\n componentDidMount() {\n this.props.resetStore();\n this.props.checkAuthState();\n this.updateLocalLanguage(this.props.language);\n }\n\n componentDidUpdate(prevProps, prevState, snapshot) {\n if (prevProps.user !== this.props.user && getUser()) {\n showMissingContractAlert();\n showNotVerifiedAlert();\n }\n if (this.props.language && this.props.language !== prevProps.language) {\n this.updateLocalLanguage(this.props.language);\n }\n }\n\n updateLocalLanguage = (newLanguage) => {\n // change frontend language\n i18n.changeLanguage(newLanguage);\n // locale language\n moment.locale(newLanguage);\n registerLocale(newLanguage, newLanguage === languageTypes.EN ? en : et);\n setDefaultLocale(newLanguage);\n axios.defaults.headers[\"Accept-Language\"] = newLanguage;\n };\n\n render() {\n // A special wrapper for that knows how to\n // handle \"sub\"-routes by passing them in a `routes`\n // prop to the component it renders.\n function RouteWithSubRoutes(route) {\n return (\n (\n // pass the sub-routes down to keep nesting\n \n )}\n />\n );\n }\n\n const routes = this.getRoutes(this.props.user);\n\n return (\n \n {isAuthenticatedWithUser() ? (\n \n \n {routes.map((route, i) => {\n return (\n \n );\n })}\n \n \n \n ) : isAuthenticatedWithoutUser() ? (\n \n \n \n ) : (\n \n \n {public_routes.map((route, i) => {\n return (\n \n );\n })}\n \n \n )}\n \n );\n }\n\n getRoutes() {\n if (isAdminMode()) {\n return admin_routes;\n }\n if (isPartnerMode()) {\n return partner_routes;\n } else if (isClientMode()) {\n return client_routes;\n }\n return [];\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n user: state.auth.user,\n token: state.auth.token,\n language: state.language,\n };\n};\n\nexport default connect(mapStateToProps, { checkAuthState, resetStore })(\n withTranslation()(App)\n);\n","// This optional code is used to register a service worker.\n// register() is not called by default.\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 subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\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.0/8 are 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 function register(config) {\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.href);\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/facebook/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. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\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://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\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 // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' }\n })\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.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, config);\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 { Provider } from \"react-redux\";\nimport store from \"redux/store\";\n\nimport moment from \"moment\";\nimport \"moment/locale/et\";\nimport { registerLocale, setDefaultLocale } from \"react-datepicker\";\nimport et from \"date-fns/locale/et\";\n\nimport \"./index.css\";\nimport \"bootstrap/dist/css/bootstrap.css\";\nimport \"react-bootstrap-table-next/dist/react-bootstrap-table2.min.css\";\n\nimport \"assets/style.scss\";\nimport App from \"./App\";\nimport * as serviceWorker from \"./serviceWorker\";\n\nimport axiosInstance from \"./axios\";\nimport { requestFailed401 } from \"./util/Auth\";\n\nimport { I18nextProvider } from \"react-i18next\";\nimport \"./i18n\";\nimport i18next from \"i18next\";\n// import common_et from \"./i18n/et.json\";\n// import common_en from \"./i18n/en.json\";\n// import common_ru from \"./i18n/ru.json\";\n\nmoment.locale(\"et\");\nregisterLocale(\"et\", et);\nsetDefaultLocale(\"et\");\n\naxiosInstance.interceptors.response.use(\n (response) => {\n return response;\n },\n function (error) {\n if (!error.response || error.response.status === 401) {\n localStorage.clear();\n axiosInstance.defaults.headers.common[\"Authorization\"] = null;\n requestFailed401();\n //window.location.href = '/';\n return Promise.reject(error);\n }\n\n return Promise.reject(error);\n }\n);\n\n// i18next.init({\n// interpolation: { escapeValue: false },\n// lng: \"et\",\n// keySeparator: \".\",\n// returnEmptyString: false,\n// resources: {\n// et: {\n// common: common_et,\n// },\n// en: {\n// common: common_en,\n// },\n// ru: {\n// common: common_ru,\n// },\n// },\n// });\n\nconst app = (\n \n \n \n \n \n);\n\nReactDOM.render(app, document.getElementById(\"root\"));\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister();\n"],"sourceRoot":""}