@interopio/home-ui-react 1.4.3 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/{README.md → dist/README.md} +56 -56
- package/dist/common/sequelizer.d.ts +7 -0
- package/dist/common/types.d.ts +26 -0
- package/dist/common/utils.d.ts +2 -0
- package/dist/constants/alerts.d.ts +8 -0
- package/{constants → dist/constants}/defaults.d.ts +0 -1
- package/dist/constants/dialogs.d.ts +5 -0
- package/{constants → dist/constants}/itemTypes.d.ts +1 -0
- package/dist/constants/platformPrefs.d.ts +14 -0
- package/dist/constants/regex.d.ts +1 -0
- package/dist/constants/sections.d.ts +5 -0
- package/{constants → dist/constants}/storageKeys.d.ts +1 -2
- package/{decoders → dist/decoders}/base.d.ts +2 -1
- package/dist/decoders/config.d.ts +3 -0
- package/dist/decoders/layouts.d.ts +3 -0
- package/{decoders → dist/decoders}/platform.d.ts +3 -3
- package/dist/decoders/user.d.ts +3 -0
- package/dist/decoders/validation.d.ts +3 -0
- package/{executors → dist/executors}/applicationActions.d.ts +1 -1
- package/{executors → dist/executors}/layoutActions.d.ts +1 -1
- package/dist/executors/setupStepsActions.d.ts +3 -0
- package/dist/executors/types.d.ts +33 -0
- package/{executors → dist/executors}/workspaceActions.d.ts +1 -1
- package/{helpers → dist/helpers}/a11y.d.ts +0 -16
- package/dist/helpers/alerts.d.ts +9 -0
- package/{helpers → dist/helpers}/sort.d.ts +4 -4
- package/dist/hooks/index.d.ts +28 -0
- package/dist/hooks/useApplications.d.ts +2 -0
- package/{hooks → dist/hooks}/useExecuteApplicationAction.d.ts +1 -1
- package/dist/hooks/useExecuteLayoutAction.d.ts +5 -0
- package/{hooks → dist/hooks}/useExecuteWorkspaceAction.d.ts +1 -1
- package/dist/hooks/useFavorites.d.ts +8 -0
- package/dist/hooks/useFrameId.d.ts +1 -0
- package/{hooks → dist/hooks}/useInvokeInteropMethod.d.ts +1 -1
- package/dist/hooks/useIsLaunchpadPinned.d.ts +8 -0
- package/dist/hooks/useLayouts.d.ts +5 -0
- package/{hooks → dist/hooks}/useNotifications.d.ts +1 -1
- package/dist/hooks/useNotificationsConfiguration.d.ts +3 -0
- package/dist/hooks/useOnIframeFocus.d.ts +6 -0
- package/dist/hooks/useOnOutsideClick.d.ts +9 -0
- package/{hooks → dist/hooks}/usePlatformWindow.d.ts +1 -1
- package/{hooks → dist/hooks}/useRestoreLayout.d.ts +1 -1
- package/{hooks → dist/hooks}/useRestoreWorkspace.d.ts +1 -2
- package/{hooks → dist/hooks}/useSearch.d.ts +1 -1
- package/dist/hooks/useStartApplication.d.ts +7 -0
- package/{hooks → dist/hooks}/useStorage.d.ts +2 -2
- package/dist/hooks/useWorkspaces.d.ts +2 -0
- package/dist/index.css +1 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.js +61 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +14515 -0
- package/dist/index.mjs.map +1 -0
- package/{lib → dist/lib}/applications-section/applications-section.d.ts +1 -1
- package/dist/lib/applications-section/helpers.d.ts +5 -0
- package/dist/lib/applications-section/types.d.ts +9 -0
- package/{lib → dist/lib}/base-section/base-section-header.d.ts +2 -4
- package/dist/lib/base-section/base-section-item.d.ts +14 -0
- package/{lib → dist/lib}/base-section/base-section.d.ts +3 -3
- package/{lib → dist/lib}/base-section/helpers.d.ts +1 -1
- package/dist/lib/base-section/types.d.ts +20 -0
- package/dist/lib/base-section/useCollapsedSections.d.ts +4 -0
- package/dist/lib/context-menu/constants.d.ts +11 -0
- package/dist/lib/context-menu/context-menu.d.ts +11 -0
- package/dist/lib/context-menu/dropdown-button/dropdown-button.d.ts +20 -0
- package/{lib → dist/lib}/context-menu/types.d.ts +5 -1
- package/dist/lib/default-header-system-buttons/constants.d.ts +2 -0
- package/dist/lib/default-header-system-buttons/default-header-system-buttons.d.ts +2 -0
- package/dist/lib/default-header-system-buttons/default-header-system-menu.d.ts +2 -0
- package/{lib → dist/lib}/favorites-section/favorites-section.d.ts +1 -1
- package/dist/lib/favorites-section/helpers.d.ts +3 -0
- package/dist/lib/home-app-workspace/after-tabs.d.ts +3 -0
- package/dist/lib/home-app-workspace/constants.d.ts +2 -0
- package/{lib → dist/lib}/home-app-workspace/group-header-buttons.d.ts +1 -1
- package/dist/lib/home-app-workspace/home-app-workspace.d.ts +13 -0
- package/dist/lib/home-app-workspace/index.d.ts +1 -0
- package/dist/lib/home-app-workspace/launchpad-access.d.ts +7 -0
- package/{lib → dist/lib}/home-app-workspace/workspace-components-context.d.ts +3 -4
- package/dist/lib/icon-components/index.d.ts +4 -0
- package/dist/lib/icon-components/platform-setup/index.d.ts +4 -0
- package/{lib → dist/lib}/io-connect-home/auth0-login-home.d.ts +1 -1
- package/{lib → dist/lib}/io-connect-home/home-app.d.ts +1 -1
- package/{lib → dist/lib}/io-connect-home/io-connect-home.d.ts +1 -1
- package/{lib → dist/lib}/io-connect-home/no-login-home.d.ts +1 -1
- package/{lib → dist/lib}/io-connect-home/simple-login-home.d.ts +1 -1
- package/{lib → dist/lib}/io-connect-home/types.d.ts +54 -18
- package/{lib → dist/lib}/io-connect-home/useUser.d.ts +1 -1
- package/{lib → dist/lib}/io-connect-home-provider/helpers.d.ts +1 -1
- package/{lib → dist/lib}/io-connect-home-provider/io-connect-home-provider.d.ts +1 -1
- package/{lib → dist/lib}/io-connect-home-provider/types.d.ts +2 -2
- package/{lib/io-connect-browser-start-failed/io-connect-browser-start-failed.d.ts → dist/lib/io-init-error-screen/io-init-error-screen.d.ts} +1 -1
- package/dist/lib/launchpad/constants.d.ts +2 -0
- package/dist/lib/launchpad/helpers.d.ts +4 -0
- package/dist/lib/launchpad/launchpad-header.d.ts +7 -0
- package/dist/lib/launchpad/launchpad-pin-button.d.ts +5 -0
- package/dist/lib/launchpad/launchpad.context.d.ts +19 -0
- package/dist/lib/launchpad/launchpad.d.ts +11 -0
- package/dist/lib/launchpad/useIsLaunchpadCollapsed.d.ts +9 -0
- package/dist/lib/layouts-panel/active-layout.d.ts +2 -0
- package/dist/lib/layouts-panel/all-layouts.d.ts +2 -0
- package/dist/lib/layouts-panel/constants.d.ts +8 -0
- package/dist/lib/layouts-panel/create-layout-button.d.ts +2 -0
- package/dist/lib/layouts-panel/helpers.d.ts +3 -0
- package/dist/lib/layouts-panel/layouts-dropdown.d.ts +6 -0
- package/dist/lib/layouts-panel/layouts-list.d.ts +6 -0
- package/dist/lib/layouts-panel/save-layout-button.d.ts +5 -0
- package/dist/lib/layouts-panel/types.d.ts +8 -0
- package/dist/lib/layouts-panel/useIsLayoutsPanelOpen.d.ts +9 -0
- package/{lib → dist/lib}/login/auth0/auth0-login-page.d.ts +1 -2
- package/dist/lib/login/index.d.ts +3 -0
- package/dist/lib/login/login-heading.d.ts +1 -0
- package/{lib → dist/lib}/login/simple/reducers.d.ts +1 -1
- package/{lib → dist/lib}/login/simple/simple-login-form.d.ts +2 -2
- package/{lib → dist/lib}/login/simple/simple-login-page.d.ts +1 -1
- package/{lib → dist/lib}/login/types.d.ts +1 -5
- package/dist/lib/notifications-panel-button/notifications-badge.d.ts +2 -0
- package/dist/lib/notifications-panel-button/notifications-panel-button.d.ts +6 -0
- package/dist/lib/notifications-panels/notification-settings-panel.d.ts +9 -0
- package/dist/lib/notifications-panels/notifications-panel-with-toggle-button.d.ts +3 -0
- package/dist/lib/notifications-panels/notifications-panel.d.ts +10 -0
- package/dist/lib/panels/launchpad/launchpad-button.d.ts +6 -0
- package/dist/lib/panels/launchpad/launchpad-panel.d.ts +2 -0
- package/dist/lib/panels/panel-with-toggle-button.d.ts +12 -0
- package/dist/lib/panels/panel-wrapper.d.ts +11 -0
- package/dist/lib/panels/types.d.ts +9 -0
- package/{lib → dist/lib}/platform-setup/constants.d.ts +1 -1
- package/{lib → dist/lib}/platform-setup/reducers.d.ts +2 -2
- package/{lib → dist/lib}/platform-setup/setup-steps-list.d.ts +1 -1
- package/{lib → dist/lib}/platform-setup/types.d.ts +4 -4
- package/dist/lib/preferences-panel/preferences-panel.d.ts +2 -0
- package/dist/lib/profile-panel/profile-panel.d.ts +9 -0
- package/{lib → dist/lib}/search/search-bar/search-bar.d.ts +1 -0
- package/dist/lib/search/search-results-section/search-results-section.d.ts +5 -0
- package/{lib → dist/lib}/search/search-results-section/types.d.ts +3 -3
- package/dist/lib/search/search-results-section/useExecuteLayoutSearchResultAction.d.ts +2 -0
- package/dist/lib/search/search-results-section/useGenerateLayoutFromId.d.ts +2 -0
- package/dist/lib/search/search-results-section/useGetActionExecutor.d.ts +1 -0
- package/dist/lib/search/search-results-section/useSearchResultsSectionConfigs.d.ts +3 -0
- package/{lib → dist/lib}/section/helpers.d.ts +2 -2
- package/{lib → dist/lib}/section/section.d.ts +1 -1
- package/{lib → dist/lib}/section/types.d.ts +1 -1
- package/dist/lib/spinner/index.d.ts +1 -0
- package/dist/lib/system-menu/helpers.d.ts +3 -0
- package/dist/lib/system-menu/system-menu.d.ts +6 -0
- package/dist/lib/system-menu/types.d.ts +9 -0
- package/dist/lib/workspaces-section/constants.d.ts +3 -0
- package/{lib → dist/lib}/workspaces-section/helpers.d.ts +3 -3
- package/{lib → dist/lib}/workspaces-section/workspaces-section.d.ts +1 -1
- package/package.json +59 -41
- package/assets/fonts/nunito-regular-webfont.woff +0 -0
- package/assets/fonts/nunito-regular-webfont.woff2 +0 -0
- package/assets/fonts/nunito-semibold-webfont.woff +0 -0
- package/assets/fonts/nunito-semibold-webfont.woff2 +0 -0
- package/assets/io-connect-browser-logo.json +0 -5
- package/common/types.d.ts +0 -10
- package/decoders/config.d.ts +0 -3
- package/decoders/context-menu.d.ts +0 -3
- package/decoders/favorites.d.ts +0 -3
- package/decoders/layouts.d.ts +0 -3
- package/decoders/user.d.ts +0 -3
- package/decoders/validation.d.ts +0 -3
- package/executors/notificationsSort.d.ts +0 -7
- package/executors/setupStepsActions.d.ts +0 -3
- package/executors/types.d.ts +0 -26
- package/helpers/date.d.ts +0 -1
- package/helpers/string.d.ts +0 -1
- package/hooks/index.d.ts +0 -25
- package/hooks/useApplications.d.ts +0 -2
- package/hooks/useExecuteLayoutAction.d.ts +0 -2
- package/hooks/useFavoriteEntities.d.ts +0 -7
- package/hooks/useFrame.d.ts +0 -2
- package/hooks/useIsBrowserSupported.d.ts +0 -1
- package/hooks/useLayouts.d.ts +0 -2
- package/hooks/useNotificationsSort.d.ts +0 -5
- package/hooks/useStartApplication.d.ts +0 -4
- package/hooks/useWorkspaces.d.ts +0 -2
- package/index.css +0 -1
- package/index.d.ts +0 -37
- package/index.js +0 -54
- package/index.js.map +0 -1
- package/index.mjs +0 -8651
- package/index.mjs.map +0 -1
- package/lib/applications-section/helpers.d.ts +0 -6
- package/lib/applications-section/types.d.ts +0 -4
- package/lib/base-section/base-section-item.d.ts +0 -13
- package/lib/base-section/types.d.ts +0 -29
- package/lib/browser-not-supported/additional-information.d.ts +0 -5
- package/lib/browser-not-supported/browser-not-supported.d.ts +0 -11
- package/lib/browser-not-supported/constants.d.ts +0 -6
- package/lib/button/button.d.ts +0 -7
- package/lib/button-group/button-group.d.ts +0 -8
- package/lib/context-menu/constants.d.ts +0 -3
- package/lib/context-menu/context-menu.d.ts +0 -10
- package/lib/context-menu/dropdown-button/dropdown-button.d.ts +0 -11
- package/lib/dialog/dialog.d.ts +0 -8
- package/lib/favorites-section/helpers.d.ts +0 -3
- package/lib/home-app-workspace/after-tabs.d.ts +0 -3
- package/lib/home-app-workspace/home-app-workspace.d.ts +0 -14
- package/lib/home-app-workspace/index.d.ts +0 -2
- package/lib/home-app-workspace/launchpad-access.d.ts +0 -6
- package/lib/home-app-workspace/workspace-logo.d.ts +0 -10
- package/lib/icon/icon.d.ts +0 -9
- package/lib/icon-components/google-chrome-icon.d.ts +0 -2
- package/lib/icon-components/index.d.ts +0 -7
- package/lib/icon-components/microsoft-edge-icon.d.ts +0 -2
- package/lib/icon-components/opera-icon.d.ts +0 -2
- package/lib/icon-components/platform-setup/index.d.ts +0 -4
- package/lib/img-icon/img-icon.d.ts +0 -8
- package/lib/launchpad/default-sections.d.ts +0 -2
- package/lib/launchpad/helpers.d.ts +0 -3
- package/lib/launchpad/launchpad.context.d.ts +0 -19
- package/lib/launchpad/launchpad.d.ts +0 -12
- package/lib/launchpad/types.d.ts +0 -16
- package/lib/layouts-panel/available-layouts.d.ts +0 -6
- package/lib/layouts-panel/constants.d.ts +0 -6
- package/lib/layouts-panel/helpers.d.ts +0 -4
- package/lib/layouts-panel/layout-actions.d.ts +0 -9
- package/lib/layouts-panel/layouts-notification.d.ts +0 -6
- package/lib/layouts-panel/types.d.ts +0 -20
- package/lib/login/index.d.ts +0 -4
- package/lib/login/login-heading.d.ts +0 -5
- package/lib/login/login-loader.d.ts +0 -5
- package/lib/logo/logo.d.ts +0 -2
- package/lib/notifications-panel/constants.d.ts +0 -9
- package/lib/notifications-panel/index.d.ts +0 -4
- package/lib/notifications-panel/notification.d.ts +0 -6
- package/lib/notifications-panel/notifications-badge.d.ts +0 -5
- package/lib/notifications-panel/notifications-icon.d.ts +0 -6
- package/lib/notifications-panel/notifications-panel.d.ts +0 -2
- package/lib/notifications-panel/types.d.ts +0 -7
- package/lib/panels/launchpad-slide-panel.d.ts +0 -10
- package/lib/panels/slide-panel.d.ts +0 -9
- package/lib/search/search-results-section/helpers.d.ts +0 -3
- package/lib/search/search-results-section/search-results-section.d.ts +0 -5
- package/lib/spinner/index.d.ts +0 -1
- package/lib/user-panel/settings-card.d.ts +0 -2
- package/lib/user-panel/support-card.d.ts +0 -11
- package/lib/user-panel/user-details-card.d.ts +0 -6
- package/lib/user-panel/user-panel-icon.d.ts +0 -6
- package/lib/user-panel/user-panel.d.ts +0 -7
- /package/{constants → dist/constants}/auth0LoginTypes.d.ts +0 -0
- /package/{constants → dist/constants}/modifierKeys.d.ts +0 -0
- /package/{constants → dist/constants}/sortOrder.d.ts +0 -0
- /package/{hooks → dist/hooks}/useApplicationsInstances.d.ts +0 -0
- /package/{hooks → dist/hooks}/useBeforeunload.d.ts +0 -0
- /package/{hooks → dist/hooks}/useExecuteLayoutOperationIfNotBlocked.d.ts +0 -0
- /package/{hooks → dist/hooks}/useIsHomeLoaded.d.ts +0 -0
- /package/{hooks → dist/hooks}/useIsRunningInDesktopContainer.d.ts +0 -0
- /package/{hooks → dist/hooks}/usePressedKeys.d.ts +0 -0
- /package/{hooks → dist/hooks}/useUA.d.ts +0 -0
- /package/{hooks → dist/hooks}/useWorkspacesInstances.d.ts +0 -0
- /package/{lib → dist/lib}/home-app-workspace/no-logo.d.ts +0 -0
- /package/{lib → dist/lib}/home-app-workspace/types.d.ts +0 -0
- /package/{lib → dist/lib}/home-app-workspace/useAddWindowButtonVisible.d.ts +0 -0
- /package/{lib → dist/lib}/icon-components/platform-setup/browser-notifications-icon.d.ts +0 -0
- /package/{lib → dist/lib}/icon-components/platform-setup/popups-icon.d.ts +0 -0
- /package/{lib → dist/lib}/icon-components/platform-setup/pwa-install-icon.d.ts +0 -0
- /package/{lib → dist/lib}/icon-components/platform-setup/window-management-icon.d.ts +0 -0
- /package/{lib → dist/lib}/icon-components/reopen-prompt-icon.d.ts +0 -0
- /package/{lib → dist/lib}/icon-components/start-failed-icon.d.ts +0 -0
- /package/{lib → dist/lib}/icon-components/warning-icon.d.ts +0 -0
- /package/{lib → dist/lib}/info-card/info-card.d.ts +0 -0
- /package/{lib → dist/lib}/info-page-container/info-page-container.d.ts +0 -0
- /package/{lib → dist/lib}/io-connect-home-provider/constants.d.ts +0 -0
- /package/{lib → dist/lib}/layouts-panel/layouts-panel.d.ts +0 -0
- /package/{lib → dist/lib}/login/constants.d.ts +0 -0
- /package/{lib → dist/lib}/login/login-logo.d.ts +0 -0
- /package/{lib → dist/lib}/login/login-page-container.d.ts +0 -0
- /package/{lib → dist/lib}/platform-setup/platform-setup.d.ts +0 -0
- /package/{lib → dist/lib}/platform-setup/setup-steps.d.ts +0 -0
- /package/{lib → dist/lib}/platform-setup/use-edge-notifications-permission.d.ts +0 -0
- /package/{lib → dist/lib}/section/section.context.d.ts +0 -0
- /package/{lib → dist/lib}/spinner/spinner.d.ts +0 -0
- /package/{lib → dist/lib}/system-loader/system-loader.d.ts +0 -0
- /package/{lib → dist/lib}/workspaces-section/types.d.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../components-react/dist/esm/index.js","../src/lib/base-section/helpers.ts","../src/constants/itemTypes.ts","../src/common/utils.ts","../src/lib/context-menu/constants.ts","../src/constants/sortOrder.ts","../src/helpers/sort.ts","../src/constants/sections.ts","../src/lib/applications-section/helpers.ts","../../../node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js","../../../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js","../../../node_modules/prop-types/node_modules/react-is/index.js","../../../node_modules/object-assign/index.js","../../../node_modules/prop-types/lib/ReactPropTypesSecret.js","../../../node_modules/prop-types/lib/has.js","../../../node_modules/prop-types/checkPropTypes.js","../../../node_modules/prop-types/factoryWithTypeCheckers.js","../../../node_modules/prop-types/factoryWithThrowingShims.js","../../../node_modules/prop-types/index.js","../../../node_modules/classnames/index.js","../../../node_modules/reactstrap/esm/utils.js","../../../node_modules/reactstrap/esm/CloseButton.js","../../../node_modules/reactstrap/esm/Button.js","../../../node_modules/react-popper/lib/esm/utils.js","../../../node_modules/@popperjs/core/lib/enums.js","../../../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../../../node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../../../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../../../node_modules/@popperjs/core/lib/modifiers/applyStyles.js","../../../node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../../../node_modules/@popperjs/core/lib/utils/math.js","../../../node_modules/@popperjs/core/lib/utils/userAgent.js","../../../node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","../../../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../../../node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","../../../node_modules/@popperjs/core/lib/dom-utils/contains.js","../../../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../../../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../../../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../../../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../../../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../../../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../../../node_modules/@popperjs/core/lib/utils/within.js","../../../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../../../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../../../node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../../../node_modules/@popperjs/core/lib/modifiers/arrow.js","../../../node_modules/@popperjs/core/lib/utils/getVariation.js","../../../node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../../../node_modules/@popperjs/core/lib/modifiers/eventListeners.js","../../../node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../../../node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../../../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../../../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../../../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../../../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../../../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../../../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../../../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../../../node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../../../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../../../node_modules/@popperjs/core/lib/utils/computeOffsets.js","../../../node_modules/@popperjs/core/lib/utils/detectOverflow.js","../../../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../../../node_modules/@popperjs/core/lib/modifiers/flip.js","../../../node_modules/@popperjs/core/lib/modifiers/hide.js","../../../node_modules/@popperjs/core/lib/modifiers/offset.js","../../../node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../../../node_modules/@popperjs/core/lib/utils/getAltAxis.js","../../../node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../../../node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","../../../node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","../../../node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","../../../node_modules/@popperjs/core/lib/utils/orderModifiers.js","../../../node_modules/@popperjs/core/lib/utils/debounce.js","../../../node_modules/@popperjs/core/lib/utils/mergeByName.js","../../../node_modules/@popperjs/core/lib/createPopper.js","../../../node_modules/@popperjs/core/lib/popper.js","../../../node_modules/react-fast-compare/index.js","../../../node_modules/react-popper/lib/esm/usePopper.js","../../../node_modules/reactstrap/esm/ButtonGroup.js","../../../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../../../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../../../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../../../node_modules/react-transition-group/esm/config.js","../../../node_modules/react-transition-group/esm/utils/PropTypes.js","../../../node_modules/react-transition-group/esm/TransitionGroupContext.js","../../../node_modules/react-transition-group/esm/utils/reflow.js","../../../node_modules/react-transition-group/esm/Transition.js","../../../node_modules/reactstrap/esm/Collapse.js","../src/lib/base-section/base-section-header.tsx","../src/hooks/useApplications.ts","../src/hooks/useApplicationsInstances.ts","../src/hooks/useBeforeunload.ts","../src/hooks/useFrameId.ts","../src/constants/alerts.ts","../src/helpers/alerts.ts","../src/executors/applicationActions.ts","../src/hooks/useExecuteApplicationAction.ts","../src/constants/dialogs.ts","../src/constants/regex.ts","../src/executors/layoutActions.ts","../src/constants/storageKeys.ts","../../../node_modules/decoder-validate/dist/index.es5.js","../src/decoders/base.ts","../src/decoders/layouts.ts","../src/constants/defaults.ts","../src/lib/launchpad/helpers.ts","../src/lib/launchpad/launchpad.context.tsx","../src/constants/platformPrefs.ts","../src/hooks/useIsLaunchpadPinned.ts","../src/hooks/useExecuteLayoutAction.ts","../src/hooks/useExecuteLayoutOperationIfNotBlocked.ts","../src/lib/workspaces-section/constants.ts","../src/executors/workspaceActions.ts","../src/common/sequelizer.ts","../src/hooks/useWorkspaces.ts","../src/hooks/useFavorites.ts","../src/hooks/useExecuteWorkspaceAction.ts","../src/hooks/useInvokeInteropMethod.ts","../src/hooks/useIsHomeLoaded.ts","../../../node_modules/ua-parser-js/src/ua-parser.js","../src/hooks/useUA.ts","../src/hooks/useIsRunningInDesktopContainer.ts","../src/hooks/useLayouts.ts","../src/hooks/useNotifications.ts","../src/hooks/useNotificationsConfiguration.tsx","../src/hooks/useOnIframeFocus.ts","../src/hooks/useOnOutsideClick.ts","../src/decoders/platform.ts","../src/hooks/useStorage.ts","../src/hooks/usePlatformWindow.ts","../src/hooks/usePressedKeys.ts","../src/hooks/useRestoreLayout.ts","../src/constants/modifierKeys.ts","../src/hooks/useRestoreWorkspace.ts","../src/hooks/useSearch.ts","../src/hooks/useStartApplication.ts","../src/hooks/useWorkspacesInstances.ts","../src/helpers/a11y.ts","../src/lib/context-menu/context-menu.tsx","../src/lib/context-menu/dropdown-button/dropdown-button.tsx","../src/lib/base-section/base-section-item.tsx","../src/lib/base-section/useCollapsedSections.ts","../src/lib/base-section/base-section.tsx","../src/lib/section/helpers.ts","../src/lib/section/section.context.tsx","../src/lib/section/section.tsx","../src/lib/applications-section/applications-section.tsx","../src/lib/favorites-section/helpers.ts","../src/lib/favorites-section/favorites-section.tsx","../src/lib/panels/launchpad/launchpad-button.tsx","../../../node_modules/deepmerge/dist/cjs.js","../src/lib/io-connect-home-provider/constants.ts","../src/lib/home-app-workspace/constants.ts","../src/lib/launchpad/launchpad-header.tsx","../src/lib/launchpad/launchpad-pin-button.tsx","../src/lib/search/search-bar/search-bar.tsx","../src/lib/search/search-results-section/useGenerateLayoutFromId.tsx","../src/lib/search/search-results-section/useExecuteLayoutSearchResultAction.tsx","../src/lib/search/search-results-section/useGetActionExecutor.tsx","../src/lib/layouts-panel/constants.ts","../src/lib/layouts-panel/helpers.ts","../src/lib/search/search-results-section/useSearchResultsSectionConfigs.tsx","../src/lib/search/search-results-section/search-results-section.tsx","../src/lib/workspaces-section/helpers.ts","../src/lib/workspaces-section/workspaces-section.tsx","../src/lib/launchpad/constants.ts","../src/lib/layouts-panel/useIsLayoutsPanelOpen.ts","../src/lib/layouts-panel/save-layout-button.tsx","../src/lib/layouts-panel/layouts-dropdown.tsx","../src/lib/layouts-panel/layouts-list.tsx","../src/lib/layouts-panel/all-layouts.tsx","../src/lib/layouts-panel/active-layout.tsx","../src/lib/layouts-panel/create-layout-button.tsx","../src/lib/layouts-panel/layouts-panel.tsx","../src/lib/launchpad/useIsLaunchpadCollapsed.ts","../src/lib/launchpad/launchpad.tsx","../src/lib/home-app-workspace/workspace-components-context.tsx","../src/lib/io-connect-home-provider/helpers.ts","../src/lib/io-connect-home-provider/io-connect-home-provider.tsx","../src/lib/icon-components/platform-setup/browser-notifications-icon.tsx","../src/lib/icon-components/platform-setup/popups-icon.tsx","../src/lib/icon-components/platform-setup/pwa-install-icon.tsx","../src/lib/icon-components/platform-setup/window-management-icon.tsx","../src/lib/icon-components/start-failed-icon.tsx","../src/lib/platform-setup/constants.ts","../src/lib/panels/launchpad/launchpad-panel.tsx","../src/lib/panels/panel-wrapper.tsx","../src/lib/panels/panel-with-toggle-button.tsx","../src/lib/home-app-workspace/launchpad-access.tsx","../../../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js","../src/lib/info-page-container/info-page-container.tsx","../src/lib/login/constants.ts","../src/lib/login/login-logo.tsx","../src/lib/spinner/spinner.tsx","../src/lib/system-loader/system-loader.tsx","../src/lib/info-card/info-card.tsx","../src/lib/platform-setup/setup-steps-list.tsx","../src/lib/platform-setup/use-edge-notifications-permission.ts","../src/lib/platform-setup/reducers.ts","../src/executors/setupStepsActions.ts","../src/lib/platform-setup/setup-steps.tsx","../src/lib/platform-setup/platform-setup.tsx","../src/lib/io-init-error-screen/io-init-error-screen.tsx","../src/lib/login/login-heading.tsx","../src/lib/login/login-page-container.tsx","../src/lib/login/auth0/auth0-login-page.tsx","../src/lib/login/simple/reducers.ts","../src/lib/login/simple/simple-login-form.tsx","../src/lib/login/simple/simple-login-page.tsx","../src/lib/home-app-workspace/useAddWindowButtonVisible.ts","../src/lib/home-app-workspace/after-tabs.tsx","../src/lib/home-app-workspace/group-header-buttons.tsx","../src/lib/home-app-workspace/no-logo.tsx","../src/lib/notifications-panels/notification-settings-panel.tsx","../src/lib/preferences-panel/preferences-panel.tsx","../src/lib/profile-panel/profile-panel.tsx","../src/lib/default-header-system-buttons/constants.ts","../src/lib/system-menu/helpers.tsx","../src/lib/system-menu/system-menu.tsx","../src/lib/default-header-system-buttons/default-header-system-menu.tsx","../src/lib/notifications-panel-button/notifications-badge.tsx","../src/lib/notifications-panel-button/notifications-panel-button.tsx","../src/lib/notifications-panels/notifications-panel.tsx","../src/lib/notifications-panels/notifications-panel-with-toggle-button.tsx","../src/lib/default-header-system-buttons/default-header-system-buttons.tsx","../src/lib/home-app-workspace/home-app-workspace.tsx","../src/decoders/user.ts","../src/lib/io-connect-home/simple-login-home.tsx","../src/decoders/validation.ts","../src/lib/io-connect-home/useUser.ts","../src/constants/auth0LoginTypes.ts","../src/lib/io-connect-home/auth0-login-home.tsx","../src/lib/io-connect-home/no-login-home.tsx","../src/decoders/config.ts","../src/lib/io-connect-home/home-app.tsx","../src/lib/io-connect-home/io-connect-home.tsx"],"sourcesContent":["import{jsx as e,jsxs as t,Fragment as n}from\"react/jsx-runtime\";import*as i from\"react\";import{forwardRef as o,useCallback as r,createContext as a,useContext as s,useState as c,useMemo as l,useEffect as u,useRef as d,useLayoutEffect as f,memo as m,useImperativeHandle as h}from\"react\";import*as p from\"react-dom\";import{createPortal as g}from\"react-dom\";import{IOConnectContext as v}from\"@interopio/react-hooks\";function y(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,\"default\")?e.default:e}var w,b={exports:{}};\n/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/w=b,function(){var e={}.hasOwnProperty;function t(){for(var e=\"\",t=0;t<arguments.length;t++){var o=arguments[t];o&&(e=i(e,n(o)))}return e}function n(n){if(\"string\"==typeof n||\"number\"==typeof n)return n;if(\"object\"!=typeof n)return\"\";if(Array.isArray(n))return t.apply(null,n);if(n.toString!==Object.prototype.toString&&!n.toString.toString().includes(\"[native code]\"))return n.toString();var o=\"\";for(var r in n)e.call(n,r)&&n[r]&&(o=i(o,r));return o}function i(e,t){return t?e?e+\" \"+t:e+t:e}w.exports?(t.default=t,w.exports=t):window.classNames=t}();var k=y(b.exports);function C({className:t,size:n=\"16\",variant:i=\"workspace\",...o}){const r=k(\"icon\",n&&[`icon-size-${n}`],t);return e(\"span\",{className:r,...o,children:e(\"i\",{className:`icon-${i}`})})}const N=o((({className:t,variant:n=\"default\",icon:i=\"workspace\",size:o=\"16\",iconSize:a=\"16\",onClick:s,disabled:c,children:l,...u},d)=>{const f=k(\"io-btn-icon\",\"default\"!==n&&[`io-btn-icon-${n}`],[`io-btn-icon-size-${o}`],t),m=r((e=>{if(!c)return s?s(e):void 0;e.preventDefault()}),[s,c]);return e(\"button\",{className:f,type:\"button\",ref:d,\"aria-label\":\"button\",onClick:m,disabled:c,...u,children:l??(i&&e(C,{variant:i,size:a}))})}));N.displayName=\"ButtonIcon\";const x={default:void 0,info:\"info\",success:\"check-solid\",warning:\"exclamation-mark\",critical:\"exclamation-mark\"};function S({className:n,variant:i=\"default\",size:o=\"normal\",text:r,close:a=!1,closeButtonOnClick:s,append:c,...l}){const u=k(\"io-alert\",`io-alert-${i}`,\"large\"===o&&\"io-alert-lg\",n),d=x[i];return t(\"div\",{\"data-testid\":\"io-alert\",className:u,...l,children:[d&&e(C,{\"data-testid\":\"io-alert-icon\",variant:d,className:\"icon-severity\"}),r&&e(\"p\",{\"data-testid\":\"io-alert-text\",className:\"io-text-smaller\",children:r}),\"large\"===o&&c,a&&e(N,{\"data-testid\":\"io-alert-close-button\",className:\"ms-auto\",size:\"16\",iconSize:\"10\",icon:\"close\",onClick:s})]})}function D({className:t,variant:n=\"default\",children:i,...o}){const r=k(\"io-badge\",\"default\"!==n&&[`io-badge-${n}`],t);return e(\"div\",{className:r,...o,children:i})}function E({className:t,tag:n=\"h2\",size:i=\"normal\",text:o=\"Title\",...r}){const a=n,s=k(\"small\"===i&&\"io-title-semibold\",\"normal\"===i&&\"io-title\",\"large\"===i&&\"io-title-large\",t);return e(a,{className:s,...r,children:o})}function I({className:n,title:i,titleSize:o=\"normal\",tag:r,hint:a,children:s,...c}){const l=k(\"io-block\",n);return t(\"div\",{className:l,...c,children:[i&&e(E,{tag:r,text:i,size:o}),s,a&&e(\"p\",{className:\"io-text-smaller\",children:a})]})}const A=o((({className:n,variant:i=\"default\",size:o=\"normal\",icon:a,iconSize:s=\"12\",iconRight:c=!1,text:l,onClick:u,disabled:d,children:f,...m},h)=>{const p=k(\"io-btn\",(\"primary\"===i||\"critical\"===i||\"outline\"===i||\"link\"===i)&&[`io-btn-${i}`],\"large\"===o&&\"io-btn-lg\",n),g=r((e=>{if(!d)return u?u(e):void 0;e.preventDefault()}),[u,d]);return t(\"button\",{className:p,ref:h,type:\"button\",\"aria-label\":\"button\",onClick:g,disabled:d,tabIndex:0,...m,children:[a&&!c&&e(C,{variant:a,size:s}),f??l,a&&c&&e(C,{variant:a,size:s})]})}));A.displayName=\"Button\";const M=a({});const T=o((({size:t=\"32\",...n},i)=>{const{handleOpen:o,disabled:a}=s(M),c=r((()=>{o&&o()}),[o]);return e(N,{ref:i,size:t,onClick:c,disabled:a,...n})}));function P({className:t,...n}){const{handleOpen:i}=s(M),o=k(\"io-dropdown-content\",t),a=r((e=>{e.stopPropagation(),i&&i()}),[i]);return e(\"div\",{className:o,role:\"button\",onClick:a,...n})}T.displayName=\"DropdownButtonIcon\";const _=a({}),O=o(((n,i)=>{const{className:o,prepend:r,append:a,isSelected:c,onClick:l,description:u,disabled:d=!1,children:f,tooltip:m,...h}=n,{variant:p=\"default\",selected:g,checkIcon:v,handleItemClick:y}=s(_),w=c??g?.some((e=>e.children===f)),b=\"default\"!==p&&!!v,N=b||r,x=k(\"io-list-item\",N&&\"io-list-item-left\",a&&\"io-list-item-right\",\"default\"!==p&&w&&\"selected\",u&&\"io-list-item-description\",d&&\"io-list-item-disabled\",o);return t(\"li\",{className:x,ref:i,role:\"menuitem\",\"aria-roledescription\":\"menuitem\",tabIndex:0,onClick:e=>{d?e.preventDefault():(y?.(e,{children:f}),l?.(e))},...h,children:[N&&t(\"div\",{className:\"io-list-left-column\",children:[b&&e(C,{variant:v.variant,title:w?v.tooltip:void 0}),r]}),e(\"span\",{className:\"io-list-text\",title:m,children:f}),a&&e(\"div\",{className:\"io-list-right-column\",children:a}),u&&e(\"div\",{className:\"io-list-text-description\",children:u})]})}));O.displayName=\"ListItem\";const L=o((({className:n,prepend:i,append:o,children:r,tooltip:a,...s},c)=>{const l=k(\"io-list-item\",i&&\"io-list-item-left\",o&&\"io-list-item-right\",\"io-list-item-title\",n);return t(\"li\",{className:l,ref:c,...s,children:[i&&e(\"div\",{className:\"io-list-left-column\",children:i}),e(\"span\",{className:\"io-list-text\",title:a,children:r}),o&&e(\"div\",{className:\"io-list-right-column\",children:o})]})}));L.displayName=\"ListItemTitle\";const F=o((({className:n,prepend:i,append:o,children:r,tooltip:a,...s},c)=>{const l=k(\"io-list-item\",i&&\"io-list-item-left\",o&&\"io-list-item-right\",\"io-list-item-section\",n);return t(\"li\",{className:l,ref:c,...s,children:[i&&e(\"div\",{className:\"io-list-left-column\",children:i}),e(\"span\",{className:\"io-list-text\",title:a,children:r}),o&&e(\"div\",{className:\"io-list-right-column\",children:o})]})}));F.displayName=\"ListItemSection\";const B=o((({className:n,prepend:i,append:o,children:r,tooltip:a,...s},c)=>{const l=k(\"io-list-item-header\",n);return t(\"div\",{className:l,ref:c,...s,children:[i&&e(\"div\",{className:\"io-list-left-column\",children:i}),e(\"span\",{className:\"io-list-text\",title:a,children:r}),o&&e(\"div\",{className:\"io-list-right-column\",children:o})]})}));B.displayName=\"ListItemHeader\";const R=o((({className:t,children:n,...i},o)=>{const r=k(\"io-list-item\",\"io-list-with-sub-items\",t);return e(\"li\",{className:r,ref:o,...i,children:n})}));R.displayName=\"ListItemWithSubItems\";const j=o(((t,n)=>{const{className:i,variant:o=\"default\",checkIcon:a,children:s,...u}=t,[d,f]=c([]),m=k(\"io-list\",\"default\"!==o&&\"io-list-selectable\",i),h=l((()=>{if(a)return\"object\"==typeof a?a:{variant:a}}),[a]),p=r(((e,t)=>{if(\"default\"===o)return;const n=d.some((e=>e.children?.toString()===t.children?.toString()));\"single\"===o?f([t]):(()=>{const e=n?d.filter((e=>e.children!==t.children)):[...d,t];f(e)})()}),[d,o]),g=l((()=>({variant:o,selected:d,checkIcon:h,handleItemClick:p})),[o,d,h,p]);return e(_.Provider,{value:g,children:e(\"ul\",{className:m,ref:n,...u,children:s})})}));j.displayName=\"List\";const H=j;function z(e,t){u((()=>{const n=n=>{e.current&&!e.current.contains(n.target)&&t()};return document.addEventListener(\"mousedown\",n),()=>{document.removeEventListener(\"mousedown\",n)}}),[e,t])}function $({className:t,variant:n=\"outline\",align:i=\"down\",disabled:o,children:a,...s}){const[u,f]=c(!1),m=d(null),h=k(\"io-dropdown\",u&&\"io-dropdown-open\",\"default\"!==n&&[`io-dropdown-${n}`],t),p=r((()=>{f(!u)}),[u]);z(m,r((()=>{f(!1)}),[]));const g=l((()=>({isOpen:u,handleOpen:p,variant:n,align:i,disabled:o})),[u,p,n,i,o]);return e(M.Provider,{value:g,children:e(\"div\",{className:h,ref:m,...s,children:a})})}function V({className:t,variant:n=\"default\",align:i=\"left\",children:o,...r}){const a=k(\"io-btn-group\",\"sticky\"===n&&\"io-btn-group-sticky\",\"append\"===n&&\"io-btn-group-append\",\"fullwidth\"===n&&\"io-btn-group-fullwidth\",\"right\"===i&&\"io-btn-group-right\",t);return e(\"div\",{className:a,...r,children:o})}function Y({className:t,draggable:n=!1,children:i,...o}){const r=k(\"io-header\",n&&[\"draggable\"],t);return e(\"header\",{className:r,style:{display:\"flex\",alignItems:\"center\",justifyContent:\"space-between\",gap:\"var(--spacing-8)\"},...o,children:i})}function U({className:t,children:n,...i}){const o=k(\"io-dialog-header\",t);return e(Y,{\"data-testid\":\"io-dialog-header\",className:o,...i,children:n})}function W({className:t,children:n,...i}){const o=k(\"io-dialog-body\",t);return e(\"div\",{\"data-testid\":\"io-dialog-body\",className:o,...i,children:n})}function J({className:t,children:n,...i}){const o=k(\"io-footer\",t);return e(\"footer\",{className:o,...i,children:n})}function q({className:t,...n}){const i=k(\"io-dialog-footer\",t);return e(J,{\"data-testid\":\"io-dialog-footer\",className:i,...n})}function K({className:n,variant:i=\"default\",title:o=\"Dialog Title\",isOpen:r=!1,draggable:a=!1,closeFn:s=(()=>console.log(\"closeFn not provided\")),children:c,...l}){const u=d(null),m=k(\"io-dialog\",\"centered\"===i&&\"io-dialog-center\",n);return f((()=>{const e=u?.current;e&&(r?e.showModal():e.close())}),[r,u]),t(\"dialog\",{\"data-testid\":\"io-dialog\",className:m,ref:u,\"data-modal\":!0,onClose:()=>{r&&s()},onClick:e=>{\"DIALOG\"===e.target.nodeName&&s()},onKeyDown:e=>{const t=e.target instanceof HTMLDialogElement&&\"DIALOG\"===e.target.nodeName;\" \"===e.key&&t&&s()},...l,children:[t(U,{draggable:a,children:[e(\"h3\",{\"data-testid\":\"io-dialog-title\",children:o}),e(V,{children:e(N,{\"data-testid\":\"io-dialog-close-button\",size:\"24\",icon:\"close\",iconSize:\"12\",onClick:s,tabIndex:-1})})]}),c]})}function G(){return\"undefined\"!=typeof window}function Q(e){return ee(e)?(e.nodeName||\"\").toLowerCase():\"#document\"}function X(e){var t;return(null==e||null==(t=e.ownerDocument)?void 0:t.defaultView)||window}function Z(e){var t;return null==(t=(ee(e)?e.ownerDocument:e.document)||window.document)?void 0:t.documentElement}function ee(e){return!!G()&&(e instanceof Node||e instanceof X(e).Node)}function te(e){return!!G()&&(e instanceof Element||e instanceof X(e).Element)}function ne(e){return!!G()&&(e instanceof HTMLElement||e instanceof X(e).HTMLElement)}function ie(e){return!(!G()||\"undefined\"==typeof ShadowRoot)&&(e instanceof ShadowRoot||e instanceof X(e).ShadowRoot)}function oe(e){const{overflow:t,overflowX:n,overflowY:i,display:o}=ue(e);return/auto|scroll|overlay|hidden|clip/.test(t+i+n)&&![\"inline\",\"contents\"].includes(o)}function re(e){return[\"table\",\"td\",\"th\"].includes(Q(e))}function ae(e){return[\":popover-open\",\":modal\"].some((t=>{try{return e.matches(t)}catch(e){return!1}}))}function se(e){const t=ce(),n=te(e)?ue(e):e;return\"none\"!==n.transform||\"none\"!==n.perspective||!!n.containerType&&\"normal\"!==n.containerType||!t&&!!n.backdropFilter&&\"none\"!==n.backdropFilter||!t&&!!n.filter&&\"none\"!==n.filter||[\"transform\",\"perspective\",\"filter\"].some((e=>(n.willChange||\"\").includes(e)))||[\"paint\",\"layout\",\"strict\",\"content\"].some((e=>(n.contain||\"\").includes(e)))}function ce(){return!(\"undefined\"==typeof CSS||!CSS.supports)&&CSS.supports(\"-webkit-backdrop-filter\",\"none\")}function le(e){return[\"html\",\"body\",\"#document\"].includes(Q(e))}function ue(e){return X(e).getComputedStyle(e)}function de(e){return te(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function fe(e){if(\"html\"===Q(e))return e;const t=e.assignedSlot||e.parentNode||ie(e)&&e.host||Z(e);return ie(t)?t.host:t}function me(e){const t=fe(e);return le(t)?e.ownerDocument?e.ownerDocument.body:e.body:ne(t)&&oe(t)?t:me(t)}function he(e,t,n){var i;void 0===t&&(t=[]),void 0===n&&(n=!0);const o=me(e),r=o===(null==(i=e.ownerDocument)?void 0:i.body),a=X(o);if(r){const e=function(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}(a);return t.concat(a,a.visualViewport||[],oe(o)?o:[],e&&n?he(e):[])}return t.concat(o,he(o,[],n))}function pe(e){let t=e.activeElement;for(;null!=(null==(n=t)||null==(n=n.shadowRoot)?void 0:n.activeElement);){var n;t=t.shadowRoot.activeElement}return t}function ge(e,t){if(!e||!t)return!1;const n=null==t.getRootNode?void 0:t.getRootNode();if(e.contains(t))return!0;if(n&&ie(n)){let n=t;for(;n;){if(e===n)return!0;n=n.parentNode||n.host}}return!1}function ve(){const e=navigator.userAgentData;return null!=e&&e.platform?e.platform:navigator.platform}function ye(){const e=navigator.userAgentData;return e&&Array.isArray(e.brands)?e.brands.map((e=>{let{brand:t,version:n}=e;return t+\"/\"+n})).join(\" \"):navigator.userAgent}function we(e){return!(0!==e.mozInputSource||!e.isTrusted)||(Ce()&&e.pointerType?\"click\"===e.type&&1===e.buttons:0===e.detail&&!e.pointerType)}function be(e){return!ye().includes(\"jsdom/\")&&(!Ce()&&0===e.width&&0===e.height||Ce()&&1===e.width&&1===e.height&&0===e.pressure&&0===e.detail&&\"mouse\"===e.pointerType||e.width<1&&e.height<1&&0===e.pressure&&0===e.detail&&\"touch\"===e.pointerType)}function ke(){return/apple/i.test(navigator.vendor)}function Ce(){const e=/android/i;return e.test(ve())||e.test(ye())}function Ne(e,t){const n=[\"mouse\",\"pen\"];return t||n.push(\"\",void 0),n.includes(e)}function xe(e){return(null==e?void 0:e.ownerDocument)||document}function Se(e,t){if(null==t)return!1;if(\"composedPath\"in e)return e.composedPath().includes(t);const n=e;return null!=n.target&&t.contains(n.target)}function De(e){return\"composedPath\"in e?e.composedPath()[0]:e.target}H.Item=O,H.ItemTitle=L,H.ItemSection=F,H.ItemHeader=B,H.ItemWithSubItems=R,$.Button=function({icon:t=\"chevron-down\",...n}){const{handleOpen:i,disabled:o}=s(M),a=r((e=>{e.stopPropagation(),i&&i()}),[i]);return e(A,{icon:t,iconRight:!0,onClick:a,disabled:o,...n})},$.ButtonIcon=T,$.Content=P,$.List=H,$.Item=O,$.ItemTitle=L,$.ItemSection=F,V.Button=A,V.ButtonIcon=N,V.Dropdown=$,Y.Title=E,Y.ButtonGroup=V,Y.Button=A,Y.ButtonIcon=N,Y.Dropdown=$,U.Title=E,U.ButtonGroup=V,U.Button=A,U.ButtonIcon=N,U.Dropdown=$,W.Content=function({className:t,children:n,...i}){const o=k(\"io-dialog-content\",t);return e(\"div\",{className:o,...i,children:n})},J.ButtonGroup=V,J.Button=A,J.ButtonIcon=N,J.Dropdown=$,q.ButtonGroup=V,q.Button=A,q.ButtonIcon=N,q.Dropdown=$,K.Header=U,K.Body=W,K.Footer=q;const Ee=\"input:not([type='hidden']):not([disabled]),[contenteditable]:not([contenteditable='false']),textarea:not([disabled])\";function Ie(e){return ne(e)&&e.matches(Ee)}function Ae(e){e.preventDefault(),e.stopPropagation()}function Me(e){return!!e&&(\"combobox\"===e.getAttribute(\"role\")&&Ie(e))}const Te=Math.min,Pe=Math.max,_e=Math.round,Oe=Math.floor,Le=e=>({x:e,y:e}),Fe={left:\"right\",right:\"left\",bottom:\"top\",top:\"bottom\"},Be={start:\"end\",end:\"start\"};function Re(e,t,n){return Pe(e,Te(t,n))}function je(e,t){return\"function\"==typeof e?e(t):e}function He(e){return e.split(\"-\")[0]}function ze(e){return e.split(\"-\")[1]}function $e(e){return\"x\"===e?\"y\":\"x\"}function Ve(e){return\"y\"===e?\"height\":\"width\"}function Ye(e){return[\"top\",\"bottom\"].includes(He(e))?\"y\":\"x\"}function Ue(e){return $e(Ye(e))}function We(e){return e.replace(/start|end/g,(e=>Be[e]))}function Je(e){return e.replace(/left|right|bottom|top/g,(e=>Fe[e]))}function qe(e){const{x:t,y:n,width:i,height:o}=e;return{width:i,height:o,top:n,left:t,right:t+i,bottom:n+o,x:t,y:n}}\n/*!\n* tabbable 6.2.0\n* @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE\n*/var Ke=[\"input:not([inert])\",\"select:not([inert])\",\"textarea:not([inert])\",\"a[href]:not([inert])\",\"button:not([inert])\",\"[tabindex]:not(slot):not([inert])\",\"audio[controls]:not([inert])\",\"video[controls]:not([inert])\",'[contenteditable]:not([contenteditable=\"false\"]):not([inert])',\"details>summary:first-of-type:not([inert])\",\"details:not([inert])\"].join(\",\"),Ge=\"undefined\"==typeof Element,Qe=Ge?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,Xe=!Ge&&Element.prototype.getRootNode?function(e){var t;return null==e||null===(t=e.getRootNode)||void 0===t?void 0:t.call(e)}:function(e){return null==e?void 0:e.ownerDocument},Ze=function e(t,n){var i;void 0===n&&(n=!0);var o=null==t||null===(i=t.getAttribute)||void 0===i?void 0:i.call(t,\"inert\");return\"\"===o||\"true\"===o||n&&t&&e(t.parentNode)},et=function e(t,n,i){for(var o=[],r=Array.from(t);r.length;){var a=r.shift();if(!Ze(a,!1))if(\"SLOT\"===a.tagName){var s=a.assignedElements(),c=e(s.length?s:a.children,!0,i);i.flatten?o.push.apply(o,c):o.push({scopeParent:a,candidates:c})}else{Qe.call(a,Ke)&&i.filter(a)&&(n||!t.includes(a))&&o.push(a);var l=a.shadowRoot||\"function\"==typeof i.getShadowRoot&&i.getShadowRoot(a),u=!Ze(l,!1)&&(!i.shadowRootFilter||i.shadowRootFilter(a));if(l&&u){var d=e(!0===l?a.children:l.children,!0,i);i.flatten?o.push.apply(o,d):o.push({scopeParent:a,candidates:d})}else r.unshift.apply(r,a.children)}}return o},tt=function(e){return!isNaN(parseInt(e.getAttribute(\"tabindex\"),10))},nt=function(e){if(!e)throw new Error(\"No node provided\");return e.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(e.tagName)||function(e){var t,n=null==e||null===(t=e.getAttribute)||void 0===t?void 0:t.call(e,\"contenteditable\");return\"\"===n||\"true\"===n}(e))&&!tt(e)?0:e.tabIndex},it=function(e,t){return e.tabIndex===t.tabIndex?e.documentOrder-t.documentOrder:e.tabIndex-t.tabIndex},ot=function(e){return\"INPUT\"===e.tagName},rt=function(e){return function(e){return ot(e)&&\"radio\"===e.type}(e)&&!function(e){if(!e.name)return!0;var t,n=e.form||Xe(e),i=function(e){return n.querySelectorAll('input[type=\"radio\"][name=\"'+e+'\"]')};if(\"undefined\"!=typeof window&&void 0!==window.CSS&&\"function\"==typeof window.CSS.escape)t=i(window.CSS.escape(e.name));else try{t=i(e.name)}catch(e){return console.error(\"Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s\",e.message),!1}var o=function(e,t){for(var n=0;n<e.length;n++)if(e[n].checked&&e[n].form===t)return e[n]}(t,e.form);return!o||o===e}(e)},at=function(e){var t=e.getBoundingClientRect(),n=t.width,i=t.height;return 0===n&&0===i},st=function(e,t){var n=t.displayCheck,i=t.getShadowRoot;if(\"hidden\"===getComputedStyle(e).visibility)return!0;var o=Qe.call(e,\"details>summary:first-of-type\")?e.parentElement:e;if(Qe.call(o,\"details:not([open]) *\"))return!0;if(n&&\"full\"!==n&&\"legacy-full\"!==n){if(\"non-zero-area\"===n)return at(e)}else{if(\"function\"==typeof i){for(var r=e;e;){var a=e.parentElement,s=Xe(e);if(a&&!a.shadowRoot&&!0===i(a))return at(e);e=e.assignedSlot?e.assignedSlot:a||s===e.ownerDocument?a:s.host}e=r}if(function(e){var t,n,i,o,r=e&&Xe(e),a=null===(t=r)||void 0===t?void 0:t.host,s=!1;if(r&&r!==e)for(s=!!(null!==(n=a)&&void 0!==n&&null!==(i=n.ownerDocument)&&void 0!==i&&i.contains(a)||null!=e&&null!==(o=e.ownerDocument)&&void 0!==o&&o.contains(e));!s&&a;){var c,l,u;s=!(null===(l=a=null===(c=r=Xe(a))||void 0===c?void 0:c.host)||void 0===l||null===(u=l.ownerDocument)||void 0===u||!u.contains(a))}return s}(e))return!e.getClientRects().length;if(\"legacy-full\"!==n)return!0}return!1},ct=function(e,t){return!(t.disabled||Ze(t)||function(e){return ot(e)&&\"hidden\"===e.type}(t)||st(t,e)||function(e){return\"DETAILS\"===e.tagName&&Array.prototype.slice.apply(e.children).some((function(e){return\"SUMMARY\"===e.tagName}))}(t)||function(e){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(e.tagName))for(var t=e.parentElement;t;){if(\"FIELDSET\"===t.tagName&&t.disabled){for(var n=0;n<t.children.length;n++){var i=t.children.item(n);if(\"LEGEND\"===i.tagName)return!!Qe.call(t,\"fieldset[disabled] *\")||!i.contains(e)}return!0}t=t.parentElement}return!1}(t))},lt=function(e,t){return!(rt(t)||nt(t)<0||!ct(e,t))},ut=function(e){var t=parseInt(e.getAttribute(\"tabindex\"),10);return!!(isNaN(t)||t>=0)},dt=function e(t){var n=[],i=[];return t.forEach((function(t,o){var r=!!t.scopeParent,a=r?t.scopeParent:t,s=function(e,t){var n=nt(e);return n<0&&t&&!tt(e)?0:n}(a,r),c=r?e(t.candidates):a;0===s?r?n.push.apply(n,c):n.push(a):i.push({documentOrder:o,tabIndex:s,item:t,isScope:r,content:c})})),i.sort(it).reduce((function(e,t){return t.isScope?e.push.apply(e,t.content):e.push(t.content),e}),[]).concat(n)},ft=function(e,t){var n;return n=(t=t||{}).getShadowRoot?et([e],t.includeContainer,{filter:lt.bind(null,t),flatten:!1,getShadowRoot:t.getShadowRoot,shadowRootFilter:ut}):function(e,t,n){if(Ze(e))return[];var i=Array.prototype.slice.apply(e.querySelectorAll(Ke));return t&&Qe.call(e,Ke)&&i.unshift(e),i.filter(n)}(e,t.includeContainer,lt.bind(null,t)),dt(n)},mt=function(e,t){if(t=t||{},!e)throw new Error(\"No node provided\");return!1!==Qe.call(e,Ke)&<(t,e)};function ht(e,t,n){let{reference:i,floating:o}=e;const r=Ye(t),a=Ue(t),s=Ve(a),c=He(t),l=\"y\"===r,u=i.x+i.width/2-o.width/2,d=i.y+i.height/2-o.height/2,f=i[s]/2-o[s]/2;let m;switch(c){case\"top\":m={x:u,y:i.y-o.height};break;case\"bottom\":m={x:u,y:i.y+i.height};break;case\"right\":m={x:i.x+i.width,y:d};break;case\"left\":m={x:i.x-o.width,y:d};break;default:m={x:i.x,y:i.y}}switch(ze(t)){case\"start\":m[a]-=f*(n&&l?-1:1);break;case\"end\":m[a]+=f*(n&&l?-1:1)}return m}async function pt(e,t){var n;void 0===t&&(t={});const{x:i,y:o,platform:r,rects:a,elements:s,strategy:c}=e,{boundary:l=\"clippingAncestors\",rootBoundary:u=\"viewport\",elementContext:d=\"floating\",altBoundary:f=!1,padding:m=0}=je(t,e),h=function(e){return\"number\"!=typeof e?function(e){return{top:0,right:0,bottom:0,left:0,...e}}(e):{top:e,right:e,bottom:e,left:e}}(m),p=s[f?\"floating\"===d?\"reference\":\"floating\":d],g=qe(await r.getClippingRect({element:null==(n=await(null==r.isElement?void 0:r.isElement(p)))||n?p:p.contextElement||await(null==r.getDocumentElement?void 0:r.getDocumentElement(s.floating)),boundary:l,rootBoundary:u,strategy:c})),v=\"floating\"===d?{x:i,y:o,width:a.floating.width,height:a.floating.height}:a.reference,y=await(null==r.getOffsetParent?void 0:r.getOffsetParent(s.floating)),w=await(null==r.isElement?void 0:r.isElement(y))&&await(null==r.getScale?void 0:r.getScale(y))||{x:1,y:1},b=qe(r.convertOffsetParentRelativeRectToViewportRelativeRect?await r.convertOffsetParentRelativeRectToViewportRelativeRect({elements:s,rect:v,offsetParent:y,strategy:c}):v);return{top:(g.top-b.top+h.top)/w.y,bottom:(b.bottom-g.bottom+h.bottom)/w.y,left:(g.left-b.left+h.left)/w.x,right:(b.right-g.right+h.right)/w.x}}function gt(e){const t=ue(e);let n=parseFloat(t.width)||0,i=parseFloat(t.height)||0;const o=ne(e),r=o?e.offsetWidth:n,a=o?e.offsetHeight:i,s=_e(n)!==r||_e(i)!==a;return s&&(n=r,i=a),{width:n,height:i,$:s}}function vt(e){return te(e)?e:e.contextElement}function yt(e){const t=vt(e);if(!ne(t))return Le(1);const n=t.getBoundingClientRect(),{width:i,height:o,$:r}=gt(t);let a=(r?_e(n.width):n.width)/i,s=(r?_e(n.height):n.height)/o;return a&&Number.isFinite(a)||(a=1),s&&Number.isFinite(s)||(s=1),{x:a,y:s}}const wt=Le(0);function bt(e){const t=X(e);return ce()&&t.visualViewport?{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}:wt}function kt(e,t,n,i){void 0===t&&(t=!1),void 0===n&&(n=!1);const o=e.getBoundingClientRect(),r=vt(e);let a=Le(1);t&&(i?te(i)&&(a=yt(i)):a=yt(e));const s=function(e,t,n){return void 0===t&&(t=!1),!(!n||t&&n!==X(e))&&t}(r,n,i)?bt(r):Le(0);let c=(o.left+s.x)/a.x,l=(o.top+s.y)/a.y,u=o.width/a.x,d=o.height/a.y;if(r){const e=X(r),t=i&&te(i)?X(i):i;let n=e,o=n.frameElement;for(;o&&i&&t!==n;){const e=yt(o),t=o.getBoundingClientRect(),i=ue(o),r=t.left+(o.clientLeft+parseFloat(i.paddingLeft))*e.x,a=t.top+(o.clientTop+parseFloat(i.paddingTop))*e.y;c*=e.x,l*=e.y,u*=e.x,d*=e.y,c+=r,l+=a,n=X(o),o=n.frameElement}}return qe({width:u,height:d,x:c,y:l})}const Ct=[\":popover-open\",\":modal\"];function Nt(e){return Ct.some((t=>{try{return e.matches(t)}catch(e){return!1}}))}function xt(e){return kt(Z(e)).left+de(e).scrollLeft}function St(e,t,n){let i;if(\"viewport\"===t)i=function(e,t){const n=X(e),i=Z(e),o=n.visualViewport;let r=i.clientWidth,a=i.clientHeight,s=0,c=0;if(o){r=o.width,a=o.height;const e=ce();(!e||e&&\"fixed\"===t)&&(s=o.offsetLeft,c=o.offsetTop)}return{width:r,height:a,x:s,y:c}}(e,n);else if(\"document\"===t)i=function(e){const t=Z(e),n=de(e),i=e.ownerDocument.body,o=Pe(t.scrollWidth,t.clientWidth,i.scrollWidth,i.clientWidth),r=Pe(t.scrollHeight,t.clientHeight,i.scrollHeight,i.clientHeight);let a=-n.scrollLeft+xt(e);const s=-n.scrollTop;return\"rtl\"===ue(i).direction&&(a+=Pe(t.clientWidth,i.clientWidth)-o),{width:o,height:r,x:a,y:s}}(Z(e));else if(te(t))i=function(e,t){const n=kt(e,!0,\"fixed\"===t),i=n.top+e.clientTop,o=n.left+e.clientLeft,r=ne(e)?yt(e):Le(1);return{width:e.clientWidth*r.x,height:e.clientHeight*r.y,x:o*r.x,y:i*r.y}}(t,n);else{const n=bt(e);i={...t,x:t.x-n.x,y:t.y-n.y}}return qe(i)}function Dt(e,t){const n=fe(e);return!(n===t||!te(n)||le(n))&&(\"fixed\"===ue(n).position||Dt(n,t))}function Et(e,t,n){const i=ne(t),o=Z(t),r=\"fixed\"===n,a=kt(e,!0,r,t);let s={scrollLeft:0,scrollTop:0};const c=Le(0);if(i||!i&&!r)if((\"body\"!==Q(t)||oe(o))&&(s=de(t)),i){const e=kt(t,!0,r,t);c.x=e.x+t.clientLeft,c.y=e.y+t.clientTop}else o&&(c.x=xt(o));return{x:a.left+s.scrollLeft-c.x,y:a.top+s.scrollTop-c.y,width:a.width,height:a.height}}function It(e){return\"static\"===ue(e).position}function At(e,t){return ne(e)&&\"fixed\"!==ue(e).position?t?t(e):e.offsetParent:null}function Mt(e,t){const n=X(e);if(Nt(e))return n;if(!ne(e)){let t=fe(e);for(;t&&!le(t);){if(te(t)&&!It(t))return t;t=fe(t)}return n}let i=At(e,t);for(;i&&re(i)&&It(i);)i=At(i,t);return i&&le(i)&&It(i)&&!se(i)?n:i||function(e){let t=fe(e);for(;ne(t)&&!le(t);){if(se(t))return t;if(ae(t))return null;t=fe(t)}return null}(e)||n}const Tt={convertOffsetParentRelativeRectToViewportRelativeRect:function(e){let{elements:t,rect:n,offsetParent:i,strategy:o}=e;const r=\"fixed\"===o,a=Z(i),s=!!t&&Nt(t.floating);if(i===a||s&&r)return n;let c={scrollLeft:0,scrollTop:0},l=Le(1);const u=Le(0),d=ne(i);if((d||!d&&!r)&&((\"body\"!==Q(i)||oe(a))&&(c=de(i)),ne(i))){const e=kt(i);l=yt(i),u.x=e.x+i.clientLeft,u.y=e.y+i.clientTop}return{width:n.width*l.x,height:n.height*l.y,x:n.x*l.x-c.scrollLeft*l.x+u.x,y:n.y*l.y-c.scrollTop*l.y+u.y}},getDocumentElement:Z,getClippingRect:function(e){let{element:t,boundary:n,rootBoundary:i,strategy:o}=e;const r=[...\"clippingAncestors\"===n?Nt(t)?[]:function(e,t){const n=t.get(e);if(n)return n;let i=he(e,[],!1).filter((e=>te(e)&&\"body\"!==Q(e))),o=null;const r=\"fixed\"===ue(e).position;let a=r?fe(e):e;for(;te(a)&&!le(a);){const t=ue(a),n=se(a);n||\"fixed\"!==t.position||(o=null),(r?!n&&!o:!n&&\"static\"===t.position&&o&&[\"absolute\",\"fixed\"].includes(o.position)||oe(a)&&!n&&Dt(e,a))?i=i.filter((e=>e!==a)):o=t,a=fe(a)}return t.set(e,i),i}(t,this._c):[].concat(n),i],a=r[0],s=r.reduce(((e,n)=>{const i=St(t,n,o);return e.top=Pe(i.top,e.top),e.right=Te(i.right,e.right),e.bottom=Te(i.bottom,e.bottom),e.left=Pe(i.left,e.left),e}),St(t,a,o));return{width:s.right-s.left,height:s.bottom-s.top,x:s.left,y:s.top}},getOffsetParent:Mt,getElementRects:async function(e){const t=this.getOffsetParent||Mt,n=this.getDimensions,i=await n(e.floating);return{reference:Et(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:i.width,height:i.height}}},getClientRects:function(e){return Array.from(e.getClientRects())},getDimensions:function(e){const{width:t,height:n}=gt(e);return{width:t,height:n}},getScale:yt,isElement:te,isRTL:function(e){return\"rtl\"===ue(e).direction}};function Pt(e,t,n,i){void 0===i&&(i={});const{ancestorScroll:o=!0,ancestorResize:r=!0,elementResize:a=\"function\"==typeof ResizeObserver,layoutShift:s=\"function\"==typeof IntersectionObserver,animationFrame:c=!1}=i,l=vt(e),u=o||r?[...l?he(l):[],...he(t)]:[];u.forEach((e=>{o&&e.addEventListener(\"scroll\",n,{passive:!0}),r&&e.addEventListener(\"resize\",n)}));const d=l&&s?function(e,t){let n,i=null;const o=Z(e);function r(){var e;clearTimeout(n),null==(e=i)||e.disconnect(),i=null}return function a(s,c){void 0===s&&(s=!1),void 0===c&&(c=1),r();const{left:l,top:u,width:d,height:f}=e.getBoundingClientRect();if(s||t(),!d||!f)return;const m={rootMargin:-Oe(u)+\"px \"+-Oe(o.clientWidth-(l+d))+\"px \"+-Oe(o.clientHeight-(u+f))+\"px \"+-Oe(l)+\"px\",threshold:Pe(0,Te(1,c))||1};let h=!0;function p(e){const t=e[0].intersectionRatio;if(t!==c){if(!h)return a();t?a(!1,t):n=setTimeout((()=>{a(!1,1e-7)}),1e3)}h=!1}try{i=new IntersectionObserver(p,{...m,root:o.ownerDocument})}catch(e){i=new IntersectionObserver(p,m)}i.observe(e)}(!0),r}(l,n):null;let f,m=-1,h=null;a&&(h=new ResizeObserver((e=>{let[i]=e;i&&i.target===l&&h&&(h.unobserve(t),cancelAnimationFrame(m),m=requestAnimationFrame((()=>{var e;null==(e=h)||e.observe(t)}))),n()})),l&&!c&&h.observe(l),h.observe(t));let p=c?kt(e):null;return c&&function t(){const i=kt(e);!p||i.x===p.x&&i.y===p.y&&i.width===p.width&&i.height===p.height||n();p=i,f=requestAnimationFrame(t)}(),n(),()=>{var e;u.forEach((e=>{o&&e.removeEventListener(\"scroll\",n),r&&e.removeEventListener(\"resize\",n)})),null==d||d(),null==(e=h)||e.disconnect(),h=null,c&&cancelAnimationFrame(f)}}const _t=function(e){return void 0===e&&(e=0),{name:\"offset\",options:e,async fn(t){var n,i;const{x:o,y:r,placement:a,middlewareData:s}=t,c=await async function(e,t){const{placement:n,platform:i,elements:o}=e,r=await(null==i.isRTL?void 0:i.isRTL(o.floating)),a=He(n),s=ze(n),c=\"y\"===Ye(n),l=[\"left\",\"top\"].includes(a)?-1:1,u=r&&c?-1:1,d=je(t,e);let{mainAxis:f,crossAxis:m,alignmentAxis:h}=\"number\"==typeof d?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:0,crossAxis:0,alignmentAxis:null,...d};return s&&\"number\"==typeof h&&(m=\"end\"===s?-1*h:h),c?{x:m*u,y:f*l}:{x:f*l,y:m*u}}(t,e);return a===(null==(n=s.offset)?void 0:n.placement)&&null!=(i=s.arrow)&&i.alignmentOffset?{}:{x:o+c.x,y:r+c.y,data:{...c,placement:a}}}}},Ot=function(e){return void 0===e&&(e={}),{name:\"shift\",options:e,async fn(t){const{x:n,y:i,placement:o}=t,{mainAxis:r=!0,crossAxis:a=!1,limiter:s={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...c}=je(e,t),l={x:n,y:i},u=await pt(t,c),d=Ye(He(o)),f=$e(d);let m=l[f],h=l[d];if(r){const e=\"y\"===f?\"bottom\":\"right\";m=Re(m+u[\"y\"===f?\"top\":\"left\"],m,m-u[e])}if(a){const e=\"y\"===d?\"bottom\":\"right\";h=Re(h+u[\"y\"===d?\"top\":\"left\"],h,h-u[e])}const p=s.fn({...t,[f]:m,[d]:h});return{...p,data:{x:p.x-n,y:p.y-i}}}}},Lt=function(e){return void 0===e&&(e={}),{name:\"flip\",options:e,async fn(t){var n,i;const{placement:o,middlewareData:r,rects:a,initialPlacement:s,platform:c,elements:l}=t,{mainAxis:u=!0,crossAxis:d=!0,fallbackPlacements:f,fallbackStrategy:m=\"bestFit\",fallbackAxisSideDirection:h=\"none\",flipAlignment:p=!0,...g}=je(e,t);if(null!=(n=r.arrow)&&n.alignmentOffset)return{};const v=He(o),y=He(s)===s,w=await(null==c.isRTL?void 0:c.isRTL(l.floating)),b=f||(y||!p?[Je(s)]:function(e){const t=Je(e);return[We(e),t,We(t)]}(s));f||\"none\"===h||b.push(...function(e,t,n,i){const o=ze(e);let r=function(e,t,n){const i=[\"left\",\"right\"],o=[\"right\",\"left\"],r=[\"top\",\"bottom\"],a=[\"bottom\",\"top\"];switch(e){case\"top\":case\"bottom\":return n?t?o:i:t?i:o;case\"left\":case\"right\":return t?r:a;default:return[]}}(He(e),\"start\"===n,i);return o&&(r=r.map((e=>e+\"-\"+o)),t&&(r=r.concat(r.map(We)))),r}(s,p,h,w));const k=[s,...b],C=await pt(t,g),N=[];let x=(null==(i=r.flip)?void 0:i.overflows)||[];if(u&&N.push(C[v]),d){const e=function(e,t,n){void 0===n&&(n=!1);const i=ze(e),o=Ue(e),r=Ve(o);let a=\"x\"===o?i===(n?\"end\":\"start\")?\"right\":\"left\":\"start\"===i?\"bottom\":\"top\";return t.reference[r]>t.floating[r]&&(a=Je(a)),[a,Je(a)]}(o,a,w);N.push(C[e[0]],C[e[1]])}if(x=[...x,{placement:o,overflows:N}],!N.every((e=>e<=0))){var S,D;const e=((null==(S=r.flip)?void 0:S.index)||0)+1,t=k[e];if(t)return{data:{index:e,overflows:x},reset:{placement:t}};let n=null==(D=x.filter((e=>e.overflows[0]<=0)).sort(((e,t)=>e.overflows[1]-t.overflows[1]))[0])?void 0:D.placement;if(!n)switch(m){case\"bestFit\":{var E;const e=null==(E=x.map((e=>[e.placement,e.overflows.filter((e=>e>0)).reduce(((e,t)=>e+t),0)])).sort(((e,t)=>e[1]-t[1]))[0])?void 0:E[0];e&&(n=e);break}case\"initialPlacement\":n=s}if(o!==n)return{reset:{placement:n}}}return{}}}},Ft=(e,t,n)=>{const i=new Map,o={platform:Tt,...n},r={...o.platform,_c:i};return(async(e,t,n)=>{const{placement:i=\"bottom\",strategy:o=\"absolute\",middleware:r=[],platform:a}=n,s=r.filter(Boolean),c=await(null==a.isRTL?void 0:a.isRTL(t));let l=await a.getElementRects({reference:e,floating:t,strategy:o}),{x:u,y:d}=ht(l,i,c),f=i,m={},h=0;for(let n=0;n<s.length;n++){const{name:r,fn:p}=s[n],{x:g,y:v,data:y,reset:w}=await p({x:u,y:d,initialPlacement:i,placement:f,strategy:o,middlewareData:m,rects:l,platform:a,elements:{reference:e,floating:t}});u=null!=g?g:u,d=null!=v?v:d,m={...m,[r]:{...m[r],...y}},w&&h<=50&&(h++,\"object\"==typeof w&&(w.placement&&(f=w.placement),w.rects&&(l=!0===w.rects?await a.getElementRects({reference:e,floating:t,strategy:o}):w.rects),({x:u,y:d}=ht(l,f,c))),n=-1)}return{x:u,y:d,placement:f,strategy:o,middlewareData:m}})(e,t,{...o,platform:r})};var Bt=\"undefined\"!=typeof document?f:u;function Rt(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(\"function\"==typeof e&&e.toString()===t.toString())return!0;let n,i,o;if(e&&t&&\"object\"==typeof e){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(i=n;0!=i--;)if(!Rt(e[i],t[i]))return!1;return!0}if(o=Object.keys(e),n=o.length,n!==Object.keys(t).length)return!1;for(i=n;0!=i--;)if(!{}.hasOwnProperty.call(t,o[i]))return!1;for(i=n;0!=i--;){const n=o[i];if((\"_owner\"!==n||!e.$$typeof)&&!Rt(e[n],t[n]))return!1}return!0}return e!=e&&t!=t}function jt(e){if(\"undefined\"==typeof window)return 1;return(e.ownerDocument.defaultView||window).devicePixelRatio||1}function Ht(e,t){const n=jt(e);return Math.round(t*n)/n}function zt(e){const t=i.useRef(e);return Bt((()=>{t.current=e})),t}const $t=(e,t)=>({...Ot(e),options:[e,t]}),Vt=(e,t)=>({...Lt(e),options:[e,t]});function Yt(e){return i.useMemo((()=>e.every((e=>null==e))?null:t=>{e.forEach((e=>{\"function\"==typeof e?e(t):null!=e&&(e.current=t)}))}),e)}const Ut={...i},Wt=Ut.useInsertionEffect||(e=>e());function Jt(e){const t=i.useRef((()=>{if(\"production\"!==process.env.NODE_ENV)throw new Error(\"Cannot call an event handler while rendering.\")}));return Wt((()=>{t.current=e})),i.useCallback((function(){for(var e=arguments.length,n=new Array(e),i=0;i<e;i++)n[i]=arguments[i];return null==t.current?void 0:t.current(...n)}),[])}const qt=\"ArrowUp\",Kt=\"ArrowDown\",Gt=\"ArrowLeft\",Qt=\"ArrowRight\";function Xt(e,t,n){return Math.floor(e/t)!==n}function Zt(e,t){return t<0||t>=e.current.length}function en(e,t){return nn(e,{disabledIndices:t})}function tn(e,t){return nn(e,{decrement:!0,startingIndex:e.current.length,disabledIndices:t})}function nn(e,t){let{startingIndex:n=-1,decrement:i=!1,disabledIndices:o,amount:r=1}=void 0===t?{}:t;const a=e.current;let s=n;do{s+=i?-r:r}while(s>=0&&s<=a.length-1&&an(a,s,o));return s}function on(e,t,n,i,o){if(-1===e)return-1;const r=n.indexOf(e),a=t[e];switch(o){case\"tl\":return r;case\"tr\":return a?r+a.width-1:r;case\"bl\":return a?r+(a.height-1)*i:r;case\"br\":return n.lastIndexOf(e)}}function rn(e,t){return t.flatMap(((t,n)=>e.includes(t)?[n]:[]))}function an(e,t,n){if(n)return n.includes(t);const i=e[t];return null==i||i.hasAttribute(\"disabled\")||\"true\"===i.getAttribute(\"aria-disabled\")}var sn=\"undefined\"!=typeof document?f:u;function cn(e,t){const n=e.compareDocumentPosition(t);return n&Node.DOCUMENT_POSITION_FOLLOWING||n&Node.DOCUMENT_POSITION_CONTAINED_BY?-1:n&Node.DOCUMENT_POSITION_PRECEDING||n&Node.DOCUMENT_POSITION_CONTAINS?1:0}const ln=i.createContext({register:()=>{},unregister:()=>{},map:new Map,elementsRef:{current:[]}});function un(e){const{children:t,elementsRef:n,labelsRef:o}=e,[r,a]=i.useState((()=>new Map)),s=i.useCallback((e=>{a((t=>new Map(t).set(e,null)))}),[]),c=i.useCallback((e=>{a((t=>{const n=new Map(t);return n.delete(e),n}))}),[]);return sn((()=>{const e=new Map(r);Array.from(e.keys()).sort(cn).forEach(((t,n)=>{e.set(t,n)})),function(e,t){if(e.size!==t.size)return!1;for(const[n,i]of e.entries())if(i!==t.get(n))return!1;return!0}(r,e)||a(e)}),[r]),i.createElement(ln.Provider,{value:i.useMemo((()=>({register:s,unregister:c,map:r,elementsRef:n,labelsRef:o})),[s,c,r,n,o])},t)}function dn(e){void 0===e&&(e={});const{label:t}=e,{register:n,unregister:o,map:r,elementsRef:a,labelsRef:s}=i.useContext(ln),[c,l]=i.useState(null),u=i.useRef(null),d=i.useCallback((e=>{if(u.current=e,null!==c&&(a.current[c]=e,s)){var n;const i=void 0!==t;s.current[c]=i?t:null!=(n=null==e?void 0:e.textContent)?n:null}}),[c,a,s,t]);return sn((()=>{const e=u.current;if(e)return n(e),()=>{o(e)}}),[n,o]),sn((()=>{const e=u.current?r.get(u.current):null;null!=e&&l(e)}),[r]),i.useMemo((()=>({ref:d,index:null==c?-1:c})),[c,d])}function fn(){return fn=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},fn.apply(this,arguments)}let mn=!1,hn=0;const pn=()=>\"floating-ui-\"+Math.random().toString(36).slice(2,6)+hn++;const gn=Ut.useId||function(){const[e,t]=i.useState((()=>mn?pn():void 0));return sn((()=>{null==e&&t(pn())}),[]),i.useEffect((()=>{mn=!0}),[]),e};let vn;function yn(){for(var e,t=arguments.length,n=new Array(t),i=0;i<t;i++)n[i]=arguments[i];const o=\"Floating UI: \"+n.join(\" \");var r;null!=(e=vn)&&e.has(o)||(null==(r=vn)||r.add(o),console.warn(o))}function wn(){const e=new Map;return{emit(t,n){var i;null==(i=e.get(t))||i.forEach((e=>e(n)))},on(t,n){e.set(t,[...e.get(t)||[],n])},off(t,n){var i;e.set(t,(null==(i=e.get(t))?void 0:i.filter((e=>e!==n)))||[])}}}\"production\"!==process.env.NODE_ENV&&(vn=new Set);const bn=i.createContext(null),kn=i.createContext(null),Cn=()=>{var e;return(null==(e=i.useContext(bn))?void 0:e.id)||null},Nn=()=>i.useContext(kn);function xn(e){const{children:t,id:n}=e,o=Cn();return i.createElement(bn.Provider,{value:i.useMemo((()=>({id:n,parentId:o})),[n,o])},t)}function Sn(e){const{children:t}=e,n=i.useRef([]),o=i.useCallback((e=>{n.current=[...n.current,e]}),[]),r=i.useCallback((e=>{n.current=n.current.filter((t=>t!==e))}),[]),a=i.useState((()=>wn()))[0];return i.createElement(kn.Provider,{value:i.useMemo((()=>({nodesRef:n,addNode:o,removeNode:r,events:a})),[o,r,a])},t)}function Dn(e){return\"data-floating-ui-\"+e}function En(e){const t=d(e);return sn((()=>{t.current=e})),t}const In=Dn(\"safe-polygon\");function An(e,t,n){return n&&!Ne(n)?0:\"number\"==typeof e?e:null==e?void 0:e[t]}let Mn=0;function Tn(e,t){void 0===t&&(t={});const{preventScroll:n=!1,cancelPrevious:i=!0,sync:o=!1}=t;i&&cancelAnimationFrame(Mn);const r=()=>null==e?void 0:e.focus({preventScroll:n});o?r():Mn=requestAnimationFrame(r)}function Pn(e,t){let n=e.filter((e=>{var n;return e.parentId===t&&(null==(n=e.context)?void 0:n.open)})),i=n;for(;i.length;)i=e.filter((e=>{var t;return null==(t=i)?void 0:t.some((t=>{var n;return e.parentId===t.id&&(null==(n=e.context)?void 0:n.open)}))})),n=n.concat(i);return n}let _n=new WeakMap,On=new WeakSet,Ln={},Fn=0;const Bn=e=>e&&(e.host||Bn(e.parentNode)),Rn=(e,t)=>t.map((t=>{if(e.contains(t))return t;const n=Bn(t);return e.contains(n)?n:null})).filter((e=>null!=e));function jn(e,t,n){void 0===t&&(t=!1),void 0===n&&(n=!1);const i=xe(e[0]).body;return function(e,t,n,i){const o=\"data-floating-ui-inert\",r=i?\"inert\":n?\"aria-hidden\":null,a=Rn(t,e),s=new Set,c=new Set(a),l=[];Ln[o]||(Ln[o]=new WeakMap);const u=Ln[o];return a.forEach((function e(t){t&&!s.has(t)&&(s.add(t),t.parentNode&&e(t.parentNode))})),function e(t){t&&!c.has(t)&&[].forEach.call(t.children,(t=>{if(\"script\"!==Q(t))if(s.has(t))e(t);else{const e=r?t.getAttribute(r):null,n=null!==e&&\"false\"!==e,i=(_n.get(t)||0)+1,a=(u.get(t)||0)+1;_n.set(t,i),u.set(t,a),l.push(t),1===i&&n&&On.add(t),1===a&&t.setAttribute(o,\"\"),!n&&r&&t.setAttribute(r,\"true\")}}))}(t),s.clear(),Fn++,()=>{l.forEach((e=>{const t=(_n.get(e)||0)-1,n=(u.get(e)||0)-1;_n.set(e,t),u.set(e,n),t||(!On.has(e)&&r&&e.removeAttribute(r),On.delete(e)),n||e.removeAttribute(o)})),Fn--,Fn||(_n=new WeakMap,_n=new WeakMap,On=new WeakSet,Ln={})}}(e.concat(Array.from(i.querySelectorAll(\"[aria-live]\"))),i,t,n)}const Hn=()=>({getShadowRoot:!0,displayCheck:\"function\"==typeof ResizeObserver&&ResizeObserver.toString().includes(\"[native code]\")?\"full\":\"none\"});function zn(e,t){const n=ft(e,Hn());\"prev\"===t&&n.reverse();const i=n.indexOf(pe(xe(e)));return n.slice(i+1)[0]}function $n(e,t){const n=t||e.currentTarget,i=e.relatedTarget;return!i||!ge(n,i)}const Vn={border:0,clip:\"rect(0 0 0 0)\",height:\"1px\",margin:\"-1px\",overflow:\"hidden\",padding:0,position:\"fixed\",whiteSpace:\"nowrap\",width:\"1px\",top:0,left:0};function Yn(e){\"Tab\"===e.key&&(e.target,clearTimeout(undefined))}const Un=i.forwardRef((function(e,t){const[n,o]=i.useState();sn((()=>(ke()&&o(\"button\"),document.addEventListener(\"keydown\",Yn),()=>{document.removeEventListener(\"keydown\",Yn)})),[]);const r={ref:t,tabIndex:0,role:n,\"aria-hidden\":!n||void 0,[Dn(\"focus-guard\")]:\"\",style:Vn};return i.createElement(\"span\",fn({},e,r))})),Wn=i.createContext(null),Jn=\"data-floating-ui-focusable\";function qn(e){return e?e.hasAttribute(Jn)?e:e.querySelector(\"[\"+Jn+\"]\")||e:null}const Kn=20;let Gn=[];function Qn(e){Gn=Gn.filter((e=>e.isConnected));let t=e;if(t&&\"body\"!==Q(t)){if(!mt(t,Hn())){const e=ft(t,Hn())[0];e&&(t=e)}Gn.push(t),Gn.length>Kn&&(Gn=Gn.slice(-20))}}function Xn(){return Gn.slice().reverse().find((e=>e.isConnected))}const Zn=i.forwardRef((function(e,t){return i.createElement(\"button\",fn({},e,{type:\"button\",ref:t,tabIndex:-1,style:Vn}))}));function ei(e){const{context:t,children:n,disabled:o=!1,order:r=[\"content\"],guards:a=!0,initialFocus:s=0,returnFocus:c=!0,restoreFocus:l=!1,modal:u=!0,visuallyHiddenDismiss:d=!1,closeOnFocusOut:f=!0}=e,{open:m,refs:h,nodeId:p,onOpenChange:g,events:v,dataRef:y,floatingId:w,elements:{domReference:b,floating:k}}=t,C=\"number\"==typeof s&&s<0,N=Me(b)&&C,x=\"undefined\"==typeof HTMLElement||!(\"inert\"in HTMLElement.prototype)||a,S=En(r),D=En(s),E=En(c),I=Nn(),A=i.useContext(Wn),M=i.useRef(null),T=i.useRef(null),P=i.useRef(!1),_=i.useRef(!1),O=i.useRef(-1),L=null!=A,F=qn(k),B=Jt((function(e){return void 0===e&&(e=F),e?ft(e,Hn()):[]})),R=Jt((e=>{const t=B(e);return S.current.map((e=>b&&\"reference\"===e?b:F&&\"floating\"===e?F:t)).filter(Boolean).flat()}));function j(e){return!o&&d&&u?i.createElement(Zn,{ref:\"start\"===e?M:T,onClick:e=>g(!1,e.nativeEvent)},\"string\"==typeof d?d:\"Dismiss\"):null}i.useEffect((()=>{if(o)return;if(!u)return;function e(e){if(\"Tab\"===e.key){ge(F,pe(xe(F)))&&0===B().length&&!N&&Ae(e);const t=R(),n=De(e);\"reference\"===S.current[0]&&n===b&&(Ae(e),e.shiftKey?Tn(t[t.length-1]):Tn(t[1])),\"floating\"===S.current[1]&&n===F&&e.shiftKey&&(Ae(e),Tn(t[0]))}}const t=xe(F);return t.addEventListener(\"keydown\",e),()=>{t.removeEventListener(\"keydown\",e)}}),[o,b,F,u,S,N,B,R]),i.useEffect((()=>{if(!o&&k)return k.addEventListener(\"focusin\",e),()=>{k.removeEventListener(\"focusin\",e)};function e(e){const t=De(e),n=B().indexOf(t);-1!==n&&(O.current=n)}}),[o,k,B]),i.useEffect((()=>{if(!o&&f)return k&&ne(b)?(b.addEventListener(\"focusout\",t),b.addEventListener(\"pointerdown\",e),k.addEventListener(\"focusout\",t),()=>{b.removeEventListener(\"focusout\",t),b.removeEventListener(\"pointerdown\",e),k.removeEventListener(\"focusout\",t)}):void 0;function e(){_.current=!0,setTimeout((()=>{_.current=!1}))}function t(e){const t=e.relatedTarget;queueMicrotask((()=>{const n=!(ge(b,t)||ge(k,t)||ge(t,k)||ge(null==A?void 0:A.portalNode,t)||null!=t&&t.hasAttribute(Dn(\"focus-guard\"))||I&&(Pn(I.nodesRef.current,p).find((e=>{var n,i;return ge(null==(n=e.context)?void 0:n.elements.floating,t)||ge(null==(i=e.context)?void 0:i.elements.domReference,t)}))||function(e,t){var n;let i=[],o=null==(n=e.find((e=>e.id===t)))?void 0:n.parentId;for(;o;){const t=e.find((e=>e.id===o));o=null==t?void 0:t.parentId,t&&(i=i.concat(t))}return i}(I.nodesRef.current,p).find((e=>{var n,i;return(null==(n=e.context)?void 0:n.elements.floating)===t||(null==(i=e.context)?void 0:i.elements.domReference)===t}))));if(l&&n&&pe(xe(F))===xe(F).body){ne(F)&&F.focus();const e=O.current,t=B(),n=t[e]||t[t.length-1]||F;ne(n)&&n.focus()}!N&&u||!t||!n||_.current||t===Xn()||(P.current=!0,g(!1,e,\"focus-out\"))}))}}),[o,b,k,F,u,p,I,A,g,f,l,B,N]),i.useEffect((()=>{var e;if(o)return;const t=Array.from((null==A||null==(e=A.portalNode)?void 0:e.querySelectorAll(\"[\"+Dn(\"portal\")+\"]\"))||[]);if(k){const e=[k,...t,M.current,T.current,S.current.includes(\"reference\")||N?b:null].filter((e=>null!=e)),n=u||N?jn(e,x,!x):jn(e);return()=>{n()}}}),[o,b,k,u,S,A,N,x]),sn((()=>{if(o||!ne(F))return;const e=pe(xe(F));queueMicrotask((()=>{const t=R(F),n=D.current,i=(\"number\"==typeof n?t[n]:n.current)||F,o=ge(F,e);C||o||!m||Tn(i,{preventScroll:i===F})}))}),[o,m,F,C,R,D]),sn((()=>{if(o||!F)return;let e=!1;const t=xe(F),n=pe(t);let i=y.current.openEvent;function r(t){let{open:n,reason:o,event:r,nested:a}=t;n&&(i=r),\"escape-key\"===o&&h.domReference.current&&Qn(h.domReference.current),\"hover\"===o&&\"mouseleave\"===r.type&&(P.current=!0),\"outside-press\"===o&&(a?(P.current=!1,e=!0):P.current=!(we(r)||be(r)))}Qn(n),v.on(\"openchange\",r);const a=t.createElement(\"span\");return a.setAttribute(\"tabindex\",\"-1\"),a.setAttribute(\"aria-hidden\",\"true\"),Object.assign(a.style,Vn),L&&b&&b.insertAdjacentElement(\"afterend\",a),()=>{v.off(\"openchange\",r);const n=pe(t),o=ge(k,n)||I&&Pn(I.nodesRef.current,p).some((e=>{var t;return ge(null==(t=e.context)?void 0:t.elements.floating,n)}));(o||i&&[\"click\",\"mousedown\"].includes(i.type))&&h.domReference.current&&Qn(h.domReference.current);const s=\"boolean\"==typeof E.current?Xn()||a:E.current.current||a;queueMicrotask((()=>{E.current&&!P.current&&ne(s)&&(s===n||n===t.body||o)&&s.focus({preventScroll:e}),a.remove()}))}}),[o,k,F,E,y,h,v,I,p,L,b]),i.useEffect((()=>{queueMicrotask((()=>{P.current=!1}))}),[o]),sn((()=>{if(!o&&A)return A.setFocusManagerState({modal:u,closeOnFocusOut:f,open:m,onOpenChange:g,refs:h}),()=>{A.setFocusManagerState(null)}}),[o,A,u,m,g,h,f]),sn((()=>{if(o)return;if(!F)return;if(\"function\"!=typeof MutationObserver)return;if(C)return;const e=()=>{const e=F.getAttribute(\"tabindex\"),t=B(),n=pe(xe(k)),i=t.indexOf(n);-1!==i&&(O.current=i),S.current.includes(\"floating\")||n!==h.domReference.current&&0===t.length?\"0\"!==e&&F.setAttribute(\"tabindex\",\"0\"):\"-1\"!==e&&F.setAttribute(\"tabindex\",\"-1\")};e();const t=new MutationObserver(e);return t.observe(F,{childList:!0,subtree:!0,attributes:!0}),()=>{t.disconnect()}}),[o,k,F,h,S,B,C]);const H=!o&&x&&(!u||!N)&&(L||u);return i.createElement(i.Fragment,null,H&&i.createElement(Un,{\"data-type\":\"inside\",ref:null==A?void 0:A.beforeInsideRef,onFocus:e=>{if(u){const e=R();Tn(\"reference\"===r[0]?e[0]:e[e.length-1])}else if(null!=A&&A.preserveTabOrder&&A.portalNode)if(P.current=!1,$n(e,A.portalNode)){const e=zn(document.body,\"next\")||b;null==e||e.focus()}else{var t;null==(t=A.beforeOutsideRef.current)||t.focus()}}}),!N&&j(\"start\"),n,j(\"end\"),H&&i.createElement(Un,{\"data-type\":\"inside\",ref:null==A?void 0:A.afterInsideRef,onFocus:e=>{if(u)Tn(R()[0]);else if(null!=A&&A.preserveTabOrder&&A.portalNode)if(f&&(P.current=!0),$n(e,A.portalNode)){const e=zn(document.body,\"prev\")||b;null==e||e.focus()}else{var t;null==(t=A.afterOutsideRef.current)||t.focus()}}}))}function ti(e){return ne(e.target)&&\"BUTTON\"===e.target.tagName}function ni(e){return Ie(e)}const ii={pointerdown:\"onPointerDown\",mousedown:\"onMouseDown\",click:\"onClick\"},oi={pointerdown:\"onPointerDownCapture\",mousedown:\"onMouseDownCapture\",click:\"onClickCapture\"},ri=e=>{var t,n;return{escapeKey:\"boolean\"==typeof e?e:null!=(t=null==e?void 0:e.escapeKey)&&t,outsidePress:\"boolean\"==typeof e?e:null==(n=null==e?void 0:e.outsidePress)||n}};function ai(e){const{open:t=!1,onOpenChange:n,elements:o}=e,r=gn(),a=i.useRef({}),[s]=i.useState((()=>wn())),c=null!=Cn();if(\"production\"!==process.env.NODE_ENV){const e=o.reference;e&&!te(e)&&function(){for(var e,t=arguments.length,n=new Array(t),i=0;i<t;i++)n[i]=arguments[i];const o=\"Floating UI: \"+n.join(\" \");var r;null!=(e=vn)&&e.has(o)||(null==(r=vn)||r.add(o),console.error(o))}(\"Cannot pass a virtual element to the `elements.reference` option,\",\"as it must be a real DOM element. Use `refs.setPositionReference()`\",\"instead.\")}const[l,u]=i.useState(o.reference),d=Jt(((e,t,i)=>{a.current.openEvent=e?t:void 0,s.emit(\"openchange\",{open:e,event:t,reason:i,nested:c}),null==n||n(e,t,i)})),f=i.useMemo((()=>({setPositionReference:u})),[]),m=i.useMemo((()=>({reference:l||o.reference||null,floating:o.floating||null,domReference:o.reference})),[l,o.reference,o.floating]);return i.useMemo((()=>({dataRef:a,open:t,onOpenChange:d,elements:m,events:s,floatingId:r,refs:f})),[t,d,m,s,r,f])}function si(e){void 0===e&&(e={});const{nodeId:t}=e,n=ai({...e,elements:{reference:null,floating:null,...e.elements}}),o=e.rootContext||n,r=o.elements,[a,s]=i.useState(null),[c,l]=i.useState(null),u=(null==r?void 0:r.domReference)||a,d=i.useRef(null),f=Nn();sn((()=>{u&&(d.current=u)}),[u]);const m=function(e){void 0===e&&(e={});const{placement:t=\"bottom\",strategy:n=\"absolute\",middleware:o=[],platform:r,elements:{reference:a,floating:s}={},transform:c=!0,whileElementsMounted:l,open:u}=e,[d,f]=i.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[m,h]=i.useState(o);Rt(m,o)||h(o);const[g,v]=i.useState(null),[y,w]=i.useState(null),b=i.useCallback((e=>{e!==x.current&&(x.current=e,v(e))}),[]),k=i.useCallback((e=>{e!==S.current&&(S.current=e,w(e))}),[]),C=a||g,N=s||y,x=i.useRef(null),S=i.useRef(null),D=i.useRef(d),E=null!=l,I=zt(l),A=zt(r),M=zt(u),T=i.useCallback((()=>{if(!x.current||!S.current)return;const e={placement:t,strategy:n,middleware:m};A.current&&(e.platform=A.current),Ft(x.current,S.current,e).then((e=>{const t={...e,isPositioned:!1!==M.current};P.current&&!Rt(D.current,t)&&(D.current=t,p.flushSync((()=>{f(t)})))}))}),[m,t,n,A,M]);Bt((()=>{!1===u&&D.current.isPositioned&&(D.current.isPositioned=!1,f((e=>({...e,isPositioned:!1}))))}),[u]);const P=i.useRef(!1);Bt((()=>(P.current=!0,()=>{P.current=!1})),[]),Bt((()=>{if(C&&(x.current=C),N&&(S.current=N),C&&N){if(I.current)return I.current(C,N,T);T()}}),[C,N,T,I,E]);const _=i.useMemo((()=>({reference:x,floating:S,setReference:b,setFloating:k})),[b,k]),O=i.useMemo((()=>({reference:C,floating:N})),[C,N]),L=i.useMemo((()=>{const e={position:n,left:0,top:0};if(!O.floating)return e;const t=Ht(O.floating,d.x),i=Ht(O.floating,d.y);return c?{...e,transform:\"translate(\"+t+\"px, \"+i+\"px)\",...jt(O.floating)>=1.5&&{willChange:\"transform\"}}:{position:n,left:t,top:i}}),[n,c,O.floating,d.x,d.y]);return i.useMemo((()=>({...d,update:T,refs:_,elements:O,floatingStyles:L})),[d,T,_,O,L])}({...e,elements:{...r,...c&&{reference:c}}}),h=i.useCallback((e=>{const t=te(e)?{getBoundingClientRect:()=>e.getBoundingClientRect(),contextElement:e}:e;l(t),m.refs.setReference(t)}),[m.refs]),g=i.useCallback((e=>{(te(e)||null===e)&&(d.current=e,s(e)),(te(m.refs.reference.current)||null===m.refs.reference.current||null!==e&&!te(e))&&m.refs.setReference(e)}),[m.refs]),v=i.useMemo((()=>({...m.refs,setReference:g,setPositionReference:h,domReference:d})),[m.refs,g,h]),y=i.useMemo((()=>({...m.elements,domReference:u})),[m.elements,u]),w=i.useMemo((()=>({...m,...o,refs:v,elements:y,nodeId:t})),[m,v,y,t,o]);return sn((()=>{o.dataRef.current.floatingContext=w;const e=null==f?void 0:f.nodesRef.current.find((e=>e.id===t));e&&(e.context=w)})),i.useMemo((()=>({...m,context:w,refs:v,elements:y})),[m,v,y,w])}const ci=\"active\",li=\"selected\";function ui(e,t,n){const i=new Map,o=\"item\"===n;let r=e;if(o&&e){const{[ci]:t,[li]:n,...i}=e;r=i}return{...\"floating\"===n&&{tabIndex:-1,[Jn]:\"\"},...r,...t.map((t=>{const i=t?t[n]:null;return\"function\"==typeof i?e?i(e):null:i})).concat(e).reduce(((e,t)=>t?(Object.entries(t).forEach((t=>{let[n,r]=t;var a;o&&[ci,li].includes(n)||(0===n.indexOf(\"on\")?(i.has(n)||i.set(n,[]),\"function\"==typeof r&&(null==(a=i.get(n))||a.push(r),e[n]=function(){for(var e,t=arguments.length,o=new Array(t),r=0;r<t;r++)o[r]=arguments[r];return null==(e=i.get(n))?void 0:e.map((e=>e(...o))).find((e=>void 0!==e))})):e[n]=r)})),e):e),{})}}let di=!1;function fi(e,t,n){switch(e){case\"vertical\":return t;case\"horizontal\":return n;default:return t||n}}function mi(e,t){return fi(t,e===qt||e===Kt,e===Gt||e===Qt)}function hi(e,t,n){return fi(t,e===Kt,n?e===Gt:e===Qt)||\"Enter\"===e||\" \"===e||\"\"===e}function pi(e,t,n){return fi(t,n?e===Qt:e===Gt,e===qt)}function gi(e,t){const{open:n,onOpenChange:o,elements:r}=e,{listRef:a,activeIndex:s,onNavigate:c=(()=>{}),enabled:l=!0,selectedIndex:u=null,allowEscape:d=!1,loop:f=!1,nested:m=!1,rtl:h=!1,virtual:p=!1,focusItemOnOpen:g=\"auto\",focusItemOnHover:v=!0,openOnArrowKeyDown:y=!0,disabledIndices:w,orientation:b=\"vertical\",cols:k=1,scrollItemIntoView:C=!0,virtualItemRef:N,itemSizes:x,dense:S=!1}=t;\"production\"!==process.env.NODE_ENV&&(d&&(f||yn(\"`useListNavigation` looping must be enabled to allow escaping.\"),p||yn(\"`useListNavigation` must be virtual to allow escaping.\")),\"vertical\"===b&&k>1&&yn(\"In grid list navigation mode (`cols` > 1), the `orientation` should\",'be either \"horizontal\" or \"both\".'));const D=En(qn(r.floating)),E=Cn(),I=Nn(),A=Jt(c),M=Me(r.domReference),T=i.useRef(g),P=i.useRef(null!=u?u:-1),_=i.useRef(null),O=i.useRef(!0),L=i.useRef(A),F=i.useRef(!!r.floating),B=i.useRef(n),R=i.useRef(!1),j=i.useRef(!1),H=En(w),z=En(n),$=En(C),V=En(u),[Y,U]=i.useState(),[W,J]=i.useState(),q=Jt((function(e,t,n){function i(e){p?(U(e.id),null==I||I.events.emit(\"virtualfocus\",e),N&&(N.current=e)):Tn(e,{preventScroll:!0,sync:!(!ve().toLowerCase().startsWith(\"mac\")||navigator.maxTouchPoints||!ke())&&(di||R.current)})}void 0===n&&(n=!1);const o=e.current[t.current];o&&i(o),requestAnimationFrame((()=>{const r=e.current[t.current]||o;if(!r)return;o||i(r);const a=$.current;a&&G&&(n||!O.current)&&(null==r.scrollIntoView||r.scrollIntoView(\"boolean\"==typeof a?{block:\"nearest\",inline:\"nearest\"}:a))}))}));sn((()=>{document.createElement(\"div\").focus({get preventScroll(){return di=!0,!1}})}),[]),sn((()=>{l&&(n&&r.floating?T.current&&null!=u&&(j.current=!0,P.current=u,A(u)):F.current&&(P.current=-1,L.current(null)))}),[l,n,r.floating,u,A]),sn((()=>{if(l&&n&&r.floating)if(null==s){if(R.current=!1,null!=V.current)return;if(F.current&&(P.current=-1,q(a,P)),(!B.current||!F.current)&&T.current&&(null!=_.current||!0===T.current&&null==_.current)){let e=0;const t=()=>{if(null==a.current[0]){if(e<2){(e?requestAnimationFrame:queueMicrotask)(t)}e++}else P.current=null==_.current||hi(_.current,b,h)||m?en(a,H.current):tn(a,H.current),_.current=null,A(P.current)};t()}}else Zt(a,s)||(P.current=s,q(a,P,j.current),j.current=!1)}),[l,n,r.floating,s,V,m,a,b,h,A,q,H]),sn((()=>{var e;if(!l||r.floating||!I||p||!F.current)return;const t=I.nodesRef.current,n=null==(e=t.find((e=>e.id===E)))||null==(e=e.context)?void 0:e.elements.floating,i=pe(xe(r.floating)),o=t.some((e=>e.context&&ge(e.context.elements.floating,i)));n&&!o&&O.current&&n.focus({preventScroll:!0})}),[l,r.floating,I,E,p]),sn((()=>{if(l&&I&&p&&!E)return I.events.on(\"virtualfocus\",e),()=>{I.events.off(\"virtualfocus\",e)};function e(e){J(e.id),N&&(N.current=e)}}),[l,I,p,E,N]),sn((()=>{L.current=A,F.current=!!r.floating})),sn((()=>{n||(_.current=null)}),[n]),sn((()=>{B.current=n}),[n]);const K=null!=s,G=i.useMemo((()=>{function e(e){if(!n)return;const t=a.current.indexOf(e);-1!==t&&A(t)}return{onFocus(t){let{currentTarget:n}=t;e(n)},onClick:e=>{let{currentTarget:t}=e;return t.focus({preventScroll:!0})},...v&&{onMouseMove(t){let{currentTarget:n}=t;e(n)},onPointerLeave(e){let{pointerType:t}=e;O.current&&\"touch\"!==t&&(P.current=-1,q(a,P),A(null),p||Tn(D.current,{preventScroll:!0}))}}}}),[n,D,q,v,a,A,p]),Q=Jt((e=>{if(O.current=!1,R.current=!0,229===e.which)return;if(!z.current&&e.currentTarget===D.current)return;if(m&&pi(e.key,b,h))return Ae(e),o(!1,e.nativeEvent,\"list-navigation\"),void(ne(r.domReference)&&(p?null==I||I.events.emit(\"virtualfocus\",r.domReference):r.domReference.focus()));const t=P.current,i=en(a,w),s=tn(a,w);if(M||(\"Home\"===e.key&&(Ae(e),P.current=i,A(P.current)),\"End\"===e.key&&(Ae(e),P.current=s,A(P.current))),k>1){const t=x||Array.from({length:a.current.length},(()=>({width:1,height:1}))),n=function(e,t,n){const i=[];let o=0;return e.forEach(((e,r)=>{let{width:a,height:s}=e;if(a>t&&\"production\"!==process.env.NODE_ENV)throw new Error(\"[Floating UI]: Invalid grid - item width at index \"+r+\" is greater than grid columns\");let c=!1;for(n&&(o=0);!c;){const e=[];for(let n=0;n<a;n++)for(let i=0;i<s;i++)e.push(o+n+i*t);o%t+a<=t&&e.every((e=>null==i[e]))?(e.forEach((e=>{i[e]=r})),c=!0):o++}})),[...i]}(t,k,S),o=n.findIndex((e=>null!=e&&!an(a.current,e,w))),r=n.reduce(((e,t,n)=>null==t||an(a.current,t,w)?e:n),-1),c=n[function(e,t){let{event:n,orientation:i,loop:o,rtl:r,cols:a,disabledIndices:s,minIndex:c,maxIndex:l,prevIndex:u,stopEvent:d=!1}=t,f=u;if(n.key===qt){if(d&&Ae(n),-1===u)f=l;else if(f=nn(e,{startingIndex:f,amount:a,decrement:!0,disabledIndices:s}),o&&(u-a<c||f<0)){const e=u%a,t=l%a,n=l-(t-e);f=t===e?l:t>e?n:n-a}Zt(e,f)&&(f=u)}if(n.key===Kt&&(d&&Ae(n),-1===u?f=c:(f=nn(e,{startingIndex:u,amount:a,disabledIndices:s}),o&&u+a>l&&(f=nn(e,{startingIndex:u%a-a,amount:a,disabledIndices:s}))),Zt(e,f)&&(f=u)),\"both\"===i){const t=Oe(u/a);n.key===(r?Gt:Qt)&&(d&&Ae(n),u%a!=a-1?(f=nn(e,{startingIndex:u,disabledIndices:s}),o&&Xt(f,a,t)&&(f=nn(e,{startingIndex:u-u%a-1,disabledIndices:s}))):o&&(f=nn(e,{startingIndex:u-u%a-1,disabledIndices:s})),Xt(f,a,t)&&(f=u)),n.key===(r?Qt:Gt)&&(d&&Ae(n),u%a!=0?(f=nn(e,{startingIndex:u,decrement:!0,disabledIndices:s}),o&&Xt(f,a,t)&&(f=nn(e,{startingIndex:u+(a-u%a),decrement:!0,disabledIndices:s}))):o&&(f=nn(e,{startingIndex:u+(a-u%a),decrement:!0,disabledIndices:s})),Xt(f,a,t)&&(f=u));const i=Oe(l/a)===t;Zt(e,f)&&(f=o&&i?n.key===(r?Qt:Gt)?l:nn(e,{startingIndex:u-u%a-1,disabledIndices:s}):u)}return f}({current:n.map((e=>null!=e?a.current[e]:null))},{event:e,orientation:b,loop:f,rtl:h,cols:k,disabledIndices:rn([...w||a.current.map(((e,t)=>an(a.current,t)?t:void 0)),void 0],n),minIndex:o,maxIndex:r,prevIndex:on(P.current>s?i:P.current,t,n,k,e.key===Kt?\"bl\":e.key===(h?Gt:Qt)?\"tr\":\"tl\"),stopEvent:!0})];if(null!=c&&(P.current=c,A(P.current)),\"both\"===b)return}if(mi(e.key,b)){if(Ae(e),n&&!p&&pe(e.currentTarget.ownerDocument)===e.currentTarget)return P.current=hi(e.key,b,h)?i:s,void A(P.current);hi(e.key,b,h)?P.current=f?t>=s?d&&t!==a.current.length?-1:i:nn(a,{startingIndex:t,disabledIndices:w}):Math.min(s,nn(a,{startingIndex:t,disabledIndices:w})):P.current=f?t<=i?d&&-1!==t?a.current.length:s:nn(a,{startingIndex:t,decrement:!0,disabledIndices:w}):Math.max(i,nn(a,{startingIndex:t,decrement:!0,disabledIndices:w})),Zt(a,P.current)?A(null):A(P.current)}})),X=i.useMemo((()=>p&&n&&K&&{\"aria-activedescendant\":W||Y}),[p,n,K,W,Y]),Z=i.useMemo((()=>({\"aria-orientation\":\"both\"===b?void 0:b,...!Me(r.domReference)&&X,onKeyDown:Q,onPointerMove(){O.current=!0}})),[X,Q,r.domReference,b]),ee=i.useMemo((()=>{function e(e){\"auto\"===g&&we(e.nativeEvent)&&(T.current=!0)}return{...X,onKeyDown(e){O.current=!1;const t=e.key.startsWith(\"Arrow\"),i=[\"Home\",\"End\"].includes(e.key),r=t||i,s=function(e,t,n){return fi(t,n?e===Gt:e===Qt,e===Kt)}(e.key,b,h),c=pi(e.key,b,h),l=mi(e.key,b),d=(m?s:l)||\"Enter\"===e.key||\"\"===e.key.trim();if(p&&n){const t=null==I?void 0:I.nodesRef.current.find((e=>null==e.parentId)),n=I&&t?function(e,t){let n,i=-1;return function t(o,r){r>i&&(n=o,i=r),Pn(e,o).forEach((e=>{t(e.id,r+1)}))}(t,0),e.find((e=>e.id===n))}(I.nodesRef.current,t.id):null;if(r&&n&&N){const t=new KeyboardEvent(\"keydown\",{key:e.key,bubbles:!0});if(s||c){var f,g;const i=(null==(f=n.context)?void 0:f.elements.domReference)===e.currentTarget,o=c&&!i?null==(g=n.context)?void 0:g.elements.domReference:s?a.current.find((e=>(null==e?void 0:e.id)===Y)):null;o&&(Ae(e),o.dispatchEvent(t),J(void 0))}var v;if((l||i)&&n.context)if(n.context.open&&n.parentId&&e.currentTarget!==n.context.elements.domReference)return Ae(e),void(null==(v=n.context.elements.domReference)||v.dispatchEvent(t))}return Q(e)}(n||y||!t)&&(d&&(_.current=m&&l?null:e.key),m?s&&(Ae(e),n?(P.current=en(a,H.current),A(P.current)):o(!0,e.nativeEvent,\"list-navigation\")):l&&(null!=u&&(P.current=u),Ae(e),!n&&y?o(!0,e.nativeEvent,\"list-navigation\"):Q(e),n&&A(P.current)))},onFocus(){n&&!p&&A(null)},onPointerDown:function(e){T.current=g,\"auto\"===g&&be(e.nativeEvent)&&(T.current=!0)},onMouseDown:e,onClick:e}}),[Y,X,Q,H,g,a,m,A,o,n,y,b,h,u,I,p,N]);return i.useMemo((()=>l?{reference:ee,floating:Z,item:G}:{}),[l,ee,Z,G])}const vi=new Map([[\"select\",\"listbox\"],[\"combobox\",\"listbox\"],[\"label\",!1]]);function yi(e,t){const[n,i]=e;let o=!1;const r=t.length;for(let e=0,a=r-1;e<r;a=e++){const[r,s]=t[e]||[0,0],[c,l]=t[a]||[0,0];s>=i!=l>=i&&n<=(c-r)*(i-s)/(l-s)+r&&(o=!o)}return o}function wi(e){void 0===e&&(e={});const{buffer:t=.5,blockPointerEvents:n=!1,requireIntent:i=!0}=e;let o,r=!1,a=null,s=null,c=performance.now();const l=e=>{let{x:n,y:l,placement:u,elements:d,onClose:f,nodeId:m,tree:h}=e;return function(e){function p(){clearTimeout(o),f()}if(clearTimeout(o),!d.domReference||!d.floating||null==u||null==n||null==l)return;const{clientX:g,clientY:v}=e,y=[g,v],w=De(e),b=\"mouseleave\"===e.type,k=ge(d.floating,w),C=ge(d.domReference,w),N=d.domReference.getBoundingClientRect(),x=d.floating.getBoundingClientRect(),S=u.split(\"-\")[0],D=n>x.right-x.width/2,E=l>x.bottom-x.height/2,I=function(e,t){return e[0]>=t.x&&e[0]<=t.x+t.width&&e[1]>=t.y&&e[1]<=t.y+t.height}(y,N),A=x.width>N.width,M=x.height>N.height,T=(A?N:x).left,P=(A?N:x).right,_=(M?N:x).top,O=(M?N:x).bottom;if(k&&(r=!0,!b))return;if(C&&(r=!1),C&&!b)return void(r=!0);if(b&&te(e.relatedTarget)&&ge(d.floating,e.relatedTarget))return;if(h&&Pn(h.nodesRef.current,m).some((e=>{let{context:t}=e;return null==t?void 0:t.open})))return;if(\"top\"===S&&l>=N.bottom-1||\"bottom\"===S&&l<=N.top+1||\"left\"===S&&n>=N.right-1||\"right\"===S&&n<=N.left+1)return p();let L=[];switch(S){case\"top\":L=[[T,N.top+1],[T,x.bottom-1],[P,x.bottom-1],[P,N.top+1]];break;case\"bottom\":L=[[T,x.top+1],[T,N.bottom-1],[P,N.bottom-1],[P,x.top+1]];break;case\"left\":L=[[x.right-1,O],[x.right-1,_],[N.left+1,_],[N.left+1,O]];break;case\"right\":L=[[N.right-1,O],[N.right-1,_],[x.left+1,_],[x.left+1,O]]}if(!yi([g,v],L)){if(r&&!I)return p();if(!b&&i){const t=function(e,t){const n=performance.now(),i=n-c;if(null===a||null===s||0===i)return a=e,s=t,c=n,null;const o=e-a,r=t-s,l=Math.sqrt(o*o+r*r);return a=e,s=t,c=n,l/i}(e.clientX,e.clientY);if(null!==t&&t<.1)return p()}yi([g,v],function(e){let[n,i]=e;switch(S){case\"top\":return[[A?n+t/2:D?n+4*t:n-4*t,i+t+1],[A?n-t/2:D?n+4*t:n-4*t,i+t+1],...[[x.left,D||A?x.bottom-t:x.top],[x.right,D?A?x.bottom-t:x.top:x.bottom-t]]];case\"bottom\":return[[A?n+t/2:D?n+4*t:n-4*t,i-t],[A?n-t/2:D?n+4*t:n-4*t,i-t],...[[x.left,D||A?x.top+t:x.bottom],[x.right,D?A?x.top+t:x.bottom:x.top+t]]];case\"left\":{const e=[n+t+1,M?i+t/2:E?i+4*t:i-4*t],o=[n+t+1,M?i-t/2:E?i+4*t:i-4*t];return[...[[E||M?x.right-t:x.left,x.top],[E?M?x.right-t:x.left:x.right-t,x.bottom]],e,o]}case\"right\":return[[n-t,M?i+t/2:E?i+4*t:i-4*t],[n-t,M?i-t/2:E?i+4*t:i-4*t],...[[E||M?x.left+t:x.right,x.top],[E?M?x.left+t:x.right:x.left+t,x.bottom]]]}}([n,l]))?!r&&i&&(o=window.setTimeout(p,40)):p()}}};return l.__options={blockPointerEvents:n},l}const bi=a({getItemProps:()=>({}),activeIndex:null,setActiveIndex:()=>{},setHasFocusInside:()=>{},isOpen:!1,setIsOpen:()=>{}}),ki=o((({className:t,disabled:n,children:i,...o},r)=>{const a=s(bi),c=dn(),l=Nn(),u=c.index===a.activeIndex,d=k(\"io-dropdown-menu-item\",n&&\"io-dropdown-menu-item-disabled\",t);return e(\"div\",{ref:Yt([c.ref,r]),role:\"menuitem\",className:d,tabIndex:u?0:-1,...o,...a.getItemProps({onClick(e){o.onClick?.(e),a.setIsOpen(!1),l?.events.emit(\"click\")},onFocus(e){o.onFocus?.(e),a.setHasFocusInside(!0)}}),children:i})}));ki.displayName=\"DropdownMenuItem\";const Ci=o((({className:n,variant:o=\"default\",icon:r,iconRight:a,text:f=\"\",disabled:m,children:h,...p},g)=>{const[v,y]=c(!1),[w,b]=c(!1),[C,N]=c(null),x=d([]),S=d([]),D=s(bi),E=Nn(),I=function(e){const t=gn(),n=Nn(),i=Cn();return sn((()=>{const e={id:t,parentId:i};return null==n||n.addNode(e),()=>{null==n||n.removeNode(e)}}),[n,t,i]),t}(),M=Cn(),T=dn(),P=null!=M,{floatingStyles:_,refs:O,context:L}=si({nodeId:I,open:v,onOpenChange:y,placement:P?\"right-start\":\"bottom-start\",middleware:[(F={mainAxis:P?0:4,alignmentAxis:P?-4:0},{..._t(F),options:[F,B]}),Vt(),$t()],whileElementsMounted:Pt});var F,B;const R=function(e,t){void 0===t&&(t={});const{open:n,onOpenChange:o,dataRef:r,events:a,elements:s}=e,{enabled:c=!0,delay:l=0,handleClose:u=null,mouseOnly:d=!1,restMs:f=0,move:m=!0}=t,h=Nn(),p=Cn(),g=En(u),v=En(l),y=En(n),w=i.useRef(),b=i.useRef(-1),k=i.useRef(),C=i.useRef(-1),N=i.useRef(!0),x=i.useRef(!1),S=i.useRef((()=>{})),D=i.useRef(!1),E=i.useCallback((()=>{var e;const t=null==(e=r.current.openEvent)?void 0:e.type;return(null==t?void 0:t.includes(\"mouse\"))&&\"mousedown\"!==t}),[r]);i.useEffect((()=>{if(c)return a.on(\"openchange\",e),()=>{a.off(\"openchange\",e)};function e(e){let{open:t}=e;t||(clearTimeout(b.current),clearTimeout(C.current),N.current=!0,D.current=!1)}}),[c,a]),i.useEffect((()=>{if(!c)return;if(!g.current)return;if(!n)return;function e(e){E()&&o(!1,e,\"hover\")}const t=xe(s.floating).documentElement;return t.addEventListener(\"mouseleave\",e),()=>{t.removeEventListener(\"mouseleave\",e)}}),[s.floating,n,o,c,g,E]);const I=i.useCallback((function(e,t,n){void 0===t&&(t=!0),void 0===n&&(n=\"hover\");const i=An(v.current,\"close\",w.current);i&&!k.current?(clearTimeout(b.current),b.current=window.setTimeout((()=>o(!1,e,n)),i)):t&&(clearTimeout(b.current),o(!1,e,n))}),[v,o]),A=Jt((()=>{S.current(),k.current=void 0})),M=Jt((()=>{if(x.current){const e=xe(s.floating).body;e.style.pointerEvents=\"\",e.removeAttribute(In),x.current=!1}})),T=Jt((()=>!!r.current.openEvent&&[\"click\",\"mousedown\"].includes(r.current.openEvent.type)));i.useEffect((()=>{if(c&&te(s.domReference)){var e;const o=s.domReference;return n&&o.addEventListener(\"mouseleave\",a),null==(e=s.floating)||e.addEventListener(\"mouseleave\",a),m&&o.addEventListener(\"mousemove\",t,{once:!0}),o.addEventListener(\"mouseenter\",t),o.addEventListener(\"mouseleave\",i),()=>{var e;n&&o.removeEventListener(\"mouseleave\",a),null==(e=s.floating)||e.removeEventListener(\"mouseleave\",a),m&&o.removeEventListener(\"mousemove\",t),o.removeEventListener(\"mouseenter\",t),o.removeEventListener(\"mouseleave\",i)}}function t(e){if(clearTimeout(b.current),N.current=!1,d&&!Ne(w.current)||f>0&&!An(v.current,\"open\"))return;const t=An(v.current,\"open\",w.current);t?b.current=window.setTimeout((()=>{y.current||o(!0,e,\"hover\")}),t):n||o(!0,e,\"hover\")}function i(e){if(T())return;S.current();const t=xe(s.floating);if(clearTimeout(C.current),D.current=!1,g.current&&r.current.floatingContext){n||clearTimeout(b.current),k.current=g.current({...r.current.floatingContext,tree:h,x:e.clientX,y:e.clientY,onClose(){M(),A(),T()||I(e,!0,\"safe-polygon\")}});const i=k.current;return t.addEventListener(\"mousemove\",i),void(S.current=()=>{t.removeEventListener(\"mousemove\",i)})}(\"touch\"!==w.current||!ge(s.floating,e.relatedTarget))&&I(e)}function a(e){T()||r.current.floatingContext&&(null==g.current||g.current({...r.current.floatingContext,tree:h,x:e.clientX,y:e.clientY,onClose(){M(),A(),T()||I(e)}})(e))}}),[s,c,e,d,f,m,I,A,M,o,n,y,h,v,g,r,T]),sn((()=>{var e;if(c&&n&&null!=(e=g.current)&&e.__options.blockPointerEvents&&E()){x.current=!0;const e=s.floating;if(te(s.domReference)&&e){var t;const n=xe(s.floating).body;n.setAttribute(In,\"\");const i=s.domReference,o=null==h||null==(t=h.nodesRef.current.find((e=>e.id===p)))||null==(t=t.context)?void 0:t.elements.floating;return o&&(o.style.pointerEvents=\"\"),n.style.pointerEvents=\"none\",i.style.pointerEvents=\"auto\",e.style.pointerEvents=\"auto\",()=>{n.style.pointerEvents=\"\",i.style.pointerEvents=\"\",e.style.pointerEvents=\"\"}}}}),[c,n,p,s,h,g,E]),sn((()=>{n||(w.current=void 0,D.current=!1,A(),M())}),[n,A,M]),i.useEffect((()=>()=>{A(),clearTimeout(b.current),clearTimeout(C.current),M()}),[c,s.domReference,A,M]);const P=i.useMemo((()=>{function e(e){w.current=e.pointerType}return{onPointerDown:e,onPointerEnter:e,onMouseMove(e){const{nativeEvent:t}=e;function i(){N.current||y.current||o(!0,t,\"hover\")}d&&!Ne(w.current)||n||0===f||D.current&&e.movementX**2+e.movementY**2<2||(clearTimeout(C.current),\"touch\"===w.current?i():(D.current=!0,C.current=window.setTimeout(i,f)))}}}),[d,o,n,y,f]),_=i.useMemo((()=>({onMouseEnter(){clearTimeout(b.current)},onMouseLeave(e){T()||I(e.nativeEvent,!1)}})),[I,T]);return i.useMemo((()=>c?{reference:P,floating:_}:{}),[c,P,_])}(L,{enabled:P,delay:{open:75},handleClose:wi({blockPointerEvents:!0})}),j=function(e,t){void 0===t&&(t={});const{open:n,onOpenChange:o,dataRef:r,elements:{domReference:a}}=e,{enabled:s=!0,event:c=\"click\",toggle:l=!0,ignoreMouse:u=!1,keyboardHandlers:d=!0,stickIfOpen:f=!0}=t,m=i.useRef(),h=i.useRef(!1),p=i.useMemo((()=>({onPointerDown(e){m.current=e.pointerType},onMouseDown(e){const t=m.current;0===e.button&&\"click\"!==c&&(Ne(t,!0)&&u||(!n||!l||r.current.openEvent&&f&&\"mousedown\"!==r.current.openEvent.type?(e.preventDefault(),o(!0,e.nativeEvent,\"click\")):o(!1,e.nativeEvent,\"click\")))},onClick(e){const t=m.current;\"mousedown\"===c&&m.current?m.current=void 0:Ne(t,!0)&&u||(!n||!l||r.current.openEvent&&f&&\"click\"!==r.current.openEvent.type?o(!0,e.nativeEvent,\"click\"):o(!1,e.nativeEvent,\"click\"))},onKeyDown(e){m.current=void 0,e.defaultPrevented||!d||ti(e)||(\" \"!==e.key||ni(a)||(e.preventDefault(),h.current=!0),\"Enter\"===e.key&&o(!n||!l,e.nativeEvent,\"click\"))},onKeyUp(e){e.defaultPrevented||!d||ti(e)||ni(a)||\" \"===e.key&&h.current&&(h.current=!1,o(!n||!l,e.nativeEvent,\"click\"))}})),[r,a,c,u,d,o,n,f,l]);return i.useMemo((()=>s?{reference:p}:{}),[s,p])}(L,{event:\"mousedown\",toggle:!P,ignoreMouse:P}),H=function(e,t){var n;void 0===t&&(t={});const{open:o,floatingId:r}=e,{enabled:a=!0,role:s=\"dialog\"}=t,c=null!=(n=vi.get(s))?n:s,l=gn(),u=null!=Cn(),d=i.useMemo((()=>\"tooltip\"===c||\"label\"===s?{[\"aria-\"+(\"label\"===s?\"labelledby\":\"describedby\")]:o?r:void 0}:{\"aria-expanded\":o?\"true\":\"false\",\"aria-haspopup\":\"alertdialog\"===c?\"dialog\":c,\"aria-controls\":o?r:void 0,...\"listbox\"===c&&{role:\"combobox\"},...\"menu\"===c&&{id:l},...\"menu\"===c&&u&&{role:\"menuitem\"},...\"select\"===s&&{\"aria-autocomplete\":\"none\"},...\"combobox\"===s&&{\"aria-autocomplete\":\"list\"}}),[c,r,u,o,l,s]),f=i.useMemo((()=>{const e={id:r,...c&&{role:c}};return\"tooltip\"===c||\"label\"===s?e:{...e,...\"menu\"===c&&{\"aria-labelledby\":l}}}),[c,r,l,s]),m=i.useCallback((e=>{let{active:t,selected:n}=e;const i={role:\"option\",...t&&{id:r+\"-option\"}};switch(s){case\"select\":return{...i,\"aria-selected\":t&&n};case\"combobox\":return{...i,...t&&{\"aria-selected\":!0}}}return{}}),[r,s]);return i.useMemo((()=>a?{reference:d,floating:f,item:m}:{}),[a,d,f,m])}(L,{role:\"menu\"}),z=function(e,t){void 0===t&&(t={});const{open:n,onOpenChange:o,elements:r,dataRef:a}=e,{enabled:s=!0,escapeKey:c=!0,outsidePress:l=!0,outsidePressEvent:u=\"pointerdown\",referencePress:d=!1,referencePressEvent:f=\"pointerdown\",ancestorScroll:m=!1,bubbles:h,capture:p}=t,g=Nn(),v=Jt(\"function\"==typeof l?l:()=>!1),y=\"function\"==typeof l?v:l,w=i.useRef(!1),b=i.useRef(!1),{escapeKey:k,outsidePress:C}=ri(h),{escapeKey:N,outsidePress:x}=ri(p),S=i.useRef(!1),D=Jt((e=>{var t;if(!n||!s||!c||\"Escape\"!==e.key)return;if(S.current)return;const i=null==(t=a.current.floatingContext)?void 0:t.nodeId,r=g?Pn(g.nodesRef.current,i):[];if(!k&&(e.stopPropagation(),r.length>0)){let e=!0;if(r.forEach((t=>{var n;null==(n=t.context)||!n.open||t.context.dataRef.current.__escapeKeyBubbles||(e=!1)})),!e)return}o(!1,function(e){return\"nativeEvent\"in e}(e)?e.nativeEvent:e,\"escape-key\")})),E=Jt((e=>{var t;const n=()=>{var t;D(e),null==(t=De(e))||t.removeEventListener(\"keydown\",n)};null==(t=De(e))||t.addEventListener(\"keydown\",n)})),I=Jt((e=>{var t;const n=w.current;w.current=!1;const i=b.current;if(b.current=!1,\"click\"===u&&i)return;if(n)return;if(\"function\"==typeof y&&!y(e))return;const s=De(e),c=\"[\"+Dn(\"inert\")+\"]\",l=xe(r.floating).querySelectorAll(c);let d=te(s)?s:null;for(;d&&!le(d);){const e=fe(d);if(le(e)||!te(e))break;d=e}if(l.length&&te(s)&&!s.matches(\"html,body\")&&!ge(s,r.floating)&&Array.from(l).every((e=>!ge(d,e))))return;if(ne(s)&&T){const t=s.clientWidth>0&&s.scrollWidth>s.clientWidth,n=s.clientHeight>0&&s.scrollHeight>s.clientHeight;let i=n&&e.offsetX>s.clientWidth;if(n&&\"rtl\"===ue(s).direction&&(i=e.offsetX<=s.offsetWidth-s.clientWidth),i||t&&e.offsetY>s.clientHeight)return}const f=null==(t=a.current.floatingContext)?void 0:t.nodeId,m=g&&Pn(g.nodesRef.current,f).some((t=>{var n;return Se(e,null==(n=t.context)?void 0:n.elements.floating)}));if(Se(e,r.floating)||Se(e,r.domReference)||m)return;const h=g?Pn(g.nodesRef.current,f):[];if(h.length>0){let e=!0;if(h.forEach((t=>{var n;null==(n=t.context)||!n.open||t.context.dataRef.current.__outsidePressBubbles||(e=!1)})),!e)return}o(!1,e,\"outside-press\")})),A=Jt((e=>{var t;const n=()=>{var t;I(e),null==(t=De(e))||t.removeEventListener(u,n)};null==(t=De(e))||t.addEventListener(u,n)}));i.useEffect((()=>{if(!n||!s)return;a.current.__escapeKeyBubbles=k,a.current.__outsidePressBubbles=C;let e=-1;function t(e){o(!1,e,\"ancestor-scroll\")}function i(){window.clearTimeout(e),S.current=!0}function l(){e=window.setTimeout((()=>{S.current=!1}),ce()?5:0)}const d=xe(r.floating);c&&(d.addEventListener(\"keydown\",N?E:D,N),d.addEventListener(\"compositionstart\",i),d.addEventListener(\"compositionend\",l)),y&&d.addEventListener(u,x?A:I,x);let f=[];return m&&(te(r.domReference)&&(f=he(r.domReference)),te(r.floating)&&(f=f.concat(he(r.floating))),!te(r.reference)&&r.reference&&r.reference.contextElement&&(f=f.concat(he(r.reference.contextElement)))),f=f.filter((e=>{var t;return e!==(null==(t=d.defaultView)?void 0:t.visualViewport)})),f.forEach((e=>{e.addEventListener(\"scroll\",t,{passive:!0})})),()=>{c&&(d.removeEventListener(\"keydown\",N?E:D,N),d.removeEventListener(\"compositionstart\",i),d.removeEventListener(\"compositionend\",l)),y&&d.removeEventListener(u,x?A:I,x),f.forEach((e=>{e.removeEventListener(\"scroll\",t)})),window.clearTimeout(e)}}),[a,r,c,y,u,n,o,m,s,k,C,D,N,E,I,x,A]),i.useEffect((()=>{w.current=!1}),[y,u]);const M=i.useMemo((()=>({onKeyDown:D,[ii[f]]:e=>{d&&o(!1,e.nativeEvent,\"reference-press\")}})),[D,o,d,f]),T=i.useMemo((()=>({onKeyDown:D,onMouseDown(){b.current=!0},onMouseUp(){b.current=!0},[oi[u]]:()=>{w.current=!0}})),[D,u]);return i.useMemo((()=>s?{reference:M,floating:T}:{}),[s,M,T])}(L,{bubbles:!0}),$=gi(L,{listRef:x,activeIndex:C,nested:P,onNavigate:N}),{getReferenceProps:V,getFloatingProps:Y,getItemProps:U}=function(e){void 0===e&&(e=[]);const t=e.map((e=>null==e?void 0:e.reference)),n=e.map((e=>null==e?void 0:e.floating)),o=e.map((e=>null==e?void 0:e.item)),r=i.useCallback((t=>ui(t,e,\"reference\")),t),a=i.useCallback((t=>ui(t,e,\"floating\")),n),s=i.useCallback((t=>ui(t,e,\"item\")),o);return i.useMemo((()=>({getReferenceProps:r,getFloatingProps:a,getItemProps:s})),[r,a,s])}([R,j,H,z,$]);u((()=>{if(E)return E.events.on(\"click\",e),E.events.on(\"menuopen\",t),()=>{E.events.off(\"click\",e),E.events.off(\"menuopen\",t)};function e(){y(!1)}function t(e){e.nodeId!==I&&e.parentId===M&&y(!1)}}),[E,I,M]),u((()=>{v&&E&&E.events.emit(\"menuopen\",{parentId:M,nodeId:I})}),[E,v,I,M]);const W={activeIndex:C,setActiveIndex:N,getItemProps:U,setHasFocusInside:b,isOpen:v,setIsOpen:y},J=l((()=>W),[C,N,U,b,v]),q=k(\"io-dropdown-menu-button\",P&&\"io-dropdown-menu-item\",v&&!P&&\"active\",n),K=Yt([O.setReference,T.ref,g]),G=D.activeIndex===T.index?0:-1;return t(xn,{id:I,children:[e(A,{className:q,ref:K,variant:P?\"link\":o,tabIndex:P?G:void 0,role:P?\"menuitem\":void 0,\"data-open\":v?\"\":void 0,\"data-nested\":P?\"\":void 0,\"data-focus-inside\":w?\"\":void 0,text:f,icon:P?\"chevron-right\":r,iconSize:\"10\",iconRight:!!P||a,disabled:m,...V(D.getItemProps({onFocus(e){p.onFocus?.(e),b(!1),D.setHasFocusInside(!0)},...p}))}),e(bi.Provider,{value:J,children:e(un,{elementsRef:x,labelsRef:S,children:v&&e(ei,{context:L,modal:!1,initialFocus:P?-1:0,returnFocus:!P,children:e(\"div\",{ref:O.setFloating,className:\"io-dropdown-menu\",style:_,...Y(),children:h})})})})]})}));function Ni({className:t,...n}){const i=k(\"io-separator\",t);return e(\"hr\",{className:i,...n})}Ci.displayName=\"DropdownMenu\";const xi=o((({...t},n)=>null===Cn()?e(Sn,{children:e(Ci,{ref:n,...t})}):e(Ci,{ref:n,...t})));function Si({className:t,variant:n=\"default\",size:i=\"16\",src:o,alt:r,...a}){const s=k(\"io-image-icon\",\"grayscale\"===n&&[`io-image-icon-${n}`],i&&[`io-image-icon-${i}`],t);return e(\"img\",{className:s,style:{width:`${i}px`,filter:\"grayscale\"===n?\"grayscale(100%)\":\"none\"},src:o,alt:r,...a})}function Di({className:n,size:i=\"large\",variant:o=\"default\",align:r=\"up\",text:a,...s}){const c=k(\"io-loader\",{[`io-loader-${o}`]:\"default\"!==o},\"normal\"===i&&\"io-loader-md\",\"small\"===i&&\"io-loader-sm\",r&&[`direction-${r}`],n);return t(\"div\",{className:c,...s,children:[e(\"div\",{className:\"io-loader-icon\"}),a&&e(\"div\",{className:\"io-loader-text\",children:a})]})}function Ei({className:t,children:n,...i}){const o=k(\"io-panel-header\",t);return e(Y,{className:o,...i,children:n})}xi.displayName=\"DropdownMenu\",xi.Item=ki,xi.Separator=Ni,Ei.Title=E,Ei.ButtonGroup=V,Ei.Button=A,Ei.ButtonIcon=N,Ei.Dropdown=$;const Ii=o((({className:t,children:n,...i},o)=>{const r=k(\"io-panel-body\",t);return e(\"div\",{className:r,ref:o,...i,children:n})}));function Ai({className:t,...n}){const i=k(\"io-panel-footer\",t);return e(J,{className:i,...n})}function Mi({className:t,children:n,...i}){const o=k(\"io-panel\",t);return e(\"div\",{className:o,...i,children:n})}function Ti({className:t,variant:n=\"default\",children:i,...o}){const r=k(\"io-pill\",\"default\"!==n&&[`io-pill-${n}`],t);return e(\"div\",{className:r,...o,children:i})}function Pi({className:t,variant:n=\"active\",value:i=0,...o}){const r=k(\"io-progress\",n,t);return e(\"div\",{className:r,...o,children:e(\"div\",{className:\"io-progress-bar\",style:{width:`${i<0?0:i>100?100:i}%`}})})}function _i({text:t=\"Label\",...n}){return e(\"label\",{...n,children:t})}Ii.displayName=\"PanelBody\",Ai.ButtonGroup=V,Ai.Button=A,Ai.ButtonIcon=N,Ai.Dropdown=$,Mi.Header=Ei,Mi.Body=Ii,Mi.Footer=Ai,Ti.Icon=C;const Oi=o((({id:n=\"input\",className:i,type:o=\"text\",name:a=\"input\",align:s=\"up\",label:c,iconPrepend:l,iconPrependOnClick:u,iconAppend:d,iconAppendOnClick:f,placeholder:m,disabled:h,readOnly:p,errorMessage:g,errorDataTestId:v,...y},w)=>{const b=k(\"io-control-input\",l&&\"io-control-leading-icon\",d&&\"io-control-trailing-icon\",h&&\"io-control-disabled\",p&&\"io-control-readonly\",g&&\"io-control-error\",s&&[`direction-${s}`],i),N=r((e=>{h?e.preventDefault():u&&u(e)}),[u,h]),x=r((e=>{h?e.preventDefault():f&&f(e)}),[f,h]);return t(\"div\",{className:b,children:[c&&e(_i,{htmlFor:n,text:c}),l&&e(C,{variant:l,onClick:e=>N(e)}),e(\"input\",{id:n,className:\"io-input\",ref:w,type:o,name:a,tabIndex:0,placeholder:m??(()=>{switch(o){case\"email\":return\"Enter your email here...\";case\"number\":return\"Enter number here...\";case\"password\":return\"Enter your password here...\";case\"tel\":return\"Enter your phone number here...\";case\"file\":return\"Select a file...\";default:return\"Enter text here...\"}})(),disabled:h,readOnly:p,...y}),d&&e(C,{variant:d,onClick:e=>x(e)}),g&&t(\"div\",{\"data-testid\":v,children:[e(C,{variant:\"close\"}),g]})]})}));Oi.displayName=\"Input\";const Li=o((({id:n=\"textarea\",className:i,name:o=\"textarea\",align:r=\"up\",label:a,rows:s=4,placeholder:c=\"Enter text here...\",disabled:l,readOnly:u,...d},f)=>{const m=k(\"io-control-textarea\",l&&\"io-control-disabled\",u&&\"io-control-readonly\",r&&[`direction-${r}`],i);return t(\"div\",{className:m,children:[a&&e(_i,{htmlFor:n,text:a}),e(\"textarea\",{id:n,className:\"io-textarea\",ref:f,name:o,tabIndex:0,placeholder:c,disabled:l,readOnly:u,rows:s,...d})]})}));Li.displayName=\"Textarea\";const Fi=o((({id:n=\"checkbox\",className:i,name:o=\"checkbox\",align:r=\"left\",label:a,checked:s,disabled:c,...l},u)=>{const d=k(\"io-control-checkbox\",s&&\"io-control-checked\",c&&\"io-control-disabled\",r&&[`direction-${r}`],i);return t(\"div\",{className:d,children:[e(\"input\",{type:\"checkbox\",id:n,className:\"io-checkbox\",ref:u,name:o,tabIndex:0,checked:s,disabled:c,...l}),a&&e(_i,{htmlFor:n,text:a})]})}));Fi.displayName=\"Checkbox\";const Bi=o((({id:n=\"radio\",className:i,name:o=\"radio\",align:r=\"left\",label:a,checked:s,disabled:c,...l},u)=>{const d=k(\"io-control-radio\",s&&\"io-control-checked\",c&&\"io-control-disabled\",r&&[`direction-${r}`],i);return t(\"div\",{className:d,children:[e(\"input\",{type:\"radio\",id:n,className:\"io-radio\",ref:u,name:o,tabIndex:0,checked:s,disabled:c,...l}),a&&e(_i,{htmlFor:n,text:a})]})}));Bi.displayName=\"Radio\";const Ri=o((({id:n=\"toggle\",className:i,name:o=\"toggle\",align:r=\"left\",label:a=\"Toggle\",checked:s,disabled:c,...l},u)=>{const d=k(\"io-control-toggle\",s&&\"io-control-checked\",c&&\"io-control-disabled\",r&&[`direction-${r}`],i);return e(\"div\",{className:d,children:t(\"label\",{className:\"io-toggle\",children:[e(\"input\",{type:\"checkbox\",id:n,className:\"io-checkbox\",ref:u,name:o,checked:s,disabled:c,...l}),e(\"span\",{className:\"slider\"}),a]})})}));function ji(e,t){const n=d(e);f((()=>{n.current=e}),[e]),u((()=>{if(!t&&0!==t)return;const e=setTimeout((()=>n.current()),t);return()=>{clearTimeout(e)}}),[t])}function Hi(e,t){const n=r((n=>{const i=t.some((e=>n.key===e));i&&(n.preventDefault(),e())}),[e,t]);u((()=>(document.addEventListener(\"keydown\",n),()=>{document.removeEventListener(\"keydown\",n)})),[n])}function zi(){const e=s(v),[t,n]=c({}),i=r((async t=>{e&&await(e.prefs?.set(t))}),[e]),o=r((async t=>{e&&await(e.prefs?.update(t))}),[e]),a=r((async()=>{e&&await(e.prefs?.clear())}),[e]);return u((()=>{if(!e)return;const t=e.prefs?.subscribe((e=>{n((t=>null===t?e.data:{...t,...e.data}))}));return()=>{t?.()}}),[e]),{appPrefs:t,setPrefs:i,updatePrefs:o,clearPrefs:a}}function $i(e){const[t,n]=c(!1);function i({key:t}){t===e&&n(!0)}const o=({key:t})=>{t===e&&n(!1)};return u((()=>(window.addEventListener(\"keydown\",i),window.addEventListener(\"keyup\",o),()=>{window.removeEventListener(\"keydown\",i),window.removeEventListener(\"keyup\",o)})),[]),t}function Vi(e,t=500){const[n,i]=c(e);return u((()=>{const n=setTimeout((()=>{i(e)}),t);return()=>clearTimeout(n)}),[e,t]),n}function Yi(e,t=!0){const n=s(v),i=n?.windows.my(),o=r((async()=>{i&&await i.show().catch((e=>console.log(\"Error showing window:\",e)))}),[i]),a=r((async()=>{i&&await i.hide().catch((e=>console.log(\"Error hiding window:\",e)))}),[i]);u((()=>{if(!i)return;(e?o():a()).catch(console.error),e&&t&&i.focus().catch(console.error)}),[e,t,i,o,a])}function Ui(e,t){u((()=>{const n=n=>{n.code===e&&t()};return document.addEventListener(\"keyup\",n),()=>document.removeEventListener(\"keyup\",n)}),[e,t])}function Wi(e=!0){const t=s(v),n=t?.windows.my(),i=e=>{e.isFocused||n?.hide().catch((e=>{console.error(\"Error hiding window:\",e)}))};return u((()=>{if(!e)return;const t=n?.onFocusChanged(i);return()=>t?.()}),[]),t}Ri.displayName=\"Toggle\";const Ji=()=>void 0!==window.glue42gd||void 0!==window.iodesktop;function qi(){return l((()=>\"object\"==typeof window&&Ji()),[])}const Ki=a({theme:\"dark\"}),Gi=({children:t})=>{const n=s(v),[i,o]=c({theme:\"dark\"});return u((()=>{const e=window.iodesktop??window.glue42gd;if(e&&\"theme\"in e){const t=e.theme;document.documentElement.classList.remove(\"dark\",\"light\"),document.documentElement.classList.add(t);const i=n.themes?.onChanged((e=>{o({theme:e.name}),document.documentElement.classList.remove(\"dark\",\"light\"),document.documentElement.classList.add(e.name)}));return i}}),[n.themes]),e(Ki.Provider,{value:i,children:t})},Qi=\"io-connect-platform\",Xi=\"___platform_prefs___\",Zi=\"_launchpad_isPinned\",eo=\"_launchpad_pinnedPosition\",to=\"_launchpad_allowDocking\",no=\"_launchpad_minimizeToTray\",io=\"_launchpad_autoCloseStartingAppsAndWorkspaces\",oo=\"_launchpad_showTutorialOnStartup\",ro=\"_layouts_restoreLastSaved\",ao=\"_layouts_saveCurrentOnExit\",so=\"_layouts_showUnsavedChangesPrompt\",co=\"_layouts_showDeletePrompt\",lo=\"_downloads_askForEachDownload\",uo={[\"_launchpad_collapsedSections\"]:[],[\"_launchpad_favorites\"]:[],[\"_launchpad_isLayoutsPanelOpen\"]:!1,[\"_launchpad_isCollapsed\"]:!1,[Zi]:!1,[eo]:\"Left\",[to]:!0,[no]:!1,[io]:!0,[oo]:!0,[ro]:!0,[ao]:!0,[so]:!0,[co]:!0,[lo]:!0,[\"_downloads_location\"]:\"\",[\"_system_scheduleRestart\"]:!1,[\"_system_scheduleRestartTime\"]:\"12:00 AM\",[\"_system_scheduleRestartFrequency\"]:\"daily\",[\"_system_scheduleRestartDay\"]:\"Monday\",[\"_system_scheduleShutdown\"]:!1,[\"_system_scheduleShutdownTime\"]:\"12:00 AM\",[\"_system_scheduleShutdownFrequency\"]:\"daily\",[\"_system_scheduleShutdownDay\"]:\"Monday\"},fo=e=>\"string\"==typeof e?e:e?.message?\"string\"==typeof e.message?e.message:JSON.stringify(e.message):JSON.stringify(e),mo={SUCCESS:\"success\",WARNING:\"warning\"},ho={success:5e3,warning:1e4};var po=function(e){return{ok:!0,result:e}},go=function(e){return{ok:!1,error:e}},vo=function(e,t,n){return!1===t.ok?t:!1===n.ok?n:po(e(t.result,n.result))},yo=function(e,t){return!0===t.ok?t:go(e(t.error))},wo=function(){return wo=Object.assign||function(e){for(var t,n=1,i=arguments.length;n<i;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},wo.apply(this,arguments)};function bo(e,t){if(e===t)return!0;if(null===e&&null===t)return!0;if(typeof e!=typeof t)return!1;if(\"object\"==typeof e){if(Array.isArray(e)){if(!Array.isArray(t))return!1;if(e.length!==t.length)return!1;for(var n=0;n<e.length;n++)if(!bo(e[n],t[n]))return!1;return!0}var i=Object.keys(e);if(i.length!==Object.keys(t).length)return!1;for(n=0;n<i.length;n++){if(!t.hasOwnProperty(i[n]))return!1;if(!bo(e[i[n]],t[i[n]]))return!1}return!0}}var ko=function(e){return Array.isArray(e)},Co=function(e){return\"object\"==typeof e&&null!==e&&!ko(e)},No=function(e,t){return\"expected \"+e+\", got \"+function(e){switch(typeof e){case\"string\":return\"a string\";case\"number\":return\"a number\";case\"boolean\":return\"a boolean\";case\"undefined\":return\"undefined\";case\"object\":return e instanceof Array?\"an array\":null===e?\"null\":\"an object\";default:return JSON.stringify(e)}}(t)},xo=function(e){return e.map((function(e){return\"string\"==typeof e?\".\"+e:\"[\"+e+\"]\"})).join(\"\")},So=function(e,t){var n=t.at,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&\"function\"==typeof Object.getOwnPropertySymbols){var o=0;for(i=Object.getOwnPropertySymbols(e);o<i.length;o++)t.indexOf(i[o])<0&&Object.prototype.propertyIsEnumerable.call(e,i[o])&&(n[i[o]]=e[i[o]])}return n}(t,[\"at\"]);return wo({at:e+(n||\"\")},i)},Do=function(){function e(t){var n=this;this.decode=t,this.run=function(e){return yo((function(t){return{kind:\"DecoderError\",input:e,at:\"input\"+(t.at||\"\"),message:t.message||\"\"}}),n.decode(e))},this.runPromise=function(e){return function(e){return!0===e.ok?Promise.resolve(e.result):Promise.reject(e.error)}(n.run(e))},this.runWithException=function(e){return function(e){if(!0===e.ok)return e.result;throw e.error}(n.run(e))},this.map=function(t){return new e((function(e){return function(e,t){return!0===t.ok?po(e(t.result)):t}(t,n.decode(e))}))},this.andThen=function(t){return new e((function(e){return function(e,t){return!0===t.ok?e(t.result):t}((function(n){return t(n).decode(e)}),n.decode(e))}))},this.where=function(t,i){return n.andThen((function(n){return t(n)?e.succeed(n):e.fail(i)}))}}return e.string=function(){return new e((function(e){return\"string\"==typeof e?po(e):go({message:No(\"a string\",e)})}))},e.number=function(){return new e((function(e){return\"number\"==typeof e?po(e):go({message:No(\"a number\",e)})}))},e.boolean=function(){return new e((function(e){return\"boolean\"==typeof e?po(e):go({message:No(\"a boolean\",e)})}))},e.constant=function(t){return new e((function(e){return bo(e,t)?po(t):go({message:\"expected \"+JSON.stringify(t)+\", got \"+JSON.stringify(e)})}))},e.object=function(t){return new e((function(e){if(Co(e)&&t){var n={};for(var i in t)if(t.hasOwnProperty(i)){var o=t[i].decode(e[i]);if(!0!==o.ok)return void 0===e[i]?go({message:\"the key '\"+i+\"' is required but was not present\"}):go(So(\".\"+i,o.error));void 0!==o.result&&(n[i]=o.result)}return po(n)}return Co(e)?po(e):go({message:No(\"an object\",e)})}))},e.array=function(t){return new e((function(e){if(ko(e)&&t){return e.reduce((function(e,n,i){return vo((function(e,t){return e.concat([t])}),e,function(e,n){return yo((function(e){return So(\"[\"+n+\"]\",e)}),t.decode(e))}(n,i))}),po([]))}return ko(e)?po(e):go({message:No(\"an array\",e)})}))},e.tuple=function(t){return new e((function(e){if(ko(e)){if(e.length!==t.length)return go({message:\"expected a tuple of length \"+t.length+\", got one of length \"+e.length});for(var n=[],i=0;i<t.length;i++){var o=t[i].decode(e[i]);if(!o.ok)return go(So(\"[\"+i+\"]\",o.error));n[i]=o.result}return po(n)}return go({message:No(\"a tuple of length \"+t.length,e)})}))},e.union=function(t,n){for(var i=[],o=2;o<arguments.length;o++)i[o-2]=arguments[o];return e.oneOf.apply(e,[t,n].concat(i))},e.intersection=function(t,n){for(var i=[],o=2;o<arguments.length;o++)i[o-2]=arguments[o];return new e((function(e){return[t,n].concat(i).reduce((function(t,n){return vo(Object.assign,t,n.decode(e))}),po({}))}))},e.anyJson=function(){return new e((function(e){return po(e)}))},e.unknownJson=function(){return new e((function(e){return po(e)}))},e.dict=function(t){return new e((function(e){if(Co(e)){var n={};for(var i in e)if(e.hasOwnProperty(i)){var o=t.decode(e[i]);if(!0!==o.ok)return go(So(\".\"+i,o.error));n[i]=o.result}return po(n)}return go({message:No(\"an object\",e)})}))},e.optional=function(t){return new e((function(e){return null==e?po(void 0):t.decode(e)}))},e.oneOf=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return new e((function(e){for(var n=[],i=0;i<t.length;i++){var o=t[i].decode(e);if(!0===o.ok)return o;n[i]=o.error}var r=n.map((function(e){return\"at error\"+(e.at||\"\")+\": \"+e.message})).join('\", \"');return go({message:'expected a value matching one of the decoders, got the errors [\"'+r+'\"]'})}))},e.withDefault=function(t,n){return new e((function(e){return po(function(e,t){return!0===t.ok?t.result:e}(t,n.decode(e)))}))},e.valueAt=function(t,n){return new e((function(e){for(var i=e,o=0;o<t.length;o++){if(void 0===i)return go({at:xo(t.slice(0,o+1)),message:\"path does not exist\"});if(\"string\"==typeof t[o]&&!Co(i))return go({at:xo(t.slice(0,o+1)),message:No(\"an object\",i)});if(\"number\"==typeof t[o]&&!ko(i))return go({at:xo(t.slice(0,o+1)),message:No(\"an array\",i)});i=i[t[o]]}return yo((function(e){return void 0===i?{at:xo(t),message:\"path does not exist\"}:So(xo(t),e)}),n.decode(i))}))},e.succeed=function(t){return new e((function(e){return po(t)}))},e.fail=function(t){return new e((function(e){return go({message:t})}))},e.lazy=function(t){return new e((function(e){return t().decode(e)}))},e}(),Eo=Do.string;Do.number;var Io=Do.boolean,Ao=Do.anyJson;Do.unknownJson;var Mo=Do.constant,To=Do.object,Po=Do.array;Do.tuple,Do.dict;var _o=Do.optional,Oo=Do.oneOf;Do.union,Do.intersection,Do.withDefault,Do.valueAt,Do.succeed,Do.fail,Do.lazy;const Lo=[\"name\",\"title\",\"version\",\"customProperties\",\"icon\",\"caption\",\"type\"],Fo=[\"appId\",\"name\",\"type\",\"details\",\"version\",\"title\",\"tooltip\",\"lang\",\"description\",\"categories\",\"icons\",\"screenshots\",\"contactEmail\",\"moreInfo\",\"publisher\",\"customConfig\",\"hostManifests\",\"interop\",\"localizedVersions\"];var Bo=function(e){return{ok:!0,result:e}},Ro=function(e){return{ok:!1,error:e}},jo=function(e,t,n){return!1===t.ok?t:!1===n.ok?n:Bo(e(t.result,n.result))},Ho=function(e,t){return!0===t.ok?t:Ro(e(t.error))},zo=function(){return zo=Object.assign||function(e){for(var t,n=1,i=arguments.length;n<i;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},zo.apply(this,arguments)};function $o(e,t){if(e===t)return!0;if(null===e&&null===t)return!0;if(typeof e!=typeof t)return!1;if(\"object\"==typeof e){if(Array.isArray(e)){if(!Array.isArray(t))return!1;if(e.length!==t.length)return!1;for(var n=0;n<e.length;n++)if(!$o(e[n],t[n]))return!1;return!0}var i=Object.keys(e);if(i.length!==Object.keys(t).length)return!1;for(n=0;n<i.length;n++){if(!t.hasOwnProperty(i[n]))return!1;if(!$o(e[i[n]],t[i[n]]))return!1}return!0}}var Vo=function(e){return Array.isArray(e)},Yo=function(e){return\"object\"==typeof e&&null!==e&&!Vo(e)},Uo=function(e,t){return\"expected \"+e+\", got \"+function(e){switch(typeof e){case\"string\":return\"a string\";case\"number\":return\"a number\";case\"boolean\":return\"a boolean\";case\"undefined\":return\"undefined\";case\"object\":return e instanceof Array?\"an array\":null===e?\"null\":\"an object\";default:return JSON.stringify(e)}}(t)},Wo=function(e){return e.map((function(e){return\"string\"==typeof e?\".\"+e:\"[\"+e+\"]\"})).join(\"\")},Jo=function(e,t){var n=t.at,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&\"function\"==typeof Object.getOwnPropertySymbols){var o=0;for(i=Object.getOwnPropertySymbols(e);o<i.length;o++)t.indexOf(i[o])<0&&Object.prototype.propertyIsEnumerable.call(e,i[o])&&(n[i[o]]=e[i[o]])}return n}(t,[\"at\"]);return zo({at:e+(n||\"\")},i)},qo=function(){function e(t){var n=this;this.decode=t,this.run=function(e){return Ho((function(t){return{kind:\"DecoderError\",input:e,at:\"input\"+(t.at||\"\"),message:t.message||\"\"}}),n.decode(e))},this.runPromise=function(e){return function(e){return!0===e.ok?Promise.resolve(e.result):Promise.reject(e.error)}(n.run(e))},this.runWithException=function(e){return function(e){if(!0===e.ok)return e.result;throw e.error}(n.run(e))},this.map=function(t){return new e((function(e){return function(e,t){return!0===t.ok?Bo(e(t.result)):t}(t,n.decode(e))}))},this.andThen=function(t){return new e((function(e){return function(e,t){return!0===t.ok?e(t.result):t}((function(n){return t(n).decode(e)}),n.decode(e))}))},this.where=function(t,i){return n.andThen((function(n){return t(n)?e.succeed(n):e.fail(i)}))}}return e.string=function(){return new e((function(e){return\"string\"==typeof e?Bo(e):Ro({message:Uo(\"a string\",e)})}))},e.number=function(){return new e((function(e){return\"number\"==typeof e?Bo(e):Ro({message:Uo(\"a number\",e)})}))},e.boolean=function(){return new e((function(e){return\"boolean\"==typeof e?Bo(e):Ro({message:Uo(\"a boolean\",e)})}))},e.constant=function(t){return new e((function(e){return $o(e,t)?Bo(t):Ro({message:\"expected \"+JSON.stringify(t)+\", got \"+JSON.stringify(e)})}))},e.object=function(t){return new e((function(e){if(Yo(e)&&t){var n={};for(var i in t)if(t.hasOwnProperty(i)){var o=t[i].decode(e[i]);if(!0!==o.ok)return void 0===e[i]?Ro({message:\"the key '\"+i+\"' is required but was not present\"}):Ro(Jo(\".\"+i,o.error));void 0!==o.result&&(n[i]=o.result)}return Bo(n)}return Yo(e)?Bo(e):Ro({message:Uo(\"an object\",e)})}))},e.array=function(t){return new e((function(e){if(Vo(e)&&t){return e.reduce((function(e,n,i){return jo((function(e,t){return e.concat([t])}),e,function(e,n){return Ho((function(e){return Jo(\"[\"+n+\"]\",e)}),t.decode(e))}(n,i))}),Bo([]))}return Vo(e)?Bo(e):Ro({message:Uo(\"an array\",e)})}))},e.tuple=function(t){return new e((function(e){if(Vo(e)){if(e.length!==t.length)return Ro({message:\"expected a tuple of length \"+t.length+\", got one of length \"+e.length});for(var n=[],i=0;i<t.length;i++){var o=t[i].decode(e[i]);if(!o.ok)return Ro(Jo(\"[\"+i+\"]\",o.error));n[i]=o.result}return Bo(n)}return Ro({message:Uo(\"a tuple of length \"+t.length,e)})}))},e.union=function(t,n){for(var i=[],o=2;o<arguments.length;o++)i[o-2]=arguments[o];return e.oneOf.apply(e,[t,n].concat(i))},e.intersection=function(t,n){for(var i=[],o=2;o<arguments.length;o++)i[o-2]=arguments[o];return new e((function(e){return[t,n].concat(i).reduce((function(t,n){return jo(Object.assign,t,n.decode(e))}),Bo({}))}))},e.anyJson=function(){return new e((function(e){return Bo(e)}))},e.unknownJson=function(){return new e((function(e){return Bo(e)}))},e.dict=function(t){return new e((function(e){if(Yo(e)){var n={};for(var i in e)if(e.hasOwnProperty(i)){var o=t.decode(e[i]);if(!0!==o.ok)return Ro(Jo(\".\"+i,o.error));n[i]=o.result}return Bo(n)}return Ro({message:Uo(\"an object\",e)})}))},e.optional=function(t){return new e((function(e){return null==e?Bo(void 0):t.decode(e)}))},e.oneOf=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return new e((function(e){for(var n=[],i=0;i<t.length;i++){var o=t[i].decode(e);if(!0===o.ok)return o;n[i]=o.error}var r=n.map((function(e){return\"at error\"+(e.at||\"\")+\": \"+e.message})).join('\", \"');return Ro({message:'expected a value matching one of the decoders, got the errors [\"'+r+'\"]'})}))},e.withDefault=function(t,n){return new e((function(e){return Bo(function(e,t){return!0===t.ok?t.result:e}(t,n.decode(e)))}))},e.valueAt=function(t,n){return new e((function(e){for(var i=e,o=0;o<t.length;o++){if(void 0===i)return Ro({at:Wo(t.slice(0,o+1)),message:\"path does not exist\"});if(\"string\"==typeof t[o]&&!Yo(i))return Ro({at:Wo(t.slice(0,o+1)),message:Uo(\"an object\",i)});if(\"number\"==typeof t[o]&&!Vo(i))return Ro({at:Wo(t.slice(0,o+1)),message:Uo(\"an array\",i)});i=i[t[o]]}return Ho((function(e){return void 0===i?{at:Wo(t),message:\"path does not exist\"}:Jo(Wo(t),e)}),n.decode(i))}))},e.succeed=function(t){return new e((function(e){return Bo(t)}))},e.fail=function(t){return new e((function(e){return Ro({message:t})}))},e.lazy=function(t){return new e((function(e){return t().decode(e)}))},e}(),Ko=qo.string,Go=qo.number,Qo=qo.boolean,Xo=qo.anyJson;qo.unknownJson;var Zo=qo.constant,er=qo.object,tr=qo.array;qo.tuple;var nr=qo.dict,ir=qo.optional,or=qo.oneOf;qo.union,qo.intersection,qo.withDefault,qo.valueAt,qo.succeed,qo.fail,qo.lazy;const rr=Ko().where((e=>e.length>0),\"Expected a non-empty string\"),ar=Go().where((e=>e>=0),\"Expected a non-negative number\"),sr=er({name:rr,displayName:ir(Ko()),contexts:ir(tr(Ko())),customConfig:ir(er())}),cr=or(Zo(\"web\"),Zo(\"native\"),Zo(\"citrix\"),Zo(\"onlineNative\"),Zo(\"other\")),lr=er({url:rr}),ur=er({src:rr,size:ir(rr),type:ir(rr)}),dr=er({src:rr,size:ir(rr),type:ir(rr),label:ir(rr)}),fr=er({contexts:tr(rr),displayName:ir(rr),resultType:ir(rr),customConfig:ir(Xo())}),mr=er({listensFor:ir(nr(fr)),raises:ir(nr(tr(rr)))}),hr=er({broadcasts:ir(tr(rr)),listensFor:ir(tr(rr))}),pr=er({name:rr,description:ir(rr),broadcasts:ir(tr(rr)),listensFor:ir(tr(rr))}),gr=er({intents:ir(mr),userChannels:ir(hr),appChannels:ir(tr(pr))}),vr=er({url:ir(rr),top:ir(Go()),left:ir(Go()),width:ir(ar),height:ir(ar)}),yr=er({name:ir(rr),type:ir(rr.where((e=>\"window\"===e),\"Expected a value of window\")),title:ir(rr),version:ir(rr),customProperties:ir(Xo()),icon:ir(Ko()),caption:ir(Ko()),details:ir(vr),intents:ir(tr(sr)),hidden:ir(Qo())}),wr=er({name:rr,appId:rr,title:ir(rr),version:ir(rr),manifest:rr,manifestType:rr,tooltip:ir(rr),description:ir(rr),contactEmail:ir(rr),supportEmail:ir(rr),publisher:ir(rr),images:ir(tr(er({url:ir(rr)}))),icons:ir(tr(er({icon:ir(rr)}))),customConfig:Xo(),intents:ir(tr(sr))}),br=er({appId:ir(rr),name:ir(rr),details:ir(lr),version:ir(rr),title:ir(rr),tooltip:ir(rr),lang:ir(rr),description:ir(rr),categories:ir(tr(rr)),icons:ir(tr(ur)),screenshots:ir(tr(dr)),contactEmail:ir(rr),supportEmail:ir(rr),moreInfo:ir(rr),publisher:ir(rr),customConfig:ir(tr(Xo())),hostManifests:ir(Xo()),interop:ir(gr)}),kr=er({appId:rr,name:ir(rr),type:cr,details:lr,version:ir(rr),title:ir(rr),tooltip:ir(rr),lang:ir(rr),description:ir(rr),categories:ir(tr(rr)),icons:ir(tr(ur)),screenshots:ir(tr(dr)),contactEmail:ir(rr),supportEmail:ir(rr),moreInfo:ir(rr),publisher:ir(rr),customConfig:ir(tr(Xo())),hostManifests:ir(Xo()),interop:ir(gr),localizedVersions:ir(nr(br))}),Cr=or(wr,kr),Nr=e=>`${e.kind} at ${e.at}: ${JSON.stringify(e.input)}. Reason - ${e.message}`;class xr{fdc3ToDesktopDefinitionType={web:\"window\",native:\"exe\",citrix:\"citrix\",onlineNative:\"clickonce\",other:\"window\"};toApi(){return{isFdc3Definition:this.isFdc3Definition.bind(this),parseToBrowserBaseAppData:this.parseToBrowserBaseAppData.bind(this),parseToDesktopAppConfig:this.parseToDesktopAppConfig.bind(this)}}isFdc3Definition(e){const t=Cr.run(e);return t.ok?e.appId&&e.details?{isFdc3:!0,version:\"2.0\"}:e.manifest?{isFdc3:!0,version:\"1.2\"}:{isFdc3:!1,reason:\"The passed definition is not FDC3\"}:{isFdc3:!1,reason:Nr(t.error)}}parseToBrowserBaseAppData(e){const{isFdc3:t,version:n}=this.isFdc3Definition(e);if(!t)throw new Error(\"The passed definition is not FDC3\");const i=Cr.run(e);if(!i.ok)throw new Error(`Invalid FDC3 ${n} definition. Error: ${Nr(i.error)}`);const o=this.getUserPropertiesFromDefinition(e,n),r={url:this.getUrl(e,n)},a={name:e.appId,type:\"window\",createOptions:r,userProperties:{...o,intents:\"1.2\"===n?o.intents:this.getIntentsFromV2AppDefinition(e),details:r},title:e.title,version:e.version,icon:this.getIconFromDefinition(e,n),caption:e.description,fdc3:\"2.0\"===n?{...e,definitionVersion:\"2.0\"}:void 0},s=e.hostManifests?.ioConnect||e.hostManifests?.Glue42;if(!s)return a;const c=yr.run(s);if(!c.ok)throw new Error(`Invalid FDC3 ${n} definition. Error: ${Nr(c.error)}`);return Object.keys(c.result).length?this.mergeBaseAppDataWithGlueManifest(a,c.result):a}parseToDesktopAppConfig(e){const{isFdc3:t,version:n}=this.isFdc3Definition(e);if(!t)throw new Error(\"The passed definition is not FDC3\");const i=Cr.run(e);if(!i.ok)throw new Error(`Invalid FDC3 ${n} definition. Error: ${Nr(i.error)}`);if(\"1.2\"===n){const t=e;return{name:t.appId,type:\"window\",details:{url:this.getUrl(e,n)},version:t.version,title:t.title,tooltip:t.tooltip,caption:t.description,icon:t.icons?.[0].icon,intents:t.intents,customProperties:{manifestType:t.manifestType,images:t.images,contactEmail:t.contactEmail,supportEmail:t.supportEmail,publisher:t.publisher,icons:t.icons,customConfig:t.customConfig}}}const o=e,r={name:o.appId,type:this.fdc3ToDesktopDefinitionType[o.type],details:o.details,version:o.version,title:o.title,tooltip:o.tooltip,caption:o.description,icon:this.getIconFromDefinition(o,\"2.0\"),intents:this.getIntentsFromV2AppDefinition(o),fdc3:{...o,definitionVersion:\"2.0\"}},a=e.hostManifests?.ioConnect||e.hostManifests?.Glue42;if(!a)return r;if(\"object\"!=typeof a||Array.isArray(a))throw new Error(`Invalid '${e.hostManifests.ioConnect?\"hostManifests.ioConnect\":\"hostManifests['Glue42']\"}' key`);return this.mergeDesktopConfigWithGlueManifest(r,a)}getUserPropertiesFromDefinition(e,t){return\"1.2\"===t?Object.fromEntries(Object.entries(e).filter((([e])=>!Lo.includes(e)))):Object.fromEntries(Object.entries(e).filter((([e])=>!Lo.includes(e)&&!Fo.includes(e))))}getUrl(e,t){let n;if(\"1.2\"===t){const t=JSON.parse(e.manifest);n=t.details?.url||t.url}else n=e.details?.url;if(!n||\"string\"!=typeof n)throw new Error(`Invalid FDC3 ${t} definition. Provide valid 'url' under '${\"1.2\"===t?\"manifest\":\"details\"}' key`);return n}getIntentsFromV2AppDefinition(e){const t=e.interop?.intents?.listensFor;if(!t)return;return Object.entries(t).map((e=>{const[t,n]=e;return{name:t,...n}}))}getIconFromDefinition(e,t){return\"1.2\"===t?e.icons?.find((e=>e.icon))?.icon||void 0:e.icons?.find((e=>e.src))?.src||void 0}mergeBaseAppDataWithGlueManifest(e,t){let n=e;if(t.customProperties&&(n.userProperties={...e.userProperties,...t.customProperties}),t.details){const i={...e.createOptions,...t.details};n.createOptions=i,n.userProperties.details=i}return Array.isArray(t.intents)&&(n.userProperties.intents=(n.userProperties.intents||[]).concat(t.intents)),n={...n,...t},delete n.details,delete n.intents,n}mergeDesktopConfigWithGlueManifest(e,t){const n=Object.assign({},e,t,{details:{...e.details,...t.details}});return Array.isArray(t.intents)&&(n.intents=(e.intents||[]).concat(t.intents)),n}}const Sr={common:{nonEmptyStringDecoder:rr,nonNegativeNumberDecoder:ar},fdc3:{allDefinitionsDecoder:Cr,v1DefinitionDecoder:wr,v2DefinitionDecoder:kr}};var Dr;!function(e){e.USER_CANCELLED=\"User Closed Intents Resolver UI without choosing a handler\",e.CALLER_NOT_DEFINED=\"Caller Id is not defined\",e.TIMEOUT_HIT=\"Timeout hit\",e.INTENT_NOT_FOUND=\"Cannot find Intent\",e.HANDLER_NOT_FOUND=\"Cannot find Intent Handler\",e.TARGET_INSTANCE_UNAVAILABLE=\"Cannot start Target Instance\",e.INTENT_DELIVERY_FAILED=\"Target Instance did not add a listener\",e.RESOLVER_UNAVAILABLE=\"Intents Resolver UI unavailable\",e.RESOLVER_TIMEOUT=\"User did not choose a handler\",e.INVALID_RESOLVER_RESPONSE=\"Intents Resolver UI returned invalid response\",e.INTENT_HANDLER_REJECTION=\"Intent Handler function processing the raised intent threw an error or rejected the promise it returned\"}(Dr||(Dr={}));const Er=new class{_fdc3;_decoders=Sr;_errors={intents:Dr};get fdc3(){return this._fdc3||(this._fdc3=(new xr).toApi()),this._fdc3}get decoders(){return this._decoders}get errors(){return this._errors}};Er.fdc3;const Ir=Er.decoders;Er.errors;const Ar=Ir.common.nonEmptyStringDecoder,Mr=Oo(Mo(\"add\"),Mo(\"align-bottom\"),Mo(\"align-bottom-solid\"),Mo(\"align-left\"),Mo(\"align-left-bottom\"),Mo(\"align-left-bottom-solid\"),Mo(\"align-left-solid\"),Mo(\"align-left-top\"),Mo(\"align-left-top-solid\"),Mo(\"align-right\"),Mo(\"align-right-bottom\"),Mo(\"align-right-bottom-solid\"),Mo(\"align-right-solid\"),Mo(\"align-right-top\"),Mo(\"align-right-top-solid\"),Mo(\"align-top\"),Mo(\"align-top-solid\"),Mo(\"always-on-top\"),Mo(\"always-on-top-on\"),Mo(\"application\"),Mo(\"arrow-down-long\"),Mo(\"arrow-down-to-bracket\"),Mo(\"arrow-left-long\"),Mo(\"arrow-right-from-bracket\"),Mo(\"arrow-right-long\"),Mo(\"arrow-right\"),Mo(\"arrow-up\"),Mo(\"arrow-up-long\"),Mo(\"ban\"),Mo(\"bell\"),Mo(\"bell-solid\"),Mo(\"bookmark\"),Mo(\"bullseye-pointer\"),Mo(\"certificate\"),Mo(\"check\"),Mo(\"check-light\"),Mo(\"check-solid\"),Mo(\"chevron-down\"),Mo(\"chevron-left\"),Mo(\"chevron-right\"),Mo(\"chevron-up\"),Mo(\"circle-info\"),Mo(\"circle-xmark\"),Mo(\"circle-xmark-full\"),Mo(\"clock\"),Mo(\"clock-rotate-left\"),Mo(\"clone\"),Mo(\"close\"),Mo(\"cog\"),Mo(\"cog-solid\"),Mo(\"collapse\"),Mo(\"copy\"),Mo(\"download\"),Mo(\"delete-left\"),Mo(\"dev-tools\"),Mo(\"ellipsis\"),Mo(\"ellipsis-vertical\"),Mo(\"expand\"),Mo(\"envelope\"),Mo(\"envelope-open\"),Mo(\"exclamation-mark\"),Mo(\"expand\"),Mo(\"feedback\"),Mo(\"filter\"),Mo(\"floppy\"),Mo(\"floppy-disk-pen\"),Mo(\"folder\"),Mo(\"folder-open\"),Mo(\"globe\"),Mo(\"group\"),Mo(\"hidden\"),Mo(\"home\"),Mo(\"house\"),Mo(\"info\"),Mo(\"keyboard\"),Mo(\"layout\"),Mo(\"link\"),Mo(\"list-ul\"),Mo(\"lock\"),Mo(\"logo\"),Mo(\"minimize\"),Mo(\"minimize-down\"),Mo(\"paper-plane-top\"),Mo(\"paperclip\"),Mo(\"pause\"),Mo(\"pen-line\"),Mo(\"pen-to-square\"),Mo(\"pin\"),Mo(\"play\"),Mo(\"pop-in\"),Mo(\"pop-in-widget\"),Mo(\"pop-out\"),Mo(\"power-off\"),Mo(\"publish\"),Mo(\"refresh\"),Mo(\"resize\"),Mo(\"restore\"),Mo(\"rotate-right\"),Mo(\"search\"),Mo(\"search-filled\"),Mo(\"sliders\"),Mo(\"snooze\"),Mo(\"spinner\"),Mo(\"square\"),Mo(\"square-arrow-down\"),Mo(\"square-arrow-up\"),Mo(\"star\"),Mo(\"star-full\"),Mo(\"sticky-off\"),Mo(\"sticky-off-hover\"),Mo(\"sticky-on\"),Mo(\"sticky-on-hover\"),Mo(\"subscribe\"),Mo(\"system-close\"),Mo(\"system-maximize\"),Mo(\"system-minimize\"),Mo(\"thumbs-down\"),Mo(\"thumbs-up\"),Mo(\"trash\"),Mo(\"trash-can\"),Mo(\"triangle-exclamation\"),Mo(\"unlock\"),Mo(\"unpin\"),Mo(\"up-to-line\"),Mo(\"user\"),Mo(\"user-gear\"),Mo(\"visible\"),Mo(\"workspace\")),Tr=To({id:Ar,title:Ar,description:_o(Eo()),icon:_o(Mr),iconSrc:_o(Ar),contextMenuActions:_o(Po(Ao())),type:Ar}),Pr=Oo(Mo(\"Left\"),Mo(\"Right\")),_r=Oo(Mo(\"daily\"),Mo(\"weekly\")),Or=Oo(Mo(\"Sunday\"),Mo(\"Monday\"),Mo(\"Tuesday\"),Mo(\"Wednesday\"),Mo(\"Thursday\"),Mo(\"Friday\"),Mo(\"Saturday\")),Lr=To({customPrefs:_o(Ao()),_launchpad_collapsedSections:_o(Po(Ar)),_launchpad_favorites:_o(Po(Tr)),_launchpad_isLayoutsPanelOpen:_o(Io()),_launchpad_isCollapsed:_o(Io()),_launchpad_isPinned:_o(Io()),_launchpad_pinnedPosition:_o(Pr),_launchpad_allowDocking:_o(Io()),_launchpad_minimizeToTray:_o(Io()),_launchpad_autoCloseStartingAppsAndWorkspaces:_o(Io()),_launchpad_showTutorialOnStartup:_o(Io()),_layouts_restoreLastSaved:_o(Io()),_layouts_saveCurrentOnExit:_o(Io()),_layouts_showUnsavedChangesPrompt:_o(Io()),_layouts_showDeletePrompt:_o(Io()),_downloads_askForEachDownload:_o(Io()),_downloads_location:_o(Eo()),_system_scheduleRestart:_o(Io()),_system_scheduleRestartTime:_o(Ar),_system_scheduleRestartFrequency:_o(_r),_system_scheduleRestartDay:_o(Or),_system_scheduleShutdown:_o(Io()),_system_scheduleShutdownTime:_o(Ar),_system_scheduleShutdownFrequency:_o(_r),_system_scheduleShutdownDay:_o(Or)}),Fr=async e=>{const{io:t,variant:n,text:i,error:o}=e,r=fo(o);try{if(n===mo.WARNING&&t.logger.warn(r?`${i} ${r}`:i),!(\"modals\"in t)||!t.modals)throw new Error(\"Modals are not enabled.\");const e={text:i,variant:n,ttl:ho[n]};await t.modals.alerts.request(e)}catch(e){console.warn(\"Failed to request alert. \",{error:e})}},Br=a(void 0),Rr=({children:t,launchpadMode:n})=>{const[i,o]=c(),[r,a]=c(!1),[d,f]=c(),m=s(v),h=l((()=>({prefs:i,isInitialSetupCompleted:r,initialSetupError:d})),[i,r,d]);return u((()=>{if(!m)return;let e=!1;const t=m.contexts.subscribe(Xi,(t=>{if(e)return;const n=Lr.run(t);if(!n.ok)return void m.logger.warn(`The received data for context ${Xi} is with an invalid shape: ${fo(n.error.message)}`);const i=n.result;o(i),m.prefs.updateFor(Qi,i).catch((e=>{m.logger.warn(`Failed to update platform prefs. Error: ${fo(e)}`)}))}));return()=>{e=!0,t.then((e=>{e()}))}}),[m]),u((()=>{if(!m)return;(async()=>{try{const e=await m.contexts.get(Xi),t=Lr.run(e);if(!t.ok)throw new Error(`The data in context ${Xi} is with an invalid shape: ${fo(t.error.message)}`);const i=t.result;if(Object.keys(i).length>0)return;const o=(await m.prefs.get(Qi))?.data??{},r=Lr.run(o);if(!r.ok)throw new Error(`The stored platform prefs in io.prefs are with an invalid shape: ${fo(r.error.message)}`);const a={[Zi]:\"pinned\"===n||(o[Zi]??!1)},s={...uo,...r.result,...a};await m.contexts.set(Xi,s)}catch(e){f({message:fo(e)}),await Fr({io:m,variant:mo.WARNING,text:\"Initial platform prefs setup failed.\",error:e})}finally{a(!0)}})().catch(console.error)}),[m,n]),e(Br.Provider,{value:h,children:t})};function jr(){const e=s(Br);if(void 0===e)throw new Error(\"usePlatformPrefs must be used within a PlatformPrefsProvider\");return e}function Hr({prefKey:e}){const t=s(v),n=s(Br),i=n?.prefs?.[e],o=n?.isInitialSetupCompleted??!1,[a,l]=c(!o),[f,m]=c(),h=d(0);u((()=>{o&&0===h.current&&l(!1)}),[o]);const p=r((async n=>{if(!t)return;const i=++h.current;l(!0),m(void 0);const o=async n=>{n&&await Fr({io:t,variant:mo.WARNING,text:`Failed to update prefKey \"${e}\".`,error:n}),i===h.current&&(l(!1),n&&m({message:fo(n)}))};let r;if(n instanceof Function)try{r=n((await t.contexts.get(Xi))[e])}catch(e){return o(e)}else r=n;try{const n=Lr.runWithException({[e]:r});await t.contexts.update(Xi,n)}catch(e){return o(e)}await o()}),[t,e]);if(void 0===n)throw new Error(\"usePlatformPref must be used within a PlatformPrefsProvider\");return{error:f,isLoading:a,update:p,value:i}}function zr(e,t,n){return Math.min(Math.max(e,n),t)}class $r extends Error{constructor(e){super(`Failed to parse color: \"${e}\"`)}}var Vr=$r;function Yr(e){if(\"string\"!=typeof e)throw new Vr(e);if(\"transparent\"===e.trim().toLowerCase())return[0,0,0,0];let t=e.trim();t=Xr.test(e)?function(e){const t=e.toLowerCase().trim(),n=Wr[function(e){let t=5381,n=e.length;for(;n;)t=33*t^e.charCodeAt(--n);return(t>>>0)%2341}(t)];if(!n)throw new Vr(e);return`#${n}`}(e):e;const n=qr.exec(t);if(n){const e=Array.from(n).slice(1);return[...e.slice(0,3).map((e=>parseInt(Jr(e,2),16))),parseInt(Jr(e[3]||\"f\",2),16)/255]}const i=Kr.exec(t);if(i){const e=Array.from(i).slice(1);return[...e.slice(0,3).map((e=>parseInt(e,16))),parseInt(e[3]||\"ff\",16)/255]}const o=Gr.exec(t);if(o){const e=Array.from(o).slice(1);return[...e.slice(0,3).map((e=>parseInt(e,10))),parseFloat(e[3]||\"1\")]}const r=Qr.exec(t);if(r){const[t,n,i,o]=Array.from(r).slice(1).map(parseFloat);if(zr(0,100,n)!==n)throw new Vr(e);if(zr(0,100,i)!==i)throw new Vr(e);return[...ea(t,n,i),Number.isNaN(o)?1:o]}throw new Vr(e)}const Ur=e=>parseInt(e.replace(/_/g,\"\"),36),Wr=\"1q29ehhb 1n09sgk7 1kl1ekf_ _yl4zsno 16z9eiv3 1p29lhp8 _bd9zg04 17u0____ _iw9zhe5 _to73___ _r45e31e _7l6g016 _jh8ouiv _zn3qba8 1jy4zshs 11u87k0u 1ro9yvyo 1aj3xael 1gz9zjz0 _3w8l4xo 1bf1ekf_ _ke3v___ _4rrkb__ 13j776yz _646mbhl _nrjr4__ _le6mbhl 1n37ehkb _m75f91n _qj3bzfz 1939yygw 11i5z6x8 _1k5f8xs 1509441m 15t5lwgf _ae2th1n _tg1ugcv 1lp1ugcv 16e14up_ _h55rw7n _ny9yavn _7a11xb_ 1ih442g9 _pv442g9 1mv16xof 14e6y7tu 1oo9zkds 17d1cisi _4v9y70f _y98m8kc 1019pq0v 12o9zda8 _348j4f4 1et50i2o _8epa8__ _ts6senj 1o350i2o 1mi9eiuo 1259yrp0 1ln80gnw _632xcoy 1cn9zldc _f29edu4 1n490c8q _9f9ziet 1b94vk74 _m49zkct 1kz6s73a 1eu9dtog _q58s1rz 1dy9sjiq __u89jo3 _aj5nkwg _ld89jo3 13h9z6wx _qa9z2ii _l119xgq _bs5arju 1hj4nwk9 1qt4nwk9 1ge6wau6 14j9zlcw 11p1edc_ _ms1zcxe _439shk6 _jt9y70f _754zsow 1la40eju _oq5p___ _x279qkz 1fa5r3rv _yd2d9ip _424tcku _8y1di2_ _zi2uabw _yy7rn9h 12yz980_ __39ljp6 1b59zg0x _n39zfzp 1fy9zest _b33k___ _hp9wq92 1il50hz4 _io472ub _lj9z3eo 19z9ykg0 _8t8iu3a 12b9bl4a 1ak5yw0o _896v4ku _tb8k8lv _s59zi6t _c09ze0p 1lg80oqn 1id9z8wb _238nba5 1kq6wgdi _154zssg _tn3zk49 _da9y6tc 1sg7cv4f _r12jvtt 1gq5fmkz 1cs9rvci _lp9jn1c _xw1tdnb 13f9zje6 16f6973h _vo7ir40 _bt5arjf _rc45e4t _hr4e100 10v4e100 _hc9zke2 _w91egv_ _sj2r1kk 13c87yx8 _vqpds__ _ni8ggk8 _tj9yqfb 1ia2j4r4 _7x9b10u 1fc9ld4j 1eq9zldr _5j9lhpx _ez9zl6o _md61fzm\".split(\" \").reduce(((e,t)=>{const n=Ur(t.substring(0,3)),i=Ur(t.substring(3)).toString(16);let o=\"\";for(let e=0;e<6-i.length;e++)o+=\"0\";return e[n]=`${o}${i}`,e}),{});const Jr=(e,t)=>Array.from(Array(t)).map((()=>e)).join(\"\"),qr=new RegExp(`^#${Jr(\"([a-f0-9])\",3)}([a-f0-9])?$`,\"i\"),Kr=new RegExp(`^#${Jr(\"([a-f0-9]{2})\",3)}([a-f0-9]{2})?$`,\"i\"),Gr=new RegExp(`^rgba?\\\\(\\\\s*(\\\\d+)\\\\s*${Jr(\",\\\\s*(\\\\d+)\\\\s*\",2)}(?:,\\\\s*([\\\\d.]+))?\\\\s*\\\\)$`,\"i\"),Qr=/^hsla?\\(\\s*([\\d.]+)\\s*,\\s*([\\d.]+)%\\s*,\\s*([\\d.]+)%(?:\\s*,\\s*([\\d.]+))?\\s*\\)$/i,Xr=/^[a-z]+$/i,Zr=e=>Math.round(255*e),ea=(e,t,n)=>{let i=n/100;if(0===t)return[i,i,i].map(Zr);const o=(e%360+360)%360/60,r=(1-Math.abs(2*i-1))*(t/100),a=r*(1-Math.abs(o%2-1));let s=0,c=0,l=0;o>=0&&o<1?(s=r,c=a):o>=1&&o<2?(s=a,c=r):o>=2&&o<3?(c=r,l=a):o>=3&&o<4?(c=a,l=r):o>=4&&o<5?(s=a,l=r):o>=5&&o<6&&(s=r,l=a);const u=i-r/2;return[s+u,c+u,l+u].map(Zr)};function ta(e){return function(e){if(\"transparent\"===e)return 0;function t(e){const t=e/255;return t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}const[n,i,o]=Yr(e);return.2126*t(n)+.7152*t(i)+.0722*t(o)}(e)>.179}function na({className:t,channel:n,...i}){const o=k(\"io-channel-badge\",t);return e(\"div\",{className:o,style:{color:(r=n.color,ta(r)?\"#000\":\"#fff\"),backgroundColor:n.color},...i,children:e(\"span\",{className:\"io-channel-badge-label\",children:n.label})});var r}function ia(){return e(C,{variant:\"check\"})}function oa({channel:i,handleChannelRestricted:o,restricted:r}){return t(n,{children:[e(\"div\",{children:i.isSelected&&e(\"span\",{children:\"Active\"})}),e(\"div\",{role:\"button\",onClick:e=>e.stopPropagation(),onKeyDown:e=>{\"Enter\"!==e.key&&\" \"!==e.key||e.stopPropagation()},tabIndex:0,children:e(Ri,{label:\"Publish\",checked:i.write,onChange:()=>{o({...i,write:!i.write})},disabled:r?.write})}),e(\"div\",{role:\"button\",onClick:e=>e.stopPropagation(),onKeyDown:e=>{\"Enter\"!==e.key&&\" \"!==e.key||e.stopPropagation()},tabIndex:0,children:e(Ri,{label:\"Subscribe\",checked:i.read,onChange:()=>{o({...i,read:!i.read})},disabled:r?.read})})]})}const ra=a({});function aa({channel:t,isSelected:n,onChannelSelect:i,onChannelRestrict:o,...a}){const{variant:c,selectedChannels:l,restrictedChannels:u}=s(ra),d=n||t.isSelected||l?.includes(t),f=u?.find((e=>e.name===t.name)),m=r((()=>i?.({...t,isSelected:!d})),[t,i,d]),h=r((e=>{o&&o(e)}),[o]);return e(O,{prepend:e(na,{channel:t}),append:\"single\"===c||\"multi\"===c?d&&e(ia,{}):e(oa,{channel:t,handleChannelRestricted:h,restricted:f}),isSelected:d,onClick:m,...a,children:t.name},t.name)}const sa=o((({className:n,variant:i=\"single\",variantToggle:o=!1,channels:r=[],restrictedChannels:a=[],onVariantChange:s,onChannelSelect:c,onChannelRestrict:u,...d},f)=>{const m=k(\"io-list-channels\",\"directionalSingle\"===i&&\"io-bi-direction\",n),h=r.filter((e=>e.isSelected)),p=l((()=>({variant:i,selectedChannels:h,restrictedChannels:a,onVariantChange:s,onChannelSelect:c,onChannelRestrict:u})),[i,h,a,s,c,u]);let g=\"Select Channel\";return\"multi\"===i?g=\"Select Channels\":\"directionalSingle\"===i&&(g=\"Select Directional Channel\"),e(ra.Provider,{value:p,children:e(\"div\",{className:m,ref:f,children:t(H,{variant:\"single\",...d,children:[e(H.ItemTitle,{append:o&&e(Ri,{label:\"Directional\",align:\"right\",onChange:e=>s&&s(e.target.checked),checked:\"directionalSingle\"===i}),children:g}),r?.map((t=>e(aa,{channel:t,onChannelSelect:c,onChannelRestrict:u},t.name)))]})})})}));sa.displayName=\"ChannelSelector\";var ca=Object.freeze({__proto__:null,Channel:aa,ChannelBadge:na,ChannelDirectionalAppend:oa,ChannelSelector:sa,ChannelSingleAppend:ia,useIOCDChannels:function(e){const t=\"T42.ChannelSelector.Execute\",n=s(v),[i,o]=c(null),[a,l]=c([]),[m,h]=c(\"\"),[p,g]=c(!1),[y,w]=c(),[b,k]=c(\"single\"),C=d(),N=n?.windows.my(),x=r((async e=>{const t=n.windows.findById(e),i=await(t?.application?.getConfiguration());return t&&i?i.details?.channelSelector?.preventModifyingRestrictionsFor??[]:[]}),[n.windows]),S=r(((e,t,i)=>{if(\"will-show\"===e.command){const t=async()=>{C.current=i,g(!0);const{windowId:t,channels:r,variant:a}=e,s=\"function\"==typeof n.channels.getRestrictions?await n.channels.getRestrictions(t):{channels:[]},c=r.map((e=>{const t=((e,t)=>e.channels.find((e=>e.name===t.name)))(s,e);return t?{...e,read:t.read??!0,write:t.write??!0}:{...e,read:!0,write:!0}}));let u=c.find((e=>e.isSelected))?.name;if(!u){const e=n?.windows.findById(t);u=await(e?.getChannel())}const d=await x(t);l(d),k(a),h(t),o(((e,t)=>{const n=Array.from({length:e.length},((e,t)=>String.fromCharCode(t+65)));return e.map(((e,i)=>{const o=e.meta;return{key:e.name,color:o.color,name:e.name,isSelected:e.isSelected??e.name===t,label:o?.label??n[i],write:e.write,read:e.read}}))})(c,u)),g(!1)};t().catch((e=>{w(e),g(!1)}))}}),[n?.windows,n?.channels,x]),D=r((({name:e,read:t,write:r,isSelected:a})=>{const s=()=>{if(\"directionalSingle\"!==b)return N?.hide()};o((n=>n?n?.map((n=>n.name===e?{...n,isSelected:a,read:t,write:r}:{...n,isSelected:!1})):n));let c=!0;const l=i?.find((e=>e.isSelected))?.name;\"single\"===b||\"directionalSingle\"===b?c=l===e:\"multi\"===b&&(c=i?.find((t=>t.name===e))?.isSelected??!1),c?(n?.channels.leave)(m,e).finally((()=>{s()?.catch(console.error)})):n?.channels.join(e,m).finally((()=>{s()?.catch(console.error)}))}),[n?.channels,i,b,N,m]),E=r((({name:e,read:t,write:i})=>{const o=n?.channels;\"directionalSingle\"===b&&\"function\"==typeof o?.restrict&&o?.restrict({name:e,read:t,write:i,windowId:m}).catch(console.error)}),[n?.channels,b,m]),I=r((e=>{o((t=>t?t.map((t=>{const n=((e,t)=>e.channels.find((e=>e.name===t.name)))(e,t);return n?{...t,read:n.read,write:n.write}:t})):t))}),[]);return Hi((()=>{N?.hide().catch(console.error)}),[\"Escape\"]),u((()=>{const e=N?.onClosing((async e=>(e({showDialog:!1}),Promise.resolve())));return e}),[N]),u((()=>{const e=n.windows.findById(m);if(!e)return;if(\"function\"!=typeof e?.onChannelRestrictionsChanged)return;return e.onChannelRestrictionsChanged(I)}),[n.windows,m,I]),u((()=>((async()=>{await(n?.interop.registerAsync(t,S))})(),()=>{n?.interop.unregister(t)})),[n?.interop,S]),f((()=>{if(e?.current&&i&&i.length>0){const{height:t,width:n,x:i,y:o}=e.current.getBoundingClientRect();C.current&&t>0&&C.current({height:t,width:n,x:i,y:o})}}),[i,e]),{onChannelSelected:D,onChannelRestricted:E,variant:b,isLoading:p,channels:i,restrictedChannels:a,error:y,windowId:m}}});function la({className:n,draggable:i,title:o,children:r,...a}){const s=k(\"io-dialog-header\",i&&\"draggable\",n);return t(U,{className:s,...a,children:[e(\"h3\",{children:o}),r]})}function ua({children:t,...n}){return e(W,{...n,children:e(W.Content,{children:t})})}function da({children:t,...n}){return e(q,{...n,children:t})}const fa=a({config:{message:\"\"},theme:\"dark\",setResult:()=>{}}),ma=()=>s(fa),ha=t=>{const{id:n,onButtonFocused:i,...o}=t,{config:r}=ma();return e(A,{variant:\"outline\",onFocus:()=>i&&i(n),autoFocus:(a=n,a===r.defaultAction),...o});var a},pa=({timerDuration:t,callback:n})=>{const[i,o]=c(t);u((()=>{if(i<=0)return n();{const e=setInterval((()=>{o((e=>e-1))}),1e3);return()=>{clearInterval(e)}}}),[i,n]);return e(\"p\",{children:`This dialog will close in: ${i} seconds`})};function ga({children:t}){return e(\"div\",{className:\"io-dialog\",role:\"dialog\",children:t})}function va({className:n,placeHolder:i,maxInputLength:o,errorMessage:r,onInput:a,onEnterKeyDown:s}){const[l,f]=c(\"\"),m=d(null),h=k(\"io-control-input\",n);u((()=>{m.current&&m.current.focus()}),[]);return t(\"div\",{className:h,children:[e(\"input\",{className:\"io-input\",ref:m,type:\"text\",maxLength:o,placeholder:i,tabIndex:0,value:l,onChange:e=>{const t=e.target.value,n=e.target.parentElement;f(t);const i=a(t);n&&(0===t.length?n.className=\"\":(n.className=\"was-validated\",i?e.target.setCustomValidity(\"\"):e.target.setCustomValidity(\"Invalid input pattern\")))},onKeyDown:e=>{\"Enter\"===e.key&&(e.preventDefault(),s())}}),r&&l.length>0?e(\"small\",{children:e(\"strong\",{children:r})}):null]})}function ya({children:t}){return e(\"div\",{className:\"io-dialog\",role:\"dialog\",children:t})}var wa=Object.freeze({__proto__:null,Dialog:function({config:n,setResult:i,header:o,body:a,footer:s}){if(!n)throw new Error(\"Please provide a config prop to Dialog Component\");if(!i)throw new Error(\"Please provide a setResult prop to Dialog Component\");const[l,d]=c(!1),f=$i(\"Escape\"),m=$i(\"Enter\"),[h,p]=c(n.defaultAction),{theme:g}=ma();u((()=>{d(\"SingleInputDialog\"===n?.type)}),[n]);const v=r((()=>{i({action:\"expired\"})}),[i]);u((()=>{document.documentElement.classList.remove(\"dark\",\"light\"),document.documentElement.classList.add(g)}),[g]),u((()=>{f&&i({action:\"closed\"})}),[f,i]),u((()=>{m&&!h&&i({action:\"clicked\",button:n.defaultAction})}),[m,h,n.defaultAction,i]);const y=e=>{e.preventDefault(),i({action:\"clicked\",button:h})},w=()=>{b(\"\")},b=e=>{p(e)};return n.timerDuration&&!1===n.showTimer&&setTimeout((()=>{i({action:\"expired\"})}),1e3*n.timerDuration),t(ga,{children:[o??e(la,{title:n?.title,draggable:!0,children:e(\"div\",{className:\"non-draggable\",children:e(V,{children:e(N,{id:\"close\",icon:\"close\",iconSize:\"12\",size:\"24\",onClick:()=>i({action:\"closed\"}),onBlur:w,tabIndex:-1})})})}),a??e(ua,{children:t(\"div\",{children:[n?.messageTitle&&e(\"h1\",{children:n?.messageTitle}),e(\"p\",{children:n.message}),n?.showTimer&&n?.timerDuration&&e(pa,{timerDuration:n.timerDuration,callback:v})]})}),s??e(da,{children:t(V,{align:\"right\",children:[n.showAffirmativeButton&&e(ha,{id:\"affirmative\",variant:\"primary\",onClick:y,onButtonFocused:b,onBlur:w,disabled:l,children:n.affirmativeButtonName}),n.showNegativeButton&&e(ha,{id:\"negative\",onClick:y,onButtonFocused:b,onBlur:w,children:n.negativeButtonName}),n.showCancelButton&&e(ha,{id:\"cancel\",onClick:y,onButtonFocused:b,onBlur:w,children:n.cancelButtonName})]})})]})},DialogBody:ua,DialogButton:ha,DialogFooter:da,DialogHeader:la,DialogsProvider:({children:t})=>{const[n,i]=c({message:\"\",messageTitle:\"\",operation:\"systemShutdown\",type:\"\"}),[o,r]=c(\"dark\");u((()=>{(async()=>{const e=await a();i(e)})()}),[]);const a=()=>window.glue42dialog.getConfig(),s=e=>{window.glue42dialog.setResult(e)};u((()=>{window.glue42dialog.onThemeChanged((e=>{r(e)})),r(window.glue42dialog.getTheme())}),[]);const d=l((()=>({theme:o,config:n,setResult:s})),[n,o]);return e(fa.Provider,{value:d,children:t})},SingleInputDialog:({config:n,setResult:i,header:o,body:a,footer:s})=>{if(!n)throw new Error(\"Please provide a config prop to Dialog Component\");if(!i)throw new Error(\"Please provide a setResult prop to Dialog Component\");const l=$i(\"Escape\"),d=$i(\"Enter\"),[f,m]=c(n.defaultAction),{theme:h}=ma(),[p,g]=c(\"\"),[v,y]=c(\"\"),[w,b]=c(!1),k=r((()=>{i({action:\"expired\"})}),[i]),C=r((()=>{\"affirmative\"===n?.defaultAction?w&&p.length>0&&i({action:\"clicked\",button:n.defaultAction,value:p}):i({action:\"clicked\",button:n.defaultAction})}),[n.defaultAction,p,i,w]);u((()=>{document.documentElement.classList.remove(\"dark\",\"light\"),document.documentElement.classList.add(h)}),[h]),u((()=>{l&&i({action:\"closed\"})}),[l,i]),u((()=>{d&&!f&&C()}),[d,C,f]);const x=e=>{e.preventDefault(),i(\"affirmative\"===f&&p?{action:\"clicked\",button:f,value:p}:{action:\"clicked\",button:f})},S=()=>{D(\"\")},D=e=>{m(e)};n.timerDuration&&!1===n.showTimer&&setTimeout((()=>{i({action:\"expired\"})}),1e3*n.timerDuration);return t(ya,{children:[o??e(la,{title:n?.title,draggable:!0,children:e(\"div\",{className:\"non-draggable\",children:e(V,{children:e(N,{id:\"close\",icon:\"close\",size:\"24\",onClick:()=>i({action:\"closed\"}),onBlur:S})})})}),a??e(ua,{children:t(\"div\",{style:{width:\"100%\"},children:[n.message&&e(\"p\",{children:n.message}),e(va,{onInput:e=>{let t=!0;try{t=!!e.match(n.inputPattern??\"\"),b(t)}catch(e){console.log(`Failed to validate regular expression pattern: ${n.inputPattern??\"\"}`)}return t?(g(e),y(\"\")):y(n.inputPatternErrorMessage??\"Invalid input pattern\"),t},errorMessage:v,onEnterKeyDown:C,maxInputLength:n.inputMaxLength,placeHolder:n.inputPlaceholder}),n?.showTimer&&n?.timerDuration&&e(pa,{timerDuration:n.timerDuration,callback:k})]})}),s??e(da,{children:t(V,{align:\"right\",children:[n.showAffirmativeButton&&e(ha,{id:\"affirmative\",variant:\"primary\",onClick:x,onButtonFocused:D,onBlur:S,disabled:!w,children:n.affirmativeButtonName}),n.showNegativeButton&&e(ha,{id:\"negative\",onClick:x,onButtonFocused:D,onBlur:S,children:n.negativeButtonName}),n.showCancelButton&&e(ha,{id:\"cancel\",onClick:x,onButtonFocused:D,onBlur:S,children:n.cancelButtonName})]})})]})},useDialogsContext:ma});function ba({title:n=\"Downloads\"}){const{ItemSearch:i,HeaderButtons:o}=Ya();return t(\"div\",{className:\"io-dm-header\",children:[t(Y,{children:[e(Y.Title,{tag:\"h1\",text:n,size:\"large\"}),e(o,{})]}),e(i,{})]})}const ka=window.glue42gd;const Ca=a({configuration:{},items:[],removeItem:()=>{},pauseResumeItem:()=>{},cancelItem:()=>{},clearItems:()=>{},showItemInFolder:()=>{},isSettingsVisible:!1,showSettings:()=>{},hideSettings:()=>{},searchQuery:\"\",setSearch:()=>{},itemsCount:0,setCount:()=>{},setDownloadLocation:()=>{},setDownloadLocationWithDialog:()=>{},sortItems:()=>[],downloadLocationList:[],isDownloadLocationDialogVisible:!1}),Na=()=>s(Ca);function xa({className:n,icon:i=\"search\",placeholder:o=\"Search\",...r}){const a=k(\"io-header-search\",n),s=d(null),{searchQuery:c,setSearch:l,itemsCount:u}=Na();return t(\"div\",{className:a,children:[e(Oi,{ref:s,value:c,iconPrepend:i,placeholder:o,onChange:e=>l(e.target.value),...r}),c.length>0&&e(\"p\",{className:\"io-header-search-count\",children:`${u} results`})]})}function Sa({className:n,...i}){const{SettingsButton:o,MoreButton:r}=Ya();return t(V,{className:n,align:\"right\",...i,children:[e(o,{}),e(r,{})]})}function Da({icon:t=\"cog\",...n}){const{showSettings:i}=Na();return e(N,{icon:t,variant:\"circle\",size:\"32\",onClick:i,...n})}function Ea({icon:n=\"ellipsis\",...i}){const{items:o,clearItems:r}=Na(),a=0===o.length;return t($,{variant:\"light\",...i,children:[e($.ButtonIcon,{icon:n,variant:\"circle\",size:\"32\"}),e($.Content,{children:e($.List,{children:e($.Item,{disabled:a,onClick:e=>(e=>{a?e.stopPropagation():r()})(e),children:\"Clear All\"})})})]})}function Ia(e,t=!1,n=!1,i=!1){const o=e.getDate(),r=[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"][e.getMonth()],a=e.getFullYear(),s=e.getHours(),c=e.getMinutes();let l=\"\";return l=c<10?`0${c}`:`${c}`,t?\"Today\"===t?n?\"Today\":`Today at ${s}:${l}`:\"Yesterday\"===t?n?\"Yesterday\":`Yesterday at ${s}:${l}`:`${s}:${l}`:i?n?`${r} ${o}`:`${r} ${o} at ${s}:${l}`:n?`${r} ${o}, ${a}`:`${r} ${o}, ${a} at ${s}:${l}`}function Aa(e,t={showTime:!0}){const n=new Date(1e3*e),i=new Date,o=Math.round((i-n)/1e3),r=Math.round(o/60),a=i.toDateString()===n.toDateString(),s=new Date(i.setDate(i.getDate()-1)).toDateString()===n.toDateString(),c=i.getFullYear()===n.getFullYear();return t.showTime?o<5?\"Just Now\":o<60?`${o} seconds ago`:o<90?\"about a minute ago\":r<60?`${r} minutes ago`:a?Ia(n,\"Today\",!1,!0):s?Ia(n,\"Yesterday\",!1,!0):c?Ia(n,!1,!1,!0):Ia(n):a?\"Today\":s?\"Yesterday\":c?Ia(n,!1,!0,!0):Ia(n,!1,!0)}function Ma({className:t,...n}){const i=k(\"io-dm-body\",t),{DownloadListEmpty:o,ItemGroup:r,Item:a}=Ya(),{items:s,searchQuery:c,setCount:d,sortItems:f}=Na(),m=f(s),h=Vi(c),p=l((()=>m.filter((e=>e.displayInfo.filename.toLowerCase().includes(h.toLowerCase())||e.displayInfo.url.toLowerCase().includes(h.toLowerCase())))),[m,h]),g=l((()=>p.map((e=>({...e,displayInfo:{...e.displayInfo,startTime:Aa(e.displayInfo.startTime,{showTime:!1})}})))),[p]),v=l((()=>Object.values(g.reduce(((e={},t)=>(e[t.displayInfo.startTime]=e[t.displayInfo.startTime]?.concat([])??[],e[t.displayInfo.startTime].push(t),e)),{}))),[g]);return u((()=>{d(p.length)}),[p,d]),e(\"div\",{className:i,...n,children:v&&0!==v.length?v.map((t=>e(r,{title:String(t[0].displayInfo.startTime)??null,children:t.map((t=>e(a,{item:t},t.id)))},t[0].id??\"\"))):e(o,{})})}function Ta({className:n,icon:i=\"download\",text:o=\"No downloads to display.\",...r}){const a=k(\"io-dm-no-items\",n);return t(\"div\",{className:a,...r,children:[e(C,{variant:i}),e(\"p\",{children:o})]})}function Pa({className:n,title:i,children:o,...r}){const a=k(\"io-dm-item-group\",n);return t(\"div\",{className:a,...r,children:[i&&e(\"p\",{children:i}),o]})}function _a({className:i,item:o,...r}){const{ItemHeader:a,ItemBody:s,ItemFooter:c}=Ya(),{state:l,url:u,filename:d,receivedBytes:f,totalBytes:m,speed:h,timeRemaining:p}=o.displayInfo;if(!o)return e(n,{});const g=k(\"io-dm-item\",o.displayInfo.state&&[l],i);return t(\"div\",{className:g,...r,children:[e(a,{itemID:o.id,filename:d,state:l}),e(s,{state:l,url:u,bytesReceived:f,bytesTotal:m,speed:h,timeRemaining:p}),e(c,{itemID:o.id,state:l})]})}function Oa({bytesReceived:t=0,bytesTotal:n=0,...i}){const o=r((()=>t&&n?Math.round(t/n*100):0),[t,n]);return e(Pi,{value:o(),...i})}function La({className:n,itemID:i,filename:o,state:a,cancel:s,remove:c,...l}){const u=k(\"io-dm-item-header\",n),{cancelItem:d,removeItem:f}=Na(),m=r((e=>{s?s(e):d(e)}),[s,d]),h=r((e=>{c?c(e):f(e)}),[c,f]);return t(\"div\",{className:u,...l,children:[e(E,{text:o,style:{textDecoration:\"interrupted\"===a||\"cancelled\"===a?\"line-through\":\"none\"}}),e(N,{icon:\"close\",onClick:()=>{\"progressing\"===a||\"paused\"===a?m(i):h(i)}})]})}function Fa({className:n,state:i,url:o,bytesReceived:r=0,bytesTotal:a=0,speed:s=0,timeRemaining:c=0,...l}){const u=k(\"io-dm-item-body\",n),d=e=>{const t=[\"Bytes\",\"KB\",\"MB\",\"GB\",\"TB\"];if(0===e)return\"0\";const n=Math.floor(Math.log(e)/Math.log(1024));return 0===n?`${e}${t[n]}`:`${(e/1024**n).toFixed(1)}${t[n]}`};return t(\"div\",{className:u,...l,children:[e(\"p\",{className:\"io-text-small\",children:o}),(m=i,\"cancelled\"===m||\"interrupted\"===m||\"completed\"===m?null:e(Oa,{variant:\"paused\"===m?\"paused\":\"active\",bytesReceived:r,bytesTotal:a})),e(\"p\",{className:\"io-text-default-lh16\",children:\"completed\"===i?`${d(r??0)} - Done`:\"cancelled\"===i||\"interrupted\"===i?`${d(r??0)}/${d(a??0)} - Failed`:`${d(r??0)}/${d(a??0)} (${f=s,(f?`${(f/1e6/8).toFixed(2)}MB/s`:0)??0}) - ${(e=>{const t=Math.floor(e/3600),n=Math.floor(e%3600/60);let i=\"\";return t>0&&(i+=`${t} hour${t>1?\"s\":\"\"}, `),n>0&&(i+=`${n} min${n>1?\"s\":\"\"}, `),((e=Math.floor(e%60))>0||\"\"===i)&&(i+=`${e} sec${1!==e?\"s\":\"\"}`),`${i.trim()} left`})(c)??0}`})]});var f,m}const Ba={success:\"check-solid\",warning:\"exclamation-mark\",critical:\"exclamation-mark\"};function Ra({className:n,variant:i,text:o}){const r=k(\"io-dm-item-status\",`io-dm-item-status-${i}`,n);return t(\"div\",{className:r,children:[i&&e(C,{variant:Ba[i],className:\"icon-severity\"}),o&&e(\"p\",{className:\"io-text-smaller\",children:o})]})}function ja({className:i,itemID:o,state:a,pauseResume:s,showInFolder:c,cancel:l,...u}){const d=k(\"io-dm-item-footer\",i),{pauseResumeItem:f,showItemInFolder:m,cancelItem:h}=Na(),p=r((e=>{s?s(e):f(e)}),[s,f]),g=r((e=>{c?c(e):m(e)}),[c,m]),v=r((e=>{l?l(e):h(e)}),[l,h]);return e(\"div\",{className:d,...u,children:(()=>{switch(a){case\"progressing\":return t(V,{align:\"right\",children:[e(V.Button,{variant:\"primary\",text:\"Pause\",onClick:()=>p(o)}),e(V.Button,{variant:\"link\",text:\"Cancel\",onClick:()=>v(o)})]});case\"paused\":return e(V,{align:\"right\",children:e(V.Button,{variant:\"primary\",text:\"Resume\",onClick:()=>p(o)})});case\"completed\":return t(n,{children:[e(Ra,{variant:\"success\",text:\"Complete\"}),e(V,{align:\"right\",children:e(V.Button,{variant:\"primary\",text:\"Show in Folder\",onClick:()=>g(o)})})]});case\"cancelled\":return e(n,{children:e(Ra,{variant:\"warning\",text:\"Cancelled\"})});case\"interrupted\":return t(n,{children:[e(Ra,{variant:\"critical\",text:\"Failed\"}),e(V,{align:\"right\",children:e(V.Button,{variant:\"primary\",text:\"Retry\",onClick:()=>p(o)})})]});default:return null}})()})}function Ha({className:n,title:i=\"Settings\",...o}){const r=k(\"io-dm-settings-panel\",n),{configuration:{downloadFolder:a},hideSettings:s,setDownloadLocation:c,setDownloadLocationWithDialog:l,isDownloadLocationDialogVisible:u,downloadLocationList:d}=Na();return t(Mi,{className:r,...o,children:[t(Mi.Header,{children:[e(Mi.Header.Title,{size:\"large\",text:i,tag:\"h1\"}),e(Mi.Header.ButtonGroup,{children:e(N,{variant:\"circle\",icon:\"close\",size:\"32\",onClick:()=>{s()},disabled:u})})]}),e(Mi.Body,{children:t(V,{children:[t($,{variant:\"light\",disabled:u,children:[e($.Button,{children:e(\"span\",{className:\"io-dm-settings-panel-download-location\",children:a??d[0]})}),d.length>1&&e($.Content,{children:e($.List,{children:d.map(((t,n)=>!t||0===n||n>3?null:e($.Item,{onClick:()=>{c(t)},children:t},t)))})})]}),e(A,{className:\"io-btn io-dm-settings-panel-download-location-btn\",text:\"Browse\",onClick:()=>{l()},disabled:u})]})})]})}const za={Header:ba,ItemSearch:xa,HeaderButtons:Sa,SettingsButton:Da,MoreButton:Ea,Body:Ma,DownloadListEmpty:Ta,ItemGroup:Pa,Item:_a,ItemProgress:Oa,ItemHeader:La,ItemBody:Fa,ItemFooter:ja,Settings:Ha},$a=a(za),Va=m((({children:t,components:n})=>{const i=l((()=>({...za,...n})),[n]);return e($a.Provider,{value:i,children:t})}));Va.displayName=\"ComponentsStore\";const Ya=()=>s($a);function Ua({className:n,...i}){const o=k(\"io-dm\",n),{Header:r,Body:a,Settings:s}=Ya(),{isSettingsVisible:c}=Na();return t(Mi,{className:o,...i,children:[e(r,{}),e(a,{}),c&&e(s,{})]})}var Wa=Object.freeze({__proto__:null,Body:Ma,DownloadListEmpty:Ta,DownloadManager:function({components:t,...n}){return e(Va,{components:t,children:e(Ua,{...n})})},DownloadManagerProvider:({children:t})=>{const{configuration:n,items:i,removeItem:o,pauseResumeItem:r,cancelItem:a,clearItems:s,showItemInFolder:d,isSettingsVisible:f,showSettings:m,hideSettings:h,searchQuery:p,setSearch:g,itemsCount:v,setCount:y,setDownloadLocation:w,setDownloadLocationWithDialog:b,sortItems:k,isDownloadLocationDialogVisible:C,downloadLocationList:N}=function(){const[e,t]=c({}),[n,i]=c([]),[o,r]=c(0),[a,s]=c([]),[l,d]=c(\"\"),[f,m]=c(!1),[h,p]=c(!1),[g,v]=c({filePaths:[],canceled:!1});u((()=>{if(!ka)return;const e=ka.downloads.onUpdate((e=>i((t=>y(t,e))))),n=ka.downloads.onConfigurationChanged((e=>{t(e)}));return ka.downloads.list().then(i).catch(console.error),ka.downloads.getSavePathList().then((e=>{e.pathList&&s(e.pathList)})).catch(console.error),()=>{e(),n()}}),[]),u((()=>{p(!1)}),[g]);const y=(e,t)=>{const n=e.findIndex((e=>e.id===t.id));if(-1===n)return[t,...e];const i=[...e];return i[n]=t,i};return{items:n,setCount:e=>{r(e)},sortItems:(e,t=!0)=>e.sort(((e,n)=>t?e.displayInfo.startTime<n.displayInfo.startTime?1:-1:e.displayInfo.startTime>n.displayInfo.startTime?1:-1)),setSearch:e=>{d(e)},cancelItem:async e=>{try{await ka.downloads.cancel(e)}catch(e){console.error(e)}},removeItem:async e=>{try{i((t=>t.filter((t=>t.id!==e)))),await ka.downloads.removeItem(e)}catch(e){console.error(e)}},clearItems:async()=>{try{i([]),await ka.downloads.clearDownloadList()}catch(e){console.error(e)}},itemsCount:o,searchQuery:l,showSettings:()=>{m(!0)},hideSettings:()=>{m(!1)},configuration:e,isSettingsVisible:f,pauseResumeItem:async e=>{try{await ka.downloads.pauseResume(e)}catch(e){console.error(e)}},showItemInFolder:async e=>{try{await ka.downloads.showInFolder(e)}catch(e){console.error(e)}},setDownloadLocation:async e=>{try{await ka.downloads.setSavePath(e),s((t=>{if(t.includes(e)){const n=t.filter((t=>t!==e));return[e,...n]}return[e,...t]}))}catch(e){console.error(e)}},downloadLocationList:a,isDownloadLocationDialogVisible:h,setDownloadLocationWithDialog:async()=>{p(!0);try{const e=await ka.downloads.showOpenDialog();if(v(e),!e?.filePaths||0===e.filePaths.length)return;await ka.downloads.setSavePath(e.filePaths[0]),s((t=>{if(t.includes(e.filePaths[0])){const n=t.filter((t=>t!==e.filePaths[0]));return[e.filePaths[0],...n]}return[e.filePaths[0],...t]}))}catch(e){console.error(e)}}}}(),x=l((()=>({configuration:n,items:i,removeItem:o,pauseResumeItem:r,cancelItem:a,clearItems:s,showItemInFolder:d,isSettingsVisible:f,showSettings:m,hideSettings:h,searchQuery:p,setSearch:g,itemsCount:v,setCount:y,setDownloadLocation:w,setDownloadLocationWithDialog:b,sortItems:k,isDownloadLocationDialogVisible:C,downloadLocationList:N})),[n,i,o,r,a,d,s,f,m,h,p,g,v,y,w,b,k,C,N]);return e(Ca.Provider,{value:x,children:t})},Header:ba,HeaderButtons:Sa,Item:_a,ItemBody:Fa,ItemFooter:ja,ItemGroup:Pa,ItemHeader:La,ItemProgress:Oa,ItemSearch:xa,MoreButton:Ea,Settings:Ha,SettingsButton:Da,useDownloadManagerContext:Na});function Ja(e){if(e&&e.errorHandling&&\"function\"!=typeof e.errorHandling&&\"log\"!==e.errorHandling&&\"silent\"!==e.errorHandling&&\"throw\"!==e.errorHandling)throw new Error('Invalid options passed to createRegistry. Prop errorHandling should be [\"log\" | \"silent\" | \"throw\" | (err) => void], but '+typeof e.errorHandling+\" was passed\");var t=e&&\"function\"==typeof e.errorHandling&&e.errorHandling,n={};function i(n,i){var o=n instanceof Error?n:new Error(n);if(t)t(o);else{var r='[ERROR] callback-registry: User callback for key \"'+i+'\" failed: '+o.stack;if(e)switch(e.errorHandling){case\"log\":return console.error(r);case\"silent\":return;case\"throw\":throw new Error(r)}console.error(r)}}return{add:function(e,t,o){var r=n[e];return r||(r=[],n[e]=r),r.push(t),o&&setTimeout((function(){o.forEach((function(o){var r;if(null===(r=n[e])||void 0===r?void 0:r.includes(t))try{Array.isArray(o)?t.apply(void 0,o):t.apply(void 0,[o])}catch(t){i(t,e)}}))}),0),function(){var i=n[e];i&&(i=i.reduce((function(e,n,i){return n===t&&e.length===i||e.push(n),e}),[]),0===i.length?delete n[e]:n[e]=i)}},execute:function(e){for(var t=[],o=1;o<arguments.length;o++)t[o-1]=arguments[o];var r=n[e];if(!r||0===r.length)return[];var a=[];return r.forEach((function(n){try{var o=n.apply(void 0,t);a.push(o)}catch(t){a.push(void 0),i(t,e)}})),a},clear:function(){n={}},clearKey:function(e){n[e]&&delete n[e]}}}Ja.default=Ja;var qa=y(Ja);var Ka=new class{feedback=window.issueReporting;registry=qa();config;subscribed=!1;init(){this.subscribed||(this.subscribed=!0,window.onerror=(e,t,n,i,o)=>{this.feedback.send(\"error\",e,t,n,i,o)},this.feedback.on(\"setTheme\",(e=>{const t=e.newTheme;this.registry.execute(\"on-theme-changed\",t)})),this.feedback.on(\"submitEnded\",(e=>{const t=this.convertSubmitResultToPublic(e);this.registry.execute(\"on-submit-finished\",t)})))}async getConfig(){return this.config=await this.feedback.invoke(\"config\"),this.convertConfigToPublic(this.config)}onThemeChanged(e){return this.registry.add(\"on-theme-changed\",e)}onSubmitFinished(e){return this.registry.add(\"on-submit-finished\",e)}submitReport(e){return new Promise((t=>{const n=this.convertFeedbackToInternal(e),i=this.onSubmitFinished((e=>{i(),t(e)}));this.feedback.send(\"submit\",n)}))}closeReport(e){return this.feedback.send(\"cancel\",e)}setBounds(e,t,n,i){return this.feedback.send(\"setBounds\",e,t,n,i)}openUrl(e){return this.feedback.send(\"openUrl\",e)}convertConfigToPublic(e){return{version:e.version,buildVersion:e.buildVersion,region:e.region,env:e.env,theme:e.theme,isError:e.isError,errorMessage:e.errorMessage,mailingList:e.mailList,createJiraTicket:e.jiraEnabled,sendEmail:e.mailEnabled,attachments:e.attachments,applicationTitle:e.applicationTitle,allowEditRecipients:e.allowEditRecipients,attachmentsViewMode:e.attachmentsViewMode,selectedCategories:e.selectedCategories,technicalInfo:e.technicalInfo,environmentInfo:e.environmentDetails,showEnvironmentInfo:e.showEnvironmentInfo,context:e.context,sendEmailClient:e.mailClientConfig?.type??\"Outlook\"}}convertSubmitResultToPublic(e){return{description:e.description,jiraProcessed:e.jiraProcessed,jiraSucceeded:e.jiraSucceeded,jiraDetails:e.jiraDetails,jiraTicketUrl:e.jiraTicketUrl,emailProcessed:e.mailProcessed,emailSucceeded:e.mailSucceeded,emailDetails:e.mailDetails}}convertFeedbackToInternal(e){return{createTicket:e?.createJiraTicket,description:e?.description,summary:e?.summary,sendMail:e?.sendEmail,appendEnvironmentInfo:e?.appendEnvironmentInfo,appendTechnicalInfo:e?.appendTechnicalInfo,mailingList:e?.mailingList,attachments:e?.attachments,attachmentsMode:e?.attachmentsViewMode}}};const Ga=a({config:{env:\"\",region:\"\",version:\"\",buildVersion:\"\",theme:\"\",isError:!1,mailingList:\"\",createJiraTicket:!0,sendEmail:!1,attachments:[],applicationTitle:\"\",allowEditRecipients:!0,attachmentsViewMode:\"category\",environmentInfo:\"\",selectedCategories:[],errorMessage:\"\",showEnvironmentInfo:!1,context:{},technicalInfo:\"\",sendEmailClient:\"Outlook\"},onThemeChanged:e=>{},openUrl:()=>{},submit:()=>Promise.resolve({}),setBounds:()=>{},close:e=>{},showMailingList:!0,setShowMailingList:()=>{},attachmentCategories:[],submitInProgress:!1,setSubmitInProgress:()=>{},submitStatus:{type:\"success\",title:\"\",text:\"\"},setSubmitStatus:()=>{},submitCompleted:!1,setSubmitCompleted:()=>{},jiraTicketURL:\"\",setJiraTicketURL:()=>{},submitFeedback:()=>{}}),Qa=()=>s(Ga);function Xa({...n}){const{config:i,close:o}=Qa(),{applicationTitle:r}=i;return t(Y,{draggable:!0,...n,children:[e(Y.Title,{tag:\"h1\",text:r?`Feedback Form - ${r}`:\"Feedback Form\",size:\"large\"}),e(Y.ButtonGroup,{className:\"non-draggable\",children:e(Y.ButtonIcon,{variant:\"circle\",icon:\"close\",size:\"32\",onClick:()=>o()})})]})}function Za({className:n,handleSubmit:i,...o}){const r=k(\"io-panel-body\",n),{config:a,submitFeedback:s}=Qa(),{IntroField:c,DescriptionField:l,TechInfoField:u,EnvInfoField:d,FileAttachmentsField:f,CategoryAttachmentsField:m,SettingsField:h,MailListField:p}=vs(),g=i??s,v=`Your feedback will be submitted to the ${a.buildVersion} team and some additional information will be automatically included to help us examine your issue.`;return t(\"form\",{className:r,id:\"feedback\",onSubmit:e=>g(e),...o,children:[e(c,{children:e(\"p\",{children:v})}),e(h,{}),e(p,{}),e(l,{}),e(u,{readOnly:!0}),e(d,{readOnly:!0}),\"file\"===a.attachmentsViewMode?e(f,{}):e(m,{})]})}function es({...n}){const{FooterButtons:i}=vs(),{openUrl:o,submitInProgress:r,submitStatus:a,jiraTicketURL:s}=Qa();return e(J,{...n,children:t(\"div\",r?{className:\"flex ai-center jc-between\",children:[e(I,{children:e(\"p\",{children:a.title})}),e(Di,{align:\"right\",size:\"small\"})]}:{className:\"flex ai-center jc-between\",children:[t(I,{children:[e(\"p\",{className:\"error\"===a.type?\"io-text-error\":\"\",children:a.title}),s&&e(\"a\",{href:s,onClick:e=>{e.preventDefault(),o(s)},children:s})]}),e(i,{})]})})}function ts({className:t,...n}){const{CloseButton:i}=vs(),{close:o}=Qa();return e(V,{className:t,...n,children:e(i,{onClick:()=>o()})})}function ns({className:n,...i}){const{SubmitButton:o,CancelButton:r,CloseButton:a}=vs(),{close:s,submitCompleted:c}=Qa();return c?e(V,{className:n,...i,children:e(a,{text:\"Close\",onClick:()=>s()})}):t(V,{className:n,...i,children:[e(o,{}),e(r,{onClick:()=>s()})]})}function is({text:t=\"Submit\",...n}){return e(A,{form:\"feedback\",type:\"submit\",variant:\"primary\",text:t,...n})}function os({text:t=\"Cancel\",...n}){return e(A,{variant:\"link\",text:t,...n})}function rs({...t}){return e(A,{variant:\"primary\",...t})}function as({showField:t=!0,className:n,title:i,hint:o,children:r,...a}){return t?e(I,{className:n,title:i,hint:o,...a,children:r}):null}function ss({showField:t=!0,className:n,title:i=\"Description\",hint:o,readOnly:r=!1,disabled:a,...s}){return t?e(I,{className:n,hint:o,title:\"\",...s,children:e(Li,{id:\"description\",name:\"description\",label:i,readOnly:r,disabled:a})}):null}function cs({showField:t,className:n,title:i=\"Technical Information\",hint:o,fieldValue:r,readOnly:a=!1,disabled:s,...c}){const{config:l}=Qa(),u=t??l.errorMessage,d=r??l.errorMessage;return u&&d?e(I,{className:n,hint:o,...c,children:e(Li,{id:\"errorMessage\",name:\"errorMessage\",label:i,value:d,readOnly:a,disabled:s})}):null}function ls({showField:t,className:n,title:i=\"Environment Information\",hint:o,fieldValue:r,readOnly:a=!1,disabled:s,...c}){const{config:l}=Qa(),u=t??l.showEnvironmentInfo,d=r??l.environmentInfo;return u&&d?e(I,{className:n,hint:o,...c,children:e(Li,{id:\"environmentInfo\",name:\"environmentInfo\",label:i,value:d,readOnly:a,disabled:s})}):null}function us({showField:t=!0,className:n,title:i=\"Attachments\",hint:o,readOnly:a=!1,disabled:s,attachments:c,selectedCategories:l,...u}){const d=k(\"io-block-list-gap\",n),{config:f}=Qa(),m=c??f.attachments,h=l??f.selectedCategories,p=r((e=>!!h&&-1!==h.indexOf(e)),[h]);return t?!m||m.length<=0?e(I,{title:\"Attachments\",children:e(\"p\",{children:\"No Attachments\"})}):e(I,{className:d,title:i,hint:o,...u,children:e(\"div\",{className:\"file-attachments\",children:m.map((t=>e(Fi,{id:t.id,name:t.id,label:t.name,readOnly:a,disabled:s,defaultChecked:p(t.category)},t.id)))})}):null}function ds({showField:t=!0,className:n,title:i=\"Attachments\",hint:o,readOnly:a=!1,disabled:s,categories:c,selectedCategories:l,...u}){const{config:d,attachmentCategories:f}=Qa(),m=c??f,h=l??d.selectedCategories,p=r((e=>!!h&&-1!==h.indexOf(e)),[h]);return t?!m||m.length<=0?e(\"p\",{children:\"No Attachments\"}):e(I,{className:n,title:i,hint:o,...u,children:e(\"div\",{className:\"category-attachments\",children:m.map((t=>e(Ri,{id:t,name:t,align:\"right\",label:t,readOnly:a,disabled:s,defaultChecked:p(t)},t)))})}):null}function fs({className:n,title:i,hint:o,showField:r=!0,showJiraTicketField:a,jiraTicketLabel:s=\"Create Jira Ticket\",showSendEmailField:c,sendEmailLabel:l=\"Send Email\",readOnly:u=!1,disabled:d,...f}){const m=k(\"io-block-list-gap\",n),{config:h,showMailingList:p,setShowMailingList:g}=Qa();if(!r)return null;const v=a??h.createJiraTicket,y=c??h.sendEmail;return t(I,{className:m,hint:o,title:i,...f,children:[v&&e(Ri,{id:\"createJiraTicket\",name:\"createJiraTicket\",label:s,align:\"right\",readOnly:u,disabled:d,defaultChecked:v}),y&&e(Ri,{onChange:()=>{g(!p)},id:\"sendEmail\",name:\"sendEmail\",label:l,align:\"right\",readOnly:u,disabled:d,defaultChecked:y})]})}function ms({showField:t=!0,className:n,title:i=\"Email List\",hint:o=\"Separate with commas or semicolons.\",placeholder:r=\"john.doe@somedomain.com; jane.doe@otherdomain.com\",readOnly:a,disabled:s,...c}){const{config:l,showMailingList:u}=Qa(),d=t??l.sendEmail,f=a??!1===l.allowEditRecipients;return d&&u?e(I,{className:n,hint:o,...c,children:e(Oi,{id:\"mailingList\",name:\"mailingList\",label:i,placeholder:r,readOnly:f,disabled:s,defaultValue:l.mailingList??\"\"})}):null}const hs={Header:Xa,Body:Za,Footer:es,HeaderButtons:ts,FooterButtons:ns,SubmitButton:is,CancelButton:os,CloseButton:rs,IntroField:as,DescriptionField:ss,TechInfoField:cs,EnvInfoField:ls,FileAttachmentsField:us,CategoryAttachmentsField:ds,SettingsField:fs,MailListField:ms},ps=a(hs),gs=m((({children:t,components:n})=>{const i=l((()=>({...hs,...n})),[n]);return e(ps.Provider,{value:i,children:t})}));function vs(e){return{...s(ps),...e}}function ys({className:n,...i}){const o=k(\"io-feedback\",n),{Header:r,Body:a,Footer:s}=vs();return t(Mi,{className:o,...i,children:[e(r,{}),e(a,{}),e(s,{})]})}gs.displayName=\"ComponentsStore\";var ws=Object.freeze({__proto__:null,Body:Za,CancelButton:os,CategoryAttachmentsField:ds,CloseButton:rs,DescriptionField:ss,EnvInfoField:ls,Feedback:function({components:t,...n}){return e(gs,{components:t,children:e(ys,{...n})})},FeedbackProvider:({children:t})=>{const{config:n,onThemeChanged:i,openUrl:o,submit:a,setBounds:s,close:f,showMailingList:m,setShowMailingList:h,attachmentCategories:p,submitInProgress:g,setSubmitInProgress:v,submitStatus:y,setSubmitStatus:w,submitCompleted:b,setSubmitCompleted:k,jiraTicketURL:C,setJiraTicketURL:N,submitFeedback:x}=function(){const[e,t]=c({env:\"\",region:\"\",version:\"\",buildVersion:\"\",theme:\"\",isError:!1,mailingList:\"\",createJiraTicket:!0,sendEmail:!1,attachments:[],applicationTitle:\"\",allowEditRecipients:!0,attachmentsViewMode:\"category\",environmentInfo:\"\",selectedCategories:[],errorMessage:\"\",showEnvironmentInfo:!1,context:{},technicalInfo:\"\",sendEmailClient:\"Outlook\"}),[n,i]=c(!1),[o,a]=c(!1),[s,l]=c(!1),[f,m]=c(\"\"),[h,p]=c([]),[g,v]=c({type:\"primary\",title:\"\",text:\"\"}),y=d();Ka.init();const w=r((e=>{const t=document.documentElement;return t.className=\"\",t.classList.add(e),()=>{t.classList.remove(e)}}),[]),b=r((e=>{const t=new Set;e.filter((e=>{const n=t.has(e.category);return t.add(e.category),!n})),p(Array.from(t))}),[]);u((()=>{Ka.getConfig().then((e=>{t(e),b(e.attachments),e.theme?w(e.theme):w(\"dark\")})).catch((e=>{throw new Error(\"Failed to get Feedback Config:\",e)})),Ka.onThemeChanged((e=>{w(e)}))}),[b,w]),u((()=>{i(e.sendEmail)}),[e.sendEmail]),u((()=>(o&&\"Outlook\"===e.sendEmailClient&&(y.current=setTimeout((()=>{v({title:\"Sending an email. Go to Outlook to allow access.\",type:\"primary\"})}),100)),()=>clearTimeout(y.current))),[o,e.sendEmailClient]);const k=r((e=>Ka.onThemeChanged(e)),[]),C=r((e=>{e.jiraProcessed&&(v({title:e.jiraDetails,type:\"success\"}),m(e.jiraTicketUrl)),e.emailProcessed&&v({title:e.emailDetails,type:\"success\"})}),[]),N=r((async t=>{const n={createJiraTicket:e.createJiraTicket,sendEmail:e.sendEmail,mailingList:e.mailingList,attachments:e.attachments,attachmentsViewMode:e.attachmentsViewMode,...t};if(!n.createJiraTicket&&!n.sendEmail){const e=\"Can't send feedback. Feedback via Jira and email has been disabled.\";throw v({title:e,type:\"error\"}),new Error(e)}if(n.sendEmail&&!n.mailingList){const e=\"No email recipient. Provide at least one valid email address in the Email List field.\";throw v({title:e,type:\"error\"}),new Error(e)}n.createJiraTicket&&n.sendEmail&&(v({title:\"Submitting an issue to Jira and sending an email...\",type:\"primary\"}),a(!0)),n.createJiraTicket?(v({title:\"Submitting an issue to Jira...\",type:\"primary\"}),a(!0)):(v({title:\"Sending an email...\",type:\"primary\"}),a(!0));try{const e=await Ka.submitReport(t);return C(e),a(!1),l(!0),clearTimeout(y.current),e}catch(e){throw console.log(\"An error occurred while submitting your feedback:\",e),e}}),[e.attachments,e.attachmentsViewMode,e.createJiraTicket,e.mailingList,e.sendEmail,C]),x=r((e=>{Ka.openUrl(e)}),[]),S=r((e=>{Ka.closeReport(e)}),[]),D=r(((e,t,n,i)=>{Ka.setBounds(e,t,n,i)}),[]),E=r((t=>{t.preventDefault();const n=new FormData(t.currentTarget),i=[],o=[...e.attachments];if(\"file\"===e.attachmentsViewMode)o.filter((e=>\"on\"===n.get(e.id))).map((e=>i.push(e.id)));else{const e=h?.filter((e=>\"on\"===n.get(e))),t=o.reduce(((t,n)=>(-1!==e.indexOf(n.category)&&t.push(n.id),t)),[]);i.push(...t)}const r={createJiraTicket:\"on\"===n.get(\"createJiraTicket\"),sendEmail:\"on\"===n.get(\"sendEmail\"),description:n.get(\"description\"),mailingList:n.get(\"mailingList\"),attachments:i,attachmentsViewMode:e.attachmentsViewMode};return N(r)}),[h,e.attachments,e.attachmentsViewMode,N]);return{config:e,onThemeChanged:k,openUrl:x,submit:N,setBounds:D,close:S,showMailingList:n,setShowMailingList:i,attachmentCategories:h,submitInProgress:o,setSubmitInProgress:a,submitStatus:g,setSubmitStatus:v,submitCompleted:s,setSubmitCompleted:l,jiraTicketURL:f,setJiraTicketURL:m,submitFeedback:E}}(),S=l((()=>({config:n,onThemeChanged:i,openUrl:o,submit:a,setBounds:s,close:f,showMailingList:m,setShowMailingList:h,attachmentCategories:p,submitInProgress:g,setSubmitInProgress:v,submitStatus:y,setSubmitStatus:w,submitCompleted:b,setSubmitCompleted:k,jiraTicketURL:C,setJiraTicketURL:N,submitFeedback:x})),[n,i,o,a,s,f,m,p,g,y,b,C,x,N,v,w,k,h]);return e(Ga.Provider,{value:S,children:t})},FileAttachmentsField:us,Footer:es,FooterButtons:ns,Header:Xa,HeaderButtons:ts,IntroField:as,MailListField:ms,SettingsField:fs,SubmitButton:is,TechInfoField:cs,useFeedbackContext:Qa});function bs({className:n,title:i=\"General\",...o}){const r=k(\"io-notifications-settings-panel-general\",n),{AllowNotifications:a,ShowNotificationBadge:s,CloseNotificationOnClick:c,PanelAutoHide:l,HideToastsAfter:u}=lc(),d=qi();return e(\"div\",{className:r,...o,children:t(I,{title:i,children:[d&&e(a,{}),e(s,{}),d&&e(c,{}),d&&e(l,{}),d&&e(u,{})]})})}var ks=new class{subscribed=!1;io=void 0;registry=qa();logger=void 0;isPanelVisible=void 0;notifications=[];bulkActionsSupported=!1;init(e){if(this.subscribed)return;this.subscribed=!0,this.io=e,this.logger=this.io.logger.subLogger(\"notifications\");const t=this.io.appManager.myApplication,n=t?.userProperties?.logger?.publishLevel??\"error\",i=t?.userProperties?.logger?.consoleLevel??\"info\";this.logger.publishLevel(n),this.logger.consoleLevel(i),this.logger.info(\"===== IO Notifications v.0.7.1 =====\"),this.getBulkActionsSupport(),this.subscribe()}onPanelVisibilityChanged(e){return this.registry.add(\"on-panel-visibility-changed\",e)}onConfigurationChanged(e){return this.registry.add(\"on-configuration-changed\",e)}onNotificationsChanged(e){return this.registry.add(\"on-notifications-changed\",e)}onCounterChanged(e){return this.registry.add(\"on-counter-changed\",e)}async getNotificationsList(){const e=await(this.io?.notifications.list());if(!e)throw new Error(\"io.notifications.list is not supported in this environment.\");return e.map((e=>this.attachHandlers(e)))}async getConfiguration(){if(this.io)return await this.io.notifications.getConfiguration();throw new Error(\"io.notifications.getConfiguration is not supported in this environment.\")}showPanel(){if(this.isDesktopEnvironment())return this.io?.notifications.panel.show()}hidePanel(){if(this.isDesktopEnvironment())return this.io?.notifications.panel.hide()}clearAll(){return this.logger?.trace(\"clearing all notifications\"),this.io?.notifications.clearAll()}clearAllOld(){return this.logger?.trace(\"clearing all old notifications\"),this.io?.notifications.clearOld()}clearMany(e){return\"function\"==typeof(this.io?.notifications).clearMany?e.length<1?(this.logger?.trace(\"no ids provided to clear notifications\"),Promise.resolve()):(this.logger?.trace(`clearing notifications with ids ${JSON.stringify(e.join(\", \"))}`),(this.io?.notifications).clearMany(e)):Promise.reject(new Error(\"Bulk actions are not supported in this environment\"))}close(e){return this.logger?.trace(`closing notification with id ${e}`),this.io?.notifications.clear(e)}snooze(e,t){return this.logger?.trace(`snoozing notification with id ${e} for ${t}ms`),this.io?.notifications.snooze(e,t)}snoozeMany(e,t){return\"function\"==typeof(this.io?.notifications).snoozeMany?e.length<1?(this.logger?.trace(\"no ids provided to snooze notifications\"),Promise.resolve()):(this.logger?.trace(`snoozing notifications with ids ${JSON.stringify(e.join(\", \"))} for ${t}ms`),(this.io?.notifications).snoozeMany(e,t)):Promise.reject(new Error(\"Bulk actions are not supported in this environment\"))}setState(e,t){return this.logger?.trace(`setting state of ${e} to ${t}`),this.io?.notifications.setState(e,t)}setStates(e,t){return\"function\"==typeof(this.io?.notifications).setStates?e.length<1?(this.logger?.trace(`no ids provided to change state to ${t} for notifications`),Promise.resolve()):(this.logger?.trace(`setting state of ${JSON.stringify(e.join(\", \"))} to ${t}`),(this.io?.notifications).setStates(e,t)):Promise.reject(new Error(\"Bulk actions are not supported in this environment\"))}getBulkActionsSupport(){const e=\"function\"==typeof(this.io?.notifications).clearMany&&\"function\"==typeof(this.io?.notifications).setStates&&\"function\"==typeof(this.io?.notifications).snoozeMany;this.bulkActionsSupported=e}setFilter(e){return this.logger?.trace(`setting filter to ${JSON.stringify(e)}`),this.io?.notifications.setFilter(e)}configure(e){return this.io?.notifications.configure(e)}subscribe(){this.io?.notifications.onRaised((e=>{this.logger?.trace(`received event indicating notification raise: ${JSON.stringify(e)}`),this.attachHandlers(e),this.notifications.unshift(e),this.registry.execute(\"on-notifications-changed\",[...this.notifications])})),this.io?.notifications.onStateChanged((({id:e},t)=>{this.logger?.trace(`received event for notification state is changed - \"${e}\" - \"${t?.toString()}\"`),this.notifications=this.notifications.map((n=>n.id===e?(this.logger?.trace(`${n.id} - the state is changed from \"${n.state}\" to \"${t?.toString()}\"`),Object.assign(n,{state:t})):n)),this.registry.execute(\"on-notifications-changed\",this.notifications)})),this.io?.notifications&&\"onDataChanged\"in this.io.notifications&&\"function\"==typeof this.io.notifications.onDataChanged&&this.io?.notifications.onDataChanged(((e,t)=>{const n=e.id;this.logger?.trace(`received event for notification data is changed - \"${n}\" - \"${JSON.stringify(t)}\"`),this.notifications=this.notifications.map((e=>e.id===n?(this.logger?.trace(`${e.id} - the data is changed from \"${JSON.stringify(e.data)}\" to \"${JSON.stringify(t)}\"`),Object.assign(e,{data:t})):e)),this.registry.execute(\"on-notifications-changed\",this.notifications)})),this.io?.notifications.onClosed((({id:e})=>{this.logger?.trace(`received event for notification is closed - \"${e}\".`),this.notifications=this.notifications.filter((t=>t.id!==e)),this.registry.execute(\"on-notifications-changed\",this.notifications)})),this.io?.notifications.onConfigurationChanged((e=>{this.logger?.trace(`received event for configuration changed - ${JSON.stringify(e)}.`),this.registry.execute(\"on-configuration-changed\",e)})),this.isDesktopEnvironment()&&this.io?.notifications.panel.onVisibilityChanged((e=>{this.logger?.trace(`received event for panel visibility changed to \"${e}\".`),this.isPanelVisible=e,this.registry.execute(\"on-panel-visibility-changed\",e)}))}isDesktopEnvironment(){return\"object\"==typeof window&&(Boolean(window.iodesktop)||Boolean(window.glue42gd))}attachHandlers(e){e.actions?.forEach((t=>{Object.assign(t,{onClick:async n=>{try{this.logger?.info(`${e.id}/${t.action} - was clicked.`),await(this.io?.notifications.click(e.id,t.action,n))}catch(e){this.logger?.error(\"Error while clicking on action:\",e)}}})}));const t={snooze:async(t=1e4)=>{this.logger?.trace(`${e.id} - request to change the state from ${e.state} to Snoozed with duration ${t}ms`),await(this.io?.notifications.snooze(e.id,t))},updateState:async t=>(this.logger?.trace(`${e.id} - request to change the state from ${e.state} to ${t}`),this.io?.notifications.setState(e.id,t)),updateData:async t=>{this.logger?.trace(`${e.id} - request to change the data to ${JSON.stringify(t)}`),this.io?.notifications&&\"updateData\"in this.io.notifications&&\"function\"==typeof this.io.notifications.updateData?await this.io.notifications.updateData(e.id,t):console.log(\"'updateData' method is not supported\")},onClick:async t=>{try{this.logger?.info(`${e.id} - was clicked.`),await(this.io?.notifications.click(e.id,void 0,t))}catch(t){this.logger?.error(`Error while clicking on Notification: ${e.id}`,t)}},onShow:()=>{},close:async()=>(this.logger?.info(`${e.id} - was closed.`),this.close(e.id))};return Object.assign(e,t)}};function Cs(e){const t=s(v),n=t?.appManager,i=qi(),[o,a]=c([]),[d,f]=c(0),m=\"Platform\",h=r(((e=\"asc\")=>{if(null===i)return[];const t=[...o].sort(((t,n)=>{const i=(t.title??t.name).toLowerCase(),o=(n.title??n.name).toLowerCase();return\"asc\"===e?i.localeCompare(o):o.localeCompare(i)}));if(!i){const e=t.findIndex((e=>e.name===m));if(-1!==e){const[n]=t.splice(e,1);t.unshift(n)}}return t}),[o,i]),p=l((()=>h(\"asc\")),[h]),g=l((()=>h(\"desc\")),[h]);u((()=>{if(null===i||i)return;const e={title:\"System\",name:m,hidden:!1,userProperties:{hidden:!1}};a((t=>t.some((t=>t.name===e.name))?t:[...t,e]))}),[i]),u((()=>{if(!n)return;const e=n.onAppAdded((e=>{a((t=>[...t,{title:e.title,name:e.name,hidden:e.hidden,userProperties:e.userProperties}]))})),t=n.onAppRemoved((e=>{a((t=>t.filter((t=>t.name!==e.name))))})),i=n.onAppChanged((e=>{a((t=>{const n=t.find((t=>t.name===e.name));return[...t.filter((t=>t.name!==e.name)),{title:e.title,name:n?.name,hidden:n?.hidden,allowed:n?.allowed,userProperties:n?.userProperties}]}))}));return()=>{e(),t(),i()}}),[n]);return{apps:l((()=>{if(!e?.sourceFilter||!Array.isArray(o))return o;const{allowed:t=[],blocked:n=[]}=e.sourceFilter,i=t.includes(\"*\"),r=n.includes(\"*\");let a=0;const s=o.map((e=>{const n=i||t.includes(e.name),o=!r&&n;return o&&a++,{...e,allowed:o}}));return f(a),s}),[e,o]),allowedApps:d,sortedAppsAsc:p,sortedAppsDesc:g,sortAppsAlphabetically:h}}function Ns(e,t,n){const i=l((()=>{if(!t.toastStacking)return[];const i=\"application\"===(o=t.stackBy)?\"source\":\"severity\"===o?\"severity\":\"source\";var o;const r=e.filter((e=>\"Active\"===e.state)),a=new Map;for(const e of r){const t=e[i]??\"\";if(e.source&&n?.sourceFilter?.muted?.includes(e.source)||n?.sourceFilter?.muted?.includes(\"*\"))continue;a.has(t)||a.set(t,{key:t,items:[]});const o=a.get(t);o&&o.items.unshift(e)}return Array.from(a.values()).filter((e=>e.items.some((e=>\"Active\"===e.state||\"Stale\"===e.state))))}),[e,t.toastStacking,t.stackBy,n?.sourceFilter?.muted]);return{notificationStacks:i}}function xs(e){const[t,n]=c([]);return{selectedNotifications:t,selectNotification:(e,i)=>{const o=t;n(i?[...o,e]:o.filter((t=>t!==e)))},selectAllNotifications:(t,i)=>{if(i){let i=[];switch(t){case\"read\":i=e.filter((e=>\"Acknowledged\"===e.state||\"Seen\"===e.state)).map((e=>e.id));break;case\"unread\":i=e.filter((e=>\"Active\"===e.state||\"Stale\"===e.state)).map((e=>e.id));break;case\"snoozed\":i=e.filter((e=>\"Snoozed\"===e.state)).map((e=>e.id));break;default:i=e.map((e=>e.id))}n(i)}else n([])}}}const Ss=\"newest\",Ds=\"oldest\",Es=\"severity\",Is=[\"None\",\"Low\",\"Medium\",\"High\",\"Critical\"],As={key:Ss,descending:!0},Ms=new Set([\"enabledNotifications\",\"enabledToasts\",\"toastStacking\",\"stackBy\",\"showNotificationBadge\",\"toastExpiry\",\"placement\",\"snooze\",\"closeNotificationOnClick\"]),Ts=e=>({enabledNotifications:e.enable,enabledToasts:e.enableToasts,toastStacking:\"stacked\"===e.toasts?.mode,stackBy:e.toasts?.stackBy,toastExpiry:e.toastExpiry,showNotificationBadge:e.showNotificationBadge,placement:e.placement,snooze:e.snooze,closeNotificationOnClick:e.closeNotificationOnClick}),Ps=e=>Array.from(e.reduce(((e,t)=>e.set(t.id,t)),new Map).values());function _s(){const e=s(v),t=l((()=>({autoHidePanel:!0,alwaysOnTop:!0,highlightNewFor:3e4,markAsReadAfter:6e4})),[]),{appPrefs:n,updatePrefs:i}=zi(),[o,r]=c({}),[a,d]=c({}),[f,m]=c([]),[h,p]=c(0),[g,y]=c(!0),{apps:w,allowedApps:b}=Cs(o),{notificationStacks:k}=Ns(f,{toastStacking:a.toastStacking??!1,stackBy:a.stackBy??\"source\"},{sourceFilter:o.sourceFilter}),{selectedNotifications:C,selectNotification:N,selectAllNotifications:x}=xs(f);ks.init(e),u((()=>{(async()=>{await(async()=>{try{const e=await ks.getConfiguration();r(e),d((t=>({...t,...Ts(e)})))}catch(e){console.error(\"Error fetching configuration:\",e)}})(),await(async()=>{try{const e=await ks.getNotificationsList();m(Ps(e))}catch(e){console.error(\"Error fetching notifications:\",e)}})()})().catch((e=>{console.error(\"Error in useNotifications fetch:\",e)})),S()}),[]),u((()=>{d((e=>({...e,autoHidePanel:n.autoHidePanel??t.autoHidePanel,alwaysOnTop:n.alwaysOnTop??t.alwaysOnTop,highlightNewFor:n.highlightNewFor??t.highlightNewFor,markAsReadAfter:n.markAsReadAfter??t.markAsReadAfter})))}),[n,t]),u((()=>{const e=ks.onNotificationsChanged((e=>{m(Ps(e))})),t=ks.onConfigurationChanged((e=>{const t=Ts(e);r((t=>({...t,...e}))),d((e=>({...e,...t})))})),n=ks.onCounterChanged((e=>{p(e)}));return()=>{e(),t(),n()}}),[]);const S=()=>{y(ks.bulkActionsSupported)},D=async e=>{await ks.setFilter(e)};return{close:e=>ks.close(e),clearAll:()=>ks.clearAll(),settings:a,hidePanel:async()=>{await ks.hidePanel()},showPanel:async()=>{await ks.showPanel()},saveFilter:D,clearAllOld:()=>ks.clearAllOld(),saveSetting:async e=>{const t=Object.keys(e)[0];if(!Ms.has(t))return void i(e);const n=((e,t)=>{const n=(e=>({enabledNotifications:e=>({enable:e}),enabledToasts:e=>({enableToasts:e}),toastStacking:t=>({toasts:{mode:t?\"stacked\":\"single\",stackBy:e.toasts?.stackBy}}),stackBy:t=>({toasts:{mode:e.toasts?.mode,stackBy:t}}),showNotificationBadge:e=>({showNotificationBadge:e}),toastExpiry:e=>({toastExpiry:e}),placement:e=>({placement:e}),snooze:e=>({snooze:e}),closeNotificationOnClick:e=>({closeNotificationOnClick:e})}))(t),i=Object.keys(e)[0],o=e[i];return i&&void 0!==o&&n[i]?n[i](o):{}})(e,o);n&&await ks.configure(n)},allApps:w,saveAllFilter:async e=>{\"subscribe\"in e?await D({allowed:e.subscribe?[\"*\"]:[],blocked:e.subscribe?[]:[\"*\"]}):\"mute\"in e&&await D({muted:e.mute?[\"*\"]:[]})},configuration:o,notifications:f,notificationStacks:k,notificationsCount:h,allApplications:o.allApplications??0,allowedApplications:b,isBulkActionsSupported:g,selectedNotifications:C,selectNotification:N,selectAllNotifications:x,clearMany:async e=>{await ks.clearMany(e)},snooze:async(e,t)=>{await ks.snooze(e,t)},snoozeMany:async(e,t)=>{await ks.snoozeMany(e,t)},setState:async(e,t)=>{await ks.setState(e,t)},setStates:async(e,t)=>{await ks.setStates(e,t)},setCount:e=>{p(e)},getNotificationsList:async()=>await ks.getNotificationsList()}}const Os=a({allApps:[],settings:{},configuration:{},notifications:[],notificationsCount:0,onClose:()=>{},allApplications:0,clearAll:()=>{},showPanel:()=>{},hidePanel:()=>{},saveFilter:()=>{},clearAllOld:()=>{},notificationStacks:[],saveSetting:()=>{},allowedApplications:0,saveAllFilter:()=>{},isBulkActionsSupported:!1,selectedNotifications:[],selectNotification:()=>{},selectAllNotifications:()=>{},clearMany:()=>{},snooze:()=>{},snoozeMany:()=>{},setState:()=>{},setStates:()=>{},setCount:()=>{}}),Ls=()=>s(Os);function Fs({label:t=\"Allow notifications\",align:n=\"right\",...i}){const{settings:o,saveSetting:a}=Ls(),s=qi(),c=r((e=>{a({enabledNotifications:e.target.checked})}),[a]);return s?e(Ri,{label:t,align:n,onChange:c,checked:o.enabledNotifications??!1,...i}):null}function Bs({label:t=\"Show notification badge\",align:n=\"right\",...i}){const{settings:o,saveSetting:a}=Ls(),s=qi()&&!o.enabledNotifications,c=r((e=>{a({showNotificationBadge:e.target.checked})}),[a]);return e(Ri,{label:t,align:n,onChange:c,checked:o.showNotificationBadge??!1,disabled:s,...i})}function Rs({label:t=\"Close notification on click\",align:n=\"right\",...i}){const{settings:o,saveSetting:a}=Ls(),s=qi(),c=s&&!o.enabledNotifications,l=r((e=>{a({closeNotificationOnClick:e.target.checked})}),[a]);return s?e(Ri,{label:t,align:n,onChange:l,checked:o.closeNotificationOnClick??!1,disabled:c,...i}):null}function js({label:t=\"Auto hide panel\",align:n=\"right\",...i}){const{settings:o,saveSetting:a}=Ls(),s=qi(),c=r((e=>{a({autoHidePanel:e.target.checked})}),[a]);return s?e(Ri,{label:t,align:n,onChange:c,checked:o.autoHidePanel??!1,...i}):null}function Hs({label:t=\"Panel always on top\",align:n=\"right\",...i}){const{settings:o,saveSetting:a}=Ls(),s=r((e=>{a({alwaysOnTop:e.target.checked})}),[a]);return e(Ri,{label:t,align:n,onChange:s,checked:o.alwaysOnTop??!1,...i})}const zs=(e,t)=>e?`${e} ${t}${1!==e?\"s\":\"\"}`:\"\",$s=e=>{const t=Math.floor(e/60),n=e%60,i=zs(t,\"minute\"),o=zs(n,\"second\");return i+(i&&o?\" \":\"\")+o};function Vs({className:n,title:i=\"Hide toasts after\",items:o=[15,30,45,60],...a}){const s=k(\"flex\",\"jc-between\",\"ai-center\",n),{settings:c,saveSetting:l}=Ls(),u=qi(),d=u&&!c.enabledNotifications,f=r(((e=15e3)=>{c.toastExpiry!==e&&l({toastExpiry:1e3*e})}),[c.toastExpiry,l]);return u?t(\"div\",{className:s,...a,children:[e(\"div\",{className:\"io-text-clipper \"+(d?\"io-text-disabled\":\"\"),children:e(\"span\",{children:i})}),t($,{variant:\"light\",disabled:d,children:[e($.Button,{text:$s((c.toastExpiry??0)/1e3)}),e($.Content,{children:e($.List,{variant:\"single\",children:o.map((t=>e($.Item,{onClick:()=>{f(t)},children:$s(t)},t)))})})]})]}):null}function Ys({className:n,title:i=\"Highlight new for\",...o}){const r=k(\"flex\",\"jc-between\",\"ai-center\",n),{settings:a}=Ls(),s=qi()&&!a.enabledNotifications,c=[\"30 seconds\",\"1 minute\",\"5 minutes\",\"Never\"];return t(\"div\",{className:r,...o,children:[e(\"div\",{className:k(\"io-text-clipper\",{\"io-text-disabled\":s}),children:e(\"span\",{children:i})}),t($,{variant:\"light\",disabled:s,children:[e($.Button,{text:c[0]}),e($.Content,{children:e($.List,{variant:\"single\",children:c.map((t=>e($.Item,{children:t},t)))})})]})]})}function Us({className:n,title:i=\"Mark as read after\",...o}){const r=k(\"flex\",\"jc-between\",\"ai-center\",n),{settings:a}=Ls(),s=qi()&&!a.enabledNotifications,c=[\"1 minute\",\"5 minutes\",\"Never\"];return t(\"div\",{className:r,...o,children:[e(\"div\",{className:k(\"io-text-clipper\",{\"io-text-disabled\":s}),children:e(\"span\",{children:i})}),t($,{variant:\"light\",disabled:s,children:[e($.Button,{text:c[0]}),e($.Content,{children:e($.List,{variant:\"single\",children:c.map((t=>e($.Item,{children:t},t)))})})]})]})}function Ws({className:n,title:i=\"Stacking\",...o}){const r=k(\"io-notifications-settings-panel-stacking\",n),{ToastStacking:a,ToastStackBy:s}=lc();return qi()?e(\"div\",{className:r,...o,children:t(I,{title:i,children:[e(a,{}),e(s,{})]})}):null}function Js({label:t=\"Allow toast stacking\",align:n=\"right\",...i}){const{settings:o,saveSetting:a}=Ls(),s=qi(),c=s&&!o.enabledNotifications,l=r((e=>{a({toastStacking:e.target.checked})}),[a]);return s?e(Ri,{label:t,align:n,onChange:l,checked:o.toastStacking??!1,disabled:c,...i}):null}const qs=e=>e.replace(/(^|-)\\w/g,(e=>e.toUpperCase().replace(\"-\",\" \")));function Ks({className:n,title:i=\"Group by\",...o}){const a=k(\"flex\",\"jc-between\",\"ai-center\",n),{settings:s,saveSetting:c}=Ls(),l=qi(),u=l&&!s.enabledNotifications,d=r((e=>{e||(e=\"severity\"),s.stackBy!==e&&c({stackBy:e.toLowerCase()})}),[s.stackBy,c]);if(!l)return null;return t(\"div\",{className:a,...o,children:[e(\"div\",{className:k(\"io-text-clipper\",{\"io-text-disabled\":u}),children:e(\"span\",{children:i})}),t($,{variant:\"light\",disabled:u,children:[e($.Button,{text:s.stackBy?qs(s.stackBy):\"Severity\"}),e($.Content,{children:e($.List,{variant:\"single\",children:[\"Severity\",\"Application\"].map((t=>e($.Item,{onClick:()=>{d(t)},children:t},t)))})})]})]})}function Gs({className:n,title:i=\"Placement\",...o}){const r=k(\"io-notifications-settings-panel-placement\",n),{PlacementPanel:a,PlacementToasts:s}=lc();return qi()?e(\"div\",{className:r,...o,children:t(I,{title:i,children:[e(a,{}),e(s,{})]})}):null}function Qs({className:n,title:i=\"Panel position\",...o}){const a=k(\"flex\",\"jc-between\",\"ai-center\",n),{settings:s,saveSetting:c}=Ls(),l=qi(),u=r((e=>{e||(e=\"right\"),s.placement?.panel!==e&&c({placement:{...s.placement,panel:e.toLowerCase()}})}),[s.placement,c]);if(!l)return null;return t(\"div\",{className:a,...o,children:[e(\"div\",{className:\"io-text-clipper\",children:e(\"span\",{children:i})}),t($,{variant:\"light\",children:[e($.Button,{text:s.placement?.panel?qs(s.placement?.panel):\"Right\"}),e($.Content,{children:e($.List,{variant:\"single\",children:[\"Right\",\"Left\"].map((t=>e($.Item,{onClick:()=>{u(t)},children:t},t)))})})]})]})}function Xs({className:n,title:i=\"Toasts position\",...o}){const a=k(\"flex\",\"jc-between\",\"ai-center\",n),{settings:s,saveSetting:c}=Ls(),l=qi(),u=r((e=>{if(e||(e=\"bottom-right\"),s.placement?.toasts===e)return;const t=e.replace(/\\s+/g,\"-\").toLowerCase();c({placement:{...s.placement,toasts:t}})}),[s.placement,c]);if(!l)return null;return t(\"div\",{className:a,...o,children:[e(\"div\",{className:\"io-text-clipper\",children:e(\"span\",{children:i})}),t($,{variant:\"light\",children:[e($.Button,{text:s.placement?.toasts?qs(s.placement?.toasts):\"Bottom Right\"}),e($.Content,{children:e($.List,{variant:\"single\",children:[\"Top Right\",\"Top Left\",\"Bottom Right\",\"Bottom Left\"].map((t=>e($.Item,{onClick:()=>{u(t)},children:t},t)))})})]})]})}function Zs({className:t,title:n=\"Snooze\",...i}){const o=k(\"io-notifications-settings-panel-snooze\",t),{SnoozeDuration:r}=lc(),{settings:a}=Ls();return qi()&&a.snooze?.enabled?e(\"div\",{className:o,...i,children:e(I,{title:n,children:e(r,{})})}):null}function ec({className:n,title:i=\"Default duration\",items:o=[60,120,180,300],...a}){const s=k(\"flex\",\"jc-between\",\"ai-center\",n),{settings:c,saveSetting:l}=Ls(),u=qi(),d=u&&!c.enabledNotifications,f=r(((e=6e4)=>{c.snooze&&c.snooze?.duration!==e&&l({snooze:{...c.snooze,duration:1e3*e}})}),[c.snooze,l]);return u&&c.snooze?.enabled?t(\"div\",{className:s,...a,children:[e(\"div\",{className:k(\"io-text-clipper\",{\"io-text-disabled\":d}),children:e(\"span\",{children:i})}),t($,{variant:\"light\",disabled:d,children:[e($.Button,{text:$s((c.snooze?.duration??0)/1e3)}),e($.Content,{children:e($.List,{variant:\"single\",children:o.map((t=>e($.Item,{onClick:()=>{f(t)},children:$s(t)},t)))})})]})]}):null}function tc({className:n,title:i,...o}){const r=k(\"io-notifications-settings-panel-subscriptions\",n),{SubscribeAll:a,SubscribeApp:s,SubscribeMuteAll:c,SubscribeMuteApp:l}=lc(),{sortAppsAlphabetically:u}=Cs(),d=qi(),f=u(),m=\"io-notifications-subscriptions-grid \"+(d?\"with-three-columns\":\"with-two-columns\");return e(\"div\",{className:r,...o,children:t(I,{title:i??(d?\"Subscribe & Mute\":\"Subscribe\"),children:[t(\"div\",{className:m,children:[e(\"p\",{className:\"io-text-section\",children:\"Sources\"}),e(\"p\",{className:\"io-text-section\",children:\"Subscribe\"}),d&&e(\"p\",{className:\"io-text-section\",children:\"Mute\"})]}),t(\"div\",{className:m,children:[e(\"p\",{children:\"All Sources\"}),e(a,{label:\"\"}),d&&e(c,{label:\"\"})]}),f.map((n=>!n||n.hidden||n?.userProperties?.hidden?null:t(\"div\",{className:m,children:[e(\"p\",{children:n.title??n.name}),e(s,{app:n,label:\"\"}),d&&e(l,{app:n,label:\"\"})]},n.name)))]})})}function nc({label:t=\"All apps\",align:n=\"right\",...i}){const{settings:o,configuration:a,saveAllFilter:s}=Ls(),c=qi()&&!o.enabledNotifications,l=r((e=>{s({subscribe:e.target.checked})}),[s]);return e(Ri,{align:n,label:t,onChange:l,checked:(a.sourceFilter?.allowed?.includes(\"*\")&&0===a.sourceFilter?.blocked?.length)??!1,disabled:c,...i})}function ic({label:t=\"App\",align:n=\"right\",app:i,...o}){const{allApps:a,settings:s,configuration:c,saveFilter:l}=Ls(),u=qi()&&!s.enabledNotifications,d=r(((e,t)=>{const n={...c.sourceFilter},i=n.allowed?.indexOf(\"*\");\"number\"==typeof i&&i>-1&&(n.allowed?.splice(i,1),a.forEach((e=>{e.name!==t.name&&n.allowed?.push(e.name)}))),e?(n.allowed=[...new Set([...n.allowed??[],t.name])],n.blocked=n.blocked?.filter((e=>e!==t.name))):(n.allowed=n.allowed?.filter((e=>e!==t.name)),n.blocked=[...new Set([...n.blocked??[],t.name])]),n.allowed?.length&&n.blocked?.includes(\"*\")&&n.blocked.splice(n.blocked.indexOf(\"*\"),1),l(n)}),[a,c.sourceFilter,l]);return e(Ri,{id:i.name,label:t,align:n,onChange:e=>d(e.target.checked,i),checked:(c.sourceFilter?.allowed?.includes(\"*\")&&!c.sourceFilter?.blocked?.includes(i.name)||c.sourceFilter?.allowed?.includes(i.name))??!1,disabled:u,...o})}function oc({label:t=\"Mute all\",align:n=\"right\",...i}){const{settings:o,configuration:a,saveAllFilter:s}=Ls(),c=qi(),l=c&&(!o.enabledNotifications||-1===a.sourceFilter?.allowed?.indexOf(\"*\")),u=r((e=>{s({mute:e.target.checked})}),[s]);return c?e(Ri,{align:n,label:t,onChange:u,checked:a.sourceFilter?.muted?.includes(\"*\")??!1,disabled:l??!1,...i}):null}function rc({label:t=\"App\",align:n=\"right\",app:i,...o}){const{allApps:a,settings:s,configuration:c,saveFilter:l}=Ls(),u=qi(),d=u&&(!s.enabledNotifications||c.sourceFilter?.blocked?.includes(\"*\")||c.sourceFilter?.blocked?.includes(i.name)||0===c.sourceFilter?.allowed?.length||-1===c.sourceFilter?.allowed?.indexOf(i.name)&&-1===c.sourceFilter?.allowed?.indexOf(\"*\")&&0===c.sourceFilter?.blocked?.length),f=r(((e,t)=>{const n={...c.sourceFilter},i=n?.muted?.indexOf(\"*\");\"number\"==typeof i&&i>-1&&(n.muted?.splice(i,1),a.forEach((e=>{e.name===t.name||e.hidden||n.muted?.push(e.name)}))),e?n.muted?.push(t.name):n.muted=n.muted?.filter((e=>e!==t.name)),l(n)}),[a,c.sourceFilter,l]);return!u||i.hidden?null:e(Ri,{id:i.name,label:t,align:n,onChange:e=>f(e.target.checked,i),checked:(c.sourceFilter?.muted?.includes(\"*\")||c.sourceFilter?.muted?.includes(i.name))??!1,disabled:d??!1,...o})}const ac={Body:n=>{const{General:i,Placement:o,Stacking:r,Snooze:a,Subscriptions:s}=lc();return t(Ii,{...n,children:[e(i,{}),e(o,{}),e(r,{}),e(a,{}),e(s,{})]})},General:bs,AllowNotifications:Fs,ShowNotificationBadge:Bs,CloseNotificationOnClick:Rs,PanelAutoHide:js,PanelAlwaysOnTop:Hs,HideToastsAfter:Vs,MarkAsNew:Ys,MarkAsRead:Us,Stacking:Ws,ToastStacking:Js,ToastStackBy:Ks,Placement:Gs,PlacementPanel:Qs,PlacementToasts:Xs,Snooze:Zs,SnoozeDuration:ec,Subscriptions:tc,SubscribeAll:nc,SubscribeApp:ic,SubscribeMuteAll:oc,SubscribeMuteApp:rc},sc=a(ac),cc=m((({children:t,components:n})=>{const i=l((()=>({...ac,...n})),[n]);return e(sc.Provider,{value:i,children:t})}));cc.displayName=\"NotificationsSettingsPanelComponentsStoreProvider\";const lc=()=>s(sc),uc=({className:n,onClose:i,title:o=\"Notification Settings\",...r})=>{const{Body:a}=lc();return t(Mi,{className:k(\"io-notifications-settings-panel\",n),...r,children:[t(Mi.Header,{children:[e(Mi.Header.Title,{size:\"large\",text:o,tag:\"h1\"}),e(Mi.Header.ButtonGroup,{children:e(Mi.Header.ButtonIcon,{variant:\"circle\",icon:\"close\",size:\"32\",onClick:i})})]}),e(a,{})]})},dc=({components:t,...n})=>e(cc,{components:t,children:e(uc,{...n})});function fc({isOpen:t,onClose:n,container:i}){return t?g(e(dc,{onClose:n}),i??document.querySelector(\"#root\")??document.body):null}const mc=a({searchQuery:\"\",setSearch:()=>{},isPanelVisible:!1,sortNotificationsBy:\"newest\",setSortBy:()=>{},viewNotificationsBy:\"all\",setViewBy:()=>{},isBulkActionsVisible:!1,showBulkActions:()=>{},hideBulkActions:()=>{}}),hc=()=>s(mc);function pc({title:n,onClose:i,onOpenSettings:o,...r}){const{HeaderCaptionTitle:a,HeaderCaptionCount:s,HeaderCaptionButtonSettings:c,HeaderCaptionButtonClose:l,HeaderActions:u,HeaderBulkActions:d,HeaderSearch:f}=Zc(),{isBulkActionsSupported:m,notificationsCount:h}=Ls(),{isBulkActionsVisible:p}=hc(),g=qi();return t(Ei,{...r,children:[t(\"div\",{className:\"io-panel-header-caption\",children:[e(a,{title:n}),e(s,{}),t(Ei.ButtonGroup,{children:[g&&e(c,{onClick:o}),e(l,{onClick:i})]})]}),m?t(\"div\",{className:`io-panel-header-actions-wrapper ${p&&h>0?\"io-panel-header-bulk-actions-opened\":\"\"} `,children:[e(u,{}),e(d,{})]}):e(u,{}),e(f,{})]})}function gc({text:n=\"Notifications\",counter:i,...o}){const{notificationsCount:r}=Ls();return e(E,{text:n,size:\"large\",...o,children:(i??!0)&&t(\"span\",{children:[\"(\",r,\")\"]})})}const vc=e=>[...e].sort(((e,t)=>(t.timestamp||0)-(e.timestamp||0))),yc=e=>[...e].sort(((e,t)=>(e.timestamp||0)-(t.timestamp||0))),wc=(e,t)=>{const n=Is[0];return[...e].sort(((e,i)=>{const o=Is.indexOf(e.severity||n),r=Is.indexOf(i.severity||n);return(t?-1:1)*(o-r)}))},bc={[Ss]:vc,[Ds]:yc,[Es]:wc};function kc({...t}){const[n,i]=c([]),{NotificationsList:o,Notification:r}=Zc(),{notifications:a,setCount:s,notificationsCount:f}=Ls(),{sortNotificationsBy:m,viewNotificationsBy:h,searchQuery:p}=hc(),g=d(null),v=Vi(p),y=l((()=>{const e=((e,t)=>{if(!e)return[];switch(t){case\"all\":default:return e;case\"unread\":return e.filter((e=>\"Active\"===e.state||\"Stale\"===e.state));case\"read\":return e.filter((e=>\"Acknowledged\"===e.state||\"Seen\"===e.state));case\"snoozed\":return e.filter((e=>\"Snoozed\"===e.state))}})(a,h);return e.filter((e=>e.title.toLowerCase().includes(v.toLowerCase())||e.source?.toLowerCase().includes(v.toLowerCase())||e.body?.toLowerCase().includes(v.toLowerCase())))}),[v,a,h]);return u((()=>{switch(m){case\"newest\":i(vc(y));break;case\"oldest\":i(yc(y));break;case\"severity\":i(wc(y,!0));break;default:i(y)}s(y.length)}),[y,m,s]),u((()=>{g.current&&g.current?.scrollTo({top:0,behavior:\"smooth\"})}),[v,f,m,h]),e(Ii,{ref:g,...t,children:e(o,{notifications:n,Notification:r})})}function Cc({...t}){const{FooterButtons:n}=Zc();return e(Ai,{...t,children:e(n,{})})}function Nc({className:n,...i}){const{FooterButtonClearAll:o,FooterButtonClearAllOld:r}=Zc(),{notifications:a}=Ls(),[s,l]=c(!1);return u((()=>{a.filter((e=>\"Stale\"===e.state||\"Acknowledged\"===e.state)).length>0?l(!0):l(!1)}),[a]),t(V,{className:n,align:\"right\",...i,children:[e(r,{disabled:!s}),e(o,{disabled:a.length<=0})]})}function xc({text:t=\"Clear All\",...n}){const{clearAll:i}=Ls();return e(A,{text:t,onClick:()=>{i()},...n})}function Sc({text:t=\"Clear Old\",...n}){const{clearAllOld:i}=Ls();return e(A,{text:t,onClick:()=>{i()},...n})}function Dc({className:n,notification:i,...o}){const r=k(\"io-notification-header\",n),{HeaderCount:a,HeaderBadge:s,HeaderTitle:c,HeaderTimestamp:l,HeaderButtonSnooze:u,HeaderButtonClose:d}=Vc();return t(\"div\",{className:r,...o,children:[e(s,{notification:i}),e(a,{notification:i}),e(c,{notification:i}),e(l,{notification:i}),t(V,{children:[e(u,{notification:i}),e(d,{notification:i})]})]})}function Ec({notification:t,...n}){const{settings:i,notificationStacks:o}=Ls(),{isPanelVisible:r}=hc(),{toastStacking:a,stackBy:s}=i,c=\"application\"===s?\"source\":s??\"source\";let l;if(a){const e=o.find((e=>e.key===t[c]));l=e?.items.length??0}return a&&!r&&l&&l>1?e(D,{...n,children:l<10?l:\"9+\"}):null}function Ic({className:n,notification:i,...o}){if(!i?.severity||\"None\"===i.severity)return null;const r=k(\"io-notification-header-badge\",n);return t(\"div\",{className:r,...o,children:[e(C,{variant:((e=\"None\")=>{switch(e.toLowerCase()){case\"low\":case\"medium\":case\"none\":default:return\"circle-info\";case\"high\":return\"triangle-exclamation\";case\"critical\":return\"ban\"}})(i.severity),size:\"12\"}),i.severity]})}function Ac({className:n,state:i,severity:o=\"None\",icon:r,...a}){const s=k(\"io-notification-header-icon\",n),{isPanelVisible:c}=hc();return t(\"div\",{className:s,...a,children:[r&&e(\"span\",{className:\"io-notification-header-icon-image\",children:e(\"img\",{src:r,alt:`io-notification-header-icon-${r}`})}),e(\"span\",{className:`io-notification-header-icon-badge color-${o.toLowerCase()}`,children:c&&\"Acknowledged\"!==i&&\"New\"})]})}function Mc({className:t,notification:{appTitle:n},...i}){const o=k(\"io-notification-header-title\",t);return e(\"div\",{className:o,...i,children:n})}function Tc({className:t,notification:{timestamp:n,state:i,snooze:o},...r}){const a=k(\"io-notification-timestamp\",t);return e(\"small\",o&&\"Snoozed\"===i?{className:a,...r,children:\"Snoozed\"}:{className:a,...r,children:Aa(n??0)??\"Just Now\"})}function Pc({notification:{id:t,state:n},...i}){const{settings:o,snooze:a}=Ls(),s=r((e=>{e.stopPropagation(),a&&a(t,o.snooze?.duration??0)}),[t,a,o.snooze?.duration]);return a&&\"Snoozed\"!==n&&o.snooze?.enabled?e(A,{icon:\"snooze\",variant:\"link\",text:\"Snooze\",tabIndex:-1,onClick:s,...i}):null}function _c({notification:{id:t,updateState:n},...i}){const o=qi(),{onClose:a}=Ls(),{isPanelVisible:s}=hc(),c=r((e=>{e.stopPropagation(),!o||s?a(t):n(\"Acknowledged\").catch(console.error)}),[o,t,a,s,n]);return e(N,{icon:\"close\",iconSize:\"10\",size:\"24\",tabIndex:-1,onClick:c,...i})}function Oc({className:n,notification:i,...o}){const a=k(\"io-notification-body\",n),s=qi(),{BodyIcon:c,BodyTitle:l,BodyDescription:u}=Vc(),{id:d,icon:f,title:m,body:h,onClick:p,updateState:g}=i,{settings:v,onClose:y}=Ls(),{isPanelVisible:w}=hc(),b=r((async()=>{if(!p)return;if(!s)return void y(d);const e=!v?.toastStacking&&null,t=w?v?.closeNotificationOnClick??!0:e;null!==t?await p({close:t}).catch(console.error):(await p({close:!1}).catch(console.error),await g(\"Acknowledged\").catch(console.error))}),[s,d,w,p,y,g,v?.closeNotificationOnClick,v?.toastStacking]);return t(\"div\",{className:a,role:\"button\",tabIndex:0,onKeyDown:async e=>{(e=>\"Enter\"===e.key||\" \"===e.key)(e)&&await b()},onClick:b,...o,children:[e(c,{icon:f}),t(\"div\",{className:\"io-notification-body-content\",children:[e(l,{text:m}),e(u,{text:h})]})]})}function Lc({className:t,icon:n,altText:i=\"notification icon\",...o}){if(!n)return null;const r=k(\"io-notification-body-icon\",t);return e(\"div\",{className:r,...o,children:e(\"img\",{src:n,alt:i})})}function Fc({text:t,...n}){return e(E,{text:t,...n})}function Bc({className:t,text:n,...i}){const o=k(\"io-notification-body-description\",t);return e(\"p\",{className:o,...i,children:n})}function Rc({className:n,notification:i}){const o=k(\"io-notification-footer\",n),{FooterButton:r}=Vc(),a=l((()=>function(e){const t=[],n={};if(!e)return;e.forEach((e=>{const{displayId:i,displayPath:o}=e,r={...e,children:[]};if(o&&o.length>0){let e;o.forEach(((t,i)=>{0===i?e=n[t]:e&&(e=e.children?.find((e=>e.displayId===t)))})),e&&e.children?.push(r)}else i?(t.push(r),n[i]=r):t.push(r);i&&(n[i]=r)}));const i=e=>{e.forEach((e=>{e.children&&0===e.children.length?delete e.children:e.children&&i(e.children)}))};return i(t),t}(i.actions)),[i.actions]),s=(t,n)=>t.children?e(xi,{text:t.title,children:t.children.map(s)},`${t.title}-${n}`):((t,n)=>e(xi.Item,{children:e(r,{variant:\"link\",className:\"io-dropdown-menu-item io-dropdown-menu-button\",notificationAction:t,notificationId:i.id})},`${t.title}-${n}`))(t,n);return e(\"div\",{className:o,children:e(V,{align:\"right\",children:a?.map(((n,o)=>n.children?t(V,{variant:\"append\",children:[e(r,{notificationAction:n,variant:0===o?\"primary\":\"default\",notificationId:i.id}),e(xi,{variant:0===o?\"primary\":\"default\",icon:\"ellipsis\",children:n.children.map(s)})]},`${n.title}-${o}`):e(r,{notificationAction:n,variant:0===o?\"primary\":\"link\",notificationId:i.id},`${n.title}-${o}`)))})})}function jc({notificationAction:t,...n}){const i=r((e=>{e.stopPropagation(),t.onClick({close:!0})}),[t]);return e(A,{text:t.title,onClick:i,...n})}const Hc={Header:Dc,HeaderCount:Ec,HeaderBadge:Ic,HeaderIcon:Ac,HeaderTitle:Mc,HeaderTimestamp:Tc,HeaderButtonSnooze:Pc,HeaderButtonClose:_c,Body:Oc,BodyIcon:Lc,BodyTitle:Fc,BodyDescription:Bc,Footer:Rc,FooterButton:jc},zc=a(Hc),$c=m((({children:t,components:n})=>{const i=l((()=>({...Hc,...n})),[n]);return e(zc.Provider,{value:i,children:t})}));function Vc(e){return{...s(zc),...e}}function Yc({className:n,notification:i,...o}){const{Header:r,Body:a,Footer:s}=Vc(),{severity:c}=i,l=k(\"io-notification\",`severity-${c?.toLowerCase()??\"none\"}`,\"Acknowledged\"!==i.state&&\"state-new\",n);return t(\"div\",{className:l,...o,children:[e(r,{notification:i}),e(a,{notification:i}),e(s,{notification:i})]})}function Uc({components:t,notification:n,...i}){return e($c,{components:t,children:e(Yc,{notification:n,...i})})}function Wc({className:n,notifications:i,...o}){const[a,s]=c(!1),l=i.length>=3?\"large\":\"normal\",u=2===i.length?\"small\":l,d=i[0].severity,f=k(\"io-notification-stack\",a&&\"io-notification-stack-open\",\"normal\"!==u&&[`io-notification-stack-${u}`],d&&\"None\"!==d&&[`io-notification-stack-${d.toLowerCase()}`],n),m=r((()=>{s(!0)}),[]),h=r((e=>{e.stopPropagation(),i.forEach((e=>{e.close()}))}),[i]);return t(\"div\",{className:f,onClick:m,...o,children:[a&&\"normal\"!==u&&e(\"div\",{className:\"io-notification-stack-btn\",children:e(A,{icon:\"close\",onClick:e=>h(e),children:e(\"span\",{className:\"io-btn-text\",children:\"Clear All\"})})}),i.map((t=>e(Uc,{notification:t},t.id)))]})}function Jc({...t}){const{notificationStacks:i}=Ls();return e(n,{children:i.map((n=>e(Wc,{notifications:n.items,...t},n.key)))})}$c.displayName=\"ComponentsStoreProvider\";const qc=({notification:n,Notification:i,...o})=>{const{configuration:r,isBulkActionsSupported:a,selectedNotifications:s,selectNotification:c}=Ls(),{isPanelVisible:l,isBulkActionsVisible:u}=hc(),d=r.sourceFilter?.muted??[],f=n.source&&d.includes(n.source)||d.includes(\"*\");if(!l&&f)return null;const m=l&&a&&u,h=s.includes(n.id);return m?t(\"div\",{className:k(\"io-notification-list-bulk-action-item\",{selected:h}),children:[e(Fi,{checked:h,onChange:e=>c(n.id,e.target.checked)}),e(i,{notification:n,...o})]}):e(i,{notification:n,...o})};function Kc({className:n,Notification:i,notifications:o=[],noNotificationText:r=\"No notifications to display\",...a}){const s=k(\"io-notification-list\",n),{settings:c}=Ls(),{isPanelVisible:l}=hc(),{toastStacking:u}=c,d=u&&!l,f=o.length>0;return t(\"div\",{className:s,...a,children:[d&&e(Jc,{}),!d&&(f?o.map((t=>e(qc,{notification:t,Notification:i,...a},t.id))):e(\"div\",{className:\"flex jc-center mt-8\",children:r}))]})}const Gc={Header:pc,HeaderCaptionTitle:gc,HeaderCaptionCount:function({variant:t=\"primary\",...n}){const{notificationsCount:i=0}=Ls();return 0===i?null:e(D,{variant:t,...n,children:i>99?\"99+\":i})},HeaderCaptionButtonSettings:function({icon:t=\"cog\",size:n=\"32\",variant:i=\"circle\",...o}){return qi()?e(N,{icon:t,size:n,variant:i,...o}):null},HeaderCaptionButtonClose:function({icon:t=\"close\",size:n=\"32\",variant:i=\"circle\",onClick:o,...r}){const{hidePanel:a}=Ls(),s=qi();return e(N,{icon:t,size:n,variant:i,onClick:e=>{o?o(e):s&&a()},...r})},HeaderActions:function({className:n,...i}){const o=k(\"io-panel-header-actions\",n),{HeaderActionSort:r,HeaderActionView:a,HeaderActionClear:s,HeaderActionEdit:c}=Zc();return t(\"div\",{className:o,...i,children:[t(V,{children:[e(r,{}),e(a,{})]}),t(V,{children:[e(s,{}),e(c,{})]})]})},HeaderActionSort:function({text:n=\"Sort by\",...i}){const{sortNotificationsBy:o,setSortBy:a}=hc(),{onNotificationsSort:s}=(()=>{const{notifications:e}=Ls(),[t,n]=c(As),{key:i,descending:o}=t,a=l((()=>bc[i](e,o)),[e,i,o]),s=r((e=>{n((t=>({key:e,descending:t.key!==e?As.descending:!t.descending})))}),[]);return{onNotificationsSort:s,sortedNotifications:a}})();return t($,{variant:\"light\",...i,children:[t($.Button,{variant:\"link\",children:[n,\" \",e(\"strong\",{children:o})]}),e($.Content,{children:e($.List,{variant:\"single\",checkIcon:\"check\",children:[\"Newest\",\"Oldest\",\"Severity\"].map((t=>e($.Item,{isSelected:o===t.toLowerCase(),onClick:()=>{a(t.toLowerCase()),s(t.toLowerCase())},children:t},t)))})})]})},HeaderActionView:function({text:n=\"View\",...i}){const{settings:o}=Ls(),{viewNotificationsBy:r,setViewBy:a}=hc(),s=o.snooze?.enabled?[\"All\",\"Read\",\"Unread\",\"Snoozed\"]:[\"All\",\"Read\",\"Unread\"];return t($,{variant:\"light\",...i,children:[t($.Button,{variant:\"link\",children:[n,\" \",e(\"strong\",{children:r})]}),e($.Content,{children:e($.List,{variant:\"single\",checkIcon:\"check\",children:s.map((t=>e($.Item,{isSelected:r===t.toLowerCase(),onClick:()=>a(t.toLowerCase()),children:t},t)))})})]})},HeaderActionClear:function({text:t=\"Clear All\",...n}){const{clearAll:i,notificationsCount:o}=Ls();return e(A,{variant:\"link\",text:t,onClick:i,disabled:0===o,...n})},HeaderActionEdit:function({tooltip:t=\"Bulk Edit\",...n}){const{isBulkActionsSupported:i,notificationsCount:o}=Ls(),{showBulkActions:r}=hc();return i?e(N,{icon:\"pen-to-square\",title:t,size:\"32\",onClick:r,disabled:0===o,...n}):null},HeaderBulkActions:function({className:n,...i}){const o=k(\"io-panel-header-bulk-actions\",n),{HeaderBulkActionSelect:r,HeaderBulkActionSelectDropdown:a,HeaderBulkActionMarkAsRead:s,HeaderBulkActionMarkAsUnread:c,HeaderBulkActionSnooze:l,HeaderBulkActionClear:u,HeaderBulkActionClose:d}=Zc(),{isBulkActionsSupported:f}=Ls();return f?e(\"div\",{className:o,...i,children:t(V,{children:[e(r,{}),e(a,{}),e(s,{}),e(c,{}),e(l,{}),e(u,{}),e(d,{})]})}):null},HeaderBulkActionSelect:function({...t}){const{isBulkActionsSupported:n,selectedNotifications:i,selectAllNotifications:o,notificationsCount:r}=Ls();return n?e(Fi,{checked:r===i.length&&r>0,onChange:e=>o(\"all\",e.target.checked),disabled:0===r,...t}):null},HeaderBulkActionSelectDropdown:function({...n}){const{isBulkActionsSupported:i,selectAllNotifications:o,notificationsCount:r}=Ls();return i?t($,{variant:\"light\",...n,children:[e($.ButtonIcon,{variant:\"default\",icon:\"chevron-down\",size:\"16\",iconSize:\"10\",disabled:0===r}),e(P,{children:t($.List,{variant:\"single\",checkIcon:\"check\",children:[e($.ItemSection,{children:\"Select\"}),[\"All\",\"Read\",\"Unread\",\"Snoozed\"].map((t=>e($.Item,{onClick:()=>o(t.toLowerCase(),!0),children:t},t)))]})})]}):null},HeaderBulkActionMarkAsRead:function({icon:t=\"envelope-open\",size:n=\"32\",variant:i=\"circle\",tooltip:o=\"Mark as read\",...a}){const{isBulkActionsSupported:s,selectedNotifications:c,setStates:l,notificationsCount:u}=Ls(),d=r((()=>{l(c,\"Seen\")}),[c,l]);return s?e(N,{icon:t,size:n,variant:i,title:o,onClick:d,disabled:0===u,...a}):null},HeaderBulkActionMarkAsUnread:function({icon:t=\"envelope\",size:n=\"32\",variant:i=\"circle\",tooltip:o=\"Mark as unread\",...a}){const{isBulkActionsSupported:s,selectedNotifications:c,setStates:l,notificationsCount:u}=Ls(),d=r((()=>{l(c,\"Active\")}),[c,l]);return s?e(N,{icon:t,size:n,variant:i,title:o,onClick:d,disabled:0===u,...a}):null},HeaderBulkActionSnooze:function({icon:t=\"snooze\",size:n=\"32\",variant:i=\"circle\",tooltip:o=\"Snooze\",...a}){const{isBulkActionsSupported:s,selectedNotifications:c,snoozeMany:l,settings:u,notificationsCount:d}=Ls(),f=r((()=>{l(c,u.snooze?.duration??0)}),[c,l,u.snooze?.duration]);return s&&u.snooze?.enabled?e(N,{icon:t,size:n,variant:i,title:o,onClick:f,disabled:0===d,...a}):null},HeaderBulkActionClear:function({icon:t=\"trash\",size:n=\"32\",variant:i=\"circle\",tooltip:o=\"Clear\",...a}){const{isBulkActionsSupported:s,selectedNotifications:c,clearMany:l,notificationsCount:u}=Ls(),d=r((()=>{l(c)}),[c,l]);return s?e(N,{icon:t,size:n,variant:i,title:o,onClick:d,disabled:0===u,...a}):null},HeaderBulkActionClose:function({text:t=\"Done\",variant:n=\"primary\",...i}){const{isBulkActionsSupported:o,notificationsCount:r}=Ls(),{hideBulkActions:a}=hc();return o?e(A,{variant:n,text:t,onClick:a,disabled:0===r,...i}):null},HeaderSearch:function({className:n,icon:i=\"search\",placeholder:o=\"Search\",...r}){const a=k(\"io-panel-header-search\",n),{notificationsCount:s}=Ls(),{searchQuery:c,setSearch:l}=hc(),u=d(null);return t(\"div\",{className:a,children:[e(Oi,{ref:u,value:c,iconPrepend:i,placeholder:o,onChange:e=>l(e.target.value),...r}),c.length>0&&e(\"p\",{className:\"io-panel-header-search-count\",children:`${s} results`})]})},Body:kc,Footer:Cc,FooterButtons:Nc,FooterButtonClearAll:xc,FooterButtonClearAllOld:Sc,Notification:Uc,NotificationsList:Kc},Qc=a(Gc),Xc=m((({children:t,components:n})=>{const i=l((()=>({...Gc,...n})),[n]);return e(Qc.Provider,{value:i,children:t})}));function Zc(e){return{...s(Qc),...e}}function el(){const e=s(v),{settings:t}=Ls(),n=qi(),i=r((async()=>{const i=e.windows.my();if(!e||!i||!n)return;const o=i.placementSettings;await i.place({...o,horizontalAlignment:t.placement?.panel})}),[e,n,t.placement?.panel]);u((()=>{e&&t.placement?.panel&&n&&i().catch(console.error)}),[e,n,i,t.placement?.panel])}function tl({className:i,onClose:o,title:r=\"Notifications\",...a}){const{Header:s,Body:l}=Zc(),{settings:d}=Ls(),{isPanelVisible:f}=hc(),[m,h]=c(!1),p=qi(),g=k(\"io-notifications-panel\",\"left\"===d.placement?.panel&&\"io-panel-left\",\"right\"===d.placement?.panel&&\"io-panel-right\",i);return el(),u((()=>{f||h(!1)}),[f]),t(n,{children:[t(Mi,{className:g,...a,children:[e(s,{title:r,onClose:o,onOpenSettings:()=>h(!0)}),e(l,{})]}),p&&f&&e(fc,{isOpen:m,onClose:()=>h(!1)})]})}Xc.displayName=\"ComponentsStoreProvider\";const nl={Body:function({className:t,notifications:n,maxToasts:i=1,...o}){const r=k(\"io-toasts-body\",t),{NotificationsList:a,Notification:s}=rl(),[l,d]=c([]);return u((()=>{const e=i<0?n.length:i,t=n.filter((e=>\"Active\"===e.state)).slice(0,e);for(const e of t)e.onShow();d(t)}),[n,i]),e(\"div\",{className:r,...o,children:e(a,{Notification:s,notifications:l,noNotificationText:\"\"})})},Notification:Uc,NotificationsList:Kc},il=a(nl),ol=m((({children:t,components:n})=>{const i=l((()=>({...nl,...n})),[n]);return e(il.Provider,{value:i,children:t})}));function rl(e){return{...s(il),...e}}function al(){const e=s(v),{settings:t}=Ls(),n=r((async()=>{const n=e.windows.my();if(!e||!n)return;const i=n.placementSettings;await n.place({...i,horizontalAlignment:\"top-right\"===t.placement?.toasts||\"bottom-right\"===t.placement?.toasts?\"right\":\"left\"})}),[e,t.placement?.toasts]);u((()=>{e&&t.placement?.toasts&&n().catch(console.error)}),[e,n,t.placement?.toasts])}function sl({className:n,maxToasts:i=10,...o}){const{Header:r,Body:a,Footer:s}=rl(),{notifications:c,settings:l}=Ls(),u=k(\"io-toasts\",(\"top-left\"===l.placement?.toasts||\"top-right\"===l.placement?.toasts)&&\"io-toasts-top\",(\"top-right\"===l.placement?.toasts||\"bottom-right\"===l.placement?.toasts)&&\"io-toasts-right\",(\"bottom-left\"===l.placement?.toasts||\"bottom-right\"===l.placement?.toasts)&&\"io-toasts-bottom\",(\"top-left\"===l.placement?.toasts||\"bottom-left\"===l.placement?.toasts)&&\"io-toasts-left\",n);return al(),t(\"div\",{className:u,...o,children:[r&&e(r,{}),e(a,{notifications:c,maxToasts:i}),s&&e(s,{})]})}ol.displayName=\"ComponentsStoreProvider\";var cl=Object.freeze({__proto__:null,Notification:Uc,NotificationBody:Oc,NotificationBodyDescription:Bc,NotificationBodyIcon:Lc,NotificationBodyTitle:Fc,NotificationFooter:Rc,NotificationFooterButton:jc,NotificationHeader:Dc,NotificationHeaderBadge:Ic,NotificationHeaderButtonClose:_c,NotificationHeaderButtonSnooze:Pc,NotificationHeaderCount:Ec,NotificationHeaderIcon:Ac,NotificationHeaderTimestamp:Tc,NotificationHeaderTitle:Mc,NotificationStack:Wc,NotificationsList:Kc,NotificationsPanelProvider:({children:t})=>{const{searchQuery:n,setSearch:i,isPanelVisible:o,sortNotificationsBy:r,setSortBy:a,viewNotificationsBy:d,setViewBy:f,isBulkActionsVisible:m,showBulkActions:h,hideBulkActions:p}=function(){const e=s(v),[t,n]=c(!1),[i,o]=c(\"newest\"),[r,a]=c(\"all\"),[l,d]=c(\"\"),[f,m]=c(!1),h=qi(),{isBulkActionsSupported:p}=Ls();return u((()=>{const e=ks.onPanelVisibilityChanged((e=>n(e)));return()=>{e()}}),[]),u((()=>{null!==h&&h&&(async()=>{const t=await e.notifications.panel.isVisible();n(t)})()}),[e.notifications.panel,h]),u((()=>{t||(m(!1),a(\"all\"))}),[t]),{isPanelVisible:t,sortNotificationsBy:i,setSortBy:e=>{o(e)},viewNotificationsBy:r,setViewBy:e=>{a(e)},searchQuery:l,setSearch:e=>{d(e)},isBulkActionsVisible:f,showBulkActions:()=>{p&&m(!0)},hideBulkActions:()=>{p&&m(!1)}}}(),g=l((()=>({searchQuery:n,setSearch:i,isPanelVisible:o,sortNotificationsBy:r,setSortBy:a,viewNotificationsBy:d,setViewBy:f,isBulkActionsVisible:m,showBulkActions:h,hideBulkActions:p})),[n,i,o,r,a,d,f,m,h,p]);return e(mc.Provider,{value:g,children:t})},NotificationsProvider:({children:t})=>{const{notifications:n,notificationStacks:i,notificationsCount:o,configuration:r,settings:a,allApplications:s,allApps:c,allowedApplications:u,clearAll:d,clearAllOld:f,close:m,hidePanel:h,showPanel:p,saveSetting:g,saveFilter:v,saveAllFilter:y,isBulkActionsSupported:w,selectedNotifications:b,selectNotification:k,selectAllNotifications:C,clearMany:N,snooze:x,snoozeMany:S,setState:D,setStates:E,setCount:I}=_s(),A=l((()=>({notifications:n,notificationStacks:i,notificationsCount:o,configuration:r,settings:a,allApplications:s,allApps:c,allowedApplications:u,clearAll:d,clearAllOld:f,onClose:m,hidePanel:h,showPanel:p,saveSetting:g,saveFilter:v,saveAllFilter:y,isBulkActionsSupported:w,selectedNotifications:b,selectNotification:k,selectAllNotifications:C,clearMany:N,snooze:x,snoozeMany:S,setState:D,setStates:E,setCount:I})),[n,i,o,r,a,s,c,u,d,f,m,h,p,g,v,y,w,b,k,C,N,x,S,D,E,I]);return e(Os.Provider,{value:A,children:t})},Panel:function({components:t,settings:n,...i}){return e(cc,{components:n,children:e(Xc,{components:t,children:e(tl,{...i})})})},PanelBody:kc,PanelFooter:Cc,PanelFooterButtonClearAll:xc,PanelFooterButtonClearAllOld:Sc,PanelFooterButtons:Nc,PanelHeader:pc,PanelHeaderCaptionTitle:gc,SettingsAllowNotifications:Fs,SettingsCloseNotificationOnClick:Rs,SettingsGeneral:bs,SettingsHideToastsAfter:Vs,SettingsMarkAsNew:Ys,SettingsMarkAsRead:Us,SettingsPanel:dc,SettingsPanelAlwaysOnTop:Hs,SettingsPanelAutoHide:js,SettingsPlacement:Gs,SettingsPlacementPanel:Qs,SettingsPlacementToasts:Xs,SettingsShowNotificationBadge:Bs,SettingsSnooze:Zs,SettingsSnoozeDuration:ec,SettingsStacking:Ws,SettingsSubscribeAll:nc,SettingsSubscribeApp:ic,SettingsSubscribeMuteAll:oc,SettingsSubscribeMuteApp:rc,SettingsSubscriptions:tc,SettingsToastStackBy:Ks,SettingsToastStacking:Js,Toasts:function({components:t,...n}){return e(ol,{components:t,children:e(sl,{...n})})},useAddRemoveApps:Cs,useHidePanelOnFocusLost:function(e=!0){const t=s(v),n=qi();return u((()=>{if(!t||!e||null===n||!n)return;const i=t.windows.my()?.onFocusChanged((e=>{e.isFocused||t.notifications.panel.hide().catch((e=>{console.error(\"Error hiding panel:\",e)}))}));return()=>i?.()}),[t,n,e]),t},useHidePanelOnKeyUp:function(e=\"Escape\"){const{hidePanel:t}=Ls();Ui(e,t)},useNotificationStacking:Ns,useNotificationsContext:Ls,useNotificationsPanelContext:hc,usePanelWindowPlacement:el,useSelectNotifications:xs,useShowHidePanelWindow:function(e=!0){const t=s(v),n=t?.windows.my(),i=qi(),{isPanelVisible:o}=hc();return u((()=>{t&&n&&i&&(o?n.show().then((()=>{e&&n.focus().catch((e=>{console.error(\"Error focusing window:\",e)}))})).catch((e=>console.error(\"Error showing window:\",e))):n.hide().catch((e=>console.error(\"Error hiding window:\",e))))}),[t,n,i,o,e]),{myWindow:n}},useToastsWindowPlacement:al});const ll=n=>{const{General:i,Layouts:o,Downloads:r,System:a}=Cu();return t(Ii,{...n,children:[e(i,{}),e(o,{}),e(r,{}),e(a,{})]})},ul=({className:n,title:i=\"General\",...o})=>{const{Theme:r,PinnedPosition:a,MinimizeToTray:s,ShowTutorialOnStartup:c}=Cu();return t(I,{className:k(\"io-block io-block-list-gap\",n),title:i,...o,children:[e(r,{}),e(a,{}),e(s,{}),e(c,{})]})},dl=(e=\"dark\")=>{switch(e){case\"dark\":return\"Dark\";case\"light\":return\"Light\";default:return e}},fl=({className:n,title:i=\"Theme\",...o})=>{const{currentTheme:a,selectTheme:l}=(()=>{const e=s(v),[t,n]=c(null),i=r((t=>e?.themes?.select(t)),[e]);return u((()=>{if(!e)return;let t=!1;const i=e=>{t||n(e)};return e.themes?.onChanged(i),e.themes?.getCurrent().then(i).catch(console.warn),()=>{t=!0}}),[e]),{currentTheme:t,selectTheme:i}})(),d=(()=>{const e=s(v),[t,n]=c([]);return u((()=>{e&&e.themes?.list().then(n).catch(console.warn)}),[e]),t})();return t(\"div\",{className:k(\"flex jc-between ai-center\",n),...o,children:[e(\"label\",{className:\"io-text-clipper\",children:i}),t($,{variant:\"light\",children:[e($.Button,{text:dl(a?.name)}),e($.Content,{children:e($.List,{children:d.map((({name:t})=>e($.Item,{onClick:()=>l(t),children:dl(t)},t)))})})]})]})},ml=({prefKey:n,options:i,disabled:o,...r})=>{const{isLoading:a,value:s=\"Select option\",update:c}=Hr({prefKey:n});return t($,{variant:\"light\",disabled:a||o,...r,children:[e($.Button,{children:s}),e($.Content,{children:e($.List,{children:i.map((t=>e($.Item,{onClick:()=>(async e=>{if(e!==s)try{await c(e)}catch(e){console.error(\"Failed to update platform preference:\",e)}})(t),children:t},t)))})})]})},hl=({className:n,label:i=\"Pinned position\",...o})=>e(I,{className:k(\"io-block-list-gap\",n),...o,children:t(\"div\",{className:\"flex jc-between ai-center\",children:[e(\"label\",{className:\"io-text-clipper\",children:i}),e(ml,{className:n,prefKey:eo,options:[\"Left\",\"Right\"],...o})]})}),pl=({prefKey:t,...n})=>{const{isLoading:i,value:o=!1,update:r}=Hr({prefKey:t});return e(Ri,{checked:o,disabled:i,onChange:e=>r(e.target.checked),...n})},gl=({align:t=\"right\",label:n=\"Allow docking\",...i})=>e(pl,{align:t,label:n,prefKey:to,...i}),vl=({align:t=\"right\",label:n=\"Minimize to tray\",...i})=>e(pl,{align:t,label:n,prefKey:no,...i}),yl=({align:t=\"right\",label:n=\"Auto-close on starting apps and workspaces\",...i})=>e(pl,{align:t,label:n,prefKey:io,disabled:!0,...i}),wl=({align:t=\"right\",label:n=\"Show tutorial on startup\",...i})=>e(pl,{align:t,label:n,prefKey:oo,...i}),bl=({className:n,title:i=\"Layouts\",...o})=>{const{LayoutsSaveCurrentOnExit:r,LayoutsShowDeletePrompt:a,LayoutsShowUnsavedChangesPrompt:s}=Cu();return t(I,{className:k(\"io-block-list-gap\",n),title:i,...o,children:[e(r,{}),e(s,{}),e(a,{})]})},kl=({align:t=\"right\",label:n=\"Restore last saved on startup\",...i})=>e(pl,{align:t,label:n,prefKey:ro,...i}),Cl=({align:t=\"right\",label:n=\"Save current on exit\",...i})=>e(pl,{align:t,label:n,prefKey:ao,...i}),Nl=({align:t=\"right\",label:n=\"Show prompt for unsaved changes\",...i})=>e(pl,{align:t,label:n,prefKey:so,...i}),xl=({align:t=\"right\",label:n=\"Show prompt for deleting\",...i})=>e(pl,{align:t,label:n,prefKey:co,...i}),Sl=({className:t,title:n=\"Downloads\",...i})=>{const{DownloadsLocation:o}=Cu();return e(I,{className:k(\"io-block-list-gap\",t),title:n,...i,children:e(o,{})})},Dl=({align:t=\"right\",label:n=\"Ask where to save each file before downloading\",...i})=>e(pl,{align:t,label:n,prefKey:lo,...i}),El=({className:n,label:i=\"Location\",...o})=>{const{configuration:{downloadFolder:r},setDownloadLocationWithDialog:a,isDownloadLocationDialogVisible:s,downloadLocationList:c}=Na();return t(I,{className:k(\"io-block-list-gap\",n),...o,children:[t(\"div\",{className:\"flex jc-between ai-center\",children:[e(\"label\",{className:\"io-text-clipper\",children:i}),e(A,{text:\"Change\",onClick:a,disabled:s})]}),e(\"p\",{children:r??c?.[0]??\"Not set\"})]})},Il=({className:n,title:i=\"System\",...o})=>{const{SystemRestartSection:r,SystemShutdownSection:a}=Cu();return t(I,{className:k(\"io-block-list-gap\",n),title:i,...o,children:[e(r,{}),e(a,{})]})};var Al=[\"onChange\",\"onClose\",\"onDayCreate\",\"onDestroy\",\"onKeyDown\",\"onMonthChange\",\"onOpen\",\"onParseConfig\",\"onReady\",\"onValueUpdate\",\"onYearChange\",\"onPreCalendarPosition\"],Ml={_disable:[],allowInput:!1,allowInvalidPreload:!1,altFormat:\"F j, Y\",altInput:!1,altInputClass:\"form-control input\",animate:\"object\"==typeof window&&-1===window.navigator.userAgent.indexOf(\"MSIE\"),ariaDateFormat:\"F j, Y\",autoFillDefaultTime:!0,clickOpens:!0,closeOnSelect:!0,conjunction:\", \",dateFormat:\"Y-m-d\",defaultHour:12,defaultMinute:0,defaultSeconds:0,disable:[],disableMobile:!1,enableSeconds:!1,enableTime:!1,errorHandler:function(e){return\"undefined\"!=typeof console&&console.warn(e)},getWeek:function(e){var t=new Date(e.getTime());t.setHours(0,0,0,0),t.setDate(t.getDate()+3-(t.getDay()+6)%7);var n=new Date(t.getFullYear(),0,4);return 1+Math.round(((t.getTime()-n.getTime())/864e5-3+(n.getDay()+6)%7)/7)},hourIncrement:1,ignoredFocusElements:[],inline:!1,locale:\"default\",minuteIncrement:5,mode:\"single\",monthSelectorType:\"dropdown\",nextArrow:\"<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 17 17'><g></g><path d='M13.207 8.472l-7.854 7.854-0.707-0.707 7.146-7.146-7.146-7.148 0.707-0.707 7.854 7.854z' /></svg>\",noCalendar:!1,now:new Date,onChange:[],onClose:[],onDayCreate:[],onDestroy:[],onKeyDown:[],onMonthChange:[],onOpen:[],onParseConfig:[],onReady:[],onValueUpdate:[],onYearChange:[],onPreCalendarPosition:[],plugins:[],position:\"auto\",positionElement:void 0,prevArrow:\"<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 17 17'><g></g><path d='M5.207 8.471l7.146 7.147-0.707 0.707-7.853-7.854 7.854-7.853 0.707 0.707-7.147 7.146z' /></svg>\",shorthandCurrentMonth:!1,showMonths:1,static:!1,time_24hr:!1,weekNumbers:!1,wrap:!1},Tl={weekdays:{shorthand:[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],longhand:[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"]},months:{shorthand:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],longhand:[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]},daysInMonth:[31,28,31,30,31,30,31,31,30,31,30,31],firstDayOfWeek:0,ordinal:function(e){var t=e%100;if(t>3&&t<21)return\"th\";switch(t%10){case 1:return\"st\";case 2:return\"nd\";case 3:return\"rd\";default:return\"th\"}},rangeSeparator:\" to \",weekAbbreviation:\"Wk\",scrollTitle:\"Scroll to increment\",toggleTitle:\"Click to toggle\",amPM:[\"AM\",\"PM\"],yearAriaLabel:\"Year\",monthAriaLabel:\"Month\",hourAriaLabel:\"Hour\",minuteAriaLabel:\"Minute\",time_24hr:!1},Pl=function(e,t){return void 0===t&&(t=2),(\"000\"+e).slice(-1*t)},_l=function(e){return!0===e?1:0};function Ol(e,t){var n;return function(){var i=this,o=arguments;clearTimeout(n),n=setTimeout((function(){return e.apply(i,o)}),t)}}var Ll=function(e){return e instanceof Array?e:[e]};function Fl(e,t,n){if(!0===n)return e.classList.add(t);e.classList.remove(t)}function Bl(e,t,n){var i=window.document.createElement(e);return t=t||\"\",n=n||\"\",i.className=t,void 0!==n&&(i.textContent=n),i}function Rl(e){for(;e.firstChild;)e.removeChild(e.firstChild)}function jl(e,t){return t(e)?e:e.parentNode?jl(e.parentNode,t):void 0}function Hl(e,t){var n=Bl(\"div\",\"numInputWrapper\"),i=Bl(\"input\",\"numInput \"+e),o=Bl(\"span\",\"arrowUp\"),r=Bl(\"span\",\"arrowDown\");if(-1===navigator.userAgent.indexOf(\"MSIE 9.0\")?i.type=\"number\":(i.type=\"text\",i.pattern=\"\\\\d*\"),void 0!==t)for(var a in t)i.setAttribute(a,t[a]);return n.appendChild(i),n.appendChild(o),n.appendChild(r),n}function zl(e){try{return\"function\"==typeof e.composedPath?e.composedPath()[0]:e.target}catch(t){return e.target}}var $l=function(){},Vl=function(e,t,n){return n.months[t?\"shorthand\":\"longhand\"][e]},Yl={D:$l,F:function(e,t,n){e.setMonth(n.months.longhand.indexOf(t))},G:function(e,t){e.setHours((e.getHours()>=12?12:0)+parseFloat(t))},H:function(e,t){e.setHours(parseFloat(t))},J:function(e,t){e.setDate(parseFloat(t))},K:function(e,t,n){e.setHours(e.getHours()%12+12*_l(new RegExp(n.amPM[1],\"i\").test(t)))},M:function(e,t,n){e.setMonth(n.months.shorthand.indexOf(t))},S:function(e,t){e.setSeconds(parseFloat(t))},U:function(e,t){return new Date(1e3*parseFloat(t))},W:function(e,t,n){var i=parseInt(t),o=new Date(e.getFullYear(),0,2+7*(i-1),0,0,0,0);return o.setDate(o.getDate()-o.getDay()+n.firstDayOfWeek),o},Y:function(e,t){e.setFullYear(parseFloat(t))},Z:function(e,t){return new Date(t)},d:function(e,t){e.setDate(parseFloat(t))},h:function(e,t){e.setHours((e.getHours()>=12?12:0)+parseFloat(t))},i:function(e,t){e.setMinutes(parseFloat(t))},j:function(e,t){e.setDate(parseFloat(t))},l:$l,m:function(e,t){e.setMonth(parseFloat(t)-1)},n:function(e,t){e.setMonth(parseFloat(t)-1)},s:function(e,t){e.setSeconds(parseFloat(t))},u:function(e,t){return new Date(parseFloat(t))},w:$l,y:function(e,t){e.setFullYear(2e3+parseFloat(t))}},Ul={D:\"\",F:\"\",G:\"(\\\\d\\\\d|\\\\d)\",H:\"(\\\\d\\\\d|\\\\d)\",J:\"(\\\\d\\\\d|\\\\d)\\\\w+\",K:\"\",M:\"\",S:\"(\\\\d\\\\d|\\\\d)\",U:\"(.+)\",W:\"(\\\\d\\\\d|\\\\d)\",Y:\"(\\\\d{4})\",Z:\"(.+)\",d:\"(\\\\d\\\\d|\\\\d)\",h:\"(\\\\d\\\\d|\\\\d)\",i:\"(\\\\d\\\\d|\\\\d)\",j:\"(\\\\d\\\\d|\\\\d)\",l:\"\",m:\"(\\\\d\\\\d|\\\\d)\",n:\"(\\\\d\\\\d|\\\\d)\",s:\"(\\\\d\\\\d|\\\\d)\",u:\"(.+)\",w:\"(\\\\d\\\\d|\\\\d)\",y:\"(\\\\d{2})\"},Wl={Z:function(e){return e.toISOString()},D:function(e,t,n){return t.weekdays.shorthand[Wl.w(e,t,n)]},F:function(e,t,n){return Vl(Wl.n(e,t,n)-1,!1,t)},G:function(e,t,n){return Pl(Wl.h(e,t,n))},H:function(e){return Pl(e.getHours())},J:function(e,t){return void 0!==t.ordinal?e.getDate()+t.ordinal(e.getDate()):e.getDate()},K:function(e,t){return t.amPM[_l(e.getHours()>11)]},M:function(e,t){return Vl(e.getMonth(),!0,t)},S:function(e){return Pl(e.getSeconds())},U:function(e){return e.getTime()/1e3},W:function(e,t,n){return n.getWeek(e)},Y:function(e){return Pl(e.getFullYear(),4)},d:function(e){return Pl(e.getDate())},h:function(e){return e.getHours()%12?e.getHours()%12:12},i:function(e){return Pl(e.getMinutes())},j:function(e){return e.getDate()},l:function(e,t){return t.weekdays.longhand[e.getDay()]},m:function(e){return Pl(e.getMonth()+1)},n:function(e){return e.getMonth()+1},s:function(e){return e.getSeconds()},u:function(e){return e.getTime()},w:function(e){return e.getDay()},y:function(e){return String(e.getFullYear()).substring(2)}},Jl=function(e){var t=e.config,n=void 0===t?Ml:t,i=e.l10n,o=void 0===i?Tl:i,r=e.isMobile,a=void 0!==r&&r;return function(e,t,i){var r=i||o;return void 0===n.formatDate||a?t.split(\"\").map((function(t,i,o){return Wl[t]&&\"\\\\\"!==o[i-1]?Wl[t](e,r,n):\"\\\\\"!==t?t:\"\"})).join(\"\"):n.formatDate(e,t,r)}},ql=function(e){var t=e.config,n=void 0===t?Ml:t,i=e.l10n,o=void 0===i?Tl:i;return function(e,t,i,r){if(0===e||e){var a,s=r||o,c=e;if(e instanceof Date)a=new Date(e.getTime());else if(\"string\"!=typeof e&&void 0!==e.toFixed)a=new Date(e);else if(\"string\"==typeof e){var l=t||(n||Ml).dateFormat,u=String(e).trim();if(\"today\"===u)a=new Date,i=!0;else if(n&&n.parseDate)a=n.parseDate(e,l);else if(/Z$/.test(u)||/GMT$/.test(u))a=new Date(e);else{for(var d=void 0,f=[],m=0,h=0,p=\"\";m<l.length;m++){var g=l[m],v=\"\\\\\"===g,y=\"\\\\\"===l[m-1]||v;if(Ul[g]&&!y){p+=Ul[g];var w=new RegExp(p).exec(e);w&&(d=!0)&&f[\"Y\"!==g?\"push\":\"unshift\"]({fn:Yl[g],val:w[++h]})}else v||(p+=\".\")}a=n&&n.noCalendar?new Date((new Date).setHours(0,0,0,0)):new Date((new Date).getFullYear(),0,1,0,0,0,0),f.forEach((function(e){var t=e.fn,n=e.val;return a=t(a,n,s)||a})),a=d?a:void 0}}if(a instanceof Date&&!isNaN(a.getTime()))return!0===i&&a.setHours(0,0,0,0),a;n.errorHandler(new Error(\"Invalid date provided: \"+c))}}};function Kl(e,t,n){return void 0===n&&(n=!0),!1!==n?new Date(e.getTime()).setHours(0,0,0,0)-new Date(t.getTime()).setHours(0,0,0,0):e.getTime()-t.getTime()}var Gl=function(e,t,n){return e>Math.min(t,n)&&e<Math.max(t,n)},Ql=function(e,t,n){return 3600*e+60*t+n},Xl=function(e){var t=Math.floor(e/3600),n=(e-3600*t)/60;return[t,n,e-3600*t-60*n]},Zl={DAY:864e5};function eu(e){var t=e.defaultHour,n=e.defaultMinute,i=e.defaultSeconds;if(void 0!==e.minDate){var o=e.minDate.getHours(),r=e.minDate.getMinutes(),a=e.minDate.getSeconds();t<o&&(t=o),t===o&&n<r&&(n=r),t===o&&n===r&&i<a&&(i=e.minDate.getSeconds())}if(void 0!==e.maxDate){var s=e.maxDate.getHours(),c=e.maxDate.getMinutes();(t=Math.min(t,s))===s&&(n=Math.min(c,n)),t===s&&n===c&&(i=e.maxDate.getSeconds())}return{hours:t,minutes:n,seconds:i}}\"function\"!=typeof Object.assign&&(Object.assign=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];if(!e)throw TypeError(\"Cannot convert undefined or null to object\");for(var i=function(t){t&&Object.keys(t).forEach((function(n){return e[n]=t[n]}))},o=0,r=t;o<r.length;o++){i(r[o])}return e});var tu=function(){return tu=Object.assign||function(e){for(var t,n=1,i=arguments.length;n<i;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},tu.apply(this,arguments)},nu=function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var i=Array(e),o=0;for(t=0;t<n;t++)for(var r=arguments[t],a=0,s=r.length;a<s;a++,o++)i[o]=r[a];return i},iu=300;function ou(e,t){var n={config:tu(tu({},Ml),au.defaultConfig),l10n:Tl};function i(){var e;return(null===(e=n.calendarContainer)||void 0===e?void 0:e.getRootNode()).activeElement||document.activeElement}function o(e){return e.bind(n)}function r(){var e=n.config;!1===e.weekNumbers&&1===e.showMonths||!0!==e.noCalendar&&window.requestAnimationFrame((function(){if(void 0!==n.calendarContainer&&(n.calendarContainer.style.visibility=\"hidden\",n.calendarContainer.style.display=\"block\"),void 0!==n.daysContainer){var t=(n.days.offsetWidth+1)*e.showMonths;n.daysContainer.style.width=t+\"px\",n.calendarContainer.style.width=t+(void 0!==n.weekWrapper?n.weekWrapper.offsetWidth:0)+\"px\",n.calendarContainer.style.removeProperty(\"visibility\"),n.calendarContainer.style.removeProperty(\"display\")}}))}function a(e){if(0===n.selectedDates.length){var t=void 0===n.config.minDate||Kl(new Date,n.config.minDate)>=0?new Date:new Date(n.config.minDate.getTime()),i=eu(n.config);t.setHours(i.hours,i.minutes,i.seconds,t.getMilliseconds()),n.selectedDates=[t],n.latestSelectedDateObj=t}void 0!==e&&\"blur\"!==e.type&&function(e){e.preventDefault();var t=\"keydown\"===e.type,i=zl(e),o=i;void 0!==n.amPM&&i===n.amPM&&(n.amPM.textContent=n.l10n.amPM[_l(n.amPM.textContent===n.l10n.amPM[0])]);var r=parseFloat(o.getAttribute(\"min\")),a=parseFloat(o.getAttribute(\"max\")),s=parseFloat(o.getAttribute(\"step\")),c=parseInt(o.value,10),l=e.delta||(t?38===e.which?1:-1:0),u=c+s*l;if(void 0!==o.value&&2===o.value.length){var d=o===n.hourElement,f=o===n.minuteElement;u<r?(u=a+u+_l(!d)+(_l(d)&&_l(!n.amPM)),f&&p(void 0,-1,n.hourElement)):u>a&&(u=o===n.hourElement?u-a-_l(!n.amPM):r,f&&p(void 0,1,n.hourElement)),n.amPM&&d&&(1===s?u+c===23:Math.abs(u-c)>s)&&(n.amPM.textContent=n.l10n.amPM[_l(n.amPM.textContent===n.l10n.amPM[0])]),o.value=Pl(u)}}(e);var o=n._input.value;s(),Z(),n._input.value!==o&&n._debouncedChange()}function s(){if(void 0!==n.hourElement&&void 0!==n.minuteElement){var e,t,i=(parseInt(n.hourElement.value.slice(-2),10)||0)%24,o=(parseInt(n.minuteElement.value,10)||0)%60,r=void 0!==n.secondElement?(parseInt(n.secondElement.value,10)||0)%60:0;void 0!==n.amPM&&(e=i,t=n.amPM.textContent,i=e%12+12*_l(t===n.l10n.amPM[1]));var a=void 0!==n.config.minTime||n.config.minDate&&n.minDateHasTime&&n.latestSelectedDateObj&&0===Kl(n.latestSelectedDateObj,n.config.minDate,!0),s=void 0!==n.config.maxTime||n.config.maxDate&&n.maxDateHasTime&&n.latestSelectedDateObj&&0===Kl(n.latestSelectedDateObj,n.config.maxDate,!0);if(void 0!==n.config.maxTime&&void 0!==n.config.minTime&&n.config.minTime>n.config.maxTime){var c=Ql(n.config.minTime.getHours(),n.config.minTime.getMinutes(),n.config.minTime.getSeconds()),u=Ql(n.config.maxTime.getHours(),n.config.maxTime.getMinutes(),n.config.maxTime.getSeconds()),d=Ql(i,o,r);if(d>u&&d<c){var f=Xl(c);i=f[0],o=f[1],r=f[2]}}else{if(s){var m=void 0!==n.config.maxTime?n.config.maxTime:n.config.maxDate;(i=Math.min(i,m.getHours()))===m.getHours()&&(o=Math.min(o,m.getMinutes())),o===m.getMinutes()&&(r=Math.min(r,m.getSeconds()))}if(a){var h=void 0!==n.config.minTime?n.config.minTime:n.config.minDate;(i=Math.max(i,h.getHours()))===h.getHours()&&o<h.getMinutes()&&(o=h.getMinutes()),o===h.getMinutes()&&(r=Math.max(r,h.getSeconds()))}}l(i,o,r)}}function c(e){var t=e||n.latestSelectedDateObj;t&&t instanceof Date&&l(t.getHours(),t.getMinutes(),t.getSeconds())}function l(e,t,i){void 0!==n.latestSelectedDateObj&&n.latestSelectedDateObj.setHours(e%24,t,i||0,0),n.hourElement&&n.minuteElement&&!n.isMobile&&(n.hourElement.value=Pl(n.config.time_24hr?e:(12+e)%12+12*_l(e%12==0)),n.minuteElement.value=Pl(t),void 0!==n.amPM&&(n.amPM.textContent=n.l10n.amPM[_l(e>=12)]),void 0!==n.secondElement&&(n.secondElement.value=Pl(i)))}function u(e){var t=zl(e),n=parseInt(t.value)+(e.delta||0);(n/1e3>1||\"Enter\"===e.key&&!/[^\\d]/.test(n.toString()))&&M(n)}function d(e,t,i,o){return t instanceof Array?t.forEach((function(t){return d(e,t,i,o)})):e instanceof Array?e.forEach((function(e){return d(e,t,i,o)})):(e.addEventListener(t,i,o),void n._handlers.push({remove:function(){return e.removeEventListener(t,i,o)}}))}function f(){q(\"onChange\")}function m(e,t){var i=void 0!==e?n.parseDate(e):n.latestSelectedDateObj||(n.config.minDate&&n.config.minDate>n.now?n.config.minDate:n.config.maxDate&&n.config.maxDate<n.now?n.config.maxDate:n.now),o=n.currentYear,r=n.currentMonth;try{void 0!==i&&(n.currentYear=i.getFullYear(),n.currentMonth=i.getMonth())}catch(e){e.message=\"Invalid date supplied: \"+i,n.config.errorHandler(e)}t&&n.currentYear!==o&&(q(\"onYearChange\"),C()),!t||n.currentYear===o&&n.currentMonth===r||q(\"onMonthChange\"),n.redraw()}function h(e){var t=zl(e);~t.className.indexOf(\"arrow\")&&p(e,t.classList.contains(\"arrowUp\")?1:-1)}function p(e,t,n){var i=e&&zl(e),o=n||i&&i.parentNode&&i.parentNode.firstChild,r=K(\"increment\");r.delta=t,o&&o.dispatchEvent(r)}function g(e,t,i,o){var r=T(t,!0),a=Bl(\"span\",e,t.getDate().toString());return a.dateObj=t,a.$i=o,a.setAttribute(\"aria-label\",n.formatDate(t,n.config.ariaDateFormat)),-1===e.indexOf(\"hidden\")&&0===Kl(t,n.now)&&(n.todayDateElem=a,a.classList.add(\"today\"),a.setAttribute(\"aria-current\",\"date\")),r?(a.tabIndex=-1,G(t)&&(a.classList.add(\"selected\"),n.selectedDateElem=a,\"range\"===n.config.mode&&(Fl(a,\"startRange\",n.selectedDates[0]&&0===Kl(t,n.selectedDates[0],!0)),Fl(a,\"endRange\",n.selectedDates[1]&&0===Kl(t,n.selectedDates[1],!0)),\"nextMonthDay\"===e&&a.classList.add(\"inRange\")))):a.classList.add(\"flatpickr-disabled\"),\"range\"===n.config.mode&&function(e){return!(\"range\"!==n.config.mode||n.selectedDates.length<2)&&(Kl(e,n.selectedDates[0])>=0&&Kl(e,n.selectedDates[1])<=0)}(t)&&!G(t)&&a.classList.add(\"inRange\"),n.weekNumbers&&1===n.config.showMonths&&\"prevMonthDay\"!==e&&o%7==6&&n.weekNumbers.insertAdjacentHTML(\"beforeend\",\"<span class='flatpickr-day'>\"+n.config.getWeek(t)+\"</span>\"),q(\"onDayCreate\",a),a}function v(e){e.focus(),\"range\"===n.config.mode&&L(e)}function y(e){for(var t=e>0?0:n.config.showMonths-1,i=e>0?n.config.showMonths:-1,o=t;o!=i;o+=e)for(var r=n.daysContainer.children[o],a=e>0?0:r.children.length-1,s=e>0?r.children.length:-1,c=a;c!=s;c+=e){var l=r.children[c];if(-1===l.className.indexOf(\"hidden\")&&T(l.dateObj))return l}}function w(e,t){var o=i(),r=P(o||document.body),a=void 0!==e?e:r?o:void 0!==n.selectedDateElem&&P(n.selectedDateElem)?n.selectedDateElem:void 0!==n.todayDateElem&&P(n.todayDateElem)?n.todayDateElem:y(t>0?1:-1);void 0===a?n._input.focus():r?function(e,t){for(var i=-1===e.className.indexOf(\"Month\")?e.dateObj.getMonth():n.currentMonth,o=t>0?n.config.showMonths:-1,r=t>0?1:-1,a=i-n.currentMonth;a!=o;a+=r)for(var s=n.daysContainer.children[a],c=i-n.currentMonth===a?e.$i+t:t<0?s.children.length-1:0,l=s.children.length,u=c;u>=0&&u<l&&u!=(t>0?l:-1);u+=r){var d=s.children[u];if(-1===d.className.indexOf(\"hidden\")&&T(d.dateObj)&&Math.abs(e.$i-u)>=Math.abs(t))return v(d)}n.changeMonth(r),w(y(r),0)}(a,t):v(a)}function b(e,t){for(var i=(new Date(e,t,1).getDay()-n.l10n.firstDayOfWeek+7)%7,o=n.utils.getDaysInMonth((t-1+12)%12,e),r=n.utils.getDaysInMonth(t,e),a=window.document.createDocumentFragment(),s=n.config.showMonths>1,c=s?\"prevMonthDay hidden\":\"prevMonthDay\",l=s?\"nextMonthDay hidden\":\"nextMonthDay\",u=o+1-i,d=0;u<=o;u++,d++)a.appendChild(g(\"flatpickr-day \"+c,new Date(e,t-1,u),0,d));for(u=1;u<=r;u++,d++)a.appendChild(g(\"flatpickr-day\",new Date(e,t,u),0,d));for(var f=r+1;f<=42-i&&(1===n.config.showMonths||d%7!=0);f++,d++)a.appendChild(g(\"flatpickr-day \"+l,new Date(e,t+1,f%r),0,d));var m=Bl(\"div\",\"dayContainer\");return m.appendChild(a),m}function k(){if(void 0!==n.daysContainer){Rl(n.daysContainer),n.weekNumbers&&Rl(n.weekNumbers);for(var e=document.createDocumentFragment(),t=0;t<n.config.showMonths;t++){var i=new Date(n.currentYear,n.currentMonth,1);i.setMonth(n.currentMonth+t),e.appendChild(b(i.getFullYear(),i.getMonth()))}n.daysContainer.appendChild(e),n.days=n.daysContainer.firstChild,\"range\"===n.config.mode&&1===n.selectedDates.length&&L()}}function C(){if(!(n.config.showMonths>1||\"dropdown\"!==n.config.monthSelectorType)){var e=function(e){return!(void 0!==n.config.minDate&&n.currentYear===n.config.minDate.getFullYear()&&e<n.config.minDate.getMonth())&&!(void 0!==n.config.maxDate&&n.currentYear===n.config.maxDate.getFullYear()&&e>n.config.maxDate.getMonth())};n.monthsDropdownContainer.tabIndex=-1,n.monthsDropdownContainer.innerHTML=\"\";for(var t=0;t<12;t++)if(e(t)){var i=Bl(\"option\",\"flatpickr-monthDropdown-month\");i.value=new Date(n.currentYear,t).getMonth().toString(),i.textContent=Vl(t,n.config.shorthandCurrentMonth,n.l10n),i.tabIndex=-1,n.currentMonth===t&&(i.selected=!0),n.monthsDropdownContainer.appendChild(i)}}}function N(){var e,t=Bl(\"div\",\"flatpickr-month\"),i=window.document.createDocumentFragment();n.config.showMonths>1||\"static\"===n.config.monthSelectorType?e=Bl(\"span\",\"cur-month\"):(n.monthsDropdownContainer=Bl(\"select\",\"flatpickr-monthDropdown-months\"),n.monthsDropdownContainer.setAttribute(\"aria-label\",n.l10n.monthAriaLabel),d(n.monthsDropdownContainer,\"change\",(function(e){var t=zl(e),i=parseInt(t.value,10);n.changeMonth(i-n.currentMonth),q(\"onMonthChange\")})),C(),e=n.monthsDropdownContainer);var o=Hl(\"cur-year\",{tabindex:\"-1\"}),r=o.getElementsByTagName(\"input\")[0];r.setAttribute(\"aria-label\",n.l10n.yearAriaLabel),n.config.minDate&&r.setAttribute(\"min\",n.config.minDate.getFullYear().toString()),n.config.maxDate&&(r.setAttribute(\"max\",n.config.maxDate.getFullYear().toString()),r.disabled=!!n.config.minDate&&n.config.minDate.getFullYear()===n.config.maxDate.getFullYear());var a=Bl(\"div\",\"flatpickr-current-month\");return a.appendChild(e),a.appendChild(o),i.appendChild(a),t.appendChild(i),{container:t,yearElement:r,monthElement:e}}function x(){Rl(n.monthNav),n.monthNav.appendChild(n.prevMonthNav),n.config.showMonths&&(n.yearElements=[],n.monthElements=[]);for(var e=n.config.showMonths;e--;){var t=N();n.yearElements.push(t.yearElement),n.monthElements.push(t.monthElement),n.monthNav.appendChild(t.container)}n.monthNav.appendChild(n.nextMonthNav)}function S(){n.weekdayContainer?Rl(n.weekdayContainer):n.weekdayContainer=Bl(\"div\",\"flatpickr-weekdays\");for(var e=n.config.showMonths;e--;){var t=Bl(\"div\",\"flatpickr-weekdaycontainer\");n.weekdayContainer.appendChild(t)}return D(),n.weekdayContainer}function D(){if(n.weekdayContainer){var e=n.l10n.firstDayOfWeek,t=nu(n.l10n.weekdays.shorthand);e>0&&e<t.length&&(t=nu(t.splice(e,t.length),t.splice(0,e)));for(var i=n.config.showMonths;i--;)n.weekdayContainer.children[i].innerHTML=\"\\n <span class='flatpickr-weekday'>\\n \"+t.join(\"</span><span class='flatpickr-weekday'>\")+\"\\n </span>\\n \"}}function E(e,t){void 0===t&&(t=!0);var i=t?e:e-n.currentMonth;i<0&&!0===n._hidePrevMonthArrow||i>0&&!0===n._hideNextMonthArrow||(n.currentMonth+=i,(n.currentMonth<0||n.currentMonth>11)&&(n.currentYear+=n.currentMonth>11?1:-1,n.currentMonth=(n.currentMonth+12)%12,q(\"onYearChange\"),C()),k(),q(\"onMonthChange\"),Q())}function I(e){return n.calendarContainer.contains(e)}function A(e){if(n.isOpen&&!n.config.inline){var t=zl(e),i=I(t),o=!(t===n.input||t===n.altInput||n.element.contains(t)||e.path&&e.path.indexOf&&(~e.path.indexOf(n.input)||~e.path.indexOf(n.altInput)))&&!i&&!I(e.relatedTarget),r=!n.config.ignoredFocusElements.some((function(e){return e.contains(t)}));o&&r&&(n.config.allowInput&&n.setDate(n._input.value,!1,n.config.altInput?n.config.altFormat:n.config.dateFormat),void 0!==n.timeContainer&&void 0!==n.minuteElement&&void 0!==n.hourElement&&\"\"!==n.input.value&&void 0!==n.input.value&&a(),n.close(),n.config&&\"range\"===n.config.mode&&1===n.selectedDates.length&&n.clear(!1))}}function M(e){if(!(!e||n.config.minDate&&e<n.config.minDate.getFullYear()||n.config.maxDate&&e>n.config.maxDate.getFullYear())){var t=e,i=n.currentYear!==t;n.currentYear=t||n.currentYear,n.config.maxDate&&n.currentYear===n.config.maxDate.getFullYear()?n.currentMonth=Math.min(n.config.maxDate.getMonth(),n.currentMonth):n.config.minDate&&n.currentYear===n.config.minDate.getFullYear()&&(n.currentMonth=Math.max(n.config.minDate.getMonth(),n.currentMonth)),i&&(n.redraw(),q(\"onYearChange\"),C())}}function T(e,t){var i;void 0===t&&(t=!0);var o=n.parseDate(e,void 0,t);if(n.config.minDate&&o&&Kl(o,n.config.minDate,void 0!==t?t:!n.minDateHasTime)<0||n.config.maxDate&&o&&Kl(o,n.config.maxDate,void 0!==t?t:!n.maxDateHasTime)>0)return!1;if(!n.config.enable&&0===n.config.disable.length)return!0;if(void 0===o)return!1;for(var r=!!n.config.enable,a=null!==(i=n.config.enable)&&void 0!==i?i:n.config.disable,s=0,c=void 0;s<a.length;s++){if(\"function\"==typeof(c=a[s])&&c(o))return r;if(c instanceof Date&&void 0!==o&&c.getTime()===o.getTime())return r;if(\"string\"==typeof c){var l=n.parseDate(c,void 0,!0);return l&&l.getTime()===o.getTime()?r:!r}if(\"object\"==typeof c&&void 0!==o&&c.from&&c.to&&o.getTime()>=c.from.getTime()&&o.getTime()<=c.to.getTime())return r}return!r}function P(e){return void 0!==n.daysContainer&&(-1===e.className.indexOf(\"hidden\")&&-1===e.className.indexOf(\"flatpickr-disabled\")&&n.daysContainer.contains(e))}function _(e){var t=e.target===n._input,i=n._input.value.trimEnd()!==X();!t||!i||e.relatedTarget&&I(e.relatedTarget)||n.setDate(n._input.value,!0,e.target===n.altInput?n.config.altFormat:n.config.dateFormat)}function O(t){var o=zl(t),r=n.config.wrap?e.contains(o):o===n._input,c=n.config.allowInput,l=n.isOpen&&(!c||!r),u=n.config.inline&&r&&!c;if(13===t.keyCode&&r){if(c)return n.setDate(n._input.value,!0,o===n.altInput?n.config.altFormat:n.config.dateFormat),n.close(),o.blur();n.open()}else if(I(o)||l||u){var d=!!n.timeContainer&&n.timeContainer.contains(o);switch(t.keyCode){case 13:d?(t.preventDefault(),a(),$()):V(t);break;case 27:t.preventDefault(),$();break;case 8:case 46:r&&!n.config.allowInput&&(t.preventDefault(),n.clear());break;case 37:case 39:if(d||r)n.hourElement&&n.hourElement.focus();else{t.preventDefault();var f=i();if(void 0!==n.daysContainer&&(!1===c||f&&P(f))){var m=39===t.keyCode?1:-1;t.ctrlKey?(t.stopPropagation(),E(m),w(y(1),0)):w(void 0,m)}}break;case 38:case 40:t.preventDefault();var h=40===t.keyCode?1:-1;n.daysContainer&&void 0!==o.$i||o===n.input||o===n.altInput?t.ctrlKey?(t.stopPropagation(),M(n.currentYear-h),w(y(1),0)):d||w(void 0,7*h):o===n.currentYearElement?M(n.currentYear-h):n.config.enableTime&&(!d&&n.hourElement&&n.hourElement.focus(),a(t),n._debouncedChange());break;case 9:if(d){var p=[n.hourElement,n.minuteElement,n.secondElement,n.amPM].concat(n.pluginElements).filter((function(e){return e})),g=p.indexOf(o);if(-1!==g){var v=p[g+(t.shiftKey?-1:1)];t.preventDefault(),(v||n._input).focus()}}else!n.config.noCalendar&&n.daysContainer&&n.daysContainer.contains(o)&&t.shiftKey&&(t.preventDefault(),n._input.focus())}}if(void 0!==n.amPM&&o===n.amPM)switch(t.key){case n.l10n.amPM[0].charAt(0):case n.l10n.amPM[0].charAt(0).toLowerCase():n.amPM.textContent=n.l10n.amPM[0],s(),Z();break;case n.l10n.amPM[1].charAt(0):case n.l10n.amPM[1].charAt(0).toLowerCase():n.amPM.textContent=n.l10n.amPM[1],s(),Z()}(r||I(o))&&q(\"onKeyDown\",t)}function L(e,t){if(void 0===t&&(t=\"flatpickr-day\"),1===n.selectedDates.length&&(!e||e.classList.contains(t)&&!e.classList.contains(\"flatpickr-disabled\"))){for(var i=e?e.dateObj.getTime():n.days.firstElementChild.dateObj.getTime(),o=n.parseDate(n.selectedDates[0],void 0,!0).getTime(),r=Math.min(i,n.selectedDates[0].getTime()),a=Math.max(i,n.selectedDates[0].getTime()),s=!1,c=0,l=0,u=r;u<a;u+=Zl.DAY)T(new Date(u),!0)||(s=s||u>r&&u<a,u<o&&(!c||u>c)?c=u:u>o&&(!l||u<l)&&(l=u));Array.from(n.rContainer.querySelectorAll(\"*:nth-child(-n+\"+n.config.showMonths+\") > .\"+t)).forEach((function(t){var r=t.dateObj.getTime(),a=c>0&&r<c||l>0&&r>l;if(a)return t.classList.add(\"notAllowed\"),void[\"inRange\",\"startRange\",\"endRange\"].forEach((function(e){t.classList.remove(e)}));s&&!a||([\"startRange\",\"inRange\",\"endRange\",\"notAllowed\"].forEach((function(e){t.classList.remove(e)})),void 0!==e&&(e.classList.add(i<=n.selectedDates[0].getTime()?\"startRange\":\"endRange\"),o<i&&r===o?t.classList.add(\"startRange\"):o>i&&r===o&&t.classList.add(\"endRange\"),r>=c&&(0===l||r<=l)&&Gl(r,o,i)&&t.classList.add(\"inRange\")))}))}}function F(){!n.isOpen||n.config.static||n.config.inline||H()}function B(e){return function(t){var i=n.config[\"_\"+e+\"Date\"]=n.parseDate(t,n.config.dateFormat),o=n.config[\"_\"+(\"min\"===e?\"max\":\"min\")+\"Date\"];void 0!==i&&(n[\"min\"===e?\"minDateHasTime\":\"maxDateHasTime\"]=i.getHours()>0||i.getMinutes()>0||i.getSeconds()>0),n.selectedDates&&(n.selectedDates=n.selectedDates.filter((function(e){return T(e)})),n.selectedDates.length||\"min\"!==e||c(i),Z()),n.daysContainer&&(z(),void 0!==i?n.currentYearElement[e]=i.getFullYear().toString():n.currentYearElement.removeAttribute(e),n.currentYearElement.disabled=!!o&&void 0!==i&&o.getFullYear()===i.getFullYear())}}function R(){return n.config.wrap?e.querySelector(\"[data-input]\"):e}function j(){\"object\"!=typeof n.config.locale&&void 0===au.l10ns[n.config.locale]&&n.config.errorHandler(new Error(\"flatpickr: invalid locale \"+n.config.locale)),n.l10n=tu(tu({},au.l10ns.default),\"object\"==typeof n.config.locale?n.config.locale:\"default\"!==n.config.locale?au.l10ns[n.config.locale]:void 0),Ul.D=\"(\"+n.l10n.weekdays.shorthand.join(\"|\")+\")\",Ul.l=\"(\"+n.l10n.weekdays.longhand.join(\"|\")+\")\",Ul.M=\"(\"+n.l10n.months.shorthand.join(\"|\")+\")\",Ul.F=\"(\"+n.l10n.months.longhand.join(\"|\")+\")\",Ul.K=\"(\"+n.l10n.amPM[0]+\"|\"+n.l10n.amPM[1]+\"|\"+n.l10n.amPM[0].toLowerCase()+\"|\"+n.l10n.amPM[1].toLowerCase()+\")\",void 0===tu(tu({},t),JSON.parse(JSON.stringify(e.dataset||{}))).time_24hr&&void 0===au.defaultConfig.time_24hr&&(n.config.time_24hr=n.l10n.time_24hr),n.formatDate=Jl(n),n.parseDate=ql({config:n.config,l10n:n.l10n})}function H(e){if(\"function\"!=typeof n.config.position){if(void 0!==n.calendarContainer){q(\"onPreCalendarPosition\");var t=e||n._positionElement,i=Array.prototype.reduce.call(n.calendarContainer.children,(function(e,t){return e+t.offsetHeight}),0),o=n.calendarContainer.offsetWidth,r=n.config.position.split(\" \"),a=r[0],s=r.length>1?r[1]:null,c=t.getBoundingClientRect(),l=window.innerHeight-c.bottom,u=\"above\"===a||\"below\"!==a&&l<i&&c.top>i,d=window.pageYOffset+c.top+(u?-i-2:t.offsetHeight+2);if(Fl(n.calendarContainer,\"arrowTop\",!u),Fl(n.calendarContainer,\"arrowBottom\",u),!n.config.inline){var f=window.pageXOffset+c.left,m=!1,h=!1;\"center\"===s?(f-=(o-c.width)/2,m=!0):\"right\"===s&&(f-=o-c.width,h=!0),Fl(n.calendarContainer,\"arrowLeft\",!m&&!h),Fl(n.calendarContainer,\"arrowCenter\",m),Fl(n.calendarContainer,\"arrowRight\",h);var p=window.document.body.offsetWidth-(window.pageXOffset+c.right),g=f+o>window.document.body.offsetWidth,v=p+o>window.document.body.offsetWidth;if(Fl(n.calendarContainer,\"rightMost\",g),!n.config.static)if(n.calendarContainer.style.top=d+\"px\",g)if(v){var y=function(){for(var e=null,t=0;t<document.styleSheets.length;t++){var n=document.styleSheets[t];if(n.cssRules){try{n.cssRules}catch(e){continue}e=n;break}}return null!=e?e:(i=document.createElement(\"style\"),document.head.appendChild(i),i.sheet);var i}();if(void 0===y)return;var w=window.document.body.offsetWidth,b=Math.max(0,w/2-o/2),k=y.cssRules.length,C=\"{left:\"+c.left+\"px;right:auto;}\";Fl(n.calendarContainer,\"rightMost\",!1),Fl(n.calendarContainer,\"centerMost\",!0),y.insertRule(\".flatpickr-calendar.centerMost:before,.flatpickr-calendar.centerMost:after\"+C,k),n.calendarContainer.style.left=b+\"px\",n.calendarContainer.style.right=\"auto\"}else n.calendarContainer.style.left=\"auto\",n.calendarContainer.style.right=p+\"px\";else n.calendarContainer.style.left=f+\"px\",n.calendarContainer.style.right=\"auto\"}}}else n.config.position(n,e)}function z(){n.config.noCalendar||n.isMobile||(C(),Q(),k())}function $(){n._input.focus(),-1!==window.navigator.userAgent.indexOf(\"MSIE\")||void 0!==navigator.msMaxTouchPoints?setTimeout(n.close,0):n.close()}function V(e){e.preventDefault(),e.stopPropagation();var t=jl(zl(e),(function(e){return e.classList&&e.classList.contains(\"flatpickr-day\")&&!e.classList.contains(\"flatpickr-disabled\")&&!e.classList.contains(\"notAllowed\")}));if(void 0!==t){var i=t,o=n.latestSelectedDateObj=new Date(i.dateObj.getTime()),r=(o.getMonth()<n.currentMonth||o.getMonth()>n.currentMonth+n.config.showMonths-1)&&\"range\"!==n.config.mode;if(n.selectedDateElem=i,\"single\"===n.config.mode)n.selectedDates=[o];else if(\"multiple\"===n.config.mode){var a=G(o);a?n.selectedDates.splice(parseInt(a),1):n.selectedDates.push(o)}else\"range\"===n.config.mode&&(2===n.selectedDates.length&&n.clear(!1,!1),n.latestSelectedDateObj=o,n.selectedDates.push(o),0!==Kl(o,n.selectedDates[0],!0)&&n.selectedDates.sort((function(e,t){return e.getTime()-t.getTime()})));if(s(),r){var c=n.currentYear!==o.getFullYear();n.currentYear=o.getFullYear(),n.currentMonth=o.getMonth(),c&&(q(\"onYearChange\"),C()),q(\"onMonthChange\")}if(Q(),k(),Z(),r||\"range\"===n.config.mode||1!==n.config.showMonths?void 0!==n.selectedDateElem&&void 0===n.hourElement&&n.selectedDateElem&&n.selectedDateElem.focus():v(i),void 0!==n.hourElement&&void 0!==n.hourElement&&n.hourElement.focus(),n.config.closeOnSelect){var l=\"single\"===n.config.mode&&!n.config.enableTime,u=\"range\"===n.config.mode&&2===n.selectedDates.length&&!n.config.enableTime;(l||u)&&$()}f()}}n.parseDate=ql({config:n.config,l10n:n.l10n}),n._handlers=[],n.pluginElements=[],n.loadedPlugins=[],n._bind=d,n._setHoursFromDate=c,n._positionCalendar=H,n.changeMonth=E,n.changeYear=M,n.clear=function(e,t){void 0===e&&(e=!0);void 0===t&&(t=!0);n.input.value=\"\",void 0!==n.altInput&&(n.altInput.value=\"\");void 0!==n.mobileInput&&(n.mobileInput.value=\"\");n.selectedDates=[],n.latestSelectedDateObj=void 0,!0===t&&(n.currentYear=n._initialDate.getFullYear(),n.currentMonth=n._initialDate.getMonth());if(!0===n.config.enableTime){var i=eu(n.config);l(i.hours,i.minutes,i.seconds)}n.redraw(),e&&q(\"onChange\")},n.close=function(){n.isOpen=!1,n.isMobile||(void 0!==n.calendarContainer&&n.calendarContainer.classList.remove(\"open\"),void 0!==n._input&&n._input.classList.remove(\"active\"));q(\"onClose\")},n.onMouseOver=L,n._createElement=Bl,n.createDay=g,n.destroy=function(){void 0!==n.config&&q(\"onDestroy\");for(var e=n._handlers.length;e--;)n._handlers[e].remove();if(n._handlers=[],n.mobileInput)n.mobileInput.parentNode&&n.mobileInput.parentNode.removeChild(n.mobileInput),n.mobileInput=void 0;else if(n.calendarContainer&&n.calendarContainer.parentNode)if(n.config.static&&n.calendarContainer.parentNode){var t=n.calendarContainer.parentNode;if(t.lastChild&&t.removeChild(t.lastChild),t.parentNode){for(;t.firstChild;)t.parentNode.insertBefore(t.firstChild,t);t.parentNode.removeChild(t)}}else n.calendarContainer.parentNode.removeChild(n.calendarContainer);n.altInput&&(n.input.type=\"text\",n.altInput.parentNode&&n.altInput.parentNode.removeChild(n.altInput),delete n.altInput);n.input&&(n.input.type=n.input._type,n.input.classList.remove(\"flatpickr-input\"),n.input.removeAttribute(\"readonly\"));[\"_showTimeInput\",\"latestSelectedDateObj\",\"_hideNextMonthArrow\",\"_hidePrevMonthArrow\",\"__hideNextMonthArrow\",\"__hidePrevMonthArrow\",\"isMobile\",\"isOpen\",\"selectedDateElem\",\"minDateHasTime\",\"maxDateHasTime\",\"days\",\"daysContainer\",\"_input\",\"_positionElement\",\"innerContainer\",\"rContainer\",\"monthNav\",\"todayDateElem\",\"calendarContainer\",\"weekdayContainer\",\"prevMonthNav\",\"nextMonthNav\",\"monthsDropdownContainer\",\"currentMonthElement\",\"currentYearElement\",\"navigationCurrentMonth\",\"selectedDateElem\",\"config\"].forEach((function(e){try{delete n[e]}catch(e){}}))},n.isEnabled=T,n.jumpToDate=m,n.updateValue=Z,n.open=function(e,t){void 0===t&&(t=n._positionElement);if(!0===n.isMobile){if(e){e.preventDefault();var i=zl(e);i&&i.blur()}return void 0!==n.mobileInput&&(n.mobileInput.focus(),n.mobileInput.click()),void q(\"onOpen\")}if(n._input.disabled||n.config.inline)return;var o=n.isOpen;n.isOpen=!0,o||(n.calendarContainer.classList.add(\"open\"),n._input.classList.add(\"active\"),q(\"onOpen\"),H(t));!0===n.config.enableTime&&!0===n.config.noCalendar&&(!1!==n.config.allowInput||void 0!==e&&n.timeContainer.contains(e.relatedTarget)||setTimeout((function(){return n.hourElement.select()}),50))},n.redraw=z,n.set=function(e,t){if(null!==e&&\"object\"==typeof e)for(var i in Object.assign(n.config,e),e)void 0!==Y[i]&&Y[i].forEach((function(e){return e()}));else n.config[e]=t,void 0!==Y[e]?Y[e].forEach((function(e){return e()})):Al.indexOf(e)>-1&&(n.config[e]=Ll(t));n.redraw(),Z(!0)},n.setDate=function(e,t,i){void 0===t&&(t=!1);void 0===i&&(i=n.config.dateFormat);if(0!==e&&!e||e instanceof Array&&0===e.length)return n.clear(t);U(e,i),n.latestSelectedDateObj=n.selectedDates[n.selectedDates.length-1],n.redraw(),m(void 0,t),c(),0===n.selectedDates.length&&n.clear(!1);Z(t),t&&q(\"onChange\")},n.toggle=function(e){if(!0===n.isOpen)return n.close();n.open(e)};var Y={locale:[j,D],showMonths:[x,r,S],minDate:[m],maxDate:[m],positionElement:[J],clickOpens:[function(){!0===n.config.clickOpens?(d(n._input,\"focus\",n.open),d(n._input,\"click\",n.open)):(n._input.removeEventListener(\"focus\",n.open),n._input.removeEventListener(\"click\",n.open))}]};function U(e,t){var i=[];if(e instanceof Array)i=e.map((function(e){return n.parseDate(e,t)}));else if(e instanceof Date||\"number\"==typeof e)i=[n.parseDate(e,t)];else if(\"string\"==typeof e)switch(n.config.mode){case\"single\":case\"time\":i=[n.parseDate(e,t)];break;case\"multiple\":i=e.split(n.config.conjunction).map((function(e){return n.parseDate(e,t)}));break;case\"range\":i=e.split(n.l10n.rangeSeparator).map((function(e){return n.parseDate(e,t)}))}else n.config.errorHandler(new Error(\"Invalid date supplied: \"+JSON.stringify(e)));n.selectedDates=n.config.allowInvalidPreload?i:i.filter((function(e){return e instanceof Date&&T(e,!1)})),\"range\"===n.config.mode&&n.selectedDates.sort((function(e,t){return e.getTime()-t.getTime()}))}function W(e){return e.slice().map((function(e){return\"string\"==typeof e||\"number\"==typeof e||e instanceof Date?n.parseDate(e,void 0,!0):e&&\"object\"==typeof e&&e.from&&e.to?{from:n.parseDate(e.from,void 0),to:n.parseDate(e.to,void 0)}:e})).filter((function(e){return e}))}function J(){n._positionElement=n.config.positionElement||n._input}function q(e,t){if(void 0!==n.config){var i=n.config[e];if(void 0!==i&&i.length>0)for(var o=0;i[o]&&o<i.length;o++)i[o](n.selectedDates,n.input.value,n,t);\"onChange\"===e&&(n.input.dispatchEvent(K(\"change\")),n.input.dispatchEvent(K(\"input\")))}}function K(e){var t=document.createEvent(\"Event\");return t.initEvent(e,!0,!0),t}function G(e){for(var t=0;t<n.selectedDates.length;t++){var i=n.selectedDates[t];if(i instanceof Date&&0===Kl(i,e))return\"\"+t}return!1}function Q(){n.config.noCalendar||n.isMobile||!n.monthNav||(n.yearElements.forEach((function(e,t){var i=new Date(n.currentYear,n.currentMonth,1);i.setMonth(n.currentMonth+t),n.config.showMonths>1||\"static\"===n.config.monthSelectorType?n.monthElements[t].textContent=Vl(i.getMonth(),n.config.shorthandCurrentMonth,n.l10n)+\" \":n.monthsDropdownContainer.value=i.getMonth().toString(),e.value=i.getFullYear().toString()})),n._hidePrevMonthArrow=void 0!==n.config.minDate&&(n.currentYear===n.config.minDate.getFullYear()?n.currentMonth<=n.config.minDate.getMonth():n.currentYear<n.config.minDate.getFullYear()),n._hideNextMonthArrow=void 0!==n.config.maxDate&&(n.currentYear===n.config.maxDate.getFullYear()?n.currentMonth+1>n.config.maxDate.getMonth():n.currentYear>n.config.maxDate.getFullYear()))}function X(e){var t=e||(n.config.altInput?n.config.altFormat:n.config.dateFormat);return n.selectedDates.map((function(e){return n.formatDate(e,t)})).filter((function(e,t,i){return\"range\"!==n.config.mode||n.config.enableTime||i.indexOf(e)===t})).join(\"range\"!==n.config.mode?n.config.conjunction:n.l10n.rangeSeparator)}function Z(e){void 0===e&&(e=!0),void 0!==n.mobileInput&&n.mobileFormatStr&&(n.mobileInput.value=void 0!==n.latestSelectedDateObj?n.formatDate(n.latestSelectedDateObj,n.mobileFormatStr):\"\"),n.input.value=X(n.config.dateFormat),void 0!==n.altInput&&(n.altInput.value=X(n.config.altFormat)),!1!==e&&q(\"onValueUpdate\")}function ee(e){var t=zl(e),i=n.prevMonthNav.contains(t),o=n.nextMonthNav.contains(t);i||o?E(i?-1:1):n.yearElements.indexOf(t)>=0?t.select():t.classList.contains(\"arrowUp\")?n.changeYear(n.currentYear+1):t.classList.contains(\"arrowDown\")&&n.changeYear(n.currentYear-1)}return function(){n.element=n.input=e,n.isOpen=!1,function(){var i=[\"wrap\",\"weekNumbers\",\"allowInput\",\"allowInvalidPreload\",\"clickOpens\",\"time_24hr\",\"enableTime\",\"noCalendar\",\"altInput\",\"shorthandCurrentMonth\",\"inline\",\"static\",\"enableSeconds\",\"disableMobile\"],r=tu(tu({},JSON.parse(JSON.stringify(e.dataset||{}))),t),a={};n.config.parseDate=r.parseDate,n.config.formatDate=r.formatDate,Object.defineProperty(n.config,\"enable\",{get:function(){return n.config._enable},set:function(e){n.config._enable=W(e)}}),Object.defineProperty(n.config,\"disable\",{get:function(){return n.config._disable},set:function(e){n.config._disable=W(e)}});var s=\"time\"===r.mode;if(!r.dateFormat&&(r.enableTime||s)){var c=au.defaultConfig.dateFormat||Ml.dateFormat;a.dateFormat=r.noCalendar||s?\"H:i\"+(r.enableSeconds?\":S\":\"\"):c+\" H:i\"+(r.enableSeconds?\":S\":\"\")}if(r.altInput&&(r.enableTime||s)&&!r.altFormat){var l=au.defaultConfig.altFormat||Ml.altFormat;a.altFormat=r.noCalendar||s?\"h:i\"+(r.enableSeconds?\":S K\":\" K\"):l+\" h:i\"+(r.enableSeconds?\":S\":\"\")+\" K\"}Object.defineProperty(n.config,\"minDate\",{get:function(){return n.config._minDate},set:B(\"min\")}),Object.defineProperty(n.config,\"maxDate\",{get:function(){return n.config._maxDate},set:B(\"max\")});var u=function(e){return function(t){n.config[\"min\"===e?\"_minTime\":\"_maxTime\"]=n.parseDate(t,\"H:i:S\")}};Object.defineProperty(n.config,\"minTime\",{get:function(){return n.config._minTime},set:u(\"min\")}),Object.defineProperty(n.config,\"maxTime\",{get:function(){return n.config._maxTime},set:u(\"max\")}),\"time\"===r.mode&&(n.config.noCalendar=!0,n.config.enableTime=!0);Object.assign(n.config,a,r);for(var d=0;d<i.length;d++)n.config[i[d]]=!0===n.config[i[d]]||\"true\"===n.config[i[d]];Al.filter((function(e){return void 0!==n.config[e]})).forEach((function(e){n.config[e]=Ll(n.config[e]||[]).map(o)})),n.isMobile=!n.config.disableMobile&&!n.config.inline&&\"single\"===n.config.mode&&!n.config.disable.length&&!n.config.enable&&!n.config.weekNumbers&&/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);for(d=0;d<n.config.plugins.length;d++){var f=n.config.plugins[d](n)||{};for(var m in f)Al.indexOf(m)>-1?n.config[m]=Ll(f[m]).map(o).concat(n.config[m]):void 0===r[m]&&(n.config[m]=f[m])}r.altInputClass||(n.config.altInputClass=R().className+\" \"+n.config.altInputClass);q(\"onParseConfig\")}(),j(),function(){if(n.input=R(),!n.input)return void n.config.errorHandler(new Error(\"Invalid input element specified\"));n.input._type=n.input.type,n.input.type=\"text\",n.input.classList.add(\"flatpickr-input\"),n._input=n.input,n.config.altInput&&(n.altInput=Bl(n.input.nodeName,n.config.altInputClass),n._input=n.altInput,n.altInput.placeholder=n.input.placeholder,n.altInput.disabled=n.input.disabled,n.altInput.required=n.input.required,n.altInput.tabIndex=n.input.tabIndex,n.altInput.type=\"text\",n.input.setAttribute(\"type\",\"hidden\"),!n.config.static&&n.input.parentNode&&n.input.parentNode.insertBefore(n.altInput,n.input.nextSibling));n.config.allowInput||n._input.setAttribute(\"readonly\",\"readonly\");J()}(),function(){n.selectedDates=[],n.now=n.parseDate(n.config.now)||new Date;var e=n.config.defaultDate||(\"INPUT\"!==n.input.nodeName&&\"TEXTAREA\"!==n.input.nodeName||!n.input.placeholder||n.input.value!==n.input.placeholder?n.input.value:null);e&&U(e,n.config.dateFormat);n._initialDate=n.selectedDates.length>0?n.selectedDates[0]:n.config.minDate&&n.config.minDate.getTime()>n.now.getTime()?n.config.minDate:n.config.maxDate&&n.config.maxDate.getTime()<n.now.getTime()?n.config.maxDate:n.now,n.currentYear=n._initialDate.getFullYear(),n.currentMonth=n._initialDate.getMonth(),n.selectedDates.length>0&&(n.latestSelectedDateObj=n.selectedDates[0]);void 0!==n.config.minTime&&(n.config.minTime=n.parseDate(n.config.minTime,\"H:i\"));void 0!==n.config.maxTime&&(n.config.maxTime=n.parseDate(n.config.maxTime,\"H:i\"));n.minDateHasTime=!!n.config.minDate&&(n.config.minDate.getHours()>0||n.config.minDate.getMinutes()>0||n.config.minDate.getSeconds()>0),n.maxDateHasTime=!!n.config.maxDate&&(n.config.maxDate.getHours()>0||n.config.maxDate.getMinutes()>0||n.config.maxDate.getSeconds()>0)}(),n.utils={getDaysInMonth:function(e,t){return void 0===e&&(e=n.currentMonth),void 0===t&&(t=n.currentYear),1===e&&(t%4==0&&t%100!=0||t%400==0)?29:n.l10n.daysInMonth[e]}},n.isMobile||function(){var e=window.document.createDocumentFragment();if(n.calendarContainer=Bl(\"div\",\"flatpickr-calendar\"),n.calendarContainer.tabIndex=-1,!n.config.noCalendar){if(e.appendChild((n.monthNav=Bl(\"div\",\"flatpickr-months\"),n.yearElements=[],n.monthElements=[],n.prevMonthNav=Bl(\"span\",\"flatpickr-prev-month\"),n.prevMonthNav.innerHTML=n.config.prevArrow,n.nextMonthNav=Bl(\"span\",\"flatpickr-next-month\"),n.nextMonthNav.innerHTML=n.config.nextArrow,x(),Object.defineProperty(n,\"_hidePrevMonthArrow\",{get:function(){return n.__hidePrevMonthArrow},set:function(e){n.__hidePrevMonthArrow!==e&&(Fl(n.prevMonthNav,\"flatpickr-disabled\",e),n.__hidePrevMonthArrow=e)}}),Object.defineProperty(n,\"_hideNextMonthArrow\",{get:function(){return n.__hideNextMonthArrow},set:function(e){n.__hideNextMonthArrow!==e&&(Fl(n.nextMonthNav,\"flatpickr-disabled\",e),n.__hideNextMonthArrow=e)}}),n.currentYearElement=n.yearElements[0],Q(),n.monthNav)),n.innerContainer=Bl(\"div\",\"flatpickr-innerContainer\"),n.config.weekNumbers){var t=function(){n.calendarContainer.classList.add(\"hasWeeks\");var e=Bl(\"div\",\"flatpickr-weekwrapper\");e.appendChild(Bl(\"span\",\"flatpickr-weekday\",n.l10n.weekAbbreviation));var t=Bl(\"div\",\"flatpickr-weeks\");return e.appendChild(t),{weekWrapper:e,weekNumbers:t}}(),i=t.weekWrapper,o=t.weekNumbers;n.innerContainer.appendChild(i),n.weekNumbers=o,n.weekWrapper=i}n.rContainer=Bl(\"div\",\"flatpickr-rContainer\"),n.rContainer.appendChild(S()),n.daysContainer||(n.daysContainer=Bl(\"div\",\"flatpickr-days\"),n.daysContainer.tabIndex=-1),k(),n.rContainer.appendChild(n.daysContainer),n.innerContainer.appendChild(n.rContainer),e.appendChild(n.innerContainer)}n.config.enableTime&&e.appendChild(function(){n.calendarContainer.classList.add(\"hasTime\"),n.config.noCalendar&&n.calendarContainer.classList.add(\"noCalendar\");var e=eu(n.config);n.timeContainer=Bl(\"div\",\"flatpickr-time\"),n.timeContainer.tabIndex=-1;var t=Bl(\"span\",\"flatpickr-time-separator\",\":\"),i=Hl(\"flatpickr-hour\",{\"aria-label\":n.l10n.hourAriaLabel});n.hourElement=i.getElementsByTagName(\"input\")[0];var o=Hl(\"flatpickr-minute\",{\"aria-label\":n.l10n.minuteAriaLabel});n.minuteElement=o.getElementsByTagName(\"input\")[0],n.hourElement.tabIndex=n.minuteElement.tabIndex=-1,n.hourElement.value=Pl(n.latestSelectedDateObj?n.latestSelectedDateObj.getHours():n.config.time_24hr?e.hours:function(e){switch(e%24){case 0:case 12:return 12;default:return e%12}}(e.hours)),n.minuteElement.value=Pl(n.latestSelectedDateObj?n.latestSelectedDateObj.getMinutes():e.minutes),n.hourElement.setAttribute(\"step\",n.config.hourIncrement.toString()),n.minuteElement.setAttribute(\"step\",n.config.minuteIncrement.toString()),n.hourElement.setAttribute(\"min\",n.config.time_24hr?\"0\":\"1\"),n.hourElement.setAttribute(\"max\",n.config.time_24hr?\"23\":\"12\"),n.hourElement.setAttribute(\"maxlength\",\"2\"),n.minuteElement.setAttribute(\"min\",\"0\"),n.minuteElement.setAttribute(\"max\",\"59\"),n.minuteElement.setAttribute(\"maxlength\",\"2\"),n.timeContainer.appendChild(i),n.timeContainer.appendChild(t),n.timeContainer.appendChild(o),n.config.time_24hr&&n.timeContainer.classList.add(\"time24hr\");if(n.config.enableSeconds){n.timeContainer.classList.add(\"hasSeconds\");var r=Hl(\"flatpickr-second\");n.secondElement=r.getElementsByTagName(\"input\")[0],n.secondElement.value=Pl(n.latestSelectedDateObj?n.latestSelectedDateObj.getSeconds():e.seconds),n.secondElement.setAttribute(\"step\",n.minuteElement.getAttribute(\"step\")),n.secondElement.setAttribute(\"min\",\"0\"),n.secondElement.setAttribute(\"max\",\"59\"),n.secondElement.setAttribute(\"maxlength\",\"2\"),n.timeContainer.appendChild(Bl(\"span\",\"flatpickr-time-separator\",\":\")),n.timeContainer.appendChild(r)}n.config.time_24hr||(n.amPM=Bl(\"span\",\"flatpickr-am-pm\",n.l10n.amPM[_l((n.latestSelectedDateObj?n.hourElement.value:n.config.defaultHour)>11)]),n.amPM.title=n.l10n.toggleTitle,n.amPM.tabIndex=-1,n.timeContainer.appendChild(n.amPM));return n.timeContainer}());Fl(n.calendarContainer,\"rangeMode\",\"range\"===n.config.mode),Fl(n.calendarContainer,\"animate\",!0===n.config.animate),Fl(n.calendarContainer,\"multiMonth\",n.config.showMonths>1),n.calendarContainer.appendChild(e);var r=void 0!==n.config.appendTo&&void 0!==n.config.appendTo.nodeType;if((n.config.inline||n.config.static)&&(n.calendarContainer.classList.add(n.config.inline?\"inline\":\"static\"),n.config.inline&&(!r&&n.element.parentNode?n.element.parentNode.insertBefore(n.calendarContainer,n._input.nextSibling):void 0!==n.config.appendTo&&n.config.appendTo.appendChild(n.calendarContainer)),n.config.static)){var a=Bl(\"div\",\"flatpickr-wrapper\");n.element.parentNode&&n.element.parentNode.insertBefore(a,n.element),a.appendChild(n.element),n.altInput&&a.appendChild(n.altInput),a.appendChild(n.calendarContainer)}n.config.static||n.config.inline||(void 0!==n.config.appendTo?n.config.appendTo:window.document.body).appendChild(n.calendarContainer)}(),function(){n.config.wrap&&[\"open\",\"close\",\"toggle\",\"clear\"].forEach((function(e){Array.prototype.forEach.call(n.element.querySelectorAll(\"[data-\"+e+\"]\"),(function(t){return d(t,\"click\",n[e])}))}));if(n.isMobile)return void function(){var e=n.config.enableTime?n.config.noCalendar?\"time\":\"datetime-local\":\"date\";n.mobileInput=Bl(\"input\",n.input.className+\" flatpickr-mobile\"),n.mobileInput.tabIndex=1,n.mobileInput.type=e,n.mobileInput.disabled=n.input.disabled,n.mobileInput.required=n.input.required,n.mobileInput.placeholder=n.input.placeholder,n.mobileFormatStr=\"datetime-local\"===e?\"Y-m-d\\\\TH:i:S\":\"date\"===e?\"Y-m-d\":\"H:i:S\",n.selectedDates.length>0&&(n.mobileInput.defaultValue=n.mobileInput.value=n.formatDate(n.selectedDates[0],n.mobileFormatStr));n.config.minDate&&(n.mobileInput.min=n.formatDate(n.config.minDate,\"Y-m-d\"));n.config.maxDate&&(n.mobileInput.max=n.formatDate(n.config.maxDate,\"Y-m-d\"));n.input.getAttribute(\"step\")&&(n.mobileInput.step=String(n.input.getAttribute(\"step\")));n.input.type=\"hidden\",void 0!==n.altInput&&(n.altInput.type=\"hidden\");try{n.input.parentNode&&n.input.parentNode.insertBefore(n.mobileInput,n.input.nextSibling)}catch(e){}d(n.mobileInput,\"change\",(function(e){n.setDate(zl(e).value,!1,n.mobileFormatStr),q(\"onChange\"),q(\"onClose\")}))}();var e=Ol(F,50);n._debouncedChange=Ol(f,iu),n.daysContainer&&!/iPhone|iPad|iPod/i.test(navigator.userAgent)&&d(n.daysContainer,\"mouseover\",(function(e){\"range\"===n.config.mode&&L(zl(e))}));d(n._input,\"keydown\",O),void 0!==n.calendarContainer&&d(n.calendarContainer,\"keydown\",O);n.config.inline||n.config.static||d(window,\"resize\",e);void 0!==window.ontouchstart?d(window.document,\"touchstart\",A):d(window.document,\"mousedown\",A);d(window.document,\"focus\",A,{capture:!0}),!0===n.config.clickOpens&&(d(n._input,\"focus\",n.open),d(n._input,\"click\",n.open));void 0!==n.daysContainer&&(d(n.monthNav,\"click\",ee),d(n.monthNav,[\"keyup\",\"increment\"],u),d(n.daysContainer,\"click\",V));if(void 0!==n.timeContainer&&void 0!==n.minuteElement&&void 0!==n.hourElement){var t=function(e){return zl(e).select()};d(n.timeContainer,[\"increment\"],a),d(n.timeContainer,\"blur\",a,{capture:!0}),d(n.timeContainer,\"click\",h),d([n.hourElement,n.minuteElement],[\"focus\",\"click\"],t),void 0!==n.secondElement&&d(n.secondElement,\"focus\",(function(){return n.secondElement&&n.secondElement.select()})),void 0!==n.amPM&&d(n.amPM,\"click\",(function(e){a(e)}))}n.config.allowInput&&d(n._input,\"blur\",_)}(),(n.selectedDates.length||n.config.noCalendar)&&(n.config.enableTime&&c(n.config.noCalendar?n.latestSelectedDateObj:void 0),Z(!1)),r();var i=/^((?!chrome|android).)*safari/i.test(navigator.userAgent);!n.isMobile&&i&&H(),q(\"onReady\")}(),n}function ru(e,t){for(var n=Array.prototype.slice.call(e).filter((function(e){return e instanceof HTMLElement})),i=[],o=0;o<n.length;o++){var r=n[o];try{if(null!==r.getAttribute(\"data-fp-omit\"))continue;void 0!==r._flatpickr&&(r._flatpickr.destroy(),r._flatpickr=void 0),r._flatpickr=ou(r,t||{}),i.push(r._flatpickr)}catch(e){console.error(e)}}return 1===i.length?i[0]:i}\"undefined\"!=typeof HTMLElement&&\"undefined\"!=typeof HTMLCollection&&\"undefined\"!=typeof NodeList&&(HTMLCollection.prototype.flatpickr=NodeList.prototype.flatpickr=function(e){return ru(this,e)},HTMLElement.prototype.flatpickr=function(e){return ru([this],e)});var au=function(e,t){return\"string\"==typeof e?ru(window.document.querySelectorAll(e),t):e instanceof Node?ru([e],t):ru(e,t)};au.defaultConfig={},au.l10ns={en:tu({},Tl),default:tu({},Tl)},au.localize=function(e){au.l10ns.default=tu(tu({},au.l10ns.default),e)},au.setDefaults=function(e){au.defaultConfig=tu(tu({},au.defaultConfig),e)},au.parseDate=ql({}),au.formatDate=Jl({}),au.compareDates=Kl,\"undefined\"!=typeof jQuery&&void 0!==jQuery.fn&&(jQuery.fn.flatpickr=function(e){return ru(this,e)}),Date.prototype.fp_incr=function(e){return new Date(this.getFullYear(),this.getMonth(),this.getDate()+(\"string\"==typeof e?parseInt(e,10):e))},\"undefined\"!=typeof window&&(window.flatpickr=au);const su=[\"onCreate\",\"onDestroy\"],cu=[\"onChange\",\"onOpen\",\"onClose\",\"onMonthChange\",\"onYearChange\",\"onReady\",\"onValueUpdate\",\"onDayCreate\"],lu=t=>{const n=l((()=>({...t})),[t]),{defaultValue:i,options:o={},value:a,children:s,render:c}=n,f=l((()=>((e,t)=>(cu.forEach((n=>{const i=t[n],o=e[n];if(i){o&&!Array.isArray(o)?e[n]=[e[n]]:e[n]||(e[n]=[]);const t=Array.isArray(i)?i:[i];0===e[n].length?e[n]=t:e[n].push(...t)}})),cu.forEach((e=>{delete t[e]})),su.forEach((e=>{delete t[e]})),e))(o,n)),[o,n]),m=d(null),p=d(void 0);h(t.ref,(()=>({get flatpickr(){return p.current}})),[]),u((()=>{var e;if(f.onClose=f.onClose||(()=>{var e;null!=(e=m.current)&&e.blur&&m.current.blur()}),p.current=((null==(n=au)?void 0:n.default)||au)(m.current,f),p.current&&void 0!==a&&p.current.setDate(a,!1),t.onCreate&&t.onCreate(p.current),p.current){const t=Object.getOwnPropertyNames(f);for(let n=t.length-1;n>=0;n--){const i=t[n];let o=f[i];(null==o?void 0:o.toString())!==(null==(e=p.current.config[i])?void 0:e.toString())&&(cu.includes(i)&&!Array.isArray(o)&&(o=[o]),p.current.set(i,o))}void 0!==a&&a!==p.current.input.value&&p.current.setDate(a,!1)}var n;return()=>{t.onDestroy&&t.onDestroy(p.current),p.current&&p.current.destroy(),p.current=void 0}}),[f,o,n,a,t]);const g=r((e=>{m.current=e}),[]);if(c)return c({...n,defaultValue:i,value:a},g);const v=r((e=>{var n,i;t&&t.onChange&&(Array.isArray(null==t?void 0:t.onChange)?null==(n=null==t?void 0:t.onChange)||n.forEach((()=>[new Date(e.target.value)]),(null==a?void 0:a.toString())||\"\"):\"function\"==typeof t.onChange&&(null==(i=null==t?void 0:t.onChange)||i.call(t,[new Date(e.target.value)],(null==a?void 0:a.toString())||\"\",p.current)))}),[t,a]);return o.wrap?e(\"div\",{className:\"flatpickr\",ref:g,children:s}):e(\"input\",{onChange:v,...n,value:null==a?void 0:a.toString(),defaultValue:i,ref:g})},uu=\"T42.GD.Execute\",du=[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],fu=(e,t)=>e in t;function mu({time:e,frequency:t,day:n}){const i=new Date(`01/01/2000 ${e}`),o=i.getMinutes(),r=i.getHours();let a=\"*\";return\"weekly\"===t&&n&&(a=function(e){const t={Sunday:0,Monday:1,Tuesday:2,Wednesday:3,Thursday:4,Friday:5,Saturday:6};if(!fu(e,t))throw new Error(`Invalid day: ${e}`);return t[e]}(n).toString()),`${o} ${r} * * ${a}`}function hu(e){const t=s(v),{value:n,update:i}=Hr({prefKey:pu(e)}),{value:o,update:a}=Hr({prefKey:pu(e,\"Time\")}),{value:c,update:l}=Hr({prefKey:pu(e,\"Frequency\")}),{value:d,update:f}=Hr({prefKey:pu(e,\"Day\")}),m=r((async()=>{try{await t.interop.invoke(uu,{command:`cancel-${e}`})}catch(e){console.error(e)}}),[t,e]),h=r((async()=>{try{const n=mu({time:o??\"12:00 AM\",frequency:c??\"daily\",day:\"weekly\"===c?d:\"*\"});await t.interop.invoke(uu,{command:`schedule-${e}`,args:{cronTime:n,discardUnsavedLayoutChanges:!1}})}catch(t){console.error(`Failed to update cron job for ${e}:`,t)}}),[t,e,o,c,d]);u((()=>{t&&n&&h()}),[t,n,h]);return{enabled:n??!1,time:o??\"12:00 AM\",frequency:c??\"daily\",day:d??\"Monday\",setEnabled:async e=>{e||await m();try{await i(e)}catch(e){console.error(\"Failed to update enabled state:\",e)}},setTime:async e=>{try{await a(e)}catch(e){console.error(\"Failed to update time:\",e)}},setFrequency:async e=>{try{await l(e),\"daily\"===e&&await f(void 0)}catch(e){console.error(\"Failed to update frequency:\",e)}},setDay:async e=>{var t;if(t=e,du.includes(t))try{await f(e)}catch(e){console.error(\"Failed to update day:\",e)}else console.error(\"Invalid day provided\")}}}function pu(e,t){const n=\"restart\"===e?\"_system_scheduleRestart\":\"_system_scheduleShutdown\";return t?`${n}${t}`:n}function gu({className:n,variant:i,...o}){const r=k(\"io-block-list-gap\",i,n),{enabled:a,time:s,frequency:c,day:l,setEnabled:u,setTime:d,setFrequency:f,setDay:m}=hu(i);return t(I,{className:r,...o,children:[e(Ri,{label:`Schedule ${i}`,align:\"right\",onChange:e=>u(e.target.checked),checked:a}),t(\"div\",{className:\"scheduler-controls\",children:[t(\"div\",{className:\"io-control-input io-control-leading-icon direction-up\",children:[e(C,{variant:\"clock\"}),e(lu,{className:\"io-input\",options:{enableTime:!0,noCalendar:!0,dateFormat:\"h:i K\",defaultDate:s,clickOpens:!0},value:s,onClose:async([e])=>{const t=e.toLocaleTimeString([],{hour:\"2-digit\",minute:\"2-digit\",hour12:!0});await d(t)}})]}),t(xi,{text:c.charAt(0).toUpperCase()+c.slice(1),icon:\"chevron-down\",iconRight:!0,children:[e(xi.Item,{onClick:()=>f(\"daily\"),children:\"Daily\"}),e(xi.Item,{onClick:()=>f(\"weekly\"),children:\"Weekly\"})]}),\"weekly\"===c&&e(xi,{text:l,icon:\"chevron-down\",iconRight:!0,children:du.map((t=>e(xi.Item,{onClick:()=>m(t),children:t},t)))})]})]})}function vu({className:t,...n}){return e(gu,{...n,className:t,variant:\"restart\"})}function yu({className:t,...n}){return e(gu,{...n,className:t,variant:\"shutdown\"})}const wu={Body:ll,General:ul,Theme:fl,PinnedPosition:hl,AllowDocking:gl,MinimizeToTray:vl,AutoClose:yl,ShowTutorialOnStartup:wl,Layouts:bl,LayoutsRestoreLastSaved:kl,LayoutsSaveCurrentOnExit:Cl,LayoutsShowUnsavedChangesPrompt:Nl,LayoutsShowDeletePrompt:xl,Downloads:Sl,DownloadsAskForEachDownload:Dl,DownloadsLocation:El,System:Il,SystemRestartSection:vu,SystemShutdownSection:yu},bu=a(wu),ku=m((({children:t,components:n})=>{const i=l((()=>({...wu,...n})),[n]);return e(bu.Provider,{value:i,children:t})}));ku.displayName=\"PreferencesPanelComponentsStoreProvider\";const Cu=()=>s(bu),Nu=({className:n,onClose:i,title:o=\"Platform Preferences\",children:r,...a})=>t(Mi,{className:k(\"io-preferences-panel\",n),...a,children:[t(Mi.Header,{children:[e(Mi.Header.Title,{size:\"large\",text:o,tag:\"h1\"}),e(Mi.Header.ButtonGroup,{children:e(Mi.Header.ButtonIcon,{variant:\"circle\",icon:\"close\",size:\"32\",onClick:i})})]}),r]}),xu=({onClose:t,title:n=\"Platform Preferences\",...i})=>{const{Body:o}=Cu();return e(Nu,{title:n,onClose:t,...i,children:e(o,{})})};var Su=Object.freeze({__proto__:null,AllowDocking:gl,AutoClose:yl,Downloads:Sl,DownloadsAskForEachDownload:Dl,DownloadsLocation:El,General:ul,Layouts:bl,LayoutsRestoreLastSaved:kl,LayoutsSaveCurrentOnExit:Cl,LayoutsShowDeletePrompt:xl,LayoutsShowUnsavedChangesPrompt:Nl,MinimizeToTray:vl,Panel:({components:t,...n})=>e(ku,{components:t,children:e(xu,{...n})}),PanelBody:ll,PinnedPosition:hl,ShowTutorialOnStartup:wl,System:Il,SystemRestartSection:vu,SystemShutdownSection:yu,Theme:fl});const Du=n=>{const{General:i,Layouts:o}=Pu();return t(Ii,{...n,children:[e(i,{}),e(o,{})]})},Eu=({className:t,title:n=\"General\",...i})=>{const{Theme:o}=Pu();return e(I,{className:k(\"io-block io-block-list-gap\",t),title:n,...i,children:e(o,{})})},Iu=({className:n,title:i=\"Layouts\",...o})=>{const{LayoutsShowDeletePrompt:r,LayoutsShowUnsavedChangesPrompt:a}=Pu();return t(I,{className:k(\"io-block io-block-list-gap\",n),title:i,...o,children:[e(a,{}),e(r,{})]})},Au={Body:Du,General:Eu,Theme:fl,Layouts:Iu,LayoutsShowUnsavedChangesPrompt:Nl,LayoutsShowDeletePrompt:xl},Mu=a(Au),Tu=m((({children:t,components:n})=>{const i=l((()=>({...Au,...n})),[n]);return e(Mu.Provider,{value:i,children:t})}));Tu.displayName=\"PreferencesPanelComponentsStoreProvider\";const Pu=()=>s(Mu),_u=({onClose:t,title:n=\"Platform Preferences\",...i})=>{const{Body:o}=Pu();return e(Nu,{title:n,onClose:t,...i,children:e(o,{})})};var Ou=Object.freeze({__proto__:null,General:Eu,Layouts:Iu,LayoutsShowDeletePrompt:xl,LayoutsShowUnsavedChangesPrompt:Nl,Panel:({components:t,...n})=>e(Tu,{components:t,children:e(_u,{...n})}),PanelBody:Du,Theme:fl});const Lu=({actionButtons:t,actionButtonElementsRefs:n,isAutofocusButton:i,isButtonDisabled:o,onButtonClick:r})=>e(V,{\"data-testid\":\"io-dialog-action-buttons-group\",align:\"right\",children:t.map(((t,a)=>{const{id:s,text:c,variant:l}=t,u=i(s);return e(A,{\"data-testid\":`io-dialog-action-button-${s}`,id:s,ref:e=>{0===a&&(n.current=[]),n.current[a]=e},className:u?\"io-focus-button\":void 0,disabled:o(s),onClick:()=>r(t),variant:l,children:c},s)}))}),Fu=({actionButtons:n,children:i,onCompletion:o,size:r,title:a=(Ji()?\"io.Connect Desktop\":\"io.Connect Browser\"),validationErrors:s=[]})=>{const{actionButtonElementsRefs:u,autofocusButtonId:m,hasAutofocusButtonLostInitialFocus:h}=(e=>{const t=d([]),n=l((()=>e.find((e=>e.autofocus))?.id??null),[e]),i=d(n),[o,r]=c(!i.current);return f((()=>{if(o)return;if(n!==i.current)return void r(!0);const e=t.current.find((e=>e?.id===n));if(!e)return;e.focus();const a=()=>{r(!0)};return e.addEventListener(\"blur\",a),()=>{e.removeEventListener(\"blur\",a)}}),[n,o]),{actionButtonElementsRefs:t,autofocusButtonId:n,hasAutofocusButtonLostInitialFocus:o}})(n),p=()=>{o({isClosed:!0})},g={...r};return t(K,{className:\"io-dialog-template\",closeFn:p,isOpen:!0,onCancel:e=>{e.preventDefault(),p()},onKeyDown:e=>{!(e=>\"Enter\"===e.key||\" \"===e.key)(e)||s.length||e.target instanceof HTMLButtonElement||\" \"===e.key&&e.target instanceof HTMLInputElement||o({isEnterPressed:!0})},style:g,title:a,children:[e(K.Body,{children:i}),e(K.Footer,{children:e(Lu,{actionButtonElementsRefs:u,actionButtons:n,isAutofocusButton:e=>m===e&&!h,isButtonDisabled:e=>s.some((t=>t.disabledButtonIds.some((t=>t===e)))),onButtonClick:({id:e,text:t})=>{o({responseButtonClicked:{id:e,text:t}})}})})]})},Bu=({children:t})=>e(\"h3\",{\"data-testid\":\"io-dialog-heading\",className:\"io-dialog-template-heading\",children:t});var Ru=Object.freeze({__proto__:null,NoInputsConfirmationDialog:({onCompletion:n,size:i,variables:o})=>{const{actionButtons:r,heading:a,text:s,title:c}=o;return e(Fu,{actionButtons:r,onCompletion:n,size:i,title:c,children:t(\"div\",{children:[e(Bu,{children:a}),e(\"p\",{\"data-testid\":\"io-dialog-text\",children:s})]})})},SingleCheckboxDialog:({onCompletion:n,size:i,variables:o})=>{const{actionButtons:a,checkbox:s,heading:l,text:u,title:d}=o,[f,m]=c(s.initialValue),h=r((()=>m((e=>!e))),[]),p=[{id:s.id,type:\"checkbox\",checked:f}];return t(Fu,{actionButtons:a,onCompletion:e=>n({...e,inputs:p}),size:i,title:d,children:[t(\"div\",{children:[e(Bu,{children:l}),e(\"p\",{\"data-testid\":\"io-dialog-text\",children:u})]}),e(Fi,{\"data-testid\":`io-dialog-checkbox-${s.id}`,checked:f,id:s.id,label:s.label,name:s.id,onChange:h})]})},SingleTextInputDialog:({onCompletion:n,size:i,variables:o})=>{const{actionButtons:r,heading:a,input:s,title:l}=o,[u,m]=c(s.initialValue??\"\"),h=d(null),p=(g=u,!(v=s.validation)||new RegExp(v.regexPattern).test(g)?null:{disabledButtonIds:v.disabledButtonIds,message:v.errorMessage});var g,v;const y=[{id:s.id,type:\"text\",value:u}];return f((()=>{h.current?.select()}),[]),t(Fu,{actionButtons:r,onCompletion:e=>n({...e,inputs:y}),size:i,title:l,validationErrors:p?[p]:[],children:[e(Bu,{children:a}),e(Oi,{\"data-testid\":`io-dialog-input-${s.id}`,ref:h,errorDataTestId:`io-dialog-input-${s.id}-error-message`,errorMessage:p?.message,id:s.id,label:s.label,name:s.id,onChange:e=>m(e.target.value),placeholder:s.placeholder,type:\"text\",value:u})]})}});const ju=({name:n,value:i})=>t(\"div\",{className:\"io-profile-section-item\",children:[e(\"div\",{className:\"io-profile-section-item-name\",children:n}),e(\"div\",{className:\"io-profile-section-item-value\",children:i})]}),Hu=({className:n,items:i,title:o})=>t(\"div\",{className:k(\"io-profile-section-body\",n),children:[o&&e(E,{className:\"io-profile-section-title\",text:o}),i.map((({name:t,value:n})=>e(ju,{name:t,value:n},t)))]}),zu=({className:n,items:i,title:o})=>t(\"section\",{className:k(\"io-profile-section\",n),children:[e(Hu,{items:i,title:o}),e(Ni,{className:\"mt-8\"})]}),$u=({title:t=\"License\",...n})=>e(zu,{title:t,...n}),Vu=({title:t=\"Version\",...n})=>e(zu,{title:t,...n}),Yu=({title:t=\"Plugins\",...n})=>e(zu,{title:t,...n}),Uu=({className:n})=>{const i=Ji()?\"io.Connect Desktop\":\"io.Connect Browser\";return t(\"div\",{className:k(\"io-trademark-container\",n),children:[e(\"h4\",{className:\"io-trademark-title\",children:i}),t(\"p\",{className:\"io-trademark-text\",children:[i,\"® is a registered trademark of\",\" \",e(\"a\",{href:\"https://www.interop.io\",rel:\"noreferrer\",target:\"_blank\",children:\"Interop Inc©\"}),\" \",(new Date).getFullYear(),\". All rights reserved.\"]})]})},Wu=({avatarInitials:n=(Ji()?\"CD\":\"CB\"),className:i,items:o,onLogout:r,title:a})=>t(\"section\",{className:k(\"io-profile-section\",i),children:[t(\"div\",{className:\"io-user-details-container\",children:[e(\"div\",{className:\"io-user-avatar\",children:n}),e(Hu,{className:\"mt-12\",items:o,title:a})]}),r&&e(A,{className:\"io-log-out-button\",onClick:r,variant:\"primary\",icon:\"arrow-right-from-bracket\",children:\"Log out\"}),e(Ni,{className:\"mt-8\"})]}),Ju={LicenseSection:$u,ProductsInfoSection:Vu,PluginsSection:Yu,Trademark:Uu,UserSection:Wu},qu=a(Ju),Ku=m((({children:t,components:n})=>{const i=l((()=>({...Ju,...n})),[n]);return e(qu.Provider,{value:i,children:t})}));Ku.displayName=\"ProfilePanelComponentsStoreProvider\";const Gu=e=>{const t=new Date(e);return[{day:\"numeric\"},{month:\"short\"},{year:\"numeric\"}].map((e=>t.toLocaleDateString(\"en\",e))).join(\" \")},Qu=e=>{if(!e)return{items:[]};const t=[...e.email?[{name:\"Email\",value:e.email}]:[],...e.type?[{name:\"User Type\",value:e.type}]:[],...e.role?[{name:\"User Role\",value:e.role}]:[],{name:\"User ID\",value:e.id}];if(e.firstName||e.lastName){const n=[e.firstName,e.lastName].filter((e=>!!e));return{avatarInitials:n.map((e=>e.charAt(0))).join(\"\"),items:t,title:n.join(\" \")}}return e.username?{avatarInitials:e.username.charAt(0),items:t,title:e.username}:e.email?{avatarInitials:e.email.charAt(0),items:t}:{items:t}},Xu=e=>{const t=new Date(2023,5,6),n=e.expiration<t.getTime()?1e3:1;return{items:[{name:\"Type\",value:e.type},{name:\"Expiration Date\",value:Gu(e.expiration*n)}]}},Zu=e=>({items:e.map((e=>({name:e.name,value:e.version})))}),ed=e=>{const t={\"@interopio/workspaces-ui-react\":\"Workspaces React Frame\",\"@interopio/workspaces-ui-web-components\":\"Workspaces Web Components Frame\"};return{items:[{name:\"io.Connect Browser platform\",value:e.platform.apiVersion},{name:\"io.Connect Browser client\",value:e.client.apiVersion},...e.workspaces?[{name:\"Workspaces API\",value:e.workspaces.apiVersion}]:[],...e.workspaces?.container&&fu(e.workspaces.container.type,t)?[{name:t[e.workspaces.container.type],value:e.workspaces.container.version}]:[],...e.home?[{name:\"Home UI\",value:e.home.version}]:[],...e.search?[{name:\"Search API\",value:e.search.apiVersion}]:[],...e.modals?[{name:\"Modals API\",value:e.modals.apiVersion}]:[]]}},td=()=>{const e=window.glue42gd??window.iodesktop;if(!e)throw new Error(\"both window.glue42gd and window.iodesktop are not available\");const{user:t,env:n}=e,i=[{name:\"Environment\",value:n.env},{name:\"Region\",value:n.region}];return t?{avatarInitials:t.charAt(0),items:i,title:t}:{items:i}},nd=e=>{const t=Object.entries(e??{}).map((([e,t])=>({name:e,value:t})));return{items:t}},id=e=>{const t=e.map((({product:e,version:t})=>({name:e,value:t})));return{items:t}},od=e=>Ji()?(async e=>{const{licInfo:t,productInfo:n}=(await e.interop.invoke(\"T42.GD.GetInfo\")).returned;return{user:td(),license:nd(t),productsInfo:id(n)}})(e):(async()=>{if(!window.iobrowser)throw new Error(\"window.iobrowser is not available\");const e=await window.iobrowser.system.getProfileData();return{user:Qu(e.user),license:Xu(e.license),plugins:Zu(e.plugins),productsInfo:ed(e.productsInfo)}})(),rd=({className:n,onClose:i,onLogout:o,title:r=\"Profile\",...a})=>{const{LicenseSection:l,ProductsInfoSection:d,PluginsSection:f,Trademark:m,UserSection:h}=s(qu),p=s(v),[g,y]=c(null);return u((()=>{if(!p)return;(async()=>{const e=await od(p);y(e)})().catch(console.error)}),[p]),t(Mi,{className:k(\"io-profile-panel\",n),...a,children:[t(Mi.Header,{children:[e(Mi.Header.Title,{size:\"large\",text:r}),e(Mi.Header.ButtonGroup,{children:e(Mi.Header.ButtonIcon,{variant:\"circle\",icon:\"close\",size:\"32\",onClick:i})})]}),t(Mi.Body,{children:[g?.user.items.length||g?.user.title?e(h,{avatarInitials:g.user.avatarInitials,items:g.user.items,onLogout:o,title:g.user.title}):null,t(\"div\",{className:\"io-scrollable-profile-sections-container\",children:[g?.license.items.length?e(l,{items:g.license.items}):null,g?.productsInfo.items.length?e(d,{items:g.productsInfo.items}):null,g?.plugins?.items.length?e(f,{items:g.plugins.items}):null]}),e(m,{className:\"mt-auto\"})]})]})};var ad=Object.freeze({__proto__:null,LicenseSection:$u,Panel:({components:t,...n})=>e(Ku,{components:t,children:e(rd,{...n})}),PluginsSection:Yu,ProductsInfoSection:Vu,Trademark:Uu,UserSection:Wu});const sd=Su,cd=Ou;export{S as Alert,D as Badge,I as Block,A as Button,V as ButtonGroup,N as ButtonIcon,Fi as Checkbox,K as Dialog,$ as Dropdown,xi as DropdownMenu,J as Footer,Y as Header,ca as IOChannelSelector,Ru as IODialogTemplates,wa as IODialogs,Wa as IODownloadManager,ws as IOFeedback,cl as IONotifications,cd as IOPreferencesBrowser,sd as IOPreferencesDesktop,ad as IOProfile,C as Icon,Si as ImageIcon,Oi as Input,_i as Label,H as List,Di as Loader,Mi as Panel,Ti as Pill,Rr as PlatformPrefsProvider,Pi as Progress,Bi as Radio,Ni as Separator,Li as Textarea,Ki as ThemeContext,Gi as ThemeProvider,E as Title,Ri as Toggle,zi as useAppPrefs,Vi as useDebounce,Wi as useHideWindowOnFocusLost,qi as useIsIODesktop,Hi as useKeyDown,$i as useKeyPress,Ui as useKeyUp,z as useOnClickOutside,Hr as usePlatformPref,jr as usePlatformPrefs,Yi as useShowHideWindow,ji as useTimeout};\n//# sourceMappingURL=index.js.map\n","import type { BaseSectionItemType, BaseSectionType } from \"./types\";\n\nexport const isSection = <Item extends BaseSectionItemType>(\n item: BaseSectionType<Item>[\"items\"][number]\n): item is BaseSectionType<Item> => {\n return \"items\" in item;\n};\n","export const ITEM_TYPES = {\n APPLICATION: \"application\",\n WORKSPACE: \"workspace\",\n LAYOUT: \"layout\",\n ACTION_BUTTON: \"action-button\",\n} as const;\n","export const extractErrorMessage = (error: any): string => {\n if (typeof error === \"string\") {\n return error;\n }\n\n if (error?.message) {\n return typeof error.message === \"string\" ? (error.message as string) : JSON.stringify(error.message);\n }\n\n return JSON.stringify(error);\n};\n\nexport const checkIsDesktop = (): boolean =>\n typeof (window as any).glue42gd !== \"undefined\" ||\n typeof (window as any).glue42alert !== \"undefined\" ||\n typeof (window as any).glue42dialog !== \"undefined\" ||\n typeof (window as any).iodesktop !== \"undefined\";\n","import { checkIsDesktop } from \"../../common/utils\";\nimport { ContextMenuAction } from \"./types\";\n\nexport const APPLICATION_ACTION_NAMES = {\n OPEN_IN_NEW_WINDOW: \"openInNewWindow\",\n OPEN_IN_NEW_WORKSPACE: \"openInNewWorkspace\",\n} as const;\n\nexport const APPLICATION_ACTIONS: ContextMenuAction[] = checkIsDesktop()\n ? []\n : [\n {\n name: APPLICATION_ACTION_NAMES.OPEN_IN_NEW_WINDOW,\n displayName: \"Open in a new window\",\n icon: \"pop-out\",\n },\n {\n name: APPLICATION_ACTION_NAMES.OPEN_IN_NEW_WORKSPACE,\n displayName: \"Open in a new Workspace\",\n icon: \"pop-out\",\n },\n ];\n\nexport const WORKSPACE_ACTION_NAMES = {\n OPEN_IN_NEW_WINDOW: \"openInNewWindow\",\n DELETE: \"delete\",\n} as const;\n\nexport const WORKSPACE_ACTIONS: ContextMenuAction[] = [\n {\n name: WORKSPACE_ACTION_NAMES.OPEN_IN_NEW_WINDOW,\n displayName: \"Open in a new window\",\n icon: \"pop-out\",\n separatorAfter: true,\n },\n { name: WORKSPACE_ACTION_NAMES.DELETE, displayName: \"Delete\", icon: \"trash-can\" },\n];\n","export const SORT_ORDER = {\n ASCENDING: \"ascending\",\n DESCENDING: \"descending\",\n DISABLED: \"disabled\",\n} as const;\n","import { SORT_ORDER } from \"../constants/sortOrder\";\nimport { Favorite, SortCompareFunction, SortOrder } from \"../common/types\";\nimport { Workspace } from \"../lib/workspaces-section/types\";\n\nexport const collator = new Intl.Collator(undefined, {\n sensitivity: \"base\",\n});\n\nexport const ascendingTitleCompare: SortCompareFunction<Favorite | Workspace> = (a, b) => collator.compare(a.title, b.title);\n\nexport const descendingTitleCompare: SortCompareFunction<Favorite | Workspace> = (a, b) => collator.compare(b.title, a.title);\n\nexport const sortItems = <Type>(config: {\n items: Type[];\n sortOrder: SortOrder;\n ascendingCompare: SortCompareFunction<Type>;\n descendingCompare: SortCompareFunction<Type>;\n}): Type[] => {\n const { items, sortOrder, ascendingCompare, descendingCompare } = config;\n\n if (sortOrder === SORT_ORDER.DISABLED) {\n return items;\n }\n\n const compareFunction = sortOrder === SORT_ORDER.ASCENDING ? ascendingCompare : descendingCompare;\n\n return [...items].sort(compareFunction);\n};\n","export const DEFAULT_SECTION_IDS = {\n FAVORITES: \"favorites-section\",\n WORKSPACES: \"workspaces-section\",\n APPLICATIONS: \"applications-section\",\n};\n","import { isSection } from \"../base-section/helpers\";\nimport { ITEM_TYPES } from \"../../constants/itemTypes\";\nimport { SectionItemType, SectionType } from \"../section/types\";\nimport { Application, ApplicationsSectionProps } from \"./types\";\nimport { SortCompareFunction } from \"../../common/types\";\nimport { APPLICATION_ACTIONS } from \"../context-menu/constants\";\nimport { SORT_ORDER } from \"../../constants/sortOrder\";\nimport { collator, sortItems } from \"../../helpers/sort\";\nimport { DEFAULT_SECTION_IDS } from \"../../constants/sections\";\n\nconst generateItems = (\n items: SectionType[\"items\"],\n newItem: SectionItemType,\n path: string,\n settings: ApplicationsSectionProps,\n): SectionType[\"items\"] => {\n const { isFolderCollapsible } = settings;\n const separator = \"/\";\n const [currentFolder, ...nestedFolders] = path.split(separator);\n const sectionIndex = items.findIndex((item) => isSection(item) && item.title === currentFolder);\n const section = sectionIndex !== -1 ? (items[sectionIndex] as SectionType) : null;\n\n if (!section) {\n return [\n ...items,\n {\n id: currentFolder,\n title: currentFolder,\n items:\n nestedFolders.length > 0 ? generateItems([], newItem, nestedFolders.join(separator), settings) : [newItem],\n isCollapsible: isFolderCollapsible,\n },\n ];\n }\n\n return [\n ...items.slice(0, sectionIndex),\n {\n ...section,\n items:\n nestedFolders.length > 0\n ? generateItems(section.items, newItem, nestedFolders.join(separator), settings)\n : [...section.items, newItem],\n },\n ...items.slice(sectionIndex + 1),\n ];\n};\n\nconst generateFullPath = (application: Application) => {\n const { title, userProperties } = application;\n const { folder } = userProperties;\n\n return folder ? `${folder}/${title}` : title;\n};\n\nconst ascendingApplicationsCompare: SortCompareFunction<Application> = (a, b) =>\n collator.compare(generateFullPath(a), generateFullPath(b));\n\nconst descendingApplicationsCompare: SortCompareFunction<Application> = (a, b) =>\n collator.compare(generateFullPath(b), generateFullPath(a));\n\nexport const getApplicationsSectionConfig = (\n applications: Application[],\n runningInstances: {\n [appName: string]: string[];\n },\n settings: ApplicationsSectionProps,\n): SectionType => {\n const { isSectionCollapsible, sortOrder = SORT_ORDER.ASCENDING } = settings;\n\n const sortedApplications = sortItems({\n items: applications,\n sortOrder,\n ascendingCompare: ascendingApplicationsCompare,\n descendingCompare: descendingApplicationsCompare,\n });\n\n const items = sortedApplications.reduce(\n (items, application) => {\n const item: SectionItemType = {\n id: application.id,\n title: application.title,\n description: application.caption,\n type: ITEM_TYPES.APPLICATION,\n icon: \"application\",\n iconSrc: application.icon,\n openInstances: runningInstances[application.name]?.length,\n contextMenuActions: APPLICATION_ACTIONS,\n };\n\n const path = application.userProperties.folder;\n\n return path ? generateItems(items, item, path, settings) : [...items, item];\n },\n [] as SectionType[\"items\"],\n );\n\n return {\n id: DEFAULT_SECTION_IDS.APPLICATIONS,\n title: \"Apps\",\n items,\n isCollapsible: isSectionCollapsible,\n };\n};\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","module.exports = Function.call.bind(Object.prototype.hasOwnProperty);\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = require('./lib/has');\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) { /**/ }\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +\n 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar has = require('./lib/has');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<<anonymous>>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bigint: createPrimitiveTypeChecker('bigint'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message, data) {\n this.message = message;\n this.data = data && typeof data === 'object' ? data: {};\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),\n {expectedType: expectedType}\n );\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var expectedTypes = [];\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);\n if (checkerResult == null) {\n return null;\n }\n if (checkerResult.data && has(checkerResult.data, 'expectedType')) {\n expectedTypes.push(checkerResult.data.expectedType);\n }\n }\n var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function invalidValidatorError(componentName, location, propFullName, key, type) {\n return new PropTypeError(\n (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'\n );\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (has(shapeTypes, key) && typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nimport PropTypes from 'prop-types';\n\n// https://github.com/twbs/bootstrap/blob/v4.0.0-alpha.4/js/src/modal.js#L436-L443\nexport function getScrollbarWidth() {\n var scrollDiv = document.createElement('div');\n // .modal-scrollbar-measure styles // https://github.com/twbs/bootstrap/blob/v4.0.0-alpha.4/scss/_modal.scss#L106-L113\n scrollDiv.style.position = 'absolute';\n scrollDiv.style.top = '-9999px';\n scrollDiv.style.width = '50px';\n scrollDiv.style.height = '50px';\n scrollDiv.style.overflow = 'scroll';\n document.body.appendChild(scrollDiv);\n var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n return scrollbarWidth;\n}\nexport function setScrollbarWidth(padding) {\n document.body.style.paddingRight = padding > 0 ? \"\".concat(padding, \"px\") : null;\n}\nexport function isBodyOverflowing() {\n return document.body.clientWidth < window.innerWidth;\n}\nexport function getOriginalBodyPadding() {\n var style = window.getComputedStyle(document.body, null);\n return parseInt(style && style.getPropertyValue('padding-right') || 0, 10);\n}\nexport function conditionallyUpdateScrollbar() {\n var scrollbarWidth = getScrollbarWidth();\n // https://github.com/twbs/bootstrap/blob/v4.0.0-alpha.6/js/src/modal.js#L433\n var fixedContent = document.querySelectorAll('.fixed-top, .fixed-bottom, .is-fixed, .sticky-top')[0];\n var bodyPadding = fixedContent ? parseInt(fixedContent.style.paddingRight || 0, 10) : 0;\n if (isBodyOverflowing()) {\n setScrollbarWidth(bodyPadding + scrollbarWidth);\n }\n}\nvar globalCssModule;\nexport function setGlobalCssModule(cssModule) {\n globalCssModule = cssModule;\n}\nexport function mapToCssModules() {\n var className = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var cssModule = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : globalCssModule;\n if (!cssModule) return className;\n return className.split(' ').map(function (c) {\n return cssModule[c] || c;\n }).join(' ');\n}\n\n/**\n * Returns a new object with the key/value pairs from `obj` that are not in the array `omitKeys`.\n */\nexport function omit(obj, omitKeys) {\n var result = {};\n Object.keys(obj).forEach(function (key) {\n if (omitKeys.indexOf(key) === -1) {\n result[key] = obj[key];\n }\n });\n return result;\n}\n\n/**\n * Returns a filtered copy of an object with only the specified keys.\n */\nexport function pick(obj, keys) {\n var pickKeys = Array.isArray(keys) ? keys : [keys];\n var length = pickKeys.length;\n var key;\n var result = {};\n while (length > 0) {\n length -= 1;\n key = pickKeys[length];\n result[key] = obj[key];\n }\n return result;\n}\nvar warned = {};\nexport function warnOnce(message) {\n if (!warned[message]) {\n /* istanbul ignore else */\n if (typeof console !== 'undefined') {\n console.error(message); // eslint-disable-line no-console\n }\n\n warned[message] = true;\n }\n}\nexport function deprecated(propType, explanation) {\n return function validate(props, propName, componentName) {\n if (props[propName] !== null && typeof props[propName] !== 'undefined') {\n warnOnce(\"\\\"\".concat(propName, \"\\\" property of \\\"\").concat(componentName, \"\\\" has been deprecated.\\n\").concat(explanation));\n }\n for (var _len = arguments.length, rest = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {\n rest[_key - 3] = arguments[_key];\n }\n return propType.apply(void 0, [props, propName, componentName].concat(rest));\n };\n}\n\n// Shim Element if needed (e.g. in Node environment)\nvar Element = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === 'object' && window.Element || function () {};\nexport function DOMElement(props, propName, componentName) {\n if (!(props[propName] instanceof Element)) {\n return new Error('Invalid prop `' + propName + '` supplied to `' + componentName + '`. Expected prop to be an instance of Element. Validation failed.');\n }\n}\nexport var targetPropType = PropTypes.oneOfType([PropTypes.string, PropTypes.func, DOMElement, PropTypes.shape({\n current: PropTypes.any\n})]);\nexport var tagPropType = PropTypes.oneOfType([PropTypes.func, PropTypes.string, PropTypes.shape({\n $$typeof: PropTypes.symbol,\n render: PropTypes.func\n}), PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.string, PropTypes.shape({\n $$typeof: PropTypes.symbol,\n render: PropTypes.func\n})]))]);\n\n// These are all setup to match what is in the bootstrap _variables.scss\n// https://github.com/twbs/bootstrap/blob/v4-dev/scss/_variables.scss\nexport var TransitionTimeouts = {\n Fade: 150,\n // $transition-fade\n Collapse: 350,\n // $transition-collapse\n Modal: 300,\n // $modal-transition\n Carousel: 600,\n // $carousel-transition\n Offcanvas: 300 // $offcanvas-transition\n};\n\n// Duplicated Transition.propType keys to ensure that Reactstrap builds\n// for distribution properly exclude these keys for nested child HTML attributes\n// since `react-transition-group` removes propTypes in production builds.\nexport var TransitionPropTypeKeys = ['in', 'mountOnEnter', 'unmountOnExit', 'appear', 'enter', 'exit', 'timeout', 'onEnter', 'onEntering', 'onEntered', 'onExit', 'onExiting', 'onExited'];\nexport var TransitionStatuses = {\n ENTERING: 'entering',\n ENTERED: 'entered',\n EXITING: 'exiting',\n EXITED: 'exited'\n};\nexport var keyCodes = {\n esc: 27,\n space: 32,\n enter: 13,\n tab: 9,\n up: 38,\n down: 40,\n home: 36,\n end: 35,\n n: 78,\n p: 80\n};\nexport var PopperPlacements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\nexport var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nexport function isReactRefObj(target) {\n if (target && _typeof(target) === 'object') {\n return 'current' in target;\n }\n return false;\n}\nfunction getTag(value) {\n if (value == null) {\n return value === undefined ? '[object Undefined]' : '[object Null]';\n }\n return Object.prototype.toString.call(value);\n}\nexport function isObject(value) {\n var type = _typeof(value);\n return value != null && (type === 'object' || type === 'function');\n}\nexport function toNumber(value) {\n var type = _typeof(value);\n var NAN = 0 / 0;\n if (type === 'number') {\n return value;\n }\n if (type === 'symbol' || type === 'object' && getTag(value) === '[object Symbol]') {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf === 'function' ? value.valueOf() : value;\n value = isObject(other) ? \"\".concat(other) : other;\n }\n if (type !== 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(/^\\s+|\\s+$/g, '');\n var isBinary = /^0b[01]+$/i.test(value);\n return isBinary || /^0o[0-7]+$/i.test(value) ? parseInt(value.slice(2), isBinary ? 2 : 8) : /^[-+]0x[0-9a-f]+$/i.test(value) ? NAN : +value;\n}\nexport function isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n var tag = getTag(value);\n return tag === '[object Function]' || tag === '[object AsyncFunction]' || tag === '[object GeneratorFunction]' || tag === '[object Proxy]';\n}\nexport function findDOMElements(target) {\n if (isReactRefObj(target)) {\n return target.current;\n }\n if (isFunction(target)) {\n return target();\n }\n if (typeof target === 'string' && canUseDOM) {\n var selection = document.querySelectorAll(target);\n if (!selection.length) {\n selection = document.querySelectorAll(\"#\".concat(target));\n }\n if (!selection.length) {\n throw new Error(\"The target '\".concat(target, \"' could not be identified in the dom, tip: check spelling\"));\n }\n return selection;\n }\n return target;\n}\nexport function isArrayOrNodeList(els) {\n if (els === null) {\n return false;\n }\n return Array.isArray(els) || canUseDOM && typeof els.length === 'number';\n}\nexport function getTarget(target, allElements) {\n var els = findDOMElements(target);\n if (allElements) {\n if (isArrayOrNodeList(els)) {\n return els;\n }\n if (els === null) {\n return [];\n }\n return [els];\n }\n if (isArrayOrNodeList(els)) {\n return els[0];\n }\n return els;\n}\nexport var defaultToggleEvents = ['touchstart', 'click'];\nexport function addMultipleEventListeners(_els, handler, _events, useCapture) {\n var els = _els;\n if (!isArrayOrNodeList(els)) {\n els = [els];\n }\n var events = _events;\n if (typeof events === 'string') {\n events = events.split(/\\s+/);\n }\n if (!isArrayOrNodeList(els) || typeof handler !== 'function' || !Array.isArray(events)) {\n throw new Error(\"\\n The first argument of this function must be DOM node or an array on DOM nodes or NodeList.\\n The second must be a function.\\n The third is a string or an array of strings that represents DOM events\\n \");\n }\n Array.prototype.forEach.call(events, function (event) {\n Array.prototype.forEach.call(els, function (el) {\n el.addEventListener(event, handler, useCapture);\n });\n });\n return function removeEvents() {\n Array.prototype.forEach.call(events, function (event) {\n Array.prototype.forEach.call(els, function (el) {\n el.removeEventListener(event, handler, useCapture);\n });\n });\n };\n}\nexport var focusableElements = ['a[href]', 'area[href]', 'input:not([disabled]):not([type=hidden])', 'select:not([disabled])', 'textarea:not([disabled])', 'button:not([disabled])', 'object', 'embed', '[tabindex]:not(.modal):not(.offcanvas)', 'audio[controls]', 'video[controls]', '[contenteditable]:not([contenteditable=\"false\"])'];\nexport function addDefaultProps(defaultProps, props) {\n if (!defaultProps || !props) return props;\n var result = _objectSpread({}, props);\n Object.keys(defaultProps).forEach(function (key) {\n if (result[key] === undefined) {\n result[key] = defaultProps[key];\n }\n if (Object.keys(defaultProps[key] || {}).length > 0 && _typeof(defaultProps[key]) === 'object') {\n addDefaultProps(defaultProps[key], result);\n }\n });\n return result;\n}","var _excluded = [\"className\", \"cssModule\", \"variant\", \"innerRef\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules } from './utils';\nvar propTypes = {\n /** Disable the button if needed */\n active: PropTypes.bool,\n /** Aria label */\n 'aria-label': PropTypes.string,\n /** Function to be triggered on click */\n onClick: PropTypes.func,\n /** Change the variant to white */\n variant: PropTypes.oneOf(['white']),\n className: PropTypes.string,\n cssModule: PropTypes.object,\n innerRef: PropTypes.oneOfType([PropTypes.object, PropTypes.string, PropTypes.func])\n};\nfunction CloseButton(props) {\n var className = props.className,\n cssModule = props.cssModule,\n variant = props.variant,\n innerRef = props.innerRef,\n attributes = _objectWithoutProperties(props, _excluded);\n var classes = mapToCssModules(classNames(className, 'btn-close', variant && \"btn-close-\".concat(variant)));\n return /*#__PURE__*/React.createElement(\"button\", _extends({\n ref: innerRef,\n type: \"button\",\n className: classes\n }, _objectSpread({\n 'aria-label': 'close'\n }, attributes)));\n}\nCloseButton.propTypes = propTypes;\nexport default CloseButton;","var _excluded = [\"active\", \"aria-label\", \"block\", \"className\", \"close\", \"cssModule\", \"color\", \"outline\", \"size\", \"tag\", \"innerRef\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nimport CloseButton from './CloseButton';\nvar propTypes = {\n /** Manually set the visual state of the button to active */\n active: PropTypes.bool,\n /** Aria label */\n 'aria-label': PropTypes.string,\n block: PropTypes.bool,\n /** Pass children so this component can wrap them */\n children: PropTypes.node,\n /** Add custom class */\n className: PropTypes.string,\n /** Change existing className with a new className */\n cssModule: PropTypes.object,\n /** Use the button as a close button */\n close: PropTypes.bool,\n /** Change color of Button to one of the available colors */\n color: PropTypes.string,\n /** Disables the button */\n disabled: PropTypes.bool,\n innerRef: PropTypes.oneOfType([PropTypes.object, PropTypes.func, PropTypes.string]),\n /** Function to be triggered on click */\n onClick: PropTypes.func,\n /** Adds outline to the button */\n outline: PropTypes.bool,\n /** Make the button bigger or smaller */\n size: PropTypes.string,\n /** Set a custom element for this component */\n tag: tagPropType\n};\nfunction Button(props) {\n var onClick = useCallback(function (e) {\n if (props.disabled) {\n e.preventDefault();\n return;\n }\n if (props.onClick) {\n return props.onClick(e);\n }\n }, [props.onClick, props.disabled]);\n var active = props.active,\n ariaLabel = props['aria-label'],\n block = props.block,\n className = props.className,\n close = props.close,\n cssModule = props.cssModule,\n _props$color = props.color,\n color = _props$color === void 0 ? 'secondary' : _props$color,\n outline = props.outline,\n size = props.size,\n _props$tag = props.tag,\n Tag = _props$tag === void 0 ? 'button' : _props$tag,\n innerRef = props.innerRef,\n attributes = _objectWithoutProperties(props, _excluded);\n if (close) {\n return /*#__PURE__*/React.createElement(CloseButton, attributes);\n }\n var btnOutlineColor = \"btn\".concat(outline ? '-outline' : '', \"-\").concat(color);\n var classes = mapToCssModules(classNames(className, 'btn', btnOutlineColor, size ? \"btn-\".concat(size) : false, block ? 'd-block w-100' : false, {\n active: active,\n disabled: props.disabled\n }), cssModule);\n if (attributes.href && Tag === 'button') {\n Tag = 'a';\n }\n return /*#__PURE__*/React.createElement(Tag, _extends({\n type: Tag === 'button' && attributes.onClick ? 'button' : undefined\n }, attributes, {\n className: classes,\n ref: innerRef,\n onClick: onClick,\n \"aria-label\": ariaLabel\n }));\n}\nButton.propTypes = propTypes;\nexport default Button;","import * as React from 'react';\n\n/**\n * Takes an argument and if it's an array, returns the first item in the array,\n * otherwise returns the argument. Used for Preact compatibility.\n */\nexport var unwrapArray = function unwrapArray(arg) {\n return Array.isArray(arg) ? arg[0] : arg;\n};\n/**\n * Takes a maybe-undefined function and arbitrary args and invokes the function\n * only if it is defined.\n */\n\nexport var safeInvoke = function safeInvoke(fn) {\n if (typeof fn === 'function') {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return fn.apply(void 0, args);\n }\n};\n/**\n * Sets a ref using either a ref callback or a ref object\n */\n\nexport var setRef = function setRef(ref, node) {\n // if its a function call it\n if (typeof ref === 'function') {\n return safeInvoke(ref, node);\n } // otherwise we should treat it as a ref object\n else if (ref != null) {\n ref.current = node;\n }\n};\n/**\n * Simple ponyfill for Object.fromEntries\n */\n\nexport var fromEntries = function fromEntries(entries) {\n return entries.reduce(function (acc, _ref) {\n var key = _ref[0],\n value = _ref[1];\n acc[key] = value;\n return acc;\n }, {});\n};\n/**\n * Small wrapper around `useLayoutEffect` to get rid of the warning on SSR envs\n */\n\nexport var useIsomorphicLayoutEffect = typeof window !== 'undefined' && window.document && window.document.createElement ? React.useLayoutEffect : React.useEffect;","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","export default function getUAString() {\n var uaData = navigator.userAgentData;\n\n if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) {\n return uaData.brands.map(function (item) {\n return item.brand + \"/\" + item.version;\n }).join(' ');\n }\n\n return navigator.userAgent;\n}","import getUAString from \"../utils/userAgent.js\";\nexport default function isLayoutViewport() {\n return !/^((?!chrome|android).)*safari/i.test(getUAString());\n}","import { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nimport getWindow from \"./getWindow.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getBoundingClientRect(element, includeScale, isFixedStrategy) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n\n var clientRect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (includeScale && isHTMLElement(element)) {\n scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;\n scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;\n }\n\n var _ref = isElement(element) ? getWindow(element) : window,\n visualViewport = _ref.visualViewport;\n\n var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;\n var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;\n var width = clientRect.width / scaleX;\n var height = clientRect.height / scaleY;\n return {\n width: width,\n height: height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x: x,\n y: y\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement, isShadowRoot } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getUAString from \"../utils/userAgent.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = /firefox/i.test(getUAString());\n var isIE = /Trident/i.test(getUAString());\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}\nexport function withinMaxClamp(min, value, max) {\n var v = within(min, value, max);\n return v > max ? max : v;\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport { within } from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref, win) {\n var x = _ref.x,\n y = _ref.y;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x,\n x = _offsets$x === void 0 ? 0 : _offsets$x,\n _offsets$y = offsets.y,\n y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref3.x;\n y = _ref3.y;\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x: x,\n y: y\n }, getWindow(popper)) : {\n x: x,\n y: y\n };\n\n x = _ref4.x;\n y = _ref4.y;\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n var state = _ref5.state,\n options = _ref5.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration,\n isFixed: state.options.strategy === 'fixed'\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If <html> has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on <html>\n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getViewportRect(element, strategy) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0;\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n var layoutViewport = isLayoutViewport();\n\n if (layoutViewport || !layoutViewport && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element, strategy) {\n var rect = getBoundingClientRect(element, false, strategy === 'fixed');\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent, strategy) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary, strategy) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent, strategy));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$strategy = _options.strategy,\n strategy = _options$strategy === void 0 ? state.strategy : _options$strategy,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport { within, withinMaxClamp } from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { min as mathMin, max as mathMax } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n mainAxis: tetherOffsetValue,\n altAxis: tetherOffsetValue\n } : Object.assign({\n mainAxis: 0,\n altAxis: 0\n }, tetherOffsetValue);\n var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var _offsetModifierState$;\n\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = offset + overflow[mainSide];\n var max = offset - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = offset + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _offsetModifierState$2;\n\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _len = altAxis === 'y' ? 'height' : 'width';\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n });\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref) {\n var name = _ref.name,\n _ref$options = _ref.options,\n options = _ref$options === void 0 ? {} : _ref$options,\n effect = _ref.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow }; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport * from \"./modifiers/index.js\";","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\n\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;\n\n// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.3\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n // START: Modifications:\n // 1. Extra `has<Type> &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n // START: Modifications:\n // Apply guards for `Object.create(null)` handling. See:\n // - https://github.com/FormidableLabs/react-fast-compare/issues/64\n // - https://github.com/epoberezkin/fast-deep-equal/issues/49\n if (a.valueOf !== Object.prototype.valueOf && typeof a.valueOf === 'function' && typeof b.valueOf === 'function') return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString && typeof a.toString === 'function' && typeof b.toString === 'function') return a.toString() === b.toString();\n // END: Modifications\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { createPopper as defaultCreatePopper } from '@popperjs/core';\nimport isEqual from 'react-fast-compare';\nimport { fromEntries, useIsomorphicLayoutEffect } from './utils';\nvar EMPTY_MODIFIERS = [];\nexport var usePopper = function usePopper(referenceElement, popperElement, options) {\n if (options === void 0) {\n options = {};\n }\n\n var prevOptions = React.useRef(null);\n var optionsWithDefaults = {\n onFirstUpdate: options.onFirstUpdate,\n placement: options.placement || 'bottom',\n strategy: options.strategy || 'absolute',\n modifiers: options.modifiers || EMPTY_MODIFIERS\n };\n\n var _React$useState = React.useState({\n styles: {\n popper: {\n position: optionsWithDefaults.strategy,\n left: '0',\n top: '0'\n },\n arrow: {\n position: 'absolute'\n }\n },\n attributes: {}\n }),\n state = _React$useState[0],\n setState = _React$useState[1];\n\n var updateStateModifier = React.useMemo(function () {\n return {\n name: 'updateState',\n enabled: true,\n phase: 'write',\n fn: function fn(_ref) {\n var state = _ref.state;\n var elements = Object.keys(state.elements);\n ReactDOM.flushSync(function () {\n setState({\n styles: fromEntries(elements.map(function (element) {\n return [element, state.styles[element] || {}];\n })),\n attributes: fromEntries(elements.map(function (element) {\n return [element, state.attributes[element]];\n }))\n });\n });\n },\n requires: ['computeStyles']\n };\n }, []);\n var popperOptions = React.useMemo(function () {\n var newOptions = {\n onFirstUpdate: optionsWithDefaults.onFirstUpdate,\n placement: optionsWithDefaults.placement,\n strategy: optionsWithDefaults.strategy,\n modifiers: [].concat(optionsWithDefaults.modifiers, [updateStateModifier, {\n name: 'applyStyles',\n enabled: false\n }])\n };\n\n if (isEqual(prevOptions.current, newOptions)) {\n return prevOptions.current || newOptions;\n } else {\n prevOptions.current = newOptions;\n return newOptions;\n }\n }, [optionsWithDefaults.onFirstUpdate, optionsWithDefaults.placement, optionsWithDefaults.strategy, optionsWithDefaults.modifiers, updateStateModifier]);\n var popperInstanceRef = React.useRef();\n useIsomorphicLayoutEffect(function () {\n if (popperInstanceRef.current) {\n popperInstanceRef.current.setOptions(popperOptions);\n }\n }, [popperOptions]);\n useIsomorphicLayoutEffect(function () {\n if (referenceElement == null || popperElement == null) {\n return;\n }\n\n var createPopper = options.createPopper || defaultCreatePopper;\n var popperInstance = createPopper(referenceElement, popperElement, popperOptions);\n popperInstanceRef.current = popperInstance;\n return function () {\n popperInstance.destroy();\n popperInstanceRef.current = null;\n };\n }, [referenceElement, popperElement, options.createPopper]);\n return {\n state: popperInstanceRef.current ? popperInstanceRef.current.state : null,\n styles: state.styles,\n attributes: state.attributes,\n update: popperInstanceRef.current ? popperInstanceRef.current.update : null,\n forceUpdate: popperInstanceRef.current ? popperInstanceRef.current.forceUpdate : null\n };\n};","var _excluded = [\"className\", \"cssModule\", \"size\", \"vertical\", \"tag\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n /** Aria label */\n 'aria-label': PropTypes.string,\n /** Add custom class */\n className: PropTypes.string,\n /** Change underlying component's CSS base class name */\n cssModule: PropTypes.object,\n /** In order for assistive technologies (such as screen readers) to convey that a series of buttons is grouped, an appropriate role attribute needs to be provided. For button groups, this would be role=\"group\", while toolbars should have a role=\"toolbar\". */\n role: PropTypes.string,\n /** Make the button bigger or smaller */\n size: PropTypes.string,\n /** Set a custom element for this component */\n tag: tagPropType,\n /** Make button group vertical */\n vertical: PropTypes.bool\n};\nfunction ButtonGroup(props) {\n var className = props.className,\n cssModule = props.cssModule,\n size = props.size,\n vertical = props.vertical,\n _props$tag = props.tag,\n Tag = _props$tag === void 0 ? 'div' : _props$tag,\n attributes = _objectWithoutProperties(props, _excluded);\n var classes = mapToCssModules(classNames(className, size ? 'btn-group-' + size : false, vertical ? 'btn-group-vertical' : 'btn-group'), cssModule);\n return /*#__PURE__*/React.createElement(Tag, _extends({}, _objectSpread({\n role: 'group'\n }, attributes), {\n className: classes\n }));\n}\nButtonGroup.propTypes = propTypes;\nexport default ButtonGroup;","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","export default {\n disabled: false\n};","import PropTypes from 'prop-types';\nexport var timeoutsShape = process.env.NODE_ENV !== 'production' ? PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n enter: PropTypes.number,\n exit: PropTypes.number,\n appear: PropTypes.number\n}).isRequired]) : null;\nexport var classNamesShape = process.env.NODE_ENV !== 'production' ? PropTypes.oneOfType([PropTypes.string, PropTypes.shape({\n enter: PropTypes.string,\n exit: PropTypes.string,\n active: PropTypes.string\n}), PropTypes.shape({\n enter: PropTypes.string,\n enterDone: PropTypes.string,\n enterActive: PropTypes.string,\n exit: PropTypes.string,\n exitDone: PropTypes.string,\n exitActive: PropTypes.string\n})]) : null;","import React from 'react';\nexport default React.createContext(null);","export var forceReflow = function forceReflow(node) {\n return node.scrollTop;\n};","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { forceReflow } from './utils/reflow';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 1 },\n * entered: { opacity: 1 },\n * exiting: { opacity: 0 },\n * exited: { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * <Transition in={inProp} timeout={duration}>\n * {state => (\n * <div style={{\n * ...defaultStyle,\n * ...transitionStyles[state]\n * }}>\n * I'm a fade Transition!\n * </div>\n * )}\n * </Transition>\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n * <div>\n * <Transition in={inProp} timeout={500}>\n * {state => (\n * // ...\n * )}\n * </Transition>\n * <button onClick={() => setInProp(true)}>\n * Click to Enter\n * </button>\n * </div>\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n if (this.props.unmountOnExit || this.props.mountOnEnter) {\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this); // https://github.com/reactjs/react-transition-group/pull/749\n // With unmountOnExit or mountOnEnter, the enter animation should happen at the transition between `exited` and `entering`.\n // To make the animation happen, we have to separate each rendering and avoid being processed as batched.\n\n if (node) forceReflow(node);\n }\n\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A React reference to DOM element that need to transition:\n * https://stackoverflow.com/a/51127130/4671932\n *\n * - When `nodeRef` prop is used, `node` is not passed to callback functions\n * (e.g. `onEnter`) because user already has direct access to the node.\n * - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n * `nodeRef` need to be provided to `Transition` with changed `key` prop\n * (see\n * [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n */\n nodeRef: PropTypes.shape({\n current: typeof Element === 'undefined' ? PropTypes.any : function (propValue, key, componentName, location, propFullName, secret) {\n var value = propValue[key];\n return PropTypes.instanceOf(value && 'ownerDocument' in value ? value.ownerDocument.defaultView.Element : Element)(propValue, key, componentName, location, propFullName, secret);\n }\n }),\n\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * <Transition in={this.state.in} timeout={150}>\n * {state => (\n * <MyComponent className={`fade fade-${state}`} />\n * )}\n * </Transition>\n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * By default the child component does not perform the enter transition when\n * it first mounts, regardless of the value of `in`. If you want this\n * behavior, set both `appear` and `in` to `true`.\n *\n * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n * > only adds an additional enter transition. However, in the\n * > `<CSSTransition>` component that first enter transition does result in\n * > additional `.appear-*` classes, that way you can choose to style it\n * > differently.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. Timeouts are still used as a fallback if provided.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func\n} : {}; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nvar _excluded = [\"tag\", \"horizontal\", \"isOpen\", \"className\", \"navbar\", \"cssModule\", \"children\", \"innerRef\"];\nvar _transitionStatusToCl;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { Transition } from 'react-transition-group';\nimport { mapToCssModules, omit, pick, TransitionTimeouts, TransitionPropTypeKeys, TransitionStatuses, tagPropType } from './utils';\nvar propTypes = _objectSpread(_objectSpread({}, Transition.propTypes), {}, {\n /** Make content animation appear horizontally */\n horizontal: PropTypes.bool,\n /** Set if Collapse is open or closed */\n isOpen: PropTypes.bool,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n /** Set a custom element for this component */\n tag: tagPropType,\n /** Add custom class */\n className: PropTypes.node,\n navbar: PropTypes.bool,\n /** Change underlying component's CSS base class name */\n cssModule: PropTypes.object,\n innerRef: PropTypes.shape({\n current: PropTypes.object\n })\n});\nvar defaultProps = _objectSpread(_objectSpread({}, Transition.defaultProps), {}, {\n horizontal: false,\n isOpen: false,\n appear: false,\n enter: true,\n exit: true,\n tag: 'div',\n timeout: TransitionTimeouts.Collapse\n});\nvar transitionStatusToClassHash = (_transitionStatusToCl = {}, _defineProperty(_transitionStatusToCl, TransitionStatuses.ENTERING, 'collapsing'), _defineProperty(_transitionStatusToCl, TransitionStatuses.ENTERED, 'collapse show'), _defineProperty(_transitionStatusToCl, TransitionStatuses.EXITING, 'collapsing'), _defineProperty(_transitionStatusToCl, TransitionStatuses.EXITED, 'collapse'), _transitionStatusToCl);\nfunction getTransitionClass(status) {\n return transitionStatusToClassHash[status] || 'collapse';\n}\nvar Collapse = /*#__PURE__*/function (_Component) {\n _inherits(Collapse, _Component);\n var _super = _createSuper(Collapse);\n function Collapse(props) {\n var _this;\n _classCallCheck(this, Collapse);\n _this = _super.call(this, props);\n _this.state = {\n dimension: null\n };\n _this.nodeRef = props.innerRef || /*#__PURE__*/React.createRef();\n ['onEntering', 'onEntered', 'onExit', 'onExiting', 'onExited'].forEach(function (name) {\n _this[name] = _this[name].bind(_assertThisInitialized(_this));\n });\n return _this;\n }\n _createClass(Collapse, [{\n key: \"onEntering\",\n value: function onEntering(_, isAppearing) {\n var node = this.getNode();\n this.setState({\n dimension: this.getDimension(node)\n });\n this.props.onEntering(node, isAppearing);\n }\n }, {\n key: \"onEntered\",\n value: function onEntered(_, isAppearing) {\n var node = this.getNode();\n this.setState({\n dimension: null\n });\n this.props.onEntered(node, isAppearing);\n }\n }, {\n key: \"onExit\",\n value: function onExit() {\n var node = this.getNode();\n this.setState({\n dimension: this.getDimension(node)\n });\n this.props.onExit(node);\n }\n }, {\n key: \"onExiting\",\n value: function onExiting() {\n var node = this.getNode();\n // getting this variable triggers a reflow\n var _unused = this.getDimension(node); // eslint-disable-line no-unused-vars\n this.setState({\n dimension: 0\n });\n this.props.onExiting(node);\n }\n }, {\n key: \"onExited\",\n value: function onExited() {\n var node = this.getNode();\n this.setState({\n dimension: null\n });\n this.props.onExited(node);\n }\n }, {\n key: \"getNode\",\n value: function getNode() {\n return this.nodeRef.current;\n }\n }, {\n key: \"getDimension\",\n value: function getDimension(node) {\n return this.props.horizontal ? node.scrollWidth : node.scrollHeight;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n var _this$props = this.props,\n Tag = _this$props.tag,\n horizontal = _this$props.horizontal,\n isOpen = _this$props.isOpen,\n className = _this$props.className,\n navbar = _this$props.navbar,\n cssModule = _this$props.cssModule,\n children = _this$props.children,\n innerRef = _this$props.innerRef,\n otherProps = _objectWithoutProperties(_this$props, _excluded);\n var dimension = this.state.dimension;\n var transitionProps = pick(otherProps, TransitionPropTypeKeys);\n var childProps = omit(otherProps, TransitionPropTypeKeys);\n return /*#__PURE__*/React.createElement(Transition, _extends({}, transitionProps, {\n \"in\": isOpen,\n nodeRef: this.nodeRef,\n onEntering: this.onEntering,\n onEntered: this.onEntered,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }), function (status) {\n var collapseClass = getTransitionClass(status);\n var classes = mapToCssModules(classNames(className, horizontal && 'collapse-horizontal', collapseClass, navbar && 'navbar-collapse'), cssModule);\n var style = dimension === null ? null : _defineProperty({}, horizontal ? 'width' : 'height', dimension);\n return /*#__PURE__*/React.createElement(Tag, _extends({}, childProps, {\n style: _objectSpread(_objectSpread({}, childProps.style), style),\n className: classes,\n ref: _this2.nodeRef\n }), children);\n });\n }\n }]);\n return Collapse;\n}(Component);\nCollapse.propTypes = propTypes;\nCollapse.defaultProps = defaultProps;\nexport default Collapse;","import classNames from \"classnames\";\nimport { Icon, List } from \"@interopio/components-react\";\n\ninterface BaseSectionHeaderProps extends React.HTMLAttributes<HTMLDivElement> {\n title: string;\n isOpen?: boolean;\n showCollapseIcon?: boolean;\n showFolderIcon?: boolean;\n}\n\nexport const BaseSectionHeader = (props: BaseSectionHeaderProps) => {\n const { className, isOpen, showCollapseIcon, showFolderIcon, title, ...domProps } = props;\n\n return (\n <List.ItemHeader\n className={classNames(\"io-base-section-header\", className)}\n prepend={showFolderIcon && <Icon size=\"16\" variant={isOpen ? \"folder-open\" : \"folder\"} />}\n append={\n showCollapseIcon && (\n <Icon className={classNames(\"collapse-icon\", !isOpen && \"collapsed\")} size=\"10\" variant=\"expand\" />\n )\n }\n tooltip={title}\n {...domProps}\n >\n {title}\n </List.ItemHeader>\n );\n};\n\nexport default BaseSectionHeader;\n","import { useState, useContext, useEffect } from \"react\";\nimport { IOConnectContext } from \"@interopio/react-hooks\";\nimport { IOConnectBrowser } from \"@interopio/browser\";\nimport { Application } from \"../lib/applications-section/types\";\n\nexport const useApplications = (): Application[] => {\n const [applications, setApplications] = useState<Application[]>([]);\n\n const io = useContext(IOConnectContext);\n\n useEffect(() => {\n if (!io) {\n return;\n }\n\n const transformApp = (app: IOConnectBrowser.AppManager.Application): Application => {\n const { name, title, caption, icon, userProperties } = app;\n\n return { id: name, name, title: title ?? name, caption, icon, userProperties };\n };\n\n const unsubscribeOnAppAdded = io.appManager.onAppAdded((app) => {\n // TODO: remove when \"hidden\" is added on top level in io.CB\n if (app.userProperties.hidden || (\"hidden\" in app && app.hidden)) {\n return;\n }\n\n const addedApplication = transformApp(app);\n\n setApplications((prevApplications) => [...prevApplications, addedApplication]);\n });\n\n const unsubscribeOnAppChanged = io.appManager.onAppChanged((app) => {\n const changedApplication = transformApp(app);\n\n setApplications((prevApplications) => [\n ...prevApplications.filter((application) => application.id !== changedApplication.id),\n changedApplication,\n ]);\n });\n\n const unsubscribeOnAppRemoved = io.appManager.onAppRemoved((app) => {\n const removedApplication = transformApp(app);\n\n setApplications((prevApplications) =>\n prevApplications.filter((application) => application.id !== removedApplication.id)\n );\n });\n\n const unsubscribeFns = [unsubscribeOnAppAdded, unsubscribeOnAppRemoved, unsubscribeOnAppChanged];\n\n return () => unsubscribeFns.forEach((unsubscribeFn) => unsubscribeFn());\n }, [io]);\n\n return applications;\n};\n","import { useState, useContext, useEffect } from \"react\";\nimport { IOConnectContext } from \"@interopio/react-hooks\";\n\nexport const useApplicationsInstances = () => {\n const [runningInstances, setRunningInstances] = useState<{\n [appName: string]: string[];\n }>({});\n\n const io = useContext(IOConnectContext);\n\n useEffect(() => {\n if (!io) {\n return;\n }\n\n const unsubscribeOnInstanceStarted = io.appManager.onInstanceStarted((startedInstance) => {\n setRunningInstances((prevRunningInstances) => {\n const appCurrentRunningInstances = prevRunningInstances[startedInstance.application.name] ?? [];\n\n return {\n ...prevRunningInstances,\n [startedInstance.application.name]: [...appCurrentRunningInstances, startedInstance.id],\n };\n });\n });\n\n const unsubscribeOnInstanceStopped = io.appManager.onInstanceStopped((stoppedInstance) => {\n setRunningInstances((prevRunningInstances) => ({\n ...prevRunningInstances,\n [stoppedInstance.application.name]: prevRunningInstances[stoppedInstance.application.name].filter(\n (instanceId) => instanceId !== stoppedInstance.id\n ),\n }));\n });\n\n const unsubscribeFns = [unsubscribeOnInstanceStarted, unsubscribeOnInstanceStopped];\n\n return () => unsubscribeFns.forEach((unsubscribeFn) => unsubscribeFn());\n }, [io]);\n\n return runningInstances;\n};\n","import { useEffect } from \"react\";\n\nexport const useBeforeunload = (isDisabled: boolean): void => {\n useEffect(() => {\n if (!(window as any).iobrowser?.platformStarted || isDisabled) {\n return;\n }\n\n const onBeforeunload = (event: BeforeUnloadEvent): void => {\n event.preventDefault();\n\n // legacy browser support\n event.returnValue = true;\n };\n\n window.addEventListener(\"beforeunload\", onBeforeunload);\n\n return () => window.removeEventListener(\"beforeunload\", onBeforeunload);\n }, [isDisabled]);\n};\n","import { useState, useEffect, useContext } from \"react\";\nimport { IOConnectContext } from \"@interopio/react-hooks\";\nimport { getFrameId } from \"@interopio/workspaces-ui-react\";\n\nexport const useFrameId = (): string | undefined => {\n const [currentFrameId, setCurrentFrameId] = useState<string | undefined>();\n\n const io = useContext(IOConnectContext);\n\n useEffect(() => {\n try {\n // the result of io.windows.my() if called from inside a frame is undefined in io.CD and an empty object in io.CB, hence the following check\n const isInFrame = !io.windows.my()?.name;\n const frameId = isInFrame ? getFrameId() : undefined;\n\n setCurrentFrameId(frameId);\n } catch (error) {\n console.error(\"Failed to get the current frame ID \", { error });\n }\n }, [io, getFrameId, setCurrentFrameId]);\n\n return currentFrameId;\n};\n","export const HOME_ALERT_VARIANTS = {\n SUCCESS: \"success\",\n WARNING: \"warning\",\n} as const;\n\nexport const HOME_ALERT_TTL = {\n success: 5 * 1000,\n warning: 10 * 1000,\n} as const;\n","import { IOConnectBrowser } from \"@interopio/browser\";\nimport { IOConnectDesktop } from \"@interopio/desktop\";\nimport { HOME_ALERT_TTL, HOME_ALERT_VARIANTS } from \"../constants/alerts\";\nimport { HomeAlertVariant } from \"../common/types\";\nimport { extractErrorMessage } from \"../common/utils\";\n\nexport const requestAlert = async (config: {\n io: IOConnectBrowser.API | IOConnectDesktop.API;\n variant: HomeAlertVariant;\n text: string;\n error?: any;\n}): Promise<void> => {\n const { io, variant, text, error: ioError } = config;\n const ioErrorMessage = extractErrorMessage(ioError);\n\n try {\n if (variant === HOME_ALERT_VARIANTS.WARNING) {\n io.logger.warn(ioErrorMessage ? `${text} ${ioErrorMessage}` : text);\n }\n\n if (!(\"modals\" in io && io.modals)) {\n throw new Error(\"Modals are not enabled.\");\n }\n\n const alertConfig = {\n text,\n variant,\n ttl: HOME_ALERT_TTL[variant],\n };\n\n await io.modals.alerts.request(alertConfig);\n } catch (error) {\n io.logger.warn(`Failed to request alert. ${extractErrorMessage(error)}`);\n }\n};\n","import { IOConnectWorkspaces } from \"@interopio/workspaces-api\";\nimport { ApplicationActionExecutor } from \"./types\";\nimport { APPLICATION_ACTION_NAMES as CONTEXT_MENU_ACTION_NAMES } from \"../lib/context-menu/constants\";\nimport { HOME_ALERT_VARIANTS } from \"../constants/alerts\";\nimport { requestAlert } from \"../helpers/alerts\";\n\nconst handleOpenInNewWindow: ApplicationActionExecutor = async (config) => {\n const { io, item } = config;\n\n try {\n await io.appManager.application(item.id)?.start();\n } catch (error) {\n await requestAlert({\n io,\n variant: HOME_ALERT_VARIANTS.WARNING,\n text: `Failed to start app \"${item.title}\" in a new window.`,\n error,\n });\n }\n};\n\nconst handleOpenInNewWorkspace: ApplicationActionExecutor = async (config) => {\n const { io, item, frameId } = config;\n\n if (!io.workspaces) {\n return;\n }\n\n const builderConfig: IOConnectWorkspaces.BuilderConfig = {\n type: \"workspace\",\n definition: {\n frame: frameId ? { reuseFrameId: frameId } : { newFrame: true },\n },\n };\n\n const builder = io.workspaces.getBuilder(builderConfig) as IOConnectWorkspaces.WorkspaceBuilder;\n\n builder.addGroup().addWindow({ appName: item.id });\n\n try {\n await builder.create();\n } catch (error) {\n await requestAlert({\n io,\n variant: HOME_ALERT_VARIANTS.WARNING,\n text: `Failed to start app \"${item.title}\" in a new Workspace.`,\n error,\n });\n }\n};\n\nexport const applicationActionExecutors: {\n [key: string]: ApplicationActionExecutor;\n} = {\n [CONTEXT_MENU_ACTION_NAMES.OPEN_IN_NEW_WINDOW]: handleOpenInNewWindow,\n [CONTEXT_MENU_ACTION_NAMES.OPEN_IN_NEW_WORKSPACE]: handleOpenInNewWorkspace,\n} as const;\n","import { useContext } from \"react\";\nimport { IOConnectContext } from \"@interopio/react-hooks\";\nimport { useFrameId } from \"./useFrameId\";\nimport { applicationActionExecutors } from \"../executors/applicationActions\";\nimport { SectionItemType } from \"../lib/section/types\";\n\nexport const useExecuteApplicationAction = () => {\n const io = useContext(IOConnectContext);\n const frameId = useFrameId();\n\n return (item: SectionItemType, actionName: string) => {\n applicationActionExecutors[actionName]({ io, item, frameId });\n };\n};\n","export const DIALOG_TEMPLATE_NAMES = {\n NO_INPUTS_CONFIRMATION_DIALOG: \"noInputsConfirmationDialog\",\n SINGLE_CHECKBOX_DIALOG: \"singleCheckboxDialog\",\n SINGLE_TEXT_INPUT_DIALOG: \"singleTextInputDialog\",\n};\n","export const NON_EMPTY_STRING_REGEX_PATTERN = '(.|\\\\s)*\\\\S(.|\\\\s)*';\n","import { LayoutActionExecutor } from \"./types\";\nimport { DIALOG_TEMPLATE_NAMES } from \"../constants/dialogs\";\nimport { NON_EMPTY_STRING_REGEX_PATTERN } from \"../constants/regex\";\nimport { HOME_ALERT_VARIANTS } from \"../constants/alerts\";\nimport { requestAlert } from \"../helpers/alerts\";\n\nconst handleDelete: LayoutActionExecutor = async (config) => {\n const { io, layout, showDeletePromptPref, updateShowDeletePromptPref } = config;\n\n if (\"modals\" in io && io.modals && showDeletePromptPref) {\n const confirmButtonId = \"delete\";\n const checkboxId = \"do-not-ask-again\";\n\n const { isEnterPressed, responseButtonClicked, inputs } = await io.modals.dialogs.request({\n templateName: DIALOG_TEMPLATE_NAMES.SINGLE_CHECKBOX_DIALOG,\n variables: {\n heading: `Delete Layout \"${layout.name}\"`,\n text: \"Are you sure you want to delete this Layout?\",\n checkbox: {\n id: checkboxId,\n label: \"Don't ask me again\",\n },\n actionButtons: [\n { variant: \"critical\", text: \"Delete\", id: confirmButtonId },\n { variant: \"outline\", text: \"Cancel\", id: \"cancel\", autofocus: true },\n ],\n },\n });\n\n const doNotAskAgain = inputs?.find((input) => input.id === checkboxId)?.checked;\n\n if (doNotAskAgain) {\n updateShowDeletePromptPref(false);\n }\n\n const isDeletionConfirmed = isEnterPressed || responseButtonClicked?.id === confirmButtonId;\n\n if (!isDeletionConfirmed) {\n return;\n }\n }\n\n try {\n await io.layouts.remove(\"Global\", layout.name);\n\n if (layout.isDefault) {\n await io.layouts.clearDefaultGlobal();\n }\n\n await requestAlert({\n io,\n variant: HOME_ALERT_VARIANTS.SUCCESS,\n text: `Layout \"${layout.name}\" was successfully deleted.`,\n });\n } catch (error) {\n await requestAlert({\n io,\n variant: HOME_ALERT_VARIANTS.WARNING,\n text: `Failed to delete Layout \"${layout.name}\".`,\n error,\n });\n }\n};\n\nconst handleRename: LayoutActionExecutor = async (config) => {\n const { io, layout, setDefaultLayout } = config;\n\n if (!(\"modals\" in io && io.modals)) {\n console.error(\"Cannot rename Layout because io dialogs are not enabled\");\n return;\n }\n\n const confirmButtonId = \"rename\";\n const inputId = \"new-layout-name\";\n\n const { isEnterPressed, responseButtonClicked, inputs } = await io.modals.dialogs.request({\n templateName: DIALOG_TEMPLATE_NAMES.SINGLE_TEXT_INPUT_DIALOG,\n variables: {\n heading: `Rename \"${layout.name}\"`,\n input: {\n id: inputId,\n initialValue: layout.name,\n validation: {\n disabledButtonIds: [confirmButtonId],\n errorMessage: \"Please provide a Layout name\",\n regexPattern: NON_EMPTY_STRING_REGEX_PATTERN,\n },\n },\n actionButtons: [\n { variant: \"primary\", text: \"Rename\", id: confirmButtonId },\n { variant: \"outline\", text: \"Cancel\", id: \"cancel\" },\n ],\n },\n });\n\n const newLayoutName = inputs?.find((input) => input.id === inputId)?.value as string;\n\n const isRenameConfirmed = isEnterPressed || responseButtonClicked?.id === confirmButtonId;\n\n if (!isRenameConfirmed) {\n return;\n }\n\n if (newLayoutName === layout.name) {\n await requestAlert({\n io,\n variant: HOME_ALERT_VARIANTS.WARNING,\n text: `Failed to rename Layout \"${layout.name}\". The new Layout name must be different from the current one.`,\n });\n return;\n }\n\n try {\n const layoutNameExists = (await io.layouts.getAll(\"Global\")).find((layout) => layout.name === newLayoutName);\n\n if (layoutNameExists) {\n await requestAlert({\n io,\n variant: HOME_ALERT_VARIANTS.WARNING,\n text: `Failed to rename Layout \"${layout.name}\" to \"${newLayoutName}\". A Layout with name \"${newLayoutName}\" already exists.`,\n });\n return;\n }\n\n const fullLayout = await io.layouts.get(layout.name, \"Global\");\n\n if (!fullLayout) {\n await requestAlert({\n io,\n variant: HOME_ALERT_VARIANTS.WARNING,\n text: `Failed to rename Layout \"${layout.name}\". The Layout wasn't found.`,\n });\n return;\n }\n\n await io.layouts.rename(fullLayout, newLayoutName);\n\n if (layout.isDefault) {\n await setDefaultLayout({ name: newLayoutName });\n }\n\n await requestAlert({\n io,\n variant: HOME_ALERT_VARIANTS.SUCCESS,\n text: `Layout \"${layout.name}\" was successfully renamed to \"${newLayoutName}\".`,\n });\n } catch (error) {\n await requestAlert({\n io,\n variant: HOME_ALERT_VARIANTS.WARNING,\n text: `Failed to rename Layout \"${layout.name}\".`,\n error,\n });\n }\n};\n\nconst handleSave: LayoutActionExecutor = async (config) => {\n const { io, layout } = config;\n\n try {\n await io.layouts.save({ name: layout.name, type: \"Global\" });\n\n await requestAlert({\n io,\n variant: HOME_ALERT_VARIANTS.SUCCESS,\n text: `Layout \"${layout.name}\" was saved successfully.`,\n });\n } catch (error) {\n await requestAlert({\n io,\n variant: HOME_ALERT_VARIANTS.WARNING,\n text: `Failed to save Layout \"${layout.name}\".`,\n error,\n });\n }\n};\n\nconst handleSaveAs: LayoutActionExecutor = async (config) => {\n const { io, layout, setActiveLayout } = config;\n\n if (!(\"modals\" in io && io.modals)) {\n console.error(\"Cannot save Layout under a new name because io dialogs are not enabled\");\n return;\n }\n\n const confirmButtonId = \"save-as\";\n const inputId = \"layout-name\";\n\n const { isEnterPressed, responseButtonClicked, inputs } = await io.modals.dialogs.request({\n templateName: DIALOG_TEMPLATE_NAMES.SINGLE_TEXT_INPUT_DIALOG,\n variables: {\n heading: `Save Layout \"${layout.name}\" as`,\n input: {\n id: inputId,\n initialValue: layout.name,\n validation: {\n disabledButtonIds: [confirmButtonId],\n errorMessage: \"Please provide a Layout name\",\n regexPattern: NON_EMPTY_STRING_REGEX_PATTERN,\n },\n },\n actionButtons: [\n { variant: \"primary\", text: \"Save as\", id: confirmButtonId },\n { variant: \"outline\", text: \"Cancel\", id: \"cancel\" },\n ],\n },\n });\n\n const newLayoutName = inputs?.find((input) => input.id === inputId)?.value as string;\n\n const isSaveAsConfirmed = isEnterPressed || responseButtonClicked?.id === confirmButtonId;\n\n if (!isSaveAsConfirmed) {\n return;\n }\n\n if (newLayoutName === layout.name) {\n await requestAlert({\n io,\n variant: HOME_ALERT_VARIANTS.WARNING,\n text: `Failed to save Layout as \"${newLayoutName}\". The new Layout must have a unique name.`,\n });\n return;\n }\n\n try {\n const layoutNameExists = (await io.layouts.getAll(\"Global\")).find((layout) => layout.name === newLayoutName);\n\n if (layoutNameExists) {\n await requestAlert({\n io,\n variant: HOME_ALERT_VARIANTS.WARNING,\n text: `Failed to save Layout as \"${newLayoutName}\". A Layout with this name already exists.`,\n });\n return;\n }\n\n const fullLayout = await io.layouts.get(layout.name, \"Global\");\n\n if (!fullLayout) {\n await requestAlert({\n io,\n variant: HOME_ALERT_VARIANTS.WARNING,\n text: `Failed to save Layout \"${layout.name}\". The Layout wasn't found.`,\n });\n return;\n }\n\n await io.layouts.import([{ ...fullLayout, name: newLayoutName }], \"merge\");\n\n if (layout.isActive) {\n setActiveLayout({ name: newLayoutName });\n }\n\n await requestAlert({\n io,\n variant: HOME_ALERT_VARIANTS.SUCCESS,\n text: `The Layout was successfully saved as \"${newLayoutName}\".`,\n });\n } catch (error) {\n await requestAlert({\n io,\n variant: HOME_ALERT_VARIANTS.WARNING,\n text: `Failed to save Layout \"${newLayoutName}\".`,\n error,\n });\n }\n};\n\nconst handleSetAsDefault: LayoutActionExecutor = async (config) => {\n const { io, layout, setDefaultLayout } = config;\n\n try {\n await setDefaultLayout({ name: layout.name });\n\n await requestAlert({\n io,\n variant: HOME_ALERT_VARIANTS.SUCCESS,\n text: `Layout \"${layout.name}\" was successfully set as the default Layout.`,\n });\n } catch (error) {\n await requestAlert({\n io,\n variant: HOME_ALERT_VARIANTS.WARNING,\n text: `Failed to set Layout \"${layout.name}\" as the default Layout.`,\n });\n }\n};\n\nconst handleRestore: LayoutActionExecutor = async (config) => {\n const { io, layout, closeLaunchpad } = config;\n\n try {\n await io.layouts.restore({ name: layout.name });\n closeLaunchpad();\n\n await requestAlert({\n io,\n variant: HOME_ALERT_VARIANTS.SUCCESS,\n text: `Layout \"${layout.name}\" was loaded successfully.`,\n });\n } catch (error) {\n await requestAlert({\n io,\n variant: HOME_ALERT_VARIANTS.WARNING,\n text: `Failed to load Layout \"${layout.name}\".`,\n error,\n });\n }\n};\n\nexport const layoutActionExecutors: {\n [key: string]: LayoutActionExecutor;\n} = {\n delete: handleDelete,\n rename: handleRename,\n save: handleSave,\n saveAs: handleSaveAs,\n setAsDefault: handleSetAsDefault,\n load: handleRestore,\n} as const;\n","export const AUTH0_VALIDATION_ERROR_SESSION_STORAGE_KEY = \"interopio_home_ui_auth0_validation_error\";\nexport const USER_LOCAL_STORAGE_KEY = \"interopio_home_ui_user\";\nexport const PLATFORM_WINDOW_SESSION_STORAGE_KEY = \"interopio_home_ui_platform_window\";\nexport const PLATFORM_SETUP_LOCAL_STORAGE_KEY = \"interopio_home_ui_platform_setup\";\nexport const ACTIVE_LAYOUT_SESSION_STORAGE_KEY = \"interopio_home_ui_active_layout\";\n","/**\r\n * Wraps values in an `Ok` type.\r\n *\r\n * Example: `ok(5) // => {ok: true, result: 5}`\r\n */\r\nvar ok = function (result) { return ({ ok: true, result: result }); };\r\n/**\r\n * Typeguard for `Ok`.\r\n */\r\nvar isOk = function (r) { return r.ok === true; };\r\n/**\r\n * Wraps errors in an `Err` type.\r\n *\r\n * Example: `err('on fire') // => {ok: false, error: 'on fire'}`\r\n */\r\nvar err = function (error) { return ({ ok: false, error: error }); };\r\n/**\r\n * Typeguard for `Err`.\r\n */\r\nvar isErr = function (r) { return r.ok === false; };\r\n/**\r\n * Create a `Promise` that either resolves with the result of `Ok` or rejects\r\n * with the error of `Err`.\r\n */\r\nvar asPromise = function (r) {\r\n return r.ok === true ? Promise.resolve(r.result) : Promise.reject(r.error);\r\n};\r\n/**\r\n * Unwraps a `Result` and returns either the result of an `Ok`, or\r\n * `defaultValue`.\r\n *\r\n * Example:\r\n * ```\r\n * Result.withDefault(5, number().run(json))\r\n * ```\r\n *\r\n * It would be nice if `Decoder` had an instance method that mirrored this\r\n * function. Such a method would look something like this:\r\n * ```\r\n * class Decoder<A> {\r\n * runWithDefault = (defaultValue: A, json: any): A =>\r\n * Result.withDefault(defaultValue, this.run(json));\r\n * }\r\n *\r\n * number().runWithDefault(5, json)\r\n * ```\r\n * Unfortunately, the type of `defaultValue: A` on the method causes issues\r\n * with type inference on the `object` decoder in some situations. While these\r\n * inference issues can be solved by providing the optional type argument for\r\n * `object`s, the extra trouble and confusion doesn't seem worth it.\r\n */\r\nvar withDefault = function (defaultValue, r) {\r\n return r.ok === true ? r.result : defaultValue;\r\n};\r\n/**\r\n * Return the successful result, or throw an error.\r\n */\r\nvar withException = function (r) {\r\n if (r.ok === true) {\r\n return r.result;\r\n }\r\n else {\r\n throw r.error;\r\n }\r\n};\r\n/**\r\n * Given an array of `Result`s, return the successful values.\r\n */\r\nvar successes = function (results) {\r\n return results.reduce(function (acc, r) { return (r.ok === true ? acc.concat(r.result) : acc); }, []);\r\n};\r\n/**\r\n * Apply `f` to the result of an `Ok`, or pass the error through.\r\n */\r\nvar map = function (f, r) {\r\n return r.ok === true ? ok(f(r.result)) : r;\r\n};\r\n/**\r\n * Apply `f` to the result of two `Ok`s, or pass an error through. If both\r\n * `Result`s are errors then the first one is returned.\r\n */\r\nvar map2 = function (f, ar, br) {\r\n return ar.ok === false ? ar :\r\n br.ok === false ? br :\r\n ok(f(ar.result, br.result));\r\n};\r\n/**\r\n * Apply `f` to the error of an `Err`, or pass the success through.\r\n */\r\nvar mapError = function (f, r) {\r\n return r.ok === true ? r : err(f(r.error));\r\n};\r\n/**\r\n * Chain together a sequence of computations that may fail, similar to a\r\n * `Promise`. If the first computation fails then the error will propagate\r\n * through. If it succeeds, then `f` will be applied to the value, returning a\r\n * new `Result`.\r\n */\r\nvar andThen = function (f, r) {\r\n return r.ok === true ? f(r.result) : r;\r\n};\r\n\r\n\r\nvar result = Object.freeze({\r\n\tok: ok,\r\n\tisOk: isOk,\r\n\terr: err,\r\n\tisErr: isErr,\r\n\tasPromise: asPromise,\r\n\twithDefault: withDefault,\r\n\twithException: withException,\r\n\tsuccesses: successes,\r\n\tmap: map,\r\n\tmap2: map2,\r\n\tmapError: mapError,\r\n\tandThen: andThen\r\n});\r\n\r\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\n\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nfunction isEqual(a, b) {\r\n if (a === b) {\r\n return true;\r\n }\r\n if (a === null && b === null) {\r\n return true;\r\n }\r\n if (typeof (a) !== typeof (b)) {\r\n return false;\r\n }\r\n if (typeof (a) === 'object') {\r\n // Array\r\n if (Array.isArray(a)) {\r\n if (!Array.isArray(b)) {\r\n return false;\r\n }\r\n if (a.length !== b.length) {\r\n return false;\r\n }\r\n for (var i = 0; i < a.length; i++) {\r\n if (!isEqual(a[i], b[i])) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n // Hash table\r\n var keys = Object.keys(a);\r\n if (keys.length !== Object.keys(b).length) {\r\n return false;\r\n }\r\n for (var i = 0; i < keys.length; i++) {\r\n if (!b.hasOwnProperty(keys[i])) {\r\n return false;\r\n }\r\n if (!isEqual(a[keys[i]], b[keys[i]])) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n}\r\n/**\r\n * Type guard for `DecoderError`. One use case of the type guard is in the\r\n * `catch` of a promise. Typescript types the error argument of `catch` as\r\n * `any`, so when dealing with a decoder as a promise you may need to\r\n * distinguish between a `DecoderError` and an error string.\r\n */\r\nvar isDecoderError = function (a) {\r\n return a.kind === 'DecoderError' && typeof a.at === 'string' && typeof a.message === 'string';\r\n};\r\n/*\r\n * Helpers\r\n */\r\nvar isJsonArray = function (json) { return Array.isArray(json); };\r\nvar isJsonObject = function (json) {\r\n return typeof json === 'object' && json !== null && !isJsonArray(json);\r\n};\r\nvar typeString = function (json) {\r\n switch (typeof json) {\r\n case 'string':\r\n return 'a string';\r\n case 'number':\r\n return 'a number';\r\n case 'boolean':\r\n return 'a boolean';\r\n case 'undefined':\r\n return 'undefined';\r\n case 'object':\r\n if (json instanceof Array) {\r\n return 'an array';\r\n }\r\n else if (json === null) {\r\n return 'null';\r\n }\r\n else {\r\n return 'an object';\r\n }\r\n default:\r\n return JSON.stringify(json);\r\n }\r\n};\r\nvar expectedGot = function (expected, got) {\r\n return \"expected \" + expected + \", got \" + typeString(got);\r\n};\r\nvar printPath = function (paths) {\r\n return paths.map(function (path) { return (typeof path === 'string' ? \".\" + path : \"[\" + path + \"]\"); }).join('');\r\n};\r\nvar prependAt = function (newAt, _a) {\r\n var at = _a.at, rest = __rest(_a, [\"at\"]);\r\n return (__assign({ at: newAt + (at || '') }, rest));\r\n};\r\n/**\r\n * Decoders transform json objects with unknown structure into known and\r\n * verified forms. You can create objects of type `Decoder<A>` with either the\r\n * primitive decoder functions, such as `boolean()` and `string()`, or by\r\n * applying higher-order decoders to the primitives, such as `array(boolean())`\r\n * or `dict(string())`.\r\n *\r\n * Each of the decoder functions are available both as a static method on\r\n * `Decoder` and as a function alias -- for example the string decoder is\r\n * defined at `Decoder.string()`, but is also aliased to `string()`. Using the\r\n * function aliases exported with the library is recommended.\r\n *\r\n * `Decoder` exposes a number of 'run' methods, which all decode json in the\r\n * same way, but communicate success and failure in different ways. The `map`\r\n * and `andThen` methods modify decoders without having to call a 'run' method.\r\n *\r\n * Alternatively, the main decoder `run()` method returns an object of type\r\n * `Result<A, DecoderError>`. This library provides a number of helper\r\n * functions for dealing with the `Result` type, so you can do all the same\r\n * things with a `Result` as with the decoder methods.\r\n */\r\nvar Decoder = /** @class */ (function () {\r\n /**\r\n * The Decoder class constructor is kept private to separate the internal\r\n * `decode` function from the external `run` function. The distinction\r\n * between the two functions is that `decode` returns a\r\n * `Partial<DecoderError>` on failure, which contains an unfinished error\r\n * report. When `run` is called on a decoder, the relevant series of `decode`\r\n * calls is made, and then on failure the resulting `Partial<DecoderError>`\r\n * is turned into a `DecoderError` by filling in the missing information.\r\n *\r\n * While hiding the constructor may seem restrictive, leveraging the\r\n * provided decoder combinators and helper functions such as\r\n * `andThen` and `map` should be enough to build specialized decoders as\r\n * needed.\r\n */\r\n function Decoder(decode) {\r\n var _this = this;\r\n this.decode = decode;\r\n /**\r\n * Run the decoder and return a `Result` with either the decoded value or a\r\n * `DecoderError` containing the json input, the location of the error, and\r\n * the error message.\r\n *\r\n * Examples:\r\n * ```\r\n * number().run(12)\r\n * // => {ok: true, result: 12}\r\n *\r\n * string().run(9001)\r\n * // =>\r\n * // {\r\n * // ok: false,\r\n * // error: {\r\n * // kind: 'DecoderError',\r\n * // input: 9001,\r\n * // at: 'input',\r\n * // message: 'expected a string, got 9001'\r\n * // }\r\n * // }\r\n * ```\r\n */\r\n this.run = function (json) {\r\n return mapError(function (error) { return ({\r\n kind: 'DecoderError',\r\n input: json,\r\n at: 'input' + (error.at || ''),\r\n message: error.message || ''\r\n }); }, _this.decode(json));\r\n };\r\n /**\r\n * Run the decoder as a `Promise`.\r\n */\r\n this.runPromise = function (json) { return asPromise(_this.run(json)); };\r\n /**\r\n * Run the decoder and return the value on success, or throw an exception\r\n * with a formatted error string.\r\n */\r\n this.runWithException = function (json) { return withException(_this.run(json)); };\r\n /**\r\n * Construct a new decoder that applies a transformation to the decoded\r\n * result. If the decoder succeeds then `f` will be applied to the value. If\r\n * it fails the error will propagated through.\r\n *\r\n * Example:\r\n * ```\r\n * number().map(x => x * 5).run(10)\r\n * // => {ok: true, result: 50}\r\n * ```\r\n */\r\n this.map = function (f) {\r\n return new Decoder(function (json) { return map(f, _this.decode(json)); });\r\n };\r\n /**\r\n * Chain together a sequence of decoders. The first decoder will run, and\r\n * then the function will determine what decoder to run second. If the result\r\n * of the first decoder succeeds then `f` will be applied to the decoded\r\n * value. If it fails the error will propagate through.\r\n *\r\n * This is a very powerful method -- it can act as both the `map` and `where`\r\n * methods, can improve error messages for edge cases, and can be used to\r\n * make a decoder for custom types.\r\n *\r\n * Example of adding an error message:\r\n * ```\r\n * const versionDecoder = valueAt(['version'], number());\r\n * const infoDecoder3 = object({a: boolean()});\r\n *\r\n * const decoder = versionDecoder.andThen(version => {\r\n * switch (version) {\r\n * case 3:\r\n * return infoDecoder3;\r\n * default:\r\n * return fail(`Unable to decode info, version ${version} is not supported.`);\r\n * }\r\n * });\r\n *\r\n * decoder.run({version: 3, a: true})\r\n * // => {ok: true, result: {a: true}}\r\n *\r\n * decoder.run({version: 5, x: 'abc'})\r\n * // =>\r\n * // {\r\n * // ok: false,\r\n * // error: {... message: 'Unable to decode info, version 5 is not supported.'}\r\n * // }\r\n * ```\r\n *\r\n * Example of decoding a custom type:\r\n * ```\r\n * // nominal type for arrays with a length of at least one\r\n * type NonEmptyArray<T> = T[] & { __nonEmptyArrayBrand__: void };\r\n *\r\n * const nonEmptyArrayDecoder = <T>(values: Decoder<T>): Decoder<NonEmptyArray<T>> =>\r\n * array(values).andThen(arr =>\r\n * arr.length > 0\r\n * ? succeed(createNonEmptyArray(arr))\r\n * : fail(`expected a non-empty array, got an empty array`)\r\n * );\r\n * ```\r\n */\r\n this.andThen = function (f) {\r\n return new Decoder(function (json) {\r\n return andThen(function (value) { return f(value).decode(json); }, _this.decode(json));\r\n });\r\n };\r\n /**\r\n * Add constraints to a decoder _without_ changing the resulting type. The\r\n * `test` argument is a predicate function which returns true for valid\r\n * inputs. When `test` fails on an input, the decoder fails with the given\r\n * `errorMessage`.\r\n *\r\n * ```\r\n * const chars = (length: number): Decoder<string> =>\r\n * string().where(\r\n * (s: string) => s.length === length,\r\n * `expected a string of length ${length}`\r\n * );\r\n *\r\n * chars(5).run('12345')\r\n * // => {ok: true, result: '12345'}\r\n *\r\n * chars(2).run('HELLO')\r\n * // => {ok: false, error: {... message: 'expected a string of length 2'}}\r\n *\r\n * chars(12).run(true)\r\n * // => {ok: false, error: {... message: 'expected a string, got a boolean'}}\r\n * ```\r\n */\r\n this.where = function (test, errorMessage) {\r\n return _this.andThen(function (value) { return (test(value) ? Decoder.succeed(value) : Decoder.fail(errorMessage)); });\r\n };\r\n }\r\n /**\r\n * Decoder primitive that validates strings, and fails on all other input.\r\n */\r\n Decoder.string = function () {\r\n return new Decoder(function (json) {\r\n return typeof json === 'string'\r\n ? ok(json)\r\n : err({ message: expectedGot('a string', json) });\r\n });\r\n };\r\n /**\r\n * Decoder primitive that validates numbers, and fails on all other input.\r\n */\r\n Decoder.number = function () {\r\n return new Decoder(function (json) {\r\n return typeof json === 'number'\r\n ? ok(json)\r\n : err({ message: expectedGot('a number', json) });\r\n });\r\n };\r\n /**\r\n * Decoder primitive that validates booleans, and fails on all other input.\r\n */\r\n Decoder.boolean = function () {\r\n return new Decoder(function (json) {\r\n return typeof json === 'boolean'\r\n ? ok(json)\r\n : err({ message: expectedGot('a boolean', json) });\r\n });\r\n };\r\n Decoder.constant = function (value) {\r\n return new Decoder(function (json) {\r\n return isEqual(json, value)\r\n ? ok(value)\r\n : err({ message: \"expected \" + JSON.stringify(value) + \", got \" + JSON.stringify(json) });\r\n });\r\n };\r\n Decoder.object = function (decoders) {\r\n return new Decoder(function (json) {\r\n if (isJsonObject(json) && decoders) {\r\n var obj = {};\r\n for (var key in decoders) {\r\n if (decoders.hasOwnProperty(key)) {\r\n var r = decoders[key].decode(json[key]);\r\n if (r.ok === true) {\r\n // tslint:disable-next-line:strict-type-predicates\r\n if (r.result !== undefined) {\r\n obj[key] = r.result;\r\n }\r\n }\r\n else if (json[key] === undefined) {\r\n return err({ message: \"the key '\" + key + \"' is required but was not present\" });\r\n }\r\n else {\r\n return err(prependAt(\".\" + key, r.error));\r\n }\r\n }\r\n }\r\n return ok(obj);\r\n }\r\n else if (isJsonObject(json)) {\r\n return ok(json);\r\n }\r\n else {\r\n return err({ message: expectedGot('an object', json) });\r\n }\r\n });\r\n };\r\n Decoder.array = function (decoder) {\r\n return new Decoder(function (json) {\r\n if (isJsonArray(json) && decoder) {\r\n var decodeValue_1 = function (v, i) {\r\n return mapError(function (err$$1) { return prependAt(\"[\" + i + \"]\", err$$1); }, decoder.decode(v));\r\n };\r\n return json.reduce(function (acc, v, i) {\r\n return map2(function (arr, result) { return arr.concat([result]); }, acc, decodeValue_1(v, i));\r\n }, ok([]));\r\n }\r\n else if (isJsonArray(json)) {\r\n return ok(json);\r\n }\r\n else {\r\n return err({ message: expectedGot('an array', json) });\r\n }\r\n });\r\n };\r\n Decoder.tuple = function (decoders) {\r\n return new Decoder(function (json) {\r\n if (isJsonArray(json)) {\r\n if (json.length !== decoders.length) {\r\n return err({\r\n message: \"expected a tuple of length \" + decoders.length + \", got one of length \" + json.length\r\n });\r\n }\r\n var result = [];\r\n for (var i = 0; i < decoders.length; i++) {\r\n var nth = decoders[i].decode(json[i]);\r\n if (nth.ok) {\r\n result[i] = nth.result;\r\n }\r\n else {\r\n return err(prependAt(\"[\" + i + \"]\", nth.error));\r\n }\r\n }\r\n return ok(result);\r\n }\r\n else {\r\n return err({ message: expectedGot(\"a tuple of length \" + decoders.length, json) });\r\n }\r\n });\r\n };\r\n Decoder.union = function (ad, bd) {\r\n var decoders = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n decoders[_i - 2] = arguments[_i];\r\n }\r\n return Decoder.oneOf.apply(Decoder, [ad, bd].concat(decoders));\r\n };\r\n Decoder.intersection = function (ad, bd) {\r\n var ds = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n ds[_i - 2] = arguments[_i];\r\n }\r\n return new Decoder(function (json) {\r\n return [ad, bd].concat(ds).reduce(function (acc, decoder) { return map2(Object.assign, acc, decoder.decode(json)); }, ok({}));\r\n });\r\n };\r\n /**\r\n * Escape hatch to bypass validation. Always succeeds and types the result as\r\n * `any`. Useful for defining decoders incrementally, particularly for\r\n * complex objects.\r\n *\r\n * Example:\r\n * ```\r\n * interface User {\r\n * name: string;\r\n * complexUserData: ComplexType;\r\n * }\r\n *\r\n * const userDecoder: Decoder<User> = object({\r\n * name: string(),\r\n * complexUserData: anyJson()\r\n * });\r\n * ```\r\n */\r\n Decoder.anyJson = function () { return new Decoder(function (json) { return ok(json); }); };\r\n /**\r\n * Decoder identity function which always succeeds and types the result as\r\n * `unknown`.\r\n */\r\n Decoder.unknownJson = function () {\r\n return new Decoder(function (json) { return ok(json); });\r\n };\r\n /**\r\n * Decoder for json objects where the keys are unknown strings, but the values\r\n * should all be of the same type.\r\n *\r\n * Example:\r\n * ```\r\n * dict(number()).run({chocolate: 12, vanilla: 10, mint: 37});\r\n * // => {ok: true, result: {chocolate: 12, vanilla: 10, mint: 37}}\r\n * ```\r\n */\r\n Decoder.dict = function (decoder) {\r\n return new Decoder(function (json) {\r\n if (isJsonObject(json)) {\r\n var obj = {};\r\n for (var key in json) {\r\n if (json.hasOwnProperty(key)) {\r\n var r = decoder.decode(json[key]);\r\n if (r.ok === true) {\r\n obj[key] = r.result;\r\n }\r\n else {\r\n return err(prependAt(\".\" + key, r.error));\r\n }\r\n }\r\n }\r\n return ok(obj);\r\n }\r\n else {\r\n return err({ message: expectedGot('an object', json) });\r\n }\r\n });\r\n };\r\n /**\r\n * Decoder for values that may be `undefined`. This is primarily helpful for\r\n * decoding interfaces with optional fields.\r\n *\r\n * Example:\r\n * ```\r\n * interface User {\r\n * id: number;\r\n * isOwner?: boolean;\r\n * }\r\n *\r\n * const decoder: Decoder<User> = object({\r\n * id: number(),\r\n * isOwner: optional(boolean())\r\n * });\r\n * ```\r\n */\r\n Decoder.optional = function (decoder) {\r\n return new Decoder(function (json) { return (json === undefined || json === null ? ok(undefined) : decoder.decode(json)); });\r\n };\r\n /**\r\n * Decoder that attempts to run each decoder in `decoders` and either succeeds\r\n * with the first successful decoder, or fails after all decoders have failed.\r\n *\r\n * Note that `oneOf` expects the decoders to all have the same return type,\r\n * while `union` creates a decoder for the union type of all the input\r\n * decoders.\r\n *\r\n * Examples:\r\n * ```\r\n * oneOf(string(), number().map(String))\r\n * oneOf(constant('start'), constant('stop'), succeed('unknown'))\r\n * ```\r\n */\r\n Decoder.oneOf = function () {\r\n var decoders = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n decoders[_i] = arguments[_i];\r\n }\r\n return new Decoder(function (json) {\r\n var errors = [];\r\n for (var i = 0; i < decoders.length; i++) {\r\n var r = decoders[i].decode(json);\r\n if (r.ok === true) {\r\n return r;\r\n }\r\n else {\r\n errors[i] = r.error;\r\n }\r\n }\r\n var errorsList = errors\r\n .map(function (error) { return \"at error\" + (error.at || '') + \": \" + error.message; })\r\n .join('\", \"');\r\n return err({\r\n message: \"expected a value matching one of the decoders, got the errors [\\\"\" + errorsList + \"\\\"]\"\r\n });\r\n });\r\n };\r\n /**\r\n * Decoder that always succeeds with either the decoded value, or a fallback\r\n * default value.\r\n */\r\n Decoder.withDefault = function (defaultValue, decoder) {\r\n return new Decoder(function (json) {\r\n return ok(withDefault(defaultValue, decoder.decode(json)));\r\n });\r\n };\r\n /**\r\n * Decoder that pulls a specific field out of a json structure, instead of\r\n * decoding and returning the full structure. The `paths` array describes the\r\n * object keys and array indices to traverse, so that values can be pulled out\r\n * of a nested structure.\r\n *\r\n * Example:\r\n * ```\r\n * const decoder = valueAt(['a', 'b', 0], string());\r\n *\r\n * decoder.run({a: {b: ['surprise!']}})\r\n * // => {ok: true, result: 'surprise!'}\r\n *\r\n * decoder.run({a: {x: 'cats'}})\r\n * // => {ok: false, error: {... at: 'input.a.b[0]' message: 'path does not exist'}}\r\n * ```\r\n *\r\n * Note that the `decoder` is ran on the value found at the last key in the\r\n * path, even if the last key is not found. This allows the `optional`\r\n * decoder to succeed when appropriate.\r\n * ```\r\n * const optionalDecoder = valueAt(['a', 'b', 'c'], optional(string()));\r\n *\r\n * optionalDecoder.run({a: {b: {c: 'surprise!'}}})\r\n * // => {ok: true, result: 'surprise!'}\r\n *\r\n * optionalDecoder.run({a: {b: 'cats'}})\r\n * // => {ok: false, error: {... at: 'input.a.b.c' message: 'expected an object, got \"cats\"'}\r\n *\r\n * optionalDecoder.run({a: {b: {z: 1}}})\r\n * // => {ok: true, result: undefined}\r\n * ```\r\n */\r\n Decoder.valueAt = function (paths, decoder) {\r\n return new Decoder(function (json) {\r\n var jsonAtPath = json;\r\n for (var i = 0; i < paths.length; i++) {\r\n if (jsonAtPath === undefined) {\r\n return err({\r\n at: printPath(paths.slice(0, i + 1)),\r\n message: 'path does not exist'\r\n });\r\n }\r\n else if (typeof paths[i] === 'string' && !isJsonObject(jsonAtPath)) {\r\n return err({\r\n at: printPath(paths.slice(0, i + 1)),\r\n message: expectedGot('an object', jsonAtPath)\r\n });\r\n }\r\n else if (typeof paths[i] === 'number' && !isJsonArray(jsonAtPath)) {\r\n return err({\r\n at: printPath(paths.slice(0, i + 1)),\r\n message: expectedGot('an array', jsonAtPath)\r\n });\r\n }\r\n else {\r\n jsonAtPath = jsonAtPath[paths[i]];\r\n }\r\n }\r\n return mapError(function (error) {\r\n return jsonAtPath === undefined\r\n ? { at: printPath(paths), message: 'path does not exist' }\r\n : prependAt(printPath(paths), error);\r\n }, decoder.decode(jsonAtPath));\r\n });\r\n };\r\n /**\r\n * Decoder that ignores the input json and always succeeds with `fixedValue`.\r\n */\r\n Decoder.succeed = function (fixedValue) {\r\n return new Decoder(function (json) { return ok(fixedValue); });\r\n };\r\n /**\r\n * Decoder that ignores the input json and always fails with `errorMessage`.\r\n */\r\n Decoder.fail = function (errorMessage) {\r\n return new Decoder(function (json) { return err({ message: errorMessage }); });\r\n };\r\n /**\r\n * Decoder that allows for validating recursive data structures. Unlike with\r\n * functions, decoders assigned to variables can't reference themselves\r\n * before they are fully defined. We can avoid prematurely referencing the\r\n * decoder by wrapping it in a function that won't be called until use, at\r\n * which point the decoder has been defined.\r\n *\r\n * Example:\r\n * ```\r\n * interface Comment {\r\n * msg: string;\r\n * replies: Comment[];\r\n * }\r\n *\r\n * const decoder: Decoder<Comment> = object({\r\n * msg: string(),\r\n * replies: lazy(() => array(decoder))\r\n * });\r\n * ```\r\n */\r\n Decoder.lazy = function (mkDecoder) {\r\n return new Decoder(function (json) { return mkDecoder().decode(json); });\r\n };\r\n return Decoder;\r\n}());\r\n\r\n/* tslint:disable:variable-name */\r\n/** See `Decoder.string` */\r\nvar string = Decoder.string;\r\n/** See `Decoder.number` */\r\nvar number = Decoder.number;\r\n/** See `Decoder.boolean` */\r\nvar boolean = Decoder.boolean;\r\n/** See `Decoder.anyJson` */\r\nvar anyJson = Decoder.anyJson;\r\n/** See `Decoder.unknownJson` */\r\nvar unknownJson = Decoder.unknownJson;\r\n/** See `Decoder.constant` */\r\nvar constant = Decoder.constant;\r\n/** See `Decoder.object` */\r\nvar object = Decoder.object;\r\n/** See `Decoder.array` */\r\nvar array = Decoder.array;\r\n/** See `Decoder.tuple` */\r\nvar tuple = Decoder.tuple;\r\n/** See `Decoder.dict` */\r\nvar dict = Decoder.dict;\r\n/** See `Decoder.optional` */\r\nvar optional = Decoder.optional;\r\n/** See `Decoder.oneOf` */\r\nvar oneOf = Decoder.oneOf;\r\n/** See `Decoder.union` */\r\nvar union = Decoder.union;\r\n/** See `Decoder.intersection` */\r\nvar intersection = Decoder.intersection;\r\n/** See `Decoder.withDefault` */\r\nvar withDefault$1 = Decoder.withDefault;\r\n/** See `Decoder.valueAt` */\r\nvar valueAt = Decoder.valueAt;\r\n/** See `Decoder.succeed` */\r\nvar succeed = Decoder.succeed;\r\n/** See `Decoder.fail` */\r\nvar fail = Decoder.fail;\r\n/** See `Decoder.lazy` */\r\nvar lazy = Decoder.lazy;\r\n\r\nexport { result as Result, Decoder, isDecoderError, string, number, boolean, anyJson, unknownJson, constant, object, array, tuple, dict, optional, oneOf, union, intersection, withDefault$1 as withDefault, valueAt, succeed, fail, lazy };\r\n//# sourceMappingURL=index.es5.js.map\r\n","import { Decoder, anyJson, boolean, fail, number, string } from \"decoder-validate\";\n\nexport const nonEmptyStringDecoder: Decoder<string> = string().where((s) => s.length > 0, \"Expected a non-empty string\");\n\nexport const nonNegativeNumberDecoder: Decoder<number> = number().where((num) => num >= 0, \"Expected a non-negative number\");\n\nexport const booleanDecoder: Decoder<boolean> = boolean();\n\nexport const functionCheck = (input: any, propDescription: string): Decoder<any> => {\n const providedType = typeof input;\n\n return providedType === \"function\"\n ? anyJson()\n : fail(`The provided argument as ${propDescription} should be of type function, provided: ${typeof providedType}`);\n};\n","import { Decoder, object } from \"decoder-validate\";\nimport { LayoutSummary } from \"../lib/layouts-panel/types\";\nimport { nonEmptyStringDecoder } from \"./base\";\n\nexport const layoutStorageValueDecoder: Decoder<LayoutSummary | null> = object({\n name: nonEmptyStringDecoder,\n});\n","export const DEFAULT_SYSTEM_LAYOUT = \"Welcome\";\n","import { IOConnectBrowser } from \"@interopio/browser\";\nimport { IOConnectDesktop } from \"@interopio/desktop\";\nimport { IOConnectWorkspaces } from \"@interopio/workspaces-api\";\n\nexport const getGlobalLayoutWorkspaceNames = (\n layout: IOConnectDesktop.Layouts.Layout | IOConnectBrowser.Layouts.Layout,\n): string[] => {\n const workspaceNames = layout.components.reduce((names: string[], component) => {\n if (component.type === \"workspaceFrame\") {\n const currentNames = component.state.workspaces.map(\n (workspace: IOConnectWorkspaces.WorkspaceLayoutComponentState) => workspace.config.name,\n );\n\n names.push(...currentNames);\n }\n\n return names;\n }, []);\n\n return workspaceNames;\n};\n\nexport const checkShouldRenderSearchResults = (searchTerm: string) => searchTerm.trim().length > 0;\n","import { useState, useEffect, createContext, useContext, useCallback, useRef, useMemo } from \"react\";\nimport { IOConnectContext } from \"@interopio/react-hooks\";\nimport { LayoutSummary } from \"../layouts-panel/types\";\nimport { SetDefaultLayout, SetActiveLayout, CloseLaunchpad } from \"../../common/types\";\nimport { useRestoreLayout, useRestoreWorkspace, useStorage } from \"../../hooks\";\nimport { ACTIVE_LAYOUT_SESSION_STORAGE_KEY } from \"../../constants/storageKeys\";\nimport { layoutStorageValueDecoder } from \"../../decoders/layouts\";\nimport { DEFAULT_SYSTEM_LAYOUT } from \"../../constants/defaults\";\nimport { getGlobalLayoutWorkspaceNames } from \"./helpers\";\nimport { extractErrorMessage } from \"../../common/utils\";\n\n/**\n * This hook SHOULD NOT be exported! It should be used ONCE and ONLY in the LaunchpadAPIProvider\n * because it may lead to repeated restoring of layouts!\n */\nconst useSetUpLayouts = (\n setIsLayoutOperationBlocked: React.Dispatch<React.SetStateAction<boolean>>,\n isGlobalLayoutsAvailable: boolean,\n) => {\n const [defaultLayoutState, setDefaultLayoutState] = useState<LayoutSummary | undefined>(undefined);\n const [activeLayout, setActiveLayout] = useStorage<LayoutSummary>(\n \"sessionStorage\",\n ACTIVE_LAYOUT_SESSION_STORAGE_KEY,\n layoutStorageValueDecoder,\n );\n const layoutsSetupInitiated = useRef(false);\n const restoreLayout = useRestoreLayout();\n const restoreWorkspace = useRestoreWorkspace();\n\n const io = useContext(IOConnectContext);\n\n const setDefaultLayout = useCallback(\n async ({ name }: LayoutSummary) => {\n try {\n await io.layouts.setDefaultGlobal(name);\n } catch (error) {\n console.error(\"Failed to set default Layout: \", { error });\n }\n },\n [io],\n );\n\n useEffect(() => {\n if (!io) {\n return;\n }\n\n return io.layouts.onDefaultGlobalChanged((layout) => {\n setDefaultLayoutState(layout);\n });\n }, [io]);\n\n useEffect(() => {\n if (!io) {\n return;\n }\n\n return io.layouts.onRestored((layout) => {\n setActiveLayout({ name: layout.name });\n });\n }, [io]);\n\n useEffect(() => {\n if (!io) {\n return;\n }\n\n return io.layouts.onRemoved((layout) => {\n if (layout?.name !== activeLayout?.name) {\n return;\n }\n\n setActiveLayout(null);\n });\n }, [io, activeLayout]);\n\n useEffect(() => {\n if (!io) {\n return;\n }\n\n return io.layouts.onRenamed((layout, previous) => {\n if (previous?.name !== activeLayout?.name) {\n return;\n }\n\n setActiveLayout({ name: layout.name });\n });\n }, [io, activeLayout]);\n\n useEffect(() => {\n if (!io || !(window as any).iobrowser?.platformStarted || layoutsSetupInitiated.current) {\n return;\n }\n\n const setUpLayouts = async () => {\n layoutsSetupInitiated.current = true;\n\n const defaultGlobalLayout =\n (await io.layouts.getDefaultGlobal()) ??\n (await io.layouts.getAll(\"Global\")).find((layout) => layout.name === DEFAULT_SYSTEM_LAYOUT);\n\n if (!defaultGlobalLayout) {\n return;\n }\n\n setDefaultLayoutState({ name: defaultGlobalLayout.name });\n\n if (activeLayout) {\n return;\n }\n\n setIsLayoutOperationBlocked(true);\n\n if (isGlobalLayoutsAvailable) {\n await restoreLayout(defaultGlobalLayout.name);\n setIsLayoutOperationBlocked(false);\n return;\n }\n\n const emptyWorkspace = await io.workspaces?.getWorkspace((workspace) => workspace.children.length === 0);\n\n const fullLayout = await io.layouts.get(defaultGlobalLayout.name, \"Global\");\n\n if (!fullLayout) {\n throw new Error(\"Default Global Layout not found.\");\n }\n\n const defaultLayoutWorkspaceNames = getGlobalLayoutWorkspaceNames(fullLayout);\n\n Promise.all(\n defaultLayoutWorkspaceNames.map((workspaceName, index) =>\n restoreWorkspace({\n id: workspaceName,\n reuseWorkspaceId: index === 0 ? emptyWorkspace?.id : undefined,\n }),\n ),\n );\n\n setIsLayoutOperationBlocked(false);\n };\n\n setUpLayouts().catch((error) => console.error(\"Initial Global Layout setup failed. \", extractErrorMessage(error)));\n }, [io, activeLayout, restoreLayout, restoreWorkspace, isGlobalLayoutsAvailable]);\n\n return {\n defaultLayout: defaultLayoutState,\n activeLayout,\n setDefaultLayout,\n setActiveLayout,\n };\n};\n\nconst LaunchpadAPIContext = createContext<\n | {\n close?: CloseLaunchpad;\n defaultLayout: LayoutSummary | undefined;\n activeLayout: LayoutSummary | null;\n setActiveLayout: SetActiveLayout;\n setDefaultLayout: SetDefaultLayout;\n isLayoutOperationBlocked: boolean;\n setIsLayoutOperationBlocked: React.Dispatch<React.SetStateAction<boolean>>;\n }\n | undefined\n>(undefined);\n\nexport const useLaunchpadAPI = () => {\n const context = useContext(LaunchpadAPIContext);\n\n if (context === undefined) {\n throw new Error(\"useLaunchpadAPI must be used within a LaunchpadAPIProvider\");\n }\n\n return context;\n};\n\ninterface LaunchpadAPIProviderProps {\n children: React.ReactNode;\n close?: CloseLaunchpad;\n isGlobalLayoutsAvailable: boolean;\n}\n\nexport const LaunchpadAPIProvider = ({ children, close, isGlobalLayoutsAvailable }: LaunchpadAPIProviderProps) => {\n const [isLayoutOperationBlocked, setIsLayoutOperationBlocked] = useState(false);\n const { defaultLayout, activeLayout, setDefaultLayout, setActiveLayout } = useSetUpLayouts(\n setIsLayoutOperationBlocked,\n isGlobalLayoutsAvailable,\n );\n\n const launchpadAPI = useMemo(\n () => ({\n close,\n defaultLayout,\n activeLayout,\n setDefaultLayout,\n setActiveLayout,\n isLayoutOperationBlocked,\n setIsLayoutOperationBlocked,\n }),\n [close, defaultLayout, activeLayout, setDefaultLayout, setActiveLayout, isLayoutOperationBlocked],\n );\n\n return <LaunchpadAPIContext.Provider value={launchpadAPI}>{children}</LaunchpadAPIContext.Provider>;\n};\n","// TODO: There is an identical file in components-react. Remove this file once home-ui-react components are moved inside components-react\n\nimport { PlatformPrefs } from \"../common/types\";\n\nexport const PLATFORM_PREFS_APP_NAME = \"io-connect-platform\";\n\nexport const PLATFORM_PREFS_CONTEXT_KEY = \"___platform_prefs___\";\n\nexport const PLATFORM_PREFS_KEYS = {\n CUSTOM_PREFS: \"customPrefs\",\n COLLAPSED_SECTIONS: \"_launchpad_collapsedSections\",\n FAVORITES: \"_launchpad_favorites\",\n IS_LAYOUTS_PANEL_OPEN: \"_launchpad_isLayoutsPanelOpen\",\n IS_LAUNCHPAD_COLLAPSED: \"_launchpad_isCollapsed\",\n IS_LAUNCHPAD_PINNED: \"_launchpad_isPinned\",\n LAYOUTS_SHOW_UNSAVED_CHANGES_PROMPT: \"_layouts_showUnsavedChangesPrompt\",\n LAYOUTS_SHOW_DELETE_PROMPT: \"_layouts_showDeletePrompt\",\n} as const;\n\nexport const DEFAULT_PLATFORM_PREFS: PlatformPrefs = {\n [PLATFORM_PREFS_KEYS.COLLAPSED_SECTIONS]: [],\n [PLATFORM_PREFS_KEYS.FAVORITES]: [],\n [PLATFORM_PREFS_KEYS.IS_LAYOUTS_PANEL_OPEN]: false,\n [PLATFORM_PREFS_KEYS.IS_LAUNCHPAD_COLLAPSED]: false,\n [PLATFORM_PREFS_KEYS.LAYOUTS_SHOW_DELETE_PROMPT]: true,\n [PLATFORM_PREFS_KEYS.LAYOUTS_SHOW_UNSAVED_CHANGES_PROMPT]: true,\n};\n","import { useCallback } from \"react\";\nimport { usePlatformPref } from \"@interopio/components-react\";\nimport { PLATFORM_PREFS_KEYS } from \"../constants/platformPrefs\";\n\nexport const useIsLaunchpadPinned = (): {\n error:\n | {\n message: string;\n }\n | undefined;\n isLaunchpadPinned: boolean | undefined;\n isLoading: boolean;\n toggle: () => Promise<void>;\n} => {\n const { value, update, isLoading, error } = usePlatformPref({\n prefKey: PLATFORM_PREFS_KEYS.IS_LAUNCHPAD_PINNED,\n });\n\n const toggle = useCallback(() => update((value) => !value), [update]);\n\n return { error, isLaunchpadPinned: value, isLoading, toggle };\n};\n","import { useContext, useCallback } from \"react\";\nimport { IOConnectContext } from \"@interopio/react-hooks\";\nimport { Layout } from \"../lib/layouts-panel/types\";\nimport { layoutActionExecutors } from \"../executors/layoutActions\";\nimport { useLaunchpadAPI } from \"../lib/launchpad/launchpad.context\";\nimport { usePlatformPref } from \"@interopio/components-react\";\nimport { PLATFORM_PREFS_KEYS } from \"../constants/platformPrefs\";\nimport { useIsLaunchpadPinned } from \"./useIsLaunchpadPinned\";\n\nexport const useExecuteLayoutAction = () => {\n const io = useContext(IOConnectContext);\n const { setActiveLayout, setDefaultLayout, close } = useLaunchpadAPI();\n const { isLaunchpadPinned } = useIsLaunchpadPinned();\n const { value, update } = usePlatformPref({\n prefKey: PLATFORM_PREFS_KEYS.LAYOUTS_SHOW_DELETE_PROMPT,\n });\n\n const closeLaunchpad = () => {\n if (isLaunchpadPinned) {\n return;\n }\n\n close?.();\n };\n\n const executeLayoutAction = useCallback(\n async (config: { layout: Layout; actionName: string }) => {\n const { layout, actionName } = config;\n\n return await layoutActionExecutors[actionName]({\n io,\n layout,\n setActiveLayout,\n setDefaultLayout,\n closeLaunchpad,\n showDeletePromptPref: value,\n updateShowDeletePromptPref: update,\n });\n },\n [io, setDefaultLayout, setActiveLayout, close, value, update],\n );\n\n return executeLayoutAction;\n};\n","import { useLaunchpadAPI } from \"../lib/launchpad/launchpad.context\";\n\nexport const useExecuteLayoutOperationIfNotBlocked = () => {\n const { isLayoutOperationBlocked, setIsLayoutOperationBlocked } = useLaunchpadAPI();\n\n return async (callback: () => Promise<unknown>) => {\n if (isLayoutOperationBlocked) {\n return;\n }\n\n setIsLayoutOperationBlocked(true);\n\n try {\n await callback();\n } catch (error) {\n console.error(\"Layout operation failed: \", { error });\n }\n\n setIsLayoutOperationBlocked(false);\n };\n};\n","export const ACTION_BUTTON_IDS = {\n CREATE_WORKSPACE: \"createWorkspace\",\n} as const;\n","import { ACTION_BUTTON_IDS } from \"../lib/workspaces-section/constants\";\nimport { DIALOG_TEMPLATE_NAMES } from \"../constants/dialogs\";\nimport { HOME_ALERT_VARIANTS } from \"../constants/alerts\";\nimport { WORKSPACE_ACTION_NAMES as CONTEXT_MENU_ACTION_NAMES } from \"../lib/context-menu/constants\";\nimport { WorkspaceActionExecutor } from \"./types\";\nimport { requestAlert } from \"../helpers/alerts\";\n\nconst handleOpenInNewWindow: WorkspaceActionExecutor = async (config) => {\n const { io, item } = config;\n\n if (!io.workspaces) {\n return;\n }\n\n try {\n await io.workspaces.restoreWorkspace(item.id, { newFrame: true });\n } catch (error) {\n await requestAlert({\n io,\n variant: HOME_ALERT_VARIANTS.WARNING,\n text: `Failed to load Workspace \"${item.title}\".`,\n error,\n });\n }\n};\n\nconst handleDelete: WorkspaceActionExecutor = async (config) => {\n const { io, item, removeFavorite } = config;\n\n if (!io.workspaces) {\n return;\n }\n\n if (\"modals\" in io && io.modals) {\n const confirmButtonId = \"delete\";\n\n const { isEnterPressed, responseButtonClicked } = await io.modals.dialogs.request({\n templateName: DIALOG_TEMPLATE_NAMES.NO_INPUTS_CONFIRMATION_DIALOG,\n variables: {\n heading: `Delete \"${item.title}\"`,\n text: \"Are you sure you want to delete this Workspace?\",\n actionButtons: [\n { variant: \"critical\", text: \"Delete\", id: confirmButtonId },\n { variant: \"outline\", text: \"Cancel\", id: \"cancel\", autofocus: true },\n ],\n },\n });\n\n const isDeletionConfirmed = isEnterPressed || responseButtonClicked?.id === confirmButtonId;\n\n if (!isDeletionConfirmed) {\n return;\n }\n }\n\n try {\n await io.workspaces.layouts.delete(item.id);\n await removeFavorite(item);\n\n await requestAlert({\n io,\n variant: HOME_ALERT_VARIANTS.SUCCESS,\n text: `\"Workspace ${item.title}\" was successfully deleted.`,\n });\n } catch (error) {\n await requestAlert({\n io,\n variant: HOME_ALERT_VARIANTS.WARNING,\n text: `Failed to delete Workspace \"${item.title}\".`,\n error,\n });\n }\n};\n\nconst handleCreateWorkspace: WorkspaceActionExecutor = async (config) => {\n const { io } = config;\n\n if (!io.workspaces) {\n return;\n }\n\n try {\n await io.workspaces.createWorkspace({ children: [], frame: { newFrame: true } });\n } catch (error) {\n await requestAlert({\n io,\n variant: HOME_ALERT_VARIANTS.WARNING,\n text: \"Failed to create a new Workspace.\",\n error,\n });\n }\n};\n\nexport const workspaceActionExecutors: {\n [key: string]: WorkspaceActionExecutor;\n} = {\n [CONTEXT_MENU_ACTION_NAMES.OPEN_IN_NEW_WINDOW]: handleOpenInNewWindow,\n [CONTEXT_MENU_ACTION_NAMES.DELETE]: handleDelete,\n [ACTION_BUTTON_IDS.CREATE_WORKSPACE]: handleCreateWorkspace,\n} as const;\n","export class Sequelizer {\n private readonly queue: Array<{ action: () => Promise<any>; resolve: (args?: any) => void; reject: (err?: any) => void }> =\n [];\n private isExecutingQueue = false;\n\n public enqueue<T>(action: () => Promise<T>): Promise<T> {\n return new Promise<T>((resolve, reject) => {\n this.queue.push({ action, resolve, reject });\n this.executeQueue();\n });\n }\n\n private async executeQueue(): Promise<void> {\n if (this.isExecutingQueue) {\n return;\n }\n\n this.isExecutingQueue = true;\n\n while (this.queue.length) {\n const operation = this.queue.shift();\n\n // this satisfies the strict typescript mode\n if (!operation) {\n this.isExecutingQueue = false;\n return;\n }\n\n try {\n const actionResult = await operation.action();\n operation.resolve(actionResult);\n } catch (error) {\n operation.reject(error);\n }\n\n await this.intervalBreak();\n }\n\n this.isExecutingQueue = false;\n }\n\n private intervalBreak(): Promise<void> {\n return new Promise((res) => setTimeout(res, 0));\n }\n}\n","import { useState, useContext, useEffect } from \"react\";\nimport { IOConnectContext } from \"@interopio/react-hooks\";\nimport { Workspace } from \"../lib/workspaces-section/types\";\n\nexport const useWorkspaces = (): Workspace[] => {\n const [workspaces, setWorkspaces] = useState<Workspace[]>([]);\n\n const io = useContext(IOConnectContext);\n\n useEffect(() => {\n if (!io?.workspaces) return;\n\n let isUnsubscribed = false;\n\n const unsubscribeOnSaved = io.workspaces.layouts.onSaved(({ name }) => {\n if (isUnsubscribed || workspaces.find(({ id }) => id === name)) {\n return;\n }\n\n setWorkspaces((current) => [...current, { id: name, title: name }]);\n });\n\n const unsubscribeOnRemoved = io.workspaces.layouts.onRemoved(({ name }) => {\n if (isUnsubscribed) return;\n\n setWorkspaces((current) => current.filter(({ title }) => title !== name));\n });\n\n return () => {\n isUnsubscribed = true;\n\n [unsubscribeOnSaved, unsubscribeOnRemoved].forEach(async (promise) => {\n try {\n const unsubscribe = await promise;\n\n unsubscribe();\n } catch (error) {\n console.error(error);\n }\n });\n };\n }, [io, workspaces]);\n\n return workspaces;\n};\n","import { useCallback, useMemo } from \"react\";\nimport { usePlatformPref } from \"@interopio/components-react\";\nimport { Favorite } from \"../common/types\";\nimport { ITEM_TYPES } from \"../constants/itemTypes\";\nimport { PLATFORM_PREFS_KEYS } from \"../constants/platformPrefs\";\nimport { SectionItemType } from \"../lib/section/types\";\nimport { Sequelizer } from \"../common/sequelizer\";\nimport { useApplications } from \"./useApplications\";\nimport { useWorkspaces } from \"./useWorkspaces\";\n\nconst sequelizer = new Sequelizer();\n\nexport const useFavorites = (): {\n favorites: Favorite[];\n toggleFavorite: (item: SectionItemType) => Promise<void>;\n removeFavorite: (item: SectionItemType) => Promise<void>;\n isLoading: boolean;\n} => {\n const {\n value: favoritesInPrefs,\n update,\n isLoading,\n } = usePlatformPref({\n prefKey: PLATFORM_PREFS_KEYS.FAVORITES,\n });\n const applications = useApplications();\n const workspaces = useWorkspaces();\n const favoritesToShow = useMemo(() => {\n return (favoritesInPrefs ?? []).filter((favorite) => {\n if (favorite.type === ITEM_TYPES.APPLICATION) {\n return applications.some((application) => application.id === favorite.id);\n }\n\n if (favorite.type === ITEM_TYPES.WORKSPACE) {\n return workspaces.some((workspace) => workspace.id === favorite.id);\n }\n\n return true;\n });\n }, [favoritesInPrefs, applications, workspaces]);\n\n const toggleFavorite = useCallback(\n ({ openInstances, ...item }: SectionItemType): Promise<void> => {\n return sequelizer.enqueue(() => {\n return update((favorites = []) => {\n const existingFavorite = favorites.find(\n (favorite) => favorite.id === item.id && favorite.type && item.type,\n );\n\n return existingFavorite\n ? favorites.filter((favorite) => favorite !== existingFavorite)\n : [item, ...favorites];\n });\n });\n },\n [update],\n );\n\n const removeFavorite = useCallback(\n (item: SectionItemType): Promise<void> => {\n return sequelizer.enqueue(() => {\n return update((favorites = []) => {\n return favorites.filter((favorite) => !(favorite.id === item.id && favorite.type === item.type));\n });\n });\n },\n [update],\n );\n\n return { favorites: favoritesToShow, toggleFavorite, removeFavorite, isLoading };\n};\n","import { useContext } from \"react\";\nimport { IOConnectContext } from \"@interopio/react-hooks\";\nimport { workspaceActionExecutors } from \"../executors/workspaceActions\";\nimport { SectionItemType } from \"../lib/section/types\";\nimport { useFavorites } from \"./useFavorites\";\n\nexport const useExecuteWorkspaceAction = () => {\n const io = useContext(IOConnectContext);\n const { removeFavorite } = useFavorites();\n\n return (item: SectionItemType, actionName: string) => {\n workspaceActionExecutors[actionName]({ io, item, removeFavorite });\n };\n};\n","import { useContext } from \"react\";\nimport { IOConnectSearch } from \"@interopio/search-api\";\nimport { IOConnectContext } from \"@interopio/react-hooks\";\n\nexport const useInvokeInteropMethod = (): ((action: IOConnectSearch.MainAction) => Promise<any>) => {\n const io = useContext(IOConnectContext);\n\n return async (action: IOConnectSearch.MainAction) => {\n if (io.interop.methods().every((method) => method.name !== action?.method)) {\n return console.error(\"Interop method not found.\");\n }\n\n return await io.interop.invoke(action.method, action.params, action.target).catch((error) => console.error({ error }));\n };\n};\n","import { useState, useContext, useEffect } from \"react\";\nimport { IOConnectContext } from \"@interopio/react-hooks\";\nimport { IOConnectWorkspaces } from \"@interopio/workspaces-api\";\n\nexport const useIsHomeLoaded = () => {\n const [isHomeLoaded, setIsHomeLoaded] = useState<boolean>(false);\n\n const io = useContext(IOConnectContext);\n\n useEffect(() => {\n if (!io) {\n return;\n }\n\n let unsubscribe: IOConnectWorkspaces.Unsubscribe | undefined;\n\n (async () => {\n try {\n unsubscribe = await io.workspaces?.onWorkspaceOpened(() => setIsHomeLoaded(true));\n } catch (error) {\n console.error(error);\n }\n })();\n\n return () => unsubscribe?.();\n }, [io]);\n\n return isHomeLoaded;\n};\n","/////////////////////////////////////////////////////////////////////////////////\n/* UAParser.js v1.0.38\n Copyright © 2012-2021 Faisal Salman <f@faisalman.com>\n MIT License *//*\n Detect Browser, Engine, OS, CPU, and Device type/model from User-Agent data.\n Supports browser & node.js environment. \n Demo : https://faisalman.github.io/ua-parser-js\n Source : https://github.com/faisalman/ua-parser-js */\n/////////////////////////////////////////////////////////////////////////////////\n\n(function (window, undefined) {\n\n 'use strict';\n\n //////////////\n // Constants\n /////////////\n\n\n var LIBVERSION = '1.0.38',\n EMPTY = '',\n UNKNOWN = '?',\n FUNC_TYPE = 'function',\n UNDEF_TYPE = 'undefined',\n OBJ_TYPE = 'object',\n STR_TYPE = 'string',\n MAJOR = 'major',\n MODEL = 'model',\n NAME = 'name',\n TYPE = 'type',\n VENDOR = 'vendor',\n VERSION = 'version',\n ARCHITECTURE= 'architecture',\n CONSOLE = 'console',\n MOBILE = 'mobile',\n TABLET = 'tablet',\n SMARTTV = 'smarttv',\n WEARABLE = 'wearable',\n EMBEDDED = 'embedded',\n UA_MAX_LENGTH = 500;\n\n var AMAZON = 'Amazon',\n APPLE = 'Apple',\n ASUS = 'ASUS',\n BLACKBERRY = 'BlackBerry',\n BROWSER = 'Browser',\n CHROME = 'Chrome',\n EDGE = 'Edge',\n FIREFOX = 'Firefox',\n GOOGLE = 'Google',\n HUAWEI = 'Huawei',\n LG = 'LG',\n MICROSOFT = 'Microsoft',\n MOTOROLA = 'Motorola',\n OPERA = 'Opera',\n SAMSUNG = 'Samsung',\n SHARP = 'Sharp',\n SONY = 'Sony',\n XIAOMI = 'Xiaomi',\n ZEBRA = 'Zebra',\n FACEBOOK = 'Facebook',\n CHROMIUM_OS = 'Chromium OS',\n MAC_OS = 'Mac OS';\n\n ///////////\n // Helper\n //////////\n\n var extend = function (regexes, extensions) {\n var mergedRegexes = {};\n for (var i in regexes) {\n if (extensions[i] && extensions[i].length % 2 === 0) {\n mergedRegexes[i] = extensions[i].concat(regexes[i]);\n } else {\n mergedRegexes[i] = regexes[i];\n }\n }\n return mergedRegexes;\n },\n enumerize = function (arr) {\n var enums = {};\n for (var i=0; i<arr.length; i++) {\n enums[arr[i].toUpperCase()] = arr[i];\n }\n return enums;\n },\n has = function (str1, str2) {\n return typeof str1 === STR_TYPE ? lowerize(str2).indexOf(lowerize(str1)) !== -1 : false;\n },\n lowerize = function (str) {\n return str.toLowerCase();\n },\n majorize = function (version) {\n return typeof(version) === STR_TYPE ? version.replace(/[^\\d\\.]/g, EMPTY).split('.')[0] : undefined;\n },\n trim = function (str, len) {\n if (typeof(str) === STR_TYPE) {\n str = str.replace(/^\\s\\s*/, EMPTY);\n return typeof(len) === UNDEF_TYPE ? str : str.substring(0, UA_MAX_LENGTH);\n }\n };\n\n ///////////////\n // Map helper\n //////////////\n\n var rgxMapper = function (ua, arrays) {\n\n var i = 0, j, k, p, q, matches, match;\n\n // loop through all regexes maps\n while (i < arrays.length && !matches) {\n\n var regex = arrays[i], // even sequence (0,2,4,..)\n props = arrays[i + 1]; // odd sequence (1,3,5,..)\n j = k = 0;\n\n // try matching uastring with regexes\n while (j < regex.length && !matches) {\n\n if (!regex[j]) { break; }\n matches = regex[j++].exec(ua);\n\n if (!!matches) {\n for (p = 0; p < props.length; p++) {\n match = matches[++k];\n q = props[p];\n // check if given property is actually array\n if (typeof q === OBJ_TYPE && q.length > 0) {\n if (q.length === 2) {\n if (typeof q[1] == FUNC_TYPE) {\n // assign modified match\n this[q[0]] = q[1].call(this, match);\n } else {\n // assign given value, ignore regex match\n this[q[0]] = q[1];\n }\n } else if (q.length === 3) {\n // check whether function or regex\n if (typeof q[1] === FUNC_TYPE && !(q[1].exec && q[1].test)) {\n // call function (usually string mapper)\n this[q[0]] = match ? q[1].call(this, match, q[2]) : undefined;\n } else {\n // sanitize match using given regex\n this[q[0]] = match ? match.replace(q[1], q[2]) : undefined;\n }\n } else if (q.length === 4) {\n this[q[0]] = match ? q[3].call(this, match.replace(q[1], q[2])) : undefined;\n }\n } else {\n this[q] = match ? match : undefined;\n }\n }\n }\n }\n i += 2;\n }\n },\n\n strMapper = function (str, map) {\n\n for (var i in map) {\n // check if current value is array\n if (typeof map[i] === OBJ_TYPE && map[i].length > 0) {\n for (var j = 0; j < map[i].length; j++) {\n if (has(map[i][j], str)) {\n return (i === UNKNOWN) ? undefined : i;\n }\n }\n } else if (has(map[i], str)) {\n return (i === UNKNOWN) ? undefined : i;\n }\n }\n return str;\n };\n\n ///////////////\n // String map\n //////////////\n\n // Safari < 3.0\n var oldSafariMap = {\n '1.0' : '/8',\n '1.2' : '/1',\n '1.3' : '/3',\n '2.0' : '/412',\n '2.0.2' : '/416',\n '2.0.3' : '/417',\n '2.0.4' : '/419',\n '?' : '/'\n },\n windowsVersionMap = {\n 'ME' : '4.90',\n 'NT 3.11' : 'NT3.51',\n 'NT 4.0' : 'NT4.0',\n '2000' : 'NT 5.0',\n 'XP' : ['NT 5.1', 'NT 5.2'],\n 'Vista' : 'NT 6.0',\n '7' : 'NT 6.1',\n '8' : 'NT 6.2',\n '8.1' : 'NT 6.3',\n '10' : ['NT 6.4', 'NT 10.0'],\n 'RT' : 'ARM'\n };\n\n //////////////\n // Regex map\n /////////////\n\n var regexes = {\n\n browser : [[\n\n /\\b(?:crmo|crios)\\/([\\w\\.]+)/i // Chrome for Android/iOS\n ], [VERSION, [NAME, 'Chrome']], [\n /edg(?:e|ios|a)?\\/([\\w\\.]+)/i // Microsoft Edge\n ], [VERSION, [NAME, 'Edge']], [\n\n // Presto based\n /(opera mini)\\/([-\\w\\.]+)/i, // Opera Mini\n /(opera [mobiletab]{3,6})\\b.+version\\/([-\\w\\.]+)/i, // Opera Mobi/Tablet\n /(opera)(?:.+version\\/|[\\/ ]+)([\\w\\.]+)/i // Opera\n ], [NAME, VERSION], [\n /opios[\\/ ]+([\\w\\.]+)/i // Opera mini on iphone >= 8.0\n ], [VERSION, [NAME, OPERA+' Mini']], [\n /\\bop(?:rg)?x\\/([\\w\\.]+)/i // Opera GX\n ], [VERSION, [NAME, OPERA+' GX']], [\n /\\bopr\\/([\\w\\.]+)/i // Opera Webkit\n ], [VERSION, [NAME, OPERA]], [\n\n // Mixed\n /\\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\\/ ]?([\\w\\.]+)/i // Baidu\n ], [VERSION, [NAME, 'Baidu']], [\n /(kindle)\\/([\\w\\.]+)/i, // Kindle\n /(lunascape|maxthon|netfront|jasmine|blazer)[\\/ ]?([\\w\\.]*)/i, // Lunascape/Maxthon/Netfront/Jasmine/Blazer\n // Trident based\n /(avant|iemobile|slim)\\s?(?:browser)?[\\/ ]?([\\w\\.]*)/i, // Avant/IEMobile/SlimBrowser\n /(?:ms|\\()(ie) ([\\w\\.]+)/i, // Internet Explorer\n\n // Webkit/KHTML based // Flock/RockMelt/Midori/Epiphany/Silk/Skyfire/Bolt/Iron/Iridium/PhantomJS/Bowser/QupZilla/Falkon\n /(flock|rockmelt|midori|epiphany|silk|skyfire|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|qq|duckduckgo)\\/([-\\w\\.]+)/i,\n // Rekonq/Puffin/Brave/Whale/QQBrowserLite/QQ, aka ShouQ\n /(heytap|ovi)browser\\/([\\d\\.]+)/i, // Heytap/Ovi\n /(weibo)__([\\d\\.]+)/i // Weibo\n ], [NAME, VERSION], [\n /\\bddg\\/([\\w\\.]+)/i // DuckDuckGo\n ], [VERSION, [NAME, 'DuckDuckGo']], [\n /(?:\\buc? ?browser|(?:juc.+)ucweb)[\\/ ]?([\\w\\.]+)/i // UCBrowser\n ], [VERSION, [NAME, 'UC'+BROWSER]], [\n /microm.+\\bqbcore\\/([\\w\\.]+)/i, // WeChat Desktop for Windows Built-in Browser\n /\\bqbcore\\/([\\w\\.]+).+microm/i,\n /micromessenger\\/([\\w\\.]+)/i // WeChat\n ], [VERSION, [NAME, 'WeChat']], [\n /konqueror\\/([\\w\\.]+)/i // Konqueror\n ], [VERSION, [NAME, 'Konqueror']], [\n /trident.+rv[: ]([\\w\\.]{1,9})\\b.+like gecko/i // IE11\n ], [VERSION, [NAME, 'IE']], [\n /ya(?:search)?browser\\/([\\w\\.]+)/i // Yandex\n ], [VERSION, [NAME, 'Yandex']], [\n /slbrowser\\/([\\w\\.]+)/i // Smart Lenovo Browser\n ], [VERSION, [NAME, 'Smart Lenovo '+BROWSER]], [\n /(avast|avg)\\/([\\w\\.]+)/i // Avast/AVG Secure Browser\n ], [[NAME, /(.+)/, '$1 Secure '+BROWSER], VERSION], [\n /\\bfocus\\/([\\w\\.]+)/i // Firefox Focus\n ], [VERSION, [NAME, FIREFOX+' Focus']], [\n /\\bopt\\/([\\w\\.]+)/i // Opera Touch\n ], [VERSION, [NAME, OPERA+' Touch']], [\n /coc_coc\\w+\\/([\\w\\.]+)/i // Coc Coc Browser\n ], [VERSION, [NAME, 'Coc Coc']], [\n /dolfin\\/([\\w\\.]+)/i // Dolphin\n ], [VERSION, [NAME, 'Dolphin']], [\n /coast\\/([\\w\\.]+)/i // Opera Coast\n ], [VERSION, [NAME, OPERA+' Coast']], [\n /miuibrowser\\/([\\w\\.]+)/i // MIUI Browser\n ], [VERSION, [NAME, 'MIUI '+BROWSER]], [\n /fxios\\/([-\\w\\.]+)/i // Firefox for iOS\n ], [VERSION, [NAME, FIREFOX]], [\n /\\bqihu|(qi?ho?o?|360)browser/i // 360\n ], [[NAME, '360 ' + BROWSER]], [\n /(oculus|sailfish|huawei|vivo)browser\\/([\\w\\.]+)/i\n ], [[NAME, /(.+)/, '$1 ' + BROWSER], VERSION], [ // Oculus/Sailfish/HuaweiBrowser/VivoBrowser\n /samsungbrowser\\/([\\w\\.]+)/i // Samsung Internet\n ], [VERSION, [NAME, SAMSUNG + ' Internet']], [\n /(comodo_dragon)\\/([\\w\\.]+)/i // Comodo Dragon\n ], [[NAME, /_/g, ' '], VERSION], [\n /metasr[\\/ ]?([\\d\\.]+)/i // Sogou Explorer\n ], [VERSION, [NAME, 'Sogou Explorer']], [\n /(sogou)mo\\w+\\/([\\d\\.]+)/i // Sogou Mobile\n ], [[NAME, 'Sogou Mobile'], VERSION], [\n /(electron)\\/([\\w\\.]+) safari/i, // Electron-based App\n /(tesla)(?: qtcarbrowser|\\/(20\\d\\d\\.[-\\w\\.]+))/i, // Tesla\n /m?(qqbrowser|2345Explorer)[\\/ ]?([\\w\\.]+)/i // QQBrowser/2345 Browser\n ], [NAME, VERSION], [\n /(lbbrowser)/i, // LieBao Browser\n /\\[(linkedin)app\\]/i // LinkedIn App for iOS & Android\n ], [NAME], [\n\n // WebView\n /((?:fban\\/fbios|fb_iab\\/fb4a)(?!.+fbav)|;fbav\\/([\\w\\.]+);)/i // Facebook App for iOS & Android\n ], [[NAME, FACEBOOK], VERSION], [\n /(Klarna)\\/([\\w\\.]+)/i, // Klarna Shopping Browser for iOS & Android\n /(kakao(?:talk|story))[\\/ ]([\\w\\.]+)/i, // Kakao App\n /(naver)\\(.*?(\\d+\\.[\\w\\.]+).*\\)/i, // Naver InApp\n /safari (line)\\/([\\w\\.]+)/i, // Line App for iOS\n /\\b(line)\\/([\\w\\.]+)\\/iab/i, // Line App for Android\n /(alipay)client\\/([\\w\\.]+)/i, // Alipay\n /(twitter)(?:and| f.+e\\/([\\w\\.]+))/i, // Twitter\n /(chromium|instagram|snapchat)[\\/ ]([-\\w\\.]+)/i // Chromium/Instagram/Snapchat\n ], [NAME, VERSION], [\n /\\bgsa\\/([\\w\\.]+) .*safari\\//i // Google Search Appliance on iOS\n ], [VERSION, [NAME, 'GSA']], [\n /musical_ly(?:.+app_?version\\/|_)([\\w\\.]+)/i // TikTok\n ], [VERSION, [NAME, 'TikTok']], [\n\n /headlesschrome(?:\\/([\\w\\.]+)| )/i // Chrome Headless\n ], [VERSION, [NAME, CHROME+' Headless']], [\n\n / wv\\).+(chrome)\\/([\\w\\.]+)/i // Chrome WebView\n ], [[NAME, CHROME+' WebView'], VERSION], [\n\n /droid.+ version\\/([\\w\\.]+)\\b.+(?:mobile safari|safari)/i // Android Browser\n ], [VERSION, [NAME, 'Android '+BROWSER]], [\n\n /(chrome|omniweb|arora|[tizenoka]{5} ?browser)\\/v?([\\w\\.]+)/i // Chrome/OmniWeb/Arora/Tizen/Nokia\n ], [NAME, VERSION], [\n\n /version\\/([\\w\\.\\,]+) .*mobile\\/\\w+ (safari)/i // Mobile Safari\n ], [VERSION, [NAME, 'Mobile Safari']], [\n /version\\/([\\w(\\.|\\,)]+) .*(mobile ?safari|safari)/i // Safari & Safari Mobile\n ], [VERSION, NAME], [\n /webkit.+?(mobile ?safari|safari)(\\/[\\w\\.]+)/i // Safari < 3.0\n ], [NAME, [VERSION, strMapper, oldSafariMap]], [\n\n /(webkit|khtml)\\/([\\w\\.]+)/i\n ], [NAME, VERSION], [\n\n // Gecko based\n /(navigator|netscape\\d?)\\/([-\\w\\.]+)/i // Netscape\n ], [[NAME, 'Netscape'], VERSION], [\n /mobile vr; rv:([\\w\\.]+)\\).+firefox/i // Firefox Reality\n ], [VERSION, [NAME, FIREFOX+' Reality']], [\n /ekiohf.+(flow)\\/([\\w\\.]+)/i, // Flow\n /(swiftfox)/i, // Swiftfox\n /(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\\/ ]?([\\w\\.\\+]+)/i,\n // IceDragon/Iceweasel/Camino/Chimera/Fennec/Maemo/Minimo/Conkeror/Klar\n /(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\\/([-\\w\\.]+)$/i,\n // Firefox/SeaMonkey/K-Meleon/IceCat/IceApe/Firebird/Phoenix\n /(firefox)\\/([\\w\\.]+)/i, // Other Firefox-based\n /(mozilla)\\/([\\w\\.]+) .+rv\\:.+gecko\\/\\d+/i, // Mozilla\n\n // Other\n /(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\\. ]?browser)[-\\/ ]?v?([\\w\\.]+)/i,\n // Polaris/Lynx/Dillo/iCab/Doris/Amaya/w3m/NetSurf/Sleipnir/Obigo/Mosaic/Go/ICE/UP.Browser\n /(links) \\(([\\w\\.]+)/i, // Links\n /panasonic;(viera)/i // Panasonic Viera\n ], [NAME, VERSION], [\n \n /(cobalt)\\/([\\w\\.]+)/i // Cobalt\n ], [NAME, [VERSION, /master.|lts./, \"\"]]\n ],\n\n cpu : [[\n\n /(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\\)]/i // AMD64 (x64)\n ], [[ARCHITECTURE, 'amd64']], [\n\n /(ia32(?=;))/i // IA32 (quicktime)\n ], [[ARCHITECTURE, lowerize]], [\n\n /((?:i[346]|x)86)[;\\)]/i // IA32 (x86)\n ], [[ARCHITECTURE, 'ia32']], [\n\n /\\b(aarch64|arm(v?8e?l?|_?64))\\b/i // ARM64\n ], [[ARCHITECTURE, 'arm64']], [\n\n /\\b(arm(?:v[67])?ht?n?[fl]p?)\\b/i // ARMHF\n ], [[ARCHITECTURE, 'armhf']], [\n\n // PocketPC mistakenly identified as PowerPC\n /windows (ce|mobile); ppc;/i\n ], [[ARCHITECTURE, 'arm']], [\n\n /((?:ppc|powerpc)(?:64)?)(?: mac|;|\\))/i // PowerPC\n ], [[ARCHITECTURE, /ower/, EMPTY, lowerize]], [\n\n /(sun4\\w)[;\\)]/i // SPARC\n ], [[ARCHITECTURE, 'sparc']], [\n\n /((?:avr32|ia64(?=;))|68k(?=\\))|\\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\\b|pa-risc)/i\n // IA64, 68K, ARM/64, AVR/32, IRIX/64, MIPS/64, SPARC/64, PA-RISC\n ], [[ARCHITECTURE, lowerize]]\n ],\n\n device : [[\n\n //////////////////////////\n // MOBILES & TABLETS\n /////////////////////////\n\n // Samsung\n /\\b(sch-i[89]0\\d|shw-m380s|sm-[ptx]\\w{2,4}|gt-[pn]\\d{2,4}|sgh-t8[56]9|nexus 10)/i\n ], [MODEL, [VENDOR, SAMSUNG], [TYPE, TABLET]], [\n /\\b((?:s[cgp]h|gt|sm)-\\w+|sc[g-]?[\\d]+a?|galaxy nexus)/i,\n /samsung[- ]([-\\w]+)/i,\n /sec-(sgh\\w+)/i\n ], [MODEL, [VENDOR, SAMSUNG], [TYPE, MOBILE]], [\n\n // Apple\n /(?:\\/|\\()(ip(?:hone|od)[\\w, ]*)(?:\\/|;)/i // iPod/iPhone\n ], [MODEL, [VENDOR, APPLE], [TYPE, MOBILE]], [\n /\\((ipad);[-\\w\\),; ]+apple/i, // iPad\n /applecoremedia\\/[\\w\\.]+ \\((ipad)/i,\n /\\b(ipad)\\d\\d?,\\d\\d?[;\\]].+ios/i\n ], [MODEL, [VENDOR, APPLE], [TYPE, TABLET]], [\n /(macintosh);/i\n ], [MODEL, [VENDOR, APPLE]], [\n\n // Sharp\n /\\b(sh-?[altvz]?\\d\\d[a-ekm]?)/i\n ], [MODEL, [VENDOR, SHARP], [TYPE, MOBILE]], [\n\n // Huawei\n /\\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\\d{2})\\b(?!.+d\\/s)/i\n ], [MODEL, [VENDOR, HUAWEI], [TYPE, TABLET]], [\n /(?:huawei|honor)([-\\w ]+)[;\\)]/i,\n /\\b(nexus 6p|\\w{2,4}e?-[atu]?[ln][\\dx][012359c][adn]?)\\b(?!.+d\\/s)/i\n ], [MODEL, [VENDOR, HUAWEI], [TYPE, MOBILE]], [\n\n // Xiaomi\n /\\b(poco[\\w ]+|m2\\d{3}j\\d\\d[a-z]{2})(?: bui|\\))/i, // Xiaomi POCO\n /\\b; (\\w+) build\\/hm\\1/i, // Xiaomi Hongmi 'numeric' models\n /\\b(hm[-_ ]?note?[_ ]?(?:\\d\\w)?) bui/i, // Xiaomi Hongmi\n /\\b(redmi[\\-_ ]?(?:note|k)?[\\w_ ]+)(?: bui|\\))/i, // Xiaomi Redmi\n /oid[^\\)]+; (m?[12][0-389][01]\\w{3,6}[c-y])( bui|; wv|\\))/i, // Xiaomi Redmi 'numeric' models\n /\\b(mi[-_ ]?(?:a\\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\\d?\\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\\))/i // Xiaomi Mi\n ], [[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, MOBILE]], [\n /oid[^\\)]+; (2\\d{4}(283|rpbf)[cgl])( bui|\\))/i, // Redmi Pad\n /\\b(mi[-_ ]?(?:pad)(?:[\\w_ ]+))(?: bui|\\))/i // Mi Pad tablets\n ],[[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, TABLET]], [\n\n // OPPO\n /; (\\w+) bui.+ oppo/i,\n /\\b(cph[12]\\d{3}|p(?:af|c[al]|d\\w|e[ar])[mt]\\d0|x9007|a101op)\\b/i\n ], [MODEL, [VENDOR, 'OPPO'], [TYPE, MOBILE]], [\n /\\b(opd2\\d{3}a?) bui/i\n ], [MODEL, [VENDOR, 'OPPO'], [TYPE, TABLET]], [\n\n // Vivo\n /vivo (\\w+)(?: bui|\\))/i,\n /\\b(v[12]\\d{3}\\w?[at])(?: bui|;)/i\n ], [MODEL, [VENDOR, 'Vivo'], [TYPE, MOBILE]], [\n\n // Realme\n /\\b(rmx[1-3]\\d{3})(?: bui|;|\\))/i\n ], [MODEL, [VENDOR, 'Realme'], [TYPE, MOBILE]], [\n\n // Motorola\n /\\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\\b[\\w ]+build\\//i,\n /\\bmot(?:orola)?[- ](\\w*)/i,\n /((?:moto[\\w\\(\\) ]+|xt\\d{3,4}|nexus 6)(?= bui|\\)))/i\n ], [MODEL, [VENDOR, MOTOROLA], [TYPE, MOBILE]], [\n /\\b(mz60\\d|xoom[2 ]{0,2}) build\\//i\n ], [MODEL, [VENDOR, MOTOROLA], [TYPE, TABLET]], [\n\n // LG\n /((?=lg)?[vl]k\\-?\\d{3}) bui| 3\\.[-\\w; ]{10}lg?-([06cv9]{3,4})/i\n ], [MODEL, [VENDOR, LG], [TYPE, TABLET]], [\n /(lm(?:-?f100[nv]?|-[\\w\\.]+)(?= bui|\\))|nexus [45])/i,\n /\\blg[-e;\\/ ]+((?!browser|netcast|android tv)\\w+)/i,\n /\\blg-?([\\d\\w]+) bui/i\n ], [MODEL, [VENDOR, LG], [TYPE, MOBILE]], [\n\n // Lenovo\n /(ideatab[-\\w ]+)/i,\n /lenovo ?(s[56]000[-\\w]+|tab(?:[\\w ]+)|yt[-\\d\\w]{6}|tb[-\\d\\w]{6})/i\n ], [MODEL, [VENDOR, 'Lenovo'], [TYPE, TABLET]], [\n\n // Nokia\n /(?:maemo|nokia).*(n900|lumia \\d+)/i,\n /nokia[-_ ]?([-\\w\\.]*)/i\n ], [[MODEL, /_/g, ' '], [VENDOR, 'Nokia'], [TYPE, MOBILE]], [\n\n // Google\n /(pixel c)\\b/i // Google Pixel C\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, TABLET]], [\n /droid.+; (pixel[\\daxl ]{0,6})(?: bui|\\))/i // Google Pixel\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, MOBILE]], [\n\n // Sony\n /droid.+ (a?\\d[0-2]{2}so|[c-g]\\d{4}|so[-gl]\\w+|xq-a\\w[4-7][12])(?= bui|\\).+chrome\\/(?![1-6]{0,1}\\d\\.))/i\n ], [MODEL, [VENDOR, SONY], [TYPE, MOBILE]], [\n /sony tablet [ps]/i,\n /\\b(?:sony)?sgp\\w+(?: bui|\\))/i\n ], [[MODEL, 'Xperia Tablet'], [VENDOR, SONY], [TYPE, TABLET]], [\n\n // OnePlus\n / (kb2005|in20[12]5|be20[12][59])\\b/i,\n /(?:one)?(?:plus)? (a\\d0\\d\\d)(?: b|\\))/i\n ], [MODEL, [VENDOR, 'OnePlus'], [TYPE, MOBILE]], [\n\n // Amazon\n /(alexa)webm/i,\n /(kf[a-z]{2}wi|aeo[c-r]{2})( bui|\\))/i, // Kindle Fire without Silk / Echo Show\n /(kf[a-z]+)( bui|\\)).+silk\\//i // Kindle Fire HD\n ], [MODEL, [VENDOR, AMAZON], [TYPE, TABLET]], [\n /((?:sd|kf)[0349hijorstuw]+)( bui|\\)).+silk\\//i // Fire Phone\n ], [[MODEL, /(.+)/g, 'Fire Phone $1'], [VENDOR, AMAZON], [TYPE, MOBILE]], [\n\n // BlackBerry\n /(playbook);[-\\w\\),; ]+(rim)/i // BlackBerry PlayBook\n ], [MODEL, VENDOR, [TYPE, TABLET]], [\n /\\b((?:bb[a-f]|st[hv])100-\\d)/i,\n /\\(bb10; (\\w+)/i // BlackBerry 10\n ], [MODEL, [VENDOR, BLACKBERRY], [TYPE, MOBILE]], [\n\n // Asus\n /(?:\\b|asus_)(transfo[prime ]{4,10} \\w+|eeepc|slider \\w+|nexus 7|padfone|p00[cj])/i\n ], [MODEL, [VENDOR, ASUS], [TYPE, TABLET]], [\n / (z[bes]6[027][012][km][ls]|zenfone \\d\\w?)\\b/i\n ], [MODEL, [VENDOR, ASUS], [TYPE, MOBILE]], [\n\n // HTC\n /(nexus 9)/i // HTC Nexus 9\n ], [MODEL, [VENDOR, 'HTC'], [TYPE, TABLET]], [\n /(htc)[-;_ ]{1,2}([\\w ]+(?=\\)| bui)|\\w+)/i, // HTC\n\n // ZTE\n /(zte)[- ]([\\w ]+?)(?: bui|\\/|\\))/i,\n /(alcatel|geeksphone|nexian|panasonic(?!(?:;|\\.))|sony(?!-bra))[-_ ]?([-\\w]*)/i // Alcatel/GeeksPhone/Nexian/Panasonic/Sony\n ], [VENDOR, [MODEL, /_/g, ' '], [TYPE, MOBILE]], [\n\n // Acer\n /droid.+; ([ab][1-7]-?[0178a]\\d\\d?)/i\n ], [MODEL, [VENDOR, 'Acer'], [TYPE, TABLET]], [\n\n // Meizu\n /droid.+; (m[1-5] note) bui/i,\n /\\bmz-([-\\w]{2,})/i\n ], [MODEL, [VENDOR, 'Meizu'], [TYPE, MOBILE]], [\n \n // Ulefone\n /; ((?:power )?armor(?:[\\w ]{0,8}))(?: bui|\\))/i\n ], [MODEL, [VENDOR, 'Ulefone'], [TYPE, MOBILE]], [\n\n // MIXED\n /(blackberry|benq|palm(?=\\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron|infinix|tecno)[-_ ]?([-\\w]*)/i,\n // BlackBerry/BenQ/Palm/Sony-Ericsson/Acer/Asus/Dell/Meizu/Motorola/Polytron\n /(hp) ([\\w ]+\\w)/i, // HP iPAQ\n /(asus)-?(\\w+)/i, // Asus\n /(microsoft); (lumia[\\w ]+)/i, // Microsoft Lumia\n /(lenovo)[-_ ]?([-\\w]+)/i, // Lenovo\n /(jolla)/i, // Jolla\n /(oppo) ?([\\w ]+) bui/i // OPPO\n ], [VENDOR, MODEL, [TYPE, MOBILE]], [\n\n /(kobo)\\s(ereader|touch)/i, // Kobo\n /(archos) (gamepad2?)/i, // Archos\n /(hp).+(touchpad(?!.+tablet)|tablet)/i, // HP TouchPad\n /(kindle)\\/([\\w\\.]+)/i, // Kindle\n /(nook)[\\w ]+build\\/(\\w+)/i, // Nook\n /(dell) (strea[kpr\\d ]*[\\dko])/i, // Dell Streak\n /(le[- ]+pan)[- ]+(\\w{1,9}) bui/i, // Le Pan Tablets\n /(trinity)[- ]*(t\\d{3}) bui/i, // Trinity Tablets\n /(gigaset)[- ]+(q\\w{1,9}) bui/i, // Gigaset Tablets\n /(vodafone) ([\\w ]+)(?:\\)| bui)/i // Vodafone\n ], [VENDOR, MODEL, [TYPE, TABLET]], [\n\n /(surface duo)/i // Surface Duo\n ], [MODEL, [VENDOR, MICROSOFT], [TYPE, TABLET]], [\n /droid [\\d\\.]+; (fp\\du?)(?: b|\\))/i // Fairphone\n ], [MODEL, [VENDOR, 'Fairphone'], [TYPE, MOBILE]], [\n /(u304aa)/i // AT&T\n ], [MODEL, [VENDOR, 'AT&T'], [TYPE, MOBILE]], [\n /\\bsie-(\\w*)/i // Siemens\n ], [MODEL, [VENDOR, 'Siemens'], [TYPE, MOBILE]], [\n /\\b(rct\\w+) b/i // RCA Tablets\n ], [MODEL, [VENDOR, 'RCA'], [TYPE, TABLET]], [\n /\\b(venue[\\d ]{2,7}) b/i // Dell Venue Tablets\n ], [MODEL, [VENDOR, 'Dell'], [TYPE, TABLET]], [\n /\\b(q(?:mv|ta)\\w+) b/i // Verizon Tablet\n ], [MODEL, [VENDOR, 'Verizon'], [TYPE, TABLET]], [\n /\\b(?:barnes[& ]+noble |bn[rt])([\\w\\+ ]*) b/i // Barnes & Noble Tablet\n ], [MODEL, [VENDOR, 'Barnes & Noble'], [TYPE, TABLET]], [\n /\\b(tm\\d{3}\\w+) b/i\n ], [MODEL, [VENDOR, 'NuVision'], [TYPE, TABLET]], [\n /\\b(k88) b/i // ZTE K Series Tablet\n ], [MODEL, [VENDOR, 'ZTE'], [TYPE, TABLET]], [\n /\\b(nx\\d{3}j) b/i // ZTE Nubia\n ], [MODEL, [VENDOR, 'ZTE'], [TYPE, MOBILE]], [\n /\\b(gen\\d{3}) b.+49h/i // Swiss GEN Mobile\n ], [MODEL, [VENDOR, 'Swiss'], [TYPE, MOBILE]], [\n /\\b(zur\\d{3}) b/i // Swiss ZUR Tablet\n ], [MODEL, [VENDOR, 'Swiss'], [TYPE, TABLET]], [\n /\\b((zeki)?tb.*\\b) b/i // Zeki Tablets\n ], [MODEL, [VENDOR, 'Zeki'], [TYPE, TABLET]], [\n /\\b([yr]\\d{2}) b/i,\n /\\b(dragon[- ]+touch |dt)(\\w{5}) b/i // Dragon Touch Tablet\n ], [[VENDOR, 'Dragon Touch'], MODEL, [TYPE, TABLET]], [\n /\\b(ns-?\\w{0,9}) b/i // Insignia Tablets\n ], [MODEL, [VENDOR, 'Insignia'], [TYPE, TABLET]], [\n /\\b((nxa|next)-?\\w{0,9}) b/i // NextBook Tablets\n ], [MODEL, [VENDOR, 'NextBook'], [TYPE, TABLET]], [\n /\\b(xtreme\\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i // Voice Xtreme Phones\n ], [[VENDOR, 'Voice'], MODEL, [TYPE, MOBILE]], [\n /\\b(lvtel\\-)?(v1[12]) b/i // LvTel Phones\n ], [[VENDOR, 'LvTel'], MODEL, [TYPE, MOBILE]], [\n /\\b(ph-1) /i // Essential PH-1\n ], [MODEL, [VENDOR, 'Essential'], [TYPE, MOBILE]], [\n /\\b(v(100md|700na|7011|917g).*\\b) b/i // Envizen Tablets\n ], [MODEL, [VENDOR, 'Envizen'], [TYPE, TABLET]], [\n /\\b(trio[-\\w\\. ]+) b/i // MachSpeed Tablets\n ], [MODEL, [VENDOR, 'MachSpeed'], [TYPE, TABLET]], [\n /\\btu_(1491) b/i // Rotor Tablets\n ], [MODEL, [VENDOR, 'Rotor'], [TYPE, TABLET]], [\n /(shield[\\w ]+) b/i // Nvidia Shield Tablets\n ], [MODEL, [VENDOR, 'Nvidia'], [TYPE, TABLET]], [\n /(sprint) (\\w+)/i // Sprint Phones\n ], [VENDOR, MODEL, [TYPE, MOBILE]], [\n /(kin\\.[onetw]{3})/i // Microsoft Kin\n ], [[MODEL, /\\./g, ' '], [VENDOR, MICROSOFT], [TYPE, MOBILE]], [\n /droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\\)/i // Zebra\n ], [MODEL, [VENDOR, ZEBRA], [TYPE, TABLET]], [\n /droid.+; (ec30|ps20|tc[2-8]\\d[kx])\\)/i\n ], [MODEL, [VENDOR, ZEBRA], [TYPE, MOBILE]], [\n\n ///////////////////\n // SMARTTVS\n ///////////////////\n\n /smart-tv.+(samsung)/i // Samsung\n ], [VENDOR, [TYPE, SMARTTV]], [\n /hbbtv.+maple;(\\d+)/i\n ], [[MODEL, /^/, 'SmartTV'], [VENDOR, SAMSUNG], [TYPE, SMARTTV]], [\n /(nux; netcast.+smarttv|lg (netcast\\.tv-201\\d|android tv))/i // LG SmartTV\n ], [[VENDOR, LG], [TYPE, SMARTTV]], [\n /(apple) ?tv/i // Apple TV\n ], [VENDOR, [MODEL, APPLE+' TV'], [TYPE, SMARTTV]], [\n /crkey/i // Google Chromecast\n ], [[MODEL, CHROME+'cast'], [VENDOR, GOOGLE], [TYPE, SMARTTV]], [\n /droid.+aft(\\w+)( bui|\\))/i // Fire TV\n ], [MODEL, [VENDOR, AMAZON], [TYPE, SMARTTV]], [\n /\\(dtv[\\);].+(aquos)/i,\n /(aquos-tv[\\w ]+)\\)/i // Sharp\n ], [MODEL, [VENDOR, SHARP], [TYPE, SMARTTV]],[\n /(bravia[\\w ]+)( bui|\\))/i // Sony\n ], [MODEL, [VENDOR, SONY], [TYPE, SMARTTV]], [\n /(mitv-\\w{5}) bui/i // Xiaomi\n ], [MODEL, [VENDOR, XIAOMI], [TYPE, SMARTTV]], [\n /Hbbtv.*(technisat) (.*);/i // TechniSAT\n ], [VENDOR, MODEL, [TYPE, SMARTTV]], [\n /\\b(roku)[\\dx]*[\\)\\/]((?:dvp-)?[\\d\\.]*)/i, // Roku\n /hbbtv\\/\\d+\\.\\d+\\.\\d+ +\\([\\w\\+ ]*; *([\\w\\d][^;]*);([^;]*)/i // HbbTV devices\n ], [[VENDOR, trim], [MODEL, trim], [TYPE, SMARTTV]], [\n /\\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\\b/i // SmartTV from Unidentified Vendors\n ], [[TYPE, SMARTTV]], [\n\n ///////////////////\n // CONSOLES\n ///////////////////\n\n /(ouya)/i, // Ouya\n /(nintendo) ([wids3utch]+)/i // Nintendo\n ], [VENDOR, MODEL, [TYPE, CONSOLE]], [\n /droid.+; (shield) bui/i // Nvidia\n ], [MODEL, [VENDOR, 'Nvidia'], [TYPE, CONSOLE]], [\n /(playstation [345portablevi]+)/i // Playstation\n ], [MODEL, [VENDOR, SONY], [TYPE, CONSOLE]], [\n /\\b(xbox(?: one)?(?!; xbox))[\\); ]/i // Microsoft Xbox\n ], [MODEL, [VENDOR, MICROSOFT], [TYPE, CONSOLE]], [\n\n ///////////////////\n // WEARABLES\n ///////////////////\n\n /((pebble))app/i // Pebble\n ], [VENDOR, MODEL, [TYPE, WEARABLE]], [\n /(watch)(?: ?os[,\\/]|\\d,\\d\\/)[\\d\\.]+/i // Apple Watch\n ], [MODEL, [VENDOR, APPLE], [TYPE, WEARABLE]], [\n /droid.+; (glass) \\d/i // Google Glass\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, WEARABLE]], [\n /droid.+; (wt63?0{2,3})\\)/i\n ], [MODEL, [VENDOR, ZEBRA], [TYPE, WEARABLE]], [\n /(quest( \\d| pro)?)/i // Oculus Quest\n ], [MODEL, [VENDOR, FACEBOOK], [TYPE, WEARABLE]], [\n\n ///////////////////\n // EMBEDDED\n ///////////////////\n\n /(tesla)(?: qtcarbrowser|\\/[-\\w\\.]+)/i // Tesla\n ], [VENDOR, [TYPE, EMBEDDED]], [\n /(aeobc)\\b/i // Echo Dot\n ], [MODEL, [VENDOR, AMAZON], [TYPE, EMBEDDED]], [\n\n ////////////////////\n // MIXED (GENERIC)\n ///////////////////\n\n /droid .+?; ([^;]+?)(?: bui|; wv\\)|\\) applew).+? mobile safari/i // Android Phones from Unidentified Vendors\n ], [MODEL, [TYPE, MOBILE]], [\n /droid .+?; ([^;]+?)(?: bui|\\) applew).+?(?! mobile) safari/i // Android Tablets from Unidentified Vendors\n ], [MODEL, [TYPE, TABLET]], [\n /\\b((tablet|tab)[;\\/]|focus\\/\\d(?!.+mobile))/i // Unidentifiable Tablet\n ], [[TYPE, TABLET]], [\n /(phone|mobile(?:[;\\/]| [ \\w\\/\\.]*safari)|pda(?=.+windows ce))/i // Unidentifiable Mobile\n ], [[TYPE, MOBILE]], [\n /(android[-\\w\\. ]{0,9});.+buil/i // Generic Android Device\n ], [MODEL, [VENDOR, 'Generic']]\n ],\n\n engine : [[\n\n /windows.+ edge\\/([\\w\\.]+)/i // EdgeHTML\n ], [VERSION, [NAME, EDGE+'HTML']], [\n\n /webkit\\/537\\.36.+chrome\\/(?!27)([\\w\\.]+)/i // Blink\n ], [VERSION, [NAME, 'Blink']], [\n\n /(presto)\\/([\\w\\.]+)/i, // Presto\n /(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\\/([\\w\\.]+)/i, // WebKit/Trident/NetFront/NetSurf/Amaya/Lynx/w3m/Goanna\n /ekioh(flow)\\/([\\w\\.]+)/i, // Flow\n /(khtml|tasman|links)[\\/ ]\\(?([\\w\\.]+)/i, // KHTML/Tasman/Links\n /(icab)[\\/ ]([23]\\.[\\d\\.]+)/i, // iCab\n /\\b(libweb)/i\n ], [NAME, VERSION], [\n\n /rv\\:([\\w\\.]{1,9})\\b.+(gecko)/i // Gecko\n ], [VERSION, NAME]\n ],\n\n os : [[\n\n // Windows\n /microsoft (windows) (vista|xp)/i // Windows (iTunes)\n ], [NAME, VERSION], [\n /(windows (?:phone(?: os)?|mobile))[\\/ ]?([\\d\\.\\w ]*)/i // Windows Phone\n ], [NAME, [VERSION, strMapper, windowsVersionMap]], [\n /windows nt 6\\.2; (arm)/i, // Windows RT\n /windows[\\/ ]?([ntce\\d\\. ]+\\w)(?!.+xbox)/i,\n /(?:win(?=3|9|n)|win 9x )([nt\\d\\.]+)/i\n ], [[VERSION, strMapper, windowsVersionMap], [NAME, 'Windows']], [\n\n // iOS/macOS\n /ip[honead]{2,4}\\b(?:.*os ([\\w]+) like mac|; opera)/i, // iOS\n /(?:ios;fbsv\\/|iphone.+ios[\\/ ])([\\d\\.]+)/i,\n /cfnetwork\\/.+darwin/i\n ], [[VERSION, /_/g, '.'], [NAME, 'iOS']], [\n /(mac os x) ?([\\w\\. ]*)/i,\n /(macintosh|mac_powerpc\\b)(?!.+haiku)/i // Mac OS\n ], [[NAME, MAC_OS], [VERSION, /_/g, '.']], [\n\n // Mobile OSes\n /droid ([\\w\\.]+)\\b.+(android[- ]x86|harmonyos)/i // Android-x86/HarmonyOS\n ], [VERSION, NAME], [ // Android/WebOS/QNX/Bada/RIM/Maemo/MeeGo/Sailfish OS\n /(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\\/ ]?([\\w\\.]*)/i,\n /(blackberry)\\w*\\/([\\w\\.]*)/i, // Blackberry\n /(tizen|kaios)[\\/ ]([\\w\\.]+)/i, // Tizen/KaiOS\n /\\((series40);/i // Series 40\n ], [NAME, VERSION], [\n /\\(bb(10);/i // BlackBerry 10\n ], [VERSION, [NAME, BLACKBERRY]], [\n /(?:symbian ?os|symbos|s60(?=;)|series60)[-\\/ ]?([\\w\\.]*)/i // Symbian\n ], [VERSION, [NAME, 'Symbian']], [\n /mozilla\\/[\\d\\.]+ \\((?:mobile|tablet|tv|mobile; [\\w ]+); rv:.+ gecko\\/([\\w\\.]+)/i // Firefox OS\n ], [VERSION, [NAME, FIREFOX+' OS']], [\n /web0s;.+rt(tv)/i,\n /\\b(?:hp)?wos(?:browser)?\\/([\\w\\.]+)/i // WebOS\n ], [VERSION, [NAME, 'webOS']], [\n /watch(?: ?os[,\\/]|\\d,\\d\\/)([\\d\\.]+)/i // watchOS\n ], [VERSION, [NAME, 'watchOS']], [\n\n // Google Chromecast\n /crkey\\/([\\d\\.]+)/i // Google Chromecast\n ], [VERSION, [NAME, CHROME+'cast']], [\n /(cros) [\\w]+(?:\\)| ([\\w\\.]+)\\b)/i // Chromium OS\n ], [[NAME, CHROMIUM_OS], VERSION],[\n\n // Smart TVs\n /panasonic;(viera)/i, // Panasonic Viera\n /(netrange)mmh/i, // Netrange\n /(nettv)\\/(\\d+\\.[\\w\\.]+)/i, // NetTV\n\n // Console\n /(nintendo|playstation) ([wids345portablevuch]+)/i, // Nintendo/Playstation\n /(xbox); +xbox ([^\\);]+)/i, // Microsoft Xbox (360, One, X, S, Series X, Series S)\n\n // Other\n /\\b(joli|palm)\\b ?(?:os)?\\/?([\\w\\.]*)/i, // Joli/Palm\n /(mint)[\\/\\(\\) ]?(\\w*)/i, // Mint\n /(mageia|vectorlinux)[; ]/i, // Mageia/VectorLinux\n /([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\\/ ]?(?!chrom|package)([-\\w\\.]*)/i,\n // Ubuntu/Debian/SUSE/Gentoo/Arch/Slackware/Fedora/Mandriva/CentOS/PCLinuxOS/RedHat/Zenwalk/Linpus/Raspbian/Plan9/Minix/RISCOS/Contiki/Deepin/Manjaro/elementary/Sabayon/Linspire\n /(hurd|linux) ?([\\w\\.]*)/i, // Hurd/Linux\n /(gnu) ?([\\w\\.]*)/i, // GNU\n /\\b([-frentopcghs]{0,5}bsd|dragonfly)[\\/ ]?(?!amd|[ix346]{1,2}86)([\\w\\.]*)/i, // FreeBSD/NetBSD/OpenBSD/PC-BSD/GhostBSD/DragonFly\n /(haiku) (\\w+)/i // Haiku\n ], [NAME, VERSION], [\n /(sunos) ?([\\w\\.\\d]*)/i // Solaris\n ], [[NAME, 'Solaris'], VERSION], [\n /((?:open)?solaris)[-\\/ ]?([\\w\\.]*)/i, // Solaris\n /(aix) ((\\d)(?=\\.|\\)| )[\\w\\.])*/i, // AIX\n /\\b(beos|os\\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i, // BeOS/OS2/AmigaOS/MorphOS/OpenVMS/Fuchsia/HP-UX/SerenityOS\n /(unix) ?([\\w\\.]*)/i // UNIX\n ], [NAME, VERSION]\n ]\n };\n\n /////////////////\n // Constructor\n ////////////////\n\n var UAParser = function (ua, extensions) {\n\n if (typeof ua === OBJ_TYPE) {\n extensions = ua;\n ua = undefined;\n }\n\n if (!(this instanceof UAParser)) {\n return new UAParser(ua, extensions).getResult();\n }\n\n var _navigator = (typeof window !== UNDEF_TYPE && window.navigator) ? window.navigator : undefined;\n var _ua = ua || ((_navigator && _navigator.userAgent) ? _navigator.userAgent : EMPTY);\n var _uach = (_navigator && _navigator.userAgentData) ? _navigator.userAgentData : undefined;\n var _rgxmap = extensions ? extend(regexes, extensions) : regexes;\n var _isSelfNav = _navigator && _navigator.userAgent == _ua;\n\n this.getBrowser = function () {\n var _browser = {};\n _browser[NAME] = undefined;\n _browser[VERSION] = undefined;\n rgxMapper.call(_browser, _ua, _rgxmap.browser);\n _browser[MAJOR] = majorize(_browser[VERSION]);\n // Brave-specific detection\n if (_isSelfNav && _navigator && _navigator.brave && typeof _navigator.brave.isBrave == FUNC_TYPE) {\n _browser[NAME] = 'Brave';\n }\n return _browser;\n };\n this.getCPU = function () {\n var _cpu = {};\n _cpu[ARCHITECTURE] = undefined;\n rgxMapper.call(_cpu, _ua, _rgxmap.cpu);\n return _cpu;\n };\n this.getDevice = function () {\n var _device = {};\n _device[VENDOR] = undefined;\n _device[MODEL] = undefined;\n _device[TYPE] = undefined;\n rgxMapper.call(_device, _ua, _rgxmap.device);\n if (_isSelfNav && !_device[TYPE] && _uach && _uach.mobile) {\n _device[TYPE] = MOBILE;\n }\n // iPadOS-specific detection: identified as Mac, but has some iOS-only properties\n if (_isSelfNav && _device[MODEL] == 'Macintosh' && _navigator && typeof _navigator.standalone !== UNDEF_TYPE && _navigator.maxTouchPoints && _navigator.maxTouchPoints > 2) {\n _device[MODEL] = 'iPad';\n _device[TYPE] = TABLET;\n }\n return _device;\n };\n this.getEngine = function () {\n var _engine = {};\n _engine[NAME] = undefined;\n _engine[VERSION] = undefined;\n rgxMapper.call(_engine, _ua, _rgxmap.engine);\n return _engine;\n };\n this.getOS = function () {\n var _os = {};\n _os[NAME] = undefined;\n _os[VERSION] = undefined;\n rgxMapper.call(_os, _ua, _rgxmap.os);\n if (_isSelfNav && !_os[NAME] && _uach && _uach.platform && _uach.platform != 'Unknown') {\n _os[NAME] = _uach.platform \n .replace(/chrome os/i, CHROMIUM_OS)\n .replace(/macos/i, MAC_OS); // backward compatibility\n }\n return _os;\n };\n this.getResult = function () {\n return {\n ua : this.getUA(),\n browser : this.getBrowser(),\n engine : this.getEngine(),\n os : this.getOS(),\n device : this.getDevice(),\n cpu : this.getCPU()\n };\n };\n this.getUA = function () {\n return _ua;\n };\n this.setUA = function (ua) {\n _ua = (typeof ua === STR_TYPE && ua.length > UA_MAX_LENGTH) ? trim(ua, UA_MAX_LENGTH) : ua;\n return this;\n };\n this.setUA(_ua);\n return this;\n };\n\n UAParser.VERSION = LIBVERSION;\n UAParser.BROWSER = enumerize([NAME, VERSION, MAJOR]);\n UAParser.CPU = enumerize([ARCHITECTURE]);\n UAParser.DEVICE = enumerize([MODEL, VENDOR, TYPE, CONSOLE, MOBILE, SMARTTV, TABLET, WEARABLE, EMBEDDED]);\n UAParser.ENGINE = UAParser.OS = enumerize([NAME, VERSION]);\n\n ///////////\n // Export\n //////////\n\n // check js environment\n if (typeof(exports) !== UNDEF_TYPE) {\n // nodejs env\n if (typeof module !== UNDEF_TYPE && module.exports) {\n exports = module.exports = UAParser;\n }\n exports.UAParser = UAParser;\n } else {\n // requirejs env (optional)\n if (typeof(define) === FUNC_TYPE && define.amd) {\n define(function () {\n return UAParser;\n });\n } else if (typeof window !== UNDEF_TYPE) {\n // browser env\n window.UAParser = UAParser;\n }\n }\n\n // jQuery/Zepto specific (optional)\n // Note:\n // In AMD env the global scope should be kept clean, but jQuery is an exception.\n // jQuery always exports to global scope, unless jQuery.noConflict(true) is used,\n // and we should catch that.\n var $ = typeof window !== UNDEF_TYPE && (window.jQuery || window.Zepto);\n if ($ && !$.ua) {\n var parser = new UAParser();\n $.ua = parser.getResult();\n $.ua.get = function () {\n return parser.getUA();\n };\n $.ua.set = function (ua) {\n parser.setUA(ua);\n var result = parser.getResult();\n for (var prop in result) {\n $.ua[prop] = result[prop];\n }\n };\n }\n\n})(typeof window === 'object' ? window : this);\n","import * as React from \"react\";\nimport { UAParser } from \"ua-parser-js\";\n\nconst uaParser = new UAParser();\n\nexport const useUA = () => {\n return React.useMemo<UAParser.IResult>(\n () => ({\n os: uaParser.getOS(),\n browser: uaParser.getBrowser(),\n cpu: uaParser.getCPU(),\n device: uaParser.getDevice(),\n engine: uaParser.getEngine(),\n ua: uaParser.getUA(),\n }),\n [],\n );\n};\n\nexport const useBrowser = () => {\n return React.useMemo<UAParser.IResult[\"browser\"]>(() => uaParser.getBrowser(), []);\n};\n","import { useUA } from \"./useUA\";\n\n// Deterministically detects if Home is running in an io.CD container.\n// We need this only for when window.iodesktop is not injected and we have no other way to detect if Home is in an io.CD environment.\nexport const useIsRunningInDesktopContainer = (): boolean => {\n const { ua } = useUA();\n\n return ua.includes(\"io-connect-desktop\");\n};\n","import { useState, useContext, useEffect } from \"react\";\nimport { IOConnectBrowser } from \"@interopio/browser\";\nimport { IOConnectContext } from \"@interopio/react-hooks\";\nimport type { Layout } from \"../lib/layouts-panel/types\";\n\nexport const useLayouts = () => {\n const [layouts, setLayouts] = useState<Layout[]>([]);\n const [isInitialized, setIsInitialized] = useState<boolean>(false);\n\n const io = useContext(IOConnectContext);\n\n useEffect(() => {\n if (!io) {\n return;\n }\n\n let isUnsubscribed = false;\n const unsubscribeFns: Array<() => void> = [];\n\n const unsubscribeOnAdded = io.layouts.onAdded((addedLayout) => {\n if (addedLayout.type !== \"Global\" || isUnsubscribed) {\n return;\n }\n\n setIsInitialized(true);\n\n const { name } = addedLayout;\n\n setLayouts((layouts) => [...layouts, { name }]);\n });\n\n const unsubscribeOnRemoved = io.layouts.onRemoved((removedLayout) => {\n if (removedLayout.type !== \"Global\" || isUnsubscribed) {\n return;\n }\n\n setLayouts((layouts) => layouts.filter((layout) => layout.name !== removedLayout.name));\n });\n\n const unsubscribeOnRenamed = (io as IOConnectBrowser.API).layouts.onRenamed((renamedLayout, previous) => {\n if (renamedLayout.type !== \"Global\" || isUnsubscribed) {\n return;\n }\n\n const { name } = renamedLayout;\n\n setLayouts((layouts) => {\n const renamedLayoutIndex = layouts.findIndex((layout) => layout.name === previous?.name);\n\n return renamedLayoutIndex === -1\n ? layouts\n : [...layouts.slice(0, renamedLayoutIndex), { name }, ...layouts.slice(renamedLayoutIndex + 1)];\n });\n });\n\n unsubscribeFns.push(unsubscribeOnAdded, unsubscribeOnRemoved, unsubscribeOnRenamed);\n\n return () => {\n isUnsubscribed = true;\n\n unsubscribeFns.forEach((fn) => fn());\n };\n }, [io]);\n\n return { layouts, isInitialized };\n};\n","import { useContext, useEffect, useState } from \"react\";\nimport { IOConnectBrowser } from \"@interopio/browser\";\nimport { IOConnectContext } from \"@interopio/react-hooks\";\n\nexport const useNotifications = () => {\n const [notifications, setNotifications] = useState<IOConnectBrowser.Notifications.NotificationData[]>([]);\n const io = useContext(IOConnectContext);\n\n useEffect(() => {\n if (!io) {\n return;\n }\n\n const unsubscribeOnRaised = io.notifications.onRaised((raisedNotification) =>\n setNotifications((current) => [...current, raisedNotification]),\n );\n\n const unsubscribeOnClosed = io.notifications.onClosed((closedNotification) =>\n setNotifications((current) => current.filter((notification) => notification.id !== closedNotification.id)),\n );\n\n const unsubscribeOnStateChanged = io.notifications.onStateChanged(({ id }, state) => {\n setNotifications((current) => {\n const notificationIndex = current.findIndex((notification) => notification.id === id);\n\n if (notificationIndex === -1) {\n return current;\n }\n\n return [\n ...current.slice(0, notificationIndex),\n { ...current[notificationIndex], state },\n ...current.slice(notificationIndex + 1),\n ];\n });\n });\n\n io.notifications.list().then(setNotifications).catch(console.error);\n\n return () => {\n unsubscribeOnRaised();\n unsubscribeOnClosed();\n unsubscribeOnStateChanged();\n };\n }, [io]);\n\n return notifications;\n};\n","import { useContext, useEffect, useState } from \"react\";\nimport { IOConnectContext } from \"@interopio/react-hooks\";\nimport { IOConnectBrowser } from \"@interopio/browser\";\nimport { IOConnectDesktop } from \"@interopio/desktop\";\n\nexport const useNotificationsConfiguration = () => {\n const [configuration, setConfiguration] = useState<\n IOConnectBrowser.Notifications.Configuration | IOConnectDesktop.Notifications.Configuration\n >({});\n const io = useContext(IOConnectContext);\n\n useEffect(() => {\n if (!io) {\n return;\n }\n\n const unsubscribeOnConfigurationChanged = io.notifications.onConfigurationChanged((newConfiguration) =>\n setConfiguration(newConfiguration),\n );\n\n return () => {\n unsubscribeOnConfigurationChanged();\n };\n }, [io]);\n\n return configuration;\n};\n","import { useEffect } from \"react\";\n\ninterface Config {\n handler: (event: FocusEvent) => void;\n skip?: boolean;\n}\n\nexport const useOnIframeFocus = (config: Config) => {\n const { handler, skip } = config;\n\n useEffect(() => {\n if (skip) {\n return;\n }\n\n const listener = (event: FocusEvent) => {\n if (document.activeElement?.nodeName !== \"IFRAME\") {\n return;\n }\n\n handler(event);\n };\n\n window.addEventListener(\"blur\", listener, true);\n\n return () => {\n window.removeEventListener(\"blur\", listener, true);\n };\n }, [handler, skip]);\n};\n","import { RefObject, useEffect } from \"react\";\n\ninterface Config {\n eventType: \"click\" | \"mousedown\" | \"mouseup\" | \"touchstart\" | \"touchend\";\n handler: (event: MouseEvent | TouchEvent) => void;\n ref: RefObject<HTMLElement> | RefObject<HTMLElement>[];\n skip?: boolean;\n}\n\nexport const useOnOutsideClick = (config: Config) => {\n const { eventType, handler, ref, skip } = config;\n\n useEffect(() => {\n if (skip) {\n return;\n }\n\n const listener = (event: MouseEvent | TouchEvent) => {\n const target = event.target as Node;\n\n const isOutside = Array.isArray(ref)\n ? ref.every((ref) => ref.current && !ref.current.contains(target))\n : ref.current && !ref.current.contains(target);\n\n if (isOutside) {\n handler(event);\n }\n };\n\n document.addEventListener(eventType, listener, true);\n\n return () => {\n document.removeEventListener(eventType, listener, true);\n };\n }, [eventType, handler, ref, skip]);\n};\n","import { Decoder, boolean, object } from \"decoder-validate\";\nimport { PlatformWindow } from \"../lib/home-app-workspace/types\";\nimport { PlatformSetupStatus } from \"../lib/platform-setup/types\";\nimport { nonEmptyStringDecoder } from \"./base\";\n\nexport const platformWindowStorageValueDecoder: Decoder<PlatformWindow | null> = object({\n name: nonEmptyStringDecoder,\n});\n\nexport const platformSetupStorageValueDecoder: Decoder<PlatformSetupStatus | null> = object({\n isCompleted: boolean(),\n});\n","import { Decoder } from \"decoder-validate\";\nimport { useCallback, useEffect, useState } from \"react\";\n\ntype StorageType = \"localStorage\" | \"sessionStorage\";\n\nexport const useStorage = <T>(type: StorageType, key: string, decoder: Decoder<T | null>) => {\n const [storedValue, setStoredValue] = useState<T | null>(() => {\n try {\n const item = window[type].getItem(key);\n\n return item ? JSON.parse(item) : null;\n } catch (error) {\n console.log(error);\n\n return null;\n }\n });\n\n const customEventType = `${type}-${key}`;\n\n useEffect(() => {\n const eventHandler = (event: CustomEvent) => {\n setStoredValue(event.detail);\n };\n\n window.addEventListener(customEventType, eventHandler as EventListener);\n\n return () => {\n window.removeEventListener(customEventType, eventHandler as EventListener);\n };\n }, [customEventType]);\n\n const setValue = useCallback(\n (value: T | null) => {\n try {\n if (!value) {\n window[type].removeItem(key);\n setStoredValue(null);\n return;\n }\n\n const decoderResult = decoder.run(value);\n\n if (!decoderResult.ok) {\n console.warn(`Error validating the value to be stored: ${decoderResult.error.message}`);\n return;\n }\n\n const valueToStore = decoderResult.result;\n\n setStoredValue(valueToStore);\n\n window[type].setItem(key, JSON.stringify(valueToStore));\n window.dispatchEvent(new CustomEvent(customEventType, { detail: valueToStore }));\n } catch (error) {\n console.log(error);\n }\n },\n [key, type, customEventType, decoder]\n );\n\n return [storedValue, setValue] as const;\n};\n","import { PLATFORM_WINDOW_SESSION_STORAGE_KEY } from \"../constants/storageKeys\";\nimport { platformWindowStorageValueDecoder } from \"../decoders/platform\";\nimport { PlatformWindow } from \"../lib/home-app-workspace/types\";\nimport { useStorage } from \"./useStorage\";\n\nexport const usePlatformWindow = (): {\n isPlatformWindow: boolean;\n setPlatformWindow: (value: PlatformWindow | null) => void;\n} => {\n const [platformWindow, setPlatformWindow] = useStorage<PlatformWindow>(\n \"sessionStorage\",\n PLATFORM_WINDOW_SESSION_STORAGE_KEY,\n platformWindowStorageValueDecoder\n );\n\n const isPlatformWindow = !platformWindow || (window as any).name === platformWindow.name;\n\n return { isPlatformWindow, setPlatformWindow };\n};\n","import { useEffect, useState } from \"react\";\n\nexport const usePressedKeys = (): string | null => {\n const [pressedKeys, setPressedKeys] = useState<string[]>([]);\n\n useEffect(() => {\n const onKeyDown = ({ key }: KeyboardEvent) => {\n setPressedKeys((keys) => (keys.includes(key) ? keys : keys.concat(key)));\n };\n\n const onKeyUp = (event: KeyboardEvent) => {\n setPressedKeys((keys) => keys.filter((key) => key !== event.key));\n };\n\n const onBlur = () => {\n setPressedKeys([]);\n };\n\n document.addEventListener(\"keydown\", onKeyDown);\n document.addEventListener(\"keyup\", onKeyUp);\n window.addEventListener(\"blur\", onBlur);\n\n return () => {\n document.removeEventListener(\"keydown\", onKeyDown);\n document.removeEventListener(\"keyup\", onKeyUp);\n window.removeEventListener(\"blur\", onBlur);\n };\n }, []);\n\n // TODO: clarify the logic of the hook\n return pressedKeys.length === 1 ? pressedKeys[0] : null;\n};\n","import { useContext, useCallback } from \"react\";\nimport { IOConnectContext } from \"@interopio/react-hooks\";\nimport { LayoutSummary } from \"../lib/layouts-panel/types\";\nimport { HOME_ALERT_VARIANTS } from \"../constants/alerts\";\nimport { requestAlert } from \"../helpers/alerts\";\n\nexport const useRestoreLayout = () => {\n const io = useContext(IOConnectContext);\n\n return useCallback(\n async (name: string, onSuccessfulLayoutRestore?: (layout: LayoutSummary) => void) => {\n if (!io) {\n return;\n }\n\n try {\n await io.layouts.restore({ name });\n onSuccessfulLayoutRestore?.({ name });\n\n await requestAlert({\n io,\n variant: HOME_ALERT_VARIANTS.SUCCESS,\n text: `Layout \"${name}\" was loaded successfully.`,\n });\n } catch (error) {\n await requestAlert({\n io,\n variant: HOME_ALERT_VARIANTS.WARNING,\n text: `Failed to load Layout \"${name}\".`,\n error,\n });\n }\n },\n [io]\n );\n};\n","export const MODIFIER_KEYS = {\n CONTROL: \"Control\",\n SHIFT: \"Shift\",\n} as const;\n","import { useContext } from \"react\";\nimport { IOConnectContext } from \"@interopio/react-hooks\";\nimport { IOConnectWorkspaces } from \"@interopio/workspaces-api\";\nimport { MODIFIER_KEYS } from \"../constants/modifierKeys\";\nimport { useFrameId } from \"./useFrameId\";\nimport { HOME_ALERT_VARIANTS } from \"../constants/alerts\";\nimport { requestAlert } from \"../helpers/alerts\";\n\nexport const useRestoreWorkspace = () => {\n const io = useContext(IOConnectContext);\n const frameId = useFrameId();\n\n return async ({ id, modifier, reuseWorkspaceId }: { id: string; modifier?: string | null; reuseWorkspaceId?: string }) => {\n try {\n const restoreOptions: IOConnectWorkspaces.RestoreWorkspaceConfig =\n modifier === MODIFIER_KEYS.CONTROL ? { newFrame: true } : { frameId, reuseWorkspaceId };\n\n await io.workspaces?.restoreWorkspace(id, restoreOptions);\n } catch (error) {\n await requestAlert({\n io,\n variant: HOME_ALERT_VARIANTS.WARNING,\n text: `Failed to load Workspace \"${id}\".`,\n error,\n });\n }\n };\n};\n","import { useState, useContext, useEffect, useRef } from \"react\";\nimport { IOConnectContext } from \"@interopio/react-hooks\";\nimport { IOConnectBrowser } from \"@interopio/browser\";\nimport { IOConnectSearch } from \"@interopio/search-api\";\n\nexport const useSearch = (\n searchTerm: string\n): {\n resultsToRender: IOConnectSearch.QueryResult[];\n isLoading: boolean;\n} => {\n const [resultsToRender, setResultsToRender] = useState<IOConnectSearch.QueryResult[]>([]);\n const [isLoading, setIsLoading] = useState(true);\n const queryRef = useRef<IOConnectSearch.Query | null>(null);\n\n const io = useContext(IOConnectContext) as IOConnectBrowser.API;\n\n useEffect(() => {\n const ioSearch = io?.search;\n\n if (!ioSearch) {\n return;\n }\n\n const unsubscribeFns: IOConnectSearch.UnsubscribeFunction[] = [];\n const currentResults: IOConnectSearch.QueryResult[] = [];\n\n const sendQuery = async (searchTerm: string): Promise<void> => {\n setIsLoading(true);\n setResultsToRender([]);\n\n const query = await ioSearch.query({\n search: searchTerm.trim(),\n providerLimits: { maxResults: 100, maxResultsPerType: 5 },\n });\n\n if (query === queryRef.current) {\n return;\n }\n\n queryRef.current = query;\n\n const unsubscribeOnResults = query.onResults((response) => {\n response.results.forEach((queryResult) => {\n const resultExists = currentResults.find(\n (result) => result.id === queryResult.id && result.type.name === queryResult.type.name\n );\n\n if (resultExists) {\n return;\n }\n\n currentResults.push(queryResult);\n });\n\n setIsLoading(false);\n setResultsToRender([...currentResults]);\n });\n\n const unsubscribeOnCompleted = query.onCompleted(() => {\n setIsLoading(false);\n });\n\n const unsubscribeOnError = query.onError((error) => {\n console.error(`Query failed. Provider: ${error.provider}; Error: ${error.error}`);\n });\n\n unsubscribeFns.push(unsubscribeOnResults, unsubscribeOnCompleted, unsubscribeOnError);\n };\n\n sendQuery(searchTerm);\n\n return () => {\n unsubscribeFns.forEach((fn) => fn());\n };\n }, [io, searchTerm]);\n\n return { resultsToRender, isLoading };\n};\n","import { useContext } from \"react\";\nimport { IOConnectContext } from \"@interopio/react-hooks\";\nimport { MODIFIER_KEYS } from \"../constants/modifierKeys\";\nimport { HOME_ALERT_VARIANTS } from \"../constants/alerts\";\nimport { requestAlert } from \"../helpers/alerts\";\nimport { checkIsDesktop } from \"../common/utils\";\n\ntype StartApplicationConfig = { id: string; modifier: string | null; title?: string };\n\nexport const useStartApplication = () => {\n const io = useContext(IOConnectContext);\n\n const startDesktopApplication = async ({ id }: StartApplicationConfig) => {\n await io.appManager.application(id)?.start();\n };\n\n const startBrowserApplication = async ({ id, modifier }: StartApplicationConfig) => {\n const selectedWorkspace = await io.workspaces?.getWorkspace((workspace) => workspace.isSelected === true);\n\n const outermostChild = selectedWorkspace?.children[0];\n\n const standalone = modifier === MODIFIER_KEYS.CONTROL || !selectedWorkspace || outermostChild?.type === \"window\";\n\n if (standalone) {\n await io.appManager.application(id)?.start();\n return;\n }\n\n const group =\n outermostChild?.type === \"group\" ? outermostChild : await (outermostChild ?? selectedWorkspace).addGroup();\n\n await group.addWindow({ appName: id });\n };\n\n return async (config: StartApplicationConfig) => {\n try {\n const startApplication = checkIsDesktop() ? startDesktopApplication : startBrowserApplication;\n\n await startApplication(config);\n } catch (error) {\n await requestAlert({\n io,\n variant: HOME_ALERT_VARIANTS.WARNING,\n text: `Failed to start app \"${config.title}\".`,\n error,\n });\n }\n };\n};\n","import { useState, useContext, useEffect } from \"react\";\nimport { IOConnectContext } from \"@interopio/react-hooks\";\nimport { IOConnectWorkspaces } from \"@interopio/workspaces-api\";\n\nexport const useWorkspacesInstances = () => {\n const [runningInstances, setRunningInstances] = useState<{\n [wsName: string]: string[];\n }>({});\n\n const io = useContext(IOConnectContext);\n\n useEffect(() => {\n if (!io) {\n return;\n }\n\n const unsubscribeArr: (IOConnectWorkspaces.Unsubscribe | undefined)[] = [];\n\n (async () => {\n try {\n const unsubscribeOnAdd = await io.workspaces?.onWorkspaceOpened((workspace) =>\n setRunningInstances((current) => ({\n ...current,\n [workspace.title]: [...(current[workspace.title] ?? []), workspace.id],\n })),\n );\n unsubscribeArr.push(unsubscribeOnAdd);\n\n const unsubscribeOnClosed = await io.workspaces?.onWorkspaceClosed(({ workspaceId }) =>\n setRunningInstances((current) => {\n const updated = { ...current };\n for (const key in updated) {\n if (updated[key].includes(workspaceId)) {\n updated[key] = updated[key].filter((instanceId) => instanceId !== workspaceId);\n break;\n }\n }\n return updated;\n }),\n );\n unsubscribeArr.push(unsubscribeOnClosed);\n } catch (error) {\n console.error(error);\n }\n })();\n\n return () => unsubscribeArr.forEach((unsubscribe) => unsubscribe?.());\n }, [io]);\n\n return runningInstances;\n};\n","/* Any kind of mouse or keyboard interaction on any HTML element */\nexport type ActivationEvent<T extends HTMLElement = HTMLElement> = React.KeyboardEvent<T> | React.MouseEvent<T>;\n\n/**\n * If a keypress is the equivalent of a mouse click event. This would be pressing ENTER or SPACEBAR.\n */\nexport const isClickKeypress = (event: React.KeyboardEvent<HTMLElement>) => event.key === \"Enter\" || event.key === \" \";\n\ntype handler = (event: ActivationEvent) => void;\n\n/**\n * Utility function to convert an `onClick` prop into a keyboard-accessible equivalent.\n *\n * To use, take an existing component like this:\n * `<div onClick={doSomething}></div>`\n *\n * and convert it to this:\n * `<div {...onClickA11y(doSomething)}></div>`\n *\n * This will add an onClick prop, and onKeyDown prop, and a tabIndex={0} (so that a keyboard-only user can reach the element)\n *\n * Make sure you also add a `role` and `aria-label` attribute for maximum accessibility!\n */\nexport const onClickA11y = (clickHandler?: handler, keydownHandler?: handler) => {\n if (typeof clickHandler === \"undefined\") {\n return {};\n }\n\n return {\n tabIndex: 0,\n onClick: clickHandler,\n onKeyDown: (event: React.KeyboardEvent<HTMLElement>) => {\n if (isClickKeypress(event)) {\n event.preventDefault();\n clickHandler?.(event);\n }\n keydownHandler?.(event);\n },\n };\n};\n\ntype KeyboardNavigationProps = {\n event: React.KeyboardEvent<HTMLElement>;\n currentIndex: number;\n moveFocus: (newNumber: number) => void;\n min: number;\n max: number;\n onClose?: () => void;\n};\nexport const keyboardNavigation = ({ event, currentIndex, moveFocus, min, max, onClose }: KeyboardNavigationProps) => {\n switch (event.key) {\n case \"ArrowUp\": {\n moveFocus(Math.max(currentIndex - 1, min));\n break;\n }\n case \"ArrowDown\": {\n moveFocus(Math.min(currentIndex + 1, max));\n break;\n }\n case \"Home\": {\n moveFocus(min);\n break;\n }\n case \"End\": {\n moveFocus(max);\n break;\n }\n case \"Escape\": {\n if (onClose) {\n onClose();\n break;\n }\n return;\n }\n default: {\n return;\n }\n }\n\n // If we did something with the key that was pressed, prevent the keypress from bubbling\n event.stopPropagation();\n event.preventDefault();\n};\n","import { forwardRef, useRef, useState, useEffect, Fragment } from \"react\";\nimport classNames from \"classnames\";\nimport { List, Icon, ImageIcon } from \"@interopio/components-react\";\nimport { ContextMenuAction } from \"./types\";\nimport { ActivationEvent, keyboardNavigation, onClickA11y } from \"../../helpers/a11y\";\nimport \"./context-menu.scss\";\n\ninterface ContextMenuProps extends React.HTMLAttributes<HTMLUListElement> {\n title?: string;\n actions: ContextMenuAction[];\n onClose: () => void;\n onActionItemClick: (event: ActivationEvent, action: ContextMenuAction) => void;\n}\n\nexport const ContextMenu = forwardRef<HTMLUListElement, ContextMenuProps>((props, ref) => {\n const { title, actions, className, onClose, onActionItemClick, ...rest } = props;\n const itemRefs = useRef<Record<number, HTMLLIElement | null>>({});\n const [focusedItemIndex, setFocusedItemIndex] = useState(0);\n\n const moveFocus = (newIndex: number) => {\n itemRefs.current[newIndex]?.focus();\n setFocusedItemIndex(newIndex);\n };\n\n useEffect(() => {\n itemRefs.current[focusedItemIndex]?.focus();\n }, []);\n\n return (\n <List\n ref={ref}\n className={classNames(className, \"context-menu\")}\n onClick={(event) => event.stopPropagation()}\n onKeyDown={(event) =>\n keyboardNavigation({\n event,\n currentIndex: focusedItemIndex,\n min: 0,\n max: actions.length - 1,\n moveFocus,\n onClose,\n })\n }\n {...rest}\n >\n {title && <List.ItemSection>{title}</List.ItemSection>}\n {actions.map((action, index) => {\n const itemText = action.displayName || action.name;\n\n const prepend = action.iconSrc ? (\n <ImageIcon size=\"16\" src={action.iconSrc} alt={`${itemText} icon`} />\n ) : (\n action.icon && <Icon size=\"16\" variant={action.icon} />\n );\n\n return (\n <Fragment key={action.name}>\n <List.Item\n ref={(element) => (itemRefs.current[index] = element)}\n prepend={prepend}\n disabled={action.disabled}\n tabIndex={-1}\n {...onClickA11y((event) => onActionItemClick(event, action))}\n >\n {itemText}\n </List.Item>\n {action.separatorAfter && <li className=\"context-menu-separator\" aria-hidden={true} />}\n </Fragment>\n );\n })}\n </List>\n );\n});\n\nexport default ContextMenu;\n","import { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { PopperChildrenProps, usePopper } from \"react-popper\";\nimport { ButtonIcon, ButtonIconProps, IconProps } from \"@interopio/components-react\";\nimport { ActivationEvent, onClickA11y } from \"../../../helpers/a11y\";\nimport ContextMenu from \"../context-menu\";\nimport { ContextMenuAction } from \"../types\";\nimport { useOnIframeFocus, useOnOutsideClick } from \"../../../hooks\";\n\nexport interface DropdownButtonProps {\n title?: string;\n buttonSize?: ButtonIconProps[\"size\"];\n icon?: IconProps[\"variant\"];\n iconSize?: IconProps[\"size\"];\n actions: ContextMenuAction[];\n isTabStop?: boolean;\n onActionItemClick: (event: ActivationEvent, action: ContextMenuAction) => void;\n buttonVariant?: ButtonIconProps[\"variant\"];\n placement?: PopperChildrenProps[\"placement\"];\n offset?: [number, number];\n shouldCloseOnOutsideScroll?: boolean;\n shouldCloseOnWindowBlur?: boolean;\n}\n\nexport function DropdownButton(props: Readonly<DropdownButtonProps>) {\n const {\n title,\n buttonSize = \"16\",\n icon = \"ellipsis-vertical\",\n iconSize = \"12\",\n actions,\n isTabStop,\n onActionItemClick,\n buttonVariant,\n placement,\n offset,\n shouldCloseOnOutsideScroll = false,\n shouldCloseOnWindowBlur = false,\n } = props;\n\n const [isContextMenuOpen, setIsContextMenuOpen] = useState(false);\n const [referenceElement, setReferenceElement] = useState<HTMLButtonElement | null>(null);\n const [popperElement, setPopperElement] = useState<HTMLUListElement | null>(null);\n const referenceElementRef = useRef<HTMLButtonElement | null>(null);\n const popperElementRef = useRef<HTMLUListElement | null>(null);\n const insideClickRefs = useMemo(() => [popperElementRef, referenceElementRef], []);\n\n const closeContextMenu = useCallback(() => setIsContextMenuOpen(false), []);\n\n const { styles, attributes } = usePopper(referenceElement, popperElement, {\n placement,\n modifiers: [\n {\n name: \"offset\",\n options: {\n offset,\n },\n },\n ],\n });\n\n useEffect(() => {\n referenceElementRef.current = referenceElement;\n }, [referenceElement]);\n\n useEffect(() => {\n popperElementRef.current = popperElement;\n }, [popperElement]);\n\n // If eventType is \"mousedown\" or \"click\" instead of \"mouseup\", clicking the close button of a workspace tab will not close the dropdown\n // because propagation on these events is stopped\n // https://docs.interop.io/browser/capabilities/windows/workspaces/workspaces-app/index.html#group_header_components-workspace_window_tab\n useOnOutsideClick({\n eventType: \"mouseup\",\n handler: closeContextMenu,\n ref: insideClickRefs,\n skip: !isContextMenuOpen,\n });\n\n useOnIframeFocus({ handler: closeContextMenu, skip: !isContextMenuOpen });\n\n useEffect(() => {\n if (!shouldCloseOnWindowBlur || !isContextMenuOpen) {\n return;\n }\n\n window.addEventListener(\"blur\", closeContextMenu);\n\n return () => {\n window.removeEventListener(\"blur\", closeContextMenu);\n };\n }, [closeContextMenu, isContextMenuOpen, shouldCloseOnWindowBlur]);\n\n useEffect(() => {\n if (!shouldCloseOnOutsideScroll || !popperElement) {\n return;\n }\n\n const eventHandler = (event: UIEvent) => {\n const isInsidePopper = popperElement.contains(event.target as any);\n\n if (isInsidePopper) {\n event.preventDefault();\n\n return;\n }\n\n closeContextMenu();\n };\n\n document.addEventListener(\"touchmove\", eventHandler, { passive: false });\n document.addEventListener(\"wheel\", eventHandler, { passive: false });\n\n return () => {\n document.removeEventListener(\"touchmove\", eventHandler);\n document.removeEventListener(\"wheel\", eventHandler);\n };\n }, [closeContextMenu, popperElement, shouldCloseOnOutsideScroll]);\n\n const handleIconClick = (event: ActivationEvent): void => {\n event.stopPropagation();\n\n setIsContextMenuOpen((prevValue) => !prevValue);\n popperElement?.focus();\n };\n\n const handleActionItemClick = (event: ActivationEvent, action: ContextMenuAction) => {\n event.stopPropagation();\n\n onActionItemClick(event, action);\n\n closeContextMenu();\n };\n\n return (\n <>\n <ButtonIcon\n ref={setReferenceElement}\n size={buttonSize}\n icon={icon}\n iconSize={iconSize}\n variant={buttonVariant}\n {...onClickA11y(handleIconClick)}\n tabIndex={isTabStop ? 0 : -1}\n />\n\n {isContextMenuOpen && (\n <ContextMenu\n ref={setPopperElement}\n title={title}\n actions={actions}\n onActionItemClick={handleActionItemClick}\n onClose={() => {\n referenceElement?.focus();\n closeContextMenu();\n }}\n style={styles.popper}\n {...attributes.popper}\n />\n )}\n </>\n );\n}\n\nexport default DropdownButton;\n","import { HTMLAttributes } from \"react\";\nimport classNames from \"classnames\";\nimport { ButtonGroup, ButtonIcon, Icon, ImageIcon, List } from \"@interopio/components-react\";\nimport { BaseSectionItemType } from \"./types\";\nimport { useFavorites } from \"../../hooks\";\nimport DropdownButton from \"../context-menu/dropdown-button/dropdown-button\";\nimport { ContextMenuAction } from \"../context-menu/types\";\nimport { ActivationEvent, isClickKeypress, onClickA11y } from \"../../helpers/a11y\";\n\ninterface BaseSectionItemProps extends Omit<HTMLAttributes<HTMLLIElement>, \"className\"> {\n isFavoritismEnabled?: boolean;\n item: BaseSectionItemType;\n onClick: (event: ActivationEvent, action?: ContextMenuAction) => void;\n onKeyDown: (event: React.KeyboardEvent<HTMLLIElement>) => void;\n isFocused: boolean;\n liRef?: React.Ref<HTMLLIElement>;\n}\n\nexport const BaseSectionItem = (props: BaseSectionItemProps) => {\n const { isFavoritismEnabled = true, item, onClick, onKeyDown, isFocused, liRef, ...domProps } = props;\n const { favorites, toggleFavorite, isLoading: areFavoritesLoading } = useFavorites();\n const {\n description,\n icon = \"application\",\n iconSrc,\n openInstances = 0,\n title,\n tooltip,\n className,\n contextMenuActions = [],\n } = item;\n const isFavorite =\n isFavoritismEnabled && favorites.some((favorite) => favorite.type === item.type && favorite.title === item.title);\n\n const handleKeyDown: React.KeyboardEventHandler<HTMLLIElement> = (event) => {\n if (isClickKeypress(event)) {\n onClick(event);\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n\n onKeyDown(event);\n };\n\n const prepend = iconSrc ? <ImageIcon size=\"16\" src={iconSrc} alt={`${title} icon`} /> : <Icon size=\"16\" variant={icon} />;\n\n const append = (\n <>\n {openInstances !== 0 && (\n <span className=\"open-instances io-text-smaller\">\n {openInstances === 1 ? \"Opened\" : `${openInstances} opened`}\n </span>\n )}\n {(isFavoritismEnabled || contextMenuActions.length > 0) && (\n <ButtonGroup className=\"item-actions\">\n {isFavoritismEnabled && (\n <ButtonIcon\n {...onClickA11y((event) => {\n event.stopPropagation();\n toggleFavorite(item);\n })}\n tabIndex={isFocused ? 0 : -1}\n size=\"24\"\n iconSize=\"12\"\n icon={isFavorite ? \"star-full\" : \"star\"}\n disabled={areFavoritesLoading}\n />\n )}\n {contextMenuActions.length > 0 && (\n <DropdownButton\n buttonSize=\"24\"\n iconSize=\"12\"\n icon=\"ellipsis-vertical\"\n title={title}\n actions={contextMenuActions}\n onActionItemClick={onClick}\n isTabStop={isFocused}\n placement=\"bottom-end\"\n offset={[4, 0]}\n shouldCloseOnOutsideScroll={true}\n shouldCloseOnWindowBlur={true}\n />\n )}\n </ButtonGroup>\n )}\n </>\n );\n\n return (\n <List.Item\n ref={liRef}\n tabIndex={isFocused ? 0 : -1}\n className={classNames(\"io-base-section-item\", className)}\n onKeyDown={handleKeyDown}\n onClick={onClick}\n prepend={prepend}\n append={append}\n description={description}\n tooltip={tooltip ?? title}\n {...domProps}\n >\n {title}\n </List.Item>\n );\n};\n\nexport default BaseSectionItem;\n","import { useCallback } from \"react\";\nimport { usePlatformPref } from \"@interopio/components-react\";\nimport { PLATFORM_PREFS_KEYS } from \"../../constants/platformPrefs\";\nimport { Sequelizer } from \"../../common/sequelizer\";\n\nconst sequelizer = new Sequelizer();\n\nexport const useCollapsedSections = (): {\n collapsedSections: string[] | undefined;\n toggleSection: (path: string) => Promise<void>;\n} => {\n const { value, update } = usePlatformPref({\n prefKey: PLATFORM_PREFS_KEYS.COLLAPSED_SECTIONS,\n });\n\n const toggleSection = useCallback(\n (path: string): Promise<void> => {\n return sequelizer.enqueue(() => {\n return update((collapsedSections = []) => {\n const isCollapsed = collapsedSections.includes(path);\n\n return isCollapsed ? collapsedSections.filter((section) => section !== path) : [...collapsedSections, path];\n });\n });\n },\n [update],\n );\n\n return { collapsedSections: value, toggleSection };\n};\n","import { useState, useRef } from \"react\";\nimport { Collapse } from \"reactstrap\";\nimport { List } from \"@interopio/components-react\";\nimport BaseSectionHeader from \"./base-section-header\";\nimport BaseSectionItem from \"./base-section-item\";\nimport { isSection } from \"./helpers\";\nimport type { BaseSectionItemType, BaseSectionType } from \"./types\";\nimport { usePressedKeys } from \"../../hooks\";\nimport { ActivationEvent, keyboardNavigation } from \"../../helpers/a11y\";\nimport { ITEM_TYPES } from \"../../constants/itemTypes\";\nimport { useCollapsedSections } from \"./useCollapsedSections\";\n\nexport interface BaseSectionProps<Item extends BaseSectionItemType> {\n config: BaseSectionType<Item>;\n level?: number;\n path?: string;\n onItemClick: (\n event: ActivationEvent,\n params: {\n item: Item;\n modifier: string | null;\n selectedContextMenuActionName?: string;\n }\n ) => void;\n}\n\nexport const BaseSection = <Item extends BaseSectionItemType>(props: BaseSectionProps<Item>) => {\n const { config, level = 1, path = config.id, onItemClick } = props;\n const { isCollapsible = true } = config;\n const pressedKey = usePressedKeys();\n const [focusedItemIndex, setFocusedItemIndex] = useState(0);\n const liRefs = useRef<Record<number, HTMLLIElement | null>>({});\n const { collapsedSections, toggleSection } = useCollapsedSections();\n const isOpen = isCollapsible ? !collapsedSections?.includes(path) : true;\n\n const sectionItems = config.items.filter((item) => isSection(item));\n const nonSectionItems = config.items.filter((item) => !isSection(item));\n\n const items = [...sectionItems, ...nonSectionItems];\n\n const basePadding = 16;\n const paddingStep = 24;\n\n const moveFocus = (newIndex: number) => {\n (liRefs.current[newIndex]?.querySelector(\"[tabIndex]\") as HTMLElement)?.focus();\n setFocusedItemIndex(newIndex);\n };\n\n const toggleOpen = async () => {\n if (!isCollapsible) {\n return;\n }\n\n await toggleSection(path);\n };\n\n return (\n <List.ItemWithSubItems className={level === 1 ? \"main-section\" : undefined}>\n <BaseSectionHeader\n className={level === 1 ? \"io-list-item-title main-section-header\" : undefined}\n isOpen={isOpen}\n onClick={toggleOpen}\n showCollapseIcon={isCollapsible}\n showFolderIcon={level !== 1}\n style={{ paddingLeft: `${basePadding + paddingStep * Math.max(0, level - 2)}px` }}\n title={config.title}\n />\n <Collapse isOpen={isOpen} tag={List}>\n {items.map((item, index) => {\n return isSection(item) ? (\n <BaseSection\n key={item.id}\n config={item}\n level={level + 1}\n onItemClick={onItemClick}\n path={`${path}/${item.id}`}\n />\n ) : (\n <BaseSectionItem\n key={item.id}\n style={{ paddingLeft: `${basePadding + paddingStep * (level - 1)}px` }}\n liRef={(element) => (liRefs.current[index] = element)}\n isFavoritismEnabled={item.type === ITEM_TYPES.APPLICATION || item.type === ITEM_TYPES.WORKSPACE}\n item={item}\n onClick={(event, action) =>\n onItemClick?.(event, {\n item,\n modifier: pressedKey,\n selectedContextMenuActionName: action?.name,\n })\n }\n onKeyDown={(event) => {\n keyboardNavigation({\n event,\n moveFocus,\n currentIndex: focusedItemIndex,\n min: 0,\n max: items.length - 1,\n });\n }}\n isFocused={focusedItemIndex === index}\n />\n );\n })}\n </Collapse>\n </List.ItemWithSubItems>\n );\n};\n\nexport default BaseSection;\n","import { isSection } from \"../base-section/helpers\";\nimport type { SectionItemType, SectionType } from \"./types\";\n\nexport const getItemName = (item: SectionItemType): string => {\n return `${item.type}-${item.id}`;\n};\n\nexport const getClickedItem = (items: SectionType[\"items\"], clickedItemName: string): SectionItemType | undefined => {\n return buildItemsMapping(items)[clickedItemName];\n};\n\nconst buildItemsMapping = (items: SectionType[\"items\"]): { [key: string]: SectionItemType } => {\n return items.reduce<{ [key: string]: SectionItemType }>((mapping, item) => {\n return isSection(item) ? { ...mapping, ...buildItemsMapping(item.items) } : { ...mapping, [getItemName(item)]: item };\n }, {});\n};\n","import { createContext, useContext, useMemo, useState } from \"react\";\n\ninterface SectionProviderProps {\n children: React.ReactNode;\n}\n\ninterface ClickDataState {\n itemName: string;\n selectedContextMenuActionName?: string;\n}\n\nconst SectionContext = createContext<\n [ClickDataState | null, React.Dispatch<React.SetStateAction<ClickDataState | null>>] | undefined\n>(undefined);\n\nexport const useSection = () => {\n const context = useContext(SectionContext);\n\n if (context === undefined) {\n throw new Error(\"useSection must be used within a SectionProvider\");\n }\n\n return context;\n};\n\nexport const SectionProvider = ({ children }: SectionProviderProps) => {\n const [clickData, setClickData] = useState<ClickDataState | null>(null);\n\n const contextValue = useMemo<[ClickDataState | null, React.Dispatch<React.SetStateAction<ClickDataState | null>>]>(\n () => [clickData, setClickData],\n [clickData],\n );\n\n return <SectionContext.Provider value={contextValue}>{children}</SectionContext.Provider>;\n};\n","import { useEffect } from \"react\";\nimport BaseSection from \"../base-section/base-section\";\nimport { getClickedItem, getItemName } from \"./helpers\";\nimport { MODIFIER_KEYS } from \"../../constants/modifierKeys\";\nimport type { SectionItemType, SectionType } from \"./types\";\nimport { useIsLaunchpadPinned, usePressedKeys } from \"../../hooks\";\nimport { useLaunchpadAPI } from \"../launchpad/launchpad.context\";\nimport { useSection } from \"./section.context\";\nimport { ActivationEvent } from \"../../helpers/a11y\";\n\nexport interface SectionProps {\n config: SectionType;\n onItemClick?: (params: { item: SectionItemType; modifier: string | null; selectedContextMenuActionName?: string }) => void;\n}\n\nexport const Section = ({ config, onItemClick }: SectionProps) => {\n const [clickData, setClickData] = useSection();\n const launchpadAPI = useLaunchpadAPI();\n const pressedKey = usePressedKeys();\n const { isLaunchpadPinned } = useIsLaunchpadPinned();\n\n const handleItemClick = (\n _: ActivationEvent,\n params: {\n item: SectionItemType;\n selectedContextMenuActionName?: string;\n },\n ) => {\n const { item, selectedContextMenuActionName } = params;\n\n setClickData({ itemName: getItemName(item), selectedContextMenuActionName: selectedContextMenuActionName });\n };\n\n useEffect(() => {\n if (!onItemClick || !clickData) {\n return;\n }\n\n const { itemName: name, selectedContextMenuActionName } = clickData;\n\n const clickedItem = getClickedItem(config.items, name);\n\n if (!clickedItem) {\n return;\n }\n\n onItemClick({\n item: clickedItem,\n modifier: pressedKey,\n selectedContextMenuActionName,\n });\n\n setClickData(null);\n\n if (pressedKey === MODIFIER_KEYS.SHIFT || isLaunchpadPinned) {\n return;\n }\n\n launchpadAPI.close?.();\n }, [clickData, config.items, launchpadAPI, onItemClick, pressedKey, setClickData, isLaunchpadPinned]);\n\n return <BaseSection config={config} onItemClick={handleItemClick} />;\n};\n\nexport default Section;\n","import { useMemo } from \"react\";\nimport { getApplicationsSectionConfig } from \"./helpers\";\nimport Section from \"../section/section\";\nimport { useExecuteApplicationAction, useApplications, useApplicationsInstances, useStartApplication } from \"../../hooks\";\nimport type { SectionItemType } from \"../section/types\";\nimport { ApplicationsSectionProps } from \"./types\";\n\nexport function ApplicationsSection(props: ApplicationsSectionProps) {\n const { isFolderCollapsible, isSectionCollapsible, sortOrder } = props;\n const applications = useApplications();\n const runningInstances = useApplicationsInstances();\n const startApplication = useStartApplication();\n const executeApplicationAction = useExecuteApplicationAction();\n\n const config = useMemo(\n () =>\n getApplicationsSectionConfig(applications, runningInstances, {\n isFolderCollapsible,\n isSectionCollapsible,\n sortOrder,\n }),\n [applications, runningInstances, isFolderCollapsible, isSectionCollapsible, sortOrder]\n );\n\n const handleItemClick = (params: {\n item: SectionItemType;\n modifier: string | null;\n selectedContextMenuActionName?: string;\n }) => {\n const { item, modifier, selectedContextMenuActionName } = params;\n\n if (!selectedContextMenuActionName) {\n return startApplication({ id: item.id, title: item.title, modifier });\n }\n\n executeApplicationAction(item, selectedContextMenuActionName);\n };\n\n return <Section config={config} onItemClick={handleItemClick} />;\n}\n\nexport default ApplicationsSection;\n","import type { DefaultSectionProps, Favorite } from \"../../common/types\";\nimport type { SectionType } from \"../section/types\";\nimport { ascendingTitleCompare, descendingTitleCompare, sortItems } from \"../../helpers/sort\";\nimport { SORT_ORDER } from \"../../constants/sortOrder\";\nimport { DEFAULT_SECTION_IDS } from \"../../constants/sections\";\n\nexport const getFavoritesSectionConfig = (favorites: Favorite[], settings: DefaultSectionProps): SectionType => {\n const { isSectionCollapsible, sortOrder = SORT_ORDER.DISABLED } = settings;\n\n const sortedFavorites = sortItems({\n items: favorites,\n sortOrder,\n ascendingCompare: ascendingTitleCompare,\n descendingCompare: descendingTitleCompare,\n });\n\n return {\n id: DEFAULT_SECTION_IDS.FAVORITES,\n title: \"Favorites\",\n items: sortedFavorites,\n isCollapsible: isSectionCollapsible,\n };\n};\n","import { useMemo } from \"react\";\nimport { getFavoritesSectionConfig } from \"./helpers\";\nimport Section from \"../section/section\";\nimport { useFavorites } from \"../../hooks\";\nimport { DefaultSectionProps } from \"../../common/types\";\n\nexport const FavoritesSection = (props: DefaultSectionProps) => {\n const { isSectionCollapsible, sortOrder } = props;\n const { favorites } = useFavorites();\n\n const config = useMemo(\n () =>\n getFavoritesSectionConfig(favorites, {\n isSectionCollapsible,\n sortOrder,\n }),\n [favorites, isSectionCollapsible, sortOrder]\n );\n\n return favorites.length > 0 ? <Section config={config} /> : null;\n};\n\nexport default FavoritesSection;\n","import classNames from \"classnames\";\nimport { ButtonIcon, ButtonIconProps } from \"@interopio/components-react\";\n\ntype LaunchpadButtonProps = ButtonIconProps & {\n active: boolean;\n};\n\nexport const LaunchpadButton = (props: LaunchpadButtonProps) => {\n const { active, className, ...rest } = props;\n\n return (\n <ButtonIcon\n className={classNames(\"launchpad-button\", { active }, className)}\n aria-label=\"Launchpad\"\n icon=\"logo\"\n variant=\"circle\"\n size=\"32\"\n title={active ? \"Close Launchpad\" : \"Open Launchpad\"}\n {...rest}\n />\n );\n};\n\nexport default LaunchpadButton;\n","'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn Object.propertyIsEnumerable.call(target, symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n","export const PERMISSION_NAMES = {\n WINDOW_MANAGEMENT: \"window-management\",\n NOTIFICATIONS: \"notifications\",\n} as const;\n\nexport const IS_GLOBAL_LAYOUT_SUPPORTED = \"getScreenDetails\" in window;\n","import { LaunchpadSettings } from \"../io-connect-home/types\";\n\nexport const DEFAULT_LAUNCHPAD_SETTINGS: Readonly<LaunchpadSettings> = {\n header: {\n showHeader: true,\n showSearch: true,\n },\n mode: \"default\",\n};\n","import { ReactNode } from \"react\";\nimport classNames from \"classnames\";\n\ninterface LaunchpadHeaderProps {\n className?: string;\n children: ReactNode;\n}\n\nexport const LaunchpadHeader = ({ className, children }: LaunchpadHeaderProps) => {\n return <header className={classNames(\"launchpad-header\", className)}>{children}</header>;\n};\n\nexport default LaunchpadHeader;\n","import { ButtonIcon } from \"@interopio/components-react\";\nimport { useIsLaunchpadPinned } from \"../../hooks\";\n\ninterface LaunchpadPinButtonProps {\n className?: string;\n}\n\nexport const LaunchpadPinButton = ({ className }: LaunchpadPinButtonProps) => {\n const { isLaunchpadPinned, isLoading, toggle } = useIsLaunchpadPinned();\n\n return (\n <ButtonIcon\n className={className}\n size=\"32\"\n variant=\"circle\"\n icon={isLaunchpadPinned ? \"unpin\" : \"pin\"}\n onClick={toggle}\n disabled={isLoading}\n />\n );\n};\n\nexport default LaunchpadPinButton;\n","import { forwardRef, useContext, useEffect } from \"react\";\nimport classNames from \"classnames\";\nimport { IOConnectContext } from \"@interopio/react-hooks\";\nimport { IOConnectBrowser } from \"@interopio/browser\";\nimport { Input } from \"@interopio/components-react\";\n\nexport interface SearchBarProps {\n onSearch: (event: React.ChangeEvent<HTMLInputElement>) => void;\n searchTerm: string;\n onClear: () => void;\n className?: string;\n}\n\nexport const SearchBar = forwardRef<HTMLInputElement, SearchBarProps>((props, ref) => {\n const { onSearch, searchTerm, onClear, className } = props;\n\n const io = useContext(IOConnectContext) as IOConnectBrowser.API;\n\n useEffect(() => {\n if (!io?.search) {\n return;\n }\n\n io.search.setDebounceMS(450);\n }, [io]);\n\n return (\n <Input\n id=\"search-input\"\n className={classNames(\"search-bar\", className)}\n ref={ref}\n placeholder=\"Find anything\"\n value={searchTerm}\n onChange={onSearch}\n autoComplete=\"off\"\n iconPrepend=\"search\"\n iconAppend={searchTerm.length ? \"close\" : undefined}\n iconAppendOnClick={onClear}\n />\n );\n});\n\nexport default SearchBar;\n","import { useLaunchpadAPI } from \"../../launchpad/launchpad.context\";\nimport { Layout } from \"../../layouts-panel/types\";\n\nexport const useGenerateLayoutFromId = () => {\n const { defaultLayout, activeLayout } = useLaunchpadAPI();\n\n return (id: string): Layout => {\n return {\n name: id,\n isDefault: id === defaultLayout?.name,\n isActive: id === activeLayout?.name,\n };\n };\n};\n","import { useExecuteLayoutAction, useExecuteLayoutOperationIfNotBlocked } from \"../../../hooks\";\nimport { SectionItemType } from \"../../section/types\";\nimport { useGenerateLayoutFromId } from \"./useGenerateLayoutFromId\";\n\nexport const useExecuteLayoutSearchResultAction = () => {\n const executeLayoutAction = useExecuteLayoutAction();\n const generateLayoutFromId = useGenerateLayoutFromId();\n const executeLayoutOperationIfNotBlocked = useExecuteLayoutOperationIfNotBlocked();\n\n return async (item: SectionItemType, actionName: string) => {\n const { id } = item;\n\n const layout = generateLayoutFromId(id);\n\n const callback = () =>\n executeLayoutAction({\n layout,\n actionName,\n });\n\n await executeLayoutOperationIfNotBlocked(callback);\n };\n};\n","import { ITEM_TYPES } from \"../../../constants/itemTypes\";\nimport { useExecuteApplicationAction, useExecuteWorkspaceAction } from \"../../../hooks\";\nimport { useExecuteLayoutSearchResultAction } from \"./useExecuteLayoutSearchResultAction\";\n\nexport const useGetActionExecutor = () => {\n const executeApplicationAction = useExecuteApplicationAction();\n const executeWorkspaceAction = useExecuteWorkspaceAction();\n const executeLayoutSearchResultAction = useExecuteLayoutSearchResultAction();\n\n return (itemType: string) => {\n if (itemType === ITEM_TYPES.APPLICATION) {\n return executeApplicationAction;\n }\n\n if (itemType === ITEM_TYPES.WORKSPACE) {\n return executeWorkspaceAction;\n }\n\n if (itemType === ITEM_TYPES.LAYOUT) {\n return executeLayoutSearchResultAction;\n }\n };\n};\n","export const LAYOUT_ACTIONS_NAMES = {\n RENAME: \"rename\",\n SAVE: \"save\",\n SAVE_AS: \"saveAs\",\n DELETE: \"delete\",\n SET_AS_DEFAULT: \"setAsDefault\",\n LOAD: \"load\",\n} as const;\n","import { Layout } from \"./types\";\nimport { ContextMenuAction } from \"../context-menu/types\";\nimport { LAYOUT_ACTIONS_NAMES } from \"./constants\";\n\nexport const createLayoutContextMenuActions = (layout: Layout): ContextMenuAction[] => {\n return [\n {\n name: LAYOUT_ACTIONS_NAMES.RENAME,\n displayName: \"Rename\",\n icon: \"pen-line\",\n },\n {\n name: LAYOUT_ACTIONS_NAMES.SAVE,\n displayName: \"Save\",\n disabled: !layout.isActive,\n icon: \"floppy\",\n },\n {\n name: LAYOUT_ACTIONS_NAMES.SAVE_AS,\n displayName: \"Save as\",\n icon: \"floppy-disk-pen\",\n separatorAfter: true,\n },\n {\n name: LAYOUT_ACTIONS_NAMES.DELETE,\n displayName: \"Delete\",\n icon: \"trash-can\",\n separatorAfter: true,\n },\n {\n name: LAYOUT_ACTIONS_NAMES.SET_AS_DEFAULT,\n displayName: \"Set as Default\",\n disabled: layout.isDefault,\n icon: \"user-gear\",\n separatorAfter: true,\n },\n {\n name: LAYOUT_ACTIONS_NAMES.LOAD,\n displayName: \"Load\",\n icon: \"spinner\",\n },\n ];\n};\n","import { IOConnectSearch } from \"@interopio/search-api\";\nimport { ITEM_TYPES } from \"../../../constants/itemTypes\";\nimport type { SearchResultsSectionItemType, SearchResultsSectionType } from \"./types\";\nimport { SearchResultsContextMenuAction } from \"../../context-menu/types\";\nimport { APPLICATION_ACTIONS, WORKSPACE_ACTIONS } from \"../../context-menu/constants\";\nimport { createLayoutContextMenuActions } from \"../../layouts-panel/helpers\";\nimport { useGenerateLayoutFromId } from \"./useGenerateLayoutFromId\";\n\nexport const useSearchResultsSectionConfigs = (results: IOConnectSearch.QueryResult[]): SearchResultsSectionType[] => {\n const generateLayoutFromId = useGenerateLayoutFromId();\n\n return results.reduce((searchResultsSections, result) => {\n const { type } = result;\n\n const id = result.id || result.displayName;\n\n if (!id) {\n return searchResultsSections;\n }\n\n let contextMenuActions: SearchResultsContextMenuAction[] = [];\n\n if (type.name === ITEM_TYPES.APPLICATION) {\n contextMenuActions = APPLICATION_ACTIONS;\n } else if (type.name === ITEM_TYPES.WORKSPACE) {\n contextMenuActions = WORKSPACE_ACTIONS;\n } else if (type.name === ITEM_TYPES.LAYOUT) {\n const layout = generateLayoutFromId(id);\n\n contextMenuActions = createLayoutContextMenuActions(layout);\n } else if (result.secondaryActions) {\n contextMenuActions = result.secondaryActions.map(({ name, method, params, target }) => {\n return {\n name,\n interopParams: { method, params, target },\n };\n });\n }\n\n const item: SearchResultsSectionItemType = {\n id,\n title: result.displayName || id,\n description: result.description,\n type: type.name,\n iconSrc: result.iconURL,\n mainAction: result.action,\n contextMenuActions,\n };\n\n const sectionIndex = searchResultsSections.findIndex(({ title }) =>\n type.displayName ? title === type.displayName : title === type.name,\n );\n const section = searchResultsSections[sectionIndex];\n\n if (section) {\n return [\n ...searchResultsSections.slice(0, sectionIndex),\n { ...section, items: [...section.items, item] },\n ...searchResultsSections.slice(sectionIndex + 1),\n ];\n }\n\n return [\n ...searchResultsSections,\n {\n id: type.name,\n title: type.displayName || type.name,\n items: [item],\n },\n ];\n }, [] as SearchResultsSectionType[]);\n};\n","import { List } from \"@interopio/components-react\";\nimport BaseSection from \"../../base-section/base-section\";\nimport { ITEM_TYPES } from \"../../../constants/itemTypes\";\nimport { MODIFIER_KEYS } from \"../../../constants/modifierKeys\";\nimport type { SearchResultsSectionItemType } from \"./types\";\nimport {\n useInvokeInteropMethod,\n useRestoreWorkspace,\n useSearch,\n useStartApplication,\n useIsLaunchpadPinned,\n useRestoreLayout,\n useExecuteLayoutOperationIfNotBlocked,\n} from \"../../../hooks\";\nimport { useGetActionExecutor } from \"./useGetActionExecutor\";\nimport { useSearchResultsSectionConfigs } from \"./useSearchResultsSectionConfigs\";\nimport { useLaunchpadAPI } from \"../../launchpad/launchpad.context\";\nimport { ActivationEvent } from \"../../../helpers/a11y\";\nimport \"./search-results-section.scss\";\n\nexport interface SearchResultsProps {\n searchTerm: string;\n}\n\nexport function SearchResults(props: Readonly<SearchResultsProps>) {\n const { resultsToRender, isLoading } = useSearch(props.searchTerm);\n const { close } = useLaunchpadAPI();\n const invokeInteropMethod = useInvokeInteropMethod();\n const restoreWorkspace = useRestoreWorkspace();\n const startApplication = useStartApplication();\n const restoreLayout = useRestoreLayout();\n const getActionExecutor = useGetActionExecutor();\n const configs = useSearchResultsSectionConfigs(resultsToRender);\n const executeLayoutOperationIfNotBlocked = useExecuteLayoutOperationIfNotBlocked();\n const { isLaunchpadPinned } = useIsLaunchpadPinned();\n\n const executeSelectedAction = (item: SearchResultsSectionItemType, selectedContextMenuActionName: string) => {\n const execute = getActionExecutor(item.type);\n\n execute?.(item, selectedContextMenuActionName);\n };\n\n const handleItemClick = async (\n _: ActivationEvent,\n params: {\n item: SearchResultsSectionItemType;\n modifier: string | null;\n selectedContextMenuActionName?: string;\n },\n ) => {\n const { item, modifier, selectedContextMenuActionName } = params;\n const { type, id, title, mainAction } = item;\n\n const contextMenuAction = selectedContextMenuActionName\n ? item.contextMenuActions?.find((action) => action.name === selectedContextMenuActionName)\n : null;\n\n if (contextMenuAction?.interopParams) {\n invokeInteropMethod(contextMenuAction.interopParams);\n } else if (selectedContextMenuActionName) {\n executeSelectedAction(item, selectedContextMenuActionName);\n } else if (mainAction) {\n invokeInteropMethod(mainAction);\n } else if (type === ITEM_TYPES.APPLICATION) {\n startApplication({ id, title, modifier });\n } else if (type === ITEM_TYPES.WORKSPACE) {\n restoreWorkspace({ id, modifier });\n } else if (type === ITEM_TYPES.LAYOUT) {\n executeLayoutOperationIfNotBlocked(() => restoreLayout(id));\n } else {\n // TODO: decide how to proceed if none of the above conditions are met\n }\n\n if (modifier === MODIFIER_KEYS.SHIFT || isLaunchpadPinned) {\n return;\n }\n\n close?.();\n };\n\n if (isLoading) {\n return <p className=\"search-loading\">Loading...</p>;\n } else if (resultsToRender.length === 0) {\n return <p className=\"search-no-results\">No results found. Try searching by app name, workspace title, or keywords.</p>;\n }\n\n return (\n <List>\n {configs.map((config, idx) => (\n <BaseSection key={config.id || idx} config={config} onItemClick={handleItemClick} />\n ))}\n </List>\n );\n}\n\nexport default SearchResults;\n","import { ITEM_TYPES } from \"../../constants/itemTypes\";\nimport { DefaultSectionProps } from \"../../common/types\";\nimport type { SectionType } from \"../section/types\";\nimport type { Workspace } from \"./types\";\nimport { WORKSPACE_ACTIONS } from \"../context-menu/constants\";\nimport { SORT_ORDER } from \"../../constants/sortOrder\";\nimport { ascendingTitleCompare, descendingTitleCompare, sortItems } from \"../../helpers/sort\";\nimport { ACTION_BUTTON_IDS } from \"./constants\";\nimport { DEFAULT_SECTION_IDS } from \"../../constants/sections\";\n\nexport const getWorkspacesSectionConfig = (\n workspaces: Workspace[],\n runningInstances: {\n [appName: string]: string[];\n },\n settings: DefaultSectionProps,\n): SectionType => {\n const { isSectionCollapsible, sortOrder = SORT_ORDER.ASCENDING } = settings;\n\n const sortedWorkspaces = sortItems({\n items: workspaces,\n sortOrder,\n ascendingCompare: ascendingTitleCompare,\n descendingCompare: descendingTitleCompare,\n });\n\n const workspaceItems: SectionType[\"items\"] = sortedWorkspaces.map((workspace) => ({\n ...workspace,\n type: ITEM_TYPES.WORKSPACE,\n icon: \"workspace\",\n openInstances: runningInstances[workspace.title]?.length,\n contextMenuActions: WORKSPACE_ACTIONS,\n }));\n\n return {\n id: DEFAULT_SECTION_IDS.WORKSPACES,\n title: \"Workspaces\",\n items: [\n ...workspaceItems,\n {\n id: ACTION_BUTTON_IDS.CREATE_WORKSPACE,\n icon: \"add\",\n title: \"Create Workspace\",\n type: ITEM_TYPES.ACTION_BUTTON,\n tooltip: \"Create an empty Workspace in a new window\",\n className: \"create-workspace-btn\",\n },\n ],\n isCollapsible: isSectionCollapsible,\n };\n};\n","import { useMemo } from \"react\";\nimport { getWorkspacesSectionConfig } from \"./helpers\";\nimport Section from \"../section/section\";\nimport { useRestoreWorkspace, useWorkspaces, useWorkspacesInstances, useExecuteWorkspaceAction } from \"../../hooks\";\nimport type { SectionItemType } from \"../section/types\";\nimport { DefaultSectionProps } from \"../../common/types\";\nimport { ITEM_TYPES } from \"../../constants/itemTypes\";\n\nexport const WorkspacesSection = (props: DefaultSectionProps) => {\n const { isSectionCollapsible, sortOrder } = props;\n const workspaces = useWorkspaces();\n const runningInstances = useWorkspacesInstances();\n const restoreWorkspace = useRestoreWorkspace();\n const executeWorkspaceAction = useExecuteWorkspaceAction();\n\n const config = useMemo(\n () =>\n getWorkspacesSectionConfig(workspaces, runningInstances, {\n isSectionCollapsible,\n sortOrder,\n }),\n [workspaces, runningInstances, isSectionCollapsible, sortOrder]\n );\n\n const handleItemClick = (params: {\n item: SectionItemType;\n modifier: string | null;\n selectedContextMenuActionName?: string;\n }) => {\n const { item, modifier, selectedContextMenuActionName } = params;\n\n if (selectedContextMenuActionName) {\n return executeWorkspaceAction(item, selectedContextMenuActionName);\n }\n\n if (item.type === ITEM_TYPES.ACTION_BUTTON) {\n return executeWorkspaceAction(item, item.id);\n }\n\n return restoreWorkspace({ id: item.id, modifier });\n };\n\n return <Section config={config} onItemClick={handleItemClick} />;\n};\n\nexport default WorkspacesSection;\n","import FavoritesSection from \"../favorites-section/favorites-section\";\nimport WorkspacesSection from \"../workspaces-section/workspaces-section\";\nimport ApplicationsSection from \"../applications-section/applications-section\";\nimport { LaunchpadSection } from \"../io-connect-home/types\";\nimport { DEFAULT_SECTION_IDS } from \"../../constants/sections\";\n\nexport const DEFAULT_SECTIONS: LaunchpadSection[] = [\n { placementId: DEFAULT_SECTION_IDS.FAVORITES, Component: FavoritesSection },\n { placementId: DEFAULT_SECTION_IDS.WORKSPACES, Component: WorkspacesSection },\n { placementId: DEFAULT_SECTION_IDS.APPLICATIONS, Component: ApplicationsSection },\n];\n","import { SetStateAction } from \"react\";\nimport { usePlatformPref } from \"@interopio/components-react\";\nimport { PLATFORM_PREFS_KEYS } from \"../../constants/platformPrefs\";\n\nexport const useIsLayoutsPanelOpen = (): {\n error:\n | {\n message: string;\n }\n | undefined;\n isLayoutsPanelOpen: boolean | undefined;\n setIsLayoutsPanelOpen: (value: SetStateAction<boolean | undefined>) => Promise<void>;\n isLoading: boolean;\n} => {\n const { value, update, isLoading, error } = usePlatformPref({\n prefKey: PLATFORM_PREFS_KEYS.IS_LAYOUTS_PANEL_OPEN,\n });\n\n return { error, isLayoutsPanelOpen: value, setIsLayoutsPanelOpen: update, isLoading };\n};\n","import { useContext } from \"react\";\nimport { IOConnectContext } from \"@interopio/react-hooks\";\nimport { ButtonIcon } from \"@interopio/components-react\";\nimport { useExecuteLayoutOperationIfNotBlocked } from \"../../hooks\";\nimport { HOME_ALERT_VARIANTS } from \"../../constants/alerts\";\nimport { requestAlert } from \"../../helpers/alerts\";\n\ninterface SaveLayoutButtonProps {\n layoutName: string;\n}\n\nexport const SaveLayoutButton = ({ layoutName }: SaveLayoutButtonProps) => {\n const io = useContext(IOConnectContext);\n const executeLayoutOperationIfNotBlocked = useExecuteLayoutOperationIfNotBlocked();\n\n const handleSave = (event: React.MouseEvent) => {\n event.stopPropagation();\n\n const callback = async () => {\n try {\n await io.layouts.save({ name: layoutName, type: \"Global\" });\n\n await requestAlert({\n io,\n variant: HOME_ALERT_VARIANTS.SUCCESS,\n text: `Layout \"${layoutName}\" was saved successfully.`,\n });\n } catch (error) {\n await requestAlert({\n io,\n variant: HOME_ALERT_VARIANTS.WARNING,\n text: `Failed to save Layout \"${layoutName}\".`,\n error,\n });\n }\n };\n\n executeLayoutOperationIfNotBlocked(callback);\n };\n\n return <ButtonIcon icon=\"floppy\" size=\"24\" iconSize=\"12\" onClick={handleSave} title=\"Save Layout\" />;\n};\n\nexport default SaveLayoutButton;\n","import { useExecuteLayoutAction, useExecuteLayoutOperationIfNotBlocked } from \"../../hooks\";\nimport DropdownButton from \"../context-menu/dropdown-button/dropdown-button\";\nimport { ContextMenuAction } from \"../context-menu/types\";\nimport { Layout } from \"./types\";\nimport { createLayoutContextMenuActions } from \"./helpers\";\nimport { ActivationEvent } from \"../../helpers/a11y\";\n\ninterface LayoutsDropdownProps {\n layout: Layout;\n}\n\nexport const LayoutsDropdown = ({ layout }: LayoutsDropdownProps) => {\n const executeLayoutAction = useExecuteLayoutAction();\n const executeLayoutOperationIfNotBlocked = useExecuteLayoutOperationIfNotBlocked();\n\n const handleActionItemClick = async (event: ActivationEvent, action: ContextMenuAction) => {\n event.stopPropagation();\n\n const callback = () =>\n executeLayoutAction({\n layout,\n actionName: action.name,\n });\n\n await executeLayoutOperationIfNotBlocked(callback);\n };\n\n return (\n <DropdownButton\n buttonSize=\"24\"\n iconSize=\"12\"\n title={layout.name}\n icon=\"ellipsis-vertical\"\n actions={createLayoutContextMenuActions(layout)}\n onActionItemClick={handleActionItemClick}\n placement=\"top-end\"\n offset={[4, 0]}\n shouldCloseOnOutsideScroll={true}\n shouldCloseOnWindowBlur={true}\n />\n );\n};\n\nexport default LayoutsDropdown;\n","import { List, Pill } from \"@interopio/components-react\";\nimport { useExecuteLayoutOperationIfNotBlocked, useIsLaunchpadPinned, useRestoreLayout } from \"../../hooks\";\nimport { useLaunchpadAPI } from \"../launchpad/launchpad.context\";\nimport { Layout } from \"./types\";\nimport { ButtonGroup } from \"reactstrap\";\nimport SaveLayoutButton from \"./save-layout-button\";\nimport LayoutsDropdown from \"./layouts-dropdown\";\n\ninterface LayoutsListProps {\n layouts: Layout[];\n}\n\nexport const LayoutsList = ({ layouts }: LayoutsListProps) => {\n const { isLaunchpadPinned } = useIsLaunchpadPinned();\n const { close } = useLaunchpadAPI();\n const restoreLayout = useRestoreLayout();\n const executeLayoutOperationIfNotBlocked = useExecuteLayoutOperationIfNotBlocked();\n\n const onSuccessfulLayoutRestore = () => {\n if (isLaunchpadPinned) {\n return;\n }\n\n close?.();\n };\n\n const handleLayoutClick = (layout: Layout) => {\n const callback = () => restoreLayout(layout.name, onSuccessfulLayoutRestore);\n\n return executeLayoutOperationIfNotBlocked(callback);\n };\n\n return (\n <List className=\"layouts-list\" variant=\"single\" checkIcon={{ variant: \"check\", tooltip: \"Active Layout\" }}>\n {layouts.map((layout) => (\n <List.Item\n className=\"layouts-list-item\"\n key={layout.name}\n onClick={() => handleLayoutClick(layout)}\n append={\n <>\n {layout.isDefault && (\n <Pill variant=\"default\" title=\"Default Layout\">\n Default\n </Pill>\n )}\n\n <ButtonGroup>\n {layout.isActive && <SaveLayoutButton layoutName={layout.name} />}\n <LayoutsDropdown layout={layout} />\n </ButtonGroup>\n </>\n }\n isSelected={layout.isActive}\n tooltip={layout.name}\n >\n {layout.name}\n </List.Item>\n ))}\n </List>\n );\n};\n\nexport default LayoutsList;\n","import { useMemo } from \"react\";\nimport { useLayouts } from \"../../hooks\";\nimport { useLaunchpadAPI } from \"../launchpad/launchpad.context\";\nimport LayoutsList from \"./layouts-list\";\n\nexport const AllLayouts = () => {\n const { layouts } = useLayouts();\n const { activeLayout, defaultLayout } = useLaunchpadAPI();\n\n const allLayouts = useMemo(\n () =>\n layouts.map((layout) => ({\n ...layout,\n isActive: layout.name === activeLayout?.name,\n isDefault: layout.name === defaultLayout?.name,\n })),\n [layouts, activeLayout, defaultLayout],\n );\n\n return <LayoutsList layouts={allLayouts} />;\n};\n\nexport default AllLayouts;\n","import { useLaunchpadAPI } from \"../launchpad/launchpad.context\";\nimport LayoutsList from \"./layouts-list\";\n\nexport const ActiveLayout = () => {\n const { defaultLayout, activeLayout } = useLaunchpadAPI();\n\n if (!activeLayout) {\n return <p className=\"io-text-small no-active-layout\">Choose which Layout to load</p>;\n }\n\n return (\n <LayoutsList\n layouts={[\n {\n ...activeLayout,\n isDefault: activeLayout.name === defaultLayout?.name,\n isActive: true,\n },\n ]}\n />\n );\n};\n\nexport default ActiveLayout;\n","import { useContext } from \"react\";\nimport { Button, ButtonGroup } from \"@interopio/components-react\";\nimport { IOConnectContext } from \"@interopio/react-hooks\";\nimport { useExecuteLayoutOperationIfNotBlocked } from \"../../hooks\";\nimport { DIALOG_TEMPLATE_NAMES } from \"../../constants/dialogs\";\nimport { NON_EMPTY_STRING_REGEX_PATTERN } from \"../../constants/regex\";\nimport { HOME_ALERT_VARIANTS } from \"../../constants/alerts\";\nimport { useLaunchpadAPI } from \"../launchpad/launchpad.context\";\nimport { requestAlert } from \"../../helpers/alerts\";\n\nexport const CreateLayoutButton = () => {\n const io = useContext(IOConnectContext);\n const { setActiveLayout } = useLaunchpadAPI();\n const executeLayoutOperationIfNotBlocked = useExecuteLayoutOperationIfNotBlocked();\n\n const handleCreateLayoutBtnClick = async () => {\n if (!(\"modals\" in io && io.modals)) {\n console.error(\"Cannot create Layout because io dialogs are not enabled\");\n return;\n }\n\n const confirmButtonId = \"create\";\n const inputId = \"layout-name\";\n\n const { isEnterPressed, responseButtonClicked, inputs } = await io.modals.dialogs.request({\n templateName: DIALOG_TEMPLATE_NAMES.SINGLE_TEXT_INPUT_DIALOG,\n variables: {\n heading: \"Create Layout\",\n input: {\n id: inputId,\n initialValue: \"Create Layout\",\n validation: {\n disabledButtonIds: [confirmButtonId],\n errorMessage: \"Please provide a Layout name\",\n regexPattern: NON_EMPTY_STRING_REGEX_PATTERN,\n },\n },\n actionButtons: [\n { variant: \"primary\", text: \"Create\", id: confirmButtonId },\n { variant: \"outline\", text: \"Cancel\", id: \"cancel\" },\n ],\n },\n });\n\n const layoutName = inputs?.find((input) => input.id === inputId)?.value as string;\n\n const isCreateConfirmed = isEnterPressed || responseButtonClicked?.id === confirmButtonId;\n\n if (!isCreateConfirmed) {\n return;\n }\n\n try {\n const layoutNameExists = (await io.layouts.getAll(\"Global\")).find((layout) => layout.name === layoutName);\n\n if (layoutNameExists) {\n await requestAlert({\n io,\n variant: HOME_ALERT_VARIANTS.WARNING,\n text: `Failed to create Layout \"${layoutName}\". A Layout with this name already exists.`,\n });\n return;\n }\n\n await io.layouts.save({ name: layoutName });\n setActiveLayout({ name: layoutName });\n\n await requestAlert({\n io,\n variant: HOME_ALERT_VARIANTS.SUCCESS,\n text: `Layout \"${layoutName}\" was created successfully.`,\n });\n } catch (error) {\n await requestAlert({\n io,\n variant: HOME_ALERT_VARIANTS.WARNING,\n text: `Failed to create Layout \"${layoutName}\".`,\n error,\n });\n }\n };\n\n return (\n <ButtonGroup variant=\"fullwidth\" className=\"create-layout-btn-group\">\n <Button\n variant=\"primary\"\n text=\"Create Layout\"\n onClick={() => executeLayoutOperationIfNotBlocked(handleCreateLayoutBtnClick)}\n />\n </ButtonGroup>\n );\n};\n\nexport default CreateLayoutButton;\n","import { useEffect, useRef, useCallback } from \"react\";\nimport { Collapse } from \"reactstrap\";\nimport classNames from \"classnames\";\nimport { Title, Separator, ButtonIcon } from \"@interopio/components-react\";\nimport { useLayouts } from \"../../hooks\";\nimport { onClickA11y } from \"../../helpers/a11y\";\nimport { useIsLayoutsPanelOpen } from \"./useIsLayoutsPanelOpen\";\nimport AllLayouts from \"./all-layouts\";\nimport ActiveLayout from \"./active-layout\";\nimport CreateLayoutButton from \"./create-layout-button\";\nimport \"./layouts-panel.scss\";\n\nexport const LayoutsPanel = () => {\n const footerRef = useRef<HTMLElement | null>(null);\n const { layouts, isInitialized } = useLayouts();\n const { isLayoutsPanelOpen, setIsLayoutsPanelOpen } = useIsLayoutsPanelOpen();\n\n useEffect(() => {\n if (!isInitialized || layouts.length > 0 || !isLayoutsPanelOpen) {\n return;\n }\n\n setIsLayoutsPanelOpen(false);\n }, [layouts, isInitialized, isLayoutsPanelOpen, setIsLayoutsPanelOpen]);\n\n const toggle = useCallback(() => setIsLayoutsPanelOpen((isOpen) => !isOpen), [setIsLayoutsPanelOpen]);\n\n return (\n <footer className=\"layouts-panel\" ref={footerRef}>\n <Separator className=\"layouts-panel-separator\" />\n\n <div\n className=\"layouts-panel-header\"\n aria-label=\"Layouts panel\"\n aria-expanded={isLayoutsPanelOpen}\n role=\"button\"\n {...onClickA11y(layouts.length ? toggle : undefined)}\n >\n <Title tag=\"h2\" size=\"normal\" text={layouts.length > 0 ? \"Layouts\" : \"Start using Layouts\"} />\n {layouts.length > 0 && (\n <ButtonIcon\n className={classNames(\"layouts-panel-toggle-button\", {\n \"layouts-panel-toggle-button-rotated\": isLayoutsPanelOpen,\n })}\n icon=\"expand\"\n iconSize=\"12\"\n size=\"24\"\n />\n )}\n </div>\n\n <Collapse isOpen={isLayoutsPanelOpen} tag=\"div\">\n <AllLayouts />\n </Collapse>\n\n {layouts.length > 0 && !isLayoutsPanelOpen ? <ActiveLayout /> : <CreateLayoutButton />}\n </footer>\n );\n};\n\nexport default LayoutsPanel;\n","import { SetStateAction } from \"react\";\nimport { usePlatformPref } from \"@interopio/components-react\";\nimport { PLATFORM_PREFS_KEYS } from \"../../constants/platformPrefs\";\n\nexport const useIsLaunchpadCollapsed = (): {\n error:\n | {\n message: string;\n }\n | undefined;\n isLaunchpadCollapsed: boolean | undefined;\n setIsLaunchpadCollapsed: (value: SetStateAction<boolean | undefined>) => Promise<void>;\n isLoading: boolean;\n} => {\n const { value, update, isLoading, error } = usePlatformPref({\n prefKey: PLATFORM_PREFS_KEYS.IS_LAUNCHPAD_COLLAPSED,\n });\n\n return {\n error,\n isLaunchpadCollapsed: value,\n setIsLaunchpadCollapsed: update,\n isLoading,\n };\n};\n","import { useEffect, useMemo, useRef, useState } from \"react\";\nimport deepMerge from \"deepmerge\";\nimport classNames from \"classnames\";\nimport { List } from \"@interopio/components-react\";\nimport { LaunchpadAPIProvider } from \"./launchpad.context\";\nimport { SectionProvider } from \"../section/section.context\";\nimport { IS_GLOBAL_LAYOUT_SUPPORTED } from \"../io-connect-home-provider/constants\";\nimport { DEFAULT_LAUNCHPAD_SETTINGS } from \"../home-app-workspace/constants\";\nimport LaunchpadHeader from \"./launchpad-header\";\nimport LaunchpadPinButton from \"./launchpad-pin-button\";\nimport SearchBar from \"../search/search-bar/search-bar\";\nimport SearchResultsSection from \"../search/search-results-section/search-results-section\";\nimport { DEFAULT_SECTIONS } from \"./constants\";\nimport LayoutsPanel from \"../layouts-panel/layouts-panel\";\nimport { useFrameId, useIsLaunchpadPinned } from \"../../hooks\";\nimport { useIsLaunchpadCollapsed } from \"./useIsLaunchpadCollapsed\";\nimport { checkShouldRenderSearchResults } from \"./helpers\";\nimport { LaunchpadComponents, LaunchpadSettings } from \"../io-connect-home/types\";\nimport \"./launchpad.scss\";\n\nexport interface LaunchpadProps extends React.HTMLProps<HTMLDivElement> {\n isOpen?: boolean;\n onClose?: () => void;\n settings?: LaunchpadSettings;\n components?: LaunchpadComponents;\n windowManagementPermissionState?: PermissionState;\n}\n\nexport const Launchpad = (props: LaunchpadProps) => {\n const {\n isOpen = true,\n onClose,\n className,\n settings = {},\n components = {},\n windowManagementPermissionState = \"granted\",\n ...rest\n } = props;\n\n const launchpadSettings = useMemo(() => deepMerge<LaunchpadSettings>(DEFAULT_LAUNCHPAD_SETTINGS, settings), [settings]);\n\n const { showSearch, showHeader } = launchpadSettings.header ?? {};\n\n const { sections = DEFAULT_SECTIONS } = components;\n const { BeforeSearch, AfterSearch } = components.header ?? {};\n\n const [searchTerm, setSearchTerm] = useState(\"\");\n const searchInputRef = useRef<HTMLInputElement>(null);\n\n const isGlobalLayoutsAvailable = IS_GLOBAL_LAYOUT_SUPPORTED && windowManagementPermissionState === \"granted\";\n\n const frameId = useFrameId();\n\n const { isLaunchpadPinned } = useIsLaunchpadPinned();\n const { isLaunchpadCollapsed, setIsLaunchpadCollapsed } = useIsLaunchpadCollapsed();\n\n useEffect(() => {\n if (!isOpen) {\n return;\n }\n\n searchInputRef.current?.focus();\n }, [isOpen]);\n\n useEffect(() => {\n if (!isLaunchpadPinned) {\n return;\n }\n\n setIsLaunchpadCollapsed(false);\n }, [setIsLaunchpadCollapsed, isLaunchpadPinned]);\n\n const handleSearch = (event: React.ChangeEvent<HTMLInputElement>) => {\n const searchInputValue = event.target.value;\n\n if (checkShouldRenderSearchResults(searchInputValue) && isLaunchpadCollapsed) {\n setIsLaunchpadCollapsed(false);\n }\n\n setSearchTerm(searchInputValue);\n };\n\n const handleClear = () => {\n setSearchTerm(\"\");\n\n searchInputRef.current?.focus();\n };\n\n return (\n <LaunchpadAPIProvider close={onClose} isGlobalLayoutsAvailable={isGlobalLayoutsAvailable}>\n <div className={classNames(\"launchpad\", className)} {...rest}>\n {showHeader && (\n <LaunchpadHeader className={frameId || isLaunchpadPinned ? undefined : \"draggable\"}>\n {BeforeSearch && <BeforeSearch />}\n {showSearch && (\n <SearchBar\n ref={searchInputRef}\n searchTerm={searchTerm}\n onSearch={handleSearch}\n onClear={handleClear}\n className={frameId ? undefined : \"non-draggable\"}\n />\n )}\n {AfterSearch && <AfterSearch />}\n {AfterSearch === undefined && launchpadSettings.mode !== \"pinned\" && (\n <LaunchpadPinButton className=\"ms-auto\" />\n )}\n </LaunchpadHeader>\n )}\n <div className={classNames(\"launchpad-body\", isLaunchpadCollapsed ? \"collapsed\" : undefined)}>\n <main className=\"launchpad-main\">\n {checkShouldRenderSearchResults(searchTerm) ? (\n <SearchResultsSection searchTerm={searchTerm} />\n ) : (\n <SectionProvider>\n <List>\n {sections.map(({ Component, placementId }) => (\n <Component key={placementId} />\n ))}\n </List>\n </SectionProvider>\n )}\n </main>\n {isGlobalLayoutsAvailable && <LayoutsPanel />}\n </div>\n </div>\n </LaunchpadAPIProvider>\n );\n};\n\nexport default Launchpad;\n","import { createContext, useContext } from \"react\";\nimport { LaunchpadComponents, LaunchpadSettings } from \"../io-connect-home/types\";\n\nexport const WorkspaceComponentsContext = createContext<\n | {\n launchpadSettings?: LaunchpadSettings;\n launchpadComponents?: LaunchpadComponents;\n onLogout?: () => void;\n }\n | undefined\n>(undefined);\n\nexport const useWorkspaceComponentsContext = () => {\n const context = useContext(WorkspaceComponentsContext);\n\n if (context === undefined) {\n throw new Error(\"useWorkspaceComponentsContext must be used within an WorkspaceComponentsContextProvider\");\n }\n\n return context;\n};\n","import { PERMISSION_NAMES, IS_GLOBAL_LAYOUT_SUPPORTED } from \"./constants\";\nimport type { HomePermissionStatus } from \"./types\";\n\nexport const getPermissionStatuses = (): Promise<HomePermissionStatus[]> => {\n const permissionNamesToQuery = IS_GLOBAL_LAYOUT_SUPPORTED\n ? [PERMISSION_NAMES.NOTIFICATIONS, PERMISSION_NAMES.WINDOW_MANAGEMENT]\n : [PERMISSION_NAMES.NOTIFICATIONS];\n\n return Promise.all(\n permissionNamesToQuery.map(async (name) => {\n const permission = (await navigator.permissions.query({ name: name as PermissionName })) as HomePermissionStatus;\n\n permission.stableName = name;\n\n return permission;\n })\n );\n};\n","import { createContext, useContext, useEffect, useMemo, useState } from \"react\";\nimport { getPermissionStatuses } from \"./helpers\";\nimport type { HomePermissionStatus, HomePermissionStatuses } from \"./types\";\nimport { useStorage } from \"../../hooks\";\nimport { PLATFORM_SETUP_LOCAL_STORAGE_KEY } from \"../../constants/storageKeys\";\nimport { platformSetupStorageValueDecoder } from \"../../decoders/platform\";\nimport { PlatformSetupStatus } from \"../platform-setup/types\";\n\ninterface IOConnectHomeProviderProps {\n children: React.ReactNode;\n}\n\nconst IOConnectHomeContext = createContext<\n | {\n permission: {\n isLoading: boolean;\n statuses: HomePermissionStatuses;\n };\n login: {\n isLoggingOut: boolean;\n setIsLoggingOut: React.Dispatch<React.SetStateAction<boolean>>;\n };\n }\n | undefined\n>(undefined);\n\nexport const useIOConnectHome = () => {\n const context = useContext(IOConnectHomeContext);\n\n if (context === undefined) {\n throw new Error(\"useIOConnectHome must be used within an IOConnectHomeProvider\");\n }\n\n return context;\n};\n\nexport const IOConnectHomeProvider = ({ children }: IOConnectHomeProviderProps) => {\n const [_, setPlatformSetup] = useStorage<PlatformSetupStatus>(\n \"localStorage\",\n PLATFORM_SETUP_LOCAL_STORAGE_KEY,\n platformSetupStorageValueDecoder,\n );\n const [permissionStatuses, setPermissionStatuses] = useState<HomePermissionStatus[]>([]);\n\n const statuses = useMemo(() => {\n return permissionStatuses.reduce((accumulator, permissionStatus) => {\n return {\n ...accumulator,\n [permissionStatus.stableName]: { state: permissionStatus.state },\n };\n }, {} as HomePermissionStatuses);\n }, [permissionStatuses]);\n\n const permission = {\n isLoading: permissionStatuses.length === 0,\n statuses,\n };\n\n const [isLoggingOut, setIsLoggingOut] = useState(false);\n const login = { isLoggingOut, setIsLoggingOut };\n\n useEffect(() => {\n let isUnsubscribed = false;\n\n const unsubscribeFunctionsPromise = getPermissionStatuses()\n .then((permissionStatuses) => {\n if (isUnsubscribed) {\n return;\n }\n\n setPermissionStatuses(permissionStatuses);\n\n const unsubscribeFunctions: (() => void)[] = [];\n let isReloaded = false;\n\n permissionStatuses.forEach((permissionStatus, index) => {\n const changeListener = (event: Event) => {\n if (isUnsubscribed || !event.target || isReloaded) {\n return;\n }\n\n const permissionStatus = event.target as HomePermissionStatus;\n\n const shouldReload = permissionStatus.state === \"prompt\";\n\n if (shouldReload) {\n setPlatformSetup({ isCompleted: false });\n isReloaded = true;\n return window.location.reload();\n }\n\n setPermissionStatuses((permissions) => [\n ...permissions.slice(0, index),\n permissionStatus,\n ...permissions.slice(index + 1),\n ]);\n };\n\n permissionStatus.addEventListener(\"change\", changeListener);\n\n unsubscribeFunctions.push(() => permissionStatus.removeEventListener(\"change\", changeListener));\n });\n\n return unsubscribeFunctions;\n })\n .catch(console.warn);\n\n return () => {\n isUnsubscribed = true;\n unsubscribeFunctionsPromise.then((unsubscribeFunctions) => {\n unsubscribeFunctions?.forEach((unsubscribe) => unsubscribe());\n });\n };\n }, [setPlatformSetup]);\n\n const contextValue = useMemo(\n () => ({\n permission,\n login,\n }),\n [permission, login],\n );\n\n return <IOConnectHomeContext.Provider value={contextValue}>{children}</IOConnectHomeContext.Provider>;\n};\n","export const BrowserNotificationsIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={170} height={134} fill=\"none\" {...props}>\n <g clipPath=\"url(#a)\">\n <g clipPath=\"url(#b)\">\n <path fill=\"url(#c)\" d=\"M0 0h170v114H0z\" />\n <rect\n width={42.821}\n height={15}\n x={0.5}\n y={-0.5}\n fill=\"#3C3E3F\"\n rx={7.5}\n transform=\"matrix(1 0 0 -1 117 103.85)\"\n />\n <rect\n width={42.821}\n height={15}\n x={0.5}\n y={-0.5}\n stroke=\"#4B4E4F\"\n strokeMiterlimit={10}\n rx={7.5}\n transform=\"matrix(1 0 0 -1 117 103.85)\"\n />\n <path\n fill=\"#36A86B\"\n d=\"M125.31 100.086c-1.656 0-3-1.41-3-3.149 0-1.74 1.344-3.15 3-3.15 1.657 0 3 1.41 3 3.15s-1.343 3.149-3 3.149Z\"\n />\n <rect width={21.694} height={6.057} fill=\"#AAB0B0\" rx={3.028} transform=\"matrix(1 0 0 -1 132.72 99.844)\" />\n <mask id=\"d\" fill=\"#fff\">\n <path d=\"M0 114h170v20H0v-20Z\" />\n </mask>\n <path fill=\"#3C3E3F\" d=\"M0 114h170v20H0v-20Z\" />\n <path fill=\"#5D5D5D\" d=\"M0 115h170v-2H0v2Z\" mask=\"url(#d)\" />\n </g>\n <rect width={169} height={133} x={0.5} y={0.5} stroke=\"#5D5D5D\" rx={5.5} />\n <rect width={64} height={64} x={53} y={24} fill=\"#36AA6C\" rx={32} />\n <path\n fill=\"#fff\"\n d=\"M84.068 42.02c0-.466.408-.932.932-.932.466 0 .932.466.932.932v.99c4.66.467 8.388 4.428 8.388 9.262v1.748a9.57 9.57 0 0 0 2.796 6.756l.174.175c.466.466.758 1.165.758 1.806a2.61 2.61 0 0 1-2.621 2.621H74.514c-1.456-.058-2.563-1.165-2.563-2.621 0-.7.233-1.34.758-1.806l.116-.175c1.806-1.805 2.854-4.252 2.854-6.757v-1.747a9.3 9.3 0 0 1 8.388-9.261v-.99ZM85 44.816c-4.136 0-7.456 3.379-7.456 7.456v1.748c0 3.028-1.223 5.94-3.378 8.096l-.175.117a.94.94 0 0 0-.175.524c0 .408.291.699.7.699h20.91c.408 0 .758-.291.758-.7 0-.174-.117-.349-.233-.523l-.175-.117a11.502 11.502 0 0 1-3.378-8.155v-1.689c0-4.077-3.32-7.456-7.456-7.456H85Zm-1.806 23.008c.291.758.99 1.224 1.806 1.224.757 0 1.456-.466 1.747-1.224.175-.466.7-.757 1.165-.582a.976.976 0 0 1 .583 1.223A3.717 3.717 0 0 1 85 70.912c-1.631 0-3.029-.99-3.553-2.447a.976.976 0 0 1 .582-1.223c.466-.175.99.116 1.165.582Z\"\n />\n <path\n fill=\"#36A86B\"\n d=\"M113.791 86.146c-1.922 0-3.48-1.62-3.48-3.62 0-1.999 1.558-3.62 3.48-3.62s3.481 1.621 3.481 3.62c0 2-1.559 3.62-3.481 3.62Z\"\n />\n </g>\n <defs>\n <clipPath id=\"a\">\n <path fill=\"#fff\" d=\"M0 0h170v134H0z\" />\n </clipPath>\n <clipPath id=\"b\">\n <rect width={170} height={134} fill=\"#fff\" rx={6} />\n </clipPath>\n <linearGradient id=\"c\" x1={20.715} x2={62.592} y1={6.956} y2={110.839} gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#313131\" />\n <stop offset={1} stopColor=\"#1B1B1B\" />\n </linearGradient>\n </defs>\n </svg>\n);\n\nexport default BrowserNotificationsIcon;\n","export const PopupsIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={170} height={134} fill=\"none\" {...props}>\n <g clipPath=\"url(#a)\">\n <g clipPath=\"url(#b)\">\n <path fill=\"url(#c)\" d=\"M0 0h170v94H0z\" transform=\"translate(0 20)\" />\n <mask id=\"d\" fill=\"#fff\">\n <path d=\"M0 114h170v20H0v-20Z\" />\n </mask>\n <path fill=\"#3C3E3F\" d=\"M0 114h170v20H0v-20Z\" />\n <path fill=\"#5D5D5D\" d=\"M0 115h170v-2H0v2Z\" mask=\"url(#d)\" />\n </g>\n <rect width={169} height={113} x={0.5} y={20.5} stroke=\"#5D5D5D\" rx={5.5} />\n <path\n fill=\"#3C3E3F\"\n stroke=\"#5D5D5D\"\n strokeMiterlimit={10}\n d=\"M22.338.5h125.324c2.746 0 4.941 2.144 4.941 4.75v76.938c0 2.608-2.195 4.751-4.941 4.751H22.338c-2.746 0-4.94-2.143-4.94-4.75V5.25c0-2.607 2.194-4.751 4.94-4.751Z\"\n />\n <path\n fill=\"#fff\"\n fillOpacity={0.3}\n d=\"M116.905 16.552a2.766 2.766 0 1 0 0-5.533 2.766 2.766 0 0 0 0 5.533ZM127.206 16.552a2.766 2.766 0 1 0 0-5.533 2.766 2.766 0 0 0 0 5.533Z\"\n />\n <path fill=\"#F0F6FE\" d=\"M137.505 16.552a2.766 2.766 0 1 0 0-5.533 2.766 2.766 0 0 0 0 5.533Z\" />\n <circle cx={46.208} cy={58.882} r={20.294} fill=\"#36AA6C\" />\n <path\n fill=\"#fff\"\n fillRule=\"evenodd\"\n d=\"M45.501 53.17a1 1 0 0 1 1.414 0l6.364 6.363a1 1 0 0 1-1.414 1.415l-4.657-4.657v48.23a1 1 0 0 1-2 0v-48.23l-4.657 4.657a1 1 0 0 1-1.414-1.415l6.364-6.364Z\"\n clipRule=\"evenodd\"\n />\n </g>\n <defs>\n <clipPath id=\"a\">\n <path fill=\"#fff\" d=\"M0 0h170v134H0z\" />\n </clipPath>\n <clipPath id=\"b\">\n <rect width={170} height={114} y={20} fill=\"#fff\" rx={6} />\n </clipPath>\n <linearGradient id=\"c\" x1={20.715} x2={50.521} y1={5.735} y2={95.406} gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#313131\" />\n <stop offset={1} stopColor=\"#1B1B1B\" />\n </linearGradient>\n </defs>\n </svg>\n);\n\nexport default PopupsIcon;\n","export const PWAInstallIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={170} height={134} fill=\"none\" {...props}>\n <g clipPath=\"url(#a)\">\n <g clipPath=\"url(#b)\">\n <path fill=\"url(#c)\" d=\"M0 0h170v114H0z\" />\n <mask id=\"d\" fill=\"#fff\">\n <path d=\"M0 114h170v20H0v-20Z\" />\n </mask>\n <path fill=\"#3C3E3F\" d=\"M0 114h170v20H0v-20Z\" />\n <path fill=\"#5D5D5D\" d=\"M0 115h170v-2H0v2Z\" mask=\"url(#d)\" />\n </g>\n <rect width={169} height={133} x={0.5} y={0.5} stroke=\"#5D5D5D\" rx={5.5} />\n <path\n stroke=\"#5D5D5D\"\n strokeDasharray=\"2 2\"\n strokeLinejoin=\"round\"\n strokeMiterlimit={10}\n d=\"M27.449 103.584a2.008 2.008 0 0 1-1.083-1.083l.462-.191a1.495 1.495 0 0 1-.114-.574v-1.011h-.5v-2.02h.5v-2.021h-.5v-2.021h.5v-2.021h-.5v-2.02h.5V88.6h-.5v-2.02h.5v-2.022h-.5v-2.02h.5v-2.021h-.5v-2.021h.5v-2.02h-.5v-2.022h.5v-2.02h-.5v-2.022h.5v-2.02h-.5V66.37h.5V64.35h-.5v-2.021h.5v-2.02h-.5v-2.022h.5v-2.02h-.5v-2.022h.5v-2.02h-.5v-2.021h.5v-2.021h-.5v-2.021h.5v-2.02h-.5V42.12h.5V40.1h-.5v-2.022h.5v-2.02h-.5v-2.021h.5v-2.021h-.5v-2.02h.5v-2.022h-.5v-2.02h.5v-2.021h-.5v-2.021h.5V19.89h-.5V17.87h.5v-2.021h-.5v-2.02h.5v-1.011c0-.205.04-.398.114-.574l-.462-.192c.203-.489.594-.88 1.083-1.083l.191.462c.176-.073.37-.113.574-.113h1.014v-.5h2.028v.5h2.029v-.5h2.028v.5h2.028v-.5h2.028v.5h2.028v-.5h2.028v.5h2.028v-.5h2.028v.5h2.028v-.5h2.028v.5h2.028v-.5h2.028v.5h2.028v-.5h2.028v.5h2.028v-.5h2.028v.5h2.028v-.5h2.028v.5h2.029v-.5h2.028v.5h2.028v-.5h2.028v.5h2.028v-.5h2.028v.5h2.028v-.5h2.028v.5h2.028v-.5h2.028v.5h2.028v-.5h2.028v.5h2.028v-.5h2.028v.5h2.028v-.5h2.028v.5h2.029v-.5h2.028v.5h2.028v-.5h2.028v.5h2.028v-.5h2.028v.5h2.028v-.5h2.028v.5h2.028v-.5h2.028v.5h2.028v-.5h2.028v.5h2.028v-.5h2.028v.5h2.028v-.5h2.028v.5h2.029v-.5h2.028v.5h2.028v-.5h2.028v.5h1.014c.204 0 .398.04.574.113l.191-.462c.489.203.88.594 1.083 1.083l-.462.192c.073.176.114.37.114.574v1.01h.5v2.021h-.5v2.02h.5v2.022h-.5v2.02h.5v2.021h-.5v2.021h.5v2.021h-.5v2.021h.5v2.02h-.5v2.022h.5v2.02h-.5v2.021h.5V40.1h-.5v2.021h.5v2.021h-.5v2.021h.5v2.02h-.5v2.022h.5v2.02h-.5v2.022h.5v2.02h-.5v2.021h.5v2.021h-.5v2.021h.5v2.02h-.5v2.022h.5v2.02h-.5v2.021h.5v2.021h-.5v2.021h.5v2.021h-.5v2.02h.5v2.022h-.5v2.02h.5v2.021h-.5v2.021h.5V88.6h-.5v2.021h.5v2.021h-.5v2.02h.5v2.022h-.5v2.02h.5v2.021h-.5v1.011c0 .204-.041.398-.114.574l.462.191a2.01 2.01 0 0 1-1.083 1.083l-.191-.462c-.176.073-.37.114-.574.114h-1.014v.5h-2.028v-.5h-2.028v.5h-2.028v-.5h-2.029v.5h-2.028v-.5h-2.028v.5h-2.028v-.5h-2.028v.5h-2.028v-.5h-2.028v.5h-2.028v-.5h-2.028v.5h-2.028v-.5h-2.028v.5h-2.028v-.5h-2.028v.5h-2.028v-.5h-2.028v.5h-2.028v-.5h-2.029v.5h-2.028v-.5h-2.028v.5h-2.028v-.5h-2.028v.5H90.07v-.5h-2.028v.5h-2.028v-.5h-2.028v.5h-2.028v-.5H79.93v.5h-2.028v-.5h-2.028v.5h-2.028v-.5h-2.028v.5H69.79v-.5H67.76v.5h-2.028v-.5h-2.028v.5h-2.028v-.5H59.65v.5h-2.028v-.5h-2.028v.5h-2.028v-.5h-2.028v.5h-2.028v-.5H47.48v.5h-2.028v-.5h-2.028v.5h-2.028v-.5h-2.028v.5H37.34v-.5h-2.029v.5h-2.028v-.5h-2.028v.5h-2.028v-.5h-1.014c-.204 0-.398-.041-.574-.114l-.191.462Z\"\n />\n <path\n fill=\"#5A5C5C\"\n d=\"M128 83c0 8.284 6.716 15 15 15 8.284 0 15-6.716 15-15 0-8.284-6.716-15-15-15-8.284 0-15 6.716-15 15Z\"\n />\n <path\n fill=\"#DDD\"\n d=\"M143.015 89.758a6.667 6.667 0 0 0 5.823-3.379c1.237-2.082 1.237-4.646 0-6.758-1.207-2.082-3.409-3.38-5.823-3.38a6.742 6.742 0 0 0-5.853 3.38c-1.237 2.112-1.237 4.676 0 6.758 1.207 2.112 3.409 3.38 5.853 3.38Zm0-14.482c2.746 0 5.28 1.479 6.668 3.862 1.388 2.414 1.388 5.34 0 7.724a7.666 7.666 0 0 1-6.668 3.862 7.678 7.678 0 0 1-6.698-3.862c-1.388-2.384-1.388-5.31 0-7.724a7.741 7.741 0 0 1 6.698-3.862Zm.724 2.897a.715.715 0 0 1-.724.724.697.697 0 0 1-.724-.724c0-.392.302-.724.724-.724.392 0 .724.332.724.724Zm-1.689 7.723c0 .543.422.966.965.966a.973.973 0 0 0 .966-.966.993.993 0 0 0-.966-.965.972.972 0 0 0-.965.965Zm-.966 0c0-1.056.845-1.93 1.931-1.93.513 0 .996.21 1.328.573l3.228-1.931a.478.478 0 0 1 .664.15c.15.242.06.544-.151.664l-3.228 1.931c.06.181.09.362.09.543 0 1.087-.875 1.931-1.931 1.931a1.906 1.906 0 0 1-1.931-1.93Zm6.034-6.275a.715.715 0 0 1-.724.724.697.697 0 0 1-.724-.724c0-.392.302-.724.724-.724.392 0 .724.332.724.724Zm-8.93 2.655c.392 0 .724.332.724.724a.715.715 0 0 1-.724.724.697.697 0 0 1-.724-.724c0-.392.301-.724.724-.724Zm2.172-2.655a.715.715 0 0 1-.724.724.697.697 0 0 1-.724-.724c0-.392.302-.724.724-.724.392 0 .724.332.724.724Z\"\n />\n <path\n fill=\"#5A5C5C\"\n d=\"M12 83c0 8.284 6.716 15 15 15 8.284 0 15-6.716 15-15 0-8.284-6.716-15-15-15-8.284 0-15 6.716-15 15Z\"\n />\n <path\n fill=\"#DDD\"\n d=\"M27.351 76.62a.804.804 0 0 0-.73 0L21.45 78.81c-.322.117-.556.438-.526.789 0 2.746 1.139 7.596 5.697 9.787a.804.804 0 0 0 .73 0c4.558-2.19 5.697-7.04 5.727-9.787a.855.855 0 0 0-.556-.789l-5.17-2.191Zm-1.08-.877a1.816 1.816 0 0 1 1.46 0l5.142 2.192c.643.292 1.14.905 1.14 1.665-.03 2.922-1.228 8.21-6.253 10.635a1.798 1.798 0 0 1-1.548 0c-5.026-2.425-6.223-7.713-6.223-10.635-.03-.76.467-1.373 1.11-1.665l5.171-2.192Z\"\n />\n <rect width={30} height={30} fill=\"#5A5C5C\" rx={15} transform=\"matrix(1 0 0 -1 12 45.46)\" />\n <path\n fill=\"#DDD\"\n d=\"M18.653 23.886c.132-.184.422-.237.58-.079l16.033 12.657a.394.394 0 0 1 .08.58c-.133.185-.396.212-.58.08L18.732 24.466a.42.42 0 0 1-.08-.58Zm10.416 6.065-1.45-1.16a7.74 7.74 0 0 1 4.746 2.189c.159.184.159.448 0 .606a.447.447 0 0 1-.606 0 6.555 6.555 0 0 0-2.69-1.635Zm-5.01.343a6.346 6.346 0 0 0-1.82 1.292.447.447 0 0 1-.606 0 .414.414 0 0 1 0-.58 7.975 7.975 0 0 1 1.688-1.292l.738.58Zm-.184-4.43-.791-.633a11.395 11.395 0 0 1 3.928-.686c3.218 0 6.17 1.319 8.307 3.428.158.159.158.422 0 .607-.158.158-.422.158-.607 0a10.84 10.84 0 0 0-7.7-3.19c-1.107 0-2.135.157-3.137.474ZM19.84 26.97l.686.528c-.449.343-.844.685-1.24 1.08a.447.447 0 0 1-.606 0c-.159-.184-.159-.447 0-.606.369-.369.765-.685 1.16-1.002Zm5.801 8.702a1.699 1.699 0 0 1-.21-1.687c.263-.554.79-.95 1.397-1.002a1.662 1.662 0 0 1 1.53.712c.369.5.448 1.134.21 1.687-.263.554-.79.95-1.397 1.002a1.662 1.662 0 0 1-1.53-.712Zm2.215-1.002a.868.868 0 0 0-.844-.843.85.85 0 0 0-.843.843c0 .475.369.844.843.844a.85.85 0 0 0 .844-.844Z\"\n />\n <path\n fill=\"#5A5C5C\"\n d=\"M128 30c0 8.284 6.716 15 15 15 8.284 0 15-6.716 15-15 0-8.284-6.716-15-15-15-8.284 0-15 6.716-15 15Z\"\n />\n <path\n fill=\"#DDD\"\n d=\"m142.001 23.885-.424 1.457c-.091.364-.364.637-.668.789-.243.121-.455.242-.667.364a1.232 1.232 0 0 1-1.032.212l-1.456-.364h-.122a3.276 3.276 0 0 0-.455.668l-.152.212a7.838 7.838 0 0 0-.333.728c0 .03.03.091.06.122l1.062 1.061c.243.273.364.668.334 1.002v.758c.03.334-.091.698-.334.971l-1.062 1.092a.231.231 0 0 0-.06.122c.091.242.212.485.333.728l.122.212c.152.213.303.456.455.668h.152l1.456-.364c.364-.091.759 0 1.032.182.212.151.424.273.667.394.304.152.577.425.668.79l.424 1.456c0 .03.031.06.061.09.304.061.607.061.941.061.303 0 .607 0 .91-.06.03-.03.061-.061.061-.091l.424-1.457c.091-.364.364-.637.668-.789a4.79 4.79 0 0 0 .667-.394c.304-.182.668-.273 1.032-.182l1.456.364h.152c.152-.212.304-.455.455-.668l.122-.212c.121-.243.242-.486.333-.728 0-.03-.03-.091-.06-.122l-1.062-1.092a1.316 1.316 0 0 1-.334-.97c0-.122.03-.244.03-.395 0-.122-.03-.243-.03-.364-.03-.334.091-.729.334-1.002l1.062-1.061c.03-.03.06-.092.06-.122a7.838 7.838 0 0 0-.333-.728l-.122-.212a12.155 12.155 0 0 0-.455-.668h-.152l-1.456.364c-.364.091-.728 0-1.032-.182a4.789 4.789 0 0 0-.667-.394c-.304-.152-.577-.425-.668-.79l-.424-1.456a.233.233 0 0 0-.061-.121 9.146 9.146 0 0 0-.91-.06c-.334 0-.637.03-.941.06a.233.233 0 0 0-.061.121Zm1.002-1.153c.394 0 .758.03 1.153.091.06.03.091.03.151.061.273.152.516.425.607.728l.425 1.457c0 .06.061.151.152.182.273.121.546.273.789.455.091.06.182.09.242.06l1.487-.364c.303-.09.668-.03.941.152l.121.122c.212.242.394.546.576.849l.152.212v.03c.152.304.304.608.425.911.03.06.03.091.03.152.031.334-.091.667-.333.91l-1.062 1.092c-.031.03-.061.122-.061.213 0 .151.03.303.03.455 0 .151-.03.303-.03.455 0 .121.03.212.061.243l1.062 1.092c.242.243.364.576.333.91 0 .03 0 .091-.03.152-.121.303-.273.607-.425.91l-.152.243a5.476 5.476 0 0 1-.606.85c-.031.06-.061.09-.091.12a1.206 1.206 0 0 1-.971.152l-1.457-.364c-.06-.03-.151 0-.242.061-.243.152-.516.303-.789.455-.091.03-.152.121-.152.182l-.425 1.426a1.277 1.277 0 0 1-.607.759c-.06.03-.091.03-.151.06-.395.03-.759.061-1.153.061-.395 0-.789-.03-1.184-.06-.06-.03-.091-.03-.151-.061a1.277 1.277 0 0 1-.607-.759l-.425-1.426c0-.06-.061-.151-.152-.182a4.11 4.11 0 0 1-.789-.455c-.091-.06-.182-.06-.242-.06l-1.457.363c-.333.091-.667.03-.94-.151-.061-.03-.091-.06-.122-.091-.242-.273-.424-.577-.606-.88l-.122-.213-.03-.03a11.98 11.98 0 0 1-.425-.91c0-.06-.03-.091-.03-.152 0-.334.091-.667.334-.91l1.061-1.092c.031-.03.061-.122.061-.243v-.91c0-.091-.03-.182-.061-.213l-1.061-1.092c-.243-.243-.334-.576-.334-.91 0-.061.03-.091.03-.152.121-.303.273-.607.425-.91l.03-.03.122-.213a6.09 6.09 0 0 1 .606-.85.24.24 0 0 1 .122-.12c.273-.183.607-.244.94-.153l1.457.364c.06.03.151 0 .242-.06.243-.152.516-.334.789-.455.091-.03.152-.122.152-.182l.425-1.457c.091-.303.334-.576.607-.728.06-.03.091-.03.151-.06.395-.061.789-.092 1.184-.092Zm-1.699 7.768c0 .637.303 1.183.849 1.486.516.304 1.153.304 1.699 0 .516-.303.85-.85.85-1.486 0-.607-.334-1.153-.85-1.457-.546-.303-1.183-.303-1.699 0-.546.304-.849.85-.849 1.457Zm4.369 0c0 .97-.516 1.85-1.335 2.336a2.781 2.781 0 0 1-2.67 0c-.85-.485-1.335-1.365-1.335-2.336 0-.94.485-1.82 1.335-2.306a2.781 2.781 0 0 1 2.67 0 2.702 2.702 0 0 1 1.335 2.306Z\"\n />\n <circle cx={85} cy={57.277} r={32} fill=\"#36AA6C\" />\n <path\n fill=\"#fff\"\n d=\"M72.313 42.777h9.968v1.812h-9.969c-1.019 0-1.812.85-1.812 1.813v16.312a1.79 1.79 0 0 0 1.813 1.813h25.374c.963 0 1.813-.793 1.813-1.813V46.402c0-.963-.85-1.813-1.813-1.813H87.72v-1.812h9.969c1.982 0 3.624 1.642 3.624 3.625v16.312a3.613 3.613 0 0 1-3.624 3.625H89.19l.623 3.625h3.342c.453 0 .906.453.906.907 0 .51-.453.906-.906.906H76.844a.895.895 0 0 1-.906-.906c0-.454.396-.907.906-.907h3.285l.623-3.625h-8.44c-2.039 0-3.624-1.586-3.624-3.625V46.402a3.614 3.614 0 0 1 3.624-3.625Zm10.251 23.562-.623 3.625h6.061l-.623-3.625h-4.815Zm3.342-22.656v12.348l2.946-3.002c.34-.34.962-.34 1.302 0 .34.34.34.963 0 1.302l-4.531 4.532c-.34.34-.963.34-1.303 0l-4.53-4.532c-.34-.34-.34-.962 0-1.302.339-.34.962-.34 1.302 0l3.002 3.002V43.683c0-.453.396-.906.906-.906.453 0 .906.453.906.906Z\"\n />\n </g>\n <defs>\n <clipPath id=\"a\">\n <path fill=\"#fff\" d=\"M0 0h170v134H0z\" />\n </clipPath>\n <clipPath id=\"b\">\n <rect width={170} height={134} fill=\"#fff\" rx={6} />\n </clipPath>\n <linearGradient id=\"c\" x1={20.715} x2={62.592} y1={6.956} y2={110.839} gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#313131\" />\n <stop offset={1} stopColor=\"#1B1B1B\" />\n </linearGradient>\n </defs>\n </svg>\n);\n\nexport default PWAInstallIcon;\n","export const WindowManagementIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={170} height={134} fill=\"none\" {...props}>\n <g clipPath=\"url(#a)\">\n <g clipPath=\"url(#b)\">\n <path fill=\"url(#c)\" d=\"M0 0h170v114H0z\" />\n <path\n stroke=\"#5D5D5D\"\n strokeDasharray=\"2 2\"\n strokeMiterlimit={10}\n d=\"M27.449 103.138a2.008 2.008 0 0 1-1.083-1.083l.462-.191a1.493 1.493 0 0 1-.114-.574v-1.011h-.5v-2.02h.5v-2.021h-.5v-2.021h.5v-2.021h-.5v-2.02h.5v-2.022h-.5v-2.02h.5v-2.022h-.5v-2.02h.5V80.07h-.5V78.05h.5v-2.021h-.5v-2.02h.5v-2.022h-.5v-2.02h.5v-2.021h-.5v-2.021h.5v-2.021h-.5v-2.021h.5v-2.02h-.5V57.84h.5v-2.02h-.5V53.8h.5v-2.021h-.5v-2.021h.5v-2.021h-.5v-2.021h.5v-2.02h-.5v-2.022h.5v-2.02h-.5v-2.022h.5v-2.02h-.5V33.59h.5V31.57h-.5v-2.021h.5v-2.02h-.5v-2.022h.5v-2.02h-.5v-2.021h.5v-2.021h-.5v-2.021h.5v-2.021h-.5v-2.02h.5v-1.011c0-.205.04-.398.114-.574l-.462-.192c.203-.489.594-.88 1.083-1.083l.191.462c.176-.073.37-.113.574-.113h1.014v-.5h2.028v.5h2.029v-.5h2.028v.5h2.028v-.5h2.028v.5h2.028v-.5h2.028v.5h2.028v-.5h2.028v.5h2.028v-.5h2.028v.5h2.028v-.5h2.028v.5h2.028v-.5h2.028v.5h2.028v-.5h2.028v.5h2.028v-.5h2.028v.5h2.029v-.5h2.028v.5h2.028v-.5h2.028v.5h2.028v-.5h2.028v.5h2.028v-.5h2.028v.5h2.028v-.5h2.028v.5h2.028v-.5h2.028v.5h2.028v-.5h2.028v.5h2.028v-.5h2.028v.5h2.029v-.5h2.028v.5h2.028v-.5h2.028v.5h2.028v-.5h2.028v.5h2.028v-.5h2.028v.5h2.028v-.5h2.028v.5h2.028v-.5h2.028v.5h2.028v-.5h2.028v.5h2.028v-.5h2.028v.5h2.029v-.5h2.028v.5h2.028v-.5h2.028v.5h1.014c.204 0 .398.04.574.113l.191-.462c.489.203.88.594 1.083 1.083l-.462.192c.073.176.114.37.114.574v1.01h.5v2.021h-.5v2.02h.5v2.022h-.5v2.02h.5v2.021h-.5v2.021h.5v2.021h-.5v2.021h.5v2.02h-.5v2.022h.5v2.02h-.5v2.022h.5v2.02h-.5v2.021h.5v2.021h-.5v2.021h.5v2.02h-.5v2.022h.5v2.02h-.5V53.8h.5v2.021h-.5v2.021h.5v2.021h-.5v2.02h.5v2.022h-.5v2.02h.5v2.021h-.5v2.021h.5v2.021h-.5v2.021h.5v2.021h-.5v2.02h.5v2.022h-.5v2.02h.5v2.022h-.5v2.02h.5v2.021h-.5v2.021h.5v2.021h-.5v2.02h.5v2.022h-.5v2.02h.5v2.021h-.5v1.011c0 .204-.041.398-.114.574l.462.191a2.01 2.01 0 0 1-1.083 1.083l-.191-.462c-.176.073-.37.114-.574.114h-1.014v.5h-2.028v-.5h-2.028v.5h-2.029v-.5h-2.028v.5h-2.028v-.5h-2.028v.5h-2.028v-.5h-2.028v.5h-2.028v-.5h-2.028v.5h-2.028v-.5h-2.028v.5h-2.028v-.5h-2.028v.5h-2.028v-.5h-2.028v.5h-2.028v-.5h-2.028v.5h-2.028v-.5h-2.029v.5h-2.028v-.5h-2.028v.5h-2.028v-.5h-2.028v.5H90.07v-.5h-2.028v.5h-2.028v-.5h-2.028v.5h-2.028v-.5H79.93v.5h-2.028v-.5h-2.028v.5h-2.028v-.5h-2.028v.5H69.79v-.5H67.76v.5h-2.028v-.5h-2.028v.5h-2.028v-.5H59.65v.5h-2.028v-.5h-2.028v.5h-2.028v-.5h-2.028v.5h-2.028v-.5H47.48v.5h-2.028v-.5h-2.028v.5h-2.028v-.5h-2.028v.5H37.34v-.5h-2.029v.5h-2.028v-.5h-2.028v.5h-2.028v-.5h-1.014c-.204 0-.398-.041-.574-.114l-.191.462Z\"\n />\n <mask id=\"d\" fill=\"#fff\">\n <path d=\"M0 114h170v20H0v-20Z\" />\n </mask>\n <path fill=\"#3C3E3F\" d=\"M0 114h170v20H0v-20Z\" />\n <path fill=\"#5D5D5D\" d=\"M0 115h170v-2H0v2Z\" mask=\"url(#d)\" />\n </g>\n <rect width={169} height={133} x={0.5} y={0.5} stroke=\"#5D5D5D\" rx={5.5} />\n <path\n fill=\"#36AA6C\"\n d=\"M114.756 28.708H55.244c-1.427 0-2.584 1.512-2.584 3.377v49.491c0 1.866 1.157 3.378 2.584 3.378h59.512c1.427 0 2.584-1.512 2.584-3.378v-49.49c0-1.866-1.157-3.378-2.584-3.378Z\"\n />\n <path\n fill=\"#fff\"\n fillOpacity={0.3}\n d=\"M98.8 37.185a1.417 1.417 0 1 0 0-2.833 1.417 1.417 0 0 0 0 2.833ZM104.076 37.185a1.417 1.417 0 1 0 0-2.834 1.417 1.417 0 0 0 0 2.834Z\"\n />\n <path fill=\"#F0F6FE\" d=\"M109.351 37.185a1.417 1.417 0 1 0 0-2.834 1.417 1.417 0 0 0 0 2.834Z\" />\n <path\n fill=\"#3C3E3F\"\n stroke=\"#4B4E4F\"\n strokeMiterlimit={10}\n d=\"M10.804 18.367H43.32c.192 0 .409.105.595.358s.316.627.316 1.061v28.126c0 .434-.13.808-.316 1.06-.186.254-.403.36-.595.36H10.803c-.193 0-.41-.106-.595-.36-.186-.252-.317-.626-.317-1.06V19.786c0-.434.13-.808.317-1.06.186-.254.402-.36.595-.36Z\"\n />\n <path\n fill=\"#fff\"\n fillOpacity={0.3}\n d=\"M26.192 26.344a1.417 1.417 0 1 0 0-2.833 1.417 1.417 0 0 0 0 2.833ZM31.468 26.344a1.417 1.417 0 1 0 0-2.833 1.417 1.417 0 0 0 0 2.833Z\"\n />\n <path fill=\"#F0F6FE\" d=\"M36.743 26.344a1.417 1.417 0 1 0 0-2.833 1.417 1.417 0 0 0 0 2.833Z\" />\n <path\n fill=\"#3C3E3F\"\n stroke=\"#4B4E4F\"\n strokeMiterlimit={10}\n d=\"M126.63 18.367h32.517c.192 0 .409.105.595.358s.316.627.316 1.061v28.126c0 .434-.13.808-.316 1.06-.186.254-.403.36-.595.36H126.63c-.193 0-.409-.106-.595-.36-.186-.252-.317-.626-.317-1.06V19.786c0-.434.131-.808.317-1.06.186-.254.402-.36.595-.36Z\"\n />\n <path\n fill=\"#fff\"\n fillOpacity={0.3}\n d=\"M142.019 26.344a1.416 1.416 0 1 0 0-2.832 1.416 1.416 0 0 0 0 2.832ZM147.294 26.344a1.417 1.417 0 1 0 0-2.833 1.417 1.417 0 0 0 0 2.833Z\"\n />\n <path fill=\"#F0F6FE\" d=\"M152.569 26.344a1.417 1.417 0 1 0 0-2.833 1.417 1.417 0 0 0 0 2.833Z\" />\n <path\n fill=\"#3C3E3F\"\n stroke=\"#4B4E4F\"\n strokeMiterlimit={10}\n d=\"M10.804 63.694H43.32c.192 0 .409.106.595.359s.316.626.316 1.061v28.125c0 .435-.13.808-.316 1.061-.186.254-.403.359-.595.359H10.803c-.193 0-.41-.106-.595-.359-.186-.253-.317-.626-.317-1.06V65.113c0-.435.13-.808.317-1.061.186-.253.402-.358.595-.358Z\"\n />\n <path\n fill=\"#fff\"\n fillOpacity={0.3}\n d=\"M27.192 71.672a1.417 1.417 0 1 0 0-2.833 1.417 1.417 0 0 0 0 2.833ZM32.468 71.672a1.417 1.417 0 1 0 0-2.833 1.417 1.417 0 0 0 0 2.833Z\"\n />\n <path fill=\"#F0F6FE\" d=\"M37.743 71.672a1.417 1.417 0 1 0 0-2.833 1.417 1.417 0 0 0 0 2.833Z\" />\n <path\n fill=\"#3C3E3F\"\n stroke=\"#4B4E4F\"\n strokeMiterlimit={10}\n d=\"M126.63 63.694h32.517c.192 0 .409.106.595.359s.316.626.316 1.061v28.125c0 .435-.13.808-.316 1.061-.186.254-.403.359-.595.359H126.63c-.193 0-.409-.106-.595-.359s-.317-.626-.317-1.06V65.113c0-.435.131-.808.317-1.061.186-.253.402-.358.595-.358Z\"\n />\n <path\n fill=\"#fff\"\n fillOpacity={0.3}\n d=\"M143.019 71.672a1.416 1.416 0 1 0 0-2.833 1.416 1.416 0 0 0 0 2.833ZM148.294 71.672a1.417 1.417 0 1 0 0-2.833 1.417 1.417 0 0 0 0 2.833Z\"\n />\n <path fill=\"#F0F6FE\" d=\"M153.569 71.672a1.417 1.417 0 1 0 0-2.833 1.417 1.417 0 0 0 0 2.833Z\" />\n <path fill=\"#fff\" d=\"M49.318 40.488h5.836a.486.486 0 1 0 0-.973h-5.836a.486.486 0 1 0 0 .973Z\" />\n <path fill=\"#fff\" d=\"M44.318 40.488h5.836a.486.486 0 1 0 0-.973h-5.836a.486.486 0 1 0 0 .973Z\" />\n <path\n fill=\"#fff\"\n d=\"M44.482 40.488h-5.836a.486.486 0 1 1 0-.973h5.836a.486.486 0 1 1 0 .973ZM60.597 40.004l-3.255-3.255a.486.486 0 1 1 .688-.688l3.6 3.6c.19.19.19.497 0 .687l-3.594 3.593a.486.486 0 1 1-.688-.688l3.25-3.249Z\"\n />\n <path fill=\"#3BB272\" d=\"M32.147 36.709a3.375 3.375 0 1 1 0 6.75 3.375 3.375 0 0 1 0-6.75Z\" />\n <path fill=\"#fff\" d=\"M134.062 65.808v-5.836a.487.487 0 0 0-.973 0v5.836a.486.486 0 1 0 .973 0Z\" />\n <path fill=\"#fff\" d=\"M134.062 70.808v-5.836a.487.487 0 0 0-.973 0v5.837a.486.486 0 1 0 .973 0Z\" />\n <path\n fill=\"#fff\"\n d=\"M134.062 70.644v5.836a.487.487 0 0 1-.973 0v-5.836a.486.486 0 1 1 .973 0ZM133.578 54.529l-3.255 3.255a.487.487 0 0 1-.688-.688l3.599-3.599c.19-.19.498-.19.688 0l3.593 3.593a.486.486 0 1 1-.688.688l-3.249-3.249Z\"\n />\n <path fill=\"#AAB0B0\" d=\"M130.282 82.98a3.376 3.376 0 1 1 6.752 0 3.376 3.376 0 0 1-6.752 0Z\" />\n </g>\n <defs>\n <clipPath id=\"a\">\n <path fill=\"#fff\" d=\"M0 0h170v134H0z\" />\n </clipPath>\n <clipPath id=\"b\">\n <rect width={170} height={134} fill=\"#fff\" rx={6} />\n </clipPath>\n <linearGradient id=\"c\" x1={20.715} x2={62.592} y1={6.956} y2={110.839} gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#313131\" />\n <stop offset={1} stopColor=\"#1B1B1B\" />\n </linearGradient>\n </defs>\n </svg>\n);\n\nexport default WindowManagementIcon;\n","export const StartFailedIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={170} height={134} fill=\"none\" {...props}>\n <g clipPath=\"url(#a)\">\n <g clipPath=\"url(#b)\">\n <path fill=\"url(#c)\" d=\"M0 0h170v114H0z\" />\n <mask id=\"d\" fill=\"#fff\">\n <path d=\"M0 114h170v20H0v-20Z\" />\n </mask>\n <path fill=\"#3C3E3F\" d=\"M0 114h170v20H0v-20Z\" />\n <path fill=\"#5D5D5D\" d=\"M0 115h170v-2H0v2Z\" mask=\"url(#d)\" />\n </g>\n <rect width={169} height={133} x={0.5} y={0.5} stroke=\"#5D5D5D\" rx={5.5} />\n <path\n fill=\"#DE2122\"\n d=\"M79.593 28.399c2.403-4.163 8.411-4.163 10.814 0l29.741 51.512c2.403 4.162-.601 9.366-5.407 9.366H55.259c-4.806 0-7.81-5.204-5.407-9.366l29.74-51.512Z\"\n />\n <path\n fill=\"#fff\"\n fillRule=\"evenodd\"\n d=\"M81.84 42.528h6.321a1 1 0 0 1 .994 1.113l-2.691 23.67a1 1 0 0 1-.994.887h-1.033a1 1 0 0 1-.994-.89l-2.596-23.671a1 1 0 0 1 .994-1.11Zm3.128 30.366a3.547 3.547 0 1 0 0 7.093 3.547 3.547 0 0 0 0-7.093Z\"\n clipRule=\"evenodd\"\n />\n <path\n fill=\"#5A5C5C\"\n d=\"M115.69 27.082 132.459.185l17.514-.151-25.545 24.389 17.858 23.176-25.076 13.678L131.267 47.6 115.69 27.082Z\"\n />\n </g>\n <defs>\n <clipPath id=\"a\">\n <path fill=\"#fff\" d=\"M0 0h170v134H0z\" />\n </clipPath>\n <clipPath id=\"b\">\n <rect width={170} height={134} fill=\"#fff\" rx={6} />\n </clipPath>\n <linearGradient id=\"c\" x1={20.715} x2={62.592} y1={6.956} y2={110.839} gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#313131\" />\n <stop offset={1} stopColor=\"#1B1B1B\" />\n </linearGradient>\n </defs>\n </svg>\n);\n\nexport default StartFailedIcon;\n","import { BrowserNotificationsIcon, PopupsIcon, PWAInstallIcon, WindowManagementIcon } from \"../icon-components\";\nimport { IS_GLOBAL_LAYOUT_SUPPORTED, PERMISSION_NAMES } from \"../io-connect-home-provider/constants\";\nimport { SetupStep, SetupStepsStatuses, SetupStepStatus } from \"./types\";\n\nexport const DEFAULT_SETTINGS = {\n edgeNotificationsPermissionTimeout: 15000,\n};\n\nexport const SETUP_STEPS_NAMES = {\n WINDOW_MANAGEMENT: PERMISSION_NAMES.WINDOW_MANAGEMENT,\n NOTIFICATIONS: PERMISSION_NAMES.NOTIFICATIONS,\n POPUPS: \"popups\",\n PWA_INSTALL: \"pwa-install\",\n} as const;\n\nconst WINDOW_MANAGEMENT_SETUP_STEP: SetupStep = {\n name: SETUP_STEPS_NAMES.WINDOW_MANAGEMENT,\n label: `Allow window management${IS_GLOBAL_LAYOUT_SUPPORTED ? \"\" : \" (not available in your browser)\"}`,\n heading: \"Allow Window Management\",\n description: `By granting this permission you will be able to load layouts containing multiple\n windows and share context data between opened windows.`,\n instructions: {\n initial: `Click “Allow” when the browser prompt appears.`,\n additional: `It seems that you closed the permission prompt.\n Click the \"Open permissions prompt\" button again and grant the Window Management\n permission to allow the platform to function properly.`,\n },\n Image: WindowManagementIcon,\n actionBtnText: \"Open permission prompt\",\n};\n\nconst NOTIFICATIONS_SETUP_STEP: SetupStep = {\n name: SETUP_STEPS_NAMES.NOTIFICATIONS,\n label: \"Allow browser notifications\",\n heading: \"Allow Browser Notifications\",\n description: `By granting this permission you will be able to receive platform notifications in the notification center of your\n operating system.`,\n instructions: {\n initial: `Click “Allow” when the browser prompt appears.`,\n additional: `It seems that you closed the permission prompt or your browser automatically blocks notifications.\n To allow browser notifications, go to your browser settings or click the \"Bell\" icon\n in the address bar and allow notifications for this site.`,\n },\n Image: BrowserNotificationsIcon,\n actionBtnText: \"Open permission prompt\",\n};\n\nconst POPUPS_SETUP_STEP: SetupStep = {\n name: SETUP_STEPS_NAMES.POPUPS,\n label: \"Allow pop-ups\",\n heading: \"Allow Pop-ups\",\n description: `By granting this permission you will be able to eject apps from Workspaces and save them as part of a Layout.`,\n instructions: {\n initial: `Click the \"Test Pop-Up Settings\" button. It should open two pop-ups in order to test the\n browser pop-up settings.`,\n additional: `It seems that pop-ups are disabled in your browser.\n To allow pop-ups, go to your browser settings or click the \"Pop-up blocked\" icon\n in the address bar and allow pop-ups for this site.`,\n },\n Image: PopupsIcon,\n actionBtnText: \"Test pop-up settings\",\n};\n\nconst PWA_INSTALL_SETUP_STEP: SetupStep = {\n name: SETUP_STEPS_NAMES.PWA_INSTALL,\n label: \"Install as a PWA\",\n heading: \"Install as a PWA (optional)\",\n description: `By installing the platform as a Progressive Web App you will get a similar experience as with native desktop apps.`,\n instructions: {\n initial: `If your browser supports Progressive Web Apps, you can now install the platform as a PWA.`,\n },\n Image: PWAInstallIcon,\n actionBtnText: \"Continue to the platform\",\n};\n\nexport const SETUP_STEPS: SetupStep[] = [\n WINDOW_MANAGEMENT_SETUP_STEP,\n NOTIFICATIONS_SETUP_STEP,\n POPUPS_SETUP_STEP,\n PWA_INSTALL_SETUP_STEP,\n];\n\nconst INITIAL_STEP_STATUS: SetupStepStatus = {\n isCompleted: false,\n state: \"prompt\",\n};\n\nexport const INITIAL_STEPS_STATUSES: SetupStepsStatuses = {\n [SETUP_STEPS_NAMES.WINDOW_MANAGEMENT]: INITIAL_STEP_STATUS,\n [SETUP_STEPS_NAMES.NOTIFICATIONS]: INITIAL_STEP_STATUS,\n [SETUP_STEPS_NAMES.POPUPS]: INITIAL_STEP_STATUS,\n [SETUP_STEPS_NAMES.PWA_INSTALL]: INITIAL_STEP_STATUS,\n};\n","import Launchpad from \"../../launchpad/launchpad\";\nimport { PanelProps } from \"../types\";\nimport { useWorkspaceComponentsContext } from \"../../home-app-workspace/workspace-components-context\";\nimport { useIOConnectHome } from \"../../io-connect-home-provider/io-connect-home-provider\";\nimport { SETUP_STEPS_NAMES } from \"../../platform-setup/constants\";\n\nexport const LaunchpadPanel = ({ isOpen, onClose }: PanelProps) => {\n const { launchpadComponents, launchpadSettings } = useWorkspaceComponentsContext();\n const { permission } = useIOConnectHome();\n const windowManagementPermissionState = permission.statuses[SETUP_STEPS_NAMES.WINDOW_MANAGEMENT]?.state;\n\n return (\n <Launchpad\n components={launchpadComponents}\n isOpen={isOpen}\n onClose={onClose}\n settings={launchpadSettings}\n windowManagementPermissionState={windowManagementPermissionState}\n />\n );\n};\n","import classNames from \"classnames\";\nimport { forwardRef } from \"react\";\nimport { PanelPosition, PanelProps } from \"./types\";\nimport \"./panel-wrapper.scss\";\n\nexport interface PanelWrapperProps {\n className?: string;\n isOpen: boolean;\n onClose: () => void;\n Panel?: React.ComponentType<PanelProps>;\n pinned?: boolean;\n position?: PanelPosition;\n}\n\nexport const PanelWrapper = forwardRef<HTMLDivElement, PanelWrapperProps>((props, ref) => {\n const { className, isOpen, onClose, Panel, pinned = false, position = \"left\" } = props;\n\n if (isOpen && !Panel) {\n console.error('Invalid use of PanelWrapper component. Please provide Panel component when \"isOpen\" is \"true\".');\n }\n\n return (\n <div\n className={classNames(className, \"panel-wrapper\", position, {\n open: isOpen,\n pinned,\n })}\n ref={ref}\n >\n {Panel && <Panel isOpen={isOpen} onClose={onClose} />}\n </div>\n );\n});\n","import { useCallback, useRef, useState } from \"react\";\nimport { PanelButtonProps, PanelPosition, PanelProps } from \"./types\";\nimport { PanelWrapper } from \"./panel-wrapper\";\nimport { useOnIframeFocus, useOnOutsideClick } from \"../../hooks\";\n\nexport interface PanelWithToggleButtonProps {\n Button: React.ComponentType<PanelButtonProps>;\n Panel: React.ComponentType<PanelProps>;\n panelWrapperClassName?: string;\n pinned?: boolean;\n position?: PanelPosition;\n tag?: React.ElementType;\n onClose?: () => void | Promise<void>;\n}\n\nexport const PanelWithToggleButton = (props: PanelWithToggleButtonProps) => {\n const { Button, Panel, panelWrapperClassName, pinned = false, position = \"left\", tag: Tag = \"div\", onClose } = props;\n const [isOpen, setIsOpen] = useState<boolean>(false);\n const wrapperRef = useRef<HTMLElement | null>(null);\n\n const close = useCallback(async () => {\n setIsOpen(false);\n\n await onClose?.();\n }, [onClose]);\n\n const toggle = () => {\n if (isOpen) {\n close();\n return;\n }\n\n setIsOpen(true);\n };\n\n const skip = !isOpen || pinned;\n\n // If eventType is \"mousedown\" or \"click\" instead of \"mouseup\", clicking the close button of a workspace tab will not close the panel\n // because propagation on these events is stopped\n // https://docs.interop.io/browser/capabilities/windows/workspaces/workspaces-app/index.html#group_header_components-workspace_window_tab\n useOnOutsideClick({ eventType: \"mouseup\", handler: close, ref: wrapperRef, skip });\n\n useOnIframeFocus({ handler: close, skip });\n\n return (\n <Tag ref={wrapperRef}>\n <Button active={isOpen} onClick={toggle} />\n\n <PanelWrapper\n className={panelWrapperClassName}\n isOpen={isOpen}\n onClose={close}\n Panel={Panel}\n pinned={pinned}\n position={position}\n />\n </Tag>\n );\n};\n","import LaunchpadButton from \"../panels/launchpad/launchpad-button\";\nimport { LaunchpadPanel } from \"../panels/launchpad/launchpad-panel\";\nimport { PanelButtonProps } from \"../panels/types\";\nimport { PanelWithToggleButton } from \"../panels/panel-with-toggle-button\";\nimport { useIsLaunchpadPinned } from \"../../hooks\";\nimport \"./launchpad-access.scss\";\n\nexport interface LaunchpadAccessProps {\n Button?: React.ComponentType<PanelButtonProps>;\n}\n\nexport const LaunchpadAccess = ({ Button = LaunchpadButton }: LaunchpadAccessProps) => {\n const { isLaunchpadPinned } = useIsLaunchpadPinned();\n\n return (\n <PanelWithToggleButton\n Button={Button}\n Panel={LaunchpadPanel}\n panelWrapperClassName=\"launchpad-panel-wrapper\"\n pinned={isLaunchpadPinned}\n />\n );\n};\n\nexport default LaunchpadAccess;\n","import React, { createContext, useState, useReducer, useRef, useCallback, useEffect, useMemo, useContext } from 'react';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nfunction __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\ntypeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\n\nfunction e(e,t){var i={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(i[o]=e[o]);if(null!=e&&\"function\"==typeof Object.getOwnPropertySymbols){var n=0;for(o=Object.getOwnPropertySymbols(e);n<o.length;n++)t.indexOf(o[n])<0&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(i[o[n]]=e[o[n]]);}return i}\"function\"==typeof SuppressedError&&SuppressedError;var t=\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:{};function i(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,\"default\")?e.default:e}function o(e,t){return e(t={exports:{}},t.exports),t.exports}var n=o((function(e,t){Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(){var e=this;this.locked=new Map,this.addToLocked=function(t,i){var o=e.locked.get(t);void 0===o?void 0===i?e.locked.set(t,[]):e.locked.set(t,[i]):void 0!==i&&(o.unshift(i),e.locked.set(t,o));},this.isLocked=function(t){return e.locked.has(t)},this.lock=function(t){return new Promise((function(i,o){e.isLocked(t)?e.addToLocked(t,i):(e.addToLocked(t),i());}))},this.unlock=function(t){var i=e.locked.get(t);if(void 0!==i&&0!==i.length){var o=i.pop();e.locked.set(t,i),void 0!==o&&setTimeout(o,0);}else e.locked.delete(t);};}return e.getInstance=function(){return void 0===e.instance&&(e.instance=new e),e.instance},e}();t.default=function(){return i.getInstance()};}));i(n);var a=i(o((function(e,i){var o=t&&t.__awaiter||function(e,t,i,o){return new(i||(i=Promise))((function(n,a){function r(e){try{c(o.next(e));}catch(e){a(e);}}function s(e){try{c(o.throw(e));}catch(e){a(e);}}function c(e){e.done?n(e.value):new i((function(t){t(e.value);})).then(r,s);}c((o=o.apply(e,t||[])).next());}))},a=t&&t.__generator||function(e,t){var i,o,n,a,r={label:0,sent:function(){if(1&n[0])throw n[1];return n[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},\"function\"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(i)throw new TypeError(\"Generator is already executing.\");for(;r;)try{if(i=1,o&&(n=2&a[0]?o.return:a[0]?o.throw||((n=o.return)&&n.call(o),0):o.next)&&!(n=n.call(o,a[1])).done)return n;switch(o=0,n&&(a=[2&a[0],n.value]),a[0]){case 0:case 1:n=a;break;case 4:return r.label++,{value:a[1],done:!1};case 5:r.label++,o=a[1],a=[0];continue;case 7:a=r.ops.pop(),r.trys.pop();continue;default:if(!(n=r.trys,(n=n.length>0&&n[n.length-1])||6!==a[0]&&2!==a[0])){r=0;continue}if(3===a[0]&&(!n||a[1]>n[0]&&a[1]<n[3])){r.label=a[1];break}if(6===a[0]&&r.label<n[1]){r.label=n[1],n=a;break}if(n&&r.label<n[2]){r.label=n[2],r.ops.push(a);break}n[2]&&r.ops.pop(),r.trys.pop();continue}a=t.call(e,r);}catch(e){a=[6,e],o=0;}finally{i=n=0;}if(5&a[0])throw a[1];return {value:a[0]?a[1]:void 0,done:!0}}([a,s])}}},r=t;Object.defineProperty(i,\"__esModule\",{value:!0});var s=\"browser-tabs-lock-key\",c={key:function(e){return o(r,void 0,void 0,(function(){return a(this,(function(e){throw new Error(\"Unsupported\")}))}))},getItem:function(e){return o(r,void 0,void 0,(function(){return a(this,(function(e){throw new Error(\"Unsupported\")}))}))},clear:function(){return o(r,void 0,void 0,(function(){return a(this,(function(e){return [2,window.localStorage.clear()]}))}))},removeItem:function(e){return o(r,void 0,void 0,(function(){return a(this,(function(e){throw new Error(\"Unsupported\")}))}))},setItem:function(e,t){return o(r,void 0,void 0,(function(){return a(this,(function(e){throw new Error(\"Unsupported\")}))}))},keySync:function(e){return window.localStorage.key(e)},getItemSync:function(e){return window.localStorage.getItem(e)},clearSync:function(){return window.localStorage.clear()},removeItemSync:function(e){return window.localStorage.removeItem(e)},setItemSync:function(e,t){return window.localStorage.setItem(e,t)}};function d(e){return new Promise((function(t){return setTimeout(t,e)}))}function u(e){for(var t=\"0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz\",i=\"\",o=0;o<e;o++){i+=t[Math.floor(Math.random()*t.length)];}return i}var l=function(){function e(t){this.acquiredIatSet=new Set,this.storageHandler=void 0,this.id=Date.now().toString()+u(15),this.acquireLock=this.acquireLock.bind(this),this.releaseLock=this.releaseLock.bind(this),this.releaseLock__private__=this.releaseLock__private__.bind(this),this.waitForSomethingToChange=this.waitForSomethingToChange.bind(this),this.refreshLockWhileAcquired=this.refreshLockWhileAcquired.bind(this),this.storageHandler=t,void 0===e.waiters&&(e.waiters=[]);}return e.prototype.acquireLock=function(t,i){return void 0===i&&(i=5e3),o(this,void 0,void 0,(function(){var o,n,r,l,h,p,m;return a(this,(function(a){switch(a.label){case 0:o=Date.now()+u(4),n=Date.now()+i,r=s+\"-\"+t,l=void 0===this.storageHandler?c:this.storageHandler,a.label=1;case 1:return Date.now()<n?[4,d(30)]:[3,8];case 2:return a.sent(),null!==l.getItemSync(r)?[3,5]:(h=this.id+\"-\"+t+\"-\"+o,[4,d(Math.floor(25*Math.random()))]);case 3:return a.sent(),l.setItemSync(r,JSON.stringify({id:this.id,iat:o,timeoutKey:h,timeAcquired:Date.now(),timeRefreshed:Date.now()})),[4,d(30)];case 4:return a.sent(),null!==(p=l.getItemSync(r))&&(m=JSON.parse(p)).id===this.id&&m.iat===o?(this.acquiredIatSet.add(o),this.refreshLockWhileAcquired(r,o),[2,!0]):[3,7];case 5:return e.lockCorrector(void 0===this.storageHandler?c:this.storageHandler),[4,this.waitForSomethingToChange(n)];case 6:a.sent(),a.label=7;case 7:return o=Date.now()+u(4),[3,1];case 8:return [2,!1]}}))}))},e.prototype.refreshLockWhileAcquired=function(e,t){return o(this,void 0,void 0,(function(){var i=this;return a(this,(function(r){return setTimeout((function(){return o(i,void 0,void 0,(function(){var i,o,r;return a(this,(function(a){switch(a.label){case 0:return [4,n.default().lock(t)];case 1:return a.sent(),this.acquiredIatSet.has(t)?(i=void 0===this.storageHandler?c:this.storageHandler,null===(o=i.getItemSync(e))?(n.default().unlock(t),[2]):((r=JSON.parse(o)).timeRefreshed=Date.now(),i.setItemSync(e,JSON.stringify(r)),n.default().unlock(t),this.refreshLockWhileAcquired(e,t),[2])):(n.default().unlock(t),[2])}}))}))}),1e3),[2]}))}))},e.prototype.waitForSomethingToChange=function(t){return o(this,void 0,void 0,(function(){return a(this,(function(i){switch(i.label){case 0:return [4,new Promise((function(i){var o=!1,n=Date.now(),a=!1;function r(){if(a||(window.removeEventListener(\"storage\",r),e.removeFromWaiting(r),clearTimeout(s),a=!0),!o){o=!0;var t=50-(Date.now()-n);t>0?setTimeout(i,t):i(null);}}window.addEventListener(\"storage\",r),e.addToWaiting(r);var s=setTimeout(r,Math.max(0,t-Date.now()));}))];case 1:return i.sent(),[2]}}))}))},e.addToWaiting=function(t){this.removeFromWaiting(t),void 0!==e.waiters&&e.waiters.push(t);},e.removeFromWaiting=function(t){void 0!==e.waiters&&(e.waiters=e.waiters.filter((function(e){return e!==t})));},e.notifyWaiters=function(){void 0!==e.waiters&&e.waiters.slice().forEach((function(e){return e()}));},e.prototype.releaseLock=function(e){return o(this,void 0,void 0,(function(){return a(this,(function(t){switch(t.label){case 0:return [4,this.releaseLock__private__(e)];case 1:return [2,t.sent()]}}))}))},e.prototype.releaseLock__private__=function(t){return o(this,void 0,void 0,(function(){var i,o,r,d;return a(this,(function(a){switch(a.label){case 0:return i=void 0===this.storageHandler?c:this.storageHandler,o=s+\"-\"+t,null===(r=i.getItemSync(o))?[2]:(d=JSON.parse(r)).id!==this.id?[3,2]:[4,n.default().lock(d.iat)];case 1:a.sent(),this.acquiredIatSet.delete(d.iat),i.removeItemSync(o),n.default().unlock(d.iat),e.notifyWaiters(),a.label=2;case 2:return [2]}}))}))},e.lockCorrector=function(t){for(var i=Date.now()-5e3,o=t,n=[],a=0;;){var r=o.keySync(a);if(null===r)break;n.push(r),a++;}for(var c=!1,d=0;d<n.length;d++){var u=n[d];if(u.includes(s)){var l=o.getItemSync(u);if(null!==l){var h=JSON.parse(l);(void 0===h.timeRefreshed&&h.timeAcquired<i||void 0!==h.timeRefreshed&&h.timeRefreshed<i)&&(o.removeItemSync(u),c=!0);}}}c&&e.notifyWaiters();},e.waiters=void 0,e}();i.default=l;})));const r={timeoutInSeconds:60},s={name:\"auth0-spa-js\",version:\"2.1.3\"},c=()=>Date.now();class d extends Error{constructor(e,t){super(t),this.error=e,this.error_description=t,Object.setPrototypeOf(this,d.prototype);}static fromPayload({error:e,error_description:t}){return new d(e,t)}}class u extends d{constructor(e,t,i,o=null){super(e,t),this.state=i,this.appState=o,Object.setPrototypeOf(this,u.prototype);}}class l extends d{constructor(){super(\"timeout\",\"Timeout\"),Object.setPrototypeOf(this,l.prototype);}}class h extends l{constructor(e){super(),this.popup=e,Object.setPrototypeOf(this,h.prototype);}}class p extends d{constructor(e){super(\"cancelled\",\"Popup closed\"),this.popup=e,Object.setPrototypeOf(this,p.prototype);}}class m extends d{constructor(e,t,i){super(e,t),this.mfa_token=i,Object.setPrototypeOf(this,m.prototype);}}class f extends d{constructor(e,t){super(\"missing_refresh_token\",`Missing Refresh Token (audience: '${g(e,[\"default\"])}', scope: '${g(t)}')`),this.audience=e,this.scope=t,Object.setPrototypeOf(this,f.prototype);}}function g(e,t=[]){return e&&!t.includes(e)?e:\"\"}const w=()=>window.crypto,y=()=>{const e=\"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_~.\";let t=\"\";return Array.from(w().getRandomValues(new Uint8Array(43))).forEach((i=>t+=e[i%e.length])),t},k=e=>btoa(e),v=t=>{var{clientId:i}=t,o=e(t,[\"clientId\"]);return new URLSearchParams((e=>Object.keys(e).filter((t=>void 0!==e[t])).reduce(((t,i)=>Object.assign(Object.assign({},t),{[i]:e[i]})),{}))(Object.assign({client_id:i},o))).toString()},b=e=>(e=>decodeURIComponent(atob(e).split(\"\").map((e=>\"%\"+(\"00\"+e.charCodeAt(0).toString(16)).slice(-2))).join(\"\")))(e.replace(/_/g,\"/\").replace(/-/g,\"+\")),_=async(e,t)=>{const i=await fetch(e,t);return {ok:i.ok,json:await i.json()}},I=async(e,t,i)=>{const o=new AbortController;let n;return t.signal=o.signal,Promise.race([_(e,t),new Promise(((e,t)=>{n=setTimeout((()=>{o.abort(),t(new Error(\"Timeout when executing 'fetch'\"));}),i);}))]).finally((()=>{clearTimeout(n);}))},S=async(e,t,i,o,n,a,r)=>{return s={auth:{audience:t,scope:i},timeout:n,fetchUrl:e,fetchOptions:o,useFormData:r},c=a,new Promise((function(e,t){const i=new MessageChannel;i.port1.onmessage=function(o){o.data.error?t(new Error(o.data.error)):e(o.data),i.port1.close();},c.postMessage(s,[i.port2]);}));var s,c;},O=async(e,t,i,o,n,a,r=1e4)=>n?S(e,t,i,o,r,n,a):I(e,o,r);async function T(t,i){var{baseUrl:o,timeout:n,audience:a,scope:r,auth0Client:c,useFormData:u}=t,l=e(t,[\"baseUrl\",\"timeout\",\"audience\",\"scope\",\"auth0Client\",\"useFormData\"]);const h=u?v(l):JSON.stringify(l);return await async function(t,i,o,n,a,r,s){let c,u=null;for(let e=0;e<3;e++)try{c=await O(t,o,n,a,r,s,i),u=null;break}catch(e){u=e;}if(u)throw u;const l=c.json,{error:h,error_description:p}=l,g=e(l,[\"error\",\"error_description\"]),{ok:w}=c;if(!w){const e=p||`HTTP error. Unable to fetch ${t}`;if(\"mfa_required\"===h)throw new m(h,e,g.mfa_token);if(\"missing_refresh_token\"===h)throw new f(o,n);throw new d(h||\"request_error\",e)}return g}(`${o}/oauth/token`,n,a||\"default\",r,{method:\"POST\",body:h,headers:{\"Content-Type\":u?\"application/x-www-form-urlencoded\":\"application/json\",\"Auth0-Client\":btoa(JSON.stringify(c||s))}},i,u)}const j=(...e)=>{return (t=e.filter(Boolean).join(\" \").trim().split(/\\s+/),Array.from(new Set(t))).join(\" \");var t;};class C{constructor(e,t=\"@@auth0spajs@@\",i){this.prefix=t,this.suffix=i,this.clientId=e.clientId,this.scope=e.scope,this.audience=e.audience;}toKey(){return [this.prefix,this.clientId,this.audience,this.scope,this.suffix].filter(Boolean).join(\"::\")}static fromKey(e){const[t,i,o,n]=e.split(\"::\");return new C({clientId:i,scope:n,audience:o},t)}static fromCacheEntry(e){const{scope:t,audience:i,client_id:o}=e;return new C({scope:t,audience:i,clientId:o})}}class z{set(e,t){localStorage.setItem(e,JSON.stringify(t));}get(e){const t=window.localStorage.getItem(e);if(t)try{return JSON.parse(t)}catch(e){return}}remove(e){localStorage.removeItem(e);}allKeys(){return Object.keys(window.localStorage).filter((e=>e.startsWith(\"@@auth0spajs@@\")))}}class P{constructor(){this.enclosedCache=function(){let e={};return {set(t,i){e[t]=i;},get(t){const i=e[t];if(i)return i},remove(t){delete e[t];},allKeys:()=>Object.keys(e)}}();}}class x{constructor(e,t,i){this.cache=e,this.keyManifest=t,this.nowProvider=i||c;}async setIdToken(e,t,i){var o;const n=this.getIdTokenCacheKey(e);await this.cache.set(n,{id_token:t,decodedToken:i}),await(null===(o=this.keyManifest)||void 0===o?void 0:o.add(n));}async getIdToken(e){const t=await this.cache.get(this.getIdTokenCacheKey(e.clientId));if(!t&&e.scope&&e.audience){const t=await this.get(e);if(!t)return;if(!t.id_token||!t.decodedToken)return;return {id_token:t.id_token,decodedToken:t.decodedToken}}if(t)return {id_token:t.id_token,decodedToken:t.decodedToken}}async get(e,t=0){var i;let o=await this.cache.get(e.toKey());if(!o){const t=await this.getCacheKeys();if(!t)return;const i=this.matchExistingCacheKey(e,t);i&&(o=await this.cache.get(i));}if(!o)return;const n=await this.nowProvider(),a=Math.floor(n/1e3);return o.expiresAt-t<a?o.body.refresh_token?(o.body={refresh_token:o.body.refresh_token},await this.cache.set(e.toKey(),o),o.body):(await this.cache.remove(e.toKey()),void await(null===(i=this.keyManifest)||void 0===i?void 0:i.remove(e.toKey()))):o.body}async set(e){var t;const i=new C({clientId:e.client_id,scope:e.scope,audience:e.audience}),o=await this.wrapCacheEntry(e);await this.cache.set(i.toKey(),o),await(null===(t=this.keyManifest)||void 0===t?void 0:t.add(i.toKey()));}async clear(e){var t;const i=await this.getCacheKeys();i&&(await i.filter((t=>!e||t.includes(e))).reduce((async(e,t)=>{await e,await this.cache.remove(t);}),Promise.resolve()),await(null===(t=this.keyManifest)||void 0===t?void 0:t.clear()));}async wrapCacheEntry(e){const t=await this.nowProvider();return {body:e,expiresAt:Math.floor(t/1e3)+e.expires_in}}async getCacheKeys(){var e;return this.keyManifest?null===(e=await this.keyManifest.get())||void 0===e?void 0:e.keys:this.cache.allKeys?this.cache.allKeys():void 0}getIdTokenCacheKey(e){return new C({clientId:e},\"@@auth0spajs@@\",\"@@user@@\").toKey()}matchExistingCacheKey(e,t){return t.filter((t=>{var i;const o=C.fromKey(t),n=new Set(o.scope&&o.scope.split(\" \")),a=(null===(i=e.scope)||void 0===i?void 0:i.split(\" \"))||[],r=o.scope&&a.reduce(((e,t)=>e&&n.has(t)),!0);return \"@@auth0spajs@@\"===o.prefix&&o.clientId===e.clientId&&o.audience===e.audience&&r}))[0]}}class Z{constructor(e,t,i){this.storage=e,this.clientId=t,this.cookieDomain=i,this.storageKey=`a0.spajs.txs.${this.clientId}`;}create(e){this.storage.save(this.storageKey,e,{daysUntilExpire:1,cookieDomain:this.cookieDomain});}get(){return this.storage.get(this.storageKey)}remove(){this.storage.remove(this.storageKey,{cookieDomain:this.cookieDomain});}}const K=e=>\"number\"==typeof e,W=[\"iss\",\"aud\",\"exp\",\"nbf\",\"iat\",\"jti\",\"azp\",\"nonce\",\"auth_time\",\"at_hash\",\"c_hash\",\"acr\",\"amr\",\"sub_jwk\",\"cnf\",\"sip_from_tag\",\"sip_date\",\"sip_callid\",\"sip_cseq_num\",\"sip_via_branch\",\"orig\",\"dest\",\"mky\",\"events\",\"toe\",\"txn\",\"rph\",\"sid\",\"vot\",\"vtm\"],E=e=>{if(!e.id_token)throw new Error(\"ID token is required but missing\");const t=(e=>{const t=e.split(\".\"),[i,o,n]=t;if(3!==t.length||!i||!o||!n)throw new Error(\"ID token could not be decoded\");const a=JSON.parse(b(o)),r={__raw:e},s={};return Object.keys(a).forEach((e=>{r[e]=a[e],W.includes(e)||(s[e]=a[e]);})),{encoded:{header:i,payload:o,signature:n},header:JSON.parse(b(i)),claims:r,user:s}})(e.id_token);if(!t.claims.iss)throw new Error(\"Issuer (iss) claim must be a string present in the ID token\");if(t.claims.iss!==e.iss)throw new Error(`Issuer (iss) claim mismatch in the ID token; expected \"${e.iss}\", found \"${t.claims.iss}\"`);if(!t.user.sub)throw new Error(\"Subject (sub) claim must be a string present in the ID token\");if(\"RS256\"!==t.header.alg)throw new Error(`Signature algorithm of \"${t.header.alg}\" is not supported. Expected the ID token to be signed with \"RS256\".`);if(!t.claims.aud||\"string\"!=typeof t.claims.aud&&!Array.isArray(t.claims.aud))throw new Error(\"Audience (aud) claim must be a string or array of strings present in the ID token\");if(Array.isArray(t.claims.aud)){if(!t.claims.aud.includes(e.aud))throw new Error(`Audience (aud) claim mismatch in the ID token; expected \"${e.aud}\" but was not one of \"${t.claims.aud.join(\", \")}\"`);if(t.claims.aud.length>1){if(!t.claims.azp)throw new Error(\"Authorized Party (azp) claim must be a string present in the ID token when Audience (aud) claim has multiple values\");if(t.claims.azp!==e.aud)throw new Error(`Authorized Party (azp) claim mismatch in the ID token; expected \"${e.aud}\", found \"${t.claims.azp}\"`)}}else if(t.claims.aud!==e.aud)throw new Error(`Audience (aud) claim mismatch in the ID token; expected \"${e.aud}\" but found \"${t.claims.aud}\"`);if(e.nonce){if(!t.claims.nonce)throw new Error(\"Nonce (nonce) claim must be a string present in the ID token\");if(t.claims.nonce!==e.nonce)throw new Error(`Nonce (nonce) claim mismatch in the ID token; expected \"${e.nonce}\", found \"${t.claims.nonce}\"`)}if(e.max_age&&!K(t.claims.auth_time))throw new Error(\"Authentication Time (auth_time) claim must be a number present in the ID token when Max Age (max_age) is specified\");if(null==t.claims.exp||!K(t.claims.exp))throw new Error(\"Expiration Time (exp) claim must be a number present in the ID token\");if(!K(t.claims.iat))throw new Error(\"Issued At (iat) claim must be a number present in the ID token\");const i=e.leeway||60,o=new Date(e.now||Date.now()),n=new Date(0);if(n.setUTCSeconds(t.claims.exp+i),o>n)throw new Error(`Expiration Time (exp) claim error in the ID token; current time (${o}) is after expiration time (${n})`);if(null!=t.claims.nbf&&K(t.claims.nbf)){const e=new Date(0);if(e.setUTCSeconds(t.claims.nbf-i),o<e)throw new Error(`Not Before time (nbf) claim in the ID token indicates that this token can't be used just yet. Current time (${o}) is before ${e}`)}if(null!=t.claims.auth_time&&K(t.claims.auth_time)){const n=new Date(0);if(n.setUTCSeconds(parseInt(t.claims.auth_time)+e.max_age+i),o>n)throw new Error(`Authentication Time (auth_time) claim in the ID token indicates that too much time has passed since the last end-user authentication. Current time (${o}) is after last auth at ${n}`)}if(e.organization){const i=e.organization.trim();if(i.startsWith(\"org_\")){const e=i;if(!t.claims.org_id)throw new Error(\"Organization ID (org_id) claim must be a string present in the ID token\");if(e!==t.claims.org_id)throw new Error(`Organization ID (org_id) claim mismatch in the ID token; expected \"${e}\", found \"${t.claims.org_id}\"`)}else {const e=i.toLowerCase();if(!t.claims.org_name)throw new Error(\"Organization Name (org_name) claim must be a string present in the ID token\");if(e!==t.claims.org_name)throw new Error(`Organization Name (org_name) claim mismatch in the ID token; expected \"${e}\", found \"${t.claims.org_name}\"`)}}return t};var R=o((function(e,i){var o=t&&t.__assign||function(){return o=Object.assign||function(e){for(var t,i=1,o=arguments.length;i<o;i++)for(var n in t=arguments[i])Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e},o.apply(this,arguments)};function n(e,t){if(!t)return \"\";var i=\"; \"+e;return !0===t?i:i+\"=\"+t}function a(e,t,i){return encodeURIComponent(e).replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent).replace(/\\(/g,\"%28\").replace(/\\)/g,\"%29\")+\"=\"+encodeURIComponent(t).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent)+function(e){if(\"number\"==typeof e.expires){var t=new Date;t.setMilliseconds(t.getMilliseconds()+864e5*e.expires),e.expires=t;}return n(\"Expires\",e.expires?e.expires.toUTCString():\"\")+n(\"Domain\",e.domain)+n(\"Path\",e.path)+n(\"Secure\",e.secure)+n(\"SameSite\",e.sameSite)}(i)}function r(e){for(var t={},i=e?e.split(\"; \"):[],o=/(%[\\dA-F]{2})+/gi,n=0;n<i.length;n++){var a=i[n].split(\"=\"),r=a.slice(1).join(\"=\");'\"'===r.charAt(0)&&(r=r.slice(1,-1));try{t[a[0].replace(o,decodeURIComponent)]=r.replace(o,decodeURIComponent);}catch(e){}}return t}function s(){return r(document.cookie)}function c(e,t,i){document.cookie=a(e,t,o({path:\"/\"},i));}i.__esModule=!0,i.encode=a,i.parse=r,i.getAll=s,i.get=function(e){return s()[e]},i.set=c,i.remove=function(e,t){c(e,\"\",o(o({},t),{expires:-1}));};}));i(R),R.encode,R.parse,R.getAll;var U=R.get,L=R.set,D=R.remove;const X={get(e){const t=U(e);if(void 0!==t)return JSON.parse(t)},save(e,t,i){let o={};\"https:\"===window.location.protocol&&(o={secure:!0,sameSite:\"none\"}),(null==i?void 0:i.daysUntilExpire)&&(o.expires=i.daysUntilExpire),(null==i?void 0:i.cookieDomain)&&(o.domain=i.cookieDomain),L(e,JSON.stringify(t),o);},remove(e,t){let i={};(null==t?void 0:t.cookieDomain)&&(i.domain=t.cookieDomain),D(e,i);}},N={get(e){const t=X.get(e);return t||X.get(`_legacy_${e}`)},save(e,t,i){let o={};\"https:\"===window.location.protocol&&(o={secure:!0}),(null==i?void 0:i.daysUntilExpire)&&(o.expires=i.daysUntilExpire),(null==i?void 0:i.cookieDomain)&&(o.domain=i.cookieDomain),L(`_legacy_${e}`,JSON.stringify(t),o),X.save(e,t,i);},remove(e,t){let i={};(null==t?void 0:t.cookieDomain)&&(i.domain=t.cookieDomain),D(e,i),X.remove(e,t),X.remove(`_legacy_${e}`,t);}},J={get(e){if(\"undefined\"==typeof sessionStorage)return;const t=sessionStorage.getItem(e);return null!=t?JSON.parse(t):void 0},save(e,t){sessionStorage.setItem(e,JSON.stringify(t));},remove(e){sessionStorage.removeItem(e);}};function F(e,t,i){var o=void 0===t?null:t,n=function(e,t){var i=atob(e);if(t){for(var o=new Uint8Array(i.length),n=0,a=i.length;n<a;++n)o[n]=i.charCodeAt(n);return String.fromCharCode.apply(null,new Uint16Array(o.buffer))}return i}(e,void 0!==i&&i),a=n.indexOf(\"\\n\",10)+1,r=n.substring(a)+(o?\"//# sourceMappingURL=\"+o:\"\"),s=new Blob([r],{type:\"application/javascript\"});return URL.createObjectURL(s)}var H,Y,G,V,M=(H=\"Lyogcm9sbHVwLXBsdWdpbi13ZWItd29ya2VyLWxvYWRlciAqLwohZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7Y2xhc3MgZSBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKHQscil7c3VwZXIociksdGhpcy5lcnJvcj10LHRoaXMuZXJyb3JfZGVzY3JpcHRpb249cixPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcyxlLnByb3RvdHlwZSl9c3RhdGljIGZyb21QYXlsb2FkKHtlcnJvcjp0LGVycm9yX2Rlc2NyaXB0aW9uOnJ9KXtyZXR1cm4gbmV3IGUodCxyKX19Y2xhc3MgdCBleHRlbmRzIGV7Y29uc3RydWN0b3IoZSxzKXtzdXBlcigibWlzc2luZ19yZWZyZXNoX3Rva2VuIixgTWlzc2luZyBSZWZyZXNoIFRva2VuIChhdWRpZW5jZTogJyR7cihlLFsiZGVmYXVsdCJdKX0nLCBzY29wZTogJyR7cihzKX0nKWApLHRoaXMuYXVkaWVuY2U9ZSx0aGlzLnNjb3BlPXMsT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsdC5wcm90b3R5cGUpfX1mdW5jdGlvbiByKGUsdD1bXSl7cmV0dXJuIGUmJiF0LmluY2x1ZGVzKGUpP2U6IiJ9ImZ1bmN0aW9uIj09dHlwZW9mIFN1cHByZXNzZWRFcnJvciYmU3VwcHJlc3NlZEVycm9yO2NvbnN0IHM9ZT0+e3ZhcntjbGllbnRJZDp0fT1lLHI9ZnVuY3Rpb24oZSx0KXt2YXIgcj17fTtmb3IodmFyIHMgaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxzKSYmdC5pbmRleE9mKHMpPDAmJihyW3NdPWVbc10pO2lmKG51bGwhPWUmJiJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgbz0wO2ZvcihzPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7bzxzLmxlbmd0aDtvKyspdC5pbmRleE9mKHNbb10pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLHNbb10pJiYocltzW29dXT1lW3Nbb11dKX1yZXR1cm4gcn0oZSxbImNsaWVudElkIl0pO3JldHVybiBuZXcgVVJMU2VhcmNoUGFyYW1zKChlPT5PYmplY3Qua2V5cyhlKS5maWx0ZXIoKHQ9PnZvaWQgMCE9PWVbdF0pKS5yZWR1Y2UoKCh0LHIpPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse1tyXTplW3JdfSkpLHt9KSkoT2JqZWN0LmFzc2lnbih7Y2xpZW50X2lkOnR9LHIpKSkudG9TdHJpbmcoKX07bGV0IG89e307Y29uc3Qgbj0oZSx0KT0+YCR7ZX18JHt0fWA7YWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsKGFzeW5jKHtkYXRhOnt0aW1lb3V0OmUsYXV0aDpyLGZldGNoVXJsOmksZmV0Y2hPcHRpb25zOmMsdXNlRm9ybURhdGE6YX0scG9ydHM6W3BdfSk9PntsZXQgZjtjb25zdHthdWRpZW5jZTp1LHNjb3BlOmx9PXJ8fHt9O3RyeXtjb25zdCByPWE/KGU9Pntjb25zdCB0PW5ldyBVUkxTZWFyY2hQYXJhbXMoZSkscj17fTtyZXR1cm4gdC5mb3JFYWNoKCgoZSx0KT0+e3JbdF09ZX0pKSxyfSkoYy5ib2R5KTpKU09OLnBhcnNlKGMuYm9keSk7aWYoIXIucmVmcmVzaF90b2tlbiYmInJlZnJlc2hfdG9rZW4iPT09ci5ncmFudF90eXBlKXtjb25zdCBlPSgoZSx0KT0+b1tuKGUsdCldKSh1LGwpO2lmKCFlKXRocm93IG5ldyB0KHUsbCk7Yy5ib2R5PWE/cyhPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30scikse3JlZnJlc2hfdG9rZW46ZX0pKTpKU09OLnN0cmluZ2lmeShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30scikse3JlZnJlc2hfdG9rZW46ZX0pKX1sZXQgaCxnOyJmdW5jdGlvbiI9PXR5cGVvZiBBYm9ydENvbnRyb2xsZXImJihoPW5ldyBBYm9ydENvbnRyb2xsZXIsYy5zaWduYWw9aC5zaWduYWwpO3RyeXtnPWF3YWl0IFByb21pc2UucmFjZShbKGQ9ZSxuZXcgUHJvbWlzZSgoZT0+c2V0VGltZW91dChlLGQpKSkpLGZldGNoKGksT2JqZWN0LmFzc2lnbih7fSxjKSldKX1jYXRjaChlKXtyZXR1cm4gdm9pZCBwLnBvc3RNZXNzYWdlKHtlcnJvcjplLm1lc3NhZ2V9KX1pZighZylyZXR1cm4gaCYmaC5hYm9ydCgpLHZvaWQgcC5wb3N0TWVzc2FnZSh7ZXJyb3I6IlRpbWVvdXQgd2hlbiBleGVjdXRpbmcgJ2ZldGNoJyJ9KTtmPWF3YWl0IGcuanNvbigpLGYucmVmcmVzaF90b2tlbj8oKChlLHQscik9PntvW24odCxyKV09ZX0pKGYucmVmcmVzaF90b2tlbix1LGwpLGRlbGV0ZSBmLnJlZnJlc2hfdG9rZW4pOigoZSx0KT0+e2RlbGV0ZSBvW24oZSx0KV19KSh1LGwpLHAucG9zdE1lc3NhZ2Uoe29rOmcub2ssanNvbjpmfSl9Y2F0Y2goZSl7cC5wb3N0TWVzc2FnZSh7b2s6ITEsanNvbjp7ZXJyb3I6ZS5lcnJvcixlcnJvcl9kZXNjcmlwdGlvbjplLm1lc3NhZ2V9fSl9dmFyIGR9KSl9KCk7Cgo=\",Y=null,G=!1,function(e){return V=V||F(H,Y,G),new Worker(V,e)});const A={};class B{constructor(e,t){this.cache=e,this.clientId=t,this.manifestKey=this.createManifestKeyFrom(this.clientId);}async add(e){var t;const i=new Set((null===(t=await this.cache.get(this.manifestKey))||void 0===t?void 0:t.keys)||[]);i.add(e),await this.cache.set(this.manifestKey,{keys:[...i]});}async remove(e){const t=await this.cache.get(this.manifestKey);if(t){const i=new Set(t.keys);return i.delete(e),i.size>0?await this.cache.set(this.manifestKey,{keys:[...i]}):await this.cache.remove(this.manifestKey)}}get(){return this.cache.get(this.manifestKey)}clear(){return this.cache.remove(this.manifestKey)}createManifestKeyFrom(e){return `@@auth0spajs@@::${e}`}}const $={memory:()=>(new P).enclosedCache,localstorage:()=>new z},q=e=>$[e],Q=t=>{const{openUrl:i,onRedirect:o}=t,n=e(t,[\"openUrl\",\"onRedirect\"]);return Object.assign(Object.assign({},n),{openUrl:!1===i||i?i:o})},ee=new a;class te{constructor(e){let t,i;if(this.userCache=(new P).enclosedCache,this.defaultOptions={authorizationParams:{scope:\"openid profile email\"},useRefreshTokensFallback:!1,useFormData:!0},this._releaseLockOnPageHide=async()=>{await ee.releaseLock(\"auth0.lock.getTokenSilently\"),window.removeEventListener(\"pagehide\",this._releaseLockOnPageHide);},this.options=Object.assign(Object.assign(Object.assign({},this.defaultOptions),e),{authorizationParams:Object.assign(Object.assign({},this.defaultOptions.authorizationParams),e.authorizationParams)}),\"undefined\"!=typeof window&&(()=>{if(!w())throw new Error(\"For security reasons, `window.crypto` is required to run `auth0-spa-js`.\");if(void 0===w().subtle)throw new Error(\"\\n auth0-spa-js must run on a secure origin. See https://github.com/auth0/auth0-spa-js/blob/main/FAQ.md#why-do-i-get-auth0-spa-js-must-run-on-a-secure-origin for more information.\\n \")})(),e.cache&&e.cacheLocation&&console.warn(\"Both `cache` and `cacheLocation` options have been specified in the Auth0Client configuration; ignoring `cacheLocation` and using `cache`.\"),e.cache)i=e.cache;else {if(t=e.cacheLocation||\"memory\",!q(t))throw new Error(`Invalid cache location \"${t}\"`);i=q(t)();}this.httpTimeoutMs=e.httpTimeoutInSeconds?1e3*e.httpTimeoutInSeconds:1e4,this.cookieStorage=!1===e.legacySameSiteCookie?X:N,this.orgHintCookieName=`auth0.${this.options.clientId}.organization_hint`,this.isAuthenticatedCookieName=(e=>`auth0.${e}.is.authenticated`)(this.options.clientId),this.sessionCheckExpiryDays=e.sessionCheckExpiryDays||1;const o=e.useCookiesForTransactions?this.cookieStorage:J;var n;this.scope=j(\"openid\",this.options.authorizationParams.scope,this.options.useRefreshTokens?\"offline_access\":\"\"),this.transactionManager=new Z(o,this.options.clientId,this.options.cookieDomain),this.nowProvider=this.options.nowProvider||c,this.cacheManager=new x(i,i.allKeys?void 0:new B(i,this.options.clientId),this.nowProvider),this.domainUrl=(n=this.options.domain,/^https?:\\/\\//.test(n)?n:`https://${n}`),this.tokenIssuer=((e,t)=>e?e.startsWith(\"https://\")?e:`https://${e}/`:`${t}/`)(this.options.issuer,this.domainUrl),\"undefined\"!=typeof window&&window.Worker&&this.options.useRefreshTokens&&\"memory\"===t&&(this.options.workerUrl?this.worker=new Worker(this.options.workerUrl):this.worker=new M);}_url(e){const t=encodeURIComponent(btoa(JSON.stringify(this.options.auth0Client||s)));return `${this.domainUrl}${e}&auth0Client=${t}`}_authorizeUrl(e){return this._url(`/authorize?${v(e)}`)}async _verifyIdToken(e,t,i){const o=await this.nowProvider();return E({iss:this.tokenIssuer,aud:this.options.clientId,id_token:e,nonce:t,organization:i,leeway:this.options.leeway,max_age:(n=this.options.authorizationParams.max_age,\"string\"!=typeof n?n:parseInt(n,10)||void 0),now:o});var n;}_processOrgHint(e){e?this.cookieStorage.save(this.orgHintCookieName,e,{daysUntilExpire:this.sessionCheckExpiryDays,cookieDomain:this.options.cookieDomain}):this.cookieStorage.remove(this.orgHintCookieName,{cookieDomain:this.options.cookieDomain});}async _prepareAuthorizeUrl(e,t,i){const o=k(y()),n=k(y()),a=y(),r=(e=>{const t=new Uint8Array(e);return (e=>{const t={\"+\":\"-\",\"/\":\"_\",\"=\":\"\"};return e.replace(/[+/=]/g,(e=>t[e]))})(window.btoa(String.fromCharCode(...Array.from(t))))})(await(async e=>{const t=w().subtle.digest({name:\"SHA-256\"},(new TextEncoder).encode(e));return await t})(a)),s=((e,t,i,o,n,a,r,s)=>Object.assign(Object.assign(Object.assign({client_id:e.clientId},e.authorizationParams),i),{scope:j(t,i.scope),response_type:\"code\",response_mode:s||\"query\",state:o,nonce:n,redirect_uri:r||e.authorizationParams.redirect_uri,code_challenge:a,code_challenge_method:\"S256\"}))(this.options,this.scope,e,o,n,r,e.redirect_uri||this.options.authorizationParams.redirect_uri||i,null==t?void 0:t.response_mode),c=this._authorizeUrl(s);return {nonce:n,code_verifier:a,scope:s.scope,audience:s.audience||\"default\",redirect_uri:s.redirect_uri,state:o,url:c}}async loginWithPopup(e,t){var i;if(e=e||{},!(t=t||{}).popup&&(t.popup=(e=>{const t=window.screenX+(window.innerWidth-400)/2,i=window.screenY+(window.innerHeight-600)/2;return window.open(e,\"auth0:authorize:popup\",`left=${t},top=${i},width=400,height=600,resizable,scrollbars=yes,status=1`)})(\"\"),!t.popup))throw new Error(\"Unable to open a popup for loginWithPopup - window.open returned `null`\");const o=await this._prepareAuthorizeUrl(e.authorizationParams||{},{response_mode:\"web_message\"},window.location.origin);t.popup.location.href=o.url;const n=await(e=>new Promise(((t,i)=>{let o;const n=setInterval((()=>{e.popup&&e.popup.closed&&(clearInterval(n),clearTimeout(a),window.removeEventListener(\"message\",o,!1),i(new p(e.popup)));}),1e3),a=setTimeout((()=>{clearInterval(n),i(new h(e.popup)),window.removeEventListener(\"message\",o,!1);}),1e3*(e.timeoutInSeconds||60));o=function(r){if(r.data&&\"authorization_response\"===r.data.type){if(clearTimeout(a),clearInterval(n),window.removeEventListener(\"message\",o,!1),e.popup.close(),r.data.response.error)return i(d.fromPayload(r.data.response));t(r.data.response);}},window.addEventListener(\"message\",o);})))(Object.assign(Object.assign({},t),{timeoutInSeconds:t.timeoutInSeconds||this.options.authorizeTimeoutInSeconds||60}));if(o.state!==n.state)throw new d(\"state_mismatch\",\"Invalid state\");const a=(null===(i=e.authorizationParams)||void 0===i?void 0:i.organization)||this.options.authorizationParams.organization;await this._requestToken({audience:o.audience,scope:o.scope,code_verifier:o.code_verifier,grant_type:\"authorization_code\",code:n.code,redirect_uri:o.redirect_uri},{nonceIn:o.nonce,organization:a});}async getUser(){var e;const t=await this._getIdTokenFromCache();return null===(e=null==t?void 0:t.decodedToken)||void 0===e?void 0:e.user}async getIdTokenClaims(){var e;const t=await this._getIdTokenFromCache();return null===(e=null==t?void 0:t.decodedToken)||void 0===e?void 0:e.claims}async loginWithRedirect(t={}){var i;const o=Q(t),{openUrl:n,fragment:a,appState:r}=o,s=e(o,[\"openUrl\",\"fragment\",\"appState\"]),c=(null===(i=s.authorizationParams)||void 0===i?void 0:i.organization)||this.options.authorizationParams.organization,d=await this._prepareAuthorizeUrl(s.authorizationParams||{}),{url:u}=d,l=e(d,[\"url\"]);this.transactionManager.create(Object.assign(Object.assign(Object.assign({},l),{appState:r}),c&&{organization:c}));const h=a?`${u}#${a}`:u;n?await n(h):window.location.assign(h);}async handleRedirectCallback(e=window.location.href){const t=e.split(\"?\").slice(1);if(0===t.length)throw new Error(\"There are no query params available for parsing.\");const{state:i,code:o,error:n,error_description:a}=(e=>{e.indexOf(\"#\")>-1&&(e=e.substring(0,e.indexOf(\"#\")));const t=new URLSearchParams(e);return {state:t.get(\"state\"),code:t.get(\"code\")||void 0,error:t.get(\"error\")||void 0,error_description:t.get(\"error_description\")||void 0}})(t.join(\"\")),r=this.transactionManager.get();if(!r)throw new d(\"missing_transaction\",\"Invalid state\");if(this.transactionManager.remove(),n)throw new u(n,a||n,i,r.appState);if(!r.code_verifier||r.state&&r.state!==i)throw new d(\"state_mismatch\",\"Invalid state\");const s=r.organization,c=r.nonce,l=r.redirect_uri;return await this._requestToken(Object.assign({audience:r.audience,scope:r.scope,code_verifier:r.code_verifier,grant_type:\"authorization_code\",code:o},l?{redirect_uri:l}:{}),{nonceIn:c,organization:s}),{appState:r.appState}}async checkSession(e){if(!this.cookieStorage.get(this.isAuthenticatedCookieName)){if(!this.cookieStorage.get(\"auth0.is.authenticated\"))return;this.cookieStorage.save(this.isAuthenticatedCookieName,!0,{daysUntilExpire:this.sessionCheckExpiryDays,cookieDomain:this.options.cookieDomain}),this.cookieStorage.remove(\"auth0.is.authenticated\");}try{await this.getTokenSilently(e);}catch(e){}}async getTokenSilently(e={}){var t;const i=Object.assign(Object.assign({cacheMode:\"on\"},e),{authorizationParams:Object.assign(Object.assign(Object.assign({},this.options.authorizationParams),e.authorizationParams),{scope:j(this.scope,null===(t=e.authorizationParams)||void 0===t?void 0:t.scope)})}),o=await((e,t)=>{let i=A[t];return i||(i=e().finally((()=>{delete A[t],i=null;})),A[t]=i),i})((()=>this._getTokenSilently(i)),`${this.options.clientId}::${i.authorizationParams.audience}::${i.authorizationParams.scope}`);return e.detailedResponse?o:null==o?void 0:o.access_token}async _getTokenSilently(t){const{cacheMode:i}=t,o=e(t,[\"cacheMode\"]);if(\"off\"!==i){const e=await this._getEntryFromCache({scope:o.authorizationParams.scope,audience:o.authorizationParams.audience||\"default\",clientId:this.options.clientId});if(e)return e}if(\"cache-only\"!==i){if(!await(async(e,t=3)=>{for(let i=0;i<t;i++)if(await e())return !0;return !1})((()=>ee.acquireLock(\"auth0.lock.getTokenSilently\",5e3)),10))throw new l;try{if(window.addEventListener(\"pagehide\",this._releaseLockOnPageHide),\"off\"!==i){const e=await this._getEntryFromCache({scope:o.authorizationParams.scope,audience:o.authorizationParams.audience||\"default\",clientId:this.options.clientId});if(e)return e}const e=this.options.useRefreshTokens?await this._getTokenUsingRefreshToken(o):await this._getTokenFromIFrame(o),{id_token:t,access_token:n,oauthTokenScope:a,expires_in:r}=e;return Object.assign(Object.assign({id_token:t,access_token:n},a?{scope:a}:null),{expires_in:r})}finally{await ee.releaseLock(\"auth0.lock.getTokenSilently\"),window.removeEventListener(\"pagehide\",this._releaseLockOnPageHide);}}}async getTokenWithPopup(e={},t={}){var i;const o=Object.assign(Object.assign({},e),{authorizationParams:Object.assign(Object.assign(Object.assign({},this.options.authorizationParams),e.authorizationParams),{scope:j(this.scope,null===(i=e.authorizationParams)||void 0===i?void 0:i.scope)})});t=Object.assign(Object.assign({},r),t),await this.loginWithPopup(o,t);return (await this.cacheManager.get(new C({scope:o.authorizationParams.scope,audience:o.authorizationParams.audience||\"default\",clientId:this.options.clientId}))).access_token}async isAuthenticated(){return !!await this.getUser()}_buildLogoutUrl(t){null!==t.clientId?t.clientId=t.clientId||this.options.clientId:delete t.clientId;const i=t.logoutParams||{},{federated:o}=i,n=e(i,[\"federated\"]),a=o?\"&federated\":\"\";return this._url(`/v2/logout?${v(Object.assign({clientId:t.clientId},n))}`)+a}async logout(t={}){const i=Q(t),{openUrl:o}=i,n=e(i,[\"openUrl\"]);null===t.clientId?await this.cacheManager.clear():await this.cacheManager.clear(t.clientId||this.options.clientId),this.cookieStorage.remove(this.orgHintCookieName,{cookieDomain:this.options.cookieDomain}),this.cookieStorage.remove(this.isAuthenticatedCookieName,{cookieDomain:this.options.cookieDomain}),this.userCache.remove(\"@@user@@\");const a=this._buildLogoutUrl(n);o?await o(a):!1!==o&&window.location.assign(a);}async _getTokenFromIFrame(e){const t=Object.assign(Object.assign({},e.authorizationParams),{prompt:\"none\"}),i=this.cookieStorage.get(this.orgHintCookieName);i&&!t.organization&&(t.organization=i);const{url:o,state:n,nonce:a,code_verifier:r,redirect_uri:s,scope:c,audience:u}=await this._prepareAuthorizeUrl(t,{response_mode:\"web_message\"},window.location.origin);try{if(window.crossOriginIsolated)throw new d(\"login_required\",\"The application is running in a Cross-Origin Isolated context, silently retrieving a token without refresh token is not possible.\");const i=e.timeoutInSeconds||this.options.authorizeTimeoutInSeconds,h=await((e,t,i=60)=>new Promise(((o,n)=>{const a=window.document.createElement(\"iframe\");a.setAttribute(\"width\",\"0\"),a.setAttribute(\"height\",\"0\"),a.style.display=\"none\";const r=()=>{window.document.body.contains(a)&&(window.document.body.removeChild(a),window.removeEventListener(\"message\",s,!1));};let s;const c=setTimeout((()=>{n(new l),r();}),1e3*i);s=function(e){if(e.origin!=t)return;if(!e.data||\"authorization_response\"!==e.data.type)return;const i=e.source;i&&i.close(),e.data.response.error?n(d.fromPayload(e.data.response)):o(e.data.response),clearTimeout(c),window.removeEventListener(\"message\",s,!1),setTimeout(r,2e3);},window.addEventListener(\"message\",s,!1),window.document.body.appendChild(a),a.setAttribute(\"src\",e);})))(o,this.domainUrl,i);if(n!==h.state)throw new d(\"state_mismatch\",\"Invalid state\");const p=await this._requestToken(Object.assign(Object.assign({},e.authorizationParams),{code_verifier:r,code:h.code,grant_type:\"authorization_code\",redirect_uri:s,timeout:e.authorizationParams.timeout||this.httpTimeoutMs}),{nonceIn:a,organization:t.organization});return Object.assign(Object.assign({},p),{scope:c,oauthTokenScope:p.scope,audience:u})}catch(e){throw \"login_required\"===e.error&&this.logout({openUrl:!1}),e}}async _getTokenUsingRefreshToken(e){const t=await this.cacheManager.get(new C({scope:e.authorizationParams.scope,audience:e.authorizationParams.audience||\"default\",clientId:this.options.clientId}));if(!(t&&t.refresh_token||this.worker)){if(this.options.useRefreshTokensFallback)return await this._getTokenFromIFrame(e);throw new f(e.authorizationParams.audience||\"default\",e.authorizationParams.scope)}const i=e.authorizationParams.redirect_uri||this.options.authorizationParams.redirect_uri||window.location.origin,o=\"number\"==typeof e.timeoutInSeconds?1e3*e.timeoutInSeconds:null;try{const n=await this._requestToken(Object.assign(Object.assign(Object.assign({},e.authorizationParams),{grant_type:\"refresh_token\",refresh_token:t&&t.refresh_token,redirect_uri:i}),o&&{timeout:o}));return Object.assign(Object.assign({},n),{scope:e.authorizationParams.scope,oauthTokenScope:n.scope,audience:e.authorizationParams.audience||\"default\"})}catch(t){if((t.message.indexOf(\"Missing Refresh Token\")>-1||t.message&&t.message.indexOf(\"invalid refresh token\")>-1)&&this.options.useRefreshTokensFallback)return await this._getTokenFromIFrame(e);throw t}}async _saveEntryInCache(t){const{id_token:i,decodedToken:o}=t,n=e(t,[\"id_token\",\"decodedToken\"]);this.userCache.set(\"@@user@@\",{id_token:i,decodedToken:o}),await this.cacheManager.setIdToken(this.options.clientId,t.id_token,t.decodedToken),await this.cacheManager.set(n);}async _getIdTokenFromCache(){const e=this.options.authorizationParams.audience||\"default\",t=await this.cacheManager.getIdToken(new C({clientId:this.options.clientId,audience:e,scope:this.scope})),i=this.userCache.get(\"@@user@@\");return t&&t.id_token===(null==i?void 0:i.id_token)?i:(this.userCache.set(\"@@user@@\",t),t)}async _getEntryFromCache({scope:e,audience:t,clientId:i}){const o=await this.cacheManager.get(new C({scope:e,audience:t,clientId:i}),60);if(o&&o.access_token){const{access_token:e,oauthTokenScope:t,expires_in:i}=o,n=await this._getIdTokenFromCache();return n&&Object.assign(Object.assign({id_token:n.id_token,access_token:e},t?{scope:t}:null),{expires_in:i})}}async _requestToken(e,t){const{nonceIn:i,organization:o}=t||{},n=await T(Object.assign({baseUrl:this.domainUrl,client_id:this.options.clientId,auth0Client:this.options.auth0Client,useFormData:this.options.useFormData,timeout:this.httpTimeoutMs},e),this.worker),a=await this._verifyIdToken(n.id_token,i,o);return await this._saveEntryInCache(Object.assign(Object.assign(Object.assign(Object.assign({},n),{decodedToken:a,scope:e.scope,audience:e.audience||\"default\"}),n.scope?{oauthTokenScope:n.scope}:null),{client_id:this.options.clientId})),this.cookieStorage.save(this.isAuthenticatedCookieName,!0,{daysUntilExpire:this.sessionCheckExpiryDays,cookieDomain:this.options.cookieDomain}),this._processOrgHint(o||a.claims.org_id),Object.assign(Object.assign({},n),{decodedToken:a})}}class ie{}\n\n/**\r\n * The initial auth state.\r\n */\r\nvar initialAuthState = {\r\n isAuthenticated: false,\r\n isLoading: true,\r\n};\n\n/**\r\n * @ignore\r\n */\r\nvar stub = function () {\r\n throw new Error('You forgot to wrap your component in <Auth0Provider>.');\r\n};\r\n/**\r\n * @ignore\r\n */\r\nvar initialContext = __assign(__assign({}, initialAuthState), { buildAuthorizeUrl: stub, buildLogoutUrl: stub, getAccessTokenSilently: stub, getAccessTokenWithPopup: stub, getIdTokenClaims: stub, loginWithRedirect: stub, loginWithPopup: stub, logout: stub, handleRedirectCallback: stub });\r\n/**\r\n * The Auth0 Context\r\n */\r\nvar Auth0Context = createContext(initialContext);\n\n/**\r\n * An OAuth2 error will come from the authorization server and will have at least an `error` property which will\r\n * be the error code. And possibly an `error_description` property\r\n *\r\n * See: https://openid.net/specs/openid-connect-core-1_0.html#rfc.section.3.1.2.6\r\n */\r\nvar OAuthError = /** @class */ (function (_super) {\r\n __extends(OAuthError, _super);\r\n function OAuthError(error, error_description) {\r\n var _this = _super.call(this, error_description || error) || this;\r\n _this.error = error;\r\n _this.error_description = error_description;\r\n // https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\r\n Object.setPrototypeOf(_this, OAuthError.prototype);\r\n return _this;\r\n }\r\n return OAuthError;\r\n}(Error));\n\nvar CODE_RE = /[?&]code=[^&]+/;\r\nvar STATE_RE = /[?&]state=[^&]+/;\r\nvar ERROR_RE = /[?&]error=[^&]+/;\r\nvar hasAuthParams = function (searchParams) {\r\n if (searchParams === void 0) { searchParams = window.location.search; }\r\n return (CODE_RE.test(searchParams) || ERROR_RE.test(searchParams)) &&\r\n STATE_RE.test(searchParams);\r\n};\r\nvar normalizeErrorFn = function (fallbackMessage) {\r\n return function (error) {\r\n if (error instanceof Error) {\r\n return error;\r\n }\r\n // try to check errors of the following form: {error: string; error_description?: string}\r\n if (error !== null &&\r\n typeof error === 'object' &&\r\n 'error' in error &&\r\n typeof error.error === 'string') {\r\n if ('error_description' in error &&\r\n typeof error.error_description === 'string') {\r\n return new OAuthError(error.error, error.error_description);\r\n }\r\n return new OAuthError(error.error);\r\n }\r\n return new Error(fallbackMessage);\r\n };\r\n};\r\nvar loginError = normalizeErrorFn('Login failed');\r\nvar tokenError = normalizeErrorFn('Get access token failed');\r\n/**\r\n * @ignore\r\n * Helper function to map the v1 `redirectUri` option to the v2 `authorizationParams.redirect_uri`\r\n * and log a warning.\r\n */\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nvar deprecateRedirectUri = function (options) {\r\n var _a;\r\n if (options === null || options === void 0 ? void 0 : options.redirectUri) {\r\n console.warn('Using `redirectUri` has been deprecated, please use `authorizationParams.redirect_uri` instead as `redirectUri` will be no longer supported in a future version');\r\n options.authorizationParams = options.authorizationParams || {};\r\n options.authorizationParams.redirect_uri = options.redirectUri;\r\n delete options.redirectUri;\r\n }\r\n if ((_a = options === null || options === void 0 ? void 0 : options.authorizationParams) === null || _a === void 0 ? void 0 : _a.redirectUri) {\r\n console.warn('Using `authorizationParams.redirectUri` has been deprecated, please use `authorizationParams.redirect_uri` instead as `authorizationParams.redirectUri` will be removed in a future version');\r\n options.authorizationParams.redirect_uri =\r\n options.authorizationParams.redirectUri;\r\n delete options.authorizationParams.redirectUri;\r\n }\r\n};\n\n/**\r\n * Handles how that state changes in the `useAuth0` hook.\r\n */\r\nvar reducer = function (state, action) {\r\n switch (action.type) {\r\n case 'LOGIN_POPUP_STARTED':\r\n return __assign(__assign({}, state), { isLoading: true });\r\n case 'LOGIN_POPUP_COMPLETE':\r\n case 'INITIALISED':\r\n return __assign(__assign({}, state), { isAuthenticated: !!action.user, user: action.user, isLoading: false, error: undefined });\r\n case 'HANDLE_REDIRECT_COMPLETE':\r\n case 'GET_ACCESS_TOKEN_COMPLETE':\r\n if (state.user === action.user) {\r\n return state;\r\n }\r\n return __assign(__assign({}, state), { isAuthenticated: !!action.user, user: action.user });\r\n case 'LOGOUT':\r\n return __assign(__assign({}, state), { isAuthenticated: false, user: undefined });\r\n case 'ERROR':\r\n return __assign(__assign({}, state), { isLoading: false, error: action.error });\r\n }\r\n};\n\n/**\r\n * @ignore\r\n */\r\nvar toAuth0ClientOptions = function (opts) {\r\n deprecateRedirectUri(opts);\r\n return __assign(__assign({}, opts), { auth0Client: {\r\n name: 'auth0-react',\r\n version: '2.3.0',\r\n } });\r\n};\r\n/**\r\n * @ignore\r\n */\r\nvar defaultOnRedirectCallback = function (appState) {\r\n window.history.replaceState({}, document.title, (appState === null || appState === void 0 ? void 0 : appState.returnTo) || window.location.pathname);\r\n};\r\n/**\r\n * ```jsx\r\n * <Auth0Provider\r\n * domain={domain}\r\n * clientId={clientId}\r\n * authorizationParams={{ redirect_uri: window.location.origin }}>\r\n * <MyApp />\r\n * </Auth0Provider>\r\n * ```\r\n *\r\n * Provides the Auth0Context to its child components.\r\n */\r\nvar Auth0Provider = function (opts) {\r\n var children = opts.children, skipRedirectCallback = opts.skipRedirectCallback, _a = opts.onRedirectCallback, onRedirectCallback = _a === void 0 ? defaultOnRedirectCallback : _a, _b = opts.context, context = _b === void 0 ? Auth0Context : _b, clientOpts = __rest(opts, [\"children\", \"skipRedirectCallback\", \"onRedirectCallback\", \"context\"]);\r\n var client = useState(function () { return new te(toAuth0ClientOptions(clientOpts)); })[0];\r\n var _c = useReducer(reducer, initialAuthState), state = _c[0], dispatch = _c[1];\r\n var didInitialise = useRef(false);\r\n var handleError = useCallback(function (error) {\r\n dispatch({ type: 'ERROR', error: error });\r\n return error;\r\n }, []);\r\n useEffect(function () {\r\n if (didInitialise.current) {\r\n return;\r\n }\r\n didInitialise.current = true;\r\n (function () { return __awaiter(void 0, void 0, void 0, function () {\r\n var user, appState, error_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n _a.trys.push([0, 7, , 8]);\r\n user = void 0;\r\n if (!(hasAuthParams() && !skipRedirectCallback)) return [3 /*break*/, 3];\r\n return [4 /*yield*/, client.handleRedirectCallback()];\r\n case 1:\r\n appState = (_a.sent()).appState;\r\n return [4 /*yield*/, client.getUser()];\r\n case 2:\r\n user = _a.sent();\r\n onRedirectCallback(appState, user);\r\n return [3 /*break*/, 6];\r\n case 3: return [4 /*yield*/, client.checkSession()];\r\n case 4:\r\n _a.sent();\r\n return [4 /*yield*/, client.getUser()];\r\n case 5:\r\n user = _a.sent();\r\n _a.label = 6;\r\n case 6:\r\n dispatch({ type: 'INITIALISED', user: user });\r\n return [3 /*break*/, 8];\r\n case 7:\r\n error_1 = _a.sent();\r\n handleError(loginError(error_1));\r\n return [3 /*break*/, 8];\r\n case 8: return [2 /*return*/];\r\n }\r\n });\r\n }); })();\r\n }, [client, onRedirectCallback, skipRedirectCallback, handleError]);\r\n var loginWithRedirect = useCallback(function (opts) {\r\n deprecateRedirectUri(opts);\r\n return client.loginWithRedirect(opts);\r\n }, [client]);\r\n var loginWithPopup = useCallback(function (options, config) { return __awaiter(void 0, void 0, void 0, function () {\r\n var error_2, user;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n dispatch({ type: 'LOGIN_POPUP_STARTED' });\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, client.loginWithPopup(options, config)];\r\n case 2:\r\n _a.sent();\r\n return [3 /*break*/, 4];\r\n case 3:\r\n error_2 = _a.sent();\r\n handleError(loginError(error_2));\r\n return [2 /*return*/];\r\n case 4: return [4 /*yield*/, client.getUser()];\r\n case 5:\r\n user = _a.sent();\r\n dispatch({ type: 'LOGIN_POPUP_COMPLETE', user: user });\r\n return [2 /*return*/];\r\n }\r\n });\r\n }); }, [client]);\r\n var logout = useCallback(function (opts) {\r\n if (opts === void 0) { opts = {}; }\r\n return __awaiter(void 0, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, client.logout(opts)];\r\n case 1:\r\n _a.sent();\r\n if (opts.openUrl || opts.openUrl === false) {\r\n dispatch({ type: 'LOGOUT' });\r\n }\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n }, [client]);\r\n var getAccessTokenSilently = useCallback(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n function (opts) { return __awaiter(void 0, void 0, void 0, function () {\r\n var token, error_3, _a;\r\n var _b;\r\n return __generator(this, function (_c) {\r\n switch (_c.label) {\r\n case 0:\r\n _c.trys.push([0, 2, 3, 5]);\r\n return [4 /*yield*/, client.getTokenSilently(opts)];\r\n case 1:\r\n token = _c.sent();\r\n return [3 /*break*/, 5];\r\n case 2:\r\n error_3 = _c.sent();\r\n throw tokenError(error_3);\r\n case 3:\r\n _a = dispatch;\r\n _b = {\r\n type: 'GET_ACCESS_TOKEN_COMPLETE'\r\n };\r\n return [4 /*yield*/, client.getUser()];\r\n case 4:\r\n _a.apply(void 0, [(_b.user = _c.sent(),\r\n _b)]);\r\n return [7 /*endfinally*/];\r\n case 5: return [2 /*return*/, token];\r\n }\r\n });\r\n }); }, [client]);\r\n var getAccessTokenWithPopup = useCallback(function (opts, config) { return __awaiter(void 0, void 0, void 0, function () {\r\n var token, error_4, _a;\r\n var _b;\r\n return __generator(this, function (_c) {\r\n switch (_c.label) {\r\n case 0:\r\n _c.trys.push([0, 2, 3, 5]);\r\n return [4 /*yield*/, client.getTokenWithPopup(opts, config)];\r\n case 1:\r\n token = _c.sent();\r\n return [3 /*break*/, 5];\r\n case 2:\r\n error_4 = _c.sent();\r\n throw tokenError(error_4);\r\n case 3:\r\n _a = dispatch;\r\n _b = {\r\n type: 'GET_ACCESS_TOKEN_COMPLETE'\r\n };\r\n return [4 /*yield*/, client.getUser()];\r\n case 4:\r\n _a.apply(void 0, [(_b.user = _c.sent(),\r\n _b)]);\r\n return [7 /*endfinally*/];\r\n case 5: return [2 /*return*/, token];\r\n }\r\n });\r\n }); }, [client]);\r\n var getIdTokenClaims = useCallback(function () { return client.getIdTokenClaims(); }, [client]);\r\n var handleRedirectCallback = useCallback(function (url) { return __awaiter(void 0, void 0, void 0, function () {\r\n var error_5, _a;\r\n var _b;\r\n return __generator(this, function (_c) {\r\n switch (_c.label) {\r\n case 0:\r\n _c.trys.push([0, 2, 3, 5]);\r\n return [4 /*yield*/, client.handleRedirectCallback(url)];\r\n case 1: return [2 /*return*/, _c.sent()];\r\n case 2:\r\n error_5 = _c.sent();\r\n throw tokenError(error_5);\r\n case 3:\r\n _a = dispatch;\r\n _b = {\r\n type: 'HANDLE_REDIRECT_COMPLETE'\r\n };\r\n return [4 /*yield*/, client.getUser()];\r\n case 4:\r\n _a.apply(void 0, [(_b.user = _c.sent(),\r\n _b)]);\r\n return [7 /*endfinally*/];\r\n case 5: return [2 /*return*/];\r\n }\r\n });\r\n }); }, [client]);\r\n var contextValue = useMemo(function () {\r\n return __assign(__assign({}, state), { getAccessTokenSilently: getAccessTokenSilently, getAccessTokenWithPopup: getAccessTokenWithPopup, getIdTokenClaims: getIdTokenClaims, loginWithRedirect: loginWithRedirect, loginWithPopup: loginWithPopup, logout: logout, handleRedirectCallback: handleRedirectCallback });\r\n }, [\r\n state,\r\n getAccessTokenSilently,\r\n getAccessTokenWithPopup,\r\n getIdTokenClaims,\r\n loginWithRedirect,\r\n loginWithPopup,\r\n logout,\r\n handleRedirectCallback,\r\n ]);\r\n return React.createElement(context.Provider, { value: contextValue }, children);\r\n};\n\n/**\r\n * ```js\r\n * const {\r\n * // Auth state:\r\n * error,\r\n * isAuthenticated,\r\n * isLoading,\r\n * user,\r\n * // Auth methods:\r\n * getAccessTokenSilently,\r\n * getAccessTokenWithPopup,\r\n * getIdTokenClaims,\r\n * loginWithRedirect,\r\n * loginWithPopup,\r\n * logout,\r\n * } = useAuth0<TUser>();\r\n * ```\r\n *\r\n * Use the `useAuth0` hook in your components to access the auth state and methods.\r\n *\r\n * TUser is an optional type param to provide a type to the `user` field.\r\n */\r\nvar useAuth0 = function (context) {\r\n if (context === void 0) { context = Auth0Context; }\r\n return useContext(context);\r\n};\n\n/**\r\n * ```jsx\r\n * class MyComponent extends Component {\r\n * render() {\r\n * // Access the auth context from the `auth0` prop\r\n * const { user } = this.props.auth0;\r\n * return <div>Hello {user.name}!</div>\r\n * }\r\n * }\r\n * // Wrap your class component in withAuth0\r\n * export default withAuth0(MyComponent);\r\n * ```\r\n *\r\n * Wrap your class components in this Higher Order Component to give them access to the Auth0Context.\r\n *\r\n * Providing a context as the second argument allows you to configure the Auth0Provider the Auth0Context\r\n * should come from f you have multiple within your application.\r\n */\r\nvar withAuth0 = function (Component, context) {\r\n if (context === void 0) { context = Auth0Context; }\r\n return function WithAuth(props) {\r\n return (React.createElement(context.Consumer, null, function (auth) { return (React.createElement(Component, __assign({}, props, { auth0: auth }))); }));\r\n };\r\n};\n\n/**\r\n * @ignore\r\n */\r\nvar defaultOnRedirecting = function () { return React.createElement(React.Fragment, null); };\r\n/**\r\n* @ignore\r\n*/\r\nvar defaultOnBeforeAuthentication = function () { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {\r\n return [2 /*return*/];\r\n}); }); };\r\n/**\r\n * @ignore\r\n */\r\nvar defaultReturnTo = function () {\r\n return \"\".concat(window.location.pathname).concat(window.location.search);\r\n};\r\n/**\r\n * ```js\r\n * const MyProtectedComponent = withAuthenticationRequired(MyComponent);\r\n * ```\r\n *\r\n * When you wrap your components in this Higher Order Component and an anonymous user visits your component\r\n * they will be redirected to the login page; after login they will be returned to the page they were redirected from.\r\n */\r\nvar withAuthenticationRequired = function (Component, options) {\r\n if (options === void 0) { options = {}; }\r\n return function WithAuthenticationRequired(props) {\r\n var _this = this;\r\n var _a = options.returnTo, returnTo = _a === void 0 ? defaultReturnTo : _a, _b = options.onRedirecting, onRedirecting = _b === void 0 ? defaultOnRedirecting : _b, _c = options.onBeforeAuthentication, onBeforeAuthentication = _c === void 0 ? defaultOnBeforeAuthentication : _c, loginOptions = options.loginOptions, _d = options.context, context = _d === void 0 ? Auth0Context : _d;\r\n var _e = useAuth0(context), isAuthenticated = _e.isAuthenticated, isLoading = _e.isLoading, loginWithRedirect = _e.loginWithRedirect;\r\n useEffect(function () {\r\n if (isLoading || isAuthenticated) {\r\n return;\r\n }\r\n var opts = __assign(__assign({}, loginOptions), { appState: __assign(__assign({}, (loginOptions && loginOptions.appState)), { returnTo: typeof returnTo === 'function' ? returnTo() : returnTo }) });\r\n (function () { return __awaiter(_this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, onBeforeAuthentication()];\r\n case 1:\r\n _a.sent();\r\n return [4 /*yield*/, loginWithRedirect(opts)];\r\n case 2:\r\n _a.sent();\r\n return [2 /*return*/];\r\n }\r\n });\r\n }); })();\r\n }, [\r\n isLoading,\r\n isAuthenticated,\r\n loginWithRedirect,\r\n onBeforeAuthentication,\r\n loginOptions,\r\n returnTo,\r\n ]);\r\n return isAuthenticated ? React.createElement(Component, __assign({}, props)) : onRedirecting();\r\n };\r\n};\n\nexport { Auth0Context, Auth0Provider, u as AuthenticationError, d as GenericError, P as InMemoryCache, z as LocalStorageCache, m as MfaRequiredError, f as MissingRefreshTokenError, OAuthError, p as PopupCancelledError, h as PopupTimeoutError, l as TimeoutError, ie as User, initialContext, useAuth0, withAuth0, withAuthenticationRequired };\n//# sourceMappingURL=auth0-react.esm.js.map\n","import classNames from \"classnames\";\nimport \"./info-page-container.scss\";\n\ninterface InfoPageContainerProps {\n Logo: React.ComponentType<{ className?: string }>;\n className?: string;\n children?: React.ReactNode;\n}\n\nexport const InfoPageContainer = ({ className, children, Logo }: InfoPageContainerProps) => {\n return (\n <div className={classNames(\"info-page-container\", className)}>\n <Logo className=\"info-page-logo\" />\n <div className=\"info-page-wrapper\">{children}</div>\n </div>\n );\n};\n\nexport default InfoPageContainer;\n","export const LOGO_WIDTH = \"200px\";\n","import config from \"../../assets/io-connect-browser-logo.json\";\nimport { LOGO_WIDTH } from \"./constants\";\n\nexport interface LogoProps {\n logoSrc?: string;\n width?: string;\n className?: string;\n}\n\nexport const LoginLogo = ({ logoSrc = config.loginPageLogo.value, width = LOGO_WIDTH, className = \"logo\" }: LogoProps) => {\n return <img width={width} src={logoSrc} className={className} alt=\"Login logo\" />;\n};\n","export const Spinner = () => {\n return <span className=\"spinner\"></span>;\n};\n\nexport default Spinner;\n","import { Spinner } from \"../spinner\";\nimport { LoginLogo } from \"../login/login-logo\";\nimport \"./system-loader.scss\";\n\nexport interface SystemLoaderProps {\n Logo?: React.ComponentType;\n text?: string;\n}\n\nexport const SystemLoader = ({ Logo = LoginLogo, text = \"Loading...\" }: SystemLoaderProps) => {\n return (\n <div className=\"system-loader-background\">\n <div className=\"system-loader-container flex flex-column ai-center\">\n <Logo />\n <h1 className=\"system-loader-text io-title\">{text}</h1>\n <Spinner />\n </div>\n </div>\n );\n};\n\nexport default SystemLoader;\n","import classNames from \"classnames\";\nimport \"./info-card.scss\";\n\ninterface InfoCardProps {\n children?: React.ReactNode;\n heading?: string;\n description: string | React.ReactElement;\n Image?: React.ComponentType;\n title?: string;\n className?: string;\n}\n\nexport const InfoCard = ({ children, description, heading, Image, title, className }: InfoCardProps) => (\n <div className={classNames(\"info-card\", className)}>\n {title && <h1 className=\"info-card-title io-title-large\">{title}</h1>}\n {Image && (\n <div className=\"info-card-image\">\n <Image />\n </div>\n )}\n {heading && <h3 className=\"info-card-heading io-title\">{heading}</h3>}\n <p className=\"info-card-description io-text-default-lh16\">{description}</p>\n {children}\n </div>\n);\n\nexport default InfoCard;\n","import classNames from \"classnames\";\nimport { Icon } from \"@interopio/components-react\";\nimport { SETUP_STEPS } from \"./constants\";\nimport { SetupStepName, SetupStepsStatuses } from \"./types\";\n\ninterface SetupStepsListProps {\n activeStepName: SetupStepName;\n showWarnIcon: boolean;\n stepsStatuses: SetupStepsStatuses;\n}\n\nexport const SetupStepsList = ({ activeStepName, showWarnIcon, stepsStatuses }: SetupStepsListProps) => {\n return (\n <ul className=\"setup-flow-list io-text-default-lh16\">\n {SETUP_STEPS.map(({ name, label }, index) => {\n const isActive = name === activeStepName;\n const state = stepsStatuses[name].state;\n\n const promptIcon =\n showWarnIcon && isActive ? <Icon variant=\"exclamation-mark\" size=\"12\" /> : <span>{index + 1}.</span>;\n\n return (\n <li className={classNames(isActive && \"active\")} key={name}>\n <div className=\"setup-flow-list-item\">\n <div className=\"setup-flow-list-item-icon-wrapper\">\n {state === \"prompt\" && promptIcon}\n {state === \"granted\" && <Icon variant=\"check-solid\" size=\"12\" />}\n {state === \"denied\" && <Icon variant=\"close\" size=\"12\" />}\n </div>\n {label}\n </div>\n </li>\n );\n })}\n </ul>\n );\n};\n\nexport default SetupStepsList;\n","import { useEffect, useState } from \"react\";\nimport { useBrowser } from \"../../hooks\";\n\nexport const useEdgeNotificationsPermission = ({\n edgeNotificationsPermissionTimeout,\n isNotificationsPermissionPromptOpen,\n}: {\n edgeNotificationsPermissionTimeout: number;\n isNotificationsPermissionPromptOpen: boolean;\n}): { hasEdgeNotificationsPermissionError: boolean } => {\n const { name: browserName } = useBrowser();\n const [hasEdgeNotificationsPermissionError, setHasEdgeNotificationsPermissionError] = useState(false);\n\n useEffect(() => {\n if (!isNotificationsPermissionPromptOpen || browserName !== \"Edge\") {\n return;\n }\n\n const timerId = setTimeout(() => setHasEdgeNotificationsPermissionError(true), edgeNotificationsPermissionTimeout);\n\n return () => clearTimeout(timerId);\n }, [browserName, edgeNotificationsPermissionTimeout, isNotificationsPermissionPromptOpen]);\n\n useEffect(() => {\n if (isNotificationsPermissionPromptOpen && !hasEdgeNotificationsPermissionError) {\n return;\n }\n\n setHasEdgeNotificationsPermissionError(false);\n }, [isNotificationsPermissionPromptOpen, hasEdgeNotificationsPermissionError, setHasEdgeNotificationsPermissionError]);\n\n return {\n hasEdgeNotificationsPermissionError,\n };\n};\n","import { SETUP_STEPS_NAMES } from \"./constants\";\nimport { SetupStepReducerAction, SetupStepsStatuses } from \"./types\";\n\nexport const setupStepsReducer = (stepsState: SetupStepsStatuses, action: SetupStepReducerAction) => {\n const { type, payload } = action;\n\n switch (type) {\n case \"completed\": {\n return {\n ...stepsState,\n [payload.stepName]: { ...stepsState[payload.stepName], isCompleted: true },\n };\n }\n\n case \"skipped\": {\n return {\n ...stepsState,\n [payload.stepName]: { isCompleted: true, state: \"denied\" },\n };\n }\n\n case \"stateUpdated\": {\n if (!payload.state) {\n throw Error('\"stateUpdated\" action invoked without state in payload');\n }\n\n return {\n ...stepsState,\n [payload.stepName]: {\n isCompleted:\n payload.stepName === SETUP_STEPS_NAMES.POPUPS\n ? payload.state === \"granted\"\n : payload.state !== \"prompt\",\n state: payload.state,\n },\n };\n }\n\n default: {\n throw Error(\"Unknown action: \" + type);\n }\n }\n};\n","import { PERMISSION_NAMES } from \"../lib/io-connect-home-provider/constants\";\nimport { SETUP_STEPS_NAMES } from \"../lib/platform-setup/constants\";\nimport { SetupStepName } from \"../lib/platform-setup/types\";\nimport { SetupStepActionExecutor } from \"./types\";\n\nconst handleWindowManagement: SetupStepActionExecutor = (config) => {\n const { handleDeferredStep, handleOperationComplete } = config;\n\n (window as any)\n .getScreenDetails()\n .catch(async () => {\n const { state } = await navigator.permissions.query({\n name: PERMISSION_NAMES.WINDOW_MANAGEMENT as PermissionName,\n });\n\n if (state === \"prompt\") {\n handleDeferredStep();\n }\n })\n .finally(handleOperationComplete);\n};\n\nconst handleNotifications: SetupStepActionExecutor = (config) => {\n const { handleDeferredStep, handleOperationComplete } = config;\n\n Notification.requestPermission()\n .then(async () => {\n const { state } = await navigator.permissions.query({ name: PERMISSION_NAMES.NOTIFICATIONS });\n\n if (state === \"prompt\") {\n handleDeferredStep();\n }\n })\n .finally(handleOperationComplete);\n};\n\nconst handlePopups: SetupStepActionExecutor = (config) => {\n const { handleDeferredStep, handleOperationComplete, dispatchAction } = config;\n\n const url = \"about:blank\";\n const windowFeatures = \"popup,width=1,height=1,top=9999,left=9999\";\n\n const windowOne = window.open(url, undefined, windowFeatures);\n const windowTwo = window.open(url, undefined, windowFeatures);\n\n windowOne?.close();\n windowTwo?.close();\n\n const popupsBlocked = !(windowOne && windowTwo);\n\n if (popupsBlocked) {\n handleDeferredStep();\n }\n\n dispatchAction({\n type: \"stateUpdated\",\n payload: {\n stepName: SETUP_STEPS_NAMES.POPUPS,\n state: popupsBlocked ? \"denied\" : \"granted\",\n },\n });\n\n handleOperationComplete();\n};\n\nconst handleWPAInstall: SetupStepActionExecutor = (config) => {\n const { dispatchAction } = config;\n\n dispatchAction({ type: \"completed\", payload: { stepName: SETUP_STEPS_NAMES.PWA_INSTALL } });\n};\n\nexport const setupStepsActionExecutors: Record<SetupStepName, SetupStepActionExecutor> = {\n [SETUP_STEPS_NAMES.WINDOW_MANAGEMENT]: handleWindowManagement,\n [SETUP_STEPS_NAMES.NOTIFICATIONS]: handleNotifications,\n [SETUP_STEPS_NAMES.POPUPS]: handlePopups,\n [SETUP_STEPS_NAMES.PWA_INSTALL]: handleWPAInstall,\n} as const;\n","import { useEffect, useReducer, useState } from \"react\";\nimport { Button } from \"reactstrap\";\nimport { useStorage } from \"../../hooks\";\nimport { InfoCard } from \"../info-card/info-card\";\nimport { INITIAL_STEPS_STATUSES, SETUP_STEPS_NAMES, SETUP_STEPS } from \"./constants\";\nimport SetupStepsList from \"./setup-steps-list\";\nimport { useIOConnectHome } from \"../io-connect-home-provider/io-connect-home-provider\";\nimport { IS_GLOBAL_LAYOUT_SUPPORTED, PERMISSION_NAMES } from \"../io-connect-home-provider/constants\";\nimport { Spinner } from \"../spinner\";\nimport { useEdgeNotificationsPermission } from \"./use-edge-notifications-permission\";\nimport { PlatformSetupStatus } from \"./types\";\nimport { setupStepsReducer } from \"./reducers\";\nimport { setupStepsActionExecutors } from \"../../executors/setupStepsActions\";\nimport { PLATFORM_SETUP_LOCAL_STORAGE_KEY } from \"../../constants/storageKeys\";\nimport { platformSetupStorageValueDecoder } from \"../../decoders/platform\";\nimport { ButtonGroup } from \"@interopio/components-react\";\n\ninterface SetupStepsProps {\n settings: { edgeNotificationsPermissionTimeout: number };\n}\n\nexport const SetupSteps = ({ settings }: SetupStepsProps) => {\n const { permission } = useIOConnectHome();\n const [_, setPlatformSetup] = useStorage<PlatformSetupStatus>(\n \"localStorage\",\n PLATFORM_SETUP_LOCAL_STORAGE_KEY,\n platformSetupStorageValueDecoder,\n );\n const [stepsStatuses, dispatchAction] = useReducer(setupStepsReducer, INITIAL_STEPS_STATUSES);\n const [areAdditionalInstructionsShown, setAreAdditionalInstructionsShown] = useState(false);\n const [areButtonsDisabled, setAreButtonsDisabled] = useState(false);\n\n const currentStep = SETUP_STEPS.find((step) => !stepsStatuses[step.name].isCompleted);\n\n if (!currentStep) {\n throw new Error(\"All setup steps are completed. The SetupSteps component should not be used in such case.\");\n }\n\n const currentStepName = currentStep.name;\n const finalStepName = SETUP_STEPS[SETUP_STEPS.length - 1].name;\n\n const { hasEdgeNotificationsPermissionError } = useEdgeNotificationsPermission({\n edgeNotificationsPermissionTimeout: settings.edgeNotificationsPermissionTimeout,\n isNotificationsPermissionPromptOpen: areButtonsDisabled && currentStepName === PERMISSION_NAMES.NOTIFICATIONS,\n });\n\n const handleActionButtonClick = () => {\n setAreAdditionalInstructionsShown(false);\n setAreButtonsDisabled(true);\n\n setupStepsActionExecutors[currentStepName]({\n handleDeferredStep: () => setAreAdditionalInstructionsShown(true),\n handleOperationComplete: () => setAreButtonsDisabled(false),\n dispatchAction: (action) => dispatchAction(action),\n });\n\n if (currentStepName === finalStepName) {\n setPlatformSetup({ isCompleted: true });\n }\n };\n\n const handleSkipButtonClick = () => {\n setAreAdditionalInstructionsShown(false);\n dispatchAction({ type: \"skipped\", payload: { stepName: currentStepName } });\n };\n\n useEffect(() => {\n if (!hasEdgeNotificationsPermissionError) {\n return;\n }\n\n setAreButtonsDisabled(false);\n setAreAdditionalInstructionsShown(true);\n }, [hasEdgeNotificationsPermissionError]);\n\n useEffect(() => {\n setAreAdditionalInstructionsShown(false);\n\n dispatchAction({\n type: \"stateUpdated\",\n payload: {\n stepName: SETUP_STEPS_NAMES.WINDOW_MANAGEMENT,\n state: IS_GLOBAL_LAYOUT_SUPPORTED ? permission.statuses[SETUP_STEPS_NAMES.WINDOW_MANAGEMENT]?.state : \"denied\",\n },\n });\n\n dispatchAction({\n type: \"stateUpdated\",\n payload: {\n stepName: SETUP_STEPS_NAMES.NOTIFICATIONS,\n state: permission.statuses[SETUP_STEPS_NAMES.NOTIFICATIONS]?.state,\n },\n });\n }, [permission.statuses]);\n\n return (\n <InfoCard\n description={currentStep.description}\n heading={currentStep.heading}\n Image={currentStep.Image}\n title=\"Platform Setup\"\n >\n <SetupStepsList\n activeStepName={currentStepName}\n showWarnIcon={areAdditionalInstructionsShown && currentStepName !== SETUP_STEPS_NAMES.POPUPS}\n stepsStatuses={stepsStatuses}\n />\n\n <p className=\"io-text-default-lh16\">\n {areAdditionalInstructionsShown ? currentStep.instructions.additional : currentStep.instructions.initial}\n </p>\n <ButtonGroup>\n <Button\n className=\"io-btn io-btn-lg io-btn-primary setup-flow-btn\"\n disabled={areButtonsDisabled}\n onClick={handleActionButtonClick}\n >\n {currentStep.actionBtnText}\n </Button>\n {currentStepName !== finalStepName && currentStepName !== SETUP_STEPS_NAMES.WINDOW_MANAGEMENT && (\n <Button\n className=\"io-btn io-btn-lg io-btn-outline setup-flow-btn\"\n disabled={areButtonsDisabled}\n onClick={handleSkipButtonClick}\n >\n Skip\n </Button>\n )}\n </ButtonGroup>\n {areButtonsDisabled && <Spinner />}\n </InfoCard>\n );\n};\n\nexport default SetupSteps;\n","import InfoPageContainer from \"../info-page-container/info-page-container\";\nimport { useIOConnectHome } from \"../io-connect-home-provider/io-connect-home-provider\";\nimport { LoginLogo } from \"../login/login-logo\";\nimport SystemLoader from \"../system-loader/system-loader\";\nimport SetupSteps from \"./setup-steps\";\nimport { DEFAULT_SETTINGS } from \"../platform-setup/constants\";\nimport \"./platform-setup.scss\";\n\ninterface PlatformSetupProps {\n components?: {\n Logo?: React.ComponentType<{ className?: string }>;\n Loader?: React.ComponentType<{ text?: string }>;\n };\n settings?: { edgeNotificationsPermissionTimeout?: number };\n}\n\nexport const PlatformSetup = ({\n components: { Logo = LoginLogo, Loader = SystemLoader } = {},\n settings = {},\n}: PlatformSetupProps) => {\n const { permission } = useIOConnectHome();\n\n if (permission.isLoading) {\n return <Loader text=\"Checking browser permissions...\" />;\n }\n\n return (\n <InfoPageContainer Logo={Logo}>\n <SetupSteps settings={{ ...DEFAULT_SETTINGS, ...settings }} />\n </InfoPageContainer>\n );\n};\n\nexport default PlatformSetup;\n","import { Button } from \"reactstrap\";\nimport InfoPageContainer from \"../info-page-container/info-page-container\";\nimport InfoCard from \"../info-card/info-card\";\nimport { LoginLogo } from \"../login/login-logo\";\nimport StartFailedIcon from \"../icon-components/start-failed-icon\";\nimport \"./io-init-error-screen.scss\";\n\nexport const IOInitErrorScreen = ({ errorMessage }: { errorMessage: string }) => {\n const helpCenterURL = \"https://support.interop.io\";\n\n const description = (\n <>\n It seems that the following error prevents io.Connect Browser\n <br />\n from operating properly:\n <span className=\"browser-start-failed-error\">“{errorMessage}”</span>\n <span className=\"help-center-info\">\n For further assistance, visit our{\" \"}\n <a href={helpCenterURL} target=\"_blank\" rel=\"noopener noreferrer\">\n help center\n </a>\n .\n </span>\n <span className=\"thank-you\">Thank you for your cooperation.</span>\n </>\n );\n\n return (\n <InfoPageContainer Logo={LoginLogo}>\n <InfoCard\n className=\"io-init-error-card\"\n heading=\"Oops! io.Connect Browser couldn't start...\"\n description={description}\n Image={StartFailedIcon}\n >\n <Button\n className=\"io-btn io-btn-lg io-btn-primary\"\n onClick={() => window.open(helpCenterURL, \"_blank\", \"noopener,noreferrer\")}\n >\n Visit the interop.io Help Center\n </Button>\n </InfoCard>\n </InfoPageContainer>\n );\n};\n","import { Title } from \"@interopio/components-react\";\n\nexport const LoginHeading = () => {\n return (\n <>\n <Title tag=\"h1\" className=\"login-title\" text=\"Making Your Work Flow\" size=\"large\" />\n <p className=\"io-text-default-lh16 login-description\">\n Integrate apps, simplify user experiences and accelerate\n <br />\n digital transformation.\n </p>\n </>\n );\n};\n","import classNames from \"classnames\";\n\ninterface LoginPageContainerProps {\n Logo: React.ComponentType;\n children?: React.ReactNode;\n className?: string;\n}\n\nexport const LoginPageContainer = ({ Logo, children, className }: LoginPageContainerProps) => {\n return (\n <div className=\"login-page-background\">\n <div className={classNames(className, \"login-form-container flex flex-column ai-center\")}>\n <Logo />\n {children}\n </div>\n </div>\n );\n};\n\nexport default LoginPageContainer;\n","import { Button, Alert } from \"@interopio/components-react\";\nimport { LoginLogo } from \"../login-logo\";\nimport { LoginHeading } from \"../login-heading\";\nimport { Auth0ValidationError, LoginPageComponents } from \"../../io-connect-home/types\";\nimport { LoginPageContainer } from \"../login-page-container\";\nimport SystemLoader from \"../../system-loader/system-loader\";\n\nexport interface Auth0LoginPageProps {\n onLogin: () => void;\n isLoading: boolean;\n validationError: Auth0ValidationError | null;\n components?: LoginPageComponents & { Loader?: React.ComponentType<{ text?: string }> };\n}\n\nexport const Auth0LoginPage = ({\n onLogin,\n isLoading,\n validationError,\n components: { Logo = LoginLogo, Heading = LoginHeading, Loader = SystemLoader } = {},\n}: Auth0LoginPageProps) => {\n return isLoading ? (\n <Loader text=\"Verifying credentials...\" />\n ) : (\n <LoginPageContainer Logo={Logo}>\n <Heading />\n <Button className=\"auth0-login-btn\" onClick={onLogin} size=\"large\" variant=\"primary\">\n Log In\n </Button>\n {validationError && (\n <Alert variant=\"critical\" text={validationError.message} />\n )}\n </LoginPageContainer>\n );\n};\n\nexport default Auth0LoginPage;\n","import { LoginFormElementAction, LoginFormElementReducer, LoginFormElementState } from \"../types\";\n\nexport const inputReducer: LoginFormElementReducer = (_: LoginFormElementState, action: LoginFormElementAction) => {\n const value: string = action.value;\n\n const isValid = value.trim().length > 3;\n\n return { value, isValid };\n};\n","import React, { useReducer, useState } from \"react\";\nimport { Button, Icon, Input } from \"@interopio/components-react\";\nimport { inputReducer } from \"./reducers\";\nimport { LoginFormElementReducer } from \"../types\";\n\nexport interface SimpleLoginFormProps {\n onLogin: (user: string, password: string) => Promise<void>;\n userInputName?: string;\n setIsLoading: React.Dispatch<React.SetStateAction<boolean>>;\n loginError: Error | null;\n setLoginError: React.Dispatch<React.SetStateAction<Error | null>>;\n}\n\nconst SimpleLoginForm = ({\n onLogin,\n setIsLoading,\n loginError,\n setLoginError,\n userInputName = \"email\",\n}: SimpleLoginFormProps) => {\n const [user, dispatchUser] = useReducer<LoginFormElementReducer>(inputReducer, { value: \"\", isValid: false });\n const [password, dispatchPassword] = useReducer<LoginFormElementReducer>(inputReducer, { value: \"\", isValid: false });\n const [showUserError, setShowUserError] = useState<boolean>(false);\n const [showPasswordError, setShowPasswordError] = useState<boolean>(false);\n\n const { isValid: isUserValid } = user;\n const { isValid: isPasswordValid } = password;\n\n const isFormValid = isUserValid && isPasswordValid;\n\n const handleUserChange = (event: React.ChangeEvent<HTMLInputElement>) => dispatchUser({ value: event.target.value });\n\n const handlePasswordChange = (event: React.ChangeEvent<HTMLInputElement>) =>\n dispatchPassword({ value: event.target.value });\n\n const handleUserBlur = () => {\n if (!isUserValid) {\n setShowUserError(true);\n }\n };\n\n const handlePasswordBlur = () => {\n if (!isPasswordValid) {\n setShowPasswordError(true);\n }\n };\n\n const handleSubmit = async (event: React.FormEvent<HTMLFormElement>) => {\n event.preventDefault();\n\n if (!isFormValid) {\n return;\n }\n\n setIsLoading(true);\n\n try {\n await onLogin(user.value, password.value);\n } catch (error: any) {\n setLoginError(error);\n }\n\n setIsLoading(false);\n };\n\n return (\n <form className=\"simple-login-form\" onSubmit={handleSubmit}>\n <Input\n id=\"user\"\n errorMessage={showUserError ? `The ${userInputName} is too short` : undefined}\n autoFocus\n autoComplete=\"off\"\n type=\"text\"\n placeholder={`Enter your ${userInputName}`}\n value={user.value}\n onChange={handleUserChange}\n onBlur={handleUserBlur}\n onFocus={() => setShowUserError(false)}\n />\n\n <Input\n id=\"password\"\n errorMessage={showPasswordError ? \"The password is too short\" : undefined}\n autoComplete=\"off\"\n type=\"password\"\n placeholder=\"Enter your password\"\n value={password.value}\n onChange={handlePasswordChange}\n onBlur={handlePasswordBlur}\n onFocus={() => setShowPasswordError(false)}\n />\n\n <Button type=\"submit\" size=\"large\" variant=\"primary\">\n Log In\n </Button>\n\n {loginError && (\n <div className=\"login-error-feedback\">\n <Icon className=\"error-icon\" variant=\"close\" size=\"12\" />\n {loginError.message}\n </div>\n )}\n </form>\n );\n};\n\nexport default SimpleLoginForm;\n","import { useState } from \"react\";\nimport SimpleLoginForm from \"./simple-login-form\";\nimport { LoginHeading } from \"../login-heading\";\nimport { LoginLogo } from \"../login-logo\";\nimport LoginPageContainer from \"../login-page-container\";\nimport SystemLoader from \"../../system-loader/system-loader\";\nimport { LoginPageComponents } from \"../../io-connect-home/types\";\nimport \"../login.scss\";\n\nexport interface SimpleLoginPageProps {\n onLogin: (user: string, password: string) => Promise<void>;\n userInputName?: string;\n components?: LoginPageComponents & { Loader?: React.ComponentType<{ text?: string }> };\n}\n\nexport const SimpleLoginPage = ({\n onLogin,\n userInputName,\n components: { Logo = LoginLogo, Heading = LoginHeading, Loader = SystemLoader } = {},\n}: SimpleLoginPageProps) => {\n const [isLoading, setIsLoading] = useState(false);\n const [loginError, setLoginError] = useState<Error | null>(null);\n\n if (isLoading) {\n return <Loader text=\"Verifying credentials...\" />;\n }\n\n return (\n <LoginPageContainer Logo={Logo}>\n <Heading />\n <SimpleLoginForm\n onLogin={onLogin}\n setIsLoading={setIsLoading}\n loginError={loginError}\n setLoginError={setLoginError}\n userInputName={userInputName}\n />\n </LoginPageContainer>\n );\n};\n","import { IOConnectContext } from \"@interopio/react-hooks\";\nimport { IOConnectWorkspaces } from \"@interopio/workspaces-api\";\nimport { useEffect, useState, useContext } from \"react\";\n\nexport function useAddWindowButtonVisible(workspaceId: string, groupId: string) {\n const [visible, setVisible] = useState(true);\n const io = useContext(IOConnectContext);\n\n useEffect(() => {\n let groupLockConfigUnsubscribe: IOConnectWorkspaces.Unsubscribe | undefined;\n\n (async () => {\n if (!io.workspaces) {\n return;\n }\n\n let workspace;\n\n try {\n workspace = await io.workspaces.getWorkspaceById(workspaceId);\n } catch (error) {\n console.warn(error);\n return;\n }\n\n const group = workspace.getAllGroups().find((group) => group.id === groupId);\n\n if (!group) {\n return;\n }\n\n groupLockConfigUnsubscribe = await group.onLockConfigurationChanged(({ showAddWindowButton }) => {\n if (showAddWindowButton === undefined) {\n return;\n }\n\n setVisible(showAddWindowButton);\n });\n\n setVisible(!!group.showAddWindowButton);\n })();\n\n return () => groupLockConfigUnsubscribe?.();\n }, [workspaceId, groupId, io.workspaces]);\n\n return visible;\n}\n","import { AddWindowButton, AfterTabsComponentProps, Bounds, showAddApplicationPopup } from \"@interopio/workspaces-ui-react\";\nimport { useAddWindowButtonVisible } from \"./useAddWindowButtonVisible\";\nimport { useCallback } from \"react\";\n\nexport const AfterTabs = ({ groupId, workspaceId }: AfterTabsComponentProps) => {\n const visible = useAddWindowButtonVisible(workspaceId, groupId);\n\n const showPopup = useCallback(\n (bounds: Bounds) => {\n showAddApplicationPopup({\n bounds,\n groupId,\n workspaceId,\n });\n },\n [groupId, workspaceId],\n );\n\n return visible && <AddWindowButton title=\"Add App\" visible={visible} showPopup={showPopup} />;\n};\n\nexport default AfterTabs;\n","import { GroupHeaderButtons as DefaultGroupHeaderButtons, GroupHeaderButtonsProps } from \"@interopio/workspaces-ui-react\";\n\nexport const HeaderButtons = (props: GroupHeaderButtonsProps) => {\n return <DefaultGroupHeaderButtons {...props} addWindow={{ visible: false, showPopup: props.addWindow.showPopup }} />;\n};\n\nexport default HeaderButtons;\n","// By default, Workspaces renders the interop.io logo even when \"undefined\" is provided. We use this component to hide it\n\nexport const NoLogo = () => {\n return null;\n};\n\nexport default NoLogo;\n","import { IONotifications } from \"@interopio/components-react\";\nimport \"@interopio/components-react/dist/styles/components/ui/dropdownmenu.css\";\nimport \"@interopio/components-react/dist/styles/features/notifications/styles.css\";\n\ninterface NotificationsSettingsPanelProps {\n className?: string;\n components?: IONotifications.SettingsPanelProps[\"components\"];\n onClose: () => void;\n title?: string;\n}\n\nexport const NotificationSettingsPanel = ({ className, components, onClose, title }: NotificationsSettingsPanelProps) => {\n const { NotificationsProvider, NotificationsPanelProvider, SettingsPanel } = IONotifications;\n\n return (\n <NotificationsProvider>\n <NotificationsPanelProvider>\n <SettingsPanel className={className} components={components} onClose={onClose} title={title} />\n </NotificationsPanelProvider>\n </NotificationsProvider>\n );\n};\n\nexport default NotificationSettingsPanel;\n","import { IOPreferencesBrowser } from \"@interopio/components-react\";\nimport \"@interopio/components-react/dist/styles/features/preferences/styles.css\";\n\nexport const PreferencesPanel = IOPreferencesBrowser.Panel;\n\nexport default PreferencesPanel;\n","import { useCallback, useContext } from \"react\";\nimport { flushSync } from \"react-dom\";\nimport { IOConnectBrowser } from \"@interopio/browser\";\nimport { IOConnectContext } from \"@interopio/react-hooks\";\nimport { IOProfile } from \"@interopio/components-react\";\nimport { DIALOG_TEMPLATE_NAMES } from \"../../constants/dialogs\";\nimport { layoutStorageValueDecoder } from \"../../decoders/layouts\";\nimport { ACTIVE_LAYOUT_SESSION_STORAGE_KEY } from \"../../constants/storageKeys\";\nimport { useStorage } from \"../../hooks\";\nimport { useIOConnectHome } from \"../io-connect-home-provider/io-connect-home-provider\";\nimport { useWorkspaceComponentsContext } from \"../home-app-workspace/workspace-components-context\";\nimport \"@interopio/components-react/dist/styles/features/profile/styles.css\";\n\ninterface ProfilePanelProps {\n className?: string;\n components?: IOProfile.PanelProps[\"components\"];\n onClose: () => void;\n title?: string;\n}\n\nexport const ProfilePanel = ({ className, components, onClose, title }: ProfilePanelProps) => {\n const io = useContext(IOConnectContext) as IOConnectBrowser.API;\n const { onLogout } = useWorkspaceComponentsContext();\n const [_, setActiveLayout] = useStorage(\"sessionStorage\", ACTIVE_LAYOUT_SESSION_STORAGE_KEY, layoutStorageValueDecoder);\n const {\n login: { setIsLoggingOut },\n } = useIOConnectHome();\n\n const handleLogout = useCallback(async () => {\n if (\"modals\" in io && io.modals) {\n const confirmButtonId = \"log-out\";\n\n const { isEnterPressed, responseButtonClicked } = await io.modals.dialogs.request({\n templateName: DIALOG_TEMPLATE_NAMES.NO_INPUTS_CONFIRMATION_DIALOG,\n variables: {\n heading: \"Logging out of io.Connect Browser\",\n text: \"This will terminate your session.\",\n actionButtons: [\n { variant: \"primary\", text: \"Log out\", id: confirmButtonId, autofocus: true },\n { variant: \"outline\", text: \"Cancel\", id: \"cancel\" },\n ],\n },\n });\n\n const isLogOutConfirmed = isEnterPressed || responseButtonClicked?.id === confirmButtonId;\n\n if (!isLogOutConfirmed) {\n return;\n }\n }\n\n /**\n * flushSync lets you force React to flush any updates inside the provided callback synchronously.\n *\n * In this case it is used to immediately update \"isLoggingOut\" which will disable \"useBeforeunload\".\n *\n * According to the React documentation, flushSync should be used sparingly.\n *\n * Be careful when making any changes to the code inside \"handleLogout\"!\n */\n flushSync(() => setIsLoggingOut(true));\n\n try {\n onLogout?.();\n } catch (error) {\n console.error(error);\n }\n\n setActiveLayout(null);\n\n await io.webPlatform?.system.shutdown();\n\n window.location.reload();\n }, [io, onLogout]);\n\n return (\n <IOProfile.Panel\n className={className}\n components={components}\n onClose={onClose}\n onLogout={handleLogout}\n title={title}\n />\n );\n};\n\nexport default ProfilePanel;\n","import { NotificationSettingsPanel } from \"../notifications-panels/notification-settings-panel\";\nimport { PreferencesPanel } from \"../preferences-panel/preferences-panel\";\nimport { ProfilePanel } from \"../profile-panel/profile-panel\";\nimport { SystemMenuAction } from \"../system-menu/types\";\n\nexport const defaultSystemMenuActions: SystemMenuAction[] = [\n {\n name: \"platformPreferences\",\n displayName: \"Platform Preferences\",\n icon: \"cog\",\n onClick: (openPanel) => openPanel(PreferencesPanel),\n },\n {\n name: \"notificationSettingsPanel\",\n displayName: \"Notification Settings\",\n icon: \"bell\",\n onClick: (openPanel) => openPanel(NotificationSettingsPanel),\n separatorAfter: true,\n },\n {\n name: \"profile\",\n displayName: \"Profile\",\n icon: \"user\",\n onClick: (openPanel) => openPanel(ProfilePanel),\n },\n];\n","import { PanelProps } from \"../panels/types\";\nimport { SystemMenuPanel } from \"./types\";\n\nexport const createPanelComponent = (SystemMenuPanel: SystemMenuPanel) => {\n return ({ onClose }: PanelProps) => <SystemMenuPanel className=\"system-menu-panel\" onClose={onClose} />;\n};\n","import { useCallback, useEffect, useRef, useState } from \"react\";\nimport classNames from \"classnames\";\nimport { createPanelComponent } from \"./helpers\";\nimport DropdownButton, { DropdownButtonProps } from \"../context-menu/dropdown-button/dropdown-button\";\nimport { PanelProps } from \"../panels/types\";\nimport { PanelWrapper } from \"../panels/panel-wrapper\";\nimport { SystemMenuAction, SystemMenuPanel } from \"./types\";\nimport { useOnIframeFocus, useOnOutsideClick, usePressedKeys } from \"../../hooks\";\nimport \"./system-menu.scss\";\n\nexport interface SystemMenuProps {\n actions: SystemMenuAction[];\n panelWrapperClassName?: string;\n}\n\nexport const SystemMenu = ({ actions, panelWrapperClassName }: SystemMenuProps) => {\n const [Panel, setPanel] = useState<React.ComponentType<PanelProps>>();\n const panelWrapperRef = useRef<HTMLDivElement | null>(null);\n const pressedKey = usePressedKeys();\n const closePanel = useCallback(() => setPanel(undefined), []);\n const isPanelOpen = Boolean(Panel);\n\n useEffect(() => {\n if (!isPanelOpen || pressedKey !== \"Escape\") {\n return;\n }\n\n closePanel();\n }, [isPanelOpen, pressedKey]);\n\n const handleActionItemClick: DropdownButtonProps[\"onActionItemClick\"] = useCallback(\n (__event, action) => {\n const foundAction = actions.find(({ name }) => name === action.name);\n\n if (!foundAction) {\n console.error(\n `Action named ${action.name} is not part of the provided list of actions: ${JSON.stringify(actions)}!`,\n );\n return;\n }\n\n const openPanel = (SystemMenuPanel: SystemMenuPanel) => {\n const Panel = createPanelComponent(SystemMenuPanel);\n\n setPanel(() => Panel);\n };\n\n foundAction.onClick(openPanel);\n },\n [actions],\n );\n\n // If eventType is \"mousedown\" or \"click\" instead of \"mouseup\", clicking the close button of a workspace tab will not close the panel\n // because propagation on these events is stopped\n // https://docs.interop.io/browser/capabilities/windows/workspaces/workspaces-app/index.html#group_header_components-workspace_window_tab\n useOnOutsideClick({ eventType: \"mouseup\", handler: closePanel, ref: panelWrapperRef, skip: !isPanelOpen });\n\n useOnIframeFocus({ handler: closePanel, skip: !isPanelOpen });\n\n return (\n <>\n <DropdownButton\n buttonSize=\"32\"\n iconSize=\"16\"\n actions={actions}\n onActionItemClick={handleActionItemClick}\n icon=\"ellipsis-vertical\"\n buttonVariant=\"circle\"\n placement=\"bottom-end\"\n offset={[0, 8]}\n />\n <PanelWrapper\n className={classNames(\"system-menu-panel-wrapper\", panelWrapperClassName)}\n isOpen={isPanelOpen}\n onClose={closePanel}\n Panel={Panel}\n position=\"right\"\n ref={panelWrapperRef}\n />\n </>\n );\n};\n","import { defaultSystemMenuActions } from \"./constants\";\nimport { SystemMenu } from \"../system-menu/system-menu\";\n\nexport const DefaultHeaderSystemMenu = () => {\n return (\n <li className=\"default-header-system-menu\">\n <SystemMenu actions={defaultSystemMenuActions} />\n </li>\n );\n};\n\nexport default DefaultHeaderSystemMenu;\n","import { useMemo } from \"react\";\nimport { useNotifications, useNotificationsConfiguration } from \"../../hooks\";\n\nexport const NotificationsBadge = () => {\n const { showNotificationBadge } = useNotificationsConfiguration();\n const notifications = useNotifications();\n\n const activeNotifications = useMemo(() => {\n return notifications.filter(({ state }) => state === \"Active\" || state === \"Stale\");\n }, [notifications]);\n const activeNotificationsCount = activeNotifications.length;\n\n return activeNotificationsCount > 0 && showNotificationBadge ? (\n <div className=\"io-badge io-badge-primary notifications-badge\">\n {activeNotificationsCount < 100 ? activeNotificationsCount : \"99+\"}\n </div>\n ) : null;\n};\n\nexport default NotificationsBadge;\n","import { ButtonIcon } from \"@interopio/components-react\";\nimport classNames from \"classnames\";\nimport NotificationsBadge from \"./notifications-badge\";\nimport \"./notifications-panel-button.scss\";\n\ninterface NotificationsPanelButtonProps extends Omit<React.HTMLAttributes<HTMLDivElement>, \"children\"> {\n active: boolean;\n}\n\nexport const NotificationsPanelButton = (props: NotificationsPanelButtonProps) => {\n const { className, active, ...rest } = props;\n\n return (\n <div className={classNames(className, \"notifications-panel-button\")} {...rest}>\n <ButtonIcon icon=\"bell\" size=\"32\" iconSize=\"16\" variant=\"circle\" />\n <NotificationsBadge />\n </div>\n );\n};\n\nexport default NotificationsPanelButton;\n","import { IONotifications } from \"@interopio/components-react\";\nimport \"@interopio/components-react/dist/styles/components/ui/dropdownmenu.css\";\nimport \"@interopio/components-react/dist/styles/features/notifications/styles.css\";\n\ninterface NotificationsPanelProps {\n className?: string;\n components?: IONotifications.PanelProps[\"components\"];\n settings?: IONotifications.PanelProps[\"settings\"];\n onClose: () => void;\n title?: string;\n}\n\nexport const NotificationsPanel = ({ className, components, onClose, settings, title }: NotificationsPanelProps) => {\n const { NotificationsProvider, NotificationsPanelProvider, Panel } = IONotifications;\n\n return (\n <NotificationsProvider>\n <NotificationsPanelProvider>\n <Panel className={className} components={components} onClose={onClose} settings={settings} title={title} />\n </NotificationsPanelProvider>\n </NotificationsProvider>\n );\n};\n\nexport default NotificationsPanel;\n","import { useCallback, useContext } from \"react\";\nimport { IOConnectContext } from \"@interopio/react-hooks\";\nimport { useNotifications } from \"../../hooks\";\nimport { NotificationsPanelButton } from \"../notifications-panel-button/notifications-panel-button\";\nimport { NotificationsPanel } from \"./notifications-panel\";\nimport { PanelWithToggleButton, PanelWithToggleButtonProps } from \"../panels/panel-with-toggle-button\";\n\nexport const NotificationsPanelWithToggleButton = ({\n Button = NotificationsPanelButton,\n Panel = NotificationsPanel,\n position = \"right\",\n ...rest\n}: Partial<Omit<PanelWithToggleButtonProps, \"onClose\">>) => {\n const notifications = useNotifications();\n const io = useContext(IOConnectContext);\n const handleNotificationsPanelClose = useCallback(async () => {\n await Promise.all(notifications.map(({ id }) => io.notifications.setState(id, \"Seen\")));\n }, [notifications]);\n\n return (\n <PanelWithToggleButton\n Button={Button}\n Panel={Panel}\n position={position}\n onClose={handleNotificationsPanelClose}\n {...rest}\n />\n );\n};\n\nexport default NotificationsPanelWithToggleButton;\n","import DefaultHeaderSystemMenu from \"./default-header-system-menu\";\nimport NotificationsPanelWithToggleButton from \"../notifications-panels/notifications-panel-with-toggle-button\";\nimport \"./default-header-system-buttons.css\";\n\nexport const DefaultHeaderSystemButtons = () => {\n return (\n <>\n <NotificationsPanelWithToggleButton tag=\"li\" />\n <DefaultHeaderSystemMenu />\n </>\n );\n};\n\nexport default DefaultHeaderSystemButtons;\n","import { useEffect, useMemo } from \"react\";\nimport { usePlatformPrefs } from \"@interopio/components-react\";\nimport Workspaces from \"@interopio/workspaces-ui-react\";\nimport { WorkspaceComponentsContext } from \"./workspace-components-context\";\nimport { WorkspacesConfig, LaunchpadConfig } from \"../io-connect-home/types\";\nimport AfterTabs from \"./after-tabs\";\nimport HeaderButtons from \"./group-header-buttons\";\nimport LaunchpadAccess from \"./launchpad-access\";\nimport NoLogo from \"./no-logo\";\nimport SystemLoader from \"../system-loader/system-loader\";\nimport { useBeforeunload, useIsHomeLoaded, usePlatformWindow } from \"../../hooks\";\nimport { useIOConnectHome } from \"../io-connect-home-provider/io-connect-home-provider\";\nimport DefaultHeaderSystemButtons from \"../default-header-system-buttons/default-header-system-buttons\";\n\ninterface HomeAppWorkspaceProps {\n onLogout?: () => void;\n workspaces?: WorkspacesConfig;\n launchpad?: LaunchpadConfig;\n isBeforeunloadDialogEnabled?: boolean;\n Loader?: React.ComponentType<{ text?: string }>;\n}\n\nexport const HomeAppWorkspace = ({\n onLogout,\n workspaces,\n launchpad,\n Loader = SystemLoader,\n isBeforeunloadDialogEnabled,\n}: HomeAppWorkspaceProps) => {\n const { LogoComponent, SystemButtonsComponent } = workspaces?.components?.header ?? {};\n const { setPlatformWindow } = usePlatformWindow();\n const { isInitialSetupCompleted } = usePlatformPrefs();\n\n const isPlatform = (window as any).iobrowser?.platformStarted;\n\n const Logo = LogoComponent ?? (isPlatform ? (LaunchpadAccess as () => JSX.Element) : NoLogo);\n const HeaderSystemButtons = SystemButtonsComponent ?? (isPlatform ? DefaultHeaderSystemButtons : undefined);\n\n const isHomeLoaded = useIsHomeLoaded();\n const {\n login: { isLoggingOut },\n } = useIOConnectHome();\n\n useBeforeunload(isBeforeunloadDialogEnabled === false || isLoggingOut);\n\n useEffect(() => {\n if (!isPlatform) {\n return;\n }\n\n setPlatformWindow({ name: (window as any).name });\n }, [isPlatform, setPlatformWindow]);\n\n const contextValue = useMemo(\n () => ({ onLogout, launchpadSettings: launchpad?.settings, launchpadComponents: launchpad?.components }),\n [onLogout, launchpad?.settings, launchpad?.components],\n );\n\n return (\n <WorkspaceComponentsContext.Provider value={contextValue}>\n {(!isHomeLoaded || !isInitialSetupCompleted) && <Loader text=\"Loading io.Connect Home...\" />}\n <Workspaces\n components={{\n ...workspaces?.components,\n header: {\n ...workspaces?.components?.header,\n LogoComponent: Logo,\n SystemButtonsComponent: HeaderSystemButtons,\n },\n groupHeader: {\n AfterTabsComponent: AfterTabs,\n ButtonsComponent: HeaderButtons,\n ...workspaces?.components?.groupHeader,\n },\n }}\n />\n </WorkspaceComponentsContext.Provider>\n );\n};\n","import { Decoder, object, optional } from \"decoder-validate\";\nimport { User } from \"../lib/io-connect-home/types\";\nimport { nonEmptyStringDecoder } from \"./base\";\n\nexport const userDecoder: Decoder<User> = object({\n id: nonEmptyStringDecoder,\n username: optional(nonEmptyStringDecoder),\n email: optional(nonEmptyStringDecoder),\n firstName: optional(nonEmptyStringDecoder),\n lastName: optional(nonEmptyStringDecoder),\n token: optional(nonEmptyStringDecoder),\n password: optional(nonEmptyStringDecoder),\n});\n","import { useCallback, useState } from \"react\";\nimport { IOConnectProvider } from \"@interopio/react-hooks\";\nimport { PlatformPrefsProvider } from \"@interopio/components-react\";\nimport { useStorage, useIsRunningInDesktopContainer } from \"../../hooks\";\nimport { useIOConnectHome } from \"../io-connect-home-provider/io-connect-home-provider\";\nimport PlatformSetup from \"../platform-setup/platform-setup\";\nimport { IOInitErrorScreen } from \"../io-init-error-screen/io-init-error-screen\";\nimport { SimpleLoginPage } from \"../login\";\nimport { HomeAppWorkspace } from \"../home-app-workspace\";\nimport SystemLoader from \"../system-loader/system-loader\";\nimport { PLATFORM_SETUP_LOCAL_STORAGE_KEY, USER_LOCAL_STORAGE_KEY } from \"../../constants/storageKeys\";\nimport { userDecoder } from \"../../decoders/user\";\nimport { platformSetupStorageValueDecoder } from \"../../decoders/platform\";\nimport { PlatformSetupStatus } from \"../platform-setup/types\";\nimport { IOConnectHomeConfig, SimpleLoginConfig, User } from \"./types\";\n\ninterface SimpleLoginHomeProps {\n config: IOConnectHomeConfig & { login: SimpleLoginConfig };\n}\n\nexport const SimpleLoginHome = ({ config }: SimpleLoginHomeProps) => {\n const { setupFlow, login: loginConfig, workspaces, launchpad, getIOConnectConfig } = config;\n\n const [user, setUser] = useStorage<User>(\"localStorage\", USER_LOCAL_STORAGE_KEY, userDecoder);\n const [platformSetup] = useStorage<PlatformSetupStatus>(\n \"localStorage\",\n PLATFORM_SETUP_LOCAL_STORAGE_KEY,\n platformSetupStorageValueDecoder,\n );\n const [initError, setInitError] = useState<Error | null>(null);\n\n const {\n login: { isLoggingOut },\n } = useIOConnectHome();\n\n const isRunningInDesktopContainer = useIsRunningInDesktopContainer();\n\n const Loader = config.components?.SystemLoader ?? SystemLoader;\n const ErrorScreen = config.components?.IOInitErrorScreen ?? IOInitErrorScreen;\n\n const handleLogin = useCallback(\n async (user: string, password: string) => {\n const authenticatedUser = await loginConfig.onLogin(user, password);\n\n setUser(authenticatedUser);\n },\n [loginConfig, setUser],\n );\n\n const handleLogout = useCallback(() => {\n loginConfig.onLogout?.();\n\n setUser(null);\n }, [loginConfig.onLogout, setUser]);\n\n if (isLoggingOut) {\n return <Loader text=\"Logging out...\" />;\n }\n\n if (!user) {\n return (\n <SimpleLoginPage\n onLogin={handleLogin}\n userInputName={loginConfig.userInputName}\n components={{ ...loginConfig.components, Loader }}\n />\n );\n }\n\n if (!platformSetup?.isCompleted && setupFlow?.enabled !== false && !isRunningInDesktopContainer) {\n return <PlatformSetup settings={setupFlow?.settings} components={{ ...setupFlow?.components, Loader }} />;\n }\n\n // TODO: remove error message text check after changes are made to the io factory function\n // and it no longer throws if io has already been started\n return initError && !initError.message.includes(\"has already been started\") ? (\n <ErrorScreen errorMessage={initError.message} />\n ) : (\n <IOConnectProvider\n settings={getIOConnectConfig({ type: \"simple\", user })}\n onInitError={setInitError}\n fallback={<Loader text=\"Initializing the platform...\" />}\n >\n <PlatformPrefsProvider launchpadMode={launchpad?.settings?.mode}>\n <HomeAppWorkspace\n workspaces={workspaces}\n launchpad={launchpad}\n onLogout={handleLogout}\n isBeforeunloadDialogEnabled={config.settings?.isBeforeunloadDialogEnabled}\n Loader={Loader}\n />\n </PlatformPrefsProvider>\n </IOConnectProvider>\n );\n};\n","import { Decoder, object } from \"decoder-validate\";\nimport { nonEmptyStringDecoder } from \"./base\";\nimport { Auth0ValidationError } from \"../lib/io-connect-home/types\";\n\nexport const auth0ValidationErrorDecoder: Decoder<Auth0ValidationError> = object({\n message: nonEmptyStringDecoder,\n});\n","import { useStorage } from \"../../hooks\";\nimport { auth0ValidationErrorDecoder } from \"../../decoders/validation\";\nimport { AUTH0_VALIDATION_ERROR_SESSION_STORAGE_KEY } from \"../../constants/storageKeys\";\nimport { ValidateUser, Auth0ValidationError, User } from \"./types\";\nimport { useEffect, useMemo, useState } from \"react\";\nimport { useAuth0 } from \"@auth0/auth0-react\";\n\nexport const useUser = (\n validateUser: ValidateUser | undefined,\n): {\n isLoading: boolean;\n validationError: Auth0ValidationError | null;\n user: (User & { token: string }) | null;\n} => {\n const auth0 = useAuth0();\n const [token, setToken] = useState<string | undefined>(undefined);\n const [validationError, setValidationError] = useStorage<Auth0ValidationError | null>(\n \"sessionStorage\",\n AUTH0_VALIDATION_ERROR_SESSION_STORAGE_KEY,\n auth0ValidationErrorDecoder,\n );\n\n const validationResult = useMemo(\n () => (auth0.user ? (validateUser?.(auth0.user) ?? { ok: true as const }) : null),\n [auth0.user, validateUser],\n );\n\n const isLoggingOut = validationResult?.ok === false;\n const isFetchingUserWithToken = auth0.isLoading || (auth0.isAuthenticated && !token);\n const isLoading = isLoggingOut || isFetchingUserWithToken;\n\n const user = useMemo(\n () =>\n validationResult?.ok && auth0.user?.email && token\n ? { username: auth0.user.name, id: auth0.user.email, token }\n : null,\n [auth0.user, token, validationResult?.ok],\n );\n\n useEffect(() => {\n if (!auth0.isAuthenticated) {\n return;\n }\n\n auth0.getAccessTokenSilently().then(setToken).catch(console.warn);\n }, [auth0]);\n\n useEffect(() => {\n if (!validationResult) {\n return;\n }\n\n if (validationResult.ok) {\n setValidationError(null);\n return;\n }\n\n setValidationError({ message: validationResult.message });\n\n auth0.logout();\n }, [auth0, setValidationError, validationResult]);\n\n return { isLoading, validationError, user };\n};\n","export const AUTH0_LOGIN_TYPES = {\n POPUP: \"popup\",\n REDIRECT: \"redirect\",\n} as const;\n","import { useState } from \"react\";\nimport { useAuth0 } from \"@auth0/auth0-react\";\nimport { IOConnectProvider } from \"@interopio/react-hooks\";\nimport { PlatformPrefsProvider } from \"@interopio/components-react\";\nimport { useStorage, useIsRunningInDesktopContainer } from \"../../hooks\";\nimport { useUser } from \"./useUser\";\nimport { useIOConnectHome } from \"../io-connect-home-provider/io-connect-home-provider\";\nimport PlatformSetup from \"../platform-setup/platform-setup\";\nimport { IOInitErrorScreen } from \"../io-init-error-screen/io-init-error-screen\";\nimport { Auth0LoginPage } from \"../login\";\nimport { HomeAppWorkspace } from \"../home-app-workspace\";\nimport SystemLoader from \"../system-loader/system-loader\";\nimport { AUTH0_LOGIN_TYPES } from \"../../constants/auth0LoginTypes\";\nimport { PLATFORM_SETUP_LOCAL_STORAGE_KEY } from \"../../constants/storageKeys\";\nimport { platformSetupStorageValueDecoder } from \"../../decoders/platform\";\nimport { PlatformSetupStatus } from \"../platform-setup/types\";\nimport { Auth0LoginConfig, IOConnectHomeConfig } from \"./types\";\n\ninterface Auth0LoginHomeProps {\n config: IOConnectHomeConfig & { login: Auth0LoginConfig };\n}\n\nexport const Auth0LoginHome = ({ config }: Auth0LoginHomeProps) => {\n const auth0 = useAuth0();\n\n const { setupFlow, login: loginConfig, launchpad, workspaces, getIOConnectConfig } = config;\n\n const { isLoading, validationError, user } = useUser(loginConfig.validateUser);\n const loginType = loginConfig.loginType ?? AUTH0_LOGIN_TYPES.REDIRECT;\n const onLogin = loginType === AUTH0_LOGIN_TYPES.REDIRECT ? auth0.loginWithRedirect : auth0.loginWithPopup;\n\n const [platformSetup] = useStorage<PlatformSetupStatus>(\n \"localStorage\",\n PLATFORM_SETUP_LOCAL_STORAGE_KEY,\n platformSetupStorageValueDecoder,\n );\n const [initError, setInitError] = useState<Error | null>(null);\n\n const {\n login: { isLoggingOut },\n } = useIOConnectHome();\n\n const isRunningInDesktopContainer = useIsRunningInDesktopContainer();\n\n const Loader = config.components?.SystemLoader ?? SystemLoader;\n const ErrorScreen = config.components?.IOInitErrorScreen ?? IOInitErrorScreen;\n\n if (isLoggingOut) {\n return <Loader text=\"Logging out...\" />;\n }\n\n if (!user) {\n return (\n <Auth0LoginPage\n onLogin={onLogin}\n isLoading={isLoading}\n validationError={validationError}\n components={{ ...loginConfig.components, Loader }}\n />\n );\n }\n\n if (!platformSetup?.isCompleted && setupFlow?.enabled !== false && !isRunningInDesktopContainer) {\n return <PlatformSetup settings={setupFlow?.settings} components={{ ...setupFlow?.components, Loader }} />;\n }\n\n // TODO: remove error message text check after changes are made to the io factory function\n // and it no longer throws if io has already been started\n return initError && !initError.message.includes(\"has already been started\") ? (\n <ErrorScreen errorMessage={initError.message} />\n ) : (\n <IOConnectProvider\n settings={getIOConnectConfig({ type: \"auth0\", user: { ...auth0.user, id: user.id, token: user.token } })}\n onInitError={setInitError}\n fallback={<Loader text=\"Initializing the platform...\" />}\n >\n <PlatformPrefsProvider launchpadMode={launchpad?.settings?.mode}>\n <HomeAppWorkspace\n workspaces={workspaces}\n launchpad={launchpad}\n onLogout={auth0.logout}\n isBeforeunloadDialogEnabled={config.settings?.isBeforeunloadDialogEnabled}\n Loader={Loader}\n />\n </PlatformPrefsProvider>\n </IOConnectProvider>\n );\n};\n","import { useState } from \"react\";\nimport { IOConnectProvider } from \"@interopio/react-hooks\";\nimport { PlatformPrefsProvider } from \"@interopio/components-react\";\nimport { usePlatformWindow, useStorage, useIsRunningInDesktopContainer } from \"../../hooks\";\nimport PlatformSetup from \"../platform-setup/platform-setup\";\nimport { IOInitErrorScreen } from \"../io-init-error-screen/io-init-error-screen\";\nimport { HomeAppWorkspace } from \"../home-app-workspace\";\nimport SystemLoader from \"../system-loader/system-loader\";\nimport { PLATFORM_SETUP_LOCAL_STORAGE_KEY } from \"../../constants/storageKeys\";\nimport { platformSetupStorageValueDecoder } from \"../../decoders/platform\";\nimport { PlatformSetupStatus } from \"../platform-setup/types\";\nimport { CustomLoginConfig, IOConnectHomeConfig } from \"./types\";\nimport { useIOConnectHome } from \"../io-connect-home-provider/io-connect-home-provider\";\n\ninterface NoLoginHomeProps {\n config: IOConnectHomeConfig & { login?: CustomLoginConfig };\n}\n\nexport const NoLoginHome = ({ config }: NoLoginHomeProps) => {\n const { setupFlow, launchpad, workspaces, getIOConnectConfig } = config;\n const { onLogout, user } = config.login ?? {};\n\n const { isPlatformWindow } = usePlatformWindow();\n const [platformSetup] = useStorage<PlatformSetupStatus>(\n \"localStorage\",\n PLATFORM_SETUP_LOCAL_STORAGE_KEY,\n platformSetupStorageValueDecoder,\n );\n const [initError, setInitError] = useState<Error | null>(null);\n\n const {\n login: { isLoggingOut },\n } = useIOConnectHome();\n\n const isRunningInDesktopContainer = useIsRunningInDesktopContainer();\n\n const Loader = config.components?.SystemLoader ?? SystemLoader;\n const ErrorScreen = config.components?.IOInitErrorScreen ?? IOInitErrorScreen;\n\n if (isLoggingOut) {\n return <Loader text=\"Logging out...\" />;\n }\n\n if (!platformSetup?.isCompleted && setupFlow?.enabled !== false && isPlatformWindow && !isRunningInDesktopContainer) {\n return <PlatformSetup settings={setupFlow?.settings} components={{ ...setupFlow?.components, Loader }} />;\n }\n\n // TODO: remove error message text check after changes are made to the io factory function\n // and it no longer throws if io has already been started\n return initError && !initError.message.includes(\"has already been started\") ? (\n <ErrorScreen errorMessage={initError.message} />\n ) : (\n <IOConnectProvider\n settings={getIOConnectConfig({ type: \"custom\", user })}\n onInitError={setInitError}\n fallback={<Loader text=\"Initializing the platform...\" />}\n >\n <PlatformPrefsProvider launchpadMode={launchpad?.settings?.mode}>\n <HomeAppWorkspace\n workspaces={workspaces}\n launchpad={launchpad}\n onLogout={onLogout}\n isBeforeunloadDialogEnabled={config.settings?.isBeforeunloadDialogEnabled}\n Loader={Loader}\n />\n </PlatformPrefsProvider>\n </IOConnectProvider>\n );\n};\n","import { Decoder, anyJson, array, boolean, constant, object, oneOf, optional } from \"decoder-validate\";\nimport { functionCheck, nonEmptyStringDecoder, nonNegativeNumberDecoder } from \"./base\";\nimport {\n Auth0LoginConfig,\n IOConnectHomeConfig,\n IOConnectHomeSettings,\n LoginPageComponents,\n LoginConfig,\n SimpleLoginConfig,\n SetupFlowComponents,\n SetupFlowConfig,\n SetupFlowSettings,\n WorkspacesConfig,\n LaunchpadHeaderComponents,\n LaunchpadComponents,\n LaunchpadConfig,\n LaunchpadHeaderSettings,\n LaunchpadSettings,\n LoginType,\n IOConnectHomeComponents,\n CustomLoginConfig,\n CustomUser,\n LaunchpadSection,\n} from \"../lib/io-connect-home/types\";\nimport { AUTH0_LOGIN_TYPES } from \"../constants/auth0LoginTypes\";\n\nconst loginPageComponentsDecoder: Decoder<LoginPageComponents> = object({\n Logo: optional(anyJson().andThen((result) => functionCheck(result, \"Logo\"))),\n Heading: optional(anyJson().andThen((result) => functionCheck(result, \"Heading\"))),\n});\n\nconst loginTypeDecoder: Decoder<LoginType> = oneOf(...Object.values(AUTH0_LOGIN_TYPES).map((value) => constant(value)));\n\nconst auth0LoginConfigDecoder: Decoder<Auth0LoginConfig> = object({\n type: constant(\"auth0\"),\n validateUser: optional(anyJson().andThen((result) => functionCheck(result, \"validateUser\"))),\n loginType: optional(loginTypeDecoder),\n providerOptions: anyJson(),\n components: optional(loginPageComponentsDecoder),\n});\n\nconst simpleLoginConfigDecoder: Decoder<SimpleLoginConfig> = object({\n type: constant(\"simple\"),\n onLogin: anyJson().andThen((result) => functionCheck(result, \"onLogin\")),\n onLogout: optional(anyJson().andThen((result) => functionCheck(result, \"onLogout\"))),\n userInputName: optional(nonEmptyStringDecoder),\n components: optional(loginPageComponentsDecoder),\n});\n\nconst customUserDecoder: Decoder<CustomUser> = object({\n id: nonEmptyStringDecoder,\n username: nonEmptyStringDecoder,\n});\n\nconst customLoginConfigDecoder: Decoder<CustomLoginConfig> = object({\n type: constant(\"custom\"),\n onLogout: anyJson().andThen((result) => functionCheck(result, \"onLogout\")),\n user: customUserDecoder,\n});\n\nconst loginConfigDecoder: Decoder<LoginConfig> = oneOf<LoginConfig>(\n auth0LoginConfigDecoder,\n simpleLoginConfigDecoder,\n customLoginConfigDecoder,\n);\n\nconst setupFlowSettingsDecoder: Decoder<SetupFlowSettings> = object({\n edgeNotificationsPermissionTimeout: optional(nonNegativeNumberDecoder),\n});\n\nconst setupFlowComponentsDecoder: Decoder<SetupFlowComponents> = object({\n Logo: optional(anyJson().andThen((result) => functionCheck(result, \"Logo\"))),\n});\n\nconst setupFlowConfigDecoder: Decoder<SetupFlowConfig> = object({\n enabled: optional(boolean()),\n components: optional(setupFlowComponentsDecoder),\n settings: optional(setupFlowSettingsDecoder),\n});\n\nconst workspacesConfigDecoder: Decoder<WorkspacesConfig> = object({\n components: optional(anyJson()),\n});\n\nconst launchpadHeaderComponentsDecoder: Decoder<LaunchpadHeaderComponents> = object({\n BeforeSearch: oneOf(constant(null), optional(anyJson().andThen((result) => functionCheck(result, \"BeforeSearch\")))),\n AfterSearch: oneOf(constant(null), optional(anyJson().andThen((result) => functionCheck(result, \"AfterSearch\")))),\n});\n\nconst launchpadSectionDecoder: Decoder<LaunchpadSection> = object({\n Component: anyJson().andThen((result) => functionCheck(result, \"Component\")),\n placementId: nonEmptyStringDecoder,\n});\n\nconst launchpadComponentsDecoder: Decoder<LaunchpadComponents> = object({\n header: optional(launchpadHeaderComponentsDecoder),\n sections: optional(array(launchpadSectionDecoder)),\n});\n\nconst launchpadHeaderSettingsDecoder: Decoder<LaunchpadHeaderSettings> = object({\n showHeader: optional(boolean()),\n showSearch: optional(boolean()),\n});\n\nconst launchpadSettingsDecoder: Decoder<LaunchpadSettings> = object({\n header: optional(launchpadHeaderSettingsDecoder),\n mode: optional(oneOf(constant(\"pinned\"), constant(\"default\"))),\n});\n\nconst launchpadConfigDecoder: Decoder<LaunchpadConfig> = object({\n components: optional(launchpadComponentsDecoder),\n settings: optional(launchpadSettingsDecoder),\n});\n\nconst ioConnectHomeComponentsDecoder: Decoder<IOConnectHomeComponents> = object({\n SystemLoader: optional(anyJson().andThen((result) => functionCheck(result, \"SystemLoader\"))),\n IOInitErrorScreen: optional(anyJson().andThen((result) => functionCheck(result, \"IOInitErrorScreen\"))),\n});\n\nconst ioConnectHomeSettingsDecoder: Decoder<IOConnectHomeSettings> = object({\n isBeforeunloadDialogEnabled: optional(boolean()),\n});\n\nexport const ioConnectHomeConfigDecoder: Decoder<IOConnectHomeConfig> = object({\n getIOConnectConfig: anyJson().andThen((result) => functionCheck(result, \"getIOConnectConfig\")),\n login: optional(loginConfigDecoder),\n setupFlow: optional(setupFlowConfigDecoder),\n workspaces: optional(workspacesConfigDecoder),\n launchpad: optional(launchpadConfigDecoder),\n components: optional(ioConnectHomeComponentsDecoder),\n settings: optional(ioConnectHomeSettingsDecoder),\n});\n","import { useMemo } from \"react\";\nimport { Auth0Provider } from \"@auth0/auth0-react\";\nimport { usePlatformWindow } from \"../../hooks\";\nimport { SimpleLoginHome } from \"./simple-login-home\";\nimport { Auth0LoginHome } from \"./auth0-login-home\";\nimport { NoLoginHome } from \"./no-login-home\";\nimport { Auth0LoginConfig, CustomLoginConfig, IOConnectHomeConfig, IOConnectHomeProps, SimpleLoginConfig } from \"./types\";\nimport { ioConnectHomeConfigDecoder } from \"../../decoders/config\";\n\nexport const HomeApp = ({ config }: IOConnectHomeProps) => {\n const validatedConfig = useMemo(() => ioConnectHomeConfigDecoder.runWithException(config), [config]);\n const loginConfig = validatedConfig.login;\n\n const { isPlatformWindow } = usePlatformWindow();\n\n if (!loginConfig || !isPlatformWindow) {\n const { login, ...config } = validatedConfig;\n\n return <NoLoginHome config={config} />;\n }\n\n if (loginConfig.type === \"custom\") {\n return <NoLoginHome config={validatedConfig as IOConnectHomeConfig & { login: CustomLoginConfig }} />;\n }\n\n if (loginConfig.type === \"simple\") {\n return <SimpleLoginHome config={validatedConfig as IOConnectHomeConfig & { login: SimpleLoginConfig }} />;\n }\n\n const { providerOptions } = loginConfig;\n\n return (\n <Auth0Provider\n {...providerOptions}\n authorizationParams={{\n ...providerOptions.authorizationParams,\n redirect_uri: providerOptions.authorizationParams?.redirect_uri ?? window.location.origin,\n }}\n >\n <Auth0LoginHome config={validatedConfig as IOConnectHomeConfig & { login: Auth0LoginConfig }} />\n </Auth0Provider>\n );\n};\n","import { IOConnectHomeProvider } from \"../io-connect-home-provider/io-connect-home-provider\";\nimport { HomeApp } from \"./home-app\";\nimport { IOConnectHomeProps } from \"./types\";\nimport \"@interopio/theme\";\n\nexport const IOConnectHome = ({ config }: IOConnectHomeProps) => {\n return (\n <IOConnectHomeProvider>\n <HomeApp config={config} />\n </IOConnectHomeProvider>\n );\n};\n"],"names":["y","e","w","b","t","o","i","n","r","k","C","N","a","s","c","l","u","d","f","m","x","S","D","E","I","A","h","p","g","M","T","P","_","O","v","L","F","B","R","j","_a","_b","H","z","$","V","Y","U","W","J","q","G","Q","ee","X","Z","te","ne","ie","oe","ue","re","ae","se","ce","le","de","fe","me","he","pe","ge","ve","ye","we","Ce","be","ke","Ne","xe","Se","De","Ee","Ie","Ae","Me","Te","Pe","_e","Oe","Le","Fe","Be","Re","je","He","ze","$e","Ve","Ye","Ue","We","Je","qe","Ke","Ge","Qe","Xe","Ze","et","tt","nt","it","ot","rt","at","st","ct","lt","ut","dt","ft","mt","ht","pt","gt","vt","yt","wt","bt","kt","Ct","Nt","xt","St","Dt","Et","It","At","Mt","Tt","Pt","_t","Ot","Lt","Ft","Bt","Rt","jt","Ht","zt","$t","Vt","Yt","Ut","Wt","Jt","qt","Kt","Gt","Qt","Xt","Zt","en","nn","tn","an","on","rn","sn","cn","ln","un","dn","fn","mn","hn","pn","gn","vn","yn","wn","bn","kn","Cn","Nn","xn","Sn","Dn","En","In","An","Mn","Tn","Pn","_n","On","Ln","Fn","Bn","Rn","jn","Hn","zn","$n","Vn","Yn","Un","Wn","Jn","qn","Kn","Gn","Qn","Xn","Zn","ei","ti","ni","ii","oi","ri","ai","si","ci","li","ui","di","fi","mi","hi","pi","gi","K","vi","yi","wi","bi","ki","Ci","Ni","xi","Si","Di","Ei","Ii","Ai","Mi","Ti","Pi","_i","Oi","Li","Fi","Bi","Ri","zi","Vi","Ui","Ji","qi","Qi","Xi","Zi","eo","to","no","io","oo","ro","ao","so","co","lo","uo","fo","mo","ho","po","go","vo","yo","wo","bo","ko","Co","No","xo","So","Do","Eo","Io","Ao","Mo","To","Po","_o","Oo","Lo","Fo","Bo","Ro","jo","Ho","zo","$o","Vo","Yo","Uo","Wo","Jo","qo","Ko","Go","Qo","Xo","Zo","er","tr","nr","ir","or","rr","ar","sr","cr","lr","ur","dr","fr","mr","hr","pr","gr","vr","yr","wr","br","kr","Cr","Nr","xr","__publicField","_c","_d","Sr","Dr","Er","Ir","Ar","Mr","Tr","Pr","_r","Or","Lr","Fr","Br","Rr","jr","Hr","zr","$r","Vr","Yr","Xr","Wr","qr","Jr","Kr","Gr","Qr","ea","Ur","Zr","ta","na","ia","oa","ra","aa","sa","ba","Ya","Ca","Na","xa","Sa","Da","Ea","Ia","Aa","Ma","Ta","Pa","Oa","La","Fa","Ba","Ra","ja","Ha","za","$a","Va","Ja","qa","Ga","Qa","Xa","Za","vs","es","ts","ns","is","os","rs","as","ss","cs","ls","us","ds","fs","ms","hs","ps","gs","bs","lc","ks","_f","_g","Cs","Ns","xs","Ss","Ds","Es","Is","As","Ms","Ts","Ps","_s","Os","Ls","Fs","Bs","Rs","js","Hs","zs","$s","Vs","Ys","Us","Ws","Js","qs","Ks","Gs","Qs","Xs","Zs","ec","tc","nc","ic","oc","rc","_h","_j","_l","_k","_m","_p","ac","sc","cc","uc","dc","fc","mc","hc","pc","Zc","gc","vc","yc","wc","bc","kc","Cc","Nc","xc","Sc","Dc","Vc","Ec","Ic","Ac","Mc","Tc","Pc","Oc","Lc","Fc","Bc","Rc","jc","Hc","zc","$c","Yc","Uc","Wc","Jc","qc","Kc","Gc","Qc","Xc","el","tl","nl","rl","il","ol","al","sl","cl","ll","Cu","ul","dl","fl","ml","hl","pl","gl","vl","yl","wl","bl","kl","Cl","Nl","xl","Sl","Dl","El","Il","Al","Ml","Tl","Pl","Ol","Ll","Fl","Bl","Rl","jl","Hl","zl","$l","Vl","Yl","Ul","Wl","Jl","ql","Kl","Gl","Ql","Xl","Zl","eu","tu","nu","iu","ou","au","ru","su","cu","lu","uu","du","fu","mu","hu","pu","gu","vu","yu","wu","bu","ku","Nu","Du","Pu","Eu","Iu","Au","Mu","Tu","_u","Ou","ju","Hu","zu","$u","Vu","Yu","Uu","Wu","Ju","qu","Ku","Gu","Qu","Xu","Zu","ed","td","nd","id","od","rd","ad","cd","isSection","item","ITEM_TYPES","extractErrorMessage","error","checkIsDesktop","APPLICATION_ACTION_NAMES","APPLICATION_ACTIONS","WORKSPACE_ACTION_NAMES","WORKSPACE_ACTIONS","SORT_ORDER","collator","ascendingTitleCompare","descendingTitleCompare","sortItems","config","items","sortOrder","ascendingCompare","descendingCompare","compareFunction","DEFAULT_SECTION_IDS","generateItems","newItem","path","settings","isFolderCollapsible","separator","currentFolder","nestedFolders","sectionIndex","section","generateFullPath","application","title","userProperties","folder","ascendingApplicationsCompare","descendingApplicationsCompare","getApplicationsSectionConfig","applications","runningInstances","isSectionCollapsible","reactIs_production_min","hasSymbol","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_PROVIDER_TYPE","REACT_CONTEXT_TYPE","REACT_ASYNC_MODE_TYPE","REACT_CONCURRENT_MODE_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_BLOCK_TYPE","REACT_FUNDAMENTAL_TYPE","REACT_RESPONDER_TYPE","REACT_SCOPE_TYPE","isValidElementType","type","typeOf","object","$$typeof","$$typeofType","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","ForwardRef","Fragment","Lazy","Memo","Portal","Profiler","StrictMode","Suspense","hasWarnedAboutDeprecatedIsAsyncMode","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","reactIs_development","reactIsModule","require$$0","require$$1","getOwnPropertySymbols","hasOwnProperty","propIsEnumerable","toObject","val","shouldUseNative","test1","test2","order2","test3","letter","objectAssign","target","source","from","symbols","key","ReactPropTypesSecret","ReactPropTypesSecret_1","has","printWarning","loggedTypeFailures","text","message","checkPropTypes","typeSpecs","values","location","componentName","getStack","typeSpecName","err","ex","stack","checkPropTypes_1","ReactIs","assign","require$$2","require$$3","require$$4","emptyFunctionThatReturnsNull","factoryWithTypeCheckers","isValidElement","throwOnDirectAccess","ITERATOR_SYMBOL","FAUX_ITERATOR_SYMBOL","getIteratorFn","maybeIterable","iteratorFn","ANONYMOUS","ReactPropTypes","createPrimitiveTypeChecker","createAnyTypeChecker","createArrayOfTypeChecker","createElementTypeChecker","createElementTypeTypeChecker","createInstanceTypeChecker","createNodeChecker","createObjectOfTypeChecker","createEnumTypeChecker","createUnionTypeChecker","createShapeTypeChecker","createStrictShapeTypeChecker","PropTypeError","data","createChainableTypeChecker","validate","manualPropTypeCallCache","manualPropTypeWarningCount","checkType","isRequired","props","propName","propFullName","secret","cacheKey","chainedCheckType","expectedType","propValue","propType","getPropType","preciseType","getPreciseType","typeChecker","expectedClass","expectedClassName","actualClassName","getClassName","expectedValues","valuesString","value","arrayOfTypeCheckers","checker","getPostfixForTypeWarning","expectedTypes","checkerResult","expectedTypesMessage","isNode","invalidValidatorError","shapeTypes","allKeys","iterator","step","entry","isSymbol","emptyFunction","emptyFunctionWithReset","factoryWithThrowingShims","shim","getShim","propTypesModule","hasOwn","classNames","classes","arg","appendClass","parseValue","newClass","module","_typeof","obj","globalCssModule","mapToCssModules","className","cssModule","omit","omitKeys","result","pick","keys","pickKeys","length","DOMElement","PropTypes","tagPropType","TransitionTimeouts","TransitionPropTypeKeys","TransitionStatuses","_excluded","_extends","ownKeys","enumerableOnly","sym","_objectSpread","_defineProperty","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","sourceKeys","propTypes","CloseButton","variant","innerRef","attributes","React","Button","onClick","useCallback","active","ariaLabel","block","close","_props$color","color","outline","size","_props$tag","Tag","btnOutlineColor","fromEntries","entries","acc","_ref","useIsomorphicLayoutEffect","top","bottom","right","left","auto","basePlacements","start","end","clippingParents","viewport","popper","reference","variationPlacements","placement","placements","beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite","modifierPhases","getNodeName","element","getWindow","node","ownerDocument","OwnElement","isHTMLElement","isShadowRoot","applyStyles","state","name","style","effect","_ref2","initialStyles","styleProperties","property","attribute","applyStyles$1","getBasePlacement","max","min","round","getUAString","uaData","isLayoutViewport","getBoundingClientRect","includeScale","isFixedStrategy","clientRect","scaleX","scaleY","visualViewport","addVisualOffsets","width","height","getLayoutRect","contains","parent","child","rootNode","next","getComputedStyle","isTableElement","getDocumentElement","getParentNode","getTrueOffsetParent","getContainingBlock","isFirefox","isIE","elementCss","currentNode","css","getOffsetParent","window","offsetParent","getMainAxisFromPlacement","within","mathMax","mathMin","withinMaxClamp","getFreshSideObject","mergePaddingObject","paddingObject","expandToHashMap","hashMap","toPaddingObject","padding","arrow","_state$modifiersData$","options","arrowElement","popperOffsets","basePlacement","axis","isVertical","len","arrowRect","minProp","maxProp","endDiff","startDiff","arrowOffsetParent","clientSize","centerToReference","center","offset","axisProp","_options$element","arrow$1","getVariation","unsetSides","roundOffsetsByDPR","win","dpr","mapToStyles","_Object$assign2","popperRect","variation","offsets","position","gpuAcceleration","adaptive","roundOffsets","isFixed","_offsets$x","_offsets$y","_ref3","hasX","hasY","sideX","sideY","heightProp","widthProp","offsetY","offsetX","commonStyles","_ref4","_Object$assign","computeStyles","_ref5","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","computeStyles$1","passive","instance","_options$scroll","scroll","_options$resize","resize","scrollParents","scrollParent","eventListeners","hash","getOppositePlacement","matched","getOppositeVariationPlacement","getWindowScroll","scrollLeft","scrollTop","getWindowScrollBarX","getViewportRect","strategy","html","layoutViewport","getDocumentRect","_element$ownerDocumen","winScroll","body","isScrollParent","_getComputedStyle","overflow","overflowX","overflowY","getScrollParent","listScrollParents","list","isBody","updatedList","rectToClientRect","rect","getInnerBoundingClientRect","getClientRectFromMixedType","clippingParent","getClippingParents","canEscapeClipping","clipperElement","getClippingRect","boundary","rootBoundary","mainClippingParents","firstClippingParent","clippingRect","accRect","computeOffsets","commonX","commonY","mainAxis","detectOverflow","_options","_options$placement","_options$strategy","_options$boundary","_options$rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","altContext","clippingClientRect","referenceClientRect","popperClientRect","elementClientRect","overflowOffsets","offsetData","multiply","computeAutoPlacement","flipVariations","_options$allowedAutoP","allowedAutoPlacements","allPlacements","allowedPlacements","overflows","getExpandedFallbackPlacements","oppositePlacement","flip","_options$mainAxis","checkMainAxis","_options$altAxis","checkAltAxis","specifiedFallbackPlacements","_options$flipVariatio","preferredPlacement","isBasePlacement","fallbackPlacements","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","mainVariationSide","altVariationSide","checks","check","numberOfChecks","_loop","fittingPlacement","_ret","flip$1","getSideOffsets","preventedOffsets","isAnySideFullyClipped","side","hide","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","hide$1","distanceAndSkiddingToXY","rects","invertDistance","skidding","distance","_options$offset","_data$state$placement","offset$1","popperOffsets$1","getAltAxis","preventOverflow","_options$tether","tether","_options$tetherOffset","tetherOffset","altAxis","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","_offsetModifierState$","mainSide","altSide","additive","minLen","maxLen","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","clientOffset","offsetModifierValue","tetherMin","tetherMax","preventedOffset","_offsetModifierState$2","_mainSide","_altSide","_offset","_len","_min","_max","isOriginSide","_offsetModifierValue","_tetherMin","_tetherMax","_preventedOffset","preventOverflow$1","getHTMLElementScroll","getNodeScroll","isElementScaled","getCompositeRect","elementOrVirtualElement","isOffsetParentAnElement","offsetParentIsScaled","documentElement","order","modifiers","map","visited","modifier","sort","requires","dep","depModifier","orderModifiers","orderedModifiers","phase","debounce","pending","resolve","mergeByName","merged","current","existing","DEFAULT_OPTIONS","areValidElements","args","_key","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","defaultOptions","effectCleanupFns","isDestroyed","setOptionsAction","cleanupModifierEffects","runModifierEffects","_state$elements","index","_state$orderedModifie","_state$orderedModifie2","_ref$options","cleanupFn","noopFn","createPopper","hasElementType","hasMap","hasSet","hasArrayBuffer","equal","reactFastCompare","EMPTY_MODIFIERS","usePopper","referenceElement","popperElement","prevOptions","optionsWithDefaults","_React$useState","setState","updateStateModifier","elements","ReactDOM","popperOptions","newOptions","isEqual","popperInstanceRef","defaultCreatePopper","popperInstance","ButtonGroup","vertical","_setPrototypeOf","_inheritsLoose","subClass","superClass","setPrototypeOf","config$1","timeoutsShape","TransitionGroupContext","forceReflow","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","Transition","_React$Component","context","_this","parentGroup","appear","initialStatus","prevState","nextIn","_proto","prevProps","nextStatus","status","timeout","exit","enter","mounting","_this2","appearing","maybeNode","maybeAppearing","timeouts","enterTimeout","_this3","nextState","callback","_this4","event","handler","doesNotHaveTimeoutOrListener","maybeNextCallback","_this$props","children","childProps","noop","Transition$1","_transitionStatusToCl","_classCallCheck","Constructor","_defineProperties","descriptor","_createClass","protoProps","staticProps","_inherits","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","Super","_getPrototypeOf","NewTarget","_possibleConstructorReturn","self","call","_assertThisInitialized","defaultProps","transitionStatusToClassHash","getTransitionClass","Collapse","_Component","_super","isAppearing","horizontal","isOpen","navbar","otherProps","dimension","transitionProps","collapseClass","Component","Collapse$1","BaseSectionHeader","showCollapseIcon","showFolderIcon","domProps","jsx","List","Icon","useApplications","setApplications","useState","useContext","IOConnectContext","useEffect","transformApp","app","caption","icon","unsubscribeOnAppAdded","addedApplication","prevApplications","unsubscribeOnAppChanged","changedApplication","unsubscribeOnAppRemoved","removedApplication","unsubscribeFns","unsubscribeFn","useApplicationsInstances","setRunningInstances","unsubscribeOnInstanceStarted","startedInstance","prevRunningInstances","appCurrentRunningInstances","unsubscribeOnInstanceStopped","stoppedInstance","instanceId","useBeforeunload","isDisabled","onBeforeunload","useFrameId","currentFrameId","setCurrentFrameId","frameId","getFrameId","HOME_ALERT_VARIANTS","HOME_ALERT_TTL","requestAlert","ioError","ioErrorMessage","alertConfig","handleOpenInNewWindow","handleOpenInNewWorkspace","builderConfig","builder","applicationActionExecutors","CONTEXT_MENU_ACTION_NAMES","useExecuteApplicationAction","actionName","DIALOG_TEMPLATE_NAMES","NON_EMPTY_STRING_REGEX_PATTERN","handleDelete","layout","showDeletePromptPref","updateShowDeletePromptPref","confirmButtonId","checkboxId","isEnterPressed","responseButtonClicked","inputs","input","handleRename","setDefaultLayout","inputId","newLayoutName","fullLayout","handleSave","handleSaveAs","setActiveLayout","handleSetAsDefault","handleRestore","closeLaunchpad","layoutActionExecutors","AUTH0_VALIDATION_ERROR_SESSION_STORAGE_KEY","USER_LOCAL_STORAGE_KEY","PLATFORM_WINDOW_SESSION_STORAGE_KEY","PLATFORM_SETUP_LOCAL_STORAGE_KEY","ACTIVE_LAYOUT_SESSION_STORAGE_KEY","ok","asPromise","withDefault","defaultValue","withException","map2","mapError","andThen","__assign","__rest","isJsonArray","json","isJsonObject","typeString","expectedGot","expected","got","printPath","paths","prependAt","newAt","rest","Decoder","decode","test","errorMessage","decoders","decoder","decodeValue_1","err$$1","arr","nth","bd","errors","errorsList","jsonAtPath","fixedValue","mkDecoder","string","number","boolean","anyJson","constant","array","optional","oneOf","fail","nonEmptyStringDecoder","nonNegativeNumberDecoder","num","functionCheck","propDescription","providedType","layoutStorageValueDecoder","DEFAULT_SYSTEM_LAYOUT","getGlobalLayoutWorkspaceNames","names","component","currentNames","workspace","checkShouldRenderSearchResults","searchTerm","useSetUpLayouts","setIsLayoutOperationBlocked","isGlobalLayoutsAvailable","defaultLayoutState","setDefaultLayoutState","activeLayout","useStorage","layoutsSetupInitiated","useRef","restoreLayout","useRestoreLayout","restoreWorkspace","useRestoreWorkspace","previous","defaultGlobalLayout","emptyWorkspace","defaultLayoutWorkspaceNames","workspaceName","LaunchpadAPIContext","createContext","useLaunchpadAPI","LaunchpadAPIProvider","isLayoutOperationBlocked","defaultLayout","launchpadAPI","useMemo","PLATFORM_PREFS_KEYS","useIsLaunchpadPinned","update","isLoading","usePlatformPref","toggle","useExecuteLayoutAction","isLaunchpadPinned","useExecuteLayoutOperationIfNotBlocked","ACTION_BUTTON_IDS","removeFavorite","handleCreateWorkspace","workspaceActionExecutors","Sequelizer","action","reject","operation","actionResult","res","useWorkspaces","workspaces","setWorkspaces","isUnsubscribed","unsubscribeOnSaved","unsubscribeOnRemoved","promise","sequelizer","useFavorites","favoritesInPrefs","favoritesToShow","favorite","toggleFavorite","openInstances","favorites","existingFavorite","useExecuteWorkspaceAction","useInvokeInteropMethod","method","useIsHomeLoaded","isHomeLoaded","setIsHomeLoaded","unsubscribe","undefined","LIBVERSION","EMPTY","UNKNOWN","FUNC_TYPE","UNDEF_TYPE","OBJ_TYPE","STR_TYPE","MAJOR","MODEL","NAME","TYPE","VENDOR","VERSION","ARCHITECTURE","CONSOLE","MOBILE","TABLET","SMARTTV","WEARABLE","EMBEDDED","UA_MAX_LENGTH","AMAZON","APPLE","ASUS","BLACKBERRY","BROWSER","CHROME","EDGE","FIREFOX","GOOGLE","HUAWEI","LG","MICROSOFT","MOTOROLA","OPERA","SAMSUNG","SHARP","SONY","XIAOMI","ZEBRA","FACEBOOK","CHROMIUM_OS","MAC_OS","extend","regexes","extensions","mergedRegexes","enumerize","enums","str1","str2","lowerize","str","majorize","version","trim","rgxMapper","ua","arrays","matches","match","regex","strMapper","oldSafariMap","windowsVersionMap","UAParser","_navigator","_ua","_uach","_rgxmap","_isSelfNav","_browser","_cpu","_device","_engine","_os","exports","parser","prop","this","uaParser","useUA","useBrowser","useIsRunningInDesktopContainer","useLayouts","layouts","setLayouts","isInitialized","setIsInitialized","unsubscribeOnAdded","addedLayout","removedLayout","unsubscribeOnRenamed","renamedLayout","renamedLayoutIndex","useNotifications","notifications","setNotifications","unsubscribeOnRaised","raisedNotification","unsubscribeOnClosed","closedNotification","notification","unsubscribeOnStateChanged","notificationIndex","useNotificationsConfiguration","configuration","setConfiguration","unsubscribeOnConfigurationChanged","newConfiguration","useOnIframeFocus","skip","listener","useOnOutsideClick","eventType","ref","platformWindowStorageValueDecoder","platformSetupStorageValueDecoder","storedValue","setStoredValue","customEventType","eventHandler","setValue","decoderResult","valueToStore","usePlatformWindow","platformWindow","setPlatformWindow","usePressedKeys","pressedKeys","setPressedKeys","onKeyDown","onKeyUp","onBlur","onSuccessfulLayoutRestore","MODIFIER_KEYS","reuseWorkspaceId","restoreOptions","useSearch","resultsToRender","setResultsToRender","setIsLoading","queryRef","ioSearch","currentResults","query","unsubscribeOnResults","response","queryResult","unsubscribeOnCompleted","unsubscribeOnError","useStartApplication","startDesktopApplication","startBrowserApplication","selectedWorkspace","outermostChild","useWorkspacesInstances","unsubscribeArr","unsubscribeOnAdd","workspaceId","updated","isClickKeypress","onClickA11y","clickHandler","keydownHandler","keyboardNavigation","currentIndex","moveFocus","onClose","ContextMenu","forwardRef","actions","onActionItemClick","itemRefs","focusedItemIndex","setFocusedItemIndex","newIndex","jsxs","itemText","prepend","ImageIcon","DropdownButton","buttonSize","iconSize","isTabStop","buttonVariant","shouldCloseOnOutsideScroll","shouldCloseOnWindowBlur","isContextMenuOpen","setIsContextMenuOpen","setReferenceElement","setPopperElement","referenceElementRef","popperElementRef","insideClickRefs","closeContextMenu","styles","handleIconClick","prevValue","handleActionItemClick","ButtonIcon","BaseSectionItem","isFavoritismEnabled","isFocused","liRef","areFavoritesLoading","description","iconSrc","tooltip","contextMenuActions","isFavorite","handleKeyDown","append","useCollapsedSections","toggleSection","collapsedSections","BaseSection","level","onItemClick","isCollapsible","pressedKey","liRefs","sectionItems","nonSectionItems","basePadding","paddingStep","toggleOpen","getItemName","getClickedItem","clickedItemName","buildItemsMapping","mapping","SectionContext","useSection","SectionProvider","clickData","setClickData","contextValue","Section","handleItemClick","params","selectedContextMenuActionName","clickedItem","ApplicationsSection","startApplication","executeApplicationAction","getFavoritesSectionConfig","sortedFavorites","FavoritesSection","LaunchpadButton","isMergeableObject","isNonNullObject","isSpecial","stringValue","isReactElement","canUseSymbol","emptyTarget","cloneUnlessOtherwiseSpecified","deepmerge","defaultArrayMerge","getMergeFunction","customMerge","getEnumerableOwnPropertySymbols","symbol","getKeys","propertyIsOnObject","propertyIsUnsafe","mergeObject","destination","sourceIsArray","targetIsArray","sourceAndTargetTypesMatch","prev","deepmerge_1","cjs","PERMISSION_NAMES","IS_GLOBAL_LAYOUT_SUPPORTED","DEFAULT_LAUNCHPAD_SETTINGS","LaunchpadHeader","LaunchpadPinButton","SearchBar","onSearch","onClear","Input","useGenerateLayoutFromId","useExecuteLayoutSearchResultAction","executeLayoutAction","generateLayoutFromId","executeLayoutOperationIfNotBlocked","useGetActionExecutor","executeWorkspaceAction","executeLayoutSearchResultAction","itemType","LAYOUT_ACTIONS_NAMES","createLayoutContextMenuActions","useSearchResultsSectionConfigs","results","searchResultsSections","SearchResults","invokeInteropMethod","getActionExecutor","configs","executeSelectedAction","execute","mainAction","contextMenuAction","idx","getWorkspacesSectionConfig","workspaceItems","WorkspacesSection","DEFAULT_SECTIONS","useIsLayoutsPanelOpen","SaveLayoutButton","layoutName","LayoutsDropdown","LayoutsList","handleLayoutClick","Pill","AllLayouts","allLayouts","ActiveLayout","CreateLayoutButton","handleCreateLayoutBtnClick","LayoutsPanel","footerRef","isLayoutsPanelOpen","setIsLayoutsPanelOpen","Separator","Title","useIsLaunchpadCollapsed","Launchpad","components","windowManagementPermissionState","launchpadSettings","deepMerge","showSearch","showHeader","sections","BeforeSearch","AfterSearch","setSearchTerm","searchInputRef","isLaunchpadCollapsed","setIsLaunchpadCollapsed","handleSearch","searchInputValue","handleClear","SearchResultsSection","placementId","WorkspaceComponentsContext","useWorkspaceComponentsContext","getPermissionStatuses","permissionNamesToQuery","permission","IOConnectHomeContext","useIOConnectHome","IOConnectHomeProvider","setPlatformSetup","permissionStatuses","setPermissionStatuses","statuses","accumulator","permissionStatus","isLoggingOut","setIsLoggingOut","login","unsubscribeFunctionsPromise","unsubscribeFunctions","isReloaded","changeListener","permissions","BrowserNotificationsIcon","PopupsIcon","PWAInstallIcon","WindowManagementIcon","StartFailedIcon","DEFAULT_SETTINGS","SETUP_STEPS_NAMES","WINDOW_MANAGEMENT_SETUP_STEP","NOTIFICATIONS_SETUP_STEP","POPUPS_SETUP_STEP","PWA_INSTALL_SETUP_STEP","SETUP_STEPS","INITIAL_STEP_STATUS","INITIAL_STEPS_STATUSES","LaunchpadPanel","launchpadComponents","PanelWrapper","Panel","pinned","PanelWithToggleButton","panelWrapperClassName","setIsOpen","wrapperRef","LaunchpadAccess","extendStatics","__extends","__","__awaiter","thisArg","_arguments","generator","adopt","fulfilled","rejected","__generator","verb","op","initialAuthState","stub","initialContext","Auth0Context","OAuthError","error_description","CODE_RE","STATE_RE","ERROR_RE","hasAuthParams","searchParams","normalizeErrorFn","fallbackMessage","loginError","tokenError","deprecateRedirectUri","reducer","toAuth0ClientOptions","opts","defaultOnRedirectCallback","appState","Auth0Provider","skipRedirectCallback","onRedirectCallback","clientOpts","client","useReducer","dispatch","didInitialise","handleError","user","error_1","loginWithRedirect","loginWithPopup","error_2","logout","getAccessTokenSilently","token","error_3","getAccessTokenWithPopup","error_4","getIdTokenClaims","handleRedirectCallback","url","error_5","useAuth0","InfoPageContainer","Logo","LOGO_WIDTH","LoginLogo","logoSrc","Spinner","SystemLoader","InfoCard","heading","Image","SetupStepsList","activeStepName","showWarnIcon","stepsStatuses","label","isActive","promptIcon","useEdgeNotificationsPermission","edgeNotificationsPermissionTimeout","isNotificationsPermissionPromptOpen","browserName","hasEdgeNotificationsPermissionError","setHasEdgeNotificationsPermissionError","timerId","setupStepsReducer","stepsState","payload","handleWindowManagement","handleDeferredStep","handleOperationComplete","handleNotifications","handlePopups","dispatchAction","windowFeatures","windowOne","windowTwo","popupsBlocked","handleWPAInstall","setupStepsActionExecutors","SetupSteps","areAdditionalInstructionsShown","setAreAdditionalInstructionsShown","areButtonsDisabled","setAreButtonsDisabled","currentStep","currentStepName","finalStepName","handleActionButtonClick","handleSkipButtonClick","PlatformSetup","Loader","IOInitErrorScreen","helpCenterURL","LoginHeading","LoginPageContainer","Auth0LoginPage","onLogin","validationError","Heading","Alert","inputReducer","isValid","SimpleLoginForm","setLoginError","userInputName","dispatchUser","password","dispatchPassword","showUserError","setShowUserError","showPasswordError","setShowPasswordError","isUserValid","isPasswordValid","isFormValid","handleUserChange","handlePasswordChange","handleUserBlur","handlePasswordBlur","SimpleLoginPage","useAddWindowButtonVisible","groupId","visible","setVisible","groupLockConfigUnsubscribe","group","showAddWindowButton","AfterTabs","showPopup","bounds","showAddApplicationPopup","AddWindowButton","HeaderButtons","DefaultGroupHeaderButtons","NoLogo","NotificationSettingsPanel","NotificationsProvider","NotificationsPanelProvider","SettingsPanel","IONotifications","PreferencesPanel","IOPreferencesBrowser","ProfilePanel","onLogout","handleLogout","flushSync","IOProfile","defaultSystemMenuActions","openPanel","createPanelComponent","SystemMenuPanel","SystemMenu","setPanel","panelWrapperRef","closePanel","isPanelOpen","__event","foundAction","DefaultHeaderSystemMenu","NotificationsBadge","showNotificationBadge","activeNotificationsCount","NotificationsPanelButton","NotificationsPanel","NotificationsPanelWithToggleButton","handleNotificationsPanelClose","DefaultHeaderSystemButtons","HomeAppWorkspace","launchpad","isBeforeunloadDialogEnabled","LogoComponent","SystemButtonsComponent","isInitialSetupCompleted","usePlatformPrefs","isPlatform","HeaderSystemButtons","Workspaces","userDecoder","SimpleLoginHome","setupFlow","loginConfig","getIOConnectConfig","setUser","platformSetup","initError","setInitError","isRunningInDesktopContainer","ErrorScreen","handleLogin","authenticatedUser","IOConnectProvider","PlatformPrefsProvider","auth0ValidationErrorDecoder","useUser","validateUser","auth0","setToken","setValidationError","validationResult","isFetchingUserWithToken","AUTH0_LOGIN_TYPES","Auth0LoginHome","NoLoginHome","isPlatformWindow","loginPageComponentsDecoder","loginTypeDecoder","auth0LoginConfigDecoder","simpleLoginConfigDecoder","customUserDecoder","customLoginConfigDecoder","loginConfigDecoder","setupFlowSettingsDecoder","setupFlowComponentsDecoder","setupFlowConfigDecoder","workspacesConfigDecoder","launchpadHeaderComponentsDecoder","launchpadSectionDecoder","launchpadComponentsDecoder","launchpadHeaderSettingsDecoder","launchpadSettingsDecoder","launchpadConfigDecoder","ioConnectHomeComponentsDecoder","ioConnectHomeSettingsDecoder","ioConnectHomeConfigDecoder","HomeApp","validatedConfig","providerOptions","IOConnectHome"],"mappings":";;;;;;;;;;AAA4Z,SAASA,GAAEC,GAAE;AAAC,SAAOA,KAAGA,EAAE,cAAY,OAAO,UAAU,eAAe,KAAKA,GAAE,SAAS,IAAEA,EAAE,UAAQA;AAAC;AAAC,IAAIC,IAAEC,KAAE,EAAC,SAAQ,CAAA,EAAE;AACnhB;AAAA;AAAA;AAAA;AAAA;AAIED,KAAEC,IAAE,WAAU;AAAC,MAAIF,IAAE,CAAA,EAAG;AAAe,WAASG,IAAG;AAAC,aAAQH,IAAE,IAAGG,IAAE,GAAEA,IAAE,UAAU,QAAOA,KAAI;AAAC,UAAIC,IAAE,UAAUD,CAAC;AAAE,MAAAC,MAAIJ,IAAEK,EAAEL,GAAEM,EAAEF,CAAC,CAAC;AAAA,IAAE;AAAC,WAAOJ;AAAA,EAAC;AAAC,WAASM,EAAEA,GAAE;AAAC,QAAa,OAAOA,KAAjB,YAA8B,OAAOA,KAAjB;AAAmB,aAAOA;AAAE,QAAa,OAAOA,KAAjB;AAAmB,aAAM;AAAG,QAAG,MAAM,QAAQA,CAAC;AAAE,aAAOH,EAAE,MAAM,MAAKG,CAAC;AAAE,QAAGA,EAAE,aAAW,OAAO,UAAU,YAAU,CAACA,EAAE,SAAS,SAAQ,EAAG,SAAS,eAAe;AAAE,aAAOA,EAAE,SAAU;AAAC,QAAIF,IAAE;AAAG,aAAQG,KAAKD;AAAE,MAAAN,EAAE,KAAKM,GAAEC,CAAC,KAAGD,EAAEC,CAAC,MAAIH,IAAEC,EAAED,GAAEG,CAAC;AAAG,WAAOH;AAAA,EAAC;AAAC,WAASC,EAAEL,GAAEG,GAAE;AAAC,WAAOA,IAAEH,IAAEA,IAAE,MAAIG,IAAEH,IAAEG,IAAEH;AAAA,EAAC;AAACC,EAAAA,GAAE,WAASE,EAAE,UAAQA,GAAEF,GAAE,UAAQE,KAAG,OAAO,aAAWA;AAAC,EAAC;AAAG,IAAIK,IAAET,GAAEG,GAAE,OAAO;AAAE,SAASO,GAAE,EAAC,WAAU,GAAE,MAAK,IAAE,MAAK,SAAQJ,IAAE,aAAY,GAAG,EAAC,GAAE;AAAC,QAAM,IAAEG,EAAE,QAAO,KAAG,CAAC,aAAa,CAAC,EAAE,GAAE,CAAC;AAAE,SAAOR,EAAE,QAAO,EAAC,WAAU,GAAE,GAAG,GAAE,UAASA,EAAE,KAAI,EAAC,WAAU,QAAQK,CAAC,GAAE,CAAC,EAAC,CAAC;AAAC;AAAC,MAAMK,KAAEN,GAAG,CAAC,EAAC,WAAU,GAAE,SAAQ,IAAE,WAAU,MAAKC,IAAE,aAAY,MAAK,IAAE,MAAK,UAASM,IAAE,MAAK,SAAQC,GAAE,UAASC,GAAE,UAASC,GAAE,GAAGC,EAAC,GAAEC,MAAI;AAAC,QAAMC,IAAET,EAAE,eAA0B,MAAZ,aAAe,CAAC,eAAe,CAAC,EAAE,GAAE,CAAC,oBAAoB,CAAC,EAAE,GAAE,CAAC,GAAEU,IAAEX,GAAG,CAAAP,MAAG;AAAC,QAAG,CAACa;AAAE,aAAOD,IAAEA,EAAEZ,CAAC,IAAE;AAAO,IAAAA,EAAE;EAAgB,GAAG,CAACY,GAAEC,CAAC,CAAC;AAAE,SAAOb,EAAE,UAAS,EAAC,WAAUiB,GAAE,MAAK,UAAS,KAAID,GAAE,cAAa,UAAS,SAAQE,GAAE,UAASL,GAAE,GAAGE,GAAE,UAASD,MAAIT,KAAGL,EAAES,IAAE,EAAC,SAAQJ,GAAE,MAAKM,EAAC,CAAC,GAAE,CAAC;AAAC,CAAG;AAACD,GAAE,cAAY;AAAa,MAAMS,KAAE,EAAC,SAAQ,QAAO,MAAK,QAAO,SAAQ,eAAc,SAAQ,oBAAmB,UAAS,mBAAkB;AAAE,SAASC,GAAE,EAAC,WAAUd,GAAE,SAAQD,IAAE,WAAU,MAAKD,IAAE,UAAS,MAAKG,GAAE,OAAMI,IAAE,IAAG,oBAAmBC,GAAE,QAAOC,GAAE,GAAGC,EAAC,GAAE;AAAC,QAAMC,IAAEP,EAAE,YAAW,YAAYH,CAAC,IAAaD,MAAV,WAAa,eAAcE,CAAC,GAAEU,IAAEG,GAAEd,CAAC;AAAE,SAAOF,EAAE,OAAM,EAAC,eAAc,YAAW,WAAUY,GAAE,GAAGD,GAAE,UAAS,CAACE,KAAGhB,EAAES,IAAE,EAAC,eAAc,iBAAgB,SAAQO,GAAE,WAAU,gBAAe,CAAC,GAAET,KAAGP,EAAE,KAAI,EAAC,eAAc,iBAAgB,WAAU,mBAAkB,UAASO,EAAC,CAAC,GAAYH,MAAV,WAAaS,GAAEF,KAAGX,EAAEU,IAAE,EAAC,eAAc,yBAAwB,WAAU,WAAU,MAAK,MAAK,UAAS,MAAK,MAAK,SAAQ,SAAQE,EAAC,CAAC,CAAC,EAAC,CAAC;AAAC;AAAC,SAASS,GAAE,EAAC,WAAU,GAAE,SAAQ,IAAE,WAAU,UAAShB,GAAE,GAAG,EAAC,GAAE;AAAC,QAAM,IAAEG,EAAE,YAAuB,MAAZ,aAAe,CAAC,YAAY,CAAC,EAAE,GAAE,CAAC;AAAE,SAAOR,EAAE,OAAM,EAAC,WAAU,GAAE,GAAG,GAAE,UAASK,EAAC,CAAC;AAAC;AAAC,SAASiB,GAAE,EAAC,WAAU,GAAE,KAAI,IAAE,MAAK,MAAKjB,IAAE,UAAS,MAAK,IAAE,SAAQ,GAAG,EAAC,GAAE;AAAC,QAAMM,IAAE,GAAEC,IAAEJ,EAAYH,MAAV,WAAa,qBAA+BA,MAAX,YAAc,YAAqBA,MAAV,WAAa,kBAAiB,CAAC;AAAE,SAAOL,EAAEW,GAAE,EAAC,WAAUC,GAAE,GAAG,GAAE,UAAS,EAAC,CAAC;AAAC;AAAC,SAASW,GAAE,EAAC,WAAUjB,GAAE,OAAMD,GAAE,WAAUD,IAAE,UAAS,KAAIG,GAAE,MAAKI,GAAE,UAASC,GAAE,GAAGC,EAAC,GAAE;AAAC,QAAMC,IAAEN,EAAE,YAAWF,CAAC;AAAE,SAAOH,EAAE,OAAM,EAAC,WAAUW,GAAE,GAAGD,GAAE,UAAS,CAACR,KAAGL,EAAEsB,IAAE,EAAC,KAAIf,GAAE,MAAKF,GAAE,MAAKD,EAAC,CAAC,GAAEQ,GAAED,KAAGX,EAAE,KAAI,EAAC,WAAU,mBAAkB,UAASW,EAAC,CAAC,CAAC,EAAC,CAAC;AAAC;AAAC,MAAMa,KAAEpB,GAAG,CAAC,EAAC,WAAUE,GAAE,SAAQD,IAAE,WAAU,MAAKD,IAAE,UAAS,MAAKO,GAAE,UAASC,IAAE,MAAK,WAAUC,IAAE,IAAG,MAAKC,GAAE,SAAQC,GAAE,UAASC,GAAE,UAASC,GAAE,GAAGC,EAAC,GAAEO,MAAI;AAAC,QAAMC,IAAElB,EAAE,WAAsBH,MAAZ,aAA4BA,MAAb,cAA4BA,MAAZ,aAAwBA,MAAT,WAAa,CAAC,UAAUA,CAAC,EAAE,GAAYD,MAAV,WAAa,aAAYE,CAAC,GAAEqB,IAAEpB,GAAG,CAAAP,MAAG;AAAC,QAAG,CAACgB;AAAE,aAAOD,IAAEA,EAAEf,CAAC,IAAE;AAAO,IAAAA,EAAE,eAAgB;AAAA,EAAA,GAAG,CAACe,GAAEC,CAAC,CAAC;AAAE,SAAOb,EAAE,UAAS,EAAC,WAAUuB,GAAE,KAAID,GAAE,MAAK,UAAS,cAAa,UAAS,SAAQE,GAAE,UAASX,GAAE,UAAS,GAAE,GAAGE,GAAE,UAAS,CAACP,KAAG,CAACE,KAAGb,EAAES,IAAE,EAAC,SAAQE,GAAE,MAAKC,EAAC,CAAC,GAAEK,KAAGH,GAAEH,KAAGE,KAAGb,EAAES,IAAE,EAAC,SAAQE,GAAE,MAAKC,EAAC,CAAC,CAAC,EAAC,CAAC;AAAC,CAAG;AAACY,GAAE,cAAY;AAAS,MAAMI,KAAEjB,GAAE,CAAE,CAAA,GAAQkB,KAAEzB,GAAG,CAAC,EAAC,MAAK,IAAE,MAAK,GAAG,EAAC,GAAEC,MAAI;AAAC,QAAK,EAAC,YAAW,GAAE,UAASM,EAAC,IAAEC,GAAEgB,EAAC,GAAEf,IAAEN,GAAG,MAAI;AAAC,SAAG,EAAG;AAAA,EAAA,GAAG,CAAC,CAAC,CAAC;AAAE,SAAOP,EAAEU,IAAE,EAAC,KAAIL,GAAE,MAAK,GAAE,SAAQQ,GAAE,UAASF,GAAE,GAAG,EAAC,CAAC;AAAC,CAAG;AAAC,SAASmB,GAAE,EAAC,WAAU,GAAE,GAAG,EAAC,GAAE;AAAC,QAAK,EAAC,YAAWzB,EAAC,IAAEO,GAAEgB,EAAC,GAAE,IAAEpB,EAAE,uBAAsB,CAAC,GAAEG,IAAEJ,GAAG,CAAAP,MAAG;AAAC,IAAAA,EAAE,gBAAiB,GAACK,KAAGA,EAAG;AAAA,EAAA,GAAG,CAACA,CAAC,CAAC;AAAE,SAAOL,EAAE,OAAM,EAAC,WAAU,GAAE,MAAK,UAAS,SAAQW,GAAE,GAAG,EAAC,CAAC;AAAC;AAACkB,GAAE,cAAY;AAAqB,MAAME,KAAEpB,GAAE,EAAE,GAAEqB,KAAE5B,GAAG,CAACE,GAAED,MAAI;AAAC,QAAK,EAAC,WAAUD,GAAE,SAAQG,GAAE,QAAOI,GAAE,YAAWE,GAAE,SAAQC,GAAE,aAAYC,GAAE,UAASC,IAAE,IAAG,UAASC,GAAE,SAAQC,GAAE,GAAGO,EAAC,IAAEnB,GAAE,EAAC,SAAQoB,IAAE,WAAU,UAASC,GAAE,WAAUM,GAAE,iBAAgBlC,EAAC,IAAEa,GAAEmB,EAAC,GAAE9B,IAAEY,MAAGc,KAAA,gBAAAA,EAAG,KAAM,CAAA3B,MAAGA,EAAE,aAAWiB,KAAIf,IAAcwB,MAAZ,aAAe,CAAC,CAACO,GAAEvB,IAAER,KAAGK,GAAEY,IAAEX,EAAE,gBAAeE,KAAG,qBAAoBC,KAAG,sBAAiCe,MAAZ,aAAezB,KAAG,YAAWc,KAAG,4BAA2BC,KAAG,yBAAwBZ,CAAC;AAAE,SAAOD,EAAE,MAAK,EAAC,WAAUgB,GAAE,KAAId,GAAE,MAAK,YAAW,wBAAuB,YAAW,UAAS,GAAE,SAAQ,CAAAL,MAAG;AAAC,IAAAgB,IAAEhB,EAAE,eAAgB,KAAED,KAAA,QAAAA,EAAIC,GAAE,EAAC,UAASiB,EAAC,IAAGH,KAAA,QAAAA,EAAId;AAAA,EAAG,GAAE,GAAGyB,GAAE,UAAS,CAACf,KAAGP,EAAE,OAAM,EAAC,WAAU,uBAAsB,UAAS,CAACD,KAAGF,EAAES,IAAE,EAAC,SAAQwB,EAAE,SAAQ,OAAMhC,IAAEgC,EAAE,UAAQ,OAAM,CAAC,GAAE1B,CAAC,EAAC,CAAC,GAAEP,EAAE,QAAO,EAAC,WAAU,gBAAe,OAAMkB,GAAE,UAASD,EAAC,CAAC,GAAEN,KAAGX,EAAE,OAAM,EAAC,WAAU,wBAAuB,UAASW,EAAC,CAAC,GAAEI,KAAGf,EAAE,OAAM,EAAC,WAAU,4BAA2B,UAASe,EAAC,CAAC,CAAC,EAAC,CAAC;AAAC,CAAC;AAAGiB,GAAE,cAAY;AAAW,MAAME,KAAE9B,GAAG,CAAC,EAAC,WAAUE,GAAE,SAAQD,GAAE,QAAOD,GAAE,UAASG,GAAE,SAAQI,GAAE,GAAGC,EAAC,GAAEC,MAAI;AAAC,QAAMC,IAAEN,EAAE,gBAAeH,KAAG,qBAAoBD,KAAG,sBAAqB,sBAAqBE,CAAC;AAAE,SAAOH,EAAE,MAAK,EAAC,WAAUW,GAAE,KAAID,GAAE,GAAGD,GAAE,UAAS,CAACP,KAAGL,EAAE,OAAM,EAAC,WAAU,uBAAsB,UAASK,EAAC,CAAC,GAAEL,EAAE,QAAO,EAAC,WAAU,gBAAe,OAAMW,GAAE,UAASJ,EAAC,CAAC,GAAEH,KAAGJ,EAAE,OAAM,EAAC,WAAU,wBAAuB,UAASI,EAAC,CAAC,CAAC,EAAC,CAAC;AAAC,CAAC;AAAG8B,GAAE,cAAY;AAAgB,MAAMC,KAAE/B,GAAG,CAAC,EAAC,WAAUE,GAAE,SAAQD,GAAE,QAAOD,GAAE,UAASG,GAAE,SAAQI,GAAE,GAAGC,EAAC,GAAEC,MAAI;AAAC,QAAMC,IAAEN,EAAE,gBAAeH,KAAG,qBAAoBD,KAAG,sBAAqB,wBAAuBE,CAAC;AAAE,SAAOH,EAAE,MAAK,EAAC,WAAUW,GAAE,KAAID,GAAE,GAAGD,GAAE,UAAS,CAACP,KAAGL,EAAE,OAAM,EAAC,WAAU,uBAAsB,UAASK,EAAC,CAAC,GAAEL,EAAE,QAAO,EAAC,WAAU,gBAAe,OAAMW,GAAE,UAASJ,EAAC,CAAC,GAAEH,KAAGJ,EAAE,OAAM,EAAC,WAAU,wBAAuB,UAASI,EAAC,CAAC,CAAC,EAAC,CAAC;AAAC;AAAI+B,GAAE,cAAY;AAAkB,MAAMC,KAAEhC,GAAG,CAAC,EAAC,WAAUE,GAAE,SAAQD,GAAE,QAAOD,GAAE,UAASG,GAAE,SAAQI,GAAE,GAAGC,EAAC,GAAEC,MAAI;AAAC,QAAMC,IAAEN,EAAE,uBAAsBF,CAAC;AAAE,SAAOH,EAAE,OAAM,EAAC,WAAUW,GAAE,KAAID,GAAE,GAAGD,GAAE,UAAS,CAACP,KAAGL,EAAE,OAAM,EAAC,WAAU,uBAAsB,UAASK,EAAC,CAAC,GAAEL,EAAE,QAAO,EAAC,WAAU,gBAAe,OAAMW,GAAE,UAASJ,EAAC,CAAC,GAAEH,KAAGJ,EAAE,OAAM,EAAC,WAAU,wBAAuB,UAASI,EAAC,CAAC,CAAC,EAAC,CAAC;AAAC;AAAIgC,GAAE,cAAY;AAAiB,MAAMC,KAAEjC,GAAG,CAAC,EAAC,WAAU,GAAE,UAAS,GAAE,GAAGC,EAAC,GAAE,MAAI;AAAC,QAAM,IAAEG,EAAE,gBAAe,0BAAyB,CAAC;AAAE,SAAOR,EAAE,MAAK,EAAC,WAAU,GAAE,KAAI,GAAE,GAAGK,GAAE,UAAS,EAAC,CAAC;AAAC,CAAC;AAAGgC,GAAE,cAAY;AAAuB,MAAMC,KAAElC,GAAG,CAAC,GAAE,MAAI;AAAC,QAAK,EAAC,WAAUC,GAAE,SAAQ,IAAE,WAAU,WAAUM,GAAE,UAASC,GAAE,GAAGG,EAAC,IAAE,GAAE,CAACC,GAAEC,CAAC,IAAEJ,GAAE,CAAA,CAAE,GAAEK,IAAEV,EAAE,WAAsB,MAAZ,aAAe,sBAAqBH,CAAC,GAAEoB,IAAEX,GAAG,MAAI;AAAC,QAAGH;AAAE,aAAgB,OAAOA,KAAjB,WAAmBA,IAAE,EAAC,SAAQA,EAAC;AAAA,EAAC,GAAG,CAACA,CAAC,CAAC,GAAEe,IAAEnB,GAAG,CAACP,GAAEG,MAAI;AAAC,QAAe,MAAZ;AAAc;AAAO,UAAMG,IAAEU,EAAE,KAAM,CAAAhB,MAAC;;AAAE,eAAAuC,IAAAvC,EAAE,aAAF,gBAAAuC,EAAY,kBAAaC,IAAArC,EAAE,aAAF,gBAAAqC,EAAY;AAAA,KAAY;AAAC,IAAW,MAAX,WAAavB,EAAE,CAACd,CAAC,CAAC,KAAG,MAAI;AAAC,YAAMH,IAAEM,IAAEU,EAAE,OAAQ,CAAAhB,MAAGA,EAAE,aAAWG,EAAE,QAAQ,IAAG,CAAC,GAAGa,GAAEb,CAAC;AAAE,MAAAc,EAAEjB,CAAC;AAAA,IAAC,GAAI;AAAA,EAAA,GAAG,CAACgB,GAAE,CAAC,CAAC,GAAEW,IAAEb,GAAG,OAAK,EAAC,SAAQ,GAAE,UAASE,GAAE,WAAUS,GAAE,iBAAgBC,EAAC,IAAI,CAAC,GAAEV,GAAES,GAAEC,CAAC,CAAC;AAAE,SAAO1B,EAAE+B,GAAE,UAAS,EAAC,OAAMJ,GAAE,UAAS3B,EAAE,MAAK,EAAC,WAAUkB,GAAE,KAAI,GAAE,GAAGH,GAAE,UAASH,EAAC,CAAC,EAAC,CAAC;AAAC,CAAG;AAAC0B,GAAE,cAAY;AAAO,MAAMG,KAAEH;AAAE,SAASI,GAAE1C,GAAEG,GAAE;AAACY,EAAAA,GAAG,MAAI;AAAC,UAAMT,IAAE,CAAAA,MAAG;AAAC,MAAAN,EAAE,WAAS,CAACA,EAAE,QAAQ,SAASM,EAAE,MAAM,KAAGH,EAAG;AAAA,IAAA;AAAE,WAAO,SAAS,iBAAiB,aAAYG,CAAC,GAAE,MAAI;AAAC,eAAS,oBAAoB,aAAYA,CAAC;AAAA,IAAC;AAAA,EAAC,GAAG,CAACN,GAAEG,CAAC,CAAC;AAAC;AAAC,SAASwC,GAAE,EAAC,WAAU,GAAE,SAAQ,IAAE,WAAU,OAAMtC,IAAE,QAAO,UAAS,GAAE,UAASM,GAAE,GAAGC,EAAC,GAAE;AAAC,QAAK,CAACG,GAAEE,CAAC,IAAEJ,GAAE,EAAE,GAAEK,IAAEF,GAAE,IAAI,GAAES,IAAEjB,EAAE,eAAcO,KAAG,oBAA+B,MAAZ,aAAe,CAAC,eAAe,CAAC,EAAE,GAAE,CAAC,GAAE,IAAER,GAAG,MAAI;AAAC,IAAAU,EAAE,CAACF,CAAC;AAAA,EAAC,GAAG,CAACA,CAAC,CAAC;AAAE2B,EAAAA,GAAExB,GAAEX,GAAG,MAAI;AAAC,IAAAU,EAAE,EAAE;AAAA,EAAC,GAAG,CAAA,CAAE,CAAC;AAAE,QAAMU,IAAEb,GAAG,OAAK,EAAC,QAAOC,GAAE,YAAW,GAAE,SAAQ,GAAE,OAAMV,GAAE,UAAS,EAAC,IAAI,CAACU,GAAE,GAAE,GAAEV,GAAE,CAAC,CAAC;AAAE,SAAOL,EAAE4B,GAAE,UAAS,EAAC,OAAMD,GAAE,UAAS3B,EAAE,OAAM,EAAC,WAAUyB,GAAE,KAAIP,GAAE,GAAGN,GAAE,UAASD,EAAC,CAAC,EAAC,CAAC;AAAC;AAAC,SAASiC,GAAE,EAAC,WAAU,GAAE,SAAQ,IAAE,WAAU,OAAMvC,IAAE,QAAO,UAAS,GAAE,GAAG,EAAC,GAAE;AAAC,QAAMM,IAAEH,EAAE,gBAA0B,MAAX,YAAc,uBAAiC,MAAX,YAAc,uBAAoC,MAAd,eAAiB,0BAAmCH,MAAV,WAAa,sBAAqB,CAAC;AAAE,SAAOL,EAAE,OAAM,EAAC,WAAUW,GAAE,GAAG,GAAE,UAAS,EAAC,CAAC;AAAC;AAAC,SAASkC,GAAE,EAAC,WAAU,GAAE,WAAU,IAAE,IAAG,UAASxC,GAAE,GAAG,EAAC,GAAE;AAAC,QAAM,IAAEG,EAAE,aAAY,KAAG,CAAC,WAAW,GAAE,CAAC;AAAE,SAAOR,EAAE,UAAS,EAAC,WAAU,GAAE,OAAM,EAAC,SAAQ,QAAO,YAAW,UAAS,gBAAe,iBAAgB,KAAI,mBAAkB,GAAE,GAAG,GAAE,UAASK,EAAC,CAAC;AAAC;AAAC,SAASyC,GAAE,EAAC,WAAU,GAAE,UAAS,GAAE,GAAGzC,EAAC,GAAE;AAAC,QAAM,IAAEG,EAAE,oBAAmB,CAAC;AAAE,SAAOR,EAAE6C,IAAE,EAAC,eAAc,oBAAmB,WAAU,GAAE,GAAGxC,GAAE,UAAS,EAAC,CAAC;AAAC;AAAC,SAAS0C,GAAE,EAAC,WAAU,GAAE,UAAS,GAAE,GAAG1C,EAAC,GAAE;AAAC,QAAM,IAAEG,EAAE,kBAAiB,CAAC;AAAE,SAAOR,EAAE,OAAM,EAAC,eAAc,kBAAiB,WAAU,GAAE,GAAGK,GAAE,UAAS,EAAC,CAAC;AAAC;AAAC,SAAS2C,GAAE,EAAC,WAAU,GAAE,UAAS,GAAE,GAAG3C,EAAC,GAAE;AAAC,QAAM,IAAEG,EAAE,aAAY,CAAC;AAAE,SAAOR,EAAE,UAAS,EAAC,WAAU,GAAE,GAAGK,GAAE,UAAS,EAAC,CAAC;AAAC;AAAC,SAAS4C,GAAE,EAAC,WAAU,GAAE,GAAG,EAAC,GAAE;AAAC,QAAM5C,IAAEG,EAAE,oBAAmB,CAAC;AAAE,SAAOR,EAAEgD,IAAE,EAAC,eAAc,oBAAmB,WAAU3C,GAAE,GAAG,EAAC,CAAC;AAAC;AAAgxB,SAAS6C,KAAG;AAAC,SAAmB,OAAO,SAApB;AAA0B;AAAC,SAASC,GAAEnD,GAAE;AAAC,SAAOoD,GAAGpD,CAAC,KAAGA,EAAE,YAAU,IAAI,YAAW,IAAG;AAAW;AAAC,SAASqD,GAAErD,GAAE;AAAC,MAAIG;AAAE,UAAaH,KAAN,SAAgBG,IAAEH,EAAE,kBAAX,OAA0B,SAAOG,EAAE,gBAAc;AAAM;AAAC,SAASmD,GAAEtD,GAAE;AAAC,MAAIG;AAAE,UAAcA,KAAGiD,GAAGpD,CAAC,IAAEA,EAAE,gBAAcA,EAAE,aAAW,OAAO,aAApD,OAA8D,SAAOG,EAAE;AAAe;AAAC,SAASiD,GAAGpD,GAAE;AAAC,SAAM,CAAC,CAACkD,SAAMlD,aAAa,QAAMA,aAAaqD,GAAErD,CAAC,EAAE;AAAK;AAAC,SAASuD,GAAGvD,GAAE;AAAC,SAAM,CAAC,CAACkD,GAAG,MAAGlD,aAAa,WAASA,aAAaqD,GAAErD,CAAC,EAAE;AAAQ;AAAC,SAASwD,GAAGxD,GAAE;AAAC,SAAM,CAAC,CAACkD,GAAC,MAAKlD,aAAa,eAAaA,aAAaqD,GAAErD,CAAC,EAAE;AAAY;AAAC,SAASyD,GAAGzD,GAAE;AAAC,SAAM,EAAE,CAACkD,GAAC,KAAiB,OAAO,aAApB,SAAkClD,aAAa,cAAYA,aAAaqD,GAAErD,CAAC,EAAE;AAAW;AAAC,SAAS0D,GAAG1D,GAAE;AAAC,QAAK,EAAC,UAASG,GAAE,WAAUG,GAAE,WAAUD,GAAE,SAAQD,EAAC,IAAEuD,GAAG3D,CAAC;AAAE,SAAM,kCAAkC,KAAKG,IAAEE,IAAEC,CAAC,KAAG,CAAC,CAAC,UAAS,UAAU,EAAE,SAASF,CAAC;AAAC;AAAC,SAASwD,GAAG5D,GAAE;AAAC,SAAM,CAAC,SAAQ,MAAK,IAAI,EAAE,SAASmD,GAAEnD,CAAC,CAAC;AAAC;AAAC,SAAS6D,GAAG7D,GAAE;AAAC,SAAM,CAAC,iBAAgB,QAAQ,EAAE,KAAM,CAAAG,MAAG;AAAC,QAAG;AAAC,aAAOH,EAAE,QAAQG,CAAC;AAAA,IAAC,QAAS;AAAC,aAAM;AAAA,IAAE;AAAA,EAAC;AAAG;AAAC,SAAS2D,GAAG9D,GAAE;AAAC,QAAMG,IAAE4D,GAAE,GAAGzD,IAAEiD,GAAGvD,CAAC,IAAE2D,GAAG3D,CAAC,IAAEA;AAAE,SAAeM,EAAE,cAAX,UAA+BA,EAAE,gBAAX,UAAwB,CAAC,CAACA,EAAE,iBAA0BA,EAAE,kBAAb,YAA4B,CAACH,KAAG,CAAC,CAACG,EAAE,kBAAyBA,EAAE,mBAAX,UAA2B,CAACH,KAAG,CAAC,CAACG,EAAE,UAAiBA,EAAE,WAAX,UAAmB,CAAC,aAAY,eAAc,QAAQ,EAAE,KAAM,CAAAN,OAAIM,EAAE,cAAY,IAAI,SAASN,CAAC,CAAG,KAAE,CAAC,SAAQ,UAAS,UAAS,SAAS,EAAE,KAAM,CAAAA,OAAIM,EAAE,WAAS,IAAI,SAASN,CAAC;AAAG;AAAC,SAAS+D,KAAI;AAAC,SAAM,EAAe,OAAO,MAApB,OAAyB,CAAC,IAAI,aAAW,IAAI,SAAS,2BAA0B,MAAM;AAAC;AAAC,SAASC,GAAGhE,GAAE;AAAC,SAAM,CAAC,QAAO,QAAO,WAAW,EAAE,SAASmD,GAAEnD,CAAC,CAAC;AAAC;AAAC,SAAS2D,GAAG3D,GAAE;AAAC,SAAOqD,GAAErD,CAAC,EAAE,iBAAiBA,CAAC;AAAC;AAAC,SAASiE,GAAGjE,GAAE;AAAC,SAAOuD,GAAGvD,CAAC,IAAE,EAAC,YAAWA,EAAE,YAAW,WAAUA,EAAE,UAAS,IAAE,EAAC,YAAWA,EAAE,SAAQ,WAAUA,EAAE,QAAO;AAAC;AAAC,SAASkE,GAAGlE,GAAE;AAAC,MAAYmD,GAAEnD,CAAC,MAAZ;AAAc,WAAOA;AAAE,QAAMG,IAAEH,EAAE,gBAAcA,EAAE,cAAYyD,GAAGzD,CAAC,KAAGA,EAAE,QAAMsD,GAAEtD,CAAC;AAAE,SAAOyD,GAAGtD,CAAC,IAAEA,EAAE,OAAKA;AAAC;AAAC,SAASgE,GAAGnE,GAAE;AAAC,QAAMG,IAAE+D,GAAGlE,CAAC;AAAE,SAAOgE,GAAG7D,CAAC,IAAEH,EAAE,gBAAcA,EAAE,cAAc,OAAKA,EAAE,OAAKwD,GAAGrD,CAAC,KAAGuD,GAAGvD,CAAC,IAAEA,IAAEgE,GAAGhE,CAAC;AAAC;AAAC,SAASiE,GAAGpE,GAAEG,GAAEG,GAAE;AAAC,MAAID;AAAE,EAASF,MAAT,WAAaA,IAAE,CAAE,IAAWG,MAAT,WAAaA,IAAE;AAAI,QAAMF,IAAE+D,GAAGnE,CAAC,GAAEO,IAAEH,QAAYC,IAAEL,EAAE,kBAAX,OAA0B,SAAOK,EAAE,OAAM,IAAEgD,GAAEjD,CAAC;AAAE,MAAGG,GAAE;AAAC,UAAMP,IAAE,SAASA,GAAE;AAAC,aAAOA,EAAE,UAAQ,OAAO,eAAeA,EAAE,MAAM,IAAEA,EAAE,eAAa;AAAA,IAAI,EAAE,CAAC;AAAE,WAAOG,EAAE,OAAO,GAAE,EAAE,kBAAgB,CAAE,GAACuD,GAAGtD,CAAC,IAAEA,IAAE,IAAGJ,KAAGM,IAAE8D,GAAGpE,CAAC,IAAE,CAAE,CAAA;AAAA,EAAC;AAAC,SAAOG,EAAE,OAAOC,GAAEgE,GAAGhE,GAAE,CAAA,GAAGE,CAAC,CAAC;AAAC;AAAC,SAAS+D,GAAGrE,GAAE;AAAC,MAAIG,IAAEH,EAAE;AAAc,WAAmBM,IAAEH,MAAT,SAAoBG,IAAEA,EAAE,eAAX,OAAuB,SAAOA,EAAE,kBAApD,QAAoE;AAAC,QAAIA;AAAE,IAAAH,IAAEA,EAAE,WAAW;AAAA,EAAa;AAAC,SAAOA;AAAC;AAAC,SAASmE,GAAGtE,GAAEG,GAAE;AAAC,MAAG,CAACH,KAAG,CAACG;AAAE,WAAM;AAAG,QAAMG,IAAQH,EAAE,eAAR,OAAoB,SAAOA,EAAE,YAAW;AAAG,MAAGH,EAAE,SAASG,CAAC;AAAE,WAAM;AAAG,MAAGG,KAAGmD,GAAGnD,CAAC,GAAE;AAAC,QAAIA,IAAEH;AAAE,WAAKG,KAAG;AAAC,UAAGN,MAAIM;AAAE,eAAM;AAAG,MAAAA,IAAEA,EAAE,cAAYA,EAAE;AAAA,IAAI;AAAA,EAAC;AAAC,SAAM;AAAE;AAAC,SAASiE,KAAI;AAAC,QAAMvE,IAAE,UAAU;AAAc,SAAaA,KAAN,QAASA,EAAE,WAASA,EAAE,WAAS,UAAU;AAAQ;AAAC,SAASwE,KAAI;AAAC,QAAMxE,IAAE,UAAU;AAAc,SAAOA,KAAG,MAAM,QAAQA,EAAE,MAAM,IAAEA,EAAE,OAAO,IAAK,CAAAA,MAAG;AAAC,QAAG,EAAC,OAAMG,GAAE,SAAQG,EAAC,IAAEN;AAAE,WAAOG,IAAE,MAAIG;AAAA,EAAC,CAAC,EAAG,KAAK,GAAG,IAAE,UAAU;AAAS;AAAC,SAASmE,GAAGzE,GAAE;AAAC,SAAM,EAAMA,EAAE,mBAAN,KAAsB,CAACA,EAAE,eAAa0E,GAAI,KAAE1E,EAAE,cAAsBA,EAAE,SAAZ,WAAsBA,EAAE,YAAN,IAAkBA,EAAE,WAAN,KAAc,CAACA,EAAE;AAAY;AAAC,SAAS2E,GAAG3E,GAAE;AAAC,SAAM,CAACwE,KAAK,SAAS,QAAQ,MAAI,CAACE,GAAI,KAAM1E,EAAE,UAAN,KAAiBA,EAAE,WAAN,KAAc0E,GAAI,KAAM1E,EAAE,UAAN,KAAiBA,EAAE,WAAN,KAAkBA,EAAE,aAAN,KAAoBA,EAAE,WAAN,KAAwBA,EAAE,gBAAZ,WAAyBA,EAAE,QAAM,KAAGA,EAAE,SAAO,KAAOA,EAAE,aAAN,KAAoBA,EAAE,WAAN,KAAwBA,EAAE,gBAAZ;AAAwB;AAAC,SAAS4E,KAAI;AAAC,SAAM,SAAS,KAAK,UAAU,MAAM;AAAC;AAAC,SAASF,KAAI;AAAC,QAAM1E,IAAE;AAAW,SAAOA,EAAE,KAAKuE,IAAI,KAAGvE,EAAE,KAAKwE,GAAI,CAAA;AAAC;AAAC,SAASK,GAAG7E,GAAEG,GAAE;AAAC,QAAMG,IAAE,CAAC,SAAQ,KAAK;AAAE,SAAOH,KAAGG,EAAE,KAAK,IAAG,MAAM,GAAEA,EAAE,SAASN,CAAC;AAAC;AAAC,SAAS8E,GAAG9E,GAAE;AAAC,UAAaA,KAAN,OAAQ,SAAOA,EAAE,kBAAgB;AAAQ;AAAC,SAAS+E,GAAG/E,GAAEG,GAAE;AAAC,MAASA,KAAN;AAAQ,WAAM;AAAG,MAAG,kBAAiBH;AAAE,WAAOA,EAAE,aAAY,EAAG,SAASG,CAAC;AAAE,QAAMG,IAAEN;AAAE,SAAaM,EAAE,UAAR,QAAgBH,EAAE,SAASG,EAAE,MAAM;AAAC;AAAC,SAAS0E,GAAGhF,GAAE;AAAC,SAAM,kBAAiBA,IAAEA,EAAE,eAAe,CAAC,IAAEA,EAAE;AAAM;AAACyC,GAAE,OAAKT,IAAES,GAAE,YAAUP,IAAEO,GAAE,cAAYN,IAAEM,GAAE,aAAWL,IAAEK,GAAE,mBAAiBJ,IAAEM,GAAE,SAAO,SAAS,EAAC,MAAK,IAAE,gBAAe,GAAG,EAAC,GAAE;AAAC,QAAK,EAAC,YAAWtC,GAAE,UAAS,EAAC,IAAEO,GAAEgB,EAAC,GAAEjB,IAAEJ,GAAG,CAAAP,MAAG;AAAC,IAAAA,EAAE,gBAAiB,GAACK,KAAGA,EAAG;AAAA,EAAA,GAAG,CAACA,CAAC,CAAC;AAAE,SAAOL,EAAEwB,IAAE,EAAC,MAAK,GAAE,WAAU,IAAG,SAAQb,GAAE,UAAS,GAAE,GAAG,EAAC,CAAC;AAAC,GAAEgC,GAAE,aAAWd,IAAEc,GAAE,UAAQb,IAAEa,GAAE,OAAKF,IAAEE,GAAE,OAAKX,IAAEW,GAAE,YAAUT,IAAES,GAAE,cAAYR,IAAES,GAAE,SAAOpB,IAAEoB,GAAE,aAAWlC,IAAEkC,GAAE,WAASD,IAAEE,GAAE,QAAMvB,IAAEuB,GAAE,cAAYD,IAAEC,GAAE,SAAOrB,IAAEqB,GAAE,aAAWnC,IAAEmC,GAAE,WAASF,IAAEG,GAAE,QAAMxB,IAAEwB,GAAE,cAAYF,IAAEE,GAAE,SAAOtB,IAAEsB,GAAE,aAAWpC,IAAEoC,GAAE,WAASH,IAAEI,GAAE,UAAQ,SAAS,EAAC,WAAU,GAAE,UAAS,GAAE,GAAG1C,EAAC,GAAE;AAAC,QAAM,IAAEG,EAAE,qBAAoB,CAAC;AAAE,SAAOR,EAAE,OAAM,EAAC,WAAU,GAAE,GAAGK,GAAE,UAAS,EAAC,CAAC;AAAC,GAAE2C,GAAE,cAAYJ,IAAEI,GAAE,SAAOxB,IAAEwB,GAAE,aAAWtC,IAAEsC,GAAE,WAASL,IAAEM,GAAE,cAAYL,IAAEK,GAAE,SAAOzB,IAAEyB,GAAE,aAAWvC,IAAEuC,GAAE,WAASN;AAAiC,MAAMsC,KAAG;AAAuH,SAASC,GAAGlF,GAAE;AAAC,SAAOwD,GAAGxD,CAAC,KAAGA,EAAE,QAAQiF,EAAE;AAAC;AAAC,SAASE,GAAGnF,GAAE;AAAC,EAAAA,EAAE,kBAAiBA,EAAE;AAAiB;AAAC,SAASoF,GAAGpF,GAAE;AAAC,SAAM,CAAC,CAACA,KAAiBA,EAAE,aAAa,MAAM,MAAlC,cAAqCkF,GAAGlF,CAAC;AAAE;AAAC,MAAMqF,KAAG,KAAK,KAAIC,KAAG,KAAK,KAAIC,KAAG,KAAK,OAAMC,KAAG,KAAK,OAAMC,KAAG,CAAAzF,OAAI,EAAC,GAAEA,GAAE,GAAEA,EAAC,IAAG0F,KAAG,EAAC,MAAK,SAAQ,OAAM,QAAO,QAAO,OAAM,KAAI,SAAQ,GAAEC,KAAG,EAAC,OAAM,OAAM,KAAI,QAAO;AAAE,SAASC,GAAG5F,GAAEG,GAAEG,GAAE;AAAC,SAAOgF,GAAGtF,GAAEqF,GAAGlF,GAAEG,CAAC,CAAC;AAAC;AAAC,SAASuF,GAAG7F,GAAEG,GAAE;AAAC,SAAkB,OAAOH,KAAnB,aAAqBA,EAAEG,CAAC,IAAEH;AAAC;AAAC,SAAS8F,GAAG9F,GAAE;AAAC,SAAOA,EAAE,MAAM,GAAG,EAAE,CAAC;AAAC;AAAC,SAAS+F,GAAG/F,GAAE;AAAC,SAAOA,EAAE,MAAM,GAAG,EAAE,CAAC;AAAC;AAAC,SAASgG,GAAGhG,GAAE;AAAC,SAAYA,MAAN,MAAQ,MAAI;AAAG;AAAC,SAASiG,GAAGjG,GAAE;AAAC,SAAYA,MAAN,MAAQ,WAAS;AAAO;AAAC,SAASkG,GAAGlG,GAAE;AAAC,SAAM,CAAC,OAAM,QAAQ,EAAE,SAAS8F,GAAG9F,CAAC,CAAC,IAAE,MAAI;AAAG;AAAC,SAASmG,GAAGnG,GAAE;AAAC,SAAOgG,GAAGE,GAAGlG,CAAC,CAAC;AAAC;AAAC,SAASoG,GAAGpG,GAAE;AAAC,SAAOA,EAAE,QAAQ,cAAc,CAAAA,MAAG2F,GAAG3F,CAAC;AAAG;AAAC,SAASqG,GAAGrG,GAAE;AAAC,SAAOA,EAAE,QAAQ,0BAA0B,CAAAA,MAAG0F,GAAG1F,CAAC;AAAG;AAAC,SAASsG,GAAGtG,GAAE;AAAC,QAAK,EAAC,GAAEG,GAAE,GAAEG,GAAE,OAAMD,GAAE,QAAOD,EAAC,IAAEJ;AAAE,SAAM,EAAC,OAAMK,GAAE,QAAOD,GAAE,KAAIE,GAAE,MAAKH,GAAE,OAAMA,IAAEE,GAAE,QAAOC,IAAEF,GAAE,GAAED,GAAE,GAAEG,EAAC;AAAC;AACxnc;AAAA;AAAA;AAAA;AAGE,IAAIiG,KAAG,CAAC,sBAAqB,uBAAsB,yBAAwB,wBAAuB,uBAAsB,qCAAoC,gCAA+B,gCAA+B,iEAAgE,8CAA6C,sBAAsB,EAAE,KAAK,GAAG,GAAEC,KAAgB,OAAO,UAApB,KAA4BC,KAAGD,KAAG,WAAU;AAAE,IAAC,QAAQ,UAAU,WAAS,QAAQ,UAAU,qBAAmB,QAAQ,UAAU,uBAAsBE,KAAG,CAACF,MAAI,QAAQ,UAAU,cAAY,SAASxG,GAAE;AAAC,MAAIG;AAAE,SAAaH,KAAN,SAAiBG,IAAEH,EAAE,iBAAZ,QAAmCG,MAAT,SAAW,SAAOA,EAAE,KAAKH,CAAC;AAAC,IAAE,SAASA,GAAE;AAAC,SAAaA,KAAN,OAAQ,SAAOA,EAAE;AAAa,GAAE2G,KAAG,SAAS3G,EAAEG,GAAEG,GAAE;AAAC,MAAID;AAAE,EAASC,MAAT,WAAaA,IAAE;AAAI,MAAIF,IAAQD,KAAN,SAAiBE,IAAEF,EAAE,kBAAZ,QAAoCE,MAAT,SAAW,SAAOA,EAAE,KAAKF,GAAE,OAAO;AAAE,SAAWC,MAAL,MAAiBA,MAAT,UAAYE,KAAGH,KAAGH,EAAEG,EAAE,UAAU;AAAC,GAAEyG,KAAG,SAAS5G,EAAEG,GAAEG,GAAED,GAAE;AAAC,WAAQD,IAAE,CAAA,GAAGG,IAAE,MAAM,KAAKJ,CAAC,GAAEI,EAAE,UAAQ;AAAC,QAAI,IAAEA,EAAE,MAAK;AAAG,QAAG,CAACoG,GAAG,GAAE,EAAE;AAAE,UAAY,EAAE,YAAX,QAAmB;AAAC,YAAI,IAAE,EAAE,iBAAkB,GAAC,IAAE3G,EAAE,EAAE,SAAO,IAAE,EAAE,UAAS,IAAGK,CAAC;AAAE,QAAAA,EAAE,UAAQD,EAAE,KAAK,MAAMA,GAAE,CAAC,IAAEA,EAAE,KAAK,EAAC,aAAY,GAAE,YAAW,EAAC,CAAC;AAAA,MAAC,OAAK;AAAC,QAAAqG,GAAG,KAAK,GAAEF,EAAE,KAAGlG,EAAE,OAAO,CAAC,MAAIC,KAAG,CAACH,EAAE,SAAS,CAAC,MAAIC,EAAE,KAAK,CAAC;AAAE,YAAIU,IAAE,EAAE,cAAwB,OAAOT,EAAE,iBAArB,cAAoCA,EAAE,cAAc,CAAC,GAAEU,IAAE,CAAC4F,GAAG7F,GAAE,EAAE,MAAI,CAACT,EAAE,oBAAkBA,EAAE,iBAAiB,CAAC;AAAG,YAAGS,KAAGC,GAAE;AAAC,cAAIC,IAAEhB,EAAOc,MAAL,KAAO,EAAE,WAASA,EAAE,UAAS,IAAGT,CAAC;AAAE,UAAAA,EAAE,UAAQD,EAAE,KAAK,MAAMA,GAAEY,CAAC,IAAEZ,EAAE,KAAK,EAAC,aAAY,GAAE,YAAWY,EAAC,CAAC;AAAA,QAAC;AAAM,UAAAT,EAAE,QAAQ,MAAMA,GAAE,EAAE,QAAQ;AAAA,MAAC;AAAA,EAAC;AAAC,SAAOH;AAAC,GAAEyG,KAAG,SAAS7G,GAAE;AAAC,SAAM,CAAC,MAAM,SAASA,EAAE,aAAa,UAAU,GAAE,EAAE,CAAC;AAAC,GAAE8G,KAAG,SAAS9G,GAAE;AAAC,MAAG,CAACA;AAAE,UAAM,IAAI,MAAM,kBAAkB;AAAE,SAAOA,EAAE,WAAS,MAAI,0BAA0B,KAAKA,EAAE,OAAO,KAAG,SAASA,GAAE;AAAC,QAAIG,GAAEG,IAAQN,KAAN,SAAiBG,IAAEH,EAAE,kBAAZ,QAAoCG,MAAT,SAAW,SAAOA,EAAE,KAAKH,GAAE,iBAAiB;AAAE,WAAWM,MAAL,MAAiBA,MAAT;AAAA,EAAU,EAAEN,CAAC,MAAI,CAAC6G,GAAG7G,CAAC,IAAE,IAAEA,EAAE;AAAQ,GAAE+G,KAAG,SAAS/G,GAAEG,GAAE;AAAC,SAAOH,EAAE,aAAWG,EAAE,WAASH,EAAE,gBAAcG,EAAE,gBAAcH,EAAE,WAASG,EAAE;AAAQ,GAAE6G,KAAG,SAAShH,GAAE;AAAC,SAAgBA,EAAE,YAAZ;AAAmB,GAAEiH,KAAG,SAASjH,GAAE;AAAC,SAAO,SAASA,GAAE;AAAC,WAAOgH,GAAGhH,CAAC,KAAaA,EAAE,SAAZ;AAAA,EAAgB,EAAEA,CAAC,KAAG,CAAC,SAASA,GAAE;AAAC,QAAG,CAACA,EAAE;AAAK,aAAM;AAAG,QAAIG,GAAEG,IAAEN,EAAE,QAAM0G,GAAG1G,CAAC,GAAEK,IAAE,SAASL,GAAE;AAAC,aAAOM,EAAE,iBAAiB,+BAA6BN,IAAE,IAAI;AAAA,IAAC;AAAE,QAAgB,OAAO,SAApB,OAAqC,OAAO,QAAhB,UAAiC,OAAO,OAAO,IAAI,UAA9B;AAAqC,MAAAG,IAAEE,EAAE,OAAO,IAAI,OAAOL,EAAE,IAAI,CAAC;AAAA;AAAO,UAAG;AAAC,QAAAG,IAAEE,EAAEL,EAAE,IAAI;AAAA,MAAC,SAAOA,GAAE;AAAC,eAAO,QAAQ,MAAM,4IAA2IA,EAAE,OAAO,GAAE;AAAA,MAAE;AAAC,QAAII,IAAE,SAASJ,GAAEG,GAAE;AAAC,eAAQG,IAAE,GAAEA,IAAEN,EAAE,QAAOM;AAAI,YAAGN,EAAEM,CAAC,EAAE,WAASN,EAAEM,CAAC,EAAE,SAAOH;AAAE,iBAAOH,EAAEM,CAAC;AAAA,IAAC,EAAEH,GAAEH,EAAE,IAAI;AAAE,WAAM,CAACI,KAAGA,MAAIJ;AAAA,EAAC,EAAEA,CAAC;AAAC,GAAEkH,KAAG,SAASlH,GAAE;AAAC,MAAIG,IAAEH,EAAE,sBAAuB,GAACM,IAAEH,EAAE,OAAME,IAAEF,EAAE;AAAO,SAAWG,MAAJ,KAAWD,MAAJ;AAAK,GAAE8G,KAAG,SAASnH,GAAEG,GAAE;AAAC,MAAIG,IAAEH,EAAE,cAAaE,IAAEF,EAAE;AAAc,MAAc,iBAAiBH,CAAC,EAAE,eAA/B;AAA0C,WAAM;AAAG,MAAII,IAAEqG,GAAG,KAAKzG,GAAE,+BAA+B,IAAEA,EAAE,gBAAcA;AAAE,MAAGyG,GAAG,KAAKrG,GAAE,uBAAuB;AAAE,WAAM;AAAG,MAAGE,KAAYA,MAAT,UAA4BA,MAAhB;AAAmB,QAAqBA,MAAlB;AAAoB,aAAO4G,GAAGlH,CAAC;AAAA,SAAM;AAAC,QAAe,OAAOK,KAAnB,YAAqB;AAAC,eAAQE,IAAEP,GAAEA,KAAG;AAAC,YAAI,IAAEA,EAAE,eAAc,IAAE0G,GAAG1G,CAAC;AAAE,YAAG,KAAG,CAAC,EAAE,cAAiBK,EAAE,CAAC,MAAR;AAAU,iBAAO6G,GAAGlH,CAAC;AAAE,QAAAA,IAAEA,EAAE,eAAaA,EAAE,eAAa,KAAG,MAAIA,EAAE,gBAAc,IAAE,EAAE;AAAA,MAAI;AAAC,MAAAA,IAAEO;AAAA,IAAC;AAAC,QAAG,SAASP,GAAE;AAAC,UAAIG,GAAEG,GAAED,GAAED,GAAEG,IAAEP,KAAG0G,GAAG1G,CAAC,GAAEW,KAAUR,IAAEI,OAAV,QAAuBJ,MAAT,SAAW,SAAOA,EAAE,MAAKS,IAAE;AAAG,UAAGL,KAAGA,MAAIP;AAAE,aAAIY,IAAE,CAAC,GAAUN,IAAEK,OAAV,QAAuBL,MAAT,WAAoBD,IAAEC,EAAE,mBAAZ,QAAqCD,MAAT,UAAYA,EAAE,SAASM,CAAC,KAASX,KAAN,SAAiBI,IAAEJ,EAAE,mBAAZ,QAAqCI,MAAT,UAAYA,EAAE,SAASJ,CAAC,IAAG,CAACY,KAAGD,KAAG;AAAC,cAAIE,GAAEC,GAAEC;AAAE,UAAAH,IAAE,GAAUE,IAAEH,KAAUE,IAAEN,IAAEmG,GAAG/F,CAAC,OAAhB,QAA6BE,MAAT,SAAW,SAAOA,EAAE,UAApD,QAAoEC,MAAT,WAAoBC,IAAED,EAAE,mBAAZ,QAAqCC,MAAT,UAAY,CAACA,EAAE,SAASJ,CAAC;AAAA,QAAE;AAAC,aAAOC;AAAA,IAAC,EAAEZ,CAAC;AAAE,aAAM,CAACA,EAAE,eAAc,EAAG;AAAO,QAAmBM,MAAhB;AAAkB,aAAM;AAAA,EAAE;AAAC,SAAM;AAAE,GAAE8G,KAAG,SAASpH,GAAEG,GAAE;AAAC,SAAM,EAAEA,EAAE,YAAUwG,GAAGxG,CAAC,KAAG,SAAS,GAAE;AAAC,WAAO6G,GAAG,CAAC,KAAc,EAAE,SAAb;AAAA,EAAiB,EAAE7G,CAAC,KAAGgH,GAAGhH,GAAEH,CAAC,KAAG,SAAS,GAAE;AAAC,WAAkB,EAAE,YAAd,aAAuB,MAAM,UAAU,MAAM,MAAM,EAAE,QAAQ,EAAE,KAAM,SAASA,GAAE;AAAC,aAAkBA,EAAE,YAAd;AAAA,IAAqB,CAAG;AAAA,EAAA,EAAEG,CAAC,KAAG,SAAS,GAAE;AAAC,QAAG,mCAAmC,KAAK,EAAE,OAAO;AAAE,eAAQA,IAAE,EAAE,eAAcA,KAAG;AAAC,YAAgBA,EAAE,YAAf,cAAwBA,EAAE,UAAS;AAAC,mBAAQG,IAAE,GAAEA,IAAEH,EAAE,SAAS,QAAOG,KAAI;AAAC,gBAAI,IAAEH,EAAE,SAAS,KAAKG,CAAC;AAAE,gBAAc,EAAE,YAAb;AAAqB,qBAAM,CAAC,CAACmG,GAAG,KAAKtG,GAAE,sBAAsB,KAAG,CAAC,EAAE,SAAS,CAAC;AAAA,UAAC;AAAC,iBAAM;AAAA,QAAE;AAAC,QAAAA,IAAEA,EAAE;AAAA,MAAa;AAAC,WAAM;AAAA,EAAE,EAAEA,CAAC;AAAE,GAAEkH,KAAG,SAASrH,GAAEG,GAAE;AAAC,SAAM,EAAE8G,GAAG9G,CAAC,KAAG2G,GAAG3G,CAAC,IAAE,KAAG,CAACiH,GAAGpH,GAAEG,CAAC;AAAE,GAAEmH,KAAG,SAAStH,GAAE;AAAC,MAAIG,IAAE,SAASH,EAAE,aAAa,UAAU,GAAE,EAAE;AAAE,SAAM,CAAC,EAAE,MAAMG,CAAC,KAAGA,KAAG;AAAE,GAAEoH,KAAG,SAASvH,EAAEG,GAAE;AAAC,MAAIG,IAAE,IAAGD,IAAE,CAAA;AAAG,SAAOF,EAAE,QAAS,SAASA,GAAEC,GAAE;AAAC,QAAIG,IAAE,CAAC,CAACJ,EAAE,aAAYQ,IAAEJ,IAAEJ,EAAE,cAAYA,GAAES,IAAE,SAASZ,GAAEG,GAAE;AAAC,UAAIG,IAAEwG,GAAG9G,CAAC;AAAE,aAAOM,IAAE,KAAGH,KAAG,CAAC0G,GAAG7G,CAAC,IAAE,IAAEM;AAAA,IAAC,EAAEK,GAAEJ,CAAC,GAAEM,IAAEN,IAAEP,EAAEG,EAAE,UAAU,IAAEQ;AAAE,IAAIC,MAAJ,IAAML,IAAED,EAAE,KAAK,MAAMA,GAAEO,CAAC,IAAEP,EAAE,KAAKK,CAAC,IAAEN,EAAE,KAAK,EAAC,eAAcD,GAAE,UAASQ,GAAE,MAAKT,GAAE,SAAQI,GAAE,SAAQM,EAAC,CAAC;AAAA,EAAC,CAAC,GAAGR,EAAE,KAAK0G,EAAE,EAAE,OAAQ,SAAS/G,GAAEG,GAAE;AAAC,WAAOA,EAAE,UAAQH,EAAE,KAAK,MAAMA,GAAEG,EAAE,OAAO,IAAEH,EAAE,KAAKG,EAAE,OAAO,GAAEH;AAAA,EAAC,GAAG,EAAE,EAAE,OAAOM,CAAC;AAAC,GAAEkH,KAAG,SAASxH,GAAEG,GAAE;AAAC,MAAIG;AAAE,SAAOA,KAAGH,IAAEA,KAAG,CAAE,GAAE,gBAAcyG,GAAG,CAAC5G,CAAC,GAAEG,EAAE,kBAAiB,EAAC,QAAOkH,GAAG,KAAK,MAAKlH,CAAC,GAAE,SAAQ,IAAG,eAAcA,EAAE,eAAc,kBAAiBmH,GAAE,CAAC,IAAE,SAAStH,GAAEG,GAAEG,GAAE;AAAC,QAAGqG,GAAG3G,CAAC;AAAE,aAAM,CAAE;AAAC,QAAIK,IAAE,MAAM,UAAU,MAAM,MAAML,EAAE,iBAAiBuG,EAAE,CAAC;AAAE,WAAOpG,KAAGsG,GAAG,KAAKzG,GAAEuG,EAAE,KAAGlG,EAAE,QAAQL,CAAC,GAAEK,EAAE,OAAOC,CAAC;AAAA,EAAC,EAAEN,GAAEG,EAAE,kBAAiBkH,GAAG,KAAK,MAAKlH,CAAC,CAAC,GAAEoH,GAAGjH,CAAC;AAAC,GAAEmH,KAAG,SAASzH,GAAEG,GAAE;AAAC,MAAGA,IAAEA,KAAG,IAAG,CAACH;AAAE,UAAM,IAAI,MAAM,kBAAkB;AAAE,SAAWyG,GAAG,KAAKzG,GAAEuG,EAAE,MAAjB,MAAoBc,GAAGlH,GAAEH,CAAC;AAAC;AAAE,SAAS0H,GAAG1H,GAAEG,GAAEG,GAAE;AAAC,MAAG,EAAC,WAAUD,GAAE,UAASD,EAAC,IAAEJ;AAAE,QAAMO,IAAE2F,GAAG/F,CAAC,GAAE,IAAEgG,GAAGhG,CAAC,GAAE,IAAE8F,GAAG,CAAC,GAAE,IAAEH,GAAG3F,CAAC,GAAEW,IAAQP,MAAN,KAAQQ,IAAEV,EAAE,IAAEA,EAAE,QAAM,IAAED,EAAE,QAAM,GAAEY,IAAEX,EAAE,IAAEA,EAAE,SAAO,IAAED,EAAE,SAAO,GAAEa,IAAEZ,EAAE,CAAC,IAAE,IAAED,EAAE,CAAC,IAAE;AAAE,MAAIc;AAAE,UAAO,GAAC;AAAA,IAAE,KAAI;AAAM,MAAAA,IAAE,EAAC,GAAEH,GAAE,GAAEV,EAAE,IAAED,EAAE,OAAM;AAAE;AAAA,IAAM,KAAI;AAAS,MAAAc,IAAE,EAAC,GAAEH,GAAE,GAAEV,EAAE,IAAEA,EAAE,OAAM;AAAE;AAAA,IAAM,KAAI;AAAQ,MAAAa,IAAE,EAAC,GAAEb,EAAE,IAAEA,EAAE,OAAM,GAAEW,EAAC;AAAE;AAAA,IAAM,KAAI;AAAO,MAAAE,IAAE,EAAC,GAAEb,EAAE,IAAED,EAAE,OAAM,GAAEY,EAAC;AAAE;AAAA,IAAM;AAAQ,MAAAE,IAAE,EAAC,GAAEb,EAAE,GAAE,GAAEA,EAAE,EAAC;AAAA,EAAC;AAAC,UAAO0F,GAAG5F,CAAC,GAAG;AAAA,IAAA,KAAI;AAAQ,MAAAe,EAAE,CAAC,KAAGD,KAAGX,KAAGQ,IAAE,KAAG;AAAG;AAAA,IAAM,KAAI;AAAM,MAAAI,EAAE,CAAC,KAAGD,KAAGX,KAAGQ,IAAE,KAAG;AAAA,EAAE;AAAC,SAAOI;AAAC;AAAC,eAAeyG,GAAG3H,GAAEG,GAAE;AAAC,MAAIG;AAAE,EAASH,MAAT,WAAaA,IAAE,CAAE;AAAE,QAAK,EAAC,GAAEE,GAAE,GAAED,GAAE,UAASG,GAAE,OAAM,GAAE,UAAS,GAAE,UAAS,EAAC,IAAEP,GAAE,EAAC,UAASc,IAAE,qBAAoB,cAAaC,IAAE,YAAW,gBAAeC,IAAE,YAAW,aAAYC,IAAE,IAAG,SAAQC,IAAE,EAAC,IAAE2E,GAAG1F,GAAEH,CAAC,GAAEyB,IAAE,SAASzB,GAAE;AAAC,WAAgB,OAAOA,KAAjB,WAAmB,SAASA,GAAE;AAAC,aAAM,EAAC,KAAI,GAAE,OAAM,GAAE,QAAO,GAAE,MAAK,GAAE,GAAGA,EAAC;AAAA,IAAC,EAAEA,CAAC,IAAE,EAAC,KAAIA,GAAE,OAAMA,GAAE,QAAOA,GAAE,MAAKA,EAAC;AAAA,EAAC,EAAEkB,CAAC,GAAEQ,IAAE,EAAET,IAAeD,MAAb,aAAe,cAAY,aAAWA,CAAC,GAAEW,IAAE2E,GAAG,MAAM/F,EAAE,gBAAgB,EAAC,UAAeD,IAAE,OAAYC,EAAE,aAAR,OAAkB,SAAOA,EAAE,UAAUmB,CAAC,OAArD,QAA0DpB,IAAEoB,IAAEA,EAAE,kBAAgB,OAAYnB,EAAE,sBAAR,OAA2B,SAAOA,EAAE,mBAAmB,EAAE,QAAQ,IAAG,UAASO,GAAE,cAAaC,GAAE,UAAS,EAAC,CAAC,CAAC,GAAEkB,IAAejB,MAAb,aAAe,EAAC,GAAEX,GAAE,GAAED,GAAE,OAAM,EAAE,SAAS,OAAM,QAAO,EAAE,SAAS,OAAM,IAAE,EAAE,WAAUL,IAAE,OAAYQ,EAAE,mBAAR,OAAwB,SAAOA,EAAE,gBAAgB,EAAE,QAAQ,IAAGN,IAAE,OAAYM,EAAE,aAAR,OAAkB,SAAOA,EAAE,UAAUR,CAAC,MAAI,OAAYQ,EAAE,YAAR,OAAiB,SAAOA,EAAE,SAASR,CAAC,MAAI,EAAC,GAAE,GAAE,GAAE,EAAC,GAAEG,IAAEoG,GAAG/F,EAAE,wDAAsD,MAAMA,EAAE,sDAAsD,EAAC,UAAS,GAAE,MAAK0B,GAAE,cAAalC,GAAE,UAAS,EAAC,CAAC,IAAEkC,CAAC;AAAE,SAAM,EAAC,MAAKN,EAAE,MAAIzB,EAAE,MAAIuB,EAAE,OAAKxB,EAAE,GAAE,SAAQC,EAAE,SAAOyB,EAAE,SAAOF,EAAE,UAAQxB,EAAE,GAAE,OAAM0B,EAAE,OAAKzB,EAAE,OAAKuB,EAAE,QAAMxB,EAAE,GAAE,QAAOC,EAAE,QAAMyB,EAAE,QAAMF,EAAE,SAAOxB,EAAE,EAAC;AAAC;AAAC,SAAS2H,GAAG5H,GAAE;AAAC,QAAMG,IAAEwD,GAAG3D,CAAC;AAAE,MAAIM,IAAE,WAAWH,EAAE,KAAK,KAAG,GAAEE,IAAE,WAAWF,EAAE,MAAM,KAAG;AAAE,QAAMC,IAAEoD,GAAGxD,CAAC,GAAEO,IAAEH,IAAEJ,EAAE,cAAYM,GAAE,IAAEF,IAAEJ,EAAE,eAAaK,GAAE,IAAEkF,GAAGjF,CAAC,MAAIC,KAAGgF,GAAGlF,CAAC,MAAI;AAAE,SAAO,MAAIC,IAAEC,GAAEF,IAAE,IAAG,EAAC,OAAMC,GAAE,QAAOD,GAAE,GAAE,EAAC;AAAC;AAAC,SAASwH,GAAG7H,GAAE;AAAC,SAAOuD,GAAGvD,CAAC,IAAEA,IAAEA,EAAE;AAAc;AAAC,SAAS8H,GAAG9H,GAAE;AAAC,QAAMG,IAAE0H,GAAG7H,CAAC;AAAE,MAAG,CAACwD,GAAGrD,CAAC;AAAE,WAAOsF,GAAG,CAAC;AAAE,QAAMnF,IAAEH,EAAE,sBAAuB,GAAC,EAAC,OAAME,GAAE,QAAOD,GAAE,GAAEG,EAAC,IAAEqH,GAAGzH,CAAC;AAAE,MAAI,KAAGI,IAAEgF,GAAGjF,EAAE,KAAK,IAAEA,EAAE,SAAOD,GAAE,KAAGE,IAAEgF,GAAGjF,EAAE,MAAM,IAAEA,EAAE,UAAQF;AAAE,SAAO,KAAG,OAAO,SAAS,CAAC,MAAI,IAAE,IAAG,KAAG,OAAO,SAAS,CAAC,MAAI,IAAE,IAAG,EAAC,GAAE,GAAE,GAAE,EAAC;AAAC;AAAC,MAAM2H,KAAGtC,GAAG,CAAC;AAAE,SAASuC,GAAGhI,GAAE;AAAC,QAAMG,IAAEkD,GAAErD,CAAC;AAAE,SAAO+D,GAAE,KAAI5D,EAAE,iBAAe,EAAC,GAAEA,EAAE,eAAe,YAAW,GAAEA,EAAE,eAAe,UAAS,IAAE4H;AAAE;AAAC,SAASE,GAAGjI,GAAEG,GAAEG,GAAED,GAAE;AAAC,EAASF,MAAT,WAAaA,IAAE,KAAaG,MAAT,WAAaA,IAAE;AAAI,QAAMF,IAAEJ,EAAE,sBAAqB,GAAGO,IAAEsH,GAAG7H,CAAC;AAAE,MAAI,IAAEyF,GAAG,CAAC;AAAE,EAAAtF,MAAIE,IAAEkD,GAAGlD,CAAC,MAAI,IAAEyH,GAAGzH,CAAC,KAAG,IAAEyH,GAAG9H,CAAC;AAAG,QAAM,IAAE,SAASA,GAAEG,GAAEG,GAAE;AAAC,WAAgBH,MAAT,WAAaA,IAAE,KAAI,EAAE,CAACG,KAAGH,KAAGG,MAAI+C,GAAErD,CAAC,MAAIG;AAAA,EAAC,EAAEI,GAAED,GAAED,CAAC,IAAE2H,GAAGzH,CAAC,IAAEkF,GAAG,CAAC;AAAE,MAAI,KAAGrF,EAAE,OAAK,EAAE,KAAG,EAAE,GAAEU,KAAGV,EAAE,MAAI,EAAE,KAAG,EAAE,GAAEW,IAAEX,EAAE,QAAM,EAAE,GAAEY,IAAEZ,EAAE,SAAO,EAAE;AAAE,MAAGG,GAAE;AAAC,UAAMP,IAAEqD,GAAE9C,CAAC,GAAEJ,IAAEE,KAAGkD,GAAGlD,CAAC,IAAEgD,GAAEhD,CAAC,IAAEA;AAAE,QAAIC,IAAEN,GAAEI,IAAEE,EAAE;AAAa,WAAKF,KAAGC,KAAGF,MAAIG,KAAG;AAAC,YAAMN,IAAE8H,GAAG1H,CAAC,GAAED,IAAEC,EAAE,yBAAwBC,IAAEsD,GAAGvD,CAAC,GAAEG,IAAEJ,EAAE,QAAMC,EAAE,aAAW,WAAWC,EAAE,WAAW,KAAGL,EAAE,GAAEW,IAAER,EAAE,OAAKC,EAAE,YAAU,WAAWC,EAAE,UAAU,KAAGL,EAAE;AAAE,WAAGA,EAAE,GAAEc,KAAGd,EAAE,GAAEe,KAAGf,EAAE,GAAEgB,KAAGhB,EAAE,GAAE,KAAGO,GAAEO,KAAGH,GAAEL,IAAE+C,GAAEjD,CAAC,GAAEA,IAAEE,EAAE;AAAA,IAAY;AAAA,EAAC;AAAC,SAAOgG,GAAG,EAAC,OAAMvF,GAAE,QAAOC,GAAE,GAAE,GAAE,GAAEF,EAAC,CAAC;AAAC;AAAC,MAAMoH,KAAG,CAAC,iBAAgB,QAAQ;AAAE,SAASC,GAAGnI,GAAE;AAAC,SAAOkI,GAAG,KAAM,CAAA/H,MAAG;AAAC,QAAG;AAAC,aAAOH,EAAE,QAAQG,CAAC;AAAA,IAAC,QAAS;AAAC,aAAM;AAAA,IAAE;AAAA,EAAC,CAAC;AAAE;AAAC,SAASiI,GAAGpI,GAAE;AAAC,SAAOiI,GAAG3E,GAAEtD,CAAC,CAAC,EAAE,OAAKiE,GAAGjE,CAAC,EAAE;AAAU;AAAC,SAASqI,GAAGrI,GAAEG,GAAEG,GAAE;AAAC,MAAID;AAAE,MAAgBF,MAAb;AAAe,IAAAE,IAAE,SAASL,GAAEG,GAAE;AAAC,YAAMG,IAAE+C,GAAErD,CAAC,GAAEK,IAAEiD,GAAEtD,CAAC,GAAEI,IAAEE,EAAE;AAAe,UAAIC,IAAEF,EAAE,aAAYM,IAAEN,EAAE,cAAaO,IAAE,GAAEC,IAAE;AAAE,UAAGT,GAAE;AAAC,QAAAG,IAAEH,EAAE,OAAMO,IAAEP,EAAE;AAAO,cAAMJ,IAAE+D,GAAE;AAAG,SAAC,CAAC/D,KAAGA,KAAaG,MAAV,aAAeS,IAAER,EAAE,YAAWS,IAAET,EAAE;AAAA,MAAU;AAAC,aAAM,EAAC,OAAMG,GAAE,QAAOI,GAAE,GAAEC,GAAE,GAAEC,EAAC;AAAA,IAAC,EAAEb,GAAEM,CAAC;AAAA,WAAuBH,MAAb;AAAe,IAAAE,IAAE,SAASL,GAAE;AAAC,YAAMG,IAAEmD,GAAEtD,CAAC,GAAEM,IAAE2D,GAAGjE,CAAC,GAAEK,IAAEL,EAAE,cAAc,MAAKI,IAAEkF,GAAGnF,EAAE,aAAYA,EAAE,aAAYE,EAAE,aAAYA,EAAE,WAAW,GAAEE,IAAE+E,GAAGnF,EAAE,cAAaA,EAAE,cAAaE,EAAE,cAAaA,EAAE,YAAY;AAAE,UAAIM,IAAE,CAACL,EAAE,aAAW8H,GAAGpI,CAAC;AAAE,YAAMY,IAAE,CAACN,EAAE;AAAU,aAAcqD,GAAGtD,CAAC,EAAE,cAAd,UAA0BM,KAAG2E,GAAGnF,EAAE,aAAYE,EAAE,WAAW,IAAED,IAAG,EAAC,OAAMA,GAAE,QAAOG,GAAE,GAAEI,GAAE,GAAEC,EAAC;AAAA,IAAC,EAAE0C,GAAEtD,CAAC,CAAC;AAAA,WAAUuD,GAAGpD,CAAC;AAAE,IAAAE,IAAE,SAASL,GAAEG,GAAE;AAAC,YAAMG,IAAE2H,GAAGjI,GAAE,IAAaG,MAAV,OAAW,GAAEE,IAAEC,EAAE,MAAIN,EAAE,WAAUI,IAAEE,EAAE,OAAKN,EAAE,YAAWO,IAAEiD,GAAGxD,CAAC,IAAE8H,GAAG9H,CAAC,IAAEyF,GAAG,CAAC;AAAE,aAAM,EAAC,OAAMzF,EAAE,cAAYO,EAAE,GAAE,QAAOP,EAAE,eAAaO,EAAE,GAAE,GAAEH,IAAEG,EAAE,GAAE,GAAEF,IAAEE,EAAE,EAAC;AAAA,IAAC,EAAEJ,GAAEG,CAAC;AAAA,OAAM;AAAC,UAAMA,IAAE0H,GAAGhI,CAAC;AAAE,IAAAK,IAAE,EAAC,GAAGF,GAAE,GAAEA,EAAE,IAAEG,EAAE,GAAE,GAAEH,EAAE,IAAEG,EAAE,EAAC;AAAA,EAAC;AAAC,SAAOgG,GAAGjG,CAAC;AAAC;AAAC,SAASiI,GAAGtI,GAAEG,GAAE;AAAC,QAAMG,IAAE4D,GAAGlE,CAAC;AAAE,SAAM,EAAEM,MAAIH,KAAG,CAACoD,GAAGjD,CAAC,KAAG0D,GAAG1D,CAAC,OAAeqD,GAAGrD,CAAC,EAAE,aAAhB,WAA0BgI,GAAGhI,GAAEH,CAAC;AAAE;AAAC,SAASoI,GAAGvI,GAAEG,GAAEG,GAAE;AAAC,QAAMD,IAAEmD,GAAGrD,CAAC,GAAEC,IAAEkD,GAAEnD,CAAC,GAAEI,IAAYD,MAAV,SAAY,IAAE2H,GAAGjI,GAAE,IAAGO,GAAEJ,CAAC;AAAE,MAAI,IAAE,EAAC,YAAW,GAAE,WAAU,EAAC;AAAE,QAAM,IAAEsF,GAAG,CAAC;AAAE,MAAGpF,KAAG,CAACA,KAAG,CAACE;AAAE,SAAa4C,GAAEhD,CAAC,MAAZ,UAAeuD,GAAGtD,CAAC,OAAK,IAAE6D,GAAG9D,CAAC,IAAGE,GAAE;AAAC,YAAML,IAAEiI,GAAG9H,GAAE,IAAGI,GAAEJ,CAAC;AAAE,QAAE,IAAEH,EAAE,IAAEG,EAAE,YAAW,EAAE,IAAEH,EAAE,IAAEG,EAAE;AAAA,IAAS;AAAM,MAAAC,MAAI,EAAE,IAAEgI,GAAGhI,CAAC;AAAG,SAAM,EAAC,GAAE,EAAE,OAAK,EAAE,aAAW,EAAE,GAAE,GAAE,EAAE,MAAI,EAAE,YAAU,EAAE,GAAE,OAAM,EAAE,OAAM,QAAO,EAAE,OAAM;AAAC;AAAC,SAASoI,GAAGxI,GAAE;AAAC,SAAiB2D,GAAG3D,CAAC,EAAE,aAAjB;AAAyB;AAAC,SAASyI,GAAGzI,GAAEG,GAAE;AAAC,SAAOqD,GAAGxD,CAAC,KAAa2D,GAAG3D,CAAC,EAAE,aAAhB,UAAyBG,IAAEA,EAAEH,CAAC,IAAEA,EAAE,eAAa;AAAI;AAAC,SAAS0I,GAAG1I,GAAEG,GAAE;AAAC,QAAMG,IAAE+C,GAAErD,CAAC;AAAE,MAAGmI,GAAGnI,CAAC;AAAE,WAAOM;AAAE,MAAG,CAACkD,GAAGxD,CAAC,GAAE;AAAC,QAAIG,IAAE+D,GAAGlE,CAAC;AAAE,WAAKG,KAAG,CAAC6D,GAAG7D,CAAC,KAAG;AAAC,UAAGoD,GAAGpD,CAAC,KAAG,CAACqI,GAAGrI,CAAC;AAAE,eAAOA;AAAE,MAAAA,IAAE+D,GAAG/D,CAAC;AAAA,IAAC;AAAC,WAAOG;AAAA,EAAC;AAAC,MAAID,IAAEoI,GAAGzI,GAAEG,CAAC;AAAE,SAAKE,KAAGuD,GAAGvD,CAAC,KAAGmI,GAAGnI,CAAC;AAAG,IAAAA,IAAEoI,GAAGpI,GAAEF,CAAC;AAAE,SAAOE,KAAG2D,GAAG3D,CAAC,KAAGmI,GAAGnI,CAAC,KAAG,CAACyD,GAAGzD,CAAC,IAAEC,IAAED,KAAG,SAASL,GAAE;AAAC,QAAIG,IAAE+D,GAAGlE,CAAC;AAAE,WAAKwD,GAAGrD,CAAC,KAAG,CAAC6D,GAAG7D,CAAC,KAAG;AAAC,UAAG2D,GAAG3D,CAAC;AAAE,eAAOA;AAAE,UAAG0D,GAAG1D,CAAC;AAAE,eAAO;AAAK,MAAAA,IAAE+D,GAAG/D,CAAC;AAAA,IAAC;AAAC,WAAO;AAAA,EAAI,EAAEH,CAAC,KAAGM;AAAC;AAAC,MAAMqI,KAAG,EAAC,uDAAsD,SAAS3I,GAAE;AAAC,MAAG,EAAC,UAASG,GAAE,MAAKG,GAAE,cAAaD,GAAE,UAASD,EAAC,IAAEJ;AAAE,QAAMO,IAAYH,MAAV,SAAY,IAAEkD,GAAEjD,CAAC,GAAE,IAAE,CAAC,CAACF,KAAGgI,GAAGhI,EAAE,QAAQ;AAAE,MAAGE,MAAI,KAAG,KAAGE;AAAE,WAAOD;AAAE,MAAI,IAAE,EAAC,YAAW,GAAE,WAAU,EAAC,GAAEQ,IAAE2E,GAAG,CAAC;AAAE,QAAM1E,IAAE0E,GAAG,CAAC,GAAEzE,IAAEwC,GAAGnD,CAAC;AAAE,OAAIW,KAAG,CAACA,KAAG,CAACT,QAAe4C,GAAE9C,CAAC,MAAZ,UAAeqD,GAAG,CAAC,OAAK,IAAEO,GAAG5D,CAAC,IAAGmD,GAAGnD,CAAC,IAAG;AAAC,UAAML,IAAEiI,GAAG5H,CAAC;AAAE,IAAAS,IAAEgH,GAAGzH,CAAC,GAAEU,EAAE,IAAEf,EAAE,IAAEK,EAAE,YAAWU,EAAE,IAAEf,EAAE,IAAEK,EAAE;AAAA,EAAS;AAAC,SAAM,EAAC,OAAMC,EAAE,QAAMQ,EAAE,GAAE,QAAOR,EAAE,SAAOQ,EAAE,GAAE,GAAER,EAAE,IAAEQ,EAAE,IAAE,EAAE,aAAWA,EAAE,IAAEC,EAAE,GAAE,GAAET,EAAE,IAAEQ,EAAE,IAAE,EAAE,YAAUA,EAAE,IAAEC,EAAE,EAAC;AAAC,GAAE,oBAAmBuC,IAAE,iBAAgB,SAAStD,GAAE;AAAC,MAAG,EAAC,SAAQG,GAAE,UAASG,GAAE,cAAaD,GAAE,UAASD,EAAC,IAAEJ;AAAE,QAAMO,IAAE,CAAC,GAAyBD,MAAtB,sBAAwB6H,GAAGhI,CAAC,IAAE,CAAE,IAAC,SAASH,GAAEG,GAAE;AAAC,UAAMG,IAAEH,EAAE,IAAIH,CAAC;AAAE,QAAGM;AAAE,aAAOA;AAAE,QAAID,IAAE+D,GAAGpE,GAAE,CAAE,GAAC,EAAE,EAAE,OAAQ,CAAAA,MAAGuD,GAAGvD,CAAC,KAAYmD,GAAEnD,CAAC,MAAZ,MAAe,GAACI,IAAE;AAAK,UAAMG,IAAYoD,GAAG3D,CAAC,EAAE,aAAhB;AAAyB,QAAIW,IAAEJ,IAAE2D,GAAGlE,CAAC,IAAEA;AAAE,WAAKuD,GAAG5C,CAAC,KAAG,CAACqD,GAAGrD,CAAC,KAAG;AAAC,YAAMR,IAAEwD,GAAGhD,CAAC,GAAEL,IAAEwD,GAAGnD,CAAC;AAAE,MAAAL,KAAaH,EAAE,aAAZ,YAAuBC,IAAE,QAAOG,IAAE,CAACD,KAAG,CAACF,IAAE,CAACE,KAAcH,EAAE,aAAb,YAAuBC,KAAG,CAAC,YAAW,OAAO,EAAE,SAASA,EAAE,QAAQ,KAAGsD,GAAG/C,CAAC,KAAG,CAACL,KAAGgI,GAAGtI,GAAEW,CAAC,KAAGN,IAAEA,EAAE,OAAQ,CAAAL,MAAGA,MAAIW,CAAC,IAAGP,IAAED,GAAEQ,IAAEuD,GAAGvD,CAAC;AAAA,IAAC;AAAC,WAAOR,EAAE,IAAIH,GAAEK,CAAC,GAAEA;AAAA,EAAC,EAAEF,GAAE,KAAK,EAAE,IAAE,CAAA,EAAG,OAAOG,CAAC,GAAED,CAAC,GAAE,IAAEE,EAAE,CAAC,GAAE,IAAEA,EAAE,OAAQ,CAACP,GAAEM,MAAI;AAAC,UAAMD,IAAEgI,GAAGlI,GAAEG,GAAEF,CAAC;AAAE,WAAOJ,EAAE,MAAIsF,GAAGjF,EAAE,KAAIL,EAAE,GAAG,GAAEA,EAAE,QAAMqF,GAAGhF,EAAE,OAAML,EAAE,KAAK,GAAEA,EAAE,SAAOqF,GAAGhF,EAAE,QAAOL,EAAE,MAAM,GAAEA,EAAE,OAAKsF,GAAGjF,EAAE,MAAKL,EAAE,IAAI,GAAEA;AAAA,EAAC,GAAGqI,GAAGlI,GAAE,GAAEC,CAAC,CAAC;AAAE,SAAM,EAAC,OAAM,EAAE,QAAM,EAAE,MAAK,QAAO,EAAE,SAAO,EAAE,KAAI,GAAE,EAAE,MAAK,GAAE,EAAE,IAAG;AAAC,GAAE,iBAAgBsI,IAAG,iBAAgB,eAAe1I,GAAE;AAAC,QAAMG,IAAE,KAAK,mBAAiBuI,IAAGpI,IAAE,KAAK,eAAcD,IAAE,MAAMC,EAAEN,EAAE,QAAQ;AAAE,SAAM,EAAC,WAAUuI,GAAGvI,EAAE,WAAU,MAAMG,EAAEH,EAAE,QAAQ,GAAEA,EAAE,QAAQ,GAAE,UAAS,EAAC,GAAE,GAAE,GAAE,GAAE,OAAMK,EAAE,OAAM,QAAOA,EAAE,OAAM,EAAC;AAAC,GAAE,gBAAe,SAASL,GAAE;AAAC,SAAO,MAAM,KAAKA,EAAE,gBAAgB;AAAC,GAAE,eAAc,SAASA,GAAE;AAAC,QAAK,EAAC,OAAMG,GAAE,QAAOG,EAAC,IAAEsH,GAAG5H,CAAC;AAAE,SAAM,EAAC,OAAMG,GAAE,QAAOG,EAAC;AAAC,GAAE,UAASwH,IAAG,WAAUvE,IAAG,OAAM,SAASvD,GAAE;AAAC,SAAc2D,GAAG3D,CAAC,EAAE,cAAd;AAAuB,EAAC;AAAE,SAAS4I,GAAG5I,GAAEG,GAAEG,GAAED,GAAE;AAAC,EAASA,MAAT,WAAaA,IAAE,CAAE;AAAE,QAAK,EAAC,gBAAeD,IAAE,IAAG,gBAAeG,IAAE,IAAG,eAAc,IAAc,OAAO,kBAAnB,YAAkC,aAAY,IAAc,OAAO,wBAAnB,YAAwC,gBAAe,IAAE,GAAE,IAAEF,GAAES,IAAE+G,GAAG7H,CAAC,GAAEe,IAAEX,KAAGG,IAAE,CAAC,GAAGO,IAAEsD,GAAGtD,CAAC,IAAE,CAAA,GAAG,GAAGsD,GAAGjE,CAAC,CAAC,IAAE;AAAG,EAAAY,EAAE,QAAS,CAAAf,MAAG;AAAC,IAAAI,KAAGJ,EAAE,iBAAiB,UAASM,GAAE,EAAC,SAAQ,GAAE,CAAC,GAAEC,KAAGP,EAAE,iBAAiB,UAASM,CAAC;AAAA,EAAC,CAAC;AAAG,QAAMU,IAAEF,KAAG,IAAE,SAASd,GAAEG,GAAE;AAAC,QAAIG,GAAED,IAAE;AAAK,UAAMD,IAAEkD,GAAEtD,CAAC;AAAE,aAASO,IAAG;AAAC,UAAIP;AAAE,mBAAaM,CAAC,IAASN,IAAEK,MAAT,QAAaL,EAAE,WAAU,GAAGK,IAAE;AAAA,IAAI;AAAC,WAAO,SAASM,EAAEC,GAAEC,GAAE;AAAC,MAASD,MAAT,WAAaA,IAAE,KAAaC,MAAT,WAAaA,IAAE,IAAGN,EAAG;AAAC,YAAK,EAAC,MAAKO,GAAE,KAAIC,GAAE,OAAMC,GAAE,QAAOC,EAAC,IAAEjB,EAAE,sBAAuB;AAAC,UAAGY,KAAGT,EAAG,GAAC,CAACa,KAAG,CAACC;AAAE;AAAO,YAAMC,KAAE,EAAC,YAAW,CAACsE,GAAGzE,CAAC,IAAE,QAAM,CAACyE,GAAGpF,EAAE,eAAaU,IAAEE,EAAE,IAAE,QAAM,CAACwE,GAAGpF,EAAE,gBAAcW,IAAEE,EAAE,IAAE,QAAM,CAACuE,GAAG1E,CAAC,IAAE,MAAK,WAAUwE,GAAG,GAAED,GAAG,GAAExE,CAAC,CAAC,KAAG,EAAC;AAAE,UAAIY,KAAE;AAAG,eAASC,EAAE1B,IAAE;AAAC,cAAMG,KAAEH,GAAE,CAAC,EAAE;AAAkB,YAAGG,OAAIU,GAAE;AAAC,cAAG,CAACY;AAAE,mBAAOd;AAAI,UAAAR,KAAEQ,EAAE,IAAGR,EAAC,IAAEG,IAAE,WAAY,MAAI;AAAC,YAAAK,EAAE,IAAG,IAAI;AAAA,UAAC,GAAG,GAAG;AAAA,QAAC;AAAC,QAAAc,KAAE;AAAA,MAAE;AAAC,UAAG;AAAC,QAAApB,IAAE,IAAI,qBAAqBqB,GAAE,EAAC,GAAGR,IAAE,MAAKd,EAAE,cAAa,CAAC;AAAA,MAAC,QAAS;AAAC,QAAAC,IAAE,IAAI,qBAAqBqB,GAAER,EAAC;AAAA,MAAC;AAAC,MAAAb,EAAE,QAAQL,CAAC;AAAA,IAAC,EAAE,EAAE,GAAEO;AAAA,EAAC,EAAEO,GAAER,CAAC,IAAE;AAAK,MAAIW,GAAEC,IAAE,IAAGO,IAAE;AAAK,QAAIA,IAAE,IAAI,eAAgB,CAAAzB,MAAG;AAAC,QAAG,CAACK,CAAC,IAAEL;AAAE,IAAAK,KAAGA,EAAE,WAASS,KAAGW,MAAIA,EAAE,UAAUtB,CAAC,GAAE,qBAAqBe,CAAC,GAAEA,IAAE,sBAAuB,MAAI;AAAC,UAAIlB;AAAE,OAAOA,IAAEyB,MAAT,QAAazB,EAAE,QAAQG,CAAC;AAAA,IAAC,CAAC,IAAIG,EAAG;AAAA,EAAA,IAAIQ,KAAG,CAAC,KAAGW,EAAE,QAAQX,CAAC,GAAEW,EAAE,QAAQtB,CAAC;AAAG,MAAIuB,IAAE,IAAEuG,GAAGjI,CAAC,IAAE;AAAK,SAAO,KAAG,SAASG,IAAG;AAAC,UAAME,IAAE4H,GAAGjI,CAAC;AAAE,KAAC0B,KAAGrB,EAAE,MAAIqB,EAAE,KAAGrB,EAAE,MAAIqB,EAAE,KAAGrB,EAAE,UAAQqB,EAAE,SAAOrB,EAAE,WAASqB,EAAE,UAAQpB,EAAG,GAACoB,IAAErB,GAAEY,IAAE,sBAAsBd,CAAC;AAAA,EAAC,KAAIG,KAAI,MAAI;AAAC,QAAIN;AAAE,IAAAe,EAAE,QAAS,CAAAf,MAAG;AAAC,MAAAI,KAAGJ,EAAE,oBAAoB,UAASM,CAAC,GAAEC,KAAGP,EAAE,oBAAoB,UAASM,CAAC;AAAA,IAAC,CAAG,GAAOU,KAAN,QAASA,EAAC,IAAUhB,IAAEyB,MAAT,QAAazB,EAAE,cAAayB,IAAE,MAAK,KAAG,qBAAqBR,CAAC;AAAA,EAAC;AAAC;AAAC,MAAM4H,KAAG,SAAS7I,GAAE;AAAC,SAAgBA,MAAT,WAAaA,IAAE,IAAG,EAAC,MAAK,UAAS,SAAQA,GAAE,MAAM,GAAGG,GAAE;AAAC,QAAIG,GAAED;AAAE,UAAK,EAAC,GAAED,GAAE,GAAEG,GAAE,WAAU,GAAE,gBAAe,EAAC,IAAEJ,GAAE,IAAE,MAAM,eAAeH,GAAEG,GAAE;AAAC,YAAK,EAAC,WAAUG,GAAE,UAASD,GAAE,UAASD,EAAC,IAAEJ,GAAEO,IAAE,OAAYF,EAAE,SAAR,OAAc,SAAOA,EAAE,MAAMD,EAAE,QAAQ,IAAGO,IAAEmF,GAAGxF,CAAC,GAAEM,IAAEmF,GAAGzF,CAAC,GAAEO,IAAQqF,GAAG5F,CAAC,MAAV,KAAYQ,IAAE,CAAC,QAAO,KAAK,EAAE,SAASH,CAAC,IAAE,KAAG,GAAEI,IAAER,KAAGM,IAAE,KAAG,GAAEG,IAAE6E,GAAG1F,GAAEH,CAAC;AAAE,UAAG,EAAC,UAASiB,GAAE,WAAUC,GAAE,eAAcO,EAAC,IAAY,OAAOT,KAAjB,WAAmB,EAAC,UAASA,GAAE,WAAU,GAAE,eAAc,KAAI,IAAE,EAAC,UAAS,GAAE,WAAU,GAAE,eAAc,MAAK,GAAGA,EAAC;AAAE,aAAOJ,KAAa,OAAOa,KAAjB,aAAqBP,IAAUN,MAAR,QAAU,KAAGa,IAAEA,IAAGZ,IAAE,EAAC,GAAEK,IAAEH,GAAE,GAAEE,IAAEH,EAAC,IAAE,EAAC,GAAEG,IAAEH,GAAE,GAAEI,IAAEH,EAAC;AAAA,IAAC,EAAEZ,GAAEH,CAAC;AAAE,WAAO,QAAYM,IAAE,EAAE,WAAX,OAAmB,SAAOA,EAAE,eAAmBD,IAAE,EAAE,UAAX,QAAmBA,EAAE,kBAAgB,CAAA,IAAG,EAAC,GAAED,IAAE,EAAE,GAAE,GAAEG,IAAE,EAAE,GAAE,MAAK,EAAC,GAAG,GAAE,WAAU,EAAC,EAAC;AAAA,EAAC,EAAC;AAAC,GAAEuI,KAAG,SAAS9I,GAAE;AAAC,SAAgBA,MAAT,WAAaA,IAAE,KAAI,EAAC,MAAK,SAAQ,SAAQA,GAAE,MAAM,GAAGG,GAAE;AAAC,UAAK,EAAC,GAAEG,GAAE,GAAED,GAAE,WAAUD,EAAC,IAAED,GAAE,EAAC,UAASI,IAAE,IAAG,WAAU,IAAE,IAAG,SAAQ,IAAE,EAAC,IAAG,CAAAP,MAAG;AAAC,UAAG,EAAC,GAAEG,GAAE,GAAEG,EAAC,IAAEN;AAAE,aAAM,EAAC,GAAEG,GAAE,GAAEG,EAAC;AAAA,IAAC,EAAC,GAAE,GAAG,EAAC,IAAEuF,GAAG7F,GAAEG,CAAC,GAAEW,IAAE,EAAC,GAAER,GAAE,GAAED,EAAC,GAAEU,IAAE,MAAM4G,GAAGxH,GAAE,CAAC,GAAEa,IAAEkF,GAAGJ,GAAG1F,CAAC,CAAC,GAAEa,IAAE+E,GAAGhF,CAAC;AAAE,QAAIE,IAAEJ,EAAEG,CAAC,GAAEQ,IAAEX,EAAEE,CAAC;AAAE,QAAGT,GAAE;AAAC,YAAMP,IAAQiB,MAAN,MAAQ,WAAS;AAAQ,MAAAC,IAAE0E,GAAG1E,IAAEH,EAAQE,MAAN,MAAQ,QAAM,MAAM,GAAEC,GAAEA,IAAEH,EAAEf,CAAC,CAAC;AAAA,IAAC;AAAC,QAAG,GAAE;AAAC,YAAMA,IAAQgB,MAAN,MAAQ,WAAS;AAAQ,MAAAS,IAAEmE,GAAGnE,IAAEV,EAAQC,MAAN,MAAQ,QAAM,MAAM,GAAES,GAAEA,IAAEV,EAAEf,CAAC,CAAC;AAAA,IAAC;AAAC,UAAM0B,IAAE,EAAE,GAAG,EAAC,GAAGvB,GAAE,CAACc,CAAC,GAAEC,GAAE,CAACF,CAAC,GAAES,EAAC,CAAC;AAAE,WAAM,EAAC,GAAGC,GAAE,MAAK,EAAC,GAAEA,EAAE,IAAEpB,GAAE,GAAEoB,EAAE,IAAErB,EAAC,EAAC;AAAA,EAAC,EAAC;AAAC,GAAE0I,KAAG,SAAS/I,GAAE;AAAC,SAAgBA,MAAT,WAAaA,IAAE,CAAE,IAAE,EAAC,MAAK,QAAO,SAAQA,GAAE,MAAM,GAAGG,GAAE;AAAC,QAAIG,GAAED;AAAE,UAAK,EAAC,WAAUD,GAAE,gBAAeG,GAAE,OAAM,GAAE,kBAAiB,GAAE,UAAS,GAAE,UAASO,EAAC,IAAEX,GAAE,EAAC,UAASY,IAAE,IAAG,WAAUC,IAAE,IAAG,oBAAmBC,GAAE,kBAAiBC,IAAE,WAAU,2BAA0BO,IAAE,QAAO,eAAcC,IAAE,IAAG,GAAGC,EAAC,IAAEkE,GAAG7F,GAAEG,CAAC;AAAE,SAAUG,IAAEC,EAAE,UAAX,QAAmBD,EAAE;AAAgB,aAAM,CAAA;AAAG,UAAM2B,IAAE6D,GAAG1F,CAAC,GAAEL,IAAE+F,GAAG,CAAC,MAAI,GAAE7F,IAAE,OAAY,EAAE,SAAR,OAAc,SAAO,EAAE,MAAMa,EAAE,QAAQ,IAAGZ,IAAEe,MAAIlB,KAAG,CAAC2B,IAAE,CAAC2E,GAAG,CAAC,CAAC,IAAE,SAASrG,GAAE;AAAC,YAAMG,KAAEkG,GAAGrG,CAAC;AAAE,aAAM,CAACoG,GAAGpG,CAAC,GAAEG,IAAEiG,GAAGjG,EAAC,CAAC;AAAA,IAAC,EAAE,CAAC;AAAG,IAAAc,KAAYQ,MAAT,UAAYvB,EAAE,KAAK,GAAG,SAASF,GAAEG,IAAEG,IAAED,GAAE;AAAC,YAAMD,KAAE2F,GAAG/F,CAAC;AAAE,UAAIO,KAAE,SAASP,IAAEG,IAAEG,GAAE;AAAC,cAAMD,IAAE,CAAC,QAAO,OAAO,GAAED,KAAE,CAAC,SAAQ,MAAM,GAAEG,KAAE,CAAC,OAAM,QAAQ,GAAEI,IAAE,CAAC,UAAS,KAAK;AAAE,gBAAOX,IAAC;AAAA,UAAE,KAAI;AAAA,UAAM,KAAI;AAAS,mBAAOM,IAAEH,KAAEC,KAAEC,IAAEF,KAAEE,IAAED;AAAA,UAAE,KAAI;AAAA,UAAO,KAAI;AAAQ,mBAAOD,KAAEI,KAAEI;AAAA,UAAE;AAAQ,mBAAM,CAAE;AAAA,QAAA;AAAA,MAAC,EAAEmF,GAAG9F,CAAC,GAAYM,OAAV,SAAYD,CAAC;AAAE,aAAOD,OAAIG,KAAEA,GAAE,IAAK,CAAAP,OAAGA,KAAE,MAAII,KAAID,OAAII,KAAEA,GAAE,OAAOA,GAAE,IAAI6F,EAAE,CAAC,KAAI7F;AAAA,IAAC,EAAE,GAAEmB,GAAED,GAAExB,CAAC,CAAC;AAAE,UAAMO,IAAE,CAAC,GAAE,GAAGN,CAAC,GAAEO,IAAE,MAAMkH,GAAGxH,GAAEwB,CAAC,GAAEjB,IAAE;AAAG,QAAIS,MAAUd,IAAEE,EAAE,SAAX,OAAiB,SAAOF,EAAE,cAAY;AAAG,QAAGU,KAAGL,EAAE,KAAKD,EAAEwB,CAAC,CAAC,GAAEjB,GAAE;AAAC,YAAMhB,IAAE,SAASA,IAAEG,IAAEG,GAAE;AAAC,QAASA,MAAT,WAAaA,IAAE;AAAI,cAAMD,KAAE0F,GAAG/F,EAAC,GAAEI,KAAE+F,GAAGnG,EAAC,GAAEO,KAAE0F,GAAG7F,EAAC;AAAE,YAAIO,KAAQP,OAAN,MAAQC,QAAKC,IAAE,QAAM,WAAS,UAAQ,SAAiBD,OAAV,UAAY,WAAS;AAAM,eAAOF,GAAE,UAAUI,EAAC,IAAEJ,GAAE,SAASI,EAAC,MAAII,KAAE0F,GAAG1F,EAAC,IAAG,CAACA,IAAE0F,GAAG1F,EAAC,CAAC;AAAA,MAAC,EAAEP,GAAE,GAAEH,CAAC;AAAE,MAAAS,EAAE,KAAKD,EAAET,EAAE,CAAC,CAAC,GAAES,EAAET,EAAE,CAAC,CAAC,CAAC;AAAA,IAAC;AAAC,QAAGmB,IAAE,CAAC,GAAGA,GAAE,EAAC,WAAUf,GAAE,WAAUM,EAAC,CAAC,GAAE,CAACA,EAAE,MAAO,CAAAV,MAAGA,KAAG,CAAC,GAAG;AAAC,UAAIoB,GAAEC;AAAE,YAAMrB,OAAWoB,IAAEb,EAAE,SAAX,OAAiB,SAAOa,EAAE,UAAQ,KAAG,GAAEjB,KAAEK,EAAER,CAAC;AAAE,UAAGG;AAAE,eAAM,EAAC,MAAK,EAAC,OAAMH,GAAE,WAAUmB,EAAC,GAAE,OAAM,EAAC,WAAUhB,GAAC,EAAC;AAAE,UAAIG,MAASe,IAAEF,EAAE,OAAQ,CAAAnB,MAAGA,EAAE,UAAU,CAAC,KAAG,CAAG,EAAC,KAAM,CAACA,GAAEG,OAAIH,EAAE,UAAU,CAAC,IAAEG,GAAE,UAAU,CAAC,CAAG,EAAC,CAAC,MAAxF,OAA2F,SAAOkB,EAAE;AAAU,UAAG,CAACf;AAAE,gBAAOY,GAAG;AAAA,UAAA,KAAI,WAAU;AAAC,gBAAII;AAAE,kBAAMtB,KAASsB,IAAEH,EAAE,IAAK,CAAAnB,OAAG,CAACA,GAAE,WAAUA,GAAE,UAAU,OAAQ,CAAAA,OAAGA,KAAE,CAAC,EAAG,OAAQ,CAACA,IAAEG,OAAIH,KAAEG,IAAG,CAAC,CAAC,GAAI,KAAM,CAACH,IAAEG,OAAIH,GAAE,CAAC,IAAEG,GAAE,CAAC,CAAG,EAAC,CAAC,MAAjH,OAAoH,SAAOmB,EAAE,CAAC;AAAE,YAAAtB,MAAIM,KAAEN;AAAG;AAAA,UAAK;AAAA,UAAC,KAAI;AAAmB,YAAAM,KAAE;AAAA,QAAC;AAAC,UAAGF,MAAIE;AAAE,eAAM,EAAC,OAAM,EAAC,WAAUA,GAAC,EAAC;AAAA,IAAC;AAAC,WAAM,CAAA;AAAA,EAAE,EAAC;AAAC,GAAE0I,KAAG,CAAChJ,GAAEG,GAAEG,MAAI;AAAC,QAAMD,IAAE,oBAAI,OAAID,IAAE,EAAC,UAASuI,IAAG,GAAGrI,EAAC,GAAEC,IAAE,EAAC,GAAGH,EAAE,UAAS,IAAGC,EAAC;AAAE,UAAO,OAAML,GAAEG,GAAEG,MAAI;AAAC,UAAK,EAAC,WAAUD,IAAE,UAAS,UAASD,IAAE,YAAW,YAAWG,IAAE,IAAG,UAASI,EAAC,IAAEL,GAAEM,IAAEL,EAAE,OAAO,OAAO,GAAEM,IAAE,OAAYF,EAAE,SAAR,OAAc,SAAOA,EAAE,MAAMR,CAAC;AAAG,QAAIW,IAAE,MAAMH,EAAE,gBAAgB,EAAC,WAAUX,GAAE,UAASG,GAAE,UAASC,EAAC,CAAC,GAAE,EAAC,GAAEW,GAAE,GAAEC,EAAC,IAAE0G,GAAG5G,GAAET,GAAEQ,CAAC,GAAEI,IAAEZ,GAAEa,IAAE,CAAA,GAAGO,IAAE;AAAE,aAAQnB,IAAE,GAAEA,IAAEM,EAAE,QAAON,KAAI;AAAC,YAAK,EAAC,MAAKC,GAAE,IAAGmB,EAAC,IAAEd,EAAEN,CAAC,GAAE,EAAC,GAAEqB,GAAE,GAAEM,GAAE,MAAKlC,GAAE,OAAME,EAAC,IAAE,MAAMyB,EAAE,EAAC,GAAEX,GAAE,GAAEC,GAAE,kBAAiBX,GAAE,WAAUY,GAAE,UAASb,GAAE,gBAAec,GAAE,OAAMJ,GAAE,UAASH,GAAE,UAAS,EAAC,WAAUX,GAAE,UAASG,EAAC,EAAC,CAAC;AAAE,MAAAY,IAAQY,KAAIZ,GAAEC,IAAQiB,KAAIjB,GAAEE,IAAE,EAAC,GAAGA,GAAE,CAACX,CAAC,GAAE,EAAC,GAAGW,EAAEX,CAAC,GAAE,GAAGR,EAAC,EAAC,GAAEE,KAAGwB,KAAG,OAAKA,KAAc,OAAOxB,KAAjB,aAAqBA,EAAE,cAAYgB,IAAEhB,EAAE,YAAWA,EAAE,UAAQa,IAAOb,EAAE,UAAP,KAAa,MAAMU,EAAE,gBAAgB,EAAC,WAAUX,GAAE,UAASG,GAAE,UAASC,EAAC,CAAC,IAAEH,EAAE,QAAQ,EAAC,GAAEc,GAAE,GAAEC,EAAC,IAAE0G,GAAG5G,GAAEG,GAAEJ,CAAC,IAAIP,IAAE;AAAA,IAAG;AAAC,WAAM,EAAC,GAAES,GAAE,GAAEC,GAAE,WAAUC,GAAE,UAASb,GAAE,gBAAec,EAAC;AAAA,EAAC,GAAGlB,GAAEG,GAAE,EAAC,GAAGC,GAAE,UAASG,EAAC,CAAC;AAAC;AAAE,IAAI0I,KAAgB,OAAO,WAApB,MAA6BhI,KAAEF;AAAE,SAASmI,GAAGlJ,GAAEG,GAAE;AAAC,MAAGH,MAAIG;AAAE,WAAM;AAAG,MAAG,OAAOH,KAAG,OAAOG;AAAE,WAAM;AAAG,MAAe,OAAOH,KAAnB,cAAsBA,EAAE,SAAQ,MAAKG,EAAE,SAAU;AAAC,WAAM;AAAG,MAAIG,GAAED,GAAED;AAAE,MAAGJ,KAAGG,KAAa,OAAOH,KAAjB,UAAmB;AAAC,QAAG,MAAM,QAAQA,CAAC,GAAE;AAAC,UAAGM,IAAEN,EAAE,QAAOM,MAAIH,EAAE;AAAO,eAAM;AAAG,WAAIE,IAAEC,GAAKD,OAAH;AAAQ,YAAG,CAAC6I,GAAGlJ,EAAEK,CAAC,GAAEF,EAAEE,CAAC,CAAC;AAAE,iBAAM;AAAG,aAAM;AAAA,IAAE;AAAC,QAAGD,IAAE,OAAO,KAAKJ,CAAC,GAAEM,IAAEF,EAAE,QAAOE,MAAI,OAAO,KAAKH,CAAC,EAAE;AAAO,aAAM;AAAG,SAAIE,IAAEC,GAAKD,OAAH;AAAQ,UAAG,CAAC,CAAE,EAAC,eAAe,KAAKF,GAAEC,EAAEC,CAAC,CAAC;AAAE,eAAM;AAAG,SAAIA,IAAEC,GAAKD,OAAH,KAAQ;AAAC,YAAMC,IAAEF,EAAEC,CAAC;AAAE,WAAeC,MAAX,YAAc,CAACN,EAAE,aAAW,CAACkJ,GAAGlJ,EAAEM,CAAC,GAAEH,EAAEG,CAAC,CAAC;AAAE,eAAM;AAAA,IAAE;AAAC,WAAM;AAAA,EAAE;AAAC,SAAON,KAAGA,KAAGG,KAAGA;AAAC;AAAC,SAASgJ,GAAGnJ,GAAE;AAAC,SAAgB,OAAO,SAApB,MAAkC,KAASA,EAAE,cAAc,eAAa,QAAQ,oBAAkB;AAAC;AAAC,SAASoJ,GAAGpJ,GAAEG,GAAE;AAAC,QAAMG,IAAE6I,GAAGnJ,CAAC;AAAE,SAAO,KAAK,MAAMG,IAAEG,CAAC,IAAEA;AAAC;AAAC,SAAS+I,GAAGrJ,GAAE;AAAC,QAAMG,IAAEE,EAAE,OAAOL,CAAC;AAAE,SAAOiJ,GAAI,MAAI;AAAC,IAAA9I,EAAE,UAAQH;AAAA,EAAC,IAAIG;AAAC;AAAC,MAAMmJ,KAAG,CAACtJ,GAAEG,OAAK,EAAC,GAAG2I,GAAG9I,CAAC,GAAE,SAAQ,CAACA,GAAEG,CAAC,EAAC,IAAGoJ,KAAG,CAACvJ,GAAEG,OAAK,EAAC,GAAG4I,GAAG/I,CAAC,GAAE,SAAQ,CAACA,GAAEG,CAAC,EAAC;AAAG,SAASqJ,GAAGxJ,GAAE;AAAC,SAAOK,EAAE,QAAS,MAAIL,EAAE,MAAO,CAAAA,MAASA,KAAN,IAAS,IAAC,OAAK,CAAAG,MAAG;AAAC,IAAAH,EAAE,QAAS,OAAG;AAAC,MAAY,OAAO,KAAnB,aAAqB,EAAEG,CAAC,IAAQ,KAAN,SAAU,EAAE,UAAQA;AAAA,IAAE;EAAG,GAAGH,CAAC;AAAC;AAAC,MAAMyJ,KAAG,EAAC,GAAGpJ,EAAC,GAAEqJ,KAAGD,GAAG,uBAAqB,CAAAzJ,MAAGA,EAAG;AAAE,SAAS2J,GAAG3J,GAAE;AAAC,QAAMG,IAAEE,EAAE,OAAQ,MAAI;AAAC,QAAkB,QAAQ,IAAI,aAA3B;AAAoC,YAAM,IAAI,MAAM,+CAA+C;AAAA,EAAC,CAAC;AAAG,SAAOqJ,GAAI,MAAI;AAAC,IAAAvJ,EAAE,UAAQH;AAAA,EAAC,CAAG,GAACK,EAAE,YAAa,WAAU;AAAC,aAAQ,IAAE,UAAU,QAAOC,IAAE,IAAI,MAAM,CAAC,GAAED,IAAE,GAAEA,IAAE,GAAEA;AAAI,MAAAC,EAAED,CAAC,IAAE,UAAUA,CAAC;AAAE,WAAaF,EAAE,WAAR,OAAgB,SAAOA,EAAE,QAAQ,GAAGG,CAAC;AAAA,EAAC,GAAG,EAAE;AAAC;AAAC,MAAMsJ,KAAG,WAAUC,KAAG,aAAYC,KAAG,aAAYC,KAAG;AAAa,SAASC,GAAGhK,GAAEG,GAAEG,GAAE;AAAC,SAAO,KAAK,MAAMN,IAAEG,CAAC,MAAIG;AAAC;AAAC,SAAS2J,GAAGjK,GAAEG,GAAE;AAAC,SAAOA,IAAE,KAAGA,KAAGH,EAAE,QAAQ;AAAM;AAAC,SAASkK,GAAGlK,GAAEG,GAAE;AAAC,SAAOgK,GAAGnK,GAAE,EAAC,iBAAgBG,EAAC,CAAC;AAAC;AAAC,SAASiK,GAAGpK,GAAEG,GAAE;AAAC,SAAOgK,GAAGnK,GAAE,EAAC,WAAU,IAAG,eAAcA,EAAE,QAAQ,QAAO,iBAAgBG,EAAC,CAAC;AAAC;AAAC,SAASgK,GAAGnK,GAAEG,GAAE;AAAC,MAAG,EAAC,eAAcG,IAAE,IAAG,WAAUD,IAAE,IAAG,iBAAgBD,GAAE,QAAOG,IAAE,EAAC,IAAWJ,MAAT,SAAW,KAAGA;AAAE,QAAM,IAAEH,EAAE;AAAQ,MAAI,IAAEM;AAAE;AAAG,SAAGD,IAAE,CAACE,IAAEA;AAAA,SAAQ,KAAG,KAAG,KAAG,EAAE,SAAO,KAAG8J,GAAG,GAAE,GAAEjK,CAAC;AAAG,SAAO;AAAC;AAAC,SAASkK,GAAGtK,GAAEG,GAAEG,GAAED,GAAED,GAAE;AAAC,MAAQJ,MAAL;AAAO,WAAM;AAAG,QAAMO,IAAED,EAAE,QAAQN,CAAC,GAAE,IAAEG,EAAEH,CAAC;AAAE,UAAOI,GAAC;AAAA,IAAE,KAAI;AAAK,aAAOG;AAAA,IAAE,KAAI;AAAK,aAAO,IAAEA,IAAE,EAAE,QAAM,IAAEA;AAAA,IAAE,KAAI;AAAK,aAAO,IAAEA,KAAG,EAAE,SAAO,KAAGF,IAAEE;AAAA,IAAE,KAAI;AAAK,aAAOD,EAAE,YAAYN,CAAC;AAAA,EAAC;AAAC;AAAC,SAASuK,GAAGvK,GAAEG,GAAE;AAAC,SAAOA,EAAE,QAAS,CAACA,GAAEG,MAAIN,EAAE,SAASG,CAAC,IAAE,CAACG,CAAC,IAAE,CAAE,CAAA;AAAE;AAAC,SAAS+J,GAAGrK,GAAEG,GAAEG,GAAE;AAAC,MAAGA;AAAE,WAAOA,EAAE,SAASH,CAAC;AAAE,QAAME,IAAEL,EAAEG,CAAC;AAAE,SAAaE,KAAN,QAASA,EAAE,aAAa,UAAU,KAAYA,EAAE,aAAa,eAAe,MAAvC;AAAwC;AAAC,IAAImK,KAAgB,OAAO,WAApB,MAA6BvJ,KAAEF;AAAE,SAAS0J,GAAGzK,GAAEG,GAAE;AAAC,QAAMG,IAAEN,EAAE,wBAAwBG,CAAC;AAAE,SAAOG,IAAE,KAAK,+BAA6BA,IAAE,KAAK,iCAA+B,KAAGA,IAAE,KAAK,+BAA6BA,IAAE,KAAK,6BAA2B,IAAE;AAAC;AAAC,MAAMoK,KAAGrK,EAAE,cAAc,EAAC,UAAS,MAAI;GAAG,YAAW,MAAI;AAAA,GAAG,KAAI,oBAAI,OAAI,aAAY,EAAC,SAAQ,CAAE,EAAA,EAAC,CAAC;AAAE,SAASsK,GAAG3K,GAAE;AAAC,QAAK,EAAC,UAASG,GAAE,aAAYG,GAAE,WAAU,EAAC,IAAEN,GAAE,CAAC,GAAEW,CAAC,IAAEN,EAAE,SAAU,MAAI,oBAAI,KAAK,GAACO,IAAEP,EAAE,YAAa,CAAAL,MAAG;AAAC,IAAAW,EAAG,CAAAR,MAAG,IAAI,IAAIA,CAAC,EAAE,IAAIH,GAAE,IAAI,CAAG;AAAA,EAAA,GAAG,CAAE,CAAA,GAAEa,IAAER,EAAE,YAAa,CAAAL,MAAG;AAAC,IAAAW,EAAG,CAAAR,MAAG;AAAC,YAAMG,IAAE,IAAI,IAAIH,CAAC;AAAE,aAAOG,EAAE,OAAON,CAAC,GAAEM;AAAA,IAAC,CAAG;AAAA,EAAA,GAAG,CAAA,CAAE;AAAE,SAAOkK,GAAI,MAAI;AAAC,UAAMxK,IAAE,IAAI,IAAI,CAAC;AAAE,UAAM,KAAKA,EAAE,KAAM,CAAA,EAAE,KAAKyK,EAAE,EAAE,QAAS,CAACtK,GAAEG,MAAI;AAAC,MAAAN,EAAE,IAAIG,GAAEG,CAAC;AAAA,IAAC,CAAG,GAAC,SAASN,GAAEG,GAAE;AAAC,UAAGH,EAAE,SAAOG,EAAE;AAAK,eAAM;AAAG,iBAAS,CAACG,GAAED,CAAC,KAAIL,EAAE,QAAS;AAAC,YAAGK,MAAIF,EAAE,IAAIG,CAAC;AAAE,iBAAM;AAAG,aAAM;AAAA,IAAE,EAAE,GAAEN,CAAC,KAAGW,EAAEX,CAAC;AAAA,EAAC,GAAG,CAAC,CAAC,CAAC,GAAEK,EAAE,cAAcqK,GAAG,UAAS,EAAC,OAAMrK,EAAE,QAAS,OAAK,EAAC,UAASO,GAAE,YAAWC,GAAE,KAAI,GAAE,aAAYP,GAAE,WAAU,EAAC,IAAI,CAACM,GAAEC,GAAE,GAAEP,GAAE,CAAC,CAAC,EAAC,GAAEH,CAAC;AAAC;AAAC,SAASyK,GAAG5K,GAAE;AAAC,EAASA,MAAT,WAAaA,IAAE;AAAI,QAAK,EAAC,OAAMG,EAAC,IAAEH,GAAE,EAAC,UAASM,GAAE,YAAW,GAAE,KAAI,GAAE,aAAYK,GAAE,WAAUC,EAAC,IAAEP,EAAE,WAAWqK,EAAE,GAAE,CAAC7J,GAAEC,CAAC,IAAET,EAAE,SAAS,IAAI,GAAE,IAAEA,EAAE,OAAO,IAAI,GAAEW,IAAEX,EAAE,YAAa,CAAAL,MAAG;AAAC,QAAG,EAAE,UAAQA,GAASa,MAAP,SAAWF,EAAE,QAAQE,CAAC,IAAEb,GAAEY,IAAG;AAAC,UAAIN;AAAE,YAAMD,IAAWF,MAAT;AAAW,MAAAS,EAAE,QAAQC,CAAC,IAAER,IAAEF,KAASG,IAAQN,KAAN,OAAQ,SAAOA,EAAE,gBAA1B,OAAuCM,IAAE;AAAA,IAAI;AAAA,EAAC,GAAG,CAACO,GAAEF,GAAEC,GAAET,CAAC,CAAC;AAAE,SAAOqK,GAAI,MAAI;AAAC,UAAMxK,IAAE,EAAE;AAAQ,QAAGA;AAAE,aAAOM,EAAEN,CAAC,GAAE,MAAI;AAAC,UAAEA,CAAC;AAAA,MAAC;AAAA,EAAC,GAAG,CAACM,GAAE,CAAC,CAAC,GAAEkK,GAAI,MAAI;AAAC,UAAMxK,IAAE,EAAE,UAAQ,EAAE,IAAI,EAAE,OAAO,IAAE;AAAK,IAAMA,KAAN,QAASc,EAAEd,CAAC;AAAA,EAAC,GAAG,CAAC,CAAC,CAAC,GAAEK,EAAE,QAAS,OAAK,EAAC,KAAIW,GAAE,OAAYH,KAAE,GAAI,IAAI,CAACA,GAAEG,CAAC,CAAC;AAAC;AAAC,SAAS6J,KAAI;AAAC,SAAOA,KAAG,OAAO,SAAO,OAAO,OAAO,KAAM,IAAC,SAAS7K,GAAE;AAAC,aAAQG,IAAE,GAAEA,IAAE,UAAU,QAAOA,KAAI;AAAC,UAAIG,IAAE,UAAUH,CAAC;AAAE,eAAQE,KAAKC;AAAE,eAAO,UAAU,eAAe,KAAKA,GAAED,CAAC,MAAIL,EAAEK,CAAC,IAAEC,EAAED,CAAC;AAAA,IAAE;AAAC,WAAOL;AAAA,EAAC,GAAE6K,GAAG,MAAM,MAAK,SAAS;AAAC;AAAC,IAAIC,KAAG,IAAGC,KAAG;AAAE,MAAMC,KAAG,MAAI,iBAAe,KAAK,OAAM,EAAG,SAAS,EAAE,EAAE,MAAM,GAAE,CAAC,IAAED,MAAWE,KAAGxB,GAAG,SAAO,WAAU;AAAC,QAAK,CAACzJ,GAAEG,CAAC,IAAEE,EAAE,SAAU,MAAIyK,KAAGE,GAAE,IAAG,MAAQ;AAAC,SAAOR,GAAI,MAAI;AAAC,IAAMxK,KAAN,QAASG,EAAE6K,GAAI,CAAA;AAAA,EAAC,GAAG,EAAE,GAAE3K,EAAE,UAAW,MAAI;AAAC,IAAAyK,KAAG;AAAA,EAAE,GAAG,CAAE,CAAA,GAAE9K;AAAC;AAAE,IAAIkL;AAAG,SAASC,KAAI;AAAC,WAAQnL,GAAEG,IAAE,UAAU,QAAOG,IAAE,IAAI,MAAMH,CAAC,GAAEE,IAAE,GAAEA,IAAEF,GAAEE;AAAI,IAAAC,EAAED,CAAC,IAAE,UAAUA,CAAC;AAAE,QAAMD,IAAE,kBAAgBE,EAAE,KAAK,GAAG;AAAE,MAAIC;AAAE,GAAOP,IAAEkL,OAAT,QAAclL,EAAE,IAAII,CAAC,OAAWG,IAAE2K,OAAT,QAAc3K,EAAE,IAAIH,CAAC,GAAE,QAAQ,KAAKA,CAAC;AAAE;AAAC,SAASgL,KAAI;AAAC,QAAMpL,IAAE,oBAAI;AAAI,SAAM,EAAC,KAAKG,GAAEG,GAAE;AAAC,QAAID;AAAE,KAAOA,IAAEL,EAAE,IAAIG,CAAC,MAAhB,QAAoBE,EAAE,QAAS,CAAAL,MAAGA,EAAEM,CAAC,CAAG;AAAA,EAAA,GAAE,GAAGH,GAAEG,GAAE;AAAC,IAAAN,EAAE,IAAIG,GAAE,CAAC,GAAGH,EAAE,IAAIG,CAAC,KAAG,CAAE,GAACG,CAAC,CAAC;AAAA,EAAC,GAAE,IAAIH,GAAEG,GAAE;AAAC,QAAID;AAAE,IAAAL,EAAE,IAAIG,KAAUE,IAAEL,EAAE,IAAIG,CAAC,MAAhB,OAAmB,SAAOE,EAAE,OAAQ,CAAAL,MAAGA,MAAIM,CAAC,MAAK,CAAE,CAAA;AAAA,EAAC,EAAC;AAAC;AAAgB,QAAQ,IAAI,aAA3B,iBAAsC4K,KAAG,oBAAI;AAAK,MAAMG,KAAGhL,EAAE,cAAc,IAAI,GAAEiL,KAAGjL,EAAE,cAAc,IAAI,GAAEkL,KAAG,MAAI;AAAC,MAAIvL;AAAE,WAAcA,IAAEK,EAAE,WAAWgL,EAAE,MAAxB,OAA2B,SAAOrL,EAAE,OAAK;AAAI,GAAEwL,KAAG,MAAInL,EAAE,WAAWiL,EAAE;AAAE,SAASG,GAAGzL,GAAE;AAAC,QAAK,EAAC,UAASG,GAAE,IAAGG,EAAC,IAAEN,GAAE,IAAEuL,GAAE;AAAG,SAAOlL,EAAE,cAAcgL,GAAG,UAAS,EAAC,OAAMhL,EAAE,QAAS,OAAK,EAAC,IAAGC,GAAE,UAAS,EAAC,IAAI,CAACA,GAAE,CAAC,CAAC,EAAC,GAAEH,CAAC;AAAC;AAAC,SAASuL,GAAG1L,GAAE;AAAC,QAAK,EAAC,UAASG,EAAC,IAAEH,GAAEM,IAAED,EAAE,OAAO,EAAE,GAAE,IAAEA,EAAE,YAAa,CAAAL,MAAG;AAAC,IAAAM,EAAE,UAAQ,CAAC,GAAGA,EAAE,SAAQN,CAAC;AAAA,EAAC,GAAG,CAAA,CAAE,GAAE,IAAEK,EAAE,YAAa,CAAAL,MAAG;AAAC,IAAAM,EAAE,UAAQA,EAAE,QAAQ,OAAQ,CAAAH,MAAGA,MAAIH,CAAG;AAAA,EAAA,GAAG,CAAE,CAAA,GAAEW,IAAEN,EAAE,SAAU,MAAI+K,GAAI,CAAA,EAAG,CAAC;AAAE,SAAO/K,EAAE,cAAciL,GAAG,UAAS,EAAC,OAAMjL,EAAE,QAAS,OAAK,EAAC,UAASC,GAAE,SAAQ,GAAE,YAAW,GAAE,QAAOK,EAAC,IAAI,CAAC,GAAE,GAAEA,CAAC,CAAC,EAAC,GAAER,CAAC;AAAC;AAAC,SAASwL,GAAG3L,GAAE;AAAC,SAAM,sBAAoBA;AAAC;AAAC,SAAS4L,GAAG5L,GAAE;AAAC,QAAMG,IAAEa,GAAEhB,CAAC;AAAE,SAAOwK,GAAI,MAAI;AAAC,IAAArK,EAAE,UAAQH;AAAA,EAAC,IAAIG;AAAC;AAAC,MAAM0L,KAAGF,GAAG,cAAc;AAAE,SAASG,GAAG9L,GAAEG,GAAEG,GAAE;AAAC,SAAOA,KAAG,CAACuE,GAAGvE,CAAC,IAAE,IAAY,OAAON,KAAjB,WAAmBA,IAAQA,KAAN,OAAQ,SAAOA,EAAEG,CAAC;AAAC;AAAC,IAAI4L,KAAG;AAAE,SAASC,GAAGhM,GAAEG,GAAE;AAAC,EAASA,MAAT,WAAaA,IAAE;AAAI,QAAK,EAAC,eAAcG,IAAE,IAAG,gBAAeD,IAAE,IAAG,MAAKD,IAAE,GAAE,IAAED;AAAE,EAAAE,KAAG,qBAAqB0L,EAAE;AAAE,QAAMxL,IAAE,MAAUP,KAAN,OAAQ,SAAOA,EAAE,MAAM,EAAC,eAAcM,EAAC,CAAC;AAAE,EAAAF,IAAEG,EAAC,IAAGwL,KAAG,sBAAsBxL,CAAC;AAAC;AAAC,SAAS0L,GAAGjM,GAAEG,GAAE;AAAC,MAAIG,IAAEN,EAAE,OAAQ,CAAAA,MAAG;AAAC,QAAIM;AAAE,WAAON,EAAE,aAAWG,OAAWG,IAAEN,EAAE,YAAX,OAAoB,SAAOM,EAAE;AAAA,EAAK,CAAG,GAACD,IAAEC;AAAE,SAAKD,EAAE;AAAQ,IAAAA,IAAEL,EAAE,OAAQ,CAAAA,MAAG;AAAC,UAAIG;AAAE,cAAcA,IAAEE,MAAT,OAAY,SAAOF,EAAE,KAAM,CAAAA,MAAG;AAAC,YAAIG;AAAE,eAAON,EAAE,aAAWG,EAAE,QAAYG,IAAEN,EAAE,YAAX,OAAoB,SAAOM,EAAE;AAAA,MAAK,CAAC;AAAA,IAAE,CAAG,GAACA,IAAEA,EAAE,OAAOD,CAAC;AAAE,SAAOC;AAAC;AAAC,IAAI4L,KAAG,oBAAI,WAAQC,KAAG,oBAAI,WAAQC,KAAG,CAAE,GAACC,KAAG;AAAE,MAAMC,KAAG,CAAAtM,MAAGA,MAAIA,EAAE,QAAMsM,GAAGtM,EAAE,UAAU,IAAGuM,KAAG,CAACvM,GAAEG,MAAIA,EAAE,IAAK,CAAAA,MAAG;AAAC,MAAGH,EAAE,SAASG,CAAC;AAAE,WAAOA;AAAE,QAAMG,IAAEgM,GAAGnM,CAAC;AAAE,SAAOH,EAAE,SAASM,CAAC,IAAEA,IAAE;AAAI,GAAI,OAAQ,OAAS,KAAN,IAAS;AAAC,SAASkM,GAAGxM,GAAEG,GAAEG,GAAE;AAAC,EAASH,MAAT,WAAaA,IAAE,KAAaG,MAAT,WAAaA,IAAE;AAAI,QAAMD,IAAEyE,GAAG9E,EAAE,CAAC,CAAC,EAAE;AAAK,SAAO,SAASA,GAAEG,GAAEG,GAAED,GAAE;AAAC,UAAMD,IAAE,0BAAyBG,IAAEF,IAAE,UAAQC,IAAE,gBAAc,MAAKK,IAAE4L,GAAGpM,GAAEH,CAAC,GAAEY,IAAE,oBAAI,OAAIC,IAAE,IAAI,IAAIF,CAAC,GAAEG,IAAE,CAAE;AAAC,IAAAsL,GAAGhM,CAAC,MAAIgM,GAAGhM,CAAC,IAAE,oBAAI;AAAS,UAAMW,IAAEqL,GAAGhM,CAAC;AAAE,WAAOO,EAAE,QAAS,SAASX,EAAEG,GAAE;AAAC,MAAAA,KAAG,CAACS,EAAE,IAAIT,CAAC,MAAIS,EAAE,IAAIT,CAAC,GAAEA,EAAE,cAAYH,EAAEG,EAAE,UAAU;AAAA,IAAE,IAAI,SAASH,EAAEG,GAAE;AAAC,MAAAA,KAAG,CAACU,EAAE,IAAIV,CAAC,KAAG,CAAA,EAAG,QAAQ,KAAKA,EAAE,UAAU,CAAAA,MAAG;AAAC,YAAcgD,GAAEhD,CAAC,MAAd;AAAgB,cAAGS,EAAE,IAAIT,CAAC;AAAE,YAAAH,EAAEG,CAAC;AAAA,eAAM;AAAC,kBAAMH,IAAEO,IAAEJ,EAAE,aAAaI,CAAC,IAAE,MAAKD,IAASN,MAAP,QAAoBA,MAAV,SAAYK,KAAG6L,GAAG,IAAI/L,CAAC,KAAG,KAAG,GAAEQ,KAAGI,EAAE,IAAIZ,CAAC,KAAG,KAAG;AAAE,YAAA+L,GAAG,IAAI/L,GAAEE,CAAC,GAAEU,EAAE,IAAIZ,GAAEQ,CAAC,GAAEG,EAAE,KAAKX,CAAC,GAAME,MAAJ,KAAOC,KAAG6L,GAAG,IAAIhM,CAAC,GAAMQ,MAAJ,KAAOR,EAAE,aAAaC,GAAE,EAAE,GAAE,CAACE,KAAGC,KAAGJ,EAAE,aAAaI,GAAE,MAAM;AAAA,UAAC;AAAA,MAAC;IAAG,EAAEJ,CAAC,GAAES,EAAE,MAAO,GAACyL,MAAK,MAAI;AAAC,MAAAvL,EAAE,QAAS,CAAAd,MAAG;AAAC,cAAMG,KAAG+L,GAAG,IAAIlM,CAAC,KAAG,KAAG,GAAEM,KAAGS,EAAE,IAAIf,CAAC,KAAG,KAAG;AAAE,QAAAkM,GAAG,IAAIlM,GAAEG,CAAC,GAAEY,EAAE,IAAIf,GAAEM,CAAC,GAAEH,MAAI,CAACgM,GAAG,IAAInM,CAAC,KAAGO,KAAGP,EAAE,gBAAgBO,CAAC,GAAE4L,GAAG,OAAOnM,CAAC,IAAGM,KAAGN,EAAE,gBAAgBI,CAAC;AAAA,MAAC,CAAG,GAACiM,MAAKA,OAAKH,KAAG,oBAAI,WAAQA,KAAG,oBAAI,WAAQC,KAAG,oBAAI,WAAQC,KAAG,CAAE;AAAA,IAAC;AAAA,EAAC,EAAEpM,EAAE,OAAO,MAAM,KAAKK,EAAE,iBAAiB,aAAa,CAAC,CAAC,GAAEA,GAAEF,GAAEG,CAAC;AAAC;AAAC,MAAMmM,KAAG,OAAK,EAAC,eAAc,IAAG,cAAyB,OAAO,kBAAnB,cAAmC,eAAe,WAAW,SAAS,eAAe,IAAE,SAAO,OAAM;AAAG,SAASC,GAAG1M,GAAEG,GAAE;AAAC,QAAMG,IAAEkH,GAAGxH,GAAEyM,GAAE,CAAE;AAAE,EAAStM,MAAT,UAAYG,EAAE,QAAS;AAAC,QAAMD,IAAEC,EAAE,QAAQ+D,GAAGS,GAAG9E,CAAC,CAAC,CAAC;AAAE,SAAOM,EAAE,MAAMD,IAAE,CAAC,EAAE,CAAC;AAAC;AAAC,SAASsM,GAAG3M,GAAEG,GAAE;AAAC,QAAMG,IAAEH,KAAGH,EAAE,eAAcK,IAAEL,EAAE;AAAc,SAAM,CAACK,KAAG,CAACiE,GAAGhE,GAAED,CAAC;AAAC;AAAC,MAAMuM,KAAG,EAAC,QAAO,GAAE,MAAK,iBAAgB,QAAO,OAAM,QAAO,QAAO,UAAS,UAAS,SAAQ,GAAE,UAAS,SAAQ,YAAW,UAAS,OAAM,OAAM,KAAI,GAAE,MAAK,EAAC;AAAE,SAASC,GAAG7M,GAAE;AAAC,EAAQA,EAAE,QAAV,UAAgBA,EAAE,QAAO,aAAa,MAAS;AAAE;AAAC,MAAM8M,KAAGzM,EAAE,WAAY,SAASL,GAAEG,GAAE;AAAC,QAAK,CAACG,GAAE,CAAC,IAAED,EAAE,SAAQ;AAAG,EAAAmK,GAAI,OAAK5F,QAAM,EAAE,QAAQ,GAAE,SAAS,iBAAiB,WAAUiI,EAAE,GAAE,MAAI;AAAC,aAAS,oBAAoB,WAAUA,EAAE;AAAA,EAAC,IAAI,CAAE,CAAA;AAAE,QAAM,IAAE,EAAC,KAAI1M,GAAE,UAAS,GAAE,MAAKG,GAAE,eAAc,CAACA,KAAG,QAAO,CAACqL,GAAG,aAAa,CAAC,GAAE,IAAG,OAAMiB,GAAE;AAAE,SAAOvM,EAAE,cAAc,QAAOwK,GAAG,CAAE,GAAC7K,GAAE,CAAC,CAAC;AAAC,CAAG,GAAC+M,KAAG1M,EAAE,cAAc,IAAI,GAAE2M,KAAG;AAA6B,SAASC,GAAGjN,GAAE;AAAC,SAAOA,IAAEA,EAAE,aAAagN,EAAE,IAAEhN,IAAEA,EAAE,cAAc,MAAIgN,KAAG,GAAG,KAAGhN,IAAE;AAAI;AAAC,MAAMkN,KAAG;AAAG,IAAIC,KAAG;AAAG,SAASC,GAAGpN,GAAE;AAAC,EAAAmN,KAAGA,GAAG,OAAQ,OAAG,EAAE,WAAW;AAAG,MAAIhN,IAAEH;AAAE,MAAGG,KAAYgD,GAAEhD,CAAC,MAAZ,QAAc;AAAC,QAAG,CAACsH,GAAGtH,GAAEsM,IAAI,GAAE;AAAC,YAAM,IAAEjF,GAAGrH,GAAEsM,GAAI,CAAA,EAAE,CAAC;AAAE,YAAItM,IAAE;AAAA,IAAE;AAAC,IAAAgN,GAAG,KAAKhN,CAAC,GAAEgN,GAAG,SAAOD,OAAKC,KAAGA,GAAG,MAAM,GAAG;AAAA,EAAE;AAAC;AAAC,SAASE,KAAI;AAAC,SAAOF,GAAG,QAAQ,UAAU,KAAM,CAAAnN,MAAGA,EAAE,WAAa;AAAA;AAAC,MAAMsN,KAAGjN,EAAE,WAAY,SAASL,GAAEG,GAAE;AAAC,SAAOE,EAAE,cAAc,UAASwK,GAAG,CAAE,GAAC7K,GAAE,EAAC,MAAK,UAAS,KAAIG,GAAE,UAAS,IAAG,OAAMyM,GAAE,CAAC,CAAC;AAAC,CAAC;AAAG,SAASW,GAAGvN,GAAE;AAAC,QAAK,EAAC,SAAQG,GAAE,UAASG,GAAE,UAAS,IAAE,IAAG,OAAM,IAAE,CAAC,SAAS,GAAE,QAAOK,IAAE,IAAG,cAAaC,IAAE,GAAE,aAAYC,IAAE,IAAG,cAAaC,IAAE,IAAG,OAAM,IAAE,IAAG,uBAAsBE,IAAE,IAAG,iBAAgB,IAAE,GAAE,IAAEhB,GAAE,EAAC,MAAKkB,GAAE,MAAK,GAAE,QAAOQ,GAAE,cAAa,GAAE,QAAO,GAAE,SAAQ3B,GAAE,YAAWE,GAAE,UAAS,EAAC,cAAaC,GAAE,UAASM,EAAC,EAAC,IAAEL,GAAEM,IAAY,OAAOG,KAAjB,YAAoBA,IAAE,GAAEF,IAAE0E,GAAGlF,CAAC,KAAGO,GAAEU,IAAe,OAAO,cAApB,OAAiC,EAAE,WAAU,YAAY,cAAYR,GAAES,IAAEwK,GAAG,CAAC,GAAEvK,IAAEuK,GAAGhL,CAAC,GAAEU,IAAEsK,GAAG/K,CAAC,GAAEU,IAAEiK,GAAE,GAAGhK,IAAEnB,EAAE,WAAW0M,EAAE,GAAEnL,KAAEvB,EAAE,OAAO,IAAI,GAAEwB,KAAExB,EAAE,OAAO,IAAI,GAAEyB,IAAEzB,EAAE,OAAO,EAAE,GAAE0B,KAAE1B,EAAE,OAAO,EAAE,GAAE2B,KAAE3B,EAAE,OAAO,EAAE,GAAE6B,KAAQV,KAAN,MAAQW,KAAE8K,GAAGzM,CAAC,GAAE4B,IAAEuH,GAAI,SAAS3J,GAAE;AAAC,WAAgBA,MAAT,WAAaA,IAAEmC,KAAGnC,IAAEwH,GAAGxH,GAAEyM,GAAI,CAAA,IAAE,CAAE;AAAA,EAAA,IAAIpK,IAAEsH,GAAI,CAAA3J,MAAG;AAAC,UAAMG,IAAEiC,EAAEpC,CAAC;AAAE,WAAOoB,EAAE,QAAQ,IAAK,CAAApB,MAAGE,KAAiBF,MAAd,cAAgBE,IAAEiC,MAAgBnC,MAAb,aAAemC,KAAEhC,GAAI,OAAO,OAAO,EAAE;EAAM,CAAC;AAAG,WAASmC,GAAEtC,GAAE;AAAC,WAAM,CAAC,KAAGgB,KAAG,IAAEX,EAAE,cAAciN,IAAG,EAAC,KAActN,MAAV,UAAY4B,KAAEC,IAAE,SAAQ,CAAA7B,MAAG,EAAE,IAAGA,EAAE,WAAW,EAAC,GAAY,OAAOgB,KAAjB,WAAmBA,IAAE,SAAS,IAAE;AAAA,EAAI;AAACX,EAAAA,EAAE,UAAW,MAAI;AAAa,QAAT,KAAY,CAAC;AAAE;AAAO,aAASL,EAAEA,GAAE;AAAC,UAAWA,EAAE,QAAV,OAAc;AAAC,QAAAsE,GAAGnC,IAAEkC,GAAGS,GAAG3C,EAAC,CAAC,CAAC,KAAOC,IAAI,WAAR,KAAgB,CAAC1B,KAAGyE,GAAGnF,CAAC;AAAE,cAAMG,IAAEkC,EAAC,GAAG/B,IAAE0E,GAAGhF,CAAC;AAAE,QAAcoB,EAAE,QAAQ,CAAC,MAAzB,eAA4Bd,MAAIJ,MAAIiF,GAAGnF,CAAC,GAAEA,EAAE,WAASgM,GAAG7L,EAAEA,EAAE,SAAO,CAAC,CAAC,IAAE6L,GAAG7L,EAAE,CAAC,CAAC,IAAgBiB,EAAE,QAAQ,CAAC,MAAxB,cAA2Bd,MAAI6B,MAAGnC,EAAE,aAAWmF,GAAGnF,CAAC,GAAEgM,GAAG7L,EAAE,CAAC,CAAC;AAAA,MAAE;AAAA,IAAC;AAAC,UAAMA,IAAE2E,GAAG3C,EAAC;AAAE,WAAOhC,EAAE,iBAAiB,WAAUH,CAAC,GAAE,MAAI;AAAC,MAAAG,EAAE,oBAAoB,WAAUH,CAAC;AAAA,IAAC;AAAA,EAAC,GAAG,CAAC,GAAEE,GAAEiC,IAAE,GAAEf,GAAEV,GAAE0B,GAAEC,CAAC,CAAC,GAAEhC,EAAE,UAAW,MAAI;AAAC,QAAG,CAAC,KAAGG;AAAE,aAAOA,EAAE,iBAAiB,WAAUR,CAAC,GAAE,MAAI;AAAC,QAAAQ,EAAE,oBAAoB,WAAUR,CAAC;AAAA,MAAC;AAAE,aAASA,EAAEA,GAAE;AAAC,YAAMG,IAAE6E,GAAGhF,CAAC,GAAEM,IAAE8B,EAAG,EAAC,QAAQjC,CAAC;AAAE,MAAKG,MAAL,OAAS0B,GAAE,UAAQ1B;AAAA,IAAE;AAAA,EAAC,GAAG,CAAC,GAAEE,GAAE4B,CAAC,CAAC,GAAE/B,EAAE,UAAW,MAAI;AAAC,QAAG,CAAC,KAAG;AAAE,aAAOG,KAAGgD,GAAGtD,CAAC,KAAGA,EAAE,iBAAiB,YAAWC,CAAC,GAAED,EAAE,iBAAiB,eAAcF,CAAC,GAAEQ,EAAE,iBAAiB,YAAWL,CAAC,GAAE,MAAI;AAAC,QAAAD,EAAE,oBAAoB,YAAWC,CAAC,GAAED,EAAE,oBAAoB,eAAcF,CAAC,GAAEQ,EAAE,oBAAoB,YAAWL,CAAC;AAAA,MAAC,KAAG;AAAO,aAASH,IAAG;AAAC,MAAA+B,GAAE,UAAQ,IAAG,WAAY,MAAI;AAAC,QAAAA,GAAE,UAAQ;AAAA,MAAE,CAAC;AAAA,IAAE;AAAC,aAAS5B,EAAEH,GAAE;AAAC,YAAMG,IAAEH,EAAE;AAAc,qBAAgB,MAAI;AAAC,cAAMM,IAAE,EAAEgE,GAAGpE,GAAEC,CAAC,KAAGmE,GAAG9D,GAAEL,CAAC,KAAGmE,GAAGnE,GAAEK,CAAC,KAAG8D,GAAS9C,KAAN,OAAQ,SAAOA,EAAE,YAAWrB,CAAC,KAASA,KAAN,QAASA,EAAE,aAAawL,GAAG,aAAa,CAAC,KAAGpK,MAAI0K,GAAG1K,EAAE,SAAS,SAAQG,CAAC,EAAE,KAAM,CAAA1B,MAAG;AAAC,cAAIM,IAAED;AAAE,iBAAOiE,IAAUhE,KAAEN,EAAE,YAAX,OAAoB,SAAOM,GAAE,SAAS,UAASH,CAAC,KAAGmE,IAAUjE,KAAEL,EAAE,YAAX,OAAoB,SAAOK,GAAE,SAAS,cAAaF,CAAC;AAAA,QAAC,CAAG,KAAE,SAASH,GAAEG,IAAE;AAAC,cAAIG;AAAE,cAAID,IAAE,CAAA,GAAGD,MAASE,KAAEN,EAAE,KAAM,CAAAA,OAAGA,GAAE,OAAKG,EAAG,MAA9B,OAAgC,SAAOG,GAAE;AAAS,iBAAKF,MAAG;AAAC,kBAAMD,KAAEH,EAAE,KAAM,CAAAA,OAAGA,GAAE,OAAKI,EAAC;AAAG,YAAAA,KAAQD,MAAN,OAAQ,SAAOA,GAAE,UAASA,OAAIE,IAAEA,EAAE,OAAOF,EAAC;AAAA,UAAE;AAAC,iBAAOE;AAAA,QAAC,EAAEkB,EAAE,SAAS,SAAQG,CAAC,EAAE,KAAM,CAAA1B,MAAG;AAAC,cAAIM,IAAED;AAAE,mBAAcC,KAAEN,EAAE,YAAX,OAAoB,SAAOM,GAAE,SAAS,cAAYH,OAAWE,KAAEL,EAAE,YAAX,OAAoB,SAAOK,GAAE,SAAS,kBAAgBF;AAAA,QAAC,CAAC;AAAK,YAAGW,KAAGR,KAAG+D,GAAGS,GAAG3C,EAAC,CAAC,MAAI2C,GAAG3C,EAAC,EAAE,MAAK;AAAC,UAAAqB,GAAGrB,EAAC,KAAGA,GAAE,MAAK;AAAG,gBAAMnC,IAAEgC,GAAE,SAAQ7B,KAAEiC,EAAG,GAAC9B,KAAEH,GAAEH,CAAC,KAAGG,GAAEA,GAAE,SAAO,CAAC,KAAGgC;AAAE,UAAAqB,GAAGlD,EAAC,KAAGA,GAAE,MAAO;AAAA,QAAA;AAAC,SAACI,KAAG,KAAG,CAACP,KAAG,CAACG,KAAGyB,GAAE,WAAS5B,MAAIkN,GAAE,MAAKvL,EAAE,UAAQ,IAAG,EAAE,IAAG9B,GAAE,WAAW;AAAA,MAAE,CAAG;AAAA,IAAA;AAAA,EAAC,GAAG,CAAC,GAAEE,GAAEM,GAAE2B,IAAE,GAAET,GAAEH,GAAEC,GAAE,GAAE,GAAEV,GAAEsB,GAAE1B,CAAC,CAAC,GAAEL,EAAE,UAAW,MAAI;AAAC,QAAIL;AAAE,QAAG;AAAE;AAAO,UAAMG,IAAE,MAAM,MAAYqB,KAAN,SAAgBxB,IAAEwB,EAAE,eAAX,OAAuB,SAAOxB,EAAE,iBAAiB,MAAI2L,GAAG,QAAQ,IAAE,GAAG,MAAI,CAAA,CAAE;AAAE,QAAGnL,GAAE;AAAC,YAAMR,IAAE,CAACQ,GAAE,GAAGL,GAAEyB,GAAE,SAAQC,GAAE,SAAQT,EAAE,QAAQ,SAAS,WAAW,KAAGV,IAAER,IAAE,IAAI,EAAE,OAAQ,CAAAF,MAASA,KAAN,OAAUM,IAAE,KAAGI,IAAE8L,GAAGxM,GAAEmB,GAAE,CAACA,CAAC,IAAEqL,GAAGxM,CAAC;AAAE,aAAM,MAAI;AAAC,QAAAM,EAAC;AAAA,MAAE;AAAA,IAAC;AAAA,EAAC,GAAG,CAAC,GAAEJ,GAAEM,GAAE,GAAEY,GAAEI,GAAEd,GAAES,CAAC,CAAC,GAAEqJ,GAAI,MAAI;AAAC,QAAG,KAAG,CAAChH,GAAGrB,EAAC;AAAE;AAAO,UAAMnC,IAAEqE,GAAGS,GAAG3C,EAAC,CAAC;AAAE,mBAAgB,MAAI;AAAC,YAAMhC,IAAEkC,EAAEF,EAAC,GAAE7B,IAAEe,EAAE,SAAQhB,KAAa,OAAOC,KAAjB,WAAmBH,EAAEG,CAAC,IAAEA,EAAE,YAAU6B,IAAE/B,IAAEkE,GAAGnC,IAAEnC,CAAC;AAAE,MAAAS,KAAGL,KAAG,CAACc,KAAG8K,GAAG3L,GAAE,EAAC,eAAcA,MAAI8B,GAAC,CAAC;AAAA,IAAC;EAAG,GAAG,CAAC,GAAEjB,GAAEiB,IAAE1B,GAAE4B,GAAEhB,CAAC,CAAC,GAAEmJ,GAAI,MAAI;AAAC,QAAG,KAAG,CAACrI;AAAE;AAAO,QAAInC,IAAE;AAAG,UAAMG,IAAE2E,GAAG3C,EAAC,GAAE7B,IAAE+D,GAAGlE,CAAC;AAAE,QAAIE,IAAEN,EAAE,QAAQ;AAAU,aAASQ,EAAEJ,IAAE;AAAC,UAAG,EAAC,MAAKG,IAAE,QAAOF,GAAE,OAAMG,IAAE,QAAOI,GAAC,IAAER;AAAE,MAAAG,OAAID,IAAEE,KAAkBH,MAAf,gBAAkB,EAAE,aAAa,WAASgN,GAAG,EAAE,aAAa,OAAO,GAAYhN,MAAV,WAA4BG,GAAE,SAAjB,iBAAwBuB,EAAE,UAAQ,KAAsB1B,MAAlB,oBAAsBO,MAAGmB,EAAE,UAAQ,IAAG9B,IAAE,MAAI8B,EAAE,UAAQ,EAAE2C,GAAGlE,EAAC,KAAGoE,GAAGpE,EAAC;AAAA,IAAG;AAAC,IAAA6M,GAAG9M,CAAC,GAAE,EAAE,GAAG,cAAaC,CAAC;AAAE,UAAMI,IAAER,EAAE,cAAc,MAAM;AAAE,WAAOQ,EAAE,aAAa,YAAW,IAAI,GAAEA,EAAE,aAAa,eAAc,MAAM,GAAE,OAAO,OAAOA,EAAE,OAAMiM,EAAE,GAAE1K,MAAGhC,KAAGA,EAAE,sBAAsB,YAAWS,CAAC,GAAE,MAAI;AAAC,QAAE,IAAI,cAAaJ,CAAC;AAAE,YAAMD,KAAE+D,GAAGlE,CAAC,GAAEC,KAAEkE,GAAG9D,GAAEF,EAAC,KAAGiB,KAAG0K,GAAG1K,EAAE,SAAS,SAAQG,CAAC,EAAE,KAAM,CAAA1B,OAAG;AAAC,YAAIG;AAAE,eAAOmE,IAAUnE,KAAEH,GAAE,YAAX,OAAoB,SAAOG,GAAE,SAAS,UAASG,EAAC;AAAA,MAAC,CAAC;AAAG,OAACF,MAAGC,KAAG,CAAC,SAAQ,WAAW,EAAE,SAASA,EAAE,IAAI,MAAI,EAAE,aAAa,WAAS+M,GAAG,EAAE,aAAa,OAAO;AAAE,YAAMxM,IAAa,OAAOU,EAAE,WAApB,YAA4B+L,GAAI,KAAE1M,IAAEW,EAAE,QAAQ,WAASX;AAAE,qBAAgB,MAAI;AAAC,QAAAW,EAAE,WAAS,CAACQ,EAAE,WAAS0B,GAAG5C,CAAC,MAAIA,MAAIN,MAAGA,OAAIH,EAAE,QAAMC,OAAIQ,EAAE,MAAM,EAAC,eAAcZ,EAAC,CAAC,GAAEW,EAAE;MAAQ,CAAC;AAAA,IAAE;AAAA,EAAC,GAAG,CAAC,GAAEH,GAAE2B,IAAEb,GAAEvB,GAAE,GAAE,GAAEwB,GAAEG,GAAEQ,IAAEhC,CAAC,CAAC,GAAEG,EAAE,UAAW,MAAI;AAAC,mBAAgB,MAAI;AAAC,MAAAyB,EAAE,UAAQ;AAAA,IAAE,CAAC;AAAA,EAAE,GAAG,CAAC,CAAC,CAAC,GAAE0I,GAAI,MAAI;AAAC,QAAG,CAAC,KAAGhJ;AAAE,aAAOA,EAAE,qBAAqB,EAAC,OAAM,GAAE,iBAAgB,GAAE,MAAKN,GAAE,cAAa,GAAE,MAAK,EAAC,CAAC,GAAE,MAAI;AAAC,QAAAM,EAAE,qBAAqB,IAAI;AAAA,MAAC;AAAA,EAAC,GAAG,CAAC,GAAEA,GAAE,GAAEN,GAAE,GAAE,GAAE,CAAC,CAAC,GAAEsJ,GAAI,MAAI;AAAwE,QAApE,KAAY,CAACrI,MAAwB,OAAO,oBAAnB,cAA8C1B;AAAE;AAAO,UAAMT,IAAE,MAAI;AAAC,YAAMA,IAAEmC,GAAE,aAAa,UAAU,GAAEhC,IAAEiC,KAAI9B,IAAE+D,GAAGS,GAAGtE,CAAC,CAAC,GAAEH,IAAEF,EAAE,QAAQG,CAAC;AAAE,MAAKD,MAAL,OAAS2B,GAAE,UAAQ3B,IAAGe,EAAE,QAAQ,SAAS,UAAU,KAAGd,MAAI,EAAE,aAAa,WAAaH,EAAE,WAAN,IAAmBH,MAAN,OAASmC,GAAE,aAAa,YAAW,GAAG,IAASnC,MAAP,QAAUmC,GAAE,aAAa,YAAW,IAAI;AAAA,IAAC;AAAE,IAAAnC;AAAI,UAAMG,IAAE,IAAI,iBAAiBH,CAAC;AAAE,WAAOG,EAAE,QAAQgC,IAAE,EAAC,WAAU,IAAG,SAAQ,IAAG,YAAW,GAAE,CAAC,GAAE,MAAI;AAAC,MAAAhC,EAAE,WAAU;AAAA,IAAE;AAAA,EAAC,GAAG,CAAC,GAAEK,GAAE2B,IAAE,GAAEf,GAAEgB,GAAE3B,CAAC,CAAC;AAAE,QAAMgC,KAAE,CAAC,KAAGtB,MAAI,CAAC,KAAG,CAACT,OAAKwB,MAAG;AAAG,SAAO7B,EAAE,cAAcA,EAAE,UAAS,MAAKoC,MAAGpC,EAAE,cAAcyM,IAAG,EAAC,aAAY,UAAS,KAAUtL,KAAN,OAAQ,SAAOA,EAAE,iBAAgB,SAAQ,CAAAxB,MAAG;AAAC,QAAG,GAAE;AAAC,YAAMA,IAAEqC,EAAG;AAAC,MAAA2J,GAAiB,EAAE,CAAC,MAAjB,cAAmBhM,EAAE,CAAC,IAAEA,EAAEA,EAAE,SAAO,CAAC,CAAC;AAAA,IAAC,WAAewB,KAAN,QAASA,EAAE,oBAAkBA,EAAE;AAAW,UAAGM,EAAE,UAAQ,IAAG6K,GAAG3M,GAAEwB,EAAE,UAAU,GAAE;AAAC,cAAMxB,IAAE0M,GAAG,SAAS,MAAK,MAAM,KAAGxM;AAAE,QAAMF,KAAN,QAASA,EAAE;MAAO,OAAK;AAAC,YAAIG;AAAE,SAAOA,IAAEqB,EAAE,iBAAiB,YAA5B,QAAsCrB,EAAE,MAAK;AAAA,MAAE;AAAA,EAAC,EAAC,CAAC,GAAE,CAACO,KAAG4B,GAAE,OAAO,GAAEhC,GAAEgC,GAAE,KAAK,GAAEG,MAAGpC,EAAE,cAAcyM,IAAG,EAAC,aAAY,UAAS,KAAUtL,KAAN,OAAQ,SAAOA,EAAE,gBAAe,SAAQ,CAAAxB,MAAG;AAAC,QAAG;AAAE,MAAAgM,GAAG3J,IAAI,CAAC,CAAC;AAAA,aAAgBb,KAAN,QAASA,EAAE,oBAAkBA,EAAE;AAAW,UAAG,MAAIM,EAAE,UAAQ,KAAI6K,GAAG3M,GAAEwB,EAAE,UAAU,GAAE;AAAC,cAAMxB,IAAE0M,GAAG,SAAS,MAAK,MAAM,KAAGxM;AAAE,QAAMF,KAAN,QAASA,EAAE,MAAK;AAAA,MAAE,OAAK;AAAC,YAAIG;AAAE,SAAOA,IAAEqB,EAAE,gBAAgB,YAA3B,QAAqCrB,EAAE,MAAO;AAAA,MAAA;AAAA,EAAC,EAAC,CAAC,CAAC;AAAC;AAAC,SAASqN,GAAGxN,GAAE;AAAC,SAAOwD,GAAGxD,EAAE,MAAM,KAAcA,EAAE,OAAO,YAApB;AAA2B;AAAC,SAASyN,GAAGzN,GAAE;AAAC,SAAOkF,GAAGlF,CAAC;AAAC;AAAC,MAAM0N,KAAG,EAAC,aAAY,iBAAgB,WAAU,eAAc,OAAM,UAAS,GAAEC,KAAG,EAAC,aAAY,wBAAuB,WAAU,sBAAqB,OAAM,iBAAgB,GAAEC,KAAG,CAAA5N,MAAG;AAAC,MAAIG,GAAEG;AAAE,SAAM,EAAC,WAAqB,OAAON,KAAlB,YAAoBA,KAASG,IAAQH,KAAN,OAAQ,SAAOA,EAAE,cAA1B,QAAsCG,GAAE,cAAwB,OAAOH,KAAlB,YAAoBA,KAASM,IAAQN,KAAN,OAAQ,SAAOA,EAAE,iBAA1B,QAAyCM,EAAC;AAAC;AAAE,SAASuN,GAAG7N,GAAE;AAAC,QAAK,EAAC,MAAKG,IAAE,IAAG,cAAaG,GAAE,UAAS,EAAC,IAAEN,GAAE,IAAEiL,GAAE,GAAGtK,IAAEN,EAAE,OAAO,CAAA,CAAE,GAAE,CAACO,CAAC,IAAEP,EAAE,SAAU,MAAI+K,GAAI,CAAA,GAAGvK,IAAQ0K,GAAI,KAAV;AAAW,MAAkB,QAAQ,IAAI,aAA3B,cAAoC;AAAC,UAAMvL,IAAE,EAAE;AAAU,IAAAA,KAAG,CAACuD,GAAGvD,CAAC,KAAG,WAAU;AAAC,eAAQA,GAAEG,IAAE,UAAU,QAAOG,IAAE,IAAI,MAAMH,CAAC,GAAEE,IAAE,GAAEA,IAAEF,GAAEE;AAAI,QAAAC,EAAED,CAAC,IAAE,UAAUA,CAAC;AAAE,YAAMD,IAAE,kBAAgBE,EAAE,KAAK,GAAG;AAAE,UAAIC;AAAE,OAAOP,IAAEkL,OAAT,QAAclL,EAAE,IAAII,CAAC,OAAWG,IAAE2K,OAAT,QAAc3K,EAAE,IAAIH,CAAC,GAAE,QAAQ,MAAMA,CAAC;AAAA,IAAE,EAAE,qEAAoE,uEAAsE,UAAU;AAAA,EAAC;AAAC,QAAK,CAACU,GAAE,CAAC,IAAET,EAAE,SAAS,EAAE,SAAS,GAAEW,IAAE2I,GAAI,CAAC3J,GAAEG,GAAEE,MAAI;AAAC,IAAAM,EAAE,QAAQ,YAAUX,IAAEG,IAAE,QAAOS,EAAE,KAAK,cAAa,EAAC,MAAKZ,GAAE,OAAMG,GAAE,QAAOE,GAAE,QAAOQ,EAAC,CAAC,GAAQP,KAAN,QAASA,EAAEN,GAAEG,GAAEE,CAAC;AAAA,EAAC,CAAC,GAAG,IAAEA,EAAE,QAAS,OAAK,EAAC,sBAAqB,EAAC,IAAI,CAAE,CAAA,GAAEa,IAAEb,EAAE,QAAS,OAAK,EAAC,WAAUS,KAAG,EAAE,aAAW,MAAK,UAAS,EAAE,YAAU,MAAK,cAAa,EAAE,UAAS,IAAI,CAACA,GAAE,EAAE,WAAU,EAAE,QAAQ,CAAC;AAAE,SAAOT,EAAE,QAAS,OAAK,EAAC,SAAQM,GAAE,MAAKR,GAAE,cAAaa,GAAE,UAASE,GAAE,QAAON,GAAE,YAAW,GAAE,MAAK,EAAC,IAAI,CAACT,GAAEa,GAAEE,GAAEN,GAAE,GAAE,CAAC,CAAC;AAAC;AAAC,SAASkN,GAAG9N,GAAE;AAAC,EAASA,MAAT,WAAaA,IAAE,CAAA;AAAI,QAAK,EAAC,QAAOG,EAAC,IAAEH,GAAEM,IAAEuN,GAAG,EAAC,GAAG7N,GAAE,UAAS,EAAC,WAAU,MAAK,UAAS,MAAK,GAAGA,EAAE,SAAQ,EAAC,CAAC,GAAE,IAAEA,EAAE,eAAaM,GAAE,IAAE,EAAE,UAAS,CAACK,GAAEC,CAAC,IAAEP,EAAE,SAAS,IAAI,GAAE,CAACQ,GAAEC,CAAC,IAAET,EAAE,SAAS,IAAI,GAAE,KAAS,KAAN,OAAQ,SAAO,EAAE,iBAAeM,GAAEK,IAAEX,EAAE,OAAO,IAAI,GAAE,IAAEmL;AAAK,EAAAhB,GAAI,MAAI;AAAC,UAAIxJ,EAAE,UAAQ;AAAA,EAAE,GAAG,CAAC,CAAC,CAAC;AAAE,QAAME,IAAE,SAASlB,GAAE;AAAC,IAASA,MAAT,WAAaA,IAAE,CAAA;AAAI,UAAK,EAAC,WAAUG,IAAE,UAAS,UAASG,IAAE,YAAW,YAAWF,IAAE,CAAE,GAAC,UAASG,GAAE,UAAS,EAAC,WAAUI,GAAE,UAASC,EAAC,IAAE,CAAA,GAAG,WAAUC,IAAE,IAAG,sBAAqBC,GAAE,MAAKC,EAAC,IAAEf,GAAE,CAACgB,GAAEC,EAAC,IAAEZ,EAAE,SAAS,EAAC,GAAE,GAAE,GAAE,GAAE,UAASC,GAAE,WAAUH,GAAE,gBAAe,CAAA,GAAG,cAAa,GAAE,CAAC,GAAE,CAACe,IAAEO,CAAC,IAAEpB,EAAE,SAASD,CAAC;AAAE,IAAA8I,GAAGhI,IAAEd,CAAC,KAAGqB,EAAErB,CAAC;AAAE,UAAK,CAACuB,IAAEM,EAAC,IAAE5B,EAAE,SAAS,IAAI,GAAE,CAACN,IAAEE,EAAC,IAAEI,EAAE,SAAS,IAAI,GAAEH,IAAEG,EAAE,YAAa,CAAAL,OAAG;AAAC,MAAAA,OAAImB,EAAE,YAAUA,EAAE,UAAQnB,IAAEiC,GAAEjC,EAAC;AAAA,IAAE,GAAG,CAAE,CAAA,GAAEQ,IAAEH,EAAE,YAAa,CAAAL,OAAG;AAAC,MAAAA,OAAIoB,EAAE,YAAUA,EAAE,UAAQpB,IAAEC,GAAED,EAAC;AAAA,IAAE,GAAG,CAAA,CAAE,GAAES,KAAEE,KAAGgB,IAAEjB,KAAEE,KAAGb,IAAEoB,IAAEd,EAAE,OAAO,IAAI,GAAEe,IAAEf,EAAE,OAAO,IAAI,GAAEgB,IAAEhB,EAAE,OAAOW,CAAC,GAAEM,IAAQR,KAAN,MAAQS,IAAE8H,GAAGvI,CAAC,GAAEU,IAAE6H,GAAG9I,CAAC,GAAEqB,KAAEyH,GAAGtI,CAAC,GAAEc,KAAExB,EAAE,YAAa,MAAI;AAAC,UAAG,CAACc,EAAE,WAAS,CAACC,EAAE;AAAQ;AAAO,YAAMpB,KAAE,EAAC,WAAUG,GAAE,UAASG,GAAE,YAAWY,GAAC;AAAE,MAAAM,EAAE,YAAUxB,GAAE,WAASwB,EAAE,UAASwH,GAAG7H,EAAE,SAAQC,EAAE,SAAQpB,EAAC,EAAE,KAAM,CAAAA,OAAG;AAAC,cAAMG,KAAE,EAAC,GAAGH,IAAE,cAAkB4B,GAAE,YAAP,GAAc;AAAE,QAAAE,EAAE,WAAS,CAACoH,GAAG7H,EAAE,SAAQlB,EAAC,MAAIkB,EAAE,UAAQlB,IAAEuB,GAAE,UAAW,MAAI;AAAC,UAAAT,GAAEd,EAAC;AAAA,QAAC,CAAG;AAAA,MAAC,CAAG;AAAA,IAAA,GAAG,CAACe,IAAEf,GAAEG,GAAEkB,GAAEI,EAAC,CAAC;AAAE,IAAAqH,GAAI,MAAI;AAAC,MAAKlI,MAAL,MAAQM,EAAE,QAAQ,iBAAeA,EAAE,QAAQ,eAAa,IAAGJ,GAAG,CAAAjB,QAAI,EAAC,GAAGA,IAAE,cAAa,GAAE;IAAK,GAAG,CAACe,CAAC,CAAC;AAAE,UAAMe,IAAEzB,EAAE,OAAO,EAAE;AAAE,IAAA4I,GAAI,OAAKnH,EAAE,UAAQ,IAAG,MAAI;AAAC,MAAAA,EAAE,UAAQ;AAAA,IAAE,IAAI,CAAE,CAAA,GAAEmH,GAAI,MAAI;AAAC,UAAGxI,OAAIU,EAAE,UAAQV,KAAGC,OAAIU,EAAE,UAAQV,KAAGD,MAAGC,IAAE;AAAC,YAAGa,EAAE;AAAQ,iBAAOA,EAAE,QAAQd,IAAEC,IAAEmB,EAAC;AAAE,QAAAA;MAAG;AAAA,IAAC,GAAG,CAACpB,IAAEC,IAAEmB,IAAEN,GAAED,CAAC,CAAC;AAAE,UAAMS,KAAE1B,EAAE,QAAS,OAAK,EAAC,WAAUc,GAAE,UAASC,GAAE,cAAalB,GAAE,aAAYM,EAAC,IAAI,CAACN,GAAEM,CAAC,CAAC,GAAEwB,KAAE3B,EAAE,QAAS,OAAK,EAAC,WAAUI,IAAE,UAASC,GAAC,IAAI,CAACD,IAAEC,EAAC,CAAC,GAAEwB,KAAE7B,EAAE,QAAS,MAAI;AAAC,YAAML,KAAE,EAAC,UAASM,GAAE,MAAK,GAAE,KAAI,EAAC;AAAE,UAAG,CAAC0B,GAAE;AAAS,eAAOhC;AAAE,YAAMG,KAAEiJ,GAAGpH,GAAE,UAAShB,EAAE,CAAC,GAAEX,KAAE+I,GAAGpH,GAAE,UAAShB,EAAE,CAAC;AAAE,aAAOH,IAAE,EAAC,GAAGb,IAAE,WAAU,eAAaG,KAAE,SAAOE,KAAE,OAAM,GAAG8I,GAAGnH,GAAE,QAAQ,KAAG,OAAK,EAAC,YAAW,YAAW,EAAC,IAAE,EAAC,UAAS1B,GAAE,MAAKH,IAAE,KAAIE,GAAC;AAAA,IAAC,GAAG,CAACC,GAAEO,GAAEmB,GAAE,UAAShB,EAAE,GAAEA,EAAE,CAAC,CAAC;AAAE,WAAOX,EAAE,QAAS,OAAK,EAAC,GAAGW,GAAE,QAAOa,IAAE,MAAKE,IAAE,UAASC,IAAE,gBAAeE,GAAC,IAAI,CAAClB,GAAEa,IAAEE,IAAEC,IAAEE,EAAC,CAAC;AAAA,EAAC,EAAE,EAAC,GAAGlC,GAAE,UAAS,EAAC,GAAG,GAAE,GAAGa,KAAG,EAAC,WAAUA,EAAC,EAAC,EAAC,CAAC,GAAE,IAAER,EAAE,YAAa,CAAAL,MAAG;AAAC,UAAMG,IAAEoD,GAAGvD,CAAC,IAAE,EAAC,uBAAsB,MAAIA,EAAE,yBAAwB,gBAAeA,EAAC,IAAEA;AAAE,IAAAc,EAAEX,CAAC,GAAEe,EAAE,KAAK,aAAaf,CAAC;AAAA,EAAC,GAAG,CAACe,EAAE,IAAI,CAAC,GAAES,IAAEtB,EAAE,YAAa,CAAAL,MAAG;AAAC,KAACuD,GAAGvD,CAAC,KAAUA,MAAP,UAAYgB,EAAE,UAAQhB,GAAEY,EAAEZ,CAAC,KAAIuD,GAAGrC,EAAE,KAAK,UAAU,OAAO,KAAUA,EAAE,KAAK,UAAU,YAAxB,QAAwClB,MAAP,QAAU,CAACuD,GAAGvD,CAAC,MAAIkB,EAAE,KAAK,aAAalB,CAAC;AAAA,EAAC,GAAG,CAACkB,EAAE,IAAI,CAAC,GAAEe,IAAE5B,EAAE,QAAS,OAAK,EAAC,GAAGa,EAAE,MAAK,cAAaS,GAAE,sBAAqB,GAAE,cAAaX,EAAC,IAAI,CAACE,EAAE,MAAKS,GAAE,CAAC,CAAC,GAAE5B,IAAEM,EAAE,QAAS,OAAK,EAAC,GAAGa,EAAE,UAAS,cAAa,EAAC,IAAI,CAACA,EAAE,UAAS,CAAC,CAAC,GAAE,IAAEb,EAAE,QAAS,OAAK,EAAC,GAAGa,GAAE,GAAG,GAAE,MAAKe,GAAE,UAASlC,GAAE,QAAOI,EAAC,IAAI,CAACe,GAAEe,GAAElC,GAAEI,GAAE,CAAC,CAAC;AAAE,SAAOqK,GAAI,MAAI;AAAC,MAAE,QAAQ,QAAQ,kBAAgB;AAAE,UAAMxK,IAAQ,KAAN,OAAQ,SAAO,EAAE,SAAS,QAAQ,KAAM,CAAAA,MAAGA,EAAE,OAAKG,CAAG;AAAC,IAAAH,MAAIA,EAAE,UAAQ;AAAA,EAAE,CAAG,GAACK,EAAE,QAAS,OAAK,EAAC,GAAGa,GAAE,SAAQ,GAAE,MAAKe,GAAE,UAASlC,EAAC,IAAI,CAACmB,GAAEe,GAAElC,GAAE,CAAC,CAAC;AAAC;AAAC,MAAMgO,KAAG,UAASC,KAAG;AAAW,SAASC,GAAGjO,GAAEG,GAAEG,GAAE;AAAC,QAAMD,IAAE,oBAAI,OAAID,IAAWE,MAAT;AAAW,MAAIC,IAAEP;AAAE,MAAGI,KAAGJ,GAAE;AAAC,UAAK,EAAC,CAAC+N,EAAE,GAAE5N,GAAE,CAAC6N,EAAE,GAAE1N,GAAE,GAAGD,EAAC,IAAEL;AAAE,IAAAO,IAAEF;AAAA,EAAC;AAAC,SAAM,EAAC,GAAgBC,MAAb,cAAgB,EAAC,UAAS,IAAG,CAAC0M,EAAE,GAAE,GAAE,GAAE,GAAGzM,GAAE,GAAGJ,EAAE,IAAK,CAAAA,MAAG;AAAC,UAAME,IAAEF,IAAEA,EAAEG,CAAC,IAAE;AAAK,WAAkB,OAAOD,KAAnB,aAAqBL,IAAEK,EAAEL,CAAC,IAAE,OAAKK;AAAA,EAAC,CAAG,EAAC,OAAOL,CAAC,EAAE,OAAQ,CAACA,GAAEG,OAAIA,KAAG,OAAO,QAAQA,CAAC,EAAE,QAAS,CAAAA,MAAG;AAAC,QAAG,CAACG,GAAEC,CAAC,IAAEJ;AAAE,QAAIQ;AAAE,IAAAP,KAAG,CAAC2N,IAAGC,EAAE,EAAE,SAAS1N,CAAC,MAAQA,EAAE,QAAQ,IAAI,MAAlB,KAAqBD,EAAE,IAAIC,CAAC,KAAGD,EAAE,IAAIC,GAAE,EAAE,GAAc,OAAOC,KAAnB,gBAA8BI,IAAEN,EAAE,IAAIC,CAAC,MAAhB,QAAoBK,EAAE,KAAKJ,CAAC,GAAEP,EAAEM,CAAC,IAAE,WAAU;AAAC,eAAQN,GAAEG,IAAE,UAAU,QAAOC,IAAE,IAAI,MAAMD,CAAC,GAAEI,IAAE,GAAEA,IAAEJ,GAAEI;AAAI,QAAAH,EAAEG,CAAC,IAAE,UAAUA,CAAC;AAAE,cAAcP,IAAEK,EAAE,IAAIC,CAAC,MAAhB,OAAmB,SAAON,EAAE,IAAK,CAAAA,MAAGA,EAAE,GAAGI,CAAC,CAAG,EAAC,KAAM,CAAAJ,MAAYA,MAAT;IAAY,MAAIA,EAAEM,CAAC,IAAEC;AAAA,EAAE,CAAG,GAACP,IAAM,CAAA,CAAE,EAAC;AAAC;AAAC,IAAIkO,KAAG;AAAG,SAASC,GAAGnO,GAAEG,GAAEG,GAAE;AAAC,UAAON,GAAC;AAAA,IAAE,KAAI;AAAW,aAAOG;AAAA,IAAE,KAAI;AAAa,aAAOG;AAAA,IAAE;AAAQ,aAAOH,KAAGG;AAAA,EAAC;AAAC;AAAC,SAAS8N,GAAGpO,GAAEG,GAAE;AAAC,SAAOgO,GAAGhO,GAAEH,MAAI4J,MAAI5J,MAAI6J,IAAG7J,MAAI8J,MAAI9J,MAAI+J,EAAE;AAAC;AAAC,SAASsE,GAAGrO,GAAEG,GAAEG,GAAE;AAAC,SAAO6N,GAAGhO,GAAEH,MAAI6J,IAAGvJ,IAAEN,MAAI8J,KAAG9J,MAAI+J,EAAE,KAAa/J,MAAV,WAAmBA,MAAN,OAAcA,MAAL;AAAM;AAAC,SAASsO,GAAGtO,GAAEG,GAAEG,GAAE;AAAC,SAAO6N,GAAGhO,GAAEG,IAAEN,MAAI+J,KAAG/J,MAAI8J,IAAG9J,MAAI4J,EAAE;AAAC;AAAC,SAAS2E,GAAGvO,GAAEG,GAAE;AAAC,QAAK,EAAC,MAAKG,GAAE,cAAa,GAAE,UAAS,EAAC,IAAEN,GAAE,EAAC,SAAQW,GAAE,aAAYC,GAAE,YAAWC,IAAG,MAAI;AAAA,EAAA,GAAI,SAAQC,IAAE,IAAG,eAAc,IAAE,MAAK,aAAYE,IAAE,IAAG,MAAK,IAAE,IAAG,QAAOE,IAAE,IAAG,KAAI,IAAE,IAAG,SAAQQ,IAAE,IAAG,iBAAgB,IAAE,QAAO,kBAAiB,IAAE,IAAG,oBAAmB3B,IAAE,IAAG,iBAAgBE,GAAE,aAAYC,IAAE,YAAW,MAAKM,IAAE,GAAE,oBAAmBC,IAAE,IAAG,gBAAeC,GAAE,WAAUS,GAAE,OAAMC,IAAE,GAAE,IAAEjB;AAAE,EAAe,QAAQ,IAAI,aAA3B,iBAAsCa,MAAI,KAAGmK,GAAG,gEAAgE,GAAEzJ,KAAGyJ,GAAG,wDAAwD,IAAgBjL,MAAb,cAAgBM,IAAE,KAAG2K,GAAG,uEAAsE,mCAAmC;AAAG,QAAM9J,IAAEuK,GAAGqB,GAAG,EAAE,QAAQ,CAAC,GAAE3L,IAAEiK,GAAI,GAAChK,IAAEiK,GAAI,GAAChK,IAAEmI,GAAG9I,CAAC,GAAEe,KAAEwD,GAAG,EAAE,YAAY,GAAEvD,KAAExB,EAAE,OAAO,CAAC,GAAEyB,IAAEzB,EAAE,OAAa,KAAI,EAAE,GAAE0B,KAAE1B,EAAE,OAAO,IAAI,GAAE2B,KAAE3B,EAAE,OAAO,EAAE,GAAE6B,KAAE7B,EAAE,OAAOmB,CAAC,GAAEW,KAAE9B,EAAE,OAAO,CAAC,CAAC,EAAE,QAAQ,GAAE+B,IAAE/B,EAAE,OAAOC,CAAC,GAAE+B,IAAEhC,EAAE,OAAO,EAAE,GAAEiC,KAAEjC,EAAE,OAAO,EAAE,GAAEoC,KAAEmJ,GAAG3L,CAAC,GAAEyC,IAAEkJ,GAAGtL,CAAC,GAAEqC,IAAEiJ,GAAGnL,CAAC,GAAEmC,IAAEgJ,GAAG,CAAC,GAAE,CAAC/I,GAAEC,CAAC,IAAEzC,EAAE,SAAQ,GAAG,CAAC0C,GAAEC,EAAC,IAAE3C,EAAE,SAAQ,GAAG4C,KAAE0G,GAAI,SAAS3J,IAAEG,GAAEG,GAAE;AAAC,aAASD,EAAEL,GAAE;AAAC,MAAA0B,KAAGoB,EAAE9C,EAAE,EAAE,GAAQuB,KAAN,QAASA,EAAE,OAAO,KAAK,gBAAevB,CAAC,GAAEU,MAAIA,EAAE,UAAQV,MAAIgM,GAAGhM,GAAE,EAAC,eAAc,IAAG,MAAK,EAAE,CAACuE,GAAE,EAAG,cAAc,WAAW,KAAK,KAAG,UAAU,kBAAgB,CAACK,GAAE,OAAMsJ,MAAI7L,EAAE,SAAQ,CAAC;AAAA,IAAC;AAAC,IAAS/B,MAAT,WAAaA,IAAE;AAAI,UAAMF,IAAEJ,GAAE,QAAQG,EAAE,OAAO;AAAE,IAAAC,KAAGC,EAAED,CAAC,GAAE,sBAAuB,MAAI;AAAC,YAAMG,IAAEP,GAAE,QAAQG,EAAE,OAAO,KAAGC;AAAE,UAAG,CAACG;AAAE;AAAO,MAAAH,KAAGC,EAAEE,CAAC;AAAE,YAAMI,KAAEgC,EAAE;AAAQ,MAAAhC,MAAGuC,OAAI5C,KAAG,CAAC0B,GAAE,aAAiBzB,EAAE,kBAAR,QAAwBA,EAAE,eAA0B,OAAOI,MAAlB,YAAoB,EAAC,OAAM,WAAU,QAAO,UAAS,IAAEA,EAAC;AAAA,IAAE,CAAG;AAAA,EAAA;AAAI,EAAA6J,GAAI,MAAI;AAAC,aAAS,cAAc,KAAK,EAAE,MAAM,EAAC,IAAI,gBAAe;AAAC,aAAO0D,KAAG,IAAG;AAAA,IAAE,EAAC,CAAC;AAAA,EAAC,GAAG,CAAE,CAAA,GAAE1D,GAAI,MAAI;AAAC,IAAA1J,MAAIR,KAAG,EAAE,WAASuB,GAAE,WAAe,KAAN,SAAUS,GAAE,UAAQ,IAAGR,EAAE,UAAQ,GAAEN,EAAE,CAAC,KAAGW,GAAE,YAAUL,EAAE,UAAQ,IAAGI,GAAE,QAAQ,IAAI;AAAA,EAAG,GAAG,CAACpB,GAAER,GAAE,EAAE,UAAS,GAAEkB,CAAC,CAAC,GAAEgJ,GAAI,MAAI;AAAC,QAAG1J,KAAGR,KAAG,EAAE;AAAS,UAASM,KAAN,MAAQ;AAAC,YAAGyB,EAAE,UAAQ,IAASO,EAAE,WAAR;AAAgB;AAAO,YAAGT,GAAE,YAAUL,EAAE,UAAQ,IAAGmB,GAAEtC,GAAEmB,CAAC,KAAI,CAACM,EAAE,WAAS,CAACD,GAAE,YAAUN,GAAE,YAAgBE,GAAE,WAAR,QAAsBF,GAAE,YAAP,MAAsBE,GAAE,WAAR,OAAiB;AAAC,cAAI/B,KAAE;AAAE,gBAAMG,IAAE,MAAI;AAAC,YAASQ,EAAE,QAAQ,CAAC,KAAjB,QAAuBX,KAAE,MAAIA,KAAE,wBAAsB,gBAAgBG,CAAC,GAAEH,SAAS8B,EAAE,UAAcC,GAAE,WAAR,QAAiBsM,GAAGtM,GAAE,SAAQ7B,GAAE,CAAC,KAAGgB,IAAEgJ,GAAGvJ,GAAE8B,GAAE,OAAO,IAAE2H,GAAGzJ,GAAE8B,GAAE,OAAO,GAAEV,GAAE,UAAQ,MAAKP,EAAEM,EAAE,OAAO;AAAA,UAAC;AAAE,UAAA3B;QAAG;AAAA,MAAC;AAAM,QAAA8J,GAAGtJ,GAAEC,CAAC,MAAIkB,EAAE,UAAQlB,GAAEqC,GAAEtC,GAAEmB,GAAEQ,GAAE,OAAO,GAAEA,GAAE,UAAQ;AAAA,EAAG,GAAG,CAACxB,GAAER,GAAE,EAAE,UAASM,GAAEgC,GAAE1B,GAAEP,GAAET,GAAE,GAAEsB,GAAEyB,IAAER,EAAC,CAAC,GAAE+H,GAAI,MAAI;AAAC,QAAIxK;AAAE,QAAG,CAACc,KAAG,EAAE,YAAU,CAACS,KAAGG,KAAG,CAACS,GAAE;AAAQ;AAAO,UAAMhC,IAAEoB,EAAE,SAAS,SAAQjB,KAASN,KAAEG,EAAE,KAAM,CAAAH,MAAGA,EAAE,OAAKsB,CAAG,MAA9B,SAAwCtB,KAAEA,GAAE,YAAX,OAAoB,SAAOA,GAAE,SAAS,UAASK,IAAEgE,GAAGS,GAAG,EAAE,QAAQ,CAAC,GAAE1E,IAAED,EAAE,KAAM,CAAAH,MAAGA,EAAE,WAASsE,GAAGtE,EAAE,QAAQ,SAAS,UAASK,CAAC;AAAI,IAAAC,KAAG,CAACF,KAAG4B,GAAE,WAAS1B,EAAE,MAAM,EAAC,eAAc,GAAE,CAAC;AAAA,EAAC,GAAG,CAACQ,GAAE,EAAE,UAASS,GAAED,GAAEI,CAAC,CAAC,GAAE8I,GAAI,MAAI;AAAC,QAAG1J,KAAGS,KAAGG,KAAG,CAACJ;AAAE,aAAOC,EAAE,OAAO,GAAG,gBAAevB,EAAC,GAAE,MAAI;AAAC,QAAAuB,EAAE,OAAO,IAAI,gBAAevB,EAAC;AAAA,MAAC;AAAE,aAASA,GAAEA,GAAE;AAAC,MAAAgD,GAAEhD,EAAE,EAAE,GAAEU,MAAIA,EAAE,UAAQV;AAAA,IAAE;AAAA,EAAC,GAAG,CAACc,GAAES,GAAEG,GAAEJ,GAAEZ,CAAC,CAAC,GAAE8J,GAAI,MAAI;AAAC,IAAAtI,GAAE,UAAQV,GAAEW,GAAE,UAAQ,CAAC,CAAC,EAAE;AAAA,EAAQ,IAAIqI,GAAI,MAAI;AAAC,IAAAlK,MAAIyB,GAAE,UAAQ;AAAA,EAAK,GAAG,CAACzB,CAAC,CAAC,GAAEkK,GAAI,MAAI;AAAC,IAAApI,EAAE,UAAQ9B;AAAA,EAAC,GAAG,CAACA,CAAC,CAAC;AAAE,QAAMkO,IAAQ5N,KAAN,MAAQsC,KAAE7C,EAAE,QAAS,MAAI;AAAC,aAASL,GAAEA,GAAE;AAAC,UAAG,CAACM;AAAE;AAAO,YAAMH,IAAEQ,EAAE,QAAQ,QAAQX,CAAC;AAAE,MAAKG,MAAL,MAAQqB,EAAErB,CAAC;AAAA,IAAC;AAAC,WAAM,EAAC,QAAQA,GAAE;AAAC,UAAG,EAAC,eAAcG,EAAC,IAAEH;AAAE,MAAAH,GAAEM,CAAC;AAAA,IAAC,GAAE,SAAQ,CAAAN,MAAG;AAAC,UAAG,EAAC,eAAcG,EAAC,IAAEH;AAAE,aAAOG,EAAE,MAAM,EAAC,eAAc,GAAE,CAAC;AAAA,IAAC,GAAE,GAAG,KAAG,EAAC,YAAYA,GAAE;AAAC,UAAG,EAAC,eAAcG,EAAC,IAAEH;AAAE,MAAAH,GAAEM,CAAC;AAAA,IAAC,GAAE,eAAeN,GAAE;AAAC,UAAG,EAAC,aAAYG,EAAC,IAAEH;AAAE,MAAAgC,GAAE,WAAmB7B,MAAV,YAAc2B,EAAE,UAAQ,IAAGmB,GAAEtC,GAAEmB,CAAC,GAAEN,EAAE,IAAI,GAAEE,KAAGsK,GAAG3K,EAAE,SAAQ,EAAC,eAAc,GAAE,CAAC;AAAA,IAAE,EAAC,EAAC;AAAA,EAAC,GAAG,CAACf,GAAEe,GAAE4B,IAAE,GAAEtC,GAAEa,GAAEE,CAAC,CAAC,GAAEyB,KAAEwG,GAAI,CAAA3J,OAAG;AAAmD,QAA/CgC,GAAE,UAAQ,IAAGK,EAAE,UAAQ,IAASrC,GAAE,UAAR,OAAwB,CAAC0C,EAAE,WAAS1C,GAAE,kBAAgBqB,EAAE;AAAQ;AAAO,QAAGH,KAAGoN,GAAGtO,GAAE,KAAIE,GAAE,CAAC;AAAE,aAAOiF,GAAGnF,EAAC,GAAE,EAAE,IAAGA,GAAE,aAAY,iBAAiB,GAAE,MAAKwD,GAAG,EAAE,YAAY,MAAI9B,IAAQH,KAAN,QAASA,EAAE,OAAO,KAAK,gBAAe,EAAE,YAAY,IAAE,EAAE,aAAa,MAAO;AAAG,UAAMpB,IAAE2B,EAAE,SAAQzB,IAAE6J,GAAGvJ,GAAEV,CAAC,GAAEW,IAAEwJ,GAAGzJ,GAAEV,CAAC;AAAE,QAAG2B,OAAa5B,GAAE,QAAX,WAAiBmF,GAAGnF,EAAC,GAAE8B,EAAE,UAAQzB,GAAEmB,EAAEM,EAAE,OAAO,IAAW9B,GAAE,QAAV,UAAgBmF,GAAGnF,EAAC,GAAE8B,EAAE,UAAQlB,GAAEY,EAAEM,EAAE,OAAO,KAAItB,IAAE,GAAE;AAAC,YAAML,IAAEgB,KAAG,MAAM,KAAK,EAAC,QAAOR,EAAE,QAAQ,OAAM,GAAG,OAAK,EAAC,OAAM,GAAE,QAAO,EAAC,EAAE,GAAGL,IAAE,SAASN,GAAEG,GAAEG,IAAE;AAAC,cAAMD,KAAE,CAAE;AAAC,YAAID,KAAE;AAAE,eAAOJ,EAAE,QAAS,CAACA,IAAEO,OAAI;AAAC,cAAG,EAAC,OAAMI,IAAE,QAAOC,GAAC,IAAEZ;AAAE,cAAGW,KAAER,KAAkB,QAAQ,IAAI,aAA3B;AAAoC,kBAAM,IAAI,MAAM,uDAAqDI,KAAE,+BAA+B;AAAE,cAAIM,KAAE;AAAG,eAAIP,OAAIF,KAAE,IAAG,CAACS,MAAG;AAAC,kBAAMb,KAAE,CAAA;AAAG,qBAAQM,KAAE,GAAEA,KAAEK,IAAEL;AAAI,uBAAQD,KAAE,GAAEA,KAAEO,IAAEP;AAAI,gBAAAL,GAAE,KAAKI,KAAEE,KAAED,KAAEF,CAAC;AAAE,YAAAC,KAAED,IAAEQ,MAAGR,KAAGH,GAAE,MAAO,CAAAA,OAASK,GAAEL,EAAC,KAAT,SAAcA,GAAE,QAAS,CAAAA,OAAG;AAAC,cAAAK,GAAEL,EAAC,IAAEO;AAAA,YAAC,CAAC,GAAGM,KAAE,MAAIT;AAAA,UAAG;AAAA,QAAC,CAAG,GAAC,CAAC,GAAGC,EAAC;AAAA,MAAC,EAAEF,GAAEK,GAAEY,CAAC,GAAEhB,KAAEE,EAAE,UAAW,CAAAN,MAASA,KAAN,QAAS,CAACqK,GAAG1J,EAAE,SAAQX,GAAEC,CAAC,IAAIM,IAAED,EAAE,OAAQ,CAACN,GAAEG,GAAEG,OAAUH,KAAN,QAASkK,GAAG1J,EAAE,SAAQR,GAAEF,CAAC,IAAED,IAAEM,IAAG,EAAE,GAAEO,IAAEP,EAAE,SAASN,GAAEG,GAAE;AAAC,YAAG,EAAC,OAAMG,IAAE,aAAYD,IAAE,MAAKD,IAAE,KAAIG,IAAE,MAAKI,IAAE,iBAAgBC,IAAE,UAASC,IAAE,UAASC,IAAE,WAAUC,IAAE,WAAUC,KAAE,GAAE,IAAEb,GAAEc,KAAEF;AAAE,YAAGT,GAAE,QAAMsJ,IAAG;AAAC,cAAG5I,MAAGmE,GAAG7E,EAAC,GAAOS,OAAL;AAAO,YAAAE,KAAEH;AAAA,mBAAUG,KAAEkJ,GAAGnK,GAAE,EAAC,eAAciB,IAAE,QAAON,IAAE,WAAU,IAAG,iBAAgBC,GAAC,CAAC,GAAER,OAAIW,KAAEJ,KAAEE,MAAGI,KAAE,IAAG;AAAC,kBAAMjB,KAAEe,KAAEJ,IAAER,KAAEW,KAAEH,IAAEL,KAAEQ,MAAGX,KAAEH;AAAG,YAAAiB,KAAEd,OAAIH,KAAEc,KAAEX,KAAEH,KAAEM,KAAEA,KAAEK;AAAA,UAAC;AAAC,UAAAsJ,GAAGjK,GAAEiB,EAAC,MAAIA,KAAEF;AAAA,QAAE;AAAC,YAAGT,GAAE,QAAMuJ,OAAK7I,MAAGmE,GAAG7E,EAAC,GAAOS,OAAL,KAAOE,KAAEJ,MAAGI,KAAEkJ,GAAGnK,GAAE,EAAC,eAAce,IAAE,QAAOJ,IAAE,iBAAgBC,GAAC,CAAC,GAAER,MAAGW,KAAEJ,KAAEG,OAAIG,KAAEkJ,GAAGnK,GAAE,EAAC,eAAce,KAAEJ,KAAEA,IAAE,QAAOA,IAAE,iBAAgBC,GAAC,CAAC,KAAIqJ,GAAGjK,GAAEiB,EAAC,MAAIA,KAAEF,MAAaV,OAAT,QAAW;AAAC,gBAAMF,KAAEqF,GAAGzE,KAAEJ,EAAC;AAAE,UAAAL,GAAE,SAAOC,KAAEuJ,KAAGC,QAAM/I,MAAGmE,GAAG7E,EAAC,GAAES,KAAEJ,MAAGA,KAAE,KAAGM,KAAEkJ,GAAGnK,GAAE,EAAC,eAAce,IAAE,iBAAgBH,GAAC,CAAC,GAAER,MAAG4J,GAAG/I,IAAEN,IAAER,EAAC,MAAIc,KAAEkJ,GAAGnK,GAAE,EAAC,eAAce,KAAEA,KAAEJ,KAAE,GAAE,iBAAgBC,GAAC,CAAC,MAAIR,OAAIa,KAAEkJ,GAAGnK,GAAE,EAAC,eAAce,KAAEA,KAAEJ,KAAE,GAAE,iBAAgBC,GAAC,CAAC,IAAGoJ,GAAG/I,IAAEN,IAAER,EAAC,MAAIc,KAAEF,MAAIT,GAAE,SAAOC,KAAEwJ,KAAGD,QAAM9I,MAAGmE,GAAG7E,EAAC,GAAES,KAAEJ,MAAG,KAAGM,KAAEkJ,GAAGnK,GAAE,EAAC,eAAce,IAAE,WAAU,IAAG,iBAAgBH,GAAC,CAAC,GAAER,MAAG4J,GAAG/I,IAAEN,IAAER,EAAC,MAAIc,KAAEkJ,GAAGnK,GAAE,EAAC,eAAce,MAAGJ,KAAEI,KAAEJ,KAAG,WAAU,IAAG,iBAAgBC,GAAC,CAAC,MAAIR,OAAIa,KAAEkJ,GAAGnK,GAAE,EAAC,eAAce,MAAGJ,KAAEI,KAAEJ,KAAG,WAAU,IAAG,iBAAgBC,GAAC,CAAC,IAAGoJ,GAAG/I,IAAEN,IAAER,EAAC,MAAIc,KAAEF;AAAI,gBAAMV,KAAEmF,GAAG1E,KAAEH,EAAC,MAAIR;AAAE,UAAA8J,GAAGjK,GAAEiB,EAAC,MAAIA,KAAEb,MAAGC,KAAEC,GAAE,SAAOC,KAAEwJ,KAAGD,MAAIhJ,KAAEqJ,GAAGnK,GAAE,EAAC,eAAce,KAAEA,KAAEJ,KAAE,GAAE,iBAAgBC,GAAC,CAAC,IAAEG;AAAA,QAAE;AAAC,eAAOE;AAAA,MAAC,EAAE,EAAC,SAAQX,EAAE,IAAK,CAAAN,MAASA,KAAN,OAAQW,EAAE,QAAQX,CAAC,IAAE,IAAI,EAAE,GAAE,EAAC,OAAMA,IAAE,aAAYE,GAAE,MAAK,GAAE,KAAI,GAAE,MAAKM,GAAE,iBAAgB+J,GAAG,CAAC,GAAGtK,KAAGU,EAAE,QAAQ,IAAK,CAACX,GAAEG,MAAIkK,GAAG1J,EAAE,SAAQR,CAAC,IAAEA,IAAE,SAAS,MAAM,GAAEG,CAAC,GAAE,UAASF,IAAE,UAASG,GAAE,WAAU+J,GAAGxI,EAAE,UAAQlB,IAAEP,IAAEyB,EAAE,SAAQ3B,GAAEG,GAAEE,GAAER,GAAE,QAAM6J,KAAG,OAAK7J,GAAE,SAAO,IAAE8J,KAAGC,MAAI,OAAK,IAAI,GAAE,WAAU,GAAE,CAAC,CAAC;AAAE,UAASlJ,KAAN,SAAUiB,EAAE,UAAQjB,GAAEW,EAAEM,EAAE,OAAO,IAAY5B,MAAT;AAAW;AAAA,IAAM;AAAC,QAAGkO,GAAGpO,GAAE,KAAIE,CAAC,GAAE;AAAC,UAAGiF,GAAGnF,EAAC,GAAEM,KAAG,CAACoB,KAAG2C,GAAGrE,GAAE,cAAc,aAAa,MAAIA,GAAE;AAAc,eAAO8B,EAAE,UAAQuM,GAAGrO,GAAE,KAAIE,GAAE,CAAC,IAAEG,IAAEO,GAAE,KAAKY,EAAEM,EAAE,OAAO;AAAE,MAAAuM,GAAGrO,GAAE,KAAIE,GAAE,CAAC,IAAE4B,EAAE,UAAQ,IAAE3B,KAAGS,IAAEI,KAAGb,MAAIQ,EAAE,QAAQ,SAAO,KAAGN,IAAE8J,GAAGxJ,GAAE,EAAC,eAAcR,GAAE,iBAAgBF,EAAC,CAAC,IAAE,KAAK,IAAIW,GAAEuJ,GAAGxJ,GAAE,EAAC,eAAcR,GAAE,iBAAgBF,EAAC,CAAC,CAAC,IAAE6B,EAAE,UAAQ,IAAE3B,KAAGE,IAAEW,KAAQb,MAAL,KAAOQ,EAAE,QAAQ,SAAOC,IAAEuJ,GAAGxJ,GAAE,EAAC,eAAcR,GAAE,WAAU,IAAG,iBAAgBF,EAAC,CAAC,IAAE,KAAK,IAAII,GAAE8J,GAAGxJ,GAAE,EAAC,eAAcR,GAAE,WAAU,IAAG,iBAAgBF,EAAC,CAAC,CAAC,GAAEgK,GAAGtJ,GAAEmB,EAAE,OAAO,IAAEN,EAAE,IAAI,IAAEA,EAAEM,EAAE,OAAO;AAAA,IAAC;AAAA,EAAC,CAAG,GAACuB,KAAEhD,EAAE,QAAS,MAAIqB,KAAGpB,KAAGkO,KAAG,EAAC,yBAAwBzL,KAAGF,EAAC,GAAG,CAACnB,GAAEpB,GAAEkO,GAAEzL,GAAEF,CAAC,CAAC,GAAES,KAAEjD,EAAE,QAAS,OAAK,EAAC,oBAA4BH,MAAT,SAAW,SAAOA,GAAE,GAAG,CAACkF,GAAG,EAAE,YAAY,KAAG/B,IAAE,WAAUF,IAAE,gBAAe;AAAC,IAAAnB,GAAE,UAAQ;AAAA,EAAE,EAAC,IAAI,CAACqB,IAAEF,IAAE,EAAE,cAAajD,CAAC,CAAC,GAAEkD,KAAG/C,EAAE,QAAS,MAAI;AAAC,aAASL,GAAEA,GAAE;AAAC,MAAS,MAAT,UAAYyE,GAAGzE,EAAE,WAAW,MAAI6B,GAAE,UAAQ;AAAA,IAAG;AAAC,WAAM,EAAC,GAAGwB,IAAE,UAAUrD,GAAE;AAAC,MAAAgC,GAAE,UAAQ;AAAG,YAAM7B,IAAEH,EAAE,IAAI,WAAW,OAAO,GAAEK,IAAE,CAAC,QAAO,KAAK,EAAE,SAASL,EAAE,GAAG,GAAEO,IAAEJ,KAAGE,GAAEO,IAAE,SAASZ,IAAEG,IAAEG,IAAE;AAAC,eAAO6N,GAAGhO,IAAEG,KAAEN,OAAI8J,KAAG9J,OAAI+J,IAAG/J,OAAI6J,EAAE;AAAA,MAAC,EAAE7J,EAAE,KAAIE,GAAE,CAAC,GAAEW,KAAEyN,GAAGtO,EAAE,KAAIE,GAAE,CAAC,GAAEY,IAAEsN,GAAGpO,EAAE,KAAIE,CAAC,GAAEc,KAAGE,IAAEN,IAAEE,MAAcd,EAAE,QAAZ,WAAsBA,EAAE,IAAI,WAAX;AAAkB,UAAG0B,KAAGpB,GAAE;AAAC,cAAMH,KAAQoB,KAAN,OAAQ,SAAOA,EAAE,SAAS,QAAQ,KAAM,CAAAvB,OAASA,GAAE,YAAR,OAAmBM,KAAEiB,KAAGpB,KAAE,SAASH,IAAEG,IAAE;AAAC,cAAIG,IAAED,KAAE;AAAG,iBAAO,SAASF,GAAEC,IAAEG,IAAE;AAAC,YAAAA,KAAEF,OAAIC,KAAEF,IAAEC,KAAEE,KAAG0L,GAAGjM,IAAEI,EAAC,EAAE,QAAS,CAAAJ,OAAG;AAAC,cAAAG,GAAEH,GAAE,IAAGO,KAAE,CAAC;AAAA,YAAC,CAAC;AAAA,UAAE,EAAEJ,IAAE,CAAC,GAAEH,GAAE,KAAM,CAAAA,OAAGA,GAAE,OAAKM,EAAC;AAAA,QAAE,EAAEiB,EAAE,SAAS,SAAQpB,GAAE,EAAE,IAAE;AAAK,YAAGI,KAAGD,MAAGI,GAAE;AAAC,gBAAMP,KAAE,IAAI,cAAc,WAAU,EAAC,KAAIH,EAAE,KAAI,SAAQ,GAAE,CAAC;AAAE,cAAGY,KAAGC,IAAE;AAAC,gBAAII,GAAEU;AAAE,kBAAMtB,OAAUY,IAAEX,GAAE,YAAX,OAAoB,SAAOW,EAAE,SAAS,kBAAgBjB,EAAE,eAAcI,KAAES,MAAG,CAACR,MAASsB,IAAErB,GAAE,YAAX,OAAoB,SAAOqB,EAAE,SAAS,eAAaf,IAAED,EAAE,QAAQ,KAAM,CAAAX,QAAUA,MAAN,OAAQ,SAAOA,GAAE,QAAM6C,CAAC,IAAG;AAAK,YAAAzC,OAAI+E,GAAGnF,CAAC,GAAEI,GAAE,cAAcD,EAAC,GAAE6C,GAAE,MAAM;AAAA,UAAE;AAAC,cAAIf;AAAE,eAAInB,KAAGT,MAAIC,GAAE,WAAWA,GAAE,QAAQ,QAAMA,GAAE,YAAUN,EAAE,kBAAgBM,GAAE,QAAQ,SAAS;AAAa,mBAAO6E,GAAGnF,CAAC,GAAE,OAAYiC,KAAE3B,GAAE,QAAQ,SAAS,iBAA5B,QAA2C2B,GAAE,cAAc9B,EAAC;AAAA,QAAE;AAAC,eAAOgD,GAAEnD,CAAC;AAAA,MAAC;AAAC,OAACM,KAAGP,KAAG,CAACI,OAAKa,MAAIe,GAAE,UAAQb,KAAGJ,IAAE,OAAKd,EAAE,MAAKkB,IAAEN,MAAIuE,GAAGnF,CAAC,GAAEM,KAAGwB,EAAE,UAAQoI,GAAGvJ,GAAE8B,GAAE,OAAO,GAAEjB,EAAEM,EAAE,OAAO,KAAG,EAAE,IAAG9B,EAAE,aAAY,iBAAiB,KAAGc,MAAU,KAAN,SAAUgB,EAAE,UAAQ,IAAGqD,GAAGnF,CAAC,GAAE,CAACM,KAAGP,IAAE,EAAE,IAAGC,EAAE,aAAY,iBAAiB,IAAEmD,GAAEnD,CAAC,GAAEM,KAAGkB,EAAEM,EAAE,OAAO;AAAA,IAAG,GAAE,UAAS;AAAC,MAAAxB,KAAG,CAACoB,KAAGF,EAAE,IAAI;AAAA,IAAC,GAAE,eAAc,SAASxB,GAAE;AAAC,MAAA6B,GAAE,UAAQ,GAAW,MAAT,UAAY8C,GAAG3E,EAAE,WAAW,MAAI6B,GAAE,UAAQ;AAAA,IAAG,GAAE,aAAY7B,IAAE,SAAQA,GAAC;AAAA,EAAC,GAAG,CAAC6C,GAAEQ,IAAEF,IAAEV,IAAE,GAAE9B,GAAEO,GAAEM,GAAE,GAAElB,GAAEP,GAAEG,GAAE,GAAE,GAAEqB,GAAEG,GAAEhB,CAAC,CAAC;AAAE,SAAOL,EAAE,QAAS,MAAIS,IAAE,EAAC,WAAUsC,IAAG,UAASE,IAAE,MAAKJ,GAAC,IAAE,CAAA,GAAI,CAACpC,GAAEsC,IAAGE,IAAEJ,EAAC,CAAC;AAAC;AAAC,MAAMuL,KAAG,oBAAI,IAAI,CAAC,CAAC,UAAS,SAAS,GAAE,CAAC,YAAW,SAAS,GAAE,CAAC,SAAQ,EAAE,CAAC,CAAC;AAAE,SAASC,GAAG1O,GAAEG,GAAE;AAAC,QAAK,CAACG,GAAED,CAAC,IAAEL;AAAE,MAAII,IAAE;AAAG,QAAMG,IAAEJ,EAAE;AAAO,WAAQH,IAAE,GAAEW,IAAEJ,IAAE,GAAEP,IAAEO,GAAEI,IAAEX,KAAI;AAAC,UAAK,CAACO,GAAEK,CAAC,IAAET,EAAEH,CAAC,KAAG,CAAC,GAAE,CAAC,GAAE,CAACa,GAAEC,CAAC,IAAEX,EAAEQ,CAAC,KAAG,CAAC,GAAE,CAAC;AAAE,IAAAC,KAAGP,KAAGS,KAAGT,KAAGC,MAAIO,IAAEN,MAAIF,IAAEO,MAAIE,IAAEF,KAAGL,MAAIH,IAAE,CAACA;AAAA,EAAE;AAAC,SAAOA;AAAC;AAAC,SAASuO,GAAG3O,GAAE;AAAC,EAASA,MAAT,WAAaA,IAAE,CAAE;AAAE,QAAK,EAAC,QAAOG,IAAE,KAAG,oBAAmBG,IAAE,IAAG,eAAcD,IAAE,GAAE,IAAEL;AAAE,MAAII,GAAEG,IAAE,IAAG,IAAE,MAAK,IAAE,MAAK,IAAE,YAAY,IAAK;AAAC,QAAMO,IAAE,CAAAd,MAAG;AAAC,QAAG,EAAC,GAAEM,GAAE,GAAEQ,GAAE,WAAUC,GAAE,UAASC,GAAE,SAAQC,GAAE,QAAOC,GAAE,MAAKO,EAAC,IAAEzB;AAAE,WAAO,SAASA,GAAE;AAAC,eAAS0B,IAAG;AAAC,qBAAatB,CAAC,GAAEa,EAAC;AAAA,MAAE;AAAC,UAAG,aAAab,CAAC,GAAE,CAACY,EAAE,gBAAc,CAACA,EAAE,YAAgBD,KAAN,QAAeT,KAAN,QAAeQ,KAAN;AAAQ;AAAO,YAAK,EAAC,SAAQa,GAAE,SAAQM,EAAC,IAAEjC,GAAED,IAAE,CAAC4B,GAAEM,CAAC,GAAEhC,IAAE+E,GAAGhF,CAAC,GAAEE,IAAiBF,EAAE,SAAjB,cAAsBQ,IAAE8D,GAAGtD,EAAE,UAASf,CAAC,GAAEQ,IAAE6D,GAAGtD,EAAE,cAAaf,CAAC,GAAES,IAAEM,EAAE,aAAa,yBAAwBG,IAAEH,EAAE,SAAS,sBAAuB,GAACI,KAAEL,EAAE,MAAM,GAAG,EAAE,CAAC,GAAEM,KAAEf,IAAEa,EAAE,QAAMA,EAAE,QAAM,GAAEG,IAAER,IAAEK,EAAE,SAAOA,EAAE,SAAO,GAAEI,KAAE,SAASvB,GAAEG,GAAE;AAAC,eAAOH,EAAE,CAAC,KAAGG,EAAE,KAAGH,EAAE,CAAC,KAAGG,EAAE,IAAEA,EAAE,SAAOH,EAAE,CAAC,KAAGG,EAAE,KAAGH,EAAE,CAAC,KAAGG,EAAE,IAAEA,EAAE;AAAA,MAAM,EAAEJ,GAAEW,CAAC,GAAEc,KAAEL,EAAE,QAAMT,EAAE,OAAMkB,KAAET,EAAE,SAAOT,EAAE,QAAOmB,MAAGL,KAAEd,IAAES,GAAG,MAAKW,KAAGN,KAAEd,IAAES,GAAG,OAAMY,KAAGH,KAAElB,IAAES,GAAG,KAAIa,MAAGJ,KAAElB,IAAES,GAAG;AAAO,UAAGX,MAAID,IAAE,IAAG,CAACL;AAAG;AAAO,UAAGO,MAAIF,IAAE,KAAIE,KAAG,CAACP;AAAE,eAAO,MAAKK,IAAE;AAAqE,UAA9DL,KAAGqD,GAAGvD,EAAE,aAAa,KAAGsE,GAAGtD,EAAE,UAAShB,EAAE,aAAa,KAAYyB,KAAGwK,GAAGxK,EAAE,SAAS,SAAQP,CAAC,EAAE,KAAM,CAAAlB,MAAG;AAAC,YAAG,EAAC,SAAQG,EAAC,IAAEH;AAAE,eAAaG,KAAN,OAAQ,SAAOA,EAAE;AAAA,MAAI,CAAC;AAAG;AAAO,UAAWiB,OAAR,SAAWN,KAAGJ,EAAE,SAAO,KAAcU,OAAX,YAAcN,KAAGJ,EAAE,MAAI,KAAYU,OAAT,UAAYd,KAAGI,EAAE,QAAM,KAAaU,OAAV,WAAad,KAAGI,EAAE,OAAK;AAAE,eAAOgB,EAAC;AAAG,UAAIQ,KAAE,CAAA;AAAG,cAAOd;QAAG,KAAI;AAAM,UAAAc,KAAE,CAAC,CAACL,IAAEnB,EAAE,MAAI,CAAC,GAAE,CAACmB,IAAEV,EAAE,SAAO,CAAC,GAAE,CAACW,GAAEX,EAAE,SAAO,CAAC,GAAE,CAACW,GAAEpB,EAAE,MAAI,CAAC,CAAC;AAAE;AAAA,QAAM,KAAI;AAAS,UAAAwB,KAAE,CAAC,CAACL,IAAEV,EAAE,MAAI,CAAC,GAAE,CAACU,IAAEnB,EAAE,SAAO,CAAC,GAAE,CAACoB,GAAEpB,EAAE,SAAO,CAAC,GAAE,CAACoB,GAAEX,EAAE,MAAI,CAAC,CAAC;AAAE;AAAA,QAAM,KAAI;AAAO,UAAAe,KAAE,CAAC,CAACf,EAAE,QAAM,GAAEa,EAAC,GAAE,CAACb,EAAE,QAAM,GAAEY,CAAC,GAAE,CAACrB,EAAE,OAAK,GAAEqB,CAAC,GAAE,CAACrB,EAAE,OAAK,GAAEsB,EAAC,CAAC;AAAE;AAAA,QAAM,KAAI;AAAQ,UAAAE,KAAE,CAAC,CAACxB,EAAE,QAAM,GAAEsB,EAAC,GAAE,CAACtB,EAAE,QAAM,GAAEqB,CAAC,GAAE,CAACZ,EAAE,OAAK,GAAEY,CAAC,GAAE,CAACZ,EAAE,OAAK,GAAEa,EAAC,CAAC;AAAA,MAAC;AAAC,UAAG,CAAC0M,GAAG,CAAC/M,GAAEM,CAAC,GAAEC,EAAC,GAAE;AAAC,YAAG3B,KAAG,CAACgB;AAAE,iBAAOG,EAAG;AAAC,YAAG,CAACxB,KAAGG,GAAE;AAAC,gBAAMF,IAAE,SAASH,GAAEG,GAAE;AAAC,kBAAMG,IAAE,YAAY,OAAMD,IAAEC,IAAE;AAAE,gBAAU,MAAP,QAAiB,MAAP,QAAcD,MAAJ;AAAM,qBAAO,IAAEL,GAAE,IAAEG,GAAE,IAAEG,GAAE;AAAK,kBAAMF,IAAEJ,IAAE,GAAEO,KAAEJ,IAAE,GAAEW,KAAE,KAAK,KAAKV,IAAEA,IAAEG,KAAEA,EAAC;AAAE,mBAAO,IAAEP,GAAE,IAAEG,GAAE,IAAEG,GAAEQ,KAAET;AAAA,UAAC,EAAEL,EAAE,SAAQA,EAAE,OAAO;AAAE,cAAUG,MAAP,QAAUA,IAAE;AAAG,mBAAOuB,EAAG;AAAA,QAAA;AAAC,QAAAgN,GAAG,CAAC/M,GAAEM,CAAC,GAAE,SAASjC,GAAE;AAAC,cAAG,CAACM,GAAED,CAAC,IAAEL;AAAE,kBAAOoB,IAAC;AAAA,YAAE,KAAI;AAAM,qBAAM,CAAC,CAACI,KAAElB,IAAEH,IAAE,IAAEkB,KAAEf,IAAE,IAAEH,IAAEG,IAAE,IAAEH,GAAEE,IAAEF,IAAE,CAAC,GAAE,CAACqB,KAAElB,IAAEH,IAAE,IAAEkB,KAAEf,IAAE,IAAEH,IAAEG,IAAE,IAAEH,GAAEE,IAAEF,IAAE,CAAC,GAAM,CAACgB,EAAE,MAAKE,MAAGG,KAAEL,EAAE,SAAOhB,IAAEgB,EAAE,GAAG,GAAE,CAACA,EAAE,OAAME,KAAEG,KAAEL,EAAE,SAAOhB,IAAEgB,EAAE,MAAIA,EAAE,SAAOhB,CAAC,CAAE;AAAA,YAAE,KAAI;AAAS,qBAAM,CAAC,CAACqB,KAAElB,IAAEH,IAAE,IAAEkB,KAAEf,IAAE,IAAEH,IAAEG,IAAE,IAAEH,GAAEE,IAAEF,CAAC,GAAE,CAACqB,KAAElB,IAAEH,IAAE,IAAEkB,KAAEf,IAAE,IAAEH,IAAEG,IAAE,IAAEH,GAAEE,IAAEF,CAAC,GAAM,CAACgB,EAAE,MAAKE,MAAGG,KAAEL,EAAE,MAAIhB,IAAEgB,EAAE,MAAM,GAAE,CAACA,EAAE,OAAME,KAAEG,KAAEL,EAAE,MAAIhB,IAAEgB,EAAE,SAAOA,EAAE,MAAIhB,CAAC,CAAE;AAAA,YAAE,KAAI,QAAO;AAAC,oBAAMH,IAAE,CAACM,IAAEH,IAAE,GAAEyB,KAAEvB,IAAEF,IAAE,IAAEmB,IAAEjB,IAAE,IAAEF,IAAEE,IAAE,IAAEF,CAAC,GAAEC,IAAE,CAACE,IAAEH,IAAE,GAAEyB,KAAEvB,IAAEF,IAAE,IAAEmB,IAAEjB,IAAE,IAAEF,IAAEE,IAAE,IAAEF,CAAC;AAAE,qBAAM,CAAK,CAACmB,KAAGM,KAAET,EAAE,QAAMhB,IAAEgB,EAAE,MAAKA,EAAE,GAAG,GAAE,CAACG,IAAEM,KAAET,EAAE,QAAMhB,IAAEgB,EAAE,OAAKA,EAAE,QAAMhB,GAAEgB,EAAE,MAAM,GAAGnB,GAAEI,CAAC;AAAA,YAAC;AAAA,YAAC,KAAI;AAAQ,qBAAM,CAAC,CAACE,IAAEH,GAAEyB,KAAEvB,IAAEF,IAAE,IAAEmB,IAAEjB,IAAE,IAAEF,IAAEE,IAAE,IAAEF,CAAC,GAAE,CAACG,IAAEH,GAAEyB,KAAEvB,IAAEF,IAAE,IAAEmB,IAAEjB,IAAE,IAAEF,IAAEE,IAAE,IAAEF,CAAC,GAAM,CAACmB,KAAGM,KAAET,EAAE,OAAKhB,IAAEgB,EAAE,OAAMA,EAAE,GAAG,GAAE,CAACG,IAAEM,KAAET,EAAE,OAAKhB,IAAEgB,EAAE,QAAMA,EAAE,OAAKhB,GAAEgB,EAAE,MAAM,CAAE;AAAA,UAAC;AAAA,QAAC,EAAE,CAACb,GAAEQ,CAAC,CAAC,CAAC,IAAE,CAACP,KAAGF,MAAID,IAAE,OAAO,WAAWsB,GAAE,EAAE,KAAGA,EAAG;AAAA,MAAA;AAAA,IAAC;AAAA,EAAC;AAAE,SAAOZ,EAAE,YAAU,EAAC,oBAAmBR,EAAC,GAAEQ;AAAC;AAAC,MAAM8N,KAAGjO,GAAE,EAAC,cAAa,OAAK,KAAI,aAAY,MAAK,gBAAe,MAAI;AAAA,GAAG,mBAAkB,MAAI;AAAE,GAAC,QAAO,IAAG,WAAU,MAAI;EAAE,CAAC,GAAEkO,KAAGzO,GAAG,CAAC,EAAC,WAAU,GAAE,UAAS,GAAE,UAASC,GAAE,GAAG,EAAC,GAAE,MAAI;AAAC,QAAMM,IAAEC,GAAEgO,EAAE,GAAE/N,IAAE+J,GAAE,GAAG9J,IAAE0K,GAAI,GAACzK,IAAEF,EAAE,UAAQF,EAAE,aAAYK,IAAER,EAAE,yBAAwB,KAAG,kCAAiC,CAAC;AAAE,SAAOR,EAAE,OAAM,EAAC,KAAIwJ,GAAG,CAAC3I,EAAE,KAAI,CAAC,CAAC,GAAE,MAAK,YAAW,WAAUG,GAAE,UAASD,IAAE,IAAE,IAAG,GAAG,GAAE,GAAGJ,EAAE,aAAa,EAAC,QAAQX,GAAE;;AAAC,KAAAuC,IAAA,EAAE,YAAF,QAAAA,EAAA,QAAYvC,IAAGW,EAAE,UAAU,EAAE,GAAEG,KAAA,QAAAA,EAAG,OAAO,KAAK;AAAA,EAAQ,GAAE,QAAQd,GAAE;;AAAC,KAAAuC,IAAA,EAAE,YAAF,QAAAA,EAAA,QAAYvC,IAAGW,EAAE,kBAAkB,EAAE;AAAA,EAAC,EAAC,CAAC,GAAE,UAASN,EAAC,CAAC;AAAC,CAAC;AAAGwO,GAAG,cAAY;AAAmB,MAAMC,KAAG1O,GAAG,CAAC,EAAC,WAAUE,GAAE,SAAQF,IAAE,WAAU,MAAKG,GAAE,WAAUI,GAAE,MAAKM,IAAE,IAAG,UAASC,GAAE,UAASO,GAAE,GAAGC,EAAC,GAAEC,MAAI;AAAC,QAAK,CAACM,GAAElC,CAAC,IAAEc,GAAE,EAAE,GAAE,CAACZ,GAAEC,CAAC,IAAEW,GAAE,EAAE,GAAE,CAACJ,GAAEC,CAAC,IAAEG,GAAE,IAAI,GAAEM,IAAEH,GAAE,EAAE,GAAEI,IAAEJ,GAAE,CAAE,CAAA,GAAEK,IAAET,GAAEgO,EAAE,GAAE,IAAEpD,GAAI,GAACjK,IAAE,SAASvB,GAAE;AAAC,UAAMG,IAAE8K,MAAK3K,IAAEkL,GAAE,GAAGnL,IAAEkL,GAAE;AAAG,WAAOf,GAAI,MAAI;AAAC,YAAMxK,IAAE,EAAC,IAAGG,GAAE,UAASE,EAAC;AAAE,aAAaC,KAAN,QAASA,EAAE,QAAQN,CAAC,GAAE,MAAI;AAAC,QAAMM,KAAN,QAASA,EAAE,WAAWN,CAAC;AAAA,MAAC;AAAA,IAAC,GAAG,CAACM,GAAEH,GAAEE,CAAC,CAAC,GAAEF;AAAA,EAAC,EAAC,GAAGyB,IAAE2J,GAAI,GAAC1J,IAAE+I,GAAI,GAAC9I,IAAQF,KAAN,MAAQ,EAAC,gBAAeG,GAAE,MAAKC,GAAE,SAAQE,EAAC,IAAE4L,GAAG,EAAC,QAAOvM,GAAE,MAAKU,GAAE,cAAalC,GAAE,WAAU+B,IAAE,gBAAc,gBAAe,YAAW,EAAEK,IAAE,EAAC,UAASL,IAAE,IAAE,GAAE,eAAcA,IAAE,KAAG,EAAC,GAAE,EAAC,GAAG+G,GAAG1G,CAAC,GAAE,SAAQ,CAACA,GAAE,CAAC,EAAC,IAAGoH,GAAE,GAAGD,GAAE,CAAE,GAAE,sBAAqBV,GAAE,CAAC;AAAE,MAAIzG,GAAE;AAAE,QAAME,IAAE,SAASrC,GAAEG,GAAE;AAAC,IAASA,MAAT,WAAaA,IAAE,CAAA;AAAI,UAAK,EAAC,MAAKG,GAAE,cAAaF,GAAE,SAAQG,GAAE,QAAOI,IAAE,UAASC,GAAC,IAAEZ,GAAE,EAAC,SAAQa,IAAE,IAAG,OAAMC,KAAE,GAAE,aAAYC,KAAE,MAAK,WAAUC,KAAE,IAAG,QAAOC,KAAE,GAAE,MAAKC,KAAE,GAAE,IAAEf,GAAEsB,KAAE+J,GAAI,GAAC9J,IAAE6J,GAAI,GAAC5J,IAAEiK,GAAG7K,EAAC,GAAEkB,IAAE2J,GAAG9K,EAAC,GAAEf,IAAE6L,GAAGtL,CAAC,GAAEL,IAAEI,EAAE,OAAQ,GAACH,KAAEG,EAAE,OAAO,EAAE,GAAEG,IAAEH,EAAE,OAAM,GAAGI,IAAEJ,EAAE,OAAO,EAAE,GAAEK,IAAEL,EAAE,OAAO,EAAE,GAAEc,IAAEd,EAAE,OAAO,EAAE,GAAEe,KAAEf,EAAE,OAAQ,MAAI;AAAA,IAAE,CAAA,GAAGgB,KAAEhB,EAAE,OAAO,EAAE,GAAEiB,KAAEjB,EAAE,YAAa,MAAI;AAAC,UAAIL;AAAE,YAAMG,MAASH,KAAEO,EAAE,QAAQ,cAAnB,OAA8B,SAAOP,GAAE;AAAK,cAAaG,MAAN,OAAQ,SAAOA,GAAE,SAAS,OAAO,MAAkBA,OAAd;AAAA,IAAe,GAAG,CAACI,CAAC,CAAC;AAAEF,IAAAA,EAAE,UAAW,MAAI;AAAC,UAAGQ;AAAE,eAAOF,GAAE,GAAG,cAAaX,EAAC,GAAE,MAAI;AAAC,UAAAW,GAAE,IAAI,cAAaX,EAAC;AAAA,QAAC;AAAE,eAASA,GAAEA,IAAE;AAAC,YAAG,EAAC,MAAKG,GAAC,IAAEH;AAAE,QAAAG,OAAI,aAAaD,GAAE,OAAO,GAAE,aAAaO,EAAE,OAAO,GAAEC,EAAE,UAAQ,IAAGW,GAAE,UAAQ;AAAA,MAAG;AAAA,IAAC,GAAG,CAACR,GAAEF,EAAC,CAAC,GAAEN,EAAE,UAAW,MAAI;AAAmC,UAA/B,CAACQ,KAAY,CAACc,EAAE,WAAkB,CAACrB;AAAE;AAAO,eAASN,GAAEA,IAAE;AAAC,QAAAsB,GAAC,KAAIlB,EAAE,IAAGJ,IAAE,OAAO;AAAA,MAAC;AAAC,YAAMG,KAAE2E,GAAGlE,GAAE,QAAQ,EAAE;AAAgB,aAAOT,GAAE,iBAAiB,cAAaH,EAAC,GAAE,MAAI;AAAC,QAAAG,GAAE,oBAAoB,cAAaH,EAAC;AAAA,MAAC;AAAA,IAAC,GAAG,CAACY,GAAE,UAASN,GAAEF,GAAES,GAAEc,GAAEL,EAAC,CAAC;AAAE,UAAMC,KAAElB,EAAE,YAAa,SAASL,IAAEG,IAAEG,IAAE;AAAC,MAASH,OAAT,WAAaA,KAAE,KAAaG,OAAT,WAAaA,KAAE;AAAS,YAAMD,KAAEyL,GAAG7J,EAAE,SAAQ,SAAQhC,EAAE,OAAO;AAAE,MAAAI,MAAG,CAACG,EAAE,WAAS,aAAaN,GAAE,OAAO,GAAEA,GAAE,UAAQ,OAAO,WAAY,MAAIE,EAAE,IAAGJ,IAAEM,EAAC,GAAGD,EAAC,KAAGF,OAAI,aAAaD,GAAE,OAAO,GAAEE,EAAE,IAAGJ,IAAEM,EAAC;AAAA,IAAE,GAAG,CAAC2B,GAAE7B,CAAC,CAAC,GAAEoB,KAAEmI,GAAI,MAAI;AAAC,MAAAvI,GAAE,QAAO,GAAGZ,EAAE,UAAQ;AAAA,IAAM,IAAIoB,KAAE+H,GAAI,MAAI;AAAC,UAAGxI,EAAE,SAAQ;AAAC,cAAMnB,KAAE8E,GAAGlE,GAAE,QAAQ,EAAE;AAAK,QAAAZ,GAAE,MAAM,gBAAc,IAAGA,GAAE,gBAAgB6L,EAAE,GAAE1K,EAAE,UAAQ;AAAA,MAAE;AAAA,IAAC,CAAC,GAAGU,KAAE8H,GAAI,MAAI,CAAC,CAACpJ,EAAE,QAAQ,aAAW,CAAC,SAAQ,WAAW,EAAE,SAASA,EAAE,QAAQ,UAAU,IAAI;AAAIF,IAAAA,EAAE,UAAW,MAAI;AAAC,UAAGQ,KAAG0C,GAAG3C,GAAE,YAAY,GAAE;AAAC,YAAIZ;AAAE,cAAMI,KAAEQ,GAAE;AAAa,eAAON,KAAGF,GAAE,iBAAiB,cAAaO,EAAC,IAASX,KAAEY,GAAE,aAAX,QAAsBZ,GAAE,iBAAiB,cAAaW,EAAC,GAAEO,MAAGd,GAAE,iBAAiB,aAAYD,IAAE,EAAC,MAAK,GAAE,CAAC,GAAEC,GAAE,iBAAiB,cAAaD,EAAC,GAAEC,GAAE,iBAAiB,cAAaC,EAAC,GAAE,MAAI;AAAC,cAAIL;AAAE,UAAAM,KAAGF,GAAE,oBAAoB,cAAaO,EAAC,IAASX,KAAEY,GAAE,aAAX,QAAsBZ,GAAE,oBAAoB,cAAaW,EAAC,GAAEO,MAAGd,GAAE,oBAAoB,aAAYD,EAAC,GAAEC,GAAE,oBAAoB,cAAaD,EAAC,GAAEC,GAAE,oBAAoB,cAAaC,EAAC;AAAA,QAAC;AAAA,MAAC;AAAC,eAASF,GAAEH,IAAE;AAAC,YAAG,aAAaE,GAAE,OAAO,GAAEQ,EAAE,UAAQ,IAAGM,MAAG,CAAC6D,GAAG5E,EAAE,OAAO,KAAGgB,KAAE,KAAG,CAAC6K,GAAG7J,EAAE,SAAQ,MAAM;AAAE;AAAO,cAAM9B,KAAE2L,GAAG7J,EAAE,SAAQ,QAAOhC,EAAE,OAAO;AAAE,QAAAE,KAAED,GAAE,UAAQ,OAAO,WAAY,MAAI;AAAC,UAAAH,EAAE,WAASK,EAAE,IAAGJ,IAAE,OAAO;AAAA,QAAC,GAAGG,EAAC,IAAEG,KAAGF,EAAE,IAAGJ,IAAE,OAAO;AAAA,MAAC;AAAC,eAASK,GAAEL,IAAE;AAAC,YAAG6B,GAAG;AAAC;AAAO,QAAAT,GAAE,QAAS;AAAC,cAAMjB,KAAE2E,GAAGlE,GAAE,QAAQ;AAAE,YAAG,aAAaH,EAAE,OAAO,GAAEY,GAAE,UAAQ,IAAGM,EAAE,WAASpB,EAAE,QAAQ,iBAAgB;AAAC,UAAAD,KAAG,aAAaJ,GAAE,OAAO,GAAEM,EAAE,UAAQmB,EAAE,QAAQ,EAAC,GAAGpB,EAAE,QAAQ,iBAAgB,MAAKkB,IAAE,GAAEzB,GAAE,SAAQ,GAAEA,GAAE,SAAQ,UAAS;AAAC,YAAA4B,GAAC,GAAGJ,GAAC,GAAGK,GAAC,KAAIN,GAAEvB,IAAE,IAAG,cAAc;AAAA,UAAC,EAAC,CAAC;AAAE,gBAAMK,KAAEG,EAAE;AAAQ,iBAAOL,GAAE,iBAAiB,aAAYE,EAAC,GAAE,MAAKe,GAAE,UAAQ,MAAI;AAAC,YAAAjB,GAAE,oBAAoB,aAAYE,EAAC;AAAA,UAAC;AAAA,QAAE;AAAC,SAAWJ,EAAE,YAAZ,WAAqB,CAACqE,GAAG1D,GAAE,UAASZ,GAAE,aAAa,MAAIuB,GAAEvB,EAAC;AAAA,MAAC;AAAC,eAASW,GAAEX,IAAE;AAAC,QAAA6B,GAAC,KAAItB,EAAE,QAAQ,oBAAwBoB,EAAE,WAAR,QAAiBA,EAAE,QAAQ,EAAC,GAAGpB,EAAE,QAAQ,iBAAgB,MAAKkB,IAAE,GAAEzB,GAAE,SAAQ,GAAEA,GAAE,SAAQ,UAAS;AAAC,UAAA4B,GAAG,GAACJ,GAAG,GAACK,GAAC,KAAIN,GAAEvB,EAAC;AAAA,QAAC,EAAC,CAAC,EAAEA,EAAC;AAAA,MAAE;AAAA,IAAC,GAAG,CAACY,IAAEC,GAAEb,GAAEgB,IAAEC,IAAEC,IAAEK,IAAEC,IAAEI,IAAExB,GAAEE,GAAEP,GAAE0B,IAAEQ,GAAEN,GAAEpB,GAAEsB,EAAC,CAAC,GAAE2I,GAAI,MAAI;AAAC,UAAIxK;AAAE,UAAGa,KAAGP,MAAUN,KAAE2B,EAAE,YAAX,QAAqB3B,GAAE,UAAU,sBAAoBsB,GAAG,GAAC;AAAC,QAAAH,EAAE,UAAQ;AAAG,cAAMnB,KAAEY,GAAE;AAAS,YAAG2C,GAAG3C,GAAE,YAAY,KAAGZ,IAAE;AAAC,cAAIG;AAAE,gBAAMG,KAAEwE,GAAGlE,GAAE,QAAQ,EAAE;AAAK,UAAAN,GAAE,aAAauL,IAAG,EAAE;AAAE,gBAAMxL,KAAEO,GAAE,cAAaR,KAAQqB,MAAN,SAAgBtB,KAAEsB,GAAE,SAAS,QAAQ,KAAM,CAAAzB,OAAGA,GAAE,OAAK0B,OAA5C,SAAyDvB,KAAEA,GAAE,YAAX,OAAoB,SAAOA,GAAE,SAAS;AAAS,iBAAOC,OAAIA,GAAE,MAAM,gBAAc,KAAIE,GAAE,MAAM,gBAAc,QAAOD,GAAE,MAAM,gBAAc,QAAOL,GAAE,MAAM,gBAAc,QAAO,MAAI;AAAC,YAAAM,GAAE,MAAM,gBAAc,IAAGD,GAAE,MAAM,gBAAc,IAAGL,GAAE,MAAM,gBAAc;AAAA,UAAE;AAAA,QAAC;AAAA,MAAC;AAAA,IAAC,GAAG,CAACa,GAAEP,GAAEoB,GAAEd,IAAEa,IAAEE,GAAEL,EAAC,CAAC,GAAEkJ,GAAI,MAAI;AAAC,MAAAlK,MAAIL,EAAE,UAAQ,QAAOoB,GAAE,UAAQ,IAAGG,GAAC,GAAGI,GAAC;AAAA,IAAG,GAAG,CAACtB,GAAEkB,IAAEI,EAAC,CAAC,GAAEvB,EAAE,UAAW,MAAI,MAAI;AAAC,MAAAmB,GAAG,GAAC,aAAatB,GAAE,OAAO,GAAE,aAAaO,EAAE,OAAO,GAAEmB,GAAC;AAAA,IAAE,GAAG,CAACf,GAAED,GAAE,cAAaY,IAAEI,EAAC,CAAC;AAAE,UAAME,KAAEzB,EAAE,QAAS,MAAI;AAAC,eAASL,GAAEA,IAAE;AAAC,QAAAC,EAAE,UAAQD,GAAE;AAAA,MAAW;AAAC,aAAM,EAAC,eAAcA,IAAE,gBAAeA,IAAE,YAAYA,IAAE;AAAC,cAAK,EAAC,aAAYG,GAAC,IAAEH;AAAE,iBAASK,KAAG;AAAC,UAAAK,EAAE,WAASX,EAAE,WAASK,EAAE,IAAGD,IAAE,OAAO;AAAA,QAAC;AAAC,QAAAa,MAAG,CAAC6D,GAAG5E,EAAE,OAAO,KAAGK,KAAOW,OAAJ,KAAOI,GAAE,WAASrB,GAAE,aAAW,IAAEA,GAAE,aAAW,IAAE,MAAI,aAAaS,EAAE,OAAO,GAAYR,EAAE,YAAZ,UAAoBI,GAAG,KAAEgB,GAAE,UAAQ,IAAGZ,EAAE,UAAQ,OAAO,WAAWJ,IAAEY,EAAC;AAAA,MAAG,EAAC;AAAA,IAAC,GAAG,CAACD,IAAEZ,GAAEE,GAAEP,GAAEkB,EAAC,CAAC,GAAEc,KAAE1B,EAAE,QAAS,OAAK,EAAC,eAAc;AAAC,mBAAaH,GAAE,OAAO;AAAA,IAAC,GAAE,aAAaF,IAAE;AAAC,MAAA6B,QAAKN,GAAEvB,GAAE,aAAY,EAAE;AAAA,IAAC,EAAC,IAAI,CAACuB,IAAEM,EAAC,CAAC;AAAE,WAAOxB,EAAE,QAAS,MAAIQ,IAAE,EAAC,WAAUiB,IAAE,UAASC,GAAC,IAAE,CAAA,GAAI,CAAClB,GAAEiB,IAAEC,EAAC,CAAC;AAAA,EAAC,EAAEG,GAAE,EAAC,SAAQJ,GAAE,OAAM,EAAC,MAAK,GAAE,GAAE,aAAY6M,GAAG,EAAC,oBAAmB,GAAE,CAAC,EAAC,CAAC,GAAErM,KAAE,SAAStC,GAAEG,GAAE;AAAC,IAASA,MAAT,WAAaA,IAAE,CAAE;AAAE,UAAK,EAAC,MAAKG,GAAE,cAAaF,GAAE,SAAQG,GAAE,UAAS,EAAC,cAAaI,GAAC,EAAC,IAAEX,GAAE,EAAC,SAAQY,KAAE,IAAG,OAAMC,IAAE,SAAQ,QAAOC,KAAE,IAAG,aAAYC,KAAE,IAAG,kBAAiBC,KAAE,IAAG,aAAYC,KAAE,GAAE,IAAEd,GAAEe,KAAEb,EAAE,OAAM,GAAGoB,KAAEpB,EAAE,OAAO,EAAE,GAAEqB,IAAErB,EAAE,QAAS,OAAK,EAAC,cAAcL,GAAE;AAAC,MAAAkB,GAAE,UAAQlB,EAAE;AAAA,IAAW,GAAE,YAAYA,GAAE;AAAC,YAAMG,IAAEe,GAAE;AAAQ,MAAIlB,EAAE,WAAN,KAAwBa,MAAV,YAAcgE,GAAG1E,GAAE,EAAE,KAAGY,OAAI,CAACT,KAAG,CAACQ,MAAGP,EAAE,QAAQ,aAAWU,MAAiBV,EAAE,QAAQ,UAAU,SAAlC,eAAwCP,EAAE,eAAc,GAAGI,EAAE,IAAGJ,EAAE,aAAY,OAAO,KAAGI,EAAE,IAAGJ,EAAE,aAAY,OAAO;AAAA,IAAG,GAAE,QAAQA,GAAE;AAAC,YAAMG,IAAEe,GAAE;AAAQ,MAAcL,MAAd,eAAiBK,GAAE,UAAQA,GAAE,UAAQ,SAAO2D,GAAG1E,GAAE,EAAE,KAAGY,OAAI,CAACT,KAAG,CAACQ,MAAGP,EAAE,QAAQ,aAAWU,MAAaV,EAAE,QAAQ,UAAU,SAA9B,UAAmCH,EAAE,IAAGJ,EAAE,aAAY,OAAO,IAAEI,EAAE,IAAGJ,EAAE,aAAY,OAAO;AAAA,IAAE,GAAE,UAAUA,GAAE;AAAC,MAAAkB,GAAE,UAAQ,QAAOlB,EAAE,oBAAkB,CAACgB,MAAGwM,GAAGxN,CAAC,MAAUA,EAAE,QAAR,OAAayN,GAAG9M,EAAC,MAAIX,EAAE,eAAgB,GAACyB,GAAE,UAAQ,KAAczB,EAAE,QAAZ,WAAiBI,EAAE,CAACE,KAAG,CAACQ,IAAEd,EAAE,aAAY,OAAO;AAAA,IAAE,GAAE,QAAQA,GAAE;AAAC,MAAAA,EAAE,oBAAkB,CAACgB,MAAGwM,GAAGxN,CAAC,KAAGyN,GAAG9M,EAAC,KAASX,EAAE,QAAR,OAAayB,GAAE,YAAUA,GAAE,UAAQ,IAAGrB,EAAE,CAACE,KAAG,CAACQ,IAAEd,EAAE,aAAY,OAAO;AAAA,IAAE,EAAC,IAAI,CAACO,GAAEI,IAAEE,GAAEE,IAAEC,IAAEZ,GAAEE,GAAEW,IAAEH,EAAC,CAAC;AAAE,WAAOT,EAAE,QAAS,MAAIO,KAAE,EAAC,WAAUc,EAAC,IAAE,IAAI,CAACd,IAAEc,CAAC,CAAC;AAAA,EAAC,EAAEQ,GAAE,EAAC,OAAM,aAAY,QAAO,CAACJ,GAAE,aAAYA,EAAC,CAAC,GAAEW,KAAE,SAASzC,GAAEG,GAAE;AAAC,QAAIG;AAAE,IAASH,MAAT,WAAaA,IAAE;AAAI,UAAK,EAAC,MAAKC,GAAE,YAAWG,EAAC,IAAEP,GAAE,EAAC,SAAQW,KAAE,IAAG,MAAKC,KAAE,SAAQ,IAAET,GAAEU,KAASP,IAAEmO,GAAG,IAAI7N,EAAC,MAAjB,OAAoBN,IAAEM,IAAEE,KAAEmK,GAAE,GAAGlK,KAAQwK,GAAI,KAAV,MAAWvK,KAAEX,EAAE,QAAS,MAAgBQ,MAAZ,aAAyBD,OAAV,UAAY,EAAC,CAAC,WAAmBA,OAAV,UAAY,eAAa,cAAc,GAAER,IAAEG,IAAE,OAAM,IAAE,EAAC,iBAAgBH,IAAE,SAAO,SAAQ,iBAAgCS,MAAhB,gBAAkB,WAASA,GAAE,iBAAgBT,IAAEG,IAAE,QAAO,GAAeM,MAAZ,aAAe,EAAC,MAAK,WAAU,GAAE,GAAYA,MAAT,UAAY,EAAC,IAAGC,GAAC,GAAE,GAAYD,MAAT,UAAYE,MAAG,EAAC,MAAK,WAAU,GAAE,GAAcH,OAAX,YAAc,EAAC,qBAAoB,OAAM,GAAE,GAAgBA,OAAb,cAAgB,EAAC,qBAAoB,OAAM,EAAC,GAAG,CAACC,GAAEN,GAAEQ,IAAEX,GAAEU,IAAEF,EAAC,CAAC,GAAEK,KAAEZ,EAAE,QAAS,MAAI;AAAC,YAAML,KAAE,EAAC,IAAGO,GAAE,GAAGM,KAAG,EAAC,MAAKA,EAAC,EAAC;AAAE,aAAkBA,MAAZ,aAAyBD,OAAV,UAAYZ,KAAE,EAAC,GAAGA,IAAE,GAAYa,MAAT,UAAY,EAAC,mBAAkBC,GAAC,EAAC;AAAA,IAAC,GAAG,CAACD,GAAEN,GAAEO,IAAEF,EAAC,CAAC,GAAEM,KAAEb,EAAE,YAAa,CAAAL,OAAG;AAAC,UAAG,EAAC,QAAOG,GAAE,UAASG,EAAC,IAAEN;AAAE,YAAMK,IAAE,EAAC,MAAK,UAAS,GAAGF,KAAG,EAAC,IAAGI,IAAE,UAAS,EAAC;AAAE,cAAOK,IAAC;AAAA,QAAE,KAAI;AAAS,iBAAM,EAAC,GAAGP,GAAE,iBAAgBF,KAAGG,EAAC;AAAA,QAAE,KAAI;AAAW,iBAAM,EAAC,GAAGD,GAAE,GAAGF,KAAG,EAAC,iBAAgB,GAAE,EAAC;AAAA,MAAC;AAAC,aAAM;IAAE,GAAG,CAACI,GAAEK,EAAC,CAAC;AAAE,WAAOP,EAAE,QAAS,MAAIM,KAAE,EAAC,WAAUK,IAAE,UAASC,IAAE,MAAKC,GAAC,IAAE,IAAI,CAACP,IAAEK,IAAEC,IAAEC,EAAC,CAAC;AAAA,EAAC,EAAEgB,GAAE,EAAC,MAAK,OAAM,CAAC,GAAEQ,IAAE,SAAS1C,GAAEG,GAAE;AAAC,IAASA,MAAT,WAAaA,IAAE,CAAA;AAAI,UAAK,EAAC,MAAKG,GAAE,cAAaF,GAAE,UAASG,GAAE,SAAQI,GAAC,IAAEX,GAAE,EAAC,SAAQY,KAAE,IAAG,WAAUC,IAAE,IAAG,cAAaC,KAAE,IAAG,mBAAkBC,KAAE,eAAc,gBAAeC,KAAE,IAAG,qBAAoBC,KAAE,eAAc,gBAAeC,KAAE,IAAG,SAAQO,IAAE,SAAQC,EAAC,IAAEvB,GAAEwB,IAAE6J,MAAKvJ,IAAE0H,GAAe,OAAO7I,MAAnB,aAAqBA,KAAE,MAAI,EAAE,GAAEf,IAAc,OAAOe,MAAnB,aAAqBmB,IAAEnB,IAAEb,IAAEI,EAAE,OAAO,EAAE,GAAEH,KAAEG,EAAE,OAAO,EAAE,GAAE,EAAC,WAAUG,GAAE,cAAaC,EAAC,IAAEmN,GAAGnM,EAAC,GAAE,EAAC,WAAUf,GAAE,cAAaS,EAAC,IAAEyM,GAAGlM,CAAC,GAAEN,KAAEf,EAAE,OAAO,EAAE,GAAEgB,KAAEsI,GAAI,CAAA3J,OAAG;AAAC,UAAIG;AAAyC,UAApC,CAACG,KAAG,CAACM,MAAG,CAACC,KAAcb,GAAE,QAAb,YAA2BoB,GAAE;AAAQ;AAAO,YAAMf,MAASF,KAAEQ,GAAE,QAAQ,oBAAnB,OAAoC,SAAOR,GAAE,QAAOI,KAAEoB,IAAEsK,GAAGtK,EAAE,SAAS,SAAQtB,EAAC,IAAE,CAAA;AAAG,UAAG,CAACG,MAAIR,GAAE,mBAAkBO,GAAE,SAAO,IAAG;AAAC,YAAIP,KAAE;AAAG,YAAGO,GAAE,QAAS,CAAAJ,OAAG;AAAC,cAAIG;AAAE,WAAOA,KAAEH,GAAE,YAAX,QAAqB,CAACG,GAAE,QAAMH,GAAE,QAAQ,QAAQ,QAAQ,uBAAqBH,KAAE;AAAA,QAAG,CAAG,GAAC,CAACA;AAAE;AAAA,MAAM;AAAC,MAAAI,EAAE,IAAG,SAASJ,IAAE;AAAC,eAAM,iBAAgBA;AAAA,MAAC,EAAEA,EAAC,IAAEA,GAAE,cAAYA,IAAE,YAAY;AAAA,IAAC,CAAC,GAAGsB,KAAEqI,GAAI,CAAA3J,OAAG;AAAC,UAAIG;AAAE,YAAMG,KAAE,MAAI;AAAC,YAAIH;AAAE,QAAAkB,GAAErB,EAAC,IAASG,KAAE6E,GAAGhF,EAAC,MAAb,QAAiBG,GAAE,oBAAoB,WAAUG,EAAC;AAAA,MAAC;AAAE,OAAOH,KAAE6E,GAAGhF,EAAC,MAAb,QAAiBG,GAAE,iBAAiB,WAAUG,EAAC;AAAA,IAAC,CAAC,GAAGiB,KAAEoI,GAAI,CAAA3J,OAAG;AAAC,UAAIG;AAAE,YAAMG,KAAEL,EAAE;AAAQ,MAAAA,EAAE,UAAQ;AAAG,YAAMI,KAAEH,GAAE;AAA0D,UAA/CA,GAAE,UAAQ,IAAaa,OAAV,WAAaV,MAAYC,MAAwB,OAAOP,KAAnB,cAAsB,CAACA,EAAEC,EAAC;AAAE;AAAO,YAAMY,KAAEoE,GAAGhF,EAAC,GAAEa,KAAE,MAAI8K,GAAG,OAAO,IAAE,KAAI7K,KAAEgE,GAAGvE,EAAE,QAAQ,EAAE,iBAAiBM,EAAC;AAAE,UAAIG,KAAEuC,GAAG3C,EAAC,IAAEA,KAAE;AAAK,aAAKI,MAAG,CAACgD,GAAGhD,EAAC,KAAG;AAAC,cAAMhB,KAAEkE,GAAGlD,EAAC;AAAE,YAAGgD,GAAGhE,EAAC,KAAG,CAACuD,GAAGvD,EAAC;AAAE;AAAM,QAAAgB,KAAEhB;AAAA,MAAC;AAAC,UAAGc,GAAE,UAAQyC,GAAG3C,EAAC,KAAG,CAACA,GAAE,QAAQ,WAAW,KAAG,CAAC0D,GAAG1D,IAAEL,EAAE,QAAQ,KAAG,MAAM,KAAKO,EAAC,EAAE,MAAO,CAAAd,OAAG,CAACsE,GAAGtD,IAAEhB,EAAC,CAAC;AAAG;AAAO,UAAGwD,GAAG5C,EAAC,KAAGiB,IAAE;AAAC,cAAM1B,KAAES,GAAE,cAAY,KAAGA,GAAE,cAAYA,GAAE,aAAYN,KAAEM,GAAE,eAAa,KAAGA,GAAE,eAAaA,GAAE;AAAa,YAAIP,KAAEC,MAAGN,GAAE,UAAQY,GAAE;AAAY,YAAGN,MAAWqD,GAAG/C,EAAC,EAAE,cAAd,UAA0BP,KAAEL,GAAE,WAASY,GAAE,cAAYA,GAAE,cAAaP,MAAGF,MAAGH,GAAE,UAAQY,GAAE;AAAa;AAAA,MAAM;AAAC,YAAMK,MAASd,KAAEQ,GAAE,QAAQ,oBAAnB,OAAoC,SAAOR,GAAE,QAAOe,KAAES,KAAGsK,GAAGtK,EAAE,SAAS,SAAQV,EAAC,EAAE,KAAM,CAAAd,OAAG;AAAC,YAAIG;AAAE,eAAOyE,GAAG/E,KAASM,KAAEH,GAAE,YAAX,OAAoB,SAAOG,GAAE,SAAS,QAAQ;AAAA,MAAC,CAAC;AAAG,UAAGyE,GAAG/E,IAAEO,EAAE,QAAQ,KAAGwE,GAAG/E,IAAEO,EAAE,YAAY,KAAGW;AAAE;AAAO,YAAMO,KAAEE,IAAEsK,GAAGtK,EAAE,SAAS,SAAQV,EAAC,IAAE,CAAE;AAAC,UAAGQ,GAAE,SAAO,GAAE;AAAC,YAAIzB,KAAE;AAAG,YAAGyB,GAAE,QAAS,CAAAtB,OAAG;AAAC,cAAIG;AAAE,WAAOA,KAAEH,GAAE,YAAX,QAAqB,CAACG,GAAE,QAAMH,GAAE,QAAQ,QAAQ,QAAQ,0BAAwBH,KAAE;AAAA,QAAG,CAAG,GAAC,CAACA;AAAE;AAAA,MAAM;AAAC,MAAAI,EAAE,IAAGJ,IAAE,eAAe;AAAA,IAAC,CAAC,GAAGwB,KAAEmI,GAAI,CAAA3J,OAAG;AAAC,UAAIG;AAAE,YAAMG,KAAE,MAAI;AAAC,YAAIH;AAAE,QAAAoB,GAAEvB,EAAC,IAASG,KAAE6E,GAAGhF,EAAC,MAAb,QAAiBG,GAAE,oBAAoBY,IAAET,EAAC;AAAA,MAAC;AAAE,OAAOH,KAAE6E,GAAGhF,EAAC,MAAb,QAAiBG,GAAE,iBAAiBY,IAAET,EAAC;AAAA,IAAC,CAAC;AAAGD,IAAAA,EAAE,UAAW,MAAI;AAAC,UAAG,CAACC,KAAG,CAACM;AAAE;AAAO,MAAAD,GAAE,QAAQ,qBAAmBH,GAAEG,GAAE,QAAQ,wBAAsBF;AAAE,UAAIT,KAAE;AAAG,eAASG,GAAEH,IAAE;AAAC,QAAAI,EAAE,IAAGJ,IAAE,iBAAiB;AAAA,MAAC;AAAC,eAASK,KAAG;AAAC,eAAO,aAAaL,EAAC,GAAEoB,GAAE,UAAQ;AAAA,MAAE;AAAC,eAASN,KAAG;AAAC,QAAAd,KAAE,OAAO,WAAY,MAAI;AAAC,UAAAoB,GAAE,UAAQ;AAAA,QAAE,GAAG2C,OAAK,IAAE,CAAC;AAAA,MAAC;AAAC,YAAM/C,KAAE8D,GAAGvE,EAAE,QAAQ;AAAE,MAAAM,MAAIG,GAAE,iBAAiB,WAAUN,IAAEY,KAAED,IAAEX,CAAC,GAAEM,GAAE,iBAAiB,oBAAmBX,EAAC,GAAEW,GAAE,iBAAiB,kBAAiBF,EAAC,IAAGf,KAAGiB,GAAE,iBAAiBD,IAAEI,IAAEK,KAAED,IAAEJ,CAAC;AAAE,UAAIF,KAAE,CAAA;AAAG,aAAOC,OAAIqC,GAAGhD,EAAE,YAAY,MAAIU,KAAEmD,GAAG7D,EAAE,YAAY,IAAGgD,GAAGhD,EAAE,QAAQ,MAAIU,KAAEA,GAAE,OAAOmD,GAAG7D,EAAE,QAAQ,CAAC,IAAG,CAACgD,GAAGhD,EAAE,SAAS,KAAGA,EAAE,aAAWA,EAAE,UAAU,mBAAiBU,KAAEA,GAAE,OAAOmD,GAAG7D,EAAE,UAAU,cAAc,CAAC,KAAIU,KAAEA,GAAE,OAAQ,CAAAjB,OAAG;AAAC,YAAIG;AAAE,eAAOH,SAAYG,KAAEa,GAAE,gBAAX,OAAwB,SAAOb,GAAE;AAAA,MAAe,CAAC,GAAGc,GAAE,QAAS,CAAAjB,OAAG;AAAC,QAAAA,GAAE,iBAAiB,UAASG,IAAE,EAAC,SAAQ,GAAE,CAAC;AAAA,MAAC,CAAC,GAAG,MAAI;AAAC,QAAAU,MAAIG,GAAE,oBAAoB,WAAUN,IAAEY,KAAED,IAAEX,CAAC,GAAEM,GAAE,oBAAoB,oBAAmBX,EAAC,GAAEW,GAAE,oBAAoB,kBAAiBF,EAAC,IAAGf,KAAGiB,GAAE,oBAAoBD,IAAEI,IAAEK,KAAED,IAAEJ,CAAC,GAAEF,GAAE,QAAS,CAAAjB,OAAG;AAAC,UAAAA,GAAE,oBAAoB,UAASG,EAAC;AAAA,QAAC,CAAG,GAAC,OAAO,aAAaH,EAAC;AAAA,MAAC;AAAA,IAAC,GAAG,CAACW,IAAEJ,GAAEM,GAAEd,GAAEgB,IAAET,GAAEF,GAAEc,IAAEN,IAAEJ,GAAEC,GAAEY,IAAEX,GAAEY,IAAEC,IAAEJ,GAAEK,EAAC,CAAC,GAAEnB,EAAE,UAAW,MAAI;AAAC,MAAAJ,EAAE,UAAQ;AAAA,IAAE,GAAG,CAACF,GAAEgB,EAAC,CAAC;AAAE,UAAMa,KAAEvB,EAAE,QAAS,OAAK,EAAC,WAAUgB,IAAE,CAACqM,GAAGzM,EAAC,CAAC,GAAE,CAAAjB,OAAG;AAAC,MAAAgB,MAAGZ,EAAE,IAAGJ,GAAE,aAAY,iBAAiB;AAAA,IAAC,EAAC,IAAI,CAACqB,IAAEjB,GAAEY,IAAEC,EAAC,CAAC,GAAEY,KAAExB,EAAE,QAAS,OAAK,EAAC,WAAUgB,IAAE,cAAa;AAAC,MAAAnB,GAAE,UAAQ;AAAA,IAAE,GAAE,YAAW;AAAC,MAAAA,GAAE,UAAQ;AAAA,IAAE,GAAE,CAACyN,GAAG5M,EAAC,CAAC,GAAE,MAAI;AAAC,MAAAd,EAAE,UAAQ;AAAA,IAAE,EAAC,IAAI,CAACoB,IAAEN,EAAC,CAAC;AAAE,WAAOV,EAAE,QAAS,MAAIO,KAAE,EAAC,WAAUgB,IAAE,UAASC,GAAC,IAAE,CAAE,GAAE,CAACjB,IAAEgB,IAAEC,EAAC,CAAC;AAAA,EAAC,EAAEK,GAAE,EAAC,SAAQ,GAAE,CAAC,GAAES,KAAE4L,GAAGrM,GAAE,EAAC,SAAQf,GAAE,aAAYV,GAAE,QAAOqB,GAAE,YAAWpB,EAAC,CAAC,GAAE,EAAC,mBAAkBkC,IAAE,kBAAiBC,IAAE,cAAaC,GAAC,IAAE,SAAS9C,GAAE;AAAC,IAASA,MAAT,WAAaA,IAAE,CAAE;AAAE,UAAMG,IAAEH,EAAE,IAAK,CAAAA,MAASA,KAAN,OAAQ,SAAOA,EAAE,SAAW,GAACM,IAAEN,EAAE,IAAK,CAAAA,MAASA,KAAN,OAAQ,SAAOA,EAAE,QAAQ,GAAGI,IAAEJ,EAAE,IAAK,CAAAA,MAASA,KAAN,OAAQ,SAAOA,EAAE,OAAOO,IAAEF,EAAE,YAAa,CAAAF,MAAG8N,GAAG9N,GAAEH,GAAE,WAAW,GAAGG,CAAC,GAAEQ,KAAEN,EAAE,YAAa,CAAAF,MAAG8N,GAAG9N,GAAEH,GAAE,UAAU,GAAGM,CAAC,GAAEM,KAAEP,EAAE,YAAa,CAAAF,MAAG8N,GAAG9N,GAAEH,GAAE,MAAM,GAAGI,CAAC;AAAE,WAAOC,EAAE,QAAS,OAAK,EAAC,mBAAkBE,GAAE,kBAAiBI,IAAE,cAAaC,GAAC,IAAI,CAACL,GAAEI,IAAEC,EAAC,CAAC;AAAA,EAAC,EAAE,CAACyB,GAAEC,IAAEG,IAAEC,GAAEC,EAAC,CAAC;AAAE5B,EAAAA,GAAG,MAAI;AAAC,QAAG;AAAE,aAAO,EAAE,OAAO,GAAG,SAAQf,CAAC,GAAE,EAAE,OAAO,GAAG,YAAWG,CAAC,GAAE,MAAI;AAAC,UAAE,OAAO,IAAI,SAAQH,CAAC,GAAE,EAAE,OAAO,IAAI,YAAWG,CAAC;AAAA,MAAC;AAAE,aAASH,IAAG;AAAC,MAAAD,EAAE,EAAE;AAAA,IAAC;AAAC,aAASI,EAAEH,GAAE;AAAC,MAAAA,EAAE,WAASuB,KAAGvB,EAAE,aAAW4B,KAAG7B,EAAE,EAAE;AAAA,IAAC;AAAA,EAAC,GAAG,CAAC,GAAEwB,GAAEK,CAAC,CAAC,GAAEb,GAAG,MAAI;AAAC,IAAAkB,KAAG,KAAG,EAAE,OAAO,KAAK,YAAW,EAAC,UAASL,GAAE,QAAOL,EAAC,CAAC;AAAA,EAAC,GAAG,CAAC,GAAEU,GAAEV,GAAEK,CAAC,CAAC;AAAE,QAAMmB,IAAE,EAAC,aAAYtC,GAAE,gBAAeC,GAAE,cAAaoC,IAAE,mBAAkB5C,GAAE,QAAO+B,GAAE,WAAUlC,EAAC,GAAEiD,IAAElC,GAAG,MAAIiC,GAAG,CAACtC,GAAEC,GAAEoC,IAAE5C,GAAE+B,CAAC,CAAC,GAAEgB,KAAEzC,EAAE,2BAA0BsB,KAAG,yBAAwBG,KAAG,CAACH,KAAG,UAASxB,CAAC,GAAEkO,KAAEhF,GAAG,CAACxH,EAAE,cAAaH,EAAE,KAAIF,CAAC,CAAC,GAAEuB,IAAE7B,EAAE,gBAAcQ,EAAE,QAAM,IAAE;AAAG,SAAO1B,EAAEsL,IAAG,EAAC,IAAGlK,GAAE,UAAS,CAACvB,EAAEwB,IAAE,EAAC,WAAUyB,IAAE,KAAIuL,IAAE,SAAQ1M,IAAE,SAAO1B,GAAE,UAAS0B,IAAEoB,IAAE,QAAO,MAAKpB,IAAE,aAAW,QAAO,aAAYG,IAAE,KAAG,QAAO,eAAcH,IAAE,KAAG,QAAO,qBAAoB7B,IAAE,KAAG,QAAO,MAAKgB,GAAE,MAAKa,IAAE,kBAAgBvB,GAAE,UAAS,MAAK,WAAU,CAAC,CAACuB,KAAGnB,GAAE,UAASO,GAAE,GAAG0B,GAAEvB,EAAE,aAAa,EAAC,QAAQrB,GAAE;;AAAC,KAAAuC,IAAAb,EAAE,YAAF,QAAAa,EAAA,KAAAb,GAAY1B,IAAGE,EAAE,EAAE,GAAEmB,EAAE,kBAAkB,EAAE;AAAA,EAAC,GAAE,GAAGK,EAAC,CAAC,CAAC,EAAC,CAAC,GAAE1B,EAAE4O,GAAG,UAAS,EAAC,OAAM5L,GAAE,UAAShD,EAAE2K,IAAG,EAAC,aAAYxJ,GAAE,WAAUC,GAAE,UAASa,KAAGjC,EAAEuN,IAAG,EAAC,SAAQrL,GAAE,OAAM,IAAG,cAAaJ,IAAE,KAAG,GAAE,aAAY,CAACA,GAAE,UAAS9B,EAAE,OAAM,EAAC,KAAIgC,EAAE,aAAY,WAAU,oBAAmB,OAAMD,GAAE,GAAGc,GAAG,GAAC,UAASpB,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC;AAAC,CAAG;AAAC,SAASsN,GAAG,EAAC,WAAU,GAAE,GAAG,EAAC,GAAE;AAAC,QAAM1O,IAAEG,EAAE,gBAAe,CAAC;AAAE,SAAOR,EAAE,MAAK,EAAC,WAAUK,GAAE,GAAG,EAAC,CAAC;AAAC;AAACyO,GAAG,cAAY;AAAe,MAAME,KAAG5O,GAAG,CAAC,EAAC,GAAG,EAAC,GAAE,MAAWmL,SAAP,OAAYvL,EAAE0L,IAAG,EAAC,UAAS1L,EAAE8O,IAAG,EAAC,KAAI,GAAE,GAAG,EAAC,CAAC,EAAC,CAAC,IAAE9O,EAAE8O,IAAG,EAAC,KAAI,GAAE,GAAG,EAAC,CAAC,CAAC;AAAG,SAASG,GAAG,EAAC,WAAU,GAAE,SAAQ,IAAE,WAAU,MAAK5O,IAAE,MAAK,KAAI,GAAE,KAAI,GAAE,GAAGM,EAAC,GAAE;AAAC,QAAMC,IAAEJ,EAAE,iBAA8B,MAAd,eAAiB,CAAC,iBAAiB,CAAC,EAAE,GAAEH,KAAG,CAAC,iBAAiBA,CAAC,EAAE,GAAE,CAAC;AAAE,SAAOL,EAAE,OAAM,EAAC,WAAUY,GAAE,OAAM,EAAC,OAAM,GAAGP,CAAC,MAAK,QAAqB,MAAd,cAAgB,oBAAkB,OAAM,GAAE,KAAI,GAAE,KAAI,GAAE,GAAGM,EAAC,CAAC;AAAC;AAAC,SAASuO,GAAG,EAAC,WAAU5O,GAAE,MAAKD,IAAE,SAAQ,SAAQD,IAAE,WAAU,OAAMG,IAAE,MAAK,MAAKI,GAAE,GAAGC,EAAC,GAAE;AAAC,QAAMC,IAAEL,EAAE,aAAY,EAAC,CAAC,aAAaJ,CAAC,EAAE,GAAcA,MAAZ,UAAa,GAAaC,MAAX,YAAc,gBAAyBA,MAAV,WAAa,gBAAeE,KAAG,CAAC,aAAaA,CAAC,EAAE,GAAED,CAAC;AAAE,SAAOH,EAAE,OAAM,EAAC,WAAUU,GAAE,GAAGD,GAAE,UAAS,CAACZ,EAAE,OAAM,EAAC,WAAU,iBAAgB,CAAC,GAAEW,KAAGX,EAAE,OAAM,EAAC,WAAU,kBAAiB,UAASW,EAAC,CAAC,CAAC,EAAC,CAAC;AAAC;AAAC,SAASwO,GAAG,EAAC,WAAU,GAAE,UAAS,GAAE,GAAG9O,EAAC,GAAE;AAAC,QAAM,IAAEG,EAAE,mBAAkB,CAAC;AAAE,SAAOR,EAAE6C,IAAE,EAAC,WAAU,GAAE,GAAGxC,GAAE,UAAS,EAAC,CAAC;AAAC;AAAC2O,GAAG,cAAY,gBAAeA,GAAG,OAAKH,IAAGG,GAAG,YAAUD,IAAGI,GAAG,QAAM7N,IAAE6N,GAAG,cAAYvM,IAAEuM,GAAG,SAAO3N,IAAE2N,GAAG,aAAWzO,IAAEyO,GAAG,WAASxM;AAAE,MAAMyM,KAAGhP,GAAG,CAAC,EAAC,WAAU,GAAE,UAAS,GAAE,GAAGC,EAAC,GAAE,MAAI;AAAC,QAAM,IAAEG,EAAE,iBAAgB,CAAC;AAAE,SAAOR,EAAE,OAAM,EAAC,WAAU,GAAE,KAAI,GAAE,GAAGK,GAAE,UAAS,EAAC,CAAC;AAAC,CAAC;AAAG,SAASgP,GAAG,EAAC,WAAU,GAAE,GAAG,EAAC,GAAE;AAAC,QAAMhP,IAAEG,EAAE,mBAAkB,CAAC;AAAE,SAAOR,EAAEgD,IAAE,EAAC,WAAU3C,GAAE,GAAG,EAAC,CAAC;AAAC;AAAC,SAASiP,GAAG,EAAC,WAAU,GAAE,UAAS,GAAE,GAAGjP,EAAC,GAAE;AAAC,QAAM,IAAEG,EAAE,YAAW,CAAC;AAAE,SAAOR,EAAE,OAAM,EAAC,WAAU,GAAE,GAAGK,GAAE,UAAS,EAAC,CAAC;AAAC;AAAC,SAASkP,GAAG,EAAC,WAAU,GAAE,SAAQ,IAAE,WAAU,UAASlP,GAAE,GAAG,EAAC,GAAE;AAAC,QAAM,IAAEG,EAAE,WAAsB,MAAZ,aAAe,CAAC,WAAW,CAAC,EAAE,GAAE,CAAC;AAAE,SAAOR,EAAE,OAAM,EAAC,WAAU,GAAE,GAAG,GAAE,UAASK,EAAC,CAAC;AAAC;AAAC,SAASmP,GAAG,EAAC,WAAU,GAAE,SAAQ,IAAE,UAAS,OAAMnP,IAAE,GAAE,GAAG,EAAC,GAAE;AAAC,QAAM,IAAEG,EAAE,eAAc,GAAE,CAAC;AAAE,SAAOR,EAAE,OAAM,EAAC,WAAU,GAAE,GAAG,GAAE,UAASA,EAAE,OAAM,EAAC,WAAU,mBAAkB,OAAM,EAAC,OAAM,GAAGK,IAAE,IAAE,IAAEA,IAAE,MAAI,MAAIA,CAAC,IAAG,EAAC,CAAC,EAAC,CAAC;AAAC;AAAC,SAASoP,GAAG,EAAC,MAAK,IAAE,SAAQ,GAAG,EAAC,GAAE;AAAC,SAAOzP,EAAE,SAAQ,EAAC,GAAG,GAAE,UAAS,EAAC,CAAC;AAAC;AAACoP,GAAG,cAAY,aAAYC,GAAG,cAAYzM,IAAEyM,GAAG,SAAO7N,IAAE6N,GAAG,aAAW3O,IAAE2O,GAAG,WAAS1M,IAAE2M,GAAG,SAAOH,IAAGG,GAAG,OAAKF,IAAGE,GAAG,SAAOD,IAAGE,GAAG,OAAK9O;AAAE,MAAMiP,KAAGtP,GAAG,CAAC,EAAC,IAAGE,IAAE,SAAQ,WAAUD,GAAE,MAAKD,IAAE,QAAO,MAAKO,IAAE,SAAQ,OAAMC,IAAE,MAAK,OAAMC,GAAE,aAAYC,GAAE,oBAAmBC,GAAE,YAAWC,GAAE,mBAAkBC,GAAE,aAAYC,GAAE,UAASO,GAAE,UAASC,GAAE,cAAaC,GAAE,iBAAgBM,GAAE,GAAGlC,EAAC,GAAEE,MAAI;AAAC,QAAMC,IAAEM,EAAE,oBAAmBM,KAAG,2BAA0BE,KAAG,4BAA2BS,KAAG,uBAAsBC,KAAG,uBAAsBC,KAAG,oBAAmBf,KAAG,CAAC,aAAaA,CAAC,EAAE,GAAEP,CAAC,GAAEK,IAAEH,GAAG,CAAAP,MAAG;AAAC,IAAAyB,IAAEzB,EAAE,eAAgB,IAACe,KAAGA,EAAEf,CAAC;AAAA,EAAC,GAAG,CAACe,GAAEU,CAAC,CAAC,GAAEN,IAAEZ,GAAG,CAAAP,MAAG;AAAC,IAAAyB,IAAEzB,EAAE,mBAAiBiB,KAAGA,EAAEjB,CAAC;AAAA,EAAC,GAAG,CAACiB,GAAEQ,CAAC,CAAC;AAAE,SAAOtB,EAAE,OAAM,EAAC,WAAUD,GAAE,UAAS,CAACW,KAAGb,EAAEyP,IAAG,EAAC,SAAQnP,GAAE,MAAKO,EAAC,CAAC,GAAEC,KAAGd,EAAES,IAAE,EAAC,SAAQK,GAAE,SAAQ,CAAAd,MAAGU,EAAEV,CAAC,EAAC,CAAC,GAAEA,EAAE,SAAQ,EAAC,IAAGM,GAAE,WAAU,YAAW,KAAIL,GAAE,MAAKG,GAAE,MAAKO,GAAE,UAAS,GAAE,aAAYO,MAAI,MAAI;AAAC,YAAOd,GAAG;AAAA,MAAA,KAAI;AAAQ,eAAM;AAAA,MAA2B,KAAI;AAAS,eAAM;AAAA,MAAuB,KAAI;AAAW,eAAM;AAAA,MAA8B,KAAI;AAAM,eAAM;AAAA,MAAkC,KAAI;AAAO,eAAM;AAAA,MAAmB;AAAQ,eAAM;AAAA,IAAoB;AAAA,EAAC,GAAI,GAAC,UAASqB,GAAE,UAASC,GAAE,GAAG3B,EAAC,CAAC,GAAEiB,KAAGhB,EAAES,IAAE,EAAC,SAAQO,GAAE,SAAQ,CAAAhB,MAAGmB,EAAEnB,CAAC,EAAC,CAAC,GAAE2B,KAAGxB,EAAE,OAAM,EAAC,eAAc8B,GAAE,UAAS,CAACjC,EAAES,IAAE,EAAC,SAAQ,QAAO,CAAC,GAAEkB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC;AAAC,CAAG;AAAC+N,GAAG,cAAY;AAAQ,MAAMC,KAAGvP,GAAG,CAAC,EAAC,IAAGE,IAAE,YAAW,WAAUD,GAAE,MAAKD,IAAE,YAAW,OAAMG,IAAE,MAAK,OAAMI,GAAE,MAAKC,IAAE,GAAE,aAAYC,IAAE,sBAAqB,UAASC,GAAE,UAASC,GAAE,GAAGC,EAAC,GAAEC,MAAI;AAAC,QAAMC,IAAEV,EAAE,uBAAsBM,KAAG,uBAAsBC,KAAG,uBAAsBR,KAAG,CAAC,aAAaA,CAAC,EAAE,GAAEF,CAAC;AAAE,SAAOF,EAAE,OAAM,EAAC,WAAUe,GAAE,UAAS,CAACP,KAAGX,EAAEyP,IAAG,EAAC,SAAQnP,GAAE,MAAKK,EAAC,CAAC,GAAEX,EAAE,YAAW,EAAC,IAAGM,GAAE,WAAU,eAAc,KAAIW,GAAE,MAAKb,GAAE,UAAS,GAAE,aAAYS,GAAE,UAASC,GAAE,UAASC,GAAE,MAAKH,GAAE,GAAGI,EAAC,CAAC,CAAC,EAAC,CAAC;AAAC,CAAC;AAAG2O,GAAG,cAAY;AAAW,MAAMC,KAAGxP,GAAG,CAAC,EAAC,IAAGE,IAAE,YAAW,WAAUD,GAAE,MAAKD,IAAE,YAAW,OAAMG,IAAE,QAAO,OAAMI,GAAE,SAAQC,GAAE,UAASC,GAAE,GAAGC,EAAC,GAAEC,MAAI;AAAC,QAAMC,IAAER,EAAE,uBAAsBI,KAAG,sBAAqBC,KAAG,uBAAsBN,KAAG,CAAC,aAAaA,CAAC,EAAE,GAAEF,CAAC;AAAE,SAAOF,EAAE,OAAM,EAAC,WAAUa,GAAE,UAAS,CAAChB,EAAE,SAAQ,EAAC,MAAK,YAAW,IAAGM,GAAE,WAAU,eAAc,KAAIS,GAAE,MAAKX,GAAE,UAAS,GAAE,SAAQQ,GAAE,UAASC,GAAE,GAAGC,EAAC,CAAC,GAAEH,KAAGX,EAAEyP,IAAG,EAAC,SAAQnP,GAAE,MAAKK,EAAC,CAAC,CAAC,EAAC,CAAC;AAAC,CAAC;AAAGiP,GAAG,cAAY;AAAW,MAAMC,KAAGzP,GAAG,CAAC,EAAC,IAAGE,IAAE,SAAQ,WAAUD,GAAE,MAAKD,IAAE,SAAQ,OAAMG,IAAE,QAAO,OAAMI,GAAE,SAAQC,GAAE,UAASC,GAAE,GAAGC,EAAC,GAAEC,MAAI;AAAC,QAAMC,IAAER,EAAE,oBAAmBI,KAAG,sBAAqBC,KAAG,uBAAsBN,KAAG,CAAC,aAAaA,CAAC,EAAE,GAAEF,CAAC;AAAE,SAAOF,EAAE,OAAM,EAAC,WAAUa,GAAE,UAAS,CAAChB,EAAE,SAAQ,EAAC,MAAK,SAAQ,IAAGM,GAAE,WAAU,YAAW,KAAIS,GAAE,MAAKX,GAAE,UAAS,GAAE,SAAQQ,GAAE,UAASC,GAAE,GAAGC,EAAC,CAAC,GAAEH,KAAGX,EAAEyP,IAAG,EAAC,SAAQnP,GAAE,MAAKK,EAAC,CAAC,CAAC,EAAC,CAAC;AAAC,CAAG;AAACkP,GAAG,cAAY;AAAQ,MAAMC,KAAG1P,GAAG,CAAC,EAAC,IAAGE,IAAE,UAAS,WAAUD,GAAE,MAAKD,IAAE,UAAS,OAAMG,IAAE,QAAO,OAAMI,IAAE,UAAS,SAAQC,GAAE,UAASC,GAAE,GAAGC,EAAC,GAAEC,MAAI;AAAC,QAAMC,IAAER,EAAE,qBAAoBI,KAAG,sBAAqBC,KAAG,uBAAsBN,KAAG,CAAC,aAAaA,CAAC,EAAE,GAAEF,CAAC;AAAE,SAAOL,EAAE,OAAM,EAAC,WAAUgB,GAAE,UAASb,EAAE,SAAQ,EAAC,WAAU,aAAY,UAAS,CAACH,EAAE,SAAQ,EAAC,MAAK,YAAW,IAAGM,GAAE,WAAU,eAAc,KAAIS,GAAE,MAAKX,GAAE,SAAQQ,GAAE,UAASC,GAAE,GAAGC,EAAC,CAAC,GAAEd,EAAE,QAAO,EAAC,WAAU,SAAQ,CAAC,GAAEW,CAAC,EAAC,CAAC,EAAC,CAAC;AAAC,CAAG;AAA2W,SAASoP,KAAI;AAAC,QAAM/P,IAAEY,GAAEqB,EAAC,GAAE,CAAC9B,GAAEG,CAAC,IAAEO,GAAE,CAAE,CAAA,GAAER,IAAEE,GAAG,OAAMJ,MAAG;;AAAC,IAAAH,KAAG,QAAMuC,IAAAvC,EAAE,UAAF,gBAAAuC,EAAS,IAAIpC;AAAA,EAAG,GAAG,CAACH,CAAC,CAAC,GAAEI,IAAEG,GAAG,OAAMJ,MAAG;;AAAC,IAAAH,KAAG,QAAMuC,IAAAvC,EAAE,UAAF,gBAAAuC,EAAS,OAAOpC;AAAA,EAAG,GAAG,CAACH,CAAC,CAAC,GAAEW,IAAEJ,GAAG,YAAS;;AAAC,IAAAP,KAAG,QAAMuC,IAAAvC,EAAE,UAAF,gBAAAuC,EAAS;AAAA,EAAQ,GAAG,CAACvC,CAAC,CAAC;AAAE,SAAOe,GAAG,MAAI;;AAAC,QAAG,CAACf;AAAE;AAAO,UAAMG,KAAEoC,IAAAvC,EAAE,UAAF,gBAAAuC,EAAS,UAAW,CAAAvC,MAAG;AAAC,MAAAM,EAAG,CAAAH,MAAUA,MAAP,OAASH,EAAE,OAAK,EAAC,GAAGG,GAAE,GAAGH,EAAE,KAAI,CAAG;AAAA,IAAA;AAAI,WAAM,MAAI;AAAC,MAAAG,KAAA,QAAAA;AAAA,IAAK;AAAA,EAAC,GAAG,CAACH,CAAC,CAAC,GAAE,EAAC,UAASG,GAAE,UAASE,GAAE,aAAYD,GAAE,YAAWO,EAAC;AAAC;AAAuR,SAASqP,GAAGhQ,GAAEG,IAAE,KAAI;AAAC,QAAK,CAACG,GAAED,CAAC,IAAEQ,GAAEb,CAAC;AAAE,SAAOe,GAAG,MAAI;AAAC,UAAMT,IAAE,WAAY,MAAI;AAAC,MAAAD,EAAEL,CAAC;AAAA,IAAC,GAAGG,CAAC;AAAE,WAAM,MAAI,aAAaG,CAAC;AAAA,EAAC,GAAG,CAACN,GAAEG,CAAC,CAAC,GAAEG;AAAC;AAAmV,SAAS2P,GAAGjQ,GAAEG,GAAE;AAACY,EAAAA,GAAG,MAAI;AAAC,UAAMT,IAAE,CAAAA,MAAG;AAAC,MAAAA,EAAE,SAAON,KAAGG,EAAG;AAAA,IAAA;AAAE,WAAO,SAAS,iBAAiB,SAAQG,CAAC,GAAE,MAAI,SAAS,oBAAoB,SAAQA,CAAC;AAAA,EAAC,GAAG,CAACN,GAAEG,CAAC,CAAC;AAAC;AAAuN2P,GAAG,cAAY;AAAS,MAAMI,KAAG,MAAa,OAAO,aAAhB,UAAmC,OAAO,cAAhB;AAA0B,SAASC,KAAI;AAAC,SAAOrP,GAAG,MAAc,OAAO,UAAjB,YAAyBoP,GAAE,GAAI,CAAE,CAAA;AAAC;AAAUvP,GAAE,EAAC,OAAM,OAAM,CAAC;AAAud,MAAAyP,KAAG,uBAAsBC,KAAG,wBAAuBC,KAAG,uBAAsBC,KAAG,6BAA4BC,KAAG,2BAA0BC,KAAG,6BAA4BC,KAAG,iDAAgDC,KAAG,oCAAmCC,KAAG,6BAA4BC,KAAG,8BAA6BC,KAAG,qCAAoCC,KAAG,6BAA4BC,KAAG,iCAAgCC,KAAG,EAAE,8BAAgC,IAAI,sBAAwB,IAAI,+BAAiC,IAAI,wBAA0B,IAAG,CAACX,EAAE,GAAE,IAAG,CAACC,EAAE,GAAE,QAAO,CAACC,EAAE,GAAE,IAAG,CAACC,EAAE,GAAE,IAAG,CAACC,EAAE,GAAE,IAAG,CAACC,EAAE,GAAE,IAAG,CAACC,EAAE,GAAE,IAAG,CAACC,EAAE,GAAE,IAAG,CAACC,EAAE,GAAE,IAAG,CAACC,EAAE,GAAE,IAAG,CAACC,EAAE,GAAE,IAAI,qBAAuB,IAAI,yBAA2B,IAAI,6BAA+B,YAAY,kCAAoC,SAAS,4BAA8B,UAAU,0BAA4B,IAAI,8BAAgC,YAAY,mCAAqC,SAAS,6BAA+B,SAAQ,GAAEE,KAAG,CAAAlR,MAAa,OAAOA,KAAjB,WAAmBA,IAAEA,KAAA,QAAAA,EAAG,UAAkB,OAAOA,EAAE,WAAnB,WAA2BA,EAAE,UAAQ,KAAK,UAAUA,EAAE,OAAO,IAAE,KAAK,UAAUA,CAAC,GAAEmR,KAAG,EAAC,SAAQ,WAAU,SAAQ,UAAS,GAAEC,KAAG,EAAC,SAAQ,KAAI,SAAQ,IAAG;AAAE,IAAIC,KAAG,SAASrR,GAAE;AAAC,SAAM,EAAC,IAAG,IAAG,QAAOA,EAAC;AAAC,GAAEsR,KAAG,SAAStR,GAAE;AAAC,SAAM,EAAC,IAAG,IAAG,OAAMA,EAAC;AAAC,GAAEuR,KAAG,SAASvR,GAAEG,GAAEG,GAAE;AAAC,SAAWH,EAAE,OAAP,KAAUA,IAAOG,EAAE,OAAP,KAAUA,IAAE+Q,GAAGrR,EAAEG,EAAE,QAAOG,EAAE,MAAM,CAAC;AAAC,GAAEkR,KAAG,SAASxR,GAAEG,GAAE;AAAC,SAAWA,EAAE,OAAP,KAAUA,IAAEmR,GAAGtR,EAAEG,EAAE,KAAK,CAAC;AAAC,GAAEsR,KAAG,WAAU;AAAC,SAAOA,KAAG,OAAO,UAAQ,SAASzR,GAAE;AAAC,aAAQG,GAAEG,IAAE,GAAED,IAAE,UAAU,QAAOC,IAAED,GAAEC;AAAI,eAAQF,KAAKD,IAAE,UAAUG,CAAC;AAAE,eAAO,UAAU,eAAe,KAAKH,GAAEC,CAAC,MAAIJ,EAAEI,CAAC,IAAED,EAAEC,CAAC;AAAG,WAAOJ;AAAA,EAAC,GAAEyR,GAAG,MAAM,MAAK,SAAS;AAAC;AAAE,SAASC,GAAG1R,GAAEG,GAAE;AAAmB,MAAfH,MAAIG,KAAqBH,MAAP,QAAiBG,MAAP;AAAS,WAAM;AAAG,MAAG,OAAOH,KAAG,OAAOG;AAAE,WAAM;AAAG,MAAa,OAAOH,KAAjB,UAAmB;AAAC,QAAG,MAAM,QAAQA,CAAC,GAAE;AAA+B,UAA3B,CAAC,MAAM,QAAQG,CAAC,KAAcH,EAAE,WAASG,EAAE;AAAO,eAAM;AAAG,eAAQG,IAAE,GAAEA,IAAEN,EAAE,QAAOM;AAAI,YAAG,CAACoR,GAAG1R,EAAEM,CAAC,GAAEH,EAAEG,CAAC,CAAC;AAAE,iBAAM;AAAG,aAAM;AAAA,IAAE;AAAC,QAAID,IAAE,OAAO,KAAKL,CAAC;AAAE,QAAGK,EAAE,WAAS,OAAO,KAAKF,CAAC,EAAE;AAAO,aAAM;AAAG,SAAIG,IAAE,GAAEA,IAAED,EAAE,QAAOC;AAAyC,UAAjC,CAACH,EAAE,eAAeE,EAAEC,CAAC,CAAC,KAAc,CAACoR,GAAG1R,EAAEK,EAAEC,CAAC,CAAC,GAAEH,EAAEE,EAAEC,CAAC,CAAC,CAAC;AAAE,eAAM;AAAG,WAAM;AAAA,EAAE;AAAC;AAAC,IAAIqR,KAAG,SAAS3R,GAAE;AAAC,SAAO,MAAM,QAAQA,CAAC;AAAC,GAAE4R,KAAG,SAAS5R,GAAE;AAAC,SAAgB,OAAOA,KAAjB,YAA2BA,MAAP,QAAU,CAAC2R,GAAG3R,CAAC;AAAC,GAAE6R,KAAG,SAAS7R,GAAEG,GAAE;AAAC,SAAM,cAAYH,IAAE,WAAS,SAAS,GAAE;AAAC,YAAO,OAAO;MAAG,KAAI;AAAS,eAAM;AAAA,MAAW,KAAI;AAAS,eAAM;AAAA,MAAW,KAAI;AAAU,eAAM;AAAA,MAAY,KAAI;AAAY,eAAM;AAAA,MAAY,KAAI;AAAS,eAAO,aAAa,QAAM,aAAkB,MAAP,OAAS,SAAO;AAAA,MAAY;AAAQ,eAAO,KAAK,UAAU,CAAC;AAAA,IAAC;AAAA,EAAC,EAAEG,CAAC;AAAC,GAAE2R,KAAG,SAAS9R,GAAE;AAAC,SAAOA,EAAE,IAAK,SAASA,GAAE;AAAC,WAAgB,OAAOA,KAAjB,WAAmB,MAAIA,IAAE,MAAIA,IAAE;AAAA,EAAG,CAAC,EAAG,KAAK,EAAE;AAAC,GAAE+R,KAAG,SAAS/R,GAAEG,GAAE;AAAC,MAAIG,IAAEH,EAAE,IAAGE,IAAE,SAASL,GAAEG,GAAE;AAAC,QAAIG,IAAE;AAAG,aAAQD,KAAKL;AAAE,aAAO,UAAU,eAAe,KAAKA,GAAEK,CAAC,KAAGF,EAAE,QAAQE,CAAC,IAAE,MAAIC,EAAED,CAAC,IAAEL,EAAEK,CAAC;AAAG,QAASL,KAAN,QAAqB,OAAO,OAAO,yBAA1B,YAAgD;AAAC,UAAII,IAAE;AAAE,WAAIC,IAAE,OAAO,sBAAsBL,CAAC,GAAEI,IAAEC,EAAE,QAAOD;AAAI,QAAAD,EAAE,QAAQE,EAAED,CAAC,CAAC,IAAE,KAAG,OAAO,UAAU,qBAAqB,KAAKJ,GAAEK,EAAED,CAAC,CAAC,MAAIE,EAAED,EAAED,CAAC,CAAC,IAAEJ,EAAEK,EAAED,CAAC,CAAC;AAAA,IAAE;AAAC,WAAOE;AAAA,EAAC,EAAEH,GAAE,CAAC,IAAI,CAAC;AAAE,SAAOsR,GAAG,EAAC,IAAGzR,KAAGM,KAAG,IAAG,GAAED,CAAC;AAAC,GAAE2R,KAAG,WAAU;AAAC,WAAShS,EAAEG,GAAE;AAAC,QAAIG,IAAE;AAAK,SAAK,SAAOH,GAAE,KAAK,MAAI,SAASH,GAAE;AAAC,aAAOwR,GAAI,SAASrR,GAAE;AAAC,eAAM,EAAC,MAAK,gBAAe,OAAMH,GAAE,IAAG,WAASG,EAAE,MAAI,KAAI,SAAQA,EAAE,WAAS,GAAE;AAAA,MAAC,GAAGG,EAAE,OAAON,CAAC,CAAC;AAAA,IAAC,GAAE,KAAK,aAAW,SAASA,GAAE;AAAC,aAAO,SAASA,GAAE;AAAC,eAAWA,EAAE,OAAP,KAAU,QAAQ,QAAQA,EAAE,MAAM,IAAE,QAAQ,OAAOA,EAAE,KAAK;AAAA,MAAC,EAAEM,EAAE,IAAIN,CAAC,CAAC;AAAA,IAAC,GAAE,KAAK,mBAAiB,SAASA,GAAE;AAAC,aAAO,SAASA,GAAE;AAAC,YAAQA,EAAE,OAAP;AAAU,iBAAOA,EAAE;AAAO,cAAMA,EAAE;AAAA,MAAK,EAAEM,EAAE,IAAIN,CAAC,CAAC;AAAA,IAAC,GAAE,KAAK,MAAI,SAASG,GAAE;AAAC,aAAO,IAAIH,EAAG,SAASA,GAAE;AAAC,eAAO,SAASA,GAAEG,GAAE;AAAC,iBAAWA,EAAE,OAAP,KAAUkR,GAAGrR,EAAEG,EAAE,MAAM,CAAC,IAAEA;AAAA,QAAC,EAAEA,GAAEG,EAAE,OAAON,CAAC,CAAC;AAAA,MAAC;IAAG,GAAE,KAAK,UAAQ,SAASG,GAAE;AAAC,aAAO,IAAIH,EAAG,SAASA,GAAE;AAAC,eAAO,SAASA,GAAEG,GAAE;AAAC,iBAAWA,EAAE,OAAP,KAAUH,EAAEG,EAAE,MAAM,IAAEA;AAAA,QAAC,EAAG,SAASG,GAAE;AAAC,iBAAOH,EAAEG,CAAC,EAAE,OAAON,CAAC;AAAA,QAAC,GAAGM,EAAE,OAAON,CAAC,CAAC;AAAA,MAAC,CAAG;AAAA,IAAA,GAAE,KAAK,QAAM,SAASG,GAAEE,GAAE;AAAC,aAAOC,EAAE,QAAS,SAASA,GAAE;AAAC,eAAOH,EAAEG,CAAC,IAAEN,EAAE,QAAQM,CAAC,IAAEN,EAAE,KAAKK,CAAC;AAAA,MAAC,CAAG;AAAA,IAAA;AAAA,EAAC;AAAC,SAAOL,EAAE,SAAO,WAAU;AAAC,WAAO,IAAIA,EAAG,SAASA,GAAE;AAAC,aAAgB,OAAOA,KAAjB,WAAmBqR,GAAGrR,CAAC,IAAEsR,GAAG,EAAC,SAAQO,GAAG,YAAW7R,CAAC,EAAC,CAAC;AAAA,IAAC;EAAG,GAAEA,EAAE,SAAO,WAAU;AAAC,WAAO,IAAIA,EAAG,SAASA,GAAE;AAAC,aAAgB,OAAOA,KAAjB,WAAmBqR,GAAGrR,CAAC,IAAEsR,GAAG,EAAC,SAAQO,GAAG,YAAW7R,CAAC,EAAC,CAAC;AAAA,IAAC,CAAG;AAAA,EAAA,GAAEA,EAAE,UAAQ,WAAU;AAAC,WAAO,IAAIA,EAAG,SAASA,GAAE;AAAC,aAAiB,OAAOA,KAAlB,YAAoBqR,GAAGrR,CAAC,IAAEsR,GAAG,EAAC,SAAQO,GAAG,aAAY7R,CAAC,EAAC,CAAC;AAAA,IAAC;EAAG,GAAEA,EAAE,WAAS,SAASG,GAAE;AAAC,WAAO,IAAIH,EAAG,SAAS,GAAE;AAAC,aAAO0R,GAAG,GAAEvR,CAAC,IAAEkR,GAAGlR,CAAC,IAAEmR,GAAG,EAAC,SAAQ,cAAY,KAAK,UAAUnR,CAAC,IAAE,WAAS,KAAK,UAAU,CAAC,EAAC,CAAC;AAAA,IAAC,CAAC;AAAA,EAAE,GAAEH,EAAE,SAAO,SAASG,GAAE;AAAC,WAAO,IAAIH,EAAG,SAAS,GAAE;AAAC,UAAG4R,GAAG,CAAC,KAAGzR,GAAE;AAAC,YAAIG,IAAE;AAAG,iBAAQD,KAAKF;AAAE,cAAGA,EAAE,eAAeE,CAAC,GAAE;AAAC,gBAAID,IAAED,EAAEE,CAAC,EAAE,OAAO,EAAEA,CAAC,CAAC;AAAE,gBAAQD,EAAE,OAAP;AAAU,qBAAgB,EAAEC,CAAC,MAAZ,SAAciR,GAAG,EAAC,SAAQ,cAAYjR,IAAE,oCAAmC,CAAC,IAAEiR,GAAGS,GAAG,MAAI1R,GAAED,EAAE,KAAK,CAAC;AAAE,YAASA,EAAE,WAAX,WAAoBE,EAAED,CAAC,IAAED,EAAE;AAAA,UAAO;AAAC,eAAOiR,GAAG/Q,CAAC;AAAA,MAAC;AAAC,aAAOsR,GAAG,CAAC,IAAEP,GAAG,CAAC,IAAEC,GAAG,EAAC,SAAQO,GAAG,aAAY,CAAC,EAAC,CAAC;AAAA,IAAC,CAAC;AAAA,EAAE,GAAE7R,EAAE,QAAM,SAASG,GAAE;AAAC,WAAO,IAAIH,EAAG,SAAS,GAAE;AAAC,aAAG2R,GAAG,CAAC,KAAGxR,IAAU,EAAE,OAAQ,SAASH,GAAEM,GAAE,GAAE;AAAC,eAAOiR,GAAI,SAASvR,GAAEG,GAAE;AAAC,iBAAOH,EAAE,OAAO,CAACG,CAAC,CAAC;AAAA,QAAC,GAAGH,GAAE,SAASA,GAAEM,GAAE;AAAC,iBAAOkR,GAAI,SAASxR,GAAE;AAAC,mBAAO+R,GAAG,MAAIzR,IAAE,KAAIN,CAAC;AAAA,UAAC,GAAGG,EAAE,OAAOH,CAAC,CAAC;AAAA,QAAC,EAAEM,GAAE,CAAC,CAAC;AAAA,MAAC,GAAG+Q,GAAG,CAAA,CAAE,CAAC,IAASM,GAAG,CAAC,IAAEN,GAAG,CAAC,IAAEC,GAAG,EAAC,SAAQO,GAAG,YAAW,CAAC,EAAC,CAAC;AAAA,IAAC,CAAC;AAAA,EAAE,GAAE7R,EAAE,QAAM,SAASG,GAAE;AAAC,WAAO,IAAIH,EAAG,SAAS,GAAE;AAAC,UAAG2R,GAAG,CAAC,GAAE;AAAC,YAAG,EAAE,WAASxR,EAAE;AAAO,iBAAOmR,GAAG,EAAC,SAAQ,gCAA8BnR,EAAE,SAAO,yBAAuB,EAAE,OAAM,CAAC;AAAE,iBAAQG,IAAE,IAAGD,IAAE,GAAEA,IAAEF,EAAE,QAAOE,KAAI;AAAC,cAAID,IAAED,EAAEE,CAAC,EAAE,OAAO,EAAEA,CAAC,CAAC;AAAE,cAAG,CAACD,EAAE;AAAG,mBAAOkR,GAAGS,GAAG,MAAI1R,IAAE,KAAID,EAAE,KAAK,CAAC;AAAE,UAAAE,EAAED,CAAC,IAAED,EAAE;AAAA,QAAM;AAAC,eAAOiR,GAAG/Q,CAAC;AAAA,MAAC;AAAC,aAAOgR,GAAG,EAAC,SAAQO,GAAG,uBAAqB1R,EAAE,QAAO,CAAC,EAAC,CAAC;AAAA,IAAC,CAAG;AAAA,EAAA,GAAEH,EAAE,QAAM,SAASG,GAAEG,GAAE;AAAC,aAAQD,IAAE,IAAGD,IAAE,GAAEA,IAAE,UAAU,QAAOA;AAAI,MAAAC,EAAED,IAAE,CAAC,IAAE,UAAUA,CAAC;AAAE,WAAOJ,EAAE,MAAM,MAAMA,GAAE,CAACG,GAAEG,CAAC,EAAE,OAAOD,CAAC,CAAC;AAAA,EAAC,GAAEL,EAAE,eAAa,SAASG,GAAEG,GAAE;AAAC,aAAQD,IAAE,IAAGD,IAAE,GAAEA,IAAE,UAAU,QAAOA;AAAI,MAAAC,EAAED,IAAE,CAAC,IAAE,UAAUA,CAAC;AAAE,WAAO,IAAIJ,EAAG,SAASA,GAAE;AAAC,aAAM,CAACG,GAAEG,CAAC,EAAE,OAAOD,CAAC,EAAE,OAAQ,SAASF,GAAEG,GAAE;AAAC,eAAOiR,GAAG,OAAO,QAAOpR,GAAEG,EAAE,OAAON,CAAC,CAAC;AAAA,MAAC,GAAGqR,GAAG,CAAE,CAAA,CAAC;AAAA,IAAC,CAAC;AAAA,EAAE,GAAErR,EAAE,UAAQ,WAAU;AAAC,WAAO,IAAIA,EAAG,SAASA,GAAE;AAAC,aAAOqR,GAAGrR,CAAC;AAAA,IAAC,CAAG;AAAA,EAAA,GAAEA,EAAE,cAAY,WAAU;AAAC,WAAO,IAAIA,EAAG,SAASA,GAAE;AAAC,aAAOqR,GAAGrR,CAAC;AAAA,IAAC,CAAC;AAAA,EAAE,GAAEA,EAAE,OAAK,SAASG,GAAE;AAAC,WAAO,IAAIH,EAAG,SAAS,GAAE;AAAC,UAAG4R,GAAG,CAAC,GAAE;AAAC,YAAItR,IAAE,CAAE;AAAC,iBAAQD,KAAK;AAAE,cAAG,EAAE,eAAeA,CAAC,GAAE;AAAC,gBAAID,IAAED,EAAE,OAAO,EAAEE,CAAC,CAAC;AAAE,gBAAQD,EAAE,OAAP;AAAU,qBAAOkR,GAAGS,GAAG,MAAI1R,GAAED,EAAE,KAAK,CAAC;AAAE,YAAAE,EAAED,CAAC,IAAED,EAAE;AAAA,UAAM;AAAC,eAAOiR,GAAG/Q,CAAC;AAAA,MAAC;AAAC,aAAOgR,GAAG,EAAC,SAAQO,GAAG,aAAY,CAAC,EAAC,CAAC;AAAA,IAAC,CAAG;AAAA,EAAA,GAAE7R,EAAE,WAAS,SAASG,GAAE;AAAC,WAAO,IAAIH,EAAG,SAAS,GAAE;AAAC,aAAa,KAAN,OAAQqR,GAAG,MAAM,IAAElR,EAAE,OAAO,CAAC;AAAA,IAAC;EAAG,GAAEH,EAAE,QAAM,WAAU;AAAC,aAAQG,IAAE,IAAGG,IAAE,GAAEA,IAAE,UAAU,QAAOA;AAAI,MAAAH,EAAEG,CAAC,IAAE,UAAUA,CAAC;AAAE,WAAO,IAAIN,EAAG,SAASA,GAAE;AAAC,eAAQM,IAAE,CAAE,GAAC,IAAE,GAAE,IAAEH,EAAE,QAAO,KAAI;AAAC,YAAIC,IAAED,EAAE,CAAC,EAAE,OAAOH,CAAC;AAAE,YAAQI,EAAE,OAAP;AAAU,iBAAOA;AAAE,QAAAE,EAAE,CAAC,IAAEF,EAAE;AAAA,MAAK;AAAC,UAAIG,IAAED,EAAE,IAAK,SAASN,GAAE;AAAC,eAAM,cAAYA,EAAE,MAAI,MAAI,OAAKA,EAAE;AAAA,MAAO,GAAI,KAAK,MAAM;AAAE,aAAOsR,GAAG,EAAC,SAAQ,qEAAmE/Q,IAAE,KAAI,CAAC;AAAA,IAAC,CAAC;AAAA,EAAE,GAAEP,EAAE,cAAY,SAASG,GAAEG,GAAE;AAAC,WAAO,IAAIN,EAAG,SAASA,GAAE;AAAC,aAAOqR,GAAG,SAASrR,GAAEG,GAAE;AAAC,eAAWA,EAAE,OAAP,KAAUA,EAAE,SAAOH;AAAA,MAAC,EAAEG,GAAEG,EAAE,OAAON,CAAC,CAAC,CAAC;AAAA,IAAC,CAAG;AAAA,EAAA,GAAEA,EAAE,UAAQ,SAASG,GAAEG,GAAE;AAAC,WAAO,IAAIN,EAAG,SAASA,GAAE;AAAC,eAAQK,IAAEL,GAAEI,IAAE,GAAEA,IAAED,EAAE,QAAOC,KAAI;AAAC,YAAYC,MAAT;AAAW,iBAAOiR,GAAG,EAAC,IAAGQ,GAAG3R,EAAE,MAAM,GAAEC,IAAE,CAAC,CAAC,GAAE,SAAQ,sBAAqB,CAAC;AAAE,YAAa,OAAOD,EAAEC,CAAC,KAApB,YAAuB,CAACwR,GAAGvR,CAAC;AAAE,iBAAOiR,GAAG,EAAC,IAAGQ,GAAG3R,EAAE,MAAM,GAAEC,IAAE,CAAC,CAAC,GAAE,SAAQyR,GAAG,aAAYxR,CAAC,EAAC,CAAC;AAAE,YAAa,OAAOF,EAAEC,CAAC,KAApB,YAAuB,CAACuR,GAAGtR,CAAC;AAAE,iBAAOiR,GAAG,EAAC,IAAGQ,GAAG3R,EAAE,MAAM,GAAEC,IAAE,CAAC,CAAC,GAAE,SAAQyR,GAAG,YAAWxR,CAAC,EAAC,CAAC;AAAE,QAAAA,IAAEA,EAAEF,EAAEC,CAAC,CAAC;AAAA,MAAC;AAAC,aAAOoR,GAAI,SAASxR,GAAE;AAAC,eAAgBK,MAAT,SAAW,EAAC,IAAGyR,GAAG3R,CAAC,GAAE,SAAQ,sBAAqB,IAAE4R,GAAGD,GAAG3R,CAAC,GAAEH,CAAC;AAAA,MAAC,GAAGM,EAAE,OAAOD,CAAC,CAAC;AAAA,IAAC,CAAC;AAAA,EAAE,GAAEL,EAAE,UAAQ,SAASG,GAAE;AAAC,WAAO,IAAIH,EAAG,SAAS,GAAE;AAAC,aAAOqR,GAAGlR,CAAC;AAAA,IAAC;EAAG,GAAEH,EAAE,OAAK,SAASG,GAAE;AAAC,WAAO,IAAIH,EAAG,SAAS,GAAE;AAAC,aAAOsR,GAAG,EAAC,SAAQnR,EAAC,CAAC;AAAA,IAAC,CAAG;AAAA,EAAA,GAAEH,EAAE,OAAK,SAASG,GAAE;AAAC,WAAO,IAAIH,EAAG,SAAS,GAAE;AAAC,aAAOG,IAAI,OAAO,CAAC;AAAA,IAAC,CAAC;AAAA,EAAE,GAAEH;AAAC,EAAG,GAACiS,KAAGD,GAAG;AAAOA,GAAG;AAAO,IAAIE,KAAGF,GAAG,SAAQG,KAAGH,GAAG;AAAQA,GAAG;AAAY,IAAII,IAAGJ,GAAG,UAASK,KAAGL,GAAG,QAAOM,KAAGN,GAAG;AAAMA,GAAG,OAAMA,GAAG;AAAK,IAAIO,KAAGP,GAAG,UAASQ,KAAGR,GAAG;AAAMA,GAAG,OAAMA,GAAG,cAAaA,GAAG,aAAYA,GAAG,SAAQA,GAAG,SAAQA,GAAG,MAAKA,GAAG;AAAK,MAAMS,KAAG,CAAC,QAAO,SAAQ,WAAU,oBAAmB,QAAO,WAAU,MAAM,GAAEC,KAAG,CAAC,SAAQ,QAAO,QAAO,WAAU,WAAU,SAAQ,WAAU,QAAO,eAAc,cAAa,SAAQ,eAAc,gBAAe,YAAW,aAAY,gBAAe,iBAAgB,WAAU,mBAAmB;AAAE,IAAIC,KAAG,SAAS3S,GAAE;AAAC,SAAM,EAAC,IAAG,IAAG,QAAOA,EAAC;AAAC,GAAE4S,KAAG,SAAS5S,GAAE;AAAC,SAAM,EAAC,IAAG,IAAG,OAAMA,EAAC;AAAC,GAAE6S,KAAG,SAAS7S,GAAEG,GAAEG,GAAE;AAAC,SAAWH,EAAE,OAAP,KAAUA,IAAOG,EAAE,OAAP,KAAUA,IAAEqS,GAAG3S,EAAEG,EAAE,QAAOG,EAAE,MAAM,CAAC;AAAC,GAAEwS,KAAG,SAAS9S,GAAEG,GAAE;AAAC,SAAWA,EAAE,OAAP,KAAUA,IAAEyS,GAAG5S,EAAEG,EAAE,KAAK,CAAC;AAAC,GAAE4S,KAAG,WAAU;AAAC,SAAOA,KAAG,OAAO,UAAQ,SAAS/S,GAAE;AAAC,aAAQG,GAAEG,IAAE,GAAED,IAAE,UAAU,QAAOC,IAAED,GAAEC;AAAI,eAAQF,KAAKD,IAAE,UAAUG,CAAC;AAAE,eAAO,UAAU,eAAe,KAAKH,GAAEC,CAAC,MAAIJ,EAAEI,CAAC,IAAED,EAAEC,CAAC;AAAG,WAAOJ;AAAA,EAAC,GAAE+S,GAAG,MAAM,MAAK,SAAS;AAAC;AAAE,SAASC,GAAGhT,GAAEG,GAAE;AAAmB,MAAfH,MAAIG,KAAqBH,MAAP,QAAiBG,MAAP;AAAS,WAAM;AAAG,MAAG,OAAOH,KAAG,OAAOG;AAAE,WAAM;AAAG,MAAa,OAAOH,KAAjB,UAAmB;AAAC,QAAG,MAAM,QAAQA,CAAC,GAAE;AAA+B,UAA3B,CAAC,MAAM,QAAQG,CAAC,KAAcH,EAAE,WAASG,EAAE;AAAO,eAAM;AAAG,eAAQG,IAAE,GAAEA,IAAEN,EAAE,QAAOM;AAAI,YAAG,CAAC0S,GAAGhT,EAAEM,CAAC,GAAEH,EAAEG,CAAC,CAAC;AAAE,iBAAM;AAAG,aAAM;AAAA,IAAE;AAAC,QAAID,IAAE,OAAO,KAAKL,CAAC;AAAE,QAAGK,EAAE,WAAS,OAAO,KAAKF,CAAC,EAAE;AAAO,aAAM;AAAG,SAAIG,IAAE,GAAEA,IAAED,EAAE,QAAOC;AAAyC,UAAjC,CAACH,EAAE,eAAeE,EAAEC,CAAC,CAAC,KAAc,CAAC0S,GAAGhT,EAAEK,EAAEC,CAAC,CAAC,GAAEH,EAAEE,EAAEC,CAAC,CAAC,CAAC;AAAE,eAAM;AAAG,WAAM;AAAA,EAAE;AAAC;AAAC,IAAI2S,KAAG,SAASjT,GAAE;AAAC,SAAO,MAAM,QAAQA,CAAC;AAAC,GAAEkT,KAAG,SAASlT,GAAE;AAAC,SAAgB,OAAOA,KAAjB,YAA2BA,MAAP,QAAU,CAACiT,GAAGjT,CAAC;AAAC,GAAEmT,KAAG,SAASnT,GAAEG,GAAE;AAAC,SAAM,cAAYH,IAAE,WAAS,SAAS,GAAE;AAAC,YAAO,OAAO,GAAC;AAAA,MAAE,KAAI;AAAS,eAAM;AAAA,MAAW,KAAI;AAAS,eAAM;AAAA,MAAW,KAAI;AAAU,eAAM;AAAA,MAAY,KAAI;AAAY,eAAM;AAAA,MAAY,KAAI;AAAS,eAAO,aAAa,QAAM,aAAkB,MAAP,OAAS,SAAO;AAAA,MAAY;AAAQ,eAAO,KAAK,UAAU,CAAC;AAAA,IAAC;AAAA,EAAC,EAAEG,CAAC;AAAC,GAAEiT,KAAG,SAASpT,GAAE;AAAC,SAAOA,EAAE,IAAK,SAASA,GAAE;AAAC,WAAgB,OAAOA,KAAjB,WAAmB,MAAIA,IAAE,MAAIA,IAAE;AAAA,EAAG,GAAI,KAAK,EAAE;AAAC,GAAEqT,KAAG,SAASrT,GAAEG,GAAE;AAAC,MAAIG,IAAEH,EAAE,IAAGE,IAAE,SAASL,GAAEG,GAAE;AAAC,QAAIG,IAAE,CAAA;AAAG,aAAQD,KAAKL;AAAE,aAAO,UAAU,eAAe,KAAKA,GAAEK,CAAC,KAAGF,EAAE,QAAQE,CAAC,IAAE,MAAIC,EAAED,CAAC,IAAEL,EAAEK,CAAC;AAAG,QAASL,KAAN,QAAqB,OAAO,OAAO,yBAA1B,YAAgD;AAAC,UAAII,IAAE;AAAE,WAAIC,IAAE,OAAO,sBAAsBL,CAAC,GAAEI,IAAEC,EAAE,QAAOD;AAAI,QAAAD,EAAE,QAAQE,EAAED,CAAC,CAAC,IAAE,KAAG,OAAO,UAAU,qBAAqB,KAAKJ,GAAEK,EAAED,CAAC,CAAC,MAAIE,EAAED,EAAED,CAAC,CAAC,IAAEJ,EAAEK,EAAED,CAAC,CAAC;AAAA,IAAE;AAAC,WAAOE;AAAA,EAAC,EAAEH,GAAE,CAAC,IAAI,CAAC;AAAE,SAAO4S,GAAG,EAAC,IAAG/S,KAAGM,KAAG,IAAG,GAAED,CAAC;AAAC,GAAEiT,KAAG,WAAU;AAAC,WAAStT,EAAEG,GAAE;AAAC,QAAIG,IAAE;AAAK,SAAK,SAAOH,GAAE,KAAK,MAAI,SAASH,GAAE;AAAC,aAAO8S,GAAI,SAAS3S,GAAE;AAAC,eAAM,EAAC,MAAK,gBAAe,OAAMH,GAAE,IAAG,WAASG,EAAE,MAAI,KAAI,SAAQA,EAAE,WAAS,GAAE;AAAA,MAAC,GAAGG,EAAE,OAAON,CAAC,CAAC;AAAA,IAAC,GAAE,KAAK,aAAW,SAASA,GAAE;AAAC,aAAO,SAASA,GAAE;AAAC,eAAWA,EAAE,OAAP,KAAU,QAAQ,QAAQA,EAAE,MAAM,IAAE,QAAQ,OAAOA,EAAE,KAAK;AAAA,MAAC,EAAEM,EAAE,IAAIN,CAAC,CAAC;AAAA,IAAC,GAAE,KAAK,mBAAiB,SAASA,GAAE;AAAC,aAAO,SAASA,GAAE;AAAC,YAAQA,EAAE,OAAP;AAAU,iBAAOA,EAAE;AAAO,cAAMA,EAAE;AAAA,MAAK,EAAEM,EAAE,IAAIN,CAAC,CAAC;AAAA,IAAC,GAAE,KAAK,MAAI,SAASG,GAAE;AAAC,aAAO,IAAIH,EAAG,SAASA,GAAE;AAAC,eAAO,SAASA,GAAEG,GAAE;AAAC,iBAAWA,EAAE,OAAP,KAAUwS,GAAG3S,EAAEG,EAAE,MAAM,CAAC,IAAEA;AAAA,QAAC,EAAEA,GAAEG,EAAE,OAAON,CAAC,CAAC;AAAA,MAAC,CAAC;AAAA,IAAE,GAAE,KAAK,UAAQ,SAASG,GAAE;AAAC,aAAO,IAAIH,EAAG,SAASA,GAAE;AAAC,eAAO,SAASA,GAAEG,GAAE;AAAC,iBAAWA,EAAE,OAAP,KAAUH,EAAEG,EAAE,MAAM,IAAEA;AAAA,QAAC,EAAG,SAASG,GAAE;AAAC,iBAAOH,EAAEG,CAAC,EAAE,OAAON,CAAC;AAAA,QAAC,GAAGM,EAAE,OAAON,CAAC,CAAC;AAAA,MAAC,CAAG;AAAA,IAAA,GAAE,KAAK,QAAM,SAASG,GAAEE,GAAE;AAAC,aAAOC,EAAE,QAAS,SAASA,GAAE;AAAC,eAAOH,EAAEG,CAAC,IAAEN,EAAE,QAAQM,CAAC,IAAEN,EAAE,KAAKK,CAAC;AAAA,MAAC,CAAC;AAAA,IAAE;AAAA,EAAC;AAAC,SAAOL,EAAE,SAAO,WAAU;AAAC,WAAO,IAAIA,EAAG,SAASA,GAAE;AAAC,aAAgB,OAAOA,KAAjB,WAAmB2S,GAAG3S,CAAC,IAAE4S,GAAG,EAAC,SAAQO,GAAG,YAAWnT,CAAC,EAAC,CAAC;AAAA,IAAC,CAAG;AAAA,EAAA,GAAEA,EAAE,SAAO,WAAU;AAAC,WAAO,IAAIA,EAAG,SAASA,GAAE;AAAC,aAAgB,OAAOA,KAAjB,WAAmB2S,GAAG3S,CAAC,IAAE4S,GAAG,EAAC,SAAQO,GAAG,YAAWnT,CAAC,EAAC,CAAC;AAAA,IAAC,CAAC;AAAA,EAAE,GAAEA,EAAE,UAAQ,WAAU;AAAC,WAAO,IAAIA,EAAG,SAASA,GAAE;AAAC,aAAiB,OAAOA,KAAlB,YAAoB2S,GAAG3S,CAAC,IAAE4S,GAAG,EAAC,SAAQO,GAAG,aAAYnT,CAAC,EAAC,CAAC;AAAA,IAAC,CAAC;AAAA,EAAE,GAAEA,EAAE,WAAS,SAASG,GAAE;AAAC,WAAO,IAAIH,EAAG,SAAS,GAAE;AAAC,aAAOgT,GAAG,GAAE7S,CAAC,IAAEwS,GAAGxS,CAAC,IAAEyS,GAAG,EAAC,SAAQ,cAAY,KAAK,UAAUzS,CAAC,IAAE,WAAS,KAAK,UAAU,CAAC,EAAC,CAAC;AAAA,IAAC,CAAC;AAAA,EAAE,GAAEH,EAAE,SAAO,SAASG,GAAE;AAAC,WAAO,IAAIH,EAAG,SAAS,GAAE;AAAC,UAAGkT,GAAG,CAAC,KAAG/S,GAAE;AAAC,YAAIG,IAAE,CAAE;AAAC,iBAAQD,KAAKF;AAAE,cAAGA,EAAE,eAAeE,CAAC,GAAE;AAAC,gBAAID,IAAED,EAAEE,CAAC,EAAE,OAAO,EAAEA,CAAC,CAAC;AAAE,gBAAQD,EAAE,OAAP;AAAU,qBAAgB,EAAEC,CAAC,MAAZ,SAAcuS,GAAG,EAAC,SAAQ,cAAYvS,IAAE,oCAAmC,CAAC,IAAEuS,GAAGS,GAAG,MAAIhT,GAAED,EAAE,KAAK,CAAC;AAAE,YAASA,EAAE,WAAX,WAAoBE,EAAED,CAAC,IAAED,EAAE;AAAA,UAAO;AAAC,eAAOuS,GAAGrS,CAAC;AAAA,MAAC;AAAC,aAAO4S,GAAG,CAAC,IAAEP,GAAG,CAAC,IAAEC,GAAG,EAAC,SAAQO,GAAG,aAAY,CAAC,EAAC,CAAC;AAAA,IAAC,CAAC;AAAA,EAAE,GAAEnT,EAAE,QAAM,SAASG,GAAE;AAAC,WAAO,IAAIH,EAAG,SAAS,GAAE;AAAC,aAAGiT,GAAG,CAAC,KAAG9S,IAAU,EAAE,OAAQ,SAASH,GAAEM,GAAE,GAAE;AAAC,eAAOuS,GAAI,SAAS7S,GAAEG,GAAE;AAAC,iBAAOH,EAAE,OAAO,CAACG,CAAC,CAAC;AAAA,QAAC,GAAGH,GAAE,SAASA,GAAEM,GAAE;AAAC,iBAAOwS,GAAI,SAAS9S,GAAE;AAAC,mBAAOqT,GAAG,MAAI/S,IAAE,KAAIN,CAAC;AAAA,UAAC,GAAGG,EAAE,OAAOH,CAAC,CAAC;AAAA,QAAC,EAAEM,GAAE,CAAC,CAAC;AAAA,MAAC,GAAGqS,GAAG,EAAE,CAAC,IAASM,GAAG,CAAC,IAAEN,GAAG,CAAC,IAAEC,GAAG,EAAC,SAAQO,GAAG,YAAW,CAAC,EAAC,CAAC;AAAA,IAAC,CAAG;AAAA,EAAA,GAAEnT,EAAE,QAAM,SAASG,GAAE;AAAC,WAAO,IAAIH,EAAG,SAAS,GAAE;AAAC,UAAGiT,GAAG,CAAC,GAAE;AAAC,YAAG,EAAE,WAAS9S,EAAE;AAAO,iBAAOyS,GAAG,EAAC,SAAQ,gCAA8BzS,EAAE,SAAO,yBAAuB,EAAE,OAAM,CAAC;AAAE,iBAAQG,IAAE,IAAGD,IAAE,GAAEA,IAAEF,EAAE,QAAOE,KAAI;AAAC,cAAID,IAAED,EAAEE,CAAC,EAAE,OAAO,EAAEA,CAAC,CAAC;AAAE,cAAG,CAACD,EAAE;AAAG,mBAAOwS,GAAGS,GAAG,MAAIhT,IAAE,KAAID,EAAE,KAAK,CAAC;AAAE,UAAAE,EAAED,CAAC,IAAED,EAAE;AAAA,QAAM;AAAC,eAAOuS,GAAGrS,CAAC;AAAA,MAAC;AAAC,aAAOsS,GAAG,EAAC,SAAQO,GAAG,uBAAqBhT,EAAE,QAAO,CAAC,EAAC,CAAC;AAAA,IAAC,CAAC;AAAA,EAAE,GAAEH,EAAE,QAAM,SAASG,GAAEG,GAAE;AAAC,aAAQD,IAAE,CAAA,GAAGD,IAAE,GAAEA,IAAE,UAAU,QAAOA;AAAI,MAAAC,EAAED,IAAE,CAAC,IAAE,UAAUA,CAAC;AAAE,WAAOJ,EAAE,MAAM,MAAMA,GAAE,CAACG,GAAEG,CAAC,EAAE,OAAOD,CAAC,CAAC;AAAA,EAAC,GAAEL,EAAE,eAAa,SAASG,GAAEG,GAAE;AAAC,aAAQD,IAAE,CAAA,GAAGD,IAAE,GAAEA,IAAE,UAAU,QAAOA;AAAI,MAAAC,EAAED,IAAE,CAAC,IAAE,UAAUA,CAAC;AAAE,WAAO,IAAIJ,EAAG,SAASA,GAAE;AAAC,aAAM,CAACG,GAAEG,CAAC,EAAE,OAAOD,CAAC,EAAE,OAAQ,SAASF,GAAEG,GAAE;AAAC,eAAOuS,GAAG,OAAO,QAAO1S,GAAEG,EAAE,OAAON,CAAC,CAAC;AAAA,MAAC,GAAG2S,GAAG,CAAE,CAAA,CAAC;AAAA,IAAC,CAAC;AAAA,EAAE,GAAE3S,EAAE,UAAQ,WAAU;AAAC,WAAO,IAAIA,EAAG,SAASA,GAAE;AAAC,aAAO2S,GAAG3S,CAAC;AAAA,IAAC,CAAG;AAAA,EAAA,GAAEA,EAAE,cAAY,WAAU;AAAC,WAAO,IAAIA,EAAG,SAASA,GAAE;AAAC,aAAO2S,GAAG3S,CAAC;AAAA,IAAC,CAAC;AAAA,EAAE,GAAEA,EAAE,OAAK,SAASG,GAAE;AAAC,WAAO,IAAIH,EAAG,SAAS,GAAE;AAAC,UAAGkT,GAAG,CAAC,GAAE;AAAC,YAAI5S,IAAE;AAAG,iBAAQD,KAAK;AAAE,cAAG,EAAE,eAAeA,CAAC,GAAE;AAAC,gBAAID,IAAED,EAAE,OAAO,EAAEE,CAAC,CAAC;AAAE,gBAAQD,EAAE,OAAP;AAAU,qBAAOwS,GAAGS,GAAG,MAAIhT,GAAED,EAAE,KAAK,CAAC;AAAE,YAAAE,EAAED,CAAC,IAAED,EAAE;AAAA,UAAM;AAAC,eAAOuS,GAAGrS,CAAC;AAAA,MAAC;AAAC,aAAOsS,GAAG,EAAC,SAAQO,GAAG,aAAY,CAAC,EAAC,CAAC;AAAA,IAAC,CAAC;AAAA,EAAE,GAAEnT,EAAE,WAAS,SAASG,GAAE;AAAC,WAAO,IAAIH,EAAG,SAAS,GAAE;AAAC,aAAa,KAAN,OAAQ2S,GAAG,MAAM,IAAExS,EAAE,OAAO,CAAC;AAAA,IAAC;EAAG,GAAEH,EAAE,QAAM,WAAU;AAAC,aAAQG,IAAE,CAAA,GAAGG,IAAE,GAAEA,IAAE,UAAU,QAAOA;AAAI,MAAAH,EAAEG,CAAC,IAAE,UAAUA,CAAC;AAAE,WAAO,IAAIN,EAAG,SAASA,GAAE;AAAC,eAAQM,IAAE,CAAE,GAAC,IAAE,GAAE,IAAEH,EAAE,QAAO,KAAI;AAAC,YAAIC,IAAED,EAAE,CAAC,EAAE,OAAOH,CAAC;AAAE,YAAQI,EAAE,OAAP;AAAU,iBAAOA;AAAE,QAAAE,EAAE,CAAC,IAAEF,EAAE;AAAA,MAAK;AAAC,UAAIG,IAAED,EAAE,IAAK,SAASN,GAAE;AAAC,eAAM,cAAYA,EAAE,MAAI,MAAI,OAAKA,EAAE;AAAA,MAAO,CAAG,EAAC,KAAK,MAAM;AAAE,aAAO4S,GAAG,EAAC,SAAQ,qEAAmErS,IAAE,KAAI,CAAC;AAAA,IAAC;EAAG,GAAEP,EAAE,cAAY,SAASG,GAAEG,GAAE;AAAC,WAAO,IAAIN,EAAG,SAASA,GAAE;AAAC,aAAO2S,GAAG,SAAS3S,GAAEG,GAAE;AAAC,eAAWA,EAAE,OAAP,KAAUA,EAAE,SAAOH;AAAA,MAAC,EAAEG,GAAEG,EAAE,OAAON,CAAC,CAAC,CAAC;AAAA,IAAC,CAAG;AAAA,EAAA,GAAEA,EAAE,UAAQ,SAASG,GAAEG,GAAE;AAAC,WAAO,IAAIN,EAAG,SAASA,GAAE;AAAC,eAAQK,IAAEL,GAAEI,IAAE,GAAEA,IAAED,EAAE,QAAOC,KAAI;AAAC,YAAYC,MAAT;AAAW,iBAAOuS,GAAG,EAAC,IAAGQ,GAAGjT,EAAE,MAAM,GAAEC,IAAE,CAAC,CAAC,GAAE,SAAQ,sBAAqB,CAAC;AAAE,YAAa,OAAOD,EAAEC,CAAC,KAApB,YAAuB,CAAC8S,GAAG7S,CAAC;AAAE,iBAAOuS,GAAG,EAAC,IAAGQ,GAAGjT,EAAE,MAAM,GAAEC,IAAE,CAAC,CAAC,GAAE,SAAQ+S,GAAG,aAAY9S,CAAC,EAAC,CAAC;AAAE,YAAa,OAAOF,EAAEC,CAAC,KAApB,YAAuB,CAAC6S,GAAG5S,CAAC;AAAE,iBAAOuS,GAAG,EAAC,IAAGQ,GAAGjT,EAAE,MAAM,GAAEC,IAAE,CAAC,CAAC,GAAE,SAAQ+S,GAAG,YAAW9S,CAAC,EAAC,CAAC;AAAE,QAAAA,IAAEA,EAAEF,EAAEC,CAAC,CAAC;AAAA,MAAC;AAAC,aAAO0S,GAAI,SAAS9S,GAAE;AAAC,eAAgBK,MAAT,SAAW,EAAC,IAAG+S,GAAGjT,CAAC,GAAE,SAAQ,sBAAqB,IAAEkT,GAAGD,GAAGjT,CAAC,GAAEH,CAAC;AAAA,MAAC,GAAGM,EAAE,OAAOD,CAAC,CAAC;AAAA,IAAC,CAAC;AAAA,EAAE,GAAEL,EAAE,UAAQ,SAASG,GAAE;AAAC,WAAO,IAAIH,EAAG,SAAS,GAAE;AAAC,aAAO2S,GAAGxS,CAAC;AAAA,IAAC;EAAG,GAAEH,EAAE,OAAK,SAASG,GAAE;AAAC,WAAO,IAAIH,EAAG,SAAS,GAAE;AAAC,aAAO4S,GAAG,EAAC,SAAQzS,EAAC,CAAC;AAAA,IAAC,CAAC;AAAA,EAAE,GAAEH,EAAE,OAAK,SAASG,GAAE;AAAC,WAAO,IAAIH,EAAG,SAAS,GAAE;AAAC,aAAOG,EAAG,EAAC,OAAO,CAAC;AAAA,IAAC,CAAC;AAAA,EAAE,GAAEH;AAAC,EAAC,GAAGuT,KAAGD,GAAG,QAAOE,KAAGF,GAAG,QAAOG,KAAGH,GAAG,SAAQI,KAAGJ,GAAG;AAAQA,GAAG;AAAY,IAAIK,KAAGL,GAAG,UAASM,KAAGN,GAAG,QAAOO,KAAGP,GAAG;AAAMA,GAAG;AAAM,IAAIQ,KAAGR,GAAG,MAAKS,KAAGT,GAAG,UAASU,KAAGV,GAAG;AAAMA,GAAG,OAAMA,GAAG,cAAaA,GAAG,aAAYA,GAAG,SAAQA,GAAG,SAAQA,GAAG,MAAKA,GAAG;AAAK,MAAMW,KAAGV,GAAE,EAAG,MAAO,CAAAvT,MAAGA,EAAE,SAAO,GAAG,6BAA6B,GAAEkU,KAAGV,GAAI,EAAC,MAAO,CAAAxT,MAAGA,KAAG,GAAG,gCAAgC,GAAEmU,KAAGP,GAAG,EAAC,MAAKK,IAAG,aAAYF,GAAGR,GAAI,CAAA,GAAE,UAASQ,GAAGF,GAAGN,GAAE,CAAE,CAAC,GAAE,cAAaQ,GAAGH,IAAI,EAAC,CAAC,GAAEQ,KAAGJ,GAAGL,GAAG,KAAK,GAAEA,GAAG,QAAQ,GAAEA,GAAG,QAAQ,GAAEA,GAAG,cAAc,GAAEA,GAAG,OAAO,CAAC,GAAEU,KAAGT,GAAG,EAAC,KAAIK,GAAE,CAAC,GAAEK,KAAGV,GAAG,EAAC,KAAIK,IAAG,MAAKF,GAAGE,EAAE,GAAE,MAAKF,GAAGE,EAAE,EAAC,CAAC,GAAEM,KAAGX,GAAG,EAAC,KAAIK,IAAG,MAAKF,GAAGE,EAAE,GAAE,MAAKF,GAAGE,EAAE,GAAE,OAAMF,GAAGE,EAAE,EAAC,CAAC,GAAEO,KAAGZ,GAAG,EAAC,UAASC,GAAGI,EAAE,GAAE,aAAYF,GAAGE,EAAE,GAAE,YAAWF,GAAGE,EAAE,GAAE,cAAaF,GAAGL,GAAI,CAAA,EAAC,CAAC,GAAEe,KAAGb,GAAG,EAAC,YAAWG,GAAGD,GAAGU,EAAE,CAAC,GAAE,QAAOT,GAAGD,GAAGD,GAAGI,EAAE,CAAC,CAAC,EAAC,CAAC,GAAES,KAAGd,GAAG,EAAC,YAAWG,GAAGF,GAAGI,EAAE,CAAC,GAAE,YAAWF,GAAGF,GAAGI,EAAE,CAAC,EAAC,CAAC,GAAEU,KAAGf,GAAG,EAAC,MAAKK,IAAG,aAAYF,GAAGE,EAAE,GAAE,YAAWF,GAAGF,GAAGI,EAAE,CAAC,GAAE,YAAWF,GAAGF,GAAGI,EAAE,CAAC,EAAC,CAAC,GAAEW,KAAGhB,GAAG,EAAC,SAAQG,GAAGU,EAAE,GAAE,cAAaV,GAAGW,EAAE,GAAE,aAAYX,GAAGF,GAAGc,EAAE,CAAC,EAAC,CAAC,GAAEE,KAAGjB,GAAG,EAAC,KAAIG,GAAGE,EAAE,GAAE,KAAIF,GAAGP,GAAI,CAAA,GAAE,MAAKO,GAAGP,GAAI,CAAA,GAAE,OAAMO,GAAGG,EAAE,GAAE,QAAOH,GAAGG,EAAE,EAAC,CAAC,GAAEY,KAAGlB,GAAG,EAAC,MAAKG,GAAGE,EAAE,GAAE,MAAKF,GAAGE,GAAG,MAAO,CAAAjU,MAAcA,MAAX,UAAc,4BAA4B,CAAC,GAAE,OAAM+T,GAAGE,EAAE,GAAE,SAAQF,GAAGE,EAAE,GAAE,kBAAiBF,GAAGL,IAAI,GAAE,MAAKK,GAAGR,IAAI,GAAE,SAAQQ,GAAGR,GAAE,CAAE,GAAE,SAAQQ,GAAGc,EAAE,GAAE,SAAQd,GAAGF,GAAGM,EAAE,CAAC,GAAE,QAAOJ,GAAGN,IAAI,EAAC,CAAC,GAAEsB,KAAGnB,GAAG,EAAC,MAAKK,IAAG,OAAMA,IAAG,OAAMF,GAAGE,EAAE,GAAE,SAAQF,GAAGE,EAAE,GAAE,UAASA,IAAG,cAAaA,IAAG,SAAQF,GAAGE,EAAE,GAAE,aAAYF,GAAGE,EAAE,GAAE,cAAaF,GAAGE,EAAE,GAAE,cAAaF,GAAGE,EAAE,GAAE,WAAUF,GAAGE,EAAE,GAAE,QAAOF,GAAGF,GAAGD,GAAG,EAAC,KAAIG,GAAGE,EAAE,EAAC,CAAC,CAAC,CAAC,GAAE,OAAMF,GAAGF,GAAGD,GAAG,EAAC,MAAKG,GAAGE,EAAE,EAAC,CAAC,CAAC,CAAC,GAAE,cAAaP,GAAI,GAAC,SAAQK,GAAGF,GAAGM,EAAE,CAAC,EAAC,CAAC,GAAEa,KAAGpB,GAAG,EAAC,OAAMG,GAAGE,EAAE,GAAE,MAAKF,GAAGE,EAAE,GAAE,SAAQF,GAAGM,EAAE,GAAE,SAAQN,GAAGE,EAAE,GAAE,OAAMF,GAAGE,EAAE,GAAE,SAAQF,GAAGE,EAAE,GAAE,MAAKF,GAAGE,EAAE,GAAE,aAAYF,GAAGE,EAAE,GAAE,YAAWF,GAAGF,GAAGI,EAAE,CAAC,GAAE,OAAMF,GAAGF,GAAGS,EAAE,CAAC,GAAE,aAAYP,GAAGF,GAAGU,EAAE,CAAC,GAAE,cAAaR,GAAGE,EAAE,GAAE,cAAaF,GAAGE,EAAE,GAAE,UAASF,GAAGE,EAAE,GAAE,WAAUF,GAAGE,EAAE,GAAE,cAAaF,GAAGF,GAAGH,GAAI,CAAA,CAAC,GAAE,eAAcK,GAAGL,GAAE,CAAE,GAAE,SAAQK,GAAGa,EAAE,EAAC,CAAC,GAAEK,KAAGrB,GAAG,EAAC,OAAMK,IAAG,MAAKF,GAAGE,EAAE,GAAE,MAAKG,IAAG,SAAQC,IAAG,SAAQN,GAAGE,EAAE,GAAE,OAAMF,GAAGE,EAAE,GAAE,SAAQF,GAAGE,EAAE,GAAE,MAAKF,GAAGE,EAAE,GAAE,aAAYF,GAAGE,EAAE,GAAE,YAAWF,GAAGF,GAAGI,EAAE,CAAC,GAAE,OAAMF,GAAGF,GAAGS,EAAE,CAAC,GAAE,aAAYP,GAAGF,GAAGU,EAAE,CAAC,GAAE,cAAaR,GAAGE,EAAE,GAAE,cAAaF,GAAGE,EAAE,GAAE,UAASF,GAAGE,EAAE,GAAE,WAAUF,GAAGE,EAAE,GAAE,cAAaF,GAAGF,GAAGH,GAAI,CAAA,CAAC,GAAE,eAAcK,GAAGL,GAAE,CAAE,GAAE,SAAQK,GAAGa,EAAE,GAAE,mBAAkBb,GAAGD,GAAGkB,EAAE,CAAC,EAAC,CAAC,GAAEE,KAAGlB,GAAGe,IAAGE,EAAE,GAAEE,KAAG,CAAAnV,MAAG,GAAGA,EAAE,IAAI,OAAOA,EAAE,EAAE,KAAK,KAAK,UAAUA,EAAE,KAAK,CAAC,cAAcA,EAAE,OAAO;AAAG,MAAMoV,GAAE;AAAA,EAAR;AAAS,IAAAC,GAAA,qCAA4B,EAAC,KAAI,UAAS,QAAO,OAAM,QAAO,UAAS,cAAa,aAAY,OAAM,SAAQ;AAAA;AAAA,EAAE,QAAO;AAAC,WAAM,EAAC,kBAAiB,KAAK,iBAAiB,KAAK,IAAI,GAAE,2BAA0B,KAAK,0BAA0B,KAAK,IAAI,GAAE,yBAAwB,KAAK,wBAAwB,KAAK,IAAI,EAAC;AAAA,EAAC;AAAA,EAAC,iBAAiBrV,GAAE;AAAC,UAAMG,IAAE+U,GAAG,IAAIlV,CAAC;AAAE,WAAOG,EAAE,KAAGH,EAAE,SAAOA,EAAE,UAAQ,EAAC,QAAO,IAAG,SAAQ,MAAK,IAAEA,EAAE,WAAS,EAAC,QAAO,IAAG,SAAQ,MAAK,IAAE,EAAC,QAAO,IAAG,QAAO,oCAAmC,IAAE,EAAC,QAAO,IAAG,QAAOmV,GAAGhV,EAAE,KAAK,EAAC;AAAA,EAAC;AAAA,EAAC,0BAA0BH,GAAE;;AAAC,UAAK,EAAC,QAAOG,GAAE,SAAQG,EAAC,IAAE,KAAK,iBAAiBN,CAAC;AAAE,QAAG,CAACG;AAAE,YAAM,IAAI,MAAM,mCAAmC;AAAE,UAAME,IAAE6U,GAAG,IAAIlV,CAAC;AAAE,QAAG,CAACK,EAAE;AAAG,YAAM,IAAI,MAAM,gBAAgBC,CAAC,uBAAuB6U,GAAG9U,EAAE,KAAK,CAAC,EAAE;AAAE,UAAMD,IAAE,KAAK,gCAAgCJ,GAAEM,CAAC,GAAEC,IAAE,EAAC,KAAI,KAAK,OAAOP,GAAEM,CAAC,EAAC,GAAEK,IAAE,EAAC,MAAKX,EAAE,OAAM,MAAK,UAAS,eAAcO,GAAE,gBAAe,EAAC,GAAGH,GAAE,SAAgBE,MAAR,QAAUF,EAAE,UAAQ,KAAK,8BAA8BJ,CAAC,GAAE,SAAQO,EAAC,GAAE,OAAMP,EAAE,OAAM,SAAQA,EAAE,SAAQ,MAAK,KAAK,sBAAsBA,GAAEM,CAAC,GAAE,SAAQN,EAAE,aAAY,MAAaM,MAAR,QAAU,EAAC,GAAGN,GAAE,mBAAkB,MAAK,IAAE,OAAM,GAAEY,MAAE2B,IAAAvC,EAAE,kBAAF,gBAAAuC,EAAiB,gBAAWC,IAAAxC,EAAE,kBAAF,gBAAAwC,EAAiB;AAAO,QAAG,CAAC5B;AAAE,aAAOD;AAAE,UAAME,IAAEiU,GAAG,IAAIlU,CAAC;AAAE,QAAG,CAACC,EAAE;AAAG,YAAM,IAAI,MAAM,gBAAgBP,CAAC,uBAAuB6U,GAAGtU,EAAE,KAAK,CAAC,EAAE;AAAE,WAAO,OAAO,KAAKA,EAAE,MAAM,EAAE,SAAO,KAAK,iCAAiCF,GAAEE,EAAE,MAAM,IAAEF;AAAA,EAAC;AAAA,EAAC,wBAAwBX,GAAE;;AAAC,UAAK,EAAC,QAAOG,GAAE,SAAQG,EAAC,IAAE,KAAK,iBAAiBN,CAAC;AAAE,QAAG,CAACG;AAAE,YAAM,IAAI,MAAM,mCAAmC;AAAE,UAAME,IAAE6U,GAAG,IAAIlV,CAAC;AAAE,QAAG,CAACK,EAAE;AAAG,YAAM,IAAI,MAAM,gBAAgBC,CAAC,uBAAuB6U,GAAG9U,EAAE,KAAK,CAAC,EAAE;AAAE,QAAWC,MAAR,OAAU;AAAC,YAAMH,IAAEH;AAAE,aAAM,EAAC,MAAKG,EAAE,OAAM,MAAK,UAAS,SAAQ,EAAC,KAAI,KAAK,OAAOH,GAAEM,CAAC,EAAC,GAAE,SAAQH,EAAE,SAAQ,OAAMA,EAAE,OAAM,SAAQA,EAAE,SAAQ,SAAQA,EAAE,aAAY,OAAKoC,IAAApC,EAAE,UAAF,gBAAAoC,EAAU,GAAG,MAAK,SAAQpC,EAAE,SAAQ,kBAAiB,EAAC,cAAaA,EAAE,cAAa,QAAOA,EAAE,QAAO,cAAaA,EAAE,cAAa,cAAaA,EAAE,cAAa,WAAUA,EAAE,WAAU,OAAMA,EAAE,OAAM,cAAaA,EAAE,aAAY,EAAC;AAAA,IAAC;AAAC,UAAMC,IAAEJ,GAAEO,IAAE,EAAC,MAAKH,EAAE,OAAM,MAAK,KAAK,4BAA4BA,EAAE,IAAI,GAAE,SAAQA,EAAE,SAAQ,SAAQA,EAAE,SAAQ,OAAMA,EAAE,OAAM,SAAQA,EAAE,SAAQ,SAAQA,EAAE,aAAY,MAAK,KAAK,sBAAsBA,GAAE,KAAK,GAAE,SAAQ,KAAK,8BAA8BA,CAAC,GAAE,MAAK,EAAC,GAAGA,GAAE,mBAAkB,MAAK,EAAC,GAAEO,MAAE6B,IAAAxC,EAAE,kBAAF,gBAAAwC,EAAiB,gBAAW8S,IAAAtV,EAAE,kBAAF,gBAAAsV,EAAiB;AAAO,QAAG,CAAC3U;AAAE,aAAOJ;AAAE,QAAa,OAAOI,KAAjB,YAAoB,MAAM,QAAQA,CAAC;AAAE,YAAM,IAAI,MAAM,YAAYX,EAAE,cAAc,YAAU,4BAA0B,yBAAyB,OAAO;AAAE,WAAO,KAAK,mCAAmCO,GAAEI,CAAC;AAAA,EAAC;AAAA,EAAC,gCAAgCX,GAAEG,GAAE;AAAC,WAAgB,OAAO,YAATA,MAAR,QAA6B,OAAO,QAAQH,CAAC,EAAE,OAAQ,CAAC,CAACA,CAAC,MAAI,CAACyS,GAAG,SAASzS,CAAC,KAAwB,OAAO,QAAQA,CAAC,EAAE,OAAQ,CAAC,CAACA,CAAC,MAAI,CAACyS,GAAG,SAASzS,CAAC,KAAG,CAAC0S,GAAG,SAAS1S,CAAC,CAAG,CAAxF;AAAA,EAAyF;AAAA,EAAC,OAAOA,GAAEG,GAAE;;AAAC,QAAIG;AAAE,QAAWH,MAAR,OAAU;AAAC,YAAMA,IAAE,KAAK,MAAMH,EAAE,QAAQ;AAAE,MAAAM,MAAEiC,IAAApC,EAAE,YAAF,gBAAAoC,EAAW,QAAKpC,EAAE;AAAA,IAAG;AAAM,MAAAG,KAAEkC,IAAAxC,EAAE,YAAF,gBAAAwC,EAAW;AAAI,QAAG,CAAClC,KAAa,OAAOA,KAAjB;AAAmB,YAAM,IAAI,MAAM,gBAAgBH,CAAC,2CAAmDA,MAAR,QAAU,aAAW,SAAS,OAAO;AAAE,WAAOG;AAAA,EAAC;AAAA,EAAC,8BAA8BN,GAAE;;AAAC,UAAMG,KAAEqC,KAAAD,IAAAvC,EAAE,YAAF,gBAAAuC,EAAW,YAAX,gBAAAC,EAAoB;AAAW,QAAIrC;AAAS,aAAO,OAAO,QAAQA,CAAC,EAAE,IAAK,CAAAH,MAAG;AAAC,cAAK,CAACG,GAAEG,CAAC,IAAEN;AAAE,eAAM,EAAC,MAAKG,GAAE,GAAGG,EAAC;AAAA,MAAC,CAAG;AAAA,EAAA;AAAA,EAAC,sBAAsBN,GAAEG,GAAE;;AAAC,WAAcA,MAAR,UAAUqC,KAAAD,IAAAvC,EAAE,UAAF,gBAAAuC,EAAS,KAAM,CAAAvC,MAAGA,EAAE,UAApB,gBAAAwC,EAA4B,SAAM,WAAO+S,KAAAD,IAAAtV,EAAE,UAAF,gBAAAsV,EAAS,KAAM,CAAAtV,MAAGA,EAAE,SAApB,gBAAAuV,EAA2B,QAAK;AAAA,EAAM;AAAA,EAAC,iCAAiCvV,GAAEG,GAAE;AAAC,QAAIG,IAAEN;AAAE,QAAGG,EAAE,qBAAmBG,EAAE,iBAAe,EAAC,GAAGN,EAAE,gBAAe,GAAGG,EAAE,iBAAgB,IAAGA,EAAE,SAAQ;AAAC,YAAME,IAAE,EAAC,GAAGL,EAAE,eAAc,GAAGG,EAAE,QAAO;AAAE,MAAAG,EAAE,gBAAcD,GAAEC,EAAE,eAAe,UAAQD;AAAA,IAAC;AAAC,WAAO,MAAM,QAAQF,EAAE,OAAO,MAAIG,EAAE,eAAe,WAASA,EAAE,eAAe,WAAS,CAAA,GAAI,OAAOH,EAAE,OAAO,IAAGG,IAAE,EAAC,GAAGA,GAAE,GAAGH,EAAC,GAAE,OAAOG,EAAE,SAAQ,OAAOA,EAAE,SAAQA;AAAA,EAAC;AAAA,EAAC,mCAAmCN,GAAEG,GAAE;AAAC,UAAMG,IAAE,OAAO,OAAO,CAAA,GAAGN,GAAEG,GAAE,EAAC,SAAQ,EAAC,GAAGH,EAAE,SAAQ,GAAGG,EAAE,QAAO,EAAC,CAAC;AAAE,WAAO,MAAM,QAAQA,EAAE,OAAO,MAAIG,EAAE,WAASN,EAAE,WAAS,IAAI,OAAOG,EAAE,OAAO,IAAGG;AAAA,EAAC;AAAC;AAAC,MAAMkV,KAAG,EAAC,QAAO,EAAC,uBAAsBvB,IAAG,0BAAyBC,GAAE,GAAE,MAAK,EAAC,uBAAsBgB,IAAG,qBAAoBH,IAAG,qBAAoBE,GAAE,EAAC;AAAE,IAAIQ;AAAA,CAAI,SAASzV,GAAE;AAAC,EAAAA,EAAE,iBAAe,8DAA6DA,EAAE,qBAAmB,4BAA2BA,EAAE,cAAY,eAAcA,EAAE,mBAAiB,sBAAqBA,EAAE,oBAAkB,8BAA6BA,EAAE,8BAA4B,gCAA+BA,EAAE,yBAAuB,0CAAyCA,EAAE,uBAAqB,mCAAkCA,EAAE,mBAAiB,iCAAgCA,EAAE,4BAA0B,iDAAgDA,EAAE,2BAAyB;AAAyG,GAAEyV,OAAKA,KAAG,GAAG;AAAE,MAAMC,KAAG,IAAI,MAAK;AAAA,EAAL;AAAM,IAAAL,GAAA;AAAM,IAAAA,GAAA,mBAAUG;AAAG,IAAAH,GAAA,iBAAQ,EAAC,SAAQI,GAAE;AAAA;AAAA,EAAE,IAAI,OAAM;AAAC,WAAO,KAAK,UAAQ,KAAK,QAAO,IAAIL,KAAI,MAAO,IAAE,KAAK;AAAA,EAAK;AAAA,EAAC,IAAI,WAAU;AAAC,WAAO,KAAK;AAAA,EAAS;AAAA,EAAC,IAAI,SAAQ;AAAC,WAAO,KAAK;AAAA,EAAO;AAAC;AAAEM,GAAG;AAAK,MAAMC,KAAGD,GAAG;AAASA,GAAG;AAAY,MAACE,KAAGD,GAAG,OAAO,uBAAsBE,KAAGrD,GAAGJ,EAAG,KAAK,GAAEA,EAAG,cAAc,GAAEA,EAAG,oBAAoB,GAAEA,EAAG,YAAY,GAAEA,EAAG,mBAAmB,GAAEA,EAAG,yBAAyB,GAAEA,EAAG,kBAAkB,GAAEA,EAAG,gBAAgB,GAAEA,EAAG,sBAAsB,GAAEA,EAAG,aAAa,GAAEA,EAAG,oBAAoB,GAAEA,EAAG,0BAA0B,GAAEA,EAAG,mBAAmB,GAAEA,EAAG,iBAAiB,GAAEA,EAAG,uBAAuB,GAAEA,EAAG,WAAW,GAAEA,EAAG,iBAAiB,GAAEA,EAAG,eAAe,GAAEA,EAAG,kBAAkB,GAAEA,EAAG,aAAa,GAAEA,EAAG,iBAAiB,GAAEA,EAAG,uBAAuB,GAAEA,EAAG,iBAAiB,GAAEA,EAAG,0BAA0B,GAAEA,EAAG,kBAAkB,GAAEA,EAAG,aAAa,GAAEA,EAAG,UAAU,GAAEA,EAAG,eAAe,GAAEA,EAAG,KAAK,GAAEA,EAAG,MAAM,GAAEA,EAAG,YAAY,GAAEA,EAAG,UAAU,GAAEA,EAAG,kBAAkB,GAAEA,EAAG,aAAa,GAAEA,EAAG,OAAO,GAAEA,EAAG,aAAa,GAAEA,EAAG,aAAa,GAAEA,EAAG,cAAc,GAAEA,EAAG,cAAc,GAAEA,EAAG,eAAe,GAAEA,EAAG,YAAY,GAAEA,EAAG,aAAa,GAAEA,EAAG,cAAc,GAAEA,EAAG,mBAAmB,GAAEA,EAAG,OAAO,GAAEA,EAAG,mBAAmB,GAAEA,EAAG,OAAO,GAAEA,EAAG,OAAO,GAAEA,EAAG,KAAK,GAAEA,EAAG,WAAW,GAAEA,EAAG,UAAU,GAAEA,EAAG,MAAM,GAAEA,EAAG,UAAU,GAAEA,EAAG,aAAa,GAAEA,EAAG,WAAW,GAAEA,EAAG,UAAU,GAAEA,EAAG,mBAAmB,GAAEA,EAAG,QAAQ,GAAEA,EAAG,UAAU,GAAEA,EAAG,eAAe,GAAEA,EAAG,kBAAkB,GAAEA,EAAG,QAAQ,GAAEA,EAAG,UAAU,GAAEA,EAAG,QAAQ,GAAEA,EAAG,QAAQ,GAAEA,EAAG,iBAAiB,GAAEA,EAAG,QAAQ,GAAEA,EAAG,aAAa,GAAEA,EAAG,OAAO,GAAEA,EAAG,OAAO,GAAEA,EAAG,QAAQ,GAAEA,EAAG,MAAM,GAAEA,EAAG,OAAO,GAAEA,EAAG,MAAM,GAAEA,EAAG,UAAU,GAAEA,EAAG,QAAQ,GAAEA,EAAG,MAAM,GAAEA,EAAG,SAAS,GAAEA,EAAG,MAAM,GAAEA,EAAG,MAAM,GAAEA,EAAG,UAAU,GAAEA,EAAG,eAAe,GAAEA,EAAG,iBAAiB,GAAEA,EAAG,WAAW,GAAEA,EAAG,OAAO,GAAEA,EAAG,UAAU,GAAEA,EAAG,eAAe,GAAEA,EAAG,KAAK,GAAEA,EAAG,MAAM,GAAEA,EAAG,QAAQ,GAAEA,EAAG,eAAe,GAAEA,EAAG,SAAS,GAAEA,EAAG,WAAW,GAAEA,EAAG,SAAS,GAAEA,EAAG,SAAS,GAAEA,EAAG,QAAQ,GAAEA,EAAG,SAAS,GAAEA,EAAG,cAAc,GAAEA,EAAG,QAAQ,GAAEA,EAAG,eAAe,GAAEA,EAAG,SAAS,GAAEA,EAAG,QAAQ,GAAEA,EAAG,SAAS,GAAEA,EAAG,QAAQ,GAAEA,EAAG,mBAAmB,GAAEA,EAAG,iBAAiB,GAAEA,EAAG,MAAM,GAAEA,EAAG,WAAW,GAAEA,EAAG,YAAY,GAAEA,EAAG,kBAAkB,GAAEA,EAAG,WAAW,GAAEA,EAAG,iBAAiB,GAAEA,EAAG,WAAW,GAAEA,EAAG,cAAc,GAAEA,EAAG,iBAAiB,GAAEA,EAAG,iBAAiB,GAAEA,EAAG,aAAa,GAAEA,EAAG,WAAW,GAAEA,EAAG,OAAO,GAAEA,EAAG,WAAW,GAAEA,EAAG,sBAAsB,GAAEA,EAAG,QAAQ,GAAEA,EAAG,OAAO,GAAEA,EAAG,YAAY,GAAEA,EAAG,MAAM,GAAEA,EAAG,WAAW,GAAEA,EAAG,SAAS,GAAEA,EAAG,WAAW,CAAC,GAAE0D,KAAGzD,GAAG,EAAC,IAAGuD,IAAG,OAAMA,IAAG,aAAYrD,GAAGN,GAAI,CAAA,GAAE,MAAKM,GAAGsD,EAAE,GAAE,SAAQtD,GAAGqD,EAAE,GAAE,oBAAmBrD,GAAGD,GAAGH,IAAI,CAAC,GAAE,MAAKyD,GAAE,CAAC,GAAEG,KAAGvD,GAAGJ,EAAG,MAAM,GAAEA,EAAG,OAAO,CAAC,GAAE4D,KAAGxD,GAAGJ,EAAG,OAAO,GAAEA,EAAG,QAAQ,CAAC,GAAE6D,KAAGzD,GAAGJ,EAAG,QAAQ,GAAEA,EAAG,QAAQ,GAAEA,EAAG,SAAS,GAAEA,EAAG,WAAW,GAAEA,EAAG,UAAU,GAAEA,EAAG,QAAQ,GAAEA,EAAG,UAAU,CAAC,GAAE8D,KAAG7D,GAAG,EAAC,aAAYE,GAAGJ,IAAI,GAAE,8BAA6BI,GAAGD,GAAGsD,EAAE,CAAC,GAAE,sBAAqBrD,GAAGD,GAAGwD,EAAE,CAAC,GAAE,+BAA8BvD,GAAGL,GAAI,CAAA,GAAE,wBAAuBK,GAAGL,GAAI,CAAA,GAAE,qBAAoBK,GAAGL,IAAI,GAAE,2BAA0BK,GAAGwD,EAAE,GAAE,yBAAwBxD,GAAGL,GAAE,CAAE,GAAE,2BAA0BK,GAAGL,GAAI,CAAA,GAAE,+CAA8CK,GAAGL,GAAI,CAAA,GAAE,kCAAiCK,GAAGL,GAAI,CAAA,GAAE,2BAA0BK,GAAGL,GAAI,CAAA,GAAE,4BAA2BK,GAAGL,IAAI,GAAE,mCAAkCK,GAAGL,IAAI,GAAE,2BAA0BK,GAAGL,IAAI,GAAE,+BAA8BK,GAAGL,GAAE,CAAE,GAAE,qBAAoBK,GAAGN,GAAE,CAAE,GAAE,yBAAwBM,GAAGL,GAAE,CAAE,GAAE,6BAA4BK,GAAGqD,EAAE,GAAE,kCAAiCrD,GAAGyD,EAAE,GAAE,4BAA2BzD,GAAG0D,EAAE,GAAE,0BAAyB1D,GAAGL,GAAI,CAAA,GAAE,8BAA6BK,GAAGqD,EAAE,GAAE,mCAAkCrD,GAAGyD,EAAE,GAAE,6BAA4BzD,GAAG0D,EAAE,EAAC,CAAC,GAAEE,KAAG,OAAMnW,MAAG;AAAC,QAAK,EAAC,IAAGG,GAAE,SAAQG,GAAE,MAAKD,GAAE,OAAMD,EAAC,IAAEJ,GAAEO,IAAE2Q,GAAG9Q,CAAC;AAAE,MAAG;AAAC,QAAGE,MAAI6Q,GAAG,WAAShR,EAAE,OAAO,KAAKI,IAAE,GAAGF,CAAC,IAAIE,CAAC,KAAGF,CAAC,GAAE,EAAE,YAAWF,MAAI,CAACA,EAAE;AAAO,YAAM,IAAI,MAAM,yBAAyB;AAAE,UAAMH,IAAE,EAAC,MAAKK,GAAE,SAAQC,GAAE,KAAI8Q,GAAG9Q,CAAC,EAAC;AAAE,UAAMH,EAAE,OAAO,OAAO,QAAQH,CAAC;AAAA,EAAC,SAAOA,GAAE;AAAC,YAAQ,KAAK,6BAA4B,EAAC,OAAMA,EAAC,CAAC;AAAA,EAAC;AAAC,GAAEoW,KAAGzV,GAAE,MAAM,GAAE0V,KAAG,CAAC,EAAC,UAAS,GAAE,eAAc,EAAC,MAAI;AAAC,QAAK,CAAChW,GAAE,CAAC,IAAEQ,GAAC,GAAG,CAAC,GAAEF,CAAC,IAAEE,GAAE,EAAE,GAAE,CAACG,GAAEC,CAAC,IAAEJ,GAAG,GAACK,IAAEN,GAAEqB,EAAC,GAAER,IAAEX,GAAG,OAAK,EAAC,OAAMT,GAAE,yBAAwB,GAAE,mBAAkBW,EAAC,IAAI,CAACX,GAAE,GAAEW,CAAC,CAAC;AAAE,SAAOD,GAAG,MAAI;AAAC,QAAG,CAACG;AAAE;AAAO,QAAIlB,IAAE;AAAG,UAAMG,IAAEe,EAAE,SAAS,UAAUmP,IAAI,CAAAlQ,MAAG;AAAC,UAAGH;AAAE;AAAO,YAAMM,IAAE4V,GAAG,IAAI/V,CAAC;AAAE,UAAG,CAACG,EAAE;AAAG,eAAO,KAAKY,EAAE,OAAO,KAAK,iCAAiCmP,EAAE,8BAA8Ba,GAAG5Q,EAAE,MAAM,OAAO,CAAC,EAAE;AAAE,YAAMD,IAAEC,EAAE;AAAO,QAAED,CAAC,GAAEa,EAAE,MAAM,UAAUkP,IAAG/P,CAAC,EAAE,MAAO,CAAAL,MAAG;AAAC,QAAAkB,EAAE,OAAO,KAAK,2CAA2CgQ,GAAGlR,CAAC,CAAC,EAAE;AAAA,MAAC,CAAC;AAAA,IAAE,CAAC;AAAG,WAAM,MAAI;AAAC,MAAAA,IAAE,IAAGG,EAAE,KAAM,CAAAH,MAAG;AAAC,QAAAA;MAAG,CAAC;AAAA,IAAE;AAAA,EAAC,GAAG,CAACkB,CAAC,CAAC,GAAEH,GAAG,MAAI;AAAC,IAAIG,MAAU,YAAS;;AAAC,UAAG;AAAC,cAAMlB,IAAE,MAAMkB,EAAE,SAAS,IAAImP,EAAE,GAAElQ,IAAE+V,GAAG,IAAIlW,CAAC;AAAE,YAAG,CAACG,EAAE;AAAG,gBAAM,IAAI,MAAM,uBAAuBkQ,EAAE,8BAA8Ba,GAAG/Q,EAAE,MAAM,OAAO,CAAC,EAAE;AAAE,cAAME,IAAEF,EAAE;AAAO,YAAG,OAAO,KAAKE,CAAC,EAAE,SAAO;AAAE;AAAO,cAAMD,MAAGmC,IAAA,MAAMrB,EAAE,MAAM,IAAIkP,EAAE,MAApB,gBAAA7N,EAAwB,SAAM,CAAA,GAAGhC,IAAE2V,GAAG,IAAI9V,CAAC;AAAE,YAAG,CAACG,EAAE;AAAG,gBAAM,IAAI,MAAM,oEAAoE2Q,GAAG3Q,EAAE,MAAM,OAAO,CAAC,EAAE;AAAE,cAAMI,IAAE,EAAC,CAAC2P,EAAE,GAAa,MAAX,aAAelQ,EAAEkQ,EAAE,KAAG,IAAG,GAAE1P,IAAE,EAAC,GAAGqQ,IAAG,GAAG1Q,EAAE,QAAO,GAAGI,EAAC;AAAE,cAAMO,EAAE,SAAS,IAAImP,IAAGzP,CAAC;AAAA,MAAC,SAAOZ,GAAE;AAAC,QAAAiB,EAAE,EAAC,SAAQiQ,GAAGlR,CAAC,EAAC,CAAC,GAAE,MAAMmW,GAAG,EAAC,IAAGjV,GAAE,SAAQiQ,GAAG,SAAQ,MAAK,wCAAuC,OAAMnR,EAAC,CAAC;AAAA,MAAC,UAAC;AAAQ,QAAAW,EAAE,EAAE;AAAA,MAAC;AAAA,IAAC,GAAC,EAAI,MAAM,QAAQ,KAAK;AAAA,EAAC,GAAG,CAACO,GAAE,CAAC,CAAC,GAAElB,EAAEoW,GAAG,UAAS,EAAC,OAAM3U,GAAE,UAAS,EAAC,CAAC;AAAC;AAAE,SAAS6U,KAAI;AAAC,QAAMtW,IAAEY,GAAEwV,EAAE;AAAE,MAAYpW,MAAT;AAAW,UAAM,IAAI,MAAM,8DAA8D;AAAE,SAAOA;AAAC;AAAC,SAASuW,GAAG,EAAC,SAAQvW,EAAC,GAAE;;AAAC,QAAMG,IAAES,GAAEqB,EAAC,GAAE3B,IAAEM,GAAEwV,EAAE,GAAE/V,KAAEkC,IAAAjC,KAAA,gBAAAA,EAAG,UAAH,gBAAAiC,EAAWvC,IAAGI,KAAEE,KAAA,gBAAAA,EAAG,4BAAyB,IAAG,CAACK,GAAEG,CAAC,IAAED,GAAE,CAACT,CAAC,GAAE,CAACa,GAAEC,CAAC,IAAEL,GAAC,GAAGY,IAAET,GAAE,CAAC;AAAED,EAAAA,GAAG,MAAI;AAAC,IAAAX,KAAOqB,EAAE,YAAN,KAAeX,EAAE,EAAE;AAAA,EAAC,GAAG,CAACV,CAAC,CAAC;AAAE,QAAM,IAAEG,GAAG,OAAMD,MAAG;AAAC,QAAG,CAACH;AAAE;AAAO,UAAME,IAAE,EAAEoB,EAAE;AAAQ,IAAAX,EAAE,EAAE,GAAEI,EAAE,MAAM;AAAE,UAAMd,IAAE,OAAME,MAAG;AAAC,MAAAA,KAAG,MAAM6V,GAAG,EAAC,IAAGhW,GAAE,SAAQgR,GAAG,SAAQ,MAAK,6BAA6BnR,CAAC,MAAK,OAAMM,EAAC,CAAC,GAAED,MAAIoB,EAAE,YAAUX,EAAE,EAAE,GAAER,KAAGY,EAAE,EAAC,SAAQgQ,GAAG5Q,CAAC,EAAC,CAAC;AAAA,IAAE;AAAE,QAAIC;AAAE,QAAGD,aAAa;AAAS,UAAG;AAAC,QAAAC,IAAED,GAAG,MAAMH,EAAE,SAAS,IAAIkQ,EAAE,GAAGrQ,CAAC,CAAC;AAAA,MAAC,SAAOA,GAAE;AAAC,eAAOI,EAAEJ,CAAC;AAAA,MAAC;AAAA;AAAM,MAAAO,IAAED;AAAE,QAAG;AAAC,YAAMA,IAAE4V,GAAG,iBAAiB,EAAC,CAAClW,CAAC,GAAEO,EAAC,CAAC;AAAE,YAAMJ,EAAE,SAAS,OAAOkQ,IAAG/P,CAAC;AAAA,IAAC,SAAON,GAAE;AAAC,aAAOI,EAAEJ,CAAC;AAAA,IAAC;AAAC,UAAMI,EAAC;AAAA,EAAE,GAAG,CAACD,GAAEH,CAAC,CAAC;AAAE,MAAYM,MAAT;AAAW,UAAM,IAAI,MAAM,6DAA6D;AAAE,SAAM,EAAC,OAAMW,GAAE,WAAUN,GAAE,QAAO,GAAE,OAAMN,EAAC;AAAC;AAAC,SAASmW,GAAGxW,GAAEG,GAAEG,GAAE;AAAC,SAAO,KAAK,IAAI,KAAK,IAAIN,GAAEM,CAAC,GAAEH,CAAC;AAAC;AAAC,MAAMsW,WAAW,MAAK;AAAA,EAAC,YAAYzW,GAAE;AAAC,UAAM,2BAA2BA,CAAC,GAAG;AAAA,EAAC;AAAC;AAAC,IAAI0W,KAAGD;AAAG,SAASE,GAAG3W,GAAE;AAAC,MAAa,OAAOA,KAAjB;AAAmB,UAAM,IAAI0W,GAAG1W,CAAC;AAAE,MAAmBA,EAAE,OAAO,kBAAzB;AAAuC,WAAM,CAAC,GAAE,GAAE,GAAE,CAAC;AAAE,MAAIG,IAAEH,EAAE;AAAO,EAAAG,IAAEyW,GAAG,KAAK5W,CAAC,IAAE,SAASA,GAAE;AAAC,UAAMG,IAAEH,EAAE,YAAW,EAAG,KAAI,GAAGM,IAAEuW,GAAG,SAAS7W,GAAE;AAAC,UAAIG,IAAE,MAAKG,IAAEN,EAAE;AAAO,aAAKM;AAAG,QAAAH,IAAE,KAAGA,IAAEH,EAAE,WAAW,EAAEM,CAAC;AAAE,cAAOH,MAAI,KAAG;AAAA,IAAI,EAAEA,CAAC,CAAC;AAAE,QAAG,CAACG;AAAE,YAAM,IAAIoW,GAAG1W,CAAC;AAAE,WAAM,IAAIM,CAAC;AAAA,EAAE,EAAEN,CAAC,IAAEA;AAAE,QAAMM,IAAEwW,GAAG,KAAK3W,CAAC;AAAE,MAAGG,GAAE;AAAC,UAAMN,IAAE,MAAM,KAAKM,CAAC,EAAE,MAAM,CAAC;AAAE,WAAM,CAAC,GAAGN,EAAE,MAAM,GAAE,CAAC,EAAE,IAAK,CAAAA,MAAG,SAAS+W,GAAG/W,GAAE,CAAC,GAAE,EAAE,IAAI,SAAS+W,GAAG/W,EAAE,CAAC,KAAG,KAAI,CAAC,GAAE,EAAE,IAAE,GAAG;AAAA,EAAC;AAAC,QAAMK,IAAE2W,GAAG,KAAK7W,CAAC;AAAE,MAAGE,GAAE;AAAC,UAAML,IAAE,MAAM,KAAKK,CAAC,EAAE,MAAM,CAAC;AAAE,WAAM,CAAC,GAAGL,EAAE,MAAM,GAAE,CAAC,EAAE,IAAK,CAAAA,MAAG,SAASA,GAAE,EAAE,CAAC,GAAG,SAASA,EAAE,CAAC,KAAG,MAAK,EAAE,IAAE,GAAG;AAAA,EAAC;AAAC,QAAMI,IAAE6W,GAAG,KAAK9W,CAAC;AAAE,MAAGC,GAAE;AAAC,UAAMJ,IAAE,MAAM,KAAKI,CAAC,EAAE,MAAM,CAAC;AAAE,WAAM,CAAC,GAAGJ,EAAE,MAAM,GAAE,CAAC,EAAE,IAAK,CAAAA,MAAG,SAASA,GAAE,EAAE,CAAC,GAAG,WAAWA,EAAE,CAAC,KAAG,GAAG,CAAC;AAAA,EAAC;AAAC,QAAMO,IAAE2W,GAAG,KAAK/W,CAAC;AAAE,MAAGI,GAAE;AAAC,UAAK,CAACJ,GAAEG,GAAED,GAAED,CAAC,IAAE,MAAM,KAAKG,CAAC,EAAE,MAAM,CAAC,EAAE,IAAI,UAAU;AAAE,QAAGiW,GAAG,GAAE,KAAIlW,CAAC,MAAIA;AAAE,YAAM,IAAIoW,GAAG1W,CAAC;AAAE,QAAGwW,GAAG,GAAE,KAAInW,CAAC,MAAIA;AAAE,YAAM,IAAIqW,GAAG1W,CAAC;AAAE,WAAM,CAAC,GAAGmX,GAAGhX,GAAEG,GAAED,CAAC,GAAE,OAAO,MAAMD,CAAC,IAAE,IAAEA,CAAC;AAAA,EAAC;AAAC,QAAM,IAAIsW,GAAG1W,CAAC;AAAC;AAAC,MAAMoX,KAAG,CAAApX,MAAG,SAASA,EAAE,QAAQ,MAAK,EAAE,GAAE,EAAE,GAAE6W,KAAG,szCAAszC,MAAM,GAAG,EAAE,OAAQ,CAAC7W,GAAEG,MAAI;AAAC,QAAMG,IAAE8W,GAAGjX,EAAE,UAAU,GAAE,CAAC,CAAC,GAAEE,IAAE+W,GAAGjX,EAAE,UAAU,CAAC,CAAC,EAAE,SAAS,EAAE;AAAE,MAAIC,IAAE;AAAG,WAAQJ,IAAE,GAAEA,IAAE,IAAEK,EAAE,QAAOL;AAAI,IAAAI,KAAG;AAAI,SAAOJ,EAAEM,CAAC,IAAE,GAAGF,CAAC,GAAGC,CAAC,IAAGL;AAAC,GAAG,EAAE,GAAQ+W,KAAG,CAAC/W,GAAEG,MAAI,MAAM,KAAK,MAAMA,CAAC,CAAC,EAAE,IAAK,MAAIH,GAAI,KAAK,EAAE,GAAE8W,KAAG,IAAI,OAAO,KAAKC,GAAG,cAAa,CAAC,CAAC,gBAAe,GAAG,GAAEC,KAAG,IAAI,OAAO,KAAKD,GAAG,iBAAgB,CAAC,CAAC,mBAAkB,GAAG,GAAEE,KAAG,IAAI,OAAO,0BAA0BF,GAAG,mBAAkB,CAAC,CAAC,+BAA8B,GAAG,GAAEG,KAAG,kFAAiFN,KAAG,aAAYS,KAAG,CAAArX,MAAG,KAAK,MAAM,MAAIA,CAAC,GAAEmX,KAAG,CAACnX,GAAEG,GAAEG,MAAI;AAAC,MAAID,IAAEC,IAAE;AAAI,MAAOH,MAAJ;AAAM,WAAM,CAACE,GAAEA,GAAEA,CAAC,EAAE,IAAIgX,EAAE;AAAE,QAAMjX,KAAGJ,IAAE,MAAI,OAAK,MAAI,IAAGO,KAAG,IAAE,KAAK,IAAI,IAAEF,IAAE,CAAC,MAAIF,IAAE,MAAK,IAAEI,KAAG,IAAE,KAAK,IAAIH,IAAE,IAAE,CAAC;AAAG,MAAI,IAAE,GAAE,IAAE,GAAEU,IAAE;AAAE,EAAAV,KAAG,KAAGA,IAAE,KAAG,IAAEG,GAAE,IAAE,KAAGH,KAAG,KAAGA,IAAE,KAAG,IAAE,GAAE,IAAEG,KAAGH,KAAG,KAAGA,IAAE,KAAG,IAAEG,GAAEO,IAAE,KAAGV,KAAG,KAAGA,IAAE,KAAG,IAAE,GAAEU,IAAEP,KAAGH,KAAG,KAAGA,IAAE,KAAG,IAAE,GAAEU,IAAEP,KAAGH,KAAG,KAAGA,IAAE,MAAI,IAAEG,GAAEO,IAAE;AAAG,QAAMC,IAAEV,IAAEE,IAAE;AAAE,SAAM,CAAC,IAAEQ,GAAE,IAAEA,GAAED,IAAEC,CAAC,EAAE,IAAIsW,EAAE;AAAC;AAAE,SAASC,GAAGtX,GAAE;AAAC,SAAO,SAASA,GAAE;AAAC,QAAmBA,MAAhB;AAAkB,aAAO;AAAE,aAASG,EAAEH,GAAE;AAAC,YAAMG,IAAEH,IAAE;AAAI,aAAOG,KAAG,UAAOA,IAAE,QAAM,KAAK,KAAKA,IAAE,SAAM,OAAM,GAAG;AAAA,IAAC;AAAC,UAAK,CAACG,GAAED,GAAED,CAAC,IAAEuW,GAAG3W,CAAC;AAAE,WAAM,SAAMG,EAAEG,CAAC,IAAE,SAAMH,EAAEE,CAAC,IAAE,SAAMF,EAAEC,CAAC;AAAA,EAAC,EAAEJ,CAAC,IAAE;AAAI;AAAC,SAASuX,GAAG,EAAC,WAAU,GAAE,SAAQ,GAAE,GAAGlX,EAAC,GAAE;AAAC,QAAM,IAAEG,EAAE,oBAAmB,CAAC;AAAE,SAAOR,EAAE,OAAM,EAAC,WAAU,GAAE,OAAM,EAAC,QAAO,IAAE,EAAE,OAAMsX,GAAG,CAAC,IAAE,SAAO,SAAQ,iBAAgB,EAAE,MAAK,GAAE,GAAGjX,GAAE,UAASL,EAAE,QAAO,EAAC,WAAU,0BAAyB,UAAS,EAAE,MAAK,CAAC,EAAC,CAAC;AAAE,MAAI;AAAC;AAAC,SAASwX,KAAI;AAAC,SAAOxX,EAAES,IAAE,EAAC,SAAQ,QAAO,CAAC;AAAC;AAAC,SAASgX,GAAG,EAAC,SAAQpX,GAAE,yBAAwBD,GAAE,YAAWG,EAAC,GAAE;AAAC,SAAOJ,EAAEG,IAAE,EAAC,UAAS,CAACN,EAAE,OAAM,EAAC,UAASK,EAAE,cAAYL,EAAE,QAAO,EAAC,UAAS,SAAQ,CAAC,EAAC,CAAC,GAAEA,EAAE,OAAM,EAAC,MAAK,UAAS,SAAQ,CAAAA,MAAGA,EAAE,gBAAiB,GAAC,WAAU,CAAAA,MAAG;AAAC,IAAUA,EAAE,QAAZ,WAAuBA,EAAE,QAAR,OAAaA,EAAE,gBAAe;AAAA,EAAE,GAAE,UAAS,GAAE,UAASA,EAAE8P,IAAG,EAAC,OAAM,WAAU,SAAQzP,EAAE,OAAM,UAAS,MAAI;AAAC,IAAAD,EAAE,EAAC,GAAGC,GAAE,OAAM,CAACA,EAAE,MAAK,CAAC;AAAA,EAAC,GAAE,UAASE,KAAA,gBAAAA,EAAG,MAAK,CAAC,EAAC,CAAC,GAAEP,EAAE,OAAM,EAAC,MAAK,UAAS,SAAQ,CAAAA,MAAGA,EAAE,gBAAiB,GAAC,WAAU,CAAAA,MAAG;AAAC,IAAUA,EAAE,QAAZ,WAAuBA,EAAE,QAAR,OAAaA,EAAE,gBAAiB;AAAA,EAAA,GAAE,UAAS,GAAE,UAASA,EAAE8P,IAAG,EAAC,OAAM,aAAY,SAAQzP,EAAE,MAAK,UAAS,MAAI;AAAC,IAAAD,EAAE,EAAC,GAAGC,GAAE,MAAK,CAACA,EAAE,KAAI,CAAC;AAAA,EAAC,GAAE,UAASE,KAAA,gBAAAA,EAAG,KAAI,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC;AAAC;AAAC,MAAMmX,KAAG/W,GAAE,CAAA,CAAE;AAAE,SAASgX,GAAG,EAAC,SAAQ,GAAE,YAAW,GAAE,iBAAgBtX,GAAE,mBAAkB,GAAE,GAAGM,EAAC,GAAE;AAAC,QAAK,EAAC,SAAQE,GAAE,kBAAiBC,GAAE,oBAAmBC,EAAC,IAAEH,GAAE8W,EAAE,GAAE1W,IAAE,KAAG,EAAE,eAAYF,KAAA,gBAAAA,EAAG,SAAS,KAAGG,IAAEF,KAAA,gBAAAA,EAAG,KAAM,CAAAf,MAAGA,EAAE,SAAO,EAAE,OAAOkB,IAAEX,GAAG,MAAIF,KAAA,gBAAAA,EAAI,EAAC,GAAG,GAAE,YAAW,CAACW,EAAC,IAAI,CAAC,GAAEX,GAAEW,CAAC,CAAC,GAAES,IAAElB,GAAG,CAAAP,MAAG;AAAC,SAAG,EAAEA,CAAC;AAAA,EAAC,GAAG,CAAC,CAAC,CAAC;AAAE,SAAOA,EAAEgC,IAAE,EAAC,SAAQhC,EAAEuX,IAAG,EAAC,SAAQ,EAAC,CAAC,GAAE,QAAkB1W,MAAX,YAAwBA,MAAV,UAAYG,KAAGhB,EAAEwX,IAAG,EAAE,IAAExX,EAAEyX,IAAG,EAAC,SAAQ,GAAE,yBAAwBhW,GAAE,YAAWR,EAAC,CAAC,GAAE,YAAWD,GAAE,SAAQE,GAAE,GAAGP,GAAE,UAAS,EAAE,KAAI,GAAE,EAAE,IAAI;AAAC;AAAC,MAAMiX,KAAGxX,GAAG,CAAC,EAAC,WAAUE,GAAE,SAAQD,IAAE,UAAS,eAAcD,IAAE,IAAG,UAASG,IAAE,IAAG,oBAAmBI,IAAE,IAAG,iBAAgBC,GAAE,iBAAgBC,GAAE,mBAAkBE,GAAE,GAAGC,EAAC,GAAEC,MAAI;AAAC,QAAMC,IAAEV,EAAE,oBAAyCH,MAAtB,uBAAyB,mBAAkBC,CAAC,GAAEmB,IAAElB,EAAE,OAAQ,CAAAP,MAAGA,EAAE,UAAU,GAAG0B,IAAEZ,GAAG,OAAK,EAAC,SAAQT,GAAE,kBAAiBoB,GAAE,oBAAmBd,GAAE,iBAAgBC,GAAE,iBAAgBC,GAAE,mBAAkBE,EAAC,IAAI,CAACV,GAAEoB,GAAEd,GAAEC,GAAEC,GAAEE,CAAC,CAAC;AAAE,MAAIY,IAAE;AAAiB,SAAgBtB,MAAV,UAAYsB,IAAE,oBAAwCtB,MAAtB,wBAA0BsB,IAAE,+BAA8B3B,EAAE0X,GAAG,UAAS,EAAC,OAAMhW,GAAE,UAAS1B,EAAE,OAAM,EAAC,WAAUkB,GAAE,KAAID,GAAE,UAASd,EAAEsC,IAAE,EAAC,SAAQ,UAAS,GAAGzB,GAAE,UAAS,CAAChB,EAAEyC,GAAE,WAAU,EAAC,QAAOrC,KAAGJ,EAAE8P,IAAG,EAAC,OAAM,eAAc,OAAM,SAAQ,UAAS,CAAA9P,MAAGY,KAAGA,EAAEZ,EAAE,OAAO,OAAO,GAAE,SAA8BK,MAAtB,oBAAuB,CAAC,GAAE,UAASsB,EAAC,CAAC,GAAEpB,KAAA,gBAAAA,EAAG,IAAK,CAAAJ,MAAGH,EAAE2X,IAAG,EAAC,SAAQxX,GAAE,iBAAgBU,GAAE,mBAAkBE,EAAC,GAAEZ,EAAE,IAAI,EAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC;AAAC,CAAG;AAACyX,GAAG,cAAY;AAAmrGjX,GAAE,EAAC,QAAO,EAAC,SAAQ,GAAE,GAAE,OAAM,QAAO,WAAU,MAAI;EAAE,CAAC;AAAujL,SAASkX,GAAG,EAAC,OAAMvX,IAAE,YAAW,GAAE;AAAC,QAAK,EAAC,YAAWD,GAAE,eAAcD,EAAC,IAAE0X,GAAI;AAAC,SAAO3X,EAAE,OAAM,EAAC,WAAU,gBAAe,UAAS,CAACA,EAAE0C,IAAE,EAAC,UAAS,CAAC7C,EAAE6C,GAAE,OAAM,EAAC,KAAI,MAAK,MAAKvC,GAAE,MAAK,QAAO,CAAC,GAAEN,EAAEI,GAAE,EAAE,CAAC,EAAC,CAAC,GAAEJ,EAAEK,GAAE,CAAA,CAAE,CAAC,EAAC,CAAC;AAAC;AAA0B,MAAM0X,KAAGpX,GAAE,EAAC,eAAc,CAAA,GAAG,OAAM,IAAG,YAAW,MAAI;GAAG,iBAAgB,MAAI;AAAA,GAAG,YAAW,MAAI;AAAA,GAAG,YAAW,MAAI;AAAE,GAAC,kBAAiB,MAAI;AAAE,GAAC,mBAAkB,IAAG,cAAa,MAAI;AAAA,GAAG,cAAa,MAAI;AAAA,GAAG,aAAY,IAAG,WAAU,MAAI;GAAG,YAAW,GAAE,UAAS,MAAI;AAAE,GAAC,qBAAoB,MAAI;GAAG,+BAA8B,MAAI;AAAA,GAAG,WAAU,MAAI,CAAA,GAAG,sBAAqB,IAAG,iCAAgC,GAAE,CAAC,GAAEqX,KAAG,MAAIpX,GAAEmX,EAAE;AAAE,SAASE,GAAG,EAAC,WAAU3X,GAAE,MAAKD,IAAE,UAAS,aAAYD,IAAE,UAAS,GAAGG,EAAC,GAAE;AAAC,QAAMI,IAAEH,EAAE,oBAAmBF,CAAC,GAAEM,IAAEI,GAAE,IAAI,GAAE,EAAC,aAAYH,GAAE,WAAUC,GAAE,YAAWC,EAAC,IAAEiX,GAAI;AAAC,SAAO7X,EAAE,OAAM,EAAC,WAAUQ,GAAE,UAAS,CAACX,EAAE0P,IAAG,EAAC,KAAI9O,GAAE,OAAMC,GAAE,aAAYR,GAAE,aAAYD,GAAE,UAAS,CAAAJ,MAAGc,EAAEd,EAAE,OAAO,KAAK,GAAE,GAAGO,EAAC,CAAC,GAAEM,EAAE,SAAO,KAAGb,EAAE,KAAI,EAAC,WAAU,0BAAyB,UAAS,GAAGe,CAAC,WAAU,CAAC,CAAC,EAAC,CAAC;AAAC;AAAC,SAASmX,GAAG,EAAC,WAAU5X,GAAE,GAAGD,EAAC,GAAE;AAAC,QAAK,EAAC,gBAAeD,GAAE,YAAWG,EAAC,IAAEuX,GAAE;AAAG,SAAO3X,EAAEyC,IAAE,EAAC,WAAUtC,GAAE,OAAM,SAAQ,GAAGD,GAAE,UAAS,CAACL,EAAEI,GAAE,CAAE,CAAA,GAAEJ,EAAEO,GAAE,EAAE,CAAC,EAAC,CAAC;AAAC;AAAC,SAAS4X,GAAG,EAAC,MAAK,IAAE,OAAM,GAAG,EAAC,GAAE;AAAC,QAAK,EAAC,cAAa9X,EAAC,IAAE2X,GAAE;AAAG,SAAOhY,EAAEU,IAAE,EAAC,MAAK,GAAE,SAAQ,UAAS,MAAK,MAAK,SAAQL,GAAE,GAAG,EAAC,CAAC;AAAC;AAAC,SAAS+X,GAAG,EAAC,MAAK9X,IAAE,YAAW,GAAGD,EAAC,GAAE;AAAC,QAAK,EAAC,OAAMD,GAAE,YAAWG,EAAC,IAAEyX,MAAKrX,IAAMP,EAAE,WAAN;AAAa,SAAOD,EAAEwC,IAAE,EAAC,SAAQ,SAAQ,GAAGtC,GAAE,UAAS,CAACL,EAAE2C,GAAE,YAAW,EAAC,MAAKrC,GAAE,SAAQ,UAAS,MAAK,KAAI,CAAC,GAAEN,EAAE2C,GAAE,SAAQ,EAAC,UAAS3C,EAAE2C,GAAE,MAAK,EAAC,UAAS3C,EAAE2C,GAAE,MAAK,EAAC,UAAShC,GAAE,SAAQ,CAAAX,OAAI,CAAAA,MAAG;AAAC,IAAAW,IAAEX,EAAE,gBAAe,IAAGO,EAAC;AAAA,EAAE,GAAGP,CAAC,GAAE,UAAS,YAAW,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC;AAAC;AAAC,SAASqY,GAAGrY,GAAEG,IAAE,IAAGG,IAAE,IAAGD,IAAE,IAAG;AAAC,QAAMD,IAAEJ,EAAE,QAAS,GAACO,IAAE,CAAC,WAAU,YAAW,SAAQ,SAAQ,OAAM,QAAO,QAAO,UAAS,aAAY,WAAU,YAAW,UAAU,EAAEP,EAAE,SAAU,CAAA,GAAE,IAAEA,EAAE,YAAa,GAAC,IAAEA,EAAE,YAAW,IAAEA,EAAE,WAAY;AAAC,MAAIc,IAAE;AAAG,SAAOA,IAAE,IAAE,KAAG,IAAI,CAAC,KAAG,GAAG,CAAC,IAAGX,IAAYA,MAAV,UAAYG,IAAE,UAAQ,YAAY,CAAC,IAAIQ,CAAC,KAAiBX,MAAd,cAAgBG,IAAE,cAAY,gBAAgB,CAAC,IAAIQ,CAAC,KAAG,GAAG,CAAC,IAAIA,CAAC,KAAGT,IAAEC,IAAE,GAAGC,CAAC,IAAIH,CAAC,KAAG,GAAGG,CAAC,IAAIH,CAAC,OAAO,CAAC,IAAIU,CAAC,KAAGR,IAAE,GAAGC,CAAC,IAAIH,CAAC,KAAK,CAAC,KAAG,GAAGG,CAAC,IAAIH,CAAC,KAAK,CAAC,OAAO,CAAC,IAAIU,CAAC;AAAE;AAAC,SAASwX,GAAGtY,GAAEG,IAAE,EAAC,UAAS,GAAE,GAAE;AAAC,QAAMG,IAAE,IAAI,KAAK,MAAIN,CAAC,GAAEK,IAAE,oBAAI,QAAKD,IAAE,KAAK,OAAOC,IAAEC,KAAG,GAAG,GAAEC,IAAE,KAAK,MAAMH,IAAE,EAAE,GAAE,IAAEC,EAAE,aAAc,MAAGC,EAAE,aAAc,GAAC,IAAE,IAAI,KAAKD,EAAE,QAAQA,EAAE,QAAO,IAAG,CAAC,CAAC,EAAE,aAAc,MAAGC,EAAE,gBAAe,IAAED,EAAE,YAAW,MAAKC,EAAE,YAAa;AAAC,SAAOH,EAAE,WAASC,IAAE,IAAE,aAAWA,IAAE,KAAG,GAAGA,CAAC,iBAAeA,IAAE,KAAG,uBAAqBG,IAAE,KAAG,GAAGA,CAAC,iBAAe,IAAE8X,GAAG/X,GAAE,SAAQ,IAAG,EAAE,IAAE,IAAE+X,GAAG/X,GAAE,aAAY,IAAG,EAAE,IAAE,IAAE+X,GAAG/X,GAAE,IAAG,IAAG,EAAE,IAAE+X,GAAG/X,CAAC,IAAE,IAAE,UAAQ,IAAE,cAAY,IAAE+X,GAAG/X,GAAE,IAAG,IAAG,EAAE,IAAE+X,GAAG/X,GAAE,IAAG,EAAE;AAAC;AAAC,SAASiY,GAAG,EAAC,WAAU,GAAE,GAAG,EAAC,GAAE;AAAC,QAAMlY,IAAEG,EAAE,cAAa,CAAC,GAAE,EAAC,mBAAkB,GAAE,WAAU,GAAE,MAAKG,EAAC,IAAEmX,GAAE,GAAG,EAAC,OAAMlX,GAAE,aAAYC,GAAE,UAASG,GAAE,WAAUC,EAAC,IAAE+W,GAAI,GAAC9W,IAAED,EAAEL,CAAC,GAAEa,IAAEuO,GAAGnP,CAAC,GAAEa,IAAEZ,GAAG,MAAII,EAAE,OAAQ,CAAAlB,MAAGA,EAAE,YAAY,SAAS,YAAW,EAAG,SAASyB,EAAE,YAAa,CAAA,KAAGzB,EAAE,YAAY,IAAI,cAAc,SAASyB,EAAE,YAAW,CAAE,CAAG,GAAE,CAACP,GAAEO,CAAC,CAAC,GAAEE,IAAEb,GAAG,MAAIY,EAAE,IAAK,CAAA1B,OAAI,EAAC,GAAGA,GAAE,aAAY,EAAC,GAAGA,EAAE,aAAY,WAAUsY,GAAGtY,EAAE,YAAY,WAAU,EAAC,UAAS,GAAE,CAAC,EAAC,EAAC,EAAI,GAAE,CAAC0B,CAAC,CAAC,GAAEO,IAAEnB,GAAG,MAAI,OAAO,OAAOa,EAAE,OAAQ,CAAC3B,IAAE,IAAGG;;AAAK,WAAAH,EAAEG,EAAE,YAAY,SAAS,MAAEoC,IAAAvC,EAAEG,EAAE,YAAY,SAAS,MAAzB,gBAAAoC,EAA4B,OAAO,CAAA,OAAK,CAAA,GAAGvC,EAAEG,EAAE,YAAY,SAAS,EAAE,KAAKA,CAAC,GAAEH;AAAA,KAAI,CAAA,CAAE,CAAC,GAAG,CAAC2B,CAAC,CAAC;AAAE,SAAOZ,GAAG,MAAI;AAAC,IAAAC,EAAEU,EAAE,MAAM;AAAA,EAAC,GAAG,CAACA,GAAEV,CAAC,CAAC,GAAEhB,EAAE,OAAM,EAAC,WAAUK,GAAE,GAAG,GAAE,UAAS4B,KAAOA,EAAE,WAAN,IAAaA,EAAE,IAAK,CAAA9B,MAAGH,EAAE,GAAE,EAAC,OAAM,OAAOG,EAAE,CAAC,EAAE,YAAY,SAAS,KAAG,MAAK,UAASA,EAAE,IAAK,CAAAA,MAAGH,EAAEW,GAAE,EAAC,MAAKR,EAAC,GAAEA,EAAE,EAAE,GAAG,GAAEA,EAAE,CAAC,EAAE,MAAI,EAAE,CAAG,IAACH,EAAE,GAAE,CAAA,CAAE,EAAC,CAAC;AAAC;AAAC,SAASwY,GAAG,EAAC,WAAUlY,GAAE,MAAKD,IAAE,YAAW,MAAKD,IAAE,4BAA2B,GAAGG,EAAC,GAAE;AAAC,QAAMI,IAAEH,EAAE,kBAAiBF,CAAC;AAAE,SAAOH,EAAE,OAAM,EAAC,WAAUQ,GAAE,GAAGJ,GAAE,UAAS,CAACP,EAAES,IAAE,EAAC,SAAQJ,EAAC,CAAC,GAAEL,EAAE,KAAI,EAAC,UAASI,EAAC,CAAC,CAAC,EAAC,CAAC;AAAC;AAAC,SAASqY,GAAG,EAAC,WAAUnY,GAAE,OAAMD,GAAE,UAASD,GAAE,GAAGG,EAAC,GAAE;AAAC,QAAMI,IAAEH,EAAE,oBAAmBF,CAAC;AAAE,SAAOH,EAAE,OAAM,EAAC,WAAUQ,GAAE,GAAGJ,GAAE,UAAS,CAACF,KAAGL,EAAE,KAAI,EAAC,UAASK,EAAC,CAAC,GAAED,CAAC,EAAC,CAAC;AAAC;AAAC,SAASmC,GAAG,EAAC,WAAUlC,GAAE,MAAKD,GAAE,GAAGG,EAAC,GAAE;AAAC,QAAK,EAAC,YAAWI,GAAE,UAASC,GAAE,YAAWC,EAAC,IAAEiX,GAAI,GAAC,EAAC,OAAMhX,GAAE,KAAIC,GAAE,UAASC,GAAE,eAAcC,GAAE,YAAWC,GAAE,OAAMO,GAAE,eAAcC,EAAC,IAAEtB,EAAE;AAAY,MAAG,CAACA;AAAE,WAAOJ,EAAEM,IAAE,CAAA,CAAE;AAAE,QAAMqB,IAAEnB,EAAE,cAAaJ,EAAE,YAAY,SAAO,CAACU,CAAC,GAAET,CAAC;AAAE,SAAOF,EAAE,OAAM,EAAC,WAAUwB,GAAE,GAAGpB,GAAE,UAAS,CAACP,EAAEW,GAAE,EAAC,QAAOP,EAAE,IAAG,UAASY,GAAE,OAAMF,EAAC,CAAC,GAAEd,EAAEY,GAAE,EAAC,OAAME,GAAE,KAAIC,GAAE,eAAcE,GAAE,YAAWC,GAAE,OAAMO,GAAE,eAAcC,EAAC,CAAC,GAAE1B,EAAEa,GAAE,EAAC,QAAOT,EAAE,IAAG,OAAMU,EAAC,CAAC,CAAC,EAAC,CAAC;AAAC;AAAC,SAAS4X,GAAG,EAAC,eAAc,IAAE,GAAE,YAAW,IAAE,GAAE,GAAGrY,EAAC,GAAE;AAAC,QAAM,IAAEE,GAAG,MAAI,KAAG,IAAE,KAAK,MAAM,IAAE,IAAE,GAAG,IAAE,GAAG,CAAC,GAAE,CAAC,CAAC;AAAE,SAAOP,EAAEwP,IAAG,EAAC,OAAM,EAAG,GAAC,GAAGnP,EAAC,CAAC;AAAC;AAAC,SAASsY,GAAG,EAAC,WAAUrY,GAAE,QAAOD,GAAE,UAASD,GAAE,OAAMO,GAAE,QAAOC,GAAE,QAAOC,GAAE,GAAGC,EAAC,GAAE;AAAC,QAAMC,IAAEP,EAAE,qBAAoBF,CAAC,GAAE,EAAC,YAAWU,GAAE,YAAWC,EAAC,IAAE+W,GAAI,GAAC9W,IAAEX,GAAG,CAAAP,MAAG;AAAC,IAAAY,IAAEA,EAAEZ,CAAC,IAAEgB,EAAEhB,CAAC;AAAA,EAAC,GAAG,CAACY,GAAEI,CAAC,CAAC,GAAES,IAAElB,GAAG,CAAAP,MAAG;AAAC,IAAAa,IAAEA,EAAEb,CAAC,IAAEiB,EAAEjB,CAAC;AAAA,EAAC,GAAG,CAACa,GAAEI,CAAC,CAAC;AAAE,SAAOd,EAAE,OAAM,EAAC,WAAUY,GAAE,GAAGD,GAAE,UAAS,CAACd,EAAEsB,IAAE,EAAC,MAAKlB,GAAE,OAAM,EAAC,gBAA+BO,MAAhB,iBAAiCA,MAAd,cAAgB,iBAAe,OAAM,EAAC,CAAC,GAAEX,EAAEU,IAAE,EAAC,MAAK,SAAQ,SAAQ,MAAI;AAAC,IAAgBC,MAAhB,iBAA8BA,MAAX,WAAaO,EAAEb,CAAC,IAAEoB,EAAEpB,CAAC;AAAA,EAAC,EAAC,CAAC,CAAC,EAAC,CAAC;AAAC;AAAC,SAASuY,GAAG,EAAC,WAAUtY,GAAE,OAAMD,GAAE,KAAID,GAAE,eAAcG,IAAE,GAAE,YAAWI,IAAE,GAAE,OAAMC,IAAE,GAAE,eAAcC,IAAE,GAAE,GAAGC,EAAC,GAAE;AAAC,QAAMC,IAAEP,EAAE,mBAAkBF,CAAC,GAAEU,IAAE,CAAAhB,MAAG;AAAC,UAAMG,IAAE,CAAC,SAAQ,MAAK,MAAK,MAAK,IAAI;AAAE,QAAOH,MAAJ;AAAM,aAAM;AAAI,UAAMM,IAAE,KAAK,MAAM,KAAK,IAAIN,CAAC,IAAE,KAAK,IAAI,IAAI,CAAC;AAAE,WAAWM,MAAJ,IAAM,GAAGN,CAAC,GAAGG,EAAEG,CAAC,CAAC,KAAG,IAAIN,IAAE,QAAMM,GAAG,QAAQ,CAAC,CAAC,GAAGH,EAAEG,CAAC,CAAC;AAAA,EAAE;AAAE,SAAOH,EAAE,OAAM,EAAC,WAAUY,GAAE,GAAGD,GAAE,UAAS,CAACd,EAAE,KAAI,EAAC,WAAU,iBAAgB,UAASI,EAAC,CAAC,IAAGc,IAAEb,GAAgBa,MAAd,eAAiCA,MAAhB,iBAAiCA,MAAd,cAAgB,OAAKlB,EAAE0Y,IAAG,EAAC,SAAmBxX,MAAX,WAAa,WAAS,UAAS,eAAcX,GAAE,YAAWI,EAAC,CAAC,IAAGX,EAAE,KAAI,EAAC,WAAU,wBAAuB,UAAuBK,MAAd,cAAgB,GAAGW,EAAET,KAAG,CAAC,CAAC,YAAwBF,MAAd,eAAiCA,MAAhB,gBAAkB,GAAGW,EAAET,KAAG,CAAC,CAAC,IAAIS,EAAEL,KAAG,CAAC,CAAC,cAAY,GAAGK,EAAET,KAAG,CAAC,CAAC,IAAIS,EAAEL,KAAG,CAAC,CAAC,KAAKM,IAAEL,IAAGK,IAAE,IAAIA,IAAE,MAAI,GAAG,QAAQ,CAAC,CAAC,SAAO,MAAI,CAAC,QAAQ,CAAAjB,MAAG;AAAC,UAAMG,IAAE,KAAK,MAAMH,IAAE,IAAI,GAAEM,IAAE,KAAK,MAAMN,IAAE,OAAK,EAAE;AAAE,QAAIK,IAAE;AAAG,WAAOF,IAAE,MAAIE,KAAG,GAAGF,CAAC,QAAQA,IAAE,IAAE,MAAI,EAAE,OAAMG,IAAE,MAAID,KAAG,GAAGC,CAAC,OAAOA,IAAE,IAAE,MAAI,EAAE,SAAQN,IAAE,KAAK,MAAMA,IAAE,EAAE,KAAG,KAAQK,MAAL,QAAUA,KAAG,GAAGL,CAAC,OAAWA,MAAJ,IAAM,MAAI,EAAE,KAAI,GAAGK,EAAE,KAAI,CAAE;AAAA,EAAO,GAAGQ,CAAC,KAAG,CAAC,GAAE,CAAC,CAAC,EAAC,CAAC;AAAE,MAAII,GAAEC;AAAC;AAAC,MAAM2X,KAAG,EAAC,SAAQ,eAAc,SAAQ,oBAAmB,UAAS,mBAAkB;AAAE,SAASC,GAAG,EAAC,WAAUxY,GAAE,SAAQD,GAAE,MAAKD,EAAC,GAAE;AAAC,QAAMG,IAAEC,EAAE,qBAAoB,qBAAqBH,CAAC,IAAGC,CAAC;AAAE,SAAOH,EAAE,OAAM,EAAC,WAAUI,GAAE,UAAS,CAACF,KAAGL,EAAES,IAAE,EAAC,SAAQoY,GAAGxY,CAAC,GAAE,WAAU,gBAAe,CAAC,GAAED,KAAGJ,EAAE,KAAI,EAAC,WAAU,mBAAkB,UAASI,EAAC,CAAC,CAAC,EAAC,CAAC;AAAC;AAAC,SAAS2Y,GAAG,EAAC,WAAU1Y,GAAE,QAAOD,GAAE,OAAMO,GAAE,aAAYC,GAAE,cAAaC,GAAE,QAAOC,GAAE,GAAGC,EAAC,GAAE;AAAC,QAAMC,IAAER,EAAE,qBAAoBH,CAAC,GAAE,EAAC,iBAAgBY,GAAE,kBAAiBC,GAAE,YAAWO,EAAC,IAAEuW,MAAKtW,IAAEnB,GAAG,CAAAP,MAAG;AAAC,IAAAY,IAAEA,EAAEZ,CAAC,IAAEiB,EAAEjB,CAAC;AAAA,EAAC,GAAG,CAACY,GAAEK,CAAC,CAAC,GAAEU,IAAEpB,GAAG,CAAAP,MAAG;AAAC,IAAAa,IAAEA,EAAEb,CAAC,IAAEkB,EAAElB,CAAC;AAAA,EAAC,GAAG,CAACa,GAAEK,CAAC,CAAC,GAAEe,IAAE1B,GAAG,CAAAP,MAAG;AAAC,IAAAc,IAAEA,EAAEd,CAAC,IAAEyB,EAAEzB,CAAC;AAAA,EAAC,GAAG,CAACc,GAAEW,CAAC,CAAC;AAAE,SAAOzB,EAAE,OAAM,EAAC,WAAUgB,GAAE,GAAGD,GAAE,WAAU,MAAI;AAAC,YAAOJ,GAAC;AAAA,MAAE,KAAI;AAAc,eAAOR,EAAEyC,IAAE,EAAC,OAAM,SAAQ,UAAS,CAAC5C,EAAE4C,GAAE,QAAO,EAAC,SAAQ,WAAU,MAAK,SAAQ,SAAQ,MAAIlB,EAAEtB,CAAC,EAAC,CAAC,GAAEJ,EAAE4C,GAAE,QAAO,EAAC,SAAQ,QAAO,MAAK,UAAS,SAAQ,MAAIX,EAAE7B,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC;AAAA,MAAE,KAAI;AAAS,eAAOJ,EAAE4C,IAAE,EAAC,OAAM,SAAQ,UAAS5C,EAAE4C,GAAE,QAAO,EAAC,SAAQ,WAAU,MAAK,UAAS,SAAQ,MAAIlB,EAAEtB,CAAC,EAAC,CAAC,EAAC,CAAC;AAAA,MAAE,KAAI;AAAY,eAAOD,EAAEG,IAAE,EAAC,UAAS,CAACN,EAAE8Y,IAAG,EAAC,SAAQ,WAAU,MAAK,WAAU,CAAC,GAAE9Y,EAAE4C,IAAE,EAAC,OAAM,SAAQ,UAAS5C,EAAE4C,GAAE,QAAO,EAAC,SAAQ,WAAU,MAAK,kBAAiB,SAAQ,MAAIjB,EAAEvB,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC;AAAA,MAAE,KAAI;AAAY,eAAOJ,EAAEM,IAAE,EAAC,UAASN,EAAE8Y,IAAG,EAAC,SAAQ,WAAU,MAAK,YAAW,CAAC,EAAC,CAAC;AAAA,MAAE,KAAI;AAAc,eAAO3Y,EAAEG,IAAE,EAAC,UAAS,CAACN,EAAE8Y,IAAG,EAAC,SAAQ,YAAW,MAAK,SAAQ,CAAC,GAAE9Y,EAAE4C,IAAE,EAAC,OAAM,SAAQ,UAAS5C,EAAE4C,GAAE,QAAO,EAAC,SAAQ,WAAU,MAAK,SAAQ,SAAQ,MAAIlB,EAAEtB,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC;AAAA,MAAE;AAAQ,eAAO;AAAA,IAAI;AAAA,EAAC,GAAI,EAAA,CAAC;AAAC;AAAC,SAAS4Y,GAAG,EAAC,WAAU1Y,GAAE,OAAMD,IAAE,YAAW,GAAGD,EAAC,GAAE;AAAC,QAAMG,IAAEC,EAAE,wBAAuBF,CAAC,GAAE,EAAC,eAAc,EAAC,gBAAeK,EAAC,GAAE,cAAaC,GAAE,qBAAoBC,GAAE,+BAA8BC,GAAE,iCAAgCC,GAAE,sBAAqBC,EAAC,IAAEgX,GAAE;AAAG,SAAO7X,EAAEmP,IAAG,EAAC,WAAU/O,GAAE,GAAGH,GAAE,UAAS,CAACD,EAAEmP,GAAG,QAAO,EAAC,UAAS,CAACtP,EAAEsP,GAAG,OAAO,OAAM,EAAC,MAAK,SAAQ,MAAKjP,GAAE,KAAI,KAAI,CAAC,GAAEL,EAAEsP,GAAG,OAAO,aAAY,EAAC,UAAStP,EAAEU,IAAE,EAAC,SAAQ,UAAS,MAAK,SAAQ,MAAK,MAAK,SAAQ,MAAI;AAAC,IAAAE,EAAC;AAAA,EAAE,GAAE,UAASG,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,GAAEf,EAAEsP,GAAG,MAAK,EAAC,UAASnP,EAAEyC,IAAE,EAAC,UAAS,CAACzC,EAAEwC,IAAE,EAAC,SAAQ,SAAQ,UAAS5B,GAAE,UAAS,CAACf,EAAE2C,GAAE,QAAO,EAAC,UAAS3C,EAAE,QAAO,EAAC,WAAU,0CAAyC,UAASW,KAAGK,EAAE,CAAC,EAAC,CAAC,EAAC,CAAC,GAAEA,EAAE,SAAO,KAAGhB,EAAE2C,GAAE,SAAQ,EAAC,UAAS3C,EAAE2C,GAAE,MAAK,EAAC,UAAS3B,EAAE,IAAK,CAACb,GAAEG,MAAI,CAACH,KAAOG,MAAJ,KAAOA,IAAE,IAAE,OAAKN,EAAE2C,GAAE,MAAK,EAAC,SAAQ,MAAI;AAAC,IAAA9B,EAAEV,CAAC;AAAA,EAAC,GAAE,UAASA,EAAC,GAAEA,CAAC,CAAG,EAAA,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,GAAEH,EAAEwB,IAAE,EAAC,WAAU,qDAAoD,MAAK,UAAS,SAAQ,MAAI;AAAC,IAAAV,EAAG;AAAA,EAAA,GAAE,UAASC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC;AAAC;AAAC,MAAMkY,KAAG,EAAC,QAAOpB,IAAG,YAAWI,IAAG,eAAcC,IAAG,gBAAeC,IAAG,YAAWC,IAAG,MAAKG,IAAG,mBAAkBC,IAAG,WAAUC,IAAG,MAAKlW,IAAG,cAAamW,IAAG,YAAWC,IAAG,UAASC,IAAG,YAAWG,IAAG,UAASC,GAAE,GAAEE,KAAGvY,GAAEsY,EAAE,GAAEE,KAAGjY,GAAG,CAAC,EAAC,UAAS,GAAE,YAAW,EAAC,MAAI;AAAC,QAAMb,IAAES,GAAG,OAAK,EAAC,GAAGmY,IAAG,GAAG,EAAC,IAAI,CAAC,CAAC,CAAC;AAAE,SAAOjZ,EAAEkZ,GAAG,UAAS,EAAC,OAAM7Y,GAAE,UAAS,EAAC,CAAC;AAAC,CAAC;AAAG8Y,GAAG,cAAY;AAAkB,MAAMrB,KAAG,MAAIlX,GAAEsY,EAAE;AAA8tG,SAASE,GAAGpZ,GAAE;AAAC,MAAGA,KAAGA,EAAE,iBAA2B,OAAOA,EAAE,iBAArB,cAA4CA,EAAE,kBAAV,SAAoCA,EAAE,kBAAb,YAAsCA,EAAE,kBAAZ;AAA0B,UAAM,IAAI,MAAM,8HAA4H,OAAOA,EAAE,gBAAc,aAAa;AAAE,MAAIG,IAAEH,KAAe,OAAOA,EAAE,iBAArB,cAAoCA,EAAE,eAAcM,IAAE,CAAA;AAAG,WAASD,EAAEC,GAAE,GAAE;AAAC,QAAIF,IAAEE,aAAa,QAAMA,IAAE,IAAI,MAAMA,CAAC;AAAE,QAAGH;AAAE,MAAAA,EAAEC,CAAC;AAAA,SAAM;AAAC,UAAIG,IAAE,uDAAqD,IAAE,eAAaH,EAAE;AAAM,UAAGJ;AAAE,gBAAOA,EAAE,eAAa;AAAA,UAAE,KAAI;AAAM,mBAAO,QAAQ,MAAMO,CAAC;AAAA,UAAE,KAAI;AAAS;AAAA,UAAO,KAAI;AAAQ,kBAAM,IAAI,MAAMA,CAAC;AAAA,QAAC;AAAC,cAAQ,MAAMA,CAAC;AAAA,IAAC;AAAA,EAAC;AAAC,SAAM,EAAC,KAAI,SAASP,GAAEG,GAAEC,GAAE;AAAC,QAAIG,IAAED,EAAEN,CAAC;AAAE,WAAOO,MAAIA,IAAE,CAAE,GAACD,EAAEN,CAAC,IAAEO,IAAGA,EAAE,KAAKJ,CAAC,GAAEC,KAAG,WAAY,WAAU;AAAC,MAAAA,EAAE,QAAS,SAASA,GAAE;AAAC,YAAIG;AAAE,YAAG,GAAQA,IAAED,EAAEN,CAAC,OAAb,QAA0BO,MAAT,WAAkBA,EAAE,SAASJ,CAAC;AAAE,cAAG;AAAC,kBAAM,QAAQC,CAAC,IAAED,EAAE,MAAM,QAAOC,CAAC,IAAED,EAAE,MAAM,QAAO,CAACC,CAAC,CAAC;AAAA,UAAC,SAAOD,GAAE;AAAC,YAAAE,EAAEF,GAAEH,CAAC;AAAA,UAAC;AAAA,MAAC;IAAG,GAAG,CAAC,GAAE,WAAU;AAAC,UAAIK,IAAEC,EAAEN,CAAC;AAAE,MAAAK,MAAIA,IAAEA,EAAE,OAAQ,SAASL,GAAEM,GAAED,GAAE;AAAC,eAAOC,MAAIH,KAAGH,EAAE,WAASK,KAAGL,EAAE,KAAKM,CAAC,GAAEN;AAAA,MAAC,GAAG,CAAE,CAAA,GAAMK,EAAE,WAAN,IAAa,OAAOC,EAAEN,CAAC,IAAEM,EAAEN,CAAC,IAAEK;AAAA,IAAE;AAAA,EAAC,GAAE,SAAQ,SAASL,GAAE;AAAC,aAAQG,IAAE,CAAE,GAACC,IAAE,GAAEA,IAAE,UAAU,QAAOA;AAAI,MAAAD,EAAEC,IAAE,CAAC,IAAE,UAAUA,CAAC;AAAE,QAAIG,IAAED,EAAEN,CAAC;AAAE,QAAG,CAACO,KAAOA,EAAE,WAAN;AAAa,aAAM,CAAE;AAAC,QAAII,IAAE;AAAG,WAAOJ,EAAE,QAAS,SAASD,GAAE;AAAC,UAAG;AAAC,YAAIF,IAAEE,EAAE,MAAM,QAAOH,CAAC;AAAE,QAAAQ,EAAE,KAAKP,CAAC;AAAA,MAAC,SAAOD,GAAE;AAAC,QAAAQ,EAAE,KAAK,MAAM,GAAEN,EAAEF,GAAEH,CAAC;AAAA,MAAC;AAAA,IAAC,CAAG,GAACW;AAAA,EAAC,GAAE,OAAM,WAAU;AAAC,IAAAL,IAAE,CAAE;AAAA,EAAA,GAAE,UAAS,SAASN,GAAE;AAAC,IAAAM,EAAEN,CAAC,KAAG,OAAOM,EAAEN,CAAC;AAAA,EAAC,EAAC;AAAC;AAACoZ,GAAG,UAAQA;AAAG,IAAIC,KAAGtZ,GAAEqZ,EAAE;AAAypE,MAAME,KAAG3Y,GAAE,EAAC,QAAO,EAAC,KAAI,IAAG,QAAO,IAAG,SAAQ,IAAG,cAAa,IAAG,OAAM,IAAG,SAAQ,IAAG,aAAY,IAAG,kBAAiB,IAAG,WAAU,IAAG,aAAY,IAAG,kBAAiB,IAAG,qBAAoB,IAAG,qBAAoB,YAAW,iBAAgB,IAAG,oBAAmB,CAAA,GAAG,cAAa,IAAG,qBAAoB,IAAG,SAAQ,CAAE,GAAC,eAAc,IAAG,iBAAgB,UAAS,GAAE,gBAAe,CAAAX,MAAG;AAAA,GAAG,SAAQ,MAAI;AAAA,GAAG,QAAO,MAAI,QAAQ,QAAQ,CAAA,CAAE,GAAE,WAAU,MAAI;GAAG,OAAM,CAAAA,MAAG;AAAE,GAAC,iBAAgB,IAAG,oBAAmB,MAAI;AAAA,GAAG,sBAAqB,CAAE,GAAC,kBAAiB,IAAG,qBAAoB,MAAI;GAAG,cAAa,EAAC,MAAK,WAAU,OAAM,IAAG,MAAK,GAAE,GAAE,iBAAgB,MAAI;AAAA,GAAG,iBAAgB,IAAG,oBAAmB,MAAI;AAAE,GAAC,eAAc,IAAG,kBAAiB,MAAI;AAAA,GAAG,gBAAe,MAAI;AAAA,EAAE,CAAC,GAAEuZ,KAAG,MAAI3Y,GAAE0Y,EAAE;AAAE,SAASE,GAAG,EAAC,GAAGlZ,EAAC,GAAE;AAAC,QAAK,EAAC,QAAOD,GAAE,OAAMD,EAAC,IAAEmZ,GAAE,GAAG,EAAC,kBAAiBhZ,EAAC,IAAEF;AAAE,SAAOF,EAAE0C,IAAE,EAAC,WAAU,IAAG,GAAGvC,GAAE,UAAS,CAACN,EAAE6C,GAAE,OAAM,EAAC,KAAI,MAAK,MAAKtC,IAAE,mBAAmBA,CAAC,KAAG,iBAAgB,MAAK,QAAO,CAAC,GAAEP,EAAE6C,GAAE,aAAY,EAAC,WAAU,iBAAgB,UAAS7C,EAAE6C,GAAE,YAAW,EAAC,SAAQ,UAAS,MAAK,SAAQ,MAAK,MAAK,SAAQ,MAAIzC,EAAG,EAAA,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC;AAAC;AAAC,SAASqZ,GAAG,EAAC,WAAUnZ,GAAE,cAAaD,GAAE,GAAGD,EAAC,GAAE;AAAC,QAAMG,IAAEC,EAAE,iBAAgBF,CAAC,GAAE,EAAC,QAAOK,GAAE,gBAAeC,EAAC,IAAE2Y,MAAK,EAAC,YAAW1Y,GAAE,kBAAiBC,GAAE,eAAcC,GAAE,cAAaC,GAAE,sBAAqBC,GAAE,0BAAyBC,GAAE,eAAcO,GAAE,eAAcC,EAAC,IAAEgY,GAAI,GAAC/X,IAAEtB,KAAGO,GAAEqB,IAAE,0CAA0CtB,EAAE,YAAY;AAAsG,SAAOR,EAAE,QAAO,EAAC,WAAUI,GAAE,IAAG,YAAW,UAAS,CAAAP,MAAG2B,EAAE3B,CAAC,GAAE,GAAGI,GAAE,UAAS,CAACJ,EAAEa,GAAE,EAAC,UAASb,EAAE,KAAI,EAAC,UAASiC,EAAC,CAAC,EAAC,CAAC,GAAEjC,EAAEyB,GAAE,EAAE,GAAEzB,EAAE0B,GAAE,CAAE,CAAA,GAAE1B,EAAEc,GAAE,EAAE,GAAEd,EAAEe,GAAE,EAAC,UAAS,GAAE,CAAC,GAAEf,EAAEgB,GAAE,EAAC,UAAS,GAAE,CAAC,GAAWL,EAAE,wBAAX,SAA+BX,EAAEiB,GAAE,CAAE,CAAA,IAAEjB,EAAEkB,GAAE,CAAE,CAAA,CAAC,EAAC,CAAC;AAAC;AAAC,SAASyY,GAAG,EAAC,GAAGrZ,EAAC,GAAE;AAAC,QAAK,EAAC,eAAcD,EAAC,IAAEqZ,GAAE,GAAG,EAAC,SAAQtZ,GAAE,kBAAiBG,GAAE,cAAaI,GAAE,eAAcC,EAAC,IAAE2Y,GAAI;AAAC,SAAOvZ,EAAEgD,IAAE,EAAC,GAAG1C,GAAE,UAASH,EAAE,OAAMI,IAAE,EAAC,WAAU,6BAA4B,UAAS,CAACP,EAAEuB,IAAE,EAAC,UAASvB,EAAE,KAAI,EAAC,UAASW,EAAE,MAAK,CAAC,EAAC,CAAC,GAAEX,EAAEkP,IAAG,EAAC,OAAM,SAAQ,MAAK,QAAO,CAAC,CAAC,EAAC,IAAE,EAAC,WAAU,6BAA4B,UAAS,CAAC/O,EAAEoB,IAAE,EAAC,UAAS,CAACvB,EAAE,KAAI,EAAC,WAAoBW,EAAE,SAAZ,UAAiB,kBAAgB,IAAG,UAASA,EAAE,MAAK,CAAC,GAAEC,KAAGZ,EAAE,KAAI,EAAC,MAAKY,GAAE,SAAQ,CAAAZ,MAAG;AAAC,IAAAA,EAAE,eAAgB,GAACI,EAAEQ,CAAC;AAAA,EAAC,GAAE,UAASA,EAAC,CAAC,CAAC,EAAC,CAAC,GAAEZ,EAAEK,GAAE,CAAE,CAAA,CAAC,EAAC,CAAC,EAAC,CAAC;AAAC;AAAC,SAASuZ,GAAG,EAAC,WAAU,GAAE,GAAG,EAAC,GAAE;AAAC,QAAK,EAAC,aAAYvZ,EAAC,IAAEqZ,GAAE,GAAG,EAAC,OAAM,EAAC,IAAEH;AAAK,SAAOvZ,EAAE4C,IAAE,EAAC,WAAU,GAAE,GAAG,GAAE,UAAS5C,EAAEK,GAAE,EAAC,SAAQ,MAAI,EAAG,EAAA,CAAC,EAAC,CAAC;AAAC;AAAC,SAASwZ,GAAG,EAAC,WAAUvZ,GAAE,GAAGD,EAAC,GAAE;AAAC,QAAK,EAAC,cAAaD,GAAE,cAAaG,GAAE,aAAYI,EAAC,IAAE+Y,GAAI,GAAC,EAAC,OAAM9Y,GAAE,iBAAgBC,EAAC,IAAE0Y;AAAK,SAAO1Y,IAAEb,EAAE4C,IAAE,EAAC,WAAUtC,GAAE,GAAGD,GAAE,UAASL,EAAEW,GAAE,EAAC,MAAK,SAAQ,SAAQ,MAAIC,EAAC,EAAE,CAAC,EAAC,CAAC,IAAET,EAAEyC,IAAE,EAAC,WAAUtC,GAAE,GAAGD,GAAE,UAAS,CAACL,EAAEI,GAAE,EAAE,GAAEJ,EAAEO,GAAE,EAAC,SAAQ,MAAIK,EAAG,EAAA,CAAC,CAAC,EAAC,CAAC;AAAC;AAAC,SAASkZ,GAAG,EAAC,MAAK,IAAE,UAAS,GAAG,EAAC,GAAE;AAAC,SAAO9Z,EAAEwB,IAAE,EAAC,MAAK,YAAW,MAAK,UAAS,SAAQ,WAAU,MAAK,GAAE,GAAG,EAAC,CAAC;AAAC;AAAC,SAASuY,GAAG,EAAC,MAAK,IAAE,UAAS,GAAG,EAAC,GAAE;AAAC,SAAO/Z,EAAEwB,IAAE,EAAC,SAAQ,QAAO,MAAK,GAAE,GAAG,EAAC,CAAC;AAAC;AAAC,SAASwY,GAAG,EAAC,GAAG,EAAC,GAAE;AAAC,SAAOha,EAAEwB,IAAE,EAAC,SAAQ,WAAU,GAAG,EAAC,CAAC;AAAC;AAAC,SAASyY,GAAG,EAAC,WAAU,IAAE,IAAG,WAAU,GAAE,OAAM5Z,GAAE,MAAK,GAAE,UAAS,GAAE,GAAGM,EAAC,GAAE;AAAC,SAAO,IAAEX,EAAEuB,IAAE,EAAC,WAAU,GAAE,OAAMlB,GAAE,MAAK,GAAE,GAAGM,GAAE,UAAS,EAAC,CAAC,IAAE;AAAI;AAAC,SAASuZ,GAAG,EAAC,WAAU,IAAE,IAAG,WAAU,GAAE,OAAM7Z,IAAE,eAAc,MAAK,GAAE,UAAS,IAAE,IAAG,UAASM,GAAE,GAAGC,EAAC,GAAE;AAAC,SAAO,IAAEZ,EAAEuB,IAAE,EAAC,WAAU,GAAE,MAAK,GAAE,OAAM,IAAG,GAAGX,GAAE,UAASZ,EAAE2P,IAAG,EAAC,IAAG,eAAc,MAAK,eAAc,OAAMtP,GAAE,UAAS,GAAE,UAASM,EAAC,CAAC,EAAC,CAAC,IAAE;AAAI;AAAC,SAASwZ,GAAG,EAAC,WAAU,GAAE,WAAU,GAAE,OAAM9Z,IAAE,yBAAwB,MAAK,GAAE,YAAW,GAAE,UAASM,IAAE,IAAG,UAASC,GAAE,GAAGC,EAAC,GAAE;AAAC,QAAK,EAAC,QAAOC,EAAC,IAAEyY,MAAK,IAAE,KAAGzY,EAAE,cAAaE,IAAE,KAAGF,EAAE;AAAa,SAAO,KAAGE,IAAEhB,EAAEuB,IAAE,EAAC,WAAU,GAAE,MAAK,GAAE,GAAGV,GAAE,UAASb,EAAE2P,IAAG,EAAC,IAAG,gBAAe,MAAK,gBAAe,OAAMtP,GAAE,OAAMW,GAAE,UAASL,GAAE,UAASC,EAAC,CAAC,EAAC,CAAC,IAAE;AAAI;AAAC,SAASwZ,GAAG,EAAC,WAAU,GAAE,WAAU,GAAE,OAAM/Z,IAAE,2BAA0B,MAAK,GAAE,YAAW,GAAE,UAASM,IAAE,IAAG,UAASC,GAAE,GAAGC,EAAC,GAAE;AAAC,QAAK,EAAC,QAAOC,EAAC,IAAEyY,GAAI,GAAC,IAAE,KAAGzY,EAAE,qBAAoBE,IAAE,KAAGF,EAAE;AAAgB,SAAO,KAAGE,IAAEhB,EAAEuB,IAAE,EAAC,WAAU,GAAE,MAAK,GAAE,GAAGV,GAAE,UAASb,EAAE2P,IAAG,EAAC,IAAG,mBAAkB,MAAK,mBAAkB,OAAMtP,GAAE,OAAMW,GAAE,UAASL,GAAE,UAASC,EAAC,CAAC,EAAC,CAAC,IAAE;AAAI;AAAC,SAASyZ,GAAG,EAAC,WAAU,IAAE,IAAG,WAAU,GAAE,OAAMha,IAAE,eAAc,MAAK,GAAE,UAASM,IAAE,IAAG,UAASC,GAAE,aAAYC,GAAE,oBAAmBC,GAAE,GAAGC,EAAC,GAAE;AAAC,QAAMC,IAAER,EAAE,qBAAoB,CAAC,GAAE,EAAC,QAAOS,EAAC,IAAEsY,GAAI,GAACrY,IAAEL,KAAGI,EAAE,aAAYQ,IAAEX,KAAGG,EAAE,oBAAmBS,IAAEnB,GAAG,CAAAP,MAAG,CAAC,CAACyB,KAAQA,EAAE,QAAQzB,CAAC,MAAhB,IAAmB,CAACyB,CAAC,CAAC;AAAE,SAAO,IAAE,CAACP,KAAGA,EAAE,UAAQ,IAAElB,EAAEuB,IAAE,EAAC,OAAM,eAAc,UAASvB,EAAE,KAAI,EAAC,UAAS,iBAAgB,CAAC,EAAC,CAAC,IAAEA,EAAEuB,IAAE,EAAC,WAAUP,GAAE,OAAMX,GAAE,MAAK,GAAE,GAAGU,GAAE,UAASf,EAAE,OAAM,EAAC,WAAU,oBAAmB,UAASkB,EAAE,IAAK,CAAAf,MAAGH,EAAE4P,IAAG,EAAC,IAAGzP,EAAE,IAAG,MAAKA,EAAE,IAAG,OAAMA,EAAE,MAAK,UAASQ,GAAE,UAASC,GAAE,gBAAec,EAAEvB,EAAE,QAAQ,EAAC,GAAEA,EAAE,EAAE,CAAC,EAAE,CAAC,EAAC,CAAC,IAAE;AAAI;AAAC,SAASma,GAAG,EAAC,WAAU,IAAE,IAAG,WAAU,GAAE,OAAMja,IAAE,eAAc,MAAK,GAAE,UAASM,IAAE,IAAG,UAASC,GAAE,YAAWC,GAAE,oBAAmBC,GAAE,GAAGC,EAAC,GAAE;AAAC,QAAK,EAAC,QAAOC,GAAE,sBAAqBC,EAAC,IAAEsY,MAAKrY,IAAEL,KAAGI,GAAEQ,IAAEX,KAAGE,EAAE,oBAAmBU,IAAEnB,GAAG,CAAAP,MAAG,CAAC,CAACyB,KAAQA,EAAE,QAAQzB,CAAC,MAAhB,IAAmB,CAACyB,CAAC,CAAC;AAAE,SAAO,IAAE,CAACP,KAAGA,EAAE,UAAQ,IAAElB,EAAE,KAAI,EAAC,UAAS,iBAAgB,CAAC,IAAEA,EAAEuB,IAAE,EAAC,WAAU,GAAE,OAAMlB,GAAE,MAAK,GAAE,GAAGU,GAAE,UAASf,EAAE,OAAM,EAAC,WAAU,wBAAuB,UAASkB,EAAE,IAAK,CAAAf,MAAGH,EAAE8P,IAAG,EAAC,IAAG3P,GAAE,MAAKA,GAAE,OAAM,SAAQ,OAAMA,GAAE,UAASQ,GAAE,UAASC,GAAE,gBAAec,EAAEvB,CAAC,EAAC,GAAEA,CAAC,GAAG,CAAC,EAAC,CAAC,IAAE;AAAI;AAAC,SAASoa,GAAG,EAAC,WAAUja,GAAE,OAAMD,GAAE,MAAKD,GAAE,WAAUG,IAAE,IAAG,qBAAoBI,GAAE,iBAAgBC,IAAE,sBAAqB,oBAAmBC,GAAE,gBAAeC,IAAE,cAAa,UAASC,IAAE,IAAG,UAASC,GAAE,GAAGC,EAAC,GAAE;AAAC,QAAMC,IAAEV,EAAE,qBAAoBF,CAAC,GAAE,EAAC,QAAOmB,GAAE,iBAAgBC,GAAE,oBAAmBC,EAAC,IAAE4X,GAAE;AAAG,MAAG,CAAChZ;AAAE,WAAO;AAAK,QAAM0B,IAAEtB,KAAGc,EAAE,kBAAiB1B,IAAEc,KAAGY,EAAE;AAAU,SAAOtB,EAAEoB,IAAE,EAAC,WAAUL,GAAE,MAAKd,GAAE,OAAMC,GAAE,GAAGY,GAAE,UAAS,CAACgB,KAAGjC,EAAE8P,IAAG,EAAC,IAAG,oBAAmB,MAAK,oBAAmB,OAAMlP,GAAE,OAAM,SAAQ,UAASG,GAAE,UAASC,GAAE,gBAAeiB,EAAC,CAAC,GAAElC,KAAGC,EAAE8P,IAAG,EAAC,UAAS,MAAI;AAAC,IAAAnO,EAAE,CAACD,CAAC;AAAA,EAAC,GAAE,IAAG,aAAY,MAAK,aAAY,OAAMZ,GAAE,OAAM,SAAQ,UAASC,GAAE,UAASC,GAAE,gBAAejB,EAAC,CAAC,CAAC,EAAC,CAAC;AAAC;AAAC,SAASya,GAAG,EAAC,WAAU,IAAE,IAAG,WAAU,GAAE,OAAMna,IAAE,cAAa,MAAK,IAAE,uCAAsC,aAAY,IAAE,qDAAoD,UAASM,GAAE,UAASC,GAAE,GAAGC,EAAC,GAAE;AAAC,QAAK,EAAC,QAAOC,GAAE,iBAAgB,EAAC,IAAEyY,GAAI,GAACvY,IAAE,KAAGF,EAAE,WAAU,IAAEH,KAAQG,EAAE,wBAAP;AAA2B,SAAOE,KAAG,IAAEhB,EAAEuB,IAAE,EAAC,WAAU,GAAE,MAAK,GAAE,GAAGV,GAAE,UAASb,EAAE0P,IAAG,EAAC,IAAG,eAAc,MAAK,eAAc,OAAMrP,GAAE,aAAY,GAAE,UAAS,GAAE,UAASO,GAAE,cAAaE,EAAE,eAAa,GAAE,CAAC,EAAC,CAAC,IAAE;AAAI;AAAC,MAAM2Z,KAAG,EAAC,QAAOjB,IAAG,MAAKC,IAAG,QAAOE,IAAG,eAAcC,IAAG,eAAcC,IAAG,cAAaC,IAAG,cAAaC,IAAG,aAAYC,IAAG,YAAWC,IAAG,kBAAiBC,IAAG,eAAcC,IAAG,cAAaC,IAAG,sBAAqBC,IAAG,0BAAyBC,IAAG,eAAcC,IAAG,eAAcC,GAAE,GAAEE,KAAG/Z,GAAE8Z,EAAE,GAAEE,KAAGzZ,GAAG,CAAC,EAAC,UAAS,GAAE,YAAW,EAAC,MAAI;AAAC,QAAMb,IAAES,GAAG,OAAK,EAAC,GAAG2Z,IAAG,GAAG,EAAC,IAAI,CAAC,CAAC,CAAC;AAAE,SAAOza,EAAE0a,GAAG,UAAS,EAAC,OAAMra,GAAE,UAAS,EAAC,CAAC;AAAC,CAAC;AAAG,SAASqZ,GAAG1Z,GAAE;AAAC,SAAM,EAAC,GAAGY,GAAE8Z,EAAE,GAAE,GAAG1a,EAAC;AAAC;AAA+J2a,GAAG,cAAY;AAA+7I,SAASC,GAAG,EAAC,WAAUta,GAAE,OAAMD,IAAE,WAAU,GAAGD,EAAC,GAAE;AAAC,QAAMG,IAAEC,EAAE,2CAA0CF,CAAC,GAAE,EAAC,oBAAmBK,GAAE,uBAAsBC,GAAE,0BAAyBC,GAAE,eAAcC,GAAE,iBAAgBC,EAAC,IAAE8Z,MAAK7Z,IAAEmP,GAAE;AAAG,SAAOnQ,EAAE,OAAM,EAAC,WAAUO,GAAE,GAAGH,GAAE,UAASD,EAAEoB,IAAE,EAAC,OAAMlB,GAAE,UAAS,CAACW,KAAGhB,EAAEW,GAAE,EAAE,GAAEX,EAAEY,GAAE,CAAE,CAAA,GAAEI,KAAGhB,EAAEa,GAAE,CAAA,CAAE,GAAEG,KAAGhB,EAAEc,GAAE,EAAE,GAAEE,KAAGhB,EAAEe,GAAE,CAAE,CAAA,CAAC,EAAC,CAAC,EAAC,CAAC;AAAC;AAAC,IAAI+Z,KAAG,IAAI,MAAK;AAAA,EAAL;AAAM,IAAAzF,GAAA,oBAAW;AAAG,IAAAA,GAAA;AAAU,IAAAA,GAAA,kBAASgE;AAAK,IAAAhE,GAAA;AAAc,IAAAA,GAAA;AAAsB,IAAAA,GAAA,uBAAc,CAAE;AAAC,IAAAA,GAAA,8BAAqB;AAAA;AAAA,EAAG,KAAKrV,GAAE;;AAAC,QAAG,KAAK;AAAW;AAAO,SAAK,aAAW,IAAG,KAAK,KAAGA,GAAE,KAAK,SAAO,KAAK,GAAG,OAAO,UAAU,eAAe;AAAE,UAAMG,IAAE,KAAK,GAAG,WAAW,eAAcG,MAAEkC,KAAAD,IAAApC,KAAA,gBAAAA,EAAG,mBAAH,gBAAAoC,EAAmB,WAAnB,gBAAAC,EAA2B,iBAAc,SAAQnC,MAAEkV,KAAAD,IAAAnV,KAAA,gBAAAA,EAAG,mBAAH,gBAAAmV,EAAmB,WAAnB,gBAAAC,EAA2B,iBAAc;AAAO,SAAK,OAAO,aAAajV,CAAC,GAAE,KAAK,OAAO,aAAaD,CAAC,GAAE,KAAK,OAAO,KAAK,sCAAsC,GAAE,KAAK,yBAAwB,KAAK,UAAS;AAAA,EAAE;AAAA,EAAC,yBAAyBL,GAAE;AAAC,WAAO,KAAK,SAAS,IAAI,+BAA8BA,CAAC;AAAA,EAAC;AAAA,EAAC,uBAAuBA,GAAE;AAAC,WAAO,KAAK,SAAS,IAAI,4BAA2BA,CAAC;AAAA,EAAC;AAAA,EAAC,uBAAuBA,GAAE;AAAC,WAAO,KAAK,SAAS,IAAI,4BAA2BA,CAAC;AAAA,EAAC;AAAA,EAAC,iBAAiBA,GAAE;AAAC,WAAO,KAAK,SAAS,IAAI,sBAAqBA,CAAC;AAAA,EAAC;AAAA,EAAC,MAAM,uBAAsB;;AAAC,UAAMA,IAAE,QAAMuC,IAAA,KAAK,OAAL,gBAAAA,EAAS,cAAc;AAAQ,QAAG,CAACvC;AAAE,YAAM,IAAI,MAAM,6DAA6D;AAAE,WAAOA,EAAE,IAAK,OAAG,KAAK,eAAe,CAAC,CAAG;AAAA,EAAA;AAAA,EAAC,MAAM,mBAAkB;AAAC,QAAG,KAAK;AAAG,aAAO,MAAM,KAAK,GAAG,cAAc;AAAmB,UAAM,IAAI,MAAM,yEAAyE;AAAA,EAAC;AAAA,EAAC,YAAW;;AAAC,QAAG,KAAK;AAAuB,cAAOuC,IAAA,KAAK,OAAL,gBAAAA,EAAS,cAAc,MAAM;AAAA,EAAM;AAAA,EAAC,YAAW;;AAAC,QAAG,KAAK,qBAAoB;AAAG,cAAOA,IAAA,KAAK,OAAL,gBAAAA,EAAS,cAAc,MAAM;AAAA,EAAM;AAAA,EAAC,WAAU;;AAAC,YAAOA,IAAA,KAAK,WAAL,QAAAA,EAAa,MAAM,gCAA8BC,IAAA,KAAK,OAAL,gBAAAA,EAAS,cAAc;AAAA,EAAU;AAAA,EAAC,cAAa;;AAAC,YAAOD,IAAA,KAAK,WAAL,QAAAA,EAAa,MAAM,oCAAkCC,IAAA,KAAK,OAAL,gBAAAA,EAAS,cAAc;AAAA,EAAU;AAAA,EAAC,UAAUxC,GAAE;;AAAC,WAAkB,SAAOuC,IAAA,KAAK,OAAL,gBAAAA,EAAS,eAAe,aAA3C,aAAqDvC,EAAE,SAAO,MAAGwC,IAAA,KAAK,WAAL,QAAAA,EAAa,MAAM,2CAA0C,QAAQ,QAAO,OAAK8S,IAAA,KAAK,WAAL,QAAAA,EAAa,MAAM,mCAAmC,KAAK,UAAUtV,EAAE,KAAK,IAAI,CAAC,CAAC,OAAKuV,IAAA,KAAK,OAAL,gBAAAA,EAAS,eAAe,UAAUvV,CAAC,KAAG,QAAQ,OAAO,IAAI,MAAM,oDAAoD,CAAC;AAAA,EAAC;AAAA,EAAC,MAAMA,GAAE;;AAAC,YAAOuC,IAAA,KAAK,WAAL,QAAAA,EAAa,MAAM,gCAAgCvC,CAAC,MAAIwC,IAAA,KAAK,OAAL,gBAAAA,EAAS,cAAc,MAAMxC;AAAA,EAAE;AAAA,EAAC,OAAOA,GAAEG,GAAE;;AAAC,YAAOoC,IAAA,KAAK,WAAL,QAAAA,EAAa,MAAM,iCAAiCvC,CAAC,QAAQG,CAAC,QAAMqC,IAAA,KAAK,OAAL,gBAAAA,EAAS,cAAc,OAAOxC,GAAEG;AAAA,EAAE;AAAA,EAAC,WAAWH,GAAEG,GAAE;;AAAC,WAAkB,SAAOoC,IAAA,KAAK,OAAL,gBAAAA,EAAS,eAAe,cAA3C,aAAsDvC,EAAE,SAAO,MAAGwC,IAAA,KAAK,WAAL,QAAAA,EAAa,MAAM,4CAA2C,QAAQ,eAAY8S,IAAA,KAAK,WAAL,QAAAA,EAAa,MAAM,mCAAmC,KAAK,UAAUtV,EAAE,KAAK,IAAI,CAAC,CAAC,QAAQG,CAAC,SAAOoV,IAAA,KAAK,OAAL,gBAAAA,EAAS,eAAe,WAAWvV,GAAEG,CAAC,KAAG,QAAQ,OAAO,IAAI,MAAM,oDAAoD,CAAC;AAAA,EAAC;AAAA,EAAC,SAASH,GAAEG,GAAE;;AAAC,YAAOoC,IAAA,KAAK,WAAL,QAAAA,EAAa,MAAM,oBAAoBvC,CAAC,OAAOG,CAAC,MAAIqC,IAAA,KAAK,OAAL,gBAAAA,EAAS,cAAc,SAASxC,GAAEG;AAAA,EAAE;AAAA,EAAC,UAAUH,GAAEG,GAAE;;AAAC,WAAkB,SAAOoC,IAAA,KAAK,OAAL,gBAAAA,EAAS,eAAe,aAA3C,aAAqDvC,EAAE,SAAO,MAAGwC,IAAA,KAAK,WAAL,QAAAA,EAAa,MAAM,sCAAsCrC,CAAC,uBAAsB,QAAQ,QAAS,OAAGmV,IAAA,KAAK,WAAL,QAAAA,EAAa,MAAM,oBAAoB,KAAK,UAAUtV,EAAE,KAAK,IAAI,CAAC,CAAC,OAAOG,CAAC,OAAKoV,IAAA,KAAK,OAAL,gBAAAA,EAAS,eAAe,UAAUvV,GAAEG,CAAC,KAAG,QAAQ,OAAO,IAAI,MAAM,oDAAoD,CAAC;AAAA,EAAC;AAAA,EAAC,wBAAuB;;AAAC,UAAMH,IAAc,SAAOuC,IAAA,KAAK,OAAL,gBAAAA,EAAS,eAAe,aAA3C,cAAkE,SAAOC,IAAA,KAAK,OAAL,gBAAAA,EAAS,eAAe,aAA3C,cAAkE,SAAO8S,IAAA,KAAK,OAAL,gBAAAA,EAAS,eAAe,cAA3C;AAAsD,SAAK,uBAAqBtV;AAAA,EAAC;AAAA,EAAC,UAAUA,GAAE;;AAAC,YAAOuC,IAAA,KAAK,WAAL,QAAAA,EAAa,MAAM,qBAAqB,KAAK,UAAUvC,CAAC,CAAC,MAAIwC,IAAA,KAAK,OAAL,gBAAAA,EAAS,cAAc,UAAUxC;AAAA,EAAE;AAAA,EAAC,UAAUA,GAAE;;AAAC,YAAOuC,IAAA,KAAK,OAAL,gBAAAA,EAAS,cAAc,UAAUvC;AAAA,EAAE;AAAA,EAAC,YAAW;;AAAC,KAAAuC,IAAA,KAAK,OAAL,QAAAA,EAAS,cAAc,SAAU,CAAAvC,MAAG;;AAAC,OAAAuC,IAAA,KAAK,WAAL,QAAAA,EAAa,MAAM,iDAAiD,KAAK,UAAUvC,CAAC,CAAC,KAAI,KAAK,eAAeA,CAAC,GAAE,KAAK,cAAc,QAAQA,CAAC,GAAE,KAAK,SAAS,QAAQ,4BAA2B,CAAC,GAAG,KAAK,aAAa,CAAC;AAAA,IAAC,KAAIwC,IAAA,KAAK,OAAL,QAAAA,EAAS,cAAc,eAAgB,CAAC,EAAC,IAAGxC,EAAC,GAAEG,MAAI;;AAAC,OAAAoC,IAAA,KAAK,WAAL,QAAAA,EAAa,MAAM,uDAAuDvC,CAAC,QAAQG,KAAA,gBAAAA,EAAG,UAAU,MAAK,KAAK,gBAAc,KAAK,cAAc,IAAK,CAAAG,MAAC;;AAAE,eAAAA,EAAE,OAAKN,MAAGuC,IAAA,KAAK,WAAL,QAAAA,EAAa,MAAM,GAAGjC,EAAE,EAAE,iCAAiCA,EAAE,KAAK,SAASH,KAAA,gBAAAA,EAAG,UAAU,MAAK,OAAO,OAAOG,GAAE,EAAC,OAAMH,EAAC,CAAC,KAAGG;AAAA,UAAI,KAAK,SAAS,QAAQ,4BAA2B,KAAK,aAAa;AAAA,IAAC,KAAIgV,IAAA,KAAK,OAAL,QAAAA,EAAS,iBAAe,mBAAkB,KAAK,GAAG,iBAA2B,OAAO,KAAK,GAAG,cAAc,iBAAzC,gBAAwDC,IAAA,KAAK,OAAL,QAAAA,EAAS,cAAc,cAAe,CAACvV,GAAEG,MAAI;;AAAC,YAAMG,IAAEN,EAAE;AAAG,OAAAuC,IAAA,KAAK,WAAL,QAAAA,EAAa,MAAM,sDAAsDjC,CAAC,QAAQ,KAAK,UAAUH,CAAC,CAAC,MAAK,KAAK,gBAAc,KAAK,cAAc,IAAK,CAAAH,MAAC;;AAAE,eAAAA,EAAE,OAAKM,MAAGiC,IAAA,KAAK,WAAL,QAAAA,EAAa,MAAM,GAAGvC,EAAE,EAAE,gCAAgC,KAAK,UAAUA,EAAE,IAAI,CAAC,SAAS,KAAK,UAAUG,CAAC,CAAC,MAAK,OAAO,OAAOH,GAAE,EAAC,MAAKG,EAAC,CAAC,KAAGH;AAAA,OAAC,GAAG,KAAK,SAAS,QAAQ,4BAA2B,KAAK,aAAa;AAAA,IAAC,MAAIuF,IAAA,KAAK,OAAL,QAAAA,EAAS,cAAc,SAAU,CAAC,EAAC,IAAGvF,EAAC,MAAI;;AAAC,OAAAuC,IAAA,KAAK,WAAL,QAAAA,EAAa,MAAM,gDAAgDvC,CAAC,OAAM,KAAK,gBAAc,KAAK,cAAc,OAAQ,CAAAG,MAAGA,EAAE,OAAKH,CAAG,GAAC,KAAK,SAAS,QAAQ,4BAA2B,KAAK,aAAa;AAAA,IAAC,KAAI+a,IAAA,KAAK,OAAL,QAAAA,EAAS,cAAc,uBAAwB,CAAA/a,MAAG;;AAAC,OAAAuC,IAAA,KAAK,WAAL,QAAAA,EAAa,MAAM,8CAA8C,KAAK,UAAUvC,CAAC,CAAC,MAAK,KAAK,SAAS,QAAQ,4BAA2BA,CAAC;AAAA,IAAC,IAAI,KAAK,qBAAoB,OAAIgb,IAAA,KAAK,OAAL,QAAAA,EAAS,cAAc,MAAM,oBAAqB,CAAAhb,MAAG;;AAAC,OAAAuC,IAAA,KAAK,WAAL,QAAAA,EAAa,MAAM,mDAAmDvC,CAAC,OAAM,KAAK,iBAAeA,GAAE,KAAK,SAAS,QAAQ,+BAA8BA,CAAC;AAAA,IAAC;AAAA,EAAG;AAAA,EAAC,uBAAsB;AAAC,WAAgB,OAAO,UAAjB,aAA0B,EAAQ,OAAO,aAAY,EAAQ,OAAO;AAAA,EAAU;AAAA,EAAC,eAAeA,GAAE;;AAAC,YAAAuC,IAAAvC,EAAE,YAAF,QAAAuC,EAAW,QAAS,CAAApC,MAAG;AAAC,aAAO,OAAOA,GAAE,EAAC,SAAQ,OAAMG,MAAG;;AAAC,YAAG;AAAC,WAAAiC,IAAA,KAAK,WAAL,QAAAA,EAAa,KAAK,GAAGvC,EAAE,EAAE,IAAIG,EAAE,MAAM,oBAAmB,QAAMqC,IAAA,KAAK,OAAL,gBAAAA,EAAS,cAAc,MAAMxC,EAAE,IAAGG,EAAE,QAAOG;AAAA,QAAG,SAAON,GAAE;AAAC,WAAAsV,IAAA,KAAK,WAAL,QAAAA,EAAa,MAAM,mCAAkCtV;AAAA,QAAE;AAAA,MAAC,EAAC,CAAC;AAAA,IAAC,IAAu7B,OAAO,OAAOA,GAAz7B,EAAC,QAAO,OAAMG,IAAE,QAAM;;AAAC,OAAAoC,IAAA,KAAK,WAAL,QAAAA,EAAa,MAAM,GAAGvC,EAAE,EAAE,uCAAuCA,EAAE,KAAK,6BAA6BG,CAAC,OAAM,QAAMqC,IAAA,KAAK,OAAL,gBAAAA,EAAS,cAAc,OAAOxC,EAAE,IAAGG;AAAA,IAAG,GAAE,aAAY,OAAMA,MAAC;;AAAG,cAAAoC,IAAA,KAAK,WAAL,QAAAA,EAAa,MAAM,GAAGvC,EAAE,EAAE,uCAAuCA,EAAE,KAAK,OAAOG,CAAC,MAAIqC,IAAA,KAAK,OAAL,gBAAAA,EAAS,cAAc,SAASxC,EAAE,IAAGG;AAAA,OAAI,YAAW,OAAMA,MAAG;;AAAC,OAAAoC,IAAA,KAAK,WAAL,QAAAA,EAAa,MAAM,GAAGvC,EAAE,EAAE,oCAAoC,KAAK,UAAUG,CAAC,CAAC,MAAIqC,IAAA,KAAK,OAAL,QAAAA,EAAS,iBAAe,gBAAe,KAAK,GAAG,iBAA2B,OAAO,KAAK,GAAG,cAAc,cAAzC,aAAoD,MAAM,KAAK,GAAG,cAAc,WAAWxC,EAAE,IAAGG,CAAC,IAAE,QAAQ,IAAI,sCAAsC;AAAA,IAAC,GAAE,SAAQ,OAAMA,MAAG;;AAAC,UAAG;AAAC,SAAAoC,IAAA,KAAK,WAAL,QAAAA,EAAa,KAAK,GAAGvC,EAAE,EAAE,oBAAmB,QAAMwC,IAAA,KAAK,OAAL,gBAAAA,EAAS,cAAc,MAAMxC,EAAE,IAAG,QAAOG;AAAA,MAAG,SAAOA,GAAE;AAAC,SAAAmV,IAAA,KAAK,WAAL,QAAAA,EAAa,MAAM,yCAAyCtV,EAAE,EAAE,IAAGG;AAAA,MAAE;AAAA,IAAC,GAAE,QAAO,MAAI;AAAA,IAAA,GAAG,OAAM,YAAU;;AAAA,cAAAoC,IAAA,KAAK,WAAL,QAAAA,EAAa,KAAK,GAAGvC,EAAE,EAAE,mBAAkB,KAAK,MAAMA,EAAE,EAAE;AAAA,MAAE,CAA0B;AAAA,EAAC;AAAC;AAAE,SAASib,GAAGjb,GAAE;AAAC,QAAMG,IAAES,GAAEqB,EAAC,GAAE3B,IAAEH,KAAA,gBAAAA,EAAG,YAAWE,IAAE8P,GAAI,GAAC,CAAC/P,GAAEO,CAAC,IAAEE,GAAE,CAAA,CAAE,GAAE,CAACG,GAAEC,CAAC,IAAEJ,GAAE,CAAC,GAAEK,IAAE,YAAWO,IAAElB,GAAG,CAACP,IAAE,UAAQ;AAAC,QAAUK,MAAP;AAAS,aAAM,CAAE;AAAC,UAAMF,IAAE,CAAC,GAAGC,CAAC,EAAE,KAAM,CAACD,GAAEG,MAAI;AAAC,YAAMD,KAAGF,EAAE,SAAOA,EAAE,MAAM,YAAW,GAAGC,KAAGE,EAAE,SAAOA,EAAE,MAAM;AAAc,aAAcN,MAAR,QAAUK,EAAE,cAAcD,CAAC,IAAEA,EAAE,cAAcC,CAAC;AAAA,IAAC,CAAC;AAAG,QAAG,CAACA,GAAE;AAAC,YAAML,IAAEG,EAAE,UAAW,CAAAH,MAAGA,EAAE,SAAOkB,CAAG;AAAC,UAAQlB,MAAL,IAAO;AAAC,cAAK,CAACM,CAAC,IAAEH,EAAE,OAAOH,GAAE,CAAC;AAAE,QAAAG,EAAE,QAAQG,CAAC;AAAA,MAAC;AAAA,IAAC;AAAC,WAAOH;AAAA,EAAC,GAAG,CAACC,GAAEC,CAAC,CAAC,GAAE,IAAES,GAAG,MAAIW,EAAE,KAAK,GAAG,CAACA,CAAC,CAAC,GAAEE,IAAEb,GAAG,MAAIW,EAAE,MAAM,GAAG,CAACA,CAAC,CAAC;AAAEV,SAAAA,GAAG,MAAI;AAAC,QAAUV,MAAP,QAAUA;AAAE;AAAO,UAAML,IAAE,EAAC,OAAM,UAAS,MAAKkB,GAAE,QAAO,IAAG,gBAAe,EAAC,QAAO,GAAE,EAAC;AAAE,IAAAP,EAAG,CAAAR,MAAGA,EAAE,KAAM,CAAAA,MAAGA,EAAE,SAAOH,EAAE,QAAOG,IAAE,CAAC,GAAGA,GAAEH,CAAC,CAAC;AAAA,EAAE,GAAG,CAACK,CAAC,CAAC,GAAEU,GAAG,MAAI;AAAC,QAAG,CAACT;AAAE;AAAO,UAAMN,IAAEM,EAAE,WAAY,CAAAN,MAAG;AAAC,MAAAW,EAAG,CAAAR,MAAG,CAAC,GAAGA,GAAE,EAAC,OAAMH,EAAE,OAAM,MAAKA,EAAE,MAAK,QAAOA,EAAE,QAAO,gBAAeA,EAAE,eAAc,CAAC;IAAG,CAAC,GAAGG,IAAEG,EAAE,aAAc,CAAAN,MAAG;AAAC,MAAAW,EAAG,CAAAR,MAAGA,EAAE,OAAQ,CAAAA,MAAGA,EAAE,SAAOH,EAAE,IAAI,CAAI;AAAA,IAAA,IAAIK,IAAEC,EAAE,aAAc,CAAAN,MAAG;AAAC,MAAAW,EAAG,CAAAR,MAAG;AAAC,cAAMG,IAAEH,EAAE,KAAM,CAAAA,MAAGA,EAAE,SAAOH,EAAE,IAAI;AAAG,eAAM,CAAC,GAAGG,EAAE,OAAQ,CAAAA,MAAGA,EAAE,SAAOH,EAAE,IAAM,GAAC,EAAC,OAAMA,EAAE,OAAM,MAAKM,KAAA,gBAAAA,EAAG,MAAK,QAAOA,KAAA,gBAAAA,EAAG,QAAO,SAAQA,KAAA,gBAAAA,EAAG,SAAQ,gBAAeA,KAAA,gBAAAA,EAAG,eAAc,CAAC;AAAA,MAAC,CAAG;AAAA,IAAA;AAAI,WAAM,MAAI;AAAC,MAAAN,KAAIG,EAAG,GAACE,EAAG;AAAA,IAAA;AAAA,EAAC,GAAG,CAACC,CAAC,CAAC,GAAQ,EAAC,MAAKQ,GAAG,MAAI;AAAC,QAAG,EAACd,KAAA,QAAAA,EAAG,iBAAc,CAAC,MAAM,QAAQI,CAAC;AAAE,aAAOA;AAAE,UAAK,EAAC,SAAQD,IAAE,CAAA,GAAG,SAAQG,IAAE,GAAE,IAAEN,EAAE,cAAaK,IAAEF,EAAE,SAAS,GAAG,GAAEI,IAAED,EAAE,SAAS,GAAG;AAAE,QAAIK,IAAE;AAAE,UAAMC,IAAER,EAAE,IAAK,CAAAJ,MAAG;AAAC,YAAMM,IAAED,KAAGF,EAAE,SAASH,EAAE,IAAI,GAAEI,IAAE,CAACG,KAAGD;AAAE,aAAOF,KAAGO,KAAI,EAAC,GAAGX,GAAE,SAAQI,EAAC;AAAA,IAAC;AAAI,WAAOa,EAAEN,CAAC,GAAEC;AAAA,EAAC,GAAG,CAACZ,GAAEI,CAAC,CAAC,GAAE,aAAYY,GAAE,eAAc,GAAE,gBAAeW,GAAE,wBAAuBF,EAAC;AAAC;AAAC,SAASyZ,GAAGlb,GAAEG,GAAEG,GAAE;;AAA4iB,SAAM,EAAC,oBAA1iBQ,GAAG,MAAI;;AAAC,QAAG,CAACX,EAAE;AAAc,aAAM,CAAE;AAAC,UAAM,KAAmBC,IAAED,EAAE,aAArB,gBAA8B,WAAsBC,MAAb,aAAe,aAAW;AAAS,QAAIA;AAAE,UAAMG,IAAEP,EAAE,OAAQ,CAAAA,MAAcA,EAAE,UAAb,QAAoB,GAACW,IAAE,oBAAI;AAAI,eAAUX,KAAKO,GAAE;AAAC,YAAMJ,IAAEH,EAAE,CAAC,KAAG;AAAG,UAAGA,EAAE,YAAQwC,KAAAD,IAAAjC,KAAA,gBAAAA,EAAG,iBAAH,gBAAAiC,EAAiB,UAAjB,QAAAC,EAAwB,SAASxC,EAAE,aAASuV,KAAAD,IAAAhV,KAAA,gBAAAA,EAAG,iBAAH,gBAAAgV,EAAiB,UAAjB,QAAAC,EAAwB,SAAS;AAAK;AAAS,MAAA5U,EAAE,IAAIR,CAAC,KAAGQ,EAAE,IAAIR,GAAE,EAAC,KAAIA,GAAE,OAAM,CAAA,EAAE,CAAC;AAAE,YAAMC,IAAEO,EAAE,IAAIR,CAAC;AAAE,MAAAC,KAAGA,EAAE,MAAM,QAAQJ,CAAC;AAAA,IAAC;AAAC,WAAO,MAAM,KAAKW,EAAE,OAAM,CAAE,EAAE,OAAQ,CAAAX,MAAGA,EAAE,MAAM,KAAM,CAAAA,MAAcA,EAAE,UAAb,YAA8BA,EAAE,UAAZ,QAAqB;AAAA,EAAA,GAAG,CAACA,GAAEG,EAAE,eAAcA,EAAE,UAAQoC,IAAAjC,KAAA,gBAAAA,EAAG,iBAAH,gBAAAiC,EAAiB,KAAK,CAAC,EAA6B;AAAC;AAAC,SAAS4Y,GAAGnb,GAAE;AAAC,QAAK,CAACG,GAAEG,CAAC,IAAEO,GAAE,CAAE,CAAA;AAAE,SAAM,EAAC,uBAAsBV,GAAE,oBAAmB,CAACH,GAAEK,MAAI;AAAC,UAAMD,IAAED;AAAE,IAAAG,EAAED,IAAE,CAAC,GAAGD,GAAEJ,CAAC,IAAEI,EAAE,OAAQ,CAAAD,MAAGA,MAAIH,CAAC,CAAE;AAAA,EAAC,GAAE,wBAAuB,CAACG,GAAEE,MAAI;AAAC,QAAGA,GAAE;AAAC,UAAI,IAAE,CAAA;AAAG,cAAOF,GAAG;AAAA,QAAA,KAAI;AAAO,cAAEH,EAAE,OAAQ,CAAAA,MAAoBA,EAAE,UAAnB,kBAAmCA,EAAE,UAAX,MAAgB,EAAG,IAAK,CAAAA,MAAGA,EAAE;AAAK;AAAA,QAAM,KAAI;AAAS,cAAEA,EAAE,OAAQ,CAAAA,MAAcA,EAAE,UAAb,YAA8BA,EAAE,UAAZ,OAAmB,EAAC,IAAK,CAAAA,MAAGA,EAAE,EAAI;AAAC;AAAA,QAAM,KAAI;AAAU,cAAEA,EAAE,OAAQ,CAAAA,MAAeA,EAAE,UAAd,SAAqB,EAAC,IAAK,CAAAA,MAAGA,EAAE,EAAE;AAAG;AAAA,QAAM;AAAQ,cAAEA,EAAE,IAAK,CAAAA,MAAGA,EAAE;MAAI;AAAC,MAAAM,EAAE,CAAC;AAAA,IAAC;AAAM,MAAAA,EAAE,CAAA,CAAE;AAAA,EAAC,EAAC;AAAC;AAAC,MAAM8a,KAAG,UAASC,KAAG,UAASC,KAAG,YAAWC,KAAG,CAAC,QAAO,OAAM,UAAS,QAAO,UAAU,GAAEC,KAAG,EAAC,KAAIJ,IAAG,YAAW,GAAE,GAAEK,KAAG,oBAAI,IAAI,CAAC,wBAAuB,iBAAgB,iBAAgB,WAAU,yBAAwB,eAAc,aAAY,UAAS,0BAA0B,CAAC,GAAEC,KAAG,CAAA1b,MAAC;;AAAG,WAAC,sBAAqBA,EAAE,QAAO,eAAcA,EAAE,cAAa,iBAA0BuC,IAAAvC,EAAE,WAAF,gBAAAuC,EAAU,UAAtB,WAA2B,UAAQC,IAAAxC,EAAE,WAAF,gBAAAwC,EAAU,SAAQ,aAAYxC,EAAE,aAAY,uBAAsBA,EAAE,uBAAsB,WAAUA,EAAE,WAAU,QAAOA,EAAE,QAAO,0BAAyBA,EAAE,yBAAwB;AAAA,GAAG2b,KAAG,CAAA3b,MAAG,MAAM,KAAKA,EAAE,OAAQ,CAACA,GAAEG,MAAIH,EAAE,IAAIG,EAAE,IAAGA,CAAC,GAAG,oBAAI,KAAG,EAAE,OAAQ,CAAA;AAAE,SAASyb,KAAI;AAAC,QAAM5b,IAAEY,GAAEqB,EAAC,GAAE9B,IAAEW,GAAG,OAAK,EAAC,eAAc,IAAG,aAAY,IAAG,iBAAgB,KAAI,iBAAgB,IAAG,IAAI,CAAE,CAAA,GAAE,EAAC,UAASR,GAAE,aAAYD,EAAC,IAAE0P,GAAI,GAAC,CAAC3P,GAAEG,CAAC,IAAEM,GAAE,CAAE,CAAA,GAAE,CAAC,GAAEG,CAAC,IAAEH,GAAE,CAAE,CAAA,GAAE,CAACI,GAAEC,CAAC,IAAEL,GAAE,CAAE,CAAA,GAAE,CAACY,GAAEC,CAAC,IAAEb,GAAE,CAAC,GAAE,CAACc,GAAE5B,CAAC,IAAEc,GAAE,EAAE,GAAE,EAAC,MAAKZ,GAAE,aAAYC,EAAC,IAAE+a,GAAG7a,CAAC,GAAE,EAAC,oBAAmBI,EAAC,IAAE0a,GAAGja,GAAE,EAAC,eAAc,EAAE,iBAAe,IAAG,SAAQ,EAAE,WAAS,SAAQ,GAAE,EAAC,cAAab,EAAE,aAAY,CAAC,GAAE,EAAC,uBAAsBK,GAAE,oBAAmBC,GAAE,wBAAuBS,EAAC,IAAEga,GAAGla,CAAC;AAAE,EAAA6Z,GAAG,KAAK9a,CAAC,GAAEe,GAAG,MAAI;AAAC,KAAC,YAAS;AAAC,aAAM,YAAS;AAAC,YAAG;AAAC,gBAAMf,IAAE,MAAM8a,GAAG,iBAAgB;AAAG,UAAAva,EAAEP,CAAC,GAAEgB,EAAG,CAAAb,OAAI,EAAC,GAAGA,GAAE,GAAGub,GAAG1b,CAAC,EAAC;QAAI,SAAOA,GAAE;AAAC,kBAAQ,MAAM,iCAAgCA,CAAC;AAAA,QAAC;AAAA,MAAC,MAAK,OAAM,YAAS;AAAC,YAAG;AAAC,gBAAMA,IAAE,MAAM8a,GAAG,qBAAsB;AAAC,UAAA5Z,EAAEya,GAAG3b,CAAC,CAAC;AAAA,QAAC,SAAOA,GAAE;AAAC,kBAAQ,MAAM,iCAAgCA,CAAC;AAAA,QAAC;AAAA,MAAC;IAAI,GAAC,EAAI,MAAO,CAAAA,MAAG;AAAC,cAAQ,MAAM,oCAAmCA,CAAC;AAAA,IAAC,CAAC,GAAGoB,EAAC;AAAA,EAAE,GAAG,CAAA,CAAE,GAAEL,GAAG,MAAI;AAAC,IAAAC,EAAG,CAAAhB,OAAI,EAAC,GAAGA,GAAE,eAAcM,EAAE,iBAAeH,EAAE,eAAc,aAAYG,EAAE,eAAaH,EAAE,aAAY,iBAAgBG,EAAE,mBAAiBH,EAAE,iBAAgB,iBAAgBG,EAAE,mBAAiBH,EAAE,gBAAe,EAAI;AAAA,EAAA,GAAG,CAACG,GAAEH,CAAC,CAAC,GAAEY,GAAG,MAAI;AAAC,UAAMf,IAAE8a,GAAG,uBAAwB,CAAA9a,MAAG;AAAC,MAAAkB,EAAEya,GAAG3b,CAAC,CAAC;AAAA,IAAC,CAAC,GAAGG,IAAE2a,GAAG,uBAAwB,CAAA9a,MAAG;AAAC,YAAMG,IAAEub,GAAG1b,CAAC;AAAE,MAAAO,EAAG,CAAAJ,OAAI,EAAC,GAAGA,GAAE,GAAGH,EAAC,EAAI,GAACgB,EAAG,CAAAhB,OAAI,EAAC,GAAGA,GAAE,GAAGG,EAAC,EAAE;AAAA,IAAE,CAAG,GAACG,IAAEwa,GAAG,iBAAkB,CAAA9a,MAAG;AAAC,MAAA0B,EAAE1B,CAAC;AAAA,IAAC;AAAI,WAAM,MAAI;AAAC,MAAAA,EAAG,GAACG,EAAG,GAACG,EAAG;AAAA,IAAA;AAAA,EAAC,GAAG,EAAE;AAAE,QAAMc,IAAE,MAAI;AAAC,IAAArB,EAAE+a,GAAG,oBAAoB;AAAA,EAAC,GAAEzZ,IAAE,OAAMrB,MAAG;AAAC,UAAM8a,GAAG,UAAU9a,CAAC;AAAA,EAAC;AAAE,SAAM,EAAC,OAAM,CAAAA,MAAG8a,GAAG,MAAM9a,CAAC,GAAE,UAAS,MAAI8a,GAAG,YAAW,UAAS,GAAE,WAAU,YAAS;AAAC,UAAMA,GAAG,UAAW;AAAA,EAAA,GAAE,WAAU,YAAS;AAAC,UAAMA,GAAG,UAAW;AAAA,EAAA,GAAE,YAAWzZ,GAAE,aAAY,MAAIyZ,GAAG,eAAc,aAAY,OAAM9a,MAAG;AAAC,UAAMG,IAAE,OAAO,KAAKH,CAAC,EAAE,CAAC;AAAE,QAAG,CAACyb,GAAG,IAAItb,CAAC;AAAE,aAAO,KAAKE,EAAEL,CAAC;AAAE,UAAMM,KAAG,CAACN,GAAEG,MAAI;AAAC,YAAMG,KAAG,CAAAN,QAAI,EAAC,sBAAqB,CAAAA,OAAI,EAAC,QAAOA,EAAC,IAAG,eAAc,CAAAA,OAAI,EAAC,cAAaA,EAAC,IAAG,eAAc,CAAAG,MAAC;;AAAG,iBAAC,QAAO,EAAC,MAAKA,IAAE,YAAU,UAAS,UAAQoC,KAAAvC,GAAE,WAAF,gBAAAuC,GAAU,QAAO,EAAC;AAAA,SAAG,SAAQ,CAAApC,MAAC;;AAAG,iBAAC,QAAO,EAAC,OAAKoC,KAAAvC,GAAE,WAAF,gBAAAuC,GAAU,MAAK,SAAQpC,EAAC,EAAC;AAAA,SAAG,uBAAsB,CAAAH,OAAI,EAAC,uBAAsBA,EAAC,IAAG,aAAY,CAAAA,OAAI,EAAC,aAAYA,EAAC,IAAG,WAAU,CAAAA,OAAI,EAAC,WAAUA,EAAC,IAAG,QAAO,CAAAA,OAAI,EAAC,QAAOA,EAAC,IAAG,0BAAyB,CAAAA,OAAI,EAAC,0BAAyBA,EAAC,GAAE,IAAIG,CAAC,GAAEE,IAAE,OAAO,KAAKL,CAAC,EAAE,CAAC,GAAEI,KAAEJ,EAAEK,CAAC;AAAE,aAAOA,KAAYD,OAAT,UAAYE,EAAED,CAAC,IAAEC,EAAED,CAAC,EAAED,EAAC,IAAE,CAAA;AAAA,IAAE,GAAGJ,GAAEI,CAAC;AAAE,IAAAE,KAAG,MAAMwa,GAAG,UAAUxa,CAAC;AAAA,EAAC,GAAE,SAAQL,GAAE,eAAc,OAAMD,MAAG;AAAC,mBAAcA,IAAE,MAAMqB,EAAE,EAAC,SAAQrB,EAAE,YAAU,CAAC,GAAG,IAAE,IAAG,SAAQA,EAAE,YAAU,CAAA,IAAG,CAAC,GAAG,EAAC,CAAC,IAAE,UAASA,KAAG,MAAMqB,EAAE,EAAC,OAAMrB,EAAE,OAAK,CAAC,GAAG,IAAE,CAAE,EAAA,CAAC;AAAA,EAAC,GAAE,eAAcI,GAAE,eAAca,GAAE,oBAAmBT,GAAE,oBAAmBiB,GAAE,iBAAgBrB,EAAE,mBAAiB,GAAE,qBAAoBF,GAAE,wBAAuByB,GAAE,uBAAsBlB,GAAE,oBAAmBC,GAAE,wBAAuBS,GAAE,WAAU,OAAMnB,MAAG;AAAC,UAAM8a,GAAG,UAAU9a,CAAC;AAAA,EAAC,GAAE,QAAO,OAAMA,GAAEG,MAAI;AAAC,UAAM2a,GAAG,OAAO9a,GAAEG,CAAC;AAAA,EAAC,GAAE,YAAW,OAAMH,GAAEG,MAAI;AAAC,UAAM2a,GAAG,WAAW9a,GAAEG,CAAC;AAAA,EAAC,GAAE,UAAS,OAAMH,GAAEG,MAAI;AAAC,UAAM2a,GAAG,SAAS9a,GAAEG,CAAC;AAAA,EAAC,GAAE,WAAU,OAAMH,GAAEG,MAAI;AAAC,UAAM2a,GAAG,UAAU9a,GAAEG,CAAC;AAAA,EAAC,GAAE,UAAS,CAAAH,MAAG;AAAC,IAAA0B,EAAE1B,CAAC;AAAA,EAAC,GAAE,sBAAqB,YAAS,MAAM8a,GAAG,uBAAsB;AAAC;AAAC,MAAMe,KAAGlb,GAAE,EAAC,SAAQ,IAAG,UAAS,CAAA,GAAG,eAAc,IAAG,eAAc,CAAE,GAAC,oBAAmB,GAAE,SAAQ,MAAI;AAAA,GAAG,iBAAgB,GAAE,UAAS,MAAI;GAAG,WAAU,MAAI;AAAA,GAAG,WAAU,MAAI;AAAA,GAAG,YAAW,MAAI;AAAE,GAAC,aAAY,MAAI;AAAE,GAAC,oBAAmB,CAAA,GAAG,aAAY,MAAI;AAAA,GAAG,qBAAoB,GAAE,eAAc,MAAI;AAAE,GAAC,wBAAuB,IAAG,uBAAsB,CAAE,GAAC,oBAAmB,MAAI;AAAE,GAAC,wBAAuB,MAAI;GAAG,WAAU,MAAI;GAAG,QAAO,MAAI;AAAA,GAAG,YAAW,MAAI;AAAA,GAAG,UAAS,MAAI;AAAE,GAAC,WAAU,MAAI;AAAE,GAAC,UAAS,MAAI;EAAE,CAAC,GAAEmb,KAAG,MAAIlb,GAAEib,EAAE;AAAE,SAASE,GAAG,EAAC,OAAM,IAAE,uBAAsB,OAAM,IAAE,SAAQ,GAAG1b,EAAC,GAAE;AAAC,QAAK,EAAC,UAAS,GAAE,aAAYM,EAAC,IAAEmb,GAAI,GAAClb,IAAEuP,GAAI,GAACtP,IAAEN,GAAG,CAAAP,MAAG;AAAC,IAAAW,EAAE,EAAC,sBAAqBX,EAAE,OAAO,QAAO,CAAC;AAAA,EAAC,GAAG,CAACW,CAAC,CAAC;AAAE,SAAOC,IAAEZ,EAAE8P,IAAG,EAAC,OAAM,GAAE,OAAM,GAAE,UAASjP,GAAE,SAAQ,EAAE,wBAAsB,IAAG,GAAGR,EAAC,CAAC,IAAE;AAAI;AAAC,SAAS2b,GAAG,EAAC,OAAM,IAAE,2BAA0B,OAAM,IAAE,SAAQ,GAAG3b,EAAC,GAAE;AAAC,QAAK,EAAC,UAAS,GAAE,aAAYM,EAAC,IAAEmb,GAAE,GAAGlb,IAAEuP,GAAE,KAAI,CAAC,EAAE,sBAAqBtP,IAAEN,GAAG,CAAAP,MAAG;AAAC,IAAAW,EAAE,EAAC,uBAAsBX,EAAE,OAAO,QAAO,CAAC;AAAA,EAAC,GAAG,CAACW,CAAC,CAAC;AAAE,SAAOX,EAAE8P,IAAG,EAAC,OAAM,GAAE,OAAM,GAAE,UAASjP,GAAE,SAAQ,EAAE,yBAAuB,IAAG,UAASD,GAAE,GAAGP,EAAC,CAAC;AAAC;AAAC,SAAS4b,GAAG,EAAC,OAAM,IAAE,+BAA8B,OAAM,IAAE,SAAQ,GAAG5b,EAAC,GAAE;AAAC,QAAK,EAAC,UAAS,GAAE,aAAYM,EAAC,IAAEmb,GAAE,GAAGlb,IAAEuP,GAAE,GAAGtP,IAAED,KAAG,CAAC,EAAE,sBAAqBE,IAAEP,GAAG,CAAAP,MAAG;AAAC,IAAAW,EAAE,EAAC,0BAAyBX,EAAE,OAAO,QAAO,CAAC;AAAA,EAAC,GAAG,CAACW,CAAC,CAAC;AAAE,SAAOC,IAAEZ,EAAE8P,IAAG,EAAC,OAAM,GAAE,OAAM,GAAE,UAAShP,GAAE,SAAQ,EAAE,4BAA0B,IAAG,UAASD,GAAE,GAAGR,EAAC,CAAC,IAAE;AAAI;AAAC,SAAS6b,GAAG,EAAC,OAAM,IAAE,mBAAkB,OAAM,IAAE,SAAQ,GAAG7b,EAAC,GAAE;AAAC,QAAK,EAAC,UAAS,GAAE,aAAYM,EAAC,IAAEmb,MAAKlb,IAAEuP,GAAE,GAAGtP,IAAEN,GAAG,CAAAP,MAAG;AAAC,IAAAW,EAAE,EAAC,eAAcX,EAAE,OAAO,QAAO,CAAC;AAAA,EAAC,GAAG,CAACW,CAAC,CAAC;AAAE,SAAOC,IAAEZ,EAAE8P,IAAG,EAAC,OAAM,GAAE,OAAM,GAAE,UAASjP,GAAE,SAAQ,EAAE,iBAAe,IAAG,GAAGR,EAAC,CAAC,IAAE;AAAI;AAAC,SAAS8b,GAAG,EAAC,OAAM,IAAE,uBAAsB,OAAM,IAAE,SAAQ,GAAG9b,EAAC,GAAE;AAAC,QAAK,EAAC,UAAS,GAAE,aAAYM,EAAC,IAAEmb,GAAI,GAAClb,IAAEL,GAAG,CAAAP,MAAG;AAAC,IAAAW,EAAE,EAAC,aAAYX,EAAE,OAAO,QAAO,CAAC;AAAA,EAAC,GAAG,CAACW,CAAC,CAAC;AAAE,SAAOX,EAAE8P,IAAG,EAAC,OAAM,GAAE,OAAM,GAAE,UAASlP,GAAE,SAAQ,EAAE,eAAa,IAAG,GAAGP,EAAC,CAAC;AAAC;AAAC,MAAM+b,KAAG,CAACpc,GAAEG,MAAIH,IAAE,GAAGA,CAAC,IAAIG,CAAC,GAAOH,MAAJ,IAAM,MAAI,EAAE,KAAG,IAAGqc,KAAG,CAAArc,MAAG;AAAC,QAAMG,IAAE,KAAK,MAAMH,IAAE,EAAE,GAAEM,IAAEN,IAAE,IAAGK,IAAE+b,GAAGjc,GAAE,QAAQ,GAAEC,IAAEgc,GAAG9b,GAAE,QAAQ;AAAE,SAAOD,KAAGA,KAAGD,IAAE,MAAI,MAAIA;AAAC;AAAE,SAASkc,GAAG,EAAC,WAAUhc,GAAE,OAAMD,IAAE,qBAAoB,OAAMD,IAAE,CAAC,IAAG,IAAG,IAAG,EAAE,GAAE,GAAGO,EAAC,GAAE;AAAC,QAAMC,IAAEJ,EAAE,QAAO,cAAa,aAAYF,CAAC,GAAE,EAAC,UAASO,GAAE,aAAYC,EAAC,IAAEgb,GAAI,GAAC/a,IAAEoP,MAAKnP,IAAED,KAAG,CAACF,EAAE,sBAAqBI,IAAEV,GAAG,CAACP,IAAE,SAAO;AAAC,IAAAa,EAAE,gBAAcb,KAAGc,EAAE,EAAC,aAAY,MAAId,EAAC,CAAC;AAAA,EAAC,GAAG,CAACa,EAAE,aAAYC,CAAC,CAAC;AAAE,SAAOC,IAAEZ,EAAE,OAAM,EAAC,WAAUS,GAAE,GAAGD,GAAE,UAAS,CAACX,EAAE,OAAM,EAAC,WAAU,sBAAoBgB,IAAE,qBAAmB,KAAI,UAAShB,EAAE,QAAO,EAAC,UAASK,EAAC,CAAC,EAAC,CAAC,GAAEF,EAAEwC,IAAE,EAAC,SAAQ,SAAQ,UAAS3B,GAAE,UAAS,CAAChB,EAAE2C,GAAE,QAAO,EAAC,MAAK0Z,IAAIxb,EAAE,eAAa,KAAG,GAAG,EAAC,CAAC,GAAEb,EAAE2C,GAAE,SAAQ,EAAC,UAAS3C,EAAE2C,GAAE,MAAK,EAAC,SAAQ,UAAS,UAASvC,EAAE,IAAK,CAAAD,MAAGH,EAAE2C,GAAE,MAAK,EAAC,SAAQ,MAAI;AAAC,IAAA1B,EAAEd,CAAC;AAAA,EAAC,GAAE,UAASkc,GAAGlc,CAAC,EAAC,GAAEA,CAAC,GAAG,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,IAAE;AAAI;AAAC,SAASoc,GAAG,EAAC,WAAUjc,GAAE,OAAMD,IAAE,qBAAoB,GAAGD,EAAC,GAAE;AAAC,QAAMG,IAAEC,EAAE,QAAO,cAAa,aAAYF,CAAC,GAAE,EAAC,UAASK,EAAC,IAAEmb,GAAE,GAAGlb,IAAEuP,GAAI,KAAE,CAACxP,EAAE,sBAAqBE,IAAE,CAAC,cAAa,YAAW,aAAY,OAAO;AAAE,SAAOV,EAAE,OAAM,EAAC,WAAUI,GAAE,GAAGH,GAAE,UAAS,CAACJ,EAAE,OAAM,EAAC,WAAUQ,EAAE,mBAAkB,EAAC,oBAAmBI,EAAC,CAAC,GAAE,UAASZ,EAAE,QAAO,EAAC,UAASK,EAAC,CAAC,EAAC,CAAC,GAAEF,EAAEwC,IAAE,EAAC,SAAQ,SAAQ,UAAS/B,GAAE,UAAS,CAACZ,EAAE2C,GAAE,QAAO,EAAC,MAAK9B,EAAE,CAAC,EAAC,CAAC,GAAEb,EAAE2C,GAAE,SAAQ,EAAC,UAAS3C,EAAE2C,GAAE,MAAK,EAAC,SAAQ,UAAS,UAAS9B,EAAE,IAAK,CAAAV,MAAGH,EAAE2C,GAAE,MAAK,EAAC,UAASxC,EAAC,GAAEA,CAAC,CAAG,EAAA,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC;AAAC;AAAC,SAASqc,GAAG,EAAC,WAAUlc,GAAE,OAAMD,IAAE,sBAAqB,GAAGD,EAAC,GAAE;AAAC,QAAMG,IAAEC,EAAE,QAAO,cAAa,aAAYF,CAAC,GAAE,EAAC,UAASK,EAAC,IAAEmb,GAAI,GAAClb,IAAEuP,QAAM,CAACxP,EAAE,sBAAqBE,IAAE,CAAC,YAAW,aAAY,OAAO;AAAE,SAAOV,EAAE,OAAM,EAAC,WAAUI,GAAE,GAAGH,GAAE,UAAS,CAACJ,EAAE,OAAM,EAAC,WAAUQ,EAAE,mBAAkB,EAAC,oBAAmBI,EAAC,CAAC,GAAE,UAASZ,EAAE,QAAO,EAAC,UAASK,EAAC,CAAC,EAAC,CAAC,GAAEF,EAAEwC,IAAE,EAAC,SAAQ,SAAQ,UAAS/B,GAAE,UAAS,CAACZ,EAAE2C,GAAE,QAAO,EAAC,MAAK9B,EAAE,CAAC,EAAC,CAAC,GAAEb,EAAE2C,GAAE,SAAQ,EAAC,UAAS3C,EAAE2C,GAAE,MAAK,EAAC,SAAQ,UAAS,UAAS9B,EAAE,IAAK,CAAAV,MAAGH,EAAE2C,GAAE,MAAK,EAAC,UAASxC,EAAC,GAAEA,CAAC,CAAG,EAAA,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC;AAAC;AAAC,SAASsc,GAAG,EAAC,WAAUnc,GAAE,OAAMD,IAAE,YAAW,GAAGD,EAAC,GAAE;AAAC,QAAMG,IAAEC,EAAE,4CAA2CF,CAAC,GAAE,EAAC,eAAcK,GAAE,cAAaC,EAAC,IAAEia,GAAI;AAAC,SAAO1K,GAAE,IAAGnQ,EAAE,OAAM,EAAC,WAAUO,GAAE,GAAGH,GAAE,UAASD,EAAEoB,IAAE,EAAC,OAAMlB,GAAE,UAAS,CAACL,EAAEW,GAAE,CAAA,CAAE,GAAEX,EAAEY,GAAE,CAAE,CAAA,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE;AAAI;AAAC,SAAS8b,GAAG,EAAC,OAAM,IAAE,wBAAuB,OAAM,IAAE,SAAQ,GAAGrc,EAAC,GAAE;AAAC,QAAK,EAAC,UAAS,GAAE,aAAYM,EAAC,IAAEmb,MAAKlb,IAAEuP,GAAE,GAAGtP,IAAED,KAAG,CAAC,EAAE,sBAAqBE,IAAEP,GAAG,CAAAP,MAAG;AAAC,IAAAW,EAAE,EAAC,eAAcX,EAAE,OAAO,QAAO,CAAC;AAAA,EAAC,GAAG,CAACW,CAAC,CAAC;AAAE,SAAOC,IAAEZ,EAAE8P,IAAG,EAAC,OAAM,GAAE,OAAM,GAAE,UAAShP,GAAE,SAAQ,EAAE,iBAAe,IAAG,UAASD,GAAE,GAAGR,EAAC,CAAC,IAAE;AAAI;AAAC,MAAMsc,KAAG,CAAA3c,MAAGA,EAAE,QAAQ,YAAY,CAAAA,MAAGA,EAAE,YAAW,EAAG,QAAQ,KAAI,GAAG,CAAG;AAAC,SAAS4c,GAAG,EAAC,WAAUtc,GAAE,OAAMD,IAAE,YAAW,GAAGD,EAAC,GAAE;AAAC,QAAMO,IAAEH,EAAE,QAAO,cAAa,aAAYF,CAAC,GAAE,EAAC,UAASM,GAAE,aAAYC,EAAC,IAAEib,GAAE,GAAGhb,IAAEqP,GAAI,GAACpP,IAAED,KAAG,CAACF,EAAE,sBAAqBI,IAAET,GAAG,CAAAP,MAAG;AAAC,IAAAA,MAAIA,IAAE,aAAYY,EAAE,YAAUZ,KAAGa,EAAE,EAAC,SAAQb,EAAE,YAAW,EAAE,CAAC;AAAA,EAAC,GAAG,CAACY,EAAE,SAAQC,CAAC,CAAC;AAAE,SAAIC,IAAqBX,EAAE,OAAM,EAAC,WAAUQ,GAAE,GAAGP,GAAE,UAAS,CAACJ,EAAE,OAAM,EAAC,WAAUQ,EAAE,mBAAkB,EAAC,oBAAmBO,EAAC,CAAC,GAAE,UAASf,EAAE,QAAO,EAAC,UAASK,EAAC,CAAC,EAAC,CAAC,GAAEF,EAAEwC,IAAE,EAAC,SAAQ,SAAQ,UAAS5B,GAAE,UAAS,CAACf,EAAE2C,GAAE,QAAO,EAAC,MAAK/B,EAAE,UAAQ+b,GAAG/b,EAAE,OAAO,IAAE,WAAU,CAAC,GAAEZ,EAAE2C,GAAE,SAAQ,EAAC,UAAS3C,EAAE2C,GAAE,MAAK,EAAC,SAAQ,UAAS,UAAS,CAAC,YAAW,aAAa,EAAE,IAAK,CAAAxC,MAAGH,EAAE2C,GAAE,MAAK,EAAC,SAAQ,MAAI;AAAC,IAAA3B,EAAEb,CAAC;AAAA,EAAC,GAAE,UAASA,EAAC,GAAEA,CAAC,CAAG,EAAA,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,IAApY;AAAqY;AAAC,SAAS0c,GAAG,EAAC,WAAUvc,GAAE,OAAMD,IAAE,aAAY,GAAGD,EAAC,GAAE;AAAC,QAAMG,IAAEC,EAAE,6CAA4CF,CAAC,GAAE,EAAC,gBAAeK,GAAE,iBAAgBC,EAAC,IAAEia,GAAI;AAAC,SAAO1K,GAAE,IAAGnQ,EAAE,OAAM,EAAC,WAAUO,GAAE,GAAGH,GAAE,UAASD,EAAEoB,IAAE,EAAC,OAAMlB,GAAE,UAAS,CAACL,EAAEW,GAAE,CAAE,CAAA,GAAEX,EAAEY,GAAE,CAAA,CAAE,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE;AAAI;AAAC,SAASkc,GAAG,EAAC,WAAUxc,GAAE,OAAMD,IAAE,kBAAiB,GAAGD,EAAC,GAAE;;AAAC,QAAMO,IAAEH,EAAE,QAAO,cAAa,aAAYF,CAAC,GAAE,EAAC,UAASM,GAAE,aAAYC,EAAC,IAAEib,GAAE,GAAGhb,IAAEqP,GAAE,GAAGpP,IAAER,GAAG,CAAAP,MAAG;;AAAC,IAAAA,MAAIA,IAAE,YAASuC,IAAA3B,EAAE,cAAF,gBAAA2B,EAAa,WAAQvC,KAAGa,EAAE,EAAC,WAAU,EAAC,GAAGD,EAAE,WAAU,OAAMZ,EAAE,YAAa,EAAA,EAAC,CAAC;AAAA,EAAC,GAAG,CAACY,EAAE,WAAUC,CAAC,CAAC;AAAE,SAAIC,IAAqBX,EAAE,OAAM,EAAC,WAAUQ,GAAE,GAAGP,GAAE,UAAS,CAACJ,EAAE,OAAM,EAAC,WAAU,mBAAkB,UAASA,EAAE,QAAO,EAAC,UAASK,EAAC,CAAC,EAAC,CAAC,GAAEF,EAAEwC,IAAE,EAAC,SAAQ,SAAQ,UAAS,CAAC3C,EAAE2C,GAAE,QAAO,EAAC,OAAKJ,IAAA3B,EAAE,cAAF,QAAA2B,EAAa,QAAMoa,IAAGna,IAAA5B,EAAE,cAAF,gBAAA4B,EAAa,KAAK,IAAE,QAAO,CAAC,GAAExC,EAAE2C,GAAE,SAAQ,EAAC,UAAS3C,EAAE2C,GAAE,MAAK,EAAC,SAAQ,UAAS,UAAS,CAAC,SAAQ,MAAM,EAAE,IAAK,CAAAxC,MAAGH,EAAE2C,GAAE,MAAK,EAAC,SAAQ,MAAI;AAAC,IAAA5B,EAAEZ,CAAC;AAAA,EAAC,GAAE,UAASA,EAAC,GAAEA,CAAC,GAAG,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,IAApW;AAAqW;AAAC,SAAS4c,GAAG,EAAC,WAAUzc,GAAE,OAAMD,IAAE,mBAAkB,GAAGD,EAAC,GAAE;;AAAC,QAAMO,IAAEH,EAAE,QAAO,cAAa,aAAYF,CAAC,GAAE,EAAC,UAASM,GAAE,aAAYC,EAAC,IAAEib,GAAI,GAAChb,IAAEqP,GAAI,GAACpP,IAAER,GAAG,CAAAP,MAAG;;AAAC,QAAGA,MAAIA,IAAE,mBAAgBuC,IAAA3B,EAAE,cAAF,gBAAA2B,EAAa,YAASvC;AAAE;AAAO,UAAMG,IAAEH,EAAE,QAAQ,QAAO,GAAG,EAAE,YAAW;AAAG,IAAAa,EAAE,EAAC,WAAU,EAAC,GAAGD,EAAE,WAAU,QAAOT,EAAC,EAAC,CAAC;AAAA,EAAC,GAAG,CAACS,EAAE,WAAUC,CAAC,CAAC;AAAE,SAAIC,IAAqBX,EAAE,OAAM,EAAC,WAAUQ,GAAE,GAAGP,GAAE,UAAS,CAACJ,EAAE,OAAM,EAAC,WAAU,mBAAkB,UAASA,EAAE,QAAO,EAAC,UAASK,EAAC,CAAC,EAAC,CAAC,GAAEF,EAAEwC,IAAE,EAAC,SAAQ,SAAQ,UAAS,CAAC3C,EAAE2C,GAAE,QAAO,EAAC,OAAKJ,IAAA3B,EAAE,cAAF,QAAA2B,EAAa,SAAOoa,IAAGna,IAAA5B,EAAE,cAAF,gBAAA4B,EAAa,MAAM,IAAE,eAAc,CAAC,GAAExC,EAAE2C,GAAE,SAAQ,EAAC,UAAS3C,EAAE2C,GAAE,MAAK,EAAC,SAAQ,UAAS,UAAS,CAAC,aAAY,YAAW,gBAAe,aAAa,EAAE,IAAK,CAAAxC,MAAGH,EAAE2C,GAAE,MAAK,EAAC,SAAQ,MAAI;AAAC,IAAA5B,EAAEZ,CAAC;AAAA,EAAC,GAAE,UAASA,EAAC,GAAEA,CAAC,CAAG,EAAA,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,IAAlZ;AAAmZ;AAAC,SAAS6c,GAAG,EAAC,WAAU,GAAE,OAAM,IAAE,UAAS,GAAG3c,EAAC,GAAE;;AAAC,QAAM,IAAEG,EAAE,0CAAyC,CAAC,GAAE,EAAC,gBAAe,EAAC,IAAEqa,MAAK,EAAC,UAASla,EAAC,IAAEmb,GAAI;AAAC,SAAO3L,GAAE,OAAI5N,IAAA5B,EAAE,WAAF,QAAA4B,EAAU,WAAQvC,EAAE,OAAM,EAAC,WAAU,GAAE,GAAGK,GAAE,UAASL,EAAEuB,IAAE,EAAC,OAAM,GAAE,UAASvB,EAAE,GAAE,EAAE,EAAC,CAAC,EAAC,CAAC,IAAE;AAAI;AAAC,SAASid,GAAG,EAAC,WAAU3c,GAAE,OAAMD,IAAE,oBAAmB,OAAMD,IAAE,CAAC,IAAG,KAAI,KAAI,GAAG,GAAE,GAAGO,EAAC,GAAE;;AAAC,QAAMC,IAAEJ,EAAE,QAAO,cAAa,aAAYF,CAAC,GAAE,EAAC,UAASO,GAAE,aAAYC,EAAC,IAAEgb,GAAI,GAAC/a,IAAEoP,GAAI,GAACnP,IAAED,KAAG,CAACF,EAAE,sBAAqBI,IAAEV,GAAG,CAACP,IAAE,QAAM;;AAAC,IAAAa,EAAE,YAAQ0B,IAAA1B,EAAE,WAAF,gBAAA0B,EAAU,cAAWvC,KAAGc,EAAE,EAAC,QAAO,EAAC,GAAGD,EAAE,QAAO,UAAS,MAAIb,EAAC,EAAC,CAAC;AAAA,EAAC,GAAG,CAACa,EAAE,QAAOC,CAAC,CAAC;AAAE,SAAOC,OAAGwB,IAAA1B,EAAE,WAAF,QAAA0B,EAAU,WAAQpC,EAAE,OAAM,EAAC,WAAUS,GAAE,GAAGD,GAAE,UAAS,CAACX,EAAE,OAAM,EAAC,WAAUQ,EAAE,mBAAkB,EAAC,oBAAmBQ,EAAC,CAAC,GAAE,UAAShB,EAAE,QAAO,EAAC,UAASK,EAAC,CAAC,EAAC,CAAC,GAAEF,EAAEwC,IAAE,EAAC,SAAQ,SAAQ,UAAS3B,GAAE,UAAS,CAAChB,EAAE2C,GAAE,QAAO,EAAC,MAAK0Z,MAAI7Z,IAAA3B,EAAE,WAAF,gBAAA2B,EAAU,aAAU,KAAG,GAAG,EAAC,CAAC,GAAExC,EAAE2C,GAAE,SAAQ,EAAC,UAAS3C,EAAE2C,GAAE,MAAK,EAAC,SAAQ,UAAS,UAASvC,EAAE,IAAK,CAAAD,MAAGH,EAAE2C,GAAE,MAAK,EAAC,SAAQ,MAAI;AAAC,IAAA1B,EAAEd,CAAC;AAAA,EAAC,GAAE,UAASkc,GAAGlc,CAAC,EAAC,GAAEA,CAAC,CAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,IAAE;AAAI;AAAC,SAAS+c,GAAG,EAAC,WAAU5c,GAAE,OAAMD,GAAE,GAAGD,EAAC,GAAE;AAAC,QAAMG,IAAEC,EAAE,iDAAgDF,CAAC,GAAE,EAAC,cAAaK,GAAE,cAAaC,GAAE,kBAAiBC,GAAE,kBAAiBC,EAAC,IAAE+Z,GAAI,GAAC,EAAC,wBAAuB9Z,EAAC,IAAEka,GAAE,GAAGja,IAAEmP,GAAI,GAAClP,IAAEF,EAAG,GAACG,IAAE,0CAAwCF,IAAE,uBAAqB;AAAoB,SAAOhB,EAAE,OAAM,EAAC,WAAUO,GAAE,GAAGH,GAAE,UAASD,EAAEoB,IAAE,EAAC,OAAMlB,MAAIW,IAAE,qBAAmB,cAAa,UAAS,CAACb,EAAE,OAAM,EAAC,WAAUe,GAAE,UAAS,CAAClB,EAAE,KAAI,EAAC,WAAU,mBAAkB,UAAS,UAAS,CAAC,GAAEA,EAAE,KAAI,EAAC,WAAU,mBAAkB,UAAS,YAAW,CAAC,GAAEgB,KAAGhB,EAAE,KAAI,EAAC,WAAU,mBAAkB,UAAS,OAAM,CAAC,CAAC,EAAC,CAAC,GAAEG,EAAE,OAAM,EAAC,WAAUe,GAAE,UAAS,CAAClB,EAAE,KAAI,EAAC,UAAS,cAAa,CAAC,GAAEA,EAAEW,GAAE,EAAC,OAAM,GAAE,CAAC,GAAEK,KAAGhB,EAAEa,GAAE,EAAC,OAAM,GAAE,CAAC,CAAC,EAAC,CAAC,GAAEI,EAAE,IAAK,CAAAX,MAAC;;AAAE,YAACA,KAAGA,EAAE,WAAQiC,IAAAjC,KAAA,gBAAAA,EAAG,mBAAH,QAAAiC,EAAmB,SAAO,OAAKpC,EAAE,OAAM,EAAC,WAAUe,GAAE,UAAS,CAAClB,EAAE,KAAI,EAAC,UAASM,EAAE,SAAOA,EAAE,KAAI,CAAC,GAAEN,EAAEY,GAAE,EAAC,KAAIN,GAAE,OAAM,GAAE,CAAC,GAAEU,KAAGhB,EAAEc,GAAE,EAAC,KAAIR,GAAE,OAAM,GAAE,CAAC,CAAC,EAAC,GAAEA,EAAE,IAAI;AAAA,GAAC,CAAE,EAAC,CAAC,EAAC,CAAC;AAAC;AAAC,SAAS6c,GAAG,EAAC,OAAM,IAAE,YAAW,OAAM,IAAE,SAAQ,GAAG9c,EAAC,GAAE;;AAAC,QAAK,EAAC,UAAS,GAAE,eAAcM,GAAE,eAAcC,EAAC,IAAEkb,GAAE,GAAGjb,IAAEsP,GAAE,KAAI,CAAC,EAAE,sBAAqBrP,IAAEP,GAAG,CAAAP,MAAG;AAAC,IAAAY,EAAE,EAAC,WAAUZ,EAAE,OAAO,QAAO,CAAC;AAAA,EAAC,GAAG,CAACY,CAAC,CAAC;AAAE,SAAOZ,EAAE8P,IAAG,EAAC,OAAM,GAAE,OAAM,GAAE,UAAShP,GAAE,YAAS0B,KAAAD,IAAA5B,EAAE,iBAAF,gBAAA4B,EAAgB,YAAhB,gBAAAC,EAAyB,SAAS,WAAU+S,KAAAD,IAAA3U,EAAE,iBAAF,gBAAA2U,EAAgB,YAAhB,gBAAAC,EAAyB,YAA7B,MAAsC,IAAG,UAAS1U,GAAE,GAAGR,EAAC,CAAC;AAAC;AAAC,SAAS+c,GAAG,EAAC,OAAM,IAAE,OAAM,OAAM,IAAE,SAAQ,KAAI/c,GAAE,GAAG,EAAC,GAAE;;AAAC,QAAK,EAAC,SAAQM,GAAE,UAASC,GAAE,eAAcC,GAAE,YAAWC,EAAC,IAAEgb,MAAK/a,IAAEoP,GAAE,KAAI,CAACvP,EAAE,sBAAqBI,IAAET,GAAG,CAACP,GAAEG,MAAI;;AAAC,UAAMG,IAAE,EAAC,GAAGO,EAAE,aAAY,GAAER,KAAEkC,IAAAjC,EAAE,YAAF,gBAAAiC,EAAW,QAAQ;AAAK,IAAU,OAAOlC,KAAjB,YAAoBA,IAAE,QAAKmC,IAAAlC,EAAE,YAAF,QAAAkC,EAAW,OAAOnC,GAAE,IAAGM,EAAE,QAAS,CAAAX,MAAG;;AAAC,MAAAA,EAAE,SAAOG,EAAE,UAAMoC,IAAAjC,EAAE,YAAF,QAAAiC,EAAW,KAAKvC,EAAE;AAAA,IAAK,CAAC,IAAIA,KAAGM,EAAE,UAAQ,CAAC,GAAG,oBAAI,IAAI,CAAC,GAAGA,EAAE,WAAS,IAAGH,EAAE,IAAI,CAAC,CAAC,GAAEG,EAAE,WAAQgV,IAAAhV,EAAE,YAAF,gBAAAgV,EAAW,OAAQ,CAAAtV,MAAGA,MAAIG,EAAE,UAASG,EAAE,WAAQiV,IAAAjV,EAAE,YAAF,gBAAAiV,EAAW,OAAQ,CAAAvV,MAAGA,MAAIG,EAAE,OAAOG,EAAE,UAAQ,CAAC,GAAG,oBAAI,IAAI,CAAC,GAAGA,EAAE,WAAS,IAAGH,EAAE,IAAI,CAAC,CAAC,KAAGoF,IAAAjF,EAAE,YAAF,QAAAiF,EAAW,YAAQwV,IAAAza,EAAE,YAAF,QAAAya,EAAW,SAAS,SAAMza,EAAE,QAAQ,OAAOA,EAAE,QAAQ,QAAQ,GAAG,GAAE,CAAC,GAAEQ,EAAER,CAAC;AAAA,EAAC,GAAG,CAACK,GAAEE,EAAE,cAAaC,CAAC,CAAC;AAAE,SAAOd,EAAE8P,IAAG,EAAC,IAAGzP,EAAE,MAAK,OAAM,GAAE,OAAM,GAAE,UAAS,CAAAL,MAAGgB,EAAEhB,EAAE,OAAO,SAAQK,CAAC,GAAE,YAASmC,KAAAD,IAAA1B,EAAE,iBAAF,gBAAA0B,EAAgB,YAAhB,gBAAAC,EAAyB,SAAS,SAAM,GAAC+S,KAAAD,IAAAzU,EAAE,iBAAF,gBAAAyU,EAAgB,YAAhB,QAAAC,EAAyB,SAASlV,EAAE,YAAO0a,KAAAxV,IAAA1E,EAAE,iBAAF,gBAAA0E,EAAgB,YAAhB,gBAAAwV,EAAyB,SAAS1a,EAAE,WAAQ,IAAG,UAASU,GAAE,GAAG,EAAC,CAAC;AAAC;AAAC,SAASsc,GAAG,EAAC,OAAM,IAAE,YAAW,OAAM,IAAE,SAAQ,GAAGhd,EAAC,GAAE;;AAAC,QAAK,EAAC,UAAS,GAAE,eAAcM,GAAE,eAAcC,EAAC,IAAEkb,GAAE,GAAGjb,IAAEsP,GAAI,GAACrP,IAAED,MAAI,CAAC,EAAE,0BAA2B2B,KAAAD,IAAA5B,EAAE,iBAAF,gBAAA4B,EAAgB,YAAhB,gBAAAC,EAAyB,QAAQ,UAAtC,KAA4CzB,IAAER,GAAG,CAAAP,MAAG;AAAC,IAAAY,EAAE,EAAC,MAAKZ,EAAE,OAAO,QAAO,CAAC;AAAA,EAAC,GAAG,CAACY,CAAC,CAAC;AAAE,SAAOC,IAAEb,EAAE8P,IAAG,EAAC,OAAM,GAAE,OAAM,GAAE,UAAS/O,GAAE,WAAQwU,KAAAD,IAAA3U,EAAE,iBAAF,gBAAA2U,EAAgB,UAAhB,gBAAAC,EAAuB,SAAS,SAAM,IAAG,UAASzU,KAAG,IAAG,GAAGT,EAAC,CAAC,IAAE;AAAI;AAAC,SAASid,GAAG,EAAC,OAAM,IAAE,OAAM,OAAM,IAAE,SAAQ,KAAIjd,GAAE,GAAG,EAAC,GAAE;;AAAC,QAAK,EAAC,SAAQM,GAAE,UAASC,GAAE,eAAcC,GAAE,YAAWC,EAAC,IAAEgb,GAAE,GAAG/a,IAAEoP,GAAE,GAAGnP,IAAED,MAAI,CAACH,EAAE,0BAAsB4B,KAAAD,IAAA1B,EAAE,iBAAF,gBAAA0B,EAAgB,YAAhB,gBAAAC,EAAyB,SAAS,WAAM+S,KAAAD,IAAAzU,EAAE,iBAAF,gBAAAyU,EAAgB,YAAhB,gBAAAC,EAAyB,SAASlV,EAAE,YAAW0a,KAAAxV,IAAA1E,EAAE,iBAAF,gBAAA0E,EAAgB,YAAhB,gBAAAwV,EAAyB,YAA7B,OAA0CwC,KAAAvC,IAAAna,EAAE,iBAAF,gBAAAma,EAAgB,YAAhB,gBAAAuC,EAAyB,QAAQld,EAAE,WAAxC,QAAoDmd,KAAA/N,IAAA5O,EAAE,iBAAF,gBAAA4O,EAAgB,YAAhB,gBAAA+N,EAAyB,QAAQ,UAAtC,QAAgDC,KAAAC,IAAA7c,EAAE,iBAAF,gBAAA6c,EAAgB,YAAhB,gBAAAD,EAAyB,YAA7B,IAAqCxc,IAAEV,GAAG,CAACP,GAAEG,MAAI;;AAAC,UAAMG,KAAE,EAAC,GAAGO,EAAE,aAAY,GAAER,MAAEkC,IAAAjC,MAAA,gBAAAA,GAAG,UAAH,gBAAAiC,EAAU,QAAQ;AAAK,IAAU,OAAOlC,MAAjB,YAAoBA,KAAE,QAAKmC,KAAAlC,GAAE,UAAF,QAAAkC,GAAS,OAAOnC,IAAE,IAAGM,EAAE,QAAS,CAAAX,OAAG;;AAAC,MAAAA,GAAE,SAAOG,EAAE,QAAMH,GAAE,YAAQuC,IAAAjC,GAAE,UAAF,QAAAiC,EAAS,KAAKvC,GAAE;AAAA,IAAK,KAAKA,KAAEsV,KAAAhV,GAAE,UAAF,QAAAgV,GAAS,KAAKnV,EAAE,QAAMG,GAAE,SAAMiV,KAAAjV,GAAE,UAAF,gBAAAiV,GAAS,OAAQ,CAAAvV,OAAGA,OAAIG,EAAE,OAAOW,EAAER,EAAC;AAAA,EAAC,GAAG,CAACK,GAAEE,EAAE,cAAaC,CAAC,CAAC;AAAE,SAAM,CAACC,KAAGV,EAAE,SAAO,OAAKL,EAAE8P,IAAG,EAAC,IAAGzP,EAAE,MAAK,OAAM,GAAE,OAAM,GAAE,UAAS,CAAAL,MAAGiB,EAAEjB,EAAE,OAAO,SAAQK,CAAC,GAAE,YAAS6L,KAAAyR,IAAA9c,EAAE,iBAAF,gBAAA8c,EAAgB,UAAhB,gBAAAzR,EAAuB,SAAS,WAAM0R,KAAArL,IAAA1R,EAAE,iBAAF,gBAAA0R,EAAgB,UAAhB,gBAAAqL,EAAuB,SAASvd,EAAE,WAAQ,IAAG,UAASW,KAAG,IAAG,GAAG,EAAC,CAAC;AAAC;AAAC,MAAM6c,KAAG,EAAC,MAAK,CAAAvd,MAAG;AAAC,QAAK,EAAC,SAAQD,GAAE,WAAUD,GAAE,UAASG,GAAE,QAAOI,GAAE,eAAcC,EAAC,IAAEia,GAAI;AAAC,SAAO1a,EAAEiP,IAAG,EAAC,GAAG9O,GAAE,UAAS,CAACN,EAAEK,GAAE,CAAE,CAAA,GAAEL,EAAEI,GAAE,CAAA,CAAE,GAAEJ,EAAEO,GAAE,CAAE,CAAA,GAAEP,EAAEW,GAAE,CAAA,CAAE,GAAEX,EAAEY,GAAE,CAAE,CAAA,CAAC,EAAC,CAAC;AAAC,GAAE,SAAQga,IAAG,oBAAmBmB,IAAG,uBAAsBC,IAAG,0BAAyBC,IAAG,eAAcC,IAAG,kBAAiBC,IAAG,iBAAgBG,IAAG,WAAUC,IAAG,YAAWC,IAAG,UAASC,IAAG,eAAcC,IAAG,cAAaE,IAAG,WAAUC,IAAG,gBAAeC,IAAG,iBAAgBC,IAAG,QAAOC,IAAG,gBAAeC,IAAG,eAAcC,IAAG,cAAaC,IAAG,cAAaC,IAAG,kBAAiBC,IAAG,kBAAiBC,GAAE,GAAEQ,KAAGnd,GAAEkd,EAAE,GAAEE,KAAG7c,GAAG,CAAC,EAAC,UAAS,GAAE,YAAW,EAAC,MAAI;AAAC,QAAMb,IAAES,GAAG,OAAK,EAAC,GAAG+c,IAAG,GAAG,EAAC,IAAI,CAAC,CAAC,CAAC;AAAE,SAAO7d,EAAE8d,GAAG,UAAS,EAAC,OAAMzd,GAAE,UAAS,EAAC,CAAC;AAAC,CAAC;AAAG0d,GAAG,cAAY;AAAoD,MAAMlD,KAAG,MAAIja,GAAEkd,EAAE,GAAEE,KAAG,CAAC,EAAC,WAAU1d,GAAE,SAAQD,GAAE,OAAMD,IAAE,yBAAwB,GAAGG,EAAC,MAAI;AAAC,QAAK,EAAC,MAAKI,EAAC,IAAEka,GAAI;AAAC,SAAO1a,EAAEmP,IAAG,EAAC,WAAU9O,EAAE,mCAAkCF,CAAC,GAAE,GAAGC,GAAE,UAAS,CAACJ,EAAEmP,GAAG,QAAO,EAAC,UAAS,CAACtP,EAAEsP,GAAG,OAAO,OAAM,EAAC,MAAK,SAAQ,MAAKlP,GAAE,KAAI,KAAI,CAAC,GAAEJ,EAAEsP,GAAG,OAAO,aAAY,EAAC,UAAStP,EAAEsP,GAAG,OAAO,YAAW,EAAC,SAAQ,UAAS,MAAK,SAAQ,MAAK,MAAK,SAAQjP,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,GAAEL,EAAEW,GAAE,EAAE,CAAC,EAAC,CAAC;AAAC,GAAEsd,KAAG,CAAC,EAAC,YAAW,GAAE,GAAG,EAAC,MAAIje,EAAE+d,IAAG,EAAC,YAAW,GAAE,UAAS/d,EAAEge,IAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC;AAAE,SAASE,GAAG,EAAC,QAAO,GAAE,SAAQ,GAAE,WAAU7d,EAAC,GAAE;AAAC,SAAO,IAAEsB,GAAE3B,EAAEie,IAAG,EAAC,SAAQ,EAAC,CAAC,GAAE5d,KAAG,SAAS,cAAc,OAAO,KAAG,SAAS,IAAI,IAAE;AAAI;AAAC,MAAM8d,KAAGxd,GAAE,EAAC,aAAY,IAAG,WAAU,MAAI;AAAE,GAAC,gBAAe,IAAG,qBAAoB,UAAS,WAAU,MAAI;AAAE,GAAC,qBAAoB,OAAM,WAAU,MAAI;AAAA,GAAG,sBAAqB,IAAG,iBAAgB,MAAI;AAAE,GAAC,iBAAgB,MAAI;EAAE,CAAC,GAAEyd,KAAG,MAAIxd,GAAEud,EAAE;AAAE,SAASE,GAAG,EAAC,OAAM/d,GAAE,SAAQD,GAAE,gBAAeD,GAAE,GAAGG,EAAC,GAAE;AAAC,QAAK,EAAC,oBAAmBI,GAAE,oBAAmBC,GAAE,6BAA4BC,GAAE,0BAAyBC,GAAE,eAAcC,GAAE,mBAAkBC,GAAE,cAAaC,EAAC,IAAEqd,MAAK,EAAC,wBAAuBpd,GAAE,oBAAmBO,EAAC,IAAEqa,GAAE,GAAG,EAAC,sBAAqBpa,EAAC,IAAE0c,MAAKzc,IAAEwO;AAAK,SAAOhQ,EAAEgP,IAAG,EAAC,GAAG5O,GAAE,UAAS,CAACJ,EAAE,OAAM,EAAC,WAAU,2BAA0B,UAAS,CAACH,EAAEW,GAAE,EAAC,OAAML,EAAC,CAAC,GAAEN,EAAEY,GAAE,CAAA,CAAE,GAAET,EAAEgP,GAAG,aAAY,EAAC,UAAS,CAACxN,KAAG3B,EAAEa,GAAE,EAAC,SAAQT,EAAC,CAAC,GAAEJ,EAAEc,GAAE,EAAC,SAAQT,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,GAAEa,IAAEf,EAAE,OAAM,EAAC,WAAU,mCAAmCuB,KAAGD,IAAE,IAAE,wCAAsC,EAAE,KAAI,UAAS,CAACzB,EAAEe,GAAE,CAAE,CAAA,GAAEf,EAAEgB,GAAE,EAAE,CAAC,EAAC,CAAC,IAAEhB,EAAEe,GAAE,CAAA,CAAE,GAAEf,EAAEiB,GAAE,CAAE,CAAA,CAAC,EAAC,CAAC;AAAC;AAAC,SAASsd,GAAG,EAAC,MAAKje,IAAE,iBAAgB,SAAQD,GAAE,GAAGD,EAAC,GAAE;AAAC,QAAK,EAAC,oBAAmBG,EAAC,IAAEub,GAAI;AAAC,SAAO9b,EAAEsB,IAAE,EAAC,MAAKhB,GAAE,MAAK,SAAQ,GAAGF,GAAE,WAAUC,KAAG,OAAKF,EAAE,QAAO,EAAC,UAAS,CAAC,KAAII,GAAE,GAAG,EAAC,CAAC,EAAC,CAAC;AAAC;AAAC,MAAMie,KAAG,CAAAxe,MAAG,CAAC,GAAGA,CAAC,EAAE,KAAM,CAACA,GAAEG,OAAKA,EAAE,aAAW,MAAIH,EAAE,aAAW,EAAE,GAAGye,KAAG,CAAAze,MAAG,CAAC,GAAGA,CAAC,EAAE,KAAM,CAACA,GAAEG,OAAKH,EAAE,aAAW,MAAIG,EAAE,aAAW,KAAKue,KAAG,CAAC1e,GAAEG,MAAI;AAAC,QAAMG,IAAEib,GAAG,CAAC;AAAE,SAAM,CAAC,GAAGvb,CAAC,EAAE,KAAM,CAACA,GAAEK,MAAI;AAAC,UAAMD,IAAEmb,GAAG,QAAQvb,EAAE,YAAUM,CAAC,GAAEC,IAAEgb,GAAG,QAAQlb,EAAE,YAAUC,CAAC;AAAE,YAAOH,IAAE,KAAG,MAAIC,IAAEG;AAAA,EAAE;AAAG,GAAEoe,KAAG,EAAC,CAACvD,EAAE,GAAEoD,IAAG,CAACnD,EAAE,GAAEoD,IAAG,CAACnD,EAAE,GAAEoD,GAAE;AAAE,SAASE,GAAG,EAAC,GAAG,EAAC,GAAE;AAAC,QAAK,CAAC,GAAEve,CAAC,IAAEQ,GAAE,CAAA,CAAE,GAAE,EAAC,mBAAkB,GAAE,cAAa,EAAC,IAAEyd,GAAE,GAAG,EAAC,eAAc3d,GAAE,UAASC,GAAE,oBAAmBK,EAAC,IAAE6a,GAAE,GAAG,EAAC,qBAAoB5a,GAAE,qBAAoBO,GAAE,aAAY,EAAC,IAAE2c,MAAKzc,IAAEX,GAAE,IAAI,GAAEiB,IAAE+N,GAAG,CAAC,GAAEjQ,IAAEe,GAAG,OAAc,CAACd,GAAEG,MAAI;AAAC,QAAG,CAACH;AAAE,aAAM,CAAA;AAAG,YAAOG,GAAG;AAAA,MAAA,KAAI;AAAA,MAAM;AAAQ,eAAOH;AAAA,MAAE,KAAI;AAAS,eAAOA,EAAE,OAAQ,CAAAA,MAAcA,EAAE,UAAb,YAA8BA,EAAE,UAAZ,OAAiB;AAAA,MAAG,KAAI;AAAO,eAAOA,EAAE,OAAQ,CAAAA,MAAoBA,EAAE,UAAnB,kBAAmCA,EAAE,UAAX,MAAkB;AAAA,MAAC,KAAI;AAAU,eAAOA,EAAE,OAAQ,CAAAA,MAAeA,EAAE,UAAd,SAAqB;AAAA,IAAA;AAAA,EAAC,GAAGW,GAAEc,CAAC,EAAW,OAAQ,CAAAzB,MAAC;;AAAE,WAAAA,EAAE,MAAM,cAAc,SAASiC,EAAE,YAAW,CAAE,OAAGM,IAAAvC,EAAE,WAAF,gBAAAuC,EAAU,cAAc,SAASN,EAAE,qBAAgBO,IAAAxC,EAAE,SAAF,gBAAAwC,EAAQ,cAAc,SAASP,EAAE,YAAa;AAAA,GAAG,GAAG,CAACA,GAAEtB,GAAEc,CAAC,CAAC;AAAE,SAAOV,GAAG,MAAI;AAAC,YAAOG;MAAG,KAAI;AAAS,QAAAb,EAAEme,GAAGze,CAAC,CAAC;AAAE;AAAA,MAAM,KAAI;AAAS,QAAAM,EAAEoe,GAAG1e,CAAC,CAAC;AAAE;AAAA,MAAM,KAAI;AAAW,QAAAM,EAAEqe,GAAG3e,GAAE,EAAE,CAAC;AAAE;AAAA,MAAM;AAAQ,QAAAM,EAAEN,CAAC;AAAA,IAAC;AAAC,IAAAa,EAAEb,EAAE,MAAM;AAAA,EAAC,GAAG,CAACA,GAAEmB,GAAEN,CAAC,CAAC,GAAEG,GAAG,MAAI;;AAAC,IAAAY,EAAE,aAASY,IAAAZ,EAAE,YAAF,QAAAY,EAAW,SAAS,EAAC,KAAI,GAAE,UAAS,SAAQ;AAAA,EAAE,GAAG,CAACN,GAAEhB,GAAEC,GAAEO,CAAC,CAAC,GAAEzB,EAAEoP,IAAG,EAAC,KAAIzN,GAAE,GAAG,GAAE,UAAS3B,EAAE,GAAE,EAAC,eAAc,GAAE,cAAa,EAAC,CAAC,EAAC,CAAC;AAAC;AAAC,SAAS6e,GAAG,EAAC,GAAG,EAAC,GAAE;AAAC,QAAK,EAAC,eAAc,EAAC,IAAEP,GAAI;AAAC,SAAOte,EAAEqP,IAAG,EAAC,GAAG,GAAE,UAASrP,EAAE,GAAE,CAAE,CAAA,EAAC,CAAC;AAAC;AAAC,SAAS8e,GAAG,EAAC,WAAUxe,GAAE,GAAGD,EAAC,GAAE;AAAC,QAAK,EAAC,sBAAqBD,GAAE,yBAAwBG,EAAC,IAAE+d,GAAE,GAAG,EAAC,eAAc3d,EAAC,IAAEmb,MAAK,CAAClb,GAAEE,CAAC,IAAED,GAAE,EAAE;AAAE,SAAOE,GAAG,MAAI;AAAC,IAAAJ,EAAE,OAAQ,CAAAX,MAAaA,EAAE,UAAZ,WAAoCA,EAAE,UAAnB,gBAA2B,SAAO,IAAEc,EAAE,EAAE,IAAEA,EAAE,EAAE;AAAA,EAAC,GAAG,CAACH,CAAC,CAAC,GAAER,EAAEyC,IAAE,EAAC,WAAUtC,GAAE,OAAM,SAAQ,GAAGD,GAAE,UAAS,CAACL,EAAEO,GAAE,EAAC,UAAS,CAACK,EAAC,CAAC,GAAEZ,EAAEI,GAAE,EAAC,UAASO,EAAE,UAAQ,EAAC,CAAC,CAAC,EAAC,CAAC;AAAC;AAAC,SAASoe,GAAG,EAAC,MAAK,IAAE,aAAY,GAAG,EAAC,GAAE;AAAC,QAAK,EAAC,UAAS1e,EAAC,IAAEyb;AAAK,SAAO9b,EAAEwB,IAAE,EAAC,MAAK,GAAE,SAAQ,MAAI;AAAC,IAAAnB,EAAG;AAAA,EAAA,GAAE,GAAG,EAAC,CAAC;AAAC;AAAC,SAAS2e,GAAG,EAAC,MAAK,IAAE,aAAY,GAAG,EAAC,GAAE;AAAC,QAAK,EAAC,aAAY3e,EAAC,IAAEyb,GAAE;AAAG,SAAO9b,EAAEwB,IAAE,EAAC,MAAK,GAAE,SAAQ,MAAI;AAAC,IAAAnB;EAAG,GAAE,GAAG,EAAC,CAAC;AAAC;AAAC,SAAS4e,GAAG,EAAC,WAAU3e,GAAE,cAAaD,GAAE,GAAGD,EAAC,GAAE;AAAC,QAAMG,IAAEC,EAAE,0BAAyBF,CAAC,GAAE,EAAC,aAAYK,GAAE,aAAYC,GAAE,aAAYC,GAAE,iBAAgBC,GAAE,oBAAmBC,GAAE,mBAAkBC,EAAC,IAAEke,GAAE;AAAG,SAAO/e,EAAE,OAAM,EAAC,WAAUI,GAAE,GAAGH,GAAE,UAAS,CAACJ,EAAEY,GAAE,EAAC,cAAaP,EAAC,CAAC,GAAEL,EAAEW,GAAE,EAAC,cAAaN,EAAC,CAAC,GAAEL,EAAEa,GAAE,EAAC,cAAaR,EAAC,CAAC,GAAEL,EAAEc,GAAE,EAAC,cAAaT,EAAC,CAAC,GAAEF,EAAEyC,IAAE,EAAC,UAAS,CAAC5C,EAAEe,GAAE,EAAC,cAAaV,EAAC,CAAC,GAAEL,EAAEgB,GAAE,EAAC,cAAaX,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC;AAAC;AAAC,SAAS8e,GAAG,EAAC,cAAa,GAAE,GAAG,EAAC,GAAE;AAAC,QAAK,EAAC,UAAS9e,GAAE,oBAAmB,EAAC,IAAEyb,GAAE,GAAG,EAAC,gBAAe,EAAC,IAAEsC,MAAK,EAAC,eAAczd,GAAE,SAAQC,EAAC,IAAEP,GAAEQ,IAAkBD,MAAhB,gBAAkB,WAASA,KAAG;AAAS,MAAIE;AAAE,MAAGH,GAAE;AAAC,UAAMX,IAAE,EAAE,KAAM,CAAAA,MAAGA,EAAE,QAAM,EAAEa,CAAC;AAAI,IAAAC,KAAEd,KAAA,gBAAAA,EAAG,MAAM,WAAQ;AAAA,EAAC;AAAC,SAAOW,KAAG,CAAC,KAAGG,KAAGA,IAAE,IAAEd,EAAEqB,IAAE,EAAC,GAAG,GAAE,UAASP,IAAE,KAAGA,IAAE,KAAI,CAAC,IAAE;AAAI;AAAC,SAASse,GAAG,EAAC,WAAU9e,GAAE,cAAaD,GAAE,GAAGD,EAAC,GAAE;AAAC,MAAG,EAACC,KAAA,QAAAA,EAAG,aAAmBA,EAAE,aAAX;AAAoB,WAAO;AAAK,QAAME,IAAEC,EAAE,gCAA+BF,CAAC;AAAE,SAAOH,EAAE,OAAM,EAAC,WAAUI,GAAE,GAAGH,GAAE,UAAS,CAACJ,EAAES,IAAE,EAAC,UAAS,CAACT,IAAE,WAAS;AAAC,YAAOA,EAAE,YAAW,GAAI;AAAA,MAAA,KAAI;AAAA,MAAM,KAAI;AAAA,MAAS,KAAI;AAAA,MAAO;AAAQ,eAAM;AAAA,MAAc,KAAI;AAAO,eAAM;AAAA,MAAuB,KAAI;AAAW,eAAM;AAAA,IAAK;AAAA,EAAC,GAAGK,EAAE,QAAQ,GAAE,MAAK,KAAI,CAAC,GAAEA,EAAE,QAAQ,EAAC,CAAC;AAAC;AAAC,SAASgf,GAAG,EAAC,WAAU/e,GAAE,OAAMD,GAAE,UAASD,IAAE,QAAO,MAAKG,GAAE,GAAGI,EAAC,GAAE;AAAC,QAAMC,IAAEJ,EAAE,+BAA8BF,CAAC,GAAE,EAAC,gBAAeO,EAAC,IAAEud;AAAK,SAAOje,EAAE,OAAM,EAAC,WAAUS,GAAE,GAAGD,GAAE,UAAS,CAACJ,KAAGP,EAAE,QAAO,EAAC,WAAU,qCAAoC,UAASA,EAAE,OAAM,EAAC,KAAIO,GAAE,KAAI,+BAA+BA,CAAC,GAAE,CAAC,EAAC,CAAC,GAAEP,EAAE,QAAO,EAAC,WAAU,2CAA2CI,EAAE,YAAa,CAAA,IAAG,UAASS,KAAoBR,MAAjB,kBAAoB,MAAK,CAAC,CAAC,EAAC,CAAC;AAAC;AAAC,SAASif,GAAG,EAAC,WAAU,GAAE,cAAa,EAAC,UAAS,EAAC,GAAE,GAAGjf,EAAC,GAAE;AAAC,QAAM,IAAEG,EAAE,gCAA+B,CAAC;AAAE,SAAOR,EAAE,OAAM,EAAC,WAAU,GAAE,GAAGK,GAAE,UAAS,EAAC,CAAC;AAAC;AAAC,SAASkf,GAAG,EAAC,WAAU,GAAE,cAAa,EAAC,WAAU,GAAE,OAAMlf,GAAE,QAAO,EAAC,GAAE,GAAG,EAAC,GAAE;AAAC,QAAMM,IAAEH,EAAE,6BAA4B,CAAC;AAAE,SAAOR,EAAE,SAAQ,KAAeK,MAAZ,YAAc,EAAC,WAAUM,GAAE,GAAG,GAAE,UAAS,UAAS,IAAE,EAAC,WAAUA,GAAE,GAAG,GAAE,UAAS2X,GAAG,KAAG,CAAC,KAAG,WAAU,CAAC;AAAC;AAAC,SAASkH,GAAG,EAAC,cAAa,EAAC,IAAG,GAAE,OAAM,EAAC,GAAE,GAAGnf,EAAC,GAAE;;AAAC,QAAK,EAAC,UAAS,GAAE,QAAOM,EAAC,IAAEmb,GAAI,GAAClb,IAAEL,GAAG,CAAAP,MAAG;;AAAC,IAAAA,EAAE,gBAAe,GAAGW,KAAGA,EAAE,KAAE4B,IAAA,EAAE,WAAF,gBAAAA,EAAU,aAAU,CAAC;AAAA,EAAC,GAAG,CAAC,GAAE5B,IAAE4B,IAAA,EAAE,WAAF,gBAAAA,EAAU,QAAQ,CAAC;AAAE,SAAO5B,KAAe,MAAZ,eAAe6B,IAAA,EAAE,WAAF,QAAAA,EAAU,WAAQxC,EAAEwB,IAAE,EAAC,MAAK,UAAS,SAAQ,QAAO,MAAK,UAAS,UAAS,IAAG,SAAQZ,GAAE,GAAGP,EAAC,CAAC,IAAE;AAAI;AAAC,SAASiV,GAAG,EAAC,cAAa,EAAC,IAAG,GAAE,aAAY,EAAC,GAAE,GAAGjV,EAAC,GAAE;AAAC,QAAM,IAAE8P,GAAE,GAAG,EAAC,SAAQxP,EAAC,IAAEmb,GAAI,GAAC,EAAC,gBAAelb,EAAC,IAAEwd,GAAE,GAAGvd,IAAEN,GAAG,CAAAP,MAAG;AAAC,IAAAA,EAAE,mBAAkB,CAAC,KAAGY,IAAED,EAAE,CAAC,IAAE,EAAE,cAAc,EAAE,MAAM,QAAQ,KAAK;AAAA,EAAC,GAAG,CAAC,GAAE,GAAEA,GAAEC,GAAE,CAAC,CAAC;AAAE,SAAOZ,EAAEU,IAAE,EAAC,MAAK,SAAQ,UAAS,MAAK,MAAK,MAAK,UAAS,IAAG,SAAQG,GAAE,GAAGR,EAAC,CAAC;AAAC;AAAC,SAASof,GAAG,EAAC,WAAUnf,GAAE,cAAaD,GAAE,GAAGD,EAAC,GAAE;AAAC,QAAMO,IAAEH,EAAE,wBAAuBF,CAAC,GAAEM,IAAEuP,GAAI,GAAC,EAAC,UAAStP,GAAE,WAAUC,GAAE,iBAAgBC,EAAC,IAAEme,GAAE,GAAG,EAAC,IAAGle,GAAE,MAAKC,GAAE,OAAMC,GAAE,MAAKO,GAAE,SAAQC,GAAE,aAAYC,EAAC,IAAEtB,GAAE,EAAC,UAAS4B,GAAE,SAAQlC,EAAC,IAAE+b,GAAE,GAAG,EAAC,gBAAe7b,EAAC,IAAEme,MAAKle,IAAEK,GAAG,YAAS;AAAC,QAAG,CAACmB;AAAE;AAAO,QAAG,CAACd;AAAE,aAAO,KAAKb,EAAEiB,CAAC;AAAE,UAAMhB,IAAE,EAACiC,KAAA,QAAAA,EAAG,kBAAe,MAAK9B,IAAEF,KAAEgC,KAAA,gBAAAA,EAAG,6BAA0B,KAAGjC;AAAE,IAAOG,MAAP,OAAS,MAAMuB,EAAE,EAAC,OAAMvB,EAAC,CAAC,EAAE,MAAM,QAAQ,KAAK,KAAG,MAAMuB,EAAE,EAAC,OAAM,GAAE,CAAC,EAAE,MAAM,QAAQ,KAAK,GAAE,MAAMC,EAAE,cAAc,EAAE,MAAM,QAAQ,KAAK;AAAA,EAAE,GAAG,CAACf,GAAEI,GAAEf,GAAEyB,GAAE3B,GAAE4B,GAAEM,KAAA,gBAAAA,EAAG,0BAAyBA,KAAA,gBAAAA,EAAG,aAAa,CAAC;AAAE,SAAO9B,EAAE,OAAM,EAAC,WAAUQ,GAAE,MAAK,UAAS,UAAS,GAAE,WAAU,OAAMX,MAAG;AAAC,KAAC,CAAAA,MAAaA,EAAE,QAAZ,WAAuBA,EAAE,QAAR,KAAaA,CAAC,KAAG,MAAME,EAAC;AAAA,EAAE,GAAE,SAAQA,GAAE,GAAGE,GAAE,UAAS,CAACJ,EAAEa,GAAE,EAAC,MAAKI,EAAC,CAAC,GAAEd,EAAE,OAAM,EAAC,WAAU,gCAA+B,UAAS,CAACH,EAAEc,GAAE,EAAC,MAAKI,EAAC,CAAC,GAAElB,EAAEe,GAAE,EAAC,MAAKU,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC;AAAC;AAAC,SAASie,GAAG,EAAC,WAAU,GAAE,MAAK,GAAE,SAAQrf,IAAE,qBAAoB,GAAG,EAAC,GAAE;AAAC,MAAG,CAAC;AAAE,WAAO;AAAK,QAAM,IAAEG,EAAE,6BAA4B,CAAC;AAAE,SAAOR,EAAE,OAAM,EAAC,WAAU,GAAE,GAAG,GAAE,UAASA,EAAE,OAAM,EAAC,KAAI,GAAE,KAAIK,EAAC,CAAC,EAAC,CAAC;AAAC;AAAC,SAASsf,GAAG,EAAC,MAAK,GAAE,GAAG,EAAC,GAAE;AAAC,SAAO3f,EAAEsB,IAAE,EAAC,MAAK,GAAE,GAAG,EAAC,CAAC;AAAC;AAAC,SAASse,GAAG,EAAC,WAAU,GAAE,MAAK,GAAE,GAAGvf,EAAC,GAAE;AAAC,QAAM,IAAEG,EAAE,oCAAmC,CAAC;AAAE,SAAOR,EAAE,KAAI,EAAC,WAAU,GAAE,GAAGK,GAAE,UAAS,EAAC,CAAC;AAAC;AAAC,SAASwf,GAAG,EAAC,WAAUvf,GAAE,cAAaD,EAAC,GAAE;AAAC,QAAMD,IAAEI,EAAE,0BAAyBF,CAAC,GAAE,EAAC,cAAaC,EAAC,IAAE2e,GAAE,GAAGve,IAAEG,GAAG,MAAI,SAASd,GAAE;AAAC,UAAMG,IAAE,CAAA,GAAGG,IAAE;AAAG,QAAG,CAACN;AAAE;AAAO,IAAAA,EAAE,QAAS,CAAAA,MAAG;;AAAC,YAAK,EAAC,WAAUK,GAAE,aAAYD,EAAC,IAAEJ,GAAEO,IAAE,EAAC,GAAGP,GAAE,UAAS,CAAA,EAAE;AAAE,UAAGI,KAAGA,EAAE,SAAO,GAAE;AAAC,YAAIJ;AAAE,QAAAI,EAAE,QAAS,CAACD,GAAEE,MAAI;;AAAC,UAAIA,MAAJ,IAAML,IAAEM,EAAEH,CAAC,IAAEH,MAAIA,KAAEuC,IAAAvC,EAAE,aAAF,gBAAAuC,EAAY,KAAM,CAAAvC,MAAGA,EAAE,cAAYG;AAAA,QAAI,IAAIH,OAAGuC,IAAAvC,EAAE,aAAF,QAAAuC,EAAY,KAAKhC;AAAA,MAAE;AAAM,QAAAF,KAAGF,EAAE,KAAKI,CAAC,GAAED,EAAED,CAAC,IAAEE,KAAGJ,EAAE,KAAKI,CAAC;AAAE,MAAAF,MAAIC,EAAED,CAAC,IAAEE;AAAA,IAAE;AAAI,UAAMF,IAAE,CAAAL,MAAG;AAAC,MAAAA,EAAE,QAAS,CAAAA,MAAG;AAAC,QAAAA,EAAE,YAAcA,EAAE,SAAS,WAAf,IAAsB,OAAOA,EAAE,WAASA,EAAE,YAAUK,EAAEL,EAAE,QAAQ;AAAA,MAAC,CAAC;AAAA,IAAE;AAAE,WAAOK,EAAEF,CAAC,GAAEA;AAAA,EAAC,EAAEE,EAAE,OAAO,GAAG,CAACA,EAAE,OAAO,CAAC,GAAEO,IAAE,CAACT,GAAEG,MAAIH,EAAE,WAASH,EAAEgP,IAAG,EAAC,MAAK7O,EAAE,OAAM,UAASA,EAAE,SAAS,IAAIS,CAAC,EAAC,GAAE,GAAGT,EAAE,KAAK,IAAIG,CAAC,EAAE,KAAG,CAACH,GAAEG,MAAIN,EAAEgP,GAAG,MAAK,EAAC,UAAShP,EAAEO,GAAE,EAAC,SAAQ,QAAO,WAAU,iDAAgD,oBAAmBJ,GAAE,gBAAeE,EAAE,GAAE,CAAC,EAAC,GAAE,GAAGF,EAAE,KAAK,IAAIG,CAAC,EAAE,GAAGH,GAAEG,CAAC;AAAE,SAAON,EAAE,OAAM,EAAC,WAAUI,GAAE,UAASJ,EAAE4C,IAAE,EAAC,OAAM,SAAQ,UAASjC,KAAA,gBAAAA,EAAG,IAAK,CAACL,GAAEF,MAAIE,EAAE,WAASH,EAAEyC,IAAE,EAAC,SAAQ,UAAS,UAAS,CAAC5C,EAAEO,GAAE,EAAC,oBAAmBD,GAAE,SAAYF,MAAJ,IAAM,YAAU,WAAU,gBAAeC,EAAE,GAAE,CAAC,GAAEL,EAAEgP,IAAG,EAAC,SAAY5O,MAAJ,IAAM,YAAU,WAAU,MAAK,YAAW,UAASE,EAAE,SAAS,IAAIM,CAAC,EAAC,CAAC,CAAC,EAAC,GAAE,GAAGN,EAAE,KAAK,IAAIF,CAAC,EAAE,IAAEJ,EAAEO,GAAE,EAAC,oBAAmBD,GAAE,SAAYF,MAAJ,IAAM,YAAU,QAAO,gBAAeC,EAAE,GAAE,GAAE,GAAGC,EAAE,KAAK,IAAIF,CAAC,EAAE,GAAG,CAAC,EAAC,CAAC;AAAC;AAAC,SAAS0f,GAAG,EAAC,oBAAmB,GAAE,GAAG,EAAC,GAAE;AAAC,QAAMzf,IAAEE,GAAG,CAAAP,MAAG;AAAC,IAAAA,EAAE,gBAAe,GAAG,EAAE,QAAQ,EAAC,OAAM,GAAE,CAAC;AAAA,EAAC,GAAG,CAAC,CAAC,CAAC;AAAE,SAAOA,EAAEwB,IAAE,EAAC,MAAK,EAAE,OAAM,SAAQnB,GAAE,GAAG,EAAC,CAAC;AAAC;AAAC,MAAM0f,KAAG,EAAC,QAAOd,IAAG,aAAYE,IAAG,aAAYC,IAAG,YAAWC,IAAG,aAAYC,IAAG,iBAAgBC,IAAG,oBAAmBC,IAAG,mBAAkBlK,IAAG,MAAKmK,IAAG,UAASC,IAAG,WAAUC,IAAG,iBAAgBC,IAAG,QAAOC,IAAG,cAAaC,GAAE,GAAEE,KAAGrf,GAAEof,EAAE,GAAEE,KAAG/e,GAAG,CAAC,EAAC,UAAS,GAAE,YAAW,EAAC,MAAI;AAAC,QAAMb,IAAES,GAAG,OAAK,EAAC,GAAGif,IAAG,GAAG,EAAC,IAAI,CAAC,CAAC,CAAC;AAAE,SAAO/f,EAAEggB,GAAG,UAAS,EAAC,OAAM3f,GAAE,UAAS,EAAC,CAAC;AAAC,CAAG;AAAC,SAAS6e,GAAGlf,GAAE;AAAC,SAAM,EAAC,GAAGY,GAAEof,EAAE,GAAE,GAAGhgB,EAAC;AAAC;AAAC,SAASkgB,GAAG,EAAC,WAAU5f,GAAE,cAAaD,GAAE,GAAGD,EAAC,GAAE;AAAC,QAAK,EAAC,QAAOG,GAAE,MAAKI,GAAE,QAAOC,EAAC,IAAEse,GAAE,GAAG,EAAC,UAASre,EAAC,IAAER,GAAES,IAAEN,EAAE,mBAAkB,aAAYK,KAAA,gBAAAA,EAAG,kBAAe,MAAM,IAAoBR,EAAE,UAAnB,kBAA0B,aAAYC,CAAC;AAAE,SAAOH,EAAE,OAAM,EAAC,WAAUW,GAAE,GAAGV,GAAE,UAAS,CAACJ,EAAEO,GAAE,EAAC,cAAaF,EAAC,CAAC,GAAEL,EAAEW,GAAE,EAAC,cAAaN,EAAC,CAAC,GAAEL,EAAEY,GAAE,EAAC,cAAaP,EAAC,CAAC,CAAC,EAAC,CAAC;AAAC;AAAC,SAAS8f,GAAG,EAAC,YAAW,GAAE,cAAa,GAAE,GAAG9f,EAAC,GAAE;AAAC,SAAOL,EAAEigB,IAAG,EAAC,YAAW,GAAE,UAASjgB,EAAEkgB,IAAG,EAAC,cAAa,GAAE,GAAG7f,EAAC,CAAC,EAAC,CAAC;AAAC;AAAC,SAAS+f,GAAG,EAAC,WAAU9f,GAAE,eAAcD,GAAE,GAAGD,EAAC,GAAE;AAAC,QAAK,CAACO,GAAEC,CAAC,IAAEC,GAAE,EAAE,GAAEC,IAAET,EAAE,UAAQ,IAAE,UAAQ,UAASU,IAAMV,EAAE,WAAN,IAAa,UAAQS,GAAEE,IAAEX,EAAE,CAAC,EAAE,UAASY,IAAET,EAAE,yBAAwBG,KAAG,8BAAwCI,MAAX,YAAc,CAAC,yBAAyBA,CAAC,EAAE,GAAEC,KAAYA,MAAT,UAAY,CAAC,yBAAyBA,EAAE,YAAa,CAAA,EAAE,GAAEV,CAAC,GAAEY,IAAEX,GAAG,MAAI;AAAC,IAAAK,EAAE,EAAE;AAAA,EAAC,GAAG,CAAE,CAAA,GAAEa,IAAElB,GAAG,CAAAP,MAAG;AAAC,IAAAA,EAAE,gBAAiB,GAACK,EAAE,QAAS,CAAAL,MAAG;AAAC,MAAAA,EAAE,MAAK;AAAA,IAAE,CAAG;AAAA,EAAA,GAAG,CAACK,CAAC,CAAC;AAAE,SAAOF,EAAE,OAAM,EAAC,WAAUc,GAAE,SAAQC,GAAE,GAAGd,GAAE,UAAS,CAACO,KAAcI,MAAX,YAAcf,EAAE,OAAM,EAAC,WAAU,6BAA4B,UAASA,EAAEwB,IAAE,EAAC,MAAK,SAAQ,SAAQ,CAAAxB,MAAGyB,EAAEzB,CAAC,GAAE,UAASA,EAAE,QAAO,EAAC,WAAU,eAAc,UAAS,YAAW,CAAC,EAAC,CAAC,EAAC,CAAC,GAAEK,EAAE,IAAK,CAAAF,MAAGH,EAAEmgB,IAAG,EAAC,cAAahgB,EAAC,GAAEA,EAAE,EAAE,EAAG,EAAC,CAAC;AAAC;AAAC,SAASkgB,GAAG,EAAC,GAAG,EAAC,GAAE;AAAC,QAAK,EAAC,oBAAmBhgB,EAAC,IAAEyb;AAAK,SAAO9b,EAAEM,IAAE,EAAC,UAASD,EAAE,IAAK,CAAAC,MAAGN,EAAEogB,IAAG,EAAC,eAAc9f,EAAE,OAAM,GAAG,EAAC,GAAEA,EAAE,GAAG,CAAG,EAAA,CAAC;AAAC;AAAC2f,GAAG,cAAY;AAA0B,MAAMK,KAAG,CAAC,EAAC,cAAahgB,GAAE,cAAaD,GAAE,GAAGD,EAAC,MAAI;;AAAC,QAAK,EAAC,eAAcG,GAAE,wBAAuBI,GAAE,uBAAsBC,GAAE,oBAAmBC,EAAC,IAAEib,GAAE,GAAG,EAAC,gBAAehb,GAAE,sBAAqBC,EAAC,IAAEqd,GAAI,GAACpd,MAAEuB,IAAAhC,EAAE,iBAAF,gBAAAgC,EAAgB,UAAO,IAAGtB,IAAEX,EAAE,UAAQU,EAAE,SAASV,EAAE,MAAM,KAAGU,EAAE,SAAS,GAAG;AAAE,MAAG,CAACF,KAAGG;AAAE,WAAO;AAAK,QAAMC,IAAEJ,KAAGH,KAAGI,GAAEU,IAAEb,EAAE,SAASN,EAAE,EAAE;AAAE,SAAOY,IAAEf,EAAE,OAAM,EAAC,WAAUK,EAAE,yCAAwC,EAAC,UAASiB,EAAC,CAAC,GAAE,UAAS,CAACzB,EAAE4P,IAAG,EAAC,SAAQnO,GAAE,UAAS,CAAAzB,MAAGa,EAAEP,EAAE,IAAGN,EAAE,OAAO,OAAO,EAAC,CAAC,GAAEA,EAAEK,GAAE,EAAC,cAAaC,GAAE,GAAGF,EAAC,CAAC,CAAC,EAAC,CAAC,IAAEJ,EAAEK,GAAE,EAAC,cAAaC,GAAE,GAAGF,EAAC,CAAC;AAAC;AAAE,SAASmgB,GAAG,EAAC,WAAUjgB,GAAE,cAAaD,GAAE,eAAcD,IAAE,IAAG,oBAAmBG,IAAE,+BAA8B,GAAGI,EAAC,GAAE;AAAC,QAAMC,IAAEJ,EAAE,wBAAuBF,CAAC,GAAE,EAAC,UAASO,EAAC,IAAEib,MAAK,EAAC,gBAAehb,EAAC,IAAEsd,GAAI,GAAC,EAAC,eAAcrd,EAAC,IAAEF,GAAEG,IAAED,KAAG,CAACD,GAAEG,IAAEb,EAAE,SAAO;AAAE,SAAOD,EAAE,OAAM,EAAC,WAAUS,GAAE,GAAGD,GAAE,UAAS,CAACK,KAAGhB,EAAEqgB,IAAG,CAAE,CAAA,GAAE,CAACrf,MAAIC,IAAEb,EAAE,IAAK,CAAAD,MAAGH,EAAEsgB,IAAG,EAAC,cAAangB,GAAE,cAAaE,GAAE,GAAGM,EAAC,GAAER,EAAE,EAAE,CAAG,IAACH,EAAE,OAAM,EAAC,WAAU,uBAAsB,UAASO,EAAC,CAAC,EAAE,EAAC,CAAC;AAAC;AAAC,MAAMigB,KAAG,EAAC,QAAOnC,IAAG,oBAAmBE,IAAG,oBAAmB,SAAS,EAAC,SAAQ,IAAE,WAAU,GAAG,EAAC,GAAE;AAAC,QAAK,EAAC,oBAAmBle,IAAE,EAAC,IAAEyb,GAAI;AAAC,SAAWzb,MAAJ,IAAM,OAAKL,EAAEqB,IAAE,EAAC,SAAQ,GAAE,GAAG,GAAE,UAAShB,IAAE,KAAG,QAAMA,EAAC,CAAC;AAAC,GAAE,6BAA4B,SAAS,EAAC,MAAK,IAAE,OAAM,MAAK,IAAE,MAAK,SAAQA,IAAE,UAAS,GAAG,EAAC,GAAE;AAAC,SAAO8P,GAAI,IAACnQ,EAAEU,IAAE,EAAC,MAAK,GAAE,MAAK,GAAE,SAAQL,GAAE,GAAG,EAAC,CAAC,IAAE;AAAI,GAAE,0BAAyB,SAAS,EAAC,MAAK,IAAE,SAAQ,MAAK,IAAE,MAAK,SAAQA,IAAE,UAAS,SAAQ,GAAE,GAAG,EAAC,GAAE;AAAC,QAAK,EAAC,WAAUM,EAAC,IAAEmb,GAAE,GAAGlb,IAAEuP,GAAE;AAAG,SAAOnQ,EAAEU,IAAE,EAAC,MAAK,GAAE,MAAK,GAAE,SAAQL,GAAE,SAAQ,CAAAL,MAAG;AAAC,QAAE,EAAEA,CAAC,IAAEY,KAAGD,EAAG;AAAA,EAAA,GAAE,GAAG,EAAC,CAAC;AAAC,GAAE,eAAc,SAAS,EAAC,WAAUL,GAAE,GAAGD,EAAC,GAAE;AAAC,QAAMD,IAAEI,EAAE,2BAA0BF,CAAC,GAAE,EAAC,kBAAiBC,GAAE,kBAAiBI,GAAE,mBAAkBC,GAAE,kBAAiBC,EAAC,IAAEyd,GAAE;AAAG,SAAOne,EAAE,OAAM,EAAC,WAAUC,GAAE,GAAGC,GAAE,UAAS,CAACF,EAAEyC,IAAE,EAAC,UAAS,CAAC5C,EAAEO,GAAE,CAAA,CAAE,GAAEP,EAAEW,GAAE,CAAE,CAAA,CAAC,EAAC,CAAC,GAAER,EAAEyC,IAAE,EAAC,UAAS,CAAC5C,EAAEY,GAAE,CAAE,CAAA,GAAEZ,EAAEa,GAAE,CAAA,CAAE,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC;AAAC,GAAE,kBAAiB,SAAS,EAAC,MAAKP,IAAE,WAAU,GAAGD,EAAC,GAAE;AAAC,QAAK,EAAC,qBAAoBD,GAAE,WAAUO,EAAC,IAAEyd,GAAI,GAAC,EAAC,qBAAoBxd,EAAC,KAAG,MAAI;AAAC,UAAK,EAAC,eAAcZ,EAAC,IAAE8b,MAAK,CAAC3b,GAAEG,CAAC,IAAEO,GAAE2a,EAAE,GAAE,EAAC,KAAInb,GAAE,YAAWD,EAAC,IAAED,GAAEQ,IAAEG,GAAG,MAAI6d,GAAGte,CAAC,EAAEL,GAAEI,CAAC,GAAG,CAACJ,GAAEK,GAAED,CAAC,CAAC;AAAoF,WAAM,EAAC,qBAAvFG,GAAG,CAAAP,MAAG;AAAC,MAAAM,EAAG,CAAAH,OAAI,EAAC,KAAIH,GAAE,YAAWG,EAAE,QAAMH,IAAEwb,GAAG,aAAW,CAACrb,EAAE,WAAU,EAAI;AAAA,IAAA,GAAG,CAAE,CAAA,GAA+B,qBAAoBQ,EAAC;AAAA,EAAC,GAAI;AAAC,SAAOR,EAAEwC,IAAE,EAAC,SAAQ,SAAQ,GAAGtC,GAAE,UAAS,CAACF,EAAEwC,GAAE,QAAO,EAAC,SAAQ,QAAO,UAAS,CAACrC,GAAE,KAAIN,EAAE,UAAS,EAAC,UAASI,EAAC,CAAC,CAAC,EAAC,CAAC,GAAEJ,EAAE2C,GAAE,SAAQ,EAAC,UAAS3C,EAAE2C,GAAE,MAAK,EAAC,SAAQ,UAAS,WAAU,SAAQ,UAAS,CAAC,UAAS,UAAS,UAAU,EAAE,IAAK,CAAAxC,MAAGH,EAAE2C,GAAE,MAAK,EAAC,YAAWvC,MAAID,EAAE,eAAc,SAAQ,MAAI;AAAC,IAAAQ,EAAER,EAAE,aAAa,GAAES,EAAET,EAAE,YAAW,CAAE;AAAA,EAAC,GAAE,UAASA,EAAC,GAAEA,CAAC,CAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC;AAAC,GAAE,kBAAiB,SAAS,EAAC,MAAKG,IAAE,QAAO,GAAGD,EAAC,GAAE;;AAAC,QAAK,EAAC,UAASD,EAAC,IAAE0b,GAAE,GAAG,EAAC,qBAAoBvb,GAAE,WAAUI,EAAC,IAAEyd,GAAE,GAAGxd,KAAE2B,IAAAnC,EAAE,WAAF,QAAAmC,EAAU,UAAQ,CAAC,OAAM,QAAO,UAAS,SAAS,IAAE,CAAC,OAAM,QAAO,QAAQ;AAAE,SAAOpC,EAAEwC,IAAE,EAAC,SAAQ,SAAQ,GAAGtC,GAAE,UAAS,CAACF,EAAEwC,GAAE,QAAO,EAAC,SAAQ,QAAO,UAAS,CAACrC,GAAE,KAAIN,EAAE,UAAS,EAAC,UAASO,EAAC,CAAC,CAAC,EAAC,CAAC,GAAEP,EAAE2C,GAAE,SAAQ,EAAC,UAAS3C,EAAE2C,GAAE,MAAK,EAAC,SAAQ,UAAS,WAAU,SAAQ,UAAS/B,EAAE,IAAK,CAAAT,MAAGH,EAAE2C,GAAE,MAAK,EAAC,YAAWpC,MAAIJ,EAAE,eAAc,SAAQ,MAAIQ,EAAER,EAAE,YAAW,CAAE,GAAE,UAASA,EAAC,GAAEA,CAAC,CAAG,EAAA,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC;AAAC,GAAE,mBAAkB,SAAS,EAAC,MAAK,IAAE,aAAY,GAAG,EAAC,GAAE;AAAC,QAAK,EAAC,UAASE,GAAE,oBAAmB,EAAC,IAAEyb,GAAE;AAAG,SAAO9b,EAAEwB,IAAE,EAAC,SAAQ,QAAO,MAAK,GAAE,SAAQnB,GAAE,UAAa,MAAJ,GAAM,GAAG,EAAC,CAAC;AAAC,GAAE,kBAAiB,SAAS,EAAC,SAAQ,IAAE,aAAY,GAAG,EAAC,GAAE;AAAC,QAAK,EAAC,wBAAuBA,GAAE,oBAAmB,EAAC,IAAEyb,GAAI,GAAC,EAAC,iBAAgB,EAAC,IAAEsC,GAAE;AAAG,SAAO/d,IAAEL,EAAEU,IAAE,EAAC,MAAK,iBAAgB,OAAM,GAAE,MAAK,MAAK,SAAQ,GAAE,UAAa,MAAJ,GAAM,GAAG,EAAC,CAAC,IAAE;AAAI,GAAE,mBAAkB,SAAS,EAAC,WAAUJ,GAAE,GAAGD,EAAC,GAAE;AAAC,QAAMD,IAAEI,EAAE,gCAA+BF,CAAC,GAAE,EAAC,wBAAuBC,GAAE,gCAA+BI,GAAE,4BAA2BC,GAAE,8BAA6BC,GAAE,wBAAuBC,GAAE,uBAAsBC,GAAE,uBAAsBC,EAAC,IAAEsd,MAAK,EAAC,wBAAuBrd,EAAC,IAAE6a,GAAI;AAAC,SAAO7a,IAAEjB,EAAE,OAAM,EAAC,WAAUI,GAAE,GAAGC,GAAE,UAASF,EAAEyC,IAAE,EAAC,UAAS,CAAC5C,EAAEO,GAAE,CAAA,CAAE,GAAEP,EAAEW,GAAE,CAAE,CAAA,GAAEX,EAAEY,GAAE,EAAE,GAAEZ,EAAEa,GAAE,CAAE,CAAA,GAAEb,EAAEc,GAAE,EAAE,GAAEd,EAAEe,GAAE,CAAA,CAAE,GAAEf,EAAEgB,GAAE,EAAE,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE;AAAI,GAAE,wBAAuB,SAAS,EAAC,GAAG,EAAC,GAAE;AAAC,QAAK,EAAC,wBAAuB,GAAE,uBAAsBX,GAAE,wBAAuB,GAAE,oBAAmB,EAAC,IAAEyb,GAAE;AAAG,SAAO,IAAE9b,EAAE4P,IAAG,EAAC,SAAQ,MAAIvP,EAAE,UAAQ,IAAE,GAAE,UAAS,CAAAL,MAAG,EAAE,OAAMA,EAAE,OAAO,OAAO,GAAE,UAAa,MAAJ,GAAM,GAAG,EAAC,CAAC,IAAE;AAAI,GAAE,gCAA+B,SAAS,EAAC,GAAGM,EAAC,GAAE;AAAC,QAAK,EAAC,wBAAuBD,GAAE,wBAAuBD,GAAE,oBAAmBG,EAAC,IAAEub,GAAE;AAAG,SAAOzb,IAAEF,EAAEwC,IAAE,EAAC,SAAQ,SAAQ,GAAGrC,GAAE,UAAS,CAACN,EAAE2C,GAAE,YAAW,EAAC,SAAQ,WAAU,MAAK,gBAAe,MAAK,MAAK,UAAS,MAAK,UAAapC,MAAJ,EAAK,CAAC,GAAEP,EAAE8B,IAAE,EAAC,UAAS3B,EAAEwC,GAAE,MAAK,EAAC,SAAQ,UAAS,WAAU,SAAQ,UAAS,CAAC3C,EAAE2C,GAAE,aAAY,EAAC,UAAS,SAAQ,CAAC,GAAE,CAAC,OAAM,QAAO,UAAS,SAAS,EAAE,IAAK,CAAAxC,MAAGH,EAAE2C,GAAE,MAAK,EAAC,SAAQ,MAAIvC,EAAED,EAAE,YAAW,GAAG,EAAE,GAAE,UAASA,EAAC,GAAEA,CAAC,CAAG,CAAA,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,IAAE;AAAI,GAAE,4BAA2B,SAAS,EAAC,MAAK,IAAE,iBAAgB,MAAK,IAAE,MAAK,SAAQE,IAAE,UAAS,SAAQ,IAAE,gBAAe,GAAGM,EAAC,GAAE;AAAC,QAAK,EAAC,wBAAuBC,GAAE,uBAAsBC,GAAE,WAAUC,GAAE,oBAAmBC,EAAC,IAAE+a,GAAE,GAAG9a,IAAET,GAAG,MAAI;AAAC,IAAAO,EAAED,GAAE,MAAM;AAAA,EAAC,GAAG,CAACA,GAAEC,CAAC,CAAC;AAAE,SAAOF,IAAEZ,EAAEU,IAAE,EAAC,MAAK,GAAE,MAAK,GAAE,SAAQL,GAAE,OAAM,GAAE,SAAQW,GAAE,UAAaD,MAAJ,GAAM,GAAGJ,EAAC,CAAC,IAAE;AAAI,GAAE,8BAA6B,SAAS,EAAC,MAAK,IAAE,YAAW,MAAK,IAAE,MAAK,SAAQN,IAAE,UAAS,SAAQ,IAAE,kBAAiB,GAAGM,EAAC,GAAE;AAAC,QAAK,EAAC,wBAAuBC,GAAE,uBAAsBC,GAAE,WAAUC,GAAE,oBAAmBC,EAAC,IAAE+a,GAAE,GAAG9a,IAAET,GAAG,MAAI;AAAC,IAAAO,EAAED,GAAE,QAAQ;AAAA,EAAC,GAAG,CAACA,GAAEC,CAAC,CAAC;AAAE,SAAOF,IAAEZ,EAAEU,IAAE,EAAC,MAAK,GAAE,MAAK,GAAE,SAAQL,GAAE,OAAM,GAAE,SAAQW,GAAE,UAAaD,MAAJ,GAAM,GAAGJ,EAAC,CAAC,IAAE;AAAI,GAAE,wBAAuB,SAAS,EAAC,MAAK,IAAE,UAAS,MAAK,IAAE,MAAK,SAAQN,IAAE,UAAS,SAAQ,IAAE,UAAS,GAAGM,EAAC,GAAE;;AAAC,QAAK,EAAC,wBAAuBC,GAAE,uBAAsBC,GAAE,YAAWC,GAAE,UAASC,GAAE,oBAAmBC,EAAC,IAAE8a,GAAI,GAAC7a,IAAEV,GAAG,MAAI;;AAAC,IAAAO,EAAED,KAAE0B,IAAAxB,EAAE,WAAF,gBAAAwB,EAAU,aAAU,CAAC;AAAA,EAAC,GAAG,CAAC1B,GAAEC,IAAEyB,IAAAxB,EAAE,WAAF,gBAAAwB,EAAU,QAAQ,CAAC;AAAE,SAAO3B,OAAG4B,IAAAzB,EAAE,WAAF,QAAAyB,EAAU,WAAQxC,EAAEU,IAAE,EAAC,MAAK,GAAE,MAAK,GAAE,SAAQL,GAAE,OAAM,GAAE,SAAQY,GAAE,UAAaD,MAAJ,GAAM,GAAGL,EAAC,CAAC,IAAE;AAAI,GAAE,uBAAsB,SAAS,EAAC,MAAK,IAAE,SAAQ,MAAK,IAAE,MAAK,SAAQN,IAAE,UAAS,SAAQ,IAAE,SAAQ,GAAGM,EAAC,GAAE;AAAC,QAAK,EAAC,wBAAuBC,GAAE,uBAAsBC,GAAE,WAAUC,GAAE,oBAAmBC,EAAC,IAAE+a,MAAK9a,IAAET,GAAG,MAAI;AAAC,IAAAO,EAAED,CAAC;AAAA,EAAC,GAAG,CAACA,GAAEC,CAAC,CAAC;AAAE,SAAOF,IAAEZ,EAAEU,IAAE,EAAC,MAAK,GAAE,MAAK,GAAE,SAAQL,GAAE,OAAM,GAAE,SAAQW,GAAE,UAAaD,MAAJ,GAAM,GAAGJ,EAAC,CAAC,IAAE;AAAI,GAAE,uBAAsB,SAAS,EAAC,MAAK,IAAE,QAAO,SAAQ,IAAE,WAAU,GAAGN,EAAC,GAAE;AAAC,QAAK,EAAC,wBAAuB,GAAE,oBAAmB,EAAC,IAAEyb,MAAK,EAAC,iBAAgBnb,EAAC,IAAEyd,GAAI;AAAC,SAAO,IAAEpe,EAAEwB,IAAE,EAAC,SAAQ,GAAE,MAAK,GAAE,SAAQb,GAAE,UAAa,MAAJ,GAAM,GAAGN,EAAC,CAAC,IAAE;AAAI,GAAE,cAAa,SAAS,EAAC,WAAUC,GAAE,MAAKD,IAAE,UAAS,aAAYD,IAAE,UAAS,GAAGG,EAAC,GAAE;AAAC,QAAMI,IAAEH,EAAE,0BAAyBF,CAAC,GAAE,EAAC,oBAAmBM,EAAC,IAAEkb,MAAK,EAAC,aAAYjb,GAAE,WAAUC,EAAC,IAAEsd,GAAE,GAAGrd,IAAEC,GAAE,IAAI;AAAE,SAAOb,EAAE,OAAM,EAAC,WAAUQ,GAAE,UAAS,CAACX,EAAE0P,IAAG,EAAC,KAAI3O,GAAE,OAAMF,GAAE,aAAYR,GAAE,aAAYD,GAAE,UAAS,CAAAJ,MAAGc,EAAEd,EAAE,OAAO,KAAK,GAAE,GAAGO,EAAC,CAAC,GAAEM,EAAE,SAAO,KAAGb,EAAE,KAAI,EAAC,WAAU,gCAA+B,UAAS,GAAGY,CAAC,WAAU,CAAC,CAAC,EAAC,CAAC;AAAC,GAAE,MAAKge,IAAG,QAAOC,IAAG,eAAcC,IAAG,sBAAqBC,IAAG,yBAAwBC,IAAG,cAAamB,IAAG,mBAAkBI,GAAE,GAAEE,KAAG9f,GAAE6f,EAAE,GAAEE,KAAGxf,GAAG,CAAC,EAAC,UAAS,GAAE,YAAW,EAAC,MAAI;AAAC,QAAMb,IAAES,GAAG,OAAK,EAAC,GAAG0f,IAAG,GAAG,EAAC,IAAI,CAAC,CAAC,CAAC;AAAE,SAAOxgB,EAAEygB,GAAG,UAAS,EAAC,OAAMpgB,GAAE,UAAS,EAAC,CAAC;AAAC;AAAI,SAASie,GAAGte,GAAE;AAAC,SAAM,EAAC,GAAGY,GAAE6f,EAAE,GAAE,GAAGzgB,EAAC;AAAC;AAAC,SAAS2gB,KAAI;;AAAC,QAAM3gB,IAAEY,GAAEqB,EAAC,GAAE,EAAC,UAAS9B,EAAC,IAAE2b,MAAKxb,IAAE6P,MAAK9P,IAAEE,GAAG,YAAS;;AAAC,UAAMF,IAAEL,EAAE,QAAQ,GAAE;AAAG,QAAG,CAACA,KAAG,CAACK,KAAG,CAACC;AAAE;AAAO,UAAMF,IAAEC,EAAE;AAAkB,UAAMA,EAAE,MAAM,EAAC,GAAGD,GAAE,sBAAoBmC,IAAApC,EAAE,cAAF,gBAAAoC,EAAa,MAAK,CAAC;AAAA,EAAC,GAAG,CAACvC,GAAEM,IAAEiC,IAAApC,EAAE,cAAF,gBAAAoC,EAAa,KAAK,CAAC;AAAExB,EAAAA,GAAG,MAAI;;AAAC,IAAAf,OAAGuC,IAAApC,EAAE,cAAF,QAAAoC,EAAa,UAAOjC,KAAGD,EAAC,EAAG,MAAM,QAAQ,KAAK;AAAA,EAAC,GAAG,CAACL,GAAEM,GAAED,IAAEmC,IAAArC,EAAE,cAAF,gBAAAqC,EAAa,KAAK,CAAC;AAAC;AAAC,SAASoe,GAAG,EAAC,WAAUvgB,GAAE,SAAQD,GAAE,OAAMG,IAAE,iBAAgB,GAAGI,EAAC,GAAE;;AAAC,QAAK,EAAC,QAAOC,GAAE,MAAKE,EAAC,IAAEwd,GAAE,GAAG,EAAC,UAAStd,EAAC,IAAE8a,MAAK,EAAC,gBAAe7a,EAAC,IAAEmd,GAAI,GAAC,CAACld,GAAEO,CAAC,IAAEZ,GAAE,EAAE,GAAE,IAAEsP,GAAI,GAACxO,IAAEnB,EAAE,4BAAkC+B,IAAAvB,EAAE,cAAF,gBAAAuB,EAAa,WAAtB,UAA6B,mBAA0BC,IAAAxB,EAAE,cAAF,gBAAAwB,EAAa,WAAvB,WAA8B,kBAAiBnC,CAAC;AAAE,SAAOsgB,GAAI,GAAC5f,GAAG,MAAI;AAAC,IAAAE,KAAGQ,EAAE,EAAE;AAAA,EAAC,GAAG,CAACR,CAAC,CAAC,GAAEd,EAAEG,IAAE,EAAC,UAAS,CAACH,EAAEmP,IAAG,EAAC,WAAU3N,GAAE,GAAGhB,GAAE,UAAS,CAACX,EAAEY,GAAE,EAAC,OAAML,GAAE,SAAQH,GAAE,gBAAe,MAAIqB,EAAE,EAAE,EAAC,CAAC,GAAEzB,EAAEc,GAAE,CAAA,CAAE,CAAC,EAAC,CAAC,GAAE,KAAGG,KAAGjB,EAAEke,IAAG,EAAC,QAAOhd,GAAE,SAAQ,MAAIO,EAAE,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC;AAAC;AAACif,GAAG,cAAY;AAA0B,MAAMG,KAAG,EAAC,MAAK,SAAS,EAAC,WAAU,GAAE,eAAc,GAAE,WAAUxgB,IAAE,GAAE,GAAG,EAAC,GAAE;AAAC,QAAM,IAAEG,EAAE,kBAAiB,CAAC,GAAE,EAAC,mBAAkBG,GAAE,cAAaC,EAAC,IAAEkgB,GAAI,GAAC,CAAChgB,GAAEE,CAAC,IAAEH,GAAE,CAAA,CAAE;AAAE,SAAOE,GAAG,MAAI;AAAC,UAAMf,IAAEK,IAAE,IAAE,EAAE,SAAOA,GAAEF,IAAE,EAAE,OAAQ,CAAAH,MAAcA,EAAE,UAAb,QAAkB,EAAG,MAAM,GAAEA,CAAC;AAAE,eAAUA,KAAKG;AAAE,MAAAH,EAAE;AAAS,IAAAgB,EAAEb,CAAC;AAAA,EAAC,GAAG,CAAC,GAAEE,CAAC,CAAC,GAAEL,EAAE,OAAM,EAAC,WAAU,GAAE,GAAG,GAAE,UAASA,EAAEW,GAAE,EAAC,cAAaC,GAAE,eAAcE,GAAE,oBAAmB,GAAE,CAAC,EAAC,CAAC;AAAC,GAAE,cAAaqf,IAAG,mBAAkBI,GAAE,GAAEQ,KAAGpgB,GAAEkgB,EAAE,GAAEG,KAAG9f,GAAG,CAAC,EAAC,UAAS,GAAE,YAAW,EAAC,MAAI;AAAC,QAAMb,IAAES,GAAG,OAAK,EAAC,GAAG+f,IAAG,GAAG,EAAC,IAAI,CAAC,CAAC,CAAC;AAAE,SAAO7gB,EAAE+gB,GAAG,UAAS,EAAC,OAAM1gB,GAAE,UAAS,EAAC,CAAC;AAAC;AAAI,SAASygB,GAAG9gB,GAAE;AAAC,SAAM,EAAC,GAAGY,GAAEmgB,EAAE,GAAE,GAAG/gB,EAAC;AAAC;AAAC,SAASihB,KAAI;;AAAC,QAAMjhB,IAAEY,GAAEqB,EAAC,GAAE,EAAC,UAAS9B,EAAC,IAAE2b,GAAE,GAAGxb,IAAEC,GAAG,YAAS;;AAAC,UAAMD,IAAEN,EAAE,QAAQ,GAAI;AAAC,QAAG,CAACA,KAAG,CAACM;AAAE;AAAO,UAAMD,IAAEC,EAAE;AAAkB,UAAMA,EAAE,MAAM,EAAC,GAAGD,GAAE,uBAAkCkC,IAAApC,EAAE,cAAF,gBAAAoC,EAAa,YAA3B,iBAAoDC,IAAArC,EAAE,cAAF,gBAAAqC,EAAa,YAA9B,iBAAqC,UAAQ,OAAM,CAAC;AAAA,EAAC,GAAG,CAACxC,IAAEuC,IAAApC,EAAE,cAAF,gBAAAoC,EAAa,MAAM,CAAC;AAAExB,EAAAA,GAAG,MAAI;;AAAC,IAAAf,OAAGuC,IAAApC,EAAE,cAAF,QAAAoC,EAAa,WAAQjC,EAAC,EAAG,MAAM,QAAQ,KAAK;AAAA,EAAC,GAAG,CAACN,GAAEM,IAAEkC,IAAArC,EAAE,cAAF,gBAAAqC,EAAa,MAAM,CAAC;AAAC;AAAC,SAAS0e,GAAG,EAAC,WAAU5gB,GAAE,WAAUD,IAAE,IAAG,GAAGD,EAAC,GAAE;;AAAC,QAAK,EAAC,QAAOG,GAAE,MAAKI,GAAE,QAAOC,EAAC,IAAEkgB,GAAE,GAAG,EAAC,eAAcjgB,GAAE,UAASC,EAAC,IAAEgb,MAAK/a,IAAEP,EAAE,gBAA0B+B,IAAAzB,EAAE,cAAF,gBAAAyB,EAAa,YAA1B,gBAAgDC,IAAA1B,EAAE,cAAF,gBAAA0B,EAAa,YAA3B,gBAAoC,oBAA+B8S,IAAAxU,EAAE,cAAF,gBAAAwU,EAAa,YAA3B,iBAAoDC,IAAAzU,EAAE,cAAF,gBAAAyU,EAAa,YAA9B,mBAAuC,sBAAmChQ,IAAAzE,EAAE,cAAF,gBAAAyE,EAAa,YAA7B,mBAAsDwV,IAAAja,EAAE,cAAF,gBAAAia,EAAa,YAA9B,mBAAuC,uBAAiCC,IAAAla,EAAE,cAAF,gBAAAka,EAAa,YAA1B,gBAAkDuC,IAAAzc,EAAE,cAAF,gBAAAyc,EAAa,YAA7B,kBAAsC,kBAAiBjd,CAAC;AAAE,SAAO2gB,GAAI,GAAC9gB,EAAE,OAAM,EAAC,WAAUY,GAAE,GAAGX,GAAE,UAAS,CAACG,KAAGP,EAAEO,GAAE,CAAA,CAAE,GAAEP,EAAEW,GAAE,EAAC,eAAcE,GAAE,WAAUR,EAAC,CAAC,GAAEO,KAAGZ,EAAEY,GAAE,CAAE,CAAA,CAAC,EAAC,CAAC;AAAC;AAACogB,GAAG,cAAY;AAA0B,IAAIG,KAAG,OAAO,OAAO,EAAC,WAAU,MAAK,cAAahB,IAAG,kBAAiBV,IAAG,6BAA4BG,IAAG,sBAAqBF,IAAG,uBAAsBC,IAAG,oBAAmBE,IAAG,0BAAyBC,IAAG,oBAAmBb,IAAG,yBAAwBG,IAAG,+BAA8B9J,IAAG,gCAA+BkK,IAAG,yBAAwBL,IAAG,wBAAuBE,IAAG,6BAA4BE,IAAG,yBAAwBD,IAAG,mBAAkBc,IAAG,mBAAkBG,IAAG,4BAA2B,CAAC,EAAC,UAAS,EAAC,MAAI;AAAC,QAAK,EAAC,aAAY,GAAE,WAAUlgB,GAAE,gBAAe,GAAE,qBAAoB,GAAE,WAAUM,GAAE,qBAAoBK,GAAE,WAAUC,GAAE,sBAAqBC,GAAE,iBAAgBO,GAAE,iBAAgB,EAAC,IAAE,WAAU;AAAC,UAAMzB,IAAEY,GAAEqB,EAAC,GAAE,CAAC9B,GAAEG,CAAC,IAAEO,GAAE,EAAE,GAAE,CAACR,GAAED,CAAC,IAAES,GAAE,QAAQ,GAAE,CAACN,GAAEI,CAAC,IAAEE,GAAE,KAAK,GAAE,CAACC,GAAEE,CAAC,IAAEH,GAAE,EAAE,GAAE,CAACI,GAAEC,CAAC,IAAEL,GAAE,EAAE,GAAEY,IAAE0O,GAAI,GAAC,EAAC,wBAAuBzO,EAAC,IAAEoa,GAAE;AAAG,WAAO/a,GAAG,MAAI;AAAC,YAAMf,IAAE8a,GAAG,yBAA0B,CAAA9a,MAAGM,EAAEN,CAAC,CAAC;AAAG,aAAM,MAAI;AAAC,QAAAA;MAAG;AAAA,IAAC,GAAG,CAAE,CAAA,GAAEe,GAAG,MAAI;AAAC,MAAOU,MAAP,QAAUA,MAAI,YAAS;AAAC,cAAMtB,IAAE,MAAMH,EAAE,cAAc,MAAM,UAAW;AAAC,QAAAM,EAAEH,CAAC;AAAA,MAAC,GAAC;AAAA,IAAG,GAAG,CAACH,EAAE,cAAc,OAAMyB,CAAC,CAAC,GAAEV,GAAG,MAAI;AAAC,MAAAZ,MAAIe,EAAE,EAAE,GAAEP,EAAE,KAAK;AAAA,IAAE,GAAG,CAACR,CAAC,CAAC,GAAE,EAAC,gBAAeA,GAAE,qBAAoBE,GAAE,WAAU,CAAAL,MAAG;AAAC,MAAAI,EAAEJ,CAAC;AAAA,IAAC,GAAE,qBAAoBO,GAAE,WAAU,CAAAP,MAAG;AAAC,MAAAW,EAAEX,CAAC;AAAA,IAAC,GAAE,aAAYc,GAAE,WAAU,CAAAd,MAAG;AAAC,MAAAgB,EAAEhB,CAAC;AAAA,IAAC,GAAE,sBAAqBiB,GAAE,iBAAgB,MAAI;AAAC,MAAAS,KAAGR,EAAE,EAAE;AAAA,IAAC,GAAE,iBAAgB,MAAI;AAAC,MAAAQ,KAAGR,EAAE,EAAE;AAAA,IAAC,EAAC;AAAA,EAAC,EAAG,GAACS,IAAEb,GAAG,OAAK,EAAC,aAAY,GAAE,WAAUT,GAAE,gBAAe,GAAE,qBAAoB,GAAE,WAAUM,GAAE,qBAAoBK,GAAE,WAAUC,GAAE,sBAAqBC,GAAE,iBAAgBO,GAAE,iBAAgB,EAAC,IAAI,CAAC,GAAEpB,GAAE,GAAE,GAAEM,GAAEK,GAAEC,GAAEC,GAAEO,GAAE,CAAC,CAAC;AAAE,SAAOzB,EAAEme,GAAG,UAAS,EAAC,OAAMxc,GAAE,UAAS,EAAC,CAAC;AAAC,GAAE,uBAAsB,CAAC,EAAC,UAAS,EAAC,MAAI;AAAC,QAAK,EAAC,eAAc,GAAE,oBAAmBtB,GAAE,oBAAmB,GAAE,eAAc,GAAE,UAASM,GAAE,iBAAgBC,GAAE,SAAQC,GAAE,qBAAoBE,GAAE,UAASC,GAAE,aAAYC,GAAE,OAAMC,GAAE,WAAUO,GAAE,WAAUC,GAAE,aAAYC,GAAE,YAAWM,GAAE,eAAclC,GAAE,wBAAuB,GAAE,uBAAsBG,GAAE,oBAAmB,GAAE,wBAAuB,GAAE,WAAUQ,GAAE,QAAOS,GAAE,YAAWC,GAAE,UAASC,GAAE,WAAUC,GAAE,UAASC,EAAC,IAAEqa,GAAI,GAACpa,IAAEV,GAAG,OAAK,EAAC,eAAc,GAAE,oBAAmBT,GAAE,oBAAmB,GAAE,eAAc,GAAE,UAASM,GAAE,iBAAgBC,GAAE,SAAQC,GAAE,qBAAoBE,GAAE,UAASC,GAAE,aAAYC,GAAE,SAAQC,GAAE,WAAUO,GAAE,WAAUC,GAAE,aAAYC,GAAE,YAAWM,GAAE,eAAclC,GAAE,wBAAuB,GAAE,uBAAsBG,GAAE,oBAAmB,GAAE,wBAAuB,GAAE,WAAUQ,GAAE,QAAOS,GAAE,YAAWC,GAAE,UAASC,GAAE,WAAUC,GAAE,UAASC,EAAC,IAAI,CAAC,GAAElB,GAAE,GAAE,GAAEM,GAAEC,GAAEC,GAAEE,GAAEC,GAAEC,GAAEC,GAAEO,GAAEC,GAAEC,GAAEM,GAAElC,GAAE,GAAEG,GAAE,GAAE,GAAEQ,GAAES,GAAEC,GAAEC,GAAEC,GAAEC,CAAC,CAAC;AAAE,SAAOvB,EAAE6b,GAAG,UAAS,EAAC,OAAMra,GAAE,UAAS,EAAC,CAAC;AAAC,GAAE,OAAM,SAAS,EAAC,YAAW,GAAE,UAAS,GAAE,GAAGnB,EAAC,GAAE;AAAC,SAAOL,EAAE+d,IAAG,EAAC,YAAW,GAAE,UAAS/d,EAAE0gB,IAAG,EAAC,YAAW,GAAE,UAAS1gB,EAAE4gB,IAAG,EAAC,GAAGvgB,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC;AAAC,GAAE,WAAUue,IAAG,aAAYC,IAAG,2BAA0BE,IAAG,8BAA6BC,IAAG,oBAAmBF,IAAG,aAAYT,IAAG,yBAAwBE,IAAG,4BAA2BxC,IAAG,kCAAiCE,IAAG,iBAAgBrB,IAAG,yBAAwB0B,IAAG,mBAAkBC,IAAG,oBAAmBC,IAAG,eAAcyB,IAAG,0BAAyB9B,IAAG,uBAAsBD,IAAG,mBAAkBW,IAAG,wBAAuBC,IAAG,yBAAwBC,IAAG,+BAA8Bf,IAAG,gBAAegB,IAAG,wBAAuBC,IAAG,kBAAiBR,IAAG,sBAAqBU,IAAG,sBAAqBC,IAAG,0BAAyBC,IAAG,0BAAyBC,IAAG,uBAAsBJ,IAAG,sBAAqBN,IAAG,uBAAsBF,IAAG,QAAO,SAAS,EAAC,YAAW,GAAE,GAAG,EAAC,GAAE;AAAC,SAAO1c,EAAEghB,IAAG,EAAC,YAAW,GAAE,UAAShhB,EAAEkhB,IAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC;AAAC,GAAE,kBAAiBjG,IAAG,yBAAwB,SAASjb,IAAE,IAAG;AAAC,QAAMG,IAAES,GAAEqB,EAAC,GAAE3B,IAAE6P,GAAI;AAAC,SAAOpP,GAAG,MAAI;;AAAC,QAAG,CAACZ,KAAG,CAACH,KAAUM,MAAP,QAAU,CAACA;AAAE;AAAO,UAAMD,KAAEkC,IAAApC,EAAE,QAAQ,GAAI,MAAd,gBAAAoC,EAAgB,eAAgB,CAAAvC,MAAG;AAAC,MAAAA,EAAE,aAAWG,EAAE,cAAc,MAAM,KAAM,EAAC,MAAO,CAAAH,MAAG;AAAC,gBAAQ,MAAM,uBAAsBA,CAAC;AAAA,MAAC;IAAG;AAAI,WAAM,MAAIK,KAAA,gBAAAA;AAAA,EAAK,GAAG,CAACF,GAAEG,GAAEN,CAAC,CAAC,GAAEG;AAAC,GAAE,qBAAoB,SAASH,IAAE,UAAS;AAAC,QAAK,EAAC,WAAUG,EAAC,IAAE2b;AAAK,EAAA7L,GAAGjQ,GAAEG,CAAC;AAAC,GAAE,yBAAwB+a,IAAG,yBAAwBY,IAAG,8BAA6BsC,IAAG,yBAAwBuC,IAAG,wBAAuBxF,IAAG,wBAAuB,SAASnb,IAAE,IAAG;AAAC,QAAMG,IAAES,GAAEqB,EAAC,GAAE3B,IAAEH,KAAA,gBAAAA,EAAG,QAAQ,MAAKE,IAAE8P,GAAI,GAAC,EAAC,gBAAe/P,EAAC,IAAEge,GAAE;AAAG,SAAOrd,GAAG,MAAI;AAAC,IAAAZ,KAAGG,KAAGD,MAAID,IAAEE,EAAE,KAAM,EAAC,KAAM,MAAI;AAAC,MAAAN,KAAGM,EAAE,MAAO,EAAC,MAAO,CAAAN,MAAG;AAAC,gBAAQ,MAAM,0BAAyBA,CAAC;AAAA,MAAC,CAAG;AAAA,IAAA,GAAI,MAAO,CAAAA,MAAG,QAAQ,MAAM,yBAAwBA,CAAC,CAAG,IAACM,EAAE,OAAO,MAAO,CAAAN,MAAG,QAAQ,MAAM,wBAAuBA,CAAC;EAAI,GAAG,CAACG,GAAEG,GAAED,GAAED,GAAEJ,CAAC,CAAC,GAAE,EAAC,UAASM,EAAC;AAAC,GAAE,0BAAyB2gB,GAAE,CAAC;AAAE,MAAMG,KAAG,CAAA9gB,MAAG;AAAC,QAAK,EAAC,SAAQD,GAAE,SAAQD,GAAE,WAAUG,GAAE,QAAOI,EAAC,IAAE0gB,GAAI;AAAC,SAAOlhB,EAAEiP,IAAG,EAAC,GAAG9O,GAAE,UAAS,CAACN,EAAEK,GAAE,EAAE,GAAEL,EAAEI,GAAE,CAAA,CAAE,GAAEJ,EAAEO,GAAE,EAAE,GAAEP,EAAEW,GAAE,CAAA,CAAE,CAAC,EAAC,CAAC;AAAC,GAAE2gB,KAAG,CAAC,EAAC,WAAUhhB,GAAE,OAAMD,IAAE,WAAU,GAAGD,EAAC,MAAI;AAAC,QAAK,EAAC,OAAMG,GAAE,gBAAeI,GAAE,gBAAeC,GAAE,uBAAsBC,EAAC,IAAEwgB,GAAE;AAAG,SAAOlhB,EAAEoB,IAAE,EAAC,WAAUf,EAAE,8BAA6BF,CAAC,GAAE,OAAMD,GAAE,GAAGD,GAAE,UAAS,CAACJ,EAAEO,GAAE,EAAE,GAAEP,EAAEW,GAAE,CAAA,CAAE,GAAEX,EAAEY,GAAE,EAAE,GAAEZ,EAAEa,GAAE,CAAA,CAAE,CAAC,EAAC,CAAC;AAAC,GAAE0gB,KAAG,CAACvhB,IAAE,WAAS;AAAC,UAAOA,GAAC;AAAA,IAAE,KAAI;AAAO,aAAM;AAAA,IAAO,KAAI;AAAQ,aAAM;AAAA,IAAQ;AAAQ,aAAOA;AAAA,EAAC;AAAC,GAAEwhB,KAAG,CAAC,EAAC,WAAUlhB,GAAE,OAAMD,IAAE,SAAQ,GAAGD,EAAC,MAAI;AAAC,QAAK,EAAC,cAAaO,GAAE,aAAYG,EAAC,KAAG,MAAI;AAAC,UAAMd,IAAEY,GAAEqB,EAAC,GAAE,CAAC9B,GAAEG,CAAC,IAAEO,GAAE,IAAI,GAAER,IAAEE,GAAG,CAAAJ,MAAC;;AAAE,cAAAoC,IAAAvC,KAAA,gBAAAA,EAAG,WAAH,gBAAAuC,EAAW,OAAOpC;AAAA,OAAI,CAACH,CAAC,CAAC;AAAE,WAAOe,GAAG,MAAI;;AAAC,UAAG,CAACf;AAAE;AAAO,UAAIG,IAAE;AAAG,YAAME,IAAE,CAAAL,MAAG;AAAC,QAAAG,KAAGG,EAAEN,CAAC;AAAA,MAAC;AAAE,cAAOuC,IAAAvC,EAAE,WAAF,QAAAuC,EAAU,UAAUlC,KAAGmC,IAAAxC,EAAE,WAAF,QAAAwC,EAAU,aAAa,KAAKnC,GAAG,MAAM,QAAQ,OAAM,MAAI;AAAC,QAAAF,IAAE;AAAA,MAAE;AAAA,IAAC,GAAG,CAACH,CAAC,CAAC,GAAE,EAAC,cAAaG,GAAE,aAAYE,EAAC;AAAA,EAAC,GAAI,GAACW,KAAG,MAAI;AAAC,UAAMhB,IAAEY,GAAEqB,EAAC,GAAE,CAAC9B,GAAEG,CAAC,IAAEO,GAAE,CAAA,CAAE;AAAE,WAAOE,GAAG,MAAI;;AAAC,MAAAf,OAAGuC,IAAAvC,EAAE,WAAF,QAAAuC,EAAU,OAAO,KAAKjC,GAAG,MAAM,QAAQ;AAAA,IAAK,GAAG,CAACN,CAAC,CAAC,GAAEG;AAAA,EAAC,GAAI;AAAC,SAAOA,EAAE,OAAM,EAAC,WAAUK,EAAE,6BAA4BF,CAAC,GAAE,GAAGF,GAAE,UAAS,CAACJ,EAAE,SAAQ,EAAC,WAAU,mBAAkB,UAASK,EAAC,CAAC,GAAEF,EAAEwC,IAAE,EAAC,SAAQ,SAAQ,UAAS,CAAC3C,EAAE2C,GAAE,QAAO,EAAC,MAAK4e,GAAG5gB,KAAA,gBAAAA,EAAG,IAAI,EAAC,CAAC,GAAEX,EAAE2C,GAAE,SAAQ,EAAC,UAAS3C,EAAE2C,GAAE,MAAK,EAAC,UAAS3B,EAAE,IAAK,CAAC,EAAC,MAAKb,EAAC,MAAIH,EAAE2C,GAAE,MAAK,EAAC,SAAQ,MAAI7B,EAAEX,CAAC,GAAE,UAASohB,GAAGphB,CAAC,EAAC,GAAEA,CAAC,GAAG,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC;AAAC,GAAEshB,KAAG,CAAC,EAAC,SAAQnhB,GAAE,SAAQD,GAAE,UAASD,GAAE,GAAGG,EAAC,MAAI;AAAC,QAAK,EAAC,WAAUI,GAAE,OAAMC,IAAE,iBAAgB,QAAOC,EAAC,IAAE0V,GAAG,EAAC,SAAQjW,EAAC,CAAC;AAAE,SAAOH,EAAEwC,IAAE,EAAC,SAAQ,SAAQ,UAAShC,KAAGP,GAAE,GAAGG,GAAE,UAAS,CAACP,EAAE2C,GAAE,QAAO,EAAC,UAAS/B,EAAC,CAAC,GAAEZ,EAAE2C,GAAE,SAAQ,EAAC,UAAS3C,EAAE2C,GAAE,MAAK,EAAC,UAAStC,EAAE,IAAK,CAAAF,MAAGH,EAAE2C,GAAE,MAAK,EAAC,SAAQ,OAAK,OAAM3C,MAAG;AAAC,QAAGA,MAAIY;AAAE,UAAG;AAAC,cAAMC,EAAEb,CAAC;AAAA,MAAC,SAAOA,GAAE;AAAC,gBAAQ,MAAM,yCAAwCA,CAAC;AAAA,MAAC;AAAA,EAAC,GAAGG,CAAC,GAAE,UAASA,EAAC,GAAEA,CAAC,GAAG,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC;AAAC,GAAEuhB,KAAG,CAAC,EAAC,WAAUphB,GAAE,OAAMD,IAAE,mBAAkB,GAAGD,EAAC,MAAIJ,EAAEuB,IAAE,EAAC,WAAUf,EAAE,qBAAoBF,CAAC,GAAE,GAAGF,GAAE,UAASD,EAAE,OAAM,EAAC,WAAU,6BAA4B,UAAS,CAACH,EAAE,SAAQ,EAAC,WAAU,mBAAkB,UAASK,EAAC,CAAC,GAAEL,EAAEyhB,IAAG,EAAC,WAAUnhB,GAAE,SAAQiQ,IAAG,SAAQ,CAAC,QAAO,OAAO,GAAE,GAAGnQ,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,GAAEuhB,KAAG,CAAC,EAAC,SAAQ,GAAE,GAAG,EAAC,MAAI;AAAC,QAAK,EAAC,WAAUthB,GAAE,OAAM,IAAE,IAAG,QAAO,EAAC,IAAEkW,GAAG,EAAC,SAAQ,EAAC,CAAC;AAAE,SAAOvW,EAAE8P,IAAG,EAAC,SAAQ,GAAE,UAASzP,GAAE,UAAS,CAAAL,MAAG,EAAEA,EAAE,OAAO,OAAO,GAAE,GAAG,EAAC,CAAC;AAAC,GAAE4hB,KAAG,CAAC,EAAC,OAAM,IAAE,SAAQ,OAAM,IAAE,iBAAgB,GAAGvhB,EAAC,MAAIL,EAAE2hB,IAAG,EAAC,OAAM,GAAE,OAAM,GAAE,SAAQnR,IAAG,GAAGnQ,EAAC,CAAC,GAAEwhB,KAAG,CAAC,EAAC,OAAM,IAAE,SAAQ,OAAM,IAAE,oBAAmB,GAAGxhB,EAAC,MAAIL,EAAE2hB,IAAG,EAAC,OAAM,GAAE,OAAM,GAAE,SAAQlR,IAAG,GAAGpQ,EAAC,CAAC,GAAEyhB,KAAG,CAAC,EAAC,OAAM,IAAE,SAAQ,OAAM,IAAE,8CAA6C,GAAGzhB,EAAC,MAAIL,EAAE2hB,IAAG,EAAC,OAAM,GAAE,OAAM,GAAE,SAAQjR,IAAG,UAAS,IAAG,GAAGrQ,EAAC,CAAC,GAAE0hB,KAAG,CAAC,EAAC,OAAM,IAAE,SAAQ,OAAM,IAAE,4BAA2B,GAAG1hB,EAAC,MAAIL,EAAE2hB,IAAG,EAAC,OAAM,GAAE,OAAM,GAAE,SAAQhR,IAAG,GAAGtQ,EAAC,CAAC,GAAE2hB,KAAG,CAAC,EAAC,WAAU1hB,GAAE,OAAMD,IAAE,WAAU,GAAGD,EAAC,MAAI;AAAC,QAAK,EAAC,0BAAyBG,GAAE,yBAAwBI,GAAE,iCAAgCC,EAAC,IAAEygB;AAAK,SAAOlhB,EAAEoB,IAAE,EAAC,WAAUf,EAAE,qBAAoBF,CAAC,GAAE,OAAMD,GAAE,GAAGD,GAAE,UAAS,CAACJ,EAAEO,GAAE,CAAE,CAAA,GAAEP,EAAEY,GAAE,CAAA,CAAE,GAAEZ,EAAEW,GAAE,CAAE,CAAA,CAAC,EAAC,CAAC;AAAC,GAAEshB,KAAG,CAAC,EAAC,OAAM,IAAE,SAAQ,OAAM,IAAE,iCAAgC,GAAG5hB,EAAC,MAAIL,EAAE2hB,IAAG,EAAC,OAAM,GAAE,OAAM,GAAE,SAAQ/Q,IAAG,GAAGvQ,EAAC,CAAC,GAAE6hB,KAAG,CAAC,EAAC,OAAM,IAAE,SAAQ,OAAM,IAAE,wBAAuB,GAAG7hB,EAAC,MAAIL,EAAE2hB,IAAG,EAAC,OAAM,GAAE,OAAM,GAAE,SAAQ9Q,IAAG,GAAGxQ,EAAC,CAAC,GAAE8hB,KAAG,CAAC,EAAC,OAAM,IAAE,SAAQ,OAAM,IAAE,mCAAkC,GAAG9hB,EAAC,MAAIL,EAAE2hB,IAAG,EAAC,OAAM,GAAE,OAAM,GAAE,SAAQ7Q,IAAG,GAAGzQ,EAAC,CAAC,GAAE+hB,KAAG,CAAC,EAAC,OAAM,IAAE,SAAQ,OAAM,IAAE,4BAA2B,GAAG/hB,EAAC,MAAIL,EAAE2hB,IAAG,EAAC,OAAM,GAAE,OAAM,GAAE,SAAQ5Q,IAAG,GAAG1Q,EAAC,CAAC,GAAEgiB,KAAG,CAAC,EAAC,WAAU,GAAE,OAAM,IAAE,aAAY,GAAGhiB,EAAC,MAAI;AAAC,QAAK,EAAC,mBAAkB,EAAC,IAAEghB,GAAE;AAAG,SAAOrhB,EAAEuB,IAAE,EAAC,WAAUf,EAAE,qBAAoB,CAAC,GAAE,OAAM,GAAE,GAAGH,GAAE,UAASL,EAAE,GAAE,CAAE,CAAA,EAAC,CAAC;AAAC,GAAEsiB,KAAG,CAAC,EAAC,OAAM,IAAE,SAAQ,OAAM,IAAE,kDAAiD,GAAGjiB,EAAC,MAAIL,EAAE2hB,IAAG,EAAC,OAAM,GAAE,OAAM,GAAE,SAAQ3Q,IAAG,GAAG3Q,EAAC,CAAC,GAAEkiB,KAAG,CAAC,EAAC,WAAUjiB,GAAE,OAAMD,IAAE,YAAW,GAAGD,EAAC,MAAI;AAAC,QAAK,EAAC,eAAc,EAAC,gBAAeG,EAAC,GAAE,+BAA8BI,GAAE,iCAAgCC,GAAE,sBAAqBC,EAAC,IAAEmX,GAAE;AAAG,SAAO7X,EAAEoB,IAAE,EAAC,WAAUf,EAAE,qBAAoBF,CAAC,GAAE,GAAGF,GAAE,UAAS,CAACD,EAAE,OAAM,EAAC,WAAU,6BAA4B,UAAS,CAACH,EAAE,SAAQ,EAAC,WAAU,mBAAkB,UAASK,EAAC,CAAC,GAAEL,EAAEwB,IAAE,EAAC,MAAK,UAAS,SAAQb,GAAE,UAASC,EAAC,CAAC,CAAC,EAAC,CAAC,GAAEZ,EAAE,KAAI,EAAC,UAASO,MAAGM,KAAA,gBAAAA,EAAI,OAAI,UAAS,CAAC,CAAC,EAAC,CAAC;AAAC,GAAE2hB,KAAG,CAAC,EAAC,WAAUliB,GAAE,OAAMD,IAAE,UAAS,GAAGD,EAAC,MAAI;AAAC,QAAK,EAAC,sBAAqBG,GAAE,uBAAsBI,EAAC,IAAE0gB,GAAI;AAAC,SAAOlhB,EAAEoB,IAAE,EAAC,WAAUf,EAAE,qBAAoBF,CAAC,GAAE,OAAMD,GAAE,GAAGD,GAAE,UAAS,CAACJ,EAAEO,GAAE,CAAA,CAAE,GAAEP,EAAEW,GAAE,CAAE,CAAA,CAAC,EAAC,CAAC;AAAC;AAAE,IAAI8hB,KAAG,CAAC,YAAW,WAAU,eAAc,aAAY,aAAY,iBAAgB,UAAS,iBAAgB,WAAU,iBAAgB,gBAAe,uBAAuB,GAAEC,KAAG,EAAC,UAAS,IAAG,YAAW,IAAG,qBAAoB,IAAG,WAAU,UAAS,UAAS,IAAG,eAAc,sBAAqB,SAAkB,OAAO,UAAjB,YAA8B,OAAO,UAAU,UAAU,QAAQ,MAAM,MAA9C,IAAgD,gBAAe,UAAS,qBAAoB,IAAG,YAAW,IAAG,eAAc,IAAG,aAAY,MAAK,YAAW,SAAQ,aAAY,IAAG,eAAc,GAAE,gBAAe,GAAE,SAAQ,IAAG,eAAc,IAAG,eAAc,IAAG,YAAW,IAAG,cAAa,SAAS1iB,GAAE;AAAC,SAAmB,OAAO,UAApB,OAA6B,QAAQ,KAAKA,CAAC;AAAC,GAAE,SAAQ,SAASA,GAAE;AAAC,MAAIG,IAAE,IAAI,KAAKH,EAAE,SAAS;AAAE,EAAAG,EAAE,SAAS,GAAE,GAAE,GAAE,CAAC,GAAEA,EAAE,QAAQA,EAAE,QAAS,IAAC,KAAGA,EAAE,OAAQ,IAAC,KAAG,CAAC;AAAE,MAAIG,IAAE,IAAI,KAAKH,EAAE,eAAc,GAAE,CAAC;AAAE,SAAO,IAAE,KAAK,QAAQA,EAAE,YAAUG,EAAE,QAAO,KAAI,QAAM,KAAGA,EAAE,OAAQ,IAAC,KAAG,KAAG,CAAC;AAAC,GAAE,eAAc,GAAE,sBAAqB,CAAE,GAAC,QAAO,IAAG,QAAO,WAAU,iBAAgB,GAAE,MAAK,UAAS,mBAAkB,YAAW,WAAU,0OAAyO,YAAW,IAAG,KAAI,oBAAI,QAAK,UAAS,CAAE,GAAC,SAAQ,IAAG,aAAY,CAAE,GAAC,WAAU,CAAA,GAAG,WAAU,CAAE,GAAC,eAAc,CAAA,GAAG,QAAO,CAAE,GAAC,eAAc,CAAA,GAAG,SAAQ,IAAG,eAAc,CAAA,GAAG,cAAa,IAAG,uBAAsB,CAAE,GAAC,SAAQ,IAAG,UAAS,QAAO,iBAAgB,QAAO,WAAU,wOAAuO,uBAAsB,IAAG,YAAW,GAAE,QAAO,IAAG,WAAU,IAAG,aAAY,IAAG,MAAK,GAAE,GAAEqiB,KAAG,EAAC,UAAS,EAAC,WAAU,CAAC,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,KAAK,GAAE,UAAS,CAAC,UAAS,UAAS,WAAU,aAAY,YAAW,UAAS,UAAU,EAAC,GAAE,QAAO,EAAC,WAAU,CAAC,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,KAAK,GAAE,UAAS,CAAC,WAAU,YAAW,SAAQ,SAAQ,OAAM,QAAO,QAAO,UAAS,aAAY,WAAU,YAAW,UAAU,EAAC,GAAE,aAAY,CAAC,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,EAAE,GAAE,gBAAe,GAAE,SAAQ,SAAS3iB,GAAE;AAAC,MAAIG,IAAEH,IAAE;AAAI,MAAGG,IAAE,KAAGA,IAAE;AAAG,WAAM;AAAK,UAAOA,IAAE,IAAI;AAAA,IAAA,KAAK;AAAE,aAAM;AAAA,IAAK,KAAK;AAAE,aAAM;AAAA,IAAK,KAAK;AAAE,aAAM;AAAA,IAAK;AAAQ,aAAM;AAAA,EAAI;AAAC,GAAE,gBAAe,QAAO,kBAAiB,MAAK,aAAY,uBAAsB,aAAY,mBAAkB,MAAK,CAAC,MAAK,IAAI,GAAE,eAAc,QAAO,gBAAe,SAAQ,eAAc,QAAO,iBAAgB,UAAS,WAAU,GAAE,GAAEyiB,KAAG,SAAS5iB,GAAEG,GAAE;AAAC,SAAgBA,MAAT,WAAaA,IAAE,KAAI,QAAMH,GAAG,MAAM,KAAGG,CAAC;AAAC,GAAEsd,KAAG,SAASzd,GAAE;AAAC,SAAWA,MAAL,KAAO,IAAE;AAAC;AAAE,SAAS6iB,GAAG7iB,GAAEG,GAAE;AAAC,MAAIG;AAAE,SAAO,WAAU;AAAC,QAAID,IAAE,MAAKD,IAAE;AAAU,iBAAaE,CAAC,GAAEA,IAAE,WAAY,WAAU;AAAC,aAAON,EAAE,MAAMK,GAAED,CAAC;AAAA,IAAC,GAAGD,CAAC;AAAA,EAAC;AAAC;AAAC,IAAI2iB,KAAG,SAAS9iB,GAAE;AAAC,SAAOA,aAAa,QAAMA,IAAE,CAACA,CAAC;AAAC;AAAE,SAAS+iB,GAAG/iB,GAAEG,GAAEG,GAAE;AAAC,MAAQA,MAAL;AAAO,WAAON,EAAE,UAAU,IAAIG,CAAC;AAAE,EAAAH,EAAE,UAAU,OAAOG,CAAC;AAAC;AAAC,SAAS6iB,GAAGhjB,GAAEG,GAAEG,GAAE;AAAC,MAAID,IAAE,OAAO,SAAS,cAAcL,CAAC;AAAE,SAAOG,IAAEA,KAAG,IAAGG,IAAEA,KAAG,IAAGD,EAAE,YAAUF,GAAWG,MAAT,WAAaD,EAAE,cAAYC,IAAGD;AAAC;AAAC,SAAS4iB,GAAGjjB,GAAE;AAAC,SAAKA,EAAE;AAAY,IAAAA,EAAE,YAAYA,EAAE,UAAU;AAAC;AAAC,SAASkjB,GAAGljB,GAAEG,GAAE;AAAC,SAAOA,EAAEH,CAAC,IAAEA,IAAEA,EAAE,aAAWkjB,GAAGljB,EAAE,YAAWG,CAAC,IAAE;AAAM;AAAC,SAASgjB,GAAGnjB,GAAEG,GAAE;AAAC,MAAIG,IAAE0iB,GAAG,OAAM,iBAAiB,GAAE3iB,IAAE2iB,GAAG,SAAQ,cAAYhjB,CAAC,GAAEI,IAAE4iB,GAAG,QAAO,SAAS,GAAEziB,IAAEyiB,GAAG,QAAO,WAAW;AAAE,MAAQ,UAAU,UAAU,QAAQ,UAAU,MAA3C,KAA6C3iB,EAAE,OAAK,YAAUA,EAAE,OAAK,QAAOA,EAAE,UAAQ,SAAiBF,MAAT;AAAW,aAAQ,KAAKA;AAAE,MAAAE,EAAE,aAAa,GAAEF,EAAE,CAAC,CAAC;AAAE,SAAOG,EAAE,YAAYD,CAAC,GAAEC,EAAE,YAAYF,CAAC,GAAEE,EAAE,YAAYC,CAAC,GAAED;AAAC;AAAC,SAAS8iB,GAAGpjB,GAAE;AAAC,MAAG;AAAC,WAAkB,OAAOA,EAAE,gBAArB,aAAkCA,EAAE,aAAc,EAAC,CAAC,IAAEA,EAAE;AAAA,EAAM,QAAS;AAAC,WAAOA,EAAE;AAAA,EAAM;AAAC;AAAC,IAAIqjB,KAAG,WAAU;AAAA,GAAGC,KAAG,SAAStjB,GAAEG,GAAEG,GAAE;AAAC,SAAOA,EAAE,OAAOH,IAAE,cAAY,UAAU,EAAEH,CAAC;AAAC,GAAEujB,KAAG,EAAC,GAAEF,IAAG,GAAE,SAASrjB,GAAEG,GAAEG,GAAE;AAAC,EAAAN,EAAE,SAASM,EAAE,OAAO,SAAS,QAAQH,CAAC,CAAC;AAAC,GAAE,GAAE,SAASH,GAAEG,GAAE;AAAC,EAAAH,EAAE,UAAUA,EAAE,SAAQ,KAAI,KAAG,KAAG,KAAG,WAAWG,CAAC,CAAC;AAAC,GAAE,GAAE,SAASH,GAAEG,GAAE;AAAC,EAAAH,EAAE,SAAS,WAAWG,CAAC,CAAC;AAAC,GAAE,GAAE,SAASH,GAAEG,GAAE;AAAC,EAAAH,EAAE,QAAQ,WAAWG,CAAC,CAAC;AAAC,GAAE,GAAE,SAASH,GAAEG,GAAEG,GAAE;AAAC,EAAAN,EAAE,SAASA,EAAE,aAAW,KAAG,KAAGyd,GAAG,IAAI,OAAOnd,EAAE,KAAK,CAAC,GAAE,GAAG,EAAE,KAAKH,CAAC,CAAC,CAAC;AAAC,GAAE,GAAE,SAASH,GAAEG,GAAEG,GAAE;AAAC,EAAAN,EAAE,SAASM,EAAE,OAAO,UAAU,QAAQH,CAAC,CAAC;AAAC,GAAE,GAAE,SAASH,GAAEG,GAAE;AAAC,EAAAH,EAAE,WAAW,WAAWG,CAAC,CAAC;AAAC,GAAE,GAAE,SAASH,GAAEG,GAAE;AAAC,SAAO,IAAI,KAAK,MAAI,WAAWA,CAAC,CAAC;AAAC,GAAE,GAAE,SAASH,GAAEG,GAAEG,GAAE;AAAC,MAAID,IAAE,SAASF,CAAC,GAAEC,IAAE,IAAI,KAAKJ,EAAE,YAAW,GAAG,GAAE,IAAE,KAAGK,IAAE,IAAG,GAAE,GAAE,GAAE,CAAC;AAAE,SAAOD,EAAE,QAAQA,EAAE,QAAO,IAAGA,EAAE,OAAQ,IAACE,EAAE,cAAc,GAAEF;AAAC,GAAE,GAAE,SAASJ,GAAEG,GAAE;AAAC,EAAAH,EAAE,YAAY,WAAWG,CAAC,CAAC;AAAC,GAAE,GAAE,SAASH,GAAEG,GAAE;AAAC,SAAO,IAAI,KAAKA,CAAC;AAAC,GAAE,GAAE,SAASH,GAAEG,GAAE;AAAC,EAAAH,EAAE,QAAQ,WAAWG,CAAC,CAAC;AAAC,GAAE,GAAE,SAASH,GAAEG,GAAE;AAAC,EAAAH,EAAE,UAAUA,EAAE,SAAQ,KAAI,KAAG,KAAG,KAAG,WAAWG,CAAC,CAAC;AAAC,GAAE,GAAE,SAASH,GAAEG,GAAE;AAAC,EAAAH,EAAE,WAAW,WAAWG,CAAC,CAAC;AAAC,GAAE,GAAE,SAASH,GAAEG,GAAE;AAAC,EAAAH,EAAE,QAAQ,WAAWG,CAAC,CAAC;AAAC,GAAE,GAAEkjB,IAAG,GAAE,SAASrjB,GAAEG,GAAE;AAAC,EAAAH,EAAE,SAAS,WAAWG,CAAC,IAAE,CAAC;AAAC,GAAE,GAAE,SAASH,GAAEG,GAAE;AAAC,EAAAH,EAAE,SAAS,WAAWG,CAAC,IAAE,CAAC;AAAC,GAAE,GAAE,SAASH,GAAEG,GAAE;AAAC,EAAAH,EAAE,WAAW,WAAWG,CAAC,CAAC;AAAC,GAAE,GAAE,SAASH,GAAEG,GAAE;AAAC,SAAO,IAAI,KAAK,WAAWA,CAAC,CAAC;AAAC,GAAE,GAAEkjB,IAAG,GAAE,SAASrjB,GAAEG,GAAE;AAAC,EAAAH,EAAE,YAAY,MAAI,WAAWG,CAAC,CAAC;AAAC,EAAC,GAAEqjB,KAAG,EAAC,GAAE,IAAG,GAAE,IAAG,GAAE,gBAAe,GAAE,gBAAe,GAAE,oBAAmB,GAAE,IAAG,GAAE,IAAG,GAAE,gBAAe,GAAE,QAAO,GAAE,gBAAe,GAAE,YAAW,GAAE,QAAO,GAAE,gBAAe,GAAE,gBAAe,GAAE,gBAAe,GAAE,gBAAe,GAAE,IAAG,GAAE,gBAAe,GAAE,gBAAe,GAAE,gBAAe,GAAE,QAAO,GAAE,gBAAe,GAAE,WAAU,GAAEC,KAAG,EAAC,GAAE,SAASzjB,GAAE;AAAC,SAAOA,EAAE,YAAa;AAAA,GAAE,GAAE,SAASA,GAAEG,GAAEG,GAAE;AAAC,SAAOH,EAAE,SAAS,UAAUsjB,GAAG,EAAEzjB,GAAEG,GAAEG,CAAC,CAAC;AAAC,GAAE,GAAE,SAASN,GAAEG,GAAEG,GAAE;AAAC,SAAOgjB,GAAGG,GAAG,EAAEzjB,GAAEG,GAAEG,CAAC,IAAE,GAAE,IAAGH,CAAC;AAAC,GAAE,GAAE,SAASH,GAAEG,GAAEG,GAAE;AAAC,SAAOsiB,GAAGa,GAAG,EAAEzjB,GAAEG,GAAEG,CAAC,CAAC;AAAC,GAAE,GAAE,SAASN,GAAE;AAAC,SAAO4iB,GAAG5iB,EAAE,SAAU,CAAA;AAAC,GAAE,GAAE,SAASA,GAAEG,GAAE;AAAC,SAAgBA,EAAE,YAAX,SAAmBH,EAAE,QAAO,IAAGG,EAAE,QAAQH,EAAE,SAAS,IAAEA,EAAE,QAAS;AAAA,GAAE,GAAE,SAASA,GAAEG,GAAE;AAAC,SAAOA,EAAE,KAAKsd,GAAGzd,EAAE,SAAQ,IAAG,EAAE,CAAC;AAAC,GAAE,GAAE,SAASA,GAAEG,GAAE;AAAC,SAAOmjB,GAAGtjB,EAAE,SAAU,GAAC,IAAGG,CAAC;AAAC,GAAE,GAAE,SAASH,GAAE;AAAC,SAAO4iB,GAAG5iB,EAAE,YAAY;AAAC,GAAE,GAAE,SAASA,GAAE;AAAC,SAAOA,EAAE,QAAS,IAAC;AAAG,GAAE,GAAE,SAASA,GAAEG,GAAEG,GAAE;AAAC,SAAOA,EAAE,QAAQN,CAAC;AAAC,GAAE,GAAE,SAASA,GAAE;AAAC,SAAO4iB,GAAG5iB,EAAE,YAAa,GAAC,CAAC;AAAC,GAAE,GAAE,SAASA,GAAE;AAAC,SAAO4iB,GAAG5iB,EAAE,QAAS,CAAA;AAAC,GAAE,GAAE,SAASA,GAAE;AAAC,SAAOA,EAAE,SAAU,IAAC,KAAGA,EAAE,SAAQ,IAAG,KAAG;AAAE,GAAE,GAAE,SAASA,GAAE;AAAC,SAAO4iB,GAAG5iB,EAAE,WAAU,CAAE;AAAC,GAAE,GAAE,SAASA,GAAE;AAAC,SAAOA,EAAE,QAAO;AAAE,GAAE,GAAE,SAASA,GAAEG,GAAE;AAAC,SAAOA,EAAE,SAAS,SAASH,EAAE,OAAQ,CAAA;AAAC,GAAE,GAAE,SAASA,GAAE;AAAC,SAAO4iB,GAAG5iB,EAAE,SAAU,IAAC,CAAC;AAAC,GAAE,GAAE,SAASA,GAAE;AAAC,SAAOA,EAAE,aAAW;AAAC,GAAE,GAAE,SAASA,GAAE;AAAC,SAAOA,EAAE,WAAU;AAAE,GAAE,GAAE,SAASA,GAAE;AAAC,SAAOA,EAAE,QAAS;AAAA,GAAE,GAAE,SAASA,GAAE;AAAC,SAAOA,EAAE;AAAQ,GAAE,GAAE,SAASA,GAAE;AAAC,SAAO,OAAOA,EAAE,YAAW,CAAE,EAAE,UAAU,CAAC;AAAC,EAAC,GAAE0jB,KAAG,SAAS1jB,GAAE;AAAC,MAAIG,IAAEH,EAAE,QAAOM,IAAWH,MAAT,SAAWuiB,KAAGviB,GAAEE,IAAEL,EAAE,MAAKI,IAAWC,MAAT,SAAWsiB,KAAGtiB,GAAEE,IAAEP,EAAE,UAAS,IAAWO,MAAT,UAAYA;AAAE,SAAO,SAASP,GAAEG,GAAEE,GAAE;AAAC,QAAIE,IAAEF,KAAGD;AAAE,WAAgBE,EAAE,eAAX,UAAuB,IAAEH,EAAE,MAAM,EAAE,EAAE,IAAK,SAASA,GAAEE,GAAED,GAAE;AAAC,aAAOqjB,GAAGtjB,CAAC,KAAUC,EAAEC,IAAE,CAAC,MAAZ,OAAcojB,GAAGtjB,CAAC,EAAEH,GAAEO,GAAED,CAAC,IAASH,MAAP,OAASA,IAAE;AAAA,IAAE,CAAG,EAAC,KAAK,EAAE,IAAEG,EAAE,WAAWN,GAAEG,GAAEI,CAAC;AAAA,EAAC;AAAC,GAAEojB,KAAG,SAAS3jB,GAAE;AAAC,MAAIG,IAAEH,EAAE,QAAOM,IAAWH,MAAT,SAAWuiB,KAAGviB,GAAEE,IAAEL,EAAE,MAAKI,IAAWC,MAAT,SAAWsiB,KAAGtiB;AAAE,SAAO,SAASL,GAAEG,GAAEE,GAAEE,GAAE;AAAC,QAAOP,MAAJ,KAAOA,GAAE;AAAC,UAAIW,GAAEC,IAAEL,KAAGH,GAAES,IAAEb;AAAE,UAAGA,aAAa;AAAK,QAAAW,IAAE,IAAI,KAAKX,EAAE,SAAS;AAAA,eAAoB,OAAOA,KAAjB,YAA6BA,EAAE,YAAX;AAAmB,QAAAW,IAAE,IAAI,KAAKX,CAAC;AAAA,eAAoB,OAAOA,KAAjB,UAAmB;AAAC,YAAIc,IAAEX,MAAIG,KAAGoiB,IAAI,YAAW3hB,IAAE,OAAOf,CAAC,EAAE,KAAM;AAAC,YAAae,MAAV;AAAY,UAAAJ,IAAE,oBAAI,QAAKN,IAAE;AAAA,iBAAWC,KAAGA,EAAE;AAAU,UAAAK,IAAEL,EAAE,UAAUN,GAAEc,CAAC;AAAA,iBAAU,KAAK,KAAKC,CAAC,KAAG,OAAO,KAAKA,CAAC;AAAE,UAAAJ,IAAE,IAAI,KAAKX,CAAC;AAAA,aAAM;AAAC,mBAAQgB,IAAE,QAAOC,IAAE,CAAA,GAAGC,IAAE,GAAEO,IAAE,GAAEC,IAAE,IAAGR,IAAEJ,EAAE,QAAOI,KAAI;AAAC,gBAAIS,IAAEb,EAAEI,CAAC,GAAEe,IAASN,MAAP,MAAS5B,IAASe,EAAEI,IAAE,CAAC,MAAZ,QAAee;AAAE,gBAAGuhB,GAAG7hB,CAAC,KAAG,CAAC5B,GAAE;AAAC,cAAA2B,KAAG8hB,GAAG7hB,CAAC;AAAE,kBAAI1B,IAAE,IAAI,OAAOyB,CAAC,EAAE,KAAK1B,CAAC;AAAE,cAAAC,MAAIe,IAAE,OAAKC,EAAQU,MAAN,MAAQ,SAAO,SAAS,EAAE,EAAC,IAAG4hB,GAAG5hB,CAAC,GAAE,KAAI1B,EAAE,EAAEwB,CAAC,EAAC,CAAC;AAAA,YAAC;AAAM,cAAAQ,MAAIP,KAAG;AAAA,UAAI;AAAC,UAAAf,IAAEL,KAAGA,EAAE,aAAW,IAAI,MAAM,oBAAI,QAAM,SAAS,GAAE,GAAE,GAAE,CAAC,CAAC,IAAE,IAAI,MAAM,oBAAI,QAAM,YAAW,GAAG,GAAE,GAAE,GAAE,GAAE,GAAE,CAAC,GAAEW,EAAE,QAAS,SAASjB,GAAE;AAAC,gBAAIG,IAAEH,EAAE,IAAGM,IAAEN,EAAE;AAAI,mBAAOW,IAAER,EAAEQ,GAAEL,GAAEM,CAAC,KAAGD;AAAA,UAAC,IAAIA,IAAEK,IAAEL,IAAE;AAAA,QAAM;AAAA,MAAC;AAAC,UAAGA,aAAa,QAAM,CAAC,MAAMA,EAAE,QAAS,CAAA;AAAE,eAAWN,MAAL,MAAQM,EAAE,SAAS,GAAE,GAAE,GAAE,CAAC,GAAEA;AAAE,MAAAL,EAAE,aAAa,IAAI,MAAM,4BAA0BO,CAAC,CAAC;AAAA,IAAC;AAAA,EAAC;AAAC;AAAE,SAAS+iB,GAAG5jB,GAAEG,GAAEG,GAAE;AAAC,SAAgBA,MAAT,WAAaA,IAAE,KAASA,MAAL,KAAO,IAAI,KAAKN,EAAE,SAAS,EAAE,SAAS,GAAE,GAAE,GAAE,CAAC,IAAE,IAAI,KAAKG,EAAE,QAAO,CAAE,EAAE,SAAS,GAAE,GAAE,GAAE,CAAC,IAAEH,EAAE,QAAO,IAAGG,EAAE,QAAO;AAAE;AAAC,IAAI0jB,KAAG,SAAS7jB,GAAEG,GAAEG,GAAE;AAAC,SAAON,IAAE,KAAK,IAAIG,GAAEG,CAAC,KAAGN,IAAE,KAAK,IAAIG,GAAEG,CAAC;AAAC,GAAEwjB,KAAG,SAAS9jB,GAAEG,GAAEG,GAAE;AAAC,SAAO,OAAKN,IAAE,KAAGG,IAAEG;AAAC,GAAEyjB,KAAG,SAAS/jB,GAAE;AAAC,MAAIG,IAAE,KAAK,MAAMH,IAAE,IAAI,GAAEM,KAAGN,IAAE,OAAKG,KAAG;AAAG,SAAM,CAACA,GAAEG,GAAEN,IAAE,OAAKG,IAAE,KAAGG,CAAC;AAAC,GAAE0jB,KAAG,EAAC,KAAI,MAAK;AAAE,SAASC,GAAGjkB,GAAE;AAAC,MAAIG,IAAEH,EAAE,aAAYM,IAAEN,EAAE,eAAcK,IAAEL,EAAE;AAAe,MAAYA,EAAE,YAAX,QAAmB;AAAC,QAAII,IAAEJ,EAAE,QAAQ,SAAQ,GAAGO,IAAEP,EAAE,QAAQ,cAAa,IAAEA,EAAE,QAAQ,WAAY;AAAC,IAAAG,IAAEC,MAAID,IAAEC,IAAGD,MAAIC,KAAGE,IAAEC,MAAID,IAAEC,IAAGJ,MAAIC,KAAGE,MAAIC,KAAGF,IAAE,MAAIA,IAAEL,EAAE,QAAQ,WAAU;AAAA,EAAG;AAAC,MAAYA,EAAE,YAAX,QAAmB;AAAC,QAAI,IAAEA,EAAE,QAAQ,YAAW,IAAEA,EAAE,QAAQ,WAAY;AAAC,KAACG,IAAE,KAAK,IAAIA,GAAE,CAAC,OAAK,MAAIG,IAAE,KAAK,IAAI,GAAEA,CAAC,IAAGH,MAAI,KAAGG,MAAI,MAAID,IAAEL,EAAE,QAAQ;EAAa;AAAC,SAAM,EAAC,OAAMG,GAAE,SAAQG,GAAE,SAAQD,EAAC;AAAC;AAAa,OAAO,OAAO,UAA1B,eAAmC,OAAO,SAAO,SAASL,GAAE;AAAC,WAAQG,IAAE,CAAA,GAAGG,IAAE,GAAEA,IAAE,UAAU,QAAOA;AAAI,IAAAH,EAAEG,IAAE,CAAC,IAAE,UAAUA,CAAC;AAAE,MAAG,CAACN;AAAE,UAAM,UAAU,4CAA4C;AAAE,WAAQK,IAAE,SAASF,GAAE;AAAC,IAAAA,KAAG,OAAO,KAAKA,CAAC,EAAE,QAAS,SAASG,GAAE;AAAC,aAAON,EAAEM,CAAC,IAAEH,EAAEG,CAAC;AAAA,IAAC,CAAC;AAAA,EAAE,GAAEF,IAAE,GAAEG,IAAEJ,GAAEC,IAAEG,EAAE,QAAOH;AAAK,IAAAC,EAAEE,EAAEH,CAAC,CAAC;AAAE,SAAOJ;AAAC;AAAG,IAAIkkB,KAAG,WAAU;AAAC,SAAOA,KAAG,OAAO,UAAQ,SAASlkB,GAAE;AAAC,aAAQG,GAAEG,IAAE,GAAED,IAAE,UAAU,QAAOC,IAAED,GAAEC;AAAI,eAAQF,KAAKD,IAAE,UAAUG,CAAC;AAAE,eAAO,UAAU,eAAe,KAAKH,GAAEC,CAAC,MAAIJ,EAAEI,CAAC,IAAED,EAAEC,CAAC;AAAG,WAAOJ;AAAA,EAAC,GAAEkkB,GAAG,MAAM,MAAK,SAAS;AAAC,GAAEC,KAAG,WAAU;AAAC,WAAQnkB,IAAE,GAAEG,IAAE,GAAEG,IAAE,UAAU,QAAOH,IAAEG,GAAEH;AAAI,IAAAH,KAAG,UAAUG,CAAC,EAAE;AAAO,MAAIE,IAAE,MAAML,CAAC,GAAEI,IAAE;AAAE,OAAID,IAAE,GAAEA,IAAEG,GAAEH;AAAI,aAAQI,IAAE,UAAUJ,CAAC,GAAE,IAAE,GAAE,IAAEI,EAAE,QAAO,IAAE,GAAE,KAAIH;AAAI,MAAAC,EAAED,CAAC,IAAEG,EAAE,CAAC;AAAE,SAAOF;AAAC,GAAE+jB,KAAG;AAAI,SAASC,GAAGrkB,GAAEG,GAAE;AAAC,MAAIG,IAAE,EAAC,QAAO4jB,GAAGA,GAAG,IAAGxB,EAAE,GAAE4B,GAAG,aAAa,GAAE,MAAK3B,GAAE;AAAE,WAAStiB,IAAG;AAAC,QAAIL;AAAE,aAAeA,IAAEM,EAAE,uBAAZ,QAAyCN,MAAT,SAAW,SAAOA,EAAE,YAAa,GAAE,iBAAe,SAAS;AAAA,EAAa;AAAC,WAASI,EAAEJ,GAAE;AAAC,WAAOA,EAAE,KAAKM,CAAC;AAAA,EAAC;AAAC,WAASC,IAAG;AAAC,QAAIP,IAAEM,EAAE;AAAO,IAAKN,EAAE,gBAAP,MAAwBA,EAAE,eAAN,KAAuBA,EAAE,eAAP,MAAmB,OAAO,sBAAuB,WAAU;AAAC,UAAYM,EAAE,sBAAX,WAA+BA,EAAE,kBAAkB,MAAM,aAAW,UAASA,EAAE,kBAAkB,MAAM,UAAQ,UAAkBA,EAAE,kBAAX,QAAyB;AAAC,YAAIH,KAAGG,EAAE,KAAK,cAAY,KAAGN,EAAE;AAAW,QAAAM,EAAE,cAAc,MAAM,QAAMH,IAAE,MAAKG,EAAE,kBAAkB,MAAM,QAAMH,KAAYG,EAAE,gBAAX,SAAuBA,EAAE,YAAY,cAAY,KAAG,MAAKA,EAAE,kBAAkB,MAAM,eAAe,YAAY,GAAEA,EAAE,kBAAkB,MAAM,eAAe,SAAS;AAAA,MAAC;AAAA,IAAC,CAAG;AAAA,EAAA;AAAC,WAAS,EAAEN,GAAE;AAAC,QAAOM,EAAE,cAAc,WAApB,GAA2B;AAAC,UAAIH,IAAWG,EAAE,OAAO,YAAlB,UAA2BsjB,GAAG,oBAAI,QAAKtjB,EAAE,OAAO,OAAO,KAAG,IAAE,oBAAI,SAAK,IAAI,KAAKA,EAAE,OAAO,QAAQ,QAAS,CAAA,GAAED,IAAE4jB,GAAG3jB,EAAE,MAAM;AAAE,MAAAH,EAAE,SAASE,EAAE,OAAMA,EAAE,SAAQA,EAAE,SAAQF,EAAE,gBAAiB,CAAA,GAAEG,EAAE,gBAAc,CAACH,CAAC,GAAEG,EAAE,wBAAsBH;AAAA,IAAC;AAAC,IAASH,MAAT,UAAqBA,EAAE,SAAX,UAAiB,SAASA,GAAE;AAAC,MAAAA,EAAE,eAAgB;AAAC,UAAIG,KAAcH,EAAE,SAAd,WAAmBK,IAAE+iB,GAAGpjB,CAAC,GAAEI,IAAEC;AAAE,MAASC,EAAE,SAAX,UAAiBD,MAAIC,EAAE,SAAOA,EAAE,KAAK,cAAYA,EAAE,KAAK,KAAKmd,GAAGnd,EAAE,KAAK,gBAAcA,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC;AAAG,UAAIC,IAAE,WAAWH,EAAE,aAAa,KAAK,CAAC,GAAEO,IAAE,WAAWP,EAAE,aAAa,KAAK,CAAC,GAAEQ,KAAE,WAAWR,EAAE,aAAa,MAAM,CAAC,GAAES,KAAE,SAAST,EAAE,OAAM,EAAE,GAAEU,KAAEd,EAAE,UAAQG,KAAOH,EAAE,UAAP,KAAa,IAAE,KAAG,IAAGe,KAAEF,KAAED,KAAEE;AAAE,UAAYV,EAAE,UAAX,UAAsBA,EAAE,MAAM,WAAZ,GAAmB;AAAC,YAAIY,KAAEZ,MAAIE,EAAE,aAAYW,KAAEb,MAAIE,EAAE;AAAc,QAAAS,KAAER,KAAGQ,KAAEJ,IAAEI,KAAE0c,GAAG,CAACzc,EAAC,KAAGyc,GAAGzc,EAAC,KAAGyc,GAAG,CAACnd,EAAE,IAAI,IAAGW,MAAGS,EAAE,QAAO,IAAGpB,EAAE,WAAW,KAAGS,KAAEJ,MAAII,KAAEX,MAAIE,EAAE,cAAYS,KAAEJ,IAAE8c,GAAG,CAACnd,EAAE,IAAI,IAAEC,GAAEU,MAAGS,EAAE,QAAO,GAAEpB,EAAE,WAAW,IAAGA,EAAE,QAAMU,OAAQJ,OAAJ,IAAMG,KAAEF,OAAI,KAAG,KAAK,IAAIE,KAAEF,EAAC,IAAED,QAAKN,EAAE,KAAK,cAAYA,EAAE,KAAK,KAAKmd,GAAGnd,EAAE,KAAK,gBAAcA,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,IAAGF,EAAE,QAAMwiB,GAAG7hB,EAAC;AAAA,MAAC;AAAA,IAAC,EAAEf,CAAC;AAAE,QAAII,IAAEE,EAAE,OAAO;AAAM,MAAC,GAAGgD,MAAIhD,EAAE,OAAO,UAAQF,KAAGE,EAAE,iBAAgB;AAAA,EAAE;AAAC,WAAS,IAAG;AAAC,QAAYA,EAAE,gBAAX,UAAiCA,EAAE,kBAAX,QAAyB;AAAC,UAAIN,GAAEG,GAAEE,KAAG,SAASC,EAAE,YAAY,MAAM,MAAM,EAAE,GAAE,EAAE,KAAG,KAAG,IAAGF,KAAG,SAASE,EAAE,cAAc,OAAM,EAAE,KAAG,KAAG,IAAGC,IAAWD,EAAE,kBAAX,UAA0B,SAASA,EAAE,cAAc,OAAM,EAAE,KAAG,KAAG,KAAG;AAAE,MAASA,EAAE,SAAX,WAAkBN,IAAEK,GAAEF,IAAEG,EAAE,KAAK,aAAYD,IAAEL,IAAE,KAAG,KAAGyd,GAAGtd,MAAIG,EAAE,KAAK,KAAK,CAAC,CAAC;AAAG,UAAIK,KAAWL,EAAE,OAAO,YAAlB,UAA2BA,EAAE,OAAO,WAASA,EAAE,kBAAgBA,EAAE,yBAA2BsjB,GAAGtjB,EAAE,uBAAsBA,EAAE,OAAO,SAAQ,EAAE,MAAlD,GAAoDM,IAAWN,EAAE,OAAO,YAAlB,UAA2BA,EAAE,OAAO,WAASA,EAAE,kBAAgBA,EAAE,yBAA2BsjB,GAAGtjB,EAAE,uBAAsBA,EAAE,OAAO,SAAQ,EAAE,MAAlD;AAAoD,UAAYA,EAAE,OAAO,YAAlB,UAAoCA,EAAE,OAAO,YAAlB,UAA2BA,EAAE,OAAO,UAAQA,EAAE,OAAO,SAAQ;AAAC,YAAIO,IAAEijB,GAAGxjB,EAAE,OAAO,QAAQ,SAAU,GAACA,EAAE,OAAO,QAAQ,WAAY,GAACA,EAAE,OAAO,QAAQ,WAAU,CAAE,GAAES,IAAE+iB,GAAGxjB,EAAE,OAAO,QAAQ,SAAQ,GAAGA,EAAE,OAAO,QAAQ,cAAaA,EAAE,OAAO,QAAQ,WAAY,CAAA,GAAEU,IAAE8iB,GAAGzjB,GAAED,GAAEG,CAAC;AAAE,YAAGS,IAAED,KAAGC,IAAEH,GAAE;AAAC,cAAII,KAAE8iB,GAAGljB,CAAC;AAAE,UAAAR,IAAEY,GAAE,CAAC,GAAEb,IAAEa,GAAE,CAAC,GAAEV,IAAEU,GAAE,CAAC;AAAA,QAAC;AAAA,MAAC,OAAK;AAAC,YAAGL,GAAE;AAAC,cAAIM,KAAWZ,EAAE,OAAO,YAAlB,SAA0BA,EAAE,OAAO,UAAQA,EAAE,OAAO;AAAQ,WAACD,IAAE,KAAK,IAAIA,GAAEa,GAAE,SAAQ,CAAE,OAAKA,GAAE,SAAQ,MAAKd,IAAE,KAAK,IAAIA,GAAEc,GAAE,WAAU,CAAE,IAAGd,MAAIc,GAAE,WAAU,MAAKX,IAAE,KAAK,IAAIA,GAAEW,GAAE,WAAU,CAAE;AAAA,QAAE;AAAC,YAAGP,IAAE;AAAC,cAAIc,KAAWnB,EAAE,OAAO,YAAlB,SAA0BA,EAAE,OAAO,UAAQA,EAAE,OAAO;AAAQ,WAACD,IAAE,KAAK,IAAIA,GAAEoB,GAAE,SAAQ,CAAE,OAAKA,GAAE,SAAQ,KAAIrB,IAAEqB,GAAE,WAAY,MAAGrB,IAAEqB,GAAE,WAAU,IAAIrB,MAAIqB,GAAE,WAAU,MAAKlB,IAAE,KAAK,IAAIA,GAAEkB,GAAE,WAAY,CAAA;AAAA,QAAE;AAAA,MAAC;AAAC,MAAAX,EAAET,GAAED,GAAEG,CAAC;AAAA,IAAC;AAAA,EAAC;AAAC,WAAS,EAAEP,GAAE;AAAC,QAAIG,IAAEH,KAAGM,EAAE;AAAsB,IAAAH,KAAGA,aAAa,QAAMW,EAAEX,EAAE,SAAQ,GAAGA,EAAE,WAAU,GAAGA,EAAE,WAAY,CAAA;AAAA,EAAC;AAAC,WAASW,EAAEd,GAAEG,GAAEE,GAAE;AAAC,IAASC,EAAE,0BAAX,UAAkCA,EAAE,sBAAsB,SAASN,IAAE,IAAGG,GAAEE,KAAG,GAAE,CAAC,GAAEC,EAAE,eAAaA,EAAE,iBAAe,CAACA,EAAE,aAAWA,EAAE,YAAY,QAAMsiB,GAAGtiB,EAAE,OAAO,YAAUN,KAAG,KAAGA,KAAG,KAAG,KAAGyd,GAAGzd,IAAE,MAAI,CAAC,CAAC,GAAEM,EAAE,cAAc,QAAMsiB,GAAGziB,CAAC,GAAWG,EAAE,SAAX,WAAkBA,EAAE,KAAK,cAAYA,EAAE,KAAK,KAAKmd,GAAGzd,KAAG,EAAE,CAAC,IAAYM,EAAE,kBAAX,WAA2BA,EAAE,cAAc,QAAMsiB,GAAGviB,CAAC;AAAA,EAAG;AAAC,WAASU,EAAEf,GAAE;AAAC,QAAIG,IAAEijB,GAAGpjB,CAAC,GAAEM,IAAE,SAASH,EAAE,KAAK,KAAGH,EAAE,SAAO;AAAG,KAACM,IAAE,MAAI,KAAaN,EAAE,QAAZ,WAAiB,CAAC,QAAQ,KAAKM,EAAE,SAAU,CAAA,MAAIsB,GAAEtB,CAAC;AAAA,EAAC;AAAC,WAASU,EAAEhB,GAAEG,GAAEE,GAAED,GAAE;AAAC,WAAOD,aAAa,QAAMA,EAAE,QAAS,SAASA,GAAE;AAAC,aAAOa,EAAEhB,GAAEG,GAAEE,GAAED,CAAC;AAAA,IAAC,CAAC,IAAGJ,aAAa,QAAMA,EAAE,QAAS,SAASA,GAAE;AAAC,aAAOgB,EAAEhB,GAAEG,GAAEE,GAAED,CAAC;AAAA,IAAC,CAAG,KAAEJ,EAAE,iBAAiBG,GAAEE,GAAED,CAAC,GAAE,KAAKE,EAAE,UAAU,KAAK,EAAC,QAAO,WAAU;AAAC,aAAON,EAAE,oBAAoBG,GAAEE,GAAED,CAAC;AAAA,IAAC,EAAC,CAAC;AAAA,EAAE;AAAC,WAASa,IAAG;AAAC,IAAAgC,EAAE,UAAU;AAAA,EAAC;AAAC,WAAS/B,EAAElB,GAAEG,GAAE;AAAC,QAAIE,IAAWL,MAAT,SAAWM,EAAE,UAAUN,CAAC,IAAEM,EAAE,0BAAwBA,EAAE,OAAO,WAASA,EAAE,OAAO,UAAQA,EAAE,MAAIA,EAAE,OAAO,UAAQA,EAAE,OAAO,WAASA,EAAE,OAAO,UAAQA,EAAE,MAAIA,EAAE,OAAO,UAAQA,EAAE,MAAKF,IAAEE,EAAE,aAAYC,IAAED,EAAE;AAAa,QAAG;AAAC,MAASD,MAAT,WAAaC,EAAE,cAAYD,EAAE,YAAW,GAAGC,EAAE,eAAaD,EAAE;IAAW,SAAOL,IAAE;AAAC,MAAAA,GAAE,UAAQ,4BAA0BK,GAAEC,EAAE,OAAO,aAAaN,EAAC;AAAA,IAAC;AAAC,IAAAG,KAAGG,EAAE,gBAAcF,MAAI6C,EAAE,cAAc,GAAExC,MAAK,CAACN,KAAGG,EAAE,gBAAcF,KAAGE,EAAE,iBAAeC,KAAG0C,EAAE,eAAe,GAAE3C,EAAE,OAAM;AAAA,EAAE;AAAC,WAASmB,EAAEzB,GAAE;AAAC,QAAIG,IAAEijB,GAAGpjB,CAAC;AAAE,KAACG,EAAE,UAAU,QAAQ,OAAO,KAAGuB,EAAE1B,GAAEG,EAAE,UAAU,SAAS,SAAS,IAAE,IAAE,EAAE;AAAA,EAAC;AAAC,WAASuB,EAAE1B,GAAEG,GAAEG,GAAE;AAAC,QAAID,IAAEL,KAAGojB,GAAGpjB,CAAC,GAAEI,IAAEE,KAAGD,KAAGA,EAAE,cAAYA,EAAE,WAAW,YAAWE,KAAEiO,GAAE,WAAW;AAAE,IAAAjO,GAAE,QAAMJ,GAAEC,KAAGA,EAAE,cAAcG,EAAC;AAAA,EAAC;AAAC,WAASoB,EAAE3B,GAAEG,GAAEE,GAAED,GAAE;AAAC,QAAIG,IAAEsB,EAAE1B,GAAE,EAAE,GAAEQ,KAAEqiB,GAAG,QAAOhjB,GAAEG,EAAE,QAAO,EAAG,SAAQ,CAAE;AAAE,WAAOQ,GAAE,UAAQR,GAAEQ,GAAE,KAAGP,GAAEO,GAAE,aAAa,cAAaL,EAAE,WAAWH,GAAEG,EAAE,OAAO,cAAc,CAAC,GAAON,EAAE,QAAQ,QAAQ,MAAvB,MAA8B4jB,GAAGzjB,GAAEG,EAAE,GAAG,MAAd,MAAkBA,EAAE,gBAAcK,IAAEA,GAAE,UAAU,IAAI,OAAO,GAAEA,GAAE,aAAa,gBAAe,MAAM,IAAGJ,KAAGI,GAAE,WAAS,IAAGuC,GAAE/C,CAAC,MAAIQ,GAAE,UAAU,IAAI,UAAU,GAAEL,EAAE,mBAAiBK,IAAYL,EAAE,OAAO,SAAnB,YAA0ByiB,GAAGpiB,IAAE,cAAaL,EAAE,cAAc,CAAC,KAAOsjB,GAAGzjB,GAAEG,EAAE,cAAc,CAAC,GAAE,EAAE,MAA9B,CAA+B,GAAEyiB,GAAGpiB,IAAE,YAAWL,EAAE,cAAc,CAAC,KAAOsjB,GAAGzjB,GAAEG,EAAE,cAAc,CAAC,GAAE,EAAE,MAA9B,CAA+B,GAAmBN,MAAjB,kBAAoBW,GAAE,UAAU,IAAI,SAAS,OAAKA,GAAE,UAAU,IAAI,oBAAoB,GAAYL,EAAE,OAAO,SAAnB,WAAyB,SAASN,GAAE;AAAC,aAAM,EAAYM,EAAE,OAAO,SAAnB,WAAyBA,EAAE,cAAc,SAAO,MAAKsjB,GAAG5jB,GAAEM,EAAE,cAAc,CAAC,CAAC,KAAG,KAAGsjB,GAAG5jB,GAAEM,EAAE,cAAc,CAAC,CAAC,KAAG;AAAA,IAAE,EAAEH,CAAC,KAAG,CAAC+C,GAAE/C,CAAC,KAAGQ,GAAE,UAAU,IAAI,SAAS,GAAEL,EAAE,eAAiBA,EAAE,OAAO,eAAb,KAA0CN,MAAjB,kBAAoBI,IAAE,KAAG,KAAGE,EAAE,YAAY,mBAAmB,aAAY,iCAA+BA,EAAE,OAAO,QAAQH,CAAC,IAAE,SAAS,GAAE8C,EAAE,eAActC,EAAC,GAAEA;AAAA,EAAC;AAAC,WAASsB,EAAEjC,GAAE;AAAC,IAAAA,EAAE,MAAO,GAAWM,EAAE,OAAO,SAAnB,WAAyB4B,GAAElC,CAAC;AAAA,EAAC;AAAC,WAASD,EAAEC,GAAE;AAAC,aAAQG,IAAEH,IAAE,IAAE,IAAEM,EAAE,OAAO,aAAW,GAAED,IAAEL,IAAE,IAAEM,EAAE,OAAO,aAAW,IAAGF,IAAED,GAAEC,KAAGC,GAAED,KAAGJ;AAAE,eAAQO,IAAED,EAAE,cAAc,SAASF,CAAC,GAAEO,KAAEX,IAAE,IAAE,IAAEO,EAAE,SAAS,SAAO,GAAEK,IAAEZ,IAAE,IAAEO,EAAE,SAAS,SAAO,IAAGM,IAAEF,IAAEE,KAAGD,GAAEC,KAAGb,GAAE;AAAC,YAAIc,IAAEP,EAAE,SAASM,CAAC;AAAE,YAAQC,EAAE,UAAU,QAAQ,QAAQ,MAAjC,MAAoCe,EAAEf,EAAE,OAAO;AAAE,iBAAOA;AAAA,MAAC;AAAA,EAAC;AAAC,WAASb,EAAED,GAAEG,GAAE;AAAC,QAAIC,IAAEC,EAAC,GAAGE,IAAEuB,GAAE1B,KAAG,SAAS,IAAI,GAAEO,IAAWX,MAAT,SAAWA,IAAEO,IAAEH,IAAWE,EAAE,qBAAX,UAA6BwB,GAAExB,EAAE,gBAAgB,IAAEA,EAAE,mBAA0BA,EAAE,kBAAX,UAA0BwB,GAAExB,EAAE,aAAa,IAAEA,EAAE,gBAAcP,EAAEI,IAAE,IAAE,IAAE,EAAE;AAAE,IAASQ,MAAT,SAAWL,EAAE,OAAO,MAAK,IAAGC,IAAE,SAASP,IAAEG,GAAE;AAAC,eAAQE,IAAOL,GAAE,UAAU,QAAQ,OAAO,MAAhC,KAAkCA,GAAE,QAAQ,SAAQ,IAAGM,EAAE,cAAaF,IAAED,IAAE,IAAEG,EAAE,OAAO,aAAW,IAAGC,IAAEJ,IAAE,IAAE,IAAE,IAAGQ,KAAEN,IAAEC,EAAE,cAAaK,MAAGP,GAAEO,MAAGJ;AAAE,iBAAQK,KAAEN,EAAE,cAAc,SAASK,EAAC,GAAEE,KAAER,IAAEC,EAAE,iBAAeK,KAAEX,GAAE,KAAGG,IAAEA,IAAE,IAAES,GAAE,SAAS,SAAO,IAAE,GAAEE,KAAEF,GAAE,SAAS,QAAOG,KAAEF,IAAEE,MAAG,KAAGA,KAAED,MAAGC,OAAIZ,IAAE,IAAEW,KAAE,KAAIC,MAAGR,GAAE;AAAC,cAAIS,KAAEJ,GAAE,SAASG,EAAC;AAAE,cAAQC,GAAE,UAAU,QAAQ,QAAQ,MAAjC,MAAoCa,EAAEb,GAAE,OAAO,KAAG,KAAK,IAAIhB,GAAE,KAAGe,EAAC,KAAG,KAAK,IAAIZ,CAAC;AAAE,mBAAO8B,EAAEjB,EAAC;AAAA,QAAC;AAAC,MAAAV,EAAE,YAAYC,CAAC,GAAEN,EAAEF,EAAEQ,CAAC,GAAE,CAAC;AAAA,IAAC,EAAEI,GAAER,CAAC,IAAE8B,EAAEtB,CAAC;AAAA,EAAC;AAAC,WAAST,EAAEF,GAAEG,GAAE;AAAC,aAAQE,KAAG,IAAI,KAAKL,GAAEG,GAAE,CAAC,EAAE,OAAQ,IAACG,EAAE,KAAK,iBAAe,KAAG,GAAEF,IAAEE,EAAE,MAAM,gBAAgBH,IAAE,IAAE,MAAI,IAAGH,CAAC,GAAEO,IAAED,EAAE,MAAM,eAAeH,GAAEH,CAAC,GAAEW,KAAE,OAAO,SAAS,uBAAsB,GAAGC,IAAEN,EAAE,OAAO,aAAW,GAAEO,IAAED,IAAE,wBAAsB,gBAAeE,IAAEF,IAAE,wBAAsB,gBAAeG,IAAEX,IAAE,IAAEC,GAAEW,KAAE,GAAED,KAAGX,GAAEW,KAAIC;AAAI,MAAAL,GAAE,YAAYgB,EAAE,mBAAiBd,GAAE,IAAI,KAAKb,GAAEG,IAAE,GAAEY,CAAC,GAAE,GAAEC,EAAC,CAAC;AAAE,SAAID,IAAE,GAAEA,KAAGR,GAAEQ,KAAIC;AAAI,MAAAL,GAAE,YAAYgB,EAAE,iBAAgB,IAAI,KAAK3B,GAAEG,GAAEY,CAAC,GAAE,GAAEC,EAAC,CAAC;AAAE,aAAQC,KAAEV,IAAE,GAAEU,MAAG,KAAGZ,MAAQC,EAAE,OAAO,eAAb,KAAyBU,KAAE,KAAG,IAAGC,MAAID;AAAI,MAAAL,GAAE,YAAYgB,EAAE,mBAAiBb,GAAE,IAAI,KAAKd,GAAEG,IAAE,GAAEc,KAAEV,CAAC,GAAE,GAAES,EAAC,CAAC;AAAE,QAAIE,KAAE8hB,GAAG,OAAM,cAAc;AAAE,WAAO9hB,GAAE,YAAYP,EAAC,GAAEO;AAAA,EAAC;AAAC,WAASV,IAAG;AAAC,QAAYF,EAAE,kBAAX,QAAyB;AAAC,MAAA2iB,GAAG3iB,EAAE,aAAa,GAAEA,EAAE,eAAa2iB,GAAG3iB,EAAE,WAAW;AAAE,eAAQN,IAAE,SAAS,uBAAwB,GAACG,IAAE,GAAEA,IAAEG,EAAE,OAAO,YAAWH,KAAI;AAAC,YAAIE,IAAE,IAAI,KAAKC,EAAE,aAAYA,EAAE,cAAa,CAAC;AAAE,QAAAD,EAAE,SAASC,EAAE,eAAaH,CAAC,GAAEH,EAAE,YAAYE,EAAEG,EAAE,YAAa,GAACA,EAAE,UAAU,CAAC;AAAA,MAAC;AAAC,MAAAC,EAAE,cAAc,YAAYN,CAAC,GAAEM,EAAE,OAAKA,EAAE,cAAc,YAAqBA,EAAE,OAAO,SAAnB,WAA6BA,EAAE,cAAc,WAApB,KAA4B4B;IAAG;AAAA,EAAC;AAAC,WAASzB,IAAG;AAAC,QAAG,EAAEH,EAAE,OAAO,aAAW,KAAgBA,EAAE,OAAO,sBAAtB,aAAyC;AAAC,UAAIN,IAAE,SAASA,GAAE;AAAC,eAAM,EAAWM,EAAE,OAAO,YAAlB,UAA2BA,EAAE,gBAAcA,EAAE,OAAO,QAAQ,YAAa,KAAEN,IAAEM,EAAE,OAAO,QAAQ,SAAU,MAAG,EAAWA,EAAE,OAAO,YAAlB,UAA2BA,EAAE,gBAAcA,EAAE,OAAO,QAAQ,iBAAeN,IAAEM,EAAE,OAAO,QAAQ;MAAW;AAAE,MAAAA,EAAE,wBAAwB,WAAS,IAAGA,EAAE,wBAAwB,YAAU;AAAG,eAAQH,IAAE,GAAEA,IAAE,IAAGA;AAAI,YAAGH,EAAEG,CAAC,GAAE;AAAC,cAAIE,IAAE2iB,GAAG,UAAS,+BAA+B;AAAE,UAAA3iB,EAAE,QAAM,IAAI,KAAKC,EAAE,aAAYH,CAAC,EAAE,SAAU,EAAC,SAAU,GAACE,EAAE,cAAYijB,GAAGnjB,GAAEG,EAAE,OAAO,uBAAsBA,EAAE,IAAI,GAAED,EAAE,WAAS,IAAGC,EAAE,iBAAeH,MAAIE,EAAE,WAAS,KAAIC,EAAE,wBAAwB,YAAYD,CAAC;AAAA,QAAC;AAAA,IAAC;AAAA,EAAC;AAAC,WAASK,IAAG;AAAC,QAAIV,GAAEG,IAAE6iB,GAAG,OAAM,iBAAiB,GAAE3iB,IAAE,OAAO,SAAS;AAAyB,IAAAC,EAAE,OAAO,aAAW,KAAcA,EAAE,OAAO,sBAApB,WAAsCN,IAAEgjB,GAAG,QAAO,WAAW,KAAG1iB,EAAE,0BAAwB0iB,GAAG,UAAS,gCAAgC,GAAE1iB,EAAE,wBAAwB,aAAa,cAAaA,EAAE,KAAK,cAAc,GAAEU,EAAEV,EAAE,yBAAwB,UAAU,SAASN,GAAE;AAAC,UAAIG,IAAEijB,GAAGpjB,CAAC,GAAEK,IAAE,SAASF,EAAE,OAAM,EAAE;AAAE,MAAAG,EAAE,YAAYD,IAAEC,EAAE,YAAY,GAAE2C,EAAE,eAAe;AAAA,IAAC,CAAC,GAAGxC,KAAIT,IAAEM,EAAE;AAAyB,QAAIF,IAAE+iB,GAAG,YAAW,EAAC,UAAS,KAAI,CAAC,GAAE5iB,IAAEH,EAAE,qBAAqB,OAAO,EAAE,CAAC;AAAE,IAAAG,EAAE,aAAa,cAAaD,EAAE,KAAK,aAAa,GAAEA,EAAE,OAAO,WAASC,EAAE,aAAa,OAAMD,EAAE,OAAO,QAAQ,YAAa,EAAC,SAAU,CAAA,GAAEA,EAAE,OAAO,YAAUC,EAAE,aAAa,OAAMD,EAAE,OAAO,QAAQ,YAAa,EAAC,SAAU,CAAA,GAAEC,EAAE,WAAS,CAAC,CAACD,EAAE,OAAO,WAASA,EAAE,OAAO,QAAQ,YAAa,MAAGA,EAAE,OAAO,QAAQ,YAAW;AAAI,QAAIK,KAAEqiB,GAAG,OAAM,yBAAyB;AAAE,WAAOriB,GAAE,YAAYX,CAAC,GAAEW,GAAE,YAAYP,CAAC,GAAEC,EAAE,YAAYM,EAAC,GAAER,EAAE,YAAYE,CAAC,GAAE,EAAC,WAAUF,GAAE,aAAYI,GAAE,cAAaP,EAAC;AAAA,EAAC;AAAC,WAASmB,IAAG;AAAC,IAAA8hB,GAAG3iB,EAAE,QAAQ,GAAEA,EAAE,SAAS,YAAYA,EAAE,YAAY,GAAEA,EAAE,OAAO,eAAaA,EAAE,eAAa,IAAGA,EAAE,gBAAc,CAAE;AAAE,aAAQN,IAAEM,EAAE,OAAO,YAAWN,OAAK;AAAC,UAAIG,IAAEO;AAAI,MAAAJ,EAAE,aAAa,KAAKH,EAAE,WAAW,GAAEG,EAAE,cAAc,KAAKH,EAAE,YAAY,GAAEG,EAAE,SAAS,YAAYH,EAAE,SAAS;AAAA,IAAC;AAAC,IAAAG,EAAE,SAAS,YAAYA,EAAE,YAAY;AAAA,EAAC;AAAC,WAASc,IAAG;AAAC,IAAAd,EAAE,mBAAiB2iB,GAAG3iB,EAAE,gBAAgB,IAAEA,EAAE,mBAAiB0iB,GAAG,OAAM,oBAAoB;AAAE,aAAQhjB,IAAEM,EAAE,OAAO,YAAWN,OAAK;AAAC,UAAIG,IAAE6iB,GAAG,OAAM,4BAA4B;AAAE,MAAA1iB,EAAE,iBAAiB,YAAYH,CAAC;AAAA,IAAC;AAAC,WAAOkB,EAAG,GAACf,EAAE;AAAA,EAAgB;AAAC,WAASe,IAAG;AAAC,QAAGf,EAAE,kBAAiB;AAAC,UAAIN,IAAEM,EAAE,KAAK,gBAAeH,IAAEgkB,GAAG7jB,EAAE,KAAK,SAAS,SAAS;AAAE,MAAAN,IAAE,KAAGA,IAAEG,EAAE,WAASA,IAAEgkB,GAAGhkB,EAAE,OAAOH,GAAEG,EAAE,MAAM,GAAEA,EAAE,OAAO,GAAEH,CAAC,CAAC;AAAG,eAAQK,IAAEC,EAAE,OAAO,YAAWD;AAAK,QAAAC,EAAE,iBAAiB,SAASD,CAAC,EAAE,YAAU;AAAA;AAAA,YAAqDF,EAAE,KAAK,yCAAyC,IAAE;AAAA;AAAA;AAAA,IAAyB;AAAA,EAAC;AAAC,WAASmB,EAAEtB,GAAEG,GAAE;AAAC,IAASA,MAAT,WAAaA,IAAE;AAAI,QAAIE,IAAEF,IAAEH,IAAEA,IAAEM,EAAE;AAAa,IAAAD,IAAE,KAAQC,EAAE,wBAAP,MAA4BD,IAAE,KAAQC,EAAE,wBAAP,OAA6BA,EAAE,gBAAcD,IAAGC,EAAE,eAAa,KAAGA,EAAE,eAAa,QAAMA,EAAE,eAAaA,EAAE,eAAa,KAAG,IAAE,IAAGA,EAAE,gBAAcA,EAAE,eAAa,MAAI,IAAG2C,EAAE,cAAc,GAAExC,EAAG,IAAED,KAAIyC,EAAE,eAAe,GAAEE,GAAC;AAAA,EAAG;AAAC,WAAS5B,EAAEvB,GAAE;AAAC,WAAOM,EAAE,kBAAkB,SAASN,CAAC;AAAA,EAAC;AAAC,WAASwB,GAAExB,GAAE;AAAC,QAAGM,EAAE,UAAQ,CAACA,EAAE,OAAO,QAAO;AAAC,UAAIH,IAAEijB,GAAGpjB,CAAC,GAAEK,IAAEkB,EAAEpB,CAAC,GAAEC,IAAE,EAAED,MAAIG,EAAE,SAAOH,MAAIG,EAAE,YAAUA,EAAE,QAAQ,SAASH,CAAC,KAAGH,EAAE,QAAMA,EAAE,KAAK,YAAU,CAACA,EAAE,KAAK,QAAQM,EAAE,KAAK,KAAG,CAACN,EAAE,KAAK,QAAQM,EAAE,QAAQ,OAAK,CAACD,KAAG,CAACkB,EAAEvB,EAAE,aAAa,GAAEO,IAAE,CAACD,EAAE,OAAO,qBAAqB,KAAM,SAASN,IAAE;AAAC,eAAOA,GAAE,SAASG,CAAC;AAAA,MAAC,CAAC;AAAG,MAAAC,KAAGG,MAAID,EAAE,OAAO,cAAYA,EAAE,QAAQA,EAAE,OAAO,OAAM,IAAGA,EAAE,OAAO,WAASA,EAAE,OAAO,YAAUA,EAAE,OAAO,UAAU,GAAWA,EAAE,kBAAX,UAAmCA,EAAE,kBAAX,UAAmCA,EAAE,gBAAX,UAA6BA,EAAE,MAAM,UAAb,MAA6BA,EAAE,MAAM,UAAjB,UAAwB,EAAC,GAAGA,EAAE,MAAK,GAAGA,EAAE,UAAkBA,EAAE,OAAO,SAAnB,WAA6BA,EAAE,cAAc,WAApB,KAA4BA,EAAE,MAAM,EAAE;AAAA,IAAE;AAAA,EAAC;AAAC,WAASsB,GAAE5B,GAAE;AAAC,QAAG,EAAE,CAACA,KAAGM,EAAE,OAAO,WAASN,IAAEM,EAAE,OAAO,QAAQ,iBAAeA,EAAE,OAAO,WAASN,IAAEM,EAAE,OAAO,QAAQ,YAAa,IAAE;AAAC,UAAIH,IAAEH,GAAEK,IAAEC,EAAE,gBAAcH;AAAE,MAAAG,EAAE,cAAYH,KAAGG,EAAE,aAAYA,EAAE,OAAO,WAASA,EAAE,gBAAcA,EAAE,OAAO,QAAQ,YAAa,IAACA,EAAE,eAAa,KAAK,IAAIA,EAAE,OAAO,QAAQ,SAAU,GAACA,EAAE,YAAY,IAAEA,EAAE,OAAO,WAASA,EAAE,gBAAcA,EAAE,OAAO,QAAQ,YAAa,MAAGA,EAAE,eAAa,KAAK,IAAIA,EAAE,OAAO,QAAQ,SAAU,GAACA,EAAE,YAAY,IAAGD,MAAIC,EAAE,UAAS2C,EAAE,cAAc,GAAExC;IAAI;AAAA,EAAC;AAAC,WAASoB,EAAE7B,GAAEG,GAAE;AAAC,QAAIE;AAAE,IAASF,MAAT,WAAaA,IAAE;AAAI,QAAIC,IAAEE,EAAE,UAAUN,GAAE,QAAOG,CAAC;AAAE,QAAGG,EAAE,OAAO,WAASF,KAAGwjB,GAAGxjB,GAAEE,EAAE,OAAO,SAAiBH,MAAT,SAAWA,IAAE,CAACG,EAAE,cAAc,IAAE,KAAGA,EAAE,OAAO,WAASF,KAAGwjB,GAAGxjB,GAAEE,EAAE,OAAO,SAAiBH,MAAT,SAAWA,IAAE,CAACG,EAAE,cAAc,IAAE;AAAE,aAAM;AAAG,QAAG,CAACA,EAAE,OAAO,UAAYA,EAAE,OAAO,QAAQ,WAArB;AAA4B,aAAM;AAAG,QAAYF,MAAT;AAAW,aAAM;AAAG,aAAQG,IAAE,CAAC,CAACD,EAAE,OAAO,QAAOK,MAAUN,IAAEC,EAAE,OAAO,YAAnB,QAAqCD,MAAT,SAAWA,IAAEC,EAAE,OAAO,SAAQM,IAAE,GAAEC,IAAE,QAAOD,IAAED,GAAE,QAAOC,KAAI;AAA8C,UAA9B,QAAOC,IAAEF,GAAEC,CAAC,MAAxB,cAA4BC,EAAET,CAAC,KAAcS,aAAa,QAAeT,MAAT,UAAYS,EAAE,QAAO,MAAKT,EAAE,QAAO;AAAG,eAAOG;AAAE,UAAa,OAAOM,KAAjB,UAAmB;AAAC,YAAIC,IAAER,EAAE,UAAUO,GAAE,QAAO,EAAE;AAAE,eAAOC,KAAGA,EAAE,cAAYV,EAAE,QAAO,IAAGG,IAAE,CAACA;AAAA,MAAC;AAAC,UAAa,OAAOM,KAAjB,YAA6BT,MAAT,UAAYS,EAAE,QAAMA,EAAE,MAAIT,EAAE,QAAS,KAAES,EAAE,KAAK,aAAWT,EAAE,QAAO,KAAIS,EAAE,GAAG,QAAS;AAAC,eAAON;AAAA,IAAC;AAAC,WAAM,CAACA;AAAA,EAAC;AAAC,WAASuB,GAAE9B,GAAE;AAAC,WAAgBM,EAAE,kBAAX,UAAgCN,EAAE,UAAU,QAAQ,QAAQ,MAAjC,MAAyCA,EAAE,UAAU,QAAQ,oBAAoB,MAA7C,MAAgDM,EAAE,cAAc,SAASN,CAAC;AAAA,EAAE;AAAC,WAAS+B,GAAE/B,GAAE;AAAC,QAAIG,IAAEH,EAAE,WAASM,EAAE,QAAOD,IAAEC,EAAE,OAAO,MAAM,QAAO,MAAK+C;AAAI,KAAClD,KAAG,CAACE,KAAGL,EAAE,iBAAeuB,EAAEvB,EAAE,aAAa,KAAGM,EAAE,QAAQA,EAAE,OAAO,OAAM,IAAGN,EAAE,WAASM,EAAE,WAASA,EAAE,OAAO,YAAUA,EAAE,OAAO,UAAU;AAAA,EAAC;AAAC,WAAS0B,GAAE7B,GAAE;AAAC,QAAIC,IAAEgjB,GAAGjjB,CAAC,GAAEI,IAAED,EAAE,OAAO,OAAKN,EAAE,SAASI,CAAC,IAAEA,MAAIE,EAAE,QAAOO,IAAEP,EAAE,OAAO,YAAWQ,IAAER,EAAE,WAAS,CAACO,KAAG,CAACN,IAAGQ,KAAET,EAAE,OAAO,UAAQC,KAAG,CAACM;AAAE,QAAQV,EAAE,YAAP,MAAgBI,GAAE;AAAC,UAAGM;AAAE,eAAOP,EAAE,QAAQA,EAAE,OAAO,OAAM,IAAGF,MAAIE,EAAE,WAASA,EAAE,OAAO,YAAUA,EAAE,OAAO,UAAU,GAAEA,EAAE,MAAO,GAACF,EAAE,KAAM;AAAC,MAAAE,EAAE;IAAM,WAASiB,EAAEnB,CAAC,KAAGU,KAAGC,IAAE;AAAC,UAAIC,IAAE,CAAC,CAACV,EAAE,iBAAeA,EAAE,cAAc,SAASF,CAAC;AAAE,cAAOD,EAAE,SAAS;AAAA,QAAA,KAAK;AAAG,UAAAa,KAAGb,EAAE,eAAgB,GAAC,EAAC,GAAGwC,EAAC,KAAIC,EAAEzC,CAAC;AAAE;AAAA,QAAM,KAAK;AAAG,UAAAA,EAAE,eAAc,GAAGwC,EAAC;AAAG;AAAA,QAAM,KAAK;AAAA,QAAE,KAAK;AAAG,UAAApC,KAAG,CAACD,EAAE,OAAO,eAAaH,EAAE,eAAgB,GAACG,EAAE,MAAO;AAAE;AAAA,QAAM,KAAK;AAAA,QAAG,KAAK;AAAG,cAAGU,KAAGT;AAAE,YAAAD,EAAE,eAAaA,EAAE,YAAY;eAAY;AAAC,YAAAH,EAAE,eAAc;AAAG,gBAAIc,IAAEZ,EAAC;AAAG,gBAAYC,EAAE,kBAAX,WAAgCO,MAAL,MAAQI,KAAGa,GAAEb,CAAC,IAAG;AAAC,kBAAIC,IAAOf,EAAE,YAAP,KAAe,IAAE;AAAG,cAAAA,EAAE,WAASA,EAAE,gBAAiB,GAACmB,EAAEJ,CAAC,GAAEjB,EAAEF,EAAE,CAAC,GAAE,CAAC,KAAGE,EAAE,QAAOiB,CAAC;AAAA,YAAC;AAAA,UAAC;AAAC;AAAA,QAAM,KAAK;AAAA,QAAG,KAAK;AAAG,UAAAf,EAAE,eAAc;AAAG,cAAIsB,IAAOtB,EAAE,YAAP,KAAe,IAAE;AAAG,UAAAG,EAAE,iBAAwBF,EAAE,OAAX,UAAeA,MAAIE,EAAE,SAAOF,MAAIE,EAAE,WAASH,EAAE,WAASA,EAAE,gBAAiB,GAACyB,GAAEtB,EAAE,cAAYmB,CAAC,GAAExB,EAAEF,EAAE,CAAC,GAAE,CAAC,KAAGiB,KAAGf,EAAE,QAAO,IAAEwB,CAAC,IAAErB,MAAIE,EAAE,qBAAmBsB,GAAEtB,EAAE,cAAYmB,CAAC,IAAEnB,EAAE,OAAO,eAAa,CAACU,KAAGV,EAAE,eAAaA,EAAE,YAAY,MAAK,GAAG,EAAEH,CAAC,GAAEG,EAAE,iBAAkB;AAAE;AAAA,QAAM,KAAK;AAAE,cAAGU,GAAE;AAAC,gBAAIU,KAAE,CAACpB,EAAE,aAAYA,EAAE,eAAcA,EAAE,eAAcA,EAAE,IAAI,EAAE,OAAOA,EAAE,cAAc,EAAE,OAAQ,SAASN,IAAE;AAAC,qBAAOA;AAAA,YAAC,CAAC,GAAG2B,KAAED,GAAE,QAAQtB,CAAC;AAAE,gBAAQuB,OAAL,IAAO;AAAC,kBAAIM,KAAEP,GAAEC,MAAGxB,EAAE,WAAS,KAAG,EAAE;AAAE,cAAAA,EAAE,mBAAkB8B,MAAG3B,EAAE,QAAQ,MAAK;AAAA,YAAE;AAAA,UAAC;AAAK,aAACA,EAAE,OAAO,cAAYA,EAAE,iBAAeA,EAAE,cAAc,SAASF,CAAC,KAAGD,EAAE,aAAWA,EAAE,eAAc,GAAGG,EAAE,OAAO,MAAO;AAAA,MAAC;AAAA,IAAC;AAAC,QAAYA,EAAE,SAAX,UAAiBF,MAAIE,EAAE;AAAK,cAAOH,EAAE,KAAG;AAAA,QAAE,KAAKG,EAAE,KAAK,KAAK,CAAC,EAAE,OAAO,CAAC;AAAA,QAAE,KAAKA,EAAE,KAAK,KAAK,CAAC,EAAE,OAAO,CAAC,EAAE,YAAa;AAAC,UAAAA,EAAE,KAAK,cAAYA,EAAE,KAAK,KAAK,CAAC,GAAE,KAAIgD;AAAI;AAAA,QAAM,KAAKhD,EAAE,KAAK,KAAK,CAAC,EAAE,OAAO,CAAC;AAAA,QAAE,KAAKA,EAAE,KAAK,KAAK,CAAC,EAAE,OAAO,CAAC,EAAE,YAAa;AAAC,UAAAA,EAAE,KAAK,cAAYA,EAAE,KAAK,KAAK,CAAC,GAAE,KAAIgD;MAAG;AAAC,KAAC/C,KAAGgB,EAAEnB,CAAC,MAAI6C,EAAE,aAAY9C,CAAC;AAAA,EAAC;AAAC,WAAS+B,GAAElC,GAAEG,GAAE;AAAC,QAAYA,MAAT,WAAaA,IAAE,kBAAqBG,EAAE,cAAc,WAApB,MAA6B,CAACN,KAAGA,EAAE,UAAU,SAASG,CAAC,KAAG,CAACH,EAAE,UAAU,SAAS,oBAAoB,IAAG;AAAC,eAAQK,IAAEL,IAAEA,EAAE,QAAQ,YAAUM,EAAE,KAAK,kBAAkB,QAAQ,WAAUF,IAAEE,EAAE,UAAUA,EAAE,cAAc,CAAC,GAAE,QAAO,EAAE,EAAE,QAAS,GAACC,IAAE,KAAK,IAAIF,GAAEC,EAAE,cAAc,CAAC,EAAE,SAAS,GAAEK,KAAE,KAAK,IAAIN,GAAEC,EAAE,cAAc,CAAC,EAAE,SAAS,GAAEM,IAAE,IAAGC,IAAE,GAAEC,IAAE,GAAEC,IAAER,GAAEQ,IAAEJ,IAAEI,KAAGijB,GAAG;AAAI,QAAAniB,EAAE,IAAI,KAAKd,CAAC,GAAE,EAAE,MAAIH,IAAEA,KAAGG,IAAER,KAAGQ,IAAEJ,IAAEI,IAAEX,MAAI,CAACS,KAAGE,IAAEF,KAAGA,IAAEE,IAAEA,IAAEX,MAAI,CAACU,KAAGC,IAAED,OAAKA,IAAEC;AAAI,YAAM,KAAKT,EAAE,WAAW,iBAAiB,oBAAkBA,EAAE,OAAO,aAAW,UAAQH,CAAC,CAAC,EAAE,QAAS,SAASA,IAAE;AAAC,YAAII,KAAEJ,GAAE,QAAQ,WAAUQ,KAAEE,IAAE,KAAGN,KAAEM,KAAGC,IAAE,KAAGP,KAAEO;AAAE,YAAGH;AAAE,iBAAOR,GAAE,UAAU,IAAI,YAAY,GAAE,KAAI,CAAC,WAAU,cAAa,UAAU,EAAE,QAAS,SAASH,IAAE;AAAC,YAAAG,GAAE,UAAU,OAAOH,EAAC;AAAA,UAAC,CAAC;AAAG,QAAAY,KAAG,CAACD,OAAI,CAAC,cAAa,WAAU,YAAW,YAAY,EAAE,QAAS,SAASX,IAAE;AAAC,UAAAG,GAAE,UAAU,OAAOH,EAAC;AAAA,QAAC,CAAG,GAAUA,MAAT,WAAaA,EAAE,UAAU,IAAIK,KAAGC,EAAE,cAAc,CAAC,EAAE,QAAO,IAAG,eAAa,UAAU,GAAEF,IAAEC,KAAGE,OAAIH,IAAED,GAAE,UAAU,IAAI,YAAY,IAAEC,IAAEC,KAAGE,OAAIH,KAAGD,GAAE,UAAU,IAAI,UAAU,GAAEI,MAAGM,MAAQC,MAAJ,KAAOP,MAAGO,MAAI+iB,GAAGtjB,IAAEH,GAAEC,CAAC,KAAGF,GAAE,UAAU,IAAI,SAAS;AAAA,MAAG;IAAG;AAAA,EAAC;AAAC,WAASgC,IAAG;AAAC,KAAC7B,EAAE,UAAQA,EAAE,OAAO,UAAQA,EAAE,OAAO,UAAQmC,EAAG;AAAA,EAAA;AAAC,WAASL,EAAEpC,GAAE;AAAC,WAAO,SAASG,GAAE;AAAC,UAAIE,IAAEC,EAAE,OAAO,MAAIN,IAAE,MAAM,IAAEM,EAAE,UAAUH,GAAEG,EAAE,OAAO,UAAU,GAAEF,IAAEE,EAAE,OAAO,OAAaN,MAAR,QAAU,QAAM,SAAO,MAAM;AAAE,MAASK,MAAT,WAAaC,EAAUN,MAAR,QAAU,mBAAiB,gBAAgB,IAAEK,EAAE,aAAW,KAAGA,EAAE,WAAY,IAAC,KAAGA,EAAE,eAAa,IAAGC,EAAE,kBAAgBA,EAAE,gBAAcA,EAAE,cAAc,OAAQ,SAASN,GAAE;AAAC,eAAO6B,EAAE7B,CAAC;AAAA,MAAC,IAAIM,EAAE,cAAc,UAAgBN,MAAR,SAAW,EAAEK,CAAC,GAAEiD,GAAG,IAAEhD,EAAE,kBAAgBoC,EAAG,GAAUrC,MAAT,SAAWC,EAAE,mBAAmBN,CAAC,IAAEK,EAAE,YAAW,EAAG,SAAQ,IAAGC,EAAE,mBAAmB,gBAAgBN,CAAC,GAAEM,EAAE,mBAAmB,WAAS,CAAC,CAACF,KAAYC,MAAT,UAAYD,EAAE,YAAa,MAAGC,EAAE;IAAc;AAAA,EAAC;AAAC,WAASgC,KAAG;AAAC,WAAO/B,EAAE,OAAO,OAAKN,EAAE,cAAc,cAAc,IAAEA;AAAA,EAAC;AAAC,WAASsC,KAAG;AAAC,IAAU,OAAOhC,EAAE,OAAO,UAA1B,YAA2CgkB,GAAG,MAAMhkB,EAAE,OAAO,MAAM,MAAjC,UAAoCA,EAAE,OAAO,aAAa,IAAI,MAAM,+BAA6BA,EAAE,OAAO,MAAM,CAAC,GAAEA,EAAE,OAAK4jB,GAAGA,GAAG,CAAA,GAAGI,GAAG,MAAM,OAAO,GAAY,OAAOhkB,EAAE,OAAO,UAA1B,WAAiCA,EAAE,OAAO,SAAmBA,EAAE,OAAO,WAArB,YAA4BgkB,GAAG,MAAMhkB,EAAE,OAAO,MAAM,IAAE,MAAM,GAAEkjB,GAAG,IAAE,MAAIljB,EAAE,KAAK,SAAS,UAAU,KAAK,GAAG,IAAE,KAAIkjB,GAAG,IAAE,MAAIljB,EAAE,KAAK,SAAS,SAAS,KAAK,GAAG,IAAE,KAAIkjB,GAAG,IAAE,MAAIljB,EAAE,KAAK,OAAO,UAAU,KAAK,GAAG,IAAE,KAAIkjB,GAAG,IAAE,MAAIljB,EAAE,KAAK,OAAO,SAAS,KAAK,GAAG,IAAE,KAAIkjB,GAAG,IAAE,MAAIljB,EAAE,KAAK,KAAK,CAAC,IAAE,MAAIA,EAAE,KAAK,KAAK,CAAC,IAAE,MAAIA,EAAE,KAAK,KAAK,CAAC,EAAE,YAAa,IAAC,MAAIA,EAAE,KAAK,KAAK,CAAC,EAAE,YAAW,IAAG,KAAa4jB,GAAGA,GAAG,CAAA,GAAG/jB,CAAC,GAAE,KAAK,MAAM,KAAK,UAAUH,EAAE,WAAS,CAAA,CAAE,CAAC,CAAC,EAAE,cAAhE,UAAoFskB,GAAG,cAAc,cAA1B,WAAsChkB,EAAE,OAAO,YAAUA,EAAE,KAAK,YAAWA,EAAE,aAAWojB,GAAGpjB,CAAC,GAAEA,EAAE,YAAUqjB,GAAG,EAAC,QAAOrjB,EAAE,QAAO,MAAKA,EAAE,KAAI,CAAC;AAAA,EAAC;AAAC,WAASmC,EAAEzC,GAAE;AAAC,QAAe,OAAOM,EAAE,OAAO,YAA5B;AAAsC,UAAYA,EAAE,sBAAX,QAA6B;AAAC,QAAA2C,EAAE,uBAAuB;AAAE,YAAI9C,IAAEH,KAAGM,EAAE,kBAAiBD,IAAE,MAAM,UAAU,OAAO,KAAKC,EAAE,kBAAkB,UAAU,SAASN,IAAEG,IAAE;AAAC,iBAAOH,KAAEG,GAAE;AAAA,QAAY,GAAG,CAAC,GAAEC,IAAEE,EAAE,kBAAkB,aAAYC,IAAED,EAAE,OAAO,SAAS,MAAM,GAAG,GAAEK,KAAEJ,EAAE,CAAC,GAAEK,IAAEL,EAAE,SAAO,IAAEA,EAAE,CAAC,IAAE,MAAKM,IAAEV,EAAE,sBAAqB,GAAGW,IAAE,OAAO,cAAYD,EAAE,QAAOE,IAAYJ,OAAV,WAAuBA,OAAV,WAAaG,IAAET,KAAGQ,EAAE,MAAIR,GAAEW,KAAE,OAAO,cAAYH,EAAE,OAAKE,IAAE,CAACV,IAAE,IAAEF,EAAE,eAAa;AAAG,YAAG4iB,GAAGziB,EAAE,mBAAkB,YAAW,CAACS,CAAC,GAAEgiB,GAAGziB,EAAE,mBAAkB,eAAcS,CAAC,GAAE,CAACT,EAAE,OAAO,QAAO;AAAC,cAAIW,KAAE,OAAO,cAAYJ,EAAE,MAAKK,KAAE,IAAGO,KAAE;AAAG,UAAWb,MAAX,YAAcK,OAAIb,IAAES,EAAE,SAAO,GAAEK,KAAE,MAAcN,MAAV,YAAcK,MAAGb,IAAES,EAAE,OAAMY,KAAE,KAAIshB,GAAGziB,EAAE,mBAAkB,aAAY,CAACY,MAAG,CAACO,EAAC,GAAEshB,GAAGziB,EAAE,mBAAkB,eAAcY,EAAC,GAAE6hB,GAAGziB,EAAE,mBAAkB,cAAamB,EAAC;AAAE,cAAIC,KAAE,OAAO,SAAS,KAAK,eAAa,OAAO,cAAYb,EAAE,QAAOc,KAAEV,KAAEb,IAAE,OAAO,SAAS,KAAK,aAAY6B,KAAEP,KAAEtB,IAAE,OAAO,SAAS,KAAK;AAAY,cAAG2iB,GAAGziB,EAAE,mBAAkB,aAAYqB,EAAC,GAAE,CAACrB,EAAE,OAAO;AAAO,gBAAGA,EAAE,kBAAkB,MAAM,MAAIU,KAAE,MAAKW;AAAE,kBAAGM,IAAE;AAAC,oBAAIlC,KAAE,WAAU;AAAC,2BAAQC,KAAE,MAAKG,KAAE,GAAEA,KAAE,SAAS,YAAY,QAAOA,MAAI;AAAC,wBAAIG,KAAE,SAAS,YAAYH,EAAC;AAAE,wBAAGG,GAAE,UAAS;AAAC,0BAAG;AAAC,wBAAAA,GAAE;AAAA,sBAAQ,QAAS;AAAC;AAAA,sBAAQ;AAAC,sBAAAN,KAAEM;AAAE;AAAA,oBAAK;AAAA,kBAAC;AAAC,yBAAaN,OAAKK,KAAE,SAAS,cAAc,OAAO,GAAE,SAAS,KAAK,YAAYA,EAAC,GAAEA,GAAE;AAAO,sBAAIA;AAAA,gBAAC;AAAI,oBAAYN,OAAT;AAAW;AAAO,oBAAIE,KAAE,OAAO,SAAS,KAAK,aAAYC,KAAE,KAAK,IAAI,GAAED,KAAE,IAAEG,IAAE,CAAC,GAAEI,KAAET,GAAE,SAAS,QAAOU,KAAE,WAASI,EAAE,OAAK;AAAkB,gBAAAkiB,GAAGziB,EAAE,mBAAkB,aAAY,EAAE,GAAEyiB,GAAGziB,EAAE,mBAAkB,cAAa,EAAE,GAAEP,GAAE,WAAW,+EAA6EU,IAAED,EAAC,GAAEF,EAAE,kBAAkB,MAAM,OAAKJ,KAAE,MAAKI,EAAE,kBAAkB,MAAM,QAAM;AAAA,cAAM;AAAM,gBAAAA,EAAE,kBAAkB,MAAM,OAAK,QAAOA,EAAE,kBAAkB,MAAM,QAAMoB,KAAE;AAAA;AAAU,cAAApB,EAAE,kBAAkB,MAAM,OAAKW,KAAE,MAAKX,EAAE,kBAAkB,MAAM,QAAM;AAAA,QAAM;AAAA,MAAC;AAAA;AAAO,MAAAA,EAAE,OAAO,SAASA,GAAEN,CAAC;AAAA,EAAC;AAAC,WAAS0C,IAAG;AAAC,IAAApC,EAAE,OAAO,cAAYA,EAAE,aAAWG,EAAG,GAAC0C,GAAC,GAAG3C,EAAC;AAAA,EAAG;AAAC,WAASmC,IAAG;AAAC,IAAArC,EAAE,OAAO,SAAa,OAAO,UAAU,UAAU,QAAQ,MAAM,MAA9C,MAA0D,UAAU,qBAAnB,SAAoC,WAAWA,EAAE,OAAM,CAAC,IAAEA,EAAE,MAAK;AAAA,EAAE;AAAC,WAASsC,EAAE5C,GAAE;AAAC,IAAAA,EAAE,eAAc,GAAGA,EAAE,gBAAe;AAAG,QAAIG,IAAE+iB,GAAGE,GAAGpjB,CAAC,GAAG,SAASA,GAAE;AAAC,aAAOA,EAAE,aAAWA,EAAE,UAAU,SAAS,eAAe,KAAG,CAACA,EAAE,UAAU,SAAS,oBAAoB,KAAG,CAACA,EAAE,UAAU,SAAS,YAAY;AAAA,IAAC;AAAI,QAAYG,MAAT,QAAW;AAAC,UAAIE,IAAEF,GAAEC,IAAEE,EAAE,wBAAsB,IAAI,KAAKD,EAAE,QAAQ,QAAS,CAAA,GAAEE,KAAGH,EAAE,SAAQ,IAAGE,EAAE,gBAAcF,EAAE,SAAQ,IAAGE,EAAE,eAAaA,EAAE,OAAO,aAAW,MAAcA,EAAE,OAAO,SAAnB;AAAwB,UAAGA,EAAE,mBAAiBD,GAAaC,EAAE,OAAO,SAApB;AAAyB,QAAAA,EAAE,gBAAc,CAACF,CAAC;AAAA,eAAuBE,EAAE,OAAO,SAAtB,YAA2B;AAAC,YAAIK,KAAEuC,GAAE9C,CAAC;AAAE,QAAAO,KAAEL,EAAE,cAAc,OAAO,SAASK,EAAC,GAAE,CAAC,IAAEL,EAAE,cAAc,KAAKF,CAAC;AAAA,MAAC;AAAK,QAAUE,EAAE,OAAO,SAAnB,YAA8BA,EAAE,cAAc,WAApB,KAA4BA,EAAE,MAAM,IAAG,EAAE,GAAEA,EAAE,wBAAsBF,GAAEE,EAAE,cAAc,KAAKF,CAAC,GAAMwjB,GAAGxjB,GAAEE,EAAE,cAAc,CAAC,GAAE,EAAE,MAA9B,KAAiCA,EAAE,cAAc,KAAM,SAASN,GAAEG,IAAE;AAAC,iBAAOH,EAAE,QAAS,IAACG,GAAE;QAAS,CAAC;AAAI,UAAG,EAAC,GAAGI,GAAE;AAAC,YAAIM,IAAEP,EAAE,gBAAcF,EAAE;AAAc,QAAAE,EAAE,cAAYF,EAAE,YAAa,GAACE,EAAE,eAAaF,EAAE,SAAQ,GAAGS,MAAIoC,EAAE,cAAc,GAAExC,EAAG,IAAEwC,EAAE,eAAe;AAAA,MAAC;AAAC,UAAGE,GAAC,GAAG3C,KAAI8C,MAAI/C,KAAaD,EAAE,OAAO,SAAnB,WAA6BA,EAAE,OAAO,eAAb,IAAiCA,EAAE,qBAAX,UAAsCA,EAAE,gBAAX,UAAwBA,EAAE,oBAAkBA,EAAE,iBAAiB,MAAK,IAAG2B,EAAE5B,CAAC,GAAWC,EAAE,gBAAX,UAAiCA,EAAE,gBAAX,UAAwBA,EAAE,YAAY,SAAQA,EAAE,OAAO,eAAc;AAAC,YAAIQ,IAAaR,EAAE,OAAO,SAApB,YAA0B,CAACA,EAAE,OAAO,YAAWS,IAAYT,EAAE,OAAO,SAAnB,WAA6BA,EAAE,cAAc,WAApB,KAA4B,CAACA,EAAE,OAAO;AAAW,SAACQ,KAAGC,MAAI4B,EAAG;AAAA,MAAA;AAAC,MAAA1B,EAAG;AAAA,IAAA;AAAA,EAAC;AAAC,EAAAX,EAAE,YAAUqjB,GAAG,EAAC,QAAOrjB,EAAE,QAAO,MAAKA,EAAE,KAAI,CAAC,GAAEA,EAAE,YAAU,CAAE,GAACA,EAAE,iBAAe,CAAA,GAAGA,EAAE,gBAAc,CAAA,GAAGA,EAAE,QAAMU,GAAEV,EAAE,oBAAkB,GAAEA,EAAE,oBAAkBmC,GAAEnC,EAAE,cAAYgB,GAAEhB,EAAE,aAAWsB,IAAEtB,EAAE,QAAM,SAASN,GAAEG,GAAE;AAAoS,QAA1RH,MAAT,WAAaA,IAAE,KAAaG,MAAT,WAAaA,IAAE,KAAIG,EAAE,MAAM,QAAM,IAAYA,EAAE,aAAX,WAAsBA,EAAE,SAAS,QAAM,KAAaA,EAAE,gBAAX,WAAyBA,EAAE,YAAY,QAAM,KAAIA,EAAE,gBAAc,CAAE,GAACA,EAAE,wBAAsB,QAAYH,MAAL,OAASG,EAAE,cAAYA,EAAE,aAAa,YAAW,GAAGA,EAAE,eAAaA,EAAE,aAAa,SAAQ,IAAYA,EAAE,OAAO,eAAd,IAAyB;AAAC,UAAID,IAAE4jB,GAAG3jB,EAAE,MAAM;AAAE,MAAAQ,EAAET,EAAE,OAAMA,EAAE,SAAQA,EAAE,OAAO;AAAA,IAAC;AAAC,IAAAC,EAAE,UAASN,KAAGiD,EAAE,UAAU;AAAA,EAAC,GAAE3C,EAAE,QAAM,WAAU;AAAC,IAAAA,EAAE,SAAO,IAAGA,EAAE,aAAoBA,EAAE,sBAAX,UAA8BA,EAAE,kBAAkB,UAAU,OAAO,MAAM,GAAWA,EAAE,WAAX,UAAmBA,EAAE,OAAO,UAAU,OAAO,QAAQ,IAAG2C,EAAE,SAAS;AAAA,EAAC,GAAE3C,EAAE,cAAY4B,IAAE5B,EAAE,iBAAe0iB,IAAG1iB,EAAE,YAAUqB,GAAErB,EAAE,UAAQ,WAAU;AAAC,IAASA,EAAE,WAAX,UAAmB2C,EAAE,WAAW;AAAE,aAAQjD,IAAEM,EAAE,UAAU,QAAON;AAAK,MAAAM,EAAE,UAAUN,CAAC,EAAE,OAAM;AAAG,QAAGM,EAAE,YAAU,CAAE,GAACA,EAAE;AAAY,MAAAA,EAAE,YAAY,cAAYA,EAAE,YAAY,WAAW,YAAYA,EAAE,WAAW,GAAEA,EAAE,cAAY;AAAA,aAAeA,EAAE,qBAAmBA,EAAE,kBAAkB;AAAW,UAAGA,EAAE,OAAO,UAAQA,EAAE,kBAAkB,YAAW;AAAC,YAAIH,IAAEG,EAAE,kBAAkB;AAAW,YAAGH,EAAE,aAAWA,EAAE,YAAYA,EAAE,SAAS,GAAEA,EAAE,YAAW;AAAC,iBAAKA,EAAE;AAAY,YAAAA,EAAE,WAAW,aAAaA,EAAE,YAAWA,CAAC;AAAE,UAAAA,EAAE,WAAW,YAAYA,CAAC;AAAA,QAAC;AAAA,MAAC;AAAM,QAAAG,EAAE,kBAAkB,WAAW,YAAYA,EAAE,iBAAiB;AAAE,IAAAA,EAAE,aAAWA,EAAE,MAAM,OAAK,QAAOA,EAAE,SAAS,cAAYA,EAAE,SAAS,WAAW,YAAYA,EAAE,QAAQ,GAAE,OAAOA,EAAE,WAAUA,EAAE,UAAQA,EAAE,MAAM,OAAKA,EAAE,MAAM,OAAMA,EAAE,MAAM,UAAU,OAAO,iBAAiB,GAAEA,EAAE,MAAM,gBAAgB,UAAU,IAAG,CAAC,kBAAiB,yBAAwB,uBAAsB,uBAAsB,wBAAuB,wBAAuB,YAAW,UAAS,oBAAmB,kBAAiB,kBAAiB,QAAO,iBAAgB,UAAS,oBAAmB,kBAAiB,cAAa,YAAW,iBAAgB,qBAAoB,oBAAmB,gBAAe,gBAAe,2BAA0B,uBAAsB,sBAAqB,0BAAyB,oBAAmB,QAAQ,EAAE,QAAS,SAASN,GAAE;AAAC,UAAG;AAAC,eAAOM,EAAEN,CAAC;AAAA,MAAC,QAAS;AAAA,MAAE;AAAA,IAAA;EAAG,GAAEM,EAAE,YAAUuB,GAAEvB,EAAE,aAAWY,GAAEZ,EAAE,cAAYgD,IAAEhD,EAAE,OAAK,SAASN,GAAEG,GAAE;AAAoC,QAA1BA,MAAT,WAAaA,IAAEG,EAAE,mBAA0BA,EAAE,aAAP,IAAgB;AAAC,UAAGN,GAAE;AAAC,QAAAA,EAAE,eAAc;AAAG,YAAIK,IAAE+iB,GAAGpjB,CAAC;AAAE,QAAAK,KAAGA,EAAE;MAAM;AAAC,aAAgBC,EAAE,gBAAX,WAAyBA,EAAE,YAAY,MAAO,GAACA,EAAE,YAAY,UAAS,KAAK2C,EAAE,QAAQ;AAAA,IAAC;AAAC,QAAG,EAAA3C,EAAE,OAAO,YAAUA,EAAE,OAAO,SAAc;AAAA,UAAIF,IAAEE,EAAE;AAAO,MAAAA,EAAE,SAAO,IAAGF,MAAIE,EAAE,kBAAkB,UAAU,IAAI,MAAM,GAAEA,EAAE,OAAO,UAAU,IAAI,QAAQ,GAAE2C,EAAE,QAAQ,GAAER,EAAEtC,CAAC,IAAQG,EAAE,OAAO,eAAd,MAA+BA,EAAE,OAAO,eAAd,OAAgCA,EAAE,OAAO,eAAd,MAAmCN,MAAT,UAAYM,EAAE,cAAc,SAASN,EAAE,aAAa,KAAG,WAAY,WAAU;AAAC,eAAOM,EAAE,YAAY,OAAM;AAAA,MAAE,GAAG,EAAE;AAAA;AAAA,EAAE,GAAEA,EAAE,SAAOoC,GAAEpC,EAAE,MAAI,SAASN,GAAEG,GAAE;AAAC,QAAUH,MAAP,QAAoB,OAAOA,KAAjB;AAAmB,eAAQK,KAAK,OAAO,OAAOC,EAAE,QAAON,CAAC,GAAEA;AAAE,QAAS6C,EAAExC,CAAC,MAAZ,UAAewC,EAAExC,CAAC,EAAE,QAAS,SAASL,GAAE;AAAC,iBAAOA;QAAG,CAAC;AAAA;AAAQ,MAAAM,EAAE,OAAON,CAAC,IAAEG,GAAW0C,EAAE7C,CAAC,MAAZ,SAAc6C,EAAE7C,CAAC,EAAE,QAAS,SAASA,GAAE;AAAC,eAAOA,EAAC;AAAA,MAAE,CAAG,IAACyiB,GAAG,QAAQziB,CAAC,IAAE,OAAKM,EAAE,OAAON,CAAC,IAAE8iB,GAAG3iB,CAAC;AAAG,IAAAG,EAAE,UAASgD,GAAE,EAAE;AAAA,EAAC,GAAEhD,EAAE,UAAQ,SAASN,GAAEG,GAAEE,GAAE;AAAwD,QAA9CF,MAAT,WAAaA,IAAE,KAAaE,MAAT,WAAaA,IAAEC,EAAE,OAAO,aAAmBN,MAAJ,KAAO,CAACA,KAAGA,aAAa,SAAWA,EAAE,WAAN;AAAa,aAAOM,EAAE,MAAMH,CAAC;AAAE,MAAEH,GAAEK,CAAC,GAAEC,EAAE,wBAAsBA,EAAE,cAAcA,EAAE,cAAc,SAAO,CAAC,GAAEA,EAAE,UAASY,EAAE,QAAOf,CAAC,GAAE,KAAQG,EAAE,cAAc,WAApB,KAA4BA,EAAE,MAAM,EAAE,GAAEgD,GAAEnD,CAAC,GAAEA,KAAG8C,EAAE,UAAU;AAAA,EAAC,GAAE3C,EAAE,SAAO,SAASN,GAAE;AAAC,QAAQM,EAAE,WAAP;AAAc,aAAOA,EAAE;AAAQ,IAAAA,EAAE,KAAKN,CAAC;AAAA,EAAC;AAAE,MAAI6C,IAAE,EAAC,QAAO,CAACP,IAAEjB,CAAC,GAAE,YAAW,CAACF,GAAEZ,GAAEa,CAAC,GAAE,SAAQ,CAACF,CAAC,GAAE,SAAQ,CAACA,CAAC,GAAE,iBAAgB,CAAC8B,EAAC,GAAE,YAAW,CAAC,WAAU;AAAC,IAAK1C,EAAE,OAAO,eAAd,MAA0BU,EAAEV,EAAE,QAAO,SAAQA,EAAE,IAAI,GAAEU,EAAEV,EAAE,QAAO,SAAQA,EAAE,IAAI,MAAIA,EAAE,OAAO,oBAAoB,SAAQA,EAAE,IAAI,GAAEA,EAAE,OAAO,oBAAoB,SAAQA,EAAE,IAAI;AAAA,EAAE,CAAC,EAAC;AAAE,WAAS,EAAEN,GAAEG,GAAE;AAAC,QAAIE,IAAE,CAAA;AAAG,QAAGL,aAAa;AAAM,MAAAK,IAAEL,EAAE,IAAK,SAASA,GAAE;AAAC,eAAOM,EAAE,UAAUN,GAAEG,CAAC;AAAA,MAAC,CAAG;AAAA,aAASH,aAAa,QAAgB,OAAOA,KAAjB;AAAmB,MAAAK,IAAE,CAACC,EAAE,UAAUN,GAAEG,CAAC,CAAC;AAAA,aAAoB,OAAOH,KAAjB;AAAmB,cAAOM,EAAE,OAAO;QAAM,KAAI;AAAA,QAAS,KAAI;AAAO,UAAAD,IAAE,CAACC,EAAE,UAAUN,GAAEG,CAAC,CAAC;AAAE;AAAA,QAAM,KAAI;AAAW,UAAAE,IAAEL,EAAE,MAAMM,EAAE,OAAO,WAAW,EAAE,IAAK,SAASN,GAAE;AAAC,mBAAOM,EAAE,UAAUN,GAAEG,CAAC;AAAA,UAAC,CAAG;AAAC;AAAA,QAAM,KAAI;AAAQ,UAAAE,IAAEL,EAAE,MAAMM,EAAE,KAAK,cAAc,EAAE,IAAK,SAASN,GAAE;AAAC,mBAAOM,EAAE,UAAUN,GAAEG,CAAC;AAAA,UAAC;MAAG;AAAA;AAAM,MAAAG,EAAE,OAAO,aAAa,IAAI,MAAM,4BAA0B,KAAK,UAAUN,CAAC,CAAC,CAAC;AAAE,IAAAM,EAAE,gBAAcA,EAAE,OAAO,sBAAoBD,IAAEA,EAAE,OAAQ,SAASL,GAAE;AAAC,aAAOA,aAAa,QAAM6B,EAAE7B,GAAE,EAAE;AAAA,IAAC,CAAG,GAAWM,EAAE,OAAO,SAAnB,WAAyBA,EAAE,cAAc,KAAM,SAASN,GAAEG,GAAE;AAAC,aAAOH,EAAE,YAAUG,EAAE;IAAS,CAAC;AAAA,EAAE;AAAC,WAAS4C,GAAE/C,GAAE;AAAC,WAAOA,EAAE,QAAQ,IAAK,SAASA,GAAE;AAAC,aAAgB,OAAOA,KAAjB,YAA8B,OAAOA,KAAjB,YAAoBA,aAAa,OAAKM,EAAE,UAAUN,GAAE,QAAO,EAAE,IAAEA,KAAa,OAAOA,KAAjB,YAAoBA,EAAE,QAAMA,EAAE,KAAG,EAAC,MAAKM,EAAE,UAAUN,EAAE,MAAK,MAAM,GAAE,IAAGM,EAAE,UAAUN,EAAE,IAAG,MAAM,EAAC,IAAEA;AAAA,IAAC,CAAG,EAAC,OAAQ,SAASA,GAAE;AAAC,aAAOA;AAAA,IAAC,CAAG;AAAA,EAAA;AAAC,WAASgD,KAAG;AAAC,IAAA1C,EAAE,mBAAiBA,EAAE,OAAO,mBAAiBA,EAAE;AAAA,EAAM;AAAC,WAAS2C,EAAEjD,GAAEG,GAAE;AAAC,QAAYG,EAAE,WAAX,QAAkB;AAAC,UAAID,IAAEC,EAAE,OAAON,CAAC;AAAE,UAAYK,MAAT,UAAYA,EAAE,SAAO;AAAE,iBAAQD,IAAE,GAAEC,EAAED,CAAC,KAAGA,IAAEC,EAAE,QAAOD;AAAI,UAAAC,EAAED,CAAC,EAAEE,EAAE,eAAcA,EAAE,MAAM,OAAMA,GAAEH,CAAC;AAAE,MAAaH,MAAb,eAAiBM,EAAE,MAAM,cAAckO,GAAE,QAAQ,CAAC,GAAElO,EAAE,MAAM,cAAckO,GAAE,OAAO,CAAC;AAAA,IAAE;AAAA,EAAC;AAAC,WAASA,GAAExO,GAAE;AAAC,QAAIG,IAAE,SAAS,YAAY,OAAO;AAAE,WAAOA,EAAE,UAAUH,GAAE,IAAG,EAAE,GAAEG;AAAA,EAAC;AAAC,WAAS+C,GAAElD,GAAE;AAAC,aAAQG,IAAE,GAAEA,IAAEG,EAAE,cAAc,QAAOH,KAAI;AAAC,UAAIE,IAAEC,EAAE,cAAcH,CAAC;AAAE,UAAGE,aAAa,QAAUujB,GAAGvjB,GAAEL,CAAC,MAAV;AAAY,eAAM,KAAGG;AAAA,IAAC;AAAC,WAAM;AAAA,EAAE;AAAC,WAASgD,KAAG;AAAC,IAAA7C,EAAE,OAAO,cAAYA,EAAE,YAAU,CAACA,EAAE,aAAWA,EAAE,aAAa,QAAS,SAASN,GAAEG,GAAE;AAAC,UAAIE,IAAE,IAAI,KAAKC,EAAE,aAAYA,EAAE,cAAa,CAAC;AAAE,MAAAD,EAAE,SAASC,EAAE,eAAaH,CAAC,GAAEG,EAAE,OAAO,aAAW,KAAcA,EAAE,OAAO,sBAApB,WAAsCA,EAAE,cAAcH,CAAC,EAAE,cAAYmjB,GAAGjjB,EAAE,SAAQ,GAAGC,EAAE,OAAO,uBAAsBA,EAAE,IAAI,IAAE,MAAIA,EAAE,wBAAwB,QAAMD,EAAE,SAAU,EAAC,SAAU,GAACL,EAAE,QAAMK,EAAE,YAAW,EAAG,SAAQ;AAAA,IAAE,CAAG,GAACC,EAAE,sBAA6BA,EAAE,OAAO,YAAlB,WAA4BA,EAAE,gBAAcA,EAAE,OAAO,QAAQ,gBAAcA,EAAE,gBAAcA,EAAE,OAAO,QAAQ,SAAQ,IAAGA,EAAE,cAAYA,EAAE,OAAO,QAAQ,YAAW,IAAIA,EAAE,sBAA6BA,EAAE,OAAO,YAAlB,WAA4BA,EAAE,gBAAcA,EAAE,OAAO,QAAQ,YAAW,IAAGA,EAAE,eAAa,IAAEA,EAAE,OAAO,QAAQ,aAAWA,EAAE,cAAYA,EAAE,OAAO,QAAQ,YAAW;AAAA,EAAI;AAAC,WAAS+C,GAAErD,GAAE;AAAC,QAAIG,IAAEH,MAAIM,EAAE,OAAO,WAASA,EAAE,OAAO,YAAUA,EAAE,OAAO;AAAY,WAAOA,EAAE,cAAc,IAAK,SAASN,GAAE;AAAC,aAAOM,EAAE,WAAWN,GAAEG,CAAC;AAAA,IAAC,CAAC,EAAG,OAAQ,SAASH,GAAEG,GAAEE,GAAE;AAAC,aAAgBC,EAAE,OAAO,SAAnB,WAAyBA,EAAE,OAAO,cAAYD,EAAE,QAAQL,CAAC,MAAIG;AAAA,IAAC,CAAC,EAAG,KAAeG,EAAE,OAAO,SAAnB,UAAwBA,EAAE,OAAO,cAAYA,EAAE,KAAK,cAAc;AAAA,EAAC;AAAC,WAASgD,GAAEtD,GAAE;AAAC,IAASA,MAAT,WAAaA,IAAE,KAAaM,EAAE,gBAAX,UAAwBA,EAAE,oBAAkBA,EAAE,YAAY,QAAeA,EAAE,0BAAX,SAAiCA,EAAE,WAAWA,EAAE,uBAAsBA,EAAE,eAAe,IAAE,KAAIA,EAAE,MAAM,QAAM+C,GAAE/C,EAAE,OAAO,UAAU,GAAWA,EAAE,aAAX,WAAsBA,EAAE,SAAS,QAAM+C,GAAE/C,EAAE,OAAO,SAAS,IAAQN,MAAL,MAAQiD,EAAE,eAAe;AAAA,EAAC;AAAC,WAASG,GAAGpD,GAAE;AAAC,QAAIG,IAAEijB,GAAGpjB,CAAC,GAAEK,IAAEC,EAAE,aAAa,SAASH,CAAC,GAAEC,IAAEE,EAAE,aAAa,SAASH,CAAC;AAAE,IAAAE,KAAGD,IAAEkB,EAAEjB,IAAE,KAAG,CAAC,IAAEC,EAAE,aAAa,QAAQH,CAAC,KAAG,IAAEA,EAAE,WAASA,EAAE,UAAU,SAAS,SAAS,IAAEG,EAAE,WAAWA,EAAE,cAAY,CAAC,IAAEH,EAAE,UAAU,SAAS,WAAW,KAAGG,EAAE,WAAWA,EAAE,cAAY,CAAC;AAAA,EAAC;AAAC,SAAO,WAAU;AAAC,IAAAA,EAAE,UAAQA,EAAE,QAAMN,GAAEM,EAAE,SAAO,IAAG,WAAU;AAAC,UAAID,IAAE,CAAC,QAAO,eAAc,cAAa,uBAAsB,cAAa,aAAY,cAAa,cAAa,YAAW,yBAAwB,UAAS,UAAS,iBAAgB,eAAe,GAAEE,IAAE2jB,GAAGA,GAAG,CAAA,GAAG,KAAK,MAAM,KAAK,UAAUlkB,EAAE,WAAS,CAAA,CAAE,CAAC,CAAC,GAAEG,CAAC,GAAEQ,IAAE,CAAE;AAAC,MAAAL,EAAE,OAAO,YAAUC,EAAE,WAAUD,EAAE,OAAO,aAAWC,EAAE,YAAW,OAAO,eAAeD,EAAE,QAAO,UAAS,EAAC,KAAI,WAAU;AAAC,eAAOA,EAAE,OAAO;AAAA,MAAO,GAAE,KAAI,SAASN,IAAE;AAAC,QAAAM,EAAE,OAAO,UAAQyC,GAAE/C,EAAC;AAAA,MAAC,EAAC,CAAC,GAAE,OAAO,eAAeM,EAAE,QAAO,WAAU,EAAC,KAAI,WAAU;AAAC,eAAOA,EAAE,OAAO;AAAA,MAAQ,GAAE,KAAI,SAASN,IAAE;AAAC,QAAAM,EAAE,OAAO,WAASyC,GAAE/C,EAAC;AAAA,MAAC,EAAC,CAAC;AAAE,UAAIY,IAAWL,EAAE,SAAX;AAAgB,UAAG,CAACA,EAAE,eAAaA,EAAE,cAAYK,IAAG;AAAC,YAAIC,KAAEyjB,GAAG,cAAc,cAAY5B,GAAG;AAAW,QAAA/hB,EAAE,aAAWJ,EAAE,cAAYK,IAAE,SAAOL,EAAE,gBAAc,OAAK,MAAIM,KAAE,UAAQN,EAAE,gBAAc,OAAK;AAAA,MAAG;AAAC,UAAGA,EAAE,aAAWA,EAAE,cAAYK,MAAI,CAACL,EAAE,WAAU;AAAC,YAAIO,IAAEwjB,GAAG,cAAc,aAAW5B,GAAG;AAAU,QAAA/hB,EAAE,YAAUJ,EAAE,cAAYK,IAAE,SAAOL,EAAE,gBAAc,SAAO,QAAMO,IAAE,UAAQP,EAAE,gBAAc,OAAK,MAAI;AAAA,MAAI;AAAC,aAAO,eAAeD,EAAE,QAAO,WAAU,EAAC,KAAI,WAAU;AAAC,eAAOA,EAAE,OAAO;AAAA,MAAQ,GAAE,KAAI8B,EAAE,KAAK,EAAC,CAAC,GAAE,OAAO,eAAe9B,EAAE,QAAO,WAAU,EAAC,KAAI,WAAU;AAAC,eAAOA,EAAE,OAAO;AAAA,MAAQ,GAAE,KAAI8B,EAAE,KAAK,EAAC,CAAC;AAAE,UAAIrB,IAAE,SAASf,IAAE;AAAC,eAAO,SAASG,IAAE;AAAC,UAAAG,EAAE,OAAeN,OAAR,QAAU,aAAW,UAAU,IAAEM,EAAE,UAAUH,IAAE,OAAO;AAAA,QAAC;AAAA,MAAC;AAAE,aAAO,eAAeG,EAAE,QAAO,WAAU,EAAC,KAAI,WAAU;AAAC,eAAOA,EAAE,OAAO;AAAA,MAAQ,GAAE,KAAIS,EAAE,KAAK,EAAC,CAAC,GAAE,OAAO,eAAeT,EAAE,QAAO,WAAU,EAAC,KAAI,WAAU;AAAC,eAAOA,EAAE,OAAO;AAAA,MAAQ,GAAE,KAAIS,EAAE,KAAK,EAAC,CAAC,GAAWR,EAAE,SAAX,WAAkBD,EAAE,OAAO,aAAW,IAAGA,EAAE,OAAO,aAAW,KAAI,OAAO,OAAOA,EAAE,QAAOK,GAAEJ,CAAC;AAAE,eAAQS,IAAE,GAAEA,IAAEX,EAAE,QAAOW;AAAI,QAAAV,EAAE,OAAOD,EAAEW,CAAC,CAAC,IAAOV,EAAE,OAAOD,EAAEW,CAAC,CAAC,MAAlB,MAA8BV,EAAE,OAAOD,EAAEW,CAAC,CAAC,MAAtB;AAA2X,WAAnWyhB,GAAG,OAAQ,SAASziB,IAAE;AAAC,eAAgBM,EAAE,OAAON,EAAC,MAAnB;AAAA,MAAoB,GAAI,QAAS,SAASA,IAAE;AAAC,QAAAM,EAAE,OAAON,EAAC,IAAE8iB,GAAGxiB,EAAE,OAAON,EAAC,KAAG,CAAA,CAAE,EAAE,IAAII,CAAC;AAAA,MAAC,CAAC,GAAGE,EAAE,WAAS,CAACA,EAAE,OAAO,iBAAe,CAACA,EAAE,OAAO,UAAmBA,EAAE,OAAO,SAApB,YAA0B,CAACA,EAAE,OAAO,QAAQ,UAAQ,CAACA,EAAE,OAAO,UAAQ,CAACA,EAAE,OAAO,eAAa,iEAAiE,KAAK,UAAU,SAAS,GAAMU,IAAE,GAAEA,IAAEV,EAAE,OAAO,QAAQ,QAAOU,KAAI;AAAC,YAAIC,IAAEX,EAAE,OAAO,QAAQU,CAAC,EAAEV,CAAC,KAAG,CAAE;AAAC,iBAAQY,MAAKD;AAAE,UAAAwhB,GAAG,QAAQvhB,EAAC,IAAE,KAAGZ,EAAE,OAAOY,EAAC,IAAE4hB,GAAG7hB,EAAEC,EAAC,CAAC,EAAE,IAAId,CAAC,EAAE,OAAOE,EAAE,OAAOY,EAAC,CAAC,IAAWX,EAAEW,EAAC,MAAZ,WAAgBZ,EAAE,OAAOY,EAAC,IAAED,EAAEC,EAAC;AAAA,MAAE;AAAC,MAAAX,EAAE,kBAAgBD,EAAE,OAAO,gBAAc+B,GAAG,EAAC,YAAU,MAAI/B,EAAE,OAAO,gBAAe2C,EAAE,eAAe;AAAA,IAAC,EAAC,GAAGX,MAAI,WAAU;AAAC,UAAGhC,EAAE,QAAM+B,MAAI,CAAC/B,EAAE;AAAM,eAAO,KAAKA,EAAE,OAAO,aAAa,IAAI,MAAM,iCAAiC,CAAC;AAAE,MAAAA,EAAE,MAAM,QAAMA,EAAE,MAAM,MAAKA,EAAE,MAAM,OAAK,QAAOA,EAAE,MAAM,UAAU,IAAI,iBAAiB,GAAEA,EAAE,SAAOA,EAAE,OAAMA,EAAE,OAAO,aAAWA,EAAE,WAAS0iB,GAAG1iB,EAAE,MAAM,UAASA,EAAE,OAAO,aAAa,GAAEA,EAAE,SAAOA,EAAE,UAASA,EAAE,SAAS,cAAYA,EAAE,MAAM,aAAYA,EAAE,SAAS,WAASA,EAAE,MAAM,UAASA,EAAE,SAAS,WAASA,EAAE,MAAM,UAASA,EAAE,SAAS,WAASA,EAAE,MAAM,UAASA,EAAE,SAAS,OAAK,QAAOA,EAAE,MAAM,aAAa,QAAO,QAAQ,GAAE,CAACA,EAAE,OAAO,UAAQA,EAAE,MAAM,cAAYA,EAAE,MAAM,WAAW,aAAaA,EAAE,UAASA,EAAE,MAAM,WAAW,IAAGA,EAAE,OAAO,cAAYA,EAAE,OAAO,aAAa,YAAW,UAAU,GAAE0C,GAAG;AAAA,IAAA,KAAI,WAAU;AAAC,MAAA1C,EAAE,gBAAc,IAAGA,EAAE,MAAIA,EAAE,UAAUA,EAAE,OAAO,GAAG,KAAG,oBAAI;AAAK,UAAIN,IAAEM,EAAE,OAAO,gBAAwBA,EAAE,MAAM,aAAlB,WAAyCA,EAAE,MAAM,aAArB,cAA+B,CAACA,EAAE,MAAM,eAAaA,EAAE,MAAM,UAAQA,EAAE,MAAM,cAAYA,EAAE,MAAM,QAAM;AAAM,MAAAN,KAAG,EAAEA,GAAEM,EAAE,OAAO,UAAU,GAAEA,EAAE,eAAaA,EAAE,cAAc,SAAO,IAAEA,EAAE,cAAc,CAAC,IAAEA,EAAE,OAAO,WAASA,EAAE,OAAO,QAAQ,YAAUA,EAAE,IAAI,QAAO,IAAGA,EAAE,OAAO,UAAQA,EAAE,OAAO,WAASA,EAAE,OAAO,QAAQ,QAAS,IAACA,EAAE,IAAI,YAAUA,EAAE,OAAO,UAAQA,EAAE,KAAIA,EAAE,cAAYA,EAAE,aAAa,YAAW,GAAGA,EAAE,eAAaA,EAAE,aAAa,SAAQ,GAAGA,EAAE,cAAc,SAAO,MAAIA,EAAE,wBAAsBA,EAAE,cAAc,CAAC,IAAYA,EAAE,OAAO,YAAlB,WAA4BA,EAAE,OAAO,UAAQA,EAAE,UAAUA,EAAE,OAAO,SAAQ,KAAK,IAAYA,EAAE,OAAO,YAAlB,WAA4BA,EAAE,OAAO,UAAQA,EAAE,UAAUA,EAAE,OAAO,SAAQ,KAAK,IAAGA,EAAE,iBAAe,CAAC,CAACA,EAAE,OAAO,YAAUA,EAAE,OAAO,QAAQ,SAAQ,IAAG,KAAGA,EAAE,OAAO,QAAQ,WAAU,IAAG,KAAGA,EAAE,OAAO,QAAQ,eAAa,IAAGA,EAAE,iBAAe,CAAC,CAACA,EAAE,OAAO,YAAUA,EAAE,OAAO,QAAQ,SAAQ,IAAG,KAAGA,EAAE,OAAO,QAAQ,WAAU,IAAG,KAAGA,EAAE,OAAO,QAAQ,WAAU,IAAG;AAAA,IAAE,EAAC,GAAGA,EAAE,QAAM,EAAC,gBAAe,SAASN,GAAEG,GAAE;AAAC,aAAgBH,MAAT,WAAaA,IAAEM,EAAE,eAAuBH,MAAT,WAAaA,IAAEG,EAAE,cAAiBN,MAAJ,MAAQG,IAAE,KAAG,KAAGA,IAAE,OAAK,KAAGA,IAAE,OAAK,KAAG,KAAGG,EAAE,KAAK,YAAYN,CAAC;AAAA,IAAC,EAAC,GAAEM,EAAE,YAAU,WAAU;AAAC,UAAIN,IAAE,OAAO,SAAS,uBAAwB;AAAC,UAAGM,EAAE,oBAAkB0iB,GAAG,OAAM,oBAAoB,GAAE1iB,EAAE,kBAAkB,WAAS,IAAG,CAACA,EAAE,OAAO,YAAW;AAAC,YAAGN,EAAE,aAAaM,EAAE,WAAS0iB,GAAG,OAAM,kBAAkB,GAAE1iB,EAAE,eAAa,CAAE,GAACA,EAAE,gBAAc,CAAE,GAACA,EAAE,eAAa0iB,GAAG,QAAO,sBAAsB,GAAE1iB,EAAE,aAAa,YAAUA,EAAE,OAAO,WAAUA,EAAE,eAAa0iB,GAAG,QAAO,sBAAsB,GAAE1iB,EAAE,aAAa,YAAUA,EAAE,OAAO,WAAUa,EAAG,GAAC,OAAO,eAAeb,GAAE,uBAAsB,EAAC,KAAI,WAAU;AAAC,iBAAOA,EAAE;AAAA,QAAoB,GAAE,KAAI,SAASN,GAAE;AAAC,UAAAM,EAAE,yBAAuBN,MAAI+iB,GAAGziB,EAAE,cAAa,sBAAqBN,CAAC,GAAEM,EAAE,uBAAqBN;AAAA,QAAE,EAAC,CAAC,GAAE,OAAO,eAAeM,GAAE,uBAAsB,EAAC,KAAI,WAAU;AAAC,iBAAOA,EAAE;AAAA,QAAoB,GAAE,KAAI,SAASN,GAAE;AAAC,UAAAM,EAAE,yBAAuBN,MAAI+iB,GAAGziB,EAAE,cAAa,sBAAqBN,CAAC,GAAEM,EAAE,uBAAqBN;AAAA,QAAE,EAAC,CAAC,GAAEM,EAAE,qBAAmBA,EAAE,aAAa,CAAC,GAAE6C,GAAG,GAAC7C,EAAE,SAAU,GAACA,EAAE,iBAAe0iB,GAAG,OAAM,0BAA0B,GAAE1iB,EAAE,OAAO,aAAY;AAAC,cAAIH,IAAE,WAAU;AAAC,YAAAG,EAAE,kBAAkB,UAAU,IAAI,UAAU;AAAE,gBAAIN,IAAEgjB,GAAG,OAAM,uBAAuB;AAAE,YAAAhjB,EAAE,YAAYgjB,GAAG,QAAO,qBAAoB1iB,EAAE,KAAK,gBAAgB,CAAC;AAAE,gBAAIH,IAAE6iB,GAAG,OAAM,iBAAiB;AAAE,mBAAOhjB,EAAE,YAAYG,CAAC,GAAE,EAAC,aAAYH,GAAE,aAAYG,EAAC;AAAA,UAAC,EAAC,GAAGE,IAAEF,EAAE,aAAYC,IAAED,EAAE;AAAY,UAAAG,EAAE,eAAe,YAAYD,CAAC,GAAEC,EAAE,cAAYF,GAAEE,EAAE,cAAYD;AAAA,QAAC;AAAC,QAAAC,EAAE,aAAW0iB,GAAG,OAAM,sBAAsB,GAAE1iB,EAAE,WAAW,YAAYc,EAAG,CAAA,GAAEd,EAAE,kBAAgBA,EAAE,gBAAc0iB,GAAG,OAAM,gBAAgB,GAAE1iB,EAAE,cAAc,WAAS,KAAIE,KAAIF,EAAE,WAAW,YAAYA,EAAE,aAAa,GAAEA,EAAE,eAAe,YAAYA,EAAE,UAAU,GAAEN,EAAE,YAAYM,EAAE,cAAc;AAAA,MAAC;AAAC,MAAAA,EAAE,OAAO,cAAYN,EAAE,YAAY,WAAU;AAAC,QAAAM,EAAE,kBAAkB,UAAU,IAAI,SAAS,GAAEA,EAAE,OAAO,cAAYA,EAAE,kBAAkB,UAAU,IAAI,YAAY;AAAE,YAAIN,IAAEikB,GAAG3jB,EAAE,MAAM;AAAE,QAAAA,EAAE,gBAAc0iB,GAAG,OAAM,gBAAgB,GAAE1iB,EAAE,cAAc,WAAS;AAAG,YAAIH,IAAE6iB,GAAG,QAAO,4BAA2B,GAAG,GAAE3iB,IAAE8iB,GAAG,kBAAiB,EAAC,cAAa7iB,EAAE,KAAK,cAAa,CAAC;AAAE,QAAAA,EAAE,cAAYD,EAAE,qBAAqB,OAAO,EAAE,CAAC;AAAE,YAAID,KAAE+iB,GAAG,oBAAmB,EAAC,cAAa7iB,EAAE,KAAK,gBAAe,CAAC;AAAw9B,YAAt9BA,EAAE,gBAAcF,GAAE,qBAAqB,OAAO,EAAE,CAAC,GAAEE,EAAE,YAAY,WAASA,EAAE,cAAc,WAAS,IAAGA,EAAE,YAAY,QAAMsiB,GAAGtiB,EAAE,wBAAsBA,EAAE,sBAAsB,SAAQ,IAAGA,EAAE,OAAO,YAAUN,EAAE,QAAM,SAASA,IAAE;AAAC,kBAAOA,KAAE;YAAI,KAAK;AAAA,YAAE,KAAK;AAAG,qBAAO;AAAA,YAAG;AAAQ,qBAAOA,KAAE;AAAA,UAAE;AAAA,QAAC,EAAEA,EAAE,KAAK,CAAC,GAAEM,EAAE,cAAc,QAAMsiB,GAAGtiB,EAAE,wBAAsBA,EAAE,sBAAsB,WAAU,IAAGN,EAAE,OAAO,GAAEM,EAAE,YAAY,aAAa,QAAOA,EAAE,OAAO,cAAc,SAAQ,CAAE,GAAEA,EAAE,cAAc,aAAa,QAAOA,EAAE,OAAO,gBAAgB,SAAU,CAAA,GAAEA,EAAE,YAAY,aAAa,OAAMA,EAAE,OAAO,YAAU,MAAI,GAAG,GAAEA,EAAE,YAAY,aAAa,OAAMA,EAAE,OAAO,YAAU,OAAK,IAAI,GAAEA,EAAE,YAAY,aAAa,aAAY,GAAG,GAAEA,EAAE,cAAc,aAAa,OAAM,GAAG,GAAEA,EAAE,cAAc,aAAa,OAAM,IAAI,GAAEA,EAAE,cAAc,aAAa,aAAY,GAAG,GAAEA,EAAE,cAAc,YAAYD,CAAC,GAAEC,EAAE,cAAc,YAAYH,CAAC,GAAEG,EAAE,cAAc,YAAYF,EAAC,GAAEE,EAAE,OAAO,aAAWA,EAAE,cAAc,UAAU,IAAI,UAAU,GAAKA,EAAE,OAAO,eAAc;AAAC,UAAAA,EAAE,cAAc,UAAU,IAAI,YAAY;AAAE,cAAIC,KAAE4iB,GAAG,kBAAkB;AAAE,UAAA7iB,EAAE,gBAAcC,GAAE,qBAAqB,OAAO,EAAE,CAAC,GAAED,EAAE,cAAc,QAAMsiB,GAAGtiB,EAAE,wBAAsBA,EAAE,sBAAsB,eAAaN,EAAE,OAAO,GAAEM,EAAE,cAAc,aAAa,QAAOA,EAAE,cAAc,aAAa,MAAM,CAAC,GAAEA,EAAE,cAAc,aAAa,OAAM,GAAG,GAAEA,EAAE,cAAc,aAAa,OAAM,IAAI,GAAEA,EAAE,cAAc,aAAa,aAAY,GAAG,GAAEA,EAAE,cAAc,YAAY0iB,GAAG,QAAO,4BAA2B,GAAG,CAAC,GAAE1iB,EAAE,cAAc,YAAYC,EAAC;AAAA,QAAC;AAAC,eAAAD,EAAE,OAAO,cAAYA,EAAE,OAAK0iB,GAAG,QAAO,mBAAkB1iB,EAAE,KAAK,KAAKmd,IAAInd,EAAE,wBAAsBA,EAAE,YAAY,QAAMA,EAAE,OAAO,eAAa,EAAE,CAAC,CAAC,GAAEA,EAAE,KAAK,QAAMA,EAAE,KAAK,aAAYA,EAAE,KAAK,WAAS,IAAGA,EAAE,cAAc,YAAYA,EAAE,IAAI,IAAUA,EAAE;AAAA,MAAa,EAAC,CAAE,GAAEyiB,GAAGziB,EAAE,mBAAkB,aAAsBA,EAAE,OAAO,SAAnB,OAAuB,GAAEyiB,GAAGziB,EAAE,mBAAkB,WAAeA,EAAE,OAAO,YAAd,EAAqB,GAAEyiB,GAAGziB,EAAE,mBAAkB,cAAaA,EAAE,OAAO,aAAW,CAAC,GAAEA,EAAE,kBAAkB,YAAYN,CAAC;AAAE,UAAIO,KAAWD,EAAE,OAAO,aAAlB,UAAqCA,EAAE,OAAO,SAAS,aAA3B;AAAoC,WAAIA,EAAE,OAAO,UAAQA,EAAE,OAAO,YAAUA,EAAE,kBAAkB,UAAU,IAAIA,EAAE,OAAO,SAAO,WAAS,QAAQ,GAAEA,EAAE,OAAO,WAAS,CAACC,MAAGD,EAAE,QAAQ,aAAWA,EAAE,QAAQ,WAAW,aAAaA,EAAE,mBAAkBA,EAAE,OAAO,WAAW,IAAWA,EAAE,OAAO,aAAlB,UAA4BA,EAAE,OAAO,SAAS,YAAYA,EAAE,iBAAiB,IAAGA,EAAE,OAAO,SAAQ;AAAC,YAAIK,IAAEqiB,GAAG,OAAM,mBAAmB;AAAE,QAAA1iB,EAAE,QAAQ,cAAYA,EAAE,QAAQ,WAAW,aAAaK,GAAEL,EAAE,OAAO,GAAEK,EAAE,YAAYL,EAAE,OAAO,GAAEA,EAAE,YAAUK,EAAE,YAAYL,EAAE,QAAQ,GAAEK,EAAE,YAAYL,EAAE,iBAAiB;AAAA,MAAC;AAAC,MAAAA,EAAE,OAAO,UAAQA,EAAE,OAAO,WAAkBA,EAAE,OAAO,aAAlB,SAA2BA,EAAE,OAAO,WAAS,OAAO,SAAS,MAAM,YAAYA,EAAE,iBAAiB;AAAA,IAAC,EAAG,GAAC,WAAU;AAA2L,UAA1LA,EAAE,OAAO,QAAM,CAAC,QAAO,SAAQ,UAAS,OAAO,EAAE,QAAS,SAASN,GAAE;AAAC,cAAM,UAAU,QAAQ,KAAKM,EAAE,QAAQ,iBAAiB,WAASN,IAAE,GAAG,GAAG,SAASG,GAAE;AAAC,iBAAOa,EAAEb,GAAE,SAAQG,EAAEN,CAAC,CAAC;AAAA,QAAC,CAAC;AAAA,MAAE,CAAG,GAAIM,EAAE;AAAS,eAAO,KAAK,WAAU;AAAC,cAAIN,IAAEM,EAAE,OAAO,aAAWA,EAAE,OAAO,aAAW,SAAO,mBAAiB;AAAO,UAAAA,EAAE,cAAY0iB,GAAG,SAAQ1iB,EAAE,MAAM,YAAU,mBAAmB,GAAEA,EAAE,YAAY,WAAS,GAAEA,EAAE,YAAY,OAAKN,GAAEM,EAAE,YAAY,WAASA,EAAE,MAAM,UAASA,EAAE,YAAY,WAASA,EAAE,MAAM,UAASA,EAAE,YAAY,cAAYA,EAAE,MAAM,aAAYA,EAAE,kBAAmCN,MAAnB,mBAAqB,kBAAyBA,MAAT,SAAW,UAAQ,SAAQM,EAAE,cAAc,SAAO,MAAIA,EAAE,YAAY,eAAaA,EAAE,YAAY,QAAMA,EAAE,WAAWA,EAAE,cAAc,CAAC,GAAEA,EAAE,eAAe,IAAGA,EAAE,OAAO,YAAUA,EAAE,YAAY,MAAIA,EAAE,WAAWA,EAAE,OAAO,SAAQ,OAAO,IAAGA,EAAE,OAAO,YAAUA,EAAE,YAAY,MAAIA,EAAE,WAAWA,EAAE,OAAO,SAAQ,OAAO,IAAGA,EAAE,MAAM,aAAa,MAAM,MAAIA,EAAE,YAAY,OAAK,OAAOA,EAAE,MAAM,aAAa,MAAM,CAAC,IAAGA,EAAE,MAAM,OAAK,UAAkBA,EAAE,aAAX,WAAsBA,EAAE,SAAS,OAAK;AAAU,cAAG;AAAC,YAAAA,EAAE,MAAM,cAAYA,EAAE,MAAM,WAAW,aAAaA,EAAE,aAAYA,EAAE,MAAM,WAAW;AAAA,UAAC,QAAS;AAAA;AAAE,UAAAU,EAAEV,EAAE,aAAY,UAAU,SAASN,GAAE;AAAC,YAAAM,EAAE,QAAQ8iB,GAAGpjB,CAAC,EAAE,OAAM,IAAGM,EAAE,eAAe,GAAE2C,EAAE,UAAU,GAAEA,EAAE,SAAS;AAAA,UAAC,CAAG;AAAA,QAAA;AAAI,UAAIjD,IAAE6iB,GAAG1gB,GAAE,EAAE;AAAmpB,UAAjpB7B,EAAE,mBAAiBuiB,GAAG5hB,GAAEmjB,EAAE,GAAE9jB,EAAE,iBAAe,CAAC,oBAAoB,KAAK,UAAU,SAAS,KAAGU,EAAEV,EAAE,eAAc,aAAa,SAASN,GAAE;AAAC,QAAUM,EAAE,OAAO,SAAnB,WAAyB4B,GAAEkhB,GAAGpjB,CAAC,CAAC;AAAA,MAAC,IAAIgB,EAAEV,EAAE,QAAO,WAAU0B,EAAC,GAAW1B,EAAE,sBAAX,UAA8BU,EAAEV,EAAE,mBAAkB,WAAU0B,EAAC,GAAE1B,EAAE,OAAO,UAAQA,EAAE,OAAO,UAAQU,EAAE,QAAO,UAAShB,CAAC,GAAW,OAAO,iBAAhB,SAA6BgB,EAAE,OAAO,UAAS,cAAaQ,EAAC,IAAER,EAAE,OAAO,UAAS,aAAYQ,EAAC,GAAER,EAAE,OAAO,UAAS,SAAQQ,IAAE,EAAC,SAAQ,GAAE,CAAC,GAAOlB,EAAE,OAAO,eAAd,OAA2BU,EAAEV,EAAE,QAAO,SAAQA,EAAE,IAAI,GAAEU,EAAEV,EAAE,QAAO,SAAQA,EAAE,IAAI,IAAYA,EAAE,kBAAX,WAA2BU,EAAEV,EAAE,UAAS,SAAQ8C,EAAE,GAAEpC,EAAEV,EAAE,UAAS,CAAC,SAAQ,WAAW,GAAES,CAAC,GAAEC,EAAEV,EAAE,eAAc,SAAQsC,CAAC,IAAetC,EAAE,kBAAX,UAAmCA,EAAE,kBAAX,UAAmCA,EAAE,gBAAX,QAAuB;AAAC,YAAIH,IAAE,SAASH,GAAE;AAAC,iBAAOojB,GAAGpjB,CAAC,EAAE,OAAQ;AAAA,QAAA;AAAE,QAAAgB,EAAEV,EAAE,eAAc,CAAC,WAAW,GAAE,CAAC,GAAEU,EAAEV,EAAE,eAAc,QAAO,GAAE,EAAC,SAAQ,GAAE,CAAC,GAAEU,EAAEV,EAAE,eAAc,SAAQmB,CAAC,GAAET,EAAE,CAACV,EAAE,aAAYA,EAAE,aAAa,GAAE,CAAC,SAAQ,OAAO,GAAEH,CAAC,GAAWG,EAAE,kBAAX,UAA0BU,EAAEV,EAAE,eAAc,SAAS,WAAU;AAAC,iBAAOA,EAAE,iBAAeA,EAAE,cAAc,OAAM;AAAA,QAAE,CAAG,GAAUA,EAAE,SAAX,UAAiBU,EAAEV,EAAE,MAAK,SAAS,SAASN,GAAE;AAAC,YAAEA,CAAC;AAAA,QAAC,CAAC;AAAA,MAAE;AAAC,MAAAM,EAAE,OAAO,cAAYU,EAAEV,EAAE,QAAO,QAAOyB,EAAC;AAAA,IAAC,EAAC,IAAIzB,EAAE,cAAc,UAAQA,EAAE,OAAO,gBAAcA,EAAE,OAAO,cAAY,EAAEA,EAAE,OAAO,aAAWA,EAAE,wBAAsB,MAAM,GAAEgD,GAAE,EAAE,IAAG/C;AAAI,QAAIF,IAAE,iCAAiC,KAAK,UAAU,SAAS;AAAE,KAACC,EAAE,YAAUD,KAAGoC,KAAIQ,EAAE,SAAS;AAAA,EAAC,EAAC,GAAG3C;AAAC;AAAC,SAASikB,GAAGvkB,GAAEG,GAAE;AAAC,WAAQG,IAAE,MAAM,UAAU,MAAM,KAAKN,CAAC,EAAE,OAAQ,SAASA,GAAE;AAAC,WAAOA,aAAa;AAAA,EAAW,CAAG,GAACK,IAAE,CAAA,GAAGD,IAAE,GAAEA,IAAEE,EAAE,QAAOF,KAAI;AAAC,QAAIG,IAAED,EAAEF,CAAC;AAAE,QAAG;AAAC,UAAUG,EAAE,aAAa,cAAc,MAApC;AAAsC;AAAS,MAASA,EAAE,eAAX,WAAwBA,EAAE,WAAW,WAAUA,EAAE,aAAW,SAAQA,EAAE,aAAW8jB,GAAG9jB,GAAEJ,KAAG,CAAE,CAAA,GAAEE,EAAE,KAAKE,EAAE,UAAU;AAAA,IAAC,SAAOP,GAAE;AAAC,cAAQ,MAAMA,CAAC;AAAA,IAAC;AAAA,EAAC;AAAC,SAAWK,EAAE,WAAN,IAAaA,EAAE,CAAC,IAAEA;AAAC;AAAc,OAAO,cAApB,OAA8C,OAAO,iBAApB,OAAiD,OAAO,WAApB,QAA+B,eAAe,UAAU,YAAU,SAAS,UAAU,YAAU,SAASL,GAAE;AAAC,SAAOukB,GAAG,MAAKvkB,CAAC;AAAC,GAAE,YAAY,UAAU,YAAU,SAASA,GAAE;AAAC,SAAOukB,GAAG,CAAC,IAAI,GAAEvkB,CAAC;AAAC;AAAG,IAAIskB,KAAG,SAAStkB,GAAEG,GAAE;AAAC,SAAgB,OAAOH,KAAjB,WAAmBukB,GAAG,OAAO,SAAS,iBAAiBvkB,CAAC,GAAEG,CAAC,IAAEH,aAAa,OAAKukB,GAAG,CAACvkB,CAAC,GAAEG,CAAC,IAAEokB,GAAGvkB,GAAEG,CAAC;AAAC;AAAEmkB,GAAG,gBAAc,CAAA,GAAGA,GAAG,QAAM,EAAC,IAAGJ,GAAG,CAAA,GAAGvB,EAAE,GAAE,SAAQuB,GAAG,IAAGvB,EAAE,EAAC,GAAE2B,GAAG,WAAS,SAAStkB,GAAE;AAAC,EAAAskB,GAAG,MAAM,UAAQJ,GAAGA,GAAG,CAAA,GAAGI,GAAG,MAAM,OAAO,GAAEtkB,CAAC;AAAC,GAAEskB,GAAG,cAAY,SAAStkB,GAAE;AAAC,EAAAskB,GAAG,gBAAcJ,GAAGA,GAAG,CAAE,GAACI,GAAG,aAAa,GAAEtkB,CAAC;AAAC,GAAEskB,GAAG,YAAUX,GAAG,CAAE,CAAA,GAAEW,GAAG,aAAWZ,GAAG,CAAA,CAAE,GAAEY,GAAG,eAAaV,IAAgB,OAAO,SAApB,OAAqC,OAAO,OAAhB,WAAqB,OAAO,GAAG,YAAU,SAAS5jB,GAAE;AAAC,SAAOukB,GAAG,MAAKvkB,CAAC;AAAC,IAAG,KAAK,UAAU,UAAQ,SAASA,GAAE;AAAC,SAAO,IAAI,KAAK,KAAK,eAAc,KAAK,YAAW,KAAK,QAAO,KAAc,OAAOA,KAAjB,WAAmB,SAASA,GAAE,EAAE,IAAEA,EAAE;AAAC,GAAe,OAAO,SAApB,QAA6B,OAAO,YAAUskB;AAAI,MAAME,KAAG,CAAC,YAAW,WAAW,GAAEC,KAAG,CAAC,YAAW,UAAS,WAAU,iBAAgB,gBAAe,WAAU,iBAAgB,aAAa,GAAEC,KAAG,OAAG;AAAC,QAAM,IAAE5jB,GAAG,OAAK,EAAC,GAAG,EAAC,IAAI,CAAC,CAAC,CAAC,GAAE,EAAC,cAAaT,GAAE,SAAQ,IAAE,CAAA,GAAG,OAAMM,GAAE,UAASC,GAAE,QAAOC,EAAC,IAAE,GAAEI,IAAEH,GAAG,OAAK,CAACd,GAAEG,OAAKskB,GAAG,QAAS,CAAAnkB,MAAG;AAAC,UAAMD,IAAEF,EAAEG,CAAC,GAAEF,IAAEJ,EAAEM,CAAC;AAAE,QAAGD,GAAE;AAAC,MAAAD,KAAG,CAAC,MAAM,QAAQA,CAAC,IAAEJ,EAAEM,CAAC,IAAE,CAACN,EAAEM,CAAC,CAAC,IAAEN,EAAEM,CAAC,MAAIN,EAAEM,CAAC,IAAE,CAAE;AAAE,YAAMH,IAAE,MAAM,QAAQE,CAAC,IAAEA,IAAE,CAACA,CAAC;AAAE,MAAIL,EAAEM,CAAC,EAAE,WAAT,IAAgBN,EAAEM,CAAC,IAAEH,IAAEH,EAAEM,CAAC,EAAE,KAAK,GAAGH,CAAC;AAAA,IAAC;AAAA,EAAC,CAAC,GAAGskB,GAAG,QAAS,CAAAzkB,MAAG;AAAC,WAAOG,EAAEH,CAAC;AAAA,EAAC,IAAIwkB,GAAG,QAAS,CAAAxkB,MAAG;AAAC,WAAOG,EAAEH,CAAC;AAAA,EAAC,CAAG,GAACA,IAAI,GAAE,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,GAAEkB,IAAEF,GAAE,IAAI,GAAEU,IAAEV,GAAE,MAAM;AAAES,EAAAA,GAAE,EAAE,KAAK,OAAK,EAAC,IAAI,YAAW;AAAC,WAAOC,EAAE;AAAA,EAAO,EAAC,IAAI,CAAE,CAAA,GAAEX,GAAG,MAAI;AAAC,QAAIf;AAAE,QAAGiB,EAAE,UAAQA,EAAE,YAAU,MAAI;AAAC,UAAIjB;AAAE,OAAOA,IAAEkB,EAAE,YAAX,QAAqBlB,EAAE,QAAMkB,EAAE,QAAQ;IAAM,IAAGQ,EAAE,aAAiBpB,IAAEgkB,OAAT,OAAa,SAAOhkB,EAAE,YAAUgkB,IAAIpjB,EAAE,SAAQD,CAAC,GAAES,EAAE,WAAkBf,MAAT,UAAYe,EAAE,QAAQ,QAAQf,GAAE,EAAE,GAAE,EAAE,YAAU,EAAE,SAASe,EAAE,OAAO,GAAEA,EAAE,SAAQ;AAAC,YAAMvB,IAAE,OAAO,oBAAoBc,CAAC;AAAE,eAAQX,IAAEH,EAAE,SAAO,GAAEG,KAAG,GAAEA,KAAI;AAAC,cAAMD,IAAEF,EAAEG,CAAC;AAAE,YAAIF,IAAEa,EAAEZ,CAAC;AAAE,SAAOD,KAAN,OAAQ,SAAOA,EAAE,SAAU,SAAYJ,IAAE0B,EAAE,QAAQ,OAAOrB,CAAC,MAA3B,OAA8B,SAAOL,EAAE,SAAQ,OAAMykB,GAAG,SAASpkB,CAAC,KAAG,CAAC,MAAM,QAAQD,CAAC,MAAIA,IAAE,CAACA,CAAC,IAAGsB,EAAE,QAAQ,IAAIrB,GAAED,CAAC;AAAA,MAAE;AAAC,MAASO,MAAT,UAAYA,MAAIe,EAAE,QAAQ,MAAM,SAAOA,EAAE,QAAQ,QAAQf,GAAE,EAAE;AAAA,IAAC;AAAC,QAAIL;AAAE,WAAM,MAAI;AAAC,QAAE,aAAW,EAAE,UAAUoB,EAAE,OAAO,GAAEA,EAAE,WAASA,EAAE,QAAQ,WAAUA,EAAE,UAAQ;AAAA,IAAM;AAAA,EAAC,GAAG,CAACT,GAAE,GAAE,GAAEN,GAAE,CAAC,CAAC;AAAE,QAAMgB,IAAEpB,GAAG,CAAAP,MAAG;AAAC,IAAAkB,EAAE,UAAQlB;AAAA,EAAC,GAAG,CAAE,CAAA;AAAE,MAAGa;AAAE,WAAOA,EAAE,EAAC,GAAG,GAAE,cAAaR,GAAE,OAAMM,EAAC,GAAEgB,CAAC;AAAE,QAAMM,IAAE1B,GAAG,CAAAP,MAAG;AAAC,QAAIM,GAAED;AAAE,SAAG,EAAE,aAAW,MAAM,QAAc,KAAN,OAAQ,SAAO,EAAE,QAAQ,KAASC,IAAQ,KAAN,OAAQ,SAAO,EAAE,aAA1B,QAAqCA,EAAE,QAAS,MAAI,CAAC,IAAI,KAAKN,EAAE,OAAO,KAAK,CAAC,IAAUW,KAAN,OAAQ,SAAOA,EAAE,SAAU,MAAG,EAAE,IAAc,OAAO,EAAE,YAArB,gBAAuCN,IAAQ,KAAN,OAAQ,SAAO,EAAE,aAA1B,QAAqCA,EAAE,KAAK,GAAE,CAAC,IAAI,KAAKL,EAAE,OAAO,KAAK,CAAC,IAASW,KAAN,OAAQ,SAAOA,EAAE,eAAa,IAAGe,EAAE,OAAO;AAAA,EAAG,GAAG,CAAC,GAAEf,CAAC,CAAC;AAAE,SAAO,EAAE,OAAKX,EAAE,OAAM,EAAC,WAAU,aAAY,KAAI2B,GAAE,UAASf,EAAC,CAAC,IAAEZ,EAAE,SAAQ,EAAC,UAASiC,GAAE,GAAG,GAAE,OAAYtB,KAAN,OAAQ,SAAOA,EAAE,SAAQ,GAAG,cAAaN,GAAE,KAAIsB,EAAC,CAAC;AAAC,GAAEgjB,KAAG,kBAAiBC,KAAG,CAAC,UAAS,UAAS,WAAU,aAAY,YAAW,UAAS,UAAU,GAAEC,KAAG,CAAC7kB,GAAEG,MAAIH,KAAKG;AAAE,SAAS2kB,GAAG,EAAC,MAAK9kB,GAAE,WAAUG,GAAE,KAAIG,EAAC,GAAE;AAAC,QAAMD,IAAE,oBAAI,KAAK,cAAcL,CAAC,EAAE,GAAEI,IAAEC,EAAE,cAAaE,IAAEF,EAAE,SAAQ;AAAG,MAAI,IAAE;AAAI,SAAiBF,MAAX,YAAcG,MAAI,IAAE,SAASN,GAAE;AAAC,UAAMG,IAAE,EAAC,QAAO,GAAE,QAAO,GAAE,SAAQ,GAAE,WAAU,GAAE,UAAS,GAAE,QAAO,GAAE,UAAS,EAAC;AAAE,QAAG,CAAC0kB,GAAG7kB,GAAEG,CAAC;AAAE,YAAM,IAAI,MAAM,gBAAgBH,CAAC,EAAE;AAAE,WAAOG,EAAEH,CAAC;AAAA,EAAC,EAAEM,CAAC,EAAE,SAAQ,IAAI,GAAGF,CAAC,IAAIG,CAAC,QAAQ,CAAC;AAAE;AAAC,SAASwkB,GAAG/kB,GAAE;AAAC,QAAMG,IAAES,GAAEqB,EAAC,GAAE,EAAC,OAAM3B,GAAE,QAAOD,EAAC,IAAEkW,GAAG,EAAC,SAAQyO,GAAGhlB,CAAC,EAAC,CAAC,GAAE,EAAC,OAAMI,GAAE,QAAOO,EAAC,IAAE4V,GAAG,EAAC,SAAQyO,GAAGhlB,GAAE,MAAM,EAAC,CAAC,GAAE,EAAC,OAAMa,GAAE,QAAOC,EAAC,IAAEyV,GAAG,EAAC,SAAQyO,GAAGhlB,GAAE,WAAW,EAAC,CAAC,GAAE,EAAC,OAAMgB,GAAE,QAAOC,EAAC,IAAEsV,GAAG,EAAC,SAAQyO,GAAGhlB,GAAE,KAAK,EAAC,CAAC,GAAEkB,IAAEX,GAAG,YAAS;AAAC,QAAG;AAAC,YAAMJ,EAAE,QAAQ,OAAOwkB,IAAG,EAAC,SAAQ,UAAU3kB,CAAC,GAAE,CAAC;AAAA,IAAC,SAAOA,GAAE;AAAC,cAAQ,MAAMA,CAAC;AAAA,IAAC;AAAA,EAAC,GAAG,CAACG,GAAEH,CAAC,CAAC,GAAEyB,IAAElB,GAAG,YAAS;AAAC,QAAG;AAAC,YAAMD,IAAEwkB,GAAG,EAAC,MAAK1kB,KAAG,YAAW,WAAUS,KAAG,SAAQ,KAAeA,MAAX,WAAaG,IAAE,IAAG,CAAC;AAAE,YAAMb,EAAE,QAAQ,OAAOwkB,IAAG,EAAC,SAAQ,YAAY3kB,CAAC,IAAG,MAAK,EAAC,UAASM,GAAE,6BAA4B,GAAE,EAAC,CAAC;AAAA,IAAC,SAAOH,GAAE;AAAC,cAAQ,MAAM,iCAAiCH,CAAC,KAAIG,CAAC;AAAA,IAAC;AAAA,EAAC,GAAG,CAACA,GAAEH,GAAEI,GAAES,GAAEG,CAAC,CAAC;AAAED,SAAAA,GAAG,MAAI;AAAC,IAAAZ,KAAGG,KAAGmB,EAAG;AAAA,EAAA,GAAG,CAACtB,GAAEG,GAAEmB,CAAC,CAAC,GAAQ,EAAC,SAAQnB,KAAG,IAAG,MAAKF,KAAG,YAAW,WAAUS,KAAG,SAAQ,KAAIG,KAAG,UAAS,YAAW,OAAMhB,MAAG;AAAC,IAAAA,KAAG,MAAMkB,EAAG;AAAC,QAAG;AAAC,YAAMb,EAAEL,CAAC;AAAA,IAAC,SAAOA,GAAE;AAAC,cAAQ,MAAM,mCAAkCA,CAAC;AAAA,IAAC;AAAA,EAAC,GAAE,SAAQ,OAAMA,MAAG;AAAC,QAAG;AAAC,YAAMW,EAAEX,CAAC;AAAA,IAAC,SAAOA,GAAE;AAAC,cAAQ,MAAM,0BAAyBA,CAAC;AAAA,IAAC;AAAA,EAAC,GAAE,cAAa,OAAMA,MAAG;AAAC,QAAG;AAAC,YAAMc,EAAEd,CAAC,GAAYA,MAAV,WAAa,MAAMiB,EAAE,MAAM;AAAA,IAAC,SAAOjB,GAAE;AAAC,cAAQ,MAAM,+BAA8BA,CAAC;AAAA,IAAC;AAAA,EAAC,GAAE,QAAO,OAAMA,MAAG;AAAC,QAAIG;AAAE,QAAGA,IAAEH,GAAE4kB,GAAG,SAASzkB,CAAC;AAAE,UAAG;AAAC,cAAMc,EAAEjB,CAAC;AAAA,MAAC,SAAOA,GAAE;AAAC,gBAAQ,MAAM,yBAAwBA,CAAC;AAAA,MAAC;AAAA;AAAM,cAAQ,MAAM,sBAAsB;AAAA,EAAC,EAAC;AAAC;AAAC,SAASglB,GAAGhlB,GAAEG,GAAE;AAAC,QAAMG,IAAcN,MAAZ,YAAc,4BAA0B;AAA2B,SAAOG,IAAE,GAAGG,CAAC,GAAGH,CAAC,KAAGG;AAAC;AAAC,SAAS2kB,GAAG,EAAC,WAAU3kB,GAAE,SAAQD,GAAE,GAAGD,EAAC,GAAE;AAAC,QAAMG,IAAEC,EAAE,qBAAoBH,GAAEC,CAAC,GAAE,EAAC,SAAQK,GAAE,MAAKC,GAAE,WAAUC,GAAE,KAAIC,GAAE,YAAWC,GAAE,SAAQC,GAAE,cAAaC,GAAE,QAAOC,EAAC,IAAE6jB,GAAG1kB,CAAC;AAAE,SAAOF,EAAEoB,IAAE,EAAC,WAAUhB,GAAE,GAAGH,GAAE,UAAS,CAACJ,EAAE8P,IAAG,EAAC,OAAM,YAAYzP,CAAC,IAAG,OAAM,SAAQ,UAAS,CAAAL,MAAGe,EAAEf,EAAE,OAAO,OAAO,GAAE,SAAQW,EAAC,CAAC,GAAER,EAAE,OAAM,EAAC,WAAU,sBAAqB,UAAS,CAACA,EAAE,OAAM,EAAC,WAAU,yDAAwD,UAAS,CAACH,EAAES,IAAE,EAAC,SAAQ,QAAO,CAAC,GAAET,EAAE0kB,IAAG,EAAC,WAAU,YAAW,SAAQ,EAAC,YAAW,IAAG,YAAW,IAAG,YAAW,SAAQ,aAAY9jB,GAAE,YAAW,GAAE,GAAE,OAAMA,GAAE,SAAQ,OAAM,CAACZ,CAAC,MAAI;AAAC,UAAMG,IAAEH,EAAE,mBAAmB,IAAG,EAAC,MAAK,WAAU,QAAO,WAAU,QAAO,GAAE,CAAC;AAAE,UAAMgB,EAAEb,CAAC;AAAA,EAAC,EAAC,CAAC,CAAC,EAAC,CAAC,GAAEA,EAAE6O,IAAG,EAAC,MAAKnO,EAAE,OAAO,CAAC,EAAE,YAAa,IAACA,EAAE,MAAM,CAAC,GAAE,MAAK,gBAAe,WAAU,IAAG,UAAS,CAACb,EAAEgP,GAAG,MAAK,EAAC,SAAQ,MAAI/N,EAAE,OAAO,GAAE,UAAS,QAAO,CAAC,GAAEjB,EAAEgP,GAAG,MAAK,EAAC,SAAQ,MAAI/N,EAAE,QAAQ,GAAE,UAAS,SAAQ,CAAC,CAAC,EAAC,CAAC,GAAaJ,MAAX,YAAcb,EAAEgP,IAAG,EAAC,MAAKlO,GAAE,MAAK,gBAAe,WAAU,IAAG,UAAS8jB,GAAG,IAAK,CAAAzkB,MAAGH,EAAEgP,GAAG,MAAK,EAAC,SAAQ,MAAI9N,EAAEf,CAAC,GAAE,UAASA,EAAC,GAAEA,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC;AAAC;AAAC,SAAS+kB,GAAG,EAAC,WAAU,GAAE,GAAG,EAAC,GAAE;AAAC,SAAOllB,EAAEilB,IAAG,EAAC,GAAG,GAAE,WAAU,GAAE,SAAQ,UAAS,CAAC;AAAC;AAAC,SAASE,GAAG,EAAC,WAAU,GAAE,GAAG,EAAC,GAAE;AAAC,SAAOnlB,EAAEilB,IAAG,EAAC,GAAG,GAAE,WAAU,GAAE,SAAQ,WAAU,CAAC;AAAC;AAAC,MAAMG,KAAG,EAAC,MAAKhE,IAAG,SAAQE,IAAG,OAAME,IAAG,gBAAeE,IAAG,cAAaE,IAAG,gBAAeC,IAAG,WAAUC,IAAG,uBAAsBC,IAAG,SAAQC,IAAG,yBAAwBC,IAAG,0BAAyBC,IAAG,iCAAgCC,IAAG,yBAAwBC,IAAG,WAAUC,IAAG,6BAA4BC,IAAG,mBAAkBC,IAAG,QAAOC,IAAG,sBAAqB0C,IAAG,uBAAsBC,GAAE,GAAEE,KAAG1kB,GAAEykB,EAAE,GAAEE,KAAGpkB,GAAG,CAAC,EAAC,UAAS,GAAE,YAAW,EAAC,MAAI;AAAC,QAAMb,IAAES,GAAG,OAAK,EAAC,GAAGskB,IAAG,GAAG,EAAC,IAAI,CAAC,CAAC,CAAC;AAAE,SAAOplB,EAAEqlB,GAAG,UAAS,EAAC,OAAMhlB,GAAE,UAAS,EAAC,CAAC;AAAC,CAAC;AAAGilB,GAAG,cAAY;AAA+C,MAACjE,KAAG,MAAIzgB,GAAEykB,EAAE,GAAEE,KAAG,CAAC,EAAC,WAAUjlB,GAAE,SAAQD,GAAE,OAAMD,IAAE,wBAAuB,UAASG,GAAE,GAAGI,EAAC,MAAIR,EAAEmP,IAAG,EAAC,WAAU9O,EAAE,wBAAuBF,CAAC,GAAE,GAAGK,GAAE,UAAS,CAACR,EAAEmP,GAAG,QAAO,EAAC,UAAS,CAACtP,EAAEsP,GAAG,OAAO,OAAM,EAAC,MAAK,SAAQ,MAAKlP,GAAE,KAAI,KAAI,CAAC,GAAEJ,EAAEsP,GAAG,OAAO,aAAY,EAAC,UAAStP,EAAEsP,GAAG,OAAO,YAAW,EAAC,SAAQ,UAAS,MAAK,SAAQ,MAAK,MAAK,SAAQjP,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,GAAEE,CAAC,EAAC,CAAC,GAAgnBilB,KAAG,CAAAllB,MAAG;AAAC,QAAK,EAAC,SAAQD,GAAE,SAAQD,EAAC,IAAEqlB,GAAE;AAAG,SAAOtlB,EAAEiP,IAAG,EAAC,GAAG9O,GAAE,UAAS,CAACN,EAAEK,GAAE,CAAE,CAAA,GAAEL,EAAEI,GAAE,EAAE,CAAC,EAAC,CAAC;AAAC,GAAEslB,KAAG,CAAC,EAAC,WAAU,GAAE,OAAM,IAAE,WAAU,GAAGrlB,EAAC,MAAI;AAAC,QAAK,EAAC,OAAM,EAAC,IAAEolB,GAAI;AAAC,SAAOzlB,EAAEuB,IAAE,EAAC,WAAUf,EAAE,8BAA6B,CAAC,GAAE,OAAM,GAAE,GAAGH,GAAE,UAASL,EAAE,GAAE,CAAE,CAAA,EAAC,CAAC;AAAC,GAAE2lB,KAAG,CAAC,EAAC,WAAUrlB,GAAE,OAAMD,IAAE,WAAU,GAAGD,EAAC,MAAI;AAAC,QAAK,EAAC,yBAAwBG,GAAE,iCAAgCI,EAAC,IAAE8kB;AAAK,SAAOtlB,EAAEoB,IAAE,EAAC,WAAUf,EAAE,8BAA6BF,CAAC,GAAE,OAAMD,GAAE,GAAGD,GAAE,UAAS,CAACJ,EAAEW,GAAE,CAAE,CAAA,GAAEX,EAAEO,GAAE,CAAA,CAAE,CAAC,EAAC,CAAC;AAAC,GAAEqlB,KAAG,EAAC,MAAKJ,IAAG,SAAQE,IAAG,OAAMlE,IAAG,SAAQmE,IAAG,iCAAgCxD,IAAG,yBAAwBC,GAAE,GAAEyD,KAAGllB,GAAEilB,EAAE,GAAEE,KAAG5kB,GAAG,CAAC,EAAC,UAAS,GAAE,YAAW,EAAC,MAAI;AAAC,QAAMb,IAAES,GAAG,OAAK,EAAC,GAAG8kB,IAAG,GAAG,EAAC,IAAI,CAAC,CAAC,CAAC;AAAE,SAAO5lB,EAAE6lB,GAAG,UAAS,EAAC,OAAMxlB,GAAE,UAAS,EAAC,CAAC;AAAC,CAAC;AAAGylB,GAAG,cAAY;AAA0C,MAAML,KAAG,MAAI7kB,GAAEilB,EAAE,GAAEE,KAAG,CAAC,EAAC,SAAQ,GAAE,OAAM,IAAE,wBAAuB,GAAG1lB,EAAC,MAAI;AAAC,QAAK,EAAC,MAAK,EAAC,IAAEolB;AAAK,SAAOzlB,EAAEulB,IAAG,EAAC,OAAM,GAAE,SAAQ,GAAE,GAAGllB,GAAE,UAASL,EAAE,GAAE,CAAE,CAAA,EAAC,CAAC;AAAC;AAAE,IAAIgmB,KAAG,OAAO,OAAO,EAAC,WAAU,MAAK,SAAQN,IAAG,SAAQC,IAAG,yBAAwBvD,IAAG,iCAAgCD,IAAG,OAAM,CAAC,EAAC,YAAW,GAAE,GAAG,EAAC,MAAIniB,EAAE8lB,IAAG,EAAC,YAAW,GAAE,UAAS9lB,EAAE+lB,IAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,GAAE,WAAUP,IAAG,OAAMhE,GAAE,CAAC;AAAkzG,MAAMyE,KAAG,CAAC,EAAC,MAAK3lB,GAAE,OAAMD,EAAC,MAAIF,EAAE,OAAM,EAAC,WAAU,2BAA0B,UAAS,CAACH,EAAE,OAAM,EAAC,WAAU,gCAA+B,UAASM,EAAC,CAAC,GAAEN,EAAE,OAAM,EAAC,WAAU,iCAAgC,UAASK,EAAC,CAAC,CAAC,EAAC,CAAC,GAAE6lB,KAAG,CAAC,EAAC,WAAU5lB,GAAE,OAAMD,GAAE,OAAMD,EAAC,MAAID,EAAE,OAAM,EAAC,WAAUK,EAAE,2BAA0BF,CAAC,GAAE,UAAS,CAACF,KAAGJ,EAAEsB,IAAE,EAAC,WAAU,4BAA2B,MAAKlB,EAAC,CAAC,GAAEC,EAAE,IAAK,CAAC,EAAC,MAAKF,GAAE,OAAMG,EAAC,MAAIN,EAAEimB,IAAG,EAAC,MAAK9lB,GAAE,OAAMG,EAAC,GAAEH,CAAC,CAAC,CAAE,EAAC,CAAC,GAAEgmB,KAAG,CAAC,EAAC,WAAU7lB,GAAE,OAAMD,GAAE,OAAMD,EAAC,MAAID,EAAE,WAAU,EAAC,WAAUK,EAAE,sBAAqBF,CAAC,GAAE,UAAS,CAACN,EAAEkmB,IAAG,EAAC,OAAM7lB,GAAE,OAAMD,EAAC,CAAC,GAAEJ,EAAE+O,IAAG,EAAC,WAAU,OAAM,CAAC,CAAC,EAAC,CAAC,GAAEqX,KAAG,CAAC,EAAC,OAAM,IAAE,WAAU,GAAG,EAAC,MAAIpmB,EAAEmmB,IAAG,EAAC,OAAM,GAAE,GAAG,EAAC,CAAC,GAAEE,KAAG,CAAC,EAAC,OAAM,IAAE,WAAU,GAAG,EAAC,MAAIrmB,EAAEmmB,IAAG,EAAC,OAAM,GAAE,GAAG,EAAC,CAAC,GAAEG,KAAG,CAAC,EAAC,OAAM,IAAE,WAAU,GAAG,EAAC,MAAItmB,EAAEmmB,IAAG,EAAC,OAAM,GAAE,GAAG,EAAC,CAAC,GAAEI,KAAG,CAAC,EAAC,WAAUjmB,EAAC,MAAI;AAAC,QAAMD,IAAE6P,GAAI,IAAC,uBAAqB;AAAqB,SAAO/P,EAAE,OAAM,EAAC,WAAUK,EAAE,0BAAyBF,CAAC,GAAE,UAAS,CAACN,EAAE,MAAK,EAAC,WAAU,sBAAqB,UAASK,EAAC,CAAC,GAAEF,EAAE,KAAI,EAAC,WAAU,qBAAoB,UAAS,CAACE,GAAE,kCAAiC,KAAIL,EAAE,KAAI,EAAC,MAAK,0BAAyB,KAAI,cAAa,QAAO,UAAS,UAAS,eAAc,CAAC,GAAE,MAAK,oBAAI,QAAM,eAAc,wBAAwB,EAAC,CAAC,CAAC,EAAC,CAAC;AAAC,GAAEwmB,KAAG,CAAC,EAAC,gBAAelmB,IAAG4P,GAAE,IAAG,OAAK,MAAM,WAAU7P,GAAE,OAAMD,GAAE,UAASG,GAAE,OAAMI,EAAC,MAAIR,EAAE,WAAU,EAAC,WAAUK,EAAE,sBAAqBH,CAAC,GAAE,UAAS,CAACF,EAAE,OAAM,EAAC,WAAU,6BAA4B,UAAS,CAACH,EAAE,OAAM,EAAC,WAAU,kBAAiB,UAASM,EAAC,CAAC,GAAEN,EAAEkmB,IAAG,EAAC,WAAU,SAAQ,OAAM9lB,GAAE,OAAMO,EAAC,CAAC,CAAC,EAAC,CAAC,GAAEJ,KAAGP,EAAEwB,IAAE,EAAC,WAAU,qBAAoB,SAAQjB,GAAE,SAAQ,WAAU,MAAK,4BAA2B,UAAS,UAAS,CAAC,GAAEP,EAAE+O,IAAG,EAAC,WAAU,OAAM,CAAC,CAAC,EAAC,CAAC,GAAE0X,KAAG,EAAC,gBAAeL,IAAG,qBAAoBC,IAAG,gBAAeC,IAAG,WAAUC,IAAG,aAAYC,GAAE,GAAEE,KAAG/lB,GAAE8lB,EAAE,GAAEE,KAAGzlB,GAAG,CAAC,EAAC,UAAS,GAAE,YAAW,EAAC,MAAI;AAAC,QAAMb,IAAES,GAAG,OAAK,EAAC,GAAG2lB,IAAG,GAAG,EAAC,IAAI,CAAC,CAAC,CAAC;AAAE,SAAOzmB,EAAE0mB,GAAG,UAAS,EAAC,OAAMrmB,GAAE,UAAS,EAAC,CAAC;AAAC,CAAG;AAACsmB,GAAG,cAAY;AAAsC,MAAMC,KAAG,CAAA5mB,MAAG;AAAC,QAAMG,IAAE,IAAI,KAAKH,CAAC;AAAE,SAAM,CAAC,EAAC,KAAI,UAAS,GAAE,EAAC,OAAM,QAAO,GAAE,EAAC,MAAK,UAAS,CAAC,EAAE,IAAK,OAAGG,EAAE,mBAAmB,MAAK,CAAC,CAAC,EAAG,KAAK,GAAG;AAAC,GAAE0mB,KAAG,CAAA7mB,MAAG;AAAC,MAAG,CAACA;AAAE,WAAM,EAAC,OAAM,CAAE,EAAA;AAAE,QAAMG,IAAE,CAAC,GAAGH,EAAE,QAAM,CAAC,EAAC,MAAK,SAAQ,OAAMA,EAAE,MAAK,CAAC,IAAE,CAAA,GAAG,GAAGA,EAAE,OAAK,CAAC,EAAC,MAAK,aAAY,OAAMA,EAAE,KAAI,CAAC,IAAE,CAAE,GAAC,GAAGA,EAAE,OAAK,CAAC,EAAC,MAAK,aAAY,OAAMA,EAAE,KAAI,CAAC,IAAE,CAAE,GAAC,EAAC,MAAK,WAAU,OAAMA,EAAE,GAAE,CAAC;AAAE,MAAGA,EAAE,aAAWA,EAAE,UAAS;AAAC,UAAMM,IAAE,CAACN,EAAE,WAAUA,EAAE,QAAQ,EAAE,OAAQ,CAAAA,MAAG,CAAC,CAACA,CAAC;AAAG,WAAM,EAAC,gBAAeM,EAAE,IAAK,CAAAN,MAAGA,EAAE,OAAO,CAAC,CAAG,EAAC,KAAK,EAAE,GAAE,OAAMG,GAAE,OAAMG,EAAE,KAAK,GAAG,EAAC;AAAA,EAAC;AAAC,SAAON,EAAE,WAAS,EAAC,gBAAeA,EAAE,SAAS,OAAO,CAAC,GAAE,OAAMG,GAAE,OAAMH,EAAE,SAAQ,IAAEA,EAAE,QAAM,EAAC,gBAAeA,EAAE,MAAM,OAAO,CAAC,GAAE,OAAMG,EAAC,IAAE,EAAC,OAAMA,EAAC;AAAC,GAAE2mB,KAAG,CAAA9mB,MAAG;AAAC,QAAMG,IAAE,IAAI,KAAK,MAAK,GAAE,CAAC,GAAEG,IAAEN,EAAE,aAAWG,EAAE,QAAS,IAAC,MAAI;AAAE,SAAM,EAAC,OAAM,CAAC,EAAC,MAAK,QAAO,OAAMH,EAAE,KAAI,GAAE,EAAC,MAAK,mBAAkB,OAAM4mB,GAAG5mB,EAAE,aAAWM,CAAC,EAAC,CAAC,EAAC;AAAC,GAAEymB,KAAG,CAAA/mB,OAAI,EAAC,OAAMA,EAAE,IAAK,CAAAA,OAAI,EAAC,MAAKA,EAAE,MAAK,OAAMA,EAAE,QAAO,EAAE,EAAE,IAAGgnB,KAAG,CAAAhnB,MAAG;;AAAC,QAAMG,IAAE,EAAC,kCAAiC,0BAAyB,2CAA0C,kCAAiC;AAAE,SAAM,EAAC,OAAM,CAAC,EAAC,MAAK,+BAA8B,OAAMH,EAAE,SAAS,WAAU,GAAE,EAAC,MAAK,6BAA4B,OAAMA,EAAE,OAAO,WAAU,GAAE,GAAGA,EAAE,aAAW,CAAC,EAAC,MAAK,kBAAiB,OAAMA,EAAE,WAAW,WAAU,CAAC,IAAE,CAAE,GAAC,IAAGuC,IAAAvC,EAAE,eAAF,QAAAuC,EAAc,aAAWsiB,GAAG7kB,EAAE,WAAW,UAAU,MAAKG,CAAC,IAAE,CAAC,EAAC,MAAKA,EAAEH,EAAE,WAAW,UAAU,IAAI,GAAE,OAAMA,EAAE,WAAW,UAAU,QAAO,CAAC,IAAE,CAAA,GAAG,GAAGA,EAAE,OAAK,CAAC,EAAC,MAAK,WAAU,OAAMA,EAAE,KAAK,QAAO,CAAC,IAAE,IAAG,GAAGA,EAAE,SAAO,CAAC,EAAC,MAAK,cAAa,OAAMA,EAAE,OAAO,WAAU,CAAC,IAAE,CAAE,GAAC,GAAGA,EAAE,SAAO,CAAC,EAAC,MAAK,cAAa,OAAMA,EAAE,OAAO,WAAU,CAAC,IAAE,CAAA,CAAE,EAAC;AAAC,GAAEinB,KAAG,MAAI;AAAC,QAAMjnB,IAAE,OAAO,YAAU,OAAO;AAAU,MAAG,CAACA;AAAE,UAAM,IAAI,MAAM,6DAA6D;AAAE,QAAK,EAAC,MAAKG,GAAE,KAAIG,EAAC,IAAEN,GAAEK,IAAE,CAAC,EAAC,MAAK,eAAc,OAAMC,EAAE,IAAG,GAAE,EAAC,MAAK,UAAS,OAAMA,EAAE,OAAM,CAAC;AAAE,SAAOH,IAAE,EAAC,gBAAeA,EAAE,OAAO,CAAC,GAAE,OAAME,GAAE,OAAMF,EAAC,IAAE,EAAC,OAAME,EAAC;AAAC,GAAE6mB,KAAG,CAAAlnB,OAA2E,EAAC,OAAhE,OAAO,QAAQA,KAAG,EAAE,EAAE,IAAK,CAAC,CAAC,GAAEG,CAAC,OAAK,EAAC,MAAK,GAAE,OAAMA,EAAC,IAAmB,IAAGgnB,KAAG,CAAAnnB,OAAuE,EAAC,OAA5DA,EAAE,IAAK,CAAC,EAAC,SAAQ,GAAE,SAAQG,EAAC,OAAK,EAAC,MAAK,GAAE,OAAMA,EAAC,EAAE,EAAiB,IAAGinB,KAAG,CAAApnB,MAAGkQ,QAAM,OAAMlQ,MAAG;AAAC,QAAK,EAAC,SAAQG,GAAE,aAAYG,EAAC,KAAG,MAAMN,EAAE,QAAQ,OAAO,gBAAgB,GAAG;AAAS,SAAM,EAAC,MAAKinB,MAAK,SAAQC,GAAG/mB,CAAC,GAAE,cAAagnB,GAAG7mB,CAAC,EAAC;AAAC,GAAGN,CAAC,KAAG,YAAS;AAAC,MAAG,CAAC,OAAO;AAAU,UAAM,IAAI,MAAM,mCAAmC;AAAE,QAAMA,IAAE,MAAM,OAAO,UAAU,OAAO;AAAiB,SAAM,EAAC,MAAK6mB,GAAG7mB,EAAE,IAAI,GAAE,SAAQ8mB,GAAG9mB,EAAE,OAAO,GAAE,SAAQ+mB,GAAG/mB,EAAE,OAAO,GAAE,cAAagnB,GAAGhnB,EAAE,YAAY,EAAC;AAAC,GAAC,GAAIqnB,KAAG,CAAC,EAAC,WAAU/mB,GAAE,SAAQD,GAAE,UAASD,GAAE,OAAMG,IAAE,WAAU,GAAGI,EAAC,MAAI;;AAAC,QAAK,EAAC,gBAAeG,GAAE,qBAAoBE,GAAE,gBAAeC,GAAE,WAAUC,GAAE,aAAYO,EAAC,IAAEb,GAAE8lB,EAAE,GAAE,IAAE9lB,GAAEqB,EAAC,GAAE,CAACN,GAAE5B,CAAC,IAAEc,GAAE,IAAI;AAAE,SAAOE,GAAG,MAAI;AAAC,IAAI,MAAU,YAAS;AAAC,YAAMf,IAAE,MAAMonB,GAAG,CAAC;AAAE,MAAArnB,EAAEC,CAAC;AAAA,IAAC,KAAK,MAAM,QAAQ,KAAK;AAAA,EAAC,GAAG,CAAC,CAAC,CAAC,GAAEG,EAAEmP,IAAG,EAAC,WAAU9O,EAAE,oBAAmBF,CAAC,GAAE,GAAGK,GAAE,UAAS,CAACR,EAAEmP,GAAG,QAAO,EAAC,UAAS,CAACtP,EAAEsP,GAAG,OAAO,OAAM,EAAC,MAAK,SAAQ,MAAK/O,EAAC,CAAC,GAAEP,EAAEsP,GAAG,OAAO,aAAY,EAAC,UAAStP,EAAEsP,GAAG,OAAO,YAAW,EAAC,SAAQ,UAAS,MAAK,SAAQ,MAAK,MAAK,SAAQjP,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,GAAEF,EAAEmP,GAAG,MAAK,EAAC,UAAS,CAAC3N,KAAA,QAAAA,EAAG,KAAK,MAAM,UAAQA,KAAA,QAAAA,EAAG,KAAK,QAAM3B,EAAEyB,GAAE,EAAC,gBAAeE,EAAE,KAAK,gBAAe,OAAMA,EAAE,KAAK,OAAM,UAASvB,GAAE,OAAMuB,EAAE,KAAK,MAAK,CAAC,IAAE,MAAKxB,EAAE,OAAM,EAAC,WAAU,4CAA2C,UAAS,CAACwB,KAAA,QAAAA,EAAG,QAAQ,MAAM,SAAO3B,EAAEc,GAAE,EAAC,OAAMa,EAAE,QAAQ,MAAK,CAAC,IAAE,MAAKA,KAAA,QAAAA,EAAG,aAAa,MAAM,SAAO3B,EAAEgB,GAAE,EAAC,OAAMW,EAAE,aAAa,MAAK,CAAC,IAAE,OAAKY,IAAAZ,KAAA,gBAAAA,EAAG,YAAH,QAAAY,EAAY,MAAM,SAAOvC,EAAEiB,GAAE,EAAC,OAAMU,EAAE,QAAQ,MAAK,CAAC,IAAE,IAAI,EAAC,CAAC,GAAE3B,EAAEkB,GAAE,EAAC,WAAU,UAAS,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC;AAAC;AAAE,IAAIomB,KAAG,OAAO,OAAO,EAAC,WAAU,MAAK,gBAAelB,IAAG,OAAM,CAAC,EAAC,YAAW,GAAE,GAAG,EAAC,MAAIpmB,EAAE2mB,IAAG,EAAC,YAAW,GAAE,UAAS3mB,EAAEqnB,IAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,GAAE,gBAAef,IAAG,qBAAoBD,IAAG,WAAUE,IAAG,aAAYC,GAAE,CAAC;AAAO,MAAOe,KAAGvB,ICP5wzPwB,KAAY,CACrBC,MAEO,WAAWA,GCLTC,KAAa;AAAA,EACtB,aAAa;AAAA,EACb,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,eAAe;AACnB,GCLaC,KAAsB,CAACC,MAC5B,OAAOA,KAAU,WACVA,IAGPA,KAAA,QAAAA,EAAO,UACA,OAAOA,EAAM,WAAY,WAAYA,EAAM,UAAqB,KAAK,UAAUA,EAAM,OAAO,IAGhG,KAAK,UAAUA,CAAK,GAGlBC,KAAiB,MAC1B,OAAQ,OAAe,WAAa,OACpC,OAAQ,OAAe,cAAgB,OACvC,OAAQ,OAAe,eAAiB,OACxC,OAAQ,OAAe,YAAc,KCb5BC,KAA2B;AAAA,EACpC,oBAAoB;AAAA,EACpB,uBAAuB;AAC3B,GAEaC,KAA2CF,GAClD,IAAA,KACA;AAAA,EACI;AAAA,IACI,MAAMC,GAAyB;AAAA,IAC/B,aAAa;AAAA,IACb,MAAM;AAAA,EACV;AAAA,EACA;AAAA,IACI,MAAMA,GAAyB;AAAA,IAC/B,aAAa;AAAA,IACb,MAAM;AAAA,EACV;AACJ,GAEOE,KAAyB;AAAA,EAClC,oBAAoB;AAAA,EACpB,QAAQ;AACZ,GAEaC,KAAyC;AAAA,EAClD;AAAA,IACI,MAAMD,GAAuB;AAAA,IAC7B,aAAa;AAAA,IACb,MAAM;AAAA,IACN,gBAAgB;AAAA,EACpB;AAAA,EACA,EAAE,MAAMA,GAAuB,QAAQ,aAAa,UAAU,MAAM,YAAY;AACpF,GCpCaE,KAAa;AAAA,EACtB,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,UAAU;AACd,GCAaC,KAAW,IAAI,KAAK,SAAS,QAAW;AAAA,EACjD,aAAa;AACjB,CAAC,GAEYC,KAAmE,CAACznB,GAAGT,MAAMioB,GAAS,QAAQxnB,EAAE,OAAOT,EAAE,KAAK,GAE9GmoB,KAAoE,CAAC1nB,GAAGT,MAAMioB,GAAS,QAAQjoB,EAAE,OAAOS,EAAE,KAAK,GAE/G2nB,KAAY,CAAOC,MAKlB;AACV,QAAM,EAAE,OAAAC,GAAO,WAAAC,GAAW,kBAAAC,GAAkB,mBAAAC,MAAsBJ;AAE9D,MAAAE,MAAcP,GAAW;AAClB,WAAAM;AAGX,QAAMI,IAAkBH,MAAcP,GAAW,YAAYQ,IAAmBC;AAEhF,SAAO,CAAC,GAAGH,CAAK,EAAE,KAAKI,CAAe;AAC1C,GC3BaC,KAAsB;AAAA,EAC/B,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,cAAc;AAClB,GCMMC,KAAgB,CAClBN,GACAO,GACAC,GACAC,MACuB;AACjB,QAAA,EAAE,qBAAAC,EAAwB,IAAAD,GAC1BE,IAAY,KACZ,CAACC,GAAe,GAAGC,CAAa,IAAIL,EAAK,MAAMG,CAAS,GACxDG,IAAed,EAAM,UAAU,CAACf,MAASD,GAAUC,CAAI,KAAKA,EAAK,UAAU2B,CAAa,GACxFG,IAAUD,MAAiB,KAAMd,EAAMc,CAAY,IAAoB;AAE7E,SAAKC,IAaE;AAAA,IACH,GAAGf,EAAM,MAAM,GAAGc,CAAY;AAAA,IAC9B;AAAA,MACI,GAAGC;AAAA,MACH,OACIF,EAAc,SAAS,IACjBP,GAAcS,EAAQ,OAAOR,GAASM,EAAc,KAAKF,CAAS,GAAGF,CAAQ,IAC7E,CAAC,GAAGM,EAAQ,OAAOR,CAAO;AAAA,IACxC;AAAA,IACA,GAAGP,EAAM,MAAMc,IAAe,CAAC;AAAA,EAAA,IArBxB;AAAA,IACH,GAAGd;AAAA,IACH;AAAA,MACI,IAAIY;AAAA,MACJ,OAAOA;AAAA,MACP,OACIC,EAAc,SAAS,IAAIP,GAAc,CAAA,GAAIC,GAASM,EAAc,KAAKF,CAAS,GAAGF,CAAQ,IAAI,CAACF,CAAO;AAAA,MAC7G,eAAeG;AAAA,IACnB;AAAA,EAAA;AAeZ,GAEMM,KAAmB,CAACC,MAA6B;AAC7C,QAAA,EAAE,OAAAC,GAAO,gBAAAC,EAAmB,IAAAF,GAC5B,EAAE,QAAAG,EAAW,IAAAD;AAEnB,SAAOC,IAAS,GAAGA,CAAM,IAAIF,CAAK,KAAKA;AAC3C,GAEMG,KAAiE,CAAClpB,GAAGT,MACvEioB,GAAS,QAAQqB,GAAiB7oB,CAAC,GAAG6oB,GAAiBtpB,CAAC,CAAC,GAEvD4pB,KAAkE,CAACnpB,GAAGT,MACxEioB,GAAS,QAAQqB,GAAiBtpB,CAAC,GAAGspB,GAAiB7oB,CAAC,CAAC,GAEhDopB,KAA+B,CACxCC,GACAC,GAGAhB,MACc;AACd,QAAM,EAAE,sBAAAiB,GAAsB,WAAAzB,IAAYP,GAAW,cAAce,GAS7DT,IAPqBF,GAAU;AAAA,IACjC,OAAO0B;AAAA,IACP,WAAAvB;AAAA,IACA,kBAAkBoB;AAAA,IAClB,mBAAmBC;AAAA,EAAA,CACtB,EAEgC;AAAA,IAC7B,CAACtB,GAAOiB,MAAgB;;AACpB,YAAMhC,IAAwB;AAAA,QAC1B,IAAIgC,EAAY;AAAA,QAChB,OAAOA,EAAY;AAAA,QACnB,aAAaA,EAAY;AAAA,QACzB,MAAM/B,GAAW;AAAA,QACjB,MAAM;AAAA,QACN,SAAS+B,EAAY;AAAA,QACrB,gBAAelnB,IAAA0nB,EAAiBR,EAAY,IAAI,MAAjC,gBAAAlnB,EAAoC;AAAA,QACnD,oBAAoBwlB;AAAA,MAAA,GAGlBiB,IAAOS,EAAY,eAAe;AAEjC,aAAAT,IAAOF,GAAcN,GAAOf,GAAMuB,GAAMC,CAAQ,IAAI,CAAC,GAAGT,GAAOf,CAAI;AAAA,IAC9E;AAAA,IACA,CAAC;AAAA,EAAA;AAGE,SAAA;AAAA,IACH,IAAIoB,GAAoB;AAAA,IACxB,OAAO;AAAA,IACP,OAAAL;AAAA,IACA,eAAe0B;AAAA,EAAA;AAEvB;;;;;;;;;;;;;;;;;;;AC9Fa,MAAIhqB,IAAe,OAAO,UAApB,cAA4B,OAAO,KAAIW,IAAEX,IAAE,OAAO,IAAI,eAAe,IAAE,OAAMc,IAAEd,IAAE,OAAO,IAAI,cAAc,IAAE,OAAMF,IAAEE,IAAE,OAAO,IAAI,gBAAgB,IAAE,OAAMe,IAAEf,IAAE,OAAO,IAAI,mBAAmB,IAAE,OAAMyB,IAAEzB,IAAE,OAAO,IAAI,gBAAgB,IAAE,OAAMuB,IAAEvB,IAAE,OAAO,IAAI,gBAAgB,IAAE,OAAMM,IAAEN,IAAE,OAAO,IAAI,eAAe,IAAE,OAAMY,IAAEZ,IAAE,OAAO,IAAI,kBAAkB,IAAE,OAAMgB,IAAEhB,IAAE,OAAO,IAAI,uBAAuB,IAAE,OAAMI,IAAEJ,IAAE,OAAO,IAAI,mBAAmB,IAAE,OAAMwB,IAAExB,IAAE,OAAO,IAAI,gBAAgB,IAAE,OAAM+C,IAAE/C,IACpf,OAAO,IAAI,qBAAqB,IAAE,OAAMK,IAAEL,IAAE,OAAO,IAAI,YAAY,IAAE,OAAMC,IAAED,IAAE,OAAO,IAAI,YAAY,IAAE,OAAM+B,IAAE/B,IAAE,OAAO,IAAI,aAAa,IAAE,OAAMD,IAAEC,IAAE,OAAO,IAAI,mBAAmB,IAAE,OAAMiB,IAAEjB,IAAE,OAAO,IAAI,iBAAiB,IAAE,OAAMH,IAAEG,IAAE,OAAO,IAAI,aAAa,IAAE;AAClQ,WAASwC,EAAE/B,GAAE;AAAC,QAAc,OAAOA,KAAlB,YAA4BA,MAAP,MAAS;AAAC,UAAII,IAAEJ,EAAE;AAAS,cAAOI,GAAG;AAAA,QAAA,KAAKF;AAAE,kBAAOF,IAAEA,EAAE,MAAKA,GAAG;AAAA,YAAA,KAAKG;AAAA,YAAE,KAAKI;AAAA,YAAE,KAAKlB;AAAA,YAAE,KAAK2B;AAAA,YAAE,KAAKV;AAAA,YAAE,KAAKS;AAAE,qBAAOf;AAAA,YAAE;AAAQ,sBAAOA,IAAEA,KAAGA,EAAE,UAASA,GAAG;AAAA,gBAAA,KAAKH;AAAA,gBAAE,KAAKF;AAAA,gBAAE,KAAKH;AAAA,gBAAE,KAAKI;AAAA,gBAAE,KAAKkB;AAAE,yBAAOd;AAAA,gBAAE;AAAQ,yBAAOI;AAAA,cAAC;AAAA,UAAC;AAAA,QAAC,KAAKC;AAAE,iBAAOD;AAAA,MAAC;AAAA,IAAC;AAAA,EAAC;AAAC,WAASS,EAAEb,GAAE;AAAC,WAAO+B,EAAE/B,CAAC,MAAIO;AAAA,EAAC;AAAC,SAAAipB,GAAA,YAAkBrpB,GAAEqpB,GAAsB,iBAACjpB,GAAEipB,qBAAwB3pB,GAAE2pB,GAAA,kBAAwB1oB,GAAE0oB,GAAe,UAACtpB,GAAEspB,GAAA,aAAmB7pB,GAAE6pB,GAAgB,WAACnqB,GAAEmqB,UAAahqB,GAAEgqB,GAAA,OAAa5pB,GAAE4pB,GAAc,SAACnpB,GAChfmpB,GAAA,WAAiBxoB,GAAEwoB,GAAA,aAAmBlpB,GAAEkpB,GAAA,WAAiBzoB,GAAEyoB,GAAA,cAAoB,SAASxpB,GAAE;AAAC,WAAOa,EAAEb,CAAC,KAAG+B,EAAE/B,CAAC,MAAIG;AAAA,EAAC,GAAEqpB,GAAA,mBAAyB3oB,GAAE2oB,GAAA,oBAA0B,SAASxpB,GAAE;AAAC,WAAO+B,EAAE/B,CAAC,MAAIH;AAAA,EAAC,GAAE2pB,GAAA,oBAA0B,SAASxpB,GAAE;AAAC,WAAO+B,EAAE/B,CAAC,MAAIc;AAAA,EAAC,GAAE0oB,GAAA,YAAkB,SAASxpB,GAAE;AAAC,WAAiB,OAAOA,KAAlB,YAA4BA,MAAP,QAAUA,EAAE,aAAWE;AAAA,EAAC,GAAEspB,GAAA,eAAqB,SAASxpB,GAAE;AAAC,WAAO+B,EAAE/B,CAAC,MAAIL;AAAA,EAAC,GAAE6pB,GAAA,aAAmB,SAASxpB,GAAE;AAAC,WAAO+B,EAAE/B,CAAC,MAAIX;AAAA,EAAC,GAAEmqB,GAAA,SAAe,SAASxpB,GAAE;AAAC,WAAO+B,EAAE/B,CAAC,MAAIR;AAAA,EAAC,GAC1dgqB,GAAA,SAAe,SAASxpB,GAAE;AAAC,WAAO+B,EAAE/B,CAAC,MAAIJ;AAAA,EAAC,GAAE4pB,cAAiB,SAASxpB,GAAE;AAAC,WAAO+B,EAAE/B,CAAC,MAAIK;AAAA,EAAC,GAAEmpB,GAAkB,aAAC,SAASxpB,GAAE;AAAC,WAAO+B,EAAE/B,CAAC,MAAIgB;AAAA,EAAC,GAAEwoB,GAAA,eAAqB,SAASxpB,GAAE;AAAC,WAAO+B,EAAE/B,CAAC,MAAIM;AAAA,EAAC,GAAEkpB,GAAA,aAAmB,SAASxpB,GAAE;AAAC,WAAO+B,EAAE/B,CAAC,MAAIe;AAAA,EAAC,GAChNyoB,GAAA,qBAAC,SAASxpB,GAAE;AAAC,WAAiB,OAAOA,KAAlB,YAAkC,OAAOA,KAApB,cAAuBA,MAAIX,KAAGW,MAAIO,KAAGP,MAAIgB,KAAGhB,MAAIM,KAAGN,MAAIe,KAAGf,MAAIsC,KAAc,OAAOtC,KAAlB,YAA4BA,MAAP,SAAWA,EAAE,aAAWR,KAAGQ,EAAE,aAAWJ,KAAGI,EAAE,aAAWc,KAAGd,EAAE,aAAWH,KAAGG,EAAE,aAAWL,KAAGK,EAAE,aAAWV,KAAGU,EAAE,aAAWQ,KAAGR,EAAE,aAAWZ,KAAGY,EAAE,aAAWsB;AAAA,EAAE,GAAEkoB,GAAc,SAACznB;;;;;;;;;;;;;wBCD/T,QAAQ,IAAI,aAAa,gBAC1B,WAAW;AAKd,QAAI0nB,IAAY,OAAO,UAAW,cAAc,OAAO,KACnDC,IAAqBD,IAAY,OAAO,IAAI,eAAe,IAAI,OAC/DE,IAAoBF,IAAY,OAAO,IAAI,cAAc,IAAI,OAC7DG,IAAsBH,IAAY,OAAO,IAAI,gBAAgB,IAAI,OACjEI,IAAyBJ,IAAY,OAAO,IAAI,mBAAmB,IAAI,OACvEK,IAAsBL,IAAY,OAAO,IAAI,gBAAgB,IAAI,OACjEM,IAAsBN,IAAY,OAAO,IAAI,gBAAgB,IAAI,OACjEO,IAAqBP,IAAY,OAAO,IAAI,eAAe,IAAI,OAG/DQ,IAAwBR,IAAY,OAAO,IAAI,kBAAkB,IAAI,OACrES,IAA6BT,IAAY,OAAO,IAAI,uBAAuB,IAAI,OAC/EU,IAAyBV,IAAY,OAAO,IAAI,mBAAmB,IAAI,OACvEW,IAAsBX,IAAY,OAAO,IAAI,gBAAgB,IAAI,OACjEY,IAA2BZ,IAAY,OAAO,IAAI,qBAAqB,IAAI,OAC3Ea,IAAkBb,IAAY,OAAO,IAAI,YAAY,IAAI,OACzDc,IAAkBd,IAAY,OAAO,IAAI,YAAY,IAAI,OACzDe,IAAmBf,IAAY,OAAO,IAAI,aAAa,IAAI,OAC3DgB,IAAyBhB,IAAY,OAAO,IAAI,mBAAmB,IAAI,OACvEiB,IAAuBjB,IAAY,OAAO,IAAI,iBAAiB,IAAI,OACnEkB,IAAmBlB,IAAY,OAAO,IAAI,aAAa,IAAI;AAE/D,aAASmB,EAAmBC,GAAM;AAChC,aAAO,OAAOA,KAAS,YAAY,OAAOA,KAAS;AAAA,MACnDA,MAASjB,KAAuBiB,MAASX,KAA8BW,MAASf,KAAuBe,MAAShB,KAA0BgB,MAAST,KAAuBS,MAASR,KAA4B,OAAOQ,KAAS,YAAYA,MAAS,SAASA,EAAK,aAAaN,KAAmBM,EAAK,aAAaP,KAAmBO,EAAK,aAAad,KAAuBc,EAAK,aAAab,KAAsBa,EAAK,aAAaV,KAA0BU,EAAK,aAAaJ,KAA0BI,EAAK,aAAaH,KAAwBG,EAAK,aAAaF,KAAoBE,EAAK,aAAaL;AAAA,IACnlB;AAED,aAASM,EAAOC,GAAQ;AACtB,UAAI,OAAOA,KAAW,YAAYA,MAAW,MAAM;AACjD,YAAIC,KAAWD,EAAO;AAEtB,gBAAQC,IAAQ;AAAA,UACd,KAAKtB;AACH,gBAAImB,KAAOE,EAAO;AAElB,oBAAQF,IAAI;AAAA,cACV,KAAKZ;AAAA,cACL,KAAKC;AAAA,cACL,KAAKN;AAAA,cACL,KAAKE;AAAA,cACL,KAAKD;AAAA,cACL,KAAKO;AACH,uBAAOS;AAAA,cAET;AACE,oBAAII,KAAeJ,MAAQA,GAAK;AAEhC,wBAAQI,IAAY;AAAA,kBAClB,KAAKjB;AAAA,kBACL,KAAKG;AAAA,kBACL,KAAKI;AAAA,kBACL,KAAKD;AAAA,kBACL,KAAKP;AACH,2BAAOkB;AAAA,kBAET;AACE,2BAAOD;AAAA,gBACV;AAAA,YAEJ;AAAA,UAEH,KAAKrB;AACH,mBAAOqB;AAAA,QACV;AAAA,MACF;AAAA,IAGF;AAED,QAAIE,IAAYjB,GACZkB,IAAiBjB,GACjBkB,IAAkBpB,GAClBqB,IAAkBtB,GAClBuB,IAAU5B,GACV6B,IAAapB,GACbqB,IAAW5B,GACX6B,IAAOlB,GACPmB,KAAOpB,GACPqB,KAAShC,GACTiC,IAAW9B,GACX+B,KAAahC,GACbiC,KAAW1B,GACX2B,KAAsC;AAE1C,aAASC,GAAYjB,GAAQ;AAEzB,aAAKgB,OACHA,KAAsC,IAEtC,QAAQ,KAAQ,+KAAyL,IAItME,EAAiBlB,CAAM,KAAKD,EAAOC,CAAM,MAAMd;AAAA,IACvD;AACD,aAASgC,EAAiBlB,GAAQ;AAChC,aAAOD,EAAOC,CAAM,MAAMb;AAAA,IAC3B;AACD,aAASgC,EAAkBnB,GAAQ;AACjC,aAAOD,EAAOC,CAAM,MAAMf;AAAA,IAC3B;AACD,aAASmC,GAAkBpB,GAAQ;AACjC,aAAOD,EAAOC,CAAM,MAAMhB;AAAA,IAC3B;AACD,aAASqC,GAAUrB,GAAQ;AACzB,aAAO,OAAOA,KAAW,YAAYA,MAAW,QAAQA,EAAO,aAAarB;AAAA,IAC7E;AACD,aAAS2C,EAAatB,GAAQ;AAC5B,aAAOD,EAAOC,CAAM,MAAMZ;AAAA,IAC3B;AACD,aAASmC,EAAWvB,GAAQ;AAC1B,aAAOD,EAAOC,CAAM,MAAMnB;AAAA,IAC3B;AACD,aAAS2C,EAAOxB,GAAQ;AACtB,aAAOD,EAAOC,CAAM,MAAMR;AAAA,IAC3B;AACD,aAASiC,EAAOzB,GAAQ;AACtB,aAAOD,EAAOC,CAAM,MAAMT;AAAA,IAC3B;AACD,aAASmC,EAAS1B,GAAQ;AACxB,aAAOD,EAAOC,CAAM,MAAMpB;AAAA,IAC3B;AACD,aAAS+C,EAAW3B,GAAQ;AAC1B,aAAOD,EAAOC,CAAM,MAAMjB;AAAA,IAC3B;AACD,aAAS6C,GAAa5B,GAAQ;AAC5B,aAAOD,EAAOC,CAAM,MAAMlB;AAAA,IAC3B;AACD,aAAS+C,GAAW7B,GAAQ;AAC1B,aAAOD,EAAOC,CAAM,MAAMX;AAAA,IAC3B;AAEgB,IAAAyC,GAAA,YAAG3B,GACE2B,GAAA,iBAAG1B,GACF0B,GAAA,kBAAGzB,GACHyB,GAAA,kBAAGxB,GACXwB,GAAA,UAAGvB,GACAuB,GAAA,aAAGtB,GACLsB,GAAA,WAAGrB,GACPqB,GAAA,OAAGpB,GACHoB,GAAA,OAAGnB,IACDmB,GAAA,SAAGlB,IACDkB,GAAA,WAAGjB,GACDiB,GAAA,aAAGhB,IACLgB,GAAA,WAAGf,IACAe,GAAA,cAAGb,IACEa,GAAA,mBAAGZ,GACFY,GAAA,oBAAGX,GACHW,GAAA,oBAAGV,IACXU,GAAA,YAAGT,IACAS,GAAA,eAAGR,GACLQ,GAAA,aAAGP,GACPO,GAAA,SAAGN,GACHM,GAAA,SAAGL,GACDK,GAAA,WAAGJ,GACDI,GAAA,aAAGH,GACDG,GAAA,eAAGF,IACLE,GAAA,aAAGD,IACKC,GAAA,qBAAGjC,GACfiC,GAAA,SAAG/B;AAAA,EACjB;;;;wBCjLI,QAAQ,IAAI,aAAa,eAC3BgC,GAAA,UAAiBC,OAEjBD,GAAA,UAAiBE;;;;;;;;;;;;ACGnB,MAAIC,IAAwB,OAAO,uBAC/BC,IAAiB,OAAO,UAAU,gBAClCC,IAAmB,OAAO,UAAU;AAExC,WAASC,EAASC,GAAK;AACtB,QAAIA,KAAQ;AACX,YAAM,IAAI,UAAU,uDAAuD;AAG5E,WAAO,OAAOA,CAAG;AAAA,EACjB;AAED,WAASC,IAAkB;AAC1B,QAAI;AACH,UAAI,CAAC,OAAO;AACX,eAAO;AAMR,UAAIC,IAAQ,IAAI,OAAO,KAAK;AAE5B,UADAA,EAAM,CAAC,IAAI,MACP,OAAO,oBAAoBA,CAAK,EAAE,CAAC,MAAM;AAC5C,eAAO;AAKR,eADIC,IAAQ,CAAA,GACH9tB,IAAI,GAAGA,IAAI,IAAIA;AACvB,QAAA8tB,EAAM,MAAM,OAAO,aAAa9tB,CAAC,CAAC,IAAIA;AAEvC,UAAI+tB,IAAS,OAAO,oBAAoBD,CAAK,EAAE,IAAI,SAAU7tB,GAAG;AAC/D,eAAO6tB,EAAM7tB,CAAC;AAAA,MACjB,CAAG;AACD,UAAI8tB,EAAO,KAAK,EAAE,MAAM;AACvB,eAAO;AAIR,UAAIC,IAAQ,CAAA;AAIZ,aAHA,uBAAuB,MAAM,EAAE,EAAE,QAAQ,SAAUC,GAAQ;AAC1D,QAAAD,EAAMC,CAAM,IAAIA;AAAA,MACnB,CAAG,GACG,OAAO,KAAK,OAAO,OAAO,CAAE,GAAED,CAAK,CAAC,EAAE,KAAK,EAAE,MAC/C;AAAA,IAKF,QAAa;AAEb,aAAO;AAAA,IACP;AAAA,EACD;AAED,SAAAE,KAAiBN,EAAe,IAAK,OAAO,SAAS,SAAUO,GAAQC,GAAQ;AAK9E,aAJIC,GACAle,IAAKud,EAASS,CAAM,GACpBG,GAEK/tB,IAAI,GAAGA,IAAI,UAAU,QAAQA,KAAK;AAC1C,MAAA8tB,IAAO,OAAO,UAAU9tB,CAAC,CAAC;AAE1B,eAASguB,KAAOF;AACf,QAAIb,EAAe,KAAKa,GAAME,CAAG,MAChCpe,EAAGoe,CAAG,IAAIF,EAAKE,CAAG;AAIpB,UAAIhB,GAAuB;AAC1B,QAAAe,IAAUf,EAAsBc,CAAI;AACpC,iBAASruB,IAAI,GAAGA,IAAIsuB,EAAQ,QAAQtuB;AACnC,UAAIytB,EAAiB,KAAKY,GAAMC,EAAQtuB,CAAC,CAAC,MACzCmQ,EAAGme,EAAQtuB,CAAC,CAAC,IAAIquB,EAAKC,EAAQtuB,CAAC,CAAC;AAAA,MAGlC;AAAA,IACD;AAED,WAAOmQ;AAAA;;;;;;;AC/ER,MAAIqe,IAAuB;AAE3B,SAAAC,KAAiBD;;;;wBCXjBE,KAAiB,SAAS,KAAK,KAAK,OAAO,UAAU,cAAc;;;;;;;ACSnE,MAAIC,IAAe,WAAW;AAAA;AAE9B,MAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,QAAIH,IAAuBnB,MACvBuB,IAAqB,CAAA,GACrBF,IAAMpB;AAEV,IAAAqB,IAAe,SAASE,GAAM;AAC5B,UAAIC,IAAU,cAAcD;AAC5B,MAAI,OAAO,UAAY,OACrB,QAAQ,MAAMC,CAAO;AAEvB,UAAI;AAIF,cAAM,IAAI,MAAMA,CAAO;AAAA,MAC7B,QAAgB;AAAA,MAAQ;AAAA,IACxB;AAAA,EACC;AAaD,WAASC,EAAeC,GAAWC,GAAQC,GAAUC,GAAeC,GAAU;AAC5E,QAAI,QAAQ,IAAI,aAAa;AAC3B,eAASC,KAAgBL;AACvB,YAAIN,EAAIM,GAAWK,CAAY,GAAG;AAChC,cAAI9H;AAIJ,cAAI;AAGF,gBAAI,OAAOyH,EAAUK,CAAY,KAAM,YAAY;AACjD,kBAAIC,IAAM;AAAA,iBACPH,KAAiB,iBAAiB,OAAOD,IAAW,YAAYG,IAAe,+FACC,OAAOL,EAAUK,CAAY,IAAI;AAAA,cAEhI;AACY,oBAAAC,EAAI,OAAO,uBACLA;AAAA,YACP;AACD,YAAA/H,IAAQyH,EAAUK,CAAY,EAAEJ,GAAQI,GAAcF,GAAeD,GAAU,MAAMV,CAAoB;AAAA,UAC1G,SAAQe,GAAI;AACX,YAAAhI,IAAQgI;AAAA,UACT;AAWD,cAVIhI,KAAS,EAAEA,aAAiB,UAC9BoH;AAAA,aACGQ,KAAiB,iBAAiB,6BACnCD,IAAW,OAAOG,IAAe,6FAC6B,OAAO9H,IAAQ;AAAA,UAIzF,GAEYA,aAAiB,SAAS,EAAEA,EAAM,WAAWqH,IAAqB;AAGpE,YAAAA,EAAmBrH,EAAM,OAAO,IAAI;AAEpC,gBAAIiI,IAAQJ,IAAWA,EAAQ,IAAK;AAEpC,YAAAT;AAAA,cACE,YAAYO,IAAW,YAAY3H,EAAM,WAAWiI,KAAwB;AAAA,YACxF;AAAA,UACS;AAAA,QACF;AAAA;AAAA,EAGN;AAOD,SAAAT,EAAe,oBAAoB,WAAW;AAC5C,IAAI,QAAQ,IAAI,aAAa,iBAC3BH,IAAqB,CAAA;AAAA,EAExB,GAEDa,KAAiBV;;;;;;;AC7FjB,MAAIW,IAAUrC,MACVsC,IAASrC,MAETkB,IAAuBoB,MACvBlB,IAAMmB,MACNd,IAAiBe,MAEjBnB,IAAe,WAAW;AAAA;AAE9B,EAAI,QAAQ,IAAI,aAAa,iBAC3BA,IAAe,SAASE,GAAM;AAC5B,QAAIC,IAAU,cAAcD;AAC5B,IAAI,OAAO,UAAY,OACrB,QAAQ,MAAMC,CAAO;AAEvB,QAAI;AAIF,YAAM,IAAI,MAAMA,CAAO;AAAA,IAC7B,QAAgB;AAAA,IAAE;AAAA,EAClB;AAGA,WAASiB,IAA+B;AACtC,WAAO;AAAA,EACR;AAED,SAAAC,KAAiB,SAASC,GAAgBC,GAAqB;AAE7D,QAAIC,IAAkB,OAAO,UAAW,cAAc,OAAO,UACzDC,IAAuB;AAgB3B,aAASC,EAAcC,GAAe;AACpC,UAAIC,IAAaD,MAAkBH,KAAmBG,EAAcH,CAAe,KAAKG,EAAcF,CAAoB;AAC1H,UAAI,OAAOG,KAAe;AACxB,eAAOA;AAAA,IAEV;AAiDD,QAAIC,IAAY,iBAIZC,IAAiB;AAAA,MACnB,OAAOC,EAA2B,OAAO;AAAA,MACzC,QAAQA,EAA2B,QAAQ;AAAA,MAC3C,MAAMA,EAA2B,SAAS;AAAA,MAC1C,MAAMA,EAA2B,UAAU;AAAA,MAC3C,QAAQA,EAA2B,QAAQ;AAAA,MAC3C,QAAQA,EAA2B,QAAQ;AAAA,MAC3C,QAAQA,EAA2B,QAAQ;AAAA,MAC3C,QAAQA,EAA2B,QAAQ;AAAA,MAE3C,KAAKC,EAAsB;AAAA,MAC3B,SAASC;AAAA,MACT,SAASC,EAA0B;AAAA,MACnC,aAAaC,EAA8B;AAAA,MAC3C,YAAYC;AAAA,MACZ,MAAMC,EAAmB;AAAA,MACzB,UAAUC;AAAA,MACV,OAAOC;AAAA,MACP,WAAWC;AAAA,MACX,OAAOC;AAAA,MACP,OAAOC;AAAA,IACX;AAOE,aAAS5X,EAAG3Y,GAAGpB,GAAG;AAEhB,aAAIoB,MAAMpB,IAGDoB,MAAM,KAAK,IAAIA,MAAM,IAAIpB,IAGzBoB,MAAMA,KAAKpB,MAAMA;AAAA,IAE3B;AAUD,aAAS4xB,EAAcxC,GAASyC,GAAM;AACpC,WAAK,UAAUzC,GACf,KAAK,OAAOyC,KAAQ,OAAOA,KAAS,WAAWA,IAAM,IACrD,KAAK,QAAQ;AAAA,IACd;AAED,IAAAD,EAAc,YAAY,MAAM;AAEhC,aAASE,EAA2BC,GAAU;AAC5C,UAAI,QAAQ,IAAI,aAAa;AAC3B,YAAIC,IAA0B,CAAA,GAC1BC,KAA6B;AAEnC,eAASC,GAAUC,GAAYC,GAAOC,GAAU5C,GAAeD,GAAU8C,IAAcC,IAAQ;AAI7F,YAHA9C,IAAgBA,KAAiBqB,GACjCwB,KAAeA,MAAgBD,GAE3BE,OAAWzD;AACb,cAAI0B,GAAqB;AAEvB,gBAAIZ,IAAM,IAAI;AAAA,cACZ;AAAA,YAGZ;AACU,kBAAAA,EAAI,OAAO,uBACLA;AAAA,UAChB,WAAmB,QAAQ,IAAI,aAAa,gBAAgB,OAAO,UAAY,KAAa;AAElF,gBAAI4C,KAAW/C,IAAgB,MAAM4C;AACrC,YACE,CAACL,EAAwBQ,EAAQ;AAAA,YAEjCP,KAA6B,MAE7BhD;AAAA,cACE,6EACuBqD,KAAe,gBAAgB7C,IAAgB;AAAA,YAIpF,GACYuC,EAAwBQ,EAAQ,IAAI,IACpCP;AAAA,UAEH;AAAA;AAEH,eAAIG,EAAMC,CAAQ,KAAK,OACjBF,IACEC,EAAMC,CAAQ,MAAM,OACf,IAAIT,EAAc,SAASpC,IAAW,OAAO8C,KAAe,8BAA8B,SAAS7C,IAAgB,8BAA8B,IAEnJ,IAAImC,EAAc,SAASpC,IAAW,OAAO8C,KAAe,iCAAiC,MAAM7C,IAAgB,mCAAmC,IAExJ,OAEAsC,EAASK,GAAOC,GAAU5C,GAAeD,GAAU8C,EAAY;AAAA,MAEzE;AAED,UAAIG,IAAmBP,GAAU,KAAK,MAAM,EAAK;AACjD,aAAAO,EAAiB,aAAaP,GAAU,KAAK,MAAM,EAAI,GAEhDO;AAAA,IACR;AAED,aAASzB,EAA2B0B,GAAc;AAChD,eAASX,EAASK,IAAOC,IAAU5C,GAAeD,GAAU8C,GAAcC,GAAQ;AAChF,YAAII,IAAYP,GAAMC,EAAQ,GAC1BO,IAAWC,GAAYF,CAAS;AACpC,YAAIC,MAAaF,GAAc;AAI7B,cAAII,KAAcC,GAAeJ,CAAS;AAE1C,iBAAO,IAAIf;AAAA,YACT,aAAapC,IAAW,OAAO8C,IAAe,gBAAgB,MAAMQ,KAAc,oBAAoBrD,IAAgB,mBAAmB,MAAMiD,IAAe;AAAA,YAC9J,EAAC,cAAcA,EAAY;AAAA,UACrC;AAAA,QACO;AACD,eAAO;AAAA,MACR;AACD,aAAOZ,EAA2BC,CAAQ;AAAA,IAC3C;AAED,aAASd,IAAuB;AAC9B,aAAOa,EAA2BzB,CAA4B;AAAA,IAC/D;AAED,aAASa,EAAyB8B,GAAa;AAC7C,eAASjB,EAASK,IAAOC,IAAU5C,GAAeD,GAAU8C,GAAc;AACxE,YAAI,OAAOU,KAAgB;AACzB,iBAAO,IAAIpB,EAAc,eAAeU,IAAe,qBAAqB7C,IAAgB,iDAAiD;AAE/I,YAAIkD,IAAYP,GAAMC,EAAQ;AAC9B,YAAI,CAAC,MAAM,QAAQM,CAAS,GAAG;AAC7B,cAAIC,IAAWC,GAAYF,CAAS;AACpC,iBAAO,IAAIf,EAAc,aAAapC,IAAW,OAAO8C,IAAe,gBAAgB,MAAMM,IAAW,oBAAoBnD,IAAgB,wBAAwB;AAAA,QACrK;AACD,iBAASnvB,IAAI,GAAGA,IAAIqyB,EAAU,QAAQryB,KAAK;AACzC,cAAIunB,KAAQmL,EAAYL,GAAWryB,GAAGmvB,GAAeD,GAAU8C,IAAe,MAAMhyB,IAAI,KAAKwuB,CAAoB;AACjH,cAAIjH,cAAiB;AACnB,mBAAOA;AAAA,QAEV;AACD,eAAO;AAAA,MACR;AACD,aAAOiK,EAA2BC,CAAQ;AAAA,IAC3C;AAED,aAASZ,IAA2B;AAClC,eAASY,EAASK,GAAOC,IAAU5C,IAAeD,GAAU8C,GAAc;AACxE,YAAIK,IAAYP,EAAMC,EAAQ;AAC9B,YAAI,CAAC9B,EAAeoC,CAAS,GAAG;AAC9B,cAAIC,IAAWC,GAAYF,CAAS;AACpC,iBAAO,IAAIf,EAAc,aAAapC,IAAW,OAAO8C,IAAe,gBAAgB,MAAMM,IAAW,oBAAoBnD,KAAgB,qCAAqC;AAAA,QAClL;AACD,eAAO;AAAA,MACR;AACD,aAAOqC,EAA2BC,CAAQ;AAAA,IAC3C;AAED,aAASX,IAA+B;AACtC,eAASW,EAASK,GAAOC,IAAU5C,IAAeD,GAAU8C,GAAc;AACxE,YAAIK,IAAYP,EAAMC,EAAQ;AAC9B,YAAI,CAACrC,EAAQ,mBAAmB2C,CAAS,GAAG;AAC1C,cAAIC,IAAWC,GAAYF,CAAS;AACpC,iBAAO,IAAIf,EAAc,aAAapC,IAAW,OAAO8C,IAAe,gBAAgB,MAAMM,IAAW,oBAAoBnD,KAAgB,0CAA0C;AAAA,QACvL;AACD,eAAO;AAAA,MACR;AACD,aAAOqC,EAA2BC,CAAQ;AAAA,IAC3C;AAED,aAASV,EAA0B4B,GAAe;AAChD,eAASlB,EAASK,IAAOC,IAAU5C,GAAeD,GAAU8C,GAAc;AACxE,YAAI,EAAEF,GAAMC,EAAQ,aAAaY,IAAgB;AAC/C,cAAIC,IAAoBD,EAAc,QAAQnC,GAC1CqC,IAAkBC,GAAahB,GAAMC,EAAQ,CAAC;AAClD,iBAAO,IAAIT,EAAc,aAAapC,IAAW,OAAO8C,IAAe,gBAAgB,MAAMa,IAAkB,oBAAoB1D,IAAgB,mBAAmB,kBAAkByD,IAAoB,KAAK;AAAA,QAClN;AACD,eAAO;AAAA,MACR;AACD,aAAOpB,EAA2BC,CAAQ;AAAA,IAC3C;AAED,aAASP,EAAsB6B,GAAgB;AAC7C,UAAI,CAAC,MAAM,QAAQA,CAAc;AAC/B,eAAI,QAAQ,IAAI,aAAa,iBACvB,UAAU,SAAS,IACrBpE;AAAA,UACE,iEAAiE,UAAU,SAAS;AAAA,QAEhG,IAEUA,EAAa,wDAAwD,IAGlEoB;AAGT,eAAS0B,EAASK,IAAOC,IAAU5C,GAAeD,GAAU8C,GAAc;AAExE,iBADIK,IAAYP,GAAMC,EAAQ,GACrB/xB,IAAI,GAAGA,IAAI+yB,EAAe,QAAQ/yB;AACzC,cAAIyZ,EAAG4Y,GAAWU,EAAe/yB,CAAC,CAAC;AACjC,mBAAO;AAIX,YAAIgzB,IAAe,KAAK,UAAUD,GAAgB,SAAkBxE,IAAK0E,GAAO;AAC9E,cAAI9H,KAAOsH,GAAeQ,CAAK;AAC/B,iBAAI9H,OAAS,WACJ,OAAO8H,CAAK,IAEdA;AAAA,QACf,CAAO;AACD,eAAO,IAAI3B,EAAc,aAAapC,IAAW,OAAO8C,IAAe,iBAAiB,OAAOK,CAAS,IAAI,QAAQ,kBAAkBlD,IAAgB,wBAAwB6D,IAAe,IAAI;AAAA,MAClM;AACD,aAAOxB,EAA2BC,CAAQ;AAAA,IAC3C;AAED,aAASR,EAA0ByB,GAAa;AAC9C,eAASjB,EAASK,IAAOC,IAAU5C,GAAeD,GAAU8C,GAAc;AACxE,YAAI,OAAOU,KAAgB;AACzB,iBAAO,IAAIpB,EAAc,eAAeU,IAAe,qBAAqB7C,IAAgB,kDAAkD;AAEhJ,YAAIkD,IAAYP,GAAMC,EAAQ,GAC1BO,IAAWC,GAAYF,CAAS;AACpC,YAAIC,MAAa;AACf,iBAAO,IAAIhB,EAAc,aAAapC,IAAW,OAAO8C,IAAe,gBAAgB,MAAMM,IAAW,oBAAoBnD,IAAgB,yBAAyB;AAEvK,iBAASZ,KAAO8D;AACd,cAAI3D,EAAI2D,GAAW9D,CAAG,GAAG;AACvB,gBAAIhH,KAAQmL,EAAYL,GAAW9D,GAAKY,GAAeD,GAAU8C,IAAe,MAAMzD,GAAKC,CAAoB;AAC/G,gBAAIjH,cAAiB;AACnB,qBAAOA;AAAA,UAEV;AAEH,eAAO;AAAA,MACR;AACD,aAAOiK,EAA2BC,CAAQ;AAAA,IAC3C;AAED,aAASN,EAAuB+B,GAAqB;AACnD,UAAI,CAAC,MAAM,QAAQA,CAAmB;AACpC,uBAAQ,IAAI,aAAa,gBAAevE,EAAa,wEAAwE,GACtHoB;AAGT,eAAS/vB,IAAI,GAAGA,IAAIkzB,EAAoB,QAAQlzB,KAAK;AACnD,YAAImzB,KAAUD,EAAoBlzB,CAAC;AACnC,YAAI,OAAOmzB,MAAY;AACrB,iBAAAxE;AAAA,YACE,gGACcyE,GAAyBD,EAAO,IAAI,eAAenzB,IAAI;AAAA,UAC/E,GACe+vB;AAAA,MAEV;AAED,eAAS0B,GAASK,GAAOC,GAAU5C,GAAeD,GAAU8C,GAAc;AAExE,iBADIqB,IAAgB,CAAA,GACXrzB,KAAI,GAAGA,KAAIkzB,EAAoB,QAAQlzB,MAAK;AACnD,cAAImzB,KAAUD,EAAoBlzB,EAAC,GAC/BszB,IAAgBH,GAAQrB,GAAOC,GAAU5C,GAAeD,GAAU8C,GAAcxD,CAAoB;AACxG,cAAI8E,KAAiB;AACnB,mBAAO;AAET,UAAIA,EAAc,QAAQ5E,EAAI4E,EAAc,MAAM,cAAc,KAC9DD,EAAc,KAAKC,EAAc,KAAK,YAAY;AAAA,QAErD;AACD,YAAIC,KAAwBF,EAAc,SAAS,IAAK,6BAA6BA,EAAc,KAAK,IAAI,IAAI,MAAK;AACrH,eAAO,IAAI/B,EAAc,aAAapC,IAAW,OAAO8C,IAAe,oBAAoB,MAAM7C,IAAgB,MAAMoE,KAAuB,IAAI;AAAA,MACnJ;AACD,aAAO/B,EAA2BC,EAAQ;AAAA,IAC3C;AAED,aAAST,IAAoB;AAC3B,eAASS,EAASK,GAAOC,IAAU5C,IAAeD,GAAU8C,GAAc;AACxE,eAAKwB,GAAO1B,EAAMC,EAAQ,CAAC,IAGpB,OAFE,IAAIT,EAAc,aAAapC,IAAW,OAAO8C,IAAe,oBAAoB,MAAM7C,KAAgB,2BAA2B;AAAA,MAG/I;AACD,aAAOqC,EAA2BC,CAAQ;AAAA,IAC3C;AAED,aAASgC,EAAsBtE,GAAeD,GAAU8C,IAAczD,IAAKpD,GAAM;AAC/E,aAAO,IAAImG;AAAA,SACRnC,KAAiB,iBAAiB,OAAOD,IAAW,YAAY8C,KAAe,MAAMzD,KAAM,+FACXpD,IAAO;AAAA,MAC9F;AAAA,IACG;AAED,aAASiG,EAAuBsC,GAAY;AAC1C,eAASjC,EAASK,IAAOC,IAAU5C,GAAeD,GAAU8C,GAAc;AACxE,YAAIK,IAAYP,GAAMC,EAAQ,GAC1BO,IAAWC,GAAYF,CAAS;AACpC,YAAIC,MAAa;AACf,iBAAO,IAAIhB,EAAc,aAAapC,IAAW,OAAO8C,IAAe,gBAAgBM,IAAW,QAAQ,kBAAkBnD,IAAgB,wBAAwB;AAEtK,iBAASZ,KAAOmF,GAAY;AAC1B,cAAIP,KAAUO,EAAWnF,CAAG;AAC5B,cAAI,OAAO4E,MAAY;AACrB,mBAAOM,EAAsBtE,GAAeD,GAAU8C,GAAczD,GAAKkE,GAAeU,EAAO,CAAC;AAElG,cAAI5L,KAAQ4L,GAAQd,GAAW9D,GAAKY,GAAeD,GAAU8C,IAAe,MAAMzD,GAAKC,CAAoB;AAC3G,cAAIjH;AACF,mBAAOA;AAAA,QAEV;AACD,eAAO;AAAA,MACR;AACD,aAAOiK,EAA2BC,CAAQ;AAAA,IAC3C;AAED,aAASJ,GAA6BqC,GAAY;AAChD,eAASjC,EAASK,IAAOC,IAAU5C,GAAeD,GAAU8C,GAAc;AACxE,YAAIK,IAAYP,GAAMC,EAAQ,GAC1BO,IAAWC,GAAYF,CAAS;AACpC,YAAIC,MAAa;AACf,iBAAO,IAAIhB,EAAc,aAAapC,IAAW,OAAO8C,IAAe,gBAAgBM,IAAW,QAAQ,kBAAkBnD,IAAgB,wBAAwB;AAGtK,YAAIwE,IAAUhE,EAAO,CAAE,GAAEmC,GAAMC,EAAQ,GAAG2B,CAAU;AACpD,iBAASnF,MAAOoF,GAAS;AACvB,cAAIR,KAAUO,EAAWnF,EAAG;AAC5B,cAAIG,EAAIgF,GAAYnF,EAAG,KAAK,OAAO4E,MAAY;AAC7C,mBAAOM,EAAsBtE,GAAeD,GAAU8C,GAAczD,IAAKkE,GAAeU,EAAO,CAAC;AAElG,cAAI,CAACA;AACH,mBAAO,IAAI7B;AAAA,cACT,aAAapC,IAAW,OAAO8C,IAAe,YAAYzD,KAAM,oBAAoBY,IAAgB,qBACjF,KAAK,UAAU2C,GAAMC,EAAQ,GAAG,MAAM,IAAI,IAC7D;AAAA,gBAAmB,KAAK,UAAU,OAAO,KAAK2B,CAAU,GAAG,MAAM,IAAI;AAAA,YACjF;AAEQ,cAAInM,IAAQ4L,GAAQd,GAAW9D,IAAKY,GAAeD,GAAU8C,IAAe,MAAMzD,IAAKC,CAAoB;AAC3G,cAAIjH;AACF,mBAAOA;AAAA,QAEV;AACD,eAAO;AAAA,MACR;AAED,aAAOiK,EAA2BC,CAAQ;AAAA,IAC3C;AAED,aAAS+B,GAAOnB,GAAW;AACzB,cAAQ,OAAOA,GAAS;AAAA,QACtB,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AACH,iBAAO,CAACA;AAAA,QACV,KAAK;AACH,cAAI,MAAM,QAAQA,CAAS;AACzB,mBAAOA,EAAU,MAAMmB,EAAM;AAE/B,cAAInB,MAAc,QAAQpC,EAAeoC,CAAS;AAChD,mBAAO;AAGT,cAAI9B,IAAaF,EAAcgC,CAAS;AACxC,cAAI9B,GAAY;AACd,gBAAIqD,KAAWrD,EAAW,KAAK8B,CAAS,GACpCwB;AACJ,gBAAItD,MAAe8B,EAAU;AAC3B,qBAAO,EAAEwB,KAAOD,GAAS,KAAI,GAAI;AAC/B,oBAAI,CAACJ,GAAOK,GAAK,KAAK;AACpB,yBAAO;AAAA;AAKX,qBAAO,EAAEA,KAAOD,GAAS,KAAI,GAAI,QAAM;AACrC,oBAAIE,IAAQD,GAAK;AACjB,oBAAIC,KACE,CAACN,GAAOM,EAAM,CAAC,CAAC;AAClB,yBAAO;AAAA,cAGZ;AAAA,UAEb;AACU,mBAAO;AAGT,iBAAO;AAAA,QACT;AACE,iBAAO;AAAA,MACV;AAAA,IACF;AAED,aAASC,EAASzB,GAAUD,GAAW;AAErC,aAAIC,MAAa,WACR,KAIJD,IAKDA,EAAU,eAAe,MAAM,YAK/B,OAAO,UAAW,cAAcA,aAAqB,SAThD;AAAA,IAcV;AAGD,aAASE,GAAYF,GAAW;AAC9B,UAAIC,IAAW,OAAOD;AACtB,aAAI,MAAM,QAAQA,CAAS,IAClB,UAELA,aAAqB,SAIhB,WAEL0B,EAASzB,GAAUD,CAAS,IACvB,WAEFC;AAAA,IACR;AAID,aAASG,GAAeJ,GAAW;AACjC,UAAI,OAAOA,IAAc,OAAeA,MAAc;AACpD,eAAO,KAAKA;AAEd,UAAIC,IAAWC,GAAYF,CAAS;AACpC,UAAIC,MAAa,UAAU;AACzB,YAAID,aAAqB;AACvB,iBAAO;AACF,YAAIA,aAAqB;AAC9B,iBAAO;AAAA,MAEV;AACD,aAAOC;AAAA,IACR;AAID,aAASc,GAAyBH,GAAO;AACvC,UAAI9H,IAAOsH,GAAeQ,CAAK;AAC/B,cAAQ9H,GAAI;AAAA,QACV,KAAK;AAAA,QACL,KAAK;AACH,iBAAO,QAAQA;AAAA,QACjB,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,iBAAO,OAAOA;AAAA,QAChB;AACE,iBAAOA;AAAA,MACV;AAAA,IACF;AAGD,aAAS2H,GAAaT,GAAW;AAC/B,aAAI,CAACA,EAAU,eAAe,CAACA,EAAU,YAAY,OAC5C7B,IAEF6B,EAAU,YAAY;AAAA,IAC9B;AAED,WAAA5B,EAAe,iBAAiB1B,GAChC0B,EAAe,oBAAoB1B,EAAe,mBAClD0B,EAAe,YAAYA,GAEpBA;AAAA;;;;;;;ACvlBT,MAAIjC,IAAuBnB;AAE3B,WAAS2G,IAAgB;AAAA,EAAE;AAC3B,WAASC,IAAyB;AAAA,EAAE;AACpC,SAAAA,EAAuB,oBAAoBD,GAE3CE,KAAiB,WAAW;AAC1B,aAASC,EAAKrC,GAAOC,GAAU5C,GAAeD,GAAU8C,GAAcC,GAAQ;AAC5E,UAAIA,MAAWzD,GAIf;AAAA,YAAIc,IAAM,IAAI;AAAA,UACZ;AAAA,QAGN;AACI,cAAAA,EAAI,OAAO,uBACLA;AAAA;AAAA,IACV;AACE,IAAA6E,EAAK,aAAaA;AAClB,aAASC,IAAU;AACjB,aAAOD;AAAA,IAEX;AAEE,QAAI1D,IAAiB;AAAA,MACnB,OAAO0D;AAAA,MACP,QAAQA;AAAA,MACR,MAAMA;AAAA,MACN,MAAMA;AAAA,MACN,QAAQA;AAAA,MACR,QAAQA;AAAA,MACR,QAAQA;AAAA,MACR,QAAQA;AAAA,MAER,KAAKA;AAAA,MACL,SAASC;AAAA,MACT,SAASD;AAAA,MACT,aAAaA;AAAA,MACb,YAAYC;AAAA,MACZ,MAAMD;AAAA,MACN,UAAUC;AAAA,MACV,OAAOA;AAAA,MACP,WAAWA;AAAA,MACX,OAAOA;AAAA,MACP,OAAOA;AAAA,MAEP,gBAAgBH;AAAA,MAChB,mBAAmBD;AAAA,IACvB;AAEE,WAAAvD,EAAe,YAAYA,GAEpBA;AAAA;;ACxDT,IAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,MAAIf,KAAUrC,MAIV6C,KAAsB;AAC1BmE,EAAAA,GAAA,UAAiB/G,GAAA,EAAqCoC,GAAQ,WAAWQ,EAAmB;AAC9F;AAGEmE,EAAAA,GAAc,UAAGzE,GAAqC;;;;;;;;;;ACVxD,GAAC,WAAY;AAGZ,QAAI0E,IAAS,CAAE,EAAC;AAEhB,aAASC,IAAc;AAGtB,eAFIC,IAAU,IAELx0B,IAAI,GAAGA,IAAI,UAAU,QAAQA,KAAK;AAC1C,YAAIy0B,IAAM,UAAUz0B,CAAC;AACrB,QAAIy0B,MACHD,IAAUE,EAAYF,GAASG,EAAWF,CAAG,CAAC;AAAA,MAE/C;AAED,aAAOD;AAAA,IACP;AAED,aAASG,EAAYF,GAAK;AACzB,UAAI,OAAOA,KAAQ,YAAY,OAAOA,KAAQ;AAC7C,eAAOA;AAGR,UAAI,OAAOA,KAAQ;AAClB,eAAO;AAGR,UAAI,MAAM,QAAQA,CAAG;AACpB,eAAOF,EAAW,MAAM,MAAME,CAAG;AAGlC,UAAIA,EAAI,aAAa,OAAO,UAAU,YAAY,CAACA,EAAI,SAAS,SAAQ,EAAG,SAAS,eAAe;AAClG,eAAOA,EAAI;AAGZ,UAAID,IAAU;AAEd,eAASjG,KAAOkG;AACf,QAAIH,EAAO,KAAKG,GAAKlG,CAAG,KAAKkG,EAAIlG,CAAG,MACnCiG,IAAUE,EAAYF,GAASjG,CAAG;AAIpC,aAAOiG;AAAA,IACP;AAED,aAASE,EAAazB,GAAO2B,GAAU;AACtC,aAAKA,IAID3B,IACIA,IAAQ,MAAM2B,IAGf3B,IAAQ2B,IAPP3B;AAAA,IAQR;AAED,IAAqC4B,EAAO,WAC3CN,EAAW,UAAUA,GACrBM,EAAA,UAAiBN,KAOjB,OAAO,aAAaA;AAAA,EAEtB;;;;ACzEA,SAASO,GAAQC,GAAK;AAAE;AAA2B,SAAOD,KAAwB,OAAO,UAArB,cAA2C,OAAO,OAAO,YAA1B,WAAqC,SAAUC,GAAK;AAAE,WAAO,OAAOA;AAAA,MAAS,SAAUA,GAAK;AAAE,WAAOA,KAAqB,OAAO,UAArB,cAA+BA,EAAI,gBAAgB,UAAUA,MAAQ,OAAO,YAAY,WAAW,OAAOA;AAAA,EAAI,GAAID,GAAQC,CAAG;AAAI;AAoChV,IAAIC;AAIG,SAASC,KAAkB;AAChC,MAAIC,IAAY,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI,IAChFC,IAAY,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAIH;AACpF,SAAKG,IACED,EAAU,MAAM,GAAG,EAAE,IAAI,SAAU10B,GAAG;AAC3C,WAAO20B,EAAU30B,CAAC,KAAKA;AAAA,EAC3B,CAAG,EAAE,KAAK,GAAG,IAHY00B;AAIzB;AAKO,SAASE,GAAKL,GAAKM,GAAU;AAClC,MAAIC,IAAS,CAAA;AACb,gBAAO,KAAKP,CAAG,EAAE,QAAQ,SAAUxG,GAAK;AACtC,IAAI8G,EAAS,QAAQ9G,CAAG,MAAM,OAC5B+G,EAAO/G,CAAG,IAAIwG,EAAIxG,CAAG;AAAA,EAE3B,CAAG,GACM+G;AACT;AAKO,SAASC,GAAKR,GAAKS,GAAM;AAK9B,WAJIC,IAAW,MAAM,QAAQD,CAAI,IAAIA,IAAO,CAACA,CAAI,GAC7CE,IAASD,EAAS,QAClBlH,GACA+G,IAAS,CAAA,GACNI,IAAS;AACd,IAAAA,KAAU,GACVnH,IAAMkH,EAASC,CAAM,GACrBJ,EAAO/G,CAAG,IAAIwG,EAAIxG,CAAG;AAEvB,SAAO+G;AACT;AAyBA,IAAI1J,MAAW,OAAO,SAAW,MAAc,cAAckJ,GAAQ,MAAM,OAAO,YAAY,OAAO,WAAW,WAAY;AAAA;AACrH,SAASa,GAAW7D,GAAOC,GAAU5C,GAAe;AACzD,MAAI,EAAE2C,EAAMC,CAAQ,aAAanG;AAC/B,WAAO,IAAI,MAAM,mBAAmBmG,IAAW,oBAAoB5C,IAAgB,mEAAmE;AAE1J;AAC4ByG,EAAU,UAAU,CAACA,EAAU,QAAQA,EAAU,MAAMD,IAAYC,EAAU,MAAM;AAAA,EAC7G,SAASA,EAAU;AACrB,CAAC,CAAC,CAAC;AACI,IAAIC,KAAcD,EAAU,UAAU,CAACA,EAAU,MAAMA,EAAU,QAAQA,EAAU,MAAM;AAAA,EAC9F,UAAUA,EAAU;AAAA,EACpB,QAAQA,EAAU;AACpB,CAAC,GAAGA,EAAU,QAAQA,EAAU,UAAU,CAACA,EAAU,MAAMA,EAAU,QAAQA,EAAU,MAAM;AAAA,EAC3F,UAAUA,EAAU;AAAA,EACpB,QAAQA,EAAU;AACpB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAIKE,KAAqB;AAAA,EAC9B,MAAM;AAAA;AAAA,EAEN,UAAU;AAAA;AAAA,EAEV,OAAO;AAAA;AAAA,EAEP,UAAU;AAAA;AAAA,EAEV,WAAW;AAAA;AACb,GAKWC,KAAyB,CAAC,MAAM,gBAAgB,iBAAiB,UAAU,SAAS,QAAQ,WAAW,WAAW,cAAc,aAAa,UAAU,aAAa,UAAU,GAC9KC,KAAqB;AAAA,EAC9B,UAAU;AAAA,EACV,SAAS;AAAA,EACT,SAAS;AAAA,EACT,QAAQ;AACV,GChJIC,KAAY,CAAC,aAAa,aAAa,WAAW,UAAU;AAChE,SAASC,KAAW;AAAEA,SAAAA,KAAW,OAAO,SAAS,OAAO,OAAO,KAAM,IAAG,SAAU/H,GAAQ;AAAE,aAASnuB,IAAI,GAAGA,IAAI,UAAU,QAAQA,KAAK;AAAE,UAAIouB,IAAS,UAAUpuB,CAAC;AAAG,eAASuuB,KAAOH;AAAU,QAAI,OAAO,UAAU,eAAe,KAAKA,GAAQG,CAAG,MAAKJ,EAAOI,CAAG,IAAIH,EAAOG,CAAG;AAAA;AAAS,WAAOJ;AAAA,EAAS,GAAS+H,GAAS,MAAM,MAAM,SAAS;AAAI;AACnV,SAASC,GAAQ9K,GAAQ+K,GAAgB;AAAE,MAAIZ,IAAO,OAAO,KAAKnK,CAAM;AAAG,MAAI,OAAO,uBAAuB;AAAE,QAAIiD,IAAU,OAAO,sBAAsBjD,CAAM;AAAG,IAAA+K,MAAmB9H,IAAUA,EAAQ,OAAO,SAAU+H,GAAK;AAAE,aAAO,OAAO,yBAAyBhL,GAAQgL,CAAG,EAAE;AAAA,IAAW,CAAE,IAAIb,EAAK,KAAK,MAAMA,GAAMlH,CAAO;AAAA,EAAE;AAAG,SAAOkH;AAAO;AACrV,SAASc,GAAcnI,GAAQ;AAAE,WAASnuB,IAAI,GAAGA,IAAI,UAAU,QAAQA,KAAK;AAAE,QAAIouB,IAAiB,UAAUpuB,CAAC,KAAnB,OAAuB,UAAUA,CAAC,IAAI,CAAE;AAAE,IAAAA,IAAI,IAAIm2B,GAAQ,OAAO/H,CAAM,GAAG,EAAE,EAAE,QAAQ,SAAUG,GAAK;AAAEgI,MAAAA,GAAgBpI,GAAQI,GAAKH,EAAOG,CAAG,CAAC;AAAA,IAAI,CAAA,IAAI,OAAO,4BAA4B,OAAO,iBAAiBJ,GAAQ,OAAO,0BAA0BC,CAAM,CAAC,IAAI+H,GAAQ,OAAO/H,CAAM,CAAC,EAAE,QAAQ,SAAUG,GAAK;AAAE,aAAO,eAAeJ,GAAQI,GAAK,OAAO,yBAAyBH,GAAQG,CAAG,CAAC;AAAA,IAAE,CAAE;AAAA,EAAI;AAAC,SAAOJ;AAAS;AAC1f,SAASoI,GAAgBxB,GAAKxG,GAAK0E,GAAO;AAAE,SAAI1E,KAAOwG,IAAO,OAAO,eAAeA,GAAKxG,GAAK,EAAE,OAAO0E,GAAO,YAAY,IAAM,cAAc,IAAM,UAAU,GAAM,CAAA,IAAY8B,EAAIxG,CAAG,IAAI0E,GAAgB8B;AAAM;AACjN,SAASyB,GAAyBpI,GAAQqI,GAAU;AAAE,MAAIrI,KAAU;AAAM,WAAO;AAAI,MAAID,IAASuI,GAA8BtI,GAAQqI,CAAQ,GAAOlI,GAAKvuB;AAAG,MAAI,OAAO,uBAAuB;AAAE,QAAI22B,IAAmB,OAAO,sBAAsBvI,CAAM;AAAG,SAAKpuB,IAAI,GAAGA,IAAI22B,EAAiB,QAAQ32B;AAAkC,MAA3BuuB,IAAMoI,EAAiB32B,CAAC,GAAO,EAAAy2B,EAAS,QAAQlI,CAAG,KAAK,MAAkB,OAAO,UAAU,qBAAqB,KAAKH,GAAQG,CAAG,MAAaJ,EAAOI,CAAG,IAAIH,EAAOG,CAAG;AAAA,EAAI;AAAG,SAAOJ;AAAS;AAC5e,SAASuI,GAA8BtI,GAAQqI,GAAU;AAAE,MAAIrI,KAAU;AAAM,WAAO,CAAE;AAAE,MAAID,IAAS,CAAE,GAAMyI,IAAa,OAAO,KAAKxI,CAAM,GAAOG,GAAK;AAAG,OAAK,IAAI,GAAG,IAAIqI,EAAW,QAAQ;AAA4B,IAArBrI,IAAMqI,EAAW,CAAC,GAAO,EAAAH,EAAS,QAAQlI,CAAG,KAAK,OAAaJ,EAAOI,CAAG,IAAIH,EAAOG,CAAG;AAAK,SAAOJ;AAAS;AAKnT,IAAI0I,KAAY;AAAA;AAAA,EAEd,QAAQjB,EAAU;AAAA;AAAA,EAElB,cAAcA,EAAU;AAAA;AAAA,EAExB,SAASA,EAAU;AAAA;AAAA,EAEnB,SAASA,EAAU,MAAM,CAAC,OAAO,CAAC;AAAA,EAClC,WAAWA,EAAU;AAAA,EACrB,WAAWA,EAAU;AAAA,EACrB,UAAUA,EAAU,UAAU,CAACA,EAAU,QAAQA,EAAU,QAAQA,EAAU,IAAI,CAAC;AACpF;AACA,SAASkB,GAAYhF,GAAO;AACvB,MAACoD,IAAYpD,EAAM;AACR,EAAAA,EAAM;AACtB,MAAIiF,IAAUjF,EAAM,SAChBkF,IAAWlF,EAAM,UACjBmF,IAAaT,GAAyB1E,GAAOmE,EAAS,GACpDzB,IAAUS,GAAgBV,GAAWW,GAAW,aAAa6B,KAAW,aAAa,OAAOA,CAAO,CAAC,CAAC;AACzG,SAAoBG,gBAAAA,GAAM,cAAc,UAAUhB,GAAS;AAAA,IACzD,KAAKc;AAAA,IACL,MAAM;AAAA,IACN,WAAWxC;AAAA,EACZ,GAAE8B,GAAc;AAAA,IACf,cAAc;AAAA,EAClB,GAAKW,CAAU,CAAC,CAAC;AACjB;AACAH,GAAY,YAAYD;ACvCxB,IAAIZ,KAAY,CAAC,UAAU,cAAc,SAAS,aAAa,SAAS,aAAa,SAAS,WAAW,QAAQ,OAAO,UAAU;AAClI,SAASC,KAAW;AAAEA,SAAAA,KAAW,OAAO,SAAS,OAAO,OAAO,KAAM,IAAG,SAAU/H,GAAQ;AAAE,aAASnuB,IAAI,GAAGA,IAAI,UAAU,QAAQA,KAAK;AAAE,UAAIouB,IAAS,UAAUpuB,CAAC;AAAG,eAASuuB,KAAOH;AAAU,QAAI,OAAO,UAAU,eAAe,KAAKA,GAAQG,CAAG,MAAKJ,EAAOI,CAAG,IAAIH,EAAOG,CAAG;AAAA;AAAS,WAAOJ;AAAA,EAAS,GAAS+H,GAAS,MAAM,MAAM,SAAS;AAAI;AACnV,SAASM,GAAyBpI,GAAQqI,GAAU;AAAE,MAAIrI,KAAU;AAAM,WAAO;AAAI,MAAID,IAASuI,GAA8BtI,GAAQqI,CAAQ,GAAOlI,GAAKvuB;AAAG,MAAI,OAAO,uBAAuB;AAAE,QAAI22B,IAAmB,OAAO,sBAAsBvI,CAAM;AAAG,SAAKpuB,IAAI,GAAGA,IAAI22B,EAAiB,QAAQ32B;AAAkC,MAA3BuuB,IAAMoI,EAAiB32B,CAAC,GAAO,EAAAy2B,EAAS,QAAQlI,CAAG,KAAK,MAAkB,OAAO,UAAU,qBAAqB,KAAKH,GAAQG,CAAG,MAAaJ,EAAOI,CAAG,IAAIH,EAAOG,CAAG;AAAA,EAAI;AAAG,SAAOJ;AAAS;AAC5e,SAASuI,GAA8BtI,GAAQqI,GAAU;AAAE,MAAIrI,KAAU;AAAM,WAAO,CAAE;AAAE,MAAID,IAAS,CAAE,GAAMyI,IAAa,OAAO,KAAKxI,CAAM,GAAOG,GAAK;AAAG,OAAK,IAAI,GAAG,IAAIqI,EAAW,QAAQ;AAA4B,IAArBrI,IAAMqI,EAAW,CAAC,GAAO,EAAAH,EAAS,QAAQlI,CAAG,KAAK,OAAaJ,EAAOI,CAAG,IAAIH,EAAOG,CAAG;AAAK,SAAOJ;AAAS;AAMnT,IAAI0I,KAAY;AAAA;AAAA,EAEd,QAAQjB,EAAU;AAAA;AAAA,EAElB,cAAcA,EAAU;AAAA,EACxB,OAAOA,EAAU;AAAA;AAAA,EAEjB,UAAUA,EAAU;AAAA;AAAA,EAEpB,WAAWA,EAAU;AAAA;AAAA,EAErB,WAAWA,EAAU;AAAA;AAAA,EAErB,OAAOA,EAAU;AAAA;AAAA,EAEjB,OAAOA,EAAU;AAAA;AAAA,EAEjB,UAAUA,EAAU;AAAA,EACpB,UAAUA,EAAU,UAAU,CAACA,EAAU,QAAQA,EAAU,MAAMA,EAAU,MAAM,CAAC;AAAA;AAAA,EAElF,SAASA,EAAU;AAAA;AAAA,EAEnB,SAASA,EAAU;AAAA;AAAA,EAEnB,MAAMA,EAAU;AAAA;AAAA,EAEhB,KAAKC;AACP;AACA,SAASsB,GAAOrF,GAAO;AACrB,MAAIsF,IAAUC,GAAY,SAAU13B,GAAG;AACrC,QAAImyB,EAAM,UAAU;AAClB,MAAAnyB,EAAE,eAAc;AAChB;AAAA,IACD;AACD,QAAImyB,EAAM;AACR,aAAOA,EAAM,QAAQnyB,CAAC;AAAA,EAEzB,GAAE,CAACmyB,EAAM,SAASA,EAAM,QAAQ,CAAC,GAC9BwF,IAASxF,EAAM,QACjByF,IAAYzF,EAAM,YAAY,GAC9B0F,IAAQ1F,EAAM,OACdoD,IAAYpD,EAAM,WAClB2F,IAAQ3F,EAAM,OACdqD,IAAYrD,EAAM,WAClB4F,IAAe5F,EAAM,OACrB6F,IAAQD,MAAiB,SAAS,cAAcA,GAChDE,IAAU9F,EAAM,SAChB+F,IAAO/F,EAAM,MACbgG,IAAahG,EAAM,KACnBiG,IAAMD,MAAe,SAAS,WAAWA,GACzCd,IAAWlF,EAAM,UACjBmF,IAAaT,GAAyB1E,GAAOmE,EAAS;AACxD,MAAIwB;AACF,WAAoBP,gBAAAA,GAAM,cAAcJ,IAAaG,CAAU;AAEjE,MAAIe,IAAkB,MAAM,OAAOJ,IAAU,aAAa,IAAI,GAAG,EAAE,OAAOD,CAAK,GAC3EnD,IAAUS,GAAgBV,GAAWW,GAAW,OAAO8C,GAAiBH,IAAO,OAAO,OAAOA,CAAI,IAAI,IAAOL,IAAQ,kBAAkB,IAAO;AAAA,IAC/I,QAAQF;AAAA,IACR,UAAUxF,EAAM;AAAA,EACpB,CAAG,GAAGqD,CAAS;AACb,SAAI8B,EAAW,QAAQc,MAAQ,aAC7BA,IAAM,MAEYb,gBAAAA,GAAM,cAAca,GAAK7B,GAAS;AAAA,IACpD,MAAM6B,MAAQ,YAAYd,EAAW,UAAU,WAAW;AAAA,EAC3D,GAAEA,GAAY;AAAA,IACb,WAAWzC;AAAA,IACX,KAAKwC;AAAA,IACL,SAASI;AAAA,IACT,cAAcG;AAAA,EACf,CAAA,CAAC;AACJ;AACAJ,GAAO,YAAYN;ACzCZ,IAAIoB,KAAc,SAAqBC,GAAS;AACrD,SAAOA,EAAQ,OAAO,SAAUC,GAAKC,GAAM;AACzC,QAAI7J,IAAM6J,EAAK,CAAC,GACZnF,IAAQmF,EAAK,CAAC;AAClB,WAAAD,EAAI5J,CAAG,IAAI0E,GACJkF;AAAA,EACR,GAAE,CAAE,CAAA;AACP,GAKWE,KAA4B,OAAO,SAAW,OAAe,OAAO,YAAY,OAAO,SAAS,gBAAgBnB,EAAM,kBAAkBA,EAAM,WCpD9IoB,KAAM,OACNC,KAAS,UACTC,KAAQ,SACRC,KAAO,QACPC,KAAO,QACPC,KAAiB,CAACL,IAAKC,IAAQC,IAAOC,EAAI,GAC1CG,KAAQ,SACRC,KAAM,OACNC,KAAkB,mBAClBC,KAAW,YACXC,KAAS,UACTC,KAAY,aACZC,KAAmC,gBAAAP,GAAe,OAAO,SAAUR,GAAKgB,GAAW;AAC5F,SAAOhB,EAAI,OAAO,CAACgB,IAAY,MAAMP,IAAOO,IAAY,MAAMN,EAAG,CAAC;AACpE,GAAG,CAAE,CAAA,GACMO,KAA0B,iBAAA,EAAG,OAAOT,IAAgB,CAACD,EAAI,CAAC,EAAE,OAAO,SAAUP,GAAKgB,GAAW;AACtG,SAAOhB,EAAI,OAAO,CAACgB,GAAWA,IAAY,MAAMP,IAAOO,IAAY,MAAMN,EAAG,CAAC;AAC/E,GAAG,CAAE,CAAA,GAEMQ,KAAa,cACbC,KAAO,QACPC,KAAY,aAEZC,KAAa,cACbC,KAAO,QACPC,KAAY,aAEZC,KAAc,eACdC,KAAQ,SACRC,KAAa,cACbC,KAAiB,CAACT,IAAYC,IAAMC,IAAWC,IAAYC,IAAMC,IAAWC,IAAaC,IAAOC,EAAU;AC9BtG,SAASE,GAAYC,GAAS;AAC3C,SAAOA,KAAWA,EAAQ,YAAY,IAAI,YAAa,IAAG;AAC5D;ACFe,SAASC,GAAUC,GAAM;AACtC,MAAIA,KAAQ;AACV,WAAO;AAGT,MAAIA,EAAK,SAAU,MAAK,mBAAmB;AACzC,QAAIC,IAAgBD,EAAK;AACzB,WAAOC,KAAgBA,EAAc,eAAe;AAAA,EACrD;AAED,SAAOD;AACT;ACTA,SAASxN,GAAUwN,GAAM;AACvB,MAAIE,IAAaH,GAAUC,CAAI,EAAE;AACjC,SAAOA,aAAgBE,KAAcF,aAAgB;AACvD;AAEA,SAASG,GAAcH,GAAM;AAC3B,MAAIE,IAAaH,GAAUC,CAAI,EAAE;AACjC,SAAOA,aAAgBE,KAAcF,aAAgB;AACvD;AAEA,SAASI,GAAaJ,GAAM;AAE1B,MAAI,OAAO,aAAe;AACxB,WAAO;AAGT,MAAIE,IAAaH,GAAUC,CAAI,EAAE;AACjC,SAAOA,aAAgBE,KAAcF,aAAgB;AACvD;AChBA,SAASK,GAAYnC,GAAM;AACzB,MAAIoC,IAAQpC,EAAK;AACjB,SAAO,KAAKoC,EAAM,QAAQ,EAAE,QAAQ,SAAUC,GAAM;AAClD,QAAIC,IAAQF,EAAM,OAAOC,CAAI,KAAK,CAAA,GAC9BxD,IAAauD,EAAM,WAAWC,CAAI,KAAK,CAAA,GACvCT,IAAUQ,EAAM,SAASC,CAAI;AAEjC,IAAI,CAACJ,GAAcL,CAAO,KAAK,CAACD,GAAYC,CAAO,MAOnD,OAAO,OAAOA,EAAQ,OAAOU,CAAK,GAClC,OAAO,KAAKzD,CAAU,EAAE,QAAQ,SAAUwD,GAAM;AAC9C,UAAIxH,IAAQgE,EAAWwD,CAAI;AAE3B,MAAIxH,MAAU,KACZ+G,EAAQ,gBAAgBS,CAAI,IAE5BT,EAAQ,aAAaS,GAAMxH,MAAU,KAAO,KAAKA,CAAK;AAAA,IAE9D,CAAK;AAAA,EACL,CAAG;AACH;AAEA,SAAS0H,GAAOC,GAAO;AACrB,MAAIJ,IAAQI,EAAM,OACdC,IAAgB;AAAA,IAClB,QAAQ;AAAA,MACN,UAAUL,EAAM,QAAQ;AAAA,MACxB,MAAM;AAAA,MACN,KAAK;AAAA,MACL,QAAQ;AAAA,IACT;AAAA,IACD,OAAO;AAAA,MACL,UAAU;AAAA,IACX;AAAA,IACD,WAAW,CAAE;AAAA,EACjB;AACE,gBAAO,OAAOA,EAAM,SAAS,OAAO,OAAOK,EAAc,MAAM,GAC/DL,EAAM,SAASK,GAEXL,EAAM,SAAS,SACjB,OAAO,OAAOA,EAAM,SAAS,MAAM,OAAOK,EAAc,KAAK,GAGxD,WAAY;AACjB,WAAO,KAAKL,EAAM,QAAQ,EAAE,QAAQ,SAAUC,GAAM;AAClD,UAAIT,IAAUQ,EAAM,SAASC,CAAI,GAC7BxD,IAAauD,EAAM,WAAWC,CAAI,KAAK,CAAA,GACvCK,IAAkB,OAAO,KAAKN,EAAM,OAAO,eAAeC,CAAI,IAAID,EAAM,OAAOC,CAAI,IAAII,EAAcJ,CAAI,CAAC,GAE1GC,IAAQI,EAAgB,OAAO,SAAUJ,GAAOK,GAAU;AAC5D,eAAAL,EAAMK,CAAQ,IAAI,IACXL;AAAA,MACR,GAAE,CAAE,CAAA;AAEL,MAAI,CAACL,GAAcL,CAAO,KAAK,CAACD,GAAYC,CAAO,MAInD,OAAO,OAAOA,EAAQ,OAAOU,CAAK,GAClC,OAAO,KAAKzD,CAAU,EAAE,QAAQ,SAAU+D,GAAW;AACnD,QAAAhB,EAAQ,gBAAgBgB,CAAS;AAAA,MACzC,CAAO;AAAA,IACP,CAAK;AAAA,EACL;AACA;AAGA,MAAeC,KAAA;AAAA,EACb,MAAM;AAAA,EACN,SAAS;AAAA,EACT,OAAO;AAAA,EACP,IAAIV;AAAA,EACJ,QAAQI;AAAAA,EACR,UAAU,CAAC,eAAe;AAC5B;AClFe,SAASO,GAAiB/B,GAAW;AAClD,SAAOA,EAAU,MAAM,GAAG,EAAE,CAAC;AAC/B;ACHO,IAAIgC,KAAM,KAAK,KACXC,KAAM,KAAK,KACXC,KAAQ,KAAK;ACFT,SAASC,KAAc;AACpC,MAAIC,IAAS,UAAU;AAEvB,SAAIA,KAAU,QAAQA,EAAO,UAAU,MAAM,QAAQA,EAAO,MAAM,IACzDA,EAAO,OAAO,IAAI,SAAUnU,GAAM;AACvC,WAAOA,EAAK,QAAQ,MAAMA,EAAK;AAAA,EACrC,CAAK,EAAE,KAAK,GAAG,IAGN,UAAU;AACnB;ACTe,SAASoU,KAAmB;AACzC,SAAO,CAAC,iCAAiC,KAAKF,GAAa,CAAA;AAC7D;ACCe,SAASG,GAAsBzB,GAAS0B,GAAcC,GAAiB;AACpF,EAAID,MAAiB,WACnBA,IAAe,KAGbC,MAAoB,WACtBA,IAAkB;AAGpB,MAAIC,IAAa5B,EAAQ,yBACrB6B,IAAS,GACTC,IAAS;AAEb,EAAIJ,KAAgBrB,GAAcL,CAAO,MACvC6B,IAAS7B,EAAQ,cAAc,KAAIqB,GAAMO,EAAW,KAAK,IAAI5B,EAAQ,eAAe,GACpF8B,IAAS9B,EAAQ,eAAe,KAAIqB,GAAMO,EAAW,MAAM,IAAI5B,EAAQ,gBAAgB;AAGzF,MAAI5B,IAAO1L,GAAUsN,CAAO,IAAIC,GAAUD,CAAO,IAAI,QACjD+B,IAAiB3D,EAAK,gBAEtB4D,IAAmB,CAACR,GAAkB,KAAIG,GAC1C76B,KAAK86B,EAAW,QAAQI,KAAoBD,IAAiBA,EAAe,aAAa,MAAMF,GAC/Fn8B,KAAKk8B,EAAW,OAAOI,KAAoBD,IAAiBA,EAAe,YAAY,MAAMD,GAC7FG,IAAQL,EAAW,QAAQC,GAC3BK,IAASN,EAAW,SAASE;AACjC,SAAO;AAAA,IACL,OAAOG;AAAA,IACP,QAAQC;AAAA,IACR,KAAKx8B;AAAA,IACL,OAAOoB,IAAIm7B;AAAA,IACX,QAAQv8B,IAAIw8B;AAAA,IACZ,MAAMp7B;AAAA,IACN,GAAGA;AAAA,IACH,GAAGpB;AAAA,EACP;AACA;ACrCe,SAASy8B,GAAcnC,GAAS;AAC7C,MAAI4B,IAAaH,GAAsBzB,CAAO,GAG1CiC,IAAQjC,EAAQ,aAChBkC,IAASlC,EAAQ;AAErB,SAAI,KAAK,IAAI4B,EAAW,QAAQK,CAAK,KAAK,MACxCA,IAAQL,EAAW,QAGjB,KAAK,IAAIA,EAAW,SAASM,CAAM,KAAK,MAC1CA,IAASN,EAAW,SAGf;AAAA,IACL,GAAG5B,EAAQ;AAAA,IACX,GAAGA,EAAQ;AAAA,IACX,OAAOiC;AAAA,IACP,QAAQC;AAAA,EACZ;AACA;ACvBe,SAASE,GAASC,GAAQC,GAAO;AAC9C,MAAIC,IAAWD,EAAM,eAAeA,EAAM,YAAW;AAErD,MAAID,EAAO,SAASC,CAAK;AACvB,WAAO;AAEJ,MAAIC,KAAYjC,GAAaiC,CAAQ,GAAG;AACzC,QAAIC,IAAOF;AAEX,OAAG;AACD,UAAIE,KAAQH,EAAO,WAAWG,CAAI;AAChC,eAAO;AAIT,MAAAA,IAAOA,EAAK,cAAcA,EAAK;AAAA,IAChC,SAAQA;AAAA,EACV;AAGH,SAAO;AACT;ACrBe,SAASC,GAAiBzC,GAAS;AAChD,SAAOC,GAAUD,CAAO,EAAE,iBAAiBA,CAAO;AACpD;ACFe,SAAS0C,GAAe1C,GAAS;AAC9C,SAAO,CAAC,SAAS,MAAM,IAAI,EAAE,QAAQD,GAAYC,CAAO,CAAC,KAAK;AAChE;ACFe,SAAS2C,GAAmB3C,GAAS;AAElD,WAAStN,GAAUsN,CAAO,IAAIA,EAAQ;AAAA;AAAA,IACtCA,EAAQ;AAAA,QAAa,OAAO,UAAU;AACxC;ACFe,SAAS4C,GAAc5C,GAAS;AAC7C,SAAID,GAAYC,CAAO,MAAM,SACpBA;AAAA;AAAA;AAAA;AAAA,IAMPA,EAAQ;AAAA,IACRA,EAAQ;AAAA,KACRM,GAAaN,CAAO,IAAIA,EAAQ,OAAO;AAAA;AAAA,IAEvC2C,GAAmB3C,CAAO;AAAA;AAG9B;ACVA,SAAS6C,GAAoB7C,GAAS;AACpC,SAAI,CAACK,GAAcL,CAAO;AAAA,EAC1ByC,GAAiBzC,CAAO,EAAE,aAAa,UAC9B,OAGFA,EAAQ;AACjB;AAIA,SAAS8C,GAAmB9C,GAAS;AACnC,MAAI+C,IAAY,WAAW,KAAKzB,GAAa,CAAA,GACzC0B,IAAO,WAAW,KAAK1B,GAAa,CAAA;AAExC,MAAI0B,KAAQ3C,GAAcL,CAAO,GAAG;AAElC,QAAIiD,IAAaR,GAAiBzC,CAAO;AAEzC,QAAIiD,EAAW,aAAa;AAC1B,aAAO;AAAA,EAEV;AAED,MAAIC,IAAcN,GAAc5C,CAAO;AAMvC,OAJIM,GAAa4C,CAAW,MAC1BA,IAAcA,EAAY,OAGrB7C,GAAc6C,CAAW,KAAK,CAAC,QAAQ,MAAM,EAAE,QAAQnD,GAAYmD,CAAW,CAAC,IAAI,KAAG;AAC3F,QAAIC,IAAMV,GAAiBS,CAAW;AAItC,QAAIC,EAAI,cAAc,UAAUA,EAAI,gBAAgB,UAAUA,EAAI,YAAY,WAAW,CAAC,aAAa,aAAa,EAAE,QAAQA,EAAI,UAAU,MAAM,MAAMJ,KAAaI,EAAI,eAAe,YAAYJ,KAAaI,EAAI,UAAUA,EAAI,WAAW;AAC5O,aAAOD;AAEP,IAAAA,IAAcA,EAAY;AAAA,EAE7B;AAED,SAAO;AACT;AAIe,SAASE,GAAgBpD,GAAS;AAI/C,WAHIqD,IAASpD,GAAUD,CAAO,GAC1BsD,IAAeT,GAAoB7C,CAAO,GAEvCsD,KAAgBZ,GAAeY,CAAY,KAAKb,GAAiBa,CAAY,EAAE,aAAa;AACjG,IAAAA,IAAeT,GAAoBS,CAAY;AAGjD,SAAIA,MAAiBvD,GAAYuD,CAAY,MAAM,UAAUvD,GAAYuD,CAAY,MAAM,UAAUb,GAAiBa,CAAY,EAAE,aAAa,YACxID,IAGFC,KAAgBR,GAAmB9C,CAAO,KAAKqD;AACxD;ACpEe,SAASE,GAAyBpE,GAAW;AAC1D,SAAO,CAAC,OAAO,QAAQ,EAAE,QAAQA,CAAS,KAAK,IAAI,MAAM;AAC3D;ACDO,SAASqE,GAAOpC,GAAKnI,GAAOkI,GAAK;AACtC,SAAOsC,GAAQrC,GAAKsC,GAAQzK,GAAOkI,CAAG,CAAC;AACzC;AACO,SAASwC,GAAevC,GAAKnI,GAAOkI,GAAK;AAC9C,MAAIv5B,IAAI47B,GAAOpC,GAAKnI,GAAOkI,CAAG;AAC9B,SAAOv5B,IAAIu5B,IAAMA,IAAMv5B;AACzB;ACPe,SAASg8B,KAAqB;AAC3C,SAAO;AAAA,IACL,KAAK;AAAA,IACL,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,MAAM;AAAA,EACV;AACA;ACNe,SAASC,GAAmBC,GAAe;AACxD,SAAO,OAAO,OAAO,CAAA,GAAIF,GAAoB,GAAEE,CAAa;AAC9D;ACHe,SAASC,GAAgB9K,GAAOuC,GAAM;AACnD,SAAOA,EAAK,OAAO,SAAUwI,GAASzP,GAAK;AACzC,WAAAyP,EAAQzP,CAAG,IAAI0E,GACR+K;AAAA,EACR,GAAE,CAAE,CAAA;AACP;ACKA,IAAIC,KAAkB,SAAyBC,GAAS1D,GAAO;AAC7D,SAAA0D,IAAU,OAAOA,KAAY,aAAaA,EAAQ,OAAO,OAAO,CAAA,GAAI1D,EAAM,OAAO;AAAA,IAC/E,WAAWA,EAAM;AAAA,EACrB,CAAG,CAAC,IAAI0D,GACCL,GAAmB,OAAOK,KAAY,WAAWA,IAAUH,GAAgBG,GAASvF,EAAc,CAAC;AAC5G;AAEA,SAASwF,GAAM/F,GAAM;AACnB,MAAIgG,GAEA5D,IAAQpC,EAAK,OACbqC,IAAOrC,EAAK,MACZiG,IAAUjG,EAAK,SACfkG,IAAe9D,EAAM,SAAS,OAC9B+D,IAAgB/D,EAAM,cAAc,eACpCgE,IAAgBtD,GAAiBV,EAAM,SAAS,GAChDiE,IAAOlB,GAAyBiB,CAAa,GAC7CE,IAAa,CAACjG,IAAMD,EAAK,EAAE,QAAQgG,CAAa,KAAK,GACrDG,IAAMD,IAAa,WAAW;AAElC,MAAI,GAACJ,KAAgB,CAACC,IAItB;AAAA,QAAIT,IAAgBG,GAAgBI,EAAQ,SAAS7D,CAAK,GACtDoE,IAAYzC,GAAcmC,CAAY,GACtCO,IAAUJ,MAAS,MAAMnG,KAAMG,IAC/BqG,IAAUL,MAAS,MAAMlG,KAASC,IAClCuG,IAAUvE,EAAM,MAAM,UAAUmE,CAAG,IAAInE,EAAM,MAAM,UAAUiE,CAAI,IAAIF,EAAcE,CAAI,IAAIjE,EAAM,MAAM,OAAOmE,CAAG,GACjHK,IAAYT,EAAcE,CAAI,IAAIjE,EAAM,MAAM,UAAUiE,CAAI,GAC5DQ,IAAoB7B,GAAgBkB,CAAY,GAChDY,IAAaD,IAAoBR,MAAS,MAAMQ,EAAkB,gBAAgB,IAAIA,EAAkB,eAAe,IAAI,GAC3HE,IAAoBJ,IAAU,IAAIC,IAAY,GAG9C5D,IAAM0C,EAAce,CAAO,GAC3B1D,IAAM+D,IAAaN,EAAUD,CAAG,IAAIb,EAAcgB,CAAO,GACzDM,IAASF,IAAa,IAAIN,EAAUD,CAAG,IAAI,IAAIQ,GAC/CE,IAAS7B,GAAOpC,GAAKgE,GAAQjE,CAAG,GAEhCmE,IAAWb;AACf,IAAAjE,EAAM,cAAcC,CAAI,KAAK2D,IAAwB,CAAA,GAAIA,EAAsBkB,CAAQ,IAAID,GAAQjB,EAAsB,eAAeiB,IAASD,GAAQhB;AAAA;AAC3J;AAEA,SAASzD,GAAOC,GAAO;AACrB,MAAIJ,IAAQI,EAAM,OACdyD,IAAUzD,EAAM,SAChB2E,IAAmBlB,EAAQ,SAC3BC,IAAeiB,MAAqB,SAAS,wBAAwBA;AAEzE,EAAIjB,KAAgB,SAKhB,OAAOA,KAAiB,aAC1BA,IAAe9D,EAAM,SAAS,OAAO,cAAc8D,CAAY,GAE3D,CAACA,MAKFlC,GAAS5B,EAAM,SAAS,QAAQ8D,CAAY,MAIjD9D,EAAM,SAAS,QAAQ8D;AACzB;AAGA,MAAekB,KAAA;AAAA,EACb,MAAM;AAAA,EACN,SAAS;AAAA,EACT,OAAO;AAAA,EACP,IAAIrB;AAAA,EACJ,QAAQxD;AAAAA,EACR,UAAU,CAAC,eAAe;AAAA,EAC1B,kBAAkB,CAAC,iBAAiB;AACtC;ACzFe,SAAS8E,GAAatG,GAAW;AAC9C,SAAOA,EAAU,MAAM,GAAG,EAAE,CAAC;AAC/B;ACOA,IAAIuG,KAAa;AAAA,EACf,KAAK;AAAA,EACL,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,MAAM;AACR;AAIA,SAASC,GAAkBvH,GAAMwH,GAAK;AACpC,MAAI9+B,IAAIs3B,EAAK,GACT14B,IAAI04B,EAAK,GACTyH,IAAMD,EAAI,oBAAoB;AAClC,SAAO;AAAA,IACL,GAAGvE,GAAMv6B,IAAI++B,CAAG,IAAIA,KAAO;AAAA,IAC3B,GAAGxE,GAAM37B,IAAImgC,CAAG,IAAIA,KAAO;AAAA,EAC/B;AACA;AAEO,SAASC,GAAYlF,GAAO;AACjC,MAAImF,GAEA/G,IAAS4B,EAAM,QACfoF,IAAapF,EAAM,YACnBzB,IAAYyB,EAAM,WAClBqF,IAAYrF,EAAM,WAClBsF,IAAUtF,EAAM,SAChBuF,IAAWvF,EAAM,UACjBwF,IAAkBxF,EAAM,iBACxByF,IAAWzF,EAAM,UACjB0F,IAAe1F,EAAM,cACrB2F,IAAU3F,EAAM,SAChB4F,IAAaN,EAAQ,GACrBp/B,IAAI0/B,MAAe,SAAS,IAAIA,GAChCC,IAAaP,EAAQ,GACrBxgC,IAAI+gC,MAAe,SAAS,IAAIA,GAEhCC,IAAQ,OAAOJ,KAAiB,aAAaA,EAAa;AAAA,IAC5D,GAAGx/B;AAAA,IACH,GAAGpB;AAAA,EACP,CAAG,IAAI;AAAA,IACH,GAAGoB;AAAA,IACH,GAAGpB;AAAA,EACP;AAEE,EAAAoB,IAAI4/B,EAAM,GACVhhC,IAAIghC,EAAM;AACV,MAAIC,IAAOT,EAAQ,eAAe,GAAG,GACjCU,IAAOV,EAAQ,eAAe,GAAG,GACjCW,IAAQpI,IACRqI,IAAQxI,IACRsH,IAAM;AAEV,MAAIS,GAAU;AACZ,QAAI/C,IAAeF,GAAgBpE,CAAM,GACrC+H,IAAa,gBACbC,IAAY;AAchB,QAZI1D,MAAiBrD,GAAUjB,CAAM,MACnCsE,IAAeX,GAAmB3D,CAAM,GAEpCyD,GAAiBa,CAAY,EAAE,aAAa,YAAY6C,MAAa,eACvEY,IAAa,gBACbC,IAAY,iBAKhB1D,IAAeA,GAEXnE,MAAcb,OAAQa,MAAcV,MAAQU,MAAcX,OAAUyH,MAAcpH,IAAK;AACzF,MAAAiI,IAAQvI;AACR,UAAI0I,IAAUV,KAAWjD,MAAiBsC,KAAOA,EAAI,iBAAiBA,EAAI,eAAe;AAAA;AAAA,QACzFtC,EAAayD,CAAU;AAAA;AACvB,MAAArhC,KAAKuhC,IAAUjB,EAAW,QAC1BtgC,KAAK0gC,IAAkB,IAAI;AAAA,IAC5B;AAED,QAAIjH,MAAcV,OAASU,MAAcb,MAAOa,MAAcZ,OAAW0H,MAAcpH,IAAK;AAC1F,MAAAgI,IAAQrI;AACR,UAAI0I,IAAUX,KAAWjD,MAAiBsC,KAAOA,EAAI,iBAAiBA,EAAI,eAAe;AAAA;AAAA,QACzFtC,EAAa0D,CAAS;AAAA;AACtB,MAAAlgC,KAAKogC,IAAUlB,EAAW,OAC1Bl/B,KAAKs/B,IAAkB,IAAI;AAAA,IAC5B;AAAA,EACF;AAED,MAAIe,IAAe,OAAO,OAAO;AAAA,IAC/B,UAAUhB;AAAA,EACd,GAAKE,KAAYX,EAAU,GAErB0B,IAAQd,MAAiB,KAAOX,GAAkB;AAAA,IACpD,GAAG7+B;AAAA,IACH,GAAGpB;AAAA,EACP,GAAKu6B,GAAUjB,CAAM,CAAC,IAAI;AAAA,IACtB,GAAGl4B;AAAA,IACH,GAAGpB;AAAA,EACP;AAKE,MAHAoB,IAAIsgC,EAAM,GACV1hC,IAAI0hC,EAAM,GAENhB,GAAiB;AACnB,QAAIiB;AAEJ,WAAO,OAAO,OAAO,CAAE,GAAEF,IAAeE,KAAiB,CAAE,GAAEA,GAAeP,CAAK,IAAIF,IAAO,MAAM,IAAIS,GAAeR,CAAK,IAAIF,IAAO,MAAM,IAAIU,GAAe,aAAazB,EAAI,oBAAoB,MAAM,IAAI,eAAe9+B,IAAI,SAASpB,IAAI,QAAQ,iBAAiBoB,IAAI,SAASpB,IAAI,UAAU2hC;EAClS;AAED,SAAO,OAAO,OAAO,CAAE,GAAEF,IAAepB,IAAkB,CAAE,GAAEA,EAAgBe,CAAK,IAAIF,IAAOlhC,IAAI,OAAO,IAAIqgC,EAAgBc,CAAK,IAAIF,IAAO7/B,IAAI,OAAO,IAAIi/B,EAAgB,YAAY,IAAIA,EAAe;AAC7M;AAEA,SAASuB,GAAcC,GAAO;AAC5B,MAAI/G,IAAQ+G,EAAM,OACdlD,IAAUkD,EAAM,SAChBC,IAAwBnD,EAAQ,iBAChC+B,IAAkBoB,MAA0B,SAAS,KAAOA,GAC5DC,IAAoBpD,EAAQ,UAC5BgC,IAAWoB,MAAsB,SAAS,KAAOA,GACjDC,IAAwBrD,EAAQ,cAChCiC,IAAeoB,MAA0B,SAAS,KAAOA,GACzDP,IAAe;AAAA,IACjB,WAAWjG,GAAiBV,EAAM,SAAS;AAAA,IAC3C,WAAWiF,GAAajF,EAAM,SAAS;AAAA,IACvC,QAAQA,EAAM,SAAS;AAAA,IACvB,YAAYA,EAAM,MAAM;AAAA,IACxB,iBAAiB4F;AAAA,IACjB,SAAS5F,EAAM,QAAQ,aAAa;AAAA,EACxC;AAEE,EAAIA,EAAM,cAAc,iBAAiB,SACvCA,EAAM,OAAO,SAAS,OAAO,OAAO,CAAA,GAAIA,EAAM,OAAO,QAAQsF,GAAY,OAAO,OAAO,CAAA,GAAIqB,GAAc;AAAA,IACvG,SAAS3G,EAAM,cAAc;AAAA,IAC7B,UAAUA,EAAM,QAAQ;AAAA,IACxB,UAAU6F;AAAA,IACV,cAAcC;AAAA,EACf,CAAA,CAAC,CAAC,IAGD9F,EAAM,cAAc,SAAS,SAC/BA,EAAM,OAAO,QAAQ,OAAO,OAAO,CAAA,GAAIA,EAAM,OAAO,OAAOsF,GAAY,OAAO,OAAO,CAAA,GAAIqB,GAAc;AAAA,IACrG,SAAS3G,EAAM,cAAc;AAAA,IAC7B,UAAU;AAAA,IACV,UAAU;AAAA,IACV,cAAc8F;AAAA,EACf,CAAA,CAAC,CAAC,IAGL9F,EAAM,WAAW,SAAS,OAAO,OAAO,IAAIA,EAAM,WAAW,QAAQ;AAAA,IACnE,yBAAyBA,EAAM;AAAA,EACnC,CAAG;AACH;AAGA,MAAemH,KAAA;AAAA,EACb,MAAM;AAAA,EACN,SAAS;AAAA,EACT,OAAO;AAAA,EACP,IAAIL;AAAA,EACJ,MAAM,CAAE;AACV;ACtKA,IAAIM,KAAU;AAAA,EACZ,SAAS;AACX;AAEA,SAASjH,GAAOvC,GAAM;AACpB,MAAIoC,IAAQpC,EAAK,OACbyJ,IAAWzJ,EAAK,UAChBiG,IAAUjG,EAAK,SACf0J,IAAkBzD,EAAQ,QAC1B0D,IAASD,MAAoB,SAAS,KAAOA,GAC7CE,IAAkB3D,EAAQ,QAC1B4D,IAASD,MAAoB,SAAS,KAAOA,GAC7C3E,IAASpD,GAAUO,EAAM,SAAS,MAAM,GACxC0H,IAAgB,GAAG,OAAO1H,EAAM,cAAc,WAAWA,EAAM,cAAc,MAAM;AAEvF,SAAIuH,KACFG,EAAc,QAAQ,SAAUC,GAAc;AAC5C,IAAAA,EAAa,iBAAiB,UAAUN,EAAS,QAAQD,EAAO;AAAA,EACtE,CAAK,GAGCK,KACF5E,EAAO,iBAAiB,UAAUwE,EAAS,QAAQD,EAAO,GAGrD,WAAY;AACjB,IAAIG,KACFG,EAAc,QAAQ,SAAUC,GAAc;AAC5C,MAAAA,EAAa,oBAAoB,UAAUN,EAAS,QAAQD,EAAO;AAAA,IAC3E,CAAO,GAGCK,KACF5E,EAAO,oBAAoB,UAAUwE,EAAS,QAAQD,EAAO;AAAA,EAEnE;AACA;AAGA,MAAeQ,KAAA;AAAA,EACb,MAAM;AAAA,EACN,SAAS;AAAA,EACT,OAAO;AAAA,EACP,IAAI,WAAc;AAAA,EAAE;AAAA,EACpB,QAAQzH;AAAA,EACR,MAAM,CAAE;AACV;AChDA,IAAI0H,KAAO;AAAA,EACT,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,KAAK;AACP;AACe,SAASC,GAAqBnJ,GAAW;AACtD,SAAOA,EAAU,QAAQ,0BAA0B,SAAUoJ,GAAS;AACpE,WAAOF,GAAKE,CAAO;AAAA,EACvB,CAAG;AACH;ACVA,IAAIF,KAAO;AAAA,EACT,OAAO;AAAA,EACP,KAAK;AACP;AACe,SAASG,GAA8BrJ,GAAW;AAC/D,SAAOA,EAAU,QAAQ,cAAc,SAAUoJ,GAAS;AACxD,WAAOF,GAAKE,CAAO;AAAA,EACvB,CAAG;AACH;ACPe,SAASE,GAAgBvI,GAAM;AAC5C,MAAI0F,IAAM3F,GAAUC,CAAI,GACpBwI,IAAa9C,EAAI,aACjB+C,IAAY/C,EAAI;AACpB,SAAO;AAAA,IACL,YAAY8C;AAAA,IACZ,WAAWC;AAAA,EACf;AACA;ACNe,SAASC,GAAoB5I,GAAS;AAQnD,SAAOyB,GAAsBkB,GAAmB3C,CAAO,CAAC,EAAE,OAAOyI,GAAgBzI,CAAO,EAAE;AAC5F;ACRe,SAAS6I,GAAgB7I,GAAS8I,GAAU;AACzD,MAAIlD,IAAM3F,GAAUD,CAAO,GACvB+I,IAAOpG,GAAmB3C,CAAO,GACjC+B,IAAiB6D,EAAI,gBACrB3D,IAAQ8G,EAAK,aACb7G,IAAS6G,EAAK,cACdjiC,IAAI,GACJpB,IAAI;AAER,MAAIq8B,GAAgB;AAClB,IAAAE,IAAQF,EAAe,OACvBG,IAASH,EAAe;AACxB,QAAIiH,IAAiBxH;AAErB,KAAIwH,KAAkB,CAACA,KAAkBF,MAAa,aACpDhiC,IAAIi7B,EAAe,YACnBr8B,IAAIq8B,EAAe;AAAA,EAEtB;AAED,SAAO;AAAA,IACL,OAAOE;AAAA,IACP,QAAQC;AAAA,IACR,GAAGp7B,IAAI8hC,GAAoB5I,CAAO;AAAA,IAClC,GAAGt6B;AAAA,EACP;AACA;ACvBe,SAASujC,GAAgBjJ,GAAS;AAC/C,MAAIkJ,GAEAH,IAAOpG,GAAmB3C,CAAO,GACjCmJ,IAAYV,GAAgBzI,CAAO,GACnCoJ,KAAQF,IAAwBlJ,EAAQ,kBAAkB,OAAO,SAASkJ,EAAsB,MAChGjH,IAAQd,GAAI4H,EAAK,aAAaA,EAAK,aAAaK,IAAOA,EAAK,cAAc,GAAGA,IAAOA,EAAK,cAAc,CAAC,GACxGlH,IAASf,GAAI4H,EAAK,cAAcA,EAAK,cAAcK,IAAOA,EAAK,eAAe,GAAGA,IAAOA,EAAK,eAAe,CAAC,GAC7GtiC,IAAI,CAACqiC,EAAU,aAAaP,GAAoB5I,CAAO,GACvDt6B,IAAI,CAACyjC,EAAU;AAEnB,SAAI1G,GAAiB2G,KAAQL,CAAI,EAAE,cAAc,UAC/CjiC,KAAKq6B,GAAI4H,EAAK,aAAaK,IAAOA,EAAK,cAAc,CAAC,IAAInH,IAGrD;AAAA,IACL,OAAOA;AAAA,IACP,QAAQC;AAAA,IACR,GAAGp7B;AAAA,IACH,GAAGpB;AAAA,EACP;AACA;AC3Be,SAAS2jC,GAAerJ,GAAS;AAE9C,MAAIsJ,IAAoB7G,GAAiBzC,CAAO,GAC5CuJ,IAAWD,EAAkB,UAC7BE,IAAYF,EAAkB,WAC9BG,IAAYH,EAAkB;AAElC,SAAO,6BAA6B,KAAKC,IAAWE,IAAYD,CAAS;AAC3E;ACLe,SAASE,GAAgBxJ,GAAM;AAC5C,SAAI,CAAC,QAAQ,QAAQ,WAAW,EAAE,QAAQH,GAAYG,CAAI,CAAC,KAAK,IAEvDA,EAAK,cAAc,OAGxBG,GAAcH,CAAI,KAAKmJ,GAAenJ,CAAI,IACrCA,IAGFwJ,GAAgB9G,GAAc1C,CAAI,CAAC;AAC5C;ACJe,SAASyJ,GAAkB3J,GAAS4J,GAAM;AACvD,MAAIV;AAEJ,EAAIU,MAAS,WACXA,IAAO,CAAA;AAGT,MAAIzB,IAAeuB,GAAgB1J,CAAO,GACtC6J,IAAS1B,QAAmBe,IAAwBlJ,EAAQ,kBAAkB,OAAO,SAASkJ,EAAsB,OACpHtD,IAAM3F,GAAUkI,CAAY,GAC5BhU,IAAS0V,IAAS,CAACjE,CAAG,EAAE,OAAOA,EAAI,kBAAkB,CAAA,GAAIyD,GAAelB,CAAY,IAAIA,IAAe,CAAE,CAAA,IAAIA,GAC7G2B,IAAcF,EAAK,OAAOzV,CAAM;AACpC,SAAO0V,IAASC;AAAA;AAAA,IAChBA,EAAY,OAAOH,GAAkB/G,GAAczO,CAAM,CAAC,CAAC;AAAA;AAC7D;ACzBe,SAAS4V,GAAiBC,GAAM;AAC7C,SAAO,OAAO,OAAO,CAAE,GAAEA,GAAM;AAAA,IAC7B,MAAMA,EAAK;AAAA,IACX,KAAKA,EAAK;AAAA,IACV,OAAOA,EAAK,IAAIA,EAAK;AAAA,IACrB,QAAQA,EAAK,IAAIA,EAAK;AAAA,EAC1B,CAAG;AACH;ACQA,SAASC,GAA2BjK,GAAS8I,GAAU;AACrD,MAAIkB,IAAOvI,GAAsBzB,GAAS,IAAO8I,MAAa,OAAO;AACrE,SAAAkB,EAAK,MAAMA,EAAK,MAAMhK,EAAQ,WAC9BgK,EAAK,OAAOA,EAAK,OAAOhK,EAAQ,YAChCgK,EAAK,SAASA,EAAK,MAAMhK,EAAQ,cACjCgK,EAAK,QAAQA,EAAK,OAAOhK,EAAQ,aACjCgK,EAAK,QAAQhK,EAAQ,aACrBgK,EAAK,SAAShK,EAAQ,cACtBgK,EAAK,IAAIA,EAAK,MACdA,EAAK,IAAIA,EAAK,KACPA;AACT;AAEA,SAASE,GAA2BlK,GAASmK,GAAgBrB,GAAU;AACrE,SAAOqB,MAAmBpL,KAAWgL,GAAiBlB,GAAgB7I,GAAS8I,CAAQ,CAAC,IAAIpW,GAAUyX,CAAc,IAAIF,GAA2BE,GAAgBrB,CAAQ,IAAIiB,GAAiBd,GAAgBtG,GAAmB3C,CAAO,CAAC,CAAC;AAC9O;AAKA,SAASoK,GAAmBpK,GAAS;AACnC,MAAIlB,IAAkB6K,GAAkB/G,GAAc5C,CAAO,CAAC,GAC1DqK,IAAoB,CAAC,YAAY,OAAO,EAAE,QAAQ5H,GAAiBzC,CAAO,EAAE,QAAQ,KAAK,GACzFsK,IAAiBD,KAAqBhK,GAAcL,CAAO,IAAIoD,GAAgBpD,CAAO,IAAIA;AAE9F,SAAKtN,GAAU4X,CAAc,IAKtBxL,EAAgB,OAAO,SAAUqL,GAAgB;AACtD,WAAOzX,GAAUyX,CAAc,KAAK/H,GAAS+H,GAAgBG,CAAc,KAAKvK,GAAYoK,CAAc,MAAM;AAAA,EACpH,CAAG,IANQ;AAOX;AAIe,SAASI,GAAgBvK,GAASwK,GAAUC,GAAc3B,GAAU;AACjF,MAAI4B,IAAsBF,MAAa,oBAAoBJ,GAAmBpK,CAAO,IAAI,CAAE,EAAC,OAAOwK,CAAQ,GACvG1L,IAAkB,CAAA,EAAG,OAAO4L,GAAqB,CAACD,CAAY,CAAC,GAC/DE,IAAsB7L,EAAgB,CAAC,GACvC8L,IAAe9L,EAAgB,OAAO,SAAU+L,GAASV,GAAgB;AAC3E,QAAIH,IAAOE,GAA2BlK,GAASmK,GAAgBrB,CAAQ;AACvE,WAAA+B,EAAQ,MAAM1J,GAAI6I,EAAK,KAAKa,EAAQ,GAAG,GACvCA,EAAQ,QAAQzJ,GAAI4I,EAAK,OAAOa,EAAQ,KAAK,GAC7CA,EAAQ,SAASzJ,GAAI4I,EAAK,QAAQa,EAAQ,MAAM,GAChDA,EAAQ,OAAO1J,GAAI6I,EAAK,MAAMa,EAAQ,IAAI,GACnCA;AAAA,EACR,GAAEX,GAA2BlK,GAAS2K,GAAqB7B,CAAQ,CAAC;AACrE,SAAA8B,EAAa,QAAQA,EAAa,QAAQA,EAAa,MACvDA,EAAa,SAASA,EAAa,SAASA,EAAa,KACzDA,EAAa,IAAIA,EAAa,MAC9BA,EAAa,IAAIA,EAAa,KACvBA;AACT;ACjEe,SAASE,GAAe1M,GAAM;AAC3C,MAAIa,IAAYb,EAAK,WACjB4B,IAAU5B,EAAK,SACfe,IAAYf,EAAK,WACjBoG,IAAgBrF,IAAY+B,GAAiB/B,CAAS,IAAI,MAC1D8G,IAAY9G,IAAYsG,GAAatG,CAAS,IAAI,MAClD4L,IAAU9L,EAAU,IAAIA,EAAU,QAAQ,IAAIe,EAAQ,QAAQ,GAC9DgL,IAAU/L,EAAU,IAAIA,EAAU,SAAS,IAAIe,EAAQ,SAAS,GAChEkG;AAEJ,UAAQ1B,GAAa;AAAA,IACnB,KAAKlG;AACH,MAAA4H,IAAU;AAAA,QACR,GAAG6E;AAAA,QACH,GAAG9L,EAAU,IAAIe,EAAQ;AAAA,MACjC;AACM;AAAA,IAEF,KAAKzB;AACH,MAAA2H,IAAU;AAAA,QACR,GAAG6E;AAAA,QACH,GAAG9L,EAAU,IAAIA,EAAU;AAAA,MACnC;AACM;AAAA,IAEF,KAAKT;AACH,MAAA0H,IAAU;AAAA,QACR,GAAGjH,EAAU,IAAIA,EAAU;AAAA,QAC3B,GAAG+L;AAAA,MACX;AACM;AAAA,IAEF,KAAKvM;AACH,MAAAyH,IAAU;AAAA,QACR,GAAGjH,EAAU,IAAIe,EAAQ;AAAA,QACzB,GAAGgL;AAAA,MACX;AACM;AAAA,IAEF;AACE,MAAA9E,IAAU;AAAA,QACR,GAAGjH,EAAU;AAAA,QACb,GAAGA,EAAU;AAAA,MACrB;AAAA,EACG;AAED,MAAIgM,IAAWzG,IAAgBjB,GAAyBiB,CAAa,IAAI;AAEzE,MAAIyG,KAAY,MAAM;AACpB,QAAItG,IAAMsG,MAAa,MAAM,WAAW;AAExC,YAAQhF,GAAS;AAAA,MACf,KAAKrH;AACH,QAAAsH,EAAQ+E,CAAQ,IAAI/E,EAAQ+E,CAAQ,KAAKhM,EAAU0F,CAAG,IAAI,IAAI3E,EAAQ2E,CAAG,IAAI;AAC7E;AAAA,MAEF,KAAK9F;AACH,QAAAqH,EAAQ+E,CAAQ,IAAI/E,EAAQ+E,CAAQ,KAAKhM,EAAU0F,CAAG,IAAI,IAAI3E,EAAQ2E,CAAG,IAAI;AAC7E;AAAA,IAGH;AAAA,EACF;AAED,SAAOuB;AACT;AC3De,SAASgF,GAAe1K,GAAO6D,GAAS;AACrD,EAAIA,MAAY,WACdA,IAAU,CAAA;AAGZ,MAAI8G,IAAW9G,GACX+G,IAAqBD,EAAS,WAC9BhM,IAAYiM,MAAuB,SAAS5K,EAAM,YAAY4K,GAC9DC,IAAoBF,EAAS,UAC7BrC,IAAWuC,MAAsB,SAAS7K,EAAM,WAAW6K,GAC3DC,IAAoBH,EAAS,UAC7BX,IAAWc,MAAsB,SAASxM,KAAkBwM,GAC5DC,IAAwBJ,EAAS,cACjCV,IAAec,MAA0B,SAASxM,KAAWwM,GAC7DC,IAAwBL,EAAS,gBACjCM,IAAiBD,MAA0B,SAASxM,KAASwM,GAC7DE,IAAuBP,EAAS,aAChCQ,IAAcD,MAAyB,SAAS,KAAQA,GACxDE,IAAmBT,EAAS,SAC5BjH,IAAU0H,MAAqB,SAAS,IAAIA,GAC5C9H,IAAgBD,GAAmB,OAAOK,KAAY,WAAWA,IAAUH,GAAgBG,GAASvF,EAAc,CAAC,GACnHkN,IAAaJ,MAAmBzM,KAASC,KAAYD,IACrDgH,IAAaxF,EAAM,MAAM,QACzBR,IAAUQ,EAAM,SAASmL,IAAcE,IAAaJ,CAAc,GAClEK,IAAqBvB,GAAgB7X,GAAUsN,CAAO,IAAIA,IAAUA,EAAQ,kBAAkB2C,GAAmBnC,EAAM,SAAS,MAAM,GAAGgK,GAAUC,GAAc3B,CAAQ,GACzKiD,IAAsBtK,GAAsBjB,EAAM,SAAS,SAAS,GACpE+D,IAAgBuG,GAAe;AAAA,IACjC,WAAWiB;AAAA,IACX,SAAS/F;AAAA,IACT,UAAU;AAAA,IACV,WAAW7G;AAAA,EACf,CAAG,GACG6M,IAAmBjC,GAAiB,OAAO,OAAO,CAAA,GAAI/D,GAAYzB,CAAa,CAAC,GAChF0H,IAAoBR,MAAmBzM,KAASgN,IAAmBD,GAGnEG,IAAkB;AAAA,IACpB,KAAKJ,EAAmB,MAAMG,EAAkB,MAAMnI,EAAc;AAAA,IACpE,QAAQmI,EAAkB,SAASH,EAAmB,SAAShI,EAAc;AAAA,IAC7E,MAAMgI,EAAmB,OAAOG,EAAkB,OAAOnI,EAAc;AAAA,IACvE,OAAOmI,EAAkB,QAAQH,EAAmB,QAAQhI,EAAc;AAAA,EAC9E,GACMqI,IAAa3L,EAAM,cAAc;AAErC,MAAIiL,MAAmBzM,MAAUmN,GAAY;AAC3C,QAAI9G,IAAS8G,EAAWhN,CAAS;AACjC,WAAO,KAAK+M,CAAe,EAAE,QAAQ,SAAU3X,IAAK;AAClD,UAAI6X,KAAW,CAAC5N,IAAOD,EAAM,EAAE,QAAQhK,EAAG,KAAK,IAAI,IAAI,IACnDkQ,IAAO,CAACnG,IAAKC,EAAM,EAAE,QAAQhK,EAAG,KAAK,IAAI,MAAM;AACnD,MAAA2X,EAAgB3X,EAAG,KAAK8Q,EAAOZ,CAAI,IAAI2H;AAAA,IAC7C,CAAK;AAAA,EACF;AAED,SAAOF;AACT;AC5De,SAASG,GAAqB7L,GAAO6D,GAAS;AAC3D,EAAIA,MAAY,WACdA,IAAU,CAAA;AAGZ,MAAI8G,IAAW9G,GACXlF,IAAYgM,EAAS,WACrBX,IAAWW,EAAS,UACpBV,IAAeU,EAAS,cACxBjH,IAAUiH,EAAS,SACnBmB,IAAiBnB,EAAS,gBAC1BoB,IAAwBpB,EAAS,uBACjCqB,IAAwBD,MAA0B,SAASE,KAAgBF,GAC3EtG,IAAYR,GAAatG,CAAS,GAClCC,IAAa6G,IAAYqG,IAAiBpN,KAAsBA,GAAoB,OAAO,SAAUC,GAAW;AAClH,WAAOsG,GAAatG,CAAS,MAAM8G;AAAA,EACpC,CAAA,IAAItH,IACD+N,IAAoBtN,EAAW,OAAO,SAAUD,GAAW;AAC7D,WAAOqN,EAAsB,QAAQrN,CAAS,KAAK;AAAA,EACvD,CAAG;AAED,EAAIuN,EAAkB,WAAW,MAC/BA,IAAoBtN;AAItB,MAAIuN,IAAYD,EAAkB,OAAO,SAAUvO,GAAKgB,GAAW;AACjE,WAAAhB,EAAIgB,CAAS,IAAI+L,GAAe1K,GAAO;AAAA,MACrC,WAAWrB;AAAA,MACX,UAAUqL;AAAA,MACV,cAAcC;AAAA,MACd,SAASvG;AAAA,IACf,CAAK,EAAEhD,GAAiB/B,CAAS,CAAC,GACvBhB;AAAA,EACR,GAAE,CAAE,CAAA;AACL,SAAO,OAAO,KAAKwO,CAAS,EAAE,KAAK,SAAUrmC,GAAGT,GAAG;AACjD,WAAO8mC,EAAUrmC,CAAC,IAAIqmC,EAAU9mC,CAAC;AAAA,EACrC,CAAG;AACH;AClCA,SAAS+mC,GAA8BzN,GAAW;AAChD,MAAI+B,GAAiB/B,CAAS,MAAMT;AAClC,WAAO;AAGT,MAAImO,IAAoBvE,GAAqBnJ,CAAS;AACtD,SAAO,CAACqJ,GAA8BrJ,CAAS,GAAG0N,GAAmBrE,GAA8BqE,CAAiB,CAAC;AACvH;AAEA,SAASC,GAAK1O,GAAM;AAClB,MAAIoC,IAAQpC,EAAK,OACbiG,IAAUjG,EAAK,SACfqC,IAAOrC,EAAK;AAEhB,MAAI,CAAAoC,EAAM,cAAcC,CAAI,EAAE,OAoC9B;AAAA,aAhCIsM,IAAoB1I,EAAQ,UAC5B2I,IAAgBD,MAAsB,SAAS,KAAOA,GACtDE,IAAmB5I,EAAQ,SAC3B6I,IAAeD,MAAqB,SAAS,KAAOA,GACpDE,IAA8B9I,EAAQ,oBACtCH,IAAUG,EAAQ,SAClBmG,IAAWnG,EAAQ,UACnBoG,IAAepG,EAAQ,cACvBsH,IAActH,EAAQ,aACtB+I,IAAwB/I,EAAQ,gBAChCiI,IAAiBc,MAA0B,SAAS,KAAOA,GAC3DZ,IAAwBnI,EAAQ,uBAChCgJ,IAAqB7M,EAAM,QAAQ,WACnCgE,IAAgBtD,GAAiBmM,CAAkB,GACnDC,IAAkB9I,MAAkB6I,GACpCE,IAAqBJ,MAAgCG,KAAmB,CAAChB,IAAiB,CAAChE,GAAqB+E,CAAkB,CAAC,IAAIT,GAA8BS,CAAkB,IACvLjO,IAAa,CAACiO,CAAkB,EAAE,OAAOE,CAAkB,EAAE,OAAO,SAAUpP,GAAKgB,GAAW;AAChG,aAAOhB,EAAI,OAAO+C,GAAiB/B,CAAS,MAAMT,KAAO2N,GAAqB7L,GAAO;AAAA,QACnF,WAAWrB;AAAA,QACX,UAAUqL;AAAA,QACV,cAAcC;AAAA,QACd,SAASvG;AAAA,QACT,gBAAgBoI;AAAA,QAChB,uBAAuBE;AAAA,MAC7B,CAAK,IAAIrN,CAAS;AAAA,IACf,GAAE,CAAE,CAAA,GACDqO,IAAgBhN,EAAM,MAAM,WAC5BwF,IAAaxF,EAAM,MAAM,QACzBiN,IAAY,oBAAI,OAChBC,IAAqB,IACrBC,IAAwBvO,EAAW,CAAC,GAE/Bp5B,IAAI,GAAGA,IAAIo5B,EAAW,QAAQp5B,KAAK;AAC1C,UAAIm5B,IAAYC,EAAWp5B,CAAC,GAExB4nC,IAAiB1M,GAAiB/B,CAAS,GAE3C0O,KAAmBpI,GAAatG,CAAS,MAAMP,IAC/C8F,KAAa,CAACpG,IAAKC,EAAM,EAAE,QAAQqP,CAAc,KAAK,GACtDjJ,IAAMD,KAAa,UAAU,UAC7B6E,KAAW2B,GAAe1K,GAAO;AAAA,QACnC,WAAWrB;AAAA,QACX,UAAUqL;AAAA,QACV,cAAcC;AAAA,QACd,aAAakB;AAAA,QACb,SAASzH;AAAA,MACf,CAAK,GACG4J,KAAoBpJ,KAAamJ,KAAmBrP,KAAQC,KAAOoP,KAAmBtP,KAASD;AAEnG,MAAIkP,EAAc7I,CAAG,IAAIqB,EAAWrB,CAAG,MACrCmJ,KAAoBxF,GAAqBwF,EAAiB;AAG5D,UAAIC,KAAmBzF,GAAqBwF,EAAiB,GACzDE,KAAS,CAAA;AAUb,UARIhB,KACFgB,GAAO,KAAKzE,GAASqE,CAAc,KAAK,CAAC,GAGvCV,KACFc,GAAO,KAAKzE,GAASuE,EAAiB,KAAK,GAAGvE,GAASwE,EAAgB,KAAK,CAAC,GAG3EC,GAAO,MAAM,SAAUC,GAAO;AAChC,eAAOA;AAAA,MACb,CAAK,GAAG;AACF,QAAAN,IAAwBxO,GACxBuO,IAAqB;AACrB;AAAA,MACD;AAED,MAAAD,EAAU,IAAItO,GAAW6O,EAAM;AAAA,IAChC;AAED,QAAIN;AAqBF,eAnBIQ,IAAiB5B,IAAiB,IAAI,GAEtC6B,IAAQ,SAAe/4B,GAAI;AAC7B,YAAIg5B,IAAmBhP,EAAW,KAAK,SAAUD,GAAW;AAC1D,cAAI6O,IAASP,EAAU,IAAItO,CAAS;AAEpC,cAAI6O;AACF,mBAAOA,EAAO,MAAM,GAAG54B,CAAE,EAAE,MAAM,SAAU64B,GAAO;AAChD,qBAAOA;AAAA,YACnB,CAAW;AAAA,QAEX,CAAO;AAED,YAAIG;AACF,iBAAAT,IAAwBS,GACjB;AAAA,MAEf,GAEah5B,KAAK84B,GAAgB94B,KAAK,GAAGA,MAAM;AAC1C,YAAIi5B,KAAOF,EAAM/4B,EAAE;AAEnB,YAAIi5B,OAAS;AAAS;AAAA,MACvB;AAGH,IAAI7N,EAAM,cAAcmN,MACtBnN,EAAM,cAAcC,CAAI,EAAE,QAAQ,IAClCD,EAAM,YAAYmN,GAClBnN,EAAM,QAAQ;AAAA;AAElB;AAGA,MAAe8N,KAAA;AAAA,EACb,MAAM;AAAA,EACN,SAAS;AAAA,EACT,OAAO;AAAA,EACP,IAAIxB;AAAA,EACJ,kBAAkB,CAAC,QAAQ;AAAA,EAC3B,MAAM;AAAA,IACJ,OAAO;AAAA,EACR;AACH;AC/IA,SAASyB,GAAehF,GAAUS,GAAMwE,GAAkB;AACxD,SAAIA,MAAqB,WACvBA,IAAmB;AAAA,IACjB,GAAG;AAAA,IACH,GAAG;AAAA,EACT,IAGS;AAAA,IACL,KAAKjF,EAAS,MAAMS,EAAK,SAASwE,EAAiB;AAAA,IACnD,OAAOjF,EAAS,QAAQS,EAAK,QAAQwE,EAAiB;AAAA,IACtD,QAAQjF,EAAS,SAASS,EAAK,SAASwE,EAAiB;AAAA,IACzD,MAAMjF,EAAS,OAAOS,EAAK,QAAQwE,EAAiB;AAAA,EACxD;AACA;AAEA,SAASC,GAAsBlF,GAAU;AACvC,SAAO,CAACjL,IAAKE,IAAOD,IAAQE,EAAI,EAAE,KAAK,SAAUiQ,GAAM;AACrD,WAAOnF,EAASmF,CAAI,KAAK;AAAA,EAC7B,CAAG;AACH;AAEA,SAASC,GAAKvQ,GAAM;AAClB,MAAIoC,IAAQpC,EAAK,OACbqC,IAAOrC,EAAK,MACZoP,IAAgBhN,EAAM,MAAM,WAC5BwF,IAAaxF,EAAM,MAAM,QACzBgO,IAAmBhO,EAAM,cAAc,iBACvCoO,IAAoB1D,GAAe1K,GAAO;AAAA,IAC5C,gBAAgB;AAAA,EACpB,CAAG,GACGqO,IAAoB3D,GAAe1K,GAAO;AAAA,IAC5C,aAAa;AAAA,EACjB,CAAG,GACGsO,IAA2BP,GAAeK,GAAmBpB,CAAa,GAC1EuB,IAAsBR,GAAeM,GAAmB7I,GAAYwI,CAAgB,GACpFQ,IAAoBP,GAAsBK,CAAwB,GAClEG,IAAmBR,GAAsBM,CAAmB;AAChE,EAAAvO,EAAM,cAAcC,CAAI,IAAI;AAAA,IAC1B,0BAA0BqO;AAAA,IAC1B,qBAAqBC;AAAA,IACrB,mBAAmBC;AAAA,IACnB,kBAAkBC;AAAA,EACtB,GACEzO,EAAM,WAAW,SAAS,OAAO,OAAO,IAAIA,EAAM,WAAW,QAAQ;AAAA,IACnE,gCAAgCwO;AAAA,IAChC,uBAAuBC;AAAA,EAC3B,CAAG;AACH;AAGA,MAAeC,KAAA;AAAA,EACb,MAAM;AAAA,EACN,SAAS;AAAA,EACT,OAAO;AAAA,EACP,kBAAkB,CAAC,iBAAiB;AAAA,EACpC,IAAIP;AACN;ACzDO,SAASQ,GAAwBhQ,GAAWiQ,GAAO/J,GAAQ;AAChE,MAAIb,IAAgBtD,GAAiB/B,CAAS,GAC1CkQ,IAAiB,CAAC5Q,IAAMH,EAAG,EAAE,QAAQkG,CAAa,KAAK,IAAI,KAAK,GAEhEpG,IAAO,OAAOiH,KAAW,aAAaA,EAAO,OAAO,OAAO,CAAE,GAAE+J,GAAO;AAAA,IACxE,WAAWjQ;AAAA,EACZ,CAAA,CAAC,IAAIkG,GACFiK,IAAWlR,EAAK,CAAC,GACjBmR,IAAWnR,EAAK,CAAC;AAErB,SAAAkR,IAAWA,KAAY,GACvBC,KAAYA,KAAY,KAAKF,GACtB,CAAC5Q,IAAMD,EAAK,EAAE,QAAQgG,CAAa,KAAK,IAAI;AAAA,IACjD,GAAG+K;AAAA,IACH,GAAGD;AAAA,EACP,IAAM;AAAA,IACF,GAAGA;AAAA,IACH,GAAGC;AAAA,EACP;AACA;AAEA,SAASlK,GAAOzE,GAAO;AACrB,MAAIJ,IAAQI,EAAM,OACdyD,IAAUzD,EAAM,SAChBH,IAAOG,EAAM,MACb4O,IAAkBnL,EAAQ,QAC1BgB,IAASmK,MAAoB,SAAS,CAAC,GAAG,CAAC,IAAIA,GAC/CjY,IAAO6H,GAAW,OAAO,SAAUjB,GAAKgB,GAAW;AACrD,WAAAhB,EAAIgB,CAAS,IAAIgQ,GAAwBhQ,GAAWqB,EAAM,OAAO6E,CAAM,GAChElH;AAAA,EACR,GAAE,CAAE,CAAA,GACDsR,IAAwBlY,EAAKiJ,EAAM,SAAS,GAC5C15B,IAAI2oC,EAAsB,GAC1B/pC,IAAI+pC,EAAsB;AAE9B,EAAIjP,EAAM,cAAc,iBAAiB,SACvCA,EAAM,cAAc,cAAc,KAAK15B,GACvC05B,EAAM,cAAc,cAAc,KAAK96B,IAGzC86B,EAAM,cAAcC,CAAI,IAAIlJ;AAC9B;AAGA,MAAemY,KAAA;AAAA,EACb,MAAM;AAAA,EACN,SAAS;AAAA,EACT,OAAO;AAAA,EACP,UAAU,CAAC,eAAe;AAAA,EAC1B,IAAIrK;AACN;ACnDA,SAASd,GAAcnG,GAAM;AAC3B,MAAIoC,IAAQpC,EAAK,OACbqC,IAAOrC,EAAK;AAKhB,EAAAoC,EAAM,cAAcC,CAAI,IAAIqK,GAAe;AAAA,IACzC,WAAWtK,EAAM,MAAM;AAAA,IACvB,SAASA,EAAM,MAAM;AAAA,IACrB,UAAU;AAAA,IACV,WAAWA,EAAM;AAAA,EACrB,CAAG;AACH;AAGA,MAAemP,KAAA;AAAA,EACb,MAAM;AAAA,EACN,SAAS;AAAA,EACT,OAAO;AAAA,EACP,IAAIpL;AAAA,EACJ,MAAM,CAAE;AACV;ACxBe,SAASqL,GAAWnL,GAAM;AACvC,SAAOA,MAAS,MAAM,MAAM;AAC9B;ACUA,SAASoL,GAAgBzR,GAAM;AAC7B,MAAIoC,IAAQpC,EAAK,OACbiG,IAAUjG,EAAK,SACfqC,IAAOrC,EAAK,MACZ2O,IAAoB1I,EAAQ,UAC5B2I,IAAgBD,MAAsB,SAAS,KAAOA,GACtDE,IAAmB5I,EAAQ,SAC3B6I,IAAeD,MAAqB,SAAS,KAAQA,GACrDzC,IAAWnG,EAAQ,UACnBoG,IAAepG,EAAQ,cACvBsH,IAActH,EAAQ,aACtBH,IAAUG,EAAQ,SAClByL,IAAkBzL,EAAQ,QAC1B0L,IAASD,MAAoB,SAAS,KAAOA,GAC7CE,IAAwB3L,EAAQ,cAChC4L,IAAeD,MAA0B,SAAS,IAAIA,GACtDzG,IAAW2B,GAAe1K,GAAO;AAAA,IACnC,UAAUgK;AAAA,IACV,cAAcC;AAAA,IACd,SAASvG;AAAA,IACT,aAAayH;AAAA,EACjB,CAAG,GACGnH,IAAgBtD,GAAiBV,EAAM,SAAS,GAChDyF,IAAYR,GAAajF,EAAM,SAAS,GACxC8M,IAAkB,CAACrH,GACnBgF,IAAW1H,GAAyBiB,CAAa,GACjD0L,IAAUN,GAAW3E,CAAQ,GAC7B1G,IAAgB/D,EAAM,cAAc,eACpCgN,IAAgBhN,EAAM,MAAM,WAC5BwF,IAAaxF,EAAM,MAAM,QACzB2P,IAAoB,OAAOF,KAAiB,aAAaA,EAAa,OAAO,OAAO,CAAA,GAAIzP,EAAM,OAAO;AAAA,IACvG,WAAWA,EAAM;AAAA,EACrB,CAAG,CAAC,IAAIyP,GACFG,IAA8B,OAAOD,KAAsB,WAAW;AAAA,IACxE,UAAUA;AAAA,IACV,SAASA;AAAA,EACb,IAAM,OAAO,OAAO;AAAA,IAChB,UAAU;AAAA,IACV,SAAS;AAAA,EACV,GAAEA,CAAiB,GAChBE,IAAsB7P,EAAM,cAAc,SAASA,EAAM,cAAc,OAAOA,EAAM,SAAS,IAAI,MACjGjJ,IAAO;AAAA,IACT,GAAG;AAAA,IACH,GAAG;AAAA,EACP;AAEE,MAAKgN,GAIL;AAAA,QAAIyI,GAAe;AACjB,UAAIsD,IAEAC,KAAWtF,MAAa,MAAM3M,KAAMG,IACpC+R,IAAUvF,MAAa,MAAM1M,KAASC,IACtCmG,KAAMsG,MAAa,MAAM,WAAW,SACpC5F,KAASd,EAAc0G,CAAQ,GAC/B7J,KAAMiE,KAASkE,EAASgH,EAAQ,GAChCpP,KAAMkE,KAASkE,EAASiH,CAAO,GAC/BC,IAAWV,IAAS,CAAC/J,EAAWrB,EAAG,IAAI,IAAI,GAC3C+L,IAASzK,MAAcrH,KAAQ4O,EAAc7I,EAAG,IAAIqB,EAAWrB,EAAG,GAClEgM,KAAS1K,MAAcrH,KAAQ,CAACoH,EAAWrB,EAAG,IAAI,CAAC6I,EAAc7I,EAAG,GAGpEL,KAAe9D,EAAM,SAAS,OAC9BoE,IAAYmL,KAAUzL,KAAenC,GAAcmC,EAAY,IAAI;AAAA,QACrE,OAAO;AAAA,QACP,QAAQ;AAAA,MACd,GACQsM,IAAqBpQ,EAAM,cAAc,kBAAkB,IAAIA,EAAM,cAAc,kBAAkB,EAAE,UAAUoD,GAAkB,GACnIiN,IAAkBD,EAAmBL,EAAQ,GAC7CO,IAAkBF,EAAmBJ,CAAO,GAM5CO,IAAWvN,GAAO,GAAGgK,EAAc7I,EAAG,GAAGC,EAAUD,EAAG,CAAC,GACvDqM,IAAY1D,IAAkBE,EAAc7I,EAAG,IAAI,IAAI8L,IAAWM,IAAWF,IAAkBT,EAA4B,WAAWM,IAASK,IAAWF,IAAkBT,EAA4B,UACxMa,KAAY3D,IAAkB,CAACE,EAAc7I,EAAG,IAAI,IAAI8L,IAAWM,IAAWD,IAAkBV,EAA4B,WAAWO,KAASI,IAAWD,IAAkBV,EAA4B,UACzMnL,KAAoBzE,EAAM,SAAS,SAAS4C,GAAgB5C,EAAM,SAAS,KAAK,GAChF0Q,IAAejM,KAAoBgG,MAAa,MAAMhG,GAAkB,aAAa,IAAIA,GAAkB,cAAc,IAAI,GAC7HkM,MAAuBb,KAAwBD,KAAuB,OAAO,SAASA,EAAoBpF,CAAQ,MAAM,OAAOqF,KAAwB,GACvJc,KAAY/L,KAAS2L,IAAYG,KAAsBD,GACvDG,KAAYhM,KAAS4L,KAAYE,IACjCG,KAAkB9N,GAAOuM,IAASrM,GAAQtC,IAAKgQ,EAAS,IAAIhQ,IAAKiE,IAAQ0K,IAAStM,GAAQtC,IAAKkQ,EAAS,IAAIlQ,EAAG;AACnH,MAAAoD,EAAc0G,CAAQ,IAAIqG,IAC1B/Z,EAAK0T,CAAQ,IAAIqG,KAAkBjM;AAAA,IACpC;AAED,QAAI6H,GAAc;AAChB,UAAIqE,IAEAC,KAAYvG,MAAa,MAAM3M,KAAMG,IAErCgT,IAAWxG,MAAa,MAAM1M,KAASC,IAEvCkT,IAAUnN,EAAc2L,CAAO,GAE/ByB,IAAOzB,MAAY,MAAM,WAAW,SAEpC0B,IAAOF,IAAUnI,EAASiI,EAAS,GAEnCK,IAAOH,IAAUnI,EAASkI,CAAQ,GAElCK,KAAe,CAACxT,IAAKG,EAAI,EAAE,QAAQ+F,CAAa,MAAM,IAEtDuN,KAAwBR,KAAyBlB,KAAuB,OAAO,SAASA,EAAoBH,CAAO,MAAM,OAAOqB,KAAyB,GAEzJS,IAAaF,KAAeF,IAAOF,IAAUlE,EAAcmE,CAAI,IAAI3L,EAAW2L,CAAI,IAAII,IAAuB3B,EAA4B,SAEzI6B,IAAaH,KAAeJ,IAAUlE,EAAcmE,CAAI,IAAI3L,EAAW2L,CAAI,IAAII,IAAuB3B,EAA4B,UAAUyB,GAE5IK,IAAmBnC,KAAU+B,KAAenO,GAAeqO,GAAYN,GAASO,CAAU,IAAIzO,GAAOuM,IAASiC,IAAaJ,GAAMF,GAAS3B,IAASkC,IAAaJ,CAAI;AAExK,MAAAtN,EAAc2L,CAAO,IAAIgC,GACzB3a,EAAK2Y,CAAO,IAAIgC,IAAmBR;AAAA,IACpC;AAED,IAAAlR,EAAM,cAAcC,CAAI,IAAIlJ;AAAA;AAC9B;AAGA,MAAe4a,KAAA;AAAA,EACb,MAAM;AAAA,EACN,SAAS;AAAA,EACT,OAAO;AAAA,EACP,IAAItC;AAAA,EACJ,kBAAkB,CAAC,QAAQ;AAC7B;AC7Ie,SAASuC,GAAqBpS,GAAS;AACpD,SAAO;AAAA,IACL,YAAYA,EAAQ;AAAA,IACpB,WAAWA,EAAQ;AAAA,EACvB;AACA;ACDe,SAASqS,GAAcnS,GAAM;AAC1C,SAAIA,MAASD,GAAUC,CAAI,KAAK,CAACG,GAAcH,CAAI,IAC1CuI,GAAgBvI,CAAI,IAEpBkS,GAAqBlS,CAAI;AAEpC;ACDA,SAASoS,GAAgBtS,GAAS;AAChC,MAAIgK,IAAOhK,EAAQ,yBACf6B,IAASR,GAAM2I,EAAK,KAAK,IAAIhK,EAAQ,eAAe,GACpD8B,IAAST,GAAM2I,EAAK,MAAM,IAAIhK,EAAQ,gBAAgB;AAC1D,SAAO6B,MAAW,KAAKC,MAAW;AACpC;AAIe,SAASyQ,GAAiBC,GAAyBlP,GAAciD,GAAS;AACvF,EAAIA,MAAY,WACdA,IAAU;AAGZ,MAAIkM,IAA0BpS,GAAciD,CAAY,GACpDoP,IAAuBrS,GAAciD,CAAY,KAAKgP,GAAgBhP,CAAY,GAClFqP,IAAkBhQ,GAAmBW,CAAY,GACjD0G,IAAOvI,GAAsB+Q,GAAyBE,GAAsBnM,CAAO,GACnFwB,IAAS;AAAA,IACX,YAAY;AAAA,IACZ,WAAW;AAAA,EACf,GACM7B,IAAU;AAAA,IACZ,GAAG;AAAA,IACH,GAAG;AAAA,EACP;AAEE,UAAIuM,KAA2B,CAACA,KAA2B,CAAClM,QACtDxG,GAAYuD,CAAY,MAAM;AAAA,EAClC+F,GAAesJ,CAAe,OAC5B5K,IAASsK,GAAc/O,CAAY,IAGjCjD,GAAciD,CAAY,KAC5B4C,IAAUzE,GAAsB6B,GAAc,EAAI,GAClD4C,EAAQ,KAAK5C,EAAa,YAC1B4C,EAAQ,KAAK5C,EAAa,aACjBqP,MACTzM,EAAQ,IAAI0C,GAAoB+J,CAAe,KAI5C;AAAA,IACL,GAAG3I,EAAK,OAAOjC,EAAO,aAAa7B,EAAQ;AAAA,IAC3C,GAAG8D,EAAK,MAAMjC,EAAO,YAAY7B,EAAQ;AAAA,IACzC,OAAO8D,EAAK;AAAA,IACZ,QAAQA,EAAK;AAAA,EACjB;AACA;ACvDA,SAAS4I,GAAMC,GAAW;AACxB,MAAIC,IAAM,oBAAI,OACVC,IAAU,oBAAI,OACdzX,IAAS,CAAA;AACb,EAAAuX,EAAU,QAAQ,SAAUG,GAAU;AACpC,IAAAF,EAAI,IAAIE,EAAS,MAAMA,CAAQ;AAAA,EACnC,CAAG;AAED,WAASC,EAAKD,GAAU;AACtB,IAAAD,EAAQ,IAAIC,EAAS,IAAI;AACzB,QAAIE,IAAW,GAAG,OAAOF,EAAS,YAAY,CAAA,GAAIA,EAAS,oBAAoB,CAAA,CAAE;AACjF,IAAAE,EAAS,QAAQ,SAAUC,GAAK;AAC9B,UAAI,CAACJ,EAAQ,IAAII,CAAG,GAAG;AACrB,YAAIC,IAAcN,EAAI,IAAIK,CAAG;AAE7B,QAAIC,KACFH,EAAKG,CAAW;AAAA,MAEnB;AAAA,IACP,CAAK,GACD9X,EAAO,KAAK0X,CAAQ;AAAA,EACrB;AAED,SAAAH,EAAU,QAAQ,SAAUG,GAAU;AACpC,IAAKD,EAAQ,IAAIC,EAAS,IAAI,KAE5BC,EAAKD,CAAQ;AAAA,EAEnB,CAAG,GACM1X;AACT;AAEe,SAAS+X,GAAeR,GAAW;AAEhD,MAAIS,IAAmBV,GAAMC,CAAS;AAEtC,SAAO/S,GAAe,OAAO,SAAU3B,GAAKoV,GAAO;AACjD,WAAOpV,EAAI,OAAOmV,EAAiB,OAAO,SAAUN,GAAU;AAC5D,aAAOA,EAAS,UAAUO;AAAA,IAC3B,CAAA,CAAC;AAAA,EACH,GAAE,CAAE,CAAA;AACP;AC3Ce,SAASC,GAAShjC,GAAI;AACnC,MAAIijC;AACJ,SAAO,WAAY;AACjB,WAAKA,MACHA,IAAU,IAAI,QAAQ,SAAUC,GAAS;AACvC,cAAQ,UAAU,KAAK,WAAY;AACjC,QAAAD,IAAU,QACVC,EAAQljC,EAAE,CAAE;AAAA,MACtB,CAAS;AAAA,IACT,CAAO,IAGIijC;AAAA,EACX;AACA;ACde,SAASE,GAAYd,GAAW;AAC7C,MAAIe,IAASf,EAAU,OAAO,SAAUe,GAAQC,GAAS;AACvD,QAAIC,IAAWF,EAAOC,EAAQ,IAAI;AAClC,WAAAD,EAAOC,EAAQ,IAAI,IAAIC,IAAW,OAAO,OAAO,CAAA,GAAIA,GAAUD,GAAS;AAAA,MACrE,SAAS,OAAO,OAAO,CAAA,GAAIC,EAAS,SAASD,EAAQ,OAAO;AAAA,MAC5D,MAAM,OAAO,OAAO,CAAA,GAAIC,EAAS,MAAMD,EAAQ,IAAI;AAAA,IACpD,CAAA,IAAIA,GACED;AAAA,EACR,GAAE,CAAE,CAAA;AAEL,SAAO,OAAO,KAAKA,CAAM,EAAE,IAAI,SAAUrf,GAAK;AAC5C,WAAOqf,EAAOrf,CAAG;AAAA,EACrB,CAAG;AACH;ACJA,IAAIwf,KAAkB;AAAA,EACpB,WAAW;AAAA,EACX,WAAW,CAAE;AAAA,EACb,UAAU;AACZ;AAEA,SAASC,KAAmB;AAC1B,WAASrC,IAAO,UAAU,QAAQsC,IAAO,IAAI,MAAMtC,CAAI,GAAGuC,IAAO,GAAGA,IAAOvC,GAAMuC;AAC/E,IAAAD,EAAKC,CAAI,IAAI,UAAUA,CAAI;AAG7B,SAAO,CAACD,EAAK,KAAK,SAAUjU,GAAS;AACnC,WAAO,EAAEA,KAAW,OAAOA,EAAQ,yBAA0B;AAAA,EACjE,CAAG;AACH;AAEO,SAASmU,GAAgBC,GAAkB;AAChD,EAAIA,MAAqB,WACvBA,IAAmB,CAAA;AAGrB,MAAIC,IAAoBD,GACpBE,IAAwBD,EAAkB,kBAC1CE,IAAmBD,MAA0B,SAAS,CAAE,IAAGA,GAC3DE,IAAyBH,EAAkB,gBAC3CI,IAAiBD,MAA2B,SAAST,KAAkBS;AAC3E,SAAO,SAAsBvV,GAAWD,GAAQqF,GAAS;AACvD,IAAIA,MAAY,WACdA,IAAUoQ;AAGZ,QAAIjU,IAAQ;AAAA,MACV,WAAW;AAAA,MACX,kBAAkB,CAAE;AAAA,MACpB,SAAS,OAAO,OAAO,CAAA,GAAIuT,IAAiBU,CAAc;AAAA,MAC1D,eAAe,CAAE;AAAA,MACjB,UAAU;AAAA,QACR,WAAWxV;AAAA,QACX,QAAQD;AAAA,MACT;AAAA,MACD,YAAY,CAAE;AAAA,MACd,QAAQ,CAAE;AAAA,IAChB,GACQ0V,IAAmB,CAAA,GACnBC,IAAc,IACd9M,IAAW;AAAA,MACb,OAAOrH;AAAA,MACP,YAAY,SAAoBoU,GAAkB;AAChD,YAAIvQ,IAAU,OAAOuQ,KAAqB,aAAaA,EAAiBpU,EAAM,OAAO,IAAIoU;AACzF,QAAAC,KACArU,EAAM,UAAU,OAAO,OAAO,CAAA,GAAIiU,GAAgBjU,EAAM,SAAS6D,CAAO,GACxE7D,EAAM,gBAAgB;AAAA,UACpB,WAAW9N,GAAUuM,CAAS,IAAI0K,GAAkB1K,CAAS,IAAIA,EAAU,iBAAiB0K,GAAkB1K,EAAU,cAAc,IAAI,CAAE;AAAA,UAC5I,QAAQ0K,GAAkB3K,CAAM;AAAA,QAC1C;AAGQ,YAAIsU,IAAmBD,GAAeM,GAAY,GAAG,OAAOY,GAAkB/T,EAAM,QAAQ,SAAS,CAAC,CAAC;AAEvG,eAAAA,EAAM,mBAAmB8S,EAAiB,OAAO,SAAUzsC,GAAG;AAC5D,iBAAOA,EAAE;AAAA,QACnB,CAAS,GACDiuC,KACOjN,EAAS;MACjB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMD,aAAa,WAAuB;AAClC,YAAI,CAAA8M,GAIJ;AAAA,cAAII,IAAkBvU,EAAM,UACxBvB,IAAY8V,EAAgB,WAC5B/V,IAAS+V,EAAgB;AAG7B,cAAKf,GAAiB/U,GAAWD,CAAM,GAKvC;AAAA,YAAAwB,EAAM,QAAQ;AAAA,cACZ,WAAW+R,GAAiBtT,GAAWmE,GAAgBpE,CAAM,GAAGwB,EAAM,QAAQ,aAAa,OAAO;AAAA,cAClG,QAAQ2B,GAAcnD,CAAM;AAAA,YACtC,GAMQwB,EAAM,QAAQ,IACdA,EAAM,YAAYA,EAAM,QAAQ,WAKhCA,EAAM,iBAAiB,QAAQ,SAAUwS,GAAU;AACjD,qBAAOxS,EAAM,cAAcwS,EAAS,IAAI,IAAI,OAAO,OAAO,CAAE,GAAEA,EAAS,IAAI;AAAA,YACrF,CAAS;AAED,qBAASgC,IAAQ,GAAGA,IAAQxU,EAAM,iBAAiB,QAAQwU,KAAS;AAClE,kBAAIxU,EAAM,UAAU,IAAM;AACxB,gBAAAA,EAAM,QAAQ,IACdwU,IAAQ;AACR;AAAA,cACD;AAED,kBAAIC,IAAwBzU,EAAM,iBAAiBwU,CAAK,GACpDxkC,IAAKykC,EAAsB,IAC3BC,IAAyBD,EAAsB,SAC/C9J,IAAW+J,MAA2B,SAAS,CAAE,IAAGA,GACpDzU,IAAOwU,EAAsB;AAEjC,cAAI,OAAOzkC,KAAO,eAChBgwB,IAAQhwB,EAAG;AAAA,gBACT,OAAOgwB;AAAA,gBACP,SAAS2K;AAAA,gBACT,MAAM1K;AAAA,gBACN,UAAUoH;AAAA,cACX,CAAA,KAAKrH;AAAA,YAET;AAAA;AAAA;AAAA,MACF;AAAA;AAAA;AAAA,MAGD,QAAQgT,GAAS,WAAY;AAC3B,eAAO,IAAI,QAAQ,SAAUE,GAAS;AACpC,UAAA7L,EAAS,YAAW,GACpB6L,EAAQlT,CAAK;AAAA,QACvB,CAAS;AAAA,MACT,CAAO;AAAA,MACD,SAAS,WAAmB;AAC1B,QAAAqU,KACAF,IAAc;AAAA,MACf;AAAA,IACP;AAEI,QAAI,CAACX,GAAiB/U,GAAWD,CAAM;AACrC,aAAO6I;AAGT,IAAAA,EAAS,WAAWxD,CAAO,EAAE,KAAK,SAAU7D,GAAO;AACjD,MAAI,CAACmU,KAAetQ,EAAQ,iBAC1BA,EAAQ,cAAc7D,CAAK;AAAA,IAEnC,CAAK;AAMD,aAASsU,IAAqB;AAC5B,MAAAtU,EAAM,iBAAiB,QAAQ,SAAUpC,GAAM;AAC7C,YAAIqC,IAAOrC,EAAK,MACZ+W,IAAe/W,EAAK,SACpBiG,IAAU8Q,MAAiB,SAAS,CAAE,IAAGA,GACzCxU,IAASvC,EAAK;AAElB,YAAI,OAAOuC,KAAW,YAAY;AAChC,cAAIyU,IAAYzU,EAAO;AAAA,YACrB,OAAOH;AAAA,YACP,MAAMC;AAAA,YACN,UAAUoH;AAAA,YACV,SAASxD;AAAA,UACrB,CAAW,GAEGgR,IAAS,WAAkB;AAAA;AAE/B,UAAAX,EAAiB,KAAKU,KAAaC,CAAM;AAAA,QAC1C;AAAA,MACT,CAAO;AAAA,IACF;AAED,aAASR,IAAyB;AAChC,MAAAH,EAAiB,QAAQ,SAAUlkC,GAAI;AACrC,eAAOA,EAAE;AAAA,MACjB,CAAO,GACDkkC,IAAmB,CAAA;AAAA,IACpB;AAED,WAAO7M;AAAA,EACX;AACA;ACzLA,IAAI0M,KAAmB,CAACnM,IAAgB7D,IAAe+C,IAAe/G,IAAa8E,IAAQyH,IAAM+C,IAAiB1L,IAAOwK,EAAI,GACzH2G,KAA4B,gBAAAnB,GAAgB;AAAA,EAC9C,kBAAkBI;AACpB,CAAC,GCXGgB,KAAiB,OAAO,UAAY,KACpCC,KAAS,OAAO,OAAQ,YACxBC,KAAS,OAAO,OAAQ,YACxBC,KAAiB,OAAO,eAAgB,cAAc,CAAC,CAAC,YAAY;AAIxE,SAASC,GAAMrvC,GAAGT,GAAG;AAEnB,MAAIS,MAAMT;AAAG,WAAO;AAEpB,MAAIS,KAAKT,KAAK,OAAOS,KAAK,YAAY,OAAOT,KAAK,UAAU;AAC1D,QAAIS,EAAE,gBAAgBT,EAAE;AAAa,aAAO;AAE5C,QAAI61B,GAAQ11B,GAAGw1B;AACf,QAAI,MAAM,QAAQl1B,CAAC,GAAG;AAEpB,UADAo1B,IAASp1B,EAAE,QACPo1B,KAAU71B,EAAE;AAAQ,eAAO;AAC/B,WAAKG,IAAI01B,GAAQ11B,QAAQ;AACvB,YAAI,CAAC2vC,GAAMrvC,EAAEN,CAAC,GAAGH,EAAEG,CAAC,CAAC;AAAG,iBAAO;AACjC,aAAO;AAAA,IACR;AAsBD,QAAI0G;AACJ,QAAI8oC,MAAWlvC,aAAa,OAAST,aAAa,KAAM;AACtD,UAAIS,EAAE,SAAST,EAAE;AAAM,eAAO;AAE9B,WADA6G,IAAKpG,EAAE,WACA,EAAEN,IAAI0G,EAAG,KAAM,GAAE;AACtB,YAAI,CAAC7G,EAAE,IAAIG,EAAE,MAAM,CAAC,CAAC;AAAG,iBAAO;AAEjC,WADA0G,IAAKpG,EAAE,WACA,EAAEN,IAAI0G,EAAG,KAAM,GAAE;AACtB,YAAI,CAACipC,GAAM3vC,EAAE,MAAM,CAAC,GAAGH,EAAE,IAAIG,EAAE,MAAM,CAAC,CAAC,CAAC;AAAG,iBAAO;AACpD,aAAO;AAAA,IACR;AAED,QAAIyvC,MAAWnvC,aAAa,OAAST,aAAa,KAAM;AACtD,UAAIS,EAAE,SAAST,EAAE;AAAM,eAAO;AAE9B,WADA6G,IAAKpG,EAAE,WACA,EAAEN,IAAI0G,EAAG,KAAM,GAAE;AACtB,YAAI,CAAC7G,EAAE,IAAIG,EAAE,MAAM,CAAC,CAAC;AAAG,iBAAO;AACjC,aAAO;AAAA,IACR;AAGD,QAAI0vC,MAAkB,YAAY,OAAOpvC,CAAC,KAAK,YAAY,OAAOT,CAAC,GAAG;AAEpE,UADA61B,IAASp1B,EAAE,QACPo1B,KAAU71B,EAAE;AAAQ,eAAO;AAC/B,WAAKG,IAAI01B,GAAQ11B,QAAQ;AACvB,YAAIM,EAAEN,CAAC,MAAMH,EAAEG,CAAC;AAAG,iBAAO;AAC5B,aAAO;AAAA,IACR;AAED,QAAIM,EAAE,gBAAgB;AAAQ,aAAOA,EAAE,WAAWT,EAAE,UAAUS,EAAE,UAAUT,EAAE;AAK5E,QAAIS,EAAE,YAAY,OAAO,UAAU,WAAW,OAAOA,EAAE,WAAY,cAAc,OAAOT,EAAE,WAAY;AAAY,aAAOS,EAAE,cAAcT,EAAE;AAC3I,QAAIS,EAAE,aAAa,OAAO,UAAU,YAAY,OAAOA,EAAE,YAAa,cAAc,OAAOT,EAAE,YAAa;AAAY,aAAOS,EAAE,eAAeT,EAAE;AAKhJ,QAFA21B,IAAO,OAAO,KAAKl1B,CAAC,GACpBo1B,IAASF,EAAK,QACVE,MAAW,OAAO,KAAK71B,CAAC,EAAE;AAAQ,aAAO;AAE7C,SAAKG,IAAI01B,GAAQ11B,QAAQ;AACvB,UAAI,CAAC,OAAO,UAAU,eAAe,KAAKH,GAAG21B,EAAKx1B,CAAC,CAAC;AAAG,eAAO;AAKhE,QAAIuvC,MAAkBjvC,aAAa;AAAS,aAAO;AAGnD,SAAKN,IAAI01B,GAAQ11B,QAAQ;AACvB,UAAK,GAAAw1B,EAAKx1B,CAAC,MAAM,YAAYw1B,EAAKx1B,CAAC,MAAM,SAASw1B,EAAKx1B,CAAC,MAAM,UAAUM,EAAE,aAatE,CAACqvC,GAAMrvC,EAAEk1B,EAAKx1B,CAAC,CAAC,GAAGH,EAAE21B,EAAKx1B,CAAC,CAAC,CAAC;AAAG,eAAO;AAK7C,WAAO;AAAA,EACR;AAED,SAAOM,MAAMA,KAAKT,MAAMA;AAC1B;AAGA,IAAA+vC,KAAiB,SAAiBtvC,GAAGT,GAAG;AACtC,MAAI;AACF,WAAO8vC,GAAMrvC,GAAGT,CAAC;AAAA,EAClB,SAAQ0nB,GAAO;AACd,SAAMA,EAAM,WAAW,IAAI,MAAM,kBAAkB;AAMjD,qBAAQ,KAAK,gDAAgD,GACtD;AAGT,UAAMA;AAAA,EACP;AACH;;ACrIA,IAAIsoB,KAAkB,CAAA,GACXC,KAAY,SAAmBC,GAAkBC,GAAe3R,GAAS;AAClF,EAAIA,MAAY,WACdA,IAAU,CAAA;AAGZ,MAAI4R,IAAc/Y,EAAM,OAAO,IAAI,GAC/BgZ,IAAsB;AAAA,IACxB,eAAe7R,EAAQ;AAAA,IACvB,WAAWA,EAAQ,aAAa;AAAA,IAChC,UAAUA,EAAQ,YAAY;AAAA,IAC9B,WAAWA,EAAQ,aAAawR;AAAA,EACpC,GAEMM,IAAkBjZ,EAAM,SAAS;AAAA,IACnC,QAAQ;AAAA,MACN,QAAQ;AAAA,QACN,UAAUgZ,EAAoB;AAAA,QAC9B,MAAM;AAAA,QACN,KAAK;AAAA,MACN;AAAA,MACD,OAAO;AAAA,QACL,UAAU;AAAA,MACX;AAAA,IACF;AAAA,IACD,YAAY,CAAE;AAAA,EAClB,CAAG,GACG1V,IAAQ2V,EAAgB,CAAC,GACzBC,IAAWD,EAAgB,CAAC,GAE5BE,IAAsBnZ,EAAM,QAAQ,WAAY;AAClD,WAAO;AAAA,MACL,MAAM;AAAA,MACN,SAAS;AAAA,MACT,OAAO;AAAA,MACP,IAAI,SAAYkB,GAAM;AACpB,YAAIoC,IAAQpC,EAAK,OACbkY,IAAW,OAAO,KAAK9V,EAAM,QAAQ;AACzC,QAAA+V,GAAS,UAAU,WAAY;AAC7B,UAAAH,EAAS;AAAA,YACP,QAAQnY,GAAYqY,EAAS,IAAI,SAAUtW,GAAS;AAClD,qBAAO,CAACA,GAASQ,EAAM,OAAOR,CAAO,KAAK,CAAA,CAAE;AAAA,YAC1D,CAAa,CAAC;AAAA,YACF,YAAY/B,GAAYqY,EAAS,IAAI,SAAUtW,GAAS;AACtD,qBAAO,CAACA,GAASQ,EAAM,WAAWR,CAAO,CAAC;AAAA,YACxD,CAAa,CAAC;AAAA,UACd,CAAW;AAAA,QACX,CAAS;AAAA,MACF;AAAA,MACD,UAAU,CAAC,eAAe;AAAA,IAChC;AAAA,EACG,GAAE,CAAE,CAAA,GACDwW,IAAgBtZ,EAAM,QAAQ,WAAY;AAC5C,QAAIuZ,IAAa;AAAA,MACf,eAAeP,EAAoB;AAAA,MACnC,WAAWA,EAAoB;AAAA,MAC/B,UAAUA,EAAoB;AAAA,MAC9B,WAAW,CAAE,EAAC,OAAOA,EAAoB,WAAW,CAACG,GAAqB;AAAA,QACxE,MAAM;AAAA,QACN,SAAS;AAAA,MACjB,CAAO,CAAC;AAAA,IACR;AAEI,WAAIK,GAAQT,EAAY,SAASQ,CAAU,IAClCR,EAAY,WAAWQ,KAE9BR,EAAY,UAAUQ,GACfA;AAAA,EAEV,GAAE,CAACP,EAAoB,eAAeA,EAAoB,WAAWA,EAAoB,UAAUA,EAAoB,WAAWG,CAAmB,CAAC,GACnJM,IAAoBzZ,EAAM;AAC9B,SAAAmB,GAA0B,WAAY;AACpC,IAAIsY,EAAkB,WACpBA,EAAkB,QAAQ,WAAWH,CAAa;AAAA,EAExD,GAAK,CAACA,CAAa,CAAC,GAClBnY,GAA0B,WAAY;AACpC,QAAI,EAAA0X,KAAoB,QAAQC,KAAiB,OAIjD;AAAA,UAAIV,IAAejR,EAAQ,gBAAgBuS,IACvCC,IAAiBvB,EAAaS,GAAkBC,GAAeQ,CAAa;AAChF,aAAAG,EAAkB,UAAUE,GACrB,WAAY;AACjB,QAAAA,EAAe,QAAO,GACtBF,EAAkB,UAAU;AAAA,MAClC;AAAA;AAAA,EACG,GAAE,CAACZ,GAAkBC,GAAe3R,EAAQ,YAAY,CAAC,GACnD;AAAA,IACL,OAAOsS,EAAkB,UAAUA,EAAkB,QAAQ,QAAQ;AAAA,IACrE,QAAQnW,EAAM;AAAA,IACd,YAAYA,EAAM;AAAA,IAClB,QAAQmW,EAAkB,UAAUA,EAAkB,QAAQ,SAAS;AAAA,IACvE,aAAaA,EAAkB,UAAUA,EAAkB,QAAQ,cAAc;AAAA,EACrF;AACA,GCrGI1a,KAAY,CAAC,aAAa,aAAa,QAAQ,YAAY,KAAK;AACpE,SAASC,KAAW;AAAEA,SAAAA,KAAW,OAAO,SAAS,OAAO,OAAO,KAAM,IAAG,SAAU/H,GAAQ;AAAE,aAASnuB,IAAI,GAAGA,IAAI,UAAU,QAAQA,KAAK;AAAE,UAAIouB,IAAS,UAAUpuB,CAAC;AAAG,eAASuuB,KAAOH;AAAU,QAAI,OAAO,UAAU,eAAe,KAAKA,GAAQG,CAAG,MAAKJ,EAAOI,CAAG,IAAIH,EAAOG,CAAG;AAAA;AAAS,WAAOJ;AAAA,EAAS,GAAS+H,GAAS,MAAM,MAAM,SAAS;AAAI;AACnV,SAASC,GAAQ9K,GAAQ+K,GAAgB;AAAE,MAAIZ,IAAO,OAAO,KAAKnK,CAAM;AAAG,MAAI,OAAO,uBAAuB;AAAE,QAAIiD,IAAU,OAAO,sBAAsBjD,CAAM;AAAG,IAAA+K,MAAmB9H,IAAUA,EAAQ,OAAO,SAAU+H,GAAK;AAAE,aAAO,OAAO,yBAAyBhL,GAAQgL,CAAG,EAAE;AAAA,IAAW,CAAE,IAAIb,EAAK,KAAK,MAAMA,GAAMlH,CAAO;AAAA,EAAE;AAAG,SAAOkH;AAAO;AACrV,SAASc,GAAcnI,GAAQ;AAAE,WAASnuB,IAAI,GAAGA,IAAI,UAAU,QAAQA,KAAK;AAAE,QAAIouB,IAAiB,UAAUpuB,CAAC,KAAnB,OAAuB,UAAUA,CAAC,IAAI,CAAE;AAAE,IAAAA,IAAI,IAAIm2B,GAAQ,OAAO/H,CAAM,GAAG,EAAE,EAAE,QAAQ,SAAUG,GAAK;AAAEgI,MAAAA,GAAgBpI,GAAQI,GAAKH,EAAOG,CAAG,CAAC;AAAA,IAAI,CAAA,IAAI,OAAO,4BAA4B,OAAO,iBAAiBJ,GAAQ,OAAO,0BAA0BC,CAAM,CAAC,IAAI+H,GAAQ,OAAO/H,CAAM,CAAC,EAAE,QAAQ,SAAUG,GAAK;AAAE,aAAO,eAAeJ,GAAQI,GAAK,OAAO,yBAAyBH,GAAQG,CAAG,CAAC;AAAA,IAAE,CAAE;AAAA,EAAI;AAAC,SAAOJ;AAAS;AAC1f,SAASoI,GAAgBxB,GAAKxG,GAAK0E,GAAO;AAAE,SAAI1E,KAAOwG,IAAO,OAAO,eAAeA,GAAKxG,GAAK,EAAE,OAAO0E,GAAO,YAAY,IAAM,cAAc,IAAM,UAAU,GAAM,CAAA,IAAY8B,EAAIxG,CAAG,IAAI0E,GAAgB8B;AAAM;AACjN,SAASyB,GAAyBpI,GAAQqI,GAAU;AAAE,MAAIrI,KAAU;AAAM,WAAO;AAAI,MAAID,IAASuI,GAA8BtI,GAAQqI,CAAQ,GAAOlI,GAAKvuB;AAAG,MAAI,OAAO,uBAAuB;AAAE,QAAI22B,IAAmB,OAAO,sBAAsBvI,CAAM;AAAG,SAAKpuB,IAAI,GAAGA,IAAI22B,EAAiB,QAAQ32B;AAAkC,MAA3BuuB,IAAMoI,EAAiB32B,CAAC,GAAO,EAAAy2B,EAAS,QAAQlI,CAAG,KAAK,MAAkB,OAAO,UAAU,qBAAqB,KAAKH,GAAQG,CAAG,MAAaJ,EAAOI,CAAG,IAAIH,EAAOG,CAAG;AAAA,EAAI;AAAG,SAAOJ;AAAS;AAC5e,SAASuI,GAA8BtI,GAAQqI,GAAU;AAAE,MAAIrI,KAAU;AAAM,WAAO,CAAE;AAAE,MAAID,IAAS,CAAE,GAAMyI,IAAa,OAAO,KAAKxI,CAAM,GAAOG,GAAK;AAAG,OAAK,IAAI,GAAG,IAAIqI,EAAW,QAAQ;AAA4B,IAArBrI,IAAMqI,EAAW,CAAC,GAAO,EAAAH,EAAS,QAAQlI,CAAG,KAAK,OAAaJ,EAAOI,CAAG,IAAIH,EAAOG,CAAG;AAAK,SAAOJ;AAAS;AAKnT,IAAI0I,KAAY;AAAA;AAAA,EAEd,cAAcjB,EAAU;AAAA;AAAA,EAExB,WAAWA,EAAU;AAAA;AAAA,EAErB,WAAWA,EAAU;AAAA;AAAA,EAErB,MAAMA,EAAU;AAAA;AAAA,EAEhB,MAAMA,EAAU;AAAA;AAAA,EAEhB,KAAKC;AAAA;AAAA,EAEL,UAAUD,EAAU;AACtB;AACA,SAASkb,GAAYhf,GAAO;AAC1B,MAAIoD,IAAYpD,EAAM,WACpBqD,IAAYrD,EAAM,WAClB+F,IAAO/F,EAAM,MACbif,IAAWjf,EAAM,UACjBgG,IAAahG,EAAM,KACnBiG,IAAMD,MAAe,SAAS,QAAQA,GACtCb,IAAaT,GAAyB1E,GAAOmE,EAAS,GACpDzB,IAAUS,GAAgBV,GAAWW,GAAW2C,IAAO,eAAeA,IAAO,IAAOkZ,IAAW,uBAAuB,WAAW,GAAG5b,CAAS;AACjJ,SAAoB+B,gBAAAA,GAAM,cAAca,GAAK7B,GAAS,CAAA,GAAII,GAAc;AAAA,IACtE,MAAM;AAAA,EACP,GAAEW,CAAU,GAAG;AAAA,IACd,WAAWzC;AAAA,EACZ,CAAA,CAAC;AACJ;AACAsc,GAAY,YAAYja;AC1CT,SAASH,GAA8BtI,GAAQqI,GAAU;AACtE,MAAIrI,KAAU;AAAM,WAAO;AAC3B,MAAID,IAAS,CAAA,GACTyI,IAAa,OAAO,KAAKxI,CAAM,GAC/BG,GAAK;AACT,OAAK,IAAI,GAAG,IAAIqI,EAAW,QAAQ;AAEjC,IADArI,IAAMqI,EAAW,CAAC,GACd,EAAAH,EAAS,QAAQlI,CAAG,KAAK,OAC7BJ,EAAOI,CAAG,IAAIH,EAAOG,CAAG;AAE1B,SAAOJ;AACT;ACXe,SAAS6iB,GAAgBjxC,GAAGsB,GAAG;AAC5C2vC,SAAAA,KAAkB,OAAO,iBAAiB,OAAO,eAAe,KAAI,IAAK,SAAyB,GAAG3vC,GAAG;AACtG,aAAE,YAAYA,GACP;AAAA,EACX,GACS2vC,GAAgBjxC,GAAGsB,CAAC;AAC7B;ACLe,SAAS4vC,GAAeC,GAAUC,GAAY;AAC3D,EAAAD,EAAS,YAAY,OAAO,OAAOC,EAAW,SAAS,GACvDD,EAAS,UAAU,cAAcA,GACjCE,GAAeF,GAAUC,CAAU;AACrC;ACLA,MAAeE,KAAA;AAAA,EACb,UAAU;AACZ;ACDO,IAAIC,KAAgB,QAAQ,IAAI,aAAa,eAAe1b,EAAU,UAAU,CAACA,EAAU,QAAQA,EAAU,MAAM;AAAA,EACxH,OAAOA,EAAU;AAAA,EACjB,MAAMA,EAAU;AAAA,EAChB,QAAQA,EAAU;AACpB,CAAC,EAAE,UAAU,CAAC,IAAI;AACW,QAAQ,IAAI,aAAa,gBAAeA,EAAU,UAAU,CAACA,EAAU,QAAQA,EAAU,MAAM;AAAA,EAC1H,OAAOA,EAAU;AAAA,EACjB,MAAMA,EAAU;AAAA,EAChB,QAAQA,EAAU;AACpB,CAAC,GAAGA,EAAU,MAAM;AAAA,EAClB,OAAOA,EAAU;AAAA,EACjB,WAAWA,EAAU;AAAA,EACrB,aAAaA,EAAU;AAAA,EACvB,MAAMA,EAAU;AAAA,EAChB,UAAUA,EAAU;AAAA,EACpB,YAAYA,EAAU;AACxB,CAAC,CAAC,CAAC;AChBH,MAAA2b,KAAera,GAAM,cAAc,IAAI;ACDhC,IAAIsa,KAAc,SAAqBtX,GAAM;AAClD,SAAOA,EAAK;AACd,GCOWuX,KAAY,aACZC,KAAS,UACTC,KAAW,YACXC,KAAU,WACVC,KAAU,WA6FjBC,KAA0B,yBAAUC,GAAkB;AACxD,EAAAd,GAAea,GAAYC,CAAgB;AAE3C,WAASD,EAAWhgB,GAAOkgB,GAAS;AAClC,QAAIC;AAEJ,IAAAA,IAAQF,EAAiB,KAAK,MAAMjgB,GAAOkgB,CAAO,KAAK;AACvD,QAAIE,IAAcF,GAEdG,IAASD,KAAe,CAACA,EAAY,aAAapgB,EAAM,QAAQA,EAAM,QACtEsgB;AACJ,WAAAH,EAAM,eAAe,MAEjBngB,EAAM,KACJqgB,KACFC,IAAgBV,IAChBO,EAAM,eAAeN,MAErBS,IAAgBR,KAGd9f,EAAM,iBAAiBA,EAAM,eAC/BsgB,IAAgBX,KAEhBW,IAAgBV,IAIpBO,EAAM,QAAQ;AAAA,MACZ,QAAQG;AAAA,IACd,GACIH,EAAM,eAAe,MACdA;AAAA,EACR;AAED,EAAAH,EAAW,2BAA2B,SAAkC1Z,GAAMia,GAAW;AACvF,QAAIC,IAASla,EAAK;AAElB,WAAIka,KAAUD,EAAU,WAAWZ,KAC1B;AAAA,MACL,QAAQC;AAAA,IAChB,IAGW;AAAA,EACR;AAkBD,MAAIa,IAAST,EAAW;AAExB,SAAAS,EAAO,oBAAoB,WAA6B;AACtD,SAAK,aAAa,IAAM,KAAK,YAAY;AAAA,EAC7C,GAEEA,EAAO,qBAAqB,SAA4BC,GAAW;AACjE,QAAIC,IAAa;AAEjB,QAAID,MAAc,KAAK,OAAO;AAC5B,UAAIE,IAAS,KAAK,MAAM;AAExB,MAAI,KAAK,MAAM,KACTA,MAAWf,MAAYe,MAAWd,OACpCa,IAAad,OAGXe,MAAWf,MAAYe,MAAWd,QACpCa,IAAaZ;AAAA,IAGlB;AAED,SAAK,aAAa,IAAOY,CAAU;AAAA,EACvC,GAEEF,EAAO,uBAAuB,WAAgC;AAC5D,SAAK,mBAAkB;AAAA,EAC3B,GAEEA,EAAO,cAAc,WAAuB;AAC1C,QAAII,IAAU,KAAK,MAAM,SACrBC,GAAMC,GAAOV;AACjB,WAAAS,IAAOC,IAAQV,IAASQ,GAEpBA,KAAW,QAAQ,OAAOA,KAAY,aACxCC,IAAOD,EAAQ,MACfE,IAAQF,EAAQ,OAEhBR,IAASQ,EAAQ,WAAW,SAAYA,EAAQ,SAASE,IAGpD;AAAA,MACL,MAAMD;AAAA,MACN,OAAOC;AAAA,MACP,QAAQV;AAAA,IACd;AAAA,EACA,GAEEI,EAAO,eAAe,SAAsBO,GAAUL,GAAY;AAKhE,QAJIK,MAAa,WACfA,IAAW,KAGTL,MAAe;AAIjB,UAFA,KAAK,mBAAkB,GAEnBA,MAAed,IAAU;AAC3B,YAAI,KAAK,MAAM,iBAAiB,KAAK,MAAM,cAAc;AACvD,cAAIzX,IAAO,KAAK,MAAM,UAAU,KAAK,MAAM,QAAQ,UAAUqW,GAAS,YAAY,IAAI;AAItF,UAAIrW,KAAMsX,GAAYtX,CAAI;AAAA,QAC3B;AAED,aAAK,aAAa4Y,CAAQ;AAAA,MAClC;AACQ,aAAK,YAAW;AAAA;AAEb,MAAI,KAAK,MAAM,iBAAiB,KAAK,MAAM,WAAWpB,MAC3D,KAAK,SAAS;AAAA,QACZ,QAAQD;AAAA,MAChB,CAAO;AAAA,EAEP,GAEEc,EAAO,eAAe,SAAsBO,GAAU;AACpD,QAAIC,IAAS,MAETF,IAAQ,KAAK,MAAM,OACnBG,IAAY,KAAK,UAAU,KAAK,QAAQ,aAAaF,GAErDlY,IAAQ,KAAK,MAAM,UAAU,CAACoY,CAAS,IAAI,CAACzC,GAAS,YAAY,IAAI,GAAGyC,CAAS,GACjFC,IAAYrY,EAAM,CAAC,GACnBsY,IAAiBtY,EAAM,CAAC,GAExBuY,IAAW,KAAK,eAChBC,IAAeJ,IAAYG,EAAS,SAASA,EAAS;AAG1D,QAAI,CAACL,KAAY,CAACD,KAAS3qB,GAAO,UAAU;AAC1C,WAAK,aAAa;AAAA,QAChB,QAAQ0pB;AAAA,MAChB,GAAS,WAAY;AACb,QAAAmB,EAAO,MAAM,UAAUE,CAAS;AAAA,MACxC,CAAO;AACD;AAAA,IACD;AAED,SAAK,MAAM,QAAQA,GAAWC,CAAc,GAC5C,KAAK,aAAa;AAAA,MAChB,QAAQvB;AAAA,IACd,GAAO,WAAY;AACb,MAAAoB,EAAO,MAAM,WAAWE,GAAWC,CAAc,GAEjDH,EAAO,gBAAgBK,GAAc,WAAY;AAC/C,QAAAL,EAAO,aAAa;AAAA,UAClB,QAAQnB;AAAA,QAClB,GAAW,WAAY;AACb,UAAAmB,EAAO,MAAM,UAAUE,GAAWC,CAAc;AAAA,QAC1D,CAAS;AAAA,MACT,CAAO;AAAA,IACP,CAAK;AAAA,EACL,GAEEX,EAAO,cAAc,WAAuB;AAC1C,QAAIc,IAAS,MAETT,IAAO,KAAK,MAAM,MAClBO,IAAW,KAAK,eAChBF,IAAY,KAAK,MAAM,UAAU,SAAY1C,GAAS,YAAY,IAAI;AAE1E,QAAI,CAACqC,KAAQ1qB,GAAO,UAAU;AAC5B,WAAK,aAAa;AAAA,QAChB,QAAQwpB;AAAA,MAChB,GAAS,WAAY;AACb,QAAA2B,EAAO,MAAM,SAASJ,CAAS;AAAA,MACvC,CAAO;AACD;AAAA,IACD;AAED,SAAK,MAAM,OAAOA,CAAS,GAC3B,KAAK,aAAa;AAAA,MAChB,QAAQpB;AAAA,IACd,GAAO,WAAY;AACb,MAAAwB,EAAO,MAAM,UAAUJ,CAAS,GAEhCI,EAAO,gBAAgBF,EAAS,MAAM,WAAY;AAChD,QAAAE,EAAO,aAAa;AAAA,UAClB,QAAQ3B;AAAA,QAClB,GAAW,WAAY;AACb,UAAA2B,EAAO,MAAM,SAASJ,CAAS;AAAA,QACzC,CAAS;AAAA,MACT,CAAO;AAAA,IACP,CAAK;AAAA,EACL,GAEEV,EAAO,qBAAqB,WAA8B;AACxD,IAAI,KAAK,iBAAiB,SACxB,KAAK,aAAa,UAClB,KAAK,eAAe;AAAA,EAE1B,GAEEA,EAAO,eAAe,SAAsBe,GAAWC,GAAU;AAI/D,IAAAA,IAAW,KAAK,gBAAgBA,CAAQ,GACxC,KAAK,SAASD,GAAWC,CAAQ;AAAA,EACrC,GAEEhB,EAAO,kBAAkB,SAAyBgB,GAAU;AAC1D,QAAIC,IAAS,MAETlc,IAAS;AAEb,gBAAK,eAAe,SAAUmc,GAAO;AACnC,MAAInc,MACFA,IAAS,IACTkc,EAAO,eAAe,MACtBD,EAASE,CAAK;AAAA,IAEtB,GAEI,KAAK,aAAa,SAAS,WAAY;AACrC,MAAAnc,IAAS;AAAA,IACf,GAEW,KAAK;AAAA,EAChB,GAEEib,EAAO,kBAAkB,SAAyBI,GAASe,GAAS;AAClE,SAAK,gBAAgBA,CAAO;AAC5B,QAAIxZ,IAAO,KAAK,MAAM,UAAU,KAAK,MAAM,QAAQ,UAAUqW,GAAS,YAAY,IAAI,GAClFoD,IAA+BhB,KAAW,QAAQ,CAAC,KAAK,MAAM;AAElE,QAAI,CAACzY,KAAQyZ,GAA8B;AACzC,iBAAW,KAAK,cAAc,CAAC;AAC/B;AAAA,IACD;AAED,QAAI,KAAK,MAAM,gBAAgB;AAC7B,UAAIjT,IAAQ,KAAK,MAAM,UAAU,CAAC,KAAK,YAAY,IAAI,CAACxG,GAAM,KAAK,YAAY,GAC3E+Y,IAAYvS,EAAM,CAAC,GACnBkT,IAAoBlT,EAAM,CAAC;AAE/B,WAAK,MAAM,eAAeuS,GAAWW,CAAiB;AAAA,IACvD;AAED,IAAIjB,KAAW,QACb,WAAW,KAAK,cAAcA,CAAO;AAAA,EAE3C,GAEEJ,EAAO,SAAS,WAAkB;AAChC,QAAIG,IAAS,KAAK,MAAM;AAExB,QAAIA,MAAWjB;AACb,aAAO;AAGN,QAACoC,IAAc,KAAK,OACnBC,IAAWD,EAAY;AACjB,IAAAA,EAAY,IACFA,EAAY,cACXA,EAAY,eACnBA,EAAY,QACbA,EAAY,OACbA,EAAY,MACTA,EAAY,SACLA,EAAY,gBACnBA,EAAY,SACTA,EAAY,YACbA,EAAY,WACfA,EAAY,QACTA,EAAY,WACbA,EAAY,UACbA,EAAY;AAC/B,QAAQE,IAAard,GAA8Bmd,GAAa,CAAC,YAAY,MAAM,gBAAgB,iBAAiB,UAAU,SAAS,QAAQ,WAAW,kBAAkB,WAAW,cAAc,aAAa,UAAU,aAAa,YAAY,SAAS,CAAC;AAE3P;AAAA;AAAA,MAGE3c,gBAAAA,GAAM,cAAcqa,GAAuB,UAAU;AAAA,QACnD,OAAO;AAAA,MACf,GAAS,OAAOuC,KAAa,aAAaA,EAASpB,GAAQqB,CAAU,IAAI7c,GAAM,aAAaA,GAAM,SAAS,KAAK4c,CAAQ,GAAGC,CAAU,CAAC;AAAA;AAAA,EAEtI,GAESjC;AACT,EAAE5a,GAAM,SAAS;AAEjB4a,GAAW,cAAcP;AACzBO,GAAW,YAAY,QAAQ,IAAI,aAAa,eAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAY7D,SAASlc,EAAU,MAAM;AAAA,IACvB,SAAS,OAAO,UAAY,MAAcA,EAAU,MAAM,SAAUvD,GAAW9D,GAAKY,GAAeD,GAAU8C,GAAcC,GAAQ;AACjI,UAAIgB,IAAQZ,EAAU9D,CAAG;AACzB,aAAOqH,EAAU,WAAW3C,KAAS,mBAAmBA,IAAQA,EAAM,cAAc,YAAY,UAAU,OAAO,EAAEZ,GAAW9D,GAAKY,GAAeD,GAAU8C,GAAcC,CAAM;AAAA,IACjL;AAAA,EACL,CAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAgBD,UAAU2D,EAAU,UAAU,CAACA,EAAU,KAAK,YAAYA,EAAU,QAAQ,UAAU,CAAC,EAAE;AAAA;AAAA;AAAA;AAAA,EAKzF,IAAIA,EAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQd,cAAcA,EAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAMxB,eAAeA,EAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAazB,QAAQA,EAAU;AAAA;AAAA;AAAA;AAAA,EAKlB,OAAOA,EAAU;AAAA;AAAA;AAAA;AAAA,EAKjB,MAAMA,EAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA4BhB,SAAS,SAAiB9D,GAAO;AAC/B,QAAIxqB,IAAKgqC;AACT,IAAKxf,EAAM,mBAAgBxqB,IAAKA,EAAG;AAEnC,aAASqkC,IAAO,UAAU,QAAQsC,IAAO,IAAI,MAAMtC,IAAO,IAAIA,IAAO,IAAI,CAAC,GAAGuC,IAAO,GAAGA,IAAOvC,GAAMuC;AAClG,MAAAD,EAAKC,IAAO,CAAC,IAAI,UAAUA,CAAI;AAGjC,WAAO5mC,EAAG,MAAM,QAAQ,CAACwqB,CAAK,EAAE,OAAOmc,CAAI,CAAC;AAAA,EAC7C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAgBD,gBAAgBrY,EAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAU1B,SAASA,EAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUnB,YAAYA,EAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUtB,WAAWA,EAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASrB,QAAQA,EAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASlB,WAAWA,EAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASrB,UAAUA,EAAU;AACtB,IAAI;AAEJ,SAASoe,KAAO;AAAE;AAElBlC,GAAW,eAAe;AAAA,EACxB,IAAI;AAAA,EACJ,cAAc;AAAA,EACd,eAAe;AAAA,EACf,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,MAAM;AAAA,EACN,SAASkC;AAAA,EACT,YAAYA;AAAA,EACZ,WAAWA;AAAA,EACX,QAAQA;AAAA,EACR,WAAWA;AAAA,EACX,UAAUA;AACZ;AACAlC,GAAW,YAAYL;AACvBK,GAAW,SAASJ;AACpBI,GAAW,WAAWH;AACtBG,GAAW,UAAUF;AACrBE,GAAW,UAAUD;AACrB,MAAAoC,KAAenC;AChnBf,SAAShd,GAAQC,GAAK;AAAE;AAA2B,SAAOD,KAAwB,OAAO,UAArB,cAA2C,OAAO,OAAO,YAA1B,WAAqC,SAAUC,GAAK;AAAE,WAAO,OAAOA;AAAA,MAAS,SAAUA,GAAK;AAAE,WAAOA,KAAqB,OAAO,UAArB,cAA+BA,EAAI,gBAAgB,UAAUA,MAAQ,OAAO,YAAY,WAAW,OAAOA;AAAA,EAAI,GAAID,GAAQC,CAAG;AAAI;AAChV,IAAIkB,KAAY,CAAC,OAAO,cAAc,UAAU,aAAa,UAAU,aAAa,YAAY,UAAU,GACtGie;AACJ,SAAShe,KAAW;AAAE,SAAAA,KAAW,OAAO,SAAS,OAAO,OAAO,KAAM,IAAG,SAAU/H,GAAQ;AAAE,aAASnuB,IAAI,GAAGA,IAAI,UAAU,QAAQA,KAAK;AAAE,UAAIouB,IAAS,UAAUpuB,CAAC;AAAG,eAASuuB,KAAOH;AAAU,QAAI,OAAO,UAAU,eAAe,KAAKA,GAAQG,CAAG,MAAKJ,EAAOI,CAAG,IAAIH,EAAOG,CAAG;AAAA;AAAS,WAAOJ;AAAA,EAAS,GAAS+H,GAAS,MAAM,MAAM,SAAS;AAAI;AACnV,SAASM,GAAyBpI,GAAQqI,GAAU;AAAE,MAAIrI,KAAU;AAAM,WAAO;AAAI,MAAID,IAASuI,GAA8BtI,GAAQqI,CAAQ,GAAOlI,GAAKvuB;AAAG,MAAI,OAAO,uBAAuB;AAAE,QAAI22B,IAAmB,OAAO,sBAAsBvI,CAAM;AAAG,SAAKpuB,IAAI,GAAGA,IAAI22B,EAAiB,QAAQ32B;AAAkC,MAA3BuuB,IAAMoI,EAAiB32B,CAAC,GAAO,EAAAy2B,EAAS,QAAQlI,CAAG,KAAK,MAAkB,OAAO,UAAU,qBAAqB,KAAKH,GAAQG,CAAG,MAAaJ,EAAOI,CAAG,IAAIH,EAAOG,CAAG;AAAA,EAAI;AAAG,SAAOJ;AAAS;AAC5e,SAASuI,GAA8BtI,GAAQqI,GAAU;AAAE,MAAIrI,KAAU;AAAM,WAAO,CAAE;AAAE,MAAID,IAAS,CAAE,GAAMyI,IAAa,OAAO,KAAKxI,CAAM,GAAOG,GAAK;AAAG,OAAK,IAAI,GAAG,IAAIqI,EAAW,QAAQ;AAA4B,IAArBrI,IAAMqI,EAAW,CAAC,GAAO,EAAAH,EAAS,QAAQlI,CAAG,KAAK,OAAaJ,EAAOI,CAAG,IAAIH,EAAOG,CAAG;AAAK,SAAOJ;AAAS;AACnT,SAASgmB,GAAgBtS,GAAUuS,GAAa;AAAE,MAAI,EAAEvS,aAAoBuS;AAAgB,UAAM,IAAI,UAAU,mCAAmC;AAAM;AACzJ,SAASC,GAAkBlmB,GAAQ2D,GAAO;AAAE,WAAS9xB,IAAI,GAAGA,IAAI8xB,EAAM,QAAQ9xB,KAAK;AAAE,QAAIs0C,IAAaxiB,EAAM9xB,CAAC;AAAG,IAAAs0C,EAAW,aAAaA,EAAW,cAAc,IAAOA,EAAW,eAAe,IAAU,WAAWA,MAAYA,EAAW,WAAW,KAAM,OAAO,eAAenmB,GAAQmmB,EAAW,KAAKA,CAAU;AAAA;AAAM;AAC7T,SAASC,GAAaH,GAAaI,GAAYC,GAAa;AAAE,SAAID,KAAYH,GAAkBD,EAAY,WAAWI,CAAU,GAAOC,KAAaJ,GAAkBD,GAAaK,CAAW,GAAG,OAAO,eAAeL,GAAa,aAAa,EAAE,UAAU,GAAO,CAAA,GAAUA;AAAc;AAC7R,SAASM,GAAUxD,GAAUC,GAAY;AAAE,MAAI,OAAOA,KAAe,cAAcA,MAAe;AAAQ,UAAM,IAAI,UAAU,oDAAoD;AAAK,EAAAD,EAAS,YAAY,OAAO,OAAOC,KAAcA,EAAW,WAAW,EAAE,aAAa,EAAE,OAAOD,GAAU,UAAU,IAAM,cAAc,GAAI,GAAI,GAAG,OAAO,eAAeA,GAAU,aAAa,EAAE,UAAU,GAAK,CAAE,GAAOC,KAAYH,GAAgBE,GAAUC,CAAU;AAAI;AACpc,SAASH,GAAgBjxC,GAAGsB,GAAG;AAAE,SAAA2vC,KAAkB,OAAO,iBAAiB,OAAO,eAAe,KAAM,IAAG,SAAyB,GAAG3vC,GAAG;AAAE,aAAE,YAAYA,GAAU;AAAA,EAAI,GAAS2vC,GAAgBjxC,GAAGsB,CAAC;AAAI;AACxM,SAASszC,GAAaC,GAAS;AAAE,MAAIC,IAA4BC,GAAyB;AAAI,SAAO,WAAgC;AAAE,QAAIC,IAAQC,GAAgBJ,CAAO,GAAGtf;AAAQ,QAAIuf,GAA2B;AAAE,UAAII,IAAYD,GAAgB,IAAI,EAAE;AAAa,MAAA1f,IAAS,QAAQ,UAAUyf,GAAO,WAAWE,CAAS;AAAA;AAAY,MAAA3f,IAASyf,EAAM,MAAM,MAAM,SAAS;AAAK,WAAOG,GAA2B,MAAM5f,CAAM;AAAA,EAAE;AAAK;AACza,SAAS4f,GAA2BC,GAAMC,GAAM;AAAE,MAAIA,MAAStgB,GAAQsgB,CAAI,MAAM,YAAY,OAAOA,KAAS;AAAe,WAAOA;AAAa,MAAIA,MAAS;AAAU,UAAM,IAAI,UAAU,0DAA0D;AAAK,SAAOC,GAAuBF,CAAI;AAAI;AAChS,SAASE,GAAuBF,GAAM;AAAE,MAAIA,MAAS;AAAU,UAAM,IAAI,eAAe,2DAA2D;AAAK,SAAOA;AAAO;AACtK,SAASL,KAA4B;AAA0E,MAApE,OAAO,UAAY,OAAe,CAAC,QAAQ,aAA6B,QAAQ,UAAU;AAAM,WAAO;AAAO,MAAI,OAAO,SAAU;AAAY,WAAO;AAAM,MAAI;AAAE,mBAAQ,UAAU,QAAQ,KAAK,QAAQ,UAAU,SAAS,IAAI,WAAY;AAAA,IAAE,CAAA,CAAC,GAAU;AAAA,EAAO,QAAW;AAAE,WAAO;AAAA;AAAU;AACzU,SAASE,GAAgBj1C,GAAG;AAAE,SAAAi1C,KAAkB,OAAO,iBAAiB,OAAO,eAAe,SAAS,SAAyBj1C,GAAG;AAAE,WAAOA,EAAE,aAAa,OAAO,eAAeA,CAAC;AAAA,EAAE,GAAWi1C,GAAgBj1C,CAAC;AAAI;AACpN,SAASo2B,GAAQ9K,GAAQ+K,GAAgB;AAAE,MAAIZ,IAAO,OAAO,KAAKnK,CAAM;AAAG,MAAI,OAAO,uBAAuB;AAAE,QAAIiD,IAAU,OAAO,sBAAsBjD,CAAM;AAAG,IAAA+K,MAAmB9H,IAAUA,EAAQ,OAAO,SAAU+H,GAAK;AAAE,aAAO,OAAO,yBAAyBhL,GAAQgL,CAAG,EAAE;AAAA,IAAW,CAAE,IAAIb,EAAK,KAAK,MAAMA,GAAMlH,CAAO;AAAA,EAAE;AAAG,SAAOkH;AAAO;AACrV,SAASc,GAAcnI,GAAQ;AAAE,WAASnuB,IAAI,GAAGA,IAAI,UAAU,QAAQA,KAAK;AAAE,QAAIouB,IAAiB,UAAUpuB,CAAC,KAAnB,OAAuB,UAAUA,CAAC,IAAI,CAAE;AAAE,IAAAA,IAAI,IAAIm2B,GAAQ,OAAO/H,CAAM,GAAG,EAAE,EAAE,QAAQ,SAAUG,GAAK;AAAE,MAAAgI,GAAgBpI,GAAQI,GAAKH,EAAOG,CAAG,CAAC;AAAA,IAAI,CAAA,IAAI,OAAO,4BAA4B,OAAO,iBAAiBJ,GAAQ,OAAO,0BAA0BC,CAAM,CAAC,IAAI+H,GAAQ,OAAO/H,CAAM,CAAC,EAAE,QAAQ,SAAUG,GAAK;AAAE,aAAO,eAAeJ,GAAQI,GAAK,OAAO,yBAAyBH,GAAQG,CAAG,CAAC;AAAA,IAAE,CAAE;AAAA,EAAI;AAAC,SAAOJ;AAAS;AAC1f,SAASoI,GAAgBxB,GAAKxG,GAAK0E,GAAO;AAAE,SAAI1E,KAAOwG,IAAO,OAAO,eAAeA,GAAKxG,GAAK,EAAE,OAAO0E,GAAO,YAAY,IAAM,cAAc,IAAM,UAAU,GAAM,CAAA,IAAY8B,EAAIxG,CAAG,IAAI0E,GAAgB8B;AAAM;AAMjN,IAAI8B,KAAYP,GAAcA,GAAc,CAAA,GAAIwb,GAAW,SAAS,GAAG,IAAI;AAAA;AAAA,EAEzE,YAAYlc,EAAU;AAAA;AAAA,EAEtB,QAAQA,EAAU;AAAA,EAClB,UAAUA,EAAU,UAAU,CAACA,EAAU,QAAQA,EAAU,IAAI,GAAGA,EAAU,IAAI,CAAC;AAAA;AAAA,EAEjF,KAAKC;AAAA;AAAA,EAEL,WAAWD,EAAU;AAAA,EACrB,QAAQA,EAAU;AAAA;AAAA,EAElB,WAAWA,EAAU;AAAA,EACrB,UAAUA,EAAU,MAAM;AAAA,IACxB,SAASA,EAAU;AAAA,EACvB,CAAG;AACH,CAAC,GACG0f,KAAehf,GAAcA,GAAc,CAAA,GAAIwb,GAAW,YAAY,GAAG,IAAI;AAAA,EAC/E,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,MAAM;AAAA,EACN,KAAK;AAAA,EACL,SAAShc,GAAmB;AAC9B,CAAC,GACGyf,MAA+BrB,KAAwB,CAAA,GAAI3d,GAAgB2d,IAAuBle,GAAmB,UAAU,YAAY,GAAGO,GAAgB2d,IAAuBle,GAAmB,SAAS,eAAe,GAAGO,GAAgB2d,IAAuBle,GAAmB,SAAS,YAAY,GAAGO,GAAgB2d,IAAuBle,GAAmB,QAAQ,UAAU,GAAGke;AACxY,SAASsB,GAAmB9C,GAAQ;AAClC,SAAO6C,GAA4B7C,CAAM,KAAK;AAChD;AACA,IAAI+C,KAAwB,yBAAUC,GAAY;AAChD,EAAAhB,GAAUe,GAAUC,CAAU;AAC9B,MAAIC,IAAShB,GAAac,CAAQ;AAClC,WAASA,EAAS3jB,GAAO;AACvB,QAAImgB;AACJ,WAAAkC,GAAgB,MAAMsB,CAAQ,GAC9BxD,IAAQ0D,EAAO,KAAK,MAAM7jB,CAAK,GAC/BmgB,EAAM,QAAQ;AAAA,MACZ,WAAW;AAAA,IACjB,GACIA,EAAM,UAAUngB,EAAM,YAAyBoF,gBAAAA,GAAM,UAAS,GAC9D,CAAC,cAAc,aAAa,UAAU,aAAa,UAAU,EAAE,QAAQ,SAAUuD,GAAM;AACrF,MAAAwX,EAAMxX,CAAI,IAAIwX,EAAMxX,CAAI,EAAE,KAAK4a,GAAuBpD,CAAK,CAAC;AAAA,IAClE,CAAK,GACMA;AAAA,EACR;AACD,SAAAsC,GAAakB,GAAU,CAAC;AAAA,IACtB,KAAK;AAAA,IACL,OAAO,SAAoB/zC,GAAGk0C,GAAa;AACzC,UAAI1b,IAAO,KAAK;AAChB,WAAK,SAAS;AAAA,QACZ,WAAW,KAAK,aAAaA,CAAI;AAAA,MACzC,CAAO,GACD,KAAK,MAAM,WAAWA,GAAM0b,CAAW;AAAA,IACxC;AAAA,EACL,GAAK;AAAA,IACD,KAAK;AAAA,IACL,OAAO,SAAmBl0C,GAAGk0C,GAAa;AACxC,UAAI1b,IAAO,KAAK;AAChB,WAAK,SAAS;AAAA,QACZ,WAAW;AAAA,MACnB,CAAO,GACD,KAAK,MAAM,UAAUA,GAAM0b,CAAW;AAAA,IACvC;AAAA,EACL,GAAK;AAAA,IACD,KAAK;AAAA,IACL,OAAO,WAAkB;AACvB,UAAI1b,IAAO,KAAK;AAChB,WAAK,SAAS;AAAA,QACZ,WAAW,KAAK,aAAaA,CAAI;AAAA,MACzC,CAAO,GACD,KAAK,MAAM,OAAOA,CAAI;AAAA,IACvB;AAAA,EACL,GAAK;AAAA,IACD,KAAK;AAAA,IACL,OAAO,WAAqB;AAC1B,UAAIA,IAAO,KAAK;AAEF,WAAK,aAAaA,CAAI,GACpC,KAAK,SAAS;AAAA,QACZ,WAAW;AAAA,MACnB,CAAO,GACD,KAAK,MAAM,UAAUA,CAAI;AAAA,IAC1B;AAAA,EACL,GAAK;AAAA,IACD,KAAK;AAAA,IACL,OAAO,WAAoB;AACzB,UAAIA,IAAO,KAAK;AAChB,WAAK,SAAS;AAAA,QACZ,WAAW;AAAA,MACnB,CAAO,GACD,KAAK,MAAM,SAASA,CAAI;AAAA,IACzB;AAAA,EACL,GAAK;AAAA,IACD,KAAK;AAAA,IACL,OAAO,WAAmB;AACxB,aAAO,KAAK,QAAQ;AAAA,IACrB;AAAA,EACL,GAAK;AAAA,IACD,KAAK;AAAA,IACL,OAAO,SAAsBA,GAAM;AACjC,aAAO,KAAK,MAAM,aAAaA,EAAK,cAAcA,EAAK;AAAA,IACxD;AAAA,EACL,GAAK;AAAA,IACD,KAAK;AAAA,IACL,OAAO,WAAkB;AACvB,UAAI6Y,IAAS,MACTc,IAAc,KAAK,OACrB9b,IAAM8b,EAAY,KAClBgC,IAAahC,EAAY,YACzBiC,IAASjC,EAAY,QACrB3e,IAAY2e,EAAY,WACxBkC,IAASlC,EAAY,QACrB1e,IAAY0e,EAAY,WACxBC,IAAWD,EAAY;AACZ,MAAAA,EAAY;AAC/B,UAAQmC,IAAaxf,GAAyBqd,GAAa5d,EAAS,GAC1DggB,IAAY,KAAK,MAAM,WACvBC,IAAkB3gB,GAAKygB,GAAYjgB,EAAsB,GACzDge,IAAa3e,GAAK4gB,GAAYjgB,EAAsB;AACxD,aAAoBmB,gBAAAA,GAAM,cAAc4a,IAAY5b,GAAS,CAAA,GAAIggB,GAAiB;AAAA,QAChF,IAAMJ;AAAA,QACN,SAAS,KAAK;AAAA,QACd,YAAY,KAAK;AAAA,QACjB,WAAW,KAAK;AAAA,QAChB,QAAQ,KAAK;AAAA,QACb,WAAW,KAAK;AAAA,QAChB,UAAU,KAAK;AAAA,MACvB,CAAO,GAAG,SAAUpD,GAAQ;AACpB,YAAIyD,IAAgBX,GAAmB9C,CAAM,GACzCle,IAAUS,GAAgBV,GAAWW,GAAW2gB,KAAc,uBAAuBM,GAAeJ,KAAU,iBAAiB,GAAG5gB,CAAS,GAC3IuF,IAAQub,MAAc,OAAO,OAAO1f,GAAgB,CAAE,GAAEsf,IAAa,UAAU,UAAUI,CAAS;AACtG,eAAoB/e,gBAAAA,GAAM,cAAca,GAAK7B,GAAS,CAAA,GAAI6d,GAAY;AAAA,UACpE,OAAOzd,GAAcA,GAAc,CAAA,GAAIyd,EAAW,KAAK,GAAGrZ,CAAK;AAAA,UAC/D,WAAWlG;AAAA,UACX,KAAKue,EAAO;AAAA,QACtB,CAAS,GAAGe,CAAQ;AAAA,MACpB,CAAO;AAAA,IACF;AAAA,EACF,CAAA,CAAC,GACK2B;AACT,EAAEW,EAAS;AACXX,GAAS,YAAY5e;AACrB4e,GAAS,eAAeH;AACxB,MAAAe,KAAeZ,IC9JFa,KAAoB,CAACxkB,MAAkC;AAC1D,QAAA,EAAE,WAAAoD,GAAW,QAAA4gB,GAAQ,kBAAAS,GAAkB,gBAAAC,GAAgB,OAAAntB,GAAO,GAAGotB,EAAa,IAAA3kB;AAGhF,SAAA,gBAAA4kB;AAAA,IAACC,GAAK;AAAA,IAAL;AAAA,MACG,WAAWpiB,GAAW,0BAA0BW,CAAS;AAAA,MACzD,SAASshB,KAAmB,gBAAAE,EAAAE,IAAA,EAAK,MAAK,MAAK,SAASd,IAAS,gBAAgB,SAAU,CAAA;AAAA,MACvF,QACIS,KACK,gBAAAG,EAAAE,IAAA,EAAK,WAAWriB,GAAW,iBAAiB,CAACuhB,KAAU,WAAW,GAAG,MAAK,MAAK,SAAQ,UAAS;AAAA,MAGzG,SAASzsB;AAAA,MACR,GAAGotB;AAAA,MAEH,UAAAptB;AAAA,IAAA;AAAA,EAAA;AAGb,GCvBawtB,KAAkB,MAAqB;AAChD,QAAM,CAACltB,GAAcmtB,CAAe,IAAIC,GAAwB,CAAE,CAAA,GAE5D1mC,IAAK2mC,GAAWC,EAAgB;AAEtC,SAAAC,GAAU,MAAM;AACZ,QAAI,CAAC7mC;AACD;AAGE,UAAA8mC,IAAe,CAACC,MAA8D;AAChF,YAAM,EAAE,MAAA3c,GAAM,OAAApR,GAAO,SAAAguB,GAAS,MAAAC,GAAM,gBAAAhuB,EAAmB,IAAA8tB;AAEhD,aAAA,EAAE,IAAI3c,GAAM,MAAAA,GAAM,OAAOpR,KAASoR,GAAM,SAAA4c,GAAS,MAAAC,GAAM,gBAAAhuB;IAAe,GAG3EiuB,IAAwBlnC,EAAG,WAAW,WAAW,CAAC+mC,MAAQ;AAE5D,UAAIA,EAAI,eAAe,UAAW,YAAYA,KAAOA,EAAI;AACrD;AAGE,YAAAI,IAAmBL,EAAaC,CAAG;AAEzC,MAAAN,EAAgB,CAACW,MAAqB,CAAC,GAAGA,GAAkBD,CAAgB,CAAC;AAAA,IAAA,CAChF,GAEKE,IAA0BrnC,EAAG,WAAW,aAAa,CAAC+mC,MAAQ;AAC1D,YAAAO,IAAqBR,EAAaC,CAAG;AAE3C,MAAAN,EAAgB,CAACW,MAAqB;AAAA,QAClC,GAAGA,EAAiB,OAAO,CAACruB,MAAgBA,EAAY,OAAOuuB,EAAmB,EAAE;AAAA,QACpFA;AAAA,MAAA,CACH;AAAA,IAAA,CACJ,GAEKC,IAA0BvnC,EAAG,WAAW,aAAa,CAAC+mC,MAAQ;AAC1D,YAAAS,IAAqBV,EAAaC,CAAG;AAE3C,MAAAN;AAAA,QAAgB,CAACW,MACbA,EAAiB,OAAO,CAACruB,MAAgBA,EAAY,OAAOyuB,EAAmB,EAAE;AAAA,MAAA;AAAA,IACrF,CACH,GAEKC,IAAiB,CAACP,GAAuBK,GAAyBF,CAAuB;AAE/F,WAAO,MAAMI,EAAe,QAAQ,CAACC,MAAkBA,EAAe,CAAA;AAAA,EAAA,GACvE,CAAC1nC,CAAE,CAAC,GAEAsZ;AACX,GCpDaquB,KAA2B,MAAM;AAC1C,QAAM,CAACpuB,GAAkBquB,CAAmB,IAAIlB,GAE7C,CAAE,CAAA,GAEC1mC,IAAK2mC,GAAWC,EAAgB;AAEtC,SAAAC,GAAU,MAAM;AACZ,QAAI,CAAC7mC;AACD;AAGJ,UAAM6nC,IAA+B7nC,EAAG,WAAW,kBAAkB,CAAC8nC,MAAoB;AACtF,MAAAF,EAAoB,CAACG,MAAyB;AAC1C,cAAMC,IAA6BD,EAAqBD,EAAgB,YAAY,IAAI,KAAK;AAEtF,eAAA;AAAA,UACH,GAAGC;AAAA,UACH,CAACD,EAAgB,YAAY,IAAI,GAAG,CAAC,GAAGE,GAA4BF,EAAgB,EAAE;AAAA,QAAA;AAAA,MAC1F,CACH;AAAA,IAAA,CACJ,GAEKG,IAA+BjoC,EAAG,WAAW,kBAAkB,CAACkoC,MAAoB;AACtF,MAAAN,EAAoB,CAACG,OAA0B;AAAA,QAC3C,GAAGA;AAAA,QACH,CAACG,EAAgB,YAAY,IAAI,GAAGH,EAAqBG,EAAgB,YAAY,IAAI,EAAE;AAAA,UACvF,CAACC,MAAeA,MAAeD,EAAgB;AAAA,QACnD;AAAA,MACF,EAAA;AAAA,IAAA,CACL,GAEKT,IAAiB,CAACI,GAA8BI,CAA4B;AAElF,WAAO,MAAMR,EAAe,QAAQ,CAACC,MAAkBA,EAAe,CAAA;AAAA,EAAA,GACvE,CAAC1nC,CAAE,CAAC,GAEAuZ;AACX,GCvCa6uB,KAAkB,CAACC,MAA8B;AAC1D,EAAAxB,GAAU,MAAM;;AACZ,QAAI,GAAEh1C,IAAA,OAAe,cAAf,QAAAA,EAA0B,oBAAmBw2C;AAC/C;AAGE,UAAAC,IAAiB,CAAClF,MAAmC;AACvD,MAAAA,EAAM,eAAe,GAGrBA,EAAM,cAAc;AAAA,IAAA;AAGjB,kBAAA,iBAAiB,gBAAgBkF,CAAc,GAE/C,MAAM,OAAO,oBAAoB,gBAAgBA,CAAc;AAAA,EAAA,GACvE,CAACD,CAAU,CAAC;AACnB,GCfaE,KAAa,MAA0B;AAChD,QAAM,CAACC,GAAgBC,CAAiB,IAAI/B,GAA6B,GAEnE1mC,IAAK2mC,GAAWC,EAAgB;AAEtC,SAAAC,GAAU,MAAM;;AACR,QAAA;AAGM,YAAA6B,IADY,GAAC72C,IAAAmO,EAAG,QAAQ,SAAX,QAAAnO,EAAiB,QACR82C,GAAe,IAAA;AAE3C,MAAAF,EAAkBC,CAAO;AAAA,aACpBxxB,GAAO;AACZ,cAAQ,MAAM,uCAAuC,EAAE,OAAAA,EAAO,CAAA;AAAA,IAClE;AAAA,EACD,GAAA,CAAClX,GAAI2oC,IAAYF,CAAiB,CAAC,GAE/BD;AACX,GCtBaI,KAAsB;AAAA,EAC/B,SAAS;AAAA,EACT,SAAS;AACb,GAEaC,KAAiB;AAAA,EAC1B,SAAS,IAAI;AAAA,EACb,SAAS,KAAK;AAClB,GCFaC,KAAe,OAAOjxB,MAKd;AACjB,QAAM,EAAE,IAAA7X,GAAI,SAAA0mB,GAAS,MAAAlI,GAAM,OAAOuqB,EAAY,IAAAlxB,GACxCmxB,IAAiB/xB,GAAoB8xB,CAAO;AAE9C,MAAA;AAKA,QAJIriB,MAAYkiB,GAAoB,WAC7B5oC,EAAA,OAAO,KAAKgpC,IAAiB,GAAGxqB,CAAI,IAAIwqB,CAAc,KAAKxqB,CAAI,GAGlE,EAAE,YAAYxe,KAAMA,EAAG;AACjB,YAAA,IAAI,MAAM,yBAAyB;AAG7C,UAAMipC,IAAc;AAAA,MAChB,MAAAzqB;AAAA,MACA,SAAAkI;AAAA,MACA,KAAKmiB,GAAeniB,CAAO;AAAA,IAAA;AAG/B,UAAM1mB,EAAG,OAAO,OAAO,QAAQipC,CAAW;AAAA,WACrC/xB,GAAO;AACZ,IAAAlX,EAAG,OAAO,KAAK,4BAA4BiX,GAAoBC,CAAK,CAAC,EAAE;AAAA,EAC3E;AACJ,GC5BMgyB,KAAmD,OAAOrxB,MAAW;;AACjE,QAAA,EAAE,IAAA7X,GAAI,MAAA+W,EAAS,IAAAc;AAEjB,MAAA;AACA,YAAMhmB,IAAAmO,EAAG,WAAW,YAAY+W,EAAK,EAAE,MAAjC,gBAAAllB,EAAoC;AAAA,WACrCqlB,GAAO;AACZ,UAAM4xB,GAAa;AAAA,MACf,IAAA9oC;AAAA,MACA,SAAS4oC,GAAoB;AAAA,MAC7B,MAAM,wBAAwB7xB,EAAK,KAAK;AAAA,MACxC,OAAAG;AAAA,IAAA,CACH;AAAA,EACL;AACJ,GAEMiyB,KAAsD,OAAOtxB,MAAW;AAC1E,QAAM,EAAE,IAAA7X,GAAI,MAAA+W,GAAM,SAAA2xB,EAAA,IAAY7wB;AAE1B,MAAA,CAAC7X,EAAG;AACJ;AAGJ,QAAMopC,IAAmD;AAAA,IACrD,MAAM;AAAA,IACN,YAAY;AAAA,MACR,OAAOV,IAAU,EAAE,cAAcA,MAAY,EAAE,UAAU,GAAK;AAAA,IAClE;AAAA,EAAA,GAGEW,IAAUrpC,EAAG,WAAW,WAAWopC,CAAa;AAEtD,EAAAC,EAAQ,WAAW,UAAU,EAAE,SAAStyB,EAAK,IAAI;AAE7C,MAAA;AACA,UAAMsyB,EAAQ;WACTnyB,GAAO;AACZ,UAAM4xB,GAAa;AAAA,MACf,IAAA9oC;AAAA,MACA,SAAS4oC,GAAoB;AAAA,MAC7B,MAAM,wBAAwB7xB,EAAK,KAAK;AAAA,MACxC,OAAAG;AAAA,IAAA,CACH;AAAA,EACL;AACJ,GAEaoyB,KAET;AAAA,EACA,CAACC,GAA0B,kBAAkB,GAAGL;AAAAA,EAChD,CAACK,GAA0B,qBAAqB,GAAGJ;AACvD,GClDaK,KAA8B,MAAM;AACvC,QAAAxpC,IAAK2mC,GAAWC,EAAgB,GAChC8B,IAAUH;AAET,SAAA,CAACxxB,GAAuB0yB,MAAuB;AAClD,IAAAH,GAA2BG,CAAU,EAAE,EAAE,IAAAzpC,GAAI,MAAA+W,GAAM,SAAA2xB,GAAS;AAAA,EAAA;AAEpE,GCbagB,KAAwB;AAAA,EACjC,+BAA+B;AAAA,EAC/B,wBAAwB;AAAA,EACxB,0BAA0B;AAC9B,GCJaC,KAAiC,uBCMxCC,KAAqC,OAAO/xB,MAAW;;AACzD,QAAM,EAAE,IAAA7X,GAAI,QAAA6pC,GAAQ,sBAAAC,GAAsB,4BAAAC,MAA+BlyB;AAEzE,MAAI,YAAY7X,KAAMA,EAAG,UAAU8pC,GAAsB;AACrD,UAAME,IAAkB,UAClBC,IAAa,oBAEb,EAAE,gBAAAC,GAAgB,uBAAAC,GAAuB,QAAAC,EAAA,IAAW,MAAMpqC,EAAG,OAAO,QAAQ,QAAQ;AAAA,MACtF,cAAc0pC,GAAsB;AAAA,MACpC,WAAW;AAAA,QACP,SAAS,kBAAkBG,EAAO,IAAI;AAAA,QACtC,MAAM;AAAA,QACN,UAAU;AAAA,UACN,IAAII;AAAA,UACJ,OAAO;AAAA,QACX;AAAA,QACA,eAAe;AAAA,UACX,EAAE,SAAS,YAAY,MAAM,UAAU,IAAID,EAAgB;AAAA,UAC3D,EAAE,SAAS,WAAW,MAAM,UAAU,IAAI,UAAU,WAAW,GAAK;AAAA,QACxE;AAAA,MACJ;AAAA,IAAA,CACH;AAUD,UARsBn4C,IAAAu4C,KAAA,gBAAAA,EAAQ,KAAK,CAACC,MAAUA,EAAM,OAAOJ,OAArC,gBAAAp4C,EAAkD,YAGpEk4C,EAA2B,EAAK,GAKhC,EAFwBG,MAAkBC,KAAA,gBAAAA,EAAuB,QAAOH;AAGxE;AAAA,EAER;AAEI,MAAA;AACA,UAAMhqC,EAAG,QAAQ,OAAO,UAAU6pC,EAAO,IAAI,GAEzCA,EAAO,aACD,MAAA7pC,EAAG,QAAQ,sBAGrB,MAAM8oC,GAAa;AAAA,MACf,IAAA9oC;AAAA,MACA,SAAS4oC,GAAoB;AAAA,MAC7B,MAAM,WAAWiB,EAAO,IAAI;AAAA,IAAA,CAC/B;AAAA,WACI3yB,GAAO;AACZ,UAAM4xB,GAAa;AAAA,MACf,IAAA9oC;AAAA,MACA,SAAS4oC,GAAoB;AAAA,MAC7B,MAAM,4BAA4BiB,EAAO,IAAI;AAAA,MAC7C,OAAA3yB;AAAA,IAAA,CACH;AAAA,EACL;AACJ,GAEMozB,KAAqC,OAAOzyB,MAAW;;AACzD,QAAM,EAAE,IAAA7X,GAAI,QAAA6pC,GAAQ,kBAAAU,EAAA,IAAqB1yB;AAEzC,MAAI,EAAE,YAAY7X,KAAMA,EAAG,SAAS;AAChC,YAAQ,MAAM,yDAAyD;AACvE;AAAA,EACJ;AAEA,QAAMgqC,IAAkB,UAClBQ,IAAU,mBAEV,EAAE,gBAAAN,GAAgB,uBAAAC,GAAuB,QAAAC,EAAA,IAAW,MAAMpqC,EAAG,OAAO,QAAQ,QAAQ;AAAA,IACtF,cAAc0pC,GAAsB;AAAA,IACpC,WAAW;AAAA,MACP,SAAS,WAAWG,EAAO,IAAI;AAAA,MAC/B,OAAO;AAAA,QACH,IAAIW;AAAA,QACJ,cAAcX,EAAO;AAAA,QACrB,YAAY;AAAA,UACR,mBAAmB,CAACG,CAAe;AAAA,UACnC,cAAc;AAAA,UACd,cAAcL;AAAA,QAClB;AAAA,MACJ;AAAA,MACA,eAAe;AAAA,QACX,EAAE,SAAS,WAAW,MAAM,UAAU,IAAIK,EAAgB;AAAA,QAC1D,EAAE,SAAS,WAAW,MAAM,UAAU,IAAI,SAAS;AAAA,MACvD;AAAA,IACJ;AAAA,EAAA,CACH,GAEKS,KAAgB54C,IAAAu4C,KAAA,gBAAAA,EAAQ,KAAK,CAACC,MAAUA,EAAM,OAAOG,OAArC,gBAAA34C,EAA+C;AAIrE,MAF0Bq4C,MAAkBC,KAAA,gBAAAA,EAAuB,QAAOH,GAMtE;AAAA,QAAAS,MAAkBZ,EAAO,MAAM;AAC/B,YAAMf,GAAa;AAAA,QACf,IAAA9oC;AAAA,QACA,SAAS4oC,GAAoB;AAAA,QAC7B,MAAM,4BAA4BiB,EAAO,IAAI;AAAA,MAAA,CAChD;AACD;AAAA,IACJ;AAEI,QAAA;AAGA,WAF0B,MAAM7pC,EAAG,QAAQ,OAAO,QAAQ,GAAG,KAAK,CAAC6pC,MAAWA,EAAO,SAASY,CAAa,GAErF;AAClB,cAAM3B,GAAa;AAAA,UACf,IAAA9oC;AAAA,UACA,SAAS4oC,GAAoB;AAAA,UAC7B,MAAM,4BAA4BiB,EAAO,IAAI,SAASY,CAAa,0BAA0BA,CAAa;AAAA,QAAA,CAC7G;AACD;AAAA,MACJ;AAEA,YAAMC,IAAa,MAAM1qC,EAAG,QAAQ,IAAI6pC,EAAO,MAAM,QAAQ;AAE7D,UAAI,CAACa,GAAY;AACb,cAAM5B,GAAa;AAAA,UACf,IAAA9oC;AAAA,UACA,SAAS4oC,GAAoB;AAAA,UAC7B,MAAM,4BAA4BiB,EAAO,IAAI;AAAA,QAAA,CAChD;AACD;AAAA,MACJ;AAEA,YAAM7pC,EAAG,QAAQ,OAAO0qC,GAAYD,CAAa,GAE7CZ,EAAO,aACP,MAAMU,EAAiB,EAAE,MAAME,EAAe,CAAA,GAGlD,MAAM3B,GAAa;AAAA,QACf,IAAA9oC;AAAA,QACA,SAAS4oC,GAAoB;AAAA,QAC7B,MAAM,WAAWiB,EAAO,IAAI,kCAAkCY,CAAa;AAAA,MAAA,CAC9E;AAAA,aACIvzB,GAAO;AACZ,YAAM4xB,GAAa;AAAA,QACf,IAAA9oC;AAAA,QACA,SAAS4oC,GAAoB;AAAA,QAC7B,MAAM,4BAA4BiB,EAAO,IAAI;AAAA,QAC7C,OAAA3yB;AAAA,MAAA,CACH;AAAA,IACL;AAAA;AACJ,GAEMyzB,KAAmC,OAAO9yB,MAAW;AACjD,QAAA,EAAE,IAAA7X,GAAI,QAAA6pC,EAAW,IAAAhyB;AAEnB,MAAA;AACM,UAAA7X,EAAG,QAAQ,KAAK,EAAE,MAAM6pC,EAAO,MAAM,MAAM,SAAA,CAAU,GAE3D,MAAMf,GAAa;AAAA,MACf,IAAA9oC;AAAA,MACA,SAAS4oC,GAAoB;AAAA,MAC7B,MAAM,WAAWiB,EAAO,IAAI;AAAA,IAAA,CAC/B;AAAA,WACI3yB,GAAO;AACZ,UAAM4xB,GAAa;AAAA,MACf,IAAA9oC;AAAA,MACA,SAAS4oC,GAAoB;AAAA,MAC7B,MAAM,0BAA0BiB,EAAO,IAAI;AAAA,MAC3C,OAAA3yB;AAAA,IAAA,CACH;AAAA,EACL;AACJ,GAEM0zB,KAAqC,OAAO/yB,MAAW;;AACzD,QAAM,EAAE,IAAA7X,GAAI,QAAA6pC,GAAQ,iBAAAgB,EAAA,IAAoBhzB;AAExC,MAAI,EAAE,YAAY7X,KAAMA,EAAG,SAAS;AAChC,YAAQ,MAAM,wEAAwE;AACtF;AAAA,EACJ;AAEA,QAAMgqC,IAAkB,WAClBQ,IAAU,eAEV,EAAE,gBAAAN,GAAgB,uBAAAC,GAAuB,QAAAC,EAAA,IAAW,MAAMpqC,EAAG,OAAO,QAAQ,QAAQ;AAAA,IACtF,cAAc0pC,GAAsB;AAAA,IACpC,WAAW;AAAA,MACP,SAAS,gBAAgBG,EAAO,IAAI;AAAA,MACpC,OAAO;AAAA,QACH,IAAIW;AAAA,QACJ,cAAcX,EAAO;AAAA,QACrB,YAAY;AAAA,UACR,mBAAmB,CAACG,CAAe;AAAA,UACnC,cAAc;AAAA,UACd,cAAcL;AAAA,QAClB;AAAA,MACJ;AAAA,MACA,eAAe;AAAA,QACX,EAAE,SAAS,WAAW,MAAM,WAAW,IAAIK,EAAgB;AAAA,QAC3D,EAAE,SAAS,WAAW,MAAM,UAAU,IAAI,SAAS;AAAA,MACvD;AAAA,IACJ;AAAA,EAAA,CACH,GAEKS,KAAgB54C,IAAAu4C,KAAA,gBAAAA,EAAQ,KAAK,CAACC,MAAUA,EAAM,OAAOG,OAArC,gBAAA34C,EAA+C;AAIrE,MAF0Bq4C,MAAkBC,KAAA,gBAAAA,EAAuB,QAAOH,GAMtE;AAAA,QAAAS,MAAkBZ,EAAO,MAAM;AAC/B,YAAMf,GAAa;AAAA,QACf,IAAA9oC;AAAA,QACA,SAAS4oC,GAAoB;AAAA,QAC7B,MAAM,6BAA6B6B,CAAa;AAAA,MAAA,CACnD;AACD;AAAA,IACJ;AAEI,QAAA;AAGA,WAF0B,MAAMzqC,EAAG,QAAQ,OAAO,QAAQ,GAAG,KAAK,CAAC6pC,MAAWA,EAAO,SAASY,CAAa,GAErF;AAClB,cAAM3B,GAAa;AAAA,UACf,IAAA9oC;AAAA,UACA,SAAS4oC,GAAoB;AAAA,UAC7B,MAAM,6BAA6B6B,CAAa;AAAA,QAAA,CACnD;AACD;AAAA,MACJ;AAEA,YAAMC,IAAa,MAAM1qC,EAAG,QAAQ,IAAI6pC,EAAO,MAAM,QAAQ;AAE7D,UAAI,CAACa,GAAY;AACb,cAAM5B,GAAa;AAAA,UACf,IAAA9oC;AAAA,UACA,SAAS4oC,GAAoB;AAAA,UAC7B,MAAM,0BAA0BiB,EAAO,IAAI;AAAA,QAAA,CAC9C;AACD;AAAA,MACJ;AAEM,YAAA7pC,EAAG,QAAQ,OAAO,CAAC,EAAE,GAAG0qC,GAAY,MAAMD,EAAA,CAAe,GAAG,OAAO,GAErEZ,EAAO,YACSgB,EAAA,EAAE,MAAMJ,EAAA,CAAe,GAG3C,MAAM3B,GAAa;AAAA,QACf,IAAA9oC;AAAA,QACA,SAAS4oC,GAAoB;AAAA,QAC7B,MAAM,yCAAyC6B,CAAa;AAAA,MAAA,CAC/D;AAAA,aACIvzB,GAAO;AACZ,YAAM4xB,GAAa;AAAA,QACf,IAAA9oC;AAAA,QACA,SAAS4oC,GAAoB;AAAA,QAC7B,MAAM,0BAA0B6B,CAAa;AAAA,QAC7C,OAAAvzB;AAAA,MAAA,CACH;AAAA,IACL;AAAA;AACJ,GAEM4zB,KAA2C,OAAOjzB,MAAW;AAC/D,QAAM,EAAE,IAAA7X,GAAI,QAAA6pC,GAAQ,kBAAAU,EAAA,IAAqB1yB;AAErC,MAAA;AACA,UAAM0yB,EAAiB,EAAE,MAAMV,EAAO,KAAM,CAAA,GAE5C,MAAMf,GAAa;AAAA,MACf,IAAA9oC;AAAA,MACA,SAAS4oC,GAAoB;AAAA,MAC7B,MAAM,WAAWiB,EAAO,IAAI;AAAA,IAAA,CAC/B;AAAA,UACW;AACZ,UAAMf,GAAa;AAAA,MACf,IAAA9oC;AAAA,MACA,SAAS4oC,GAAoB;AAAA,MAC7B,MAAM,yBAAyBiB,EAAO,IAAI;AAAA,IAAA,CAC7C;AAAA,EACL;AACJ,GAEMkB,KAAsC,OAAOlzB,MAAW;AAC1D,QAAM,EAAE,IAAA7X,GAAI,QAAA6pC,GAAQ,gBAAAmB,EAAA,IAAmBnzB;AAEnC,MAAA;AACA,UAAM7X,EAAG,QAAQ,QAAQ,EAAE,MAAM6pC,EAAO,MAAM,GAC/BmB,KAEf,MAAMlC,GAAa;AAAA,MACf,IAAA9oC;AAAA,MACA,SAAS4oC,GAAoB;AAAA,MAC7B,MAAM,WAAWiB,EAAO,IAAI;AAAA,IAAA,CAC/B;AAAA,WACI3yB,GAAO;AACZ,UAAM4xB,GAAa;AAAA,MACf,IAAA9oC;AAAA,MACA,SAAS4oC,GAAoB;AAAA,MAC7B,MAAM,0BAA0BiB,EAAO,IAAI;AAAA,MAC3C,OAAA3yB;AAAA,IAAA,CACH;AAAA,EACL;AACJ,GAEa+zB,KAET;AAAA,EACA,QAAQrB;AAAAA,EACR,QAAQU;AAAA,EACR,MAAMK;AAAA,EACN,QAAQC;AAAA,EACR,cAAcE;AAAA,EACd,MAAMC;AACV,GChUaG,KAA6C,4CAC7CC,KAAyB,0BACzBC,KAAsC,qCACtCC,KAAmC,oCACnCC,KAAoC;ACCjD,IAAIC,KAAK,SAAUtmB,GAAQ;AAAE,SAAQ,EAAE,IAAI,IAAM,QAAQA,EAAQ;GAU7DhG,KAAM,SAAU/H,GAAO;AAAE,SAAQ,EAAE,IAAI,IAAO,OAAOA,EAAO;GAS5Ds0B,KAAY,SAAU37C,GAAG;AACzB,SAAOA,EAAE,OAAO,KAAO,QAAQ,QAAQA,EAAE,MAAM,IAAI,QAAQ,OAAOA,EAAE,KAAK;AAC7E,GAyBI47C,KAAc,SAAUC,GAAc77C,GAAG;AACzC,SAAOA,EAAE,OAAO,KAAOA,EAAE,SAAS67C;AACtC,GAIIC,KAAgB,SAAU97C,GAAG;AAC7B,MAAIA,EAAE,OAAO;AACT,WAAOA,EAAE;AAGT,QAAMA,EAAE;AAEhB,GAUI4sC,KAAM,SAAUlsC,GAAGV,GAAG;AACtB,SAAOA,EAAE,OAAO,KAAO07C,GAAGh7C,EAAEV,EAAE,MAAM,CAAC,IAAIA;AAC7C,GAKI+7C,KAAO,SAAUr7C,GAAGiT,GAAIc,GAAI;AAC5B,SAAOd,EAAG,OAAO,KAAQA,IACrBc,EAAG,OAAO,KAAQA,IACdinC,GAAGh7C,EAAEiT,EAAG,QAAQc,EAAG,MAAM,CAAC;AACtC,GAIIunC,KAAW,SAAUt7C,GAAGV,GAAG;AAC3B,SAAOA,EAAE,OAAO,KAAOA,IAAIovB,GAAI1uB,EAAEV,EAAE,KAAK,CAAC;AAC7C,GAOIi8C,KAAU,SAAUv7C,GAAGV,GAAG;AAC1B,SAAOA,EAAE,OAAO,KAAOU,EAAEV,EAAE,MAAM,IAAIA;AACzC;AAkBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAkBA,IAAIk8C,KAAW,WAAW;AACtBA,SAAAA,KAAW,OAAO,UAAU,SAAkBt8C,GAAG;AAC7C,aAASS,GAAGP,IAAI,GAAGC,IAAI,UAAU,QAAQD,IAAIC,GAAGD,KAAK;AACjD,MAAAO,IAAI,UAAUP,CAAC;AACf,eAASqB,KAAKd;AAAG,QAAI,OAAO,UAAU,eAAe,KAAKA,GAAGc,CAAC,MAAGvB,EAAEuB,CAAC,IAAId,EAAEc,CAAC;AAAA,IAC9E;AACD,WAAOvB;AAAA,EACf,GACWs8C,GAAS,MAAM,MAAM,SAAS;AACzC;AAEA,SAASC,GAAO97C,GAAGZ,GAAG;AAClB,MAAIG,IAAI,CAAA;AACR,WAASuB,KAAKd;AAAG,IAAI,OAAO,UAAU,eAAe,KAAKA,GAAGc,CAAC,KAAK1B,EAAE,QAAQ0B,CAAC,IAAI,MAC9EvB,EAAEuB,CAAC,IAAId,EAAEc,CAAC;AACd,MAAId,KAAK,QAAQ,OAAO,OAAO,yBAA0B;AACrD,aAASP,IAAI,GAAGqB,IAAI,OAAO,sBAAsBd,CAAC,GAAGP,IAAIqB,EAAE,QAAQrB;AAC/D,MAAIL,EAAE,QAAQ0B,EAAErB,CAAC,CAAC,IAAI,KAAK,OAAO,UAAU,qBAAqB,KAAKO,GAAGc,EAAErB,CAAC,CAAC,MACzEF,EAAEuB,EAAErB,CAAC,CAAC,IAAIO,EAAEc,EAAErB,CAAC,CAAC;AAE5B,SAAOF;AACX;AAEA,SAAS4wC,GAAQpwC,GAAGT,GAAG;AAInB,MAHIS,MAAMT,KAGNS,MAAM,QAAQT,MAAM;AACpB,WAAO;AAEX,MAAI,OAAQS,KAAO,OAAQT;AACvB,WAAO;AAEX,MAAI,OAAQS,KAAO,UAAU;AAEzB,QAAI,MAAM,QAAQA,CAAC,GAAG;AAIlB,UAHI,CAAC,MAAM,QAAQT,CAAC,KAGhBS,EAAE,WAAWT,EAAE;AACf,eAAO;AAEX,eAASG,IAAI,GAAGA,IAAIM,EAAE,QAAQN;AAC1B,YAAI,CAAC0wC,GAAQpwC,EAAEN,CAAC,GAAGH,EAAEG,CAAC,CAAC;AACnB,iBAAO;AAGf,aAAO;AAAA,IACV;AAED,QAAIw1B,IAAO,OAAO,KAAKl1B,CAAC;AACxB,QAAIk1B,EAAK,WAAW,OAAO,KAAK31B,CAAC,EAAE;AAC/B,aAAO;AAEX,aAASG,IAAI,GAAGA,IAAIw1B,EAAK,QAAQx1B;AAI7B,UAHI,CAACH,EAAE,eAAe21B,EAAKx1B,CAAC,CAAC,KAGzB,CAAC0wC,GAAQpwC,EAAEk1B,EAAKx1B,CAAC,CAAC,GAAGH,EAAE21B,EAAKx1B,CAAC,CAAC,CAAC;AAC/B,eAAO;AAGf,WAAO;AAAA,EACV;AACL;AAaA,IAAIs8C,KAAc,SAAUC,GAAM;AAAE,SAAO,MAAM,QAAQA,CAAI;GACzDC,KAAe,SAAUD,GAAM;AAC/B,SAAO,OAAOA,KAAS,YAAYA,MAAS,QAAQ,CAACD,GAAYC,CAAI;AACzE,GACIE,KAAa,SAAUF,GAAM;AAC7B,UAAQ,OAAOA,GAAI;AAAA,IACf,KAAK;AACD,aAAO;AAAA,IACX,KAAK;AACD,aAAO;AAAA,IACX,KAAK;AACD,aAAO;AAAA,IACX,KAAK;AACD,aAAO;AAAA,IACX,KAAK;AACD,aAAIA,aAAgB,QACT,aAEFA,MAAS,OACP,SAGA;AAAA,IAEf;AACI,aAAO,KAAK,UAAUA,CAAI;AAAA,EACjC;AACL,GACIG,KAAc,SAAUC,GAAUC,GAAK;AACvC,SAAO,cAAcD,IAAW,WAAWF,GAAWG,CAAG;AAC7D,GACIC,KAAY,SAAUC,GAAO;AAC7B,SAAOA,EAAM,IAAI,SAAUn0B,GAAM;AAAE,WAAQ,OAAOA,KAAS,WAAW,MAAMA,IAAO,MAAMA,IAAO;AAAA,EAAO,CAAA,EAAE,KAAK,EAAE;AACpH,GACIo0B,KAAY,SAAUC,GAAO96C,GAAI;AACjC,MAAI2E,IAAK3E,EAAG,IAAI+6C,IAAOZ,GAAOn6C,GAAI,CAAC,IAAI,CAAC;AACxC,SAAQk6C,GAAS,EAAE,IAAIY,KAASn2C,KAAM,IAAG,GAAIo2C,CAAI;AACrD,GAsBIC;AAAA;AAAA,EAAyB,WAAY;AAerC,aAASA,EAAQC,GAAQ;AACrB,UAAIlL,IAAQ;AACZ,WAAK,SAASkL,GAwBd,KAAK,MAAM,SAAUZ,GAAM;AACvB,eAAOL,GAAS,SAAU30B,GAAO;AAAE,iBAAQ;AAAA,YACvC,MAAM;AAAA,YACN,OAAOg1B;AAAA,YACP,IAAI,WAAWh1B,EAAM,MAAM;AAAA,YAC3B,SAASA,EAAM,WAAW;AAAA,UAC7B;AAAA,QAAI,GAAE0qB,EAAM,OAAOsK,CAAI,CAAC;AAAA,MACrC,GAIQ,KAAK,aAAa,SAAUA,GAAM;AAAE,eAAOV,GAAU5J,EAAM,IAAIsK,CAAI,CAAC;AAAA,SAKpE,KAAK,mBAAmB,SAAUA,GAAM;AAAE,eAAOP,GAAc/J,EAAM,IAAIsK,CAAI,CAAC;AAAA,SAY9E,KAAK,MAAM,SAAU37C,GAAG;AACpB,eAAO,IAAIs8C,EAAQ,SAAUX,GAAM;AAAE,iBAAOzP,GAAIlsC,GAAGqxC,EAAM,OAAOsK,CAAI,CAAC;AAAA,QAAI,CAAA;AAAA,MACrF,GAiDQ,KAAK,UAAU,SAAU37C,GAAG;AACxB,eAAO,IAAIs8C,EAAQ,SAAUX,GAAM;AAC/B,iBAAOJ,GAAQ,SAAUlpB,GAAO;AAAE,mBAAOryB,EAAEqyB,CAAK,EAAE,OAAOspB,CAAI;AAAA,UAAE,GAAItK,EAAM,OAAOsK,CAAI,CAAC;AAAA,QACrG,CAAa;AAAA,MACb,GAwBQ,KAAK,QAAQ,SAAUa,GAAMC,GAAc;AACvC,eAAOpL,EAAM,QAAQ,SAAUhf,GAAO;AAAE,iBAAQmqB,EAAKnqB,CAAK,IAAIiqB,EAAQ,QAAQjqB,CAAK,IAAIiqB,EAAQ,KAAKG,CAAY;AAAA,QAAG,CAAE;AAAA,MACjI;AAAA,IACK;AAID,WAAAH,EAAQ,SAAS,WAAY;AACzB,aAAO,IAAIA,EAAQ,SAAUX,GAAM;AAC/B,eAAO,OAAOA,KAAS,WACjBX,GAAGW,CAAI,IACPjtB,GAAI,EAAE,SAASotB,GAAY,YAAYH,CAAI,EAAC,CAAE;AAAA,MAChE,CAAS;AAAA,IACT,GAIIW,EAAQ,SAAS,WAAY;AACzB,aAAO,IAAIA,EAAQ,SAAUX,GAAM;AAC/B,eAAO,OAAOA,KAAS,WACjBX,GAAGW,CAAI,IACPjtB,GAAI,EAAE,SAASotB,GAAY,YAAYH,CAAI,EAAC,CAAE;AAAA,MAChE,CAAS;AAAA,IACT,GAIIW,EAAQ,UAAU,WAAY;AAC1B,aAAO,IAAIA,EAAQ,SAAUX,GAAM;AAC/B,eAAO,OAAOA,KAAS,YACjBX,GAAGW,CAAI,IACPjtB,GAAI,EAAE,SAASotB,GAAY,aAAaH,CAAI,EAAC,CAAE;AAAA,MACjE,CAAS;AAAA,IACT,GACIW,EAAQ,WAAW,SAAUjqB,GAAO;AAChC,aAAO,IAAIiqB,EAAQ,SAAUX,GAAM;AAC/B,eAAO7L,GAAQ6L,GAAMtpB,CAAK,IACpB2oB,GAAG3oB,CAAK,IACR3D,GAAI,EAAE,SAAS,cAAc,KAAK,UAAU2D,CAAK,IAAI,WAAW,KAAK,UAAUspB,CAAI,EAAG,CAAA;AAAA,MACxG,CAAS;AAAA,IACT,GACIW,EAAQ,SAAS,SAAUI,GAAU;AACjC,aAAO,IAAIJ,EAAQ,SAAUX,GAAM;AAC/B,YAAIC,GAAaD,CAAI,KAAKe,GAAU;AAChC,cAAIvoB,IAAM,CAAA;AACV,mBAASxG,KAAO+uB;AACZ,gBAAIA,EAAS,eAAe/uB,CAAG,GAAG;AAC9B,kBAAIruB,IAAIo9C,EAAS/uB,CAAG,EAAE,OAAOguB,EAAKhuB,CAAG,CAAC;AACtC,kBAAIruB,EAAE,OAAO;AAET,gBAAIA,EAAE,WAAW,WACb60B,EAAIxG,CAAG,IAAIruB,EAAE;AAAA;AAGhB,uBAAIq8C,EAAKhuB,CAAG,MAAM,SACZe,GAAI,EAAE,SAAS,cAAcf,IAAM,oCAAmC,CAAE,IAGxEe,GAAIytB,GAAU,MAAMxuB,GAAKruB,EAAE,KAAK,CAAC;AAAA,YAE/C;AAEL,iBAAO07C,GAAG7mB,CAAG;AAAA,QAChB;AACI,iBAAIynB,GAAaD,CAAI,IACfX,GAAGW,CAAI,IAGPjtB,GAAI,EAAE,SAASotB,GAAY,aAAaH,CAAI,EAAC,CAAE;AAAA,MAEtE,CAAS;AAAA,IACT,GACIW,EAAQ,QAAQ,SAAUK,GAAS;AAC/B,aAAO,IAAIL,EAAQ,SAAUX,GAAM;AAC/B,YAAID,GAAYC,CAAI,KAAKgB,GAAS;AAC9B,cAAIC,IAAgB,SAAU57C,GAAG,GAAG;AAChC,mBAAOs6C,GAAS,SAAUuB,GAAQ;AAAE,qBAAOV,GAAU,MAAM,IAAI,KAAKU,CAAM;AAAA,YAAE,GAAIF,EAAQ,OAAO37C,CAAC,CAAC;AAAA,UACrH;AACgB,iBAAO26C,EAAK,OAAO,SAAUpkB,GAAKv2B,GAAG5B,GAAG;AACpC,mBAAOi8C,GAAK,SAAUyB,GAAKpoB,GAAQ;AAAE,qBAAOooB,EAAI,OAAO,CAACpoB,CAAM,CAAC;AAAA,YAAI,GAAE6C,GAAKqlB,EAAc57C,GAAG5B,CAAC,CAAC;AAAA,UACjH,GAAmB47C,GAAG,CAAE,CAAA,CAAC;AAAA,QACZ;AACI,iBAAIU,GAAYC,CAAI,IACdX,GAAGW,CAAI,IAGPjtB,GAAI,EAAE,SAASotB,GAAY,YAAYH,CAAI,EAAC,CAAE;AAAA,MAErE,CAAS;AAAA,IACT,GACIW,EAAQ,QAAQ,SAAUI,GAAU;AAChC,aAAO,IAAIJ,EAAQ,SAAUX,GAAM;AAC/B,YAAID,GAAYC,CAAI,GAAG;AACnB,cAAIA,EAAK,WAAWe,EAAS;AACzB,mBAAOhuB,GAAI;AAAA,cACP,SAAS,gCAAgCguB,EAAS,SAAS,yBAAyBf,EAAK;AAAA,YACjH,CAAqB;AAGL,mBADIjnB,IAAS,CAAA,GACJt1B,IAAI,GAAGA,IAAIs9C,EAAS,QAAQt9C,KAAK;AACtC,gBAAI29C,IAAML,EAASt9C,CAAC,EAAE,OAAOu8C,EAAKv8C,CAAC,CAAC;AACpC,gBAAI29C,EAAI;AACJ,cAAAroB,EAAOt1B,CAAC,IAAI29C,EAAI;AAAA;AAGhB,qBAAOruB,GAAIytB,GAAU,MAAM/8C,IAAI,KAAK29C,EAAI,KAAK,CAAC;AAAA,UAErD;AACD,iBAAO/B,GAAGtmB,CAAM;AAAA,QACnB;AAEG,iBAAOhG,GAAI,EAAE,SAASotB,GAAY,uBAAuBY,EAAS,QAAQf,CAAI,EAAC,CAAE;AAAA,MAEjG,CAAS;AAAA,IACT,GACIW,EAAQ,QAAQ,SAAUj2B,GAAI22B,GAAI;AAE9B,eADIN,IAAW,CAAA,GACNluC,IAAK,GAAGA,IAAK,UAAU,QAAQA;AACpC,QAAAkuC,EAASluC,IAAK,CAAC,IAAI,UAAUA,CAAE;AAEnC,aAAO8tC,EAAQ,MAAM,MAAMA,GAAS,CAACj2B,GAAI22B,CAAE,EAAE,OAAON,CAAQ,CAAC;AAAA,IACrE,GACIJ,EAAQ,eAAe,SAAUj2B,GAAI22B,GAAI;AAErC,eADI3jC,IAAK,CAAA,GACA7K,IAAK,GAAGA,IAAK,UAAU,QAAQA;AACpC,QAAA6K,EAAG7K,IAAK,CAAC,IAAI,UAAUA,CAAE;AAE7B,aAAO,IAAI8tC,EAAQ,SAAUX,GAAM;AAC/B,eAAO,CAACt1B,GAAI22B,CAAE,EAAE,OAAO3jC,CAAE,EAAE,OAAO,SAAUke,GAAKolB,GAAS;AAAE,iBAAOtB,GAAK,OAAO,QAAQ9jB,GAAKolB,EAAQ,OAAOhB,CAAI,CAAC;AAAA,WAAMX,GAAG,CAAE,CAAA,CAAC;AAAA,MACxI,CAAS;AAAA,IACT,GAmBIsB,EAAQ,UAAU,WAAY;AAAE,aAAO,IAAIA,EAAQ,SAAUX,GAAM;AAAE,eAAOX,GAAGW,CAAI;AAAA,MAAI,CAAA;AAAA,IAAE,GAKzFW,EAAQ,cAAc,WAAY;AAC9B,aAAO,IAAIA,EAAQ,SAAUX,GAAM;AAAE,eAAOX,GAAGW,CAAI;AAAA,MAAE,CAAE;AAAA,IAC/D,GAWIW,EAAQ,OAAO,SAAUK,GAAS;AAC9B,aAAO,IAAIL,EAAQ,SAAUX,GAAM;AAC/B,YAAIC,GAAaD,CAAI,GAAG;AACpB,cAAIxnB,IAAM,CAAA;AACV,mBAASxG,KAAOguB;AACZ,gBAAIA,EAAK,eAAehuB,CAAG,GAAG;AAC1B,kBAAIruB,IAAIq9C,EAAQ,OAAOhB,EAAKhuB,CAAG,CAAC;AAChC,kBAAIruB,EAAE,OAAO;AACT,gBAAA60B,EAAIxG,CAAG,IAAIruB,EAAE;AAAA;AAGb,uBAAOovB,GAAIytB,GAAU,MAAMxuB,GAAKruB,EAAE,KAAK,CAAC;AAAA,YAE/C;AAEL,iBAAO07C,GAAG7mB,CAAG;AAAA,QAChB;AAEG,iBAAOzF,GAAI,EAAE,SAASotB,GAAY,aAAaH,CAAI,EAAC,CAAE;AAAA,MAEtE,CAAS;AAAA,IACT,GAkBIW,EAAQ,WAAW,SAAUK,GAAS;AAClC,aAAO,IAAIL,EAAQ,SAAUX,GAAM;AAAE,eAA8BA,KAAS,OAAOX,GAAG,MAAS,IAAI2B,EAAQ,OAAOhB,CAAI;AAAA,MAAG,CAAE;AAAA,IACnI,GAeIW,EAAQ,QAAQ,WAAY;AAExB,eADII,IAAW,CAAA,GACNluC,IAAK,GAAGA,IAAK,UAAU,QAAQA;AACpC,QAAAkuC,EAASluC,CAAE,IAAI,UAAUA,CAAE;AAE/B,aAAO,IAAI8tC,EAAQ,SAAUX,GAAM;AAE/B,iBADIsB,IAAS,CAAA,GACJ,IAAI,GAAG,IAAIP,EAAS,QAAQ,KAAK;AACtC,cAAIp9C,IAAIo9C,EAAS,CAAC,EAAE,OAAOf,CAAI;AAC/B,cAAIr8C,EAAE,OAAO;AACT,mBAAOA;AAGP,UAAA29C,EAAO,CAAC,IAAI39C,EAAE;AAAA,QAErB;AACD,YAAI49C,IAAaD,EACZ,IAAI,SAAUt2B,GAAO;AAAE,iBAAO,cAAcA,EAAM,MAAM,MAAM,OAAOA,EAAM;AAAA,QAAQ,CAAE,EACrF,KAAK,MAAM;AAChB,eAAO+H,GAAI;AAAA,UACP,SAAS,qEAAsEwuB,IAAa;AAAA,QAC5G,CAAa;AAAA,MACb,CAAS;AAAA,IACT,GAKIZ,EAAQ,cAAc,SAAUnB,GAAcwB,GAAS;AACnD,aAAO,IAAIL,EAAQ,SAAUX,GAAM;AAC/B,eAAOX,GAAGE,GAAYC,GAAcwB,EAAQ,OAAOhB,CAAI,CAAC,CAAC;AAAA,MACrE,CAAS;AAAA,IACT,GAkCIW,EAAQ,UAAU,SAAUJ,GAAOS,GAAS;AACxC,aAAO,IAAIL,EAAQ,SAAUX,GAAM;AAE/B,iBADIwB,IAAaxB,GACR,IAAI,GAAG,IAAIO,EAAM,QAAQ,KAAK;AACnC,cAAIiB,MAAe;AACf,mBAAOzuB,GAAI;AAAA,cACP,IAAIutB,GAAUC,EAAM,MAAM,GAAG,IAAI,CAAC,CAAC;AAAA,cACnC,SAAS;AAAA,YACjC,CAAqB;AAEA,cAAI,OAAOA,EAAM,CAAC,KAAM,YAAY,CAACN,GAAauB,CAAU;AAC7D,mBAAOzuB,GAAI;AAAA,cACP,IAAIutB,GAAUC,EAAM,MAAM,GAAG,IAAI,CAAC,CAAC;AAAA,cACnC,SAASJ,GAAY,aAAaqB,CAAU;AAAA,YACpE,CAAqB;AAEA,cAAI,OAAOjB,EAAM,CAAC,KAAM,YAAY,CAACR,GAAYyB,CAAU;AAC5D,mBAAOzuB,GAAI;AAAA,cACP,IAAIutB,GAAUC,EAAM,MAAM,GAAG,IAAI,CAAC,CAAC;AAAA,cACnC,SAASJ,GAAY,YAAYqB,CAAU;AAAA,YACnE,CAAqB;AAGD,UAAAA,IAAaA,EAAWjB,EAAM,CAAC,CAAC;AAAA,QAEvC;AACD,eAAOZ,GAAS,SAAU30B,GAAO;AAC7B,iBAAOw2B,MAAe,SAChB,EAAE,IAAIlB,GAAUC,CAAK,GAAG,SAAS,sBAAuB,IACxDC,GAAUF,GAAUC,CAAK,GAAGv1B,CAAK;AAAA,QAC1C,GAAEg2B,EAAQ,OAAOQ,CAAU,CAAC;AAAA,MACzC,CAAS;AAAA,IACT,GAIIb,EAAQ,UAAU,SAAUc,GAAY;AACpC,aAAO,IAAId,EAAQ,SAAUX,GAAM;AAAE,eAAOX,GAAGoC,CAAU;AAAA,MAAE,CAAE;AAAA,IACrE,GAIId,EAAQ,OAAO,SAAUG,GAAc;AACnC,aAAO,IAAIH,EAAQ,SAAUX,GAAM;AAAE,eAAOjtB,GAAI,EAAE,SAAS+tB,EAAY,CAAE;AAAA,MAAE,CAAE;AAAA,IACrF,GAqBIH,EAAQ,OAAO,SAAUe,GAAW;AAChC,aAAO,IAAIf,EAAQ,SAAUX,GAAM;AAAE,eAAO0B,EAAW,EAAC,OAAO1B,CAAI;AAAA,MAAE,CAAE;AAAA,IAC/E,GACWW;AAAA,EACX,EAAC;AAAA,GAIGgB,KAAShB,GAAQ,QAEjBiB,KAASjB,GAAQ,QAEjBkB,KAAUlB,GAAQ,SAElBmB,KAAUnB,GAAQ;AAEJA,GAAQ;AAE1B,IAAIoB,KAAWpB,GAAQ,UAEnB7xB,KAAS6xB,GAAQ,QAEjBqB,KAAQrB,GAAQ;AAERA,GAAQ;AAETA,GAAQ;AAEnB,IAAIsB,KAAWtB,GAAQ,UAEnBuB,KAAQvB,GAAQ;AAERA,GAAQ;AAEDA,GAAQ;AAEPA,GAAQ;AAEdA,GAAQ;AAERA,GAAQ;AAEtB,IAAIwB,KAAOxB,GAAQ;AAERA,GAAQ;AChzBN,MAAAyB,KAAyCT,KAAS,MAAM,CAAC39C,MAAMA,EAAE,SAAS,GAAG,6BAA6B,GAE1Gq+C,KAA4CT,GAAS,EAAA,MAAM,CAACU,MAAQA,KAAO,GAAG,gCAAgC;AAE3ET,GAAQ;AAE3C,MAAAU,KAAgB,CAACpE,GAAYqE,MAA0C;AAChF,QAAMC,IAAe,OAAOtE;AAErB,SAAAsE,MAAiB,aAClBX,GAAA,IACAK,GAAK,4BAA4BK,CAAe,0CAA0C,OAAOC,CAAY,EAAE;AACzH,GCVaC,KAA2D5zB,GAAO;AAAA,EAC3E,MAAMszB;AACV,CAAC,GCNYO,KAAwB,WCIxBC,KAAgC,CACzCjF,MAEuBA,EAAO,WAAW,OAAO,CAACkF,GAAiBC,MAAc;AACxE,MAAAA,EAAU,SAAS,kBAAkB;AAC/B,UAAAC,IAAeD,EAAU,MAAM,WAAW;AAAA,MAC5C,CAACE,MAAiEA,EAAU,OAAO;AAAA,IAAA;AAGjF,IAAAH,EAAA,KAAK,GAAGE,CAAY;AAAA,EAC9B;AAEO,SAAAF;AACX,GAAG,CAAE,CAAA,GAKII,KAAiC,CAACC,MAAuBA,EAAW,OAAO,SAAS,GCP3FC,KAAkB,CACpBC,GACAC,MACC;AACD,QAAM,CAACC,GAAoBC,CAAqB,IAAI/I,GAAoC,MAAS,GAC3F,CAACgJ,GAAc7E,CAAe,IAAI8E;AAAA,IACpC;AAAA,IACArE;AAAA,IACAsD;AAAA,EAAA,GAEEgB,IAAwBC,GAAO,EAAK,GACpCC,IAAgBC,MAChBC,IAAmBC,MAEnBjwC,IAAK2mC,GAAWC,EAAgB,GAEhC2D,IAAmBvjB;AAAA,IACrB,OAAO,EAAE,MAAAoD,EAAA,MAA0B;AAC3B,UAAA;AACM,cAAApqB,EAAG,QAAQ,iBAAiBoqB,CAAI;AAAA,eACjClT,GAAO;AACZ,gBAAQ,MAAM,kCAAkC,EAAE,OAAAA,EAAO,CAAA;AAAA,MAC7D;AAAA,IACJ;AAAA,IACA,CAAClX,CAAE;AAAA,EAAA;AAGP,SAAA6mC,GAAU,MAAM;AACZ,QAAK7mC;AAIL,aAAOA,EAAG,QAAQ,uBAAuB,CAAC6pC,MAAW;AACjD,QAAA4F,EAAsB5F,CAAM;AAAA,MAAA,CAC/B;AAAA,EAAA,GACF,CAAC7pC,CAAE,CAAC,GAEP6mC,GAAU,MAAM;AACZ,QAAK7mC;AAIL,aAAOA,EAAG,QAAQ,WAAW,CAAC6pC,MAAW;AACrC,QAAAgB,EAAgB,EAAE,MAAMhB,EAAO,KAAM,CAAA;AAAA,MAAA,CACxC;AAAA,EAAA,GACF,CAAC7pC,CAAE,CAAC,GAEP6mC,GAAU,MAAM;AACZ,QAAK7mC;AAIL,aAAOA,EAAG,QAAQ,UAAU,CAAC6pC,MAAW;AAChC,SAAAA,KAAA,gBAAAA,EAAQ,WAAS6F,KAAA,gBAAAA,EAAc,SAInC7E,EAAgB,IAAI;AAAA,MAAA,CACvB;AAAA,EAAA,GACF,CAAC7qC,GAAI0vC,CAAY,CAAC,GAErB7I,GAAU,MAAM;AACZ,QAAK7mC;AAIL,aAAOA,EAAG,QAAQ,UAAU,CAAC6pC,GAAQqG,MAAa;AAC1C,SAAAA,KAAA,gBAAAA,EAAU,WAASR,KAAA,gBAAAA,EAAc,SAIrC7E,EAAgB,EAAE,MAAMhB,EAAO,KAAM,CAAA;AAAA,MAAA,CACxC;AAAA,EAAA,GACF,CAAC7pC,GAAI0vC,CAAY,CAAC,GAErB7I,GAAU,MAAM;;AACZ,QAAI,CAAC7mC,KAAM,GAAEnO,IAAA,OAAe,cAAf,QAAAA,EAA0B,oBAAmB+9C,EAAsB;AAC5E;AAkDS,KA/CQ,YAAY;;AAC7B,MAAAA,EAAsB,UAAU;AAEhC,YAAMO,IACD,MAAMnwC,EAAG,QAAQ,uBACjB,MAAMA,EAAG,QAAQ,OAAO,QAAQ,GAAG,KAAK,CAAC6pC,MAAWA,EAAO,SAASgF,EAAqB;AAQ9F,UANI,CAACsB,MAILV,EAAsB,EAAE,MAAMU,EAAoB,KAAM,CAAA,GAEpDT;AACA;AAKJ,UAFAJ,EAA4B,EAAI,GAE5BC,GAA0B;AACpB,cAAAO,EAAcK,EAAoB,IAAI,GAC5Cb,EAA4B,EAAK;AACjC;AAAA,MACJ;AAEM,YAAAc,IAAiB,QAAMv+C,IAAAmO,EAAG,eAAH,gBAAAnO,EAAe,aAAa,CAACq9C,MAAcA,EAAU,SAAS,WAAW,KAEhGxE,IAAa,MAAM1qC,EAAG,QAAQ,IAAImwC,EAAoB,MAAM,QAAQ;AAE1E,UAAI,CAACzF;AACK,cAAA,IAAI,MAAM,kCAAkC;AAGhD,YAAA2F,IAA8BvB,GAA8BpE,CAAU;AAEpE,cAAA;AAAA,QACJ2F,EAA4B;AAAA,UAAI,CAACC,GAAe3R,MAC5CqR,EAAiB;AAAA,YACb,IAAIM;AAAA,YACJ,kBAAkB3R,MAAU,IAAIyR,KAAA,gBAAAA,EAAgB,KAAK;AAAA,UAAA,CACxD;AAAA,QACL;AAAA,MAAA,GAGJd,EAA4B,EAAK;AAAA,IAAA,KAGtB,MAAM,CAACp4B,MAAU,QAAQ,MAAM,wCAAwCD,GAAoBC,CAAK,CAAC,CAAC;AAAA,EAAA,GAClH,CAAClX,GAAI0vC,GAAcI,GAAeE,GAAkBT,CAAwB,CAAC,GAEzE;AAAA,IACH,eAAeC;AAAA,IACf,cAAAE;AAAA,IACA,kBAAAnF;AAAA,IACA,iBAAAM;AAAA,EAAA;AAER,GAEM0F,KAAsBC,GAW1B,MAAS,GAEEC,KAAkB,MAAM;AAC3B,QAAA9O,IAAUgF,GAAW4J,EAAmB;AAE9C,MAAI5O,MAAY;AACN,UAAA,IAAI,MAAM,4DAA4D;AAGzE,SAAAA;AACX,GAQa+O,KAAuB,CAAC,EAAE,UAAAjN,GAAU,OAAArc,GAAO,0BAAAmoB,QAA0D;AAC9G,QAAM,CAACoB,GAA0BrB,CAA2B,IAAI5I,GAAS,EAAK,GACxE,EAAE,eAAAkK,GAAe,cAAAlB,GAAc,kBAAAnF,GAAkB,iBAAAM,EAAoB,IAAAwE;AAAA,IACvEC;AAAA,IACAC;AAAA,EAAA,GAGEsB,IAAeC;AAAA,IACjB,OAAO;AAAA,MACH,OAAA1pB;AAAA,MACA,eAAAwpB;AAAA,MACA,cAAAlB;AAAA,MACA,kBAAAnF;AAAA,MACA,iBAAAM;AAAA,MACA,0BAAA8F;AAAA,MACA,6BAAArB;AAAA,IAAA;AAAA,IAEJ,CAACloB,GAAOwpB,GAAelB,GAAcnF,GAAkBM,GAAiB8F,CAAwB;AAAA,EAAA;AAGpG,2BAAQJ,GAAoB,UAApB,EAA6B,OAAOM,GAAe,UAAApN,EAAS,CAAA;AACxE,GCnMasN,KAAsB;AAAA,EAC/B,cAAc;AAAA,EACd,oBAAoB;AAAA,EACpB,WAAW;AAAA,EACX,uBAAuB;AAAA,EACvB,wBAAwB;AAAA,EACxB,qBAAqB;AAAA,EACrB,qCAAqC;AAAA,EACrC,4BAA4B;AAChC,GCbaC,KAAuB,MAS/B;AACD,QAAM,EAAE,OAAApuB,GAAO,QAAAquB,GAAQ,WAAAC,GAAW,OAAAh6B,EAAA,IAAUi6B,GAAgB;AAAA,IACxD,SAASJ,GAAoB;AAAA,EAAA,CAChC,GAEKK,IAASpqB,GAAY,MAAMiqB,EAAO,CAACruB,MAAU,CAACA,CAAK,GAAG,CAACquB,CAAM,CAAC;AAEpE,SAAO,EAAE,OAAA/5B,GAAO,mBAAmB0L,GAAO,WAAAsuB,GAAW,QAAAE,EAAO;AAChE,GCZaC,KAAyB,MAAM;AAClC,QAAArxC,IAAK2mC,GAAWC,EAAgB,GAChC,EAAE,iBAAAiE,GAAiB,kBAAAN,GAAkB,OAAAnjB,MAAUqpB,GAAgB,GAC/D,EAAE,mBAAAa,MAAsBN,MACxB,EAAE,OAAApuB,GAAO,QAAAquB,EAAO,IAAIE,GAAgB;AAAA,IACtC,SAASJ,GAAoB;AAAA,EAAA,CAChC,GAEK/F,IAAiB,MAAM;AACzB,IAAIsG,KAIIlqB,KAAA,QAAAA;AAAA,EAAA;AAoBL,SAjBqBJ;AAAA,IACxB,OAAOnP,MAAmD;AAChD,YAAA,EAAE,QAAAgyB,GAAQ,YAAAJ,EAAe,IAAA5xB;AAExB,aAAA,MAAMozB,GAAsBxB,CAAU,EAAE;AAAA,QAC3C,IAAAzpC;AAAA,QACA,QAAA6pC;AAAA,QACA,iBAAAgB;AAAA,QACA,kBAAAN;AAAA,QACA,gBAAAS;AAAA,QACA,sBAAsBpoB;AAAA,QACtB,4BAA4BquB;AAAA,MAAA,CAC/B;AAAA,IACL;AAAA,IACA,CAACjxC,GAAIuqC,GAAkBM,GAAiBzjB,GAAOxE,GAAOquB,CAAM;AAAA,EAAA;AAIpE,GCzCaM,KAAwC,MAAM;AACvD,QAAM,EAAE,0BAAAZ,GAA0B,6BAAArB,EAA4B,IAAImB,GAAgB;AAElF,SAAO,OAAOvN,MAAqC;AAC/C,QAAI,CAAAyN,GAIJ;AAAA,MAAArB,EAA4B,EAAI;AAE5B,UAAA;AACA,cAAMpM,EAAS;AAAA,eACVhsB,GAAO;AACZ,gBAAQ,MAAM,6BAA6B,EAAE,OAAAA,EAAO,CAAA;AAAA,MACxD;AAEA,MAAAo4B,EAA4B,EAAK;AAAA;AAAA,EAAA;AAEzC,GCpBakC,KAAoB;AAAA,EAC7B,kBAAkB;AACtB,GCKMtI,KAAiD,OAAOrxB,MAAW;AAC/D,QAAA,EAAE,IAAA7X,GAAI,MAAA+W,EAAS,IAAAc;AAEjB,MAAC7X,EAAG;AAIJ,QAAA;AACM,YAAAA,EAAG,WAAW,iBAAiB+W,EAAK,IAAI,EAAE,UAAU,IAAM;AAAA,aAC3DG,GAAO;AACZ,YAAM4xB,GAAa;AAAA,QACf,IAAA9oC;AAAA,QACA,SAAS4oC,GAAoB;AAAA,QAC7B,MAAM,6BAA6B7xB,EAAK,KAAK;AAAA,QAC7C,OAAAG;AAAA,MAAA,CACH;AAAA,IACL;AACJ,GAEM0yB,KAAwC,OAAO/xB,MAAW;AAC5D,QAAM,EAAE,IAAA7X,GAAI,MAAA+W,GAAM,gBAAA06B,EAAA,IAAmB55B;AAEjC,MAAC7X,EAAG,YAIJ;AAAA,QAAA,YAAYA,KAAMA,EAAG,QAAQ;AAC7B,YAAMgqC,IAAkB,UAElB,EAAE,gBAAAE,GAAgB,uBAAAC,EAAsB,IAAI,MAAMnqC,EAAG,OAAO,QAAQ,QAAQ;AAAA,QAC9E,cAAc0pC,GAAsB;AAAA,QACpC,WAAW;AAAA,UACP,SAAS,WAAW3yB,EAAK,KAAK;AAAA,UAC9B,MAAM;AAAA,UACN,eAAe;AAAA,YACX,EAAE,SAAS,YAAY,MAAM,UAAU,IAAIizB,EAAgB;AAAA,YAC3D,EAAE,SAAS,WAAW,MAAM,UAAU,IAAI,UAAU,WAAW,GAAK;AAAA,UACxE;AAAA,QACJ;AAAA,MAAA,CACH;AAID,UAAI,EAFwBE,MAAkBC,KAAA,gBAAAA,EAAuB,QAAOH;AAGxE;AAAA,IAER;AAEI,QAAA;AACA,YAAMhqC,EAAG,WAAW,QAAQ,OAAO+W,EAAK,EAAE,GAC1C,MAAM06B,EAAe16B,CAAI,GAEzB,MAAM+xB,GAAa;AAAA,QACf,IAAA9oC;AAAA,QACA,SAAS4oC,GAAoB;AAAA,QAC7B,MAAM,cAAc7xB,EAAK,KAAK;AAAA,MAAA,CACjC;AAAA,aACIG,GAAO;AACZ,YAAM4xB,GAAa;AAAA,QACf,IAAA9oC;AAAA,QACA,SAAS4oC,GAAoB;AAAA,QAC7B,MAAM,+BAA+B7xB,EAAK,KAAK;AAAA,QAC/C,OAAAG;AAAA,MAAA,CACH;AAAA,IACL;AAAA;AACJ,GAEMw6B,KAAiD,OAAO75B,MAAW;AAC/D,QAAA,EAAE,IAAA7X,EAAO,IAAA6X;AAEX,MAAC7X,EAAG;AAIJ,QAAA;AACA,YAAMA,EAAG,WAAW,gBAAgB,EAAE,UAAU,IAAI,OAAO,EAAE,UAAU,GAAK,EAAG,CAAA;AAAA,aAC1EkX,GAAO;AACZ,YAAM4xB,GAAa;AAAA,QACf,IAAA9oC;AAAA,QACA,SAAS4oC,GAAoB;AAAA,QAC7B,MAAM;AAAA,QACN,OAAA1xB;AAAA,MAAA,CACH;AAAA,IACL;AACJ,GAEay6B,KAET;AAAA,EACA,CAACpI,GAA0B,kBAAkB,GAAGL;AAAA,EAChD,CAACK,GAA0B,MAAM,GAAGK;AAAA,EACpC,CAAC4H,GAAkB,gBAAgB,GAAGE;AAC1C;ACnGO,MAAME,GAAW;AAAA,EAAjB;AACc,IAAAjtC,GAAA,eACb,CAAA;AACI,IAAAA,GAAA,0BAAmB;AAAA;AAAA,EAEpB,QAAWktC,GAAsC;AACpD,WAAO,IAAI,QAAW,CAACxU,GAASyU,MAAW;AACvC,WAAK,MAAM,KAAK,EAAE,QAAAD,GAAQ,SAAAxU,GAAS,QAAAyU,GAAQ,GAC3C,KAAK,aAAa;AAAA,IAAA,CACrB;AAAA,EACL;AAAA,EAEA,MAAc,eAA8B;AACxC,QAAI,MAAK,kBAMF;AAAA,WAFP,KAAK,mBAAmB,IAEjB,KAAK,MAAM,UAAQ;AAChB,cAAAC,IAAY,KAAK,MAAM,MAAM;AAGnC,YAAI,CAACA,GAAW;AACZ,eAAK,mBAAmB;AACxB;AAAA,QACJ;AAEI,YAAA;AACM,gBAAAC,IAAe,MAAMD,EAAU;AACrC,UAAAA,EAAU,QAAQC,CAAY;AAAA,iBACzB96B,GAAO;AACZ,UAAA66B,EAAU,OAAO76B,CAAK;AAAA,QAC1B;AAEA,cAAM,KAAK;MACf;AAEA,WAAK,mBAAmB;AAAA;AAAA,EAC5B;AAAA,EAEQ,gBAA+B;AACnC,WAAO,IAAI,QAAQ,CAAC+6B,MAAQ,WAAWA,GAAK,CAAC,CAAC;AAAA,EAClD;AACJ;ACxCO,MAAMC,KAAgB,MAAmB;AAC5C,QAAM,CAACC,GAAYC,CAAa,IAAI1L,GAAsB,CAAE,CAAA,GAEtD1mC,IAAK2mC,GAAWC,EAAgB;AAEtC,SAAAC,GAAU,MAAM;AACZ,QAAI,EAAC7mC,KAAA,QAAAA,EAAI;AAAY;AAErB,QAAIqyC,IAAiB;AAEf,UAAAC,IAAqBtyC,EAAG,WAAW,QAAQ,QAAQ,CAAC,EAAE,MAAAoqB,QAAW;AAC/D,MAAAioB,KAAkBF,EAAW,KAAK,CAAC,EAAE,IAAA17B,QAASA,MAAO2T,CAAI,KAI/CgoB,EAAA,CAAC5U,MAAY,CAAC,GAAGA,GAAS,EAAE,IAAIpT,GAAM,OAAOA,EAAM,CAAA,CAAC;AAAA,IAAA,CACrE,GAEKmoB,IAAuBvyC,EAAG,WAAW,QAAQ,UAAU,CAAC,EAAE,MAAAoqB,QAAW;AACnE,MAAAioB,KAEUD,EAAA,CAAC5U,MAAYA,EAAQ,OAAO,CAAC,EAAE,OAAAxkB,QAAYA,MAAUoR,CAAI,CAAC;AAAA,IAAA,CAC3E;AAED,WAAO,MAAM;AACQ,MAAAioB,IAAA,IAEjB,CAACC,GAAoBC,CAAoB,EAAE,QAAQ,OAAOC,MAAY;AAC9D,YAAA;AAGY,WAFQ,MAAMA;iBAGrBt7B,GAAO;AACZ,kBAAQ,MAAMA,CAAK;AAAA,QACvB;AAAA,MAAA,CACH;AAAA,IAAA;AAAA,EACL,GACD,CAAClX,GAAImyC,CAAU,CAAC,GAEZA;AACX,GClCMM,KAAa,IAAIb,MAEVc,KAAe,MAKvB;AACK,QAAA;AAAA,IACF,OAAOC;AAAA,IACP,QAAA1B;AAAA,IACA,WAAAC;AAAA,MACAC,GAAgB;AAAA,IAChB,SAASJ,GAAoB;AAAA,EAAA,CAChC,GACKz3B,IAAektB,MACf2L,IAAaD,MACbU,IAAkB9B,GAAQ,OACpB6B,KAAoB,CAAA,GAAI,OAAO,CAACE,MAChCA,EAAS,SAAS77B,GAAW,cACtBsC,EAAa,KAAK,CAACP,MAAgBA,EAAY,OAAO85B,EAAS,EAAE,IAGxEA,EAAS,SAAS77B,GAAW,YACtBm7B,EAAW,KAAK,CAACjD,MAAcA,EAAU,OAAO2D,EAAS,EAAE,IAG/D,EACV,GACF,CAACF,GAAkBr5B,GAAc64B,CAAU,CAAC,GAEzCW,IAAiB9rB;AAAA,IACnB,CAAC,EAAE,eAAA+rB,GAAe,GAAGh8B,QACV07B,GAAW,QAAQ,MACfxB,EAAO,CAAC+B,IAAY,OAAO;AAC9B,YAAMC,IAAmBD,EAAU;AAAA,QAC/B,CAACH,MAAaA,EAAS,OAAO97B,EAAK,MAAM87B,EAAS,QAAQ97B,EAAK;AAAA,MAAA;AAG5D,aAAAk8B,IACDD,EAAU,OAAO,CAACH,MAAaA,MAAaI,CAAgB,IAC5D,CAACl8B,GAAM,GAAGi8B,CAAS;AAAA,IAAA,CAC5B,CACJ;AAAA,IAEL,CAAC/B,CAAM;AAAA,EAAA,GAGLQ,IAAiBzqB;AAAA,IACnB,CAACjQ,MACU07B,GAAW,QAAQ,MACfxB,EAAO,CAAC+B,IAAY,OAChBA,EAAU,OAAO,CAACH,MAAa,EAAEA,EAAS,OAAO97B,EAAK,MAAM87B,EAAS,SAAS97B,EAAK,KAAK,CAClG,CACJ;AAAA,IAEL,CAACk6B,CAAM;AAAA,EAAA;AAGX,SAAO,EAAE,WAAW2B,GAAiB,gBAAAE,GAAgB,gBAAArB,GAAgB,WAAAP,EAAU;AACnF,GChEagC,KAA4B,MAAM;AACrC,QAAAlzC,IAAK2mC,GAAWC,EAAgB,GAChC,EAAE,gBAAA6K,MAAmBiB;AAEpB,SAAA,CAAC37B,GAAuB0yB,MAAuB;AAClD,IAAAkI,GAAyBlI,CAAU,EAAE,EAAE,IAAAzpC,GAAI,MAAA+W,GAAM,gBAAA06B,GAAgB;AAAA,EAAA;AAEzE,GCTa0B,KAAyB,MAA8D;AAC1F,QAAAnzC,IAAK2mC,GAAWC,EAAgB;AAEtC,SAAO,OAAOiL,MACN7xC,EAAG,QAAQ,QAAA,EAAU,MAAM,CAACozC,MAAWA,EAAO,UAASvB,KAAA,gBAAAA,EAAQ,OAAM,IAC9D,QAAQ,MAAM,2BAA2B,IAG7C,MAAM7xC,EAAG,QAAQ,OAAO6xC,EAAO,QAAQA,EAAO,QAAQA,EAAO,MAAM,EAAE,MAAM,CAAC36B,MAAU,QAAQ,MAAM,EAAE,OAAAA,EAAO,CAAA,CAAC;AAE7H,GCVam8B,KAAkB,MAAM;AACjC,QAAM,CAACC,GAAcC,CAAe,IAAI7M,GAAkB,EAAK,GAEzD1mC,IAAK2mC,GAAWC,EAAgB;AAEtC,SAAAC,GAAU,MAAM;AACZ,QAAI,CAAC7mC;AACD;AAGA,QAAAwzC;AAEJ,YAAC,YAAY;;AACL,UAAA;AACA,QAAAA,IAAc,QAAM3hD,IAAAmO,EAAG,eAAH,gBAAAnO,EAAe,kBAAkB,MAAM0hD,EAAgB,EAAI;AAAA,eAC1Er8B,GAAO;AACZ,gBAAQ,MAAMA,CAAK;AAAA,MACvB;AAAA,IAAA,MAGG,MAAMs8B,KAAA,gBAAAA;AAAA,EAAc,GAC5B,CAACxzC,CAAE,CAAC,GAEAszC;AACX;;;AClBA,GAAC,SAAUtmB,GAAQymB,GAAW;AAS1B,QAAIC,IAAc,UACdC,IAAc,IACdC,IAAc,KACdC,IAAc,YACdC,IAAc,aACdC,IAAc,UACdC,IAAc,UACdC,IAAc,SACdC,IAAc,SACdC,IAAc,QACdC,IAAc,QACdC,IAAc,UACdC,IAAc,WACdC,IAAc,gBACdC,IAAc,WACdC,IAAc,UACdC,IAAc,UACdC,IAAc,WACdC,IAAc,YACdC,IAAc,YACdC,IAAgB,KAEhBC,IAAU,UACVC,IAAU,SACVC,IAAU,QACVC,IAAa,cACbC,KAAU,WACVC,KAAU,UACVC,IAAU,QACVC,KAAU,WACVC,KAAU,UACVC,KAAU,UACVC,KAAU,MACVC,IAAY,aACZC,IAAY,YACZC,KAAU,SACVC,KAAU,WACVC,IAAU,SACVC,IAAU,QACVC,IAAU,UACVC,IAAU,SACVC,IAAc,YACdC,IAAc,eACdC,KAAU,UAMVC,KAAS,SAAUC,GAASC,GAAY;AACpC,UAAIC,IAAgB,CAAA;AACpB,eAAS7mD,KAAK2mD;AACV,QAAIC,EAAW5mD,CAAC,KAAK4mD,EAAW5mD,CAAC,EAAE,SAAS,MAAM,IAC9C6mD,EAAc7mD,CAAC,IAAI4mD,EAAW5mD,CAAC,EAAE,OAAO2mD,EAAQ3mD,CAAC,CAAC,IAElD6mD,EAAc7mD,CAAC,IAAI2mD,EAAQ3mD,CAAC;AAGpC,aAAO6mD;AAAA,IACV,GACDC,IAAY,SAAUpJ,GAAK;AAEvB,eADIqJ,IAAQ,CAAA,GACH/mD,IAAE,GAAGA,IAAE09C,EAAI,QAAQ19C;AACxB,QAAA+mD,EAAMrJ,EAAI19C,CAAC,EAAE,YAAW,CAAE,IAAI09C,EAAI19C,CAAC;AAEvC,aAAO+mD;AAAA,IACV,GACDr4B,KAAM,SAAUs4B,GAAMC,GAAM;AACxB,aAAO,OAAOD,MAAS3C,IAAW6C,GAASD,CAAI,EAAE,QAAQC,GAASF,CAAI,CAAC,MAAM,KAAK;AAAA,IACrF,GACDE,KAAW,SAAUC,GAAK;AACtB,aAAOA,EAAI;IACd,GACDC,KAAW,SAAUC,GAAS;AAC1B,aAAO,OAAOA,MAAahD,IAAWgD,EAAQ,QAAQ,YAAYrD,CAAK,EAAE,MAAM,GAAG,EAAE,CAAC,IAAIF;AAAAA,IAC5F,GACDwD,KAAO,SAAUH,GAAKxoB,GAAK;AACvB,UAAI,OAAOwoB,MAAS9C;AAChB,eAAA8C,IAAMA,EAAI,QAAQ,UAAUnD,CAAK,GAC1B,OAAOrlB,MAASwlB,IAAagD,IAAMA,EAAI,UAAU,GAAGhC,CAAa;AAAA,IAExF,GAMQoC,KAAY,SAAUC,GAAIC,GAAQ;AAK9B,eAHIznD,IAAI,GAAGiC,GAAG9B,IAAGkB,IAAGuB,IAAG8kD,IAASC,IAGzB3nD,IAAIynD,EAAO,UAAU,CAACC,MAAS;AAElC,YAAIE,KAAQH,EAAOznD,CAAC,GAChB8xB,KAAQ21B,EAAOznD,IAAI,CAAC;AAIxB,aAHAiC,IAAI9B,KAAI,GAGD8B,IAAI2lD,GAAM,UAAU,CAACF,MAEnBE,GAAM3lD,CAAC;AAGZ,cAFAylD,KAAUE,GAAM3lD,GAAG,EAAE,KAAKulD,CAAE,GAEtBE;AACF,iBAAKrmD,KAAI,GAAGA,KAAIywB,GAAM,QAAQzwB;AAC1B,cAAAsmD,KAAQD,GAAQ,EAAEvnD,EAAC,GACnByC,KAAIkvB,GAAMzwB,EAAC,GAEP,OAAOuB,OAAMwhD,KAAYxhD,GAAE,SAAS,IAChCA,GAAE,WAAW,IACT,OAAOA,GAAE,CAAC,KAAKshD,IAEf,KAAKthD,GAAE,CAAC,CAAC,IAAIA,GAAE,CAAC,EAAE,KAAK,MAAM+kD,EAAK,IAGlC,KAAK/kD,GAAE,CAAC,CAAC,IAAIA,GAAE,CAAC,IAEbA,GAAE,WAAW,IAEhB,OAAOA,GAAE,CAAC,MAAMshD,KAAa,EAAEthD,GAAE,CAAC,EAAE,QAAQA,GAAE,CAAC,EAAE,QAEjD,KAAKA,GAAE,CAAC,CAAC,IAAI+kD,KAAQ/kD,GAAE,CAAC,EAAE,KAAK,MAAM+kD,IAAO/kD,GAAE,CAAC,CAAC,IAAIkhD,IAGpD,KAAKlhD,GAAE,CAAC,CAAC,IAAI+kD,KAAQA,GAAM,QAAQ/kD,GAAE,CAAC,GAAGA,GAAE,CAAC,CAAC,IAAIkhD,IAE9ClhD,GAAE,WAAW,MAChB,KAAKA,GAAE,CAAC,CAAC,IAAI+kD,KAAQ/kD,GAAE,CAAC,EAAE,KAAK,MAAM+kD,GAAM,QAAQ/kD,GAAE,CAAC,GAAGA,GAAE,CAAC,CAAC,CAAC,IAAIkhD,KAG1E,KAAKlhD,EAAC,IAAI+kD,MAAgB7D;AAK1C,QAAA9jD,KAAK;AAAA,MACR;AAAA,IACJ,GAED6nD,KAAY,SAAUV,GAAKra,GAAK;AAE5B,eAAS9sC,KAAK8sC;AAEV,YAAI,OAAOA,EAAI9sC,CAAC,MAAMokD,KAAYtX,EAAI9sC,CAAC,EAAE,SAAS;AAC9C,mBAASiC,IAAI,GAAGA,IAAI6qC,EAAI9sC,CAAC,EAAE,QAAQiC;AAC/B,gBAAIysB,GAAIoe,EAAI9sC,CAAC,EAAEiC,CAAC,GAAGklD,CAAG;AAClB,qBAAQnnD,MAAMikD,IAAWH,IAAY9jD;AAAA,mBAGtC0uB,GAAIoe,EAAI9sC,CAAC,GAAGmnD,CAAG;AACtB,iBAAQnnD,MAAMikD,IAAWH,IAAY9jD;AAG7C,aAAOmnD;AAAA,IACnB,GAOQW,IAAe;AAAA,MACX,OAAU;AAAA,MACV,OAAU;AAAA,MACV,OAAU;AAAA,MACV,OAAU;AAAA,MACV,SAAU;AAAA,MACV,SAAU;AAAA,MACV,SAAU;AAAA,MACV,KAAU;AAAA,IACb,GACDC,IAAoB;AAAA,MAChB,IAAc;AAAA,MACd,WAAc;AAAA,MACd,UAAc;AAAA,MACd,KAAc;AAAA,MACd,IAAc,CAAC,UAAU,QAAQ;AAAA,MACjC,OAAc;AAAA,MACd,GAAc;AAAA,MACd,GAAc;AAAA,MACd,OAAc;AAAA,MACd,IAAc,CAAC,UAAU,SAAS;AAAA,MAClC,IAAc;AAAA,IAC1B,GAMQpB,IAAU;AAAA,MAEV,SAAU;AAAA,QAAC;AAAA,UAEP;AAAA;AAAA,QACC;AAAA,QAAE,CAAChC,GAAS,CAACH,GAAM,QAAQ,CAAC;AAAA,QAAG;AAAA,UAChC;AAAA;AAAA,QACC;AAAA,QAAE,CAACG,GAAS,CAACH,GAAM,MAAM,CAAC;AAAA,QAAG;AAAA;AAAA,UAG9B;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,QACZ;AAAA,QAAe,CAACA,GAAMG,CAAO;AAAA,QAAG;AAAA,UACpB;AAAA;AAAA,QACZ;AAAA,QAAe,CAACA,GAAS,CAACH,GAAMyB,KAAM,OAAO,CAAC;AAAA,QAAG;AAAA,UACrC;AAAA;AAAA,QACZ;AAAA,QAAe,CAACtB,GAAS,CAACH,GAAMyB,KAAM,KAAK,CAAC;AAAA,QAAG;AAAA,UACnC;AAAA;AAAA,QACC;AAAA,QAAE,CAACtB,GAAS,CAACH,GAAMyB,EAAK,CAAC;AAAA,QAAG;AAAA;AAAA,UAG7B;AAAA;AAAA,QACC;AAAA,QAAE,CAACtB,GAAS,CAACH,GAAM,OAAO,CAAC;AAAA,QAAG;AAAA,UAC/B;AAAA;AAAA,UACA;AAAA;AAAA;AAAA,UAEA;AAAA;AAAA,UACA;AAAA;AAAA;AAAA,UAGA;AAAA;AAAA,UAEA;AAAA;AAAA,UACA;AAAA;AAAA,QACZ;AAAA,QAAe,CAACA,GAAMG,CAAO;AAAA,QAAG;AAAA,UACpB;AAAA;AAAA,QACC;AAAA,QAAE,CAACA,GAAS,CAACH,GAAM,YAAY,CAAC;AAAA,QAAG;AAAA,UACpC;AAAA;AAAA,QACZ;AAAA,QAAe,CAACG,GAAS,CAACH,GAAM,OAAKgB,EAAO,CAAC;AAAA,QAAG;AAAA,UACpC;AAAA;AAAA,UACA;AAAA,UACA;AAAA;AAAA,QACC;AAAA,QAAE,CAACb,GAAS,CAACH,GAAM,QAAQ,CAAC;AAAA,QAAG;AAAA,UAChC;AAAA;AAAA,QACC;AAAA,QAAE,CAACG,GAAS,CAACH,GAAM,WAAW,CAAC;AAAA,QAAG;AAAA,UACnC;AAAA;AAAA,QACC;AAAA,QAAE,CAACG,GAAS,CAACH,GAAM,IAAI,CAAC;AAAA,QAAG;AAAA,UAC5B;AAAA;AAAA,QACC;AAAA,QAAE,CAACG,GAAS,CAACH,GAAM,QAAQ,CAAC;AAAA,QAAG;AAAA,UAChC;AAAA;AAAA,QACZ;AAAA,QAAe,CAACG,GAAS,CAACH,GAAM,kBAAgBgB,EAAO,CAAC;AAAA,QAAG;AAAA,UAC/C;AAAA;AAAA,QACZ;AAAA,QAAe,CAAC,CAAChB,GAAM,QAAQ,eAAagB,EAAO,GAAGb,CAAO;AAAA,QAAG;AAAA,UACpD;AAAA;AAAA,QACZ;AAAA,QAAe,CAACA,GAAS,CAACH,GAAMmB,KAAQ,QAAQ,CAAC;AAAA,QAAG;AAAA,UACxC;AAAA;AAAA,QACZ;AAAA,QAAe,CAAChB,GAAS,CAACH,GAAMyB,KAAM,QAAQ,CAAC;AAAA,QAAG;AAAA,UACtC;AAAA;AAAA,QACC;AAAA,QAAE,CAACtB,GAAS,CAACH,GAAM,SAAS,CAAC;AAAA,QAAG;AAAA,UACjC;AAAA;AAAA,QACC;AAAA,QAAE,CAACG,GAAS,CAACH,GAAM,SAAS,CAAC;AAAA,QAAG;AAAA,UACjC;AAAA;AAAA,QACZ;AAAA,QAAe,CAACG,GAAS,CAACH,GAAMyB,KAAM,QAAQ,CAAC;AAAA,QAAG;AAAA,UACtC;AAAA;AAAA,QACZ;AAAA,QAAe,CAACtB,GAAS,CAACH,GAAM,UAAQgB,EAAO,CAAC;AAAA,QAAG;AAAA,UACvC;AAAA;AAAA,QACC;AAAA,QAAE,CAACb,GAAS,CAACH,GAAMmB,EAAO,CAAC;AAAA,QAAG;AAAA,UAC/B;AAAA;AAAA,QACC;AAAA,QAAE,CAAC,CAACnB,GAAM,SAASgB,EAAO,CAAC;AAAA,QAAG;AAAA,UAC/B;AAAA,QACZ;AAAA,QAAe,CAAC,CAAChB,GAAM,QAAQ,QAAQgB,EAAO,GAAGb,CAAO;AAAA,QAAG;AAAA;AAAA,UAC/C;AAAA;AAAA,QACZ;AAAA,QAAe,CAACA,GAAS,CAACH,GAAM0B,KAAU,WAAW,CAAC;AAAA,QAAG;AAAA,UAC7C;AAAA;AAAA,QACZ;AAAA,QAAe,CAAC,CAAC1B,GAAM,MAAM,GAAG,GAAGG,CAAO;AAAA,QAAG;AAAA,UACjC;AAAA;AAAA,QACC;AAAA,QAAE,CAACA,GAAS,CAACH,GAAM,gBAAgB,CAAC;AAAA,QAAG;AAAA,UACxC;AAAA;AAAA,QACC;AAAA,QAAE,CAAC,CAACA,GAAM,cAAc,GAAGG,CAAO;AAAA,QAAG;AAAA,UACtC;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,QACZ;AAAA,QAAe,CAACH,GAAMG,CAAO;AAAA,QAAG;AAAA,UACpB;AAAA;AAAA,UACA;AAAA;AAAA,QACZ;AAAA,QAAe,CAACH,CAAI;AAAA,QAAG;AAAA;AAAA,UAGX;AAAA;AAAA,QACC;AAAA,QAAE,CAAC,CAACA,GAAM+B,CAAQ,GAAG5B,CAAO;AAAA,QAAG;AAAA,UAChC;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,QACZ;AAAA,QAAe,CAACH,GAAMG,CAAO;AAAA,QAAG;AAAA,UACpB;AAAA;AAAA,QACC;AAAA,QAAE,CAACA,GAAS,CAACH,GAAM,KAAK,CAAC;AAAA,QAAG;AAAA,UAC7B;AAAA;AAAA,QACC;AAAA,QAAE,CAACG,GAAS,CAACH,GAAM,QAAQ,CAAC;AAAA,QAAG;AAAA,UAEhC;AAAA;AAAA,QACZ;AAAA,QAAe,CAACG,GAAS,CAACH,GAAMiB,KAAO,WAAW,CAAC;AAAA,QAAG;AAAA,UAE1C;AAAA;AAAA,QACZ;AAAA,QAAe,CAAC,CAACjB,GAAMiB,KAAO,UAAU,GAAGd,CAAO;AAAA,QAAG;AAAA,UAEzC;AAAA;AAAA,QACZ;AAAA,QAAe,CAACA,GAAS,CAACH,GAAM,aAAWgB,EAAO,CAAC;AAAA,QAAG;AAAA,UAE1C;AAAA;AAAA,QACZ;AAAA,QAAe,CAAChB,GAAMG,CAAO;AAAA,QAAG;AAAA,UAEpB;AAAA;AAAA,QACC;AAAA,QAAE,CAACA,GAAS,CAACH,GAAM,eAAe,CAAC;AAAA,QAAG;AAAA,UACvC;AAAA;AAAA,QACZ;AAAA,QAAe,CAACG,GAASH,CAAI;AAAA,QAAG;AAAA,UACpB;AAAA;AAAA,QACZ;AAAA,QAAe,CAACA,GAAM,CAACG,GAASkD,IAAWC,CAAY,CAAC;AAAA,QAAG;AAAA,UAE/C;AAAA,QACZ;AAAA,QAAe,CAACtD,GAAMG,CAAO;AAAA,QAAG;AAAA;AAAA,UAGpB;AAAA;AAAA,QACC;AAAA,QAAE,CAAC,CAACH,GAAM,UAAU,GAAGG,CAAO;AAAA,QAAG;AAAA,UAClC;AAAA;AAAA,QACZ;AAAA,QAAe,CAACA,GAAS,CAACH,GAAMmB,KAAQ,UAAU,CAAC;AAAA,QAAG;AAAA,UAC1C;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,UAEA;AAAA;AAAA,UAEA;AAAA;AAAA,UACA;AAAA;AAAA;AAAA,UAGA;AAAA;AAAA,UAEA;AAAA;AAAA,UACA;AAAA;AAAA,QACZ;AAAA,QAAe,CAACnB,GAAMG,CAAO;AAAA,QAAG;AAAA,UAEpB;AAAA;AAAA,QACC;AAAA,QAAE,CAACH,GAAM,CAACG,GAAS,gBAAgB,EAAE,CAAC;AAAA,MAC1C;AAAA,MAED,KAAM;AAAA,QAAC;AAAA,UAEH;AAAA;AAAA,QACC;AAAA,QAAE,CAAC,CAACC,GAAc,OAAO,CAAC;AAAA,QAAG;AAAA,UAE9B;AAAA;AAAA,QACC;AAAA,QAAE,CAAC,CAACA,GAAcsC,EAAQ,CAAC;AAAA,QAAG;AAAA,UAE/B;AAAA;AAAA,QACC;AAAA,QAAE,CAAC,CAACtC,GAAc,MAAM,CAAC;AAAA,QAAG;AAAA,UAE7B;AAAA;AAAA,QACC;AAAA,QAAE,CAAC,CAACA,GAAc,OAAO,CAAC;AAAA,QAAG;AAAA,UAE9B;AAAA;AAAA,QACC;AAAA,QAAE,CAAC,CAACA,GAAc,OAAO,CAAC;AAAA,QAAG;AAAA;AAAA,UAG9B;AAAA,QACC;AAAA,QAAE,CAAC,CAACA,GAAc,KAAK,CAAC;AAAA,QAAG;AAAA,UAE5B;AAAA;AAAA,QACZ;AAAA,QAAe,CAAC,CAACA,GAAc,QAAQZ,GAAOkD,EAAQ,CAAC;AAAA,QAAG;AAAA,UAE9C;AAAA;AAAA,QACC;AAAA,QAAE,CAAC,CAACtC,GAAc,OAAO,CAAC;AAAA,QAAG;AAAA,UAE9B;AAAA;AAAA,QAEZ;AAAA,QAAe,CAAC,CAACA,GAAcsC,EAAQ,CAAC;AAAA,MAC/B;AAAA,MAED,QAAS;AAAA,QAAC;AAAA;AAAA;AAAA;AAAA;AAAA,UAON;AAAA,QACZ;AAAA,QAAe,CAAC3C,GAAO,CAACG,GAAQwB,EAAO,GAAG,CAACzB,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA,UAC/C;AAAA,UACA;AAAA,UACA;AAAA,QACZ;AAAA,QAAe,CAACR,GAAO,CAACG,GAAQwB,EAAO,GAAG,CAACzB,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA;AAAA,UAG/C;AAAA;AAAA,QACZ;AAAA,QAAe,CAACP,GAAO,CAACG,GAAQW,CAAK,GAAG,CAACZ,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA,UAC7C;AAAA;AAAA,UACA;AAAA,UACA;AAAA,QACZ;AAAA,QAAe,CAACP,GAAO,CAACG,GAAQW,CAAK,GAAG,CAACZ,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA,UAC7C;AAAA,QACC;AAAA,QAAE,CAACR,GAAO,CAACG,GAAQW,CAAK,CAAC;AAAA,QAAG;AAAA;AAAA,UAG7B;AAAA,QACZ;AAAA,QAAe,CAACd,GAAO,CAACG,GAAQyB,CAAK,GAAG,CAAC1B,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA;AAAA,UAG7C;AAAA,QACZ;AAAA,QAAe,CAACP,GAAO,CAACG,GAAQmB,EAAM,GAAG,CAACpB,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA,UAC9C;AAAA,UACA;AAAA,QACZ;AAAA,QAAe,CAACR,GAAO,CAACG,GAAQmB,EAAM,GAAG,CAACpB,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA;AAAA,UAG9C;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,QACC;AAAA,QAAE,CAAC,CAACP,GAAO,MAAM,GAAG,GAAG,CAACG,GAAQ2B,CAAM,GAAG,CAAC5B,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA,UAC3D;AAAA;AAAA,UACA;AAAA;AAAA,QACC;AAAA,QAAC,CAAC,CAACP,GAAO,MAAM,GAAG,GAAG,CAACG,GAAQ2B,CAAM,GAAG,CAAC5B,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA;AAAA,UAG1D;AAAA,UACA;AAAA,QACZ;AAAA,QAAe,CAACR,GAAO,CAACG,GAAQ,MAAM,GAAG,CAACD,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA,UAC9C;AAAA,QACZ;AAAA,QAAe,CAACP,GAAO,CAACG,GAAQ,MAAM,GAAG,CAACD,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA;AAAA,UAG9C;AAAA,UACA;AAAA,QACZ;AAAA,QAAe,CAACR,GAAO,CAACG,GAAQ,MAAM,GAAG,CAACD,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA;AAAA,UAG9C;AAAA,QACZ;AAAA,QAAe,CAACP,GAAO,CAACG,GAAQ,QAAQ,GAAG,CAACD,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA;AAAA,UAGhD;AAAA,UACA;AAAA,UACA;AAAA,QACZ;AAAA,QAAe,CAACP,GAAO,CAACG,GAAQsB,CAAQ,GAAG,CAACvB,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA,UAChD;AAAA,QACZ;AAAA,QAAe,CAACP,GAAO,CAACG,GAAQsB,CAAQ,GAAG,CAACvB,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA;AAAA,UAGhD;AAAA,QACZ;AAAA,QAAe,CAACR,GAAO,CAACG,GAAQoB,EAAE,GAAG,CAACrB,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA,UAC1C;AAAA,UACA;AAAA,UACA;AAAA,QACZ;AAAA,QAAe,CAACR,GAAO,CAACG,GAAQoB,EAAE,GAAG,CAACrB,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA;AAAA,UAG1C;AAAA,UACA;AAAA,QACZ;AAAA,QAAe,CAACP,GAAO,CAACG,GAAQ,QAAQ,GAAG,CAACD,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA;AAAA,UAGhD;AAAA,UACA;AAAA,QACC;AAAA,QAAE,CAAC,CAACR,GAAO,MAAM,GAAG,GAAG,CAACG,GAAQ,OAAO,GAAG,CAACD,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA;AAAA,UAG5D;AAAA;AAAA,QACZ;AAAA,QAAe,CAACP,GAAO,CAACG,GAAQkB,EAAM,GAAG,CAACnB,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA,UAC9C;AAAA;AAAA,QACZ;AAAA,QAAe,CAACR,GAAO,CAACG,GAAQkB,EAAM,GAAG,CAACnB,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA;AAAA,UAG9C;AAAA,QACZ;AAAA,QAAe,CAACP,GAAO,CAACG,GAAQ0B,CAAI,GAAG,CAAC3B,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA,UAC5C;AAAA,UACA;AAAA,QACC;AAAA,QAAE,CAAC,CAACP,GAAO,eAAe,GAAG,CAACG,GAAQ0B,CAAI,GAAG,CAAC3B,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA;AAAA,UAG/D;AAAA,UACA;AAAA,QACZ;AAAA,QAAe,CAACR,GAAO,CAACG,GAAQ,SAAS,GAAG,CAACD,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA;AAAA,UAGjD;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,QACZ;AAAA,QAAe,CAACP,GAAO,CAACG,GAAQU,CAAM,GAAG,CAACX,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA,UAC9C;AAAA;AAAA,QACC;AAAA,QAAE,CAAC,CAACR,GAAO,SAAS,eAAe,GAAG,CAACG,GAAQU,CAAM,GAAG,CAACX,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA;AAAA,UAG1E;AAAA;AAAA,QACZ;AAAA,QAAe,CAACP,GAAOG,GAAQ,CAACD,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA,UACpC;AAAA,UACA;AAAA;AAAA,QACZ;AAAA,QAAe,CAACR,GAAO,CAACG,GAAQa,CAAU,GAAG,CAACd,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA;AAAA,UAGlD;AAAA,QACZ;AAAA,QAAe,CAACP,GAAO,CAACG,GAAQY,CAAI,GAAG,CAACb,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA,UAC5C;AAAA,QACZ;AAAA,QAAe,CAACR,GAAO,CAACG,GAAQY,CAAI,GAAG,CAACb,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA;AAAA,UAG5C;AAAA;AAAA,QACZ;AAAA,QAAe,CAACP,GAAO,CAACG,GAAQ,KAAK,GAAG,CAACD,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA,UAC7C;AAAA;AAAA;AAAA,UAGA;AAAA,UACA;AAAA;AAAA,QACZ;AAAA,QAAe,CAACL,GAAQ,CAACH,GAAO,MAAM,GAAG,GAAG,CAACE,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA;AAAA,UAGjD;AAAA,QACZ;AAAA,QAAe,CAACP,GAAO,CAACG,GAAQ,MAAM,GAAG,CAACD,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA;AAAA,UAG9C;AAAA,UACA;AAAA,QACZ;AAAA,QAAe,CAACR,GAAO,CAACG,GAAQ,OAAO,GAAG,CAACD,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA;AAAA,UAG/C;AAAA,QACZ;AAAA,QAAe,CAACP,GAAO,CAACG,GAAQ,SAAS,GAAG,CAACD,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA;AAAA,UAGjD;AAAA;AAAA,UAEA;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,QACZ;AAAA,QAAe,CAACJ,GAAQH,GAAO,CAACE,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA,UAEpC;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,QACZ;AAAA,QAAe,CAACJ,GAAQH,GAAO,CAACE,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA,UAEpC;AAAA;AAAA,QACZ;AAAA,QAAe,CAACR,GAAO,CAACG,GAAQqB,CAAS,GAAG,CAACtB,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA,UACjD;AAAA;AAAA,QACZ;AAAA,QAAe,CAACR,GAAO,CAACG,GAAQ,WAAW,GAAG,CAACD,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA,UACnD;AAAA;AAAA,QACZ;AAAA,QAAe,CAACP,GAAO,CAACG,GAAQ,MAAM,GAAG,CAACD,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA,UAC9C;AAAA;AAAA,QACZ;AAAA,QAAe,CAACP,GAAO,CAACG,GAAQ,SAAS,GAAG,CAACD,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA,UACjD;AAAA;AAAA,QACZ;AAAA,QAAe,CAACP,GAAO,CAACG,GAAQ,KAAK,GAAG,CAACD,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA,UAC7C;AAAA;AAAA,QACZ;AAAA,QAAe,CAACR,GAAO,CAACG,GAAQ,MAAM,GAAG,CAACD,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA,UAC9C;AAAA;AAAA,QACZ;AAAA,QAAe,CAACR,GAAO,CAACG,GAAQ,SAAS,GAAG,CAACD,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA,UACjD;AAAA;AAAA,QACZ;AAAA,QAAe,CAACR,GAAO,CAACG,GAAQ,gBAAgB,GAAG,CAACD,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA,UACxD;AAAA,QACZ;AAAA,QAAe,CAACR,GAAO,CAACG,GAAQ,UAAU,GAAG,CAACD,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA,UAClD;AAAA;AAAA,QACZ;AAAA,QAAe,CAACR,GAAO,CAACG,GAAQ,KAAK,GAAG,CAACD,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA,UAC7C;AAAA;AAAA,QACZ;AAAA,QAAe,CAACR,GAAO,CAACG,GAAQ,KAAK,GAAG,CAACD,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA,UAC7C;AAAA;AAAA,QACZ;AAAA,QAAe,CAACP,GAAO,CAACG,GAAQ,OAAO,GAAG,CAACD,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA,UAC/C;AAAA;AAAA,QACZ;AAAA,QAAe,CAACP,GAAO,CAACG,GAAQ,OAAO,GAAG,CAACD,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA,UAC/C;AAAA;AAAA,QACZ;AAAA,QAAe,CAACR,GAAO,CAACG,GAAQ,MAAM,GAAG,CAACD,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA,UAC9C;AAAA,UACA;AAAA;AAAA,QACZ;AAAA,QAAe,CAAC,CAACL,GAAQ,cAAc,GAAGH,GAAO,CAACE,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA,UACtD;AAAA;AAAA,QACZ;AAAA,QAAe,CAACR,GAAO,CAACG,GAAQ,UAAU,GAAG,CAACD,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA,UAClD;AAAA;AAAA,QACZ;AAAA,QAAe,CAACR,GAAO,CAACG,GAAQ,UAAU,GAAG,CAACD,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA,UAClD;AAAA;AAAA,QACZ;AAAA,QAAe,CAAC,CAACL,GAAQ,OAAO,GAAGH,GAAO,CAACE,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA,UAC/C;AAAA;AAAA,QACZ;AAAA,QAAe,CAAC,CAACJ,GAAQ,OAAO,GAAGH,GAAO,CAACE,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA,UAC/C;AAAA;AAAA,QACZ;AAAA,QAAe,CAACP,GAAO,CAACG,GAAQ,WAAW,GAAG,CAACD,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA,UACnD;AAAA;AAAA,QACZ;AAAA,QAAe,CAACP,GAAO,CAACG,GAAQ,SAAS,GAAG,CAACD,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA,UACjD;AAAA;AAAA,QACZ;AAAA,QAAe,CAACR,GAAO,CAACG,GAAQ,WAAW,GAAG,CAACD,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA,UACnD;AAAA;AAAA,QACZ;AAAA,QAAe,CAACR,GAAO,CAACG,GAAQ,OAAO,GAAG,CAACD,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA,UAC/C;AAAA;AAAA,QACZ;AAAA,QAAe,CAACR,GAAO,CAACG,GAAQ,QAAQ,GAAG,CAACD,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA,UAChD;AAAA;AAAA,QACZ;AAAA,QAAe,CAACL,GAAQH,GAAO,CAACE,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA,UACpC;AAAA;AAAA,QACC;AAAA,QAAE,CAAC,CAACP,GAAO,OAAO,GAAG,GAAG,CAACG,GAAQqB,CAAS,GAAG,CAACtB,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA,UAC/D;AAAA;AAAA,QACZ;AAAA,QAAe,CAACP,GAAO,CAACG,GAAQ4B,CAAK,GAAG,CAAC7B,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA,UAC7C;AAAA,QACZ;AAAA,QAAe,CAACR,GAAO,CAACG,GAAQ4B,CAAK,GAAG,CAAC7B,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA;AAAA;AAAA;AAAA,UAM7C;AAAA;AAAA,QACC;AAAA,QAAE,CAACJ,GAAQ,CAACD,GAAMO,CAAO,CAAC;AAAA,QAAG;AAAA,UAC9B;AAAA,QACC;AAAA,QAAE,CAAC,CAACT,GAAO,KAAK,SAAS,GAAG,CAACG,GAAQwB,EAAO,GAAG,CAACzB,GAAMO,CAAO,CAAC;AAAA,QAAG;AAAA,UAClE;AAAA;AAAA,QACZ;AAAA,QAAe,CAAC,CAACN,GAAQoB,EAAE,GAAG,CAACrB,GAAMO,CAAO,CAAC;AAAA,QAAG;AAAA,UACpC;AAAA;AAAA,QACZ;AAAA,QAAe,CAACN,GAAQ,CAACH,GAAOc,IAAM,KAAK,GAAG,CAACZ,GAAMO,CAAO,CAAC;AAAA,QAAG;AAAA,UACpD;AAAA;AAAA,QACC;AAAA,QAAE,CAAC,CAACT,GAAOkB,KAAO,MAAM,GAAG,CAACf,GAAQkB,EAAM,GAAG,CAACnB,GAAMO,CAAO,CAAC;AAAA,QAAG;AAAA,UAChE;AAAA;AAAA,QACZ;AAAA,QAAe,CAACT,GAAO,CAACG,GAAQU,CAAM,GAAG,CAACX,GAAMO,CAAO,CAAC;AAAA,QAAG;AAAA,UAC/C;AAAA,UACA;AAAA;AAAA,QACZ;AAAA,QAAe,CAACT,GAAO,CAACG,GAAQyB,CAAK,GAAG,CAAC1B,GAAMO,CAAO,CAAC;AAAA,QAAE;AAAA,UAC7C;AAAA;AAAA,QACZ;AAAA,QAAe,CAACT,GAAO,CAACG,GAAQ0B,CAAI,GAAG,CAAC3B,GAAMO,CAAO,CAAC;AAAA,QAAG;AAAA,UAC7C;AAAA;AAAA,QACZ;AAAA,QAAe,CAACT,GAAO,CAACG,GAAQ2B,CAAM,GAAG,CAAC5B,GAAMO,CAAO,CAAC;AAAA,QAAG;AAAA,UAC/C;AAAA;AAAA,QACZ;AAAA,QAAe,CAACN,GAAQH,GAAO,CAACE,GAAMO,CAAO,CAAC;AAAA,QAAG;AAAA,UACrC;AAAA;AAAA,UACA;AAAA;AAAA,QACC;AAAA,QAAE,CAAC,CAACN,GAAQ4C,EAAI,GAAG,CAAC/C,GAAO+C,EAAI,GAAG,CAAC7C,GAAMO,CAAO,CAAC;AAAA,QAAG;AAAA,UACrD;AAAA;AAAA,QACC;AAAA,QAAE,CAAC,CAACP,GAAMO,CAAO,CAAC;AAAA,QAAG;AAAA;AAAA;AAAA;AAAA,UAMtB;AAAA;AAAA,UACA;AAAA;AAAA,QACZ;AAAA,QAAe,CAACN,GAAQH,GAAO,CAACE,GAAMI,CAAO,CAAC;AAAA,QAAG;AAAA,UACrC;AAAA;AAAA,QACZ;AAAA,QAAe,CAACN,GAAO,CAACG,GAAQ,QAAQ,GAAG,CAACD,GAAMI,CAAO,CAAC;AAAA,QAAG;AAAA,UACjD;AAAA;AAAA,QACZ;AAAA,QAAe,CAACN,GAAO,CAACG,GAAQ0B,CAAI,GAAG,CAAC3B,GAAMI,CAAO,CAAC;AAAA,QAAG;AAAA,UAC7C;AAAA;AAAA,QACZ;AAAA,QAAe,CAACN,GAAO,CAACG,GAAQqB,CAAS,GAAG,CAACtB,GAAMI,CAAO,CAAC;AAAA,QAAG;AAAA;AAAA;AAAA;AAAA,UAMlD;AAAA;AAAA,QACZ;AAAA,QAAe,CAACH,GAAQH,GAAO,CAACE,GAAMQ,CAAQ,CAAC;AAAA,QAAG;AAAA,UACtC;AAAA;AAAA,QACZ;AAAA,QAAe,CAACV,GAAO,CAACG,GAAQW,CAAK,GAAG,CAACZ,GAAMQ,CAAQ,CAAC;AAAA,QAAG;AAAA,UAC/C;AAAA;AAAA,QACZ;AAAA,QAAe,CAACV,GAAO,CAACG,GAAQkB,EAAM,GAAG,CAACnB,GAAMQ,CAAQ,CAAC;AAAA,QAAG;AAAA,UAChD;AAAA,QACZ;AAAA,QAAe,CAACV,GAAO,CAACG,GAAQ4B,CAAK,GAAG,CAAC7B,GAAMQ,CAAQ,CAAC;AAAA,QAAG;AAAA,UAC/C;AAAA;AAAA,QACZ;AAAA,QAAe,CAACV,GAAO,CAACG,GAAQ6B,CAAQ,GAAG,CAAC9B,GAAMQ,CAAQ,CAAC;AAAA,QAAG;AAAA;AAAA;AAAA;AAAA,UAMlD;AAAA;AAAA,QACC;AAAA,QAAE,CAACP,GAAQ,CAACD,GAAMS,CAAQ,CAAC;AAAA,QAAG;AAAA,UAC/B;AAAA;AAAA,QACZ;AAAA,QAAe,CAACX,GAAO,CAACG,GAAQU,CAAM,GAAG,CAACX,GAAMS,CAAQ,CAAC;AAAA,QAAG;AAAA;AAAA;AAAA;AAAA,UAMhD;AAAA;AAAA,QACC;AAAA,QAAE,CAACX,GAAO,CAACE,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA,UAC5B;AAAA;AAAA,QACC;AAAA,QAAE,CAACP,GAAO,CAACE,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA,UAC5B;AAAA;AAAA,QACC;AAAA,QAAE,CAAC,CAACN,GAAMM,CAAM,CAAC;AAAA,QAAG;AAAA,UACrB;AAAA;AAAA,QACC;AAAA,QAAE,CAAC,CAACN,GAAMK,CAAM,CAAC;AAAA,QAAG;AAAA,UACrB;AAAA;AAAA,QACC;AAAA,QAAE,CAACP,GAAO,CAACG,GAAQ,SAAS,CAAC;AAAA,MACjC;AAAA,MAED,QAAS;AAAA,QAAC;AAAA,UAEN;AAAA;AAAA,QACZ;AAAA,QAAe,CAACC,GAAS,CAACH,GAAMkB,IAAK,MAAM,CAAC;AAAA,QAAG;AAAA,UAEnC;AAAA;AAAA,QACC;AAAA,QAAE,CAACf,GAAS,CAACH,GAAM,OAAO,CAAC;AAAA,QAAG;AAAA,UAE/B;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA,QACZ;AAAA,QAAe,CAACA,GAAMG,CAAO;AAAA,QAAG;AAAA,UAEpB;AAAA;AAAA,QACZ;AAAA,QAAe,CAACA,GAASH,CAAI;AAAA,MACpB;AAAA,MAED,IAAK;AAAA,QAAC;AAAA;AAAA,UAGF;AAAA;AAAA,QACZ;AAAA,QAAe,CAACA,GAAMG,CAAO;AAAA,QAAG;AAAA,UACpB;AAAA;AAAA,QACZ;AAAA,QAAe,CAACH,GAAM,CAACG,GAASkD,IAAWE,CAAiB,CAAC;AAAA,QAAG;AAAA,UACpD;AAAA;AAAA,UACA;AAAA,UACA;AAAA,QACZ;AAAA,QAAe,CAAC,CAACpD,GAASkD,IAAWE,CAAiB,GAAG,CAACvD,GAAM,SAAS,CAAC;AAAA,QAAG;AAAA;AAAA,UAGjE;AAAA;AAAA,UACA;AAAA,UACA;AAAA,QACZ;AAAA,QAAe,CAAC,CAACG,GAAS,MAAM,GAAG,GAAG,CAACH,GAAM,KAAK,CAAC;AAAA,QAAG;AAAA,UAC1C;AAAA,UACA;AAAA;AAAA,QACZ;AAAA,QAAe,CAAC,CAACA,GAAMiC,EAAM,GAAG,CAAC9B,GAAS,MAAM,GAAG,CAAC;AAAA,QAAG;AAAA;AAAA,UAG3C;AAAA;AAAA,QACZ;AAAA,QAAe,CAACA,GAASH,CAAI;AAAA,QAAG;AAAA;AAAA,UACpB;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,QACZ;AAAA,QAAe,CAACA,GAAMG,CAAO;AAAA,QAAG;AAAA,UACpB;AAAA;AAAA,QACC;AAAA,QAAE,CAACA,GAAS,CAACH,GAAMe,CAAU,CAAC;AAAA,QAAG;AAAA,UAClC;AAAA;AAAA,QACC;AAAA,QAAE,CAACZ,GAAS,CAACH,GAAM,SAAS,CAAC;AAAA,QAAG;AAAA,UACjC;AAAA;AAAA,QACZ;AAAA,QAAe,CAACG,GAAS,CAACH,GAAMmB,KAAQ,KAAK,CAAC;AAAA,QAAG;AAAA,UACrC;AAAA,UACA;AAAA;AAAA,QACC;AAAA,QAAE,CAAChB,GAAS,CAACH,GAAM,OAAO,CAAC;AAAA,QAAG;AAAA,UAC/B;AAAA;AAAA,QACC;AAAA,QAAE,CAACG,GAAS,CAACH,GAAM,SAAS,CAAC;AAAA,QAAG;AAAA;AAAA,UAGjC;AAAA;AAAA,QACZ;AAAA,QAAe,CAACG,GAAS,CAACH,GAAMiB,KAAO,MAAM,CAAC;AAAA,QAAG;AAAA,UACrC;AAAA;AAAA,QACC;AAAA,QAAE,CAAC,CAACjB,GAAMgC,CAAW,GAAG7B,CAAO;AAAA,QAAE;AAAA;AAAA,UAGlC;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA;AAAA,UAGA;AAAA;AAAA,UACA;AAAA;AAAA;AAAA,UAGA;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,UAEA;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,QACZ;AAAA,QAAe,CAACH,GAAMG,CAAO;AAAA,QAAG;AAAA,UACpB;AAAA;AAAA,QACC;AAAA,QAAE,CAAC,CAACH,GAAM,SAAS,GAAGG,CAAO;AAAA,QAAG;AAAA,UACjC;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,UACA;AAAA;AAAA,QACZ;AAAA,QAAe,CAACH,GAAMG,CAAO;AAAA,MACpB;AAAA,IACT,GAMQqD,IAAW,SAAUR,GAAIZ,GAAY;AAOrC,UALI,OAAOY,MAAOpD,MACdwC,IAAaY,GACbA,IAAK1D,IAGL,EAAE,gBAAgBkE;AAClB,eAAO,IAAIA,EAASR,GAAIZ,CAAU,EAAE,UAAS;AAGjD,UAAIqB,IAAc,OAAO5qB,MAAW8mB,KAAc9mB,EAAO,YAAaA,EAAO,YAAYymB,GACrFoE,IAAMV,MAAQS,KAAcA,EAAW,YAAaA,EAAW,YAAYjE,IAC3EmE,KAASF,KAAcA,EAAW,gBAAiBA,EAAW,gBAAgBnE,GAC9EsE,KAAUxB,IAAaF,GAAOC,GAASC,CAAU,IAAID,GACrD0B,KAAaJ,KAAcA,EAAW,aAAaC;AAEvD,kBAAK,aAAa,WAAY;AAC1B,YAAII,KAAW,CAAA;AACf,eAAAA,GAAS9D,CAAI,IAAIV,GACjBwE,GAAS3D,CAAO,IAAIb,GACpByD,GAAU,KAAKe,IAAUJ,GAAKE,GAAQ,OAAO,GAC7CE,GAAShE,CAAK,IAAI8C,GAASkB,GAAS3D,CAAO,CAAC,GAExC0D,MAAcJ,KAAcA,EAAW,SAAS,OAAOA,EAAW,MAAM,WAAW/D,MACnFoE,GAAS9D,CAAI,IAAI,UAEd8D;AAAA,MACnB,GACQ,KAAK,SAAS,WAAY;AACtB,YAAIC,KAAO,CAAA;AACX,eAAAA,GAAK3D,CAAY,IAAId,GACrByD,GAAU,KAAKgB,IAAML,GAAKE,GAAQ,GAAG,GAC9BG;AAAA,MACnB,GACQ,KAAK,YAAY,WAAY;AACzB,YAAIC,KAAU,CAAA;AACd,eAAAA,GAAQ9D,CAAM,IAAIZ,GAClB0E,GAAQjE,CAAK,IAAIT,GACjB0E,GAAQ/D,CAAI,IAAIX,GAChByD,GAAU,KAAKiB,IAASN,GAAKE,GAAQ,MAAM,GACvCC,MAAc,CAACG,GAAQ/D,CAAI,KAAK0D,MAASA,GAAM,WAC/CK,GAAQ/D,CAAI,IAAIK,IAGhBuD,MAAcG,GAAQjE,CAAK,KAAK,eAAe0D,KAAc,OAAOA,EAAW,eAAe9D,KAAc8D,EAAW,kBAAkBA,EAAW,iBAAiB,MACrKO,GAAQjE,CAAK,IAAI,QACjBiE,GAAQ/D,CAAI,IAAIM,IAEbyD;AAAA,MACnB,GACQ,KAAK,YAAY,WAAY;AACzB,YAAIC,KAAU,CAAA;AACd,eAAAA,GAAQjE,CAAI,IAAIV,GAChB2E,GAAQ9D,CAAO,IAAIb,GACnByD,GAAU,KAAKkB,IAASP,GAAKE,GAAQ,MAAM,GACpCK;AAAA,MACnB,GACQ,KAAK,QAAQ,WAAY;AACrB,YAAIC,KAAM,CAAA;AACV,eAAAA,GAAIlE,CAAI,IAAIV,GACZ4E,GAAI/D,CAAO,IAAIb,GACfyD,GAAU,KAAKmB,IAAKR,GAAKE,GAAQ,EAAE,GAC/BC,MAAc,CAACK,GAAIlE,CAAI,KAAK2D,MAASA,GAAM,YAAYA,GAAM,YAAY,cACzEO,GAAIlE,CAAI,IAAI2D,GAAM,SACG,QAAQ,cAAc3B,CAAW,EACjC,QAAQ,UAAUC,EAAM,IAE1CiC;AAAA,MACnB,GACQ,KAAK,YAAY,WAAY;AACzB,eAAO;AAAA,UACH,IAAU,KAAK,MAAO;AAAA,UACtB,SAAU,KAAK,WAAY;AAAA,UAC3B,QAAU,KAAK,UAAW;AAAA,UAC1B,IAAU,KAAK,MAAO;AAAA,UACtB,QAAU,KAAK,UAAW;AAAA,UAC1B,KAAU,KAAK,OAAQ;AAAA,QACvC;AAAA,MACA,GACQ,KAAK,QAAQ,WAAY;AACrB,eAAOR;AAAA,MACnB,GACQ,KAAK,QAAQ,SAAUV,IAAI;AACvB,eAAAU,IAAO,OAAOV,OAAOnD,KAAYmD,GAAG,SAASrC,IAAiBmC,GAAKE,IAAIrC,CAAa,IAAIqC,IACjF;AAAA,MACnB,GACQ,KAAK,MAAMU,CAAG,GACP;AAAA,IACf;AAEI,IAAAF,EAAS,UAAUjE,GACnBiE,EAAS,UAAWlB,EAAU,CAACtC,GAAMG,GAASL,CAAK,CAAC,GACpD0D,EAAS,MAAMlB,EAAU,CAAClC,CAAY,CAAC,GACvCoD,EAAS,SAASlB,EAAU,CAACvC,GAAOG,GAAQD,GAAMI,GAASC,GAAQE,GAASD,GAAQE,GAAUC,CAAQ,CAAC,GACvG8C,EAAS,SAASA,EAAS,KAAKlB,EAAU,CAACtC,GAAMG,CAAO,CAAC,GASjB9vB,EAAO,YACvC8zB,IAAU9zB,EAAiB,UAAAmzB,IAE/BW,EAAA,WAAmBX;AAkBvB,QAAI1lD,IAAI,OAAO+6B,MAAW8mB,MAAe9mB,EAAO,UAAUA,EAAO;AACjE,QAAI/6B,KAAK,CAACA,EAAE,IAAI;AACZ,UAAIsmD,KAAS,IAAIZ;AACjB,MAAA1lD,EAAE,KAAKsmD,GAAO,aACdtmD,EAAE,GAAG,MAAM,WAAY;AACnB,eAAOsmD,GAAO;MAC1B,GACQtmD,EAAE,GAAG,MAAM,SAAUklD,GAAI;AACrB,QAAAoB,GAAO,MAAMpB,CAAE;AACf,YAAIlyB,IAASszB,GAAO;AACpB,iBAASC,KAAQvzB;AACb,UAAAhzB,EAAE,GAAGumD,CAAI,IAAIvzB,EAAOuzB,CAAI;AAAA,MAExC;AAAA,IACK;AAAA,EAEJ,GAAE,OAAO,UAAW,WAAW,SAASC,EAAI;;;ACr7B7C,MAAMC,KAAW,IAAIf,GAAAA,YAERgB,KAAQ,MACV9xB,EAAM;AAAA,EACT,OAAO;AAAA,IACH,IAAI6xB,GAAS,MAAM;AAAA,IACnB,SAASA,GAAS,WAAW;AAAA,IAC7B,KAAKA,GAAS,OAAO;AAAA,IACrB,QAAQA,GAAS,UAAU;AAAA,IAC3B,QAAQA,GAAS,UAAU;AAAA,IAC3B,IAAIA,GAAS,MAAM;AAAA,EAAA;AAAA,EAEvB,CAAC;AAAA,GAIIE,KAAa,MACf/xB,EAAM,QAAqC,MAAM6xB,GAAS,WAAW,GAAG,CAAA,CAAE,GChBxEG,KAAiC,MAAe;AACnD,QAAA,EAAE,IAAA1B,MAAOwB;AAER,SAAAxB,EAAG,SAAS,oBAAoB;AAC3C,GCHa2B,KAAa,MAAM;AAC5B,QAAM,CAACC,GAASC,CAAU,IAAItS,GAAmB,CAAE,CAAA,GAC7C,CAACuS,GAAeC,CAAgB,IAAIxS,GAAkB,EAAK,GAE3D1mC,IAAK2mC,GAAWC,EAAgB;AAEtC,SAAAC,GAAU,MAAM;AACZ,QAAI,CAAC7mC;AACD;AAGJ,QAAIqyC,IAAiB;AACrB,UAAM5K,IAAoC,CAAA,GAEpC0R,IAAqBn5C,EAAG,QAAQ,QAAQ,CAACo5C,MAAgB;AACvD,UAAAA,EAAY,SAAS,YAAY/G;AACjC;AAGJ,MAAA6G,EAAiB,EAAI;AAEf,YAAA,EAAE,MAAA9uB,EAAS,IAAAgvB;AAEN,MAAAJ,EAAA,CAACD,MAAY,CAAC,GAAGA,GAAS,EAAE,MAAA3uB,EAAM,CAAA,CAAC;AAAA,IAAA,CACjD,GAEKmoB,IAAuBvyC,EAAG,QAAQ,UAAU,CAACq5C,MAAkB;AAC7D,MAAAA,EAAc,SAAS,YAAYhH,KAI5B2G,EAAA,CAACD,MAAYA,EAAQ,OAAO,CAAClP,MAAWA,EAAO,SAASwP,EAAc,IAAI,CAAC;AAAA,IAAA,CACzF,GAEKC,IAAwBt5C,EAA4B,QAAQ,UAAU,CAACu5C,GAAerJ,MAAa;AACjG,UAAAqJ,EAAc,SAAS,YAAYlH;AACnC;AAGE,YAAA,EAAE,MAAAjoB,EAAS,IAAAmvB;AAEjB,MAAAP,EAAW,CAACD,MAAY;AACd,cAAAS,IAAqBT,EAAQ,UAAU,CAAClP,MAAWA,EAAO,UAASqG,KAAA,gBAAAA,EAAU,KAAI;AAEvF,eAAOsJ,MAAuB,KACxBT,IACA,CAAC,GAAGA,EAAQ,MAAM,GAAGS,CAAkB,GAAG,EAAE,MAAApvB,KAAQ,GAAG2uB,EAAQ,MAAMS,IAAqB,CAAC,CAAC;AAAA,MAAA,CACrG;AAAA,IAAA,CACJ;AAEc,WAAA/R,EAAA,KAAK0R,GAAoB5G,GAAsB+G,CAAoB,GAE3E,MAAM;AACQ,MAAAjH,IAAA,IAEjB5K,EAAe,QAAQ,CAACttC,MAAOA,EAAI,CAAA;AAAA,IAAA;AAAA,EACvC,GACD,CAAC6F,CAAE,CAAC,GAEA,EAAE,SAAA+4C,GAAS,eAAAE;AACtB,GC7DaQ,KAAmB,MAAM;AAClC,QAAM,CAACC,GAAeC,CAAgB,IAAIjT,GAA4D,CAAE,CAAA,GAClG1mC,IAAK2mC,GAAWC,EAAgB;AAEtC,SAAAC,GAAU,MAAM;AACZ,QAAI,CAAC7mC;AACD;AAGE,UAAA45C,IAAsB55C,EAAG,cAAc;AAAA,MAAS,CAAC65C,MACnDF,EAAiB,CAACnc,MAAY,CAAC,GAAGA,GAASqc,CAAkB,CAAC;AAAA,IAAA,GAG5DC,IAAsB95C,EAAG,cAAc;AAAA,MAAS,CAAC+5C,MACnDJ,EAAiB,CAACnc,MAAYA,EAAQ,OAAO,CAACwc,MAAiBA,EAAa,OAAOD,EAAmB,EAAE,CAAC;AAAA,IAAA,GAGvGE,IAA4Bj6C,EAAG,cAAc,eAAe,CAAC,EAAE,IAAAyW,KAAM0T,MAAU;AACjF,MAAAwvB,EAAiB,CAACnc,MAAY;AAC1B,cAAM0c,IAAoB1c,EAAQ,UAAU,CAACwc,MAAiBA,EAAa,OAAOvjC,CAAE;AAEpF,eAAIyjC,MAAsB,KACf1c,IAGJ;AAAA,UACH,GAAGA,EAAQ,MAAM,GAAG0c,CAAiB;AAAA,UACrC,EAAE,GAAG1c,EAAQ0c,CAAiB,GAAG,OAAA/vB,EAAM;AAAA,UACvC,GAAGqT,EAAQ,MAAM0c,IAAoB,CAAC;AAAA,QAAA;AAAA,MAC1C,CACH;AAAA,IAAA,CACJ;AAEE,WAAAl6C,EAAA,cAAc,OAAO,KAAK25C,CAAgB,EAAE,MAAM,QAAQ,KAAK,GAE3D,MAAM;AACW,MAAAC,KACAE,KACMG;IAAA;AAAA,EAC9B,GACD,CAACj6C,CAAE,CAAC,GAEA05C;AACX,GC1CaS,KAAgC,MAAM;AAC/C,QAAM,CAACC,GAAeC,CAAgB,IAAI3T,GAExC,CAAE,CAAA,GACE1mC,IAAK2mC,GAAWC,EAAgB;AAEtC,SAAAC,GAAU,MAAM;AACZ,QAAI,CAAC7mC;AACD;AAGE,UAAAs6C,IAAoCt6C,EAAG,cAAc;AAAA,MAAuB,CAACu6C,MAC/EF,EAAiBE,CAAgB;AAAA,IAAA;AAGrC,WAAO,MAAM;AACyB,MAAAD;IAAA;AAAA,EACtC,GACD,CAACt6C,CAAE,CAAC,GAEAo6C;AACX,GCnBaI,KAAmB,CAAC3iC,MAAmB;AAC1C,QAAA,EAAE,SAAAwrB,GAAS,MAAAoX,EAAS,IAAA5iC;AAE1B,EAAAgvB,GAAU,MAAM;AACZ,QAAI4T;AACA;AAGE,UAAAC,IAAW,CAACtX,MAAsB;;AAChC,QAAAvxC,IAAA,SAAS,kBAAT,gBAAAA,EAAwB,cAAa,YAIzCwxC,EAAQD,CAAK;AAAA,IAAA;AAGV,kBAAA,iBAAiB,QAAQsX,GAAU,EAAI,GAEvC,MAAM;AACF,aAAA,oBAAoB,QAAQA,GAAU,EAAI;AAAA,IAAA;AAAA,EACrD,GACD,CAACrX,GAASoX,CAAI,CAAC;AACtB,GCpBaE,KAAoB,CAAC9iC,MAAmB;AACjD,QAAM,EAAE,WAAA+iC,GAAW,SAAAvX,GAAS,KAAAwX,GAAK,MAAAJ,MAAS5iC;AAE1C,EAAAgvB,GAAU,MAAM;AACZ,QAAI4T;AACA;AAGE,UAAAC,IAAW,CAACtX,MAAmC;AACjD,YAAMtlB,IAASslB,EAAM;AAMrB,OAJkB,MAAM,QAAQyX,CAAG,IAC7BA,EAAI,MAAM,CAACA,MAAQA,EAAI,WAAW,CAACA,EAAI,QAAQ,SAAS/8B,CAAM,CAAC,IAC/D+8B,EAAI,WAAW,CAACA,EAAI,QAAQ,SAAS/8B,CAAM,MAG7CulB,EAAQD,CAAK;AAAA,IACjB;AAGK,oBAAA,iBAAiBwX,GAAWF,GAAU,EAAI,GAE5C,MAAM;AACA,eAAA,oBAAoBE,GAAWF,GAAU,EAAI;AAAA,IAAA;AAAA,KAE3D,CAACE,GAAWvX,GAASwX,GAAKJ,CAAI,CAAC;AACtC,GC9BaK,KAAoE9/B,GAAO;AAAA,EACpF,MAAMszB;AACV,CAAC,GAEYyM,KAAwE//B,GAAO;AAAA,EACxF,aAAa+yB,GAAQ;AACzB,CAAC,GCNY4B,KAAa,CAAI70B,GAAmBoD,GAAagvB,MAA+B;AACzF,QAAM,CAAC8N,GAAaC,CAAc,IAAIvU,GAAmB,MAAM;AACvD,QAAA;AACA,YAAM3vB,IAAO,OAAO+D,CAAI,EAAE,QAAQoD,CAAG;AAErC,aAAOnH,IAAO,KAAK,MAAMA,CAAI,IAAI;AAAA,aAC5BG,GAAO;AACZ,qBAAQ,IAAIA,CAAK,GAEV;AAAA,IACX;AAAA,EAAA,CACH,GAEKgkC,IAAkB,GAAGpgC,CAAI,IAAIoD,CAAG;AAEtC,EAAA2oB,GAAU,MAAM;AACN,UAAAsU,IAAe,CAAC/X,MAAuB;AACzC,MAAA6X,EAAe7X,EAAM,MAAM;AAAA,IAAA;AAGxB,kBAAA,iBAAiB8X,GAAiBC,CAA6B,GAE/D,MAAM;AACF,aAAA,oBAAoBD,GAAiBC,CAA6B;AAAA,IAAA;AAAA,EAC7E,GACD,CAACD,CAAe,CAAC;AAEpB,QAAME,IAAWp0B;AAAA,IACb,CAACpE,MAAoB;AACb,UAAA;AACA,YAAI,CAACA,GAAO;AACD,iBAAA9H,CAAI,EAAE,WAAWoD,CAAG,GAC3B+8B,EAAe,IAAI;AACnB;AAAA,QACJ;AAEM,cAAAI,IAAgBnO,EAAQ,IAAItqB,CAAK;AAEnC,YAAA,CAACy4B,EAAc,IAAI;AACnB,kBAAQ,KAAK,4CAA4CA,EAAc,MAAM,OAAO,EAAE;AACtF;AAAA,QACJ;AAEA,cAAMC,IAAeD,EAAc;AAEnC,QAAAJ,EAAeK,CAAY,GAE3B,OAAOxgC,CAAI,EAAE,QAAQoD,GAAK,KAAK,UAAUo9B,CAAY,CAAC,GAC/C,OAAA,cAAc,IAAI,YAAYJ,GAAiB,EAAE,QAAQI,EAAc,CAAA,CAAC;AAAA,eAC1EpkC,GAAO;AACZ,gBAAQ,IAAIA,CAAK;AAAA,MACrB;AAAA,IACJ;AAAA,IACA,CAACgH,GAAKpD,GAAMogC,GAAiBhO,CAAO;AAAA,EAAA;AAGjC,SAAA,CAAC8N,GAAaI,CAAQ;AACjC,GCzDaG,KAAoB,MAG5B;AACK,QAAA,CAACC,GAAgBC,CAAiB,IAAI9L;AAAA,IACxC;AAAA,IACAvE;AAAA,IACA0P;AAAA,EAAA;AAKG,SAAA,EAAE,kBAFgB,CAACU,KAAmB,OAAe,SAASA,EAAe,MAEzD,mBAAAC;AAC/B,GChBaC,KAAiB,MAAqB;AAC/C,QAAM,CAACC,GAAaC,CAAc,IAAIlV,GAAmB,CAAE,CAAA;AAE3D,SAAAG,GAAU,MAAM;AACZ,UAAMgV,IAAY,CAAC,EAAE,KAAA39B,QAAyB;AAC3B,MAAA09B,EAAA,CAACz2B,MAAUA,EAAK,SAASjH,CAAG,IAAIiH,IAAOA,EAAK,OAAOjH,CAAG,CAAE;AAAA,IAAA,GAGrE49B,IAAU,CAAC1Y,MAAyB;AACvB,MAAAwY,EAAA,CAACz2B,MAASA,EAAK,OAAO,CAACjH,MAAQA,MAAQklB,EAAM,GAAG,CAAC;AAAA,IAAA,GAG9D2Y,IAAS,MAAM;AACjB,MAAAH,EAAe,CAAE,CAAA;AAAA,IAAA;AAGZ,oBAAA,iBAAiB,WAAWC,CAAS,GACrC,SAAA,iBAAiB,SAASC,CAAO,GACnC,OAAA,iBAAiB,QAAQC,CAAM,GAE/B,MAAM;AACA,eAAA,oBAAoB,WAAWF,CAAS,GACxC,SAAA,oBAAoB,SAASC,CAAO,GACtC,OAAA,oBAAoB,QAAQC,CAAM;AAAA,IAAA;AAAA,EAEjD,GAAG,CAAE,CAAA,GAGEJ,EAAY,WAAW,IAAIA,EAAY,CAAC,IAAI;AACvD,GCzBa5L,KAAmB,MAAM;AAC5B,QAAA/vC,IAAK2mC,GAAWC,EAAgB;AAE/B,SAAA5f;AAAA,IACH,OAAOoD,GAAc4xB,MAAgE;AACjF,UAAKh8C;AAID,YAAA;AACA,gBAAMA,EAAG,QAAQ,QAAQ,EAAE,MAAAoqB,EAAM,CAAA,GACL4xB,KAAA,QAAAA,EAAA,EAAE,MAAA5xB,MAE9B,MAAM0e,GAAa;AAAA,YACf,IAAA9oC;AAAA,YACA,SAAS4oC,GAAoB;AAAA,YAC7B,MAAM,WAAWxe,CAAI;AAAA,UAAA,CACxB;AAAA,iBACIlT,GAAO;AACZ,gBAAM4xB,GAAa;AAAA,YACf,IAAA9oC;AAAA,YACA,SAAS4oC,GAAoB;AAAA,YAC7B,MAAM,0BAA0Bxe,CAAI;AAAA,YACpC,OAAAlT;AAAA,UAAA,CACH;AAAA,QACL;AAAA,IACJ;AAAA,IACA,CAAClX,CAAE;AAAA,EAAA;AAEX,GCnCai8C,KAAgB;AAAA,EACzB,SAAS;AAAA,EACT,OAAO;AACX,GCKahM,KAAsB,MAAM;AAC/B,QAAAjwC,IAAK2mC,GAAWC,EAAgB,GAChC8B,IAAUH;AAEhB,SAAO,OAAO,EAAE,IAAA9xB,GAAI,UAAAkmB,GAAU,kBAAAuf,QAA4F;;AAClH,QAAA;AACM,YAAAC,IACFxf,MAAasf,GAAc,UAAU,EAAE,UAAU,OAAS,EAAE,SAAAvT,GAAS,kBAAAwT;AAEzE,cAAMrqD,IAAAmO,EAAG,eAAH,gBAAAnO,EAAe,iBAAiB4kB,GAAI0lC;AAAA,aACrCjlC,GAAO;AACZ,YAAM4xB,GAAa;AAAA,QACf,IAAA9oC;AAAA,QACA,SAAS4oC,GAAoB;AAAA,QAC7B,MAAM,6BAA6BnyB,CAAE;AAAA,QACrC,OAAAS;AAAA,MAAA,CACH;AAAA,IACL;AAAA,EAAA;AAER,GCtBaklC,KAAY,CACrBhN,MAIC;AACD,QAAM,CAACiN,GAAiBC,CAAkB,IAAI5V,GAAwC,CAAE,CAAA,GAClF,CAACwK,GAAWqL,CAAY,IAAI7V,GAAS,EAAI,GACzC8V,IAAW3M,GAAqC,IAAI,GAEpD7vC,IAAK2mC,GAAWC,EAAgB;AAEtC,SAAAC,GAAU,MAAM;AACZ,UAAM4V,IAAWz8C,KAAA,gBAAAA,EAAI;AAErB,QAAI,CAACy8C;AACD;AAGJ,UAAMhV,IAAwD,CAAA,GACxDiV,IAAgD,CAAA;AA6CtD,YA3CkB,OAAOtN,MAAsC;AAC3D,MAAAmN,EAAa,EAAI,GACjBD,EAAmB,CAAE,CAAA;AAEf,YAAAK,IAAQ,MAAMF,EAAS,MAAM;AAAA,QAC/B,QAAQrN,EAAW,KAAK;AAAA,QACxB,gBAAgB,EAAE,YAAY,KAAK,mBAAmB,EAAE;AAAA,MAAA,CAC3D;AAEG,UAAAuN,MAAUH,EAAS;AACnB;AAGJ,MAAAA,EAAS,UAAUG;AAEnB,YAAMC,IAAuBD,EAAM,UAAU,CAACE,MAAa;AAC9C,QAAAA,EAAA,QAAQ,QAAQ,CAACC,MAAgB;AAKtC,UAJqBJ,EAAe;AAAA,YAChC,CAACz3B,MAAWA,EAAO,OAAO63B,EAAY,MAAM73B,EAAO,KAAK,SAAS63B,EAAY,KAAK;AAAA,UAAA,KAOtFJ,EAAe,KAAKI,CAAW;AAAA,QAAA,CAClC,GAEDP,EAAa,EAAK,GACCD,EAAA,CAAC,GAAGI,CAAc,CAAC;AAAA,MAAA,CACzC,GAEKK,IAAyBJ,EAAM,YAAY,MAAM;AACnD,QAAAJ,EAAa,EAAK;AAAA,MAAA,CACrB,GAEKS,IAAqBL,EAAM,QAAQ,CAACzlC,MAAU;AAChD,gBAAQ,MAAM,2BAA2BA,EAAM,QAAQ,YAAYA,EAAM,KAAK,EAAE;AAAA,MAAA,CACnF;AAEc,MAAAuwB,EAAA,KAAKmV,GAAsBG,GAAwBC,CAAkB;AAAA,IAAA,GAG9E5N,CAAU,GAEb,MAAM;AACT,MAAA3H,EAAe,QAAQ,CAACttC,MAAOA,EAAI,CAAA;AAAA,IAAA;AAAA,EACvC,GACD,CAAC6F,GAAIovC,CAAU,CAAC,GAEZ,EAAE,iBAAAiN,GAAiB,WAAAnL;AAC9B,GCrEa+L,KAAsB,MAAM;AAC/B,QAAAj9C,IAAK2mC,GAAWC,EAAgB,GAEhCsW,IAA0B,OAAO,EAAE,IAAAzmC,QAAiC;;AACtE,YAAM5kB,IAAAmO,EAAG,WAAW,YAAYyW,CAAE,MAA5B,gBAAA5kB,EAA+B;AAAA,EAAM,GAGzCsrD,IAA0B,OAAO,EAAE,IAAA1mC,GAAI,UAAAkmB,QAAuC;;AAC1E,UAAAygB,IAAoB,QAAMvrD,IAAAmO,EAAG,eAAH,gBAAAnO,EAAe,aAAa,CAACq9C,MAAcA,EAAU,eAAe,MAE9FmO,IAAiBD,KAAA,gBAAAA,EAAmB,SAAS;AAInD,QAFmBzgB,MAAasf,GAAc,WAAW,CAACmB,MAAqBC,KAAA,gBAAAA,EAAgB,UAAS,UAExF;AACZ,cAAMvrD,IAAAkO,EAAG,WAAW,YAAYyW,CAAE,MAA5B,gBAAA3kB,EAA+B;AACrC;AAAA,IACJ;AAKA,YAFIurD,KAAA,gBAAAA,EAAgB,UAAS,UAAUA,IAAiB,OAAOA,KAAkBD,GAAmB,YAExF,UAAU,EAAE,SAAS3mC,EAAI,CAAA;AAAA,EAAA;AAGzC,SAAO,OAAOoB,MAAmC;AACzC,QAAA;AAGA,aAFyBV,OAAmB+lC,IAA0BC,GAE/CtlC,CAAM;AAAA,aACxBX,GAAO;AACZ,YAAM4xB,GAAa;AAAA,QACf,IAAA9oC;AAAA,QACA,SAAS4oC,GAAoB;AAAA,QAC7B,MAAM,wBAAwB/wB,EAAO,KAAK;AAAA,QAC1C,OAAAX;AAAA,MAAA,CACH;AAAA,IACL;AAAA,EAAA;AAER,GC5CaomC,KAAyB,MAAM;AACxC,QAAM,CAAC/jC,GAAkBquB,CAAmB,IAAIlB,GAE7C,CAAE,CAAA,GAEC1mC,IAAK2mC,GAAWC,EAAgB;AAEtC,SAAAC,GAAU,MAAM;AACZ,QAAI,CAAC7mC;AACD;AAGJ,UAAMu9C,IAAkE,CAAA;AAExE,YAAC,YAAY;;AACL,UAAA;AACM,cAAAC,IAAmB,QAAM3rD,IAAAmO,EAAG,eAAH,gBAAAnO,EAAe;AAAA,UAAkB,CAACq9C,MAC7DtH,EAAoB,CAACpK,OAAa;AAAA,YAC9B,GAAGA;AAAA,YACH,CAAC0R,EAAU,KAAK,GAAG,CAAC,GAAI1R,EAAQ0R,EAAU,KAAK,KAAK,CAAA,GAAKA,EAAU,EAAE;AAAA,UAAA,EACvE;AAAA;AAEN,QAAAqO,EAAe,KAAKC,CAAgB;AAE9B,cAAA1D,IAAsB,QAAMhoD,IAAAkO,EAAG,eAAH,gBAAAlO,EAAe;AAAA,UAAkB,CAAC,EAAE,aAAA2rD,EAAA,MAClE7V,EAAoB,CAACpK,MAAY;AACvB,kBAAAkgB,IAAU,EAAE,GAAGlgB;AACrB,uBAAWtf,KAAOw/B;AACd,kBAAIA,EAAQx/B,CAAG,EAAE,SAASu/B,CAAW,GAAG;AAC5B,gBAAAC,EAAAx/B,CAAG,IAAIw/B,EAAQx/B,CAAG,EAAE,OAAO,CAACiqB,MAAeA,MAAesV,CAAW;AAC7E;AAAA,cACJ;AAEG,mBAAAC;AAAA,UAAA,CACV;AAAA;AAEL,QAAAH,EAAe,KAAKzD,CAAmB;AAAA,eAClC5iC,GAAO;AACZ,gBAAQ,MAAMA,CAAK;AAAA,MACvB;AAAA,IAAA,MAGG,MAAMqmC,EAAe,QAAQ,CAAC/J,MAAgBA,KAAA,gBAAAA,GAAe;AAAA,EAAA,GACrE,CAACxzC,CAAE,CAAC,GAEAuZ;AACX,GC5CaokC,KAAkB,CAACva,MAA4CA,EAAM,QAAQ,WAAWA,EAAM,QAAQ,KAiBtGwa,KAAc,CAACC,GAAwBC,MAC5C,OAAOD,IAAiB,MACjB,KAGJ;AAAA,EACH,UAAU;AAAA,EACV,SAASA;AAAA,EACT,WAAW,CAACza,MAA4C;AAChD,IAAAua,GAAgBva,CAAK,MACrBA,EAAM,eAAe,GACrBya,KAAA,QAAAA,EAAeza,KAEnB0a,KAAA,QAAAA,EAAiB1a;AAAA,EACrB;AAAA,GAYK2a,KAAqB,CAAC,EAAE,OAAA3a,GAAO,cAAA4a,GAAc,WAAAC,GAAW,KAAAlzB,GAAK,KAAAD,GAAK,SAAAozB,QAAuC;AAClH,UAAQ9a,EAAM,KAAK;AAAA,IACf,KAAK,WAAW;AACZ,MAAA6a,EAAU,KAAK,IAAID,IAAe,GAAGjzB,CAAG,CAAC;AACzC;AAAA,IACJ;AAAA,IACA,KAAK,aAAa;AACd,MAAAkzB,EAAU,KAAK,IAAID,IAAe,GAAGlzB,CAAG,CAAC;AACzC;AAAA,IACJ;AAAA,IACA,KAAK,QAAQ;AACT,MAAAmzB,EAAUlzB,CAAG;AACb;AAAA,IACJ;AAAA,IACA,KAAK,OAAO;AACR,MAAAkzB,EAAUnzB,CAAG;AACb;AAAA,IACJ;AAAA,IACA,KAAK,UAAU;AACX,UAAIozB,GAAS;AACD,QAAAA;AACR;AAAA,MACJ;AACA;AAAA,IACJ;AAAA,IACA;AACI;AAAA,EAER;AAGA,EAAA9a,EAAM,gBAAgB,GACtBA,EAAM,eAAe;AACzB;ACpEO,MAAM+a,KAAcC,GAA+C,CAAC38B,GAAOo5B,MAAQ;AAChF,QAAA,EAAE,OAAA7hC,GAAO,SAAAqlC,GAAS,WAAAx5B,GAAW,SAAAq5B,GAAS,mBAAAI,GAAmB,GAAG1R,EAAS,IAAAnrB,GACrE88B,IAAW1O,GAA6C,CAAA,CAAE,GAC1D,CAAC2O,GAAkBC,CAAmB,IAAI/X,GAAS,CAAC,GAEpDuX,IAAY,CAACS,MAAqB;;AAC3B,KAAA7sD,IAAA0sD,EAAA,QAAQG,CAAQ,MAAhB,QAAA7sD,EAAmB,SAC5B4sD,EAAoBC,CAAQ;AAAA,EAAA;AAGhC,SAAA7X,GAAU,MAAM;;AACH,KAAAh1C,IAAA0sD,EAAA,QAAQC,CAAgB,MAAxB,QAAA3sD,EAA2B;AAAA,EACxC,GAAG,CAAE,CAAA,GAGD,gBAAA8sD;AAAA,IAACrY;AAAAA,IAAA;AAAA,MACG,KAAAuU;AAAA,MACA,WAAW32B,GAAWW,GAAW,cAAc;AAAA,MAC/C,SAAS,CAACue,MAAUA,EAAM,gBAAgB;AAAA,MAC1C,WAAW,CAACA,MACR2a,GAAmB;AAAA,QACf,OAAA3a;AAAA,QACA,cAAcob;AAAA,QACd,KAAK;AAAA,QACL,KAAKH,EAAQ,SAAS;AAAA,QACtB,WAAAJ;AAAA,QACA,SAAAC;AAAA,MAAA,CACH;AAAA,MAEJ,GAAGtR;AAAA,MAEH,UAAA;AAAA,QAAA5zB,KAAU,gBAAAqtB,EAAAC,GAAK,aAAL,EAAkB,UAAMttB,GAAA;AAAA,QAClCqlC,EAAQ,IAAI,CAACxM,GAAQlT,MAAU;AACtB,gBAAAigB,IAAW/M,EAAO,eAAeA,EAAO,MAExCgN,IAAUhN,EAAO,UACnB,gBAAAxL,EAACyY,MAAU,MAAK,MAAK,KAAKjN,EAAO,SAAS,KAAK,GAAG+M,CAAQ,QAAA,CAAS,IAEnE/M,EAAO,QAAQ,gBAAAxL,EAACE,MAAK,MAAK,MAAK,SAASsL,EAAO,KAAM,CAAA;AAGzD,mCACKp2B,IACG,EAAA,UAAA;AAAA,YAAA,gBAAA4qB;AAAA,cAACC,GAAK;AAAA,cAAL;AAAA,gBACG,KAAK,CAAC3c,MAAa40B,EAAS,QAAQ5f,CAAK,IAAIhV;AAAA,gBAC7C,SAAAk1B;AAAA,gBACA,UAAUhN,EAAO;AAAA,gBACjB,UAAU;AAAA,gBACT,GAAG+L,GAAY,CAACxa,MAAUkb,EAAkBlb,GAAOyO,CAAM,CAAC;AAAA,gBAE1D,UAAA+M;AAAA,cAAA;AAAA,YACL;AAAA,YACC/M,EAAO,kBAAkB,gBAAAxL,EAAC,QAAG,WAAU,0BAAyB,eAAa,IAAM;AAAA,UAAA,KAVzEwL,EAAO,IAWtB;AAAA,QAAA,CAEP;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGb,CAAC;ACjDM,SAASkN,GAAet9B,GAAsC;AAC3D,QAAA;AAAA,IACF,OAAAzI;AAAA,IACA,YAAAgmC,IAAa;AAAA,IACb,MAAA/X,IAAO;AAAA,IACP,UAAAgY,IAAW;AAAA,IACX,SAAAZ;AAAA,IACA,WAAAa;AAAA,IACA,mBAAAZ;AAAA,IACA,eAAAa;AAAA,IACA,WAAAr2B;AAAA,IACA,QAAAkG;AAAA,IACA,4BAAAowB,IAA6B;AAAA,IAC7B,yBAAAC,IAA0B;AAAA,EAC1B,IAAA59B,GAEE,CAAC69B,GAAmBC,CAAoB,IAAI7Y,GAAS,EAAK,GAC1D,CAAChH,GAAkB8f,CAAmB,IAAI9Y,GAAmC,IAAI,GACjF,CAAC/G,GAAe8f,CAAgB,IAAI/Y,GAAkC,IAAI,GAC1EgZ,IAAsB7P,GAAiC,IAAI,GAC3D8P,IAAmB9P,GAAgC,IAAI,GACvD+P,IAAkB9O,GAAQ,MAAM,CAAC6O,GAAkBD,CAAmB,GAAG,CAAA,CAAE,GAE3EG,IAAmB74B,GAAY,MAAMu4B,EAAqB,EAAK,GAAG,CAAA,CAAE,GAEpE,EAAE,QAAAO,GAAQ,YAAAl5B,EAAA,IAAe6Y,GAAUC,GAAkBC,GAAe;AAAA,IACtE,WAAA7W;AAAA,IACA,WAAW;AAAA,MACP;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,QAAAkG;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ;AAAA,EAAA,CACH;AAED,EAAA6X,GAAU,MAAM;AACZ,IAAA6Y,EAAoB,UAAUhgB;AAAA,EAAA,GAC/B,CAACA,CAAgB,CAAC,GAErBmH,GAAU,MAAM;AACZ,IAAA8Y,EAAiB,UAAUhgB;AAAA,EAAA,GAC5B,CAACA,CAAa,CAAC,GAKAgb,GAAA;AAAA,IACd,WAAW;AAAA,IACX,SAASkF;AAAA,IACT,KAAKD;AAAA,IACL,MAAM,CAACN;AAAA,EAAA,CACV,GAED9E,GAAiB,EAAE,SAASqF,GAAkB,MAAM,CAACP,GAAmB,GAExEzY,GAAU,MAAM;AACR,QAAA,GAACwY,KAA2B,CAACC;AAI1B,oBAAA,iBAAiB,QAAQO,CAAgB,GAEzC,MAAM;AACF,eAAA,oBAAoB,QAAQA,CAAgB;AAAA,MAAA;AAAA,EAExD,GAAA,CAACA,GAAkBP,GAAmBD,CAAuB,CAAC,GAEjExY,GAAU,MAAM;AACR,QAAA,CAACuY,KAA8B,CAACzf;AAChC;AAGE,UAAAwb,IAAe,CAAC/X,MAAmB;AAGrC,UAFuBzD,EAAc,SAASyD,EAAM,MAAa,GAE7C;AAChB,QAAAA,EAAM,eAAe;AAErB;AAAA,MACJ;AAEiB,MAAAyc;IAAA;AAGrB,oBAAS,iBAAiB,aAAa1E,GAAc,EAAE,SAAS,IAAO,GACvE,SAAS,iBAAiB,SAASA,GAAc,EAAE,SAAS,IAAO,GAE5D,MAAM;AACA,eAAA,oBAAoB,aAAaA,CAAY,GAC7C,SAAA,oBAAoB,SAASA,CAAY;AAAA,IAAA;AAAA,EAEvD,GAAA,CAAC0E,GAAkBlgB,GAAeyf,CAA0B,CAAC;AAE1D,QAAAW,IAAkB,CAAC3c,MAAiC;AACtD,IAAAA,EAAM,gBAAgB,GAEDmc,EAAA,CAACS,MAAc,CAACA,CAAS,GAC9CrgB,KAAA,QAAAA,EAAe;AAAA,EAAM,GAGnBsgB,IAAwB,CAAC7c,GAAwByO,MAA8B;AACjF,IAAAzO,EAAM,gBAAgB,GAEtBkb,EAAkBlb,GAAOyO,CAAM,GAEdgO;EAAA;AAGrB,SAEQ,gBAAAlB,EAAAljC,IAAA,EAAA,UAAA;AAAA,IAAA,gBAAA4qB;AAAA,MAAC6Z;AAAAA,MAAA;AAAA,QACG,KAAKV;AAAA,QACL,MAAMR;AAAA,QACN,MAAA/X;AAAA,QACA,UAAAgY;AAAA,QACA,SAASE;AAAA,QACR,GAAGvB,GAAYmC,CAAe;AAAA,QAC/B,UAAUb,IAAY,IAAI;AAAA,MAAA;AAAA,IAC9B;AAAA,IAECI,KACG,gBAAAjZ;AAAA,MAAC8X;AAAA,MAAA;AAAA,QACG,KAAKsB;AAAA,QACL,OAAAzmC;AAAA,QACA,SAAAqlC;AAAA,QACA,mBAAmB4B;AAAA,QACnB,SAAS,MAAM;AACX,UAAAvgB,KAAA,QAAAA,EAAkB,SACDmgB;QACrB;AAAA,QACA,OAAOC,EAAO;AAAA,QACb,GAAGl5B,EAAW;AAAA,MAAA;AAAA,IACnB;AAAA,EAER,EAAA,CAAA;AAER;AC/Ia,MAAAu5B,KAAkB,CAAC1+B,MAAgC;AACtD,QAAA,EAAE,qBAAA2+B,IAAsB,IAAM,MAAArpC,GAAM,SAAAgQ,GAAS,WAAA80B,GAAW,WAAAwE,GAAW,OAAAC,GAAO,GAAGla,EAAA,IAAa3kB,GAC1F,EAAE,WAAAuxB,GAAW,gBAAAF,GAAgB,WAAWyN,EAAA,IAAwB7N,MAChE;AAAA,IACF,aAAA8N;AAAA,IACA,MAAAvZ,IAAO;AAAA,IACP,SAAAwZ;AAAA,IACA,eAAA1N,IAAgB;AAAA,IAChB,OAAA/5B;AAAA,IACA,SAAA0nC;AAAA,IACA,WAAA77B;AAAA,IACA,oBAAA87B,IAAqB,CAAC;AAAA,EACtB,IAAA5pC,GACE6pC,IACFR,KAAuBpN,EAAU,KAAK,CAACH,MAAaA,EAAS,SAAS97B,EAAK,QAAQ87B,EAAS,UAAU97B,EAAK,KAAK,GAE9G8pC,IAA2D,CAACzd,MAAU;AACpE,QAAAua,GAAgBva,CAAK,GAAG;AACxB,MAAArc,EAAQqc,CAAK,GACbA,EAAM,eAAe,GACrBA,EAAM,gBAAgB;AACtB;AAAA,IACJ;AAEA,IAAAyY,EAAUzY,CAAK;AAAA,EAAA,GAGbyb,IAAU4B,IAAU,gBAAApa,EAACyY,MAAU,MAAK,MAAK,KAAK2B,GAAS,KAAK,GAAGznC,CAAK,SAAS,IAAK,gBAAAqtB,EAACE,MAAK,MAAK,MAAK,SAASU,EAAM,CAAA,GAEjH6Z,IAEG,gBAAAnC,EAAAljC,IAAA,EAAA,UAAA;AAAA,IAAkBs3B,MAAA,KACd,gBAAA1M,EAAA,QAAA,EAAK,WAAU,kCACX,gBAAkB,IAAI,WAAW,GAAG0M,CAAa,UACtD,CAAA;AAAA,KAEFqN,KAAuBO,EAAmB,SAAS,MAChD,gBAAAhC,EAAAle,IAAA,EAAY,WAAU,gBAClB,UAAA;AAAA,MACG2f,KAAA,gBAAA/Z;AAAA,QAAC6Z;AAAAA,QAAA;AAAA,UACI,GAAGtC,GAAY,CAACxa,MAAU;AACvB,YAAAA,EAAM,gBAAgB,GACtB0P,EAAe/7B,CAAI;AAAA,UAAA,CACtB;AAAA,UACD,UAAUspC,IAAY,IAAI;AAAA,UAC1B,MAAK;AAAA,UACL,UAAS;AAAA,UACT,MAAMO,IAAa,cAAc;AAAA,UACjC,UAAUL;AAAA,QAAA;AAAA,MACd;AAAA,MAEHI,EAAmB,SAAS,KACzB,gBAAAta;AAAA,QAAC0Y;AAAA,QAAA;AAAA,UACG,YAAW;AAAA,UACX,UAAS;AAAA,UACT,MAAK;AAAA,UACL,OAAA/lC;AAAA,UACA,SAAS2nC;AAAA,UACT,mBAAmB55B;AAAA,UACnB,WAAWs5B;AAAA,UACX,WAAU;AAAA,UACV,QAAQ,CAAC,GAAG,CAAC;AAAA,UACb,4BAA4B;AAAA,UAC5B,yBAAyB;AAAA,QAAA;AAAA,MAC7B;AAAA,IAAA,GAER;AAAA,EAER,EAAA,CAAA;AAIA,SAAA,gBAAAha;AAAA,IAACC,GAAK;AAAA,IAAL;AAAA,MACG,KAAKga;AAAA,MACL,UAAUD,IAAY,IAAI;AAAA,MAC1B,WAAWn8B,GAAW,wBAAwBW,CAAS;AAAA,MACvD,WAAWg8B;AAAA,MACX,SAAA95B;AAAA,MACA,SAAA83B;AAAA,MACA,QAAAiC;AAAA,MACA,aAAAN;AAAA,MACA,SAASE,KAAW1nC;AAAA,MACnB,GAAGotB;AAAA,MAEH,UAAAptB;AAAA,IAAA;AAAA,EAAA;AAGb,GCpGMy5B,KAAa,IAAIb,MAEVmP,KAAuB,MAG/B;AACD,QAAM,EAAE,OAAAn+B,GAAO,QAAAquB,EAAO,IAAIE,GAAgB;AAAA,IACtC,SAASJ,GAAoB;AAAA,EAAA,CAChC,GAEKiQ,IAAgBh6B;AAAA,IAClB,CAAC1O,MACUm6B,GAAW,QAAQ,MACfxB,EAAO,CAACgQ,IAAoB,OACXA,EAAkB,SAAS3oC,CAAI,IAE9B2oC,EAAkB,OAAO,CAACpoC,MAAYA,MAAYP,CAAI,IAAI,CAAC,GAAG2oC,GAAmB3oC,CAAI,CAC7G,CACJ;AAAA,IAEL,CAAC24B,CAAM;AAAA,EAAA;AAGJ,SAAA,EAAE,mBAAmBruB,GAAO,eAAAo+B;AACvC,GCHaE,KAAc,CAAmCz/B,MAAkC;AACtF,QAAA,EAAE,QAAA5J,GAAQ,OAAAspC,IAAQ,GAAG,MAAA7oC,IAAOT,EAAO,IAAI,aAAAupC,EAAgB,IAAA3/B,GACvD,EAAE,eAAA4/B,IAAgB,GAAS,IAAAxpC,GAC3BypC,IAAa5F,MACb,CAAC8C,GAAkBC,CAAmB,IAAI/X,GAAS,CAAC,GACpD6a,IAAS1R,GAA6C,CAAA,CAAE,GACxD,EAAE,mBAAAoR,GAAmB,eAAAD,EAAc,IAAID,GAAqB,GAC5Dtb,IAAS4b,IAAgB,EAACJ,KAAA,QAAAA,EAAmB,SAAS3oC,MAAQ,IAE9DkpC,IAAe3pC,EAAO,MAAM,OAAO,CAACd,MAASD,GAAUC,CAAI,CAAC,GAC5D0qC,IAAkB5pC,EAAO,MAAM,OAAO,CAACd,MAAS,CAACD,GAAUC,CAAI,CAAC,GAEhEe,IAAQ,CAAC,GAAG0pC,GAAc,GAAGC,CAAe,GAE5CC,IAAc,IACdC,IAAc,IAEd1D,IAAY,CAACS,MAAqB;;AACnC,KAAA5sD,KAAAD,IAAA0vD,EAAO,QAAQ7C,CAAQ,MAAvB,gBAAA7sD,EAA0B,cAAc,kBAAxC,QAAAC,EAAuE,SACxE2sD,EAAoBC,CAAQ;AAAA,EAAA,GAG1BkD,IAAa,YAAY;AAC3B,IAAKP,KAIL,MAAML,EAAc1oC,CAAI;AAAA,EAAA;AAIxB,SAAA,gBAAAqmC,EAACrY,GAAK,kBAAL,EAAsB,WAAW6a,MAAU,IAAI,iBAAiB,QAC7D,UAAA;AAAA,IAAA,gBAAA9a;AAAA,MAACJ;AAAA,MAAA;AAAA,QACG,WAAWkb,MAAU,IAAI,2CAA2C;AAAA,QACpE,QAAA1b;AAAA,QACA,SAASmc;AAAA,QACT,kBAAkBP;AAAA,QAClB,gBAAgBF,MAAU;AAAA,QAC1B,OAAO,EAAE,aAAa,GAAGO,IAAcC,IAAc,KAAK,IAAI,GAAGR,IAAQ,CAAC,CAAC,KAAK;AAAA,QAChF,OAAOtpC,EAAO;AAAA,MAAA;AAAA,IAClB;AAAA,IACA,gBAAAwuB,EAACjB,MAAS,QAAAK,GAAgB,KAAKa,IAC1B,UAAMxuB,EAAA,IAAI,CAACf,GAAM4nB,MACP7nB,GAAUC,CAAI,IACjB,gBAAAsvB;AAAA,MAAC6a;AAAA,MAAA;AAAA,QAEG,QAAQnqC;AAAA,QACR,OAAOoqC,IAAQ;AAAA,QACf,aAAAC;AAAA,QACA,MAAM,GAAG9oC,CAAI,IAAIvB,EAAK,EAAE;AAAA,MAAA;AAAA,MAJnBA,EAAK;AAAA,IAAA,IAOd,gBAAAsvB;AAAA,MAAC8Z;AAAA,MAAA;AAAA,QAEG,OAAO,EAAE,aAAa,GAAGuB,IAAcC,KAAeR,IAAQ,EAAE,KAAK;AAAA,QACrE,OAAO,CAACx3B,MAAa43B,EAAO,QAAQ5iB,CAAK,IAAIhV;AAAA,QAC7C,qBAAqB5S,EAAK,SAASC,GAAW,eAAeD,EAAK,SAASC,GAAW;AAAA,QACtF,MAAAD;AAAA,QACA,SAAS,CAACqsB,GAAOyO,MACbuP,KAAA,gBAAAA,EAAche,GAAO;AAAA,UACjB,MAAArsB;AAAA,UACA,UAAUuqC;AAAA,UACV,+BAA+BzP,KAAA,gBAAAA,EAAQ;AAAA,QAAA;AAAA,QAG/C,WAAW,CAACzO,MAAU;AACC,UAAA2a,GAAA;AAAA,YACf,OAAA3a;AAAA,YACA,WAAA6a;AAAA,YACA,cAAcO;AAAA,YACd,KAAK;AAAA,YACL,KAAK1mC,EAAM,SAAS;AAAA,UAAA,CACvB;AAAA,QACL;AAAA,QACA,WAAW0mC,MAAqB7f;AAAA,MAAA;AAAA,MArB3B5nB,EAAK;AAAA,IAAA,CAwBrB,GACL;AAAA,EACJ,EAAA,CAAA;AAER,GCxGa8qC,KAAc,CAAC9qC,MACjB,GAAGA,EAAK,IAAI,IAAIA,EAAK,EAAE,IAGrB+qC,KAAiB,CAAChqC,GAA6BiqC,MACjDC,GAAkBlqC,CAAK,EAAEiqC,CAAe,GAG7CC,KAAoB,CAAClqC,MAChBA,EAAM,OAA2C,CAACmqC,GAASlrC,MACvDD,GAAUC,CAAI,IAAI,EAAE,GAAGkrC,GAAS,GAAGD,GAAkBjrC,EAAK,KAAK,EAAM,IAAA,EAAE,GAAGkrC,GAAS,CAACJ,GAAY9qC,CAAI,CAAC,GAAGA,KAChH,CAAE,CAAA,GCHHmrC,KAAiB1R,GAErB,MAAS,GAEE2R,KAAa,MAAM;AACtB,QAAAxgB,IAAUgF,GAAWub,EAAc;AAEzC,MAAIvgB,MAAY;AACN,UAAA,IAAI,MAAM,kDAAkD;AAG/D,SAAAA;AACX,GAEaygB,KAAkB,CAAC,EAAE,UAAA3e,QAAqC;AACnE,QAAM,CAAC4e,GAAWC,CAAY,IAAI5b,GAAgC,IAAI,GAEhE6b,IAAezR;AAAA,IACjB,MAAM,CAACuR,GAAWC,CAAY;AAAA,IAC9B,CAACD,CAAS;AAAA,EAAA;AAGd,2BAAQH,GAAe,UAAf,EAAwB,OAAOK,GAAe,UAAA9e,EAAS,CAAA;AACnE,GCnBa+e,KAAU,CAAC,EAAE,QAAA3qC,GAAQ,aAAAupC,QAAgC;AAC9D,QAAM,CAACiB,GAAWC,CAAY,IAAIH,GAAW,GACvCtR,IAAeJ,MACf6Q,IAAa5F,MACb,EAAE,mBAAApK,MAAsBN,MAExByR,IAAkB,CACpBpxD,GACAqxD,MAIC;AACK,UAAA,EAAE,MAAA3rC,GAAM,+BAAA4rC,EAAkC,IAAAD;AAEhD,IAAAJ,EAAa,EAAE,UAAUT,GAAY9qC,CAAI,GAAG,+BAAA4rC,GAA8D;AAAA,EAAA;AAG9G,SAAA9b,GAAU,MAAM;;AACR,QAAA,CAACua,KAAe,CAACiB;AACjB;AAGJ,UAAM,EAAE,UAAUj4B,GAAM,+BAAAu4B,EAAA,IAAkCN,GAEpDO,IAAcd,GAAejqC,EAAO,OAAOuS,CAAI;AAErD,IAAKw4B,MAIOxB,EAAA;AAAA,MACR,MAAMwB;AAAA,MACN,UAAUtB;AAAA,MACV,+BAAAqB;AAAA,IAAA,CACH,GAEDL,EAAa,IAAI,GAEb,EAAAhB,MAAerF,GAAc,SAAS3K,QAI1Cz/C,IAAAg/C,EAAa,UAAb,QAAAh/C,EAAA,KAAAg/C;AAAA,EAAqB,GACtB,CAACwR,GAAWxqC,EAAO,OAAOg5B,GAAcuQ,GAAaE,GAAYgB,GAAchR,CAAiB,CAAC,GAE5F,gBAAAjL,EAAA6a,IAAA,EAAY,QAAArpC,GAAgB,aAAa4qC,EAAiB,CAAA;AACtE;ACvDO,SAASI,GAAoBphC,GAAiC;AACjE,QAAM,EAAE,qBAAAjJ,GAAqB,sBAAAgB,GAAsB,WAAAzB,EAAA,IAAc0J,GAC3DnI,IAAektB,MACfjtB,IAAmBouB,MACnBmb,IAAmB7F,MACnB8F,IAA2BvZ,MAE3B3xB,IAASi5B;AAAA,IACX,MACIz3B,GAA6BC,GAAcC,GAAkB;AAAA,MACzD,qBAAAf;AAAA,MACA,sBAAAgB;AAAA,MACA,WAAAzB;AAAA,IAAA,CACH;AAAA,IACL,CAACuB,GAAcC,GAAkBf,GAAqBgB,GAAsBzB,CAAS;AAAA,EAAA;AAiBzF,SAAQ,gBAAAsuB,EAAAmc,IAAA,EAAQ,QAAA3qC,GAAgB,aAdR,CAAC6qC,MAInB;AACF,UAAM,EAAE,MAAA3rC,GAAM,UAAA4lB,GAAU,+BAAAgmB,EAAA,IAAkCD;AAE1D,QAAI,CAACC;AACM,aAAAG,EAAiB,EAAE,IAAI/rC,EAAK,IAAI,OAAOA,EAAK,OAAO,UAAA4lB,EAAA,CAAU;AAGxE,IAAAomB,EAAyBhsC,GAAM4rC,CAA6B;AAAA,EAAA,EAGF,CAAA;AAClE;ACjCa,MAAAK,KAA4B,CAAChQ,GAAuBz6B,MAA+C;AAC5G,QAAM,EAAE,sBAAAiB,GAAsB,WAAAzB,IAAYP,GAAW,aAAae,GAE5D0qC,IAAkBrrC,GAAU;AAAA,IAC9B,OAAOo7B;AAAA,IACP,WAAAj7B;AAAA,IACA,kBAAkBL;AAAA,IAClB,mBAAmBC;AAAA,EAAA,CACtB;AAEM,SAAA;AAAA,IACH,IAAIQ,GAAoB;AAAA,IACxB,OAAO;AAAA,IACP,OAAO8qC;AAAA,IACP,eAAezpC;AAAA,EAAA;AAEvB,GChBa0pC,KAAmB,CAACzhC,MAA+B;AACtD,QAAA,EAAE,sBAAAjI,GAAsB,WAAAzB,EAAc,IAAA0J,GACtC,EAAE,WAAAuxB,MAAcN,MAEhB76B,IAASi5B;AAAA,IACX,MACIkS,GAA0BhQ,GAAW;AAAA,MACjC,sBAAAx5B;AAAA,MACA,WAAAzB;AAAA,IAAA,CACH;AAAA,IACL,CAACi7B,GAAWx5B,GAAsBzB,CAAS;AAAA,EAAA;AAG/C,SAAOi7B,EAAU,SAAS,IAAK,gBAAA3M,EAAAmc,IAAA,EAAQ,QAAA3qC,GAAgB,IAAK;AAChE,GCbasrC,KAAkB,CAAC1hC,MAAgC;AAC5D,QAAM,EAAE,QAAAwF,GAAQ,WAAApC,GAAW,GAAG+nB,MAASnrB;AAGnC,SAAA,gBAAA4kB;AAAA,IAAC6Z;AAAAA,IAAA;AAAA,MACG,WAAWh8B,GAAW,oBAAoB,EAAE,QAAA+C,EAAA,GAAUpC,CAAS;AAAA,MAC/D,cAAW;AAAA,MACX,MAAK;AAAA,MACL,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,OAAOoC,IAAS,oBAAoB;AAAA,MACnC,GAAG2lB;AAAA,IAAA;AAAA,EAAA;AAGhB;ACnBA,IAAIwW,KAAoB,SAA2BxgC,GAAO;AACzD,SAAOygC,GAAgBzgC,CAAK,KACxB,CAAC0gC,GAAU1gC,CAAK;AACrB;AAEA,SAASygC,GAAgBzgC,GAAO;AAC/B,SAAO,CAAC,CAACA,KAAS,OAAOA,KAAU;AACpC;AAEA,SAAS0gC,GAAU1gC,GAAO;AACzB,MAAI2gC,IAAc,OAAO,UAAU,SAAS,KAAK3gC,CAAK;AAEtD,SAAO2gC,MAAgB,qBACnBA,MAAgB,mBAChBC,GAAe5gC,CAAK;AACzB;AAGA,IAAI6gC,KAAe,OAAO,UAAW,cAAc,OAAO,KACtD9pC,KAAqB8pC,KAAe,OAAO,IAAI,eAAe,IAAI;AAEtE,SAASD,GAAe5gC,GAAO;AAC9B,SAAOA,EAAM,aAAajJ;AAC3B;AAEA,SAAS+pC,GAAYpmC,GAAK;AACzB,SAAO,MAAM,QAAQA,CAAG,IAAI,CAAE,IAAG,CAAE;AACpC;AAEA,SAASqmC,GAA8B/gC,GAAOoL,GAAS;AACtD,SAAQA,EAAQ,UAAU,MAASA,EAAQ,kBAAkBpL,CAAK,IAC/DghC,GAAUF,GAAY9gC,CAAK,GAAGA,GAAOoL,CAAO,IAC5CpL;AACJ;AAEA,SAASihC,GAAkB/lC,GAAQC,GAAQiQ,GAAS;AACnD,SAAOlQ,EAAO,OAAOC,CAAM,EAAE,IAAI,SAAS4L,GAAS;AAClD,WAAOg6B,GAA8Bh6B,GAASqE,CAAO;AAAA,EACvD,CAAE;AACF;AAEA,SAAS81B,GAAiB5lC,GAAK8P,GAAS;AACvC,MAAI,CAACA,EAAQ;AACZ,WAAO41B;AAER,MAAIG,IAAc/1B,EAAQ,YAAY9P,CAAG;AACzC,SAAO,OAAO6lC,KAAgB,aAAaA,IAAcH;AAC1D;AAEA,SAASI,GAAgClmC,GAAQ;AAChD,SAAO,OAAO,wBACX,OAAO,sBAAsBA,CAAM,EAAE,OAAO,SAASmmC,GAAQ;AAC9D,WAAO,OAAO,qBAAqB,KAAKnmC,GAAQmmC,CAAM;AAAA,EACzD,CAAG,IACC,CAAE;AACN;AAEA,SAASC,GAAQpmC,GAAQ;AACxB,SAAO,OAAO,KAAKA,CAAM,EAAE,OAAOkmC,GAAgClmC,CAAM,CAAC;AAC1E;AAEA,SAASqmC,GAAmBnpC,GAAQ0P,GAAU;AAC7C,MAAI;AACH,WAAOA,KAAY1P;AAAA,EACnB,QAAU;AACV,WAAO;AAAA,EACP;AACF;AAGA,SAASopC,GAAiBtmC,GAAQI,GAAK;AACtC,SAAOimC,GAAmBrmC,GAAQI,CAAG,KACjC,EAAE,OAAO,eAAe,KAAKJ,GAAQI,CAAG,KACvC,OAAO,qBAAqB,KAAKJ,GAAQI,CAAG;AAClD;AAEA,SAASmmC,GAAYvmC,GAAQC,GAAQiQ,GAAS;AAC7C,MAAIs2B,IAAc,CAAA;AAClB,SAAIt2B,EAAQ,kBAAkBlQ,CAAM,KACnComC,GAAQpmC,CAAM,EAAE,QAAQ,SAASI,GAAK;AACrC,IAAAomC,EAAYpmC,CAAG,IAAIylC,GAA8B7lC,EAAOI,CAAG,GAAG8P,CAAO;AAAA,EACxE,CAAG,GAEFk2B,GAAQnmC,CAAM,EAAE,QAAQ,SAASG,GAAK;AACrC,IAAIkmC,GAAiBtmC,GAAQI,CAAG,MAI5BimC,GAAmBrmC,GAAQI,CAAG,KAAK8P,EAAQ,kBAAkBjQ,EAAOG,CAAG,CAAC,IAC3EomC,EAAYpmC,CAAG,IAAI4lC,GAAiB5lC,GAAK8P,CAAO,EAAElQ,EAAOI,CAAG,GAAGH,EAAOG,CAAG,GAAG8P,CAAO,IAEnFs2B,EAAYpmC,CAAG,IAAIylC,GAA8B5lC,EAAOG,CAAG,GAAG8P,CAAO;AAAA,EAExE,CAAE,GACMs2B;AACR;AAEA,SAASV,GAAU9lC,GAAQC,GAAQiQ,GAAS;AAC3C,EAAAA,IAAUA,KAAW,IACrBA,EAAQ,aAAaA,EAAQ,cAAc61B,IAC3C71B,EAAQ,oBAAoBA,EAAQ,qBAAqBo1B,IAGzDp1B,EAAQ,gCAAgC21B;AAExC,MAAIY,IAAgB,MAAM,QAAQxmC,CAAM,GACpCymC,IAAgB,MAAM,QAAQ1mC,CAAM,GACpC2mC,IAA4BF,MAAkBC;AAElD,SAAKC,IAEMF,IACHv2B,EAAQ,WAAWlQ,GAAQC,GAAQiQ,CAAO,IAE1Cq2B,GAAYvmC,GAAQC,GAAQiQ,CAAO,IAJnC21B,GAA8B5lC,GAAQiQ,CAAO;AAMtD;AAEA41B,GAAU,MAAM,SAAsB1V,GAAOlgB,GAAS;AACrD,MAAI,CAAC,MAAM,QAAQkgB,CAAK;AACvB,UAAM,IAAI,MAAM,mCAAmC;AAGpD,SAAOA,EAAM,OAAO,SAASwW,GAAMv4B,GAAM;AACxC,WAAOy3B,GAAUc,GAAMv4B,GAAM6B,CAAO;AAAA,EACpC,GAAE,EAAE;AACN;AAEA,IAAI22B,KAAcf,IAElBgB,KAAiBD;mCCpIJE,KAAmB;AAAA,EAC5B,mBAAmB;AAAA,EACnB,eAAe;AACnB,GAEaC,KAA6B,sBAAsB,QCHnDC,KAA0D;AAAA,EACnE,QAAQ;AAAA,IACJ,YAAY;AAAA,IACZ,YAAY;AAAA,EAChB;AAAA,EACA,MAAM;AACV,GCAaC,KAAkB,CAAC,EAAE,WAAAngC,GAAW,UAAA4e,0BACjC,UAAO,EAAA,WAAWvf,GAAW,oBAAoBW,CAAS,GAAI,UAAA4e,EAAS,CAAA,GCFtEwhB,KAAqB,CAAC,EAAE,WAAApgC,QAAyC;AAC1E,QAAM,EAAE,mBAAAysB,GAAmB,WAAAJ,GAAW,QAAAE,MAAWJ,GAAqB;AAGlE,SAAA,gBAAA3K;AAAA,IAAC6Z;AAAAA,IAAA;AAAA,MACG,WAAAr7B;AAAA,MACA,MAAK;AAAA,MACL,SAAQ;AAAA,MACR,MAAMysB,IAAoB,UAAU;AAAA,MACpC,SAASF;AAAA,MACT,UAAUF;AAAA,IAAA;AAAA,EAAA;AAGtB,GCPagU,KAAY9G,GAA6C,CAAC38B,GAAOo5B,MAAQ;AAClF,QAAM,EAAE,UAAAsK,GAAU,YAAA/V,GAAY,SAAAgW,GAAS,WAAAvgC,MAAcpD,GAE/CzhB,IAAK2mC,GAAWC,EAAgB;AAEtC,SAAAC,GAAU,MAAM;AACR,IAAC7mC,KAAA,QAAAA,EAAI,UAINA,EAAA,OAAO,cAAc,GAAG;AAAA,EAAA,GAC5B,CAACA,CAAE,CAAC,GAGH,gBAAAqmC;AAAA,IAACgf;AAAAA,IAAA;AAAA,MACG,IAAG;AAAA,MACH,WAAWnhC,GAAW,cAAcW,CAAS;AAAA,MAC7C,KAAAg2B;AAAA,MACA,aAAY;AAAA,MACZ,OAAOzL;AAAA,MACP,UAAU+V;AAAA,MACV,cAAa;AAAA,MACb,aAAY;AAAA,MACZ,YAAY/V,EAAW,SAAS,UAAU;AAAA,MAC1C,mBAAmBgW;AAAA,IAAA;AAAA,EAAA;AAG/B,CAAC,GCrCYE,KAA0B,MAAM;AACzC,QAAM,EAAE,eAAA1U,GAAe,cAAAlB,EAAa,IAAIe,GAAgB;AAExD,SAAO,CAACh6B,OACG;AAAA,IACH,MAAMA;AAAA,IACN,WAAWA,OAAOm6B,KAAA,gBAAAA,EAAe;AAAA,IACjC,UAAUn6B,OAAOi5B,KAAA,gBAAAA,EAAc;AAAA,EAAA;AAG3C,GCTa6V,KAAqC,MAAM;AACpD,QAAMC,IAAsBnU,MACtBoU,IAAuBH,MACvBI,IAAqCnU;AAEpC,SAAA,OAAOx6B,GAAuB0yB,MAAuB;AAClD,UAAA,EAAE,IAAAhzB,EAAO,IAAAM,GAET8yB,IAAS4b,EAAqBhvC,CAAE;AAQtC,UAAMivC,EANW,MACbF,EAAoB;AAAA,MAChB,QAAA3b;AAAA,MACA,YAAAJ;AAAA,IAAA,CACH,CAE4C;AAAA,EAAA;AAEzD,GClBakc,KAAuB,MAAM;AACtC,QAAM5C,IAA2BvZ,MAC3Boc,IAAyB1S,MACzB2S,IAAkCN;AAExC,SAAO,CAACO,MAAqB;AACrB,QAAAA,MAAa9uC,GAAW;AACjB,aAAA+rC;AAGP,QAAA+C,MAAa9uC,GAAW;AACjB,aAAA4uC;AAGP,QAAAE,MAAa9uC,GAAW;AACjB,aAAA6uC;AAAA,EACX;AAER,GCtBaE,KAAuB;AAAA,EAChC,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,gBAAgB;AAAA,EAChB,MAAM;AACV,GCHaC,KAAiC,CAACnc,MACpC;AAAA,EACH;AAAA,IACI,MAAMkc,GAAqB;AAAA,IAC3B,aAAa;AAAA,IACb,MAAM;AAAA,EACV;AAAA,EACA;AAAA,IACI,MAAMA,GAAqB;AAAA,IAC3B,aAAa;AAAA,IACb,UAAU,CAAClc,EAAO;AAAA,IAClB,MAAM;AAAA,EACV;AAAA,EACA;AAAA,IACI,MAAMkc,GAAqB;AAAA,IAC3B,aAAa;AAAA,IACb,MAAM;AAAA,IACN,gBAAgB;AAAA,EACpB;AAAA,EACA;AAAA,IACI,MAAMA,GAAqB;AAAA,IAC3B,aAAa;AAAA,IACb,MAAM;AAAA,IACN,gBAAgB;AAAA,EACpB;AAAA,EACA;AAAA,IACI,MAAMA,GAAqB;AAAA,IAC3B,aAAa;AAAA,IACb,UAAUlc,EAAO;AAAA,IACjB,MAAM;AAAA,IACN,gBAAgB;AAAA,EACpB;AAAA,EACA;AAAA,IACI,MAAMkc,GAAqB;AAAA,IAC3B,aAAa;AAAA,IACb,MAAM;AAAA,EACV;AAAA,GChCKE,KAAiC,CAACC,MAAuE;AAClH,QAAMT,IAAuBH;AAE7B,SAAOY,EAAQ,OAAO,CAACC,GAAuBlhC,MAAW;AAC/C,UAAA,EAAE,MAAAnK,EAAS,IAAAmK,GAEXxO,IAAKwO,EAAO,MAAMA,EAAO;AAE/B,QAAI,CAACxO;AACM,aAAA0vC;AAGX,QAAIxF,IAAuD,CAAA;AAEvD,QAAA7lC,EAAK,SAAS9D,GAAW;AACJ,MAAA2pC,IAAAtpC;AAAA,aACdyD,EAAK,SAAS9D,GAAW;AACX,MAAA2pC,IAAAppC;AAAA,aACduD,EAAK,SAAS9D,GAAW,QAAQ;AAClC,YAAA6yB,IAAS4b,EAAqBhvC,CAAE;AAEtC,MAAAkqC,IAAqBqF,GAA+Bnc,CAAM;AAAA,IAAA;AAC9D,MAAW5kB,EAAO,qBACO07B,IAAA17B,EAAO,iBAAiB,IAAI,CAAC,EAAE,MAAAmF,GAAM,QAAAgpB,GAAQ,QAAAsP,GAAQ,QAAA5kC,SAC/D;AAAA,QACH,MAAAsM;AAAA,QACA,eAAe,EAAE,QAAAgpB,GAAQ,QAAAsP,GAAQ,QAAA5kC,EAAO;AAAA,MAAA,EAE/C;AAGL,UAAM/G,IAAqC;AAAA,MACvC,IAAAN;AAAA,MACA,OAAOwO,EAAO,eAAexO;AAAA,MAC7B,aAAawO,EAAO;AAAA,MACpB,MAAMnK,EAAK;AAAA,MACX,SAASmK,EAAO;AAAA,MAChB,YAAYA,EAAO;AAAA,MACnB,oBAAA07B;AAAA,IAAA,GAGE/nC,IAAeutC,EAAsB;AAAA,MAAU,CAAC,EAAE,OAAAntC,QACpD8B,EAAK,cAAc9B,MAAU8B,EAAK,cAAc9B,MAAU8B,EAAK;AAAA,IAAA,GAE7DjC,IAAUstC,EAAsBvtC,CAAY;AAElD,WAAIC,IACO;AAAA,MACH,GAAGstC,EAAsB,MAAM,GAAGvtC,CAAY;AAAA,MAC9C,EAAE,GAAGC,GAAS,OAAO,CAAC,GAAGA,EAAQ,OAAO9B,CAAI,EAAE;AAAA,MAC9C,GAAGovC,EAAsB,MAAMvtC,IAAe,CAAC;AAAA,IAAA,IAIhD;AAAA,MACH,GAAGutC;AAAA,MACH;AAAA,QACI,IAAIrrC,EAAK;AAAA,QACT,OAAOA,EAAK,eAAeA,EAAK;AAAA,QAChC,OAAO,CAAC/D,CAAI;AAAA,MAChB;AAAA,IAAA;AAAA,EAER,GAAG,CAAgC,CAAA;AACvC;AC/CO,SAASqvC,GAAc3kC,GAAqC;AAC/D,QAAM,EAAE,iBAAA46B,GAAiB,WAAAnL,EAAA,IAAckL,GAAU36B,EAAM,UAAU,GAC3D,EAAE,OAAA2F,MAAUqpB,MACZ4V,IAAsBlT,MACtBnD,IAAmBC,MACnB6S,IAAmB7F,MACnBnN,IAAgBC,MAChBuW,IAAoBX,MACpBY,IAAUN,GAA+B5J,CAAe,GACxDqJ,IAAqCnU,MACrC,EAAE,mBAAAD,MAAsBN,MAExBwV,IAAwB,CAACzvC,GAAoC4rC,MAA0C;AACnG,UAAA8D,IAAUH,EAAkBvvC,EAAK,IAAI;AAE3C,IAAA0vC,KAAA,QAAAA,EAAU1vC,GAAM4rC;AAAA,EAA6B,GAG3CF,IAAkB,OACpBpxD,GACAqxD,MAKC;;AACD,UAAM,EAAE,MAAA3rC,GAAM,UAAA4lB,GAAU,+BAAAgmB,EAAA,IAAkCD,GACpD,EAAE,MAAA5nC,GAAM,IAAArE,GAAI,OAAAuC,GAAO,YAAA0tC,MAAe3vC,GAElC4vC,IAAoBhE,KACpB9wD,IAAAklB,EAAK,uBAAL,gBAAAllB,EAAyB,KAAK,CAACggD,MAAWA,EAAO,SAAS8Q,KAC1D;AAkBF,IAhBAgE,KAAA,QAAAA,EAAmB,gBACnBN,EAAoBM,EAAkB,aAAa,IAC5ChE,IACP6D,EAAsBzvC,GAAM4rC,CAA6B,IAClD+D,IACPL,EAAoBK,CAAU,IACvB5rC,MAAS9D,GAAW,cAC3B8rC,EAAiB,EAAE,IAAArsC,GAAI,OAAAuC,GAAO,UAAA2jB,EAAU,CAAA,IACjC7hB,MAAS9D,GAAW,YACVg5B,EAAA,EAAE,IAAAv5B,GAAI,UAAAkmB,EAAA,CAAU,IAC1B7hB,MAAS9D,GAAW,UACQ0uC,EAAA,MAAM5V,EAAcr5B,CAAE,CAAC,GAK1D,EAAAkmB,MAAasf,GAAc,SAAS3K,OAIhClqB,KAAA,QAAAA;AAAA,EAAA;AAGZ,SAAI8pB,IACQ,gBAAA7K,EAAA,KAAA,EAAE,WAAU,kBAAiB,UAAU,aAAA,CAAA,IACxCgW,EAAgB,WAAW,IAC1B,gBAAAhW,EAAA,KAAA,EAAE,WAAU,qBAAoB,UAA0E,6EAAA,CAAA,sBAIjHC,IACI,EAAA,UAAAigB,EAAQ,IAAI,CAAC1uC,GAAQ+uC,MAClB,gBAAAvgB,EAAC6a,IAAmC,EAAA,QAAArpC,GAAgB,aAAa4qC,EAA/C,GAAA5qC,EAAO,MAAM+uC,CAAmD,CACrF,EACL,CAAA;AAER;ACnFO,MAAMC,KAA6B,CACtC1U,GACA54B,GAGAhB,MACc;AACd,QAAM,EAAE,sBAAAiB,GAAsB,WAAAzB,IAAYP,GAAW,cAAce,GAS7DuuC,IAPmBlvC,GAAU;AAAA,IAC/B,OAAOu6B;AAAA,IACP,WAAAp6B;AAAA,IACA,kBAAkBL;AAAA,IAClB,mBAAmBC;AAAA,EAAA,CACtB,EAE6D,IAAI,CAACu3B,MAAe;;AAAA;AAAA,MAC9E,GAAGA;AAAA,MACH,MAAMl4B,GAAW;AAAA,MACjB,MAAM;AAAA,MACN,gBAAenlB,IAAA0nB,EAAiB21B,EAAU,KAAK,MAAhC,gBAAAr9C,EAAmC;AAAA,MAClD,oBAAoB0lB;AAAA,IACtB;AAAA,GAAA;AAEK,SAAA;AAAA,IACH,IAAIY,GAAoB;AAAA,IACxB,OAAO;AAAA,IACP,OAAO;AAAA,MACH,GAAG2uC;AAAA,MACH;AAAA,QACI,IAAItV,GAAkB;AAAA,QACtB,MAAM;AAAA,QACN,OAAO;AAAA,QACP,MAAMx6B,GAAW;AAAA,QACjB,SAAS;AAAA,QACT,WAAW;AAAA,MACf;AAAA,IACJ;AAAA,IACA,eAAewC;AAAA,EAAA;AAEvB,GC1CautC,KAAoB,CAACtlC,MAA+B;AACvD,QAAA,EAAE,sBAAAjI,GAAsB,WAAAzB,EAAc,IAAA0J,GACtC0wB,IAAaD,MACb34B,IAAmB+jC,MACnBtN,IAAmBC,MACnB2V,IAAyB1S,MAEzBr7B,IAASi5B;AAAA,IACX,MACI+V,GAA2B1U,GAAY54B,GAAkB;AAAA,MACrD,sBAAAC;AAAA,MACA,WAAAzB;AAAA,IAAA,CACH;AAAA,IACL,CAACo6B,GAAY54B,GAAkBC,GAAsBzB,CAAS;AAAA,EAAA;AAqBlE,SAAQ,gBAAAsuB,EAAAmc,IAAA,EAAQ,QAAA3qC,GAAgB,aAlBR,CAAC6qC,MAInB;AACF,UAAM,EAAE,MAAA3rC,GAAM,UAAA4lB,GAAU,+BAAAgmB,EAAA,IAAkCD;AAE1D,WAAIC,IACOiD,EAAuB7uC,GAAM4rC,CAA6B,IAGjE5rC,EAAK,SAASC,GAAW,gBAClB4uC,EAAuB7uC,GAAMA,EAAK,EAAE,IAGxCi5B,EAAiB,EAAE,IAAIj5B,EAAK,IAAI,UAAA4lB,GAAU;AAAA,EAAA,EAGS,CAAA;AAClE,GCrCaqqB,KAAuC;AAAA,EAChD,EAAE,aAAa7uC,GAAoB,WAAW,WAAW+qC,GAAiB;AAAA,EAC1E,EAAE,aAAa/qC,GAAoB,YAAY,WAAW4uC,GAAkB;AAAA,EAC5E,EAAE,aAAa5uC,GAAoB,cAAc,WAAW0qC,GAAoB;AACpF,GCNaoE,KAAwB,MAShC;AACD,QAAM,EAAE,OAAArkC,GAAO,QAAAquB,GAAQ,WAAAC,GAAW,OAAAh6B,EAAA,IAAUi6B,GAAgB;AAAA,IACxD,SAASJ,GAAoB;AAAA,EAAA,CAChC;AAED,SAAO,EAAE,OAAA75B,GAAO,oBAAoB0L,GAAO,uBAAuBquB,GAAQ,WAAAC;AAC9E,GCRagW,KAAmB,CAAC,EAAE,YAAAC,QAAwC;AACjE,QAAAnnD,IAAK2mC,GAAWC,EAAgB,GAChC8e,IAAqCnU;AA2BpC,SAAA,gBAAAlL,EAAC6Z,IAAW,EAAA,MAAK,UAAS,MAAK,MAAK,UAAS,MAAK,SAzBtC,CAAC9c,MAA4B;AAC5C,IAAAA,EAAM,gBAAgB,GAqBtBsiB,EAnBiB,YAAY;AACrB,UAAA;AACM,cAAA1lD,EAAG,QAAQ,KAAK,EAAE,MAAMmnD,GAAY,MAAM,UAAU,GAE1D,MAAMre,GAAa;AAAA,UACf,IAAA9oC;AAAA,UACA,SAAS4oC,GAAoB;AAAA,UAC7B,MAAM,WAAWue,CAAU;AAAA,QAAA,CAC9B;AAAA,eACIjwC,GAAO;AACZ,cAAM4xB,GAAa;AAAA,UACf,IAAA9oC;AAAA,UACA,SAAS4oC,GAAoB;AAAA,UAC7B,MAAM,0BAA0Bue,CAAU;AAAA,UAC1C,OAAAjwC;AAAA,QAAA,CACH;AAAA,MACL;AAAA,IAAA,CAGuC;AAAA,EAAA,GAG+B,OAAM,cAAc,CAAA;AACtG,GC9BakwC,KAAkB,CAAC,EAAE,QAAAvd,QAAmC;AACjE,QAAM2b,IAAsBnU,MACtBqU,IAAqCnU,MAErC0O,IAAwB,OAAO7c,GAAwByO,MAA8B;AACvF,IAAAzO,EAAM,gBAAgB,GAQtB,MAAMsiB,EANW,MACbF,EAAoB;AAAA,MAChB,QAAA3b;AAAA,MACA,YAAYgI,EAAO;AAAA,IAAA,CACtB,CAE4C;AAAA,EAAA;AAIjD,SAAA,gBAAAxL;AAAA,IAAC0Y;AAAA,IAAA;AAAA,MACG,YAAW;AAAA,MACX,UAAS;AAAA,MACT,OAAOlV,EAAO;AAAA,MACd,MAAK;AAAA,MACL,SAASmc,GAA+Bnc,CAAM;AAAA,MAC9C,mBAAmBoW;AAAA,MACnB,WAAU;AAAA,MACV,QAAQ,CAAC,GAAG,CAAC;AAAA,MACb,4BAA4B;AAAA,MAC5B,yBAAyB;AAAA,IAAA;AAAA,EAAA;AAGrC,GC7BaoH,KAAc,CAAC,EAAE,SAAAtO,QAAgC;AACpD,QAAA,EAAE,mBAAAzH,MAAsBN,MACxB,EAAE,OAAA5pB,MAAUqpB,MACZX,IAAgBC,MAChB2V,IAAqCnU,MAErCyK,IAA4B,MAAM;AACpC,IAAI1K,KAIIlqB,KAAA,QAAAA;AAAA,EAAA,GAGNkgC,IAAoB,CAACzd,MAGhB6b,EAFU,MAAM5V,EAAcjG,EAAO,MAAMmS,CAAyB,CAEzB;AAGtD,2BACK1V,IAAK,EAAA,WAAU,gBAAe,SAAQ,UAAS,WAAW,EAAE,SAAS,SAAS,SAAS,mBACnF,UAAQyS,EAAA,IAAI,CAAClP,MACV,gBAAAxD;AAAA,IAACC,GAAK;AAAA,IAAL;AAAA,MACG,WAAU;AAAA,MAEV,SAAS,MAAMghB,EAAkBzd,CAAM;AAAA,MACvC,QAES,gBAAA8U,EAAAljC,IAAA,EAAA,UAAA;AAAA,QAAAouB,EAAO,aACH,gBAAAxD,EAAAkhB,IAAA,EAAK,SAAQ,WAAU,OAAM,kBAAiB,UAE/C,UAAA,CAAA;AAAA,0BAGH9mB,IACI,EAAA,UAAA;AAAA,UAAAoJ,EAAO,YAAY,gBAAAxD,EAAC6gB,IAAiB,EAAA,YAAYrd,EAAO,MAAM;AAAA,UAC/D,gBAAAxD,EAAC+gB,MAAgB,QAAAvd,GAAgB;AAAA,QAAA,GACrC;AAAA,MAAA,GACJ;AAAA,MAEJ,YAAYA,EAAO;AAAA,MACnB,SAASA,EAAO;AAAA,MAEf,UAAOA,EAAA;AAAA,IAAA;AAAA,IAnBHA,EAAO;AAAA,EAqBnB,CAAA,EACL,CAAA;AAER,GCxDa2d,KAAa,MAAM;AACtB,QAAA,EAAE,SAAAzO,MAAYD,MACd,EAAE,cAAApJ,GAAc,eAAAkB,EAAc,IAAIH,GAAgB,GAElDgX,IAAa3W;AAAA,IACf,MACIiI,EAAQ,IAAI,CAAClP,OAAY;AAAA,MACrB,GAAGA;AAAA,MACH,UAAUA,EAAO,UAAS6F,KAAA,gBAAAA,EAAc;AAAA,MACxC,WAAW7F,EAAO,UAAS+G,KAAA,gBAAAA,EAAe;AAAA,IAAA,EAC5C;AAAA,IACN,CAACmI,GAASrJ,GAAckB,CAAa;AAAA,EAAA;AAGlC,SAAA,gBAAAvK,EAACghB,IAAY,EAAA,SAASI,EAAY,CAAA;AAC7C,GCjBaC,KAAe,MAAM;AAC9B,QAAM,EAAE,eAAA9W,GAAe,cAAAlB,EAAa,IAAIe,GAAgB;AAExD,SAAKf,IAKD,gBAAArJ;AAAA,IAACghB;AAAA,IAAA;AAAA,MACG,SAAS;AAAA,QACL;AAAA,UACI,GAAG3X;AAAA,UACH,WAAWA,EAAa,UAASkB,KAAA,gBAAAA,EAAe;AAAA,UAChD,UAAU;AAAA,QACd;AAAA,MACJ;AAAA,IAAA;AAAA,EAAA,IAXI,gBAAAvK,EAAA,KAAA,EAAE,WAAU,kCAAiC,UAA2B,8BAAA,CAAA;AAcxF,GCXashB,KAAqB,MAAM;AAC9B,QAAA3nD,IAAK2mC,GAAWC,EAAgB,GAChC,EAAE,iBAAAiE,MAAoB4F,MACtBiV,IAAqCnU,MAErCqW,IAA6B,YAAY;;AAC3C,QAAI,EAAE,YAAY5nD,KAAMA,EAAG,SAAS;AAChC,cAAQ,MAAM,yDAAyD;AACvE;AAAA,IACJ;AAEA,UAAMgqC,IAAkB,UAClBQ,IAAU,eAEV,EAAE,gBAAAN,GAAgB,uBAAAC,GAAuB,QAAAC,EAAA,IAAW,MAAMpqC,EAAG,OAAO,QAAQ,QAAQ;AAAA,MACtF,cAAc0pC,GAAsB;AAAA,MACpC,WAAW;AAAA,QACP,SAAS;AAAA,QACT,OAAO;AAAA,UACH,IAAIc;AAAA,UACJ,cAAc;AAAA,UACd,YAAY;AAAA,YACR,mBAAmB,CAACR,CAAe;AAAA,YACnC,cAAc;AAAA,YACd,cAAcL;AAAA,UAClB;AAAA,QACJ;AAAA,QACA,eAAe;AAAA,UACX,EAAE,SAAS,WAAW,MAAM,UAAU,IAAIK,EAAgB;AAAA,UAC1D,EAAE,SAAS,WAAW,MAAM,UAAU,IAAI,SAAS;AAAA,QACvD;AAAA,MACJ;AAAA,IAAA,CACH,GAEKmd,KAAat1D,IAAAu4C,KAAA,gBAAAA,EAAQ,KAAK,CAACC,MAAUA,EAAM,OAAOG,OAArC,gBAAA34C,EAA+C;AAIlE,QAF0Bq4C,MAAkBC,KAAA,gBAAAA,EAAuB,QAAOH;AAMtE,UAAA;AAGA,aAF0B,MAAMhqC,EAAG,QAAQ,OAAO,QAAQ,GAAG,KAAK,CAAC6pC,MAAWA,EAAO,SAASsd,CAAU,GAElF;AAClB,gBAAMre,GAAa;AAAA,YACf,IAAA9oC;AAAA,YACA,SAAS4oC,GAAoB;AAAA,YAC7B,MAAM,4BAA4Bue,CAAU;AAAA,UAAA,CAC/C;AACD;AAAA,QACJ;AAEA,cAAMnnD,EAAG,QAAQ,KAAK,EAAE,MAAMmnD,GAAY,GAC1Btc,EAAA,EAAE,MAAMsc,EAAA,CAAY,GAEpC,MAAMre,GAAa;AAAA,UACf,IAAA9oC;AAAA,UACA,SAAS4oC,GAAoB;AAAA,UAC7B,MAAM,WAAWue,CAAU;AAAA,QAAA,CAC9B;AAAA,eACIjwC,GAAO;AACZ,cAAM4xB,GAAa;AAAA,UACf,IAAA9oC;AAAA,UACA,SAAS4oC,GAAoB;AAAA,UAC7B,MAAM,4BAA4Bue,CAAU;AAAA,UAC5C,OAAAjwC;AAAA,QAAA,CACH;AAAA,MACL;AAAA,EAAA;AAGJ,SACK,gBAAAmvB,EAAA5F,IAAA,EAAY,SAAQ,aAAY,WAAU,2BACvC,UAAA,gBAAA4F;AAAA,IAACvf;AAAAA,IAAA;AAAA,MACG,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,SAAS,MAAM4+B,EAAmCkC,CAA0B;AAAA,IAAA;AAAA,EAEpF,EAAA,CAAA;AAER;AC/EO,MAAMC,KAAe,MAAM;AACxB,QAAAC,IAAYjY,GAA2B,IAAI,GAC3C,EAAE,SAAAkJ,GAAS,eAAAE,EAAc,IAAIH,GAAW,GACxC,EAAE,oBAAAiP,GAAoB,uBAAAC,EAAsB,IAAIf,GAAsB;AAE5E,EAAApgB,GAAU,MAAM;AACZ,IAAI,CAACoS,KAAiBF,EAAQ,SAAS,KAAK,CAACgP,KAI7CC,EAAsB,EAAK;AAAA,KAC5B,CAACjP,GAASE,GAAe8O,GAAoBC,CAAqB,CAAC;AAEhE,QAAA5W,IAASpqB,GAAY,MAAMghC,EAAsB,CAACviB,MAAW,CAACA,CAAM,GAAG,CAACuiB,CAAqB,CAAC;AAEpG,SACK,gBAAArJ,EAAA,UAAA,EAAO,WAAU,iBAAgB,KAAKmJ,GACnC,UAAA;AAAA,IAAC,gBAAAzhB,EAAA4hB,IAAA,EAAU,WAAU,0BAA0B,CAAA;AAAA,IAE/C,gBAAAtJ;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,WAAU;AAAA,QACV,cAAW;AAAA,QACX,iBAAeoJ;AAAA,QACf,MAAK;AAAA,QACJ,GAAGnK,GAAY7E,EAAQ,SAAS3H,IAAS,MAAS;AAAA,QAEnD,UAAA;AAAA,UAAC,gBAAA/K,EAAA6hB,IAAA,EAAM,KAAI,MAAK,MAAK,UAAS,MAAMnP,EAAQ,SAAS,IAAI,YAAY,sBAAuB,CAAA;AAAA,UAC3FA,EAAQ,SAAS,KACd,gBAAA1S;AAAA,YAAC6Z;AAAAA,YAAA;AAAA,cACG,WAAWh8B,GAAW,+BAA+B;AAAA,gBACjD,uCAAuC6jC;AAAA,cAAA,CAC1C;AAAA,cACD,MAAK;AAAA,cACL,UAAS;AAAA,cACT,MAAK;AAAA,YAAA;AAAA,UACT;AAAA,QAAA;AAAA,MAAA;AAAA,IAER;AAAA,IAEA,gBAAA1hB,EAACjB,MAAS,QAAQ2iB,GAAoB,KAAI,OACtC,UAAA,gBAAA1hB,EAACmhB,MAAW,EAChB,CAAA;AAAA,IAECzO,EAAQ,SAAS,KAAK,CAACgP,IAAsB,gBAAA1hB,EAAAqhB,IAAA,EAAa,IAAK,gBAAArhB,EAACshB,IAAmB,CAAA,CAAA;AAAA,EACxF,EAAA,CAAA;AAER,GCtDaQ,KAA0B,MASlC;AACD,QAAM,EAAE,OAAAvlC,GAAO,QAAAquB,GAAQ,WAAAC,GAAW,OAAAh6B,EAAA,IAAUi6B,GAAgB;AAAA,IACxD,SAASJ,GAAoB;AAAA,EAAA,CAChC;AAEM,SAAA;AAAA,IACH,OAAA75B;AAAA,IACA,sBAAsB0L;AAAA,IACtB,yBAAyBquB;AAAA,IACzB,WAAAC;AAAA,EAAA;AAER;ACIa,MAAAkX,KAAY,CAAC3mC,MAA0B;AAC1C,QAAA;AAAA,IACF,QAAAgkB,IAAS;AAAA,IACT,SAAAyY;AAAA,IACA,WAAAr5B;AAAA,IACA,UAAAtM,IAAW,CAAC;AAAA,IACZ,YAAA8vC,IAAa,CAAC;AAAA,IACd,iCAAAC,IAAkC;AAAA,IAClC,GAAG1b;AAAA,EACH,IAAAnrB,GAEE8mC,IAAoBzX,GAAQ,MAAM0X,GAA6BzD,IAA4BxsC,CAAQ,GAAG,CAACA,CAAQ,CAAC,GAEhH,EAAE,YAAAkwC,GAAY,YAAAC,EAAA,IAAeH,EAAkB,UAAU,CAAA,GAEzD,EAAE,UAAAI,IAAW3B,GAAqB,IAAAqB,GAClC,EAAE,cAAAO,GAAc,aAAAC,EAAA,IAAgBR,EAAW,UAAU,CAAA,GAErD,CAACjZ,GAAY0Z,CAAa,IAAIpiB,GAAS,EAAE,GACzCqiB,IAAiBlZ,GAAyB,IAAI,GAE9CN,IAA2BuV,MAA8BwD,MAAoC,WAE7F5f,IAAUH,MAEV,EAAE,mBAAA+I,MAAsBN,MACxB,EAAE,sBAAAgY,GAAsB,yBAAAC,EAAwB,IAAId,GAAwB;AAElF,EAAAthB,GAAU,MAAM;;AACZ,IAAKpB,OAIL5zC,IAAAk3D,EAAe,YAAf,QAAAl3D,EAAwB;AAAA,EAAM,GAC/B,CAAC4zC,CAAM,CAAC,GAEXoB,GAAU,MAAM;AACZ,IAAKyK,KAIL2X,EAAwB,EAAK;AAAA,EAAA,GAC9B,CAACA,GAAyB3X,CAAiB,CAAC;AAEzC,QAAA4X,IAAe,CAAC9lB,MAA+C;AAC3D,UAAA+lB,IAAmB/lB,EAAM,OAAO;AAElC,IAAA+L,GAA+Bga,CAAgB,KAAKH,KACpDC,EAAwB,EAAK,GAGjCH,EAAcK,CAAgB;AAAA,EAAA,GAG5BC,IAAc,MAAM;;AACtB,IAAAN,EAAc,EAAE,IAEhBj3D,IAAAk3D,EAAe,YAAf,QAAAl3D,EAAwB;AAAA,EAAM;AAGlC,SACK,gBAAAw0C,EAAAqK,IAAA,EAAqB,OAAOwN,GAAS,0BAAA3O,GAClC,UAAA,gBAAAoP,EAAC,OAAI,EAAA,WAAWz6B,GAAW,aAAaW,CAAS,GAAI,GAAG+nB,GACnD,UAAA;AAAA,IAAA8b,uBACI1D,IAAgB,EAAA,WAAWtc,KAAW4I,IAAoB,SAAY,aAClE,UAAA;AAAA,MAAAsX,uBAAiBA,GAAa,EAAA;AAAA,MAC9BH,KACG,gBAAApiB;AAAA,QAAC6e;AAAA,QAAA;AAAA,UACG,KAAK6D;AAAA,UACL,YAAA3Z;AAAA,UACA,UAAU8Z;AAAA,UACV,SAASE;AAAA,UACT,WAAW1gB,IAAU,SAAY;AAAA,QAAA;AAAA,MACrC;AAAA,MAEHmgB,uBAAgBA,GAAY,EAAA;AAAA,MAC5BA,MAAgB,UAAaN,EAAkB,SAAS,YACpD,gBAAAliB,EAAA4e,IAAA,EAAmB,WAAU,WAAU;AAAA,IAAA,GAEhD;AAAA,IAEJ,gBAAAtG,EAAC,SAAI,WAAWz6B,GAAW,kBAAkB8kC,IAAuB,cAAc,MAAS,GACvF,UAAA;AAAA,MAAC,gBAAA3iB,EAAA,QAAA,EAAK,WAAU,kBACX,UAA+B8I,GAAAC,CAAU,IACtC,gBAAA/I,EAACgjB,IAAqB,EAAA,YAAAja,EAAA,CAAwB,IAE9C,gBAAA/I,EAAC+b,IACG,EAAA,UAAA,gBAAA/b,EAACC,IACI,EAAA,UAAAqiB,EAAS,IAAI,CAAC,EAAE,WAAA5iB,GAAW,aAAAujB,EAAY,MACnC,gBAAAjjB,EAAAN,GAAA,CAAA,GAAeujB,CAAa,CAChC,EACL,CAAA,EACJ,CAAA,GAER;AAAA,MACC/Z,uBAA6BsY,IAAa,EAAA;AAAA,IAAA,GAC/C;AAAA,EAAA,EACJ,CAAA,EACJ,CAAA;AAER,GC7Ha0B,KAA6B/Y,GAOxC,MAAS,GAEEgZ,KAAgC,MAAM;AACzC,QAAA7nB,IAAUgF,GAAW4iB,EAA0B;AAErD,MAAI5nB,MAAY;AACN,UAAA,IAAI,MAAM,yFAAyF;AAGtG,SAAAA;AACX,GCjBa8nB,KAAwB,MAAuC;AAClE,QAAAC,IAAyB5E,KACzB,CAACD,GAAiB,eAAeA,GAAiB,iBAAiB,IACnE,CAACA,GAAiB,aAAa;AAErC,SAAO,QAAQ;AAAA,IACX6E,EAAuB,IAAI,OAAOt/B,MAAS;AACvC,YAAMu/B,IAAc,MAAM,UAAU,YAAY,MAAM,EAAE,MAAAv/B,GAA8B;AAEtF,aAAAu/B,EAAW,aAAav/B,GAEjBu/B;AAAA,IAAA,CACV;AAAA,EAAA;AAET,GCLMC,KAAuBpZ,GAY3B,MAAS,GAEEqZ,KAAmB,MAAM;AAC5B,QAAAloB,IAAUgF,GAAWijB,EAAoB;AAE/C,MAAIjoB,MAAY;AACN,UAAA,IAAI,MAAM,+DAA+D;AAG5E,SAAAA;AACX,GAEamoB,KAAwB,CAAC,EAAE,UAAArmB,QAA2C;AACzE,QAAA,CAACpyC,GAAG04D,CAAgB,IAAIpa;AAAA,IAC1B;AAAA,IACAtE;AAAA,IACA0P;AAAA,EAAA,GAEE,CAACiP,GAAoBC,CAAqB,IAAIvjB,GAAiC,CAAE,CAAA,GAEjFwjB,IAAWpZ,GAAQ,MACdkZ,EAAmB,OAAO,CAACG,GAAaC,OACpC;AAAA,IACH,GAAGD;AAAA,IACH,CAACC,EAAiB,UAAU,GAAG,EAAE,OAAOA,EAAiB,MAAM;AAAA,EAAA,IAEpE,CAA4B,CAAA,GAChC,CAACJ,CAAkB,CAAC,GAEjBL,IAAa;AAAA,IACf,WAAWK,EAAmB,WAAW;AAAA,IACzC,UAAAE;AAAA,EAAA,GAGE,CAACG,GAAcC,CAAe,IAAI5jB,GAAS,EAAK,GAChD6jB,IAAQ,EAAE,cAAAF,GAAc,iBAAAC;AAE9B,EAAAzjB,GAAU,MAAM;AACZ,QAAIwL,IAAiB;AAErB,UAAMmY,IAA8Bf,GAAA,EAC/B,KAAK,CAACO,MAAuB;AAC1B,UAAI3X;AACA;AAGJ,MAAA4X,EAAsBD,CAAkB;AAExC,YAAMS,IAAuC,CAAA;AAC7C,UAAIC,IAAa;AAEjBV,aAAAA,EAAmB,QAAQ,CAACI,GAAkBzrB,MAAU;AAC9C,cAAAgsB,IAAiB,CAACvnB,MAAiB;AACrC,cAAIiP,KAAkB,CAACjP,EAAM,UAAUsnB;AACnC;AAGJ,gBAAMN,IAAmBhnB,EAAM;AAI/B,cAFqBgnB,EAAiB,UAAU;AAG3B,mBAAAL,EAAA,EAAE,aAAa,GAAA,CAAO,GAC1BW,IAAA,IACN,OAAO,SAAS;AAG3B,UAAAT,EAAsB,CAACW,MAAgB;AAAA,YACnC,GAAGA,EAAY,MAAM,GAAGjsB,CAAK;AAAA,YAC7ByrB;AAAAA,YACA,GAAGQ,EAAY,MAAMjsB,IAAQ,CAAC;AAAA,UAAA,CACjC;AAAA,QAAA;AAGY,QAAAyrB,EAAA,iBAAiB,UAAUO,CAAc,GAE1DF,EAAqB,KAAK,MAAML,EAAiB,oBAAoB,UAAUO,CAAc,CAAC;AAAA,MAAA,CACjG,GAEMF;AAAA,IACV,CAAA,EACA,MAAM,QAAQ,IAAI;AAEvB,WAAO,MAAM;AACQ,MAAApY,IAAA,IACWmY,EAAA,KAAK,CAACC,MAAyB;AACvD,QAAAA,KAAA,QAAAA,EAAsB,QAAQ,CAACjX,MAAgBA,EAAa;AAAA,MAAA,CAC/D;AAAA,IAAA;AAAA,EACL,GACD,CAACuW,CAAgB,CAAC;AAErB,QAAMxH,IAAezR;AAAA,IACjB,OAAO;AAAA,MACH,YAAA6Y;AAAA,MACA,OAAAY;AAAA,IAAA;AAAA,IAEJ,CAACZ,GAAYY,CAAK;AAAA,EAAA;AAGtB,2BAAQX,GAAqB,UAArB,EAA8B,OAAOrH,GAAe,UAAA9e,EAAS,CAAA;AACzE,GC5HaonB,KAA2B,CAACppC,MACrC,gBAAAk9B,EAAC,SAAI,OAAM,8BAA6B,OAAO,KAAK,QAAQ,KAAK,MAAK,QAAQ,GAAGl9B,GAC7E,UAAA;AAAA,EAAC,gBAAAk9B,EAAA,KAAA,EAAE,UAAS,WACR,UAAA;AAAA,IAAC,gBAAAA,EAAA,KAAA,EAAE,UAAS,WACR,UAAA;AAAA,MAAA,gBAAAtY,EAAC,QAAK,EAAA,MAAK,WAAU,GAAE,mBAAkB;AAAA,MACzC,gBAAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACG,OAAO;AAAA,UACP,QAAQ;AAAA,UACR,GAAG;AAAA,UACH,GAAG;AAAA,UACH,MAAK;AAAA,UACL,IAAI;AAAA,UACJ,WAAU;AAAA,QAAA;AAAA,MACd;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACG,OAAO;AAAA,UACP,QAAQ;AAAA,UACR,GAAG;AAAA,UACH,GAAG;AAAA,UACH,QAAO;AAAA,UACP,kBAAkB;AAAA,UAClB,IAAI;AAAA,UACJ,WAAU;AAAA,QAAA;AAAA,MACd;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACG,MAAK;AAAA,UACL,GAAE;AAAA,QAAA;AAAA,MACN;AAAA,MACA,gBAAAA,EAAC,QAAK,EAAA,OAAO,QAAQ,QAAQ,OAAO,MAAK,WAAU,IAAI,OAAO,WAAU,iCAAiC,CAAA;AAAA,MACzG,gBAAAA,EAAC,QAAK,EAAA,IAAG,KAAI,MAAK,QACd,UAAC,gBAAAA,EAAA,QAAA,EAAK,GAAE,uBAAA,CAAuB,EACnC,CAAA;AAAA,MACC,gBAAAA,EAAA,QAAA,EAAK,MAAK,WAAU,GAAE,wBAAuB;AAAA,wBAC7C,QAAK,EAAA,MAAK,WAAU,GAAE,sBAAqB,MAAK,WAAU;AAAA,IAAA,GAC/D;AAAA,IACC,gBAAAA,EAAA,QAAA,EAAK,OAAO,KAAK,QAAQ,KAAK,GAAG,KAAK,GAAG,KAAK,QAAO,WAAU,IAAI,KAAK;AAAA,IACxE,gBAAAA,EAAA,QAAA,EAAK,OAAO,IAAI,QAAQ,IAAI,GAAG,IAAI,GAAG,IAAI,MAAK,WAAU,IAAI,IAAI;AAAA,IAClE,gBAAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,MAAK;AAAA,QACL,GAAE;AAAA,MAAA;AAAA,IACN;AAAA,IACA,gBAAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,MAAK;AAAA,QACL,GAAE;AAAA,MAAA;AAAA,IACN;AAAA,EAAA,GACJ;AAAA,oBACC,QACG,EAAA,UAAA;AAAA,IAAC,gBAAAA,EAAA,YAAA,EAAS,IAAG,KACT,UAAA,gBAAAA,EAAC,UAAK,MAAK,QAAO,GAAE,kBAAA,CAAkB,EAC1C,CAAA;AAAA,IACC,gBAAAA,EAAA,YAAA,EAAS,IAAG,KACT,4BAAC,QAAK,EAAA,OAAO,KAAK,QAAQ,KAAK,MAAK,QAAO,IAAI,EAAG,CAAA,GACtD;AAAA,IACC,gBAAAsY,EAAA,kBAAA,EAAe,IAAG,KAAI,IAAI,QAAQ,IAAI,QAAQ,IAAI,OAAO,IAAI,SAAS,eAAc,kBACjF,UAAA;AAAA,MAAC,gBAAAtY,EAAA,QAAA,EAAK,WAAU,UAAU,CAAA;AAAA,MACzB,gBAAAA,EAAA,QAAA,EAAK,QAAQ,GAAG,WAAU,WAAU;AAAA,IAAA,GACzC;AAAA,EAAA,GACJ;AAAA,GACJ,GC1DSykB,KAAa,CAACrpC,MACvB,gBAAAk9B,EAAC,SAAI,OAAM,8BAA6B,OAAO,KAAK,QAAQ,KAAK,MAAK,QAAQ,GAAGl9B,GAC7E,UAAA;AAAA,EAAC,gBAAAk9B,EAAA,KAAA,EAAE,UAAS,WACR,UAAA;AAAA,IAAC,gBAAAA,EAAA,KAAA,EAAE,UAAS,WACR,UAAA;AAAA,MAAA,gBAAAtY,EAAC,UAAK,MAAK,WAAU,GAAE,kBAAiB,WAAU,mBAAkB;AAAA,MACpE,gBAAAA,EAAC,QAAK,EAAA,IAAG,KAAI,MAAK,QACd,UAAC,gBAAAA,EAAA,QAAA,EAAK,GAAE,uBAAA,CAAuB,EACnC,CAAA;AAAA,MACC,gBAAAA,EAAA,QAAA,EAAK,MAAK,WAAU,GAAE,wBAAuB;AAAA,wBAC7C,QAAK,EAAA,MAAK,WAAU,GAAE,sBAAqB,MAAK,WAAU;AAAA,IAAA,GAC/D;AAAA,IACC,gBAAAA,EAAA,QAAA,EAAK,OAAO,KAAK,QAAQ,KAAK,GAAG,KAAK,GAAG,MAAM,QAAO,WAAU,IAAI,KAAK;AAAA,IAC1E,gBAAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,MAAK;AAAA,QACL,QAAO;AAAA,QACP,kBAAkB;AAAA,QAClB,GAAE;AAAA,MAAA;AAAA,IACN;AAAA,IACA,gBAAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,MAAK;AAAA,QACL,aAAa;AAAA,QACb,GAAE;AAAA,MAAA;AAAA,IACN;AAAA,IACC,gBAAAA,EAAA,QAAA,EAAK,MAAK,WAAU,GAAE,wEAAuE;AAAA,IAC9F,gBAAAA,EAAC,YAAO,IAAI,QAAQ,IAAI,QAAQ,GAAG,QAAQ,MAAK,UAAU,CAAA;AAAA,IAC1D,gBAAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,MAAK;AAAA,QACL,UAAS;AAAA,QACT,GAAE;AAAA,QACF,UAAS;AAAA,MAAA;AAAA,IACb;AAAA,EAAA,GACJ;AAAA,oBACC,QACG,EAAA,UAAA;AAAA,IAAC,gBAAAA,EAAA,YAAA,EAAS,IAAG,KACT,UAAA,gBAAAA,EAAC,UAAK,MAAK,QAAO,GAAE,kBAAA,CAAkB,EAC1C,CAAA;AAAA,sBACC,YAAS,EAAA,IAAG,KACT,UAAA,gBAAAA,EAAC,UAAK,OAAO,KAAK,QAAQ,KAAK,GAAG,IAAI,MAAK,QAAO,IAAI,EAAG,CAAA,GAC7D;AAAA,IACC,gBAAAsY,EAAA,kBAAA,EAAe,IAAG,KAAI,IAAI,QAAQ,IAAI,QAAQ,IAAI,OAAO,IAAI,QAAQ,eAAc,kBAChF,UAAA;AAAA,MAAC,gBAAAtY,EAAA,QAAA,EAAK,WAAU,UAAU,CAAA;AAAA,MACzB,gBAAAA,EAAA,QAAA,EAAK,QAAQ,GAAG,WAAU,WAAU;AAAA,IAAA,GACzC;AAAA,EAAA,GACJ;AAAA,GACJ,GC5CS0kB,KAAiB,CAACtpC,MAC3B,gBAAAk9B,EAAC,SAAI,OAAM,8BAA6B,OAAO,KAAK,QAAQ,KAAK,MAAK,QAAQ,GAAGl9B,GAC7E,UAAA;AAAA,EAAC,gBAAAk9B,EAAA,KAAA,EAAE,UAAS,WACR,UAAA;AAAA,IAAC,gBAAAA,EAAA,KAAA,EAAE,UAAS,WACR,UAAA;AAAA,MAAA,gBAAAtY,EAAC,QAAK,EAAA,MAAK,WAAU,GAAE,mBAAkB;AAAA,MACzC,gBAAAA,EAAC,QAAK,EAAA,IAAG,KAAI,MAAK,QACd,UAAC,gBAAAA,EAAA,QAAA,EAAK,GAAE,uBAAA,CAAuB,EACnC,CAAA;AAAA,MACC,gBAAAA,EAAA,QAAA,EAAK,MAAK,WAAU,GAAE,wBAAuB;AAAA,wBAC7C,QAAK,EAAA,MAAK,WAAU,GAAE,sBAAqB,MAAK,WAAU;AAAA,IAAA,GAC/D;AAAA,IACC,gBAAAA,EAAA,QAAA,EAAK,OAAO,KAAK,QAAQ,KAAK,GAAG,KAAK,GAAG,KAAK,QAAO,WAAU,IAAI,KAAK;AAAA,IACzE,gBAAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,QAAO;AAAA,QACP,iBAAgB;AAAA,QAChB,gBAAe;AAAA,QACf,kBAAkB;AAAA,QAClB,GAAE;AAAA,MAAA;AAAA,IACN;AAAA,IACA,gBAAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,MAAK;AAAA,QACL,GAAE;AAAA,MAAA;AAAA,IACN;AAAA,IACA,gBAAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,MAAK;AAAA,QACL,GAAE;AAAA,MAAA;AAAA,IACN;AAAA,IACA,gBAAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,MAAK;AAAA,QACL,GAAE;AAAA,MAAA;AAAA,IACN;AAAA,IACA,gBAAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,MAAK;AAAA,QACL,GAAE;AAAA,MAAA;AAAA,IACN;AAAA,IACA,gBAAAA,EAAC,QAAK,EAAA,OAAO,IAAI,QAAQ,IAAI,MAAK,WAAU,IAAI,IAAI,WAAU,4BAA4B,CAAA;AAAA,IAC1F,gBAAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,MAAK;AAAA,QACL,GAAE;AAAA,MAAA;AAAA,IACN;AAAA,IACA,gBAAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,MAAK;AAAA,QACL,GAAE;AAAA,MAAA;AAAA,IACN;AAAA,IACA,gBAAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,MAAK;AAAA,QACL,GAAE;AAAA,MAAA;AAAA,IACN;AAAA,IACA,gBAAAA,EAAC,YAAO,IAAI,IAAI,IAAI,QAAQ,GAAG,IAAI,MAAK,UAAU,CAAA;AAAA,IAClD,gBAAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,MAAK;AAAA,QACL,GAAE;AAAA,MAAA;AAAA,IACN;AAAA,EAAA,GACJ;AAAA,oBACC,QACG,EAAA,UAAA;AAAA,IAAC,gBAAAA,EAAA,YAAA,EAAS,IAAG,KACT,UAAA,gBAAAA,EAAC,UAAK,MAAK,QAAO,GAAE,kBAAA,CAAkB,EAC1C,CAAA;AAAA,IACC,gBAAAA,EAAA,YAAA,EAAS,IAAG,KACT,4BAAC,QAAK,EAAA,OAAO,KAAK,QAAQ,KAAK,MAAK,QAAO,IAAI,EAAG,CAAA,GACtD;AAAA,IACC,gBAAAsY,EAAA,kBAAA,EAAe,IAAG,KAAI,IAAI,QAAQ,IAAI,QAAQ,IAAI,OAAO,IAAI,SAAS,eAAc,kBACjF,UAAA;AAAA,MAAC,gBAAAtY,EAAA,QAAA,EAAK,WAAU,UAAU,CAAA;AAAA,MACzB,gBAAAA,EAAA,QAAA,EAAK,QAAQ,GAAG,WAAU,WAAU;AAAA,IAAA,GACzC;AAAA,EAAA,GACJ;AAAA,GACJ,GClES2kB,KAAuB,CAACvpC,MACjC,gBAAAk9B,EAAC,SAAI,OAAM,8BAA6B,OAAO,KAAK,QAAQ,KAAK,MAAK,QAAQ,GAAGl9B,GAC7E,UAAA;AAAA,EAAC,gBAAAk9B,EAAA,KAAA,EAAE,UAAS,WACR,UAAA;AAAA,IAAC,gBAAAA,EAAA,KAAA,EAAE,UAAS,WACR,UAAA;AAAA,MAAA,gBAAAtY,EAAC,QAAK,EAAA,MAAK,WAAU,GAAE,mBAAkB;AAAA,MACzC,gBAAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACG,QAAO;AAAA,UACP,iBAAgB;AAAA,UAChB,kBAAkB;AAAA,UAClB,GAAE;AAAA,QAAA;AAAA,MACN;AAAA,MACA,gBAAAA,EAAC,QAAK,EAAA,IAAG,KAAI,MAAK,QACd,UAAC,gBAAAA,EAAA,QAAA,EAAK,GAAE,uBAAA,CAAuB,EACnC,CAAA;AAAA,MACC,gBAAAA,EAAA,QAAA,EAAK,MAAK,WAAU,GAAE,wBAAuB;AAAA,wBAC7C,QAAK,EAAA,MAAK,WAAU,GAAE,sBAAqB,MAAK,WAAU;AAAA,IAAA,GAC/D;AAAA,IACC,gBAAAA,EAAA,QAAA,EAAK,OAAO,KAAK,QAAQ,KAAK,GAAG,KAAK,GAAG,KAAK,QAAO,WAAU,IAAI,KAAK;AAAA,IACzE,gBAAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,MAAK;AAAA,QACL,GAAE;AAAA,MAAA;AAAA,IACN;AAAA,IACA,gBAAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,MAAK;AAAA,QACL,aAAa;AAAA,QACb,GAAE;AAAA,MAAA;AAAA,IACN;AAAA,IACC,gBAAAA,EAAA,QAAA,EAAK,MAAK,WAAU,GAAE,wEAAuE;AAAA,IAC9F,gBAAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,MAAK;AAAA,QACL,QAAO;AAAA,QACP,kBAAkB;AAAA,QAClB,GAAE;AAAA,MAAA;AAAA,IACN;AAAA,IACA,gBAAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,MAAK;AAAA,QACL,aAAa;AAAA,QACb,GAAE;AAAA,MAAA;AAAA,IACN;AAAA,IACC,gBAAAA,EAAA,QAAA,EAAK,MAAK,WAAU,GAAE,uEAAsE;AAAA,IAC7F,gBAAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,MAAK;AAAA,QACL,QAAO;AAAA,QACP,kBAAkB;AAAA,QAClB,GAAE;AAAA,MAAA;AAAA,IACN;AAAA,IACA,gBAAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,MAAK;AAAA,QACL,aAAa;AAAA,QACb,GAAE;AAAA,MAAA;AAAA,IACN;AAAA,IACC,gBAAAA,EAAA,QAAA,EAAK,MAAK,WAAU,GAAE,wEAAuE;AAAA,IAC9F,gBAAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,MAAK;AAAA,QACL,QAAO;AAAA,QACP,kBAAkB;AAAA,QAClB,GAAE;AAAA,MAAA;AAAA,IACN;AAAA,IACA,gBAAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,MAAK;AAAA,QACL,aAAa;AAAA,QACb,GAAE;AAAA,MAAA;AAAA,IACN;AAAA,IACC,gBAAAA,EAAA,QAAA,EAAK,MAAK,WAAU,GAAE,uEAAsE;AAAA,IAC7F,gBAAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,MAAK;AAAA,QACL,QAAO;AAAA,QACP,kBAAkB;AAAA,QAClB,GAAE;AAAA,MAAA;AAAA,IACN;AAAA,IACA,gBAAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,MAAK;AAAA,QACL,aAAa;AAAA,QACb,GAAE;AAAA,MAAA;AAAA,IACN;AAAA,IACC,gBAAAA,EAAA,QAAA,EAAK,MAAK,WAAU,GAAE,wEAAuE;AAAA,IAC7F,gBAAAA,EAAA,QAAA,EAAK,MAAK,QAAO,GAAE,4EAA2E;AAAA,IAC9F,gBAAAA,EAAA,QAAA,EAAK,MAAK,QAAO,GAAE,4EAA2E;AAAA,IAC/F,gBAAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,MAAK;AAAA,QACL,GAAE;AAAA,MAAA;AAAA,IACN;AAAA,IACC,gBAAAA,EAAA,QAAA,EAAK,MAAK,WAAU,GAAE,qEAAoE;AAAA,IAC1F,gBAAAA,EAAA,QAAA,EAAK,MAAK,QAAO,GAAE,6EAA4E;AAAA,IAC/F,gBAAAA,EAAA,QAAA,EAAK,MAAK,QAAO,GAAE,6EAA4E;AAAA,IAChG,gBAAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,MAAK;AAAA,QACL,GAAE;AAAA,MAAA;AAAA,IACN;AAAA,IACC,gBAAAA,EAAA,QAAA,EAAK,MAAK,WAAU,GAAE,uEAAsE;AAAA,EAAA,GACjG;AAAA,oBACC,QACG,EAAA,UAAA;AAAA,IAAC,gBAAAA,EAAA,YAAA,EAAS,IAAG,KACT,UAAA,gBAAAA,EAAC,UAAK,MAAK,QAAO,GAAE,kBAAA,CAAkB,EAC1C,CAAA;AAAA,IACC,gBAAAA,EAAA,YAAA,EAAS,IAAG,KACT,4BAAC,QAAK,EAAA,OAAO,KAAK,QAAQ,KAAK,MAAK,QAAO,IAAI,EAAG,CAAA,GACtD;AAAA,IACC,gBAAAsY,EAAA,kBAAA,EAAe,IAAG,KAAI,IAAI,QAAQ,IAAI,QAAQ,IAAI,OAAO,IAAI,SAAS,eAAc,kBACjF,UAAA;AAAA,MAAC,gBAAAtY,EAAA,QAAA,EAAK,WAAU,UAAU,CAAA;AAAA,MACzB,gBAAAA,EAAA,QAAA,EAAK,QAAQ,GAAG,WAAU,WAAU;AAAA,IAAA,GACzC;AAAA,EAAA,GACJ;AAAA,GACJ,GCvGS4kB,KAAkB,CAACxpC,MAC5B,gBAAAk9B,EAAC,SAAI,OAAM,8BAA6B,OAAO,KAAK,QAAQ,KAAK,MAAK,QAAQ,GAAGl9B,GAC7E,UAAA;AAAA,EAAC,gBAAAk9B,EAAA,KAAA,EAAE,UAAS,WACR,UAAA;AAAA,IAAC,gBAAAA,EAAA,KAAA,EAAE,UAAS,WACR,UAAA;AAAA,MAAA,gBAAAtY,EAAC,QAAK,EAAA,MAAK,WAAU,GAAE,mBAAkB;AAAA,MACzC,gBAAAA,EAAC,QAAK,EAAA,IAAG,KAAI,MAAK,QACd,UAAC,gBAAAA,EAAA,QAAA,EAAK,GAAE,uBAAA,CAAuB,EACnC,CAAA;AAAA,MACC,gBAAAA,EAAA,QAAA,EAAK,MAAK,WAAU,GAAE,wBAAuB;AAAA,wBAC7C,QAAK,EAAA,MAAK,WAAU,GAAE,sBAAqB,MAAK,WAAU;AAAA,IAAA,GAC/D;AAAA,IACC,gBAAAA,EAAA,QAAA,EAAK,OAAO,KAAK,QAAQ,KAAK,GAAG,KAAK,GAAG,KAAK,QAAO,WAAU,IAAI,KAAK;AAAA,IACzE,gBAAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,MAAK;AAAA,QACL,GAAE;AAAA,MAAA;AAAA,IACN;AAAA,IACA,gBAAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,MAAK;AAAA,QACL,UAAS;AAAA,QACT,GAAE;AAAA,QACF,UAAS;AAAA,MAAA;AAAA,IACb;AAAA,IACA,gBAAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,MAAK;AAAA,QACL,GAAE;AAAA,MAAA;AAAA,IACN;AAAA,EAAA,GACJ;AAAA,oBACC,QACG,EAAA,UAAA;AAAA,IAAC,gBAAAA,EAAA,YAAA,EAAS,IAAG,KACT,UAAA,gBAAAA,EAAC,UAAK,MAAK,QAAO,GAAE,kBAAA,CAAkB,EAC1C,CAAA;AAAA,IACC,gBAAAA,EAAA,YAAA,EAAS,IAAG,KACT,4BAAC,QAAK,EAAA,OAAO,KAAK,QAAQ,KAAK,MAAK,QAAO,IAAI,EAAG,CAAA,GACtD;AAAA,IACC,gBAAAsY,EAAA,kBAAA,EAAe,IAAG,KAAI,IAAI,QAAQ,IAAI,QAAQ,IAAI,OAAO,IAAI,SAAS,eAAc,kBACjF,UAAA;AAAA,MAAC,gBAAAtY,EAAA,QAAA,EAAK,WAAU,UAAU,CAAA;AAAA,MACzB,gBAAAA,EAAA,QAAA,EAAK,QAAQ,GAAG,WAAU,WAAU;AAAA,IAAA,GACzC;AAAA,EAAA,GACJ;AAAA,GACJ,GCnCS6kB,KAAmB;AAAA,EAC5B,oCAAoC;AACxC,GAEaC,KAAoB;AAAA,EAC7B,mBAAmBtG,GAAiB;AAAA,EACpC,eAAeA,GAAiB;AAAA,EAChC,QAAQ;AAAA,EACR,aAAa;AACjB,GAEMuG,KAA0C;AAAA,EAC5C,MAAMD,GAAkB;AAAA,EACxB,OAAO,0BAA0BrG,KAA6B,KAAK,kCAAkC;AAAA,EACrG,SAAS;AAAA,EACT,aAAa;AAAA;AAAA,EAEb,cAAc;AAAA,IACV,SAAS;AAAA,IACT,YAAY;AAAA;AAAA;AAAA,EAGhB;AAAA,EACA,OAAOkG;AAAA,EACP,eAAe;AACnB,GAEMK,KAAsC;AAAA,EACxC,MAAMF,GAAkB;AAAA,EACxB,OAAO;AAAA,EACP,SAAS;AAAA,EACT,aAAa;AAAA;AAAA,EAEb,cAAc;AAAA,IACV,SAAS;AAAA,IACT,YAAY;AAAA;AAAA;AAAA,EAGhB;AAAA,EACA,OAAON;AAAA,EACP,eAAe;AACnB,GAEMS,KAA+B;AAAA,EACjC,MAAMH,GAAkB;AAAA,EACxB,OAAO;AAAA,EACP,SAAS;AAAA,EACT,aAAa;AAAA,EACb,cAAc;AAAA,IACV,SAAS;AAAA;AAAA,IAET,YAAY;AAAA;AAAA;AAAA,EAGhB;AAAA,EACA,OAAOL;AAAA,EACP,eAAe;AACnB,GAEMS,KAAoC;AAAA,EACtC,MAAMJ,GAAkB;AAAA,EACxB,OAAO;AAAA,EACP,SAAS;AAAA,EACT,aAAa;AAAA,EACb,cAAc;AAAA,IACV,SAAS;AAAA,EACb;AAAA,EACA,OAAOJ;AAAA,EACP,eAAe;AACnB,GAEaS,KAA2B;AAAA,EACpCJ;AAAA,EACAC;AAAA,EACAC;AAAA,EACAC;AACJ,GAEME,KAAuC;AAAA,EACzC,aAAa;AAAA,EACb,OAAO;AACX,GAEaC,KAA6C;AAAA,EACtD,CAACP,GAAkB,iBAAiB,GAAGM;AAAA,EACvC,CAACN,GAAkB,aAAa,GAAGM;AAAA,EACnC,CAACN,GAAkB,MAAM,GAAGM;AAAA,EAC5B,CAACN,GAAkB,WAAW,GAAGM;AACrC,GCtFaE,KAAiB,CAAC,EAAE,QAAAlmB,GAAQ,SAAAyY,QAA0B;;AAC/D,QAAM,EAAE,qBAAA0N,GAAqB,mBAAArD,EAAkB,IAAIiB,GAA8B,GAC3E,EAAE,YAAAG,MAAeE,MACjBvB,KAAkCz2D,IAAA83D,EAAW,SAASwB,GAAkB,iBAAiB,MAAvD,gBAAAt5D,EAA0D;AAG9F,SAAA,gBAAAw0C;AAAA,IAAC+hB;AAAA,IAAA;AAAA,MACG,YAAYwD;AAAA,MACZ,QAAAnmB;AAAA,MACA,SAAAyY;AAAA,MACA,UAAUqK;AAAA,MACV,iCAAAD;AAAA,IAAA;AAAA,EAAA;AAGZ;ACNO,MAAMuD,KAAezN,GAA8C,CAAC38B,GAAOo5B,MAAQ;AAChF,QAAA,EAAE,WAAAh2B,GAAW,QAAA4gB,GAAQ,SAAAyY,GAAS,OAAA4N,GAAO,QAAAC,IAAS,IAAO,UAAAj8B,IAAW,OAAW,IAAArO;AAE7E,SAAAgkB,KAAU,CAACqmB,KACX,QAAQ,MAAM,gGAAgG,GAI9G,gBAAAzlB;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,WAAWniB,GAAWW,GAAW,iBAAiBiL,GAAU;AAAA,QACxD,MAAM2V;AAAA,QACN,QAAAsmB;AAAA,MAAA,CACH;AAAA,MACD,KAAAlR;AAAA,MAEC,UAASiR,KAAA,gBAAAzlB,EAACylB,GAAM,EAAA,QAAArmB,GAAgB,SAAAyY,GAAkB;AAAA,IAAA;AAAA,EAAA;AAG/D,CAAC,GCjBY8N,KAAwB,CAACvqC,MAAsC;AACxE,QAAM,EAAE,QAAAqF,GAAQ,OAAAglC,GAAO,uBAAAG,GAAuB,QAAAF,IAAS,IAAO,UAAAj8B,IAAW,QAAQ,KAAKpI,IAAM,OAAO,SAAAw2B,EAAA,IAAYz8B,GACzG,CAACgkB,GAAQymB,CAAS,IAAIxlB,GAAkB,EAAK,GAC7CylB,IAAatc,GAA2B,IAAI,GAE5CzoB,IAAQJ,GAAY,YAAY;AAClC,IAAAklC,EAAU,EAAK,GAEf,OAAMhO,KAAA,gBAAAA;AAAA,EAAU,GACjB,CAACA,CAAO,CAAC,GAEN9M,IAAS,MAAM;AACjB,QAAI3L,GAAQ;AACF,MAAAre;AACN;AAAA,IACJ;AAEA,IAAA8kC,EAAU,EAAI;AAAA,EAAA,GAGZzR,IAAO,CAAChV,KAAUsmB;AAKN,SAAApR,GAAA,EAAE,WAAW,WAAW,SAASvzB,GAAO,KAAK+kC,GAAY,MAAA1R,GAAM,GAEjFD,GAAiB,EAAE,SAASpzB,GAAO,MAAAqzB,EAAM,CAAA,GAGrC,gBAAAkE,EAACj3B,GAAI,EAAA,KAAKykC,GACN,UAAA;AAAA,IAAA,gBAAA9lB,EAACvf,GAAO,EAAA,QAAQ2e,GAAQ,SAAS2L,GAAQ;AAAA,IAEzC,gBAAA/K;AAAA,MAACwlB;AAAA,MAAA;AAAA,QACG,WAAWI;AAAA,QACX,QAAAxmB;AAAA,QACA,SAASre;AAAA,QACT,OAAA0kC;AAAA,QACA,QAAAC;AAAA,QACA,UAAAj8B;AAAA,MAAA;AAAA,IACJ;AAAA,EACJ,EAAA,CAAA;AAER;AC/CO,MAAMs8B,KAAkB,CAAC,EAAE,QAAAtlC,IAASq8B,SAA4C;AAC7E,QAAA,EAAE,mBAAA7R,MAAsBN;AAG1B,SAAA,gBAAA3K;AAAA,IAAC2lB;AAAA,IAAA;AAAA,MACG,QAAAllC;AAAA,MACA,OAAO6kC;AAAA,MACP,uBAAsB;AAAA,MACtB,QAAQra;AAAA,IAAA;AAAA,EAAA;AAGpB;ACJA,IAAI+a,KAAgB,SAAS/7D,GAAGd,GAAG;AAC/B,SAAA68D,KAAgB,OAAO,kBAClB,EAAE,WAAW,CAAA,eAAgB,SAAS,SAAU/7D,GAAGd,GAAG;AAAE,IAAAc,EAAE,YAAYd;AAAA,EAAE,KACzE,SAAUc,GAAGd,GAAG;AAAE,aAASwB,KAAKxB;AAAG,MAAI,OAAO,UAAU,eAAe,KAAKA,GAAGwB,CAAC,MAAGV,EAAEU,CAAC,IAAIxB,EAAEwB,CAAC;AAAA,KAC1Fq7D,GAAc/7D,GAAGd,CAAC;AAC7B;AAEA,SAAS88D,GAAUh8D,GAAGd,GAAG;AACrB,MAAI,OAAOA,KAAM,cAAcA,MAAM;AACjC,UAAM,IAAI,UAAU,yBAAyB,OAAOA,CAAC,IAAI,+BAA+B;AAC5F,EAAA68D,GAAc/7D,GAAGd,CAAC;AAClB,WAAS+8D,IAAK;AAAE,SAAK,cAAcj8D;AAAA,EAAI;AACvC,EAAAA,EAAE,YAAYd,MAAM,OAAO,OAAO,OAAOA,CAAC,KAAK+8D,EAAG,YAAY/8D,EAAE,WAAW,IAAI+8D,EAAI;AACvF;AAEA,IAAIxgB,KAAW,WAAW;AACtB,SAAAA,KAAW,OAAO,UAAU,SAAkBt8C,GAAG;AAC7C,aAASS,GAAGP,IAAI,GAAGC,IAAI,UAAU,QAAQD,IAAIC,GAAGD,KAAK;AACjD,MAAAO,IAAI,UAAUP,CAAC;AACf,eAASqB,KAAKd;AAAG,QAAI,OAAO,UAAU,eAAe,KAAKA,GAAGc,CAAC,MAAGvB,EAAEuB,CAAC,IAAId,EAAEc,CAAC;AAAA,IAC9E;AACD,WAAOvB;AAAA,EACf,GACWs8C,GAAS,MAAM,MAAM,SAAS;AACzC;AAEA,SAASC,GAAO97C,GAAGZ,GAAG;AAClB,MAAIG,IAAI,CAAA;AACR,WAASuB,KAAKd;AAAG,IAAI,OAAO,UAAU,eAAe,KAAKA,GAAGc,CAAC,KAAK1B,EAAE,QAAQ0B,CAAC,IAAI,MAC9EvB,EAAEuB,CAAC,IAAId,EAAEc,CAAC;AACd,MAAId,KAAK,QAAQ,OAAO,OAAO,yBAA0B;AACrD,aAASP,IAAI,GAAGqB,IAAI,OAAO,sBAAsBd,CAAC,GAAGP,IAAIqB,EAAE,QAAQrB;AAC/D,MAAIL,EAAE,QAAQ0B,EAAErB,CAAC,CAAC,IAAI,KAAK,OAAO,UAAU,qBAAqB,KAAKO,GAAGc,EAAErB,CAAC,CAAC,MACzEF,EAAEuB,EAAErB,CAAC,CAAC,IAAIO,EAAEc,EAAErB,CAAC,CAAC;AAE5B,SAAOF;AACX;AAEA,SAAS+8D,GAAUC,GAASC,GAAYt7D,GAAGu7D,GAAW;AAClD,WAASC,EAAMhqC,GAAO;AAAE,WAAOA,aAAiBxxB,IAAIwxB,IAAQ,IAAIxxB,EAAE,SAAUisC,GAAS;AAAE,MAAAA,EAAQza,CAAK;AAAA,IAAE,CAAE;AAAA,EAAI;AAC5G,SAAO,KAAKxxB,MAAMA,IAAI,UAAU,SAAUisC,GAASyU,GAAQ;AACvD,aAAS+a,EAAUjqC,GAAO;AAAE,UAAI;AAAE,QAAAY,EAAKmpC,EAAU,KAAK/pC,CAAK,CAAC;AAAA,MAAE,SAAUtzB,GAAG;AAAE,QAAAwiD,EAAOxiD,CAAC;AAAA;IAAM;AAC3F,aAASw9D,EAASlqC,GAAO;AAAE,UAAI;AAAE,QAAAY,EAAKmpC,EAAU,MAAS/pC,CAAK,CAAC;AAAA,MAAI,SAAQtzB,GAAG;AAAE,QAAAwiD,EAAOxiD,CAAC;AAAA;IAAM;AAC9F,aAASk0B,EAAKyB,GAAQ;AAAE,MAAAA,EAAO,OAAOoY,EAAQpY,EAAO,KAAK,IAAI2nC,EAAM3nC,EAAO,KAAK,EAAE,KAAK4nC,GAAWC,CAAQ;AAAA,IAAI;AAC9G,IAAAtpC,GAAMmpC,IAAYA,EAAU,MAAMF,GAASC,KAAc,CAAE,CAAA,GAAG,KAAI,CAAE;AAAA,EAC5E,CAAK;AACL;AAEA,SAASK,GAAYN,GAAS15B,GAAM;AAChC,MAAI1hC,IAAI,EAAE,OAAO,GAAG,MAAM,WAAW;AAAE,QAAI5B,EAAE,CAAC,IAAI;AAAG,YAAMA,EAAE,CAAC;AAAG,WAAOA,EAAE,CAAC;AAAA,EAAE,GAAI,MAAM,CAAA,GAAI,KAAK,CAAE,EAAA,GAAIc,GAAGlB,GAAGI,GAAGwB,IAAI,OAAO,QAAQ,OAAO,YAAa,aAAa,WAAW,QAAQ,SAAS;AAC/L,SAAOA,EAAE,OAAO+7D,EAAK,CAAC,GAAG/7D,EAAE,QAAW+7D,EAAK,CAAC,GAAG/7D,EAAE,SAAY+7D,EAAK,CAAC,GAAG,OAAO,UAAW,eAAe/7D,EAAE,OAAO,QAAQ,IAAI,WAAW;AAAE,WAAO;AAAA,EAAO,IAAGA;AAC1J,WAAS+7D,EAAKp9D,GAAG;AAAE,WAAO,SAAU2B,GAAG;AAAE,aAAOiyB,EAAK,CAAC5zB,GAAG2B,CAAC,CAAC;AAAA,IAAI;AAAA,EAAG;AAClE,WAASiyB,EAAKypC,GAAI;AACd,QAAI18D;AAAG,YAAM,IAAI,UAAU,iCAAiC;AAC5D,WAAOU,MAAMA,IAAI,GAAGg8D,EAAG,CAAC,MAAM57D,IAAI,KAAKA;AAAG,UAAI;AAC1C,YAAId,IAAI,GAAGlB,MAAMI,IAAIw9D,EAAG,CAAC,IAAI,IAAI59D,EAAE,SAAY49D,EAAG,CAAC,IAAI59D,EAAE,WAAcI,IAAIJ,EAAE,WAAcI,EAAE,KAAKJ,CAAC,GAAG,KAAKA,EAAE,SAAS,EAAEI,IAAIA,EAAE,KAAKJ,GAAG49D,EAAG,CAAC,CAAC,GAAG;AAAM,iBAAOx9D;AAE3J,gBADIJ,IAAI,GAAGI,MAAGw9D,IAAK,CAACA,EAAG,CAAC,IAAI,GAAGx9D,EAAE,KAAK,IAC9Bw9D,EAAG,CAAC,GAAC;AAAA,UACT,KAAK;AAAA,UAAG,KAAK;AAAG,YAAAx9D,IAAIw9D;AAAI;AAAA,UACxB,KAAK;AAAG,mBAAA57D,EAAE,SAAgB,EAAE,OAAO47D,EAAG,CAAC,GAAG,MAAM,GAAK;AAAA,UACrD,KAAK;AAAG,YAAA57D,EAAE,SAAShC,IAAI49D,EAAG,CAAC,GAAGA,IAAK,CAAC,CAAC;AAAG;AAAA,UACxC,KAAK;AAAG,YAAAA,IAAK57D,EAAE,IAAI,OAAOA,EAAE,KAAK,IAAG;AAAI;AAAA,UACxC;AACI,gBAAM5B,IAAI4B,EAAE,MAAM,EAAA5B,IAAIA,EAAE,SAAS,KAAKA,EAAEA,EAAE,SAAS,CAAC,OAAOw9D,EAAG,CAAC,MAAM,KAAKA,EAAG,CAAC,MAAM,IAAI;AAAE,cAAA57D,IAAI;AAAG;AAAA,YAAW;AAC5G,gBAAI47D,EAAG,CAAC,MAAM,MAAM,CAACx9D,KAAMw9D,EAAG,CAAC,IAAIx9D,EAAE,CAAC,KAAKw9D,EAAG,CAAC,IAAIx9D,EAAE,CAAC,IAAK;AAAE,cAAA4B,EAAE,QAAQ47D,EAAG,CAAC;AAAG;AAAA,YAAQ;AACtF,gBAAIA,EAAG,CAAC,MAAM,KAAK57D,EAAE,QAAQ5B,EAAE,CAAC,GAAG;AAAE,cAAA4B,EAAE,QAAQ5B,EAAE,CAAC,GAAGA,IAAIw9D;AAAI;AAAA,YAAQ;AACrE,gBAAIx9D,KAAK4B,EAAE,QAAQ5B,EAAE,CAAC,GAAG;AAAE,cAAA4B,EAAE,QAAQ5B,EAAE,CAAC,GAAG4B,EAAE,IAAI,KAAK47D,CAAE;AAAG;AAAA,YAAQ;AACnE,YAAIx9D,EAAE,CAAC,KAAG4B,EAAE,IAAI,IAAG,GACnBA,EAAE,KAAK,IAAK;AAAE;AAAA,QACrB;AACD,QAAA47D,IAAKl6B,EAAK,KAAK05B,GAASp7D,CAAC;AAAA,MAC5B,SAAQ/B,GAAG;AAAE,QAAA29D,IAAK,CAAC,GAAG39D,CAAC,GAAGD,IAAI;AAAA,MAAE,UAAW;AAAE,QAAAkB,IAAId,IAAI;AAAA,MAAI;AAC1D,QAAIw9D,EAAG,CAAC,IAAI;AAAG,YAAMA,EAAG,CAAC;AAAG,WAAO,EAAE,OAAOA,EAAG,CAAC,IAAIA,EAAG,CAAC,IAAI,QAAQ,MAAM;EAC7E;AACL;AAOA,SAAS39D,GAAEA,GAAEG,GAAE;AAAC,MAAIE,IAAE;AAAG,WAAQ,KAAKL;AAAE,WAAO,UAAU,eAAe,KAAKA,GAAE,CAAC,KAAGG,EAAE,QAAQ,CAAC,IAAE,MAAIE,EAAE,CAAC,IAAEL,EAAE,CAAC;AAAG,MAASA,KAAN,QAAqB,OAAO,OAAO,yBAA1B,YAAgD;AAAC,QAAIM,IAAE;AAAE,SAAI,IAAE,OAAO,sBAAsBN,CAAC,GAAEM,IAAE,EAAE,QAAOA;AAAI,MAAAH,EAAE,QAAQ,EAAEG,CAAC,CAAC,IAAE,KAAG,OAAO,UAAU,qBAAqB,KAAKN,GAAE,EAAEM,CAAC,CAAC,MAAID,EAAE,EAAEC,CAAC,CAAC,IAAEN,EAAE,EAAEM,CAAC,CAAC;AAAA,EAAG;AAAC,SAAOD;AAAC;AAAqD,IAAIF,KAAe,OAAO,aAApB,MAA+B,aAAwB,OAAO,SAApB,MAA2B,SAAoB,OAAO,SAApB,MAA2B,SAAoB,OAAO,OAApB,MAAyB,OAAK,CAAA;AAAG,SAASE,GAAEL,GAAE;AAAC,SAAOA,KAAGA,EAAE,cAAY,OAAO,UAAU,eAAe,KAAKA,GAAE,SAAS,IAAEA,EAAE,UAAQA;AAAC;AAAC,SAASI,GAAEJ,GAAEG,GAAE;AAAC,SAAOH,EAAEG,IAAE,EAAC,SAAQ,CAAE,EAAA,GAAEA,EAAE,OAAO,GAAEA,EAAE;AAAO;AAAC,IAAIG,KAAEF,GAAG,SAASJ,GAAEG,GAAE;AAAC,SAAO,eAAeA,GAAE,cAAa,EAAC,OAAM,GAAE,CAAC;AAAE,MAAIE,IAAE,WAAU;AAAC,aAASL,IAAG;AAAC,UAAIA,IAAE;AAAK,WAAK,SAAO,oBAAI,OAAI,KAAK,cAAY,SAASG,GAAEE,GAAE;AAAC,YAAID,IAAEJ,EAAE,OAAO,IAAIG,CAAC;AAAE,QAASC,MAAT,SAAoBC,MAAT,SAAWL,EAAE,OAAO,IAAIG,GAAE,CAAE,CAAA,IAAEH,EAAE,OAAO,IAAIG,GAAE,CAACE,CAAC,CAAC,IAAWA,MAAT,WAAaD,EAAE,QAAQC,CAAC,GAAEL,EAAE,OAAO,IAAIG,GAAEC,CAAC;AAAA,MAAG,GAAE,KAAK,WAAS,SAASD,GAAE;AAAC,eAAOH,EAAE,OAAO,IAAIG,CAAC;AAAA,MAAC,GAAE,KAAK,OAAK,SAASA,GAAE;AAAC,eAAO,IAAI,QAAS,SAASE,GAAED,GAAE;AAAC,UAAAJ,EAAE,SAASG,CAAC,IAAEH,EAAE,YAAYG,GAAEE,CAAC,KAAGL,EAAE,YAAYG,CAAC,GAAEE,EAAC;AAAA,QAAI,CAAG;AAAA,MAAA,GAAE,KAAK,SAAO,SAASF,GAAE;AAAC,YAAIE,IAAEL,EAAE,OAAO,IAAIG,CAAC;AAAE,YAAYE,MAAT,UAAgBA,EAAE,WAAN,GAAa;AAAC,cAAID,IAAEC,EAAE,IAAG;AAAG,UAAAL,EAAE,OAAO,IAAIG,GAAEE,CAAC,GAAWD,MAAT,UAAY,WAAWA,GAAE,CAAC;AAAA,QAAE;AAAM,UAAAJ,EAAE,OAAO,OAAOG,CAAC;AAAA,MAAE;AAAA,IAAE;AAAC,WAAOH,EAAE,cAAY,WAAU;AAAC,aAAgBA,EAAE,aAAX,WAAsBA,EAAE,WAAS,IAAIA,MAAGA,EAAE;AAAA,IAAQ,GAAEA;AAAA,EAAC,EAAC;AAAG,EAAAG,EAAE,UAAQ,WAAU;AAAC,WAAOE,EAAE,YAAa;AAAA,EAAA;AAAE;AAAIA,GAAEC,EAAC;AAAE,IAAIK,KAAEN,GAAED,GAAG,SAASJ,GAAEK,GAAE;AAAC,MAAID,IAAED,MAAGA,GAAE,aAAW,SAASH,GAAEG,GAAEE,GAAED,GAAE;AAAC,WAAO,KAAIC,MAAIA,IAAE,UAAW,SAASC,GAAEK,GAAE;AAAC,eAASJ,EAAEP,GAAE;AAAC,YAAG;AAAC,UAAAa,EAAET,EAAE,KAAKJ,CAAC,CAAC;AAAA,QAAE,SAAOA,GAAE;AAAC,UAAAW,EAAEX,CAAC;AAAA,QAAE;AAAA,MAAC;AAAC,eAASY,EAAEZ,GAAE;AAAC,YAAG;AAAC,UAAAa,EAAET,EAAE,MAAMJ,CAAC,CAAC;AAAA,QAAE,SAAOA,GAAE;AAAC,UAAAW,EAAEX,CAAC;AAAA,QAAE;AAAA,MAAC;AAAC,eAASa,EAAEb,GAAE;AAAC,QAAAA,EAAE,OAAKM,EAAEN,EAAE,KAAK,IAAE,IAAIK,EAAG,SAASF,GAAE;AAAC,UAAAA,EAAEH,EAAE,KAAK;AAAA,QAAE,GAAI,KAAKO,GAAEK,CAAC;AAAA,MAAE;AAAC,MAAAC,GAAGT,IAAEA,EAAE,MAAMJ,GAAEG,KAAG,CAAE,CAAA,GAAG,KAAI,CAAE;AAAA,IAAE,CAAC;AAAA,EAAE,GAAEQ,IAAER,MAAGA,GAAE,eAAa,SAASH,GAAEG,GAAE;AAAC,QAAIE,GAAED,GAAEE,GAAEK,GAAEJ,IAAE,EAAC,OAAM,GAAE,MAAK,WAAU;AAAC,UAAG,IAAED,EAAE,CAAC;AAAE,cAAMA,EAAE,CAAC;AAAE,aAAOA,EAAE,CAAC;AAAA,IAAC,GAAE,MAAK,CAAA,GAAG,KAAI,CAAA,EAAE;AAAE,WAAOK,IAAE,EAAC,MAAKC,EAAE,CAAC,GAAE,OAAMA,EAAE,CAAC,GAAE,QAAOA,EAAE,CAAC,EAAC,GAAc,OAAO,UAAnB,eAA4BD,EAAE,OAAO,QAAQ,IAAE,WAAU;AAAC,aAAO;AAAA,IAAI,IAAGA;AAAE,aAASC,EAAED,GAAE;AAAC,aAAO,SAASC,GAAE;AAAC,eAAO,SAASD,GAAE;AAAC,cAAGN;AAAE,kBAAM,IAAI,UAAU,iCAAiC;AAAE,iBAAKE;AAAG,gBAAG;AAAC,kBAAGF,IAAE,GAAED,MAAIE,IAAE,IAAEK,EAAE,CAAC,IAAEP,EAAE,SAAOO,EAAE,CAAC,IAAEP,EAAE,WAASE,IAAEF,EAAE,WAASE,EAAE,KAAKF,CAAC,GAAE,KAAGA,EAAE,SAAO,EAAEE,IAAEA,EAAE,KAAKF,GAAEO,EAAE,CAAC,CAAC,GAAG;AAAK,uBAAOL;AAAE,sBAAOF,IAAE,GAAEE,MAAIK,IAAE,CAAC,IAAEA,EAAE,CAAC,GAAEL,EAAE,KAAK,IAAGK,EAAE,CAAC,GAAG;AAAA,gBAAA,KAAK;AAAA,gBAAE,KAAK;AAAE,kBAAAL,IAAEK;AAAE;AAAA,gBAAM,KAAK;AAAE,yBAAOJ,EAAE,SAAQ,EAAC,OAAMI,EAAE,CAAC,GAAE,MAAK,GAAE;AAAA,gBAAE,KAAK;AAAE,kBAAAJ,EAAE,SAAQH,IAAEO,EAAE,CAAC,GAAEA,IAAE,CAAC,CAAC;AAAE;AAAA,gBAAS,KAAK;AAAE,kBAAAA,IAAEJ,EAAE,IAAI,IAAK,GAACA,EAAE,KAAK,IAAK;AAAC;AAAA,gBAAS;AAAQ,sBAAKD,IAAEC,EAAE,MAAM,GAAAD,IAAEA,EAAE,SAAO,KAAGA,EAAEA,EAAE,SAAO,CAAC,MAAQK,EAAE,CAAC,MAAP,KAAcA,EAAE,CAAC,MAAP,IAAU;AAAC,oBAAAJ,IAAE;AAAE;AAAA,kBAAQ;AAAC,sBAAOI,EAAE,CAAC,MAAP,MAAW,CAACL,KAAGK,EAAE,CAAC,IAAEL,EAAE,CAAC,KAAGK,EAAE,CAAC,IAAEL,EAAE,CAAC,IAAG;AAAC,oBAAAC,EAAE,QAAMI,EAAE,CAAC;AAAE;AAAA,kBAAK;AAAC,sBAAOA,EAAE,CAAC,MAAP,KAAUJ,EAAE,QAAMD,EAAE,CAAC,GAAE;AAAC,oBAAAC,EAAE,QAAMD,EAAE,CAAC,GAAEA,IAAEK;AAAE;AAAA,kBAAK;AAAC,sBAAGL,KAAGC,EAAE,QAAMD,EAAE,CAAC,GAAE;AAAC,oBAAAC,EAAE,QAAMD,EAAE,CAAC,GAAEC,EAAE,IAAI,KAAKI,CAAC;AAAE;AAAA,kBAAK;AAAC,kBAAAL,EAAE,CAAC,KAAGC,EAAE,IAAI,IAAK,GAACA,EAAE,KAAK,IAAG;AAAG;AAAA,cAAQ;AAAC,cAAAI,IAAER,EAAE,KAAKH,GAAEO,CAAC;AAAA,YAAE,SAAOP,GAAE;AAAC,cAAAW,IAAE,CAAC,GAAEX,CAAC,GAAEI,IAAE;AAAA,YAAE,UAAC;AAAQ,cAAAC,IAAEC,IAAE;AAAA,YAAE;AAAC,cAAG,IAAEK,EAAE,CAAC;AAAE,kBAAMA,EAAE,CAAC;AAAE,iBAAO,EAAC,OAAMA,EAAE,CAAC,IAAEA,EAAE,CAAC,IAAE,QAAO,MAAK,GAAE;AAAA,QAAC,EAAE,CAACA,GAAEC,CAAC,CAAC;AAAA,MAAC;AAAA,IAAC;AAAA,EAAC,GAAE,IAAET;AAAE,SAAO,eAAeE,GAAE,cAAa,EAAC,OAAM,GAAE,CAAC;AAAE,MAAIO,IAAE,yBAAwBC,IAAE,EAAC,KAAI,SAASb,GAAE;AAAC,WAAOI,EAAE,GAAE,QAAO,QAAQ,WAAU;AAAC,aAAOO,EAAE,MAAM,SAASX,GAAE;AAAC,cAAM,IAAI,MAAM,aAAa;AAAA,MAAC,CAAC;AAAA,IAAE,CAAG;AAAA,EAAA,GAAE,SAAQ,SAASA,GAAE;AAAC,WAAOI,EAAE,GAAE,QAAO,QAAQ,WAAU;AAAC,aAAOO,EAAE,MAAM,SAASX,GAAE;AAAC,cAAM,IAAI,MAAM,aAAa;AAAA,MAAC;IAAG,CAAC;AAAA,EAAE,GAAE,OAAM,WAAU;AAAC,WAAOI,EAAE,GAAE,QAAO,QAAQ,WAAU;AAAC,aAAOO,EAAE,MAAM,SAASX,GAAE;AAAC,eAAO,CAAC,GAAE,OAAO,aAAa,MAAK,CAAE;AAAA,MAAC,CAAC;AAAA,IAAE,CAAG;AAAA,EAAA,GAAE,YAAW,SAASA,GAAE;AAAC,WAAOI,EAAE,GAAE,QAAO,QAAQ,WAAU;AAAC,aAAOO,EAAE,MAAM,SAASX,GAAE;AAAC,cAAM,IAAI,MAAM,aAAa;AAAA,MAAC,CAAG;AAAA,IAAA,CAAG;AAAA,EAAA,GAAE,SAAQ,SAASA,GAAEG,GAAE;AAAC,WAAOC,EAAE,GAAE,QAAO,QAAQ,WAAU;AAAC,aAAOO,EAAE,MAAM,SAASX,GAAE;AAAC,cAAM,IAAI,MAAM,aAAa;AAAA,MAAC,CAAG;AAAA,IAAA;EAAG,GAAE,SAAQ,SAASA,GAAE;AAAC,WAAO,OAAO,aAAa,IAAIA,CAAC;AAAA,EAAC,GAAE,aAAY,SAASA,GAAE;AAAC,WAAO,OAAO,aAAa,QAAQA,CAAC;AAAA,EAAC,GAAE,WAAU,WAAU;AAAC,WAAO,OAAO,aAAa,MAAK;AAAA,EAAE,GAAE,gBAAe,SAASA,GAAE;AAAC,WAAO,OAAO,aAAa,WAAWA,CAAC;AAAA,EAAC,GAAE,aAAY,SAASA,GAAEG,GAAE;AAAC,WAAO,OAAO,aAAa,QAAQH,GAAEG,CAAC;AAAA,EAAC,EAAC;AAAE,WAASa,EAAEhB,GAAE;AAAC,WAAO,IAAI,QAAS,SAASG,GAAE;AAAC,aAAO,WAAWA,GAAEH,CAAC;AAAA,IAAC,CAAC;AAAA,EAAE;AAAC,WAASe,EAAEf,GAAE;AAAC,aAAQG,IAAE,iEAAgEE,IAAE,IAAGD,IAAE,GAAEA,IAAEJ,GAAEI;AAAK,MAAAC,KAAGF,EAAE,KAAK,MAAM,KAAK,OAAQ,IAACA,EAAE,MAAM,CAAC;AAAG,WAAOE;AAAA,EAAC;AAAC,MAAIS,IAAE,WAAU;AAAC,aAASd,EAAEG,GAAE;AAAC,WAAK,iBAAe,oBAAI,OAAI,KAAK,iBAAe,QAAO,KAAK,KAAG,KAAK,IAAK,EAAC,SAAU,IAACY,EAAE,EAAE,GAAE,KAAK,cAAY,KAAK,YAAY,KAAK,IAAI,GAAE,KAAK,cAAY,KAAK,YAAY,KAAK,IAAI,GAAE,KAAK,yBAAuB,KAAK,uBAAuB,KAAK,IAAI,GAAE,KAAK,2BAAyB,KAAK,yBAAyB,KAAK,IAAI,GAAE,KAAK,2BAAyB,KAAK,yBAAyB,KAAK,IAAI,GAAE,KAAK,iBAAeZ,GAAWH,EAAE,YAAX,WAAqBA,EAAE,UAAQ;IAAI;AAAC,WAAOA,EAAE,UAAU,cAAY,SAASG,GAAEE,GAAE;AAAC,aAAgBA,MAAT,WAAaA,IAAE,MAAKD,EAAE,MAAK,QAAO,QAAQ,WAAU;AAAC,YAAIA,GAAEE,GAAEC,GAAEO,GAAEW,GAAEC,GAAER;AAAE,eAAOP,EAAE,MAAM,SAASA,GAAE;AAAC,kBAAOA,EAAE,OAAO;AAAA,YAAA,KAAK;AAAE,cAAAP,IAAE,KAAK,IAAK,IAACW,EAAE,CAAC,GAAET,IAAE,KAAK,QAAMD,GAAEE,IAAEK,IAAE,MAAIT,GAAEW,IAAW,KAAK,mBAAd,SAA6BD,IAAE,KAAK,gBAAeF,EAAE,QAAM;AAAA,YAAE,KAAK;AAAE,qBAAO,KAAK,IAAG,IAAGL,IAAE,CAAC,GAAEU,EAAE,EAAE,CAAC,IAAE,CAAC,GAAE,CAAC;AAAA,YAAE,KAAK;AAAE,qBAAOL,EAAE,KAAI,GAAUG,EAAE,YAAYP,CAAC,MAAtB,OAAwB,CAAC,GAAE,CAAC,KAAGkB,IAAE,KAAK,KAAG,MAAItB,IAAE,MAAIC,GAAE,CAAC,GAAEY,EAAE,KAAK,MAAM,KAAG,KAAK,OAAM,CAAE,CAAC,CAAC;AAAA,YAAG,KAAK;AAAE,qBAAOL,EAAE,QAAOG,EAAE,YAAYP,GAAE,KAAK,UAAU,EAAC,IAAG,KAAK,IAAG,KAAIH,GAAE,YAAWqB,GAAE,cAAa,KAAK,IAAK,GAAC,eAAc,KAAK,MAAK,CAAC,CAAC,GAAE,CAAC,GAAET,EAAE,EAAE,CAAC;AAAA,YAAE,KAAK;AAAE,qBAAOL,EAAE,KAAI,IAAWe,IAAEZ,EAAE,YAAYP,CAAC,OAAzB,SAA8BW,IAAE,KAAK,MAAMQ,CAAC,GAAG,OAAK,KAAK,MAAIR,EAAE,QAAMd,KAAG,KAAK,eAAe,IAAIA,CAAC,GAAE,KAAK,yBAAyBG,GAAEH,CAAC,GAAE,CAAC,GAAE,EAAE,KAAG,CAAC,GAAE,CAAC;AAAA,YAAE,KAAK;AAAE,qBAAOJ,EAAE,cAAuB,KAAK,mBAAd,SAA6Ba,IAAE,KAAK,cAAc,GAAE,CAAC,GAAE,KAAK,yBAAyBP,CAAC,CAAC;AAAA,YAAE,KAAK;AAAE,cAAAK,EAAE,QAAOA,EAAE,QAAM;AAAA,YAAE,KAAK;AAAE,qBAAOP,IAAE,KAAK,IAAK,IAACW,EAAE,CAAC,GAAE,CAAC,GAAE,CAAC;AAAA,YAAE,KAAK;AAAE,qBAAO,CAAC,GAAE,EAAE;AAAA,UAAC;AAAA,QAAC,CAAG;AAAA,MAAA,CAAG;AAAA,IAAA,GAAEf,EAAE,UAAU,2BAAyB,SAASA,GAAEG,GAAE;AAAC,aAAOC,EAAE,MAAK,QAAO,QAAQ,WAAU;AAAC,YAAIC,IAAE;AAAK,eAAOM,EAAE,MAAM,SAASJ,GAAE;AAAC,iBAAO,WAAY,WAAU;AAAC,mBAAOH,EAAEC,GAAE,QAAO,QAAQ,WAAU;AAAC,kBAAIA,GAAED,GAAEG;AAAE,qBAAOI,EAAE,MAAM,SAASA,GAAE;AAAC,wBAAOA,EAAE,OAAK;AAAA,kBAAE,KAAK;AAAE,2BAAO,CAAC,GAAEL,GAAE,QAAS,EAAC,KAAKH,CAAC,CAAC;AAAA,kBAAE,KAAK;AAAE,2BAAOQ,EAAE,QAAO,KAAK,eAAe,IAAIR,CAAC,KAAGE,IAAW,KAAK,mBAAd,SAA6BQ,IAAE,KAAK,iBAAuBT,IAAEC,EAAE,YAAYL,CAAC,OAAzB,QAA6BM,GAAE,QAAO,EAAG,OAAOH,CAAC,GAAE,CAAC,CAAC,OAAKI,IAAE,KAAK,MAAMH,CAAC,GAAG,gBAAc,KAAK,IAAG,GAAGC,EAAE,YAAYL,GAAE,KAAK,UAAUO,CAAC,CAAC,GAAED,GAAE,QAAO,EAAG,OAAOH,CAAC,GAAE,KAAK,yBAAyBH,GAAEG,CAAC,GAAE,CAAC,CAAC,OAAKG,GAAE,QAAS,EAAC,OAAOH,CAAC,GAAE,CAAC,CAAC;AAAA,gBAAE;AAAA,cAAC,CAAG;AAAA,YAAA,CAAG;AAAA,UAAA,GAAG,GAAG,GAAE,CAAC,CAAC;AAAA,QAAC;MAAG,CAAC;AAAA,IAAE,GAAEH,EAAE,UAAU,2BAAyB,SAASG,GAAE;AAAC,aAAOC,EAAE,MAAK,QAAO,QAAQ,WAAU;AAAC,eAAOO,EAAE,MAAM,SAASN,GAAE;AAAC,kBAAOA,EAAE,OAAO;AAAA,YAAA,KAAK;AAAE,qBAAO,CAAC,GAAE,IAAI,QAAS,SAASA,GAAE;AAAC,oBAAID,IAAE,IAAGE,IAAE,KAAK,IAAG,GAAGK,IAAE;AAAG,yBAASJ,IAAG;AAAC,sBAAGI,MAAI,OAAO,oBAAoB,WAAUJ,CAAC,GAAEP,EAAE,kBAAkBO,CAAC,GAAE,aAAaK,CAAC,GAAED,IAAE,KAAI,CAACP,GAAE;AAAC,oBAAAA,IAAE;AAAG,wBAAID,IAAE,MAAI,KAAK,IAAK,IAACG;AAAG,oBAAAH,IAAE,IAAE,WAAWE,GAAEF,CAAC,IAAEE,EAAE,IAAI;AAAA,kBAAE;AAAA,gBAAC;AAAC,uBAAO,iBAAiB,WAAUE,CAAC,GAAEP,EAAE,aAAaO,CAAC;AAAE,oBAAIK,IAAE,WAAWL,GAAE,KAAK,IAAI,GAAEJ,IAAE,KAAK,IAAG,CAAE,CAAC;AAAA,cAAE,CAAC,CAAE;AAAA,YAAE,KAAK;AAAE,qBAAOE,EAAE,KAAI,GAAG,CAAC,CAAC;AAAA,UAAC;AAAA,QAAC;MAAG,CAAC;AAAA,IAAE,GAAEL,EAAE,eAAa,SAASG,GAAE;AAAC,WAAK,kBAAkBA,CAAC,GAAWH,EAAE,YAAX,UAAoBA,EAAE,QAAQ,KAAKG,CAAC;AAAA,IAAE,GAAEH,EAAE,oBAAkB,SAASG,GAAE;AAAC,MAASH,EAAE,YAAX,WAAqBA,EAAE,UAAQA,EAAE,QAAQ,OAAQ,SAASA,GAAE;AAAC,eAAOA,MAAIG;AAAA,MAAC,CAAC;AAAA,IAAI,GAAEH,EAAE,gBAAc,WAAU;AAAC,MAASA,EAAE,YAAX,UAAoBA,EAAE,QAAQ,MAAK,EAAG,QAAS,SAASA,GAAE;AAAC,eAAOA;MAAG,CAAC;AAAA,IAAG,GAAEA,EAAE,UAAU,cAAY,SAASA,GAAE;AAAC,aAAOI,EAAE,MAAK,QAAO,QAAQ,WAAU;AAAC,eAAOO,EAAE,MAAM,SAASR,GAAE;AAAC,kBAAOA,EAAE;YAAO,KAAK;AAAE,qBAAO,CAAC,GAAE,KAAK,uBAAuBH,CAAC,CAAC;AAAA,YAAE,KAAK;AAAE,qBAAO,CAAC,GAAEG,EAAE,KAAM,CAAA;AAAA,UAAC;AAAA,QAAC,CAAC;AAAA,MAAE,CAAG;AAAA,IAAA,GAAEH,EAAE,UAAU,yBAAuB,SAASG,GAAE;AAAC,aAAOC,EAAE,MAAK,QAAO,QAAQ,WAAU;AAAC,YAAIC,GAAED,GAAEG,GAAES;AAAE,eAAOL,EAAE,MAAM,SAASA,GAAE;AAAC,kBAAOA,EAAE,OAAO;AAAA,YAAA,KAAK;AAAE,qBAAON,IAAW,KAAK,mBAAd,SAA6BQ,IAAE,KAAK,gBAAeT,IAAEQ,IAAE,MAAIT,IAAUI,IAAEF,EAAE,YAAYD,CAAC,OAAzB,OAA4B,CAAC,CAAC,KAAGY,IAAE,KAAK,MAAMT,CAAC,GAAG,OAAK,KAAK,KAAG,CAAC,GAAE,CAAC,IAAE,CAAC,GAAED,GAAE,QAAO,EAAG,KAAKU,EAAE,GAAG,CAAC;AAAA,YAAE,KAAK;AAAE,cAAAL,EAAE,QAAO,KAAK,eAAe,OAAOK,EAAE,GAAG,GAAEX,EAAE,eAAeD,CAAC,GAAEE,GAAE,UAAU,OAAOU,EAAE,GAAG,GAAEhB,EAAE,cAAa,GAAGW,EAAE,QAAM;AAAA,YAAE,KAAK;AAAE,qBAAO,CAAC,CAAC;AAAA,UAAC;AAAA,QAAC,CAAG;AAAA,MAAA;IAAG,GAAEX,EAAE,gBAAc,SAASG,GAAE;AAAC,eAAQE,IAAE,KAAK,IAAK,IAAC,KAAID,IAAED,GAAEG,IAAE,CAAA,GAAGK,IAAE,OAAI;AAAC,YAAIJ,IAAEH,EAAE,QAAQO,CAAC;AAAE,YAAUJ,MAAP;AAAS;AAAM,QAAAD,EAAE,KAAKC,CAAC,GAAEI;AAAA,MAAI;AAAC,eAAQE,IAAE,IAAGG,IAAE,GAAEA,IAAEV,EAAE,QAAOU,KAAI;AAAC,YAAID,IAAET,EAAEU,CAAC;AAAE,YAAGD,EAAE,SAASH,CAAC,GAAE;AAAC,cAAIE,IAAEV,EAAE,YAAYW,CAAC;AAAE,cAAUD,MAAP,MAAS;AAAC,gBAAIW,IAAE,KAAK,MAAMX,CAAC;AAAE,aAAUW,EAAE,kBAAX,UAA0BA,EAAE,eAAapB,KAAYoB,EAAE,kBAAX,UAA0BA,EAAE,gBAAcpB,OAAKD,EAAE,eAAeW,CAAC,GAAEF,IAAE;AAAA,UAAI;AAAA,QAAC;AAAA,MAAC;AAAC,MAAAA,KAAGb,EAAE;IAAgB,GAAEA,EAAE,UAAQ,QAAOA;AAAA,EAAC;AAAI,EAAAK,EAAE,UAAQS;AAAE,EAAG;AAAE,MAAMP,KAAE,EAAC,kBAAiB,GAAE,GAAEK,KAAE,EAAC,MAAK,gBAAe,SAAQ,QAAO,GAAEC,KAAE,MAAI,KAAK,IAAK;AAAC,MAAMG,WAAU,MAAK;AAAA,EAAC,YAAYhB,GAAEG,GAAE;AAAC,UAAMA,CAAC,GAAE,KAAK,QAAMH,GAAE,KAAK,oBAAkBG,GAAE,OAAO,eAAe,MAAKa,GAAE,SAAS;AAAA,EAAE;AAAA,EAAC,OAAO,YAAY,EAAC,OAAMhB,GAAE,mBAAkBG,EAAC,GAAE;AAAC,WAAO,IAAIa,GAAEhB,GAAEG,CAAC;AAAA,EAAC;AAAC;AAAC,MAAMY,WAAUC,GAAC;AAAA,EAAC,YAAYhB,GAAEG,GAAEE,GAAED,IAAE,MAAK;AAAC,UAAMJ,GAAEG,CAAC,GAAE,KAAK,QAAME,GAAE,KAAK,WAASD,GAAE,OAAO,eAAe,MAAKW,GAAE,SAAS;AAAA,EAAE;AAAC;AAAC,MAAMD,WAAUE,GAAC;AAAA,EAAC,cAAa;AAAC,UAAM,WAAU,SAAS,GAAE,OAAO,eAAe,MAAKF,GAAE,SAAS;AAAA,EAAE;AAAC;AAAC,MAAMW,WAAUX,GAAC;AAAA,EAAC,YAAYd,GAAE;AAAC,UAAO,GAAC,KAAK,QAAMA,GAAE,OAAO,eAAe,MAAKyB,GAAE,SAAS;AAAA,EAAE;AAAC;AAAC,MAAMC,WAAUV,GAAC;AAAA,EAAC,YAAYhB,GAAE;AAAC,UAAM,aAAY,cAAc,GAAE,KAAK,QAAMA,GAAE,OAAO,eAAe,MAAK0B,GAAE,SAAS;AAAA,EAAE;AAAC;AAAC,MAAMR,WAAUF,GAAC;AAAA,EAAC,YAAYhB,GAAEG,GAAEE,GAAE;AAAC,UAAML,GAAEG,CAAC,GAAE,KAAK,YAAUE,GAAE,OAAO,eAAe,MAAKa,GAAE,SAAS;AAAA,EAAE;AAAC;AAAC,MAAMD,WAAUD,GAAC;AAAA,EAAC,YAAYhB,GAAEG,GAAE;AAAC,UAAM,yBAAwB,qCAAqCwB,GAAE3B,GAAE,CAAC,SAAS,CAAC,CAAC,cAAc2B,GAAExB,CAAC,CAAC,IAAI,GAAE,KAAK,WAASH,GAAE,KAAK,QAAMG,GAAE,OAAO,eAAe,MAAKc,GAAE,SAAS;AAAA,EAAE;AAAC;AAAC,SAASU,GAAE3B,GAAEG,IAAE,IAAG;AAAC,SAAOH,KAAG,CAACG,EAAE,SAASH,CAAC,IAAEA,IAAE;AAAE;AAAC,MAAMC,KAAE,MAAI,OAAO,QAAOF,KAAE,MAAI;AAAC,QAAMC,IAAE;AAAqE,MAAIG,IAAE;AAAG,SAAO,MAAM,KAAKF,GAAG,EAAC,gBAAgB,IAAI,WAAW,EAAE,CAAC,CAAC,EAAE,QAAS,CAAAI,MAAGF,KAAGH,EAAEK,IAAEL,EAAE,MAAM,CAAC,GAAGG;AAAC,GAAEK,KAAE,CAAAR,MAAG,KAAKA,CAAC,GAAEiC,KAAE,OAAG;AAAC,MAAG,EAAC,UAAS5B,EAAC,IAAE,GAAED,IAAEJ,GAAE,GAAE,CAAC,UAAU,CAAC;AAAE,SAAO,IAAI,iBAAiB,CAAAA,MAAG,OAAO,KAAKA,CAAC,EAAE,OAAQ,CAAAG,MAAYH,EAAEG,CAAC,MAAZ,MAAa,EAAG,OAAQ,CAACA,GAAE,MAAI,OAAO,OAAO,OAAO,OAAO,IAAGA,CAAC,GAAE,EAAC,CAAC,CAAC,GAAEH,EAAE,CAAC,EAAC,CAAC,GAAG,CAAA,CAAE,GAAG,OAAO,OAAO,EAAC,WAAUK,EAAC,GAAED,CAAC,CAAC,CAAC,EAAE;AAAU,GAAEF,KAAE,CAAAF,OAAI,CAAAA,MAAG,mBAAmB,KAAKA,CAAC,EAAE,MAAM,EAAE,EAAE,IAAK,OAAG,OAAK,OAAK,EAAE,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,MAAM,EAAE,GAAI,KAAK,EAAE,CAAC,GAAGA,EAAE,QAAQ,MAAK,GAAG,EAAE,QAAQ,MAAK,GAAG,CAAC,GAAE+B,KAAE,OAAM/B,GAAEG,MAAI;AAAC,QAAME,IAAE,MAAM,MAAML,GAAEG,CAAC;AAAE,SAAO,EAAC,IAAGE,EAAE,IAAG,MAAK,MAAMA,EAAE,KAAM,EAAA;AAAC,GAAEkB,KAAE,OAAMvB,GAAEG,GAAEE,MAAI;AAAC,QAAM,IAAE,IAAI;AAAgB,MAAIC;AAAE,SAAOH,EAAE,SAAO,EAAE,QAAO,QAAQ,KAAK,CAAC4B,GAAE/B,GAAEG,CAAC,GAAE,IAAI,QAAS,CAACH,GAAEG,MAAI;AAAC,IAAAG,IAAE,WAAY,MAAI;AAAC,QAAE,MAAK,GAAGH,EAAE,IAAI,MAAM,gCAAgC,CAAC;AAAA,IAAE,GAAGE,CAAC;AAAA,EAAE,CAAC,CAAE,CAAC,EAAE,QAAS,MAAI;AAAC,iBAAaC,CAAC;AAAA,EAAE,CAAG;AAAA,GAAEc,KAAE,OAAMpB,GAAEG,GAAEE,GAAE,GAAEC,GAAEK,GAAEJ,MAAI;AAAC,SAAO,IAAE,EAAC,MAAK,EAAC,UAASJ,GAAE,OAAME,EAAC,GAAE,SAAQC,GAAE,UAASN,GAAE,cAAa,GAAE,aAAYO,EAAC,GAAE,IAAEI,GAAE,IAAI,QAAS,SAASX,GAAEG,GAAE;AAAC,UAAME,IAAE,IAAI;AAAe,IAAAA,EAAE,MAAM,YAAU,SAASD,GAAE;AAAC,MAAAA,EAAE,KAAK,QAAMD,EAAE,IAAI,MAAMC,EAAE,KAAK,KAAK,CAAC,IAAEJ,EAAEI,EAAE,IAAI,GAAEC,EAAE,MAAM,MAAK;AAAA,IAAG,GAAE,EAAE,YAAY,GAAE,CAACA,EAAE,KAAK,CAAC;AAAA,EAAE;AAAI,MAAI,GAAE;AAAE,GAAE2B,KAAE,OAAMhC,GAAEG,GAAEE,GAAE,GAAEC,GAAEK,GAAEJ,IAAE,QAAMD,IAAEc,GAAEpB,GAAEG,GAAEE,GAAE,GAAEE,GAAED,GAAEK,CAAC,IAAEY,GAAEvB,GAAE,GAAEO,CAAC;AAAE,eAAesB,GAAE,GAAExB,GAAE;AAAC,MAAG,EAAC,SAAQD,GAAE,SAAQE,GAAE,UAASK,GAAE,OAAMJ,GAAE,aAAYM,GAAE,aAAYE,EAAC,IAAE,GAAED,IAAEd,GAAE,GAAE,CAAC,WAAU,WAAU,YAAW,SAAQ,eAAc,aAAa,CAAC;AAAE,QAAMyB,IAAEV,IAAEkB,GAAEnB,CAAC,IAAE,KAAK,UAAUA,CAAC;AAAE,SAAO,MAAM,eAAeX,GAAEE,GAAED,GAAEE,GAAEK,GAAEJ,GAAEK,GAAE;AAAC,QAAIC,GAAEE,IAAE;AAAK,aAAQf,IAAE,GAAEA,IAAE,GAAEA;AAAI,UAAG;AAAC,QAAAa,IAAE,MAAMmB,GAAE7B,GAAEC,GAAEE,GAAEK,GAAEJ,GAAEK,GAAEP,CAAC,GAAEU,IAAE;AAAK;AAAA,MAAK,SAAOf,GAAE;AAAC,QAAAe,IAAEf;AAAA,MAAE;AAAC,QAAGe;AAAE,YAAMA;AAAE,UAAMD,IAAED,EAAE,MAAK,EAAC,OAAMY,GAAE,mBAAkBC,EAAC,IAAEZ,GAAEa,IAAE3B,GAAEc,GAAE,CAAC,SAAQ,mBAAmB,CAAC,GAAE,EAAC,IAAGb,EAAC,IAAEY;AAAE,QAAG,CAACZ,GAAE;AAAC,YAAMD,IAAE0B,KAAG,+BAA+BvB,CAAC;AAAG,YAAoBsB,MAAjB,iBAAyB,IAAIP,GAAEO,GAAEzB,GAAE2B,EAAE,SAAS,IAA+BF,MAA1B,0BAAkC,IAAIR,GAAEb,GAAEE,CAAC,IAAQ,IAAIU,GAAES,KAAG,iBAAgBzB,CAAC;AAAA,IAAC;AAAC,WAAO2B;AAAA,EAAC,EAAE,GAAGvB,CAAC,gBAAeE,GAAEK,KAAG,WAAUJ,GAAE,EAAC,QAAO,QAAO,MAAKkB,GAAE,SAAQ,EAAC,gBAAeV,IAAE,sCAAoC,oBAAmB,gBAAe,KAAK,KAAK,UAAUF,KAAGD,EAAC,CAAC,EAAC,EAAC,GAAEP,GAAEU,CAAC;AAAC;AAAC,MAAMuB,KAAE,IAAItC,MAAI;AAAC,UAAQG,IAAEH,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,EAAE,KAAM,EAAC,MAAM,KAAK,GAAE,MAAM,KAAK,IAAI,IAAIG,CAAC,CAAC,GAAG,KAAK,GAAG;AAAE,MAAIA;AAAE;AAAE,MAAMM,GAAC;AAAA,EAAC,YAAYT,GAAEG,IAAE,kBAAiBE,GAAE;AAAC,SAAK,SAAOF,GAAE,KAAK,SAAOE,GAAE,KAAK,WAASL,EAAE,UAAS,KAAK,QAAMA,EAAE,OAAM,KAAK,WAASA,EAAE;AAAA,EAAS;AAAA,EAAC,QAAO;AAAC,WAAO,CAAC,KAAK,QAAO,KAAK,UAAS,KAAK,UAAS,KAAK,OAAM,KAAK,MAAM,EAAE,OAAO,OAAO,EAAE,KAAK,IAAI;AAAA,EAAC;AAAA,EAAC,OAAO,QAAQA,GAAE;AAAC,UAAK,CAACG,GAAEE,GAAED,GAAEE,CAAC,IAAEN,EAAE,MAAM,IAAI;AAAE,WAAO,IAAIS,GAAE,EAAC,UAASJ,GAAE,OAAMC,GAAE,UAASF,EAAC,GAAED,CAAC;AAAA,EAAC;AAAA,EAAC,OAAO,eAAeH,GAAE;AAAC,UAAK,EAAC,OAAMG,GAAE,UAASE,GAAE,WAAUD,EAAC,IAAEJ;AAAE,WAAO,IAAIS,GAAE,EAAC,OAAMN,GAAE,UAASE,GAAE,UAASD,EAAC,CAAC;AAAA,EAAC;AAAC;AAAC,MAAMsC,GAAC;AAAA,EAAC,IAAI1C,GAAEG,GAAE;AAAC,iBAAa,QAAQH,GAAE,KAAK,UAAUG,CAAC,CAAC;AAAA,EAAE;AAAA,EAAC,IAAIH,GAAE;AAAC,UAAMG,IAAE,OAAO,aAAa,QAAQH,CAAC;AAAE,QAAGG;AAAE,UAAG;AAAC,eAAO,KAAK,MAAMA,CAAC;AAAA,MAAC,QAAS;AAAC;AAAA,MAAM;AAAA,EAAC;AAAA,EAAC,OAAOH,GAAE;AAAC,iBAAa,WAAWA,CAAC;AAAA,EAAE;AAAA,EAAC,UAAS;AAAC,WAAO,OAAO,KAAK,OAAO,YAAY,EAAE,OAAQ,CAAAA,MAAGA,EAAE,WAAW,gBAAgB,CAAC;AAAA,EAAE;AAAC;AAAC,MAAM8B,GAAC;AAAA,EAAC,cAAa;AAAC,SAAK,gBAAc,WAAU;AAAC,UAAI9B,IAAE,CAAE;AAAC,aAAO,EAAC,IAAIG,GAAEE,GAAE;AAAC,QAAAL,EAAEG,CAAC,IAAEE;AAAA,MAAE,GAAE,IAAIF,GAAE;AAAC,cAAME,IAAEL,EAAEG,CAAC;AAAE,YAAGE;AAAE,iBAAOA;AAAA,MAAC,GAAE,OAAOF,GAAE;AAAC,eAAOH,EAAEG,CAAC;AAAA,MAAE,GAAE,SAAQ,MAAI,OAAO,KAAKH,CAAC,EAAC;AAAA,IAAC,EAAG;AAAA,EAAC;AAAC;AAAC,MAAMmB,GAAC;AAAA,EAAC,YAAYnB,GAAEG,GAAEE,GAAE;AAAC,SAAK,QAAML,GAAE,KAAK,cAAYG,GAAE,KAAK,cAAYE,KAAGQ;AAAA,EAAE;AAAA,EAAC,MAAM,WAAWb,GAAEG,GAAEE,GAAE;AAAC,QAAID;AAAE,UAAME,IAAE,KAAK,mBAAmBN,CAAC;AAAE,UAAM,KAAK,MAAM,IAAIM,GAAE,EAAC,UAASH,GAAE,cAAaE,EAAC,CAAC,GAAE,QAAcD,IAAE,KAAK,iBAAf,QAAsCA,MAAT,SAAW,SAAOA,EAAE,IAAIE,CAAC;AAAA,EAAG;AAAA,EAAC,MAAM,WAAWN,GAAE;AAAC,UAAMG,IAAE,MAAM,KAAK,MAAM,IAAI,KAAK,mBAAmBH,EAAE,QAAQ,CAAC;AAAE,QAAG,CAACG,KAAGH,EAAE,SAAOA,EAAE,UAAS;AAAC,YAAMG,IAAE,MAAM,KAAK,IAAIH,CAAC;AAAe,aAAV,CAACG,KAAY,CAACA,EAAE,YAAU,CAACA,EAAE,eAAa,SAAc,EAAC,UAASA,EAAE,UAAS,cAAaA,EAAE,aAAY;AAAA,IAAC;AAAC,QAAGA;AAAE,aAAO,EAAC,UAASA,EAAE,UAAS,cAAaA,EAAE,aAAY;AAAA,EAAC;AAAA,EAAC,MAAM,IAAIH,GAAEG,IAAE,GAAE;AAAC,QAAIE;AAAE,QAAID,IAAE,MAAM,KAAK,MAAM,IAAIJ,EAAE,MAAO,CAAA;AAAE,QAAG,CAACI,GAAE;AAAC,YAAMD,IAAE,MAAM,KAAK,aAAY;AAAG,UAAG,CAACA;AAAE;AAAO,YAAME,IAAE,KAAK,sBAAsBL,GAAEG,CAAC;AAAE,MAAAE,MAAID,IAAE,MAAM,KAAK,MAAM,IAAIC,CAAC;AAAA,IAAG;AAAC,QAAG,CAACD;AAAE;AAAO,UAAME,IAAE,MAAM,KAAK,eAAc,IAAE,KAAK,MAAMA,IAAE,GAAG;AAAE,WAAOF,EAAE,YAAUD,IAAE,IAAEC,EAAE,KAAK,iBAAeA,EAAE,OAAK,EAAC,eAAcA,EAAE,KAAK,cAAa,GAAE,MAAM,KAAK,MAAM,IAAIJ,EAAE,MAAO,GAACI,CAAC,GAAEA,EAAE,SAAO,MAAM,KAAK,MAAM,OAAOJ,EAAE,OAAO,GAAE,KAAK,QAAcK,IAAE,KAAK,iBAAf,QAAsCA,MAAT,SAAW,SAAOA,EAAE,OAAOL,EAAE,MAAO,CAAA,MAAII,EAAE;AAAA,EAAI;AAAA,EAAC,MAAM,IAAIJ,GAAE;AAAC,QAAIG;AAAE,UAAME,IAAE,IAAII,GAAE,EAAC,UAAST,EAAE,WAAU,OAAMA,EAAE,OAAM,UAASA,EAAE,SAAQ,CAAC,GAAEI,IAAE,MAAM,KAAK,eAAeJ,CAAC;AAAE,UAAM,KAAK,MAAM,IAAIK,EAAE,MAAK,GAAGD,CAAC,GAAE,QAAcD,IAAE,KAAK,iBAAf,QAAsCA,MAAT,SAAW,SAAOA,EAAE,IAAIE,EAAE,OAAO;AAAA,EAAG;AAAA,EAAC,MAAM,MAAML,GAAE;AAAC,QAAIG;AAAE,UAAME,IAAE,MAAM,KAAK,aAAY;AAAG,IAAAA,MAAI,MAAMA,EAAE,OAAQ,CAAAF,MAAG,CAACH,KAAGG,EAAE,SAASH,CAAC,CAAC,EAAG,OAAQ,OAAMA,GAAEG,MAAI;AAAC,YAAMH,GAAE,MAAM,KAAK,MAAM,OAAOG,CAAC;AAAA,IAAE,GAAG,QAAQ,QAAO,CAAE,GAAE,QAAcA,IAAE,KAAK,iBAAf,QAAsCA,MAAT,SAAW,SAAOA,EAAE;EAAU;AAAA,EAAC,MAAM,eAAeH,GAAE;AAAC,UAAMG,IAAE,MAAM,KAAK;AAAc,WAAO,EAAC,MAAKH,GAAE,WAAU,KAAK,MAAMG,IAAE,GAAG,IAAEH,EAAE,WAAU;AAAA,EAAC;AAAA,EAAC,MAAM,eAAc;AAAC,QAAIA;AAAE,WAAO,KAAK,eAAoBA,IAAE,MAAM,KAAK,YAAY,IAAK,OAAtC,QAAkDA,MAAT,SAAW,SAAOA,EAAE,OAAK,KAAK,MAAM,UAAQ,KAAK,MAAM,QAAS,IAAC;AAAA,EAAM;AAAA,EAAC,mBAAmBA,GAAE;AAAC,WAAO,IAAIS,GAAE,EAAC,UAAST,EAAC,GAAE,kBAAiB,UAAU,EAAE,MAAK;AAAA,EAAE;AAAA,EAAC,sBAAsBA,GAAEG,GAAE;AAAC,WAAOA,EAAE,OAAQ,CAAAA,MAAG;AAAC,UAAIE;AAAE,YAAMD,IAAEK,GAAE,QAAQN,CAAC,GAAEG,IAAE,IAAI,IAAIF,EAAE,SAAOA,EAAE,MAAM,MAAM,GAAG,CAAC,GAAEO,MAAWN,IAAEL,EAAE,WAAZ,QAA6BK,MAAT,SAAW,SAAOA,EAAE,MAAM,GAAG,MAAI,IAAGE,IAAEH,EAAE,SAAOO,EAAE,OAAQ,CAACX,GAAEG,MAAIH,KAAGM,EAAE,IAAIH,CAAC,GAAG,EAAE;AAAE,aAA0BC,EAAE,WAArB,oBAA6BA,EAAE,aAAWJ,EAAE,YAAUI,EAAE,aAAWJ,EAAE,YAAUO;AAAA,IAAC,CAAG,EAAC,CAAC;AAAA,EAAC;AAAC;AAAC,MAAM+C,GAAC;AAAA,EAAC,YAAYtD,GAAEG,GAAEE,GAAE;AAAC,SAAK,UAAQL,GAAE,KAAK,WAASG,GAAE,KAAK,eAAaE,GAAE,KAAK,aAAW,gBAAgB,KAAK,QAAQ;AAAA,EAAG;AAAA,EAAC,OAAOL,GAAE;AAAC,SAAK,QAAQ,KAAK,KAAK,YAAWA,GAAE,EAAC,iBAAgB,GAAE,cAAa,KAAK,aAAY,CAAC;AAAA,EAAE;AAAA,EAAC,MAAK;AAAC,WAAO,KAAK,QAAQ,IAAI,KAAK,UAAU;AAAA,EAAC;AAAA,EAAC,SAAQ;AAAC,SAAK,QAAQ,OAAO,KAAK,YAAW,EAAC,cAAa,KAAK,aAAY,CAAC;AAAA,EAAE;AAAC;AAAC,MAAMwO,KAAE,CAAAxO,MAAa,OAAOA,KAAjB,UAAmB+C,KAAE,CAAC,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,SAAQ,aAAY,WAAU,UAAS,OAAM,OAAM,WAAU,OAAM,gBAAe,YAAW,cAAa,gBAAe,kBAAiB,QAAO,QAAO,OAAM,UAAS,OAAM,OAAM,OAAM,OAAM,OAAM,KAAK,GAAEzB,KAAE,CAAAtB,MAAG;AAAC,MAAG,CAACA,EAAE;AAAS,UAAM,IAAI,MAAM,kCAAkC;AAAE,QAAMG,KAAG,CAAAH,MAAG;AAAC,UAAMG,IAAEH,EAAE,MAAM,GAAG,GAAE,CAACK,GAAED,GAAEE,CAAC,IAAEH;AAAE,QAAOA,EAAE,WAAN,KAAc,CAACE,KAAG,CAACD,KAAG,CAACE;AAAE,YAAM,IAAI,MAAM,+BAA+B;AAAE,UAAMK,IAAE,KAAK,MAAMT,GAAEE,CAAC,CAAC,GAAEG,IAAE,EAAC,OAAMP,EAAC,GAAEY,IAAE,CAAE;AAAC,WAAO,OAAO,KAAKD,CAAC,EAAE,QAAS,CAAAX,MAAG;AAAC,MAAAO,EAAEP,CAAC,IAAEW,EAAEX,CAAC,GAAE+C,GAAE,SAAS/C,CAAC,MAAIY,EAAEZ,CAAC,IAAEW,EAAEX,CAAC;AAAA,IAAG,CAAC,GAAG,EAAC,SAAQ,EAAC,QAAOK,GAAE,SAAQD,GAAE,WAAUE,EAAC,GAAE,QAAO,KAAK,MAAMJ,GAAEG,CAAC,CAAC,GAAE,QAAOE,GAAE,MAAKK,EAAC;AAAA,EAAC,GAAGZ,EAAE,QAAQ;AAAE,MAAG,CAACG,EAAE,OAAO;AAAI,UAAM,IAAI,MAAM,6DAA6D;AAAE,MAAGA,EAAE,OAAO,QAAMH,EAAE;AAAI,UAAM,IAAI,MAAM,0DAA0DA,EAAE,GAAG,aAAaG,EAAE,OAAO,GAAG,GAAG;AAAE,MAAG,CAACA,EAAE,KAAK;AAAI,UAAM,IAAI,MAAM,8DAA8D;AAAE,MAAaA,EAAE,OAAO,QAAnB;AAAuB,UAAM,IAAI,MAAM,2BAA2BA,EAAE,OAAO,GAAG,sEAAsE;AAAE,MAAG,CAACA,EAAE,OAAO,OAAe,OAAOA,EAAE,OAAO,OAA1B,YAA+B,CAAC,MAAM,QAAQA,EAAE,OAAO,GAAG;AAAE,UAAM,IAAI,MAAM,mFAAmF;AAAE,MAAG,MAAM,QAAQA,EAAE,OAAO,GAAG,GAAE;AAAC,QAAG,CAACA,EAAE,OAAO,IAAI,SAASH,EAAE,GAAG;AAAE,YAAM,IAAI,MAAM,4DAA4DA,EAAE,GAAG,yBAAyBG,EAAE,OAAO,IAAI,KAAK,IAAI,CAAC,GAAG;AAAE,QAAGA,EAAE,OAAO,IAAI,SAAO,GAAE;AAAC,UAAG,CAACA,EAAE,OAAO;AAAI,cAAM,IAAI,MAAM,qHAAqH;AAAE,UAAGA,EAAE,OAAO,QAAMH,EAAE;AAAI,cAAM,IAAI,MAAM,oEAAoEA,EAAE,GAAG,aAAaG,EAAE,OAAO,GAAG,GAAG;AAAA,IAAC;AAAA,EAAC,WAASA,EAAE,OAAO,QAAMH,EAAE;AAAI,UAAM,IAAI,MAAM,4DAA4DA,EAAE,GAAG,gBAAgBG,EAAE,OAAO,GAAG,GAAG;AAAE,MAAGH,EAAE,OAAM;AAAC,QAAG,CAACG,EAAE,OAAO;AAAM,YAAM,IAAI,MAAM,8DAA8D;AAAE,QAAGA,EAAE,OAAO,UAAQH,EAAE;AAAM,YAAM,IAAI,MAAM,2DAA2DA,EAAE,KAAK,aAAaG,EAAE,OAAO,KAAK,GAAG;AAAA,EAAC;AAAC,MAAGH,EAAE,WAAS,CAACwO,GAAErO,EAAE,OAAO,SAAS;AAAE,UAAM,IAAI,MAAM,oHAAoH;AAAE,MAASA,EAAE,OAAO,OAAf,QAAoB,CAACqO,GAAErO,EAAE,OAAO,GAAG;AAAE,UAAM,IAAI,MAAM,sEAAsE;AAAE,MAAG,CAACqO,GAAErO,EAAE,OAAO,GAAG;AAAE,UAAM,IAAI,MAAM,gEAAgE;AAAE,QAAME,IAAEL,EAAE,UAAQ,IAAG,IAAE,IAAI,KAAKA,EAAE,OAAK,KAAK,IAAK,CAAA,GAAEM,IAAE,oBAAI,KAAK,CAAC;AAAE,MAAGA,EAAE,cAAcH,EAAE,OAAO,MAAIE,CAAC,GAAE,IAAEC;AAAE,UAAM,IAAI,MAAM,oEAAoE,CAAC,+BAA+BA,CAAC,GAAG;AAAE,MAASH,EAAE,OAAO,OAAf,QAAoBqO,GAAErO,EAAE,OAAO,GAAG,GAAE;AAAC,UAAMH,IAAE,oBAAI,KAAK,CAAC;AAAE,QAAGA,EAAE,cAAcG,EAAE,OAAO,MAAIE,CAAC,GAAE,IAAEL;AAAE,YAAM,IAAI,MAAM,+GAA+G,CAAC,eAAeA,CAAC,EAAE;AAAA,EAAC;AAAC,MAASG,EAAE,OAAO,aAAf,QAA0BqO,GAAErO,EAAE,OAAO,SAAS,GAAE;AAAC,UAAMG,IAAE,oBAAI,KAAK,CAAC;AAAE,QAAGA,EAAE,cAAc,SAASH,EAAE,OAAO,SAAS,IAAEH,EAAE,UAAQK,CAAC,GAAE,IAAEC;AAAE,YAAM,IAAI,MAAM,uJAAuJ,CAAC,2BAA2BA,CAAC,EAAE;AAAA,EAAC;AAAC,MAAGN,EAAE,cAAa;AAAC,UAAM,IAAEA,EAAE,aAAa,KAAI;AAAG,QAAG,EAAE,WAAW,MAAM,GAAE;AAAC,YAAMA,IAAE;AAAE,UAAG,CAACG,EAAE,OAAO;AAAO,cAAM,IAAI,MAAM,yEAAyE;AAAE,UAAGH,MAAIG,EAAE,OAAO;AAAO,cAAM,IAAI,MAAM,sEAAsEH,CAAC,aAAaG,EAAE,OAAO,MAAM,GAAG;AAAA,IAAC,OAAM;AAAC,YAAMH,IAAE,EAAE,YAAa;AAAC,UAAG,CAACG,EAAE,OAAO;AAAS,cAAM,IAAI,MAAM,6EAA6E;AAAE,UAAGH,MAAIG,EAAE,OAAO;AAAS,cAAM,IAAI,MAAM,0EAA0EH,CAAC,aAAaG,EAAE,OAAO,QAAQ,GAAG;AAAA,IAAC;AAAA,EAAC;AAAC,SAAOA;AAAC;AAAE,IAAIkC,KAAEjC,GAAG,SAASJ,GAAEK,GAAE;AAAC,MAAID,IAAED,MAAGA,GAAE,YAAU,WAAU;AAAC,WAAOC,IAAE,OAAO,UAAQ,SAASJ,GAAE;AAAC,eAAQG,GAAEE,IAAE,GAAED,IAAE,UAAU,QAAOC,IAAED,GAAEC;AAAI,iBAAQC,KAAKH,IAAE,UAAUE,CAAC;AAAE,iBAAO,UAAU,eAAe,KAAKF,GAAEG,CAAC,MAAIN,EAAEM,CAAC,IAAEH,EAAEG,CAAC;AAAG,aAAON;AAAA,IAAC,GAAEI,EAAE,MAAM,MAAK,SAAS;AAAA,EAAC;AAAE,WAASE,EAAEN,GAAEG,GAAE;AAAC,QAAG,CAACA;AAAE,aAAO;AAAG,QAAIE,IAAE,OAAKL;AAAE,WAAYG,MAAL,KAAOE,IAAEA,IAAE,MAAIF;AAAA,EAAC;AAAC,WAASQ,EAAEX,GAAEG,GAAEE,GAAE;AAAC,WAAO,mBAAmBL,CAAC,EAAE,QAAQ,4BAA2B,kBAAkB,EAAE,QAAQ,OAAM,KAAK,EAAE,QAAQ,OAAM,KAAK,IAAE,MAAI,mBAAmBG,CAAC,EAAE,QAAQ,6DAA4D,kBAAkB,IAAE,SAASH,GAAE;AAAC,UAAa,OAAOA,EAAE,WAAnB,UAA2B;AAAC,YAAIG,IAAE,oBAAI;AAAK,QAAAA,EAAE,gBAAgBA,EAAE,gBAAiB,IAAC,QAAMH,EAAE,OAAO,GAAEA,EAAE,UAAQG;AAAA,MAAE;AAAC,aAAOG,EAAE,WAAUN,EAAE,UAAQA,EAAE,QAAQ,gBAAc,EAAE,IAAEM,EAAE,UAASN,EAAE,MAAM,IAAEM,EAAE,QAAON,EAAE,IAAI,IAAEM,EAAE,UAASN,EAAE,MAAM,IAAEM,EAAE,YAAWN,EAAE,QAAQ;AAAA,IAAC,EAAEK,CAAC;AAAA,EAAC;AAAC,WAASE,EAAEP,GAAE;AAAC,aAAQG,IAAE,CAAA,GAAGE,IAAEL,IAAEA,EAAE,MAAM,IAAI,IAAE,CAAA,GAAGI,IAAE,oBAAmBE,IAAE,GAAEA,IAAED,EAAE,QAAOC,KAAI;AAAC,UAAIK,IAAEN,EAAEC,CAAC,EAAE,MAAM,GAAG,GAAEC,IAAEI,EAAE,MAAM,CAAC,EAAE,KAAK,GAAG;AAAE,MAAMJ,EAAE,OAAO,CAAC,MAAhB,QAAoBA,IAAEA,EAAE,MAAM,GAAE,EAAE;AAAG,UAAG;AAAC,QAAAJ,EAAEQ,EAAE,CAAC,EAAE,QAAQP,GAAE,kBAAkB,CAAC,IAAEG,EAAE,QAAQH,GAAE,kBAAkB;AAAA,MAAE,QAAS;AAAA,MAAE;AAAA,IAAA;AAAC,WAAOD;AAAA,EAAC;AAAC,WAASS,IAAG;AAAC,WAAOL,EAAE,SAAS,MAAM;AAAA,EAAC;AAAC,WAASM,EAAEb,GAAEG,GAAEE,GAAE;AAAC,aAAS,SAAOM,EAAEX,GAAEG,GAAEC,EAAE,EAAC,MAAK,IAAG,GAAEC,CAAC,CAAC;AAAA,EAAE;AAAC,EAAAA,EAAE,aAAW,IAAGA,EAAE,SAAOM,GAAEN,EAAE,QAAME,GAAEF,EAAE,SAAOO,GAAEP,EAAE,MAAI,SAASL,GAAE;AAAC,WAAOY,IAAIZ,CAAC;AAAA,EAAC,GAAEK,EAAE,MAAIQ,GAAER,EAAE,SAAO,SAASL,GAAEG,GAAE;AAAC,IAAAU,EAAEb,GAAE,IAAGI,EAAEA,EAAE,CAAE,GAACD,CAAC,GAAE,EAAC,SAAQ,GAAE,CAAC,CAAC;AAAA,EAAE;AAAE,CAAG;AAACE,GAAEgC,EAAC,GAAEA,GAAE,QAAOA,GAAE,OAAMA,GAAE;AAAO,IAAIS,KAAET,GAAE,KAAIH,KAAEG,GAAE,KAAIhB,KAAEgB,GAAE;AAAO,MAAMgB,KAAE,EAAC,IAAIrD,GAAE;AAAC,QAAMG,IAAE2C,GAAE9C,CAAC;AAAE,MAAYG,MAAT;AAAW,WAAO,KAAK,MAAMA,CAAC;AAAC,GAAE,KAAKH,GAAEG,GAAEE,GAAE;AAAC,MAAI,IAAE;AAAG,EAAW,OAAO,SAAS,aAA3B,aAAsC,IAAE,EAAC,QAAO,IAAG,UAAS,OAAM,IAAUA,KAAN,QAAeA,EAAE,oBAAmB,EAAE,UAAQA,EAAE,kBAAwBA,KAAN,QAAeA,EAAE,iBAAgB,EAAE,SAAOA,EAAE,eAAc6B,GAAElC,GAAE,KAAK,UAAUG,CAAC,GAAE,CAAC;AAAE,GAAE,OAAOH,GAAEG,GAAE;AAAC,MAAIE,IAAE,CAAE;AAAC,EAAOF,KAAN,QAAeA,EAAE,iBAAgBE,EAAE,SAAOF,EAAE,eAAckB,GAAErB,GAAEK,CAAC;AAAE,EAAC,GAAEK,KAAE,EAAC,IAAIV,GAAE;AAAkB,SAATqD,GAAE,IAAIrD,CAAC,KAAYqD,GAAE,IAAI,WAAWrD,CAAC,EAAE;AAAC,GAAE,KAAKA,GAAEG,GAAEE,GAAE;AAAC,MAAI,IAAE,CAAA;AAAG,EAAW,OAAO,SAAS,aAA3B,aAAsC,IAAE,EAAC,QAAO,GAAE,IAAUA,KAAN,QAAeA,EAAE,oBAAmB,EAAE,UAAQA,EAAE,kBAAwBA,KAAN,QAAeA,EAAE,iBAAgB,EAAE,SAAOA,EAAE,eAAc6B,GAAE,WAAWlC,CAAC,IAAG,KAAK,UAAUG,CAAC,GAAE,CAAC,GAAEkD,GAAE,KAAKrD,GAAEG,GAAEE,CAAC;AAAE,GAAE,OAAOL,GAAEG,GAAE;AAAC,MAAIE,IAAE,CAAE;AAAC,EAAOF,KAAN,QAAeA,EAAE,iBAAgBE,EAAE,SAAOF,EAAE,eAAckB,GAAErB,GAAEK,CAAC,GAAEgD,GAAE,OAAOrD,GAAEG,CAAC,GAAEkD,GAAE,OAAO,WAAWrD,CAAC,IAAGG,CAAC;AAAE,EAAC,GAAE6C,KAAE,EAAC,IAAIhD,GAAE;AAAC,MAAgB,OAAO,iBAApB;AAAmC;AAAO,QAAMG,IAAE,eAAe,QAAQH,CAAC;AAAE,SAAaG,KAAN,OAAQ,KAAK,MAAMA,CAAC,IAAE;AAAM,GAAE,KAAKH,GAAEG,GAAE;AAAC,iBAAe,QAAQH,GAAE,KAAK,UAAUG,CAAC,CAAC;AAAE,GAAE,OAAOH,GAAE;AAAC,iBAAe,WAAWA,CAAC;AAAE,EAAC;AAAE,SAASmC,GAAEnC,GAAEG,GAAEE,GAAE;AAAC,MAAI,IAAWF,MAAT,SAAW,OAAKA,GAAEG,IAAE,SAASN,GAAEG,GAAE;AAAC,QAAIE,IAAE,KAAKL,CAAC;AAAE,QAAGG,GAAE;AAAC,eAAQC,IAAE,IAAI,WAAWC,EAAE,MAAM,GAAEC,IAAE,GAAEK,IAAEN,EAAE,QAAOC,IAAEK,GAAE,EAAEL;AAAE,QAAAF,EAAEE,CAAC,IAAED,EAAE,WAAWC,CAAC;AAAE,aAAO,OAAO,aAAa,MAAM,MAAK,IAAI,YAAYF,EAAE,MAAM,CAAC;AAAA,IAAC;AAAC,WAAOC;AAAA,EAAC,EAAEL,GAAWK,MAAT,UAAYA,CAAC,GAAEM,IAAEL,EAAE,QAAQ;AAAA,GAAK,EAAE,IAAE,GAAEC,IAAED,EAAE,UAAUK,CAAC,KAAG,IAAE,0BAAwB,IAAE,KAAI,IAAE,IAAI,KAAK,CAACJ,CAAC,GAAE,EAAC,MAAK,yBAAwB,CAAC;AAAE,SAAO,IAAI,gBAAgB,CAAC;AAAC;AAAC,IAAIkC,IAAEI,IAAEK,IAAEN,IAAEhB,MAAGa,KAAE,49FAA29FI,KAAE,MAAKK,KAAE,IAAG,SAASlD,GAAE;AAAC,SAAO4C,KAAEA,MAAGT,GAAEM,IAAEI,IAAEK,EAAC,GAAE,IAAI,OAAON,IAAE5C,CAAC;AAAC;AAAG,MAAMwB,KAAE;AAAG,MAAMY,GAAC;AAAA,EAAC,YAAYpC,GAAEG,GAAE;AAAC,SAAK,QAAMH,GAAE,KAAK,WAASG,GAAE,KAAK,cAAY,KAAK,sBAAsB,KAAK,QAAQ;AAAA,EAAE;AAAA,EAAC,MAAM,IAAIH,GAAE;AAAC,QAAIG;AAAE,UAAME,IAAE,IAAI,MAAaF,IAAE,MAAM,KAAK,MAAM,IAAI,KAAK,WAAW,OAA/C,QAA4DA,MAAT,SAAW,SAAOA,EAAE,SAAO,CAAE,CAAA;AAAE,IAAAE,EAAE,IAAIL,CAAC,GAAE,MAAM,KAAK,MAAM,IAAI,KAAK,aAAY,EAAC,MAAK,CAAC,GAAGK,CAAC,EAAC,CAAC;AAAA,EAAE;AAAA,EAAC,MAAM,OAAOL,GAAE;AAAC,UAAMG,IAAE,MAAM,KAAK,MAAM,IAAI,KAAK,WAAW;AAAE,QAAGA,GAAE;AAAC,YAAME,IAAE,IAAI,IAAIF,EAAE,IAAI;AAAE,aAAOE,EAAE,OAAOL,CAAC,GAAEK,EAAE,OAAK,IAAE,MAAM,KAAK,MAAM,IAAI,KAAK,aAAY,EAAC,MAAK,CAAC,GAAGA,CAAC,EAAC,CAAC,IAAE,MAAM,KAAK,MAAM,OAAO,KAAK,WAAW;AAAA,IAAC;AAAA,EAAC;AAAA,EAAC,MAAK;AAAC,WAAO,KAAK,MAAM,IAAI,KAAK,WAAW;AAAA,EAAC;AAAA,EAAC,QAAO;AAAC,WAAO,KAAK,MAAM,OAAO,KAAK,WAAW;AAAA,EAAC;AAAA,EAAC,sBAAsBL,GAAE;AAAC,WAAO,mBAAmBA,CAAC;AAAA,EAAE;AAAC;AAAC,MAAM2C,KAAE,EAAC,QAAO,MAAK,IAAIb,KAAG,eAAc,cAAa,MAAI,IAAIY,KAAC,GAAEO,KAAE,CAAAjD,MAAG2C,GAAE3C,CAAC,GAAEmD,KAAE,OAAG;AAAC,QAAK,EAAC,SAAQ9C,GAAE,YAAWD,EAAC,IAAE,GAAEE,IAAEN,GAAE,GAAE,CAAC,WAAU,YAAY,CAAC;AAAE,SAAO,OAAO,OAAO,OAAO,OAAO,CAAE,GAACM,CAAC,GAAE,EAAC,SAAaD,MAAL,MAAQA,IAAEA,IAAED,EAAC,CAAC;AAAC,GAAEgD,KAAG,IAAIzC;AAAE,MAAM4C,GAAE;AAAA,EAAC,YAAYvD,GAAE;AAAC,QAAIG,GAAEE;AAAE,QAAG,KAAK,YAAW,IAAIyB,KAAG,eAAc,KAAK,iBAAe,EAAC,qBAAoB,EAAC,OAAM,uBAAsB,GAAE,0BAAyB,IAAG,aAAY,GAAE,GAAE,KAAK,yBAAuB,YAAS;AAAC,YAAMsB,GAAG,YAAY,6BAA6B,GAAE,OAAO,oBAAoB,YAAW,KAAK,sBAAsB;AAAA,IAAE,GAAE,KAAK,UAAQ,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,CAAA,GAAG,KAAK,cAAc,GAAEpD,CAAC,GAAE,EAAC,qBAAoB,OAAO,OAAO,OAAO,OAAO,CAAE,GAAC,KAAK,eAAe,mBAAmB,GAAEA,EAAE,mBAAmB,EAAC,CAAC,GAAe,OAAO,SAApB,QAA6B,MAAI;AAAC,UAAG,CAACC,GAAG;AAAC,cAAM,IAAI,MAAM,0EAA0E;AAAE,UAAYA,GAAC,EAAG,WAAb;AAAoB,cAAM,IAAI,MAAM;AAAA;AAAA,KAAgM;AAAA,IAAC,GAAC,GAAID,EAAE,SAAOA,EAAE,iBAAe,QAAQ,KAAK,4IAA4I,GAAEA,EAAE;AAAM,MAAAK,IAAEL,EAAE;AAAA,SAAW;AAAC,UAAGG,IAAEH,EAAE,iBAAe,UAAS,CAACiD,GAAE9C,CAAC;AAAE,cAAM,IAAI,MAAM,2BAA2BA,CAAC,GAAG;AAAE,MAAAE,IAAE4C,GAAE9C,CAAC,EAAC;AAAA,IAAG;AAAC,SAAK,gBAAcH,EAAE,uBAAqB,MAAIA,EAAE,uBAAqB,KAAI,KAAK,gBAAmBA,EAAE,yBAAP,KAA4BqD,KAAE3C,IAAE,KAAK,oBAAkB,SAAS,KAAK,QAAQ,QAAQ,sBAAqB,KAAK,6BAA2B,CAAAV,MAAG,SAASA,CAAC,qBAAqB,KAAK,QAAQ,QAAQ,GAAE,KAAK,yBAAuBA,EAAE,0BAAwB;AAAE,UAAMI,IAAEJ,EAAE,4BAA0B,KAAK,gBAAcgD;AAAE,QAAI1C;AAAE,SAAK,QAAMgC,GAAE,UAAS,KAAK,QAAQ,oBAAoB,OAAM,KAAK,QAAQ,mBAAiB,mBAAiB,EAAE,GAAE,KAAK,qBAAmB,IAAIgB,GAAElD,GAAE,KAAK,QAAQ,UAAS,KAAK,QAAQ,YAAY,GAAE,KAAK,cAAY,KAAK,QAAQ,eAAaS,IAAE,KAAK,eAAa,IAAIM,GAAEd,GAAEA,EAAE,UAAQ,SAAO,IAAI+B,GAAE/B,GAAE,KAAK,QAAQ,QAAQ,GAAE,KAAK,WAAW,GAAE,KAAK,aAAWC,IAAE,KAAK,QAAQ,QAAO,eAAe,KAAKA,CAAC,IAAEA,IAAE,WAAWA,CAAC,KAAI,KAAK,eAAa,CAACN,GAAEG,MAAIH,IAAEA,EAAE,WAAW,UAAU,IAAEA,IAAE,WAAWA,CAAC,MAAI,GAAGG,CAAC,KAAK,KAAK,QAAQ,QAAO,KAAK,SAAS,GAAe,OAAO,SAApB,OAA4B,OAAO,UAAQ,KAAK,QAAQ,oBAA6BA,MAAX,aAAe,KAAK,QAAQ,YAAU,KAAK,SAAO,IAAI,OAAO,KAAK,QAAQ,SAAS,IAAE,KAAK,SAAO,IAAIyB;AAAA,EAAG;AAAA,EAAC,KAAK5B,GAAE;AAAC,UAAMG,IAAE,mBAAmB,KAAK,KAAK,UAAU,KAAK,QAAQ,eAAaS,EAAC,CAAC,CAAC;AAAE,WAAO,GAAG,KAAK,SAAS,GAAGZ,CAAC,gBAAgBG,CAAC;AAAA,EAAE;AAAA,EAAC,cAAcH,GAAE;AAAC,WAAO,KAAK,KAAK,cAAciC,GAAEjC,CAAC,CAAC,EAAE;AAAA,EAAC;AAAA,EAAC,MAAM,eAAeA,GAAEG,GAAEE,GAAE;AAAC,UAAMD,IAAE,MAAM,KAAK,YAAW;AAAG,WAAOkB,GAAE,EAAC,KAAI,KAAK,aAAY,KAAI,KAAK,QAAQ,UAAS,UAAStB,GAAE,OAAMG,GAAE,cAAaE,GAAE,QAAO,KAAK,QAAQ,QAAO,UAASC,IAAE,KAAK,QAAQ,oBAAoB,SAAkB,OAAOA,KAAjB,WAAmBA,IAAE,SAASA,GAAE,EAAE,KAAG,SAAQ,KAAIF,EAAC,CAAC;AAAE,QAAIE;AAAA,EAAE;AAAA,EAAC,gBAAgBN,GAAE;AAAC,IAAAA,IAAE,KAAK,cAAc,KAAK,KAAK,mBAAkBA,GAAE,EAAC,iBAAgB,KAAK,wBAAuB,cAAa,KAAK,QAAQ,aAAY,CAAC,IAAE,KAAK,cAAc,OAAO,KAAK,mBAAkB,EAAC,cAAa,KAAK,QAAQ,aAAY,CAAC;AAAA,EAAE;AAAA,EAAC,MAAM,qBAAqBA,GAAEG,GAAEE,GAAE;AAAC,UAAMD,IAAEI,GAAET,IAAG,GAAEO,IAAEE,GAAET,GAAC,CAAE,GAAE,IAAEA,GAAG,GAACQ,KAAG,CAAAP,MAAG;AAAC,YAAMG,IAAE,IAAI,WAAWH,CAAC;AAAE,cAAQ,CAAAA,MAAG;AAAC,cAAMG,IAAE,EAAC,KAAI,KAAI,KAAI,KAAI,KAAI,GAAE;AAAE,eAAOH,EAAE,QAAQ,UAAU,CAAAA,MAAGG,EAAEH,CAAC,CAAC;AAAA,MAAE,GAAG,OAAO,KAAK,OAAO,aAAa,GAAG,MAAM,KAAKG,CAAC,CAAC,CAAC,CAAC;AAAA,IAAC,GAAG,OAAM,OAAMH,MAAmF,MAAvEC,KAAI,OAAO,OAAO,EAAC,MAAK,UAAS,GAAG,IAAI,cAAa,OAAOD,CAAC,CAAC,GAAmB,CAAC,CAAC,GAAEY,KAAG,CAACZ,GAAEG,GAAEE,GAAED,GAAEE,GAAEK,GAAEJ,GAAEK,MAAI,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,EAAC,WAAUZ,EAAE,SAAQ,GAAEA,EAAE,mBAAmB,GAAEK,CAAC,GAAE,EAAC,OAAMiC,GAAEnC,GAAEE,EAAE,KAAK,GAAE,eAAc,QAAO,eAAcO,KAAG,SAAQ,OAAMR,GAAE,OAAME,GAAE,cAAaC,KAAGP,EAAE,oBAAoB,cAAa,gBAAeW,GAAE,uBAAsB,OAAM,CAAC,GAAG,KAAK,SAAQ,KAAK,OAAMX,GAAEI,GAAEE,GAAEC,GAAEP,EAAE,gBAAc,KAAK,QAAQ,oBAAoB,gBAAcK,GAAQF,KAAN,OAAQ,SAAOA,EAAE,aAAa,GAAEU,IAAE,KAAK,cAAcD,CAAC;AAAE,WAAO,EAAC,OAAMN,GAAE,eAAc,GAAE,OAAMM,EAAE,OAAM,UAASA,EAAE,YAAU,WAAU,cAAaA,EAAE,cAAa,OAAMR,GAAE,KAAIS,EAAC;AAAA,EAAC;AAAA,EAAC,MAAM,eAAeb,GAAEG,GAAE;AAAC,QAAIE;AAAE,QAAGL,IAAEA,KAAG,CAAA,GAAG,EAAEG,IAAEA,KAAG,CAAE,GAAE,UAAQA,EAAE,SAAO,CAAAH,MAAG;AAAC,YAAMG,IAAE,OAAO,WAAS,OAAO,aAAW,OAAK,GAAEE,IAAE,OAAO,WAAS,OAAO,cAAY,OAAK;AAAE,aAAO,OAAO,KAAKL,GAAE,yBAAwB,QAAQG,CAAC,QAAQE,CAAC,yDAAyD;AAAA,IAAC,GAAG,EAAE,GAAE,CAACF,EAAE;AAAO,YAAM,IAAI,MAAM,yEAAyE;AAAE,UAAMC,IAAE,MAAM,KAAK,qBAAqBJ,EAAE,uBAAqB,CAAA,GAAG,EAAC,eAAc,cAAa,GAAE,OAAO,SAAS,MAAM;AAAE,IAAAG,EAAE,MAAM,SAAS,OAAKC,EAAE;AAAI,UAAME,IAAE,OAAM,CAAAN,MAAG,IAAI,QAAS,CAACG,GAAEE,MAAI;AAAC,UAAID;AAAE,YAAME,IAAE,YAAa,MAAI;AAAC,QAAAN,EAAE,SAAOA,EAAE,MAAM,WAAS,cAAcM,CAAC,GAAE,aAAaK,CAAC,GAAE,OAAO,oBAAoB,WAAUP,GAAE,EAAE,GAAEC,EAAE,IAAIqB,GAAE1B,EAAE,KAAK,CAAC;AAAA,MAAG,GAAG,GAAG,GAAEW,IAAE,WAAY,MAAI;AAAC,sBAAcL,CAAC,GAAED,EAAE,IAAIoB,GAAEzB,EAAE,KAAK,CAAC,GAAE,OAAO,oBAAoB,WAAUI,GAAE,EAAE;AAAA,MAAE,GAAG,OAAKJ,EAAE,oBAAkB,GAAG;AAAE,MAAAI,IAAE,SAASG,GAAE;AAAC,YAAGA,EAAE,QAAiCA,EAAE,KAAK,SAAlC,0BAAuC;AAAC,cAAG,aAAaI,CAAC,GAAE,cAAcL,CAAC,GAAE,OAAO,oBAAoB,WAAUF,GAAE,EAAE,GAAEJ,EAAE,MAAM,SAAQO,EAAE,KAAK,SAAS;AAAM,mBAAOF,EAAEW,GAAE,YAAYT,EAAE,KAAK,QAAQ,CAAC;AAAE,UAAAJ,EAAEI,EAAE,KAAK,QAAQ;AAAA,QAAE;AAAA,MAAC,GAAE,OAAO,iBAAiB,WAAUH,CAAC;AAAA,IAAE,CAAC,GAAI,OAAO,OAAO,OAAO,OAAO,CAAE,GAACD,CAAC,GAAE,EAAC,kBAAiBA,EAAE,oBAAkB,KAAK,QAAQ,6BAA2B,GAAE,CAAC,CAAC;AAAE,QAAGC,EAAE,UAAQE,EAAE;AAAM,YAAM,IAAIU,GAAE,kBAAiB,eAAe;AAAE,UAAM,MAAWX,IAAEL,EAAE,yBAAZ,QAA2CK,MAAT,SAAW,SAAOA,EAAE,iBAAe,KAAK,QAAQ,oBAAoB;AAAa,UAAM,KAAK,cAAc,EAAC,UAASD,EAAE,UAAS,OAAMA,EAAE,OAAM,eAAcA,EAAE,eAAc,YAAW,sBAAqB,MAAKE,EAAE,MAAK,cAAaF,EAAE,aAAY,GAAE,EAAC,SAAQA,EAAE,OAAM,cAAa,EAAC,CAAC;AAAA,EAAE;AAAA,EAAC,MAAM,UAAS;AAAC,QAAIJ;AAAE,UAAMG,IAAE,MAAM,KAAK,qBAAoB;AAAG,YAAeH,IAAQG,KAAN,OAAQ,SAAOA,EAAE,kBAA3B,QAAmDH,MAAT,SAAW,SAAOA,EAAE;AAAA,EAAI;AAAA,EAAC,MAAM,mBAAkB;AAAC,QAAIA;AAAE,UAAMG,IAAE,MAAM,KAAK;AAAuB,YAAeH,IAAQG,KAAN,OAAQ,SAAOA,EAAE,kBAA3B,QAAmDH,MAAT,SAAW,SAAOA,EAAE;AAAA,EAAM;AAAA,EAAC,MAAM,kBAAkBG,IAAE,IAAG;AAAC,QAAIE;AAAE,UAAM,IAAE8C,GAAEhD,CAAC,GAAE,EAAC,SAAQG,GAAE,UAASK,GAAE,UAASJ,EAAC,IAAE,GAAE,IAAEP,GAAE,GAAE,CAAC,WAAU,YAAW,UAAU,CAAC,GAAE,MAAWK,IAAE,EAAE,yBAAZ,QAA2CA,MAAT,SAAW,SAAOA,EAAE,iBAAe,KAAK,QAAQ,oBAAoB,cAAaW,IAAE,MAAM,KAAK,qBAAqB,EAAE,uBAAqB,CAAA,CAAE,GAAE,EAAC,KAAID,EAAC,IAAEC,GAAEF,IAAEd,GAAEgB,GAAE,CAAC,KAAK,CAAC;AAAE,SAAK,mBAAmB,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,CAAE,GAACF,CAAC,GAAE,EAAC,UAASP,EAAC,CAAC,GAAE,KAAG,EAAC,cAAa,EAAC,CAAC,CAAC;AAAE,UAAMkB,IAAEd,IAAE,GAAGI,CAAC,IAAIJ,CAAC,KAAGI;AAAE,IAAAT,IAAE,MAAMA,EAAEmB,CAAC,IAAE,OAAO,SAAS,OAAOA,CAAC;AAAA,EAAE;AAAA,EAAC,MAAM,uBAAuBzB,IAAE,OAAO,SAAS,MAAK;AAAC,UAAMG,IAAEH,EAAE,MAAM,GAAG,EAAE,MAAM,CAAC;AAAE,QAAOG,EAAE,WAAN;AAAa,YAAM,IAAI,MAAM,kDAAkD;AAAE,UAAK,EAAC,OAAME,GAAE,MAAKD,GAAE,OAAME,GAAE,mBAAkB,EAAC,KAAG,CAAAN,MAAG;AAAC,MAAAA,EAAE,QAAQ,GAAG,IAAE,OAAKA,IAAEA,EAAE,UAAU,GAAEA,EAAE,QAAQ,GAAG,CAAC;AAAG,YAAMG,IAAE,IAAI,gBAAgBH,CAAC;AAAE,aAAO,EAAC,OAAMG,EAAE,IAAI,OAAO,GAAE,MAAKA,EAAE,IAAI,MAAM,KAAG,QAAO,OAAMA,EAAE,IAAI,OAAO,KAAG,QAAO,mBAAkBA,EAAE,IAAI,mBAAmB,KAAG,OAAM;AAAA,IAAC,GAAGA,EAAE,KAAK,EAAE,CAAC,GAAEI,IAAE,KAAK,mBAAmB,IAAG;AAAG,QAAG,CAACA;AAAE,YAAM,IAAIS,GAAE,uBAAsB,eAAe;AAAE,QAAG,KAAK,mBAAmB,OAAQ,GAACV;AAAE,YAAM,IAAIS,GAAET,GAAE,KAAGA,GAAED,GAAEE,EAAE,QAAQ;AAAE,QAAG,CAACA,EAAE,iBAAeA,EAAE,SAAOA,EAAE,UAAQF;AAAE,YAAM,IAAIW,GAAE,kBAAiB,eAAe;AAAE,UAAMJ,IAAEL,EAAE,cAAaM,IAAEN,EAAE,OAAMO,IAAEP,EAAE;AAAa,WAAO,MAAM,KAAK,cAAc,OAAO,OAAO,EAAC,UAASA,EAAE,UAAS,OAAMA,EAAE,OAAM,eAAcA,EAAE,eAAc,YAAW,sBAAqB,MAAKH,EAAC,GAAEU,IAAE,EAAC,cAAaA,EAAC,IAAE,EAAE,GAAE,EAAC,SAAQD,GAAE,cAAaD,EAAC,CAAC,GAAE,EAAC,UAASL,EAAE,SAAQ;AAAA,EAAC;AAAA,EAAC,MAAM,aAAaP,GAAE;AAAC,QAAG,CAAC,KAAK,cAAc,IAAI,KAAK,yBAAyB,GAAE;AAAC,UAAG,CAAC,KAAK,cAAc,IAAI,wBAAwB;AAAE;AAAO,WAAK,cAAc,KAAK,KAAK,2BAA0B,IAAG,EAAC,iBAAgB,KAAK,wBAAuB,cAAa,KAAK,QAAQ,aAAY,CAAC,GAAE,KAAK,cAAc,OAAO,wBAAwB;AAAA,IAAE;AAAC,QAAG;AAAC,YAAM,KAAK,iBAAiBA,CAAC;AAAA,IAAE,QAAS;AAAA;EAAE;AAAA,EAAC,MAAM,iBAAiBA,IAAE,IAAG;AAAC,QAAIG;AAAE,UAAME,IAAE,OAAO,OAAO,OAAO,OAAO,EAAC,WAAU,KAAI,GAAEL,CAAC,GAAE,EAAC,qBAAoB,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,IAAG,KAAK,QAAQ,mBAAmB,GAAEA,EAAE,mBAAmB,GAAE,EAAC,OAAMsC,GAAE,KAAK,QAAcnC,IAAEH,EAAE,yBAAZ,QAA2CG,MAAT,SAAW,SAAOA,EAAE,KAAK,EAAC,CAAC,EAAC,CAAC,GAAEC,IAAE,OAAM,CAACJ,GAAEG,MAAI;AAAC,UAAIE,IAAEmB,GAAErB,CAAC;AAAE,aAAOE,MAAIA,IAAEL,EAAC,EAAG,QAAS,MAAI;AAAC,eAAOwB,GAAErB,CAAC,GAAEE,IAAE;AAAA,MAAK,CAAG,GAACmB,GAAErB,CAAC,IAAEE,IAAGA;AAAA,IAAC,GAAI,MAAI,KAAK,kBAAkBA,CAAC,GAAG,GAAG,KAAK,QAAQ,QAAQ,KAAKA,EAAE,oBAAoB,QAAQ,KAAKA,EAAE,oBAAoB,KAAK,EAAE;AAAE,WAAOL,EAAE,mBAAiBI,IAAQA,KAAN,OAAQ,SAAOA,EAAE;AAAA,EAAY;AAAA,EAAC,MAAM,kBAAkBD,GAAE;AAAC,UAAK,EAAC,WAAUE,EAAC,IAAEF,GAAE,IAAEH,GAAEG,GAAE,CAAC,WAAW,CAAC;AAAE,QAAWE,MAAR,OAAU;AAAC,YAAML,IAAE,MAAM,KAAK,mBAAmB,EAAC,OAAM,EAAE,oBAAoB,OAAM,UAAS,EAAE,oBAAoB,YAAU,WAAU,UAAS,KAAK,QAAQ,SAAQ,CAAC;AAAE,UAAGA;AAAE,eAAOA;AAAA,IAAC;AAAC,QAAkBK,MAAf,cAAiB;AAAC,UAAG,CAAC,OAAM,OAAML,GAAEG,IAAE,MAAI;AAAC,iBAAQE,IAAE,GAAEA,IAAEF,GAAEE;AAAI,cAAG,MAAML;AAAI,mBAAO;AAAG,eAAO;AAAA,MAAE,GAAI,MAAIoD,GAAG,YAAY,+BAA8B,GAAG,GAAG,EAAE;AAAE,cAAM,IAAItC;AAAE,UAAG;AAAC,YAAG,OAAO,iBAAiB,YAAW,KAAK,sBAAsB,GAAUT,MAAR,OAAU;AAAC,gBAAML,IAAE,MAAM,KAAK,mBAAmB,EAAC,OAAM,EAAE,oBAAoB,OAAM,UAAS,EAAE,oBAAoB,YAAU,WAAU,UAAS,KAAK,QAAQ,SAAQ,CAAC;AAAE,cAAGA;AAAE,mBAAOA;AAAA,QAAC;AAAC,cAAMA,IAAE,KAAK,QAAQ,mBAAiB,MAAM,KAAK,2BAA2B,CAAC,IAAE,MAAM,KAAK,oBAAoB,CAAC,GAAE,EAAC,UAASG,GAAE,cAAaG,GAAE,iBAAgBK,GAAE,YAAWJ,EAAC,IAAEP;AAAE,eAAO,OAAO,OAAO,OAAO,OAAO,EAAC,UAASG,GAAE,cAAaG,EAAC,GAAEK,IAAE,EAAC,OAAMA,EAAC,IAAE,IAAI,GAAE,EAAC,YAAWJ,EAAC,CAAC;AAAA,MAAC,UAAC;AAAQ,cAAM6C,GAAG,YAAY,6BAA6B,GAAE,OAAO,oBAAoB,YAAW,KAAK,sBAAsB;AAAA,MAAE;AAAA,IAAC;AAAA,EAAC;AAAA,EAAC,MAAM,kBAAkBpD,IAAE,CAAA,GAAGG,IAAE,CAAE,GAAC;AAAC,QAAIE;AAAE,UAAMD,IAAE,OAAO,OAAO,OAAO,OAAO,CAAA,GAAGJ,CAAC,GAAE,EAAC,qBAAoB,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,IAAG,KAAK,QAAQ,mBAAmB,GAAEA,EAAE,mBAAmB,GAAE,EAAC,OAAMsC,GAAE,KAAK,QAAcjC,IAAEL,EAAE,yBAAZ,QAA2CK,MAAT,SAAW,SAAOA,EAAE,KAAK,EAAC,CAAC,EAAC,CAAC;AAAE,WAAAF,IAAE,OAAO,OAAO,OAAO,OAAO,CAAA,GAAGI,EAAC,GAAEJ,CAAC,GAAE,MAAM,KAAK,eAAeC,GAAED,CAAC,IAAU,MAAM,KAAK,aAAa,IAAI,IAAIM,GAAE,EAAC,OAAML,EAAE,oBAAoB,OAAM,UAASA,EAAE,oBAAoB,YAAU,WAAU,UAAS,KAAK,QAAQ,SAAQ,CAAC,CAAC,GAAG;AAAA,EAAY;AAAA,EAAC,MAAM,kBAAiB;AAAC,WAAO,CAAC,CAAC,MAAM,KAAK;EAAS;AAAA,EAAC,gBAAgBD,GAAE;AAAC,IAAOA,EAAE,aAAT,OAAkBA,EAAE,WAASA,EAAE,YAAU,KAAK,QAAQ,WAAS,OAAOA,EAAE;AAAS,UAAME,IAAEF,EAAE,gBAAc,CAAE,GAAC,EAAC,WAAU,EAAC,IAAEE,GAAEC,IAAEN,GAAEK,GAAE,CAAC,WAAW,CAAC,GAAEM,IAAE,IAAE,eAAa;AAAG,WAAO,KAAK,KAAK,cAAcsB,GAAE,OAAO,OAAO,EAAC,UAAS9B,EAAE,SAAQ,GAAEG,CAAC,CAAC,CAAC,EAAE,IAAEK;AAAA,EAAC;AAAA,EAAC,MAAM,OAAOR,IAAE,CAAA,GAAG;AAAC,UAAME,IAAE8C,GAAEhD,CAAC,GAAE,EAAC,SAAQ,EAAC,IAAEE,GAAEC,IAAEN,GAAEK,GAAE,CAAC,SAAS,CAAC;AAAE,IAAOF,EAAE,aAAT,OAAkB,MAAM,KAAK,aAAa,MAAO,IAAC,MAAM,KAAK,aAAa,MAAMA,EAAE,YAAU,KAAK,QAAQ,QAAQ,GAAE,KAAK,cAAc,OAAO,KAAK,mBAAkB,EAAC,cAAa,KAAK,QAAQ,aAAY,CAAC,GAAE,KAAK,cAAc,OAAO,KAAK,2BAA0B,EAAC,cAAa,KAAK,QAAQ,aAAY,CAAC,GAAE,KAAK,UAAU,OAAO,UAAU;AAAE,UAAMQ,IAAE,KAAK,gBAAgBL,CAAC;AAAE,QAAE,MAAM,EAAEK,CAAC,IAAO,MAAL,MAAQ,OAAO,SAAS,OAAOA,CAAC;AAAA,EAAE;AAAA,EAAC,MAAM,oBAAoBX,GAAE;AAAC,UAAMG,IAAE,OAAO,OAAO,OAAO,OAAO,IAAGH,EAAE,mBAAmB,GAAE,EAAC,QAAO,OAAM,CAAC,GAAEK,IAAE,KAAK,cAAc,IAAI,KAAK,iBAAiB;AAAE,IAAAA,KAAG,CAACF,EAAE,iBAAeA,EAAE,eAAaE;AAAG,UAAK,EAAC,KAAID,GAAE,OAAME,GAAE,OAAM,GAAE,eAAcC,GAAE,cAAaK,GAAE,OAAMC,GAAE,UAASE,EAAC,IAAE,MAAM,KAAK,qBAAqBZ,GAAE,EAAC,eAAc,cAAa,GAAE,OAAO,SAAS,MAAM;AAAE,QAAG;AAAC,UAAG,OAAO;AAAoB,cAAM,IAAIa,GAAE,kBAAiB,mIAAmI;AAAE,YAAMX,IAAEL,EAAE,oBAAkB,KAAK,QAAQ,2BAA0ByB,IAAE,OAAM,CAACzB,GAAEG,GAAEE,IAAE,OAAK,IAAI,QAAS,CAACD,GAAEE,MAAI;AAAC,cAAMK,IAAE,OAAO,SAAS,cAAc,QAAQ;AAAE,QAAAA,EAAE,aAAa,SAAQ,GAAG,GAAEA,EAAE,aAAa,UAAS,GAAG,GAAEA,EAAE,MAAM,UAAQ;AAAO,cAAMJ,IAAE,MAAI;AAAC,iBAAO,SAAS,KAAK,SAASI,CAAC,MAAI,OAAO,SAAS,KAAK,YAAYA,CAAC,GAAE,OAAO,oBAAoB,WAAUC,GAAE,EAAE;AAAA,QAAG;AAAE,YAAIA;AAAE,cAAMC,IAAE,WAAY,MAAI;AAAC,UAAAP,EAAE,IAAIQ,IAAC,GAAEP;QAAI,GAAG,MAAIF,CAAC;AAAE,QAAAO,IAAE,SAASZ,GAAE;AAAuB,cAAnBA,EAAE,UAAQG,KAAY,CAACH,EAAE,QAAiCA,EAAE,KAAK,SAAlC;AAAuC;AAAO,gBAAMK,IAAEL,EAAE;AAAO,UAAAK,KAAGA,EAAE,MAAK,GAAGL,EAAE,KAAK,SAAS,QAAMM,EAAEU,GAAE,YAAYhB,EAAE,KAAK,QAAQ,CAAC,IAAEI,EAAEJ,EAAE,KAAK,QAAQ,GAAE,aAAaa,CAAC,GAAE,OAAO,oBAAoB,WAAUD,GAAE,EAAE,GAAE,WAAWL,GAAE,GAAG;AAAA,QAAE,GAAE,OAAO,iBAAiB,WAAUK,GAAE,EAAE,GAAE,OAAO,SAAS,KAAK,YAAYD,CAAC,GAAEA,EAAE,aAAa,OAAMX,CAAC;AAAA,MAAE,CAAC,GAAII,GAAE,KAAK,WAAUC,CAAC;AAAE,UAAGC,MAAImB,EAAE;AAAM,cAAM,IAAIT,GAAE,kBAAiB,eAAe;AAAE,YAAMU,IAAE,MAAM,KAAK,cAAc,OAAO,OAAO,OAAO,OAAO,CAAE,GAAC1B,EAAE,mBAAmB,GAAE,EAAC,eAAcO,GAAE,MAAKkB,EAAE,MAAK,YAAW,sBAAqB,cAAab,GAAE,SAAQZ,EAAE,oBAAoB,WAAS,KAAK,cAAa,CAAC,GAAE,EAAC,SAAQ,GAAE,cAAaG,EAAE,aAAY,CAAC;AAAE,aAAO,OAAO,OAAO,OAAO,OAAO,CAAA,GAAGuB,CAAC,GAAE,EAAC,OAAMb,GAAE,iBAAgBa,EAAE,OAAM,UAASX,EAAC,CAAC;AAAA,IAAC,SAAOf,GAAE;AAAC,YAAyBA,EAAE,UAArB,oBAA4B,KAAK,OAAO,EAAC,SAAQ,GAAE,CAAC,GAAEA;AAAA,IAAC;AAAA,EAAC;AAAA,EAAC,MAAM,2BAA2BA,GAAE;AAAC,UAAMG,IAAE,MAAM,KAAK,aAAa,IAAI,IAAIM,GAAE,EAAC,OAAMT,EAAE,oBAAoB,OAAM,UAASA,EAAE,oBAAoB,YAAU,WAAU,UAAS,KAAK,QAAQ,SAAQ,CAAC,CAAC;AAAE,QAAG,EAAEG,KAAGA,EAAE,iBAAe,KAAK,SAAQ;AAAC,UAAG,KAAK,QAAQ;AAAyB,eAAO,MAAM,KAAK,oBAAoBH,CAAC;AAAE,YAAM,IAAIiB,GAAEjB,EAAE,oBAAoB,YAAU,WAAUA,EAAE,oBAAoB,KAAK;AAAA,IAAC;AAAC,UAAMK,IAAEL,EAAE,oBAAoB,gBAAc,KAAK,QAAQ,oBAAoB,gBAAc,OAAO,SAAS,QAAOI,IAAY,OAAOJ,EAAE,oBAAnB,WAAoC,MAAIA,EAAE,mBAAiB;AAAK,QAAG;AAAC,YAAMM,IAAE,MAAM,KAAK,cAAc,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,CAAA,GAAGN,EAAE,mBAAmB,GAAE,EAAC,YAAW,iBAAgB,eAAcG,KAAGA,EAAE,eAAc,cAAaE,EAAC,CAAC,GAAED,KAAG,EAAC,SAAQA,EAAC,CAAC,CAAC;AAAE,aAAO,OAAO,OAAO,OAAO,OAAO,CAAA,GAAGE,CAAC,GAAE,EAAC,OAAMN,EAAE,oBAAoB,OAAM,iBAAgBM,EAAE,OAAM,UAASN,EAAE,oBAAoB,YAAU,UAAS,CAAC;AAAA,IAAC,SAAOG,GAAE;AAAC,WAAIA,EAAE,QAAQ,QAAQ,uBAAuB,IAAE,MAAIA,EAAE,WAASA,EAAE,QAAQ,QAAQ,uBAAuB,IAAE,OAAK,KAAK,QAAQ;AAAyB,eAAO,MAAM,KAAK,oBAAoBH,CAAC;AAAE,YAAMG;AAAA,IAAC;AAAA,EAAC;AAAA,EAAC,MAAM,kBAAkBA,GAAE;AAAC,UAAK,EAAC,UAASE,GAAE,cAAa,EAAC,IAAEF,GAAEG,IAAEN,GAAEG,GAAE,CAAC,YAAW,cAAc,CAAC;AAAE,SAAK,UAAU,IAAI,YAAW,EAAC,UAASE,GAAE,cAAa,EAAC,CAAC,GAAE,MAAM,KAAK,aAAa,WAAW,KAAK,QAAQ,UAASF,EAAE,UAASA,EAAE,YAAY,GAAE,MAAM,KAAK,aAAa,IAAIG,CAAC;AAAA,EAAE;AAAA,EAAC,MAAM,uBAAsB;AAAC,UAAMN,IAAE,KAAK,QAAQ,oBAAoB,YAAU,WAAUG,IAAE,MAAM,KAAK,aAAa,WAAW,IAAIM,GAAE,EAAC,UAAS,KAAK,QAAQ,UAAS,UAAST,GAAE,OAAM,KAAK,MAAK,CAAC,CAAC,GAAEK,IAAE,KAAK,UAAU,IAAI,UAAU;AAAE,WAAOF,KAAGA,EAAE,cAAkBE,KAAN,OAAQ,SAAOA,EAAE,YAAUA,KAAG,KAAK,UAAU,IAAI,YAAWF,CAAC,GAAEA;AAAA,EAAE;AAAA,EAAC,MAAM,mBAAmB,EAAC,OAAMH,GAAE,UAASG,GAAE,UAASE,EAAC,GAAE;AAAC,UAAMD,IAAE,MAAM,KAAK,aAAa,IAAI,IAAIK,GAAE,EAAC,OAAMT,GAAE,UAASG,GAAE,UAASE,EAAC,CAAC,GAAE,EAAE;AAAE,QAAGD,KAAGA,EAAE,cAAa;AAAC,YAAK,EAAC,cAAaJ,GAAE,iBAAgBG,GAAE,YAAWE,EAAC,IAAED,GAAEE,IAAE,MAAM,KAAK,qBAAsB;AAAC,aAAOA,KAAG,OAAO,OAAO,OAAO,OAAO,EAAC,UAASA,EAAE,UAAS,cAAaN,EAAC,GAAEG,IAAE,EAAC,OAAMA,EAAC,IAAE,IAAI,GAAE,EAAC,YAAWE,EAAC,CAAC;AAAA,IAAC;AAAA,EAAC;AAAA,EAAC,MAAM,cAAcL,GAAEG,GAAE;AAAC,UAAK,EAAC,SAAQE,GAAE,cAAaD,EAAC,IAAED,KAAG,CAAA,GAAGG,IAAE,MAAMuB,GAAE,OAAO,OAAO,EAAC,SAAQ,KAAK,WAAU,WAAU,KAAK,QAAQ,UAAS,aAAY,KAAK,QAAQ,aAAY,aAAY,KAAK,QAAQ,aAAY,SAAQ,KAAK,cAAa,GAAE7B,CAAC,GAAE,KAAK,MAAM,GAAE,IAAE,MAAM,KAAK,eAAeM,EAAE,UAASD,GAAED,CAAC;AAAE,WAAO,MAAM,KAAK,kBAAkB,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,CAAE,GAACE,CAAC,GAAE,EAAC,cAAa,GAAE,OAAMN,EAAE,OAAM,UAASA,EAAE,YAAU,UAAS,CAAC,GAAEM,EAAE,QAAM,EAAC,iBAAgBA,EAAE,MAAK,IAAE,IAAI,GAAE,EAAC,WAAU,KAAK,QAAQ,SAAQ,CAAC,CAAC,GAAE,KAAK,cAAc,KAAK,KAAK,2BAA0B,IAAG,EAAC,iBAAgB,KAAK,wBAAuB,cAAa,KAAK,QAAQ,aAAY,CAAC,GAAE,KAAK,gBAAgBF,KAAG,EAAE,OAAO,MAAM,GAAE,OAAO,OAAO,OAAO,OAAO,CAAA,GAAGE,CAAC,GAAE,EAAC,cAAa,EAAC,CAAC;AAAA,EAAC;AAAC;AAKxhxC,IAAIs9D,KAAmB;AAAA,EACnB,iBAAiB;AAAA,EACjB,WAAW;AACf,GAKIC,KAAO,WAAY;AACnB,QAAM,IAAI,MAAM,uDAAuD;AAC3E,GAIIC,KAAiBrhB,GAASA,GAAS,CAAA,GAAImhB,EAAgB,GAAG,EAAE,mBAAmBC,IAAM,gBAAgBA,IAAM,wBAAwBA,IAAM,yBAAyBA,IAAM,kBAAkBA,IAAM,mBAAmBA,IAAM,gBAAgBA,IAAM,QAAQA,IAAM,wBAAwBA,GAAM,CAAA,GAI3RE,KAAe7c,GAAc4c,EAAc,GAQ3CE;AAAA;AAAA,EAA4B,SAAUhoB,GAAQ;AAC9C,IAAAgnB,GAAUgB,GAAYhoB,CAAM;AAC5B,aAASgoB,EAAWp2C,GAAOq2C,GAAmB;AAC1C,UAAI3rB,IAAQ0D,EAAO,KAAK,MAAMioB,KAAqBr2C,CAAK,KAAK;AAC7D,aAAA0qB,EAAM,QAAQ1qB,GACd0qB,EAAM,oBAAoB2rB,GAE1B,OAAO,eAAe3rB,GAAO0rB,EAAW,SAAS,GAC1C1rB;AAAA,IACV;AACD,WAAO0rB;AAAA,EACX,EAAE,KAAK;AAAA,GAEHE,KAAU,kBACVC,KAAW,mBACXC,KAAW,mBACXC,KAAgB,SAAUC,GAAc;AACxC,SAAIA,MAAiB,WAAUA,IAAe,OAAO,SAAS,UACtDJ,GAAQ,KAAKI,CAAY,KAAKF,GAAS,KAAKE,CAAY,MAC5DH,GAAS,KAAKG,CAAY;AAClC,GACIC,KAAmB,SAAUC,GAAiB;AAC9C,SAAO,SAAU52C,GAAO;AACpB,WAAIA,aAAiB,QACVA,IAGPA,MAAU,QACV,OAAOA,KAAU,YACjB,WAAWA,KACX,OAAOA,EAAM,SAAU,WACnB,uBAAuBA,KACvB,OAAOA,EAAM,qBAAsB,WAC5B,IAAIo2C,GAAWp2C,EAAM,OAAOA,EAAM,iBAAiB,IAEvD,IAAIo2C,GAAWp2C,EAAM,KAAK,IAE9B,IAAI,MAAM42C,CAAe;AAAA,EACxC;AACA,GACIC,KAAaF,GAAiB,cAAc,GAC5CG,KAAaH,GAAiB,yBAAyB,GAOvDI,KAAuB,SAAUjgC,GAAS;AAC1C,MAAIn8B;AACJ,EAAIm8B,KAAY,QAAsCA,EAAQ,gBAC1D,QAAQ,KAAK,iKAAiK,GAC9KA,EAAQ,sBAAsBA,EAAQ,uBAAuB,CAAA,GAC7DA,EAAQ,oBAAoB,eAAeA,EAAQ,aACnD,OAAOA,EAAQ,cAEd,GAAAn8B,IAAKm8B,KAAY,OAA6B,SAASA,EAAQ,yBAAyB,QAAQn8B,MAAO,WAAkBA,EAAG,gBAC7H,QAAQ,KAAK,6LAA6L,GAC1Mm8B,EAAQ,oBAAoB,eACxBA,EAAQ,oBAAoB,aAChC,OAAOA,EAAQ,oBAAoB;AAE3C,GAKIkgC,KAAU,SAAU/jC,GAAO0nB,GAAQ;AACnC,UAAQA,EAAO,MAAI;AAAA,IACf,KAAK;AACD,aAAO9F,GAASA,GAAS,IAAI5hB,CAAK,GAAG,EAAE,WAAW,GAAI,CAAE;AAAA,IAC5D,KAAK;AAAA,IACL,KAAK;AACD,aAAO4hB,GAASA,GAAS,CAAE,GAAE5hB,CAAK,GAAG,EAAE,iBAAiB,CAAC,CAAC0nB,EAAO,MAAM,MAAMA,EAAO,MAAM,WAAW,IAAO,OAAO,OAAS,CAAE;AAAA,IAClI,KAAK;AAAA,IACL,KAAK;AACD,aAAI1nB,EAAM,SAAS0nB,EAAO,OACf1nB,IAEJ4hB,GAASA,GAAS,CAAE,GAAE5hB,CAAK,GAAG,EAAE,iBAAiB,CAAC,CAAC0nB,EAAO,MAAM,MAAMA,EAAO,KAAM,CAAA;AAAA,IAC9F,KAAK;AACD,aAAO9F,GAASA,GAAS,CAAE,GAAE5hB,CAAK,GAAG,EAAE,iBAAiB,IAAO,MAAM,OAAS,CAAE;AAAA,IACpF,KAAK;AACD,aAAO4hB,GAASA,GAAS,CAAE,GAAE5hB,CAAK,GAAG,EAAE,WAAW,IAAO,OAAO0nB,EAAO,MAAO,CAAA;AAAA,EACrF;AACL,GAKIsc,KAAuB,SAAUC,GAAM;AACvC,SAAAH,GAAqBG,CAAI,GAClBriB,GAASA,GAAS,CAAA,GAAIqiB,CAAI,GAAG,EAAE,aAAa;AAAA,IAC3C,MAAM;AAAA,IACN,SAAS;AAAA,EACZ,EAAA,CAAE;AACX,GAIIC,KAA4B,SAAUC,GAAU;AAChD,SAAO,QAAQ,aAAa,CAAA,GAAI,SAAS,QAAQA,KAAa,OAA8B,SAASA,EAAS,aAAa,OAAO,SAAS,QAAQ;AACvJ,GAaIC,KAAgB,SAAUH,GAAM;AAChC,MAAI3qB,IAAW2qB,EAAK,UAAUI,IAAuBJ,EAAK,sBAAsBv8D,IAAKu8D,EAAK,oBAAoBK,IAAqB58D,MAAO,SAASw8D,KAA4Bx8D,GAAIC,IAAKs8D,EAAK,SAASzsB,IAAU7vC,MAAO,SAASu7D,KAAev7D,GAAI48D,IAAa1iB,GAAOoiB,GAAM,CAAC,YAAY,wBAAwB,sBAAsB,SAAS,CAAC,GAC9UO,IAASjoB,GAAS,WAAY;AAAE,WAAO,IAAI7zC,GAAGs7D,GAAqBO,CAAU,CAAC;AAAA,GAAI,EAAE,CAAC,GACrF9pD,IAAKgqD,GAAWV,IAAShB,EAAgB,GAAG/iC,IAAQvlB,EAAG,CAAC,GAAGiqD,IAAWjqD,EAAG,CAAC,GAC1EkqD,IAAgBjf,GAAO,EAAK,GAC5Bkf,IAAc/nC,GAAY,SAAU9P,GAAO;AAC3C,WAAA23C,EAAS,EAAE,MAAM,SAAS,OAAO33C,EAAO,CAAA,GACjCA;AAAA,EACV,GAAE,CAAE,CAAA;AACL,EAAA2vB,GAAU,WAAY;AAClB,IAAIioB,EAAc,YAGlBA,EAAc,UAAU,IACvB,WAAY;AAAE,aAAOtC,GAAU,QAAQ,QAAQ,QAAQ,WAAY;AAChE,YAAIwC,GAAMV,GAAUW;AACpB,eAAOlC,GAAY,MAAM,SAAUl7D,GAAI;AACnC,kBAAQA,EAAG,OAAK;AAAA,YACZ,KAAK;AAGD,qBAFAA,EAAG,KAAK,KAAK,CAAC,GAAG,GAAC,EAAI,CAAC,CAAC,GACxBm9D,IAAO,QACDrB,GAAa,KAAM,CAACa,IACnB,CAAC,GAAaG,EAAO,uBAAwB,CAAA,IADI,CAAC,GAAa,CAAC;AAAA,YAE3E,KAAK;AACD,qBAAAL,IAAYz8D,EAAG,KAAI,EAAI,UAChB,CAAC,GAAa88D,EAAO,QAAS,CAAA;AAAA,YACzC,KAAK;AACD,qBAAAK,IAAOn9D,EAAG,QACV48D,EAAmBH,GAAUU,CAAI,GAC1B,CAAC,GAAa,CAAC;AAAA,YAC1B,KAAK;AAAG,qBAAO,CAAC,GAAaL,EAAO,aAAc,CAAA;AAAA,YAClD,KAAK;AACD,qBAAA98D,EAAG,KAAI,GACA,CAAC,GAAa88D,EAAO,QAAS,CAAA;AAAA,YACzC,KAAK;AACD,cAAAK,IAAOn9D,EAAG,QACVA,EAAG,QAAQ;AAAA,YACf,KAAK;AACD,qBAAAg9D,EAAS,EAAE,MAAM,eAAe,MAAMG,EAAM,CAAA,GACrC,CAAC,GAAa,CAAC;AAAA,YAC1B,KAAK;AACD,qBAAAC,IAAUp9D,EAAG,QACbk9D,EAAYhB,GAAWkB,CAAO,CAAC,GACxB,CAAC,GAAa,CAAC;AAAA,YAC1B,KAAK;AAAG,qBAAO;AAAA,gBAAC;AAAA;AAAA;UACnB;AAAA,QACjB,CAAa;AAAA,MACb,CAAS;AAAA,IAAI,EAAA;AAAA,EACR,GAAE,CAACN,GAAQF,GAAoBD,GAAsBO,CAAW,CAAC;AAClE,MAAIG,IAAoBloC,GAAY,SAAUonC,GAAM;AAChD,WAAAH,GAAqBG,CAAI,GAClBO,EAAO,kBAAkBP,CAAI;AAAA,EAC5C,GAAO,CAACO,CAAM,CAAC,GACPQ,IAAiBnoC,GAAY,SAAUgH,GAASnW,GAAQ;AAAE,WAAO20C,GAAU,QAAQ,QAAQ,QAAQ,WAAY;AAC/G,UAAI4C,GAASJ;AACb,aAAOjC,GAAY,MAAM,SAAUl7D,GAAI;AACnC,gBAAQA,EAAG,OAAK;AAAA,UACZ,KAAK;AACD,YAAAg9D,EAAS,EAAE,MAAM,sBAAqB,CAAE,GACxCh9D,EAAG,QAAQ;AAAA,UACf,KAAK;AACD,mBAAAA,EAAG,KAAK,KAAK,CAAC,GAAG,GAAC,EAAI,CAAC,CAAC,GACjB,CAAC,GAAa88D,EAAO,eAAe3gC,GAASnW,CAAM,CAAC;AAAA,UAC/D,KAAK;AACD,mBAAAhmB,EAAG,KAAI,GACA,CAAC,GAAa,CAAC;AAAA,UAC1B,KAAK;AACD,mBAAAu9D,IAAUv9D,EAAG,QACbk9D,EAAYhB,GAAWqB,CAAO,CAAC,GACxB;AAAA,cAAC;AAAA;AAAA,YAAC;AAAA,UACb,KAAK;AAAG,mBAAO,CAAC,GAAaT,EAAO,QAAS,CAAA;AAAA,UAC7C,KAAK;AACD,mBAAAK,IAAOn9D,EAAG,QACVg9D,EAAS,EAAE,MAAM,wBAAwB,MAAMG,EAAM,CAAA,GAC9C;AAAA,cAAC;AAAA;AAAA,YAAC;AAAA,QAChB;AAAA,MACb,CAAS;AAAA,IACJ,CAAA;AAAA,EAAI,GAAE,CAACL,CAAM,CAAC,GACXU,IAASroC,GAAY,SAAUonC,GAAM;AACrC,WAAIA,MAAS,WAAUA,IAAO,CAAE,IACzB5B,GAAU,QAAQ,QAAQ,QAAQ,WAAY;AACjD,aAAOO,GAAY,MAAM,SAAUl7D,GAAI;AACnC,gBAAQA,EAAG,OAAK;AAAA,UACZ,KAAK;AAAG,mBAAO,CAAC,GAAa88D,EAAO,OAAOP,CAAI,CAAC;AAAA,UAChD,KAAK;AACD,mBAAAv8D,EAAG,KAAI,IACHu8D,EAAK,WAAWA,EAAK,YAAY,OACjCS,EAAS,EAAE,MAAM,SAAQ,CAAE,GAExB;AAAA,cAAC;AAAA;AAAA,YAAC;AAAA,QAChB;AAAA,MACjB,CAAa;AAAA,IACb,CAAS;AAAA,EACT,GAAO,CAACF,CAAM,CAAC,GACPW,IAAyBtoC;AAAA;AAAA,IAE7B,SAAUonC,GAAM;AAAE,aAAO5B,GAAU,QAAQ,QAAQ,QAAQ,WAAY;AACnE,YAAI+C,GAAOC,GAAS39D,GAChBC;AACJ,eAAOi7D,GAAY,MAAM,SAAUnoD,GAAI;AACnC,kBAAQA,EAAG,OAAK;AAAA,YACZ,KAAK;AACD,qBAAAA,EAAG,KAAK,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,GAClB,CAAC,GAAa+pD,EAAO,iBAAiBP,CAAI,CAAC;AAAA,YACtD,KAAK;AACD,qBAAAmB,IAAQ3qD,EAAG,QACJ,CAAC,GAAa,CAAC;AAAA,YAC1B,KAAK;AACD,oBAAA4qD,IAAU5qD,EAAG,QACPopD,GAAWwB,CAAO;AAAA,YAC5B,KAAK;AACD,qBAAA39D,IAAKg9D,GACL/8D,IAAK;AAAA,gBACD,MAAM;AAAA,cAC9B,GAC2B,CAAC,GAAa68D,EAAO,QAAS,CAAA;AAAA,YACzC,KAAK;AACD,qBAAA98D,EAAG,MAAM,QAAQ,EAAEC,EAAG,OAAO8S,EAAG,KAAM,GAC9B9S,EAAI,CAAA,GACL;AAAA,gBAAC;AAAA;AAAA,cAAC;AAAA,YACb,KAAK;AAAG,qBAAO,CAAC,GAAcy9D,CAAK;AAAA,UACtC;AAAA,QACb,CAAS;AAAA,MACJ,CAAA;AAAA,IAAI;AAAA,IAAE,CAACZ,CAAM;AAAA,EAAC,GACXc,IAA0BzoC,GAAY,SAAUonC,GAAMv2C,GAAQ;AAAE,WAAO20C,GAAU,QAAQ,QAAQ,QAAQ,WAAY;AACrH,UAAI+C,GAAOG,GAAS79D,GAChBC;AACJ,aAAOi7D,GAAY,MAAM,SAAUnoD,GAAI;AACnC,gBAAQA,EAAG,OAAK;AAAA,UACZ,KAAK;AACD,mBAAAA,EAAG,KAAK,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,GAClB,CAAC,GAAa+pD,EAAO,kBAAkBP,GAAMv2C,CAAM,CAAC;AAAA,UAC/D,KAAK;AACD,mBAAA03C,IAAQ3qD,EAAG,QACJ,CAAC,GAAa,CAAC;AAAA,UAC1B,KAAK;AACD,kBAAA8qD,IAAU9qD,EAAG,QACPopD,GAAW0B,CAAO;AAAA,UAC5B,KAAK;AACD,mBAAA79D,IAAKg9D,GACL/8D,IAAK;AAAA,cACD,MAAM;AAAA,YAC9B,GAC2B,CAAC,GAAa68D,EAAO,QAAS,CAAA;AAAA,UACzC,KAAK;AACD,mBAAA98D,EAAG,MAAM,QAAQ,EAAEC,EAAG,OAAO8S,EAAG,KAAM,GAC9B9S,EAAI,CAAA,GACL;AAAA,cAAC;AAAA;AAAA,YAAC;AAAA,UACb,KAAK;AAAG,mBAAO,CAAC,GAAcy9D,CAAK;AAAA,QACtC;AAAA,MACb,CAAS;AAAA,IACJ,CAAA;AAAA,EAAI,GAAE,CAACZ,CAAM,CAAC,GACXgB,IAAmB3oC,GAAY,WAAY;AAAE,WAAO2nC,EAAO,iBAAgB;AAAA,EAAK,GAAE,CAACA,CAAM,CAAC,GAC1FiB,IAAyB5oC,GAAY,SAAU6oC,GAAK;AAAE,WAAOrD,GAAU,QAAQ,QAAQ,QAAQ,WAAY;AAC3G,UAAIsD,GAASj+D,GACTC;AACJ,aAAOi7D,GAAY,MAAM,SAAUnoD,GAAI;AACnC,gBAAQA,EAAG,OAAK;AAAA,UACZ,KAAK;AACD,mBAAAA,EAAG,KAAK,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,GAClB,CAAC,GAAa+pD,EAAO,uBAAuBkB,CAAG,CAAC;AAAA,UAC3D,KAAK;AAAG,mBAAO,CAAC,GAAcjrD,EAAG,KAAM,CAAA;AAAA,UACvC,KAAK;AACD,kBAAAkrD,IAAUlrD,EAAG,QACPopD,GAAW8B,CAAO;AAAA,UAC5B,KAAK;AACD,mBAAAj+D,IAAKg9D,GACL/8D,IAAK;AAAA,cACD,MAAM;AAAA,YAC9B,GAC2B,CAAC,GAAa68D,EAAO,QAAS,CAAA;AAAA,UACzC,KAAK;AACD,mBAAA98D,EAAG,MAAM,QAAQ,EAAEC,EAAG,OAAO8S,EAAG,KAAM,GAC9B9S,EAAI,CAAA,GACL;AAAA,cAAC;AAAA;AAAA,YAAC;AAAA,UACb,KAAK;AAAG,mBAAO;AAAA,cAAC;AAAA;AAAA;QACnB;AAAA,MACb,CAAS;AAAA,IACJ,CAAA;AAAA,EAAI,GAAE,CAAC68D,CAAM,CAAC,GACXpM,IAAezR,GAAQ,WAAY;AACnC,WAAO/E,GAASA,GAAS,CAAA,GAAI5hB,CAAK,GAAG,EAAE,wBAAwBmlC,GAAwB,yBAAyBG,GAAyB,kBAAkBE,GAAkB,mBAAmBT,GAAmB,gBAAgBC,GAAgB,QAAQE,GAAQ,wBAAwBO,EAAsB,CAAE;AAAA,EAC3T,GAAO;AAAA,IACCzlC;AAAA,IACAmlC;AAAA,IACAG;AAAA,IACAE;AAAA,IACAT;AAAA,IACAC;AAAA,IACAE;AAAA,IACAO;AAAA,EACR,CAAK;AACD,SAAO/oC,GAAM,cAAc8a,EAAQ,UAAU,EAAE,OAAO4gB,KAAgB9e,CAAQ;AAClF,GAwBIssB,KAAW,SAAUpuB,GAAS;AAC9B,SAAIA,MAAY,WAAUA,IAAU0rB,KAC7B1mB,GAAWhF,CAAO;AAC7B;ACvcO,MAAMquB,KAAoB,CAAC,EAAE,WAAAnrC,GAAW,UAAA4e,GAAU,MAAAwsB,0BAEhD,OAAI,EAAA,WAAW/rC,GAAW,uBAAuBW,CAAS,GACvD,UAAA;AAAA,EAAC,gBAAAwhB,EAAA4pB,GAAA,EAAK,WAAU,iBAAiB,CAAA;AAAA,EAChC,gBAAA5pB,EAAA,OAAA,EAAI,WAAU,qBAAqB,UAAA5C,EAAS,CAAA;AACjD,EAAA,CAAA;;;;GCdKysB,KAAa,SCSbC,KAAY,CAAC,EAAE,SAAAC,IAAUv4C,GAAO,cAAc,OAAO,OAAA+T,IAAQskC,IAAY,WAAArrC,IAAY,+BACtF,OAAI,EAAA,OAAA+G,GAAc,KAAKwkC,GAAS,WAAAvrC,GAAsB,KAAI,aAAa,CAAA,GCVtEwrC,KAAU,MACZ,gBAAAhqB,EAAC,QAAK,EAAA,WAAU,UAAU,CAAA;ACQ9B,MAAMiqB,KAAe,CAAC,EAAE,MAAAL,IAAOE,IAAW,MAAA3xC,IAAO,qCAE/C,OAAI,EAAA,WAAU,4BACX,UAAC,gBAAAmgC,EAAA,OAAA,EAAI,WAAU,sDACX,UAAA;AAAA,EAAA,gBAAAtY,EAAC4pB,GAAK,EAAA;AAAA,EACL,gBAAA5pB,EAAA,MAAA,EAAG,WAAU,+BAA+B,UAAK7nB,GAAA;AAAA,oBACjD6xC,IAAQ,EAAA;AAAA,EACb,CAAA,EACJ,CAAA;ACLD,MAAME,KAAW,CAAC,EAAE,UAAA9sB,GAAU,aAAA+c,GAAa,SAAAgQ,GAAS,OAAAC,GAAO,OAAAz3C,GAAO,WAAA6L,EAAU,wBAC9E,OAAI,EAAA,WAAWX,GAAW,aAAaW,CAAS,GAC5C,UAAA;AAAA,EAAA7L,KAAU,gBAAAqtB,EAAA,MAAA,EAAG,WAAU,kCAAkC,UAAMrtB,GAAA;AAAA,EAC/Dy3C,KACI,gBAAApqB,EAAA,OAAA,EAAI,WAAU,mBACX,UAAA,gBAAAA,EAACoqB,IAAM,CAAA,GACX;AAAA,EAEHD,KAAW,gBAAAnqB,EAAC,MAAG,EAAA,WAAU,8BAA8B,UAAQmqB,GAAA;AAAA,EAC/D,gBAAAnqB,EAAA,KAAA,EAAE,WAAU,8CAA8C,UAAYma,GAAA;AAAA,EACtE/c;AAAA,GACL,GCZSitB,KAAiB,CAAC,EAAE,gBAAAC,GAAgB,cAAAC,GAAc,eAAAC,QAEvD,gBAAAxqB,EAAC,MAAG,EAAA,WAAU,wCACT,UAAAmlB,GAAY,IAAI,CAAC,EAAE,MAAAphC,GAAM,OAAA0mC,EAAM,GAAGnyB,MAAU;AACzC,QAAMoyB,IAAW3mC,MAASumC,GACpBxmC,IAAQ0mC,EAAczmC,CAAI,EAAE,OAE5B4mC,IACFJ,KAAgBG,IAAY,gBAAA1qB,EAAAE,IAAA,EAAK,SAAQ,oBAAmB,MAAK,KAAA,CAAK,IAAK,gBAAAoY,EAAC,QAAM,EAAA,UAAA;AAAA,IAAQhgB,IAAA;AAAA,IAAE;AAAA,EAAC,EAAA,CAAA;AAG7F,SAAA,gBAAA0H,EAAC,MAAG,EAAA,WAAWniB,GAAW6sC,KAAY,QAAQ,GAC1C,UAAA,gBAAApS,EAAC,OAAI,EAAA,WAAU,wBACX,UAAA;AAAA,IAAC,gBAAAA,EAAA,OAAA,EAAI,WAAU,qCACV,UAAA;AAAA,MAAAx0B,MAAU,YAAY6mC;AAAA,MACtB7mC,MAAU,aAAa,gBAAAkc,EAACE,MAAK,SAAQ,eAAc,MAAK,MAAK;AAAA,MAC7Dpc,MAAU,YAAY,gBAAAkc,EAACE,MAAK,SAAQ,SAAQ,MAAK,MAAK;AAAA,IAAA,GAC3D;AAAA,IACCuqB;AAAA,EAAA,GACL,KARkD1mC,CAStD;AAEP,CAAA,EACL,CAAA,GC/BK6mC,KAAiC,CAAC;AAAA,EAC3C,oCAAAC;AAAA,EACA,qCAAAC;AACJ,MAGwD;AACpD,QAAM,EAAE,MAAMC,EAAY,IAAIxY,GAAW,GACnC,CAACyY,GAAqCC,CAAsC,IAAI5qB,GAAS,EAAK;AAEpG,SAAAG,GAAU,MAAM;AACR,QAAA,CAACsqB,KAAuCC,MAAgB;AACxD;AAGJ,UAAMG,IAAU,WAAW,MAAMD,EAAuC,EAAI,GAAGJ,CAAkC;AAE1G,WAAA,MAAM,aAAaK,CAAO;AAAA,EAClC,GAAA,CAACH,GAAaF,GAAoCC,CAAmC,CAAC,GAEzFtqB,GAAU,MAAM;AACR,IAAAsqB,KAAuC,CAACE,KAI5CC,EAAuC,EAAK;AAAA,EAC7C,GAAA,CAACH,GAAqCE,GAAqCC,CAAsC,CAAC,GAE9G;AAAA,IACH,qCAAAD;AAAA,EAAA;AAER,GC/BaG,KAAoB,CAACC,GAAgC5f,MAAmC;AAC3F,QAAA,EAAE,MAAA/2B,GAAM,SAAA42C,EAAY,IAAA7f;AAE1B,UAAQ/2B,GAAM;AAAA,IACV,KAAK;AACM,aAAA;AAAA,QACH,GAAG22C;AAAA,QACH,CAACC,EAAQ,QAAQ,GAAG,EAAE,GAAGD,EAAWC,EAAQ,QAAQ,GAAG,aAAa,GAAK;AAAA,MAAA;AAAA,IAIjF,KAAK;AACM,aAAA;AAAA,QACH,GAAGD;AAAA,QACH,CAACC,EAAQ,QAAQ,GAAG,EAAE,aAAa,IAAM,OAAO,SAAS;AAAA,MAAA;AAAA,IAIjE,KAAK,gBAAgB;AACb,UAAA,CAACA,EAAQ;AACT,cAAM,MAAM,wDAAwD;AAGjE,aAAA;AAAA,QACH,GAAGD;AAAA,QACH,CAACC,EAAQ,QAAQ,GAAG;AAAA,UAChB,aACIA,EAAQ,aAAavG,GAAkB,SACjCuG,EAAQ,UAAU,YAClBA,EAAQ,UAAU;AAAA,UAC5B,OAAOA,EAAQ;AAAA,QACnB;AAAA,MAAA;AAAA,IAER;AAAA,IAEA;AACU,YAAA,MAAM,qBAAqB52C,CAAI;AAAA,EAE7C;AACJ,GCrCM62C,KAAkD,CAAC95C,MAAW;AAC1D,QAAA,EAAE,oBAAA+5C,GAAoB,yBAAAC,EAA4B,IAAAh6C;AAEvD,SACI,mBACA,MAAM,YAAY;AACf,UAAM,EAAE,OAAAsS,EAAM,IAAI,MAAM,UAAU,YAAY,MAAM;AAAA,MAChD,MAAM06B,GAAiB;AAAA,IAAA,CAC1B;AAED,IAAI16B,MAAU,YACSynC;EACvB,CACH,EACA,QAAQC,CAAuB;AACxC,GAEMC,KAA+C,CAACj6C,MAAW;AACvD,QAAA,EAAE,oBAAA+5C,GAAoB,yBAAAC,EAA4B,IAAAh6C;AAE3C,eAAA,oBACR,KAAK,YAAY;AACR,UAAA,EAAE,OAAAsS,EAAM,IAAI,MAAM,UAAU,YAAY,MAAM,EAAE,MAAM06B,GAAiB,cAAA,CAAe;AAE5F,IAAI16B,MAAU,YACSynC;EACvB,CACH,EACA,QAAQC,CAAuB;AACxC,GAEME,KAAwC,CAACl6C,MAAW;AACtD,QAAM,EAAE,oBAAA+5C,GAAoB,yBAAAC,GAAyB,gBAAAG,EAAA,IAAmBn6C,GAElEg4C,IAAM,eACNoC,IAAiB,6CAEjBC,IAAY,OAAO,KAAKrC,GAAK,QAAWoC,CAAc,GACtDE,IAAY,OAAO,KAAKtC,GAAK,QAAWoC,CAAc;AAE5D,EAAAC,KAAA,QAAAA,EAAW,SACXC,KAAA,QAAAA,EAAW;AAEL,QAAAC,IAAgB,EAAEF,KAAaC;AAErC,EAAIC,KACmBR,KAGRI,EAAA;AAAA,IACX,MAAM;AAAA,IACN,SAAS;AAAA,MACL,UAAU7G,GAAkB;AAAA,MAC5B,OAAOiH,IAAgB,WAAW;AAAA,IACtC;AAAA,EAAA,CACH,GAEuBP;AAC5B,GAEMQ,KAA4C,CAACx6C,MAAW;AACpD,QAAA,EAAE,gBAAAm6C,EAAmB,IAAAn6C;AAEZ,EAAAm6C,EAAA,EAAE,MAAM,aAAa,SAAS,EAAE,UAAU7G,GAAkB,YAAY,EAAA,CAAG;AAC9F,GAEamH,KAA4E;AAAA,EACrF,CAACnH,GAAkB,iBAAiB,GAAGwG;AAAA,EACvC,CAACxG,GAAkB,aAAa,GAAG2G;AAAA,EACnC,CAAC3G,GAAkB,MAAM,GAAG4G;AAAA,EAC5B,CAAC5G,GAAkB,WAAW,GAAGkH;AACrC,GCvDaE,KAAa,CAAC,EAAE,UAAAh6C,QAAgC;AACnD,QAAA,EAAE,YAAAoxC,MAAeE,MACjB,CAACx4D,GAAG04D,CAAgB,IAAIpa;AAAA,IAC1B;AAAA,IACAtE;AAAA,IACA0P;AAAA,EAAA,GAEE,CAAC8V,GAAemB,CAAc,IAAIpD,GAAW4C,IAAmB9F,EAAsB,GACtF,CAAC8G,GAAgCC,CAAiC,IAAI/rB,GAAS,EAAK,GACpF,CAACgsB,GAAoBC,CAAqB,IAAIjsB,GAAS,EAAK,GAE5DksB,IAAcpH,GAAY,KAAK,CAAChoC,MAAS,CAACqtC,EAAcrtC,EAAK,IAAI,EAAE,WAAW;AAEpF,MAAI,CAACovC;AACK,UAAA,IAAI,MAAM,0FAA0F;AAG9G,QAAMC,IAAkBD,EAAY,MAC9BE,IAAgBtH,GAAYA,GAAY,SAAS,CAAC,EAAE,MAEpD,EAAE,qCAAA6F,EAAoC,IAAIJ,GAA+B;AAAA,IAC3E,oCAAoC14C,EAAS;AAAA,IAC7C,qCAAqCm6C,KAAsBG,MAAoBhO,GAAiB;AAAA,EAAA,CACnG,GAEKkO,IAA0B,MAAM;AAClC,IAAAN,EAAkC,EAAK,GACvCE,EAAsB,EAAI,GAE1BL,GAA0BO,CAAe,EAAE;AAAA,MACvC,oBAAoB,MAAMJ,EAAkC,EAAI;AAAA,MAChE,yBAAyB,MAAME,EAAsB,EAAK;AAAA,MAC1D,gBAAgB,CAAC9gB,MAAWmgB,EAAengB,CAAM;AAAA,IAAA,CACpD,GAEGghB,MAAoBC,KACH/I,EAAA,EAAE,aAAa,GAAA,CAAM;AAAA,EAC1C,GAGEiJ,IAAwB,MAAM;AAChC,IAAAP,EAAkC,EAAK,GACxBT,EAAA,EAAE,MAAM,WAAW,SAAS,EAAE,UAAUa,KAAmB;AAAA,EAAA;AAG9E,SAAAhsB,GAAU,MAAM;AACZ,IAAKwqB,MAILsB,EAAsB,EAAK,GAC3BF,EAAkC,EAAI;AAAA,EAAA,GACvC,CAACpB,CAAmC,CAAC,GAExCxqB,GAAU,MAAM;;AACZ,IAAA4rB,EAAkC,EAAK,GAExBT,EAAA;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA,QACL,UAAU7G,GAAkB;AAAA,QAC5B,OAAOrG,MAA6BjzD,IAAA83D,EAAW,SAASwB,GAAkB,iBAAiB,MAAvD,gBAAAt5D,EAA0D,QAAQ;AAAA,MAC1G;AAAA,IAAA,CACH,GAEcmgE,EAAA;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA,QACL,UAAU7G,GAAkB;AAAA,QAC5B,QAAOr5D,IAAA63D,EAAW,SAASwB,GAAkB,aAAa,MAAnD,gBAAAr5D,EAAsD;AAAA,MACjE;AAAA,IAAA,CACH;AAAA,EAAA,GACF,CAAC63D,EAAW,QAAQ,CAAC,GAGpB,gBAAAhL;AAAA,IAAC4R;AAAA,IAAA;AAAA,MACG,aAAaqC,EAAY;AAAA,MACzB,SAASA,EAAY;AAAA,MACrB,OAAOA,EAAY;AAAA,MACnB,OAAM;AAAA,MAEN,UAAA;AAAA,QAAA,gBAAAvsB;AAAA,UAACqqB;AAAA,UAAA;AAAA,YACG,gBAAgBmC;AAAA,YAChB,cAAcL,KAAkCK,MAAoB1H,GAAkB;AAAA,YACtF,eAAA0F;AAAA,UAAA;AAAA,QACJ;AAAA,QAEA,gBAAAxqB,EAAC,KAAE,EAAA,WAAU,wBACR,UAAAmsB,IAAiCI,EAAY,aAAa,aAAaA,EAAY,aAAa,QACrG,CAAA;AAAA,0BACCnyB,IACG,EAAA,UAAA;AAAA,UAAA,gBAAA4F;AAAA,YAACvf;AAAA,YAAA;AAAA,cACG,WAAU;AAAA,cACV,UAAU4rC;AAAA,cACV,SAASK;AAAA,cAER,UAAYH,EAAA;AAAA,YAAA;AAAA,UACjB;AAAA,UACCC,MAAoBC,KAAiBD,MAAoB1H,GAAkB,qBACxE,gBAAA9kB;AAAA,YAACvf;AAAA,YAAA;AAAA,cACG,WAAU;AAAA,cACV,UAAU4rC;AAAA,cACV,SAASM;AAAA,cACZ,UAAA;AAAA,YAAA;AAAA,UAED;AAAA,QAAA,GAER;AAAA,QACCN,uBAAuBrC,IAAQ,EAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAG5C;ACpHO,MAAM4C,KAAgB,CAAC;AAAA,EAC1B,YAAY,EAAE,MAAAhD,IAAOE,IAAW,QAAA+C,IAAS5C,OAAiB,CAAC;AAAA,EAC3D,UAAA/3C,IAAW,CAAC;AAChB,MAA0B;AAChB,QAAA,EAAE,YAAAoxC,MAAeE;AAEvB,SAAIF,EAAW,YACJ,gBAAAtjB,EAAC6sB,GAAO,EAAA,MAAK,kCAAkC,CAAA,IAIrD,gBAAA7sB,EAAA2pB,IAAA,EAAkB,MAAAC,GACf,UAAA,gBAAA5pB,EAACksB,IAAW,EAAA,UAAU,EAAE,GAAGrH,IAAkB,GAAG3yC,EAAS,EAAG,CAAA,EAChE,CAAA;AAER;ACxBO,MAAM46C,KAAoB,CAAC,EAAE,cAAAnmB,QAA6C;AAC7E,QAAMomB,IAAgB;AAoBlB,SAAA,gBAAA/sB,EAAC2pB,IAAkB,EAAA,MAAMG,IACrB,UAAA,gBAAA9pB;AAAA,IAACkqB;AAAA,IAAA;AAAA,MACG,WAAU;AAAA,MACV,SAAQ;AAAA,MACR,aArBN,gBAAA5R,EAAAljC,IAAA,EAAA,UAAA;AAAA,QAAA;AAAA,0BAEG,MAAG,EAAA;AAAA,QAAE;AAAA,QAEN,gBAAAkjC,EAAC,QAAK,EAAA,WAAU,8BAA6B,UAAA;AAAA,UAAA;AAAA,UAAE3R;AAAA,UAAa;AAAA,QAAA,GAAC;AAAA,QAC7D,gBAAA2R,EAAC,QAAK,EAAA,WAAU,oBAAmB,UAAA;AAAA,UAAA;AAAA,UACG;AAAA,UAClC,gBAAAtY,EAAC,OAAE,MAAM+sB,GAAe,QAAO,UAAS,KAAI,uBAAsB,UAElE,cAAA,CAAA;AAAA,UAAI;AAAA,QAAA,GAER;AAAA,QACC,gBAAA/sB,EAAA,QAAA,EAAK,WAAU,aAAY,UAA+B,mCAAA;AAAA,MAC/D,EAAA,CAAA;AAAA,MASQ,OAAO4kB;AAAA,MAEP,UAAA,gBAAA5kB;AAAA,QAACvf;AAAA,QAAA;AAAA,UACG,WAAU;AAAA,UACV,SAAS,MAAM,OAAO,KAAKssC,GAAe,UAAU,qBAAqB;AAAA,UAC5E,UAAA;AAAA,QAAA;AAAA,MAED;AAAA,IAAA;AAAA,EAER,EAAA,CAAA;AAER,GC1CaC,KAAe,MAGhB,gBAAA1U,EAAAljC,IAAA,EAAA,UAAA;AAAA,EAAC,gBAAA4qB,EAAA6hB,IAAA,EAAM,KAAI,MAAK,WAAU,eAAc,MAAK,yBAAwB,MAAK,QAAQ,CAAA;AAAA,EAClF,gBAAAvJ,EAAC,KAAE,EAAA,WAAU,0CAAyC,UAAA;AAAA,IAAA;AAAA,sBAEjD,MAAG,EAAA;AAAA,IAAE;AAAA,EAAA,GAEV;AACJ,EAAA,CAAA,GCHK2U,KAAqB,CAAC,EAAE,MAAArD,GAAM,UAAAxsB,GAAU,WAAA5e,QAE7C,gBAAAwhB,EAAC,OAAI,EAAA,WAAU,yBACX,UAAA,gBAAAsY,EAAC,SAAI,WAAWz6B,GAAWW,GAAW,iDAAiD,GACnF,UAAA;AAAA,EAAA,gBAAAwhB,EAAC4pB,GAAK,EAAA;AAAA,EACLxsB;AAAA,EACL,CAAA,EACJ,CAAA,GCDK8vB,KAAiB,CAAC;AAAA,EAC3B,SAAAC;AAAA,EACA,WAAAtiB;AAAA,EACA,iBAAAuiB;AAAA,EACA,YAAY,EAAE,MAAAxD,IAAOE,IAAW,SAAAuD,IAAUL,IAAc,QAAAH,IAAS5C,GAAa,IAAI,CAAC;AACvF,MACWpf,sBACFgiB,GAAO,EAAA,MAAK,4BAA2B,IAExC,gBAAAvU,EAAC2U,MAAmB,MAAArD,GAChB,UAAA;AAAA,EAAA,gBAAA5pB,EAACqtB,GAAQ,EAAA;AAAA,EACT,gBAAArtB,EAACvf,IAAO,EAAA,WAAU,mBAAkB,SAAS0sC,GAAS,MAAK,SAAQ,SAAQ,WAAU,UAErF,SAAA,CAAA;AAAA,EACCC,KACI,gBAAAptB,EAAAstB,IAAA,EAAM,SAAQ,YAAW,MAAMF,EAAgB,SAAS;AAEjE,EAAA,CAAA,GC7BKG,KAAwC,CAACviE,GAA0BwgD,MAAmC;AAC/G,QAAMjvB,IAAgBivB,EAAO,OAEvBgiB,IAAUjxC,EAAM,KAAK,EAAE,SAAS;AAE/B,SAAA,EAAE,OAAAA,GAAO,SAAAixC;AACpB,GCKMC,KAAkB,CAAC;AAAA,EACrB,SAAAN;AAAA,EACA,cAAAjX;AAAA,EACA,YAAAwR;AAAA,EACA,eAAAgG;AAAA,EACA,eAAAC,IAAgB;AACpB,MAA4B;AAClB,QAAA,CAAChF,GAAMiF,CAAY,IAAIrF,GAAoCgF,IAAc,EAAE,OAAO,IAAI,SAAS,GAAO,CAAA,GACtG,CAACM,GAAUC,CAAgB,IAAIvF,GAAoCgF,IAAc,EAAE,OAAO,IAAI,SAAS,GAAO,CAAA,GAC9G,CAACQ,GAAeC,CAAgB,IAAI3tB,GAAkB,EAAK,GAC3D,CAAC4tB,GAAmBC,CAAoB,IAAI7tB,GAAkB,EAAK,GAEnE,EAAE,SAAS8tB,EAAgB,IAAAxF,GAC3B,EAAE,SAASyF,EAAoB,IAAAP,GAE/BQ,IAAcF,KAAeC,GAE7BE,IAAmB,CAACvxB,MAA+C6wB,EAAa,EAAE,OAAO7wB,EAAM,OAAO,MAAA,CAAO,GAE7GwxB,IAAuB,CAACxxB,MAC1B+wB,EAAiB,EAAE,OAAO/wB,EAAM,OAAO,MAAA,CAAO,GAE5CyxB,IAAiB,MAAM;AACzB,IAAKL,KACDH,EAAiB,EAAI;AAAA,EACzB,GAGES,IAAqB,MAAM;AAC7B,IAAKL,KACDF,EAAqB,EAAI;AAAA,EAC7B;AAqBJ,SACK,gBAAA5V,EAAA,QAAA,EAAK,WAAU,qBAAoB,UAnBnB,OAAOvb,MAA4C;AAGpE,QAFAA,EAAM,eAAe,GAEjB,EAACsxB,GAIL;AAAA,MAAAnY,EAAa,EAAI;AAEb,UAAA;AACA,cAAMiX,EAAQxE,EAAK,OAAOkF,EAAS,KAAK;AAAA,eACnCh9C,GAAY;AACjB,QAAA68C,EAAc78C,CAAK;AAAA,MACvB;AAEA,MAAAqlC,EAAa,EAAK;AAAA;AAAA,EAAA,GAKd,UAAA;AAAA,IAAA,gBAAAlW;AAAA,MAACgf;AAAAA,MAAA;AAAA,QACG,IAAG;AAAA,QACH,cAAc+O,IAAgB,OAAOJ,CAAa,kBAAkB;AAAA,QACpE,WAAS;AAAA,QACT,cAAa;AAAA,QACb,MAAK;AAAA,QACL,aAAa,cAAcA,CAAa;AAAA,QACxC,OAAOhF,EAAK;AAAA,QACZ,UAAU2F;AAAA,QACV,QAAQE;AAAA,QACR,SAAS,MAAMR,EAAiB,EAAK;AAAA,MAAA;AAAA,IACzC;AAAA,IAEA,gBAAAhuB;AAAA,MAACgf;AAAAA,MAAA;AAAA,QACG,IAAG;AAAA,QACH,cAAciP,IAAoB,8BAA8B;AAAA,QAChE,cAAa;AAAA,QACb,MAAK;AAAA,QACL,aAAY;AAAA,QACZ,OAAOJ,EAAS;AAAA,QAChB,UAAUU;AAAA,QACV,QAAQE;AAAA,QACR,SAAS,MAAMP,EAAqB,EAAK;AAAA,MAAA;AAAA,IAC7C;AAAA,IAEA,gBAAAluB,EAACvf,MAAO,MAAK,UAAS,MAAK,SAAQ,SAAQ,WAAU,UAErD,SAAA,CAAA;AAAA,IAECinC,KACG,gBAAApP,EAAC,OAAI,EAAA,WAAU,wBACX,UAAA;AAAA,MAAA,gBAAAtY,EAACE,MAAK,WAAU,cAAa,SAAQ,SAAQ,MAAK,MAAK;AAAA,MACtDwnB,EAAW;AAAA,IAAA,GAChB;AAAA,EAER,EAAA,CAAA;AAER;ACzFO,MAAMgH,KAAkB,CAAC;AAAA,EAC5B,SAAAvB;AAAA,EACA,eAAAQ;AAAA,EACA,YAAY,EAAE,MAAA/D,IAAOE,IAAW,SAAAuD,IAAUL,IAAc,QAAAH,IAAS5C,GAAa,IAAI,CAAC;AACvF,MAA4B;AACxB,QAAM,CAACpf,GAAWqL,CAAY,IAAI7V,GAAS,EAAK,GAC1C,CAACqnB,GAAYgG,CAAa,IAAIrtB,GAAuB,IAAI;AAE/D,SAAIwK,IACO,gBAAA7K,EAAC6sB,GAAO,EAAA,MAAK,2BAA2B,CAAA,IAI/C,gBAAAvU,EAAC2U,MAAmB,MAAArD,GAChB,UAAA;AAAA,IAAA,gBAAA5pB,EAACqtB,GAAQ,EAAA;AAAA,IACT,gBAAArtB;AAAA,MAACytB;AAAA,MAAA;AAAA,QACG,SAAAN;AAAA,QACA,cAAAjX;AAAA,QACA,YAAAwR;AAAA,QACA,eAAAgG;AAAA,QACA,eAAAC;AAAA,MAAA;AAAA,IACJ;AAAA,EACJ,EAAA,CAAA;AAER;ACnCgB,SAAAgB,GAA0BvX,GAAqBwX,GAAiB;AAC5E,QAAM,CAACC,GAASC,CAAU,IAAIzuB,GAAS,EAAI,GACrC1mC,IAAK2mC,GAAWC,EAAgB;AAEtC,SAAAC,GAAU,MAAM;AACR,QAAAuuB;AAEJ,YAAC,YAAY;AACL,UAAA,CAACp1D,EAAG;AACJ;AAGA,UAAAkvC;AAEA,UAAA;AACA,QAAAA,IAAY,MAAMlvC,EAAG,WAAW,iBAAiBy9C,CAAW;AAAA,eACvDvmC,GAAO;AACZ,gBAAQ,KAAKA,CAAK;AAClB;AAAA,MACJ;AAEM,YAAAm+C,IAAQnmB,EAAU,eAAe,KAAK,CAACmmB,MAAUA,EAAM,OAAOJ,CAAO;AAE3E,MAAKI,MAILD,IAA6B,MAAMC,EAAM,2BAA2B,CAAC,EAAE,qBAAAC,QAA0B;AAC7F,QAAIA,MAAwB,UAI5BH,EAAWG,CAAmB;AAAA,MAAA,CACjC,GAEUH,EAAA,CAAC,CAACE,EAAM,mBAAmB;AAAA,IAAA,MAGnC,MAAMD,KAAA,gBAAAA;AAAA,KACd,CAAC3X,GAAawX,GAASj1D,EAAG,UAAU,CAAC,GAEjCk1D;AACX;AC1CO,MAAMK,KAAY,CAAC,EAAE,SAAAN,GAAS,aAAAxX,QAA2C;AACtE,QAAAyX,IAAUF,GAA0BvX,GAAawX,CAAO,GAExDO,IAAYxuC;AAAA,IACd,CAACyuC,MAAmB;AACQ,MAAAC,GAAA;AAAA,QACpB,QAAAD;AAAA,QACA,SAAAR;AAAA,QACA,aAAAxX;AAAA,MAAA,CACH;AAAA,IACL;AAAA,IACA,CAACwX,GAASxX,CAAW;AAAA,EAAA;AAGzB,SAAOyX,KAAY,gBAAA7uB,EAAAsvB,IAAA,EAAgB,OAAM,WAAU,SAAAT,GAAkB,WAAAM,EAAsB,CAAA;AAC/F,GCjBaI,KAAgB,CAACn0C,MAClB,gBAAA4kB,EAAAwvB,IAAA,EAA2B,GAAGp0C,GAAO,WAAW,EAAE,SAAS,IAAO,WAAWA,EAAM,UAAU,UAAA,EAAa,CAAA,GCDzGq0C,KAAS,MACX;ACQJ,MAAMC,KAA4B,CAAC,EAAE,WAAAlxC,GAAW,YAAAwjC,GAAY,SAAAnK,GAAS,OAAAllC,QAA6C;AACrH,QAAM,EAAE,uBAAAg9C,GAAuB,4BAAAC,GAA4B,eAAAC,EAAA,IAAkBC;AAGzE,SAAA,gBAAA9vB,EAAC2vB,GACG,EAAA,UAAA,gBAAA3vB,EAAC4vB,GACG,EAAA,UAAA,gBAAA5vB,EAAC6vB,GAAc,EAAA,WAAArxC,GAAsB,YAAAwjC,GAAwB,SAAAnK,GAAkB,OAAAllC,GAAc,EAAA,CACjG,EACJ,CAAA;AAER;AClBO,MAAMo9C,KAAmBC,GAAqB;ACiB9C,MAAMC,KAAe,CAAC,EAAE,WAAAzxC,GAAW,YAAAwjC,GAAY,SAAAnK,GAAS,OAAAllC,QAA+B;AACpF,QAAAhZ,IAAK2mC,GAAWC,EAAgB,GAChC,EAAE,UAAA2vB,MAAa/M,MACf,CAACn4D,GAAGw5C,CAAe,IAAI8E,GAAW,kBAAkBrE,IAAmCsD,EAAyB,GAChH;AAAA,IACF,OAAO,EAAE,iBAAA0b,EAAgB;AAAA,MACzBT,GAAiB,GAEf2M,IAAexvC,GAAY,YAAY;;AACrC,QAAA,YAAYhnB,KAAMA,EAAG,QAAQ;AAC7B,YAAMgqC,IAAkB,WAElB,EAAE,gBAAAE,GAAgB,uBAAAC,EAAsB,IAAI,MAAMnqC,EAAG,OAAO,QAAQ,QAAQ;AAAA,QAC9E,cAAc0pC,GAAsB;AAAA,QACpC,WAAW;AAAA,UACP,SAAS;AAAA,UACT,MAAM;AAAA,UACN,eAAe;AAAA,YACX,EAAE,SAAS,WAAW,MAAM,WAAW,IAAIM,GAAiB,WAAW,GAAK;AAAA,YAC5E,EAAE,SAAS,WAAW,MAAM,UAAU,IAAI,SAAS;AAAA,UACvD;AAAA,QACJ;AAAA,MAAA,CACH;AAID,UAAI,EAFsBE,MAAkBC,KAAA,gBAAAA,EAAuB,QAAOH;AAGtE;AAAA,IAER;AAWU,IAAAysB,GAAA,MAAMnM,EAAgB,EAAI,CAAC;AAEjC,QAAA;AACW,MAAAiM,KAAA,QAAAA;AAAA,aACNr/C,GAAO;AACZ,cAAQ,MAAMA,CAAK;AAAA,IACvB;AAEA,IAAA2zB,EAAgB,IAAI,GAEd,QAAAh5C,IAAAmO,EAAG,gBAAH,gBAAAnO,EAAgB,OAAO,aAE7B,OAAO,SAAS;EAAO,GACxB,CAACmO,GAAIu2D,CAAQ,CAAC;AAGb,SAAA,gBAAAlwB;AAAA,IAACqwB,GAAU;AAAA,IAAV;AAAA,MACG,WAAA7xC;AAAA,MACA,YAAAwjC;AAAA,MACA,SAAAnK;AAAA,MACA,UAAUsY;AAAA,MACV,OAAAx9C;AAAA,IAAA;AAAA,EAAA;AAGZ,GC/Ea29C,KAA+C;AAAA,EACxD;AAAA,IACI,MAAM;AAAA,IACN,aAAa;AAAA,IACb,MAAM;AAAA,IACN,SAAS,CAACC,MAAcA,EAAUR,EAAgB;AAAA,EACtD;AAAA,EACA;AAAA,IACI,MAAM;AAAA,IACN,aAAa;AAAA,IACb,MAAM;AAAA,IACN,SAAS,CAACQ,MAAcA,EAAUb,EAAyB;AAAA,IAC3D,gBAAgB;AAAA,EACpB;AAAA,EACA;AAAA,IACI,MAAM;AAAA,IACN,aAAa;AAAA,IACb,MAAM;AAAA,IACN,SAAS,CAACa,MAAcA,EAAUN,EAAY;AAAA,EAClD;AACJ,GCtBaO,KAAuB,CAACC,MAC1B,CAAC,EAAE,SAAA5Y,EAAQ,wBAAmB4Y,GAAA,EAAgB,WAAU,qBAAoB,SAAA5Y,EAAkB,CAAA;ACWlG,MAAM6Y,KAAa,CAAC,EAAE,SAAA1Y,GAAS,uBAAA4N,QAA6C;AAC/E,QAAM,CAACH,GAAOkL,CAAQ,IAAItwB,GAA0C,GAC9DuwB,IAAkBpnB,GAA8B,IAAI,GACpDyR,IAAa5F,MACbwb,IAAalwC,GAAY,MAAMgwC,EAAS,MAAS,GAAG,CAAA,CAAE,GACtDG,IAAc,EAAQrL;AAE5B,EAAAjlB,GAAU,MAAM;AACR,IAAA,CAACswB,KAAe7V,MAAe,YAIxB4V;EAAA,GACZ,CAACC,GAAa7V,CAAU,CAAC;AAE5B,QAAMrB,IAAkEj5B;AAAA,IACpE,CAACowC,GAASvlB,MAAW;AACX,YAAAwlB,IAAchZ,EAAQ,KAAK,CAAC,EAAE,MAAAj0B,EAAK,MAAMA,MAASynB,EAAO,IAAI;AAEnE,UAAI,CAACwlB,GAAa;AACN,gBAAA;AAAA,UACJ,gBAAgBxlB,EAAO,IAAI,iDAAiD,KAAK,UAAUwM,CAAO,CAAC;AAAA,QAAA;AAEvG;AAAA,MACJ;AAEM,YAAAuY,IAAY,CAACE,MAAqC;AAC9ChL,cAAAA,IAAQ+K,GAAqBC,CAAe;AAElD,QAAAE,EAAS,MAAMlL,CAAK;AAAA,MAAA;AAGxB,MAAAuL,EAAY,QAAQT,CAAS;AAAA,IACjC;AAAA,IACA,CAACvY,CAAO;AAAA,EAAA;AAMM,SAAA1D,GAAA,EAAE,WAAW,WAAW,SAASuc,GAAY,KAAKD,GAAiB,MAAM,CAACE,EAAa,CAAA,GAEzG3c,GAAiB,EAAE,SAAS0c,GAAY,MAAM,CAACC,GAAa,GAIpD,gBAAAxY,EAAAljC,IAAA,EAAA,UAAA;AAAA,IAAA,gBAAA4qB;AAAA,MAAC0Y;AAAA,MAAA;AAAA,QACG,YAAW;AAAA,QACX,UAAS;AAAA,QACT,SAAAV;AAAA,QACA,mBAAmB4B;AAAA,QACnB,MAAK;AAAA,QACL,eAAc;AAAA,QACd,WAAU;AAAA,QACV,QAAQ,CAAC,GAAG,CAAC;AAAA,MAAA;AAAA,IACjB;AAAA,IACA,gBAAA5Z;AAAA,MAACwlB;AAAA,MAAA;AAAA,QACG,WAAW3nC,GAAW,6BAA6B+nC,CAAqB;AAAA,QACxE,QAAQkL;AAAA,QACR,SAASD;AAAA,QACT,OAAApL;AAAA,QACA,UAAS;AAAA,QACT,KAAKmL;AAAA,MAAA;AAAA,IACT;AAAA,EACJ,EAAA,CAAA;AAER,GC9EaK,KAA0B,MAE/B,gBAAAjxB,EAAC,QAAG,WAAU,8BACV,4BAAC0wB,IAAW,EAAA,SAASJ,GAA0B,CAAA,EACnD,CAAA,GCJKY,KAAqB,MAAM;AAC9B,QAAA,EAAE,uBAAAC,MAA0Brd,MAC5BT,IAAgBD,MAKhBge,IAHsB3mB,GAAQ,MACzB4I,EAAc,OAAO,CAAC,EAAE,OAAAvvB,QAAYA,MAAU,YAAYA,MAAU,OAAO,GACnF,CAACuvB,CAAa,CAAC,EACmC;AAE9C,SAAA+d,IAA2B,KAAKD,IAClC,gBAAAnxB,EAAA,OAAA,EAAI,WAAU,iDACV,UAA2BoxB,IAAA,MAAMA,IAA2B,MAAA,CACjE,IACA;AACR;ACRa,MAAAC,KAA2B,CAACj2C,MAAyC;AAC9E,QAAM,EAAE,WAAAoD,GAAW,QAAAoC,GAAQ,GAAG2lB,MAASnrB;AAGnC,SAAA,gBAAAk9B,EAAC,SAAI,WAAWz6B,GAAWW,GAAW,4BAA4B,GAAI,GAAG+nB,GACrE,UAAA;AAAA,IAAC,gBAAAvG,EAAA6Z,IAAA,EAAW,MAAK,QAAO,MAAK,MAAK,UAAS,MAAK,SAAQ,SAAS,CAAA;AAAA,sBAChEqX,IAAmB,EAAA;AAAA,EACxB,EAAA,CAAA;AAER,GCNaI,KAAqB,CAAC,EAAE,WAAA9yC,GAAW,YAAAwjC,GAAY,SAAAnK,GAAS,UAAA3lC,GAAU,OAAAS,QAAqC;AAChH,QAAM,EAAE,uBAAAg9C,GAAuB,4BAAAC,GAA4B,OAAAnK,EAAA,IAAUqK;AAErE,SACK,gBAAA9vB,EAAA2vB,GAAA,EACG,UAAC,gBAAA3vB,EAAA4vB,GAAA,EACG,UAAC,gBAAA5vB,EAAAylB,GAAA,EAAM,WAAAjnC,GAAsB,YAAAwjC,GAAwB,SAAAnK,GAAkB,UAAA3lC,GAAoB,OAAAS,GAAc,EAAA,CAC7G,EACJ,CAAA;AAER,GCfa4+C,KAAqC,CAAC;AAAA,EAC/C,QAAA9wC,IAAS4wC;AAAA,EACT,OAAA5L,IAAQ6L;AAAA,EACR,UAAA7nC,IAAW;AAAA,EACX,GAAG8c;AACP,MAA4D;AACxD,QAAM8M,IAAgBD,MAChBz5C,IAAK2mC,GAAWC,EAAgB,GAChCixB,IAAgC7wC,GAAY,YAAY;AAC1D,UAAM,QAAQ,IAAI0yB,EAAc,IAAI,CAAC,EAAE,IAAAjjC,EAAA,MAASzW,EAAG,cAAc,SAASyW,GAAI,MAAM,CAAC,CAAC;AAAA,EAAA,GACvF,CAACijC,CAAa,CAAC;AAGd,SAAA,gBAAArT;AAAA,IAAC2lB;AAAA,IAAA;AAAA,MACG,QAAAllC;AAAA,MACA,OAAAglC;AAAA,MACA,UAAAh8B;AAAA,MACA,SAAS+nC;AAAA,MACR,GAAGjrB;AAAA,IAAA;AAAA,EAAA;AAGhB;ACxBO,MAAMkrB,KAA6B,MAG9B,gBAAAnZ,EAAAljC,IAAA,EAAA,UAAA;AAAA,EAAC,gBAAA4qB,EAAAuxB,IAAA,EAAmC,KAAI,KAAK,CAAA;AAAA,oBAC5CN,IAAwB,EAAA;AAC7B,EAAA,CAAA,GCaKS,KAAmB,CAAC;AAAA,EAC7B,UAAAxB;AAAA,EACA,YAAApkB;AAAA,EACA,WAAA6lB;AAAA,EACA,QAAA9E,IAAS5C;AAAA,EACT,6BAAA2H;AACJ,MAA6B;;AACzB,QAAM,EAAE,eAAAC,GAAe,wBAAAC,QAA2BtmE,IAAAsgD,KAAA,gBAAAA,EAAY,eAAZ,gBAAAtgD,EAAwB,WAAU,IAC9E,EAAE,mBAAA4pD,MAAsBF,MACxB,EAAE,yBAAA6c,MAA4BC,MAE9BC,KAAcxmE,IAAA,OAAe,cAAf,gBAAAA,EAA0B,iBAExCm+D,IAAOiI,MAAkBI,IAAclM,KAAwC0J,KAC/EyC,IAAsBJ,MAA2BG,IAAaR,KAA6B,SAE3FxkB,IAAeD,MACf;AAAA,IACF,OAAO,EAAE,cAAAgX,EAAa;AAAA,MACtBR,GAAiB;AAEL,EAAAzhB,GAAA6vB,MAAgC,MAAS5N,CAAY,GAErExjB,GAAU,MAAM;AACZ,IAAKyxB,KAIL7c,EAAkB,EAAE,MAAO,OAAe,KAAM,CAAA;AAAA,EAAA,GACjD,CAAC6c,GAAY7c,CAAiB,CAAC;AAElC,QAAM8G,IAAezR;AAAA,IACjB,OAAO,EAAE,UAAAylB,GAAU,mBAAmByB,KAAA,gBAAAA,EAAW,UAAU,qBAAqBA,KAAA,gBAAAA,EAAW;IAC3F,CAACzB,GAAUyB,KAAA,gBAAAA,EAAW,UAAUA,KAAA,gBAAAA,EAAW,UAAU;AAAA,EAAA;AAGzD,SACK,gBAAArZ,EAAA4K,GAA2B,UAA3B,EAAoC,OAAOhH,GACtC,UAAA;AAAA,KAAA,CAACjP,KAAgB,CAAC8kB,MAA6B,gBAAA/xB,EAAA6sB,GAAA,EAAO,MAAK,8BAA6B;AAAA,IAC1F,gBAAA7sB;AAAA,MAACmyB;AAAA,MAAA;AAAA,QACG,YAAY;AAAA,UACR,GAAGrmB,KAAA,gBAAAA,EAAY;AAAA,UACf,QAAQ;AAAA,YACJ,IAAGvtC,IAAAutC,KAAA,gBAAAA,EAAY,eAAZ,gBAAAvtC,EAAwB;AAAA,YAC3B,eAAeqrD;AAAA,YACf,wBAAwBsI;AAAA,UAC5B;AAAA,UACA,aAAa;AAAA,YACT,oBAAoBhD;AAAA,YACpB,kBAAkBK;AAAA,YAClB,IAAG/wD,IAAAstC,KAAA,gBAAAA,EAAY,eAAZ,gBAAAttC,EAAwB;AAAA,UAC/B;AAAA,QACJ;AAAA,MAAA;AAAA,IACJ;AAAA,EACJ,EAAA,CAAA;AAER,GC1Ea4zD,KAA6Bz9C,GAAO;AAAA,EAC7C,IAAIszB;AAAA,EACJ,UAAUH,GAASG,EAAqB;AAAA,EACxC,OAAOH,GAASG,EAAqB;AAAA,EACrC,WAAWH,GAASG,EAAqB;AAAA,EACzC,UAAUH,GAASG,EAAqB;AAAA,EACxC,OAAOH,GAASG,EAAqB;AAAA,EACrC,UAAUH,GAASG,EAAqB;AAC5C,CAAC,GCQYoqB,KAAkB,CAAC,EAAE,QAAA7gD,QAAmC;;AACjE,QAAM,EAAE,WAAA8gD,GAAW,OAAOC,GAAa,YAAAzmB,GAAY,WAAA6lB,GAAW,oBAAAa,EAAuB,IAAAhhD,GAE/E,CAACm3C,GAAM8J,CAAO,IAAInpB,GAAiB,gBAAgBxE,IAAwBstB,EAAW,GACtF,CAACM,CAAa,IAAIppB;AAAA,IACpB;AAAA,IACAtE;AAAA,IACA0P;AAAA,EAAA,GAEE,CAACie,GAAWC,CAAY,IAAIvyB,GAAuB,IAAI,GAEvD;AAAA,IACF,OAAO,EAAE,cAAA2jB,EAAa;AAAA,MACtBR,GAAiB,GAEfqP,IAA8BrgB,MAE9Bqa,MAASrhE,IAAAgmB,EAAO,eAAP,gBAAAhmB,EAAmB,iBAAgBy+D,IAC5C6I,MAAcrnE,IAAA+lB,EAAO,eAAP,gBAAA/lB,EAAmB,sBAAqBqhE,IAEtDiG,IAAcpyC;AAAA,IAChB,OAAOgoC,GAAckF,MAAqB;AACtC,YAAMmF,IAAoB,MAAMT,EAAY,QAAQ5J,GAAMkF,CAAQ;AAElE,MAAA4E,EAAQO,CAAiB;AAAA,IAC7B;AAAA,IACA,CAACT,GAAaE,CAAO;AAAA,EAAA,GAGnBtC,IAAexvC,GAAY,MAAM;;AACnC,KAAAn1B,IAAA+mE,EAAY,aAAZ,QAAA/mE,EAAA,KAAA+mE,IAEAE,EAAQ,IAAI;AAAA,EACb,GAAA,CAACF,EAAY,UAAUE,CAAO,CAAC;AAElC,SAAIzO,IACO,gBAAAhkB,EAAC6sB,GAAO,EAAA,MAAK,iBAAiB,CAAA,IAGpClE,IAUD,EAAC+J,KAAA,QAAAA,EAAe,iBAAeJ,KAAA,gBAAAA,EAAW,aAAY,MAAS,CAACO,IACzD,gBAAA7yB,EAAC4sB,IAAc,EAAA,UAAU0F,KAAA,gBAAAA,EAAW,UAAU,YAAY,EAAE,GAAGA,KAAA,gBAAAA,EAAW,YAAY,QAAAzF,EAAA,EAAU,CAAA,IAKpG8F,KAAa,CAACA,EAAU,QAAQ,SAAS,0BAA0B,IACtE,gBAAA3yB,EAAC8yB,GAAY,EAAA,cAAcH,EAAU,QAAA,CAAS,IAE9C,gBAAA3yB;AAAA,IAACizB;AAAA,IAAA;AAAA,MACG,UAAUT,EAAmB,EAAE,MAAM,UAAU,MAAA7J,GAAM;AAAA,MACrD,aAAaiK;AAAA,MACb,UAAU,gBAAA5yB,EAAC6sB,GAAO,EAAA,MAAK,+BAA+B,CAAA;AAAA,MAEtD,UAAC,gBAAA7sB,EAAAkzB,IAAA,EAAsB,gBAAe30D,IAAAozD,KAAA,gBAAAA,EAAW,aAAX,gBAAApzD,EAAqB,MACvD,UAAA,gBAAAyhC;AAAA,QAAC0xB;AAAA,QAAA;AAAA,UACG,YAAA5lB;AAAA,UACA,WAAA6lB;AAAA,UACA,UAAUxB;AAAA,UACV,8BAA6B3xD,IAAAgT,EAAO,aAAP,gBAAAhT,EAAiB;AAAA,UAC9C,QAAAquD;AAAA,QAAA;AAAA,MAAA,GAER;AAAA,IAAA;AAAA,EAAA,IA9BA,gBAAA7sB;AAAA,IAAC0uB;AAAA,IAAA;AAAA,MACG,SAASqE;AAAA,MACT,eAAeR,EAAY;AAAA,MAC3B,YAAY,EAAE,GAAGA,EAAY,YAAY,QAAA1F,EAAO;AAAA,IAAA;AAAA,EAAA;AA8BhE,GC1FasG,KAA6Dx+C,GAAO;AAAA,EAC7E,SAASszB;AACb,CAAC,GCCYmrB,KAAU,CACnBC,MAKC;AACD,QAAMC,IAAQ5J,MACR,CAACR,GAAOqK,CAAQ,IAAIlzB,GAA6B,MAAS,GAC1D,CAAC+sB,GAAiBoG,CAAkB,IAAIlqB;AAAA,IAC1C;AAAA,IACAzE;AAAA,IACAsuB;AAAA,EAAA,GAGEM,IAAmBhpB;AAAA,IACrB,MAAO6oB,EAAM,QAAQD,KAAA,gBAAAA,EAAeC,EAAM,UAAS,EAAE,IAAI,GAAA,IAAmB;AAAA,IAC5E,CAACA,EAAM,MAAMD,CAAY;AAAA,EAAA,GAGvBrP,KAAeyP,KAAA,gBAAAA,EAAkB,QAAO,IACxCC,IAA0BJ,EAAM,aAAcA,EAAM,mBAAmB,CAACpK,GACxEre,IAAYmZ,KAAgB0P,GAE5B/K,IAAOle;AAAA,IACT,MACI;;AAAA,aAAAgpB,KAAA,QAAAA,EAAkB,QAAMjoE,IAAA8nE,EAAM,SAAN,QAAA9nE,EAAY,UAAS09D,IACvC,EAAE,UAAUoK,EAAM,KAAK,MAAM,IAAIA,EAAM,KAAK,OAAO,OAAApK,MACnD;AAAA;AAAA,IACV,CAACoK,EAAM,MAAMpK,GAAOuK,KAAA,gBAAAA,EAAkB,EAAE;AAAA,EAAA;AAG5C,SAAAjzB,GAAU,MAAM;AACR,IAAC8yB,EAAM,mBAIXA,EAAM,uBAAyB,EAAA,KAAKC,CAAQ,EAAE,MAAM,QAAQ,IAAI;AAAA,EAAA,GACjE,CAACD,CAAK,CAAC,GAEV9yB,GAAU,MAAM;AACZ,QAAKizB,GAIL;AAAA,UAAIA,EAAiB,IAAI;AACrB,QAAAD,EAAmB,IAAI;AACvB;AAAA,MACJ;AAEA,MAAAA,EAAmB,EAAE,SAASC,EAAiB,QAAS,CAAA,GAExDH,EAAM,OAAO;AAAA;AAAA,EACd,GAAA,CAACA,GAAOE,GAAoBC,CAAgB,CAAC,GAEzC,EAAE,WAAA5oB,GAAW,iBAAAuiB,GAAiB,MAAAzE;AACzC,GC/DagL,KAAoB;AAAA,EAC7B,OAAO;AAAA,EACP,UAAU;AACd,GCmBaC,KAAiB,CAAC,EAAE,QAAApiD,QAAkC;;AAC/D,QAAM8hD,IAAQ5J,MAER,EAAE,WAAA4I,GAAW,OAAOC,GAAa,WAAAZ,GAAW,YAAA7lB,GAAY,oBAAA0mB,EAAuB,IAAAhhD,GAE/E,EAAE,WAAAq5B,GAAW,iBAAAuiB,GAAiB,MAAAzE,EAAS,IAAAyK,GAAQb,EAAY,YAAY,GAEvEpF,KADYoF,EAAY,aAAaoB,GAAkB,cAC/BA,GAAkB,WAAWL,EAAM,oBAAoBA,EAAM,gBAErF,CAACZ,CAAa,IAAIppB;AAAA,IACpB;AAAA,IACAtE;AAAA,IACA0P;AAAA,EAAA,GAEE,CAACie,GAAWC,CAAY,IAAIvyB,GAAuB,IAAI,GAEvD;AAAA,IACF,OAAO,EAAE,cAAA2jB,EAAa;AAAA,MACtBR,GAAiB,GAEfqP,IAA8BrgB,MAE9Bqa,MAASrhE,IAAAgmB,EAAO,eAAP,gBAAAhmB,EAAmB,iBAAgBy+D,IAC5C6I,MAAcrnE,IAAA+lB,EAAO,eAAP,gBAAA/lB,EAAmB,sBAAqBqhE;AAE5D,SAAI9I,IACO,gBAAAhkB,EAAC6sB,GAAO,EAAA,MAAK,iBAAiB,CAAA,IAGpClE,IAWD,EAAC+J,KAAA,QAAAA,EAAe,iBAAeJ,KAAA,gBAAAA,EAAW,aAAY,MAAS,CAACO,IACzD,gBAAA7yB,EAAC4sB,IAAc,EAAA,UAAU0F,KAAA,gBAAAA,EAAW,UAAU,YAAY,EAAE,GAAGA,KAAA,gBAAAA,EAAW,YAAY,QAAAzF,EAAA,EAAU,CAAA,IAKpG8F,KAAa,CAACA,EAAU,QAAQ,SAAS,0BAA0B,IACtE,gBAAA3yB,EAAC8yB,GAAY,EAAA,cAAcH,EAAU,QAAA,CAAS,IAE9C,gBAAA3yB;AAAA,IAACizB;AAAA,IAAA;AAAA,MACG,UAAUT,EAAmB,EAAE,MAAM,SAAS,MAAM,EAAE,GAAGc,EAAM,MAAM,IAAI3K,EAAK,IAAI,OAAOA,EAAK,MAAA,GAAS;AAAA,MACvG,aAAaiK;AAAA,MACb,UAAU,gBAAA5yB,EAAC6sB,GAAO,EAAA,MAAK,+BAA+B,CAAA;AAAA,MAEtD,UAAC,gBAAA7sB,EAAAkzB,IAAA,EAAsB,gBAAe30D,IAAAozD,KAAA,gBAAAA,EAAW,aAAX,gBAAApzD,EAAqB,MACvD,UAAA,gBAAAyhC;AAAA,QAAC0xB;AAAA,QAAA;AAAA,UACG,YAAA5lB;AAAA,UACA,WAAA6lB;AAAA,UACA,UAAU2B,EAAM;AAAA,UAChB,8BAA6B90D,IAAAgT,EAAO,aAAP,gBAAAhT,EAAiB;AAAA,UAC9C,QAAAquD;AAAA,QAAA;AAAA,MAAA,GAER;AAAA,IAAA;AAAA,EAAA,IA/BA,gBAAA7sB;AAAA,IAACktB;AAAA,IAAA;AAAA,MACG,SAAAC;AAAA,MACA,WAAAtiB;AAAA,MACA,iBAAAuiB;AAAA,MACA,YAAY,EAAE,GAAGmF,EAAY,YAAY,QAAA1F,EAAO;AAAA,IAAA;AAAA,EAAA;AA8BhE,GCrEagH,KAAc,CAAC,EAAE,QAAAriD,QAA+B;;AACzD,QAAM,EAAE,WAAA8gD,GAAW,WAAAX,GAAW,YAAA7lB,GAAY,oBAAA0mB,MAAuBhhD,GAC3D,EAAE,UAAA0+C,GAAU,MAAAvH,EAAA,IAASn3C,EAAO,SAAS,CAAA,GAErC,EAAE,kBAAAsiD,MAAqB5e,MACvB,CAACwd,CAAa,IAAIppB;AAAA,IACpB;AAAA,IACAtE;AAAA,IACA0P;AAAA,EAAA,GAEE,CAACie,GAAWC,CAAY,IAAIvyB,GAAuB,IAAI,GAEvD;AAAA,IACF,OAAO,EAAE,cAAA2jB,EAAa;AAAA,MACtBR,GAAiB,GAEfqP,IAA8BrgB,MAE9Bqa,MAASrhE,IAAAgmB,EAAO,eAAP,gBAAAhmB,EAAmB,iBAAgBy+D,IAC5C6I,MAAcrnE,IAAA+lB,EAAO,eAAP,gBAAA/lB,EAAmB,sBAAqBqhE;AAE5D,SAAI9I,IACO,gBAAAhkB,EAAC6sB,GAAO,EAAA,MAAK,iBAAiB,CAAA,IAGrC,EAAC6F,KAAA,QAAAA,EAAe,iBAAeJ,KAAA,gBAAAA,EAAW,aAAY,MAASwB,KAAoB,CAACjB,IAC7E,gBAAA7yB,EAAC4sB,IAAc,EAAA,UAAU0F,KAAA,gBAAAA,EAAW,UAAU,YAAY,EAAE,GAAGA,KAAA,gBAAAA,EAAW,YAAY,QAAAzF,EAAA,EAAU,CAAA,IAKpG8F,KAAa,CAACA,EAAU,QAAQ,SAAS,0BAA0B,IACtE,gBAAA3yB,EAAC8yB,GAAY,EAAA,cAAcH,EAAU,QAAA,CAAS,IAE9C,gBAAA3yB;AAAA,IAACizB;AAAA,IAAA;AAAA,MACG,UAAUT,EAAmB,EAAE,MAAM,UAAU,MAAA7J,GAAM;AAAA,MACrD,aAAaiK;AAAA,MACb,UAAU,gBAAA5yB,EAAC6sB,GAAO,EAAA,MAAK,+BAA+B,CAAA;AAAA,MAEtD,UAAC,gBAAA7sB,EAAAkzB,IAAA,EAAsB,gBAAe30D,IAAAozD,KAAA,gBAAAA,EAAW,aAAX,gBAAApzD,EAAqB,MACvD,UAAA,gBAAAyhC;AAAA,QAAC0xB;AAAA,QAAA;AAAA,UACG,YAAA5lB;AAAA,UACA,WAAA6lB;AAAA,UACA,UAAAzB;AAAA,UACA,8BAA6B1xD,IAAAgT,EAAO,aAAP,gBAAAhT,EAAiB;AAAA,UAC9C,QAAAquD;AAAA,QAAA;AAAA,MAAA,GAER;AAAA,IAAA;AAAA,EAAA;AAGZ,GC1CMkH,KAA2Dp/C,GAAO;AAAA,EACpE,MAAMmzB,GAASH,GAAA,EAAU,QAAQ,CAAC/oB,MAAWwpB,GAAcxpB,GAAQ,MAAM,CAAC,CAAC;AAAA,EAC3E,SAASkpB,GAASH,GAAA,EAAU,QAAQ,CAAC/oB,MAAWwpB,GAAcxpB,GAAQ,SAAS,CAAC,CAAC;AACrF,CAAC,GAEKo1C,KAAuCjsB,GAAM,GAAG,OAAO,OAAO4rB,EAAiB,EAAE,IAAI,CAACp3C,MAAUqrB,GAASrrB,CAAK,CAAC,CAAC,GAEhH03C,KAAqDt/C,GAAO;AAAA,EAC9D,MAAMizB,GAAS,OAAO;AAAA,EACtB,cAAcE,GAASH,GAAA,EAAU,QAAQ,CAAC/oB,MAAWwpB,GAAcxpB,GAAQ,cAAc,CAAC,CAAC;AAAA,EAC3F,WAAWkpB,GAASksB,EAAgB;AAAA,EACpC,iBAAiBrsB,GAAQ;AAAA,EACzB,YAAYG,GAASisB,EAA0B;AACnD,CAAC,GAEKG,KAAuDv/C,GAAO;AAAA,EAChE,MAAMizB,GAAS,QAAQ;AAAA,EACvB,SAASD,GAAU,EAAA,QAAQ,CAAC/oB,MAAWwpB,GAAcxpB,GAAQ,SAAS,CAAC;AAAA,EACvE,UAAUkpB,GAASH,GAAA,EAAU,QAAQ,CAAC/oB,MAAWwpB,GAAcxpB,GAAQ,UAAU,CAAC,CAAC;AAAA,EACnF,eAAekpB,GAASG,EAAqB;AAAA,EAC7C,YAAYH,GAASisB,EAA0B;AACnD,CAAC,GAEKI,KAAyCx/C,GAAO;AAAA,EAClD,IAAIszB;AAAA,EACJ,UAAUA;AACd,CAAC,GAEKmsB,KAAuDz/C,GAAO;AAAA,EAChE,MAAMizB,GAAS,QAAQ;AAAA,EACvB,UAAUD,GAAU,EAAA,QAAQ,CAAC/oB,MAAWwpB,GAAcxpB,GAAQ,UAAU,CAAC;AAAA,EACzE,MAAMu1C;AACV,CAAC,GAEKE,KAA2CtsB;AAAA,EAC7CksB;AAAA,EACAC;AAAA,EACAE;AACJ,GAEME,KAAuD3/C,GAAO;AAAA,EAChE,oCAAoCmzB,GAASI,EAAwB;AACzE,CAAC,GAEKqsB,KAA2D5/C,GAAO;AAAA,EACpE,MAAMmzB,GAASH,GAAA,EAAU,QAAQ,CAAC/oB,MAAWwpB,GAAcxpB,GAAQ,MAAM,CAAC,CAAC;AAC/E,CAAC,GAEK41C,KAAmD7/C,GAAO;AAAA,EAC5D,SAASmzB,GAASJ,IAAS;AAAA,EAC3B,YAAYI,GAASysB,EAA0B;AAAA,EAC/C,UAAUzsB,GAASwsB,EAAwB;AAC/C,CAAC,GAEKG,KAAqD9/C,GAAO;AAAA,EAC9D,YAAYmzB,GAASH,IAAS;AAClC,CAAC,GAEK+sB,KAAuE//C,GAAO;AAAA,EAChF,cAAcozB,GAAMH,GAAS,IAAI,GAAGE,GAASH,GAAQ,EAAE,QAAQ,CAAC/oB,MAAWwpB,GAAcxpB,GAAQ,cAAc,CAAC,CAAC,CAAC;AAAA,EAClH,aAAampB,GAAMH,GAAS,IAAI,GAAGE,GAASH,GAAQ,EAAE,QAAQ,CAAC/oB,MAAWwpB,GAAcxpB,GAAQ,aAAa,CAAC,CAAC,CAAC;AACpH,CAAC,GAEK+1C,KAAqDhgD,GAAO;AAAA,EAC9D,WAAWgzB,GAAU,EAAA,QAAQ,CAAC/oB,MAAWwpB,GAAcxpB,GAAQ,WAAW,CAAC;AAAA,EAC3E,aAAaqpB;AACjB,CAAC,GAEK2sB,KAA2DjgD,GAAO;AAAA,EACpE,QAAQmzB,GAAS4sB,EAAgC;AAAA,EACjD,UAAU5sB,GAASD,GAAM8sB,EAAuB,CAAC;AACrD,CAAC,GAEKE,KAAmElgD,GAAO;AAAA,EAC5E,YAAYmzB,GAASJ,IAAS;AAAA,EAC9B,YAAYI,GAASJ,IAAS;AAClC,CAAC,GAEKotB,KAAuDngD,GAAO;AAAA,EAChE,QAAQmzB,GAAS+sB,EAA8B;AAAA,EAC/C,MAAM/sB,GAASC,GAAMH,GAAS,QAAQ,GAAGA,GAAS,SAAS,CAAC,CAAC;AACjE,CAAC,GAEKmtB,KAAmDpgD,GAAO;AAAA,EAC5D,YAAYmzB,GAAS8sB,EAA0B;AAAA,EAC/C,UAAU9sB,GAASgtB,EAAwB;AAC/C,CAAC,GAEKE,KAAmErgD,GAAO;AAAA,EAC5E,cAAcmzB,GAASH,GAAA,EAAU,QAAQ,CAAC/oB,MAAWwpB,GAAcxpB,GAAQ,cAAc,CAAC,CAAC;AAAA,EAC3F,mBAAmBkpB,GAASH,GAAA,EAAU,QAAQ,CAAC/oB,MAAWwpB,GAAcxpB,GAAQ,mBAAmB,CAAC,CAAC;AACzG,CAAC,GAEKq2C,KAA+DtgD,GAAO;AAAA,EACxE,6BAA6BmzB,GAASJ,IAAS;AACnD,CAAC,GAEYwtB,KAA2DvgD,GAAO;AAAA,EAC3E,oBAAoBgzB,GAAU,EAAA,QAAQ,CAAC/oB,MAAWwpB,GAAcxpB,GAAQ,oBAAoB,CAAC;AAAA,EAC7F,OAAOkpB,GAASusB,EAAkB;AAAA,EAClC,WAAWvsB,GAAS0sB,EAAsB;AAAA,EAC1C,YAAY1sB,GAAS2sB,EAAuB;AAAA,EAC5C,WAAW3sB,GAASitB,EAAsB;AAAA,EAC1C,YAAYjtB,GAASktB,EAA8B;AAAA,EACnD,UAAUltB,GAASmtB,EAA4B;AACnD,CAAC,GC1HYE,KAAU,CAAC,EAAE,QAAA3jD,QAAiC;;AACjD,QAAA4jD,IAAkB3qB,GAAQ,MAAMyqB,GAA2B,iBAAiB1jD,CAAM,GAAG,CAACA,CAAM,CAAC,GAC7F+gD,IAAc6C,EAAgB,OAE9B,EAAE,kBAAAtB,MAAqB5e;AAEzB,MAAA,CAACqd,KAAe,CAACuB,GAAkB;AACnC,UAAM,EAAE,OAAA5P,GAAO,GAAG1yC,EAAAA,IAAW4jD;AAEtB,WAAA,gBAAAp1B,EAAC6zB,IAAY,EAAA,QAAQriD,EAAQ,CAAA;AAAA,EACxC;AAEI,MAAA+gD,EAAY,SAAS;AACd,WAAA,gBAAAvyB,EAAC6zB,IAAY,EAAA,QAAQuB,EAAuE,CAAA;AAGnG,MAAA7C,EAAY,SAAS;AACd,WAAA,gBAAAvyB,EAACqyB,IAAgB,EAAA,QAAQ+C,EAAuE,CAAA;AAGrG,QAAA,EAAE,iBAAAC,EAAoB,IAAA9C;AAGxB,SAAA,gBAAAvyB;AAAA,IAACkoB;AAAA,IAAA;AAAA,MACI,GAAGmN;AAAA,MACJ,qBAAqB;AAAA,QACjB,GAAGA,EAAgB;AAAA,QACnB,gBAAc7pE,IAAA6pE,EAAgB,wBAAhB,gBAAA7pE,EAAqC,iBAAgB,OAAO,SAAS;AAAA,MACvF;AAAA,MAEA,UAAA,gBAAAw0C,EAAC4zB,IAAe,EAAA,QAAQwB,EAAsE,CAAA;AAAA,IAAA;AAAA,EAAA;AAG1G;ACrCO,MAAME,KAAgB,CAAC,EAAE,QAAA9jD,QAEvB,gBAAAwuB,EAAAyjB,IAAA,EACG,UAAC,gBAAAzjB,EAAAm1B,IAAA,EAAQ,QAAA3jD,GAAgB,EAC7B,CAAA;","x_google_ignoreList":[9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,103,121,152,191]}
|