{"version":3,"sources":["application/applicationConfig.js","themes/default/application/home/pages/HomeTemplate.jsx","themes/default/application/home/pages/HomeStationTemplate.jsx","themes/default/application/home/pages/HomePodcastTemplate.jsx","themes/default/application/home/pages/HomePodcastGroupTemplate.jsx","application/home/pages/Home.jsx","application/home/pages/HomeStation.jsx","application/home/pages/HomePodcast.jsx","application/home/pages/HomePodcastGroup.jsx","themes/default/application/torah-anytime/components/content-loader/TorahAnyTimeLoaderTemplate.jsx","themes/default/application/torah-anytime/components/TorahAnytimeWizardLayoutTemplate.jsx","themes/default/application/torah-anytime/components/TorahAnytimeAvailabilityModalTemplate.jsx","themes/default/application/torah-anytime/components/TorahAnytimeCollectionListItemTemplate.jsx","themes/default/application/torah-anytime/components/TorahAnytimeCreatePlaylistTemplate.jsx","themes/default/application/torah-anytime/components/TorahAnytimeHeaderTemplate.jsx","application/torah-anytime/components/content-loader/TorahAnyTimeLoader.jsx","themes/default/application/torah-anytime/components/TorahAnytimeSelectTopicsTemplate.jsx","themes/default/application/torah-anytime/components/TorahAnytimeSelectSpeakersTemplate.jsx","application/torah-anytime/components/TorahAnytimeWizardLayout.jsx","application/torah-anytime/components/TorahAnytimeAvailabilityModal.jsx","application/torah-anytime/forms/TorahAnytimeCollectionEditForm.js","application/torah-anytime/stores/TorahAnytimeCollectionEditViewStore.js","application/torah-anytime/stores/TorahAnytimeCollectionListItemViewStore.js","application/torah-anytime/stores/TorahAnytimeSelectionViewStore.js","application/torah-anytime/filters/TorahAnytimeSpeakersFilter.js","application/torah-anytime/filters/TorahAnytimeTopicsFilter.js","application/torah-anytime/stores/TorahAnytimeSelectSpeakersViewStore.js","application/torah-anytime/stores/TorahAnytimeSelectTopicsViewStore.js","application/torah-anytime/stores/TorahAnytimeRouteStore.js","application/torah-anytime/models/TorahAnytimeCollectionGridItemDecorator.js","application/torah-anytime/stores/TorahAnytimeViewStore.js","application/torah-anytime/stores/TorahAnytimeWizardViewStore.js","application/torah-anytime/stores/TorahAnytimeWizardRouteStore.js","application/torah-anytime/components/TorahAnytimeCollectionListItem.jsx","application/torah-anytime/components/TorahAnytimeCreatePlaylist.jsx","application/torah-anytime/components/TorahAnytimeHeader.jsx","application/torah-anytime/components/TorahAnytimeSelectSpeakers.jsx","application/torah-anytime/components/TorahAnytimeSelectTopics.jsx","themes/default/application/torah-anytime/pages/TorahAnytimeTemplate.jsx","themes/default/application/torah-anytime/pages/TorahAnytimeWizardTemplate.jsx","application/torah-anytime/pages/TorahAnytime.jsx","application/torah-anytime/pages/TorahAnytimeWizard.jsx","application/home/applicationHomeConfig.js","themes/default/application/producer/components/ProducerRevenueTransferSuccessModalTemplate.jsx","themes/default/application/producer/components/ProducerSummaryPreviewTemplate.jsx","themes/default/application/producer/components/ProducerTopTrendingEmptyStateTemplate.jsx","themes/default/application/producer/components/content-loader/ProducerRevenueLoaderTemplate.jsx","themes/default/application/producer/components/content-loader/ProducerStatsLoaderTemplate.jsx","themes/default/application/producer/components/content-loader/ProducerTotalLoaderTemplate.jsx","application/producer/components/ProducerRevenueTransferSuccessModal.jsx","application/producer/components/ProducerSummaryPreview.jsx","application/producer/components/content-loader/ProducerRevenueLoader.jsx","application/producer/components/content-loader/ProducerStatsLoader.jsx","application/producer/components/content-loader/ProducerTotalLoader.jsx","common/hooks/useElementScrollPosition.js","common/hooks/useWindowSize.js","common/hooks/useSideScroll.js","common/components/tabs/Tabs.jsx","themes/default/application/producer/pages/ProducerRevenueTemplate.jsx","themes/default/application/producer/pages/ProducerRevenueReportTemplate.jsx","themes/default/application/producer/pages/ProducerRevenueTransferTemplate.jsx","themes/default/application/producer/pages/ProducerPreviewTemplate.jsx","themes/default/application/producer/pages/ProducerDashboardTemplate.jsx","application/producer/stores/revenue/ProducerRevenueRouteStore.js","application/producer/stores/revenue/ProducerRevenueViewStore.js","application/producer/stores/revenue-report/ProducerRevenueReportRouteStore.js","application/producer/stores/revenue-report/ProducerRevenueReportViewStore.js","application/producer/stores/revenue-transfer/ProducerRevenueTransferRouteStore.js","application/producer/forms/ProducerRevenueTransferForm.js","application/producer/stores/revenue-transfer/ProducerRevenueTransferViewStore.js","application/producer/stores/dashboard/ProducerDashboardRouteStore.js","application/producer/stores/dashboard/ProducerDashboardTimeRangeViewStore.js","application/producer/stores/dashboard/ProducerDashboardInfiniteScrollStore.js","application/producer/stores/dashboard/ProducerDashboardViewStore.js","application/producer/stores/preview/ProducerPreviewViewStore.js","application/producer/stores/preview/ProducerPreviewRouteStore.js","application/producer/pages/ProducerRevenue.jsx","application/producer/pages/ProducerRevenueReport.jsx","application/producer/pages/ProducerRevenueTransfer.jsx","application/producer/pages/ProducerPreview.jsx","application/producer/pages/ProducerDashboard.jsx","application/producer/applicationProducerConfig.js","themes/default/application/naki-nigun/components/NakiNigunArtistAlbumTemplate.jsx","application/naki-nigun/models/NakiNigunAlbum.js","application/naki-nigun/models/NakiNigunArtist.js","application/naki-nigun/models/nakiNigunContentType.js","application/naki-nigun/models/NakiNigunBulkSelect.js","application/naki-nigun/utils/getContentActivityStatusIcon.js","themes/default/application/naki-nigun/components/NakiNigunHomeGridCellTemplate.jsx","themes/default/application/naki-nigun/components/NakiNigunSearchResultGridCellTemplate.jsx","themes/default/application/naki-nigun/components/NakiNigunHomePageHeaderTemplate.jsx","themes/default/application/naki-nigun/components/NakiNigunHomeFeaturedTemplate.jsx","themes/default/application/naki-nigun/components/NakiNigunHomeMainViewTemplate.jsx","themes/default/application/naki-nigun/components/NakiNigunHomeSearchResultsTemplate.jsx","themes/default/application/naki-nigun/components/NakiNigunManageSelectedItemsTemplate.jsx","application/naki-nigun/stores/NakiNigunArtistAlbumViewStore.js","application/naki-nigun/stores/NakiNigunArtistRouteStore.js","application/naki-nigun/stores/NakiNigunArtistViewStore.js","application/naki-nigun/stores/NakiNigunHomeFeaturedContentViewStore.js","application/naki-nigun/stores/NakiNigunHomeRouteStore.js","application/naki-nigun/filters/NakiNigunHomeContentFilter.js","application/naki-nigun/stores/NakiNigunHomeViewStore.js","application/naki-nigun/stores/NakiNigunGenericSearchViewStore.js","application/naki-nigun/stores/NakiNigunAlbumBulkEditViewStore.js","application/naki-nigun/stores/NakiNigunArtistBulkEditViewStore.js","application/naki-nigun/stores/NakiNigunManageSelectedItemsViewStore.js","application/naki-nigun/components/NakiNigunArtistAlbum.jsx","application/naki-nigun/components/NakiNigunHomeGridCell.jsx","application/naki-nigun/components/NakiNigunSearchResultGridCell.jsx","application/naki-nigun/components/NakiNigunHomeFeatured.jsx","application/naki-nigun/components/NakiNigunHomeMainView.jsx","application/naki-nigun/components/NakiNigunHomePageHeader.jsx","application/naki-nigun/components/NakiNigunHomeSearchResults.jsx","application/naki-nigun/components/NakiNigunManageSelectedItems.jsx","themes/default/application/naki-nigun/pages/NakiNigunArtistTemplate.jsx","themes/default/application/naki-nigun/pages/NakiNigunHomeTemplate.jsx","application/naki-nigun/pages/NakiNigunArtist.jsx","application/naki-nigun/pages/NakiNigunHome.jsx","application/naki-nigun/applicationNakiNigunConfig.js","themes/default/assets/images/device-info.png","themes/default/application/device-settings/pages/DeviceCreateTemplate.jsx","themes/default/application/device-settings/pages/DeviceEditTemplate.jsx","themes/default/application/device-settings/pages/DeviceListTemplate.jsx","application/device-settings/stores/device-create/DeviceCreateRouteStore.js","application/device-settings/forms/DeviceCreateForm.js","application/device-settings/forms/DeviceEditForm.js","application/device-settings/stores/device-create/DeviceCreateViewStore.js","application/device-settings/stores/device-edit/DeviceDowntimeEditViewStore.js","application/device-settings/stores/device-edit/DeviceEditRouteStore.js","application/device-settings/stores/device-edit/DeviceEditViewStore.js","application/device-settings/stores/device-list/DeviceListRouteStore.js","application/device-settings/stores/device-list/DeviceListViewStore.js","application/device-settings/pages/DeviceCreate.jsx","application/device-settings/pages/DeviceEdit.jsx","application/device-settings/pages/DeviceList.jsx","application/device-settings/applicationDeviceSettingsConfig.js","application/user-settings/forms/UserProfileEditForm.js","application/user-settings/forms/UserProfileChangePasswordForm.js","application/user-settings/stores/edit/UserProfileEditViewStore.js","application/user-settings/stores/edit/UserProfileEditRouteStore.js","application/user-settings/stores/user-password-change/UserProfilePasswordChangeViewStore.js","themes/default/application/user-settings/components/UserProfilePasswordChangeTemplate.jsx","themes/default/application/user-settings/components/UserProfileGeneralInfoTemplate.jsx","application/user-settings/components/UserProfilePasswordChange.jsx","application/user-settings/components/UserProfileGeneralInfo.jsx","themes/default/application/user-settings/pages/UserProfileEditTemplate.jsx","application/user-settings/pages/UserProfileEdit.jsx","application/user-settings/applicationUserSettingsConfig.js","themes/default/application/payment/pages/ActivateTrialTemplate.jsx","themes/default/application/payment/pages/ChangeSubscriptionPlanPreviewTemplate.jsx","themes/default/application/payment/pages/ChangeSubscriptionPlanTemplate.jsx","themes/default/application/payment/pages/TakePaymentTemplate.jsx","themes/default/application/payment/pages/UpgradeTrialTemplate.jsx","themes/default/application/payment/pages/PremiumSubscriptionsTemplate.jsx","themes/default/application/payment/pages/UserSubscriptionsPreviewTemplate.jsx","application/payment/pages/ActivateTrial.jsx","application/payment/pages/ChangeSubscriptionPlan.jsx","application/payment/pages/ChangeSubscriptionPlanPreview.jsx","application/payment/pages/TakePayment.jsx","application/payment/pages/UpgradeTrial.jsx","application/payment/pages/PremiumSubscriptions.jsx","application/payment/pages/UserSubscriptionsPreview.jsx","application/payment/applicationPaymentConfig.js"],"names":["moduleProviderFactory","module","register","name","routes","pattern","component","MainLayout","store","MainRouteStore","beforeEnter","fromState","toState","routerStore","userStore","rootStore","isAdministrator","Promise","reject","notFoundState","ResultsContainer","observer","_ref2","homeViewStore","t","inSearchMode","homeGenericSearchViewStore","_jsx","React","Fragment","children","HomeSearchResults","HomeMainView","defaultTemplate","_ref","connectDeviceModal","_jsxs","HomePageLayout","MrbPageHeader","classNameExtend","HomePageHeader","ConnectDeviceModal","modalParams","StationInfo","item","loaderStore","className","MrbContentLoader","loaderRender","DescriptionLoader","HTMLRender","alternativeDescription","HomePreviewStationsLoader","location","language","genres","homeStationViewStore","coverImageUrl","premiumSubscriptionStore","contentAccessResult","MrbPreviewPage","contentClassNameExtend","HomePreviewHeader","MrbPageContentHeader","classNameOverride","MrbHeaderLoader","mergeCss","canAccessOnSelectedDevice","Image","src","PremiumBadge","isPremium","isPremiumSubscriptionValid","canAccessPremium","title","StationUnavailableInApp","isLegacySubscriptionActive","legacySubscriptionExpirationDate","dateFormatter","format","applicationDefaults","formats","date","descriptionLink","href","target","rel","PodcastInfo","homePodcastViewStore","PodcastUnavailableInApp","SubPodcasts","HomePreviewSubPodcastListLoader","subPodcasts","length","map","subPodcast","HomeSubPodcast","subPodcastId","id","_ref3","canAccessPremiumContent","hideStatusButton","Home","setCurrentView","componentProps","HomeViewStore","_dec","_class","Component","render","HomeTemplate","this","props","HomeStation","HomeStationViewStore","HomeStationTemplate","HomePodcast","HomePodcastViewStore","HomePodcastTemplate","HomePodcastGroup","HomePodcastGroupViewStore","HomePodcastGroupTemplate","TorahAnyTimeLoaderTemplate","row","backgroundColor","foregroundColor","ref","useRef","loaderWidth","setLoaderWidth","useState","useEffect","current","offsetWidth","screenwidth","window","innerWidth","list","cardSpace","cardSize","col","setX","x","y1","Math","floor","i","j","push","y","rx","ry","width","height","concat","ContentLoader","speed","viewBox","WizardHeader","steps","currentStep","stepIndex","step","WizardStep","index","lastStep","isActive","WizardControls","_ref4","nextStep","previousStep","hasPreviousStep","MrbButton","label","backButtonLabel","onClick","nextButtonLabel","TorahAnytimeWizardLayoutTemplate","controlsRenderer","TorahAnytimeAvailabilityModalTemplate","MrbModal","shouldCloseOnOverlayClick","params","disableTorahAnytimeAvailabilityModal","close","PanelHeader","isCollapsed","actions","isTurnedOn","isDisabled","toggleCollectionStatus","hasTopics","hasSpeakers","torahAnytimeViewStore","torahAnytimePodcast","userDeviceStore","deviceCount","TogglePremium","value","disabled","onAction","event","preventDefault","stopPropagation","icon","delete","edit","SpeakersList","speakers","speakersLength","orderBy","speaker","_speaker$speaker","_speaker$speaker2","_speaker$speaker3","firstName","lastName","join","TopicsList","topics","topicsLength","topic","_topic$topic","torahAnytimeCollectionListItemViewStore","collection","toggleCollapse","MrbCollapsiblePanel","onChangeCollapse","headerClassNameExtend","headerRender","CreatePlaylistWizardControls","isEdit","onSubmit","type","torahAnytimeCollectionEditViewStore","torahAnytimeWizardViewStore","form","MrbRouterLink","routeName","podcastId","MrbEditFormLayout","layoutFooterVisible","TorahAnytimeWizardLayout","MrbFieldInput","field","$","deviceSelectStore","HomeDeviceSelect","TorahAnyTimeLoader","TopicCell","torahAnytimeSelectionViewStore","selectedTopics","selectTopic","deselectTopic","isSelected","findIndex","selectedTopic","topicId","EnabledIndicator","DisabledIndicator","imageUrl","NoDataEmptyState","queryUtility","filter","isEmpty","search","SelectTopicsWizardControls","torahAnytimeSelectTopicsViewStore","isTopicSelectionEmpty","gridStore","MrbQuerySearchInput","placeholder","showSearchButton","maxLength","MrbGrid","cellRender","emptyStateRender","pagerRender","MrbPager","hideItemsPerPage","hidePagerIfUnderLimit","pageSize","SpeakerCell","torahAnytimeSelectSpeakersViewStore","selectedSpeakers","selectSpeaker","deselectSpeaker","defaultSpeakerImageUrl","selectedSpeaker","speakerId","SelectSpeakersWizardControls","isSpeakerSelectionEmpty","selectSpeakersByGender","clearSelection","TorahAnytimeAvailabilityModal","TorahAnytimeCollectionEditForm","LocalizedForm","constructor","hooks","super","setup","fields","rules","TorahAnytimeCollectionEditViewStore","MrbBaseEditViewStore","routeStore","collectionId","FormClass","autoFocusField","successCreateNotification","successUpdateNotification","redirectOnCreateSuccess","goTo","redirectOnUpdateSuccess","runInAction","setItem","updateForm","resetForm","create","data","createCollection","updateCollection","onCreateError","err","notificationStore","error","onUpdateError","TorahAnytimeCollectionListItemViewStore","action","bound","_dec2","_dec3","_dec4","MrbBaseViewStore","some","isNil","find","evaluateContentAccess","isUpdating","userDeviceCollection","collectionStatusItem","selectedDevice","device","systemType","abrv","nakiRadioSystemTypes","venice","isTurnedOnByDefault","mobile","isTurnedOnByDefaultInApp","_defineProperty","_initializerDefineProperty","_descriptor","_descriptor2","makeObservable","setIsUpdating","updateCollectionTurnedOnStatus","options","UpdateTorahAnytimeCollectionStatusOptions","isVisibleInApp","userContentManagerStore","updateTorahAnytimeCollectionsStatus","console","log","contentAccessValidator","canAccessPodcast","unavailableInMobileApp","_applyDecoratedDescriptor","prototype","observable","configurable","enumerable","writable","initializer","computed","Object","getOwnPropertyDescriptor","TorahAnytimeSelectionViewStore","_dec5","_dec6","_dec7","initializeSelection","arguments","undefined","selectSpeakers","forEach","clearSelectedSpeakers","existingItemIndex","pullAt","TorahAnytimeSpeakersFilter","MrbFilterParameters","reset","calculateNumberOfColumns","calculateNumberOfTorahAnytimeWizardRows","TorahAnytimeTopicsFilter","TorahAnytimeSelectSpeakersViewStore","MrbBaseListViewStore","podcast","coverImageId","coverImageFactory","createPodcastCoverImageUrl","queryConfig","setGridStore","MrbGridViewStore","onCellClick","onClickCellItem","reaction","trim","fetch","delay","bind","onInit","initialize","isFemale","topicIds","suspend","speakerIds","findSpeakersByGender","resume","abortExistingRequest","_abortController","AbortController","validateSpeakers","findSpeakers","allSpeakerIdsByTopics","selectedTopicsSpeakerIds","speakersForDeselect","includes","abort","onFetchError","statusCode","httpStatusCodes","CanceledRequest","onDestroy","TorahAnytimeSelectTopicsViewStore","findTopics","TorahAnytimeRouteStore","MrbBaseRouteStore","service","createApplicationService","UserTorahAnytimeCollectionService","userContentService","UserContentService","deviceId","findWthDeviceSettings","getPodcast","TorahAnytimeCollectionGridItemDecorator","obj","key","setIsTurnedOn","_userDeviceCollection","setUserDeviceCollection","TorahAnytimeViewStore","routerState","embed","orderDirection","confirmDialogStore","showConfirm","message","onConfirm","async","deleteUserTorahAnytimeCollection","yesLabel","noLabel","description","goToWizardPage","mapper","MrbSimpleSelectStore","textKey","valueKey","onChange","option","setSelectedDevice","devices","setSelectedItem","goToCreateNewCollectionPage","displayTorahAnytimeAvailabilityModal","disableTorahAnytimeAvailability","torahAnytimeAvailabilityModal","MrbModalParams","onClose","all","fetchTorahAnytimePodcast","findUserTorahAnytimeCollections","setTorahAnytimePodcast","isTorahAnytimeAvailabilityVisible","open","mainLoaderStore","TorahAnytimeWizardViewStore","_dec8","resource","findSpeakerIdsByTopicIds","maximumNumberOfSteps","TorahAnytimeSelectTopics","TorahAnytimeSelectSpeakers","TorahAnytimeCreatePlaylist","_descriptor3","_descriptor4","_descriptor5","_descriptor6","initializeResource","getTorahAnytimePodcast","hasNextStep","goToStep","toJS","newCollection","prepareCollectionResource","createUserTorahAnytimeCollection","updateUserTorahAnytimeCollection","getResource","NotFound","goToNotFound","getUserTorahAnytimeCollection","TorahAnytimeWizardRouteStore","TorahAnytimeService","userTorahAnytimeCollectionService","abortController","update","get","TorahAnytimeCollectionListItem","TorahAnytimeCollectionListItemTemplate","TorahAnytimeCreatePlaylistTemplate","TorahAnytimeHeader","TorahAnytimeHeaderTemplate","TorahAnytimeSelectSpeakersTemplate","TorahAnytimeSelectTopicsTemplate","GridHeader","dataInitialized","hasData","onClickCreateNew","MrbLineContentLoader","rows","lineheight","setY","TorahAnytime","TorahAnytimeTemplate","TorahAnytimeWizard","TorahAnytimeWizardTemplate","HomeRouteStore","HomeStationRouteStore","HomePodcastRouteStore","HomePodcastGroupRouteStore","menu","order","route","formattedPrice","currencyFormatter","amount","currency","displayCloseIcon","onClickGoToProducerAccount","producerRevenueViewStore","summaryData","producers","AdminProducerSummaryLoader","isUser","producerName","accountBalance","ProducerTopTrendingEmptyStateTemplate","ProducerRevenueLoaderTemplate","useCallback","node","getBoundingClientRect","ProducerStatsLoaderTemplate","loadMore","noButton","rest","items","loaderSml","imgY","textWidth","random","ProducerTotalLoaderTemplate","ProducerRevenueTransferSuccessModal","ProducerRevenueTransferSuccessModalTemplate","ProducerSummaryPreview","ProducerSummaryPreviewTemplate","ProducerRevenueLoader","ProducerStatsLoader","ProducerTotalLoader","useElementScrollPosition","elem","elemScrollPosition","setElemScrollPosition","updatePosition","scrollLeft","addEventListener","removeEventListener","useWindowSize","windowSize","setWindowSize","handleResize","innerHeight","useSideScroll","element","direction","distance","scrollAmount","slideTimer","setInterval","clearInterval","Tabs","disabledArrows","setDisabledArrows","tabsRef","setTabsRef","scrollPosition","setScrollPosition","start","end","handleChangeOnResize","scrollStart","scrollEnd","scrollWidth","ceil","clientWidth","timer","setTimeout","clearTimeout","handleScrollAction","itemId","isChecked","checked","tabIndex","htmlFor","Actions","completedOnboarding","isStripeAccountConnected","createStripeAccount","stripeAccountLink","isCreateStripeAccountButtonDisabled","aria-busy","reportsGridStore","revenueGridStore","balanceGridStore","selectedProducerId","selectProducer","ProducerReportsTable","emptyStateRenderer","TableNoDataOverlay","ProducerAccountPreviewRevenueTransaction","ProducerAccountPreviewBalance","BackButton","producerId","queryParams","producerRevenueReportViewStore","ProducerReportLayout","producerReportViewStore","backButtonRenderer","ProducerReport","ProducerPaymentReportSummary","producerPaymentReportPreviewViewStore","producerRevenueTransferViewStore","currentAccountBalance","newAccountBalance","transferRevenueSuccessModal","MrbPage","submitLabel","CurrencyInputField","allowNegativeValue","producerPreviewViewStore","renderChildRoute","selectedTab","setSelectedTab","producerTypeSlug","producerTypes","podcasterSlug","artistSlug","DatePickerTemplate","producerDashboardTimeRangeViewStore","maxDate","minDate","applyFilter","setToDate","setFromDate","isDateRangeDisabled","timeRangeSelectStore","MrbSimpleSelect","MrbDatePicker","from","selectsStart","isClearable","timeZone","startDate","endDate","to","selectsEnd","NakiTalesStats","nakiTalesStatsInfiniteScrollStore","statsFilterOptions","nakiTalesFilterSelectedOptionValue","setNakiTalesFilterSelectedOptionValue","totalListeners","scrollParentRef","MrbRadioButtons","inputClassNameExtend","numberFormatter","MrbInfiniteScrollGrid","loaderRenderer","loadMoreLoader","StatsWidgetEmptyState","scrollParent","cellRenderer","score","NakiNigunStats","nakiNigunStatsInfiniteScrollStore","nakiNigunFilterSelectedOptionValue","setNakiNigunFilterSelectedOptionValue","producerDashboardViewStore","nakiNigunTotalListeners","nakiTalesTotalListeners","_Fragment","ProducerRevenueRouteStore","ProducerReportService","producerUserAccountService","ProducerUserAccountService","podcastAnalyticsService","PodcastAnalyticsService","nakiNigunAnalyticsService","NakiNigunAnalyticsService","findProducerReports","getProducerAccountSummary","getStripeConnectOnboardingStatus","createStripeConnectLink","getProducerAccountBalance","getProducerAccountRevenueTransaction","getProducers","ProducerRevenueViewStore","_dec9","_dec10","_dec11","_dec12","_dec13","stripeAccountId","_descriptor7","_descriptor8","_descriptor9","_descriptor10","revenueQueryUtility","MrbQueryUtility","revenueFetchResources","ignoreQueryParams","disableUpdateQueryParams","balanceQueryUtility","balanceFetchResources","reportsQueryUtility","reportsFetchResources","moment","utc","subtract","startOf","isoDate","range","setReportsGridStore","MrbTableViewStore","onRowClick","monthOfYear","columns","sortable","cell","ProducerPreviewReportPeriodCell","ProducerPreviewReportPlaybackTimeCell","mrbDefaultFormats","setRevenueGridStore","dateTime","setBalanceGridStore","cellClass","response","fetchReportsData","setData","fetchRevenueData","fetchBalanceData","fetchProducers","fetchAccountSummaryData","setStripeAccountOnboardingStatus","onboardingStatus","setCompletedOnboarding","chargesEnabled","detailsSubmitted","state","setStripeAccountLink","setSummaryData","setProducers","setIsCreateStripeAccountButtonDisabled","returnUrl","generateCurrentUrl","refreshUrl","fetchStripeAccountOnboardingStatus","fetchStripeAccountLink","origin","ProducerRevenueReportRouteStore","getProducerPaymentSummary","findProducerReportItems","findProducerReportPayoutUserEvents","ProducerRevenueReportViewStore","BaseProducerRevenueReportViewStore","maskUserNames","getSumaryData","ProducerRevenueTransferRouteStore","accountId","processPayoutToBankAccount","ProducerRevenueTransferForm","ProducerRevenueTransferViewStore","producerUserAccount","isString","parseFloat","max","onSuccess","values","transferRevenue","goToProducerAccount","getProducerUserAccount","invalidate","producerUserAccountId","errorCode","applicationErrorCodes","producer","insufficientAccountBalance","stripeConnectAccountNotExists","producerUserAccountNotExists","stripeConnectAccountNotEnabled","account","setProducerUserAccount","ProducerDashboardRouteStore","getTrendingPodcastsForProducer","getTrendingAlbumsForProducer","getTrendingAlbumsTotalStreamsForProducer","getTrendingPodcastsTotalStreamsForProducer","timeRangeType","defaultDropdownOptions","tz","guess","ProducerDashboardTimeRangeViewStore","toDate","setDateFilter","newOption","updateFilter","now","endOf","toISOString","previousCycleTo","previousCycleFrom","ProducerDashboardInfiniteScrollStore","MrbBaseInfiniteScrollListViewStore","setPagingFilter","fetchData","MrbInfiniteScrollGridViewStore","generateKey","_item$nakiNigunAlbum","_item$podcast","nakiNigunAlbum","_item$nakiNigunAlbum2","currentCycleScore","page","pageNumber","rpp","ProducerDashboardViewStore","_this$rootStore$userS","_this$rootStore$userS2","producerType","slug","uniqueListeners","dateFilter","nakiNigunPagingFilter","nakiTalesPagingFilter","setNakiNigunPagingFilter","fetchTrendingAlbums","setNakiTalesPagingFilter","fetchTrendingPodcasts","refreshData","fetchTrendingAlbumsTotalStreams","fetchTrendingPodcastsTotalStreams","setNakiNigunTotalListeners","setNakiTalesTotalListeners","getTrendingPodcasts","nakiTalesFilter","getTrendingAlbums","nakiNigunFilter","getTrendingAlbumsTotalStreams","getTrendingPodcastsTotalStreams","ProducerPreviewViewStore","currentRoute","getCurrentRoute","onViewUpdate","prevProps","newProps","tabs","ProducerPreviewRouteStore","ProducerRevenue","ProducerRevenueTemplate","ProducerRevenueReport","ProducerRevenueReportTemplate","ProducerRevenueTransfer","ProducerRevenueTransferTemplate","ProducerPreview","ProducerPreviewTemplate","ProducerDashboard","ProducerDashboardTemplate","authorization","_userStore$applicatio","applicationUser","_userStore$producerTy","_userStore$producerTy2","AlbumPanelHeader","nakiNigunArtistAlbumViewStore","album","toggleAlbumStatus","NakiNigunAlbumUnavailableInApp","setPanelRef","innerRef","year","NakiNigunAlbum","_isTurnedOn","NakiNigunArtist","setNumberOfEnabledAlbums","_numberOfEnabledAlbums","numberOfAlbums","nakiNigunContentType","artists","albums","NakiNigunBulkSelect","shallow","selectAll","isAllSelected","selectedIds","deselectedIds","deselectAll","addSelectedItem","selectedId","deselectedItemIndex","deselectedId","addDeselectedItem","selectedItemIndex","getContentActivityStatusIcon","numberOfEnabledAlbums","NakiNigunArtistCell","nakiNigunManageSelectedItemsViewStore","useCanAccessContent","nakiRadioContentType","nakiNigun","unavailableInNakiTouch","isVisibleInEmbeddedApp","isBulk","artistBulkEditViewStore","getBulkModeSelectIndicatorValue","canAccessArtist","selectedArtistIds","deselectedArtistIds","selectedItemId","artistId","deselectedItemId","canAccess","deselectItem","selectItem","bulkSelectOrDeselect","bulkSelection","NakiNigunAlbumCell","albumBulkEditViewStore","canAccessAlbum","selectedAlbumIds","deselectedAlbumIds","albumId","NakiNigunHomeGridCellTemplate","NakiNigunSearchResultGridCellTemplate","canAccessContent","artistName","nakiNigunHomeViewStore","anyDevice","contentTypeOptions","changeContentTypeFilter","nakiNigunGenericSearchViewStore","subscriptionExist","contentType","nakiNigunHomeFeaturedContentViewStore","isFeaturedScrollable","scrollFeaturedLeft","scrollFeaturedRight","setFeaturedContainerRef","HomeListLoader","bulk","NakiNigunHomeGridCell","orderBySelectStore","NakiNigunManageSelectedItems","NakiNigunHomeFeatured","HomeOrderBySelect","HomeEmptyState","ArtistsList","onClickArtist","isAppearsInScrollable","setAppearsInContainerRef","artist","Artist","isArtistPremium","hasItems","HomeListSearchLoader","NakiNigunSearchResultGridCell","changeIsBulk","saveSelection","NakiNigunArtistAlbumViewStore","createNakiNigunAlbumCoverImageUrl","nakiNigunArtistViewStore","updatingStatus","userDeviceAlbum","albumStatusItem","mobile_embedded","isTurnedOnByDefaultInEmbeddedApp","createRef","panelRef","scrollIntoView","behavior","block","resolve","updateAlbumTurnedOnStatus","canAccessNakiNigun","NakiNigunArtistRouteStore","NakiNigunUserContentService","getNakiNigunArtistWthDeviceSettings","getNakiNigunArtist","getUserDeviceAlbumsByArtist","NakiNigunArtistViewStore","BaseHomePreviewViewStore","createNakiNigunArtistCoverImageUrl","navigateBack","statusToggleLoader","albumIndex","UpdateNakiNigunAlbumStatusOptions","updateNakiNigunAlbumsStatus","getStatusItem","resourceId","setStatusItem","statusItem","override","NakiNigunHomeFeaturedContentViewStore","toggleFeaturedArtistTurnedOn","toggleFeaturedAlbumTurnedOn","groups","container","featuredContainerRef","context","fetchResources","getFeaturedArtists","getFeaturedAlbums","setFeaturedArtists","setFeaturedAlbums","onAlbumTurnedOnStatusChange","changedAlbum","onArtistTurnedOnStatusChange","changedArtist","newValue","onFeaturedAlbumTurnedOnStatusChange","UpdateNakiNigunArtistStatusOptions","updateNakiNigunAlbumsStatusByArtist","onFeaturedArtistTurnedOnStatusChange","onFeaturedArtistBulkEditSuccess","artistsBulkEdit","onFeaturedAlbumBulkEditSuccess","albumsBulkEdit","resetItems","createArtistCoverImageUrl","createAlbumCoverImageUrl","sideScroll","NakiNigunHomeRouteStore","findArtists","findAlbums","genericSearch","NakiNigunHomeContentFilter","NakiNigunHomeViewStore","showSearchView","nakiNigunContentTypeMode","artistOrderOptions","albumOrderOptions","calculateNumberOfRows","queryParamMap","toQuery","toggleArtistTurnedOn","toggleAlbumTurnedOn","NakiNigunGenericSearchViewStore","NakiNigunManageSelectedItemsViewStore","disableConnectDeviceMessage","goToConnectDevice","MrbQuerySimpleSelectStore","selectedOrder","orderOptions","isConnectDeviceMessageVisible","isFirstPageLoad","onAlbumBulkEditSuccess","onArtistBulkEditSuccess","set","destroy","initializeSortingDefault","searchPhrase","appearsInContainerRef","setShowSearchView","_isInitialLoad","setArtists","uniqBy","artistCoverImageId","orderOption","NakiNigunAlbumBulkEditViewStore","updateNakiNigunAlbumsStatusBulk","NakiNigunArtistBulkEditViewStore","updateNakiNigunAlbumsStatusByArtistBulk","isSelectedItemsAny","setIsBulk","success","changeTurnOn","NakiNigunArtistAlbum","NakiNigunArtistAlbumTemplate","NakiNigunHomeFeaturedTemplate","NakiNigunHomeMainView","NakiNigunHomeMainViewTemplate","NakiNigunHomePageHeader","NakiNigunHomePageHeaderTemplate","NakiNigunHomeSearchResults","NakiNigunHomeSearchResultsTemplate","NakiNigunManageSelectedItemsTemplate","Albums","NakiNigunArtistUnavailableInApp","NakiNigunArtistTemplate","NakiNigunHome","NakiNigunHomeTemplate","InfoLabelRenderer","infoLabel","DeviceIdInfoModal","deviceInfo","alt","deviceCreateViewStore","deviceTemporaryCodeToUpper","onClickDeviceIdInfo","deviceIdInfoModal","MrbEditPage","infoLabelRenderer","deviceEditViewStore","deviceDowntimeEditViewStore","cancelLabel","onClickCancel","layoutActions","navigationOptions","isDowntimeDisabled","DeviceEditPageHeader","MrbFormFieldContentLoader","disableNight","disableShabbos","loading","_initial","DowntimeNoteLoader","fieldWidth","DeviceDowntimeLoader","DeviceDowntimeEdit","deviceEmptyStateRender","DeviceCounter","deviceListViewStore","deviceLimit","recordCount","HeaderActions","goToAddNewDevice","isAddDeviceEnabled","MrbListPage","DeviceGridCell","MrbRectangleContentLoader","spacing","xBase","yBase","DeviceCreateRouteStore","DeviceService","registerUserDevice","loadUserDevices","onBeforeEnter","isDeviceSlotAvailable","DeviceCreateForm","extra","DeviceEditForm","DeviceCreateViewStore","inputValue","toUpperCase","localizationService","notExists","alreadyRegistered","toggleCurrentDeviceGuideImage","currentDeviceGuideImage","DeviceDowntimeEditViewStore","searchTerm","timeZones","toLowerCase","indexOf","take","has","add","names","isAllDayChecked","weekDays","dayHours","getWeekDays","getDayHours","sortBy","timeZoneOptions","timezoneSelectStore","MrbFieldSelectStore","isSearchable","isMulti","virtualized","buildForm","day","generateTimeFrameFields","hour","hourAbrv","disableEntireDay","selectedDay","days","disableActionOccured","nightTime","v","shabbosTimeFriday","shabbosTimeSaturday","processFormResult","deviceDowntime","dayTimeFrames","dayAbrv","timeFrames","reduce","result","DeviceEditRouteStore","dayHourService","DayHourCacheService","weekDayService","WeekDayCacheService","updateUserDevice","deleteUserDevice","getUserDevice","getItems","DeviceEditViewStore","registerRouteExitBlocking","changed","isChanged","isFormChanged","prohibitedTime","setIsRouteExitBlocked","DeviceListRouteStore","findUserDeviceForAuthenticatedUser","DeviceListViewStore","joyrideSteps","content","findUserDevices","DeviceCreate","DeviceCreateTemplate","DeviceEdit","DeviceEditTemplate","DeviceList","DeviceListTemplate","UserProfileEditForm","UserProfileChangePasswordForm","UserProfileEditViewStore","user","merge","email","roles","userProfile","BadRequest","UserProfileEditRouteStore","application","baasic","membershipModule","updateAccountInfo","changeUserPassword","userId","changePassword","UserProfilePasswordChangeViewStore","newPassword","password","siteUrl","onCreateSuccess","notifySuccessCreate","clear","userProfilePasswordChangeViewStore","autoComplete","PasswordFieldInfo","userProfileEditViewStore","UserProfilePasswordChange","UserProfilePasswordChangeTemplate","UserProfileGeneralInfo","UserProfileGeneralInfoTemplate","UserEditLoader","button","ChangePasswordLoader","UserProfileEdit","UserProfileEditTemplate","subMenu","SubscriptionPlan","subscriptionPlan","premiumBadge","subscriptionPlans","nakiRadioPremium","NakiRadioPremiumBadge","NakiNigunPremiumBadge","trialPeriodDays","activateTrialViewStore","activateTrial","isSubmitDisabled","trialActivatedModal","SubscriptionPlanLoader","TrialActivatedModal","changeSubscriptionPlanPreviewViewStore","subscription","SubscriptionPlanCard","isPremiumTrialPeriodUsed","product","isNew","price","subscriptionPlanColor","subscriptionPlanIcon","SubscriptionPrice","SubscriptionPolicies","subscriptionChangePreview","currentSubscription","subscriptionStatus","subscriptionStatuses","trial","paymentPolicy","nextBillingDate","newSubscriptionPlan","createTrialSubscriptionPaymentPolicy","isUpgrade","dateOfChange","SubscriptionStartDate","createSubscriptionPaymentPolicy","ProratedInvoicePreview","_ref5","invoicePreview","totalAmount","lineItems","lineItem","UpgradeSuccessModal","_ref6","confirmLabel","billingStartDate","longDate","onClickExplorePremium","changeSubscriptionPlanViewStore","changePlanSuccessModal","isChangePlanDisabled","customerPaymentMethod","changePlan","ChangeSubscriptionPlanLoader","proratedInvoicePreview","CreditCardInfo","creditCard","CreditCard","stripeField","paymentMethodExist","StripeCreditCardField","takePaymentViewStore","stripe","useStripe","elements","useElements","setStripe","isPaymentDisabled","paymentSuccessModal","subscribe","cardElement","getElement","CardElement","onClickSubscribe","TakePaymentHeader","PaymentSuccessModal","activeClassName","iconSize","upgradeTrialViewStore","SubscriptionPlans","premiumSubscriptionsViewStore","setSelectedSubscriptionPlan","isInternalSubscriptionActive","isSubscriptionBundleActive","onClickExploreContent","PremiumContentList","userSubscriptionsPreviewViewStore","UserSubscriptionInfo","pendingSubscription","CustomerPaymentMethodInfo","ActivateTrial","ActivateTrialViewStore","stripeProvider","ActivateTrialTemplate","ChangeSubscriptionPlan","ChangeSubscriptionPlanViewStore","ChangeSubscriptionPlanTemplate","ChangeSubscriptionPlanPreview","ChangeSubscriptionPlanPreviewViewStore","ChangeSubscriptionPlanPreviewTemplate","TakePayment","TakePaymentViewStore","TakePaymentTemplate","UpgradeTrial","UpgradeTrialViewStore","UpgradeTrialTemplate","PremiumSubscriptions","PremiumSubscriptionsViewStore","PremiumSubscriptionsTemplate","UserSubscriptionsPreview","UserSubscriptionsPreviewViewStore","UserSubscriptionsPreviewTemplate","ActivateTrialRouteStore","TakePaymentRouteStore","UpgradeTrialRouteStore","UserSubscriptionsPreviewRouteStore","PremiumSubscriptionsRouteStore","ChangeSubscriptionPlanRouteStore"],"mappings":"+NAAA,oCAKIA,IAAsBC,OAAO,eAAeC,SAAS,CACjDC,KAAM,cACNC,OAAQ,CACJ,CACID,KAAM,qBACNE,QAAS,GACTC,UAAWC,IACXC,MAAOC,IACPC,YAAaA,CAACC,EAAWC,EAASC,KAC9B,MAAM,UAAEC,GAAcD,EAAYE,UAClC,GAAID,EAAUE,gBACV,OAAOC,QAAQC,OAAOL,EAAYM,qB,0GCiB1D,MAAMC,EAAmBC,oBAAS,SAAyBC,GAGvD,IAHwD,cACxDC,EAAa,EACbC,GACHF,EACG,MAAM,aAAEG,EAAY,2BAAEC,GAA+BH,EACrD,OACII,cAACC,IAAMC,SAAQ,CAAAC,SACVL,EACGE,cAACI,IAAiB,CACdL,2BAA4BA,EAC5BF,EAAGA,IAGPG,cAACK,IAAY,CAACT,cAAeA,EAAeC,EAAGA,SAMhDS,mBAvCf,SAAqBC,GAAwB,IAAvB,cAAEX,EAAa,EAAEC,GAAGU,EACtC,MAAM,mBAAEC,GAAuBZ,EAC/B,OACIa,eAACC,IAAc,CAAC7B,MAAOe,EAAeC,EAAGA,EAAEM,SAAA,CACvCM,eAAA,OAAAN,SAAA,CACIH,cAACW,IAAa,CAACC,gBAAgB,4BAA2BT,SACtDH,cAACa,IAAc,CAACjB,cAAeA,EAAeC,EAAGA,MAErDG,cAACP,EAAgB,CAACG,cAAeA,EAAeC,EAAGA,OAEvDG,cAACc,IAAkB,CAACC,YAAaP,EAAoBX,EAAGA,U,iDCkFpE,SAASmB,EAAWrB,GAAsB,IAArB,MAAEd,EAAK,KAAEoC,EAAI,EAAEpB,GAAGF,EACnC,MAAM,YAAEuB,GAAgBrC,EAExB,OACI4B,eAAA,OAAKU,UAAU,uBAAsBhB,SAAA,CACjCH,cAAA,OAAKmB,UAAU,8BAA6BhB,SACxCH,cAACoB,IAAgB,CAACF,YAAaA,EAAaG,aAAcA,IAAMrB,cAACsB,IAAiB,IAAInB,SACjFA,IACGH,cAAA,OAAKmB,UAAU,sBAAqBhB,SAChCH,cAAA,OAAKmB,UAAU,MAAKhB,SAChBH,cAAA,OAAKmB,UAAU,iBAAgBhB,SAC3BM,eAAA,OAAKU,UAAU,kCAAiChB,SAAA,CAC5CH,cAAA,KAAGmB,UAAU,oCAAmChB,SAC3CN,EAAE,iDAEPG,cAACuB,IAAU,CAACJ,UAAU,sCAAqChB,SACtDc,EAAKO,sCAUtCxB,cAAA,OAAAG,SACIH,cAAA,OAAKmB,UAAU,2BAA0BhB,SACrCH,cAACoB,IAAgB,CAACF,YAAaA,EAAaG,aAAcA,IAAMrB,cAACyB,IAAyB,IAAItB,SACzFA,IACGH,cAAA,OAAKmB,UAAU,sBAAqBhB,SAChCM,eAAA,OAAKU,UAAU,MAAKhB,SAAA,CAChBH,cAAA,OAAKmB,UAAU,iBAAgBhB,SAC3BM,eAAA,OAAKU,UAAU,kCAAiChB,SAAA,CAC5CH,cAAA,KAAGmB,UAAU,oCAAmChB,SAC3CN,EAAE,8CAEPG,cAAA,KAAGmB,UAAU,eAAchB,SAAEc,EAAKS,UAAYT,EAAKS,SAASlD,YAGpEwB,cAAA,OAAKmB,UAAU,iBAAgBhB,SAC3BM,eAAA,OAAKU,UAAU,kCAAiChB,SAAA,CAC5CH,cAAA,KAAGmB,UAAU,oCAAmChB,SAC3CN,EAAE,8CAEPG,cAAA,KAAGmB,UAAU,eAAchB,SAAEc,EAAKU,UAAYV,EAAKU,SAASnD,YAGpEwB,cAAA,OAAKmB,UAAU,iBAAgBhB,SAC3BM,eAAA,OAAKU,UAAU,eAAchB,SAAA,CACzBH,cAAA,KAAGmB,UAAU,oCAAmChB,SAC3CN,EAAE,4CAENoB,EAAKW,0BAanCtB,mBA/Jf,SAA4BC,GAA+B,IAA9B,qBAAEsB,EAAoB,EAAEhC,GAAGU,EACpD,MAAM,YACFW,EAAW,KACXD,EAAI,cACJa,EACA1C,WAAW,yBAAE2C,GAA0B,oBACvCC,GACAH,EAEJ,OACIpB,eAACwB,IAAc,CAACpD,MAAOgD,EAAsBhC,EAAGA,EAAGqC,uBAAuB,eAAc/B,SAAA,CACpFH,cAACW,IAAa,CAAAR,SACVH,cAACmC,IAAiB,CAACtD,MAAOgD,EAAsBhC,EAAGA,MAEvDG,cAACoC,IAAoB,CAACC,kBAAkB,6BAA4BlC,SAChEH,cAACoB,IAAgB,CAACF,YAAaA,EAAaG,aAAcA,IAAMrB,cAACsC,IAAe,IAAInC,SAC/EA,IACGM,eAACR,IAAMC,SAAQ,CAAAC,SAAA,CACXH,cAAA,OAAAG,SACIH,cAAA,OAAKmB,UAAU,sBAAqBhB,SAChCM,eAAA,OACIU,UAAWoB,YACP,gCACCP,EAAoBQ,0BAA6C,KAAjB,gBACnDrC,SAAA,CAEFH,cAACyC,IAAK,CAACC,IAAKZ,IACZ9B,cAAC2C,IAAY,CACTC,UAAW3B,EAAK2B,UAChBC,2BAA4Bb,EAAoBc,0BAMhE9C,cAAA,OAAKmB,UAAU,mCAAkChB,SAC7CM,eAAA,OAAKU,UAAU,sBAAqBhB,SAAA,CAChCM,eAAA,OAAKU,UAAU,qBAAoBhB,SAAA,CAC/BH,cAAA,KAAGmB,UAAU,oCAAmChB,SAC3CN,EAAE,2CAEPG,cAAA,KACImB,UAAWoB,YACP,oCACCP,EAAoBQ,0BAA6C,KAAjB,gBACnDrC,SAEDc,EAAK8B,SAERf,EAAoBQ,2BAA6BxC,cAACgD,IAAuB,IAC1EjB,EAAyBkB,2BACtBhC,EAAKiC,mCAELlD,cAACC,IAAMC,SAAQ,CAAAC,SACXM,eAAA,KAAGU,UAAU,kCAAiChB,SAAA,CAAC,0BACnB,IACxBH,cAAA,QAAMmB,UAAU,qCAAoChB,SAC/CgD,IAAcC,OAAOnC,EAAKiC,iCAAkC,CACzDE,OAAQC,IAAoBC,QAAQC,iBAQ5D9C,eAAA,OAAKU,UAAU,2CAA0ChB,SAAA,CACrDH,cAAA,KAAGmB,UAAU,oCAAmChB,SAC3CN,EAAE,sDAENoB,EAAKuC,iBACFxD,cAAA,KAAGyD,KAAMxC,EAAKuC,gBAAiBE,OAAO,SAASC,IAAI,aAAYxD,SAC1Dc,EAAKuC,iCAW1CxD,cAACgB,EAAW,CAACnC,MAAOgD,EAAsBZ,KAAMA,EAAMpB,EAAGA,UCQrE,SAAS+D,EAAWjE,GAAsB,IAArB,MAAEd,EAAK,KAAEoC,EAAI,EAAEpB,GAAGF,EACnC,MAAM,YAAEuB,GAAgBrC,EAExB,OACI4B,eAAA,OAAKU,UAAU,uBAAsBhB,SAAA,CACjCH,cAAA,OAAKmB,UAAU,8BAA6BhB,SACxCH,cAACoB,IAAgB,CAACF,YAAaA,EAAaG,aAAcA,IAAMrB,cAACsB,IAAiB,IAAInB,SACjFA,IACGH,cAAA,OAAKmB,UAAU,sBAAqBhB,SAChCH,cAAA,OAAKmB,UAAU,MAAKhB,SAChBH,cAAA,OAAKmB,UAAU,iBAAgBhB,SAC3BM,eAAA,OAAKU,UAAU,kCAAiChB,SAAA,CAC5CH,cAAA,KAAGmB,UAAU,oCAAmChB,SAC3CN,EAAE,iDAEPG,cAACuB,IAAU,CAACJ,UAAU,sCAAqChB,SACtDc,EAAKO,sCAUtCxB,cAAA,OAAAG,SACIH,cAAA,OAAKmB,UAAU,2BAA0BhB,SACrCH,cAACoB,IAAgB,CAACF,YAAaA,EAAaG,aAAcA,IAAMrB,cAACyB,IAAyB,IAAItB,SACzFA,IACGM,eAAA,OAAKU,UAAU,sBAAqBhB,SAAA,CAChCM,eAAA,OAAKU,UAAU,kCAAiChB,SAAA,CAC5CH,cAAA,KAAGmB,UAAU,oCAAmChB,SAC3CN,EAAE,8CAEPG,cAAA,KAAGmB,UAAU,eAAchB,SAAEc,EAAKS,UAAYT,EAAKS,SAASlD,UAGhEiC,eAAA,OAAKU,UAAU,kCAAiChB,SAAA,CAC5CH,cAAA,KAAGmB,UAAU,oCAAmChB,SAC3CN,EAAE,8CAEPG,cAAA,KAAGmB,UAAU,eAAchB,SAAEc,EAAKU,UAAYV,EAAKU,SAASnD,UAGhEiC,eAAA,OAAKU,UAAU,eAAchB,SAAA,CACzBH,cAAA,KAAGmB,UAAU,oCAAmChB,SAC3CN,EAAE,4CAENoB,EAAKW,sBAW3BtB,mBAvJf,SAA4BC,GAA+B,IAA9B,qBAAEsD,EAAoB,EAAEhE,GAAGU,EACpD,MAAM,YACFW,EAAW,KACXD,EAAI,cACJa,EACA1C,WAAW,yBAAE2C,GAA0B,oBACvCC,GACA6B,EACJ,OACIpD,eAACwB,IAAc,CAACpD,MAAOgF,EAAsBhE,EAAGA,EAAGqC,uBAAuB,eAAc/B,SAAA,CACpFH,cAACW,IAAa,CAAAR,SACVH,cAACmC,IAAiB,CAACtD,MAAOgF,EAAsBhE,EAAGA,MAEvDG,cAACoC,IAAoB,CAACC,kBAAkB,6BAA4BlC,SAChEH,cAACoB,IAAgB,CAACF,YAAaA,EAAaG,aAAcA,IAAMrB,cAACsC,IAAe,IAAInC,SAC/EA,IACGM,eAACR,IAAMC,SAAQ,CAAAC,SAAA,CACXH,cAAA,OAAAG,SACIH,cAAA,OAAKmB,UAAU,sBAAqBhB,SAChCM,eAAA,OACIU,UAAWoB,YACP,gCACCP,EAAoBQ,0BAA6C,KAAjB,gBACnDrC,SAAA,CAEFH,cAACyC,IAAK,CAACC,IAAKZ,IACZ9B,cAAC2C,IAAY,CACTC,UAAW3B,EAAK2B,UAChBC,2BAA4Bb,EAAoBc,0BAKhE9C,cAAA,OAAKmB,UAAU,mCAAkChB,SAC7CM,eAAA,OAAKU,UAAU,sBAAqBhB,SAAA,CAChCM,eAAA,OAAKU,UAAU,qBAAoBhB,SAAA,CAC/BH,cAAA,KAAGmB,UAAU,oCAAmChB,SAC3CN,EAAE,2CAEPG,cAAA,KACImB,UAAWoB,YACP,oCACCP,EAAoBQ,0BAA6C,KAAjB,gBACnDrC,SAEDc,EAAK8B,SAERf,EAAoBQ,2BAA6BxC,cAAC8D,IAAuB,IAC1E/B,EAAyBkB,2BACtBhC,EAAKiC,mCAELlD,cAACC,IAAMC,SAAQ,CAAAC,SACXM,eAAA,KAAGU,UAAU,kCAAiChB,SAAA,CAAC,0BACnB,IACxBH,cAAA,QAAMmB,UAAU,qCAAoChB,SAC/CgD,IAAcC,OAAOnC,EAAKiC,iCAAkC,CACzDE,OAAQC,IAAoBC,QAAQC,iBAQ5D9C,eAAA,OAAKU,UAAU,2CAA0ChB,SAAA,CACrDH,cAAA,KAAGmB,UAAU,oCAAmChB,SAC3CN,EAAE,sDAENoB,EAAKuC,iBACFxD,cAAA,KAAGyD,KAAMxC,EAAKuC,gBAAiBE,OAAO,SAASC,IAAI,aAAYxD,SAC1Dc,EAAKuC,iCAW1CxD,cAAC4D,EAAW,CAAC/E,MAAOgF,EAAsB5C,KAAMA,EAAMpB,EAAGA,U,OCpBrE,MAAMkE,EAAcrE,oBAAS,SAAoBC,GAAgB,IAAf,MAAEd,EAAK,EAAEgB,GAAGF,EAC1D,MAAM,KAAEsB,EAAI,YAAEC,GAAgBrC,EAE9B,OACImB,cAACoB,IAAgB,CAACF,YAAaA,EAAaG,aAAcA,IAAMrB,cAACgE,IAA+B,IAAI7D,SAC/FA,IACGH,cAACC,IAAMC,SAAQ,CAAAC,SACVc,GAAQA,EAAKgD,aAAehD,EAAKgD,YAAYC,OAAS,GACnDlE,cAAA,OAAKmB,UAAU,sBAAqBhB,SAChCH,cAAA,OAAKmB,UAAU,uBAAsBhB,SACjCH,cAAA,OAAAG,SACKgE,cAAIlD,EAAKgD,aAAcG,GACpBpE,cAACqE,IAAc,CAEXC,aAAcF,EAAWG,GACzBV,qBAAsBhF,EACtBgB,EAAGA,GAHEuE,EAAWG,mBAgB5D,SAASX,EAAWY,GAAsB,IAArB,MAAE3F,EAAK,KAAEoC,EAAI,EAAEpB,GAAG2E,EACnC,MAAM,YAAEtD,GAAgBrC,EAExB,OACImB,cAACC,IAAMC,SAAQ,CAAAC,UACTc,GAASA,GAAQA,EAAKO,uBACpBxB,cAAA,OACImB,UAAWoB,YACP,wBACCtB,GAASA,GAAQA,EAAKO,uBAA0B,uBAAyB,MAC5ErB,SAEFH,cAAA,OAAKmB,UAAU,8BAA6BhB,SACxCH,cAACoB,IAAgB,CAACF,YAAaA,EAAaG,aAAcA,IAAMrB,cAACsB,IAAiB,IAAInB,SACjFA,IACGH,cAAA,OAAKmB,UAAU,sBAAqBhB,SAChCH,cAAA,OAAKmB,UAAU,MAAKhB,SAChBH,cAAA,OAAKmB,UAAU,iBAAgBhB,SAC3BM,eAAA,OAAKU,UAAU,kCAAiChB,SAAA,CAC5CH,cAAA,KAAGmB,UAAU,oCAAmChB,SAC3CN,EAAE,iDAEPG,cAACuB,IAAU,CAACJ,UAAU,sCAAqChB,SACtDc,EAAKO,wCAU1C,OAKDlB,I,EAAAA,eAjIf,SAAiCC,GAA+B,IAA9B,qBAAEsD,EAAoB,EAAEhE,GAAGU,EACzD,MAAM,YAAEW,EAAW,KAAED,EAAI,cAAEa,EAAa,wBAAE2C,GAA4BZ,EAEtE,OACIpD,eAACwB,IAAc,CAACpD,MAAOgF,EAAsBhE,EAAGA,EAAGqC,uBAAuB,eAAc/B,SAAA,CACpFH,cAACW,IAAa,CAAAR,SACVH,cAACmC,IAAiB,CAACtD,MAAOgF,EAAsBa,kBAAkB,EAAM7E,EAAGA,MAE/EG,cAACoC,IAAoB,CAACC,kBAAkB,6BAA4BlC,SAChEH,cAACoB,IAAgB,CAACF,YAAaA,EAAaG,aAAcA,IAAMrB,cAACsC,IAAe,IAAInC,SAC/EA,IACGM,eAACR,IAAMC,SAAQ,CAAAC,SAAA,CACXH,cAAA,OAAAG,SACIH,cAAA,OAAKmB,UAAU,sBAAqBhB,SAChCM,eAAA,OAAKU,UAAU,gCAA+BhB,SAAA,CAC1CH,cAACyC,IAAK,CAACC,IAAKZ,IACZ9B,cAAC2C,IAAY,CACTC,UAAW3B,EAAK2B,UAChBC,2BAA4B4B,WAM5CzE,cAAA,OAAKmB,UAAU,mCAAkChB,SAC7CM,eAAA,OAAKU,UAAU,sBAAqBhB,SAAA,CAChCM,eAAA,OAAKU,UAAU,qBAAoBhB,SAAA,CAC/BH,cAAA,KAAGmB,UAAU,oCAAmChB,SAC3CN,EAAE,iDAEPG,cAAA,KAAGmB,UAAU,oCAAmChB,SAAEc,EAAK8B,WAG3DtC,eAAA,OAAKU,UAAU,2CAA0ChB,SAAA,CACrDH,cAAA,KAAGmB,UAAU,oCAAmChB,SAC3CN,EAAE,sDAENoB,EAAKuC,iBACFxD,cAAA,KAAGyD,KAAMxC,EAAKuC,gBAAiBE,OAAO,SAASC,IAAI,aAAYxD,SAC1Dc,EAAKuC,iCAW1CxD,cAAC4D,EAAW,CAAC/E,MAAOgF,EAAsB5C,KAAMA,EAAMpB,EAAGA,IAEzDG,cAAC+D,EAAW,CAAClF,MAAOgF,EAAsBhE,EAAGA,U,SChD1C8E,I,EAAAA,EAVdC,aACG,CAACxF,EAAWyF,IAAmB,IAAIC,IAAc1F,EAAWyF,IAC5D,gBACHE,CAAAC,EAHD,cAImB/E,IAAMgF,UACrBC,SACI,OAAOlF,cAACmF,EAAY,IAAKC,KAAKC,YAErCL,ECGcM,I,EAAAA,EAXdV,aACG,CAACxF,EAAWyF,IACR,IAAIU,IAAqBnG,EAAWyF,IACxC,uBACHE,CAAAC,EAJD,cAK0B/E,IAAMgF,UAC5BC,SACI,OAAOlF,cAACwF,EAAmB,IAAKJ,KAAKC,YAE5CL,ECEcS,I,EAAAA,EAXdb,aACG,CAACxF,EAAWyF,IACR,IAAIa,IAAqBtG,EAAWyF,IACxC,uBACHE,CAAAC,EAJD,cAK0B/E,IAAMgF,UAC5BC,SACI,OAAOlF,cAAC2F,EAAmB,IAAKP,KAAKC,YAE5CL,ECEcY,MAXdhB,aACG,CAACxF,EAAWyF,IACR,IAAIgB,IAA0BzG,EAAWyF,IAC7C,uBACHE,CAAAC,EAJD,cAK+B/E,IAAMgF,UACjCC,SACI,OAAOlF,cAAC8F,EAAwB,IAAKV,KAAKC,YAEjDL,E,wBCwDce,MAnEoBxF,IAAmF,IAAlF,IAAEyF,EAAM,EAAC,MAAEX,EAAK,gBAAEY,EAAkB,UAAS,gBAAEC,EAAkB,WAAW3F,EAC5G,MAAM4F,EAAMC,iBAAO,OACZC,EAAaC,GAAkBC,mBAAS,GAE/CC,qBAAU,KACNF,EAAeH,EAAIM,QAAQC,eAC5B,IAEH,MAAMC,EAAcC,OAAOC,WAErBC,EAAO,GAGPC,EAAYJ,EAAc,IAAO,IAAM,IACvCK,EAAWL,EAAc,IAAM,IAAM,IAE3C,IAGIM,EACAC,EAJAC,EAAI,EACJC,EAAK,EAKLT,EAAc,KACdX,EAAM,EACNiB,EAAMI,KAAKC,OAAOX,EAAc,KAAO,KACvCO,EAAOG,KAAKC,OAAOX,EAAc,IAAMM,IAChCN,EAAc,KACrBM,EAAMI,KAAKC,OAAOX,EAAc,IAAM,KACtCO,EAAOG,KAAKC,MAAMX,EAAcM,EAAMA,GAAO,IAC7CjB,EAAM,IAENiB,EAAMI,KAAKC,OAAOX,EAAc,IAAM,KACtCO,EAAOG,KAAKC,MAAMX,EAAcM,EAAMA,GAAO,IAGjD,IAAK,IAAIM,EAAI,EAAGA,EAAIN,EAAKM,IAAK,CAC1B,IAAK,IAAIC,EAAI,EAAGA,EAAIxB,EAAKwB,IACrBV,EAAKW,KACDzH,cAACC,IAAMC,SAAQ,CAAAC,SAEXH,cAAA,QAAMmH,EAAGA,EAAGO,EAAGN,EAAIO,GAAG,IAAIC,GAAG,IAAIC,MAAOb,EAAW,EAAGc,OAAQd,EAAW,MAAM,GAAAe,OAF3DR,EAAC,KAAAQ,OAAIP,KAKjCJ,GAAML,EAEVK,EAAK,EAELD,GAAKD,EAGT,OACIlH,cAAA,OAAKmG,IAAKA,EAAIhG,SACVH,cAACgI,IAAa,CACVC,MAAO,EACPJ,MAAM,OACNC,OAAO,OACPI,QAAO,OAAAH,OAAS1B,EAAW,KAAA0B,OAAI/B,EAAMe,GACrCd,gBAAiBA,EACjBC,gBAAiBA,KACbb,EAAKlF,SAER2G,OC/CjB,MAAMqB,EAAezI,oBAAS,SAAqBC,GAAgB,IAAf,MAAEd,EAAK,EAAEgB,GAAGF,EAC5D,MAAM,MAAEyI,EAAK,YAAEC,EAAW,UAAEC,GAAczJ,EAC1C,OACImB,cAAA,OAAKmB,UAAU,qBAAoBhB,SAC9BgE,cAAIiE,GAAO,CAACG,EAAMhB,IAEXvH,cAACwI,EAAU,CAEPD,KAAM,IAAKA,EAAME,MAAOlB,GACxBmB,SAAUN,EAAMlE,OAAS,IAAMqD,EAC/Be,UAAWA,EACXK,SAAUN,EAAY9D,KAAOgE,EAAKhE,GAClC1E,EAAGA,GALE0I,EAAKhE,WAalC,SAASiE,EAAUhE,GAA8C,IAA7C,KAAE+D,EAAI,EAAE1I,EAAC,SAAE8I,EAAQ,SAAED,EAAQ,UAAEJ,GAAW9D,EAC1D,OACI/D,eAAA,OAAKU,UAAU,kBAAiBhB,SAAA,CAC5BH,cAAA,QACImB,UAAWoB,YACP,gCACAoG,EAAW,SAAW,GACtBJ,EAAKE,MAAQH,EAAY,yBAA2B,IACtDnI,SAEDN,EAAE0I,EAAKxF,UAEV2F,GAAY1I,cAAA,QAAMmB,UAAU,4BAK1C,MAAMyH,EAAiBlJ,oBAAS,SAAuBmJ,GAAgB,IAAf,MAAEhK,EAAK,EAAEgB,GAAGgJ,EAChE,MAAM,SAAEC,EAAQ,YAAET,EAAW,aAAEU,EAAY,gBAAEC,GAAoBnK,EACjE,OACI4B,eAAA,OAAAN,SAAA,CACIH,cAAA,OAAKmB,UAAU,yBACfV,eAAA,OACIU,UAAWoB,YACP,kBAAkB,wBAADwF,OACOiB,EAAkB,gBAAkB,YAC5D,mBACF7I,SAAA,CAED6I,GACGhJ,cAACiJ,IAAS,CACNC,MAAOb,EAAYc,gBAAkBd,EAAYc,gBAAkB,OACnEtJ,EAAGA,EACHwC,kBAAkB,iCAClB+G,QAASL,IAGjB/I,cAACiJ,IAAS,CACNC,MAAOb,EAAYgB,gBAAkBhB,EAAYgB,gBAAkB,WACnExJ,EAAGA,EACHuJ,QAASN,aAYdQ,MAlFf,SAAyC/I,GAA4C,IAA3C,MAAE1B,EAAK,SAAEsB,EAAQ,iBAAEoJ,EAAgB,EAAE1J,GAAGU,EAC9E,OACIE,eAAA,OAAAN,SAAA,CACIH,cAACmI,EAAY,CAACtJ,MAAOA,EAAOgB,EAAGA,IAC9BM,EACAoJ,EAAmBA,EAAiB,CAAE1K,UAAWmB,cAAC4I,EAAc,CAAC/J,MAAOA,EAAOgB,EAAGA,Q,QCkChF2J,MAzCf,SAA8CjJ,GAAsB,IAArB,YAAEQ,EAAW,EAAElB,GAAGU,EAC7D,OACIP,cAACyJ,IAAQ,CAAC1I,YAAaA,EAAalB,EAAGA,EAAG6J,2BAA2B,EAAMvJ,SACvEH,cAACyJ,IAAQ,CAAC1I,YAAaA,EAAaI,UAAU,2CAA0ChB,SACpFM,eAAA,OAAAN,SAAA,CACIH,cAAA,OAAKmB,UAAU,gBAAehB,SAC1BH,cAAA,MAAAG,SAAI,gCAERM,eAAA,OAAKU,UAAU,cAAahB,SAAA,CACxBH,cAAA,KAAGmB,UAAU,kCAAiChB,SAAC,yEAG/CM,eAAA,MAAIU,UAAU,eAAchB,SAAA,CACxBH,cAAA,MAAAG,SAAI,mBACJH,cAAA,MAAAG,SAAI,kBACJH,cAAA,MAAAG,SAAI,2BAIZM,eAAA,OAAKU,UAAU,2BAA0BhB,SAAA,CACrCH,cAACiJ,IAAS,CACNpJ,EAAGA,EACHqJ,MAAM,mBACNE,QAASrI,EAAY4I,OAAOC,qCAC5BvH,kBAAkB,6DAEtBrC,cAACiJ,IAAS,CAACpJ,EAAGA,EAAGqJ,MAAM,QAAQE,QAASrI,EAAY8I,mB,SCoB5E,MAAMC,EAAcpK,oBAAS,SAAoBC,GAAmD,IAAlD,MAAEoD,EAAK,MAAElE,EAAK,EAAEgB,EAAC,YAAEkK,EAAW,KAAE9I,EAAI,QAAE+I,GAASrK,EAC7F,MAAM,WACFsK,EAAU,WACVC,EAAU,uBACVC,EAAsB,oBACtBnI,EAAmB,UACnBoI,EAAS,YACTC,EACAC,uBAAuB,oBAAEC,GACzBnL,WAAW,gBAAEoL,IACb3L,EACJ,OACImB,cAACC,IAAMC,SAAQ,CAAAC,SACXM,eAAA,OAAKU,UAAU,8FAA6FhB,SAAA,CACxGM,eAAA,OAAKU,UAAU,yDAAwDhB,SAAA,CACnEH,cAAA,KACImB,UAAS,yCAAA4G,OACLgC,EAAc,gBAAkB,GAAE,wBAI1CtJ,eAAA,OAAKU,UAAU,8CAA6ChB,SAAA,CACxDM,eAAA,OAAKU,UAAU,6CAA4ChB,SAAA,CACvDH,cAAA,KAAGmB,UAAYa,EAAoBQ,0BAA6C,KAAjB,eAAsBrC,SAChF4C,IAEJwH,GACGA,EAAoB3H,YACnBZ,EAAoBc,kBACjB9C,cAAA,KAAGmB,UAAU,8EAGvBa,EAAoBQ,2BAA6BxC,cAAC8D,IAAuB,UAInFrD,eAAA,OAAKU,UAAU,yDAAwDhB,SAAA,CACnEH,cAAA,OAAKmB,UAAU,iEAAgEhB,WACxEiK,IAAcC,IACbrK,cAAA,KAAGmB,UAAU,4CAA2ChB,SAK9CN,EAJJwK,GAAgBD,EAEXC,EAEC,qDADA,uDAFA,uEAOnBG,EAAgBC,YAAc,GAAKzI,EAAoBQ,2BACpDxC,cAAC0K,IAAa,CACV9H,UAAW2H,EAAoB3H,UAC/B6B,wBAAyBzC,EAAoBc,iBAC7CjD,EAAGA,EAAEM,SAELH,cAACiJ,IAAS,CACN1E,GAAE,qBAAAwD,OAAuB9G,EAAKsD,IAC9BoG,MAAOV,EACPW,SAAUV,EACVW,SAAWC,IACPA,EAAMC,iBACND,EAAME,kBACNb,GAAwBF,IAE5BgB,KAAK,4CACL5I,kBAAmBE,YACf,2BACA0H,EAAa,yBAA2B,+BAKvDD,EAAQkB,QACLlL,cAACiJ,IAAS,CACN5G,kBAAkB,iCAClB6G,MAAM,SACNrJ,EAAGA,EACHuJ,QAAU0B,IACNA,EAAMC,iBACND,EAAME,kBACNhB,EAAQkB,OAAO9B,QAAQnI,MAIlC+I,EAAQmB,MACLnL,cAACiJ,IAAS,CACNC,MAAM,OACNrJ,EAAGA,EACHuJ,QAAU0B,IACNA,EAAMC,iBACND,EAAME,kBACNhB,EAAQmB,KAAK/B,QAAQnI,iBAUrD,SAASmK,EAAY5G,GAAgC,IAA/B,SAAE6G,EAAQ,eAAEC,GAAgB9G,EAE9C,OADA6G,EAAWE,kBAAQF,EAAU,CAAC,gBAAiB,oBAAqB,qBAEhE5K,eAAA,OAAKU,UAAU,yBAAwBhB,SAAA,CACnCH,cAAA,OAAKmB,UAAU,iBAAgBhB,SAC3BM,eAAA,KAAGU,UAAU,wBAAuBhB,SAAA,CAAC,aAAWmL,EAAe,SAEnEtL,cAAA,OAAKmB,UAAU,iBAAgBhB,SAC1BgE,cACGkH,GACCG,IAAO,IAAAC,EAAAC,EAAAC,EAAA,OACG,OAAPH,QAAO,IAAPA,OAAO,EAAPA,EAASA,UACLxL,cAAA,OAAAG,SACK,CACU,OAAPqL,QAAO,IAAPA,GAAgB,QAATC,EAAPD,EAASA,eAAO,IAAAC,OAAT,EAAPA,EAAkB1I,MACX,OAAPyI,QAAO,IAAPA,GAAgB,QAATE,EAAPF,EAASA,eAAO,IAAAE,OAAT,EAAPA,EAAkBE,UACX,OAAPJ,QAAO,IAAPA,GAAgB,QAATG,EAAPH,EAASA,eAAO,IAAAG,OAAT,EAAPA,EAAkBE,UACpBC,KAAK,MALDN,EAAQjH,YAc9C,SAASwH,EAAUlD,GAA4B,IAA3B,OAAEmD,EAAM,aAAEC,GAAcpD,EAExC,OADAmD,EAAST,kBAAQS,EAAQ,CAAC,gBAEtBvL,eAAA,OAAKU,UAAU,MAAKhB,SAAA,CAChBH,cAAA,OAAKmB,UAAU,iBAAgBhB,SAC3BM,eAAA,KAAGU,UAAU,wBAAuBhB,SAAA,CAAC,WAAS8L,EAAa,SAE/DjM,cAAA,OAAKmB,UAAU,iBAAgBhB,SAC1BgE,cAAI6H,GAASE,IAAK,IAAAC,EAAA,OAAU,OAALD,QAAK,IAALA,OAAK,EAALA,EAAOA,QAASlM,cAAA,OAAAG,SAA0B,OAAL+L,QAAK,IAALA,GAAY,QAAPC,EAALD,EAAOA,aAAK,IAAAC,OAAP,EAALA,EAAcpJ,OAAzBmJ,EAAM3H,YAMzD7E,0BArLf,SAA+Ca,GAA2D,IAA1D,wCAAE6L,EAAuC,QAAEpC,EAAO,EAAEnK,GAAGU,EACnG,MAAM,WAAE8L,EAAU,YAAEtC,EAAW,eAAEuC,EAAc,eAAEhB,EAAc,aAAEW,GAC7DG,EAEJ,OACIpM,cAACuM,IAAmB,CAChBxJ,MAAOsJ,EAAW7N,KAElBqB,EAAGA,EACHkK,YAAaA,EACbyC,iBAAkBF,EAClBG,sBAAsB,oBACtBC,aAAerH,GACXrF,cAAC8J,EAAW,IACJzE,EACJxG,MAAOuN,EACPnL,KAAMoL,EACNrC,QAASA,IAEf7J,SAEDA,IACGM,eAAA,OAAAN,SAAA,CACKkM,EAAWhB,UAAYC,EAAiB,GACrCtL,cAACoL,EAAY,CAACC,SAAUgB,EAAWhB,SAAUC,eAAgBA,IAEhEe,EAAWL,QAAUC,EAAe,GACjCjM,cAAC+L,EAAU,CAACC,OAAQK,EAAWL,OAAQC,aAAcA,Y,gBCM7E,MAAMU,EAA+BjN,oBAAS,SAAqCC,GAAkC,IAAjC,MAAEd,EAAK,OAAE+N,EAAM,SAAEC,EAAQ,EAAEhN,GAAGF,EAC9G,MAAM,YAAE0I,EAAW,aAAEU,GAAiBlK,EAEtC,OACI4B,eAAA,OAAAN,SAAA,CACIH,cAAA,OAAKmB,UAAU,yBACfV,eAAA,OAAKU,UAAU,qDAAoDhB,SAAA,CAC/DH,cAACiJ,IAAS,CACNC,MAAOb,EAAYc,gBAAkBd,EAAYc,gBAAkB,OACnEtJ,EAAGA,EACHwC,kBAAkB,iCAClB+G,QAASL,IAEb/I,cAACiJ,IAAS,CAACC,MAAO0D,EAAS,OAAS,kBAAmB/M,EAAGA,EAAGiN,KAAK,SAAS1D,QAASyD,aAWrFnN,2BA3Df,SAA2Ca,GAA2E,IAA1E,oCAAEwM,EAAmC,4BAAEC,EAA2B,EAAEnN,GAAGU,EAC/G,MAAM,KAAE0M,EAAI,OAAEL,GAAWG,EACzB,OACItM,eAACR,IAAMC,SAAQ,CAAAC,SAAA,CACXH,cAACW,IAAa,CAACC,gBAAgB,4BAA2BT,SACtDH,cAAA,OAAKmB,UAAU,4FAA2FhB,SACtGM,eAACyM,IAAa,CACVC,UAAU,wCACVxD,OAAQ,CAAEpF,GAAIyI,EAA4BI,WAAYjN,SAAA,CAEtDH,cAAA,KAAGmB,UAAU,sDAAwD,cAKjFnB,cAACqN,IAAiB,CAACJ,KAAMA,EAAMK,qBAAqB,EAAOzN,EAAGA,EAAEM,SAC5DH,cAACuN,GAAwB,CACrB1O,MAAOmO,EACPJ,OAAQA,EACRrD,iBAAmBlE,GACfrF,cAAC2M,EAA4B,IAAKtH,EAAOxF,EAAGA,EAAG+M,OAAQA,EAAQC,SAAUI,EAAKJ,WAElFhN,EAAGA,EAAEM,SAELH,cAAA,OAAKmB,UAAU,MAAKhB,SAChBH,cAAA,OAAKmB,UAAU,gBAAehB,SAC1BH,cAACwN,IAAa,CAAC3N,EAAGA,EAAG4N,MAAOR,EAAKS,EAAE,QAAS9M,gBAAgB,mCCLzElB,2BAxBf,SAAmCa,GAAgB,IAAf,MAAE1B,EAAK,EAAEgB,GAAGU,EAC5C,MAAM,kBACFoN,EAAiB,oBACjBpD,EACAnL,WAAW,gBAAEoL,IACb3L,EAEJ,OACI4B,eAAA,OAAKU,UAAU,iBAAgBhB,SAAA,CAC3BH,cAAA,OAAKmB,UAAU,iCAAgChB,SAAEoK,GAAuBA,EAAoBxH,QAC3FyH,EAAgBC,YAAc,GAC3BzK,cAACC,IAAMC,SAAQ,CAAAC,SACXH,cAAC4N,IAAgB,CAAC/O,MAAO8O,EAAmBnD,gBAAiBA,EAAiB3K,EAAGA,Y,mBCVtFgO,OAJf,SAA4BxI,GACxB,OAAOrF,cAAC+F,EAA0B,IAAKV,KCoE3C,MAAMyI,GAAYpO,oBAAS,SAAkBC,GAA4C,IAA3C,KAAEsB,EAAI,+BAAE8M,GAAgCpO,EAClF,MAAM,eAAEqO,EAAc,YAAEC,EAAW,cAAEC,GAAkBH,EACjDI,GAAkG,IAArFC,oBAAUJ,GAAiBK,GAAkBA,EAAcC,UAAYrN,EAAKsD,KAC/F,OACI9D,eAAA,OAAKU,UAAU,qDAAoDhB,SAAA,CAC/DM,eAAA,OACIU,UAAU,sBACViI,QAAS+E,EAAa,IAAMD,EAAcjN,GAAQ,IAAMgN,EAAYhN,GAAMd,SAAA,CAEzEgO,EAAanO,cAACuO,GAAgB,IAAMvO,cAACwO,GAAiB,IAEvDxO,cAAA,OAAKmB,UAAU,6CAA4ChB,SACvDH,cAACyC,IAAK,CAACC,IAAKzB,EAAKwN,gBAGzBzO,cAAA,OAAKmB,UAAU,sBAAqBhB,SAAEc,EAAK8B,cAKvD,SAASwL,KACL,OAAOvO,cAAA,OAAKmB,UAAU,qEAG1B,SAASqN,KACL,OAAOxO,cAAA,OAAKmB,UAAU,sEAG1B,SAASuN,GAAgBlK,GAAuB,IAAtB,aAAEmK,EAAY,EAAE9O,GAAG2E,EACzC,MAAM,OAAEoK,GAAWD,EACb5L,EAAQ8L,kBAAQD,EAAOE,QACvBjP,EAAE,8DACFA,EAAE,wEAAyE,CAAEiP,OAAQF,EAAOE,SAClG,OACI9O,cAAA,OAAKmB,UAAU,qCAAoChB,SAC/CM,eAAA,OAAKU,UAAU,2DAA0DhB,SAAA,CACrEH,cAAA,OAAKmB,UAAU,qBAAoBhB,SAC/BH,cAAA,KAAGmB,UAAU,gDAEjBV,eAAA,OAAKU,UAAU,qBAAoBhB,SAAA,CAC/BH,cAAA,MAAAG,SAAK4C,IACL/C,cAAA,KAAAG,SAAIN,EAAE,gFAO1B,MAAMkP,GAA6BrP,oBAAS,SAAmCmJ,GAI3E,IAJ4E,MAC5EhK,EAAK,kCACLmQ,EAAiC,EACjCnP,GACHgJ,EACG,MAAM,SAAEC,EAAQ,YAAET,EAAW,aAAEU,EAAY,gBAAEC,GAAoBnK,GAC3D,sBAAEoQ,GAA0BD,EAClC,OACIvO,eAAA,OAAAN,SAAA,CACIH,cAAA,OAAKmB,UAAU,yBACfV,eAAA,OACIU,UAAWoB,YACP,kBAAkB,wBAADwF,OACOiB,EAAkB,gBAAkB,YAC5D,mBACF7I,SAAA,CAED6I,GACGhJ,cAACiJ,IAAS,CACNC,MAAOb,EAAYc,gBAAkBd,EAAYc,gBAAkB,OACnEtJ,EAAGA,EACHwC,kBAAkB,iCAClB+G,QAASL,IAGjBtI,eAAA,OAAKU,UAAU,kBAAiBhB,SAAA,CAC3B8O,GACGjP,cAAA,OAAKmB,UAAU,uCAAsChB,SACjDH,cAAA,KAAGmB,UAAU,sBAAqBhB,SAC7BN,EAAE,gFAIfG,cAACiJ,IAAS,CACN2B,SAAUqE,EACV/F,MAAOb,EAAYgB,gBAAkBhB,EAAYgB,gBAAkB,WACnExJ,EAAGA,EACHuJ,QAASN,gBAQlBpJ,2BAvJf,SAAyCa,GAAyE,IAAxE,kCAAEyO,EAAiC,4BAAEhC,EAA2B,EAAEnN,GAAGU,EAC3G,MAAM,UAAE2O,EAAS,+BAAEnB,EAA8B,aAAEY,GAAiBK,EACpE,OACIvO,eAACR,IAAMC,SAAQ,CAAAC,SAAA,CACXH,cAACW,IAAa,CAACC,gBAAgB,4BAA2BT,SACtDM,eAAA,OAAKU,UAAU,4FAA2FhB,SAAA,CACtGM,eAACyM,IAAa,CACVC,UAAU,wCACVxD,OAAQ,CAAEpF,GAAIyI,EAA4BI,WAAYjN,SAAA,CAEtDH,cAAA,KAAGmB,UAAU,sDAAwD,UAGzEnB,cAACmP,KAAmB,CAChBhO,UAAU,kFACVwN,aAAcA,EACdS,YAAY,wEACZC,kBAAkB,EAClBxP,EAAGA,EACHyP,UAAW,UAIvBtP,cAACuN,GAAwB,CACrB1O,MAAOmO,EACPzD,iBAAmBlE,GACfrF,cAAC+O,GAA0B,IACnB1J,EACJ2J,kCAAmCA,EACnCnP,EAAGA,IAGXA,EAAGA,EAAEM,SAELH,cAAA,OAAAG,SACIH,cAACuP,IAAO,CACJlN,kBAAkB,eAClBxD,MAAOqQ,EACPrP,EAAGA,EACHwB,aAAcA,IAAMrB,cAAC6N,GAAkB,IACvC2B,WAAanK,GACTrF,cAAC8N,GAAS,IAAKzI,EAAO0I,+BAAgCA,IAE1D0B,iBAAkBA,IAAMzP,cAAC0O,GAAgB,CAAC7O,EAAGA,EAAG8O,aAAcA,IAC9De,YAAcrK,GACVrF,cAAC2P,KAAQ,IACDtK,EACJuK,kBAAkB,EAClBC,sBAAuBlB,EAAaC,OAAOkB,uBCwC3E,MAAMC,GAAcrQ,oBAAS,SAAoBC,GAI7C,IAJ8C,KAC9CsB,EAAI,+BACJ8M,EAA8B,oCAC9BiC,GACHrQ,EACG,MAAM,iBAAEsQ,EAAgB,cAAEC,EAAa,gBAAEC,GAAoBpC,GACvD,uBAAEqC,GAA2BJ,EAC7B7B,GAA0G,IAA7FC,oBAAU6B,GAAmBI,GAAoBA,EAAgBC,YAAcrP,EAAKsD,KACvG,OACI9D,eAAA,OAAKU,UAAU,qDAAoDhB,SAAA,CAC/DM,eAAA,OACIU,UAAU,sBACViI,QAAS+E,EAAa,IAAMgC,EAAgBlP,GAAQ,IAAMiP,EAAcjP,GAAMd,SAAA,CAE7EgO,EAAanO,cAACuO,GAAgB,IAAMvO,cAACwO,GAAiB,IAEvDxO,cAAA,OAAKmB,UAAU,6CAA4ChB,SACvDH,cAACyC,IAAK,CAACC,IAAMmM,kBAAQ5N,EAAKwN,UAA4B2B,EAAhBnP,EAAKwN,gBAGnDzO,cAAA,OAAKmB,UAAU,sBAAqBhB,SAAE,CAACc,EAAK8B,MAAO9B,EAAK2K,UAAW3K,EAAK4K,UAAUC,KAAK,aAKnG,SAASyC,KACL,OAAOvO,cAAA,OAAKmB,UAAU,qEAG1B,SAASqN,KACL,OAAOxO,cAAA,OAAKmB,UAAU,sEAG1B,SAASuN,GAAgBlK,GAAuB,IAAtB,aAAEmK,EAAY,EAAE9O,GAAG2E,EACzC,MAAM,OAAEoK,GAAWD,EACb5L,EAAQ8L,kBAAQD,EAAOE,QACvBjP,EAAE,gEACFA,EAAE,0EAA2E,CAAEiP,OAAQF,EAAOE,SACpG,OACI9O,cAAA,OAAKmB,UAAU,qCAAoChB,SAC/CM,eAAA,OAAKU,UAAU,2DAA0DhB,SAAA,CACrEH,cAAA,OAAKmB,UAAU,qBAAoBhB,SAC/BH,cAAA,KAAGmB,UAAU,gDAGjBV,eAAA,OAAKU,UAAU,qBAAoBhB,SAAA,CAC/BH,cAAA,MAAAG,SAAK4C,IACL/C,cAAA,KAAAG,SAAIN,EAAE,gFAO1B,MAAM0Q,GAA+B7Q,oBAAS,SAAqCmJ,GAI/E,IAJgF,MAChFhK,EAAK,oCACLmR,EAAmC,EACnCnQ,GACHgJ,EACG,MAAM,SAAEC,EAAQ,YAAET,EAAW,aAAEU,EAAY,gBAAEC,GAAoBnK,GAC3D,wBAAE2R,GAA4BR,EACpC,OACIvP,eAAA,OAAAN,SAAA,CACIH,cAAA,OAAKmB,UAAU,yBACfV,eAAA,OACIU,UAAWoB,YACP,kBAAkB,wBAADwF,OACOiB,EAAkB,gBAAkB,YAC5D,mBACF7I,SAAA,CAED6I,GACGhJ,cAACiJ,IAAS,CACNC,MAAOb,EAAYc,gBAAkBd,EAAYc,gBAAkB,OACnEtJ,EAAGA,EACHwC,kBAAkB,iCAClB+G,QAASL,IAGjBtI,eAAA,OAAKU,UAAU,kBAAiBhB,SAAA,CAC3BqQ,GACGxQ,cAAA,OAAKmB,UAAU,uCAAsChB,SACjDH,cAAA,KAAGmB,UAAU,sBAAqBhB,SAC7BN,EAAE,kFAIfG,cAACiJ,IAAS,CACN2B,SAAU4F,EACVtH,MAAOb,EAAYgB,gBAAkBhB,EAAYgB,gBAAkB,WACnExJ,EAAGA,EACHuJ,QAASN,gBAQlBpJ,2BA3Lf,SAA2Ca,GAA2E,IAA1E,oCAAEyP,EAAmC,4BAAEhD,EAA2B,EAAEnN,GAAGU,EAC/G,MAAM,UAAE2O,EAAS,+BAAEnB,EAA8B,aAAEY,EAAY,uBAAE8B,EAAsB,eAAEC,GACrFV,EAEJ,OACIvP,eAACR,IAAMC,SAAQ,CAAAC,SAAA,CACXM,eAACE,IAAa,CAACC,gBAAgB,4BAA2BT,SAAA,CACtDM,eAAA,OAAKU,UAAU,4FAA2FhB,SAAA,CACtGM,eAACyM,IAAa,CACVC,UAAU,wCACVxD,OAAQ,CAAEpF,GAAIyI,EAA4BI,WAAYjN,SAAA,CAEtDH,cAAA,KAAGmB,UAAU,sDAAwD,UAGzEnB,cAACmP,KAAmB,CAChBhO,UAAU,kFACVwN,aAAcA,EACdS,YAAY,0EACZC,kBAAkB,EAClBxP,EAAGA,EACHyP,UAAW,QAGnB7O,eAAA,OAAKU,UAAU,0DAAyDhB,SAAA,CACpEH,cAACiJ,IAAS,CACNrI,gBAAgB,oBAChBsI,MAAM,mEACNE,QAASA,KACLqH,GAAuB,IAE3B5Q,EAAGA,IAEPG,cAACiJ,IAAS,CACNC,MAAM,qEACNtI,gBAAgB,oBAChBwI,QAASA,KACLqH,GAAuB,IAE3B5Q,EAAGA,IAEPG,cAACiJ,IAAS,CACNC,MAAM,gEACN7G,kBAAkB,iCAClB+G,QAASsH,EACT7Q,EAAGA,UAIfG,cAACuN,GAAwB,CACrB1O,MAAOmO,EACPzD,iBAAmBlE,GACfrF,cAACuQ,GAA4B,IACrBlL,EACJ2K,oCAAqCA,EACrCnQ,EAAGA,IAGXA,EAAGA,EAAEM,SAELH,cAAA,OAAAG,SACIH,cAACuP,IAAO,CACJlN,kBAAkB,eAClBxD,MAAOqQ,EACPrP,EAAGA,EACHwB,aAAcA,IAAMrB,cAAC6N,GAAkB,IACvC2B,WAAanK,GACTrF,cAAC+P,GAAW,IACJ1K,EACJ0I,+BAAgCA,EAChCiC,oCAAqCA,IAG7CP,iBAAkBA,IAAMzP,cAAC0O,GAAgB,CAACC,aAAcA,EAAc9O,EAAGA,IACzE6P,YAAcrK,GACVrF,cAAC2P,KAAQ,IACDtK,EACJuK,kBAAkB,EAClBC,sBAAuBlB,EAAaC,OAAOkB,uBCrF5DvC,OAJf,SAAkClI,GAC9B,OAAOrF,cAACsJ,EAAgC,IAAKjE,KCGlCsL,OAJf,SAAuCtL,GACnC,OAAOrF,cAACwJ,EAAqC,IAAKnE,K,iBCFvC,MAAMuL,WAAuCC,KACxDC,YAAYC,GACRC,MAAMD,GAGVE,QACI,MAAO,CACHC,OAAQ,CACJ,CACI1S,KAAM,OACN0K,MAAO,mDACPkG,YAAa,yDACb+B,MAAO,sBCV3B,MAAMC,WAA4CC,IAC9CP,YAAY1R,EAASmB,GAAgD,IAA9C,WAAE+Q,EAAU,4BAAEtE,GAA6BzM,EAC9DyQ,MAAM5R,EAAW,CACbmF,GAAIyI,EAA4BuE,aAChC/S,KAAM,2BACNgT,UAAWZ,GACXa,eAAgB,OAChBC,0BAA2B,KAC3BC,0BAA2B,KAC3BC,wBAAyBA,IACrBxM,KAAKhG,UAAUF,YAAY2S,KAAK,wCAAyC,CACrEtN,GAAIyI,EAA4BI,YAExC0E,wBAAyBA,IACrB1M,KAAKhG,UAAUF,YAAY2S,KAAK,wCAAyC,CACrEtN,GAAIyI,EAA4BI,cAG5ChI,KAAKkM,WAAaA,EAClBlM,KAAK4H,4BAA8BA,EAGvC,2BACQ5H,KAAKb,GACLwN,wBAAY,KACR,MAAM9Q,EAAOmE,KAAK4H,4BAA4B/L,KAC9CmE,KAAK4M,QAAQ/Q,GACbmE,KAAK6M,WAAWhR,MAGpBmE,KAAK8M,YAIbC,OAAOC,GACH,OAAOhN,KAAK4H,4BAA4BqF,iBAAiBD,GAG7D,aAAaA,SACHhN,KAAK4H,4BAA4BsF,iBAAiBF,GAG5DG,cAAcC,GACVpN,KAAKhG,UAAUqT,kBAAkBC,MAAM,gEAAiEF,GAG5GG,cAAcH,GACVpN,KAAKhG,UAAUqT,kBAAkBC,MAAM,gEAAiEF,IAIjGpB,I,qBAAAA,M,0CCgFAwB,I,8BAAAA,IAjI8B7N,GA2ExC8N,UAAOC,MAAKC,GAOZF,UAAOC,MAAKE,GAyBZH,UAAOC,MAAKG,GAKZJ,UAAOC,MAAK9N,GAhHjB,cAAsDkO,IAMlD,gBACI,OAAOC,eAAK/N,KAAKiH,WAAWL,QAASE,IAAWkH,gBAAW,OAALlH,QAAK,IAALA,OAAK,EAALA,EAAOA,SAGjE,kBACI,OAAOiH,eAAK/N,KAAKiH,WAAWhB,UAAWG,IAAa4H,gBAAa,OAAP5H,QAAO,IAAPA,OAAO,EAAPA,EAASA,WAGvE,qBAKI,OAJiBoD,iBAAOxJ,KAAKiH,WAAWhB,UAAWG,IACvC4H,gBAAa,OAAP5H,QAAO,IAAPA,OAAO,EAAPA,EAASA,WAGXtH,OAGpB,mBAKI,OAJe0K,iBAAOxJ,KAAKiH,WAAWL,QAASE,IACnCkH,gBAAW,OAALlH,QAAK,IAALA,OAAK,EAALA,EAAOA,SAGXhI,OAGlB,iBACI,OAAOmP,eAAKjO,KAAKkF,sBAAsB4E,UAAUkD,MAAOnR,GAASA,EAAKsD,KAAOa,KAAKmM,eAGtF,0BACI,OAAOnM,KAAKkO,sBAAsBlO,KAAKkF,sBAAsBC,qBAGjE,iBACI,OAAOnF,KAAKmO,WAGhB,2BACI,OAAInO,KAAKiH,WACEjH,KAAKiH,WAAWmH,qBAEpB,KAGX,iBACI,IAAKJ,gBAAMhO,KAAKqO,sBACZ,OAAOrO,KAAKqO,qBAAqBxJ,WAC9B,GAAI7E,KAAKkF,sBAAsBC,oBAAqB,CACvD,MAAMmJ,EAAiBtO,KAAKhG,UAAUoL,gBAAgBkJ,eACtD,GAAIA,GAAkBA,EAAeC,QAAUD,EAAeC,OAAOC,WACjE,OAAQF,EAAeC,OAAOC,WAAWC,MACrC,KAAKC,IAAqBC,OACtB,OAAO3O,KAAKkF,sBAAsBC,oBAAoByJ,oBAC1D,KAAKF,IAAqBG,OACtB,OAAO7O,KAAKkF,sBAAsBC,oBAAoB2J,0BAMtE,OAAO,EAGXpD,YAAY1R,EAASmB,GAA4C,IAA1C,aAAEgR,EAAY,sBAAEjH,GAAuB/J,EAC1DyQ,MAAM5R,GAAW+U,aAAA,4BAAAC,aAAA,mBAAAC,GAAA,MAAAD,aAAA,kBAAAE,GAAA,MACjBC,0BAAenP,MACfA,KAAKmM,aAAeA,EACpBnM,KAAKkF,sBAAwBA,EAGjC,6BAC6BL,GACzB7E,KAAKoP,eAAc,SACbpP,KAAKqP,+BAA+BxK,GAC1C7E,KAAKoP,eAAc,GAGvB,qCACqCvK,GACjC,IACI,MAAMyK,EAAU,IAAIC,KAChBvP,KAAKiH,WAAW9H,GAChBa,KAAKiH,WAAW7N,KAChB4G,KAAKkF,sBAAsBC,oBAAoBhG,GAC/Ca,KAAKkF,sBAAsBC,oBAAoBxH,MAC/CqC,KAAKkF,sBAAsBC,oBAAoB3H,WACmB,IAAlEwC,KAAKkF,sBAAsBC,oBAAoBqK,sBAE7CxP,KAAKhG,UAAUyV,wBAAwBC,oCAAoCJ,EAASzK,GAC1F8H,wBAAY,KACJ3M,KAAKiH,WAAWmH,qBAChBpO,KAAKiH,WAAWmH,qBAAqBvJ,WAAaA,EAElD7E,KAAKiH,WAAWmH,qBAAuB,CAAEvJ,WAAYA,MAG/D,MAAOuI,GACLuC,QAAQC,IAAIxC,GACZpN,KAAKhG,UAAUqT,kBAAkBC,MAAM,8DAA+DF,IAK9GlG,iBACIlH,KAAK2E,aAAe3E,KAAK2E,YAI7ByK,cAAcjB,GACVnO,KAAKmO,WAAaA,EAGtBD,sBAAsB/I,GAClB,OAAI6I,gBAAM7I,IAIHnF,KAAKhG,UAAU6V,uBAAuBC,iBAAiB,CAC1DtS,UAAW2H,EAAoB3H,UAC/BuS,wBAA+D,IAAvC5K,EAAoBqK,mBAGvDP,GAAAe,aAAApQ,GAAAqQ,UAAA,eA5HIC,eAAU,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,kBAAe,KAAKpB,GAAAc,aAAApQ,GAAAqQ,UAAA,cAC9BC,eAAU,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,kBAAc,KAAKN,aAAApQ,GAAAqQ,UAAA,aAE7BM,aAAQC,OAAAC,yBAAA7Q,GAAAqQ,UAAA,aAAArQ,GAAAqQ,WAAAD,aAAApQ,GAAAqQ,UAAA,eAIRM,aAAQC,OAAAC,yBAAA7Q,GAAAqQ,UAAA,eAAArQ,GAAAqQ,WAAAD,aAAApQ,GAAAqQ,UAAA,kBAIRM,aAAQC,OAAAC,yBAAA7Q,GAAAqQ,UAAA,kBAAArQ,GAAAqQ,WAAAD,aAAApQ,GAAAqQ,UAAA,gBAQRM,aAAQC,OAAAC,yBAAA7Q,GAAAqQ,UAAA,gBAAArQ,GAAAqQ,WAAAD,aAAApQ,GAAAqQ,UAAA,cAQRM,aAAQC,OAAAC,yBAAA7Q,GAAAqQ,UAAA,cAAArQ,GAAAqQ,WAAAD,aAAApQ,GAAAqQ,UAAA,uBAIRM,aAAQC,OAAAC,yBAAA7Q,GAAAqQ,UAAA,uBAAArQ,GAAAqQ,WAAAD,aAAApQ,GAAAqQ,UAAA,cAIRM,aAAQC,OAAAC,yBAAA7Q,GAAAqQ,UAAA,cAAArQ,GAAAqQ,WAAAD,aAAApQ,GAAAqQ,UAAA,wBAIRM,aAAQC,OAAAC,yBAAA7Q,GAAAqQ,UAAA,wBAAArQ,GAAAqQ,WAAAD,aAAApQ,GAAAqQ,UAAA,cAORM,aAAQC,OAAAC,yBAAA7Q,GAAAqQ,UAAA,cAAArQ,GAAAqQ,WAAAD,aAAApQ,GAAAqQ,UAAA,0BAAAtQ,IAAA6Q,OAAAC,yBAAA7Q,GAAAqQ,UAAA,0BAAArQ,GAAAqQ,WAAAD,aAAApQ,GAAAqQ,UAAA,kCAAAtC,IAAA6C,OAAAC,yBAAA7Q,GAAAqQ,UAAA,kCAAArQ,GAAAqQ,WAAAD,aAAApQ,GAAAqQ,UAAA,kBAAArC,IAAA4C,OAAAC,yBAAA7Q,GAAAqQ,UAAA,kBAAArQ,GAAAqQ,WAAAD,aAAApQ,GAAAqQ,UAAA,iBAAApC,IAAA2C,OAAAC,yBAAA7Q,GAAAqQ,UAAA,iBAAArQ,GAAAqQ,WAAArQ,IC8BE8Q,QAjFqB/Q,GAS/B8N,UAAOC,MAAKC,GAMZF,UAAOC,MAAKE,GAgBZH,UAAOC,MAAKG,GAKZJ,UAAOC,MAAKiD,GAcZlD,UAAOC,MAAKkD,GAWZnD,UAAOC,MAAKmD,GAWZpD,UAAOC,MAAK9N,GAxEjB,cAA6CkO,IAIzCpC,YAAY1R,GACR4R,MAAM5R,GAAWgV,aAAA,wBAAAC,GAAA,MAAAD,aAAA,sBAAAE,GAAA,MACjBC,0BAAenP,MAInB8Q,sBAAiD,IAA7BlK,EAAMmK,UAAAjS,OAAA,QAAAkS,IAAAD,UAAA,GAAAA,UAAA,GAAG,GAAI9K,EAAQ8K,UAAAjS,OAAA,QAAAkS,IAAAD,UAAA,GAAAA,UAAA,GAAG,GACxC/Q,KAAK4I,eAAiBhC,EACtB5G,KAAK6K,iBAAmB5E,EAI5BgL,eAAehL,GACXiL,kBAAQjL,GAAWG,KAKY,IAJD4C,oBACtBhJ,KAAK6K,kBACJI,GAAoBA,EAAgBC,YAAc9E,EAAQjH,MAG3Da,KAAK6K,iBAAiBxI,KAAK,CACvB6I,UAAW9E,EAAQjH,GACnBiH,QAASA,OAOzB+K,wBACInR,KAAK6K,iBAAmB,GAI5BC,cAAc1E,IAKiB,IAJD4C,oBACtBhJ,KAAK6K,kBACJI,GAAoBA,EAAgBC,YAAc9E,EAAQjH,MAG3Da,KAAK6K,iBAAiBxI,KAAK,CACvB6I,UAAW9E,EAAQjH,GACnBiH,QAASA,IAMrB2E,gBAAgB3E,GACZ,MAAMgL,EAAoBpI,oBACtBhJ,KAAK6K,kBACJI,GAAoBA,EAAgBC,YAAc9E,EAAQjH,MAEpC,IAAvBiS,GACAC,iBAAOrR,KAAK6K,iBAAkBuG,GAKtCvI,YAAY/B,IAEmB,IADDkC,oBAAUhJ,KAAK4I,gBAAiBK,GAAkBA,EAAcC,UAAYpC,EAAM3H,MAExGa,KAAK4I,eAAevG,KAAK,CACrB6G,QAASpC,EAAM3H,GACf2H,MAAOA,IAMnBgC,cAAchC,GACV,MAAMsK,EAAoBpI,oBAAUhJ,KAAK4I,gBAAiBK,GAAkBA,EAAcC,UAAYpC,EAAM3H,MACjF,IAAvBiS,GACAC,iBAAOrR,KAAK4I,eAAgBwI,KAGvCnC,GAAAe,aAAApQ,GAAAqQ,UAAA,oBA9EIC,eAAU,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,iBAAoB,MAAEpB,GAAAc,aAAApQ,GAAAqQ,UAAA,kBAChCC,eAAU,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,iBAAkB,MAAEN,aAAApQ,GAAAqQ,UAAA,uBAAAtQ,IAAA6Q,OAAAC,yBAAA7Q,GAAAqQ,UAAA,uBAAArQ,GAAAqQ,WAAAD,aAAApQ,GAAAqQ,UAAA,kBAAAtC,IAAA6C,OAAAC,yBAAA7Q,GAAAqQ,UAAA,kBAAArQ,GAAAqQ,WAAAD,aAAApQ,GAAAqQ,UAAA,yBAAArC,IAAA4C,OAAAC,yBAAA7Q,GAAAqQ,UAAA,yBAAArQ,GAAAqQ,WAAAD,aAAApQ,GAAAqQ,UAAA,iBAAApC,IAAA2C,OAAAC,yBAAA7Q,GAAAqQ,UAAA,iBAAArQ,GAAAqQ,WAAAD,aAAApQ,GAAAqQ,UAAA,mBAAAU,IAAAH,OAAAC,yBAAA7Q,GAAAqQ,UAAA,mBAAArQ,GAAAqQ,WAAAD,aAAApQ,GAAAqQ,UAAA,eAAAW,IAAAJ,OAAAC,yBAAA7Q,GAAAqQ,UAAA,eAAArQ,GAAAqQ,WAAAD,aAAApQ,GAAAqQ,UAAA,iBAAAY,IAAAL,OAAAC,yBAAA7Q,GAAAqQ,UAAA,iBAAArQ,GAAAqQ,WAAArQ,I,2BCHnC,MAAM0R,WAAmCC,KACrC7F,cACIE,QACA5L,KAAKwR,QAGTA,QACI5F,MAAM4F,QACNxR,KAAK0K,SACD+G,aAAyBjQ,OAAOC,YAAciQ,aAAwClQ,OAAOC,aAI1F6P,UCbf,MAAMK,WAAiCJ,KACnC7F,cACIE,QACA5L,KAAKwR,QAGTA,QACI5F,MAAM4F,QACNxR,KAAK0K,SACD+G,aAAyBjQ,OAAOC,YAAciQ,aAAwClQ,OAAOC,aAI1FkQ,I,GAAAA,MCkHAC,I,GAAAA,IA3H0BhS,GAAzC,cAAkDiS,IAG9C,8BACI,OAAuE,IAAhE7R,KAAK2I,+BAA+BkC,iBAAiB/L,OAGhE,6BACI,MAAMgT,EAAU9R,KAAK4H,4BAA4BzC,oBACjD,OAAI2M,GAAWA,EAAQC,aACZ/R,KAAKhG,UAAUgY,kBAAkBC,2BAA2BH,EAAQC,aAAc,IAAK,KAE3F,KAGXrG,YAAY1R,EAASmB,GAAgF,IAA9E,WAAE+Q,EAAU,+BAAEvD,EAA8B,4BAAEf,GAA6BzM,EAC9FyQ,MAAM5R,EAAW,CACbkY,YAAa,CACT1I,OAAQ,IAAI8H,MAEjBvC,aAAA,wBAnBY,MAoBfI,0BAAenP,MACfA,KAAKkM,WAAaA,EAClBlM,KAAK2I,+BAAiCA,EACtC3I,KAAK4H,4BAA8BA,EAEnC5H,KAAKmS,aACD,IAAIC,IAAiBpS,KAAKhG,UAAWgG,KAAKuJ,aAAc,CACpD8I,YAAcxW,GAASmE,KAAKsS,gBAAgBzW,MAIpDmE,KAAKuS,UACD,KAAOvS,KAAKuJ,aAAaC,OAAOE,QAAU,IAAI8I,SAC9C,KACIxS,KAAKuJ,aAAakJ,UAEtB,CACIC,MAAO,MAGf1S,KAAKqL,uBAAyBrL,KAAKqL,uBAAuBsH,KAAK3S,MAC/DA,KAAKsL,eAAiBtL,KAAKsL,eAAeqH,KAAK3S,MAGnD4S,SACI,OAAO5S,KAAKuJ,aAAasJ,YAAW,GAAM,GAG9C,6BAA6BC,GACzB,MACMvO,EAAS,CAAEwO,SADAhU,cAAIiB,KAAK2I,+BAA+BC,gBAAiB9B,GAAUA,EAAMoC,UACrD4J,SAAUA,GAE/C,IACI9S,KAAKlE,YAAYkX,UACjB,MAAMC,QAAmBjT,KAAKkM,WAAWgH,qBAAqB3O,GACxD0B,EAAWlH,cAAIkU,GAAa/H,IACvB,CAAE/L,GAAI+L,MAGb+H,EAAWnU,OAAS,GACpBkB,KAAK2I,+BAA+BsI,eAAehL,GAEzD,MAAOqH,GACLtN,KAAKhG,UAAUqT,kBAAkBC,MAAM,kDAC1C,QACGtN,KAAKlE,YAAYqX,UAIzB7H,iBACItL,KAAK2I,+BAA+BwI,wBAGxC,WAAW5M,GACPvE,KAAKoT,uBACL,MAAML,EAAWhU,cAAIiB,KAAK2I,+BAA+BC,gBAAiB9B,GAAUA,EAAMoC,UAU1F,OATA3E,EAAOwO,SAAWA,EAClB/S,KAAKqT,iBAAmB,IAAIC,gBAE4B,aAApDtT,KAAK4H,4BAA4B3E,YAAY9D,IACzCa,KAAK2I,+BAA+BkC,iBAAiB/L,OAAS,SACxDkB,KAAKuT,yBAINvT,KAAKkM,WAAWsH,aAAajP,EAAQvE,KAAKqT,kBAG3D,yBACI,IAAII,QAA8BzT,KAAK4H,4BAA4B8L,yBAEnE,MAAMC,EAAsBnK,iBACxBxJ,KAAK2I,+BAA+BkC,kBACnCzE,IAAawN,mBAASH,EAAuBrN,EAAQ8E,aAG1DgG,kBAAQyC,GAAsBvN,IAC1BpG,KAAK2I,+BAA+BoC,gBAAgB,CAAE5L,GAAIiH,EAAQ8E,eAI1EkI,uBACQpT,KAAKqT,kBACLrT,KAAKqT,iBAAiBQ,QAI9BC,aAAaxG,GACLA,GAASA,EAAMyG,aAAeC,KAAgBC,iBAGlDjU,KAAKhG,UAAUqT,kBAAkBC,MAC7B,2FACAA,GAIR4G,YACIlU,KAAKoT,yBAEZpD,aAAApQ,GAAAqQ,UAAA,2BAtHIM,aAAQC,OAAAC,yBAAA7Q,GAAAqQ,UAAA,2BAAArQ,GAAAqQ,WAAAD,aAAApQ,GAAAqQ,UAAA,0BAIRM,aAAQC,OAAAC,yBAAA7Q,GAAAqQ,UAAA,0BAAArQ,GAAAqQ,WAAArQ,ICyDEuU,QAjEwBvU,GAAvC,cAAgDiS,IAG5C,4BACI,OAAqE,IAA9D7R,KAAK2I,+BAA+BC,eAAe9J,OAG9D4M,YAAY1R,EAASmB,GAAmD,IAAjD,WAAE+Q,EAAU,+BAAEvD,GAAgCxN,EACjEyQ,MAAM5R,EAAW,CACbkY,YAAa,CACT1I,OAAQ,IAAImI,MAEjB5C,aAAA,wBAXY,MAYfI,0BAAenP,MACfA,KAAKkM,WAAaA,EAClBlM,KAAK2I,+BAAiCA,EAEtC3I,KAAKmS,aACD,IAAIC,IAAiBpS,KAAKhG,UAAWgG,KAAKuJ,aAAc,CACpD8I,YAAcxW,GAASmE,KAAKsS,gBAAgBzW,MAIpDmE,KAAKuS,UACD,KAAOvS,KAAKuJ,aAAaC,OAAOE,QAAU,IAAI8I,SAC9C,KACIxS,KAAKuJ,aAAakJ,UAEtB,CACIC,MAAO,MAKnBE,SACI,OAAO5S,KAAKuJ,aAAasJ,YAAW,GAAM,GAG9C5E,KAAK1J,GAGD,OAFAvE,KAAKoT,uBACLpT,KAAKqT,iBAAmB,IAAIC,gBACrBtT,KAAKkM,WAAWkI,WAAW7P,EAAQvE,KAAKqT,kBAGnDD,uBACQpT,KAAKqT,kBACLrT,KAAKqT,iBAAiBQ,QAI9BC,aAAaxG,GACLA,GAASA,EAAMyG,aAAeC,KAAgBC,iBAGlDjU,KAAKhG,UAAUqT,kBAAkBC,MAC7B,2FACAA,GAIR4G,YACIlU,KAAKoT,yBAEZpD,YAAA,CAAApQ,GAAAqQ,UAAA,yBA5DIM,aAAQC,OAAAC,yBAAA7Q,GAAAqQ,UAAA,yBAAArQ,GAAAqQ,WAAArQ,I,SCNb,MAAMyU,WAA+BC,IACjC5I,YAAY1R,GACR4R,MAAM5R,GAENgG,KAAKuU,QAAUva,EAAUwa,yBAAyBC,OAClDzU,KAAK0U,mBAAqB1a,EAAUwa,yBAAyBG,OAGjE,sCAAsCC,EAAUrQ,GAE5C,aADuBvE,KAAKuU,QAAQM,sBAAsBD,EAAUrQ,IACpDyI,KAGpB,uCAAuCnR,GAEnC,aADuBmE,KAAKuU,QAAQzO,OAAOjK,IAC3BmR,KAGpB,iBAAiBhF,GAEb,aADuBhI,KAAK0U,mBAAmBI,WAAW9M,IAC1CgF,MAITqH,I,SAAAA,M,kBCIAU,I,SAAAA,IA5B8BpV,GAsBxC8N,UAAOC,MAAK9N,GAtBjB,MAGI8L,YAAYsJ,GAAKhG,aAAA,6BAAAC,GAAA,MACbE,0BAAenP,MACfkR,kBAAQ8D,GAAK,CAACzP,EAAO0P,KACL,0BAARA,EACAjV,KAAKkV,cAAc3P,GAEnBvF,KAAKiV,GAAO1P,KAKxB,2BACI,OAAOvF,KAAKmV,sBAGhB,yBAAyB5P,GACrBvF,KAAKoV,wBAAwB7P,GAIjC6P,wBAAwB7P,GACpBvF,KAAKmV,sBAAwB5P,IAEpC0J,GAAAe,aAAApQ,GAAAqQ,UAAA,yBAzBIC,eAAU,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,kBAAyB,QAAIN,aAAApQ,GAAAqQ,UAAA,wBAavCM,aAAQC,OAAAC,yBAAA7Q,GAAAqQ,UAAA,wBAAArQ,GAAAqQ,WAAAD,aAAApQ,GAAAqQ,UAAA,2BAAAtQ,IAAA6Q,OAAAC,yBAAA7Q,GAAAqQ,UAAA,2BAAArQ,GAAAqQ,WAAArQ,IC8IEyV,I,6CAAAA,IAxJY1V,GAkJtB8N,UAAOC,MAAK9N,GAlJjB,cAAoCiS,IAIhC,qBACI,OAAO7R,KAAKhG,UAAUoL,gBAAgBkJ,eAG1C5C,YAAY1R,EAASmB,GAAmB,IAAjB,WAAE+Q,GAAY/Q,EACjC,MAAMgE,EAAKnF,EAAUF,YAAYwb,YAAY/Q,OAAOpF,GACpDyM,MAAM5R,EAAW,CACbkY,YAAa,CACTqD,MAAO,gDACPpP,QAAS,OACTqP,eAAgB,SAErBzG,aAAA,UAfF,MAAIC,aAAA,2BAAAC,GAAA,MAAAF,aAAA,eAoFClT,IACNmE,KAAKhG,UAAUyb,mBAAmBC,YAAY,CAC1CC,QAAS,kCACTC,UAAWC,UACP,UACU7V,KAAKkM,WAAW4J,iCAAiCja,GACvDmE,KAAKuJ,aAAakJ,QACpB,MAAOrF,GACLpN,KAAKhG,UAAUqT,kBAAkBC,MAC7B,2DACAF,KAIZ2I,SAAU,SACVC,QAAS,SACTC,YAAa,gDAEpBlH,aAAA,uBAMiBlT,IACdmE,KAAKhG,UAAUF,YAAY2S,KAAK,6CAA8C,CAC1EtN,GAAIa,KAAKb,GACTgN,aAActQ,EAAKsD,QA/FvBgQ,0BAAenP,MACfA,KAAKb,GAAKA,EACVa,KAAKkM,WAAaA,EAElBlM,KAAKmS,aACD,IAAIC,IAAiBpS,KAAKhG,UAAWgG,KAAKuJ,aAAc,CACpD8I,YAAcxW,GAASmE,KAAKkW,eAAera,GAC3C+I,QAAS,CACLmB,KAAM,CACF/B,QAAUnI,GAASmE,KAAKkW,eAAera,IAE3CiK,OAAQ,CACJ9B,QAAUnI,GAASmE,KAAK8F,OAAOjK,KAGvCsa,OAASta,GACE,IAAIkZ,GAAwC,IAC5ClZ,OAMnBmE,KAAKuI,kBAAoB,IAAI6N,KACzB,CACIC,QAAS,aACTC,SAAU,KACV1R,QAAS,CACL2R,SAAWC,IACPxW,KAAKhG,UAAUoL,gBAAgBqR,kBAAkBD,EAAO3a,SAIpEmE,KAAKhG,UAAUoL,gBAAgBsR,SAEnC1W,KAAKuI,kBAAkBoO,gBAAgB3W,KAAKhG,UAAUoL,gBAAgBkJ,gBAEtEtO,KAAK4W,4BAA8B5W,KAAK4W,4BAA4BjE,KAAK3S,MACzEA,KAAK6W,qCAAuC7W,KAAK6W,qCAAqClE,KAAK3S,MAC3FA,KAAK8W,gCAAkC9W,KAAK8W,gCAAgCnE,KAAK3S,MAEjFA,KAAK+W,8BAAgC,IAAIC,KACrC,CACIC,QAASA,QAEb,CACIzS,qCAAsCxE,KAAK8W,kCAInD9W,KAAKuS,UACD,IAAMvS,KAAKsO,iBACX,KACItO,KAAKuJ,aAAakJ,WAK9BG,SAEI,OADA5S,KAAK6W,uCACE3c,QAAQgd,IAAI,CAAClX,KAAKuJ,aAAasJ,aAAc7S,KAAKmX,yBAAyBnX,KAAKb,MAG3F8O,KAAK1J,GAED,OADAA,EAAOyD,UAAYhI,KAAKb,GACjBa,KAAKkM,WAAWkL,gCAAgCpX,KAAKsO,eAAenP,GAAIoF,GAuBnFqS,8BACI5W,KAAKhG,UAAUF,YAAY2S,KAAK,+CAAgD,CAAEtN,GAAIa,KAAKb,KAU/F,+BAA+BA,GAC3B,IACI,MAAM6N,QAAahN,KAAKkM,WAAW4I,WAAW3V,GAC9Ca,KAAKqX,uBAAuBrK,GAC9B,MAAOI,GACLuC,QAAQC,IAAIxC,IAIpByJ,uCACQ7W,KAAKhG,UAAUD,UAAUud,mCACzBtX,KAAK+W,8BAA8BQ,OAI3C,wCACI,IACIvX,KAAK+W,8BAA8BtS,QACnCzE,KAAKhG,UAAUwd,gBAAgBxE,gBACzBhT,KAAKhG,UAAUD,UAAU+c,kCACjC,MAAO1J,GACLpN,KAAKhG,UAAUqT,kBAAkBC,MAC7B,qEACAF,GAEP,QACGpN,KAAKhG,UAAUwd,gBAAgBrE,UAKvCkE,uBAAuBxb,GACnBmE,KAAKmF,oBAAsBtJ,IAElCoT,GAAAe,aAAApQ,GAAAqQ,UAAA,uBApJIC,eAAU,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAAN,aAAApQ,GAAAqQ,UAAA,kBAEVM,aAAQC,OAAAC,yBAAA7Q,GAAAqQ,UAAA,kBAAArQ,GAAAqQ,WAAAD,aAAApQ,GAAAqQ,UAAA,0BAAAtQ,IAAA6Q,OAAAC,yBAAA7Q,GAAAqQ,UAAA,0BAAArQ,GAAAqQ,WAAArQ,IC4KE6X,QA5KkB9X,GAiE5B8N,UAAOC,MAAKC,GAOZF,UAAOC,MAAKE,GAOZH,UAAOC,MAAKG,GAKZJ,UAAOC,MAAKiD,GAQZlD,UAAOC,MAAKkD,GA8BZnD,UAAOC,MAAKmD,GAMZpD,UAAOC,MAAKgK,GAiBZjK,UAAOC,MAAK9N,GAjJjB,cAA0CkO,IA2BtC,2BACI,OAAO9N,KAAKgD,MAAMlE,OAKtB,kBACI,GAAsC,aAAlCkB,KAAKgD,MAAMhD,KAAKkD,WAAW/D,GAAmB,CAC9C,MACMwY,EAAW,CAAE5E,SADFhU,cAAIiB,KAAK2I,+BAA+BC,gBAAiB9B,GAAUA,EAAMoC,WAE1FlJ,KAAK0T,yBAA2B1T,KAAKkM,WAAW0L,yBAAyBD,GAE7E,OAAO3X,KAAKgD,MAAMhD,KAAKkD,WAG3B,kBACI,OAAOlD,KAAKkD,UAAYlD,KAAK6X,qBAAuB,EAGxD,sBACI,OAAO7X,KAAKkD,UAAY,EAG5BwI,YAAY1R,EAASmB,GAAmB,IAAjB,WAAE+Q,GAAY/Q,EACjC,MAAMgR,EAAenS,EAAUF,YAAYwb,YAAY/Q,OAAO4H,aACxDnE,EAAYhO,EAAUF,YAAYwb,YAAY/Q,OAAOpF,GAC3DyM,MAAM5R,GAAW+U,aAAA,oBApDN,MAAIA,aAAA,iBACP,MAAIA,aAAA,aACR,CACJ,CACIpR,MAAO,0DACPwB,GAAI,SACJ5F,UAAWue,IAEf,CACIna,MAAO,4DACPwB,GAAI,WACJ5F,UAAWwe,IAEf,CACIpa,MAAO,4DACPwB,GAAI,WACJ5F,UAAWye,MAElBhJ,aAAA,wBAAAC,GAAA,MAAAD,aAAA,sBAAAE,GAAA,MAAAF,aAAA,YAAAiJ,GAAA,MAAAjJ,aAAA,2BAAAkJ,GAAA,MAAAlJ,aAAA,gCAAAmJ,GAAA,MAAAnJ,aAAA,iBAAAoJ,GAAA,MAmCGjJ,0BAAenP,MACfA,KAAKmM,aAAeA,EACpBnM,KAAKgI,UAAYA,EACjBhI,KAAKkM,WAAaA,EAClBlM,KAAK2I,+BAAiC,IAAI+H,GAA+B1W,GAG7E4Y,SACI,OAAO1Y,QAAQgd,IAAI,CAAClX,KAAKqY,qBAAsBrY,KAAKsY,uBAAuBtY,KAAKgI,aAIpFtE,WACQ1D,KAAKuY,aACLvY,KAAKwY,SAASxY,KAAKkD,UAAY,GAKvCS,eACQ3D,KAAK4D,iBACL5D,KAAKwY,SAASxY,KAAKkD,UAAY,GAKvCsV,SAASrV,GACLnD,KAAKkD,UAAYC,EAIrB8J,iBAAiBD,GACb,MAAM/G,EAAWwS,gBAAKzY,KAAK2I,+BAA+BkC,kBACpDjE,EAAS6R,gBAAKzY,KAAK2I,+BAA+BC,gBAClD8P,EAAgB1Y,KAAK2Y,0BAA0B3L,EAAK5T,KAAMwN,EAAQX,GACxE,OAAOjG,KAAKkM,WAAW0M,iCAAiCF,GAI5DxL,iBAAiBF,GACb,MAAM/G,EAAWwS,gBAAKzY,KAAK2I,+BAA+BkC,kBACpDjE,EAAS6R,gBAAKzY,KAAK2I,+BAA+BC,gBAClD8P,EAAgB1Y,KAAK2Y,0BAA0B3L,EAAK5T,KAAMwN,EAAQX,GAExE,OADAyS,EAAcvZ,GAAKa,KAAKnE,KAAKsD,GACtBa,KAAKkM,WAAW2M,iCAAiCH,GAG5D,2BACI,GAAI1Y,KAAKmM,aACL,IAEI,aADMnM,KAAK8Y,YAAY9Y,KAAKmM,eACrB,EACT,MAAOiB,GACL,GAAIA,EAAI2G,aAAeC,KAAgB+E,SAEnC,aADM/Y,KAAKhG,UAAUF,YAAYkf,gBAC1B,EAEP,MAAM5L,GAMtB,kBAAkBjO,GACd,MAAMtD,QAAamE,KAAKkM,WAAW+M,8BAA8B9Z,GACjEa,KAAK4M,QAAQ/Q,GAIjB+Q,QAAQ/Q,GACJmE,KAAKnE,KAAOA,EACZmE,KAAK2I,+BAA+BmI,oBAAoB9Q,KAAKnE,KAAK+K,OAAQ5G,KAAKnE,KAAKoK,UAGxF,6BAC6B+B,GACzB,GAAIA,EACA,IACI,MAAM7C,QAA4BnF,KAAKkM,WAAW4I,WAAW9M,GAC7DhI,KAAKqX,uBAAuBlS,GAC9B,MAAOiI,GACL,GAAIA,EAAI2G,aAAeC,KAAgB+E,SAEnC,aADM/Y,KAAKhG,UAAUF,YAAYkf,gBAC1B,EAEP,MAAM5L,GAOtBiK,uBAAuBvF,GACnB9R,KAAKmF,oBAAsB2M,EAG/B6G,0BAA0Bvf,EAAMwP,EAAgBiC,GACxCA,GACAqG,kBAAQrG,GAAmBzE,IACvBA,EAAQA,QAAU,QAGtBwC,GACAsI,kBAAQtI,GAAiB9B,IACrBA,EAAMA,MAAQ,QAUtB,MAPmB,CACf1N,KAAMA,EACN4O,UAAWhI,KAAKgI,UAChB/B,SAAU4E,EACVjE,OAAQgC,KAKnBqG,GAAAe,aAAApQ,GAAAqQ,UAAA,oBArJIC,eAAU,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,iBAAoB,MAAEpB,GAAAc,aAAApQ,GAAAqQ,UAAA,kBAChCC,eAAU,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,iBAAkB,MAAE2H,GAAAjI,aAAApQ,GAAAqQ,UAAA,QAC9BC,eAAU,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,kBAAQ,QAAI4H,GAAAlI,aAAApQ,GAAAqQ,UAAA,uBACtBC,eAAU,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,kBAAuB,QAAI6H,GAAAnI,aAAApQ,GAAAqQ,UAAA,4BACrCC,eAAU,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,iBAA4B,MAAE8H,GAAApI,aAAApQ,GAAAqQ,UAAA,aAMxCC,eAAU,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,kBAAa,KAACN,aAAApQ,GAAAqQ,UAAA,eAExBM,aAAQC,OAAAC,yBAAA7Q,GAAAqQ,UAAA,eAAArQ,GAAAqQ,WAAAD,aAAApQ,GAAAqQ,UAAA,eASRM,aAAQC,OAAAC,yBAAA7Q,GAAAqQ,UAAA,eAAArQ,GAAAqQ,WAAAD,aAAApQ,GAAAqQ,UAAA,mBAIRM,aAAQC,OAAAC,yBAAA7Q,GAAAqQ,UAAA,mBAAArQ,GAAAqQ,WAAAD,aAAApQ,GAAAqQ,UAAA,YAAAtQ,IAAA6Q,OAAAC,yBAAA7Q,GAAAqQ,UAAA,YAAArQ,GAAAqQ,WAAAD,aAAApQ,GAAAqQ,UAAA,gBAAAtC,IAAA6C,OAAAC,yBAAA7Q,GAAAqQ,UAAA,gBAAArQ,GAAAqQ,WAAAD,aAAApQ,GAAAqQ,UAAA,YAAArC,IAAA4C,OAAAC,yBAAA7Q,GAAAqQ,UAAA,YAAArQ,GAAAqQ,WAAAD,aAAApQ,GAAAqQ,UAAA,oBAAApC,IAAA2C,OAAAC,yBAAA7Q,GAAAqQ,UAAA,oBAAArQ,GAAAqQ,WAAAD,aAAApQ,GAAAqQ,UAAA,oBAAAU,IAAAH,OAAAC,yBAAA7Q,GAAAqQ,UAAA,oBAAArQ,GAAAqQ,WAAAD,aAAApQ,GAAAqQ,UAAA,WAAAW,IAAAJ,OAAAC,yBAAA7Q,GAAAqQ,UAAA,WAAArQ,GAAAqQ,WAAAD,aAAApQ,GAAAqQ,UAAA,0BAAAY,IAAAL,OAAAC,yBAAA7Q,GAAAqQ,UAAA,0BAAArQ,GAAAqQ,WAAAD,aAAApQ,GAAAqQ,UAAA,0BAAAyH,IAAAlH,OAAAC,yBAAA7Q,GAAAqQ,UAAA,0BAAArQ,GAAAqQ,WAAArQ,ICtDb,MAAMsZ,WAAqC5E,IACvC5I,YAAY1R,GACR4R,MAAM5R,GAENgG,KAAKuU,QAAUva,EAAUwa,yBAAyB2E,OAClDnZ,KAAKoZ,kCAAoCpf,EAAUwa,yBAAyBC,OAC5EzU,KAAK0U,mBAAqB1a,EAAUwa,yBAAyBG,OAGjE,iBAAiBpQ,EAAQ8U,GAErB,aADuBrZ,KAAKuU,QAAQH,WAAW7P,EAAQ8U,IACvCrM,KAGpB,mBAAmBzI,EAAQ8U,GAEvB,aADuBrZ,KAAKuU,QAAQf,aAAajP,EAAQ8U,IACzCrM,KAGpB,2BAA2BxD,GAEvB,aADuBxJ,KAAKuU,QAAQrB,qBAAqB1J,IACzCwD,KAGpB,+BAA+BxD,GAE3B,aADuBxJ,KAAKuU,QAAQqD,yBAAyBpO,IAC7CwD,KAGpB,uCAAuCA,GAEnC,aADuBhN,KAAKoZ,kCAAkCrM,OAAOC,IACrDA,KAGpB,uCAAuCA,GAEnC,aADuBhN,KAAKoZ,kCAAkCE,OAAOtM,IACrDA,KAGpB,oCAAoC7N,GAIhC,aAHuBa,KAAKoZ,kCAAkCG,IAAIpa,EAAI,CAClEoW,MAAO,mDAEKvI,KAGpB,iBAAiBhF,GAEb,aADuBhI,KAAK0U,mBAAmBI,WAAW9M,IAC1CgF,MAITkM,I,GAAAA,MCxCAM,I,GAAAA,GAVdha,aACG,CAACxF,EAAWyF,IAAmB,IAAI+N,GAAwCxT,EAAWyF,IACtF,0CACHE,CAAAC,GAHD,cAI6C/E,IAAMgF,UAC/CC,SACI,OAAOlF,cAAC6e,EAAsC,IAAKzZ,KAAKC,YAE/DL,GCEcoY,OAVdxY,aACG,CAACxF,EAAWyF,IAAmB,IAAIuM,GAAoChS,EAAWyF,IAClF,sCACHE,CAAAC,GAHD,cAIyC/E,IAAMgF,UAC3CC,SACI,OAAOlF,cAAC8e,GAAkC,IAAK1Z,KAAKC,YAE3DL,GCNc+Z,I,GAAAA,GAJf,SAA4B1Z,GACxB,OAAOrF,cAACgf,GAA0B,IAAK3Z,KCW5B8X,I,GAAAA,GAVdvY,aACG,CAACxF,EAAWyF,IAAmB,IAAImS,GAAoC5X,EAAWyF,IAClF,sCACHE,CAAAC,GAHD,cAIyC/E,IAAMgF,UAC3CC,SACI,OAAOlF,cAACif,GAAkC,IAAK7Z,KAAKC,YAE3DL,GCEckY,OAVdtY,aACG,CAACxF,EAAWyF,IAAmB,IAAI0U,GAAkCna,EAAWyF,IAChF,oCACHE,CAAAC,GAHD,cAIuC/E,IAAMgF,UACzCC,SACI,OAAOlF,cAACkf,GAAgC,IAAK9Z,KAAKC,YAEzDL,G,SC4CD,MAAMma,GAAazf,oBAAS,SAAmB8E,GAAgC,IAA/B,sBAAE8F,EAAqB,EAAEzK,GAAG2E,EACxE,MAAM,UAAE0K,EAAS,4BAAE8M,GAAgC1R,EACnD,OACI4E,EAAUkQ,iBACVlQ,EAAUmQ,SACN5e,eAAA,OAAKU,UAAU,oGAAmGhB,SAAA,CAC9GH,cAAA,KAAAG,SAAIN,EAAE,iDACNG,cAACiJ,IAAS,CACNC,MAAM,gDACNE,QAAS4S,EACTnc,EAAGA,UAOvB,SAAS6O,GAAgB7F,GAA2B,IAA1B,iBAAEyW,EAAgB,EAAEzf,GAAGgJ,EAC7C,OACI7I,cAAA,OAAKmB,UAAU,qCAAoChB,SAC/CM,eAAA,OAAKU,UAAU,2DAA0DhB,SAAA,CACrEH,cAAA,OAAKmB,UAAU,qBAAoBhB,SAC/BH,cAAA,KAAGmB,UAAU,gDAGjBV,eAAA,OAAKU,UAAU,qBAAoBhB,SAAA,CAC/BH,cAAA,MAAAG,SAAKN,EAAE,kDACPG,cAAA,KAAAG,SAAIN,EAAE,2DAEVG,cAACiJ,IAAS,CACNC,MAAM,wDACNE,QAASkW,EACTzf,EAAGA,SAORS,oBAjFf,SAA6BC,GAAgC,IAA/B,sBAAE+J,EAAqB,EAAEzK,GAAGU,EACtD,MAAM,UAAE2O,EAAS,4BAAE8M,EAA2B,8BAAEG,GAAkC7R,EAClF,OACI7J,eAACC,IAAc,CAAC7B,MAAOyL,EAAuBzK,EAAGA,EAAEM,SAAA,CAC/CM,eAAA,OAAAN,SAAA,CACIH,cAACW,IAAa,CAACC,gBAAgB,4BAA2BT,SACtDH,cAAC+e,GAAkB,CAAClgB,MAAOyL,EAAuBzK,EAAGA,MAEzDG,cAACmf,GAAU,CAAC7U,sBAAuBA,EAAuBzK,EAAGA,IAC7DG,cAACuP,IAAO,CACJlN,kBAAkB,OAClBxD,MAAOqQ,EACP7N,aAAcA,IACVrB,cAACuf,KAAoB,CACjBC,KAAM,EACNC,WAAY,GACZC,KAAM,GACNzZ,gBAAgB,UAChBC,gBAAgB,YAGxBrG,EAAGA,EACH2P,WAAY7P,IAAA,IAAC,KAAEsB,KAASoE,GAAO1F,EAAA,OAC3BK,cAAC4e,GAA8B,CAC3BtU,sBAAuBA,EACvBiH,aAActQ,EAAKsD,MACfc,KAGZoK,iBAAkBA,IAAMzP,cAAC0O,GAAgB,CAAC4Q,iBAAkBtD,EAA6Bnc,EAAGA,SAGpGG,cAAC2Q,GAA6B,CAAC5P,YAAaob,EAA+Btc,EAAGA,UCrB3ES,I,GAAAA,gBArBf,SAAmCC,GAAsC,IAArC,4BAAEyM,EAA2B,EAAEnN,GAAGU,EAClE,MAAM,YAAE8H,EAAW,WAAEiJ,EAAU,+BAAEvD,GAAmCf,EACpE,OACIhN,cAACU,IAAc,CAAC7B,MAAOmO,EAA6BnN,EAAGA,EAAEM,SAEjDH,cAACqI,EAAY1J,UAAS,CAClB2S,WAAYA,EACZvD,+BAAgCA,EAChCf,4BAA6BA,EAC7BnN,EAAGA,SCCR8f,I,GAAAA,GAVd/a,aACG,CAACxF,EAAWyF,IAAmB,IAAI4V,GAAsBrb,EAAWyF,IACpE,wBACHE,CAAAC,GAHD,cAI2B/E,IAAMgF,UAC7BC,SACI,OAAOlF,cAAC4f,GAAoB,IAAKxa,KAAKC,YAE7CL,GCEc6a,OAVdjb,aACG,CAACxF,EAAWyF,IAAmB,IAAIgY,GAA4Bzd,EAAWyF,IAC1E,8BACHE,CAAAC,GAHD,cAIiC/E,IAAMgF,UACnCC,SACI,OAAOlF,cAAC8f,GAA0B,IAAK1a,KAAKC,YAEnDL,GCDG3G,IAAsBC,OAAO,eAAeC,SAAS,CACjDC,KAAM,mBACNC,OAAQ,CACJ,CACID,KAAM,0BACNE,QAAS,QACTyB,SAAU,CACN,CACI3B,KAAM,+BACNE,QAAS,GACTC,UAAWgG,EACX9F,MAAOkhB,IACP3N,KAAM,CACFrP,MAAO,gCAGf,CACIvE,KAAM,kCACNE,QAAS,eACTC,UAAW2G,EACXzG,MAAOmhB,KAEX,CACIxhB,KAAM,kCACNE,QAAS,eACTC,UAAW8G,EACX5G,MAAOohB,KAEX,CACIzhB,KAAM,wCACNE,QAAS,qBACTC,UAAWiH,EACX/G,MAAOqhB,KAEX,CACI1hB,KAAM,wCACNE,QAAS,oBACTC,UAAWghB,GACX9gB,MAAO4a,IAEX,CACIjb,KAAM,+CACNE,QAAS,qCACTC,UAAWkhB,GACXhhB,MAAOyf,IAEX,CACI9f,KAAM,6CACNE,QAAS,kDACTC,UAAWkhB,GACXhhB,MAAOyf,OAKvB6B,KAAM,CACF,CACIpd,MAAO,wBACPqd,MAAO,EACPnV,KAAM,OACNoV,MAAO,oC,2HCtCR/f,mBA3Bf,SAAoDC,GAAsB,IAArB,YAAEQ,EAAW,EAAElB,GAAGU,EACnE,MAAM,OAAEoJ,EAAM,KAAEyI,EAAO,IAAOrR,EACxBuf,EAAiBC,IAAkBnd,OAAOgP,EAAKoO,OAAQ,CACzDC,SAAU,QAEd,OACIzgB,cAACyJ,IAAQ,CAAC1I,YAAaA,EAAa2I,2BAA2B,EAAOgX,kBAAkB,EAAMvgB,SAC1FM,eAAA,OAAAN,SAAA,CACIH,cAAA,OAAKmB,UAAU,gBAAehB,SAC1BH,cAAA,MAAAG,SAAI,eAERH,cAAA,OAAKmB,UAAU,cAAahB,SACxBM,eAAA,KAAAN,SAAA,CAAImgB,EAAe,6DAEvBtgB,cAAA,OAAKmB,UAAU,gBAAehB,SAC1BH,cAACiJ,IAAS,CAACC,MAAM,yBAAyBE,QAASO,EAAOgX,uC,wBCuC/DjhB,0BAtDf,SAAuCa,GAAmC,IAAlC,yBAAEqgB,EAAwB,EAAE/gB,GAAGU,EACnE,MAAM,YAAEsgB,EAAW,YAAE3f,EAAW,UAAE4f,GAAcF,EAChD,OACIngB,eAAA,OAAKU,UAAU,qBAAoBhB,SAAA,CAC/BH,cAAA,MAAImB,UAAU,kCAAiChB,SAAC,YAChDH,cAAA,OAAKmB,UAAU,8BAA6BhB,SACxCH,cAACoB,IAAgB,CAACF,YAAaA,EAAaG,aAAcA,IAAMrB,cAAC+gB,IAA0B,CAACC,QAAM,IAAI7gB,SACjGA,IACGH,cAAA,OAAKmB,UAAU,sBAAqBhB,SAC/B0gB,GACGpgB,eAAA,OAAKU,UAAU,sBAAqBhB,SAAA,CACV,IAArB2gB,EAAU5c,QACPlE,cAACC,IAAMC,SAAQ,CAAAC,SACXH,cAAA,OAAKmB,UAAU,yBAAwBhB,SACnCM,eAAA,OAAKU,UAAU,gBAAehB,SAAA,CAC1BH,cAAA,KAAGmB,UAAU,oCAAmChB,SAAC,aAEjDH,cAAA,KAAGmB,UAAU,8CAA6ChB,SACrD0gB,EAAYI,sBAMjCjhB,cAAA,OAAKmB,UAAU,MAAKhB,SAChBM,eAAA,OAAKU,UAAU,gBAAehB,SAAA,CAC1BH,cAAA,KAAGmB,UAAU,oCAAmChB,SAAC,oBACjDH,cAAA,OAAKmB,UAAU,+BAA8BhB,SACzCH,cAAA,KAAGmB,UAAU,0BAAyBhB,SACjCogB,IAAkBnd,OACfyd,EAAYK,eAAiBL,EAAYK,eAAiB,EAC1D,CACIT,SAAU,gCC3BvDU,I,QCmBAC,MA5BwB/b,IACnC,MACOgB,EAAaC,GAAkBC,mBAAS,GAEzCJ,EAAMkb,uBAAaC,IACR,OAATA,GAAehb,EAAegb,EAAKC,wBAAwB1Z,SAChE,IAEH,OACI7H,cAAA,OAAKmG,IAAKA,EAAIhG,SACVM,eAACuH,IAAa,CACVC,MAAO,EACPJ,MAAOxB,EACPyB,OAAO,OACPI,QAAO,OAAAH,OAAS1B,EAAW,KAAA0B,OAblB,KAcT9B,gBAAgB,UAChBC,gBAAgB,aACZb,EAAKlF,SAAA,CAETH,cAAA,QAAMmH,EAAE,IAAIO,EAAG,EAAGC,GAAG,IAAIC,GAAG,IAAIC,MAAM,OAAOC,OAAO,OACpD9H,cAAA,QAAMmH,EAAE,IAAIO,EAAG,GAAIC,GAAG,IAAIC,GAAG,IAAIC,MAAM,MAAMC,OAAO,OAEpD9H,cAAA,QAAMmH,EAAE,IAAIO,EAAG,GAAIC,GAAG,IAAIC,GAAG,IAAIC,MAAM,OAAOC,OAAO,aCkCtD0Z,MAxDsBnc,IACjC,MAAM,IAAEW,EAAM,GAAE,SAAEyb,EAAQ,SAAEC,KAAaC,GAAStc,EAC5CsB,EAAcC,OAAOC,WACrB+a,EAAQ,GACd,IAAIvb,EACAwb,GAAY,EAGZxb,EADAM,EAAc,IACA,IAEAA,EAGdA,EAAc,MACdkb,GAAY,GAGhB,IAAIna,EAAI+Z,EAAW,GAAK,EACpBK,EAAOL,EAAW,GAAK,EAE3B,IAAK,IAAIla,EAAI,EAAGA,EAAIvB,EAAKuB,IAAK,CAC1B,IAAIwa,EAA4B,IAAhB1a,KAAK2a,SAAiB,GACtCJ,EAAMna,KACFhH,eAACR,IAAMC,SAAQ,CAAAC,SAAA,CACVshB,GAAkB,IAANla,GAAWvH,cAAA,QAAMmH,EAAE,IAAIO,EAAGoa,EAAO,EAAGna,GAAG,IAAIC,GAAG,IAAIC,MAAM,OAAOC,OAAO,MACnF9H,cAAA,QAAMmH,EAAE,KAAKO,EAAGA,EAAGC,GAAG,IAAIC,GAAG,IAAIC,MAAM,KAAKC,OAAO,OAEnD9H,cAAA,QAAMmH,EAAE,KAAKO,EAAGma,EAAYna,EAAI,EAAIA,EAAI,EAAGC,GAAG,IAAIC,GAAG,IAAIC,MAAOka,EAAWja,OAAO,OAElF9H,cAAA,QAAMmH,EAAE,MAAMO,EAAGma,EAAYna,EAAI,GAAKA,EAAI,EAAGC,GAAG,IAAIC,GAAG,IAAIC,MAAM,KAAKC,OAAO,OAC5E+Z,GAAa7hB,cAAA,QAAMmH,EAAG,QAASO,EAAGma,EAAYna,EAAI,GAAKA,EAAI,EAAGC,GAAG,IAAIC,GAAG,IAAIC,MAAO,KAAMC,OAAO,MACjG9H,cAAA,QAAMmH,EAAE,IAAIO,EAAGoa,GAAQL,EAAW,GAAK,IAAK9Z,GAAG,IAAIC,GAAG,IAAIC,MAAM,OAAOC,OAAO,QAAM,gBAAAC,OARnDR,KAYzCG,GAAK,GACLoa,GAAQ,MAGZ,OACI9hB,cAAA,OAAAG,SACIH,cAACgI,IAAa,CACVC,MAAO,EACPJ,MAAM,OACNC,OAAO,OACPI,QAAO,OAAAH,OAAS1B,EAAW,KAAA0B,OAAK2Z,EAAoBha,EAAI,GAAbA,EAAI,IAC/CzB,gBAAgB,UAChBC,gBAAgB,aACZyb,EAAIxhB,SAEPyhB,OCvBFK,MA3BqBA,KAChC,MAAO5b,EAAaC,GAAkBC,mBAAS,GAEzCJ,EAAMkb,uBAAaC,IACR,OAATA,GAAehb,EAAegb,EAAKC,wBAAwB1Z,SAChE,IAEH,OACI7H,cAAA,OACImB,UAAU,iIACVgF,IAAKA,EAAIhG,SAETM,eAACuH,IAAa,CACVC,MAAO,EACPJ,MAAM,OACNC,OAAO,OACPI,QAAO,OAAAH,OAAS1B,EAAW,OAC3BJ,gBAAgB,UAChBC,gBAAgB,UAAS/F,SAAA,CAEzBH,cAAA,QAAMmH,EAAE,IAAIO,EAAE,IAAIC,GAAG,IAAIC,GAAG,IAAIC,MAAM,MAAMC,OAAO,OACnD9H,cAAA,QAAMmH,EAAGd,EAAc,GAAIqB,EAAE,IAAIC,GAAG,IAAIC,GAAG,IAAIC,MAAM,KAAKC,OAAO,aCjBlEoa,MAJf,SAA6C7c,GACzC,OAAOrF,cAACmiB,EAA2C,IAAK9c,KCG7C+c,MAJf,SAAgC/c,GAC5B,OAAOrF,cAACqiB,EAA8B,IAAKhd,KCGhCid,MAJf,SAA+Bjd,GAC3B,OAAOrF,cAACohB,EAA6B,IAAK/b,KCG/Bkd,MAJf,SAA6Bld,GACzB,OAAOrF,cAACwhB,EAA2B,IAAKnc,KCG7Bmd,MAJf,SAA6Bnd,GACzB,OAAOrF,cAACiiB,EAA2B,IAAK5c,K,yBCkB7Bod,MApBmBC,IAC9B,MAAOC,EAAoBC,GAAyBrc,mBAAS,GAgB7D,OAdAC,qBAAU,KACN,IAAKkc,EAAM,OAEX,MAAMG,EAAiBA,KACnBD,EAAsBF,EAAKI,aAO/B,OAJAJ,EAAKK,iBAAiB,SAAUF,GAEhCA,IAEO,IAAMH,EAAKM,oBAAoB,SAAUH,KACjD,CAACH,IAEGC,GCYIM,MA5Bf,WAGI,MAAOC,EAAYC,GAAiB5c,mBAAS,CACzCsB,MAAO,EACPC,OAAQ,IAoBZ,OAjBAtB,qBAAU,KAEN,SAAS4c,IAELD,EAAc,CACVtb,MAAOjB,OAAOC,WACdiB,OAAQlB,OAAOyc,cAQvB,OAJAzc,OAAOmc,iBAAiB,SAAUK,GAElCA,IAEO,IAAMxc,OAAOoc,oBAAoB,SAAUI,KACnD,IAEIF,GCVII,MAlBO/iB,IAAoD,IAAnD,QAAEgjB,EAAO,UAAEC,EAAS,MAAEvb,EAAK,SAAEwb,EAAQ,KAAElb,GAAMhI,EAC5DmjB,EAAe,EAEnB,MAAMC,EAAaC,aAAY,WACT,SAAdJ,EACAD,EAAQT,YAAcva,EAEtBgb,EAAQT,YAAcva,EAG1Bmb,GAAgBnb,EAEZmb,GAAgBD,GAChB7c,OAAOid,cAAcF,KAE1B1b,IC6GQ6b,MAvHDze,IACV,MAAM,MAAEsF,EAAK,GAAEpG,EAAE,QAAEmQ,EAAO,SAAE9J,EAAQ,SAAE+Q,GAAatW,GAE5C0e,EAAgBC,GAAqBzd,oBAAS,IAC9C0d,EAASC,GAAc3d,sBACvB4d,EAAgBC,GAAqB7d,mBAAS,CAAE8d,OAAO,EAAMC,KAAK,IAEnE3B,EAAqBF,EAAyBwB,GAAW,OACzD,MAAEpc,GAAUob,IAEZsB,EAAuBlD,uBAAY,KACrC,IAAK4C,EAAS,OACd,MAAMO,EAAqC,IAAvBP,EAAQnB,WACtB2B,EAAYR,EAAQS,aAAerd,KAAKsd,KAAKV,EAAQnB,YAAczb,KAAKsd,KAAKV,EAAQW,aAAe,GAEtGX,EAAQnB,WAAa,IAAM2B,EAC3BL,EAAkB,CAAEC,OAAO,EAAOC,KAAK,IAChCE,EACPJ,EAAkB,CAAEC,OAAO,EAAMC,KAAK,IAC/BG,GACPL,EAAkB,CAAEC,OAAO,EAAOC,KAAK,MAE5C,CAACL,IAEJzd,qBAAU,KACN+d,MACD,CAAC5B,EAAoB4B,IAExB/d,qBAAU,KACN,MAAMqe,EAAQC,YAAW,KACrBP,MACD,KAEH,MAAO,IAAMQ,aAAaF,KAC3B,CAAChd,EAAOoc,EAASM,IAEpB,MAAMS,EAAsBxB,KAEnBS,GACc,SAAdT,GAAwBW,EAAeE,OACzB,UAAdb,GAAyBW,EAAeG,MAK7ChB,EAAc,CACVC,QAASU,EACTT,UAAWA,EACXvb,MAAO,GACPwb,SAAU,IACVlb,KAAM,KAGVuc,YAAW,KACPP,MACD,OAGP,OACI9jB,eAAA,OAAKU,UAAU,6BAA4BhB,SAAA,CACtC4jB,EAAiB,KACd/jB,cAAA,UACImB,UAAU,4CACVyJ,SAAUuZ,EAAeE,MACzBjb,QAASA,IAAM4b,EAAmB,QAAQ7kB,SAE1CH,cAAA,KAAGmB,UAAU,sDAIrBnB,cAAA,OACImB,UAAU,uDACVgF,IAAM8d,IACGA,IACLC,EAAWD,GACXD,EAAkBC,EAAQS,aAAeT,EAAQW,eACnDzkB,SAEDuU,EAAQvQ,KAAI,CAACyX,EAAQnT,KAClB,MAAMwc,EAAM,GAAAld,OAAMxD,EAAE,KAAAwD,OAAI6T,EAAOrX,IACzB2gB,EAAYva,IAAUiR,EAAOrX,GAEnC,OACI9D,eAACR,IAAMC,SAAQ,CAAAC,SAAA,CACXH,cAAA,SACIuE,GAAI0gB,EACJta,MAAOiR,EAAOpd,KACd2mB,QAASD,EACTta,SAAUA,EACVkC,KAAK,QACL6O,SAAUA,IAAMA,EAASC,EAAOrX,IAChC6gB,SAAU,EACVjkB,UAAWoB,YACP,iEACU,IAAVkG,EAAc,qBAAuB,GACrCA,IAAUiM,EAAQxQ,OAAS,EAAI,oBAAsB,GACrDghB,EAAY,SAAW,MAI/BllB,cAAA,SAAOqlB,QAASJ,EAAO9kB,SAAEyb,EAAO1S,OAAS0S,EAAOpd,SAjB/BymB,QAuBhClB,EAAiB,KACd/jB,cAAA,UACImB,UAAU,4CACVyJ,SAAUuZ,EAAeG,IACzBlb,QAASA,IAAM4b,EAAmB,SAAS7kB,SAE3CH,cAAA,KAAGmB,UAAU,2DCpCjC,MAAMmkB,EAAU5lB,oBAAS,SAAgBC,GAAmC,IAAlC,yBAAEihB,EAAwB,EAAE/gB,GAAGF,EACrE,MAAM,oBACF4lB,EAAmB,yBACnBC,EAAwB,oBACxBC,EAAmB,kBACnBC,EAAiB,oCACjBC,EAAmC,YACnCzkB,GACA0f,EACJ,OACIngB,eAAA,OAAAN,SAAA,CACIH,cAAA,MAAImB,UAAU,kCAAiChB,SAAC,YAChDH,cAAA,OAAKmB,UAAU,8BAA6BhB,SACxCH,cAACoB,IAAgB,CAACF,YAAaA,EAAaG,aAAcA,IAAMrB,cAACsiB,EAAqB,IAAIniB,SACrFA,IACGH,cAAA,OAAKmB,UAAU,MAAKhB,SAChBM,eAAA,OAAKU,UAAU,sCAAqChB,SAAA,CAC/ColB,GACGvlB,cAACkN,IAAa,CACVC,UAAU,qCACVhM,UAAU,+CAA8ChB,SAC3D,qBAIHolB,IAAwBC,GACtBxlB,cAAA,OAAAG,SACIH,cAACiJ,IAAS,CACNpJ,EAAGA,EACHqJ,MAAM,oBACNE,QAASqc,EACTG,YAAWD,EACXxkB,UAAU,mEACVyJ,SAAU+a,OAIpBJ,GAAuBC,GACrB/kB,eAAA,OAAAN,SAAA,CACIH,cAAA,KAAGmB,UAAU,kCAAiChB,SAAC,2DAG/CH,cAACiJ,IAAS,CACNpJ,EAAGA,EACHqJ,MAAM,WACNE,QAASA,IAAOxC,OAAOlF,SAAS+B,KAAOiiB,EACvCvkB,UAAU,uFAavCb,mBA/Hf,SAAgCC,GAAmC,IAAlC,yBAAEqgB,EAAwB,EAAE/gB,GAAGU,EAC5D,MAAM,iBAAEslB,EAAgB,iBAAEC,EAAgB,iBAAEC,EAAgB,UAAEjF,EAAS,mBAAEkF,EAAkB,eAAEC,GACzFrF,EAEJ,OACIngB,eAAA,OAAKU,UAAU,oCAAmChB,SAAA,CAC9CM,eAAA,OAAKU,UAAU,qBAAoBhB,SAAA,CAC/BH,cAAA,OAAKmB,UAAU,qBAAoBhB,SAC/BM,eAAA,OAAAN,SAAA,CACIH,cAAA,MAAImB,UAAU,kCAAiChB,SAC1CN,EAAE,gDAENihB,GAAaA,EAAU5c,OAAS,GAC7BlE,cAAA,OAAKmB,UAAU,sBAAqBhB,SAChCH,cAAC8jB,EAAI,CACDvf,GAAG,yBACHmQ,QAASoM,EACTnW,MAAOqb,EACPrK,SAAWhR,IACPsb,EAAetb,QAK/B3K,cAAA,OAAKmB,UAAU,qBAAoBhB,SAC/BH,cAACkmB,IAAoB,CACjBhX,UAAW2W,EACXM,mBAAoBC,IACpBvmB,EAAGA,WAMnBG,cAAA,OAAKmB,UAAU,qBAAoBhB,SAC/BH,cAACqmB,IAAwC,CACrCtjB,MAAM,0DACNmM,UAAW4W,EACXK,mBAAoBC,IACpBvmB,EAAGA,MAGXG,cAACsmB,IAA6B,CAC1BvjB,MAAM,qDACNmM,UAAW6W,EACXI,mBAAoBC,IACpBvmB,EAAGA,OAIXY,eAAA,OAAAN,SAAA,CACIH,cAAA,OAAKmB,UAAU,MAAKhB,SAChBH,cAAA,OAAKmB,UAAU,wCAAuChB,SAClDH,cAACoiB,EAAsB,CAACxB,yBAA0BA,QAI1D5gB,cAACslB,EAAO,CAAC1E,yBAA0BA,EAA0B/gB,EAAGA,aCrChF,SAAS0mB,EAAU5mB,GAAkB,IAAjB,WAAE6mB,GAAY7mB,EAC9B,OACIc,eAACyM,IAAa,CAACC,UAAU,8CAA8CsZ,YAAa,CAAED,cAAarmB,SAAA,CAC/FH,cAAA,QAAMmB,UAAU,iDAAgDhB,SAC5DH,cAAA,KAAGmB,UAAU,sCACV,UAMJb,mBArCf,SAAsCC,GAAyC,IAAxC,+BAAEmmB,EAA8B,EAAE7mB,GAAGU,EACxE,OACIP,cAAC2mB,IAAoB,CACjBC,wBAAyBF,EACzBG,mBAAoBA,IAAM7mB,cAACumB,EAAU,CAACC,WAAYE,EAA+BF,aACjF3mB,EAAGA,EAAEM,SAELM,eAAA,OAAKU,UAAU,oCAAmChB,SAAA,CAC9CH,cAAC8mB,IAAc,CAACF,wBAAyBF,EAAgC7mB,EAAGA,IAE5EG,cAAA,OAAKmB,UAAU,2BAA0BhB,SACrCH,cAAC+mB,IAA4B,CACzBC,sCAAuCN,EACvC7mB,EAAGA,c,gBC6CZS,mBAvDf,SAAwCC,GAA2C,IAA1C,iCAAE0mB,EAAgC,EAAEpnB,GAAGU,EAC5E,MAAM,KAAE0M,EAAI,sBAAEia,EAAqB,kBAAEC,EAAiB,4BAAEC,GACpDH,EACJ,OACIxmB,eAAC4mB,IAAO,CAAAlnB,SAAA,CACJH,cAACW,IAAa,CAAAR,SACVM,eAACyM,IAAa,CAACC,UAAU,8CAA6ChN,SAAA,CAClEH,cAAA,QAAMmB,UAAU,iDAAgDhB,SAC5DH,cAAA,KAAGmB,UAAU,sCACV,wBAKfnB,cAAA,OAAKmB,UAAU,MAAKhB,SAChBH,cAAA,OAAKmB,UAAU,2BAA0BhB,SACrCH,cAAA,OAAKmB,UAAU,8BAA6BhB,SACxCM,eAAC4M,IAAiB,CAACJ,KAAMA,EAAMqa,YAAY,6BAA6BznB,EAAGA,EAAEM,SAAA,CACzEH,cAACunB,IAAkB,CACf1nB,EAAGA,EACH2nB,oBAAoB,EACpBnlB,kBAAkB,qFAClBoL,MAAOR,EAAKS,EAAE,YAElBjN,eAAA,OAAKU,UAAU,MAAKhB,SAAA,CAChBM,eAAA,OAAKU,UAAU,2BAA0BhB,SAAA,CACrCH,cAAA,KAAGmB,UAAU,uBAAsBhB,SAAC,4BACpCH,cAAA,OAAAG,SACKogB,IAAkBnd,OAAO8jB,EAAuB,CAC7CzG,SAAU,aAItBhgB,eAAA,OAAKU,UAAU,2BAA0BhB,SAAA,CACrCH,cAAA,KAAGmB,UAAU,uBAAsBhB,SAAC,wBACpCH,cAAA,OAAAG,SACKogB,IAAkBnd,OAAO+jB,EAAmB,CACzC1G,SAAU,yBAS1CzgB,cAACkiB,EAAmC,CAACnhB,YAAaqmB,EAA6BvnB,EAAGA,U,gBCW/ES,mBA3Df,SAAgCC,GAA+D,IAA9D,yBAAEknB,EAAwB,iBAAEC,EAAgB,EAAE7nB,KAAMwF,GAAO9E,EACxF,MAAM,YAAEonB,EAAW,eAAEC,EAAc,iBAAEC,GAAqBJ,EAY1D,OACIznB,cAACC,IAAMC,SAAQ,CAAAC,SACXM,eAAC4mB,IAAO,CAAAlnB,SAAA,CACJH,cAACW,IAAa,CAAAR,SACVH,cAAA,OAAAG,SAbR0nB,IAAqBC,IAAcC,cAC5BloB,EAAE,uDACFgoB,IAAqBC,IAAcE,WACnCnoB,EAAE,oDAEF,uBAWHG,cAAA,OAAKmB,UAAU,SAAQhB,SAClB0nB,IAAqBC,IAAcC,eAChCtnB,eAACR,IAAMC,SAAQ,CAAAC,SAAA,CACXH,cAACkN,IAAa,CACV9D,QAASA,IAAMwe,EAAe,GAC9BzmB,UAAWoB,YACP,eACsB,cAAtBolB,EAAY5kB,OAAyB,wBAEzCoK,UAAU,gDAA+ChN,SAExDN,EAAE,kDAEPG,cAACkN,IAAa,CACV9D,QAASA,IAAMwe,EAAe,GAC9BzmB,UAAWoB,YACP,eACsB,YAAtBolB,EAAY5kB,OAAuB,wBAEvCoK,UAAU,8CAA6ChN,SAEtDN,EAAE,qDAMlB6nB,EAAiBriB,W,0CCuElC,MAAM4iB,EAAqBvoB,oBAAS,SAA2BC,GAA8C,IAA7C,oCAAEuoB,EAAmC,EAAEroB,GAAGF,EACtG,MAAM,OAAEiP,EAAM,QAAEuZ,EAAO,QAAEC,EAAO,YAAEC,EAAW,UAAEC,EAAS,YAAEC,EAAW,oBAAEC,EAAmB,qBAAEC,GACxFP,EAEJ,OACIznB,eAAA,OAAKU,UAAU,0DAAyDhB,SAAA,CACpEH,cAAC0oB,IAAe,CAAC7pB,MAAO4pB,EAAsB7nB,gBAAgB,uCAE9DH,eAAA,OAAKU,UAAU,8CAA6ChB,SAAA,CACxDH,cAAC2oB,IAAa,CACVhe,MAAOiE,EAAOga,KACdC,cAAc,EACdC,aAAa,EACble,SAAU4d,EACVL,QAASA,EACTY,SAAUna,EAAOma,SACjBC,UAAWpa,EAAOga,KAClBK,QAASra,EAAOsa,GAChBvN,SAAU4M,IAEdvoB,cAAA,QAAMmB,UAAU,qCAAoChB,SAAC,MACrDH,cAAC2oB,IAAa,CACVhe,MAAOiE,EAAOsa,GACdC,YAAY,EACZL,aAAa,EACble,SAAU4d,EACVJ,QAASA,EACTD,QAASA,EACTY,SAAUna,EAAOma,SACjBC,UAAWpa,EAAOga,KAClBK,QAASra,EAAOsa,GAChBvN,SAAU2M,OAIlBtoB,cAACiJ,IAAS,CACNpJ,EAAGA,EACHsB,UAAU,mCACViI,QAASif,EACTnf,MAAM,QACN0B,SAAU4d,UAMpBY,EAAiB1pB,oBAAS,SAAuB8E,GAQnD,IARoD,kCACpD6kB,EAAiC,MACjCtmB,EAAK,mBACLumB,EAAkB,mCAClBC,EAAkC,sCAClCC,EAAqC,eACrCC,EAAc,EACd5pB,GACH2E,EACG,MAAM,UAAE0K,GAAcma,EAChBK,EAAkBtjB,iBAAO,MAC/B,OACI3F,eAAA,OAAAN,SAAA,CACIM,eAAA,OAAKU,UAAU,oGAAmGhB,SAAA,CAC9GH,cAAA,MAAImB,UAAU,eAAchB,SAAE4C,IAC9B/C,cAAC2pB,IAAe,CACZplB,GAAG,iCACH/F,KAAK,iCACLorB,qBAAqB,wBACrBlV,QAAS4U,EACT3N,SAAU6N,EACV7e,MAAO4e,OAGI,MAAlBE,EAC0C,IAAvCF,EACI9oB,eAAA,OAAKU,UAAU,iIAAgIhB,SAAA,CAC3IH,cAAA,KAAAG,SAAIN,EAAE,kDACNG,cAAA,KAAAG,SAAI0pB,IAAgBzmB,OAAOqmB,QAG/BhpB,eAAA,OAAKU,UAAU,iIAAgIhB,SAAA,CAC3IH,cAAA,KAAAG,SAAIN,EAAE,oDACNG,cAAA,KAAAG,SAAI0pB,IAAgBzmB,OAAOqmB,QAInCzpB,cAACwiB,EAAmB,IAExBxiB,cAAA,OAAKmB,UAAU,sDAAsDgF,IAAKujB,EAAgBvpB,SACtFH,cAAC8pB,IAAqB,CAClBC,eAAgBA,IAAM/pB,cAACuiB,EAAmB,CAACb,UAAQ,IACnDsI,eAAgBhqB,cAACuiB,EAAmB,CAACd,UAAQ,EAACzb,IAAK,EAAG0b,UAAQ,IAC9DyE,mBAAoBA,IAChBnmB,cAACiqB,IAAqB,CAACrpB,gBAAgB,yCAE3CyB,kBAAkB,GAClBxD,MAAOqQ,EACPgb,aAAcR,EAAgBjjB,QAC9B0jB,aAAe9kB,GACXrF,cAAA,OAAKmB,UAAU,iFAAgFhB,SAC3FM,eAAA,OAAKU,UAAU,0BAAyBhB,SAAA,CACpCM,eAAA,OAAKU,UAAU,8CAA6ChB,SAAA,CACxDM,eAAA,QAAMU,UAAU,qCAAoChB,SAAA,CAAEkF,EAAMoD,MAAQ,EAAE,OACrEpD,EAAMpE,KAAK8B,MAAQ/C,cAAA,KAAAG,SAAIkF,EAAMpE,KAAK8B,QAAa/C,cAAA,QAAAG,SAAM,oBACtDH,cAAA,KACImB,UAAWoB,YACP,uCACA8C,EAAMpE,KAAK2B,UAAY,kBAAoB,WAIvD5C,cAAA,KAAGmB,UAAU,2BAA0BhB,SAAE0pB,IAAgBzmB,OAAOiC,EAAMpE,KAAKmpB,WAXjC/kB,EAAMpE,KAAKsD,gBAqB/E8lB,EAAiB3qB,oBAAS,SAAuBmJ,GAQnD,IARoD,kCACpDyhB,EAAiC,MACjCvnB,EAAK,mBACLumB,EAAkB,mCAClBiB,EAAkC,sCAClCC,EAAqC,eACrCf,EAAc,EACd5pB,GACHgJ,EACG,MAAM,UAAEqG,GAAcob,EAChBZ,EAAkBtjB,iBAAO,MAE/B,OACI3F,eAAA,OAAAN,SAAA,CACIM,eAAA,OAAKU,UAAU,oGAAmGhB,SAAA,CAC9GH,cAAA,MAAImB,UAAU,eAAchB,SAAE4C,IAC9B/C,cAAC2pB,IAAe,CACZplB,GAAG,+BACH/F,KAAK,+BACLorB,qBAAqB,wBACrBlV,QAAS4U,EACT3N,SAAU6O,EACV7f,MAAO4f,OAGI,MAAlBd,EAC0C,IAAvCc,EACI9pB,eAAA,OAAKU,UAAU,iIAAgIhB,SAAA,CAC3IH,cAAA,KAAAG,SAAIN,EAAE,kDACNG,cAAA,KAAAG,SAAI0pB,IAAgBzmB,OAAOqmB,QAG/BhpB,eAAA,OAAKU,UAAU,iIAAgIhB,SAAA,CAC3IH,cAAA,KAAAG,SAAIN,EAAE,oDACNG,cAAA,KAAAG,SAAI0pB,IAAgBzmB,OAAOqmB,QAInCzpB,cAACwiB,EAAmB,IAGxBxiB,cAAA,OAAKmB,UAAU,sDAAsDgF,IAAKujB,EAAgBvpB,SACtFH,cAAC8pB,IAAqB,CAClBC,eAAgBA,IAAM/pB,cAACuiB,EAAmB,CAACb,UAAQ,IACnDsI,eAAgBhqB,cAACuiB,EAAmB,CAACd,UAAQ,EAACzb,IAAK,EAAG0b,UAAQ,IAC9DyE,mBAAoBA,IAChBnmB,cAACiqB,IAAqB,CAACrpB,gBAAgB,yCAE3CyB,kBAAkB,GAClBxD,MAAOqQ,EACPgb,aAAcR,EAAgBjjB,QAC9B0jB,aAAe9kB,GACXrF,cAAA,OAAKmB,UAAU,iFAAgFhB,SAC3FM,eAAA,OAAKU,UAAU,0BAAyBhB,SAAA,CACpCM,eAAA,OAAKU,UAAU,8CAA6ChB,SAAA,CACxDM,eAAA,QAAMU,UAAU,qCAAoChB,SAAA,CAAEkF,EAAMoD,MAAQ,EAAE,OACrEpD,EAAMpE,KAAK8B,MAAQ/C,cAAA,KAAAG,SAAIkF,EAAMpE,KAAK8B,QAAa/C,cAAA,QAAAG,SAAM,kBACtDH,cAAA,KACImB,UAAWoB,YACP,uCACA8C,EAAMpE,KAAK2B,UAAY,kBAAoB,WAIvD5C,cAAA,KAAGmB,UAAU,2BAA0BhB,SAAE0pB,IAAgBzmB,OAAOiC,EAAMpE,KAAKmpB,WAXjC/kB,EAAMpE,KAAKsD,gBAqBtEjE,mBA9Sf,SAAkCC,GAAqC,IAApC,2BAAEkqB,EAA0B,EAAE5qB,GAAGU,EAChE,MAAM,kCACF+pB,EAAiC,kCACjCjB,EAAiC,iBACjCxB,EAAgB,oCAChBK,EAAmC,mBACnCoB,EAAkB,mCAClBiB,EAAkC,mCAClChB,EAAkC,sCAClCiB,EAAqC,sCACrChB,EAAqC,wBACrCkB,EAAuB,wBACvBC,GACAF,EAYJ,OACIhqB,eAACR,IAAMC,SAAQ,CAAAC,SAAA,CACXH,cAACW,IAAa,CAAAR,SACVM,eAAA,OAAKU,UAAU,8FAA6FhB,SAAA,CAZhH0nB,IAAqBC,IAAcC,cAC5BloB,EAAE,uDACFgoB,IAAqBC,IAAcE,WACnCnoB,EAAE,oDAEF,mBASCG,cAACioB,EAAkB,CACfC,oCAAqCA,EACrCroB,EAAGA,SAIfG,cAAA,OAAKmB,UAAU,MAAKhB,SACf0nB,IAAqBC,IAAcC,cAChC/nB,cAAA,OAAKmB,UAAU,gDAA+ChB,SAC1DH,cAACopB,EAAc,CACXC,kCAAmCA,EACnCtmB,MAAOlD,EAAE,gEACTypB,mBAAoBA,EACpBC,mCAAoCA,EACpCC,sCAAuCA,EACvCC,eAAgBkB,EAChB9qB,EAAGA,OAGUioB,IAAcE,WACnCvnB,eAAAmqB,WAAA,CAAAzqB,SAAA,CACIH,cAAA,OAAKmB,UAAU,gDAA+ChB,SAC1DH,cAACqqB,EAAc,CACXC,kCAAmCA,EACnCvnB,MAAOlD,EAAE,gEACTypB,mBAAoBA,EACpBiB,mCAAoCA,EACpCC,sCAAuCA,EACvCf,eAAgBiB,EAChB7qB,EAAGA,MAGXG,cAAA,OAAKmB,UAAU,6BAA4BhB,SACvCH,cAACopB,EAAc,CACXC,kCAAmCA,EACnCtmB,MAAOlD,EAAE,gEACTypB,mBAAoBA,EACpBC,mCAAoCA,EACpCC,sCAAuCA,EACvCC,eAAgBkB,EAChB9qB,EAAGA,kB,QC9EnC,MAAMgrB,WAAkCnR,IACpC5I,YAAY1R,GACR4R,MAAM5R,GAENgG,KAAKuU,QAAUva,EAAUwa,yBAAyBkR,MAClD1lB,KAAK2lB,2BAA6B3rB,EAAUwa,yBAAyBoR,MACrE5lB,KAAK6lB,wBAA0B7rB,EAAUwa,yBAAyBsR,KAClE9lB,KAAK+lB,0BAA4B/rB,EAAUwa,yBAAyBwR,KAGxE,0BAA0BzhB,GAEtB,aADuBvE,KAAKuU,QAAQ0R,oBAAoB1hB,IACxCyI,KAGpB,kCAEI,aADuBhN,KAAK2lB,2BAA2BO,6BACvClZ,KAGpB,yCAEI,aADuBhN,KAAK2lB,2BAA2BQ,oCACvCnZ,KAGpB,8BAA8B2K,GAE1B,aADuB3X,KAAK2lB,2BAA2BS,wBAAwBzO,IAC/D3K,KAGpB,gCAAgCxD,GAE5B,aADuBxJ,KAAK2lB,2BAA2BU,0BAA0B7c,IACjEwD,KAGpB,2CAA2CxD,GAEvC,aADuBxJ,KAAK2lB,2BAA2BW,qCAAqC9c,IAC5EwD,KAGpB,qBAEI,aADuBhN,KAAK2lB,2BAA2BY,gBACvCvZ,MAITyY,I,wEAAAA,M,6ECuXAe,QAjae7mB,GAEzBuQ,cAAWnP,IAAG4M,GAUduC,cAAWnP,IAAG6M,GA8QdH,UAAOC,MAAKG,GAMZJ,UAAOC,MAAKiD,GAKZlD,UAAOC,MAAKkD,GAKZnD,UAAOC,MAAKmD,GAKZpD,UAAOC,MAAKgK,GAKZjK,UAAOC,MAAK+Y,GAKZhZ,UAAOC,MAAKgZ,GAKZjZ,UAAOC,MAAKiZ,GAKZlZ,UAAOC,MAAKkZ,GAKZnZ,UAAOC,MAAKmZ,GAMZpZ,UAAOC,MAAK9N,GA9UjB,cAAuCkO,IAkBnC,+BACI,QAAI9N,KAAKyb,cACGzN,iBAAMhO,KAAKyb,YAAYqL,iBAKvCpb,YAAY1R,EAASmB,GAAmB,IAAjB,WAAE+Q,GAAY/Q,EACjCyQ,MAAM5R,GAAW+U,aAAA,aAzBb,MAAIC,aAAA,mBAAAC,GAAA,MAAAD,aAAA,wBAAAE,GAAA,MAAAF,aAAA,wBAAAiJ,GAAA,MAAAjJ,aAAA,wBAAAkJ,GAAA,MAAAnJ,aAAA,2BAKU,MAAIA,aAAA,2BACJ,MAAIA,aAAA,2BACJ,MAAIC,aAAA,iBAAAmJ,GAAA,MAAAnJ,aAAA,0BAAAoJ,GAAA,MAAApJ,aAAA,2BAAA+X,GAAA,MAAA/X,aAAA,wBAAAgY,GAAA,MAAAhY,aAAA,yBAAAiY,GAAA,MAAAjY,aAAA,2CAAAkY,GAAA,MAAAnY,aAAA,kBAQb,MAWTI,0BAAenP,MACfA,KAAKkM,WAAaA,EAElBlM,KAAKohB,WAAaphB,KAAKhG,UAAUF,YAAYwb,YAAY+L,YAAYD,WAErEphB,KAAKmnB,oBAAsB,IAAIC,KAC3BpnB,KAAKhG,WACL6b,UACI7V,KAAKqnB,sBAAsB7d,KAE/B,CACIrD,QAAS,cACTqP,eAAgB,OAChB8R,mBAAmB,EACnBC,0BAA0B,IAIlCvnB,KAAKwnB,oBAAsB,IAAIJ,KAC3BpnB,KAAKhG,WACL6b,UACI7V,KAAKynB,sBAAsBje,KAE/B,CACIrD,QAAS,cACTqP,eAAgB,OAChB8R,mBAAmB,EACnBC,0BAA0B,IAIlCvnB,KAAK0nB,oBAAsB,IAAIN,KAC3BpnB,KAAKhG,WACL6b,UACI7V,KAAK2nB,sBAAsBne,KAE/B,CACIrD,QAAS,cACTqP,eAAgB,OAChB8R,mBAAmB,EACnBC,0BAA0B,IAGlCvnB,KAAKqnB,sBAAwBrnB,KAAKqnB,sBAAsB1U,KAAK3S,MAC7DA,KAAKynB,sBAAwBznB,KAAKynB,sBAAsB9U,KAAK3S,MAE7D,MAAMwjB,EAAOoE,KAAOC,MAAMC,SAAS,EAAG,QAAQC,QAAQ,SAAS/pB,OAAOC,IAAoBC,QAAQ8pB,SAC5FlE,EAAK8D,KAAOC,MAAMC,SAAS,EAAG,SAASC,QAAQ,SAAS/pB,OAAOC,IAAoBC,QAAQ8pB,SACjGhoB,KAAKioB,MAAQ,CACTzE,KAAMA,EACNM,GAAIA,GAGR9jB,KAAKkoB,oBACD,IAAIC,IAAkBnoB,KAAKhG,UAAWgG,KAAK0nB,oBAAqB,CAC5DU,WAAalM,IACT,MAAMmM,EAActqB,IAAcC,OAAOke,EAAKlP,KAAKqb,YAAa,CAC5DrqB,OAAQC,IAAoBC,QAAQ8pB,QACpCrE,SAAU,QAEd3jB,KAAKhG,UAAUF,YAAY2S,KACvB,qCACA,CACItN,GAAIa,KAAK4gB,oBAEb,CACIyH,YAAaA,KAIzBC,QAAS,CACL,CACIrT,IAAK,cACLtX,MAAO,SACP4qB,UAAU,EACVC,KAAMC,KAEV,CACIxT,IAAK,yBACLtX,MAAO,gBACP4qB,UAAU,EACVC,KAAME,KAEV,CACIzT,IAAK,yBACLtX,MAAO,kBACPK,OAASuH,GAAUkf,IAAgBzmB,OAAOuH,IAE9C,CACI0P,IAAK,uBACLtX,MAAO,UACP4qB,UAAU,EACVvqB,OAAQ,CACJ0J,KAAMihB,IAAkBtN,SACxBA,SAAU,YAO9Brb,KAAK4oB,oBACD,IAAIT,IAAkBnoB,KAAKhG,UAAWgG,KAAKmnB,oBAAqB,CAC5DmB,QAAS,CACL,CACIrT,IAAK,cACLtX,MAAO,OACP4qB,UAAU,EACVvqB,OAASuH,GACLxH,IAAcC,OAAOuH,EAAO,CACxBvH,OAAQC,IAAoBC,QAAQ2qB,YAGhD,CACI5T,IAAK,sBACLtX,MAAO,yBAEX,CACIsX,IAAK,SACLtX,MAAO,SACP4qB,UAAU,EACVvqB,OAAQ,CACJ0J,KAAMihB,IAAkBtN,SACxBA,SAAU,YAO9Brb,KAAK8oB,oBACD,IAAIX,IAAkBnoB,KAAKhG,UAAWgG,KAAKwnB,oBAAqB,CAC5Dc,QAAS,CACL,CACIrT,IAAK,cACLtX,MAAO,OACP4qB,UAAU,EACVvqB,OAASuH,GACLxH,IAAcC,OAAOuH,EAAO,CACxBvH,OAAQC,IAAoBC,QAAQ2qB,YAGhD,CACI5T,IAAK,QACLtX,MAAO,SAEX,CACIsX,IAAK,SACLtX,MAAO,SACP4qB,UAAU,EACVvqB,OAAQ,CACJ0J,KAAMihB,IAAkBtN,SACxBA,SAAU,OAGd0N,UAAYltB,GACJA,EAAK0J,MAAQ,EACN,yBACA1J,EAAK0J,MAAQ,EACb,8BADJ,GAKf,CACI0P,IAAK,gBACLtX,MAAO,gBAO3BmW,aAAa1G,GACTpN,KAAKhG,UAAUqT,kBAAkBC,MAC7B,2FACAF,GAIR,4BAA4B5D,GACxBxJ,KAAKygB,iBAAiBzN,UACtB,IACIxJ,EAAO4X,WAAaphB,KAAK4gB,mBACzB,MAAMoI,QAAiBhpB,KAAKipB,iBAAiBzf,GAC7CmD,wBAAY,KACR3M,KAAKygB,iBAAiByI,QAAQF,GAC9BhpB,KAAKygB,iBAAiBtN,YAE5B,MAAO/F,GACLpN,KAAKygB,iBAAiBtN,SACtBnT,KAAK8T,aAAa1G,IAI1B,4BAA4B5D,GACxBxJ,KAAK0gB,iBAAiB1N,UACtB,IACI,MAAMgW,QAAiBhpB,KAAKmpB,iBAAiB3f,GAC7CmD,wBAAY,KACR3M,KAAK0gB,iBAAiBwI,QAAQF,GAC9BhpB,KAAK0gB,iBAAiBvN,YAE5B,MAAO/F,GACLpN,KAAK0gB,iBAAiBvN,SACtBnT,KAAK8T,aAAa1G,IAI1B,4BAA4B5D,GACxBxJ,KAAK2gB,iBAAiB3N,UACtB,IACI,MAAMgW,QAAiBhpB,KAAKopB,iBAAiB5f,GAC7CmD,wBAAY,KACR3M,KAAK2gB,iBAAiBuI,QAAQF,GAC9BhpB,KAAK2gB,iBAAiBxN,YAE5B,MAAO/F,GACLpN,KAAK2gB,iBAAiBxN,SACtBnT,KAAK8T,aAAa1G,IAI1B,uBAAuB5D,GACnB,IACI,OAAOxJ,KAAKkM,WAAW+Z,oBAAoBzc,GAC7C,MAAO8D,GACLtN,KAAK8T,aAAaxG,IAI1B,uBAAuB9D,GACnB,IACI,aAAaxJ,KAAKkM,WAAWoa,qCAAqC9c,GACpE,MAAO8D,GACLtN,KAAK8T,aAAaxG,IAI1B,uBAAuB9D,GACnB,IACI,aAAaxJ,KAAKkM,WAAWma,0BAA0B7c,GACzD,MAAO8D,GACLtN,KAAK8T,aAAaxG,IAI1B,qBACUpT,QAAQgd,IAAI,CACdlX,KAAKqpB,iBACLrpB,KAAKspB,0BACLtpB,KAAKmnB,oBAAoBtU,aACzB7S,KAAKwnB,oBAAoB3U,eAKjC0W,iCAAiCvc,GAC7BhN,KAAKwpB,iBAAmBxc,EACxBhN,KAAKypB,uBAAuBzc,EAAK0c,gBAAkB1c,EAAK2c,kBAI5DF,uBAAuBG,GACnB5pB,KAAKmgB,oBAAsByJ,EAI/BC,qBAAqB7c,GACjBhN,KAAKsgB,kBAAoBtT,EAI7B8c,eAAe9c,GACXhN,KAAKyb,YAAczO,EAIvBkb,oBAAoBzH,GAChBzgB,KAAKygB,iBAAmBA,EAI5BmI,oBAAoBlI,GAChB1gB,KAAK0gB,iBAAmBA,EAI5BoI,oBAAoBnI,GAChB3gB,KAAK2gB,iBAAmBA,EAI5BoJ,aAAarO,GACT1b,KAAK0b,UAAYA,EAIrBsO,uCAAuCJ,GACnC5pB,KAAKugB,oCAAsCqJ,EAG/C,qBACqBxI,GACjBphB,KAAK4gB,mBAAqBQ,QACpBphB,KAAK0nB,oBAAoB7U,aAGnC,4BAEI,IACI7S,KAAKgqB,wCAAuC,GAC5C,MAAMrS,EAAW,CAAEsS,UAAWjqB,KAAKkqB,qBAAsBC,WAAYnqB,KAAKkqB,sBACpEld,QAAahN,KAAKkM,WAAWka,wBAAwBzO,GAC3D3X,KAAK6pB,qBAAqB7c,SAEpBhN,KAAKspB,0BACb,MAAOlc,GACLpN,KAAKhG,UAAUqT,kBAAkBC,MAC7B,2FACAF,IAKZ,gCACI,IACI,MAAMJ,QAAahN,KAAKkM,WAAWga,4BACnClmB,KAAK8pB,eAAe9c,GAChBhN,KAAKogB,iCACCpgB,KAAKoqB,qCAEPpc,iBAAMhO,KAAKsgB,qBAAuBtgB,KAAKmgB,2BACjCngB,KAAKqqB,0BAGrB,MAAOjd,GACLpN,KAAKhG,UAAUqT,kBAAkBC,MAC7B,2FACAF,IAKZ,2CACI,IACI,MAAMJ,QAAahN,KAAKkM,WAAWia,mCACnCnmB,KAAKupB,iCAAiCvc,GACxC,MAAOI,GACLpN,KAAKhG,UAAUqT,kBAAkBC,MAC7B,2FACAF,IAKZ,+BACI,IACI,MAAMuK,EAAW,CAAEsS,UAAWjqB,KAAKkqB,qBAAsBC,WAAYnqB,KAAKkqB,sBACpEld,QAAahN,KAAKkM,WAAWka,wBAAwBzO,GAC3D3X,KAAK6pB,qBAAqB7c,GAC5B,MAAOI,GACLpN,KAAKhG,UAAUqT,kBAAkBC,MAC7B,2FACAF,IAKZ,uBACI,IACI,MAAMsO,QAAkB1b,KAAKkM,WAAWqa,eACxCvmB,KAAK+pB,aAAarO,GACb1N,iBAAMhO,KAAKohB,YAGZphB,KAAK6gB,eAAenF,EAAU,GAAGvc,IAFjCa,KAAK6gB,eAAe7gB,KAAKohB,YAI/B,MAAOhU,GACLpN,KAAKhG,UAAUqT,kBAAkBC,MAC7B,2FACAF,IAKZ8c,qBACI,MAAM,GAANvnB,OAAUnB,OAAOlF,SAASguB,OAAM,uBAEvCrb,GAAAe,aAAApQ,GAAAqQ,UAAA,eAAAtQ,IAAA,CAAAwQ,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,kBA7ZiC,QAAIpB,GAAAc,aAAApQ,GAAAqQ,UAAA,oBACjCC,eAAU,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,kBAAoB,QAAI2H,GAAAjI,aAAApQ,GAAAqQ,UAAA,oBAClCC,eAAU,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,kBAAoB,QAAI4H,GAAAlI,aAAApQ,GAAAqQ,UAAA,oBAClCC,eAAU,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,kBAAoB,QAAI6H,GAAAnI,aAAApQ,GAAAqQ,UAAA,aAIlCC,eAAU,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,kBAAa,QAAI8H,GAAApI,aAAApQ,GAAAqQ,UAAA,sBAC3BC,eAAU,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,kBAAsB,QAAIyW,GAAA/W,aAAApQ,GAAAqQ,UAAA,uBACpCC,eAAU,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,kBAAuB,KAAK0W,GAAAhX,aAAApQ,GAAAqQ,UAAA,oBAAAtC,IAAA,CAAAwC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,kBACJ,QAAI2W,GAAAjX,aAAApQ,GAAAqQ,UAAA,qBACtCC,eAAU,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAA4W,GAAAlX,aAAApQ,GAAAqQ,UAAA,uCACVC,eAAU,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,kBAAuC,KAAKN,aAAApQ,GAAAqQ,UAAA,4BAItDM,aAAQC,OAAAC,yBAAA7Q,GAAAqQ,UAAA,4BAAArQ,GAAAqQ,WAAAD,aAAApQ,GAAAqQ,UAAA,oCAAArC,IAAA4C,OAAAC,yBAAA7Q,GAAAqQ,UAAA,oCAAArQ,GAAAqQ,WAAAD,aAAApQ,GAAAqQ,UAAA,0BAAApC,IAAA2C,OAAAC,yBAAA7Q,GAAAqQ,UAAA,0BAAArQ,GAAAqQ,WAAAD,aAAApQ,GAAAqQ,UAAA,wBAAAU,IAAAH,OAAAC,yBAAA7Q,GAAAqQ,UAAA,wBAAArQ,GAAAqQ,WAAAD,aAAApQ,GAAAqQ,UAAA,kBAAAW,IAAAJ,OAAAC,yBAAA7Q,GAAAqQ,UAAA,kBAAArQ,GAAAqQ,WAAAD,aAAApQ,GAAAqQ,UAAA,uBAAAY,IAAAL,OAAAC,yBAAA7Q,GAAAqQ,UAAA,uBAAArQ,GAAAqQ,WAAAD,aAAApQ,GAAAqQ,UAAA,uBAAAyH,IAAAlH,OAAAC,yBAAA7Q,GAAAqQ,UAAA,uBAAArQ,GAAAqQ,WAAAD,aAAApQ,GAAAqQ,UAAA,uBAAAwW,IAAAjW,OAAAC,yBAAA7Q,GAAAqQ,UAAA,uBAAArQ,GAAAqQ,WAAAD,aAAApQ,GAAAqQ,UAAA,gBAAAyW,IAAAlW,OAAAC,yBAAA7Q,GAAAqQ,UAAA,gBAAArQ,GAAAqQ,WAAAD,aAAApQ,GAAAqQ,UAAA,0CAAA0W,IAAAnW,OAAAC,yBAAA7Q,GAAAqQ,UAAA,0CAAArQ,GAAAqQ,WAAAD,aAAApQ,GAAAqQ,UAAA,kBAAA2W,IAAApW,OAAAC,yBAAA7Q,GAAAqQ,UAAA,kBAAArQ,GAAAqQ,WAAAD,aAAApQ,GAAAqQ,UAAA,uBAAA4W,IAAArW,OAAAC,yBAAA7Q,GAAAqQ,UAAA,uBAAArQ,GAAAqQ,WAAArQ,IC3Bb,MAAM2qB,WAAwCjW,IAC1C5I,YAAY1R,GACR4R,MAAM5R,GAENgG,KAAKuU,QAAUva,EAAUwa,yBAAyBkR,MAGtD,gCAAgCtE,EAAY9R,GAExC,aADuBtP,KAAKuU,QAAQiW,0BAA0BpJ,EAAY9R,IAC1DtC,KAGpB,8BAA8BxD,GAE1B,aADuBxJ,KAAKuU,QAAQkW,wBAAwBjhB,IAC5CwD,KAGpB,yCAAyCzI,GAErC,aADuBvE,KAAKuU,QAAQmW,mCAAmCnmB,IACvDyI,MAITud,U,UCxBf,MAAMI,WAAuCC,KAGzClf,YAAY1R,EAASmB,GAAmB,IAAjB,WAAE+Q,GAAY/Q,EACjCyQ,MAAM5R,EAAW,CAAE6wB,eAAe,IAAQ9b,aAAA,kBAHjC,MAIT/O,KAAKkM,WAAaA,EAClBlM,KAAKohB,WAAaphB,KAAKhG,UAAUF,YAAYwb,YAAY/Q,OAAOpF,GAGpE8O,KAAK1J,GAED,OADAA,EAAO6c,WAAaphB,KAAKohB,WAClBphB,KAAKkM,WAAWue,wBAAwBlmB,GAGnDumB,cAAcvmB,GACV,OAAOvE,KAAKkM,WAAWse,0BAA0BxqB,KAAKohB,WAAY7c,IAI3DomB,UClBf,MAAMI,WAA0CzW,IAC5C5I,YAAY1R,GACR4R,MAAM5R,GAENgG,KAAK2lB,2BAA6B3rB,EAAUwa,yBAAyBoR,MAGzE,kCAEI,aADuB5lB,KAAK2lB,2BAA2BO,6BACvClZ,KAGpB,iCAAiCge,EAAWrT,GAExC,aADuB3X,KAAK2lB,2BAA2BsF,2BAA2BD,EAAWrT,IAC7E3K,MAIT+d,U,SCnBA,MAAMG,WAAoCzf,KACrDC,YAAYC,GACRC,MAAMD,GAGVE,QACI,MAAO,CACHC,OAAQ,CACJ,CACI1S,KAAM,SACN0K,MAAO,4DACPkG,YAAa,kEACb+B,MAAO,6B,+BCwGZof,QA9GuBxrB,GAEjCuQ,cAAWnP,IAAG4M,GA0CdF,UAAOC,MAAKE,GA2CZH,UAAOC,MAAKG,GAiBZJ,UAAOC,MAAK9N,GAxGjB,cAA+CkO,IAI3C,4BACI,OAAI9N,KAAKorB,oBACEprB,KAAKorB,oBAAoBtP,eAE7B,EAGX,wBACI,IAAIV,EAASpb,KAAK6H,KAAKS,EAAE,UAAU/C,OAAS,EAK5C,OAJI8lB,oBAASjQ,KACTA,EAASkQ,WAAWlQ,IAGjBnZ,KAAKspB,IAAIvrB,KAAK8hB,sBAAwB1G,EAAQ,GAGzD1P,YAAY1R,EAASmB,GAAmB,IAAjB,WAAE+Q,GAAY/Q,EACjCyQ,MAAM5R,GAAW+U,aAAA,gBApBV,MAAIC,aAAA,2BAAAC,GAAA,MAqBXE,0BAAenP,MACfA,KAAKkM,WAAaA,EAElBlM,KAAK6H,KAAO,IAAIqjB,GAA4B,CACxCM,UAAY3jB,IACR,MAAMhM,EAAOgM,EAAK4jB,SAIlB,OAHIJ,oBAASxvB,EAAKuf,UACdvf,EAAKuf,OAASkQ,WAAWzvB,EAAKuf,SAE3Bpb,KAAK0rB,gBAAgB7vB,MAIpCmE,KAAKgiB,4BAA8B,IAAIhL,KAAe,KAAM,CACxDuE,2BAA4Bvb,KAAK2rB,sBAIzC,qBACU3rB,KAAK4rB,yBAGf,sBACsBjU,GAClB,MAAMyD,EAASzD,EAASyD,OACxB,GAAIA,EAASpb,KAAK8hB,sBAEd,YADA9hB,KAAK6H,KAAKgkB,WAAW,wCAIzB,MAAM3Q,EAAiBC,IAAkBnd,OAAO2Z,EAASyD,OAAQ,CAC7DC,SAAU,QAEdrb,KAAKhG,UAAUyb,mBAAmBC,YAAY,CAC1CC,QAAS,oBACTM,YAAY,GAADtT,OAAKuY,EAAc,wDAC9BnF,SAAS,YAADpT,OAAcuY,GACtBtF,UAAWC,UACP,UACU7V,KAAKkM,WAAW+e,2BAClBjrB,KAAKorB,oBAAoBU,sBACzBnU,GAGJ3X,KAAKgiB,4BAA4BzK,KAAK,CAAE6D,OAAQA,IAClD,MAAOhO,GACDA,EAAIJ,KAAK+e,YAAcC,IAAsBC,SAASC,2BACtDlsB,KAAK6H,KAAKgkB,WAAW,wCACdze,EAAIJ,KAAK+e,YAAcC,IAAsBC,SAASE,8BAC7DnsB,KAAK6H,KAAKgkB,WAAW,2CACdze,EAAIJ,KAAK+e,YAAcC,IAAsBC,SAASG,6BAC7DpsB,KAAK6H,KAAKgkB,WAAW,qCACdze,EAAIJ,KAAK+e,YAAcC,IAAsBC,SAASI,+BAC7DrsB,KAAK6H,KAAKgkB,WAAW,0CAErB7rB,KAAKhG,UAAUqT,kBAAkBC,MAC7B,iGACAF,OASxBue,sBACI3rB,KAAKhG,UAAUF,YAAY2S,KAAK,+CAGpC,+BACI,IACI,MAAM6f,QAAgBtsB,KAAKkM,WAAWga,4BACtClmB,KAAKusB,uBAAuBD,GAC9B,MAAOlf,GACLpN,KAAKhG,UAAUqT,kBAAkBC,MAC7B,8FACAF,IAMZmf,uBAAuBD,GACnBtsB,KAAKorB,oBAAsBkB,IAElCrd,GAAAe,aAAApQ,GAAAqQ,UAAA,uBAAAtQ,IAAA,CAAAwQ,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,kBA1GyC,QAAIN,aAAApQ,GAAAqQ,UAAA,yBAEzCM,aAAQC,OAAAC,yBAAA7Q,GAAAqQ,UAAA,yBAAArQ,GAAAqQ,WAAAD,aAAApQ,GAAAqQ,UAAA,qBAORM,aAAQC,OAAAC,yBAAA7Q,GAAAqQ,UAAA,qBAAArQ,GAAAqQ,WAAAD,aAAApQ,GAAAqQ,UAAA,mBAAAtC,IAAA6C,OAAAC,yBAAA7Q,GAAAqQ,UAAA,mBAAArQ,GAAAqQ,WAAAD,aAAApQ,GAAAqQ,UAAA,uBAAArC,IAAA4C,OAAAC,yBAAA7Q,GAAAqQ,UAAA,uBAAArQ,GAAAqQ,WAAAD,aAAApQ,GAAAqQ,UAAA,0BAAApC,IAAA2C,OAAAC,yBAAA7Q,GAAAqQ,UAAA,0BAAArQ,GAAAqQ,WAAArQ,IChBb,MAAM4sB,WAAoClY,IACtC5I,YAAY1R,GACR4R,MAAM5R,GAENgG,KAAK6lB,wBAA0B7rB,EAAUwa,yBAAyBsR,KAClE9lB,KAAK+lB,0BAA4B/rB,EAAUwa,yBAAyBwR,KAGxE,0BAA0Bxc,GAEtB,aADuBxJ,KAAK6lB,wBAAwB4G,+BAA+BjjB,IACnEwD,KAGpB,wBAAwBxD,GAEpB,aADuBxJ,KAAK+lB,0BAA0B2G,6BAA6BljB,IACnEwD,KAGpB,oCAAoCxD,GAEhC,aADuBxJ,KAAK+lB,0BAA0B4G,yCAAyCnjB,IAC/EwD,KAGpB,sCAAsCxD,GAElC,aADuBxJ,KAAK6lB,wBAAwB+G,2CAA2CpjB,IAC/EwD,MAITwf,I,kBAAAA,M,OC1Bf,MAAMK,GACK,QADLA,GAES,YAFTA,GAGS,cAHTA,GAIQ,YAJRA,GAKQ,YALRA,GAMS,aANTA,GAOS,aAPTA,GAQM,SAGNC,GAAyB,CAC3B,CAAEhpB,MAAO,SAAUyB,MAAOsnB,IAC1B,CAAE/oB,MAAO,QAASyB,MAAOsnB,IACzB,CAAE/oB,MAAO,YAAayB,MAAOsnB,IAC7B,CAAE/oB,MAAO,cAAeyB,MAAOsnB,IAC/B,CAAE/oB,MAAO,YAAayB,MAAOsnB,IAC7B,CAAE/oB,MAAO,YAAayB,MAAOsnB,IAC7B,CAAE/oB,MAAO,aAAcyB,MAAOsnB,IAC9B,CAAE/oB,MAAO,aAAcyB,MAAOsnB,KAG5BlJ,GAAWiE,KAAOmF,GAAGC,QAkJZC,QAhJ0BttB,GAiDpC8N,UAAOC,MAAKC,GA+EZF,UAAOC,MAAKE,GAKZH,UAAOC,MAAKG,GAKZJ,UAAOC,MAAK9N,GA1IjB,MAaI,0BACI,OAAOI,KAAKqjB,qBAAqB9d,QAAUsnB,GAG/C,cACI,OAAOjF,KAAO5nB,KAAKwJ,OAAOga,MAAM0J,SAGpCxhB,YAAY1R,EAASmB,GAAsB,IAApB,cAAEgyB,GAAehyB,EAAA6T,aAAA,cAAAC,GAAA,MAAAF,aAAA,eAZ9B,MAAIA,aAAA,2BACQ,MAAIA,aAAA,6BACF,MAWpB/O,KAAKhG,UAAYA,EACjBmV,0BAAenP,MACfA,KAAK+iB,QAAU6E,OAASG,QAAQ,OAAOmF,SACvCltB,KAAKmtB,cAAgBA,EAErBntB,KAAKqjB,qBAAuB,IAAIjN,IAC5B,CACIC,QAAS,QACTC,SAAU,QACV1R,QAAS,CACL2R,SAAUV,UACN7V,KAAKqjB,qBAAqB1M,gBACtB1I,gBAAK6e,IAAyBtW,GAAWA,EAAOjR,QAAU6nB,EAAU7nB,SAEpE6nB,EAAU7nB,QAAUsnB,IACpB7sB,KAAKqtB,aAAaD,EAAU7nB,UAK5CunB,IAEJ9sB,KAAKqjB,qBAAqB1M,gBACtB1I,gBAAK6e,IAAyBtW,GAAWA,EAAOjR,QAAUsnB,MAKlEQ,aAAa9nB,GACT,MAAM+nB,EAAM1F,OAASC,MAAMkF,GAAGpJ,IAC9B,OAAQpe,GACJ,KAAKsnB,GACD7sB,KAAKwJ,OAAS,CACVsa,GAAI8D,KAAO0F,GAAKC,MAAM,OAAOC,cAC7BhK,KAAMoE,KAAO0F,GAAKvF,QAAQ,OAAOyF,cACjCC,gBAAiB7F,KAAO0F,GAAKxF,SAAS,EAAG,OAAOyF,MAAM,OAAOC,cAC7DE,kBAAmB9F,KAAO0F,GAAKxF,SAAS,EAAG,OAAOC,QAAQ,OAAOyF,cACjE7J,SAAUA,IAEd,MAEJ,KAAKkJ,GACD7sB,KAAKwJ,OAAS,CACVsa,GAAI8D,KAAO0F,GAAKxF,SAAS,EAAG,OAAOyF,MAAM,OAAOC,cAChDhK,KAAMoE,KAAO0F,GAAKxF,SAAS,EAAG,OAAOC,QAAQ,OAAOyF,cACpDC,gBAAiB7F,KAAO0F,GAAKxF,SAAS,EAAG,OAAOyF,MAAM,OAAOC,cAC7DE,kBAAmB9F,KAAO0F,GAAKxF,SAAS,EAAG,OAAOC,QAAQ,OAAOyF,cACjE7J,SAAUA,IAEd,MAEJ,KAAKkJ,GACD7sB,KAAKwJ,OAAS,CACVsa,GAAI8D,KAAO0F,GAAKC,MAAM,OAAOC,cAC7BhK,KAAMoE,KAAO0F,GAAKxF,SAAS,EAAG,QAAQC,QAAQ,OAAOyF,cACrDC,gBAAiB7F,KAAO0F,GAAKxF,SAAS,EAAG,QAAQyF,MAAM,OAAOC,cAC9DE,kBAAmB9F,KAAO0F,GAAKxF,SAAS,EAAG,QAAQC,QAAQ,OAAOyF,cAClE7J,SAAUA,IAEd,MAEJ,KAAKkJ,GACD7sB,KAAKwJ,OAAS,CACVsa,GAAI8D,KAAO0F,GAAKC,MAAM,QAAQC,cAC9BhK,KAAMoE,KAAO0F,GAAKvF,QAAQ,QAAQyF,cAClCC,gBAAiB7F,KAAO0F,GAAKxF,SAAS,EAAG,QAAQyF,MAAM,QAAQC,cAC/DE,kBAAmB9F,KAAO0F,GAAKxF,SAAS,EAAG,QAAQC,QAAQ,QAAQyF,cACnE7J,SAAUA,IAEd,MAEJ,KAAKkJ,GACD7sB,KAAKwJ,OAAS,CACVsa,GAAI8D,KAAO0F,GAAKxF,SAAS,EAAG,QAAQyF,MAAM,QAAQC,cAClDhK,KAAMoE,KAAO0F,GAAKxF,SAAS,EAAG,QAAQC,QAAQ,QAAQyF,cACtDC,gBAAiB7F,KAAO0F,GAAKxF,SAAS,EAAG,SAASyF,MAAM,QAAQC,cAChEE,kBAAmB9F,KAAO0F,GAAKxF,SAAS,EAAG,SAASC,QAAQ,QAAQyF,cACpE7J,SAAUA,IAEd,MAEJ,KAAKkJ,GACD7sB,KAAKwJ,OAAS,CACVsa,GAAI8D,KAAO0F,GAAKC,MAAM,SAASC,cAC/BhK,KAAMoE,KAAO0F,GAAKvF,QAAQ,SAASyF,cACnCC,gBAAiB7F,KAAO0F,GAAKxF,SAAS,EAAG,SAASyF,MAAM,SAASC,cACjEE,kBAAmB9F,KAAO0F,GAAKxF,SAAS,EAAG,SAASC,QAAQ,SAASyF,cACrE7J,SAAUA,IAEd,MAEJ,KAAKkJ,GACD7sB,KAAKwJ,OAAS,CACVsa,GAAI8D,KAAO0F,GAAKxF,SAAS,EAAG,SAASyF,MAAM,SAASC,cACpDhK,KAAMoE,KAAO0F,GAAKxF,SAAS,EAAG,SAASC,QAAQ,SAASyF,cACxDC,gBAAiB7F,KAAO0F,GAAKxF,SAAS,EAAG,UAAUyF,MAAM,SAASC,cAClEE,kBAAmB9F,KAAO0F,GAAKxF,SAAS,EAAG,UAAUC,QAAQ,SAASyF,cACtE7J,SAAUA,IAMtB3jB,KAAKmtB,cAAcntB,KAAKwJ,QAI5B2Z,YAAY5d,GACRvF,KAAKwJ,OAAOga,KAAOoE,KAAOC,IAAItiB,GAAOwnB,GAAG/sB,KAAKwJ,OAAOma,UAAUoE,QAAQ,OAAOyF,cAIjFtK,UAAU3d,GACNvF,KAAKwJ,OAAOsa,GAAK8D,KAAOC,IAAItiB,GAAOwnB,GAAG/sB,KAAKwJ,OAAOma,UAAU4J,MAAM,OAAOC,cAI7EvK,cACIjjB,KAAKmtB,cAAcntB,KAAKwJ,UAE/ByF,GAAAe,aAAApQ,GAAAqQ,UAAA,UA7IIC,eAAU,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,iBAAU,CACjBwT,GAAI8D,OAASC,MAAMkF,GAAGpJ,IAAU4J,MAAM,QAAQC,cAC9ChK,KAAMoE,OAASC,MAAMkF,GAAGpJ,IAAUoE,QAAQ,QAAQyF,cAClDC,gBAAiB7F,OAASC,MAAMkF,GAAGpJ,IAAUmE,SAAS,EAAG,QAAQyF,MAAM,QAAQC,cAC/EE,kBAAmB9F,OAASC,MAAMkF,GAAGpJ,IAAUmE,SAAS,EAAG,QAAQC,QAAQ,QAAQyF,cACnF7J,SAAUA,OACb3T,aAAApQ,GAAAqQ,UAAA,uBAMAM,aAAQC,OAAAC,yBAAA7Q,GAAAqQ,UAAA,uBAAArQ,GAAAqQ,WAAAD,aAAApQ,GAAAqQ,UAAA,WAIRM,aAAQC,OAAAC,yBAAA7Q,GAAAqQ,UAAA,WAAArQ,GAAAqQ,WAAAD,aAAApQ,GAAAqQ,UAAA,gBAAAtQ,IAAA6Q,OAAAC,yBAAA7Q,GAAAqQ,UAAA,gBAAArQ,GAAAqQ,WAAAD,aAAApQ,GAAAqQ,UAAA,eAAAtC,IAAA6C,OAAAC,yBAAA7Q,GAAAqQ,UAAA,eAAArQ,GAAAqQ,WAAAD,aAAApQ,GAAAqQ,UAAA,aAAArC,IAAA4C,OAAAC,yBAAA7Q,GAAAqQ,UAAA,aAAArQ,GAAAqQ,WAAAD,aAAApQ,GAAAqQ,UAAA,eAAApC,IAAA2C,OAAAC,yBAAA7Q,GAAAqQ,UAAA,eAAArQ,GAAAqQ,WAAArQ,IC3Cb,MAAM+tB,WAA6CC,IAC/CliB,YAAY1R,EAASmB,GAAmC,IAAjC,gBAAE0yB,EAAe,UAAEC,GAAW3yB,EACjDyQ,MAAM5R,EAAW,CACbkY,YAAa,CACTxH,SAAU,GACV4c,kBAAmB,CAAC,OAAQ,WAAY,UAGhDtnB,KAAK6tB,gBAAkBA,EACvB7tB,KAAK8tB,UAAYA,EAEjB9tB,KAAKmS,aACD,IAAI4b,IAA+B/tB,KAAKhG,UAAWgG,KAAKuJ,aAAc,CAClEykB,YAAcnyB,IAAI,IAAAoyB,EAAAC,EAAA,OAAwB,QAAnBD,EAAApyB,EAAKsyB,sBAAc,IAAAF,OAAA,EAAnBA,EAAqB9uB,MAAkB,QAAhB+uB,EAAIryB,EAAKiW,eAAO,IAAAoc,OAAA,EAAZA,EAAc/uB,KAChEgX,OAASta,IAAU,IAADuyB,EACd,MAAO,CACHjvB,IAAuB,QAAnBivB,EAAAvyB,EAAKsyB,sBAAc,IAAAC,OAAA,EAAnBA,EAAqBjvB,KAAMtD,EAAKiW,QAAQ3S,GAC5CxB,MAAO9B,EAAKsyB,eAAiBtyB,EAAKsyB,eAAexwB,MAAQ9B,EAAKiW,QAAQnU,MACtEH,UACK3B,EAAKsyB,gBAAkBtyB,EAAKsyB,eAAe3wB,WAC3C3B,EAAKiW,SAAWjW,EAAKiW,QAAQtU,UAClCwnB,MAAOnpB,EAAKwyB,uBAOhCpgB,KAAK1J,GAED,OADAvE,KAAK6tB,gBAAgB,CAAES,KAAM/pB,EAAOgqB,WAAYC,IAAKjqB,EAAOmG,WACrD1K,KAAK8tB,aAILH,I,6CAAAA,MC9Bf,MAAMhK,GAAWiE,KAAOmF,GAAGC,QA0LZyB,I,SAAAA,IAxLiB9uB,GA8E3B8N,UAAOC,MAAKC,GAMZF,UAAOC,MAAKE,GAIZH,UAAOC,MAAKG,GAKZJ,UAAOC,MAAKiD,GAUZlD,UAAOC,MAAKkD,GASZnD,UAAOC,MAAKmD,GAKZpD,UAAOC,MAAK9N,GArHjB,cAAyCkO,IAsBrC,uBAAkC,IAAD4gB,EAAAC,EAC7B,OAA+B,QAA/BD,EAAO1uB,KAAKhG,UAAUD,iBAAS,IAAA20B,GAAc,QAAdC,EAAxBD,EAA0BE,oBAAY,IAAAD,OAAd,EAAxBA,EAAwCE,KAGnD,sBACI,MAAMC,EAA8D,IAA5C9uB,KAAKmlB,mCAC7B,MAAO,IAAKnlB,KAAK+uB,cAAe/uB,KAAKgvB,sBAAuBF,mBAGhE,sBACI,MAAMA,EAA8D,IAA5C9uB,KAAKmkB,mCAC7B,MAAO,IAAKnkB,KAAK+uB,cAAe/uB,KAAKivB,sBAAuBH,mBAGhEpjB,YAAY1R,EAASmB,GAAmB,IAAjB,WAAE+Q,GAAY/Q,EACjCyQ,MAAM5R,GAAWgV,aAAA,kBAAAC,GAAA,MAAAD,aAAA,6BAAAE,GAAA,MAAAF,aAAA,6BAAAiJ,GAAA,MAAAlJ,aAAA,0BA1BA,CACjB,CAAExJ,MAAO,EAAGzB,MAAO,WACnB,CAAEyB,MAAO,EAAGzB,MAAO,sBACtBkL,aAAA,0CAAAkJ,GAAA,MAAAlJ,aAAA,0CAAAmJ,GAAA,MAAAnJ,aAAA,+BAAAoJ,GAAA,MAAApJ,aAAA,+BAAA+X,GAAA,MAwBG5X,0BAAenP,MACfA,KAAKkM,WAAaA,EAElBlM,KAAK8iB,oCAAsC,IAAImK,GAAoCjtB,KAAKhG,UAAW,CAC/FmzB,cAAgB3jB,GAAWxJ,KAAKmtB,cAAc3jB,KAGlDxJ,KAAKklB,kCAAoC,IAAIyI,GAAqC3tB,KAAKhG,UAAW,CAC9F6zB,gBAAkBrkB,GAAWxJ,KAAKkvB,yBAAyB1lB,GAC3DskB,UAAWA,IAAM9tB,KAAKmvB,wBAG1BnvB,KAAKikB,kCAAoC,IAAI0J,GAAqC3tB,KAAKhG,UAAW,CAC9F6zB,gBAAkBrkB,GAAWxJ,KAAKovB,yBAAyB5lB,GAC3DskB,UAAWA,IAAM9tB,KAAKqvB,0BAG1BrvB,KAAKsvB,YAActvB,KAAKsvB,YAAY3c,KAAK3S,MAG7C8T,aAAa1G,GACTpN,KAAKhG,UAAUqT,kBAAkBC,MAC7B,2FACAF,GAIR,qBACUpN,KAAKsvB,cAGf,0BACUp1B,QAAQgd,IAAI,CACdlX,KAAKuvB,kCACLvvB,KAAKwvB,oCACLxvB,KAAKklB,kCAAkC3b,aAAakJ,QACpDzS,KAAKikB,kCAAkC1a,aAAakJ,UAI5D,oBACoBjJ,GAChBxJ,KAAK+uB,WAAavlB,QACZxJ,KAAKsvB,cAIfJ,yBAAyB1lB,GACrBxJ,KAAKgvB,sBAAwBxlB,EAGjC4lB,yBAAyB5lB,GACrBxJ,KAAKivB,sBAAwBzlB,EAGjC,4CAC4CjE,GACxCvF,KAAKmkB,mCAAqC5e,QACpCrL,QAAQgd,IAAI,CACdlX,KAAKwvB,oCAELxvB,KAAKikB,kCAAkC1a,aAAakJ,UAI5D,4CAC4ClN,GACxCvF,KAAKmlB,mCAAqC5f,QACpCrL,QAAQgd,IAAI,CACdlX,KAAKuvB,kCACLvvB,KAAKklB,kCAAkC3b,aAAakJ,UAK5Dgd,2BAA2BlqB,GACvBvF,KAAKslB,wBAA0B/f,EAInCmqB,2BAA2BnqB,GACvBvF,KAAKulB,wBAA0BhgB,EAGnC,8BACI,IAEI,aADmBvF,KAAKkM,WAAWyjB,oBAAoB3vB,KAAK4vB,iBAE9D,MAAOtiB,GACL,GAAIA,GAASA,EAAMyG,aAAeC,IAAgBC,gBAC9C,OAEJjU,KAAKhG,UAAUqT,kBAAkBC,MAC7B,8DACAA,IAKZ,4BACI,IAEI,aADmBtN,KAAKkM,WAAW2jB,kBAAkB7vB,KAAK8vB,iBAE5D,MAAOxiB,GACL,GAAIA,GAASA,EAAMyG,aAAeC,IAAgBC,gBAC9C,OAEJjU,KAAKhG,UAAUqT,kBAAkBC,MAAM,4DAA6DA,IAI5G,wCACI,IACItN,KAAKyvB,2BAA2B,MAChC,MAAMlqB,QAAcvF,KAAKkM,WAAW6jB,8BAA8B/vB,KAAK8vB,iBACvE9vB,KAAKyvB,2BAA2BlqB,GAClC,MAAO+H,GACL,GAAIA,GAASA,EAAMyG,aAAeC,IAAgBC,gBAC9C,OAEJjU,KAAKyvB,2BAA2B,MAChCzvB,KAAKhG,UAAUqT,kBAAkBC,MAC7B,sFACAA,IAKZ,0CACI,IACItN,KAAK0vB,2BAA2B,MAChC,MAAMnqB,QAAcvF,KAAKkM,WAAW8jB,gCAAgChwB,KAAK4vB,iBACzE5vB,KAAK0vB,2BAA2BnqB,GAClC,MAAO+H,GACL,GAAIA,GAASA,EAAMyG,aAAeC,IAAgBC,gBAC9C,OAEJjU,KAAK0vB,2BAA2B,MAChC1vB,KAAKhG,UAAUqT,kBAAkBC,MAC7B,sFACAA,MAIf2B,GAAAe,aAAApQ,GAAAqQ,UAAA,cArLIC,eAAU,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,iBAAc,CACrBwT,GAAI8D,OAASC,MAAMkF,GAAGpJ,IAAU4J,MAAM,QAAQC,cAC9ChK,KAAMoE,OAASC,MAAMkF,GAAGpJ,IAAUoE,QAAQ,QAAQyF,cAClDC,gBAAiB7F,OAASC,MAAMkF,GAAGpJ,IAAUmE,SAAS,EAAG,QAAQyF,MAAM,QAAQC,cAC/EE,kBAAmB9F,OAASC,MAAMkF,GAAGpJ,IAAUmE,SAAS,EAAG,QAAQC,QAAQ,QAAQyF,cACnF7J,SAAUA,OACbzU,GAAAc,aAAApQ,GAAAqQ,UAAA,yBACAC,eAAU,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,iBAAyB,CAAEke,IAAK,GAAIF,KAAM,MAAGrW,GAAAjI,aAAApQ,GAAAqQ,UAAA,yBACvDC,eAAU,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,iBAAyB,CAAEke,IAAK,GAAIF,KAAM,MAAGpW,GAAAlI,aAAApQ,GAAAqQ,UAAA,sCAOvDC,eAAU,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,kBAAsC,KAAC6H,GAAAnI,aAAApQ,GAAAqQ,UAAA,sCACjDC,eAAU,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,kBAAsC,KAAC8H,GAAApI,aAAApQ,GAAAqQ,UAAA,2BAEjDC,eAAU,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,kBAA2B,QAAIyW,GAAA/W,aAAApQ,GAAAqQ,UAAA,2BACzCC,eAAU,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,kBAA2B,QAAIN,aAAApQ,GAAAqQ,UAAA,oBAEzCM,aAAQC,OAAAC,yBAAA7Q,GAAAqQ,UAAA,oBAAArQ,GAAAqQ,WAAAD,aAAApQ,GAAAqQ,UAAA,mBAIRM,aAAQC,OAAAC,yBAAA7Q,GAAAqQ,UAAA,mBAAArQ,GAAAqQ,WAAAD,aAAApQ,GAAAqQ,UAAA,mBAKRM,aAAQC,OAAAC,yBAAA7Q,GAAAqQ,UAAA,mBAAArQ,GAAAqQ,WAAAD,aAAApQ,GAAAqQ,UAAA,iBAAAtQ,IAAA6Q,OAAAC,yBAAA7Q,GAAAqQ,UAAA,iBAAArQ,GAAAqQ,WAAAD,aAAApQ,GAAAqQ,UAAA,4BAAAtC,IAAA6C,OAAAC,yBAAA7Q,GAAAqQ,UAAA,4BAAArQ,GAAAqQ,WAAAD,aAAApQ,GAAAqQ,UAAA,4BAAArC,IAAA4C,OAAAC,yBAAA7Q,GAAAqQ,UAAA,4BAAArQ,GAAAqQ,WAAAD,aAAApQ,GAAAqQ,UAAA,yCAAApC,IAAA2C,OAAAC,yBAAA7Q,GAAAqQ,UAAA,yCAAArQ,GAAAqQ,WAAAD,aAAApQ,GAAAqQ,UAAA,yCAAAU,IAAAH,OAAAC,yBAAA7Q,GAAAqQ,UAAA,yCAAArQ,GAAAqQ,WAAAD,aAAApQ,GAAAqQ,UAAA,8BAAAW,IAAAJ,OAAAC,yBAAA7Q,GAAAqQ,UAAA,8BAAArQ,GAAAqQ,WAAAD,aAAApQ,GAAAqQ,UAAA,8BAAAY,IAAAL,OAAAC,yBAAA7Q,GAAAqQ,UAAA,8BAAArQ,GAAAqQ,WAAArQ,ICMEqwB,QA3CetwB,GAqCzB8N,UAAOC,MAAK9N,GArCjB,cAAuCkO,IAQnC,uBAAkC,IAAD4gB,EAAAC,EAC7B,OAA+B,QAA/BD,EAAO1uB,KAAKhG,UAAUD,iBAAS,IAAA20B,GAAc,QAAdC,EAAxBD,EAA0BE,oBAAY,IAAAD,OAAd,EAAxBA,EAAwCE,KAGnDnjB,YAAY1R,EAASmB,GAAmB,IAAjB,WAAE+Q,GAAY/Q,EACjCyQ,MAAM5R,GAAWgV,aAAA,mBAAAC,GAAA,MAAAF,aAAA,YAVd,CACH,CAAExJ,MAAO,EAAG5H,MAAO,aACnB,CAAE4H,MAAO,EAAG5H,MAAO,aASnBqC,KAAKkM,WAAaA,EAClBiD,0BAAenP,MAGnB,eACI,IAAIkwB,EAAelwB,KAAKhG,UAAUF,YAAYq2B,kBACpB,kDAAtBD,EAAa92B,MAAuF,IAA3B4G,KAAKuiB,YAAYhd,MAC1FvF,KAAKwiB,eAAe,GAEE,gDAAtB0N,EAAa92B,MACc,IAA3B4G,KAAKuiB,YAAYhd,OAEjBvF,KAAKwiB,eAAe,GAI5B4N,aAAaC,EAAWC,GACpB,IAAIJ,EAAelwB,KAAKhG,UAAUF,YAAYq2B,kBACf,IAA3BnwB,KAAKuiB,YAAYhd,OAAqC,kDAAtB2qB,EAAa92B,MAC7C4G,KAAKwiB,eAAe,GAK5BA,eAAejd,GACXvF,KAAKuiB,YAActU,gBAAKjO,KAAKuwB,KAAM,CAAEhrB,MAAOA,MAEnD0J,GAAAe,aAAApQ,GAAAqQ,UAAA,eAxCIC,eAAU,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,iBAAe,CAAE/K,MAAO,EAAG5H,MAAO,gBAAaqS,aAAApQ,GAAAqQ,UAAA,oBAOzDM,aAAQC,OAAAC,yBAAA7Q,GAAAqQ,UAAA,oBAAArQ,GAAAqQ,WAAAD,aAAApQ,GAAAqQ,UAAA,kBAAAtQ,IAAA6Q,OAAAC,yBAAA7Q,GAAAqQ,UAAA,kBAAArQ,GAAAqQ,WAAArQ,ICVb,MAAM4wB,WAAkClc,IACpC5I,YAAY1R,GACR4R,MAAM5R,IAICw2B,I,GAAAA,MCOAC,I,GAAAA,GAVdjxB,aACG,CAACxF,EAAWyF,IAAmB,IAAI+mB,GAAyBxsB,EAAWyF,IACvE,2BACHE,CAAAC,GAHD,cAI8B/E,IAAMgF,UAChCC,SACI,OAAOlF,cAAC81B,EAAuB,IAAK1wB,KAAKC,YAEhDL,GCEc+wB,I,GAAAA,GAVdnxB,aACG,CAACxF,EAAWyF,IAAmB,IAAIkrB,GAA+B3wB,EAAWyF,IAC7E,iCACHE,CAAAC,GAHD,cAIoC/E,IAAMgF,UACtCC,SACI,OAAOlF,cAACg2B,EAA6B,IAAK5wB,KAAKC,YAEtDL,GCEcixB,I,GAAAA,GAVdrxB,aACG,CAACxF,EAAWyF,IAAmB,IAAI0rB,GAAiCnxB,EAAWyF,IAC/E,mCACHE,CAAAC,GAHD,cAIsC/E,IAAMgF,UACxCC,SACI,OAAOlF,cAACk2B,EAA+B,IAAK9wB,KAAKC,YAExDL,GCCcmxB,I,GAAAA,GAVdvxB,aACG,CAACxF,EAAWyF,IAAmB,IAAIwwB,GAAyBj2B,EAAWyF,IACvE,2BACHE,CAAAC,GAHD,cAI8B/E,IAAMgF,UAChCC,SACI,OAAOlF,cAACo2B,EAAuB,IAAKhxB,KAAKC,YAEhDL,GCGcqxB,OAVdzxB,aACG,CAACxF,EAAWyF,IAAmB,IAAIgvB,GAA2Bz0B,EAAWyF,IACzE,6BACHE,CAAAC,GAHD,cAIgC/E,IAAMgF,UAClCC,SACI,OAAOlF,cAACs2B,EAAyB,IAAKlxB,KAAKC,YAElDL,GCKG3G,IAAsBC,OAAO,eAAeC,SAAS,CACjDC,KAAM,uBACNC,OAAQ,CACJ,CACID,KAAM,8BACNE,QAAS,YACT63B,cAAe,gCACfp2B,SAAU,CACN,CACI3B,KAAM,sCACNE,QAAS,GACTC,UAAWw3B,GACXt3B,MAAO+2B,GACPz1B,SAAU,CACN,CACI3B,KAAM,gDACNE,QAAS,YACTC,UAAW03B,GACXx3B,MAAO+yB,IAEX,CACIpzB,KAAM,8CACNE,QAAS,UACTC,UAAWk3B,GACXh3B,MAAOgsB,GACP9rB,YAAaA,CAACC,EAAWC,EAASC,KAAiB,IAADs3B,EAC9C,MAAM,UAAEr3B,GAAcD,EAAYE,UAClC,IAA6B,QAAzBo3B,EAAAr3B,EAAUs3B,uBAAe,IAAAD,OAAA,EAAzBA,EAA2BvC,QAASnM,IAAcC,cAClD,OAAOzoB,QAAQC,OAAOL,EAAYM,mBAMtD,CACIhB,KAAM,qCACNE,QAAS,cACTC,UAAWo3B,GACXl3B,MAAO8wB,GACP5wB,YAAaA,CAACC,EAAWC,EAASC,KAAiB,IAADw3B,EAC9C,MAAM,UAAEv3B,GAAcD,EAAYE,UAClC,IAA0B,QAAtBs3B,EAAAv3B,EAAU60B,oBAAY,IAAA0C,OAAA,EAAtBA,EAAwBzC,QAASnM,IAAcC,cAC/C,OAAOzoB,QAAQC,OAAOL,EAAYM,iBAI9C,CACIhB,KAAM,qCACNE,QAAS,SACTC,UAAWs3B,GACXp3B,MAAOsxB,GACPpxB,YAAaA,CAACC,EAAWC,EAASC,KAAiB,IAADy3B,EAC9C,MAAM,UAAEx3B,GAAcD,EAAYE,UAClC,IAA0B,QAAtBu3B,EAAAx3B,EAAU60B,oBAAY,IAAA2C,OAAA,EAAtBA,EAAwB1C,QAASnM,IAAcC,cAC/C,OAAOzoB,QAAQC,OAAOL,EAAYM,oBAO1D2gB,KAAM,CACF,CACIpd,MAAO,4BACPqd,MAAO,EACPmW,cAAe,CAAC,iCAChBtrB,KAAM,YACNoV,MAAO,qD,oJC5BvB,MAAMuW,EAAmBl3B,oBAAS,SAAyBC,GAAqD,IAApD,8BAAEk3B,EAA6B,YAAE9sB,EAAW,EAAElK,GAAGF,EACzG,MAAM,MACFm3B,EAAK,cACLh1B,EAAa,WACbmI,EAAU,WACVC,EAAU,kBACV6sB,EAAiB,oBACjB/0B,EACA5C,WAAW,gBAAEoL,IACbqsB,EAEJ,OACIp2B,eAACR,IAAMC,SAAQ,CAAAC,SAAA,CACXM,eAAA,OAAKU,UAAU,8CAA6ChB,SAAA,CACxDH,cAAA,KACImB,UAAS,yCAAA4G,OACLgC,EAAc,gBAAkB,GAAE,0CAG1C/J,cAAA,OACImB,UAAWoB,YACP,0CACCP,EAAoBQ,0BAA6C,KAAjB,gBACnDrC,SAEFH,cAACyC,IAAK,CAACC,IAAKZ,MAEhBrB,eAAA,OAAAN,SAAA,CACIM,eAAA,OAAKU,UAAU,6CAA4ChB,SAAA,CACvDH,cAAA,KAAGmB,UAAYa,EAAoBQ,0BAA6C,KAAjB,eAAsBrC,SAChF22B,EAAM/zB,QAEV+zB,EAAMl0B,YAAcZ,EAAoBc,kBACrC9C,cAAA,KAAGmB,UAAU,8EAGnBa,EAAoBQ,2BAA6BxC,cAACg3B,IAA8B,UAIzFxsB,EAAgBC,YAAc,GAAKzI,EAAoBQ,2BACpDxC,cAAA,OAAAG,SACIH,cAAC0K,IAAa,CACV9H,UAAWk0B,EAAMl0B,UACjB6B,wBAAyBzC,EAAoBc,iBAC7CjD,EAAGA,EAAEM,SAELH,cAACiJ,IAAS,CACN1E,GAAE,gBAAAwD,OAAkB+uB,EAAMvyB,IAC1BoG,MAAOV,EACPW,SAAUV,EACVW,SAAUA,KACNksB,GAAmB9sB,IAEvBgB,KAAK,4CACL5I,kBAAmBE,YACf,iDACA0H,EAAa,yBAA2B,uCAUzDvK,I,MAAAA,sBAlHf,SAAqCa,GAAwC,IAAvC,8BAAEs2B,EAA6B,EAAEh3B,GAAGU,EACtE,MAAM,MAAEu2B,EAAK,YAAE/sB,EAAW,eAAEuC,EAAc,YAAE2qB,GAAgBJ,EAC5D,OACI72B,cAACuM,IAAmB,CAChBxJ,MAAO+zB,EAAM/zB,MACbm0B,SAAUD,EACVp3B,EAAGA,EACHkK,YAAaA,EACbyC,iBAAmB1B,IAGXA,EAAMpH,OAAOvC,YACZ2J,EAAMpH,OAAOvC,UAAU6X,SAAS,aAAelO,EAAMpH,OAAOvC,UAAU6X,SAAS,mBAIpF1M,KAEJG,sBAAsB,oBACtBC,aAAerH,GACXrF,cAAC42B,EAAgB,IAAKvxB,EAAOwxB,8BAA+BA,IAC9D12B,SAEDA,IACGM,eAAA,OAAKU,UAAU,MAAKhB,SAAA,CAChBM,eAAA,OAAKU,UAAU,+CAA8ChB,SAAA,CACzDH,cAAA,KAAGmB,UAAU,gCAA+BhB,SACvCN,EAAE,uDAENi3B,EAAMl1B,UAEXnB,eAAA,OAAKU,UAAU,+CAA8ChB,SAAA,CACzDH,cAAA,KAAGmB,UAAU,gCAA+BhB,SACvCN,EAAE,qDAENi3B,EAAMK,gB,2CCdhBC,I,MAAAA,GA5BKryB,EAsBf8N,SAAOC,MAAK9N,EAtBjB,MAGI8L,YAAYsJ,GAAKhG,YAAA,mBAAAC,EAAA,MACbE,yBAAenP,MACfkR,kBAAQ8D,GAAK,CAACzP,EAAO0P,KACL,eAARA,EACAjV,KAAKkV,cAAc3P,GAEnBvF,KAAKiV,GAAO1P,KAKxB,iBACI,OAAOvF,KAAKiyB,YAGhB,eAAe1sB,GACXvF,KAAKkV,cAAc3P,GAIvB2P,cAAcrQ,GACV7E,KAAKiyB,YAAcptB,IAE1BoK,EAAAe,YAAApQ,EAAAqQ,UAAA,eAzBIC,cAAU,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,kBAAe,QAAIN,YAAApQ,EAAAqQ,UAAA,cAa7BM,YAAQC,OAAAC,yBAAA7Q,EAAAqQ,UAAA,cAAArQ,EAAAqQ,WAAAD,YAAApQ,EAAAqQ,UAAA,iBAAAtQ,GAAA6Q,OAAAC,yBAAA7Q,EAAAqQ,UAAA,iBAAArQ,EAAAqQ,WAAArQ,GCsBEsyB,OApCMvyB,EA8BhB8N,SAAOC,MAAK9N,EA9BjB,MAGI8L,YAAYsJ,GAAKhG,YAAA,8BAAAC,EAAA,MACbE,yBAAenP,MACfkR,kBAAQ8D,GAAK,CAACzP,EAAO0P,KACL,0BAARA,EACAjV,KAAKmyB,yBAAyB5sB,GAE9BvF,KAAKiV,GAAO1P,KAKxB,4BACI,OAAOvF,KAAKoyB,uBAGhB,iBACI,OAAOpyB,KAAKoyB,yBAA2BpyB,KAAKqyB,eAGhD,eAAe9sB,GACPA,EACAvF,KAAKmyB,yBAAyBnyB,KAAKqyB,gBAEnCryB,KAAKmyB,yBAAyB,GAKtCA,yBAAyB5sB,GACrBvF,KAAKoyB,uBAAyB7sB,IAErC0J,EAAAe,YAAApQ,EAAAqQ,UAAA,0BAjCIC,cAAU,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,kBAA0B,KAACN,YAAApQ,EAAAqQ,UAAA,yBAarCM,YAAQC,OAAAC,yBAAA7Q,EAAAqQ,UAAA,yBAAArQ,EAAAqQ,WAAAD,YAAApQ,EAAAqQ,UAAA,cAIRM,YAAQC,OAAAC,yBAAA7Q,EAAAqQ,UAAA,cAAArQ,EAAAqQ,WAAAD,YAAApQ,EAAAqQ,UAAA,4BAAAtQ,GAAA6Q,OAAAC,yBAAA7Q,EAAAqQ,UAAA,4BAAArQ,EAAAqQ,WAAArQ,GChBE0yB,I,oBAAAA,EALc,CACzBC,QAAS,EACTC,OAAQ,GCiDGC,OAhDU9yB,EAEpBuQ,aAAWwiB,QAAO/kB,EAClBuC,aAAWwiB,QAAO9kB,EAMlBH,SAAOC,MAAKG,EAOZJ,SAAOC,MAAKiD,EAOZlD,SAAOC,MAAKkD,EAYZnD,SAAOC,MAAK9N,EAnCjB,MAKI8L,cAAcsD,YAAA,qBAAAC,EAAA,MAAAD,YAAA,mBAAAE,EAAA,MAAAF,YAAA,qBAAAiJ,EAAA,MACV9I,yBAAenP,MAInB2yB,YACI3yB,KAAK4yB,eAAgB,EACrB5yB,KAAK6yB,YAAc,GACnB7yB,KAAK8yB,cAAgB,GAIzBC,cACI/yB,KAAK4yB,eAAgB,EACrB5yB,KAAK6yB,YAAc,GACnB7yB,KAAK8yB,cAAgB,GAIzBE,gBAAgB7zB,GAEZ,IAA2B,IADD6J,oBAAUhJ,KAAK6yB,aAAcI,GAAeA,IAAe9zB,IACvD,CAC1Ba,KAAK6yB,YAAYxwB,KAAKlD,GACtB,MAAM+zB,EAAsBlqB,oBAAUhJ,KAAK8yB,eAAgBK,GAAiBA,IAAiBh0B,KAChE,IAAzB+zB,GACA7hB,iBAAOrR,KAAK8yB,cAAeI,IAMvCE,kBAAkBj0B,GAEd,IAA6B,IADD6J,oBAAUhJ,KAAK8yB,eAAgBK,GAAiBA,IAAiBh0B,IAC7D,CAC5Ba,KAAK8yB,cAAczwB,KAAKlD,GACxB,MAAMk0B,EAAoBrqB,oBAAUhJ,KAAK6yB,aAAcI,GAAeA,IAAe9zB,KAC1D,IAAvBk0B,GACAhiB,iBAAOrR,KAAK6yB,YAAaQ,MAIxCpkB,EAAAe,YAAApQ,EAAAqQ,UAAA,iBA7CIC,cAAU,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,kBAAiB,QAAIpB,EAAAc,YAAApQ,EAAAqQ,UAAA,eAAAtQ,GAAA,CAAAwQ,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,iBACE,MAAE2H,EAAAjI,YAAApQ,EAAAqQ,UAAA,iBAAAtC,GAAA,CAAAwC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,iBACA,MAAEN,YAAApQ,EAAAqQ,UAAA,aAAArC,GAAA4C,OAAAC,yBAAA7Q,EAAAqQ,UAAA,aAAArQ,EAAAqQ,WAAAD,YAAApQ,EAAAqQ,UAAA,eAAApC,GAAA2C,OAAAC,yBAAA7Q,EAAAqQ,UAAA,eAAArQ,EAAAqQ,WAAAD,YAAApQ,EAAAqQ,UAAA,mBAAAU,GAAAH,OAAAC,yBAAA7Q,EAAAqQ,UAAA,mBAAArQ,EAAAqQ,WAAAD,YAAApQ,EAAAqQ,UAAA,qBAAAW,GAAAJ,OAAAC,yBAAA7Q,EAAAqQ,UAAA,qBAAArQ,EAAAqQ,WAAArQ,GCe3B0zB,MAnBf,SAAsCz3B,GAClC,GAAIA,aAAgBq2B,EAAiB,CACjC,GAAmC,IAA/Br2B,EAAK03B,sBACL,MAAO,2BACJ,GAAI13B,EAAKw2B,iBAAmBx2B,EAAK03B,sBACpC,MAAO,0BACJ,GAAI13B,EAAKw2B,eAAiBx2B,EAAK03B,sBAClC,MAAO,2BAER,GAAI13B,aAAgBm2B,EACvB,OAAIn2B,EAAKgJ,WACE,0BAEA,2BAGf,OAAO,M,QCOX,MAAM2uB,EAAsBl5B,oBAAS,SAA4Ba,GAK7D,IAL8D,YAC9DkX,EAAW,KACX5F,EAAI,KACJ5Q,EAAI,sCACJ43B,GACHt4B,EACG,MAAMyB,EAAsB82B,YAAoBC,IAAqBC,UAAW,CAC5Ep2B,UAAW3B,EAAK2B,UAChBuS,wBAAgD,IAAxBlU,EAAK2T,eAC7BqkB,wBAAwD,IAAhCh4B,EAAKi4B,0BAE3B,OAAEC,EAAM,wBAAEC,GAA4BP,EAE5C,SAASQ,EACLp4B,EACAq4B,EACAtB,EACAuB,EACAC,GAEA,IAAKF,EACD,OAAO,EAGX,IAAuB,IADDlrB,oBAAUmrB,GAAoBE,GAAmBA,IAAmBx4B,EAAKy4B,WAE3F,OAAO,EAMX,OAAyB,IAJDtrB,oBACpBorB,GACCG,GAAqBA,IAAqB14B,EAAKy4B,aAK/CtmB,gBAAM4kB,GAGJ/2B,EAAKw2B,iBAAmBx2B,EAAK03B,sBAFzBX,GAoBf,OACIv3B,eAAA,OACIU,UAAWoB,YACP,eACA42B,IAAWn3B,EAAoB43B,UAAY,0BAA4B,2BACzEz5B,SAAA,CAEFM,eAAA,OACIU,UAAU,sBACViI,QAASA,KACL+vB,EAzBhB,SAA8Bl4B,EAAMq4B,EAAiBtB,EAAeuB,EAAmBC,GAChEH,EACfp4B,EACAq4B,EACAtB,EACAuB,EACAC,GAGAJ,EAAwBS,aAAa54B,GAErCm4B,EAAwBU,WAAW74B,GAerB84B,CACI94B,EACAe,EAAoB43B,UACpBR,EAAwBY,cAAchC,cACtCoB,EAAwBY,cAAc/B,YACtCmB,EAAwBY,cAAc9B,eAE1CzgB,EAAYxW,IACpBd,SAAA,CAEFH,cAAA,OACImB,UACIa,EAAoB43B,UACdr3B,YACI,2CACA42B,EACME,EACIp4B,EACAe,EAAoB43B,UACpBR,EAAwBY,cAAchC,cACtCoB,EAAwBY,cAAc/B,YACtCmB,EAAwBY,cAAc9B,eAEtC,0BACA,2BACJQ,EAA6Bz3B,IAEvC,OAIdR,eAAA,OACIU,UAAWoB,YACP,sDACAP,EAAoB43B,UACd34B,EAAKgJ,WACD,mBACA,kBACJ,cACLjI,EAAoBQ,0BAA6C,KAAjB,gBACnDrC,SAAA,CAEFH,cAACyC,IAAK,CAACC,IAAKzB,EAAKa,gBACjB9B,cAAC2C,IAAY,CACTC,UAAW3B,EAAK2B,UAChBC,2BAA4Bb,EAAoBc,yBAK5D9C,cAAA,OAAKmB,UAAU,0CAA0CiI,QAASA,IAAMyI,EAAK5Q,GAAMd,SAC9Ec,EAAKzC,aAMhBy7B,EAAqBv6B,oBAAS,SAA2BC,GAK3D,IAL4D,YAC5D8X,EAAW,KACX5F,EAAI,KACJ5Q,EAAI,sCACJ43B,GACHl5B,EACG,MAAMqC,EAAsB82B,YAAoBC,IAAqBC,UAAW,CAC5Ep2B,UAAW3B,EAAK2B,UAChBuS,wBAAgD,IAAxBlU,EAAK2T,eAC7BqkB,wBAAwD,IAAhCh4B,EAAKi4B,0BAE3B,OAAEC,EAAM,uBAAEe,GAA2BrB,EAE3C,SAASQ,EACLp4B,EACAk5B,EACAnC,EACAoC,EACAC,GAEA,IAAKF,EACD,OAAO,EAGX,IAAuB,IADD/rB,oBAAUgsB,GAAmBX,GAAmBA,IAAmBx4B,EAAKq5B,UAE1F,OAAO,EAGX,OAAyB,IADDlsB,oBAAUisB,GAAqBV,GAAqBA,IAAqB14B,EAAKq5B,YAIjGlnB,gBAAM4kB,GAGJ/2B,EAAKgJ,WAFD+tB,GAoBf,OACIv3B,eAAA,OACIU,UAAWoB,YACP,eACA42B,IAAWn3B,EAAoB43B,UAAY,0BAA4B,2BACzEz5B,SAAA,CAEFM,eAAA,OACIU,UAAU,sBACViI,QAASA,KACL+vB,EAzBhB,SAA8Bl4B,EAAMk5B,EAAgBnC,EAAeoC,EAAkBC,GAC9DhB,EACfp4B,EACAk5B,EACAnC,EACAoC,EACAC,GAGAH,EAAuBL,aAAa54B,GAEpCi5B,EAAuBJ,WAAW74B,GAepB84B,CACI94B,EACAe,EAAoB43B,UACpBM,EAAuBF,cAAchC,cACrCkC,EAAuBF,cAAc/B,YACrCiC,EAAuBF,cAAc9B,eAEzCzgB,EAAYxW,IACpBd,SAAA,CAEFH,cAAA,OACImB,UACIa,EAAoB43B,UACdr3B,YACI,2CACA42B,EACME,EACIp4B,EACAe,EAAoB43B,UACpBM,EAAuBF,cAAchC,cACrCkC,EAAuBF,cAAc/B,YACrCiC,EAAuBF,cAAc9B,eAErC,0BACA,2BACJQ,EAA6Bz3B,IAEvC,OAIdR,eAAA,OACIU,UAAWoB,YACP,sDACAP,EAAoB43B,UACd34B,EAAKgJ,WACD,mBACA,kBACJ,cACLjI,EAAoBQ,0BAA6C,KAAjB,gBACnDrC,SAAA,CAEFH,cAACyC,IAAK,CAACC,IAAKzB,EAAKa,gBACjB9B,cAAC2C,IAAY,CACTC,UAAW3B,EAAK2B,UAChBC,2BAA4Bb,EAAoBc,yBAK5D9C,cAAA,OAAKmB,UAAU,0CAA0CiI,QAASA,IAAMyI,EAAK5Q,GAAMd,SAC9Ec,EAAK8B,cAMPw3B,MAlQf,SAAuCl1B,GACnC,OAAIA,EAAMpE,gBAAgBq2B,EACft3B,cAAC44B,EAAmB,IAAKvzB,IACzBA,EAAMpE,gBAAgBm2B,EACtBp3B,cAACi6B,EAAkB,IAAK50B,SAD5B,GCoBIm1B,MA5Bf,SAA8Cj6B,GAAyB,IAAxB,KAAEU,EAAI,YAAEwW,GAAalX,EAChE,MAAMk6B,EAAmB3B,YAAoBC,IAAqBC,UAAW,CACzEp2B,UAAW3B,EAAK2B,YAEpB,OACInC,eAAA,OAAK2I,QAASA,IAAMqO,EAAYxW,GAAOE,UAAU,sDAAqDhB,SAAA,CAClGH,cAAA,OAAKmB,UAAU,0CAAyChB,SACpDH,cAACyC,IAAK,CAACC,IAAKzB,EAAKa,kBAErBrB,eAAA,OAAAN,SAAA,CACIM,eAAA,OAAKU,UAAU,yBAAwBhB,SAAA,CAClCc,EAAK8B,MAAO,IACZ9B,EAAK2B,YAAc63B,GAChBz6B,cAAA,KAAGmB,UAAU,6EAGpBF,EAAKy5B,YACF16B,cAAA,OAAKmB,UAAU,uDAAsDhB,SAAEc,EAAKy5B,oB,gBCoDjFh7B,0BAlEf,SAAwCa,GAAiC,IAAhC,uBAAEo6B,EAAsB,EAAE96B,GAAGU,EAClE,MAAM,UACFq6B,EAAS,mBACTC,EAAkB,wBAClBC,EAAuB,aACvBnsB,EAAY,aACZ7O,EAAY,UACZV,EAAS,kBACTuO,EAAiB,gCACjBotB,GACAJ,EACJ,OACIl6B,eAAA,OAAKU,UAAU,iBAAgBhB,SAAA,CAC3BH,cAAA,OAAKmB,UAAU,iCAAgChB,SAC3CH,cAAA,OAAKmB,UAAU,sBAAqBhB,SAChCH,cAACmP,IAAmB,CAChBhO,UAAU,kFACVwN,aAAcosB,EAAgCpsB,aAC9CU,kBAAkB,EAClBxP,EAAGA,EACHyP,UAAW,SAKvBtP,cAAA,OACImB,UAAWoB,YACP,0BACCnD,EAAU2C,yBAAyBi5B,kBAA2D,GAAvC,sCAC1D76B,SAEFM,eAAA,OAAKU,UAAU,8CAA6ChB,SAAA,CACxDH,cAAA,OAAKmB,UAAU,sBAAqBhB,SAC/By6B,IAAc96B,GACXE,cAAA,OAAKmB,UAAU,oBAAmBhB,SAC9BH,cAAC4N,IAAgB,CACb/O,MAAO8O,EACPnD,gBAAiBpL,EAAUoL,gBAC3B3K,EAAGA,SAKjBC,GACEE,cAAA,OAAKmB,UAAU,sBAAqBhB,SAChCH,cAAC2pB,IAAe,CACZplB,GAAG,uCACH/F,KAAK,uCACLkW,QAASmmB,EACTlf,SAAUmf,EACVnwB,MAAOgE,EAAaC,OAAOqsB,YAC3Bp7B,EAAGA,iBCqBpBH,0BAxEf,SAAsCa,GAIlC,IAJmC,sCACnC26B,EAAqC,sCACrCrC,EAAqC,EACrCh5B,GACHU,EACG,MAAM,MACFqhB,EAAK,YACL1gB,EAAW,qBACXi6B,EAAoB,mBACpBC,EAAkB,oBAClBC,EAAmB,wBACnBC,EAAuB,gBACvB5jB,EAAe,KACf7F,EACAzS,WAAW,yBAAE2C,IACbm5B,GACE,OAAE/B,GAAWN,EAEnB,OACI74B,cAACoB,IAAgB,CAACF,YAAaA,EAAaG,aAAcA,IAAMrB,cAACu7B,IAAc,CAACv1B,IAAK,EAAGw1B,KAAMrC,EAAQp2B,OAAK,IAAI5C,SAC1GA,IACGH,cAACC,IAAMC,SAAQ,CAAAC,SACVyhB,EAAM1d,OAAS,GACZzD,eAAA,OAAAN,SAAA,CACIM,eAAA,OAAKU,UAAU,uBAAsBhB,SAAA,CACjCH,cAAA,OAAKmB,UAAU,oDAAmDhB,SAC7DN,EAAE,0CAENs7B,GACG16B,eAAA,OAAKU,UAAU,kBAAiBhB,SAAA,CAC5BH,cAAA,KACImB,UAAU,2DACViI,QAASgyB,IAEbp7B,cAAA,KACImB,UAAU,0CACViI,QAASiyB,UAMzBr7B,cAAA,OAAKmB,UAAU,sBAAqBhB,SAChCH,cAAA,OAAKmB,UAAU,uBAAuBgF,IAAKm1B,EAAwBn7B,SAC9DgE,cAAIyd,GAAQ3gB,GACTjB,cAACy7B,GAAqB,CAClB5pB,KAAMA,EAEN9P,yBAA0BA,EAC1B82B,sCACIA,EAEJ53B,KAAMA,EACNwW,YAAaC,GANRzW,EAAKq5B,SAAWr5B,EAAKy4B,0B,QCgBvDh6B,2BA5Df,SAAsCa,GAAiC,IAAhC,uBAAEo6B,EAAsB,EAAE96B,GAAGU,EAChE,MAAM,UACF2O,EAAS,KACT2C,EACAzS,WAAW,yBAAE2C,GAA0B,sCACvC82B,EAAqC,sCACrCqC,EAAqC,mBACrCQ,GACAf,GACE,OAAExB,GAAWN,EAEnB,OACIp4B,eAACR,IAAMC,SAAQ,CAAAC,SAAA,CACXH,cAAA,OAAAG,SACIH,cAAC27B,GAA4B,CACzB9C,sCAAuCA,EACvCh5B,EAAGA,MAGXG,cAAA,OAAKmB,UAAU,qBAAoBhB,SAC/BH,cAAC47B,GAAqB,CAClBV,sCAAuCA,EACvCrC,sCAAuCA,EACvCh5B,EAAGA,MAIXG,cAAA,OAAKmB,UAAU,iBAAgBhB,SAC3BH,cAAA,OAAKmB,UAAU,uDAAsDhB,SACjEH,cAAA,OAAKmB,UAAU,yBAAwBhB,SACnCH,cAAC67B,IAAiB,CAACh9B,MAAO68B,EAAoB77B,EAAGA,UAK7DG,cAAC8pB,IAAqB,CAClBjrB,MAAOqQ,EACPrP,EAAGA,EACHwC,kBAAkB,eAClB2nB,eAAgBhqB,cAACu7B,IAAc,CAACv1B,IAAK,IACrC+jB,eAAgBA,IAAM/pB,cAACu7B,IAAc,CAACv1B,IAAK,EAAGw1B,KAAMrC,IACpDhP,aAAe9kB,GACXrF,cAACy7B,GAAqB,CAClB5pB,KAAMA,EACN9P,yBAA0BA,EAC1B82B,sCAAuCA,KACnCxzB,IAGZ8gB,mBAAoBA,IAAMnmB,cAAC87B,IAAc,CAACl7B,gBAAgB,iCAAiCf,EAAGA,Y,mBCH9G,MAAMk8B,GAAcr8B,oBAAS,SAAoBC,GAA0C,IAAzC,gCAAEo7B,EAA+B,EAAEl7B,GAAGF,EACpF,MAAM,QACFg4B,EAAO,cACPqE,EAAa,mBACbZ,EAAkB,oBAClBC,EAAmB,sBACnBY,EAAqB,yBACrBC,GACAnB,EACJ,OACI/6B,cAACC,IAAMC,SAAQ,CAAAC,SACVw3B,EAAQzzB,OAAS,GACdzD,eAAA,OAAAN,SAAA,CACIM,eAAA,OAAKU,UAAU,uBAAsBhB,SAAA,CACjCH,cAAA,OAAKmB,UAAU,oDAAmDhB,SAC7DN,EAAE,2DAENo8B,GACGx7B,eAAA,OAAKU,UAAU,kBAAiBhB,SAAA,CAC5BH,cAAA,KACImB,UAAU,2DACViI,QAASgyB,IAEbp7B,cAAA,KAAGmB,UAAU,0CAA0CiI,QAASiyB,UAK5Er7B,cAAA,OAAKmB,UAAU,sBAAqBhB,SAChCH,cAAA,OAAKmB,UAAU,uBAAuBgF,IAAK+1B,EAAyB/7B,SAC/DgE,cAAIwzB,GAAUwE,GACXn8B,cAACo8B,GAAM,CAACn7B,KAAMk7B,EAA8BH,cAAeA,GAAhCG,EAAOzC,wBAUlE,SAAS0C,GAAM53B,GAA2B,IAA1B,KAAEvD,EAAI,cAAE+6B,GAAex3B,EACnC,MAAMi2B,EAAmB3B,YAAoBC,IAAqBC,UAAW,CACzEp2B,UAAW3B,EAAK2B,YAEpB,OACInC,eAAA,OAAKU,UAAU,eAAeiI,QAASA,IAAM4yB,EAAc/6B,GAAMd,SAAA,CAC7DH,cAAA,OAAKmB,UAAU,sBAAqBhB,SAChCM,eAAA,OAAKU,UAAU,4BAA2BhB,SAAA,CACtCH,cAACyC,IAAK,CAACC,IAAKzB,EAAKa,gBACjB9B,cAAC2C,IAAY,CAACC,UAAW3B,EAAKo7B,gBAAiBx5B,2BAA4B43B,SAGnFz6B,cAAA,OAAKmB,UAAU,sBAAqBhB,SAAEc,EAAKzC,UAKxCkB,2BAvGf,SAA2Ca,GAA0C,IAAzC,gCAAEw6B,EAA+B,EAAEl7B,GAAGU,EAC9E,MAAM,UAAE2O,EAAS,mBAAEwsB,EAAkB,aAAE/sB,GAAiBosB,EAExD,OACIt6B,eAACR,IAAMC,SAAQ,CAAAC,SAAA,CACXH,cAACoB,IAAgB,CAACF,YAAagO,EAAUhO,YAAaG,aAAcA,IAAMrB,cAACu7B,IAAc,CAACv1B,IAAK,EAAGjD,OAAK,IAAI5C,SACtGA,IACGH,cAAA,OAAAG,SACIH,cAAC+7B,GAAW,CAAChB,gCAAiCA,EAAiCl7B,EAAGA,QAK7FqP,EAAUotB,UACPt8B,cAAA,OAAKmB,UAAU,iBAAgBhB,SAC3BM,eAAA,OAAKU,UAAU,0BAAyBhB,SAAA,CACpCH,cAAA,KAAGmB,UAAU,iCAAgChB,SAAC,mBAE9CH,cAAA,OAAKmB,UAAU,yBAAwBhB,SACnCH,cAAC67B,IAAiB,CAACh9B,MAAO68B,EAAoB77B,EAAGA,WAMjEG,cAACuP,KAAO,CACJ1Q,MAAOqQ,EACPrP,EAAGA,EACHwC,kBAAkB,uBAClBhB,aAAcA,IAAMrB,cAACu8B,IAAoB,CAACv2B,IAAK,IAC/CwJ,WAAanK,GAAUrF,cAACw8B,GAA6B,IAAKn3B,IAC1DoK,iBAAkBA,IAAMzP,cAAC87B,IAAc,CAACl7B,gBAAgB,iCAAiCf,EAAGA,IAC5F6P,YAAcrK,GACVrF,cAAC2P,KAAQ,IAAKtK,EAAOuK,kBAAkB,EAAMC,sBAAuBlB,EAAaC,OAAOkB,mB,SCC7FpQ,I,kBAAAA,uBAzCf,SAA6Ca,GAAgD,IAA/C,sCAAEs4B,EAAqC,EAAEh5B,GAAGU,EACtF,MAAM,OAAE44B,EAAM,aAAEsD,EAAY,UAAE1E,EAAS,YAAEI,EAAW,WAAE5kB,EAAU,cAAEmpB,GAC9D7D,EAEJ,OACI74B,cAAA,OAAAG,SACKg5B,EACG14B,eAAA,OAAKU,UAAU,qCAAoChB,SAAA,CAC/CM,eAAA,OAAKU,UAAU,kBAAiBhB,SAAA,CAC5BH,cAACiJ,KAAS,CACNrI,gBAAgB,oBAChBsI,MAAM,eACNE,QAAS+uB,EACTvtB,SAAU2I,IAEdvT,cAACiJ,KAAS,CAACC,MAAM,aAAaE,QAAS2uB,EAAWntB,SAAU2I,OAEhE9S,eAAA,OAAKU,UAAU,kBAAiBhB,SAAA,CAC5BH,cAACiJ,KAAS,CACN5G,kBAAkB,mDAClB6G,MAAM,SACNE,QAASqzB,EACT7xB,SAAU2I,IAEdvT,cAACiJ,KAAS,CAACC,MAAM,OAAOE,QAASszB,EAAe9xB,SAAU2I,UAIlEvT,cAAA,OAAKmB,UAAU,0BAAyBhB,SACpCH,cAACiJ,KAAS,CAACC,MAAM,OAAOtI,gBAAgB,0BAA0BwI,QAASqzB,W,SCiGhFE,QA7HoB53B,GA0F9B8N,SAAOC,MAAKC,GAQZF,SAAOC,MAAKE,GAKZH,SAAOC,MAAK9N,GAvGjB,cAA4CkO,IAOxC,oBACI,OAAI9N,KAAK0xB,OAAS1xB,KAAK0xB,MAAM3f,aAClB/R,KAAKhG,UAAUgY,kBAAkBwlB,kCAAkCx3B,KAAK0xB,MAAM3f,aAAc,GAAI,IAGpG,KAGX,0BACI,OAAO/R,KAAKkO,sBAAsBlO,KAAK0xB,OAG3C,iBACI,OAAO1xB,KAAKy3B,yBAAyBC,gBAAkB13B,KAAKmO,WAGhE,YACI,OAAInO,KAAKy3B,yBAAyB57B,MAAQmE,KAAKy3B,yBAAyB57B,KAAK22B,OAClEvkB,eAAKjO,KAAKy3B,yBAAyB57B,KAAK22B,QAASd,GAAUA,EAAMvyB,KAAOa,KAAKk1B,UAEjF,KAGX,sBACI,OAAIl1B,KAAK0xB,MACE1xB,KAAK0xB,MAAMiG,gBAEf,KAGX,iBACI,IAAK3pB,gBAAMhO,KAAK43B,iBACZ,OAAO53B,KAAK43B,gBAAgB/yB,WACzB,GAAI7E,KAAK0xB,MAAO,CACnB,MAAMpjB,EAAiBtO,KAAKhG,UAAUoL,gBAAgBkJ,eACtD,GAAIA,GAAkBA,EAAeC,QAAUD,EAAeC,OAAOC,WACjE,OAAQF,EAAeC,OAAOC,WAAWC,MACrC,KAAKC,KAAqBC,OACtB,OAAO3O,KAAK0xB,MAAM9iB,oBACtB,KAAKF,KAAqBG,OACtB,OAAO7O,KAAK0xB,MAAM5iB,yBACtB,KAAKJ,KAAqBmpB,gBACtB,OAAO73B,KAAK0xB,MAAMoG,kCAMlC,OAAO,EAGXpsB,YAAY1R,EAASmB,GAA0C,IAAxC,QAAE+5B,EAAO,yBAAEuC,GAA0Bt8B,EACxDyQ,MAAM5R,GAAWgV,YAAA,mBAAAC,GAAA,MAAAD,YAAA,kBAAAE,GAAA,MAAAH,YAAA,gBAvDVlU,IAAMk9B,aAAWhpB,YAAA,eAClB,MAAIA,YAAA,oBAuGChO,IACXf,KAAKg4B,SAAWj3B,KAjDhBoO,yBAAenP,MACfA,KAAKk1B,QAAUA,EACfl1B,KAAKy3B,yBAA2BA,EAEhCz3B,KAAKuS,UACD,IAAMvS,KAAK2E,cACVA,IACOA,GAAe3E,KAAKg4B,UAEpBtY,YAAW,KACP1f,KAAKg4B,SAASC,eAAe,CACzBC,SAAU,SACVC,MAAO,iBAQ/BtlB,aACI,MAAMqiB,EAAUl1B,KAAKhG,UAAUF,YAAYwb,YAAY+L,YAAY6T,QAMnE,OALIA,GAAWl1B,KAAK0xB,MAAMvyB,KAAO+1B,GAC7BvoB,uBAAY,KACR3M,KAAK2E,aAAc,KAGpBzK,QAAQk+B,UAGnB,wBACwBvzB,GACpB7E,KAAK2E,aAAe3E,KAAK2E,YACzB3E,KAAKoP,eAAc,SACbpP,KAAKy3B,yBAAyBY,0BAA0Br4B,KAAKk1B,QAASrwB,GAC5E7E,KAAKoP,eAAc,GAIvBA,cAAcjB,GACVnO,KAAKmO,WAAaA,EAItBjH,iBACIlH,KAAK2E,aAAe3E,KAAK2E,YAO7BuJ,sBAAsBrS,GAClB,GAAImS,gBAAMnS,GACN,OAAO,EAEX,MAAMk7B,EAAS/2B,KAAKy3B,yBAAyB57B,KAC7C,OAAOmE,KAAKhG,UAAU6V,uBAAuByoB,mBAAmB,CAC5D96B,UAAW3B,EAAK2B,UAChBuS,wBAAkD,IAA1BgnB,EAAOvnB,eAC/BqkB,wBAA0D,IAAlCkD,EAAOjD,2BAG1C7kB,GAAAe,YAAApQ,GAAAqQ,UAAA,eA1HIC,cAAU,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,kBAAe,KAAKpB,GAAAc,YAAApQ,GAAAqQ,UAAA,cAC9BC,cAAU,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,kBAAc,KAAKN,YAAApQ,GAAAqQ,UAAA,iBAK7BM,YAAQC,OAAAC,yBAAA7Q,GAAAqQ,UAAA,iBAAArQ,GAAAqQ,WAAAD,YAAApQ,GAAAqQ,UAAA,uBAQRM,YAAQC,OAAAC,yBAAA7Q,GAAAqQ,UAAA,uBAAArQ,GAAAqQ,WAAAD,YAAApQ,GAAAqQ,UAAA,cAIRM,YAAQC,OAAAC,yBAAA7Q,GAAAqQ,UAAA,cAAArQ,GAAAqQ,WAAAD,YAAApQ,GAAAqQ,UAAA,SAIRM,YAAQC,OAAAC,yBAAA7Q,GAAAqQ,UAAA,SAAArQ,GAAAqQ,WAAAD,YAAApQ,GAAAqQ,UAAA,mBAORM,YAAQC,OAAAC,yBAAA7Q,GAAAqQ,UAAA,mBAAArQ,GAAAqQ,WAAAD,YAAApQ,GAAAqQ,UAAA,cAORM,YAAQC,OAAAC,yBAAA7Q,GAAAqQ,UAAA,cAAArQ,GAAAqQ,WAAAD,YAAApQ,GAAAqQ,UAAA,qBAAAtQ,IAAA6Q,OAAAC,yBAAA7Q,GAAAqQ,UAAA,qBAAArQ,GAAAqQ,WAAAD,YAAApQ,GAAAqQ,UAAA,iBAAAtC,IAAA6C,OAAAC,yBAAA7Q,GAAAqQ,UAAA,iBAAArQ,GAAAqQ,WAAAD,YAAApQ,GAAAqQ,UAAA,kBAAArC,IAAA4C,OAAAC,yBAAA7Q,GAAAqQ,UAAA,kBAAArQ,GAAAqQ,WAAArQ,I,SCxCb,MAAM24B,WAAkCjkB,IACpC5I,YAAY1R,GACR4R,MAAM5R,GACNgG,KAAKuU,QAAUvU,KAAKhG,UAAUwa,yBAAyBgkB,MAG3D,0CAA0ClE,EAAU1f,GAEhD,aADuB5U,KAAKuU,QAAQkkB,oCAAoCnE,EAAU1f,IAClE5H,KAGpB,yBAAyBsnB,GAErB,aADuBt0B,KAAKuU,QAAQmkB,mBAAmBpE,IACvCtnB,KAGpB,kCAAkC4H,EAAU0f,GAExC,aADuBt0B,KAAKuU,QAAQokB,4BAA4B/jB,EAAU0f,IAC1DtnB,MAITurB,I,MAAAA,M,oBCmEAK,I,gDAAAA,IAvFej5B,GAiCzB8N,SAAOC,MAAK9N,GAjCjB,cAAuCi5B,KACnC,oBACI,OAAI74B,KAAKnE,MAAQmE,KAAKnE,KAAKkW,aAChB/R,KAAKhG,UAAUgY,kBAAkB8mB,mCACpC94B,KAAKnE,KAAKkW,aACV,IACA,KAID,KAGXrG,YAAY1R,EAASmB,GAAmB,IAAjB,WAAE+Q,GAAY/Q,EAEjCyQ,MAAM5R,EAAW,CACbmF,GAFOnF,EAAUF,YAAYwb,YAAY/Q,OAAOpF,GAGhD45B,aAAc,uCAElB5pB,yBAAenP,MACfA,KAAKkM,WAAaA,EAGtB,UAAU/M,GACN,OAAIa,KAAKhG,UAAUoL,gBAAgBkJ,eACxBtO,KAAKkM,WAAWusB,oCACnBt5B,EACAa,KAAKhG,UAAUoL,gBAAgBkJ,eAAenP,IAG/Ca,KAAKkM,WAAWwsB,mBAAmBv5B,GAG9C,gCACgC+1B,EAASrwB,GACrC,IACI7E,KAAKg5B,mBAAmBhmB,UACxB,MAAMimB,EAAajwB,oBAAUhJ,KAAKnE,KAAK22B,QAASd,GAAUA,EAAMvyB,KAAO+1B,IACjE5lB,EAAU,IAAI4pB,KAChBhE,EACAl1B,KAAKnE,KAAK22B,OAAOyG,GAAYt7B,MAC7BqC,KAAKnE,KAAK22B,OAAOyG,GAAYz7B,WACmB,IAAhDwC,KAAKnE,KAAK22B,OAAOyG,GAAYzpB,gBAC2B,IAAxDxP,KAAKnE,KAAK22B,OAAOyG,GAAYnF,8BAE3B9zB,KAAKhG,UAAUyV,wBAAwB0pB,4BAA4B7pB,EAASzK,GAClF8H,uBAAY,KACJ3M,KAAKnE,KAAK22B,OAAOyG,GAAYtB,gBAC7B33B,KAAKnE,KAAK22B,OAAOyG,GAAYtB,gBAAgB9yB,WAAaA,EAE1D7E,KAAKnE,KAAK22B,OAAOyG,GAAYtB,gBAAkB,CAAE9yB,WAAYA,MAGvE,MAAOuI,GACLpN,KAAKhG,UAAUqT,kBAAkBC,MAAM,8DAA+DF,GACzG,QACGpN,KAAKg5B,mBAAmB7lB,UAIhCimB,cAAcxkB,EAAUykB,GACpB,OAAOr5B,KAAKkM,WAAWysB,4BAA4B/jB,EAAUykB,GAIjEC,cAAcC,GACVroB,kBAAQlR,KAAKnE,KAAK22B,QAASd,IACnB6H,GAAcA,EAAWz6B,OAAS,EAClC4yB,EAAMiG,gBAAkB1pB,eAAKsrB,GAAa19B,GAASA,EAAKq5B,UAAYxD,EAAMvyB,KAE1EuyB,EAAMiG,gBAAkB,QAKpCzpB,sBAAsBrS,GAClB,OAAImS,gBAAMnS,IAGHmE,KAAKhG,UAAU6V,uBAAuByoB,mBAAmB,CAC5D96B,UAAW3B,EAAK2B,UAChBuS,wBAAgD,IAAxBlU,EAAK2T,eAC7BqkB,wBAAwD,IAAhCh4B,EAAKi4B,2BAGxC9jB,YAAApQ,GAAAqQ,UAAA,iBApFIM,YAAQC,OAAAC,yBAAA7Q,GAAAqQ,UAAA,iBAAArQ,GAAAqQ,WAAAD,YAAApQ,GAAAqQ,UAAA,6BAAAtQ,IAAA6Q,OAAAC,yBAAA7Q,GAAAqQ,UAAA,6BAAArQ,GAAAqQ,WAAAD,YAAApQ,GAAAqQ,UAAA,iBA+DRupB,YAAQhpB,OAAAC,yBAAA7Q,GAAAqQ,UAAA,iBAAArQ,GAAAqQ,WAAArQ,I,kBCqNE65B,QAnR4B95B,GACtCuQ,aAAWnP,IAAG4M,GAEduC,aAAWnP,IAAG6M,GA2EdH,SAAOC,MAAKG,GAQZJ,SAAOC,MAAKiD,GAoFZlD,SAAOC,MAAKkD,GA+BZnD,SAAOC,MAAKmD,GAiCZpD,SAAOC,MAAKgK,GAKZjK,SAAOC,MAAK+Y,GAUZhZ,SAAOC,MAAKgZ,GAUZjZ,SAAOC,MAAKiZ,GAKZlZ,SAAOC,MAAKkZ,GAKZnZ,SAAOC,MAAK9N,GA7QjB,cAAoDkO,KAKhD,qBACI,OAAO9N,KAAKhG,UAAUoL,gBAAgBkJ,eAG1C5C,YAAY1R,EAAWu7B,GACnB3pB,MAAM5R,GAAWgV,YAAA,aAAAC,GAAA,MAAAD,YAAA,4BAAAE,GAAA,MAAAF,YAAA,4BAAAiJ,GAAA,MAAAlJ,YAAA,aAoFblT,GACGmE,KAAKu1B,uBAAuB9oB,KAAK5Q,KAC3CkT,YAAA,wBAEiB8G,UACc7V,KAAKhG,UAAU6V,uBAAuByoB,mBAAmB,CACjF96B,UAAW3B,EAAK2B,UAChBuS,wBAAgD,IAAxBlU,EAAK2T,iBAETglB,YAChB34B,aAAgBq2B,QACVlyB,KAAK05B,6BAA6B79B,EAAMmE,KAAKsO,eAAenP,IAC3DtD,aAAgBm2B,SACjBhyB,KAAK25B,4BAA4B99B,EAAMmE,KAAKsO,eAAenP,QAhGzEgQ,yBAAenP,MACfA,KAAKu1B,uBAAyBA,EAC9Bv1B,KAAKkM,WAAaqpB,EAAuBrpB,WAEzClM,KAAKuS,UACD,MACIqnB,OAAQ55B,KAAKwc,MACbqd,UAAW75B,KAAK85B,yBAEnBC,IACOA,EAAQF,WACRna,YAAW,KACP/S,uBAAY,KACR3M,KAAK+1B,qBAAuBgE,EAAQF,UAAUva,YAAcya,EAAQF,UAAUra,qBAOlGxf,KAAKuS,UACD,MACIqC,SAAU5U,KAAKsO,gBAAkBtO,KAAKsO,eAAenP,GACrD02B,YAAa71B,KAAKu1B,uBAAuBhsB,aAAaC,OAAOqsB,gBAEhEkE,IACG/5B,KAAKg6B,eAAeD,MAKhCnnB,SACI,IAAIgC,EAIJ,OAHI5U,KAAKsO,iBACLsG,EAAW5U,KAAKsO,eAAenP,IAE5Ba,KAAKg6B,eAAe,CAAEplB,SAAUA,IAG3CqlB,mBAAmBrlB,GACf,OAAO5U,KAAKkM,WAAW+tB,mBAAmBrlB,GAG9CslB,kBAAkBtlB,GACd,OAAO5U,KAAKkM,WAAWguB,kBAAkBtlB,GAG7C,qBAAoBzZ,GAAgB,IAAf,SAAEyZ,GAAUzZ,EAC7B6E,KAAKlE,YAAYkX,UACjB,IACI,GAAIhT,KAAKu1B,uBAAuBhsB,aAAaC,OAAOqsB,cAAgBvD,EAAqBC,QAAS,CAC9F,MAAMA,QAAgBvyB,KAAKi6B,mBAAmBrlB,GAC9C5U,KAAKm6B,mBAAmB5H,OACrB,CACH,MAAMC,QAAexyB,KAAKk6B,kBAAkBtlB,GAC5C5U,KAAKo6B,kBAAkB5H,IAE7B,MAAOplB,GACLpN,KAAKhG,UAAUqT,kBAAkBC,MAC7B,oGACAF,GAEP,QACGpN,KAAKlE,YAAYqX,UAKzBknB,4BAA4BC,GACxB,MAAM5I,EAAQzjB,eAAKjO,KAAKwc,OAAQ3gB,GAASA,EAAKq5B,UAAYoF,EAAapF,UACnExD,GAASA,EAAM7sB,aAAey1B,EAAaz1B,aAC3C6sB,EAAM7sB,WAAay1B,EAAaz1B,YAKxC01B,6BAA6BC,GACzB,MAAMzD,EAAS9oB,eAAKjO,KAAKwc,OAAQ3gB,GAASA,EAAKy4B,WAAakG,EAAclG,WACtEyC,GAAUA,EAAOlyB,aAAe21B,EAAc31B,aAC9CkyB,EAAOlyB,WAAa21B,EAAc31B,YAsB1C,kCAAkChJ,EAAM+Y,GACpC,IAAK/Y,EAAKsS,WACN,IACItS,EAAKsS,YAAa,EAClBnO,KAAKhG,UAAUwd,gBAAgBxE,UAC/B,MAAMynB,GAAY5+B,EAAKgJ,WACjByK,EAAU,IAAI4pB,KAChBr9B,EAAKq5B,QACLr5B,EAAK8B,MACL9B,EAAK2B,WACmB,IAAxB3B,EAAK2T,sBAEHxP,KAAKhG,UAAUyV,wBAAwB0pB,4BAA4B7pB,EAASmrB,GAClF9tB,uBAAY,KACR9Q,EAAKgJ,WAAa41B,EAClBz6B,KAAKu1B,uBAAuBmF,oCAAoC7+B,MAEtE,MAAOuR,GACLpN,KAAKhG,UAAUqT,kBAAkBC,MAC7B,8DACAF,GAEP,eACUvR,EAAKsS,WACZnO,KAAKhG,UAAUwd,gBAAgBrE,UAK3C,mCAAmCtX,EAAM+Y,GACrC,IAAK/Y,EAAKsS,WACN,IACItS,EAAKsS,YAAa,EAClBnO,KAAKhG,UAAUwd,gBAAgBxE,UAC/B,MAAMynB,GAAY5+B,EAAKgJ,WACjByK,EAAU,IAAIqrB,KAChB9+B,EAAKy4B,SACLz4B,EAAKzC,KACLyC,EAAK2B,WACmB,IAAxB3B,EAAK2T,sBAEHxP,KAAKhG,UAAUyV,wBAAwBmrB,oCAAoCtrB,EAASmrB,GAC1F9tB,uBAAY,KACR9Q,EAAKgJ,WAAa41B,EAClBz6B,KAAKu1B,uBAAuBsF,qCAAqCh/B,MAEvE,MAAOuR,GACLpN,KAAKhG,UAAUqT,kBAAkBC,MAC7B,8DACAF,GAEP,eACUvR,EAAKsS,WACZnO,KAAKhG,UAAUwd,gBAAgBrE,UAM3C2nB,gCAAgCC,GAC5B7pB,kBAAQlR,KAAKwc,OAAQua,IAKjB,GAJ4B/2B,KAAKhG,UAAU6V,uBAAuByoB,mBAAmB,CACjF96B,UAAWu5B,EAAOv5B,UAClBuS,wBAAkD,IAA1BgnB,EAAOvnB,iBAEXglB,UAAW,CAK/B,IAAuB,IAJDxrB,oBAClB+xB,EAAgBlI,aACfI,GAAeA,IAAe8D,EAAOzC,WAItC,YADAyC,EAAOlyB,YAAa,GAOxB,IAAyB,IAJDmE,oBACpB+xB,EAAgBjI,eACfK,GAAiBA,IAAiB4D,EAAOzC,WAI1C,YADAyC,EAAOlyB,YAAa,GAGnBmJ,gBAAM+sB,EAAgBnI,iBACvBmE,EAAOlyB,WAAak2B,EAAgBnI,mBAOpDoI,+BAA+BC,GAC3B/pB,kBAAQlR,KAAKwc,OAAQkV,IAKjB,GAJ4B1xB,KAAKhG,UAAU6V,uBAAuByoB,mBAAmB,CACjF96B,UAAWk0B,EAAMl0B,UACjBuS,wBAAiD,IAAzB2hB,EAAMliB,iBAEVglB,UAAW,CAK/B,IAAuB,IAJDxrB,oBAClBiyB,EAAepI,aACdI,GAAeA,IAAevB,EAAMwD,UAIrC,YADAxD,EAAM7sB,YAAa,GAQvB,IAAyB,IAJDmE,oBACpBiyB,EAAenI,eACdK,GAAiBA,IAAiBzB,EAAMwD,UAIzC,YADAxD,EAAM7sB,YAAa,GAIlBmJ,gBAAMitB,EAAerI,iBACtBlB,EAAM7sB,WAAao2B,EAAerI,mBAOlDsI,aACIl7B,KAAKwc,MAAQ,IAAIxc,KAAKwc,OAI1B2d,mBAAmB3d,GACfxc,KAAKwc,MAAQzd,cAAIyd,GAAQ3gB,GACd,IAAIq2B,EAAgB,IACpBr2B,EACHa,cAAesD,KAAKu1B,uBAAuB4F,0BAA0Bt/B,OAMjFu+B,kBAAkB5d,GACdxc,KAAKwc,MAAQzd,cAAIyd,GAAQ3gB,GACd,IAAIm2B,EAAe,IACnBn2B,EACHa,cAAesD,KAAKu1B,uBAAuB6F,yBAAyBv/B,OAMhFq6B,wBAAwBn1B,GACpBf,KAAK85B,qBAAuB/4B,EAIhCi1B,qBACIqF,aAAWr7B,KAAK85B,qBAAsB,OAAQ,GAAI,IAAK,IAI3D7D,sBACIoF,aAAWr7B,KAAK85B,qBAAsB,QAAS,GAAI,IAAK,MAE/D7qB,GAAAe,YAAApQ,GAAAqQ,UAAA,SAAAtQ,IAAA,CAAAwQ,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,iBAhR2B,MAAEpB,GAAAc,YAAApQ,GAAAqQ,UAAA,wBACzBC,cAAU,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,kBAAwB,KAAK2H,GAAAjI,YAAApQ,GAAAqQ,UAAA,wBAAAtC,IAAA,CAAAwC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,kBACD,QAAIN,YAAApQ,GAAAqQ,UAAA,kBAE1CM,YAAQC,OAAAC,yBAAA7Q,GAAAqQ,UAAA,kBAAArQ,GAAAqQ,WAAAD,YAAApQ,GAAAqQ,UAAA,+BAAArC,IAAA4C,OAAAC,yBAAA7Q,GAAAqQ,UAAA,+BAAArQ,GAAAqQ,WAAAD,YAAApQ,GAAAqQ,UAAA,gCAAApC,IAAA2C,OAAAC,yBAAA7Q,GAAAqQ,UAAA,gCAAArQ,GAAAqQ,WAAAD,YAAApQ,GAAAqQ,UAAA,mCAAAU,IAAAH,OAAAC,yBAAA7Q,GAAAqQ,UAAA,mCAAArQ,GAAAqQ,WAAAD,YAAApQ,GAAAqQ,UAAA,kCAAAW,IAAAJ,OAAAC,yBAAA7Q,GAAAqQ,UAAA,kCAAArQ,GAAAqQ,WAAAD,YAAApQ,GAAAqQ,UAAA,cAAAY,IAAAL,OAAAC,yBAAA7Q,GAAAqQ,UAAA,cAAArQ,GAAAqQ,WAAAD,YAAApQ,GAAAqQ,UAAA,sBAAAyH,IAAAlH,OAAAC,yBAAA7Q,GAAAqQ,UAAA,sBAAArQ,GAAAqQ,WAAAD,YAAApQ,GAAAqQ,UAAA,qBAAAwW,IAAAjW,OAAAC,yBAAA7Q,GAAAqQ,UAAA,qBAAArQ,GAAAqQ,WAAAD,YAAApQ,GAAAqQ,UAAA,2BAAAyW,IAAAlW,OAAAC,yBAAA7Q,GAAAqQ,UAAA,2BAAArQ,GAAAqQ,WAAAD,YAAApQ,GAAAqQ,UAAA,sBAAA0W,IAAAnW,OAAAC,yBAAA7Q,GAAAqQ,UAAA,sBAAArQ,GAAAqQ,WAAAD,YAAApQ,GAAAqQ,UAAA,uBAAA2W,IAAApW,OAAAC,yBAAA7Q,GAAAqQ,UAAA,uBAAArQ,GAAAqQ,WAAArQ,ICTb,MAAM07B,WAAgChnB,IAClC5I,YAAY1R,GACR4R,MAAM5R,GACNgG,KAAKuU,QAAUvU,KAAKhG,UAAUwa,yBAAyBgkB,MAG3D,kBAAkBj0B,GAEd,aADuBvE,KAAKuU,QAAQgnB,YAAYh3B,IAChCyI,KAGpB,iBAAiBzI,GAEb,aADuBvE,KAAKuU,QAAQinB,WAAWj3B,IAC/ByI,KAGpB,oBAAoBzI,EAAQ8U,GAExB,aADuBrZ,KAAKuU,QAAQknB,cAAcl3B,EAAQ8U,IAC1CrM,KAGpB,yBAAyB4H,GAErB,aADuB5U,KAAKuU,QAAQ0lB,mBAAmBrlB,IACvC5H,KAGpB,wBAAwB4H,GAEpB,aADuB5U,KAAKuU,QAAQ2lB,kBAAkBtlB,IACtC5H,MAITsuB,I,MAAAA,M,2BChBAI,I,kBAAAA,IAfiB97B,GAAhC,cAAyC2R,KAGrC7F,cACIE,QAAQoD,YAAA,mBAAAC,GAAA,MACRE,yBAAenP,MACfA,KAAKwR,QAGTA,QACI5F,MAAM4F,QACNxR,KAAK61B,YAAcvD,EAAqBE,SAE/CvjB,GAAAe,YAAApQ,GAAAqQ,UAAA,eAZIC,cAAU,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,OAAA1Q,ICkbA+7B,I,uCAAAA,IAvaah8B,GA2NvB8N,SAAOC,MAAKC,GAmCZF,SAAOC,MAAKE,GA8FZH,SAAOC,MAAKG,GA+BZJ,SAAOC,MAAKiD,GAQZlD,SAAOC,MAAK9N,GAnYjB,cAAqCiS,IACjC,qBACI,OAAO7R,KAAKhG,UAAUoL,gBAAgBkJ,eAG1C,mBACI,OAAOtO,KAAK21B,gCAAgCiG,eAGhD,gBACI,OAAO57B,KAAKhG,UAAUoL,gBAAgBsR,QAAQ5X,OAAS,EAG3D,+BACI,OAAOkB,KAAKuJ,aAAaC,OAAOqsB,YAoCpC,mBACI,OAAI71B,KAAK67B,2BAA6BvJ,EAAqBC,QAChDvyB,KAAK87B,mBAET97B,KAAK+7B,kBAGhBrwB,YAAY1R,EAASmB,GAAmB,IAAjB,WAAE+Q,GAAY/Q,EACjC,MAAMuP,EAAW+G,aAAyBjQ,OAAOC,YAAcu6B,aAAsBx6B,OAAOC,YAC5FmK,MAAM5R,EAAW,CACbkY,YAAa,CACT1I,OAAQ,IAAIkyB,GACZv1B,QAAS,OACTqP,eAAgB,MAChB9K,SAAUA,EACVuxB,cAAe,CACX3N,KAAM,CACF4N,QAASA,IAAM,OAI5BntB,YAAA,0BAtDc,CACjB,CACIjL,MAAO,6CACPyB,MAAO+sB,EAAqBC,SAEhC,CACIzuB,MAAO,4CACPyB,MAAO+sB,EAAqBE,UAEnCzjB,YAAA,0BAEoB,CACjB,CACIjL,MAAO,yDACPyB,MAAO,QAEX,CACIzB,MAAO,0DACPyB,MAAO,iBAEdwJ,YAAA,yBAEmB,CAChB,CACIjL,MAAO,yDACPyB,MAAO,SAEX,CACIzB,MAAO,0DACPyB,MAAO,iBAEdwJ,YAAA,aAkTOlT,IACJmE,KAAKhG,UAAUF,YAAY2S,KAAK,uCAAwC,CACpEtN,GAAItD,EAAKy4B,cAEhBvlB,YAAA,0BAEmB,KAChB/O,KAAKhG,UAAUF,YAAY2S,KAAK,uCACnCsC,YAAA,wBAEiB8G,UACc7V,KAAKhG,UAAU6V,uBAAuByoB,mBAAmB,CACjF96B,UAAW3B,EAAK2B,UAChBuS,wBAAgD,IAAxBlU,EAAK2T,eAC7BqkB,wBAAwD,IAAhCh4B,EAAKi4B,yBAETU,YAChB34B,aAAgBq2B,QACVlyB,KAAKm8B,qBAAqBtgC,EAAMmE,KAAKsO,eAAenP,IACnDtD,aAAgBm2B,SACjBhyB,KAAKo8B,oBAAoBvgC,EAAMmE,KAAKsO,eAAenP,QA9SjEgQ,yBAAenP,MACfA,KAAKkM,WAAaA,EAClBlM,KAAK21B,gCAAkC,IAAI0G,GAAgCr8B,KAAKhG,UAAWgG,MAC3FA,KAAKyzB,sCAAwC,IAAI6I,GAAsCt8B,KAAKhG,UAAWgG,MACvGA,KAAK81B,sCAAwC,IAAI2D,GAAsCz5B,KAAKhG,UAAWgG,MACvGA,KAAK5E,mBAAqB,IAAI4b,KAC1B,CACIC,QAASA,IAAMjX,KAAKhG,UAAUD,UAAUwiC,+BAE5C,CACIC,kBAAmBx8B,KAAKw8B,oBAIhCx8B,KAAKmS,aACD,IAAI4b,IAA+B/tB,KAAKhG,UAAWgG,KAAKuJ,aAAc,CAClE8I,YAAcxW,GAASmE,KAAKsS,gBAAgBzW,GAC5CmyB,YAAcnyB,GAASA,EAAKq5B,SAAWr5B,EAAKy4B,SAC5Cne,OAASta,GACDA,EAAKq5B,QACE,IAAIlD,EAAe,IACnBn2B,EACHa,cAAesD,KAAKo7B,yBAAyBv/B,KAG1C,IAAIq2B,EAAgB,IACpBr2B,EACHa,cAAesD,KAAKm7B,0BAA0Bt/B,QAOlEmE,KAAKs2B,mBAAqB,IAAImG,KAC1B,CACIpmB,QAAS,QACTC,SAAU,QACV1R,QAAS,CACL2R,SAAWmmB,IACqB,UAAxBA,EAAcn3B,OAA6C,SAAxBm3B,EAAcn3B,MACjDvF,KAAKuJ,aAAaC,OAAOgM,eAAiB,MAE1CxV,KAAKuJ,aAAaC,OAAOgM,eAAiB,UAK1DxV,KAAKuJ,aACL,UACAvJ,KAAK28B,cAGT38B,KAAKuI,kBAAoB,IAAI6N,KACzB,CACIC,QAAS,aACTC,SAAU,KACV1R,QAAS,CACL2R,SAAWC,IACPxW,KAAKhG,UAAUoL,gBAAgBqR,kBAAkBD,EAAO3a,SAIpEmE,KAAKhG,UAAUoL,gBAAgBsR,SAEnC1W,KAAKuI,kBAAkBoO,gBAAgB3W,KAAKsO,gBAE5CtO,KAAKuS,UACD,IAAMvS,KAAKsO,iBACX,KACStO,KAAKtF,cACNsF,KAAKuJ,aAAakJ,WAK9BzS,KAAKuS,UACD,IAAMvS,KAAKtF,eACVA,IACQA,GACDsF,KAAKuJ,aAAakJ,WAMlCG,SAII,OAHK5S,KAAKw1B,WAAax1B,KAAKhG,UAAUD,UAAU6iC,+BAC5C58B,KAAK5E,mBAAmBmc,OAErBrd,QAAQgd,IAAI,CAAClX,KAAK81B,sCAAsCljB,SAAU5S,KAAKuJ,aAAasJ,eAG/F0oB,YAAYh3B,GAIR,OAHIvE,KAAKsO,iBACL/J,EAAOqQ,SAAW5U,KAAKsO,eAAenP,IAEnCa,KAAKkM,WAAWqvB,YAAY,IAC5Bh3B,EACH4B,QAA4B,UAAnB5B,EAAO4B,QAAsB,OAAS5B,EAAO4B,UAI9Dq1B,WAAWj3B,GAIP,OAHIvE,KAAKsO,iBACL/J,EAAOqQ,SAAW5U,KAAKsO,eAAenP,IAEnCa,KAAKkM,WAAWsvB,WAAW,IAC3Bj3B,EACH4B,QAA4B,SAAnB5B,EAAO4B,QAAqB,QAAU5B,EAAO4B,UAI9D,qBAAqBqD,GAGjB,MAAMqzB,EAAwC,IAAtBrzB,EAAO+kB,WAC3BsO,EACA78B,KAAK8J,UAAUkJ,UAEfhT,KAAKhG,UAAUwd,gBAAgBxE,UAEnC,IACI,IAAIgW,EAEAA,EADAxf,EAAOqsB,cAAgBvD,EAAqBC,cAC3BvyB,KAAKu7B,YAAY/xB,SAEjBxJ,KAAKw7B,WAAWhyB,GAErCmD,uBAAY,KACR3M,KAAK8J,UAAUof,QAAQF,GACnB6T,EACA78B,KAAK8J,UAAUqJ,SAEfnT,KAAKhG,UAAUwd,gBAAgBrE,YAGzC,MAAO/F,GACDyvB,EACA78B,KAAK8J,UAAUqJ,SAEfnT,KAAKhG,UAAUwd,gBAAgBrE,SAEnCnT,KAAK8T,aAAa1G,IAK1B0vB,uBAAuB7B,GACnB/pB,kBAAQlR,KAAK8J,UAAUkD,MAAO0kB,IAM1B,GAL4B1xB,KAAKhG,UAAU6V,uBAAuByoB,mBAAmB,CACjF96B,UAAWk0B,EAAMl0B,UACjBuS,wBAAiD,IAAzB2hB,EAAMliB,eAC9BqkB,wBAAyD,IAAjCnC,EAAMoC,yBAEVU,UAAW,CAK/B,IAAuB,IAJDxrB,oBAClBiyB,EAAepI,aACdI,GAAeA,IAAevB,EAAMwD,UAIrC,YADAxD,EAAM7sB,YAAa,GAQvB,IAAyB,IAJDmE,oBACpBiyB,EAAenI,eACdK,GAAiBA,IAAiBzB,EAAMwD,UAIzC,YADAxD,EAAM7sB,YAAa,GAIlBmJ,gBAAMitB,EAAerI,iBACtBlB,EAAM7sB,WAAao2B,EAAerI,mBAI9C5yB,KAAK81B,sCAAsCkF,+BAA+BC,GAI9E8B,wBAAwBhC,GACpB7pB,kBAAQlR,KAAK8J,UAAUkD,MAAO+pB,IAM1B,GAL4B/2B,KAAKhG,UAAU6V,uBAAuByoB,mBAAmB,CACjF96B,UAAWu5B,EAAOv5B,UAClBuS,wBAAkD,IAA1BgnB,EAAOvnB,eAC/BqkB,wBAA0D,IAAlCkD,EAAOjD,yBAEXU,UAAW,CAK/B,IAAuB,IAJDxrB,oBAClB+xB,EAAgBlI,aACfI,GAAeA,IAAe8D,EAAOzC,WAItC,YADAyC,EAAOlyB,YAAa,GAOxB,IAAyB,IAJDmE,oBACpB+xB,EAAgBjI,eACfK,GAAiBA,IAAiB4D,EAAOzC,WAI1C,YADAyC,EAAOlyB,YAAa,GAGnBmJ,gBAAM+sB,EAAgBnI,iBACvBmE,EAAOlyB,WAAak2B,EAAgBnI,mBAIhD5yB,KAAK81B,sCAAsCgF,gCAAgCC,GAG/E,0BAA0Bl/B,EAAM+Y,GAC5B,IAAK/Y,EAAKsS,WACN,IACItS,EAAKsS,YAAa,EAClBnO,KAAKhG,UAAUwd,gBAAgBxE,UAC/B,MAAMynB,GAAY5+B,EAAKgJ,WACjByK,EAAU,IAAI4pB,KAChBr9B,EAAKq5B,QACLr5B,EAAK8B,MACL9B,EAAK2B,WACmB,IAAxB3B,EAAK2T,gBAC2B,IAAhC3T,EAAKi4B,8BAEH9zB,KAAKhG,UAAUyV,wBAAwB0pB,4BAA4B7pB,EAASmrB,GAClF9tB,uBAAY,KACR9Q,EAAKgJ,WAAa41B,EAClBz6B,KAAK81B,sCAAsCuE,4BAA4Bx+B,MAE7E,MAAOuR,GACLpN,KAAKhG,UAAUqT,kBAAkBC,MAC7B,8DACAF,GAEP,eACUvR,EAAKsS,WACZnO,KAAKhG,UAAUwd,gBAAgBrE,UAK3C,2BAA2BtX,EAAM+Y,GAC7B,IAAK/Y,EAAKsS,WACN,IACItS,EAAKsS,YAAa,EAClBnO,KAAKhG,UAAUwd,gBAAgBxE,UAC/B,MAAMynB,GAAY5+B,EAAKgJ,WACjByK,EAAU,IAAIqrB,KAChB9+B,EAAKy4B,SACLz4B,EAAKzC,KACLyC,EAAK2B,WACmB,IAAxB3B,EAAK2T,gBAC2B,IAAhC3T,EAAKi4B,8BAEH9zB,KAAKhG,UAAUyV,wBAAwBmrB,oCAAoCtrB,EAASmrB,GAC1F9tB,uBAAY,KACR9Q,EAAKgJ,WAAa41B,EAClBz6B,KAAK81B,sCAAsCyE,6BAA6B1+B,MAE9E,MAAOuR,GACLuC,QAAQC,IAAIxC,GACZpN,KAAKhG,UAAUqT,kBAAkBC,MAC7B,8DACAF,GAEP,eACUvR,EAAKsS,WACZnO,KAAKhG,UAAUwd,gBAAgBrE,UAM3CuiB,wBAAwBnwB,GACpBvF,KAAKuJ,aAAaC,OAAOwzB,IAAI,cAAez3B,GAC5CvF,KAAKuJ,aAAakJ,QA6BtBioB,oCAAoCJ,GAChC,MAAM5I,EAAQzjB,eAAKjO,KAAK8J,UAAUkD,MAAOnR,GAASA,EAAKq5B,UAAYoF,EAAapF,UAC5ExD,GAASA,EAAM7sB,aAAey1B,EAAaz1B,aAC3C6sB,EAAM7sB,WAAay1B,EAAaz1B,YAKxCg2B,qCAAqCL,GACjC,MAAMzD,EAAS9oB,eAAKjO,KAAK8J,UAAUkD,MAAOnR,GAASA,EAAKy4B,WAAakG,EAAclG,WAC/EyC,GAAUA,EAAOlyB,aAAe21B,EAAc31B,aAC9CkyB,EAAOlyB,WAAa21B,EAAc31B,YAI1CiP,aAAaxG,GACTtN,KAAKhG,UAAUqT,kBAAkBC,MAC7B,2FACAA,GAIR6tB,0BAA0Bt/B,GACtB,OAAIA,EAAKkW,aACE/R,KAAKhG,UAAUgY,kBAAkB8mB,mCAAmCj9B,EAAKkW,aAAc,IAAK,KAEhG,KAGXqpB,yBAAyBv/B,GACrB,OAAIA,EAAKkW,aACE/R,KAAKhG,UAAUgY,kBAAkBwlB,kCAAkC37B,EAAKkW,aAAc,IAAK,KAE/F,KAGXmC,YACIlU,KAAK21B,gCAAgCsH,UACrCj9B,KAAKyzB,sCAAsCwJ,UAC3Cj9B,KAAK81B,sCAAsCmH,YAElDjtB,YAAApQ,GAAAqQ,UAAA,kBApaIM,YAAQC,OAAAC,yBAAA7Q,GAAAqQ,UAAA,kBAAArQ,GAAAqQ,WAAAD,YAAApQ,GAAAqQ,UAAA,gBAIRM,YAAQC,OAAAC,yBAAA7Q,GAAAqQ,UAAA,gBAAArQ,GAAAqQ,WAAAD,YAAApQ,GAAAqQ,UAAA,aAIRM,YAAQC,OAAAC,yBAAA7Q,GAAAqQ,UAAA,aAAArQ,GAAAqQ,WAAAD,YAAApQ,GAAAqQ,UAAA,4BAIRM,YAAQC,OAAAC,yBAAA7Q,GAAAqQ,UAAA,4BAAArQ,GAAAqQ,WAAAD,YAAApQ,GAAAqQ,UAAA,gBAqCRM,YAAQC,OAAAC,yBAAA7Q,GAAAqQ,UAAA,gBAAArQ,GAAAqQ,WAAAD,YAAApQ,GAAAqQ,UAAA,0BAAAtQ,IAAA6Q,OAAAC,yBAAA7Q,GAAAqQ,UAAA,0BAAArQ,GAAAqQ,WAAAD,YAAApQ,GAAAqQ,UAAA,2BAAAtC,IAAA6C,OAAAC,yBAAA7Q,GAAAqQ,UAAA,2BAAArQ,GAAAqQ,WAAAD,YAAApQ,GAAAqQ,UAAA,2BAAArC,IAAA4C,OAAAC,yBAAA7Q,GAAAqQ,UAAA,2BAAArQ,GAAAqQ,WAAAD,YAAApQ,GAAAqQ,UAAA,uCAAApC,IAAA2C,OAAAC,yBAAA7Q,GAAAqQ,UAAA,uCAAArQ,GAAAqQ,WAAAD,YAAApQ,GAAAqQ,UAAA,wCAAAU,IAAAH,OAAAC,yBAAA7Q,GAAAqQ,UAAA,wCAAArQ,GAAAqQ,WAAArQ,I,SCkMEy8B,I,8BAAAA,IA5PsB18B,GAEhCuQ,aAAWnP,IAAG4M,GAEduC,aAAWnP,IAAG6M,GAoIdH,SAAOC,MAAKG,GAsEZJ,SAAOC,MAAKiD,GAKZlD,SAAOC,MAAKkD,GASZnD,SAAOC,MAAKmD,GAKZpD,SAAOC,MAAKgK,GAqBZjK,SAAOC,MAAK9N,GAtPjB,cAA8CiS,IAwB1CnG,YAAY1R,EAAWu7B,GACnB3pB,MAAM5R,EAAW,CACbkY,YAAa,CACTqV,0BAA0B,EAC1B7c,SAAU,MAEfsE,YAAA,sBAAAC,GAAA,MAAAD,YAAA,eAAAE,GAAA,MAAAF,YAAA,6BAAAiJ,GAAA,MAAAjJ,YAAA,6BAAAkJ,GAAA,MAAAnJ,YAAA,uBAzBU,GAAIA,YAAA,wBAEF,MAAIA,YAAA,oBAER,CACX,CACIjL,MAAO,oEACPyB,MAAO,MAEX,CACIzB,MAAO,yEACPyB,MAAO,eAEX,CACIzB,MAAO,wEACPyB,MAAO,WAEdwJ,YAAA,wBAqJkBlT,IACfmE,KAAKhG,UAAUF,YAAY2S,KACvB,uCACA,CACItN,GAAItD,EAAKy4B,UAEb,CAAEY,QAASr5B,EAAKq5B,aAEvBnmB,YAAA,sBA6DgBgoB,IACb/2B,KAAKhG,UAAUF,YAAY2S,KAAK,uCAAwC,CACpEtN,GAAI43B,EAAOzC,cAnNfnlB,yBAAenP,MACfA,KAAKu1B,uBAAyBA,EAC9Bv1B,KAAKkM,WAAalM,KAAKu1B,uBAAuBrpB,WAE9ClM,KAAKmS,aACD,IAAIC,KAAiBpS,KAAKhG,UAAWgG,KAAKuJ,aAAc,CACpD8I,YAAcxW,GAASmE,KAAKsS,gBAAgBzW,GAC5CmyB,YAAcnyB,GAASA,EAAKq5B,QAC5B/e,OAASta,IACE,IACAA,EACHa,cAAesD,KAAKo7B,yBAAyBv/B,QAM7DmE,KAAKs2B,mBAAqB,IAAIlgB,KAC1B,CACIC,QAAS,QACTC,SAAU,QACV1R,QAAS,CACL2R,SAAWmmB,IACH18B,KAAKuJ,aAAaC,OAAOrD,UAAYu2B,EAAcn3B,QACvB,OAAxBm3B,EAAcn3B,OACdvF,KAAKuJ,aAAaC,OAAOrD,QAAU,KACnCnG,KAAKuJ,aAAaC,OAAOgM,eAAiB,OAE1CxV,KAAKuJ,aAAaC,OAAOrD,QAAUu2B,EAAcn3B,MACrB,UAAxBm3B,EAAcn3B,MACdvF,KAAKuJ,aAAaC,OAAOgM,eAAiB,MAE1CxV,KAAKuJ,aAAaC,OAAOgM,eAAiB,QAGlDxV,KAAKuJ,aAAakJ,YAKlCzS,KAAK28B,cAGT38B,KAAKk9B,2BAELl9B,KAAKuS,UACD,KAAOvS,KAAKuJ,aAAaC,OAAOE,QAAU,IAAI8I,SAC7C2qB,IACOA,EACAn9B,KAAKuJ,aAAakJ,QAElBzS,KAAKwR,UAGb,CACIkB,MAAO,MAIf1S,KAAKuS,UACD,MACIggB,QAASvyB,KAAKuyB,QACdsH,UAAW75B,KAAKo9B,0BAEnBrD,IACOA,EAAQF,WACRna,YAAW,KACP/S,uBAAY,KACR3M,KAAK62B,sBAAwBkD,EAAQF,UAAUva,YAAcya,EAAQF,UAAUra,qBAQvG,qBAAqBhW,GACjB,GAAIA,EAAOE,OAAQ,CACf1J,KAAKoT,uBACLpT,KAAKq9B,mBAAkB,GACvB,IAAI3qB,EAAQ,KACR1S,KAAKs9B,iBACL5qB,EAAQ,GAEZ1S,KAAK8J,UAAUkJ,QAAQN,GACvB,IACI,MAAMsW,QAAiBhpB,KAAKiO,KAAKzE,GACjCmD,uBAAY,KACR3M,KAAK8J,UAAUof,QAAQF,GACvBhpB,KAAKu9B,WAAWvU,GAChBhpB,KAAK8J,UAAUqJ,YAErB,MAAO/F,GACLT,uBAAY,KACR3M,KAAK8J,UAAUqJ,YAEnBnT,KAAK8T,aAAa1G,GACrB,QACGpN,KAAKs9B,gBAAiB,QAG1Bt9B,KAAKwR,QAKb+rB,WAAWvU,GACP,MAAMhc,EAAOgc,EAASntB,KAAOmtB,EAASntB,KAAOmtB,EACvCuJ,EAAUxzB,cACZy+B,iBACIh0B,iBAAOwD,GAAOnR,IAAUmS,gBAAMnS,EAAKy4B,YACnC,aAEHz4B,IACU,CACHy4B,SAAUz4B,EAAKy4B,SACfl7B,KAAMyC,EAAKy5B,WACX2B,gBAAiBp7B,EAAKo7B,gBACtBv6B,cAAesD,KAAKm7B,0BAA0Bt/B,EAAK4hC,wBAI/Dz9B,KAAKuyB,QAAUA,EAGnB2K,2BACQl9B,KAAKuJ,aAAaC,OAAOrD,QACzBnG,KAAKs2B,mBAAmB3f,gBACpB1I,eAAKjO,KAAK28B,cAAee,GAAgBA,EAAYn4B,QAAUvF,KAAKuJ,aAAaC,OAAOrD,WAG5FnG,KAAKs2B,mBAAmB3f,gBAAgB3W,KAAK28B,aAAa,IAIlE1uB,KAAK1J,GAED,OADAvE,KAAKqT,iBAAmB,IAAIC,gBACrBtT,KAAKkM,WAAWuvB,cAAcl3B,EAAQvE,KAAKqT,kBAatD+nB,yBAAyBv/B,GACrB,OAAIA,EAAKkW,aACE/R,KAAKhG,UAAUgY,kBAAkBwlB,kCAAkC37B,EAAKkW,aAAc,IAAK,KAE/F,KAGXopB,0BAA0BsC,GACtB,OAAIA,EACOz9B,KAAKhG,UAAUgY,kBAAkB8mB,mCAAmC2E,EAAoB,IAAK,KAEjG,KAGX3pB,aAAaxG,GACLA,GAASA,EAAMyG,aAAeC,KAAgBC,kBAGlDtE,QAAQC,IAAItC,GACZtN,KAAKhG,UAAUqT,kBAAkBC,MAC7B,2FACAA,IAKR+vB,kBAAkB93B,GACdvF,KAAK47B,eAAiBr2B,EAI1BiM,QACIxR,KAAKq9B,mBAAkB,GACvBr9B,KAAKoT,uBACLpT,KAAK8J,UAAUof,QAAQ,IACvBlpB,KAAKu9B,WAAW,IAChBv9B,KAAKs9B,gBAAiB,EAI1BtH,qBACIqF,aAAWr7B,KAAKo9B,sBAAuB,OAAQ,GAAI,IAAK,IAI5DnH,sBACIoF,aAAWr7B,KAAKo9B,sBAAuB,QAAS,GAAI,IAAK,IAG7DhqB,uBACQpT,KAAKqT,kBACLrT,KAAKqT,iBAAiBQ,QAI9BK,YACIlU,KAAKoT,uBAUT0jB,yBAAyB/1B,GACrBf,KAAKo9B,sBAAwBr8B,IAEpCkO,GAAAe,YAAApQ,GAAAqQ,UAAA,kBAzPIC,cAAU,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,kBAAkB,KAAKpB,GAAAc,YAAApQ,GAAAqQ,UAAA,WAAAtQ,IAAA,CAAAwQ,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,iBACR,MAAE2H,GAAAjI,YAAApQ,GAAAqQ,UAAA,yBAC3BC,cAAU,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,kBAAyB,KAAK4H,GAAAlI,YAAApQ,GAAAqQ,UAAA,yBAAAtC,IAAA,CAAAwC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,kBACD,QAAIN,YAAApQ,GAAAqQ,UAAA,cAAArC,IAAA4C,OAAAC,yBAAA7Q,GAAAqQ,UAAA,cAAArQ,GAAAqQ,WAAAD,YAAApQ,GAAAqQ,UAAA,qBAAApC,IAAA2C,OAAAC,yBAAA7Q,GAAAqQ,UAAA,qBAAArQ,GAAAqQ,WAAAD,YAAApQ,GAAAqQ,UAAA,SAAAU,IAAAH,OAAAC,yBAAA7Q,GAAAqQ,UAAA,SAAArQ,GAAAqQ,WAAAD,YAAApQ,GAAAqQ,UAAA,sBAAAW,IAAAJ,OAAAC,yBAAA7Q,GAAAqQ,UAAA,sBAAArQ,GAAAqQ,WAAAD,YAAApQ,GAAAqQ,UAAA,uBAAAY,IAAAL,OAAAC,yBAAA7Q,GAAAqQ,UAAA,uBAAArQ,GAAAqQ,WAAAD,YAAApQ,GAAAqQ,UAAA,4BAAAyH,IAAAlH,OAAAC,yBAAA7Q,GAAAqQ,UAAA,4BAAArQ,GAAAqQ,WAAArQ,IC0FjC+9B,I,8BAAAA,IAjGsBh+B,GAehC8N,SAAOC,MAAKC,GAKZF,SAAOC,MAAKE,GAKZH,SAAOC,MAAKG,GAgBZJ,SAAOC,MAAKiD,GAgBZlD,SAAOC,MAAKkD,GA6BZnD,SAAOC,MAAKmD,GAKZpD,SAAOC,MAAK9N,GA3FjB,cAA8CkO,IAI1C,yBACI,OAAQE,gBAAMhO,KAAK40B,cAAchC,gBAAkB5yB,KAAK40B,cAAc/B,YAAY/zB,OAAS,EAG/F4M,YAAY1R,EAAWu7B,GACnB3pB,MAAM5R,GAAWgV,YAAA,kBAAAC,GAAA,MAAAD,YAAA,qBAAAE,GAAA,MACjBC,yBAAenP,MACfA,KAAKu1B,uBAAyBA,EAC9Bv1B,KAAKkM,WAAaqpB,EAAuBrpB,WAI7CymB,YACI3yB,KAAK40B,cAAcjC,YAIvBI,cACI/yB,KAAK40B,cAAc7B,cAIvB2B,WAAW74B,GACP,GAAImE,KAAKmO,WACL,OAGwBnO,KAAKhG,UAAU6V,uBAAuByoB,mBAAmB,CACjF96B,UAAW3B,EAAK2B,UAChBuS,wBAAgD,IAAxBlU,EAAK2T,iBAGTglB,WACpBx0B,KAAK40B,cAAc5B,gBAAgBn3B,EAAKq5B,SAKhDT,aAAa54B,GACT,GAAImE,KAAKmO,WACL,OAGwBnO,KAAKhG,UAAU6V,uBAAuByoB,mBAAmB,CACjF96B,UAAW3B,EAAK2B,UAChBuS,wBAAgD,IAAxBlU,EAAK2T,iBAGTglB,WACpBx0B,KAAK40B,cAAcxB,kBAAkBv3B,EAAKq5B,SAIlD,sBAEI,IAAKl1B,KAAKmO,WAAY,CAClBnO,KAAKoP,eAAc,GACnB,IACIpP,KAAKhG,UAAUwd,gBAAgBxE,UAC/B,MAAM1D,EAAU,CACZsjB,cAAe5yB,KAAK40B,cAAchC,cAClCoC,iBAAkBh1B,KAAK40B,cAAc/B,YACrCoC,mBAAoBj1B,KAAK40B,cAAc9B,eAK3C,aAHM9yB,KAAKhG,UAAUyV,wBAAwBmuB,gCAAgCtuB,GAC7EtP,KAAKu1B,uBAAuBuH,uBAAuB98B,KAAK40B,gBAEjD,EACT,MAAOxnB,GAML,OALApN,KAAKhG,UAAUqT,kBAAkBC,MAC7B,8DACAF,IAGG,EACV,QACGpN,KAAKoP,eAAc,GACnBpP,KAAKhG,UAAUwd,gBAAgBrE,WAM3C/D,cAAcjB,GACVnO,KAAKmO,WAAaA,EAItB7C,iBACItL,KAAK40B,cAAgB,IAAInC,IAEhCxjB,GAAAe,YAAApQ,GAAAqQ,UAAA,cA9FIC,cAAU,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,kBAAc,KAAKpB,GAAAc,YAAApQ,GAAAqQ,UAAA,iBAC7BC,cAAU,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,kBAAiB,IAAImiB,KAAqBziB,YAAApQ,GAAAqQ,UAAA,sBAEpDM,YAAQC,OAAAC,yBAAA7Q,GAAAqQ,UAAA,sBAAArQ,GAAAqQ,WAAAD,YAAApQ,GAAAqQ,UAAA,aAAAtQ,IAAA6Q,OAAAC,yBAAA7Q,GAAAqQ,UAAA,aAAArQ,GAAAqQ,WAAAD,YAAApQ,GAAAqQ,UAAA,eAAAtC,IAAA6C,OAAAC,yBAAA7Q,GAAAqQ,UAAA,eAAArQ,GAAAqQ,WAAAD,YAAApQ,GAAAqQ,UAAA,cAAArC,IAAA4C,OAAAC,yBAAA7Q,GAAAqQ,UAAA,cAAArQ,GAAAqQ,WAAAD,YAAApQ,GAAAqQ,UAAA,gBAAApC,IAAA2C,OAAAC,yBAAA7Q,GAAAqQ,UAAA,gBAAArQ,GAAAqQ,WAAAD,YAAApQ,GAAAqQ,UAAA,iBAAAU,IAAAH,OAAAC,yBAAA7Q,GAAAqQ,UAAA,iBAAArQ,GAAAqQ,WAAAD,YAAApQ,GAAAqQ,UAAA,iBAAAW,IAAAJ,OAAAC,yBAAA7Q,GAAAqQ,UAAA,iBAAArQ,GAAAqQ,WAAAD,YAAApQ,GAAAqQ,UAAA,kBAAAY,IAAAL,OAAAC,yBAAA7Q,GAAAqQ,UAAA,kBAAArQ,GAAAqQ,WAAArQ,IC4FEi+B,I,iCAAAA,IAhGuBl+B,GAcjC8N,SAAOC,MAAKC,GAKZF,SAAOC,MAAKE,GAKZH,SAAOC,MAAKG,GAgBZJ,SAAOC,MAAKiD,GAgBZlD,SAAOC,MAAKkD,GA6BZnD,SAAOC,MAAKmD,GAKZpD,SAAOC,MAAK9N,GA1FjB,cAA+CkO,IAI3C,yBACI,OAAQE,gBAAMhO,KAAK40B,cAAchC,gBAAkB5yB,KAAK40B,cAAc/B,YAAY/zB,OAAS,EAE/F4M,YAAY1R,EAAWu7B,GACnB3pB,MAAM5R,GAAWgV,YAAA,kBAAAC,GAAA,MAAAD,YAAA,qBAAAE,GAAA,MACjBC,yBAAenP,MACfA,KAAKu1B,uBAAyBA,EAC9Bv1B,KAAKkM,WAAaqpB,EAAuBrpB,WAI7CymB,YACI3yB,KAAK40B,cAAcjC,YAIvBI,cACI/yB,KAAK40B,cAAc7B,cAIvB2B,WAAW74B,GACP,GAAImE,KAAKmO,WACL,OAGwBnO,KAAKhG,UAAU6V,uBAAuByoB,mBAAmB,CACjF96B,UAAW3B,EAAK2B,UAChBuS,wBAAgD,IAAxBlU,EAAK2T,iBAGTglB,WACpBx0B,KAAK40B,cAAc5B,gBAAgBn3B,EAAKy4B,UAKhDG,aAAa54B,GACT,GAAImE,KAAKmO,WACL,OAGwBnO,KAAKhG,UAAU6V,uBAAuByoB,mBAAmB,CACjF96B,UAAW3B,EAAK2B,UAChBuS,wBAAgD,IAAxBlU,EAAK2T,iBAGTglB,WACpBx0B,KAAK40B,cAAcxB,kBAAkBv3B,EAAKy4B,UAIlD,sBAEI,IAAKt0B,KAAKmO,WAAY,CAClBnO,KAAKoP,eAAc,GACnB,IACIpP,KAAKhG,UAAUwd,gBAAgBxE,UAC/B,MAAM1D,EAAU,CACZsjB,cAAe5yB,KAAK40B,cAAchC,cAClCuB,kBAAmBn0B,KAAK40B,cAAc/B,YACtCuB,oBAAqBp0B,KAAK40B,cAAc9B,eAK5C,aAHM9yB,KAAKhG,UAAUyV,wBAAwBquB,wCAAwCxuB,GACrFtP,KAAKu1B,uBAAuBwH,wBAAwB/8B,KAAK40B,gBAElD,EACT,MAAOxnB,GAML,OALApN,KAAKhG,UAAUqT,kBAAkBC,MAC7B,8DACAF,IAGG,EACV,QACGpN,KAAKoP,eAAc,GACnBpP,KAAKhG,UAAUwd,gBAAgBrE,WAM3C/D,cAAcjB,GACVnO,KAAKmO,WAAaA,EAItB7C,iBACItL,KAAK40B,cAAgB,IAAInC,IAEhCxjB,GAAAe,YAAApQ,GAAAqQ,UAAA,cA7FIC,cAAU,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,kBAAc,KAAKpB,GAAAc,YAAApQ,GAAAqQ,UAAA,iBAC7BC,cAAU,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,kBAAiB,IAAImiB,KAAqBziB,YAAApQ,GAAAqQ,UAAA,sBAEpDM,YAAQC,OAAAC,yBAAA7Q,GAAAqQ,UAAA,sBAAArQ,GAAAqQ,WAAAD,YAAApQ,GAAAqQ,UAAA,aAAAtQ,IAAA6Q,OAAAC,yBAAA7Q,GAAAqQ,UAAA,aAAArQ,GAAAqQ,WAAAD,YAAApQ,GAAAqQ,UAAA,eAAAtC,IAAA6C,OAAAC,yBAAA7Q,GAAAqQ,UAAA,eAAArQ,GAAAqQ,WAAAD,YAAApQ,GAAAqQ,UAAA,cAAArC,IAAA4C,OAAAC,yBAAA7Q,GAAAqQ,UAAA,cAAArQ,GAAAqQ,WAAAD,YAAApQ,GAAAqQ,UAAA,gBAAApC,IAAA2C,OAAAC,yBAAA7Q,GAAAqQ,UAAA,gBAAArQ,GAAAqQ,WAAAD,YAAApQ,GAAAqQ,UAAA,iBAAAU,IAAAH,OAAAC,yBAAA7Q,GAAAqQ,UAAA,iBAAArQ,GAAAqQ,WAAAD,YAAApQ,GAAAqQ,UAAA,iBAAAW,IAAAJ,OAAAC,yBAAA7Q,GAAAqQ,UAAA,iBAAArQ,GAAAqQ,WAAAD,YAAApQ,GAAAqQ,UAAA,kBAAAY,IAAAL,OAAAC,yBAAA7Q,GAAAqQ,UAAA,kBAAArQ,GAAAqQ,WAAArQ,ICqHE08B,I,GAAAA,IAzH4B38B,GAsBtC8N,SAAOC,MAAKC,GAQZF,SAAOC,MAAKE,GAQZH,SAAOC,MAAKG,GASZJ,SAAOC,MAAKiD,GASZlD,SAAOC,MAAKkD,GAgBZnD,SAAOC,MAAKmD,GAgBZpD,SAAOC,MAAKgK,GAaZjK,SAAOC,MAAK+Y,GAaZhZ,SAAOC,MAAK9N,GAlHjB,cAAoDkO,IAGhD,yBACI,OAAO9N,KAAKu1B,uBAAuBsG,2BAA6BvJ,EAAqBC,QAC/EvyB,KAAKg0B,wBAAwB+J,mBAC7B/9B,KAAK80B,uBAAuBiJ,mBAGtCryB,YAAY1R,EAAWu7B,GACnB3pB,MAAM5R,GAAWgV,YAAA,cAAAC,GAAA,MACjBE,yBAAenP,MACfA,KAAKu1B,uBAAyBA,EAC9Bv1B,KAAKkM,WAAaqpB,EAAuBrpB,WAEzClM,KAAK80B,uBAAyB,IAAI6I,GAAgC39B,KAAKhG,UAAWgG,KAAKu1B,wBACvFv1B,KAAKg0B,wBAA0B,IAAI6J,GAC/B79B,KAAKhG,UACLgG,KAAKu1B,wBAKb8B,eACQr3B,KAAKmO,YAGTnO,KAAKg+B,WAAWh+B,KAAK+zB,QAIzBiK,UAAUz4B,GACNvF,KAAK+zB,OAASxuB,EACTvF,KAAK+zB,QACN/zB,KAAKsL,iBAKbqnB,YACQ3yB,KAAKu1B,uBAAuBsG,2BAA6BvJ,EAAqBC,QAC9EvyB,KAAKg0B,wBAAwBrB,YAE7B3yB,KAAK80B,uBAAuBnC,YAKpCI,cACQ/yB,KAAKu1B,uBAAuBsG,2BAA6BvJ,EAAqBC,QAC9EvyB,KAAKg0B,wBAAwBjB,cAE7B/yB,KAAK80B,uBAAuB/B,cAKpC2B,WAAW74B,GACqBmE,KAAKhG,UAAU6V,uBAAuByoB,mBAAmB,CACjF96B,UAAW3B,EAAK2B,UAChBuS,wBAAgD,IAAxBlU,EAAK2T,eAC7BqkB,wBAAwD,IAAhCh4B,EAAKi4B,yBAETU,YAChBx0B,KAAKu1B,uBAAuBsG,2BAA6BvJ,EAAqBC,QAC9EvyB,KAAKg0B,wBAAwBU,WAAW74B,GAExCmE,KAAK80B,uBAAuBJ,WAAW74B,IAMnD44B,aAAa54B,GACmBmE,KAAKhG,UAAU6V,uBAAuByoB,mBAAmB,CACjF96B,UAAW3B,EAAK2B,UAChBuS,wBAAgD,IAAxBlU,EAAK2T,eAC7BqkB,wBAAwD,IAAhCh4B,EAAKi4B,yBAETU,YAChBx0B,KAAKu1B,uBAAuBsG,2BAA6BvJ,EAAqBC,QAC9EvyB,KAAKg0B,wBAAwBS,aAAa54B,GAE1CmE,KAAK80B,uBAAuBL,aAAa54B,IAKrD,mBACmB0J,GACf,IAAI04B,EAEAA,EADAj+B,KAAKu1B,uBAAuBsG,2BAA6BvJ,EAAqBC,cAC9DvyB,KAAKg0B,wBAAwBkK,aAAa34B,SAE1CvF,KAAK80B,uBAAuBoJ,aAAa34B,GAEzD04B,GACAj+B,KAAKg+B,WAAU,GAIvB,sBAEI,IAAIC,EAEAA,EADAj+B,KAAKu1B,uBAAuBsG,2BAA6BvJ,EAAqBC,cAC9DvyB,KAAKg0B,wBAAwBsD,sBAE7Bt3B,KAAK80B,uBAAuBwC,gBAE5C2G,GACAj+B,KAAKg+B,WAAU,GAKvB1yB,iBACItL,KAAKg0B,wBAAwB1oB,iBAC7BtL,KAAK80B,uBAAuBxpB,mBAEnC2D,GAAAe,YAAApQ,GAAAqQ,UAAA,UAtHIC,cAAU,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,kBAAU,KAAKN,YAAApQ,GAAAqQ,UAAA,sBAEzBM,YAAQC,OAAAC,yBAAA7Q,GAAAqQ,UAAA,sBAAArQ,GAAAqQ,WAAAD,YAAApQ,GAAAqQ,UAAA,gBAAAtQ,IAAA6Q,OAAAC,yBAAA7Q,GAAAqQ,UAAA,gBAAArQ,GAAAqQ,WAAAD,YAAApQ,GAAAqQ,UAAA,aAAAtC,IAAA6C,OAAAC,yBAAA7Q,GAAAqQ,UAAA,aAAArQ,GAAAqQ,WAAAD,YAAApQ,GAAAqQ,UAAA,aAAArC,IAAA4C,OAAAC,yBAAA7Q,GAAAqQ,UAAA,aAAArQ,GAAAqQ,WAAAD,YAAApQ,GAAAqQ,UAAA,eAAApC,IAAA2C,OAAAC,yBAAA7Q,GAAAqQ,UAAA,eAAArQ,GAAAqQ,WAAAD,YAAApQ,GAAAqQ,UAAA,cAAAU,IAAAH,OAAAC,yBAAA7Q,GAAAqQ,UAAA,cAAArQ,GAAAqQ,WAAAD,YAAApQ,GAAAqQ,UAAA,gBAAAW,IAAAJ,OAAAC,yBAAA7Q,GAAAqQ,UAAA,gBAAArQ,GAAAqQ,WAAAD,YAAApQ,GAAAqQ,UAAA,gBAAAY,IAAAL,OAAAC,yBAAA7Q,GAAAqQ,UAAA,gBAAArQ,GAAAqQ,WAAAD,YAAApQ,GAAAqQ,UAAA,iBAAAyH,IAAAlH,OAAAC,yBAAA7Q,GAAAqQ,UAAA,iBAAArQ,GAAAqQ,WAAAD,YAAApQ,GAAAqQ,UAAA,kBAAAwW,IAAAjW,OAAAC,yBAAA7Q,GAAAqQ,UAAA,kBAAArQ,GAAAqQ,WAAArQ,ICOEu+B,OAVd3+B,aACG,CAACxF,EAAWyF,IAAmB,IAAI83B,GAA8Bv9B,EAAWyF,IAC5E,gCACHE,CAAAC,GAHD,cAImC/E,IAAMgF,UACrCC,SACI,OAAOlF,cAACwjC,EAA4B,IAAKp+B,KAAKC,YAErDL,GCNcy2B,OAJf,SAA+Bp2B,GAC3B,OAAOrF,cAACu6B,EAA6B,IAAKl1B,KCG/Bm3B,OAJf,SAAuCn3B,GACnC,OAAOrF,cAACw6B,EAAqC,IAAKn1B,KCGvCu2B,OAJf,SAA+Bv2B,GAC3B,OAAOrF,cAACyjC,EAA6B,IAAKp+B,KCG/Bq+B,OAJf,SAA+Br+B,GAC3B,OAAOrF,cAAC2jC,GAA6B,IAAKt+B,KCG/Bu+B,OAJf,SAAiCv+B,GAC7B,OAAOrF,cAAC6jC,EAA+B,IAAKx+B,KCGjCy+B,OAJf,SAAoCz+B,GAChC,OAAOrF,cAAC+jC,GAAkC,IAAK1+B,KCGpCs2B,OAJf,SAAsCt2B,GAClC,OAAOrF,cAACgkC,GAAoC,IAAK3+B,K,SCyErD,MAAM4+B,GAASvkC,oBAAS,SAAeC,GAAgB,IAAf,MAAEd,EAAK,EAAEgB,GAAGF,EAChD,MAAM,KAAEsB,EAAI,YAAEC,GAAgBrC,EAE9B,OACImB,cAACoB,IAAgB,CAACF,YAAaA,EAAaG,aAAcA,IAAMrB,cAACgE,IAA+B,IAAI7D,SAC/FA,IACGH,cAACC,IAAMC,SAAQ,CAAAC,SACVc,GAAQA,EAAK22B,QAAU32B,EAAK22B,OAAO1zB,OAAS,GACzClE,cAAA,OAAKmB,UAAU,sBAAqBhB,SAChCH,cAAA,OAAKmB,UAAU,uBAAsBhB,SACjCH,cAAA,OAAAG,SACKgE,cAAIlD,EAAK22B,QAASd,GACf92B,cAACujC,GAAoB,CAEjBjJ,QAASxD,EAAMvyB,GACfs4B,yBAA0Bh+B,EAC1BgB,EAAGA,GAHEi3B,EAAMvyB,mBAgBxCjE,qBA7Ff,SAAgCC,GAAmC,IAAlC,yBAAEs8B,EAAwB,EAAEh9B,GAAGU,EAC5D,MAAM,YAAEW,EAAW,KAAED,EAAI,cAAEa,EAAa,oBAAEE,GAAwB66B,EAElE,OACIp8B,eAACwB,IAAc,CAACpD,MAAOg+B,EAA0Bh9B,EAAGA,EAAGqC,uBAAuB,eAAc/B,SAAA,CACxFH,cAACW,IAAa,CAAAR,SACVH,cAACmC,IAAiB,CAACtD,MAAOg+B,EAA0Bn4B,kBAAkB,EAAM7E,EAAGA,MAEnFG,cAACoC,IAAoB,CAACC,kBAAkB,6BAA4BlC,SAChEH,cAACoB,IAAgB,CAACF,YAAaA,EAAaG,aAAcA,IAAMrB,cAACsC,IAAe,IAAInC,SAC/EA,IACGM,eAACR,IAAMC,SAAQ,CAAAC,SAAA,CACXH,cAAA,OAAAG,SACIH,cAAA,OAAKmB,UAAU,sBAAqBhB,SAChCM,eAAA,OACIU,UAAWoB,YACP,gCACCP,EAAoBQ,0BAA6C,KAAjB,gBACnDrC,SAAA,CAEFH,cAACyC,IAAK,CAACC,IAAKZ,IACZ9B,cAAC2C,IAAY,CACTC,UAAW3B,EAAK2B,UAChBC,2BAA4Bb,EAAoBc,0BAMhE9C,cAAA,OAAKmB,UAAU,mCAAkChB,SAC7CH,cAAA,OAAKmB,UAAU,sBAAqBhB,SAChCM,eAAA,OAAKU,UAAU,qBAAoBhB,SAAA,CAC/BH,cAAA,KAAGmB,UAAU,oCAAmChB,SAC3CN,EAAE,+CAEPG,cAAA,KACImB,UAAWoB,YACP,oCACCP,EAAoBQ,0BAA6C,KAAjB,gBACnDrC,SAEDc,EAAKzC,QAERwD,EAAoBQ,2BAClBxC,cAACkkC,IAA+B,kBAUhElkC,cAACikC,GAAM,CAACplC,MAAOg+B,EAA0Bh9B,EAAGA,UC/BxD,MAAMJ,GAAmBC,oBAAS,SAAyBC,GAAiC,IAAhC,uBAAEg7B,EAAsB,EAAE96B,GAAGF,EACrF,MAAM,aAAEG,EAAY,gCAAEi7B,GAAoCJ,EAC1D,OACI36B,cAACC,IAAMC,SAAQ,CAAAC,SACVL,EACGE,cAAC8jC,GAA0B,CAAC/I,gCAAiCA,EAAiCl7B,EAAGA,IAEjGG,cAAC0jC,GAAqB,CAAC/I,uBAAwBA,EAAwB96B,EAAGA,SAM3ES,I,GAAAA,iBArCf,SAA8BC,GAAiC,IAAhC,uBAAEo6B,EAAsB,EAAE96B,GAAGU,EACxD,MAAM,mBAAEC,GAAuBm6B,EAC/B,OACIl6B,eAACC,IAAc,CAAC7B,MAAO87B,EAAwB96B,EAAGA,EAAEM,SAAA,CAChDM,eAAA,OAAAN,SAAA,CACIH,cAACW,IAAa,CAACC,gBAAgB,4BAA2BT,SACtDH,cAAC4jC,GAAuB,CAACjJ,uBAAwBA,EAAwB96B,EAAGA,MAEhFG,cAACP,GAAgB,CAACk7B,uBAAwBA,EAAwB96B,EAAGA,OAEzEG,cAACc,IAAkB,CACfC,YAAaP,EACb6a,YAAY,oDACZxb,EAAGA,UCVJy3B,I,GAAAA,GAVd1yB,aACG,CAACxF,EAAWyF,IAAmB,IAAIm5B,GAAyB5+B,EAAWyF,IACvE,2BACHE,CAAAC,GAHD,cAI8B/E,IAAMgF,UAChCC,SACI,OAAOlF,cAACmkC,GAAuB,IAAK/+B,KAAKC,YAEhDL,GCEco/B,OAVdx/B,aACG,CAACxF,EAAWyF,IAAmB,IAAIk8B,GAAuB3hC,EAAWyF,IACrE,yBACHE,CAAAC,GAHD,cAI4B/E,IAAMgF,UAC9BC,SACI,OAAOlF,cAACqkC,GAAqB,IAAKj/B,KAAKC,YAE9CL,GCRG3G,IAAsBC,OAAO,eAAeC,SAAS,CACjDC,KAAM,yBACNC,OAAQ,CACJ,CACID,KAAM,gCACNE,QAAS,cACTyB,SAAU,CACN,CACI3B,KAAM,qCACNE,QAAS,GACTC,UAAWylC,GACXvlC,MAAO6hC,GACPtuB,KAAM,CACFrP,MAAO,sCAGf,CACIvE,KAAM,uCACNE,QAAS,aACTC,UAAW24B,GACXz4B,MAAO8+B,OAKvBxd,KAAM,CACF,CACIpd,MAAO,8BACPqd,MAAO,EACPnV,KAAM,QACNoV,MAAO,0C,oGCnCR,MAA0B,wC,OCwCzC,SAASikB,EAAiB3kC,GAA0B,IAAzB,UAAE4kC,EAAS,QAAEn7B,GAASzJ,EAC7C,OACIK,cAAA,OACImB,UAAU,sBACViI,QAAU0B,IACNA,EAAMC,iBACND,EAAME,kBAEN5B,KACFjJ,SAEFM,eAAA,QAAMU,UAAU,mDAAkDhB,SAAA,CAC9DH,cAAA,KAAGmB,UAAU,0DACZojC,OAMjB,SAASC,EAAiBhgC,GAAsB,IAArB,YAAEzD,EAAW,EAAElB,GAAG2E,EACzC,OACIxE,cAACyJ,IAAQ,CAAC1I,YAAaA,EAAalB,EAAGA,EAAG6gB,kBAAkB,EAAMvgB,SAC9DM,eAAA,OAAAN,SAAA,CACIH,cAAA,OAAKmB,UAAU,iCAAgChB,SAC3CH,cAAA,OAAK0C,IAAK+hC,EAAYtjC,UAAU,sBAAsBujC,IAAI,kBAE9D1kC,cAAA,OAAKmB,UAAU,yCAAwChB,SACnDH,cAAA,MAAAG,SAAI,+BAERH,cAAA,OAAKmB,UAAU,cAAahB,SACxBM,eAAA,MAAIU,UAAU,oBAAmBhB,SAAA,CAC7BH,cAAA,MAAImB,UAAU,yBAAwBhB,SAAC,+CACvCM,eAAA,MAAIU,UAAU,yBAAwBhB,SAAA,CAAC,UAC5BH,cAAA,UAAAG,SAAQ,iBAAqB,OAExCH,cAAA,MAAImB,UAAU,yBAAwBhB,SAAC,oDAG/CH,cAAA,OAAKmB,UAAU,gBAAehB,SAC1BH,cAACiJ,IAAS,CACNpJ,EAAGA,EACHqJ,MAAM,QACNE,QAASrI,EAAY8I,MACrBxH,kBAAkB,0CAQ3B/B,mBAnFf,SAA6BC,GAAgC,IAA/B,sBAAEokC,EAAqB,EAAE9kC,GAAGU,EACtD,MAAM,KAAE0M,EAAI,2BAAE23B,EAA0B,oBAAEC,EAAmB,kBAAEC,GAAsBH,EACrF,OACIlkC,eAACskC,IAAW,CACRlmC,MAAO8lC,EACP9kC,EAAGA,EACHynB,YAAY,aACZplB,uBAAuB,4BAA2B/B,SAAA,CAElDH,cAAA,MAAImB,UAAU,kCAAiChB,SAAC,sCAChDM,eAAA,OAAKU,UAAU,kBAAiBhB,SAAA,CAC5BH,cAACwN,IAAa,CACV3N,EAAGA,EACHmlC,kBAAoB3/B,GAAUrF,cAACskC,EAAiB,IAAKj/B,EAAO+D,QAASy7B,IACrEp3B,MAAOR,EAAKS,EAAE,uBACd9M,gBAAgB,mBAChB+a,SAAW7Q,GAAU85B,EAA2B95B,EAAMpH,OAAOiH,SAGjE3K,cAACwN,IAAa,CAAC3N,EAAGA,EAAG4N,MAAOR,EAAKS,EAAE,cAAe9M,gBAAgB,wBAGtEZ,cAACwkC,EAAiB,CAACzjC,YAAa+jC,U,yCC8F7BxkC,mBA/Gf,SAA2BC,GAAyC,IAAxC,oBAAE0kC,EAAmB,EAAEplC,EAAK0H,IAAMA,IAAGhH,EAC7D,MAAM,KACF0M,EAAI,4BACJi4B,EAA2B,YAC3BhkC,EAAW,aACXi9B,EAAY,YACZgH,EAAW,YACX7d,EAAW,cACX8d,EAAa,MACbriC,EAAK,cACLsiC,EAAa,kBACbC,EAAiB,mBACjBC,GACAN,EAEJ,OACIxkC,eAACskC,IAAW,CAAClmC,MAAOomC,EAAqBplC,EAAGA,EAAGynB,YAAY,gBAAennB,SAAA,CACtEH,cAACW,IAAa,CAAAR,SACVH,cAACwlC,IAAoB,CACjBv4B,KAAMA,EACNm4B,cAAeA,EACfriC,MAAOA,EACPsiC,cAAeA,EACflH,aAAcA,EACdmH,kBAAmBA,EACnBhe,YAAaA,EACb6d,YAAaA,EACbtmC,MAAOomC,EACPplC,EAAGA,MAGXY,eAAA,OAAKU,UAAU,uFAAsFhB,SAAA,CACjGH,cAAA,OAAKmB,UAAU,qCAAoChB,SAC/CH,cAACoB,IAAgB,CAACF,YAAaA,EAAaG,aAAcA,IAAMrB,cAACylC,IAAyB,IAAItlC,SACzFA,IACGH,cAAA,OAAKmB,UAAU,sBAAqBhB,SAChCH,cAACwN,IAAa,CAAC5M,gBAAgB,mBAAmBf,EAAGA,EAAG4N,MAAOR,EAAKS,EAAE,uBAKpF63B,GACEvlC,cAAA,OAAKmB,UAAU,qCAAoChB,SAC/CH,cAACoB,IAAgB,CACbF,YAAaA,EACbG,aAAcA,IAAMrB,cAACylC,IAAyB,CAACx+B,IAAK,IAAM9G,SAEzDA,IACGM,eAAA,OAAKU,UAAU,sBAAqBhB,SAAA,CAChCH,cAAA,OAAKmB,UAAU,uBAAsBhB,SAAC,YACtCM,eAAA,OAAKU,UAAU,2EAA0EhB,SAAA,CACrFM,eAAA,OAAKU,UAAU,kBAAiBhB,SAAA,CAC5BH,cAACiJ,IAAS,CACNrI,gBAAgB,uCAChBsI,MAAM,aACNE,QAAS87B,EAA4BQ,eAEzC1lC,cAACiJ,IAAS,CACNrI,gBAAgB,uCAChBsI,MAAM,UACNE,QAAS87B,EAA4BS,oBAG7C3lC,cAAA,OAAKmB,UAAU,kBAAiBhB,SAC5BH,cAACiJ,IAAS,CACN5G,kBAAkB,oDAClB6G,MAAM,QACNE,QAAS87B,EAA4BtuB,qBASnE2uB,GACEvlC,cAAA,OACImB,UAAS,kBAAA4G,OACL7G,EAAY0kC,SAAW1kC,EAAY2kC,SAAW,UAAY,iCAC3D1lC,SAEHH,cAACoB,IAAgB,CACbF,YAAaA,EACbG,aAAcA,IAAMrB,cAAC8lC,IAAkB,CAACC,WAAY,MAAQ5lC,SAE3DA,IACGH,cAAA,OAAKmB,UAAU,sBAAqBhB,SAAC,yFAQvDolC,GACEvlC,cAAA,OAAKmB,UAAU,iDAAgDhB,SAC3DH,cAACoB,IAAgB,CAACF,YAAaA,EAAaG,aAAcA,IAAMrB,cAACgmC,IAAoB,IAAI7lC,SACpFA,IAAMH,cAACimC,IAAkB,CAACpnC,MAAOqmC,EAA6BrlC,EAAGA,c,sBCrE1F,SAASqmC,IACL,OACIlmC,cAAA,OAAKmB,UAAU,qDAAoDhB,SAC/DM,eAAA,OAAKU,UAAU,+BAA8BhB,SAAA,CACzCH,cAAA,KAAGmB,UAAU,6CACbnB,cAAA,MAAImB,UAAU,uBAAsBhB,SAAC,8BACrCH,cAAA,KAAGmB,UAAU,sBAAqBhB,SAAC,2DAMnD,MAAMgmC,EAAgBzmC,oBAAS,SAAsBC,GAA8B,IAA7B,oBAAEymC,EAAmB,EAAEvmC,GAAGF,EAC5E,MAAM,UAAEuP,EAAS,YAAEm3B,GAAgBD,EAEnC,OAAKl3B,EAAUkQ,gBAIXhM,gBAAMizB,GAEF5lC,eAACR,IAAMC,SAAQ,CAAAC,SAAA,CAAC,IACV+O,EAAUo3B,YAAY,IAAEzmC,EAAE,8CAA8C,OAMlFY,eAACR,IAAMC,SAAQ,CAAAC,SAAA,CAAC,IACV+O,EAAUo3B,YAAY,IAAED,EAAY,OAbnC,QAkBTE,EAAgB7mC,oBAAS,SAAsB8E,GAAa,IAAZ,MAAE3F,GAAO2F,EAC3D,OACIxE,cAAA,OAAKmB,UAAU,yBAAwBhB,SACnCH,cAACiJ,IAAS,CAACC,MAAM,iBAAiBE,QAASvK,EAAM2nC,iBAAkB57B,UAAW/L,EAAM4nC,0BAKjFnmC,I,EAAAA,eAzEf,SAA2BC,GAA8B,IAA7B,oBAAE6lC,EAAmB,EAAEvmC,GAAGU,EAClD,MAAM,UAAE2O,GAAck3B,EAEtB,OACI3lC,eAACimC,IAAW,CAAC7nC,MAAOunC,EAAqBvmC,EAAGA,EAAEM,SAAA,CAC1CH,cAACW,IAAa,CAAAR,SACVM,eAAA,OAAKU,UAAU,sBAAqBhB,SAAA,CAChCH,cAAA,OAAAG,SAAMN,EAAEumC,EAAoBrjC,SAC5B/C,cAACumC,EAAa,CAAC1nC,MAAOunC,SAG9B3lC,eAAA,MAAIU,UAAU,kCAAiChB,SAAA,CAC1CN,EAAE,0CAA2C,IAC9CG,cAACmmC,EAAa,CAACC,oBAAqBA,EAAqBvmC,EAAGA,OAEhEG,cAACuP,IAAO,CACJ1Q,MAAOqQ,EACPrP,EAAGA,EACH4P,iBAAkBy2B,EAClB12B,WAAanK,GAAUrF,cAAC2mC,IAAc,IAAKthC,IAC3ChE,aAAcA,IAAMrB,cAAC4mC,IAAyB,CAACC,QAAS,GAAIC,MAAO,EAAGC,MAAO,Y,sBCN9EC,OArBahiC,EAA5B,cAAqC0U,IACjC5I,YAAY1R,GACR4R,MAAM5R,GAENgG,KAAKuU,QAAUvU,KAAKhG,UAAUwa,yBAAyBqtB,KAG3D,yBAAyBlqB,GACrB,MAAMqR,QAAiBhpB,KAAKuU,QAAQutB,mBAAmBnqB,GAEvD,aADM3X,KAAKhG,UAAUoL,gBAAgB28B,kBAC9B/Y,EAAShc,KAIpBg1B,gBACI,IAAKhiC,KAAKhG,UAAUoL,gBAAgB68B,sBAChC,OAAO/nC,QAAQC,OAAO,oCAGjC6V,WAAA,CAAApQ,EAAAqQ,UAAA,iBANIupB,YAAQhpB,OAAAC,yBAAA7Q,EAAAqQ,UAAA,iBAAArQ,EAAAqQ,WAAArQ,G,8BCfE,MAAMsiC,UAAyBz2B,IAC1CC,YAAYC,GACRC,MAAMD,GAGVE,QACI,MAAO,CACHC,OAAQ,CACJ,CACI1S,KAAM,sBACN0K,MAAO,4DACPkG,YAAa,kEACb+B,MAAO,kBACPo2B,MAAO,CACHhD,UAAW,mCAGnB,CACI/lC,KAAM,aACN0K,MAAO,8DACPkG,YAAa,oEACb+B,MAAO,sBCrBZ,MAAMq2B,UAAuB32B,IACxCC,YAAYC,GACRC,MAAMD,GAGVE,QACI,MAAO,CACHC,OAAQ,CACJ,CACI1S,KAAM,aACN0K,MACI,4DACJkG,YACI,kEACJ+B,MAAO,mBAEX,CACI3S,KAAM,WACN0K,MACI,yDACJkG,YACI,+DACJ+B,MAAO,sB,4BC0DZs2B,I,uBAAAA,IA3EY1iC,EAoBtB8N,SAAOC,MAAKC,EAiCZF,SAAOC,MAAK9N,EArDjB,cAAoCqM,IAGhCP,YAAY1R,EAASmB,GAAmB,IAAjB,WAAE+Q,GAAY/Q,EACjCyQ,MAAM5R,EAAW,CACbZ,KAAM,gBACNgT,UAAW81B,EACX71B,eAAgB,sBAChBC,0BAA2B,KAC3BC,0BAA2B,KAC3BwsB,aAAc,mCACf/pB,YAAA,+BAAAC,EAAA,MACHE,yBAAenP,MACfA,KAAKkM,WAAaA,EAElBlM,KAAK0/B,kBAAoB,IAAI1oB,IAE7BhX,KAAKy/B,oBAAsBz/B,KAAKy/B,oBAAoB9sB,KAAK3S,MAI7Dw/B,2BAA2B8C,GACvBtiC,KAAK6H,KAAKS,EAAE,uBAAuBiO,SAAS+rB,EAAWC,eAG3Dx1B,OAAO4K,GACH,GAAK3X,KAAKhG,UAAUoL,gBAAgB68B,sBAMpC,OAAOjiC,KAAKkM,WAAW41B,mBAAmBnqB,GALtC3X,KAAKhG,UAAUqT,kBAAkBC,MAC7Bk1B,IAAoB/nC,EAAE,+EAOlC0S,cAAcG,GACNA,EAAMN,KAAK+e,YAAcC,IAAsBzd,OAAOk0B,UACtDziC,KAAK6H,KACAS,EAAE,uBACFujB,WAAW2W,IAAoB/nC,EAAE,8DAC/B6S,EAAMN,KAAK+e,YAAcC,IAAsBzd,OAAOm0B,kBAC7D1iC,KAAK6H,KACAS,EAAE,uBACFujB,WACG2W,IAAoB/nC,EAAE,uEAG9BuF,KAAKhG,UAAUqT,kBAAkBC,MAC7Bk1B,IAAoB/nC,EAAE,6DAMlCkoC,gCACI,OAAQ3iC,KAAK4iC,yBACT,KAAK,EACD5iC,KAAK4iC,wBAA0B,EAC/B,MACJ,KAAK,EACD5iC,KAAK4iC,wBAA0B,EAC/B,MACJ,KAAK,EACD5iC,KAAK4iC,wBAA0B,GAO3CnD,sBACIz/B,KAAK0/B,kBAAkBnoB,SAE9BtI,EAAAe,YAAApQ,EAAAqQ,UAAA,2BAxEIC,cAAU,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,kBAA2B,KAACN,YAAApQ,EAAAqQ,UAAA,8BAAAtQ,GAAA6Q,OAAAC,yBAAA7Q,EAAAqQ,UAAA,8BAAArQ,EAAAqQ,WAAAD,YAAApQ,EAAAqQ,UAAA,iCAAAtC,GAAA6C,OAAAC,yBAAA7Q,EAAAqQ,UAAA,iCAAArQ,EAAAqQ,WAAArQ,G,oCC2M5BijC,QAnMkBljC,EAC5BuQ,aAAWnP,IAAG4M,EACduC,aAAWnP,IAAG6M,EAsGdH,SAAOC,MAAKG,EA0BZJ,SAAOC,MAAKiD,EAUZlD,SAAOC,MAAKkD,EAYZnD,SAAOC,MAAKmD,EAaZpD,SAAOC,MAAK9N,EArKjB,cAA0CkO,IA0CtCpC,YAAY1R,EAAWkS,EAAYrE,GAC/B+D,MAAM5R,GAAWgV,YAAA,gBAAAC,EAAA,MAAAD,YAAA,gBAAAE,EAAA,MAAAF,YAAA,4BAAAiJ,GAAA,MAAAlJ,YAAA,iBAtCT,CACR,MACA,MACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,QACHA,YAAA,yBACmB,CAAC,MAAO,MAAO,MAAO,OAAQ,OAAQ,SAAOA,YAAA,2BAC3C,CAClB,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,QACHA,YAAA,qBAee+zB,GACL,IAAI5oC,SAASk+B,IAChB1Y,YAAW,KACP,GAAKojB,EAEE,CACH,MAAMtmB,EAAQhT,iBACVxJ,KAAK+iC,WACJpf,IACmD,IAAhDA,EAASqf,cAAcC,QAAQH,KAEvC1K,EAAQ8K,eAAK1mB,EAAO,UAPpB4b,EAAQ8K,eAAKljC,KAAK+iC,UAAW,OASlC,UAxBP5zB,yBAAenP,MACfA,KAAKkM,WAAaA,EAClBlM,KAAK6H,KAAOA,EACP7H,KAAK6H,KAAKs7B,IAAI,mBACfnjC,KAAK6H,KAAKu7B,IAAI,CAAEnuB,IAAK,mBAGzBjV,KAAK+iC,UAAYnb,KAAOmF,GAAGsW,QAC3BrjC,KAAKsjC,gBAAkBtjC,KAAKsjC,gBAAgB3wB,KAAK3S,MAoBrD,mBACI,MAAOujC,EAAUC,SAAkBtpC,QAAQgd,IAAI,CAC3ClX,KAAKkM,WAAWu3B,cAChBzjC,KAAKkM,WAAWw3B,gBAEpB/2B,uBAAY,KACR3M,KAAKujC,SAAWI,iBAAOJ,GAAW1nC,GAASA,EAAKmf,QAChDhb,KAAKwjC,SAAWG,iBAAOH,GAAW3nC,GAASA,EAAKmf,WAE5Bhb,KAAK6H,KAAKS,EAAE,YAAY/C,OAE5CvF,KAAK6H,KAAKS,EAAE,YAAY00B,IAAIpV,KAAOmF,GAAGC,SAG1C,MAAM4W,EAAkB7kC,cAAIiB,KAAK+iC,WAAYpf,IAClC,CACHxkB,GAAIwkB,EACJvqB,KAAMuqB,MAId3jB,KAAK6jC,oBAAsB,IAAIC,KAC3B,CACIC,cAAc,EACdC,SAAS,EACTC,aAAa,GAEjBjkC,KAAK6H,KAAKS,EAAE,YACZs7B,GAKRM,UAAUl3B,GACNkE,kBAAQlR,KAAKujC,UAAWY,IACpBnkC,KAAK6H,KAAKS,EAAE,kBAAkB86B,IAAI,CAC9BnuB,IAAKkvB,EAAI11B,KACT3K,MAAOqgC,EAAI/qC,KACX0S,OAAQ,IACD9L,KAAKokC,wBAAwBp3B,GAAQA,EAAKm3B,EAAI11B,aAMjE21B,wBAAwBp3B,GACpB,OAAOjO,cAAIiB,KAAKwjC,UAAWa,IAChB,CACHjrC,KAAMirC,EAAK51B,KACX/G,KAAM,OACNnC,SACIyH,GAAQA,EAAKlO,OAAS,IAChBiP,eAAKf,GAAOs3B,GAAaA,IAAaD,EAAK51B,WAOjE81B,iBAAiBC,EAAa1kB,GAC1B,IAAI2kB,EAAOzkC,KAAK6H,KAAKS,EAAE,kBAAkB/C,MACzC2L,kBAAQuzB,EAAKD,IAAc,CAACj/B,EAAOlC,KAC/BohC,EAAKD,GAAanhC,GAASyc,KAE/B9f,KAAK6H,KAAKS,EAAE,kBAAkBgR,OAAOmrB,GACrCzkC,KAAK0kC,sBAAuB,EAIhCpE,eACI,IAAImE,EAAOzkC,KAAK6H,KAAKS,EAAE,kBAAkB/C,MACzC2L,kBAAQlR,KAAK2kC,WAAYp/B,IACrB2L,kBAAQuzB,GAAM,CAACG,EAAGvhC,KACdohC,EAAKphC,GAAOkC,IAAS,QAG7BvF,KAAK6H,KAAKS,EAAE,kBAAkBgR,OAAOmrB,GACrCzkC,KAAK0kC,sBAAuB,EAIhCnE,iBACI,IAAIkE,EAAOzkC,KAAK6H,KAAKS,EAAE,kBAAkB/C,MACzC2L,kBAAQlR,KAAK6kC,mBAAmB,SAAUt/B,GACtCk/B,EAAU,IAAEl/B,IAAS,KAEzB2L,kBAAQlR,KAAK8kC,qBAAqB,SAAUv/B,GACxCk/B,EAAU,IAAEl/B,IAAS,KAEzBvF,KAAK6H,KAAKS,EAAE,kBAAkBgR,OAAOmrB,GACrCzkC,KAAK0kC,sBAAuB,EAIhClzB,QACIxR,KAAK6H,KAAKS,EAAE,kBAAkBkJ,QAGlC8xB,gBAAgBa,GACZ,OAAQp2B,eAAKo2B,GAAMp7B,IAAgBA,IAGvCg8B,kBAAkBC,GACd,MAAMhwB,EAAM,GAgBZ,OAfA9D,kBAAQ8zB,GAAgB,CAACC,EAAeC,KACpC,MAAMC,EAAaC,iBACfH,GACA,SAAUI,EAAQ9/B,EAAO0P,GAIrB,OAHI1P,GACA8/B,EAAOhjC,KAAK4S,GAETowB,IAEX,IAEAF,GAAcA,EAAWrmC,OAAS,IAClCkW,EAAIkwB,GAAWC,MAGf17B,kBAAQuL,GAAa,KAANA,IAE9B/F,EAAAe,YAAApQ,EAAAqQ,UAAA,YAAAtQ,GAAA,CAAAwQ,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,iBAhM8B,MAAEpB,EAAAc,YAAApQ,EAAAqQ,UAAA,YAAAtC,GAAA,CAAAwC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,iBACF,MAAE2H,GAAAjI,YAAApQ,EAAAqQ,UAAA,wBAC5BC,cAAU,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,kBAAwB,KAAKN,YAAApQ,EAAAqQ,UAAA,aAAArC,GAAA4C,OAAAC,yBAAA7Q,EAAAqQ,UAAA,aAAArQ,EAAAqQ,WAAAD,YAAApQ,EAAAqQ,UAAA,oBAAApC,GAAA2C,OAAAC,yBAAA7Q,EAAAqQ,UAAA,oBAAArQ,EAAAqQ,WAAAD,YAAApQ,EAAAqQ,UAAA,gBAAAU,GAAAH,OAAAC,yBAAA7Q,EAAAqQ,UAAA,gBAAArQ,EAAAqQ,WAAAD,YAAApQ,EAAAqQ,UAAA,kBAAAW,GAAAJ,OAAAC,yBAAA7Q,EAAAqQ,UAAA,kBAAArQ,EAAAqQ,WAAAD,YAAApQ,EAAAqQ,UAAA,SAAAY,GAAAL,OAAAC,yBAAA7Q,EAAAqQ,UAAA,SAAArQ,EAAAqQ,WAAArQ,GChB5C,MAAM0lC,WAA6BhxB,IAC/B5I,YAAY1R,GACR4R,MAAM5R,GAENgG,KAAKuU,QAAUvU,KAAKhG,UAAUwa,yBAAyBqtB,KACvD7hC,KAAKulC,eAAiB,IAAIC,IAAoBxlC,KAAKhG,WACnDgG,KAAKylC,eAAiB,IAAIC,KAAoB1lC,KAAKhG,WAGvD2rC,iBAAiBhuB,GACb,OAAO3X,KAAKhG,UAAUoL,gBAAgBugC,iBAAiBhuB,GAG3DiuB,iBAAiBjuB,GACb,OAAO3X,KAAKhG,UAAUoL,gBAAgBwgC,iBAAiBjuB,GAG3DkuB,cAAc1mC,GACV,OAAOa,KAAKhG,UAAUoL,gBAAgBygC,cAAc1mC,EAAI,CAAEoW,MAAO,6BAGrEkuB,cACI,OAAOzjC,KAAKylC,eAAeK,WAG/BpC,cACI,OAAO1jC,KAAKulC,eAAeO,YAIpBR,I,MAAAA,MC8CAS,QAvEUnmC,GAAzB,cAAkCqM,IAG9B,yBACI,OACK+B,gBAAMhO,KAAKnE,QACXmS,gBAAMhO,KAAKnE,KAAK0S,UAChBP,gBAAMhO,KAAKnE,KAAK0S,OAAOC,aACxBxO,KAAKnE,KAAK0S,OAAOC,WAAWC,OAASC,IAAqBG,OAIlEnD,YAAY1R,EAASmB,GAAmB,IAAjB,WAAE+Q,GAAY/Q,EAEjCyQ,MAAM5R,EAAW,CACbmF,GAFOnF,EAAUF,YAAYwb,YAAY/Q,OAAOpF,GAGhD/F,KAAM,cACNgT,UAAWg2B,EACX/1B,eAAgB,aAChB0sB,aAAc,iCACdzsB,0BAA2B,KAC3BC,0BAA2B,OAC5ByC,YAAA,qBAAAC,GAAA,MACHE,yBAAenP,MACfA,KAAKkM,WAAaA,EAElBlM,KAAK8/B,4BAA8B,IAAI+C,GAA4B7iC,KAAKhG,UAAWgG,KAAKkM,WAAYlM,KAAK6H,MAEzG7H,KAAKgmC,4BACLhmC,KAAKuS,UACD,IAAMvS,KAAK6H,KAAKo+B,SAAWjmC,KAAK8/B,4BAA4B4E,uBAC3DwB,IACOA,IACAlmC,KAAKmmC,cAAgBD,MAMrC3sB,IAAIpa,GACA,OAAOa,KAAKkM,WAAW25B,cAAc1mC,GAGzCma,OAAO3B,GAGH,OAFAA,EAASyuB,eAAiBpmC,KAAK8/B,4BAA4BiF,kBAAkBptB,EAASyuB,gBACtFpmC,KAAKmmC,eAAgB,EACdnmC,KAAKkM,WAAWy5B,iBAAiBhuB,GAG5C,qBACU/L,MAAMgH,eACN5S,KAAK8/B,4BAA4BjtB,aACvC7S,KAAK8/B,4BAA4BoE,UAAUlkC,KAAKnE,KAAKuqC,gBAGzD74B,cAAcH,GACVpN,KAAKhG,UAAUqT,kBAAkBC,MAC7Bk1B,IAAoB/nC,EAAE,2DAI9BurC,4BACIhmC,KAAKuS,UACD,IAAMvS,KAAKmmC,gBACVD,IACGlmC,KAAKkM,WAAWm6B,sBAAsBH,QAIrDj3B,GAAAe,YAAApQ,GAAAqQ,UAAA,iBApEIC,cAAU,CAAAC,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,YAAA,kBAAiB,KAAKN,YAAApQ,GAAAqQ,UAAA,sBAEhCM,YAAQC,OAAAC,yBAAA7Q,GAAAqQ,UAAA,sBAAArQ,GAAAqQ,WAAArQ,ICRb,MAAM0mC,WAA6BhyB,IAC/B5I,YAAY1R,GACR4R,MAAM5R,GAENgG,KAAKuU,QAAUvU,KAAKhG,UAAUwa,yBAAyBqtB,KAG3D,sBAAsBt9B,GAIlB,aAHuBvE,KAAKuU,QAAQgyB,mCAChChiC,IAEYyI,KAGpB44B,iBAAiBjuB,GACb,OAAO3X,KAAKhG,UAAUoL,gBAAgBwgC,iBAAiBjuB,IAIhD2uB,I,MAAAA,MC8DAE,I,GAAAA,IAhFU7mC,GAuDpB8N,SAAOC,MAAK9N,GAvDjB,cAAkCiS,IAC9B,yBACI,OAAO7R,KAAKhG,UAAUoL,gBAAgB68B,sBAG1C,kBACI,OAAOjiC,KAAKhG,UAAUoL,gBAAgB67B,YAG1Cv1B,YAAY1R,EAASmB,GAAmB,IAAjB,WAAE+Q,GAAY/Q,EACjCyQ,MAAM5R,EAAW,CACbimC,cAAe,CACXlzB,OAAQ,CACJ/I,QAASA,IAAMhE,KAAKhG,UAAUF,YAAY2S,KAAK,oCAC/C3I,MAAO,mBAGfoO,YAAa,CACTqD,MAAO,2BACPpP,QAAS,aACTqP,eAAgB,SAGxBxV,KAAKkM,WAAaA,EAElBlM,KAAKmS,aACD,IAAIC,IAAiBpS,KAAKhG,UAAWgG,KAAKuJ,aAAc,CACpD8I,YAAcxW,GACVmE,KAAKhG,UAAUF,YAAY2S,KAAK,iCAAkC,CAAEtN,GAAItD,EAAKsD,KACjFyF,QAAS,CACLkB,OAAQ,CACJ9B,QAAUnI,GAASmE,KAAK4lC,iBAAiB/pC,QAMzDmE,KAAKymC,aAAe,CAChB,CACInoC,OAAQ,uBACRooC,QAAS,sDAIjB1mC,KAAKohC,iBAAmBphC,KAAKohC,iBAAiBzuB,KAAK3S,MAGvDiO,KAAK1J,GACD,OAAOvE,KAAKkM,WAAWy6B,gBAAgBpiC,GAG3C68B,mBACIphC,KAAKhG,UAAUF,YAAY2S,KAAK,oCAGpC,uBACuBkL,GACnB3X,KAAKhG,UAAUyb,mBAAmBC,YAAY,CAC1CC,QAAS,gCACTC,UAAWC,UACP,IACI7V,KAAKhG,UAAUwd,gBAAgBxE,gBACzBhT,KAAKkM,WAAW05B,iBAAiBjuB,GACvC3X,KAAKhG,UAAUwd,gBAAgBrE,SAC/BnT,KAAKuJ,aAAakJ,QACpB,MAAOrF,GACLpN,KAAKhG,UAAUwd,gBAAgBrE,SAC/BnT,KAAKhG,UAAUqT,kBAAkBC,MAC7B,yDACAF,KAIZ2I,SAAU,SACVC,QAAS,SACTC,YAAa,+CAGxBjG,YAAApQ,GAAAqQ,UAAA,sBA7EIM,YAAQC,OAAAC,yBAAA7Q,GAAAqQ,UAAA,sBAAArQ,GAAAqQ,WAAAD,YAAApQ,GAAAqQ,UAAA,eAIRM,YAAQC,OAAAC,yBAAA7Q,GAAAqQ,UAAA,eAAArQ,GAAAqQ,WAAAD,YAAApQ,GAAAqQ,UAAA,oBAAAtQ,IAAA6Q,OAAAC,yBAAA7Q,GAAAqQ,UAAA,oBAAArQ,GAAAqQ,WAAArQ,ICOEgnC,I,GAAAA,GAXdpnC,aACG,CAACxF,EAAWyF,IACR,IAAI4iC,GAAsBroC,EAAWyF,IACzC,wBACHE,CAAAC,GAJD,cAK2B/E,IAAMgF,UAC7BC,SACI,OAAOlF,cAACisC,EAAoB,IAAK7mC,KAAKC,YAE7CL,GCEcknC,I,GAAAA,GAXdtnC,aACG,CAACxF,EAAWyF,IACR,IAAIsmC,GAAoB/rC,EAAWyF,IACvC,sBACHE,CAAAC,GAJD,cAKyB/E,IAAMgF,UAC3BC,SACI,OAAOlF,cAACmsC,EAAkB,IAAK/mC,KAAKC,YAE3CL,GCEconC,OAXdxnC,aACG,CAACxF,EAAWyF,IACR,IAAI+mC,GAAoBxsC,EAAWyF,IACvC,sBACHE,CAAAC,GAJD,cAKyB/E,IAAMgF,UAC3BC,SACI,OAAOlF,cAACqsC,EAAkB,IAAKjnC,KAAKC,YAE3CL,GCTG3G,IAAsBC,OAAO,eAAeC,SAAS,CACjDC,KAAM,iBACNC,OAAQ,CACJ,CACID,KAAM,4BACNE,QAAS,UACTyB,SAAU,CACN,CACI3B,KAAM,iCACNE,QAAS,GACTC,UAAWytC,GACXvtC,MAAO6sC,GACPt5B,KAAM,CACFrP,MAAO,sCAGf,CACIvE,KAAM,mCACNE,QAAS,UACTC,UAAWqtC,GACXntC,MAAOmoC,GAEX,CACIxoC,KAAM,iCACNE,QAAS,YACTC,UAAWutC,GACXrtC,MAAO6rC,OAKvBvqB,KAAM,CACF,CACIpd,MAAO,2BACPqd,MAAO,EACPnV,KAAM,UACNoV,MAAO,sC,2ICvCR,MAAMisB,UAA4Bz7B,IAC7CC,YAAYC,GACRC,MAAMD,GAGVE,QACI,MAAO,CACHC,OAAQ,CACJ,CACI1S,KAAM,QACN0K,MAAO,oDACPkG,YACI,0DACJ+B,MAAO,yBAEX,CACI3S,KAAM,YACN0K,MAAO,yDACPkG,YACI,+DACJ+B,MAAO,mBAEX,CACI3S,KAAM,WACN0K,MAAO,wDACPkG,YACI,8DACJ+B,MAAO,sBC3BZ,MAAMo7B,UAAsC17B,IACvDC,YAAYC,GACRC,MAAMD,GAGVE,QACI,MAAO,CACHC,OAAQ,CACJ,CACI1S,KAAM,WACN0K,MACI,kEACJ4D,KAAM,WACNsC,YACI,wEACJ+B,MAAO,CACH,WACA,SACA,QACA,wEAGR,CACI3S,KAAM,kBACN0K,MACI,0EACJkG,YACI,gFACJ+B,MAAO,gCACPrE,KAAM,eCmCX0/B,OA5DexnC,EAA9B,cAAuCqM,IAGnCP,YAAY1R,EAASmB,GAAmB,IAAjB,WAAE+Q,GAAY/Q,EACjCyQ,MAAM5R,EAAW,CACbmF,GAAInF,EAAUD,UAAUstC,KAAKloC,GAC7B/F,KAAM,OACNgT,UAAW86B,EACX76B,eAAgB,YAChBC,0BAA2B,KAC3BC,0BAA2Bi2B,IAAoB/nC,EAAE,kDACjDiS,yBAAyB,IAC1BqC,YAAA,yBAXa,MAYhB/O,KAAKkM,WAAaA,EAGtBqN,MACI,OAAOvZ,KAAKkM,WAAW4M,cAG3BQ,OAAOtM,GACH,MAAM2K,EAAW2vB,gBAAM,GAAItnC,KAAKnE,MAMhC,OALA8b,EAASnR,UAAYwG,EAAKxG,UAC1BmR,EAASlR,SAAWuG,EAAKvG,SACzBkR,EAAS4vB,MAAQv6B,EAAKu6B,MACtB5vB,EAAS6vB,MAAQ,KAEVxnC,KAAKkM,WAAWoN,OAAO3B,GAIlC9K,WAAW4e,GACPzrB,KAAK6H,KAAKm1B,IAAI,CACVx2B,UAAWilB,EAAOgc,aAAehc,EAAOgc,YAAYjhC,UACpDC,SAAUglB,EAAOgc,aAAehc,EAAOgc,YAAYhhC,SACnD8gC,MAAO9b,EAAO8b,QAItBh6B,cAAcD,GAENA,EAAMyG,YACNzG,EAAMyG,aAAeC,IAAgB0zB,WAErC1nC,KAAK6H,KACAS,EAAE,SACFujB,WACG,sDAGR7rB,KAAKhG,UAAUqT,kBAAkBC,MAC7Bk1B,IAAoB/nC,EAChB,wDAEJ6S,KAIf0C,WAAA,CAAApQ,EAAAqQ,UAAA,cA5BIupB,YAAQhpB,OAAAC,yBAAA7Q,EAAAqQ,UAAA,cAAArQ,EAAAqQ,WAAArQ,GClCb,MAAM+nC,UAAkCrzB,IACpC5I,YAAY1R,GACR4R,MAAM5R,GAENgG,KAAKuU,QAAUvU,KAAKhG,UAAU4tC,YAAYC,OAAOC,iBAAiBT,KAGtEvuB,cACI,OAAO5e,QAAQk+B,QAAQp4B,KAAKhG,UAAUD,UAAUstC,MAGpD/tB,OAAO3B,GACH,OAAO3X,KAAKhG,UAAUD,UAAUguC,kBAAkBpwB,GAGtDqwB,mBAAmBC,EAAQtwB,GACvB,OAAO3X,KAAKuU,QAAQ2zB,eAAeD,EAAQtwB,IAIpCgwB,I,EAAAA,IC0BAQ,OA3CyBvoC,EAAxC,cAAiDqM,IAC7CP,YAAY1R,EAASmB,GAAuB,IAArB,eAAEsE,GAAgBtE,EACrCyQ,MAAM5R,EAAW,CACbZ,KAAM,kBACNgT,UAAW+6B,EACX76B,0BAA2Bk2B,IAAoB/nC,EAC3C,6DAEJ8R,0BAA2B,KAC3BC,yBAAyB,IAE7BxM,KAAKkM,WAAazM,EAGtBsN,OAAOC,GACH,OAAOhN,KAAKkM,WAAW87B,mBACnBhoC,KAAKhG,UAAUD,UAAUstC,KAAKloC,GAC9B,CACIipC,YAAap7B,EAAKq7B,SAClBC,QAAS9mC,OAAOlF,SAASguB,SAMrCie,gBAAgBlD,GACZrlC,KAAKwoC,sBACLxoC,KAAK6H,KAAK4gC,QAGdt7B,cAAcG,GACNA,EAAMN,MAAiC,aAAzBM,EAAMN,KAAK+e,UACzB/rB,KAAK6H,KAAKgkB,WACN,uEAGJ7rB,KAAK6H,KAAKgkB,WACN,qEAIf7b,WAAA,CAAApQ,EAAAqQ,UAAA,mBAjBIupB,YAAQhpB,OAAAC,yBAAA7Q,EAAAqQ,UAAA,mBAAArQ,EAAAqQ,WAAArQ,G,uBCgBE1E,mBAvCf,SAA0CC,GAGtC,IAHuC,mCACvCutC,EAAkC,EAClCjuC,GACHU,EACG,MAAM,KAAE0M,GAAS6gC,EACjB,OACI9tC,cAAA,OAAAG,SACIH,cAACqN,IAAiB,CAACJ,KAAMA,EAAMpN,EAAGA,EAAEM,SAChCM,eAAA,OAAKU,UAAU,MAAKhB,SAAA,CAChBH,cAAA,OAAKmB,UAAU,iBAAgBhB,SAC3BH,cAACwN,IAAa,CACVC,MAAOR,EAAKS,EAAE,YACd7N,EAAGA,EACHe,gBAAgB,mBAChBmtC,aAAa,mBAGrB/tC,cAAA,OAAKmB,UAAU,iBAAgBhB,SAC3BH,cAACguC,IAAiB,CAACvgC,MAAOR,EAAKS,EAAE,gBAErC1N,cAAA,OAAKmB,UAAU,iBAAgBhB,SAC3BH,cAACwN,IAAa,CACVC,MAAOR,EAAKS,EAAE,mBACd7N,EAAGA,EACHe,gBAAgB,mBAChBmtC,aAAa,6B,QCgB1BztC,I,EAAAA,eAzCf,SAA+BC,GAAmC,IAAlC,yBAAE0tC,EAAwB,EAAEpuC,GAAGU,EAC3D,MAAM,KAAE0M,GAASghC,EAEjB,OACIjuC,cAACqN,IAAiB,CAACJ,KAAMA,EAAMpN,EAAGA,EAAEM,SAChCH,cAAA,OAAKmB,UAAU,sBAAqBhB,SAChCM,eAAA,OAAKU,UAAU,wBAAuBhB,SAAA,CAClCH,cAAA,OAAKmB,UAAU,kDAAiDhB,SAC5DH,cAACwN,IAAa,CACV3N,EAAGA,EACH4N,MAAOR,EAAKS,EAAE,aACd9M,gBAAgB,uBAIxBZ,cAAA,OAAKmB,UAAU,kDAAiDhB,SAC5DH,cAACwN,IAAa,CACV3N,EAAGA,EACH4N,MAAOR,EAAKS,EAAE,YACd9M,gBAAgB,uBAIxBZ,cAAA,OAAKmB,UAAU,kDAAiDhB,SAC5DH,cAACwN,IAAa,CACV3N,EAAGA,EACH4N,MAAOR,EAAKS,EAAE,SACd9M,gBAAgB,iCCjB7BstC,MAXdtpC,aACG,CAACxF,EAAWyF,IACR,IAAI0oC,EAAmCnuC,EAAWyF,IACtD,qCACHE,CAAAC,EAJD,cAKwC/E,IAAMgF,UAC1CC,SACI,OAAOlF,cAACmuC,EAAiC,IAAK/oC,KAAKC,YAE1DL,ECXD,MAAMopC,UAA+BnuC,IAAMgF,UACvCC,SACI,OAAOlF,cAACquC,EAA8B,IAAKjpC,KAAKC,SAIzC+oC,QC2CA9tC,I,EAAAA,eA1Cf,SAAgCC,GAAmC,IAAlC,yBAAE0tC,EAAwB,EAAEpuC,GAAGU,EAC5D,MAAM,YAAEW,EAAW,WAAEoQ,GAAe28B,EAEpC,OACIxtC,eAAC4mB,IAAO,CAACxoB,MAAOovC,EAA0BpuC,EAAGA,EAAGqC,uBAAuB,cAAa/B,SAAA,CAChFH,cAACW,IAAa,CAAAR,SACVH,cAAA,OAAKmB,UAAU,sBAAqBhB,SAChCH,cAAA,OAAAG,SAAMN,EAAE,qDAGhBY,eAAA,OAAKU,UAAU,8DAA6DhB,SAAA,CACxEM,eAAA,OAAAN,SAAA,CACIH,cAAA,MAAImB,UAAU,kCAAiChB,SAAC,qBAChDH,cAAA,OAAKmB,UAAU,kBAAiBhB,SAC5BH,cAACoB,IAAgB,CACbF,YAAaA,EACbG,aAAcA,IAAMrB,cAACsuC,IAAc,CAACC,QAAQ,IAASpuC,SAEpDA,IAAMH,cAACouC,EAAsB,CAACH,yBAA0BA,WAIrExtC,eAAA,OAAAN,SAAA,CACIH,cAAA,MAAImB,UAAU,kCAAiChB,SAC1CN,EAAE,+CAEPG,cAAA,OAAKmB,UAAU,kBAAiBhB,SAC5BH,cAACoB,IAAgB,CAACF,YAAaA,EAAaG,aAAcA,IAAMrB,cAACwuC,IAAoB,IAAIruC,SACpFA,IAAMH,cAACkuC,EAAyB,CAACrpC,eAAgByM,oBCtB/Dm9B,MAXd7pC,aACG,CAACxF,EAAWyF,IACR,IAAI2nC,EAAyBptC,EAAWyF,IAC5C,2BACHE,CAAAC,EAJD,cAK8B/E,IAAMgF,UAChCC,SACI,OAAOlF,cAAC0uC,EAAuB,IAAKtpC,KAAKC,YAEhDL,ECTG3G,IAAsBC,OAAO,eAAeC,SAAS,CACjDC,KAAM,eACNC,OAAQ,CACJ,CACID,KAAM,0BACNE,QAAS,eACTyB,SAAU,CACN,CACI3B,KAAM,+BACNG,UAAW8vC,EACX5vC,MAAOkuC,MAKvB5sB,KAAM,CACF,CACIpd,MAAO,4BACPqd,MAAO,EACPnV,KAAM,WACN0jC,QAAS,CACL,CACI5rC,MAAO,gBACPqd,MAAO,EACPC,MAAO,sC,mKC2D/B,SAASuuB,EAAgBjvC,GAAwB,IAAvB,iBAAEkvC,GAAkBlvC,EACtCmvC,EAAe,KACnB,OAAQD,EAAiB5a,MACrB,KAAK8a,IAAkBC,iBACnBF,EAAe9uC,cAACivC,IAAqB,IACrC,MACJ,KAAKF,IAAkB/V,UACnB8V,EAAe9uC,cAACkvC,IAAqB,IAK7C,OACIlvC,cAAA,OAAKmB,UAAU,+DAA8DhB,SACzEM,eAAA,OAAKU,UAAU,8CAA6ChB,SAAA,CACvD2uC,EAEDruC,eAAA,OAAKU,UAAU,mBAAkBhB,SAAA,CAC7BM,eAAA,KAAGU,UAAU,qBAAoBhB,SAAA,CAAE0uC,EAAiBrwC,KAAK,YACzDwB,cAAA,KAAGmB,UAAU,gCAA+BhB,SAAC,SAC7CM,eAAA,KAAGU,UAAU,gCAA+BhB,SAAA,CACvCkD,IAAoB8rC,gBAAgB,8BAQ9C7uC,mBApGf,SAA8BC,GAAiC,IAAhC,uBAAE6uC,EAAsB,EAAEvvC,GAAGU,EACxD,MAAM,cAAE8uC,EAAa,iBAAEC,EAAgB,oBAAEC,EAAmB,iBAAEV,EAAgB,YAAE3tC,GAC5EkuC,EACEnmB,EAAU+D,MAASwb,IAAInlC,IAAoB8rC,gBAAiB,QAElE,OACI1uC,eAAC4mB,IAAO,CAAAlnB,SAAA,CACJH,cAACW,IAAa,CAAAR,SACVH,cAAA,OAAKmB,UAAU,sBAAqBhB,SAChCM,eAACyM,IAAa,CAACC,UAAU,2CAA0ChN,SAAA,CAC/DH,cAAA,QAAMmB,UAAU,iDAAgDhB,SAC5DH,cAAA,KAAGmB,UAAU,sCACV,iBAMnBnB,cAAA,OAAKmB,UAAU,gCAA+BhB,SAC1CH,cAACoB,IAAgB,CAACF,YAAaA,EAAaG,aAAcA,IAAMrB,cAACwvC,IAAsB,IAAIrvC,SACtFA,IACGM,eAACR,IAAMC,SAAQ,CAAAC,SAAA,CACXH,cAAC4uC,EAAgB,CAACC,iBAAkBA,IAEpCpuC,eAAA,OAAKU,UAAU,4BAA2BhB,SAAA,CACtCM,eAAA,OAAAN,SAAA,CACIM,eAAA,OAAKU,UAAU,yBAAwBhB,SAAA,CACnCH,cAAA,KAAAG,SAAIN,EAAE,gDACNG,cAAA,KAAAG,SAAIN,EAAE,mDAGVY,eAAA,OAAKU,UAAU,4CAA2ChB,SAAA,CACtDH,cAAA,KAAAG,SAAIN,EAAE,8CACNG,cAAA,KAAAG,SACKgD,IAAcC,OAAO6lB,EAAS,CAC3B7lB,OAAQC,IAAoBC,QAAQC,YAKhDvD,cAAA,OAAKmB,UAAU,yBAAwBhB,SACnCH,cAAA,KAAAG,SAAG,+BAIXH,cAAA,OAAKmB,UAAU,yBAEfnB,cAAA,OAAAG,SACIH,cAACiJ,IAAS,CACNpJ,EAAGA,EACHuJ,QAASimC,EACTzkC,SAAU0kC,EACVnuC,UAAU,+CACV+H,MAAM,uDAQlClJ,cAACyvC,IAAmB,CAAC1uC,YAAawuC,U,OCjC/BjvC,mBArCf,SAA8CC,GAAiD,IAAhD,uCAAEmvC,EAAsC,EAAE7vC,GAAGU,EACxF,MAAM,kBAAEwuC,EAAiB,aAAEY,EAAY,YAAEzuC,GAAgBwuC,EACzD,OACIjvC,eAAC4mB,IAAO,CAAAlnB,SAAA,CACJH,cAACW,IAAa,CAAAR,SACVH,cAAA,OAAKmB,UAAU,sBAAqBhB,SAChCM,eAACyM,IAAa,CAACC,UAAU,2CAA0ChN,SAAA,CAC/DH,cAAA,QAAMmB,UAAU,iDAAgDhB,SAC5DH,cAAA,KAAGmB,UAAU,sCACV,sBAMnBnB,cAAA,OAAKmB,UAAU,MAAKhB,SACfgE,cAAI4qC,GAAoBF,GAEjB7uC,cAAC4vC,IAAoB,CACjBC,0BAA0B,EAC1BhB,iBAAkBA,EAClB3tC,YAAaA,EACbyH,UAAWyK,gBAAMu8B,IAAiBA,EAAaG,QAAQvrC,KAAOsqC,EAAiBtqC,IAC1EsqC,EAAiBtqC,c,gBCmFlD,SAASqrC,EAAoBjwC,GAA8C,IAA7C,iBAAEkvC,EAAgB,MAAEkB,GAAQ,EAAK,MAAEC,GAAOrwC,EAChEswC,EAAwB,GACxBC,EAAuB,GAC3B,OAAQrB,EAAiB5a,MACrB,KAAK8a,IAAkB/V,UACnBiX,EAAwB,WACxBC,EAAuB,sBACvB,MACJ,KAAKnB,IAAkBC,iBACnBiB,EAAwB,UACxBC,EAAuB,wBACvB,MACJ,QACID,EAAwB,WAEhC,OACIxvC,eAAA,OAAKU,UAAS,0DAAA4G,OAA4DkoC,GAAwB9vC,SAAA,CAC9FH,cAAA,OAAAG,SACIH,cAAA,KAAGmB,UAAWoB,YAAS,4BAA6B2tC,OAExDzvC,eAAA,OAAAN,SAAA,CACIH,cAAA,KAAGmB,UAAU,mDAAkDhB,SAAE4vC,EAAQ,WAAa,aACtF/vC,cAAA,KAAAG,SAAI0uC,EAAiBrwC,OACrBwB,cAAA,KAAAG,SACIH,cAACmwC,IAAiB,CAACH,MAAO58B,gBAAM48B,GAASnB,EAAiBmB,MAAQA,YAOtF,SAASI,EAAoB5rC,GAAyD,IAAxD,0BAAE6rC,EAAyB,oBAAEC,EAAmB,EAAEzwC,GAAG2E,EAC/E,OAAI8rC,EAAoBC,mBAAmB18B,OAAS28B,IAAqBC,MAyC7E,SAA8CJ,EAA2BC,EAAqBzwC,GAC1F,MAAM6wC,EAAgB,GACtBA,EAAcjpC,KAAKzH,cAAA,KAAAG,SAAG,wCAClBiT,gBAAMk9B,EAAoBrnB,SAC1BynB,EAAcjpC,KACVhH,eAAA,KAAAN,SAAA,CAAG,gBACe,IACbgD,IAAcC,OAAOktC,EAAoBK,gBAAiB,CACvDvtC,OAAQC,IAAoBC,QAAQC,OACpC,IAAI,sBACWvD,cAACmwC,IAAiB,CAACH,MAAOK,EAA0BO,oBAAoBZ,QAAS,OAAK,IACxGK,EAA0BO,oBAAoBpyC,KAAK,oBAI5DkyC,EAAcjpC,KACVhH,eAAA,KAAAN,SAAA,CACKkwC,EAA0BO,oBAAoBpyC,KAAK,2CAAyC,IAC5F2E,IAAcC,OAAOktC,EAAoBrnB,QAAS,CAC/C7lB,OAAQC,IAAoBC,QAAQC,WAMpD,OAAOmtC,EAjEIG,CAAqCR,EAA2BC,GAK/E,SAAyCD,EAA2BC,EAAqBzwC,GACrF,MAAM6wC,EAAgB,GACjBL,EAA0BS,WAC3BJ,EAAcjpC,KACVhH,eAAA,KAAAN,SAAA,CAAG,QACMH,cAAA,UAAAG,SAASmwC,EAAoBR,QAAQtxC,OAAc,yCAAuC,IAC9F2E,IAAcC,OAAOitC,EAA0BU,aAAc,CAC1D3tC,OAAQC,IAAoBC,QAAQC,OACrC,QAwBf,OAnBAmtC,EAAcjpC,KAAKzH,cAACgxC,EAAqB,CAACX,0BAA2BA,EAA2BxwC,EAAGA,KACnG6wC,EAAcjpC,KACVhH,eAAA,KAAGU,UAAU,kBAAiBhB,SAAA,CAAC,gBAE3BM,eAAA,QAAMU,UAAU,oBAAmBhB,SAAA,CAC9B,IACAgD,IAAcC,OAAOktC,EAAoBK,gBAAiB,CACvDvtC,OAAQC,IAAoBC,QAAQC,OACpC,OACD,qBACY,IACnB9C,eAAA,QAAMU,UAAU,oBAAmBhB,SAAA,CAC/BH,cAACmwC,IAAiB,CAACH,MAAOK,EAA0BO,oBAAoBZ,QAAS,OAAK,IACrFK,EAA0BO,oBAAoBpyC,QAC3C,IAAI,oBAKbkyC,EAnCAO,CAAgCZ,EAA2BC,EAAqBzwC,GAkE3F,SAASmxC,EAAqBnoC,GAAoC,IAAnC,0BAAEwnC,EAAyB,EAAExwC,GAAGgJ,EAC3D,OAAIuK,gBAAMi9B,EAA0BU,cACzB/wC,cAAA,KAAAG,SAAG,4CAGVM,eAAA,KAAAN,SAAA,CAAG,uCACsC,IACpCgD,IAAcC,OAAOitC,EAA0BU,aAAc,CAC1D3tC,OAAQC,IAAoBC,QAAQC,OACrC,OAMf,SAAS2tC,EAAsBC,GAAiD,IAAhD,0BAAEd,EAAyB,eAAEe,GAAgBD,EACzE,OAAI/9B,gBAAMg+B,IAGyB,IAA/BA,EAAeC,YAFR,KAOP5wC,eAAA,OAAKU,UAAU,wBAAuBhB,SAAA,CAClCM,eAAA,KAAGU,UAAU,qBAAoBhB,SAAA,CAAC,iCACC,IAC9BogB,IAAkBnd,OAAOguC,EAAeC,YAAa,CAClD5wB,SAAU,QACV,IAAI,oBACU4vB,EAA0BO,oBAAoBpyC,KAAK,oBAEzEwB,cAAA,OAAAG,SACKgE,cAAIitC,EAAeE,WAAW,CAACC,EAAU9oC,IAElChI,eAAA,OAAKU,UAAqB,IAAVsH,EAAc,qBAAuB,GAAGtI,SAAA,CACpDH,cAAA,KAAAG,SAAIoxC,EAASl2B,cACbrb,cAAA,KAAGmB,UAAU,oBAAmBhB,SAC3BogB,IAAkBnd,OAAOmuC,EAAS/wB,OAAQ,CACvCC,SAAU,oBAW9C,SAAS+wB,EAAmBC,GAAsB,IAArB,YAAE1wC,EAAW,EAAElB,GAAG4xC,EAC3C,MAAM,OAAE9nC,EAAM,KAAEyI,EAAO,IAAOrR,EAC9B,IAAIgC,EAAOsY,EACPq2B,EAAe7xC,EAAE,yDAA0D,CAC3EgvC,iBAAkBz8B,EAAKy8B,mBAE3B,GAAIz8B,EAAKu/B,iBAAkB,CACvB,MAAMA,EAAmBxuC,IAAcC,OAAOgP,EAAKu/B,iBAAkB,CACjEvuC,OAAQC,IAAoBC,QAAQsuC,WAExC7uC,EAAQlD,EAAE,iDACVwb,EAAcxb,EAAE,6DAA8D,CAC1EmpB,UAAW2oB,EACX9C,iBAAkBz8B,EAAKy8B,wBAG3B9rC,EAAQlD,EAAE,iDACVwb,EAAcxb,EAAE,sDAAuD,CACnEgvC,iBAAkBz8B,EAAKy8B,mBAG/B,OACI7uC,cAACyJ,IAAQ,CAAC1I,YAAaA,EAAa2I,2BAA2B,EAAOgX,kBAAkB,EAAMvgB,SAC1FM,eAAA,OAAAN,SAAA,CACIH,cAAA,OAAKmB,UAAU,cAAahB,SACxBH,cAAA,KAAGmB,UAAU,+BAEjBnB,cAAA,OAAKmB,UAAU,gBAAehB,SAC1BH,cAAA,MAAAG,SAAK4C,MAET/C,cAAA,OAAKmB,UAAU,cAAahB,SACxBH,cAAA,KAAAG,SAAIkb,MAERrb,cAAA,OAAKmB,UAAU,gBAAehB,SAC1BH,cAACiJ,IAAS,CAACpJ,EAAGA,EAAGqJ,MAAOwoC,EAActoC,QAASO,EAAOkoC,+BAO3DvxC,mBAnSf,SAAuCC,GAA0C,IAAzC,gCAAEuxC,EAA+B,EAAEjyC,GAAGU,EAC1E,MAAM,0BACF8vC,EAAyB,uBACzB0B,EAAsB,oBACtBzB,EAAmB,qBACnB0B,EAAoB,sBACpBC,EAAqB,YACrB/wC,EAAW,WACXgxC,GACAJ,EAEJ,OACIrxC,eAAC4mB,IAAO,CAAAlnB,SAAA,CACJH,cAACW,IAAa,CAAAR,SACVH,cAAA,OAAKmB,UAAU,sBAAqBhB,SAChCM,eAACyM,IAAa,CAACC,UAAU,2CAA0ChN,SAAA,CAC/DH,cAAA,QAAMmB,UAAU,iDAAgDhB,SAC5DH,cAAA,KAAGmB,UAAU,sCACV,uBAMnBnB,cAAA,OAAKmB,UAAU,wBAAuBhB,SAClCM,eAAA,OAAAN,SAAA,CACIH,cAAA,MAAImB,UAAU,kCAAiChB,SAAC,qCAChDH,cAAA,OAAKmB,UAAU,YAAWhB,SACtBH,cAACoB,IAAgB,CACbF,YAAaA,EACbG,aAAcA,IAAMrB,cAACmyC,IAA4B,IAAIhyC,SAEpDA,IACGM,eAACR,IAAMC,SAAQ,CAAAC,SAAA,CACXM,eAAA,OAAKU,UAAU,wCAAuChB,SAAA,CAClDH,cAAC4vC,EAAoB,CACjBf,iBAAkByB,EAAoBR,QACtCE,MAAOM,EAAoB9vB,SAG/BxgB,cAAA,OAAAG,SACIH,cAAA,KAAGmB,UAAU,wDAGjBnB,cAAC4vC,EAAoB,CACjBf,iBAAkBwB,EAA0BO,oBAC5Cb,OAAK,OAIbtvC,eAAA,OAAKU,UAAU,wDAAuDhB,SAAA,CAClEM,eAAA,OAAKU,UAAU,qBAAoBhB,SAAA,CAC/BH,cAACowC,EAAoB,CACjBC,0BAA2BA,EAC3BC,oBAAqBA,EACrBzwC,EAAGA,IAEPG,cAACkxC,EAAsB,CACnBb,0BAA2BA,EAC3Be,eAAgBf,EAA0B+B,6BAIhDh/B,gBAAM6+B,IACJxxC,eAAA,OAAKU,UAAU,eAAchB,SAAA,CACzBH,cAAA,KAAGmB,UAAU,qBAAoBhB,SAAC,mBAClCH,cAACqyC,IAAc,CAACC,WAAYL,EAAuBpyC,EAAGA,OAI9DG,cAAA,OAAKmB,UAAU,yBAEfnB,cAAA,OAAAG,SACIH,cAACiJ,IAAS,CACNpJ,EAAGA,EACH+K,SAAUonC,EACV5oC,QAAS8oC,EACT/wC,UAAU,qEACV+H,MAAK,YAAAnB,OAAcsoC,EAA0BO,oBAAoBpyC,yBAWrGwB,cAACwxC,EAAmB,CAACzwC,YAAagxC,EAAwBlyC,EAAGA,U,iBCNzE,MAAM0yC,EAAa7yC,oBAAS,SAAmBC,GAAgB,IAAf,MAAEd,EAAK,EAAEgB,GAAGF,EACxD,MAAM,YACF6yC,EAAW,mBACXC,EACArzC,WAAW,yBAAE2C,IACblD,EACJ,OAAI4zC,EAEIhyC,eAAA,OAAKU,UAAU,eAAchB,SAAA,CACzBH,cAAA,KAAAG,SAAG,mBACHH,cAACqyC,IAAc,CAACC,WAAYvwC,EAAyBkwC,sBAAuBpyC,EAAGA,OAKnFG,cAAC0yC,IAAqB,CAACjlC,MAAO+kC,EAAatpC,MAAM,iDAAiDrJ,EAAGA,OAKlGS,mBAlGf,SAA4BC,GAA+B,IAA9B,qBAAEoyC,EAAoB,EAAE9yC,GAAGU,EACpD,MAAMqyC,EAASC,sBACTC,EAAWC,wBAEjB,IAAKH,IAAWE,EAGZ,OAAO9yC,cAAA,OAAAG,SAAK,YAEhBwyC,EAAqBK,UAAUJ,GAC/B,MAAM,iBAAE/D,EAAgB,kBAAEoE,EAAiB,oBAAEC,EAAmB,YAAEhyC,GAAgByxC,EAUlF,OACIlyC,eAACskC,IAAW,CACRlmC,MAAO8zC,EACP9lC,SAAW/B,IAXDqoC,MAId,MAAMC,EAAcN,EAASO,WAAWC,eACxCX,EAAqBY,iBAAiBH,IAO9BD,GACAroC,EAAMC,iBACND,EAAME,mBACR7K,SAAA,CAEFH,cAACW,IAAa,CAAAR,SACVH,cAACwzC,IAAiB,MAGtBxzC,cAAA,MAAImB,UAAU,kCAAiChB,SAAEN,EAAE,uCAEnDG,cAACoB,IAAgB,CAACF,YAAaA,EAAaG,aAAcA,IAAMrB,cAACwvC,IAAsB,IAAIrvC,SACtFA,IACGM,eAACR,IAAMC,SAAQ,CAAAC,SAAA,CACXH,cAAC4uC,EAAgB,CAACC,iBAAkBA,IAEpC7uC,cAAA,OAAKmB,UAAU,kBAAiBhB,SAC5BM,eAAA,OAAKU,UAAU,YAAWhB,SAAA,CACtBH,cAAA,OAAKmB,UAAU,0BAAyBhB,SACpCH,cAACuyC,EAAU,CAAC1zC,MAAO8zC,EAAsB9yC,EAAGA,MAGhDY,eAAA,OAAKU,UAAU,mBAAkBhB,SAAA,CAC7BM,eAAA,OAAKU,UAAU,yBAAwBhB,SAAA,CACnCH,cAAA,KAAAG,SAAIN,EAAE,uDACNG,cAAA,KAAAG,SAAIN,EAAE,0DAGVG,cAAA,OAAKmB,UAAU,4BAGnBnB,cAACiJ,IAAS,CACNpJ,EAAGA,EACHiN,KAAK,SACLlC,SAAUqoC,EACV9xC,UAAU,+CACV+H,MAAM,sDAQ9BlJ,cAACyzC,IAAmB,CAAC1yC,YAAamyC,UAgC9C,SAAStE,EAAgBpqC,GAAwB,IAAvB,iBAAEqqC,GAAkBrqC,EACtCsqC,EAAe,KACf4E,EAAkB,GAEtB,OAAQ7E,EAAiB5a,MACrB,KAAK8a,IAAkBC,iBACnB0E,EAAkB,UAClB5E,EAAe9uC,cAACivC,IAAqB,CAAC0E,SAAU,QAChD,MACJ,KAAK5E,IAAkB/V,UACnB0a,EAAkB,WAClB5E,EAAe9uC,cAACkvC,IAAqB,CAACyE,SAAU,QAKxD,OACI3zC,cAAA,OAAKmB,UAAS,oCAAA4G,OAAsC2rC,EAAe,uBAAsBvzC,SACrFM,eAAA,OAAKU,UAAU,8CAA6ChB,SAAA,CACvD2uC,EAEDruC,eAAA,OAAKU,UAAU,mBAAkBhB,SAAA,CAC7BH,cAAA,KAAGmB,UAAU,qBAAoBhB,SAAE0uC,EAAiBrwC,OACpDwB,cAAA,KAAGmB,UAAU,gCAA+BhB,SACxCH,cAACmwC,IAAiB,CAACH,MAAOnB,EAAiBmB,kBChCnE,MAAMuC,EAAa7yC,oBAAS,SAAmBC,GAAgB,IAAf,MAAEd,EAAK,EAAEgB,GAAGF,EACxD,MAAM,YACF6yC,EAAW,mBACXC,EACArzC,WAAW,yBAAE2C,IACblD,EACJ,OAAI4zC,EAEIhyC,eAAA,OAAKU,UAAU,eAAchB,SAAA,CACzBH,cAAA,KAAAG,SAAG,mBACHH,cAACqyC,IAAc,CAACC,WAAYvwC,EAAyBkwC,sBAAuBpyC,EAAGA,OAKnFG,cAAC0yC,IAAqB,CAACjlC,MAAO+kC,EAAatpC,MAAM,iDAAiDrJ,EAAGA,OAKlGS,mBA9Gf,SAA6BC,GAAgC,IAA/B,sBAAEqzC,EAAqB,EAAE/zC,GAAGU,EACtD,MAAMqyC,EAASC,sBACTC,EAAWC,wBAEjB,IAAKH,IAAWE,EAGZ,OAAO9yC,cAAA,OAAAG,SAAK,YAEhByzC,EAAsBZ,UAAUJ,GAChC,MAAM,iBACF/D,EAAgB,kBAChBoE,EAAiB,oBACjBC,EAAmB,YACnBhyC,EACA9B,WAAW,yBAAE2C,IACb6xC,EAUJ,OACInzC,eAACskC,IAAW,CACRlmC,MAAO+0C,EACP/mC,SAAW/B,IAXDqoC,MAId,MAAMC,EAAcN,EAASO,WAAWC,eACxCM,EAAsBL,iBAAiBH,IAO/BD,GACAroC,EAAMC,iBACND,EAAME,mBACR7K,SAAA,CAEFH,cAACW,IAAa,CAAAR,SACVH,cAACwzC,IAAiB,MAGtBxzC,cAAA,OAAKmB,UAAU,yCAAwChB,SACnDM,eAAA,OAAAN,SAAA,CACIH,cAAA,MAAImB,UAAU,kCAAiChB,SAAEN,EAAE,uCAEnDG,cAACoB,IAAgB,CAACF,YAAaA,EAAaG,aAAcA,IAAMrB,cAACwvC,IAAsB,IAAIrvC,SACtFA,IACGM,eAACR,IAAMC,SAAQ,CAAAC,SAAA,CACXH,cAAC4uC,EAAgB,CAACC,iBAAkBA,IAEpCpuC,eAAA,OAAKU,UAAU,kBAAiBhB,SAAA,CAC5BH,cAAA,OAAKmB,UAAU,0BAAyBhB,SACpCH,cAACuyC,EAAU,CAAC1zC,MAAO+0C,EAAuB/zC,EAAGA,MAGjDY,eAAA,OAAKU,UAAU,mBAAkBhB,SAAA,CAC7BM,eAAA,OAAKU,UAAU,yBAAwBhB,SAAA,CACnCH,cAAA,KAAAG,SAAIN,EAAE,uDACNG,cAAA,KAAAG,SACKgD,IAAcC,OAAOrB,EAAyB4tC,aAAa1mB,QAAS,CACjE7lB,OAAQC,IAAoBC,QAAQC,YAKhDvD,cAAA,OAAKmB,UAAU,4BAGnBnB,cAACiJ,IAAS,CACNpJ,EAAGA,EACHiN,KAAK,SACLlC,SAAUqoC,EACV9xC,UAAU,+CACV+H,MAAM,yDASlClJ,cAACyzC,IAAmB,CAAC1yC,YAAamyC,UAgC9C,SAAStE,EAAgBpqC,GAAwB,IAAvB,iBAAEqqC,GAAkBrqC,EACtCsqC,EAAe,KACf4E,EAAkB,GACtB,OAAQ7E,EAAiB5a,MACrB,KAAK8a,IAAkBC,iBACnB0E,EAAkB,UAClB5E,EAAe9uC,cAACivC,IAAqB,CAAC0E,SAAU,QAChD,MACJ,KAAK5E,IAAkB/V,UACnB0a,EAAkB,WAClB5E,EAAe9uC,cAACkvC,IAAqB,CAACyE,SAAU,QAKxD,OACI3zC,cAAA,OAAKmB,UAAS,oCAAA4G,OAAsC2rC,EAAe,uBAAsBvzC,SACrFM,eAAA,OAAKU,UAAU,8CAA6ChB,SAAA,CACvD2uC,EAEDruC,eAAA,OAAKU,UAAU,mBAAkBhB,SAAA,CAC7BH,cAAA,KAAGmB,UAAU,qBAAoBhB,SAAE0uC,EAAiBrwC,OACpDwB,cAAA,KAAGmB,UAAU,gCAA+BhB,SACxCH,cAACmwC,IAAiB,CAACH,MAAOnB,EAAiBmB,kBCzInE,MAAM6D,EAAoBn0C,oBAAS,SAA0BC,GAAqC,IAApC,8BAAEm0C,GAA+Bn0C,EAC3F,MAAM,YACFuB,EAAW,kBACX6tC,EAAiB,4BACjBgF,EAA2B,kBAC3B/Y,EACA57B,WAAW,yBAAE2C,IACb+xC,EAEJ,OACI9zC,cAAA,OAAAG,SACIH,cAACC,IAAMC,SAAQ,CAAAC,SACV4uC,GAAqBA,EAAkB7qC,OAAS,GAC7ClE,cAAA,OAAKmB,UAAU,qCAAoChB,SAC9CgE,cAAI4qC,GAAoBF,GAEjB7uC,cAAC4vC,IAAoB,CACjB1uC,YAAaA,EACb2uC,yBAA0B9tC,EAAyB8tC,yBACnDmE,6BAA8BjyC,EAAyBiyC,6BACvDnF,iBAAkBA,EAClBoF,2BAA4BlyC,EAAyBkyC,2BACrDtE,aAAcd,EAAiBc,aAC/B3U,kBAAmBA,EAEnBkZ,sBAAuBH,GADlBlF,EAAiBtqC,eAgB3CjE,mBApDf,SAAqCC,GAAwC,IAAvC,8BAAEuzC,EAA6B,EAAEj0C,GAAGU,EACtE,OACIE,eAACwB,IAAc,CAACpC,EAAGA,EAAGhB,MAAOi1C,EAA8B3zC,SAAA,CACvDH,cAAC6zC,EAAiB,CAACC,8BAA+BA,IAClD9zC,cAACm0C,IAAkB,CACf7iC,WAAYwiC,EAA8BxiC,WAC1CwiC,8BAA+BA,UCqB/C,MAAMlF,EAAmBlvC,oBAAS,SAAyBC,GAA4C,IAA3C,kCAAEy0C,EAAiC,EAAEv0C,GAAGF,EAChG,MAAM,WAAE2R,GAAe8iC,EACvB,OACI3zC,eAAA,OAAAN,SAAA,CACIH,cAAA,MAAImB,UAAU,kCAAiChB,SAAC,sBAChDH,cAACq0C,IAAoB,CACjBD,kCAAmCA,EACnC9iC,WAAYA,EACZzR,EAAGA,UAMJS,I,IAAAA,eAzCf,SAAyCC,GAA4C,IAA3C,kCAAE6zC,EAAiC,EAAEv0C,GAAGU,EAC9E,MAAM,oBAAE+zC,GAAwBF,EAEhC,OACIp0C,cAACiC,IAAc,CAACpC,EAAGA,EAAGhB,MAAOu1C,EAAkCj0C,SAC3DM,eAAA,OACIU,UAAWoB,YACP,8DACA+xC,EAAsB,wBAA0B,oBAClDn0C,SAAA,CAEFH,cAAA,OAAAG,SACIH,cAAC4uC,EAAgB,CAACwF,kCAAmCA,EAAmCv0C,EAAGA,MAE/FG,cAAA,OAAAG,SACIH,cAACu0C,IAAyB,CAAC10C,EAAGA,c,QCJnC20C,I,EAAAA,GANIzvC,EALlBH,aACG,CAACxF,EAAWyF,IAAmB,IAAI4vC,IAAuBr1C,EAAWyF,IACrE,0BAHH6vC,YAAc1vC,EAAAD,EAAAC,EAKdtF,mBAAQsF,EALT,cAM4B/E,IAAMgF,UAC9BC,SACI,OAAOlF,cAAC20C,EAAqB,IAAKvvC,KAAKC,YAE9CL,WCAc4vC,I,IAAAA,EAXdhwC,aACG,CAACxF,EAAWyF,IAAmB,IAAIgwC,IAAgCz1C,EAAWyF,IAC9E,kCACHE,CAAAC,EACAtF,mBAAQsF,EAJT,cAKqC/E,IAAMgF,UACvCC,SACI,OAAOlF,cAAC80C,EAA8B,IAAK1vC,KAAKC,YAEvDL,MCIc+vC,I,IANoBhwC,EALlCH,aACG,CAACxF,EAAWyF,IAAmB,IAAImwC,IAAuC51C,EAAWyF,IACrF,0CAHH6vC,YAAc1vC,EAAAD,EAAAC,EAKdtF,mBAAQsF,EALT,cAM4C/E,IAAMgF,UAC9CC,SACI,OAAOlF,cAACi1C,EAAqC,IAAK7vC,KAAKC,YAE9DL,OCEckwC,I,IAAAA,IANEnwC,EALhBH,aACG,CAACxF,EAAWyF,IAAmB,IAAIswC,IAAqB/1C,EAAWyF,IACnE,wBAHH6vC,YAAc1vC,EAAAD,EAAAC,EAKdtF,mBAAQsF,EALT,cAM0B/E,IAAMgF,UAC5BC,SACI,OAAOlF,cAACo1C,EAAmB,IAAKhwC,KAAKC,YAE5CL,WCEcqwC,I,GAAAA,IANGtwC,EALjBH,aACG,CAACxF,EAAWyF,IAAmB,IAAIywC,IAAsBl2C,EAAWyF,IACpE,yBAHH6vC,YAAc1vC,EAAAD,EAAAC,EAKdtF,mBAAQsF,EALT,cAM2B/E,IAAMgF,UAC7BC,SACI,OAAOlF,cAACu1C,EAAoB,IAAKnwC,KAAKC,YAE7CL,WCAcwwC,I,GAAAA,GAXd5wC,aACG,CAACxF,EAAWyF,IAAmB,IAAI4wC,IAA8Br2C,EAAWyF,IAC5E,gCACHE,CAAAC,GACAtF,mBAAQsF,GAJT,cAKmC/E,IAAMgF,UACrCC,SACI,OAAOlF,cAAC01C,EAA4B,IAAKtwC,KAAKC,YAErDL,QCEc2wC,OAXd/wC,aACG,CAACxF,EAAWyF,IAAmB,IAAI+wC,IAAkCx2C,EAAWyF,IAChF,oCACHE,CAAAC,GACAtF,mBAAQsF,GAJT,cAKuC/E,IAAMgF,UACzCC,SACI,OAAOlF,cAAC61C,EAAgC,IAAKzwC,KAAKC,YAEzDL,QCIG3G,IAAsBC,OAAO,eAAeC,SAAS,CACjDC,KAAM,sBACNC,OAAQ,CACJ,CACID,KAAM,6BACNE,QAAS,WACTyB,SAAU,CACN,CACI3B,KAAM,mCACNE,QAAS,iBACTC,UAAW61C,EACX31C,MAAOi3C,KAEX,CACIt3C,KAAM,qCACNE,QAAS,mBACTC,UAAWu2C,GACXr2C,MAAOk3C,KAEX,CACIv3C,KAAM,2CACNE,QAAS,iCACTC,UAAW02C,GACXx2C,MAAOm3C,KAEX,CACIx3C,KAAM,kCACNE,QAAS,GACTC,UAAWg3C,GACX92C,MAAOo3C,IACP7jC,KAAM,CACFrP,MAAO,iCAGf,CACIvE,KAAM,2CACNE,QAAS,iBACTC,UAAW62C,GACX32C,MAAOq3C,IACP9jC,KAAM,CACFrP,MAAO,8BAGf,CACIvE,KAAM,8CACNE,QAAS,uBACTC,UAAWi2C,EACX/1C,MAAOs3C,QAWvBh2B,KAAM,CACF,CACIpd,MAAO,iCACPqd,MAAO,EACPnV,KAAM,gBACN0jC,QAAS,CACL,CACI5rC,MAAO,gBACPqd,MAAO,EACPC,MAAO,4CAEX,CACItd,MAAO,WACPqd,MAAO,EACPC,MAAO,0C","file":"static/js/appModules.fab49cc0.chunk.js","sourcesContent":["import { moduleProviderFactory } from \"mrb/core\";\r\nimport { MainLayout } from \"common/layouts\";\r\nimport { MainRouteStore } from \"common/stores\";\r\n\r\n(function () {\r\n moduleProviderFactory.module(\"application\").register({\r\n name: \"application\",\r\n routes: [\r\n {\r\n name: \"master.application\",\r\n pattern: \"\",\r\n component: MainLayout,\r\n store: MainRouteStore,\r\n beforeEnter: (fromState, toState, routerStore) => {\r\n const { userStore } = routerStore.rootStore;\r\n if (userStore.isAdministrator) {\r\n return Promise.reject(routerStore.notFoundState);\r\n }\r\n },\r\n },\r\n ],\r\n });\r\n})();\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport {\r\n HomePageLayout,\r\n HomePageHeader,\r\n HomeMainView,\r\n HomeSearchResults,\r\n ConnectDeviceModal,\r\n} from \"application/home/components\";\r\nimport { MrbPageHeader } from \"mrb/components/layout\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction HomeTemplate({ homeViewStore, t }) {\r\n const { connectDeviceModal } = homeViewStore;\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n );\r\n}\r\n\r\nHomeTemplate.propTypes = {\r\n homeViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nconst ResultsContainer = observer(function ResultsContainer({\r\n homeViewStore,\r\n t,\r\n}) {\r\n const { inSearchMode, homeGenericSearchViewStore } = homeViewStore;\r\n return (\r\n \r\n {inSearchMode ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n );\r\n});\r\n\r\nexport default defaultTemplate(HomeTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbPreviewPage, MrbPageContentHeader, MrbPageHeader } from \"mrb/components/layout\";\r\nimport { MrbContentLoader, MrbHeaderLoader } from \"mrb/components/loader\";\r\nimport { HomePreviewStationsLoader, HomePreviewHeader } from \"application/home/components\";\r\nimport { HTMLRender, DescriptionLoader, PremiumBadge, Image } from \"common/components\";\r\nimport { StationUnavailableInApp } from \"application/common/components\";\r\nimport { dateFormatter } from \"mrb/common/formatting\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\nimport { applicationDefaults } from \"common/constants\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\n\r\nfunction HomeStationTemplate({ homeStationViewStore, t }) {\r\n const {\r\n loaderStore,\r\n item,\r\n coverImageUrl,\r\n rootStore: { premiumSubscriptionStore },\r\n contentAccessResult,\r\n } = homeStationViewStore;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n }>\r\n {() => (\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n

\r\n {t(\"APPLICATION.HOME.STATION.FIELDS.TITLE\")}\r\n

\r\n \r\n {item.title}\r\n

\r\n {!contentAccessResult.canAccessOnSelectedDevice && }\r\n {premiumSubscriptionStore.isLegacySubscriptionActive(\r\n item.legacySubscriptionExpirationDate\r\n ) && (\r\n \r\n

\r\n Old subscription until:{\" \"}\r\n \r\n {dateFormatter.format(item.legacySubscriptionExpirationDate, {\r\n format: applicationDefaults.formats.date,\r\n })}\r\n \r\n

\r\n
\r\n )}\r\n
\r\n\r\n
\r\n

\r\n {t(\"APPLICATION.HOME.STATION.FIELDS.DESCRIPTION_LINK\")}\r\n

\r\n {item.descriptionLink && (\r\n \r\n {item.descriptionLink}\r\n \r\n )}\r\n
\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n\r\n \r\n
\r\n );\r\n}\r\n\r\nHomeStationTemplate.propTypes = {\r\n homeStationViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction StationInfo({ store, item, t }) {\r\n const { loaderStore } = store;\r\n\r\n return (\r\n
\r\n
\r\n }>\r\n {() => (\r\n
\r\n
\r\n
\r\n
\r\n

\r\n {t(\"APPLICATION.HOME.STATION.FIELDS.DESCRIPTION\")}\r\n

\r\n \r\n {item.alternativeDescription}\r\n \r\n
\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n\r\n
\r\n
\r\n }>\r\n {() => (\r\n
\r\n
\r\n
\r\n
\r\n

\r\n {t(\"APPLICATION.HOME.STATION.FIELDS.LOCATION\")}\r\n

\r\n

{item.location && item.location.name}

\r\n
\r\n
\r\n
\r\n
\r\n

\r\n {t(\"APPLICATION.HOME.STATION.FIELDS.LANGUAGE\")}\r\n

\r\n

{item.language && item.language.name}

\r\n
\r\n
\r\n
\r\n
\r\n

\r\n {t(\"APPLICATION.HOME.STATION.FIELDS.GENRES\")}\r\n

\r\n {item.genres}\r\n
\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default defaultTemplate(HomeStationTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbPreviewPage, MrbPageContentHeader, MrbPageHeader } from \"mrb/components/layout\";\r\nimport { MrbContentLoader, MrbHeaderLoader } from \"mrb/components/loader\";\r\nimport { HomePreviewStationsLoader, HomePreviewHeader } from \"application/home/components\";\r\nimport { HTMLRender, DescriptionLoader, PremiumBadge, Image } from \"common/components\";\r\nimport { PodcastUnavailableInApp } from \"application/common/components\";\r\nimport { dateFormatter } from \"mrb/common/formatting\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\nimport { applicationDefaults } from \"common/constants\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\n\r\nfunction HomePodcastTemplate({ homePodcastViewStore, t }) {\r\n const {\r\n loaderStore,\r\n item,\r\n coverImageUrl,\r\n rootStore: { premiumSubscriptionStore },\r\n contentAccessResult,\r\n } = homePodcastViewStore;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n }>\r\n {() => (\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n

\r\n {t(\"APPLICATION.HOME.PODCAST.FIELDS.TITLE\")}\r\n

\r\n \r\n {item.title}\r\n

\r\n {!contentAccessResult.canAccessOnSelectedDevice && }\r\n {premiumSubscriptionStore.isLegacySubscriptionActive(\r\n item.legacySubscriptionExpirationDate\r\n ) && (\r\n \r\n

\r\n Old subscription until:{\" \"}\r\n \r\n {dateFormatter.format(item.legacySubscriptionExpirationDate, {\r\n format: applicationDefaults.formats.date,\r\n })}\r\n \r\n

\r\n
\r\n )}\r\n
\r\n\r\n
\r\n

\r\n {t(\"APPLICATION.HOME.PODCAST.FIELDS.DESCRIPTION_LINK\")}\r\n

\r\n {item.descriptionLink && (\r\n \r\n {item.descriptionLink}\r\n \r\n )}\r\n
\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n\r\n \r\n
\r\n );\r\n}\r\n\r\nHomePodcastTemplate.propTypes = {\r\n homePodcastViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction PodcastInfo({ store, item, t }) {\r\n const { loaderStore } = store;\r\n\r\n return (\r\n
\r\n
\r\n }>\r\n {() => (\r\n
\r\n
\r\n
\r\n
\r\n

\r\n {t(\"APPLICATION.HOME.STATION.FIELDS.DESCRIPTION\")}\r\n

\r\n \r\n {item.alternativeDescription}\r\n \r\n
\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n\r\n
\r\n
\r\n }>\r\n {() => (\r\n
\r\n
\r\n

\r\n {t(\"APPLICATION.HOME.PODCAST.FIELDS.LOCATION\")}\r\n

\r\n

{item.location && item.location.name}

\r\n
\r\n\r\n
\r\n

\r\n {t(\"APPLICATION.HOME.PODCAST.FIELDS.LANGUAGE\")}\r\n

\r\n

{item.language && item.language.name}

\r\n
\r\n\r\n
\r\n

\r\n {t(\"APPLICATION.HOME.PODCAST.FIELDS.GENRES\")}\r\n

\r\n {item.genres}\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default defaultTemplate(HomePodcastTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbPreviewPage, MrbPageContentHeader, MrbPageHeader } from \"mrb/components/layout\";\r\nimport { MrbContentLoader, MrbHeaderLoader } from \"mrb/components/loader\";\r\nimport { HomePreviewHeader, HomeSubPodcast, HomePreviewSubPodcastListLoader } from \"application/home/components\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { map } from \"lodash\";\r\nimport { observer } from \"mobx-react\";\r\nimport { HTMLRender, DescriptionLoader, PremiumBadge, Image } from \"common/components\";\r\n\r\nfunction HomePodcastGroupTemplate({ homePodcastViewStore, t }) {\r\n const { loaderStore, item, coverImageUrl, canAccessPremiumContent } = homePodcastViewStore;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n }>\r\n {() => (\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n

\r\n {t(\"APPLICATION.HOME.PODCAST.FIELDS.GROUP_TITLE\")}\r\n

\r\n

{item.title}

\r\n
\r\n\r\n
\r\n

\r\n {t(\"APPLICATION.HOME.PODCAST.FIELDS.DESCRIPTION_LINK\")}\r\n

\r\n {item.descriptionLink && (\r\n \r\n {item.descriptionLink}\r\n \r\n )}\r\n
\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n\r\n \r\n\r\n \r\n
\r\n );\r\n}\r\n\r\nHomePodcastGroupTemplate.propTypes = {\r\n homePodcastViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nconst SubPodcasts = observer(function SubPodcasts({ store, t }) {\r\n const { item, loaderStore } = store;\r\n\r\n return (\r\n }>\r\n {() => (\r\n \r\n {item && item.subPodcasts && item.subPodcasts.length > 0 && (\r\n
\r\n
\r\n
\r\n {map(item.subPodcasts, (subPodcast) => (\r\n \r\n ))}\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n )}\r\n
\r\n );\r\n});\r\n\r\nfunction PodcastInfo({ store, item, t }) {\r\n const { loaderStore } = store;\r\n\r\n return (\r\n \r\n {!item || (item && item.alternativeDescription) ? (\r\n \r\n
\r\n }>\r\n {() => (\r\n
\r\n
\r\n
\r\n
\r\n

\r\n {t(\"APPLICATION.HOME.STATION.FIELDS.DESCRIPTION\")}\r\n

\r\n \r\n {item.alternativeDescription}\r\n \r\n
\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n \r\n ) : null}\r\n
\r\n );\r\n}\r\n\r\nexport default defaultTemplate(HomePodcastGroupTemplate);\r\n","import React from \"react\";\r\nimport { HomeTemplate } from \"themes/application/home/pages\";\r\nimport { HomeViewStore } from \"application/home/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new HomeViewStore(rootStore, componentProps),\r\n \"homeViewStore\"\r\n)\r\nclass Home extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default Home;\r\n","import React from \"react\";\r\nimport { HomeStationTemplate } from \"themes/application/home/pages\";\r\nimport { HomeStationViewStore } from \"application/home/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) =>\r\n new HomeStationViewStore(rootStore, componentProps),\r\n \"homeStationViewStore\"\r\n)\r\nclass HomeStation extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default HomeStation;\r\n","import React from \"react\";\r\nimport { HomePodcastTemplate } from \"themes/application/home/pages\";\r\nimport { HomePodcastViewStore } from \"application/home/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) =>\r\n new HomePodcastViewStore(rootStore, componentProps),\r\n \"homePodcastViewStore\"\r\n)\r\nclass HomePodcast extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default HomePodcast;\r\n","import React from \"react\";\r\nimport { HomePodcastGroupTemplate } from \"themes/application/home/pages\";\r\nimport { HomePodcastGroupViewStore } from \"application/home/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) =>\r\n new HomePodcastGroupViewStore(rootStore, componentProps),\r\n \"homePodcastViewStore\"\r\n)\r\nclass HomePodcastGroup extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default HomePodcastGroup;\r\n","import React, { useRef, useState, useEffect } from \"react\";\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nconst TorahAnyTimeLoaderTemplate = ({ row = 6, props, backgroundColor = \"#3C3D3E\", foregroundColor = \"#404143\" }) => {\r\n const ref = useRef(null);\r\n const [loaderWidth, setLoaderWidth] = useState(0);\r\n\r\n useEffect(() => {\r\n setLoaderWidth(ref.current.offsetWidth);\r\n }, []);\r\n\r\n const screenwidth = window.innerWidth;\r\n\r\n const list = [];\r\n\r\n // prettier-ignore\r\n const cardSpace = screenwidth > 540 ? 188 : 148;\r\n const cardSize = screenwidth > 540 ? 140 : 100;\r\n\r\n let x = 0;\r\n let y1 = 0;\r\n\r\n let col;\r\n let setX;\r\n\r\n if (screenwidth > 988) {\r\n row = 5;\r\n col = Math.floor((screenwidth - 200) / 150);\r\n setX = Math.floor((screenwidth - 55) / col);\r\n } else if (screenwidth > 540) {\r\n col = Math.floor((screenwidth - 32) / 150);\r\n setX = Math.floor(screenwidth / col / col) + 136;\r\n row = 3;\r\n } else {\r\n col = Math.floor((screenwidth - 32) / 103);\r\n setX = Math.floor(screenwidth / col / col) + 86;\r\n }\r\n\r\n for (let i = 0; i < col; i++) {\r\n for (let j = 0; j < row; j++) {\r\n list.push(\r\n \r\n {/* prettier-ignore */}\r\n \r\n \r\n );\r\n y1 += cardSpace;\r\n }\r\n y1 = 0;\r\n\r\n x += setX;\r\n }\r\n\r\n return (\r\n
\r\n \r\n {list}\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default TorahAnyTimeLoaderTemplate;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { observer } from \"mobx-react\";\r\nimport { map } from \"lodash\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\n\r\nfunction TorahAnytimeWizardLayoutTemplate({ store, children, controlsRenderer, t }) {\r\n return (\r\n
\r\n \r\n {children}\r\n {controlsRenderer ? controlsRenderer({ store }) : }\r\n
\r\n );\r\n}\r\n\r\nconst WizardHeader = observer(function WizardHeader({ store, t }) {\r\n const { steps, currentStep, stepIndex } = store;\r\n return (\r\n
\r\n {map(steps, (step, i) => {\r\n return (\r\n \r\n );\r\n })}\r\n
\r\n );\r\n});\r\n\r\nfunction WizardStep({ step, t, isActive, lastStep, stepIndex }) {\r\n return (\r\n
\r\n \r\n {t(step.title)}\r\n \r\n {!lastStep && }\r\n
\r\n );\r\n}\r\n\r\nconst WizardControls = observer(function WizardControls({ store, t }) {\r\n const { nextStep, currentStep, previousStep, hasPreviousStep } = store;\r\n return (\r\n
\r\n
\r\n \r\n {hasPreviousStep && (\r\n \r\n )}\r\n \r\n
\r\n \r\n );\r\n});\r\n\r\nTorahAnytimeWizardLayoutTemplate.propTypes = {\r\n store: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default TorahAnytimeWizardLayoutTemplate;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbModal } from \"mrb/components/modal\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\n\r\nfunction TorahAnytimeAvailabilityModalTemplate({ modalParams, t }) {\r\n return (\r\n \r\n \r\n
\r\n
\r\n

TorahAnytime Availability

\r\n
\r\n
\r\n

\r\n The TorahAnytime feature is available on the following Naki devices:\r\n

\r\n
    \r\n
  • NakiRadio Solo
  • \r\n
  • NakiRadio Duo
  • \r\n
  • NakiRadio (2023)
  • \r\n {/*
  • Naki Go App
  • */}\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nTorahAnytimeAvailabilityModalTemplate.propTypes = {\r\n title: PropTypes.string,\r\n description: PropTypes.string,\r\n modalParams: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default TorahAnytimeAvailabilityModalTemplate;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbCollapsiblePanel } from \"mrb/components/collapsible-panel\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { TogglePremium } from \"application/home/components\";\r\nimport { PodcastUnavailableInApp } from \"application/common/components\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\nimport { observer } from \"mobx-react\";\r\nimport { map, orderBy } from \"lodash\";\r\n\r\nfunction TorahAnytimeCollectionListItemTemplate({ torahAnytimeCollectionListItemViewStore, actions, t }) {\r\n const { collection, isCollapsed, toggleCollapse, speakersLength, topicsLength } =\r\n torahAnytimeCollectionListItemViewStore;\r\n\r\n return (\r\n (\r\n \r\n )}\r\n >\r\n {() => (\r\n
\r\n {collection.speakers && speakersLength > 0 && (\r\n \r\n )}\r\n {collection.topics && topicsLength > 0 && (\r\n \r\n )}\r\n
\r\n )}\r\n \r\n );\r\n}\r\n\r\nTorahAnytimeCollectionListItemTemplate.propTypes = {\r\n torahAnytimeCollectionListItemViewStore: PropTypes.object.isRequired,\r\n onCellClick: PropTypes.func.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nconst PanelHeader = observer(function PanelHeader({ title, store, t, isCollapsed, item, actions }) {\r\n const {\r\n isTurnedOn,\r\n isDisabled,\r\n toggleCollectionStatus,\r\n contentAccessResult,\r\n hasTopics,\r\n hasSpeakers,\r\n torahAnytimeViewStore: { torahAnytimePodcast },\r\n rootStore: { userDeviceStore },\r\n } = store;\r\n return (\r\n \r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n

\r\n {title}\r\n

\r\n {torahAnytimePodcast &&\r\n torahAnytimePodcast.isPremium &&\r\n !contentAccessResult.canAccessPremium && (\r\n \r\n )}\r\n
\r\n {!contentAccessResult.canAccessOnSelectedDevice && }\r\n
\r\n
\r\n\r\n
\r\n
\r\n {(!hasTopics || !hasSpeakers) && (\r\n

\r\n {!hasSpeakers && !hasTopics\r\n ? t(\"APPLICATION.TORAH_ANYTIME.LIST.REMOVED_DATA.SPEAKERS_AND_TOPICS\")\r\n : !hasSpeakers\r\n ? t(\"APPLICATION.TORAH_ANYTIME.LIST.REMOVED_DATA.SPEAKERS\")\r\n : t(\"APPLICATION.TORAH_ANYTIME.LIST.REMOVED_DATA.TOPICS\")}\r\n

\r\n )}\r\n
\r\n {userDeviceStore.deviceCount > 0 && contentAccessResult.canAccessOnSelectedDevice && (\r\n \r\n {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n toggleCollectionStatus(!isTurnedOn);\r\n }}\r\n icon=\"u-icon u-icon--med u-icon--premium--white\"\r\n classNameOverride={mergeCss(\r\n \"c-btn c-btn--status--sml\",\r\n isTurnedOn ? \"c-btn--status--enabled\" : \"c-btn--status--disabled\"\r\n )}\r\n />\r\n \r\n )}\r\n {actions.delete && (\r\n {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n actions.delete.onClick(item);\r\n }}\r\n />\r\n )}\r\n {actions.edit && (\r\n {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n actions.edit.onClick(item);\r\n }}\r\n />\r\n )}\r\n
\r\n
\r\n
\r\n );\r\n});\r\n\r\nfunction SpeakersList({ speakers, speakersLength }) {\r\n speakers = orderBy(speakers, [\"speaker.title\", \"speaker.firstName\", \"speaker.lastName\"]);\r\n return (\r\n
\r\n
\r\n

Speakers ({speakersLength})

\r\n
\r\n
\r\n {map(\r\n speakers,\r\n (speaker) =>\r\n speaker?.speaker && (\r\n
\r\n {[\r\n speaker?.speaker?.title,\r\n speaker?.speaker?.firstName,\r\n speaker?.speaker?.lastName,\r\n ].join(\" \")}\r\n
\r\n )\r\n )}\r\n
\r\n
\r\n );\r\n}\r\n\r\nfunction TopicsList({ topics, topicsLength }) {\r\n topics = orderBy(topics, [\"topic.title\"]);\r\n return (\r\n
\r\n
\r\n

Topics ({topicsLength})

\r\n
\r\n
\r\n {map(topics, (topic) => topic?.topic &&
{topic?.topic?.title}
)}\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default observer(TorahAnytimeCollectionListItemTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbFieldInput, MrbEditFormLayout, MrbButton } from \"mrb/components\";\r\nimport { MrbPageHeader } from \"mrb/components/layout\";\r\nimport { TorahAnytimeWizardLayout } from \"application/torah-anytime/components\";\r\nimport { observer } from \"mobx-react\";\r\nimport { MrbRouterLink } from \"mrb/core/infrastructure/router\";\r\n\r\nfunction TorahAnytimeCreatePlaylistTemplate({ torahAnytimeCollectionEditViewStore, torahAnytimeWizardViewStore, t }) {\r\n const { form, isEdit } = torahAnytimeCollectionEditViewStore;\r\n return (\r\n \r\n \r\n
\r\n \r\n \r\n Back\r\n \r\n
\r\n
\r\n \r\n (\r\n \r\n )}\r\n t={t}\r\n >\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n}\r\n\r\nconst CreatePlaylistWizardControls = observer(function CreatePlaylistWizardControls({ store, isEdit, onSubmit, t }) {\r\n const { currentStep, previousStep } = store;\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n );\r\n});\r\n\r\nTorahAnytimeCreatePlaylistTemplate.propTypes = {\r\n torahAnytimeCollectionEditViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default observer(TorahAnytimeCreatePlaylistTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { HomeDeviceSelect } from \"application/home/components\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction TorahAnytimeHeaderTemplate({ store, t }) {\r\n const {\r\n deviceSelectStore,\r\n torahAnytimePodcast,\r\n rootStore: { userDeviceStore },\r\n } = store;\r\n\r\n return (\r\n
\r\n
{torahAnytimePodcast && torahAnytimePodcast.title}
\r\n {userDeviceStore.deviceCount > 0 && (\r\n \r\n \r\n \r\n )}\r\n
\r\n );\r\n}\r\n\r\nTorahAnytimeHeaderTemplate.propTypes = {\r\n store: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default observer(TorahAnytimeHeaderTemplate);\r\n","import React from \"react\";\r\nimport { TorahAnyTimeLoaderTemplate } from \"themes/application/torah-anytime/components\";\r\n\r\nfunction TorahAnyTimeLoader(props) {\r\n return ;\r\n}\r\n\r\nexport default TorahAnyTimeLoader;\r\n","import React from \"react\";\r\nimport { MrbGrid } from \"mrb/components/grid\";\r\nimport { Image } from \"common/components\";\r\nimport { TorahAnytimeWizardLayout } from \"application/torah-anytime/components\";\r\nimport { MrbQuerySearchInput } from \"mrb/components/input\";\r\nimport { MrbPageHeader } from \"mrb/components/layout\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { MrbPager } from \"mrb/components/pager\";\r\nimport { findIndex, isEmpty } from \"lodash\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\nimport { observer } from \"mobx-react\";\r\nimport { TorahAnyTimeLoader } from \"application/torah-anytime/components/content-loader\";\r\nimport { MrbRouterLink } from \"mrb/core/infrastructure/router\";\r\n\r\nfunction TorahAnytimeSelectTopicsTemplate({ torahAnytimeSelectTopicsViewStore, torahAnytimeWizardViewStore, t }) {\r\n const { gridStore, torahAnytimeSelectionViewStore, queryUtility } = torahAnytimeSelectTopicsViewStore;\r\n return (\r\n \r\n \r\n
\r\n \r\n \r\n Back\r\n \r\n \r\n
\r\n
\r\n (\r\n \r\n )}\r\n t={t}\r\n >\r\n
\r\n }\r\n cellRender={(props) => (\r\n \r\n )}\r\n emptyStateRender={() => }\r\n pagerRender={(props) => (\r\n \r\n )}\r\n />\r\n
\r\n \r\n
\r\n );\r\n}\r\n\r\nconst TopicCell = observer(function TopicCell({ item, torahAnytimeSelectionViewStore }) {\r\n const { selectedTopics, selectTopic, deselectTopic } = torahAnytimeSelectionViewStore;\r\n const isSelected = findIndex(selectedTopics, (selectedTopic) => selectedTopic.topicId === item.id) !== -1;\r\n return (\r\n
\r\n deselectTopic(item) : () => selectTopic(item)}\r\n >\r\n {isSelected ? : }\r\n\r\n
\r\n \r\n
\r\n
\r\n
{item.title}
\r\n \r\n );\r\n});\r\n\r\nfunction EnabledIndicator() {\r\n return
;\r\n}\r\n\r\nfunction DisabledIndicator() {\r\n return
;\r\n}\r\n\r\nfunction NoDataEmptyState({ queryUtility, t }) {\r\n const { filter } = queryUtility;\r\n const title = isEmpty(filter.search)\r\n ? t(\"APPLICATION.TORAH_ANYTIME.EDIT.SELECT_TOPICS.NO_DATA.TITLE\")\r\n : t(\"APPLICATION.TORAH_ANYTIME.EDIT.SELECT_TOPICS.NO_DATA.TITLE_WTH_SEARCH\", { search: filter.search });\r\n return (\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

{title}

\r\n

{t(\"APPLICATION.TORAH_ANYTIME.EDIT.SELECT_SPEAKERS.NO_DATA.DESCRIPTION\")}

\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nconst SelectTopicsWizardControls = observer(function SelectTopicsWizardControls({\r\n store,\r\n torahAnytimeSelectTopicsViewStore,\r\n t,\r\n}) {\r\n const { nextStep, currentStep, previousStep, hasPreviousStep } = store;\r\n const { isTopicSelectionEmpty } = torahAnytimeSelectTopicsViewStore;\r\n return (\r\n
\r\n
\r\n \r\n {hasPreviousStep && (\r\n \r\n )}\r\n
\r\n {isTopicSelectionEmpty && (\r\n
\r\n

\r\n {t(\"APPLICATION.TORAH_ANYTIME.EDIT.SELECT_TOPICS.VALIDATION.NOTHING_SELECTED\")}\r\n

\r\n
\r\n )}\r\n \r\n
\r\n
\r\n \r\n );\r\n});\r\n\r\nexport default observer(TorahAnytimeSelectTopicsTemplate);\r\n","import React from \"react\";\r\nimport { MrbGrid } from \"mrb/components/grid\";\r\nimport { Image } from \"common/components\";\r\nimport { MrbPageHeader } from \"mrb/components/layout\";\r\nimport { MrbQuerySearchInput } from \"mrb/components/input\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { MrbPager } from \"mrb/components/pager\";\r\nimport { TorahAnytimeWizardLayout } from \"application/torah-anytime/components\";\r\nimport { findIndex, isEmpty } from \"lodash\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\nimport { observer } from \"mobx-react\";\r\nimport { TorahAnyTimeLoader } from \"application/torah-anytime/components/content-loader\";\r\nimport { MrbRouterLink } from \"mrb/core/infrastructure/router\";\r\n\r\nfunction TorahAnytimeSelectSpeakersTemplate({ torahAnytimeSelectSpeakersViewStore, torahAnytimeWizardViewStore, t }) {\r\n const { gridStore, torahAnytimeSelectionViewStore, queryUtility, selectSpeakersByGender, clearSelection } =\r\n torahAnytimeSelectSpeakersViewStore;\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n \r\n Back\r\n \r\n \r\n
\r\n
\r\n {\r\n selectSpeakersByGender(false);\r\n }}\r\n t={t}\r\n />\r\n {\r\n selectSpeakersByGender(true);\r\n }}\r\n t={t}\r\n />\r\n \r\n
\r\n
\r\n (\r\n \r\n )}\r\n t={t}\r\n >\r\n
\r\n }\r\n cellRender={(props) => (\r\n \r\n )}\r\n emptyStateRender={() => }\r\n pagerRender={(props) => (\r\n \r\n )}\r\n />\r\n
\r\n \r\n
\r\n );\r\n}\r\n\r\nconst SpeakerCell = observer(function SpeakerCell({\r\n item,\r\n torahAnytimeSelectionViewStore,\r\n torahAnytimeSelectSpeakersViewStore,\r\n}) {\r\n const { selectedSpeakers, selectSpeaker, deselectSpeaker } = torahAnytimeSelectionViewStore;\r\n const { defaultSpeakerImageUrl } = torahAnytimeSelectSpeakersViewStore;\r\n const isSelected = findIndex(selectedSpeakers, (selectedSpeaker) => selectedSpeaker.speakerId === item.id) !== -1;\r\n return (\r\n
\r\n deselectSpeaker(item) : () => selectSpeaker(item)}\r\n >\r\n {isSelected ? : }\r\n\r\n
\r\n \r\n
\r\n
\r\n
{[item.title, item.firstName, item.lastName].join(\" \")}
\r\n \r\n );\r\n});\r\n\r\nfunction EnabledIndicator() {\r\n return
;\r\n}\r\n\r\nfunction DisabledIndicator() {\r\n return
;\r\n}\r\n\r\nfunction NoDataEmptyState({ queryUtility, t }) {\r\n const { filter } = queryUtility;\r\n const title = isEmpty(filter.search)\r\n ? t(\"APPLICATION.TORAH_ANYTIME.EDIT.SELECT_SPEAKERS.NO_DATA.TITLE\")\r\n : t(\"APPLICATION.TORAH_ANYTIME.EDIT.SELECT_SPEAKERS.NO_DATA.TITLE_WTH_SEARCH\", { search: filter.search });\r\n return (\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n

{title}

\r\n

{t(\"APPLICATION.TORAH_ANYTIME.EDIT.SELECT_SPEAKERS.NO_DATA.DESCRIPTION\")}

\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nconst SelectSpeakersWizardControls = observer(function SelectSpeakersWizardControls({\r\n store,\r\n torahAnytimeSelectSpeakersViewStore,\r\n t,\r\n}) {\r\n const { nextStep, currentStep, previousStep, hasPreviousStep } = store;\r\n const { isSpeakerSelectionEmpty } = torahAnytimeSelectSpeakersViewStore;\r\n return (\r\n
\r\n
\r\n \r\n {hasPreviousStep && (\r\n \r\n )}\r\n
\r\n {isSpeakerSelectionEmpty && (\r\n
\r\n

\r\n {t(\"APPLICATION.TORAH_ANYTIME.EDIT.SELECT_SPEAKERS.VALIDATION.NOTHING_SELECTED\")}\r\n

\r\n
\r\n )}\r\n \r\n
\r\n
\r\n \r\n );\r\n});\r\n\r\nexport default observer(TorahAnytimeSelectSpeakersTemplate);\r\n","import React from \"react\";\r\nimport { TorahAnytimeWizardLayoutTemplate } from \"themes/application/torah-anytime/components\";\r\n\r\nfunction TorahAnytimeWizardLayout(props) {\r\n return ;\r\n}\r\n\r\nexport default TorahAnytimeWizardLayout;\r\n","import React from \"react\";\r\nimport { TorahAnytimeAvailabilityModalTemplate } from \"themes/application/torah-anytime/components\";\r\n\r\nfunction TorahAnytimeAvailabilityModal(props) {\r\n return ;\r\n}\r\n\r\nexport default TorahAnytimeAvailabilityModal;\r\n","import { LocalizedForm } from \"common/localization\";\r\n\r\nexport default class TorahAnytimeCollectionEditForm extends LocalizedForm {\r\n constructor(hooks) {\r\n super(hooks);\r\n }\r\n\r\n setup() {\r\n return {\r\n fields: [\r\n {\r\n name: \"name\",\r\n label: \"APPLICATION.TORAH_ANYTIME.EDIT.FIELDS.NAME_LABEL\",\r\n placeholder: \"APPLICATION.TORAH_ANYTIME.EDIT.FIELDS.NAME_PLACEHOLDER\",\r\n rules: \"required|string\",\r\n },\r\n ],\r\n };\r\n }\r\n}\r\n","import { runInAction } from \"mobx\";\r\nimport { MrbBaseEditViewStore } from \"mrb/core\";\r\nimport { TorahAnytimeCollectionEditForm } from \"application/torah-anytime/forms\";\r\n\r\nclass TorahAnytimeCollectionEditViewStore extends MrbBaseEditViewStore {\r\n constructor(rootStore, { routeStore, torahAnytimeWizardViewStore }) {\r\n super(rootStore, {\r\n id: torahAnytimeWizardViewStore.collectionId,\r\n name: \"torah-anytime-collection\",\r\n FormClass: TorahAnytimeCollectionEditForm,\r\n autoFocusField: \"name\",\r\n successCreateNotification: null,\r\n successUpdateNotification: null,\r\n redirectOnCreateSuccess: () =>\r\n this.rootStore.routerStore.goTo(\"master.application.home.torah-anytime\", {\r\n id: torahAnytimeWizardViewStore.podcastId,\r\n }),\r\n redirectOnUpdateSuccess: () =>\r\n this.rootStore.routerStore.goTo(\"master.application.home.torah-anytime\", {\r\n id: torahAnytimeWizardViewStore.podcastId,\r\n }),\r\n });\r\n this.routeStore = routeStore;\r\n this.torahAnytimeWizardViewStore = torahAnytimeWizardViewStore;\r\n }\r\n\r\n async initializeResource() {\r\n if (this.id) {\r\n runInAction(() => {\r\n const item = this.torahAnytimeWizardViewStore.item;\r\n this.setItem(item);\r\n this.updateForm(item);\r\n });\r\n } else {\r\n this.resetForm();\r\n }\r\n }\r\n\r\n create(data) {\r\n return this.torahAnytimeWizardViewStore.createCollection(data);\r\n }\r\n\r\n async update(data) {\r\n await this.torahAnytimeWizardViewStore.updateCollection(data);\r\n }\r\n\r\n onCreateError(err) {\r\n this.rootStore.notificationStore.error(\"An unexpected error occurred while trying to create resource.\", err);\r\n }\r\n\r\n onUpdateError(err) {\r\n this.rootStore.notificationStore.error(\"An unexpected error occurred while trying to update resource.\", err);\r\n }\r\n}\r\n\r\nexport default TorahAnytimeCollectionEditViewStore;\r\n","import { action, computed, makeObservable, observable, runInAction } from \"mobx\";\r\nimport { MrbBaseViewStore } from \"mrb/core\";\r\nimport { nakiRadioSystemTypes } from \"common/constants\";\r\nimport { UpdateTorahAnytimeCollectionStatusOptions } from \"application/common/models\";\r\nimport { find, isNil, filter, some } from \"lodash\";\r\n\r\nclass TorahAnytimeCollectionListItemViewStore extends MrbBaseViewStore {\r\n collectionId;\r\n\r\n @observable isCollapsed = false;\r\n @observable isUpdating = false;\r\n\r\n @computed get hasTopics() {\r\n return some(this.collection.topics, (topic) => !isNil(topic?.topic));\r\n }\r\n\r\n @computed get hasSpeakers() {\r\n return some(this.collection.speakers, (speaker) => !isNil(speaker?.speaker));\r\n }\r\n\r\n @computed get speakersLength() {\r\n const speakers = filter(this.collection.speakers, (speaker) => {\r\n return !isNil(speaker?.speaker);\r\n });\r\n\r\n return speakers.length;\r\n }\r\n\r\n @computed get topicsLength() {\r\n const topics = filter(this.collection.topics, (topic) => {\r\n return !isNil(topic?.topic);\r\n });\r\n\r\n return topics.length;\r\n }\r\n\r\n @computed get collection() {\r\n return find(this.torahAnytimeViewStore.gridStore.data, (item) => item.id === this.collectionId);\r\n }\r\n\r\n @computed get contentAccessResult() {\r\n return this.evaluateContentAccess(this.torahAnytimeViewStore.torahAnytimePodcast);\r\n }\r\n\r\n @computed get isDisabled() {\r\n return this.isUpdating;\r\n }\r\n\r\n @computed get collectionStatusItem() {\r\n if (this.collection) {\r\n return this.collection.userDeviceCollection;\r\n }\r\n return null;\r\n }\r\n\r\n @computed get isTurnedOn() {\r\n if (!isNil(this.collectionStatusItem)) {\r\n return this.collectionStatusItem.isTurnedOn;\r\n } else if (this.torahAnytimeViewStore.torahAnytimePodcast) {\r\n const selectedDevice = this.rootStore.userDeviceStore.selectedDevice;\r\n if (selectedDevice && selectedDevice.device && selectedDevice.device.systemType) {\r\n switch (selectedDevice.device.systemType.abrv) {\r\n case nakiRadioSystemTypes.venice:\r\n return this.torahAnytimeViewStore.torahAnytimePodcast.isTurnedOnByDefault;\r\n case nakiRadioSystemTypes.mobile:\r\n return this.torahAnytimeViewStore.torahAnytimePodcast.isTurnedOnByDefaultInApp;\r\n default:\r\n break;\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n constructor(rootStore, { collectionId, torahAnytimeViewStore }) {\r\n super(rootStore);\r\n makeObservable(this);\r\n this.collectionId = collectionId;\r\n this.torahAnytimeViewStore = torahAnytimeViewStore;\r\n }\r\n\r\n @action.bound\r\n async toggleCollectionStatus(isTurnedOn) {\r\n this.setIsUpdating(true);\r\n await this.updateCollectionTurnedOnStatus(isTurnedOn);\r\n this.setIsUpdating(false);\r\n }\r\n\r\n @action.bound\r\n async updateCollectionTurnedOnStatus(isTurnedOn) {\r\n try {\r\n const options = new UpdateTorahAnytimeCollectionStatusOptions(\r\n this.collection.id,\r\n this.collection.name,\r\n this.torahAnytimeViewStore.torahAnytimePodcast.id,\r\n this.torahAnytimeViewStore.torahAnytimePodcast.title,\r\n this.torahAnytimeViewStore.torahAnytimePodcast.isPremium,\r\n this.torahAnytimeViewStore.torahAnytimePodcast.isVisibleInApp === false\r\n );\r\n await this.rootStore.userContentManagerStore.updateTorahAnytimeCollectionsStatus(options, isTurnedOn);\r\n runInAction(() => {\r\n if (this.collection.userDeviceCollection) {\r\n this.collection.userDeviceCollection.isTurnedOn = isTurnedOn;\r\n } else {\r\n this.collection.userDeviceCollection = { isTurnedOn: isTurnedOn };\r\n }\r\n });\r\n } catch (err) {\r\n console.log(err);\r\n this.rootStore.notificationStore.error(\"Unexpected error occurred. Please contact the support team.\", err);\r\n }\r\n }\r\n\r\n @action.bound\r\n toggleCollapse() {\r\n this.isCollapsed = !this.isCollapsed;\r\n }\r\n\r\n @action.bound\r\n setIsUpdating(isUpdating) {\r\n this.isUpdating = isUpdating;\r\n }\r\n\r\n evaluateContentAccess(torahAnytimePodcast) {\r\n if (isNil(torahAnytimePodcast)) {\r\n return false;\r\n }\r\n\r\n return this.rootStore.contentAccessValidator.canAccessPodcast({\r\n isPremium: torahAnytimePodcast.isPremium,\r\n unavailableInMobileApp: torahAnytimePodcast.isVisibleInApp === false,\r\n });\r\n }\r\n}\r\n\r\nexport default TorahAnytimeCollectionListItemViewStore;\r\n","import { observable, action, makeObservable } from \"mobx\";\r\nimport { MrbBaseViewStore } from \"mrb/core\";\r\nimport { pullAt, findIndex, forEach } from \"lodash\";\r\n\r\nclass TorahAnytimeSelectionViewStore extends MrbBaseViewStore {\r\n @observable selectedSpeakers = [];\r\n @observable selectedTopics = [];\r\n\r\n constructor(rootStore) {\r\n super(rootStore);\r\n makeObservable(this);\r\n }\r\n\r\n @action.bound\r\n initializeSelection(topics = [], speakers = []) {\r\n this.selectedTopics = topics;\r\n this.selectedSpeakers = speakers;\r\n }\r\n\r\n @action.bound\r\n selectSpeakers(speakers) {\r\n forEach(speakers, (speaker) => {\r\n const existingItemIndex = findIndex(\r\n this.selectedSpeakers,\r\n (selectedSpeaker) => selectedSpeaker.speakerId === speaker.id\r\n );\r\n if (existingItemIndex === -1) {\r\n this.selectedSpeakers.push({\r\n speakerId: speaker.id,\r\n speaker: speaker,\r\n });\r\n }\r\n });\r\n }\r\n\r\n @action.bound\r\n clearSelectedSpeakers() {\r\n this.selectedSpeakers = [];\r\n }\r\n\r\n @action.bound\r\n selectSpeaker(speaker) {\r\n const existingItemIndex = findIndex(\r\n this.selectedSpeakers,\r\n (selectedSpeaker) => selectedSpeaker.speakerId === speaker.id\r\n );\r\n if (existingItemIndex === -1) {\r\n this.selectedSpeakers.push({\r\n speakerId: speaker.id,\r\n speaker: speaker,\r\n });\r\n }\r\n }\r\n\r\n @action.bound\r\n deselectSpeaker(speaker) {\r\n const existingItemIndex = findIndex(\r\n this.selectedSpeakers,\r\n (selectedSpeaker) => selectedSpeaker.speakerId === speaker.id\r\n );\r\n if (existingItemIndex !== -1) {\r\n pullAt(this.selectedSpeakers, existingItemIndex);\r\n }\r\n }\r\n\r\n @action.bound\r\n selectTopic(topic) {\r\n const existingItemIndex = findIndex(this.selectedTopics, (selectedTopic) => selectedTopic.topicId === topic.id);\r\n if (existingItemIndex === -1) {\r\n this.selectedTopics.push({\r\n topicId: topic.id,\r\n topic: topic,\r\n });\r\n }\r\n }\r\n\r\n @action.bound\r\n deselectTopic(topic) {\r\n const existingItemIndex = findIndex(this.selectedTopics, (selectedTopic) => selectedTopic.topicId === topic.id);\r\n if (existingItemIndex !== -1) {\r\n pullAt(this.selectedTopics, existingItemIndex);\r\n }\r\n }\r\n}\r\n\r\nexport default TorahAnytimeSelectionViewStore;\r\n","import { MrbFilterParameters } from \"mrb/core/filter\";\r\nimport { calculateNumberOfColumns, calculateNumberOfTorahAnytimeWizardRows } from \"common/utils\";\r\n\r\nclass TorahAnytimeSpeakersFilter extends MrbFilterParameters {\r\n constructor() {\r\n super();\r\n this.reset();\r\n }\r\n\r\n reset() {\r\n super.reset();\r\n this.pageSize =\r\n calculateNumberOfColumns(window.innerWidth) * calculateNumberOfTorahAnytimeWizardRows(window.innerWidth);\r\n }\r\n}\r\n\r\nexport default TorahAnytimeSpeakersFilter;\r\n","import { MrbFilterParameters } from \"mrb/core/filter\";\r\nimport { calculateNumberOfColumns, calculateNumberOfTorahAnytimeWizardRows } from \"common/utils\";\r\n\r\nclass TorahAnytimeTopicsFilter extends MrbFilterParameters {\r\n constructor() {\r\n super();\r\n this.reset();\r\n }\r\n\r\n reset() {\r\n super.reset();\r\n this.pageSize =\r\n calculateNumberOfColumns(window.innerWidth) * calculateNumberOfTorahAnytimeWizardRows(window.innerWidth);\r\n }\r\n}\r\n\r\nexport default TorahAnytimeTopicsFilter;\r\n","import { computed, makeObservable } from \"mobx\";\r\nimport { MrbBaseListViewStore } from \"mrb/core\";\r\nimport { MrbGridViewStore } from \"mrb/components/grid\";\r\nimport { httpStatusCodes } from \"mrb/core/constants\";\r\nimport { TorahAnytimeSpeakersFilter } from \"application/torah-anytime/filters\";\r\nimport { map, filter, forEach, includes } from \"lodash\";\r\n\r\nclass TorahAnytimeSelectSpeakersViewStore extends MrbBaseListViewStore {\r\n _abortController = null;\r\n\r\n @computed get isSpeakerSelectionEmpty() {\r\n return this.torahAnytimeSelectionViewStore.selectedSpeakers.length === 0;\r\n }\r\n\r\n @computed get defaultSpeakerImageUrl() {\r\n const podcast = this.torahAnytimeWizardViewStore.torahAnytimePodcast;\r\n if (podcast && podcast.coverImageId) {\r\n return this.rootStore.coverImageFactory.createPodcastCoverImageUrl(podcast.coverImageId, 200, 200);\r\n }\r\n return null;\r\n }\r\n\r\n constructor(rootStore, { routeStore, torahAnytimeSelectionViewStore, torahAnytimeWizardViewStore }) {\r\n super(rootStore, {\r\n queryConfig: {\r\n filter: new TorahAnytimeSpeakersFilter(),\r\n },\r\n });\r\n makeObservable(this);\r\n this.routeStore = routeStore;\r\n this.torahAnytimeSelectionViewStore = torahAnytimeSelectionViewStore;\r\n this.torahAnytimeWizardViewStore = torahAnytimeWizardViewStore;\r\n\r\n this.setGridStore(\r\n new MrbGridViewStore(this.rootStore, this.queryUtility, {\r\n onCellClick: (item) => this.onClickCellItem(item),\r\n })\r\n );\r\n\r\n this.reaction(\r\n () => (this.queryUtility.filter.search || \"\").trim(),\r\n () => {\r\n this.queryUtility.fetch();\r\n },\r\n {\r\n delay: 300,\r\n }\r\n );\r\n this.selectSpeakersByGender = this.selectSpeakersByGender.bind(this);\r\n this.clearSelection = this.clearSelection.bind(this);\r\n }\r\n\r\n onInit() {\r\n return this.queryUtility.initialize(true, true);\r\n }\r\n\r\n async selectSpeakersByGender(isFemale) {\r\n const topicIds = map(this.torahAnytimeSelectionViewStore.selectedTopics, (topic) => topic.topicId);\r\n const params = { topicIds: topicIds, isFemale: isFemale };\r\n\r\n try {\r\n this.loaderStore.suspend();\r\n const speakerIds = await this.routeStore.findSpeakersByGender(params);\r\n const speakers = map(speakerIds, (speakerId) => {\r\n return { id: speakerId };\r\n });\r\n\r\n if (speakerIds.length > 0) {\r\n this.torahAnytimeSelectionViewStore.selectSpeakers(speakers);\r\n }\r\n } catch (error) {\r\n this.rootStore.notificationStore.error(\"Error while selecting all rabbis or rebbetzins\");\r\n } finally {\r\n this.loaderStore.resume();\r\n }\r\n }\r\n\r\n clearSelection() {\r\n this.torahAnytimeSelectionViewStore.clearSelectedSpeakers();\r\n }\r\n\r\n async find(params) {\r\n this.abortExistingRequest();\r\n const topicIds = map(this.torahAnytimeSelectionViewStore.selectedTopics, (topic) => topic.topicId);\r\n params.topicIds = topicIds;\r\n this._abortController = new AbortController();\r\n\r\n if (this.torahAnytimeWizardViewStore.currentStep.id === \"speakers\") {\r\n if (this.torahAnytimeSelectionViewStore.selectedSpeakers.length > 0) {\r\n await this.validateSpeakers();\r\n }\r\n }\r\n\r\n return await this.routeStore.findSpeakers(params, this._abortController);\r\n }\r\n\r\n async validateSpeakers() {\r\n let allSpeakerIdsByTopics = await this.torahAnytimeWizardViewStore.selectedTopicsSpeakerIds;\r\n\r\n const speakersForDeselect = filter(\r\n this.torahAnytimeSelectionViewStore.selectedSpeakers,\r\n (speaker) => !includes(allSpeakerIdsByTopics, speaker.speakerId)\r\n );\r\n\r\n forEach(speakersForDeselect, (speaker) => {\r\n this.torahAnytimeSelectionViewStore.deselectSpeaker({ id: speaker.speakerId });\r\n });\r\n }\r\n\r\n abortExistingRequest() {\r\n if (this._abortController) {\r\n this._abortController.abort();\r\n }\r\n }\r\n\r\n onFetchError(error) {\r\n if (error && error.statusCode === httpStatusCodes.CanceledRequest) {\r\n return;\r\n }\r\n this.rootStore.notificationStore.error(\r\n \"Unexpected error occurred while trying to load content. Please contact the support team.\",\r\n error\r\n );\r\n }\r\n\r\n onDestroy() {\r\n this.abortExistingRequest();\r\n }\r\n}\r\n\r\nexport default TorahAnytimeSelectSpeakersViewStore;\r\n","import { computed, makeObservable } from \"mobx\";\r\nimport { MrbBaseListViewStore } from \"mrb/core\";\r\nimport { MrbGridViewStore } from \"mrb/components/grid\";\r\nimport { httpStatusCodes } from \"mrb/core/constants\";\r\nimport { TorahAnytimeTopicsFilter } from \"application/torah-anytime/filters\";\r\n\r\nclass TorahAnytimeSelectTopicsViewStore extends MrbBaseListViewStore {\r\n _abortController = null;\r\n\r\n @computed get isTopicSelectionEmpty() {\r\n return this.torahAnytimeSelectionViewStore.selectedTopics.length === 0;\r\n }\r\n\r\n constructor(rootStore, { routeStore, torahAnytimeSelectionViewStore }) {\r\n super(rootStore, {\r\n queryConfig: {\r\n filter: new TorahAnytimeTopicsFilter(),\r\n },\r\n });\r\n makeObservable(this);\r\n this.routeStore = routeStore;\r\n this.torahAnytimeSelectionViewStore = torahAnytimeSelectionViewStore;\r\n\r\n this.setGridStore(\r\n new MrbGridViewStore(this.rootStore, this.queryUtility, {\r\n onCellClick: (item) => this.onClickCellItem(item),\r\n })\r\n );\r\n\r\n this.reaction(\r\n () => (this.queryUtility.filter.search || \"\").trim(),\r\n () => {\r\n this.queryUtility.fetch();\r\n },\r\n {\r\n delay: 300,\r\n }\r\n );\r\n }\r\n\r\n onInit() {\r\n return this.queryUtility.initialize(true, true);\r\n }\r\n\r\n find(params) {\r\n this.abortExistingRequest();\r\n this._abortController = new AbortController();\r\n return this.routeStore.findTopics(params, this._abortController);\r\n }\r\n\r\n abortExistingRequest() {\r\n if (this._abortController) {\r\n this._abortController.abort();\r\n }\r\n }\r\n\r\n onFetchError(error) {\r\n if (error && error.statusCode === httpStatusCodes.CanceledRequest) {\r\n return;\r\n }\r\n this.rootStore.notificationStore.error(\r\n \"Unexpected error occurred while trying to load content. Please contact the support team.\",\r\n error\r\n );\r\n }\r\n\r\n onDestroy() {\r\n this.abortExistingRequest();\r\n }\r\n}\r\n\r\nexport default TorahAnytimeSelectTopicsViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { UserTorahAnytimeCollectionService, UserContentService } from \"common/services\";\r\n\r\nclass TorahAnytimeRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.service = rootStore.createApplicationService(UserTorahAnytimeCollectionService);\r\n this.userContentService = rootStore.createApplicationService(UserContentService);\r\n }\r\n\r\n async findUserTorahAnytimeCollections(deviceId, params) {\r\n const response = await this.service.findWthDeviceSettings(deviceId, params);\r\n return response.data;\r\n }\r\n\r\n async deleteUserTorahAnytimeCollection(item) {\r\n const response = await this.service.delete(item);\r\n return response.data;\r\n }\r\n\r\n async getPodcast(podcastId) {\r\n const response = await this.userContentService.getPodcast(podcastId);\r\n return response.data;\r\n }\r\n}\r\n\r\nexport default TorahAnytimeRouteStore;\r\n","import { action, computed, makeObservable, observable } from \"mobx\";\r\nimport { forEach } from \"lodash\";\r\n\r\nclass TorahAnytimeCollectionGridItemDecorator {\r\n @observable _userDeviceCollection = null;\r\n\r\n constructor(obj) {\r\n makeObservable(this);\r\n forEach(obj, (value, key) => {\r\n if (key === \"_userDeviceCollection\") {\r\n this.setIsTurnedOn(value);\r\n } else {\r\n this[key] = value;\r\n }\r\n });\r\n }\r\n\r\n @computed get userDeviceCollection() {\r\n return this._userDeviceCollection;\r\n }\r\n\r\n set userDeviceCollection(value) {\r\n this.setUserDeviceCollection(value);\r\n }\r\n\r\n @action.bound\r\n setUserDeviceCollection(value) {\r\n this._userDeviceCollection = value;\r\n }\r\n}\r\n\r\nexport default TorahAnytimeCollectionGridItemDecorator;\r\n","import { action, computed, observable, makeObservable } from \"mobx\";\r\nimport { MrbBaseListViewStore } from \"mrb/core\";\r\nimport { MrbGridViewStore } from \"mrb/components/grid\";\r\nimport { MrbSimpleSelectStore } from \"mrb/components/select\";\r\nimport { MrbModalParams } from \"mrb/common/models\";\r\nimport { TorahAnytimeCollectionGridItemDecorator } from \"application/torah-anytime/models\";\r\n\r\nclass TorahAnytimeViewStore extends MrbBaseListViewStore {\r\n id = null;\r\n @observable torahAnytimePodcast;\r\n\r\n @computed get selectedDevice() {\r\n return this.rootStore.userDeviceStore.selectedDevice;\r\n }\r\n\r\n constructor(rootStore, { routeStore }) {\r\n const id = rootStore.routerStore.routerState.params.id;\r\n super(rootStore, {\r\n queryConfig: {\r\n embed: \"speakers,speakers.speaker,topics,topics.topic\",\r\n orderBy: \"name\",\r\n orderDirection: \"asc\",\r\n },\r\n });\r\n makeObservable(this);\r\n this.id = id;\r\n this.routeStore = routeStore;\r\n\r\n this.setGridStore(\r\n new MrbGridViewStore(this.rootStore, this.queryUtility, {\r\n onCellClick: (item) => this.goToWizardPage(item),\r\n actions: {\r\n edit: {\r\n onClick: (item) => this.goToWizardPage(item),\r\n },\r\n delete: {\r\n onClick: (item) => this.delete(item),\r\n },\r\n },\r\n mapper: (item) => {\r\n return new TorahAnytimeCollectionGridItemDecorator({\r\n ...item,\r\n });\r\n },\r\n })\r\n );\r\n\r\n this.deviceSelectStore = new MrbSimpleSelectStore(\r\n {\r\n textKey: \"deviceName\",\r\n valueKey: \"id\",\r\n actions: {\r\n onChange: (option) => {\r\n this.rootStore.userDeviceStore.setSelectedDevice(option.item);\r\n },\r\n },\r\n },\r\n this.rootStore.userDeviceStore.devices\r\n );\r\n this.deviceSelectStore.setSelectedItem(this.rootStore.userDeviceStore.selectedDevice);\r\n\r\n this.goToCreateNewCollectionPage = this.goToCreateNewCollectionPage.bind(this);\r\n this.displayTorahAnytimeAvailabilityModal = this.displayTorahAnytimeAvailabilityModal.bind(this);\r\n this.disableTorahAnytimeAvailability = this.disableTorahAnytimeAvailability.bind(this);\r\n\r\n this.torahAnytimeAvailabilityModal = new MrbModalParams(\r\n {\r\n onClose: () => {},\r\n },\r\n {\r\n disableTorahAnytimeAvailabilityModal: this.disableTorahAnytimeAvailability,\r\n }\r\n );\r\n\r\n this.reaction(\r\n () => this.selectedDevice,\r\n () => {\r\n this.queryUtility.fetch();\r\n }\r\n );\r\n }\r\n\r\n onInit() {\r\n this.displayTorahAnytimeAvailabilityModal();\r\n return Promise.all([this.queryUtility.initialize(), this.fetchTorahAnytimePodcast(this.id)]);\r\n }\r\n\r\n find(params) {\r\n params.podcastId = this.id;\r\n return this.routeStore.findUserTorahAnytimeCollections(this.selectedDevice.id, params);\r\n }\r\n\r\n delete = (item) => {\r\n this.rootStore.confirmDialogStore.showConfirm({\r\n message: \"Do you want to delete playlist?\",\r\n onConfirm: async () => {\r\n try {\r\n await this.routeStore.deleteUserTorahAnytimeCollection(item);\r\n this.queryUtility.fetch();\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred. Unable to delete playlist.\",\r\n err\r\n );\r\n }\r\n },\r\n yesLabel: \"Delete\",\r\n noLabel: \"Cancel\",\r\n description: \"You won't be able to revert this action.\",\r\n });\r\n };\r\n\r\n goToCreateNewCollectionPage() {\r\n this.rootStore.routerStore.goTo(\"master.application.home.torah-anytime.create\", { id: this.id });\r\n }\r\n\r\n goToWizardPage = (item) => {\r\n this.rootStore.routerStore.goTo(\"master.application.home.torah-anytime.edit\", {\r\n id: this.id,\r\n collectionId: item.id,\r\n });\r\n };\r\n\r\n async fetchTorahAnytimePodcast(id) {\r\n try {\r\n const data = await this.routeStore.getPodcast(id);\r\n this.setTorahAnytimePodcast(data);\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n\r\n displayTorahAnytimeAvailabilityModal() {\r\n if (this.rootStore.userStore.isTorahAnytimeAvailabilityVisible) {\r\n this.torahAnytimeAvailabilityModal.open();\r\n }\r\n }\r\n\r\n async disableTorahAnytimeAvailability() {\r\n try {\r\n this.torahAnytimeAvailabilityModal.close();\r\n this.rootStore.mainLoaderStore.suspend();\r\n await this.rootStore.userStore.disableTorahAnytimeAvailability();\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred while trying to update user settings.\",\r\n err\r\n );\r\n } finally {\r\n this.rootStore.mainLoaderStore.resume();\r\n }\r\n }\r\n\r\n @action.bound\r\n setTorahAnytimePodcast(item) {\r\n this.torahAnytimePodcast = item;\r\n }\r\n}\r\n\r\nexport default TorahAnytimeViewStore;\r\n","import { computed, observable, action, makeObservable, toJS } from \"mobx\";\r\nimport { MrbBaseViewStore } from \"mrb/core\";\r\nimport { httpStatusCodes } from \"mrb/core/constants\";\r\nimport {\r\n TorahAnytimeCreatePlaylist,\r\n TorahAnytimeSelectSpeakers,\r\n TorahAnytimeSelectTopics,\r\n} from \"application/torah-anytime/components\";\r\nimport { TorahAnytimeSelectionViewStore } from \"application/torah-anytime/stores\";\r\nimport { forEach, map } from \"lodash\";\r\n\r\nclass TorahAnytimeWizardViewStore extends MrbBaseViewStore {\r\n collectionId = null;\r\n podcastId = null;\r\n steps = [\r\n {\r\n title: \"APPLICATION.TORAH_ANYTIME.EDIT.SELECT_TOPICS.STEP_TITLE\",\r\n id: \"topics\",\r\n component: TorahAnytimeSelectTopics,\r\n },\r\n {\r\n title: \"APPLICATION.TORAH_ANYTIME.EDIT.SELECT_SPEAKERS.STEP_TITLE\",\r\n id: \"speakers\",\r\n component: TorahAnytimeSelectSpeakers,\r\n },\r\n {\r\n title: \"APPLICATION.TORAH_ANYTIME.EDIT.CREATE_PLAYLIST.STEP_TITLE\",\r\n id: \"playlist\",\r\n component: TorahAnytimeCreatePlaylist,\r\n },\r\n ];\r\n\r\n @observable selectedSpeakers = [];\r\n @observable selectedTopics = [];\r\n @observable item = null;\r\n @observable torahAnytimePodcast = null;\r\n @observable selectedTopicsSpeakerIds = [];\r\n\r\n get maximumNumberOfSteps() {\r\n return this.steps.length;\r\n }\r\n\r\n @observable stepIndex = 0;\r\n\r\n @computed get currentStep() {\r\n if (this.steps[this.stepIndex].id === \"speakers\") {\r\n const topicIds = map(this.torahAnytimeSelectionViewStore.selectedTopics, (topic) => topic.topicId);\r\n const resource = { topicIds: topicIds };\r\n this.selectedTopicsSpeakerIds = this.routeStore.findSpeakerIdsByTopicIds(resource);\r\n }\r\n return this.steps[this.stepIndex];\r\n }\r\n\r\n @computed get hasNextStep() {\r\n return this.stepIndex < this.maximumNumberOfSteps - 1;\r\n }\r\n\r\n @computed get hasPreviousStep() {\r\n return this.stepIndex > 0;\r\n }\r\n\r\n constructor(rootStore, { routeStore }) {\r\n const collectionId = rootStore.routerStore.routerState.params.collectionId;\r\n const podcastId = rootStore.routerStore.routerState.params.id;\r\n super(rootStore);\r\n makeObservable(this);\r\n this.collectionId = collectionId;\r\n this.podcastId = podcastId;\r\n this.routeStore = routeStore;\r\n this.torahAnytimeSelectionViewStore = new TorahAnytimeSelectionViewStore(rootStore);\r\n }\r\n\r\n onInit() {\r\n return Promise.all([this.initializeResource(), this.getTorahAnytimePodcast(this.podcastId)]);\r\n }\r\n\r\n @action.bound\r\n nextStep() {\r\n if (this.hasNextStep) {\r\n this.goToStep(this.stepIndex + 1);\r\n }\r\n }\r\n\r\n @action.bound\r\n previousStep() {\r\n if (this.hasPreviousStep) {\r\n this.goToStep(this.stepIndex - 1);\r\n }\r\n }\r\n\r\n @action.bound\r\n goToStep(step) {\r\n this.stepIndex = step;\r\n }\r\n\r\n @action.bound\r\n createCollection(data) {\r\n const speakers = toJS(this.torahAnytimeSelectionViewStore.selectedSpeakers);\r\n const topics = toJS(this.torahAnytimeSelectionViewStore.selectedTopics);\r\n const newCollection = this.prepareCollectionResource(data.name, topics, speakers);\r\n return this.routeStore.createUserTorahAnytimeCollection(newCollection);\r\n }\r\n\r\n @action.bound\r\n updateCollection(data) {\r\n const speakers = toJS(this.torahAnytimeSelectionViewStore.selectedSpeakers);\r\n const topics = toJS(this.torahAnytimeSelectionViewStore.selectedTopics);\r\n const newCollection = this.prepareCollectionResource(data.name, topics, speakers);\r\n newCollection.id = this.item.id;\r\n return this.routeStore.updateUserTorahAnytimeCollection(newCollection);\r\n }\r\n\r\n async initializeResource() {\r\n if (this.collectionId) {\r\n try {\r\n await this.getResource(this.collectionId);\r\n return true;\r\n } catch (err) {\r\n if (err.statusCode === httpStatusCodes.NotFound) {\r\n await this.rootStore.routerStore.goToNotFound();\r\n return false;\r\n } else {\r\n throw err;\r\n }\r\n }\r\n }\r\n }\r\n\r\n async getResource(id) {\r\n const item = await this.routeStore.getUserTorahAnytimeCollection(id);\r\n this.setItem(item);\r\n }\r\n\r\n @action.bound\r\n setItem(item) {\r\n this.item = item;\r\n this.torahAnytimeSelectionViewStore.initializeSelection(this.item.topics, this.item.speakers);\r\n }\r\n\r\n @action.bound\r\n async getTorahAnytimePodcast(podcastId) {\r\n if (podcastId) {\r\n try {\r\n const torahAnytimePodcast = await this.routeStore.getPodcast(podcastId);\r\n this.setTorahAnytimePodcast(torahAnytimePodcast);\r\n } catch (err) {\r\n if (err.statusCode === httpStatusCodes.NotFound) {\r\n await this.rootStore.routerStore.goToNotFound();\r\n return false;\r\n } else {\r\n throw err;\r\n }\r\n }\r\n }\r\n }\r\n\r\n @action.bound\r\n setTorahAnytimePodcast(podcast) {\r\n this.torahAnytimePodcast = podcast;\r\n }\r\n\r\n prepareCollectionResource(name, selectedTopics, selectedSpeakers) {\r\n if (selectedSpeakers) {\r\n forEach(selectedSpeakers, (speaker) => {\r\n speaker.speaker = null;\r\n });\r\n }\r\n if (selectedTopics) {\r\n forEach(selectedTopics, (topic) => {\r\n topic.topic = null;\r\n });\r\n }\r\n const collection = {\r\n name: name,\r\n podcastId: this.podcastId,\r\n speakers: selectedSpeakers,\r\n topics: selectedTopics,\r\n };\r\n\r\n return collection;\r\n }\r\n}\r\n\r\nexport default TorahAnytimeWizardViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { TorahAnytimeService, UserTorahAnytimeCollectionService, UserContentService } from \"common/services\";\r\n\r\nclass TorahAnytimeWizardRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.service = rootStore.createApplicationService(TorahAnytimeService);\r\n this.userTorahAnytimeCollectionService = rootStore.createApplicationService(UserTorahAnytimeCollectionService);\r\n this.userContentService = rootStore.createApplicationService(UserContentService);\r\n }\r\n\r\n async findTopics(params, abortController) {\r\n const response = await this.service.findTopics(params, abortController);\r\n return response.data;\r\n }\r\n\r\n async findSpeakers(params, abortController) {\r\n const response = await this.service.findSpeakers(params, abortController);\r\n return response.data;\r\n }\r\n\r\n async findSpeakersByGender(filter) {\r\n const response = await this.service.findSpeakersByGender(filter);\r\n return response.data;\r\n }\r\n\r\n async findSpeakerIdsByTopicIds(filter) {\r\n const response = await this.service.findSpeakerIdsByTopicIds(filter);\r\n return response.data;\r\n }\r\n\r\n async createUserTorahAnytimeCollection(data) {\r\n const response = await this.userTorahAnytimeCollectionService.create(data);\r\n return response.data;\r\n }\r\n\r\n async updateUserTorahAnytimeCollection(data) {\r\n const response = await this.userTorahAnytimeCollectionService.update(data);\r\n return response.data;\r\n }\r\n\r\n async getUserTorahAnytimeCollection(id) {\r\n const response = await this.userTorahAnytimeCollectionService.get(id, {\r\n embed: \"topics,topics.topic,speakers,speakers.speaker\",\r\n });\r\n return response.data;\r\n }\r\n\r\n async getPodcast(podcastId) {\r\n const response = await this.userContentService.getPodcast(podcastId);\r\n return response.data;\r\n }\r\n}\r\n\r\nexport default TorahAnytimeWizardRouteStore;\r\n","import React from \"react\";\r\nimport { TorahAnytimeCollectionListItemTemplate } from \"themes/application/torah-anytime/components\";\r\nimport { TorahAnytimeCollectionListItemViewStore } from \"application/torah-anytime/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new TorahAnytimeCollectionListItemViewStore(rootStore, componentProps),\r\n \"torahAnytimeCollectionListItemViewStore\"\r\n)\r\nclass TorahAnytimeCollectionListItem extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default TorahAnytimeCollectionListItem;\r\n","import React from \"react\";\r\nimport { TorahAnytimeCreatePlaylistTemplate } from \"themes/application/torah-anytime/components\";\r\nimport { TorahAnytimeCollectionEditViewStore } from \"application/torah-anytime/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new TorahAnytimeCollectionEditViewStore(rootStore, componentProps),\r\n \"torahAnytimeCollectionEditViewStore\"\r\n)\r\nclass TorahAnytimeCreatePlaylist extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default TorahAnytimeCreatePlaylist;\r\n","import React from \"react\";\r\nimport { TorahAnytimeHeaderTemplate } from \"themes/application/torah-anytime/components\";\r\n\r\nfunction TorahAnytimeHeader(props) {\r\n return ;\r\n}\r\n\r\nexport default TorahAnytimeHeader;\r\n","import React from \"react\";\r\nimport { TorahAnytimeSelectSpeakersTemplate } from \"themes/application/torah-anytime/components\";\r\nimport { TorahAnytimeSelectSpeakersViewStore } from \"application/torah-anytime/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new TorahAnytimeSelectSpeakersViewStore(rootStore, componentProps),\r\n \"torahAnytimeSelectSpeakersViewStore\"\r\n)\r\nclass TorahAnytimeSelectSpeakers extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default TorahAnytimeSelectSpeakers;\r\n","import React from \"react\";\r\nimport { TorahAnytimeSelectTopicsTemplate } from \"themes/application/torah-anytime/components\";\r\nimport { TorahAnytimeSelectTopicsViewStore } from \"application/torah-anytime/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new TorahAnytimeSelectTopicsViewStore(rootStore, componentProps),\r\n \"torahAnytimeSelectTopicsViewStore\"\r\n)\r\nclass TorahAnytimeSelectTopics extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default TorahAnytimeSelectTopics;\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { HomePageLayout } from \"application/home/components\";\r\nimport { MrbGrid } from \"mrb/components/grid\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport {\r\n TorahAnytimeHeader,\r\n TorahAnytimeCollectionListItem,\r\n TorahAnytimeAvailabilityModal,\r\n} from \"application/torah-anytime/components\";\r\nimport { MrbPageHeader } from \"mrb/components/layout\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { observer } from \"mobx-react\";\r\nimport { MrbLineContentLoader } from \"baasic-react-bootstrap/src\";\r\n\r\nfunction TorahAnytimeTemplate({ torahAnytimeViewStore, t }) {\r\n const { gridStore, goToCreateNewCollectionPage, torahAnytimeAvailabilityModal } = torahAnytimeViewStore;\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n \r\n (\r\n \r\n )}\r\n t={t}\r\n cellRender={({ item, ...props }) => (\r\n \r\n )}\r\n emptyStateRender={() => }\r\n />\r\n
\r\n \r\n
\r\n );\r\n}\r\n\r\nTorahAnytimeTemplate.propTypes = {\r\n torahAnytimeViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nconst GridHeader = observer(function GridHeader({ torahAnytimeViewStore, t }) {\r\n const { gridStore, goToCreateNewCollectionPage } = torahAnytimeViewStore;\r\n return (\r\n gridStore.dataInitialized &&\r\n gridStore.hasData && (\r\n
\r\n

{t(\"APPLICATION.TORAH_ANYTIME.LIST.MY_PLAYLISTS\")}

\r\n \r\n
\r\n )\r\n );\r\n});\r\n\r\nfunction NoDataEmptyState({ onClickCreateNew, t }) {\r\n return (\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n

{t(\"APPLICATION.TORAH_ANYTIME.LIST.NO_DATA.TITLE\")}

\r\n

{t(\"APPLICATION.TORAH_ANYTIME.LIST.NO_DATA.DESCRIPTION\")}

\r\n
\r\n \r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default defaultTemplate(TorahAnytimeTemplate);\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { HomePageLayout } from \"application/home/components\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\n\r\nfunction TorahAnytimeWizardTemplate({ torahAnytimeWizardViewStore, t }) {\r\n const { currentStep, routeStore, torahAnytimeSelectionViewStore } = torahAnytimeWizardViewStore;\r\n return (\r\n \r\n {\r\n \r\n }\r\n \r\n );\r\n}\r\n\r\nTorahAnytimeWizardTemplate.propTypes = {\r\n torahAnytimeWizardViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default defaultTemplate(TorahAnytimeWizardTemplate);\r\n","import React from \"react\";\r\nimport { TorahAnytimeTemplate } from \"themes/application/torah-anytime/pages\";\r\nimport { TorahAnytimeViewStore } from \"application/torah-anytime/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new TorahAnytimeViewStore(rootStore, componentProps),\r\n \"torahAnytimeViewStore\"\r\n)\r\nclass TorahAnytime extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default TorahAnytime;\r\n","import React from \"react\";\r\nimport { TorahAnytimeWizardTemplate } from \"themes/application/torah-anytime/pages\";\r\nimport { TorahAnytimeWizardViewStore } from \"application/torah-anytime/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new TorahAnytimeWizardViewStore(rootStore, componentProps),\r\n \"torahAnytimeWizardViewStore\"\r\n)\r\nclass TorahAnytimeWizard extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default TorahAnytimeWizard;\r\n","import { moduleProviderFactory } from \"mrb/core\";\r\nimport { Home, HomeStation, HomePodcast, HomePodcastGroup } from \"application/home/pages\";\r\nimport { TorahAnytime, TorahAnytimeWizard } from \"application/torah-anytime/pages\";\r\nimport {\r\n HomeRouteStore,\r\n HomeStationRouteStore,\r\n HomePodcastRouteStore,\r\n HomePodcastGroupRouteStore,\r\n} from \"application/home/stores\";\r\nimport { TorahAnytimeRouteStore, TorahAnytimeWizardRouteStore } from \"application/torah-anytime/stores\";\r\n\r\n(function () {\r\n moduleProviderFactory.module(\"application\").register({\r\n name: \"application.home\",\r\n routes: [\r\n {\r\n name: \"master.application.home\",\r\n pattern: \"/home\",\r\n children: [\r\n {\r\n name: \"master.application.home.list\",\r\n pattern: \"\",\r\n component: Home,\r\n store: HomeRouteStore,\r\n data: {\r\n title: \"APPLICATION.HOME.LIST.TITLE\",\r\n },\r\n },\r\n {\r\n name: \"master.application.home.station\",\r\n pattern: \"/station/:id\",\r\n component: HomeStation,\r\n store: HomeStationRouteStore,\r\n },\r\n {\r\n name: \"master.application.home.podcast\",\r\n pattern: \"/podcast/:id\",\r\n component: HomePodcast,\r\n store: HomePodcastRouteStore,\r\n },\r\n {\r\n name: \"master.application.home.podcast-group\",\r\n pattern: \"/podcast/:id/group\",\r\n component: HomePodcastGroup,\r\n store: HomePodcastGroupRouteStore,\r\n },\r\n {\r\n name: \"master.application.home.torah-anytime\",\r\n pattern: \"/torahanytime/:id\",\r\n component: TorahAnytime,\r\n store: TorahAnytimeRouteStore,\r\n },\r\n {\r\n name: \"master.application.home.torah-anytime.create\",\r\n pattern: \"torahanytime/:id/collection/create\",\r\n component: TorahAnytimeWizard,\r\n store: TorahAnytimeWizardRouteStore,\r\n },\r\n {\r\n name: \"master.application.home.torah-anytime.edit\",\r\n pattern: \"/torahanytime/:id/collection/:collectionId/edit\",\r\n component: TorahAnytimeWizard,\r\n store: TorahAnytimeWizardRouteStore,\r\n },\r\n ],\r\n },\r\n ],\r\n menu: [\r\n {\r\n title: \"APPLICATION.MENU.HOME\",\r\n order: 2,\r\n icon: \"home\",\r\n route: \"master.application.home.list\",\r\n },\r\n ],\r\n });\r\n})();\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbModal } from \"mrb/components/modal\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { currencyFormatter } from \"mrb/common/formatting\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\n\r\nfunction ProducerRevenueTransferSuccessModalTemplate({ modalParams, t }) {\r\n const { params, data = {} } = modalParams;\r\n const formattedPrice = currencyFormatter.format(data.amount, {\r\n currency: \"USD\",\r\n });\r\n return (\r\n \r\n
\r\n
\r\n

Success!

\r\n
\r\n
\r\n

{formattedPrice} has been transferred to your Stripe Connect account.

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nProducerRevenueTransferSuccessModalTemplate.propTypes = {\r\n modalParams: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default defaultTemplate(ProducerRevenueTransferSuccessModalTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbContentLoader } from \"mrb/components/loader\";\r\nimport { currencyFormatter } from \"mrb/common/formatting\";\r\nimport { observer } from \"mobx-react\";\r\nimport { AdminProducerSummaryLoader } from \"administration/producer/components\";\r\n\r\nfunction ProducerSummaryPreviewTemplate({ producerRevenueViewStore, t }) {\r\n const { summaryData, loaderStore, producers } = producerRevenueViewStore;\r\n return (\r\n
\r\n

Summary

\r\n
\r\n }>\r\n {() => (\r\n
\r\n {summaryData && (\r\n
\r\n {producers.length === 1 && (\r\n \r\n
\r\n
\r\n

Producer

\r\n\r\n

\r\n {summaryData.producerName}\r\n

\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n

Account Balance

\r\n
\r\n

\r\n {currencyFormatter.format(\r\n summaryData.accountBalance ? summaryData.accountBalance : 0,\r\n {\r\n currency: \"USD\",\r\n }\r\n )}\r\n

\r\n
\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nProducerSummaryPreviewTemplate.propTypes = {\r\n producerPreviewViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default observer(ProducerSummaryPreviewTemplate);\r\n","import React from \"react\";\r\n\r\nconst ProducerTopTrendingEmptyStateTemplate = () => {\r\n return (\r\n
\r\n \r\n

No stats

\r\n

No content found.

\r\n
\r\n );\r\n};\r\n\r\nexport default ProducerTopTrendingEmptyStateTemplate;\r\n","import React, { useCallback, useState } from \"react\";\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nconst ProducerRevenueLoaderTemplate = (props) => {\r\n const loaderHeight = 110;\r\n const [loaderWidth, setLoaderWidth] = useState(0);\r\n\r\n const ref = useCallback((node) => {\r\n if (node !== null) setLoaderWidth(node.getBoundingClientRect().width);\r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default ProducerRevenueLoaderTemplate;\r\n","import React from \"react\";\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nconst ProducerStatsLoaderTemplate = (props) => {\r\n const { row = 10, loadMore, noButton, ...rest } = props;\r\n const screenwidth = window.innerWidth;\r\n const items = [];\r\n let loaderWidth;\r\n let loaderSml = false;\r\n\r\n if (screenwidth > 766) {\r\n loaderWidth = 768;\r\n } else {\r\n loaderWidth = screenwidth;\r\n }\r\n\r\n if (screenwidth < 543) {\r\n loaderSml = true;\r\n }\r\n\r\n let y = loadMore ? 30 : 2;\r\n let imgY = loadMore ? 16 : 3;\r\n\r\n for (let i = 0; i < row; i++) {\r\n let textWidth = Math.random() * 120 + 60;\r\n items.push(\r\n \r\n {loadMore && i === 0 && }\r\n \r\n\r\n \r\n\r\n \r\n {loaderSml && }\r\n \r\n \r\n );\r\n\r\n y += 56;\r\n imgY += 56.33;\r\n }\r\n\r\n return (\r\n
\r\n \r\n {items}\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default ProducerStatsLoaderTemplate;\r\n","import React, { useCallback, useState } from \"react\";\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nconst ProducerTotalLoaderTemplate = () => {\r\n const [loaderWidth, setLoaderWidth] = useState(0);\r\n\r\n const ref = useCallback((node) => {\r\n if (node !== null) setLoaderWidth(node.getBoundingClientRect().width);\r\n }, []);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ProducerTotalLoaderTemplate;\r\n","import React from \"react\";\r\nimport { ProducerRevenueTransferSuccessModalTemplate } from \"themes/application/producer/components\";\r\n\r\nfunction ProducerRevenueTransferSuccessModal(props) {\r\n return ;\r\n}\r\n\r\nexport default ProducerRevenueTransferSuccessModal;\r\n","import React from \"react\";\r\nimport { ProducerSummaryPreviewTemplate } from \"themes/application/producer/components\";\r\n\r\nfunction ProducerSummaryPreview(props) {\r\n return ;\r\n}\r\n\r\nexport default ProducerSummaryPreview;\r\n","import React from \"react\";\r\nimport { ProducerRevenueLoaderTemplate } from \"themes/application/producer/components\";\r\n\r\nfunction ProducerRevenueLoader(props) {\r\n return ;\r\n}\r\n\r\nexport default ProducerRevenueLoader;\r\n","import React from \"react\";\r\nimport { ProducerStatsLoaderTemplate } from \"themes/application/producer/components\";\r\n\r\nfunction ProducerStatsLoader(props) {\r\n return ;\r\n}\r\n\r\nexport default ProducerStatsLoader;\r\n","import React from \"react\";\r\nimport { ProducerTotalLoaderTemplate } from \"themes/application/producer/components\";\r\n\r\nfunction ProducerTotalLoader(props) {\r\n return ;\r\n}\r\n\r\nexport default ProducerTotalLoader;\r\n","import { useEffect, useState } from \"react\";\r\n\r\nconst useElementScrollPosition = (elem) => {\r\n const [elemScrollPosition, setElemScrollPosition] = useState(0);\r\n\r\n useEffect(() => {\r\n if (!elem) return;\r\n\r\n const updatePosition = () => {\r\n setElemScrollPosition(elem.scrollLeft);\r\n }\r\n\r\n elem.addEventListener(\"scroll\", updatePosition);\r\n\r\n updatePosition();\r\n\r\n return () => elem.removeEventListener(\"scroll\", updatePosition);\r\n }, [elem]);\r\n\r\n return elemScrollPosition;\r\n};\r\n\r\nexport default useElementScrollPosition;","import { useEffect, useState } from \"react\";\r\n\r\n\r\nfunction useWindowSize() {\r\n // Initialize state with undefined width/height so server and client renders match\r\n // Learn more here: https://joshwcomeau.com/react/the-perils-of-rehydration/\r\n const [windowSize, setWindowSize] = useState({\r\n width: 0,\r\n height: 0,\r\n });\r\n\r\n useEffect(() => {\r\n // Handler to call on window resize\r\n function handleResize() {\r\n // Set window width/height to state\r\n setWindowSize({\r\n width: window.innerWidth,\r\n height: window.innerHeight,\r\n });\r\n }\r\n // Add event listener\r\n window.addEventListener(\"resize\", handleResize);\r\n // Call handler right away so state gets updated with initial window size\r\n handleResize();\r\n // Remove event listener on cleanup\r\n return () => window.removeEventListener(\"resize\", handleResize);\r\n }, []); // Empty array ensures that effect is only run on mount\r\n\r\n return windowSize;\r\n}\r\n\r\nexport default useWindowSize;","const useSideScroll = ({ element, direction, speed, distance, step }) => {\r\n let scrollAmount = 0;\r\n\r\n const slideTimer = setInterval(function () {\r\n if (direction === \"left\") {\r\n element.scrollLeft -= step;\r\n } else {\r\n element.scrollLeft += step;\r\n }\r\n\r\n scrollAmount += step;\r\n\r\n if (scrollAmount >= distance) {\r\n window.clearInterval(slideTimer);\r\n }\r\n }, speed);\r\n}\r\n\r\nexport default useSideScroll;\r\n\r\n","import React, { useCallback, useEffect, useState } from \"react\";\r\n/* eslint-disable react-hooks/rules-of-hooks */\r\nimport { mergeCss } from \"baasic-react-bootstrap/src/common\";\r\nimport { useElementScrollPosition, useSideScroll, useWindowSize } from \"common/hooks\";\r\n\r\nconst Tabs = (props) => {\r\n const { value, id, options, disabled, onChange } = props;\r\n\r\n const [disabledArrows, setDisabledArrows] = useState(false);\r\n const [tabsRef, setTabsRef] = useState();\r\n const [scrollPosition, setScrollPosition] = useState({ start: true, end: false });\r\n\r\n const elemScrollPosition = useElementScrollPosition(tabsRef || null);\r\n const { width } = useWindowSize();\r\n\r\n const handleChangeOnResize = useCallback(() => {\r\n if (!tabsRef) return;\r\n const scrollStart = tabsRef.scrollLeft === 0;\r\n const scrollEnd = tabsRef.scrollWidth <= Math.ceil(tabsRef.scrollLeft) + Math.ceil(tabsRef.clientWidth) + 12;\r\n\r\n if (tabsRef.scrollLeft > 0 && !scrollEnd) {\r\n setScrollPosition({ start: false, end: false });\r\n } else if (scrollStart) {\r\n setScrollPosition({ start: true, end: false });\r\n } else if (scrollEnd) {\r\n setScrollPosition({ start: false, end: true });\r\n }\r\n }, [tabsRef]);\r\n\r\n useEffect(() => {\r\n handleChangeOnResize();\r\n }, [elemScrollPosition, handleChangeOnResize]);\r\n\r\n useEffect(() => {\r\n const timer = setTimeout(() => {\r\n handleChangeOnResize();\r\n }, 400);\r\n\r\n return () => clearTimeout(timer);\r\n }, [width, tabsRef, handleChangeOnResize]);\r\n\r\n const handleScrollAction = (direction) => {\r\n if (\r\n !tabsRef ||\r\n (direction === \"left\" && scrollPosition.start) ||\r\n (direction === \"right\" && scrollPosition.end)\r\n ) {\r\n return;\r\n }\r\n\r\n useSideScroll({\r\n element: tabsRef,\r\n direction: direction,\r\n speed: 20,\r\n distance: 400,\r\n step: 20,\r\n });\r\n\r\n setTimeout(() => {\r\n handleChangeOnResize();\r\n }, 400);\r\n };\r\n\r\n return (\r\n
\r\n {disabledArrows ? null : (\r\n handleScrollAction(\"left\")}\r\n >\r\n \r\n \r\n )}\r\n\r\n {\r\n if (!tabsRef) return;\r\n setTabsRef(tabsRef);\r\n setDisabledArrows(tabsRef.scrollWidth <= tabsRef.clientWidth);\r\n }}\r\n >\r\n {options.map((option, index) => {\r\n const itemId = `${id}_${option.id}`;\r\n const isChecked = value === option.id;\r\n\r\n return (\r\n \r\n onChange(option.id)}\r\n tabIndex={0}\r\n className={mergeCss(\r\n \"c-segmented c-segmented--secondary c-segmented--secondary--lrg\",\r\n index === 0 ? \"c-segmented--first\" : \"\",\r\n index === options.length - 1 ? \"c-segmented--last\" : \"\",\r\n isChecked ? \"active\" : \"\"\r\n )}\r\n />\r\n\r\n \r\n \r\n );\r\n })}\r\n
\r\n\r\n {disabledArrows ? null : (\r\n handleScrollAction(\"right\")}\r\n >\r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default Tabs;\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { ProducerReportsTable } from \"common/components/producer\";\r\nimport { TableNoDataOverlay } from \"common/components\";\r\nimport { ProducerRevenueLoader, ProducerSummaryPreview } from \"application/producer/components\";\r\nimport { MrbRouterLink } from \"mrb/core/infrastructure/router\";\r\nimport { MrbContentLoader } from \"mrb/components/loader\";\r\nimport { ProducerAccountPreviewBalance, ProducerAccountPreviewRevenueTransaction } from \"common/components/producer\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { observer } from \"mobx-react\";\r\nimport { MrbButton } from \"baasic-react-bootstrap/src\";\r\nimport Tabs from \"common/components/tabs/Tabs\";\r\n\r\nfunction ProducerRevenueTemplate({ producerRevenueViewStore, t }) {\r\n const { reportsGridStore, revenueGridStore, balanceGridStore, producers, selectedProducerId, selectProducer } =\r\n producerRevenueViewStore;\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n

\r\n {t(\"APPLICATION.PRODUCER.REVENUE.REPORTS_TITLE\")}\r\n

\r\n {producers && producers.length > 1 && (\r\n
\r\n {\r\n selectProducer(value);\r\n }}\r\n />\r\n
\r\n )}\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n );\r\n}\r\n\r\nProducerRevenueTemplate.propTypes = {\r\n producerRevenueViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nconst Actions = observer(function Actions({ producerRevenueViewStore, t }) {\r\n const {\r\n completedOnboarding,\r\n isStripeAccountConnected,\r\n createStripeAccount,\r\n stripeAccountLink,\r\n isCreateStripeAccountButtonDisabled,\r\n loaderStore,\r\n } = producerRevenueViewStore;\r\n return (\r\n
\r\n

Actions

\r\n
\r\n }>\r\n {() => (\r\n
\r\n
\r\n {completedOnboarding && (\r\n \r\n Pay out balance\r\n \r\n )}\r\n {!completedOnboarding && !isStripeAccountConnected && (\r\n
\r\n \r\n
\r\n )}\r\n {!completedOnboarding && isStripeAccountConnected && (\r\n
\r\n

\r\n Please click button below to complete account creation\r\n

\r\n (window.location.href = stripeAccountLink)}\r\n className=\"c-btn c-btn--base c-btn--primary c-btn--full u-mar--bottom--xsml\"\r\n />\r\n
\r\n )}\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n );\r\n});\r\n\r\nexport default defaultTemplate(ProducerRevenueTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { ProducerPaymentReportSummary } from \"administration/producer/components\";\r\nimport { MrbRouterLink } from \"mrb/core/infrastructure/router\";\r\nimport { ProducerReportLayout, ProducerReport } from \"common/components/producer\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\n\r\nfunction ProducerRevenueReportTemplate({ producerRevenueReportViewStore, t }) {\r\n return (\r\n }\r\n t={t}\r\n >\r\n
\r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n );\r\n}\r\n\r\nProducerRevenueReportTemplate.propTypes = {\r\n producerRevenueReportViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nfunction BackButton({ producerId }) {\r\n return (\r\n \r\n \r\n \r\n \r\n Back\r\n \r\n );\r\n}\r\n\r\nexport default defaultTemplate(ProducerRevenueReportTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbPage, MrbPageHeader } from \"mrb/components/layout\";\r\nimport { MrbEditFormLayout } from \"mrb/components\";\r\nimport { MrbRouterLink } from \"mrb/core/infrastructure/router\";\r\nimport { CurrencyInputField } from \"common/components\";\r\nimport { currencyFormatter } from \"mrb/common/formatting\";\r\nimport { ProducerRevenueTransferSuccessModal } from \"application/producer/components\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\n\r\nfunction ProducerRevenueTransferTemplate({ producerRevenueTransferViewStore, t }) {\r\n const { form, currentAccountBalance, newAccountBalance, transferRevenueSuccessModal } =\r\n producerRevenueTransferViewStore;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n Producer Account\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n

Current Account Balance

\r\n
\r\n {currencyFormatter.format(currentAccountBalance, {\r\n currency: \"USD\",\r\n })}\r\n
\r\n
\r\n
\r\n

New Account Balance

\r\n
\r\n {currencyFormatter.format(newAccountBalance, {\r\n currency: \"USD\",\r\n })}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n );\r\n}\r\nProducerRevenueTransferTemplate.propTypes = {\r\n producerRevenueTransferViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default defaultTemplate(ProducerRevenueTransferTemplate);\r\n","import React from \"react\";\r\nimport { MrbPage, MrbPageHeader } from \"mrb/components/layout\";\r\nimport PropTypes from \"prop-types\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { MrbRouterLink } from \"mrb/core/infrastructure/router\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\nimport { producerTypes } from \"common/constants\";\r\n\r\nfunction ProducerPreviewTemplate({ producerPreviewViewStore, renderChildRoute, t, ...props }) {\r\n const { selectedTab, setSelectedTab, producerTypeSlug } = producerPreviewViewStore;\r\n\r\n function getHeaderTitle() {\r\n if (producerTypeSlug === producerTypes.podcasterSlug) {\r\n return t(\"APPLICATION.PRODUCER.PREVIEW.PODCASTER_HEADER_TITLE\");\r\n } else if (producerTypeSlug === producerTypes.artistSlug) {\r\n return t(\"APPLICATION.PRODUCER.PREVIEW.ARTIST_HEADER_TITLE\");\r\n } else {\r\n return \"Producer Account\";\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n
{getHeaderTitle()}
\r\n
\r\n\r\n
\r\n {producerTypeSlug !== producerTypes.podcasterSlug && (\r\n \r\n setSelectedTab(1)}\r\n className={mergeCss(\r\n \"c-tabs__item\",\r\n selectedTab.title === \"Dashboard\" && \"c-tabs__item--active\"\r\n )}\r\n routeName=\"master.application.producer.preview.dashboard\"\r\n >\r\n {t(\"APPLICATION.PRODUCER.PREVIEW.DASHBOARD_TITLE\")}\r\n \r\n setSelectedTab(2)}\r\n className={mergeCss(\r\n \"c-tabs__item\",\r\n selectedTab.title === \"Revenue\" && \"c-tabs__item--active\"\r\n )}\r\n routeName=\"master.application.producer.preview.revenue\"\r\n >\r\n {t(\"APPLICATION.PRODUCER.PREVIEW.REVENUE_TITLE\")}\r\n \r\n \r\n )}\r\n
\r\n\r\n {renderChildRoute(props)}\r\n
\r\n
\r\n );\r\n}\r\n\r\nProducerPreviewTemplate.propTypes = {\r\n producerPreviewViewStore: PropTypes.object.isRequired,\r\n renderChildRoute: PropTypes.func,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default defaultTemplate(ProducerPreviewTemplate);\r\n","import React, { useRef } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\nimport { numberFormatter } from \"common/utils\";\r\nimport { producerTypes } from \"common/constants\";\r\nimport { MrbSimpleSelect } from \"mrb/components/select\";\r\nimport { MrbDatePicker } from \"mrb/components/date-picker\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { observer } from \"mobx-react\";\r\nimport { MrbRadioButtons } from \"baasic-react-bootstrap/src\";\r\nimport { MrbPageHeader } from \"mrb/components/layout\";\r\nimport { MrbInfiniteScrollGrid } from \"mrb/components/infinite-scroll-grid\";\r\nimport { ProducerStatsLoader, ProducerTotalLoader } from \"application/producer/components\";\r\nimport { StatsWidgetEmptyState } from \"common/components/empty-state\";\r\n\r\nfunction ProducerDashboardTemplate({ producerDashboardViewStore, t }) {\r\n const {\r\n nakiNigunStatsInfiniteScrollStore,\r\n nakiTalesStatsInfiniteScrollStore,\r\n producerTypeSlug,\r\n producerDashboardTimeRangeViewStore,\r\n statsFilterOptions,\r\n nakiNigunFilterSelectedOptionValue,\r\n nakiTalesFilterSelectedOptionValue,\r\n setNakiNigunFilterSelectedOptionValue,\r\n setNakiTalesFilterSelectedOptionValue,\r\n nakiNigunTotalListeners,\r\n nakiTalesTotalListeners,\r\n } = producerDashboardViewStore;\r\n\r\n function getHeaderTitle() {\r\n if (producerTypeSlug === producerTypes.podcasterSlug) {\r\n return t(\"APPLICATION.PRODUCER.PREVIEW.PODCASTER_HEADER_TITLE\");\r\n } else if (producerTypeSlug === producerTypes.artistSlug) {\r\n return t(\"APPLICATION.PRODUCER.PREVIEW.ARTIST_HEADER_TITLE\");\r\n } else {\r\n return \"Producer Account\";\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n
\r\n {getHeaderTitle()}\r\n \r\n
\r\n
\r\n
\r\n {producerTypeSlug === producerTypes.podcasterSlug ? (\r\n
\r\n \r\n
\r\n ) : producerTypeSlug === producerTypes.artistSlug ? (\r\n <>\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n ) : (\r\n <>\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n )}\r\n
\r\n
\r\n );\r\n}\r\n\r\nProducerDashboardTemplate.propTypes = {\r\n producerDashboardViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nconst DatePickerTemplate = observer(function DatePickerTemplate({ producerDashboardTimeRangeViewStore, t }) {\r\n const { filter, maxDate, minDate, applyFilter, setToDate, setFromDate, isDateRangeDisabled, timeRangeSelectStore } =\r\n producerDashboardTimeRangeViewStore;\r\n\r\n return (\r\n
\r\n \r\n\r\n
\r\n \r\n -\r\n \r\n
\r\n\r\n \r\n
\r\n );\r\n});\r\n\r\nconst NakiTalesStats = observer(function NakiTalesStats({\r\n nakiTalesStatsInfiniteScrollStore,\r\n title,\r\n statsFilterOptions,\r\n nakiTalesFilterSelectedOptionValue,\r\n setNakiTalesFilterSelectedOptionValue,\r\n totalListeners,\r\n t,\r\n}) {\r\n const { gridStore } = nakiTalesStatsInfiniteScrollStore;\r\n const scrollParentRef = useRef(null);\r\n return (\r\n
\r\n
\r\n

{title}

\r\n \r\n
\r\n {totalListeners != null ? (\r\n nakiTalesFilterSelectedOptionValue === 1 ? (\r\n
\r\n

{t(\"APPLICATION.PRODUCER.DASHBOARD.TOTAL.STREAMS\")}

\r\n

{numberFormatter.format(totalListeners)}

\r\n
\r\n ) : (\r\n
\r\n

{t(\"APPLICATION.PRODUCER.DASHBOARD.TOTAL.LISTENERS\")}

\r\n

{numberFormatter.format(totalListeners)}

\r\n
\r\n )\r\n ) : (\r\n \r\n )}\r\n
\r\n }\r\n loadMoreLoader={}\r\n emptyStateRenderer={() => (\r\n \r\n )}\r\n classNameOverride=\"\"\r\n store={gridStore}\r\n scrollParent={scrollParentRef.current}\r\n cellRenderer={(props) => (\r\n
\r\n
\r\n
\r\n {props.index + 1}.\r\n {props.item.title ?

{props.item.title}

: Unknown podcast}\r\n
\r\n
\r\n

{numberFormatter.format(props.item.score)}

\r\n
\r\n
\r\n )}\r\n />\r\n
\r\n
\r\n );\r\n});\r\n\r\nconst NakiNigunStats = observer(function NakiNigunStats({\r\n nakiNigunStatsInfiniteScrollStore,\r\n title,\r\n statsFilterOptions,\r\n nakiNigunFilterSelectedOptionValue,\r\n setNakiNigunFilterSelectedOptionValue,\r\n totalListeners,\r\n t,\r\n}) {\r\n const { gridStore } = nakiNigunStatsInfiniteScrollStore;\r\n const scrollParentRef = useRef(null);\r\n\r\n return (\r\n
\r\n
\r\n

{title}

\r\n \r\n
\r\n {totalListeners != null ? (\r\n nakiNigunFilterSelectedOptionValue === 1 ? (\r\n
\r\n

{t(\"APPLICATION.PRODUCER.DASHBOARD.TOTAL.STREAMS\")}

\r\n

{numberFormatter.format(totalListeners)}

\r\n
\r\n ) : (\r\n
\r\n

{t(\"APPLICATION.PRODUCER.DASHBOARD.TOTAL.LISTENERS\")}

\r\n

{numberFormatter.format(totalListeners)}

\r\n
\r\n )\r\n ) : (\r\n \r\n )}\r\n\r\n
\r\n }\r\n loadMoreLoader={}\r\n emptyStateRenderer={() => (\r\n \r\n )}\r\n classNameOverride=\"\"\r\n store={gridStore}\r\n scrollParent={scrollParentRef.current}\r\n cellRenderer={(props) => (\r\n
\r\n
\r\n
\r\n {props.index + 1}.\r\n {props.item.title ?

{props.item.title}

: Unknown album}\r\n
\r\n
\r\n

{numberFormatter.format(props.item.score)}

\r\n
\r\n
\r\n )}\r\n />\r\n
\r\n
\r\n );\r\n});\r\n\r\nexport default defaultTemplate(ProducerDashboardTemplate);\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport {\r\n NakiNigunAnalyticsService,\r\n PodcastAnalyticsService,\r\n ProducerReportService,\r\n ProducerUserAccountService,\r\n} from \"common/services\";\r\n\r\nclass ProducerRevenueRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.service = rootStore.createApplicationService(ProducerReportService);\r\n this.producerUserAccountService = rootStore.createApplicationService(ProducerUserAccountService);\r\n this.podcastAnalyticsService = rootStore.createApplicationService(PodcastAnalyticsService);\r\n this.nakiNigunAnalyticsService = rootStore.createApplicationService(NakiNigunAnalyticsService);\r\n }\r\n\r\n async findProducerReports(params) {\r\n const response = await this.service.findProducerReports(params);\r\n return response.data;\r\n }\r\n\r\n async getProducerAccountSummary() {\r\n const response = await this.producerUserAccountService.getProducerAccountSummary();\r\n return response.data;\r\n }\r\n\r\n async getStripeConnectOnboardingStatus() {\r\n const response = await this.producerUserAccountService.getStripeConnectOnboardingStatus();\r\n return response.data;\r\n }\r\n\r\n async createStripeConnectLink(resource) {\r\n const response = await this.producerUserAccountService.createStripeConnectLink(resource);\r\n return response.data;\r\n }\r\n\r\n async getProducerAccountBalance(filter) {\r\n const response = await this.producerUserAccountService.getProducerAccountBalance(filter);\r\n return response.data;\r\n }\r\n\r\n async getProducerAccountRevenueTransaction(filter) {\r\n const response = await this.producerUserAccountService.getProducerAccountRevenueTransaction(filter);\r\n return response.data;\r\n }\r\n\r\n async getProducers() {\r\n const response = await this.producerUserAccountService.getProducers();\r\n return response.data;\r\n }\r\n}\r\n\r\nexport default ProducerRevenueRouteStore;\r\n","import { action, computed, makeObservable, observable, runInAction } from \"mobx\";\r\nimport { MrbBaseViewStore } from \"mrb/core\";\r\nimport { MrbTableViewStore } from \"mrb/components\";\r\nimport { mrbDefaultFormats } from \"mrb/common/formatting\";\r\nimport { dateFormatter } from \"mrb/common/formatting\";\r\nimport { applicationDefaults } from \"common/constants\";\r\nimport { ProducerPreviewReportPeriodCell, ProducerPreviewReportPlaybackTimeCell } from \"common/components/producer\";\r\nimport { numberFormatter } from \"common/utils\";\r\nimport { MrbQueryUtility } from \"mrb/core/filter\";\r\nimport { isNil } from \"lodash\";\r\nimport moment from \"moment\";\r\n\r\nclass ProducerRevenueViewStore extends MrbBaseViewStore {\r\n range = null;\r\n @observable.ref summaryData = null;\r\n @observable reportsGridStore = null;\r\n @observable revenueGridStore = null;\r\n @observable balanceGridStore = null;\r\n reportsQueryUtility = null;\r\n revenueQueryUtility = null;\r\n balanceQueryUtility = null;\r\n @observable producers = null;\r\n @observable selectedProducerId = null;\r\n @observable completedOnboarding = false;\r\n @observable.ref onboardingStatus = null;\r\n @observable stripeAccountLink;\r\n @observable isCreateStripeAccountButtonDisabled = false;\r\n\r\n producerId = null;\r\n\r\n @computed get isStripeAccountConnected() {\r\n if (this.summaryData) {\r\n return !isNil(this.summaryData.stripeAccountId);\r\n }\r\n return false;\r\n }\r\n\r\n constructor(rootStore, { routeStore }) {\r\n super(rootStore);\r\n makeObservable(this);\r\n this.routeStore = routeStore;\r\n\r\n this.producerId = this.rootStore.routerStore.routerState.queryParams.producerId;\r\n\r\n this.revenueQueryUtility = new MrbQueryUtility(\r\n this.rootStore,\r\n async (filter) => {\r\n this.revenueFetchResources(filter);\r\n },\r\n {\r\n orderBy: \"dateCreated\",\r\n orderDirection: \"desc\",\r\n ignoreQueryParams: true,\r\n disableUpdateQueryParams: true,\r\n }\r\n );\r\n\r\n this.balanceQueryUtility = new MrbQueryUtility(\r\n this.rootStore,\r\n async (filter) => {\r\n this.balanceFetchResources(filter);\r\n },\r\n {\r\n orderBy: \"dateCreated\",\r\n orderDirection: \"desc\",\r\n ignoreQueryParams: true,\r\n disableUpdateQueryParams: true,\r\n }\r\n );\r\n\r\n this.reportsQueryUtility = new MrbQueryUtility(\r\n this.rootStore,\r\n async (filter) => {\r\n this.reportsFetchResources(filter);\r\n },\r\n {\r\n orderBy: \"monthOfYear\",\r\n orderDirection: \"desc\",\r\n ignoreQueryParams: true,\r\n disableUpdateQueryParams: true,\r\n }\r\n );\r\n this.revenueFetchResources = this.revenueFetchResources.bind(this);\r\n this.balanceFetchResources = this.balanceFetchResources.bind(this);\r\n\r\n const from = moment.utc().subtract(1, \"year\").startOf(\"month\").format(applicationDefaults.formats.isoDate);\r\n const to = moment.utc().subtract(1, \"month\").startOf(\"month\").format(applicationDefaults.formats.isoDate);\r\n this.range = {\r\n from: from,\r\n to: to,\r\n };\r\n\r\n this.setReportsGridStore(\r\n new MrbTableViewStore(this.rootStore, this.reportsQueryUtility, {\r\n onRowClick: (node) => {\r\n const monthOfYear = dateFormatter.format(node.data.monthOfYear, {\r\n format: applicationDefaults.formats.isoDate,\r\n timeZone: \"utc\",\r\n });\r\n this.rootStore.routerStore.goTo(\r\n \"master.application.producer.report\",\r\n {\r\n id: this.selectedProducerId,\r\n },\r\n {\r\n monthOfYear: monthOfYear,\r\n }\r\n );\r\n },\r\n columns: [\r\n {\r\n key: \"monthOfYear\",\r\n title: \"Period\",\r\n sortable: true,\r\n cell: ProducerPreviewReportPeriodCell,\r\n },\r\n {\r\n key: \"totalProducerPlaybacks\",\r\n title: \"Playback Time\",\r\n sortable: true,\r\n cell: ProducerPreviewReportPlaybackTimeCell,\r\n },\r\n {\r\n key: \"totalProducerPlaybacks\",\r\n title: \"Playback Points\",\r\n format: (value) => numberFormatter.format(value),\r\n },\r\n {\r\n key: \"totalProducerPayment\",\r\n title: \"Revenue\",\r\n sortable: true,\r\n format: {\r\n type: mrbDefaultFormats.currency,\r\n currency: \"USD\",\r\n },\r\n },\r\n ],\r\n })\r\n );\r\n\r\n this.setRevenueGridStore(\r\n new MrbTableViewStore(this.rootStore, this.revenueQueryUtility, {\r\n columns: [\r\n {\r\n key: \"dateCreated\",\r\n title: \"Date\",\r\n sortable: true,\r\n format: (value) =>\r\n dateFormatter.format(value, {\r\n format: applicationDefaults.formats.dateTime,\r\n }),\r\n },\r\n {\r\n key: \"stripeTransactionId\",\r\n title: \"Stripe Transaction Id\",\r\n },\r\n {\r\n key: \"amount\",\r\n title: \"Amount\",\r\n sortable: true,\r\n format: {\r\n type: mrbDefaultFormats.currency,\r\n currency: \"USD\",\r\n },\r\n },\r\n ],\r\n })\r\n );\r\n\r\n this.setBalanceGridStore(\r\n new MrbTableViewStore(this.rootStore, this.balanceQueryUtility, {\r\n columns: [\r\n {\r\n key: \"dateCreated\",\r\n title: \"Date\",\r\n sortable: true,\r\n format: (value) =>\r\n dateFormatter.format(value, {\r\n format: applicationDefaults.formats.dateTime,\r\n }),\r\n },\r\n {\r\n key: \"notes\",\r\n title: \"Notes\",\r\n },\r\n {\r\n key: \"amount\",\r\n title: \"Amount\",\r\n sortable: true,\r\n format: {\r\n type: mrbDefaultFormats.currency,\r\n currency: \"USD\",\r\n },\r\n\r\n cellClass: (item) => {\r\n if (item.value > 0) {\r\n return \"u-type--color--success\";\r\n } else if (item.value < 0) {\r\n return \"u-type--color--warning\";\r\n }\r\n },\r\n },\r\n {\r\n key: \"producer.name\",\r\n title: \"Producer\",\r\n },\r\n ],\r\n })\r\n );\r\n }\r\n\r\n onFetchError(err) {\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred while trying to load data. Please contact the support team.\",\r\n err\r\n );\r\n }\r\n\r\n async reportsFetchResources(filter) {\r\n this.reportsGridStore.suspend();\r\n try {\r\n filter.producerId = this.selectedProducerId;\r\n const response = await this.fetchReportsData(filter);\r\n runInAction(() => {\r\n this.reportsGridStore.setData(response);\r\n this.reportsGridStore.resume();\r\n });\r\n } catch (err) {\r\n this.reportsGridStore.resume();\r\n this.onFetchError(err);\r\n }\r\n }\r\n\r\n async revenueFetchResources(filter) {\r\n this.revenueGridStore.suspend();\r\n try {\r\n const response = await this.fetchRevenueData(filter);\r\n runInAction(() => {\r\n this.revenueGridStore.setData(response);\r\n this.revenueGridStore.resume();\r\n });\r\n } catch (err) {\r\n this.revenueGridStore.resume();\r\n this.onFetchError(err);\r\n }\r\n }\r\n\r\n async balanceFetchResources(filter) {\r\n this.balanceGridStore.suspend();\r\n try {\r\n const response = await this.fetchBalanceData(filter);\r\n runInAction(() => {\r\n this.balanceGridStore.setData(response);\r\n this.balanceGridStore.resume();\r\n });\r\n } catch (err) {\r\n this.balanceGridStore.resume();\r\n this.onFetchError(err);\r\n }\r\n }\r\n\r\n async fetchReportsData(filter) {\r\n try {\r\n return this.routeStore.findProducerReports(filter);\r\n } catch (error) {\r\n this.onFetchError(error);\r\n }\r\n }\r\n\r\n async fetchRevenueData(filter) {\r\n try {\r\n return await this.routeStore.getProducerAccountRevenueTransaction(filter);\r\n } catch (error) {\r\n this.onFetchError(error);\r\n }\r\n }\r\n\r\n async fetchBalanceData(filter) {\r\n try {\r\n return await this.routeStore.getProducerAccountBalance(filter);\r\n } catch (error) {\r\n this.onFetchError(error);\r\n }\r\n }\r\n\r\n async onInit() {\r\n await Promise.all([\r\n this.fetchProducers(),\r\n this.fetchAccountSummaryData(),\r\n this.revenueQueryUtility.initialize(),\r\n this.balanceQueryUtility.initialize(),\r\n ]);\r\n }\r\n\r\n @action.bound\r\n setStripeAccountOnboardingStatus(data) {\r\n this.onboardingStatus = data;\r\n this.setCompletedOnboarding(data.chargesEnabled && data.detailsSubmitted);\r\n }\r\n\r\n @action.bound\r\n setCompletedOnboarding(state) {\r\n this.completedOnboarding = state;\r\n }\r\n\r\n @action.bound\r\n setStripeAccountLink(data) {\r\n this.stripeAccountLink = data;\r\n }\r\n\r\n @action.bound\r\n setSummaryData(data) {\r\n this.summaryData = data;\r\n }\r\n\r\n @action.bound\r\n setReportsGridStore(reportsGridStore) {\r\n this.reportsGridStore = reportsGridStore;\r\n }\r\n\r\n @action.bound\r\n setRevenueGridStore(revenueGridStore) {\r\n this.revenueGridStore = revenueGridStore;\r\n }\r\n\r\n @action.bound\r\n setBalanceGridStore(balanceGridStore) {\r\n this.balanceGridStore = balanceGridStore;\r\n }\r\n\r\n @action.bound\r\n setProducers(producers) {\r\n this.producers = producers;\r\n }\r\n\r\n @action.bound\r\n setIsCreateStripeAccountButtonDisabled(state) {\r\n this.isCreateStripeAccountButtonDisabled = state;\r\n }\r\n\r\n @action.bound\r\n async selectProducer(producerId) {\r\n this.selectedProducerId = producerId;\r\n await this.reportsQueryUtility.initialize();\r\n }\r\n\r\n @action.bound\r\n async createStripeAccount() {\r\n try {\r\n this.setIsCreateStripeAccountButtonDisabled(true);\r\n const resource = { returnUrl: this.generateCurrentUrl(), refreshUrl: this.generateCurrentUrl() };\r\n const data = await this.routeStore.createStripeConnectLink(resource);\r\n this.setStripeAccountLink(data);\r\n\r\n await this.fetchAccountSummaryData();\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred while trying to load data. Please contact the support team.\",\r\n err\r\n );\r\n }\r\n }\r\n\r\n async fetchAccountSummaryData() {\r\n try {\r\n const data = await this.routeStore.getProducerAccountSummary();\r\n this.setSummaryData(data);\r\n if (this.isStripeAccountConnected) {\r\n await this.fetchStripeAccountOnboardingStatus();\r\n\r\n if (isNil(this.stripeAccountLink) && !this.completedOnboarding) {\r\n await this.fetchStripeAccountLink();\r\n }\r\n }\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred while trying to load data. Please contact the support team.\",\r\n err\r\n );\r\n }\r\n }\r\n\r\n async fetchStripeAccountOnboardingStatus() {\r\n try {\r\n const data = await this.routeStore.getStripeConnectOnboardingStatus();\r\n this.setStripeAccountOnboardingStatus(data);\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred while trying to load data. Please contact the support team.\",\r\n err\r\n );\r\n }\r\n }\r\n\r\n async fetchStripeAccountLink() {\r\n try {\r\n const resource = { returnUrl: this.generateCurrentUrl(), refreshUrl: this.generateCurrentUrl() };\r\n const data = await this.routeStore.createStripeConnectLink(resource);\r\n this.setStripeAccountLink(data);\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred while trying to load data. Please contact the support team.\",\r\n err\r\n );\r\n }\r\n }\r\n\r\n async fetchProducers() {\r\n try {\r\n const producers = await this.routeStore.getProducers();\r\n this.setProducers(producers);\r\n if (!isNil(this.producerId)) {\r\n this.selectProducer(this.producerId);\r\n } else {\r\n this.selectProducer(producers[0].id);\r\n }\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred while trying to load data. Please contact the support team.\",\r\n err\r\n );\r\n }\r\n }\r\n\r\n generateCurrentUrl() {\r\n return `${window.location.origin}/producer/revenue`;\r\n }\r\n}\r\n\r\nexport default ProducerRevenueViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { ProducerReportService } from \"common/services\";\r\n\r\nclass ProducerRevenueReportRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.service = rootStore.createApplicationService(ProducerReportService);\r\n }\r\n\r\n async getProducerPaymentSummary(producerId, options) {\r\n const response = await this.service.getProducerPaymentSummary(producerId, options);\r\n return response.data;\r\n }\r\n\r\n async findProducerReportItems(filter) {\r\n const response = await this.service.findProducerReportItems(filter);\r\n return response.data;\r\n }\r\n\r\n async findProducerReportPayoutUserEvents(params) {\r\n const response = await this.service.findProducerReportPayoutUserEvents(params);\r\n return response.data;\r\n }\r\n}\r\n\r\nexport default ProducerRevenueReportRouteStore;\r\n","import { BaseProducerRevenueReportViewStore } from \"common/stores/producer\";\r\n\r\nclass ProducerRevenueReportViewStore extends BaseProducerRevenueReportViewStore {\r\n producerId = null;\r\n\r\n constructor(rootStore, { routeStore }) {\r\n super(rootStore, { maskUserNames: true });\r\n this.routeStore = routeStore;\r\n this.producerId = this.rootStore.routerStore.routerState.params.id;\r\n }\r\n\r\n find(params) {\r\n params.producerId = this.producerId;\r\n return this.routeStore.findProducerReportItems(params);\r\n }\r\n\r\n getSumaryData(params) {\r\n return this.routeStore.getProducerPaymentSummary(this.producerId, params);\r\n }\r\n}\r\n\r\nexport default ProducerRevenueReportViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { ProducerUserAccountService } from \"common/services\";\r\n\r\nclass ProducerRevenueTransferRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.producerUserAccountService = rootStore.createApplicationService(ProducerUserAccountService);\r\n }\r\n\r\n async getProducerAccountSummary() {\r\n const response = await this.producerUserAccountService.getProducerAccountSummary();\r\n return response.data;\r\n }\r\n\r\n async processPayoutToBankAccount(accountId, resource) {\r\n const response = await this.producerUserAccountService.processPayoutToBankAccount(accountId, resource);\r\n return response.data;\r\n }\r\n}\r\n\r\nexport default ProducerRevenueTransferRouteStore;\r\n","import { LocalizedForm } from \"common/localization\";\r\n\r\nexport default class ProducerRevenueTransferForm extends LocalizedForm {\r\n constructor(hooks) {\r\n super(hooks);\r\n }\r\n\r\n setup() {\r\n return {\r\n fields: [\r\n {\r\n name: \"amount\",\r\n label: \"APPLICATION.PRODUCER.REVENUE_TRANSFER.FIELDS.AMOUNT_LABEL\",\r\n placeholder: \"APPLICATION.PRODUCER.REVENUE_TRANSFER.FIELDS.AMOUNT_PLACEHOLDER\",\r\n rules: \"required|numeric|min:1\",\r\n },\r\n ],\r\n };\r\n }\r\n}\r\n","import { computed, action, makeObservable, observable } from \"mobx\";\r\nimport { MrbBaseViewStore } from \"mrb/core\";\r\nimport { ProducerRevenueTransferForm } from \"application/producer/forms\";\r\nimport { MrbModalParams } from \"mrb/common/models\";\r\nimport { applicationErrorCodes } from \"common/constants\";\r\nimport { currencyFormatter } from \"mrb/common/formatting\";\r\nimport { isString } from \"lodash\";\r\n\r\nclass ProducerRevenueTransferViewStore extends MrbBaseViewStore {\r\n onSubmit = null;\r\n @observable.ref producerUserAccount = null;\r\n\r\n @computed get currentAccountBalance() {\r\n if (this.producerUserAccount) {\r\n return this.producerUserAccount.accountBalance;\r\n }\r\n return 0;\r\n }\r\n\r\n @computed get newAccountBalance() {\r\n let amount = this.form.$(\"amount\").value || 0;\r\n if (isString(amount)) {\r\n amount = parseFloat(amount);\r\n }\r\n\r\n return Math.max(this.currentAccountBalance - amount, 0);\r\n }\r\n\r\n constructor(rootStore, { routeStore }) {\r\n super(rootStore);\r\n makeObservable(this);\r\n this.routeStore = routeStore;\r\n\r\n this.form = new ProducerRevenueTransferForm({\r\n onSuccess: (form) => {\r\n const item = form.values();\r\n if (isString(item.amount)) {\r\n item.amount = parseFloat(item.amount);\r\n }\r\n return this.transferRevenue(item);\r\n },\r\n });\r\n\r\n this.transferRevenueSuccessModal = new MrbModalParams(null, {\r\n onClickGoToProducerAccount: this.goToProducerAccount,\r\n });\r\n }\r\n\r\n async onInit() {\r\n await this.getProducerUserAccount();\r\n }\r\n\r\n @action.bound\r\n async transferRevenue(resource) {\r\n const amount = resource.amount;\r\n if (amount > this.currentAccountBalance) {\r\n this.form.invalidate(\"Insufficient amount in your account.\");\r\n return;\r\n }\r\n\r\n const formattedPrice = currencyFormatter.format(resource.amount, {\r\n currency: \"USD\",\r\n });\r\n this.rootStore.confirmDialogStore.showConfirm({\r\n message: \"Transfer revenue?\",\r\n description: `${formattedPrice} will be transferred to your Stripe Connect account.`,\r\n yesLabel: `Transfer ${formattedPrice}`,\r\n onConfirm: async () => {\r\n try {\r\n await this.routeStore.processPayoutToBankAccount(\r\n this.producerUserAccount.producerUserAccountId,\r\n resource\r\n );\r\n\r\n this.transferRevenueSuccessModal.open({ amount: amount });\r\n } catch (err) {\r\n if (err.data.errorCode === applicationErrorCodes.producer.insufficientAccountBalance) {\r\n this.form.invalidate(\"Insufficient amount in your account.\");\r\n } else if (err.data.errorCode === applicationErrorCodes.producer.stripeConnectAccountNotExists) {\r\n this.form.invalidate(\"Stripe Connect account does not exists.\");\r\n } else if (err.data.errorCode === applicationErrorCodes.producer.producerUserAccountNotExists) {\r\n this.form.invalidate(\"Producer account does not exists.\");\r\n } else if (err.data.errorCode === applicationErrorCodes.producer.stripeConnectAccountNotEnabled) {\r\n this.form.invalidate(\"Stripe Connect account is not enabled.\");\r\n } else {\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred while trying to transfer revenu. Please contact the support team.\",\r\n err\r\n );\r\n }\r\n }\r\n },\r\n });\r\n }\r\n\r\n @action.bound\r\n goToProducerAccount() {\r\n this.rootStore.routerStore.goTo(\"master.application.producer.preview.revenue\");\r\n }\r\n\r\n async getProducerUserAccount() {\r\n try {\r\n const account = await this.routeStore.getProducerAccountSummary();\r\n this.setProducerUserAccount(account);\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred while trying to load account. Please contact the support team.\",\r\n err\r\n );\r\n }\r\n }\r\n\r\n @action.bound\r\n setProducerUserAccount(account) {\r\n this.producerUserAccount = account;\r\n }\r\n}\r\n\r\nexport default ProducerRevenueTransferViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { NakiNigunAnalyticsService, PodcastAnalyticsService } from \"common/services\";\r\n\r\nclass ProducerDashboardRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.podcastAnalyticsService = rootStore.createApplicationService(PodcastAnalyticsService);\r\n this.nakiNigunAnalyticsService = rootStore.createApplicationService(NakiNigunAnalyticsService);\r\n }\r\n\r\n async getTrendingPodcasts(filter) {\r\n const response = await this.podcastAnalyticsService.getTrendingPodcastsForProducer(filter);\r\n return response.data;\r\n }\r\n\r\n async getTrendingAlbums(filter) {\r\n const response = await this.nakiNigunAnalyticsService.getTrendingAlbumsForProducer(filter);\r\n return response.data;\r\n }\r\n\r\n async getTrendingAlbumsTotalStreams(filter) {\r\n const response = await this.nakiNigunAnalyticsService.getTrendingAlbumsTotalStreamsForProducer(filter);\r\n return response.data;\r\n }\r\n\r\n async getTrendingPodcastsTotalStreams(filter) {\r\n const response = await this.podcastAnalyticsService.getTrendingPodcastsTotalStreamsForProducer(filter);\r\n return response.data;\r\n }\r\n}\r\n\r\nexport default ProducerDashboardRouteStore;\r\n","import { action, makeObservable, observable, computed } from \"mobx\";\r\nimport { MrbSimpleSelectStore } from \"baasic-react-bootstrap/src\";\r\nimport moment from \"moment\";\r\nimport { find } from \"lodash\";\r\nimport \"moment-timezone\";\r\n\r\nconst timeRangeType = {\r\n today: \"today\",\r\n yesterday: \"yesterday\",\r\n last3Days: \"last-3-days\",\r\n thisWeek: \"this-week\",\r\n lastWeek: \"last-week\",\r\n thisMonth: \"this-month\",\r\n lastMonth: \"last-month\",\r\n custom: \"custom\",\r\n};\r\n\r\nconst defaultDropdownOptions = [\r\n { label: \"Custom\", value: timeRangeType.custom },\r\n { label: \"Today\", value: timeRangeType.today },\r\n { label: \"Yesterday\", value: timeRangeType.yesterday },\r\n { label: \"Last 3 days\", value: timeRangeType.last3Days },\r\n { label: \"This Week\", value: timeRangeType.thisWeek },\r\n { label: \"Last Week\", value: timeRangeType.lastWeek },\r\n { label: \"This Month\", value: timeRangeType.thisMonth },\r\n { label: \"Last Month\", value: timeRangeType.lastMonth },\r\n];\r\n\r\nconst timeZone = moment.tz.guess();\r\n\r\nclass ProducerDashboardTimeRangeViewStore {\r\n @observable filter = {\r\n to: moment().utc().tz(timeZone).endOf(\"week\").toISOString(),\r\n from: moment().utc().tz(timeZone).startOf(\"week\").toISOString(),\r\n previousCycleTo: moment().utc().tz(timeZone).subtract(1, \"week\").endOf(\"week\").toISOString(),\r\n previousCycleFrom: moment().utc().tz(timeZone).subtract(1, \"week\").startOf(\"week\").toISOString(),\r\n timeZone: timeZone,\r\n };\r\n\r\n maxDate = null;\r\n fetchTrendingAlbums = null;\r\n fetchTrendingPodcasts = null;\r\n\r\n @computed get isDateRangeDisabled() {\r\n return this.timeRangeSelectStore.value !== timeRangeType.custom;\r\n }\r\n\r\n @computed get minDate() {\r\n return moment(this.filter.from).toDate();\r\n }\r\n\r\n constructor(rootStore, { setDateFilter }) {\r\n this.rootStore = rootStore;\r\n makeObservable(this);\r\n this.maxDate = moment().startOf(\"day\").toDate();\r\n this.setDateFilter = setDateFilter;\r\n\r\n this.timeRangeSelectStore = new MrbSimpleSelectStore(\r\n {\r\n textKey: \"label\",\r\n valueKey: \"value\",\r\n actions: {\r\n onChange: async (newOption) => {\r\n this.timeRangeSelectStore.setSelectedItem(\r\n find(defaultDropdownOptions, (option) => option.value === newOption.value)\r\n );\r\n if (newOption.value !== timeRangeType.custom) {\r\n this.updateFilter(newOption.value);\r\n }\r\n },\r\n },\r\n },\r\n defaultDropdownOptions\r\n );\r\n this.timeRangeSelectStore.setSelectedItem(\r\n find(defaultDropdownOptions, (option) => option.value === timeRangeType.thisWeek)\r\n );\r\n }\r\n\r\n @action.bound\r\n updateFilter(value) {\r\n const now = moment().utc().tz(timeZone);\r\n switch (value) {\r\n case timeRangeType.today:\r\n this.filter = {\r\n to: moment(now).endOf(\"day\").toISOString(),\r\n from: moment(now).startOf(\"day\").toISOString(),\r\n previousCycleTo: moment(now).subtract(1, \"day\").endOf(\"day\").toISOString(),\r\n previousCycleFrom: moment(now).subtract(1, \"day\").startOf(\"day\").toISOString(),\r\n timeZone: timeZone,\r\n };\r\n break;\r\n\r\n case timeRangeType.yesterday:\r\n this.filter = {\r\n to: moment(now).subtract(1, \"day\").endOf(\"day\").toISOString(),\r\n from: moment(now).subtract(1, \"day\").startOf(\"day\").toISOString(),\r\n previousCycleTo: moment(now).subtract(2, \"day\").endOf(\"day\").toISOString(),\r\n previousCycleFrom: moment(now).subtract(2, \"day\").startOf(\"day\").toISOString(),\r\n timeZone: timeZone,\r\n };\r\n break;\r\n\r\n case timeRangeType.last3Days:\r\n this.filter = {\r\n to: moment(now).endOf(\"day\").toISOString(),\r\n from: moment(now).subtract(2, \"days\").startOf(\"day\").toISOString(),\r\n previousCycleTo: moment(now).subtract(2, \"days\").endOf(\"day\").toISOString(),\r\n previousCycleFrom: moment(now).subtract(4, \"days\").startOf(\"day\").toISOString(),\r\n timeZone: timeZone,\r\n };\r\n break;\r\n\r\n case timeRangeType.thisWeek:\r\n this.filter = {\r\n to: moment(now).endOf(\"week\").toISOString(),\r\n from: moment(now).startOf(\"week\").toISOString(),\r\n previousCycleTo: moment(now).subtract(1, \"week\").endOf(\"week\").toISOString(),\r\n previousCycleFrom: moment(now).subtract(1, \"week\").startOf(\"week\").toISOString(),\r\n timeZone: timeZone,\r\n };\r\n break;\r\n\r\n case timeRangeType.lastWeek:\r\n this.filter = {\r\n to: moment(now).subtract(1, \"week\").endOf(\"week\").toISOString(),\r\n from: moment(now).subtract(1, \"week\").startOf(\"week\").toISOString(),\r\n previousCycleTo: moment(now).subtract(2, \"weeks\").endOf(\"week\").toISOString(),\r\n previousCycleFrom: moment(now).subtract(2, \"weeks\").startOf(\"week\").toISOString(),\r\n timeZone: timeZone,\r\n };\r\n break;\r\n\r\n case timeRangeType.thisMonth:\r\n this.filter = {\r\n to: moment(now).endOf(\"month\").toISOString(),\r\n from: moment(now).startOf(\"month\").toISOString(),\r\n previousCycleTo: moment(now).subtract(1, \"month\").endOf(\"month\").toISOString(),\r\n previousCycleFrom: moment(now).subtract(1, \"month\").startOf(\"month\").toISOString(),\r\n timeZone: timeZone,\r\n };\r\n break;\r\n\r\n case timeRangeType.lastMonth:\r\n this.filter = {\r\n to: moment(now).subtract(1, \"month\").endOf(\"month\").toISOString(),\r\n from: moment(now).subtract(1, \"month\").startOf(\"month\").toISOString(),\r\n previousCycleTo: moment(now).subtract(2, \"months\").endOf(\"month\").toISOString(),\r\n previousCycleFrom: moment(now).subtract(2, \"months\").startOf(\"month\").toISOString(),\r\n timeZone: timeZone,\r\n };\r\n break;\r\n default:\r\n break;\r\n }\r\n this.setDateFilter(this.filter);\r\n }\r\n\r\n @action.bound\r\n setFromDate(value) {\r\n this.filter.from = moment.utc(value).tz(this.filter.timeZone).startOf(\"day\").toISOString();\r\n }\r\n\r\n @action.bound\r\n setToDate(value) {\r\n this.filter.to = moment.utc(value).tz(this.filter.timeZone).endOf(\"day\").toISOString();\r\n }\r\n\r\n @action.bound\r\n applyFilter() {\r\n this.setDateFilter(this.filter);\r\n }\r\n}\r\n\r\nexport default ProducerDashboardTimeRangeViewStore;\r\n","import { MrbBaseInfiniteScrollListViewStore } from \"baasic-react-bootstrap/src\";\r\nimport \"moment-timezone\";\r\nimport { MrbInfiniteScrollGridViewStore } from \"mrb/components/infinite-scroll-grid\";\r\n\r\nclass ProducerDashboardInfiniteScrollStore extends MrbBaseInfiniteScrollListViewStore {\r\n constructor(rootStore, { setPagingFilter, fetchData }) {\r\n super(rootStore, {\r\n queryConfig: {\r\n pageSize: 30,\r\n ignoreQueryParams: [\"page\", \"timeZone\", \"rpp\"],\r\n },\r\n });\r\n this.setPagingFilter = setPagingFilter;\r\n this.fetchData = fetchData;\r\n\r\n this.setGridStore(\r\n new MrbInfiniteScrollGridViewStore(this.rootStore, this.queryUtility, {\r\n generateKey: (item) => item.nakiNigunAlbum?.id || item.podcast?.id,\r\n mapper: (item) => {\r\n return {\r\n id: item.nakiNigunAlbum?.id || item.podcast.id,\r\n title: item.nakiNigunAlbum ? item.nakiNigunAlbum.title : item.podcast.title,\r\n isPremium:\r\n (item.nakiNigunAlbum && item.nakiNigunAlbum.isPremium) ||\r\n (item.podcast && item.podcast.isPremium),\r\n score: item.currentCycleScore,\r\n };\r\n },\r\n })\r\n );\r\n }\r\n\r\n find(params) {\r\n this.setPagingFilter({ page: params.pageNumber, rpp: params.pageSize });\r\n return this.fetchData();\r\n }\r\n}\r\n\r\nexport default ProducerDashboardInfiniteScrollStore;\r\n","import { action, makeObservable, observable, computed } from \"mobx\";\r\nimport { MrbBaseViewStore } from \"mrb/core\";\r\nimport { httpStatusCodes } from \"baasic-react-bootstrap/src\";\r\nimport moment from \"moment\";\r\nimport \"moment-timezone\";\r\nimport ProducerDashboardTimeRangeViewStore from \"./ProducerDashboardTimeRangeViewStore\";\r\nimport ProducerDashboardInfiniteScrollStore from \"./ProducerDashboardInfiniteScrollStore\";\r\n\r\nconst timeZone = moment.tz.guess();\r\n\r\nclass ProducerDashboardViewStore extends MrbBaseViewStore {\r\n @observable dateFilter = {\r\n to: moment().utc().tz(timeZone).endOf(\"week\").toISOString(),\r\n from: moment().utc().tz(timeZone).startOf(\"week\").toISOString(),\r\n previousCycleTo: moment().utc().tz(timeZone).subtract(1, \"week\").endOf(\"week\").toISOString(),\r\n previousCycleFrom: moment().utc().tz(timeZone).subtract(1, \"week\").startOf(\"week\").toISOString(),\r\n timeZone: timeZone,\r\n };\r\n @observable nakiNigunPagingFilter = { rpp: 30, page: 1 };\r\n @observable nakiTalesPagingFilter = { rpp: 30, page: 1 };\r\n\r\n statsFilterOptions = [\r\n { value: 1, label: \"Streams\" },\r\n { value: 2, label: \"Unique Listeners\" },\r\n ];\r\n\r\n @observable nakiNigunFilterSelectedOptionValue = 1;\r\n @observable nakiTalesFilterSelectedOptionValue = 1;\r\n\r\n @observable nakiNigunTotalListeners = null;\r\n @observable nakiTalesTotalListeners = null;\r\n\r\n @computed get producerTypeSlug() {\r\n return this.rootStore.userStore?.producerType?.slug;\r\n }\r\n\r\n @computed get nakiNigunFilter() {\r\n const uniqueListeners = this.nakiNigunFilterSelectedOptionValue === 2;\r\n return { ...this.dateFilter, ...this.nakiNigunPagingFilter, uniqueListeners };\r\n }\r\n\r\n @computed get nakiTalesFilter() {\r\n const uniqueListeners = this.nakiTalesFilterSelectedOptionValue === 2;\r\n return { ...this.dateFilter, ...this.nakiTalesPagingFilter, uniqueListeners };\r\n }\r\n\r\n constructor(rootStore, { routeStore }) {\r\n super(rootStore);\r\n makeObservable(this);\r\n this.routeStore = routeStore;\r\n\r\n this.producerDashboardTimeRangeViewStore = new ProducerDashboardTimeRangeViewStore(this.rootStore, {\r\n setDateFilter: (filter) => this.setDateFilter(filter),\r\n });\r\n\r\n this.nakiNigunStatsInfiniteScrollStore = new ProducerDashboardInfiniteScrollStore(this.rootStore, {\r\n setPagingFilter: (filter) => this.setNakiNigunPagingFilter(filter),\r\n fetchData: () => this.fetchTrendingAlbums(),\r\n });\r\n\r\n this.nakiTalesStatsInfiniteScrollStore = new ProducerDashboardInfiniteScrollStore(this.rootStore, {\r\n setPagingFilter: (filter) => this.setNakiTalesPagingFilter(filter),\r\n fetchData: () => this.fetchTrendingPodcasts(),\r\n });\r\n\r\n this.refreshData = this.refreshData.bind(this);\r\n }\r\n\r\n onFetchError(err) {\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred while trying to load data. Please contact the support team.\",\r\n err\r\n );\r\n }\r\n\r\n async onInit() {\r\n await this.refreshData();\r\n }\r\n\r\n async refreshData() {\r\n await Promise.all([\r\n this.fetchTrendingAlbumsTotalStreams(),\r\n this.fetchTrendingPodcastsTotalStreams(),\r\n this.nakiNigunStatsInfiniteScrollStore.queryUtility.fetch(),\r\n this.nakiTalesStatsInfiniteScrollStore.queryUtility.fetch(),\r\n ]);\r\n }\r\n\r\n @action.bound\r\n async setDateFilter(filter) {\r\n this.dateFilter = filter;\r\n await this.refreshData();\r\n }\r\n\r\n @action.bound\r\n setNakiNigunPagingFilter(filter) {\r\n this.nakiNigunPagingFilter = filter;\r\n }\r\n @action.bound\r\n setNakiTalesPagingFilter(filter) {\r\n this.nakiTalesPagingFilter = filter;\r\n }\r\n\r\n @action.bound\r\n async setNakiTalesFilterSelectedOptionValue(value) {\r\n this.nakiTalesFilterSelectedOptionValue = value;\r\n await Promise.all([\r\n this.fetchTrendingPodcastsTotalStreams(),\r\n\r\n this.nakiTalesStatsInfiniteScrollStore.queryUtility.fetch(),\r\n ]);\r\n }\r\n\r\n @action.bound\r\n async setNakiNigunFilterSelectedOptionValue(value) {\r\n this.nakiNigunFilterSelectedOptionValue = value;\r\n await Promise.all([\r\n this.fetchTrendingAlbumsTotalStreams(),\r\n this.nakiNigunStatsInfiniteScrollStore.queryUtility.fetch(),\r\n ]);\r\n }\r\n\r\n @action.bound\r\n setNakiNigunTotalListeners(value) {\r\n this.nakiNigunTotalListeners = value;\r\n }\r\n\r\n @action.bound\r\n setNakiTalesTotalListeners(value) {\r\n this.nakiTalesTotalListeners = value;\r\n }\r\n\r\n async fetchTrendingPodcasts() {\r\n try {\r\n const data = await this.routeStore.getTrendingPodcasts(this.nakiTalesFilter);\r\n return data;\r\n } catch (error) {\r\n if (error && error.statusCode === httpStatusCodes.CanceledRequest) {\r\n return;\r\n }\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred while trying to load podcasts.\",\r\n error\r\n );\r\n }\r\n }\r\n\r\n async fetchTrendingAlbums() {\r\n try {\r\n const data = await this.routeStore.getTrendingAlbums(this.nakiNigunFilter);\r\n return data;\r\n } catch (error) {\r\n if (error && error.statusCode === httpStatusCodes.CanceledRequest) {\r\n return;\r\n }\r\n this.rootStore.notificationStore.error(\"An unexpected error occurred while trying to load albums.\", error);\r\n }\r\n }\r\n\r\n async fetchTrendingAlbumsTotalStreams() {\r\n try {\r\n this.setNakiNigunTotalListeners(null);\r\n const value = await this.routeStore.getTrendingAlbumsTotalStreams(this.nakiNigunFilter);\r\n this.setNakiNigunTotalListeners(value);\r\n } catch (error) {\r\n if (error && error.statusCode === httpStatusCodes.CanceledRequest) {\r\n return;\r\n }\r\n this.setNakiNigunTotalListeners(null);\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred while trying to load all Naki Nigun content listeners.\",\r\n error\r\n );\r\n }\r\n }\r\n\r\n async fetchTrendingPodcastsTotalStreams() {\r\n try {\r\n this.setNakiTalesTotalListeners(null);\r\n const value = await this.routeStore.getTrendingPodcastsTotalStreams(this.nakiTalesFilter);\r\n this.setNakiTalesTotalListeners(value);\r\n } catch (error) {\r\n if (error && error.statusCode === httpStatusCodes.CanceledRequest) {\r\n return;\r\n }\r\n this.setNakiTalesTotalListeners(null);\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred while trying to load all Naki Tales content listeners.\",\r\n error\r\n );\r\n }\r\n }\r\n}\r\n\r\nexport default ProducerDashboardViewStore;\r\n","import { action, makeObservable, observable, computed } from \"mobx\";\r\nimport { MrbBaseViewStore } from \"mrb/core\";\r\nimport { find } from \"lodash\";\r\n\r\nclass ProducerPreviewViewStore extends MrbBaseViewStore {\r\n @observable selectedTab = { value: 1, title: \"Dashboard\" };\r\n\r\n tabs = [\r\n { value: 1, title: \"Dashboard\" },\r\n { value: 2, title: \"Revenue\" },\r\n ];\r\n\r\n @computed get producerTypeSlug() {\r\n return this.rootStore.userStore?.producerType?.slug;\r\n }\r\n\r\n constructor(rootStore, { routeStore }) {\r\n super(rootStore);\r\n this.routeStore = routeStore;\r\n makeObservable(this);\r\n }\r\n\r\n async onInit() {\r\n var currentRoute = this.rootStore.routerStore.getCurrentRoute();\r\n if (currentRoute.name === \"master.application.producer.preview.dashboard\" && this.selectedTab.value !== 1) {\r\n this.setSelectedTab(1);\r\n } else if (\r\n currentRoute.name === \"master.application.producer.preview.revenue\" &&\r\n this.selectedTab.value !== 2\r\n ) {\r\n this.setSelectedTab(2);\r\n }\r\n }\r\n\r\n onViewUpdate(prevProps, newProps) {\r\n var currentRoute = this.rootStore.routerStore.getCurrentRoute();\r\n if (this.selectedTab.value === 2 && currentRoute.name === \"master.application.producer.preview.dashboard\") {\r\n this.setSelectedTab(1);\r\n }\r\n }\r\n\r\n @action.bound\r\n setSelectedTab(value) {\r\n this.selectedTab = find(this.tabs, { value: value });\r\n }\r\n}\r\n\r\nexport default ProducerPreviewViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\n\r\nclass ProducerPreviewRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n }\r\n}\r\n\r\nexport default ProducerPreviewRouteStore;\r\n","import React from \"react\";\r\nimport { ProducerRevenueTemplate } from \"themes/application/producer/pages\";\r\nimport { ProducerRevenueViewStore } from \"application/producer/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new ProducerRevenueViewStore(rootStore, componentProps),\r\n \"producerRevenueViewStore\"\r\n)\r\nclass ProducerRevenue extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default ProducerRevenue;\r\n","import React from \"react\";\r\nimport { ProducerRevenueReportTemplate } from \"themes/application/producer/pages\";\r\nimport { ProducerRevenueReportViewStore } from \"application/producer/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new ProducerRevenueReportViewStore(rootStore, componentProps),\r\n \"producerRevenueReportViewStore\"\r\n)\r\nclass ProducerRevenueReport extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default ProducerRevenueReport;\r\n","import React from \"react\";\r\nimport { ProducerRevenueTransferTemplate } from \"themes/application/producer/pages\";\r\nimport { ProducerRevenueTransferViewStore } from \"application/producer/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new ProducerRevenueTransferViewStore(rootStore, componentProps),\r\n \"producerRevenueTransferViewStore\"\r\n)\r\nclass ProducerRevenueTransfer extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default ProducerRevenueTransfer;\r\n","import React from \"react\";\r\nimport { ProducerPreviewTemplate } from \"themes/application/producer/pages\";\r\nimport { ProducerPreviewViewStore } from \"application/producer/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n@setCurrentView(\r\n (rootStore, componentProps) => new ProducerPreviewViewStore(rootStore, componentProps),\r\n \"producerPreviewViewStore\"\r\n)\r\nclass ProducerPreview extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default ProducerPreview;\r\n","import React from \"react\";\r\nimport { ProducerDashboardTemplate } from \"themes/application/producer/pages\";\r\nimport { ProducerDashboardViewStore } from \"application/producer/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new ProducerDashboardViewStore(rootStore, componentProps),\r\n \"producerDashboardViewStore\"\r\n)\r\nclass ProducerDashboard extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default ProducerDashboard;\r\n","import { moduleProviderFactory } from \"mrb/core\";\r\nimport {\r\n ProducerDashboard,\r\n ProducerRevenue,\r\n ProducerRevenueReport,\r\n ProducerRevenueTransfer,\r\n ProducerPreview,\r\n} from \"application/producer/pages\";\r\nimport {\r\n ProducerRevenueRouteStore,\r\n ProducerDashboardRouteStore,\r\n ProducerRevenueReportRouteStore,\r\n ProducerRevenueTransferRouteStore,\r\n ProducerPreviewRouteStore,\r\n} from \"application/producer/stores\";\r\nimport { producerTypes } from \"common/constants\";\r\n\r\n(function () {\r\n moduleProviderFactory.module(\"application\").register({\r\n name: \"application.producer\",\r\n routes: [\r\n {\r\n name: \"master.application.producer\",\r\n pattern: \"/producer\",\r\n authorization: \"nakiRadioProducerSection.read\",\r\n children: [\r\n {\r\n name: \"master.application.producer.preview\",\r\n pattern: \"\",\r\n component: ProducerPreview,\r\n store: ProducerPreviewRouteStore,\r\n children: [\r\n {\r\n name: \"master.application.producer.preview.dashboard\",\r\n pattern: \"dashboard\",\r\n component: ProducerDashboard,\r\n store: ProducerDashboardRouteStore,\r\n },\r\n {\r\n name: \"master.application.producer.preview.revenue\",\r\n pattern: \"revenue\",\r\n component: ProducerRevenue,\r\n store: ProducerRevenueRouteStore,\r\n beforeEnter: (fromState, toState, routerStore) => {\r\n const { userStore } = routerStore.rootStore;\r\n if (userStore.applicationUser?.slug === producerTypes.podcasterSlug) {\r\n return Promise.reject(routerStore.notFoundState);\r\n }\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n name: \"master.application.producer.report\",\r\n pattern: \"/:id/report\",\r\n component: ProducerRevenueReport,\r\n store: ProducerRevenueReportRouteStore,\r\n beforeEnter: (fromState, toState, routerStore) => {\r\n const { userStore } = routerStore.rootStore;\r\n if (userStore.producerType?.slug === producerTypes.podcasterSlug) {\r\n return Promise.reject(routerStore.notFoundState);\r\n }\r\n },\r\n },\r\n {\r\n name: \"master.application.producer.payout\",\r\n pattern: \"payout\",\r\n component: ProducerRevenueTransfer,\r\n store: ProducerRevenueTransferRouteStore,\r\n beforeEnter: (fromState, toState, routerStore) => {\r\n const { userStore } = routerStore.rootStore;\r\n if (userStore.producerType?.slug === producerTypes.podcasterSlug) {\r\n return Promise.reject(routerStore.notFoundState);\r\n }\r\n },\r\n },\r\n ],\r\n },\r\n ],\r\n menu: [\r\n {\r\n title: \"APPLICATION.MENU.PRODUCER\",\r\n order: 1,\r\n authorization: [\"nakiRadioProducerSection.read\"],\r\n icon: \"producers\",\r\n route: \"master.application.producer.preview.dashboard\",\r\n },\r\n ],\r\n });\r\n})();\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbCollapsiblePanel } from \"mrb/components/collapsible-panel\";\r\nimport { TogglePremium } from \"application/home/components\";\r\nimport { NakiNigunAlbumUnavailableInApp } from \"application/common/components\";\r\nimport { Image } from \"common/components\";\r\nimport { observer } from \"mobx-react\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\n\r\nfunction NakiNigunArtistAlbumTemplate({ nakiNigunArtistAlbumViewStore, t }) {\r\n const { album, isCollapsed, toggleCollapse, setPanelRef } = nakiNigunArtistAlbumViewStore;\r\n return (\r\n {\r\n // Since our control is inside a collapse panel, we must prevent toggle button from triggering the collapse change event\r\n if (\r\n event.target.className &&\r\n (event.target.className.includes(\"c-toggle\") || event.target.className.includes(\"toggle-button\"))\r\n ) {\r\n return;\r\n }\r\n toggleCollapse();\r\n }}\r\n headerClassNameExtend=\"u-cursor--pointer\"\r\n headerRender={(props) => (\r\n \r\n )}\r\n >\r\n {() => (\r\n
\r\n
\r\n

\r\n {t(\"APPLICATION.NAKI_NIGUN.ARTIST.ALBUM.FIELDS.GENRES\")}\r\n

\r\n {album.genres}\r\n
\r\n
\r\n

\r\n {t(\"APPLICATION.NAKI_NIGUN.ARTIST.ALBUM.FIELDS.YEAR\")}\r\n

\r\n {album.year}\r\n
\r\n
\r\n )}\r\n \r\n );\r\n}\r\n\r\nNakiNigunArtistAlbumTemplate.propTypes = {\r\n nakiNigunArtistAlbumViewStore: PropTypes.object.isRequired,\r\n};\r\n\r\nconst AlbumPanelHeader = observer(function AlbumPanelHeader({ nakiNigunArtistAlbumViewStore, isCollapsed, t }) {\r\n const {\r\n album,\r\n coverImageUrl,\r\n isTurnedOn,\r\n isDisabled,\r\n toggleAlbumStatus,\r\n contentAccessResult,\r\n rootStore: { userDeviceStore },\r\n } = nakiNigunArtistAlbumViewStore;\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n

\r\n {album.title}\r\n

\r\n {album.isPremium && !contentAccessResult.canAccessPremium && (\r\n \r\n )}\r\n
\r\n {!contentAccessResult.canAccessOnSelectedDevice && }\r\n
\r\n \r\n\r\n {userDeviceStore.deviceCount > 0 && contentAccessResult.canAccessOnSelectedDevice && (\r\n
\r\n \r\n {\r\n toggleAlbumStatus(!isTurnedOn);\r\n }}\r\n icon=\"u-icon u-icon--lrg u-icon--premium--white\"\r\n classNameOverride={mergeCss(\r\n \"c-btn c-btn--xsml c-btn--status c-btn--rounded\",\r\n isTurnedOn ? \"c-btn--status--enabled\" : \"c-btn--status--disabled\"\r\n )}\r\n />\r\n \r\n
\r\n )}\r\n
\r\n );\r\n});\r\n\r\nexport default observer(NakiNigunArtistAlbumTemplate);\r\n","import { action, computed, makeObservable, observable } from \"mobx\";\r\nimport { forEach } from \"lodash\";\r\n\r\nclass NakiNigunAlbum {\r\n @observable _isTurnedOn = null;\r\n\r\n constructor(obj) {\r\n makeObservable(this);\r\n forEach(obj, (value, key) => {\r\n if (key === \"isTurnedOn\") {\r\n this.setIsTurnedOn(value);\r\n } else {\r\n this[key] = value;\r\n }\r\n });\r\n }\r\n\r\n @computed get isTurnedOn() {\r\n return this._isTurnedOn;\r\n }\r\n\r\n set isTurnedOn(value) {\r\n this.setIsTurnedOn(value);\r\n }\r\n\r\n @action.bound\r\n setIsTurnedOn(isTurnedOn) {\r\n this._isTurnedOn = isTurnedOn;\r\n }\r\n}\r\n\r\nexport default NakiNigunAlbum;\r\n","import { action, computed, makeObservable, observable } from \"mobx\";\r\nimport { forEach } from \"lodash\";\r\n\r\nclass NakiNigunArtist {\r\n @observable _numberOfEnabledAlbums = 0;\r\n\r\n constructor(obj) {\r\n makeObservable(this);\r\n forEach(obj, (value, key) => {\r\n if (key === \"numberOfEnabledAlbums\") {\r\n this.setNumberOfEnabledAlbums(value);\r\n } else {\r\n this[key] = value;\r\n }\r\n });\r\n }\r\n\r\n @computed get numberOfEnabledAlbums() {\r\n return this._numberOfEnabledAlbums;\r\n }\r\n\r\n @computed get isTurnedOn() {\r\n return this._numberOfEnabledAlbums === this.numberOfAlbums;\r\n }\r\n\r\n set isTurnedOn(value) {\r\n if (value) {\r\n this.setNumberOfEnabledAlbums(this.numberOfAlbums);\r\n } else {\r\n this.setNumberOfEnabledAlbums(0);\r\n }\r\n }\r\n\r\n @action.bound\r\n setNumberOfEnabledAlbums(value) {\r\n this._numberOfEnabledAlbums = value;\r\n }\r\n}\r\n\r\nexport default NakiNigunArtist;\r\n","const nakiNigunContentType = {\r\n artists: 0,\r\n albums: 1,\r\n};\r\n\r\nexport default nakiNigunContentType;\r\n","import { findIndex, pullAt } from \"lodash\";\r\nimport { action, observable, makeObservable } from \"mobx\";\r\n\r\nclass NakiNigunBulkSelect {\r\n @observable isAllSelected = null;\r\n @observable.shallow selectedIds = [];\r\n @observable.shallow deselectedIds = [];\r\n\r\n constructor() {\r\n makeObservable(this);\r\n }\r\n\r\n @action.bound\r\n selectAll() {\r\n this.isAllSelected = true;\r\n this.selectedIds = [];\r\n this.deselectedIds = [];\r\n }\r\n\r\n @action.bound\r\n deselectAll() {\r\n this.isAllSelected = false;\r\n this.selectedIds = [];\r\n this.deselectedIds = [];\r\n }\r\n\r\n @action.bound\r\n addSelectedItem(id) {\r\n const selectedItemIndex = findIndex(this.selectedIds, (selectedId) => selectedId === id);\r\n if (selectedItemIndex === -1) {\r\n this.selectedIds.push(id);\r\n const deselectedItemIndex = findIndex(this.deselectedIds, (deselectedId) => deselectedId === id);\r\n if (deselectedItemIndex !== -1) {\r\n pullAt(this.deselectedIds, deselectedItemIndex);\r\n }\r\n }\r\n }\r\n\r\n @action.bound\r\n addDeselectedItem(id) {\r\n const deselectedItemIndex = findIndex(this.deselectedIds, (deselectedId) => deselectedId === id);\r\n if (deselectedItemIndex === -1) {\r\n this.deselectedIds.push(id);\r\n const selectedItemIndex = findIndex(this.selectedIds, (selectedId) => selectedId === id);\r\n if (selectedItemIndex !== -1) {\r\n pullAt(this.selectedIds, selectedItemIndex);\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport default NakiNigunBulkSelect;\r\n","import { NakiNigunAlbum, NakiNigunArtist } from \"application/naki-nigun/models\";\r\n\r\nfunction getContentActivityStatusIcon(item) {\r\n if (item instanceof NakiNigunArtist) {\r\n if (item.numberOfEnabledAlbums === 0) {\r\n return \"c-home__status--disabled\";\r\n } else if (item.numberOfAlbums === item.numberOfEnabledAlbums) {\r\n return \"c-home__status--enabled\";\r\n } else if (item.numberOfAlbums > item.numberOfEnabledAlbums) {\r\n return \"c-home__status--mix\";\r\n }\r\n } else if (item instanceof NakiNigunAlbum) {\r\n if (item.isTurnedOn) {\r\n return \"c-home__status--enabled\";\r\n } else {\r\n return \"c-home__status--disabled\";\r\n }\r\n }\r\n return null;\r\n}\r\n\r\nexport default getContentActivityStatusIcon;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\nimport { getContentActivityStatusIcon } from \"application/naki-nigun/utils\";\r\nimport { PremiumBadge, Image } from \"common/components\";\r\nimport { NakiNigunArtist, NakiNigunAlbum } from \"application/naki-nigun/models\";\r\nimport { useCanAccessContent, nakiRadioContentType } from \"application/common/content-access\";\r\nimport { observer } from \"mobx-react\";\r\nimport { findIndex, isNil } from \"lodash\";\r\n\r\nfunction NakiNigunHomeGridCellTemplate(props) {\r\n if (props.item instanceof NakiNigunArtist) {\r\n return ;\r\n } else if (props.item instanceof NakiNigunAlbum) {\r\n return ;\r\n }\r\n}\r\n\r\nNakiNigunHomeGridCellTemplate.propTypes = {\r\n onCellClick: PropTypes.func.isRequired,\r\n premiumSubscriptionStore: PropTypes.object.isRequired,\r\n goTo: PropTypes.func.isRequired,\r\n item: PropTypes.object.isRequired,\r\n};\r\n\r\nconst NakiNigunArtistCell = observer(function NakiNigunArtistCell({\r\n onCellClick,\r\n goTo,\r\n item,\r\n nakiNigunManageSelectedItemsViewStore,\r\n}) {\r\n const contentAccessResult = useCanAccessContent(nakiRadioContentType.nakiNigun, {\r\n isPremium: item.isPremium,\r\n unavailableInMobileApp: item.isVisibleInApp === false,\r\n unavailableInNakiTouch: item.isVisibleInEmbeddedApp === false,\r\n });\r\n const { isBulk, artistBulkEditViewStore } = nakiNigunManageSelectedItemsViewStore;\r\n\r\n function getBulkModeSelectIndicatorValue(\r\n item,\r\n canAccessArtist,\r\n isAllSelected,\r\n selectedArtistIds,\r\n deselectedArtistIds\r\n ) {\r\n if (!canAccessArtist) {\r\n return false;\r\n }\r\n const selectedIndex = findIndex(selectedArtistIds, (selectedItemId) => selectedItemId === item.artistId);\r\n if (selectedIndex !== -1) {\r\n return true;\r\n }\r\n const deselectedIndex = findIndex(\r\n deselectedArtistIds,\r\n (deselectedItemId) => deselectedItemId === item.artistId\r\n );\r\n if (deselectedIndex !== -1) {\r\n return false;\r\n }\r\n if (!isNil(isAllSelected)) {\r\n return isAllSelected;\r\n }\r\n return item.numberOfAlbums === item.numberOfEnabledAlbums;\r\n }\r\n\r\n function bulkSelectOrDeselect(item, canAccessArtist, isAllSelected, selectedArtistIds, deselectedArtistIds) {\r\n const isSelected = getBulkModeSelectIndicatorValue(\r\n item,\r\n canAccessArtist,\r\n isAllSelected,\r\n selectedArtistIds,\r\n deselectedArtistIds\r\n );\r\n if (isSelected) {\r\n artistBulkEditViewStore.deselectItem(item);\r\n } else {\r\n artistBulkEditViewStore.selectItem(item);\r\n }\r\n }\r\n\r\n return (\r\n \r\n {\r\n isBulk\r\n ? bulkSelectOrDeselect(\r\n item,\r\n contentAccessResult.canAccess,\r\n artistBulkEditViewStore.bulkSelection.isAllSelected,\r\n artistBulkEditViewStore.bulkSelection.selectedIds,\r\n artistBulkEditViewStore.bulkSelection.deselectedIds\r\n )\r\n : onCellClick(item);\r\n }}\r\n >\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n
goTo(item)}>\r\n {item.name}\r\n
\r\n \r\n );\r\n});\r\n\r\nconst NakiNigunAlbumCell = observer(function NakiNigunAlbumCell({\r\n onCellClick,\r\n goTo,\r\n item,\r\n nakiNigunManageSelectedItemsViewStore,\r\n}) {\r\n const contentAccessResult = useCanAccessContent(nakiRadioContentType.nakiNigun, {\r\n isPremium: item.isPremium,\r\n unavailableInMobileApp: item.isVisibleInApp === false,\r\n unavailableInNakiTouch: item.isVisibleInEmbeddedApp === false,\r\n });\r\n const { isBulk, albumBulkEditViewStore } = nakiNigunManageSelectedItemsViewStore;\r\n\r\n function getBulkModeSelectIndicatorValue(\r\n item,\r\n canAccessAlbum,\r\n isAllSelected,\r\n selectedAlbumIds,\r\n deselectedAlbumIds\r\n ) {\r\n if (!canAccessAlbum) {\r\n return false;\r\n }\r\n const selectedIndex = findIndex(selectedAlbumIds, (selectedItemId) => selectedItemId === item.albumId);\r\n if (selectedIndex !== -1) {\r\n return true;\r\n }\r\n const deselectedIndex = findIndex(deselectedAlbumIds, (deselectedItemId) => deselectedItemId === item.albumId);\r\n if (deselectedIndex !== -1) {\r\n return false;\r\n }\r\n if (!isNil(isAllSelected)) {\r\n return isAllSelected;\r\n }\r\n return item.isTurnedOn;\r\n }\r\n\r\n function bulkSelectOrDeselect(item, canAccessAlbum, isAllSelected, selectedAlbumIds, deselectedAlbumIds) {\r\n const isSelected = getBulkModeSelectIndicatorValue(\r\n item,\r\n canAccessAlbum,\r\n isAllSelected,\r\n selectedAlbumIds,\r\n deselectedAlbumIds\r\n );\r\n if (isSelected) {\r\n albumBulkEditViewStore.deselectItem(item);\r\n } else {\r\n albumBulkEditViewStore.selectItem(item);\r\n }\r\n }\r\n\r\n return (\r\n \r\n {\r\n isBulk\r\n ? bulkSelectOrDeselect(\r\n item,\r\n contentAccessResult.canAccess,\r\n albumBulkEditViewStore.bulkSelection.isAllSelected,\r\n albumBulkEditViewStore.bulkSelection.selectedIds,\r\n albumBulkEditViewStore.bulkSelection.deselectedIds\r\n )\r\n : onCellClick(item);\r\n }}\r\n >\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n
goTo(item)}>\r\n {item.title}\r\n
\r\n \r\n );\r\n});\r\n\r\nexport default NakiNigunHomeGridCellTemplate;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { useCanAccessContent, nakiRadioContentType } from \"application/common/content-access\";\r\nimport { Image } from \"common/components\";\r\n\r\nfunction NakiNigunSearchResultGridCellTemplate({ item, onCellClick }) {\r\n const canAccessContent = useCanAccessContent(nakiRadioContentType.nakiNigun, {\r\n isPremium: item.isPremium,\r\n });\r\n return (\r\n
onCellClick(item)} className=\"c-home__preview__item c-home__preview__item--search\">\r\n
\r\n \r\n
\r\n
\r\n
\r\n {item.title}{\" \"}\r\n {item.isPremium && !canAccessContent && (\r\n \r\n )}\r\n
\r\n {item.artistName && (\r\n
{item.artistName}
\r\n )}\r\n
\r\n
\r\n );\r\n}\r\n\r\nNakiNigunSearchResultGridCellTemplate.propTypes = {\r\n item: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default NakiNigunSearchResultGridCellTemplate;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbRadioButtons } from \"mrb/components/radio\";\r\nimport { MrbQuerySearchInput } from \"mrb/components/input\";\r\nimport { HomeDeviceSelect } from \"application/home/components\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction NakiNigunHomePageHeaderTemplate({ nakiNigunHomeViewStore, t }) {\r\n const {\r\n anyDevice,\r\n contentTypeOptions,\r\n changeContentTypeFilter,\r\n queryUtility,\r\n inSearchMode,\r\n rootStore,\r\n deviceSelectStore,\r\n nakiNigunGenericSearchViewStore,\r\n } = nakiNigunHomeViewStore;\r\n return (\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n {anyDevice && !inSearchMode && (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n {!inSearchMode && (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n
\r\n \r\n );\r\n}\r\n\r\nNakiNigunHomePageHeaderTemplate.propTypes = {\r\n nakiNigunHomeViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default observer(NakiNigunHomePageHeaderTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbContentLoader } from \"mrb/components/loader\";\r\nimport { HomeListLoader } from \"application/home/components\";\r\nimport { NakiNigunHomeGridCell } from \"application/naki-nigun/components\";\r\nimport { map } from \"lodash\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction NakiNigunHomeFeaturedTemplate({\r\n nakiNigunHomeFeaturedContentViewStore,\r\n nakiNigunManageSelectedItemsViewStore,\r\n t,\r\n}) {\r\n const {\r\n items,\r\n loaderStore,\r\n isFeaturedScrollable,\r\n scrollFeaturedLeft,\r\n scrollFeaturedRight,\r\n setFeaturedContainerRef,\r\n onClickCellItem,\r\n goTo,\r\n rootStore: { premiumSubscriptionStore },\r\n } = nakiNigunHomeFeaturedContentViewStore;\r\n const { isBulk } = nakiNigunManageSelectedItemsViewStore;\r\n\r\n return (\r\n }>\r\n {() => (\r\n \r\n {items.length > 0 && (\r\n
\r\n
\r\n
\r\n {t(\"APPLICATION.NAKI_NIGUN.LIST.FEATURED\")}\r\n
\r\n {isFeaturedScrollable && (\r\n
\r\n \r\n \r\n
\r\n )}\r\n
\r\n\r\n
\r\n
\r\n {map(items, (item) => (\r\n \r\n ))}\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n )}\r\n
\r\n );\r\n}\r\n\r\nNakiNigunHomeFeaturedTemplate.propTypes = {\r\n nakiNigunHomeFeaturedContentViewStore: PropTypes.object.isRequired,\r\n nakiNigunManageSelectedItemsViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default observer(NakiNigunHomeFeaturedTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { HomeEmptyState, HomeListLoader, HomeOrderBySelect } from \"application/home/components\";\r\nimport {\r\n NakiNigunHomeGridCell,\r\n NakiNigunManageSelectedItems,\r\n NakiNigunHomeFeatured,\r\n} from \"application/naki-nigun/components\";\r\nimport { MrbInfiniteScrollGrid } from \"mrb/components/infinite-scroll-grid\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction NakiNigunHomeMainViewTemplate({ nakiNigunHomeViewStore, t }) {\r\n const {\r\n gridStore,\r\n goTo,\r\n rootStore: { premiumSubscriptionStore },\r\n nakiNigunManageSelectedItemsViewStore,\r\n nakiNigunHomeFeaturedContentViewStore,\r\n orderBySelectStore,\r\n } = nakiNigunHomeViewStore;\r\n const { isBulk } = nakiNigunManageSelectedItemsViewStore;\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n }\r\n loaderRenderer={() => }\r\n cellRenderer={(props) => (\r\n \r\n )}\r\n emptyStateRenderer={() => }\r\n />\r\n
\r\n );\r\n}\r\n\r\nNakiNigunHomeMainViewTemplate.propTypes = {\r\n nakiNigunHomeViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default observer(NakiNigunHomeMainViewTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { HomeEmptyState, HomeOrderBySelect, HomeListSearchLoader, HomeListLoader } from \"application/home/components\";\r\nimport { NakiNigunSearchResultGridCell } from \"application/naki-nigun/components\";\r\nimport { useCanAccessContent, nakiRadioContentType } from \"application/common/content-access\";\r\nimport { MrbGrid } from \"mrb/components/grid\";\r\nimport { PremiumBadge, Image } from \"common/components\";\r\nimport { MrbContentLoader } from \"mrb/components/loader\";\r\nimport { MrbPager } from \"mrb/components/pager\";\r\nimport { observer } from \"mobx-react\";\r\nimport { map } from \"lodash\";\r\n\r\nfunction NakiNigunHomeSearchResultsTemplate({ nakiNigunGenericSearchViewStore, t }) {\r\n const { gridStore, orderBySelectStore, queryUtility } = nakiNigunGenericSearchViewStore;\r\n\r\n return (\r\n \r\n }>\r\n {() => (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n\r\n {gridStore.hasItems && (\r\n
\r\n
\r\n

Search results

\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n )}\r\n\r\n }\r\n cellRender={(props) => }\r\n emptyStateRender={() => }\r\n pagerRender={(props) => (\r\n \r\n )}\r\n />\r\n
\r\n );\r\n}\r\n\r\nNakiNigunHomeSearchResultsTemplate.propTypes = {\r\n nakiNigunGenericSearchViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nconst ArtistsList = observer(function ArtistsList({ nakiNigunGenericSearchViewStore, t }) {\r\n const {\r\n artists,\r\n onClickArtist,\r\n scrollFeaturedLeft,\r\n scrollFeaturedRight,\r\n isAppearsInScrollable,\r\n setAppearsInContainerRef,\r\n } = nakiNigunGenericSearchViewStore;\r\n return (\r\n \r\n {artists.length > 0 && (\r\n
\r\n
\r\n
\r\n {t(\"APPLICATION.NAKI_NIGUN.LIST.GENERIC_SEARCH.APPEARS_IN\")}\r\n
\r\n {isAppearsInScrollable && (\r\n
\r\n \r\n \r\n
\r\n )}\r\n
\r\n\r\n
\r\n
\r\n {map(artists, (artist) => (\r\n \r\n ))}\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n );\r\n});\r\n\r\nfunction Artist({ item, onClickArtist }) {\r\n const canAccessContent = useCanAccessContent(nakiRadioContentType.nakiNigun, {\r\n isPremium: item.isPremium,\r\n });\r\n return (\r\n
onClickArtist(item)}>\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
{item.name}
\r\n
\r\n );\r\n}\r\n\r\nexport default observer(NakiNigunHomeSearchResultsTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbButton } from \"baasic-react-bootstrap/src\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction NakiNigunManageSelectedItemsTemplate({ nakiNigunManageSelectedItemsViewStore, t }) {\r\n const { isBulk, changeIsBulk, selectAll, deselectAll, isUpdating, saveSelection } =\r\n nakiNigunManageSelectedItemsViewStore;\r\n\r\n return (\r\n
\r\n {isBulk ? (\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n ) : (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n );\r\n}\r\n\r\nNakiNigunManageSelectedItemsTemplate.propTypes = {\r\n nakiNigunManageSelectedItemsViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default observer(NakiNigunManageSelectedItemsTemplate);\r\n","import React from \"react\";\r\nimport { computed, observable, makeObservable, action, runInAction } from \"mobx\";\r\nimport { MrbBaseViewStore } from \"mrb/core\";\r\nimport { nakiRadioSystemTypes } from \"common/constants\";\r\nimport { find, isNil } from \"lodash\";\r\n\r\nclass NakiNigunArtistAlbumViewStore extends MrbBaseViewStore {\r\n @observable isCollapsed = false;\r\n @observable isUpdating = false;\r\n\r\n panelRef = React.createRef();\r\n albumId = null;\r\n\r\n @computed get coverImageUrl() {\r\n if (this.album && this.album.coverImageId) {\r\n return this.rootStore.coverImageFactory.createNakiNigunAlbumCoverImageUrl(this.album.coverImageId, 50, 50);\r\n }\r\n\r\n return null;\r\n }\r\n\r\n @computed get contentAccessResult() {\r\n return this.evaluateContentAccess(this.album);\r\n }\r\n\r\n @computed get isDisabled() {\r\n return this.nakiNigunArtistViewStore.updatingStatus || this.isUpdating;\r\n }\r\n\r\n @computed get album() {\r\n if (this.nakiNigunArtistViewStore.item && this.nakiNigunArtistViewStore.item.albums) {\r\n return find(this.nakiNigunArtistViewStore.item.albums, (album) => album.id === this.albumId);\r\n }\r\n return null;\r\n }\r\n\r\n @computed get albumStatusItem() {\r\n if (this.album) {\r\n return this.album.userDeviceAlbum;\r\n }\r\n return null;\r\n }\r\n\r\n @computed get isTurnedOn() {\r\n if (!isNil(this.albumStatusItem)) {\r\n return this.albumStatusItem.isTurnedOn;\r\n } else if (this.album) {\r\n const selectedDevice = this.rootStore.userDeviceStore.selectedDevice;\r\n if (selectedDevice && selectedDevice.device && selectedDevice.device.systemType) {\r\n switch (selectedDevice.device.systemType.abrv) {\r\n case nakiRadioSystemTypes.venice:\r\n return this.album.isTurnedOnByDefault;\r\n case nakiRadioSystemTypes.mobile:\r\n return this.album.isTurnedOnByDefaultInApp;\r\n case nakiRadioSystemTypes.mobile_embedded:\r\n return this.album.isTurnedOnByDefaultInEmbeddedApp;\r\n default:\r\n break;\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n constructor(rootStore, { albumId, nakiNigunArtistViewStore }) {\r\n super(rootStore);\r\n makeObservable(this);\r\n this.albumId = albumId;\r\n this.nakiNigunArtistViewStore = nakiNigunArtistViewStore;\r\n\r\n this.reaction(\r\n () => this.isCollapsed,\r\n (isCollapsed) => {\r\n if (isCollapsed && this.panelRef) {\r\n // We need to execute scroll function asynchronously in order to take effect.\r\n setTimeout(() => {\r\n this.panelRef.scrollIntoView({\r\n behavior: \"smooth\",\r\n block: \"center\",\r\n });\r\n });\r\n }\r\n }\r\n );\r\n }\r\n\r\n initialize() {\r\n const albumId = this.rootStore.routerStore.routerState.queryParams.albumId;\r\n if (albumId && this.album.id === albumId) {\r\n runInAction(() => {\r\n this.isCollapsed = true;\r\n });\r\n }\r\n return Promise.resolve();\r\n }\r\n\r\n @action.bound\r\n async toggleAlbumStatus(isTurnedOn) {\r\n this.isCollapsed = !this.isCollapsed;\r\n this.setIsUpdating(true);\r\n await this.nakiNigunArtistViewStore.updateAlbumTurnedOnStatus(this.albumId, isTurnedOn);\r\n this.setIsUpdating(false);\r\n }\r\n\r\n @action.bound\r\n setIsUpdating(isUpdating) {\r\n this.isUpdating = isUpdating;\r\n }\r\n\r\n @action.bound\r\n toggleCollapse() {\r\n this.isCollapsed = !this.isCollapsed;\r\n }\r\n\r\n setPanelRef = (ref) => {\r\n this.panelRef = ref;\r\n };\r\n\r\n evaluateContentAccess(item) {\r\n if (isNil(item)) {\r\n return false;\r\n }\r\n const artist = this.nakiNigunArtistViewStore.item;\r\n return this.rootStore.contentAccessValidator.canAccessNakiNigun({\r\n isPremium: item.isPremium,\r\n unavailableInMobileApp: artist.isVisibleInApp === false,\r\n unavailableInNakiTouch: artist.isVisibleInEmbeddedApp === false,\r\n });\r\n }\r\n}\r\n\r\nexport default NakiNigunArtistAlbumViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { NakiNigunUserContentService } from \"common/services\";\r\n\r\nclass NakiNigunArtistRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n this.service = this.rootStore.createApplicationService(NakiNigunUserContentService);\r\n }\r\n\r\n async getNakiNigunArtistWthDeviceSettings(artistId, deviceId) {\r\n const response = await this.service.getNakiNigunArtistWthDeviceSettings(artistId, deviceId);\r\n return response.data;\r\n }\r\n\r\n async getNakiNigunArtist(artistId) {\r\n const response = await this.service.getNakiNigunArtist(artistId);\r\n return response.data;\r\n }\r\n\r\n async getUserDeviceAlbumsByArtist(deviceId, artistId) {\r\n const response = await this.service.getUserDeviceAlbumsByArtist(deviceId, artistId);\r\n return response.data;\r\n }\r\n}\r\n\r\nexport default NakiNigunArtistRouteStore;\r\n","import { action, computed, makeObservable, override, runInAction } from \"mobx\";\r\nimport { BaseHomePreviewViewStore } from \"application/home/stores\";\r\nimport { UpdateNakiNigunAlbumStatusOptions } from \"application/common/models\";\r\nimport { forEach, find, findIndex, isNil } from \"lodash\";\r\n\r\nclass NakiNigunArtistViewStore extends BaseHomePreviewViewStore {\r\n @computed get coverImageUrl() {\r\n if (this.item && this.item.coverImageId) {\r\n return this.rootStore.coverImageFactory.createNakiNigunArtistCoverImageUrl(\r\n this.item.coverImageId,\r\n 200,\r\n 200\r\n );\r\n }\r\n\r\n return null;\r\n }\r\n\r\n constructor(rootStore, { routeStore }) {\r\n const id = rootStore.routerStore.routerState.params.id;\r\n super(rootStore, {\r\n id: id,\r\n navigateBack: \"master.application.naki-nigun.list\",\r\n });\r\n makeObservable(this);\r\n this.routeStore = routeStore;\r\n }\r\n\r\n async get(id) {\r\n if (this.rootStore.userDeviceStore.selectedDevice) {\r\n return this.routeStore.getNakiNigunArtistWthDeviceSettings(\r\n id,\r\n this.rootStore.userDeviceStore.selectedDevice.id\r\n );\r\n }\r\n return this.routeStore.getNakiNigunArtist(id);\r\n }\r\n\r\n @action.bound\r\n async updateAlbumTurnedOnStatus(albumId, isTurnedOn) {\r\n try {\r\n this.statusToggleLoader.suspend();\r\n const albumIndex = findIndex(this.item.albums, (album) => album.id === albumId);\r\n const options = new UpdateNakiNigunAlbumStatusOptions(\r\n albumId,\r\n this.item.albums[albumIndex].title,\r\n this.item.albums[albumIndex].isPremium,\r\n this.item.albums[albumIndex].isVisibleInApp === false,\r\n this.item.albums[albumIndex].isVisibleInEmbeddedApp === false\r\n );\r\n await this.rootStore.userContentManagerStore.updateNakiNigunAlbumsStatus(options, isTurnedOn);\r\n runInAction(() => {\r\n if (this.item.albums[albumIndex].userDeviceAlbum) {\r\n this.item.albums[albumIndex].userDeviceAlbum.isTurnedOn = isTurnedOn;\r\n } else {\r\n this.item.albums[albumIndex].userDeviceAlbum = { isTurnedOn: isTurnedOn };\r\n }\r\n });\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\"Unexpected error occurred. Please contact the support team.\", err);\r\n } finally {\r\n this.statusToggleLoader.resume();\r\n }\r\n }\r\n\r\n getStatusItem(deviceId, resourceId) {\r\n return this.routeStore.getUserDeviceAlbumsByArtist(deviceId, resourceId);\r\n }\r\n\r\n @override\r\n setStatusItem(statusItem) {\r\n forEach(this.item.albums, (album) => {\r\n if (statusItem && statusItem.length > 0) {\r\n album.userDeviceAlbum = find(statusItem, (item) => item.albumId === album.id);\r\n } else {\r\n album.userDeviceAlbum = null;\r\n }\r\n });\r\n }\r\n\r\n evaluateContentAccess(item) {\r\n if (isNil(item)) {\r\n return false;\r\n }\r\n return this.rootStore.contentAccessValidator.canAccessNakiNigun({\r\n isPremium: item.isPremium,\r\n unavailableInMobileApp: item.isVisibleInApp === false,\r\n unavailableInNakiTouch: item.isVisibleInEmbeddedApp === false,\r\n });\r\n }\r\n}\r\n\r\nexport default NakiNigunArtistViewStore;\r\n","import { action, computed, observable, makeObservable, runInAction } from \"mobx\";\r\nimport { MrbBaseViewStore } from \"mrb/core/stores\";\r\nimport { sideScroll } from \"common/utils\";\r\nimport { UpdateNakiNigunAlbumStatusOptions, UpdateNakiNigunArtistStatusOptions } from \"application/common/models\";\r\nimport { map, find, findIndex, isNil, forEach } from \"lodash\";\r\nimport { NakiNigunArtist, NakiNigunAlbum, nakiNigunContentType } from \"application/naki-nigun/models\";\r\n\r\nclass NakiNigunHomeFeaturedContentViewStore extends MrbBaseViewStore {\r\n @observable.ref items = [];\r\n @observable isFeaturedScrollable = false;\r\n @observable.ref featuredContainerRef = null;\r\n\r\n @computed get selectedDevice() {\r\n return this.rootStore.userDeviceStore.selectedDevice;\r\n }\r\n\r\n constructor(rootStore, nakiNigunHomeViewStore) {\r\n super(rootStore);\r\n makeObservable(this);\r\n this.nakiNigunHomeViewStore = nakiNigunHomeViewStore;\r\n this.routeStore = nakiNigunHomeViewStore.routeStore;\r\n\r\n this.reaction(\r\n () => ({\r\n groups: this.items,\r\n container: this.featuredContainerRef,\r\n }),\r\n (context) => {\r\n if (context.container) {\r\n setTimeout(() => {\r\n runInAction(() => {\r\n this.isFeaturedScrollable = context.container.scrollWidth > context.container.clientWidth;\r\n });\r\n });\r\n }\r\n }\r\n );\r\n\r\n this.reaction(\r\n () => ({\r\n deviceId: this.selectedDevice && this.selectedDevice.id,\r\n contentType: this.nakiNigunHomeViewStore.queryUtility.filter.contentType,\r\n }),\r\n (context) => {\r\n this.fetchResources(context);\r\n }\r\n );\r\n }\r\n\r\n onInit() {\r\n let deviceId;\r\n if (this.selectedDevice) {\r\n deviceId = this.selectedDevice.id;\r\n }\r\n return this.fetchResources({ deviceId: deviceId });\r\n }\r\n\r\n getFeaturedArtists(deviceId) {\r\n return this.routeStore.getFeaturedArtists(deviceId);\r\n }\r\n\r\n getFeaturedAlbums(deviceId) {\r\n return this.routeStore.getFeaturedAlbums(deviceId);\r\n }\r\n\r\n async fetchResources({ deviceId }) {\r\n this.loaderStore.suspend();\r\n try {\r\n if (this.nakiNigunHomeViewStore.queryUtility.filter.contentType === nakiNigunContentType.artists) {\r\n const artists = await this.getFeaturedArtists(deviceId);\r\n this.setFeaturedArtists(artists);\r\n } else {\r\n const albums = await this.getFeaturedAlbums(deviceId);\r\n this.setFeaturedAlbums(albums);\r\n }\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n \"Unexpected error occurred while trying to load featured content. Please contact the support team.\",\r\n err\r\n );\r\n } finally {\r\n this.loaderStore.resume();\r\n }\r\n }\r\n\r\n @action.bound\r\n onAlbumTurnedOnStatusChange(changedAlbum) {\r\n const album = find(this.items, (item) => item.albumId === changedAlbum.albumId);\r\n if (album && album.isTurnedOn !== changedAlbum.isTurnedOn) {\r\n album.isTurnedOn = changedAlbum.isTurnedOn;\r\n }\r\n }\r\n\r\n @action.bound\r\n onArtistTurnedOnStatusChange(changedArtist) {\r\n const artist = find(this.items, (item) => item.artistId === changedArtist.artistId);\r\n if (artist && artist.isTurnedOn !== changedArtist.isTurnedOn) {\r\n artist.isTurnedOn = changedArtist.isTurnedOn;\r\n }\r\n }\r\n\r\n goTo = (item) => {\r\n return this.nakiNigunHomeViewStore.goTo(item);\r\n };\r\n\r\n onClickCellItem = async (item) => {\r\n const contentAccessResult = this.rootStore.contentAccessValidator.canAccessNakiNigun({\r\n isPremium: item.isPremium,\r\n unavailableInMobileApp: item.isVisibleInApp === false,\r\n });\r\n if (contentAccessResult.canAccess) {\r\n if (item instanceof NakiNigunArtist) {\r\n await this.toggleFeaturedArtistTurnedOn(item, this.selectedDevice.id);\r\n } else if (item instanceof NakiNigunAlbum) {\r\n await this.toggleFeaturedAlbumTurnedOn(item, this.selectedDevice.id);\r\n }\r\n }\r\n };\r\n\r\n async toggleFeaturedAlbumTurnedOn(item, deviceId) {\r\n if (!item.isUpdating) {\r\n try {\r\n item.isUpdating = true;\r\n this.rootStore.mainLoaderStore.suspend();\r\n const newValue = !item.isTurnedOn;\r\n const options = new UpdateNakiNigunAlbumStatusOptions(\r\n item.albumId,\r\n item.title,\r\n item.isPremium,\r\n item.isVisibleInApp === false\r\n );\r\n await this.rootStore.userContentManagerStore.updateNakiNigunAlbumsStatus(options, newValue);\r\n runInAction(() => {\r\n item.isTurnedOn = newValue;\r\n this.nakiNigunHomeViewStore.onFeaturedAlbumTurnedOnStatusChange(item);\r\n });\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n \"Unexpected error occurred. Please contact the support team.\",\r\n err\r\n );\r\n } finally {\r\n delete item.isUpdating;\r\n this.rootStore.mainLoaderStore.resume();\r\n }\r\n }\r\n }\r\n\r\n async toggleFeaturedArtistTurnedOn(item, deviceId) {\r\n if (!item.isUpdating) {\r\n try {\r\n item.isUpdating = true;\r\n this.rootStore.mainLoaderStore.suspend();\r\n const newValue = !item.isTurnedOn;\r\n const options = new UpdateNakiNigunArtistStatusOptions(\r\n item.artistId,\r\n item.name,\r\n item.isPremium,\r\n item.isVisibleInApp === false\r\n );\r\n await this.rootStore.userContentManagerStore.updateNakiNigunAlbumsStatusByArtist(options, newValue);\r\n runInAction(() => {\r\n item.isTurnedOn = newValue;\r\n this.nakiNigunHomeViewStore.onFeaturedArtistTurnedOnStatusChange(item);\r\n });\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n \"Unexpected error occurred. Please contact the support team.\",\r\n err\r\n );\r\n } finally {\r\n delete item.isUpdating;\r\n this.rootStore.mainLoaderStore.resume();\r\n }\r\n }\r\n }\r\n\r\n @action.bound\r\n onFeaturedArtistBulkEditSuccess(artistsBulkEdit) {\r\n forEach(this.items, (artist) => {\r\n const contentAccessResult = this.rootStore.contentAccessValidator.canAccessNakiNigun({\r\n isPremium: artist.isPremium,\r\n unavailableInMobileApp: artist.isVisibleInApp === false,\r\n });\r\n if (contentAccessResult.canAccess) {\r\n const selectedIndex = findIndex(\r\n artistsBulkEdit.selectedIds,\r\n (selectedId) => selectedId === artist.artistId\r\n );\r\n if (selectedIndex !== -1) {\r\n artist.isTurnedOn = true;\r\n return;\r\n }\r\n const deselectedIndex = findIndex(\r\n artistsBulkEdit.deselectedIds,\r\n (deselectedId) => deselectedId === artist.artistId\r\n );\r\n if (deselectedIndex !== -1) {\r\n artist.isTurnedOn = false;\r\n return;\r\n }\r\n if (!isNil(artistsBulkEdit.isAllSelected)) {\r\n artist.isTurnedOn = artistsBulkEdit.isAllSelected;\r\n }\r\n }\r\n });\r\n }\r\n\r\n @action.bound\r\n onFeaturedAlbumBulkEditSuccess(albumsBulkEdit) {\r\n forEach(this.items, (album) => {\r\n const contentAccessResult = this.rootStore.contentAccessValidator.canAccessNakiNigun({\r\n isPremium: album.isPremium,\r\n unavailableInMobileApp: album.isVisibleInApp === false,\r\n });\r\n if (contentAccessResult.canAccess) {\r\n const selectedIndex = findIndex(\r\n albumsBulkEdit.selectedIds,\r\n (selectedId) => selectedId === album.albumId\r\n );\r\n if (selectedIndex !== -1) {\r\n album.isTurnedOn = true;\r\n return;\r\n }\r\n\r\n const deselectedIndex = findIndex(\r\n albumsBulkEdit.deselectedIds,\r\n (deselectedId) => deselectedId === album.albumId\r\n );\r\n if (deselectedIndex !== -1) {\r\n album.isTurnedOn = false;\r\n return;\r\n }\r\n\r\n if (!isNil(albumsBulkEdit.isAllSelected)) {\r\n album.isTurnedOn = albumsBulkEdit.isAllSelected;\r\n }\r\n }\r\n });\r\n }\r\n\r\n @action.bound\r\n resetItems() {\r\n this.items = [...this.items];\r\n }\r\n\r\n @action.bound\r\n setFeaturedArtists(items) {\r\n this.items = map(items, (item) => {\r\n return new NakiNigunArtist({\r\n ...item,\r\n coverImageUrl: this.nakiNigunHomeViewStore.createArtistCoverImageUrl(item),\r\n });\r\n });\r\n }\r\n\r\n @action.bound\r\n setFeaturedAlbums(items) {\r\n this.items = map(items, (item) => {\r\n return new NakiNigunAlbum({\r\n ...item,\r\n coverImageUrl: this.nakiNigunHomeViewStore.createAlbumCoverImageUrl(item),\r\n });\r\n });\r\n }\r\n\r\n @action.bound\r\n setFeaturedContainerRef(ref) {\r\n this.featuredContainerRef = ref;\r\n }\r\n\r\n @action.bound\r\n scrollFeaturedLeft() {\r\n sideScroll(this.featuredContainerRef, \"left\", 20, 400, 20);\r\n }\r\n\r\n @action.bound\r\n scrollFeaturedRight() {\r\n sideScroll(this.featuredContainerRef, \"right\", 20, 400, 20);\r\n }\r\n}\r\n\r\nexport default NakiNigunHomeFeaturedContentViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { NakiNigunUserContentService } from \"common/services\";\r\n\r\nclass NakiNigunHomeRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n this.service = this.rootStore.createApplicationService(NakiNigunUserContentService);\r\n }\r\n\r\n async findArtists(params) {\r\n const response = await this.service.findArtists(params);\r\n return response.data;\r\n }\r\n\r\n async findAlbums(params) {\r\n const response = await this.service.findAlbums(params);\r\n return response.data;\r\n }\r\n\r\n async genericSearch(params, abortController) {\r\n const response = await this.service.genericSearch(params, abortController);\r\n return response.data;\r\n }\r\n\r\n async getFeaturedArtists(deviceId) {\r\n const response = await this.service.getFeaturedArtists(deviceId);\r\n return response.data;\r\n }\r\n\r\n async getFeaturedAlbums(deviceId) {\r\n const response = await this.service.getFeaturedAlbums(deviceId);\r\n return response.data;\r\n }\r\n}\r\n\r\nexport default NakiNigunHomeRouteStore;\r\n","import { observable, makeObservable } from \"mobx\";\r\nimport { MrbFilterParameters } from \"mrb/core/filter\";\r\nimport { nakiNigunContentType } from \"application/naki-nigun/models\";\r\n\r\nclass NakiNigunHomeContentFilter extends MrbFilterParameters {\r\n @observable contentType;\r\n\r\n constructor() {\r\n super();\r\n makeObservable(this);\r\n this.reset();\r\n }\r\n\r\n reset() {\r\n super.reset();\r\n this.contentType = nakiNigunContentType.albums;\r\n }\r\n}\r\n\r\nexport default NakiNigunHomeContentFilter;\r\n","import { action, computed, makeObservable, runInAction } from \"mobx\";\r\nimport { MrbBaseListViewStore } from \"mrb/core\";\r\nimport { MrbInfiniteScrollGridViewStore } from \"mrb/components/infinite-scroll-grid\";\r\nimport { MrbModalParams } from \"mrb/common/models\";\r\nimport { MrbSimpleSelectStore, MrbQuerySimpleSelectStore } from \"mrb/components/select\";\r\nimport {\r\n NakiNigunGenericSearchViewStore,\r\n NakiNigunManageSelectedItemsViewStore,\r\n NakiNigunHomeFeaturedContentViewStore,\r\n} from \"application/naki-nigun/stores\";\r\nimport { NakiNigunArtist, NakiNigunAlbum, nakiNigunContentType } from \"application/naki-nigun/models\";\r\nimport { UpdateNakiNigunAlbumStatusOptions, UpdateNakiNigunArtistStatusOptions } from \"application/common/models\";\r\nimport { NakiNigunHomeContentFilter } from \"application/naki-nigun/filters\";\r\nimport { calculateNumberOfColumns, calculateNumberOfRows } from \"common/utils\";\r\nimport { isNil, forEach, findIndex, find } from \"lodash\";\r\n\r\nclass NakiNigunHomeViewStore extends MrbBaseListViewStore {\r\n @computed get selectedDevice() {\r\n return this.rootStore.userDeviceStore.selectedDevice;\r\n }\r\n\r\n @computed get inSearchMode() {\r\n return this.nakiNigunGenericSearchViewStore.showSearchView;\r\n }\r\n\r\n @computed get anyDevice() {\r\n return this.rootStore.userDeviceStore.devices.length > 0;\r\n }\r\n\r\n @computed get nakiNigunContentTypeMode() {\r\n return this.queryUtility.filter.contentType;\r\n }\r\n\r\n contentTypeOptions = [\r\n {\r\n label: \"APPLICATION.NAKI_NIGUN.LIST.FILTER.ARTISTS\",\r\n value: nakiNigunContentType.artists,\r\n },\r\n {\r\n label: \"APPLICATION.NAKI_NIGUN.LIST.FILTER.ALBUMS\",\r\n value: nakiNigunContentType.albums,\r\n },\r\n ];\r\n\r\n artistOrderOptions = [\r\n {\r\n label: \"APPLICATION.NAKI_NIGUN.LIST.ORDER.ALPHABETICALY_OPTION\",\r\n value: \"name\",\r\n },\r\n {\r\n label: \"APPLICATION.NAKI_NIGUN.LIST.ORDER.RECENTLY_ADDED_OPTION\",\r\n value: \"dateCreated\",\r\n },\r\n ];\r\n\r\n albumOrderOptions = [\r\n {\r\n label: \"APPLICATION.NAKI_NIGUN.LIST.ORDER.ALPHABETICALY_OPTION\",\r\n value: \"title\",\r\n },\r\n {\r\n label: \"APPLICATION.NAKI_NIGUN.LIST.ORDER.RECENTLY_ADDED_OPTION\",\r\n value: \"dateCreated\",\r\n },\r\n ];\r\n\r\n @computed get orderOptions() {\r\n if (this.nakiNigunContentTypeMode === nakiNigunContentType.artists) {\r\n return this.artistOrderOptions;\r\n }\r\n return this.albumOrderOptions;\r\n }\r\n\r\n constructor(rootStore, { routeStore }) {\r\n const pageSize = calculateNumberOfColumns(window.innerWidth) * calculateNumberOfRows(window.innerWidth);\r\n super(rootStore, {\r\n queryConfig: {\r\n filter: new NakiNigunHomeContentFilter(),\r\n orderBy: \"name\",\r\n orderDirection: \"asc\",\r\n pageSize: pageSize,\r\n queryParamMap: {\r\n page: {\r\n toQuery: () => 1,\r\n },\r\n },\r\n },\r\n });\r\n makeObservable(this);\r\n this.routeStore = routeStore;\r\n this.nakiNigunGenericSearchViewStore = new NakiNigunGenericSearchViewStore(this.rootStore, this);\r\n this.nakiNigunManageSelectedItemsViewStore = new NakiNigunManageSelectedItemsViewStore(this.rootStore, this);\r\n this.nakiNigunHomeFeaturedContentViewStore = new NakiNigunHomeFeaturedContentViewStore(this.rootStore, this);\r\n this.connectDeviceModal = new MrbModalParams(\r\n {\r\n onClose: () => this.rootStore.userStore.disableConnectDeviceMessage(),\r\n },\r\n {\r\n goToConnectDevice: this.goToConnectDevice,\r\n }\r\n );\r\n\r\n this.setGridStore(\r\n new MrbInfiniteScrollGridViewStore(this.rootStore, this.queryUtility, {\r\n onCellClick: (item) => this.onClickCellItem(item),\r\n generateKey: (item) => item.albumId || item.artistId,\r\n mapper: (item) => {\r\n if (item.albumId) {\r\n return new NakiNigunAlbum({\r\n ...item,\r\n coverImageUrl: this.createAlbumCoverImageUrl(item),\r\n });\r\n } else {\r\n return new NakiNigunArtist({\r\n ...item,\r\n coverImageUrl: this.createArtistCoverImageUrl(item),\r\n });\r\n }\r\n },\r\n })\r\n );\r\n\r\n this.orderBySelectStore = new MrbQuerySimpleSelectStore(\r\n {\r\n textKey: \"label\",\r\n valueKey: \"value\",\r\n actions: {\r\n onChange: (selectedOrder) => {\r\n if (selectedOrder.value === \"title\" || selectedOrder.value === \"name\") {\r\n this.queryUtility.filter.orderDirection = \"asc\";\r\n } else {\r\n this.queryUtility.filter.orderDirection = \"desc\";\r\n }\r\n },\r\n },\r\n },\r\n this.queryUtility,\r\n \"orderBy\",\r\n this.orderOptions\r\n );\r\n\r\n this.deviceSelectStore = new MrbSimpleSelectStore(\r\n {\r\n textKey: \"deviceName\",\r\n valueKey: \"id\",\r\n actions: {\r\n onChange: (option) => {\r\n this.rootStore.userDeviceStore.setSelectedDevice(option.item);\r\n },\r\n },\r\n },\r\n this.rootStore.userDeviceStore.devices\r\n );\r\n this.deviceSelectStore.setSelectedItem(this.selectedDevice);\r\n\r\n this.reaction(\r\n () => this.selectedDevice,\r\n () => {\r\n if (!this.inSearchMode) {\r\n this.queryUtility.fetch();\r\n }\r\n }\r\n );\r\n\r\n this.reaction(\r\n () => this.inSearchMode,\r\n (inSearchMode) => {\r\n if (!inSearchMode) {\r\n this.queryUtility.fetch();\r\n }\r\n }\r\n );\r\n }\r\n\r\n onInit() {\r\n if (!this.anyDevice && this.rootStore.userStore.isConnectDeviceMessageVisible) {\r\n this.connectDeviceModal.open();\r\n }\r\n return Promise.all([this.nakiNigunHomeFeaturedContentViewStore.onInit(), this.queryUtility.initialize()]);\r\n }\r\n\r\n findArtists(params) {\r\n if (this.selectedDevice) {\r\n params.deviceId = this.selectedDevice.id;\r\n }\r\n return this.routeStore.findArtists({\r\n ...params,\r\n orderBy: params.orderBy === \"title\" ? \"name\" : params.orderBy,\r\n });\r\n }\r\n\r\n findAlbums(params) {\r\n if (this.selectedDevice) {\r\n params.deviceId = this.selectedDevice.id;\r\n }\r\n return this.routeStore.findAlbums({\r\n ...params,\r\n orderBy: params.orderBy === \"name\" ? \"title\" : params.orderBy,\r\n });\r\n }\r\n\r\n async fetchResources(filter) {\r\n // Display grid (Skeleton loader) only during the first page load, and in other cases, during loading more data on scroll event,\r\n // display only top bar loader (mainLoaderStore)\r\n const isFirstPageLoad = filter.pageNumber === 1;\r\n if (isFirstPageLoad) {\r\n this.gridStore.suspend();\r\n } else {\r\n this.rootStore.mainLoaderStore.suspend();\r\n }\r\n try {\r\n let response;\r\n if (filter.contentType === nakiNigunContentType.artists) {\r\n response = await this.findArtists(filter);\r\n } else {\r\n response = await this.findAlbums(filter);\r\n }\r\n runInAction(() => {\r\n this.gridStore.setData(response);\r\n if (isFirstPageLoad) {\r\n this.gridStore.resume();\r\n } else {\r\n this.rootStore.mainLoaderStore.resume();\r\n }\r\n });\r\n } catch (err) {\r\n if (isFirstPageLoad) {\r\n this.gridStore.resume();\r\n } else {\r\n this.rootStore.mainLoaderStore.resume();\r\n }\r\n this.onFetchError(err);\r\n }\r\n }\r\n\r\n @action.bound\r\n onAlbumBulkEditSuccess(albumsBulkEdit) {\r\n forEach(this.gridStore.data, (album) => {\r\n const contentAccessResult = this.rootStore.contentAccessValidator.canAccessNakiNigun({\r\n isPremium: album.isPremium,\r\n unavailableInMobileApp: album.isVisibleInApp === false,\r\n unavailableInNakiTouch: album.isVisibleInEmbeddedApp === false,\r\n });\r\n if (contentAccessResult.canAccess) {\r\n const selectedIndex = findIndex(\r\n albumsBulkEdit.selectedIds,\r\n (selectedId) => selectedId === album.albumId\r\n );\r\n if (selectedIndex !== -1) {\r\n album.isTurnedOn = true;\r\n return;\r\n }\r\n\r\n const deselectedIndex = findIndex(\r\n albumsBulkEdit.deselectedIds,\r\n (deselectedId) => deselectedId === album.albumId\r\n );\r\n if (deselectedIndex !== -1) {\r\n album.isTurnedOn = false;\r\n return;\r\n }\r\n\r\n if (!isNil(albumsBulkEdit.isAllSelected)) {\r\n album.isTurnedOn = albumsBulkEdit.isAllSelected;\r\n }\r\n }\r\n });\r\n this.nakiNigunHomeFeaturedContentViewStore.onFeaturedAlbumBulkEditSuccess(albumsBulkEdit);\r\n }\r\n\r\n @action.bound\r\n onArtistBulkEditSuccess(artistsBulkEdit) {\r\n forEach(this.gridStore.data, (artist) => {\r\n const contentAccessResult = this.rootStore.contentAccessValidator.canAccessNakiNigun({\r\n isPremium: artist.isPremium,\r\n unavailableInMobileApp: artist.isVisibleInApp === false,\r\n unavailableInNakiTouch: artist.isVisibleInEmbeddedApp === false,\r\n });\r\n if (contentAccessResult.canAccess) {\r\n const selectedIndex = findIndex(\r\n artistsBulkEdit.selectedIds,\r\n (selectedId) => selectedId === artist.artistId\r\n );\r\n if (selectedIndex !== -1) {\r\n artist.isTurnedOn = true;\r\n return;\r\n }\r\n const deselectedIndex = findIndex(\r\n artistsBulkEdit.deselectedIds,\r\n (deselectedId) => deselectedId === artist.artistId\r\n );\r\n if (deselectedIndex !== -1) {\r\n artist.isTurnedOn = false;\r\n return;\r\n }\r\n if (!isNil(artistsBulkEdit.isAllSelected)) {\r\n artist.isTurnedOn = artistsBulkEdit.isAllSelected;\r\n }\r\n }\r\n });\r\n this.nakiNigunHomeFeaturedContentViewStore.onFeaturedArtistBulkEditSuccess(artistsBulkEdit);\r\n }\r\n\r\n async toggleAlbumTurnedOn(item, deviceId) {\r\n if (!item.isUpdating) {\r\n try {\r\n item.isUpdating = true;\r\n this.rootStore.mainLoaderStore.suspend();\r\n const newValue = !item.isTurnedOn;\r\n const options = new UpdateNakiNigunAlbumStatusOptions(\r\n item.albumId,\r\n item.title,\r\n item.isPremium,\r\n item.isVisibleInApp === false,\r\n item.isVisibleInEmbeddedApp === false\r\n );\r\n await this.rootStore.userContentManagerStore.updateNakiNigunAlbumsStatus(options, newValue);\r\n runInAction(() => {\r\n item.isTurnedOn = newValue;\r\n this.nakiNigunHomeFeaturedContentViewStore.onAlbumTurnedOnStatusChange(item);\r\n });\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n \"Unexpected error occurred. Please contact the support team.\",\r\n err\r\n );\r\n } finally {\r\n delete item.isUpdating;\r\n this.rootStore.mainLoaderStore.resume();\r\n }\r\n }\r\n }\r\n\r\n async toggleArtistTurnedOn(item, deviceId) {\r\n if (!item.isUpdating) {\r\n try {\r\n item.isUpdating = true;\r\n this.rootStore.mainLoaderStore.suspend();\r\n const newValue = !item.isTurnedOn;\r\n const options = new UpdateNakiNigunArtistStatusOptions(\r\n item.artistId,\r\n item.name,\r\n item.isPremium,\r\n item.isVisibleInApp === false,\r\n item.isVisibleInEmbeddedApp === false\r\n );\r\n await this.rootStore.userContentManagerStore.updateNakiNigunAlbumsStatusByArtist(options, newValue);\r\n runInAction(() => {\r\n item.isTurnedOn = newValue;\r\n this.nakiNigunHomeFeaturedContentViewStore.onArtistTurnedOnStatusChange(item);\r\n });\r\n } catch (err) {\r\n console.log(err);\r\n this.rootStore.notificationStore.error(\r\n \"Unexpected error occurred. Please contact the support team.\",\r\n err\r\n );\r\n } finally {\r\n delete item.isUpdating;\r\n this.rootStore.mainLoaderStore.resume();\r\n }\r\n }\r\n }\r\n\r\n @action.bound\r\n changeContentTypeFilter(value) {\r\n this.queryUtility.filter.set(\"contentType\", value);\r\n this.queryUtility.fetch();\r\n }\r\n\r\n goTo = (item) => {\r\n this.rootStore.routerStore.goTo(\"master.application.naki-nigun.artist\", {\r\n id: item.artistId,\r\n });\r\n };\r\n\r\n goToConnectDevice = () => {\r\n this.rootStore.routerStore.goTo(\"master.application.device.create\");\r\n };\r\n\r\n onClickCellItem = async (item) => {\r\n const contentAccessResult = this.rootStore.contentAccessValidator.canAccessNakiNigun({\r\n isPremium: item.isPremium,\r\n unavailableInMobileApp: item.isVisibleInApp === false,\r\n unavailableInNakiTouch: item.isVisibleInEmbeddedApp === false,\r\n });\r\n if (contentAccessResult.canAccess) {\r\n if (item instanceof NakiNigunArtist) {\r\n await this.toggleArtistTurnedOn(item, this.selectedDevice.id);\r\n } else if (item instanceof NakiNigunAlbum) {\r\n await this.toggleAlbumTurnedOn(item, this.selectedDevice.id);\r\n }\r\n }\r\n };\r\n\r\n @action.bound\r\n onFeaturedAlbumTurnedOnStatusChange(changedAlbum) {\r\n const album = find(this.gridStore.data, (item) => item.albumId === changedAlbum.albumId);\r\n if (album && album.isTurnedOn !== changedAlbum.isTurnedOn) {\r\n album.isTurnedOn = changedAlbum.isTurnedOn;\r\n }\r\n }\r\n\r\n @action.bound\r\n onFeaturedArtistTurnedOnStatusChange(changedArtist) {\r\n const artist = find(this.gridStore.data, (item) => item.artistId === changedArtist.artistId);\r\n if (artist && artist.isTurnedOn !== changedArtist.isTurnedOn) {\r\n artist.isTurnedOn = changedArtist.isTurnedOn;\r\n }\r\n }\r\n\r\n onFetchError(error) {\r\n this.rootStore.notificationStore.error(\r\n \"Unexpected error occurred while trying to load content. Please contact the support team.\",\r\n error\r\n );\r\n }\r\n\r\n createArtistCoverImageUrl(item) {\r\n if (item.coverImageId) {\r\n return this.rootStore.coverImageFactory.createNakiNigunArtistCoverImageUrl(item.coverImageId, 200, 200);\r\n }\r\n return null;\r\n }\r\n\r\n createAlbumCoverImageUrl(item) {\r\n if (item.coverImageId) {\r\n return this.rootStore.coverImageFactory.createNakiNigunAlbumCoverImageUrl(item.coverImageId, 200, 200);\r\n }\r\n return null;\r\n }\r\n\r\n onDestroy() {\r\n this.nakiNigunGenericSearchViewStore.destroy();\r\n this.nakiNigunManageSelectedItemsViewStore.destroy();\r\n this.nakiNigunHomeFeaturedContentViewStore.destroy();\r\n }\r\n}\r\n\r\nexport default NakiNigunHomeViewStore;\r\n","import { action, makeObservable, observable, runInAction } from \"mobx\";\r\nimport { MrbBaseListViewStore } from \"mrb/core\";\r\nimport { httpStatusCodes } from \"mrb/core/constants\";\r\nimport { MrbGridViewStore } from \"mrb/components/grid\";\r\nimport { MrbSimpleSelectStore } from \"mrb/components/select\";\r\nimport { sideScroll } from \"common/utils\";\r\nimport { find, filter, map, isNil, uniqBy } from \"lodash\";\r\n\r\nclass NakiNigunGenericSearchViewStore extends MrbBaseListViewStore {\r\n @observable showSearchView = false;\r\n @observable.ref artists = [];\r\n @observable isAppearsInScrollable = false;\r\n @observable.ref appearsInContainerRef = null;\r\n _isInitialLoad = true;\r\n\r\n _abortController = null;\r\n\r\n orderOptions = [\r\n {\r\n label: \"APPLICATION.NAKI_NIGUN.LIST.GENERIC_SEARCH.ORDER.RELEVANCE_OPTION\",\r\n value: \"-1\",\r\n },\r\n {\r\n label: \"APPLICATION.NAKI_NIGUN.LIST.GENERIC_SEARCH.ORDER.RECENTLY_ADDED_OPTION\",\r\n value: \"dateCreated\",\r\n },\r\n {\r\n label: \"APPLICATION.NAKI_NIGUN.LIST.GENERIC_SEARCH.ORDER.ALPHABETICALY_OPTION\",\r\n value: \"title\",\r\n },\r\n ];\r\n\r\n constructor(rootStore, nakiNigunHomeViewStore) {\r\n super(rootStore, {\r\n queryConfig: {\r\n disableUpdateQueryParams: true,\r\n pageSize: 30,\r\n },\r\n });\r\n makeObservable(this);\r\n this.nakiNigunHomeViewStore = nakiNigunHomeViewStore;\r\n this.routeStore = this.nakiNigunHomeViewStore.routeStore;\r\n\r\n this.setGridStore(\r\n new MrbGridViewStore(this.rootStore, this.queryUtility, {\r\n onCellClick: (item) => this.onClickCellItem(item),\r\n generateKey: (item) => item.albumId,\r\n mapper: (item) => {\r\n return {\r\n ...item,\r\n coverImageUrl: this.createAlbumCoverImageUrl(item),\r\n };\r\n },\r\n })\r\n );\r\n\r\n this.orderBySelectStore = new MrbSimpleSelectStore(\r\n {\r\n textKey: \"label\",\r\n valueKey: \"value\",\r\n actions: {\r\n onChange: (selectedOrder) => {\r\n if (this.queryUtility.filter.orderBy !== selectedOrder.value) {\r\n if (selectedOrder.value === \"-1\") {\r\n this.queryUtility.filter.orderBy = null;\r\n this.queryUtility.filter.orderDirection = null;\r\n } else {\r\n this.queryUtility.filter.orderBy = selectedOrder.value;\r\n if (selectedOrder.value === \"title\") {\r\n this.queryUtility.filter.orderDirection = \"asc\";\r\n } else {\r\n this.queryUtility.filter.orderDirection = \"desc\";\r\n }\r\n }\r\n this.queryUtility.fetch();\r\n }\r\n },\r\n },\r\n },\r\n this.orderOptions\r\n );\r\n\r\n this.initializeSortingDefault();\r\n\r\n this.reaction(\r\n () => (this.queryUtility.filter.search || \"\").trim(),\r\n (searchPhrase) => {\r\n if (searchPhrase) {\r\n this.queryUtility.fetch();\r\n } else {\r\n this.reset();\r\n }\r\n },\r\n {\r\n delay: 300,\r\n }\r\n );\r\n\r\n this.reaction(\r\n () => ({\r\n artists: this.artists,\r\n container: this.appearsInContainerRef,\r\n }),\r\n (context) => {\r\n if (context.container) {\r\n setTimeout(() => {\r\n runInAction(() => {\r\n this.isAppearsInScrollable = context.container.scrollWidth > context.container.clientWidth;\r\n });\r\n });\r\n }\r\n }\r\n );\r\n }\r\n\r\n async fetchResources(filter) {\r\n if (filter.search) {\r\n this.abortExistingRequest();\r\n this.setShowSearchView(true);\r\n let delay = null;\r\n if (this._isInitialLoad) {\r\n delay = 0;\r\n }\r\n this.gridStore.suspend(delay);\r\n try {\r\n const response = await this.find(filter);\r\n runInAction(() => {\r\n this.gridStore.setData(response);\r\n this.setArtists(response);\r\n this.gridStore.resume();\r\n });\r\n } catch (err) {\r\n runInAction(() => {\r\n this.gridStore.resume();\r\n });\r\n this.onFetchError(err);\r\n } finally {\r\n this._isInitialLoad = false;\r\n }\r\n } else {\r\n this.reset();\r\n }\r\n }\r\n\r\n @action.bound\r\n setArtists(response) {\r\n const data = response.item ? response.item : response;\r\n const artists = map(\r\n uniqBy(\r\n filter(data, (item) => !isNil(item.artistId)),\r\n \"artistId\"\r\n ),\r\n (item) => {\r\n return {\r\n artistId: item.artistId,\r\n name: item.artistName,\r\n isArtistPremium: item.isArtistPremium,\r\n coverImageUrl: this.createArtistCoverImageUrl(item.artistCoverImageId),\r\n };\r\n }\r\n );\r\n this.artists = artists;\r\n }\r\n\r\n initializeSortingDefault() {\r\n if (this.queryUtility.filter.orderBy) {\r\n this.orderBySelectStore.setSelectedItem(\r\n find(this.orderOptions, (orderOption) => orderOption.value === this.queryUtility.filter.orderBy)\r\n );\r\n } else {\r\n this.orderBySelectStore.setSelectedItem(this.orderOptions[0]);\r\n }\r\n }\r\n\r\n find(params) {\r\n this._abortController = new AbortController();\r\n return this.routeStore.genericSearch(params, this._abortController);\r\n }\r\n\r\n onClickCellItem = (item) => {\r\n this.rootStore.routerStore.goTo(\r\n \"master.application.naki-nigun.artist\",\r\n {\r\n id: item.artistId,\r\n },\r\n { albumId: item.albumId }\r\n );\r\n };\r\n\r\n createAlbumCoverImageUrl(item) {\r\n if (item.coverImageId) {\r\n return this.rootStore.coverImageFactory.createNakiNigunAlbumCoverImageUrl(item.coverImageId, 200, 200);\r\n }\r\n return null;\r\n }\r\n\r\n createArtistCoverImageUrl(artistCoverImageId) {\r\n if (artistCoverImageId) {\r\n return this.rootStore.coverImageFactory.createNakiNigunArtistCoverImageUrl(artistCoverImageId, 200, 200);\r\n }\r\n return null;\r\n }\r\n\r\n onFetchError(error) {\r\n if (error && error.statusCode === httpStatusCodes.CanceledRequest) {\r\n return;\r\n }\r\n console.log(error);\r\n this.rootStore.notificationStore.error(\r\n \"Unexpected error occurred while trying to load content. Please contact the support team.\",\r\n error\r\n );\r\n }\r\n\r\n @action.bound\r\n setShowSearchView(value) {\r\n this.showSearchView = value;\r\n }\r\n\r\n @action.bound\r\n reset() {\r\n this.setShowSearchView(false);\r\n this.abortExistingRequest();\r\n this.gridStore.setData([]);\r\n this.setArtists([]);\r\n this._isInitialLoad = true;\r\n }\r\n\r\n @action.bound\r\n scrollFeaturedLeft() {\r\n sideScroll(this.appearsInContainerRef, \"left\", 20, 400, 20);\r\n }\r\n\r\n @action.bound\r\n scrollFeaturedRight() {\r\n sideScroll(this.appearsInContainerRef, \"right\", 20, 400, 20);\r\n }\r\n\r\n abortExistingRequest() {\r\n if (this._abortController) {\r\n this._abortController.abort();\r\n }\r\n }\r\n\r\n onDestroy() {\r\n this.abortExistingRequest();\r\n }\r\n\r\n onClickArtist = (artist) => {\r\n this.rootStore.routerStore.goTo(\"master.application.naki-nigun.artist\", {\r\n id: artist.artistId,\r\n });\r\n };\r\n\r\n @action.bound\r\n setAppearsInContainerRef(ref) {\r\n this.appearsInContainerRef = ref;\r\n }\r\n}\r\n\r\nexport default NakiNigunGenericSearchViewStore;\r\n","import { MrbBaseViewStore } from \"mrb/core\";\r\nimport { observable, makeObservable, action, computed } from \"mobx\";\r\nimport { isNil } from \"lodash\";\r\nimport { NakiNigunBulkSelect } from \"application/naki-nigun/models\";\r\n\r\nclass NakiNigunAlbumBulkEditViewStore extends MrbBaseViewStore {\r\n @observable isUpdating = false;\r\n @observable bulkSelection = new NakiNigunBulkSelect();\r\n\r\n @computed get isSelectedItemsAny() {\r\n return !isNil(this.bulkSelection.isAllSelected) || this.bulkSelection.selectedIds.length > 0;\r\n }\r\n\r\n constructor(rootStore, nakiNigunHomeViewStore) {\r\n super(rootStore);\r\n makeObservable(this);\r\n this.nakiNigunHomeViewStore = nakiNigunHomeViewStore;\r\n this.routeStore = nakiNigunHomeViewStore.routeStore;\r\n }\r\n\r\n @action.bound\r\n selectAll() {\r\n this.bulkSelection.selectAll();\r\n }\r\n\r\n @action.bound\r\n deselectAll() {\r\n this.bulkSelection.deselectAll();\r\n }\r\n\r\n @action.bound\r\n selectItem(item) {\r\n if (this.isUpdating) {\r\n return;\r\n }\r\n\r\n const contentAccessResult = this.rootStore.contentAccessValidator.canAccessNakiNigun({\r\n isPremium: item.isPremium,\r\n unavailableInMobileApp: item.isVisibleInApp === false,\r\n });\r\n\r\n if (contentAccessResult.canAccess) {\r\n this.bulkSelection.addSelectedItem(item.albumId);\r\n }\r\n }\r\n\r\n @action.bound\r\n deselectItem(item) {\r\n if (this.isUpdating) {\r\n return;\r\n }\r\n\r\n const contentAccessResult = this.rootStore.contentAccessValidator.canAccessNakiNigun({\r\n isPremium: item.isPremium,\r\n unavailableInMobileApp: item.isVisibleInApp === false,\r\n });\r\n\r\n if (contentAccessResult.canAccess) {\r\n this.bulkSelection.addDeselectedItem(item.albumId);\r\n }\r\n }\r\n\r\n @action.bound\r\n async saveSelection() {\r\n if (!this.isUpdating) {\r\n this.setIsUpdating(true);\r\n try {\r\n this.rootStore.mainLoaderStore.suspend();\r\n const options = {\r\n isAllSelected: this.bulkSelection.isAllSelected,\r\n selectedAlbumIds: this.bulkSelection.selectedIds,\r\n deselectedAlbumIds: this.bulkSelection.deselectedIds,\r\n };\r\n await this.rootStore.userContentManagerStore.updateNakiNigunAlbumsStatusBulk(options);\r\n this.nakiNigunHomeViewStore.onAlbumBulkEditSuccess(this.bulkSelection);\r\n\r\n return true;\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n \"Unexpected error occurred. Please contact the support team.\",\r\n err\r\n );\r\n\r\n return false;\r\n } finally {\r\n this.setIsUpdating(false);\r\n this.rootStore.mainLoaderStore.resume();\r\n }\r\n }\r\n }\r\n\r\n @action.bound\r\n setIsUpdating(isUpdating) {\r\n this.isUpdating = isUpdating;\r\n }\r\n\r\n @action.bound\r\n clearSelection() {\r\n this.bulkSelection = new NakiNigunBulkSelect();\r\n }\r\n}\r\n\r\nexport default NakiNigunAlbumBulkEditViewStore;\r\n","import { MrbBaseViewStore } from \"mrb/core\";\r\nimport { observable, makeObservable, action, computed } from \"mobx\";\r\nimport { isNil } from \"lodash\";\r\nimport { NakiNigunBulkSelect } from \"application/naki-nigun/models\";\r\n\r\nclass NakiNigunArtistBulkEditViewStore extends MrbBaseViewStore {\r\n @observable isUpdating = false;\r\n @observable bulkSelection = new NakiNigunBulkSelect();\r\n\r\n @computed get isSelectedItemsAny() {\r\n return !isNil(this.bulkSelection.isAllSelected) || this.bulkSelection.selectedIds.length > 0;\r\n }\r\n constructor(rootStore, nakiNigunHomeViewStore) {\r\n super(rootStore);\r\n makeObservable(this);\r\n this.nakiNigunHomeViewStore = nakiNigunHomeViewStore;\r\n this.routeStore = nakiNigunHomeViewStore.routeStore;\r\n }\r\n\r\n @action.bound\r\n selectAll() {\r\n this.bulkSelection.selectAll();\r\n }\r\n\r\n @action.bound\r\n deselectAll() {\r\n this.bulkSelection.deselectAll();\r\n }\r\n\r\n @action.bound\r\n selectItem(item) {\r\n if (this.isUpdating) {\r\n return;\r\n }\r\n\r\n const contentAccessResult = this.rootStore.contentAccessValidator.canAccessNakiNigun({\r\n isPremium: item.isPremium,\r\n unavailableInMobileApp: item.isVisibleInApp === false,\r\n });\r\n\r\n if (contentAccessResult.canAccess) {\r\n this.bulkSelection.addSelectedItem(item.artistId);\r\n }\r\n }\r\n\r\n @action.bound\r\n deselectItem(item) {\r\n if (this.isUpdating) {\r\n return;\r\n }\r\n\r\n const contentAccessResult = this.rootStore.contentAccessValidator.canAccessNakiNigun({\r\n isPremium: item.isPremium,\r\n unavailableInMobileApp: item.isVisibleInApp === false,\r\n });\r\n\r\n if (contentAccessResult.canAccess) {\r\n this.bulkSelection.addDeselectedItem(item.artistId);\r\n }\r\n }\r\n\r\n @action.bound\r\n async saveSelection() {\r\n if (!this.isUpdating) {\r\n this.setIsUpdating(true);\r\n try {\r\n this.rootStore.mainLoaderStore.suspend();\r\n const options = {\r\n isAllSelected: this.bulkSelection.isAllSelected,\r\n selectedArtistIds: this.bulkSelection.selectedIds,\r\n deselectedArtistIds: this.bulkSelection.deselectedIds,\r\n };\r\n await this.rootStore.userContentManagerStore.updateNakiNigunAlbumsStatusByArtistBulk(options);\r\n this.nakiNigunHomeViewStore.onArtistBulkEditSuccess(this.bulkSelection);\r\n\r\n return true;\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n \"Unexpected error occurred. Please contact the support team.\",\r\n err\r\n );\r\n\r\n return false;\r\n } finally {\r\n this.setIsUpdating(false);\r\n this.rootStore.mainLoaderStore.resume();\r\n }\r\n }\r\n }\r\n\r\n @action.bound\r\n setIsUpdating(isUpdating) {\r\n this.isUpdating = isUpdating;\r\n }\r\n\r\n @action.bound\r\n clearSelection() {\r\n this.bulkSelection = new NakiNigunBulkSelect();\r\n }\r\n}\r\n\r\nexport default NakiNigunArtistBulkEditViewStore;\r\n","import { MrbBaseViewStore } from \"mrb/core\";\r\nimport { observable, makeObservable, action, computed } from \"mobx\";\r\nimport { NakiNigunAlbumBulkEditViewStore, NakiNigunArtistBulkEditViewStore } from \"application/naki-nigun/stores\";\r\nimport { nakiNigunContentType } from \"application/naki-nigun/models\";\r\n\r\nclass NakiNigunManageSelectedItemsViewStore extends MrbBaseViewStore {\r\n @observable isBulk = false;\r\n\r\n @computed get isSelectedItemsAny() {\r\n return this.nakiNigunHomeViewStore.nakiNigunContentTypeMode === nakiNigunContentType.artists\r\n ? this.artistBulkEditViewStore.isSelectedItemsAny\r\n : this.albumBulkEditViewStore.isSelectedItemsAny;\r\n }\r\n\r\n constructor(rootStore, nakiNigunHomeViewStore) {\r\n super(rootStore);\r\n makeObservable(this);\r\n this.nakiNigunHomeViewStore = nakiNigunHomeViewStore;\r\n this.routeStore = nakiNigunHomeViewStore.routeStore;\r\n\r\n this.albumBulkEditViewStore = new NakiNigunAlbumBulkEditViewStore(this.rootStore, this.nakiNigunHomeViewStore);\r\n this.artistBulkEditViewStore = new NakiNigunArtistBulkEditViewStore(\r\n this.rootStore,\r\n this.nakiNigunHomeViewStore\r\n );\r\n }\r\n\r\n @action.bound\r\n changeIsBulk() {\r\n if (this.isUpdating) {\r\n return;\r\n }\r\n this.setIsBulk(!this.isBulk);\r\n }\r\n\r\n @action.bound\r\n setIsBulk(value) {\r\n this.isBulk = value;\r\n if (!this.isBulk) {\r\n this.clearSelection();\r\n }\r\n }\r\n\r\n @action.bound\r\n selectAll() {\r\n if (this.nakiNigunHomeViewStore.nakiNigunContentTypeMode === nakiNigunContentType.artists) {\r\n this.artistBulkEditViewStore.selectAll();\r\n } else {\r\n this.albumBulkEditViewStore.selectAll();\r\n }\r\n }\r\n\r\n @action.bound\r\n deselectAll() {\r\n if (this.nakiNigunHomeViewStore.nakiNigunContentTypeMode === nakiNigunContentType.artists) {\r\n this.artistBulkEditViewStore.deselectAll();\r\n } else {\r\n this.albumBulkEditViewStore.deselectAll();\r\n }\r\n }\r\n\r\n @action.bound\r\n selectItem(item) {\r\n const contentAccessResult = this.rootStore.contentAccessValidator.canAccessNakiNigun({\r\n isPremium: item.isPremium,\r\n unavailableInMobileApp: item.isVisibleInApp === false,\r\n unavailableInNakiTouch: item.isVisibleInEmbeddedApp === false,\r\n });\r\n if (contentAccessResult.canAccess) {\r\n if (this.nakiNigunHomeViewStore.nakiNigunContentTypeMode === nakiNigunContentType.artists) {\r\n this.artistBulkEditViewStore.selectItem(item);\r\n } else {\r\n this.albumBulkEditViewStore.selectItem(item);\r\n }\r\n }\r\n }\r\n\r\n @action.bound\r\n deselectItem(item) {\r\n const contentAccessResult = this.rootStore.contentAccessValidator.canAccessNakiNigun({\r\n isPremium: item.isPremium,\r\n unavailableInMobileApp: item.isVisibleInApp === false,\r\n unavailableInNakiTouch: item.isVisibleInEmbeddedApp === false,\r\n });\r\n if (contentAccessResult.canAccess) {\r\n if (this.nakiNigunHomeViewStore.nakiNigunContentTypeMode === nakiNigunContentType.artists) {\r\n this.artistBulkEditViewStore.deselectItem(item);\r\n } else {\r\n this.albumBulkEditViewStore.deselectItem(item);\r\n }\r\n }\r\n }\r\n\r\n @action.bound\r\n async changeTurnOn(value) {\r\n let success;\r\n if (this.nakiNigunHomeViewStore.nakiNigunContentTypeMode === nakiNigunContentType.artists) {\r\n success = await this.artistBulkEditViewStore.changeTurnOn(value);\r\n } else {\r\n success = await this.albumBulkEditViewStore.changeTurnOn(value);\r\n }\r\n if (success) {\r\n this.setIsBulk(false);\r\n }\r\n }\r\n\r\n @action.bound\r\n async saveSelection() {\r\n let success;\r\n if (this.nakiNigunHomeViewStore.nakiNigunContentTypeMode === nakiNigunContentType.artists) {\r\n success = await this.artistBulkEditViewStore.saveSelection();\r\n } else {\r\n success = await this.albumBulkEditViewStore.saveSelection();\r\n }\r\n if (success) {\r\n this.setIsBulk(false);\r\n }\r\n }\r\n\r\n @action.bound\r\n clearSelection() {\r\n this.artistBulkEditViewStore.clearSelection();\r\n this.albumBulkEditViewStore.clearSelection();\r\n }\r\n}\r\n\r\nexport default NakiNigunManageSelectedItemsViewStore;\r\n","import React from \"react\";\r\nimport { NakiNigunArtistAlbumTemplate } from \"themes/application/naki-nigun/components\";\r\nimport { NakiNigunArtistAlbumViewStore } from \"application/naki-nigun/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new NakiNigunArtistAlbumViewStore(rootStore, componentProps),\r\n \"nakiNigunArtistAlbumViewStore\"\r\n)\r\nclass NakiNigunArtistAlbum extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default NakiNigunArtistAlbum;\r\n","import React from \"react\";\r\nimport { NakiNigunHomeGridCellTemplate } from \"themes/application/naki-nigun/components\";\r\n\r\nfunction NakiNigunHomeGridCell(props) {\r\n return ;\r\n}\r\n\r\nexport default NakiNigunHomeGridCell;\r\n","import React from \"react\";\r\nimport { NakiNigunSearchResultGridCellTemplate } from \"themes/application/naki-nigun/components\";\r\n\r\nfunction NakiNigunSearchResultGridCell(props) {\r\n return ;\r\n}\r\n\r\nexport default NakiNigunSearchResultGridCell;\r\n","import React from \"react\";\r\nimport { NakiNigunHomeFeaturedTemplate } from \"themes/application/naki-nigun/components\";\r\n\r\nfunction NakiNigunHomeFeatured(props) {\r\n return ;\r\n}\r\n\r\nexport default NakiNigunHomeFeatured;\r\n","import React from \"react\";\r\nimport { NakiNigunHomeMainViewTemplate } from \"themes/application/naki-nigun/components\";\r\n\r\nfunction NakiNigunHomeMainView(props) {\r\n return ;\r\n}\r\n\r\nexport default NakiNigunHomeMainView;\r\n","import React from \"react\";\r\nimport { NakiNigunHomePageHeaderTemplate } from \"themes/application/naki-nigun/components\";\r\n\r\nfunction NakiNigunHomePageHeader(props) {\r\n return ;\r\n}\r\n\r\nexport default NakiNigunHomePageHeader;\r\n","import React from \"react\";\r\nimport { NakiNigunHomeSearchResultsTemplate } from \"themes/application/naki-nigun/components\";\r\n\r\nfunction NakiNigunHomeSearchResults(props) {\r\n return ;\r\n}\r\n\r\nexport default NakiNigunHomeSearchResults;\r\n","import React from \"react\";\r\nimport { NakiNigunManageSelectedItemsTemplate } from \"themes/application/naki-nigun/components\";\r\n\r\nfunction NakiNigunManageSelectedItems(props) {\r\n return ;\r\n}\r\n\r\nexport default NakiNigunManageSelectedItems;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbPreviewPage, MrbPageContentHeader, MrbPageHeader } from \"mrb/components/layout\";\r\nimport { MrbContentLoader, MrbHeaderLoader } from \"mrb/components/loader\";\r\nimport { HomePreviewHeader, HomePreviewSubPodcastListLoader } from \"application/home/components\";\r\nimport { NakiNigunArtistAlbum } from \"application/naki-nigun/components\";\r\nimport { NakiNigunArtistUnavailableInApp } from \"application/common/components\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { map } from \"lodash\";\r\nimport { observer } from \"mobx-react\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\nimport { PremiumBadge, Image } from \"common/components\";\r\n\r\nfunction NakiNigunArtistTemplate({ nakiNigunArtistViewStore, t }) {\r\n const { loaderStore, item, coverImageUrl, contentAccessResult } = nakiNigunArtistViewStore;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n }>\r\n {() => (\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n

\r\n {t(\"APPLICATION.NAKI_NIGUN.ARTIST.FIELDS.NAME\")}\r\n

\r\n \r\n {item.name}\r\n

\r\n {!contentAccessResult.canAccessOnSelectedDevice && (\r\n \r\n )}\r\n
\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n\r\n \r\n
\r\n );\r\n}\r\n\r\nNakiNigunArtistTemplate.propTypes = {\r\n nakiNigunArtistViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nconst Albums = observer(function Albums({ store, t }) {\r\n const { item, loaderStore } = store;\r\n\r\n return (\r\n }>\r\n {() => (\r\n \r\n {item && item.albums && item.albums.length > 0 && (\r\n
\r\n
\r\n
\r\n {map(item.albums, (album) => (\r\n \r\n ))}\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n )}\r\n
\r\n );\r\n});\r\n\r\nexport default defaultTemplate(NakiNigunArtistTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { HomePageLayout, ConnectDeviceModal } from \"application/home/components\";\r\nimport {\r\n NakiNigunHomePageHeader,\r\n NakiNigunHomeMainView,\r\n NakiNigunHomeSearchResults,\r\n} from \"application/naki-nigun/components\";\r\nimport { MrbPageHeader } from \"mrb/components/layout\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction NakiNigunHomeTemplate({ nakiNigunHomeViewStore, t }) {\r\n const { connectDeviceModal } = nakiNigunHomeViewStore;\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n );\r\n}\r\n\r\nNakiNigunHomeTemplate.propTypes = {\r\n nakiNigunHomeViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nconst ResultsContainer = observer(function ResultsContainer({ nakiNigunHomeViewStore, t }) {\r\n const { inSearchMode, nakiNigunGenericSearchViewStore } = nakiNigunHomeViewStore;\r\n return (\r\n \r\n {inSearchMode ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n );\r\n});\r\n\r\nexport default defaultTemplate(NakiNigunHomeTemplate);\r\n","import React from \"react\";\r\nimport { NakiNigunArtistTemplate } from \"themes/application/naki-nigun/pages\";\r\nimport { NakiNigunArtistViewStore } from \"application/naki-nigun/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new NakiNigunArtistViewStore(rootStore, componentProps),\r\n \"nakiNigunArtistViewStore\"\r\n)\r\nclass NakiNigunArtist extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default NakiNigunArtist;\r\n","import React from \"react\";\r\nimport { NakiNigunHomeTemplate } from \"themes/application/naki-nigun/pages\";\r\nimport { NakiNigunHomeViewStore } from \"application/naki-nigun/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new NakiNigunHomeViewStore(rootStore, componentProps),\r\n \"nakiNigunHomeViewStore\"\r\n)\r\nclass NakiNigunHome extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default NakiNigunHome;\r\n","import { moduleProviderFactory } from \"mrb/core\";\r\nimport { NakiNigunHome, NakiNigunArtist } from \"application/naki-nigun/pages\";\r\nimport { NakiNigunHomeRouteStore, NakiNigunArtistRouteStore } from \"application/naki-nigun/stores\";\r\n\r\n(function () {\r\n moduleProviderFactory.module(\"application\").register({\r\n name: \"application.naki-nigun\",\r\n routes: [\r\n {\r\n name: \"master.application.naki-nigun\",\r\n pattern: \"/naki-nigun\",\r\n children: [\r\n {\r\n name: \"master.application.naki-nigun.list\",\r\n pattern: \"\",\r\n component: NakiNigunHome,\r\n store: NakiNigunHomeRouteStore,\r\n data: {\r\n title: \"APPLICATION.NAKI_NIGUN.LIST.TITLE\",\r\n },\r\n },\r\n {\r\n name: \"master.application.naki-nigun.artist\",\r\n pattern: \"artist/:id\",\r\n component: NakiNigunArtist,\r\n store: NakiNigunArtistRouteStore,\r\n },\r\n ],\r\n },\r\n ],\r\n menu: [\r\n {\r\n title: \"APPLICATION.MENU.NAKI_NIGUN\",\r\n order: 3,\r\n icon: \"nigun\",\r\n route: \"master.application.naki-nigun.list\",\r\n },\r\n ],\r\n });\r\n})();\r\n","export default __webpack_public_path__ + \"static/media/device-info.7add2e49.png\";","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbFieldInput, MrbEditPage } from \"mrb/components\";\r\nimport { MrbModal } from \"mrb/components/modal\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport deviceInfo from \"themes/assets/images/device-info.png\";\r\n\r\nfunction DeviceCreateTemplate({ deviceCreateViewStore, t }) {\r\n const { form, deviceTemporaryCodeToUpper, onClickDeviceIdInfo, deviceIdInfoModal } = deviceCreateViewStore;\r\n return (\r\n \r\n

Connect your device to the portal

\r\n
\r\n }\r\n field={form.$(\"deviceTemporaryCode\")}\r\n classNameExtend=\"c-input--outline\"\r\n onChange={(event) => deviceTemporaryCodeToUpper(event.target.value)}\r\n />\r\n\r\n \r\n
\r\n\r\n \r\n \r\n );\r\n}\r\n\r\nDeviceCreateTemplate.propTypes = {\r\n deviceCreateViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction InfoLabelRenderer({ infoLabel, onClick }) {\r\n return (\r\n {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n onClick();\r\n }}\r\n >\r\n \r\n \r\n {infoLabel}\r\n \r\n \r\n );\r\n}\r\n\r\nfunction DeviceIdInfoModal({ modalParams, t }) {\r\n return (\r\n \r\n
\r\n
\r\n \"Device\r\n
\r\n
\r\n

Where to find Device ID?

\r\n
\r\n
\r\n
    \r\n
  1. Press the menu/back button on your device.
  2. \r\n
  3. \r\n Choose Station List.\r\n
  4. \r\n
  5. You Device ID is a code with 8 characters.
  6. \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default defaultTemplate(DeviceCreateTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport {\r\n DeviceDowntimeEdit,\r\n DeviceDowntimeLoader,\r\n DeviceEditPageHeader,\r\n DowntimeNoteLoader,\r\n} from \"application/device-settings/components\";\r\nimport { MrbFieldInput } from \"mrb/components/input\";\r\nimport { MrbEditPage } from \"mrb/components/layout\";\r\nimport { MrbContentLoader, MrbFormFieldContentLoader } from \"mrb/components/loader\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { MrbButton, MrbPageHeader } from \"baasic-react-bootstrap/src\";\r\nfunction DeviceEditTemplate({ deviceEditViewStore, t = (i) => i }) {\r\n const {\r\n form,\r\n deviceDowntimeEditViewStore,\r\n loaderStore,\r\n navigateBack,\r\n cancelLabel,\r\n submitLabel,\r\n onClickCancel,\r\n title,\r\n layoutActions,\r\n navigationOptions,\r\n isDowntimeDisabled,\r\n } = deviceEditViewStore;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n }>\r\n {() => (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n
\r\n {!isDowntimeDisabled && (\r\n
\r\n }\r\n >\r\n {() => (\r\n
\r\n
Presets
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n )}\r\n \r\n
\r\n )}\r\n {!isDowntimeDisabled && (\r\n \r\n }\r\n >\r\n {() => (\r\n
\r\n Downtime is an option that enables you to lock the device at a certain time.\r\n
\r\n )}\r\n \r\n
\r\n )}\r\n \r\n {!isDowntimeDisabled && (\r\n
\r\n }>\r\n {() => }\r\n \r\n
\r\n )}\r\n
\r\n );\r\n}\r\n\r\nDeviceEditTemplate.propTypes = {\r\n deviceEditViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default defaultTemplate(DeviceEditTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbListPage, MrbPageHeader } from \"mrb/components/layout\";\r\nimport { MrbGrid } from \"mrb/components/grid\";\r\nimport { MrbRectangleContentLoader } from \"mrb/components/loader\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { DeviceGridCell } from \"application/device-settings/components\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { observer } from \"mobx-react\";\r\nimport { isNil } from \"lodash\";\r\n\r\nfunction DeviceListTemplate({ deviceListViewStore, t }) {\r\n const { gridStore } = deviceListViewStore;\r\n\r\n return (\r\n \r\n \r\n
\r\n
{t(deviceListViewStore.title)}
\r\n \r\n
\r\n
\r\n

\r\n {t(\"APPLICATION.DEVICE_SETTINGS.LIST.TITLE\")}{\" \"}\r\n \r\n

\r\n }\r\n loaderRender={() => }\r\n />\r\n
\r\n );\r\n}\r\n\r\nDeviceListTemplate.propTypes = {\r\n deviceListViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nfunction deviceEmptyStateRender() {\r\n return (\r\n
\r\n
\r\n \r\n

Ooops! There is no device

\r\n

Please, add your device to start using NakiRadio.

\r\n
\r\n
\r\n );\r\n}\r\n\r\nconst DeviceCounter = observer(function DeviceCounter({ deviceListViewStore, t }) {\r\n const { gridStore, deviceLimit } = deviceListViewStore;\r\n\r\n if (!gridStore.dataInitialized) {\r\n return null;\r\n }\r\n\r\n if (isNil(deviceLimit)) {\r\n return (\r\n \r\n ({gridStore.recordCount}/{t(\"APPLICATION.DEVICE_SETTINGS.LIST.UNLIMITED\")})\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n ({gridStore.recordCount}/{deviceLimit})\r\n \r\n );\r\n});\r\n\r\nconst HeaderActions = observer(function HeaderActions({ store }) {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n});\r\n\r\nexport default defaultTemplate(DeviceListTemplate);\r\n","import { override } from \"mobx\";\r\nimport { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { DeviceService } from \"common/services\";\r\n\r\nclass DeviceCreateRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.service = this.rootStore.createApplicationService(DeviceService);\r\n }\r\n\r\n async registerUserDevice(resource) {\r\n const response = await this.service.registerUserDevice(resource);\r\n await this.rootStore.userDeviceStore.loadUserDevices();\r\n return response.data;\r\n }\r\n\r\n @override\r\n onBeforeEnter() {\r\n if (!this.rootStore.userDeviceStore.isDeviceSlotAvailable) {\r\n return Promise.reject(\"master.application.device.list\");\r\n }\r\n }\r\n}\r\n\r\nexport default DeviceCreateRouteStore;\r\n","import { LocalizedForm } from \"common/localization\";\r\n\r\nexport default class DeviceCreateForm extends LocalizedForm {\r\n constructor(hooks) {\r\n super(hooks);\r\n }\r\n\r\n setup() {\r\n return {\r\n fields: [\r\n {\r\n name: \"deviceTemporaryCode\",\r\n label: \"APPLICATION.DEVICE_SETTINGS.CREATE.FIELDS.DEVICE_ID_LABEL\",\r\n placeholder: \"APPLICATION.DEVICE_SETTINGS.CREATE.FIELDS.DEVICE_ID_PLACEHOLDER\",\r\n rules: \"required|string\",\r\n extra: {\r\n infoLabel: \"Where can I find my Device ID?\",\r\n },\r\n },\r\n {\r\n name: \"deviceName\",\r\n label: \"APPLICATION.DEVICE_SETTINGS.CREATE.FIELDS.DEVICE_NAME_LABEL\",\r\n placeholder: \"APPLICATION.DEVICE_SETTINGS.CREATE.FIELDS.DEVICE_NAME_PLACEHOLDER\",\r\n rules: \"required|string\",\r\n },\r\n ],\r\n };\r\n }\r\n}\r\n","import { LocalizedForm } from \"common/localization\";\r\n\r\nexport default class DeviceEditForm extends LocalizedForm {\r\n constructor(hooks) {\r\n super(hooks);\r\n }\r\n\r\n setup() {\r\n return {\r\n fields: [\r\n {\r\n name: \"deviceName\",\r\n label:\r\n \"APPLICATION.DEVICE_SETTINGS.EDIT.FIELDS.DEVICE_NAME_LABEL\",\r\n placeholder:\r\n \"APPLICATION.DEVICE_SETTINGS.EDIT.FIELDS.DEVICE_NAME_PLACEHOLDER\",\r\n rules: \"required|string\",\r\n },\r\n {\r\n name: \"timeZone\",\r\n label:\r\n \"APPLICATION.DEVICE_SETTINGS.EDIT.FIELDS.TIMEZONE_LABEL\",\r\n placeholder:\r\n \"APPLICATION.DEVICE_SETTINGS.EDIT.FIELDS.TIMEZONE_PLACEHOLDER\",\r\n rules: \"required|string\",\r\n },\r\n ],\r\n };\r\n }\r\n}\r\n","import { action, observable, makeObservable } from \"mobx\";\r\nimport { MrbBaseEditViewStore } from \"mrb/core\";\r\nimport { DeviceCreateForm } from \"application/device-settings/forms\";\r\nimport { applicationErrorCodes } from \"common/constants\";\r\nimport { localizationService } from \"common/localization\";\r\nimport { MrbModalParams } from \"mrb/common/models\";\r\n\r\nclass DeviceCreateViewStore extends MrbBaseEditViewStore {\r\n @observable currentDeviceGuideImage = 1;\r\n\r\n constructor(rootStore, { routeStore }) {\r\n super(rootStore, {\r\n name: \"device-create\",\r\n FormClass: DeviceCreateForm,\r\n autoFocusField: \"deviceTemporaryCode\",\r\n successCreateNotification: null,\r\n successUpdateNotification: null,\r\n navigateBack: \"master.application.device.list\",\r\n });\r\n makeObservable(this);\r\n this.routeStore = routeStore;\r\n\r\n this.deviceIdInfoModal = new MrbModalParams();\r\n\r\n this.onClickDeviceIdInfo = this.onClickDeviceIdInfo.bind(this);\r\n }\r\n\r\n @action.bound\r\n deviceTemporaryCodeToUpper(inputValue) {\r\n this.form.$(\"deviceTemporaryCode\").onChange(inputValue.toUpperCase());\r\n }\r\n\r\n create(resource) {\r\n if (!this.rootStore.userDeviceStore.isDeviceSlotAvailable) {\r\n this.rootStore.notificationStore.error(\r\n localizationService.t(\"APPLICATION.DEVICE_SETTINGS.CREATE.ERROR.MAXIMUM_NUMBER_OF_DEVICES_REACHED\")\r\n );\r\n return;\r\n }\r\n return this.routeStore.registerUserDevice(resource);\r\n }\r\n\r\n onCreateError(error) {\r\n if (error.data.errorCode === applicationErrorCodes.device.notExists) {\r\n this.form\r\n .$(\"deviceTemporaryCode\")\r\n .invalidate(localizationService.t(\"APPLICATION.DEVICE_SETTINGS.CREATE.ERROR.DEVICE_NOT_EXIST\"));\r\n } else if (error.data.errorCode === applicationErrorCodes.device.alreadyRegistered) {\r\n this.form\r\n .$(\"deviceTemporaryCode\")\r\n .invalidate(\r\n localizationService.t(\"APPLICATION.DEVICE_SETTINGS.CREATE.ERROR.DEVICE_ALREADY_REGISTERED\")\r\n );\r\n } else {\r\n this.rootStore.notificationStore.error(\r\n localizationService.t(\"APPLICATION.DEVICE_SETTINGS.CREATE.ERROR.GENERIC_MESSAGE\")\r\n );\r\n }\r\n }\r\n\r\n @action.bound\r\n toggleCurrentDeviceGuideImage() {\r\n switch (this.currentDeviceGuideImage) {\r\n case 1:\r\n this.currentDeviceGuideImage = 2;\r\n break;\r\n case 2:\r\n this.currentDeviceGuideImage = 3;\r\n break;\r\n case 3:\r\n this.currentDeviceGuideImage = 1;\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n onClickDeviceIdInfo() {\r\n this.deviceIdInfoModal.open();\r\n }\r\n}\r\n\r\nexport default DeviceCreateViewStore;\r\n","import { action, observable, makeObservable, runInAction } from \"mobx\";\r\nimport { MrbBaseViewStore } from \"mrb/core\";\r\nimport { MrbFieldSelectStore } from \"mrb/components/select\";\r\nimport {\r\n forEach,\r\n map,\r\n reduce,\r\n sortBy,\r\n some,\r\n isEmpty,\r\n filter,\r\n take,\r\n} from \"lodash\";\r\nimport moment from \"moment\";\r\nimport \"moment-timezone\";\r\n\r\nclass DeviceDowntimeEditViewStore extends MrbBaseViewStore {\r\n @observable.ref weekDays = [];\r\n @observable.ref dayHours = [];\r\n @observable disableActionOccured = false;\r\n\r\n nightTime = [\r\n \"8pm\",\r\n \"9pm\",\r\n \"10pm\",\r\n \"11pm\",\r\n \"12am\",\r\n \"1am\",\r\n \"2am\",\r\n \"3am\",\r\n \"4am\",\r\n \"5am\",\r\n \"6am\",\r\n \"7am\",\r\n ];\r\n shabbosTimeFriday = [\"7pm\", \"8pm\", \"9pm\", \"10pm\", \"11pm\", \"12am\"];\r\n shabbosTimeSaturday = [\r\n \"1am\",\r\n \"2am\",\r\n \"3am\",\r\n \"4am\",\r\n \"5am\",\r\n \"6am\",\r\n \"7am\",\r\n \"8am\",\r\n \"9am\",\r\n \"10am\",\r\n \"11am\",\r\n \"12pm\",\r\n \"1pm\",\r\n \"2pm\",\r\n \"3pm\",\r\n \"4pm\",\r\n \"5pm\",\r\n \"6pm\",\r\n \"7pm\",\r\n ];\r\n\r\n constructor(rootStore, routeStore, form) {\r\n super(rootStore);\r\n makeObservable(this);\r\n this.routeStore = routeStore;\r\n this.form = form;\r\n if (!this.form.has(\"prohibitedTime\")) {\r\n this.form.add({ key: \"prohibitedTime\" });\r\n }\r\n\r\n this.timeZones = moment.tz.names();\r\n this.isAllDayChecked = this.isAllDayChecked.bind(this);\r\n }\r\n\r\n findTimeZone = (searchTerm) => {\r\n return new Promise((resolve) => {\r\n setTimeout(() => {\r\n if (!searchTerm) {\r\n resolve(take(this.timeZones, 15));\r\n } else {\r\n const items = filter(\r\n this.timeZones,\r\n (timeZone) =>\r\n timeZone.toLowerCase().indexOf(searchTerm) !== -1\r\n );\r\n resolve(take(items, 15));\r\n }\r\n }, 300);\r\n });\r\n };\r\n\r\n async initialize() {\r\n const [weekDays, dayHours] = await Promise.all([\r\n this.routeStore.getWeekDays(),\r\n this.routeStore.getDayHours(),\r\n ]);\r\n runInAction(() => {\r\n this.weekDays = sortBy(weekDays, (item) => item.order);\r\n this.dayHours = sortBy(dayHours, (item) => item.order);\r\n });\r\n const currentTimeZone = this.form.$(\"timeZone\").value;\r\n if (!currentTimeZone) {\r\n this.form.$(\"timeZone\").set(moment.tz.guess());\r\n }\r\n\r\n const timeZoneOptions = map(this.timeZones, (timeZone) => {\r\n return {\r\n id: timeZone,\r\n name: timeZone,\r\n };\r\n });\r\n\r\n this.timezoneSelectStore = new MrbFieldSelectStore(\r\n {\r\n isSearchable: true,\r\n isMulti: false,\r\n virtualized: true,\r\n },\r\n this.form.$(\"timeZone\"),\r\n timeZoneOptions\r\n );\r\n }\r\n\r\n @action.bound\r\n buildForm(data) {\r\n forEach(this.weekDays, (day) => {\r\n this.form.$(\"prohibitedTime\").add({\r\n key: day.abrv,\r\n label: day.name,\r\n fields: [\r\n ...this.generateTimeFrameFields(data && data[day.abrv]),\r\n ],\r\n });\r\n });\r\n }\r\n\r\n generateTimeFrameFields(data) {\r\n return map(this.dayHours, (hour) => {\r\n return {\r\n name: hour.abrv,\r\n type: \"bool\",\r\n value:\r\n data && data.length > 0\r\n ? some(data, (hourAbrv) => hourAbrv === hour.abrv)\r\n : false,\r\n };\r\n });\r\n }\r\n\r\n @action.bound\r\n disableEntireDay(selectedDay, isChecked) {\r\n let days = this.form.$(\"prohibitedTime\").value;\r\n forEach(days[selectedDay], (value, index) => {\r\n days[selectedDay][index] = isChecked;\r\n });\r\n this.form.$(\"prohibitedTime\").update(days);\r\n this.disableActionOccured = true;\r\n }\r\n\r\n @action.bound\r\n disableNight() {\r\n let days = this.form.$(\"prohibitedTime\").value;\r\n forEach(this.nightTime, (value) => {\r\n forEach(days, (v, index) => {\r\n days[index][value] = true;\r\n });\r\n });\r\n this.form.$(\"prohibitedTime\").update(days);\r\n this.disableActionOccured = true;\r\n }\r\n\r\n @action.bound\r\n disableShabbos() {\r\n let days = this.form.$(\"prohibitedTime\").value;\r\n forEach(this.shabbosTimeFriday, function (value) {\r\n days[\"fri\"][value] = true;\r\n });\r\n forEach(this.shabbosTimeSaturday, function (value) {\r\n days[\"sat\"][value] = true;\r\n });\r\n this.form.$(\"prohibitedTime\").update(days);\r\n this.disableActionOccured = true;\r\n }\r\n\r\n @action.bound\r\n reset() {\r\n this.form.$(\"prohibitedTime\").reset();\r\n }\r\n\r\n isAllDayChecked(day) {\r\n return !some(day, (isSelected) => !isSelected);\r\n }\r\n\r\n processFormResult(deviceDowntime) {\r\n const obj = {};\r\n forEach(deviceDowntime, (dayTimeFrames, dayAbrv) => {\r\n const timeFrames = reduce(\r\n dayTimeFrames,\r\n function (result, value, key) {\r\n if (value) {\r\n result.push(key);\r\n }\r\n return result;\r\n },\r\n []\r\n );\r\n if (timeFrames && timeFrames.length > 0) {\r\n obj[dayAbrv] = timeFrames;\r\n }\r\n });\r\n return !isEmpty(obj) ? obj : null;\r\n }\r\n}\r\n\r\nexport default DeviceDowntimeEditViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { DeviceService, DayHourCacheService, WeekDayCacheService } from \"common/services\";\r\n\r\nclass DeviceEditRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.service = this.rootStore.createApplicationService(DeviceService);\r\n this.dayHourService = new DayHourCacheService(this.rootStore);\r\n this.weekDayService = new WeekDayCacheService(this.rootStore);\r\n }\r\n\r\n updateUserDevice(resource) {\r\n return this.rootStore.userDeviceStore.updateUserDevice(resource);\r\n }\r\n\r\n deleteUserDevice(resource) {\r\n return this.rootStore.userDeviceStore.deleteUserDevice(resource);\r\n }\r\n\r\n getUserDevice(id) {\r\n return this.rootStore.userDeviceStore.getUserDevice(id, { embed: \"device,device.systemType\" });\r\n }\r\n\r\n getWeekDays() {\r\n return this.weekDayService.getItems();\r\n }\r\n\r\n getDayHours() {\r\n return this.dayHourService.getItems();\r\n }\r\n}\r\n\r\nexport default DeviceEditRouteStore;\r\n","import { MrbBaseEditViewStore } from \"mrb/core\";\r\nimport { DeviceEditForm } from \"application/device-settings/forms\";\r\nimport { DeviceDowntimeEditViewStore } from \"application/device-settings/stores\";\r\nimport { localizationService } from \"common/localization\";\r\nimport { nakiRadioSystemTypes } from \"common/constants\";\r\nimport { computed, makeObservable, observable } from \"mobx\";\r\nimport { isNil } from \"lodash\";\r\n\r\nclass DeviceEditViewStore extends MrbBaseEditViewStore {\r\n @observable isFormChanged = false;\r\n\r\n @computed get isDowntimeDisabled() {\r\n return (\r\n !isNil(this.item) &&\r\n !isNil(this.item.device) &&\r\n !isNil(this.item.device.systemType) &&\r\n this.item.device.systemType.abrv === nakiRadioSystemTypes.mobile\r\n );\r\n }\r\n\r\n constructor(rootStore, { routeStore }) {\r\n const id = rootStore.routerStore.routerState.params.id;\r\n super(rootStore, {\r\n id: id,\r\n name: \"device-edit\",\r\n FormClass: DeviceEditForm,\r\n autoFocusField: \"deviceName\",\r\n navigateBack: \"master.application.device.list\",\r\n successCreateNotification: null,\r\n successUpdateNotification: null,\r\n });\r\n makeObservable(this);\r\n this.routeStore = routeStore;\r\n\r\n this.deviceDowntimeEditViewStore = new DeviceDowntimeEditViewStore(this.rootStore, this.routeStore, this.form);\r\n\r\n this.registerRouteExitBlocking();\r\n this.reaction(\r\n () => this.form.changed || this.deviceDowntimeEditViewStore.disableActionOccured,\r\n (isChanged) => {\r\n if (isChanged) {\r\n this.isFormChanged = isChanged;\r\n }\r\n }\r\n );\r\n }\r\n\r\n get(id) {\r\n return this.routeStore.getUserDevice(id);\r\n }\r\n\r\n update(resource) {\r\n resource.prohibitedTime = this.deviceDowntimeEditViewStore.processFormResult(resource.prohibitedTime);\r\n this.isFormChanged = false;\r\n return this.routeStore.updateUserDevice(resource);\r\n }\r\n\r\n async onInit() {\r\n await super.onInit();\r\n await this.deviceDowntimeEditViewStore.initialize();\r\n this.deviceDowntimeEditViewStore.buildForm(this.item.prohibitedTime);\r\n }\r\n\r\n onUpdateError(err) {\r\n this.rootStore.notificationStore.error(\r\n localizationService.t(\"APPLICATION.DEVICE_SETTINGS.EDIT.ERROR.GENERIC_MESSAGE\")\r\n );\r\n }\r\n\r\n registerRouteExitBlocking() {\r\n this.reaction(\r\n () => this.isFormChanged,\r\n (isChanged) => {\r\n this.routeStore.setIsRouteExitBlocked(isChanged);\r\n }\r\n );\r\n }\r\n}\r\n\r\nexport default DeviceEditViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { DeviceService } from \"common/services\";\r\n\r\nclass DeviceListRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.service = this.rootStore.createApplicationService(DeviceService);\r\n }\r\n\r\n async findUserDevices(params) {\r\n const response = await this.service.findUserDeviceForAuthenticatedUser(\r\n params\r\n );\r\n return response.data;\r\n }\r\n\r\n deleteUserDevice(resource) {\r\n return this.rootStore.userDeviceStore.deleteUserDevice(resource);\r\n }\r\n}\r\n\r\nexport default DeviceListRouteStore;\r\n","import { MrbBaseListViewStore } from \"mrb/core\";\r\nimport { MrbGridViewStore } from \"mrb/components/grid\";\r\nimport { action, computed } from \"mobx\";\r\n\r\nclass DeviceListViewStore extends MrbBaseListViewStore {\r\n @computed get isAddDeviceEnabled() {\r\n return this.rootStore.userDeviceStore.isDeviceSlotAvailable;\r\n }\r\n\r\n @computed get deviceLimit() {\r\n return this.rootStore.userDeviceStore.deviceLimit;\r\n }\r\n\r\n constructor(rootStore, { routeStore }) {\r\n super(rootStore, {\r\n layoutActions: {\r\n create: {\r\n onClick: () => this.rootStore.routerStore.goTo(\"master.application.device.create\"),\r\n label: \"Add New Device\",\r\n },\r\n },\r\n queryConfig: {\r\n embed: \"device,device.systemType\",\r\n orderBy: \"deviceName\",\r\n orderDirection: \"asc\",\r\n },\r\n });\r\n this.routeStore = routeStore;\r\n\r\n this.setGridStore(\r\n new MrbGridViewStore(this.rootStore, this.queryUtility, {\r\n onCellClick: (item) =>\r\n this.rootStore.routerStore.goTo(\"master.application.device.edit\", { id: item.id }),\r\n actions: {\r\n delete: {\r\n onClick: (item) => this.deleteUserDevice(item),\r\n },\r\n },\r\n })\r\n );\r\n\r\n this.joyrideSteps = [\r\n {\r\n target: \".c-device__card--sml\",\r\n content: \"Here you can set prohibited time for this device!\",\r\n },\r\n ];\r\n\r\n this.goToAddNewDevice = this.goToAddNewDevice.bind(this);\r\n }\r\n\r\n find(params) {\r\n return this.routeStore.findUserDevices(params);\r\n }\r\n\r\n goToAddNewDevice() {\r\n this.rootStore.routerStore.goTo(\"master.application.device.create\");\r\n }\r\n\r\n @action.bound\r\n async deleteUserDevice(resource) {\r\n this.rootStore.confirmDialogStore.showConfirm({\r\n message: \"Do you want to delete device?\",\r\n onConfirm: async () => {\r\n try {\r\n this.rootStore.mainLoaderStore.suspend();\r\n await this.routeStore.deleteUserDevice(resource);\r\n this.rootStore.mainLoaderStore.resume();\r\n this.queryUtility.fetch();\r\n } catch (err) {\r\n this.rootStore.mainLoaderStore.resume();\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred. Unable to delete device.\",\r\n err\r\n );\r\n }\r\n },\r\n yesLabel: \"Delete\",\r\n noLabel: \"Cancel\",\r\n description: \"You won't be able to revert this action.\",\r\n });\r\n }\r\n}\r\n\r\nexport default DeviceListViewStore;\r\n","import React from \"react\";\r\nimport { DeviceCreateTemplate } from \"themes/application/device-settings/pages\";\r\nimport { DeviceCreateViewStore } from \"application/device-settings/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) =>\r\n new DeviceCreateViewStore(rootStore, componentProps),\r\n \"deviceCreateViewStore\"\r\n)\r\nclass DeviceCreate extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default DeviceCreate;\r\n","import React from \"react\";\r\nimport { DeviceEditTemplate } from \"themes/application/device-settings/pages\";\r\nimport { DeviceEditViewStore } from \"application/device-settings/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) =>\r\n new DeviceEditViewStore(rootStore, componentProps),\r\n \"deviceEditViewStore\"\r\n)\r\nclass DeviceEdit extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default DeviceEdit;\r\n","import React from \"react\";\r\nimport { DeviceListTemplate } from \"themes/application/device-settings/pages\";\r\nimport { DeviceListViewStore } from \"application/device-settings/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) =>\r\n new DeviceListViewStore(rootStore, componentProps),\r\n \"deviceListViewStore\"\r\n)\r\nclass DeviceList extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default DeviceList;\r\n","import { moduleProviderFactory } from \"mrb/core\";\r\nimport { DeviceCreate, DeviceEdit, DeviceList } from \"application/device-settings/pages\";\r\nimport { DeviceCreateRouteStore, DeviceEditRouteStore, DeviceListRouteStore } from \"application/device-settings/stores\";\r\n\r\n(function () {\r\n moduleProviderFactory.module(\"application\").register({\r\n name: \"DeviceSettings\",\r\n routes: [\r\n {\r\n name: \"master.application.device\",\r\n pattern: \"/device\",\r\n children: [\r\n {\r\n name: \"master.application.device.list\",\r\n pattern: \"\",\r\n component: DeviceList,\r\n store: DeviceListRouteStore,\r\n data: {\r\n title: \"APPLICATION.DEVICE_SETTINGS.TITLE\",\r\n },\r\n },\r\n {\r\n name: \"master.application.device.create\",\r\n pattern: \"/create\",\r\n component: DeviceCreate,\r\n store: DeviceCreateRouteStore,\r\n },\r\n {\r\n name: \"master.application.device.edit\",\r\n pattern: \"/:id/edit\",\r\n component: DeviceEdit,\r\n store: DeviceEditRouteStore,\r\n },\r\n ],\r\n },\r\n ],\r\n menu: [\r\n {\r\n title: \"APPLICATION.MENU.DEVICES\",\r\n order: 4,\r\n icon: \"devices\",\r\n route: \"master.application.device.list\",\r\n },\r\n ],\r\n });\r\n})();\r\n","import { LocalizedForm } from \"common/localization\";\r\n\r\nexport default class UserProfileEditForm extends LocalizedForm {\r\n constructor(hooks) {\r\n super(hooks);\r\n }\r\n\r\n setup() {\r\n return {\r\n fields: [\r\n {\r\n name: \"email\",\r\n label: \"APPLICATION.USER_SETTINGS.EDIT.FIELDS.EMAIL_LABEL\",\r\n placeholder:\r\n \"APPLICATION.USER_SETTINGS.EDIT.FIELDS.EMAIL_PLACEHOLDER\",\r\n rules: \"required|email|string\",\r\n },\r\n {\r\n name: \"firstName\",\r\n label: \"APPLICATION.USER_SETTINGS.EDIT.FIELDS.FIRST_NAME_LABEL\",\r\n placeholder:\r\n \"APPLICATION.USER_SETTINGS.EDIT.FIELDS.FIRST_NAME_PLACEHOLDER\",\r\n rules: \"required|string\",\r\n },\r\n {\r\n name: \"lastName\",\r\n label: \"APPLICATION.USER_SETTINGS.EDIT.FIELDS.LAST_NAME_LABEL\",\r\n placeholder:\r\n \"APPLICATION.USER_SETTINGS.EDIT.FIELDS.LAST_NAME_PLACEHOLDER\",\r\n rules: \"required|string\",\r\n },\r\n ],\r\n };\r\n }\r\n}\r\n","import { LocalizedForm } from \"common/localization\";\r\n\r\nexport default class UserProfileChangePasswordForm extends LocalizedForm {\r\n constructor(hooks) {\r\n super(hooks);\r\n }\r\n\r\n setup() {\r\n return {\r\n fields: [\r\n {\r\n name: \"password\",\r\n label:\r\n \"APPLICATION.USER_SETTINGS.PASSWORD_CHANGE.FIELDS.PASSWORD_LABEL\",\r\n type: \"password\",\r\n placeholder:\r\n \"APPLICATION.USER_SETTINGS.PASSWORD_CHANGE.FIELDS.PASSWORD_PLACEHOLDER\",\r\n rules: [\r\n \"required\",\r\n \"string\",\r\n \"min:8\",\r\n \"regex:/([^a-zA-Z\\\\d])+([a-zA-Z\\\\d])+|([a-zA-Z\\\\d])+([^a-zA-Z\\\\d])+/\",\r\n ],\r\n },\r\n {\r\n name: \"confirmPassword\",\r\n label:\r\n \"APPLICATION.USER_SETTINGS.PASSWORD_CHANGE.FIELDS.CONFIRM_PASSWORD_LABEL\",\r\n placeholder:\r\n \"APPLICATION.USER_SETTINGS.PASSWORD_CHANGE.FIELDS.CONFIRM_PASSWORD_PLACEHOLDER\",\r\n rules: \"required|string|same:password\",\r\n type: \"password\",\r\n },\r\n ],\r\n };\r\n }\r\n}\r\n","import { override } from \"mobx\";\r\nimport { MrbBaseEditViewStore, httpStatusCodes } from \"mrb/core\";\r\nimport { localizationService } from \"common/localization\";\r\nimport { merge } from \"lodash\";\r\nimport { UserProfileEditForm } from \"application/user-settings/forms\";\r\n\r\nclass UserProfileEditViewStore extends MrbBaseEditViewStore {\r\n administratorRole = null;\r\n\r\n constructor(rootStore, { routeStore }) {\r\n super(rootStore, {\r\n id: rootStore.userStore.user.id,\r\n name: \"user\",\r\n FormClass: UserProfileEditForm,\r\n autoFocusField: \"firstName\",\r\n successCreateNotification: null,\r\n successUpdateNotification: localizationService.t(\"APPLICATION.USER_SETTINGS.EDIT.SUCCESS_MESSAGE\"),\r\n redirectOnUpdateSuccess: false\r\n });\r\n this.routeStore = routeStore;\r\n }\r\n\r\n get() {\r\n return this.routeStore.getResource();\r\n }\r\n\r\n update(data) {\r\n const resource = merge({}, this.item);\r\n resource.firstName = data.firstName;\r\n resource.lastName = data.lastName;\r\n resource.email = data.email;\r\n resource.roles = null;\r\n\r\n return this.routeStore.update(resource);\r\n }\r\n\r\n @override\r\n updateForm(values) {\r\n this.form.set({\r\n firstName: values.userProfile && values.userProfile.firstName,\r\n lastName: values.userProfile && values.userProfile.lastName,\r\n email: values.email,\r\n });\r\n }\r\n\r\n onUpdateError(error) {\r\n if (\r\n error.statusCode &&\r\n error.statusCode === httpStatusCodes.BadRequest\r\n ) {\r\n this.form\r\n .$(\"email\")\r\n .invalidate(\r\n \"User with specified E-mail address already exists.\"\r\n );\r\n } else {\r\n this.rootStore.notificationStore.error(\r\n localizationService.t(\r\n \"APPLICATION.USER_SETTINGS.EDIT.ERROR.GENERIC_MESSAGE\"\r\n ),\r\n error\r\n );\r\n }\r\n }\r\n}\r\n\r\nexport default UserProfileEditViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\n\r\nclass UserProfileEditRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.service = this.rootStore.application.baasic.membershipModule.user;\r\n }\r\n\r\n getResource() {\r\n return Promise.resolve(this.rootStore.userStore.user);\r\n }\r\n\r\n update(resource) {\r\n return this.rootStore.userStore.updateAccountInfo(resource);\r\n }\r\n\r\n changeUserPassword(userId, resource) {\r\n return this.service.changePassword(userId, resource);\r\n }\r\n}\r\n\r\nexport default UserProfileEditRouteStore;\r\n","import { override } from \"mobx\";\r\nimport { MrbBaseEditViewStore } from \"mrb/core\";\r\nimport { UserProfileChangePasswordForm } from \"application/user-settings/forms\";\r\nimport { localizationService } from \"common/localization\";\r\n\r\nclass UserProfilePasswordChangeViewStore extends MrbBaseEditViewStore {\r\n constructor(rootStore, { componentProps }) {\r\n super(rootStore, {\r\n name: \"password-change\",\r\n FormClass: UserProfileChangePasswordForm,\r\n successCreateNotification: localizationService.t(\r\n \"APPLICATION.USER_SETTINGS.PASSWORD_CHANGE.SUCCESS_MESSAGE\"\r\n ),\r\n successUpdateNotification: null,\r\n redirectOnCreateSuccess: false,\r\n });\r\n this.routeStore = componentProps;\r\n }\r\n\r\n create(data) {\r\n return this.routeStore.changeUserPassword(\r\n this.rootStore.userStore.user.id,\r\n {\r\n newPassword: data.password,\r\n siteUrl: window.location.origin,\r\n }\r\n );\r\n }\r\n\r\n @override\r\n onCreateSuccess(result) {\r\n this.notifySuccessCreate();\r\n this.form.clear();\r\n }\r\n\r\n onCreateError(error) {\r\n if (error.data && error.data.errorCode === 4000022103) {\r\n this.form.invalidate(\r\n \"APPLICATION.USER_SETTINGS.PASSWORD_CHANGE.ERROR.USER_IS_DISAPPROVED\"\r\n );\r\n } else {\r\n this.form.invalidate(\r\n \"APPLICATION.USER_SETTINGS.PASSWORD_CHANGE.ERROR.GENERIC_MESSAGE\"\r\n );\r\n }\r\n }\r\n}\r\n\r\nexport default UserProfilePasswordChangeViewStore;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbFieldInput } from \"mrb/components/input\";\r\nimport { MrbEditFormLayout } from \"mrb/components/layout\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { PasswordFieldInfo } from \"common/components\";\r\nfunction UserProfilePasswordChangeTemplate({\r\n userProfilePasswordChangeViewStore,\r\n t,\r\n}) {\r\n const { form } = userProfilePasswordChangeViewStore;\r\n return (\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nUserProfilePasswordChangeTemplate.propTypes = {\r\n userProfilePasswordChangeViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default defaultTemplate(UserProfilePasswordChangeTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbFieldInput } from \"mrb/components\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { MrbEditFormLayout } from \"mrb/components/layout\";\r\n\r\nfunction UserProfileGeneralInfo({ userProfileEditViewStore, t }) {\r\n const { form } = userProfileEditViewStore;\r\n\r\n return (\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nUserProfileGeneralInfo.propTypes = {\r\n userProfileEditViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default defaultTemplate(UserProfileGeneralInfo);\r\n","import React from \"react\";\r\nimport { UserProfilePasswordChangeViewStore } from \"application/user-settings/stores\";\r\nimport { UserProfilePasswordChangeTemplate } from \"themes/application/user-settings/components\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) =>\r\n new UserProfilePasswordChangeViewStore(rootStore, componentProps),\r\n \"userProfilePasswordChangeViewStore\"\r\n)\r\nclass UserProfilePasswordChange extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default UserProfilePasswordChange;","import React from \"react\";\r\nimport UserProfileGeneralInfoTemplate from \"themes/application/user-settings/components/UserProfileGeneralInfoTemplate\";\r\n\r\nclass UserProfileGeneralInfo extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default UserProfileGeneralInfo;","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbPage, MrbPageHeader } from \"mrb/components/layout\";\r\nimport { MrbContentLoader } from \"mrb/components/loader\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { UserEditLoader } from \"administration/user/components\";\r\n\r\nimport { UserProfilePasswordChange, UserProfileGeneralInfo } from \"application/user-settings/components\";\r\nimport { ChangePasswordLoader } from \"common/components\";\r\n\r\nfunction UserProfileEditTemplate({ userProfileEditViewStore, t }) {\r\n const { loaderStore, routeStore } = userProfileEditViewStore;\r\n\r\n return (\r\n \r\n \r\n
\r\n
{t(\"APPLICATION.USER_SETTINGS.EDIT.FIELDS.TITLE\")}
\r\n
\r\n
\r\n
\r\n
\r\n

Personal Details

\r\n
\r\n }\r\n >\r\n {() => }\r\n \r\n
\r\n
\r\n
\r\n

\r\n {t(\"ADMINISTRATION.USER.PASSWORD_CHANGE.TITLE\")}\r\n

\r\n
\r\n }>\r\n {() => }\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nUserProfileEditTemplate.propTypes = {\r\n userProfileEditViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default defaultTemplate(UserProfileEditTemplate);\r\n","import React from \"react\";\r\nimport { setCurrentView } from \"mrb/core\";\r\nimport { UserProfileEditTemplate } from \"themes/application/user-settings/pages\";\r\nimport { UserProfileEditViewStore } from \"application/user-settings/stores\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) =>\r\n new UserProfileEditViewStore(rootStore, componentProps),\r\n \"userProfileEditViewStore\"\r\n)\r\nclass UserProfileEdit extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default UserProfileEdit;","import { moduleProviderFactory } from \"mrb/core\";\r\nimport { UserProfileEdit } from \"application/user-settings/pages\";\r\nimport { UserProfileEditRouteStore } from \"application/user-settings/stores\";\r\n\r\n(function () {\r\n moduleProviderFactory.module(\"application\").register({\r\n name: \"UserSettings\",\r\n routes: [\r\n {\r\n name: \"master.application.user\",\r\n pattern: \"/userprofile\",\r\n children: [\r\n {\r\n name: \"master.application.user.edit\",\r\n component: UserProfileEdit,\r\n store: UserProfileEditRouteStore,\r\n },\r\n ],\r\n },\r\n ],\r\n menu: [\r\n {\r\n title: \"APPLICATION.MENU.SETTINGS\",\r\n order: 6,\r\n icon: \"settings\",\r\n subMenu: [\r\n {\r\n title: \"User Settings\",\r\n order: 1,\r\n route: \"master.application.user.edit\",\r\n },\r\n ],\r\n },\r\n ],\r\n });\r\n})();\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbPage, MrbPageHeader } from \"mrb/components/layout\";\r\nimport { MrbContentLoader } from \"mrb/components/loader\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { applicationDefaults, subscriptionPlans } from \"common/constants\";\r\nimport { dateFormatter } from \"mrb/common/formatting\";\r\nimport { MrbRouterLink } from \"mrb/core/infrastructure/router\";\r\nimport {\r\n TrialActivatedModal,\r\n NakiRadioPremiumBadge,\r\n NakiNigunPremiumBadge,\r\n SubscriptionPlanLoader,\r\n} from \"application/payment/components\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport moment from \"moment\";\r\n\r\nfunction ActivateTrialTemplate({ activateTrialViewStore, t }) {\r\n const { activateTrial, isSubmitDisabled, trialActivatedModal, subscriptionPlan, loaderStore } =\r\n activateTrialViewStore;\r\n const endDate = moment().add(applicationDefaults.trialPeriodDays, \"days\");\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n Premium\r\n \r\n
\r\n
\r\n\r\n
\r\n }>\r\n {() => (\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n

{t(\"APPLICATION.PREMIUM.TRIAL.START_DATE_LABEL\")}

\r\n

{t(\"APPLICATION.PREMIUM.TRIAL.START_DATE_VALUE\")}

\r\n
\r\n\r\n
\r\n

{t(\"APPLICATION.PREMIUM.TRIAL.END_DATE_LABEL\")}

\r\n

\r\n {dateFormatter.format(endDate, {\r\n format: applicationDefaults.formats.date,\r\n })}\r\n

\r\n
\r\n\r\n
\r\n

Cancel Anytime Policy

\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n \r\n
\r\n );\r\n}\r\n\r\nActivateTrialTemplate.propTypes = {\r\n activateTrialViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction SubscriptionPlan({ subscriptionPlan }) {\r\n let premiumBadge = null;\r\n switch (subscriptionPlan.slug) {\r\n case subscriptionPlans.nakiRadioPremium:\r\n premiumBadge = ;\r\n break;\r\n case subscriptionPlans.nakiNigun:\r\n premiumBadge = ;\r\n break;\r\n default:\r\n break;\r\n }\r\n return (\r\n
\r\n
\r\n {premiumBadge}\r\n\r\n
\r\n

{subscriptionPlan.name} Trial

\r\n

Free

\r\n

\r\n {applicationDefaults.trialPeriodDays} days free trial\r\n

\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default defaultTemplate(ActivateTrialTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbPage, MrbPageHeader } from \"mrb/components/layout\";\r\nimport { MrbRouterLink } from \"mrb/core/infrastructure/router\";\r\nimport { SubscriptionPlanCard } from \"application/payment/components\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { map, isNil } from \"lodash\";\r\n\r\nfunction ChangeSubscriptionPlanPreviewTemplate({ changeSubscriptionPlanPreviewViewStore, t }) {\r\n const { subscriptionPlans, subscription, loaderStore } = changeSubscriptionPlanPreviewViewStore;\r\n return (\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n Subscription\r\n \r\n
\r\n
\r\n\r\n
\r\n {map(subscriptionPlans, (subscriptionPlan) => {\r\n return (\r\n \r\n );\r\n })}\r\n
\r\n
\r\n );\r\n}\r\n\r\nChangeSubscriptionPlanPreviewTemplate.propTypes = {\r\n changeSubscriptionPlanPreviewViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default defaultTemplate(ChangeSubscriptionPlanPreviewTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbPage, MrbPageHeader } from \"mrb/components/layout\";\r\nimport { MrbRouterLink } from \"mrb/core/infrastructure/router\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { MrbModal } from \"mrb/components/modal\";\r\nimport { MrbContentLoader } from \"mrb/components/loader\";\r\nimport { applicationDefaults } from \"common/constants\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\nimport { CreditCardInfo, SubscriptionPrice, ChangeSubscriptionPlanLoader } from \"application/payment/components\";\r\nimport { currencyFormatter, dateFormatter } from \"mrb/common/formatting\";\r\nimport { subscriptionStatuses, subscriptionPlans } from \"common/constants\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { map, isNil } from \"lodash\";\r\n\r\nfunction ChangeSubscriptionPlanTemplate({ changeSubscriptionPlanViewStore, t }) {\r\n const {\r\n subscriptionChangePreview,\r\n changePlanSuccessModal,\r\n currentSubscription,\r\n isChangePlanDisabled,\r\n customerPaymentMethod,\r\n loaderStore,\r\n changePlan,\r\n } = changeSubscriptionPlanViewStore;\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n Subscriptions\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n

Change Subscription Plan details

\r\n
\r\n }\r\n >\r\n {() => (\r\n \r\n
\r\n \r\n\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n {!isNil(customerPaymentMethod) && (\r\n
\r\n

Payment method

\r\n \r\n
\r\n )}\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n )}\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n );\r\n}\r\n\r\nChangeSubscriptionPlanTemplate.propTypes = {\r\n changeSubscriptionPlanViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction SubscriptionPlanCard({ subscriptionPlan, isNew = false, price }) {\r\n let subscriptionPlanColor = \"\";\r\n let subscriptionPlanIcon = \"\";\r\n switch (subscriptionPlan.slug) {\r\n case subscriptionPlans.nakiNigun:\r\n subscriptionPlanColor = \"tertiary\";\r\n subscriptionPlanIcon = \"u-icon--plan--nigun\";\r\n break;\r\n case subscriptionPlans.nakiRadioPremium:\r\n subscriptionPlanColor = \"primary\";\r\n subscriptionPlanIcon = \"u-icon--plan--premium\";\r\n break;\r\n default:\r\n subscriptionPlanColor = \"tertiary\";\r\n }\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n

{isNew ? \"New Plan\" : \"Old Plan\"}

\r\n

{subscriptionPlan.name}

\r\n

\r\n \r\n

\r\n
\r\n
\r\n );\r\n}\r\n\r\nfunction SubscriptionPolicies({ subscriptionChangePreview, currentSubscription, t }) {\r\n if (currentSubscription.subscriptionStatus.abrv === subscriptionStatuses.trial) {\r\n return createTrialSubscriptionPaymentPolicy(subscriptionChangePreview, currentSubscription, t);\r\n }\r\n return createSubscriptionPaymentPolicy(subscriptionChangePreview, currentSubscription, t);\r\n}\r\n\r\nfunction createSubscriptionPaymentPolicy(subscriptionChangePreview, currentSubscription, t) {\r\n const paymentPolicy = [];\r\n if (!subscriptionChangePreview.isUpgrade) {\r\n paymentPolicy.push(\r\n

\r\n Your {currentSubscription.product.name} subscription will remain active until{\" \"}\r\n {dateFormatter.format(subscriptionChangePreview.dateOfChange, {\r\n format: applicationDefaults.formats.date,\r\n })}\r\n .\r\n

\r\n );\r\n }\r\n paymentPolicy.push();\r\n paymentPolicy.push(\r\n

\r\n Starting from\r\n \r\n {\" \"}\r\n {dateFormatter.format(currentSubscription.nextBillingDate, {\r\n format: applicationDefaults.formats.date,\r\n })}{\" \"}\r\n \r\n we will charge you{\" \"}\r\n \r\n for{\" \"}\r\n {subscriptionChangePreview.newSubscriptionPlan.name}\r\n {\" \"}\r\n subscription.\r\n

\r\n );\r\n\r\n return paymentPolicy;\r\n}\r\n\r\nfunction createTrialSubscriptionPaymentPolicy(subscriptionChangePreview, currentSubscription, t) {\r\n const paymentPolicy = [];\r\n paymentPolicy.push(

Your new subscription starts today

);\r\n if (isNil(currentSubscription.endDate)) {\r\n paymentPolicy.push(\r\n

\r\n Starting from{\" \"}\r\n {dateFormatter.format(currentSubscription.nextBillingDate, {\r\n format: applicationDefaults.formats.date,\r\n })}{\" \"}\r\n we will charge you for{\" \"}\r\n {subscriptionChangePreview.newSubscriptionPlan.name} subscription\r\n

\r\n );\r\n } else {\r\n paymentPolicy.push(\r\n

\r\n {subscriptionChangePreview.newSubscriptionPlan.name} Trial subscription will be active until{\" \"}\r\n {dateFormatter.format(currentSubscription.endDate, {\r\n format: applicationDefaults.formats.date,\r\n })}\r\n

\r\n );\r\n }\r\n\r\n return paymentPolicy;\r\n}\r\n\r\nfunction SubscriptionStartDate({ subscriptionChangePreview, t }) {\r\n if (isNil(subscriptionChangePreview.dateOfChange)) {\r\n return

Your new subscription plan starts today

;\r\n }\r\n return (\r\n

\r\n Your new subscription plan starts on{\" \"}\r\n {dateFormatter.format(subscriptionChangePreview.dateOfChange, {\r\n format: applicationDefaults.formats.date,\r\n })}\r\n .\r\n

\r\n );\r\n}\r\n\r\nfunction ProratedInvoicePreview({ subscriptionChangePreview, invoicePreview }) {\r\n if (isNil(invoicePreview)) {\r\n return null;\r\n }\r\n if (invoicePreview.totalAmount === 0) {\r\n return null;\r\n }\r\n\r\n return (\r\n
\r\n

\r\n We will immediately charge you{\" \"}\r\n {currencyFormatter.format(invoicePreview.totalAmount, {\r\n currency: \"USD\",\r\n })}{\" \"}\r\n for upgrading to {subscriptionChangePreview.newSubscriptionPlan.name} subscription:\r\n

\r\n
\r\n {map(invoicePreview.lineItems, (lineItem, index) => {\r\n return (\r\n
\r\n

{lineItem.description}

\r\n

\r\n {currencyFormatter.format(lineItem.amount, {\r\n currency: \"USD\",\r\n })}\r\n

\r\n
\r\n );\r\n })}\r\n
\r\n
\r\n );\r\n}\r\n\r\nfunction UpgradeSuccessModal({ modalParams, t }) {\r\n const { params, data = {} } = modalParams;\r\n let title, description;\r\n let confirmLabel = t(\"APPLICATION.PREMIUM.CHANGE_PLAN.SUCCESS.CONFIRM_BUTTON\", {\r\n subscriptionPlan: data.subscriptionPlan,\r\n });\r\n if (data.billingStartDate) {\r\n const billingStartDate = dateFormatter.format(data.billingStartDate, {\r\n format: applicationDefaults.formats.longDate,\r\n });\r\n title = t(\"APPLICATION.PREMIUM.CHANGE_PLAN.SUCCESS.TITLE\");\r\n description = t(\"APPLICATION.PREMIUM.CHANGE_PLAN.SUCCESS.DESCRIPTION_FUTURE\", {\r\n startDate: billingStartDate,\r\n subscriptionPlan: data.subscriptionPlan,\r\n });\r\n } else {\r\n title = t(\"APPLICATION.PREMIUM.CHANGE_PLAN.SUCCESS.TITLE\");\r\n description = t(\"APPLICATION.PREMIUM.CHANGE_PLAN.SUCCESS.DESCRIPTION\", {\r\n subscriptionPlan: data.subscriptionPlan,\r\n });\r\n }\r\n return (\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n

{title}

\r\n
\r\n
\r\n

{description}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default defaultTemplate(ChangeSubscriptionPlanTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { useStripe, useElements, CardElement } from \"@stripe/react-stripe-js\";\r\nimport { MrbEditPage, MrbPageHeader } from \"mrb/components/layout\";\r\nimport { MrbContentLoader } from \"mrb/components/loader\";\r\nimport {\r\n CreditCardInfo,\r\n TakePaymentHeader,\r\n PaymentSuccessModal,\r\n NakiNigunPremiumBadge,\r\n NakiRadioPremiumBadge,\r\n SubscriptionPlanLoader,\r\n SubscriptionPrice,\r\n} from \"application/payment/components\";\r\nimport { StripeCreditCardField } from \"common/components\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { observer } from \"mobx-react\";\r\nimport { subscriptionPlans } from \"common/constants\";\r\n\r\nfunction TakePaymentTemplate({ takePaymentViewStore, t }) {\r\n const stripe = useStripe();\r\n const elements = useElements();\r\n\r\n if (!stripe || !elements) {\r\n // Stripe.js has not loaded yet. Make sure to disable\r\n // form submission until Stripe.js has loaded.\r\n return
loading
;\r\n }\r\n takePaymentViewStore.setStripe(stripe);\r\n const { subscriptionPlan, isPaymentDisabled, paymentSuccessModal, loaderStore } = takePaymentViewStore;\r\n\r\n const subscribe = () => {\r\n // Get a reference to a mounted CardElement. Elements knows how\r\n // to find your CardElement because there can only ever be one of\r\n // each type of element.\r\n const cardElement = elements.getElement(CardElement);\r\n takePaymentViewStore.onClickSubscribe(cardElement);\r\n };\r\n\r\n return (\r\n {\r\n subscribe();\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }}\r\n >\r\n \r\n \r\n \r\n\r\n

{t(\"APPLICATION.PREMIUM.PAYMENT.TITLE\")}

\r\n\r\n }>\r\n {() => (\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n

{t(\"APPLICATION.PREMIUM.PAYMENT.INFO.START_DATE_LABEL\")}

\r\n

{t(\"APPLICATION.PREMIUM.PAYMENT.INFO.START_DATE_VALUE\")}

\r\n
\r\n\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n )}\r\n
\r\n\r\n \r\n \r\n );\r\n}\r\n\r\nTakePaymentTemplate.propTypes = {\r\n takePaymentViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nconst CreditCard = observer(function CreditCard({ store, t }) {\r\n const {\r\n stripeField,\r\n paymentMethodExist,\r\n rootStore: { premiumSubscriptionStore },\r\n } = store;\r\n if (paymentMethodExist) {\r\n return (\r\n
\r\n

Payment method

\r\n \r\n
\r\n );\r\n } else {\r\n return (\r\n \r\n );\r\n }\r\n});\r\n\r\nexport default defaultTemplate(TakePaymentTemplate);\r\n\r\nfunction SubscriptionPlan({ subscriptionPlan }) {\r\n let premiumBadge = null;\r\n let activeClassName = \"\";\r\n\r\n switch (subscriptionPlan.slug) {\r\n case subscriptionPlans.nakiRadioPremium:\r\n activeClassName = \"primary\";\r\n premiumBadge = ;\r\n break;\r\n case subscriptionPlans.nakiNigun:\r\n activeClassName = \"tertiary\";\r\n premiumBadge = ;\r\n break;\r\n default:\r\n break;\r\n }\r\n return (\r\n
\r\n
\r\n {premiumBadge}\r\n\r\n
\r\n

{subscriptionPlan.name}

\r\n

\r\n \r\n

\r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { useStripe, useElements, CardElement } from \"@stripe/react-stripe-js\";\r\nimport { MrbEditPage, MrbPageHeader } from \"mrb/components/layout\";\r\nimport { MrbContentLoader } from \"mrb/components/loader\";\r\nimport {\r\n CreditCardInfo,\r\n TakePaymentHeader,\r\n PaymentSuccessModal,\r\n NakiNigunPremiumBadge,\r\n NakiRadioPremiumBadge,\r\n SubscriptionPlanLoader,\r\n SubscriptionPrice,\r\n} from \"application/payment/components\";\r\nimport { StripeCreditCardField } from \"common/components\";\r\nimport { applicationDefaults } from \"common/constants\";\r\nimport { dateFormatter } from \"mrb/common/formatting\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { observer } from \"mobx-react\";\r\nimport { subscriptionPlans } from \"common/constants\";\r\n\r\nfunction UpgradeTrialTemplate({ upgradeTrialViewStore, t }) {\r\n const stripe = useStripe();\r\n const elements = useElements();\r\n\r\n if (!stripe || !elements) {\r\n // Stripe.js has not loaded yet. Make sure to disable\r\n // form submission until Stripe.js has loaded.\r\n return
loading
;\r\n }\r\n upgradeTrialViewStore.setStripe(stripe);\r\n const {\r\n subscriptionPlan,\r\n isPaymentDisabled,\r\n paymentSuccessModal,\r\n loaderStore,\r\n rootStore: { premiumSubscriptionStore },\r\n } = upgradeTrialViewStore;\r\n\r\n const subscribe = () => {\r\n // Get a reference to a mounted CardElement. Elements knows how\r\n // to find your CardElement because there can only ever be one of\r\n // each type of element.\r\n const cardElement = elements.getElement(CardElement);\r\n upgradeTrialViewStore.onClickSubscribe(cardElement);\r\n };\r\n\r\n return (\r\n {\r\n subscribe();\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }}\r\n >\r\n \r\n \r\n \r\n\r\n
\r\n
\r\n

{t(\"APPLICATION.PREMIUM.PAYMENT.TITLE\")}

\r\n\r\n }>\r\n {() => (\r\n \r\n \r\n\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n

{t(\"APPLICATION.PREMIUM.PAYMENT.INFO.START_DATE_LABEL\")}

\r\n

\r\n {dateFormatter.format(premiumSubscriptionStore.subscription.endDate, {\r\n format: applicationDefaults.formats.date,\r\n })}\r\n

\r\n
\r\n\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n );\r\n}\r\n\r\nUpgradeTrialTemplate.propTypes = {\r\n upgradeTrialViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nconst CreditCard = observer(function CreditCard({ store, t }) {\r\n const {\r\n stripeField,\r\n paymentMethodExist,\r\n rootStore: { premiumSubscriptionStore },\r\n } = store;\r\n if (paymentMethodExist) {\r\n return (\r\n
\r\n

Payment method

\r\n \r\n
\r\n );\r\n } else {\r\n return (\r\n \r\n );\r\n }\r\n});\r\n\r\nexport default defaultTemplate(UpgradeTrialTemplate);\r\n\r\nfunction SubscriptionPlan({ subscriptionPlan }) {\r\n let premiumBadge = null;\r\n let activeClassName = \"\";\r\n switch (subscriptionPlan.slug) {\r\n case subscriptionPlans.nakiRadioPremium:\r\n activeClassName = \"primary\";\r\n premiumBadge = ;\r\n break;\r\n case subscriptionPlans.nakiNigun:\r\n activeClassName = \"tertiary\";\r\n premiumBadge = ;\r\n break;\r\n default:\r\n break;\r\n }\r\n return (\r\n
\r\n
\r\n {premiumBadge}\r\n\r\n
\r\n

{subscriptionPlan.name}

\r\n

\r\n \r\n

\r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbPreviewPage } from \"mrb/components/layout\";\r\nimport { PremiumContentList, SubscriptionPlanCard } from \"application/payment/components\";\r\nimport { observer } from \"mobx-react\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { map } from \"lodash\";\r\n\r\nfunction PremiumSubscriptionsTemplate({ premiumSubscriptionsViewStore, t }) {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nconst SubscriptionPlans = observer(function SubscriptionPlans({ premiumSubscriptionsViewStore }) {\r\n const {\r\n loaderStore,\r\n subscriptionPlans,\r\n setSelectedSubscriptionPlan,\r\n subscriptionExist,\r\n rootStore: { premiumSubscriptionStore },\r\n } = premiumSubscriptionsViewStore;\r\n\r\n return (\r\n
\r\n \r\n {subscriptionPlans && subscriptionPlans.length > 0 && (\r\n
\r\n {map(subscriptionPlans, (subscriptionPlan) => {\r\n return (\r\n \r\n );\r\n })}\r\n
\r\n )}\r\n
\r\n
\r\n );\r\n});\r\n\r\nPremiumSubscriptionsTemplate.propTypes = {\r\n premiumSubscriptionsViewStore: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default defaultTemplate(PremiumSubscriptionsTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbPreviewPage } from \"mrb/components/layout\";\r\nimport { UserSubscriptionInfo, CustomerPaymentMethodInfo } from \"application/payment/components\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { observer } from \"mobx-react\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\n\r\nfunction UserSubscriptionsPreviewTemplate({ userSubscriptionsPreviewViewStore, t }) {\r\n const { pendingSubscription } = userSubscriptionsPreviewViewStore;\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n );\r\n}\r\n\r\nUserSubscriptionsPreviewTemplate.propTypes = {\r\n userSubscriptionsPreviewViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nconst SubscriptionPlan = observer(function SubscriptionPlan({ userSubscriptionsPreviewViewStore, t }) {\r\n const { routeStore } = userSubscriptionsPreviewViewStore;\r\n return (\r\n
\r\n

Subscription Plan

\r\n \r\n
\r\n );\r\n});\r\n\r\nexport default defaultTemplate(UserSubscriptionsPreviewTemplate);\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react\";\r\nimport { ActivateTrialTemplate } from \"themes/application/payment/pages\";\r\nimport { ActivateTrialViewStore } from \"application/payment/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\nimport { stripeProvider } from \"common/hoc\";\r\n\r\n@stripeProvider\r\n@setCurrentView(\r\n (rootStore, componentProps) => new ActivateTrialViewStore(rootStore, componentProps),\r\n \"activateTrialViewStore\"\r\n)\r\n@observer\r\nclass ActivateTrial extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default ActivateTrial;\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react\";\r\nimport { ChangeSubscriptionPlanTemplate } from \"themes/application/payment/pages\";\r\nimport { ChangeSubscriptionPlanViewStore } from \"application/payment/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new ChangeSubscriptionPlanViewStore(rootStore, componentProps),\r\n \"changeSubscriptionPlanViewStore\"\r\n)\r\n@observer\r\nclass ChangeSubscriptionPlan extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default ChangeSubscriptionPlan;\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react\";\r\nimport { ChangeSubscriptionPlanPreviewTemplate } from \"themes/application/payment/pages\";\r\nimport { ChangeSubscriptionPlanPreviewViewStore } from \"application/payment/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\nimport { stripeProvider } from \"common/hoc\";\r\n\r\n@stripeProvider\r\n@setCurrentView(\r\n (rootStore, componentProps) => new ChangeSubscriptionPlanPreviewViewStore(rootStore, componentProps),\r\n \"changeSubscriptionPlanPreviewViewStore\"\r\n)\r\n@observer\r\nclass ChangeSubscriptionPlanPreview extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default ChangeSubscriptionPlanPreview;\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react\";\r\nimport { TakePaymentTemplate } from \"themes/application/payment/pages\";\r\nimport { TakePaymentViewStore } from \"application/payment/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\nimport { stripeProvider } from \"common/hoc\";\r\n\r\n@stripeProvider\r\n@setCurrentView(\r\n (rootStore, componentProps) => new TakePaymentViewStore(rootStore, componentProps),\r\n \"takePaymentViewStore\"\r\n)\r\n@observer\r\nclass TakePayment extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default TakePayment;\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react\";\r\nimport { UpgradeTrialTemplate } from \"themes/application/payment/pages\";\r\nimport { UpgradeTrialViewStore } from \"application/payment/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\nimport { stripeProvider } from \"common/hoc\";\r\n\r\n@stripeProvider\r\n@setCurrentView(\r\n (rootStore, componentProps) => new UpgradeTrialViewStore(rootStore, componentProps),\r\n \"upgradeTrialViewStore\"\r\n)\r\n@observer\r\nclass UpgradeTrial extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default UpgradeTrial;\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react\";\r\nimport { PremiumSubscriptionsTemplate } from \"themes/application/payment/pages\";\r\nimport { PremiumSubscriptionsViewStore } from \"application/payment/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new PremiumSubscriptionsViewStore(rootStore, componentProps),\r\n \"premiumSubscriptionsViewStore\"\r\n)\r\n@observer\r\nclass PremiumSubscriptions extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default PremiumSubscriptions;\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react\";\r\nimport { UserSubscriptionsPreviewTemplate } from \"themes/application/payment/pages\";\r\nimport { UserSubscriptionsPreviewViewStore } from \"application/payment/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new UserSubscriptionsPreviewViewStore(rootStore, componentProps),\r\n \"userSubscriptionsPreviewViewStore\"\r\n)\r\n@observer\r\nclass UserSubscriptionsPreview extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default UserSubscriptionsPreview;\r\n","import { moduleProviderFactory } from \"mrb/core\";\r\nimport {\r\n ActivateTrial,\r\n ChangeSubscriptionPlan,\r\n UpgradeTrial,\r\n TakePayment,\r\n UserSubscriptionsPreview,\r\n PremiumSubscriptions,\r\n} from \"application/payment/pages\";\r\nimport {\r\n ActivateTrialRouteStore,\r\n ChangeSubscriptionPlanRouteStore,\r\n UpgradeTrialRouteStore,\r\n TakePaymentRouteStore,\r\n UserSubscriptionsPreviewRouteStore,\r\n PremiumSubscriptionsRouteStore,\r\n} from \"application/payment/stores\";\r\n\r\n(function () {\r\n moduleProviderFactory.module(\"application\").register({\r\n name: \"application.premium\",\r\n routes: [\r\n {\r\n name: \"master.application.premium\",\r\n pattern: \"/premium\",\r\n children: [\r\n {\r\n name: \"master.application.premium.trial\",\r\n pattern: \"/trial/:planId\",\r\n component: ActivateTrial,\r\n store: ActivateTrialRouteStore,\r\n },\r\n {\r\n name: \"master.application.premium.payment\",\r\n pattern: \"/payment/:planId\",\r\n component: TakePayment,\r\n store: TakePaymentRouteStore,\r\n },\r\n {\r\n name: \"master.application.premium.trial.upgrade\",\r\n pattern: \"/trial-upgrade/:subscriptionId\",\r\n component: UpgradeTrial,\r\n store: UpgradeTrialRouteStore,\r\n },\r\n {\r\n name: \"master.application.premium.info\",\r\n pattern: \"\",\r\n component: UserSubscriptionsPreview,\r\n store: UserSubscriptionsPreviewRouteStore,\r\n data: {\r\n title: \"APPLICATION.PREMIUM.MY_PLANS\",\r\n },\r\n },\r\n {\r\n name: \"master.application.premium.subscriptions\",\r\n pattern: \"/subscriptions\",\r\n component: PremiumSubscriptions,\r\n store: PremiumSubscriptionsRouteStore,\r\n data: {\r\n title: \"APPLICATION.PREMIUM.TITLE\",\r\n },\r\n },\r\n {\r\n name: \"master.application.premium.change-plan.edit\",\r\n pattern: \"/change-plan/:planId\",\r\n component: ChangeSubscriptionPlan,\r\n store: ChangeSubscriptionPlanRouteStore,\r\n },\r\n // {\r\n // name: \"master.application.premium.change-plan.preview\",\r\n // pattern: \"/change-plan\",\r\n // component: ChangeSubscriptionPlanPreview,\r\n // store: ChangeSubscriptionPlanPreviewRouteStore,\r\n // },\r\n ],\r\n },\r\n ],\r\n menu: [\r\n {\r\n title: \"APPLICATION.MENU.SUBSCRIPTIONS\",\r\n order: 5,\r\n icon: \"subscriptions\",\r\n subMenu: [\r\n {\r\n title: \"Subscriptions\",\r\n order: 1,\r\n route: \"master.application.premium.subscriptions\",\r\n },\r\n {\r\n title: \"My Plans\",\r\n order: 2,\r\n route: \"master.application.premium.info\",\r\n },\r\n ],\r\n },\r\n ],\r\n });\r\n})();\r\n"],"sourceRoot":""}